From a5059374106b6b1148a3cc6673c27ec1829380ea Mon Sep 17 00:00:00 2001 From: isabel Date: Sun, 30 Jun 2024 09:16:52 +0100 Subject: [PATCH 1/2] style: formating --- default.nix | 8 +- flake.nix | 12 +- lib/ascii-table.nix | 189 +- lib/asserts.nix | 30 +- lib/attrsets.nix | 569 +- lib/cli.nix | 76 +- lib/customisation.nix | 363 +- lib/debug.nix | 266 +- lib/default.nix | 639 +- lib/deprecated/misc.nix | 502 +- lib/derivations.nix | 84 +- lib/fetchers.nix | 6 +- lib/fileset/default.nix | 270 +- lib/fileset/internal.nix | 302 +- lib/fileset/mock-splitRoot.nix | 15 +- lib/filesystem.nix | 170 +- lib/fixed-points.nix | 48 +- lib/flake-version-info.nix | 5 +- lib/flake.nix | 6 +- lib/generators.nix | 949 +- lib/gvariant.nix | 301 +- lib/kernel.nix | 32 +- lib/licenses.nix | 2635 +- lib/lists.nix | 384 +- lib/meta.nix | 286 +- lib/modules.nix | 1784 +- lib/options.nix | 733 +- lib/path/default.nix | 183 +- lib/path/tests/default.nix | 60 +- lib/path/tests/prop.nix | 50 +- lib/path/tests/unit.nix | 51 +- lib/source-types.nix | 9 +- lib/sources.nix | 275 +- lib/strings-with-deps.nix | 129 +- lib/strings.nix | 1648 +- lib/systems/architectures.nix | 439 +- lib/systems/default.nix | 755 +- lib/systems/doubles.nix | 218 +- lib/systems/examples.nix | 52 +- lib/systems/inspect.nix | 503 +- lib/systems/parse.nix | 979 +- lib/systems/platforms.nix | 85 +- lib/tests/check-eval.nix | 13 +- lib/tests/maintainer-module.nix | 13 +- lib/tests/maintainers.nix | 107 +- lib/tests/misc.nix | 2406 +- ...adhoc-freeformType-survives-type-merge.nix | 12 +- .../alias-with-priority-can-override.nix | 8 +- lib/tests/modules/alias-with-priority.nix | 8 +- .../modules/attrsOf-conditional-check.nix | 7 +- lib/tests/modules/attrsOf-lazy-check.nix | 7 +- lib/tests/modules/boolByOr.nix | 28 +- lib/tests/modules/class-check.nix | 61 +- lib/tests/modules/declaration-positions.nix | 34 +- lib/tests/modules/declare-attrsOf.nix | 8 +- .../modules/declare-attrsOfSub-any-enable.nix | 26 +- lib/tests/modules/declare-bare-submodule.nix | 6 +- lib/tests/modules/declare-either.nix | 7 +- .../modules/declare-int-between-value.nix | 4 +- .../declare-int-positive-value-nested.nix | 4 +- .../modules/declare-int-positive-value.nix | 4 +- .../modules/declare-int-unsigned-value.nix | 4 +- lib/tests/modules/declare-lazyAttrsOf.nix | 5 +- lib/tests/modules/declare-mkPackageOption.nix | 42 +- lib/tests/modules/declare-oneOf.nix | 3 +- lib/tests/modules/declare-set.nix | 4 +- .../declare-submodule-via-evalModules.nix | 43 +- .../modules/declare-submoduleWith-modules.nix | 20 +- .../declare-submoduleWith-noshorthand.nix | 12 +- .../modules/declare-submoduleWith-path.nix | 11 +- .../declare-submoduleWith-shorthand.nix | 8 +- .../modules/declare-submoduleWith-special.nix | 16 +- lib/tests/modules/declare-variants.nix | 5 +- lib/tests/modules/default.nix | 17 +- lib/tests/modules/deferred-module-error.nix | 27 +- lib/tests/modules/deferred-module.nix | 63 +- .../modules/define-attrsOfSub-bar-enable.nix | 4 +- lib/tests/modules/define-attrsOfSub-bar.nix | 4 +- .../modules/define-attrsOfSub-foo-enable.nix | 4 +- .../define-attrsOfSub-foo-force-enable.nix | 4 +- .../define-attrsOfSub-foo-if-enable.nix | 4 +- lib/tests/modules/define-attrsOfSub-foo.nix | 4 +- .../define-attrsOfSub-force-foo-enable.nix | 4 +- .../define-attrsOfSub-if-foo-enable.nix | 4 +- lib/tests/modules/define-enable-abort.nix | 4 +- lib/tests/modules/define-enable-throw.nix | 4 +- lib/tests/modules/define-enable.nix | 4 +- .../define-force-attrsOfSub-foo-enable.nix | 4 +- lib/tests/modules/define-force-enable.nix | 4 +- .../define-freeform-keywords-shorthand.nix | 27 +- .../define-if-attrsOfSub-foo-enable.nix | 4 +- lib/tests/modules/define-module-check.nix | 4 +- .../define-option-dependently-nested.nix | 13 +- .../modules/define-option-dependently.nix | 13 +- .../modules/define-settingsDict-a-is-b.nix | 3 +- .../define-submoduleWith-noshorthand.nix | 4 +- .../define-submoduleWith-shorthand.nix | 4 +- .../modules/define-value-int-negative.nix | 4 +- .../modules/define-value-int-positive.nix | 4 +- lib/tests/modules/define-value-int-zero.nix | 4 +- lib/tests/modules/define-value-list.nix | 4 +- .../modules/define-value-string-arbitrary.nix | 4 +- .../modules/define-value-string-bigint.nix | 4 +- .../define-value-string-properties.nix | 7 +- lib/tests/modules/define-value-string.nix | 4 +- lib/tests/modules/define-variant.nix | 11 +- lib/tests/modules/disable-enable-modules.nix | 5 +- lib/tests/modules/disable-module-bad-key.nix | 14 +- lib/tests/modules/disable-module-with-key.nix | 4 +- .../disable-module-with-toString-key.nix | 4 +- lib/tests/modules/disable-recursive/bar.nix | 6 +- .../modules/disable-recursive/disable-bar.nix | 4 +- .../modules/disable-recursive/disable-foo.nix | 4 +- lib/tests/modules/disable-recursive/foo.nix | 6 +- lib/tests/modules/doRename-basic.nix | 20 +- .../modules/doRename-condition-enable.nix | 7 +- .../modules/doRename-condition-migrated.nix | 7 +- .../modules/doRename-condition-no-enable.nix | 9 +- lib/tests/modules/doRename-condition.nix | 34 +- lib/tests/modules/doRename-warnings.nix | 22 +- lib/tests/modules/docs.nix | 26 +- lib/tests/modules/emptyValues.nix | 27 +- .../modules/error-mkOption-in-config.nix | 6 +- .../error-mkOption-in-submodule-config.nix | 6 +- .../modules/extendModules-168767-imports.nix | 29 +- lib/tests/modules/freeform-attrsOf.nix | 3 +- lib/tests/modules/freeform-lazyAttrsOf.nix | 3 +- lib/tests/modules/freeform-nested.nix | 6 +- lib/tests/modules/freeform-str-dep-unstr.nix | 3 +- lib/tests/modules/freeform-submodules.nix | 10 +- lib/tests/modules/freeform-unstr-dep-str.nix | 3 +- lib/tests/modules/functionTo/list-order.nix | 20 +- .../modules/functionTo/merging-attrs.nix | 25 +- lib/tests/modules/functionTo/merging-list.nix | 19 +- .../modules/functionTo/submodule-options.nix | 84 +- lib/tests/modules/functionTo/trivial.nix | 7 +- lib/tests/modules/functionTo/wrong-type.nix | 8 +- lib/tests/modules/gvariant.nix | 7 +- lib/tests/modules/import-custom-arg.nix | 3 +- lib/tests/modules/import-from-store.nix | 1 - lib/tests/modules/merge-module-with-key.nix | 8 +- lib/tests/modules/module-argument-default.nix | 9 +- lib/tests/modules/module-class-is-darwin.nix | 2 +- lib/tests/modules/module-class-is-nixos.nix | 2 +- .../modules/module-imports-_type-check.nix | 4 +- lib/tests/modules/optionTypeFile.nix | 19 +- lib/tests/modules/optionTypeMerging.nix | 17 +- .../options-type-error-configuration.nix | 5 +- .../options-type-error-typical-nested.nix | 3 +- .../modules/options-type-error-typical.nix | 3 +- lib/tests/modules/raw.nix | 19 +- lib/tests/modules/shorthand-meta.nix | 20 +- lib/tests/modules/submoduleFiles.nix | 20 +- .../test-mergeAttrDefinitionsWithPrio.nix | 4 +- .../types-anything/attrs-coercible.nix | 7 +- .../modules/types-anything/equal-atoms.nix | 7 +- .../modules/types-anything/functions.nix | 11 +- lib/tests/modules/types-anything/lists.nix | 15 +- lib/tests/modules/types-anything/mk-mods.nix | 33 +- .../modules/types-anything/nested-attrs.nix | 23 +- .../modules/types-attrTag-wrong-decl.nix | 6 +- lib/tests/modules/types-attrTag.nix | 103 +- lib/tests/modules/types-unique.nix | 15 +- lib/tests/modules/types.nix | 8 +- lib/tests/nix-for-tests.nix | 11 +- lib/tests/packages-from-directory/a.nix | 3 +- lib/tests/packages-from-directory/b.nix | 3 +- .../packages-from-directory/c/package.nix | 3 +- .../my-namespace/d.nix | 3 +- .../my-namespace/e.nix | 3 +- .../my-namespace/f/package.nix | 3 +- .../my-namespace/my-sub-namespace/g.nix | 3 +- .../my-namespace/my-sub-namespace/h.nix | 3 +- lib/tests/release.nix | 44 +- lib/tests/systems.nix | 306 +- lib/tests/teams.nix | 83 +- lib/tests/test-with-nix.nix | 126 +- lib/trivial.nix | 237 +- lib/types.nix | 2060 +- lib/versions.nix | 64 +- maintainers/maintainer-list.nix | 101 +- maintainers/team-list.nix | 17 +- pkgs/build-support/agda/default.nix | 178 +- pkgs/build-support/agda/lib.nix | 28 +- .../alternatives/blas/default.nix | 347 +- .../alternatives/lapack/default.nix | 146 +- pkgs/build-support/appimage/default.nix | 358 +- pkgs/build-support/binary-cache/default.nix | 23 +- .../bintools-wrapper/default.nix | 393 +- .../build-bazel-package/default.nix | 457 +- .../build-fhsenv-bubblewrap/buildFHSEnv.nix | 171 +- .../build-fhsenv-bubblewrap/default.nix | 491 +- .../build-fhsenv-chroot/chrootenv/default.nix | 15 +- .../build-fhsenv-chroot/default.nix | 115 +- .../build-support/build-fhsenv-chroot/env.nix | 79 +- .../build-graalvm-native-image/default.nix | 102 +- pkgs/build-support/build-maven.nix | 103 +- pkgs/build-support/buildenv/default.nix | 139 +- pkgs/build-support/cc-wrapper/default.nix | 557 +- pkgs/build-support/checkpoint-build.nix | 121 +- pkgs/build-support/closure-info.nix | 38 +- pkgs/build-support/coq/default.nix | 279 +- pkgs/build-support/coq/extra-lib.nix | 368 +- pkgs/build-support/coq/meta-fetch/default.nix | 161 +- .../dart/build-dart-application/default.nix | 210 +- .../build-dart-application/generators.nix | 70 +- .../build-dart-application/hooks/default.nix | 16 +- .../dart/pub2nix/package-config.nix | 98 +- .../dart/pub2nix/pubspec-lock.nix | 159 +- .../deterministic-uname/default.nix | 27 +- pkgs/build-support/dhall/directory-to-nix.nix | 11 +- pkgs/build-support/dhall/package-to-nix.nix | 33 +- pkgs/build-support/dhall/to-nix.nix | 40 +- pkgs/build-support/docker/default.nix | 1555 +- pkgs/build-support/docker/examples.nix | 438 +- .../docker/nix-prefetch-docker.nix | 17 +- pkgs/build-support/docker/tarsum.nix | 7 +- .../build-dotnet-global-tool/default.nix | 83 +- .../dotnet/build-dotnet-module/default.nix | 511 +- .../build-dotnet-module/hooks/default.nix | 79 +- .../dotnet/build-dotnet-package/default.nix | 208 +- .../dotnet/dotnetbuildhelpers/default.nix | 35 +- .../dotnet/dotnetenv/build-solution.nix | 109 +- .../dotnet/dotnetenv/default.nix | 31 +- .../dotnet/dotnetenv/wrapper.nix | 92 +- .../dotnet/fetchnuget/default.nix | 73 +- .../dotnet/make-nuget-deps/default.nix | 18 +- .../dotnet/make-nuget-source/default.nix | 55 +- .../dotnet/nuget-to-nix/default.nix | 65 +- pkgs/build-support/emacs/buffer.nix | 61 +- pkgs/build-support/emacs/elpa.nix | 67 +- pkgs/build-support/emacs/generic.nix | 130 +- pkgs/build-support/emacs/melpa.nix | 141 +- pkgs/build-support/emacs/trivial.nix | 34 +- pkgs/build-support/emacs/wrapper.nix | 302 +- pkgs/build-support/fake-nss/default.nix | 13 +- pkgs/build-support/fetch9front/default.nix | 62 +- pkgs/build-support/fetchbitbucket/default.nix | 29 +- pkgs/build-support/fetchbower/default.nix | 64 +- pkgs/build-support/fetchbzr/default.nix | 6 +- pkgs/build-support/fetchcvs/default.nix | 42 +- pkgs/build-support/fetchdarcs/default.nix | 46 +- .../fetchdebianpatch/default.nix | 21 +- .../build-support/fetchdocker/credentials.nix | 7 +- pkgs/build-support/fetchdocker/default.nix | 85 +- .../fetchdocker/fetchDockerConfig.nix | 31 +- .../fetchdocker/fetchDockerLayer.nix | 24 +- .../fetchdocker/generic-fetcher.nix | 52 +- .../fetchfirefoxaddon/default.nix | 50 +- .../build-support/fetchfirefoxaddon/tests.nix | 7 +- pkgs/build-support/fetchfossil/default.nix | 58 +- pkgs/build-support/fetchgit/default.nix | 216 +- pkgs/build-support/fetchgit/tests.nix | 3 +- pkgs/build-support/fetchgitea/default.nix | 4 +- pkgs/build-support/fetchgithub/default.nix | 188 +- pkgs/build-support/fetchgitiles/default.nix | 28 +- pkgs/build-support/fetchgitlab/default.nix | 127 +- pkgs/build-support/fetchgitlocal/default.nix | 75 +- pkgs/build-support/fetchgx/default.nix | 21 +- pkgs/build-support/fetchhg/default.nix | 59 +- pkgs/build-support/fetchipfs/default.nix | 102 +- .../fetchmavenartifact/default.nix | 102 +- pkgs/build-support/fetchmtn/default.nix | 27 +- .../fetchnextcloudapp/default.nix | 77 +- pkgs/build-support/fetchpatch/default.nix | 173 +- pkgs/build-support/fetchpatch/tests.nix | 24 +- pkgs/build-support/fetchpijul/default.nix | 97 +- pkgs/build-support/fetchpypi/default.nix | 74 +- .../build-support/fetchpypilegacy/default.nix | 41 +- pkgs/build-support/fetchpypilegacy/tests.nix | 3 +- pkgs/build-support/fetchrepoorcz/default.nix | 27 +- .../fetchrepoproject/default.nix | 47 +- pkgs/build-support/fetchs3/default.nix | 76 +- pkgs/build-support/fetchsavannah/default.nix | 29 +- pkgs/build-support/fetchsourcehut/default.nix | 122 +- pkgs/build-support/fetchsvn/default.nix | 91 +- .../fetchsvnrevision/default.nix | 9 +- pkgs/build-support/fetchsvnssh/default.nix | 31 +- pkgs/build-support/fetchtorrent/default.nix | 114 +- pkgs/build-support/fetchtorrent/tests.nix | 7 +- pkgs/build-support/fetchurl/boot.nix | 29 +- pkgs/build-support/fetchurl/default.nix | 294 +- pkgs/build-support/fetchurl/mirrors.nix | 34 +- pkgs/build-support/fetchurl/tests.nix | 20 +- pkgs/build-support/fetchzip/default.nix | 142 +- pkgs/build-support/fetchzip/tests.nix | 17 +- pkgs/build-support/flutter/default.nix | 302 +- pkgs/build-support/go/module.nix | 536 +- pkgs/build-support/go/package.nix | 508 +- .../build-support/icon-conv-tools/default.nix | 6 +- .../install-shell-files/default.nix | 2 +- .../kernel/compress-firmware-xz.nix | 2 +- .../kernel/initrd-compressor-meta.nix | 18 +- .../kernel/make-initrd-ng-tool.nix | 16 +- pkgs/build-support/kernel/make-initrd-ng.nix | 175 +- pkgs/build-support/kernel/make-initrd.nix | 128 +- pkgs/build-support/kernel/modules-closure.nix | 25 +- pkgs/build-support/lib/cmake.nix | 51 +- pkgs/build-support/lib/meson.nix | 24 +- pkgs/build-support/libredirect/default.nix | 250 +- .../make-darwin-bundle/default.nix | 13 +- .../write-darwin-bundle.nix | 63 +- .../make-desktopitem/default.nix | 236 +- .../make-hardcode-gsettings-patch/default.nix | 4 +- pkgs/build-support/make-impure-test.nix | 89 +- .../make-pkgconfigitem/default.nix | 64 +- .../make-startupitem/default.nix | 15 +- pkgs/build-support/mkshell/default.nix | 89 +- pkgs/build-support/mono-dll-fixer/default.nix | 2 +- pkgs/build-support/nix-gitignore/default.nix | 185 +- .../node/build-npm-package/default.nix | 135 +- .../node/build-npm-package/hooks/default.nix | 76 +- .../node/fetch-npm-deps/default.nix | 172 +- .../node/fetch-yarn-deps/default.nix | 124 +- .../node/import-npm-lock/default.nix | 158 +- .../node/import-npm-lock/hooks/default.nix | 27 +- .../build-support/nuke-references/default.nix | 8 +- pkgs/build-support/ocaml/dune.nix | 114 +- pkgs/build-support/ocaml/oasis.nix | 80 +- pkgs/build-support/ocaml/topkg.nix | 61 +- pkgs/build-support/oci-tools/default.nix | 191 +- pkgs/build-support/packages.nix | 307 +- .../php/build-composer-project.nix | 77 +- .../php/build-composer-repository.nix | 77 +- pkgs/build-support/php/build-pecl.nix | 98 +- pkgs/build-support/php/hooks/default.nix | 64 +- .../php/pkgs/composer-local-repo-plugin.nix | 21 +- pkgs/build-support/php/pkgs/composer-phar.nix | 37 +- .../pkg-config-wrapper/default.nix | 65 +- pkgs/build-support/plugins.nix | 45 +- .../portable-service/default.nix | 70 +- .../references-by-popularity/default.nix | 30 +- pkgs/build-support/release/binary-tarball.nix | 102 +- pkgs/build-support/release/debian-build.nix | 159 +- pkgs/build-support/release/default.nix | 189 +- pkgs/build-support/release/maven-build.nix | 153 +- pkgs/build-support/release/nix-build.nix | 162 +- pkgs/build-support/release/rpm-build.nix | 79 +- pkgs/build-support/release/source-tarball.nix | 115 +- .../remove-references-to/default.nix | 7 +- pkgs/build-support/replace-dependency.nix | 125 +- .../replace-secret/replace-secret.nix | 6 +- .../rust/build-rust-crate/build-crate.nix | 214 +- .../rust/build-rust-crate/configure-crate.nix | 122 +- .../rust/build-rust-crate/default.nix | 500 +- .../rust/build-rust-crate/helpers.nix | 51 +- .../rust/build-rust-crate/install-crate.nix | 94 +- .../rust/build-rust-crate/log.nix | 74 +- .../build-rust-crate/test/brotli-crates.nix | 242 +- .../rust/build-rust-crate/test/default.nix | 1301 +- .../build-rust-crate/test/rcgen-crates.nix | 3508 +- .../rust/build-rust-package/default.nix | 279 +- .../build-rust-package/sysroot/default.nix | 27 +- .../rust/default-crate-overrides.nix | 245 +- .../rust/fetch-cargo-tarball/default.nix | 219 +- pkgs/build-support/rust/fetchcrate.nix | 41 +- pkgs/build-support/rust/hooks/default.nix | 84 +- pkgs/build-support/rust/import-cargo-lock.nix | 194 +- pkgs/build-support/rust/lib/default.nix | 200 +- .../rust/rustc-wrapper/default.nix | 108 +- pkgs/build-support/rust/sysroot/src.nix | 35 +- .../rust/test/import-cargo-lock/default.nix | 24 +- .../default.nix | 19 +- .../make-binary-wrapper/default.nix | 21 +- .../setup-hooks/mpi-check-hook/default.nix | 4 +- .../setup-hooks/patch-ppd-files/default.nix | 11 +- .../setup-hooks/patch-ppd-files/test.nix | 14 +- .../patch-rc-path-hooks/default.nix | 105 +- .../patch-rc-path-hooks/test/default.nix | 614 +- .../setup-hooks/postgresql-test-hook/test.nix | 8 +- .../setup-hooks/wrap-gapps-hook/default.nix | 420 +- .../setup-hooks/wrap-gapps-hook/tests/lib.nix | 24 +- pkgs/build-support/setup-systemd-units.nix | 151 +- .../singularity-tools/default.nix | 67 +- pkgs/build-support/source-from-head-fun.nix | 12 +- pkgs/build-support/src-only/default.nix | 25 +- .../substitute-files/substitute-all-files.nix | 39 +- .../substitute/substitute-all.nix | 17 +- pkgs/build-support/substitute/substitute.nix | 71 +- pkgs/build-support/testers/default.nix | 230 +- .../testers/hasPkgConfigModules/tester.nix | 50 +- .../testers/hasPkgConfigModules/tests.nix | 59 +- .../testers/test-equal-derivation.nix | 23 +- pkgs/build-support/testers/test/default.nix | 372 +- .../testers/testMetaPkgConfig/tester.nix | 24 +- .../trivial-builders/default.nix | 872 +- .../trivial-builders/test-overriding.nix | 84 +- .../trivial-builders/test/concat-test.nix | 18 +- .../trivial-builders/test/default.nix | 31 +- .../trivial-builders/test/link-farm.nix | 36 +- .../test/references/default.nix | 61 +- .../test/references/samples.nix | 28 +- .../test/write-shell-script.nix | 29 +- .../trivial-builders/test/write-text-file.nix | 25 +- .../trivial-builders/test/writeCBin.nix | 45 +- .../test/writeClosure-union.nix | 43 +- .../trivial-builders/test/writeScriptBin.nix | 45 +- .../test/writeShellApplication.nix | 135 +- .../test/writeShellScriptBin.nix | 45 +- .../test/writeStringReferencesToFile.nix | 27 +- pkgs/build-support/vm/default.nix | 1566 +- pkgs/build-support/vm/test.nix | 36 +- pkgs/build-support/writers/aliases.nix | 31 +- pkgs/build-support/writers/data.nix | 48 +- pkgs/build-support/writers/default.nix | 8 +- pkgs/build-support/writers/scripts.nix | 617 +- pkgs/build-support/writers/test.nix | 395 +- pkgs/by-name/aa/aalib/default.nix | 24 +- pkgs/by-name/ab/abseil-cpp/202103.nix | 72 +- pkgs/by-name/ab/abseil-cpp/202111.nix | 19 +- pkgs/by-name/ab/abseil-cpp/202206.nix | 17 +- pkgs/by-name/ab/abseil-cpp/202301.nix | 19 +- pkgs/by-name/ab/abseil-cpp/202308.nix | 19 +- pkgs/by-name/ab/abseil-cpp/202401.nix | 19 +- pkgs/by-name/ab/abseil-cpp/packages.nix | 43 +- pkgs/by-name/ac/acl/default.nix | 16 +- pkgs/by-name/al/alsa-lib/default.nix | 23 +- pkgs/by-name/ap/apache-httpd/2.4.nix | 95 +- pkgs/by-name/ap/apache-httpd/packages.nix | 7 +- pkgs/by-name/ap/apr/default.nix | 83 +- pkgs/by-name/ap/aprutil/default.nix | 86 +- pkgs/by-name/as/asciidoc/default.nix | 367 +- pkgs/by-name/as/asciidoc/packages.nix | 15 +- pkgs/by-name/at/attr/default.nix | 15 +- pkgs/by-name/au/audit/default.nix | 59 +- pkgs/by-name/au/autoconf-archive/default.nix | 7 +- pkgs/by-name/au/autoconf/2.13.nix | 13 +- pkgs/by-name/au/autoconf/2.64.nix | 13 +- pkgs/by-name/au/autoconf/2.69.nix | 13 +- pkgs/by-name/au/autoconf/2.71.nix | 22 +- pkgs/by-name/au/autoconf/default.nix | 22 +- pkgs/by-name/au/autoconf/packages.nix | 3 +- pkgs/by-name/au/automake/automake-1.11.x.nix | 18 +- pkgs/by-name/au/automake/automake-1.15.x.nix | 13 +- pkgs/by-name/au/automake/automake-1.16.x.nix | 13 +- pkgs/by-name/au/automake/packages.nix | 3 +- pkgs/by-name/aw/aws-c-auth/default.nix | 37 +- pkgs/by-name/aw/aws-c-cal/default.nix | 20 +- pkgs/by-name/aw/aws-c-cal/packages.nix | 7 +- pkgs/by-name/aw/aws-c-common/default.nix | 45 +- pkgs/by-name/aw/aws-c-compression/default.nix | 24 +- .../by-name/aw/aws-c-event-stream/default.nix | 43 +- pkgs/by-name/aw/aws-c-http/default.nix | 28 +- pkgs/by-name/aw/aws-c-io/default.nix | 22 +- pkgs/by-name/aw/aws-c-io/packages.nix | 7 +- pkgs/by-name/aw/aws-c-mqtt/default.nix | 31 +- pkgs/by-name/aw/aws-c-s3/default.nix | 34 +- pkgs/by-name/aw/aws-c-sdkutils/default.nix | 24 +- pkgs/by-name/aw/aws-checksums/default.nix | 18 +- pkgs/by-name/aw/aws-crt-cpp/default.nix | 39 +- pkgs/by-name/aw/aws-sdk-cpp/default.nix | 148 +- pkgs/by-name/aw/aws-sdk-cpp/packages.nix | 7 +- pkgs/by-name/ba/bash/5.nix | 143 +- pkgs/by-name/ba/bash/bash-5.2-patches.nix | 52 +- .../ba/bash/bash-completion/default.nix | 17 +- pkgs/by-name/ba/bash/blesh/default.nix | 18 +- pkgs/by-name/ba/bash/fzf-obc/default.nix | 6 +- .../ba/bash/nix-bash-completions/default.nix | 12 +- pkgs/by-name/ba/bash/packages.nix | 3 +- .../by-name/ba/bash/undistract-me/default.nix | 21 +- .../ba/bash/yarn-completion/default.nix | 9 +- pkgs/by-name/bc/bc/default.nix | 25 +- pkgs/by-name/bi/bind/default.nix | 118 +- pkgs/by-name/bi/bind/packages.nix | 3 +- pkgs/by-name/bi/binutils/2.38/default.nix | 304 +- pkgs/by-name/bi/binutils/2.38/libbfd.nix | 37 +- pkgs/by-name/bi/binutils/2.38/libopcodes.nix | 34 +- .../bi/binutils/bintools-wrapper/default.nix | 383 +- pkgs/by-name/bi/binutils/default.nix | 314 +- pkgs/by-name/bi/binutils/libbfd.nix | 6 +- pkgs/by-name/bi/binutils/libopcodes.nix | 6 +- pkgs/by-name/bi/binutils/packages.nix | 27 +- pkgs/by-name/bi/bison/default.nix | 19 +- pkgs/by-name/bl/bluez-alsa/default.nix | 42 +- pkgs/by-name/bl/bluez-tools/default.nix | 17 +- pkgs/by-name/bl/bluez/default.nix | 175 +- pkgs/by-name/bl/bluez/packages.nix | 7 +- pkgs/by-name/bo/boehmgc/default.nix | 57 +- pkgs/by-name/bo/boost-build/default.nix | 59 +- pkgs/by-name/bo/boost/1.75.nix | 35 +- pkgs/by-name/bo/boost/1.77.nix | 35 +- pkgs/by-name/bo/boost/1.78.nix | 35 +- pkgs/by-name/bo/boost/1.79.nix | 34 +- pkgs/by-name/bo/boost/1.80.nix | 34 +- pkgs/by-name/bo/boost/1.81.nix | 34 +- pkgs/by-name/bo/boost/1.82.nix | 34 +- pkgs/by-name/bo/boost/1.83.nix | 34 +- pkgs/by-name/bo/boost/1.84.nix | 34 +- pkgs/by-name/bo/boost/1.85.nix | 34 +- pkgs/by-name/bo/boost/default.nix | 18 +- pkgs/by-name/bo/boost/generic.nix | 410 +- pkgs/by-name/bo/boost/packages.nix | 5 +- pkgs/by-name/bp/bpftools/default.nix | 63 +- pkgs/by-name/br/brotli/default.nix | 43 +- pkgs/by-name/bu/busybox/default.nix | 38 +- pkgs/by-name/bu/busybox/packages.nix | 14 +- pkgs/by-name/bu/busybox/sandbox-shell.nix | 2 +- pkgs/by-name/bz/bzip2/1_1.nix | 27 +- pkgs/by-name/bz/bzip2/default.nix | 126 +- pkgs/by-name/bz/bzip2/packages.nix | 3 +- pkgs/by-name/c-/c-ares/default.nix | 25 +- pkgs/by-name/c-/c-ares/packages.nix | 7 +- pkgs/by-name/ca/cacert/default.nix | 294 +- pkgs/by-name/ca/cairo/default.nix | 250 +- pkgs/by-name/ca/cargo-nextest/default.nix | 33 +- pkgs/by-name/ca/catch2/3.nix | 41 +- pkgs/by-name/ca/catch2/default.nix | 14 +- pkgs/by-name/ca/catch2/packages.nix | 3 +- pkgs/by-name/cl/cloog/0.18.0.nix | 42 +- pkgs/by-name/cl/cloog/default.nix | 42 +- pkgs/by-name/cl/cloog/packages.nix | 11 +- pkgs/by-name/cm/cmake/default.nix | 239 +- pkgs/by-name/cm/cmake/packages.nix | 16 +- pkgs/by-name/co/coeurl/default.nix | 33 +- pkgs/by-name/co/coreutils/default.nix | 218 +- pkgs/by-name/co/coreutils/packages.nix | 10 +- pkgs/by-name/cp/cpio/default.nix | 9 +- pkgs/by-name/cr/cracklib/default.nix | 49 +- pkgs/by-name/cr/cryptsetup/default.nix | 78 +- pkgs/by-name/cu/cunit/default.nix | 18 +- pkgs/by-name/cu/curl/default.nix | 255 +- pkgs/by-name/cu/curl/packages.nix | 23 +- pkgs/by-name/cu/curlpp/default.nix | 8 +- pkgs/by-name/cy/cyrus-sasl/default.nix | 72 +- pkgs/by-name/cy/cyrus-sasl/packages.nix | 7 +- pkgs/by-name/da/darwin/darwin-packages.nix | 424 +- pkgs/by-name/da/darwin/packages.nix | 3 +- .../darwin/packages/DarwinTools/default.nix | 10 +- .../packages/apple-sdk-11.0/apple_sdk.nix | 458 +- .../packages/apple-sdk-11.0/default.nix | 174 +- .../packages/apple-sdk-11.0/frameworks.nix | 1244 +- .../packages/apple-sdk-11.0/libSystem.nix | 81 +- .../packages/apple-sdk-11.0/libcharset.nix | 6 +- .../apple-sdk-11.0/libcompression.nix | 35 +- .../packages/apple-sdk-11.0/libnetwork.nix | 35 +- .../packages/apple-sdk-11.0/libobjc.nix | 43 +- .../darwin/packages/apple-sdk-11.0/libpm.nix | 6 +- .../packages/apple-sdk-11.0/libunwind.nix | 6 +- .../apple-sdk-11.0/private-frameworks.nix | 45 +- .../da/darwin/packages/apple-sdk/default.nix | 478 +- .../darwin/packages/apple-sdk/frameworks.nix | 448 +- .../darwin/packages/apple-sdk/impure-deps.nix | 132 +- .../CarbonHeaders/default.nix | 10 +- .../CommonCrypto/default.nix | 10 +- .../apple-source-releases/Csu/default.nix | 10 +- .../apple-source-releases/ICU/default.nix | 119 +- .../apple-source-releases/IOKit/default.nix | 13 +- .../apple-source-releases/Libc/default.nix | 17 +- .../Librpcsvc/default.nix | 10 +- .../Libsystem/default.nix | 273 +- .../PowerManagement/default.nix | 11 +- .../apple-source-releases/Security/boot.nix | 6 +- .../Security/default.nix | 23 +- .../apple-source-releases/adv_cmds/boot.nix | 34 +- .../adv_cmds/default.nix | 16 +- .../architecture/default.nix | 10 +- .../basic_cmds/default.nix | 6 +- .../bootstrap_cmds/default.nix | 19 +- .../apple-source-releases/bsdmake/default.nix | 6 +- .../apple-source-releases/configd/default.nix | 43 +- .../apple-source-releases/default.nix | 566 +- .../developer-tools-11.3.1.nix | 10 +- .../developer_cmds/default.nix | 13 +- .../diskdev_cmds/default.nix | 16 +- .../apple-source-releases/dtrace/default.nix | 33 +- .../apple-source-releases/dyld/default.nix | 10 +- .../file_cmds/default.nix | 21 +- .../apple-source-releases/hfs/default.nix | 8 +- .../apple-source-releases/libauto/default.nix | 13 +- .../libiconv/default.nix | 9 +- .../libplatform/default.nix | 67 +- .../libpthread/default.nix | 13 +- .../libresolv/default.nix | 41 +- .../libunwind/default.nix | 9 +- .../apple-source-releases/libutil/default.nix | 46 +- .../apple-source-releases/macos-11.0.1.nix | 189 +- .../network_cmds/default.nix | 21 +- .../apple-source-releases/objc4/pure.nix | 18 +- .../shell_cmds/default.nix | 12 +- .../text_cmds/default.nix | 17 +- .../apple-source-releases/top/default.nix | 15 +- .../apple-source-releases/xnu/default.nix | 288 +- .../da/darwin/packages/binutils/default.nix | 170 +- .../da/darwin/packages/cctools/apple.nix | 181 +- .../da/darwin/packages/cctools/llvm.nix | 145 +- .../da/darwin/packages/cctools/port.nix | 96 +- .../packages/discrete-scroll/default.nix | 7 +- .../darwin/packages/impure-cmds/default.nix | 46 +- .../da/darwin/packages/ios-deploy/default.nix | 23 +- .../darwin/packages/iproute2mac/default.nix | 8 +- .../da/darwin/packages/libtapi/default.nix | 47 +- .../da/darwin/packages/lsusb/default.nix | 6 +- .../da/darwin/packages/openwith/default.nix | 21 +- .../packages/print-reexports/default.nix | 8 +- .../darwin/packages/rewrite-tbd/default.nix | 13 +- .../darwin/packages/signing-utils/default.nix | 7 +- .../signing-utils/post-link-sign-hook.nix | 6 +- .../da/darwin/packages/sigtool/default.nix | 8 +- .../da/darwin/packages/stubs/default.nix | 26 +- .../swift-corelibs/corefoundation.nix | 38 +- .../packages/swift-corelibs/libdispatch.nix | 13 +- .../da/darwin/packages/trash/default.nix | 17 +- .../da/darwin/packages/xattr/default.nix | 26 +- .../da/darwin/packages/xcode/default.nix | 95 +- .../da/darwin/packages/xcode/sdk-pkgs.nix | 84 +- pkgs/by-name/db/db/db-4.8.nix | 33 +- pkgs/by-name/db/db/db-5.3.nix | 29 +- pkgs/by-name/db/db/db-6.0.nix | 31 +- pkgs/by-name/db/db/db-6.2.nix | 31 +- pkgs/by-name/db/db/generic.nix | 163 +- pkgs/by-name/db/db/packages.nix | 3 +- pkgs/by-name/db/dblatex/default.nix | 118 +- pkgs/by-name/db/dblatex/packages.nix | 3 +- pkgs/by-name/db/dbus/default.nix | 132 +- pkgs/by-name/db/dbus/make-dbus-conf.nix | 32 +- pkgs/by-name/de/dejagnu/default.nix | 8 +- pkgs/by-name/de/dejavu-fonts/default.nix | 25 +- pkgs/by-name/de/dejavu-fonts/packages.nix | 5 +- pkgs/by-name/di/diffutils/default.nix | 27 +- pkgs/by-name/dj/djvulibre/default.nix | 26 +- pkgs/by-name/do/docbook/packages.nix | 7 +- .../docbook/schemas/docbook-5.0/default.nix | 30 +- .../docbook/schemas/sgml-dtd/docbook/3.1.nix | 24 +- .../docbook/schemas/sgml-dtd/docbook/4.1.nix | 24 +- .../schemas/xml-dtd/docbook-ebnf/default.nix | 6 +- .../docbook/schemas/xml-dtd/docbook/4.1.2.nix | 15 +- .../docbook/schemas/xml-dtd/docbook/4.2.nix | 15 +- .../docbook/schemas/xml-dtd/docbook/4.3.nix | 15 +- .../docbook/schemas/xml-dtd/docbook/4.4.nix | 15 +- .../docbook/schemas/xml-dtd/docbook/4.5.nix | 15 +- .../schemas/xml-dtd/docbook/generic.nix | 10 +- .../stylesheets/xslt/docbook-xsl/default.nix | 166 +- pkgs/by-name/do/docbook2x/default.nix | 52 +- pkgs/by-name/do/doxygen/default.nix | 50 +- pkgs/by-name/do/doxygen/packages.nix | 3 +- pkgs/by-name/e2/e2fsprogs/default.nix | 94 +- pkgs/by-name/ed/ed/default.nix | 9 +- pkgs/by-name/ed/ed/generic.nix | 31 +- pkgs/by-name/ed/ed/packages.nix | 6 +- pkgs/by-name/ed/ed/sources.nix | 54 +- pkgs/by-name/ed/editline/default.nix | 21 +- pkgs/by-name/el/elf-header/default.nix | 21 +- pkgs/by-name/el/elf-header/packages.nix | 3 +- pkgs/by-name/el/elfutils/default.nix | 105 +- pkgs/by-name/el/ell/default.nix | 30 +- pkgs/by-name/ep/epubcheck/default.nix | 16 +- pkgs/by-name/ex/expat/default.nix | 18 +- pkgs/by-name/ex/expect/default.nix | 22 +- pkgs/by-name/fi/file/default.nix | 19 +- pkgs/by-name/fi/file/packages.nix | 7 +- pkgs/by-name/fi/findutils/default.nix | 17 +- pkgs/by-name/fl/flex/2.5.35.nix | 24 +- pkgs/by-name/fl/flex/default.nix | 42 +- pkgs/by-name/fl/flex/packages.nix | 3 +- pkgs/by-name/fm/fmt/default.nix | 28 +- pkgs/by-name/fm/fmt/packages.nix | 3 +- pkgs/by-name/fo/fontconfig/default.nix | 64 +- .../fo/fontconfig/make-fonts-cache.nix | 7 +- .../by-name/fo/fontconfig/make-fonts-conf.nix | 54 +- pkgs/by-name/fo/fontconfig/packages.nix | 7 +- pkgs/by-name/fo/fontforge/default.nix | 80 +- pkgs/by-name/fo/fontforge/packages.nix | 13 +- pkgs/by-name/fo/fop/default.nix | 22 +- pkgs/by-name/fo/fortify-headers/default.nix | 9 +- pkgs/by-name/fr/freetype/default.nix | 94 +- pkgs/by-name/fu/fuse/common.nix | 150 +- pkgs/by-name/fu/fuse/default.nix | 7 +- pkgs/by-name/fu/fuse/packages.nix | 7 +- pkgs/by-name/ga/gawk/default.nix | 49 +- pkgs/by-name/ga/gawk/gawk-with-extensions.nix | 31 +- pkgs/by-name/ga/gawk/gawkextlib.nix | 164 +- pkgs/by-name/ga/gawk/packages.nix | 11 +- pkgs/by-name/gc/gcc/all.nix | 110 +- pkgs/by-name/gc/gcc/common/builder.nix | 523 +- pkgs/by-name/gc/gcc/common/checksum.nix | 83 +- .../by-name/gc/gcc/common/configure-flags.nix | 285 +- pkgs/by-name/gc/gcc/common/dependencies.nix | 157 +- .../gc/gcc/common/extra-target-flags.nix | 59 +- .../gc/gcc/common/libgcc-buildstuff.nix | 41 +- pkgs/by-name/gc/gcc/common/libgcc.nix | 309 +- pkgs/by-name/gc/gcc/common/meta.nix | 2 +- pkgs/by-name/gc/gcc/common/platform-flags.nix | 42 +- pkgs/by-name/gc/gcc/common/pre-configure.nix | 120 +- .../gc/gcc/common/strip-attributes.nix | 81 +- pkgs/by-name/gc/gcc/default.nix | 710 +- pkgs/by-name/gc/gcc/packages.nix | 542 +- pkgs/by-name/gc/gcc/patches/default.nix | 299 +- pkgs/by-name/gc/gcc/versions.nix | 49 +- pkgs/by-name/gd/gd/default.nix | 71 +- pkgs/by-name/gd/gd/packages.nix | 7 +- pkgs/by-name/gd/gdb/default.nix | 179 +- pkgs/by-name/gd/gdb/packages.nix | 7 +- pkgs/by-name/gd/gdbm/default.nix | 44 +- pkgs/by-name/ge/getopt/default.nix | 6 +- pkgs/by-name/ge/gettext/default.nix | 84 +- pkgs/by-name/ge/gettext/packages.nix | 3 +- pkgs/by-name/gh/ghostscript/default.nix | 156 +- pkgs/by-name/gh/ghostscript/packages.nix | 4 +- .../gh/ghostscript/test-corpus-render.nix | 7 +- pkgs/by-name/gi/giflib/default.nix | 47 +- pkgs/by-name/gi/git/default.nix | 528 +- pkgs/by-name/gi/git/packages.nix | 25 +- pkgs/by-name/gl/glib/default.nix | 381 +- pkgs/by-name/gl/glib/packages.nix | 3 +- pkgs/by-name/gl/glibc/common.nix | 526 +- pkgs/by-name/gl/glibc/default.nix | 273 +- pkgs/by-name/gl/glibc/info.nix | 13 +- pkgs/by-name/gl/glibc/locales.nix | 141 +- pkgs/by-name/gl/glibc/multi.nix | 15 +- pkgs/by-name/gl/glibc/packages.nix | 21 +- pkgs/by-name/gm/gmp/4.3.2.nix | 137 +- pkgs/by-name/gm/gmp/5.1.x.nix | 149 +- pkgs/by-name/gm/gmp/6.x.nix | 168 +- pkgs/by-name/gm/gmp/packages.nix | 3 +- pkgs/by-name/gn/gnu-config/default.nix | 14 +- pkgs/by-name/gn/gnugrep/default.nix | 62 +- pkgs/by-name/gn/gnulib/default.nix | 7 +- pkgs/by-name/gn/gnum4/default.nix | 23 +- pkgs/by-name/gn/gnum4/packages.nix | 3 +- pkgs/by-name/gn/gnumake/4.2/default.nix | 20 +- pkgs/by-name/gn/gnumake/default.nix | 25 +- pkgs/by-name/gn/gnumake/packages.nix | 3 +- pkgs/by-name/gn/gnupatch/default.nix | 20 +- pkgs/by-name/gn/gnupatch/packages.nix | 3 +- pkgs/by-name/gn/gnused/default.nix | 12 +- pkgs/by-name/gn/gnutar/default.nix | 28 +- pkgs/by-name/gn/gnutls/default.nix | 177 +- pkgs/by-name/gn/gnutls/packages.nix | 3 +- pkgs/by-name/gp/gperf/3.0.x.nix | 7 +- pkgs/by-name/gp/gperf/default.nix | 6 +- pkgs/by-name/gp/gperf/packages.nix | 3 +- pkgs/by-name/gp/gpm/default.nix | 28 +- pkgs/by-name/gp/gpm/packages.nix | 3 +- pkgs/by-name/gr/graphviz/default.nix | 87 +- pkgs/by-name/gr/graphviz/packages.nix | 3 +- pkgs/by-name/gr/groff/default.nix | 139 +- pkgs/by-name/gr/grpc/default.nix | 121 +- pkgs/by-name/gr/grpc/packages.nix | 11 +- pkgs/by-name/gs/gsasl/default.nix | 26 +- pkgs/by-name/gt/gtest/default.nix | 49 +- pkgs/by-name/gt/gtk-doc/default.nix | 32 +- pkgs/by-name/gu/guile/1.8.nix | 66 +- pkgs/by-name/gu/guile/2.0.nix | 183 +- pkgs/by-name/gu/guile/2.2.nix | 122 +- pkgs/by-name/gu/guile/3.0.nix | 135 +- pkgs/by-name/gu/guile/packages.nix | 3 +- pkgs/by-name/gz/gzip/default.nix | 64 +- pkgs/by-name/he/help2man/default.nix | 24 +- pkgs/by-name/hi/highlight/default.nix | 51 +- pkgs/by-name/hi/highlight/packages.nix | 7 +- pkgs/by-name/ht/http-parser/default.nix | 69 +- pkgs/by-name/hw/hwdata/default.nix | 6 +- pkgs/by-name/ic/icu/default.nix | 19 +- pkgs/by-name/ic/icu/make-icu.nix | 127 +- pkgs/by-name/ic/icu/packages.nix | 5 +- pkgs/by-name/im/imagemagick/6.x.nix | 175 +- pkgs/by-name/im/imagemagick/default.nix | 200 +- pkgs/by-name/im/imagemagick/packages.nix | 61 +- pkgs/by-name/im/imlib2/default.nix | 83 +- pkgs/by-name/im/imlib2/packages.nix | 7 +- pkgs/by-name/in/inotify-tools/default.nix | 19 +- pkgs/by-name/in/intltool/default.nix | 40 +- pkgs/by-name/ip/iptables/default.nix | 45 +- pkgs/by-name/ip/iptables/packages.nix | 3 +- pkgs/by-name/is/isl/generic.nix | 32 +- pkgs/by-name/is/isl/packages.nix | 3 +- pkgs/by-name/it/itstool/default.nix | 13 +- pkgs/by-name/ja/jansson/default.nix | 7 +- .../java/adoptopenjdk-bin/jdk-darwin-base.nix | 126 +- .../java/adoptopenjdk-bin/jdk-linux-base.nix | 239 +- .../ja/java/adoptopenjdk-bin/jdk11-linux.nix | 16 +- .../ja/java/adoptopenjdk-bin/jdk13-darwin.nix | 20 +- .../ja/java/adoptopenjdk-bin/jdk13-linux.nix | 20 +- .../ja/java/adoptopenjdk-bin/jdk14-darwin.nix | 20 +- .../ja/java/adoptopenjdk-bin/jdk14-linux.nix | 20 +- .../ja/java/adoptopenjdk-bin/jdk15-linux.nix | 16 +- .../ja/java/adoptopenjdk-bin/jdk16-linux.nix | 16 +- .../ja/java/adoptopenjdk-bin/jdk17-linux.nix | 8 +- .../ja/java/adoptopenjdk-bin/jdk8-linux.nix | 16 +- pkgs/by-name/ja/java/java-packages.nix | 310 +- pkgs/by-name/ja/java/openjdk/11.nix | 159 +- pkgs/by-name/ja/java/openjdk/12.nix | 152 +- pkgs/by-name/ja/java/openjdk/13.nix | 162 +- pkgs/by-name/ja/java/openjdk/14.nix | 161 +- pkgs/by-name/ja/java/openjdk/15.nix | 157 +- pkgs/by-name/ja/java/openjdk/16.nix | 162 +- pkgs/by-name/ja/java/openjdk/17.nix | 167 +- pkgs/by-name/ja/java/openjdk/18.nix | 167 +- pkgs/by-name/ja/java/openjdk/19.nix | 168 +- pkgs/by-name/ja/java/openjdk/20.nix | 168 +- pkgs/by-name/ja/java/openjdk/21.nix | 168 +- pkgs/by-name/ja/java/openjdk/22.nix | 234 +- pkgs/by-name/ja/java/openjdk/8.nix | 177 +- pkgs/by-name/ja/java/openjdk/bootstrap.nix | 58 +- pkgs/by-name/ja/java/openjdk/jre.nix | 18 +- .../ja/java/openjdk/make-bootstrap.nix | 8 +- pkgs/by-name/ja/java/openjdk/meta.nix | 20 +- pkgs/by-name/ja/java/openjdk/openjfx/11.nix | 128 +- pkgs/by-name/ja/java/openjdk/openjfx/15.nix | 128 +- pkgs/by-name/ja/java/openjdk/openjfx/17.nix | 124 +- pkgs/by-name/ja/java/openjdk/openjfx/19.nix | 161 +- pkgs/by-name/ja/java/openjdk/openjfx/20.nix | 137 +- pkgs/by-name/ja/java/openjdk/openjfx/21.nix | 137 +- pkgs/by-name/ja/java/openjdk/openjfx/22.nix | 130 +- .../ja/java/openjdk/tests/hello-logging.nix | 53 +- pkgs/by-name/ja/java/openjdk/tests/hello.nix | 53 +- .../java/openjdk/tests/test_jre_minimal.nix | 17 +- .../tests/test_jre_minimal_with_logging.nix | 17 +- pkgs/by-name/ja/java/packages.nix | 19 +- .../ja/java/semeru-bin/jdk-darwin-base.nix | 11 +- .../by-name/ja/java/semeru-bin/jdk-darwin.nix | 2 +- .../ja/java/semeru-bin/jdk-linux-base.nix | 11 +- pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix | 2 +- .../ja/java/temurin-bin/jdk-darwin-base.nix | 51 +- .../ja/java/temurin-bin/jdk-darwin.nix | 2 +- .../ja/java/temurin-bin/jdk-linux-base.nix | 102 +- .../by-name/ja/java/temurin-bin/jdk-linux.nix | 8 +- pkgs/by-name/ja/java/zulu/11.nix | 84 +- pkgs/by-name/ja/java/zulu/17.nix | 84 +- pkgs/by-name/ja/java/zulu/18.nix | 52 +- pkgs/by-name/ja/java/zulu/19.nix | 52 +- pkgs/by-name/ja/java/zulu/20.nix | 52 +- pkgs/by-name/ja/java/zulu/21.nix | 84 +- pkgs/by-name/ja/java/zulu/22.nix | 84 +- pkgs/by-name/ja/java/zulu/8.nix | 84 +- pkgs/by-name/ja/java/zulu/common.nix | 206 +- pkgs/by-name/je/jemalloc/default.nix | 26 +- pkgs/by-name/je/jemalloc/rust.nix | 29 +- pkgs/by-name/jq/jq/default.nix | 60 +- pkgs/by-name/js/json_c/default.nix | 14 +- pkgs/by-name/ke/kerberos/heimdal.nix | 132 +- pkgs/by-name/ke/kerberos/krb5.nix | 100 +- pkgs/by-name/ke/kerberos/packages.nix | 7 +- pkgs/by-name/ke/kernel-headers/default.nix | 175 +- pkgs/by-name/ke/kernel-headers/packages.nix | 6 +- pkgs/by-name/ke/keyutils/default.nix | 13 +- pkgs/by-name/lc/lcms2/default.nix | 21 +- pkgs/by-name/ld/ldns/default.nix | 39 +- pkgs/by-name/le/lerc/default.nix | 20 +- pkgs/by-name/li/libarchive/default.nix | 134 +- pkgs/by-name/li/libbsd/default.nix | 28 +- pkgs/by-name/li/libcap_ng/default.nix | 16 +- pkgs/by-name/li/libcpuid/default.nix | 13 +- pkgs/by-name/li/libdeflate/default.nix | 27 +- pkgs/by-name/li/libedit/default.nix | 37 +- pkgs/by-name/li/libepoxy/default.nix | 106 +- pkgs/by-name/li/libev/default.nix | 11 +- pkgs/by-name/li/libexecinfo/default.nix | 38 +- pkgs/by-name/li/libffi/3.3.nix | 21 +- pkgs/by-name/li/libffi/default.nix | 39 +- pkgs/by-name/li/libffi/packages.nix | 7 +- pkgs/by-name/li/libfido2/default.nix | 65 +- pkgs/by-name/li/libgcrypt/1.8.nix | 51 +- pkgs/by-name/li/libgcrypt/default.nix | 52 +- pkgs/by-name/li/libgcrypt/packages.nix | 3 +- pkgs/by-name/li/libgit2/default.nix | 70 +- pkgs/by-name/li/libgit2/packages.nix | 7 +- pkgs/by-name/li/libguestfs/appliance.nix | 17 +- pkgs/by-name/li/libguestfs/default.nix | 189 +- pkgs/by-name/li/libguestfs/packages.nix | 3 +- pkgs/by-name/li/libheif/default.nix | 54 +- pkgs/by-name/li/libical/default.nix | 113 +- pkgs/by-name/li/libiconv/default.nix | 16 +- pkgs/by-name/li/libiconv/packages.nix | 29 +- pkgs/by-name/li/libid3tag/default.nix | 13 +- pkgs/by-name/li/libidn2/default.nix | 30 +- .../li/libidn2/no-bootstrap-reference.nix | 28 +- pkgs/by-name/li/libipt/default.nix | 7 +- pkgs/by-name/li/libjpeg-turbo/default.nix | 105 +- pkgs/by-name/li/libjpeg-turbo/packages.nix | 3 +- pkgs/by-name/li/libjpeg/default.nix | 16 +- pkgs/by-name/li/libjpeg/packages.nix | 4 +- pkgs/by-name/li/libjxl/default.nix | 102 +- pkgs/by-name/li/liblqr1/default.nix | 25 +- pkgs/by-name/li/liblqr1/packages.nix | 7 +- pkgs/by-name/li/libmd/default.nix | 16 +- pkgs/by-name/li/libmnl/default.nix | 6 +- pkgs/by-name/li/libmpc/default.nix | 23 +- pkgs/by-name/li/libnatspec/default.nix | 9 +- .../li/libnetfilter_conntrack/default.nix | 10 +- pkgs/by-name/li/libnfnetlink/default.nix | 6 +- pkgs/by-name/li/libnftnl/default.nix | 8 +- pkgs/by-name/li/libnl/default.nix | 48 +- pkgs/by-name/li/libpcap/default.nix | 46 +- pkgs/by-name/li/libpfm/default.nix | 16 +- pkgs/by-name/li/libpipeline/default.nix | 6 +- pkgs/by-name/li/libpkgconf/default.nix | 57 +- pkgs/by-name/li/libpkgconf/packages.nix | 5 +- pkgs/by-name/li/libpng/12.nix | 19 +- pkgs/by-name/li/libpng/default.nix | 27 +- pkgs/by-name/li/libpng/packages.nix | 3 +- pkgs/by-name/li/libpsl/default.nix | 40 +- pkgs/by-name/li/libraw/default.nix | 31 +- pkgs/by-name/li/librsvg/default.nix | 234 +- pkgs/by-name/li/librsvg/packages.nix | 3 +- pkgs/by-name/li/libseccomp/default.nix | 24 +- pkgs/by-name/li/libsecret/default.nix | 96 +- pkgs/by-name/li/libselinux/default.nix | 90 +- pkgs/by-name/li/libsepol/default.nix | 19 +- pkgs/by-name/li/libsigsegv/default.nix | 7 +- pkgs/by-name/li/libsodium/default.nix | 24 +- pkgs/by-name/li/libsoup/3.x.nix | 82 +- pkgs/by-name/li/libsoup/default.nix | 76 +- pkgs/by-name/li/libspectre/default.nix | 13 +- pkgs/by-name/li/libssh2/default.nix | 23 +- pkgs/by-name/li/libstemmer/default.nix | 22 +- pkgs/by-name/li/libtiff/default.nix | 48 +- pkgs/by-name/li/libtiff/libtiff_t.nix | 36 +- pkgs/by-name/li/libtiff/packages.nix | 3 +- pkgs/by-name/li/libtool/default.nix | 12 +- pkgs/by-name/li/libtool/libtool2.nix | 44 +- pkgs/by-name/li/libtool/packages.nix | 3 +- pkgs/by-name/li/libuchardet/default.nix | 14 +- pkgs/by-name/li/libunistring/default.nix | 35 +- pkgs/by-name/li/libunwind/default.nix | 77 +- pkgs/by-name/li/libunwind/packages.nix | 12 +- pkgs/by-name/li/libuv/default.nix | 184 +- pkgs/by-name/li/libuv/packages.nix | 3 +- pkgs/by-name/li/libverto/default.nix | 27 +- pkgs/by-name/li/libwebp/default.nix | 93 +- pkgs/by-name/li/libxcrypt/default.nix | 52 +- pkgs/by-name/li/libxcrypt/packages.nix | 3 +- pkgs/by-name/li/libxml2/default.nix | 120 +- pkgs/by-name/li/libxml2/packages.nix | 7 +- pkgs/by-name/li/libxslt/default.nix | 91 +- pkgs/by-name/li/libxslt/packages.nix | 7 +- pkgs/by-name/li/lilypond/default.nix | 99 +- pkgs/by-name/li/lilypond/fonts.nix | 16 +- pkgs/by-name/li/lilypond/unstable.nix | 11 +- pkgs/by-name/li/lilypond/with-fonts.nix | 10 +- pkgs/by-name/li/lix/common.nix | 142 +- pkgs/by-name/li/lix/default.nix | 22 +- pkgs/by-name/li/lix/packages.nix | 15 +- pkgs/by-name/ll/llvm/12/default.nix | 701 +- pkgs/by-name/ll/llvm/12/llvm/default.nix | 690 +- pkgs/by-name/ll/llvm/13/default.nix | 716 +- pkgs/by-name/ll/llvm/13/llvm/default.nix | 602 +- pkgs/by-name/ll/llvm/14/default.nix | 695 +- pkgs/by-name/ll/llvm/14/llvm/default.nix | 622 +- pkgs/by-name/ll/llvm/15/default.nix | 731 +- pkgs/by-name/ll/llvm/15/llvm/default.nix | 869 +- pkgs/by-name/ll/llvm/16/default.nix | 715 +- pkgs/by-name/ll/llvm/16/llvm/default.nix | 841 +- pkgs/by-name/ll/llvm/17/default.nix | 685 +- pkgs/by-name/ll/llvm/17/llvm/default.nix | 828 +- pkgs/by-name/ll/llvm/18/default.nix | 658 +- pkgs/by-name/ll/llvm/18/llvm/default.nix | 847 +- pkgs/by-name/ll/llvm/common/bintools.nix | 93 +- pkgs/by-name/ll/llvm/common/clang/default.nix | 415 +- pkgs/by-name/ll/llvm/common/common-let.nix | 63 +- .../ll/llvm/common/compiler-rt/default.nix | 336 +- pkgs/by-name/ll/llvm/common/libclc.nix | 69 +- .../by-name/ll/llvm/common/libcxx/default.nix | 304 +- .../ll/llvm/common/libunwind/default.nix | 152 +- pkgs/by-name/ll/llvm/common/lld/default.nix | 151 +- .../ll/llvm/common/lldb-plugins/llef.nix | 11 +- pkgs/by-name/ll/llvm/common/lldb.nix | 392 +- pkgs/by-name/ll/llvm/common/mlir/default.nix | 88 +- .../by-name/ll/llvm/common/openmp/default.nix | 141 +- pkgs/by-name/ll/llvm/git/default.nix | 657 +- pkgs/by-name/ll/llvm/git/llvm/default.nix | 839 +- pkgs/by-name/ll/llvm/multi.nix | 80 +- pkgs/by-name/ll/llvm/packages.nix | 154 +- pkgs/by-name/lo/lowdown/default.nix | 36 +- pkgs/by-name/ls/lsof/default.nix | 37 +- pkgs/by-name/ly/lynx/default.nix | 32 +- pkgs/by-name/lz/lzip/default.nix | 16 +- pkgs/by-name/lz/lzo/default.nix | 8 +- pkgs/by-name/ma/mailcap/default.nix | 6 +- pkgs/by-name/ma/man-db/default.nix | 94 +- pkgs/by-name/ma/man-db/packages.nix | 3 +- pkgs/by-name/ma/maturin/default.nix | 27 +- pkgs/by-name/ma/maturin/packages.nix | 7 +- pkgs/by-name/ma/maturin/pyo3-test/default.nix | 4 +- pkgs/by-name/ma/maturin/pyo3-test/generic.nix | 28 +- pkgs/by-name/mc/mcpp/default.nix | 13 +- pkgs/by-name/md/mdbook-linkcheck/default.nix | 18 +- pkgs/by-name/md/mdbook-linkcheck/packages.nix | 7 +- pkgs/by-name/md/mdbook/default.nix | 16 +- pkgs/by-name/md/mdbook/packages.nix | 7 +- pkgs/by-name/me/memstream/default.nix | 6 +- pkgs/by-name/me/memstream/packages.nix | 3 +- pkgs/by-name/me/mercurial/default.nix | 199 +- pkgs/by-name/me/mercurial/packages.nix | 7 +- pkgs/by-name/me/mesa/default.nix | 758 +- pkgs/by-name/me/mesa/packages.nix | 12 +- pkgs/by-name/me/mesa/stubs.nix | 147 +- pkgs/by-name/me/meson/default.nix | 117 +- pkgs/by-name/me/meson/packages.nix | 14 +- pkgs/by-name/mi/minizip/default.nix | 8 +- pkgs/by-name/mp/mpdecimal/default.nix | 15 +- pkgs/by-name/mp/mpfr/default.nix | 21 +- pkgs/by-name/ms/mscgen/default.nix | 43 +- pkgs/by-name/mu/musl/default.nix | 137 +- pkgs/by-name/mu/musl/packages.nix | 7 +- pkgs/by-name/na/nasm/default.nix | 16 +- pkgs/by-name/nc/ncompress/default.nix | 6 +- pkgs/by-name/nc/ncurses/default.nix | 264 +- pkgs/by-name/nc/ncurses/packages.nix | 16 +- pkgs/by-name/ne/netbsd/default.nix | 275 +- pkgs/by-name/ne/netbsd/packages.nix | 7 +- .../by-name/ne/netbsd/pkgs/compat/package.nix | 172 +- pkgs/by-name/ne/netbsd/pkgs/config.nix | 27 +- pkgs/by-name/ne/netbsd/pkgs/csu.nix | 49 +- pkgs/by-name/ne/netbsd/pkgs/fts/package.nix | 19 +- pkgs/by-name/ne/netbsd/pkgs/headers.nix | 8 +- pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix | 6 +- pkgs/by-name/ne/netbsd/pkgs/include.nix | 32 +- .../ne/netbsd/pkgs/install/package.nix | 81 +- pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix | 16 +- pkgs/by-name/ne/netbsd/pkgs/libc.nix | 59 +- pkgs/by-name/ne/netbsd/pkgs/libcurses.nix | 24 +- pkgs/by-name/ne/netbsd/pkgs/libedit.nix | 52 +- pkgs/by-name/ne/netbsd/pkgs/libm.nix | 6 +- pkgs/by-name/ne/netbsd/pkgs/libpci.nix | 6 +- .../ne/netbsd/pkgs/libpthread/base.nix | 1 - .../ne/netbsd/pkgs/libpthread/headers.nix | 17 +- .../ne/netbsd/pkgs/libpthread/package.nix | 39 +- pkgs/by-name/ne/netbsd/pkgs/libresolv.nix | 6 +- pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix | 28 +- pkgs/by-name/ne/netbsd/pkgs/librt.nix | 7 +- pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix | 33 +- pkgs/by-name/ne/netbsd/pkgs/libutil.nix | 39 +- pkgs/by-name/ne/netbsd/pkgs/lorder.nix | 21 +- pkgs/by-name/ne/netbsd/pkgs/make.nix | 97 +- pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix | 15 +- pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix | 172 +- pkgs/by-name/ne/netbsd/pkgs/nbperf.nix | 1 - .../netbsd/pkgs/netbsdSetupHook/package.nix | 4 +- pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix | 17 +- pkgs/by-name/ne/netbsd/pkgs/stat/package.nix | 21 +- pkgs/by-name/ne/netbsd/pkgs/sys/base.nix | 54 +- pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix | 50 +- pkgs/by-name/ne/netbsd/pkgs/sys/package.nix | 50 +- pkgs/by-name/ne/netbsd/pkgs/tic.nix | 31 +- pkgs/by-name/ne/netbsd/pkgs/tsort.nix | 21 +- pkgs/by-name/ne/netbsd/pkgs/uudecode.nix | 7 +- pkgs/by-name/ne/netpbm/default.nix | 101 +- pkgs/by-name/ng/nghttp2/default.nix | 95 +- pkgs/by-name/ng/nghttp2/packages.nix | 3 +- pkgs/by-name/ng/nghttp3/default.nix | 23 +- pkgs/by-name/ng/nghttp3/packages.nix | 3 +- pkgs/by-name/ng/ngtcp2/default.nix | 31 +- pkgs/by-name/ng/ngtcp2/gnutls.nix | 32 +- pkgs/by-name/ng/ngtcp2/packages.nix | 3 +- pkgs/by-name/ni/ninja/default.nix | 122 +- pkgs/by-name/ni/nix/common.nix | 483 +- pkgs/by-name/ni/nix/default.nix | 400 +- pkgs/by-name/ni/nix/nix-perl.nix | 85 +- pkgs/by-name/ni/nix/packages.nix | 15 +- pkgs/by-name/ni/nixdoc/default.nix | 43 +- pkgs/by-name/nl/nlohmann_json/default.nix | 12 +- pkgs/by-name/on/oniguruma/default.nix | 13 +- pkgs/by-name/op/openexr/3.nix | 37 +- pkgs/by-name/op/openexr/default.nix | 27 +- pkgs/by-name/op/openexr/packages.nix | 3 +- pkgs/by-name/op/openjpeg/default.nix | 47 +- pkgs/by-name/op/openldap/default.nix | 74 +- pkgs/by-name/op/openmpi/default.nix | 174 +- pkgs/by-name/op/openmpi/packages.nix | 3 +- pkgs/by-name/op/opensp/default.nix | 40 +- pkgs/by-name/op/openssh/common.nix | 149 +- pkgs/by-name/op/openssh/copyid.nix | 20 +- pkgs/by-name/op/openssh/default.nix | 49 +- pkgs/by-name/op/openssh/packages.nix | 17 +- pkgs/by-name/op/openssl/default.nix | 518 +- pkgs/by-name/op/openssl/packages.nix | 10 +- pkgs/by-name/pa/pam/default.nix | 63 +- pkgs/by-name/pa/pam/packages.nix | 3 +- pkgs/by-name/pa/pango/default.nix | 119 +- pkgs/by-name/pa/pango/packages.nix | 7 +- pkgs/by-name/pa/patchelf/default.nix | 9 +- pkgs/by-name/pa/patchelf/unstable.nix | 13 +- pkgs/by-name/pa/patchutils/0.3.3.nix | 15 +- pkgs/by-name/pa/patchutils/0.4.2.nix | 19 +- pkgs/by-name/pa/patchutils/default.nix | 13 +- pkgs/by-name/pa/patchutils/generic.nix | 30 +- pkgs/by-name/pa/patchutils/packages.nix | 3 +- pkgs/by-name/pb/pbzx/default.nix | 13 +- pkgs/by-name/pc/pcre/default.nix | 57 +- pkgs/by-name/pc/pcre/packages.nix | 3 +- pkgs/by-name/pc/pcre2/default.nix | 35 +- pkgs/by-name/pe/perl/default.nix | 112 +- pkgs/by-name/pe/perl/interpreter.nix | 477 +- pkgs/by-name/pe/perl/packages.nix | 3 +- .../perl/perl-modules/Bio-BigFile/default.nix | 25 +- .../perl-modules/Bio-Ext-Align/default.nix | 13 +- .../perl-modules/ImageExifTool/default.nix | 31 +- .../pe/perl/perl-modules/MNI/default.nix | 19 +- .../perl-modules/Mozilla-LDAP/default.nix | 13 +- .../perl-modules/Percona-Toolkit/default.nix | 18 +- .../pe/perl/perl-modules/Po4a/default.nix | 53 +- .../pe/perl/perl-modules/Tirex/default.nix | 21 +- .../WWW-YoutubeViewer/default.nix | 18 +- .../pe/perl/perl-modules/generic/default.nix | 104 +- .../pe/perl/perl-modules/ham/default.nix | 24 +- .../pe/perl/perl-modules/maatkit/default.nix | 11 +- .../strip-nondeterminism/default.nix | 46 +- pkgs/by-name/pe/perl/perl-packages.nix | 644 +- pkgs/by-name/pe/perl/wrapper.nix | 89 +- pkgs/by-name/pi/pixman/default.nix | 32 +- pkgs/by-name/pk/pkg-config/default.nix | 55 +- pkgs/by-name/pk/pkg-config/packages.nix | 13 +- pkgs/by-name/po/potrace/default.nix | 7 +- pkgs/by-name/pr/procps-ng/default.nix | 64 +- pkgs/by-name/pr/procps-ng/packages.nix | 8 +- pkgs/by-name/ps/psutils/default.nix | 7 +- pkgs/by-name/pu/publicsuffix-list/default.nix | 6 +- pkgs/by-name/py/python/conda/default.nix | 42 +- .../by-name/py/python/cpython/2.7/default.nix | 349 +- pkgs/by-name/py/python/cpython/default.nix | 1068 +- .../py/python/cpython/docs/2.7-html.nix | 6 +- .../py/python/cpython/docs/2.7-pdf-a4.nix | 6 +- .../py/python/cpython/docs/2.7-pdf-letter.nix | 6 +- .../py/python/cpython/docs/2.7-text.nix | 6 +- .../py/python/cpython/docs/3.10-html.nix | 6 +- .../py/python/cpython/docs/3.10-pdf-a4.nix | 6 +- .../python/cpython/docs/3.10-pdf-letter.nix | 6 +- .../py/python/cpython/docs/3.10-texinfo.nix | 6 +- .../py/python/cpython/docs/3.10-text.nix | 6 +- .../py/python/cpython/docs/default.nix | 72 +- .../py/python/cpython/docs/template-info.nix | 6 +- .../py/python/cpython/docs/template.nix | 6 +- pkgs/by-name/py/python/default.nix | 406 +- pkgs/by-name/py/python/hooks/default.nix | 291 +- .../py/python/hooks/pypa-build-hook-test.nix | 34 +- .../python-catch-conflicts-hook-tests.nix | 224 +- pkgs/by-name/py/python/manylinux/default.nix | 120 +- .../py/python/mk-python-derivation.nix | 578 +- pkgs/by-name/py/python/packages.nix | 90 +- pkgs/by-name/py/python/passthrufun.nix | 245 +- pkgs/by-name/py/python/pypy/default.nix | 248 +- pkgs/by-name/py/python/pypy/prebuilt.nix | 175 +- pkgs/by-name/py/python/pypy/prebuilt_2_7.nix | 165 +- .../python/python-modules/aiohttp/default.nix | 140 +- .../python-modules/alabaster/default.nix | 11 +- .../python/python-modules/attrs/default.nix | 21 +- .../py/python/python-modules/attrs/tests.nix | 9 +- .../python/python-modules/babel/default.nix | 39 +- .../backports-zoneinfo/default.nix | 29 +- .../bootstrap/build/default.nix | 68 +- .../bootstrap/flit-core/default.nix | 16 +- .../bootstrap/installer/default.nix | 18 +- .../bootstrap/packaging/default.nix | 11 +- .../python-modules/brotlicffi/default.nix | 25 +- .../python/python-modules/build/default.nix | 31 +- .../python-modules/buildcatrust/default.nix | 19 +- .../python/python-modules/calver/default.nix | 15 +- .../python/python-modules/certifi/default.nix | 27 +- .../py/python/python-modules/cffi/default.nix | 141 +- .../python/python-modules/chardet/default.nix | 19 +- .../charset-normalizer/default.nix | 27 +- .../py/python/python-modules/cython/0.nix | 51 +- .../python/python-modules/cython/default.nix | 49 +- .../python-modules/docutils/default.nix | 28 +- .../python-modules/editables/default.nix | 19 +- .../python-modules/exceptiongroup/default.nix | 41 +- .../python/python-modules/execnet/default.nix | 41 +- .../python/python-modules/fb-re2/default.nix | 11 +- .../python-modules/filelock/default.nix | 17 +- .../python-modules/flit-core/default.nix | 7 +- .../py/python/python-modules/flit/default.nix | 31 +- .../python-modules/freezegun/default.nix | 31 +- .../python-modules/func-timeout/default.nix | 13 +- .../python/python-modules/gevent/default.nix | 43 +- .../python-modules/greenlet/default.nix | 105 +- .../python-modules/hatch-vcs/default.nix | 25 +- .../python-modules/hatchling/default.nix | 42 +- .../python-modules/html5lib/default.nix | 24 +- .../python-modules/hypothesis/default.nix | 83 +- .../py/python/python-modules/idna/default.nix | 19 +- .../python-modules/imagesize/default.nix | 7 +- .../importlib-metadata/default.nix | 32 +- .../python-modules/iniconfig/default.nix | 21 +- .../python-modules/installer/default.nix | 11 +- .../jaraco-itertools/default.nix | 17 +- .../python/python-modules/jinja2/default.nix | 45 +- .../py/python/python-modules/lxml/default.nix | 29 +- .../python-modules/markupsafe/default.nix | 33 +- .../python/python-modules/mkdocs/default.nix | 75 +- .../py/python/python-modules/mock/default.nix | 19 +- .../py/python/python-modules/nose/default.nix | 34 +- .../python/python-modules/numpy/default.nix | 147 +- .../python-modules/packaging/default.nix | 32 +- .../pallets-sphinx-themes/default.nix | 13 +- .../python-modules/pathspec/default.nix | 25 +- .../python/python-modules/pluggy/default.nix | 15 +- .../py/python/python-modules/pluggy/tests.nix | 7 +- .../python/python-modules/pretend/default.nix | 19 +- .../python/python-modules/psutil/default.nix | 34 +- .../python-modules/pycparser/default.nix | 12 +- .../python-modules/pyelftools/default.nix | 22 +- .../python/python-modules/pygit2/default.nix | 51 +- .../python-modules/pygments/default.nix | 36 +- .../pyproject-hooks/default.nix | 25 +- .../python/python-modules/pysocks/default.nix | 9 +- .../python-modules/pystemmer/default.nix | 31 +- .../python-modules/pytest-asyncio/default.nix | 29 +- .../python-modules/pytest-asyncio/tests.nix | 17 +- .../python-modules/pytest-expect/default.nix | 18 +- .../python-modules/pytest-mock/default.nix | 25 +- .../pytest-rerunfailures/default.nix | 17 +- .../python-modules/pytest-timeout/default.nix | 25 +- .../python-modules/pytest-xdist/default.nix | 35 +- .../py/python/python-modules/pytest/7.nix | 220 +- .../python/python-modules/pytest/default.nix | 78 +- .../py/python/python-modules/pytest/tests.nix | 7 +- .../python-dateutil/default.nix | 16 +- .../py/python/python-modules/pytz/default.nix | 20 +- .../python-modules/requests/default.nix | 90 +- .../python-modules/responses/default.nix | 45 +- .../python-modules/setproctitle/default.nix | 27 +- .../python-modules/setuptools-scm/default.nix | 37 +- .../python-modules/setuptools-scm/tests.nix | 15 +- .../python-modules/setuptools/default.nix | 21 +- .../py/python/python-modules/six/default.nix | 27 +- .../snowballstemmer/default.nix | 7 +- .../python-modules/sphinx-issues/default.nix | 13 +- .../python/python-modules/sphinx/default.nix | 140 +- .../sphinxcontrib-applehelp/default.nix | 15 +- .../sphinxcontrib-devhelp/default.nix | 15 +- .../sphinxcontrib-htmlhelp/default.nix | 15 +- .../sphinxcontrib-jsmath/default.nix | 9 +- .../sphinxcontrib-log-cabinet/default.nix | 7 +- .../sphinxcontrib-qthelp/default.nix | 15 +- .../sphinxcontrib-serializinghtml/default.nix | 15 +- .../sphinxcontrib-websupport/default.nix | 17 +- .../python-modules/testpath/default.nix | 21 +- .../py/python/python-modules/toml/default.nix | 6 +- .../python/python-modules/tomli-w/default.nix | 11 +- .../python/python-modules/tomli/default.nix | 13 +- .../py/python/python-modules/tornado/4.nix | 15 +- .../py/python/python-modules/tornado/5.nix | 15 +- .../python/python-modules/tornado/default.nix | 40 +- .../trove-classifiers/default.nix | 21 +- .../python/python-modules/trustme/default.nix | 28 +- .../typing-extensions/default.nix | 19 +- .../python/python-modules/urllib3/default.nix | 158 +- .../python-modules/virtualenv/default.nix | 84 +- .../wcag-contrast-ratio/default.nix | 15 +- .../python-modules/webencodings/default.nix | 9 +- .../python/python-modules/wheel/default.nix | 13 +- .../py/python/python-modules/zipp/default.nix | 88 +- .../python-modules/zope-event/default.nix | 7 +- .../python-modules/zope-interface/default.nix | 9 +- .../py/python/python-packages-base.nix | 141 +- pkgs/by-name/py/python/python-packages.nix | 18132 ++- pkgs/by-name/py/python/python2-packages.nix | 4 +- .../python/python2/mk-python-derivation.nix | 426 +- pkgs/by-name/py/python/rustpython/default.nix | 13 +- pkgs/by-name/py/python/setup-hook.nix | 23 +- pkgs/by-name/py/python/tests.nix | 352 +- .../python/tests/test_cpython_gdb/default.nix | 11 +- .../tests/test_nix_pythonprefix/default.nix | 22 +- .../typeddep/default.nix | 1 - .../py/python/tests/test_tkinter/default.nix | 13 +- .../update-python-libraries/default.nix | 40 +- pkgs/by-name/py/python/with-packages.nix | 6 +- pkgs/by-name/py/python/wrap-python.nix | 91 +- pkgs/by-name/py/python/wrapper.nix | 123 +- pkgs/by-name/qr/qrencode/default.nix | 29 +- pkgs/by-name/qr/qrencode/packages.nix | 7 +- pkgs/by-name/qu/quictls/default.nix | 246 +- pkgs/by-name/ra/rapidcheck/default.nix | 22 +- pkgs/by-name/re/re2/default.nix | 28 +- pkgs/by-name/re/re2c/default.nix | 25 +- pkgs/by-name/re/readline/7.0.nix | 43 +- pkgs/by-name/re/readline/8.2.nix | 105 +- pkgs/by-name/re/readline/packages.nix | 3 +- .../re/readline/readline-7.0-patches.nix | 10 +- .../re/readline/readline-8.2-patches.nix | 20 +- pkgs/by-name/rh/rhash/default.nix | 15 +- pkgs/by-name/rs/rsync/default.nix | 74 +- pkgs/by-name/rs/rsync/packages.nix | 3 +- pkgs/by-name/rs/rsync/rrsync.nix | 6 +- pkgs/by-name/rt/rtmpdump/default.nix | 43 +- pkgs/by-name/rt/rtmpdump/packages.nix | 8 +- pkgs/by-name/ru/rust-audit-info/default.nix | 11 +- pkgs/by-name/ru/rust/1_77.nix | 101 +- pkgs/by-name/ru/rust/binary.nix | 53 +- pkgs/by-name/ru/rust/bootstrap.nix | 21 +- .../ru/rust/cargo-auditable-cargo-wrapper.nix | 48 +- pkgs/by-name/ru/rust/cargo-auditable.nix | 46 +- pkgs/by-name/ru/rust/cargo.nix | 166 +- pkgs/by-name/ru/rust/cargo_cross.nix | 32 +- pkgs/by-name/ru/rust/clippy.nix | 17 +- pkgs/by-name/ru/rust/default.nix | 187 +- pkgs/by-name/ru/rust/make-rust-platform.nix | 71 +- pkgs/by-name/ru/rust/packages.nix | 12 +- pkgs/by-name/ru/rust/rust-src.nix | 42 +- pkgs/by-name/ru/rust/rustc.nix | 443 +- pkgs/by-name/ru/rust/rustfmt.nix | 23 +- pkgs/by-name/ru/rustls-ffi/default.nix | 23 +- pkgs/by-name/ru/rustls-ffi/packages.nix | 7 +- pkgs/by-name/s2/s2n-tls/default.nix | 34 +- pkgs/by-name/sc/scons/3.1.2.nix | 11 +- pkgs/by-name/sc/scons/4.1.0.nix | 11 +- pkgs/by-name/sc/scons/4.5.2.nix | 15 +- pkgs/by-name/sc/scons/packages.nix | 3 +- pkgs/by-name/se/serf/default.nix | 64 +- pkgs/by-name/sh/shadow/default.nix | 80 +- pkgs/by-name/sh/sharutils/default.nix | 52 +- pkgs/by-name/so/sourceHighlight/default.nix | 60 +- pkgs/by-name/sp/spdlog/default.nix | 37 +- pkgs/by-name/sp/sphinx/packages.nix | 3 +- pkgs/by-name/sp/spice-protocol/default.nix | 13 +- pkgs/by-name/sq/sqlite/default.nix | 39 +- pkgs/by-name/sq/sqlite/packages.nix | 10 +- pkgs/by-name/sq/sqlite/sqlar.nix | 31 +- pkgs/by-name/sq/sqlite/tools.nix | 66 +- pkgs/by-name/su/subversion/default.nix | 258 +- pkgs/by-name/su/subversion/packages.nix | 14 +- pkgs/by-name/sw/swig/2.x.nix | 18 +- pkgs/by-name/sw/swig/3.x.nix | 18 +- pkgs/by-name/sw/swig/4.nix | 18 +- pkgs/by-name/sw/swig/default.nix | 14 +- pkgs/by-name/sw/swig/packages.nix | 3 +- pkgs/by-name/sy/systemd/default.nix | 1366 +- pkgs/by-name/sy/systemd/packages.nix | 11 +- pkgs/by-name/tc/tcb/default.nix | 21 +- pkgs/by-name/tc/tcl/8.5.nix | 23 +- pkgs/by-name/tc/tcl/8.6.nix | 23 +- pkgs/by-name/tc/tcl/generic.nix | 129 +- pkgs/by-name/tc/tcl/mk-tcl-derivation.nix | 106 +- pkgs/by-name/tc/tcl/packages.nix | 3 +- pkgs/by-name/te/termcap/default.nix | 63 +- pkgs/by-name/te/texinfo/4.13a.nix | 12 +- pkgs/by-name/te/texinfo/common.nix | 83 +- pkgs/by-name/te/texinfo/packages.nix | 3 +- pkgs/by-name/te/texlive/bin.nix | 1178 +- pkgs/by-name/te/texlive/build-tex-env.nix | 662 +- .../te/texlive/build-texlive-package.nix | 321 +- pkgs/by-name/te/texlive/combine-wrapper.nix | 82 +- pkgs/by-name/te/texlive/default.nix | 630 +- pkgs/by-name/te/texlive/fixed-hashes.nix | 23424 +++- .../te/texlive/generate-fixed-hashes.nix | 46 +- pkgs/by-name/te/texlive/packages.nix | 16 +- pkgs/by-name/te/texlive/tlpdb-overrides.nix | 261 +- pkgs/by-name/te/texlive/tlpdb.nix | 109186 ++++++++------- pkgs/by-name/ti/tix/default.nix | 61 +- pkgs/by-name/tk/tk/8.5.nix | 52 +- pkgs/by-name/tk/tk/8.6.nix | 36 +- pkgs/by-name/tk/tk/generic.nix | 82 +- pkgs/by-name/tk/tk/packages.nix | 3 +- pkgs/by-name/to/toml11/default.nix | 13 +- pkgs/by-name/tr/tracker/default.nix | 158 +- pkgs/by-name/tr/tradcpp/default.nix | 7 +- pkgs/by-name/tz/tzdata/default.nix | 82 +- pkgs/by-name/un/unifdef/default.nix | 11 +- pkgs/by-name/un/unixtools/packages.nix | 24 +- pkgs/by-name/un/unixtools/unixtools.nix | 111 +- pkgs/by-name/un/unzip/default.nix | 134 +- pkgs/by-name/ut/util-linux/default.nix | 147 +- pkgs/by-name/ut/util-linux/packages.nix | 8 +- pkgs/by-name/w3/w3m/default.nix | 58 +- pkgs/by-name/w3/w3m/packages.nix | 3 +- pkgs/by-name/wi/which/default.nix | 6 +- .../wi/windows/cygwin-setup/default.nix | 48 +- pkgs/by-name/wi/windows/default.nix | 70 +- pkgs/by-name/wi/windows/dlfcn/default.nix | 7 +- pkgs/by-name/wi/windows/libgnurx/default.nix | 9 +- .../wi/windows/mcfgthreads/default.nix | 18 +- .../wi/windows/mcfgthreads/pre_gcc_13.nix | 15 +- pkgs/by-name/wi/windows/mingw-w64/default.nix | 28 +- pkgs/by-name/wi/windows/mingwrt/default.nix | 11 +- .../by-name/wi/windows/npiperelay/default.nix | 6 +- .../wi/windows/pthread-w32/default.nix | 11 +- pkgs/by-name/wi/windows/w32api/default.nix | 6 +- pkgs/by-name/wo/wolfssl/default.nix | 96 +- pkgs/by-name/wo/wolfssl/packages.nix | 3 +- pkgs/by-name/xa/xar/default.nix | 58 +- pkgs/by-name/xc/xcbuild/default.nix | 96 +- pkgs/by-name/xc/xcbuild/packages.nix | 5 +- pkgs/by-name/xc/xcbuild/platforms.nix | 47 +- pkgs/by-name/xc/xcbuild/sdks.nix | 34 +- pkgs/by-name/xc/xcbuild/toolchains.nix | 102 +- pkgs/by-name/xc/xcbuild/wrapper.nix | 244 +- pkgs/by-name/xm/xmlto/default.nix | 40 +- pkgs/by-name/xm/xmlto/packages.nix | 7 +- pkgs/by-name/xo/xorg/default.nix | 13237 +- pkgs/by-name/xo/xorg/overrides.nix | 1380 +- pkgs/by-name/xo/xorg/packages.nix | 39 +- pkgs/by-name/xo/xorg/xcb-util-xrm.nix | 22 +- pkgs/by-name/xo/xorg/xwayland.nix | 98 +- pkgs/by-name/xz/xz/default.nix | 49 +- pkgs/by-name/zl/zlib/default.nix | 100 +- pkgs/by-name/zs/zstd/default.nix | 84 +- pkgs/by-name/zs/zstd/packages.nix | 7 +- pkgs/common-updater/combinators.nix | 105 +- .../directory-listing-updater.nix | 40 +- pkgs/common-updater/generic-updater.nix | 45 +- pkgs/common-updater/git-updater.nix | 42 +- .../http-two-levels-updater.nix | 38 +- pkgs/common-updater/nix-update.nix | 5 +- pkgs/common-updater/packages.nix | 3 +- pkgs/common-updater/scripts.nix | 35 +- pkgs/common-updater/unstable-updater.nix | 47 +- pkgs/pkgs-lib/default.nix | 8 +- pkgs/pkgs-lib/formats.nix | 848 +- pkgs/pkgs-lib/formats/hocon/default.nix | 355 +- .../test/backwards-compatibility/default.nix | 54 +- .../hocon/test/comprehensive/default.nix | 76 +- pkgs/pkgs-lib/formats/hocon/test/default.nix | 23 +- .../formats/java-properties/default.nix | 256 +- .../formats/java-properties/test/default.nix | 39 +- pkgs/pkgs-lib/formats/libconfig/default.nix | 195 +- .../libconfig/test/comprehensive/default.nix | 82 +- pkgs/pkgs-lib/tests/default.nix | 55 +- pkgs/pkgs-lib/tests/formats.nix | 231 +- pkgs/stdenv/adapters.nix | 498 +- pkgs/stdenv/booter.nix | 156 +- pkgs/stdenv/cross/default.nix | 139 +- pkgs/stdenv/custom/default.nix | 20 +- pkgs/stdenv/darwin/default.nix | 3417 +- pkgs/stdenv/darwin/make-bootstrap-tools.nix | 530 +- pkgs/stdenv/default.nix | 36 +- pkgs/stdenv/freebsd/default.nix | 483 +- pkgs/stdenv/freebsd/trivial-builder.nix | 20 +- pkgs/stdenv/generic/check-meta.nix | 653 +- pkgs/stdenv/generic/common-path.nix | 3 +- pkgs/stdenv/generic/default.nix | 298 +- pkgs/stdenv/generic/make-derivation.nix | 1120 +- pkgs/stdenv/generic/meta-types.nix | 76 +- .../mips64el-unknown-linux-gnuabi64.nix | 2 +- .../linux/bootstrap-tools-musl/default.nix | 41 +- pkgs/stdenv/linux/bootstrap-tools/default.nix | 41 +- pkgs/stdenv/linux/default.nix | 1101 +- .../linux/make-bootstrap-tools-cross.nix | 58 +- pkgs/stdenv/linux/make-bootstrap-tools.nix | 419 +- pkgs/stdenv/native/default.nix | 185 +- pkgs/stdenv/nix/default.nix | 39 +- pkgs/top-level/base-packages.nix | 179 +- pkgs/top-level/config.nix | 68 +- pkgs/top-level/default.nix | 114 +- pkgs/top-level/impure.nix | 121 +- pkgs/top-level/splice.nix | 168 +- pkgs/top-level/stage.nix | 386 +- 1437 files changed, 178896 insertions(+), 131776 deletions(-) diff --git a/default.nix b/default.nix index fceb631..bdab048 100644 --- a/default.nix +++ b/default.nix @@ -1,6 +1,8 @@ -let requiredVersion = import ./lib/minver.nix; in +let + requiredVersion = import ./lib/minver.nix; +in -if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then +if !builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then abort '' @@ -25,4 +27,4 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins. else - import ./pkgs/top-level/impure.nix \ No newline at end of file + import ./pkgs/top-level/impure.nix diff --git a/flake.nix b/flake.nix index 30263b8..dc0cff4 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,20 @@ { - outputs = { self, ... }: + outputs = + { self, ... }: let forAllSystems = self.lib.genAttrs self.lib.systems.flakeExposed; in { lib = import ./lib; - auxPackages = forAllSystems (system: + auxPackages = forAllSystems ( + system: ( - let requiredVersion = import ./lib/minver.nix; in + let + requiredVersion = import ./lib/minver.nix; + in - if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then + if !builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.nixVersion == 1 then abort '' This version of Nixpkgs requires Nix >= ${requiredVersion}, please upgrade: diff --git a/lib/ascii-table.nix b/lib/ascii-table.nix index 7498993..dd1c4bd 100644 --- a/lib/ascii-table.nix +++ b/lib/ascii-table.nix @@ -1,99 +1,100 @@ -{ "\t" = 9; +{ + "\t" = 9; "\n" = 10; "\r" = 13; - " " = 32; - "!" = 33; + " " = 32; + "!" = 33; "\"" = 34; - "#" = 35; - "$" = 36; - "%" = 37; - "&" = 38; - "'" = 39; - "(" = 40; - ")" = 41; - "*" = 42; - "+" = 43; - "," = 44; - "-" = 45; - "." = 46; - "/" = 47; - "0" = 48; - "1" = 49; - "2" = 50; - "3" = 51; - "4" = 52; - "5" = 53; - "6" = 54; - "7" = 55; - "8" = 56; - "9" = 57; - ":" = 58; - ";" = 59; - "<" = 60; - "=" = 61; - ">" = 62; - "?" = 63; - "@" = 64; - "A" = 65; - "B" = 66; - "C" = 67; - "D" = 68; - "E" = 69; - "F" = 70; - "G" = 71; - "H" = 72; - "I" = 73; - "J" = 74; - "K" = 75; - "L" = 76; - "M" = 77; - "N" = 78; - "O" = 79; - "P" = 80; - "Q" = 81; - "R" = 82; - "S" = 83; - "T" = 84; - "U" = 85; - "V" = 86; - "W" = 87; - "X" = 88; - "Y" = 89; - "Z" = 90; - "[" = 91; + "#" = 35; + "$" = 36; + "%" = 37; + "&" = 38; + "'" = 39; + "(" = 40; + ")" = 41; + "*" = 42; + "+" = 43; + "," = 44; + "-" = 45; + "." = 46; + "/" = 47; + "0" = 48; + "1" = 49; + "2" = 50; + "3" = 51; + "4" = 52; + "5" = 53; + "6" = 54; + "7" = 55; + "8" = 56; + "9" = 57; + ":" = 58; + ";" = 59; + "<" = 60; + "=" = 61; + ">" = 62; + "?" = 63; + "@" = 64; + "A" = 65; + "B" = 66; + "C" = 67; + "D" = 68; + "E" = 69; + "F" = 70; + "G" = 71; + "H" = 72; + "I" = 73; + "J" = 74; + "K" = 75; + "L" = 76; + "M" = 77; + "N" = 78; + "O" = 79; + "P" = 80; + "Q" = 81; + "R" = 82; + "S" = 83; + "T" = 84; + "U" = 85; + "V" = 86; + "W" = 87; + "X" = 88; + "Y" = 89; + "Z" = 90; + "[" = 91; "\\" = 92; - "]" = 93; - "^" = 94; - "_" = 95; - "`" = 96; - "a" = 97; - "b" = 98; - "c" = 99; - "d" = 100; - "e" = 101; - "f" = 102; - "g" = 103; - "h" = 104; - "i" = 105; - "j" = 106; - "k" = 107; - "l" = 108; - "m" = 109; - "n" = 110; - "o" = 111; - "p" = 112; - "q" = 113; - "r" = 114; - "s" = 115; - "t" = 116; - "u" = 117; - "v" = 118; - "w" = 119; - "x" = 120; - "y" = 121; - "z" = 122; - "{" = 123; - "|" = 124; - "}" = 125; - "~" = 126; + "]" = 93; + "^" = 94; + "_" = 95; + "`" = 96; + "a" = 97; + "b" = 98; + "c" = 99; + "d" = 100; + "e" = 101; + "f" = 102; + "g" = 103; + "h" = 104; + "i" = 105; + "j" = 106; + "k" = 107; + "l" = 108; + "m" = 109; + "n" = 110; + "o" = 111; + "p" = 112; + "q" = 113; + "r" = 114; + "s" = 115; + "t" = 116; + "u" = 117; + "v" = 118; + "w" = 119; + "x" = 120; + "y" = 121; + "z" = 122; + "{" = 123; + "|" = 124; + "}" = 125; + "~" = 126; } diff --git a/lib/asserts.nix b/lib/asserts.nix index c7900c5..b22252a 100644 --- a/lib/asserts.nix +++ b/lib/asserts.nix @@ -36,10 +36,7 @@ rec { ::: */ # TODO(Profpatsch): add tests that check stderr - assertMsg = - pred: - msg: - pred || builtins.throw msg; + assertMsg = pred: msg: pred || builtins.throw msg; /** Specialized `assertMsg` for checking if `val` is one of the elements @@ -81,14 +78,10 @@ rec { ::: */ assertOneOf = - name: - val: - xs: - assertMsg - (lib.elem val xs) - "${name} must be one of ${ - lib.generators.toPretty {} xs}, but is: ${ - lib.generators.toPretty {} val}"; + name: val: xs: + assertMsg (lib.elem val xs) "${name} must be one of ${lib.generators.toPretty { } xs}, but is: ${ + lib.generators.toPretty { } val + }"; /** Specialized `assertMsg` for checking if every one of `vals` is one of the elements @@ -133,12 +126,9 @@ rec { ::: */ assertEachOneOf = - name: - vals: - xs: - assertMsg - (lib.all (val: lib.elem val xs) vals) - "each element in ${name} must be one of ${ - lib.generators.toPretty {} xs}, but is: ${ - lib.generators.toPretty {} vals}"; + name: vals: xs: + assertMsg (lib.all (val: lib.elem val xs) vals) + "each element in ${name} must be one of ${lib.generators.toPretty { } xs}, but is: ${ + lib.generators.toPretty { } vals + }"; } diff --git a/lib/attrsets.nix b/lib/attrsets.nix index 83f8d0f..8c04d99 100644 --- a/lib/attrsets.nix +++ b/lib/attrsets.nix @@ -5,14 +5,40 @@ let inherit (builtins) head length; - inherit (lib.trivial) isInOldestRelease mergeAttrs warn warnIf; - inherit (lib.strings) concatStringsSep concatMapStringsSep escapeNixIdentifier sanitizeDerivationName; - inherit (lib.lists) foldr foldl' concatMap elemAt all partition groupBy take foldl; + inherit (lib.trivial) + isInOldestRelease + mergeAttrs + warn + warnIf + ; + inherit (lib.strings) + concatStringsSep + concatMapStringsSep + escapeNixIdentifier + sanitizeDerivationName + ; + inherit (lib.lists) + foldr + foldl' + concatMap + elemAt + all + partition + groupBy + take + foldl + ; in rec { - inherit (builtins) attrNames listToAttrs hasAttr isAttrs getAttr removeAttrs; - + inherit (builtins) + attrNames + listToAttrs + hasAttr + isAttrs + getAttr + removeAttrs + ; /** Return an attribute from nested attribute sets. @@ -25,7 +51,6 @@ rec { (x.${f p}."example.com" or 6) == attrByPath [ (f p) "example.com" ] 6 x ``` - # Inputs `attrPath` @@ -63,23 +88,24 @@ rec { ::: */ attrByPath = - attrPath: - default: - set: + attrPath: default: set: let lenAttrPath = length attrPath; - attrByPath' = n: s: ( - if n == lenAttrPath then s - else ( - let - attr = elemAt attrPath n; - in - if s ? ${attr} then attrByPath' (n + 1) s.${attr} - else default - ) - ); + attrByPath' = + n: s: + ( + if n == lenAttrPath then + s + else + ( + let + attr = elemAt attrPath n; + in + if s ? ${attr} then attrByPath' (n + 1) s.${attr} else default + ) + ); in - attrByPath' 0 set; + attrByPath' 0 set; /** Return if an attribute from nested attribute set exists. @@ -97,7 +123,6 @@ rec { hasAttrByPath [] x == true ``` - # Inputs `attrPath` @@ -131,21 +156,22 @@ rec { ::: */ hasAttrByPath = - attrPath: - e: + attrPath: e: let lenAttrPath = length attrPath; - hasAttrByPath' = n: s: ( - n == lenAttrPath || ( - let - attr = elemAt attrPath n; - in - if s ? ${attr} then hasAttrByPath' (n + 1) s.${attr} - else false - ) - ); + hasAttrByPath' = + n: s: + ( + n == lenAttrPath + || ( + let + attr = elemAt attrPath n; + in + if s ? ${attr} then hasAttrByPath' (n + 1) s.${attr} else false + ) + ); in - hasAttrByPath' 0 e; + hasAttrByPath' 0 e; /** Return the longest prefix of an attribute path that refers to an existing attribute in a nesting of attribute sets. @@ -164,7 +190,6 @@ rec { hasAttrByPath (attrsets.longestValidPathPrefix p x) x == true ``` - # Inputs `attrPath` @@ -200,8 +225,7 @@ rec { ::: */ longestValidPathPrefix = - attrPath: - v: + attrPath: v: let lenAttrPath = length attrPath; getPrefixForSetAtIndex = @@ -212,29 +236,27 @@ rec { # the length of the prefix we've already checked. remainingPathIndex: - if remainingPathIndex == lenAttrPath then - # All previously checked attributes exist, and no attr names left, - # so we return the whole path. - attrPath + if remainingPathIndex == lenAttrPath then + # All previously checked attributes exist, and no attr names left, + # so we return the whole path. + attrPath + else + let + attr = elemAt attrPath remainingPathIndex; + in + if remainingSet ? ${attr} then + getPrefixForSetAtIndex remainingSet.${attr} # advance from the set to the attribute value + (remainingPathIndex + 1) # advance the path else - let - attr = elemAt attrPath remainingPathIndex; - in - if remainingSet ? ${attr} then - getPrefixForSetAtIndex - remainingSet.${attr} # advance from the set to the attribute value - (remainingPathIndex + 1) # advance the path - else - # The attribute doesn't exist, so we return the prefix up to the - # previously checked length. - take remainingPathIndex attrPath; + # The attribute doesn't exist, so we return the prefix up to the + # previously checked length. + take remainingPathIndex attrPath; in - getPrefixForSetAtIndex v 0; + getPrefixForSetAtIndex v 0; /** Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`. - # Inputs `attrPath` @@ -263,15 +285,12 @@ rec { ::: */ setAttrByPath = - attrPath: - value: + attrPath: value: let len = length attrPath; - atDepth = n: - if n == len - then value - else { ${elemAt attrPath n} = atDepth (n + 1); }; - in atDepth 0; + atDepth = n: if n == len then value else { ${elemAt attrPath n} = atDepth (n + 1); }; + in + atDepth 0; /** Like `attrByPath`, but without a default value. If it doesn't find the @@ -285,7 +304,6 @@ rec { x.${f p}."example.com" == getAttrByPath [ (f p) "example.com" ] x ``` - # Inputs `attrPath` @@ -317,14 +335,12 @@ rec { ::: */ getAttrFromPath = - attrPath: - set: + attrPath: set: attrByPath attrPath (abort ("cannot find attribute `" + concatStringsSep "." attrPath + "'")) set; /** Map each attribute in the given set and merge them into a new attribute set. - # Inputs `f` @@ -357,12 +373,7 @@ rec { ::: */ - concatMapAttrs = f: v: - foldl' mergeAttrs { } - (attrValues - (mapAttrs f v) - ); - + concatMapAttrs = f: v: foldl' mergeAttrs { } (attrValues (mapAttrs f v)); /** Update or set specific paths of an attribute set. @@ -420,69 +431,78 @@ rec { ::: */ - updateManyAttrsByPath = let - # When recursing into attributes, instead of updating the `path` of each - # update using `tail`, which needs to allocate an entirely new list, - # we just pass a prefix length to use and make sure to only look at the - # path without the prefix length, so that we can reuse the original list - # entries. - go = prefixLength: hasValue: value: updates: - let - # Splits updates into ones on this level (split.right) - # And ones on levels further down (split.wrong) - split = partition (el: length el.path == prefixLength) updates; + updateManyAttrsByPath = + let + # When recursing into attributes, instead of updating the `path` of each + # update using `tail`, which needs to allocate an entirely new list, + # we just pass a prefix length to use and make sure to only look at the + # path without the prefix length, so that we can reuse the original list + # entries. + go = + prefixLength: hasValue: value: updates: + let + # Splits updates into ones on this level (split.right) + # And ones on levels further down (split.wrong) + split = partition (el: length el.path == prefixLength) updates; - # Groups updates on further down levels into the attributes they modify - nested = groupBy (el: elemAt el.path prefixLength) split.wrong; + # Groups updates on further down levels into the attributes they modify + nested = groupBy (el: elemAt el.path prefixLength) split.wrong; - # Applies only nested modification to the input value - withNestedMods = - # Return the value directly if we don't have any nested modifications - if split.wrong == [] then - if hasValue then value + # Applies only nested modification to the input value + withNestedMods = + # Return the value directly if we don't have any nested modifications + if split.wrong == [ ] then + if hasValue then + value + else + # Throw an error if there is no value. This `head` call here is + # safe, but only in this branch since `go` could only be called + # with `hasValue == false` for nested updates, in which case + # it's also always called with at least one update + let + updatePath = (head split.right).path; + in + throw ( + "updateManyAttrsByPath: Path '${showAttrPath updatePath}' does " + + "not exist in the given value, but the first update to this " + + "path tries to access the existing value." + ) else - # Throw an error if there is no value. This `head` call here is - # safe, but only in this branch since `go` could only be called - # with `hasValue == false` for nested updates, in which case - # it's also always called with at least one update - let updatePath = (head split.right).path; in - throw - ( "updateManyAttrsByPath: Path '${showAttrPath updatePath}' does " - + "not exist in the given value, but the first update to this " - + "path tries to access the existing value.") - else # If there are nested modifications, try to apply them to the value - if ! hasValue then + if !hasValue then # But if we don't have a value, just use an empty attribute set # as the value, but simplify the code a bit mapAttrs (name: go (prefixLength + 1) false null) nested else if isAttrs value then # If we do have a value and it's an attribute set, override it # with the nested modifications - value // - mapAttrs (name: go (prefixLength + 1) (value ? ${name}) value.${name}) nested + value // mapAttrs (name: go (prefixLength + 1) (value ? ${name}) value.${name}) nested else # However if it's not an attribute set, we can't apply the nested # modifications, throw an error - let updatePath = (head split.wrong).path; in - throw - ( "updateManyAttrsByPath: Path '${showAttrPath updatePath}' needs to " - + "be updated, but path '${showAttrPath (take prefixLength updatePath)}' " - + "of the given value is not an attribute set, so we can't " - + "update an attribute inside of it."); + let + updatePath = (head split.wrong).path; + in + throw ( + "updateManyAttrsByPath: Path '${showAttrPath updatePath}' needs to " + + "be updated, but path '${showAttrPath (take prefixLength updatePath)}' " + + "of the given value is not an attribute set, so we can't " + + "update an attribute inside of it." + ); + in # We get the final result by applying all the updates on this level # after having applied all the nested updates # We use foldl instead of foldl' so that in case of multiple updates, # intermediate values aren't evaluated if not needed - in foldl (acc: el: el.update acc) withNestedMods split.right; + foldl (acc: el: el.update acc) withNestedMods split.right; - in updates: value: go 0 true value updates; + in + updates: value: go 0 true value updates; /** Return the specified attributes from a set. - # Inputs `nameList` @@ -510,10 +530,7 @@ rec { ::: */ - attrVals = - nameList: - set: map (x: set.${x}) nameList; - + attrVals = nameList: set: map (x: set.${x}) nameList; /** Return the values of all attributes in the given set, sorted by @@ -538,12 +555,10 @@ rec { */ attrValues = builtins.attrValues; - /** Given a set of attribute names, return the set of the corresponding attributes from the given set. - # Inputs `names` @@ -571,9 +586,7 @@ rec { ::: */ - getAttrs = - names: - attrs: genAttrs names (name: attrs.${name}); + getAttrs = names: attrs: genAttrs names (name: attrs.${name}); /** Collect each attribute named `attr` from a list of attribute @@ -608,12 +621,10 @@ rec { */ catAttrs = builtins.catAttrs; - /** Filter an attribute set by removing all attributes for which the given predicate return false. - # Inputs `pred` @@ -642,16 +653,21 @@ rec { ::: */ filterAttrs = - pred: - set: - listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set)); - + pred: set: + listToAttrs ( + concatMap ( + name: + let + v = set.${name}; + in + if pred name v then [ (nameValuePair name v) ] else [ ] + ) (attrNames set) + ); /** Filter an attribute set recursively by removing all attributes for which the given predicate return false. - # Inputs `pred` @@ -680,21 +696,21 @@ rec { ::: */ filterAttrsRecursive = - pred: - set: + pred: set: listToAttrs ( - concatMap (name: - let v = set.${name}; in - if pred name v then [ - (nameValuePair name ( - if isAttrs v then filterAttrsRecursive pred v - else v - )) - ] else [] + concatMap ( + name: + let + v = set.${name}; + in + if pred name v then + [ (nameValuePair name (if isAttrs v then filterAttrsRecursive pred v else v)) ] + else + [ ] ) (attrNames set) ); - /** + /** Like [`lib.lists.foldl'`](#function-library-lib.lists.foldl-prime) but for attribute sets. Iterates over every name-value pair in the given attribute set. The result of the callback function is often called `acc` for accumulator. It is passed between callbacks from left to right and the final `acc` is the return value of `foldlAttrs`. @@ -704,7 +720,6 @@ rec { There is a completely different function `lib.foldAttrs` which has nothing to do with this function, despite the similar name. - # Inputs `f` @@ -773,16 +788,13 @@ rec { ::: */ - foldlAttrs = f: init: set: - foldl' - (acc: name: f acc name set.${name}) - init - (attrNames set); + foldlAttrs = + f: init: set: + foldl' (acc: name: f acc name set.${name}) init (attrNames set); /** Apply fold functions to values grouped by key. - # Inputs `op` @@ -815,22 +827,16 @@ rec { ::: */ foldAttrs = - op: - nul: - list_of_attrs: - foldr (n: a: - foldr (name: o: - o // { ${name} = op n.${name} (a.${name} or nul); } - ) a (attrNames n) - ) {} list_of_attrs; - + op: nul: list_of_attrs: + foldr ( + n: a: foldr (name: o: o // { ${name} = op n.${name} (a.${name} or nul); }) a (attrNames n) + ) { } list_of_attrs; /** Recursively collect sets that verify a given predicate named `pred` from the set `attrs`. The recursion is stopped when the predicate is verified. - # Inputs `pred` @@ -863,19 +869,17 @@ rec { ::: */ collect = - pred: - attrs: + pred: attrs: if pred attrs then [ attrs ] else if isAttrs attrs then concatMap (collect pred) (attrValues attrs) else - []; + [ ]; /** Return the cartesian product of attribute set value combinations. - # Inputs `attrsOfLists` @@ -906,12 +910,12 @@ rec { */ cartesianProduct = attrsOfLists: - foldl' (listOfAttrs: attrName: - concatMap (attrs: - map (listValue: attrs // { ${attrName} = listValue; }) attrsOfLists.${attrName} + foldl' ( + listOfAttrs: attrName: + concatMap ( + attrs: map (listValue: attrs // { ${attrName} = listValue; }) attrsOfLists.${attrName} ) listOfAttrs - ) [{}] (attrNames attrsOfLists); - + ) [ { } ] (attrNames attrsOfLists); /** Return the result of function f applied to the cartesian product of attribute set value combinations. @@ -943,14 +947,12 @@ rec { ``` ::: - */ mapCartesianProduct = f: attrsOfLists: map f (cartesianProduct attrsOfLists); /** Utility function that creates a `{name, value}` pair as expected by `builtins.listToAttrs`. - # Inputs `name` @@ -978,11 +980,7 @@ rec { ::: */ - nameValuePair = - name: - value: - { inherit name value; }; - + nameValuePair = name: value: { inherit name value; }; /** Apply a function to each element in an attribute set, creating a new attribute set. @@ -1017,13 +1015,11 @@ rec { */ mapAttrs = builtins.mapAttrs; - /** Like `mapAttrs`, but allows the name of each attribute to be changed in addition to the value. The applied function should return both the new name and value as a `nameValuePair`. - # Inputs `f` @@ -1052,11 +1048,7 @@ rec { ::: */ - mapAttrs' = - f: - set: - listToAttrs (map (attr: f attr set.${attr}) (attrNames set)); - + mapAttrs' = f: set: listToAttrs (map (attr: f attr set.${attr}) (attrNames set)); /** Call a function for each attribute in the given set and return @@ -1090,10 +1082,7 @@ rec { ::: */ - mapAttrsToList = - f: - attrs: - map (name: f name attrs.${name}) (attrNames attrs); + mapAttrsToList = f: attrs: map (name: f name attrs.${name}) (attrNames attrs); /** Deconstruct an attrset to a list of name-value pairs as expected by [`builtins.listToAttrs`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-listToAttrs). @@ -1140,7 +1129,6 @@ rec { */ attrsToList = mapAttrsToList nameValuePair; - /** Like `mapAttrs`, except that it recursively applies itself to the *leaf* attributes of a potentially-nested attribute set: the second argument of the function will never be an attrset. @@ -1166,11 +1154,7 @@ rec { mapAttrsRecursive :: ([String] -> a -> b) -> AttrSet -> AttrSet ``` */ - mapAttrsRecursive = - f: - set: - mapAttrsRecursiveCond (as: true) f set; - + mapAttrsRecursive = f: set: mapAttrsRecursiveCond (as: true) f set; /** Like `mapAttrsRecursive`, but it takes an additional predicate that tells it whether to recurse into an attribute set. @@ -1196,25 +1180,21 @@ rec { ``` */ mapAttrsRecursiveCond = - cond: - f: - set: + cond: f: set: let - recurse = path: - mapAttrs - (name: value: - if isAttrs value && cond value - then recurse (path ++ [ name ]) value - else f (path ++ [ name ]) value); + recurse = + path: + mapAttrs ( + name: value: + if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value + ); in recurse [ ] set; - /** Generate an attribute set by mapping a function over a list of attribute names. - # Inputs `names` @@ -1242,17 +1222,12 @@ rec { ::: */ - genAttrs = - names: - f: - listToAttrs (map (n: nameValuePair n (f n)) names); - + genAttrs = names: f: listToAttrs (map (n: nameValuePair n (f n)) names); /** Check whether the argument is a derivation. Any set with `{ type = "derivation"; }` counts as a derivation. - # Inputs `value` @@ -1279,13 +1254,11 @@ rec { ::: */ - isDerivation = - value: value.type or null == "derivation"; + isDerivation = value: value.type or null == "derivation"; - /** + /** Converts a store path to a fake derivation. - # Inputs `path` @@ -1298,26 +1271,25 @@ rec { toDerivation :: Path -> Derivation ``` */ - toDerivation = - path: - let - path' = builtins.storePath path; - res = - { type = "derivation"; - name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path')); - outPath = path'; - outputs = [ "out" ]; - out = res; - outputName = "out"; - }; - in res; - + toDerivation = + path: + let + path' = builtins.storePath path; + res = { + type = "derivation"; + name = sanitizeDerivationName (builtins.substring 33 (-1) (baseNameOf path')); + outPath = path'; + outputs = [ "out" ]; + out = res; + outputName = "out"; + }; + in + res; /** If `cond` is true, return the attribute set `as`, otherwise an empty attribute set. - # Inputs `cond` @@ -1347,17 +1319,12 @@ rec { ::: */ - optionalAttrs = - cond: - as: - if cond then as else {}; - + optionalAttrs = cond: as: if cond then as else { }; /** Merge sets of attributes and use the function `f` to merge attributes values. - # Inputs `names` @@ -1390,14 +1357,13 @@ rec { ::: */ zipAttrsWithNames = - names: - f: - sets: - listToAttrs (map (name: { - inherit name; - value = f name (catAttrs name sets); - }) names); - + names: f: sets: + listToAttrs ( + map (name: { + inherit name; + value = f name (catAttrs name sets); + }) names + ); /** Merge sets of attributes and use the function f to merge attribute values. @@ -1428,7 +1394,6 @@ rec { zipAttrsWith = builtins.zipAttrsWith or (f: sets: zipAttrsWithNames (concatMap attrNames sets) f sets); - /** Merge sets of attributes and combine each attribute value in to a list. @@ -1459,7 +1424,6 @@ rec { The result is the same as `foldl mergeAttrs { }`, but the performance is better for large inputs. For n list elements, each with an attribute set containing m unique attributes, the complexity of this operation is O(nm log n). - # Inputs `list` @@ -1485,17 +1449,18 @@ rec { ::: */ - mergeAttrsList = list: + mergeAttrsList = + list: let # `binaryMerge start end` merges the elements at indices `index` of `list` such that `start <= index < end` # Type: Int -> Int -> Attrs - binaryMerge = start: end: + binaryMerge = + start: end: # assert start < end; # Invariant if end - start >= 2 then # If there's at least 2 elements, split the range in two, recurse on each part and merge the result # The invariant is satisfied because each half will have at least 1 element - binaryMerge start (start + (end - start) / 2) - // binaryMerge (start + (end - start) / 2) end + binaryMerge start (start + (end - start) / 2) // binaryMerge (start + (end - start) / 2) end else # Otherwise there will be exactly 1 element due to the invariant, in which case we just return it directly elemAt list start; @@ -1506,7 +1471,6 @@ rec { else binaryMerge 0 (length list); - /** Does the same as the update operator '//' except that attributes are merged until the given predicate is verified. The predicate should @@ -1515,7 +1479,6 @@ rec { the predicate is satisfied, the value of the first attribute set is replaced by the value of the second attribute set. - # Inputs `pred` @@ -1564,20 +1527,25 @@ rec { ::: */ recursiveUpdateUntil = - pred: - lhs: - rhs: - let f = attrPath: - zipAttrsWith (n: values: - let here = attrPath ++ [n]; in - if length values == 1 - || pred here (elemAt values 1) (head values) then - head values - else - f here values - ); - in f [] [rhs lhs]; - + pred: lhs: rhs: + let + f = + attrPath: + zipAttrsWith ( + n: values: + let + here = attrPath ++ [ n ]; + in + if length values == 1 || pred here (elemAt values 1) (head values) then + head values + else + f here values + ); + in + f [ ] [ + rhs + lhs + ]; /** A recursive variant of the update operator ‘//’. The recursion @@ -1585,7 +1553,6 @@ rec { in which case the right hand side value takes precedence over the left hand side value. - # Inputs `lhs` @@ -1623,17 +1590,17 @@ rec { ::: */ recursiveUpdate = - lhs: - rhs: - recursiveUpdateUntil (path: lhs: rhs: !(isAttrs lhs && isAttrs rhs)) lhs rhs; - + lhs: rhs: + recursiveUpdateUntil ( + path: lhs: rhs: + !(isAttrs lhs && isAttrs rhs) + ) lhs rhs; /** Recurse into every attribute set of the first argument and check that: - Each attribute path also exists in the second argument. - If the attribute's value is not a nested attribute set, it must have the same value in the right argument. - # Inputs `pattern` @@ -1662,30 +1629,27 @@ rec { ::: */ matchAttrs = - pattern: - attrs: + pattern: attrs: assert isAttrs pattern; - all - ( # Compare equality between `pattern` & `attrs`. + all ( + # Compare equality between `pattern` & `attrs`. attr: # Missing attr, not equal. - attrs ? ${attr} && ( + attrs ? ${attr} + && ( let lhs = pattern.${attr}; rhs = attrs.${attr}; in # If attrset check recursively - if isAttrs lhs then isAttrs rhs && matchAttrs lhs rhs - else lhs == rhs + if isAttrs lhs then isAttrs rhs && matchAttrs lhs rhs else lhs == rhs ) - ) - (attrNames pattern); + ) (attrNames pattern); /** Override only the attributes that are already present in the old set useful for deep-overriding. - # Inputs `old` @@ -1717,11 +1681,7 @@ rec { ::: */ - overrideExisting = - old: - new: - mapAttrs (name: value: new.${name} or value) old; - + overrideExisting = old: new: mapAttrs (name: value: new.${name} or value) old; /** Turns a list of strings into a human-readable description of those @@ -1729,7 +1689,6 @@ rec { not intended to be machine-readable. Create a new attribute set with `value` set at the nested attribute location specified in `attrPath`. - # Inputs `path` @@ -1757,15 +1716,12 @@ rec { */ showAttrPath = path: - if path == [] then "" - else concatMapStringsSep "." escapeNixIdentifier path; - + if path == [ ] then "" else concatMapStringsSep "." escapeNixIdentifier path; /** Get a package output. If no output is found, fallback to `.out` and then to the default. - # Inputs `output` @@ -1793,10 +1749,9 @@ rec { ::: */ - getOutput = output: pkg: - if ! pkg ? outputSpecified || ! pkg.outputSpecified - then pkg.${output} or pkg.out or pkg - else pkg; + getOutput = + output: pkg: + if !pkg ? outputSpecified || !pkg.outputSpecified then pkg.${output} or pkg.out or pkg else pkg; /** Get a package's `bin` output. @@ -1827,7 +1782,6 @@ rec { */ getBin = getOutput "bin"; - /** Get a package's `lib` output. If the output does not exist, fallback to `.out` and then to the default. @@ -1857,7 +1811,6 @@ rec { */ getLib = getOutput "lib"; - /** Get a package's `dev` output. If the output does not exist, fallback to `.out` and then to the default. @@ -1887,7 +1840,6 @@ rec { */ getDev = getOutput "dev"; - /** Get a package's `man` output. If the output does not exist, fallback to `.out` and then to the default. @@ -1941,7 +1893,6 @@ rec { This function only affects a single attribute set; it does not apply itself recursively for nested attribute sets. - # Inputs `attrs` @@ -1969,14 +1920,11 @@ rec { ::: */ - recurseIntoAttrs = - attrs: - attrs // { recurseForDerivations = true; }; + recurseIntoAttrs = attrs: attrs // { recurseForDerivations = true; }; /** Undo the effect of recurseIntoAttrs. - # Inputs `attrs` @@ -1989,9 +1937,7 @@ rec { dontRecurseIntoAttrs :: AttrSet -> AttrSet ``` */ - dontRecurseIntoAttrs = - attrs: - attrs // { recurseForDerivations = false; }; + dontRecurseIntoAttrs = attrs: attrs // { recurseForDerivations = false; }; /** `unionOfDisjoint x y` is equal to `x // y // z` where the @@ -1999,7 +1945,6 @@ rec { `y`, and all values `assert` with an error message. This operator is commutative, unlike (//). - # Inputs `x` @@ -2016,25 +1961,25 @@ rec { unionOfDisjoint :: AttrSet -> AttrSet -> AttrSet ``` */ - unionOfDisjoint = x: y: + unionOfDisjoint = + x: y: let intersection = builtins.intersectAttrs x y; collisions = lib.concatStringsSep " " (builtins.attrNames intersection); - mask = builtins.mapAttrs (name: value: builtins.throw - "unionOfDisjoint: collision on ${name}; complete list: ${collisions}") - intersection; + mask = builtins.mapAttrs ( + name: value: builtins.throw "unionOfDisjoint: collision on ${name}; complete list: ${collisions}" + ) intersection; in - (x // y) // mask; + (x // y) // mask; # DEPRECATED - zipWithNames = warn - "lib.zipWithNames is a deprecated alias of lib.zipAttrsWithNames." zipAttrsWithNames; + zipWithNames = warn "lib.zipWithNames is a deprecated alias of lib.zipAttrsWithNames." zipAttrsWithNames; # DEPRECATED - zip = warn - "lib.zip is a deprecated alias of lib.zipAttrsWith." zipAttrsWith; + zip = warn "lib.zip is a deprecated alias of lib.zipAttrsWith." zipAttrsWith; # DEPRECATED - cartesianProductOfSets = warnIf (isInOldestRelease 2405) - "lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct." cartesianProduct; + cartesianProductOfSets = warnIf (isInOldestRelease + 2405 + ) "lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct." cartesianProduct; } diff --git a/lib/cli.nix b/lib/cli.nix index fcffacb..01b4987 100644 --- a/lib/cli.nix +++ b/lib/cli.nix @@ -11,7 +11,6 @@ rec { `toGNUCommandLineShell` returns an escaped shell string. - # Inputs `options` @@ -22,7 +21,6 @@ rec { : 2\. Function argument - # Examples :::{.example} ## `lib.cli.toGNUCommandLineShell` usage example @@ -60,45 +58,51 @@ rec { ::: */ - toGNUCommandLineShell = - options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs); + toGNUCommandLineShell = options: attrs: lib.escapeShellArgs (toGNUCommandLine options attrs); - toGNUCommandLine = { - # how to string-format the option name; - # by default one character is a short option (`-`), - # more than one characters a long option (`--`). - mkOptionName ? - k: if builtins.stringLength k == 1 - then "-${k}" - else "--${k}", + toGNUCommandLine = + { + # how to string-format the option name; + # by default one character is a short option (`-`), + # more than one characters a long option (`--`). + mkOptionName ? k: if builtins.stringLength k == 1 then "-${k}" else "--${k}", - # how to format a boolean value to a command list; - # by default it’s a flag option - # (only the option name if true, left out completely if false). - mkBool ? k: v: lib.optional v (mkOptionName k), + # how to format a boolean value to a command list; + # by default it’s a flag option + # (only the option name if true, left out completely if false). + mkBool ? k: v: lib.optional v (mkOptionName k), - # how to format a list value to a command list; - # by default the option name is repeated for each value - # and `mkOption` is applied to the values themselves. - mkList ? k: v: lib.concatMap (mkOption k) v, + # how to format a list value to a command list; + # by default the option name is repeated for each value + # and `mkOption` is applied to the values themselves. + mkList ? k: v: lib.concatMap (mkOption k) v, - # how to format any remaining value to a command list; - # on the toplevel, booleans and lists are handled by `mkBool` and `mkList`, - # though they can still appear as values of a list. - # By default, everything is printed verbatim and complex types - # are forbidden (lists, attrsets, functions). `null` values are omitted. - mkOption ? - k: v: if v == null - then [] - else [ (mkOptionName k) (lib.generators.mkValueStringDefault {} v) ] + # how to format any remaining value to a command list; + # on the toplevel, booleans and lists are handled by `mkBool` and `mkList`, + # though they can still appear as values of a list. + # By default, everything is printed verbatim and complex types + # are forbidden (lists, attrsets, functions). `null` values are omitted. + mkOption ? + k: v: + if v == null then + [ ] + else + [ + (mkOptionName k) + (lib.generators.mkValueStringDefault { } v) + ], }: options: - let - render = k: v: - if builtins.isBool v then mkBool k v - else if builtins.isList v then mkList k v - else mkOption k v; + let + render = + k: v: + if builtins.isBool v then + mkBool k v + else if builtins.isList v then + mkList k v + else + mkOption k v; - in - builtins.concatLists (lib.mapAttrsToList render options); + in + builtins.concatLists (lib.mapAttrsToList render options); } diff --git a/lib/customisation.nix b/lib/customisation.nix index 0e0d791..b3590e3 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -1,20 +1,42 @@ { lib }: let - inherit (builtins) - intersectAttrs; + inherit (builtins) intersectAttrs; inherit (lib) - functionArgs isFunction mirrorFunctionArgs isAttrs setFunctionArgs - optionalAttrs attrNames filter elemAt concatStringsSep sortOn take length - filterAttrs optionalString flip pathIsDirectory head pipe isDerivation listToAttrs - mapAttrs seq flatten deepSeq warnIf isInOldestRelease extends + functionArgs + isFunction + mirrorFunctionArgs + isAttrs + setFunctionArgs + optionalAttrs + attrNames + filter + elemAt + concatStringsSep + sortOn + take + length + filterAttrs + optionalString + flip + pathIsDirectory + head + pipe + isDerivation + listToAttrs + mapAttrs + seq + flatten + deepSeq + warnIf + isInOldestRelease + extends ; inherit (lib.strings) levenshtein levenshteinAtMost; in rec { - /** `overrideDerivation drv f` takes a derivation (i.e., the result of a call to the builtin function `derivation`) and returns a new @@ -40,7 +62,6 @@ rec { You should in general prefer `drv.overrideAttrs` over this function; see the nixpkgs manual for more information on overriding. - # Inputs `drv` @@ -74,20 +95,21 @@ rec { ::: */ - overrideDerivation = drv: f: + overrideDerivation = + drv: f: let newDrv = derivation (drv.drvAttrs // (f drv)); - in flip (extendDerivation (seq drv.drvPath true)) newDrv ( - { meta = drv.meta or {}; - passthru = if drv ? passthru then drv.passthru else {}; + in + flip (extendDerivation (seq drv.drvPath true)) newDrv ( + { + meta = drv.meta or { }; + passthru = if drv ? passthru then drv.passthru else { }; } - // - (drv.passthru or {}) - // - optionalAttrs (drv ? __spliced) { - __spliced = {} // (mapAttrs (_: sDrv: overrideDerivation sDrv f) drv.__spliced); - }); - + // (drv.passthru or { }) + // optionalAttrs (drv ? __spliced) { + __spliced = { } // (mapAttrs (_: sDrv: overrideDerivation sDrv f) drv.__spliced); + } + ); /** `makeOverridable` takes a function from attribute set to attribute set and @@ -97,7 +119,6 @@ rec { Please refer to documentation on [`.overrideDerivation`](#sec-pkg-overrideDerivation) to learn about `overrideDerivation` and caveats related to its use. - # Inputs `f` @@ -128,37 +149,39 @@ rec { ::: */ - makeOverridable = f: + makeOverridable = + f: let # Creates a functor with the same arguments as f mirrorArgs = mirrorFunctionArgs f; in - mirrorArgs (origArgs: - let - result = f origArgs; + mirrorArgs ( + origArgs: + let + result = f origArgs; - # Changes the original arguments with (potentially a function that returns) a set of new attributes - overrideWith = newArgs: origArgs // (if isFunction newArgs then newArgs origArgs else newArgs); + # Changes the original arguments with (potentially a function that returns) a set of new attributes + overrideWith = newArgs: origArgs // (if isFunction newArgs then newArgs origArgs else newArgs); - # Re-call the function but with different arguments - overrideArgs = mirrorArgs (newArgs: makeOverridable f (overrideWith newArgs)); - # Change the result of the function call by applying g to it - overrideResult = g: makeOverridable (mirrorArgs (args: g (f args))) origArgs; - in + # Re-call the function but with different arguments + overrideArgs = mirrorArgs (newArgs: makeOverridable f (overrideWith newArgs)); + # Change the result of the function call by applying g to it + overrideResult = g: makeOverridable (mirrorArgs (args: g (f args))) origArgs; + in if isAttrs result then - result // { + result + // { override = overrideArgs; overrideDerivation = fdrv: overrideResult (x: overrideDerivation x fdrv); - ${if result ? overrideAttrs then "overrideAttrs" else null} = fdrv: - overrideResult (x: x.overrideAttrs fdrv); + ${if result ? overrideAttrs then "overrideAttrs" else null} = + fdrv: overrideResult (x: x.overrideAttrs fdrv); } else if isFunction result then # Transform the result into a functor while propagating its arguments - setFunctionArgs result (functionArgs result) // { - override = overrideArgs; - } - else result); - + setFunctionArgs result (functionArgs result) // { override = overrideArgs; } + else + result + ); /** Call the package function in the file `fn` with the required @@ -188,7 +211,6 @@ rec { - # Inputs `autoArgs` @@ -209,7 +231,8 @@ rec { callPackageWith :: AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a ``` */ - callPackageWith = autoArgs: fn: args: + callPackageWith = + autoArgs: fn: args: let f = if isFunction fn then fn else import fn; fargs = functionArgs f; @@ -222,59 +245,72 @@ rec { # wouldn't be passed to it missingArgs = # Filter out arguments that have a default value - (filterAttrs (name: value: ! value) - # Filter out arguments that would be passed - (removeAttrs fargs (attrNames allArgs))); + ( + filterAttrs (name: value: !value) + # Filter out arguments that would be passed + (removeAttrs fargs (attrNames allArgs)) + ); # Get a list of suggested argument names for a given missing one - getSuggestions = arg: pipe (autoArgs // args) [ - attrNames - # Only use ones that are at most 2 edits away. While mork would work, - # levenshteinAtMost is only fast for 2 or less. - (filter (levenshteinAtMost 2 arg)) - # Put strings with shorter distance first - (sortOn (levenshtein arg)) - # Only take the first couple results - (take 3) - # Quote all entries - (map (x: "\"" + x + "\"")) - ]; + getSuggestions = + arg: + pipe (autoArgs // args) [ + attrNames + # Only use ones that are at most 2 edits away. While mork would work, + # levenshteinAtMost is only fast for 2 or less. + (filter (levenshteinAtMost 2 arg)) + # Put strings with shorter distance first + (sortOn (levenshtein arg)) + # Only take the first couple results + (take 3) + # Quote all entries + (map (x: "\"" + x + "\"")) + ]; - prettySuggestions = suggestions: - if suggestions == [] then "" - else if length suggestions == 1 then ", did you mean ${elemAt suggestions 0}?" - else ", did you mean ${concatStringsSep ", " (lib.init suggestions)} or ${lib.last suggestions}?"; + prettySuggestions = + suggestions: + if suggestions == [ ] then + "" + else if length suggestions == 1 then + ", did you mean ${elemAt suggestions 0}?" + else + ", did you mean ${concatStringsSep ", " (lib.init suggestions)} or ${lib.last suggestions}?"; - errorForArg = arg: + errorForArg = + arg: let loc = builtins.unsafeGetAttrPos arg fargs; # loc' can be removed once lib/minver.nix is >2.3.4, since that includes # https://github.com/NixOS/nix/pull/3468 which makes loc be non-null - loc' = if loc != null then loc.file + ":" + toString loc.line - else if ! isFunction fn then + loc' = + if loc != null then + loc.file + ":" + toString loc.line + else if !isFunction fn then toString fn + optionalString (pathIsDirectory fn) "/default.nix" - else ""; - in "Function called without required argument \"${arg}\" at " + else + ""; + in + "Function called without required argument \"${arg}\" at " + "${loc'}${prettySuggestions (getSuggestions arg)}"; # Only show the error for the first missing argument error = errorForArg (head (attrNames missingArgs)); - in if missingArgs == {} - then makeOverridable f allArgs - # This needs to be an abort so it can't be caught with `builtins.tryEval`, - # which is used by nix-env and ofborg to filter out packages that don't evaluate. - # This way we're forced to fix such errors in Nixpkgs, - # which is especially relevant with allowAliases = false - else abort "lib.customisation.callPackageWith: ${error}"; - + in + if missingArgs == { } then + makeOverridable f allArgs + # This needs to be an abort so it can't be caught with `builtins.tryEval`, + # which is used by nix-env and ofborg to filter out packages that don't evaluate. + # This way we're forced to fix such errors in Nixpkgs, + # which is especially relevant with allowAliases = false + else + abort "lib.customisation.callPackageWith: ${error}"; /** Like callPackage, but for a function that returns an attribute set of derivations. The override function is added to the individual attributes. - # Inputs `autoArgs` @@ -295,7 +331,8 @@ rec { callPackagesWith :: AttrSet -> ((AttrSet -> AttrSet) | Path) -> AttrSet -> AttrSet ``` */ - callPackagesWith = autoArgs: fn: args: + callPackagesWith = + autoArgs: fn: args: let f = if isFunction fn then fn else import fn; auto = intersectAttrs (functionArgs f) autoArgs; @@ -304,18 +341,19 @@ rec { pkgs = f origArgs; mkAttrOverridable = name: _: makeOverridable (mirrorArgs (newArgs: (f newArgs).${name})) origArgs; in - if isDerivation pkgs then throw - ("function `callPackages` was called on a *single* derivation " - + ''"${pkgs.name or ""}";'' - + " did you mean to use `callPackage` instead?") - else mapAttrs mkAttrOverridable pkgs; - + if isDerivation pkgs then + throw ( + "function `callPackages` was called on a *single* derivation " + + ''"${pkgs.name or ""}";'' + + " did you mean to use `callPackage` instead?" + ) + else + mapAttrs mkAttrOverridable pkgs; /** Add attributes to each output of a derivation without changing the derivation itself and check a given condition when evaluating. - # Inputs `condition` @@ -336,34 +374,48 @@ rec { extendDerivation :: Bool -> Any -> Derivation -> Derivation ``` */ - extendDerivation = condition: passthru: drv: + extendDerivation = + condition: passthru: drv: let outputs = drv.outputs or [ "out" ]; - commonAttrs = drv // (listToAttrs outputsList) // - ({ all = map (x: x.value) outputsList; }) // passthru; + commonAttrs = + drv // (listToAttrs outputsList) // ({ all = map (x: x.value) outputsList; }) // passthru; - outputToAttrListElement = outputName: - { name = outputName; - value = commonAttrs // { + outputToAttrListElement = outputName: { + name = outputName; + value = + commonAttrs + // { inherit (drv.${outputName}) type outputName; outputSpecified = true; - drvPath = assert condition; drv.${outputName}.drvPath; - outPath = assert condition; drv.${outputName}.outPath; - } // + drvPath = + assert condition; + drv.${outputName}.drvPath; + outPath = + assert condition; + drv.${outputName}.outPath; + } + // # TODO: give the derivation control over the outputs. # `overrideAttrs` may not be the only attribute that needs # updating when switching outputs. - optionalAttrs (passthru?overrideAttrs) { + optionalAttrs (passthru ? overrideAttrs) { # TODO: also add overrideAttrs when overrideAttrs is not custom, e.g. when not splicing. overrideAttrs = f: (passthru.overrideAttrs f).${outputName}; }; - }; + }; outputsList = map outputToAttrListElement outputs; - in commonAttrs // { - drvPath = assert condition; drv.drvPath; - outPath = assert condition; drv.outPath; + in + commonAttrs + // { + drvPath = + assert condition; + drv.drvPath; + outPath = + assert condition; + drv.outPath; }; /** @@ -372,7 +424,6 @@ rec { result to ensure that there are no thunks kept alive to prevent garbage collection. - # Inputs `drv` @@ -385,21 +436,29 @@ rec { hydraJob :: (Derivation | Null) -> (Derivation | Null) ``` */ - hydraJob = drv: + hydraJob = + drv: let - outputs = drv.outputs or ["out"]; + outputs = drv.outputs or [ "out" ]; commonAttrs = - { inherit (drv) name system meta; inherit outputs; } + { + inherit (drv) name system meta; + inherit outputs; + } // optionalAttrs (drv._hydraAggregate or false) { _hydraAggregate = true; constituents = map hydraJob (flatten drv.constituents); } // (listToAttrs outputsList); - makeOutput = outputName: - let output = drv.${outputName}; in - { name = outputName; + makeOutput = + outputName: + let + output = drv.${outputName}; + in + { + name = outputName; value = commonAttrs // { outPath = output.outPath; drvPath = output.drvPath; @@ -411,8 +470,8 @@ rec { outputsList = map makeOutput outputs; drv' = (head outputsList).value; - in if drv == null then null else - deepSeq drv' drv'; + in + if drv == null then null else deepSeq drv' drv'; /** Make an attribute set (a "scope") from functions that take arguments from that same attribute set. @@ -538,23 +597,27 @@ rec { makeScope :: (AttrSet -> ((AttrSet -> a) | Path) -> AttrSet -> a) -> (AttrSet -> AttrSet) -> scope ``` */ - makeScope = newScope: f: - let self = f self // { - newScope = scope: newScope (self // scope); - callPackage = self.newScope {}; - overrideScope = g: makeScope newScope (extends g f); - # Remove after 24.11 is released. - overrideScope' = g: warnIf (isInOldestRelease 2311) + makeScope = + newScope: f: + let + self = f self // { + newScope = scope: newScope (self // scope); + callPackage = self.newScope { }; + overrideScope = g: makeScope newScope (extends g f); + # Remove after 24.11 is released. + overrideScope' = + g: + warnIf (isInOldestRelease 2311) "`overrideScope'` (from `lib.makeScope`) has been renamed to `overrideScope`." (makeScope newScope (extends g f)); - packages = f; - }; - in self; + packages = f; + }; + in + self; /** backward compatibility with old uncurried form; deprecated - # Inputs `splicePackages` @@ -583,9 +646,14 @@ rec { */ makeScopeWithSplicing = splicePackages: newScope: otherSplices: keep: extra: f: - makeScopeWithSplicing' - { inherit splicePackages newScope; } - { inherit otherSplices keep extra f; }; + makeScopeWithSplicing' { inherit splicePackages newScope; } { + inherit + otherSplices + keep + extra + f + ; + }; /** Like makeScope, but aims to support cross compilation. It's still ugly, but @@ -612,30 +680,29 @@ rec { ``` */ makeScopeWithSplicing' = - { splicePackages - , newScope - }: - { otherSplices - # Attrs from `self` which won't be spliced. - # Avoid using keep, it's only used for a python hook workaround, added in PR #104201. - # ex: `keep = (self: { inherit (self) aAttr; })` - , keep ? (_self: {}) - # Additional attrs to add to the sets `callPackage`. - # When the package is from a subset (but not a subset within a package IS #211340) - # within `spliced0` it will be spliced. - # When using an package outside the set but it's available from `pkgs`, use the package from `pkgs.__splicedPackages`. - # If the package is not available within the set or in `pkgs`, such as a package in a let binding, it will not be spliced - # ex: - # ``` - # nix-repl> darwin.apple_sdk.frameworks.CoreFoundation - # «derivation ...CoreFoundation-11.0.0.drv» - # nix-repl> darwin.CoreFoundation - # error: attribute 'CoreFoundation' missing - # nix-repl> darwin.callPackage ({ CoreFoundation }: CoreFoundation) { } - # «derivation ...CoreFoundation-11.0.0.drv» - # ``` - , extra ? (_spliced0: {}) - , f + { splicePackages, newScope }: + { + otherSplices, + # Attrs from `self` which won't be spliced. + # Avoid using keep, it's only used for a python hook workaround, added in PR #104201. + # ex: `keep = (self: { inherit (self) aAttr; })` + keep ? (_self: { }), + # Additional attrs to add to the sets `callPackage`. + # When the package is from a subset (but not a subset within a package IS #211340) + # within `spliced0` it will be spliced. + # When using an package outside the set but it's available from `pkgs`, use the package from `pkgs.__splicedPackages`. + # If the package is not available within the set or in `pkgs`, such as a package in a let binding, it will not be spliced + # ex: + # ``` + # nix-repl> darwin.apple_sdk.frameworks.CoreFoundation + # «derivation ...CoreFoundation-11.0.0.drv» + # nix-repl> darwin.CoreFoundation + # error: attribute 'CoreFoundation' missing + # nix-repl> darwin.callPackage ({ CoreFoundation }: CoreFoundation) { } + # «derivation ...CoreFoundation-11.0.0.drv» + # ``` + extra ? (_spliced0: { }), + f, }: let spliced0 = splicePackages { @@ -652,13 +719,15 @@ rec { callPackage = newScope spliced; # == self.newScope {}; # N.B. the other stages of the package set spliced in are *not* # overridden. - overrideScope = g: (makeScopeWithSplicing' - { inherit splicePackages newScope; } - { inherit otherSplices keep extra; + overrideScope = + g: + (makeScopeWithSplicing' { inherit splicePackages newScope; } { + inherit otherSplices keep extra; f = extends g f; }); packages = f; }; - in self; + in + self; } diff --git a/lib/debug.nix b/lib/debug.nix index 97e87ac..fe37d53 100644 --- a/lib/debug.nix +++ b/lib/debug.nix @@ -1,16 +1,17 @@ -/* Collection of functions useful for debugging - broken nix expressions. +/* + Collection of functions useful for debugging + broken nix expressions. - * `trace`-like functions take two values, print - the first to stderr and return the second. - * `traceVal`-like functions take one argument - which both printed and returned. - * `traceSeq`-like functions fully evaluate their - traced value before printing (not just to “weak - head normal form” like trace does by default). - * Functions that end in `-Fn` take an additional - function as their first argument, which is applied - to the traced value before it is printed. + * `trace`-like functions take two values, print + the first to stderr and return the second. + * `traceVal`-like functions take one argument + which both printed and returned. + * `traceSeq`-like functions fully evaluate their + traced value before printing (not just to “weak + head normal form” like trace does by default). + * Functions that end in `-Fn` take an additional + function as their first argument, which is applied + to the traced value before it is printed. */ { lib }: let @@ -25,21 +26,23 @@ let generators id mapAttrs - trace; + trace + ; in rec { # -- TRACING -- - /* Conditionally trace the supplied message, based on a predicate. + /* + Conditionally trace the supplied message, based on a predicate. - Type: traceIf :: bool -> string -> a -> a + Type: traceIf :: bool -> string -> a -> a - Example: - traceIf true "hello" 3 - trace: hello - => 3 + Example: + traceIf true "hello" 3 + trace: hello + => 3 */ traceIf = # Predicate to check @@ -47,128 +50,155 @@ rec { # Message that should be traced msg: # Value to return - x: if pred then trace msg x else x; + x: + if pred then trace msg x else x; - /* Trace the supplied value after applying a function to it, and - return the original value. + /* + Trace the supplied value after applying a function to it, and + return the original value. - Type: traceValFn :: (a -> b) -> a -> a + Type: traceValFn :: (a -> b) -> a -> a - Example: - traceValFn (v: "mystring ${v}") "foo" - trace: mystring foo - => "foo" + Example: + traceValFn (v: "mystring ${v}") "foo" + trace: mystring foo + => "foo" */ traceValFn = # Function to apply f: # Value to trace and return - x: trace (f x) x; + x: + trace (f x) x; - /* Trace the supplied value and return it. + /* + Trace the supplied value and return it. - Type: traceVal :: a -> a + Type: traceVal :: a -> a - Example: - traceVal 42 - # trace: 42 - => 42 + Example: + traceVal 42 + # trace: 42 + => 42 */ traceVal = traceValFn id; - /* `builtins.trace`, but the value is `builtins.deepSeq`ed first. + /* + `builtins.trace`, but the value is `builtins.deepSeq`ed first. - Type: traceSeq :: a -> b -> b + Type: traceSeq :: a -> b -> b - Example: - trace { a.b.c = 3; } null - trace: { a = ; } - => null - traceSeq { a.b.c = 3; } null - trace: { a = { b = { c = 3; }; }; } - => null + Example: + trace { a.b.c = 3; } null + trace: { a = ; } + => null + traceSeq { a.b.c = 3; } null + trace: { a = { b = { c = 3; }; }; } + => null */ traceSeq = # The value to trace x: # The value to return - y: trace (builtins.deepSeq x x) y; + y: + trace (builtins.deepSeq x x) y; - /* Like `traceSeq`, but only evaluate down to depth n. - This is very useful because lots of `traceSeq` usages - lead to an infinite recursion. + /* + Like `traceSeq`, but only evaluate down to depth n. + This is very useful because lots of `traceSeq` usages + lead to an infinite recursion. - Example: - traceSeqN 2 { a.b.c = 3; } null - trace: { a = { b = {…}; }; } - => null + Example: + traceSeqN 2 { a.b.c = 3; } null + trace: { a = { b = {…}; }; } + => null - Type: traceSeqN :: Int -> a -> b -> b - */ - traceSeqN = depth: x: y: - let snip = v: if isList v then noQuotes "[…]" v - else if isAttrs v then noQuotes "{…}" v - else v; - noQuotes = str: v: { __pretty = const str; val = v; }; - modify = n: fn: v: if (n == 0) then fn v - else if isList v then map (modify (n - 1) fn) v - else if isAttrs v then mapAttrs - (const (modify (n - 1) fn)) v - else v; - in trace (generators.toPretty { allowPrettyValues = true; } - (modify depth snip x)) y; + Type: traceSeqN :: Int -> a -> b -> b + */ + traceSeqN = + depth: x: y: + let + snip = + v: + if isList v then + noQuotes "[…]" v + else if isAttrs v then + noQuotes "{…}" v + else + v; + noQuotes = str: v: { + __pretty = const str; + val = v; + }; + modify = + n: fn: v: + if (n == 0) then + fn v + else if isList v then + map (modify (n - 1) fn) v + else if isAttrs v then + mapAttrs (const (modify (n - 1) fn)) v + else + v; + in + trace (generators.toPretty { allowPrettyValues = true; } (modify depth snip x)) y; - /* A combination of `traceVal` and `traceSeq` that applies a - provided function to the value to be traced after `deepSeq`ing - it. + /* + A combination of `traceVal` and `traceSeq` that applies a + provided function to the value to be traced after `deepSeq`ing + it. */ traceValSeqFn = # Function to apply f: # Value to trace - v: traceValFn f (builtins.deepSeq v v); + v: + traceValFn f (builtins.deepSeq v v); - /* A combination of `traceVal` and `traceSeq`. */ + # A combination of `traceVal` and `traceSeq`. traceValSeq = traceValSeqFn id; - /* A combination of `traceVal` and `traceSeqN` that applies a - provided function to the value to be traced. */ + /* + A combination of `traceVal` and `traceSeqN` that applies a + provided function to the value to be traced. + */ traceValSeqNFn = # Function to apply - f: - depth: + f: depth: # Value to trace - v: traceSeqN depth (f v) v; + v: + traceSeqN depth (f v) v; - /* A combination of `traceVal` and `traceSeqN`. */ + # A combination of `traceVal` and `traceSeqN`. traceValSeqN = traceValSeqNFn id; - /* Trace the input and output of a function `f` named `name`, - both down to `depth`. + /* + Trace the input and output of a function `f` named `name`, + both down to `depth`. - This is useful for adding around a function call, - to see the before/after of values as they are transformed. + This is useful for adding around a function call, + to see the before/after of values as they are transformed. - Example: - traceFnSeqN 2 "id" (x: x) { a.b.c = 3; } - trace: { fn = "id"; from = { a.b = {…}; }; to = { a.b = {…}; }; } - => { a.b.c = 3; } + Example: + traceFnSeqN 2 "id" (x: x) { a.b.c = 3; } + trace: { fn = "id"; from = { a.b = {…}; }; to = { a.b = {…}; }; } + => { a.b.c = 3; } */ - traceFnSeqN = depth: name: f: v: - let res = f v; - in lib.traceSeqN - (depth + 1) - { - fn = name; - from = v; - to = res; - } - res; - + traceFnSeqN = + depth: name: f: v: + let + res = f v; + in + lib.traceSeqN (depth + 1) { + fn = name; + from = v; + to = res; + } res; # -- TESTING -- - /* Evaluates a set of tests. + /* + Evaluates a set of tests. A test is an attribute set `{expr, expected}`, denoting an expression and its expected result. @@ -228,19 +258,41 @@ rec { */ runTests = # Tests to run - tests: concatLists (attrValues (mapAttrs (name: test: - let testsToRun = if tests ? tests then tests.tests else []; - in if (substring 0 4 name == "test" || elem name testsToRun) - && ((testsToRun == []) || elem name tests.tests) - && (test.expr != test.expected) + tests: + concatLists ( + attrValues ( + mapAttrs ( + name: test: + let + testsToRun = if tests ? tests then tests.tests else [ ]; + in + if + (substring 0 4 name == "test" || elem name testsToRun) + && ((testsToRun == [ ]) || elem name tests.tests) + && (test.expr != test.expected) - then [ { inherit name; expected = test.expected; result = test.expr; } ] - else [] ) tests)); + then + [ + { + inherit name; + expected = test.expected; + result = test.expr; + } + ] + else + [ ] + ) tests + ) + ); - /* Create a test assuming that list elements are `true`. + /* + Create a test assuming that list elements are `true`. - Example: - { testX = allTrue [ true ]; } + Example: + { testX = allTrue [ true ]; } */ - testAllTrue = expr: { inherit expr; expected = map (x: true) expr; }; + testAllTrue = expr: { + inherit expr; + expected = map (x: true) expr; + }; } diff --git a/lib/default.nix b/lib/default.nix index d5d47de..6158ffc 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,171 +1,500 @@ -/* Library of low-level helper functions for nix expressions. - * - * Please implement (mostly) exhaustive unit tests - * for new functions in `./tests.nix`. - */ +/* + Library of low-level helper functions for nix expressions. + + Please implement (mostly) exhaustive unit tests + for new functions in `./tests.nix`. +*/ let inherit (import ./fixed-points.nix { inherit lib; }) makeExtensible; - lib = makeExtensible (self: let - callLibs = file: import file { lib = self; }; - in { + lib = makeExtensible ( + self: + let + callLibs = file: import file { lib = self; }; + in + { - # often used, or depending on very little - trivial = callLibs ./trivial.nix; - fixedPoints = callLibs ./fixed-points.nix; + # often used, or depending on very little + trivial = callLibs ./trivial.nix; + fixedPoints = callLibs ./fixed-points.nix; - # datatypes - attrsets = callLibs ./attrsets.nix; - lists = callLibs ./lists.nix; - strings = callLibs ./strings.nix; - stringsWithDeps = callLibs ./strings-with-deps.nix; + # datatypes + attrsets = callLibs ./attrsets.nix; + lists = callLibs ./lists.nix; + strings = callLibs ./strings.nix; + stringsWithDeps = callLibs ./strings-with-deps.nix; - # packaging - customisation = callLibs ./customisation.nix; - derivations = callLibs ./derivations.nix; - maintainers = import ../maintainers/maintainer-list.nix; - teams = callLibs ../maintainers/team-list.nix; - meta = callLibs ./meta.nix; - versions = callLibs ./versions.nix; + # packaging + customisation = callLibs ./customisation.nix; + derivations = callLibs ./derivations.nix; + maintainers = import ../maintainers/maintainer-list.nix; + teams = callLibs ../maintainers/team-list.nix; + meta = callLibs ./meta.nix; + versions = callLibs ./versions.nix; - # module system - modules = callLibs ./modules.nix; - options = callLibs ./options.nix; - types = callLibs ./types.nix; + # module system + modules = callLibs ./modules.nix; + options = callLibs ./options.nix; + types = callLibs ./types.nix; - # constants - licenses = callLibs ./licenses.nix; - sourceTypes = callLibs ./source-types.nix; - systems = callLibs ./systems; + # constants + licenses = callLibs ./licenses.nix; + sourceTypes = callLibs ./source-types.nix; + systems = callLibs ./systems; - # serialization - cli = callLibs ./cli.nix; - gvariant = callLibs ./gvariant.nix; - generators = callLibs ./generators.nix; + # serialization + cli = callLibs ./cli.nix; + gvariant = callLibs ./gvariant.nix; + generators = callLibs ./generators.nix; - # misc - asserts = callLibs ./asserts.nix; - debug = callLibs ./debug.nix; - misc = callLibs ./deprecated/misc.nix; + # misc + asserts = callLibs ./asserts.nix; + debug = callLibs ./debug.nix; + misc = callLibs ./deprecated/misc.nix; - # domain-specific - fetchers = callLibs ./fetchers.nix; + # domain-specific + fetchers = callLibs ./fetchers.nix; - # Eval-time filesystem handling - path = callLibs ./path; - filesystem = callLibs ./filesystem.nix; - fileset = callLibs ./fileset; - sources = callLibs ./sources.nix; + # Eval-time filesystem handling + path = callLibs ./path; + filesystem = callLibs ./filesystem.nix; + fileset = callLibs ./fileset; + sources = callLibs ./sources.nix; - # back-compat aliases - platforms = self.systems.doubles; + # back-compat aliases + platforms = self.systems.doubles; - # linux kernel configuration - kernel = callLibs ./kernel.nix; + # linux kernel configuration + kernel = callLibs ./kernel.nix; - inherit (builtins) add addErrorContext attrNames concatLists - deepSeq elem elemAt filter genericClosure genList getAttr - hasAttr head isAttrs isBool isInt isList isPath isString length - lessThan listToAttrs pathExists readFile replaceStrings seq - stringLength sub substring tail trace; - inherit (self.trivial) id const pipe concat or and xor bitAnd bitOr bitXor - bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max - importJSON importTOML warn warnIf warnIfNot throwIf throwIfNot checkListOfEnum - info showWarnings nixpkgsVersion version isInOldestRelease - mod compare splitByAndCompare - functionArgs setFunctionArgs isFunction toFunction mirrorFunctionArgs - toHexString toBaseDigits inPureEvalMode; - inherit (self.fixedPoints) fix fix' converge extends composeExtensions - composeManyExtensions makeExtensible makeExtensibleWithCustomName; - inherit (self.attrsets) attrByPath hasAttrByPath setAttrByPath - getAttrFromPath attrVals attrValues getAttrs catAttrs filterAttrs - filterAttrsRecursive foldlAttrs foldAttrs collect nameValuePair mapAttrs - mapAttrs' mapAttrsToList attrsToList concatMapAttrs mapAttrsRecursive - mapAttrsRecursiveCond genAttrs isDerivation toDerivation optionalAttrs - zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil - recursiveUpdate matchAttrs mergeAttrsList overrideExisting showAttrPath getOutput - getBin getLib getDev getMan chooseDevOutputs zipWithNames zip - recurseIntoAttrs dontRecurseIntoAttrs cartesianProduct cartesianProductOfSets - mapCartesianProduct updateManyAttrsByPath; - inherit (self.lists) singleton forEach foldr fold foldl foldl' imap0 imap1 - ifilter0 concatMap flatten remove findSingle findFirst any all count - optional optionals toList range replicate partition zipListsWith zipLists - reverseList listDfs toposort sort sortOn naturalSort compareLists take - drop sublist last init crossLists unique allUnique intersectLists - subtractLists mutuallyExclusive groupBy groupBy'; - inherit (self.strings) concatStrings concatMapStrings concatImapStrings - intersperse concatStringsSep concatMapStringsSep - concatImapStringsSep concatLines makeSearchPath makeSearchPathOutput - makeLibraryPath makeIncludePath makeBinPath optionalString - hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape - escapeShellArg escapeShellArgs - isStorePath isStringLike - isValidPosixName toShellVar toShellVars - escapeRegex escapeURL escapeXML replaceChars lowerChars - upperChars toLower toUpper addContextFrom splitString - removePrefix removeSuffix versionOlder versionAtLeast - getName getVersion - cmakeOptionType cmakeBool cmakeFeature - mesonOption mesonBool mesonEnable - nameFromURL enableFeature enableFeatureAs withFeature - withFeatureAs fixedWidthString fixedWidthNumber - toInt toIntBase10 readPathsFromFile fileContents; - inherit (self.stringsWithDeps) textClosureList textClosureMap - noDepEntry fullDepEntry packEntry stringAfter; - inherit (self.customisation) overrideDerivation makeOverridable - callPackageWith callPackagesWith extendDerivation hydraJob - makeScope makeScopeWithSplicing makeScopeWithSplicing'; - inherit (self.derivations) lazyDerivation optionalDrvAttr; - inherit (self.meta) addMetaAttrs dontDistribute setName updateName - appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio - hiPrioSet getLicenseFromSpdxId getExe getExe'; - inherit (self.filesystem) pathType pathIsDirectory pathIsRegularFile - packagesFromDirectoryRecursive; - inherit (self.sources) cleanSourceFilter - cleanSource sourceByRegex sourceFilesBySuffices - commitIdFromGitRepo cleanSourceWith pathHasContext - canCleanSource pathIsGitRepo; - inherit (self.modules) evalModules setDefaultModuleLocation - unifyModuleSyntax applyModuleArgsIfFunction mergeModules - mergeModules' mergeOptionDecls mergeDefinitions - pushDownProperties dischargeProperties filterOverrides - sortProperties fixupOptionType mkIf mkAssert mkMerge mkOverride - mkOptionDefault mkDefault mkImageMediaOverride mkForce mkVMOverride - mkFixStrictness mkOrder mkBefore mkAfter mkAliasDefinitions - mkAliasAndWrapDefinitions fixMergeModules mkRemovedOptionModule - mkRenamedOptionModule mkRenamedOptionModuleWith - mkMergedOptionModule mkChangedOptionModule - mkAliasOptionModule mkDerivedConfig doRename - mkAliasOptionModuleMD; - evalOptionValue = lib.warn "External use of `lib.evalOptionValue` is deprecated. If your use case isn't covered by non-deprecated functions, we'd like to know more and perhaps support your use case well, instead of providing access to these low level functions. In this case please open an issue in https://github.com/nixos/nixpkgs/issues/." self.modules.evalOptionValue; - inherit (self.options) isOption mkEnableOption mkSinkUndeclaredOptions - mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption - getValues getFiles - optionAttrSetToDocList optionAttrSetToDocList' - scrubOptionValue literalExpression literalExample - showOption showOptionWithDefLocs showFiles - unknownModule mkOption mkPackageOption mkPackageOptionMD - mdDoc literalMD; - inherit (self.types) isType setType defaultTypeMerge defaultFunctor - isOptionType mkOptionType; - inherit (self.asserts) - assertMsg assertOneOf; - inherit (self.debug) traceIf traceVal traceValFn - traceSeq traceSeqN traceValSeq - traceValSeqFn traceValSeqN traceValSeqNFn traceFnSeqN - runTests testAllTrue; - inherit (self.misc) maybeEnv defaultMergeArg defaultMerge foldArgs - maybeAttrNullable maybeAttr ifEnable checkFlag getValue - checkReqs uniqList uniqListExt condConcat lazyGenericClosure - innerModifySumArgs modifySumArgs innerClosePropagation - closePropagation mapAttrsFlatten nvs setAttr setAttrMerge - mergeAttrsWithFunc mergeAttrsConcatenateValues - mergeAttrsNoOverride mergeAttrByFunc mergeAttrsByFuncDefaults - mergeAttrsByFuncDefaultsClean mergeAttrBy - fakeHash fakeSha256 fakeSha512 - nixType imap; - inherit (self.versions) - splitVersion; - }); -in lib + inherit (builtins) + add + addErrorContext + attrNames + concatLists + deepSeq + elem + elemAt + filter + genericClosure + genList + getAttr + hasAttr + head + isAttrs + isBool + isInt + isList + isPath + isString + length + lessThan + listToAttrs + pathExists + readFile + replaceStrings + seq + stringLength + sub + substring + tail + trace + ; + inherit (self.trivial) + id + const + pipe + concat + or + and + xor + bitAnd + bitOr + bitXor + bitNot + boolToString + mergeAttrs + flip + mapNullable + inNixShell + isFloat + min + max + importJSON + importTOML + warn + warnIf + warnIfNot + throwIf + throwIfNot + checkListOfEnum + info + showWarnings + nixpkgsVersion + version + isInOldestRelease + mod + compare + splitByAndCompare + functionArgs + setFunctionArgs + isFunction + toFunction + mirrorFunctionArgs + toHexString + toBaseDigits + inPureEvalMode + ; + inherit (self.fixedPoints) + fix + fix' + converge + extends + composeExtensions + composeManyExtensions + makeExtensible + makeExtensibleWithCustomName + ; + inherit (self.attrsets) + attrByPath + hasAttrByPath + setAttrByPath + getAttrFromPath + attrVals + attrValues + getAttrs + catAttrs + filterAttrs + filterAttrsRecursive + foldlAttrs + foldAttrs + collect + nameValuePair + mapAttrs + mapAttrs' + mapAttrsToList + attrsToList + concatMapAttrs + mapAttrsRecursive + mapAttrsRecursiveCond + genAttrs + isDerivation + toDerivation + optionalAttrs + zipAttrsWithNames + zipAttrsWith + zipAttrs + recursiveUpdateUntil + recursiveUpdate + matchAttrs + mergeAttrsList + overrideExisting + showAttrPath + getOutput + getBin + getLib + getDev + getMan + chooseDevOutputs + zipWithNames + zip + recurseIntoAttrs + dontRecurseIntoAttrs + cartesianProduct + cartesianProductOfSets + mapCartesianProduct + updateManyAttrsByPath + ; + inherit (self.lists) + singleton + forEach + foldr + fold + foldl + foldl' + imap0 + imap1 + ifilter0 + concatMap + flatten + remove + findSingle + findFirst + any + all + count + optional + optionals + toList + range + replicate + partition + zipListsWith + zipLists + reverseList + listDfs + toposort + sort + sortOn + naturalSort + compareLists + take + drop + sublist + last + init + crossLists + unique + allUnique + intersectLists + subtractLists + mutuallyExclusive + groupBy + groupBy' + ; + inherit (self.strings) + concatStrings + concatMapStrings + concatImapStrings + intersperse + concatStringsSep + concatMapStringsSep + concatImapStringsSep + concatLines + makeSearchPath + makeSearchPathOutput + makeLibraryPath + makeIncludePath + makeBinPath + optionalString + hasInfix + hasPrefix + hasSuffix + stringToCharacters + stringAsChars + escape + escapeShellArg + escapeShellArgs + isStorePath + isStringLike + isValidPosixName + toShellVar + toShellVars + escapeRegex + escapeURL + escapeXML + replaceChars + lowerChars + upperChars + toLower + toUpper + addContextFrom + splitString + removePrefix + removeSuffix + versionOlder + versionAtLeast + getName + getVersion + cmakeOptionType + cmakeBool + cmakeFeature + mesonOption + mesonBool + mesonEnable + nameFromURL + enableFeature + enableFeatureAs + withFeature + withFeatureAs + fixedWidthString + fixedWidthNumber + toInt + toIntBase10 + readPathsFromFile + fileContents + ; + inherit (self.stringsWithDeps) + textClosureList + textClosureMap + noDepEntry + fullDepEntry + packEntry + stringAfter + ; + inherit (self.customisation) + overrideDerivation + makeOverridable + callPackageWith + callPackagesWith + extendDerivation + hydraJob + makeScope + makeScopeWithSplicing + makeScopeWithSplicing' + ; + inherit (self.derivations) lazyDerivation optionalDrvAttr; + inherit (self.meta) + addMetaAttrs + dontDistribute + setName + updateName + appendToName + mapDerivationAttrset + setPrio + lowPrio + lowPrioSet + hiPrio + hiPrioSet + getLicenseFromSpdxId + getExe + getExe' + ; + inherit (self.filesystem) + pathType + pathIsDirectory + pathIsRegularFile + packagesFromDirectoryRecursive + ; + inherit (self.sources) + cleanSourceFilter + cleanSource + sourceByRegex + sourceFilesBySuffices + commitIdFromGitRepo + cleanSourceWith + pathHasContext + canCleanSource + pathIsGitRepo + ; + inherit (self.modules) + evalModules + setDefaultModuleLocation + unifyModuleSyntax + applyModuleArgsIfFunction + mergeModules + mergeModules' + mergeOptionDecls + mergeDefinitions + pushDownProperties + dischargeProperties + filterOverrides + sortProperties + fixupOptionType + mkIf + mkAssert + mkMerge + mkOverride + mkOptionDefault + mkDefault + mkImageMediaOverride + mkForce + mkVMOverride + mkFixStrictness + mkOrder + mkBefore + mkAfter + mkAliasDefinitions + mkAliasAndWrapDefinitions + fixMergeModules + mkRemovedOptionModule + mkRenamedOptionModule + mkRenamedOptionModuleWith + mkMergedOptionModule + mkChangedOptionModule + mkAliasOptionModule + mkDerivedConfig + doRename + mkAliasOptionModuleMD + ; + evalOptionValue = lib.warn "External use of `lib.evalOptionValue` is deprecated. If your use case isn't covered by non-deprecated functions, we'd like to know more and perhaps support your use case well, instead of providing access to these low level functions. In this case please open an issue in https://github.com/nixos/nixpkgs/issues/." self.modules.evalOptionValue; + inherit (self.options) + isOption + mkEnableOption + mkSinkUndeclaredOptions + mergeDefaultOption + mergeOneOption + mergeEqualOption + mergeUniqueOption + getValues + getFiles + optionAttrSetToDocList + optionAttrSetToDocList' + scrubOptionValue + literalExpression + literalExample + showOption + showOptionWithDefLocs + showFiles + unknownModule + mkOption + mkPackageOption + mkPackageOptionMD + mdDoc + literalMD + ; + inherit (self.types) + isType + setType + defaultTypeMerge + defaultFunctor + isOptionType + mkOptionType + ; + inherit (self.asserts) assertMsg assertOneOf; + inherit (self.debug) + traceIf + traceVal + traceValFn + traceSeq + traceSeqN + traceValSeq + traceValSeqFn + traceValSeqN + traceValSeqNFn + traceFnSeqN + runTests + testAllTrue + ; + inherit (self.misc) + maybeEnv + defaultMergeArg + defaultMerge + foldArgs + maybeAttrNullable + maybeAttr + ifEnable + checkFlag + getValue + checkReqs + uniqList + uniqListExt + condConcat + lazyGenericClosure + innerModifySumArgs + modifySumArgs + innerClosePropagation + closePropagation + mapAttrsFlatten + nvs + setAttr + setAttrMerge + mergeAttrsWithFunc + mergeAttrsConcatenateValues + mergeAttrsNoOverride + mergeAttrByFunc + mergeAttrsByFuncDefaults + mergeAttrsByFuncDefaultsClean + mergeAttrBy + fakeHash + fakeSha256 + fakeSha512 + nixType + imap + ; + inherit (self.versions) splitVersion; + } + ); +in +lib diff --git a/lib/deprecated/misc.nix b/lib/deprecated/misc.nix index d556bcc..2abcbb5 100644 --- a/lib/deprecated/misc.nix +++ b/lib/deprecated/misc.nix @@ -34,153 +34,217 @@ let inherit (lib.attrsets) removeAttrs; # returns default if env var is not set - maybeEnv = name: default: - let value = builtins.getEnv name; in + maybeEnv = + name: default: + let + value = builtins.getEnv name; + in if value == "" then default else value; - defaultMergeArg = x : y: if builtins.isAttrs y then - y - else - (y x); + defaultMergeArg = x: y: if builtins.isAttrs y then y else (y x); defaultMerge = x: y: x // (defaultMergeArg x y); - foldArgs = merger: f: init: x: - let arg = (merger init (defaultMergeArg init x)); - # now add the function with composed args already applied to the final attrs - base = (setAttrMerge "passthru" {} (f arg) - ( z: z // { - function = foldArgs merger f arg; - args = (attrByPath ["passthru" "args"] {} z) // x; - } )); - withStdOverrides = base // { - override = base.passthru.function; - }; - in - withStdOverrides; - + foldArgs = + merger: f: init: x: + let + arg = (merger init (defaultMergeArg init x)); + # now add the function with composed args already applied to the final attrs + base = ( + setAttrMerge "passthru" { } (f arg) ( + z: + z + // { + function = foldArgs merger f arg; + args = + (attrByPath [ + "passthru" + "args" + ] { } z) + // x; + } + ) + ); + withStdOverrides = base // { + override = base.passthru.function; + }; + in + withStdOverrides; # shortcut for attrByPath ["name"] default attrs maybeAttrNullable = maybeAttr; # shortcut for attrByPath ["name"] default attrs - maybeAttr = name: default: attrs: attrs.${name} or default; - + maybeAttr = + name: default: attrs: + attrs.${name} or default; # Return the second argument if the first one is true or the empty version # of the second argument. - ifEnable = cond: val: - if cond then val - else if builtins.isList val then [] - else if builtins.isAttrs val then {} + ifEnable = + cond: val: + if cond then + val + else if builtins.isList val then + [ ] + else if builtins.isAttrs val then + { } # else if builtins.isString val then "" - else if val == true || val == false then false - else null; - + else if val == true || val == false then + false + else + null; # Return true only if there is an attribute and it is true. - checkFlag = attrSet: name: - if name == "true" then true else - if name == "false" then false else - if (elem name (attrByPath ["flags"] [] attrSet)) then true else - attrByPath [name] false attrSet ; - + checkFlag = + attrSet: name: + if name == "true" then + true + else if name == "false" then + false + else if (elem name (attrByPath [ "flags" ] [ ] attrSet)) then + true + else + attrByPath [ name ] false attrSet; # Input : attrSet, [ [name default] ... ], name # Output : its value or default. - getValue = attrSet: argList: name: - ( attrByPath [name] (if checkFlag attrSet name then true else - if argList == [] then null else - let x = builtins.head argList; in - if (head x) == name then - (head (tail x)) - else (getValue attrSet - (tail argList) name)) attrSet ); - + getValue = + attrSet: argList: name: + (attrByPath [ name ] ( + if checkFlag attrSet name then + true + else if argList == [ ] then + null + else + let + x = builtins.head argList; + in + if (head x) == name then (head (tail x)) else (getValue attrSet (tail argList) name) + ) attrSet); # Input : attrSet, [[name default] ...], [ [flagname reqs..] ... ] # Output : are reqs satisfied? It's asserted. - checkReqs = attrSet: argList: condList: - ( - foldr and true - (map (x: let name = (head x); in - - ((checkFlag attrSet name) -> - (foldr and true - (map (y: let val=(getValue attrSet argList y); in - (val!=null) && (val!=false)) - (tail x))))) condList)); + checkReqs = + attrSet: argList: condList: + (foldr and true ( + map ( + x: + let + name = (head x); + in + ( + (checkFlag attrSet name) + -> (foldr and true ( + map ( + y: + let + val = (getValue attrSet argList y); + in + (val != null) && (val != false) + ) (tail x) + )) + ) + ) condList + )); # This function has O(n^2) performance. - uniqList = { inputList, acc ? [] }: - let go = xs: acc: - if xs == [] - then [] - else let x = head xs; - y = if elem x acc then [] else [x]; - in y ++ go (tail xs) (y ++ acc); - in go inputList acc; - - uniqListExt = { inputList, - outputList ? [], - getter ? (x: x), - compare ? (x: y: x==y) }: - if inputList == [] then outputList else - let x = head inputList; - isX = y: (compare (getter y) (getter x)); - newOutputList = outputList ++ - (if any isX outputList then [] else [x]); - in uniqListExt { outputList = newOutputList; - inputList = (tail inputList); - inherit getter compare; - }; - - condConcat = name: list: checker: - if list == [] then name else - if checker (head list) then - condConcat - (name + (head (tail list))) - (tail (tail list)) - checker - else condConcat - name (tail (tail list)) checker; - - lazyGenericClosure = {startSet, operator}: + uniqList = + { + inputList, + acc ? [ ], + }: let - work = list: doneKeys: result: - if list == [] then + go = + xs: acc: + if xs == [ ] then + [ ] + else + let + x = head xs; + y = if elem x acc then [ ] else [ x ]; + in + y ++ go (tail xs) (y ++ acc); + in + go inputList acc; + + uniqListExt = + { + inputList, + outputList ? [ ], + getter ? (x: x), + compare ? (x: y: x == y), + }: + if inputList == [ ] then + outputList + else + let + x = head inputList; + isX = y: (compare (getter y) (getter x)); + newOutputList = outputList ++ (if any isX outputList then [ ] else [ x ]); + in + uniqListExt { + outputList = newOutputList; + inputList = (tail inputList); + inherit getter compare; + }; + + condConcat = + name: list: checker: + if list == [ ] then + name + else if checker (head list) then + condConcat (name + (head (tail list))) (tail (tail list)) checker + else + condConcat name (tail (tail list)) checker; + + lazyGenericClosure = + { startSet, operator }: + let + work = + list: doneKeys: result: + if list == [ ] then result else - let x = head list; key = x.key; in + let + x = head list; + key = x.key; + in if elem key doneKeys then work (tail list) doneKeys result else - work (tail list ++ operator x) ([key] ++ doneKeys) ([x] ++ result); + work (tail list ++ operator x) ([ key ] ++ doneKeys) ([ x ] ++ result); in - work startSet [] []; + work startSet [ ] [ ]; - innerModifySumArgs = f: x: a: b: if b == null then (f a b) // x else - innerModifySumArgs f x (a // b); - modifySumArgs = f: x: innerModifySumArgs f x {}; + innerModifySumArgs = + f: x: a: b: + if b == null then (f a b) // x else innerModifySumArgs f x (a // b); + modifySumArgs = f: x: innerModifySumArgs f x { }; + innerClosePropagation = + acc: xs: + if xs == [ ] then + acc + else + let + y = head xs; + ys = tail xs; + in + if !isAttrs y then + innerClosePropagation acc ys + else + let + acc' = [ y ] ++ acc; + in + innerClosePropagation acc' (uniqList { + inputList = + (maybeAttrNullable "propagatedBuildInputs" [ ] y) + ++ (maybeAttrNullable "propagatedNativeBuildInputs" [ ] y) + ++ ys; + acc = acc'; + }); - innerClosePropagation = acc: xs: - if xs == [] - then acc - else let y = head xs; - ys = tail xs; - in if ! isAttrs y - then innerClosePropagation acc ys - else let acc' = [y] ++ acc; - in innerClosePropagation - acc' - (uniqList { inputList = (maybeAttrNullable "propagatedBuildInputs" [] y) - ++ (maybeAttrNullable "propagatedNativeBuildInputs" [] y) - ++ ys; - acc = acc'; - } - ); - - closePropagationSlow = list: (uniqList {inputList = (innerClosePropagation [] list);}); + closePropagationSlow = list: (uniqList { inputList = (innerClosePropagation [ ] list); }); # This is an optimisation of closePropagation which avoids the O(n^2) behavior # Using a list of derivations, it generates the full closure of the propagatedXXXBuildInputs @@ -188,28 +252,35 @@ let # attribute of each derivation. # On some benchmarks, it performs up to 15 times faster than closePropagation. # See https://github.com/NixOS/nixpkgs/pull/194391 for details. - closePropagationFast = list: - builtins.map (x: x.val) (builtins.genericClosure { - startSet = builtins.map (x: { - key = x.outPath; - val = x; - }) (builtins.filter (x: x != null) list); - operator = item: - if !builtins.isAttrs item.val then - [ ] - else - builtins.concatMap (x: - if x != null then [{ - key = x.outPath; - val = x; - }] else - [ ]) ((item.val.propagatedBuildInputs or [ ]) - ++ (item.val.propagatedNativeBuildInputs or [ ])); - }); + closePropagationFast = + list: + builtins.map (x: x.val) ( + builtins.genericClosure { + startSet = builtins.map (x: { + key = x.outPath; + val = x; + }) (builtins.filter (x: x != null) list); + operator = + item: + if !builtins.isAttrs item.val then + [ ] + else + builtins.concatMap ( + x: + if x != null then + [ + { + key = x.outPath; + val = x; + } + ] + else + [ ] + ) ((item.val.propagatedBuildInputs or [ ]) ++ (item.val.propagatedNativeBuildInputs or [ ])); + } + ); - closePropagation = if builtins ? genericClosure - then closePropagationFast - else closePropagationSlow; + closePropagation = if builtins ? genericClosure then closePropagationFast else closePropagationSlow; # calls a function (f attr value ) for each record item. returns a list mapAttrsFlatten = f: r: map (attr: f attr r.${attr}) (attrNames r); @@ -217,26 +288,29 @@ let # attribute set containing one attribute nvs = name: value: listToAttrs [ (nameValuePair name value) ]; # adds / replaces an attribute of an attribute set - setAttr = set: name: v: set // (nvs name v); + setAttr = + set: name: v: + set // (nvs name v); # setAttrMerge (similar to mergeAttrsWithFunc but only merges the values of a particular name) # setAttrMerge "a" [] { a = [2];} (x: x ++ [3]) -> { a = [2 3]; } # setAttrMerge "a" [] { } (x: x ++ [3]) -> { a = [ 3]; } - setAttrMerge = name: default: attrs: f: + setAttrMerge = + name: default: attrs: f: setAttr attrs name (f (maybeAttr name default attrs)); # Using f = a: b = b the result is similar to // # merge attributes with custom function handling the case that the attribute # exists in both sets - mergeAttrsWithFunc = f: set1: set2: - foldr (n: set: if set ? ${n} - then setAttr set n (f set.${n} set2.${n}) - else set ) - (set2 // set1) (attrNames set2); + mergeAttrsWithFunc = + f: set1: set2: + foldr (n: set: if set ? ${n} then setAttr set n (f set.${n} set2.${n}) else set) (set2 // set1) ( + attrNames set2 + ); # merging two attribute set concatenating the values of same attribute names # eg { a = 7; } { a = [ 2 3 ]; } becomes { a = [ 7 2 3 ]; } - mergeAttrsConcatenateValues = mergeAttrsWithFunc ( a: b: (toList a) ++ (toList b) ); + mergeAttrsConcatenateValues = mergeAttrsWithFunc (a: b: (toList a) ++ (toList b)); # merges attributes using //, if a name exists in both attributes # an error will be triggered unless its listed in mergeLists @@ -245,20 +319,31 @@ let # merging buildPhase doesn't really make sense. The cases will be rare where appending /prefixing will fit your needs? # in these cases the first buildPhase will override the second one # ! deprecated, use mergeAttrByFunc instead - mergeAttrsNoOverride = { mergeLists ? ["buildInputs" "propagatedBuildInputs"], - overrideSnd ? [ "buildPhase" ] - }: attrs1: attrs2: - foldr (n: set: - setAttr set n ( if set ? ${n} - then # merge - if elem n mergeLists # attribute contains list, merge them by concatenating - then attrs2.${n} ++ attrs1.${n} - else if elem n overrideSnd - then attrs1.${n} - else throw "error mergeAttrsNoOverride, attribute ${n} given in both attributes - no merge func defined" - else attrs2.${n} # add attribute not existing in attr1 - )) attrs1 (attrNames attrs2); - + mergeAttrsNoOverride = + { + mergeLists ? [ + "buildInputs" + "propagatedBuildInputs" + ], + overrideSnd ? [ "buildPhase" ], + }: + attrs1: attrs2: + foldr ( + n: set: + setAttr set n ( + if set ? ${n} then # merge + if + elem n mergeLists # attribute contains list, merge them by concatenating + then + attrs2.${n} ++ attrs1.${n} + else if elem n overrideSnd then + attrs1.${n} + else + throw "error mergeAttrsNoOverride, attribute ${n} given in both attributes - no merge func defined" + else + attrs2.${n} # add attribute not existing in attr1 + ) + ) attrs1 (attrNames attrs2); # example usage: # mergeAttrByFunc { @@ -271,48 +356,83 @@ let # { mergeAttrsBy = [...]; buildInputs = [ a b c d ]; } # is used by defaultOverridableDelayableArgs and can be used when composing using # foldArgs, composedArgsAndFun or applyAndFun. Example: composableDerivation in all-packages.nix - mergeAttrByFunc = x: y: + mergeAttrByFunc = + x: y: let - mergeAttrBy2 = { mergeAttrBy = mergeAttrs; } - // (maybeAttr "mergeAttrBy" {} x) - // (maybeAttr "mergeAttrBy" {} y); in - foldr mergeAttrs {} [ - x y - (mapAttrs ( a: v: # merge special names using given functions - if x ? ${a} - then if y ? ${a} - then v x.${a} y.${a} # both have attr, use merge func - else x.${a} # only x has attr - else y.${a} # only y has attr) - ) (removeAttrs mergeAttrBy2 - # don't merge attrs which are neither in x nor y - (filter (a: ! x ? ${a} && ! y ? ${a}) - (attrNames mergeAttrBy2)) - ) + mergeAttrBy2 = { + mergeAttrBy = mergeAttrs; + } // (maybeAttr "mergeAttrBy" { } x) // (maybeAttr "mergeAttrBy" { } y); + in + foldr mergeAttrs { } [ + x + y + (mapAttrs + ( + a: v: # merge special names using given functions + if x ? ${a} then + if y ? ${a} then + v x.${a} y.${a} # both have attr, use merge func + else + x.${a} # only x has attr + else + y.${a} # only y has attr) + ) + ( + removeAttrs mergeAttrBy2 + # don't merge attrs which are neither in x nor y + (filter (a: !x ? ${a} && !y ? ${a}) (attrNames mergeAttrBy2)) + ) ) ]; mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; }; - mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"]; + mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) [ "mergeAttrBy" ]; # sane defaults (same name as attr name so that inherit can be used) mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; } - listToAttrs (map (n: nameValuePair n concat) - [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" "patches" ]) - // listToAttrs (map (n: nameValuePair n mergeAttrs) [ "passthru" "meta" "cfg" "flags" ]) - // listToAttrs (map (n: nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ]) - ; + listToAttrs ( + map (n: nameValuePair n concat) [ + "nativeBuildInputs" + "buildInputs" + "propagatedBuildInputs" + "configureFlags" + "prePhases" + "postAll" + "patches" + ] + ) + // listToAttrs ( + map (n: nameValuePair n mergeAttrs) [ + "passthru" + "meta" + "cfg" + "flags" + ] + ) + // listToAttrs ( + map (n: nameValuePair n (a: b: "${a}\n${b}")) [ + "preConfigure" + "postInstall" + ] + ); - nixType = x: - if isAttrs x then - if x ? outPath then "derivation" - else "attrs" - else if isFunction x then "function" - else if isList x then "list" - else if x == true then "bool" - else if x == false then "bool" - else if x == null then "null" - else if isInt x then "int" - else "string"; + nixType = + x: + if isAttrs x then + if x ? outPath then "derivation" else "attrs" + else if isFunction x then + "function" + else if isList x then + "list" + else if x == true then + "bool" + else if x == false then + "bool" + else if x == null then + "null" + else if isInt x then + "int" + else + "string"; /** # Deprecated diff --git a/lib/derivations.nix b/lib/derivations.nix index 6867458..e9dd0b5 100644 --- a/lib/derivations.nix +++ b/lib/derivations.nix @@ -1,20 +1,18 @@ { lib }: let - inherit (lib) - genAttrs - isString - throwIfNot - ; + inherit (lib) genAttrs isString throwIfNot; - showMaybeAttrPosPre = prefix: attrName: v: - let pos = builtins.unsafeGetAttrPos attrName v; - in if pos == null then "" else "${prefix}${pos.file}:${toString pos.line}:${toString pos.column}"; + showMaybeAttrPosPre = + prefix: attrName: v: + let + pos = builtins.unsafeGetAttrPos attrName v; + in + if pos == null then "" else "${prefix}${pos.file}:${toString pos.line}:${toString pos.column}"; - showMaybePackagePosPre = prefix: pkg: - if pkg?meta.position && isString pkg.meta.position - then "${prefix}${pkg.meta.position}" - else ""; + showMaybePackagePosPre = + prefix: pkg: + if pkg ? meta.position && isString pkg.meta.position then "${prefix}${pkg.meta.position}" else ""; in { /* @@ -61,35 +59,33 @@ in (lazyDerivation { inherit derivation }).passthru (lazyDerivation { inherit derivation }).pythonPath - */ lazyDerivation = args@{ # The derivation to be wrapped. - derivation - , # Optional meta attribute. + derivation, + # Optional meta attribute. # # While this function is primarily about derivations, it can improve # the `meta` package attribute, which is usually specified through # `mkDerivation`. - meta ? null - , # Optional extra values to add to the returned attrset. + meta ? null, + # Optional extra values to add to the returned attrset. # # This can be used for adding package attributes, such as `tests`. - passthru ? { } - , # Optional list of assumed outputs. Default: ["out"] + passthru ? { }, + # Optional list of assumed outputs. Default: ["out"] # # This must match the set of outputs that the returned derivation has. # You must use this when the derivation has multiple outputs. - outputs ? [ "out" ] + outputs ? [ "out" ], }: let # These checks are strict in `drv` and some `drv` attributes, but the # attrset spine returned by lazyDerivation does not depend on it. # Instead, the individual derivation attributes do depend on it. checked = - throwIfNot (derivation.type or null == "derivation") - "lazyDerivation: input must be a derivation." + throwIfNot (derivation.type or null == "derivation") "lazyDerivation: input must be a derivation." throwIfNot # NOTE: Technically we could require our outputs to be a subset of the # actual ones, or even leave them unchecked and fail on a lazy basis. @@ -139,7 +135,13 @@ in # A fixed set of derivation values, so that `lazyDerivation` can return # its attrset before evaluating `derivation`. # This must only list attributes that are available on _all_ derivations. - inherit (checked) outPath outputName drvPath name system; + inherit (checked) + outPath + outputName + drvPath + name + system + ; inherit outputs; # The meta attribute can either be taken from the derivation, or if the @@ -149,29 +151,31 @@ in // genAttrs outputs (outputName: checked.${outputName}) // passthru; - /* Conditionally set a derivation attribute. + /* + Conditionally set a derivation attribute. - Because `mkDerivation` sets `__ignoreNulls = true`, a derivation - attribute set to `null` will not impact the derivation output hash. - Thus, this function passes through its `value` argument if the `cond` - is `true`, but returns `null` if not. + Because `mkDerivation` sets `__ignoreNulls = true`, a derivation + attribute set to `null` will not impact the derivation output hash. + Thus, this function passes through its `value` argument if the `cond` + is `true`, but returns `null` if not. - Type: optionalDrvAttr :: Bool -> a -> a | Null + Type: optionalDrvAttr :: Bool -> a -> a | Null - Example: - (stdenv.mkDerivation { - name = "foo"; - x = optionalDrvAttr true 1; - y = optionalDrvAttr false 1; - }).drvPath == (stdenv.mkDerivation { - name = "foo"; - x = 1; - }).drvPath - => true + Example: + (stdenv.mkDerivation { + name = "foo"; + x = optionalDrvAttr true 1; + y = optionalDrvAttr false 1; + }).drvPath == (stdenv.mkDerivation { + name = "foo"; + x = 1; + }).drvPath + => true */ optionalDrvAttr = # Condition cond: # Attribute value - value: if cond then value else null; + value: + if cond then value else null; } diff --git a/lib/fetchers.nix b/lib/fetchers.nix index 1107353..da6ef9b 100644 --- a/lib/fetchers.nix +++ b/lib/fetchers.nix @@ -7,7 +7,11 @@ # easy proxy configuration. This is impure, but a fixed-output # derivation like fetchurl is allowed to do so since its result is # by definition pure. - "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" + "http_proxy" + "https_proxy" + "ftp_proxy" + "all_proxy" + "no_proxy" ]; } diff --git a/lib/fileset/default.nix b/lib/fileset/default.nix index e29f302..c5affcd 100644 --- a/lib/fileset/default.nix +++ b/lib/fileset/default.nix @@ -57,7 +57,6 @@ If you need more file set functions, see [this issue](https://github.com/NixOS/nixpkgs/issues/266356) to request it. - ## Implicit coercion from paths to file sets {#sec-fileset-path-coercion} All functions accepting file sets as arguments can also accept [paths](https://nixos.org/manual/nix/stable/language/values.html#type-path) as arguments. @@ -127,35 +126,20 @@ let nixVersion ; - inherit (lib.lists) - elemAt - imap0 - ; + inherit (lib.lists) elemAt imap0; - inherit (lib.path) - hasPrefix - splitRoot - ; + inherit (lib.path) hasPrefix splitRoot; - inherit (lib.strings) - isStringLike - versionOlder - ; + inherit (lib.strings) isStringLike versionOlder; - inherit (lib.filesystem) - pathType - ; + inherit (lib.filesystem) pathType; - inherit (lib.sources) - cleanSourceWith - ; + inherit (lib.sources) cleanSourceWith; - inherit (lib.trivial) - isFunction - pipe - ; + inherit (lib.trivial) isFunction pipe; -in { +in +{ /* Create a file set from a path that may or may not exist: @@ -171,14 +155,12 @@ in { */ maybeMissing = path: - if ! isPath path then + if !isPath path then if isStringLike path then - throw '' - lib.fileset.maybeMissing: Argument ("${toString path}") is a string-like value, but it should be a path instead.'' + throw ''lib.fileset.maybeMissing: Argument ("${toString path}") is a string-like value, but it should be a path instead.'' else - throw '' - lib.fileset.maybeMissing: Argument is of type ${typeOf path}, but it should be a path instead.'' - else if ! pathExists path then + throw ''lib.fileset.maybeMissing: Argument is of type ${typeOf path}, but it should be a path instead.'' + else if !pathExists path then _emptyWithoutBase else _singleton path; @@ -209,10 +191,10 @@ in { */ trace = /* - The file set to trace. + The file set to trace. - This argument can also be a path, - which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). + This argument can also be a path, + which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). */ fileset: let @@ -220,9 +202,7 @@ in { # and we cannot change that because of https://github.com/nix-community/nixdoc/issues/76 actualFileset = _coerce "lib.fileset.trace: Argument" fileset; in - seq - (_printFileset actualFileset) - (x: x); + seq (_printFileset actualFileset) (x: x); /* Incrementally evaluate and trace a file set in a pretty way. @@ -256,10 +236,10 @@ in { */ traceVal = /* - The file set to trace and return. + The file set to trace and return. - This argument can also be a path, - which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). + This argument can also be a path, + which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). */ fileset: let @@ -267,8 +247,7 @@ in { # and we cannot change that because of https://github.com/nix-community/nixdoc/issues/76 actualFileset = _coerce "lib.fileset.traceVal: Argument" fileset; in - seq - (_printFileset actualFileset) + seq (_printFileset actualFileset) # We could also return the original fileset argument here, # but that would then duplicate work for consumers of the fileset, because then they have to coerce it again actualFileset; @@ -340,31 +319,31 @@ in { } => */ - toSource = { - /* - (required) The local directory [path](https://nixos.org/manual/nix/stable/language/values.html#type-path) that will correspond to the root of the resulting store path. - Paths in [strings](https://nixos.org/manual/nix/stable/language/values.html#type-string), including Nix store paths, cannot be passed as `root`. - `root` has to be a directory. + toSource = + { + /* + (required) The local directory [path](https://nixos.org/manual/nix/stable/language/values.html#type-path) that will correspond to the root of the resulting store path. + Paths in [strings](https://nixos.org/manual/nix/stable/language/values.html#type-string), including Nix store paths, cannot be passed as `root`. + `root` has to be a directory. - :::{.note} - Changing `root` only affects the directory structure of the resulting store path, it does not change which files are added to the store. - The only way to change which files get added to the store is by changing the `fileset` attribute. - ::: - */ - root, - /* - (required) The file set whose files to import into the store. - File sets can be created using other functions in this library. - This argument can also be a path, - which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). + :::{.note} + Changing `root` only affects the directory structure of the resulting store path, it does not change which files are added to the store. + The only way to change which files get added to the store is by changing the `fileset` attribute. + ::: + */ + root, + /* + (required) The file set whose files to import into the store. + File sets can be created using other functions in this library. + This argument can also be a path, + which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - :::{.note} - If a directory does not recursively contain any file, it is omitted from the store path contents. - ::: - - */ - fileset, - }: + :::{.note} + If a directory does not recursively contain any file, it is omitted from the store path contents. + ::: + */ + fileset, + }: let # We cannot rename matched attribute arguments, so let's work around it with an extra `let in` statement filesetArg = fileset; @@ -375,7 +354,7 @@ in { filesetFilesystemRoot = (splitRoot fileset._internalBase).root; sourceFilter = _toSourceFilter fileset; in - if ! isPath root then + if !isPath root then if root ? _isLibCleanSourceWith then throw '' lib.fileset.toSource: `root` is a `lib.sources`-based value, but it should be a path instead. @@ -386,38 +365,34 @@ in { lib.fileset.toSource: `root` (${toString root}) is a string-like value, but it should be a path instead. Paths in strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'' else - throw '' - lib.fileset.toSource: `root` is of type ${typeOf root}, but it should be a path instead.'' + throw ''lib.fileset.toSource: `root` is of type ${typeOf root}, but it should be a path instead.'' # Currently all Nix paths have the same filesystem root, but this could change in the future. # See also ../path/README.md - else if ! fileset._internalIsEmptyWithoutBase && rootFilesystemRoot != filesetFilesystemRoot then + else if !fileset._internalIsEmptyWithoutBase && rootFilesystemRoot != filesetFilesystemRoot then throw '' lib.fileset.toSource: Filesystem roots are not the same for `fileset` and `root` (${toString root}): `root`: Filesystem root is "${toString rootFilesystemRoot}" `fileset`: Filesystem root is "${toString filesetFilesystemRoot}" Different filesystem roots are not supported.'' - else if ! pathExists root then - throw '' - lib.fileset.toSource: `root` (${toString root}) is a path that does not exist.'' + else if !pathExists root then + throw ''lib.fileset.toSource: `root` (${toString root}) is a path that does not exist.'' else if pathType root != "directory" then throw '' lib.fileset.toSource: `root` (${toString root}) is a file, but it should be a directory instead. Potential solutions: - If you want to import the file into the store _without_ a containing directory, use string interpolation or `builtins.path` instead of this function. - If you want to import the file into the store _with_ a containing directory, set `root` to the containing directory, such as ${toString (dirOf root)}, and set `fileset` to the file path.'' - else if ! fileset._internalIsEmptyWithoutBase && ! hasPrefix root fileset._internalBase then + else if !fileset._internalIsEmptyWithoutBase && !hasPrefix root fileset._internalBase then throw '' lib.fileset.toSource: `fileset` could contain files in ${toString fileset._internalBase}, which is not under the `root` (${toString root}). Potential solutions: - Set `root` to ${toString fileset._internalBase} or any directory higher up. This changes the layout of the resulting store path. - Set `fileset` to a file set that cannot contain files outside the `root` (${toString root}). This could change the files included in the result.'' else - seq sourceFilter - cleanSourceWith { + seq sourceFilter cleanSourceWith { name = "source"; src = root; filter = sourceFilter; }; - /* The list of file paths contained in the given file set. @@ -446,8 +421,7 @@ in { # The file set whose file paths to return. # This argument can also be a path, # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). - fileset: - _toList (_coerce "lib.fileset.toList: Argument" fileset); + fileset: _toList (_coerce "lib.fileset.toList: Argument" fileset); /* The file set containing all files that are in either of two given file sets. @@ -479,8 +453,8 @@ in { # This argument can also be a path, # which gets [implicitly coerced to a file set](#sec-fileset-path-coercion). fileset2: - _unionMany - (_coerceMany "lib.fileset.union" [ + _unionMany ( + _coerceMany "lib.fileset.union" [ { context = "First argument"; value = fileset1; @@ -489,7 +463,8 @@ in { context = "Second argument"; value = fileset2; } - ]); + ] + ); /* The file set containing all files that are in any of the given file sets. @@ -527,16 +502,17 @@ in { # The elements can also be paths, # which get [implicitly coerced to file sets](#sec-fileset-path-coercion). filesets: - if ! isList filesets then - throw '' - lib.fileset.unions: Argument is of type ${typeOf filesets}, but it should be a list instead.'' + if !isList filesets then + throw ''lib.fileset.unions: Argument is of type ${typeOf filesets}, but it should be a list instead.'' else pipe filesets [ # Annotate the elements with context, used by _coerceMany for better errors - (imap0 (i: el: { - context = "Element ${toString i}"; - value = el; - })) + (imap0 ( + i: el: { + context = "Element ${toString i}"; + value = el; + } + )) (_coerceMany "lib.fileset.unions") _unionMany ]; @@ -576,9 +552,7 @@ in { } ]; in - _intersection - (elemAt filesets 0) - (elemAt filesets 1); + _intersection (elemAt filesets 0) (elemAt filesets 1); /* The file set containing all files from the first file set that are not in the second file set. @@ -628,9 +602,7 @@ in { } ]; in - _difference - (elemAt filesets 0) - (elemAt filesets 1); + _difference (elemAt filesets 0) (elemAt filesets 1); /* Filter a file set to only contain files matching some predicate. @@ -682,66 +654,64 @@ in { predicate: # The path whose files to filter path: - if ! isFunction predicate then - throw '' - lib.fileset.fileFilter: First argument is of type ${typeOf predicate}, but it should be a function instead.'' - else if ! isPath path then + if !isFunction predicate then + throw ''lib.fileset.fileFilter: First argument is of type ${typeOf predicate}, but it should be a function instead.'' + else if !isPath path then if path._type or "" == "fileset" then throw '' lib.fileset.fileFilter: Second argument is a file set, but it should be a path instead. If you need to filter files in a file set, use `intersection fileset (fileFilter pred ./.)` instead.'' else - throw '' - lib.fileset.fileFilter: Second argument is of type ${typeOf path}, but it should be a path instead.'' - else if ! pathExists path then - throw '' - lib.fileset.fileFilter: Second argument (${toString path}) is a path that does not exist.'' + throw ''lib.fileset.fileFilter: Second argument is of type ${typeOf path}, but it should be a path instead.'' + else if !pathExists path then + throw ''lib.fileset.fileFilter: Second argument (${toString path}) is a path that does not exist.'' else _fileFilter predicate path; /* - Create a file set with the same files as a `lib.sources`-based value. - This does not import any of the files into the store. + Create a file set with the same files as a `lib.sources`-based value. + This does not import any of the files into the store. - This can be used to gradually migrate from `lib.sources`-based filtering to `lib.fileset`. + This can be used to gradually migrate from `lib.sources`-based filtering to `lib.fileset`. - A file set can be turned back into a source using [`toSource`](#function-library-lib.fileset.toSource). + A file set can be turned back into a source using [`toSource`](#function-library-lib.fileset.toSource). - :::{.note} - File sets cannot represent empty directories. - Turning the result of this function back into a source using `toSource` will therefore not preserve empty directories. - ::: + :::{.note} + File sets cannot represent empty directories. + Turning the result of this function back into a source using `toSource` will therefore not preserve empty directories. + ::: - Type: - fromSource :: SourceLike -> FileSet + Type: + fromSource :: SourceLike -> FileSet - Example: - # There's no cleanSource-like function for file sets yet, - # but we can just convert cleanSource to a file set and use it that way - toSource { - root = ./.; - fileset = fromSource (lib.sources.cleanSource ./.); - } + Example: + # There's no cleanSource-like function for file sets yet, + # but we can just convert cleanSource to a file set and use it that way + toSource { + root = ./.; + fileset = fromSource (lib.sources.cleanSource ./.); + } - # Keeping a previous sourceByRegex (which could be migrated to `lib.fileset.unions`), - # but removing a subdirectory using file set functions - difference - (fromSource (lib.sources.sourceByRegex ./. [ - "^README\.md$" - # This regex includes everything in ./doc - "^doc(/.*)?$" - ]) - ./doc/generated + # Keeping a previous sourceByRegex (which could be migrated to `lib.fileset.unions`), + # but removing a subdirectory using file set functions + difference + (fromSource (lib.sources.sourceByRegex ./. [ + "^README\.md$" + # This regex includes everything in ./doc + "^doc(/.*)?$" + ]) + ./doc/generated - # Use cleanSource, but limit it to only include ./Makefile and files under ./src - intersection - (fromSource (lib.sources.cleanSource ./.)) - (unions [ - ./Makefile - ./src - ]); + # Use cleanSource, but limit it to only include ./Makefile and files under ./src + intersection + (fromSource (lib.sources.cleanSource ./.)) + (unions [ + ./Makefile + ./src + ]); */ - fromSource = source: + fromSource = + source: let # This function uses `._isLibCleanSourceWith`, `.origSrc` and `.filter`, # which are technically internal to lib.sources, @@ -751,17 +721,15 @@ in { path = if isFiltered then source.origSrc else source; in # We can only support sources created from paths - if ! isPath path then + if !isPath path then if isStringLike path then throw '' lib.fileset.fromSource: The source origin of the argument is a string-like value ("${toString path}"), but it should be a path instead. Sources created from paths in strings cannot be turned into file sets, use `lib.sources` or derivations instead.'' else - throw '' - lib.fileset.fromSource: The source origin of the argument is of type ${typeOf path}, but it should be a path instead.'' - else if ! pathExists path then - throw '' - lib.fileset.fromSource: The source origin (${toString path}) of the argument is a path that does not exist.'' + throw ''lib.fileset.fromSource: The source origin of the argument is of type ${typeOf path}, but it should be a path instead.'' + else if !pathExists path then + throw ''lib.fileset.fromSource: The source origin (${toString path}) of the argument is a path that does not exist.'' else if isFiltered then _fromSourceFilter path source.filter else @@ -789,12 +757,7 @@ in { The [path](https://nixos.org/manual/nix/stable/language/values#type-path) to the working directory of a local Git repository. This directory must contain a `.git` file or subdirectory. */ - path: - _fromFetchGit - "gitTracked" - "argument" - path - {}; + path: _fromFetchGit "gitTracked" "argument" path { }; /* Create a file set containing all [Git-tracked files](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository) in a repository. @@ -842,19 +805,14 @@ in { This directory must contain a `.git` file or subdirectory. */ path: - if ! isBool recurseSubmodules then + if !isBool recurseSubmodules then throw "lib.fileset.gitTrackedWith: Expected the attribute `recurseSubmodules` of the first argument to be a boolean, but it's a ${typeOf recurseSubmodules} instead." else if recurseSubmodules && versionOlder nixVersion _fetchGitSubmodulesMinver then throw "lib.fileset.gitTrackedWith: Setting the attribute `recurseSubmodules` to `true` is only supported for Nix version ${_fetchGitSubmodulesMinver} and after, but Nix version ${nixVersion} is used." else - _fromFetchGit - "gitTrackedWith" - "second argument" - path + _fromFetchGit "gitTrackedWith" "second argument" path # This is the only `fetchGit` parameter that makes sense in this context. # We can't just pass `submodules = recurseSubmodules` here because # this would fail for Nix versions that don't support `submodules`. - (lib.optionalAttrs recurseSubmodules { - submodules = true; - }); + (lib.optionalAttrs recurseSubmodules { submodules = true; }); } diff --git a/lib/fileset/internal.nix b/lib/fileset/internal.nix index 0d97ef1..c6914b6 100644 --- a/lib/fileset/internal.nix +++ b/lib/fileset/internal.nix @@ -1,4 +1,6 @@ -{ lib ? import ../. }: +{ + lib ? import ../., +}: let inherit (builtins) @@ -23,9 +25,7 @@ let zipAttrsWith ; - inherit (lib.filesystem) - pathType - ; + inherit (lib.filesystem) pathType; inherit (lib.lists) all @@ -49,10 +49,7 @@ let splitStorePath ; - inherit (lib.path.subpath) - components - join - ; + inherit (lib.path.subpath) components join; inherit (lib.strings) isStringLike @@ -63,9 +60,7 @@ let versionAtLeast ; - inherit (lib.trivial) - inPureEvalMode - ; + inherit (lib.trivial) inPureEvalMode; in # Rare case of justified usage of rec: # - This file is internal, so the return value doesn't matter, no need to make things overridable @@ -87,7 +82,8 @@ rec { let parts = splitRoot filesetV0._internalBase; in - filesetV0 // { + filesetV0 + // { _internalVersion = 1; _internalBaseRoot = parts.root; _internalBaseComponents = components parts.subpath; @@ -98,15 +94,14 @@ rec { ( filesetV1: # This change is backwards compatible (but not forwards compatible, so we still need a new version) - filesetV1 // { - _internalVersion = 2; - } + filesetV1 // { _internalVersion = 2; } ) # Convert v2 into v3: filesetTree's now have a representation for an empty file set without a base path ( filesetV2: - filesetV2 // { + filesetV2 + // { # All v1 file sets are not the new empty file set _internalIsEmptyWithoutBase = false; _internalVersion = 3; @@ -136,7 +131,8 @@ rec { # Create a fileset, see ./README.md#fileset # Type: path -> filesetTree -> fileset - _create = base: tree: + _create = + base: tree: let # Decompose the base into its components # See ../path/README.md for why we're not just using `toString` @@ -162,7 +158,8 @@ rec { # Coerce a value to a fileset, erroring when the value cannot be coerced. # The string gives the context for error messages. # Type: String -> (fileset | Path) -> fileset - _coerce = context: value: + _coerce = + context: value: if value._type or "" == "fileset" then if value._internalVersion > _currentVersion then throw '' @@ -173,12 +170,14 @@ rec { else if value._internalVersion < _currentVersion then let # Get all the migration functions necessary to convert from the old to the current version - migrationsToApply = sublist value._internalVersion (_currentVersion - value._internalVersion) migrations; + migrationsToApply = sublist value._internalVersion ( + _currentVersion - value._internalVersion + ) migrations; in foldl' (value: migration: migration value) value migrationsToApply else value - else if ! isPath value then + else if !isPath value then if value ? _isLibCleanSourceWith then throw '' ${context} is a `lib.sources`-based value, but it should be a file set or a path instead. @@ -189,9 +188,8 @@ rec { ${context} ("${toString value}") is a string-like value, but it should be a file set or a path instead. Paths represented as strings are not supported by `lib.fileset`, use `lib.sources` or derivations instead.'' else - throw '' - ${context} is of type ${typeOf value}, but it should be a file set or a path instead.'' - else if ! pathExists value then + throw ''${context} is of type ${typeOf value}, but it should be a file set or a path instead.'' + else if !pathExists value then throw '' ${context} (${toString value}) is a path that does not exist. To create a file set from a path that may not exist, use `lib.fileset.maybeMissing`.'' @@ -201,22 +199,21 @@ rec { # Coerce many values to filesets, erroring when any value cannot be coerced, # or if the filesystem root of the values doesn't match. # Type: String -> [ { context :: String, value :: fileset | Path } ] -> [ fileset ] - _coerceMany = functionContext: list: + _coerceMany = + functionContext: list: let - filesets = map ({ context, value }: - _coerce "${functionContext}: ${context}" value - ) list; + filesets = map ({ context, value }: _coerce "${functionContext}: ${context}" value) list; # Find the first value with a base, there may be none! - firstWithBase = findFirst (fileset: ! fileset._internalIsEmptyWithoutBase) null filesets; + firstWithBase = findFirst (fileset: !fileset._internalIsEmptyWithoutBase) null filesets; # This value is only accessed if first != null firstBaseRoot = firstWithBase._internalBaseRoot; # Finds the first element with a filesystem root different than the first element, if any - differentIndex = findFirstIndex (fileset: + differentIndex = findFirstIndex ( + fileset: # The empty value without a base doesn't have a base path - ! fileset._internalIsEmptyWithoutBase - && firstBaseRoot != fileset._internalBaseRoot + !fileset._internalIsEmptyWithoutBase && firstBaseRoot != fileset._internalBaseRoot ) null filesets; in # Only evaluates `differentIndex` if there are any elements with a base @@ -231,7 +228,8 @@ rec { # Create a file set from a path. # Type: Path -> fileset - _singleton = path: + _singleton = + path: let type = pathType path; in @@ -244,21 +242,18 @@ rec { # "default.nix" = ; # } # See ./README.md#single-files - _create (dirOf path) - { - ${baseNameOf path} = type; - }; + _create (dirOf path) { ${baseNameOf path} = type; }; # Expand a directory representation to an equivalent one in attribute set form. # All directory entries are included in the result. # Type: Path -> filesetTree -> { = filesetTree; } - _directoryEntries = path: value: + _directoryEntries = + path: value: if value == "directory" then readDir path else # Set all entries not present to null - mapAttrs (name: value: null) (readDir path) - // value; + mapAttrs (name: value: null) (readDir path) // value; /* A normalisation of a filesetTree suitable filtering with `builtins.path`: @@ -271,7 +266,8 @@ rec { Type: Path -> filesetTree -> filesetTree */ - _normaliseTreeFilter = path: tree: + _normaliseTreeFilter = + path: tree: if tree == "directory" || isAttrs tree then let entries = _directoryEntries path tree; @@ -301,7 +297,8 @@ rec { Type: Path -> filesetTree -> filesetTree (with "emptyDir"'s) */ - _normaliseTreeMinimal = path: tree: + _normaliseTreeMinimal = + path: tree: if tree == "directory" || isAttrs tree then let entries = _directoryEntries path tree; @@ -334,9 +331,11 @@ rec { # Trace a filesetTree in a pretty way when the resulting value is evaluated. # This can handle both normal filesetTree's, and ones returned from _normaliseTreeMinimal # Type: Path -> filesetTree (with "emptyDir"'s) -> Null - _printMinimalTree = base: tree: + _printMinimalTree = + base: tree: let - treeSuffix = tree: + treeSuffix = + tree: if isAttrs tree then "" else if tree == "directory" then @@ -349,14 +348,15 @@ rec { " (${tree})"; # Only for attribute set trees - traceTreeAttrs = prevLine: indent: tree: - foldl' (prevLine: name: + traceTreeAttrs = + prevLine: indent: tree: + foldl' ( + prevLine: name: let subtree = tree.${name}; # Evaluating this prints the line for this subtree - thisLine = - trace "${indent}- ${name}${treeSuffix subtree}" prevLine; + thisLine = trace "${indent}- ${name}${treeSuffix subtree}" prevLine; in if subtree == null || subtree == "emptyDir" then # Don't print anything at all if this subtree is empty @@ -378,24 +378,24 @@ rec { else trace "${toString base}${treeSuffix tree}" null; in - if isAttrs tree then - traceTreeAttrs firstLine "" tree - else - firstLine; + if isAttrs tree then traceTreeAttrs firstLine "" tree else firstLine; # Pretty-print a file set in a pretty way when the resulting value is evaluated # Type: fileset -> Null - _printFileset = fileset: + _printFileset = + fileset: if fileset._internalIsEmptyWithoutBase then trace "(empty)" null else - _printMinimalTree fileset._internalBase - (_normaliseTreeMinimal fileset._internalBase fileset._internalTree); + _printMinimalTree fileset._internalBase ( + _normaliseTreeMinimal fileset._internalBase fileset._internalTree + ); # Turn a fileset into a source filter function suitable for `builtins.path` # Only directories recursively containing at least one files are recursed into # Type: fileset -> (String -> String -> Bool) - _toSourceFilter = fileset: + _toSourceFilter = + fileset: let # Simplify the tree, necessary to make sure all empty directories are null # which has the effect that they aren't included in the result @@ -403,7 +403,7 @@ rec { # The base path as a string with a single trailing slash baseString = - if fileset._internalBaseComponents == [] then + if fileset._internalBaseComponents == [ ] then # Need to handle the filesystem root specially "/" else @@ -414,9 +414,11 @@ rec { # Check whether a list of path components under the base path exists in the tree. # This function is called often, so it should be fast. # Type: [ String ] -> Bool - inTree = components: + inTree = + components: let - recurse = index: localTree: + recurse = + index: localTree: if isAttrs localTree then # We have an attribute set, meaning this is a directory with at least one file if index >= length components then @@ -431,7 +433,8 @@ rec { # If it's not an attribute set it can only be either null (in which case it's not included) # or a string ("directory" or "regular", etc.) in which case it's included localTree != null; - in recurse 0 tree; + in + recurse 0 tree; # Filter suited when there's no files empty = _: _: false; @@ -483,16 +486,14 @@ rec { # Special case because the code below assumes that the _internalBase is always included in the result # which shouldn't be done when we have no files at all in the base # This also forces the tree before returning the filter, leads to earlier error messages - if fileset._internalIsEmptyWithoutBase || tree == null then - empty - else - nonEmpty; + if fileset._internalIsEmptyWithoutBase || tree == null then empty else nonEmpty; # Turn a builtins.filterSource-based source filter on a root path into a file set # containing only files included by the filter. # The filter is lazily called as necessary to determine whether paths are included # Type: Path -> (String -> String -> Bool) -> fileset - _fromSourceFilter = root: sourceFilter: + _fromSourceFilter = + root: sourceFilter: let # During the recursion we need to track both: # - The path value such that we can safely call `readDir` on it @@ -503,9 +504,10 @@ rec { # which is a fairly expensive operation # Create a file set from a directory entry - fromDirEntry = path: pathString: type: + fromDirEntry = + path: pathString: type: # The filter needs to run on the path as a string - if ! sourceFilter pathString type then + if !sourceFilter pathString type then null else if type == "directory" then fromDir path pathString @@ -513,7 +515,8 @@ rec { type; # Create a file set from a directory - fromDir = path: pathString: + fromDir = + path: pathString: mapAttrs # This looks a bit funny, but we need both the path-based and the path string-based values (name: fromDirEntry (path + "/${name}") (pathString + "/${name}")) @@ -536,20 +539,17 @@ rec { else # Direct files are always included by builtins.path without calling the filter # But we need to lift up the base path to its parent to satisfy the base path invariant - _create (dirOf root) - { - ${baseNameOf root} = rootPathType; - }; + _create (dirOf root) { ${baseNameOf root} = rootPathType; }; # Turns a file set into the list of file paths it includes. # Type: fileset -> [ Path ] - _toList = fileset: + _toList = + fileset: let - recurse = path: tree: + recurse = + path: tree: if isAttrs tree then - concatLists (mapAttrsToList (name: value: - recurse (path + "/${name}") value - ) tree) + concatLists (mapAttrsToList (name: value: recurse (path + "/${name}") value) tree) else if tree == "directory" then recurse path (readDir path) else if tree == null then @@ -565,9 +565,11 @@ rec { # Transforms the filesetTree of a file set to a shorter base path, e.g. # _shortenTreeBase [ "foo" ] (_create /foo/bar null) # => { bar = null; } - _shortenTreeBase = targetBaseComponents: fileset: + _shortenTreeBase = + targetBaseComponents: fileset: let - recurse = index: + recurse = + index: # If we haven't reached the required depth yet if index < length fileset._internalBaseComponents then # Create an attribute set and recurse as the value, this can be lazily evaluated this way @@ -581,9 +583,11 @@ rec { # Transforms the filesetTree of a file set to a longer base path, e.g. # _lengthenTreeBase [ "foo" "bar" ] (_create /foo { bar.baz = "regular"; }) # => { baz = "regular"; } - _lengthenTreeBase = targetBaseComponents: fileset: + _lengthenTreeBase = + targetBaseComponents: fileset: let - recurse = index: tree: + recurse = + index: tree: # If the filesetTree is an attribute set and we haven't reached the required depth yet if isAttrs tree && index < length targetBaseComponents then # Recurse with the tree under the right component (which might not exist) @@ -602,10 +606,11 @@ rec { # Computes the union of a list of filesets. # The filesets must already be coerced and validated to be in the same filesystem root # Type: [ Fileset ] -> Fileset - _unionMany = filesets: + _unionMany = + filesets: let # All filesets that have a base, aka not the ones that are the empty value without a base - filesetsWithBase = filter (fileset: ! fileset._internalIsEmptyWithoutBase) filesets; + filesetsWithBase = filter (fileset: !fileset._internalIsEmptyWithoutBase) filesets; # The first fileset that has a base. # This value is only accessed if there are at all. @@ -618,13 +623,13 @@ rec { # A list of path components common to all base paths. # Note that commonPrefix can only be fully evaluated, # so this cannot cause a stack overflow due to a build-up of unevaluated thunks. - commonBaseComponents = foldl' - (components: el: commonPrefix components el._internalBaseComponents) - firstWithBase._internalBaseComponents - # We could also not do the `tail` here to avoid a list allocation, - # but then we'd have to pay for a potentially expensive - # but unnecessary `commonPrefix` call - (tail filesetsWithBase); + commonBaseComponents = + foldl' (components: el: commonPrefix components el._internalBaseComponents) + firstWithBase._internalBaseComponents + # We could also not do the `tail` here to avoid a list allocation, + # but then we'd have to pay for a potentially expensive + # but unnecessary `commonPrefix` call + (tail filesetsWithBase); # The common base path assembled from a filesystem root and the common components commonBase = append firstWithBase._internalBaseRoot (join commonBaseComponents); @@ -643,15 +648,13 @@ rec { resultTree = _unionTrees trees; in # If there's no values with a base, we have no files - if filesetsWithBase == [ ] then - _emptyWithoutBase - else - _create commonBase resultTree; + if filesetsWithBase == [ ] then _emptyWithoutBase else _create commonBase resultTree; # The union of multiple filesetTree's with the same base path. # Later elements are only evaluated if necessary. # Type: [ filesetTree ] -> filesetTree - _unionTrees = trees: + _unionTrees = + trees: let stringIndex = findFirstIndex isString null trees; withoutNull = filter (tree: tree != null) trees; @@ -671,18 +674,15 @@ rec { # Computes the intersection of a list of filesets. # The filesets must already be coerced and validated to be in the same filesystem root # Type: Fileset -> Fileset -> Fileset - _intersection = fileset1: fileset2: + _intersection = + fileset1: fileset2: let # The common base components prefix, e.g. # (/foo/bar, /foo/bar/baz) -> /foo/bar # (/foo/bar, /foo/baz) -> /foo commonBaseComponentsLength = # TODO: Have a `lib.lists.commonPrefixLength` function such that we don't need the list allocation from commonPrefix here - length ( - commonPrefix - fileset1._internalBaseComponents - fileset2._internalBaseComponents - ); + length (commonPrefix fileset1._internalBaseComponents fileset2._internalBaseComponents); # To be able to intersect filesetTree's together, they need to have the same base path. # Base paths can be intersected by taking the longest one (if any) @@ -725,12 +725,11 @@ rec { # The intersection of two filesetTree's with the same base path # The second element is only evaluated as much as necessary. # Type: filesetTree -> filesetTree -> filesetTree - _intersectTree = lhs: rhs: + _intersectTree = + lhs: rhs: if isAttrs lhs && isAttrs rhs then # Both sides are attribute sets, we can recurse for the attributes existing on both sides - mapAttrs - (name: _intersectTree lhs.${name}) - (builtins.intersectAttrs lhs rhs) + mapAttrs (name: _intersectTree lhs.${name}) (builtins.intersectAttrs lhs rhs) else if lhs == null || isString rhs then # If the lhs is null, the result should also be null # And if the rhs is the identity element @@ -743,18 +742,15 @@ rec { # Compute the set difference between two file sets. # The filesets must already be coerced and validated to be in the same filesystem root. # Type: Fileset -> Fileset -> Fileset - _difference = positive: negative: + _difference = + positive: negative: let # The common base components prefix, e.g. # (/foo/bar, /foo/bar/baz) -> /foo/bar # (/foo/bar, /foo/baz) -> /foo commonBaseComponentsLength = # TODO: Have a `lib.lists.commonPrefixLength` function such that we don't need the list allocation from commonPrefix here - length ( - commonPrefix - positive._internalBaseComponents - negative._internalBaseComponents - ); + length (commonPrefix positive._internalBaseComponents negative._internalBaseComponents); # We need filesetTree's with the same base to be able to compute the difference between them # This here is the filesetTree from the negative file set, but for a base path that matches the positive file set. @@ -786,9 +782,7 @@ rec { null; resultingTree = - _differenceTree - positive._internalBase - positive._internalTree + _differenceTree positive._internalBase positive._internalTree negativeTreeWithPositiveBase; in # If the first file set is empty, we can never have any files in the result @@ -805,7 +799,8 @@ rec { # Computes the set difference of two filesetTree's # Type: Path -> filesetTree -> filesetTree - _differenceTree = path: lhs: rhs: + _differenceTree = + path: lhs: rhs: # If the lhs doesn't have any files, or the right hand side includes all files if lhs == null || isString rhs then # The result will always be empty @@ -816,17 +811,19 @@ rec { lhs else # Otherwise we always have two attribute sets to recurse into - mapAttrs (name: lhsValue: - _differenceTree (path + "/${name}") lhsValue (rhs.${name} or null) - ) (_directoryEntries path lhs); + mapAttrs (name: lhsValue: _differenceTree (path + "/${name}") lhsValue (rhs.${name} or null)) ( + _directoryEntries path lhs + ); # Filters all files in a path based on a predicate # Type: ({ name, type, ... } -> Bool) -> Path -> FileSet - _fileFilter = predicate: root: + _fileFilter = + predicate: root: let # Check the predicate for a single file # Type: String -> String -> filesetTree - fromFile = name: type: + fromFile = + name: type: if predicate { inherit name type; @@ -834,7 +831,8 @@ rec { # To ensure forwards compatibility with more arguments being added in the future, # adding an attribute which can't be deconstructed :) - "lib.fileset.fileFilter: The predicate function passed as the first argument must be able to handle extra attributes for future compatibility. If you're using `{ name, file, hasExt }:`, use `{ name, file, hasExt, ... }:` instead." = null; + "lib.fileset.fileFilter: The predicate function passed as the first argument must be able to handle extra attributes for future compatibility. If you're using `{ name, file, hasExt }:`, use `{ name, file, hasExt, ... }:` instead." = + null; } then type @@ -843,12 +841,10 @@ rec { # Check the predicate for all files in a directory # Type: Path -> filesetTree - fromDir = path: - mapAttrs (name: type: - if type == "directory" then - fromDir (path + "/${name}") - else - fromFile name type + fromDir = + path: + mapAttrs ( + name: type: if type == "directory" then fromDir (path + "/${name}") else fromFile name type ) (readDir path); rootType = pathType root; @@ -857,10 +853,7 @@ rec { _create root (fromDir root) else # Single files are turned into a directory containing that file or nothing. - _create (dirOf root) { - ${baseNameOf root} = - fromFile (baseNameOf root) rootType; - }; + _create (dirOf root) { ${baseNameOf root} = fromFile (baseNameOf root) rootType; }; # Support for `builtins.fetchGit` with `submodules = true` was introduced in 2.4 # https://github.com/NixOS/nix/commit/55cefd41d63368d4286568e2956afd535cb44018 @@ -876,22 +869,21 @@ rec { # - The store path must not include files that don't exist in the respective local path. # # Type: Path -> String -> FileSet - _mirrorStorePath = localPath: storePath: + _mirrorStorePath = + localPath: storePath: let - recurse = focusedStorePath: - mapAttrs (name: type: - if type == "directory" then - recurse (focusedStorePath + "/${name}") - else - type + recurse = + focusedStorePath: + mapAttrs ( + name: type: if type == "directory" then recurse (focusedStorePath + "/${name}") else type ) (builtins.readDir focusedStorePath); in - _create localPath - (recurse storePath); + _create localPath (recurse storePath); # Create a file set from the files included in the result of a fetchGit call # Type: String -> String -> Path -> Attrs -> FileSet - _fromFetchGit = function: argument: path: extraFetchGitAttrs: + _fromFetchGit = + function: argument: path: extraFetchGitAttrs: let # The code path for when isStorePath is true tryStorePath = @@ -922,31 +914,33 @@ rec { # With the [lazy trees PR](https://github.com/NixOS/nix/pull/6530), # the unnecessarily import could be avoided. # However a simpler alternative still would be [a builtins.gitLsFiles](https://github.com/NixOS/nix/issues/2944). - fetchResult = fetchGit ({ - url = path; - } - # In older Nix versions, repositories were always assumed to be deep clones, which made `fetchGit` fail for shallow clones - # For newer versions this was fixed, but the `shallow` flag is required. - # The only behavioral difference is that for shallow clones, `fetchGit` doesn't return a `revCount`, - # which we don't need here, so it's fine to always pass it. + fetchResult = fetchGit ( + { + url = path; + } + # In older Nix versions, repositories were always assumed to be deep clones, which made `fetchGit` fail for shallow clones + # For newer versions this was fixed, but the `shallow` flag is required. + # The only behavioral difference is that for shallow clones, `fetchGit` doesn't return a `revCount`, + # which we don't need here, so it's fine to always pass it. - # Unfortunately this means older Nix versions get a poor error message for shallow repositories, and there's no good way to improve that. - # Checking for `.git/shallow` doesn't seem worth it, especially since that's more of an implementation detail, - # and would also require more code to handle worktrees where `.git` is a file. - // optionalAttrs (versionAtLeast nixVersion _fetchGitShallowMinver) { shallow = true; } - // extraFetchGitAttrs); + # Unfortunately this means older Nix versions get a poor error message for shallow repositories, and there's no good way to improve that. + # Checking for `.git/shallow` doesn't seem worth it, especially since that's more of an implementation detail, + # and would also require more code to handle worktrees where `.git` is a file. + // optionalAttrs (versionAtLeast nixVersion _fetchGitShallowMinver) { shallow = true; } + // extraFetchGitAttrs + ); in # We can identify local working directories by checking for .git, # see https://git-scm.com/docs/gitrepository-layout#_description. # Note that `builtins.fetchGit` _does_ work for bare repositories (where there's no `.git`), # even though `git ls-files` wouldn't return any files in that case. - if ! pathExists (path + "/.git") then + if !pathExists (path + "/.git") then throw "lib.fileset.${function}: Expected the ${argument} (${toString path}) to point to a local working tree of a Git repository, but it's not." else _mirrorStorePath path fetchResult.outPath; in - if ! isPath path then + if !isPath path then throw "lib.fileset.${function}: Expected the ${argument} to be a path, but it's a ${typeOf path} instead." else if pathType path != "directory" then throw "lib.fileset.${function}: Expected the ${argument} (${toString path}) to be a directory, but it's a file instead." diff --git a/lib/fileset/mock-splitRoot.nix b/lib/fileset/mock-splitRoot.nix index 3c18ab1..96d43a4 100644 --- a/lib/fileset/mock-splitRoot.nix +++ b/lib/fileset/mock-splitRoot.nix @@ -8,18 +8,21 @@ # } self: super: { path = super.path // { - splitRoot = path: + splitRoot = + path: let parts = super.path.splitRoot path; components = self.path.subpath.components parts.subpath; count = self.length components; - rootIndex = count - self.lists.findFirstIndex - (component: component == "mock-root") - (self.length components) - (self.reverseList components); + rootIndex = + count + - self.lists.findFirstIndex (component: component == "mock-root") (self.length components) ( + self.reverseList components + ); root = self.path.append parts.root (self.path.subpath.join (self.take rootIndex components)); subpath = self.path.subpath.join (self.drop rootIndex components); - in { + in + { inherit root subpath; }; }; diff --git a/lib/filesystem.nix b/lib/filesystem.nix index c416db0..a4aa9e2 100644 --- a/lib/filesystem.nix +++ b/lib/filesystem.nix @@ -6,25 +6,13 @@ # Tested in lib/tests/filesystem.sh let - inherit (builtins) - readDir - pathExists - toString - ; + inherit (builtins) readDir pathExists toString; - inherit (lib.attrsets) - mapAttrs' - filterAttrs - ; + inherit (lib.attrsets) mapAttrs' filterAttrs; - inherit (lib.filesystem) - pathType - ; + inherit (lib.filesystem) pathType; - inherit (lib.strings) - hasSuffix - removeSuffix - ; + inherit (lib.strings) hasSuffix removeSuffix; in { @@ -46,17 +34,21 @@ in pathType = builtins.readFileType or # Nix <2.14 compatibility shim - (path: - if ! pathExists path + ( + path: + if + !pathExists path # Fail irrecoverably to mimic the historic behavior of this function and # the new builtins.readFileType - then abort "lib.filesystem.pathType: Path ${toString path} does not exist." + then + abort "lib.filesystem.pathType: Path ${toString path} does not exist." # The filesystem root is the only path where `dirOf / == /` and # `baseNameOf /` is not valid. We can detect this and directly return # "directory", since we know the filesystem root can't be anything else. - else if dirOf path == path - then "directory" - else (readDir (dirOf path)).${baseNameOf path} + else if dirOf path == path then + "directory" + else + (readDir (dirOf path)).${baseNameOf path} ); /* @@ -75,8 +67,7 @@ in pathIsDirectory /some/file.nix => false */ - pathIsDirectory = path: - pathExists path && pathType path == "directory"; + pathIsDirectory = path: pathExists path && pathType path == "directory"; /* Whether a path exists and is a regular file, meaning not a symlink or any other special file type. @@ -94,8 +85,7 @@ in pathIsRegularFile /some/file.nix => true */ - pathIsRegularFile = path: - pathExists path && pathType path == "regular"; + pathIsRegularFile = path: pathExists path && pathType path == "regular"; /* A map of all haskell packages defined in the given path, @@ -107,19 +97,20 @@ in haskellPathsInDir = # The directory within to search root: - let # Files in the root - root-files = builtins.attrNames (builtins.readDir root); - # Files with their full paths - root-files-with-paths = - map (file: - { name = file; value = root + "/${file}"; } - ) root-files; - # Subdirectories of the root with a cabal file. - cabal-subdirs = - builtins.filter ({ name, value }: - builtins.pathExists (value + "/${name}.cabal") - ) root-files-with-paths; - in builtins.listToAttrs cabal-subdirs; + let + # Files in the root + root-files = builtins.attrNames (builtins.readDir root); + # Files with their full paths + root-files-with-paths = map (file: { + name = file; + value = root + "/${file}"; + }) root-files; + # Subdirectories of the root with a cabal file. + cabal-subdirs = builtins.filter ( + { name, value }: builtins.pathExists (value + "/${name}.cabal") + ) root-files-with-paths; + in + builtins.listToAttrs cabal-subdirs; /* Find the first directory containing a file matching 'pattern' upward from a given 'file'. @@ -132,23 +123,28 @@ in pattern: # The file to start searching upward from file: - let go = path: - let files = builtins.attrNames (builtins.readDir path); - matches = builtins.filter (match: match != null) - (map (builtins.match pattern) files); - in - if builtins.length matches != 0 - then { inherit path matches; } - else if path == /. - then null - else go (dirOf path); - parent = dirOf file; - isDir = - let base = baseNameOf file; - type = (builtins.readDir parent).${base} or null; - in file == /. || type == "directory"; - in go (if isDir then file else parent); - + let + go = + path: + let + files = builtins.attrNames (builtins.readDir path); + matches = builtins.filter (match: match != null) (map (builtins.match pattern) files); + in + if builtins.length matches != 0 then + { inherit path matches; } + else if path == /. then + null + else + go (dirOf path); + parent = dirOf file; + isDir = + let + base = baseNameOf file; + type = (builtins.readDir parent).${base} or null; + in + file == /. || type == "directory"; + in + go (if isDir then file else parent); /* Given a directory, return a flattened list of all files within it recursively. @@ -158,12 +154,15 @@ in listFilesRecursive = # The path to recursively list dir: - lib.flatten (lib.mapAttrsToList (name: type: - if type == "directory" then - lib.filesystem.listFilesRecursive (dir + "/${name}") - else - dir + "/${name}" - ) (builtins.readDir dir)); + lib.flatten ( + lib.mapAttrsToList ( + name: type: + if type == "directory" then + lib.filesystem.listFilesRecursive (dir + "/${name}") + else + dir + "/${name}" + ) (builtins.readDir dir) + ); /* Transform a directory tree containing package files suitable for @@ -263,49 +262,44 @@ in let # Determine if a directory entry from `readDir` indicates a package or # directory of packages. - directoryEntryIsPackage = basename: type: - type == "directory" || hasSuffix ".nix" basename; + directoryEntryIsPackage = basename: type: type == "directory" || hasSuffix ".nix" basename; # List directory entries that indicate packages in the given `path`. - packageDirectoryEntries = path: - filterAttrs directoryEntryIsPackage (readDir path); + packageDirectoryEntries = path: filterAttrs directoryEntryIsPackage (readDir path); # Transform a directory entry (a `basename` and `type` pair) into a # package. - directoryEntryToAttrPair = subdirectory: basename: type: + directoryEntryToAttrPair = + subdirectory: basename: type: let path = subdirectory + "/${basename}"; in - if type == "regular" - then - { - name = removeSuffix ".nix" basename; - value = callPackage path { }; - } + if type == "regular" then + { + name = removeSuffix ".nix" basename; + value = callPackage path { }; + } + else if type == "directory" then + { + name = basename; + value = packagesFromDirectory path; + } else - if type == "directory" - then - { - name = basename; - value = packagesFromDirectory path; - } - else - throw - '' + throw '' lib.filesystem.packagesFromDirectoryRecursive: Unsupported file type ${type} at path ${toString subdirectory} ''; # Transform a directory into a package (if there's a `package.nix`) or # set of packages (otherwise). - packagesFromDirectory = path: + packagesFromDirectory = + path: let defaultPackagePath = path + "/package.nix"; in - if pathExists defaultPackagePath - then callPackage defaultPackagePath { } - else mapAttrs' - (directoryEntryToAttrPair path) - (packageDirectoryEntries path); + if pathExists defaultPackagePath then + callPackage defaultPackagePath { } + else + mapAttrs' (directoryEntryToAttrPair path) (packageDirectoryEntries path); in packagesFromDirectory directory; } diff --git a/lib/fixed-points.nix b/lib/fixed-points.nix index 3bd18fd..26ce089 100644 --- a/lib/fixed-points.nix +++ b/lib/fixed-points.nix @@ -72,7 +72,12 @@ rec { fix (self: [ 1 2 (elemAt self 0 + elemAt self 1) ]) => [ 1 2 3 ] */ - fix = f: let x = f x; in x; + fix = + f: + let + x = f x; + in + x; /* A variant of `fix` that records the original recursive attribute set in the @@ -81,7 +86,14 @@ rec { This is useful in combination with the `extends` function to implement deep overriding. */ - fix' = f: let x = f x // { __unfix__ = f; }; in x; + fix' = + f: + let + x = f x // { + __unfix__ = f; + }; + in + x; /* Return the fixpoint that `f` converges to when called iteratively, starting @@ -94,13 +106,12 @@ rec { Type: (a -> a) -> a -> a */ - converge = f: x: + converge = + f: x: let x' = f x; in - if x' == x - then x - else converge f x'; + if x' == x then x else converge f x'; /* Extend a function using an overlay. @@ -109,7 +120,6 @@ rec { A fixed-point function is a function which is intended to be evaluated by passing the result of itself as the argument. This is possible due to Nix's lazy evaluation. - A fixed-point function returning an attribute set has the form ```nix @@ -259,9 +269,11 @@ rec { */ composeExtensions = f: g: final: prev: - let fApplied = f final prev; - prev' = prev // fApplied; - in fApplied // g final prev'; + let + fApplied = f final prev; + prev' = prev // fApplied; + in + fApplied // g final prev'; /* Compose several extending functions of the type expected by 'extends' into @@ -273,8 +285,7 @@ rec { ^final ^prev ^overrides ^final ^prev ^overrides ``` */ - composeManyExtensions = - lib.foldr (x: y: composeExtensions x y) (final: prev: {}); + composeManyExtensions = lib.foldr (x: y: composeExtensions x y) (final: prev: { }); /* Create an overridable, recursive attribute set. For example: @@ -302,8 +313,13 @@ rec { Same as `makeExtensible` but the name of the extending attribute is customized. */ - makeExtensibleWithCustomName = extenderName: rattrs: - fix' (self: (rattrs self) // { - ${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs); - }); + makeExtensibleWithCustomName = + extenderName: rattrs: + fix' ( + self: + (rattrs self) + // { + ${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs); + } + ); } diff --git a/lib/flake-version-info.nix b/lib/flake-version-info.nix index de15be9..fe5acc9 100644 --- a/lib/flake-version-info.nix +++ b/lib/flake-version-info.nix @@ -13,8 +13,9 @@ finalLib: prevLib: # lib overlay { trivial = prevLib.trivial // { - versionSuffix = - ".${finalLib.substring 0 8 (self.lastModifiedDate or "19700101")}.${self.shortRev or "dirty"}"; + versionSuffix = ".${ + finalLib.substring 0 8 (self.lastModifiedDate or "19700101") + }.${self.shortRev or "dirty"}"; revisionWithDefault = default: self.rev or default; }; } diff --git a/lib/flake.nix b/lib/flake.nix index ca09ed5..a21b988 100644 --- a/lib/flake.nix +++ b/lib/flake.nix @@ -1,10 +1,12 @@ { description = "Library of low-level helper functions for nix expressions."; - outputs = { self }: + outputs = + { self }: let lib0 = import ./.; - in { + in + { lib = lib0.extend (import ./flake-version-info.nix self); }; } diff --git a/lib/generators.nix b/lib/generators.nix index 5f42a98..0f81d57 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -1,18 +1,19 @@ -/* Functions that generate widespread file - * formats from nix data structures. - * - * They all follow a similar interface: - * generator { config-attrs } data - * - * `config-attrs` are “holes” in the generators - * with sensible default implementations that - * can be overwritten. The default implementations - * are mostly generators themselves, called with - * their respective default values; they can be reused. - * - * Tests can be found in ./tests/misc.nix - * Documentation in the manual, #sec-generators - */ +/* + Functions that generate widespread file + formats from nix data structures. + + They all follow a similar interface: + generator { config-attrs } data + + `config-attrs` are “holes” in the generators + with sensible default implementations that + can be overwritten. The default implementations + are mostly generators themselves, called with + their respective default values; they can be reused. + + Tests can be found in ./tests/misc.nix + Documentation in the manual, #sec-generators +*/ { lib }: let @@ -30,7 +31,7 @@ let filter flatten foldl - functionArgs # Note: not the builtin; considers `__functor` in attrsets. + functionArgs # Note: not the builtin; considers `__functor` in attrsets. gvariant hasInfix head @@ -40,7 +41,7 @@ let isBool isDerivation isFloat - isFunction # Note: not the builtin; considers `__functor` in attrsets. + isFunction # Note: not the builtin; considers `__functor` in attrsets. isInt isList isPath @@ -69,216 +70,281 @@ let ## -- HELPER FUNCTIONS & DEFAULTS -- - /* Convert a value to a sensible default string representation. - * The builtin `toString` function has some strange defaults, - * suitable for bash scripts but not much else. - */ - mkValueStringDefault = {}: v: - let err = t: v: abort - ("generators.mkValueStringDefault: " + - "${t} not supported: ${toPretty {} v}"); - in if isInt v then toString v + /* + Convert a value to a sensible default string representation. + The builtin `toString` function has some strange defaults, + suitable for bash scripts but not much else. + */ + mkValueStringDefault = + { }: + v: + let + err = t: v: abort ("generators.mkValueStringDefault: " + "${t} not supported: ${toPretty { } v}"); + in + if isInt v then + toString v # convert derivations to store paths - else if isDerivation v then toString v + else if isDerivation v then + toString v # we default to not quoting strings - else if isString v then v + else if isString v then + v # isString returns "1", which is not a good default - else if true == v then "true" + else if true == v then + "true" # here it returns to "", which is even less of a good default - else if false == v then "false" - else if null == v then "null" + else if false == v then + "false" + else if null == v then + "null" # if you have lists you probably want to replace this - else if isList v then err "lists" v + else if isList v then + err "lists" v # same as for lists, might want to replace - else if isAttrs v then err "attrsets" v + else if isAttrs v then + err "attrsets" v # functions can’t be printed of course - else if isFunction v then err "functions" v + else if isFunction v then + err "functions" v # Floats currently can't be converted to precise strings, # condition warning on nix version once this isn't a problem anymore # See https://github.com/NixOS/nix/pull/3480 - else if isFloat v then floatToString v - else err "this value is" (toString v); + else if isFloat v then + floatToString v + else + err "this value is" (toString v); + /* + Generate a line of key k and value v, separated by + character sep. If sep appears in k, it is escaped. + Helper for synaxes with different separators. - /* Generate a line of key k and value v, separated by - * character sep. If sep appears in k, it is escaped. - * Helper for synaxes with different separators. - * - * mkValueString specifies how values should be formatted. - * - * mkKeyValueDefault {} ":" "f:oo" "bar" - * > "f\:oo:bar" - */ - mkKeyValueDefault = { - mkValueString ? mkValueStringDefault {} - }: sep: k: v: - "${escape [sep] k}${sep}${mkValueString v}"; + mkValueString specifies how values should be formatted. + mkKeyValueDefault {} ":" "f:oo" "bar" + > "f\:oo:bar" + */ + mkKeyValueDefault = + { + mkValueString ? mkValueStringDefault { }, + }: + sep: k: v: + "${escape [ sep ] k}${sep}${mkValueString v}"; ## -- FILE FORMAT GENERATORS -- + /* + Generate a key-value-style config file from an attrset. - /* Generate a key-value-style config file from an attrset. - * - * mkKeyValue is the same as in toINI. - */ - toKeyValue = { - mkKeyValue ? mkKeyValueDefault {} "=", - listsAsDuplicateKeys ? false, - indent ? "" - }: - let mkLine = k: v: indent + mkKeyValue k v + "\n"; - mkLines = if listsAsDuplicateKeys - then k: v: map (mkLine k) (if isList v then v else [v]) - else k: v: [ (mkLine k v) ]; - in attrs: concatStrings (concatLists (mapAttrsToList mkLines attrs)); - - - /* Generate an INI-style config file from an - * attrset of sections to an attrset of key-value pairs. - * - * generators.toINI {} { - * foo = { hi = "${pkgs.hello}"; ciao = "bar"; }; - * baz = { "also, integers" = 42; }; - * } - * - *> [baz] - *> also, integers=42 - *> - *> [foo] - *> ciao=bar - *> hi=/nix/store/y93qql1p5ggfnaqjjqhxcw0vqw95rlz0-hello-2.10 - * - * The mk* configuration attributes can generically change - * the way sections and key-value strings are generated. - * - * For more examples see the test cases in ./tests/misc.nix. - */ - toINI = { - # apply transformations (e.g. escapes) to section names - mkSectionName ? (name: escape [ "[" "]" ] name), - # format a setting line from key and value - mkKeyValue ? mkKeyValueDefault {} "=", - # allow lists as values for duplicate keys - listsAsDuplicateKeys ? false - }: attrsOfAttrs: + mkKeyValue is the same as in toINI. + */ + toKeyValue = + { + mkKeyValue ? mkKeyValueDefault { } "=", + listsAsDuplicateKeys ? false, + indent ? "", + }: let - # map function to string for each key val - mapAttrsToStringsSep = sep: mapFn: attrs: - concatStringsSep sep - (mapAttrsToList mapFn attrs); - mkSection = sectName: sectValues: '' - [${mkSectionName sectName}] - '' + toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } sectValues; + mkLine = k: v: indent + mkKeyValue k v + "\n"; + mkLines = + if listsAsDuplicateKeys then + k: v: map (mkLine k) (if isList v then v else [ v ]) + else + k: v: [ (mkLine k v) ]; in - # map input to ini sections - mapAttrsToStringsSep "\n" mkSection attrsOfAttrs; + attrs: concatStrings (concatLists (mapAttrsToList mkLines attrs)); - /* Generate an INI-style config file from an attrset - * specifying the global section (no header), and an - * attrset of sections to an attrset of key-value pairs. - * - * generators.toINIWithGlobalSection {} { - * globalSection = { - * someGlobalKey = "hi"; - * }; - * sections = { - * foo = { hi = "${pkgs.hello}"; ciao = "bar"; }; - * baz = { "also, integers" = 42; }; - * } - * - *> someGlobalKey=hi - *> - *> [baz] - *> also, integers=42 - *> - *> [foo] - *> ciao=bar - *> hi=/nix/store/y93qql1p5ggfnaqjjqhxcw0vqw95rlz0-hello-2.10 - * - * The mk* configuration attributes can generically change - * the way sections and key-value strings are generated. - * - * For more examples see the test cases in ./tests/misc.nix. - * - * If you don’t need a global section, you can also use - * `generators.toINI` directly, which only takes - * the part in `sections`. - */ - toINIWithGlobalSection = { - # apply transformations (e.g. escapes) to section names - mkSectionName ? (name: escape [ "[" "]" ] name), - # format a setting line from key and value - mkKeyValue ? mkKeyValueDefault {} "=", - # allow lists as values for duplicate keys - listsAsDuplicateKeys ? false - }: { globalSection, sections ? {} }: - ( if globalSection == {} - then "" - else (toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } globalSection) - + "\n") + /* + Generate an INI-style config file from an + attrset of sections to an attrset of key-value pairs. + + generators.toINI {} { + foo = { hi = "${pkgs.hello}"; ciao = "bar"; }; + baz = { "also, integers" = 42; }; + } + + > [baz] + > also, integers=42 + > + > [foo] + > ciao=bar + > hi=/nix/store/y93qql1p5ggfnaqjjqhxcw0vqw95rlz0-hello-2.10 + + The mk* configuration attributes can generically change + the way sections and key-value strings are generated. + + For more examples see the test cases in ./tests/misc.nix. + */ + toINI = + { + # apply transformations (e.g. escapes) to section names + mkSectionName ? ( + name: + escape [ + "[" + "]" + ] name + ), + # format a setting line from key and value + mkKeyValue ? mkKeyValueDefault { } "=", + # allow lists as values for duplicate keys + listsAsDuplicateKeys ? false, + }: + attrsOfAttrs: + let + # map function to string for each key val + mapAttrsToStringsSep = + sep: mapFn: attrs: + concatStringsSep sep (mapAttrsToList mapFn attrs); + mkSection = + sectName: sectValues: + '' + [${mkSectionName sectName}] + '' + + toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } sectValues; + in + # map input to ini sections + mapAttrsToStringsSep "\n" mkSection attrsOfAttrs; + + /* + Generate an INI-style config file from an attrset + specifying the global section (no header), and an + attrset of sections to an attrset of key-value pairs. + + generators.toINIWithGlobalSection {} { + globalSection = { + someGlobalKey = "hi"; + }; + sections = { + foo = { hi = "${pkgs.hello}"; ciao = "bar"; }; + baz = { "also, integers" = 42; }; + } + + > someGlobalKey=hi + > + > [baz] + > also, integers=42 + > + > [foo] + > ciao=bar + > hi=/nix/store/y93qql1p5ggfnaqjjqhxcw0vqw95rlz0-hello-2.10 + + The mk* configuration attributes can generically change + the way sections and key-value strings are generated. + + For more examples see the test cases in ./tests/misc.nix. + + If you don’t need a global section, you can also use + `generators.toINI` directly, which only takes + the part in `sections`. + */ + toINIWithGlobalSection = + { + # apply transformations (e.g. escapes) to section names + mkSectionName ? ( + name: + escape [ + "[" + "]" + ] name + ), + # format a setting line from key and value + mkKeyValue ? mkKeyValueDefault { } "=", + # allow lists as values for duplicate keys + listsAsDuplicateKeys ? false, + }: + { + globalSection, + sections ? { }, + }: + ( + if globalSection == { } then + "" + else + (toKeyValue { inherit mkKeyValue listsAsDuplicateKeys; } globalSection) + "\n" + ) + (toINI { inherit mkSectionName mkKeyValue listsAsDuplicateKeys; } sections); - /* Generate a git-config file from an attrset. - * - * It has two major differences from the regular INI format: - * - * 1. values are indented with tabs - * 2. sections can have sub-sections - * - * generators.toGitINI { - * url."ssh://git@github.com/".insteadOf = "https://github.com"; - * user.name = "edolstra"; - * } - * - *> [url "ssh://git@github.com/"] - *> insteadOf = "https://github.com" - *> - *> [user] - *> name = "edolstra" - */ - toGitINI = attrs: + /* + Generate a git-config file from an attrset. + + It has two major differences from the regular INI format: + + 1. values are indented with tabs + 2. sections can have sub-sections + + generators.toGitINI { + url."ssh://git@github.com/".insteadOf = "https://github.com"; + user.name = "edolstra"; + } + + > [url "ssh://git@github.com/"] + > insteadOf = "https://github.com" + > + > [user] + > name = "edolstra" + */ + toGitINI = + attrs: let - mkSectionName = name: + mkSectionName = + name: let containsQuote = hasInfix ''"'' name; sections = splitString "." name; section = head sections; subsections = tail sections; subsection = concatStringsSep "." subsections; - in if containsQuote || subsections == [ ] then - name - else - ''${section} "${subsection}"''; + in + if containsQuote || subsections == [ ] then name else ''${section} "${subsection}"''; - mkValueString = v: + mkValueString = + v: let - escapedV = '' - "${ - replaceStrings [ "\n" " " ''"'' "\\" ] [ "\\n" "\\t" ''\"'' "\\\\" ] v - }"''; - in mkValueStringDefault { } (if isString v then escapedV else v); + escapedV = ''"${ + replaceStrings + [ + "\n" + " " + ''"'' + "\\" + ] + [ + "\\n" + "\\t" + ''\"'' + "\\\\" + ] + v + }"''; + in + mkValueStringDefault { } (if isString v then escapedV else v); # generation for multiple ini values - mkKeyValue = k: v: - let mkKeyValue = mkKeyValueDefault { inherit mkValueString; } " = " k; - in concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (toList v)); + mkKeyValue = + k: v: + let + mkKeyValue = mkKeyValueDefault { inherit mkValueString; } " = " k; + in + concatStringsSep "\n" (map (kv: "\t" + mkKeyValue kv) (toList v)); # converts { a.b.c = 5; } to { "a.b".c = 5; } for toINI - gitFlattenAttrs = let - recurse = path: value: - if isAttrs value && !isDerivation value then - mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value - else if length path > 1 then { - ${concatStringsSep "." (reverseList (tail path))}.${head path} = value; - } else { - ${head path} = value; - }; - in attrs: foldl recursiveUpdate { } (flatten (recurse [ ] attrs)); + gitFlattenAttrs = + let + recurse = + path: value: + if isAttrs value && !isDerivation value then + mapAttrsToList (name: value: recurse ([ name ] ++ path) value) value + else if length path > 1 then + { ${concatStringsSep "." (reverseList (tail path))}.${head path} = value; } + else + { ${head path} = value; }; + in + attrs: foldl recursiveUpdate { } (flatten (recurse [ ] attrs)); toINI_ = toINI { inherit mkKeyValue mkSectionName; }; in - toINI_ (gitFlattenAttrs attrs); + toINI_ (gitFlattenAttrs attrs); # mkKeyValueDefault wrapper that handles dconf INI quirks. # The main differences of the format is that it requires strings to be quoted. @@ -290,174 +356,249 @@ let withRecursion = { - /* If this option is not null, the given value will stop evaluating at a certain depth */ - depthLimit - /* If this option is true, an error will be thrown, if a certain given depth is exceeded */ - , throwOnDepthLimit ? true + # If this option is not null, the given value will stop evaluating at a certain depth + depthLimit, + # If this option is true, an error will be thrown, if a certain given depth is exceeded + throwOnDepthLimit ? true, }: - assert isInt depthLimit; - let - specialAttrs = [ - "__functor" - "__functionArgs" - "__toString" - "__pretty" - ]; - stepIntoAttr = evalNext: name: - if elem name specialAttrs - then id - else evalNext; - transform = depth: - if depthLimit != null && depth > depthLimit then - if throwOnDepthLimit - then throw "Exceeded maximum eval-depth limit of ${toString depthLimit} while trying to evaluate with `generators.withRecursion'!" - else const "" - else id; - mapAny = depth: v: - let - evalNext = x: mapAny (depth + 1) (transform (depth + 1) x); - in - if isAttrs v then mapAttrs (stepIntoAttr evalNext) v - else if isList v then map evalNext v - else transform (depth + 1) v; - in - mapAny 0; - - /* Pretty print a value, akin to `builtins.trace`. - * Should probably be a builtin as well. - * The pretty-printed string should be suitable for rendering default values - * in the NixOS manual. In particular, it should be as close to a valid Nix expression - * as possible. - */ - toPretty = { - /* If this option is true, attrsets like { __pretty = fn; val = …; } - will use fn to convert val to a pretty printed representation. - (This means fn is type Val -> String.) */ - allowPrettyValues ? false, - /* If this option is true, the output is indented with newlines for attribute sets and lists */ - multiline ? true, - /* Initial indentation level */ - indent ? "" - }: + assert isInt depthLimit; let - go = indent: v: - let introSpace = if multiline then "\n${indent} " else " "; - outroSpace = if multiline then "\n${indent}" else " "; - in if isInt v then toString v - # toString loses precision on floats, so we use toJSON instead. This isn't perfect - # as the resulting string may not parse back as a float (e.g. 42, 1e-06), but for - # pretty-printing purposes this is acceptable. - else if isFloat v then builtins.toJSON v - else if isString v then - let - lines = filter (v: ! isList v) (split "\n" v); - escapeSingleline = escape [ "\\" "\"" "\${" ]; - escapeMultiline = replaceStrings [ "\${" "''" ] [ "''\${" "'''" ]; - singlelineResult = "\"" + concatStringsSep "\\n" (map escapeSingleline lines) + "\""; - multilineResult = let - escapedLines = map escapeMultiline lines; - # The last line gets a special treatment: if it's empty, '' is on its own line at the "outer" - # indentation level. Otherwise, '' is appended to the last line. - lastLine = last escapedLines; - in "''" + introSpace + concatStringsSep introSpace (init escapedLines) - + (if lastLine == "" then outroSpace else introSpace + lastLine) + "''"; - in - if multiline && length lines > 1 then multilineResult else singlelineResult - else if true == v then "true" - else if false == v then "false" - else if null == v then "null" - else if isPath v then toString v - else if isList v then - if v == [] then "[ ]" - else "[" + introSpace - + concatMapStringsSep introSpace (go (indent + " ")) v - + outroSpace + "]" - else if isFunction v then - let fna = functionArgs v; - showFnas = concatStringsSep ", " (mapAttrsToList - (name: hasDefVal: if hasDefVal then name + "?" else name) - fna); - in if fna == {} then "" - else "" - else if isAttrs v then - # apply pretty values if allowed - if allowPrettyValues && v ? __pretty && v ? val - then v.__pretty v.val - else if v == {} then "{ }" - else if v ? type && v.type == "derivation" then - "" - else "{" + introSpace - + concatStringsSep introSpace (mapAttrsToList - (name: value: + specialAttrs = [ + "__functor" + "__functionArgs" + "__toString" + "__pretty" + ]; + stepIntoAttr = evalNext: name: if elem name specialAttrs then id else evalNext; + transform = + depth: + if depthLimit != null && depth > depthLimit then + if throwOnDepthLimit then + throw "Exceeded maximum eval-depth limit of ${toString depthLimit} while trying to evaluate with `generators.withRecursion'!" + else + const "" + else + id; + mapAny = + depth: v: + let + evalNext = x: mapAny (depth + 1) (transform (depth + 1) x); + in + if isAttrs v then + mapAttrs (stepIntoAttr evalNext) v + else if isList v then + map evalNext v + else + transform (depth + 1) v; + in + mapAny 0; + + /* + Pretty print a value, akin to `builtins.trace`. + Should probably be a builtin as well. + The pretty-printed string should be suitable for rendering default values + in the NixOS manual. In particular, it should be as close to a valid Nix expression + as possible. + */ + toPretty = + { + /* + If this option is true, attrsets like { __pretty = fn; val = …; } + will use fn to convert val to a pretty printed representation. + (This means fn is type Val -> String.) + */ + allowPrettyValues ? false, + # If this option is true, the output is indented with newlines for attribute sets and lists + multiline ? true, + # Initial indentation level + indent ? "", + }: + let + go = + indent: v: + let + introSpace = if multiline then "\n${indent} " else " "; + outroSpace = if multiline then "\n${indent}" else " "; + in + if isInt v then + toString v + # toString loses precision on floats, so we use toJSON instead. This isn't perfect + # as the resulting string may not parse back as a float (e.g. 42, 1e-06), but for + # pretty-printing purposes this is acceptable. + else if isFloat v then + builtins.toJSON v + else if isString v then + let + lines = filter (v: !isList v) (split "\n" v); + escapeSingleline = escape [ + "\\" + "\"" + "\${" + ]; + escapeMultiline = + replaceStrings + [ + "\${" + "''" + ] + [ + "''\${" + "'''" + ]; + singlelineResult = "\"" + concatStringsSep "\\n" (map escapeSingleline lines) + "\""; + multilineResult = + let + escapedLines = map escapeMultiline lines; + # The last line gets a special treatment: if it's empty, '' is on its own line at the "outer" + # indentation level. Otherwise, '' is appended to the last line. + lastLine = last escapedLines; + in + "''" + + introSpace + + concatStringsSep introSpace (init escapedLines) + + (if lastLine == "" then outroSpace else introSpace + lastLine) + + "''"; + in + if multiline && length lines > 1 then multilineResult else singlelineResult + else if true == v then + "true" + else if false == v then + "false" + else if null == v then + "null" + else if isPath v then + toString v + else if isList v then + if v == [ ] then + "[ ]" + else + "[" + introSpace + concatMapStringsSep introSpace (go (indent + " ")) v + outroSpace + "]" + else if isFunction v then + let + fna = functionArgs v; + showFnas = concatStringsSep ", " ( + mapAttrsToList (name: hasDefVal: if hasDefVal then name + "?" else name) fna + ); + in + if fna == { } then "" else "" + else if isAttrs v then + # apply pretty values if allowed + if allowPrettyValues && v ? __pretty && v ? val then + v.__pretty v.val + else if v == { } then + "{ }" + else if v ? type && v.type == "derivation" then + "" + else + "{" + + introSpace + + concatStringsSep introSpace ( + mapAttrsToList ( + name: value: "${escapeNixIdentifier name} = ${ - addErrorContext "while evaluating an attribute `${name}`" - (go (indent + " ") value) - };") v) - + outroSpace + "}" - else abort "generators.toPretty: should never happen (v = ${v})"; - in go indent; + addErrorContext "while evaluating an attribute `${name}`" (go (indent + " ") value) + };" + ) v + ) + + outroSpace + + "}" + else + abort "generators.toPretty: should never happen (v = ${v})"; + in + go indent; # PLIST handling - toPlist = {}: v: let - expr = ind: x: - if x == null then "" else - if isBool x then bool ind x else - if isInt x then int ind x else - if isString x then str ind x else - if isList x then list ind x else - if isAttrs x then attrs ind x else - if isPath x then str ind (toString x) else - if isFloat x then float ind x else - abort "generators.toPlist: should never happen (v = ${v})"; + toPlist = + { }: + v: + let + expr = + ind: x: + if x == null then + "" + else if isBool x then + bool ind x + else if isInt x then + int ind x + else if isString x then + str ind x + else if isList x then + list ind x + else if isAttrs x then + attrs ind x + else if isPath x then + str ind (toString x) + else if isFloat x then + float ind x + else + abort "generators.toPlist: should never happen (v = ${v})"; - literal = ind: x: ind + x; + literal = ind: x: ind + x; - bool = ind: x: literal ind (if x then "" else ""); - int = ind: x: literal ind "${toString x}"; - str = ind: x: literal ind "${x}"; - key = ind: x: literal ind "${x}"; - float = ind: x: literal ind "${toString x}"; + bool = ind: x: literal ind (if x then "" else ""); + int = ind: x: literal ind "${toString x}"; + str = ind: x: literal ind "${x}"; + key = ind: x: literal ind "${x}"; + float = ind: x: literal ind "${toString x}"; - indent = ind: expr "\t${ind}"; + indent = ind: expr "\t${ind}"; - item = ind: concatMapStringsSep "\n" (indent ind); + item = ind: concatMapStringsSep "\n" (indent ind); - list = ind: x: concatStringsSep "\n" [ - (literal ind "") - (item ind x) - (literal ind "") - ]; + list = + ind: x: + concatStringsSep "\n" [ + (literal ind "") + (item ind x) + (literal ind "") + ]; - attrs = ind: x: concatStringsSep "\n" [ - (literal ind "") - (attr ind x) - (literal ind "") - ]; + attrs = + ind: x: + concatStringsSep "\n" [ + (literal ind "") + (attr ind x) + (literal ind "") + ]; - attr = let attrFilter = name: value: name != "_module" && value != null; - in ind: x: concatStringsSep "\n" (flatten (mapAttrsToList - (name: value: optionals (attrFilter name value) [ - (key "\t${ind}" name) - (expr "\t${ind}" value) - ]) x)); + attr = + let + attrFilter = name: value: name != "_module" && value != null; + in + ind: x: + concatStringsSep "\n" ( + flatten ( + mapAttrsToList ( + name: value: + optionals (attrFilter name value) [ + (key "\t${ind}" name) + (expr "\t${ind}" value) + ] + ) x + ) + ); - in '' - - -${expr "" v} -''; + in + '' + + + + ${expr "" v} + ''; - /* Translate a simple Nix expression to Dhall notation. - * Note that integers are translated to Integer and never - * the Natural type. + /* + Translate a simple Nix expression to Dhall notation. + Note that integers are translated to Integer and never + the Natural type. */ - toDhall = { }@args: v: - let concatItems = concatStringsSep ", "; - in if isAttrs v then - "{ ${ - concatItems (mapAttrsToList - (key: value: "${key} = ${toDhall args value}") v) - } }" + toDhall = + { }@args: + v: + let + concatItems = concatStringsSep ", "; + in + if isAttrs v then + "{ ${concatItems (mapAttrsToList (key: value: "${key} = ${toDhall args value}") v)} }" else if isList v then "[ ${concatItems (map (toDhall args) v)} ]" else if isInt v then @@ -472,47 +613,49 @@ ${expr "" v} toJSON v; /* - Translate a simple Nix expression to Lua representation with occasional - Lua-inlines that can be constructed by mkLuaInline function. + Translate a simple Nix expression to Lua representation with occasional + Lua-inlines that can be constructed by mkLuaInline function. - Configuration: - * multiline - by default is true which results in indented block-like view. - * indent - initial indent. - * asBindings - by default generate single value, but with this use attrset to set global vars. + Configuration: + * multiline - by default is true which results in indented block-like view. + * indent - initial indent. + * asBindings - by default generate single value, but with this use attrset to set global vars. - Attention: - Regardless of multiline parameter there is no trailing newline. + Attention: + Regardless of multiline parameter there is no trailing newline. - Example: - generators.toLua {} - { - cmd = [ "typescript-language-server" "--stdio" ]; - settings.workspace.library = mkLuaInline ''vim.api.nvim_get_runtime_file("", true)''; - } - -> - { - ["cmd"] = { - "typescript-language-server", - "--stdio" - }, - ["settings"] = { - ["workspace"] = { - ["library"] = (vim.api.nvim_get_runtime_file("", true)) - } + Example: + generators.toLua {} + { + cmd = [ "typescript-language-server" "--stdio" ]; + settings.workspace.library = mkLuaInline ''vim.api.nvim_get_runtime_file("", true)''; } - } + -> + { + ["cmd"] = { + "typescript-language-server", + "--stdio" + }, + ["settings"] = { + ["workspace"] = { + ["library"] = (vim.api.nvim_get_runtime_file("", true)) + } + } + } - Type: - toLua :: AttrSet -> Any -> String + Type: + toLua :: AttrSet -> Any -> String */ - toLua = { - /* If this option is true, the output is indented with newlines for attribute sets and lists */ - multiline ? true, - /* Initial indentation level */ - indent ? "", - /* Interpret as variable bindings */ - asBindings ? false, - }@args: v: + toLua = + { + # If this option is true, the output is indented with newlines for attribute sets and lists + multiline ? true, + # Initial indentation level + indent ? "", + # Interpret as variable bindings + asBindings ? false, + }@args: + v: let innerIndent = "${indent} "; introSpace = if multiline then "\n${innerIndent}" else " "; @@ -522,13 +665,16 @@ ${expr "" v} asBindings = false; }; concatItems = concatStringsSep ",${introSpace}"; - isLuaInline = { _type ? null, ... }: _type == "lua-inline"; + isLuaInline = + { + _type ? null, + ... + }: + _type == "lua-inline"; generatedBindings = - assert assertMsg (badVarNames == []) "Bad Lua var names: ${toPretty {} badVarNames}"; - concatStrings ( - mapAttrsToList (key: value: "${indent}${key} = ${toLua innerArgs value}\n") v - ); + assert assertMsg (badVarNames == [ ]) "Bad Lua var names: ${toPretty { } badVarNames}"; + concatStrings (mapAttrsToList (key: value: "${indent}${key} = ${toLua innerArgs value}\n") v); # https://en.wikibooks.org/wiki/Lua_Programming/variable#Variable_names matchVarName = match "[[:alpha:]_][[:alnum:]_]*(\\.[[:alpha:]_][[:alnum:]_]*)*"; @@ -541,8 +687,12 @@ ${expr "" v} else if isInt v || isFloat v || isString v || isBool v then toJSON v else if isList v then - (if v == [ ] then "{}" else - "{${introSpace}${concatItems (map (value: "${toLua innerArgs value}") v)}${outroSpace}}") + ( + if v == [ ] then + "{}" + else + "{${introSpace}${concatItems (map (value: "${toLua innerArgs value}") v)}${outroSpace}}" + ) else if isAttrs v then ( if isLuaInline v then @@ -552,20 +702,23 @@ ${expr "" v} else if isDerivation v then ''"${toString v}"'' else - "{${introSpace}${concatItems ( - mapAttrsToList (key: value: "[${toJSON key}] = ${toLua innerArgs value}") v - )}${outroSpace}}" + "{${introSpace}${ + concatItems (mapAttrsToList (key: value: "[${toJSON key}] = ${toLua innerArgs value}") v) + }${outroSpace}}" ) else abort "generators.toLua: type ${typeOf v} is unsupported"; /* - Mark string as Lua expression to be inlined when processed by toLua. + Mark string as Lua expression to be inlined when processed by toLua. - Type: - mkLuaInline :: String -> AttrSet + Type: + mkLuaInline :: String -> AttrSet */ - mkLuaInline = expr: { _type = "lua-inline"; inherit expr; }; + mkLuaInline = expr: { + _type = "lua-inline"; + inherit expr; + }; in @@ -588,15 +741,17 @@ in withRecursion ; - /* Generates JSON from an arbitrary (non-function) value. + /* + Generates JSON from an arbitrary (non-function) value. * For more information see the documentation of the builtin. - */ - toJSON = {}: toJSON; + */ + toJSON = { }: toJSON; - /* YAML has been a strict superset of JSON since 1.2, so we + /* + YAML has been a strict superset of JSON since 1.2, so we * use toJSON. Before it only had a few differences referring * to implicit typing rules, so it should work with older * parsers as well. - */ - toYAML = {}: toJSON; + */ + toYAML = { }: toJSON; } diff --git a/lib/gvariant.nix b/lib/gvariant.nix index 7082132..235af0a 100644 --- a/lib/gvariant.nix +++ b/lib/gvariant.nix @@ -14,7 +14,12 @@ let inherit (lib) - concatMapStringsSep concatStrings escape head replaceStrings; + concatMapStringsSep + concatStrings + escape + head + replaceStrings + ; mkPrimitive = t: v: { _type = "gvariant"; @@ -41,10 +46,11 @@ let variant = "v"; }; - /* Check if a value is a GVariant value + /* + Check if a value is a GVariant value - Type: - isGVariant :: Any -> Bool + Type: + isGVariant :: Any -> Bool */ isGVariant = v: v._type or "" == "gvariant"; @@ -53,13 +59,15 @@ rec { inherit type isGVariant; - /* Returns the GVariant value that most closely matches the given Nix value. - If no GVariant value can be found unambiguously then error is thrown. + /* + Returns the GVariant value that most closely matches the given Nix value. + If no GVariant value can be found unambiguously then error is thrown. - Type: - mkValue :: Any -> gvariant + Type: + mkValue :: Any -> gvariant */ - mkValue = v: + mkValue = + v: if builtins.isBool v then mkBoolean v else if builtins.isFloat v then @@ -73,71 +81,75 @@ rec { else throw "The GVariant type of ${v} can't be inferred."; - /* Returns the GVariant array from the given type of the elements and a Nix list. + /* + Returns the GVariant array from the given type of the elements and a Nix list. - Type: - mkArray :: [Any] -> gvariant + Type: + mkArray :: [Any] -> gvariant - Example: - # Creating a string array - lib.gvariant.mkArray [ "a" "b" "c" ] + Example: + # Creating a string array + lib.gvariant.mkArray [ "a" "b" "c" ] */ - mkArray = elems: + mkArray = + elems: let vs = map mkValue (lib.throwIf (elems == [ ]) "Please create empty array with mkEmptyArray." elems); - elemType = lib.throwIfNot (lib.all (t: (head vs).type == t) (map (v: v.type) vs)) - "Elements in a list should have same type." - (head vs).type; + elemType = lib.throwIfNot (lib.all (t: (head vs).type == t) ( + map (v: v.type) vs + )) "Elements in a list should have same type." (head vs).type; in - mkPrimitive (type.arrayOf elemType) vs // { - __toString = self: - "@${self.type} [${concatMapStringsSep "," toString self.value}]"; + mkPrimitive (type.arrayOf elemType) vs + // { + __toString = self: "@${self.type} [${concatMapStringsSep "," toString self.value}]"; }; - /* Returns the GVariant array from the given empty Nix list. + /* + Returns the GVariant array from the given empty Nix list. - Type: - mkEmptyArray :: gvariant.type -> gvariant + Type: + mkEmptyArray :: gvariant.type -> gvariant - Example: - # Creating an empty string array - lib.gvariant.mkEmptyArray (lib.gvariant.type.string) + Example: + # Creating an empty string array + lib.gvariant.mkEmptyArray (lib.gvariant.type.string) */ - mkEmptyArray = elemType: mkPrimitive (type.arrayOf elemType) [ ] // { - __toString = self: "@${self.type} []"; - }; + mkEmptyArray = + elemType: mkPrimitive (type.arrayOf elemType) [ ] // { __toString = self: "@${self.type} []"; }; + /* + Returns the GVariant variant from the given Nix value. Variants are containers + of different GVariant type. - /* Returns the GVariant variant from the given Nix value. Variants are containers - of different GVariant type. + Type: + mkVariant :: Any -> gvariant - Type: - mkVariant :: Any -> gvariant - - Example: - lib.gvariant.mkArray [ - (lib.gvariant.mkVariant "a string") - (lib.gvariant.mkVariant (lib.gvariant.mkInt32 1)) - ] + Example: + lib.gvariant.mkArray [ + (lib.gvariant.mkVariant "a string") + (lib.gvariant.mkVariant (lib.gvariant.mkInt32 1)) + ] */ - mkVariant = elem: - let gvarElem = mkValue elem; - in mkPrimitive type.variant gvarElem // { - __toString = self: "<${toString self.value}>"; - }; + mkVariant = + elem: + let + gvarElem = mkValue elem; + in + mkPrimitive type.variant gvarElem // { __toString = self: "<${toString self.value}>"; }; - /* Returns the GVariant dictionary entry from the given key and value. + /* + Returns the GVariant dictionary entry from the given key and value. - Type: - mkDictionaryEntry :: String -> Any -> gvariant + Type: + mkDictionaryEntry :: String -> Any -> gvariant - Example: - # A dictionary describing an Epiphany’s search provider - [ - (lib.gvariant.mkDictionaryEntry "url" (lib.gvariant.mkVariant "https://duckduckgo.com/?q=%s&t=epiphany")) - (lib.gvariant.mkDictionaryEntry "bang" (lib.gvariant.mkVariant "!d")) - (lib.gvariant.mkDictionaryEntry "name" (lib.gvariant.mkVariant "DuckDuckGo")) - ] + Example: + # A dictionary describing an Epiphany’s search provider + [ + (lib.gvariant.mkDictionaryEntry "url" (lib.gvariant.mkVariant "https://duckduckgo.com/?q=%s&t=epiphany")) + (lib.gvariant.mkDictionaryEntry "bang" (lib.gvariant.mkVariant "!d")) + (lib.gvariant.mkDictionaryEntry "name" (lib.gvariant.mkVariant "DuckDuckGo")) + ] */ mkDictionaryEntry = # The key of the entry @@ -149,143 +161,162 @@ rec { value' = mkValue value; dictionaryType = type.dictionaryEntryOf name'.type value'.type; in - mkPrimitive dictionaryType { inherit name value; } // { + mkPrimitive dictionaryType { inherit name value; } + // { __toString = self: "@${self.type} {${name'},${value'}}"; }; - /* Returns the GVariant maybe from the given element type. + /* + Returns the GVariant maybe from the given element type. - Type: - mkMaybe :: gvariant.type -> Any -> gvariant + Type: + mkMaybe :: gvariant.type -> Any -> gvariant */ - mkMaybe = elemType: elem: - mkPrimitive (type.maybeOf elemType) elem // { - __toString = self: - if self.value == null then - "@${self.type} nothing" - else - "just ${toString self.value}"; + mkMaybe = + elemType: elem: + mkPrimitive (type.maybeOf elemType) elem + // { + __toString = + self: if self.value == null then "@${self.type} nothing" else "just ${toString self.value}"; }; - /* Returns the GVariant nothing from the given element type. + /* + Returns the GVariant nothing from the given element type. - Type: - mkNothing :: gvariant.type -> gvariant + Type: + mkNothing :: gvariant.type -> gvariant */ mkNothing = elemType: mkMaybe elemType null; - /* Returns the GVariant just from the given Nix value. + /* + Returns the GVariant just from the given Nix value. - Type: - mkJust :: Any -> gvariant + Type: + mkJust :: Any -> gvariant */ - mkJust = elem: let gvarElem = mkValue elem; in mkMaybe gvarElem.type gvarElem; + mkJust = + elem: + let + gvarElem = mkValue elem; + in + mkMaybe gvarElem.type gvarElem; - /* Returns the GVariant tuple from the given Nix list. + /* + Returns the GVariant tuple from the given Nix list. - Type: - mkTuple :: [Any] -> gvariant + Type: + mkTuple :: [Any] -> gvariant */ - mkTuple = elems: + mkTuple = + elems: let gvarElems = map mkValue elems; tupleType = type.tupleOf (map (e: e.type) gvarElems); in - mkPrimitive tupleType gvarElems // { - __toString = self: - "@${self.type} (${concatMapStringsSep "," toString self.value})"; + mkPrimitive tupleType gvarElems + // { + __toString = self: "@${self.type} (${concatMapStringsSep "," toString self.value})"; }; - /* Returns the GVariant boolean from the given Nix bool value. + /* + Returns the GVariant boolean from the given Nix bool value. - Type: - mkBoolean :: Bool -> gvariant + Type: + mkBoolean :: Bool -> gvariant */ - mkBoolean = v: - mkPrimitive type.boolean v // { - __toString = self: if self.value then "true" else "false"; - }; + mkBoolean = + v: mkPrimitive type.boolean v // { __toString = self: if self.value then "true" else "false"; }; - /* Returns the GVariant string from the given Nix string value. + /* + Returns the GVariant string from the given Nix string value. - Type: - mkString :: String -> gvariant + Type: + mkString :: String -> gvariant */ - mkString = v: - let sanitize = s: replaceStrings [ "\n" ] [ "\\n" ] (escape [ "'" "\\" ] s); - in mkPrimitive type.string v // { - __toString = self: "'${sanitize self.value}'"; - }; + mkString = + v: + let + sanitize = + s: + replaceStrings [ "\n" ] [ "\\n" ] ( + escape [ + "'" + "\\" + ] s + ); + in + mkPrimitive type.string v // { __toString = self: "'${sanitize self.value}'"; }; - /* Returns the GVariant object path from the given Nix string value. + /* + Returns the GVariant object path from the given Nix string value. - Type: - mkObjectpath :: String -> gvariant + Type: + mkObjectpath :: String -> gvariant */ - mkObjectpath = v: - mkPrimitive type.string v // { - __toString = self: "objectpath '${escape [ "'" ] self.value}'"; - }; + mkObjectpath = + v: mkPrimitive type.string v // { __toString = self: "objectpath '${escape [ "'" ] self.value}'"; }; - /* Returns the GVariant uchar from the given Nix int value. + /* + Returns the GVariant uchar from the given Nix int value. - Type: - mkUchar :: Int -> gvariant + Type: + mkUchar :: Int -> gvariant */ mkUchar = mkPrimitive type.uchar; - /* Returns the GVariant int16 from the given Nix int value. + /* + Returns the GVariant int16 from the given Nix int value. - Type: - mkInt16 :: Int -> gvariant + Type: + mkInt16 :: Int -> gvariant */ mkInt16 = mkPrimitive type.int16; - /* Returns the GVariant uint16 from the given Nix int value. + /* + Returns the GVariant uint16 from the given Nix int value. - Type: - mkUint16 :: Int -> gvariant + Type: + mkUint16 :: Int -> gvariant */ mkUint16 = mkPrimitive type.uint16; - /* Returns the GVariant int32 from the given Nix int value. + /* + Returns the GVariant int32 from the given Nix int value. - Type: - mkInt32 :: Int -> gvariant + Type: + mkInt32 :: Int -> gvariant */ - mkInt32 = v: - mkPrimitive type.int32 v // { - __toString = self: toString self.value; - }; + mkInt32 = v: mkPrimitive type.int32 v // { __toString = self: toString self.value; }; - /* Returns the GVariant uint32 from the given Nix int value. + /* + Returns the GVariant uint32 from the given Nix int value. - Type: - mkUint32 :: Int -> gvariant + Type: + mkUint32 :: Int -> gvariant */ mkUint32 = mkPrimitive type.uint32; - /* Returns the GVariant int64 from the given Nix int value. + /* + Returns the GVariant int64 from the given Nix int value. - Type: - mkInt64 :: Int -> gvariant + Type: + mkInt64 :: Int -> gvariant */ mkInt64 = mkPrimitive type.int64; - /* Returns the GVariant uint64 from the given Nix int value. + /* + Returns the GVariant uint64 from the given Nix int value. - Type: - mkUint64 :: Int -> gvariant + Type: + mkUint64 :: Int -> gvariant */ mkUint64 = mkPrimitive type.uint64; - /* Returns the GVariant double from the given Nix float value. + /* + Returns the GVariant double from the given Nix float value. - Type: - mkDouble :: Float -> gvariant + Type: + mkDouble :: Float -> gvariant */ - mkDouble = v: - mkPrimitive type.double v // { - __toString = self: toString self.value; - }; + mkDouble = v: mkPrimitive type.double v // { __toString = self: toString self.value; }; } diff --git a/lib/kernel.nix b/lib/kernel.nix index d03d010..66a00fd 100644 --- a/lib/kernel.nix +++ b/lib/kernel.nix @@ -5,22 +5,34 @@ let in { - # Keeping these around in case we decide to change this horrible implementation :) - option = x: - x // { optional = true; }; - - yes = { tristate = "y"; optional = false; }; - no = { tristate = "n"; optional = false; }; - module = { tristate = "m"; optional = false; }; - unset = { tristate = null; optional = false; }; - freeform = x: { freeform = x; optional = false; }; + option = x: x // { optional = true; }; + yes = { + tristate = "y"; + optional = false; + }; + no = { + tristate = "n"; + optional = false; + }; + module = { + tristate = "m"; + optional = false; + }; + unset = { + tristate = null; + optional = false; + }; + freeform = x: { + freeform = x; + optional = false; + }; # Common patterns/legacy used in common-config/hardened/config.nix whenHelpers = version: { whenAtLeast = ver: mkIf (versionAtLeast version ver); - whenOlder = ver: mkIf (versionOlder version ver); + whenOlder = ver: mkIf (versionOlder version ver); # range is (inclusive, exclusive) whenBetween = verLow: verHigh: mkIf (versionAtLeast version verLow && versionOlder version verHigh); }; diff --git a/lib/licenses.nix b/lib/licenses.nix index 035907e..9d41b02 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -1,1312 +1,1327 @@ { lib }: -lib.mapAttrs (lname: lset: let - defaultLicense = { - shortName = lname; - free = true; # Most of our licenses are Free, explicitly declare unfree additions as such! - deprecated = false; - }; - - mkLicense = licenseDeclaration: let - applyDefaults = license: defaultLicense // license; - applySpdx = license: - if license ? spdxId - then license // { url = "https://spdx.org/licenses/${license.spdxId}.html"; } - else license; - applyRedistributable = license: { redistributable = license.free; } // license; - in lib.pipe licenseDeclaration [ - applyDefaults - applySpdx - applyRedistributable - ]; -in mkLicense lset) ({ - /* License identifiers from spdx.org where possible. - * If you cannot find your license here, then look for a similar license or - * add it to this list. The URL mentioned above is a good source for inspiration. - */ - - abstyles = { - spdxId = "Abstyles"; - fullName = "Abstyles License"; - }; - - acsl14 = { - fullName = "Anti-Capitalist Software License v1.4"; - url = "https://anticapitalist.software/"; - /* restrictions on corporations apply for both use and redistribution */ - free = false; - redistributable = false; - }; - - activision = { - # https://doomwiki.org/wiki/Raven_source_code_licensing - fullName = "Activision EULA"; - url = "https://www.doomworld.com/eternity/activision_eula.txt"; - free = false; - }; - - afl20 = { - spdxId = "AFL-2.0"; - fullName = "Academic Free License v2.0"; - }; - - afl21 = { - spdxId = "AFL-2.1"; - fullName = "Academic Free License v2.1"; - }; - - afl3 = { - spdxId = "AFL-3.0"; - fullName = "Academic Free License v3.0"; - }; - - agpl3Only = { - spdxId = "AGPL-3.0-only"; - fullName = "GNU Affero General Public License v3.0 only"; - }; - - agpl3Plus = { - spdxId = "AGPL-3.0-or-later"; - fullName = "GNU Affero General Public License v3.0 or later"; - }; - - aladdin = { - spdxId = "Aladdin"; - fullName = "Aladdin Free Public License"; - free = false; - }; - - amazonsl = { - fullName = "Amazon Software License"; - url = "https://aws.amazon.com/asl/"; - free = false; - }; - - amd = { - fullName = "AMD License Agreement"; - url = "https://developer.amd.com/amd-license-agreement/"; - free = false; - }; - - aom = { - fullName = "Alliance for Open Media Patent License 1.0"; - url = "https://aomedia.org/license/patent-license/"; - }; - - apple-psl10 = { - spdxId = "APSL-1.0"; - fullName = "Apple Public Source License 1.0"; - }; - - apple-psl20 = { - spdxId = "APSL-2.0"; - fullName = "Apple Public Source License 2.0"; - }; - - arphicpl = { - spdxId = "Arphic-1999"; - fullName = "Arphic Public License"; - url = "https://www.freedesktop.org/wiki/Arphic_Public_License/"; - }; - - artistic1 = { - spdxId = "Artistic-1.0"; - fullName = "Artistic License 1.0"; - }; - - artistic1-cl8 = { - spdxId = "Artistic-1.0-cl8"; - fullName = "Artistic License 1.0 w/clause 8"; - }; - - artistic2 = { - spdxId = "Artistic-2.0"; - fullName = "Artistic License 2.0"; - }; - - asl20 = { - spdxId = "Apache-2.0"; - fullName = "Apache License 2.0"; - }; - - asl20-llvm = { - spdxId = "Apache-2.0 WITH LLVM-exception"; - fullName = "Apache License 2.0 with LLVM Exceptions"; - }; - - bitstreamVera = { - spdxId = "Bitstream-Vera"; - fullName = "Bitstream Vera Font License"; - }; - - bitTorrent10 = { - spdxId = "BitTorrent-1.0"; - fullName = " BitTorrent Open Source License v1.0"; - }; - - bitTorrent11 = { - spdxId = "BitTorrent-1.1"; - fullName = " BitTorrent Open Source License v1.1"; - }; - - bola11 = { - url = "https://blitiri.com.ar/p/bola/"; - fullName = "Buena Onda License Agreement 1.1"; - }; - - boost = { - spdxId = "BSL-1.0"; - fullName = "Boost Software License 1.0"; - }; - - beerware = { - spdxId = "Beerware"; - fullName = "Beerware License"; - }; - - blueOak100 = { - spdxId = "BlueOak-1.0.0"; - fullName = "Blue Oak Model License 1.0.0"; - }; - - bsd0 = { - spdxId = "0BSD"; - fullName = "BSD Zero Clause License"; - }; - - bsd1 = { - spdxId = "BSD-1-Clause"; - fullName = "BSD 1-Clause License"; - }; - - bsd2 = { - spdxId = "BSD-2-Clause"; - fullName = ''BSD 2-clause "Simplified" License''; - }; - - bsd2Patent = { - spdxId = "BSD-2-Clause-Patent"; - fullName = "BSD-2-Clause Plus Patent License"; - }; - - bsd2WithViews = { - spdxId = "BSD-2-Clause-Views"; - fullName = "BSD 2-Clause with views sentence"; - }; - - bsd3 = { - spdxId = "BSD-3-Clause"; - fullName = ''BSD 3-clause "New" or "Revised" License''; - }; - - bsd3Clear = { - spdxId = "BSD-3-Clause-Clear"; - fullName = "BSD 3-Clause Clear License"; - }; - - bsdOriginal = { - spdxId = "BSD-4-Clause"; - fullName = ''BSD 4-clause "Original" or "Old" License''; - }; - - bsdOriginalShortened = { - spdxId = "BSD-4-Clause-Shortened"; - fullName = "BSD 4 Clause Shortened"; - }; - - bsdOriginalUC = { - spdxId = "BSD-4-Clause-UC"; - fullName = "BSD 4-Clause University of California-Specific"; - }; - - bsdProtection = { - spdxId = "BSD-Protection"; - fullName = "BSD Protection License"; - }; - - bsl11 = { - fullName = "Business Source License 1.1"; - url = "https://mariadb.com/bsl11"; - free = false; - redistributable = true; - }; - - caossl = { - fullName = "Computer Associates Open Source Licence Version 1.0"; - url = "http://jxplorer.org/licence.html"; - }; - - cal10 = { - spdxId = "CAL-1.0"; - fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)"; - url = "https://opensource.org/licenses/CAL-1.0"; - }; - - caldera = { - spdxId = "Caldera"; - fullName = "Caldera License"; - url = "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf"; - }; - - capec = { - fullName = "Common Attack Pattern Enumeration and Classification"; - url = "https://capec.mitre.org/about/termsofuse.html"; - }; - - clArtistic = { - spdxId = "ClArtistic"; - fullName = "Clarified Artistic License"; - }; - - cc0 = { - spdxId = "CC0-1.0"; - fullName = "Creative Commons Zero v1.0 Universal"; - }; - - cc-by-nc-nd-30 = { - spdxId = "CC-BY-NC-ND-3.0"; - fullName = "Creative Commons Attribution Non Commercial No Derivative Works 3.0 Unported"; - free = false; - }; - - cc-by-nc-nd-40 = { - spdxId = "CC-BY-NC-ND-4.0"; - fullName = "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International"; - free = false; - }; - - cc-by-nc-sa-20 = { - spdxId = "CC-BY-NC-SA-2.0"; - fullName = "Creative Commons Attribution Non Commercial Share Alike 2.0"; - free = false; - }; - - cc-by-nc-sa-25 = { - spdxId = "CC-BY-NC-SA-2.5"; - fullName = "Creative Commons Attribution Non Commercial Share Alike 2.5"; - free = false; - }; - - cc-by-nc-sa-30 = { - spdxId = "CC-BY-NC-SA-3.0"; - fullName = "Creative Commons Attribution Non Commercial Share Alike 3.0"; - free = false; - }; - - cc-by-nc-sa-40 = { - spdxId = "CC-BY-NC-SA-4.0"; - fullName = "Creative Commons Attribution Non Commercial Share Alike 4.0"; - free = false; - }; - - cc-by-nc-30 = { - spdxId = "CC-BY-NC-3.0"; - fullName = "Creative Commons Attribution Non Commercial 3.0 Unported"; - free = false; - }; - - cc-by-nc-40 = { - spdxId = "CC-BY-NC-4.0"; - fullName = "Creative Commons Attribution Non Commercial 4.0 International"; - free = false; - }; - - cc-by-nd-30 = { - spdxId = "CC-BY-ND-3.0"; - fullName = "Creative Commons Attribution-No Derivative Works v3.00"; - free = false; - }; - - cc-by-sa-10 = { - spdxId = "CC-BY-SA-1.0"; - fullName = "Creative Commons Attribution Share Alike 1.0"; - }; - - cc-by-sa-20 = { - spdxId = "CC-BY-SA-2.0"; - fullName = "Creative Commons Attribution Share Alike 2.0"; - }; - - cc-by-sa-25 = { - spdxId = "CC-BY-SA-2.5"; - fullName = "Creative Commons Attribution Share Alike 2.5"; - }; - - cc-by-10 = { - spdxId = "CC-BY-1.0"; - fullName = "Creative Commons Attribution 1.0"; - }; - - cc-by-20 = { - spdxId = "CC-BY-2.0"; - fullName = "Creative Commons Attribution 2.0"; - }; - - cc-by-30 = { - spdxId = "CC-BY-3.0"; - fullName = "Creative Commons Attribution 3.0"; - }; - - cc-by-sa-30 = { - spdxId = "CC-BY-SA-3.0"; - fullName = "Creative Commons Attribution Share Alike 3.0"; - }; - - cc-by-40 = { - spdxId = "CC-BY-4.0"; - fullName = "Creative Commons Attribution 4.0"; - }; - - cc-by-sa-40 = { - spdxId = "CC-BY-SA-4.0"; - fullName = "Creative Commons Attribution Share Alike 4.0"; - }; - - cddl = { - spdxId = "CDDL-1.0"; - fullName = "Common Development and Distribution License 1.0"; - }; - - cecill20 = { - spdxId = "CECILL-2.0"; - fullName = "CeCILL Free Software License Agreement v2.0"; - }; - - cecill21 = { - spdxId = "CECILL-2.1"; - fullName = "CeCILL Free Software License Agreement v2.1"; - }; - - cecill-b = { - spdxId = "CECILL-B"; - fullName = "CeCILL-B Free Software License Agreement"; - }; - - cecill-c = { - spdxId = "CECILL-C"; - fullName = "CeCILL-C Free Software License Agreement"; - }; - - cpal10 = { - spdxId = "CPAL-1.0"; - fullName = "Common Public Attribution License 1.0"; - }; - - commons-clause = { - fullName = "Commons Clause License"; - url = "https://commonsclause.com/"; - free = false; - }; - - cpl10 = { - spdxId = "CPL-1.0"; - fullName = "Common Public License 1.0"; - }; - - curl = { - spdxId = "curl"; - fullName = "curl License"; - }; - - doc = { - spdxId = "DOC"; - fullName = "DOC License"; - }; - - drl10 = { - spdxId = "DRL-1.0"; - fullName = "Detection Rule License 1.0"; - }; - - dtoa = { - spdxId = "dtoa"; - fullName = "dtoa License"; - }; - - eapl = { - fullName = "EPSON AVASYS PUBLIC LICENSE"; - url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm"; - free = false; - }; - - ecl20 = { - fullName = "Educational Community License, Version 2.0"; - url = "https://opensource.org/licenses/ECL-2.0"; - shortName = "ECL 2.0"; - spdxId = "ECL-2.0"; - }; - - efl10 = { - spdxId = "EFL-1.0"; - fullName = "Eiffel Forum License v1.0"; - }; - - efl20 = { - spdxId = "EFL-2.0"; - fullName = "Eiffel Forum License v2.0"; - }; - - elastic20 = { - spdxId = "Elastic-2.0"; - fullName = "Elastic License 2.0"; - url = "https://github.com/elastic/elasticsearch/blob/main/licenses/ELASTIC-LICENSE-2.0.txt"; - free = false; - }; - - epl10 = { - spdxId = "EPL-1.0"; - fullName = "Eclipse Public License 1.0"; - }; - - epl20 = { - spdxId = "EPL-2.0"; - fullName = "Eclipse Public License 2.0"; - }; - - epson = { - fullName = "Seiko Epson Corporation Software License Agreement for Linux"; - url = "https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html"; - free = false; - }; - - eupl11 = { - spdxId = "EUPL-1.1"; - fullName = "European Union Public License 1.1"; - }; - - eupl12 = { - spdxId = "EUPL-1.2"; - fullName = "European Union Public License 1.2"; - }; - - fdl11Only = { - spdxId = "GFDL-1.1-only"; - fullName = "GNU Free Documentation License v1.1 only"; - }; - - fdl11Plus = { - spdxId = "GFDL-1.1-or-later"; - fullName = "GNU Free Documentation License v1.1 or later"; - }; - - fdl12Only = { - spdxId = "GFDL-1.2-only"; - fullName = "GNU Free Documentation License v1.2 only"; - }; - - fdl12Plus = { - spdxId = "GFDL-1.2-or-later"; - fullName = "GNU Free Documentation License v1.2 or later"; - }; - - fdl13Only = { - spdxId = "GFDL-1.3-only"; - fullName = "GNU Free Documentation License v1.3 only"; - }; - - fdl13Plus = { - spdxId = "GFDL-1.3-or-later"; - fullName = "GNU Free Documentation License v1.3 or later"; - }; - - ffsl = { - fullName = "Floodgap Free Software License"; - url = "https://www.floodgap.com/software/ffsl/license.html"; - free = false; - }; - - fraunhofer-fdk = { - fullName = "Fraunhofer FDK AAC Codec Library"; - spdxId = "FDK-AAC"; - }; - - free = { - fullName = "Unspecified free software license"; - }; - - ftl = { - spdxId = "FTL"; - fullName = "Freetype Project License"; - }; - - g4sl = { - fullName = "Geant4 Software License"; - url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html"; - }; - - geogebra = { - fullName = "GeoGebra Non-Commercial License Agreement"; - url = "https://www.geogebra.org/license"; - free = false; - }; - - generaluser = { - fullName = "GeneralUser GS License v2.0"; - url = "https://www.schristiancollins.com/generaluser.php"; # license included in sources - }; - - gfl = { - fullName = "GUST Font License"; - url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-LICENSE.txt"; - }; - - gfsl = { - fullName = "GUST Font Source License"; - url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-SOURCE-LICENSE.txt"; - }; - - gpl1Only = { - spdxId = "GPL-1.0-only"; - fullName = "GNU General Public License v1.0 only"; - }; - - gpl1Plus = { - spdxId = "GPL-1.0-or-later"; - fullName = "GNU General Public License v1.0 or later"; - }; - - gpl2Only = { - spdxId = "GPL-2.0-only"; - fullName = "GNU General Public License v2.0 only"; - }; - - gpl2Classpath = { - spdxId = "GPL-2.0-with-classpath-exception"; - fullName = "GNU General Public License v2.0 only (with Classpath exception)"; - }; - - gpl2ClasspathPlus = { - fullName = "GNU General Public License v2.0 or later (with Classpath exception)"; - url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; - }; - - gpl2Oss = { - fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)"; - url = "https://www.mysql.com/about/legal/licensing/foss-exception"; - }; - - gpl2Plus = { - spdxId = "GPL-2.0-or-later"; - fullName = "GNU General Public License v2.0 or later"; - }; - - gpl3Only = { - spdxId = "GPL-3.0-only"; - fullName = "GNU General Public License v3.0 only"; - }; - - gpl3Plus = { - spdxId = "GPL-3.0-or-later"; - fullName = "GNU General Public License v3.0 or later"; - }; - - gpl3ClasspathPlus = { - fullName = "GNU General Public License v3.0 or later (with Classpath exception)"; - url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; - }; - - giftware = { - spdxId = "Giftware"; - fullName = "Giftware License"; - }; - - hpnd = { - spdxId = "HPND"; - fullName = "Historic Permission Notice and Disclaimer"; - }; - - hpndSellVariant = { - fullName = "Historical Permission Notice and Disclaimer - sell variant"; - spdxId = "HPND-sell-variant"; - }; - - hpndUc = { - spdxId = "HPND-UC"; - fullName = "Historical Permission Notice and Disclaimer - University of California variant"; - }; - - # Intel's license, seems free - iasl = { - spdxId = "Intel-ACPI"; - fullName = "iASL"; - url = "https://old.calculate-linux.org/packages/licenses/iASL"; - }; - - ijg = { - spdxId = "IJG"; - fullName = "Independent JPEG Group License"; - }; - - imagemagick = { - fullName = "ImageMagick License"; - spdxId = "ImageMagick"; - }; - - imlib2 = { - spdxId = "Imlib2"; - fullName = "Imlib2 License"; - }; - - info-zip = { - spdxId = "Info-ZIP"; - fullName = "Info-ZIP License"; - url = "https://infozip.sourceforge.net/license.html"; - }; - - inria-compcert = { - fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; - url = "https://compcert.org/doc/LICENSE.txt"; - free = false; - }; - - inria-icesl = { - fullName = "End User License Agreement for IceSL Software"; - url = "https://icesl.loria.fr/assets/pdf/EULA_IceSL_binary.pdf"; - free = false; - }; - - inria-zelus = { - fullName = "INRIA Non-Commercial License Agreement for the Zélus compiler"; - url = "https://github.com/INRIA/zelus/raw/829f2b97cba93b0543a9ca0272269e6b8fdad356/LICENSE"; - free = false; - }; - - ipa = { - spdxId = "IPA"; - fullName = "IPA Font License"; - }; - - ipl10 = { - spdxId = "IPL-1.0"; - fullName = "IBM Public License v1.0"; - }; - - isc = { - spdxId = "ISC"; - fullName = "ISC License"; - }; - - # Proprietary binaries; free to redistribute without modification. - databricks = { - fullName = "Databricks Proprietary License"; - url = "https://pypi.org/project/databricks-connect"; - free = false; - }; - - databricks-dbx = { - fullName = "DataBricks eXtensions aka dbx License"; - url = "https://github.com/databrickslabs/dbx/blob/743b579a4ac44531f764c6e522dbe5a81a7dc0e4/LICENSE"; - free = false; - redistributable = false; - }; - - fair = { - fullName = "Fair License"; - spdxId = "Fair"; - free = true; - }; - - fairsource09 = { - fullName = "Fair Source License, version 0.9"; - url = "https://fair.io/v0.9.txt"; - free = false; - redistributable = true; - }; - - hl3 = { - fullName = "Hippocratic License v3.0"; - url = "https://firstdonoharm.dev/version/3/0/core.txt"; - free = false; - redistributable = true; - }; - - issl = { - fullName = "Intel Simplified Software License"; - url = "https://software.intel.com/en-us/license/intel-simplified-software-license"; - free = false; - }; - - knuth = { - fullName = "Knuth CTAN License"; - spdxId = "Knuth-CTAN"; - }; - - lal12 = { - spdxId = "LAL-1.2"; - fullName = "Licence Art Libre 1.2"; - }; - - lal13 = { - spdxId = "LAL-1.3"; - fullName = "Licence Art Libre 1.3"; - }; - - lens = { - fullName = "Lens Terms of Service Agreement"; - url = "https://k8slens.dev/licenses/tos"; - free = false; - }; - - lgpl2Only = { - spdxId = "LGPL-2.0-only"; - fullName = "GNU Library General Public License v2 only"; - }; - - lgpl2Plus = { - spdxId = "LGPL-2.0-or-later"; - fullName = "GNU Library General Public License v2 or later"; - }; - - lgpl21Only = { - spdxId = "LGPL-2.1-only"; - fullName = "GNU Lesser General Public License v2.1 only"; - }; - - lgpl21Plus = { - spdxId = "LGPL-2.1-or-later"; - fullName = "GNU Lesser General Public License v2.1 or later"; - }; - - lgpl3Only = { - spdxId = "LGPL-3.0-only"; - fullName = "GNU Lesser General Public License v3.0 only"; - }; - - lgpl3Plus = { - spdxId = "LGPL-3.0-or-later"; - fullName = "GNU Lesser General Public License v3.0 or later"; - }; - - lgpllr = { - spdxId = "LGPLLR"; - fullName = "Lesser General Public License For Linguistic Resources"; - }; - - libpng = { - spdxId = "Libpng"; - fullName = "libpng License"; - }; - - libpng2 = { - spdxId = "libpng-2.0"; # Used since libpng 1.6.36. - fullName = "PNG Reference Library version 2"; - }; - - libssh2 = { - fullName = "libssh2 License"; - url = "https://www.libssh2.org/license.html"; - }; - - libtiff = { - spdxId = "libtiff"; - fullName = "libtiff License"; - }; - - llgpl21 = { - fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp"; - url = "https://opensource.franz.com/preamble.html"; - }; - - lppl1 = { - spdxId = "LPPL-1.0"; - fullName = "LaTeX Project Public License v1.0"; - }; - - lppl12 = { - spdxId = "LPPL-1.2"; - fullName = "LaTeX Project Public License v1.2"; - }; - - lppl13a = { - spdxId = "LPPL-1.3a"; - fullName = "LaTeX Project Public License v1.3a"; - }; - - lppl13c = { - spdxId = "LPPL-1.3c"; - fullName = "LaTeX Project Public License v1.3c"; - }; - - lpl-102 = { - spdxId = "LPL-1.02"; - fullName = "Lucent Public License v1.02"; - }; - - miros = { - spdxId = "MirOS"; - fullName = "MirOS License"; - url = "https://opensource.org/licenses/MirOS"; - }; - - # spdx.org does not (yet) differentiate between the X11 and Expat versions - # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions - mit = { - spdxId = "MIT"; - fullName = "MIT License"; - }; - # https://spdx.org/licenses/MIT-feh.html - mit-feh = { - spdxId = "MIT-feh"; - fullName = "feh License"; - }; - - mitAdvertising = { - spdxId = "MIT-advertising"; - fullName = "Enlightenment License (e16)"; - }; - - mit0 = { - spdxId = "MIT-0"; - fullName = "MIT No Attribution"; - }; - - mpl10 = { - spdxId = "MPL-1.0"; - fullName = "Mozilla Public License 1.0"; - }; - - mpl11 = { - spdxId = "MPL-1.1"; - fullName = "Mozilla Public License 1.1"; - }; - - mpl20 = { - spdxId = "MPL-2.0"; - fullName = "Mozilla Public License 2.0"; - }; - - mplus = { - spdxId = "mplus"; - fullName = "M+ Font License"; - }; - - mspl = { - spdxId = "MS-PL"; - fullName = "Microsoft Public License"; - }; - - mulan-psl2 = { - spdxId = "MulanPSL-2.0"; - fullName = "Mulan Permissive Software License, Version 2"; - url = "https://license.coscl.org.cn/MulanPSL2"; - }; - - nasa13 = { - spdxId = "NASA-1.3"; - fullName = "NASA Open Source Agreement 1.3"; - free = false; - }; - - ncsa = { - spdxId = "NCSA"; - fullName = "University of Illinois/NCSA Open Source License"; - }; - - ncul1 = { - spdxId = "NCUL1"; - fullName = "Netdata Cloud UI License v1.0"; - free = false; - redistributable = true; # Only if used in Netdata products. - url = "https://raw.githubusercontent.com/netdata/netdata/master/web/gui/v2/LICENSE.md"; - }; - - nistSoftware = { - spdxId = "NIST-Software"; - fullName = "NIST Software License"; - }; - - nlpl = { - spdxId = "NLPL"; - fullName = "No Limit Public License"; - }; - - nposl3 = { - spdxId = "NPOSL-3.0"; - fullName = "Non-Profit Open Software License 3.0"; - }; - - nvidiaCuda = { - shortName = "CUDA EULA"; - fullName = "CUDA Toolkit End User License Agreement (EULA)"; - url = "https://docs.nvidia.com/cuda/eula/index.html#cuda-toolkit-supplement-license-agreement"; - free = false; - }; - - nvidiaCudaRedist = { - shortName = "CUDA EULA"; - fullName = "CUDA Toolkit End User License Agreement (EULA)"; - url = "https://docs.nvidia.com/cuda/eula/index.html#cuda-toolkit-supplement-license-agreement"; - free = false; - redistributable = true; - }; - - obsidian = { - fullName = "Obsidian End User Agreement"; - url = "https://obsidian.md/eula"; - free = false; - }; - - ocamlLgplLinkingException = { - spdxId = "OCaml-LGPL-linking-exception"; - fullName = "OCaml LGPL Linking Exception"; - }; - - ocamlpro_nc = { - fullName = "OCamlPro Non Commercial license version 1"; - url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-2.2.0/OCamlPro-Non-Commercial-License.pdf"; - free = false; - }; - - odbl = { - spdxId = "ODbL-1.0"; - fullName = "Open Data Commons Open Database License v1.0"; - }; - - ofl = { - spdxId = "OFL-1.1"; - fullName = "SIL Open Font License 1.1"; - }; - - oml = { - spdxId = "OML"; - fullName = "Open Market License"; - }; - - openldap = { - spdxId = "OLDAP-2.8"; - fullName = "Open LDAP Public License v2.8"; - }; - - openssl = { - spdxId = "OpenSSL"; - fullName = "OpenSSL License"; - }; - - opubl = { - spdxId = "OPUBL-1.0"; - fullName = "Open Publication License v1.0"; - }; - - osl2 = { - spdxId = "OSL-2.0"; - fullName = "Open Software License 2.0"; - }; - - osl21 = { - spdxId = "OSL-2.1"; - fullName = "Open Software License 2.1"; - }; - - osl3 = { - spdxId = "OSL-3.0"; - fullName = "Open Software License 3.0"; - }; - - parity70 = { - spdxId = "Parity-7.0.0"; - fullName = "Parity Public License 7.0.0"; - url = "https://paritylicense.com/versions/7.0.0.html"; - }; - - php301 = { - spdxId = "PHP-3.01"; - fullName = "PHP License v3.01"; - }; - - postgresql = { - spdxId = "PostgreSQL"; - fullName = "PostgreSQL License"; - }; - - postman = { - fullName = "Postman EULA"; - url = "https://www.getpostman.com/licenses/postman_base_app"; - free = false; - }; - - psfl = { - spdxId = "Python-2.0"; - fullName = "Python Software Foundation License version 2"; - url = "https://docs.python.org/license.html"; - }; - - publicDomain = { - fullName = "Public Domain"; - }; - - purdueBsd = { - fullName = " Purdue BSD-Style License"; # also know as lsof license - url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd"; - }; - - prosperity30 = { - fullName = "Prosperity-3.0.0"; - free = false; - url = "https://prosperitylicense.com/versions/3.0.0.html"; - }; - - qhull = { - spdxId = "Qhull"; - fullName = "Qhull License"; - }; - - qpl = { - spdxId = "QPL-1.0"; - fullName = "Q Public License 1.0"; - }; - - qwt = { - fullName = "Qwt License, Version 1.0"; - url = "https://qwt.sourceforge.io/qwtlicense.html"; - }; - - ruby = { - spdxId = "Ruby"; - fullName = "Ruby License"; - }; - - sendmail = { - spdxId = "Sendmail"; - fullName = "Sendmail License"; - }; - - sgi-b-20 = { - spdxId = "SGI-B-2.0"; - fullName = "SGI Free Software License B v2.0"; - }; - - # Gentoo seems to treat it as a license: - # https://gitweb.gentoo.org/repo/gentoo.git/tree/licenses/SGMLUG?id=7d999af4a47bf55e53e54713d98d145f935935c1 - sgmlug = { - fullName = "SGML UG SGML Parser Materials license"; - }; - - sleepycat = { - spdxId = "Sleepycat"; - fullName = "Sleepycat License"; - }; - - smail = { - shortName = "smail"; - fullName = "SMAIL General Public License"; - url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/"; - }; - - smlnj = { - spdxId = "SMLNJ"; - fullName = "Standard ML of New Jersey License"; - }; - - sspl = { - shortName = "SSPL"; - fullName = "Server Side Public License"; - url = "https://www.mongodb.com/licensing/server-side-public-license"; - free = false; - # NOTE Debatable. - # The license a slightly modified AGPL but still considered unfree by the - # OSI for what seem like political reasons - redistributable = true; # Definitely redistributable though, it's an AGPL derivative - }; - - stk = { - shortName = "stk"; - fullName = "Synthesis Tool Kit 4.3"; - url = "https://github.com/thestk/stk/blob/master/LICENSE"; - }; - - sudo = { - shortName = "sudo"; - fullName = "Sudo License (ISC-style)"; - url = "https://www.sudo.ws/about/license/"; - }; - - sustainableUse = { - shortName = "sustainable"; - fullName = "Sustainable Use License"; - url = "https://github.com/n8n-io/n8n/blob/master/LICENSE.md"; - free = false; - redistributable = false; # only free to redistribute "for non-commercial purposes" - }; - - tsl = { - shortName = "TSL"; - fullName = "Timescale License Agreegment"; - url = "https://github.com/timescale/timescaledb/blob/main/tsl/LICENSE-TIMESCALE"; - unfree = true; - }; - - tcltk = { - spdxId = "TCL"; - fullName = "TCL/TK License"; - }; - - ucd = { - fullName = "Unicode Character Database License"; - url = "https://fedoraproject.org/wiki/Licensing:UCD"; - }; - - ufl = { - fullName = "Ubuntu Font License 1.0"; - url = "https://ubuntu.com/legal/font-licence"; - }; - - unfree = { - fullName = "Unfree"; - free = false; - }; - - unfreeRedistributable = { - fullName = "Unfree redistributable"; - free = false; - redistributable = true; - }; - - unfreeRedistributableFirmware = { - fullName = "Unfree redistributable firmware"; - redistributable = true; - # Note: we currently consider these "free" for inclusion in the - # channel and NixOS images. - }; - - unicode-dfs-2015 = { - spdxId = "Unicode-DFS-2015"; - fullName = "Unicode License Agreement - Data Files and Software (2015)"; - }; - - unicode-dfs-2016 = { - spdxId = "Unicode-DFS-2016"; - fullName = "Unicode License Agreement - Data Files and Software (2016)"; - }; - - unlicense = { - spdxId = "Unlicense"; - fullName = "The Unlicense"; - }; - - upl = { - spdxId = "UPL-1.0"; - fullName = "Universal Permissive License"; - url = "https://oss.oracle.com/licenses/upl/"; - }; - - vim = { - spdxId = "Vim"; - fullName = "Vim License"; - }; - - virtualbox-puel = { - fullName = "Oracle VM VirtualBox Extension Pack Personal Use and Evaluation License (PUEL)"; - url = "https://www.virtualbox.org/wiki/VirtualBox_PUEL"; - free = false; - }; - - vol-sl = { - fullName = "Volatility Software License, Version 1.0"; - url = "https://www.volatilityfoundation.org/license/vsl-v1.0"; - }; - - vsl10 = { - spdxId = "VSL-1.0"; - fullName = "Vovida Software License v1.0"; - }; - - watcom = { - spdxId = "Watcom-1.0"; - fullName = "Sybase Open Watcom Public License 1.0"; - }; - - w3c = { - spdxId = "W3C"; - fullName = "W3C Software Notice and License"; - }; - - wadalab = { - fullName = "Wadalab Font License"; - url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab"; - }; - - wtfpl = { - spdxId = "WTFPL"; - fullName = "Do What The F*ck You Want To Public License"; - }; - - wxWindows = { - spdxId = "wxWindows"; - fullName = "wxWindows Library Licence, Version 3.1"; - }; - - x11 = { - spdxId = "X11"; - fullName = "X11 License"; - }; - - xfig = { - spdxId = "Xfig"; - fullName = "xfig"; - url = "https://mcj.sourceforge.net/authors.html#xfig"; - }; - - xinetd = { - spdxId = "xinetd"; - fullName = "xinetd License"; - }; - - zlib = { - spdxId = "Zlib"; - fullName = "zlib License"; - }; - - zpl20 = { - spdxId = "ZPL-2.0"; - fullName = "Zope Public License 2.0"; - }; - - zpl21 = { - spdxId = "ZPL-2.1"; - fullName = "Zope Public License 2.1"; - }; - - xskat = { - spdxId = "XSkat"; - fullName = "XSkat License"; - }; -} // { - # TODO: remove legacy aliases - apsl10 = { - # deprecated for consistency with `apple-psl20`; use `apple-psl10` - spdxId = "APSL-1.0"; - fullName = "Apple Public Source License 1.0"; - deprecated = true; - }; - apsl20 = { - # deprecated due to confusion with Apache-2.0; use `apple-psl20` - spdxId = "APSL-2.0"; - fullName = "Apple Public Source License 2.0"; - deprecated = true; - }; - gpl2 = { - spdxId = "GPL-2.0"; - fullName = "GNU General Public License v2.0"; - deprecated = true; - }; - gpl3 = { - spdxId = "GPL-3.0"; - fullName = "GNU General Public License v3.0"; - deprecated = true; - }; - lgpl2 = { - spdxId = "LGPL-2.0"; - fullName = "GNU Library General Public License v2"; - deprecated = true; - }; - lgpl21 = { - spdxId = "LGPL-2.1"; - fullName = "GNU Lesser General Public License v2.1"; - deprecated = true; - }; - lgpl3 = { - spdxId = "LGPL-3.0"; - fullName = "GNU Lesser General Public License v3.0"; - deprecated = true; - }; -}) +lib.mapAttrs + ( + lname: lset: + let + defaultLicense = { + shortName = lname; + free = true; # Most of our licenses are Free, explicitly declare unfree additions as such! + deprecated = false; + }; + + mkLicense = + licenseDeclaration: + let + applyDefaults = license: defaultLicense // license; + applySpdx = + license: + if license ? spdxId then + license // { url = "https://spdx.org/licenses/${license.spdxId}.html"; } + else + license; + applyRedistributable = license: { redistributable = license.free; } // license; + in + lib.pipe licenseDeclaration [ + applyDefaults + applySpdx + applyRedistributable + ]; + in + mkLicense lset + ) + ( + { + /* + License identifiers from spdx.org where possible. + If you cannot find your license here, then look for a similar license or + add it to this list. The URL mentioned above is a good source for inspiration. + */ + + abstyles = { + spdxId = "Abstyles"; + fullName = "Abstyles License"; + }; + + acsl14 = { + fullName = "Anti-Capitalist Software License v1.4"; + url = "https://anticapitalist.software/"; + # restrictions on corporations apply for both use and redistribution + free = false; + redistributable = false; + }; + + activision = { + # https://doomwiki.org/wiki/Raven_source_code_licensing + fullName = "Activision EULA"; + url = "https://www.doomworld.com/eternity/activision_eula.txt"; + free = false; + }; + + afl20 = { + spdxId = "AFL-2.0"; + fullName = "Academic Free License v2.0"; + }; + + afl21 = { + spdxId = "AFL-2.1"; + fullName = "Academic Free License v2.1"; + }; + + afl3 = { + spdxId = "AFL-3.0"; + fullName = "Academic Free License v3.0"; + }; + + agpl3Only = { + spdxId = "AGPL-3.0-only"; + fullName = "GNU Affero General Public License v3.0 only"; + }; + + agpl3Plus = { + spdxId = "AGPL-3.0-or-later"; + fullName = "GNU Affero General Public License v3.0 or later"; + }; + + aladdin = { + spdxId = "Aladdin"; + fullName = "Aladdin Free Public License"; + free = false; + }; + + amazonsl = { + fullName = "Amazon Software License"; + url = "https://aws.amazon.com/asl/"; + free = false; + }; + + amd = { + fullName = "AMD License Agreement"; + url = "https://developer.amd.com/amd-license-agreement/"; + free = false; + }; + + aom = { + fullName = "Alliance for Open Media Patent License 1.0"; + url = "https://aomedia.org/license/patent-license/"; + }; + + apple-psl10 = { + spdxId = "APSL-1.0"; + fullName = "Apple Public Source License 1.0"; + }; + + apple-psl20 = { + spdxId = "APSL-2.0"; + fullName = "Apple Public Source License 2.0"; + }; + + arphicpl = { + spdxId = "Arphic-1999"; + fullName = "Arphic Public License"; + url = "https://www.freedesktop.org/wiki/Arphic_Public_License/"; + }; + + artistic1 = { + spdxId = "Artistic-1.0"; + fullName = "Artistic License 1.0"; + }; + + artistic1-cl8 = { + spdxId = "Artistic-1.0-cl8"; + fullName = "Artistic License 1.0 w/clause 8"; + }; + + artistic2 = { + spdxId = "Artistic-2.0"; + fullName = "Artistic License 2.0"; + }; + + asl20 = { + spdxId = "Apache-2.0"; + fullName = "Apache License 2.0"; + }; + + asl20-llvm = { + spdxId = "Apache-2.0 WITH LLVM-exception"; + fullName = "Apache License 2.0 with LLVM Exceptions"; + }; + + bitstreamVera = { + spdxId = "Bitstream-Vera"; + fullName = "Bitstream Vera Font License"; + }; + + bitTorrent10 = { + spdxId = "BitTorrent-1.0"; + fullName = " BitTorrent Open Source License v1.0"; + }; + + bitTorrent11 = { + spdxId = "BitTorrent-1.1"; + fullName = " BitTorrent Open Source License v1.1"; + }; + + bola11 = { + url = "https://blitiri.com.ar/p/bola/"; + fullName = "Buena Onda License Agreement 1.1"; + }; + + boost = { + spdxId = "BSL-1.0"; + fullName = "Boost Software License 1.0"; + }; + + beerware = { + spdxId = "Beerware"; + fullName = "Beerware License"; + }; + + blueOak100 = { + spdxId = "BlueOak-1.0.0"; + fullName = "Blue Oak Model License 1.0.0"; + }; + + bsd0 = { + spdxId = "0BSD"; + fullName = "BSD Zero Clause License"; + }; + + bsd1 = { + spdxId = "BSD-1-Clause"; + fullName = "BSD 1-Clause License"; + }; + + bsd2 = { + spdxId = "BSD-2-Clause"; + fullName = ''BSD 2-clause "Simplified" License''; + }; + + bsd2Patent = { + spdxId = "BSD-2-Clause-Patent"; + fullName = "BSD-2-Clause Plus Patent License"; + }; + + bsd2WithViews = { + spdxId = "BSD-2-Clause-Views"; + fullName = "BSD 2-Clause with views sentence"; + }; + + bsd3 = { + spdxId = "BSD-3-Clause"; + fullName = ''BSD 3-clause "New" or "Revised" License''; + }; + + bsd3Clear = { + spdxId = "BSD-3-Clause-Clear"; + fullName = "BSD 3-Clause Clear License"; + }; + + bsdOriginal = { + spdxId = "BSD-4-Clause"; + fullName = ''BSD 4-clause "Original" or "Old" License''; + }; + + bsdOriginalShortened = { + spdxId = "BSD-4-Clause-Shortened"; + fullName = "BSD 4 Clause Shortened"; + }; + + bsdOriginalUC = { + spdxId = "BSD-4-Clause-UC"; + fullName = "BSD 4-Clause University of California-Specific"; + }; + + bsdProtection = { + spdxId = "BSD-Protection"; + fullName = "BSD Protection License"; + }; + + bsl11 = { + fullName = "Business Source License 1.1"; + url = "https://mariadb.com/bsl11"; + free = false; + redistributable = true; + }; + + caossl = { + fullName = "Computer Associates Open Source Licence Version 1.0"; + url = "http://jxplorer.org/licence.html"; + }; + + cal10 = { + spdxId = "CAL-1.0"; + fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)"; + url = "https://opensource.org/licenses/CAL-1.0"; + }; + + caldera = { + spdxId = "Caldera"; + fullName = "Caldera License"; + url = "http://www.lemis.com/grog/UNIX/ancient-source-all.pdf"; + }; + + capec = { + fullName = "Common Attack Pattern Enumeration and Classification"; + url = "https://capec.mitre.org/about/termsofuse.html"; + }; + + clArtistic = { + spdxId = "ClArtistic"; + fullName = "Clarified Artistic License"; + }; + + cc0 = { + spdxId = "CC0-1.0"; + fullName = "Creative Commons Zero v1.0 Universal"; + }; + + cc-by-nc-nd-30 = { + spdxId = "CC-BY-NC-ND-3.0"; + fullName = "Creative Commons Attribution Non Commercial No Derivative Works 3.0 Unported"; + free = false; + }; + + cc-by-nc-nd-40 = { + spdxId = "CC-BY-NC-ND-4.0"; + fullName = "Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International"; + free = false; + }; + + cc-by-nc-sa-20 = { + spdxId = "CC-BY-NC-SA-2.0"; + fullName = "Creative Commons Attribution Non Commercial Share Alike 2.0"; + free = false; + }; + + cc-by-nc-sa-25 = { + spdxId = "CC-BY-NC-SA-2.5"; + fullName = "Creative Commons Attribution Non Commercial Share Alike 2.5"; + free = false; + }; + + cc-by-nc-sa-30 = { + spdxId = "CC-BY-NC-SA-3.0"; + fullName = "Creative Commons Attribution Non Commercial Share Alike 3.0"; + free = false; + }; + + cc-by-nc-sa-40 = { + spdxId = "CC-BY-NC-SA-4.0"; + fullName = "Creative Commons Attribution Non Commercial Share Alike 4.0"; + free = false; + }; + + cc-by-nc-30 = { + spdxId = "CC-BY-NC-3.0"; + fullName = "Creative Commons Attribution Non Commercial 3.0 Unported"; + free = false; + }; + + cc-by-nc-40 = { + spdxId = "CC-BY-NC-4.0"; + fullName = "Creative Commons Attribution Non Commercial 4.0 International"; + free = false; + }; + + cc-by-nd-30 = { + spdxId = "CC-BY-ND-3.0"; + fullName = "Creative Commons Attribution-No Derivative Works v3.00"; + free = false; + }; + + cc-by-sa-10 = { + spdxId = "CC-BY-SA-1.0"; + fullName = "Creative Commons Attribution Share Alike 1.0"; + }; + + cc-by-sa-20 = { + spdxId = "CC-BY-SA-2.0"; + fullName = "Creative Commons Attribution Share Alike 2.0"; + }; + + cc-by-sa-25 = { + spdxId = "CC-BY-SA-2.5"; + fullName = "Creative Commons Attribution Share Alike 2.5"; + }; + + cc-by-10 = { + spdxId = "CC-BY-1.0"; + fullName = "Creative Commons Attribution 1.0"; + }; + + cc-by-20 = { + spdxId = "CC-BY-2.0"; + fullName = "Creative Commons Attribution 2.0"; + }; + + cc-by-30 = { + spdxId = "CC-BY-3.0"; + fullName = "Creative Commons Attribution 3.0"; + }; + + cc-by-sa-30 = { + spdxId = "CC-BY-SA-3.0"; + fullName = "Creative Commons Attribution Share Alike 3.0"; + }; + + cc-by-40 = { + spdxId = "CC-BY-4.0"; + fullName = "Creative Commons Attribution 4.0"; + }; + + cc-by-sa-40 = { + spdxId = "CC-BY-SA-4.0"; + fullName = "Creative Commons Attribution Share Alike 4.0"; + }; + + cddl = { + spdxId = "CDDL-1.0"; + fullName = "Common Development and Distribution License 1.0"; + }; + + cecill20 = { + spdxId = "CECILL-2.0"; + fullName = "CeCILL Free Software License Agreement v2.0"; + }; + + cecill21 = { + spdxId = "CECILL-2.1"; + fullName = "CeCILL Free Software License Agreement v2.1"; + }; + + cecill-b = { + spdxId = "CECILL-B"; + fullName = "CeCILL-B Free Software License Agreement"; + }; + + cecill-c = { + spdxId = "CECILL-C"; + fullName = "CeCILL-C Free Software License Agreement"; + }; + + cpal10 = { + spdxId = "CPAL-1.0"; + fullName = "Common Public Attribution License 1.0"; + }; + + commons-clause = { + fullName = "Commons Clause License"; + url = "https://commonsclause.com/"; + free = false; + }; + + cpl10 = { + spdxId = "CPL-1.0"; + fullName = "Common Public License 1.0"; + }; + + curl = { + spdxId = "curl"; + fullName = "curl License"; + }; + + doc = { + spdxId = "DOC"; + fullName = "DOC License"; + }; + + drl10 = { + spdxId = "DRL-1.0"; + fullName = "Detection Rule License 1.0"; + }; + + dtoa = { + spdxId = "dtoa"; + fullName = "dtoa License"; + }; + + eapl = { + fullName = "EPSON AVASYS PUBLIC LICENSE"; + url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm"; + free = false; + }; + + ecl20 = { + fullName = "Educational Community License, Version 2.0"; + url = "https://opensource.org/licenses/ECL-2.0"; + shortName = "ECL 2.0"; + spdxId = "ECL-2.0"; + }; + + efl10 = { + spdxId = "EFL-1.0"; + fullName = "Eiffel Forum License v1.0"; + }; + + efl20 = { + spdxId = "EFL-2.0"; + fullName = "Eiffel Forum License v2.0"; + }; + + elastic20 = { + spdxId = "Elastic-2.0"; + fullName = "Elastic License 2.0"; + url = "https://github.com/elastic/elasticsearch/blob/main/licenses/ELASTIC-LICENSE-2.0.txt"; + free = false; + }; + + epl10 = { + spdxId = "EPL-1.0"; + fullName = "Eclipse Public License 1.0"; + }; + + epl20 = { + spdxId = "EPL-2.0"; + fullName = "Eclipse Public License 2.0"; + }; + + epson = { + fullName = "Seiko Epson Corporation Software License Agreement for Linux"; + url = "https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html"; + free = false; + }; + + eupl11 = { + spdxId = "EUPL-1.1"; + fullName = "European Union Public License 1.1"; + }; + + eupl12 = { + spdxId = "EUPL-1.2"; + fullName = "European Union Public License 1.2"; + }; + + fdl11Only = { + spdxId = "GFDL-1.1-only"; + fullName = "GNU Free Documentation License v1.1 only"; + }; + + fdl11Plus = { + spdxId = "GFDL-1.1-or-later"; + fullName = "GNU Free Documentation License v1.1 or later"; + }; + + fdl12Only = { + spdxId = "GFDL-1.2-only"; + fullName = "GNU Free Documentation License v1.2 only"; + }; + + fdl12Plus = { + spdxId = "GFDL-1.2-or-later"; + fullName = "GNU Free Documentation License v1.2 or later"; + }; + + fdl13Only = { + spdxId = "GFDL-1.3-only"; + fullName = "GNU Free Documentation License v1.3 only"; + }; + + fdl13Plus = { + spdxId = "GFDL-1.3-or-later"; + fullName = "GNU Free Documentation License v1.3 or later"; + }; + + ffsl = { + fullName = "Floodgap Free Software License"; + url = "https://www.floodgap.com/software/ffsl/license.html"; + free = false; + }; + + fraunhofer-fdk = { + fullName = "Fraunhofer FDK AAC Codec Library"; + spdxId = "FDK-AAC"; + }; + + free = { + fullName = "Unspecified free software license"; + }; + + ftl = { + spdxId = "FTL"; + fullName = "Freetype Project License"; + }; + + g4sl = { + fullName = "Geant4 Software License"; + url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html"; + }; + + geogebra = { + fullName = "GeoGebra Non-Commercial License Agreement"; + url = "https://www.geogebra.org/license"; + free = false; + }; + + generaluser = { + fullName = "GeneralUser GS License v2.0"; + url = "https://www.schristiancollins.com/generaluser.php"; # license included in sources + }; + + gfl = { + fullName = "GUST Font License"; + url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-LICENSE.txt"; + }; + + gfsl = { + fullName = "GUST Font Source License"; + url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-SOURCE-LICENSE.txt"; + }; + + gpl1Only = { + spdxId = "GPL-1.0-only"; + fullName = "GNU General Public License v1.0 only"; + }; + + gpl1Plus = { + spdxId = "GPL-1.0-or-later"; + fullName = "GNU General Public License v1.0 or later"; + }; + + gpl2Only = { + spdxId = "GPL-2.0-only"; + fullName = "GNU General Public License v2.0 only"; + }; + + gpl2Classpath = { + spdxId = "GPL-2.0-with-classpath-exception"; + fullName = "GNU General Public License v2.0 only (with Classpath exception)"; + }; + + gpl2ClasspathPlus = { + fullName = "GNU General Public License v2.0 or later (with Classpath exception)"; + url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; + }; + + gpl2Oss = { + fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)"; + url = "https://www.mysql.com/about/legal/licensing/foss-exception"; + }; + + gpl2Plus = { + spdxId = "GPL-2.0-or-later"; + fullName = "GNU General Public License v2.0 or later"; + }; + + gpl3Only = { + spdxId = "GPL-3.0-only"; + fullName = "GNU General Public License v3.0 only"; + }; + + gpl3Plus = { + spdxId = "GPL-3.0-or-later"; + fullName = "GNU General Public License v3.0 or later"; + }; + + gpl3ClasspathPlus = { + fullName = "GNU General Public License v3.0 or later (with Classpath exception)"; + url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception"; + }; + + giftware = { + spdxId = "Giftware"; + fullName = "Giftware License"; + }; + + hpnd = { + spdxId = "HPND"; + fullName = "Historic Permission Notice and Disclaimer"; + }; + + hpndSellVariant = { + fullName = "Historical Permission Notice and Disclaimer - sell variant"; + spdxId = "HPND-sell-variant"; + }; + + hpndUc = { + spdxId = "HPND-UC"; + fullName = "Historical Permission Notice and Disclaimer - University of California variant"; + }; + + # Intel's license, seems free + iasl = { + spdxId = "Intel-ACPI"; + fullName = "iASL"; + url = "https://old.calculate-linux.org/packages/licenses/iASL"; + }; + + ijg = { + spdxId = "IJG"; + fullName = "Independent JPEG Group License"; + }; + + imagemagick = { + fullName = "ImageMagick License"; + spdxId = "ImageMagick"; + }; + + imlib2 = { + spdxId = "Imlib2"; + fullName = "Imlib2 License"; + }; + + info-zip = { + spdxId = "Info-ZIP"; + fullName = "Info-ZIP License"; + url = "https://infozip.sourceforge.net/license.html"; + }; + + inria-compcert = { + fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler"; + url = "https://compcert.org/doc/LICENSE.txt"; + free = false; + }; + + inria-icesl = { + fullName = "End User License Agreement for IceSL Software"; + url = "https://icesl.loria.fr/assets/pdf/EULA_IceSL_binary.pdf"; + free = false; + }; + + inria-zelus = { + fullName = "INRIA Non-Commercial License Agreement for the Zélus compiler"; + url = "https://github.com/INRIA/zelus/raw/829f2b97cba93b0543a9ca0272269e6b8fdad356/LICENSE"; + free = false; + }; + + ipa = { + spdxId = "IPA"; + fullName = "IPA Font License"; + }; + + ipl10 = { + spdxId = "IPL-1.0"; + fullName = "IBM Public License v1.0"; + }; + + isc = { + spdxId = "ISC"; + fullName = "ISC License"; + }; + + # Proprietary binaries; free to redistribute without modification. + databricks = { + fullName = "Databricks Proprietary License"; + url = "https://pypi.org/project/databricks-connect"; + free = false; + }; + + databricks-dbx = { + fullName = "DataBricks eXtensions aka dbx License"; + url = "https://github.com/databrickslabs/dbx/blob/743b579a4ac44531f764c6e522dbe5a81a7dc0e4/LICENSE"; + free = false; + redistributable = false; + }; + + fair = { + fullName = "Fair License"; + spdxId = "Fair"; + free = true; + }; + + fairsource09 = { + fullName = "Fair Source License, version 0.9"; + url = "https://fair.io/v0.9.txt"; + free = false; + redistributable = true; + }; + + hl3 = { + fullName = "Hippocratic License v3.0"; + url = "https://firstdonoharm.dev/version/3/0/core.txt"; + free = false; + redistributable = true; + }; + + issl = { + fullName = "Intel Simplified Software License"; + url = "https://software.intel.com/en-us/license/intel-simplified-software-license"; + free = false; + }; + + knuth = { + fullName = "Knuth CTAN License"; + spdxId = "Knuth-CTAN"; + }; + + lal12 = { + spdxId = "LAL-1.2"; + fullName = "Licence Art Libre 1.2"; + }; + + lal13 = { + spdxId = "LAL-1.3"; + fullName = "Licence Art Libre 1.3"; + }; + + lens = { + fullName = "Lens Terms of Service Agreement"; + url = "https://k8slens.dev/licenses/tos"; + free = false; + }; + + lgpl2Only = { + spdxId = "LGPL-2.0-only"; + fullName = "GNU Library General Public License v2 only"; + }; + + lgpl2Plus = { + spdxId = "LGPL-2.0-or-later"; + fullName = "GNU Library General Public License v2 or later"; + }; + + lgpl21Only = { + spdxId = "LGPL-2.1-only"; + fullName = "GNU Lesser General Public License v2.1 only"; + }; + + lgpl21Plus = { + spdxId = "LGPL-2.1-or-later"; + fullName = "GNU Lesser General Public License v2.1 or later"; + }; + + lgpl3Only = { + spdxId = "LGPL-3.0-only"; + fullName = "GNU Lesser General Public License v3.0 only"; + }; + + lgpl3Plus = { + spdxId = "LGPL-3.0-or-later"; + fullName = "GNU Lesser General Public License v3.0 or later"; + }; + + lgpllr = { + spdxId = "LGPLLR"; + fullName = "Lesser General Public License For Linguistic Resources"; + }; + + libpng = { + spdxId = "Libpng"; + fullName = "libpng License"; + }; + + libpng2 = { + spdxId = "libpng-2.0"; # Used since libpng 1.6.36. + fullName = "PNG Reference Library version 2"; + }; + + libssh2 = { + fullName = "libssh2 License"; + url = "https://www.libssh2.org/license.html"; + }; + + libtiff = { + spdxId = "libtiff"; + fullName = "libtiff License"; + }; + + llgpl21 = { + fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp"; + url = "https://opensource.franz.com/preamble.html"; + }; + + lppl1 = { + spdxId = "LPPL-1.0"; + fullName = "LaTeX Project Public License v1.0"; + }; + + lppl12 = { + spdxId = "LPPL-1.2"; + fullName = "LaTeX Project Public License v1.2"; + }; + + lppl13a = { + spdxId = "LPPL-1.3a"; + fullName = "LaTeX Project Public License v1.3a"; + }; + + lppl13c = { + spdxId = "LPPL-1.3c"; + fullName = "LaTeX Project Public License v1.3c"; + }; + + lpl-102 = { + spdxId = "LPL-1.02"; + fullName = "Lucent Public License v1.02"; + }; + + miros = { + spdxId = "MirOS"; + fullName = "MirOS License"; + url = "https://opensource.org/licenses/MirOS"; + }; + + # spdx.org does not (yet) differentiate between the X11 and Expat versions + # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions + mit = { + spdxId = "MIT"; + fullName = "MIT License"; + }; + # https://spdx.org/licenses/MIT-feh.html + mit-feh = { + spdxId = "MIT-feh"; + fullName = "feh License"; + }; + + mitAdvertising = { + spdxId = "MIT-advertising"; + fullName = "Enlightenment License (e16)"; + }; + + mit0 = { + spdxId = "MIT-0"; + fullName = "MIT No Attribution"; + }; + + mpl10 = { + spdxId = "MPL-1.0"; + fullName = "Mozilla Public License 1.0"; + }; + + mpl11 = { + spdxId = "MPL-1.1"; + fullName = "Mozilla Public License 1.1"; + }; + + mpl20 = { + spdxId = "MPL-2.0"; + fullName = "Mozilla Public License 2.0"; + }; + + mplus = { + spdxId = "mplus"; + fullName = "M+ Font License"; + }; + + mspl = { + spdxId = "MS-PL"; + fullName = "Microsoft Public License"; + }; + + mulan-psl2 = { + spdxId = "MulanPSL-2.0"; + fullName = "Mulan Permissive Software License, Version 2"; + url = "https://license.coscl.org.cn/MulanPSL2"; + }; + + nasa13 = { + spdxId = "NASA-1.3"; + fullName = "NASA Open Source Agreement 1.3"; + free = false; + }; + + ncsa = { + spdxId = "NCSA"; + fullName = "University of Illinois/NCSA Open Source License"; + }; + + ncul1 = { + spdxId = "NCUL1"; + fullName = "Netdata Cloud UI License v1.0"; + free = false; + redistributable = true; # Only if used in Netdata products. + url = "https://raw.githubusercontent.com/netdata/netdata/master/web/gui/v2/LICENSE.md"; + }; + + nistSoftware = { + spdxId = "NIST-Software"; + fullName = "NIST Software License"; + }; + + nlpl = { + spdxId = "NLPL"; + fullName = "No Limit Public License"; + }; + + nposl3 = { + spdxId = "NPOSL-3.0"; + fullName = "Non-Profit Open Software License 3.0"; + }; + + nvidiaCuda = { + shortName = "CUDA EULA"; + fullName = "CUDA Toolkit End User License Agreement (EULA)"; + url = "https://docs.nvidia.com/cuda/eula/index.html#cuda-toolkit-supplement-license-agreement"; + free = false; + }; + + nvidiaCudaRedist = { + shortName = "CUDA EULA"; + fullName = "CUDA Toolkit End User License Agreement (EULA)"; + url = "https://docs.nvidia.com/cuda/eula/index.html#cuda-toolkit-supplement-license-agreement"; + free = false; + redistributable = true; + }; + + obsidian = { + fullName = "Obsidian End User Agreement"; + url = "https://obsidian.md/eula"; + free = false; + }; + + ocamlLgplLinkingException = { + spdxId = "OCaml-LGPL-linking-exception"; + fullName = "OCaml LGPL Linking Exception"; + }; + + ocamlpro_nc = { + fullName = "OCamlPro Non Commercial license version 1"; + url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-2.2.0/OCamlPro-Non-Commercial-License.pdf"; + free = false; + }; + + odbl = { + spdxId = "ODbL-1.0"; + fullName = "Open Data Commons Open Database License v1.0"; + }; + + ofl = { + spdxId = "OFL-1.1"; + fullName = "SIL Open Font License 1.1"; + }; + + oml = { + spdxId = "OML"; + fullName = "Open Market License"; + }; + + openldap = { + spdxId = "OLDAP-2.8"; + fullName = "Open LDAP Public License v2.8"; + }; + + openssl = { + spdxId = "OpenSSL"; + fullName = "OpenSSL License"; + }; + + opubl = { + spdxId = "OPUBL-1.0"; + fullName = "Open Publication License v1.0"; + }; + + osl2 = { + spdxId = "OSL-2.0"; + fullName = "Open Software License 2.0"; + }; + + osl21 = { + spdxId = "OSL-2.1"; + fullName = "Open Software License 2.1"; + }; + + osl3 = { + spdxId = "OSL-3.0"; + fullName = "Open Software License 3.0"; + }; + + parity70 = { + spdxId = "Parity-7.0.0"; + fullName = "Parity Public License 7.0.0"; + url = "https://paritylicense.com/versions/7.0.0.html"; + }; + + php301 = { + spdxId = "PHP-3.01"; + fullName = "PHP License v3.01"; + }; + + postgresql = { + spdxId = "PostgreSQL"; + fullName = "PostgreSQL License"; + }; + + postman = { + fullName = "Postman EULA"; + url = "https://www.getpostman.com/licenses/postman_base_app"; + free = false; + }; + + psfl = { + spdxId = "Python-2.0"; + fullName = "Python Software Foundation License version 2"; + url = "https://docs.python.org/license.html"; + }; + + publicDomain = { + fullName = "Public Domain"; + }; + + purdueBsd = { + fullName = " Purdue BSD-Style License"; # also know as lsof license + url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd"; + }; + + prosperity30 = { + fullName = "Prosperity-3.0.0"; + free = false; + url = "https://prosperitylicense.com/versions/3.0.0.html"; + }; + + qhull = { + spdxId = "Qhull"; + fullName = "Qhull License"; + }; + + qpl = { + spdxId = "QPL-1.0"; + fullName = "Q Public License 1.0"; + }; + + qwt = { + fullName = "Qwt License, Version 1.0"; + url = "https://qwt.sourceforge.io/qwtlicense.html"; + }; + + ruby = { + spdxId = "Ruby"; + fullName = "Ruby License"; + }; + + sendmail = { + spdxId = "Sendmail"; + fullName = "Sendmail License"; + }; + + sgi-b-20 = { + spdxId = "SGI-B-2.0"; + fullName = "SGI Free Software License B v2.0"; + }; + + # Gentoo seems to treat it as a license: + # https://gitweb.gentoo.org/repo/gentoo.git/tree/licenses/SGMLUG?id=7d999af4a47bf55e53e54713d98d145f935935c1 + sgmlug = { + fullName = "SGML UG SGML Parser Materials license"; + }; + + sleepycat = { + spdxId = "Sleepycat"; + fullName = "Sleepycat License"; + }; + + smail = { + shortName = "smail"; + fullName = "SMAIL General Public License"; + url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/"; + }; + + smlnj = { + spdxId = "SMLNJ"; + fullName = "Standard ML of New Jersey License"; + }; + + sspl = { + shortName = "SSPL"; + fullName = "Server Side Public License"; + url = "https://www.mongodb.com/licensing/server-side-public-license"; + free = false; + # NOTE Debatable. + # The license a slightly modified AGPL but still considered unfree by the + # OSI for what seem like political reasons + redistributable = true; # Definitely redistributable though, it's an AGPL derivative + }; + + stk = { + shortName = "stk"; + fullName = "Synthesis Tool Kit 4.3"; + url = "https://github.com/thestk/stk/blob/master/LICENSE"; + }; + + sudo = { + shortName = "sudo"; + fullName = "Sudo License (ISC-style)"; + url = "https://www.sudo.ws/about/license/"; + }; + + sustainableUse = { + shortName = "sustainable"; + fullName = "Sustainable Use License"; + url = "https://github.com/n8n-io/n8n/blob/master/LICENSE.md"; + free = false; + redistributable = false; # only free to redistribute "for non-commercial purposes" + }; + + tsl = { + shortName = "TSL"; + fullName = "Timescale License Agreegment"; + url = "https://github.com/timescale/timescaledb/blob/main/tsl/LICENSE-TIMESCALE"; + unfree = true; + }; + + tcltk = { + spdxId = "TCL"; + fullName = "TCL/TK License"; + }; + + ucd = { + fullName = "Unicode Character Database License"; + url = "https://fedoraproject.org/wiki/Licensing:UCD"; + }; + + ufl = { + fullName = "Ubuntu Font License 1.0"; + url = "https://ubuntu.com/legal/font-licence"; + }; + + unfree = { + fullName = "Unfree"; + free = false; + }; + + unfreeRedistributable = { + fullName = "Unfree redistributable"; + free = false; + redistributable = true; + }; + + unfreeRedistributableFirmware = { + fullName = "Unfree redistributable firmware"; + redistributable = true; + # Note: we currently consider these "free" for inclusion in the + # channel and NixOS images. + }; + + unicode-dfs-2015 = { + spdxId = "Unicode-DFS-2015"; + fullName = "Unicode License Agreement - Data Files and Software (2015)"; + }; + + unicode-dfs-2016 = { + spdxId = "Unicode-DFS-2016"; + fullName = "Unicode License Agreement - Data Files and Software (2016)"; + }; + + unlicense = { + spdxId = "Unlicense"; + fullName = "The Unlicense"; + }; + + upl = { + spdxId = "UPL-1.0"; + fullName = "Universal Permissive License"; + url = "https://oss.oracle.com/licenses/upl/"; + }; + + vim = { + spdxId = "Vim"; + fullName = "Vim License"; + }; + + virtualbox-puel = { + fullName = "Oracle VM VirtualBox Extension Pack Personal Use and Evaluation License (PUEL)"; + url = "https://www.virtualbox.org/wiki/VirtualBox_PUEL"; + free = false; + }; + + vol-sl = { + fullName = "Volatility Software License, Version 1.0"; + url = "https://www.volatilityfoundation.org/license/vsl-v1.0"; + }; + + vsl10 = { + spdxId = "VSL-1.0"; + fullName = "Vovida Software License v1.0"; + }; + + watcom = { + spdxId = "Watcom-1.0"; + fullName = "Sybase Open Watcom Public License 1.0"; + }; + + w3c = { + spdxId = "W3C"; + fullName = "W3C Software Notice and License"; + }; + + wadalab = { + fullName = "Wadalab Font License"; + url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab"; + }; + + wtfpl = { + spdxId = "WTFPL"; + fullName = "Do What The F*ck You Want To Public License"; + }; + + wxWindows = { + spdxId = "wxWindows"; + fullName = "wxWindows Library Licence, Version 3.1"; + }; + + x11 = { + spdxId = "X11"; + fullName = "X11 License"; + }; + + xfig = { + spdxId = "Xfig"; + fullName = "xfig"; + url = "https://mcj.sourceforge.net/authors.html#xfig"; + }; + + xinetd = { + spdxId = "xinetd"; + fullName = "xinetd License"; + }; + + zlib = { + spdxId = "Zlib"; + fullName = "zlib License"; + }; + + zpl20 = { + spdxId = "ZPL-2.0"; + fullName = "Zope Public License 2.0"; + }; + + zpl21 = { + spdxId = "ZPL-2.1"; + fullName = "Zope Public License 2.1"; + }; + + xskat = { + spdxId = "XSkat"; + fullName = "XSkat License"; + }; + } + // { + # TODO: remove legacy aliases + apsl10 = { + # deprecated for consistency with `apple-psl20`; use `apple-psl10` + spdxId = "APSL-1.0"; + fullName = "Apple Public Source License 1.0"; + deprecated = true; + }; + apsl20 = { + # deprecated due to confusion with Apache-2.0; use `apple-psl20` + spdxId = "APSL-2.0"; + fullName = "Apple Public Source License 2.0"; + deprecated = true; + }; + gpl2 = { + spdxId = "GPL-2.0"; + fullName = "GNU General Public License v2.0"; + deprecated = true; + }; + gpl3 = { + spdxId = "GPL-3.0"; + fullName = "GNU General Public License v3.0"; + deprecated = true; + }; + lgpl2 = { + spdxId = "LGPL-2.0"; + fullName = "GNU Library General Public License v2"; + deprecated = true; + }; + lgpl21 = { + spdxId = "LGPL-2.1"; + fullName = "GNU Lesser General Public License v2.1"; + deprecated = true; + }; + lgpl3 = { + spdxId = "LGPL-3.0"; + fullName = "GNU Lesser General Public License v3.0"; + deprecated = true; + }; + } + ) diff --git a/lib/lists.nix b/lib/lists.nix index ca436d7..3f32683 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -4,12 +4,29 @@ { lib }: let inherit (lib.strings) toInt; - inherit (lib.trivial) compare min id warn pipe; + inherit (lib.trivial) + compare + min + id + warn + pipe + ; inherit (lib.attrsets) mapAttrs; in rec { - inherit (builtins) head tail length isList elemAt concatLists filter elem genList map; + inherit (builtins) + head + tail + length + isList + elemAt + concatLists + filter + elem + genList + map + ; /** Create a list consisting of a single element. `singleton x` is @@ -39,7 +56,7 @@ rec { ::: */ - singleton = x: [x]; + singleton = x: [ x ]; /** Apply the function to each element in the list. @@ -81,7 +98,6 @@ rec { `list` with `nul` as the starting value, i.e., `foldr op nul [x_1 x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))`. - # Inputs `op` @@ -118,14 +134,13 @@ rec { ::: */ - foldr = op: nul: list: + foldr = + op: nul: list: let len = length list; - fold' = n: - if n == len - then nul - else op (elemAt list n) (fold' (n + 1)); - in fold' 0; + fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1)); + in + fold' 0; /** `fold` is an alias of `foldr` for historic reasons @@ -133,7 +148,6 @@ rec { # FIXME(Profpatsch): deprecate? fold = foldr; - /** “left fold”, like `foldr`, but from the left: @@ -175,13 +189,12 @@ rec { ::: */ - foldl = op: nul: list: + foldl = + op: nul: list: let - foldl' = n: - if n == -1 - then nul - else op (foldl' (n - 1)) (elemAt list n); - in foldl' (length list - 1); + foldl' = n: if n == -1 then nul else op (foldl' (n - 1)) (elemAt list n); + in + foldl' (length list - 1); /** Reduce a list by applying a binary operator from left to right, @@ -260,13 +273,11 @@ rec { ::: */ foldl' = - op: - acc: + op: acc: # The builtin `foldl'` is a bit lazier than one might expect. # See https://github.com/NixOS/nix/pull/7158. # In particular, the initial accumulator value is not forced before the first iteration starts. - builtins.seq acc - (builtins.foldl' op acc); + builtins.seq acc (builtins.foldl' op acc); /** Map with index starting from 0 @@ -303,7 +314,6 @@ rec { /** Map with index starting from 1 - # Inputs `f` @@ -373,12 +383,9 @@ rec { ::: */ ifilter0 = - ipred: - input: + ipred: input: map (idx: elemAt input idx) ( - filter (idx: ipred idx (elemAt input idx)) ( - genList (x: x) (length input) - ) + filter (idx: ipred idx (elemAt input idx)) (genList (x: x) (length input)) ); /** @@ -407,14 +414,12 @@ rec { Flatten the argument into a single list; that is, nested lists are spliced into the top-level lists. - # Inputs `x` : 1\. Function argument - # Examples :::{.example} ## `lib.lists.flatten` usage example @@ -428,15 +433,11 @@ rec { ::: */ - flatten = x: - if isList x - then concatMap (y: flatten y) x - else [x]; + flatten = x: if isList x then concatMap (y: flatten y) x else [ x ]; /** Remove elements equal to 'e' from a list. Useful for buildInputs. - # Inputs `e` @@ -464,8 +465,7 @@ rec { ::: */ - remove = - e: filter (x: x != e); + remove = e: filter (x: x != e); /** Find the sole element in the list matching the specified @@ -474,7 +474,6 @@ rec { Returns `default` if no such element exists, or `multiple` if there are multiple matching elements. - # Inputs `pred` @@ -515,14 +514,17 @@ rec { ::: */ findSingle = - pred: - default: - multiple: - list: - let found = filter pred list; len = length found; - in if len == 0 then default - else if len != 1 then multiple - else head found; + pred: default: multiple: list: + let + found = filter pred list; + len = length found; + in + if len == 0 then + default + else if len != 1 then + multiple + else + head found; /** Find the first index in the list matching the specified @@ -562,9 +564,7 @@ rec { ::: */ findFirstIndex = - pred: - default: - list: + pred: default: list: let # A naive recursive implementation would be much simpler, but # would also overflow the evaluator stack. We use `foldl'` as a workaround @@ -579,12 +579,13 @@ rec { # - if index >= 0 then pred (elemAt list index) and all elements before (elemAt list index) didn't satisfy pred # # We start with index -1 and the 0'th element of the list, which satisfies the invariant - resultIndex = foldl' (index: el: + resultIndex = foldl' ( + index: el: if index < 0 then # No match yet before the current index, we need to check the element if pred el then # We have a match! Turn it into the actual index to prevent future iterations from modifying it - - index - 1 + -index - 1 else # Still no match, update the index to the next element (we're counting down, so minus one) index - 1 @@ -593,10 +594,7 @@ rec { index ) (-1) list; in - if resultIndex < 0 then - default - else - resultIndex; + if resultIndex < 0 then default else resultIndex; /** Find the first element in the list matching the specified @@ -636,16 +634,11 @@ rec { ::: */ findFirst = - pred: - default: - list: + pred: default: list: let index = findFirstIndex pred null list; in - if index == null then - default - else - elemAt list index; + if index == null then default else elemAt list index; /** Return true if function `pred` returns true for at least one @@ -744,8 +737,7 @@ rec { ::: */ - count = - pred: foldl' (c: x: if pred x then c + 1 else c) 0; + count = pred: foldl' (c: x: if pred x then c + 1 else c) 0; /** Return a singleton list or an empty list, depending on a boolean @@ -781,7 +773,7 @@ rec { ::: */ - optional = cond: elem: if cond then [elem] else []; + optional = cond: elem: if cond then [ elem ] else [ ]; /** Return a list or an empty list, depending on a boolean value. @@ -815,10 +807,7 @@ rec { ::: */ - optionals = - cond: - elems: if cond then elems else []; - + optionals = cond: elems: if cond then elems else [ ]; /** If argument is a list, return it; else, wrap it in a singleton @@ -844,7 +833,7 @@ rec { ::: */ - toList = x: if isList x then x else [x]; + toList = x: if isList x then x else [ x ]; /** Return a list of integers from `first` up to and including `last`. @@ -878,13 +867,7 @@ rec { ::: */ - range = - first: - last: - if first > last then - [] - else - genList (n: first + n) (last - first + 1); + range = first: last: if first > last then [ ] else genList (n: first + n) (last - first + 1); /** Return a list with `n` copies of an element. @@ -976,7 +959,6 @@ rec { : 4\. Function argument - # Examples :::{.example} ## `lib.lists.groupBy'` usage example @@ -1001,15 +983,21 @@ rec { ::: */ - groupBy' = op: nul: pred: lst: mapAttrs (name: foldl op nul) (groupBy pred lst); + groupBy' = + op: nul: pred: lst: + mapAttrs (name: foldl op nul) (groupBy pred lst); - groupBy = builtins.groupBy or ( - pred: foldl' (r: e: - let - key = pred e; - in - r // { ${key} = (r.${key} or []) ++ [e]; } - ) {}); + groupBy = + builtins.groupBy or ( + pred: + foldl' ( + r: e: + let + key = pred e; + in + r // { ${key} = (r.${key} or [ ]) ++ [ e ]; } + ) { } + ); /** Merges two lists of the same size together. If the sizes aren't the same @@ -1048,11 +1036,8 @@ rec { ::: */ zipListsWith = - f: - fst: - snd: - genList - (n: f (elemAt fst n) (elemAt snd n)) (min (length fst) (length snd)); + f: fst: snd: + genList (n: f (elemAt fst n) (elemAt snd n)) (min (length fst) (length snd)); /** Merges two lists of the same size together. If the sizes aren't the same @@ -1113,8 +1098,12 @@ rec { ::: */ - reverseList = xs: - let l = length xs; in genList (n: elemAt xs (l - n - 1)) l; + reverseList = + xs: + let + l = length xs; + in + genList (n: elemAt xs (l - n - 1)) l; /** Depth-First Search (DFS) for lists `list != []`. @@ -1122,7 +1111,6 @@ rec { `before a b == true` means that `b` depends on `a` (there's an edge from `b` to `a`). - # Inputs `stopOnCycles` @@ -1137,7 +1125,6 @@ rec { : 3\. Function argument - # Examples :::{.example} ## `lib.lists.listDfs` usage example @@ -1158,22 +1145,32 @@ rec { ::: */ - listDfs = stopOnCycles: before: list: + listDfs = + stopOnCycles: before: list: let - dfs' = us: visited: rest: + dfs' = + us: visited: rest: let c = filter (x: before x us) visited; b = partition (x: before x us) rest; - in if stopOnCycles && (length c > 0) - then { cycle = us; loops = c; inherit visited rest; } - else if length b.right == 0 - then # nothing is before us - { minimal = us; inherit visited rest; } - else # grab the first one before us and continue - dfs' (head b.right) - ([ us ] ++ visited) - (tail b.right ++ b.wrong); - in dfs' (head list) [] (tail list); + in + if stopOnCycles && (length c > 0) then + { + cycle = us; + loops = c; + inherit visited rest; + } + else if length b.right == 0 then + # nothing is before us + { + minimal = us; + inherit visited rest; + } + else + # grab the first one before us and continue + dfs' (head b.right) ([ us ] ++ visited) (tail b.right ++ b.wrong); + in + dfs' (head list) [ ] (tail list); /** Sort a list based on a partial ordering using DFS. This @@ -1183,7 +1180,6 @@ rec { `before a b == true` means that `b` should be after `a` in the result. - # Inputs `before` @@ -1194,7 +1190,6 @@ rec { : 2\. Function argument - # Examples :::{.example} ## `lib.lists.toposort` usage example @@ -1215,24 +1210,28 @@ rec { ::: */ - toposort = before: list: + toposort = + before: list: let dfsthis = listDfs true before list; toporest = toposort before (dfsthis.visited ++ dfsthis.rest); in - if length list < 2 - then # finish - { result = list; } - else if dfsthis ? cycle - then # there's a cycle, starting from the current vertex, return it - { cycle = reverseList ([ dfsthis.cycle ] ++ dfsthis.visited); - inherit (dfsthis) loops; } - else if toporest ? cycle - then # there's a cycle somewhere else in the graph, return it - toporest - # Slow, but short. Can be made a bit faster with an explicit stack. - else # there are no cycles - { result = [ dfsthis.minimal ] ++ toporest.result; }; + if length list < 2 then + # finish + { result = list; } + else if dfsthis ? cycle then + # there's a cycle, starting from the current vertex, return it + { + cycle = reverseList ([ dfsthis.cycle ] ++ dfsthis.visited); + inherit (dfsthis) loops; + } + else if toporest ? cycle then + # there's a cycle somewhere else in the graph, return it + toporest + # Slow, but short. Can be made a bit faster with an explicit stack. + else + # there are no cycles + { result = [ dfsthis.minimal ] ++ toporest.result; }; /** Sort a list based on a comparator function which compares two @@ -1288,7 +1287,6 @@ rec { sortOn f == sort (p: q: f p < f q) ``` - # Inputs `f` @@ -1316,18 +1314,22 @@ rec { ::: */ - sortOn = f: list: + sortOn = + f: list: let # Heterogenous list as pair may be ugly, but requires minimal allocations. - pairs = map (x: [(f x) x]) list; + pairs = map (x: [ + (f x) + x + ]) list; in - map - (x: builtins.elemAt x 1) - (sort - # Compare the first element of the pairs - # Do not factor out the `<`, to avoid calls in hot code; duplicate instead. - (a: b: head a < head b) - pairs); + map (x: builtins.elemAt x 1) ( + sort + # Compare the first element of the pairs + # Do not factor out the `<`, to avoid calls in hot code; duplicate instead. + (a: b: head a < head b) + pairs + ); /** Compare two lists element-by-element. @@ -1346,7 +1348,6 @@ rec { : 3\. Function argument - # Examples :::{.example} ## `lib.lists.compareLists` usage example @@ -1364,30 +1365,28 @@ rec { ::: */ - compareLists = cmp: a: b: - if a == [] - then if b == [] - then 0 - else -1 - else if b == [] - then 1 - else let rel = cmp (head a) (head b); in - if rel == 0 - then compareLists cmp (tail a) (tail b) - else rel; + compareLists = + cmp: a: b: + if a == [ ] then + if b == [ ] then 0 else -1 + else if b == [ ] then + 1 + else + let + rel = cmp (head a) (head b); + in + if rel == 0 then compareLists cmp (tail a) (tail b) else rel; /** Sort list using "Natural sorting". Numeric portions of strings are sorted in numeric order. - # Inputs `lst` : 1\. Function argument - # Examples :::{.example} ## `lib.lists.naturalSort` usage example @@ -1403,18 +1402,21 @@ rec { ::: */ - naturalSort = lst: + naturalSort = + lst: let vectorise = s: map (x: if isList x then toInt (head x) else x) (builtins.split "(0|[1-9][0-9]*)" s); - prepared = map (x: [ (vectorise x) x ]) lst; # remember vectorised version for O(n) regex splits + prepared = map (x: [ + (vectorise x) + x + ]) lst; # remember vectorised version for O(n) regex splits less = a: b: (compareLists compare (head a) (head b)) < 0; in - map (x: elemAt x 1) (sort less prepared); + map (x: elemAt x 1) (sort less prepared); /** Return the first (at most) N elements of a list. - # Inputs `count` @@ -1444,13 +1446,11 @@ rec { ::: */ - take = - count: sublist 0 count; + take = count: sublist 0 count; /** Remove the first (at most) N elements of a list. - # Inputs `count` @@ -1480,14 +1480,11 @@ rec { ::: */ - drop = - count: - list: sublist count (length list) list; + drop = count: list: sublist count (length list) list; /** Whether the first list is a prefix of the second list. - # Inputs `list1` @@ -1517,10 +1514,7 @@ rec { ::: */ - hasPrefix = - list1: - list2: - take (length list1) list2 == list1; + hasPrefix = list1: list2: take (length list1) list2 == list1; /** Remove the first list as a prefix from the second list. @@ -1556,8 +1550,7 @@ rec { ::: */ removePrefix = - list1: - list2: + list1: list2: if hasPrefix list1 list2 then drop (length list1) list2 else @@ -1601,20 +1594,22 @@ rec { ::: */ sublist = - start: - count: - list: - let len = length list; in - genList - (n: elemAt list (n + start)) - (if start >= len then 0 - else if start + count > len then len - start - else count); + start: count: list: + let + len = length list; + in + genList (n: elemAt list (n + start)) ( + if start >= len then + 0 + else if start + count > len then + len - start + else + count + ); /** The common prefix of two lists. - # Inputs `list1` @@ -1647,8 +1642,7 @@ rec { ::: */ commonPrefix = - list1: - list2: + list1: list2: let # Zip the lists together into a list of booleans whether each element matches matchings = zipListsWith (fst: snd: fst != snd) list1 list2; @@ -1665,7 +1659,6 @@ rec { This function throws an error if the list is empty. - # Inputs `list` @@ -1689,8 +1682,9 @@ rec { ::: */ - last = list: - assert lib.assertMsg (list != []) "lists.last: list must not be empty!"; + last = + list: + assert lib.assertMsg (list != [ ]) "lists.last: list must not be empty!"; elemAt list (length list - 1); /** @@ -1698,7 +1692,6 @@ rec { This function throws an error if the list is empty. - # Inputs `list` @@ -1722,15 +1715,14 @@ rec { ::: */ - init = list: - assert lib.assertMsg (list != []) "lists.init: list must not be empty!"; + init = + list: + assert lib.assertMsg (list != [ ]) "lists.init: list must not be empty!"; take (length list - 1) list; - /** Return the image of the cross product of some lists by a function. - # Examples :::{.example} ## `lib.lists.crossLists` usage example @@ -1748,25 +1740,23 @@ rec { ``` ::: */ - crossLists = warn - ''lib.crossLists is deprecated, use lib.mapCartesianProduct instead. + crossLists = warn '' + lib.crossLists is deprecated, use lib.mapCartesianProduct instead. - For example, the following function call: + For example, the following function call: - nix-repl> lib.crossLists (x: y: x+y) [[1 2] [3 4]] - [ 4 5 5 6 ] + nix-repl> lib.crossLists (x: y: x+y) [[1 2] [3 4]] + [ 4 5 5 6 ] - Can now be replaced by the following one: + Can now be replaced by the following one: - nix-repl> lib.mapCartesianProduct ({x,y}: x+y) { x = [1 2]; y = [3 4]; } - [ 4 5 5 6 ] - '' - (f: foldl (fs: args: concatMap (f: map f args) fs) [f]); + nix-repl> lib.mapCartesianProduct ({x,y}: x+y) { x = [1 2]; y = [3 4]; } + [ 4 5 5 6 ] + '' (f: foldl (fs: args: concatMap (f: map f args) fs) [ f ]); /** Remove duplicate elements from the `list`. O(n^2) complexity. - # Inputs `list` @@ -1790,12 +1780,11 @@ rec { ::: */ - unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) []; + unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ]; /** Check if list contains only unique elements. O(n^2) complexity. - # Inputs `list` @@ -1823,7 +1812,6 @@ rec { */ allUnique = list: (length (unique list) == length list); - /** Intersects list 'list1' and another list (`list2`). @@ -1839,7 +1827,6 @@ rec { : Second list - # Examples :::{.example} ## `lib.lists.intersectLists` usage example @@ -1868,7 +1855,6 @@ rec { : Second list - # Examples :::{.example} ## `lib.lists.subtractLists` usage example diff --git a/lib/meta.nix b/lib/meta.nix index 675e191..95cbb9f 100644 --- a/lib/meta.nix +++ b/lib/meta.nix @@ -1,184 +1,218 @@ -/* Some functions for manipulating meta attributes, as well as the - name attribute. */ +/* + Some functions for manipulating meta attributes, as well as the + name attribute. +*/ { lib }: let - inherit (lib) matchAttrs any all isDerivation getBin assertMsg; + inherit (lib) + matchAttrs + any + all + isDerivation + getBin + assertMsg + ; inherit (builtins) isString match typeOf; in rec { + /* + Add to or override the meta attributes of the given + derivation. - /* Add to or override the meta attributes of the given - derivation. - - Example: - addMetaAttrs {description = "Bla blah";} somePkg + Example: + addMetaAttrs {description = "Bla blah";} somePkg */ - addMetaAttrs = newAttrs: drv: - drv // { meta = (drv.meta or {}) // newAttrs; }; + addMetaAttrs = newAttrs: drv: drv // { meta = (drv.meta or { }) // newAttrs; }; + # Disable Hydra builds of given derivation. + dontDistribute = drv: addMetaAttrs { hydraPlatforms = [ ]; } drv; - /* Disable Hydra builds of given derivation. + /* + Change the symbolic name of a package for presentation purposes + (i.e., so that nix-env users can tell them apart). */ - dontDistribute = drv: addMetaAttrs { hydraPlatforms = []; } drv; + setName = name: drv: drv // { inherit name; }; + /* + Like `setName`, but takes the previous name as an argument. - /* Change the symbolic name of a package for presentation purposes - (i.e., so that nix-env users can tell them apart). + Example: + updateName (oldName: oldName + "-experimental") somePkg */ - setName = name: drv: drv // {inherit name;}; + updateName = updater: drv: drv // { name = updater (drv.name); }; - - /* Like `setName`, but takes the previous name as an argument. - - Example: - updateName (oldName: oldName + "-experimental") somePkg + /* + Append a suffix to the name of a package (before the version + part). */ - updateName = updater: drv: drv // {name = updater (drv.name);}; + appendToName = + suffix: + updateName ( + name: + let + x = builtins.parseDrvName name; + in + "${x.name}-${suffix}-${x.version}" + ); + # Apply a function to each derivation and only to derivations in an attrset. + mapDerivationAttrset = + f: set: lib.mapAttrs (name: pkg: if lib.isDerivation pkg then (f pkg) else pkg) set; - /* Append a suffix to the name of a package (before the version - part). */ - appendToName = suffix: updateName (name: - let x = builtins.parseDrvName name; in "${x.name}-${suffix}-${x.version}"); - - - /* Apply a function to each derivation and only to derivations in an attrset. - */ - mapDerivationAttrset = f: set: lib.mapAttrs (name: pkg: if lib.isDerivation pkg then (f pkg) else pkg) set; - - /* Set the nix-env priority of the package. - */ + # Set the nix-env priority of the package. setPrio = priority: addMetaAttrs { inherit priority; }; - /* Decrease the nix-env priority of the package, i.e., other - versions/variants of the package will be preferred. + /* + Decrease the nix-env priority of the package, i.e., other + versions/variants of the package will be preferred. */ lowPrio = setPrio 10; - /* Apply lowPrio to an attrset with derivations - */ + # Apply lowPrio to an attrset with derivations lowPrioSet = set: mapDerivationAttrset lowPrio set; - - /* Increase the nix-env priority of the package, i.e., this - version/variant of the package will be preferred. + /* + Increase the nix-env priority of the package, i.e., this + version/variant of the package will be preferred. */ hiPrio = setPrio (-10); - /* Apply hiPrio to an attrset with derivations - */ + # Apply hiPrio to an attrset with derivations hiPrioSet = set: mapDerivationAttrset hiPrio set; + /* + Check to see if a platform is matched by the given `meta.platforms` + element. - /* Check to see if a platform is matched by the given `meta.platforms` - element. + A `meta.platform` pattern is either - A `meta.platform` pattern is either + 1. (legacy) a system string. - 1. (legacy) a system string. + 2. (modern) a pattern for the entire platform structure (see `lib.systems.inspect.platformPatterns`). - 2. (modern) a pattern for the entire platform structure (see `lib.systems.inspect.platformPatterns`). + 3. (modern) a pattern for the platform `parsed` field (see `lib.systems.inspect.patterns`). - 3. (modern) a pattern for the platform `parsed` field (see `lib.systems.inspect.patterns`). + We can inject these into a pattern for the whole of a structured platform, + and then match that. - We can inject these into a pattern for the whole of a structured platform, - and then match that. + Example: + lib.meta.platformMatch { system = "aarch64-darwin"; } "aarch64-darwin" + => true + */ + platformMatch = + platform: elem: + ( + # Check with simple string comparison if elem was a string. + # + # The majority of comparisons done with this function will be against meta.platforms + # which contains a simple platform string. + # + # Avoiding an attrset allocation results in significant performance gains (~2-30) across the board in OfBorg + # because this is a hot path for nixpkgs. + if isString elem then + platform ? system && elem == platform.system + else + matchAttrs ( + # Normalize platform attrset. + if elem ? parsed then elem else { parsed = elem; } + ) platform + ); - Example: - lib.meta.platformMatch { system = "aarch64-darwin"; } "aarch64-darwin" + /* + Check if a package is available on a given platform. + + A package is available on a platform if both + + 1. One of `meta.platforms` pattern matches the given + platform, or `meta.platforms` is not present. + + 2. None of `meta.badPlatforms` pattern matches the given platform. + + Example: + lib.meta.availableOn { system = "aarch64-darwin"; } pkg.zsh => true */ - platformMatch = platform: elem: ( - # Check with simple string comparison if elem was a string. - # - # The majority of comparisons done with this function will be against meta.platforms - # which contains a simple platform string. - # - # Avoiding an attrset allocation results in significant performance gains (~2-30) across the board in OfBorg - # because this is a hot path for nixpkgs. - if isString elem then platform ? system && elem == platform.system - else matchAttrs ( - # Normalize platform attrset. - if elem ? parsed then elem - else { parsed = elem; } - ) platform - ); + availableOn = + platform: pkg: + ((!pkg ? meta.platforms) || any (platformMatch platform) pkg.meta.platforms) + && all (elem: !platformMatch platform elem) (pkg.meta.badPlatforms or [ ]); - /* Check if a package is available on a given platform. + /* + Get the corresponding attribute in lib.licenses + from the SPDX ID. + For SPDX IDs, see + https://spdx.org/licenses - A package is available on a platform if both + Type: + getLicenseFromSpdxId :: str -> AttrSet - 1. One of `meta.platforms` pattern matches the given - platform, or `meta.platforms` is not present. - - 2. None of `meta.badPlatforms` pattern matches the given platform. - - Example: - lib.meta.availableOn { system = "aarch64-darwin"; } pkg.zsh - => true - */ - availableOn = platform: pkg: - ((!pkg?meta.platforms) || any (platformMatch platform) pkg.meta.platforms) && - all (elem: !platformMatch platform elem) (pkg.meta.badPlatforms or []); - - /* Get the corresponding attribute in lib.licenses - from the SPDX ID. - For SPDX IDs, see - https://spdx.org/licenses - - Type: - getLicenseFromSpdxId :: str -> AttrSet - - Example: - lib.getLicenseFromSpdxId "MIT" == lib.licenses.mit - => true - lib.getLicenseFromSpdxId "mIt" == lib.licenses.mit - => true - lib.getLicenseFromSpdxId "MY LICENSE" - => trace: warning: getLicenseFromSpdxId: No license matches the given SPDX ID: MY LICENSE - => { shortName = "MY LICENSE"; } + Example: + lib.getLicenseFromSpdxId "MIT" == lib.licenses.mit + => true + lib.getLicenseFromSpdxId "mIt" == lib.licenses.mit + => true + lib.getLicenseFromSpdxId "MY LICENSE" + => trace: warning: getLicenseFromSpdxId: No license matches the given SPDX ID: MY LICENSE + => { shortName = "MY LICENSE"; } */ getLicenseFromSpdxId = let - spdxLicenses = lib.mapAttrs (id: ls: assert lib.length ls == 1; builtins.head ls) - (lib.groupBy (l: lib.toLower l.spdxId) (lib.filter (l: l ? spdxId) (lib.attrValues lib.licenses))); - in licstr: - spdxLicenses.${ lib.toLower licstr } or ( - lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}" - { shortName = licstr; } - ); + spdxLicenses = + lib.mapAttrs + ( + id: ls: + assert lib.length ls == 1; + builtins.head ls + ) + (lib.groupBy (l: lib.toLower l.spdxId) (lib.filter (l: l ? spdxId) (lib.attrValues lib.licenses))); + in + licstr: + spdxLicenses.${lib.toLower licstr} + or (lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}" { + shortName = licstr; + }); - /* Get the path to the main program of a package based on meta.mainProgram + /* + Get the path to the main program of a package based on meta.mainProgram - Type: getExe :: package -> string + Type: getExe :: package -> string - Example: - getExe pkgs.hello - => "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello" - getExe pkgs.mustache-go - => "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache" + Example: + getExe pkgs.hello + => "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello" + getExe pkgs.mustache-go + => "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache" */ - getExe = x: getExe' x (x.meta.mainProgram or ( - # This could be turned into an error when 23.05 is at end of life - lib.warn "getExe: Package ${lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name} does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, use getExe' to specify the name to the program, such as lib.getExe' foo \"bar\"." - lib.getName - x - )); + getExe = + x: + getExe' x ( + x.meta.mainProgram or ( + # This could be turned into an error when 23.05 is at end of life + lib.warn + "getExe: Package ${ + lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name + } does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, use getExe' to specify the name to the program, such as lib.getExe' foo \"bar\"." + lib.getName + x + ) + ); - /* Get the path of a program of a derivation. + /* + Get the path of a program of a derivation. - Type: getExe' :: derivation -> string -> string - Example: - getExe' pkgs.hello "hello" - => "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello" - getExe' pkgs.imagemagick "convert" - => "/nix/store/5rs48jamq7k6sal98ymj9l4k2bnwq515-imagemagick-7.1.1-15/bin/convert" + Type: getExe' :: derivation -> string -> string + Example: + getExe' pkgs.hello "hello" + => "/nix/store/g124820p9hlv4lj8qplzxw1c44dxaw1k-hello-2.12/bin/hello" + getExe' pkgs.imagemagick "convert" + => "/nix/store/5rs48jamq7k6sal98ymj9l4k2bnwq515-imagemagick-7.1.1-15/bin/convert" */ - getExe' = x: y: + getExe' = + x: y: assert assertMsg (isDerivation x) "lib.meta.getExe': The first argument is of type ${typeOf x}, but it should be a derivation instead."; assert assertMsg (isString y) diff --git a/lib/modules.nix b/lib/modules.nix index 79892f5..dbfe2c1 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -31,7 +31,8 @@ let optionalAttrs optionalString recursiveUpdate - reverseList sort + reverseList + sort setAttrByPath types warnIf @@ -45,61 +46,62 @@ let showOption unknownModule ; - inherit (lib.strings) - isConvertibleWithToString - ; + inherit (lib.strings) isConvertibleWithToString; - showDeclPrefix = loc: decl: prefix: - " - option(s) with prefix `${showOption (loc ++ [prefix])}' in module `${decl._file}'"; - showRawDecls = loc: decls: - concatStringsSep "\n" - (sort (a: b: a < b) - (concatMap - (decl: map - (showDeclPrefix loc decl) - (attrNames decl.options) - ) - decls - )); + showDeclPrefix = + loc: decl: prefix: + " - option(s) with prefix `${showOption (loc ++ [ prefix ])}' in module `${decl._file}'"; + showRawDecls = + loc: decls: + concatStringsSep "\n" ( + sort (a: b: a < b) (concatMap (decl: map (showDeclPrefix loc decl) (attrNames decl.options)) decls) + ); - /* See https://nixos.org/manual/nixpkgs/unstable/#module-system-lib-evalModules - or file://./../doc/module-system/module-system.chapter.md + /* + See https://nixos.org/manual/nixpkgs/unstable/#module-system-lib-evalModules + or file://./../doc/module-system/module-system.chapter.md - !!! Please think twice before adding to this argument list! The more - that is specified here instead of in the modules themselves the harder - it is to transparently move a set of modules to be a submodule of another - config (as the proper arguments need to be replicated at each call to - evalModules) and the less declarative the module set is. */ - evalModules = evalModulesArgs@ - { modules - , prefix ? [] - , # This should only be used for special arguments that need to be evaluated - # when resolving module structure (like in imports). For everything else, - # there's _module.args. If specialArgs.modulesPath is defined it will be - # used as the base path for disabledModules. - specialArgs ? {} - , # `class`: - # A nominal type for modules. When set and non-null, this adds a check to - # make sure that only compatible modules are imported. - class ? null - , # This would be remove in the future, Prefer _module.args option instead. - args ? {} - , # This would be remove in the future, Prefer _module.check option instead. - check ? true - }: + !!! Please think twice before adding to this argument list! The more + that is specified here instead of in the modules themselves the harder + it is to transparently move a set of modules to be a submodule of another + config (as the proper arguments need to be replicated at each call to + evalModules) and the less declarative the module set is. + */ + evalModules = + evalModulesArgs@{ + modules, + prefix ? [ ], + # This should only be used for special arguments that need to be evaluated + # when resolving module structure (like in imports). For everything else, + # there's _module.args. If specialArgs.modulesPath is defined it will be + # used as the base path for disabledModules. + specialArgs ? { }, + # `class`: + # A nominal type for modules. When set and non-null, this adds a check to + # make sure that only compatible modules are imported. + class ? null, + # This would be remove in the future, Prefer _module.args option instead. + args ? { }, + # This would be remove in the future, Prefer _module.check option instead. + check ? true, + }: let - withWarnings = x: - lib.warnIf (evalModulesArgs?args) "The args argument to evalModules is deprecated. Please set config._module.args instead." - lib.warnIf (evalModulesArgs?check) "The check argument to evalModules is deprecated. Please set config._module.check instead." - x; + withWarnings = + x: + lib.warnIf (evalModulesArgs ? args) + "The args argument to evalModules is deprecated. Please set config._module.args instead." + lib.warnIf + (evalModulesArgs ? check) + "The check argument to evalModules is deprecated. Please set config._module.check instead." + x; legacyModules = - optional (evalModulesArgs?args) { + optional (evalModulesArgs ? args) { config = { _module.args = args; }; } - ++ optional (evalModulesArgs?check) { + ++ optional (evalModulesArgs ? check) { config = { _module.check = mkDefault check; }; @@ -130,9 +132,12 @@ let # Only render documentation once at the root of the option tree, # not for all individual submodules. # Allow merging option decls to make this internal regardless. - ${if prefix == [] - then null # unset => visible - else "internal"} = true; + ${ + if prefix == [ ] then + null # unset => visible + else + "internal" + } = true; # TODO: Change the type of this option to a submodule with a # freeformType, so that individual arguments can be documented # separately @@ -226,12 +231,22 @@ let }; merged = - let collected = collectModules - class - (specialArgs.modulesPath or "") - (regularModules ++ [ internalModule ]) - ({ inherit lib options config specialArgs; } // specialArgs); - in mergeModules prefix (reverseList collected); + let + collected = + collectModules class (specialArgs.modulesPath or "") (regularModules ++ [ internalModule ]) + ( + { + inherit + lib + options + config + specialArgs + ; + } + // specialArgs + ); + in + mergeModules prefix (reverseList collected); options = merged.matchedOptions; @@ -239,7 +254,7 @@ let let # For definitions that have an associated option - declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options; + declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; # If freeformType is set, this is for definitions that don't have an associated option freeformConfig = @@ -248,17 +263,20 @@ let file = def.file; value = setAttrByPath def.prefix def.value; }) merged.unmatchedDefns; - in if defs == [] then {} - else declaredConfig._module.freeformType.merge prefix defs; + in + if defs == [ ] then { } else declaredConfig._module.freeformType.merge prefix defs; - in if declaredConfig._module.freeformType == null then declaredConfig - # Because all definitions that had an associated option ended in - # declaredConfig, freeformConfig can only contain the non-option - # paths, meaning recursiveUpdate will never override any value - else recursiveUpdate freeformConfig declaredConfig; + in + if declaredConfig._module.freeformType == null then + declaredConfig + # Because all definitions that had an associated option ended in + # declaredConfig, freeformConfig can only contain the non-option + # paths, meaning recursiveUpdate will never override any value + else + recursiveUpdate freeformConfig declaredConfig; checkUnmatched = - if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then + if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then let firstDef = head merged.unmatchedDefns; baseMsg = @@ -267,54 +285,60 @@ let defText = builtins.addErrorContext "while evaluating the error message for definitions for `${optText}', which is an option that does not exist" - (builtins.addErrorContext - "while evaluating a definition from `${firstDef.file}'" - ( showDefs [ firstDef ]) + ( + builtins.addErrorContext "while evaluating a definition from `${firstDef.file}'" (showDefs [ + firstDef + ]) ); in - "The option `${optText}' does not exist. Definition values:${defText}"; + "The option `${optText}' does not exist. Definition values:${defText}"; in - if attrNames options == [ "_module" ] - # No options were declared at all (`_module` is built in) - # but we do have unmatched definitions, and no freeformType (earlier conditions) - then - let - optionName = showOption prefix; - in - if optionName == "" - then throw '' - ${baseMsg} + if + attrNames options == [ "_module" ] + # No options were declared at all (`_module` is built in) + # but we do have unmatched definitions, and no freeformType (earlier conditions) + then + let + optionName = showOption prefix; + in + if optionName == "" then + throw '' + ${baseMsg} - It seems as if you're trying to declare an option by placing it into `config' rather than `options'! - '' - else - throw '' - ${baseMsg} + It seems as if you're trying to declare an option by placing it into `config' rather than `options'! + '' + else + throw '' + ${baseMsg} - However there are no options defined in `${showOption prefix}'. Are you sure you've - declared your options properly? This can happen if you e.g. declared your options in `types.submodule' - under `config' rather than `options'. - '' - else throw baseMsg - else null; + However there are no options defined in `${showOption prefix}'. Are you sure you've + declared your options properly? This can happen if you e.g. declared your options in `types.submodule' + under `config' rather than `options'. + '' + else + throw baseMsg + else + null; checked = builtins.seq checkUnmatched; - extendModules = extendArgs@{ - modules ? [], - specialArgs ? {}, - prefix ? [], + extendModules = + extendArgs@{ + modules ? [ ], + specialArgs ? { }, + prefix ? [ ], }: - evalModules (evalModulesArgs // { + evalModules ( + evalModulesArgs + // { inherit class; modules = regularModules ++ modules; - specialArgs = evalModulesArgs.specialArgs or {} // specialArgs; - prefix = extendArgs.prefix or evalModulesArgs.prefix or []; - }); + specialArgs = evalModulesArgs.specialArgs or { } // specialArgs; + prefix = extendArgs.prefix or evalModulesArgs.prefix or [ ]; + } + ); - type = lib.types.submoduleWith { - inherit modules specialArgs class; - }; + type = lib.types.submoduleWith { inherit modules specialArgs class; }; result = withWarnings { _type = "configuration"; @@ -324,16 +348,20 @@ let inherit extendModules type; class = class; }; - in result; + in + result; # collectModules :: (class: String) -> (modulesPath: String) -> (modules: [ Module ]) -> (args: Attrs) -> [ Module ] # # Collects all modules recursively through `import` statements, filtering out # all modules in disabledModules. - collectModules = class: let + collectModules = + class: + let # Like unifyModuleSyntax, but also imports paths and calls functions if necessary - loadModule = args: fallbackFile: fallbackKey: m: + loadModule = + args: fallbackFile: fallbackKey: m: if isFunction m then unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args) else if isAttrs m then @@ -345,49 +373,60 @@ let throw ( "Could not load a value as a module, because it is of type ${lib.strings.escapeNixString m._type}" + lib.optionalString (fallbackFile != unknownModule) ", in file ${toString fallbackFile}." - + lib.optionalString (m._type == "configuration") " If you do intend to import this configuration, please only import the modules that make up the configuration. You may have to create a `let` binding, file or attribute to give yourself access to the relevant modules.\nWhile loading a configuration into the module system is a very sensible idea, it can not be done cleanly in practice." - # Extended explanation: That's because a finalized configuration is more than just a set of modules. For instance, it has its own `specialArgs` that, by the nature of `specialArgs` can't be loaded through `imports` or the the `modules` argument. So instead, we have to ask you to extract the relevant modules and use those instead. This way, we keep the module system comparatively simple, and hopefully avoid a bad surprise down the line. + + + lib.optionalString (m._type == "configuration") + " If you do intend to import this configuration, please only import the modules that make up the configuration. You may have to create a `let` binding, file or attribute to give yourself access to the relevant modules.\nWhile loading a configuration into the module system is a very sensible idea, it can not be done cleanly in practice." + # Extended explanation: That's because a finalized configuration is more than just a set of modules. For instance, it has its own `specialArgs` that, by the nature of `specialArgs` can't be loaded through `imports` or the the `modules` argument. So instead, we have to ask you to extract the relevant modules and use those instead. This way, we keep the module system comparatively simple, and hopefully avoid a bad surprise down the line. ) else if isList m then - let defs = [{ file = fallbackFile; value = m; }]; in + let + defs = [ + { + file = fallbackFile; + value = m; + } + ]; + in throw "Module imports can't be nested lists. Perhaps you meant to remove one level of lists? Definitions: ${showDefs defs}" - else unifyModuleSyntax (toString m) (toString m) (applyModuleArgsIfFunction (toString m) (import m) args); + else + unifyModuleSyntax (toString m) (toString m) ( + applyModuleArgsIfFunction (toString m) (import m) args + ); checkModule = - if class != null - then + if class != null then m: - if m._class != null -> m._class == class - then m - else - throw "The module ${m._file or m.key} was imported into ${class} instead of ${m._class}." + if m._class != null -> m._class == class then + m + else + throw "The module ${m._file or m.key} was imported into ${class} instead of ${m._class}." else m: m; /* - Collects all modules recursively into the form + Collects all modules recursively into the form - { - disabled = [ ]; - # All modules of the main module list - modules = [ - { - key = ; - module = ; - # All modules imported by the module for key1 - modules = [ - { - key = ; - module = ; - # All modules imported by the module for key1-1 - modules = [ ... ]; - } - ... - ]; - } - ... - ]; - } + { + disabled = [ ]; + # All modules of the main module list + modules = [ + { + key = ; + module = ; + # All modules imported by the module for key1 + modules = [ + { + key = ; + module = ; + # All modules imported by the module for key1-1 + modules = [ ... ]; + } + ... + ]; + } + ... + ]; + } */ collectStructuredModules = let @@ -395,100 +434,175 @@ let disabled = concatLists (catAttrs "disabled" modules); inherit modules; }; - in parentFile: parentKey: initialModules: args: collectResults (imap1 (n: x: - let - module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x); - collectedImports = collectStructuredModules module._file module.key module.imports args; - in { - key = module.key; - module = module; - modules = collectedImports.modules; - disabled = (if module.disabledModules != [] then [{ file = module._file; disabled = module.disabledModules; }] else []) ++ collectedImports.disabled; - }) initialModules); + in + parentFile: parentKey: initialModules: args: + collectResults ( + imap1 ( + n: x: + let + module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x); + collectedImports = collectStructuredModules module._file module.key module.imports args; + in + { + key = module.key; + module = module; + modules = collectedImports.modules; + disabled = + ( + if module.disabledModules != [ ] then + [ + { + file = module._file; + disabled = module.disabledModules; + } + ] + else + [ ] + ) + ++ collectedImports.disabled; + } + ) initialModules + ); # filterModules :: String -> { disabled, modules } -> [ Module ] # # Filters a structure as emitted by collectStructuredModules by removing all disabled # modules recursively. It returns the final list of unique-by-key modules - filterModules = modulesPath: { disabled, modules }: + filterModules = + modulesPath: + { disabled, modules }: let - moduleKey = file: m: - if isString m - then - if builtins.substring 0 1 m == "/" - then m - else toString modulesPath + "/" + m + moduleKey = + file: m: + if isString m then + if builtins.substring 0 1 m == "/" then m else toString modulesPath + "/" + m - else if isConvertibleWithToString m - then - if m?key && m.key != toString m - then + else if isConvertibleWithToString m then + if m ? key && m.key != toString m then throw "Module `${file}` contains a disabledModules item that is an attribute set that can be converted to a string (${toString m}) but also has a `.key` attribute (${m.key}) with a different value. This makes it ambiguous which module should be disabled." else toString m - else if m?key - then + else if m ? key then m.key - else if isAttrs m - then throw "Module `${file}` contains a disabledModules item that is an attribute set, presumably a module, that does not have a `key` attribute. This means that the module system doesn't have any means to identify the module that should be disabled. Make sure that you've put the correct value in disabledModules: a string path relative to modulesPath, a path value, or an attribute set with a `key` attribute." - else throw "Each disabledModules item must be a path, string, or a attribute set with a key attribute, or a value supported by toString. However, one of the disabledModules items in `${toString file}` is none of that, but is of type ${builtins.typeOf m}."; + else if isAttrs m then + throw "Module `${file}` contains a disabledModules item that is an attribute set, presumably a module, that does not have a `key` attribute. This means that the module system doesn't have any means to identify the module that should be disabled. Make sure that you've put the correct value in disabledModules: a string path relative to modulesPath, a path value, or an attribute set with a `key` attribute." + else + throw "Each disabledModules item must be a path, string, or a attribute set with a key attribute, or a value supported by toString. However, one of the disabledModules items in `${toString file}` is none of that, but is of type ${builtins.typeOf m}."; disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled; - keyFilter = filter (attrs: ! elem attrs.key disabledKeys); - in map (attrs: attrs.module) (builtins.genericClosure { - startSet = keyFilter modules; - operator = attrs: keyFilter attrs.modules; - }); + keyFilter = filter (attrs: !elem attrs.key disabledKeys); + in + map (attrs: attrs.module) ( + builtins.genericClosure { + startSet = keyFilter modules; + operator = attrs: keyFilter attrs.modules; + } + ); - in modulesPath: initialModules: args: - filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args); + in + modulesPath: initialModules: args: + filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args); - /* Wrap a module with a default location for reporting errors. */ - setDefaultModuleLocation = file: m: - { _file = file; imports = [ m ]; }; + # Wrap a module with a default location for reporting errors. + setDefaultModuleLocation = file: m: { + _file = file; + imports = [ m ]; + }; - /* Massage a module into canonical form, that is, a set consisting - of ‘options’, ‘config’ and ‘imports’ attributes. */ - unifyModuleSyntax = file: key: m: + /* + Massage a module into canonical form, that is, a set consisting + of ‘options’, ‘config’ and ‘imports’ attributes. + */ + unifyModuleSyntax = + file: key: m: let - addMeta = config: if m ? meta - then mkMerge [ config { meta = m.meta; } ] - else config; - addFreeformType = config: if m ? freeformType - then mkMerge [ config { _module.freeformType = m.freeformType; } ] - else config; + addMeta = + config: + if m ? meta then + mkMerge [ + config + { meta = m.meta; } + ] + else + config; + addFreeformType = + config: + if m ? freeformType then + mkMerge [ + config + { _module.freeformType = m.freeformType; } + ] + else + config; in if m ? config || m ? options then - let badAttrs = removeAttrs m ["_class" "_file" "key" "disabledModules" "imports" "options" "config" "meta" "freeformType"]; in - if badAttrs != {} then + let + badAttrs = removeAttrs m [ + "_class" + "_file" + "key" + "disabledModules" + "imports" + "options" + "config" + "meta" + "freeformType" + ]; + in + if badAttrs != { } then throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute." else - { _file = toString m._file or file; + { + _file = toString m._file or file; _class = m._class or null; key = toString m.key or key; - disabledModules = m.disabledModules or []; - imports = m.imports or []; - options = m.options or {}; - config = addFreeformType (addMeta (m.config or {})); + disabledModules = m.disabledModules or [ ]; + imports = m.imports or [ ]; + options = m.options or { }; + config = addFreeformType (addMeta (m.config or { })); } else # shorthand syntax - lib.throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module." - { _file = toString m._file or file; + lib.throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module." { + _file = toString m._file or file; _class = m._class or null; key = toString m.key or key; - disabledModules = m.disabledModules or []; - imports = m.require or [] ++ m.imports or []; - options = {}; - config = addFreeformType (removeAttrs m ["_class" "_file" "key" "disabledModules" "require" "imports" "freeformType"]); + disabledModules = m.disabledModules or [ ]; + imports = m.require or [ ] ++ m.imports or [ ]; + options = { }; + config = addFreeformType ( + removeAttrs m [ + "_class" + "_file" + "key" + "disabledModules" + "require" + "imports" + "freeformType" + ] + ); }; - applyModuleArgsIfFunction = key: f: args@{ config, options, lib, ... }: + applyModuleArgsIfFunction = + key: f: + args@{ + config, + options, + lib, + ... + }: if isFunction f then applyModuleArgs key f args else f; - applyModuleArgs = key: f: args@{ config, options, lib, ... }: + applyModuleArgs = + key: f: + args@{ + config, + options, + lib, + ... + }: let # Module arguments are resolved in a strict manner when attribute set # deconstruction is used. As the arguments are now defined with the @@ -503,118 +617,132 @@ let # not their values. The values are forwarding the result of the # evaluation of the option. context = name: ''while evaluating the module argument `${name}' in "${key}":''; - extraArgs = builtins.mapAttrs (name: _: - builtins.addErrorContext (context name) - (args.${name} or config._module.args.${name}) + extraArgs = builtins.mapAttrs ( + name: _: builtins.addErrorContext (context name) (args.${name} or config._module.args.${name}) ) (lib.functionArgs f); - # Note: we append in the opposite order such that we can add an error - # context on the explicit arguments of "args" too. This update - # operator is used to make the "args@{ ... }: with args.lib;" notation - # works. - in f (args // extraArgs); + in + # Note: we append in the opposite order such that we can add an error + # context on the explicit arguments of "args" too. This update + # operator is used to make the "args@{ ... }: with args.lib;" notation + # works. + f (args // extraArgs); - /* Merge a list of modules. This will recurse over the option - declarations in all modules, combining them into a single set. - At the same time, for each option declaration, it will merge the - corresponding option definitions in all machines, returning them - in the ‘value’ attribute of each option. + /* + Merge a list of modules. This will recurse over the option + declarations in all modules, combining them into a single set. + At the same time, for each option declaration, it will merge the + corresponding option definitions in all machines, returning them + in the ‘value’ attribute of each option. - This returns a set like - { - # A recursive set of options along with their final values - matchedOptions = { - foo = { _type = "option"; value = "option value of foo"; ... }; - bar.baz = { _type = "option"; value = "option value of bar.baz"; ... }; - ... - }; - # A list of definitions that weren't matched by any option - unmatchedDefns = [ - { file = "file.nix"; prefix = [ "qux" ]; value = "qux"; } - ... - ]; - } + This returns a set like + { + # A recursive set of options along with their final values + matchedOptions = { + foo = { _type = "option"; value = "option value of foo"; ... }; + bar.baz = { _type = "option"; value = "option value of bar.baz"; ... }; + ... + }; + # A list of definitions that weren't matched by any option + unmatchedDefns = [ + { file = "file.nix"; prefix = [ "qux" ]; value = "qux"; } + ... + ]; + } */ - mergeModules = prefix: modules: - mergeModules' prefix modules - (concatMap (m: map (config: { file = m._file; inherit config; }) (pushDownProperties m.config)) modules); + mergeModules = + prefix: modules: + mergeModules' prefix modules ( + concatMap ( + m: + map (config: { + file = m._file; + inherit config; + }) (pushDownProperties m.config) + ) modules + ); - mergeModules' = prefix: modules: configs: + mergeModules' = + prefix: modules: configs: let # an attrset 'name' => list of submodules that declare ‘name’. - declsByName = - zipAttrsWith - (n: concatLists) - (map - (module: let subtree = module.options; in - if !(builtins.isAttrs subtree) then - throw '' - An option declaration for `${builtins.concatStringsSep "." prefix}' has type - `${builtins.typeOf subtree}' rather than an attribute set. - Did you mean to define this outside of `options'? - '' - else - mapAttrs - (n: option: - [{ inherit (module) _file; pos = builtins.unsafeGetAttrPos n subtree; options = option; }] - ) - subtree - ) - modules); + declsByName = zipAttrsWith (n: concatLists) ( + map ( + module: + let + subtree = module.options; + in + if !(builtins.isAttrs subtree) then + throw '' + An option declaration for `${builtins.concatStringsSep "." prefix}' has type + `${builtins.typeOf subtree}' rather than an attribute set. + Did you mean to define this outside of `options'? + '' + else + mapAttrs (n: option: [ + { + inherit (module) _file; + pos = builtins.unsafeGetAttrPos n subtree; + options = option; + } + ]) subtree + ) modules + ); # The root of any module definition must be an attrset. checkedConfigs = - assert - lib.all - (c: - # TODO: I have my doubts that this error would occur when option definitions are not matched. - # The implementation of this check used to be tied to a superficially similar check for - # options, so maybe that's why this is here. - isAttrs c.config || throw '' - In module `${c.file}', you're trying to define a value of type `${builtins.typeOf c.config}' - rather than an attribute set for the option - `${builtins.concatStringsSep "." prefix}'! + assert lib.all ( + c: + # TODO: I have my doubts that this error would occur when option definitions are not matched. + # The implementation of this check used to be tied to a superficially similar check for + # options, so maybe that's why this is here. + isAttrs c.config + || throw '' + In module `${c.file}', you're trying to define a value of type `${builtins.typeOf c.config}' + rather than an attribute set for the option + `${builtins.concatStringsSep "." prefix}'! - This usually happens if `${builtins.concatStringsSep "." prefix}' has option - definitions inside that are not matched. Please check how to properly define - this option by e.g. referring to `man 5 configuration.nix'! - '' - ) - configs; + This usually happens if `${builtins.concatStringsSep "." prefix}' has option + definitions inside that are not matched. Please check how to properly define + this option by e.g. referring to `man 5 configuration.nix'! + '' + ) configs; configs; # an attrset 'name' => list of submodules that define ‘name’. - pushedDownDefinitionsByName = - zipAttrsWith - (n: concatLists) - (map - (module: - mapAttrs - (n: value: - map (config: { inherit (module) file; inherit config; }) (pushDownProperties value) - ) - module.config - ) - checkedConfigs); + pushedDownDefinitionsByName = zipAttrsWith (n: concatLists) ( + map ( + module: + mapAttrs ( + n: value: + map (config: { + inherit (module) file; + inherit config; + }) (pushDownProperties value) + ) module.config + ) checkedConfigs + ); # extract the definitions for each loc - rawDefinitionsByName = - zipAttrsWith - (n: concatLists) - (map - (module: - mapAttrs - (n: value: - [{ inherit (module) file; inherit value; }] - ) - module.config - ) - checkedConfigs); + rawDefinitionsByName = zipAttrsWith (n: concatLists) ( + map ( + module: + mapAttrs (n: value: [ + { + inherit (module) file; + inherit value; + } + ]) module.config + ) checkedConfigs + ); # Convert an option tree decl to a submodule option decl - optionTreeToOption = decl: - if isOption decl.options - then decl - else decl // { + optionTreeToOption = + decl: + if isOption decl.options then + decl + else + decl + // { options = mkOption { type = types.submoduleWith { modules = [ { options = decl.options; } ]; @@ -626,52 +754,57 @@ let }; }; - resultsByName = mapAttrs (name: decls: + resultsByName = mapAttrs ( + name: decls: # We're descending into attribute ‘name’. let - loc = prefix ++ [name]; - defns = pushedDownDefinitionsByName.${name} or []; - defns' = rawDefinitionsByName.${name} or []; - optionDecls = filter - (m: m.options?_type - && (m.options._type == "option" - || throwDeclarationTypeError loc m.options._type m._file - ) - ) - decls; + loc = prefix ++ [ name ]; + defns = pushedDownDefinitionsByName.${name} or [ ]; + defns' = rawDefinitionsByName.${name} or [ ]; + optionDecls = filter ( + m: + m.options ? _type + && (m.options._type == "option" || throwDeclarationTypeError loc m.options._type m._file) + ) decls; in - if length optionDecls == length decls then - let opt = fixupOptionType loc (mergeOptionDecls loc decls); - in { + if length optionDecls == length decls then + let + opt = fixupOptionType loc (mergeOptionDecls loc decls); + in + { + matchedOptions = evalOptionValue loc opt defns'; + unmatchedDefns = [ ]; + } + else if optionDecls != [ ] then + if + all (x: x.options.type.name or null == "submodule") optionDecls + # Raw options can only be merged into submodules. Merging into + # attrsets might be nice, but ambiguous. Suppose we have + # attrset as a `attrsOf submodule`. User declares option + # attrset.foo.bar, this could mean: + # a. option `bar` is only available in `attrset.foo` + # b. option `foo.bar` is available in all `attrset.*` + # c. reject and require "" as a reminder that it behaves like (b). + # d. magically combine (a) and (c). + # All of the above are merely syntax sugar though. + then + let + opt = fixupOptionType loc (mergeOptionDecls loc (map optionTreeToOption decls)); + in + { matchedOptions = evalOptionValue loc opt defns'; - unmatchedDefns = []; + unmatchedDefns = [ ]; } - else if optionDecls != [] then - if all (x: x.options.type.name or null == "submodule") optionDecls - # Raw options can only be merged into submodules. Merging into - # attrsets might be nice, but ambiguous. Suppose we have - # attrset as a `attrsOf submodule`. User declares option - # attrset.foo.bar, this could mean: - # a. option `bar` is only available in `attrset.foo` - # b. option `foo.bar` is available in all `attrset.*` - # c. reject and require "" as a reminder that it behaves like (b). - # d. magically combine (a) and (c). - # All of the above are merely syntax sugar though. - then - let opt = fixupOptionType loc (mergeOptionDecls loc (map optionTreeToOption decls)); - in { - matchedOptions = evalOptionValue loc opt defns'; - unmatchedDefns = []; - } - else - let - nonOptions = filter (m: !isOption m.options) decls; - in - throw "The option `${showOption loc}' in module `${(lib.head optionDecls)._file}' would be a parent of the following options, but its type `${(lib.head optionDecls).options.type.description or ""}' does not support nested options.\n${ - showRawDecls loc nonOptions - }" else - mergeModules' loc decls defns) declsByName; + let + nonOptions = filter (m: !isOption m.options) decls; + in + throw "The option `${showOption loc}' in module `${(lib.head optionDecls)._file}' would be a parent of the following options, but its type `${ + (lib.head optionDecls).options.type.description or "" + }' does not support nested options.\n${showRawDecls loc nonOptions}" + else + mergeModules' loc decls defns + ) declsByName; matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName; @@ -681,34 +814,44 @@ let mapAttrs (n: v: v.unmatchedDefns) resultsByName # Plus the definitions for the current prefix that don't have a matching option // removeAttrs rawDefinitionsByName (attrNames matchedOptions); - in { + in + { inherit matchedOptions; # Transforms unmatchedDefnsByName into a list of definitions unmatchedDefns = - if configs == [] - then + if configs == [ ] then # When no config values exist, there can be no unmatched config, so # we short circuit and avoid evaluating more _options_ than necessary. - [] + [ ] else - concatLists (mapAttrsToList (name: defs: - map (def: def // { - # Set this so we know when the definition first left unmatched territory - prefix = [name] ++ (def.prefix or []); - }) defs - ) unmatchedDefnsByName); + concatLists ( + mapAttrsToList ( + name: defs: + map ( + def: + def + // { + # Set this so we know when the definition first left unmatched territory + prefix = [ name ] ++ (def.prefix or [ ]); + } + ) defs + ) unmatchedDefnsByName + ); }; - throwDeclarationTypeError = loc: actualTag: file: + throwDeclarationTypeError = + loc: actualTag: file: let name = lib.strings.escapeNixIdentifier (lib.lists.last loc); path = showOption loc; depth = length loc; - paragraphs = [ - "In module ${file}: expected an option declaration at option path `${path}` but got an attribute set with type ${actualTag}" - ] ++ optional (actualTag == "option-type") '' + paragraphs = + [ + "In module ${file}: expected an option declaration at option path `${path}` but got an attribute set with type ${actualTag}" + ] + ++ optional (actualTag == "option-type") '' When declaring an option, you must wrap the type in a `mkOption` call. It should look somewhat like: ${comment} ${name} = lib.mkOption { @@ -726,63 +869,96 @@ let in throw (concatStringsSep "\n\n" paragraphs); - /* Merge multiple option declarations into a single declaration. In - general, there should be only one declaration of each option. - The exception is the ‘options’ attribute, which specifies - sub-options. These can be specified multiple times to allow one - module to add sub-options to an option declared somewhere else - (e.g. multiple modules define sub-options for ‘fileSystems’). + /* + Merge multiple option declarations into a single declaration. In + general, there should be only one declaration of each option. + The exception is the ‘options’ attribute, which specifies + sub-options. These can be specified multiple times to allow one + module to add sub-options to an option declared somewhere else + (e.g. multiple modules define sub-options for ‘fileSystems’). - 'loc' is the list of attribute names where the option is located. + 'loc' is the list of attribute names where the option is located. - 'opts' is a list of modules. Each module has an options attribute which - correspond to the definition of 'loc' in 'opt.file'. */ + 'opts' is a list of modules. Each module has an options attribute which + correspond to the definition of 'loc' in 'opt.file'. + */ mergeOptionDecls = - loc: opts: - foldl' (res: opt: - let t = res.type; + loc: opts: + foldl' + ( + res: opt: + let + t = res.type; t' = opt.options.type; mergedType = t.typeMerge t'.functor; typesMergeable = mergedType != null; - typeSet = if (bothHave "type") && typesMergeable - then { type = mergedType; } - else {}; + typeSet = if (bothHave "type") && typesMergeable then { type = mergedType; } else { }; bothHave = k: opt.options ? ${k} && res ? ${k}; - in - if bothHave "default" || - bothHave "example" || - bothHave "description" || - bothHave "apply" || - (bothHave "type" && (! typesMergeable)) - then - throw "The option `${showOption loc}' in `${opt._file}' is already declared in ${showFiles res.declarations}." - else - let - getSubModules = opt.options.type.getSubModules or null; - submodules = - if getSubModules != null then map (setDefaultModuleLocation opt._file) getSubModules ++ res.options - else res.options; - in opt.options // res // - { declarations = res.declarations ++ [opt._file]; + in + if + bothHave "default" + || bothHave "example" + || bothHave "description" + || bothHave "apply" + || (bothHave "type" && (!typesMergeable)) + then + throw "The option `${showOption loc}' in `${opt._file}' is already declared in ${showFiles res.declarations}." + else + let + getSubModules = opt.options.type.getSubModules or null; + submodules = + if getSubModules != null then + map (setDefaultModuleLocation opt._file) getSubModules ++ res.options + else + res.options; + in + opt.options + // res + // { + declarations = res.declarations ++ [ opt._file ]; # In the case of modules that are generated dynamically, we won't # have exact declaration lines; fall back to just the file being # evaluated. - declarationPositions = res.declarationPositions - ++ (if opt.pos != null - then [opt.pos] - else [{ file = opt._file; line = null; column = null; }]); + declarationPositions = + res.declarationPositions + ++ ( + if opt.pos != null then + [ opt.pos ] + else + [ + { + file = opt._file; + line = null; + column = null; + } + ] + ); options = submodules; - } // typeSet - ) { inherit loc; declarations = []; declarationPositions = []; options = []; } opts; + } + // typeSet + ) + { + inherit loc; + declarations = [ ]; + declarationPositions = [ ]; + options = [ ]; + } + opts; - /* Merge all the definitions of an option to produce the final - config value. */ - evalOptionValue = loc: opt: defs: + /* + Merge all the definitions of an option to produce the final + config value. + */ + evalOptionValue = + loc: opt: defs: let # Add in the default value for this option, if any. defs' = - (optional (opt ? default) - { file = head opt.declarations; value = mkOptionDefault opt.default; }) ++ defs; + (optional (opt ? default) { + file = head opt.declarations; + value = mkOptionDefault opt.default; + }) + ++ defs; # Handle properties, check types, and merge everything together. res = @@ -790,10 +966,11 @@ let let # For a better error message, evaluate all readOnly definitions as # if they were the only definition. - separateDefs = map (def: def // { - value = (mergeDefinitions loc opt.type [ def ]).mergedValue; - }) defs'; - in throw "The option `${showOption loc}' is read-only, but it's set multiple times. Definition values:${showDefs separateDefs}" + separateDefs = map ( + def: def // { value = (mergeDefinitions loc opt.type [ def ]).mergedValue; } + ) defs'; + in + throw "The option `${showOption loc}' is read-only, but it's set multiple times. Definition values:${showDefs separateDefs}" else mergeDefinitions loc opt.type defs'; @@ -805,24 +982,36 @@ let warnIf (opt.type.deprecationMessage != null) "The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}"; - in warnDeprecation opt // - { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value; - inherit (res.defsFinal') highestPrio; - definitions = map (def: def.value) res.defsFinal; - files = map (def: def.file) res.defsFinal; - definitionsWithLocations = res.defsFinal; - inherit (res) isDefined; - # This allows options to be correctly displayed using `${options.path.to.it}` - __toString = _: showOption loc; - }; + in + warnDeprecation opt + // { + value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value; + inherit (res.defsFinal') highestPrio; + definitions = map (def: def.value) res.defsFinal; + files = map (def: def.file) res.defsFinal; + definitionsWithLocations = res.defsFinal; + inherit (res) isDefined; + # This allows options to be correctly displayed using `${options.path.to.it}` + __toString = _: showOption loc; + }; # Merge definitions of a value of a given type. mergeDefinitions = loc: type: defs: rec { defsFinal' = let # Process mkMerge and mkIf properties. - defs' = concatMap (m: - map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) + defs' = concatMap ( + m: + map + (value: { + inherit (m) file; + inherit value; + }) + ( + builtins.addErrorContext "while evaluating definitions from `${m.file}':" ( + dischargeProperties m.value + ) + ) ) defs; # Process mkOverride properties. @@ -831,10 +1020,12 @@ let # Sort mkOrder properties. defs''' = # Avoid sorting if we don't have to. - if any (def: def.value._type or "" == "order") defs''.values - then sortProperties defs''.values - else defs''.values; - in { + if any (def: def.value._type or "" == "order") defs''.values then + sortProperties defs''.values + else + defs''.values; + in + { values = defs'''; inherit (defs'') highestPrio; }; @@ -843,122 +1034,146 @@ let # Type-check the remaining definitions, and merge them. Or throw if no definitions. mergedValue = if isDefined then - if all (def: type.check def.value) defsFinal then type.merge loc defsFinal - else let allInvalid = filter (def: ! type.check def.value) defsFinal; - in throw "A definition for option `${showOption loc}' is not of type `${type.description}'. Definition values:${showDefs allInvalid}" + if all (def: type.check def.value) defsFinal then + type.merge loc defsFinal + else + let + allInvalid = filter (def: !type.check def.value) defsFinal; + in + throw "A definition for option `${showOption loc}' is not of type `${type.description}'. Definition values:${showDefs allInvalid}" else # (nixos-option detects this specific error message and gives it special # handling. If changed here, please change it there too.) throw "The option `${showOption loc}' is used but not defined."; - isDefined = defsFinal != []; + isDefined = defsFinal != [ ]; - optionalValue = - if isDefined then { value = mergedValue; } - else {}; + optionalValue = if isDefined then { value = mergedValue; } else { }; }; - /* Given a config set, expand mkMerge properties, and push down the - other properties into the children. The result is a list of - config sets that do not have properties at top-level. For - example, + /* + Given a config set, expand mkMerge properties, and push down the + other properties into the children. The result is a list of + config sets that do not have properties at top-level. For + example, - mkMerge [ { boot = set1; } (mkIf cond { boot = set2; services = set3; }) ] + mkMerge [ { boot = set1; } (mkIf cond { boot = set2; services = set3; }) ] - is transformed into + is transformed into - [ { boot = set1; } { boot = mkIf cond set2; services = mkIf cond set3; } ]. + [ { boot = set1; } { boot = mkIf cond set2; services = mkIf cond set3; } ]. - This transform is the critical step that allows mkIf conditions - to refer to the full configuration without creating an infinite - recursion. + This transform is the critical step that allows mkIf conditions + to refer to the full configuration without creating an infinite + recursion. */ - pushDownProperties = cfg: + pushDownProperties = + cfg: if cfg._type or "" == "merge" then concatMap pushDownProperties cfg.contents else if cfg._type or "" == "if" then map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content) else if cfg._type or "" == "override" then map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content) - else # FIXME: handle mkOrder? + # FIXME: handle mkOrder? + else [ cfg ]; - /* Given a config value, expand mkMerge properties, and discharge - any mkIf conditions. That is, this is the place where mkIf - conditions are actually evaluated. The result is a list of - config values. For example, ‘mkIf false x’ yields ‘[]’, - ‘mkIf true x’ yields ‘[x]’, and + /* + Given a config value, expand mkMerge properties, and discharge + any mkIf conditions. That is, this is the place where mkIf + conditions are actually evaluated. The result is a list of + config values. For example, ‘mkIf false x’ yields ‘[]’, + ‘mkIf true x’ yields ‘[x]’, and - mkMerge [ 1 (mkIf true 2) (mkIf true (mkIf false 3)) ] + mkMerge [ 1 (mkIf true 2) (mkIf true (mkIf false 3)) ] - yields ‘[ 1 2 ]’. + yields ‘[ 1 2 ]’. */ - dischargeProperties = def: + dischargeProperties = + def: if def._type or "" == "merge" then concatMap dischargeProperties def.contents else if def._type or "" == "if" then if isBool def.condition then - if def.condition then - dischargeProperties def.content - else - [ ] + if def.condition then dischargeProperties def.content else [ ] else throw "‘mkIf’ called with a non-Boolean condition" else [ def ]; - /* Given a list of config values, process the mkOverride properties, - that is, return the values that have the highest (that is, - numerically lowest) priority, and strip the mkOverride - properties. For example, + /* + Given a list of config values, process the mkOverride properties, + that is, return the values that have the highest (that is, + numerically lowest) priority, and strip the mkOverride + properties. For example, - [ { file = "/1"; value = mkOverride 10 "a"; } - { file = "/2"; value = mkOverride 20 "b"; } - { file = "/3"; value = "z"; } - { file = "/4"; value = mkOverride 10 "d"; } - ] + [ { file = "/1"; value = mkOverride 10 "a"; } + { file = "/2"; value = mkOverride 20 "b"; } + { file = "/3"; value = "z"; } + { file = "/4"; value = mkOverride 10 "d"; } + ] - yields + yields - [ { file = "/1"; value = "a"; } - { file = "/4"; value = "d"; } - ] + [ { file = "/1"; value = "a"; } + { file = "/4"; value = "d"; } + ] - Note that "z" has the default priority 100. + Note that "z" has the default priority 100. */ filterOverrides = defs: (filterOverrides' defs).values; - filterOverrides' = defs: + filterOverrides' = + defs: let - getPrio = def: if def.value._type or "" == "override" then def.value.priority else defaultOverridePriority; + getPrio = + def: if def.value._type or "" == "override" then def.value.priority else defaultOverridePriority; highestPrio = foldl' (prio: def: min (getPrio def) prio) 9999 defs; - strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def; - in { - values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs; + strip = + def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def; + in + { + values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; inherit highestPrio; }; - /* Sort a list of properties. The sort priority of a property is - defaultOrderPriority by default, but can be overridden by wrapping the property - using mkOrder. */ - sortProperties = defs: + /* + Sort a list of properties. The sort priority of a property is + defaultOrderPriority by default, but can be overridden by wrapping the property + using mkOrder. + */ + sortProperties = + defs: let - strip = def: - if def.value._type or "" == "order" - then def // { value = def.value.content; inherit (def.value) priority; } - else def; + strip = + def: + if def.value._type or "" == "order" then + def + // { + value = def.value.content; + inherit (def.value) priority; + } + else + def; defs' = map strip defs; compare = a: b: (a.priority or defaultOrderPriority) < (b.priority or defaultOrderPriority); - in sort compare defs'; + in + sort compare defs'; # This calls substSubModules, whose entire purpose is only to ensure that # option declarations in submodules have accurate position information. # TODO: Merge this into mergeOptionDecls - fixupOptionType = loc: opt: - if opt.type.getSubModules or null == null - then opt // { type = opt.type or types.unspecified; } - else opt // { type = opt.type.substSubModules opt.options; options = []; }; - + fixupOptionType = + loc: opt: + if opt.type.getSubModules or null == null then + opt // { type = opt.type or types.unspecified; } + else + opt + // { + type = opt.type.substSubModules opt.options; + options = [ ]; + }; /* Merge an option's definitions in a way that preserves the priority of the @@ -969,52 +1184,56 @@ let Type: option -> attrsOf { highestPrio, value } */ - mergeAttrDefinitionsWithPrio = opt: - let - defsByAttr = - lib.zipAttrs ( - lib.concatLists ( - lib.concatMap - ({ value, ... }@def: - map - (lib.mapAttrsToList (k: value: { ${k} = def // { inherit value; }; })) - (pushDownProperties value) - ) - opt.definitionsWithLocations - ) - ); - in - assert opt.type.name == "attrsOf" || opt.type.name == "lazyAttrsOf"; - lib.mapAttrs - (k: v: - let merging = lib.mergeDefinitions (opt.loc ++ [k]) opt.type.nestedTypes.elemType v; - in { - value = merging.mergedValue; - inherit (merging.defsFinal') highestPrio; - }) - defsByAttr; + mergeAttrDefinitionsWithPrio = + opt: + let + defsByAttr = lib.zipAttrs ( + lib.concatLists ( + lib.concatMap ( + { value, ... }@def: + map (lib.mapAttrsToList ( + k: value: { + ${k} = def // { + inherit value; + }; + } + )) (pushDownProperties value) + ) opt.definitionsWithLocations + ) + ); + in + assert opt.type.name == "attrsOf" || opt.type.name == "lazyAttrsOf"; + lib.mapAttrs ( + k: v: + let + merging = lib.mergeDefinitions (opt.loc ++ [ k ]) opt.type.nestedTypes.elemType v; + in + { + value = merging.mergedValue; + inherit (merging.defsFinal') highestPrio; + } + ) defsByAttr; - /* Properties. */ + # Properties. - mkIf = condition: content: - { _type = "if"; - inherit condition content; - }; + mkIf = condition: content: { + _type = "if"; + inherit condition content; + }; - mkAssert = assertion: message: content: - mkIf - (if assertion then true else throw "\nFailed assertion: ${message}") - content; + mkAssert = + assertion: message: content: + mkIf (if assertion then true else throw "\nFailed assertion: ${message}") content; - mkMerge = contents: - { _type = "merge"; - inherit contents; - }; + mkMerge = contents: { + _type = "merge"; + inherit contents; + }; - mkOverride = priority: content: - { _type = "override"; - inherit priority content; - }; + mkOverride = priority: content: { + _type = "override"; + inherit priority content; + }; mkOptionDefault = mkOverride 1500; # priority of option defaults mkDefault = mkOverride 1000; # used in config sections of non-user modules to set a default @@ -1023,14 +1242,17 @@ let mkForce = mkOverride 50; mkVMOverride = mkOverride 10; # used by ‘nixos-rebuild build-vm’ - defaultPriority = lib.warnIf (lib.isInOldestRelease 2305) "lib.modules.defaultPriority is deprecated, please use lib.modules.defaultOverridePriority instead." defaultOverridePriority; + defaultPriority = + lib.warnIf (lib.isInOldestRelease 2305) + "lib.modules.defaultPriority is deprecated, please use lib.modules.defaultOverridePriority instead." + defaultOverridePriority; mkFixStrictness = lib.warn "lib.mkFixStrictness has no effect and will be removed. It returns its argument unmodified, so you can just remove any calls." id; - mkOrder = priority: content: - { _type = "order"; - inherit priority content; - }; + mkOrder = priority: content: { + _type = "order"; + inherit priority content; + }; mkBefore = mkOrder 500; defaultOrderPriority = 1000; @@ -1056,187 +1278,224 @@ let # mkDefault properties of the previous option. # mkAliasDefinitions = mkAliasAndWrapDefinitions id; - mkAliasAndWrapDefinitions = wrap: option: - mkAliasIfDef option (wrap (mkMerge option.definitions)); + mkAliasAndWrapDefinitions = wrap: option: mkAliasIfDef option (wrap (mkMerge option.definitions)); # Similar to mkAliasAndWrapDefinitions but copies over the priority from the # option as well. # # If a priority is not set, it assumes a priority of defaultOverridePriority. - mkAliasAndWrapDefsWithPriority = wrap: option: + mkAliasAndWrapDefsWithPriority = + wrap: option: let prio = option.highestPrio or defaultOverridePriority; defsWithPrio = map (mkOverride prio) option.definitions; - in mkAliasIfDef option (wrap (mkMerge defsWithPrio)); + in + mkAliasIfDef option (wrap (mkMerge defsWithPrio)); - mkAliasIfDef = option: - mkIf (isOption option && option.isDefined); + mkAliasIfDef = option: mkIf (isOption option && option.isDefined); - /* Compatibility. */ - fixMergeModules = modules: args: evalModules { inherit modules args; check = false; }; + # Compatibility. + fixMergeModules = + modules: args: + evalModules { + inherit modules args; + check = false; + }; + /* + Return a module that causes a warning to be shown if the + specified option is defined. For example, - /* Return a module that causes a warning to be shown if the - specified option is defined. For example, + mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ] "" - mkRemovedOptionModule [ "boot" "loader" "grub" "bootDevice" ] "" + causes a assertion if the user defines boot.loader.grub.bootDevice. - causes a assertion if the user defines boot.loader.grub.bootDevice. - - replacementInstructions is a string that provides instructions on - how to achieve the same functionality without the removed option, - or alternatively a reasoning why the functionality is not needed. - replacementInstructions SHOULD be provided! + replacementInstructions is a string that provides instructions on + how to achieve the same functionality without the removed option, + or alternatively a reasoning why the functionality is not needed. + replacementInstructions SHOULD be provided! */ - mkRemovedOptionModule = optionName: replacementInstructions: + mkRemovedOptionModule = + optionName: replacementInstructions: { options, ... }: - { options = setAttrByPath optionName (mkOption { + { + options = setAttrByPath optionName (mkOption { visible = false; - apply = x: throw "The option `${showOption optionName}' can no longer be used since it's been removed. ${replacementInstructions}"; + apply = + x: + throw "The option `${showOption optionName}' can no longer be used since it's been removed. ${replacementInstructions}"; }); config.assertions = - let opt = getAttrFromPath optionName options; in [{ - assertion = !opt.isDefined; - message = '' - The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it. - ${replacementInstructions} - ''; - }]; + let + opt = getAttrFromPath optionName options; + in + [ + { + assertion = !opt.isDefined; + message = '' + The option definition `${showOption optionName}' in ${showFiles opt.files} no longer has any effect; please remove it. + ${replacementInstructions} + ''; + } + ]; }; - /* Return a module that causes a warning to be shown if the - specified "from" option is defined; the defined value is however - forwarded to the "to" option. This can be used to rename options - while providing backward compatibility. For example, + /* + Return a module that causes a warning to be shown if the + specified "from" option is defined; the defined value is however + forwarded to the "to" option. This can be used to rename options + while providing backward compatibility. For example, - mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ] + mkRenamedOptionModule [ "boot" "copyKernels" ] [ "boot" "loader" "grub" "copyKernels" ] - forwards any definitions of boot.copyKernels to - boot.loader.grub.copyKernels while printing a warning. + forwards any definitions of boot.copyKernels to + boot.loader.grub.copyKernels while printing a warning. - This also copies over the priority from the aliased option to the - non-aliased option. + This also copies over the priority from the aliased option to the + non-aliased option. */ - mkRenamedOptionModule = from: to: doRename { - inherit from to; - visible = false; - warn = true; - use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'."; - }; + mkRenamedOptionModule = + from: to: + doRename { + inherit from to; + visible = false; + warn = true; + use = builtins.trace "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'."; + }; - mkRenamedOptionModuleWith = { - /* Old option path as list of strings. */ - from, - /* New option path as list of strings. */ - to, + mkRenamedOptionModuleWith = + { + # Old option path as list of strings. + from, + # New option path as list of strings. + to, - /* - Release number of the first release that contains the rename, ignoring backports. - Set it to the upcoming release, matching the nixpkgs/.version file. - */ - sinceRelease, + /* + Release number of the first release that contains the rename, ignoring backports. + Set it to the upcoming release, matching the nixpkgs/.version file. + */ + sinceRelease, - }: doRename { - inherit from to; - visible = false; - warn = lib.isInOldestRelease sinceRelease; - use = lib.warnIf (lib.isInOldestRelease sinceRelease) - "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'."; - }; + }: + doRename { + inherit from to; + visible = false; + warn = lib.isInOldestRelease sinceRelease; + use = lib.warnIf (lib.isInOldestRelease sinceRelease) "Obsolete option `${showOption from}' is used. It was renamed to `${showOption to}'."; + }; - /* Return a module that causes a warning to be shown if any of the "from" - option is defined; the defined values can be used in the "mergeFn" to set - the "to" value. - This function can be used to merge multiple options into one that has a - different type. + /* + Return a module that causes a warning to be shown if any of the "from" + option is defined; the defined values can be used in the "mergeFn" to set + the "to" value. + This function can be used to merge multiple options into one that has a + different type. - "mergeFn" takes the module "config" as a parameter and must return a value - of "to" option type. + "mergeFn" takes the module "config" as a parameter and must return a value + of "to" option type. - mkMergedOptionModule - [ [ "a" "b" "c" ] - [ "d" "e" "f" ] ] - [ "x" "y" "z" ] - (config: - let value = p: getAttrFromPath p config; - in - if (value [ "a" "b" "c" ]) == true then "foo" - else if (value [ "d" "e" "f" ]) == true then "bar" - else "baz") + mkMergedOptionModule + [ [ "a" "b" "c" ] + [ "d" "e" "f" ] ] + [ "x" "y" "z" ] + (config: + let value = p: getAttrFromPath p config; + in + if (value [ "a" "b" "c" ]) == true then "foo" + else if (value [ "d" "e" "f" ]) == true then "bar" + else "baz") - - options.a.b.c is a removed boolean option - - options.d.e.f is a removed boolean option - - options.x.y.z is a new str option that combines a.b.c and d.e.f - functionality + - options.a.b.c is a removed boolean option + - options.d.e.f is a removed boolean option + - options.x.y.z is a new str option that combines a.b.c and d.e.f + functionality - This show a warning if any a.b.c or d.e.f is set, and set the value of - x.y.z to the result of the merge function + This show a warning if any a.b.c or d.e.f is set, and set the value of + x.y.z to the result of the merge function */ - mkMergedOptionModule = from: to: mergeFn: + mkMergedOptionModule = + from: to: mergeFn: { config, options, ... }: { - options = foldl' recursiveUpdate {} (map (path: setAttrByPath path (mkOption { - visible = false; - # To use the value in mergeFn without triggering errors - default = "_mkMergedOptionModule"; - })) from); + options = foldl' recursiveUpdate { } ( + map ( + path: + setAttrByPath path (mkOption { + visible = false; + # To use the value in mergeFn without triggering errors + default = "_mkMergedOptionModule"; + }) + ) from + ); - config = { - warnings = filter (x: x != "") (map (f: - let val = getAttrFromPath f config; - opt = getAttrFromPath f options; - in - optionalString - (val != "_mkMergedOptionModule") - "The option `${showOption f}' defined in ${showFiles opt.files} has been changed to `${showOption to}' that has a different type. Please read `${showOption to}' documentation and update your configuration accordingly." - ) from); - } // setAttrByPath to (mkMerge - (optional - (any (f: (getAttrFromPath f config) != "_mkMergedOptionModule") from) - (mergeFn config))); + config = + { + warnings = filter (x: x != "") ( + map ( + f: + let + val = getAttrFromPath f config; + opt = getAttrFromPath f options; + in + optionalString (val != "_mkMergedOptionModule") + "The option `${showOption f}' defined in ${showFiles opt.files} has been changed to `${showOption to}' that has a different type. Please read `${showOption to}' documentation and update your configuration accordingly." + ) from + ); + } + // setAttrByPath to ( + mkMerge ( + optional (any (f: (getAttrFromPath f config) != "_mkMergedOptionModule") from) (mergeFn config) + ) + ); }; - /* Single "from" version of mkMergedOptionModule. - Return a module that causes a warning to be shown if the "from" option is - defined; the defined value can be used in the "mergeFn" to set the "to" - value. - This function can be used to change an option into another that has a - different type. + /* + Single "from" version of mkMergedOptionModule. + Return a module that causes a warning to be shown if the "from" option is + defined; the defined value can be used in the "mergeFn" to set the "to" + value. + This function can be used to change an option into another that has a + different type. - "mergeFn" takes the module "config" as a parameter and must return a value of - "to" option type. + "mergeFn" takes the module "config" as a parameter and must return a value of + "to" option type. - mkChangedOptionModule [ "a" "b" "c" ] [ "x" "y" "z" ] - (config: - let value = getAttrFromPath [ "a" "b" "c" ] config; - in - if value > 100 then "high" - else "normal") + mkChangedOptionModule [ "a" "b" "c" ] [ "x" "y" "z" ] + (config: + let value = getAttrFromPath [ "a" "b" "c" ] config; + in + if value > 100 then "high" + else "normal") - - options.a.b.c is a removed int option - - options.x.y.z is a new str option that supersedes a.b.c + - options.a.b.c is a removed int option + - options.x.y.z is a new str option that supersedes a.b.c - This show a warning if a.b.c is set, and set the value of x.y.z to the - result of the change function + This show a warning if a.b.c is set, and set the value of x.y.z to the + result of the change function */ - mkChangedOptionModule = from: to: changeFn: + mkChangedOptionModule = + from: to: changeFn: mkMergedOptionModule [ from ] to changeFn; - /* Like ‘mkRenamedOptionModule’, but doesn't show a warning. */ - mkAliasOptionModule = from: to: doRename { - inherit from to; - visible = true; - warn = false; - use = id; - }; + # Like ‘mkRenamedOptionModule’, but doesn't show a warning. + mkAliasOptionModule = + from: to: + doRename { + inherit from to; + visible = true; + warn = false; + use = id; + }; - /* Transitional version of mkAliasOptionModule that uses MD docs. + /* + Transitional version of mkAliasOptionModule that uses MD docs. - This function is no longer necessary and merely an alias of `mkAliasOptionModule`. + This function is no longer necessary and merely an alias of `mkAliasOptionModule`. */ mkAliasOptionModuleMD = mkAliasOptionModule; - /* mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b + /* + mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b Create config definitions with the same priority as the definition of another option. This should be used for option definitions where one option sets the value of another as a convenience. @@ -1251,144 +1510,156 @@ let # to all messages that report option locations "this value was derived from # which was defined in ". It can provide a trace of options that contributed # to definitions. - mkDerivedConfig = opt: f: - mkOverride - (opt.highestPrio or defaultOverridePriority) - (f opt.value); + mkDerivedConfig = opt: f: mkOverride (opt.highestPrio or defaultOverridePriority) (f opt.value); /* Return a module that help declares an option that has been renamed. When a value is defined for the old option, it is forwarded to the `to` option. - */ - doRename = { - # List of strings representing the attribute path of the old option. - from, - # List of strings representing the attribute path of the new option. - to, - # Boolean, whether the old option is to be included in documentation. - visible, - # Whether to warn when a value is defined for the old option. - # NOTE: This requires the NixOS assertions module to be imported, so - # - this generally does not work in submodules - # - this may or may not work outside NixOS - warn, - # A function that is applied to the option value, to form the value - # of the old `from` option. - # - # For example, the identity function can be passed, to return the option value unchanged. - # ```nix - # use = x: x; - # ``` - # - # To add a warning, you can pass the partially applied `warn` function. - # ```nix - # use = lib.warn "Obsolete option `${opt.old}' is used. Use `${opt.to}' instead."; - # ``` - use, - # Legacy option, enabled by default: whether to preserve the priority of definitions in `old`. - withPriority ? true, - # A boolean that defines the `mkIf` condition for `to`. - # If the condition evaluates to `true`, and the `to` path points into an - # `attrsOf (submodule ...)`, then `doRename` would cause an empty module to - # be created, even if the `from` option is undefined. - # By setting this to an expression that may return `false`, you can inhibit - # this undesired behavior. - # - # Example: - # - # ```nix - # { config, lib, ... }: - # let - # inherit (lib) mkOption mkEnableOption types doRename; - # in - # { - # options = { - # - # # Old service - # services.foo.enable = mkEnableOption "foo"; - # - # # New multi-instance service - # services.foos = mkOption { - # type = types.attrsOf (types.submodule …); - # }; - # }; - # imports = [ - # (doRename { - # from = [ "services" "foo" "bar" ]; - # to = [ "services" "foos" "" "bar" ]; - # visible = true; - # warn = false; - # use = x: x; - # withPriority = true; - # # Only define services.foos."" if needed. (It's not just about `bar`) - # condition = config.services.foo.enable; - # }) - # ]; - # } - # ``` - condition ? true - }: + */ + doRename = + { + # List of strings representing the attribute path of the old option. + from, + # List of strings representing the attribute path of the new option. + to, + # Boolean, whether the old option is to be included in documentation. + visible, + # Whether to warn when a value is defined for the old option. + # NOTE: This requires the NixOS assertions module to be imported, so + # - this generally does not work in submodules + # - this may or may not work outside NixOS + warn, + # A function that is applied to the option value, to form the value + # of the old `from` option. + # + # For example, the identity function can be passed, to return the option value unchanged. + # ```nix + # use = x: x; + # ``` + # + # To add a warning, you can pass the partially applied `warn` function. + # ```nix + # use = lib.warn "Obsolete option `${opt.old}' is used. Use `${opt.to}' instead."; + # ``` + use, + # Legacy option, enabled by default: whether to preserve the priority of definitions in `old`. + withPriority ? true, + # A boolean that defines the `mkIf` condition for `to`. + # If the condition evaluates to `true`, and the `to` path points into an + # `attrsOf (submodule ...)`, then `doRename` would cause an empty module to + # be created, even if the `from` option is undefined. + # By setting this to an expression that may return `false`, you can inhibit + # this undesired behavior. + # + # Example: + # + # ```nix + # { config, lib, ... }: + # let + # inherit (lib) mkOption mkEnableOption types doRename; + # in + # { + # options = { + # + # # Old service + # services.foo.enable = mkEnableOption "foo"; + # + # # New multi-instance service + # services.foos = mkOption { + # type = types.attrsOf (types.submodule …); + # }; + # }; + # imports = [ + # (doRename { + # from = [ "services" "foo" "bar" ]; + # to = [ "services" "foos" "" "bar" ]; + # visible = true; + # warn = false; + # use = x: x; + # withPriority = true; + # # Only define services.foos."" if needed. (It's not just about `bar`) + # condition = config.services.foo.enable; + # }) + # ]; + # } + # ``` + condition ? true, + }: { config, options, ... }: let fromOpt = getAttrFromPath from options; - toOf = attrByPath to - (abort "Renaming error: option `${showOption to}' does not exist."); - toType = let opt = attrByPath to {} options; in opt.type or (types.submodule {}); + toOf = attrByPath to (abort "Renaming error: option `${showOption to}' does not exist."); + toType = + let + opt = attrByPath to { } options; + in + opt.type or (types.submodule { }); in { - options = setAttrByPath from (mkOption { - inherit visible; - description = "Alias of {option}`${showOption to}`."; - apply = x: use (toOf config); - } // optionalAttrs (toType != null) { - type = toType; - }); + options = setAttrByPath from ( + mkOption { + inherit visible; + description = "Alias of {option}`${showOption to}`."; + apply = x: use (toOf config); + } + // optionalAttrs (toType != null) { type = toType; } + ); config = mkIf condition (mkMerge [ (optionalAttrs (options ? warnings) { - warnings = optional (warn && fromOpt.isDefined) - "The option `${showOption from}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption to}'."; + warnings = + optional (warn && fromOpt.isDefined) + "The option `${showOption from}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption to}'."; }) - (if withPriority - then mkAliasAndWrapDefsWithPriority (setAttrByPath to) fromOpt - else mkAliasAndWrapDefinitions (setAttrByPath to) fromOpt) + ( + if withPriority then + mkAliasAndWrapDefsWithPriority (setAttrByPath to) fromOpt + else + mkAliasAndWrapDefinitions (setAttrByPath to) fromOpt + ) ]); }; - /* Use this function to import a JSON file as NixOS configuration. + /* + Use this function to import a JSON file as NixOS configuration. - modules.importJSON :: path -> attrs + modules.importJSON :: path -> attrs */ importJSON = file: { _file = file; config = lib.importJSON file; }; - /* Use this function to import a TOML file as NixOS configuration. + /* + Use this function to import a TOML file as NixOS configuration. - modules.importTOML :: path -> attrs + modules.importTOML :: path -> attrs */ importTOML = file: { _file = file; config = lib.importTOML file; }; - private = lib.mapAttrs - (k: lib.warn "External use of `lib.modules.${k}` is deprecated. If your use case isn't covered by non-deprecated functions, we'd like to know more and perhaps support your use case well, instead of providing access to these low level functions. In this case please open an issue in https://github.com/nixos/nixpkgs/issues/.") - { - inherit - applyModuleArgsIfFunction - dischargeProperties - mergeModules - mergeModules' - pushDownProperties - unifyModuleSyntax - ; - collectModules = collectModules null; - }; + private = + lib.mapAttrs + ( + k: + lib.warn "External use of `lib.modules.${k}` is deprecated. If your use case isn't covered by non-deprecated functions, we'd like to know more and perhaps support your use case well, instead of providing access to these low level functions. In this case please open an issue in https://github.com/nixos/nixpkgs/issues/." + ) + { + inherit + applyModuleArgsIfFunction + dischargeProperties + mergeModules + mergeModules' + pushDownProperties + unifyModuleSyntax + ; + collectModules = collectModules null; + }; in -private // -{ +private +// { # NOTE: not all of these functions are necessarily public interfaces; some # are just needed by types.nix, but are not meant to be consumed # externally. @@ -1398,16 +1669,16 @@ private // defaultPriority doRename evalModules - evalOptionValue # for use by lib.types + evalOptionValue # for use by lib.types filterOverrides filterOverrides' fixMergeModules - fixupOptionType # should be private? + fixupOptionType # should be private? importJSON importTOML mergeDefinitions mergeAttrDefinitionsWithPrio - mergeOptionDecls # should be private? + mergeOptionDecls # should be private? mkAfter mkAliasAndWrapDefinitions mkAliasAndWrapDefsWithPriority @@ -1434,5 +1705,6 @@ private // mkRenamedOptionModuleWith mkVMOverride setDefaultModuleLocation - sortProperties; + sortProperties + ; } diff --git a/lib/options.nix b/lib/options.nix index 7e64e6e..63ae8f0 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -1,4 +1,4 @@ -/* Nixpkgs/NixOS option handling. */ +# Nixpkgs/NixOS option handling. { lib }: let @@ -25,448 +25,531 @@ let optionals take ; - inherit (lib.attrsets) - attrByPath - optionalAttrs - ; - inherit (lib.strings) - concatMapStrings - concatStringsSep - ; - inherit (lib.types) - mkOptionType - ; - inherit (lib.lists) - last - ; + inherit (lib.attrsets) attrByPath optionalAttrs; + inherit (lib.strings) concatMapStrings concatStringsSep; + inherit (lib.types) mkOptionType; + inherit (lib.lists) last; prioritySuggestion = '' - Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions. + Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions. ''; in rec { - /* Returns true when the given argument is an option + /* + Returns true when the given argument is an option - Type: isOption :: a -> bool + Type: isOption :: a -> bool - Example: - isOption 1 // => false - isOption (mkOption {}) // => true + Example: + isOption 1 // => false + isOption (mkOption {}) // => true */ isOption = lib.isType "option"; - /* Creates an Option attribute set. mkOption accepts an attribute set with the following keys: + /* + Creates an Option attribute set. mkOption accepts an attribute set with the following keys: - All keys default to `null` when not given. + All keys default to `null` when not given. - Example: - mkOption { } // => { _type = "option"; } - mkOption { default = "foo"; } // => { _type = "option"; default = "foo"; } + Example: + mkOption { } // => { _type = "option"; } + mkOption { default = "foo"; } // => { _type = "option"; default = "foo"; } */ mkOption = { - # Default value used when no definition is given in the configuration. - default ? null, - # Textual representation of the default, for the manual. - defaultText ? null, - # Example value used in the manual. - example ? null, - # String describing the option. - description ? null, - # Related packages used in the manual (see `genRelatedPackages` in ../nixos/lib/make-options-doc/default.nix). - relatedPackages ? null, - # Option type, providing type-checking and value merging. - type ? null, - # Function that converts the option value to something else. - apply ? null, - # Whether the option is for NixOS developers only. - internal ? null, - # Whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options. - visible ? null, - # Whether the option can be set only once - readOnly ? null, - } @ attrs: + # Default value used when no definition is given in the configuration. + default ? null, + # Textual representation of the default, for the manual. + defaultText ? null, + # Example value used in the manual. + example ? null, + # String describing the option. + description ? null, + # Related packages used in the manual (see `genRelatedPackages` in ../nixos/lib/make-options-doc/default.nix). + relatedPackages ? null, + # Option type, providing type-checking and value merging. + type ? null, + # Function that converts the option value to something else. + apply ? null, + # Whether the option is for NixOS developers only. + internal ? null, + # Whether the option shows up in the manual. Default: true. Use false to hide the option and any sub-options from submodules. Use "shallow" to hide only sub-options. + visible ? null, + # Whether the option can be set only once + readOnly ? null, + }@attrs: attrs // { _type = "option"; }; - /* Creates an Option attribute set for a boolean value option i.e an - option to be toggled on or off: + /* + Creates an Option attribute set for a boolean value option i.e an + option to be toggled on or off: - Example: - mkEnableOption "foo" - => { _type = "option"; default = false; description = "Whether to enable foo."; example = true; type = { ... }; } + Example: + mkEnableOption "foo" + => { _type = "option"; default = false; description = "Whether to enable foo."; example = true; type = { ... }; } */ mkEnableOption = # Name for the created option - name: mkOption { - default = false; - example = true; - description = "Whether to enable ${name}."; - type = lib.types.bool; - }; + name: + mkOption { + default = false; + example = true; + description = "Whether to enable ${name}."; + type = lib.types.bool; + }; - /* Creates an Option attribute set for an option that specifies the - package a module should use for some purpose. + /* + Creates an Option attribute set for an option that specifies the + package a module should use for some purpose. - The package is specified in the third argument under `default` as a list of strings - representing its attribute path in nixpkgs (or another package set). - Because of this, you need to pass nixpkgs itself (usually `pkgs` in a module; - alternatively to nixpkgs itself, another package set) as the first argument. + The package is specified in the third argument under `default` as a list of strings + representing its attribute path in nixpkgs (or another package set). + Because of this, you need to pass nixpkgs itself (usually `pkgs` in a module; + alternatively to nixpkgs itself, another package set) as the first argument. - If you pass another package set you should set the `pkgsText` option. - This option is used to display the expression for the package set. It is `"pkgs"` by default. - If your expression is complex you should parenthesize it, as the `pkgsText` argument - is usually immediately followed by an attribute lookup (`.`). + If you pass another package set you should set the `pkgsText` option. + This option is used to display the expression for the package set. It is `"pkgs"` by default. + If your expression is complex you should parenthesize it, as the `pkgsText` argument + is usually immediately followed by an attribute lookup (`.`). - The second argument may be either a string or a list of strings. - It provides the display name of the package in the description of the generated option - (using only the last element if the passed value is a list) - and serves as the fallback value for the `default` argument. + The second argument may be either a string or a list of strings. + It provides the display name of the package in the description of the generated option + (using only the last element if the passed value is a list) + and serves as the fallback value for the `default` argument. - To include extra information in the description, pass `extraDescription` to - append arbitrary text to the generated description. + To include extra information in the description, pass `extraDescription` to + append arbitrary text to the generated description. - You can also pass an `example` value, either a literal string or an attribute path. + You can also pass an `example` value, either a literal string or an attribute path. - The `default` argument can be omitted if the provided name is - an attribute of pkgs (if `name` is a string) or a valid attribute path in pkgs (if `name` is a list). - You can also set `default` to just a string in which case it is interpreted as an attribute name - (a singleton attribute path, if you will). + The `default` argument can be omitted if the provided name is + an attribute of pkgs (if `name` is a string) or a valid attribute path in pkgs (if `name` is a list). + You can also set `default` to just a string in which case it is interpreted as an attribute name + (a singleton attribute path, if you will). - If you wish to explicitly provide no default, pass `null` as `default`. + If you wish to explicitly provide no default, pass `null` as `default`. - If you want users to be able to set no package, pass `nullable = true`. - In this mode a `default = null` will not be interpreted as no default and is interpreted literally. + If you want users to be able to set no package, pass `nullable = true`. + In this mode a `default = null` will not be interpreted as no default and is interpreted literally. - Type: mkPackageOption :: pkgs -> (string|[string]) -> { nullable? :: bool, default? :: string|[string], example? :: null|string|[string], extraDescription? :: string, pkgsText? :: string } -> option + Type: mkPackageOption :: pkgs -> (string|[string]) -> { nullable? :: bool, default? :: string|[string], example? :: null|string|[string], extraDescription? :: string, pkgsText? :: string } -> option - Example: - mkPackageOption pkgs "hello" { } - => { ...; default = pkgs.hello; defaultText = literalExpression "pkgs.hello"; description = "The hello package to use."; type = package; } + Example: + mkPackageOption pkgs "hello" { } + => { ...; default = pkgs.hello; defaultText = literalExpression "pkgs.hello"; description = "The hello package to use."; type = package; } - Example: - mkPackageOption pkgs "GHC" { - default = [ "ghc" ]; - example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; - } - => { ...; default = pkgs.ghc; defaultText = literalExpression "pkgs.ghc"; description = "The GHC package to use."; example = literalExpression "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; type = package; } + Example: + mkPackageOption pkgs "GHC" { + default = [ "ghc" ]; + example = "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; + } + => { ...; default = pkgs.ghc; defaultText = literalExpression "pkgs.ghc"; description = "The GHC package to use."; example = literalExpression "pkgs.haskell.packages.ghc92.ghc.withPackages (hkgs: [ hkgs.primes ])"; type = package; } - Example: - mkPackageOption pkgs [ "python3Packages" "pytorch" ] { - extraDescription = "This is an example and doesn't actually do anything."; - } - => { ...; default = pkgs.python3Packages.pytorch; defaultText = literalExpression "pkgs.python3Packages.pytorch"; description = "The pytorch package to use. This is an example and doesn't actually do anything."; type = package; } + Example: + mkPackageOption pkgs [ "python3Packages" "pytorch" ] { + extraDescription = "This is an example and doesn't actually do anything."; + } + => { ...; default = pkgs.python3Packages.pytorch; defaultText = literalExpression "pkgs.python3Packages.pytorch"; description = "The pytorch package to use. This is an example and doesn't actually do anything."; type = package; } - Example: - mkPackageOption pkgs "nushell" { - nullable = true; - } - => { ...; default = pkgs.nushell; defaultText = literalExpression "pkgs.nushell"; description = "The nushell package to use."; type = nullOr package; } + Example: + mkPackageOption pkgs "nushell" { + nullable = true; + } + => { ...; default = pkgs.nushell; defaultText = literalExpression "pkgs.nushell"; description = "The nushell package to use."; type = nullOr package; } - Example: - mkPackageOption pkgs "coreutils" { - default = null; - } - => { ...; description = "The coreutils package to use."; type = package; } + Example: + mkPackageOption pkgs "coreutils" { + default = null; + } + => { ...; description = "The coreutils package to use."; type = package; } - Example: - mkPackageOption pkgs "dbus" { - nullable = true; - default = null; - } - => { ...; default = null; description = "The dbus package to use."; type = nullOr package; } + Example: + mkPackageOption pkgs "dbus" { + nullable = true; + default = null; + } + => { ...; default = null; description = "The dbus package to use."; type = nullOr package; } - Example: - mkPackageOption pkgs.javaPackages "OpenJFX" { - default = "openjfx20"; - pkgsText = "pkgs.javaPackages"; - } - => { ...; default = pkgs.javaPackages.openjfx20; defaultText = literalExpression "pkgs.javaPackages.openjfx20"; description = "The OpenJFX package to use."; type = package; } + Example: + mkPackageOption pkgs.javaPackages "OpenJFX" { + default = "openjfx20"; + pkgsText = "pkgs.javaPackages"; + } + => { ...; default = pkgs.javaPackages.openjfx20; defaultText = literalExpression "pkgs.javaPackages.openjfx20"; description = "The OpenJFX package to use."; type = package; } */ mkPackageOption = # Package set (an instantiation of nixpkgs such as pkgs in modules or another package set) pkgs: - # Name for the package, shown in option description - name: - { - # Whether the package can be null, for example to disable installing a package altogether (defaults to false) - nullable ? false, - # The attribute path where the default package is located (may be omitted, in which case it is copied from `name`) - default ? name, - # A string or an attribute path to use as an example (may be omitted) - example ? null, - # Additional text to include in the option description (may be omitted) - extraDescription ? "", - # Representation of the package set passed as pkgs (defaults to `"pkgs"`) - pkgsText ? "pkgs" - }: - let - name' = if isList name then last name else name; - default' = if isList default then default else [ default ]; - defaultText = concatStringsSep "." default'; - defaultValue = attrByPath default' - (throw "${defaultText} cannot be found in ${pkgsText}") pkgs; - defaults = if default != null then { - default = defaultValue; - defaultText = literalExpression ("${pkgsText}." + defaultText); - } else optionalAttrs nullable { - default = null; - }; - in mkOption (defaults // { - description = "The ${name'} package to use." - + (if extraDescription == "" then "" else " ") + extraDescription; + # Name for the package, shown in option description + name: + { + # Whether the package can be null, for example to disable installing a package altogether (defaults to false) + nullable ? false, + # The attribute path where the default package is located (may be omitted, in which case it is copied from `name`) + default ? name, + # A string or an attribute path to use as an example (may be omitted) + example ? null, + # Additional text to include in the option description (may be omitted) + extraDescription ? "", + # Representation of the package set passed as pkgs (defaults to `"pkgs"`) + pkgsText ? "pkgs", + }: + let + name' = if isList name then last name else name; + default' = if isList default then default else [ default ]; + defaultText = concatStringsSep "." default'; + defaultValue = attrByPath default' (throw "${defaultText} cannot be found in ${pkgsText}") pkgs; + defaults = + if default != null then + { + default = defaultValue; + defaultText = literalExpression ("${pkgsText}." + defaultText); + } + else + optionalAttrs nullable { default = null; }; + in + mkOption ( + defaults + // { + description = + "The ${name'} package to use." + (if extraDescription == "" then "" else " ") + extraDescription; type = with lib.types; (if nullable then nullOr else lib.id) package; - } // optionalAttrs (example != null) { - example = literalExpression - (if isList example then "${pkgsText}." + concatStringsSep "." example else example); - }); + } + // optionalAttrs (example != null) { + example = literalExpression ( + if isList example then "${pkgsText}." + concatStringsSep "." example else example + ); + } + ); - /* Alias of mkPackageOption. Previously used to create options with markdown - documentation, which is no longer required. + /* + Alias of mkPackageOption. Previously used to create options with markdown + documentation, which is no longer required. */ mkPackageOptionMD = mkPackageOption; - /* This option accepts anything, but it does not produce any result. + /* + This option accepts anything, but it does not produce any result. - This is useful for sharing a module across different module sets - without having to implement similar features as long as the - values of the options are not accessed. */ - mkSinkUndeclaredOptions = attrs: mkOption ({ - internal = true; - visible = false; - default = false; - description = "Sink for option definitions."; - type = mkOptionType { - name = "sink"; - check = x: true; - merge = loc: defs: false; - }; - apply = x: throw "Option value is not readable because the option is not declared."; - } // attrs); + This is useful for sharing a module across different module sets + without having to implement similar features as long as the + values of the options are not accessed. + */ + mkSinkUndeclaredOptions = + attrs: + mkOption ( + { + internal = true; + visible = false; + default = false; + description = "Sink for option definitions."; + type = mkOptionType { + name = "sink"; + check = x: true; + merge = loc: defs: false; + }; + apply = x: throw "Option value is not readable because the option is not declared."; + } + // attrs + ); - mergeDefaultOption = loc: defs: - let list = getValues defs; in - if length list == 1 then head list - else if all isFunction list then x: mergeDefaultOption loc (map (f: f x) list) - else if all isList list then concatLists list - else if all isAttrs list then foldl' lib.mergeAttrs {} list - else if all isBool list then foldl' lib.or false list - else if all isString list then lib.concatStrings list - else if all isInt list && all (x: x == head list) list then head list - else throw "Cannot merge definitions of `${showOption loc}'. Definition values:${showDefs defs}"; + mergeDefaultOption = + loc: defs: + let + list = getValues defs; + in + if length list == 1 then + head list + else if all isFunction list then + x: mergeDefaultOption loc (map (f: f x) list) + else if all isList list then + concatLists list + else if all isAttrs list then + foldl' lib.mergeAttrs { } list + else if all isBool list then + foldl' lib.or false list + else if all isString list then + lib.concatStrings list + else if all isInt list && all (x: x == head list) list then + head list + else + throw "Cannot merge definitions of `${showOption loc}'. Definition values:${showDefs defs}"; /* Require a single definition. WARNING: Does not perform nested checks, as this does not run the merge function! - */ + */ mergeOneOption = mergeUniqueOption { message = ""; }; /* Require a single definition. NOTE: When the type is not checked completely by check, pass a merge function for further checking (of sub-attributes, etc). - */ - mergeUniqueOption = args@{ + */ + mergeUniqueOption = + args@{ message, # WARNING: the default merge function assumes that the definition is a valid (option) value. You MUST pass a merge function if the return value needs to be # - type checked beyond what .check does (which should be very litte; only on the value head; not attribute values, etc) # - if you want attribute values to be checked, or list items # - if you want coercedTo-like behavior to work - merge ? loc: defs: (head defs).value }: + merge ? loc: defs: (head defs).value, + }: loc: defs: - if length defs == 1 - then merge loc defs - else - assert length defs > 1; - throw "The option `${showOption loc}' is defined multiple times while it's expected to be unique.\n${message}\nDefinition values:${showDefs defs}\n${prioritySuggestion}"; + if length defs == 1 then + merge loc defs + else + assert length defs > 1; + throw "The option `${showOption loc}' is defined multiple times while it's expected to be unique.\n${message}\nDefinition values:${showDefs defs}\n${prioritySuggestion}"; - /* "Merge" option definitions by checking that they all have the same value. */ - mergeEqualOption = loc: defs: - if defs == [] then abort "This case should never happen." + # "Merge" option definitions by checking that they all have the same value. + mergeEqualOption = + loc: defs: + if defs == [ ] then + abort "This case should never happen." # Return early if we only have one element # This also makes it work for functions, because the foldl' below would try # to compare the first element with itself, which is false for functions - else if length defs == 1 then (head defs).value - else (foldl' (first: def: - if def.value != first.value then - throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}\n${prioritySuggestion}" - else - first) (head defs) (tail defs)).value; + else if length defs == 1 then + (head defs).value + else + (foldl' ( + first: def: + if def.value != first.value then + throw "The option `${showOption loc}' has conflicting definition values:${ + showDefs [ + first + def + ] + }\n${prioritySuggestion}" + else + first + ) (head defs) (tail defs)).value; - /* Extracts values of all "value" keys of the given list. + /* + Extracts values of all "value" keys of the given list. - Type: getValues :: [ { value :: a; } ] -> [a] + Type: getValues :: [ { value :: a; } ] -> [a] - Example: - getValues [ { value = 1; } { value = 2; } ] // => [ 1 2 ] - getValues [ ] // => [ ] + Example: + getValues [ { value = 1; } { value = 2; } ] // => [ 1 2 ] + getValues [ ] // => [ ] */ getValues = map (x: x.value); - /* Extracts values of all "file" keys of the given list + /* + Extracts values of all "file" keys of the given list - Type: getFiles :: [ { file :: a; } ] -> [a] + Type: getFiles :: [ { file :: a; } ] -> [a] - Example: - getFiles [ { file = "file1"; } { file = "file2"; } ] // => [ "file1" "file2" ] - getFiles [ ] // => [ ] + Example: + getFiles [ { file = "file1"; } { file = "file2"; } ] // => [ "file1" "file2" ] + getFiles [ ] // => [ ] */ getFiles = map (x: x.file); # Generate documentation template from the list of option declaration like # the set generated with filterOptionSets. - optionAttrSetToDocList = optionAttrSetToDocList' []; + optionAttrSetToDocList = optionAttrSetToDocList' [ ]; - optionAttrSetToDocList' = _: options: - concatMap (opt: + optionAttrSetToDocList' = + _: options: + concatMap ( + opt: let name = showOption opt.loc; - docOption = { - loc = opt.loc; - inherit name; - description = opt.description or null; - declarations = filter (x: x != unknownModule) opt.declarations; - internal = opt.internal or false; - visible = - if (opt?visible && opt.visible == "shallow") - then true - else opt.visible or true; - readOnly = opt.readOnly or false; - type = opt.type.description or "unspecified"; - } - // optionalAttrs (opt ? example) { - example = - builtins.addErrorContext "while evaluating the example of option `${name}`" ( + docOption = + { + loc = opt.loc; + inherit name; + description = opt.description or null; + declarations = filter (x: x != unknownModule) opt.declarations; + internal = opt.internal or false; + visible = if (opt ? visible && opt.visible == "shallow") then true else opt.visible or true; + readOnly = opt.readOnly or false; + type = opt.type.description or "unspecified"; + } + // optionalAttrs (opt ? example) { + example = builtins.addErrorContext "while evaluating the example of option `${name}`" ( renderOptionValue opt.example ); - } - // optionalAttrs (opt ? defaultText || opt ? default) { - default = - builtins.addErrorContext "while evaluating the ${if opt?defaultText then "defaultText" else "default value"} of option `${name}`" ( - renderOptionValue (opt.defaultText or opt.default) - ); - } - // optionalAttrs (opt ? relatedPackages && opt.relatedPackages != null) { inherit (opt) relatedPackages; }; + } + // optionalAttrs (opt ? defaultText || opt ? default) { + default = builtins.addErrorContext "while evaluating the ${ + if opt ? defaultText then "defaultText" else "default value" + } of option `${name}`" (renderOptionValue (opt.defaultText or opt.default)); + } + // optionalAttrs (opt ? relatedPackages && opt.relatedPackages != null) { + inherit (opt) relatedPackages; + }; subOptions = - let ss = opt.type.getSubOptions opt.loc; - in if ss != {} then optionAttrSetToDocList' opt.loc ss else []; + let + ss = opt.type.getSubOptions opt.loc; + in + if ss != { } then optionAttrSetToDocList' opt.loc ss else [ ]; subOptionsVisible = docOption.visible && opt.visible or null != "shallow"; in - # To find infinite recursion in NixOS option docs: - # builtins.trace opt.loc - [ docOption ] ++ optionals subOptionsVisible subOptions) (collect isOption options); + # To find infinite recursion in NixOS option docs: + # builtins.trace opt.loc + [ docOption ] ++ optionals subOptionsVisible subOptions + ) (collect isOption options); + /* + This function recursively removes all derivation attributes from + `x` except for the `name` attribute. - /* This function recursively removes all derivation attributes from - `x` except for the `name` attribute. + This is to make the generation of `options.xml` much more + efficient: the XML representation of derivations is very large + (on the order of megabytes) and is not actually used by the + manual generator. - This is to make the generation of `options.xml` much more - efficient: the XML representation of derivations is very large - (on the order of megabytes) and is not actually used by the - manual generator. - - This function was made obsolete by renderOptionValue and is kept for - compatibility with out-of-tree code. + This function was made obsolete by renderOptionValue and is kept for + compatibility with out-of-tree code. */ - scrubOptionValue = x: + scrubOptionValue = + x: if isDerivation x then - { type = "derivation"; drvPath = x.name; outPath = x.name; name = x.name; } - else if isList x then map scrubOptionValue x - else if isAttrs x then mapAttrs (n: v: scrubOptionValue v) (removeAttrs x ["_args"]) - else x; + { + type = "derivation"; + drvPath = x.name; + outPath = x.name; + name = x.name; + } + else if isList x then + map scrubOptionValue x + else if isAttrs x then + mapAttrs (n: v: scrubOptionValue v) (removeAttrs x [ "_args" ]) + else + x; - - /* Ensures that the given option value (default or example) is a `_type`d string - by rendering Nix values to `literalExpression`s. + /* + Ensures that the given option value (default or example) is a `_type`d string + by rendering Nix values to `literalExpression`s. */ - renderOptionValue = v: - if v ? _type && v ? text then v - else literalExpression (lib.generators.toPretty { - multiline = true; - allowPrettyValues = true; - } v); + renderOptionValue = + v: + if v ? _type && v ? text then + v + else + literalExpression ( + lib.generators.toPretty { + multiline = true; + allowPrettyValues = true; + } v + ); - - /* For use in the `defaultText` and `example` option attributes. Causes the - given string to be rendered verbatim in the documentation as Nix code. This - is necessary for complex values, e.g. functions, or values that depend on - other values or packages. + /* + For use in the `defaultText` and `example` option attributes. Causes the + given string to be rendered verbatim in the documentation as Nix code. This + is necessary for complex values, e.g. functions, or values that depend on + other values or packages. */ - literalExpression = text: - if ! isString text then throw "literalExpression expects a string." - else { _type = "literalExpression"; inherit text; }; + literalExpression = + text: + if !isString text then + throw "literalExpression expects a string." + else + { + _type = "literalExpression"; + inherit text; + }; literalExample = lib.warn "lib.literalExample is deprecated, use lib.literalExpression instead, or use lib.literalMD for a non-Nix description." literalExpression; - /* Transition marker for documentation that's already migrated to markdown - syntax. Has been a no-op for some while and been removed from nixpkgs. - Kept here to alert downstream users who may not be aware of the migration's - completion that it should be removed from modules. + /* + Transition marker for documentation that's already migrated to markdown + syntax. Has been a no-op for some while and been removed from nixpkgs. + Kept here to alert downstream users who may not be aware of the migration's + completion that it should be removed from modules. */ mdDoc = lib.warn "lib.mdDoc will be removed from nixpkgs in 24.11. Option descriptions are now in Markdown by default; you can remove any remaining uses of lib.mdDoc."; - /* For use in the `defaultText` and `example` option attributes. Causes the - given MD text to be inserted verbatim in the documentation, for when - a `literalExpression` would be too hard to read. + /* + For use in the `defaultText` and `example` option attributes. Causes the + given MD text to be inserted verbatim in the documentation, for when + a `literalExpression` would be too hard to read. */ - literalMD = text: - if ! isString text then throw "literalMD expects a string." - else { _type = "literalMD"; inherit text; }; + literalMD = + text: + if !isString text then + throw "literalMD expects a string." + else + { + _type = "literalMD"; + inherit text; + }; # Helper functions. - /* Convert an option, described as a list of the option parts to a - human-readable version. + /* + Convert an option, described as a list of the option parts to a + human-readable version. - Example: - (showOption ["foo" "bar" "baz"]) == "foo.bar.baz" - (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" - (showOption ["windowManager" "2bwm" "enable"]) == "windowManager.\"2bwm\".enable" + Example: + (showOption ["foo" "bar" "baz"]) == "foo.bar.baz" + (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" + (showOption ["windowManager" "2bwm" "enable"]) == "windowManager.\"2bwm\".enable" - Placeholders will not be quoted as they are not actual values: - (showOption ["foo" "*" "bar"]) == "foo.*.bar" - (showOption ["foo" "" "bar"]) == "foo..bar" + Placeholders will not be quoted as they are not actual values: + (showOption ["foo" "*" "bar"]) == "foo.*.bar" + (showOption ["foo" "" "bar"]) == "foo..bar" */ - showOption = parts: let - escapeOptionPart = part: - let - # We assume that these are "special values" and not real configuration data. - # If it is real configuration data, it is rendered incorrectly. - specialIdentifiers = [ - "" # attrsOf (submodule {}) - "*" # listOf (submodule {}) - "" # functionTo - ]; - in if builtins.elem part specialIdentifiers - then part - else lib.strings.escapeNixIdentifier part; - in (concatStringsSep ".") (map escapeOptionPart parts); + showOption = + parts: + let + escapeOptionPart = + part: + let + # We assume that these are "special values" and not real configuration data. + # If it is real configuration data, it is rendered incorrectly. + specialIdentifiers = [ + "" # attrsOf (submodule {}) + "*" # listOf (submodule {}) + "" # functionTo + ]; + in + if builtins.elem part specialIdentifiers then part else lib.strings.escapeNixIdentifier part; + in + (concatStringsSep ".") (map escapeOptionPart parts); showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files); - showDefs = defs: concatMapStrings (def: - let - # Pretty print the value for display, if successful - prettyEval = builtins.tryEval - (lib.generators.toPretty { } - (lib.generators.withRecursion { depthLimit = 10; throwOnDepthLimit = false; } def.value)); - # Split it into its lines - lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value); - # Only display the first 5 lines, and indent them for better visibility - value = concatStringsSep "\n " (take 5 lines ++ optional (length lines > 5) "..."); - result = - # Don't print any value if evaluating the value strictly fails - if ! prettyEval.success then "" - # Put it on a new line if it consists of multiple - else if length lines > 1 then ":\n " + value - else ": " + value; - in "\n- In `${def.file}'${result}" - ) defs; + showDefs = + defs: + concatMapStrings ( + def: + let + # Pretty print the value for display, if successful + prettyEval = builtins.tryEval ( + lib.generators.toPretty { } ( + lib.generators.withRecursion { + depthLimit = 10; + throwOnDepthLimit = false; + } def.value + ) + ); + # Split it into its lines + lines = filter (v: !isList v) (builtins.split "\n" prettyEval.value); + # Only display the first 5 lines, and indent them for better visibility + value = concatStringsSep "\n " (take 5 lines ++ optional (length lines > 5) "..."); + result = + # Don't print any value if evaluating the value strictly fails + if !prettyEval.success then + "" + # Put it on a new line if it consists of multiple + else if length lines > 1 then + ":\n " + value + else + ": " + value; + in + "\n- In `${def.file}'${result}" + ) defs; showOptionWithDefLocs = opt: '' - ${showOption opt.loc}, with values defined in: - ${concatMapStringsSep "\n" (defFile: " - ${defFile}") opt.files} - ''; + ${showOption opt.loc}, with values defined in: + ${concatMapStringsSep "\n" (defFile: " - ${defFile}") opt.files} + ''; unknownModule = ""; diff --git a/lib/path/default.nix b/lib/path/default.nix index e6b385c..08b36c7 100644 --- a/lib/path/default.nix +++ b/lib/path/default.nix @@ -1,4 +1,4 @@ -/* Functions for working with path values. */ +# Functions for working with path values. # See ./README.md for internal docs { lib }: let @@ -27,22 +27,16 @@ let listHasPrefix = lib.lists.hasPrefix; - inherit (lib.strings) - concatStringsSep - substring - ; + inherit (lib.strings) concatStringsSep substring; - inherit (lib.asserts) - assertMsg - ; + inherit (lib.asserts) assertMsg; - inherit (lib.path.subpath) - isValid - ; + inherit (lib.path.subpath) isValid; # Return the reason why a subpath is invalid, or `null` if it's valid - subpathInvalidReason = value: - if ! isString value then + subpathInvalidReason = + value: + if !isString value then "The given value is of type ${builtins.typeOf value}, but a string was expected" else if value == "" then "The given string is empty" @@ -51,11 +45,13 @@ let # We don't support ".." components, see ./path.md#parent-directory else if match "(.*/)?\\.\\.(/.*)?" value != null then "The given string \"${value}\" contains a `..` component, which is not allowed in subpaths" - else null; + else + null; # Split and normalise a relative path string into its components. # Error for ".." components and doesn't include "." components - splitRelPath = path: + splitRelPath = + path: let # Split the string into its parts using regex for efficiency. This regex # matches patterns like "/", "/./", "/././", with arbitrarily many "/"s @@ -86,26 +82,31 @@ let componentCount = partCount - skipEnd - skipStart; in - # Special case of a single "." path component. Such a case leaves a - # componentCount of -1 due to the skipStart/skipEnd not verifying that - # they don't refer to the same character - if path == "." then [] + # Special case of a single "." path component. Such a case leaves a + # componentCount of -1 due to the skipStart/skipEnd not verifying that + # they don't refer to the same character + if path == "." then + [ ] - # Generate the result list directly. This is more efficient than a - # combination of `filter`, `init` and `tail`, because here we don't - # allocate any intermediate lists - else genList (index: + # Generate the result list directly. This is more efficient than a + # combination of `filter`, `init` and `tail`, because here we don't + # allocate any intermediate lists + else + genList ( + index: # To get to the element we need to add the number of parts we skip and # multiply by two due to the interleaved layout of `parts` elemAt parts ((skipStart + index) * 2) ) componentCount; # Join relative path components together - joinRelPath = components: + joinRelPath = + components: # Always return relative paths with `./` as a prefix (./path.md#leading-dots-for-relative-paths) - "./" + - # An empty string is not a valid relative path, so we need to return a `.` when we have no components - (if components == [] then "." else concatStringsSep "/" components); + "./" + + + # An empty string is not a valid relative path, so we need to return a `.` when we have no components + (if components == [ ] then "." else concatStringsSep "/" components); # Type: Path -> { root :: Path, components :: [ String ] } # @@ -117,11 +118,18 @@ let # because it can distinguish different filesystem roots deconstructPath = let - recurse = components: base: + recurse = + components: base: # If the parent of a path is the path itself, then it's a filesystem root - if base == dirOf base then { root = base; inherit components; } - else recurse ([ (baseNameOf base) ] ++ components) (dirOf base); - in recurse []; + if base == dirOf base then + { + root = base; + inherit components; + } + else + recurse ([ (baseNameOf base) ] ++ components) (dirOf base); + in + recurse [ ]; # The components of the store directory, typically [ "nix" "store" ] storeDirComponents = splitRelPath ("./" + storeDir); @@ -132,7 +140,8 @@ let # # Whether path components have a store path as a prefix, according to # https://nixos.org/manual/nix/stable/store/store-path.html#store-path. - componentsHaveStorePathPrefix = components: + componentsHaveStorePathPrefix = + components: # path starts with the store directory (typically /nix/store) listHasPrefix storeDirComponents components # is not the store directory itself, meaning there's at least one extra component @@ -145,7 +154,9 @@ let # We care more about discerning store path-ness on realistic values. Making it airtight would be fragile and slow. && match ".{32}-.+" (elemAt components storeDirLength) != null; -in /* No rec! Add dependencies on this file at the top. */ { +in +# No rec! Add dependencies on this file at the top. +{ /* Append a subpath string to a path. @@ -194,8 +205,8 @@ in /* No rec! Add dependencies on this file at the top. */ { path: # The subpath string to append subpath: - assert assertMsg (isPath path) '' - lib.path.append: The first argument is of type ${builtins.typeOf path}, but a path was expected''; + assert assertMsg (isPath path) + ''lib.path.append: The first argument is of type ${builtins.typeOf path}, but a path was expected''; assert assertMsg (isValid subpath) '' lib.path.append: Second argument is not a valid subpath string: ${subpathInvalidReason subpath}''; @@ -225,25 +236,23 @@ in /* No rec! Add dependencies on this file at the top. */ { */ hasPrefix = path1: - assert assertMsg - (isPath path1) + assert assertMsg (isPath path1) "lib.path.hasPrefix: First argument is of type ${typeOf path1}, but a path was expected"; let path1Deconstructed = deconstructPath path1; in - path2: - assert assertMsg - (isPath path2) - "lib.path.hasPrefix: Second argument is of type ${typeOf path2}, but a path was expected"; - let - path2Deconstructed = deconstructPath path2; - in - assert assertMsg - (path1Deconstructed.root == path2Deconstructed.root) '' - lib.path.hasPrefix: Filesystem roots must be the same for both paths, but paths with different roots were given: - first argument: "${toString path1}" with root "${toString path1Deconstructed.root}" - second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"''; - take (length path1Deconstructed.components) path2Deconstructed.components == path1Deconstructed.components; + path2: + assert assertMsg (isPath path2) + "lib.path.hasPrefix: Second argument is of type ${typeOf path2}, but a path was expected"; + let + path2Deconstructed = deconstructPath path2; + in + assert assertMsg (path1Deconstructed.root == path2Deconstructed.root) '' + lib.path.hasPrefix: Filesystem roots must be the same for both paths, but paths with different roots were given: + first argument: "${toString path1}" with root "${toString path1Deconstructed.root}" + second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"''; + take (length path1Deconstructed.components) path2Deconstructed.components + == path1Deconstructed.components; /* Remove the first path as a component-wise prefix from the second path. @@ -270,33 +279,29 @@ in /* No rec! Add dependencies on this file at the top. */ { */ removePrefix = path1: - assert assertMsg - (isPath path1) + assert assertMsg (isPath path1) "lib.path.removePrefix: First argument is of type ${typeOf path1}, but a path was expected."; let path1Deconstructed = deconstructPath path1; path1Length = length path1Deconstructed.components; in - path2: - assert assertMsg - (isPath path2) - "lib.path.removePrefix: Second argument is of type ${typeOf path2}, but a path was expected."; - let - path2Deconstructed = deconstructPath path2; - success = take path1Length path2Deconstructed.components == path1Deconstructed.components; - components = - if success then - drop path1Length path2Deconstructed.components - else - throw '' - lib.path.removePrefix: The first path argument "${toString path1}" is not a component-wise prefix of the second path argument "${toString path2}".''; - in - assert assertMsg - (path1Deconstructed.root == path2Deconstructed.root) '' - lib.path.removePrefix: Filesystem roots must be the same for both paths, but paths with different roots were given: - first argument: "${toString path1}" with root "${toString path1Deconstructed.root}" - second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"''; - joinRelPath components; + path2: + assert assertMsg (isPath path2) + "lib.path.removePrefix: Second argument is of type ${typeOf path2}, but a path was expected."; + let + path2Deconstructed = deconstructPath path2; + success = take path1Length path2Deconstructed.components == path1Deconstructed.components; + components = + if success then + drop path1Length path2Deconstructed.components + else + throw ''lib.path.removePrefix: The first path argument "${toString path1}" is not a component-wise prefix of the second path argument "${toString path2}".''; + in + assert assertMsg (path1Deconstructed.root == path2Deconstructed.root) '' + lib.path.removePrefix: Filesystem roots must be the same for both paths, but paths with different roots were given: + first argument: "${toString path1}" with root "${toString path1Deconstructed.root}" + second argument: "${toString path2}" with root "${toString path2Deconstructed.root}"''; + joinRelPath components; /* Split the filesystem root from a [path](https://nixos.org/manual/nix/stable/language/values.html#type-path). @@ -336,12 +341,12 @@ in /* No rec! Add dependencies on this file at the top. */ { splitRoot = # The path to split the root off of path: - assert assertMsg - (isPath path) + assert assertMsg (isPath path) "lib.path.splitRoot: Argument is of type ${typeOf path}, but a path was expected"; let deconstructed = deconstructPath path; - in { + in + { root = deconstructed.root; subpath = joinRelPath deconstructed.components; }; @@ -387,12 +392,12 @@ in /* No rec! Add dependencies on this file at the top. */ { hasStorePathPrefix /nix/store/nvl9ic0pj1fpyln3zaqrf4cclbqdfn1j-foo.drv => true */ - hasStorePathPrefix = path: + hasStorePathPrefix = + path: let deconstructed = deconstructPath path; in - assert assertMsg - (isPath path) + assert assertMsg (isPath path) "lib.path.hasStorePathPrefix: Argument is of type ${typeOf path}, but a path was expected"; assert assertMsg # This function likely breaks or needs adjustment if used with other filesystem roots, if they ever get implemented. @@ -446,9 +451,7 @@ in /* No rec! Add dependencies on this file at the top. */ { */ subpath.isValid = # The value to check - value: - subpathInvalidReason value == null; - + value: subpathInvalidReason value == null; /* Join subpath strings together using `/`, returning a normalised subpath string. @@ -511,18 +514,20 @@ in /* No rec! Add dependencies on this file at the top. */ { # The list of subpaths to join together subpaths: # Fast in case all paths are valid - if all isValid subpaths - then joinRelPath (concatMap splitRelPath subpaths) + if all isValid subpaths then + joinRelPath (concatMap splitRelPath subpaths) else # Otherwise we take our time to gather more info for a better error message # Strictly go through each path, throwing on the first invalid one # Tracks the list index in the fold accumulator - foldl' (i: path: - if isValid path - then i + 1 - else throw '' - lib.path.subpath.join: Element at index ${toString i} is not a valid subpath string: - ${subpathInvalidReason path}'' + foldl' ( + i: path: + if isValid path then + i + 1 + else + throw '' + lib.path.subpath.join: Element at index ${toString i} is not a valid subpath string: + ${subpathInvalidReason path}'' ) 0 subpaths; /* diff --git a/lib/path/tests/default.nix b/lib/path/tests/default.nix index 93aea79..07756f4 100644 --- a/lib/path/tests/default.nix +++ b/lib/path/tests/default.nix @@ -2,8 +2,8 @@ nixpkgs ? ../../.., system ? builtins.currentSystem, pkgs ? import nixpkgs { - config = {}; - overlays = []; + config = { }; + overlays = [ ]; inherit system; }, nixVersions ? import ../../tests/nix-for-tests.nix { inherit pkgs; }, @@ -12,34 +12,36 @@ seed ? null, }: -pkgs.runCommand "lib-path-tests" { - nativeBuildInputs = [ - nixVersions.stable - ] ++ (with pkgs; [ - jq - bc - ]); -} '' - # Needed to make Nix evaluation work - export TEST_ROOT=$(pwd)/test-tmp - export NIX_BUILD_HOOK= - export NIX_CONF_DIR=$TEST_ROOT/etc - export NIX_LOCALSTATE_DIR=$TEST_ROOT/var - export NIX_LOG_DIR=$TEST_ROOT/var/log/nix - export NIX_STATE_DIR=$TEST_ROOT/var/nix - export NIX_STORE_DIR=$TEST_ROOT/store - export PAGER=cat +pkgs.runCommand "lib-path-tests" + { + nativeBuildInputs = + [ nixVersions.stable ] + ++ (with pkgs; [ + jq + bc + ]); + } + '' + # Needed to make Nix evaluation work + export TEST_ROOT=$(pwd)/test-tmp + export NIX_BUILD_HOOK= + export NIX_CONF_DIR=$TEST_ROOT/etc + export NIX_LOCALSTATE_DIR=$TEST_ROOT/var + export NIX_LOG_DIR=$TEST_ROOT/var/log/nix + export NIX_STATE_DIR=$TEST_ROOT/var/nix + export NIX_STORE_DIR=$TEST_ROOT/store + export PAGER=cat - cp -r ${libpath} lib - export TEST_LIB=$PWD/lib + cp -r ${libpath} lib + export TEST_LIB=$PWD/lib - echo "Running unit tests lib/path/tests/unit.nix" - nix-instantiate --eval --show-trace \ - --argstr libpath "$TEST_LIB" \ - lib/path/tests/unit.nix + echo "Running unit tests lib/path/tests/unit.nix" + nix-instantiate --eval --show-trace \ + --argstr libpath "$TEST_LIB" \ + lib/path/tests/unit.nix - echo "Running property tests lib/path/tests/prop.sh" - bash lib/path/tests/prop.sh ${toString seed} + echo "Running property tests lib/path/tests/prop.sh" + bash lib/path/tests/prop.sh ${toString seed} - touch $out -'' + touch $out + '' diff --git a/lib/path/tests/prop.nix b/lib/path/tests/prop.nix index 67e5c1e..b4fa355 100644 --- a/lib/path/tests/prop.nix +++ b/lib/path/tests/prop.nix @@ -16,14 +16,15 @@ let lib = import libpath; # read each file into a string - strings = map (name: - builtins.readFile (dir + "/${name}") - ) (builtins.attrNames (builtins.readDir dir)); + strings = map (name: builtins.readFile (dir + "/${name}")) ( + builtins.attrNames (builtins.readDir dir) + ); inherit (lib.path.subpath) normalise isValid; inherit (lib.asserts) assertMsg; - normaliseAndCheck = str: + normaliseAndCheck = + str: let originalValid = isValid str; @@ -33,28 +34,27 @@ let absConcatOrig = /. + ("/" + str); absConcatNormalised = /. + ("/" + tryOnce.value); in - # Check the lib.path.subpath.normalise property to only error on invalid subpaths - assert assertMsg - (originalValid -> tryOnce.success) - "Even though string \"${str}\" is valid as a subpath, the normalisation for it failed"; - assert assertMsg - (! originalValid -> ! tryOnce.success) - "Even though string \"${str}\" is invalid as a subpath, the normalisation for it succeeded"; + # Check the lib.path.subpath.normalise property to only error on invalid subpaths + assert assertMsg ( + originalValid -> tryOnce.success + ) "Even though string \"${str}\" is valid as a subpath, the normalisation for it failed"; + assert assertMsg ( + !originalValid -> !tryOnce.success + ) "Even though string \"${str}\" is invalid as a subpath, the normalisation for it succeeded"; - # Check normalisation idempotency - assert assertMsg - (originalValid -> tryTwice.success) - "For valid subpath \"${str}\", the normalisation \"${tryOnce.value}\" was not a valid subpath"; - assert assertMsg - (originalValid -> tryOnce.value == tryTwice.value) - "For valid subpath \"${str}\", normalising it once gives \"${tryOnce.value}\" but normalising it twice gives a different result: \"${tryTwice.value}\""; + # Check normalisation idempotency + assert assertMsg ( + originalValid -> tryTwice.success + ) "For valid subpath \"${str}\", the normalisation \"${tryOnce.value}\" was not a valid subpath"; + assert assertMsg (originalValid -> tryOnce.value == tryTwice.value) + "For valid subpath \"${str}\", normalising it once gives \"${tryOnce.value}\" but normalising it twice gives a different result: \"${tryTwice.value}\""; - # Check that normalisation doesn't change a string when appended to an absolute Nix path value - assert assertMsg - (originalValid -> absConcatOrig == absConcatNormalised) - "For valid subpath \"${str}\", appending to an absolute Nix path value gives \"${absConcatOrig}\", but appending the normalised result \"${tryOnce.value}\" gives a different value \"${absConcatNormalised}\""; + # Check that normalisation doesn't change a string when appended to an absolute Nix path value + assert assertMsg (originalValid -> absConcatOrig == absConcatNormalised) + "For valid subpath \"${str}\", appending to an absolute Nix path value gives \"${absConcatOrig}\", but appending the normalised result \"${tryOnce.value}\" gives a different value \"${absConcatNormalised}\""; - # Return an empty string when failed - if tryOnce.success then tryOnce.value else ""; + # Return an empty string when failed + if tryOnce.success then tryOnce.value else ""; -in lib.genAttrs strings normaliseAndCheck +in +lib.genAttrs strings normaliseAndCheck diff --git a/lib/path/tests/unit.nix b/lib/path/tests/unit.nix index 9b0a0b2..903e8ff 100644 --- a/lib/path/tests/unit.nix +++ b/lib/path/tests/unit.nix @@ -3,7 +3,14 @@ { libpath }: let lib = import libpath; - inherit (lib.path) hasPrefix removePrefix append splitRoot hasStorePathPrefix subpath; + inherit (lib.path) + hasPrefix + removePrefix + append + splitRoot + hasStorePathPrefix + subpath + ; # This is not allowed generally, but we're in the tests here, so we'll allow ourselves. storeDirPath = /. + builtins.storeDir; @@ -79,15 +86,24 @@ let testSplitRootExample1 = { expr = splitRoot /foo/bar; - expected = { root = /.; subpath = "./foo/bar"; }; + expected = { + root = /.; + subpath = "./foo/bar"; + }; }; testSplitRootExample2 = { expr = splitRoot /.; - expected = { root = /.; subpath = "./."; }; + expected = { + root = /.; + subpath = "./."; + }; }; testSplitRootExample3 = { expr = splitRoot /foo/../bar; - expected = { root = /.; subpath = "./bar"; }; + expected = { + root = /.; + subpath = "./bar"; + }; }; testSplitRootExample4 = { expr = (builtins.tryEval (splitRoot "/foo/bar")).success; @@ -111,7 +127,9 @@ let expected = false; }; testHasStorePathPrefixExample5 = { - expr = hasStorePathPrefix (storeDirPath + "/.links/10gg8k3rmbw8p7gszarbk7qyd9jwxhcfq9i6s5i0qikx8alkk4hq"); + expr = hasStorePathPrefix ( + storeDirPath + "/.links/10gg8k3rmbw8p7gszarbk7qyd9jwxhcfq9i6s5i0qikx8alkk4hq" + ); expected = false; }; testHasStorePathPrefixExample6 = { @@ -188,11 +206,18 @@ let # Test examples from the lib.path.subpath.join documentation testSubpathJoinExample1 = { - expr = subpath.join [ "foo" "bar/baz" ]; + expr = subpath.join [ + "foo" + "bar/baz" + ]; expected = "./foo/bar/baz"; }; testSubpathJoinExample2 = { - expr = subpath.join [ "./foo" "." "bar//./baz/" ]; + expr = subpath.join [ + "./foo" + "." + "bar//./baz/" + ]; expected = "./foo/bar/baz"; }; testSubpathJoinExample3 = { @@ -273,7 +298,11 @@ let }; testSubpathComponentsExample2 = { expr = subpath.components "./foo//bar/./baz/"; - expected = [ "foo" "bar" "baz" ]; + expected = [ + "foo" + "bar" + "baz" + ]; }; testSubpathComponentsExample3 = { expr = (builtins.tryEval (subpath.components "/foo")).success; @@ -281,5 +310,7 @@ let }; }; in - if cases == [] then "Unit tests successful" - else throw "Path unit tests failed: ${lib.generators.toPretty {} cases}" +if cases == [ ] then + "Unit tests successful" +else + throw "Path unit tests failed: ${lib.generators.toPretty { } cases}" diff --git a/lib/source-types.nix b/lib/source-types.nix index c4f263d..b055e5d 100644 --- a/lib/source-types.nix +++ b/lib/source-types.nix @@ -5,15 +5,16 @@ let shortName = tname; isSource = false; }; -in lib.mapAttrs (tname: tset: defaultSourceType tname // tset) { +in +lib.mapAttrs (tname: tset: defaultSourceType tname // tset) { fromSource = { isSource = true; }; - binaryNativeCode = {}; + binaryNativeCode = { }; - binaryBytecode = {}; + binaryBytecode = { }; - binaryFirmware = {}; + binaryFirmware = { }; } diff --git a/lib/sources.nix b/lib/sources.nix index f61ea30..964a3b4 100644 --- a/lib/sources.nix +++ b/lib/sources.nix @@ -1,44 +1,50 @@ -/* Functions for copying sources to the Nix store. */ +# Functions for copying sources to the Nix store. { lib }: # Tested in lib/tests/sources.sh let - inherit (builtins) - match - split - storeDir - ; + inherit (builtins) match split storeDir; inherit (lib) boolToString filter isString readFile ; - inherit (lib.filesystem) - pathIsRegularFile - ; + inherit (lib.filesystem) pathIsRegularFile; /* A basic filter for `cleanSourceWith` that removes directories of version control system, backup files (*~) and some generated files. */ - cleanSourceFilter = name: type: let baseName = baseNameOf (toString name); in ! ( - # Filter out version control software files/directories - (baseName == ".git" || type == "directory" && (baseName == ".svn" || baseName == "CVS" || baseName == ".hg")) || - # Filter out editor backup / swap files. - lib.hasSuffix "~" baseName || - match "^\\.sw[a-z]$" baseName != null || - match "^\\..*\\.sw[a-z]$" baseName != null || + cleanSourceFilter = + name: type: + let + baseName = baseNameOf (toString name); + in + !( + # Filter out version control software files/directories + ( + baseName == ".git" + || type == "directory" && (baseName == ".svn" || baseName == "CVS" || baseName == ".hg") + ) + || + # Filter out editor backup / swap files. + lib.hasSuffix "~" baseName + || match "^\\.sw[a-z]$" baseName != null + || match "^\\..*\\.sw[a-z]$" baseName != null + || - # Filter out generates files. - lib.hasSuffix ".o" baseName || - lib.hasSuffix ".so" baseName || - # Filter out nix-build result symlinks - (type == "symlink" && lib.hasPrefix "result" baseName) || - # Filter out sockets and other types of files we can't have in the store. - (type == "unknown") - ); + # Filter out generates files. + lib.hasSuffix ".o" baseName + || lib.hasSuffix ".so" baseName + || + # Filter out nix-build result symlinks + (type == "symlink" && lib.hasPrefix "result" baseName) + || + # Filter out sockets and other types of files we can't have in the store. + (type == "unknown") + ); /* Filters a source tree removing version control files and directories using cleanSourceFilter. @@ -46,7 +52,12 @@ let Example: cleanSource ./. */ - cleanSource = src: cleanSourceWith { filter = cleanSourceFilter; inherit src; }; + cleanSource = + src: + cleanSourceWith { + filter = cleanSourceFilter; + inherit src; + }; /* Like `builtins.filterSource`, except it will compose with itself, @@ -65,7 +76,6 @@ let builtins.filterSource f (builtins.filterSource g ./.) # Fails! - */ cleanSourceWith = { @@ -80,11 +90,12 @@ let filter ? _path: _type: true, # Optional name to use as part of the store path. # This defaults to `src.name` or otherwise `"source"`. - name ? null + name ? null, }: let orig = toSourceAttributes src; - in fromSourceAttributes { + in + fromSourceAttributes { inherit (orig) origSrc; filter = path: type: filter path type && orig.filter path type; name = if name != null then name else orig.name; @@ -101,31 +112,40 @@ let let attrs = toSourceAttributes src; in - fromSourceAttributes ( - attrs // { - filter = path: type: - let - r = attrs.filter path type; - in - builtins.trace "${attrs.name}.filter ${path} = ${boolToString r}" r; - } - ) // { - satisfiesSubpathInvariant = src ? satisfiesSubpathInvariant && src.satisfiesSubpathInvariant; - }; + fromSourceAttributes ( + attrs + // { + filter = + path: type: + let + r = attrs.filter path type; + in + builtins.trace "${attrs.name}.filter ${path} = ${boolToString r}" r; + } + ) + // { + satisfiesSubpathInvariant = src ? satisfiesSubpathInvariant && src.satisfiesSubpathInvariant; + }; /* Filter sources by a list of regular expressions. Example: src = sourceByRegex ./my-subproject [".*\.py$" "^database.sql$"] */ - sourceByRegex = src: regexes: + sourceByRegex = + src: regexes: let isFiltered = src ? _isLibCleanSourceWith; origSrc = if isFiltered then src.origSrc else src; - in lib.cleanSourceWith { - filter = (path: type: - let relPath = lib.removePrefix (toString origSrc + "/") (toString path); - in lib.any (re: match re relPath != null) regexes); + in + lib.cleanSourceWith { + filter = ( + path: type: + let + relPath = lib.removePrefix (toString origSrc + "/") (toString path); + in + lib.any (re: match re relPath != null) regexes + ); inherit src; }; @@ -145,21 +165,29 @@ let src: # A list of file suffix strings exts: - let filter = name: type: - let base = baseNameOf (toString name); - in type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts; - in cleanSourceWith { inherit filter src; }; + let + filter = + name: type: + let + base = baseNameOf (toString name); + in + type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts; + in + cleanSourceWith { inherit filter src; }; - pathIsGitRepo = path: (_commitIdFromGitRepoOrError path)?value; + pathIsGitRepo = path: (_commitIdFromGitRepoOrError path) ? value; /* Get the commit id of a git repo. Example: commitIdFromGitRepo */ - commitIdFromGitRepo = path: - let commitIdOrError = _commitIdFromGitRepoOrError path; - in commitIdOrError.value or (throw commitIdOrError.error); + commitIdFromGitRepo = + path: + let + commitIdOrError = _commitIdFromGitRepoOrError path; + in + commitIdOrError.value or (throw commitIdOrError.error); # Get the commit id of a git repo. @@ -168,55 +196,68 @@ let # Example: commitIdFromGitRepo # not exported, used for commitIdFromGitRepo _commitIdFromGitRepoOrError = - let readCommitFromFile = file: path: - let fileName = path + "/${file}"; - packedRefsName = path + "/packed-refs"; - absolutePath = base: path: - if lib.hasPrefix "/" path - then path - else toString (/. + "${base}/${path}"); - in if pathIsRegularFile path - # Resolve git worktrees. See gitrepository-layout(5) - then - let m = match "^gitdir: (.*)$" (lib.fileContents path); - in if m == null - then { error = "File contains no gitdir reference: " + path; } - else - let gitDir = absolutePath (dirOf path) (lib.head m); - commonDir'' = if pathIsRegularFile "${gitDir}/commondir" - then lib.fileContents "${gitDir}/commondir" - else gitDir; - commonDir' = lib.removeSuffix "/" commonDir''; - commonDir = absolutePath gitDir commonDir'; - refFile = lib.removePrefix "${commonDir}/" "${gitDir}/${file}"; - in readCommitFromFile refFile commonDir + let + readCommitFromFile = + file: path: + let + fileName = path + "/${file}"; + packedRefsName = path + "/packed-refs"; + absolutePath = + base: path: if lib.hasPrefix "/" path then path else toString (/. + "${base}/${path}"); + in + if + pathIsRegularFile path + # Resolve git worktrees. See gitrepository-layout(5) + then + let + m = match "^gitdir: (.*)$" (lib.fileContents path); + in + if m == null then + { error = "File contains no gitdir reference: " + path; } + else + let + gitDir = absolutePath (dirOf path) (lib.head m); + commonDir'' = + if pathIsRegularFile "${gitDir}/commondir" then lib.fileContents "${gitDir}/commondir" else gitDir; + commonDir' = lib.removeSuffix "/" commonDir''; + commonDir = absolutePath gitDir commonDir'; + refFile = lib.removePrefix "${commonDir}/" "${gitDir}/${file}"; + in + readCommitFromFile refFile commonDir - else if pathIsRegularFile fileName - # Sometimes git stores the commitId directly in the file but - # sometimes it stores something like: «ref: refs/heads/branch-name» - then - let fileContent = lib.fileContents fileName; - matchRef = match "^ref: (.*)$" fileContent; - in if matchRef == null - then { value = fileContent; } - else readCommitFromFile (lib.head matchRef) path + else if + pathIsRegularFile fileName + # Sometimes git stores the commitId directly in the file but + # sometimes it stores something like: «ref: refs/heads/branch-name» + then + let + fileContent = lib.fileContents fileName; + matchRef = match "^ref: (.*)$" fileContent; + in + if matchRef == null then { value = fileContent; } else readCommitFromFile (lib.head matchRef) path - else if pathIsRegularFile packedRefsName - # Sometimes, the file isn't there at all and has been packed away in the - # packed-refs file, so we have to grep through it: - then - let fileContent = readFile packedRefsName; - matchRef = match "([a-z0-9]+) ${file}"; - isRef = s: isString s && (matchRef s) != null; - # there is a bug in libstdc++ leading to stackoverflow for long strings: - # https://github.com/NixOS/nix/issues/2147#issuecomment-659868795 - refs = filter isRef (split "\n" fileContent); - in if refs == [] - then { error = "Could not find " + file + " in " + packedRefsName; } - else { value = lib.head (matchRef (lib.head refs)); } + else if + pathIsRegularFile packedRefsName + # Sometimes, the file isn't there at all and has been packed away in the + # packed-refs file, so we have to grep through it: + then + let + fileContent = readFile packedRefsName; + matchRef = match "([a-z0-9]+) ${file}"; + isRef = s: isString s && (matchRef s) != null; + # there is a bug in libstdc++ leading to stackoverflow for long strings: + # https://github.com/NixOS/nix/issues/2147#issuecomment-659868795 + refs = filter isRef (split "\n" fileContent); + in + if refs == [ ] then + { error = "Could not find " + file + " in " + packedRefsName; } + else + { value = lib.head (matchRef (lib.head refs)); } - else { error = "Not a .git directory: " + toString path; }; - in readCommitFromFile "HEAD"; + else + { error = "Not a .git directory: " + toString path; }; + in + readCommitFromFile "HEAD"; pathHasContext = builtins.hasContext or (lib.hasPrefix storeDir); @@ -233,7 +274,8 @@ let # like class of objects in the wild. # (Existing ones being: paths, strings, sources and x//{outPath}) # So instead of exposing internals, we build a library of combinator functions. - toSourceAttributes = src: + toSourceAttributes = + src: let isFiltered = src ? _isLibCleanSourceWith; in @@ -247,26 +289,37 @@ let # fromSourceAttributes : SourceAttrs -> Source # # Inverse of toSourceAttributes for Source objects. - fromSourceAttributes = { origSrc, filter, name }: + fromSourceAttributes = + { + origSrc, + filter, + name, + }: { _isLibCleanSourceWith = true; inherit origSrc filter name; - outPath = builtins.path { inherit filter name; path = origSrc; }; + outPath = builtins.path { + inherit filter name; + path = origSrc; + }; }; -in { +in +{ - pathType = lib.warnIf (lib.isInOldestRelease 2305) - "lib.sources.pathType has been moved to lib.filesystem.pathType." - lib.filesystem.pathType; + pathType = lib.warnIf (lib.isInOldestRelease + 2305 + ) "lib.sources.pathType has been moved to lib.filesystem.pathType." lib.filesystem.pathType; - pathIsDirectory = lib.warnIf (lib.isInOldestRelease 2305) - "lib.sources.pathIsDirectory has been moved to lib.filesystem.pathIsDirectory." - lib.filesystem.pathIsDirectory; + pathIsDirectory = + lib.warnIf (lib.isInOldestRelease 2305) + "lib.sources.pathIsDirectory has been moved to lib.filesystem.pathIsDirectory." + lib.filesystem.pathIsDirectory; - pathIsRegularFile = lib.warnIf (lib.isInOldestRelease 2305) - "lib.sources.pathIsRegularFile has been moved to lib.filesystem.pathIsRegularFile." - lib.filesystem.pathIsRegularFile; + pathIsRegularFile = + lib.warnIf (lib.isInOldestRelease 2305) + "lib.sources.pathIsRegularFile has been moved to lib.filesystem.pathIsRegularFile." + lib.filesystem.pathIsRegularFile; inherit pathIsGitRepo diff --git a/lib/strings-with-deps.nix b/lib/strings-with-deps.nix index 7b88b01..ecc96d2 100644 --- a/lib/strings-with-deps.nix +++ b/lib/strings-with-deps.nix @@ -1,44 +1,44 @@ { lib }: /* -Usage: + Usage: - You define you custom builder script by adding all build steps to a list. - for example: - builder = writeScript "fsg-4.4-builder" - (textClosure [doUnpack addInputs preBuild doMake installPhase doForceShare]); + You define you custom builder script by adding all build steps to a list. + for example: + builder = writeScript "fsg-4.4-builder" + (textClosure [doUnpack addInputs preBuild doMake installPhase doForceShare]); - a step is defined by noDepEntry, fullDepEntry or packEntry. - To ensure that prerequisite are met those are added before the task itself by - textClosureDupList. Duplicated items are removed again. + a step is defined by noDepEntry, fullDepEntry or packEntry. + To ensure that prerequisite are met those are added before the task itself by + textClosureDupList. Duplicated items are removed again. - See trace/nixpkgs/trunk/pkgs/top-level/builder-defs.nix for some predefined build steps + See trace/nixpkgs/trunk/pkgs/top-level/builder-defs.nix for some predefined build steps - Attention: + Attention: - let - pkgs = (import ) {}; - in let - inherit (pkgs.stringsWithDeps) fullDepEntry packEntry noDepEntry textClosureMap; - inherit (pkgs.lib) id; + let + pkgs = (import ) {}; + in let + inherit (pkgs.stringsWithDeps) fullDepEntry packEntry noDepEntry textClosureMap; + inherit (pkgs.lib) id; - nameA = noDepEntry "Text a"; - nameB = fullDepEntry "Text b" ["nameA"]; - nameC = fullDepEntry "Text c" ["nameA"]; + nameA = noDepEntry "Text a"; + nameB = fullDepEntry "Text b" ["nameA"]; + nameC = fullDepEntry "Text c" ["nameA"]; - stages = { - nameHeader = noDepEntry "#! /bin/sh \n"; - inherit nameA nameB nameC; - }; - in - textClosureMap id stages - [ "nameHeader" "nameA" "nameB" "nameC" - nameC # <- added twice. add a dep entry if you know that it will be added once only [1] - "nameB" # <- this will not be added again because the attr name (reference) is used - ] + stages = { + nameHeader = noDepEntry "#! /bin/sh \n"; + inherit nameA nameB nameC; + }; + in + textClosureMap id stages + [ "nameHeader" "nameA" "nameB" "nameC" + nameC # <- added twice. add a dep entry if you know that it will be added once only [1] + "nameB" # <- this will not be added again because the attr name (reference) is used + ] - # result: Str("#! /bin/sh \n\nText a\nText b\nText c\nText c",[]) + # result: Str("#! /bin/sh \n\nText a\nText b\nText c\nText c",[]) - [1] maybe this behaviour should be removed to keep things simple (?) + [1] maybe this behaviour should be removed to keep things simple (?) */ let @@ -52,32 +52,63 @@ let in rec { - /* !!! The interface of this function is kind of messed up, since - it's way too overloaded and almost but not quite computes a - topological sort of the depstrings. */ + /* + !!! The interface of this function is kind of messed up, since + it's way too overloaded and almost but not quite computes a + topological sort of the depstrings. + */ - textClosureList = predefined: arg: + textClosureList = + predefined: arg: let - f = done: todo: - if todo == [] then {result = []; inherit done;} + f = + done: todo: + if todo == [ ] then + { + result = [ ]; + inherit done; + } else - let entry = head todo; in + let + entry = head todo; + in if isAttrs entry then - let x = f done entry.deps; - y = f x.done (tail todo); - in { result = x.result ++ [entry.text] ++ y.result; - done = y.done; - } - else if done ? ${entry} then f done (tail todo) - else f (done // listToAttrs [{name = entry; value = 1;}]) ([predefined.${entry}] ++ tail todo); - in (f {} arg).result; + let + x = f done entry.deps; + y = f x.done (tail todo); + in + { + result = x.result ++ [ entry.text ] ++ y.result; + done = y.done; + } + else if done ? ${entry} then + f done (tail todo) + else + f ( + done + // listToAttrs [ + { + name = entry; + value = 1; + } + ] + ) ([ predefined.${entry} ] ++ tail todo); + in + (f { } arg).result; - textClosureMap = f: predefined: names: + textClosureMap = + f: predefined: names: concatStringsSep "\n" (map f (textClosureList predefined names)); - noDepEntry = text: {inherit text; deps = [];}; - fullDepEntry = text: deps: {inherit text deps;}; - packEntry = deps: {inherit deps; text="";}; + noDepEntry = text: { + inherit text; + deps = [ ]; + }; + fullDepEntry = text: deps: { inherit text deps; }; + packEntry = deps: { + inherit deps; + text = ""; + }; stringAfter = deps: text: { inherit text deps; }; diff --git a/lib/strings.nix b/lib/strings.nix index 67bb669..9f757bb 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -1,4 +1,4 @@ -/* String manipulation functions. */ +# String manipulation functions. { lib }: let @@ -6,7 +6,7 @@ let inherit (lib.trivial) warnIf; -asciiTable = import ./ascii-table.nix; + asciiTable = import ./ascii-table.nix; in @@ -39,7 +39,8 @@ rec { unsafeDiscardStringContext ; - /* Concatenate a list of strings. + /* + Concatenate a list of strings. Type: concatStrings :: [string] -> string @@ -49,7 +50,8 @@ rec { */ concatStrings = builtins.concatStringsSep ""; - /* Map a function over a list and concatenate the resulting strings. + /* + Map a function over a list and concatenate the resulting strings. Type: concatMapStrings :: (a -> string) -> [a] -> string @@ -59,53 +61,63 @@ rec { */ concatMapStrings = f: list: concatStrings (map f list); - /* Like `concatMapStrings` except that the f functions also gets the - position as a parameter. + /* + Like `concatMapStrings` except that the f functions also gets the + position as a parameter. - Type: concatImapStrings :: (int -> a -> string) -> [a] -> string + Type: concatImapStrings :: (int -> a -> string) -> [a] -> string - Example: - concatImapStrings (pos: x: "${toString pos}-${x}") ["foo" "bar"] - => "1-foo2-bar" + Example: + concatImapStrings (pos: x: "${toString pos}-${x}") ["foo" "bar"] + => "1-foo2-bar" */ concatImapStrings = f: list: concatStrings (lib.imap1 f list); - /* Place an element between each element of a list + /* + Place an element between each element of a list - Type: intersperse :: a -> [a] -> [a] + Type: intersperse :: a -> [a] -> [a] - Example: - intersperse "/" ["usr" "local" "bin"] - => ["usr" "/" "local" "/" "bin"]. + Example: + intersperse "/" ["usr" "local" "bin"] + => ["usr" "/" "local" "/" "bin"]. */ intersperse = # Separator to add between elements separator: # Input list list: - if list == [] || length list == 1 - then list - else tail (lib.concatMap (x: [separator x]) list); + if list == [ ] || length list == 1 then + list + else + tail ( + lib.concatMap (x: [ + separator + x + ]) list + ); - /* Concatenate a list of strings with a separator between each element + /* + Concatenate a list of strings with a separator between each element - Type: concatStringsSep :: string -> [string] -> string + Type: concatStringsSep :: string -> [string] -> string - Example: - concatStringsSep "/" ["usr" "local" "bin"] - => "usr/local/bin" + Example: + concatStringsSep "/" ["usr" "local" "bin"] + => "usr/local/bin" */ concatStringsSep = builtins.concatStringsSep; - /* Maps a function over a list of strings and then concatenates the - result with the specified separator interspersed between - elements. + /* + Maps a function over a list of strings and then concatenates the + result with the specified separator interspersed between + elements. - Type: concatMapStringsSep :: string -> (a -> string) -> [a] -> string + Type: concatMapStringsSep :: string -> (a -> string) -> [a] -> string - Example: - concatMapStringsSep "-" (x: toUpper x) ["foo" "bar" "baz"] - => "FOO-BAR-BAZ" + Example: + concatMapStringsSep "-" (x: toUpper x) ["foo" "bar" "baz"] + => "FOO-BAR-BAZ" */ concatMapStringsSep = # Separator to add between elements @@ -113,16 +125,18 @@ rec { # Function to map over the list f: # List of input strings - list: concatStringsSep sep (map f list); + list: + concatStringsSep sep (map f list); - /* Same as `concatMapStringsSep`, but the mapping function - additionally receives the position of its argument. + /* + Same as `concatMapStringsSep`, but the mapping function + additionally receives the position of its argument. - Type: concatIMapStringsSep :: string -> (int -> a -> string) -> [a] -> string + Type: concatIMapStringsSep :: string -> (int -> a -> string) -> [a] -> string - Example: - concatImapStringsSep "-" (pos: x: toString (x / pos)) [ 6 6 6 ] - => "6-3-2" + Example: + concatImapStringsSep "-" (pos: x: toString (x / pos)) [ 6 6 6 ] + => "6-3-2" */ concatImapStringsSep = # Separator to add between elements @@ -130,16 +144,18 @@ rec { # Function that receives elements and their positions f: # List of input strings - list: concatStringsSep sep (lib.imap1 f list); + list: + concatStringsSep sep (lib.imap1 f list); - /* Concatenate a list of strings, adding a newline at the end of each one. - Defined as `concatMapStrings (s: s + "\n")`. + /* + Concatenate a list of strings, adding a newline at the end of each one. + Defined as `concatMapStrings (s: s + "\n")`. - Type: concatLines :: [string] -> string + Type: concatLines :: [string] -> string - Example: - concatLines [ "foo" "bar" ] - => "foo\nbar\n" + Example: + concatLines [ "foo" "bar" ] + => "foo\nbar\n" */ concatLines = concatMapStrings (s: s + "\n"); @@ -157,16 +173,17 @@ rec { */ replicate = n: s: concatStrings (lib.lists.replicate n s); - /* Construct a Unix-style, colon-separated search path consisting of - the given `subDir` appended to each of the given paths. + /* + Construct a Unix-style, colon-separated search path consisting of + the given `subDir` appended to each of the given paths. - Type: makeSearchPath :: string -> [string] -> string + Type: makeSearchPath :: string -> [string] -> string - Example: - makeSearchPath "bin" ["/root" "/usr" "/usr/local"] - => "/root/bin:/usr/bin:/usr/local/bin" - makeSearchPath "bin" [""] - => "/bin" + Example: + makeSearchPath "bin" ["/root" "/usr" "/usr/local"] + => "/root/bin:/usr/bin:/usr/local/bin" + makeSearchPath "bin" [""] + => "/bin" */ makeSearchPath = # Directory name to append @@ -175,16 +192,17 @@ rec { paths: concatStringsSep ":" (map (path: path + "/" + subDir) (filter (x: x != null) paths)); - /* Construct a Unix-style search path by appending the given - `subDir` to the specified `output` of each of the packages. If no - output by the given name is found, fallback to `.out` and then to - the default. + /* + Construct a Unix-style search path by appending the given + `subDir` to the specified `output` of each of the packages. If no + output by the given name is found, fallback to `.out` and then to + the default. - Type: string -> string -> [package] -> string + Type: string -> string -> [package] -> string - Example: - makeSearchPathOutput "dev" "bin" [ pkgs.openssl pkgs.zlib ] - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin" + Example: + makeSearchPathOutput "dev" "bin" [ pkgs.openssl pkgs.zlib ] + => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin" */ makeSearchPathOutput = # Package output to use @@ -192,90 +210,95 @@ rec { # Directory name to append subDir: # List of packages - pkgs: makeSearchPath subDir (map (lib.getOutput output) pkgs); + pkgs: + makeSearchPath subDir (map (lib.getOutput output) pkgs); - /* Construct a library search path (such as RPATH) containing the - libraries for a set of packages + /* + Construct a library search path (such as RPATH) containing the + libraries for a set of packages - Example: - makeLibraryPath [ "/usr" "/usr/local" ] - => "/usr/lib:/usr/local/lib" - pkgs = import { } - makeLibraryPath [ pkgs.openssl pkgs.zlib ] - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib" + Example: + makeLibraryPath [ "/usr" "/usr/local" ] + => "/usr/lib:/usr/local/lib" + pkgs = import { } + makeLibraryPath [ pkgs.openssl pkgs.zlib ] + => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib" */ makeLibraryPath = makeSearchPathOutput "lib" "lib"; - /* Construct an include search path (such as C_INCLUDE_PATH) containing the - header files for a set of packages or paths. + /* + Construct an include search path (such as C_INCLUDE_PATH) containing the + header files for a set of packages or paths. - Example: - makeIncludePath [ "/usr" "/usr/local" ] - => "/usr/include:/usr/local/include" - pkgs = import { } - makeIncludePath [ pkgs.openssl pkgs.zlib ] - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/include:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8-dev/include" + Example: + makeIncludePath [ "/usr" "/usr/local" ] + => "/usr/include:/usr/local/include" + pkgs = import { } + makeIncludePath [ pkgs.openssl pkgs.zlib ] + => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/include:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8-dev/include" */ makeIncludePath = makeSearchPathOutput "dev" "include"; - /* Construct a binary search path (such as $PATH) containing the - binaries for a set of packages. + /* + Construct a binary search path (such as $PATH) containing the + binaries for a set of packages. - Example: - makeBinPath ["/root" "/usr" "/usr/local"] - => "/root/bin:/usr/bin:/usr/local/bin" + Example: + makeBinPath ["/root" "/usr" "/usr/local"] + => "/root/bin:/usr/bin:/usr/local/bin" */ makeBinPath = makeSearchPathOutput "bin" "bin"; - /* Normalize path, removing extraneous /s + /* + Normalize path, removing extraneous /s - Type: normalizePath :: string -> string + Type: normalizePath :: string -> string - Example: - normalizePath "/a//b///c/" - => "/a/b/c/" + Example: + normalizePath "/a//b///c/" + => "/a/b/c/" */ - normalizePath = s: - warnIf - (isPath s) + normalizePath = + s: + warnIf (isPath s) '' lib.strings.normalizePath: The argument (${toString s}) is a path value, but only strings are supported. Path values are always normalised in Nix, so there's no need to call this function on them. This function also copies the path to the Nix store and returns the store path, the same as "''${path}" will, which may not be what you want. This behavior is deprecated and will throw an error in the future.'' ( - builtins.foldl' - (x: y: if y == "/" && hasSuffix "/" x then x else x+y) - "" - (stringToCharacters s) + builtins.foldl' (x: y: if y == "/" && hasSuffix "/" x then x else x + y) "" (stringToCharacters s) ); - /* Depending on the boolean `cond', return either the given string - or the empty string. Useful to concatenate against a bigger string. + /* + Depending on the boolean `cond', return either the given string + or the empty string. Useful to concatenate against a bigger string. - Type: optionalString :: bool -> string -> string + Type: optionalString :: bool -> string -> string - Example: - optionalString true "some-string" - => "some-string" - optionalString false "some-string" - => "" + Example: + optionalString true "some-string" + => "some-string" + optionalString false "some-string" + => "" */ optionalString = # Condition cond: # String to return if condition is true - string: if cond then string else ""; + string: + if cond then string else ""; - /* Determine whether a string has given prefix. + /* + Determine whether a string has given prefix. - Type: hasPrefix :: string -> string -> bool + Type: hasPrefix :: string -> string -> bool - Example: - hasPrefix "foo" "foobar" - => true - hasPrefix "foo" "barfoo" - => false + Example: + hasPrefix "foo" "foobar" + => true + hasPrefix "foo" "barfoo" + => false */ hasPrefix = # Prefix to check for @@ -284,8 +307,7 @@ rec { str: # Before 23.05, paths would be copied to the store before converting them # to strings and comparing. This was surprising and confusing. - warnIf - (isPath pref) + warnIf (isPath pref) '' lib.strings.hasPrefix: The first argument (${toString pref}) is a path value, but only strings are supported. There is almost certainly a bug in the calling code, since this function always returns `false` in such a case. @@ -294,15 +316,16 @@ rec { You might want to use `lib.path.hasPrefix` instead, which correctly supports paths.'' (substring 0 (stringLength pref) str == pref); - /* Determine whether a string has given suffix. + /* + Determine whether a string has given suffix. - Type: hasSuffix :: string -> string -> bool + Type: hasSuffix :: string -> string -> bool - Example: - hasSuffix "foo" "foobar" - => false - hasSuffix "foo" "barfoo" - => true + Example: + hasSuffix "foo" "foobar" + => false + hasSuffix "foo" "barfoo" + => true */ hasSuffix = # Suffix to check for @@ -315,19 +338,16 @@ rec { in # Before 23.05, paths would be copied to the store before converting them # to strings and comparing. This was surprising and confusing. - warnIf - (isPath suffix) + warnIf (isPath suffix) '' lib.strings.hasSuffix: The first argument (${toString suffix}) is a path value, but only strings are supported. There is almost certainly a bug in the calling code, since this function always returns `false` in such a case. This function also copies the path to the Nix store, which may not be what you want. This behavior is deprecated and will throw an error in the future.'' - ( - lenContent >= lenSuffix - && substring (lenContent - lenSuffix) lenContent content == suffix - ); + (lenContent >= lenSuffix && substring (lenContent - lenSuffix) lenContent content == suffix); - /* Determine whether a string contains the given infix + /* + Determine whether a string contains the given infix Type: hasInfix :: string -> string -> bool @@ -341,11 +361,11 @@ rec { hasInfix "foo" "abcd" => false */ - hasInfix = infix: content: + hasInfix = + infix: content: # Before 23.05, paths would be copied to the store before converting them # to strings and comparing. This was surprising and confusing. - warnIf - (isPath infix) + warnIf (isPath infix) '' lib.strings.hasInfix: The first argument (${toString infix}) is a path value, but only strings are supported. There is almost certainly a bug in the calling code, since this function always returns `false` in such a case. @@ -353,223 +373,316 @@ rec { This behavior is deprecated and will throw an error in the future.'' (builtins.match ".*${escapeRegex infix}.*" "${content}" != null); - /* Convert a string to a list of characters (i.e. singleton strings). - This allows you to, e.g., map a function over each character. However, - note that this will likely be horribly inefficient; Nix is not a - general purpose programming language. Complex string manipulations - should, if appropriate, be done in a derivation. - Also note that Nix treats strings as a list of bytes and thus doesn't - handle unicode. + /* + Convert a string to a list of characters (i.e. singleton strings). + This allows you to, e.g., map a function over each character. However, + note that this will likely be horribly inefficient; Nix is not a + general purpose programming language. Complex string manipulations + should, if appropriate, be done in a derivation. + Also note that Nix treats strings as a list of bytes and thus doesn't + handle unicode. - Type: stringToCharacters :: string -> [string] + Type: stringToCharacters :: string -> [string] - Example: - stringToCharacters "" - => [ ] - stringToCharacters "abc" - => [ "a" "b" "c" ] - stringToCharacters "🦄" - => [ "�" "�" "�" "�" ] + Example: + stringToCharacters "" + => [ ] + stringToCharacters "abc" + => [ "a" "b" "c" ] + stringToCharacters "🦄" + => [ "�" "�" "�" "�" ] */ - stringToCharacters = s: - genList (p: substring p 1 s) (stringLength s); + stringToCharacters = s: genList (p: substring p 1 s) (stringLength s); - /* Manipulate a string character by character and replace them by - strings before concatenating the results. + /* + Manipulate a string character by character and replace them by + strings before concatenating the results. - Type: stringAsChars :: (string -> string) -> string -> string + Type: stringAsChars :: (string -> string) -> string -> string - Example: - stringAsChars (x: if x == "a" then "i" else x) "nax" - => "nix" + Example: + stringAsChars (x: if x == "a" then "i" else x) "nax" + => "nix" */ stringAsChars = # Function to map over each individual character f: # Input string - s: concatStrings ( - map f (stringToCharacters s) - ); + s: + concatStrings (map f (stringToCharacters s)); - /* Convert char to ascii value, must be in printable range + /* + Convert char to ascii value, must be in printable range - Type: charToInt :: string -> int - - Example: - charToInt "A" - => 65 - charToInt "(" - => 40 + Type: charToInt :: string -> int + Example: + charToInt "A" + => 65 + charToInt "(" + => 40 */ charToInt = c: builtins.getAttr c asciiTable; - /* Escape occurrence of the elements of `list` in `string` by - prefixing it with a backslash. + /* + Escape occurrence of the elements of `list` in `string` by + prefixing it with a backslash. - Type: escape :: [string] -> string -> string + Type: escape :: [string] -> string -> string - Example: - escape ["(" ")"] "(foo)" - => "\\(foo\\)" + Example: + escape ["(" ")"] "(foo)" + => "\\(foo\\)" */ escape = list: replaceStrings list (map (c: "\\${c}") list); - /* Escape occurrence of the element of `list` in `string` by - converting to its ASCII value and prefixing it with \\x. - Only works for printable ascii characters. + /* + Escape occurrence of the element of `list` in `string` by + converting to its ASCII value and prefixing it with \\x. + Only works for printable ascii characters. - Type: escapeC = [string] -> string -> string - - Example: - escapeC [" "] "foo bar" - => "foo\\x20bar" + Type: escapeC = [string] -> string -> string + Example: + escapeC [" "] "foo bar" + => "foo\\x20bar" */ - escapeC = list: replaceStrings list (map (c: "\\x${ toLower (lib.toHexString (charToInt c))}") list); + escapeC = list: replaceStrings list (map (c: "\\x${toLower (lib.toHexString (charToInt c))}") list); - /* Escape the string so it can be safely placed inside a URL - query. + /* + Escape the string so it can be safely placed inside a URL + query. - Type: escapeURL :: string -> string + Type: escapeURL :: string -> string - Example: - escapeURL "foo/bar baz" - => "foo%2Fbar%20baz" + Example: + escapeURL "foo/bar baz" + => "foo%2Fbar%20baz" */ - escapeURL = let - unreserved = [ "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "-" "_" "." "~" ]; - toEscape = builtins.removeAttrs asciiTable unreserved; - in - replaceStrings (builtins.attrNames toEscape) (lib.mapAttrsToList (_: c: "%${fixedWidthString 2 "0" (lib.toHexString c)}") toEscape); + escapeURL = + let + unreserved = [ + "A" + "B" + "C" + "D" + "E" + "F" + "G" + "H" + "I" + "J" + "K" + "L" + "M" + "N" + "O" + "P" + "Q" + "R" + "S" + "T" + "U" + "V" + "W" + "X" + "Y" + "Z" + "a" + "b" + "c" + "d" + "e" + "f" + "g" + "h" + "i" + "j" + "k" + "l" + "m" + "n" + "o" + "p" + "q" + "r" + "s" + "t" + "u" + "v" + "w" + "x" + "y" + "z" + "0" + "1" + "2" + "3" + "4" + "5" + "6" + "7" + "8" + "9" + "-" + "_" + "." + "~" + ]; + toEscape = builtins.removeAttrs asciiTable unreserved; + in + replaceStrings (builtins.attrNames toEscape) ( + lib.mapAttrsToList (_: c: "%${fixedWidthString 2 "0" (lib.toHexString c)}") toEscape + ); - /* Quote string to be used safely within the Bourne shell. + /* + Quote string to be used safely within the Bourne shell. - Type: escapeShellArg :: string -> string + Type: escapeShellArg :: string -> string - Example: - escapeShellArg "esc'ape\nme" - => "'esc'\\''ape\nme'" + Example: + escapeShellArg "esc'ape\nme" + => "'esc'\\''ape\nme'" */ - escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'"; + escapeShellArg = arg: "'${replaceStrings [ "'" ] [ "'\\''" ] (toString arg)}'"; - /* Quote all arguments to be safely passed to the Bourne shell. + /* + Quote all arguments to be safely passed to the Bourne shell. - Type: escapeShellArgs :: [string] -> string + Type: escapeShellArgs :: [string] -> string - Example: - escapeShellArgs ["one" "two three" "four'five"] - => "'one' 'two three' 'four'\\''five'" + Example: + escapeShellArgs ["one" "two three" "four'five"] + => "'one' 'two three' 'four'\\''five'" */ escapeShellArgs = concatMapStringsSep " " escapeShellArg; - /* Test whether the given name is a valid POSIX shell variable name. + /* + Test whether the given name is a valid POSIX shell variable name. - Type: string -> bool + Type: string -> bool - Example: - isValidPosixName "foo_bar000" - => true - isValidPosixName "0-bad.jpg" - => false + Example: + isValidPosixName "foo_bar000" + => true + isValidPosixName "0-bad.jpg" + => false */ isValidPosixName = name: match "[a-zA-Z_][a-zA-Z0-9_]*" name != null; - /* Translate a Nix value into a shell variable declaration, with proper escaping. + /* + Translate a Nix value into a shell variable declaration, with proper escaping. - The value can be a string (mapped to a regular variable), a list of strings - (mapped to a Bash-style array) or an attribute set of strings (mapped to a - Bash-style associative array). Note that "string" includes string-coercible - values like paths or derivations. + The value can be a string (mapped to a regular variable), a list of strings + (mapped to a Bash-style array) or an attribute set of strings (mapped to a + Bash-style associative array). Note that "string" includes string-coercible + values like paths or derivations. - Strings are translated into POSIX sh-compatible code; lists and attribute sets - assume a shell that understands Bash syntax (e.g. Bash or ZSH). + Strings are translated into POSIX sh-compatible code; lists and attribute sets + assume a shell that understands Bash syntax (e.g. Bash or ZSH). - Type: string -> (string | listOf string | attrsOf string) -> string + Type: string -> (string | listOf string | attrsOf string) -> string - Example: - '' - ${toShellVar "foo" "some string"} - [[ "$foo" == "some string" ]] - '' + Example: + '' + ${toShellVar "foo" "some string"} + [[ "$foo" == "some string" ]] + '' */ - toShellVar = name: value: + toShellVar = + name: value: lib.throwIfNot (isValidPosixName name) "toShellVar: ${name} is not a valid shell variable name" ( - if isAttrs value && ! isStringLike value then - "declare -A ${name}=(${ - concatStringsSep " " (lib.mapAttrsToList (n: v: - "[${escapeShellArg n}]=${escapeShellArg v}" - ) value) - })" - else if isList value then - "declare -a ${name}=(${escapeShellArgs value})" - else - "${name}=${escapeShellArg value}" + if isAttrs value && !isStringLike value then + "declare -A ${name}=(${ + concatStringsSep " " (lib.mapAttrsToList (n: v: "[${escapeShellArg n}]=${escapeShellArg v}") value) + })" + else if isList value then + "declare -a ${name}=(${escapeShellArgs value})" + else + "${name}=${escapeShellArg value}" ); - /* Translate an attribute set into corresponding shell variable declarations - using `toShellVar`. + /* + Translate an attribute set into corresponding shell variable declarations + using `toShellVar`. - Type: attrsOf (string | listOf string | attrsOf string) -> string + Type: attrsOf (string | listOf string | attrsOf string) -> string - Example: - let - foo = "value"; - bar = foo; - in '' - ${toShellVars { inherit foo bar; }} - [[ "$foo" == "$bar" ]] - '' + Example: + let + foo = "value"; + bar = foo; + in '' + ${toShellVars { inherit foo bar; }} + [[ "$foo" == "$bar" ]] + '' */ toShellVars = vars: concatStringsSep "\n" (lib.mapAttrsToList toShellVar vars); - /* Turn a string into a Nix expression representing that string + /* + Turn a string into a Nix expression representing that string - Type: string -> string + Type: string -> string - Example: - escapeNixString "hello\${}\n" - => "\"hello\\\${}\\n\"" + Example: + escapeNixString "hello\${}\n" + => "\"hello\\\${}\\n\"" */ - escapeNixString = s: escape ["$"] (toJSON s); + escapeNixString = s: escape [ "$" ] (toJSON s); - /* Turn a string into an exact regular expression + /* + Turn a string into an exact regular expression - Type: string -> string + Type: string -> string - Example: - escapeRegex "[^a-z]*" - => "\\[\\^a-z]\\*" + Example: + escapeRegex "[^a-z]*" + => "\\[\\^a-z]\\*" */ escapeRegex = escape (stringToCharacters "\\[{()^$?*+|."); - /* Quotes a string if it can't be used as an identifier directly. + /* + Quotes a string if it can't be used as an identifier directly. - Type: string -> string + Type: string -> string - Example: - escapeNixIdentifier "hello" - => "hello" - escapeNixIdentifier "0abc" - => "\"0abc\"" + Example: + escapeNixIdentifier "hello" + => "hello" + escapeNixIdentifier "0abc" + => "\"0abc\"" */ - escapeNixIdentifier = s: + escapeNixIdentifier = + s: # Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91 - if match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null - then s else escapeNixString s; + if match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null then s else escapeNixString s; - /* Escapes a string such that it is safe to include verbatim in an XML - document. + /* + Escapes a string such that it is safe to include verbatim in an XML + document. - Type: string -> string + Type: string -> string - Example: - escapeXML ''"test" 'test' < & >'' - => ""test" 'test' < & >" + Example: + escapeXML ''"test" 'test' < & >'' + => ""test" 'test' < & >" */ - escapeXML = builtins.replaceStrings - ["\"" "'" "<" ">" "&"] - [""" "'" "<" ">" "&"]; + escapeXML = + builtins.replaceStrings + [ + "\"" + "'" + "<" + ">" + "&" + ] + [ + """ + "'" + "<" + ">" + "&" + ]; # warning added 12-12-2022 replaceChars = lib.warn "lib.replaceChars is a deprecated alias of lib.replaceStrings." builtins.replaceStrings; @@ -578,65 +691,73 @@ rec { lowerChars = stringToCharacters "abcdefghijklmnopqrstuvwxyz"; upperChars = stringToCharacters "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - /* Converts an ASCII string to lower-case. + /* + Converts an ASCII string to lower-case. - Type: toLower :: string -> string + Type: toLower :: string -> string - Example: - toLower "HOME" - => "home" + Example: + toLower "HOME" + => "home" */ toLower = replaceStrings upperChars lowerChars; - /* Converts an ASCII string to upper-case. + /* + Converts an ASCII string to upper-case. - Type: toUpper :: string -> string + Type: toUpper :: string -> string - Example: - toUpper "home" - => "HOME" + Example: + toUpper "home" + => "HOME" */ toUpper = replaceStrings lowerChars upperChars; - /* Appends string context from another string. This is an implementation - detail of Nix and should be used carefully. + /* + Appends string context from another string. This is an implementation + detail of Nix and should be used carefully. - Strings in Nix carry an invisible `context` which is a list of strings - representing store paths. If the string is later used in a derivation - attribute, the derivation will properly populate the inputDrvs and - inputSrcs. + Strings in Nix carry an invisible `context` which is a list of strings + representing store paths. If the string is later used in a derivation + attribute, the derivation will properly populate the inputDrvs and + inputSrcs. - Example: - pkgs = import { }; - addContextFrom pkgs.coreutils "bar" - => "bar" + Example: + pkgs = import { }; + addContextFrom pkgs.coreutils "bar" + => "bar" */ addContextFrom = a: b: substring 0 0 a + b; - /* Cut a string with a separator and produces a list of strings which - were separated by this separator. + /* + Cut a string with a separator and produces a list of strings which + were separated by this separator. - Example: - splitString "." "foo.bar.baz" - => [ "foo" "bar" "baz" ] - splitString "/" "/usr/local/bin" - => [ "" "usr" "local" "bin" ] + Example: + splitString "." "foo.bar.baz" + => [ "foo" "bar" "baz" ] + splitString "/" "/usr/local/bin" + => [ "" "usr" "local" "bin" ] */ - splitString = sep: s: + splitString = + sep: s: let - splits = builtins.filter builtins.isString (builtins.split (escapeRegex (toString sep)) (toString s)); + splits = builtins.filter builtins.isString ( + builtins.split (escapeRegex (toString sep)) (toString s) + ); in - map (addContextFrom s) splits; + map (addContextFrom s) splits; - /* Return a string without the specified prefix, if the prefix matches. + /* + Return a string without the specified prefix, if the prefix matches. - Type: string -> string -> string + Type: string -> string -> string - Example: - removePrefix "foo." "foo.bar.baz" - => "bar.baz" - removePrefix "xxx" "foo.bar.baz" - => "foo.bar.baz" + Example: + removePrefix "foo." "foo.bar.baz" + => "bar.baz" + removePrefix "xxx" "foo.bar.baz" + => "foo.bar.baz" */ removePrefix = # Prefix to remove if it matches @@ -645,31 +766,33 @@ rec { str: # Before 23.05, paths would be copied to the store before converting them # to strings and comparing. This was surprising and confusing. - warnIf - (isPath prefix) + warnIf (isPath prefix) '' lib.strings.removePrefix: The first argument (${toString prefix}) is a path value, but only strings are supported. There is almost certainly a bug in the calling code, since this function never removes any prefix in such a case. This function also copies the path to the Nix store, which may not be what you want. This behavior is deprecated and will throw an error in the future.'' - (let - preLen = stringLength prefix; - in - if substring 0 preLen str == prefix then - # -1 will take the string until the end - substring preLen (-1) str - else - str); + ( + let + preLen = stringLength prefix; + in + if substring 0 preLen str == prefix then + # -1 will take the string until the end + substring preLen (-1) str + else + str + ); - /* Return a string without the specified suffix, if the suffix matches. + /* + Return a string without the specified suffix, if the suffix matches. - Type: string -> string -> string + Type: string -> string -> string - Example: - removeSuffix "front" "homefront" - => "home" - removeSuffix "xxx" "homefront" - => "homefront" + Example: + removeSuffix "front" "homefront" + => "home" + removeSuffix "xxx" "homefront" + => "homefront" */ removeSuffix = # Suffix to remove if it matches @@ -678,95 +801,103 @@ rec { str: # Before 23.05, paths would be copied to the store before converting them # to strings and comparing. This was surprising and confusing. - warnIf - (isPath suffix) + warnIf (isPath suffix) '' lib.strings.removeSuffix: The first argument (${toString suffix}) is a path value, but only strings are supported. There is almost certainly a bug in the calling code, since this function never removes any suffix in such a case. This function also copies the path to the Nix store, which may not be what you want. This behavior is deprecated and will throw an error in the future.'' - (let - sufLen = stringLength suffix; - sLen = stringLength str; - in - if sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str then - substring 0 (sLen - sufLen) str - else - str); + ( + let + sufLen = stringLength suffix; + sLen = stringLength str; + in + if sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str then + substring 0 (sLen - sufLen) str + else + str + ); - /* Return true if string v1 denotes a version older than v2. + /* + Return true if string v1 denotes a version older than v2. - Example: - versionOlder "1.1" "1.2" - => true - versionOlder "1.1" "1.1" - => false + Example: + versionOlder "1.1" "1.2" + => true + versionOlder "1.1" "1.1" + => false */ versionOlder = v1: v2: compareVersions v2 v1 == 1; - /* Return true if string v1 denotes a version equal to or newer than v2. + /* + Return true if string v1 denotes a version equal to or newer than v2. - Example: - versionAtLeast "1.1" "1.0" - => true - versionAtLeast "1.1" "1.1" - => true - versionAtLeast "1.1" "1.2" - => false + Example: + versionAtLeast "1.1" "1.0" + => true + versionAtLeast "1.1" "1.1" + => true + versionAtLeast "1.1" "1.2" + => false */ versionAtLeast = v1: v2: !versionOlder v1 v2; - /* This function takes an argument that's either a derivation or a - derivation's "name" attribute and extracts the name part from that - argument. + /* + This function takes an argument that's either a derivation or a + derivation's "name" attribute and extracts the name part from that + argument. - Example: - getName "youtube-dl-2016.01.01" - => "youtube-dl" - getName pkgs.youtube-dl - => "youtube-dl" + Example: + getName "youtube-dl-2016.01.01" + => "youtube-dl" + getName pkgs.youtube-dl + => "youtube-dl" */ - getName = let - parse = drv: (parseDrvName drv).name; - in x: - if isString x - then parse x - else x.pname or (parse x.name); + getName = + let + parse = drv: (parseDrvName drv).name; + in + x: if isString x then parse x else x.pname or (parse x.name); - /* This function takes an argument that's either a derivation or a - derivation's "name" attribute and extracts the version part from that - argument. + /* + This function takes an argument that's either a derivation or a + derivation's "name" attribute and extracts the version part from that + argument. - Example: - getVersion "youtube-dl-2016.01.01" - => "2016.01.01" - getVersion pkgs.youtube-dl - => "2016.01.01" + Example: + getVersion "youtube-dl-2016.01.01" + => "2016.01.01" + getVersion pkgs.youtube-dl + => "2016.01.01" */ - getVersion = let - parse = drv: (parseDrvName drv).version; - in x: - if isString x - then parse x - else x.version or (parse x.name); + getVersion = + let + parse = drv: (parseDrvName drv).version; + in + x: if isString x then parse x else x.version or (parse x.name); - /* Extract name with version from URL. Ask for separator which is - supposed to start extension. + /* + Extract name with version from URL. Ask for separator which is + supposed to start extension. - Example: - nameFromURL "https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2" "-" - => "nix" - nameFromURL "https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2" "_" - => "nix-1.7-x86" + Example: + nameFromURL "https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2" "-" + => "nix" + nameFromURL "https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2" "_" + => "nix-1.7-x86" */ - nameFromURL = url: sep: + nameFromURL = + url: sep: let components = splitString "/" url; filename = lib.last components; name = head (splitString sep filename); - in assert name != filename; name; + in + assert name != filename; + name; - /* Create a "-D:=" string that can be passed to typical + /* + Create a "-D:=" string that can be passed to typical CMake invocations. Type: cmakeOptionType :: string -> string -> string -> string @@ -782,15 +913,24 @@ rec { cmakeOptionType "string" "ENGINE" "sdl2" => "-DENGINE:STRING=sdl2" */ - cmakeOptionType = let - types = [ "BOOL" "FILEPATH" "PATH" "STRING" "INTERNAL" ]; - in type: feature: value: + cmakeOptionType = + let + types = [ + "BOOL" + "FILEPATH" + "PATH" + "STRING" + "INTERNAL" + ]; + in + type: feature: value: assert (elem (toUpper type) types); assert (isString feature); assert (isString value); "-D${feature}:${toUpper type}=${value}"; - /* Create a -D={TRUE,FALSE} string that can be passed to typical + /* + Create a -D={TRUE,FALSE} string that can be passed to typical CMake invocations. Type: cmakeBool :: string -> bool -> string @@ -802,12 +942,14 @@ rec { cmakeBool "ENABLE_STATIC_LIBS" false => "-DENABLESTATIC_LIBS:BOOL=FALSE" */ - cmakeBool = condition: flag: + cmakeBool = + condition: flag: assert (lib.isString condition); assert (lib.isBool flag); cmakeOptionType "bool" condition (lib.toUpper (lib.boolToString flag)); - /* Create a -D:STRING= string that can be passed to typical + /* + Create a -D:STRING= string that can be passed to typical CMake invocations. This is the most typical usage, so it deserves a special case. @@ -820,12 +962,14 @@ rec { cmakeFeature "MODULES" "badblock" => "-DMODULES:STRING=badblock" */ - cmakeFeature = feature: value: + cmakeFeature = + feature: value: assert (lib.isString feature); assert (lib.isString value); cmakeOptionType "string" feature value; - /* Create a -D= string that can be passed to typical Meson + /* + Create a -D= string that can be passed to typical Meson invocations. Type: mesonOption :: string -> string -> string @@ -837,12 +981,14 @@ rec { mesonOption "engine" "opengl" => "-Dengine=opengl" */ - mesonOption = feature: value: + mesonOption = + feature: value: assert (lib.isString feature); assert (lib.isString value); "-D${feature}=${value}"; - /* Create a -D={true,false} string that can be passed to typical + /* + Create a -D={true,false} string that can be passed to typical Meson invocations. Type: mesonBool :: string -> bool -> string @@ -856,12 +1002,14 @@ rec { mesonBool "static" false => "-Dstatic=false" */ - mesonBool = condition: flag: + mesonBool = + condition: flag: assert (lib.isString condition); assert (lib.isBool flag); mesonOption condition (lib.boolToString flag); - /* Create a -D={enabled,disabled} string that can be passed to + /* + Create a -D={enabled,disabled} string that can be passed to typical Meson invocations. Type: mesonEnable :: string -> bool -> string @@ -875,180 +1023,202 @@ rec { mesonEnable "savage" false => "-Dsavage=disabled" */ - mesonEnable = feature: flag: + mesonEnable = + feature: flag: assert (lib.isString feature); assert (lib.isBool flag); mesonOption feature (if flag then "enabled" else "disabled"); - /* Create an --{enable,disable}- string that can be passed to - standard GNU Autoconf scripts. + /* + Create an --{enable,disable}- string that can be passed to + standard GNU Autoconf scripts. - Example: - enableFeature true "shared" - => "--enable-shared" - enableFeature false "shared" - => "--disable-shared" + Example: + enableFeature true "shared" + => "--enable-shared" + enableFeature false "shared" + => "--disable-shared" */ - enableFeature = flag: feature: + enableFeature = + flag: feature: assert lib.isBool flag; assert lib.isString feature; # e.g. passing openssl instead of "openssl" "--${if flag then "enable" else "disable"}-${feature}"; - /* Create an --{enable-=,disable-} string that can be passed to - standard GNU Autoconf scripts. + /* + Create an --{enable-=,disable-} string that can be passed to + standard GNU Autoconf scripts. - Example: - enableFeatureAs true "shared" "foo" - => "--enable-shared=foo" - enableFeatureAs false "shared" (throw "ignored") - => "--disable-shared" + Example: + enableFeatureAs true "shared" "foo" + => "--enable-shared=foo" + enableFeatureAs false "shared" (throw "ignored") + => "--disable-shared" */ - enableFeatureAs = flag: feature: value: + enableFeatureAs = + flag: feature: value: enableFeature flag feature + optionalString flag "=${value}"; - /* Create an --{with,without}- string that can be passed to - standard GNU Autoconf scripts. + /* + Create an --{with,without}- string that can be passed to + standard GNU Autoconf scripts. - Example: - withFeature true "shared" - => "--with-shared" - withFeature false "shared" - => "--without-shared" + Example: + withFeature true "shared" + => "--with-shared" + withFeature false "shared" + => "--without-shared" */ - withFeature = flag: feature: + withFeature = + flag: feature: assert isString feature; # e.g. passing openssl instead of "openssl" "--${if flag then "with" else "without"}-${feature}"; - /* Create an --{with-=,without-} string that can be passed to - standard GNU Autoconf scripts. + /* + Create an --{with-=,without-} string that can be passed to + standard GNU Autoconf scripts. - Example: - withFeatureAs true "shared" "foo" - => "--with-shared=foo" - withFeatureAs false "shared" (throw "ignored") - => "--without-shared" + Example: + withFeatureAs true "shared" "foo" + => "--with-shared=foo" + withFeatureAs false "shared" (throw "ignored") + => "--without-shared" */ - withFeatureAs = flag: feature: value: + withFeatureAs = + flag: feature: value: withFeature flag feature + optionalString flag "=${value}"; - /* Create a fixed width string with additional prefix to match - required width. + /* + Create a fixed width string with additional prefix to match + required width. - This function will fail if the input string is longer than the - requested length. + This function will fail if the input string is longer than the + requested length. - Type: fixedWidthString :: int -> string -> string -> string + Type: fixedWidthString :: int -> string -> string -> string - Example: - fixedWidthString 5 "0" (toString 15) - => "00015" + Example: + fixedWidthString 5 "0" (toString 15) + => "00015" */ - fixedWidthString = width: filler: str: + fixedWidthString = + width: filler: str: let strw = lib.stringLength str; reqWidth = width - (lib.stringLength filler); in - assert lib.assertMsg (strw <= width) - "fixedWidthString: requested string length (${ - toString width}) must not be shorter than actual length (${ - toString strw})"; - if strw == width then str else filler + fixedWidthString reqWidth filler str; + assert lib.assertMsg (strw <= width) + "fixedWidthString: requested string length (${toString width}) must not be shorter than actual length (${toString strw})"; + if strw == width then str else filler + fixedWidthString reqWidth filler str; - /* Format a number adding leading zeroes up to fixed width. + /* + Format a number adding leading zeroes up to fixed width. - Example: - fixedWidthNumber 5 15 - => "00015" + Example: + fixedWidthNumber 5 15 + => "00015" */ fixedWidthNumber = width: n: fixedWidthString width "0" (toString n); - /* Convert a float to a string, but emit a warning when precision is lost - during the conversion + /* + Convert a float to a string, but emit a warning when precision is lost + during the conversion - Example: - floatToString 0.000001 - => "0.000001" - floatToString 0.0000001 - => trace: warning: Imprecise conversion from float to string 0.000000 - "0.000000" + Example: + floatToString 0.000001 + => "0.000001" + floatToString 0.0000001 + => trace: warning: Imprecise conversion from float to string 0.000000 + "0.000000" */ - floatToString = float: let - result = toString float; - precise = float == fromJSON result; - in lib.warnIf (!precise) "Imprecise conversion from float to string ${result}" - result; + floatToString = + float: + let + result = toString float; + precise = float == fromJSON result; + in + lib.warnIf (!precise) "Imprecise conversion from float to string ${result}" result; - /* Soft-deprecated function. While the original implementation is available as - isConvertibleWithToString, consider using isStringLike instead, if suitable. */ - isCoercibleToString = lib.warnIf (lib.isInOldestRelease 2305) - "lib.strings.isCoercibleToString is deprecated in favor of either isStringLike or isConvertibleWithToString. Only use the latter if it needs to return true for null, numbers, booleans and list of similarly coercibles." - isConvertibleWithToString; - - /* Check whether a list or other value can be passed to toString. - - Many types of value are coercible to string this way, including int, float, - null, bool, list of similarly coercible values. + /* + Soft-deprecated function. While the original implementation is available as + isConvertibleWithToString, consider using isStringLike instead, if suitable. */ - isConvertibleWithToString = let - types = [ "null" "int" "float" "bool" ]; - in x: - isStringLike x || - elem (typeOf x) types || - (isList x && lib.all isConvertibleWithToString x); + isCoercibleToString = + lib.warnIf (lib.isInOldestRelease 2305) + "lib.strings.isCoercibleToString is deprecated in favor of either isStringLike or isConvertibleWithToString. Only use the latter if it needs to return true for null, numbers, booleans and list of similarly coercibles." + isConvertibleWithToString; - /* Check whether a value can be coerced to a string. - The value must be a string, path, or attribute set. + /* + Check whether a list or other value can be passed to toString. - String-like values can be used without explicit conversion in - string interpolations and in most functions that expect a string. - */ - isStringLike = x: - isString x || - isPath x || - x ? outPath || - x ? __toString; - - /* Check whether a value is a store path. - - Example: - isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/bin/python" - => false - isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11" - => true - isStorePath pkgs.python - => true - isStorePath [] || isStorePath 42 || isStorePath {} || … - => false + Many types of value are coercible to string this way, including int, float, + null, bool, list of similarly coercible values. */ - isStorePath = x: + isConvertibleWithToString = + let + types = [ + "null" + "int" + "float" + "bool" + ]; + in + x: isStringLike x || elem (typeOf x) types || (isList x && lib.all isConvertibleWithToString x); + + /* + Check whether a value can be coerced to a string. + The value must be a string, path, or attribute set. + + String-like values can be used without explicit conversion in + string interpolations and in most functions that expect a string. + */ + isStringLike = x: isString x || isPath x || x ? outPath || x ? __toString; + + /* + Check whether a value is a store path. + + Example: + isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/bin/python" + => false + isStorePath "/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11" + => true + isStorePath pkgs.python + => true + isStorePath [] || isStorePath 42 || isStorePath {} || … + => false + */ + isStorePath = + x: if isStringLike x then - let str = toString x; in - substring 0 1 str == "/" - && dirOf str == storeDir + let + str = toString x; + in + substring 0 1 str == "/" && dirOf str == storeDir else false; - /* Parse a string as an int. Does not support parsing of integers with preceding zero due to - ambiguity between zero-padded and octal numbers. See toIntBase10. + /* + Parse a string as an int. Does not support parsing of integers with preceding zero due to + ambiguity between zero-padded and octal numbers. See toIntBase10. - Type: string -> int + Type: string -> int - Example: + Example: - toInt "1337" - => 1337 + toInt "1337" + => 1337 - toInt "-4" - => -4 + toInt "-4" + => -4 - toInt " 123 " - => 123 + toInt " 123 " + => 123 - toInt "00024" - => error: Ambiguity in interpretation of 00024 between octal and zero padded integer. + toInt "00024" + => error: Ambiguity in interpretation of 00024 between octal and zero padded integer. - toInt "3.14" - => error: floating point JSON numbers are not supported + toInt "3.14" + => error: floating point JSON numbers are not supported */ toInt = let @@ -1062,7 +1232,7 @@ rec { strippedInput = matchStripInput str; # RegEx: Match a leading '0' then one or more digits. - isLeadingZero = matchLeadingZero (head strippedInput) == []; + isLeadingZero = matchLeadingZero (head strippedInput) == [ ]; # Attempt to parse input parsedInput = fromJSON (head strippedInput); @@ -1070,38 +1240,39 @@ rec { generalError = "toInt: Could not convert ${escapeNixString str} to int."; in - # Error on presence of non digit characters. - if strippedInput == null - then throw generalError - # Error on presence of leading zero/octal ambiguity. - else if isLeadingZero - then throw "toInt: Ambiguity in interpretation of ${escapeNixString str} between octal and zero padded integer." - # Error if parse function fails. - else if !isInt parsedInput - then throw generalError - # Return result. - else parsedInput; + # Error on presence of non digit characters. + if strippedInput == null then + throw generalError + # Error on presence of leading zero/octal ambiguity. + else if isLeadingZero then + throw "toInt: Ambiguity in interpretation of ${escapeNixString str} between octal and zero padded integer." + # Error if parse function fails. + else if !isInt parsedInput then + throw generalError + # Return result. + else + parsedInput; + /* + Parse a string as a base 10 int. This supports parsing of zero-padded integers. - /* Parse a string as a base 10 int. This supports parsing of zero-padded integers. + Type: string -> int - Type: string -> int + Example: + toIntBase10 "1337" + => 1337 - Example: - toIntBase10 "1337" - => 1337 + toIntBase10 "-4" + => -4 - toIntBase10 "-4" - => -4 + toIntBase10 " 123 " + => 123 - toIntBase10 " 123 " - => 123 + toIntBase10 "00024" + => 24 - toIntBase10 "00024" - => 24 - - toIntBase10 "3.14" - => error: floating point JSON numbers are not supported + toIntBase10 "3.14" + => error: floating point JSON numbers are not supported */ toIntBase10 = let @@ -1116,7 +1287,7 @@ rec { strippedInput = matchStripInput str; # RegEx: Match at least one '0'. - isZero = matchZero (head strippedInput) == []; + isZero = matchZero (head strippedInput) == [ ]; # Attempt to parse input parsedInput = fromJSON (head strippedInput); @@ -1124,218 +1295,259 @@ rec { generalError = "toIntBase10: Could not convert ${escapeNixString str} to int."; in - # Error on presence of non digit characters. - if strippedInput == null - then throw generalError - # In the special case zero-padded zero (00000), return early. - else if isZero - then 0 - # Error if parse function fails. - else if !isInt parsedInput - then throw generalError - # Return result. - else parsedInput; + # Error on presence of non digit characters. + if strippedInput == null then + throw generalError + # In the special case zero-padded zero (00000), return early. + else if isZero then + 0 + # Error if parse function fails. + else if !isInt parsedInput then + throw generalError + # Return result. + else + parsedInput; - /* Read a list of paths from `file`, relative to the `rootPath`. - Lines beginning with `#` are treated as comments and ignored. - Whitespace is significant. + /* + Read a list of paths from `file`, relative to the `rootPath`. + Lines beginning with `#` are treated as comments and ignored. + Whitespace is significant. - NOTE: This function is not performant and should be avoided. + NOTE: This function is not performant and should be avoided. - Example: - readPathsFromFile /prefix - ./pkgs/development/libraries/qt-5/5.4/qtbase/series - => [ "/prefix/dlopen-resolv.patch" "/prefix/tzdir.patch" - "/prefix/dlopen-libXcursor.patch" "/prefix/dlopen-openssl.patch" - "/prefix/dlopen-dbus.patch" "/prefix/xdg-config-dirs.patch" - "/prefix/nix-profiles-library-paths.patch" - "/prefix/compose-search-path.patch" ] + Example: + readPathsFromFile /prefix + ./pkgs/development/libraries/qt-5/5.4/qtbase/series + => [ "/prefix/dlopen-resolv.patch" "/prefix/tzdir.patch" + "/prefix/dlopen-libXcursor.patch" "/prefix/dlopen-openssl.patch" + "/prefix/dlopen-dbus.patch" "/prefix/xdg-config-dirs.patch" + "/prefix/nix-profiles-library-paths.patch" + "/prefix/compose-search-path.patch" ] */ - readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead." - (rootPath: file: - let - lines = lib.splitString "\n" (readFile file); - removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line)); - relativePaths = removeComments lines; - absolutePaths = map (path: rootPath + "/${path}") relativePaths; - in - absolutePaths); + readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead." ( + rootPath: file: + let + lines = lib.splitString "\n" (readFile file); + removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line)); + relativePaths = removeComments lines; + absolutePaths = map (path: rootPath + "/${path}") relativePaths; + in + absolutePaths + ); - /* Read the contents of a file removing the trailing \n + /* + Read the contents of a file removing the trailing \n - Type: fileContents :: path -> string + Type: fileContents :: path -> string - Example: - $ echo "1.0" > ./version + Example: + $ echo "1.0" > ./version - fileContents ./version - => "1.0" + fileContents ./version + => "1.0" */ fileContents = file: removeSuffix "\n" (readFile file); + /* + Creates a valid derivation name from a potentially invalid one. - /* Creates a valid derivation name from a potentially invalid one. + Type: sanitizeDerivationName :: String -> String - Type: sanitizeDerivationName :: String -> String - - Example: - sanitizeDerivationName "../hello.bar # foo" - => "-hello.bar-foo" - sanitizeDerivationName "" - => "unknown" - sanitizeDerivationName pkgs.hello - => "-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10" + Example: + sanitizeDerivationName "../hello.bar # foo" + => "-hello.bar-foo" + sanitizeDerivationName "" + => "unknown" + sanitizeDerivationName pkgs.hello + => "-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10" */ sanitizeDerivationName = - let okRegex = match "[[:alnum:]+_?=-][[:alnum:]+._?=-]*"; - in - string: - # First detect the common case of already valid strings, to speed those up - if stringLength string <= 207 && okRegex string != null - then unsafeDiscardStringContext string - else lib.pipe string [ - # Get rid of string context. This is safe under the assumption that the - # resulting string is only used as a derivation name - unsafeDiscardStringContext - # Strip all leading "." - (x: elemAt (match "\\.*(.*)" x) 0) - # Split out all invalid characters - # https://github.com/NixOS/nix/blob/2.3.2/src/libstore/store-api.cc#L85-L112 - # https://github.com/NixOS/nix/blob/2242be83c61788b9c0736a92bb0b5c7bbfc40803/nix-rust/src/store/path.rs#L100-L125 - (split "[^[:alnum:]+._?=-]+") - # Replace invalid character ranges with a "-" - (concatMapStrings (s: if lib.isList s then "-" else s)) - # Limit to 211 characters (minus 4 chars for ".drv") - (x: substring (lib.max (stringLength x - 207) 0) (-1) x) - # If the result is empty, replace it with "unknown" - (x: if stringLength x == 0 then "unknown" else x) - ]; + let + okRegex = match "[[:alnum:]+_?=-][[:alnum:]+._?=-]*"; + in + string: + # First detect the common case of already valid strings, to speed those up + if stringLength string <= 207 && okRegex string != null then + unsafeDiscardStringContext string + else + lib.pipe string [ + # Get rid of string context. This is safe under the assumption that the + # resulting string is only used as a derivation name + unsafeDiscardStringContext + # Strip all leading "." + (x: elemAt (match "\\.*(.*)" x) 0) + # Split out all invalid characters + # https://github.com/NixOS/nix/blob/2.3.2/src/libstore/store-api.cc#L85-L112 + # https://github.com/NixOS/nix/blob/2242be83c61788b9c0736a92bb0b5c7bbfc40803/nix-rust/src/store/path.rs#L100-L125 + (split "[^[:alnum:]+._?=-]+") + # Replace invalid character ranges with a "-" + (concatMapStrings (s: if lib.isList s then "-" else s)) + # Limit to 211 characters (minus 4 chars for ".drv") + (x: substring (lib.max (stringLength x - 207) 0) (-1) x) + # If the result is empty, replace it with "unknown" + (x: if stringLength x == 0 then "unknown" else x) + ]; - /* Computes the Levenshtein distance between two strings. - Complexity O(n*m) where n and m are the lengths of the strings. - Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742 + /* + Computes the Levenshtein distance between two strings. + Complexity O(n*m) where n and m are the lengths of the strings. + Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742 - Type: levenshtein :: string -> string -> int + Type: levenshtein :: string -> string -> int - Example: - levenshtein "foo" "foo" - => 0 - levenshtein "book" "hook" - => 1 - levenshtein "hello" "Heyo" - => 3 + Example: + levenshtein "foo" "foo" + => 0 + levenshtein "book" "hook" + => 1 + levenshtein "hello" "Heyo" + => 3 */ - levenshtein = a: b: let - # Two dimensional array with dimensions (stringLength a + 1, stringLength b + 1) - arr = lib.genList (i: - lib.genList (j: - dist i j - ) (stringLength b + 1) - ) (stringLength a + 1); - d = x: y: lib.elemAt (lib.elemAt arr x) y; - dist = i: j: - let c = if substring (i - 1) 1 a == substring (j - 1) 1 b - then 0 else 1; - in - if j == 0 then i - else if i == 0 then j - else lib.min - ( lib.min (d (i - 1) j + 1) (d i (j - 1) + 1)) - ( d (i - 1) (j - 1) + c ); - in d (stringLength a) (stringLength b); + levenshtein = + a: b: + let + # Two dimensional array with dimensions (stringLength a + 1, stringLength b + 1) + arr = lib.genList (i: lib.genList (j: dist i j) (stringLength b + 1)) (stringLength a + 1); + d = x: y: lib.elemAt (lib.elemAt arr x) y; + dist = + i: j: + let + c = if substring (i - 1) 1 a == substring (j - 1) 1 b then 0 else 1; + in + if j == 0 then + i + else if i == 0 then + j + else + lib.min (lib.min (d (i - 1) j + 1) (d i (j - 1) + 1)) (d (i - 1) (j - 1) + c); + in + d (stringLength a) (stringLength b); - /* Returns the length of the prefix common to both strings. - */ - commonPrefixLength = a: b: + # Returns the length of the prefix common to both strings. + commonPrefixLength = + a: b: let m = lib.min (stringLength a) (stringLength b); - go = i: if i >= m then m else if substring i 1 a == substring i 1 b then go (i + 1) else i; - in go 0; + go = + i: + if i >= m then + m + else if substring i 1 a == substring i 1 b then + go (i + 1) + else + i; + in + go 0; - /* Returns the length of the suffix common to both strings. - */ - commonSuffixLength = a: b: + # Returns the length of the suffix common to both strings. + commonSuffixLength = + a: b: let m = lib.min (stringLength a) (stringLength b); - go = i: if i >= m then m else if substring (stringLength a - i - 1) 1 a == substring (stringLength b - i - 1) 1 b then go (i + 1) else i; - in go 0; + go = + i: + if i >= m then + m + else if substring (stringLength a - i - 1) 1 a == substring (stringLength b - i - 1) 1 b then + go (i + 1) + else + i; + in + go 0; - /* Returns whether the levenshtein distance between two strings is at most some value - Complexity is O(min(n,m)) for k <= 2 and O(n*m) otherwise + /* + Returns whether the levenshtein distance between two strings is at most some value + Complexity is O(min(n,m)) for k <= 2 and O(n*m) otherwise - Type: levenshteinAtMost :: int -> string -> string -> bool - - Example: - levenshteinAtMost 0 "foo" "foo" - => true - levenshteinAtMost 1 "foo" "boa" - => false - levenshteinAtMost 2 "foo" "boa" - => true - levenshteinAtMost 2 "This is a sentence" "this is a sentense." - => false - levenshteinAtMost 3 "This is a sentence" "this is a sentense." - => true + Type: levenshteinAtMost :: int -> string -> string -> bool + Example: + levenshteinAtMost 0 "foo" "foo" + => true + levenshteinAtMost 1 "foo" "boa" + => false + levenshteinAtMost 2 "foo" "boa" + => true + levenshteinAtMost 2 "This is a sentence" "this is a sentense." + => false + levenshteinAtMost 3 "This is a sentence" "this is a sentense." + => true */ - levenshteinAtMost = let - infixDifferAtMost1 = x: y: stringLength x <= 1 && stringLength y <= 1; + levenshteinAtMost = + let + infixDifferAtMost1 = x: y: stringLength x <= 1 && stringLength y <= 1; - # This function takes two strings stripped by their common pre and suffix, - # and returns whether they differ by at most two by Levenshtein distance. - # Because of this stripping, if they do indeed differ by at most two edits, - # we know that those edits were (if at all) done at the start or the end, - # while the middle has to have stayed the same. This fact is used in the - # implementation. - infixDifferAtMost2 = x: y: - let - xlen = stringLength x; - ylen = stringLength y; - # This function is only called with |x| >= |y| and |x| - |y| <= 2, so - # diff is one of 0, 1 or 2 - diff = xlen - ylen; + # This function takes two strings stripped by their common pre and suffix, + # and returns whether they differ by at most two by Levenshtein distance. + # Because of this stripping, if they do indeed differ by at most two edits, + # we know that those edits were (if at all) done at the start or the end, + # while the middle has to have stayed the same. This fact is used in the + # implementation. + infixDifferAtMost2 = + x: y: + let + xlen = stringLength x; + ylen = stringLength y; + # This function is only called with |x| >= |y| and |x| - |y| <= 2, so + # diff is one of 0, 1 or 2 + diff = xlen - ylen; - # Infix of x and y, stripped by the left and right most character - xinfix = substring 1 (xlen - 2) x; - yinfix = substring 1 (ylen - 2) y; + # Infix of x and y, stripped by the left and right most character + xinfix = substring 1 (xlen - 2) x; + yinfix = substring 1 (ylen - 2) y; - # x and y but a character deleted at the left or right - xdelr = substring 0 (xlen - 1) x; - xdell = substring 1 (xlen - 1) x; - ydelr = substring 0 (ylen - 1) y; - ydell = substring 1 (ylen - 1) y; - in + # x and y but a character deleted at the left or right + xdelr = substring 0 (xlen - 1) x; + xdell = substring 1 (xlen - 1) x; + ydelr = substring 0 (ylen - 1) y; + ydell = substring 1 (ylen - 1) y; + in # A length difference of 2 can only be gotten with 2 delete edits, # which have to have happened at the start and end of x # Example: "abcdef" -> "bcde" - if diff == 2 then xinfix == y + if diff == 2 then + xinfix == y # A length difference of 1 can only be gotten with a deletion on the # right and a replacement on the left or vice versa. # Example: "abcdef" -> "bcdez" or "zbcde" - else if diff == 1 then xinfix == ydelr || xinfix == ydell + else if diff == 1 then + xinfix == ydelr || xinfix == ydell # No length difference can either happen through replacements on both # sides, or a deletion on the left and an insertion on the right or # vice versa # Example: "abcdef" -> "zbcdez" or "bcdefz" or "zabcde" - else xinfix == yinfix || xdelr == ydell || xdell == ydelr; + else + xinfix == yinfix || xdelr == ydell || xdell == ydelr; - in k: if k <= 0 then a: b: a == b else - let f = a: b: - let - alen = stringLength a; - blen = stringLength b; - prelen = commonPrefixLength a b; - suflen = commonSuffixLength a b; - presuflen = prelen + suflen; - ainfix = substring prelen (alen - presuflen) a; - binfix = substring prelen (blen - presuflen) b; - in - # Make a be the bigger string - if alen < blen then f b a - # If a has over k more characters than b, even with k deletes on a, b can't be reached - else if alen - blen > k then false - else if k == 1 then infixDifferAtMost1 ainfix binfix - else if k == 2 then infixDifferAtMost2 ainfix binfix - else levenshtein ainfix binfix <= k; - in f; + in + k: + if k <= 0 then + a: b: a == b + else + let + f = + a: b: + let + alen = stringLength a; + blen = stringLength b; + prelen = commonPrefixLength a b; + suflen = commonSuffixLength a b; + presuflen = prelen + suflen; + ainfix = substring prelen (alen - presuflen) a; + binfix = substring prelen (blen - presuflen) b; + in + # Make a be the bigger string + if alen < blen then + f b a + # If a has over k more characters than b, even with k deletes on a, b can't be reached + else if alen - blen > k then + false + else if k == 1 then + infixDifferAtMost1 ainfix binfix + else if k == 2 then + infixDifferAtMost2 ainfix binfix + else + levenshtein ainfix binfix <= k; + in + f; } diff --git a/lib/systems/architectures.nix b/lib/systems/architectures.nix index 9be8c80..256565f 100644 --- a/lib/systems/architectures.nix +++ b/lib/systems/architectures.nix @@ -5,86 +5,348 @@ rec { features = { # x86_64 Generic # Spec: https://gitlab.com/x86-psABIs/x86-64-ABI/ - default = [ ]; - x86-64 = [ ]; - x86-64-v2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" ]; - x86-64-v3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "fma" ]; - x86-64-v4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "avx" "avx2" "avx512" "fma" ]; + default = [ ]; + x86-64 = [ ]; + x86-64-v2 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + ]; + x86-64-v3 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "avx" + "avx2" + "fma" + ]; + x86-64-v4 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "avx" + "avx2" + "avx512" + "fma" + ]; # x86_64 Intel - nehalem = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ]; - westmere = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" ]; - sandybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ]; - ivybridge = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ]; - haswell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ]; - broadwell = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ]; - skylake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ]; - skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - cannonlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - icelake-client = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - icelake-server = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - cascadelake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - cooperlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - tigerlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ]; - alderlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ]; + nehalem = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + ]; + westmere = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + ]; + sandybridge = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + ]; + ivybridge = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + ]; + haswell = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "fma" + ]; + broadwell = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "fma" + ]; + skylake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "fma" + ]; + skylake-avx512 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + cannonlake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + icelake-client = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + icelake-server = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + cascadelake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + cooperlake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + tigerlake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; + alderlake = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + "avx2" + "fma" + ]; # x86_64 AMD - btver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" ]; - btver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ]; - bdver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "fma" "fma4" ]; - bdver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "fma" "fma4" ]; - bdver3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "fma" "fma4" ]; - bdver4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" "fma4" ]; - znver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ]; - znver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ]; - znver3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ]; - znver4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "avx512" "fma" ]; + btver1 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + ]; + btver2 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "aes" + "avx" + ]; + bdver1 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "fma" + "fma4" + ]; + bdver2 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "fma" + "fma4" + ]; + bdver3 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "fma" + "fma4" + ]; + bdver4 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "avx2" + "fma" + "fma4" + ]; + znver1 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "avx2" + "fma" + ]; + znver2 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "avx2" + "fma" + ]; + znver3 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "avx2" + "fma" + ]; + znver4 = [ + "sse3" + "ssse3" + "sse4_1" + "sse4_2" + "sse4a" + "aes" + "avx" + "avx2" + "avx512" + "fma" + ]; # other - armv5te = [ ]; - armv6 = [ ]; - armv7-a = [ ]; - armv8-a = [ ]; - mips32 = [ ]; - loongson2f = [ ]; + armv5te = [ ]; + armv6 = [ ]; + armv7-a = [ ]; + armv8-a = [ ]; + mips32 = [ ]; + loongson2f = [ ]; }; # a superior CPU has all the features of an inferior and is able to build and test code for it inferiors = { # x86_64 Generic - default = [ ]; - x86-64 = [ ]; - x86-64-v2 = [ "x86-64" ]; + default = [ ]; + x86-64 = [ ]; + x86-64-v2 = [ "x86-64" ]; x86-64-v3 = [ "x86-64-v2" ] ++ inferiors.x86-64-v2; x86-64-v4 = [ "x86-64-v3" ] ++ inferiors.x86-64-v3; # x86_64 Intel # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html - nehalem = [ "x86-64-v2" ] ++ inferiors.x86-64-v2; - westmere = [ "nehalem" ] ++ inferiors.nehalem; - sandybridge = [ "westmere" ] ++ inferiors.westmere; - ivybridge = [ "sandybridge" ] ++ inferiors.sandybridge; + nehalem = [ "x86-64-v2" ] ++ inferiors.x86-64-v2; + westmere = [ "nehalem" ] ++ inferiors.nehalem; + sandybridge = [ "westmere" ] ++ inferiors.westmere; + ivybridge = [ "sandybridge" ] ++ inferiors.sandybridge; - haswell = lib.unique ([ "ivybridge" "x86-64-v3" ] ++ inferiors.ivybridge ++ inferiors.x86-64-v3); - broadwell = [ "haswell" ] ++ inferiors.haswell; - skylake = [ "broadwell" ] ++ inferiors.broadwell; + haswell = lib.unique ( + [ + "ivybridge" + "x86-64-v3" + ] + ++ inferiors.ivybridge + ++ inferiors.x86-64-v3 + ); + broadwell = [ "haswell" ] ++ inferiors.haswell; + skylake = [ "broadwell" ] ++ inferiors.broadwell; - skylake-avx512 = lib.unique ([ "skylake" "x86-64-v4" ] ++ inferiors.skylake ++ inferiors.x86-64-v4); - cannonlake = [ "skylake-avx512" ] ++ inferiors.skylake-avx512; - icelake-client = [ "cannonlake" ] ++ inferiors.cannonlake; + skylake-avx512 = lib.unique ( + [ + "skylake" + "x86-64-v4" + ] + ++ inferiors.skylake + ++ inferiors.x86-64-v4 + ); + cannonlake = [ "skylake-avx512" ] ++ inferiors.skylake-avx512; + icelake-client = [ "cannonlake" ] ++ inferiors.cannonlake; icelake-server = [ "icelake-client" ] ++ inferiors.icelake-client; - cascadelake = [ "cannonlake" ] ++ inferiors.cannonlake; - cooperlake = [ "cascadelake" ] ++ inferiors.cascadelake; - tigerlake = [ "icelake-server" ] ++ inferiors.icelake-server; + cascadelake = [ "cannonlake" ] ++ inferiors.cannonlake; + cooperlake = [ "cascadelake" ] ++ inferiors.cascadelake; + tigerlake = [ "icelake-server" ] ++ inferiors.icelake-server; # CX16 does not exist on alderlake, while it does on nearly all other intel CPUs - alderlake = [ ]; + alderlake = [ ]; # x86_64 AMD # TODO: fill this (need testing) - btver1 = [ ]; - btver2 = [ ]; - bdver1 = [ ]; - bdver2 = [ ]; - bdver3 = [ ]; - bdver4 = [ ]; + btver1 = [ ]; + btver2 = [ ]; + bdver1 = [ ]; + bdver2 = [ ]; + bdver3 = [ ]; + bdver4 = [ ]; # Regarding `skylake` as inferior of `znver1`, there are reports of # successful usage by Gentoo users and Phoronix benchmarking of different # `-march` targets. @@ -104,33 +366,42 @@ rec { # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html # https://en.wikichip.org/wiki/amd/microarchitectures/zen # https://en.wikichip.org/wiki/intel/microarchitectures/skylake - znver1 = [ "skylake" ] ++ inferiors.skylake; # Includes haswell and x86-64-v3 - znver2 = [ "znver1" ] ++ inferiors.znver1; - znver3 = [ "znver2" ] ++ inferiors.znver2; - znver4 = lib.unique ([ "znver3" "x86-64-v4" ] ++ inferiors.znver3 ++ inferiors.x86-64-v4); + znver1 = [ "skylake" ] ++ inferiors.skylake; # Includes haswell and x86-64-v3 + znver2 = [ "znver1" ] ++ inferiors.znver1; + znver3 = [ "znver2" ] ++ inferiors.znver2; + znver4 = lib.unique ( + [ + "znver3" + "x86-64-v4" + ] + ++ inferiors.znver3 + ++ inferiors.x86-64-v4 + ); # other - armv5te = [ ]; - armv6 = [ ]; - armv7-a = [ ]; - armv8-a = [ ]; - mips32 = [ ]; - loongson2f = [ ]; + armv5te = [ ]; + armv6 = [ ]; + armv7-a = [ ]; + armv8-a = [ ]; + mips32 = [ ]; + loongson2f = [ ]; }; - predicates = let - featureSupport = feature: x: builtins.elem feature features.${x} or []; - in { - sse3Support = featureSupport "sse3"; - ssse3Support = featureSupport "ssse3"; - sse4_1Support = featureSupport "sse4_1"; - sse4_2Support = featureSupport "sse4_2"; - sse4_aSupport = featureSupport "sse4a"; - avxSupport = featureSupport "avx"; - avx2Support = featureSupport "avx2"; - avx512Support = featureSupport "avx512"; - aesSupport = featureSupport "aes"; - fmaSupport = featureSupport "fma"; - fma4Support = featureSupport "fma4"; - }; + predicates = + let + featureSupport = feature: x: builtins.elem feature features.${x} or [ ]; + in + { + sse3Support = featureSupport "sse3"; + ssse3Support = featureSupport "ssse3"; + sse4_1Support = featureSupport "sse4_1"; + sse4_2Support = featureSupport "sse4_2"; + sse4_aSupport = featureSupport "sse4a"; + avxSupport = featureSupport "avx"; + avx2Support = featureSupport "avx2"; + avx512Support = featureSupport "avx512"; + aesSupport = featureSupport "aes"; + fmaSupport = featureSupport "fma"; + fma4Support = featureSupport "fma4"; + }; } diff --git a/lib/systems/default.nix b/lib/systems/default.nix index 7e9aade..c8c89ad 100644 --- a/lib/systems/default.nix +++ b/lib/systems/default.nix @@ -42,8 +42,10 @@ let both arguments have been `elaborate`-d. */ equals = - let removeFunctions = a: filterAttrs (_: v: !isFunction v) a; - in a: b: removeFunctions a == removeFunctions b; + let + removeFunctions = a: filterAttrs (_: v: !isFunction v) a; + in + a: b: removeFunctions a == removeFunctions b; /** List of all Nix system doubles the nixpkgs flake will expose the package set @@ -61,343 +63,444 @@ let # `parsed` is inferred from args, both because there are two options with one # clearly preferred, and to prevent cycles. A simpler fixed point where the RHS # always just used `final.*` would fail on both counts. - elaborate = args': let - args = if isString args' then { system = args'; } - else args'; + elaborate = + args': + let + args = if isString args' then { system = args'; } else args'; - # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL. - rust = args.rust or args.rustc or {}; + # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL. + rust = args.rust or args.rustc or { }; - final = { - # Prefer to parse `config` as it is strictly more informative. - parsed = parse.mkSystemFromString (if args ? config then args.config else args.system); - # Either of these can be losslessly-extracted from `parsed` iff parsing succeeds. - system = parse.doubleFromSystem final.parsed; - config = parse.tripleFromSystem final.parsed; - # Determine whether we can execute binaries built for the provided platform. - canExecute = platform: - final.isAndroid == platform.isAndroid && - parse.isCompatible final.parsed.cpu platform.parsed.cpu - && final.parsed.kernel == platform.parsed.kernel; - isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details"; - # Derived meta-data - libc = - /**/ if final.isDarwin then "libSystem" - else if final.isMinGW then "msvcrt" - else if final.isWasi then "wasilibc" - else if final.isRedox then "relibc" - else if final.isMusl then "musl" - else if final.isUClibc then "uclibc" - else if final.isAndroid then "bionic" - else if final.isLinux /* default */ then "glibc" - else if final.isFreeBSD then "fblibc" - else if final.isNetBSD then "nblibc" - else if final.isAvr then "avrlibc" - else if final.isGhcjs then null - else if final.isNone then "newlib" - # TODO(@Ericson2314) think more about other operating systems - else "native/impure"; - # Choose what linker we wish to use by default. Someday we might also - # choose the C compiler, runtime library, C++ standard library, etc. in - # this way, nice and orthogonally, and deprecate `useLLVM`. But due to - # the monolithic GCC build we cannot actually make those choices - # independently, so we are just doing `linker` and keeping `useLLVM` for - # now. - linker = - /**/ if final.useLLVM or false then "lld" - else if final.isDarwin then "cctools" - # "bfd" and "gold" both come from GNU binutils. The existence of Gold - # is why we use the more obscure "bfd" and not "binutils" for this - # choice. - else "bfd"; - # The standard lib directory name that non-nixpkgs binaries distributed - # for this platform normally assume. - libDir = if final.isLinux then - if final.isx86_64 || final.isMips64 || final.isPower64 - then "lib64" - else "lib" - else null; - extensions = optionalAttrs final.hasSharedLibraries { - sharedLibrary = - if final.isDarwin then ".dylib" - else if final.isWindows then ".dll" - else ".so"; - } // { - staticLibrary = - /**/ if final.isWindows then ".lib" - else ".a"; - library = - /**/ if final.isStatic then final.extensions.staticLibrary - else final.extensions.sharedLibrary; - executable = - /**/ if final.isWindows then ".exe" - else ""; - }; - # Misc boolean options - useAndroidPrebuilt = false; - useiOSPrebuilt = false; - - # Output from uname - uname = { - # uname -s - system = { - linux = "Linux"; - windows = "Windows"; - darwin = "Darwin"; - netbsd = "NetBSD"; - freebsd = "FreeBSD"; - openbsd = "OpenBSD"; - wasi = "Wasi"; - redox = "Redox"; - genode = "Genode"; - }.${final.parsed.kernel.name} or null; - - # uname -m - processor = - if final.isPower64 - then "ppc64${optionalString final.isLittleEndian "le"}" - else if final.isPower - then "ppc${optionalString final.isLittleEndian "le"}" - else if final.isMips64 - then "mips64" # endianness is *not* included on mips64 - else final.parsed.cpu.name; - - # uname -r - release = null; - }; - - # It is important that hasSharedLibraries==false when the platform has no - # dynamic library loader. Various tools (including the gcc build system) - # have knowledge of which platforms are incapable of dynamic linking, and - # will still build on/for those platforms with --enable-shared, but simply - # omit any `.so` build products such as libgcc_s.so. When that happens, - # it causes hard-to-troubleshoot build failures. - hasSharedLibraries = with final; - (isAndroid || isGnu || isMusl # Linux (allows multiple libcs) - || isDarwin || isSunOS || isOpenBSD || isFreeBSD || isNetBSD # BSDs - || isCygwin || isMinGW # Windows - ) && !isStatic; - - # The difference between `isStatic` and `hasSharedLibraries` is mainly the - # addition of the `staticMarker` (see make-derivation.nix). Some - # platforms, like embedded machines without a libc (e.g. arm-none-eabi) - # don't support dynamic linking, but don't get the `staticMarker`. - # `pkgsStatic` sets `isStatic=true`, so `pkgsStatic.hostPlatform` always - # has the `staticMarker`. - isStatic = final.isWasm || final.isRedox; - - # Just a guess, based on `system` - inherit - ({ - linux-kernel = args.linux-kernel or {}; - gcc = args.gcc or {}; - } // platforms.select final) - linux-kernel gcc; - - # TODO: remove after 23.05 is EOL, with an error pointing to the rust.* attrs. - rustc = args.rustc or {}; - - linuxArch = - if final.isAarch32 then "arm" - else if final.isAarch64 then "arm64" - else if final.isx86_32 then "i386" - else if final.isx86_64 then "x86_64" - # linux kernel does not distinguish microblaze/microblazeel - else if final.isMicroBlaze then "microblaze" - else if final.isMips32 then "mips" - else if final.isMips64 then "mips" # linux kernel does not distinguish mips32/mips64 - else if final.isPower then "powerpc" - else if final.isRiscV then "riscv" - else if final.isS390 then "s390" - else if final.isLoongArch64 then "loongarch" - else final.parsed.cpu.name; - - # https://source.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 - ubootArch = - if final.isx86_32 then "x86" # not i386 - else if final.isMips64 then "mips64" # uboot *does* distinguish between mips32/mips64 - else final.linuxArch; # other cases appear to agree with linuxArch - - qemuArch = - if final.isAarch32 then "arm" - else if final.isS390 && !final.isS390x then null - else if final.isx86_64 then "x86_64" - else if final.isx86 then "i386" - else if final.isMips64n32 then "mipsn32${optionalString final.isLittleEndian "el"}" - else if final.isMips64 then "mips64${optionalString final.isLittleEndian "el"}" - else final.uname.processor; - - # Name used by UEFI for architectures. - efiArch = - if final.isx86_32 then "ia32" - else if final.isx86_64 then "x64" - else if final.isAarch32 then "arm" - else if final.isAarch64 then "aa64" - else final.parsed.cpu.name; - - darwinArch = { - armv7a = "armv7"; - aarch64 = "arm64"; - }.${final.parsed.cpu.name} or final.parsed.cpu.name; - - darwinPlatform = - if final.isMacOS then "macos" - else if final.isiOS then "ios" - else null; - # The canonical name for this attribute is darwinSdkVersion, but some - # platforms define the old name "sdkVer". - darwinSdkVersion = final.sdkVer or (if final.isAarch64 then "11.0" else "10.12"); - darwinMinVersion = final.darwinSdkVersion; - darwinMinVersionVariable = - if final.isMacOS then "MACOSX_DEPLOYMENT_TARGET" - else if final.isiOS then "IPHONEOS_DEPLOYMENT_TARGET" - else null; - } // ( - let - selectEmulator = pkgs: - let - qemu-user = pkgs.qemu.override { - smartcardSupport = false; - spiceSupport = false; - openGLSupport = false; - virglSupport = false; - vncSupport = false; - gtkSupport = false; - sdlSupport = false; - alsaSupport = false; - pulseSupport = false; - pipewireSupport = false; - jackSupport = false; - smbdSupport = false; - seccompSupport = false; - tpmSupport = false; - capstoneSupport = false; - enableDocs = false; - hostCpuTargets = [ "${final.qemuArch}-linux-user" ]; + final = + { + # Prefer to parse `config` as it is strictly more informative. + parsed = parse.mkSystemFromString (if args ? config then args.config else args.system); + # Either of these can be losslessly-extracted from `parsed` iff parsing succeeds. + system = parse.doubleFromSystem final.parsed; + config = parse.tripleFromSystem final.parsed; + # Determine whether we can execute binaries built for the provided platform. + canExecute = + platform: + final.isAndroid == platform.isAndroid + && parse.isCompatible final.parsed.cpu platform.parsed.cpu + && final.parsed.kernel == platform.parsed.kernel; + isCompatible = + _: + throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details"; + # Derived meta-data + libc = + if final.isDarwin then + "libSystem" + else if final.isMinGW then + "msvcrt" + else if final.isWasi then + "wasilibc" + else if final.isRedox then + "relibc" + else if final.isMusl then + "musl" + else if final.isUClibc then + "uclibc" + else if final.isAndroid then + "bionic" + else if + final.isLinux # default + then + "glibc" + else if final.isFreeBSD then + "fblibc" + else if final.isNetBSD then + "nblibc" + else if final.isAvr then + "avrlibc" + else if final.isGhcjs then + null + else if final.isNone then + "newlib" + # TODO(@Ericson2314) think more about other operating systems + else + "native/impure"; + # Choose what linker we wish to use by default. Someday we might also + # choose the C compiler, runtime library, C++ standard library, etc. in + # this way, nice and orthogonally, and deprecate `useLLVM`. But due to + # the monolithic GCC build we cannot actually make those choices + # independently, so we are just doing `linker` and keeping `useLLVM` for + # now. + linker = + if final.useLLVM or false then + "lld" + else if final.isDarwin then + "cctools" + # "bfd" and "gold" both come from GNU binutils. The existence of Gold + # is why we use the more obscure "bfd" and not "binutils" for this + # choice. + else + "bfd"; + # The standard lib directory name that non-nixpkgs binaries distributed + # for this platform normally assume. + libDir = + if final.isLinux then + if final.isx86_64 || final.isMips64 || final.isPower64 then "lib64" else "lib" + else + null; + extensions = + optionalAttrs final.hasSharedLibraries { + sharedLibrary = + if final.isDarwin then + ".dylib" + else if final.isWindows then + ".dll" + else + ".so"; + } + // { + staticLibrary = if final.isWindows then ".lib" else ".a"; + library = if final.isStatic then final.extensions.staticLibrary else final.extensions.sharedLibrary; + executable = if final.isWindows then ".exe" else ""; }; - wine = (pkgs.winePackagesFor "wine${toString final.parsed.cpu.bits}").minimal; - in - if pkgs.stdenv.hostPlatform.canExecute final - then "${pkgs.runtimeShell} -c '\"$@\"' --" - else if final.isWindows - then "${wine}/bin/wine${optionalString (final.parsed.cpu.bits == 64) "64"}" - else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux && final.qemuArch != null - then "${qemu-user}/bin/qemu-${final.qemuArch}" - else if final.isWasi - then "${pkgs.wasmtime}/bin/wasmtime" - else if final.isMmix - then "${pkgs.mmixware}/bin/mmix" - else null; - in { - emulatorAvailable = pkgs: (selectEmulator pkgs) != null; + # Misc boolean options + useAndroidPrebuilt = false; + useiOSPrebuilt = false; - emulator = pkgs: - if (final.emulatorAvailable pkgs) - then selectEmulator pkgs - else throw "Don't know how to run ${final.config} executables."; + # Output from uname + uname = { + # uname -s + system = + { + linux = "Linux"; + windows = "Windows"; + darwin = "Darwin"; + netbsd = "NetBSD"; + freebsd = "FreeBSD"; + openbsd = "OpenBSD"; + wasi = "Wasi"; + redox = "Redox"; + genode = "Genode"; + } + .${final.parsed.kernel.name} or null; - }) // mapAttrs (n: v: v final.parsed) inspect.predicates - // mapAttrs (n: v: v final.gcc.arch or "default") architectures.predicates - // args // { - rust = rust // { - # Once args.rustc.platform.target-family is deprecated and - # removed, there will no longer be any need to modify any - # values from args.rust.platform, so we can drop all the - # "args ? rust" etc. checks, and merge args.rust.platform in - # /after/. - platform = rust.platform or {} // { - # https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch - arch = - /**/ if rust ? platform then rust.platform.arch - else if final.isAarch32 then "arm" - else if final.isMips64 then "mips64" # never add "el" suffix - else if final.isPower64 then "powerpc64" # never add "le" suffix - else final.parsed.cpu.name; + # uname -m + processor = + if final.isPower64 then + "ppc64${optionalString final.isLittleEndian "le"}" + else if final.isPower then + "ppc${optionalString final.isLittleEndian "le"}" + else if final.isMips64 then + "mips64" # endianness is *not* included on mips64 + else + final.parsed.cpu.name; - # https://doc.rust-lang.org/reference/conditional-compilation.html#target_os - os = - /**/ if rust ? platform then rust.platform.os or "none" - else if final.isDarwin then "macos" - else final.parsed.kernel.name; - - # https://doc.rust-lang.org/reference/conditional-compilation.html#target_family - target-family = - /**/ if args ? rust.platform.target-family then args.rust.platform.target-family - else if args ? rustc.platform.target-family - then - ( - # Since https://github.com/rust-lang/rust/pull/84072 - # `target-family` is a list instead of single value. - let - f = args.rustc.platform.target-family; - in - if isList f then f else [ f ] - ) - else optional final.isUnix "unix" - ++ optional final.isWindows "windows"; - - # https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor - vendor = let - inherit (final.parsed) vendor; - in rust.platform.vendor or { - "w64" = "pc"; - }.${vendor.name} or vendor.name; + # uname -r + release = null; }; - # The name of the rust target, even if it is custom. Adjustments are - # because rust has slightly different naming conventions than we do. - rustcTarget = let - inherit (final.parsed) cpu kernel abi; - cpu_ = rust.platform.arch or { - "armv7a" = "armv7"; - "armv7l" = "armv7"; - "armv6l" = "arm"; - "armv5tel" = "armv5te"; - "riscv64" = "riscv64gc"; - }.${cpu.name} or cpu.name; - vendor_ = final.rust.platform.vendor; - # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL. - in args.rust.rustcTarget or args.rustc.config - or "${cpu_}-${vendor_}-${kernel.name}${optionalString (abi.name != "unknown") "-${abi.name}"}"; + # It is important that hasSharedLibraries==false when the platform has no + # dynamic library loader. Various tools (including the gcc build system) + # have knowledge of which platforms are incapable of dynamic linking, and + # will still build on/for those platforms with --enable-shared, but simply + # omit any `.so` build products such as libgcc_s.so. When that happens, + # it causes hard-to-troubleshoot build failures. + hasSharedLibraries = + with final; + ( + isAndroid + || isGnu + || isMusl # Linux (allows multiple libcs) + || isDarwin + || isSunOS + || isOpenBSD + || isFreeBSD + || isNetBSD # BSDs + || isCygwin + || isMinGW # Windows + ) + && !isStatic; - # The name of the rust target if it is standard, or the json file - # containing the custom target spec. - rustcTargetSpec = rust.rustcTargetSpec or ( - /**/ if rust ? platform - then builtins.toFile (final.rust.rustcTarget + ".json") (toJSON rust.platform) - else final.rust.rustcTarget); + # The difference between `isStatic` and `hasSharedLibraries` is mainly the + # addition of the `staticMarker` (see make-derivation.nix). Some + # platforms, like embedded machines without a libc (e.g. arm-none-eabi) + # don't support dynamic linking, but don't get the `staticMarker`. + # `pkgsStatic` sets `isStatic=true`, so `pkgsStatic.hostPlatform` always + # has the `staticMarker`. + isStatic = final.isWasm || final.isRedox; - # The name of the rust target if it is standard, or the - # basename of the file containing the custom target spec, - # without the .json extension. - # - # This is the name used by Cargo for target subdirectories. - cargoShortTarget = - removeSuffix ".json" (baseNameOf "${final.rust.rustcTargetSpec}"); + # Just a guess, based on `system` + inherit + ( + { + linux-kernel = args.linux-kernel or { }; + gcc = args.gcc or { }; + } + // platforms.select final + ) + linux-kernel + gcc + ; - # When used as part of an environment variable name, triples are - # uppercased and have all hyphens replaced by underscores: - # - # https://github.com/rust-lang/cargo/pull/9169 - # https://github.com/rust-lang/cargo/issues/8285#issuecomment-634202431 - cargoEnvVarTarget = - replaceStrings ["-"] ["_"] - (toUpper final.rust.cargoShortTarget); + # TODO: remove after 23.05 is EOL, with an error pointing to the rust.* attrs. + rustc = args.rustc or { }; - # True if the target is no_std - # https://github.com/rust-lang/rust/blob/2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2/src/bootstrap/config.rs#L415-L421 - isNoStdTarget = - any (t: hasInfix t final.rust.rustcTarget) ["-none" "nvptx" "switch" "-uefi"]; + linuxArch = + if final.isAarch32 then + "arm" + else if final.isAarch64 then + "arm64" + else if final.isx86_32 then + "i386" + else if final.isx86_64 then + "x86_64" + # linux kernel does not distinguish microblaze/microblazeel + else if final.isMicroBlaze then + "microblaze" + else if final.isMips32 then + "mips" + else if final.isMips64 then + "mips" # linux kernel does not distinguish mips32/mips64 + else if final.isPower then + "powerpc" + else if final.isRiscV then + "riscv" + else if final.isS390 then + "s390" + else if final.isLoongArch64 then + "loongarch" + else + final.parsed.cpu.name; + + # https://source.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 + ubootArch = + if final.isx86_32 then + "x86" # not i386 + else if final.isMips64 then + "mips64" # uboot *does* distinguish between mips32/mips64 + else + final.linuxArch; # other cases appear to agree with linuxArch + + qemuArch = + if final.isAarch32 then + "arm" + else if final.isS390 && !final.isS390x then + null + else if final.isx86_64 then + "x86_64" + else if final.isx86 then + "i386" + else if final.isMips64n32 then + "mipsn32${optionalString final.isLittleEndian "el"}" + else if final.isMips64 then + "mips64${optionalString final.isLittleEndian "el"}" + else + final.uname.processor; + + # Name used by UEFI for architectures. + efiArch = + if final.isx86_32 then + "ia32" + else if final.isx86_64 then + "x64" + else if final.isAarch32 then + "arm" + else if final.isAarch64 then + "aa64" + else + final.parsed.cpu.name; + + darwinArch = + { + armv7a = "armv7"; + aarch64 = "arm64"; + } + .${final.parsed.cpu.name} or final.parsed.cpu.name; + + darwinPlatform = + if final.isMacOS then + "macos" + else if final.isiOS then + "ios" + else + null; + # The canonical name for this attribute is darwinSdkVersion, but some + # platforms define the old name "sdkVer". + darwinSdkVersion = final.sdkVer or (if final.isAarch64 then "11.0" else "10.12"); + darwinMinVersion = final.darwinSdkVersion; + darwinMinVersionVariable = + if final.isMacOS then + "MACOSX_DEPLOYMENT_TARGET" + else if final.isiOS then + "IPHONEOS_DEPLOYMENT_TARGET" + else + null; + } + // ( + let + selectEmulator = + pkgs: + let + qemu-user = pkgs.qemu.override { + smartcardSupport = false; + spiceSupport = false; + openGLSupport = false; + virglSupport = false; + vncSupport = false; + gtkSupport = false; + sdlSupport = false; + alsaSupport = false; + pulseSupport = false; + pipewireSupport = false; + jackSupport = false; + smbdSupport = false; + seccompSupport = false; + tpmSupport = false; + capstoneSupport = false; + enableDocs = false; + hostCpuTargets = [ "${final.qemuArch}-linux-user" ]; + }; + wine = (pkgs.winePackagesFor "wine${toString final.parsed.cpu.bits}").minimal; + in + if pkgs.stdenv.hostPlatform.canExecute final then + "${pkgs.runtimeShell} -c '\"$@\"' --" + else if final.isWindows then + "${wine}/bin/wine${optionalString (final.parsed.cpu.bits == 64) "64"}" + else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux && final.qemuArch != null then + "${qemu-user}/bin/qemu-${final.qemuArch}" + else if final.isWasi then + "${pkgs.wasmtime}/bin/wasmtime" + else if final.isMmix then + "${pkgs.mmixware}/bin/mmix" + else + null; + in + { + emulatorAvailable = pkgs: (selectEmulator pkgs) != null; + + emulator = + pkgs: + if (final.emulatorAvailable pkgs) then + selectEmulator pkgs + else + throw "Don't know how to run ${final.config} executables."; + + } + ) + // mapAttrs (n: v: v final.parsed) inspect.predicates + // mapAttrs (n: v: v final.gcc.arch or "default") architectures.predicates + // args + // { + rust = rust // { + # Once args.rustc.platform.target-family is deprecated and + # removed, there will no longer be any need to modify any + # values from args.rust.platform, so we can drop all the + # "args ? rust" etc. checks, and merge args.rust.platform in + # /after/. + platform = rust.platform or { } // { + # https://doc.rust-lang.org/reference/conditional-compilation.html#target_arch + arch = + if rust ? platform then + rust.platform.arch + else if final.isAarch32 then + "arm" + else if final.isMips64 then + "mips64" # never add "el" suffix + else if final.isPower64 then + "powerpc64" # never add "le" suffix + else + final.parsed.cpu.name; + + # https://doc.rust-lang.org/reference/conditional-compilation.html#target_os + os = + if rust ? platform then + rust.platform.os or "none" + else if final.isDarwin then + "macos" + else + final.parsed.kernel.name; + + # https://doc.rust-lang.org/reference/conditional-compilation.html#target_family + target-family = + if args ? rust.platform.target-family then + args.rust.platform.target-family + else if args ? rustc.platform.target-family then + ( + # Since https://github.com/rust-lang/rust/pull/84072 + # `target-family` is a list instead of single value. + let + f = args.rustc.platform.target-family; + in + if isList f then f else [ f ] + ) + else + optional final.isUnix "unix" ++ optional final.isWindows "windows"; + + # https://doc.rust-lang.org/reference/conditional-compilation.html#target_vendor + vendor = + let + inherit (final.parsed) vendor; + in + rust.platform.vendor or { + "w64" = "pc"; + } + .${vendor.name} or vendor.name; + }; + + # The name of the rust target, even if it is custom. Adjustments are + # because rust has slightly different naming conventions than we do. + rustcTarget = + let + inherit (final.parsed) cpu kernel abi; + cpu_ = + rust.platform.arch or { + "armv7a" = "armv7"; + "armv7l" = "armv7"; + "armv6l" = "arm"; + "armv5tel" = "armv5te"; + "riscv64" = "riscv64gc"; + } + .${cpu.name} or cpu.name; + vendor_ = final.rust.platform.vendor; + in + # TODO: deprecate args.rustc in favour of args.rust after 23.05 is EOL. + args.rust.rustcTarget or args.rustc.config + or "${cpu_}-${vendor_}-${kernel.name}${optionalString (abi.name != "unknown") "-${abi.name}"}"; + + # The name of the rust target if it is standard, or the json file + # containing the custom target spec. + rustcTargetSpec = + rust.rustcTargetSpec or ( + if rust ? platform then + builtins.toFile (final.rust.rustcTarget + ".json") (toJSON rust.platform) + else + final.rust.rustcTarget + ); + + # The name of the rust target if it is standard, or the + # basename of the file containing the custom target spec, + # without the .json extension. + # + # This is the name used by Cargo for target subdirectories. + cargoShortTarget = removeSuffix ".json" (baseNameOf "${final.rust.rustcTargetSpec}"); + + # When used as part of an environment variable name, triples are + # uppercased and have all hyphens replaced by underscores: + # + # https://github.com/rust-lang/cargo/pull/9169 + # https://github.com/rust-lang/cargo/issues/8285#issuecomment-634202431 + cargoEnvVarTarget = replaceStrings [ "-" ] [ "_" ] (toUpper final.rust.cargoShortTarget); + + # True if the target is no_std + # https://github.com/rust-lang/rust/blob/2e44c17c12cec45b6a682b1e53a04ac5b5fcc9d2/src/bootstrap/config.rs#L415-L421 + isNoStdTarget = any (t: hasInfix t final.rust.rustcTarget) [ + "-none" + "nvptx" + "switch" + "-uefi" + ]; + }; }; - }; - in assert final.useAndroidPrebuilt -> final.isAndroid; - assert foldl - (pass: { assertion, message }: - if assertion final - then pass - else throw message) - true - (final.parsed.abi.assertions or []); + in + assert final.useAndroidPrebuilt -> final.isAndroid; + assert foldl (pass: { assertion, message }: if assertion final then pass else throw message) true ( + final.parsed.abi.assertions or [ ] + ); final; in diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index 13f029e..3f6adcf 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -7,16 +7,23 @@ let all = [ # Cygwin - "i686-cygwin" "x86_64-cygwin" + "i686-cygwin" + "x86_64-cygwin" # Darwin - "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" + "x86_64-darwin" + "i686-darwin" + "aarch64-darwin" + "armv7a-darwin" # FreeBSD - "i686-freebsd13" "x86_64-freebsd13" + "i686-freebsd13" + "x86_64-freebsd13" # Genode - "aarch64-genode" "i686-genode" "x86_64-genode" + "aarch64-genode" + "i686-genode" + "x86_64-genode" # illumos "x86_64-solaris" @@ -25,95 +32,176 @@ let "javascript-ghcjs" # Linux - "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" - "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux" - "microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux" - "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" - "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" + "aarch64-linux" + "armv5tel-linux" + "armv6l-linux" + "armv7a-linux" + "armv7l-linux" + "i686-linux" + "loongarch64-linux" + "m68k-linux" + "microblaze-linux" + "microblazeel-linux" + "mips-linux" + "mips64-linux" + "mips64el-linux" + "mipsel-linux" + "powerpc64-linux" + "powerpc64le-linux" + "riscv32-linux" + "riscv64-linux" + "s390-linux" + "s390x-linux" + "x86_64-linux" # MMIXware "mmix-mmixware" # NetBSD - "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" - "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" - "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" + "aarch64-netbsd" + "armv6l-netbsd" + "armv7a-netbsd" + "armv7l-netbsd" + "i686-netbsd" + "m68k-netbsd" + "mipsel-netbsd" + "powerpc-netbsd" + "riscv32-netbsd" + "riscv64-netbsd" + "x86_64-netbsd" # none - "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" - "microblaze-none" "microblazeel-none" "mips-none" "mips64-none" "msp430-none" "or1k-none" "m68k-none" - "powerpc-none" "powerpcle-none" "riscv32-none" "riscv64-none" "rx-none" - "s390-none" "s390x-none" "vc4-none" "x86_64-none" + "aarch64_be-none" + "aarch64-none" + "arm-none" + "armv6l-none" + "avr-none" + "i686-none" + "microblaze-none" + "microblazeel-none" + "mips-none" + "mips64-none" + "msp430-none" + "or1k-none" + "m68k-none" + "powerpc-none" + "powerpcle-none" + "riscv32-none" + "riscv64-none" + "rx-none" + "s390-none" + "s390x-none" + "vc4-none" + "x86_64-none" # OpenBSD - "i686-openbsd" "x86_64-openbsd" + "i686-openbsd" + "x86_64-openbsd" # Redox "x86_64-redox" # WASI - "wasm64-wasi" "wasm32-wasi" + "wasm64-wasi" + "wasm32-wasi" # Windows - "x86_64-windows" "i686-windows" + "x86_64-windows" + "i686-windows" ]; allParsed = map parse.mkSystemFromString all; filterDoubles = f: map parse.doubleFromSystem (lists.filter f allParsed); -in { +in +{ inherit all; - none = []; + none = [ ]; - arm = filterDoubles predicates.isAarch32; - armv7 = filterDoubles predicates.isArmv7; - aarch64 = filterDoubles predicates.isAarch64; - x86 = filterDoubles predicates.isx86; - i686 = filterDoubles predicates.isi686; - x86_64 = filterDoubles predicates.isx86_64; - microblaze = filterDoubles predicates.isMicroBlaze; - mips = filterDoubles predicates.isMips; - mmix = filterDoubles predicates.isMmix; - power = filterDoubles predicates.isPower; - riscv = filterDoubles predicates.isRiscV; - riscv32 = filterDoubles predicates.isRiscV32; - riscv64 = filterDoubles predicates.isRiscV64; - rx = filterDoubles predicates.isRx; - vc4 = filterDoubles predicates.isVc4; - or1k = filterDoubles predicates.isOr1k; - m68k = filterDoubles predicates.isM68k; - s390 = filterDoubles predicates.isS390; - s390x = filterDoubles predicates.isS390x; - loongarch64 = filterDoubles predicates.isLoongArch64; - js = filterDoubles predicates.isJavaScript; + arm = filterDoubles predicates.isAarch32; + armv7 = filterDoubles predicates.isArmv7; + aarch64 = filterDoubles predicates.isAarch64; + x86 = filterDoubles predicates.isx86; + i686 = filterDoubles predicates.isi686; + x86_64 = filterDoubles predicates.isx86_64; + microblaze = filterDoubles predicates.isMicroBlaze; + mips = filterDoubles predicates.isMips; + mmix = filterDoubles predicates.isMmix; + power = filterDoubles predicates.isPower; + riscv = filterDoubles predicates.isRiscV; + riscv32 = filterDoubles predicates.isRiscV32; + riscv64 = filterDoubles predicates.isRiscV64; + rx = filterDoubles predicates.isRx; + vc4 = filterDoubles predicates.isVc4; + or1k = filterDoubles predicates.isOr1k; + m68k = filterDoubles predicates.isM68k; + s390 = filterDoubles predicates.isS390; + s390x = filterDoubles predicates.isS390x; + loongarch64 = filterDoubles predicates.isLoongArch64; + js = filterDoubles predicates.isJavaScript; - bigEndian = filterDoubles predicates.isBigEndian; - littleEndian = filterDoubles predicates.isLittleEndian; + bigEndian = filterDoubles predicates.isBigEndian; + littleEndian = filterDoubles predicates.isLittleEndian; - cygwin = filterDoubles predicates.isCygwin; - darwin = filterDoubles predicates.isDarwin; - freebsd = filterDoubles predicates.isFreeBSD; + cygwin = filterDoubles predicates.isCygwin; + darwin = filterDoubles predicates.isDarwin; + freebsd = filterDoubles predicates.isFreeBSD; # Should be better, but MinGW is unclear. - gnu = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabin32; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabi64; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv1; }) - ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnuabielfv2; }); - illumos = filterDoubles predicates.isSunOS; - linux = filterDoubles predicates.isLinux; - netbsd = filterDoubles predicates.isNetBSD; - openbsd = filterDoubles predicates.isOpenBSD; - unix = filterDoubles predicates.isUnix; - wasi = filterDoubles predicates.isWasi; - redox = filterDoubles predicates.isRedox; - windows = filterDoubles predicates.isWindows; - genode = filterDoubles predicates.isGenode; + gnu = + filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnu; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnueabi; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnueabihf; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnuabin32; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnuabi64; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnuabielfv1; + }) + ++ filterDoubles (matchAttrs { + kernel = parse.kernels.linux; + abi = parse.abis.gnuabielfv2; + }); + illumos = filterDoubles predicates.isSunOS; + linux = filterDoubles predicates.isLinux; + netbsd = filterDoubles predicates.isNetBSD; + openbsd = filterDoubles predicates.isOpenBSD; + unix = filterDoubles predicates.isUnix; + wasi = filterDoubles predicates.isWasi; + redox = filterDoubles predicates.isRedox; + windows = filterDoubles predicates.isWindows; + genode = filterDoubles predicates.isGenode; - embedded = filterDoubles predicates.isNone; + embedded = filterDoubles predicates.isNone; - mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64-linux" "powerpc64le-linux" "aarch64-darwin" "riscv64-linux"]; + mesaPlatforms = [ + "i686-linux" + "x86_64-linux" + "x86_64-darwin" + "armv5tel-linux" + "armv6l-linux" + "armv7l-linux" + "armv7a-linux" + "aarch64-linux" + "powerpc64-linux" + "powerpc64le-linux" + "aarch64-darwin" + "riscv64-linux" + ]; } diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index b16445e..303fc6e 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -5,9 +5,7 @@ let platforms = import ./platforms.nix { inherit lib; }; - riscv = bits: { - config = "riscv${bits}-unknown-linux-gnu"; - }; + riscv = bits: { config = "riscv${bits}-unknown-linux-gnu"; }; in rec { @@ -26,7 +24,9 @@ rec { }; ppc64-musl = { config = "powerpc64-unknown-linux-musl"; - gcc = { abi = "elfv2"; }; + gcc = { + abi = "elfv2"; + }; }; sheevaplug = { @@ -95,16 +95,28 @@ rec { } // platforms.fuloong2f_n32; # can execute on 32bit chip - mips-linux-gnu = { config = "mips-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32; - mipsel-linux-gnu = { config = "mipsel-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32; + mips-linux-gnu = { + config = "mips-unknown-linux-gnu"; + } // platforms.gcc_mips32r2_o32; + mipsel-linux-gnu = { + config = "mipsel-unknown-linux-gnu"; + } // platforms.gcc_mips32r2_o32; # require 64bit chip (for more registers, 64-bit floating point, 64-bit "long long") but use 32bit pointers - mips64-linux-gnuabin32 = { config = "mips64-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; - mips64el-linux-gnuabin32 = { config = "mips64el-unknown-linux-gnuabin32"; } // platforms.gcc_mips64r2_n32; + mips64-linux-gnuabin32 = { + config = "mips64-unknown-linux-gnuabin32"; + } // platforms.gcc_mips64r2_n32; + mips64el-linux-gnuabin32 = { + config = "mips64el-unknown-linux-gnuabin32"; + } // platforms.gcc_mips64r2_n32; # 64bit pointers - mips64-linux-gnuabi64 = { config = "mips64-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; - mips64el-linux-gnuabi64 = { config = "mips64el-unknown-linux-gnuabi64"; } // platforms.gcc_mips64r2_64; + mips64-linux-gnuabi64 = { + config = "mips64-unknown-linux-gnuabi64"; + } // platforms.gcc_mips64r2_64; + mips64el-linux-gnuabi64 = { + config = "mips64el-unknown-linux-gnuabi64"; + } // platforms.gcc_mips64r2_64; muslpi = raspberryPi // { config = "armv6l-unknown-linux-musleabihf"; @@ -114,12 +126,20 @@ rec { config = "aarch64-unknown-linux-musl"; }; - gnu64 = { config = "x86_64-unknown-linux-gnu"; }; + gnu64 = { + config = "x86_64-unknown-linux-gnu"; + }; gnu64_simplekernel = gnu64 // platforms.pc_simplekernel; # see test/cross/default.nix - gnu32 = { config = "i686-unknown-linux-gnu"; }; + gnu32 = { + config = "i686-unknown-linux-gnu"; + }; - musl64 = { config = "x86_64-unknown-linux-musl"; }; - musl32 = { config = "i686-unknown-linux-musl"; }; + musl64 = { + config = "x86_64-unknown-linux-musl"; + }; + musl32 = { + config = "i686-unknown-linux-musl"; + }; riscv64 = riscv "64"; riscv32 = riscv "32"; @@ -294,13 +314,13 @@ rec { aarch64-darwin = { config = "aarch64-apple-darwin"; xcodePlatform = "MacOSX"; - platform = {}; + platform = { }; }; x86_64-darwin = { config = "x86_64-apple-darwin"; xcodePlatform = "MacOSX"; - platform = {}; + platform = { }; }; # diff --git a/lib/systems/inspect.nix b/lib/systems/inspect.nix index ebc7ab3..4af50c2 100644 --- a/lib/systems/inspect.nix +++ b/lib/systems/inspect.nix @@ -38,123 +38,434 @@ rec { # `lib.attrsets.matchAttrs`, which requires a match on *all* attributes of # the product. - isi686 = { cpu = cpuTypes.i686; }; - isx86_32 = { cpu = { family = "x86"; bits = 32; }; }; - isx86_64 = { cpu = { family = "x86"; bits = 64; }; }; - isPower = { cpu = { family = "power"; }; }; - isPower64 = { cpu = { family = "power"; bits = 64; }; }; + isi686 = { + cpu = cpuTypes.i686; + }; + isx86_32 = { + cpu = { + family = "x86"; + bits = 32; + }; + }; + isx86_64 = { + cpu = { + family = "x86"; + bits = 64; + }; + }; + isPower = { + cpu = { + family = "power"; + }; + }; + isPower64 = { + cpu = { + family = "power"; + bits = 64; + }; + }; # This ABI is the default in NixOS PowerPC64 BE, but not on mainline GCC, # so it sometimes causes issues in certain packages that makes the wrong # assumption on the used ABI. isAbiElfv2 = [ - { abi = { abi = "elfv2"; }; } - { abi = { name = "musl"; }; cpu = { family = "power"; bits = 64; }; } + { + abi = { + abi = "elfv2"; + }; + } + { + abi = { + name = "musl"; + }; + cpu = { + family = "power"; + bits = 64; + }; + } ]; - isx86 = { cpu = { family = "x86"; }; }; - isAarch32 = { cpu = { family = "arm"; bits = 32; }; }; - isArmv7 = map ({ arch, ... }: { cpu = { inherit arch; }; }) - (filter (cpu: hasPrefix "armv7" cpu.arch or "") - (attrValues cpuTypes)); - isAarch64 = { cpu = { family = "arm"; bits = 64; }; }; - isAarch = { cpu = { family = "arm"; }; }; - isMicroBlaze = { cpu = { family = "microblaze"; }; }; - isMips = { cpu = { family = "mips"; }; }; - isMips32 = { cpu = { family = "mips"; bits = 32; }; }; - isMips64 = { cpu = { family = "mips"; bits = 64; }; }; - isMips64n32 = { cpu = { family = "mips"; bits = 64; }; abi = { abi = "n32"; }; }; - isMips64n64 = { cpu = { family = "mips"; bits = 64; }; abi = { abi = "64"; }; }; - isMmix = { cpu = { family = "mmix"; }; }; - isRiscV = { cpu = { family = "riscv"; }; }; - isRiscV32 = { cpu = { family = "riscv"; bits = 32; }; }; - isRiscV64 = { cpu = { family = "riscv"; bits = 64; }; }; - isRx = { cpu = { family = "rx"; }; }; - isSparc = { cpu = { family = "sparc"; }; }; - isSparc64 = { cpu = { family = "sparc"; bits = 64; }; }; - isWasm = { cpu = { family = "wasm"; }; }; - isMsp430 = { cpu = { family = "msp430"; }; }; - isVc4 = { cpu = { family = "vc4"; }; }; - isAvr = { cpu = { family = "avr"; }; }; - isAlpha = { cpu = { family = "alpha"; }; }; - isOr1k = { cpu = { family = "or1k"; }; }; - isM68k = { cpu = { family = "m68k"; }; }; - isS390 = { cpu = { family = "s390"; }; }; - isS390x = { cpu = { family = "s390"; bits = 64; }; }; - isLoongArch64 = { cpu = { family = "loongarch"; bits = 64; }; }; - isJavaScript = { cpu = cpuTypes.javascript; }; + isx86 = { + cpu = { + family = "x86"; + }; + }; + isAarch32 = { + cpu = { + family = "arm"; + bits = 32; + }; + }; + isArmv7 = map ( + { arch, ... }: + { + cpu = { + inherit arch; + }; + } + ) (filter (cpu: hasPrefix "armv7" cpu.arch or "") (attrValues cpuTypes)); + isAarch64 = { + cpu = { + family = "arm"; + bits = 64; + }; + }; + isAarch = { + cpu = { + family = "arm"; + }; + }; + isMicroBlaze = { + cpu = { + family = "microblaze"; + }; + }; + isMips = { + cpu = { + family = "mips"; + }; + }; + isMips32 = { + cpu = { + family = "mips"; + bits = 32; + }; + }; + isMips64 = { + cpu = { + family = "mips"; + bits = 64; + }; + }; + isMips64n32 = { + cpu = { + family = "mips"; + bits = 64; + }; + abi = { + abi = "n32"; + }; + }; + isMips64n64 = { + cpu = { + family = "mips"; + bits = 64; + }; + abi = { + abi = "64"; + }; + }; + isMmix = { + cpu = { + family = "mmix"; + }; + }; + isRiscV = { + cpu = { + family = "riscv"; + }; + }; + isRiscV32 = { + cpu = { + family = "riscv"; + bits = 32; + }; + }; + isRiscV64 = { + cpu = { + family = "riscv"; + bits = 64; + }; + }; + isRx = { + cpu = { + family = "rx"; + }; + }; + isSparc = { + cpu = { + family = "sparc"; + }; + }; + isSparc64 = { + cpu = { + family = "sparc"; + bits = 64; + }; + }; + isWasm = { + cpu = { + family = "wasm"; + }; + }; + isMsp430 = { + cpu = { + family = "msp430"; + }; + }; + isVc4 = { + cpu = { + family = "vc4"; + }; + }; + isAvr = { + cpu = { + family = "avr"; + }; + }; + isAlpha = { + cpu = { + family = "alpha"; + }; + }; + isOr1k = { + cpu = { + family = "or1k"; + }; + }; + isM68k = { + cpu = { + family = "m68k"; + }; + }; + isS390 = { + cpu = { + family = "s390"; + }; + }; + isS390x = { + cpu = { + family = "s390"; + bits = 64; + }; + }; + isLoongArch64 = { + cpu = { + family = "loongarch"; + bits = 64; + }; + }; + isJavaScript = { + cpu = cpuTypes.javascript; + }; - is32bit = { cpu = { bits = 32; }; }; - is64bit = { cpu = { bits = 64; }; }; - isILP32 = [ { cpu = { family = "wasm"; bits = 32; }; } ] ++ - map (a: { abi = { abi = a; }; }) [ "n32" "ilp32" "x32" ]; - isBigEndian = { cpu = { significantByte = significantBytes.bigEndian; }; }; - isLittleEndian = { cpu = { significantByte = significantBytes.littleEndian; }; }; + is32bit = { + cpu = { + bits = 32; + }; + }; + is64bit = { + cpu = { + bits = 64; + }; + }; + isILP32 = + [ + { + cpu = { + family = "wasm"; + bits = 32; + }; + } + ] + ++ map + (a: { + abi = { + abi = a; + }; + }) + [ + "n32" + "ilp32" + "x32" + ]; + isBigEndian = { + cpu = { + significantByte = significantBytes.bigEndian; + }; + }; + isLittleEndian = { + cpu = { + significantByte = significantBytes.littleEndian; + }; + }; - isBSD = { kernel = { families = { inherit (kernelFamilies) bsd; }; }; }; - isDarwin = { kernel = { families = { inherit (kernelFamilies) darwin; }; }; }; - isUnix = [ isBSD isDarwin isLinux isSunOS isCygwin isRedox ]; + isBSD = { + kernel = { + families = { + inherit (kernelFamilies) bsd; + }; + }; + }; + isDarwin = { + kernel = { + families = { + inherit (kernelFamilies) darwin; + }; + }; + }; + isUnix = [ + isBSD + isDarwin + isLinux + isSunOS + isCygwin + isRedox + ]; - isMacOS = { kernel = kernels.macos; }; - isiOS = { kernel = kernels.ios; }; - isLinux = { kernel = kernels.linux; }; - isSunOS = { kernel = kernels.solaris; }; - isFreeBSD = { kernel = { name = "freebsd"; }; }; - isNetBSD = { kernel = kernels.netbsd; }; - isOpenBSD = { kernel = kernels.openbsd; }; - isWindows = { kernel = kernels.windows; }; - isCygwin = { kernel = kernels.windows; abi = abis.cygnus; }; - isMinGW = { kernel = kernels.windows; abi = abis.gnu; }; - isWasi = { kernel = kernels.wasi; }; - isRedox = { kernel = kernels.redox; }; - isGhcjs = { kernel = kernels.ghcjs; }; - isGenode = { kernel = kernels.genode; }; - isNone = { kernel = kernels.none; }; + isMacOS = { + kernel = kernels.macos; + }; + isiOS = { + kernel = kernels.ios; + }; + isLinux = { + kernel = kernels.linux; + }; + isSunOS = { + kernel = kernels.solaris; + }; + isFreeBSD = { + kernel = { + name = "freebsd"; + }; + }; + isNetBSD = { + kernel = kernels.netbsd; + }; + isOpenBSD = { + kernel = kernels.openbsd; + }; + isWindows = { + kernel = kernels.windows; + }; + isCygwin = { + kernel = kernels.windows; + abi = abis.cygnus; + }; + isMinGW = { + kernel = kernels.windows; + abi = abis.gnu; + }; + isWasi = { + kernel = kernels.wasi; + }; + isRedox = { + kernel = kernels.redox; + }; + isGhcjs = { + kernel = kernels.ghcjs; + }; + isGenode = { + kernel = kernels.genode; + }; + isNone = { + kernel = kernels.none; + }; - isAndroid = [ { abi = abis.android; } { abi = abis.androideabi; } ]; - isGnu = with abis; map (a: { abi = a; }) [ gnuabi64 gnuabin32 gnu gnueabi gnueabihf gnuabielfv1 gnuabielfv2 ]; - isMusl = with abis; map (a: { abi = a; }) [ musl musleabi musleabihf muslabin32 muslabi64 ]; - isUClibc = with abis; map (a: { abi = a; }) [ uclibc uclibceabi uclibceabihf ]; + isAndroid = [ + { abi = abis.android; } + { abi = abis.androideabi; } + ]; + isGnu = + with abis; + map (a: { abi = a; }) [ + gnuabi64 + gnuabin32 + gnu + gnueabi + gnueabihf + gnuabielfv1 + gnuabielfv2 + ]; + isMusl = + with abis; + map (a: { abi = a; }) [ + musl + musleabi + musleabihf + muslabin32 + muslabi64 + ]; + isUClibc = + with abis; + map (a: { abi = a; }) [ + uclibc + uclibceabi + uclibceabihf + ]; isEfi = [ - { cpu = { family = "arm"; version = "6"; }; } - { cpu = { family = "arm"; version = "7"; }; } - { cpu = { family = "arm"; version = "8"; }; } - { cpu = { family = "riscv"; }; } - { cpu = { family = "x86"; }; } + { + cpu = { + family = "arm"; + version = "6"; + }; + } + { + cpu = { + family = "arm"; + version = "7"; + }; + } + { + cpu = { + family = "arm"; + version = "8"; + }; + } + { + cpu = { + family = "riscv"; + }; + } + { + cpu = { + family = "x86"; + }; + } ]; - isElf = { kernel.execFormat = execFormats.elf; }; - isMacho = { kernel.execFormat = execFormats.macho; }; + isElf = { + kernel.execFormat = execFormats.elf; + }; + isMacho = { + kernel.execFormat = execFormats.macho; + }; }; # given two patterns, return a pattern which is their logical AND. # Since a pattern is a list-of-disjuncts, this needs to - patternLogicalAnd = pat1_: pat2_: + patternLogicalAnd = + pat1_: pat2_: let # patterns can be either a list or a (bare) singleton; turn # them into singletons for uniform handling pat1 = toList pat1_; pat2 = toList pat2_; in - concatMap (attr1: - map (attr2: - recursiveUpdateUntil - (path: subattr1: subattr2: - if (builtins.intersectAttrs subattr1 subattr2) == {} || subattr1 == subattr2 - then true - else throw '' - pattern conflict at path ${toString path}: - ${toJSON subattr1} - ${toJSON subattr2} - '') - attr1 - attr2 - ) - pat2) - pat1; + concatMap ( + attr1: + map ( + attr2: + recursiveUpdateUntil ( + path: subattr1: subattr2: + if (builtins.intersectAttrs subattr1 subattr2) == { } || subattr1 == subattr2 then + true + else + throw '' + pattern conflict at path ${toString path}: + ${toJSON subattr1} + ${toJSON subattr2} + '' + ) attr1 attr2 + ) pat2 + ) pat1; - matchAnyAttrs = patterns: - if isList patterns then attrs: any (pattern: matchAttrs pattern attrs) patterns - else matchAttrs patterns; + matchAnyAttrs = + patterns: + if isList patterns then + attrs: any (pattern: matchAttrs pattern attrs) patterns + else + matchAttrs patterns; predicates = mapAttrs (_: matchAnyAttrs) patterns; @@ -163,7 +474,9 @@ rec { # that `lib.meta.availableOn` can distinguish them from the patterns which # apply only to the `parsed` field. - platformPatterns = mapAttrs (_: p: { parsed = {}; } // p) { - isStatic = { isStatic = true; }; + platformPatterns = mapAttrs (_: p: { parsed = { }; } // p) { + isStatic = { + isStatic = true; + }; }; } diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 191e973..b4f961d 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -55,19 +55,23 @@ let types ; - setTypes = type: - mapAttrs (name: value: + setTypes = + type: + mapAttrs ( + name: value: assert type.check value; - setType type.name ({ inherit name; } // value)); + setType type.name ({ inherit name; } // value) + ); # gnu-config will ignore the portion of a triple matching the # regex `e?abi.*$` when determining the validity of a triple. In # other words, `i386-linuxabichickenlips` is a valid triple. - removeAbiSuffix = x: - let found = match "(.*)e?abi.*" x; - in if found == null - then x - else elemAt found 0; + removeAbiSuffix = + x: + let + found = match "(.*)e?abi.*" x; + in + if found == null then x else elemAt found 0; in @@ -84,14 +88,20 @@ rec { types.significantByte = enum (attrValues significantBytes); significantBytes = setTypes types.openSignificantByte { - bigEndian = {}; - littleEndian = {}; + bigEndian = { }; + littleEndian = { }; }; ################################################################################ # Reasonable power of 2 - types.bitWidth = enum [ 8 16 32 64 128 ]; + types.bitWidth = enum [ + 8 + 16 + 32 + 64 + 128 + ]; ################################################################################ @@ -99,87 +109,307 @@ rec { name = "cpu-type"; description = "instruction set architecture name and information"; merge = mergeOneOption; - check = x: types.bitWidth.check x.bits - && (if 8 < x.bits - then types.significantByte.check x.significantByte - else !(x ? significantByte)); + check = + x: + types.bitWidth.check x.bits + && (if 8 < x.bits then types.significantByte.check x.significantByte else !(x ? significantByte)); }; types.cpuType = enum (attrValues cpuTypes); - cpuTypes = let inherit (significantBytes) bigEndian littleEndian; in setTypes types.openCpuType { - arm = { bits = 32; significantByte = littleEndian; family = "arm"; }; - armv5tel = { bits = 32; significantByte = littleEndian; family = "arm"; version = "5"; arch = "armv5t"; }; - armv6m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "6"; arch = "armv6-m"; }; - armv6l = { bits = 32; significantByte = littleEndian; family = "arm"; version = "6"; arch = "armv6"; }; - armv7a = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; arch = "armv7-a"; }; - armv7r = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; arch = "armv7-r"; }; - armv7m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; arch = "armv7-m"; }; - armv7l = { bits = 32; significantByte = littleEndian; family = "arm"; version = "7"; arch = "armv7"; }; - armv8a = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; arch = "armv8-a"; }; - armv8r = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; arch = "armv8-a"; }; - armv8m = { bits = 32; significantByte = littleEndian; family = "arm"; version = "8"; arch = "armv8-m"; }; - aarch64 = { bits = 64; significantByte = littleEndian; family = "arm"; version = "8"; arch = "armv8-a"; }; - aarch64_be = { bits = 64; significantByte = bigEndian; family = "arm"; version = "8"; arch = "armv8-a"; }; + cpuTypes = + let + inherit (significantBytes) bigEndian littleEndian; + in + setTypes types.openCpuType { + arm = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + }; + armv5tel = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "5"; + arch = "armv5t"; + }; + armv6m = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "6"; + arch = "armv6-m"; + }; + armv6l = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "6"; + arch = "armv6"; + }; + armv7a = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "7"; + arch = "armv7-a"; + }; + armv7r = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "7"; + arch = "armv7-r"; + }; + armv7m = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "7"; + arch = "armv7-m"; + }; + armv7l = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "7"; + arch = "armv7"; + }; + armv8a = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "8"; + arch = "armv8-a"; + }; + armv8r = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "8"; + arch = "armv8-a"; + }; + armv8m = { + bits = 32; + significantByte = littleEndian; + family = "arm"; + version = "8"; + arch = "armv8-m"; + }; + aarch64 = { + bits = 64; + significantByte = littleEndian; + family = "arm"; + version = "8"; + arch = "armv8-a"; + }; + aarch64_be = { + bits = 64; + significantByte = bigEndian; + family = "arm"; + version = "8"; + arch = "armv8-a"; + }; - i386 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i386"; }; - i486 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i486"; }; - i586 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i586"; }; - i686 = { bits = 32; significantByte = littleEndian; family = "x86"; arch = "i686"; }; - x86_64 = { bits = 64; significantByte = littleEndian; family = "x86"; arch = "x86-64"; }; + i386 = { + bits = 32; + significantByte = littleEndian; + family = "x86"; + arch = "i386"; + }; + i486 = { + bits = 32; + significantByte = littleEndian; + family = "x86"; + arch = "i486"; + }; + i586 = { + bits = 32; + significantByte = littleEndian; + family = "x86"; + arch = "i586"; + }; + i686 = { + bits = 32; + significantByte = littleEndian; + family = "x86"; + arch = "i686"; + }; + x86_64 = { + bits = 64; + significantByte = littleEndian; + family = "x86"; + arch = "x86-64"; + }; - microblaze = { bits = 32; significantByte = bigEndian; family = "microblaze"; }; - microblazeel = { bits = 32; significantByte = littleEndian; family = "microblaze"; }; + microblaze = { + bits = 32; + significantByte = bigEndian; + family = "microblaze"; + }; + microblazeel = { + bits = 32; + significantByte = littleEndian; + family = "microblaze"; + }; - mips = { bits = 32; significantByte = bigEndian; family = "mips"; }; - mipsel = { bits = 32; significantByte = littleEndian; family = "mips"; }; - mips64 = { bits = 64; significantByte = bigEndian; family = "mips"; }; - mips64el = { bits = 64; significantByte = littleEndian; family = "mips"; }; + mips = { + bits = 32; + significantByte = bigEndian; + family = "mips"; + }; + mipsel = { + bits = 32; + significantByte = littleEndian; + family = "mips"; + }; + mips64 = { + bits = 64; + significantByte = bigEndian; + family = "mips"; + }; + mips64el = { + bits = 64; + significantByte = littleEndian; + family = "mips"; + }; - mmix = { bits = 64; significantByte = bigEndian; family = "mmix"; }; + mmix = { + bits = 64; + significantByte = bigEndian; + family = "mmix"; + }; - m68k = { bits = 32; significantByte = bigEndian; family = "m68k"; }; + m68k = { + bits = 32; + significantByte = bigEndian; + family = "m68k"; + }; - powerpc = { bits = 32; significantByte = bigEndian; family = "power"; }; - powerpc64 = { bits = 64; significantByte = bigEndian; family = "power"; }; - powerpc64le = { bits = 64; significantByte = littleEndian; family = "power"; }; - powerpcle = { bits = 32; significantByte = littleEndian; family = "power"; }; + powerpc = { + bits = 32; + significantByte = bigEndian; + family = "power"; + }; + powerpc64 = { + bits = 64; + significantByte = bigEndian; + family = "power"; + }; + powerpc64le = { + bits = 64; + significantByte = littleEndian; + family = "power"; + }; + powerpcle = { + bits = 32; + significantByte = littleEndian; + family = "power"; + }; - riscv32 = { bits = 32; significantByte = littleEndian; family = "riscv"; }; - riscv64 = { bits = 64; significantByte = littleEndian; family = "riscv"; }; + riscv32 = { + bits = 32; + significantByte = littleEndian; + family = "riscv"; + }; + riscv64 = { + bits = 64; + significantByte = littleEndian; + family = "riscv"; + }; - s390 = { bits = 32; significantByte = bigEndian; family = "s390"; }; - s390x = { bits = 64; significantByte = bigEndian; family = "s390"; }; + s390 = { + bits = 32; + significantByte = bigEndian; + family = "s390"; + }; + s390x = { + bits = 64; + significantByte = bigEndian; + family = "s390"; + }; - sparc = { bits = 32; significantByte = bigEndian; family = "sparc"; }; - sparc64 = { bits = 64; significantByte = bigEndian; family = "sparc"; }; + sparc = { + bits = 32; + significantByte = bigEndian; + family = "sparc"; + }; + sparc64 = { + bits = 64; + significantByte = bigEndian; + family = "sparc"; + }; - wasm32 = { bits = 32; significantByte = littleEndian; family = "wasm"; }; - wasm64 = { bits = 64; significantByte = littleEndian; family = "wasm"; }; + wasm32 = { + bits = 32; + significantByte = littleEndian; + family = "wasm"; + }; + wasm64 = { + bits = 64; + significantByte = littleEndian; + family = "wasm"; + }; - alpha = { bits = 64; significantByte = littleEndian; family = "alpha"; }; + alpha = { + bits = 64; + significantByte = littleEndian; + family = "alpha"; + }; - rx = { bits = 32; significantByte = littleEndian; family = "rx"; }; - msp430 = { bits = 16; significantByte = littleEndian; family = "msp430"; }; - avr = { bits = 8; family = "avr"; }; + rx = { + bits = 32; + significantByte = littleEndian; + family = "rx"; + }; + msp430 = { + bits = 16; + significantByte = littleEndian; + family = "msp430"; + }; + avr = { + bits = 8; + family = "avr"; + }; - vc4 = { bits = 32; significantByte = littleEndian; family = "vc4"; }; + vc4 = { + bits = 32; + significantByte = littleEndian; + family = "vc4"; + }; - or1k = { bits = 32; significantByte = bigEndian; family = "or1k"; }; + or1k = { + bits = 32; + significantByte = bigEndian; + family = "or1k"; + }; - loongarch64 = { bits = 64; significantByte = littleEndian; family = "loongarch"; }; + loongarch64 = { + bits = 64; + significantByte = littleEndian; + family = "loongarch"; + }; - javascript = { bits = 32; significantByte = littleEndian; family = "javascript"; }; - }; + javascript = { + bits = 32; + significantByte = littleEndian; + family = "javascript"; + }; + }; # GNU build systems assume that older NetBSD architectures are using a.out. - gnuNetBSDDefaultExecFormat = cpu: - if (cpu.family == "arm" && cpu.bits == 32) || - (cpu.family == "sparc" && cpu.bits == 32) || - (cpu.family == "m68k" && cpu.bits == 32) || - (cpu.family == "x86" && cpu.bits == 32) - then execFormats.aout - else execFormats.elf; + gnuNetBSDDefaultExecFormat = + cpu: + if + (cpu.family == "arm" && cpu.bits == 32) + || (cpu.family == "sparc" && cpu.bits == 32) + || (cpu.family == "m68k" && cpu.bits == 32) + || (cpu.family == "x86" && cpu.bits == 32) + then + execFormats.aout + else + execFormats.elf; # Determine when two CPUs are compatible with each other. That is, # can code built for system B run on system A? For that to happen, @@ -197,56 +427,59 @@ rec { # Note: Since 22.11 the archs of a mode switching CPU are no longer considered # pairwise compatible. Mode switching implies that binaries built for A # and B respectively can't be executed at the same time. - isCompatible = with cpuTypes; a: b: any id [ - # x86 - (b == i386 && isCompatible a i486) - (b == i486 && isCompatible a i586) - (b == i586 && isCompatible a i686) + isCompatible = + with cpuTypes; + a: b: + any id [ + # x86 + (b == i386 && isCompatible a i486) + (b == i486 && isCompatible a i586) + (b == i586 && isCompatible a i686) - # XXX: Not true in some cases. Like in WSL mode. - (b == i686 && isCompatible a x86_64) + # XXX: Not true in some cases. Like in WSL mode. + (b == i686 && isCompatible a x86_64) - # ARMv4 - (b == arm && isCompatible a armv5tel) + # ARMv4 + (b == arm && isCompatible a armv5tel) - # ARMv5 - (b == armv5tel && isCompatible a armv6l) + # ARMv5 + (b == armv5tel && isCompatible a armv6l) - # ARMv6 - (b == armv6l && isCompatible a armv6m) - (b == armv6m && isCompatible a armv7l) + # ARMv6 + (b == armv6l && isCompatible a armv6m) + (b == armv6m && isCompatible a armv7l) - # ARMv7 - (b == armv7l && isCompatible a armv7a) - (b == armv7l && isCompatible a armv7r) - (b == armv7l && isCompatible a armv7m) + # ARMv7 + (b == armv7l && isCompatible a armv7a) + (b == armv7l && isCompatible a armv7r) + (b == armv7l && isCompatible a armv7m) - # ARMv8 - (b == aarch64 && a == armv8a) - (b == armv8a && isCompatible a aarch64) - (b == armv8r && isCompatible a armv8a) - (b == armv8m && isCompatible a armv8a) + # ARMv8 + (b == aarch64 && a == armv8a) + (b == armv8a && isCompatible a aarch64) + (b == armv8r && isCompatible a armv8a) + (b == armv8m && isCompatible a armv8a) - # PowerPC - (b == powerpc && isCompatible a powerpc64) - (b == powerpcle && isCompatible a powerpc64le) + # PowerPC + (b == powerpc && isCompatible a powerpc64) + (b == powerpcle && isCompatible a powerpc64le) - # MIPS - (b == mips && isCompatible a mips64) - (b == mipsel && isCompatible a mips64el) + # MIPS + (b == mips && isCompatible a mips64) + (b == mipsel && isCompatible a mips64el) - # RISCV - (b == riscv32 && isCompatible a riscv64) + # RISCV + (b == riscv32 && isCompatible a riscv64) - # SPARC - (b == sparc && isCompatible a sparc64) + # SPARC + (b == sparc && isCompatible a sparc64) - # WASM - (b == wasm32 && isCompatible a wasm64) + # WASM + (b == wasm32 && isCompatible a wasm64) - # identity - (b == a) - ]; + # identity + (b == a) + ]; ################################################################################ @@ -259,16 +492,16 @@ rec { types.vendor = enum (attrValues vendors); vendors = setTypes types.openVendor { - apple = {}; - pc = {}; - knuth = {}; + apple = { }; + pc = { }; + knuth = { }; # Actually matters, unlocking some MinGW-w64-specific options in GCC. See # bottom of https://sourceforge.net/p/mingw-w64/wiki2/Unicode%20apps/ - w64 = {}; + w64 = { }; - none = {}; - unknown = {}; + none = { }; + unknown = { }; }; ################################################################################ @@ -282,13 +515,13 @@ rec { types.execFormat = enum (attrValues execFormats); execFormats = setTypes types.openExecFormat { - aout = {}; # a.out - elf = {}; - macho = {}; - pe = {}; - wasm = {}; + aout = { }; # a.out + elf = { }; + macho = { }; + pe = { }; + wasm = { }; - unknown = {}; + unknown = { }; }; ################################################################################ @@ -302,8 +535,8 @@ rec { types.kernelFamily = enum (attrValues kernelFamilies); kernelFamilies = setTypes types.openKernelFamily { - bsd = {}; - darwin = {}; + bsd = { }; + darwin = { }; }; ################################################################################ @@ -312,43 +545,115 @@ rec { name = "kernel"; description = "kernel name and information"; merge = mergeOneOption; - check = x: types.execFormat.check x.execFormat - && all types.kernelFamily.check (attrValues x.families); + check = + x: types.execFormat.check x.execFormat && all types.kernelFamily.check (attrValues x.families); }; types.kernel = enum (attrValues kernels); - kernels = let - inherit (execFormats) elf pe wasm unknown macho; - inherit (kernelFamilies) bsd darwin; - in setTypes types.openKernel { - # TODO(@Ericson2314): Don't want to mass-rebuild yet to keeping 'darwin' as - # the normalized name for macOS. - macos = { execFormat = macho; families = { inherit darwin; }; name = "darwin"; }; - ios = { execFormat = macho; families = { inherit darwin; }; }; - # A tricky thing about FreeBSD is that there is no stable ABI across - # versions. That means that putting in the version as part of the - # config string is paramount. - freebsd12 = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; version = 12; }; - freebsd13 = { execFormat = elf; families = { inherit bsd; }; name = "freebsd"; version = 13; }; - linux = { execFormat = elf; families = { }; }; - netbsd = { execFormat = elf; families = { inherit bsd; }; }; - none = { execFormat = unknown; families = { }; }; - openbsd = { execFormat = elf; families = { inherit bsd; }; }; - solaris = { execFormat = elf; families = { }; }; - wasi = { execFormat = wasm; families = { }; }; - redox = { execFormat = elf; families = { }; }; - windows = { execFormat = pe; families = { }; }; - ghcjs = { execFormat = unknown; families = { }; }; - genode = { execFormat = elf; families = { }; }; - mmixware = { execFormat = unknown; families = { }; }; - } // { # aliases - # 'darwin' is the kernel for all of them. We choose macOS by default. - darwin = kernels.macos; - watchos = kernels.ios; - tvos = kernels.ios; - win32 = kernels.windows; - }; + kernels = + let + inherit (execFormats) + elf + pe + wasm + unknown + macho + ; + inherit (kernelFamilies) bsd darwin; + in + setTypes types.openKernel { + # TODO(@Ericson2314): Don't want to mass-rebuild yet to keeping 'darwin' as + # the normalized name for macOS. + macos = { + execFormat = macho; + families = { + inherit darwin; + }; + name = "darwin"; + }; + ios = { + execFormat = macho; + families = { + inherit darwin; + }; + }; + # A tricky thing about FreeBSD is that there is no stable ABI across + # versions. That means that putting in the version as part of the + # config string is paramount. + freebsd12 = { + execFormat = elf; + families = { + inherit bsd; + }; + name = "freebsd"; + version = 12; + }; + freebsd13 = { + execFormat = elf; + families = { + inherit bsd; + }; + name = "freebsd"; + version = 13; + }; + linux = { + execFormat = elf; + families = { }; + }; + netbsd = { + execFormat = elf; + families = { + inherit bsd; + }; + }; + none = { + execFormat = unknown; + families = { }; + }; + openbsd = { + execFormat = elf; + families = { + inherit bsd; + }; + }; + solaris = { + execFormat = elf; + families = { }; + }; + wasi = { + execFormat = wasm; + families = { }; + }; + redox = { + execFormat = elf; + families = { }; + }; + windows = { + execFormat = pe; + families = { }; + }; + ghcjs = { + execFormat = unknown; + families = { }; + }; + genode = { + execFormat = elf; + families = { }; + }; + mmixware = { + execFormat = unknown; + families = { }; + }; + } + // { + # aliases + # 'darwin' is the kernel for all of them. We choose macOS by default. + darwin = kernels.macos; + watchos = kernels.ios; + tvos = kernels.ios; + win32 = kernels.windows; + }; ################################################################################ @@ -361,22 +666,27 @@ rec { types.abi = enum (attrValues abis); abis = setTypes types.openAbi { - cygnus = {}; - msvc = {}; + cygnus = { }; + msvc = { }; # Note: eabi is specific to ARM and PowerPC. # On PowerPC, this corresponds to PPCEABI. # On ARM, this corresponds to ARMEABI. - eabi = { float = "soft"; }; - eabihf = { float = "hard"; }; + eabi = { + float = "soft"; + }; + eabihf = { + float = "hard"; + }; # Other architectures should use ELF in embedded situations. - elf = {}; + elf = { }; - androideabi = {}; - android = { + androideabi = { }; + android = { assertions = [ - { assertion = platform: !platform.isAarch32; + { + assertion = platform: !platform.isAarch32; message = '' The "android" ABI is not for 32-bit ARM. Use "androideabi" instead. ''; @@ -384,43 +694,69 @@ rec { ]; }; - gnueabi = { float = "soft"; }; - gnueabihf = { float = "hard"; }; - gnu = { + gnueabi = { + float = "soft"; + }; + gnueabihf = { + float = "hard"; + }; + gnu = { assertions = [ - { assertion = platform: !platform.isAarch32; + { + assertion = platform: !platform.isAarch32; message = '' The "gnu" ABI is ambiguous on 32-bit ARM. Use "gnueabi" or "gnueabihf" instead. ''; } - { assertion = platform: !(platform.isPower64 && platform.isBigEndian); + { + assertion = platform: !(platform.isPower64 && platform.isBigEndian); message = '' The "gnu" ABI is ambiguous on big-endian 64-bit PowerPC. Use "gnuabielfv2" or "gnuabielfv1" instead. ''; } ]; }; - gnuabi64 = { abi = "64"; }; - muslabi64 = { abi = "64"; }; + gnuabi64 = { + abi = "64"; + }; + muslabi64 = { + abi = "64"; + }; # NOTE: abi=n32 requires a 64-bit MIPS chip! That is not a typo. # It is basically the 64-bit abi with 32-bit pointers. Details: # https://www.linux-mips.org/pub/linux/mips/doc/ABI/MIPS-N32-ABI-Handbook.pdf - gnuabin32 = { abi = "n32"; }; - muslabin32 = { abi = "n32"; }; + gnuabin32 = { + abi = "n32"; + }; + muslabin32 = { + abi = "n32"; + }; - gnuabielfv2 = { abi = "elfv2"; }; - gnuabielfv1 = { abi = "elfv1"; }; + gnuabielfv2 = { + abi = "elfv2"; + }; + gnuabielfv1 = { + abi = "elfv1"; + }; - musleabi = { float = "soft"; }; - musleabihf = { float = "hard"; }; - musl = {}; + musleabi = { + float = "soft"; + }; + musleabihf = { + float = "hard"; + }; + musl = { }; - uclibceabi = { float = "soft"; }; - uclibceabihf = { float = "hard"; }; - uclibc = {}; + uclibceabi = { + float = "soft"; + }; + uclibceabihf = { + float = "hard"; + }; + uclibc = { }; - unknown = {}; + unknown = { }; }; ################################################################################ @@ -429,119 +765,210 @@ rec { name = "system"; description = "fully parsed representation of llvm- or nix-style platform tuple"; merge = mergeOneOption; - check = { cpu, vendor, kernel, abi }: - types.cpuType.check cpu - && types.vendor.check vendor - && types.kernel.check kernel - && types.abi.check abi; + check = + { + cpu, + vendor, + kernel, + abi, + }: + types.cpuType.check cpu + && types.vendor.check vendor + && types.kernel.check kernel + && types.abi.check abi; }; isSystem = isType "system"; - mkSystem = components: + mkSystem = + components: assert types.parsedPlatform.check components; setType "system" components; - mkSkeletonFromList = l: { - "1" = if elemAt l 0 == "avr" - then { cpu = elemAt l 0; kernel = "none"; abi = "unknown"; } - else throw "Target specification with 1 components is ambiguous"; - "2" = # We only do 2-part hacks for things Nix already supports - if elemAt l 1 == "cygwin" - then { cpu = elemAt l 0; kernel = "windows"; abi = "cygnus"; } - # MSVC ought to be the default ABI so this case isn't needed. But then it - # becomes difficult to handle the gnu* variants for Aarch32 correctly for - # minGW. So it's easier to make gnu* the default for the MinGW, but - # hack-in MSVC for the non-MinGW case right here. - else if elemAt l 1 == "windows" - then { cpu = elemAt l 0; kernel = "windows"; abi = "msvc"; } - else if (elemAt l 1) == "elf" - then { cpu = elemAt l 0; vendor = "unknown"; kernel = "none"; abi = elemAt l 1; } - else { cpu = elemAt l 0; kernel = elemAt l 1; }; - "3" = - # cpu-kernel-environment - if elemAt l 1 == "linux" || - elem (elemAt l 2) ["eabi" "eabihf" "elf" "gnu"] - then { - cpu = elemAt l 0; - kernel = elemAt l 1; - abi = elemAt l 2; - vendor = "unknown"; - } - # cpu-vendor-os - else if elemAt l 1 == "apple" || - elem (elemAt l 2) [ "wasi" "redox" "mmixware" "ghcjs" "mingw32" ] || - hasPrefix "freebsd" (elemAt l 2) || - hasPrefix "netbsd" (elemAt l 2) || - hasPrefix "genode" (elemAt l 2) - then { - cpu = elemAt l 0; + mkSkeletonFromList = + l: + { + "1" = + if elemAt l 0 == "avr" then + { + cpu = elemAt l 0; + kernel = "none"; + abi = "unknown"; + } + else + throw "Target specification with 1 components is ambiguous"; + "2" = # We only do 2-part hacks for things Nix already supports + if elemAt l 1 == "cygwin" then + { + cpu = elemAt l 0; + kernel = "windows"; + abi = "cygnus"; + } + # MSVC ought to be the default ABI so this case isn't needed. But then it + # becomes difficult to handle the gnu* variants for Aarch32 correctly for + # minGW. So it's easier to make gnu* the default for the MinGW, but + # hack-in MSVC for the non-MinGW case right here. + else if elemAt l 1 == "windows" then + { + cpu = elemAt l 0; + kernel = "windows"; + abi = "msvc"; + } + else if (elemAt l 1) == "elf" then + { + cpu = elemAt l 0; + vendor = "unknown"; + kernel = "none"; + abi = elemAt l 1; + } + else + { + cpu = elemAt l 0; + kernel = elemAt l 1; + }; + "3" = + # cpu-kernel-environment + if + elemAt l 1 == "linux" + || elem (elemAt l 2) [ + "eabi" + "eabihf" + "elf" + "gnu" + ] + then + { + cpu = elemAt l 0; + kernel = elemAt l 1; + abi = elemAt l 2; + vendor = "unknown"; + } + # cpu-vendor-os + else if + elemAt l 1 == "apple" + || elem (elemAt l 2) [ + "wasi" + "redox" + "mmixware" + "ghcjs" + "mingw32" + ] + || hasPrefix "freebsd" (elemAt l 2) + || hasPrefix "netbsd" (elemAt l 2) + || hasPrefix "genode" (elemAt l 2) + then + { + cpu = elemAt l 0; + vendor = elemAt l 1; + kernel = + if elemAt l 2 == "mingw32" then + "windows" # autotools breaks on -gnu for window + else + elemAt l 2; + } + else + throw "Target specification with 3 components is ambiguous"; + "4" = { + cpu = elemAt l 0; vendor = elemAt l 1; - kernel = if elemAt l 2 == "mingw32" - then "windows" # autotools breaks on -gnu for window - else elemAt l 2; - } - else throw "Target specification with 3 components is ambiguous"; - "4" = { cpu = elemAt l 0; vendor = elemAt l 1; kernel = elemAt l 2; abi = elemAt l 3; }; - }.${toString (length l)} + kernel = elemAt l 2; + abi = elemAt l 3; + }; + } + .${toString (length l)} or (throw "system string has invalid number of hyphen-separated components"); # This should revert the job done by config.guess from the gcc compiler. - mkSystemFromSkeleton = { cpu - , # Optional, but fallback too complex for here. - # Inferred below instead. - vendor ? assert false; null - , kernel - , # Also inferred below - abi ? assert false; null - } @ args: let - getCpu = name: cpuTypes.${name} or (throw "Unknown CPU type: ${name}"); - getVendor = name: vendors.${name} or (throw "Unknown vendor: ${name}"); - getKernel = name: kernels.${name} or (throw "Unknown kernel: ${name}"); - getAbi = name: abis.${name} or (throw "Unknown ABI: ${name}"); + mkSystemFromSkeleton = + { + cpu, + # Optional, but fallback too complex for here. + # Inferred below instead. + vendor ? + assert false; + null, + kernel, + # Also inferred below + abi ? + assert false; + null, + }@args: + let + getCpu = name: cpuTypes.${name} or (throw "Unknown CPU type: ${name}"); + getVendor = name: vendors.${name} or (throw "Unknown vendor: ${name}"); + getKernel = name: kernels.${name} or (throw "Unknown kernel: ${name}"); + getAbi = name: abis.${name} or (throw "Unknown ABI: ${name}"); - parsed = { - cpu = getCpu args.cpu; - vendor = - /**/ if args ? vendor then getVendor args.vendor - else if isDarwin parsed then vendors.apple - else if isWindows parsed then vendors.pc - else vendors.unknown; - kernel = if hasPrefix "darwin" args.kernel then getKernel "darwin" - else if hasPrefix "netbsd" args.kernel then getKernel "netbsd" - else getKernel (removeAbiSuffix args.kernel); - abi = - /**/ if args ? abi then getAbi args.abi - else if isLinux parsed || isWindows parsed then - if isAarch32 parsed then - if versionAtLeast (parsed.cpu.version or "0") "6" - then abis.gnueabihf - else abis.gnueabi - # Default ppc64 BE to ELFv2 - else if isPower64 parsed && isBigEndian parsed then abis.gnuabielfv2 - else abis.gnu - else abis.unknown; - }; + parsed = { + cpu = getCpu args.cpu; + vendor = + if args ? vendor then + getVendor args.vendor + else if isDarwin parsed then + vendors.apple + else if isWindows parsed then + vendors.pc + else + vendors.unknown; + kernel = + if hasPrefix "darwin" args.kernel then + getKernel "darwin" + else if hasPrefix "netbsd" args.kernel then + getKernel "netbsd" + else + getKernel (removeAbiSuffix args.kernel); + abi = + if args ? abi then + getAbi args.abi + else if isLinux parsed || isWindows parsed then + if isAarch32 parsed then + if versionAtLeast (parsed.cpu.version or "0") "6" then abis.gnueabihf else abis.gnueabi + # Default ppc64 BE to ELFv2 + else if isPower64 parsed && isBigEndian parsed then + abis.gnuabielfv2 + else + abis.gnu + else + abis.unknown; + }; - in mkSystem parsed; + in + mkSystem parsed; mkSystemFromString = s: mkSystemFromSkeleton (mkSkeletonFromList (splitString "-" s)); - kernelName = kernel: - kernel.name + toString (kernel.version or ""); + kernelName = kernel: kernel.name + toString (kernel.version or ""); - doubleFromSystem = { cpu, kernel, abi, ... }: - /**/ if abi == abis.cygnus then "${cpu.name}-cygwin" - else if kernel.families ? darwin then "${cpu.name}-darwin" - else "${cpu.name}-${kernelName kernel}"; + doubleFromSystem = + { + cpu, + kernel, + abi, + ... + }: + if abi == abis.cygnus then + "${cpu.name}-cygwin" + else if kernel.families ? darwin then + "${cpu.name}-darwin" + else + "${cpu.name}-${kernelName kernel}"; - tripleFromSystem = { cpu, vendor, kernel, abi, ... } @ sys: assert isSystem sys; let - optExecFormat = - optionalString (kernel.name == "netbsd" && - gnuNetBSDDefaultExecFormat cpu != kernel.execFormat) - kernel.execFormat.name; - optAbi = optionalString (abi != abis.unknown) "-${abi.name}"; - in "${cpu.name}-${vendor.name}-${kernelName kernel}${optExecFormat}${optAbi}"; + tripleFromSystem = + { + cpu, + vendor, + kernel, + abi, + ... + }@sys: + assert isSystem sys; + let + optExecFormat = optionalString ( + kernel.name == "netbsd" && gnuNetBSDDefaultExecFormat cpu != kernel.execFormat + ) kernel.execFormat.name; + optAbi = optionalString (abi != abis.unknown) "-${abi.name}"; + in + "${cpu.name}-${vendor.name}-${kernelName kernel}${optExecFormat}${optAbi}"; ################################################################################ diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index d2e8f77..ac7e3b3 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -18,9 +18,7 @@ rec { }; }; - pc_simplekernel = lib.recursiveUpdate pc { - linux-kernel.autoModules = false; - }; + pc_simplekernel = lib.recursiveUpdate pc { linux-kernel.autoModules = false; }; powernv = { linux-kernel = { @@ -490,12 +488,42 @@ rec { }; # can execute on 32bit chip - gcc_mips32r2_o32 = { gcc = { arch = "mips32r2"; abi = "32"; }; }; - gcc_mips32r6_o32 = { gcc = { arch = "mips32r6"; abi = "32"; }; }; - gcc_mips64r2_n32 = { gcc = { arch = "mips64r2"; abi = "n32"; }; }; - gcc_mips64r6_n32 = { gcc = { arch = "mips64r6"; abi = "n32"; }; }; - gcc_mips64r2_64 = { gcc = { arch = "mips64r2"; abi = "64"; }; }; - gcc_mips64r6_64 = { gcc = { arch = "mips64r6"; abi = "64"; }; }; + gcc_mips32r2_o32 = { + gcc = { + arch = "mips32r2"; + abi = "32"; + }; + }; + gcc_mips32r6_o32 = { + gcc = { + arch = "mips32r6"; + abi = "32"; + }; + }; + gcc_mips64r2_n32 = { + gcc = { + arch = "mips64r2"; + abi = "n32"; + }; + }; + gcc_mips64r6_n32 = { + gcc = { + arch = "mips64r6"; + abi = "n32"; + }; + }; + gcc_mips64r2_64 = { + gcc = { + arch = "mips64r2"; + abi = "64"; + }; + }; + gcc_mips64r6_64 = { + gcc = { + arch = "mips64r6"; + abi = "64"; + }; + }; # based on: # https://www.mail-archive.com/qemu-discuss@nongnu.org/msg05179.html @@ -546,27 +574,38 @@ rec { # This function takes a minimally-valid "platform" and returns an # attrset containing zero or more additional attrs which should be # included in the platform in order to further elaborate it. - select = platform: + select = + platform: # x86 - /**/ if platform.isx86 then pc + if platform.isx86 then + pc # ARM - else if platform.isAarch32 then let - version = platform.parsed.cpu.version or null; - in if version == null then pc - else if lib.versionOlder version "6" then sheevaplug - else if lib.versionOlder version "7" then raspberrypi - else armv7l-hf-multiplatform + else if platform.isAarch32 then + let + version = platform.parsed.cpu.version or null; + in + if version == null then + pc + else if lib.versionOlder version "6" then + sheevaplug + else if lib.versionOlder version "7" then + raspberrypi + else + armv7l-hf-multiplatform else if platform.isAarch64 then - if platform.isDarwin then apple-m1 - else aarch64-multiplatform + if platform.isDarwin then apple-m1 else aarch64-multiplatform - else if platform.isRiscV then riscv-multiplatform + else if platform.isRiscV then + riscv-multiplatform - else if platform.parsed.cpu == lib.systems.parse.cpuTypes.mipsel then (import ./examples.nix { inherit lib; }).mipsel-linux-gnu + else if platform.parsed.cpu == lib.systems.parse.cpuTypes.mipsel then + (import ./examples.nix { inherit lib; }).mipsel-linux-gnu - else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then powernv + else if platform.parsed.cpu == lib.systems.parse.cpuTypes.powerpc64le then + powernv - else { }; + else + { }; } diff --git a/lib/tests/check-eval.nix b/lib/tests/check-eval.nix index 8bd7b60..2ef7580 100644 --- a/lib/tests/check-eval.nix +++ b/lib/tests/check-eval.nix @@ -1,7 +1,10 @@ # Throws an error if any of our lib tests fail. -let tests = [ "misc" "systems" ]; - all = builtins.concatLists (map (f: import (./. + "/${f}.nix")) tests); -in if all == [] - then null - else throw (builtins.toJSON all) +let + tests = [ + "misc" + "systems" + ]; + all = builtins.concatLists (map (f: import (./. + "/${f}.nix")) tests); +in +if all == [ ] then null else throw (builtins.toJSON all) diff --git a/lib/tests/maintainer-module.nix b/lib/tests/maintainer-module.nix index afa1258..4cbbd75 100644 --- a/lib/tests/maintainer-module.nix +++ b/lib/tests/maintainer-module.nix @@ -1,11 +1,10 @@ { lib, ... }: let inherit (lib) types; -in { +in +{ options = { - name = lib.mkOption { - type = types.str; - }; + name = lib.mkOption { type = types.str; }; email = lib.mkOption { type = types.nullOr types.str; default = null; @@ -23,10 +22,8 @@ in { default = null; }; keys = lib.mkOption { - type = types.listOf (types.submodule { - options.fingerprint = lib.mkOption { type = types.str; }; - }); - default = []; + type = types.listOf (types.submodule { options.fingerprint = lib.mkOption { type = types.str; }; }); + default = [ ]; }; }; } diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix index be1c8aa..d04bb07 100644 --- a/lib/tests/maintainers.nix +++ b/lib/tests/maintainers.nix @@ -1,53 +1,76 @@ # to run these tests (and the others) # nix-build nixpkgs/lib/tests/release.nix # These tests should stay in sync with the comment in maintainers/maintainers-list.nix -{ # The pkgs used for dependencies for the testing itself - pkgs ? import ../.. {} -, lib ? pkgs.lib +{ + # The pkgs used for dependencies for the testing itself + pkgs ? import ../.. { }, + lib ? pkgs.lib, }: let - checkMaintainer = handle: uncheckedAttrs: - let - prefix = [ "lib" "maintainers" handle ]; - checkedAttrs = (lib.modules.evalModules { - inherit prefix; - modules = [ - ./maintainer-module.nix - { - _file = toString ../../maintainers/maintainer-list.nix; - config = uncheckedAttrs; - } - ]; - }).config; + checkMaintainer = + handle: uncheckedAttrs: + let + prefix = [ + "lib" + "maintainers" + handle + ]; + checkedAttrs = + (lib.modules.evalModules { + inherit prefix; + modules = [ + ./maintainer-module.nix + { + _file = toString ../../maintainers/maintainer-list.nix; + config = uncheckedAttrs; + } + ]; + }).config; - checks = lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) '' - echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.' - # Calling this too often would hit non-authenticated API limits, but this - # shouldn't happen since such errors will get fixed rather quickly - info=$(curl -sS https://api.github.com/users/${checkedAttrs.github}) - id=$(jq -r '.id' <<< "$info") - echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:" - echo -e " githubId = $id;\n" - '' ++ lib.optional (checkedAttrs.email == null && checkedAttrs.github == null && checkedAttrs.matrix == null) '' - echo ${lib.escapeShellArg (lib.showOption prefix)}': At least one of `email`, `github` or `matrix` must be specified, so that users know how to reach you.' - '' ++ lib.optional (checkedAttrs.email != null && lib.hasSuffix "noreply.github.com" checkedAttrs.email) '' - echo ${lib.escapeShellArg (lib.showOption prefix)}': If an email address is given, it should allow people to reach you. If you do not want that, you can just provide `github` or `matrix` instead.' - ''; - in lib.deepSeq checkedAttrs checks; + checks = + lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) '' + echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.' + # Calling this too often would hit non-authenticated API limits, but this + # shouldn't happen since such errors will get fixed rather quickly + info=$(curl -sS https://api.github.com/users/${checkedAttrs.github}) + id=$(jq -r '.id' <<< "$info") + echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:" + echo -e " githubId = $id;\n" + '' + ++ + lib.optional + (checkedAttrs.email == null && checkedAttrs.github == null && checkedAttrs.matrix == null) + '' + echo ${lib.escapeShellArg (lib.showOption prefix)}': At least one of `email`, `github` or `matrix` must be specified, so that users know how to reach you.' + '' + ++ + lib.optional (checkedAttrs.email != null && lib.hasSuffix "noreply.github.com" checkedAttrs.email) + '' + echo ${lib.escapeShellArg (lib.showOption prefix)}': If an email address is given, it should allow people to reach you. If you do not want that, you can just provide `github` or `matrix` instead.' + ''; + in + lib.deepSeq checkedAttrs checks; missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers); - success = pkgs.runCommand "checked-maintainers-success" {} ">$out"; + success = pkgs.runCommand "checked-maintainers-success" { } ">$out"; - failure = pkgs.runCommand "checked-maintainers-failure" { - nativeBuildInputs = [ pkgs.curl pkgs.jq ]; - outputHash = "sha256:${lib.fakeSha256}"; - outputHAlgo = "sha256"; - outputHashMode = "flat"; - SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; - } '' - ${lib.concatStringsSep "\n" missingGithubIds} - exit 1 - ''; -in if missingGithubIds == [] then success else failure + failure = + pkgs.runCommand "checked-maintainers-failure" + { + nativeBuildInputs = [ + pkgs.curl + pkgs.jq + ]; + outputHash = "sha256:${lib.fakeSha256}"; + outputHAlgo = "sha256"; + outputHashMode = "flat"; + SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; + } + '' + ${lib.concatStringsSep "\n" missingGithubIds} + exit 1 + ''; +in +if missingGithubIds == [ ] then success else failure diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 98c927c..e09adf7 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -113,61 +113,118 @@ let testingThrow = expr: { expr = (builtins.tryEval (builtins.seq expr "didn't throw")); - expected = { success = false; value = false; }; + expected = { + success = false; + value = false; + }; }; testingEval = expr: { expr = (builtins.tryEval expr).success; expected = true; }; - testSanitizeDerivationName = { name, expected }: - let - drv = derivation { - name = strings.sanitizeDerivationName name; - builder = "x"; - system = "x"; + testSanitizeDerivationName = + { name, expected }: + let + drv = derivation { + name = strings.sanitizeDerivationName name; + builder = "x"; + system = "x"; + }; + in + { + # Evaluate the derivation so an invalid name would be caught + expr = builtins.seq drv.drvPath drv.name; + inherit expected; }; - in { - # Evaluate the derivation so an invalid name would be caught - expr = builtins.seq drv.drvPath drv.name; - inherit expected; - }; in runTests { -# CUSTOMIZATION + # CUSTOMIZATION testFunctionArgsMakeOverridable = { - expr = functionArgs (makeOverridable ({ a, b, c ? null}: {})); - expected = { a = false; b = false; c = true; }; + expr = functionArgs ( + makeOverridable ( + { + a, + b, + c ? null, + }: + { } + ) + ); + expected = { + a = false; + b = false; + c = true; + }; }; testFunctionArgsMakeOverridableOverride = { - expr = functionArgs (makeOverridable ({ a, b, c ? null }: {}) { a = 1; b = 2; }).override; - expected = { a = false; b = false; c = true; }; + expr = + functionArgs + (makeOverridable + ( + { + a, + b, + c ? null, + }: + { } + ) + { + a = 1; + b = 2; + } + ).override; + expected = { + a = false; + b = false; + c = true; + }; }; testCallPackageWithOverridePreservesArguments = let - f = { a ? 0, b }: {}; - f' = callPackageWith { a = 1; b = 2; } f {}; - in { + f = + { + a ? 0, + b, + }: + { }; + f' = callPackageWith { + a = 1; + b = 2; + } f { }; + in + { expr = functionArgs f'.override; expected = functionArgs f; }; testCallPackagesWithOverridePreservesArguments = let - f = { a ? 0, b }: { nested = {}; }; - f' = callPackagesWith { a = 1; b = 2; } f {}; - in { + f = + { + a ? 0, + b, + }: + { + nested = { }; + }; + f' = callPackagesWith { + a = 1; + b = 2; + } f { }; + in + { expr = functionArgs f'.nested.override; expected = functionArgs f; }; -# TRIVIAL + # TRIVIAL testId = { expr = id 1; @@ -188,16 +245,22 @@ runTests { }; testPipeEmpty = { - expr = pipe 2 []; + expr = pipe 2 [ ]; expected = 2; }; testPipeStrings = { - expr = pipe [ 3 4 ] [ - (map toString) - (map (s: s + "\n")) - concatStrings - ]; + expr = + pipe + [ + 3 + 4 + ] + [ + (map toString) + (map (s: s + "\n")) + concatStrings + ]; expected = '' 3 4 @@ -232,39 +295,70 @@ runTests { }; testFix = { - expr = fix (x: {a = if x ? a then "a" else "b";}); - expected = {a = "a";}; + expr = fix (x: { + a = if x ? a then "a" else "b"; + }); + expected = { + a = "a"; + }; }; testComposeExtensions = { - expr = let obj = makeExtensible (self: { foo = self.bar; }); - f = self: super: { bar = false; baz = true; }; - g = self: super: { bar = super.baz or false; }; - f_o_g = composeExtensions f g; - composed = obj.extend f_o_g; - in composed.foo; + expr = + let + obj = makeExtensible (self: { + foo = self.bar; + }); + f = self: super: { + bar = false; + baz = true; + }; + g = self: super: { bar = super.baz or false; }; + f_o_g = composeExtensions f g; + composed = obj.extend f_o_g; + in + composed.foo; expected = true; }; testComposeManyExtensions0 = { - expr = let obj = makeExtensible (self: { foo = true; }); - emptyComposition = composeManyExtensions []; - composed = obj.extend emptyComposition; - in composed.foo; + expr = + let + obj = makeExtensible (self: { + foo = true; + }); + emptyComposition = composeManyExtensions [ ]; + composed = obj.extend emptyComposition; + in + composed.foo; expected = true; }; testComposeManyExtensions = - let f = self: super: { bar = false; baz = true; }; - g = self: super: { bar = super.baz or false; }; - h = self: super: { qux = super.bar or false; }; - obj = makeExtensible (self: { foo = self.qux; }); - in { - expr = let composition = composeManyExtensions [f g h]; - composed = obj.extend composition; - in composed.foo; - expected = (obj.extend (composeExtensions f (composeExtensions g h))).foo; - }; + let + f = self: super: { + bar = false; + baz = true; + }; + g = self: super: { bar = super.baz or false; }; + h = self: super: { qux = super.bar or false; }; + obj = makeExtensible (self: { + foo = self.qux; + }); + in + { + expr = + let + composition = composeManyExtensions [ + f + g + h + ]; + composed = obj.extend composition; + in + composed.foo; + expected = (obj.extend (composeExtensions f (composeExtensions g h))).foo; + }; testBitAnd = { expr = (bitAnd 3 10); @@ -288,47 +382,81 @@ runTests { testToBaseDigits = { expr = toBaseDigits 2 6; - expected = [ 1 1 0 ]; + expected = [ + 1 + 1 + 0 + ]; }; testFunctionArgsFunctor = { expr = functionArgs { __functor = self: { a, b }: null; }; - expected = { a = false; b = false; }; + expected = { + a = false; + b = false; + }; }; testFunctionArgsSetFunctionArgs = { expr = functionArgs (setFunctionArgs (args: args.x) { x = false; }); - expected = { x = false; }; + expected = { + x = false; + }; }; -# STRINGS + # STRINGS testConcatMapStrings = { - expr = concatMapStrings (x: x + ";") ["a" "b" "c"]; + expr = concatMapStrings (x: x + ";") [ + "a" + "b" + "c" + ]; expected = "a;b;c;"; }; testConcatStringsSep = { - expr = concatStringsSep "," ["a" "b" "c"]; + expr = concatStringsSep "," [ + "a" + "b" + "c" + ]; expected = "a,b,c"; }; testConcatLines = { - expr = concatLines ["a" "b" "c"]; + expr = concatLines [ + "a" + "b" + "c" + ]; expected = "a\nb\nc\n"; }; testMakeIncludePathWithPkgs = { - expr = (makeIncludePath [ - # makeIncludePath preferably selects the "dev" output - { dev.outPath = "/dev"; out.outPath = "/out"; outPath = "/default"; } - # "out" is used if "dev" is not found - { out.outPath = "/out"; outPath = "/default"; } - # And it returns the derivation directly if there's no "out" either - { outPath = "/default"; } - # Same if the output is specified explicitly, even if there's a "dev" - { dev.outPath = "/dev"; outPath = "/default"; outputSpecified = true; } - ]); + expr = ( + makeIncludePath [ + # makeIncludePath preferably selects the "dev" output + { + dev.outPath = "/dev"; + out.outPath = "/out"; + outPath = "/default"; + } + # "out" is used if "dev" is not found + { + out.outPath = "/out"; + outPath = "/default"; + } + # And it returns the derivation directly if there's no "out" either + { outPath = "/default"; } + # Same if the output is specified explicitly, even if there's a "dev" + { + dev.outPath = "/dev"; + outPath = "/default"; + outputSpecified = true; + } + ] + ); expected = "/dev/include:/out/include:/default/include:/default/include"; }; @@ -343,7 +471,12 @@ runTests { }; testMakeIncludePathWithManyString = { - expr = (makeIncludePath [ "/usr" "/usr/local" ]); + expr = ( + makeIncludePath [ + "/usr" + "/usr/local" + ] + ); expected = "/usr/include:/usr/local/include"; }; @@ -354,12 +487,21 @@ runTests { testSplitStringsSimple = { expr = strings.splitString "." "a.b.c.d"; - expected = [ "a" "b" "c" "d" ]; + expected = [ + "a" + "b" + "c" + "d" + ]; }; testSplitStringsEmpty = { expr = strings.splitString "." "a..b"; - expected = [ "a" "" "b" ]; + expected = [ + "a" + "" + "b" + ]; }; testSplitStringsOne = { @@ -374,26 +516,49 @@ runTests { testSplitStringsFirstEmpty = { expr = strings.splitString "/" "/a/b/c"; - expected = [ "" "a" "b" "c" ]; + expected = [ + "" + "a" + "b" + "c" + ]; }; testSplitStringsLastEmpty = { expr = strings.splitString ":" "2001:db8:0:0042::8a2e:370:"; - expected = [ "2001" "db8" "0" "0042" "" "8a2e" "370" "" ]; + expected = [ + "2001" + "db8" + "0" + "0042" + "" + "8a2e" + "370" + "" + ]; }; testSplitStringsRegex = { expr = strings.splitString "\\[{}]()^$?*+|." "A\\[{}]()^$?*+|.B"; - expected = [ "A" "B" ]; + expected = [ + "A" + "B" + ]; }; testSplitStringsDerivation = { - expr = take 3 (strings.splitString "/" (derivation { - name = "name"; - builder = "builder"; - system = "system"; - })); - expected = ["" "nix" "store"]; + expr = take 3 ( + strings.splitString "/" (derivation { + name = "name"; + builder = "builder"; + system = "system"; + }) + ); + expected = [ + "" + "nix" + "store" + ]; }; testSplitVersionSingle = { @@ -403,12 +568,19 @@ runTests { testSplitVersionDouble = { expr = versions.splitVersion "1.2"; - expected = [ "1" "2" ]; + expected = [ + "1" + "2" + ]; }; testSplitVersionTriple = { expr = versions.splitVersion "1.2.3"; - expected = [ "1" "2" "3" ]; + expected = [ + "1" + "2" + "3" + ]; }; testPadVersionLess = { @@ -426,21 +598,21 @@ runTests { expected = "1.2.3"; }; - testIsStorePath = { + testIsStorePath = { expr = - let goodPath = - "${builtins.storeDir}/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11"; - in { + let + goodPath = "${builtins.storeDir}/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11"; + in + { storePath = isStorePath goodPath; # storePathDerivation = isStorePath (import ../.. { system = "x86_64-linux"; }).hello; - storePathAppendix = isStorePath - "${goodPath}/bin/python"; + storePathAppendix = isStorePath "${goodPath}/bin/python"; nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath))); asPath = isStorePath (/. + goodPath); otherPath = isStorePath "/something/else"; otherVals = { - attrset = isStorePath {}; - list = isStorePath []; + attrset = isStorePath { }; + list = isStorePath [ ]; int = isStorePath 42; }; }; @@ -468,7 +640,10 @@ runTests { expr = '' ${toShellVars { STRing01 = "just a 'string'"; - _array_ = [ "with" "more strings" ]; + _array_ = [ + "with" + "more strings" + ]; assoc."with some" = '' strings possibly newlines @@ -568,7 +743,10 @@ runTests { ("Hello%20World" == strings.escapeURL "Hello World") ("Hello%2FWorld" == strings.escapeURL "Hello/World") ("42%25" == strings.escapeURL "42%") - ("%20%3F%26%3D%23%2B%25%21%3C%3E%23%22%7B%7D%7C%5C%5E%5B%5D%60%09%3A%2F%40%24%27%28%29%2A%2C%3B" == strings.escapeURL " ?&=#+%!<>#\"{}|\\^[]`\t:/@$'()*,;") + ( + "%20%3F%26%3D%23%2B%25%21%3C%3E%23%22%7B%7D%7C%5C%5E%5B%5D%60%09%3A%2F%40%24%27%28%29%2A%2C%3B" + == strings.escapeURL " ?&=#+%!<>#\"{}|\\^[]`\t:/@$'()*,;" + ) ]; testToInt = testAllTrue [ @@ -588,19 +766,84 @@ runTests { ]; testToIntFails = testAllTrue [ - ( builtins.tryEval (toInt "") == { success = false; value = false; } ) - ( builtins.tryEval (toInt "123 123") == { success = false; value = false; } ) - ( builtins.tryEval (toInt "0 123") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " 0d ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " 1d ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " d0 ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt "00") == { success = false; value = false; } ) - ( builtins.tryEval (toInt "01") == { success = false; value = false; } ) - ( builtins.tryEval (toInt "002") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " 002 ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " foo ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " foo 123 ") == { success = false; value = false; } ) - ( builtins.tryEval (toInt " foo123 ") == { success = false; value = false; } ) + ( + builtins.tryEval (toInt "") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt "123 123") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt "0 123") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " 0d ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " 1d ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " d0 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt "00") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt "01") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt "002") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " 002 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " foo ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " foo 123 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toInt " foo123 ") == { + success = false; + value = false; + } + ) ]; testToIntBase10 = testAllTrue [ @@ -634,47 +877,147 @@ runTests { ]; testToIntBase10Fails = testAllTrue [ - ( builtins.tryEval (toIntBase10 "") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 "123 123") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 "0 123") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " 0d ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " 1d ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " d0 ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " foo ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " foo 123 ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " foo 00123 ") == { success = false; value = false; } ) - ( builtins.tryEval (toIntBase10 " foo00123 ") == { success = false; value = false; } ) + ( + builtins.tryEval (toIntBase10 "") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 "123 123") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 "0 123") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " 0d ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " 1d ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " d0 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " foo ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " foo 123 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " foo 00123 ") == { + success = false; + value = false; + } + ) + ( + builtins.tryEval (toIntBase10 " foo00123 ") == { + success = false; + value = false; + } + ) ]; -# LISTS + # LISTS testFilter = { - expr = filter (x: x != "a") ["a" "b" "c" "a"]; - expected = ["b" "c"]; + expr = filter (x: x != "a") [ + "a" + "b" + "c" + "a" + ]; + expected = [ + "b" + "c" + ]; }; testIfilter0Example = { - expr = ifilter0 (i: v: i == 0 || v > 2) [ 1 2 3 ]; - expected = [ 1 3 ]; + expr = ifilter0 (i: v: i == 0 || v > 2) [ + 1 + 2 + 3 + ]; + expected = [ + 1 + 3 + ]; }; testIfilter0Empty = { expr = ifilter0 (i: v: abort "shouldn't be evaluated!") [ ]; expected = [ ]; }; testIfilter0IndexOnly = { - expr = length (ifilter0 (i: v: mod i 2 == 0) [ (throw "0") (throw "1") (throw "2") (throw "3")]); + expr = length ( + ifilter0 (i: v: mod i 2 == 0) [ + (throw "0") + (throw "1") + (throw "2") + (throw "3") + ] + ); expected = 2; }; testIfilter0All = { - expr = ifilter0 (i: v: true) [ 10 11 12 13 14 15 ]; - expected = [ 10 11 12 13 14 15 ]; + expr = ifilter0 (i: v: true) [ + 10 + 11 + 12 + 13 + 14 + 15 + ]; + expected = [ + 10 + 11 + 12 + 13 + 14 + 15 + ]; }; testIfilter0First = { - expr = ifilter0 (i: v: i == 0) [ 10 11 12 13 14 15 ]; + expr = ifilter0 (i: v: i == 0) [ + 10 + 11 + 12 + 13 + 14 + 15 + ]; expected = [ 10 ]; }; testIfilter0Last = { - expr = ifilter0 (i: v: i == 5) [ 10 11 12 13 14 15 ]; + expr = ifilter0 (i: v: i == 5) [ + 10 + 11 + 12 + 13 + 14 + 15 + ]; expected = [ 15 ]; }; @@ -685,7 +1028,8 @@ runTests { assoc = f builtins.add; # fold with non-associative operator nonAssoc = f builtins.sub; - in { + in + { expr = { assocRight = assoc foldr; # right fold with assoc operator is same as left fold @@ -713,22 +1057,33 @@ runTests { }; testFoldl'IntegerAdding = { - expr = foldl' (acc: el: acc + el) 0 [ 1 2 3 ]; + expr = foldl' (acc: el: acc + el) 0 [ + 1 + 2 + 3 + ]; expected = 6; }; # The accumulator isn't forced deeply testFoldl'NonDeep = { - expr = take 3 (foldl' - (acc: el: [ el ] ++ acc) - [ (abort "unevaluated list entry") ] - [ 1 2 3 ]); - expected = [ 3 2 1 ]; + expr = take 3 ( + foldl' (acc: el: [ el ] ++ acc) [ (abort "unevaluated list entry") ] [ + 1 + 2 + 3 + ] + ); + expected = [ + 3 + 2 + 1 + ]; }; # Compared to builtins.foldl', lib.foldl' evaluates the first accumulator strictly too testFoldl'StrictInitial = { - expr = (builtins.tryEval (foldl' (acc: el: el) (throw "hello") [])).success; + expr = (builtins.tryEval (foldl' (acc: el: el) (throw "hello") [ ])).success; expected = false; }; @@ -740,100 +1095,311 @@ runTests { }; testTake = testAllTrue [ - ([] == (take 0 [ 1 2 3 ])) - ([1] == (take 1 [ 1 2 3 ])) - ([ 1 2 ] == (take 2 [ 1 2 3 ])) - ([ 1 2 3 ] == (take 3 [ 1 2 3 ])) - ([ 1 2 3 ] == (take 4 [ 1 2 3 ])) + ( + [ ] == (take 0 [ + 1 + 2 + 3 + ]) + ) + ( + [ 1 ] == (take 1 [ + 1 + 2 + 3 + ]) + ) + ( + [ + 1 + 2 + ] == (take 2 [ + 1 + 2 + 3 + ]) + ) + ( + [ + 1 + 2 + 3 + ] == (take 3 [ + 1 + 2 + 3 + ]) + ) + ( + [ + 1 + 2 + 3 + ] == (take 4 [ + 1 + 2 + 3 + ]) + ) ]; testListHasPrefixExample1 = { - expr = lists.hasPrefix [ 1 2 ] [ 1 2 3 4 ]; + expr = + lists.hasPrefix + [ + 1 + 2 + ] + [ + 1 + 2 + 3 + 4 + ]; expected = true; }; testListHasPrefixExample2 = { - expr = lists.hasPrefix [ 0 1 ] [ 1 2 3 4 ]; + expr = + lists.hasPrefix + [ + 0 + 1 + ] + [ + 1 + 2 + 3 + 4 + ]; expected = false; }; testListHasPrefixLazy = { - expr = lists.hasPrefix [ 1 ] [ 1 (abort "lib.lists.hasPrefix is not lazy") ]; + expr = lists.hasPrefix [ 1 ] [ + 1 + (abort "lib.lists.hasPrefix is not lazy") + ]; expected = true; }; testListHasPrefixEmptyPrefix = { - expr = lists.hasPrefix [ ] [ 1 2 ]; + expr = lists.hasPrefix [ ] [ + 1 + 2 + ]; expected = true; }; testListHasPrefixEmptyList = { - expr = lists.hasPrefix [ 1 2 ] [ ]; + expr = lists.hasPrefix [ + 1 + 2 + ] [ ]; expected = false; }; testListRemovePrefixExample1 = { - expr = lists.removePrefix [ 1 2 ] [ 1 2 3 4 ]; - expected = [ 3 4 ]; + expr = + lists.removePrefix + [ + 1 + 2 + ] + [ + 1 + 2 + 3 + 4 + ]; + expected = [ + 3 + 4 + ]; }; testListRemovePrefixExample2 = { - expr = (builtins.tryEval (lists.removePrefix [ 0 1 ] [ 1 2 3 4 ])).success; + expr = + (builtins.tryEval ( + lists.removePrefix + [ + 0 + 1 + ] + [ + 1 + 2 + 3 + 4 + ] + )).success; expected = false; }; testListRemovePrefixEmptyPrefix = { - expr = lists.removePrefix [ ] [ 1 2 ]; - expected = [ 1 2 ]; + expr = lists.removePrefix [ ] [ + 1 + 2 + ]; + expected = [ + 1 + 2 + ]; }; testListRemovePrefixEmptyList = { - expr = (builtins.tryEval (lists.removePrefix [ 1 2 ] [ ])).success; + expr = + (builtins.tryEval ( + lists.removePrefix [ + 1 + 2 + ] [ ] + )).success; expected = false; }; testFoldAttrs = { - expr = foldAttrs (n: a: [n] ++ a) [] [ - { a = 2; b = 7; } - { a = 3; c = 8; } + expr = foldAttrs (n: a: [ n ] ++ a) [ ] [ + { + a = 2; + b = 7; + } + { + a = 3; + c = 8; + } ]; - expected = { a = [ 2 3 ]; b = [7]; c = [8];}; + expected = { + a = [ + 2 + 3 + ]; + b = [ 7 ]; + c = [ 8 ]; + }; }; testListCommonPrefixExample1 = { - expr = lists.commonPrefix [ 1 2 3 4 5 6 ] [ 1 2 4 8 ]; - expected = [ 1 2 ]; + expr = + lists.commonPrefix + [ + 1 + 2 + 3 + 4 + 5 + 6 + ] + [ + 1 + 2 + 4 + 8 + ]; + expected = [ + 1 + 2 + ]; }; testListCommonPrefixExample2 = { - expr = lists.commonPrefix [ 1 2 3 ] [ 1 2 3 4 5 ]; - expected = [ 1 2 3 ]; + expr = + lists.commonPrefix + [ + 1 + 2 + 3 + ] + [ + 1 + 2 + 3 + 4 + 5 + ]; + expected = [ + 1 + 2 + 3 + ]; }; testListCommonPrefixExample3 = { - expr = lists.commonPrefix [ 1 2 3 ] [ 4 5 6 ]; + expr = + lists.commonPrefix + [ + 1 + 2 + 3 + ] + [ + 4 + 5 + 6 + ]; expected = [ ]; }; testListCommonPrefixEmpty = { - expr = lists.commonPrefix [ ] [ 1 2 3 ]; + expr = lists.commonPrefix [ ] [ + 1 + 2 + 3 + ]; expected = [ ]; }; testListCommonPrefixSame = { - expr = lists.commonPrefix [ 1 2 3 ] [ 1 2 3 ]; - expected = [ 1 2 3 ]; + expr = + lists.commonPrefix + [ + 1 + 2 + 3 + ] + [ + 1 + 2 + 3 + ]; + expected = [ + 1 + 2 + 3 + ]; }; testListCommonPrefixLazy = { - expr = lists.commonPrefix [ 1 ] [ 1 (abort "lib.lists.commonPrefix shouldn't evaluate this")]; + expr = lists.commonPrefix [ 1 ] [ + 1 + (abort "lib.lists.commonPrefix shouldn't evaluate this") + ]; expected = [ 1 ]; }; # This would stack overflow if `commonPrefix` were implemented using recursion testListCommonPrefixLong = let longList = genList (n: n) 100000; - in { + in + { expr = lists.commonPrefix longList longList; expected = longList; }; testSort = { - expr = sort builtins.lessThan [ 40 2 30 42 ]; - expected = [2 30 40 42]; + expr = sort builtins.lessThan [ + 40 + 2 + 30 + 42 + ]; + expected = [ + 2 + 30 + 40 + 42 + ]; }; testSortOn = { - expr = sortOn stringLength [ "aa" "b" "cccc" ]; - expected = [ "b" "aa" "cccc" ]; + expr = sortOn stringLength [ + "aa" + "b" + "cccc" + ]; + expected = [ + "b" + "aa" + "cccc" + ]; }; testSortOnEmpty = { @@ -842,20 +1408,36 @@ runTests { }; testSortOnIncomparable = { - expr = - map - (x: x.f x.ok) - (sortOn (x: x.ok) [ - { ok = 1; f = x: x; } - { ok = 3; f = x: x + 3; } - { ok = 2; f = x: x; } - ]); - expected = [ 1 2 6 ]; + expr = map (x: x.f x.ok) ( + sortOn (x: x.ok) [ + { + ok = 1; + f = x: x; + } + { + ok = 3; + f = x: x + 3; + } + { + ok = 2; + f = x: x; + } + ] + ); + expected = [ + 1 + 2 + 6 + ]; }; testReplicate = { expr = replicate 3 "a"; - expected = ["a" "a" "a"]; + expected = [ + "a" + "a" + "a" + ]; }; testToIntShouldConvertStringToInt = { @@ -865,21 +1447,44 @@ runTests { testToIntShouldThrowErrorIfItCouldNotConvertToInt = { expr = builtins.tryEval (toInt "\"foo\""); - expected = { success = false; value = false; }; + expected = { + success = false; + value = false; + }; }; testHasAttrByPathTrue = { - expr = hasAttrByPath ["a" "b"] { a = { b = "yey"; }; }; + expr = + hasAttrByPath + [ + "a" + "b" + ] + { + a = { + b = "yey"; + }; + }; expected = true; }; testHasAttrByPathFalse = { - expr = hasAttrByPath ["a" "b"] { a = { c = "yey"; }; }; + expr = + hasAttrByPath + [ + "a" + "b" + ] + { + a = { + c = "yey"; + }; + }; expected = false; }; testHasAttrByPathNonStrict = { - expr = hasAttrByPath [] (throw "do not use"); + expr = hasAttrByPath [ ] (throw "do not use"); expected = true; }; @@ -894,47 +1499,88 @@ runTests { }; testLongestValidPathPrefix_zero = { - expr = attrsets.longestValidPathPrefix [ "a" (throw "do not use") ] { d = null; }; + expr = attrsets.longestValidPathPrefix [ + "a" + (throw "do not use") + ] { d = null; }; expected = [ ]; }; testLongestValidPathPrefix_zero_b = { - expr = attrsets.longestValidPathPrefix [ "z" "z" ] "remarkably harmonious"; + expr = attrsets.longestValidPathPrefix [ + "z" + "z" + ] "remarkably harmonious"; expected = [ ]; }; testLongestValidPathPrefix_one = { - expr = attrsets.longestValidPathPrefix [ "a" "b" "c" ] { a = null; }; + expr = attrsets.longestValidPathPrefix [ + "a" + "b" + "c" + ] { a = null; }; expected = [ "a" ]; }; testLongestValidPathPrefix_two = { - expr = attrsets.longestValidPathPrefix [ "a" "b" "c" ] { a.b = null; }; - expected = [ "a" "b" ]; + expr = attrsets.longestValidPathPrefix [ + "a" + "b" + "c" + ] { a.b = null; }; + expected = [ + "a" + "b" + ]; }; testLongestValidPathPrefix_three = { - expr = attrsets.longestValidPathPrefix [ "a" "b" "c" ] { a.b.c = null; }; - expected = [ "a" "b" "c" ]; + expr = attrsets.longestValidPathPrefix [ + "a" + "b" + "c" + ] { a.b.c = null; }; + expected = [ + "a" + "b" + "c" + ]; }; testLongestValidPathPrefix_three_extra = { - expr = attrsets.longestValidPathPrefix [ "a" "b" "c" ] { a.b.c.d = throw "nope"; }; - expected = [ "a" "b" "c" ]; + expr = attrsets.longestValidPathPrefix [ + "a" + "b" + "c" + ] { a.b.c.d = throw "nope"; }; + expected = [ + "a" + "b" + "c" + ]; }; testFindFirstIndexExample1 = { - expr = lists.findFirstIndex (x: x > 3) (abort "index found, so a default must not be evaluated") [ 1 6 4 ]; + expr = lists.findFirstIndex (x: x > 3) (abort "index found, so a default must not be evaluated") [ + 1 + 6 + 4 + ]; expected = 1; }; testFindFirstIndexExample2 = { - expr = lists.findFirstIndex (x: x > 9) "a very specific default" [ 1 6 4 ]; + expr = lists.findFirstIndex (x: x > 9) "a very specific default" [ + 1 + 6 + 4 + ]; expected = "a very specific default"; }; testFindFirstIndexEmpty = { - expr = lists.findFirstIndex (abort "when the list is empty, the predicate is not needed") null []; + expr = lists.findFirstIndex (abort "when the list is empty, the predicate is not needed") null [ ]; expected = null; }; @@ -944,13 +1590,23 @@ runTests { }; testFindFirstIndexSingleDefault = { - expr = lists.findFirstIndex (x: false) null [ (abort "if the predicate doesn't access the value, it must not be evaluated") ]; + expr = lists.findFirstIndex (x: false) null [ + (abort "if the predicate doesn't access the value, it must not be evaluated") + ]; expected = null; }; testFindFirstIndexNone = { - expr = builtins.tryEval (lists.findFirstIndex (x: x == 2) null [ 1 (throw "the last element must be evaluated when there's no match") ]); - expected = { success = false; value = false; }; + expr = builtins.tryEval ( + lists.findFirstIndex (x: x == 2) null [ + 1 + (throw "the last element must be evaluated when there's no match") + ] + ); + expected = { + success = false; + value = false; + }; }; # Makes sure that the implementation doesn't cause a stack overflow @@ -960,41 +1616,63 @@ runTests { }; testFindFirstIndexLazy = { - expr = lists.findFirstIndex (x: x == 1) null [ 1 (abort "list elements after the match must not be evaluated") ]; + expr = lists.findFirstIndex (x: x == 1) null [ + 1 + (abort "list elements after the match must not be evaluated") + ]; expected = 0; }; testFindFirstExample1 = { - expr = lists.findFirst (x: x > 3) 7 [ 1 6 4 ]; + expr = lists.findFirst (x: x > 3) 7 [ + 1 + 6 + 4 + ]; expected = 6; }; testFindFirstExample2 = { - expr = lists.findFirst (x: x > 9) 7 [ 1 6 4 ]; + expr = lists.findFirst (x: x > 9) 7 [ + 1 + 6 + 4 + ]; expected = 7; }; testAllUnique_true = { - expr = allUnique [ 3 2 4 1 ]; + expr = allUnique [ + 3 + 2 + 4 + 1 + ]; expected = true; }; testAllUnique_false = { - expr = allUnique [ 3 2 3 4 ]; + expr = allUnique [ + 3 + 2 + 3 + 4 + ]; expected = false; }; -# ATTRSETS + # ATTRSETS testConcatMapAttrs = { - expr = concatMapAttrs - (name: value: { - ${name} = value; - ${name + value} = value; - }) - { - foo = "bar"; - foobar = "baz"; - }; + expr = + concatMapAttrs + (name: value: { + ${name} = value; + ${name + value} = value; + }) + { + foo = "bar"; + foobar = "baz"; + }; expected = { foo = "bar"; foobar = "baz"; @@ -1005,27 +1683,54 @@ runTests { # code from example testFoldlAttrs = { expr = { - example = foldlAttrs - (acc: name: value: { - sum = acc.sum + value; - names = acc.names ++ [ name ]; - }) - { sum = 0; names = [ ]; } - { - foo = 1; - bar = 10; - }; + example = + foldlAttrs + (acc: name: value: { + sum = acc.sum + value; + names = acc.names ++ [ name ]; + }) + { + sum = 0; + names = [ ]; + } + { + foo = 1; + bar = 10; + }; # should just return the initial value emptySet = foldlAttrs (throw "function not needed") 123 { }; # should just evaluate to the last value - valuesNotNeeded = foldlAttrs (acc: _name: _v: acc) 3 { z = throw "value z not needed"; a = throw "value a not needed"; }; + valuesNotNeeded = + foldlAttrs + ( + acc: _name: _v: + acc + ) + 3 + { + z = throw "value z not needed"; + a = throw "value a not needed"; + }; # the accumulator doesnt have to be an attrset it can be as trivial as being just a number or string - trivialAcc = foldlAttrs (acc: _name: v: acc * 10 + v) 1 { z = 1; a = 2; }; + trivialAcc = + foldlAttrs + ( + acc: _name: v: + acc * 10 + v + ) + 1 + { + z = 1; + a = 2; + }; }; expected = { example = { sum = 11; - names = [ "bar" "foo" ]; + names = [ + "bar" + "foo" + ]; }; emptySet = 123; valuesNotNeeded = 3; @@ -1033,129 +1738,227 @@ runTests { }; }; - testMergeAttrsListExample1 = { - expr = attrsets.mergeAttrsList [ { a = 0; b = 1; } { c = 2; d = 3; } ]; - expected = { a = 0; b = 1; c = 2; d = 3; }; + expr = attrsets.mergeAttrsList [ + { + a = 0; + b = 1; + } + { + c = 2; + d = 3; + } + ]; + expected = { + a = 0; + b = 1; + c = 2; + d = 3; + }; }; testMergeAttrsListExample2 = { - expr = attrsets.mergeAttrsList [ { a = 0; } { a = 1; } ]; - expected = { a = 1; }; + expr = attrsets.mergeAttrsList [ + { a = 0; } + { a = 1; } + ]; + expected = { + a = 1; + }; }; testMergeAttrsListExampleMany = let - list = genList (n: - listToAttrs (genList (m: - let - # Integer divide n by two to create duplicate attributes - str = "halfn${toString (n / 2)}m${toString m}"; - in - nameValuePair str str - ) 100) + list = genList ( + n: + listToAttrs ( + genList ( + m: + let + # Integer divide n by two to create duplicate attributes + str = "halfn${toString (n / 2)}m${toString m}"; + in + nameValuePair str str + ) 100 + ) ) 100; - in { + in + { expr = attrsets.mergeAttrsList list; expected = foldl' mergeAttrs { } list; }; # code from the example testRecursiveUpdateUntil = { - expr = recursiveUpdateUntil (path: l: r: path == ["foo"]) { - # first attribute set - foo.bar = 1; - foo.baz = 2; - bar = 3; - } { - #second attribute set - foo.bar = 1; - foo.quz = 2; - baz = 4; - }; + expr = + recursiveUpdateUntil + ( + path: l: r: + path == [ "foo" ] + ) + { + # first attribute set + foo.bar = 1; + foo.baz = 2; + bar = 3; + } + { + #second attribute set + foo.bar = 1; + foo.quz = 2; + baz = 4; + }; expected = { foo.bar = 1; # 'foo.*' from the second set - foo.quz = 2; # - bar = 3; # 'bar' from the first set - baz = 4; # 'baz' from the second set + foo.quz = 2; + bar = 3; # 'bar' from the first set + baz = 4; # 'baz' from the second set }; }; testMatchAttrsMatchingExact = { - expr = matchAttrs { cpu = { bits = 64; }; } { cpu = { bits = 64; }; }; + expr = + matchAttrs + { + cpu = { + bits = 64; + }; + } + { + cpu = { + bits = 64; + }; + }; expected = true; }; testMatchAttrsMismatch = { - expr = matchAttrs { cpu = { bits = 128; }; } { cpu = { bits = 64; }; }; + expr = + matchAttrs + { + cpu = { + bits = 128; + }; + } + { + cpu = { + bits = 64; + }; + }; expected = false; }; testMatchAttrsMatchingImplicit = { - expr = matchAttrs { cpu = { }; } { cpu = { bits = 64; }; }; + expr = matchAttrs { cpu = { }; } { + cpu = { + bits = 64; + }; + }; expected = true; }; testMatchAttrsMissingAttrs = { - expr = matchAttrs { cpu = {}; } { }; + expr = matchAttrs { cpu = { }; } { }; expected = false; }; testOverrideExistingEmpty = { - expr = overrideExisting {} { a = 1; }; - expected = {}; + expr = overrideExisting { } { a = 1; }; + expected = { }; }; testOverrideExistingDisjoint = { expr = overrideExisting { b = 2; } { a = 1; }; - expected = { b = 2; }; + expected = { + b = 2; + }; }; testOverrideExistingOverride = { - expr = overrideExisting { a = 3; b = 2; } { a = 1; }; - expected = { a = 1; b = 2; }; - }; - - testListAttrsReverse = let - exampleAttrs = {foo=1; bar="asdf"; baz = [1 3 3 7]; fnord=null;}; - exampleSingletonList = [{name="foo"; value=1;}]; - in { - expr = { - isReverseToListToAttrs = builtins.listToAttrs (attrsToList exampleAttrs) == exampleAttrs; - isReverseToAttrsToList = attrsToList (builtins.listToAttrs exampleSingletonList) == exampleSingletonList; - testDuplicatePruningBehaviour = attrsToList (builtins.listToAttrs [{name="a"; value=2;} {name="a"; value=1;}]); - }; + expr = overrideExisting { + a = 3; + b = 2; + } { a = 1; }; expected = { - isReverseToAttrsToList = true; - isReverseToListToAttrs = true; - testDuplicatePruningBehaviour = [{name="a"; value=2;}]; + a = 1; + b = 2; }; }; - testAttrsToListsCanDealWithFunctions = testingEval ( - attrsToList { someFunc= a: a + 1;} - ); + testListAttrsReverse = + let + exampleAttrs = { + foo = 1; + bar = "asdf"; + baz = [ + 1 + 3 + 3 + 7 + ]; + fnord = null; + }; + exampleSingletonList = [ + { + name = "foo"; + value = 1; + } + ]; + in + { + expr = { + isReverseToListToAttrs = builtins.listToAttrs (attrsToList exampleAttrs) == exampleAttrs; + isReverseToAttrsToList = + attrsToList (builtins.listToAttrs exampleSingletonList) == exampleSingletonList; + testDuplicatePruningBehaviour = attrsToList ( + builtins.listToAttrs [ + { + name = "a"; + value = 2; + } + { + name = "a"; + value = 1; + } + ] + ); + }; + expected = { + isReverseToAttrsToList = true; + isReverseToListToAttrs = true; + testDuplicatePruningBehaviour = [ + { + name = "a"; + value = 2; + } + ]; + }; + }; -# GENERATORS -# these tests assume attributes are converted to lists -# in alphabetical order + testAttrsToListsCanDealWithFunctions = testingEval (attrsToList { + someFunc = a: a + 1; + }); + + # GENERATORS + # these tests assume attributes are converted to lists + # in alphabetical order testMkKeyValueDefault = { - expr = generators.mkKeyValueDefault {} ":" "f:oo" "bar"; + expr = generators.mkKeyValueDefault { } ":" "f:oo" "bar"; expected = ''f\:oo:bar''; }; testMkValueString = { - expr = let - vals = { - int = 42; - string = ''fo"o''; - bool = true; - bool2 = false; - null = null; - # float = 42.23; # floats are strange - }; - in mapAttrs - (const (generators.mkValueStringDefault {})) - vals; + expr = + let + vals = { + int = 42; + string = ''fo"o''; + bool = true; + bool2 = false; + null = null; + # float = 42.23; # floats are strange + }; + in + mapAttrs (const (generators.mkValueStringDefault { })) vals; expected = { int = "42"; string = ''fo"o''; @@ -1167,7 +1970,7 @@ runTests { }; testToKeyValue = { - expr = generators.toKeyValue {} { + expr = generators.toKeyValue { } { key = "value"; "other=key" = "baz"; }; @@ -1178,12 +1981,15 @@ runTests { }; testToINIEmpty = { - expr = generators.toINI {} {}; + expr = generators.toINI { } { }; expected = ""; }; testToINIEmptySection = { - expr = generators.toINI {} { foo = {}; bar = {}; }; + expr = generators.toINI { } { + foo = { }; + bar = { }; + }; expected = '' [bar] @@ -1192,7 +1998,13 @@ runTests { }; testToINIDuplicateKeys = { - expr = generators.toINI { listsAsDuplicateKeys = true; } { foo.bar = true; baz.qux = [ 1 false ]; }; + expr = generators.toINI { listsAsDuplicateKeys = true; } { + foo.bar = true; + baz.qux = [ + 1 + false + ]; + }; expected = '' [baz] qux=1 @@ -1204,7 +2016,7 @@ runTests { }; testToINIDefaultEscapes = { - expr = generators.toINI {} { + expr = generators.toINI { } { "no [ and ] allowed unescaped" = { "and also no = in keys" = 42; }; @@ -1216,7 +2028,7 @@ runTests { }; testToINIDefaultFull = { - expr = generators.toINI {} { + expr = generators.toINI { } { "section 1" = { attribute1 = 5; x = "Me-se JarJar Binx"; @@ -1239,14 +2051,11 @@ runTests { }; testToINIWithGlobalSectionEmpty = { - expr = generators.toINIWithGlobalSection {} { - globalSection = { - }; - sections = { - }; + expr = generators.toINIWithGlobalSection { } { + globalSection = { }; + sections = { }; }; - expected = '' - ''; + expected = ''''; }; testToINIWithGlobalSectionGlobalEmptyIsTheSameAsToINI = @@ -1260,17 +2069,17 @@ runTests { "he\\h=he" = "this is okay"; }; }; - in { - expr = - generators.toINIWithGlobalSection {} { - globalSection = {}; - sections = sections; - }; - expected = generators.toINI {} sections; - }; + in + { + expr = generators.toINIWithGlobalSection { } { + globalSection = { }; + sections = sections; + }; + expected = generators.toINI { } sections; + }; testToINIWithGlobalSectionFull = { - expr = generators.toINIWithGlobalSection {} { + expr = generators.toINIWithGlobalSection { } { globalSection = { foo = "bar"; test = false; @@ -1314,7 +2123,8 @@ runTests { integer = 38; name = "value"; subsection.value = "test"; - };}; + }; + }; expected = '' [extra] ${"\t"}boolean = true @@ -1345,73 +2155,109 @@ runTests { # right now only invocation check testToJSONSimple = - let val = { - foobar = [ "baz" 1 2 3 ]; - }; - in { - expr = generators.toJSON {} val; + let + val = { + foobar = [ + "baz" + 1 + 2 + 3 + ]; + }; + in + { + expr = generators.toJSON { } val; # trivial implementation expected = builtins.toJSON val; - }; + }; # right now only invocation check testToYAMLSimple = - let val = { - list = [ { one = 1; } { two = 2; } ]; - all = 42; - }; - in { - expr = generators.toYAML {} val; + let + val = { + list = [ + { one = 1; } + { two = 2; } + ]; + all = 42; + }; + in + { + expr = generators.toYAML { } val; # trivial implementation expected = builtins.toJSON val; - }; + }; testToPretty = let - deriv = derivation { name = "test"; builder = "/bin/sh"; system = "aarch64-linux"; }; - in { - expr = mapAttrs (const (generators.toPretty { multiline = false; })) rec { - int = 42; - float = 0.1337; - bool = true; - emptystring = ""; - string = "fn\${o}\"r\\d"; - newlinestring = "\n"; - path = /. + "/foo"; - null_ = null; - function = x: x; - functionArgs = { arg ? 4, foo }: arg; - list = [ 3 4 function [ false ] ]; - emptylist = []; - attrs = { foo = null; "foo b/ar" = "baz"; }; - emptyattrs = {}; - drv = deriv; + deriv = derivation { + name = "test"; + builder = "/bin/sh"; + system = "aarch64-linux"; + }; + in + { + expr = mapAttrs (const (generators.toPretty { multiline = false; })) rec { + int = 42; + float = 0.1337; + bool = true; + emptystring = ""; + string = "fn\${o}\"r\\d"; + newlinestring = "\n"; + path = /. + "/foo"; + null_ = null; + function = x: x; + functionArgs = + { + arg ? 4, + foo, + }: + arg; + list = [ + 3 + 4 + function + [ false ] + ]; + emptylist = [ ]; + attrs = { + foo = null; + "foo b/ar" = "baz"; + }; + emptyattrs = { }; + drv = deriv; + }; + expected = rec { + int = "42"; + float = "0.1337"; + bool = "true"; + emptystring = ''""''; + string = ''"fn\''${o}\"r\\d"''; + newlinestring = "\"\\n\""; + path = "/foo"; + null_ = "null"; + function = ""; + functionArgs = ""; + list = "[ 3 4 ${function} [ false ] ]"; + emptylist = "[ ]"; + attrs = "{ foo = null; \"foo b/ar\" = \"baz\"; }"; + emptyattrs = "{ }"; + drv = ""; + }; }; - expected = rec { - int = "42"; - float = "0.1337"; - bool = "true"; - emptystring = ''""''; - string = ''"fn\''${o}\"r\\d"''; - newlinestring = "\"\\n\""; - path = "/foo"; - null_ = "null"; - function = ""; - functionArgs = ""; - list = "[ 3 4 ${function} [ false ] ]"; - emptylist = "[ ]"; - attrs = "{ foo = null; \"foo b/ar\" = \"baz\"; }"; - emptyattrs = "{ }"; - drv = ""; - }; - }; testToPrettyLimit = let a.b = 1; a.c = a; - in { - expr = generators.toPretty { } (generators.withRecursion { throwOnDepthLimit = false; depthLimit = 2; } a); + in + { + expr = generators.toPretty { } ( + generators.withRecursion { + throwOnDepthLimit = false; + depthLimit = 2; + } a + ); expected = "{\n b = 1;\n c = {\n b = \"\";\n c = {\n b = \"\";\n c = \"\";\n };\n };\n}"; }; @@ -1419,31 +2265,46 @@ runTests { let a.b = 1; a.c = a; - in { - expr = (builtins.tryEval - (generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))).success; + in + { + expr = + (builtins.tryEval (generators.toPretty { } (generators.withRecursion { depthLimit = 2; } a))) + .success; expected = false; }; testWithRecursionDealsWithFunctors = let functor = { - __functor = self: { a, b, }: null; + __functor = self: { a, b }: null; }; a = { value = "1234"; b = functor; c.d = functor; }; - in { - expr = generators.toPretty { } (generators.withRecursion { depthLimit = 1; throwOnDepthLimit = false; } a); + in + { + expr = generators.toPretty { } ( + generators.withRecursion { + depthLimit = 1; + throwOnDepthLimit = false; + } a + ); expected = "{\n b = ;\n c = {\n d = \"\";\n };\n value = \"\";\n}"; }; testToPrettyMultiline = { expr = mapAttrs (const (generators.toPretty { })) { - list = [ 3 4 [ false ] ]; - attrs = { foo = null; bar.foo = "baz"; }; + list = [ + 3 + 4 + [ false ] + ]; + attrs = { + foo = null; + bar.foo = "baz"; + }; newlinestring = "\n"; multilinestring = '' hello @@ -1488,9 +2349,11 @@ runTests { }; testToPrettyAllowPrettyValues = { - expr = generators.toPretty { allowPrettyValues = true; } - { __pretty = v: "«" + v + "»"; val = "foo"; }; - expected = "«foo»"; + expr = generators.toPretty { allowPrettyValues = true; } { + __pretty = v: "«" + v + "»"; + val = "foo"; + }; + expected = "«foo»"; }; testToPlist = { @@ -1505,28 +2368,42 @@ runTests { newlinestring = "\n"; path = /. + "/foo"; null_ = null; - list = [ 3 4 "test" ]; - emptylist = []; - attrs = { foo = null; "foo b/ar" = "baz"; }; - emptyattrs = {}; + list = [ + 3 + 4 + "test" + ]; + emptylist = [ ]; + attrs = { + foo = null; + "foo b/ar" = "baz"; + }; + emptyattrs = { }; }; }; }; - expected = { value = builtins.readFile ./test-to-plist-expected.plist; }; + expected = { + value = builtins.readFile ./test-to-plist-expected.plist; + }; }; testToLuaEmptyAttrSet = { - expr = generators.toLua {} {}; + expr = generators.toLua { } { }; expected = ''{}''; }; testToLuaEmptyList = { - expr = generators.toLua {} []; + expr = generators.toLua { } [ ]; expected = ''{}''; }; testToLuaListOfVariousTypes = { - expr = generators.toLua {} [ null 43 3.14159 true ]; + expr = generators.toLua { } [ + null + 43 + 3.14159 + true + ]; expected = '' { nil, @@ -1537,12 +2414,12 @@ runTests { }; testToLuaString = { - expr = generators.toLua {} ''double-quote (") and single quotes (')''; + expr = generators.toLua { } ''double-quote (") and single quotes (')''; expected = ''"double-quote (\") and single quotes (')"''; }; testToLuaAttrsetWithLuaInline = { - expr = generators.toLua {} { x = generators.mkLuaInline ''"abc" .. "def"''; }; + expr = generators.toLua { } { x = generators.mkLuaInline ''"abc" .. "def"''; }; expected = '' { ["x"] = ("abc" .. "def") @@ -1550,7 +2427,7 @@ runTests { }; testToLuaAttrsetWithSpaceInKey = { - expr = generators.toLua {} { "some space and double-quote (\")" = 42; }; + expr = generators.toLua { } { "some space and double-quote (\")" = 42; }; expected = '' { ["some space and double-quote (\")"] = 42 @@ -1558,17 +2435,25 @@ runTests { }; testToLuaWithoutMultiline = { - expr = generators.toLua { multiline = false; } [ 41 43 ]; + expr = generators.toLua { multiline = false; } [ + 41 + 43 + ]; expected = ''{ 41, 43 }''; }; testToLuaEmptyBindings = { - expr = generators.toLua { asBindings = true; } {}; + expr = generators.toLua { asBindings = true; } { }; expected = ""; }; testToLuaBindings = { - expr = generators.toLua { asBindings = true; } { x1 = 41; _y = { a = 43; }; }; + expr = generators.toLua { asBindings = true; } { + x1 = 41; + _y = { + a = 43; + }; + }; expected = '' _y = { ["a"] = 43 @@ -1585,7 +2470,17 @@ runTests { }; testToLuaIndentedBindings = { - expr = generators.toLua { asBindings = true; indent = " "; } { x = { y = 42; }; }; + expr = + generators.toLua + { + asBindings = true; + indent = " "; + } + { + x = { + y = 42; + }; + }; expected = " x = {\n [\"y\"] = 42\n }\n"; }; @@ -1598,8 +2493,11 @@ runTests { ); testToLuaBasicExample = { - expr = generators.toLua {} { - cmd = [ "typescript-language-server" "--stdio" ]; + expr = generators.toLua { } { + cmd = [ + "typescript-language-server" + "--stdio" + ]; settings.workspace.library = generators.mkLuaInline ''vim.api.nvim_get_runtime_file("", true)''; }; expected = '' @@ -1616,36 +2514,47 @@ runTests { }''; }; -# CLI + # CLI testToGNUCommandLine = { - expr = cli.toGNUCommandLine {} { + expr = cli.toGNUCommandLine { } { data = builtins.toJSON { id = 0; }; X = "PUT"; retry = 3; retry-delay = null; - url = [ "https://example.com/foo" "https://example.com/bar" ]; + url = [ + "https://example.com/foo" + "https://example.com/bar" + ]; silent = false; verbose = true; }; expected = [ - "-X" "PUT" - "--data" "{\"id\":0}" - "--retry" "3" - "--url" "https://example.com/foo" - "--url" "https://example.com/bar" + "-X" + "PUT" + "--data" + "{\"id\":0}" + "--retry" + "3" + "--url" + "https://example.com/foo" + "--url" + "https://example.com/bar" "--verbose" ]; }; testToGNUCommandLineShell = { - expr = cli.toGNUCommandLineShell {} { + expr = cli.toGNUCommandLineShell { } { data = builtins.toJSON { id = 0; }; X = "PUT"; retry = 3; retry-delay = null; - url = [ "https://example.com/foo" "https://example.com/bar" ]; + url = [ + "https://example.com/foo" + "https://example.com/bar" + ]; silent = false; verbose = true; }; @@ -1686,128 +2595,369 @@ runTests { testFreeformOptions = { expr = let - submodule = { lib, ... }: { - freeformType = lib.types.attrsOf (lib.types.submodule { - options.bar = lib.mkOption {}; - }); - options.bar = lib.mkOption {}; - }; - - module = { lib, ... }: { - options.foo = lib.mkOption { - type = lib.types.submodule submodule; + submodule = + { lib, ... }: + { + freeformType = lib.types.attrsOf (lib.types.submodule { options.bar = lib.mkOption { }; }); + options.bar = lib.mkOption { }; }; - }; - options = (evalModules { - modules = [ module ]; - }).options; + module = + { lib, ... }: + { + options.foo = lib.mkOption { type = lib.types.submodule submodule; }; + }; - locs = filter (o: ! o.internal) (optionAttrSetToDocList options); - in map (o: o.loc) locs; - expected = [ [ "_module" "args" ] [ "foo" ] [ "foo" "" "bar" ] [ "foo" "bar" ] ]; + options = (evalModules { modules = [ module ]; }).options; + + locs = filter (o: !o.internal) (optionAttrSetToDocList options); + in + map (o: o.loc) locs; + expected = [ + [ + "_module" + "args" + ] + [ "foo" ] + [ + "foo" + "" + "bar" + ] + [ + "foo" + "bar" + ] + ]; }; testCartesianProductOfEmptySet = { - expr = cartesianProduct {}; - expected = [ {} ]; + expr = cartesianProduct { }; + expected = [ { } ]; }; testCartesianProductOfOneSet = { - expr = cartesianProduct { a = [ 1 2 3 ]; }; - expected = [ { a = 1; } { a = 2; } { a = 3; } ]; + expr = cartesianProduct { + a = [ + 1 + 2 + 3 + ]; + }; + expected = [ + { a = 1; } + { a = 2; } + { a = 3; } + ]; }; testCartesianProductOfTwoSets = { - expr = cartesianProduct { a = [ 1 ]; b = [ 10 20 ]; }; + expr = cartesianProduct { + a = [ 1 ]; + b = [ + 10 + 20 + ]; + }; expected = [ - { a = 1; b = 10; } - { a = 1; b = 20; } + { + a = 1; + b = 10; + } + { + a = 1; + b = 20; + } ]; }; testCartesianProductOfTwoSetsWithOneEmpty = { - expr = cartesianProduct { a = [ ]; b = [ 10 20 ]; }; + expr = cartesianProduct { + a = [ ]; + b = [ + 10 + 20 + ]; + }; expected = [ ]; }; testCartesianProductOfThreeSets = { expr = cartesianProduct { - a = [ 1 2 3 ]; - b = [ 10 20 30 ]; - c = [ 100 200 300 ]; + a = [ + 1 + 2 + 3 + ]; + b = [ + 10 + 20 + 30 + ]; + c = [ + 100 + 200 + 300 + ]; }; expected = [ - { a = 1; b = 10; c = 100; } - { a = 1; b = 10; c = 200; } - { a = 1; b = 10; c = 300; } + { + a = 1; + b = 10; + c = 100; + } + { + a = 1; + b = 10; + c = 200; + } + { + a = 1; + b = 10; + c = 300; + } - { a = 1; b = 20; c = 100; } - { a = 1; b = 20; c = 200; } - { a = 1; b = 20; c = 300; } + { + a = 1; + b = 20; + c = 100; + } + { + a = 1; + b = 20; + c = 200; + } + { + a = 1; + b = 20; + c = 300; + } - { a = 1; b = 30; c = 100; } - { a = 1; b = 30; c = 200; } - { a = 1; b = 30; c = 300; } + { + a = 1; + b = 30; + c = 100; + } + { + a = 1; + b = 30; + c = 200; + } + { + a = 1; + b = 30; + c = 300; + } - { a = 2; b = 10; c = 100; } - { a = 2; b = 10; c = 200; } - { a = 2; b = 10; c = 300; } + { + a = 2; + b = 10; + c = 100; + } + { + a = 2; + b = 10; + c = 200; + } + { + a = 2; + b = 10; + c = 300; + } - { a = 2; b = 20; c = 100; } - { a = 2; b = 20; c = 200; } - { a = 2; b = 20; c = 300; } + { + a = 2; + b = 20; + c = 100; + } + { + a = 2; + b = 20; + c = 200; + } + { + a = 2; + b = 20; + c = 300; + } - { a = 2; b = 30; c = 100; } - { a = 2; b = 30; c = 200; } - { a = 2; b = 30; c = 300; } + { + a = 2; + b = 30; + c = 100; + } + { + a = 2; + b = 30; + c = 200; + } + { + a = 2; + b = 30; + c = 300; + } - { a = 3; b = 10; c = 100; } - { a = 3; b = 10; c = 200; } - { a = 3; b = 10; c = 300; } + { + a = 3; + b = 10; + c = 100; + } + { + a = 3; + b = 10; + c = 200; + } + { + a = 3; + b = 10; + c = 300; + } - { a = 3; b = 20; c = 100; } - { a = 3; b = 20; c = 200; } - { a = 3; b = 20; c = 300; } + { + a = 3; + b = 20; + c = 100; + } + { + a = 3; + b = 20; + c = 200; + } + { + a = 3; + b = 20; + c = 300; + } - { a = 3; b = 30; c = 100; } - { a = 3; b = 30; c = 200; } - { a = 3; b = 30; c = 300; } + { + a = 3; + b = 30; + c = 100; + } + { + a = 3; + b = 30; + c = 200; + } + { + a = 3; + b = 30; + c = 300; + } ]; }; testMapCartesianProductOfOneSet = { - expr = mapCartesianProduct ({a}: a * 2) { a = [ 1 2 3 ]; }; - expected = [ 2 4 6 ]; + expr = mapCartesianProduct ({ a }: a * 2) { + a = [ + 1 + 2 + 3 + ]; + }; + expected = [ + 2 + 4 + 6 + ]; }; testMapCartesianProductOfTwoSets = { - expr = mapCartesianProduct ({a,b}: a + b) { a = [ 1 ]; b = [ 10 20 ]; }; - expected = [ 11 21 ]; + expr = mapCartesianProduct ({ a, b }: a + b) { + a = [ 1 ]; + b = [ + 10 + 20 + ]; + }; + expected = [ + 11 + 21 + ]; }; testMapCartesianProcutOfTwoSetsWithOneEmpty = { - expr = mapCartesianProduct (x: x.a + x.b) { a = [ ]; b = [ 10 20 ]; }; + expr = mapCartesianProduct (x: x.a + x.b) { + a = [ ]; + b = [ + 10 + 20 + ]; + }; expected = [ ]; }; testMapCartesianProductOfThreeSets = { - expr = mapCartesianProduct ({a,b,c}: a + b + c) { - a = [ 1 2 3 ]; - b = [ 10 20 30 ]; - c = [ 100 200 300 ]; - }; - expected = [ 111 211 311 121 221 321 131 231 331 112 212 312 122 222 322 132 232 332 113 213 313 123 223 323 133 233 333 ]; + expr = + mapCartesianProduct + ( + { + a, + b, + c, + }: + a + b + c + ) + { + a = [ + 1 + 2 + 3 + ]; + b = [ + 10 + 20 + 30 + ]; + c = [ + 100 + 200 + 300 + ]; + }; + expected = [ + 111 + 211 + 311 + 121 + 221 + 321 + 131 + 231 + 331 + 112 + 212 + 312 + 122 + 222 + 322 + 132 + 232 + 332 + 113 + 213 + 313 + 123 + 223 + 323 + 133 + 233 + 333 + ]; }; # The example from the showAttrPath documentation testShowAttrPathExample = { - expr = showAttrPath [ "foo" "10" "bar" ]; + expr = showAttrPath [ + "foo" + "10" + "bar" + ]; expected = "foo.\"10\".bar"; }; testShowAttrPathEmpty = { - expr = showAttrPath []; + expr = showAttrPath [ ]; expected = ""; }; @@ -1825,41 +2975,91 @@ runTests { testGroupBy = { expr = groupBy (n: toString (mod n 5)) (range 0 16); expected = { - "0" = [ 0 5 10 15 ]; - "1" = [ 1 6 11 16 ]; - "2" = [ 2 7 12 ]; - "3" = [ 3 8 13 ]; - "4" = [ 4 9 14 ]; + "0" = [ + 0 + 5 + 10 + 15 + ]; + "1" = [ + 1 + 6 + 11 + 16 + ]; + "2" = [ + 2 + 7 + 12 + ]; + "3" = [ + 3 + 8 + 13 + ]; + "4" = [ + 4 + 9 + 14 + ]; }; }; testGroupBy' = { - expr = groupBy' builtins.add 0 (x: boolToString (x > 2)) [ 5 1 2 3 4 ]; - expected = { false = 3; true = 12; }; + expr = groupBy' builtins.add 0 (x: boolToString (x > 2)) [ + 5 + 1 + 2 + 3 + 4 + ]; + expected = { + false = 3; + true = 12; + }; }; # The example from the updateManyAttrsByPath documentation testUpdateManyAttrsByPathExample = { expr = updateManyAttrsByPath [ { - path = [ "a" "b" ]; + path = [ + "a" + "b" + ]; update = old: { d = old.c; }; } { - path = [ "a" "b" "c" ]; + path = [ + "a" + "b" + "c" + ]; update = old: old + 1; } { - path = [ "x" "y" ]; + path = [ + "x" + "y" + ]; update = old: "xy"; } ] { a.b.c = 0; }; - expected = { a = { b = { d = 1; }; }; x = { y = "xy"; }; }; + expected = { + a = { + b = { + d = 1; + }; + }; + x = { + y = "xy"; + }; + }; }; # If there are no updates, the value is passed through testUpdateManyAttrsByPathNone = { - expr = updateManyAttrsByPath [] "something"; + expr = updateManyAttrsByPath [ ] "something"; expected = "something"; }; @@ -1910,18 +3110,25 @@ runTests { # Deeply nested attributes can be updated without affecting others testUpdateManyAttrsByPathDeep = { - expr = updateManyAttrsByPath [ - { - path = [ "a" "b" "c" ]; - update = old: old + 1; - } - ] { - a.b.c = 0; + expr = + updateManyAttrsByPath + [ + { + path = [ + "a" + "b" + "c" + ]; + update = old: old + 1; + } + ] + { + a.b.c = 0; - a.b.z = 0; - a.y.z = 0; - x.y.z = 0; - }; + a.b.z = 0; + a.y.z = 0; + x.y.z = 0; + }; expected = { a.b.c = 1; @@ -1939,12 +3146,13 @@ runTests { update = old: old // { x = old.b; }; } { - path = [ "a" "b" ]; + path = [ + "a" + "b" + ]; update = old: old + 1; } - ] { - a.b = 0; - }; + ] { a.b = 0; }; expected = { a.b = 1; a.x = 1; @@ -2112,86 +3320,122 @@ runTests { }); # It's ok to add attribute names here when lazyDerivation is improved # in accordance with its inline comments. - expected = [ "drvPath" "meta" "name" "out" "outPath" "outputName" "outputs" "system" "type" ]; + expected = [ + "drvPath" + "meta" + "name" + "out" + "outPath" + "outputName" + "outputs" + "system" + "type" + ]; }; testLazyDerivationIsLazyInDerivationForPassthruAttr = { - expr = (lazyDerivation { - derivation = throw "not lazy enough"; - passthru.tests = "whatever is in tests"; - }).tests; + expr = + (lazyDerivation { + derivation = throw "not lazy enough"; + passthru.tests = "whatever is in tests"; + }).tests; expected = "whatever is in tests"; }; testLazyDerivationIsLazyInDerivationForPassthruAttr2 = { # passthru.tests is not a special case. It works for any attr. - expr = (lazyDerivation { - derivation = throw "not lazy enough"; - passthru.foo = "whatever is in foo"; - }).foo; + expr = + (lazyDerivation { + derivation = throw "not lazy enough"; + passthru.foo = "whatever is in foo"; + }).foo; expected = "whatever is in foo"; }; testLazyDerivationIsLazyInDerivationForMeta = { - expr = (lazyDerivation { - derivation = throw "not lazy enough"; - meta = "whatever is in meta"; - }).meta; + expr = + (lazyDerivation { + derivation = throw "not lazy enough"; + meta = "whatever is in meta"; + }).meta; expected = "whatever is in meta"; }; - testLazyDerivationReturnsDerivationAttrs = let - derivation = { - type = "derivation"; - outputs = ["out"]; - out = "test out"; - outPath = "test outPath"; - outputName = "out"; - drvPath = "test drvPath"; - name = "test name"; - system = "test system"; - meta = "test meta"; + testLazyDerivationReturnsDerivationAttrs = + let + derivation = { + type = "derivation"; + outputs = [ "out" ]; + out = "test out"; + outPath = "test outPath"; + outputName = "out"; + drvPath = "test drvPath"; + name = "test name"; + system = "test system"; + meta = "test meta"; + }; + in + { + expr = lazyDerivation { inherit derivation; }; + expected = derivation; }; - in { - expr = lazyDerivation { inherit derivation; }; - expected = derivation; - }; - testOptionalDrvAttr = let - mkDerivation = args: derivation (args // { - builder = "builder"; - system = "system"; - __ignoreNulls = true; - }); - in { - expr = (mkDerivation { - name = "foo"; - x = optionalDrvAttr true 1; - y = optionalDrvAttr false 1; - }).drvPath; - expected = (mkDerivation { - name = "foo"; - x = 1; - }).drvPath; - }; - - testLazyDerivationMultiOutputReturnsDerivationAttrs = let - derivation = { - type = "derivation"; - outputs = ["out" "dev"]; - dev = "test dev"; - out = "test out"; - outPath = "test outPath"; - outputName = "out"; - drvPath = "test drvPath"; - name = "test name"; - system = "test system"; - meta.position = "/hi:23"; + testOptionalDrvAttr = + let + mkDerivation = + args: + derivation ( + args + // { + builder = "builder"; + system = "system"; + __ignoreNulls = true; + } + ); + in + { + expr = + (mkDerivation { + name = "foo"; + x = optionalDrvAttr true 1; + y = optionalDrvAttr false 1; + }).drvPath; + expected = + (mkDerivation { + name = "foo"; + x = 1; + }).drvPath; + }; + + testLazyDerivationMultiOutputReturnsDerivationAttrs = + let + derivation = { + type = "derivation"; + outputs = [ + "out" + "dev" + ]; + dev = "test dev"; + out = "test out"; + outPath = "test outPath"; + outputName = "out"; + drvPath = "test drvPath"; + name = "test name"; + system = "test system"; + meta.position = "/hi:23"; + }; + in + { + expr = lazyDerivation { + inherit derivation; + outputs = [ + "out" + "dev" + ]; + passthru.meta.position = "/hi:23"; + }; + expected = derivation; }; - in { - expr = lazyDerivation { inherit derivation; outputs = ["out" "dev"]; passthru.meta.position = "/hi:23"; }; - expected = derivation; - }; testTypeDescriptionInt = { expr = (with types; int).description; @@ -2202,7 +3446,7 @@ runTests { expected = "positive integer, meaning >0"; }; testTypeDescriptionIntsPositiveOrEnumAuto = { - expr = (with types; either ints.positive (enum ["auto"])).description; + expr = (with types; either ints.positive (enum [ "auto" ])).description; expected = ''positive integer, meaning >0, or value "auto" (singular enum)''; }; testTypeDescriptionListOfPositive = { @@ -2230,11 +3474,26 @@ runTests { expected = "string or list of boolean"; }; testTypeDescriptionOneOfListOfStrOrBool = { - expr = (with types; oneOf [ (listOf bool) str ]).description; + expr = + ( + with types; + oneOf [ + (listOf bool) + str + ] + ).description; expected = "(list of boolean) or string"; }; testTypeDescriptionOneOfListOfStrOrBoolOrNumber = { - expr = (with types; oneOf [ (listOf bool) str number ]).description; + expr = + ( + with types; + oneOf [ + (listOf bool) + str + number + ] + ).description; expected = "(list of boolean) or string or signed integer or floating point number"; }; testTypeDescriptionEitherListOfBoolOrEitherStringOrNumber = { @@ -2258,7 +3517,7 @@ runTests { expected = "signed integer or list of (boolean or string)"; }; -# Meta + # Meta testGetExe'Output = { expr = getExe' { type = "derivation"; @@ -2278,13 +3537,9 @@ runTests { expected = "somelonghash/bin/mainProgram"; }; - testGetExe'FailureFirstArg = testingThrow ( - getExe' "not a derivation" "executable" - ); + testGetExe'FailureFirstArg = testingThrow (getExe' "not a derivation" "executable"); - testGetExe'FailureSecondArg = testingThrow ( - getExe' { type = "derivation"; } "dir/executable" - ); + testGetExe'FailureSecondArg = testingThrow (getExe' { type = "derivation"; } "dir/executable"); testPlatformMatch = { expr = meta.platformMatch { system = "x86_64-linux"; } "x86_64-linux"; @@ -2292,7 +3547,8 @@ runTests { }; testPlatformMatchAttrs = { - expr = meta.platformMatch (systems.elaborate "x86_64-linux") (systems.elaborate "x86_64-linux").parsed; + expr = meta.platformMatch (systems.elaborate "x86_64-linux") (systems.elaborate "x86_64-linux") + .parsed; expected = true; }; diff --git a/lib/tests/modules/adhoc-freeformType-survives-type-merge.nix b/lib/tests/modules/adhoc-freeformType-survives-type-merge.nix index 3cefb54..b15a9d9 100644 --- a/lib/tests/modules/adhoc-freeformType-survives-type-merge.nix +++ b/lib/tests/modules/adhoc-freeformType-survives-type-merge.nix @@ -1,5 +1,9 @@ -{ lib, ... }: { - options.dummy = lib.mkOption { type = lib.types.anything; default = {}; }; +{ lib, ... }: +{ + options.dummy = lib.mkOption { + type = lib.types.anything; + default = { }; + }; freeformType = let a = lib.types.attrsOf (lib.types.submodule { options.bar = lib.mkOption { }; }); @@ -7,8 +11,6 @@ # modifying types like this breaks type merging. # This test makes sure that type merging is not performed when only a single declaration exists. # Don't modify types in practice! - a // { - merge = loc: defs: { freeformItems = a.merge loc defs; }; - }; + a // { merge = loc: defs: { freeformItems = a.merge loc defs; }; }; config.foo.bar = "ok"; } diff --git a/lib/tests/modules/alias-with-priority-can-override.nix b/lib/tests/modules/alias-with-priority-can-override.nix index 82a4c0d..8ddff07 100644 --- a/lib/tests/modules/alias-with-priority-can-override.nix +++ b/lib/tests/modules/alias-with-priority-can-override.nix @@ -30,7 +30,7 @@ in # mkAliasOptionModule sets warnings, so this has to be defined. warnings = mkOption { internal = true; - default = []; + default = [ ]; type = types.listOf types.str; example = [ "The `foo' service is deprecated and will go away soon!" ]; description = '' @@ -46,14 +46,16 @@ in # Disable the aliased option with a high priority so it # should override the next import. - ( { config, lib, ... }: + ( + { config, lib, ... }: { enableAlias = mkForce false; } ) # Enable the normal (non-aliased) option. - ( { config, lib, ... }: + ( + { config, lib, ... }: { enable = true; } diff --git a/lib/tests/modules/alias-with-priority.nix b/lib/tests/modules/alias-with-priority.nix index c64a586..2958baa 100644 --- a/lib/tests/modules/alias-with-priority.nix +++ b/lib/tests/modules/alias-with-priority.nix @@ -30,7 +30,7 @@ in # mkAliasOptionModule sets warnings, so this has to be defined. warnings = mkOption { internal = true; - default = []; + default = [ ]; type = types.listOf types.str; example = [ "The `foo' service is deprecated and will go away soon!" ]; description = '' @@ -46,14 +46,16 @@ in # Disable the aliased option, but with a default (low) priority so it # should be able to be overridden by the next import. - ( { config, lib, ... }: + ( + { config, lib, ... }: { enableAlias = mkDefault false; } ) # Enable the normal (non-aliased) option. - ( { config, lib, ... }: + ( + { config, lib, ... }: { enable = true; } diff --git a/lib/tests/modules/attrsOf-conditional-check.nix b/lib/tests/modules/attrsOf-conditional-check.nix index 0f00ebc..3f5ffe1 100644 --- a/lib/tests/modules/attrsOf-conditional-check.nix +++ b/lib/tests/modules/attrsOf-conditional-check.nix @@ -1,7 +1,6 @@ -{ lib, config, ... }: { - options.conditionalWorks = lib.mkOption { - default = ! config.value ? foo; - }; +{ lib, config, ... }: +{ + options.conditionalWorks = lib.mkOption { default = !config.value ? foo; }; config.value.foo = lib.mkIf false "should not be defined"; } diff --git a/lib/tests/modules/attrsOf-lazy-check.nix b/lib/tests/modules/attrsOf-lazy-check.nix index ec5b418..a17a6fa 100644 --- a/lib/tests/modules/attrsOf-lazy-check.nix +++ b/lib/tests/modules/attrsOf-lazy-check.nix @@ -1,7 +1,6 @@ -{ lib, config, ... }: { - options.isLazy = lib.mkOption { - default = ! config.value ? foo; - }; +{ lib, config, ... }: +{ + options.isLazy = lib.mkOption { default = !config.value ? foo; }; config.value.bar = throw "is not lazy"; } diff --git a/lib/tests/modules/boolByOr.nix b/lib/tests/modules/boolByOr.nix index ff86e2d..cc2ca50 100644 --- a/lib/tests/modules/boolByOr.nix +++ b/lib/tests/modules/boolByOr.nix @@ -1,14 +1,24 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.lazyAttrsOf lib.types.boolByOr; - }; + options.value = lib.mkOption { type = lib.types.lazyAttrsOf lib.types.boolByOr; }; config.value = { - falseFalse = lib.mkMerge [ false false ]; - trueFalse = lib.mkMerge [ true false ]; - falseTrue = lib.mkMerge [ false true ]; - trueTrue = lib.mkMerge [ true true ]; + falseFalse = lib.mkMerge [ + false + false + ]; + trueFalse = lib.mkMerge [ + true + false + ]; + falseTrue = lib.mkMerge [ + false + true + ]; + trueTrue = lib.mkMerge [ + true + true + ]; }; } - diff --git a/lib/tests/modules/class-check.nix b/lib/tests/modules/class-check.nix index 293fd4a..9240478 100644 --- a/lib/tests/modules/class-check.nix +++ b/lib/tests/modules/class-check.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ options = { sub = { nixosOk = lib.mkOption { @@ -40,37 +41,37 @@ ]; config = { _module.freeformType = lib.types.anything; - ok = - lib.evalModules { - class = "nixos"; - modules = [ - ./module-class-is-nixos.nix - ]; - }; + ok = lib.evalModules { + class = "nixos"; + modules = [ ./module-class-is-nixos.nix ]; + }; - fail = - lib.evalModules { - class = "nixos"; - modules = [ - ./module-class-is-nixos.nix - ./module-class-is-darwin.nix - ]; - }; + fail = lib.evalModules { + class = "nixos"; + modules = [ + ./module-class-is-nixos.nix + ./module-class-is-darwin.nix + ]; + }; - fail-anon = - lib.evalModules { - class = "nixos"; - modules = [ - ./module-class-is-nixos.nix - { _file = "foo.nix#darwinModules.default"; - _class = "darwin"; - config = {}; - imports = []; - } - ]; - }; + fail-anon = lib.evalModules { + class = "nixos"; + modules = [ + ./module-class-is-nixos.nix + { + _file = "foo.nix#darwinModules.default"; + _class = "darwin"; + config = { }; + imports = [ ]; + } + ]; + }; - sub.nixosOk = { _class = "nixos"; }; - sub.nixosFail = { imports = [ ./module-class-is-darwin.nix ]; }; + sub.nixosOk = { + _class = "nixos"; + }; + sub.nixosFail = { + imports = [ ./module-class-is-darwin.nix ]; + }; }; } diff --git a/lib/tests/modules/declaration-positions.nix b/lib/tests/modules/declaration-positions.nix index cefd3b4..a25e16d 100644 --- a/lib/tests/modules/declaration-positions.nix +++ b/lib/tests/modules/declaration-positions.nix @@ -1,24 +1,22 @@ { lib, options, ... }: -let discardPositions = lib.mapAttrs (k: v: v); +let + discardPositions = lib.mapAttrs (k: v: v); in # unsafeGetAttrPos is unspecified best-effort behavior, so we only want to consider this test on an evaluator that satisfies some basic assumptions about this function. assert builtins.unsafeGetAttrPos "a" { a = true; } != null; -assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; +assert + builtins.unsafeGetAttrPos "a" (discardPositions { + a = true; + }) == null; { imports = [ { - options.imported.line10 = lib.mkOption { - type = lib.types.int; - }; + options.imported.line10 = lib.mkOption { type = lib.types.int; }; # Simulates various patterns of generating modules such as # programs.firefox.nativeMessagingHosts.ff2mpv. We don't expect to get # line numbers for these, but we can fall back on knowing the file. - options.generated = discardPositions { - line18 = lib.mkOption { - type = lib.types.int; - }; - }; + options.generated = discardPositions { line18 = lib.mkOption { type = lib.types.int; }; }; options.submoduleLine34.extraOptLine23 = lib.mkOption { default = 1; @@ -27,23 +25,25 @@ assert builtins.unsafeGetAttrPos "a" (discardPositions { a = true; }) == null; } ]; - options.nested.nestedLine30 = lib.mkOption { - type = lib.types.int; - }; + options.nested.nestedLine30 = lib.mkOption { type = lib.types.int; }; options.submoduleLine34 = lib.mkOption { default = { }; type = lib.types.submoduleWith { modules = [ - ({ options, ... }: { - options.submodDeclLine39 = lib.mkOption { }; - }) + ( + { options, ... }: + { + options.submodDeclLine39 = lib.mkOption { }; + } + ) { freeformType = with lib.types; lazyAttrsOf (uniq unspecified); } ]; }; }; config = { - submoduleLine34.submodDeclLine39 = (options.submoduleLine34.type.getSubOptions [ ]).submodDeclLine39.declarationPositions; + submoduleLine34.submodDeclLine39 = + (options.submoduleLine34.type.getSubOptions [ ]).submodDeclLine39.declarationPositions; }; } diff --git a/lib/tests/modules/declare-attrsOf.nix b/lib/tests/modules/declare-attrsOf.nix index d199640..93c866d 100644 --- a/lib/tests/modules/declare-attrsOf.nix +++ b/lib/tests/modules/declare-attrsOf.nix @@ -1,13 +1,13 @@ { lib, ... }: let - deathtrapArgs = lib.mapAttrs - (k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute.") - (lib.functionArgs lib.mkOption); + deathtrapArgs = lib.mapAttrs ( + k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute." + ) (lib.functionArgs lib.mkOption); in { options.value = lib.mkOption { type = lib.types.attrsOf lib.types.str; - default = {}; + default = { }; }; options.testing-laziness-so-don't-read-me = lib.mkOption deathtrapArgs; } diff --git a/lib/tests/modules/declare-attrsOfSub-any-enable.nix b/lib/tests/modules/declare-attrsOfSub-any-enable.nix index 986d072..fc952dd 100644 --- a/lib/tests/modules/declare-attrsOfSub-any-enable.nix +++ b/lib/tests/modules/declare-attrsOfSub-any-enable.nix @@ -1,25 +1,27 @@ { lib, ... }: let - submod = { ... }: { - options = { - enable = lib.mkOption { - default = false; - example = true; - type = lib.types.bool; - description = '' - Some descriptive text - ''; + submod = + { ... }: + { + options = { + enable = lib.mkOption { + default = false; + example = true; + type = lib.types.bool; + description = '' + Some descriptive text + ''; + }; }; }; - }; in { options = { attrsOfSub = lib.mkOption { - default = {}; - example = {}; + default = { }; + example = { }; type = lib.types.attrsOf (lib.types.submodule [ submod ]); description = '' Some descriptive text diff --git a/lib/tests/modules/declare-bare-submodule.nix b/lib/tests/modules/declare-bare-submodule.nix index 5402f4f..8ab16ba 100644 --- a/lib/tests/modules/declare-bare-submodule.nix +++ b/lib/tests/modules/declare-bare-submodule.nix @@ -8,11 +8,9 @@ in modules = [ ]; shorthandOnlyDefinesConfig = config.shorthandOnlyDefinesConfig; }; - default = {}; + default = { }; }; # config-dependent options: won't recommend, but useful for making this test parameterized - options.shorthandOnlyDefinesConfig = mkOption { - default = false; - }; + options.shorthandOnlyDefinesConfig = mkOption { default = false; }; } diff --git a/lib/tests/modules/declare-either.nix b/lib/tests/modules/declare-either.nix index 5a0fa97..bd6b2f1 100644 --- a/lib/tests/modules/declare-either.nix +++ b/lib/tests/modules/declare-either.nix @@ -1,5 +1,4 @@ -{ lib, ... }: { - options.value = lib.mkOption { - type = lib.types.either lib.types.int lib.types.str; - }; +{ lib, ... }: +{ + options.value = lib.mkOption { type = lib.types.either lib.types.int lib.types.str; }; } diff --git a/lib/tests/modules/declare-int-between-value.nix b/lib/tests/modules/declare-int-between-value.nix index 8b2624c..7d427e3 100644 --- a/lib/tests/modules/declare-int-between-value.nix +++ b/lib/tests/modules/declare-int-between-value.nix @@ -2,8 +2,6 @@ { options = { - value = lib.mkOption { - type = lib.types.ints.between (-21) 43; - }; + value = lib.mkOption { type = lib.types.ints.between (-21) 43; }; }; } diff --git a/lib/tests/modules/declare-int-positive-value-nested.nix b/lib/tests/modules/declare-int-positive-value-nested.nix index 72d2fb8..312af9d 100644 --- a/lib/tests/modules/declare-int-positive-value-nested.nix +++ b/lib/tests/modules/declare-int-positive-value-nested.nix @@ -2,8 +2,6 @@ { options.set = { - value = lib.mkOption { - type = lib.types.ints.positive; - }; + value = lib.mkOption { type = lib.types.ints.positive; }; }; } diff --git a/lib/tests/modules/declare-int-positive-value.nix b/lib/tests/modules/declare-int-positive-value.nix index 6e48c6a..2a2b58d 100644 --- a/lib/tests/modules/declare-int-positive-value.nix +++ b/lib/tests/modules/declare-int-positive-value.nix @@ -2,8 +2,6 @@ { options = { - value = lib.mkOption { - type = lib.types.ints.positive; - }; + value = lib.mkOption { type = lib.types.ints.positive; }; }; } diff --git a/lib/tests/modules/declare-int-unsigned-value.nix b/lib/tests/modules/declare-int-unsigned-value.nix index 05d0eff..a0b4257 100644 --- a/lib/tests/modules/declare-int-unsigned-value.nix +++ b/lib/tests/modules/declare-int-unsigned-value.nix @@ -2,8 +2,6 @@ { options = { - value = lib.mkOption { - type = lib.types.ints.unsigned; - }; + value = lib.mkOption { type = lib.types.ints.unsigned; }; }; } diff --git a/lib/tests/modules/declare-lazyAttrsOf.nix b/lib/tests/modules/declare-lazyAttrsOf.nix index 1d9fec2..f98b705 100644 --- a/lib/tests/modules/declare-lazyAttrsOf.nix +++ b/lib/tests/modules/declare-lazyAttrsOf.nix @@ -1,6 +1,7 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.value = lib.mkOption { type = lib.types.lazyAttrsOf (lib.types.str // { emptyValue.value = "empty"; }); - default = {}; + default = { }; }; } diff --git a/lib/tests/modules/declare-mkPackageOption.nix b/lib/tests/modules/declare-mkPackageOption.nix index e13e684..8009174 100644 --- a/lib/tests/modules/declare-mkPackageOption.nix +++ b/lib/tests/modules/declare-mkPackageOption.nix @@ -1,19 +1,17 @@ -{ lib, ... }: let +{ lib, ... }: +let pkgs.hello = { type = "derivation"; pname = "hello"; }; -in { +in +{ options = { package = lib.mkPackageOption pkgs "hello" { }; - namedPackage = lib.mkPackageOption pkgs "Hello" { - default = [ "hello" ]; - }; + namedPackage = lib.mkPackageOption pkgs "Hello" { default = [ "hello" ]; }; - namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" { - default = "hello"; - }; + namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" { default = "hello"; }; pathPackage = lib.mkPackageOption pkgs [ "hello" ] { }; @@ -21,33 +19,31 @@ in { example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }"; }; - packageWithPathExample = lib.mkPackageOption pkgs "hello" { - example = [ "hello" ]; - }; + packageWithPathExample = lib.mkPackageOption pkgs "hello" { example = [ "hello" ]; }; packageWithExtraDescription = lib.mkPackageOption pkgs "hello" { extraDescription = "Example extra description."; }; - undefinedPackage = lib.mkPackageOption pkgs "hello" { - default = null; - }; + undefinedPackage = lib.mkPackageOption pkgs "hello" { default = null; }; nullablePackage = lib.mkPackageOption pkgs "hello" { nullable = true; default = null; }; - nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" { - nullable = true; - }; + nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" { nullable = true; }; - packageWithPkgsText = lib.mkPackageOption pkgs "hello" { - pkgsText = "myPkgs"; - }; + packageWithPkgsText = lib.mkPackageOption pkgs "hello" { pkgsText = "myPkgs"; }; - packageFromOtherSet = let myPkgs = { - hello = pkgs.hello // { pname = "hello-other"; }; - }; in lib.mkPackageOption myPkgs "hello" { }; + packageFromOtherSet = + let + myPkgs = { + hello = pkgs.hello // { + pname = "hello-other"; + }; + }; + in + lib.mkPackageOption myPkgs "hello" { }; }; } diff --git a/lib/tests/modules/declare-oneOf.nix b/lib/tests/modules/declare-oneOf.nix index df092a1..3d25f45 100644 --- a/lib/tests/modules/declare-oneOf.nix +++ b/lib/tests/modules/declare-oneOf.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.value = lib.mkOption { type = lib.types.oneOf [ lib.types.int diff --git a/lib/tests/modules/declare-set.nix b/lib/tests/modules/declare-set.nix index 8534185..884e6f3 100644 --- a/lib/tests/modules/declare-set.nix +++ b/lib/tests/modules/declare-set.nix @@ -3,7 +3,9 @@ { options.set = lib.mkOption { default = { }; - example = { a = 1; }; + example = { + a = 1; + }; type = lib.types.attrsOf lib.types.int; description = '' Some descriptive text diff --git a/lib/tests/modules/declare-submodule-via-evalModules.nix b/lib/tests/modules/declare-submodule-via-evalModules.nix index 2841c64..ae47bde 100644 --- a/lib/tests/modules/declare-submodule-via-evalModules.nix +++ b/lib/tests/modules/declare-submodule-via-evalModules.nix @@ -1,25 +1,32 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.submodule = lib.mkOption { - inherit (lib.evalModules { - modules = [ - { - options.inner = lib.mkOption { - type = lib.types.bool; - default = false; - }; - } - ]; - }) type; - default = {}; + inherit + (lib.evalModules { + modules = [ + { + options.inner = lib.mkOption { + type = lib.types.bool; + default = false; + }; + } + ]; + }) + type + ; + default = { }; }; config.submodule = lib.mkMerge [ - ({ lib, ... }: { - options.outer = lib.mkOption { - type = lib.types.bool; - default = false; - }; - }) + ( + { lib, ... }: + { + options.outer = lib.mkOption { + type = lib.types.bool; + default = false; + }; + } + ) { inner = true; outer = true; diff --git a/lib/tests/modules/declare-submoduleWith-modules.nix b/lib/tests/modules/declare-submoduleWith-modules.nix index a8b82d1..a52cb27 100644 --- a/lib/tests/modules/declare-submoduleWith-modules.nix +++ b/lib/tests/modules/declare-submoduleWith-modules.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.submodule = lib.mkOption { type = lib.types.submoduleWith { modules = [ @@ -10,16 +11,19 @@ } ]; }; - default = {}; + default = { }; }; config.submodule = lib.mkMerge [ - ({ lib, ... }: { - options.outer = lib.mkOption { - type = lib.types.bool; - default = false; - }; - }) + ( + { lib, ... }: + { + options.outer = lib.mkOption { + type = lib.types.bool; + default = false; + }; + } + ) { inner = true; outer = true; diff --git a/lib/tests/modules/declare-submoduleWith-noshorthand.nix b/lib/tests/modules/declare-submoduleWith-noshorthand.nix index af3b4ba..92abd24 100644 --- a/lib/tests/modules/declare-submoduleWith-noshorthand.nix +++ b/lib/tests/modules/declare-submoduleWith-noshorthand.nix @@ -1,13 +1,13 @@ -{ lib, ... }: let +{ lib, ... }: +let sub.options.config = lib.mkOption { type = lib.types.bool; default = false; }; -in { +in +{ options.submodule = lib.mkOption { - type = lib.types.submoduleWith { - modules = [ sub ]; - }; - default = {}; + type = lib.types.submoduleWith { modules = [ sub ]; }; + default = { }; }; } diff --git a/lib/tests/modules/declare-submoduleWith-path.nix b/lib/tests/modules/declare-submoduleWith-path.nix index 477647f..e7bfe55 100644 --- a/lib/tests/modules/declare-submoduleWith-path.nix +++ b/lib/tests/modules/declare-submoduleWith-path.nix @@ -1,11 +1,8 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.submodule = lib.mkOption { - type = lib.types.submoduleWith { - modules = [ - ./declare-enable.nix - ]; - }; - default = {}; + type = lib.types.submoduleWith { modules = [ ./declare-enable.nix ]; }; + default = { }; }; config.submodule = ./define-enable.nix; diff --git a/lib/tests/modules/declare-submoduleWith-shorthand.nix b/lib/tests/modules/declare-submoduleWith-shorthand.nix index 63ac162..8d9d919 100644 --- a/lib/tests/modules/declare-submoduleWith-shorthand.nix +++ b/lib/tests/modules/declare-submoduleWith-shorthand.nix @@ -1,14 +1,16 @@ -{ lib, ... }: let +{ lib, ... }: +let sub.options.config = lib.mkOption { type = lib.types.bool; default = false; }; -in { +in +{ options.submodule = lib.mkOption { type = lib.types.submoduleWith { modules = [ sub ]; shorthandOnlyDefinesConfig = true; }; - default = {}; + default = { }; }; } diff --git a/lib/tests/modules/declare-submoduleWith-special.nix b/lib/tests/modules/declare-submoduleWith-special.nix index 6b15c5b..b2c72be 100644 --- a/lib/tests/modules/declare-submoduleWith-special.nix +++ b/lib/tests/modules/declare-submoduleWith-special.nix @@ -1,17 +1,19 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.submodule = lib.mkOption { type = lib.types.submoduleWith { modules = [ - ({ lib, ... }: { - options.foo = lib.mkOption { - default = lib.foo; - }; - }) + ( + { lib, ... }: + { + options.foo = lib.mkOption { default = lib.foo; }; + } + ) ]; specialArgs.lib = lib // { foo = "foo"; }; }; - default = {}; + default = { }; }; } diff --git a/lib/tests/modules/declare-variants.nix b/lib/tests/modules/declare-variants.nix index 3ed6fa6..60271fa 100644 --- a/lib/tests/modules/declare-variants.nix +++ b/lib/tests/modules/declare-variants.nix @@ -1,9 +1,10 @@ { lib, moduleType, ... }: -let inherit (lib) mkOption types; +let + inherit (lib) mkOption types; in { options.variants = mkOption { type = types.lazyAttrsOf moduleType; - default = {}; + default = { }; }; } diff --git a/lib/tests/modules/default.nix b/lib/tests/modules/default.nix index 5b09471..f70c719 100644 --- a/lib/tests/modules/default.nix +++ b/lib/tests/modules/default.nix @@ -1,8 +1,15 @@ -{ lib ? import ../.., modules ? [] }: +{ + lib ? import ../.., + modules ? [ ], +}: { - inherit (lib.evalModules { - inherit modules; - specialArgs.modulesPath = ./.; - }) config options; + inherit + (lib.evalModules { + inherit modules; + specialArgs.modulesPath = ./.; + }) + config + options + ; } diff --git a/lib/tests/modules/deferred-module-error.nix b/lib/tests/modules/deferred-module-error.nix index d48ae09..fded00a 100644 --- a/lib/tests/modules/deferred-module-error.nix +++ b/lib/tests/modules/deferred-module-error.nix @@ -1,19 +1,28 @@ { config, lib, ... }: let - inherit (lib) types mkOption setDefaultModuleLocation evalModules; - inherit (types) deferredModule lazyAttrsOf submodule str raw enum; + inherit (lib) + types + mkOption + setDefaultModuleLocation + evalModules + ; + inherit (types) + deferredModule + lazyAttrsOf + submodule + str + raw + enum + ; in { options = { - deferred = mkOption { - type = deferredModule; - }; - result = mkOption { - default = (evalModules { modules = [ config.deferred ]; }).config.result; - }; + deferred = mkOption { type = deferredModule; }; + result = mkOption { default = (evalModules { modules = [ config.deferred ]; }).config.result; }; }; config = { - deferred = { ... }: + deferred = + { ... }: # this should be an attrset, so this fails true; }; diff --git a/lib/tests/modules/deferred-module.nix b/lib/tests/modules/deferred-module.nix index d03c60b..0b280b8 100644 --- a/lib/tests/modules/deferred-module.nix +++ b/lib/tests/modules/deferred-module.nix @@ -1,7 +1,14 @@ { lib, ... }: let inherit (lib) types mkOption setDefaultModuleLocation; - inherit (types) deferredModule lazyAttrsOf submodule str raw enum; + inherit (types) + deferredModule + lazyAttrsOf + submodule + str + raw + enum + ; in { imports = [ @@ -9,27 +16,37 @@ in # - nodes. # - default # where all nodes include the default - ({ config, ... }: { - _file = "generic.nix"; - options.nodes = mkOption { - type = lazyAttrsOf (submodule { imports = [ config.default ]; }); - default = {}; - }; - options.default = mkOption { - type = deferredModule; - default = { }; - description = '' - Module that is included in all nodes. - ''; - }; - }) + ( + { config, ... }: + { + _file = "generic.nix"; + options.nodes = mkOption { + type = lazyAttrsOf (submodule { + imports = [ config.default ]; + }); + default = { }; + }; + options.default = mkOption { + type = deferredModule; + default = { }; + description = '' + Module that is included in all nodes. + ''; + }; + } + ) { _file = "default-1.nix"; - default = { config, ... }: { - options.settingsDict = lib.mkOption { type = lazyAttrsOf str; default = {}; }; - options.bottom = lib.mkOption { type = enum []; }; - }; + default = + { config, ... }: + { + options.settingsDict = lib.mkOption { + type = lazyAttrsOf str; + default = { }; + }; + options.bottom = lib.mkOption { type = enum [ ]; }; + }; } { @@ -49,9 +66,11 @@ in { _file = "nodes-foo-c-is-a.nix"; - nodes.foo = { config, ... }: { - settingsDict.c = config.settingsDict.a; - }; + nodes.foo = + { config, ... }: + { + settingsDict.c = config.settingsDict.a; + }; } ]; diff --git a/lib/tests/modules/define-attrsOfSub-bar-enable.nix b/lib/tests/modules/define-attrsOfSub-bar-enable.nix index 99c55d8..871db7a 100644 --- a/lib/tests/modules/define-attrsOfSub-bar-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-bar-enable.nix @@ -1,3 +1 @@ -{ - attrsOfSub.bar.enable = true; -} +{ attrsOfSub.bar.enable = true; } diff --git a/lib/tests/modules/define-attrsOfSub-bar.nix b/lib/tests/modules/define-attrsOfSub-bar.nix index 2a33068..bb3bee5 100644 --- a/lib/tests/modules/define-attrsOfSub-bar.nix +++ b/lib/tests/modules/define-attrsOfSub-bar.nix @@ -1,3 +1 @@ -{ - attrsOfSub.bar = {}; -} +{ attrsOfSub.bar = { }; } diff --git a/lib/tests/modules/define-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-attrsOfSub-foo-enable.nix index 39cd63c..16771f6 100644 --- a/lib/tests/modules/define-attrsOfSub-foo-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-foo-enable.nix @@ -1,3 +1 @@ -{ - attrsOfSub.foo.enable = true; -} +{ attrsOfSub.foo.enable = true; } diff --git a/lib/tests/modules/define-attrsOfSub-foo-force-enable.nix b/lib/tests/modules/define-attrsOfSub-foo-force-enable.nix index 009da7c..1727d06 100644 --- a/lib/tests/modules/define-attrsOfSub-foo-force-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-foo-force-enable.nix @@ -1,7 +1,5 @@ { lib, ... }: { - attrsOfSub.foo = lib.mkForce { - enable = false; - }; + attrsOfSub.foo = lib.mkForce { enable = false; }; } diff --git a/lib/tests/modules/define-attrsOfSub-foo-if-enable.nix b/lib/tests/modules/define-attrsOfSub-foo-if-enable.nix index 93702df..3e67b8e 100644 --- a/lib/tests/modules/define-attrsOfSub-foo-if-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-foo-if-enable.nix @@ -1,7 +1,5 @@ { config, lib, ... }: { - attrsOfSub.foo = lib.mkIf config.enable { - enable = true; - }; + attrsOfSub.foo = lib.mkIf config.enable { enable = true; }; } diff --git a/lib/tests/modules/define-attrsOfSub-foo.nix b/lib/tests/modules/define-attrsOfSub-foo.nix index e6bb531..0fd0c28 100644 --- a/lib/tests/modules/define-attrsOfSub-foo.nix +++ b/lib/tests/modules/define-attrsOfSub-foo.nix @@ -1,3 +1 @@ -{ - attrsOfSub.foo = {}; -} +{ attrsOfSub.foo = { }; } diff --git a/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix b/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix index 5c02dd3..a5e4a0d 100644 --- a/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-force-foo-enable.nix @@ -1,7 +1,5 @@ { lib, ... }: { - attrsOfSub = lib.mkForce { - foo.enable = false; - }; + attrsOfSub = lib.mkForce { foo.enable = false; }; } diff --git a/lib/tests/modules/define-attrsOfSub-if-foo-enable.nix b/lib/tests/modules/define-attrsOfSub-if-foo-enable.nix index a3fe605..bdbd28c 100644 --- a/lib/tests/modules/define-attrsOfSub-if-foo-enable.nix +++ b/lib/tests/modules/define-attrsOfSub-if-foo-enable.nix @@ -1,7 +1,5 @@ { config, lib, ... }: { - attrsOfSub = lib.mkIf config.enable { - foo.enable = true; - }; + attrsOfSub = lib.mkIf config.enable { foo.enable = true; }; } diff --git a/lib/tests/modules/define-enable-abort.nix b/lib/tests/modules/define-enable-abort.nix index 85b58a5..835d393 100644 --- a/lib/tests/modules/define-enable-abort.nix +++ b/lib/tests/modules/define-enable-abort.nix @@ -1,3 +1 @@ -{ - config.enable = abort "oops"; -} +{ config.enable = abort "oops"; } diff --git a/lib/tests/modules/define-enable-throw.nix b/lib/tests/modules/define-enable-throw.nix index 16a59b7..baca295 100644 --- a/lib/tests/modules/define-enable-throw.nix +++ b/lib/tests/modules/define-enable-throw.nix @@ -1,3 +1 @@ -{ - config.enable = throw "oops"; -} +{ config.enable = throw "oops"; } diff --git a/lib/tests/modules/define-enable.nix b/lib/tests/modules/define-enable.nix index 7dc2601..ef68214 100644 --- a/lib/tests/modules/define-enable.nix +++ b/lib/tests/modules/define-enable.nix @@ -1,3 +1 @@ -{ - enable = true; -} +{ enable = true; } diff --git a/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix index dafb236..8730509 100644 --- a/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix +++ b/lib/tests/modules/define-force-attrsOfSub-foo-enable.nix @@ -1,5 +1,3 @@ { lib, ... }: -lib.mkForce { - attrsOfSub.foo.enable = false; -} +lib.mkForce { attrsOfSub.foo.enable = false; } diff --git a/lib/tests/modules/define-force-enable.nix b/lib/tests/modules/define-force-enable.nix index 978caa2..7319c23 100644 --- a/lib/tests/modules/define-force-enable.nix +++ b/lib/tests/modules/define-force-enable.nix @@ -1,5 +1,3 @@ { lib, ... }: -lib.mkForce { - enable = false; -} +lib.mkForce { enable = false; } diff --git a/lib/tests/modules/define-freeform-keywords-shorthand.nix b/lib/tests/modules/define-freeform-keywords-shorthand.nix index 8de1ec6..3481cb5 100644 --- a/lib/tests/modules/define-freeform-keywords-shorthand.nix +++ b/lib/tests/modules/define-freeform-keywords-shorthand.nix @@ -1,15 +1,24 @@ -{ config, ... }: { - class = { "just" = "data"; }; +{ config, ... }: +{ + class = { + "just" = "data"; + }; a = "one"; b = "two"; meta = "meta"; _module.args.result = - let r = builtins.removeAttrs config [ "_module" ]; - in builtins.trace (builtins.deepSeq r r) (r == { - a = "one"; - b = "two"; - class = { "just" = "data"; }; - meta = "meta"; - }); + let + r = builtins.removeAttrs config [ "_module" ]; + in + builtins.trace (builtins.deepSeq r r) ( + r == { + a = "one"; + b = "two"; + class = { + "just" = "data"; + }; + meta = "meta"; + } + ); } diff --git a/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix b/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix index 6a8e32e..c0456a0 100644 --- a/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix +++ b/lib/tests/modules/define-if-attrsOfSub-foo-enable.nix @@ -1,5 +1,3 @@ { config, lib, ... }: -lib.mkIf config.enable { - attrsOfSub.foo.enable = true; -} +lib.mkIf config.enable { attrsOfSub.foo.enable = true; } diff --git a/lib/tests/modules/define-module-check.nix b/lib/tests/modules/define-module-check.nix index 5a0707c..17dbf33 100644 --- a/lib/tests/modules/define-module-check.nix +++ b/lib/tests/modules/define-module-check.nix @@ -1,3 +1 @@ -{ - _module.check = false; -} +{ _module.check = false; } diff --git a/lib/tests/modules/define-option-dependently-nested.nix b/lib/tests/modules/define-option-dependently-nested.nix index 69ee425..3d690be 100644 --- a/lib/tests/modules/define-option-dependently-nested.nix +++ b/lib/tests/modules/define-option-dependently-nested.nix @@ -5,12 +5,11 @@ { # Always defined, but the value depends on the presence of an option. - config.set = { - value = if options ? set.enable then 360 else 7; - } - # Only define if possible. - // lib.optionalAttrs (options ? set.enable) { - enable = true; - }; + config.set = + { + value = if options ? set.enable then 360 else 7; + } + # Only define if possible. + // lib.optionalAttrs (options ? set.enable) { enable = true; }; } diff --git a/lib/tests/modules/define-option-dependently.nix b/lib/tests/modules/define-option-dependently.nix index ad85f99..91a6b5e 100644 --- a/lib/tests/modules/define-option-dependently.nix +++ b/lib/tests/modules/define-option-dependently.nix @@ -5,12 +5,11 @@ { # Always defined, but the value depends on the presence of an option. - config = { - value = if options ? enable then 360 else 7; - } - # Only define if possible. - // lib.optionalAttrs (options ? enable) { - enable = true; - }; + config = + { + value = if options ? enable then 360 else 7; + } + # Only define if possible. + // lib.optionalAttrs (options ? enable) { enable = true; }; } diff --git a/lib/tests/modules/define-settingsDict-a-is-b.nix b/lib/tests/modules/define-settingsDict-a-is-b.nix index 42363f4..569891f 100644 --- a/lib/tests/modules/define-settingsDict-a-is-b.nix +++ b/lib/tests/modules/define-settingsDict-a-is-b.nix @@ -1,3 +1,4 @@ -{ config, ... }: { +{ config, ... }: +{ settingsDict.a = config.settingsDict.b; } diff --git a/lib/tests/modules/define-submoduleWith-noshorthand.nix b/lib/tests/modules/define-submoduleWith-noshorthand.nix index 35e1607..becc2b1 100644 --- a/lib/tests/modules/define-submoduleWith-noshorthand.nix +++ b/lib/tests/modules/define-submoduleWith-noshorthand.nix @@ -1,3 +1 @@ -{ - submodule.config.config = true; -} +{ submodule.config.config = true; } diff --git a/lib/tests/modules/define-submoduleWith-shorthand.nix b/lib/tests/modules/define-submoduleWith-shorthand.nix index 17df248..4676c4e 100644 --- a/lib/tests/modules/define-submoduleWith-shorthand.nix +++ b/lib/tests/modules/define-submoduleWith-shorthand.nix @@ -1,3 +1 @@ -{ - submodule.config = true; -} +{ submodule.config = true; } diff --git a/lib/tests/modules/define-value-int-negative.nix b/lib/tests/modules/define-value-int-negative.nix index a041222..4075934 100644 --- a/lib/tests/modules/define-value-int-negative.nix +++ b/lib/tests/modules/define-value-int-negative.nix @@ -1,3 +1 @@ -{ - value = -23; -} +{ value = -23; } diff --git a/lib/tests/modules/define-value-int-positive.nix b/lib/tests/modules/define-value-int-positive.nix index 5803de1..2574d59 100644 --- a/lib/tests/modules/define-value-int-positive.nix +++ b/lib/tests/modules/define-value-int-positive.nix @@ -1,3 +1 @@ -{ - value = 42; -} +{ value = 42; } diff --git a/lib/tests/modules/define-value-int-zero.nix b/lib/tests/modules/define-value-int-zero.nix index 68bb9f4..ff01c22 100644 --- a/lib/tests/modules/define-value-int-zero.nix +++ b/lib/tests/modules/define-value-int-zero.nix @@ -1,3 +1 @@ -{ - value = 0; -} +{ value = 0; } diff --git a/lib/tests/modules/define-value-list.nix b/lib/tests/modules/define-value-list.nix index 4831c1c..549fdcd 100644 --- a/lib/tests/modules/define-value-list.nix +++ b/lib/tests/modules/define-value-list.nix @@ -1,3 +1 @@ -{ - value = []; -} +{ value = [ ]; } diff --git a/lib/tests/modules/define-value-string-arbitrary.nix b/lib/tests/modules/define-value-string-arbitrary.nix index 8e3abaf..a9f22b2 100644 --- a/lib/tests/modules/define-value-string-arbitrary.nix +++ b/lib/tests/modules/define-value-string-arbitrary.nix @@ -1,3 +1 @@ -{ - value = "foobar"; -} +{ value = "foobar"; } diff --git a/lib/tests/modules/define-value-string-bigint.nix b/lib/tests/modules/define-value-string-bigint.nix index f27e319..14aec7d 100644 --- a/lib/tests/modules/define-value-string-bigint.nix +++ b/lib/tests/modules/define-value-string-bigint.nix @@ -1,3 +1 @@ -{ - value = "1000"; -} +{ value = "1000"; } diff --git a/lib/tests/modules/define-value-string-properties.nix b/lib/tests/modules/define-value-string-properties.nix index 972304c..fac4f87 100644 --- a/lib/tests/modules/define-value-string-properties.nix +++ b/lib/tests/modules/define-value-string-properties.nix @@ -1,8 +1,7 @@ -{ lib, ... }: { +{ lib, ... }: +{ - imports = [{ - value = lib.mkDefault "def"; - }]; + imports = [ { value = lib.mkDefault "def"; } ]; value = lib.mkMerge [ (lib.mkIf false "nope") diff --git a/lib/tests/modules/define-value-string.nix b/lib/tests/modules/define-value-string.nix index e7a1669..ebba99d 100644 --- a/lib/tests/modules/define-value-string.nix +++ b/lib/tests/modules/define-value-string.nix @@ -1,3 +1 @@ -{ - value = "24"; -} +{ value = "24"; } diff --git a/lib/tests/modules/define-variant.nix b/lib/tests/modules/define-variant.nix index 423cb0e..d3c28b3 100644 --- a/lib/tests/modules/define-variant.nix +++ b/lib/tests/modules/define-variant.nix @@ -1,5 +1,6 @@ { config, lib, ... }: -let inherit (lib) types mkOption attrNames; +let + inherit (lib) types mkOption attrNames; in { options = { @@ -16,7 +17,11 @@ in variants.foo.variants.bar.attrs.z = 1; variants.foo.variants.foo.attrs.c = 3; resultFoo = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.attrs); - resultFooBar = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.variants.bar.attrs); - resultFooFoo = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.variants.foo.attrs); + resultFooBar = lib.concatMapStringsSep " " toString ( + attrNames config.variants.foo.variants.bar.attrs + ); + resultFooFoo = lib.concatMapStringsSep " " toString ( + attrNames config.variants.foo.variants.foo.attrs + ); }; } diff --git a/lib/tests/modules/disable-enable-modules.nix b/lib/tests/modules/disable-enable-modules.nix index c325f4e..aef9ee2 100644 --- a/lib/tests/modules/disable-enable-modules.nix +++ b/lib/tests/modules/disable-enable-modules.nix @@ -1,5 +1,8 @@ { lib, ... }: { - disabledModules = [ "define-enable.nix" "declare-enable.nix" ]; + disabledModules = [ + "define-enable.nix" + "declare-enable.nix" + ]; } diff --git a/lib/tests/modules/disable-module-bad-key.nix b/lib/tests/modules/disable-module-bad-key.nix index f50d06f..7f918b4 100644 --- a/lib/tests/modules/disable-module-bad-key.nix +++ b/lib/tests/modules/disable-module-bad-key.nix @@ -2,15 +2,15 @@ let inherit (lib) mkOption types; - moduleWithKey = { config, ... }: { - config = { - enable = true; + moduleWithKey = + { config, ... }: + { + config = { + enable = true; + }; }; - }; in { - imports = [ - ./declare-enable.nix - ]; + imports = [ ./declare-enable.nix ]; disabledModules = [ { } ]; } diff --git a/lib/tests/modules/disable-module-with-key.nix b/lib/tests/modules/disable-module-with-key.nix index ea2a60a..196744a 100644 --- a/lib/tests/modules/disable-module-with-key.nix +++ b/lib/tests/modules/disable-module-with-key.nix @@ -18,7 +18,7 @@ in moduleWithKey ]; }; - default = {}; + default = { }; }; negative = mkOption { type = types.submodule { @@ -28,7 +28,7 @@ in ]; disabledModules = [ moduleWithKey ]; }; - default = {}; + default = { }; }; }; } diff --git a/lib/tests/modules/disable-module-with-toString-key.nix b/lib/tests/modules/disable-module-with-toString-key.nix index 3f8c819..1198eb4 100644 --- a/lib/tests/modules/disable-module-with-toString-key.nix +++ b/lib/tests/modules/disable-module-with-toString-key.nix @@ -18,7 +18,7 @@ in moduleWithKey ]; }; - default = {}; + default = { }; }; negative = mkOption { type = types.submodule { @@ -28,7 +28,7 @@ in ]; disabledModules = [ 123 ]; }; - default = {}; + default = { }; }; }; } diff --git a/lib/tests/modules/disable-recursive/bar.nix b/lib/tests/modules/disable-recursive/bar.nix index 4d9240a..22c64ab 100644 --- a/lib/tests/modules/disable-recursive/bar.nix +++ b/lib/tests/modules/disable-recursive/bar.nix @@ -1,5 +1 @@ -{ - imports = [ - ../declare-enable.nix - ]; -} +{ imports = [ ../declare-enable.nix ]; } diff --git a/lib/tests/modules/disable-recursive/disable-bar.nix b/lib/tests/modules/disable-recursive/disable-bar.nix index 987b280..98b8fdc 100644 --- a/lib/tests/modules/disable-recursive/disable-bar.nix +++ b/lib/tests/modules/disable-recursive/disable-bar.nix @@ -1,7 +1,5 @@ { - disabledModules = [ - ./bar.nix - ]; + disabledModules = [ ./bar.nix ]; } diff --git a/lib/tests/modules/disable-recursive/disable-foo.nix b/lib/tests/modules/disable-recursive/disable-foo.nix index 5b68a3c..77efd00 100644 --- a/lib/tests/modules/disable-recursive/disable-foo.nix +++ b/lib/tests/modules/disable-recursive/disable-foo.nix @@ -1,7 +1,5 @@ { - disabledModules = [ - ./foo.nix - ]; + disabledModules = [ ./foo.nix ]; } diff --git a/lib/tests/modules/disable-recursive/foo.nix b/lib/tests/modules/disable-recursive/foo.nix index 4d9240a..22c64ab 100644 --- a/lib/tests/modules/disable-recursive/foo.nix +++ b/lib/tests/modules/disable-recursive/foo.nix @@ -1,5 +1 @@ -{ - imports = [ - ../declare-enable.nix - ]; -} +{ imports = [ ../declare-enable.nix ]; } diff --git a/lib/tests/modules/doRename-basic.nix b/lib/tests/modules/doRename-basic.nix index 9d79fa4..9de48aa 100644 --- a/lib/tests/modules/doRename-basic.nix +++ b/lib/tests/modules/doRename-basic.nix @@ -1,9 +1,23 @@ -{ lib, ... }: { +{ lib, ... }: +{ imports = [ - (lib.doRename { from = ["a" "b"]; to = ["c" "d" "e"]; warn = true; use = x: x; visible = true; }) + (lib.doRename { + from = [ + "a" + "b" + ]; + to = [ + "c" + "d" + "e" + ]; + warn = true; + use = x: x; + visible = true; + }) ]; options = { - c.d.e = lib.mkOption {}; + c.d.e = lib.mkOption { }; }; config = { a.b = 1234; diff --git a/lib/tests/modules/doRename-condition-enable.nix b/lib/tests/modules/doRename-condition-enable.nix index e6eabfa..7b3b7ff 100644 --- a/lib/tests/modules/doRename-condition-enable.nix +++ b/lib/tests/modules/doRename-condition-enable.nix @@ -4,7 +4,12 @@ services.foo.enable = true; services.foo.bar = "baz"; result = - assert config.services.foos == { "" = { bar = "baz"; }; }; + assert + config.services.foos == { + "" = { + bar = "baz"; + }; + }; true; }; } diff --git a/lib/tests/modules/doRename-condition-migrated.nix b/lib/tests/modules/doRename-condition-migrated.nix index 8d21610..2129aad 100644 --- a/lib/tests/modules/doRename-condition-migrated.nix +++ b/lib/tests/modules/doRename-condition-migrated.nix @@ -3,7 +3,12 @@ config = { services.foos."".bar = "baz"; result = - assert config.services.foos == { "" = { bar = "baz"; }; }; + assert + config.services.foos == { + "" = { + bar = "baz"; + }; + }; assert config.services.foo.bar == "baz"; true; }; diff --git a/lib/tests/modules/doRename-condition-no-enable.nix b/lib/tests/modules/doRename-condition-no-enable.nix index 66ec004..60e2958 100644 --- a/lib/tests/modules/doRename-condition-no-enable.nix +++ b/lib/tests/modules/doRename-condition-no-enable.nix @@ -1,9 +1,14 @@ -{ config, lib, options, ... }: +{ + config, + lib, + options, + ... +}: { config = { result = assert config.services.foos == { }; - assert ! options.services.foo.bar.isDefined; + assert !options.services.foo.bar.isDefined; true; }; } diff --git a/lib/tests/modules/doRename-condition.nix b/lib/tests/modules/doRename-condition.nix index 176c21a..25df211 100644 --- a/lib/tests/modules/doRename-condition.nix +++ b/lib/tests/modules/doRename-condition.nix @@ -13,25 +13,41 @@ */ { config, lib, ... }: let - inherit (lib) mkOption mkEnableOption types doRename; + inherit (lib) + mkOption + mkEnableOption + types + doRename + ; in { options = { services.foo.enable = mkEnableOption "foo"; services.foos = mkOption { - type = types.attrsOf (types.submodule { - options = { - bar = mkOption { type = types.str; }; - }; - }); + type = types.attrsOf ( + types.submodule { + options = { + bar = mkOption { type = types.str; }; + }; + } + ); default = { }; }; - result = mkOption {}; + result = mkOption { }; }; imports = [ (doRename { - from = [ "services" "foo" "bar" ]; - to = [ "services" "foos" "" "bar" ]; + from = [ + "services" + "foo" + "bar" + ]; + to = [ + "services" + "foos" + "" + "bar" + ]; visible = true; warn = false; use = x: x; diff --git a/lib/tests/modules/doRename-warnings.nix b/lib/tests/modules/doRename-warnings.nix index 6f0f1e8..c0150ce 100644 --- a/lib/tests/modules/doRename-warnings.nix +++ b/lib/tests/modules/doRename-warnings.nix @@ -1,11 +1,25 @@ -{ lib, config, ... }: { +{ lib, config, ... }: +{ imports = [ - (lib.doRename { from = ["a" "b"]; to = ["c" "d" "e"]; warn = true; use = x: x; visible = true; }) + (lib.doRename { + from = [ + "a" + "b" + ]; + to = [ + "c" + "d" + "e" + ]; + warn = true; + use = x: x; + visible = true; + }) ]; options = { warnings = lib.mkOption { type = lib.types.listOf lib.types.str; }; - c.d.e = lib.mkOption {}; - result = lib.mkOption {}; + c.d.e = lib.mkOption { }; + result = lib.mkOption { }; }; config = { a.b = 1234; diff --git a/lib/tests/modules/docs.nix b/lib/tests/modules/docs.nix index 225aa7e..66d705d 100644 --- a/lib/tests/modules/docs.nix +++ b/lib/tests/modules/docs.nix @@ -2,7 +2,7 @@ A basic documentation generating module. Declares and defines a `docs` option, suitable for making assertions about the extraction "phase" of documentation generation. - */ +*/ { lib, options, ... }: let @@ -11,7 +11,7 @@ let length mkOption types - ; + ; traceListSeq = l: v: lib.foldl' (a: b: lib.traceSeq b a) v l; @@ -24,18 +24,12 @@ in All options to be rendered, without any visibility filtering applied. ''; }; - config.docs = - lib.zipAttrsWith - (name: values: - if length values > 1 then - traceListSeq values - abort "Multiple options with the same name: ${name}" - else - assert length values == 1; - head values - ) - (map - (opt: { ${opt.name} = opt; }) - (lib.optionAttrSetToDocList options) - ); + config.docs = lib.zipAttrsWith ( + name: values: + if length values > 1 then + traceListSeq values abort "Multiple options with the same name: ${name}" + else + assert length values == 1; + head values + ) (map (opt: { ${opt.name} = opt; }) (lib.optionAttrSetToDocList options)); } diff --git a/lib/tests/modules/emptyValues.nix b/lib/tests/modules/emptyValues.nix index 77825de..4f01603 100644 --- a/lib/tests/modules/emptyValues.nix +++ b/lib/tests/modules/emptyValues.nix @@ -1,27 +1,16 @@ { lib, ... }: let inherit (lib) types; -in { +in +{ options = { - int = lib.mkOption { - type = types.lazyAttrsOf types.int; - }; - list = lib.mkOption { - type = types.lazyAttrsOf (types.listOf types.int); - }; - nonEmptyList = lib.mkOption { - type = types.lazyAttrsOf (types.nonEmptyListOf types.int); - }; - attrs = lib.mkOption { - type = types.lazyAttrsOf (types.attrsOf types.int); - }; - null = lib.mkOption { - type = types.lazyAttrsOf (types.nullOr types.int); - }; - submodule = lib.mkOption { - type = types.lazyAttrsOf (types.submodule {}); - }; + int = lib.mkOption { type = types.lazyAttrsOf types.int; }; + list = lib.mkOption { type = types.lazyAttrsOf (types.listOf types.int); }; + nonEmptyList = lib.mkOption { type = types.lazyAttrsOf (types.nonEmptyListOf types.int); }; + attrs = lib.mkOption { type = types.lazyAttrsOf (types.attrsOf types.int); }; + null = lib.mkOption { type = types.lazyAttrsOf (types.nullOr types.int); }; + submodule = lib.mkOption { type = types.lazyAttrsOf (types.submodule { }); }; }; config = { diff --git a/lib/tests/modules/error-mkOption-in-config.nix b/lib/tests/modules/error-mkOption-in-config.nix index 2d78cd8..85b5f99 100644 --- a/lib/tests/modules/error-mkOption-in-config.nix +++ b/lib/tests/modules/error-mkOption-in-config.nix @@ -3,12 +3,10 @@ let inherit (lib) mkOption; in { - wrong1 = mkOption { - }; + wrong1 = mkOption { }; # This is not actually reported separately, so could be omitted from the test # but it makes the example more realistic. # Making it parse this _config_ as options would too risky. What if it's not # options but other values, that abort, throw, diverge, etc? - nest.wrong2 = mkOption { - }; + nest.wrong2 = mkOption { }; } diff --git a/lib/tests/modules/error-mkOption-in-submodule-config.nix b/lib/tests/modules/error-mkOption-in-submodule-config.nix index 91ac3d6..a3a0112 100644 --- a/lib/tests/modules/error-mkOption-in-submodule-config.nix +++ b/lib/tests/modules/error-mkOption-in-submodule-config.nix @@ -4,9 +4,7 @@ let in { options.sub = lib.mkOption { - type = lib.types.submodule { - wrong2 = mkOption {}; - }; - default = {}; + type = lib.types.submodule { wrong2 = mkOption { }; }; + default = { }; }; } diff --git a/lib/tests/modules/extendModules-168767-imports.nix b/lib/tests/modules/extendModules-168767-imports.nix index 6b50b81..07e1823 100644 --- a/lib/tests/modules/extendModules-168767-imports.nix +++ b/lib/tests/modules/extendModules-168767-imports.nix @@ -1,14 +1,7 @@ -{ lib -, extendModules -, ... -}: +{ lib, extendModules, ... }: let - inherit (lib) - mkOption - mkOverride - types - ; + inherit (lib) mkOption mkOverride types; in { imports = [ @@ -17,24 +10,13 @@ in options.sub = mkOption { default = { }; type = types.submodule ( - { config - , extendModules - , ... - }: + { config, extendModules, ... }: { - options.value = mkOption { - type = types.int; - }; + options.value = mkOption { type = types.int; }; options.specialisation = mkOption { default = { }; - inherit - (extendModules { - modules = [{ - specialisation = mkOverride 0 { }; - }]; - }) - type; + inherit (extendModules { modules = [ { specialisation = mkOverride 0 { }; } ]; }) type; }; } ); @@ -43,6 +25,5 @@ in { config.sub.value = 1; } - ]; } diff --git a/lib/tests/modules/freeform-attrsOf.nix b/lib/tests/modules/freeform-attrsOf.nix index 8cc577f..043ae11 100644 --- a/lib/tests/modules/freeform-attrsOf.nix +++ b/lib/tests/modules/freeform-attrsOf.nix @@ -1,3 +1,4 @@ -{ lib, ... }: { +{ lib, ... }: +{ freeformType = with lib.types; attrsOf (either str (attrsOf str)); } diff --git a/lib/tests/modules/freeform-lazyAttrsOf.nix b/lib/tests/modules/freeform-lazyAttrsOf.nix index 36d6c0b..7fd9adc 100644 --- a/lib/tests/modules/freeform-lazyAttrsOf.nix +++ b/lib/tests/modules/freeform-lazyAttrsOf.nix @@ -1,3 +1,4 @@ -{ lib, ... }: { +{ lib, ... }: +{ freeformType = with lib.types; lazyAttrsOf (either str (lazyAttrsOf str)); } diff --git a/lib/tests/modules/freeform-nested.nix b/lib/tests/modules/freeform-nested.nix index b81fa7f..484178c 100644 --- a/lib/tests/modules/freeform-nested.nix +++ b/lib/tests/modules/freeform-nested.nix @@ -1,8 +1,8 @@ { lib, ... }: let - deathtrapArgs = lib.mapAttrs - (k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute.") - (lib.functionArgs lib.mkOption); + deathtrapArgs = lib.mapAttrs ( + k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute." + ) (lib.functionArgs lib.mkOption); in { options.nest.foo = lib.mkOption { diff --git a/lib/tests/modules/freeform-str-dep-unstr.nix b/lib/tests/modules/freeform-str-dep-unstr.nix index a2dfbc8..9748aa9 100644 --- a/lib/tests/modules/freeform-str-dep-unstr.nix +++ b/lib/tests/modules/freeform-str-dep-unstr.nix @@ -1,4 +1,5 @@ -{ lib, config, ... }: { +{ lib, config, ... }: +{ options.foo = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; diff --git a/lib/tests/modules/freeform-submodules.nix b/lib/tests/modules/freeform-submodules.nix index 3910435..d12248e 100644 --- a/lib/tests/modules/freeform-submodules.nix +++ b/lib/tests/modules/freeform-submodules.nix @@ -1,17 +1,19 @@ -{ lib, options, ... }: with lib.types; { +{ lib, options, ... }: +with lib.types; +{ options.fooDeclarations = lib.mkOption { - default = (options.free.type.getSubOptions [])._freeformOptions.foo.declarations; + default = (options.free.type.getSubOptions [ ])._freeformOptions.foo.declarations; }; options.free = lib.mkOption { type = submodule { config._module.freeformType = lib.mkMerge [ (attrsOf (submodule { - options.foo = lib.mkOption {}; + options.foo = lib.mkOption { }; })) (attrsOf (submodule { - options.bar = lib.mkOption {}; + options.bar = lib.mkOption { }; })) ]; }; diff --git a/lib/tests/modules/freeform-unstr-dep-str.nix b/lib/tests/modules/freeform-unstr-dep-str.nix index 549d89a..dae56f9 100644 --- a/lib/tests/modules/freeform-unstr-dep-str.nix +++ b/lib/tests/modules/freeform-unstr-dep-str.nix @@ -1,4 +1,5 @@ -{ lib, config, ... }: { +{ lib, config, ... }: +{ options.value = lib.mkOption { type = lib.types.nullOr lib.types.str; default = null; diff --git a/lib/tests/modules/functionTo/list-order.nix b/lib/tests/modules/functionTo/list-order.nix index 77a1a43..520aa3d 100644 --- a/lib/tests/modules/functionTo/list-order.nix +++ b/lib/tests/modules/functionTo/list-order.nix @@ -1,20 +1,20 @@ - { lib, config, ... }: let inherit (lib) types; -in { +in +{ options = { - fun = lib.mkOption { - type = types.functionTo (types.listOf types.str); - }; + fun = lib.mkOption { type = types.functionTo (types.listOf types.str); }; result = lib.mkOption { type = types.str; - default = toString (config.fun { - a = "a"; - b = "b"; - c = "c"; - }); + default = toString ( + config.fun { + a = "a"; + b = "b"; + c = "c"; + } + ); }; }; diff --git a/lib/tests/modules/functionTo/merging-attrs.nix b/lib/tests/modules/functionTo/merging-attrs.nix index 97c015f..83bacf8 100644 --- a/lib/tests/modules/functionTo/merging-attrs.nix +++ b/lib/tests/modules/functionTo/merging-attrs.nix @@ -1,27 +1,28 @@ { lib, config, ... }: let inherit (lib) types; -in { +in +{ options = { - fun = lib.mkOption { - type = types.functionTo (types.attrsOf types.str); - }; + fun = lib.mkOption { type = types.functionTo (types.attrsOf types.str); }; result = lib.mkOption { type = types.str; - default = toString (lib.attrValues (config.fun { - a = "a"; - b = "b"; - c = "c"; - })); + default = toString ( + lib.attrValues ( + config.fun { + a = "a"; + b = "b"; + c = "c"; + } + ) + ); }; }; config.fun = lib.mkMerge [ (input: { inherit (input) a; }) (input: { inherit (input) b; }) - (input: { - b = lib.mkForce input.c; - }) + (input: { b = lib.mkForce input.c; }) ]; } diff --git a/lib/tests/modules/functionTo/merging-list.nix b/lib/tests/modules/functionTo/merging-list.nix index 15fcd2b..2c1c9fd 100644 --- a/lib/tests/modules/functionTo/merging-list.nix +++ b/lib/tests/modules/functionTo/merging-list.nix @@ -1,19 +1,20 @@ { lib, config, ... }: let inherit (lib) types; -in { +in +{ options = { - fun = lib.mkOption { - type = types.functionTo (types.listOf types.str); - }; + fun = lib.mkOption { type = types.functionTo (types.listOf types.str); }; result = lib.mkOption { type = types.str; - default = toString (config.fun { - a = "a"; - b = "b"; - c = "c"; - }); + default = toString ( + config.fun { + a = "a"; + b = "b"; + c = "c"; + } + ); }; }; diff --git a/lib/tests/modules/functionTo/submodule-options.nix b/lib/tests/modules/functionTo/submodule-options.nix index b884892..49f4dc0 100644 --- a/lib/tests/modules/functionTo/submodule-options.nix +++ b/lib/tests/modules/functionTo/submodule-options.nix @@ -1,4 +1,9 @@ -{ lib, config, options, ... }: +{ + lib, + config, + options, + ... +}: let inherit (lib) types; in @@ -6,56 +11,49 @@ in imports = [ # fun..a - ({ ... }: { - options = { - fun = lib.mkOption { - type = types.functionTo (types.submodule { - options.a = lib.mkOption { default = "a"; }; - }); + ( + { ... }: + { + options = { + fun = lib.mkOption { + type = types.functionTo (types.submodule { options.a = lib.mkOption { default = "a"; }; }); + }; }; - }; - }) + } + ) # fun..b - ({ ... }: { - options = { - fun = lib.mkOption { - type = types.functionTo (types.submodule { - options.b = lib.mkOption { default = "b"; }; - }); + ( + { ... }: + { + options = { + fun = lib.mkOption { + type = types.functionTo (types.submodule { options.b = lib.mkOption { default = "b"; }; }); + }; }; - }; - }) + } + ) ]; options = { - result = lib.mkOption - { - type = types.str; - default = lib.concatStringsSep " " (lib.attrValues (config.fun (throw "shouldn't use input param"))); - }; + result = lib.mkOption { + type = types.str; + default = lib.concatStringsSep " " ( + lib.attrValues (config.fun (throw "shouldn't use input param")) + ); + }; - optionsResult = lib.mkOption - { - type = types.str; - default = lib.concatStringsSep " " - (lib.concatLists - (lib.mapAttrsToList - (k: v: - if k == "_module" - then [ ] - else [ (lib.showOption v.loc) ] - ) - ( - (options.fun.type.getSubOptions [ "fun" ]) - ) - ) - ); - }; + optionsResult = lib.mkOption { + type = types.str; + default = lib.concatStringsSep " " ( + lib.concatLists ( + lib.mapAttrsToList (k: v: if k == "_module" then [ ] else [ (lib.showOption v.loc) ]) ( + (options.fun.type.getSubOptions [ "fun" ]) + ) + ) + ); + }; }; - config.fun = lib.mkMerge - [ - (input: { b = "bee"; }) - ]; + config.fun = lib.mkMerge [ (input: { b = "bee"; }) ]; } diff --git a/lib/tests/modules/functionTo/trivial.nix b/lib/tests/modules/functionTo/trivial.nix index 0962a0c..0ffc7f5 100644 --- a/lib/tests/modules/functionTo/trivial.nix +++ b/lib/tests/modules/functionTo/trivial.nix @@ -1,11 +1,10 @@ { lib, config, ... }: let inherit (lib) types; -in { +in +{ options = { - fun = lib.mkOption { - type = types.functionTo types.str; - }; + fun = lib.mkOption { type = types.functionTo types.str; }; result = lib.mkOption { type = types.str; diff --git a/lib/tests/modules/functionTo/wrong-type.nix b/lib/tests/modules/functionTo/wrong-type.nix index fd65b75..9f5f5a1 100644 --- a/lib/tests/modules/functionTo/wrong-type.nix +++ b/lib/tests/modules/functionTo/wrong-type.nix @@ -1,12 +1,10 @@ - { lib, config, ... }: let inherit (lib) types; -in { +in +{ options = { - fun = lib.mkOption { - type = types.functionTo types.str; - }; + fun = lib.mkOption { type = types.functionTo types.str; }; result = lib.mkOption { type = types.str; diff --git a/lib/tests/modules/gvariant.nix b/lib/tests/modules/gvariant.nix index ba452c0..0feb378 100644 --- a/lib/tests/modules/gvariant.nix +++ b/lib/tests/modules/gvariant.nix @@ -10,7 +10,7 @@ examples = with lib.gvariant; { bool = true; float = 3.14; - int32 = mkInt32 (- 42); + int32 = mkInt32 (-42); uint32 = mkUint32 42; int16 = mkInt16 (-42); uint16 = mkUint16 42; @@ -24,7 +24,10 @@ escapedString = '' '\ ''; - tuple = mkTuple [ (mkInt32 1) [ "foo" ] ]; + tuple = mkTuple [ + (mkInt32 1) + [ "foo" ] + ]; maybe1 = mkNothing type.string; maybe2 = mkJust (mkUint32 4); variant = mkVariant "foo"; diff --git a/lib/tests/modules/import-custom-arg.nix b/lib/tests/modules/import-custom-arg.nix index 3e687b6..13c9db9 100644 --- a/lib/tests/modules/import-custom-arg.nix +++ b/lib/tests/modules/import-custom-arg.nix @@ -1,6 +1,5 @@ { lib, custom, ... }: { - imports = [] - ++ lib.optional custom ./define-enable-force.nix; + imports = [ ] ++ lib.optional custom ./define-enable-force.nix; } diff --git a/lib/tests/modules/import-from-store.nix b/lib/tests/modules/import-from-store.nix index f5af224..5ddb80a 100644 --- a/lib/tests/modules/import-from-store.nix +++ b/lib/tests/modules/import-from-store.nix @@ -8,4 +8,3 @@ ]; } - diff --git a/lib/tests/modules/merge-module-with-key.nix b/lib/tests/modules/merge-module-with-key.nix index 21f00e6..820727b 100644 --- a/lib/tests/modules/merge-module-with-key.nix +++ b/lib/tests/modules/merge-module-with-key.nix @@ -17,9 +17,7 @@ let decl = { options = { - raw = mkOption { - type = types.lines; - }; + raw = mkOption { type = types.lines; }; }; }; in @@ -33,7 +31,7 @@ in moduleWithKey ]; }; - default = {}; + default = { }; }; twice = mkOption { type = types.submodule { @@ -43,7 +41,7 @@ in moduleWithoutKey ]; }; - default = {}; + default = { }; }; }; } diff --git a/lib/tests/modules/module-argument-default.nix b/lib/tests/modules/module-argument-default.nix index 8dbb783..c437136 100644 --- a/lib/tests/modules/module-argument-default.nix +++ b/lib/tests/modules/module-argument-default.nix @@ -1,6 +1,11 @@ -{ a ? false, lib, ... }: { +{ + a ? false, + lib, + ... +}: +{ options = { - result = lib.mkOption {}; + result = lib.mkOption { }; }; config = { _module.args.a = true; diff --git a/lib/tests/modules/module-class-is-darwin.nix b/lib/tests/modules/module-class-is-darwin.nix index bacf456..99808ee 100644 --- a/lib/tests/modules/module-class-is-darwin.nix +++ b/lib/tests/modules/module-class-is-darwin.nix @@ -1,4 +1,4 @@ { _class = "darwin"; - config = {}; + config = { }; } diff --git a/lib/tests/modules/module-class-is-nixos.nix b/lib/tests/modules/module-class-is-nixos.nix index 6d62fee..03b968e 100644 --- a/lib/tests/modules/module-class-is-nixos.nix +++ b/lib/tests/modules/module-class-is-nixos.nix @@ -1,4 +1,4 @@ { _class = "nixos"; - config = {}; + config = { }; } diff --git a/lib/tests/modules/module-imports-_type-check.nix b/lib/tests/modules/module-imports-_type-check.nix index 1e29c46..85f9a82 100644 --- a/lib/tests/modules/module-imports-_type-check.nix +++ b/lib/tests/modules/module-imports-_type-check.nix @@ -1,3 +1 @@ -{ - imports = [ { _type = "flake"; } ]; -} +{ imports = [ { _type = "flake"; } ]; } diff --git a/lib/tests/modules/optionTypeFile.nix b/lib/tests/modules/optionTypeFile.nix index 6015d59..d8962f7 100644 --- a/lib/tests/modules/optionTypeFile.nix +++ b/lib/tests/modules/optionTypeFile.nix @@ -1,27 +1,20 @@ -{ config, lib, ... }: { +{ config, lib, ... }: +{ _file = "optionTypeFile.nix"; - options.theType = lib.mkOption { - type = lib.types.optionType; - }; + options.theType = lib.mkOption { type = lib.types.optionType; }; options.theOption = lib.mkOption { type = config.theType; - default = {}; + default = { }; }; config.theType = lib.mkMerge [ - (lib.types.submodule { - options.nested = lib.mkOption { - type = lib.types.int; - }; - }) + (lib.types.submodule { options.nested = lib.mkOption { type = lib.types.int; }; }) (lib.types.submodule { _file = "other.nix"; - options.nested = lib.mkOption { - type = lib.types.str; - }; + options.nested = lib.mkOption { type = lib.types.str; }; }) ]; diff --git a/lib/tests/modules/optionTypeMerging.nix b/lib/tests/modules/optionTypeMerging.nix index 74a620c..f794e1e 100644 --- a/lib/tests/modules/optionTypeMerging.nix +++ b/lib/tests/modules/optionTypeMerging.nix @@ -1,12 +1,9 @@ -{ config, lib, ... }: { +{ config, lib, ... }: +{ - options.theType = lib.mkOption { - type = lib.types.optionType; - }; + options.theType = lib.mkOption { type = lib.types.optionType; }; - options.theOption = lib.mkOption { - type = config.theType; - }; + options.theOption = lib.mkOption { type = config.theType; }; config.theType = lib.mkMerge [ (lib.types.submodule { @@ -15,11 +12,7 @@ default = 10; }; }) - (lib.types.submodule { - options.str = lib.mkOption { - type = lib.types.str; - }; - }) + (lib.types.submodule { options.str = lib.mkOption { type = lib.types.str; }; }) ]; config.theOption.str = "hello"; diff --git a/lib/tests/modules/options-type-error-configuration.nix b/lib/tests/modules/options-type-error-configuration.nix index bcd6db8..25a6a1b 100644 --- a/lib/tests/modules/options-type-error-configuration.nix +++ b/lib/tests/modules/options-type-error-configuration.nix @@ -1,6 +1,7 @@ -{ lib, ... }: { +{ lib, ... }: +{ options = { # unlikely mistake, but we can catch any attrset with _type - result = lib.evalModules { modules = []; }; + result = lib.evalModules { modules = [ ]; }; }; } diff --git a/lib/tests/modules/options-type-error-typical-nested.nix b/lib/tests/modules/options-type-error-typical-nested.nix index 2c07e19..09f3143 100644 --- a/lib/tests/modules/options-type-error-typical-nested.nix +++ b/lib/tests/modules/options-type-error-typical-nested.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ options = { result.here = lib.types.str; }; diff --git a/lib/tests/modules/options-type-error-typical.nix b/lib/tests/modules/options-type-error-typical.nix index 416f436..8ae3fd2 100644 --- a/lib/tests/modules/options-type-error-typical.nix +++ b/lib/tests/modules/options-type-error-typical.nix @@ -1,4 +1,5 @@ -{ lib, ... }: { +{ lib, ... }: +{ options = { result = lib.types.str; }; diff --git a/lib/tests/modules/raw.nix b/lib/tests/modules/raw.nix index 9eb7c5c..f50f405 100644 --- a/lib/tests/modules/raw.nix +++ b/lib/tests/modules/raw.nix @@ -1,18 +1,11 @@ -{ lib, config, ... }: { +{ lib, config, ... }: +{ options = { - processedToplevel = lib.mkOption { - type = lib.types.raw; - }; - unprocessedNesting = lib.mkOption { - type = lib.types.raw; - }; - multiple = lib.mkOption { - type = lib.types.raw; - }; - priorities = lib.mkOption { - type = lib.types.raw; - }; + processedToplevel = lib.mkOption { type = lib.types.raw; }; + unprocessedNesting = lib.mkOption { type = lib.types.raw; }; + multiple = lib.mkOption { type = lib.types.raw; }; + priorities = lib.mkOption { type = lib.types.raw; }; unprocessedNestingEvaluates = lib.mkOption { default = builtins.tryEval config.unprocessedNesting; }; diff --git a/lib/tests/modules/shorthand-meta.nix b/lib/tests/modules/shorthand-meta.nix index 8c9619e..9c8c241 100644 --- a/lib/tests/modules/shorthand-meta.nix +++ b/lib/tests/modules/shorthand-meta.nix @@ -4,16 +4,20 @@ let in { imports = [ - ({ config, ... }: { - options = { - meta.foo = mkOption { - type = types.listOf types.str; + ( + { config, ... }: + { + options = { + meta.foo = mkOption { type = types.listOf types.str; }; + result = mkOption { default = lib.concatStringsSep " " config.meta.foo; }; }; - result = mkOption { default = lib.concatStringsSep " " config.meta.foo; }; - }; - }) + } + ) { - meta.foo = [ "one" "two" ]; + meta.foo = [ + "one" + "two" + ]; } ]; } diff --git a/lib/tests/modules/submoduleFiles.nix b/lib/tests/modules/submoduleFiles.nix index c0d9b2c..2b08fe1 100644 --- a/lib/tests/modules/submoduleFiles.nix +++ b/lib/tests/modules/submoduleFiles.nix @@ -1,14 +1,18 @@ -{ lib, ... }: { +{ lib, ... }: +{ options.submodule = lib.mkOption { - default = {}; + default = { }; type = lib.types.submoduleWith { - modules = [ ({ options, ... }: { - options.value = lib.mkOption {}; + modules = [ + ( + { options, ... }: + { + options.value = lib.mkOption { }; - options.internalFiles = lib.mkOption { - default = options.value.files; - }; - })]; + options.internalFiles = lib.mkOption { default = options.value.files; }; + } + ) + ]; }; }; diff --git a/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix b/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix index 3233f41..0086ce9 100644 --- a/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix +++ b/lib/tests/modules/test-mergeAttrDefinitionsWithPrio.nix @@ -2,7 +2,9 @@ let defs = lib.modules.mergeAttrDefinitionsWithPrio options._module.args; - assertLazy = pos: throw "${pos.file}:${toString pos.line}:${toString pos.column}: The test must not evaluate this the assertLazy thunk, but it did. Unexpected strictness leads to unexpected errors and performance problems."; + assertLazy = + pos: + throw "${pos.file}:${toString pos.line}:${toString pos.column}: The test must not evaluate this the assertLazy thunk, but it did. Unexpected strictness leads to unexpected errors and performance problems."; in { diff --git a/lib/tests/modules/types-anything/attrs-coercible.nix b/lib/tests/modules/types-anything/attrs-coercible.nix index 085cbd6..b5d1b51 100644 --- a/lib/tests/modules/types-anything/attrs-coercible.nix +++ b/lib/tests/modules/types-anything/attrs-coercible.nix @@ -1,8 +1,7 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; config.value = { outPath = "foo"; diff --git a/lib/tests/modules/types-anything/equal-atoms.nix b/lib/tests/modules/types-anything/equal-atoms.nix index 9925cfd..cb3781a 100644 --- a/lib/tests/modules/types-anything/equal-atoms.nix +++ b/lib/tests/modules/types-anything/equal-atoms.nix @@ -1,8 +1,7 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; config = lib.mkMerge [ { diff --git a/lib/tests/modules/types-anything/functions.nix b/lib/tests/modules/types-anything/functions.nix index 3288b64..056b788 100644 --- a/lib/tests/modules/types-anything/functions.nix +++ b/lib/tests/modules/types-anything/functions.nix @@ -1,16 +1,13 @@ -{ lib, config, ... }: { +{ lib, config, ... }: +{ options.valueIsFunction = lib.mkOption { default = lib.mapAttrs (name: lib.isFunction) config.value; }; - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; - options.applied = lib.mkOption { - default = lib.mapAttrs (name: fun: fun null) config.value; - }; + options.applied = lib.mkOption { default = lib.mapAttrs (name: fun: fun null) config.value; }; config = lib.mkMerge [ { diff --git a/lib/tests/modules/types-anything/lists.nix b/lib/tests/modules/types-anything/lists.nix index bd846af..ba569a7 100644 --- a/lib/tests/modules/types-anything/lists.nix +++ b/lib/tests/modules/types-anything/lists.nix @@ -1,16 +1,11 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; config = lib.mkMerge [ - { - value = [ null ]; - } - { - value = [ null ]; - } + { value = [ null ]; } + { value = [ null ]; } ]; } diff --git a/lib/tests/modules/types-anything/mk-mods.nix b/lib/tests/modules/types-anything/mk-mods.nix index f84ad01..81f65dc 100644 --- a/lib/tests/modules/types-anything/mk-mods.nix +++ b/lib/tests/modules/types-anything/mk-mods.nix @@ -1,30 +1,15 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; config = lib.mkMerge [ - { - value.mkiffalse = lib.mkIf false {}; - } - { - value.mkiftrue = lib.mkIf true {}; - } - { - value.mkdefault = lib.mkDefault 0; - } - { - value.mkdefault = 1; - } - { - value.mkmerge = lib.mkMerge [ - {} - ]; - } - { - value.mkbefore = lib.mkBefore true; - } + { value.mkiffalse = lib.mkIf false { }; } + { value.mkiftrue = lib.mkIf true { }; } + { value.mkdefault = lib.mkDefault 0; } + { value.mkdefault = 1; } + { value.mkmerge = lib.mkMerge [ { } ]; } + { value.mkbefore = lib.mkBefore true; } { value.nested = lib.mkMerge [ { diff --git a/lib/tests/modules/types-anything/nested-attrs.nix b/lib/tests/modules/types-anything/nested-attrs.nix index e57d33e..92d6ea0 100644 --- a/lib/tests/modules/types-anything/nested-attrs.nix +++ b/lib/tests/modules/types-anything/nested-attrs.nix @@ -1,22 +1,13 @@ -{ lib, ... }: { +{ lib, ... }: +{ - options.value = lib.mkOption { - type = lib.types.anything; - }; + options.value = lib.mkOption { type = lib.types.anything; }; config = lib.mkMerge [ - { - value.foo = null; - } - { - value.l1.foo = null; - } - { - value.l1.l2.foo = null; - } - { - value.l1.l2.l3.foo = null; - } + { value.foo = null; } + { value.l1.foo = null; } + { value.l1.l2.foo = null; } + { value.l1.l2.l3.foo = null; } ]; } diff --git a/lib/tests/modules/types-attrTag-wrong-decl.nix b/lib/tests/modules/types-attrTag-wrong-decl.nix index d03370b..078296d 100644 --- a/lib/tests/modules/types-attrTag-wrong-decl.nix +++ b/lib/tests/modules/types-attrTag-wrong-decl.nix @@ -5,10 +5,10 @@ in { options = { opt = mkOption { - type = types.attrTag { - int = types.int; + type = types.attrTag { int = types.int; }; + default = { + int = 1; }; - default = { int = 1; }; }; }; } diff --git a/lib/tests/modules/types-attrTag.nix b/lib/tests/modules/types-attrTag.nix index b2e5158..9b07973 100644 --- a/lib/tests/modules/types-attrTag.nix +++ b/lib/tests/modules/types-attrTag.nix @@ -1,4 +1,9 @@ -{ lib, config, options, ... }: +{ + lib, + config, + options, + ... +}: let inherit (lib) mkOption types; forceDeep = x: builtins.deepSeq x x; @@ -7,29 +12,20 @@ in { options = { intStrings = mkOption { - type = types.attrsOf - (types.attrTag { - left = mkOption { - type = types.int; - }; - right = mkOption { - type = types.str; - }; - }); + type = types.attrsOf ( + types.attrTag { + left = mkOption { type = types.int; }; + right = mkOption { type = types.str; }; + } + ); }; nested = mkOption { type = types.attrTag { - left = mkOption { - type = types.int; - }; + left = mkOption { type = types.int; }; right = mkOption { type = types.attrTag { - left = mkOption { - type = types.int; - }; - right = mkOption { - type = types.str; - }; + left = mkOption { type = types.int; }; + right = mkOption { type = types.str; }; }; }; }; @@ -37,12 +33,8 @@ in merged = mkOption { type = types.attrsOf ( types.attrTag { - yay = mkOption { - type = types.int; - }; - extensible = mkOption { - type = types.enum [ "foo" ]; - }; + yay = mkOption { type = types.int; }; + extensible = mkOption { type = types.enum [ "foo" ]; }; } ); }; @@ -52,9 +44,7 @@ in foo = mkOption { type = types.submodule { options = { - bar = mkOption { - type = types.int; - }; + bar = mkOption { type = types.int; }; }; }; }; @@ -65,7 +55,7 @@ in } ); }; - okChecks = mkOption {}; + okChecks = mkOption { }; }; imports = [ ./docs.nix @@ -73,12 +63,8 @@ in options.merged = mkOption { type = types.attrsOf ( types.attrTag { - nay = mkOption { - type = types.bool; - }; - extensible = mkOption { - type = types.enum [ "bar" ]; - }; + nay = mkOption { type = types.bool; }; + extensible = mkOption { type = types.enum [ "bar" ]; }; } ); }; @@ -86,10 +72,19 @@ in ]; config = { intStrings.syntaxError = 1; - intStrings.syntaxError2 = {}; - intStrings.syntaxError3 = { a = true; b = true; }; - intStrings.syntaxError4 = lib.mkMerge [ { a = true; } { b = true; } ]; - intStrings.mergeError = lib.mkMerge [ { int = throw "do not eval"; } { string = throw "do not eval"; } ]; + intStrings.syntaxError2 = { }; + intStrings.syntaxError3 = { + a = true; + b = true; + }; + intStrings.syntaxError4 = lib.mkMerge [ + { a = true; } + { b = true; } + ]; + intStrings.mergeError = lib.mkMerge [ + { int = throw "do not eval"; } + { string = throw "do not eval"; } + ]; intStrings.badTagError.rite = throw "do not eval"; intStrings.badTagTypeError.left = "bad"; intStrings.numberOne.left = 1; @@ -109,7 +104,12 @@ in assert config.docs."submodules..foo.bar".type == "signed integer"; assert config.docs."submodules..qux".type == "string"; assert config.docs."submodules..qux".declarations == [ __curPos.file ]; - assert config.docs."submodules..qux".loc == [ "submodules" "" "qux" ]; + assert + config.docs."submodules..qux".loc == [ + "submodules" + "" + "qux" + ]; assert config.docs."submodules..qux".name == "submodules..qux"; assert config.docs."submodules..qux".description == "A qux for when you don't want a foo"; assert config.docs."submodules..qux".readOnly == false; @@ -119,17 +119,30 @@ in assert options.submodules.declarations == [ __curPos.file ]; assert lib.length options.submodules.declarationPositions == 1; assert (lib.head options.submodules.declarationPositions).file == __curPos.file; - assert options.merged.declarations == [ __curPos.file __curPos.file ]; + assert + options.merged.declarations == [ + __curPos.file + __curPos.file + ]; assert lib.length options.merged.declarationPositions == 2; assert (lib.elemAt options.merged.declarationPositions 0).file == __curPos.file; assert (lib.elemAt options.merged.declarationPositions 1).file == __curPos.file; - assert (lib.elemAt options.merged.declarationPositions 0).line != (lib.elemAt options.merged.declarationPositions 1).line; - assert mergedSubOption.declarations == [ __curPos.file __curPos.file ]; + assert + (lib.elemAt options.merged.declarationPositions 0).line + != (lib.elemAt options.merged.declarationPositions 1).line; + assert + mergedSubOption.declarations == [ + __curPos.file + __curPos.file + ]; assert lib.length mergedSubOption.declarationPositions == 2; assert (lib.elemAt mergedSubOption.declarationPositions 0).file == __curPos.file; assert (lib.elemAt mergedSubOption.declarationPositions 1).file == __curPos.file; - assert (lib.elemAt mergedSubOption.declarationPositions 0).line != (lib.elemAt mergedSubOption.declarationPositions 1).line; + assert + (lib.elemAt mergedSubOption.declarationPositions 0).line + != (lib.elemAt mergedSubOption.declarationPositions 1).line; assert lib.length config.docs."merged..extensible".declarations == 2; - true); + true + ); }; } diff --git a/lib/tests/modules/types-unique.nix b/lib/tests/modules/types-unique.nix index 115be01..83efcbb 100644 --- a/lib/tests/modules/types-unique.nix +++ b/lib/tests/modules/types-unique.nix @@ -4,13 +4,18 @@ let in { options.examples = mkOption { - type = types.lazyAttrsOf - (types.unique - { message = "We require a single definition, because seeing the whole value at once helps us maintain critical invariants of our system."; } - (types.attrsOf types.str)); + type = types.lazyAttrsOf ( + types.unique { + message = "We require a single definition, because seeing the whole value at once helps us maintain critical invariants of our system."; + } (types.attrsOf types.str) + ); }; imports = [ - { examples.merged = { b = "bee"; }; } + { + examples.merged = { + b = "bee"; + }; + } { examples.override = lib.mkForce { b = "bee"; }; } ]; config.examples = { diff --git a/lib/tests/modules/types.nix b/lib/tests/modules/types.nix index 7c43a68..a4e506d 100644 --- a/lib/tests/modules/types.nix +++ b/lib/tests/modules/types.nix @@ -1,11 +1,7 @@ { lib, ... }: let - inherit (builtins) - storeDir; - inherit (lib) - types - mkOption - ; + inherit (builtins) storeDir; + inherit (lib) types mkOption; in { options = { diff --git a/lib/tests/nix-for-tests.nix b/lib/tests/nix-for-tests.nix index 69dedec..ac08093 100644 --- a/lib/tests/nix-for-tests.nix +++ b/lib/tests/nix-for-tests.nix @@ -1,5 +1,4 @@ -{ pkgs -}: +{ pkgs }: # The aws-sdk-cpp tests are flaky. Since pull requests to staging # cause nix to be rebuilt, this means that staging PRs end up @@ -10,8 +9,6 @@ # # See also: https://github.com/NixOS/nix/issues/7582 -builtins.mapAttrs (_: pkg: - if builtins.isAttrs pkg - then pkg.override { withAWS = false; } - else pkg) - pkgs.nixVersions +builtins.mapAttrs ( + _: pkg: if builtins.isAttrs pkg then pkg.override { withAWS = false; } else pkg +) pkgs.nixVersions diff --git a/lib/tests/packages-from-directory/a.nix b/lib/tests/packages-from-directory/a.nix index 54f9eaf..0ba3be1 100644 --- a/lib/tests/packages-from-directory/a.nix +++ b/lib/tests/packages-from-directory/a.nix @@ -1,2 +1 @@ -{ }: -"a" +{ }: "a" diff --git a/lib/tests/packages-from-directory/b.nix b/lib/tests/packages-from-directory/b.nix index 345b3c2..37d4cc1 100644 --- a/lib/tests/packages-from-directory/b.nix +++ b/lib/tests/packages-from-directory/b.nix @@ -1,2 +1 @@ -{ }: -"b" +{ }: "b" diff --git a/lib/tests/packages-from-directory/c/package.nix b/lib/tests/packages-from-directory/c/package.nix index c1203cd..33caddb 100644 --- a/lib/tests/packages-from-directory/c/package.nix +++ b/lib/tests/packages-from-directory/c/package.nix @@ -1,2 +1 @@ -{ }: -"c" +{ }: "c" diff --git a/lib/tests/packages-from-directory/my-namespace/d.nix b/lib/tests/packages-from-directory/my-namespace/d.nix index 6e5eaa0..20596bd 100644 --- a/lib/tests/packages-from-directory/my-namespace/d.nix +++ b/lib/tests/packages-from-directory/my-namespace/d.nix @@ -1,2 +1 @@ -{ }: -"d" +{ }: "d" diff --git a/lib/tests/packages-from-directory/my-namespace/e.nix b/lib/tests/packages-from-directory/my-namespace/e.nix index 50bd742..9e7f695 100644 --- a/lib/tests/packages-from-directory/my-namespace/e.nix +++ b/lib/tests/packages-from-directory/my-namespace/e.nix @@ -1,2 +1 @@ -{ }: -"e" +{ }: "e" diff --git a/lib/tests/packages-from-directory/my-namespace/f/package.nix b/lib/tests/packages-from-directory/my-namespace/f/package.nix index c9a66c2..d58cfe0 100644 --- a/lib/tests/packages-from-directory/my-namespace/f/package.nix +++ b/lib/tests/packages-from-directory/my-namespace/f/package.nix @@ -1,2 +1 @@ -{ }: -"f" +{ }: "f" diff --git a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/g.nix b/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/g.nix index 4ecaffb..e8f6b37 100644 --- a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/g.nix +++ b/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/g.nix @@ -1,2 +1 @@ -{ }: -"g" +{ }: "g" diff --git a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/h.nix b/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/h.nix index 3756275..34a0416 100644 --- a/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/h.nix +++ b/lib/tests/packages-from-directory/my-namespace/my-sub-namespace/h.nix @@ -1,2 +1 @@ -{ }: -"h" +{ }: "h" diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 373b990..cee9c95 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -1,30 +1,36 @@ -{ # The pkgs used for dependencies for the testing itself +{ + # The pkgs used for dependencies for the testing itself # Don't test properties of pkgs.lib, but rather the lib in the parent directory - pkgs ? import /etc/nix/inputs/nixpkgs {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; }, + pkgs ? import /etc/nix/inputs/nixpkgs { } // { + lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; + }, nix ? pkgs-nixVersions.stable, - nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.latest ], + nixVersions ? [ + pkgs-nixVersions.minimum + nix + pkgs-nixVersions.latest + ], pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; }, }: let lib = import ../.; - testWithNix = nix: - import ./test-with-nix.nix { inherit lib nix pkgs; }; + testWithNix = nix: import ./test-with-nix.nix { inherit lib nix pkgs; }; in - pkgs.symlinkJoin { - name = "nixpkgs-lib-tests"; - paths = map testWithNix nixVersions # ++ +pkgs.symlinkJoin { + name = "nixpkgs-lib-tests"; + paths = map testWithNix nixVersions # ++ - # - # TEMPORARY MIGRATION MECHANISM - # - # This comment and the expression which follows it should be - # removed as part of resolving this issue: - # - # https://github.com/NixOS/nixpkgs/issues/272591 - # - # [(import ../../pkgs/test/release {})] - ; + # + # TEMPORARY MIGRATION MECHANISM + # + # This comment and the expression which follows it should be + # removed as part of resolving this issue: + # + # https://github.com/NixOS/nixpkgs/issues/272591 + # + # [(import ../../pkgs/test/release {})] + ; - } +} diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index e142ff3..57229da 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -6,7 +6,7 @@ let lib = import ../default.nix; mseteq = x: y: { - expr = lib.sort lib.lessThan x; + expr = lib.sort lib.lessThan x; expected = lib.sort lib.lessThan y; }; @@ -20,86 +20,246 @@ let NOTE: This property is not guaranteed when `sys` was elaborated by a different version of Nixpkgs. */ - toLosslessStringMaybe = sys: - if lib.isString sys then sys - else if lib.systems.equals sys (lib.systems.elaborate sys.system) then sys.system - else null; + toLosslessStringMaybe = + sys: + if lib.isString sys then + sys + else if lib.systems.equals sys (lib.systems.elaborate sys.system) then + sys.system + else + null; in lib.runTests ( -# We assert that the new algorithmic way of generating these lists matches the -# way they were hard-coded before. -# -# One might think "if we exhaustively test, what's the point of procedurally -# calculating the lists anyway?". The answer is one can mindlessly update these -# tests as new platforms become supported, and then just give the diff a quick -# sanity check before committing :). + # We assert that the new algorithmic way of generating these lists matches the + # way they were hard-coded before. + # + # One might think "if we exhaustively test, what's the point of procedurally + # calculating the lists anyway?". The answer is one can mindlessly update these + # tests as new platforms become supported, and then just give the diff a quick + # sanity check before committing :). -(with lib.systems.doubles; { - testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ mmix ++ js ++ genode ++ redox); + (with lib.systems.doubles; { + testall = mseteq all ( + linux + ++ darwin + ++ freebsd + ++ openbsd + ++ netbsd + ++ illumos + ++ wasi + ++ windows + ++ embedded + ++ mmix + ++ js + ++ genode + ++ redox + ); - testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ]; - testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ]; - testi686 = mseteq i686 [ "i686-linux" "i686-freebsd13" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ]; - testmips = mseteq mips [ "mips-none" "mips64-none" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ]; - testmmix = mseteq mmix [ "mmix-mmixware" ]; - testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ]; - testriscv = mseteq riscv [ "riscv32-linux" "riscv64-linux" "riscv32-netbsd" "riscv64-netbsd" "riscv32-none" "riscv64-none" ]; - testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ]; - testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ]; - tests390x = mseteq s390x [ "s390x-linux" "s390x-none" ]; - testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd13" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ]; + testarm = mseteq arm [ + "armv5tel-linux" + "armv6l-linux" + "armv6l-netbsd" + "armv6l-none" + "armv7a-linux" + "armv7a-netbsd" + "armv7l-linux" + "armv7l-netbsd" + "arm-none" + "armv7a-darwin" + ]; + testarmv7 = mseteq armv7 [ + "armv7a-darwin" + "armv7a-linux" + "armv7l-linux" + "armv7a-netbsd" + "armv7l-netbsd" + ]; + testi686 = mseteq i686 [ + "i686-linux" + "i686-freebsd13" + "i686-genode" + "i686-netbsd" + "i686-openbsd" + "i686-cygwin" + "i686-windows" + "i686-none" + "i686-darwin" + ]; + testmips = mseteq mips [ + "mips-none" + "mips64-none" + "mips-linux" + "mips64-linux" + "mips64el-linux" + "mipsel-linux" + "mipsel-netbsd" + ]; + testmmix = mseteq mmix [ "mmix-mmixware" ]; + testpower = mseteq power [ + "powerpc-netbsd" + "powerpc-none" + "powerpc64-linux" + "powerpc64le-linux" + "powerpcle-none" + ]; + testriscv = mseteq riscv [ + "riscv32-linux" + "riscv64-linux" + "riscv32-netbsd" + "riscv64-netbsd" + "riscv32-none" + "riscv64-none" + ]; + testriscv32 = mseteq riscv32 [ + "riscv32-linux" + "riscv32-netbsd" + "riscv32-none" + ]; + testriscv64 = mseteq riscv64 [ + "riscv64-linux" + "riscv64-netbsd" + "riscv64-none" + ]; + tests390x = mseteq s390x [ + "s390x-linux" + "s390x-none" + ]; + testx86_64 = mseteq x86_64 [ + "x86_64-linux" + "x86_64-darwin" + "x86_64-freebsd13" + "x86_64-genode" + "x86_64-redox" + "x86_64-openbsd" + "x86_64-netbsd" + "x86_64-cygwin" + "x86_64-solaris" + "x86_64-windows" + "x86_64-none" + ]; - testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ]; - testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ]; - testfreebsd = mseteq freebsd [ "i686-freebsd13" "x86_64-freebsd13" ]; - testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ]; - testredox = mseteq redox [ "x86_64-redox" ]; - testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); - testillumos = mseteq illumos [ "x86_64-solaris" ]; - testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux" "microblazeel-linux" "mips-linux" "mips64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux" "s390x-linux" "x86_64-linux" ]; - testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ]; - testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]; - testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ]; - testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox); -}) + testcygwin = mseteq cygwin [ + "i686-cygwin" + "x86_64-cygwin" + ]; + testdarwin = mseteq darwin [ + "x86_64-darwin" + "i686-darwin" + "aarch64-darwin" + "armv7a-darwin" + ]; + testfreebsd = mseteq freebsd [ + "i686-freebsd13" + "x86_64-freebsd13" + ]; + testgenode = mseteq genode [ + "aarch64-genode" + "i686-genode" + "x86_64-genode" + ]; + testredox = mseteq redox [ "x86_64-redox" ]; + testgnu = mseteq gnu ( + linux # ++ kfreebsd ++ ... + ); + testillumos = mseteq illumos [ "x86_64-solaris" ]; + testlinux = mseteq linux [ + "aarch64-linux" + "armv5tel-linux" + "armv6l-linux" + "armv7a-linux" + "armv7l-linux" + "i686-linux" + "loongarch64-linux" + "m68k-linux" + "microblaze-linux" + "microblazeel-linux" + "mips-linux" + "mips64-linux" + "mips64el-linux" + "mipsel-linux" + "powerpc64-linux" + "powerpc64le-linux" + "riscv32-linux" + "riscv64-linux" + "s390-linux" + "s390x-linux" + "x86_64-linux" + ]; + testnetbsd = mseteq netbsd [ + "aarch64-netbsd" + "armv6l-netbsd" + "armv7a-netbsd" + "armv7l-netbsd" + "i686-netbsd" + "m68k-netbsd" + "mipsel-netbsd" + "powerpc-netbsd" + "riscv32-netbsd" + "riscv64-netbsd" + "x86_64-netbsd" + ]; + testopenbsd = mseteq openbsd [ + "i686-openbsd" + "x86_64-openbsd" + ]; + testwindows = mseteq windows [ + "i686-cygwin" + "x86_64-cygwin" + "i686-windows" + "x86_64-windows" + ]; + testunix = mseteq unix ( + linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox + ); + }) -// { - test_equals_example_x86_64-linux = { - expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") (lib.systems.elaborate "x86_64-linux"); - expected = true; - }; - - test_toLosslessStringMaybe_example_x86_64-linux = { - expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux"); - expected = "x86_64-linux"; - }; - test_toLosslessStringMaybe_fail = { - expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux" // { something = "extra"; }); - expected = null; - }; -} - -# Generate test cases to assert that a change in any non-function attribute makes a platform unequal -// lib.concatMapAttrs (platformAttrName: origValue: { - - ${"test_equals_unequal_${platformAttrName}"} = - let modified = - assert origValue != arbitraryValue; - lib.systems.elaborate "x86_64-linux" // { ${platformAttrName} = arbitraryValue; }; - arbitraryValue = x: "<>"; - in { - expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") modified; - expected = { - # Changes in these attrs are not detectable because they're function. - # The functions should be derived from the data, so this is not a problem. - canExecute = null; - emulator = null; - emulatorAvailable = null; - isCompatible = null; - }?${platformAttrName}; + // { + test_equals_example_x86_64-linux = { + expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") ( + lib.systems.elaborate "x86_64-linux" + ); + expected = true; }; -}) (lib.systems.elaborate "x86_64-linux" /* arbitrary choice, just to get all the elaborated attrNames */) + test_toLosslessStringMaybe_example_x86_64-linux = { + expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux"); + expected = "x86_64-linux"; + }; + test_toLosslessStringMaybe_fail = { + expr = toLosslessStringMaybe (lib.systems.elaborate "x86_64-linux" // { something = "extra"; }); + expected = null; + }; + } + + # Generate test cases to assert that a change in any non-function attribute makes a platform unequal + // + lib.concatMapAttrs + (platformAttrName: origValue: { + + ${"test_equals_unequal_${platformAttrName}"} = + let + modified = + assert origValue != arbitraryValue; + lib.systems.elaborate "x86_64-linux" // { ${platformAttrName} = arbitraryValue; }; + arbitraryValue = x: "<>"; + in + { + expr = lib.systems.equals (lib.systems.elaborate "x86_64-linux") modified; + expected = + { + # Changes in these attrs are not detectable because they're function. + # The functions should be derived from the data, so this is not a problem. + canExecute = null; + emulator = null; + emulatorAvailable = null; + isCompatible = null; + } ? ${platformAttrName}; + }; + + }) + ( + lib.systems.elaborate "x86_64-linux" # arbitrary choice, just to get all the elaborated attrNames + ) ) diff --git a/lib/tests/teams.nix b/lib/tests/teams.nix index 8a0a5d2..4583e0f 100644 --- a/lib/tests/teams.nix +++ b/lib/tests/teams.nix @@ -1,50 +1,57 @@ # to run these tests: # nix-build nixpkgs/lib/tests/teams.nix # If it builds, all tests passed -{ pkgs ? import ../.. {}, lib ? pkgs.lib }: +{ + pkgs ? import ../.. { }, + lib ? pkgs.lib, +}: let inherit (lib) types; - teamModule = { config, ... }: { - options = { - shortName = lib.mkOption { - type = types.str; - }; - scope = lib.mkOption { - type = types.str; - }; - enableFeatureFreezePing = lib.mkOption { - type = types.bool; - default = false; - }; - members = lib.mkOption { - type = types.listOf (types.submodule - (import ./maintainer-module.nix { inherit lib; }) - ); - default = []; - }; - githubTeams = lib.mkOption { - type = types.listOf types.str; - default = []; + teamModule = + { config, ... }: + { + options = { + shortName = lib.mkOption { type = types.str; }; + scope = lib.mkOption { type = types.str; }; + enableFeatureFreezePing = lib.mkOption { + type = types.bool; + default = false; + }; + members = lib.mkOption { + type = types.listOf (types.submodule (import ./maintainer-module.nix { inherit lib; })); + default = [ ]; + }; + githubTeams = lib.mkOption { + type = types.listOf types.str; + default = [ ]; + }; }; }; - }; - checkTeam = team: uncheckedAttrs: - let - prefix = [ "lib" "maintainer-team" team ]; - checkedAttrs = (lib.modules.evalModules { - inherit prefix; - modules = [ - teamModule - { - _file = toString ../../maintainers/team-list.nix; - config = uncheckedAttrs; - } - ]; - }).config; - in checkedAttrs; + checkTeam = + team: uncheckedAttrs: + let + prefix = [ + "lib" + "maintainer-team" + team + ]; + checkedAttrs = + (lib.modules.evalModules { + inherit prefix; + modules = [ + teamModule + { + _file = toString ../../maintainers/team-list.nix; + config = uncheckedAttrs; + } + ]; + }).config; + in + checkedAttrs; checkedTeams = lib.mapAttrs checkTeam lib.teams; -in pkgs.writeTextDir "maintainer-teams.json" (builtins.toJSON checkedTeams) +in +pkgs.writeTextDir "maintainer-teams.json" (builtins.toJSON checkedTeams) diff --git a/lib/tests/test-with-nix.nix b/lib/tests/test-with-nix.nix index c8c3cae..8bc3f9a 100644 --- a/lib/tests/test-with-nix.nix +++ b/lib/tests/test-with-nix.nix @@ -1,12 +1,12 @@ /** - * Instantiate the library tests for a given Nix version. - * - * IMPORTANT: - * This is used by the github.com/NixOS/nix CI. - * - * Try not to change the interface of this file, or if you need to, ping the - * Nix maintainers for help. Thank you! - */ + Instantiate the library tests for a given Nix version. + + IMPORTANT: + This is used by the github.com/NixOS/nix CI. + + Try not to change the interface of this file, or if you need to, ping the + Nix maintainers for help. Thank you! +*/ { pkgs, lib, @@ -14,64 +14,64 @@ nix, }: -pkgs.runCommand "nixpkgs-lib-tests-nix-${nix.version}" { - buildInputs = [ - (import ./check-eval.nix) - # FIXME: reimplement maintainers and teams - # (import ./maintainers.nix { - # inherit pkgs; - # lib = import ../.; - # }) - # (import ./teams.nix { - # inherit pkgs; - # lib = import ../.; - # }) - (import ../path/tests { - inherit pkgs; - }) - ]; - nativeBuildInputs = [ - nix - pkgs.gitMinimal - ] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools; - strictDeps = true; -} '' - datadir="${nix}/share" - export TEST_ROOT=$(pwd)/test-tmp - export HOME=$(mktemp -d) - export NIX_BUILD_HOOK= - export NIX_CONF_DIR=$TEST_ROOT/etc - export NIX_LOCALSTATE_DIR=$TEST_ROOT/var - export NIX_LOG_DIR=$TEST_ROOT/var/log/nix - export NIX_STATE_DIR=$TEST_ROOT/var/nix - export NIX_STORE_DIR=$TEST_ROOT/store - export PAGER=cat - cacheDir=$TEST_ROOT/binary-cache - - nix-store --init - - cp -r ${../.} lib - echo "Running lib/tests/modules.sh" - bash lib/tests/modules.sh - - echo "Checking lib.version" - nix-instantiate lib -A version --eval || { - echo "lib.version does not evaluate when lib is isolated from the rest of the nixpkgs tree" - exit 1 +pkgs.runCommand "nixpkgs-lib-tests-nix-${nix.version}" + { + buildInputs = [ + (import ./check-eval.nix) + # FIXME: reimplement maintainers and teams + # (import ./maintainers.nix { + # inherit pkgs; + # lib = import ../.; + # }) + # (import ./teams.nix { + # inherit pkgs; + # lib = import ../.; + # }) + (import ../path/tests { inherit pkgs; }) + ]; + nativeBuildInputs = [ + nix + pkgs.gitMinimal + ] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools; + strictDeps = true; } + '' + datadir="${nix}/share" + export TEST_ROOT=$(pwd)/test-tmp + export HOME=$(mktemp -d) + export NIX_BUILD_HOOK= + export NIX_CONF_DIR=$TEST_ROOT/etc + export NIX_LOCALSTATE_DIR=$TEST_ROOT/var + export NIX_LOG_DIR=$TEST_ROOT/var/log/nix + export NIX_STATE_DIR=$TEST_ROOT/var/nix + export NIX_STORE_DIR=$TEST_ROOT/store + export PAGER=cat + cacheDir=$TEST_ROOT/binary-cache - echo "Running lib/tests/filesystem.sh" - TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh + nix-store --init - echo "Running lib/tests/sources.sh" - TEST_LIB=$PWD/lib bash lib/tests/sources.sh + cp -r ${../.} lib + echo "Running lib/tests/modules.sh" + bash lib/tests/modules.sh - echo "Running lib/fileset/tests.sh" - TEST_LIB=$PWD/lib bash lib/fileset/tests.sh + echo "Checking lib.version" + nix-instantiate lib -A version --eval || { + echo "lib.version does not evaluate when lib is isolated from the rest of the nixpkgs tree" + exit 1 + } - echo "Running lib/tests/systems.nix" - [[ $(nix-instantiate --eval --strict lib/tests/systems.nix | tee /dev/stderr) == '[ ]' ]]; + echo "Running lib/tests/filesystem.sh" + TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh - mkdir $out - echo success > $out/${nix.version} -'' + echo "Running lib/tests/sources.sh" + TEST_LIB=$PWD/lib bash lib/tests/sources.sh + + echo "Running lib/fileset/tests.sh" + TEST_LIB=$PWD/lib bash lib/fileset/tests.sh + + echo "Running lib/tests/systems.nix" + [[ $(nix-instantiate --eval --strict lib/tests/systems.nix | tee /dev/stderr) == '[ ]' ]]; + + mkdir $out + echo success > $out/${nix.version} + '' diff --git a/lib/trivial.nix b/lib/trivial.nix index 5b7a1ee..ea6c37a 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -11,8 +11,10 @@ let toBaseDigits version versionSuffix - warn; -in { + warn + ; +in +{ ## Simple (higher order) functions @@ -20,7 +22,6 @@ in { The identity function For when you need a function that does “nothing”. - # Inputs `x` @@ -41,7 +42,6 @@ in { Ignores the second argument. If called with only one argument, constructs a function that always returns a static value. - # Inputs `x` @@ -69,9 +69,7 @@ in { ::: */ - const = - x: - y: x; + const = x: y: x; /** Pipes a value through a list of functions, left to right. @@ -137,7 +135,6 @@ in { /** Concatenate two lists - # Inputs `x` @@ -170,7 +167,6 @@ in { /** boolean “or” - # Inputs `x` @@ -186,7 +182,6 @@ in { /** boolean “and” - # Inputs `x` @@ -202,7 +197,6 @@ in { /** boolean “exclusive or” - # Inputs `x` @@ -229,7 +223,6 @@ in { boolean values. Calling `toString` on a bool instead returns "1" and "" (sic!). - # Inputs `b` @@ -249,7 +242,6 @@ in { mergeAttrs :: attrs -> attrs -> attrs - # Inputs `x` @@ -260,7 +252,6 @@ in { : Right attribute set (higher precedence for equal keys) - # Examples :::{.example} ## `lib.trivial.mergeAttrs` usage example @@ -272,14 +263,11 @@ in { ::: */ - mergeAttrs = - x: - y: x // y; + mergeAttrs = x: y: x // y; /** Flip the order of the arguments of a binary function. - # Inputs `f` @@ -311,12 +299,13 @@ in { ::: */ - flip = f: a: b: f b a; + flip = + f: a: b: + f b a; /** Apply function if the supplied argument is non-null. - # Inputs `f` @@ -327,7 +316,6 @@ in { : Argument to check for null before passing it to `f` - # Examples :::{.example} ## `lib.trivial.mapNullable` usage example @@ -341,16 +329,25 @@ in { ::: */ - mapNullable = - f: - a: if a == null then a else f a; + mapNullable = f: a: if a == null then a else f a; # Pull in some builtins not included elsewhere. inherit (builtins) - pathExists readFile isBool - isInt isFloat add sub lessThan - seq deepSeq genericClosure - bitAnd bitOr bitXor; + pathExists + readFile + isBool + isInt + isFloat + add + sub + lessThan + seq + deepSeq + genericClosure + bitAnd + bitOr + bitXor + ; ## nixpkgs version strings @@ -385,7 +382,6 @@ in { Whether a feature is supported in all supported releases (at the time of release branch-off, if applicable). See `oldestSupportedRelease`. - # Inputs `release` @@ -393,9 +389,7 @@ in { : Release number of feature introduction as an integer, e.g. 2111 for 21.11. Set it to the upcoming release, matching the nixpkgs/.version file. */ - isInOldestRelease = - release: - release <= lib.trivial.oldestSupportedRelease; + isInOldestRelease = release: release <= lib.trivial.oldestSupportedRelease; /** Returns the current nixpkgs release code name. @@ -409,16 +403,15 @@ in { Returns the current nixpkgs version suffix as string. */ versionSuffix = - let suffixFile = ../.version-suffix; - in if pathExists suffixFile - then lib.strings.fileContents suffixFile - else "pre-git"; + let + suffixFile = ../.version-suffix; + in + if pathExists suffixFile then lib.strings.fileContents suffixFile else "pre-git"; /** Attempts to return the the current revision of nixpkgs and returns the supplied default value otherwise. - # Inputs `default` @@ -435,11 +428,14 @@ in { default: let revisionFile = "${toString ./..}/.git-revision"; - gitRepo = "${toString ./..}/.git"; - in if lib.pathIsGitRepo gitRepo - then lib.commitIdFromGitRepo gitRepo - else if lib.pathExists revisionFile then lib.fileContents revisionFile - else default; + gitRepo = "${toString ./..}/.git"; + in + if lib.pathIsGitRepo gitRepo then + lib.commitIdFromGitRepo gitRepo + else if lib.pathExists revisionFile then + lib.fileContents revisionFile + else + default; nixpkgsVersion = warn "lib.nixpkgsVersion is a deprecated alias of lib.version." version; @@ -466,14 +462,13 @@ in { inPureEvalMode :: bool ``` */ - inPureEvalMode = ! builtins ? currentSystem; + inPureEvalMode = !builtins ? currentSystem; ## Integer operations /** Return minimum of two numbers. - # Inputs `x` @@ -489,7 +484,6 @@ in { /** Return maximum of two numbers. - # Inputs `x` @@ -505,7 +499,6 @@ in { /** Integer modulus - # Inputs `base` @@ -516,7 +509,6 @@ in { : 2\. Function argument - # Examples :::{.example} ## `lib.trivial.mod` usage example @@ -532,7 +524,6 @@ in { */ mod = base: int: base - (int * (builtins.div base int)); - ## Comparisons /** @@ -542,7 +533,6 @@ in { a == b, compare a b => 0 a > b, compare a b => 1 - # Inputs `a` @@ -553,12 +543,14 @@ in { : 2\. Function argument */ - compare = a: b: - if a < b - then -1 - else if a > b - then 1 - else 0; + compare = + a: b: + if a < b then + -1 + else if a > b then + 1 + else + 0; /** Split type into two subtypes by predicate `p`, take all elements @@ -566,7 +558,6 @@ in { second subtype, compare elements of a single subtype with `yes` and `no` respectively. - # Inputs `p` @@ -615,15 +606,16 @@ in { */ splitByAndCompare = p: yes: no: a: b: - if p a - then if p b then yes a b else -1 - else if p b then 1 else no a b; - + if p a then + if p b then yes a b else -1 + else if p b then + 1 + else + no a b; /** Reads a JSON file. - # Inputs `path` @@ -636,13 +628,11 @@ in { importJSON :: path -> any ``` */ - importJSON = path: - builtins.fromJSON (builtins.readFile path); + importJSON = path: builtins.fromJSON (builtins.readFile path); /** Reads a TOML file. - # Inputs `path` @@ -655,8 +645,7 @@ in { importTOML :: path -> any ``` */ - importTOML = path: - builtins.fromTOML (builtins.readFile path); + importTOML = path: builtins.fromTOML (builtins.readFile path); ## Warnings @@ -698,14 +687,23 @@ in { ``` */ warn = - if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"] - then msg: builtins.trace "warning: ${msg}" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.") - else msg: builtins.trace "warning: ${msg}"; + if + lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") [ + "1" + "true" + "yes" + ] + then + msg: + builtins.trace "warning: ${msg}" ( + abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors." + ) + else + msg: builtins.trace "warning: ${msg}"; /** Like warn, but only warn when the first argument is `true`. - # Inputs `cond` @@ -731,7 +729,6 @@ in { /** Like warnIf, but negated (warn if the first argument is `false`). - # Inputs `cond` @@ -765,7 +762,6 @@ in { Calls can be juxtaposed using function application, as `(r: r) a = a`, so `(r: r) (r: r) a = a`, and so forth. - # Inputs `cond` @@ -799,7 +795,6 @@ in { /** Like throwIfNot, but negated (throw if the first argument is `true`). - # Inputs `cond` @@ -821,7 +816,6 @@ in { /** Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise. - # Inputs `msg` @@ -855,12 +849,13 @@ in { ::: */ - checkListOfEnum = msg: valid: given: + checkListOfEnum = + msg: valid: given: let unexpected = lib.subtractLists valid given; in - lib.throwIfNot (unexpected == []) - "${msg}: ${builtins.concatStringsSep ", " (builtins.map builtins.toString unexpected)} unexpected; valid ones: ${builtins.concatStringsSep ", " (builtins.map builtins.toString valid)}"; + lib.throwIfNot (unexpected == [ ]) + "${msg}: ${builtins.concatStringsSep ", " (builtins.map builtins.toString unexpected)} unexpected; valid ones: ${builtins.concatStringsSep ", " (builtins.map builtins.toString valid)}"; info = msg: builtins.trace "INFO: ${msg}"; @@ -879,7 +874,6 @@ in { function of the { a, b ? foo, ... }: format, but some facilities like callPackage expect to be able to query expected arguments. - # Inputs `f` @@ -890,11 +884,11 @@ in { : 2\. Function argument */ - setFunctionArgs = f: args: - { # TODO: Should we add call-time "type" checking like built in? - __functor = self: f; - __functionArgs = args; - }; + setFunctionArgs = f: args: { + # TODO: Should we add call-time "type" checking like built in? + __functor = self: f; + __functionArgs = args; + }; /** Extract the expected function arguments from a function. @@ -903,37 +897,35 @@ in { has the same return type and semantics as builtins.functionArgs. setFunctionArgs : (a → b) → Map String Bool. - # Inputs `f` : 1\. Function argument */ - functionArgs = f: - if f ? __functor - then f.__functionArgs or (functionArgs (f.__functor f)) - else builtins.functionArgs f; + functionArgs = + f: + if f ? __functor then + f.__functionArgs or (functionArgs (f.__functor f)) + else + builtins.functionArgs f; /** Check whether something is a function or something annotated with function args. - # Inputs `f` : 1\. Function argument */ - isFunction = f: builtins.isFunction f || - (f ? __functor && isFunction (f.__functor f)); + isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f)); /** `mirrorFunctionArgs f g` creates a new function `g'` with the same behavior as `g` (`g' x == g x`) but its function arguments mirroring `f` (`lib.functionArgs g' == lib.functionArgs f`). - # Inputs `f` @@ -979,21 +971,18 @@ in { let fArgs = functionArgs f; in - g: - setFunctionArgs g fArgs; + g: setFunctionArgs g fArgs; /** Turns any non-callable values into constant functions. Returns callable values as is. - # Inputs `v` : Any value - # Examples :::{.example} ## `lib.trivial.toFunction` usage example @@ -1008,11 +997,7 @@ in { ::: */ - toFunction = - v: - if isFunction v - then v - else k: v; + toFunction = v: if isFunction v then v else k: v; /** Convert the given positive integer to a string of its hexadecimal @@ -1024,20 +1009,19 @@ in { toHexString 250 => "FA" */ - toHexString = let - hexDigits = { - "10" = "A"; - "11" = "B"; - "12" = "C"; - "13" = "D"; - "14" = "E"; - "15" = "F"; - }; - toHexDigit = d: - if d < 10 - then toString d - else hexDigits.${toString d}; - in i: lib.concatMapStrings toHexDigit (toBaseDigits 16 i); + toHexString = + let + hexDigits = { + "10" = "A"; + "11" = "B"; + "12" = "C"; + "13" = "D"; + "14" = "E"; + "15" = "F"; + }; + toHexDigit = d: if d < 10 then toString d else hexDigits.${toString d}; + in + i: lib.concatMapStrings toHexDigit (toBaseDigits 16 i); /** `toBaseDigits base i` converts the positive integer i to a list of its @@ -1049,7 +1033,6 @@ in { toBaseDigits 16 250 => [ 15 10 ] - # Inputs `base` @@ -1060,21 +1043,23 @@ in { : 2\. Function argument */ - toBaseDigits = base: i: + toBaseDigits = + base: i: let - go = i: - if i < base - then [i] + go = + i: + if i < base then + [ i ] else let r = i - ((i / base) * base); q = (i - r) / base; in - [r] ++ go q; + [ r ] ++ go q; in - assert (isInt base); - assert (isInt i); - assert (base >= 2); - assert (i >= 0); - lib.reverseList (go i); + assert (isInt base); + assert (isInt i); + assert (base >= 2); + assert (i >= 0); + lib.reverseList (go i); } diff --git a/lib/types.nix b/lib/types.nix index 518b987..ba47b4b 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -57,995 +57,1213 @@ let hasInfix isStringLike ; - inherit (lib.trivial) - boolToString - ; + inherit (lib.trivial) boolToString; - inherit (lib.modules) - mergeDefinitions - fixupOptionType - mergeOptionDecls - ; + inherit (lib.modules) mergeDefinitions fixupOptionType mergeOptionDecls; - inAttrPosSuffix = v: name: - let pos = builtins.unsafeGetAttrPos name v; in + inAttrPosSuffix = + v: name: + let + pos = builtins.unsafeGetAttrPos name v; + in if pos == null then "" else " at ${pos.file}:${toString pos.line}:${toString pos.column}"; - outer_types = -rec { - __attrsFailEvaluation = true; - isType = type: x: (x._type or "") == type; + outer_types = rec { + __attrsFailEvaluation = true; + isType = type: x: (x._type or "") == type; - setType = typeName: value: value // { - _type = typeName; - }; + setType = typeName: value: value // { _type = typeName; }; - - # Default type merging function - # takes two type functors and return the merged type - defaultTypeMerge = f: f': - let wrapped = f.wrapped.typeMerge f'.wrapped.functor; + # Default type merging function + # takes two type functors and return the merged type + defaultTypeMerge = + f: f': + let + wrapped = f.wrapped.typeMerge f'.wrapped.functor; payload = f.binOp f.payload f'.payload; - in - # cannot merge different types - if f.name != f'.name - then null - # simple types - else if (f.wrapped == null && f'.wrapped == null) - && (f.payload == null && f'.payload == null) - then f.type - # composed types - else if (f.wrapped != null && f'.wrapped != null) && (wrapped != null) - then f.type wrapped - # value types - else if (f.payload != null && f'.payload != null) && (payload != null) - then f.type payload - else null; + in + # cannot merge different types + if f.name != f'.name then + null + # simple types + else if (f.wrapped == null && f'.wrapped == null) && (f.payload == null && f'.payload == null) then + f.type + # composed types + else if (f.wrapped != null && f'.wrapped != null) && (wrapped != null) then + f.type wrapped + # value types + else if (f.payload != null && f'.payload != null) && (payload != null) then + f.type payload + else + null; - # Default type functor - defaultFunctor = name: { - inherit name; - type = types.${name} or null; - wrapped = null; - payload = null; - binOp = a: b: null; - }; - - isOptionType = isType "option-type"; - mkOptionType = - { # Human-readable representation of the type, should be equivalent to - # the type function name. - name - , # Description of the type, defined recursively by embedding the wrapped type if any. - description ? null - # A hint for whether or not this description needs parentheses. Possible values: - # - "noun": a noun phrase - # Example description: "positive integer", - # - "conjunction": a phrase with a potentially ambiguous "or" connective - # Example description: "int or string" - # - "composite": a phrase with an "of" connective - # Example description: "list of string" - # - "nonRestrictiveClause": a noun followed by a comma and a clause - # Example description: "positive integer, meaning >0" - # See the `optionDescriptionPhrase` function. - , descriptionClass ? null - , # DO NOT USE WITHOUT KNOWING WHAT YOU ARE DOING! - # Function applied to each definition that must return false when a definition - # does not match the type. It should not check more than the root of the value, - # because checking nested values reduces laziness, leading to unnecessary - # infinite recursions in the module system. - # Further checks of nested values should be performed by throwing in - # the merge function. - # Strict and deep type checking can be performed by calling lib.deepSeq on - # the merged value. - # - # See https://github.com/NixOS/nixpkgs/pull/6794 that introduced this change, - # https://github.com/NixOS/nixpkgs/pull/173568 and - # https://github.com/NixOS/nixpkgs/pull/168295 that attempted to revert this, - # https://github.com/NixOS/nixpkgs/issues/191124 and - # https://github.com/NixOS/nixos-search/issues/391 for what happens if you ignore - # this disclaimer. - check ? (x: true) - , # Merge a list of definitions together into a single value. - # This function is called with two arguments: the location of - # the option in the configuration as a list of strings - # (e.g. ["boot" "loader "grub" "enable"]), and a list of - # definition values and locations (e.g. [ { file = "/foo.nix"; - # value = 1; } { file = "/bar.nix"; value = 2 } ]). - merge ? mergeDefaultOption - , # Whether this type has a value representing nothingness. If it does, - # this should be a value of the form { value = ; } - # If it doesn't, this should be {} - # This may be used when a value is required for `mkIf false`. This allows the extra laziness in e.g. `lazyAttrsOf`. - emptyValue ? {} - , # Return a flat attrset of sub-options. Used to generate - # documentation. - getSubOptions ? prefix: {} - , # List of modules if any, or null if none. - getSubModules ? null - , # Function for building the same option type with a different list of - # modules. - substSubModules ? m: null - , # Function that merge type declarations. - # internal, takes a functor as argument and returns the merged type. - # returning null means the type is not mergeable - typeMerge ? defaultTypeMerge functor - , # The type functor. - # internal, representation of the type as an attribute set. - # name: name of the type - # type: type function. - # wrapped: the type wrapped in case of compound types. - # payload: values of the type, two payloads of the same type must be - # combinable with the binOp binary operation. - # binOp: binary operation that merge two payloads of the same type. - functor ? defaultFunctor name - , # The deprecation message to display when this type is used by an option - # If null, the type isn't deprecated - deprecationMessage ? null - , # The types that occur in the definition of this type. This is used to - # issue deprecation warnings recursively. Can also be used to reuse - # nested types - nestedTypes ? {} - }: - { _type = "option-type"; - inherit - name check merge emptyValue getSubOptions getSubModules substSubModules - typeMerge functor deprecationMessage nestedTypes descriptionClass; - description = if description == null then name else description; + # Default type functor + defaultFunctor = name: { + inherit name; + type = types.${name} or null; + wrapped = null; + payload = null; + binOp = a: b: null; }; - # optionDescriptionPhrase :: (str -> bool) -> optionType -> str - # - # Helper function for producing unambiguous but readable natural language - # descriptions of types. - # - # Parameters - # - # optionDescriptionPhase unparenthesize optionType - # - # `unparenthesize`: A function from descriptionClass string to boolean. - # It must return true when the class of phrase will fit unambiguously into - # the description of the caller. - # - # `optionType`: The option type to parenthesize or not. - # The option whose description we're returning. - # - # Return value - # - # The description of the `optionType`, with parentheses if there may be an - # ambiguity. - optionDescriptionPhrase = unparenthesize: t: - if unparenthesize (t.descriptionClass or null) - then t.description - else "(${t.description})"; + isOptionType = isType "option-type"; + mkOptionType = + { + # Human-readable representation of the type, should be equivalent to + # the type function name. + name, + # Description of the type, defined recursively by embedding the wrapped type if any. + description ? null, + # A hint for whether or not this description needs parentheses. Possible values: + # - "noun": a noun phrase + # Example description: "positive integer", + # - "conjunction": a phrase with a potentially ambiguous "or" connective + # Example description: "int or string" + # - "composite": a phrase with an "of" connective + # Example description: "list of string" + # - "nonRestrictiveClause": a noun followed by a comma and a clause + # Example description: "positive integer, meaning >0" + # See the `optionDescriptionPhrase` function. + descriptionClass ? null, + # DO NOT USE WITHOUT KNOWING WHAT YOU ARE DOING! + # Function applied to each definition that must return false when a definition + # does not match the type. It should not check more than the root of the value, + # because checking nested values reduces laziness, leading to unnecessary + # infinite recursions in the module system. + # Further checks of nested values should be performed by throwing in + # the merge function. + # Strict and deep type checking can be performed by calling lib.deepSeq on + # the merged value. + # + # See https://github.com/NixOS/nixpkgs/pull/6794 that introduced this change, + # https://github.com/NixOS/nixpkgs/pull/173568 and + # https://github.com/NixOS/nixpkgs/pull/168295 that attempted to revert this, + # https://github.com/NixOS/nixpkgs/issues/191124 and + # https://github.com/NixOS/nixos-search/issues/391 for what happens if you ignore + # this disclaimer. + check ? (x: true), + # Merge a list of definitions together into a single value. + # This function is called with two arguments: the location of + # the option in the configuration as a list of strings + # (e.g. ["boot" "loader "grub" "enable"]), and a list of + # definition values and locations (e.g. [ { file = "/foo.nix"; + # value = 1; } { file = "/bar.nix"; value = 2 } ]). + merge ? mergeDefaultOption, + # Whether this type has a value representing nothingness. If it does, + # this should be a value of the form { value = ; } + # If it doesn't, this should be {} + # This may be used when a value is required for `mkIf false`. This allows the extra laziness in e.g. `lazyAttrsOf`. + emptyValue ? { }, + # Return a flat attrset of sub-options. Used to generate + # documentation. + getSubOptions ? prefix: { }, + # List of modules if any, or null if none. + getSubModules ? null, + # Function for building the same option type with a different list of + # modules. + substSubModules ? m: null, + # Function that merge type declarations. + # internal, takes a functor as argument and returns the merged type. + # returning null means the type is not mergeable + typeMerge ? defaultTypeMerge functor, + # The type functor. + # internal, representation of the type as an attribute set. + # name: name of the type + # type: type function. + # wrapped: the type wrapped in case of compound types. + # payload: values of the type, two payloads of the same type must be + # combinable with the binOp binary operation. + # binOp: binary operation that merge two payloads of the same type. + functor ? defaultFunctor name, + # The deprecation message to display when this type is used by an option + # If null, the type isn't deprecated + deprecationMessage ? null, + # The types that occur in the definition of this type. This is used to + # issue deprecation warnings recursively. Can also be used to reuse + # nested types + nestedTypes ? { }, + }: + { + _type = "option-type"; + inherit + name + check + merge + emptyValue + getSubOptions + getSubModules + substSubModules + typeMerge + functor + deprecationMessage + nestedTypes + descriptionClass + ; + description = if description == null then name else description; + }; - # When adding new types don't forget to document them in - # nixos/doc/manual/development/option-types.xml! - types = rec { + # optionDescriptionPhrase :: (str -> bool) -> optionType -> str + # + # Helper function for producing unambiguous but readable natural language + # descriptions of types. + # + # Parameters + # + # optionDescriptionPhase unparenthesize optionType + # + # `unparenthesize`: A function from descriptionClass string to boolean. + # It must return true when the class of phrase will fit unambiguously into + # the description of the caller. + # + # `optionType`: The option type to parenthesize or not. + # The option whose description we're returning. + # + # Return value + # + # The description of the `optionType`, with parentheses if there may be an + # ambiguity. + optionDescriptionPhrase = + unparenthesize: t: + if unparenthesize (t.descriptionClass or null) then t.description else "(${t.description})"; - raw = mkOptionType { - name = "raw"; - description = "raw value"; - descriptionClass = "noun"; - check = value: true; - merge = mergeOneOption; - }; + # When adding new types don't forget to document them in + # nixos/doc/manual/development/option-types.xml! + types = rec { - anything = mkOptionType { - name = "anything"; - description = "anything"; - descriptionClass = "noun"; - check = value: true; - merge = loc: defs: - let - getType = value: - if isAttrs value && isStringLike value - then "stringCoercibleSet" - else builtins.typeOf value; + raw = mkOptionType { + name = "raw"; + description = "raw value"; + descriptionClass = "noun"; + check = value: true; + merge = mergeOneOption; + }; - # Returns the common type of all definitions, throws an error if they - # don't have the same type - commonType = foldl' (type: def: - if getType def.value == type - then type - else throw "The option `${showOption loc}' has conflicting option types in ${showFiles (getFiles defs)}" - ) (getType (head defs).value) defs; + anything = mkOptionType { + name = "anything"; + description = "anything"; + descriptionClass = "noun"; + check = value: true; + merge = + loc: defs: + let + getType = + value: if isAttrs value && isStringLike value then "stringCoercibleSet" else builtins.typeOf value; - mergeFunction = { - # Recursively merge attribute sets - set = (attrsOf anything).merge; - # Safe and deterministic behavior for lists is to only accept one definition - # listOf only used to apply mkIf and co. - list = - if length defs > 1 - then throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}." - else (listOf anything).merge; - # This is the type of packages, only accept a single definition - stringCoercibleSet = mergeOneOption; - lambda = loc: defs: arg: anything.merge - (loc ++ [ "" ]) - (map (def: { - file = def.file; - value = def.value arg; - }) defs); - # Otherwise fall back to only allowing all equal definitions - }.${commonType} or mergeEqualOption; - in mergeFunction loc defs; - }; + # Returns the common type of all definitions, throws an error if they + # don't have the same type + commonType = foldl' ( + type: def: + if getType def.value == type then + type + else + throw "The option `${showOption loc}' has conflicting option types in ${showFiles (getFiles defs)}" + ) (getType (head defs).value) defs; - unspecified = mkOptionType { - name = "unspecified"; - description = "unspecified value"; - descriptionClass = "noun"; - }; + mergeFunction = + { + # Recursively merge attribute sets + set = (attrsOf anything).merge; + # Safe and deterministic behavior for lists is to only accept one definition + # listOf only used to apply mkIf and co. + list = + if length defs > 1 then + throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}." + else + (listOf anything).merge; + # This is the type of packages, only accept a single definition + stringCoercibleSet = mergeOneOption; + lambda = + loc: defs: arg: + anything.merge (loc ++ [ "" ]) ( + map (def: { + file = def.file; + value = def.value arg; + }) defs + ); + # Otherwise fall back to only allowing all equal definitions + } + .${commonType} or mergeEqualOption; + in + mergeFunction loc defs; + }; - bool = mkOptionType { - name = "bool"; - description = "boolean"; - descriptionClass = "noun"; - check = isBool; - merge = mergeEqualOption; - }; + unspecified = mkOptionType { + name = "unspecified"; + description = "unspecified value"; + descriptionClass = "noun"; + }; - boolByOr = mkOptionType { - name = "boolByOr"; - description = "boolean (merged using or)"; - descriptionClass = "noun"; - check = isBool; - merge = loc: defs: - foldl' - (result: def: + bool = mkOptionType { + name = "bool"; + description = "boolean"; + descriptionClass = "noun"; + check = isBool; + merge = mergeEqualOption; + }; + + boolByOr = mkOptionType { + name = "boolByOr"; + description = "boolean (merged using or)"; + descriptionClass = "noun"; + check = isBool; + merge = + loc: defs: + foldl' ( + result: def: # Under the assumption that .check always runs before merge, we can assume that all defs.*.value # have been forced, and therefore we assume we don't introduce order-dependent strictness here result || def.value - ) - false - defs; - }; + ) false defs; + }; - int = mkOptionType { - name = "int"; - description = "signed integer"; - descriptionClass = "noun"; - check = isInt; - merge = mergeEqualOption; - }; + int = mkOptionType { + name = "int"; + description = "signed integer"; + descriptionClass = "noun"; + check = isInt; + merge = mergeEqualOption; + }; - # Specialized subdomains of int - ints = - let - betweenDesc = lowest: highest: - "${toString lowest} and ${toString highest} (both inclusive)"; - between = lowest: highest: - assert lib.assertMsg (lowest <= highest) - "ints.between: lowest must be smaller than highest"; - addCheck int (x: x >= lowest && x <= highest) // { - name = "intBetween"; - description = "integer between ${betweenDesc lowest highest}"; + # Specialized subdomains of int + ints = + let + betweenDesc = lowest: highest: "${toString lowest} and ${toString highest} (both inclusive)"; + between = + lowest: highest: + assert lib.assertMsg (lowest <= highest) "ints.between: lowest must be smaller than highest"; + addCheck int (x: x >= lowest && x <= highest) + // { + name = "intBetween"; + description = "integer between ${betweenDesc lowest highest}"; + }; + ign = + lowest: highest: name: docStart: + between lowest highest + // { + inherit name; + description = docStart + "; between ${betweenDesc lowest highest}"; + }; + unsign = + bit: range: ign 0 (range - 1) "unsignedInt${toString bit}" "${toString bit} bit unsigned integer"; + sign = + bit: range: + ign (0 - (range / 2)) ( + range / 2 - 1 + ) "signedInt${toString bit}" "${toString bit} bit signed integer"; + + in + { + # TODO: Deduplicate with docs in nixos/doc/manual/development/option-types.section.md + /** + An int with a fixed range. + + # Example + :::{.example} + ## `lib.types.ints.between` usage example + + ```nix + (ints.between 0 100).check (-1) + => false + (ints.between 0 100).check (101) + => false + (ints.between 0 0).check 0 + => true + ``` + + ::: + */ + inherit between; + + unsigned = addCheck types.int (x: x >= 0) // { + name = "unsignedInt"; + description = "unsigned integer, meaning >=0"; + descriptionClass = "nonRestrictiveClause"; }; - ign = lowest: highest: name: docStart: - between lowest highest // { - inherit name; - description = docStart + "; between ${betweenDesc lowest highest}"; + positive = addCheck types.int (x: x > 0) // { + name = "positiveInt"; + description = "positive integer, meaning >0"; + descriptionClass = "nonRestrictiveClause"; }; - unsign = bit: range: ign 0 (range - 1) - "unsignedInt${toString bit}" "${toString bit} bit unsigned integer"; - sign = bit: range: ign (0 - (range / 2)) (range / 2 - 1) - "signedInt${toString bit}" "${toString bit} bit signed integer"; + u8 = unsign 8 256; + u16 = unsign 16 65536; + # the biggest int Nix accepts is 2^63 - 1 (9223372036854775808) + # the smallest int Nix accepts is -2^63 (-9223372036854775807) + u32 = unsign 32 4294967296; + # u64 = unsign 64 18446744073709551616; - in { - # TODO: Deduplicate with docs in nixos/doc/manual/development/option-types.section.md - /** - An int with a fixed range. + s8 = sign 8 256; + s16 = sign 16 65536; + s32 = sign 32 4294967296; + }; - # Example - :::{.example} - ## `lib.types.ints.between` usage example + # Alias of u16 for a port number + port = ints.u16; - ```nix - (ints.between 0 100).check (-1) - => false - (ints.between 0 100).check (101) - => false - (ints.between 0 0).check 0 - => true - ``` + float = mkOptionType { + name = "float"; + description = "floating point number"; + descriptionClass = "noun"; + check = isFloat; + merge = mergeEqualOption; + }; - ::: - */ - inherit between; + number = either int float; - unsigned = addCheck types.int (x: x >= 0) // { - name = "unsignedInt"; - description = "unsigned integer, meaning >=0"; + numbers = + let + betweenDesc = + lowest: highest: "${builtins.toJSON lowest} and ${builtins.toJSON highest} (both inclusive)"; + in + { + between = + lowest: highest: + assert lib.assertMsg (lowest <= highest) "numbers.between: lowest must be smaller than highest"; + addCheck number (x: x >= lowest && x <= highest) + // { + name = "numberBetween"; + description = "integer or floating point number between ${betweenDesc lowest highest}"; + }; + + nonnegative = addCheck number (x: x >= 0) // { + name = "numberNonnegative"; + description = "nonnegative integer or floating point number, meaning >=0"; + descriptionClass = "nonRestrictiveClause"; + }; + positive = addCheck number (x: x > 0) // { + name = "numberPositive"; + description = "positive integer or floating point number, meaning >0"; + descriptionClass = "nonRestrictiveClause"; + }; + }; + + str = mkOptionType { + name = "str"; + description = "string"; + descriptionClass = "noun"; + check = isString; + merge = mergeEqualOption; + }; + + nonEmptyStr = mkOptionType { + name = "nonEmptyStr"; + description = "non-empty string"; + descriptionClass = "noun"; + check = x: str.check x && builtins.match "[ \t\n]*" x == null; + inherit (str) merge; + }; + + # Allow a newline character at the end and trim it in the merge function. + singleLineStr = + let + inherit (strMatching "[^\n\r]*\n?") check merge; + in + mkOptionType { + name = "singleLineStr"; + description = "(optionally newline-terminated) single-line string"; + descriptionClass = "noun"; + inherit check; + merge = loc: defs: lib.removeSuffix "\n" (merge loc defs); + }; + + strMatching = + pattern: + mkOptionType { + name = "strMatching ${escapeNixString pattern}"; + description = "string matching the pattern ${pattern}"; + descriptionClass = "noun"; + check = x: str.check x && builtins.match pattern x != null; + inherit (str) merge; + }; + + # Merge multiple definitions by concatenating them (with the given + # separator between the values). + separatedString = + sep: + mkOptionType rec { + name = "separatedString"; + description = + if sep == "" then + "Concatenated string" # for types.string. + else + "strings concatenated with ${builtins.toJSON sep}"; + descriptionClass = "noun"; + check = isString; + merge = loc: defs: concatStringsSep sep (getValues defs); + functor = (defaultFunctor name) // { + payload = sep; + binOp = sepLhs: sepRhs: if sepLhs == sepRhs then sepLhs else null; + }; + }; + + lines = separatedString "\n"; + commas = separatedString ","; + envVar = separatedString ":"; + + # Deprecated; should not be used because it quietly concatenates + # strings, which is usually not what you want. + # We use a lib.warn because `deprecationMessage` doesn't trigger in nested types such as `attrsOf string` + string = + lib.warn + "The type `types.string` is deprecated. See https://github.com/NixOS/nixpkgs/pull/66346 for better alternative types." + (separatedString "" // { name = "string"; }); + + passwdEntry = + entryType: + addCheck entryType (str: !(hasInfix ":" str || hasInfix "\n" str)) + // { + name = "passwdEntry ${entryType.name}"; + description = "${ + optionDescriptionPhrase (class: class == "noun") entryType + }, not containing newlines or colons"; descriptionClass = "nonRestrictiveClause"; }; - positive = addCheck types.int (x: x > 0) // { - name = "positiveInt"; - description = "positive integer, meaning >0"; - descriptionClass = "nonRestrictiveClause"; - }; - u8 = unsign 8 256; - u16 = unsign 16 65536; - # the biggest int Nix accepts is 2^63 - 1 (9223372036854775808) - # the smallest int Nix accepts is -2^63 (-9223372036854775807) - u32 = unsign 32 4294967296; - # u64 = unsign 64 18446744073709551616; - s8 = sign 8 256; - s16 = sign 16 65536; - s32 = sign 32 4294967296; + attrs = mkOptionType { + name = "attrs"; + description = "attribute set"; + check = isAttrs; + merge = loc: foldl' (res: def: res // def.value) { }; + emptyValue = { + value = { }; + }; }; - # Alias of u16 for a port number - port = ints.u16; + # A package is a top-level store path (/nix/store/hash-name). This includes: + # - derivations + # - more generally, attribute sets with an `outPath` or `__toString` attribute + # pointing to a store path, e.g. flake inputs + # - strings with context, e.g. "${pkgs.foo}" or (toString pkgs.foo) + # - hardcoded store path literals (/nix/store/hash-foo) or strings without context + # ("/nix/store/hash-foo"). These get a context added to them using builtins.storePath. + # If you don't need a *top-level* store path, consider using pathInStore instead. + package = mkOptionType { + name = "package"; + descriptionClass = "noun"; + check = x: isDerivation x || isStorePath x; + merge = + loc: defs: + let + res = mergeOneOption loc defs; + in + if builtins.isPath res || (builtins.isString res && !builtins.hasContext res) then + toDerivation res + else + res; + }; - float = mkOptionType { - name = "float"; - description = "floating point number"; - descriptionClass = "noun"; - check = isFloat; - merge = mergeEqualOption; - }; + shellPackage = package // { + check = x: isDerivation x && hasAttr "shellPath" x; + }; - number = either int float; + pkgs = addCheck ( + unique { message = "A Nixpkgs pkgs set can not be merged with another pkgs set."; } attrs + // { + name = "pkgs"; + descriptionClass = "noun"; + description = "Nixpkgs package set"; + } + ) (x: (x._type or null) == "pkgs"); - numbers = let - betweenDesc = lowest: highest: - "${builtins.toJSON lowest} and ${builtins.toJSON highest} (both inclusive)"; - in { - between = lowest: highest: - assert lib.assertMsg (lowest <= highest) - "numbers.between: lowest must be smaller than highest"; - addCheck number (x: x >= lowest && x <= highest) // { - name = "numberBetween"; - description = "integer or floating point number between ${betweenDesc lowest highest}"; + path = mkOptionType { + name = "path"; + descriptionClass = "noun"; + check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/"; + merge = mergeEqualOption; + }; + + pathInStore = mkOptionType { + name = "pathInStore"; + description = "path in the Nix store"; + descriptionClass = "noun"; + check = x: isStringLike x && builtins.match "${builtins.storeDir}/[^.].*" (toString x) != null; + merge = mergeEqualOption; + }; + + listOf = + elemType: + mkOptionType rec { + name = "listOf"; + description = "list of ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = isList; + merge = + loc: defs: + map (x: x.value) ( + filter (x: x ? value) ( + concatLists ( + imap1 ( + n: def: + imap1 ( + m: def': + (mergeDefinitions (loc ++ [ "[definition ${toString n}-entry ${toString m}]" ]) elemType [ + { + inherit (def) file; + value = def'; + } + ]).optionalValue + ) def.value + ) defs + ) + ) + ); + emptyValue = { + value = [ ]; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "*" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: listOf (elemType.substSubModules m); + functor = (defaultFunctor name) // { + wrapped = elemType; + }; + nestedTypes.elemType = elemType; }; - nonnegative = addCheck number (x: x >= 0) // { - name = "numberNonnegative"; - description = "nonnegative integer or floating point number, meaning >=0"; - descriptionClass = "nonRestrictiveClause"; - }; - positive = addCheck number (x: x > 0) // { - name = "numberPositive"; - description = "positive integer or floating point number, meaning >0"; - descriptionClass = "nonRestrictiveClause"; - }; - }; + nonEmptyListOf = + elemType: + let + list = addCheck (types.listOf elemType) (l: l != [ ]); + in + list + // { + description = "non-empty ${optionDescriptionPhrase (class: class == "noun") list}"; + emptyValue = { }; # no .value attr, meaning unset + substSubModules = m: nonEmptyListOf (elemType.substSubModules m); + }; - str = mkOptionType { - name = "str"; - description = "string"; - descriptionClass = "noun"; - check = isString; - merge = mergeEqualOption; - }; + attrsOf = + elemType: + mkOptionType rec { + name = "attrsOf"; + description = "attribute set of ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = isAttrs; + merge = + loc: defs: + mapAttrs (n: v: v.value) ( + filterAttrs (n: v: v ? value) ( + zipAttrsWith (name: defs: (mergeDefinitions (loc ++ [ name ]) elemType defs).optionalValue) + # Push down position info. + ( + map ( + def: + mapAttrs (n: v: { + inherit (def) file; + value = v; + }) def.value + ) defs + ) + ) + ); + emptyValue = { + value = { }; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: attrsOf (elemType.substSubModules m); + functor = (defaultFunctor name) // { + wrapped = elemType; + }; + nestedTypes.elemType = elemType; + }; - nonEmptyStr = mkOptionType { - name = "nonEmptyStr"; - description = "non-empty string"; - descriptionClass = "noun"; - check = x: str.check x && builtins.match "[ \t\n]*" x == null; - inherit (str) merge; - }; + # A version of attrsOf that's lazy in its values at the expense of + # conditional definitions not working properly. E.g. defining a value with + # `foo.attr = mkIf false 10`, then `foo ? attr == true`, whereas with + # attrsOf it would correctly be `false`. Accessing `foo.attr` would throw an + # error that it's not defined. Use only if conditional definitions don't make sense. + lazyAttrsOf = + elemType: + mkOptionType rec { + name = "lazyAttrsOf"; + description = "lazy attribute set of ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = isAttrs; + merge = + loc: defs: + zipAttrsWith + ( + name: defs: + let + merged = mergeDefinitions (loc ++ [ name ]) elemType defs; + in + # mergedValue will trigger an appropriate error when accessed + merged.optionalValue.value or elemType.emptyValue.value or merged.mergedValue + ) + # Push down position info. + ( + map ( + def: + mapAttrs (n: v: { + inherit (def) file; + value = v; + }) def.value + ) defs + ); + emptyValue = { + value = { }; + }; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: lazyAttrsOf (elemType.substSubModules m); + functor = (defaultFunctor name) // { + wrapped = elemType; + }; + nestedTypes.elemType = elemType; + }; - # Allow a newline character at the end and trim it in the merge function. - singleLineStr = - let - inherit (strMatching "[^\n\r]*\n?") check merge; - in - mkOptionType { - name = "singleLineStr"; - description = "(optionally newline-terminated) single-line string"; - descriptionClass = "noun"; - inherit check; - merge = loc: defs: - lib.removeSuffix "\n" (merge loc defs); - }; + # TODO: deprecate this in the future: + loaOf = + elemType: + types.attrsOf elemType + // { + name = "loaOf"; + deprecationMessage = + "Mixing lists with attribute values is no longer" + + " possible; please use `types.attrsOf` instead. See" + + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation."; + nestedTypes.elemType = elemType; + }; - strMatching = pattern: mkOptionType { - name = "strMatching ${escapeNixString pattern}"; - description = "string matching the pattern ${pattern}"; - descriptionClass = "noun"; - check = x: str.check x && builtins.match pattern x != null; - inherit (str) merge; - }; - - # Merge multiple definitions by concatenating them (with the given - # separator between the values). - separatedString = sep: mkOptionType rec { - name = "separatedString"; - description = if sep == "" - then "Concatenated string" # for types.string. - else "strings concatenated with ${builtins.toJSON sep}" - ; - descriptionClass = "noun"; - check = isString; - merge = loc: defs: concatStringsSep sep (getValues defs); - functor = (defaultFunctor name) // { - payload = sep; - binOp = sepLhs: sepRhs: - if sepLhs == sepRhs then sepLhs - else null; - }; - }; - - lines = separatedString "\n"; - commas = separatedString ","; - envVar = separatedString ":"; - - # Deprecated; should not be used because it quietly concatenates - # strings, which is usually not what you want. - # We use a lib.warn because `deprecationMessage` doesn't trigger in nested types such as `attrsOf string` - string = lib.warn - "The type `types.string` is deprecated. See https://github.com/NixOS/nixpkgs/pull/66346 for better alternative types." - (separatedString "" // { - name = "string"; - }); - - passwdEntry = entryType: addCheck entryType (str: !(hasInfix ":" str || hasInfix "\n" str)) // { - name = "passwdEntry ${entryType.name}"; - description = "${optionDescriptionPhrase (class: class == "noun") entryType}, not containing newlines or colons"; - descriptionClass = "nonRestrictiveClause"; - }; - - attrs = mkOptionType { - name = "attrs"; - description = "attribute set"; - check = isAttrs; - merge = loc: foldl' (res: def: res // def.value) {}; - emptyValue = { value = {}; }; - }; - - # A package is a top-level store path (/nix/store/hash-name). This includes: - # - derivations - # - more generally, attribute sets with an `outPath` or `__toString` attribute - # pointing to a store path, e.g. flake inputs - # - strings with context, e.g. "${pkgs.foo}" or (toString pkgs.foo) - # - hardcoded store path literals (/nix/store/hash-foo) or strings without context - # ("/nix/store/hash-foo"). These get a context added to them using builtins.storePath. - # If you don't need a *top-level* store path, consider using pathInStore instead. - package = mkOptionType { - name = "package"; - descriptionClass = "noun"; - check = x: isDerivation x || isStorePath x; - merge = loc: defs: - let res = mergeOneOption loc defs; - in if builtins.isPath res || (builtins.isString res && ! builtins.hasContext res) - then toDerivation res - else res; - }; - - shellPackage = package // { - check = x: isDerivation x && hasAttr "shellPath" x; - }; - - pkgs = addCheck - (unique { message = "A Nixpkgs pkgs set can not be merged with another pkgs set."; } attrs // { - name = "pkgs"; - descriptionClass = "noun"; - description = "Nixpkgs package set"; - }) - (x: (x._type or null) == "pkgs"); - - path = mkOptionType { - name = "path"; - descriptionClass = "noun"; - check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/"; - merge = mergeEqualOption; - }; - - pathInStore = mkOptionType { - name = "pathInStore"; - description = "path in the Nix store"; - descriptionClass = "noun"; - check = x: isStringLike x && builtins.match "${builtins.storeDir}/[^.].*" (toString x) != null; - merge = mergeEqualOption; - }; - - listOf = elemType: mkOptionType rec { - name = "listOf"; - description = "list of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; - descriptionClass = "composite"; - check = isList; - merge = loc: defs: - map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def: - imap1 (m: def': - (mergeDefinitions - (loc ++ ["[definition ${toString n}-entry ${toString m}]"]) - elemType - [{ inherit (def) file; value = def'; }] - ).optionalValue - ) def.value - ) defs))); - emptyValue = { value = []; }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]); - getSubModules = elemType.getSubModules; - substSubModules = m: listOf (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; - nestedTypes.elemType = elemType; - }; - - nonEmptyListOf = elemType: - let list = addCheck (types.listOf elemType) (l: l != []); - in list // { - description = "non-empty ${optionDescriptionPhrase (class: class == "noun") list}"; - emptyValue = { }; # no .value attr, meaning unset - substSubModules = m: nonEmptyListOf (elemType.substSubModules m); - }; - - attrsOf = elemType: mkOptionType rec { - name = "attrsOf"; - description = "attribute set of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; - descriptionClass = "composite"; - check = isAttrs; - merge = loc: defs: - mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs: - (mergeDefinitions (loc ++ [name]) elemType defs).optionalValue - ) - # Push down position info. - (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs))); - emptyValue = { value = {}; }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [""]); - getSubModules = elemType.getSubModules; - substSubModules = m: attrsOf (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; - nestedTypes.elemType = elemType; - }; - - # A version of attrsOf that's lazy in its values at the expense of - # conditional definitions not working properly. E.g. defining a value with - # `foo.attr = mkIf false 10`, then `foo ? attr == true`, whereas with - # attrsOf it would correctly be `false`. Accessing `foo.attr` would throw an - # error that it's not defined. Use only if conditional definitions don't make sense. - lazyAttrsOf = elemType: mkOptionType rec { - name = "lazyAttrsOf"; - description = "lazy attribute set of ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; - descriptionClass = "composite"; - check = isAttrs; - merge = loc: defs: - zipAttrsWith (name: defs: - let merged = mergeDefinitions (loc ++ [name]) elemType defs; - # mergedValue will trigger an appropriate error when accessed - in merged.optionalValue.value or elemType.emptyValue.value or merged.mergedValue - ) - # Push down position info. - (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs); - emptyValue = { value = {}; }; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [""]); - getSubModules = elemType.getSubModules; - substSubModules = m: lazyAttrsOf (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; - nestedTypes.elemType = elemType; - }; - - # TODO: deprecate this in the future: - loaOf = elemType: types.attrsOf elemType // { - name = "loaOf"; - deprecationMessage = "Mixing lists with attribute values is no longer" - + " possible; please use `types.attrsOf` instead. See" - + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation."; - nestedTypes.elemType = elemType; - }; - - attrTag = tags: - let tags_ = tags; in - let - tags = - mapAttrs - (n: opt: - builtins.addErrorContext "while checking that attrTag tag ${lib.strings.escapeNixIdentifier n} is an option with a type${inAttrPosSuffix tags_ n}" ( + attrTag = + tags: + let + tags_ = tags; + in + let + tags = mapAttrs ( + n: opt: + builtins.addErrorContext + "while checking that attrTag tag ${lib.strings.escapeNixIdentifier n} is an option with a type${inAttrPosSuffix tags_ n}" + ( throwIf (opt._type or null != "option") "In attrTag, each tag value must be an option, but tag ${lib.strings.escapeNixIdentifier n} ${ - if opt?_type then - if opt._type == "option-type" - then "was a bare type, not wrapped in mkOption." - else "was of type ${lib.strings.escapeNixString opt._type}." - else "was not."}" - opt // { - declarations = opt.declarations or ( - let pos = builtins.unsafeGetAttrPos n tags_; - in if pos == null then [] else [ pos.file ] - ); - declarationPositions = opt.declarationPositions or ( - let pos = builtins.unsafeGetAttrPos n tags_; - in if pos == null then [] else [ pos ] - ); + if opt ? _type then + if opt._type == "option-type" then + "was a bare type, not wrapped in mkOption." + else + "was of type ${lib.strings.escapeNixString opt._type}." + else + "was not." + }" + opt + // { + declarations = + opt.declarations or ( + let + pos = builtins.unsafeGetAttrPos n tags_; + in + if pos == null then [ ] else [ pos.file ] + ); + declarationPositions = + opt.declarationPositions or ( + let + pos = builtins.unsafeGetAttrPos n tags_; + in + if pos == null then [ ] else [ pos ] + ); } - )) - tags_; - choicesStr = concatMapStringsSep ", " lib.strings.escapeNixIdentifier (attrNames tags); - in - mkOptionType { - name = "attrTag"; - description = "attribute-tagged union"; - descriptionClass = "noun"; - getSubOptions = prefix: - mapAttrs - (tagName: tagOption: { - "${lib.showOption prefix}" = - tagOption // { - loc = prefix ++ [ tagName ]; - }; - }) - tags; - check = v: isAttrs v && length (attrNames v) == 1 && tags?${head (attrNames v)}; - merge = loc: defs: - let - choice = head (attrNames (head defs).value); - checkedValueDefs = map - (def: - assert (length (attrNames def.value)) == 1; - if (head (attrNames def.value)) != choice - then throw "The option `${showOption loc}` is defined both as `${choice}` and `${head (attrNames def.value)}`, in ${showFiles (getFiles defs)}." - else { inherit (def) file; value = def.value.${choice}; }) - defs; - in - if tags?${choice} - then - { ${choice} = - (lib.modules.evalOptionValue - (loc ++ [choice]) - tags.${choice} - checkedValueDefs - ).value; - } - else throw "The option `${showOption loc}` is defined as ${lib.strings.escapeNixIdentifier choice}, but ${lib.strings.escapeNixIdentifier choice} is not among the valid choices (${choicesStr}). Value ${choice} was defined in ${showFiles (getFiles defs)}."; - nestedTypes = tags; - functor = defaultFunctor "attrTag" // { - type = { tags, ... }: types.attrTag tags; - payload = { inherit tags; }; - binOp = + ) + ) tags_; + choicesStr = concatMapStringsSep ", " lib.strings.escapeNixIdentifier (attrNames tags); + in + mkOptionType { + name = "attrTag"; + description = "attribute-tagged union"; + descriptionClass = "noun"; + getSubOptions = + prefix: + mapAttrs (tagName: tagOption: { + "${lib.showOption prefix}" = tagOption // { + loc = prefix ++ [ tagName ]; + }; + }) tags; + check = v: isAttrs v && length (attrNames v) == 1 && tags ? ${head (attrNames v)}; + merge = + loc: defs: let - # Add metadata in the format that submodules work with - wrapOptionDecl = - option: { options = option; _file = ""; pos = null; }; + choice = head (attrNames (head defs).value); + checkedValueDefs = map ( + def: + assert (length (attrNames def.value)) == 1; + if (head (attrNames def.value)) != choice then + throw "The option `${showOption loc}` is defined both as `${choice}` and `${head (attrNames def.value)}`, in ${showFiles (getFiles defs)}." + else + { + inherit (def) file; + value = def.value.${choice}; + } + ) defs; in - a: b: { - tags = a.tags // b.tags // - mapAttrs - (tagName: bOpt: + if tags ? ${choice} then + { + ${choice} = (lib.modules.evalOptionValue (loc ++ [ choice ]) tags.${choice} checkedValueDefs).value; + } + else + throw "The option `${showOption loc}` is defined as ${lib.strings.escapeNixIdentifier choice}, but ${lib.strings.escapeNixIdentifier choice} is not among the valid choices (${choicesStr}). Value ${choice} was defined in ${showFiles (getFiles defs)}."; + nestedTypes = tags; + functor = defaultFunctor "attrTag" // { + type = { tags, ... }: types.attrTag tags; + payload = { + inherit tags; + }; + binOp = + let + # Add metadata in the format that submodules work with + wrapOptionDecl = option: { + options = option; + _file = ""; + pos = null; + }; + in + a: b: { + tags = + a.tags + // b.tags + // mapAttrs ( + tagName: bOpt: lib.mergeOptionDecls # FIXME: loc is not accurate; should include prefix # Fortunately, it's only used for error messages, where a "relative" location is kinda ok. # It is also returned though, but use of the attribute seems rare? - [tagName] - [ (wrapOptionDecl a.tags.${tagName}) (wrapOptionDecl bOpt) ] + [ tagName ] + [ + (wrapOptionDecl a.tags.${tagName}) + (wrapOptionDecl bOpt) + ] // { # mergeOptionDecls is not idempotent in these attrs: declarations = a.tags.${tagName}.declarations ++ bOpt.declarations; declarationPositions = a.tags.${tagName}.declarationPositions ++ bOpt.declarationPositions; } - ) - (builtins.intersectAttrs a.tags b.tags); - }; - }; - }; - - uniq = unique { message = ""; }; - - unique = { message }: type: mkOptionType rec { - name = "unique"; - inherit (type) description descriptionClass check; - merge = mergeUniqueOption { inherit message; inherit (type) merge; }; - emptyValue = type.emptyValue; - getSubOptions = type.getSubOptions; - getSubModules = type.getSubModules; - substSubModules = m: uniq (type.substSubModules m); - functor = (defaultFunctor name) // { wrapped = type; }; - nestedTypes.elemType = type; - }; - - # Null or value of ... - nullOr = elemType: mkOptionType rec { - name = "nullOr"; - description = "null or ${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") elemType}"; - descriptionClass = "conjunction"; - check = x: x == null || elemType.check x; - merge = loc: defs: - let nrNulls = count (def: def.value == null) defs; in - if nrNulls == length defs then null - else if nrNulls != 0 then - throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}." - else elemType.merge loc defs; - emptyValue = { value = null; }; - getSubOptions = elemType.getSubOptions; - getSubModules = elemType.getSubModules; - substSubModules = m: nullOr (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; - nestedTypes.elemType = elemType; - }; - - functionTo = elemType: mkOptionType { - name = "functionTo"; - description = "function that evaluates to a(n) ${optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType}"; - descriptionClass = "composite"; - check = isFunction; - merge = loc: defs: - fnArgs: (mergeDefinitions (loc ++ [ "" ]) elemType (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs)).mergedValue; - getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); - getSubModules = elemType.getSubModules; - substSubModules = m: functionTo (elemType.substSubModules m); - functor = (defaultFunctor "functionTo") // { wrapped = elemType; }; - nestedTypes.elemType = elemType; - }; - - # A submodule (like typed attribute set). See NixOS manual. - submodule = modules: submoduleWith { - shorthandOnlyDefinesConfig = true; - modules = toList modules; - }; - - # A module to be imported in some other part of the configuration. - deferredModule = deferredModuleWith { }; - - # A module to be imported in some other part of the configuration. - # `staticModules`' options will be added to the documentation, unlike - # options declared via `config`. - deferredModuleWith = attrs@{ staticModules ? [] }: mkOptionType { - name = "deferredModule"; - description = "module"; - descriptionClass = "noun"; - check = x: isAttrs x || isFunction x || path.check x; - merge = loc: defs: { - imports = staticModules ++ map (def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value) defs; - }; - inherit (submoduleWith { modules = staticModules; }) - getSubOptions - getSubModules; - substSubModules = m: deferredModuleWith (attrs // { - staticModules = m; - }); - functor = defaultFunctor "deferredModuleWith" // { - type = types.deferredModuleWith; - payload = { - inherit staticModules; - }; - binOp = lhs: rhs: { - staticModules = lhs.staticModules ++ rhs.staticModules; - }; - }; - }; - - # The type of a type! - optionType = mkOptionType { - name = "optionType"; - description = "optionType"; - descriptionClass = "noun"; - check = value: value._type or null == "option-type"; - merge = loc: defs: - if length defs == 1 - then (head defs).value - else let - # Prepares the type definitions for mergeOptionDecls, which - # annotates submodules types with file locations - optionModules = map ({ value, file }: - { - _file = file; - # There's no way to merge types directly from the module system, - # but we can cheat a bit by just declaring an option with the type - options = lib.mkOption { - type = value; + ) (builtins.intersectAttrs a.tags b.tags); }; - } - ) defs; - # Merges all the types into a single one, including submodule merging. - # This also propagates file information to all submodules - mergedOption = fixupOptionType loc (mergeOptionDecls loc optionModules); - in mergedOption.type; - }; - - submoduleWith = - { modules - , specialArgs ? {} - , shorthandOnlyDefinesConfig ? false - , description ? null - , class ? null - }@attrs: - let - inherit (lib.modules) evalModules; - - allModules = defs: map ({ value, file }: - if isAttrs value && shorthandOnlyDefinesConfig - then { _file = file; config = value; } - else { _file = file; imports = [ value ]; } - ) defs; - - base = evalModules { - inherit class specialArgs; - modules = [{ - # This is a work-around for the fact that some sub-modules, - # such as the one included in an attribute set, expects an "args" - # attribute to be given to the sub-module. As the option - # evaluation does not have any specific attribute name yet, we - # provide a default for the documentation and the freeform type. - # - # This is necessary as some option declaration might use the - # "name" attribute given as argument of the submodule and use it - # as the default of option declarations. - # - # We use lookalike unicode single angle quotation marks because - # of the docbook transformation the options receive. In all uses - # > and < wouldn't be encoded correctly so the encoded values - # would be used, and use of `<` and `>` would break the XML document. - # It shouldn't cause an issue since this is cosmetic for the manual. - _module.args.name = lib.mkOptionDefault "‹name›"; - }] ++ modules; - }; - - freeformType = base._module.freeformType; - - name = "submodule"; - - in - mkOptionType { - inherit name; - description = - if description != null then description - else freeformType.description or name; - check = x: isAttrs x || isFunction x || path.check x; - merge = loc: defs: - (base.extendModules { - modules = [ { _module.args.name = last loc; } ] ++ allModules defs; - prefix = loc; - }).config; - emptyValue = { value = {}; }; - getSubOptions = prefix: (base.extendModules - { inherit prefix; }).options // optionalAttrs (freeformType != null) { - # Expose the sub options of the freeform type. Note that the option - # discovery doesn't care about the attribute name used here, so this - # is just to avoid conflicts with potential options from the submodule - _freeformOptions = freeformType.getSubOptions prefix; - }; - getSubModules = modules; - substSubModules = m: submoduleWith (attrs // { - modules = m; - }); - nestedTypes = lib.optionalAttrs (freeformType != null) { - freeformType = freeformType; - }; - functor = defaultFunctor name // { - type = types.submoduleWith; - payload = { - inherit modules class specialArgs shorthandOnlyDefinesConfig description; - }; - binOp = lhs: rhs: { - class = - # `or null` was added for backwards compatibility only. `class` is - # always set in the current version of the module system. - if lhs.class or null == null then rhs.class or null - else if rhs.class or null == null then lhs.class or null - else if lhs.class or null == rhs.class then lhs.class or null - else throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\"."; - modules = lhs.modules ++ rhs.modules; - specialArgs = - let intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs; - in if intersecting == {} - then lhs.specialArgs // rhs.specialArgs - else throw "A submoduleWith option is declared multiple times with the same specialArgs \"${toString (attrNames intersecting)}\""; - shorthandOnlyDefinesConfig = - if lhs.shorthandOnlyDefinesConfig == null - then rhs.shorthandOnlyDefinesConfig - else if rhs.shorthandOnlyDefinesConfig == null - then lhs.shorthandOnlyDefinesConfig - else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig - then lhs.shorthandOnlyDefinesConfig - else throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values"; - description = - if lhs.description == null - then rhs.description - else if rhs.description == null - then lhs.description - else if lhs.description == rhs.description - then lhs.description - else throw "A submoduleWith option is declared multiple times with conflicting descriptions"; }; }; - }; - # A value from a set of allowed ones. - enum = values: - let - inherit (lib.lists) unique; - show = v: - if builtins.isString v then ''"${v}"'' - else if builtins.isInt v then builtins.toString v - else if builtins.isBool v then boolToString v - else ''<${builtins.typeOf v}>''; - in - mkOptionType rec { - name = "enum"; - description = - # Length 0 or 1 enums may occur in a design pattern with type merging - # where an "interface" module declares an empty enum and other modules - # provide implementations, each extending the enum with their own - # identifier. - if values == [] then - "impossible (empty enum)" - else if builtins.length values == 1 then - "value ${show (builtins.head values)} (singular enum)" + uniq = unique { message = ""; }; + + unique = + { message }: + type: + mkOptionType rec { + name = "unique"; + inherit (type) description descriptionClass check; + merge = mergeUniqueOption { + inherit message; + inherit (type) merge; + }; + emptyValue = type.emptyValue; + getSubOptions = type.getSubOptions; + getSubModules = type.getSubModules; + substSubModules = m: uniq (type.substSubModules m); + functor = (defaultFunctor name) // { + wrapped = type; + }; + nestedTypes.elemType = type; + }; + + # Null or value of ... + nullOr = + elemType: + mkOptionType rec { + name = "nullOr"; + description = "null or ${ + optionDescriptionPhrase (class: class == "noun" || class == "conjunction") elemType + }"; + descriptionClass = "conjunction"; + check = x: x == null || elemType.check x; + merge = + loc: defs: + let + nrNulls = count (def: def.value == null) defs; + in + if nrNulls == length defs then + null + else if nrNulls != 0 then + throw "The option `${showOption loc}` is defined both null and not null, in ${showFiles (getFiles defs)}." + else + elemType.merge loc defs; + emptyValue = { + value = null; + }; + getSubOptions = elemType.getSubOptions; + getSubModules = elemType.getSubModules; + substSubModules = m: nullOr (elemType.substSubModules m); + functor = (defaultFunctor name) // { + wrapped = elemType; + }; + nestedTypes.elemType = elemType; + }; + + functionTo = + elemType: + mkOptionType { + name = "functionTo"; + description = "function that evaluates to a(n) ${ + optionDescriptionPhrase (class: class == "noun" || class == "composite") elemType + }"; + descriptionClass = "composite"; + check = isFunction; + merge = + loc: defs: fnArgs: + (mergeDefinitions (loc ++ [ "" ]) elemType ( + map (fn: { + inherit (fn) file; + value = fn.value fnArgs; + }) defs + )).mergedValue; + getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "" ]); + getSubModules = elemType.getSubModules; + substSubModules = m: functionTo (elemType.substSubModules m); + functor = (defaultFunctor "functionTo") // { + wrapped = elemType; + }; + nestedTypes.elemType = elemType; + }; + + # A submodule (like typed attribute set). See NixOS manual. + submodule = + modules: + submoduleWith { + shorthandOnlyDefinesConfig = true; + modules = toList modules; + }; + + # A module to be imported in some other part of the configuration. + deferredModule = deferredModuleWith { }; + + # A module to be imported in some other part of the configuration. + # `staticModules`' options will be added to the documentation, unlike + # options declared via `config`. + deferredModuleWith = + attrs@{ + staticModules ? [ ], + }: + mkOptionType { + name = "deferredModule"; + description = "module"; + descriptionClass = "noun"; + check = x: isAttrs x || isFunction x || path.check x; + merge = loc: defs: { + imports = + staticModules + ++ map ( + def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value + ) defs; + }; + inherit (submoduleWith { modules = staticModules; }) getSubOptions getSubModules; + substSubModules = m: deferredModuleWith (attrs // { staticModules = m; }); + functor = defaultFunctor "deferredModuleWith" // { + type = types.deferredModuleWith; + payload = { + inherit staticModules; + }; + binOp = lhs: rhs: { staticModules = lhs.staticModules ++ rhs.staticModules; }; + }; + }; + + # The type of a type! + optionType = mkOptionType { + name = "optionType"; + description = "optionType"; + descriptionClass = "noun"; + check = value: value._type or null == "option-type"; + merge = + loc: defs: + if length defs == 1 then + (head defs).value else - "one of ${concatMapStringsSep ", " show values}"; - descriptionClass = - if builtins.length values < 2 - then "noun" - else "conjunction"; - check = flip elem values; - merge = mergeEqualOption; - functor = (defaultFunctor name) // { payload = values; binOp = a: b: unique (a ++ b); }; + let + # Prepares the type definitions for mergeOptionDecls, which + # annotates submodules types with file locations + optionModules = map ( + { value, file }: + { + _file = file; + # There's no way to merge types directly from the module system, + # but we can cheat a bit by just declaring an option with the type + options = lib.mkOption { type = value; }; + } + ) defs; + # Merges all the types into a single one, including submodule merging. + # This also propagates file information to all submodules + mergedOption = fixupOptionType loc (mergeOptionDecls loc optionModules); + in + mergedOption.type; }; - # Either value of type `t1` or `t2`. - either = t1: t2: mkOptionType rec { - name = "either"; - description = - if t1.descriptionClass or null == "nonRestrictiveClause" - then - # Plain, but add comma - "${t1.description}, or ${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t2}" - else - "${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t1} or ${optionDescriptionPhrase (class: class == "noun" || class == "conjunction" || class == "composite") t2}"; - descriptionClass = "conjunction"; - check = x: t1.check x || t2.check x; - merge = loc: defs: + submoduleWith = + { + modules, + specialArgs ? { }, + shorthandOnlyDefinesConfig ? false, + description ? null, + class ? null, + }@attrs: let - defList = map (d: d.value) defs; + inherit (lib.modules) evalModules; + + allModules = + defs: + map ( + { value, file }: + if isAttrs value && shorthandOnlyDefinesConfig then + { + _file = file; + config = value; + } + else + { + _file = file; + imports = [ value ]; + } + ) defs; + + base = evalModules { + inherit class specialArgs; + modules = [ + { + # This is a work-around for the fact that some sub-modules, + # such as the one included in an attribute set, expects an "args" + # attribute to be given to the sub-module. As the option + # evaluation does not have any specific attribute name yet, we + # provide a default for the documentation and the freeform type. + # + # This is necessary as some option declaration might use the + # "name" attribute given as argument of the submodule and use it + # as the default of option declarations. + # + # We use lookalike unicode single angle quotation marks because + # of the docbook transformation the options receive. In all uses + # > and < wouldn't be encoded correctly so the encoded values + # would be used, and use of `<` and `>` would break the XML document. + # It shouldn't cause an issue since this is cosmetic for the manual. + _module.args.name = lib.mkOptionDefault "‹name›"; + } + ] ++ modules; + }; + + freeformType = base._module.freeformType; + + name = "submodule"; + in - if all (x: t1.check x) defList - then t1.merge loc defs - else if all (x: t2.check x) defList - then t2.merge loc defs - else mergeOneOption loc defs; - typeMerge = f': - let mt1 = t1.typeMerge (elemAt f'.wrapped 0).functor; - mt2 = t2.typeMerge (elemAt f'.wrapped 1).functor; + mkOptionType { + inherit name; + description = if description != null then description else freeformType.description or name; + check = x: isAttrs x || isFunction x || path.check x; + merge = + loc: defs: + (base.extendModules { + modules = [ { _module.args.name = last loc; } ] ++ allModules defs; + prefix = loc; + }).config; + emptyValue = { + value = { }; + }; + getSubOptions = + prefix: + (base.extendModules { inherit prefix; }).options + // optionalAttrs (freeformType != null) { + # Expose the sub options of the freeform type. Note that the option + # discovery doesn't care about the attribute name used here, so this + # is just to avoid conflicts with potential options from the submodule + _freeformOptions = freeformType.getSubOptions prefix; + }; + getSubModules = modules; + substSubModules = m: submoduleWith (attrs // { modules = m; }); + nestedTypes = lib.optionalAttrs (freeformType != null) { freeformType = freeformType; }; + functor = defaultFunctor name // { + type = types.submoduleWith; + payload = { + inherit + modules + class + specialArgs + shorthandOnlyDefinesConfig + description + ; + }; + binOp = lhs: rhs: { + class = + # `or null` was added for backwards compatibility only. `class` is + # always set in the current version of the module system. + if lhs.class or null == null then + rhs.class or null + else if rhs.class or null == null then + lhs.class or null + else if lhs.class or null == rhs.class then + lhs.class or null + else + throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\"."; + modules = lhs.modules ++ rhs.modules; + specialArgs = + let + intersecting = builtins.intersectAttrs lhs.specialArgs rhs.specialArgs; + in + if intersecting == { } then + lhs.specialArgs // rhs.specialArgs + else + throw "A submoduleWith option is declared multiple times with the same specialArgs \"${toString (attrNames intersecting)}\""; + shorthandOnlyDefinesConfig = + if lhs.shorthandOnlyDefinesConfig == null then + rhs.shorthandOnlyDefinesConfig + else if rhs.shorthandOnlyDefinesConfig == null then + lhs.shorthandOnlyDefinesConfig + else if lhs.shorthandOnlyDefinesConfig == rhs.shorthandOnlyDefinesConfig then + lhs.shorthandOnlyDefinesConfig + else + throw "A submoduleWith option is declared multiple times with conflicting shorthandOnlyDefinesConfig values"; + description = + if lhs.description == null then + rhs.description + else if rhs.description == null then + lhs.description + else if lhs.description == rhs.description then + lhs.description + else + throw "A submoduleWith option is declared multiple times with conflicting descriptions"; + }; + }; + }; + + # A value from a set of allowed ones. + enum = + values: + let + inherit (lib.lists) unique; + show = + v: + if builtins.isString v then + ''"${v}"'' + else if builtins.isInt v then + builtins.toString v + else if builtins.isBool v then + boolToString v + else + ''<${builtins.typeOf v}>''; in - if (name == f'.name) && (mt1 != null) && (mt2 != null) - then functor.type mt1 mt2 - else null; - functor = (defaultFunctor name) // { wrapped = [ t1 t2 ]; }; - nestedTypes.left = t1; - nestedTypes.right = t2; + mkOptionType rec { + name = "enum"; + description = + # Length 0 or 1 enums may occur in a design pattern with type merging + # where an "interface" module declares an empty enum and other modules + # provide implementations, each extending the enum with their own + # identifier. + if values == [ ] then + "impossible (empty enum)" + else if builtins.length values == 1 then + "value ${show (builtins.head values)} (singular enum)" + else + "one of ${concatMapStringsSep ", " show values}"; + descriptionClass = if builtins.length values < 2 then "noun" else "conjunction"; + check = flip elem values; + merge = mergeEqualOption; + functor = (defaultFunctor name) // { + payload = values; + binOp = a: b: unique (a ++ b); + }; + }; + + # Either value of type `t1` or `t2`. + either = + t1: t2: + mkOptionType rec { + name = "either"; + description = + if t1.descriptionClass or null == "nonRestrictiveClause" then + # Plain, but add comma + "${t1.description}, or ${ + optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t2 + }" + else + "${optionDescriptionPhrase (class: class == "noun" || class == "conjunction") t1} or ${ + optionDescriptionPhrase ( + class: class == "noun" || class == "conjunction" || class == "composite" + ) t2 + }"; + descriptionClass = "conjunction"; + check = x: t1.check x || t2.check x; + merge = + loc: defs: + let + defList = map (d: d.value) defs; + in + if all (x: t1.check x) defList then + t1.merge loc defs + else if all (x: t2.check x) defList then + t2.merge loc defs + else + mergeOneOption loc defs; + typeMerge = + f': + let + mt1 = t1.typeMerge (elemAt f'.wrapped 0).functor; + mt2 = t2.typeMerge (elemAt f'.wrapped 1).functor; + in + if (name == f'.name) && (mt1 != null) && (mt2 != null) then functor.type mt1 mt2 else null; + functor = (defaultFunctor name) // { + wrapped = [ + t1 + t2 + ]; + }; + nestedTypes.left = t1; + nestedTypes.right = t2; + }; + + # Any of the types in the given list + oneOf = + ts: + let + head' = + if ts == [ ] then throw "types.oneOf needs to get at least one type in its argument" else head ts; + tail' = tail ts; + in + foldl' either head' tail'; + + # Either value of type `coercedType` or `finalType`, the former is + # converted to `finalType` using `coerceFunc`. + coercedTo = + coercedType: coerceFunc: finalType: + assert lib.assertMsg ( + coercedType.getSubModules == null + ) "coercedTo: coercedType must not have submodules (it’s a ${coercedType.description})"; + mkOptionType rec { + name = "coercedTo"; + description = "${optionDescriptionPhrase (class: class == "noun") finalType} or ${ + optionDescriptionPhrase (class: class == "noun") coercedType + } convertible to it"; + check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; + merge = + loc: defs: + let + coerceVal = val: if coercedType.check val then coerceFunc val else val; + in + finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); + emptyValue = finalType.emptyValue; + getSubOptions = finalType.getSubOptions; + getSubModules = finalType.getSubModules; + substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); + typeMerge = t1: t2: null; + functor = (defaultFunctor name) // { + wrapped = finalType; + }; + nestedTypes.coercedType = coercedType; + nestedTypes.finalType = finalType; + }; + + # Augment the given type with an additional type check function. + addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; }; + }; - - # Any of the types in the given list - oneOf = ts: - let - head' = if ts == [] then throw "types.oneOf needs to get at least one type in its argument" else head ts; - tail' = tail ts; - in foldl' either head' tail'; - - # Either value of type `coercedType` or `finalType`, the former is - # converted to `finalType` using `coerceFunc`. - coercedTo = coercedType: coerceFunc: finalType: - assert lib.assertMsg (coercedType.getSubModules == null) - "coercedTo: coercedType must not have submodules (it’s a ${ - coercedType.description})"; - mkOptionType rec { - name = "coercedTo"; - description = "${optionDescriptionPhrase (class: class == "noun") finalType} or ${optionDescriptionPhrase (class: class == "noun") coercedType} convertible to it"; - check = x: (coercedType.check x && finalType.check (coerceFunc x)) || finalType.check x; - merge = loc: defs: - let - coerceVal = val: - if coercedType.check val then coerceFunc val - else val; - in finalType.merge loc (map (def: def // { value = coerceVal def.value; }) defs); - emptyValue = finalType.emptyValue; - getSubOptions = finalType.getSubOptions; - getSubModules = finalType.getSubModules; - substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m); - typeMerge = t1: t2: null; - functor = (defaultFunctor name) // { wrapped = finalType; }; - nestedTypes.coercedType = coercedType; - nestedTypes.finalType = finalType; - }; - - # Augment the given type with an additional type check function. - addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; }; - }; -}; -in outer_types // outer_types.types +in +outer_types // outer_types.types diff --git a/lib/versions.nix b/lib/versions.nix index 720d19e..32b4b5f 100644 --- a/lib/versions.nix +++ b/lib/versions.nix @@ -1,17 +1,19 @@ -/* Version string functions. */ +# Version string functions. { lib }: rec { - /* Break a version string into its component parts. + /* + Break a version string into its component parts. - Example: - splitVersion "1.2.3" - => ["1" "2" "3"] + Example: + splitVersion "1.2.3" + => ["1" "2" "3"] */ splitVersion = builtins.splitVersion; - /* Get the major version string from a string. + /* + Get the major version string from a string. Example: major "1.2.3" @@ -19,7 +21,8 @@ rec { */ major = v: builtins.elemAt (splitVersion v) 0; - /* Get the minor version string from a string. + /* + Get the minor version string from a string. Example: minor "1.2.3" @@ -27,7 +30,8 @@ rec { */ minor = v: builtins.elemAt (splitVersion v) 1; - /* Get the patch version string from a string. + /* + Get the patch version string from a string. Example: patch "1.2.3" @@ -35,30 +39,34 @@ rec { */ patch = v: builtins.elemAt (splitVersion v) 2; - /* Get string of the first two parts (major and minor) - of a version string. + /* + Get string of the first two parts (major and minor) + of a version string. - Example: - majorMinor "1.2.3" - => "1.2" + Example: + majorMinor "1.2.3" + => "1.2" */ - majorMinor = v: - builtins.concatStringsSep "." - (lib.take 2 (splitVersion v)); + majorMinor = v: builtins.concatStringsSep "." (lib.take 2 (splitVersion v)); - /* Pad a version string with zeros to match the given number of components. + /* + Pad a version string with zeros to match the given number of components. - Example: - pad 3 "1.2" - => "1.2.0" - pad 3 "1.3-rc1" - => "1.3.0-rc1" - pad 3 "1.2.3.4" - => "1.2.3" + Example: + pad 3 "1.2" + => "1.2.0" + pad 3 "1.3-rc1" + => "1.3.0-rc1" + pad 3 "1.2.3.4" + => "1.2.3" */ - pad = n: version: let - numericVersion = lib.head (lib.splitString "-" version); - versionSuffix = lib.removePrefix numericVersion version; - in lib.concatStringsSep "." (lib.take n (lib.splitVersion numericVersion ++ lib.genList (_: "0") n)) + versionSuffix; + pad = + n: version: + let + numericVersion = lib.head (lib.splitString "-" version); + versionSuffix = lib.removePrefix numericVersion version; + in + lib.concatStringsSep "." (lib.take n (lib.splitVersion numericVersion ++ lib.genList (_: "0") n)) + + versionSuffix; } diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 2aafbc6..dc84310 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1,67 +1,68 @@ -/* List of NixOS maintainers. - ```nix - handle = { - # Required - name = "Your name"; +/* + List of NixOS maintainers. + ```nix + handle = { + # Required + name = "Your name"; - # Optional, but at least one of email, matrix or githubId must be given - email = "address@example.org"; - matrix = "@user:example.org"; - github = "GithubUsername"; - githubId = your-github-id; + # Optional, but at least one of email, matrix or githubId must be given + email = "address@example.org"; + matrix = "@user:example.org"; + github = "GithubUsername"; + githubId = your-github-id; - keys = [{ - fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333"; - }]; - }; - ``` + keys = [{ + fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333"; + }]; + }; + ``` - where + where - - `handle` is the handle you are going to use in nixpkgs expressions, - - `name` is a name that people would know and recognize you by, - - `email` is your maintainer email address, - - `matrix` is your Matrix user ID, - - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/`), - - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/`, - - `keys` is a list of your PGP/GPG key fingerprints. + - `handle` is the handle you are going to use in nixpkgs expressions, + - `name` is a name that people would know and recognize you by, + - `email` is your maintainer email address, + - `matrix` is your Matrix user ID, + - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/`), + - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/`, + - `keys` is a list of your PGP/GPG key fingerprints. - Specifying a GitHub account ensures that you automatically: - - get invited to the @NixOS/nixpkgs-maintainers team ; - - once you are part of the @NixOS org, OfBorg will request you review - pull requests that modify a package for which you are a maintainer. + Specifying a GitHub account ensures that you automatically: + - get invited to the @NixOS/nixpkgs-maintainers team ; + - once you are part of the @NixOS org, OfBorg will request you review + pull requests that modify a package for which you are a maintainer. - `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient. + `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient. - If `github` begins with a numeral, `handle` should be prefixed with an underscore. - ```nix - _1example = { - github = "1example"; - }; - ``` + If `github` begins with a numeral, `handle` should be prefixed with an underscore. + ```nix + _1example = { + github = "1example"; + }; + ``` - Add PGP/GPG keys only if you actually use them to sign commits and/or mail. + Add PGP/GPG keys only if you actually use them to sign commits and/or mail. - To get the required PGP/GPG values for a key run - ```shell - gpg --fingerprint | head -n 2 - ``` + To get the required PGP/GPG values for a key run + ```shell + gpg --fingerprint | head -n 2 + ``` - !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth. + !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth. - More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible. + More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible. - When editing this file: - * keep the list alphabetically sorted, check with: - nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix - * test the validity of the format with: - nix-build lib/tests/maintainers.nix + When editing this file: + * keep the list alphabetically sorted, check with: + nix-instantiate --eval maintainers/scripts/check-maintainers-sorted.nix + * test the validity of the format with: + nix-build lib/tests/maintainers.nix - See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data. + See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data. - When adding a new maintainer, be aware of the current commit conventions - documented at [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions) - file located in the root of the Nixpkgs repo. + When adding a new maintainer, be aware of the current commit conventions + documented at [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#commit-conventions) + file located in the root of the Nixpkgs repo. */ { diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 952fdd0..116fd9c 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -1,4 +1,5 @@ -/* List of maintainer teams. +/* + List of maintainer teams. name = { # Required members = [ maintainer1 maintainer2 ]; @@ -25,24 +26,24 @@ * keep the list alphabetically sorted * test the validity of the format with: nix-build lib/tests/teams.nix - */ +*/ { lib }: -with lib.maintainers; { +with lib.maintainers; +{ llvm = { - members = []; + members = [ ]; scope = "Maintain LLVM package sets and related packages"; shortName = "LLVM"; enableFeatureFreezePing = true; }; lix = { - members = []; + members = [ ]; }; python = { - members = []; + members = [ ]; }; rust = { - members = []; + members = [ ]; }; } - diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix index b5d72d9..8325934 100644 --- a/pkgs/build-support/agda/default.nix +++ b/pkgs/build-support/agda/default.nix @@ -1,6 +1,16 @@ # Builder for Agda packages. -{ stdenv, lib, self, Agda, runCommand, makeWrapper, writeText, ghcWithPackages, nixosTests }: +{ + stdenv, + lib, + self, + Agda, + runCommand, + makeWrapper, + writeText, + ghcWithPackages, + nixosTests, +}: let inherit (lib) @@ -13,42 +23,43 @@ let platforms ; - inherit (lib.strings) - concatMapStrings - concatMapStringsSep - optionalString - ; + inherit (lib.strings) concatMapStrings concatMapStringsSep optionalString; - withPackages' = { - pkgs, - ghc ? ghcWithPackages (p: with p; [ ieee754 ]) - }: let - pkgs' = if isList pkgs then pkgs else pkgs self; - library-file = writeText "libraries" '' - ${(concatMapStringsSep "\n" (p: "${p}/${p.libraryFile}") pkgs')} - ''; - pname = "agdaWithPackages"; - version = Agda.version; - in runCommand "${pname}-${version}" { - inherit pname version; - nativeBuildInputs = [ makeWrapper ]; - passthru = { - unwrapped = Agda; - inherit withPackages; - tests = { - inherit (nixosTests) agda; - allPackages = withPackages (filter self.lib.isUnbrokenAgdaPackage (attrValues self)); - }; - }; - # Agda is a split package with multiple outputs; do not inherit them here. - meta = removeAttrs Agda.meta [ "outputsToInstall" ]; - } '' - mkdir -p $out/bin - makeWrapper ${Agda.bin}/bin/agda $out/bin/agda \ - --add-flags "--with-compiler=${ghc}/bin/ghc" \ - --add-flags "--library-file=${library-file}" - ln -s ${Agda.bin}/bin/agda-mode $out/bin/agda-mode - ''; + withPackages' = + { + pkgs, + ghc ? ghcWithPackages (p: with p; [ ieee754 ]), + }: + let + pkgs' = if isList pkgs then pkgs else pkgs self; + library-file = writeText "libraries" '' + ${(concatMapStringsSep "\n" (p: "${p}/${p.libraryFile}") pkgs')} + ''; + pname = "agdaWithPackages"; + version = Agda.version; + in + runCommand "${pname}-${version}" + { + inherit pname version; + nativeBuildInputs = [ makeWrapper ]; + passthru = { + unwrapped = Agda; + inherit withPackages; + tests = { + inherit (nixosTests) agda; + allPackages = withPackages (filter self.lib.isUnbrokenAgdaPackage (attrValues self)); + }; + }; + # Agda is a split package with multiple outputs; do not inherit them here. + meta = removeAttrs Agda.meta [ "outputsToInstall" ]; + } + '' + mkdir -p $out/bin + makeWrapper ${Agda.bin}/bin/agda $out/bin/agda \ + --add-flags "--with-compiler=${ghc}/bin/ghc" \ + --add-flags "--library-file=${library-file}" + ln -s ${Agda.bin}/bin/agda-mode $out/bin/agda-mode + ''; withPackages = arg: if isAttrs arg then withPackages' arg else withPackages' { pkgs = arg; }; @@ -65,55 +76,70 @@ let ]; defaults = - { pname - , meta - , buildInputs ? [] - , everythingFile ? "./Everything.agda" - , includePaths ? [] - , libraryName ? pname - , libraryFile ? "${libraryName}.agda-lib" - , buildPhase ? null - , installPhase ? null - , extraExtensions ? [] - , ... - }: let + { + pname, + meta, + buildInputs ? [ ], + everythingFile ? "./Everything.agda", + includePaths ? [ ], + libraryName ? pname, + libraryFile ? "${libraryName}.agda-lib", + buildPhase ? null, + installPhase ? null, + extraExtensions ? [ ], + ... + }: + let agdaWithArgs = withPackages (filter (p: p ? isAgdaDerivation) buildInputs); - includePathArgs = concatMapStrings (path: "-i" + path + " ") (includePaths ++ [(dirOf everythingFile)]); + includePathArgs = concatMapStrings (path: "-i" + path + " ") ( + includePaths ++ [ (dirOf everythingFile) ] + ); in - { - inherit libraryName libraryFile; + { + inherit libraryName libraryFile; - isAgdaDerivation = true; + isAgdaDerivation = true; - buildInputs = buildInputs ++ [ agdaWithArgs ]; + buildInputs = buildInputs ++ [ agdaWithArgs ]; - buildPhase = if buildPhase != null then buildPhase else '' - runHook preBuild - agda ${includePathArgs} ${everythingFile} - rm ${everythingFile} ${lib.interfaceFile Agda.version everythingFile} - runHook postBuild - ''; + buildPhase = + if buildPhase != null then + buildPhase + else + '' + runHook preBuild + agda ${includePathArgs} ${everythingFile} + rm ${everythingFile} ${lib.interfaceFile Agda.version everythingFile} + runHook postBuild + ''; - installPhase = if installPhase != null then installPhase else '' - runHook preInstall - mkdir -p $out - find \( ${concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions)} \) -exec cp -p --parents -t "$out" {} + - runHook postInstall - ''; + installPhase = + if installPhase != null then + installPhase + else + '' + runHook preInstall + mkdir -p $out + find \( ${ + concatMapStringsSep " -or " (p: "-name '*.${p}'") (extensions ++ extraExtensions) + } \) -exec cp -p --parents -t "$out" {} + + runHook postInstall + ''; - # As documented at https://github.com/NixOS/nixpkgs/issues/172752, - # we need to set LC_ALL to an UTF-8-supporting locale. However, on - # darwin, it seems that there is no standard such locale; luckily, - # the referenced issue doesn't seem to surface on darwin. Hence let's - # set this only on non-darwin. - LC_ALL = optionalString (!stdenv.isDarwin) "C.UTF-8"; + # As documented at https://github.com/NixOS/nixpkgs/issues/172752, + # we need to set LC_ALL to an UTF-8-supporting locale. However, on + # darwin, it seems that there is no standard such locale; luckily, + # the referenced issue doesn't seem to surface on darwin. Hence let's + # set this only on non-darwin. + LC_ALL = optionalString (!stdenv.isDarwin) "C.UTF-8"; - meta = if meta.broken or false then meta // { hydraPlatforms = platforms.none; } else meta; + meta = if meta.broken or false then meta // { hydraPlatforms = platforms.none; } else meta; - # Retrieve all packages from the finished package set that have the current package as a dependency and build them - passthru.tests = - filterAttrs (name: pkg: self.lib.isUnbrokenAgdaPackage pkg && elem pname (map (pkg: pkg.pname) pkg.buildInputs)) self; - }; + # Retrieve all packages from the finished package set that have the current package as a dependency and build them + passthru.tests = filterAttrs ( + name: pkg: self.lib.isUnbrokenAgdaPackage pkg && elem pname (map (pkg: pkg.pname) pkg.buildInputs) + ) self; + }; in { mkDerivation = args: stdenv.mkDerivation (args // defaults args); diff --git a/pkgs/build-support/agda/lib.nix b/pkgs/build-support/agda/lib.nix index 63fa6cc..4bdb80a 100644 --- a/pkgs/build-support/agda/lib.nix +++ b/pkgs/build-support/agda/lib.nix @@ -1,17 +1,25 @@ { lib }: { - /* Returns the Agda interface file to a given Agda file. - * - * The resulting path may not be normalized. - * - * Examples: - * interfaceFile pkgs.agda.version "./Everything.agda" == "_build/2.6.4.3/agda/./Everything.agdai" - * interfaceFile pkgs.agda.version "src/Everything.lagda.tex" == "_build/2.6.4.3/agda/src/Everything.agdai" + /* + Returns the Agda interface file to a given Agda file. + * + * The resulting path may not be normalized. + * + * Examples: + * interfaceFile pkgs.agda.version "./Everything.agda" == "_build/2.6.4.3/agda/./Everything.agdai" + * interfaceFile pkgs.agda.version "src/Everything.lagda.tex" == "_build/2.6.4.3/agda/src/Everything.agdai" */ - interfaceFile = agdaVersion: agdaFile: "_build/" + agdaVersion + "/agda/" + lib.head (builtins.match ''(.*\.)l?agda(\.(md|org|rst|tex|typ))?'' agdaFile) + "agdai"; + interfaceFile = + agdaVersion: agdaFile: + "_build/" + + agdaVersion + + "/agda/" + + lib.head (builtins.match ''(.*\.)l?agda(\.(md|org|rst|tex|typ))?'' agdaFile) + + "agdai"; - /* Takes an arbitrary derivation and says whether it is an agda library package - * that is not marked as broken. + /* + Takes an arbitrary derivation and says whether it is an agda library package + * that is not marked as broken. */ isUnbrokenAgdaPackage = pkg: pkg.isAgdaDerivation or false && !pkg.meta.broken; } diff --git a/pkgs/build-support/alternatives/blas/default.nix b/pkgs/build-support/alternatives/blas/default.nix index 91001bc..0372753 100644 --- a/pkgs/build-support/alternatives/blas/default.nix +++ b/pkgs/build-support/alternatives/blas/default.nix @@ -1,40 +1,177 @@ -{ lib, stdenv -, lapack-reference, openblas -, isILP64 ? false -, blasProvider ? openblas }: +{ + lib, + stdenv, + lapack-reference, + openblas, + isILP64 ? false, + blasProvider ? openblas, +}: let blasFortranSymbols = [ - "caxpy" "ccopy" "cdotc" "cdotu" "cgbmv" "cgemm" "cgemv" "cgerc" "cgeru" - "chbmv" "chemm" "chemv" "cher" "cher2" "cher2k" "cherk" "chpmv" "chpr" - "chpr2" "crotg" "cscal" "csrot" "csscal" "cswap" "csymm" "csyr2k" "csyrk" - "ctbmv" "ctbsv" "ctpmv" "ctpsv" "ctrmm" "ctrmv" "ctrsm" "ctrsv" "dasum" - "daxpy" "dcabs1" "dcopy" "ddot" "dgbmv" "dgemm" "dgemv" "dger" "dnrm2" - "drot" "drotg" "drotm" "drotmg" "dsbmv" "dscal" "dsdot" "dspmv" "dspr" - "dspr2" "dswap" "dsymm" "dsymv" "dsyr" "dsyr2" "dsyr2k" "dsyrk" "dtbmv" - "dtbsv" "dtpmv" "dtpsv" "dtrmm" "dtrmv" "dtrsm" "dtrsv" "dzasum" "dznrm2" - "icamax" "idamax" "isamax" "izamax" "lsame" "sasum" "saxpy" "scabs1" - "scasum" "scnrm2" "scopy" "sdot" "sdsdot" "sgbmv" "sgemm" "sgemv" - "sger" "snrm2" "srot" "srotg" "srotm" "srotmg" "ssbmv" "sscal" "sspmv" - "sspr" "sspr2" "sswap" "ssymm" "ssymv" "ssyr" "ssyr2" "ssyr2k" "ssyrk" - "stbmv" "stbsv" "stpmv" "stpsv" "strmm" "strmv" "strsm" "strsv" "xerbla" - "xerbla_array" "zaxpy" "zcopy" "zdotc" "zdotu" "zdrot" "zdscal" "zgbmv" - "zgemm" "zgemv" "zgerc" "zgeru" "zhbmv" "zhemm" "zhemv" "zher" "zher2" - "zher2k" "zherk" "zhpmv" "zhpr" "zhpr2" "zrotg" "zscal" "zswap" "zsymm" - "zsyr2k" "zsyrk" "ztbmv" "ztbsv" "ztpmv" "ztpsv" "ztrmm" "ztrmv" "ztrsm" + "caxpy" + "ccopy" + "cdotc" + "cdotu" + "cgbmv" + "cgemm" + "cgemv" + "cgerc" + "cgeru" + "chbmv" + "chemm" + "chemv" + "cher" + "cher2" + "cher2k" + "cherk" + "chpmv" + "chpr" + "chpr2" + "crotg" + "cscal" + "csrot" + "csscal" + "cswap" + "csymm" + "csyr2k" + "csyrk" + "ctbmv" + "ctbsv" + "ctpmv" + "ctpsv" + "ctrmm" + "ctrmv" + "ctrsm" + "ctrsv" + "dasum" + "daxpy" + "dcabs1" + "dcopy" + "ddot" + "dgbmv" + "dgemm" + "dgemv" + "dger" + "dnrm2" + "drot" + "drotg" + "drotm" + "drotmg" + "dsbmv" + "dscal" + "dsdot" + "dspmv" + "dspr" + "dspr2" + "dswap" + "dsymm" + "dsymv" + "dsyr" + "dsyr2" + "dsyr2k" + "dsyrk" + "dtbmv" + "dtbsv" + "dtpmv" + "dtpsv" + "dtrmm" + "dtrmv" + "dtrsm" + "dtrsv" + "dzasum" + "dznrm2" + "icamax" + "idamax" + "isamax" + "izamax" + "lsame" + "sasum" + "saxpy" + "scabs1" + "scasum" + "scnrm2" + "scopy" + "sdot" + "sdsdot" + "sgbmv" + "sgemm" + "sgemv" + "sger" + "snrm2" + "srot" + "srotg" + "srotm" + "srotmg" + "ssbmv" + "sscal" + "sspmv" + "sspr" + "sspr2" + "sswap" + "ssymm" + "ssymv" + "ssyr" + "ssyr2" + "ssyr2k" + "ssyrk" + "stbmv" + "stbsv" + "stpmv" + "stpsv" + "strmm" + "strmv" + "strsm" + "strsv" + "xerbla" + "xerbla_array" + "zaxpy" + "zcopy" + "zdotc" + "zdotu" + "zdrot" + "zdscal" + "zgbmv" + "zgemm" + "zgemv" + "zgerc" + "zgeru" + "zhbmv" + "zhemm" + "zhemv" + "zher" + "zher2" + "zher2k" + "zherk" + "zhpmv" + "zhpr" + "zhpr2" + "zrotg" + "zscal" + "zswap" + "zsymm" + "zsyr2k" + "zsyrk" + "ztbmv" + "ztbsv" + "ztpmv" + "ztpsv" + "ztrmm" + "ztrmv" + "ztrsm" "ztrsv" ]; version = "3"; - canonicalExtension = if stdenv.hostPlatform.isLinux - then "${stdenv.hostPlatform.extensions.sharedLibrary}.${version}" - else stdenv.hostPlatform.extensions.sharedLibrary; - + canonicalExtension = + if stdenv.hostPlatform.isLinux then + "${stdenv.hostPlatform.extensions.sharedLibrary}.${version}" + else + stdenv.hostPlatform.extensions.sharedLibrary; blasImplementation = lib.getName blasProvider; - blasProvider' = if blasImplementation == "mkl" - then blasProvider - else blasProvider.override { blas64 = isILP64; }; + blasProvider' = + if blasImplementation == "mkl" then blasProvider else blasProvider.override { blas64 = isILP64; }; in @@ -44,9 +181,12 @@ stdenv.mkDerivation { pname = "blas"; inherit version; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - meta = (blasProvider'.meta or {}) // { + meta = (blasProvider'.meta or { }) // { description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI"; }; @@ -62,82 +202,99 @@ stdenv.mkDerivation { dontPatchELF = true; - installPhase = ('' - mkdir -p $out/lib $dev/include $dev/lib/pkgconfig + installPhase = ( + '' + mkdir -p $out/lib $dev/include $dev/lib/pkgconfig - libblas="${lib.getLib blasProvider'}/lib/libblas${canonicalExtension}" + libblas="${lib.getLib blasProvider'}/lib/libblas${canonicalExtension}" - if ! [ -e "$libblas" ]; then - echo "$libblas does not exist, ${blasProvider'.name} does not provide libblas." - exit 1 - fi + if ! [ -e "$libblas" ]; then + echo "$libblas does not exist, ${blasProvider'.name} does not provide libblas." + exit 1 + fi - $NM -an "$libblas" | cut -f3 -d' ' > symbols - for symbol in ${toString blasFortranSymbols}; do - grep -q "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; } - done + $NM -an "$libblas" | cut -f3 -d' ' > symbols + for symbol in ${toString blasFortranSymbols}; do + grep -q "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; } + done - cp -L "$libblas" $out/lib/libblas${canonicalExtension} - chmod +w $out/lib/libblas${canonicalExtension} + cp -L "$libblas" $out/lib/libblas${canonicalExtension} + chmod +w $out/lib/libblas${canonicalExtension} -'' + (if stdenv.hostPlatform.isElf then '' - patchelf --set-soname libblas${canonicalExtension} $out/lib/libblas${canonicalExtension} - patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libblas${canonicalExtension} -'' else lib.optionalString (stdenv.hostPlatform.isDarwin) '' - install_name_tool \ - -id $out/lib/libblas${canonicalExtension} \ - -add_rpath ${lib.getLib blasProvider'}/lib \ - $out/lib/libblas${canonicalExtension} -'') + '' + '' + + ( + if stdenv.hostPlatform.isElf then + '' + patchelf --set-soname libblas${canonicalExtension} $out/lib/libblas${canonicalExtension} + patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libblas${canonicalExtension} + '' + else + lib.optionalString (stdenv.hostPlatform.isDarwin) '' + install_name_tool \ + -id $out/lib/libblas${canonicalExtension} \ + -add_rpath ${lib.getLib blasProvider'}/lib \ + $out/lib/libblas${canonicalExtension} + '' + ) + + '' - if [ "$out/lib/libblas${canonicalExtension}" != "$out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then - ln -s $out/lib/libblas${canonicalExtension} "$out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}" - fi + if [ "$out/lib/libblas${canonicalExtension}" != "$out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then + ln -s $out/lib/libblas${canonicalExtension} "$out/lib/libblas${stdenv.hostPlatform.extensions.sharedLibrary}" + fi - cat < $dev/lib/pkgconfig/blas.pc -Name: blas -Version: ${version} -Description: BLAS FORTRAN implementation -Libs: -L$out/lib -lblas -Cflags: -I$dev/include -EOF + cat < $dev/lib/pkgconfig/blas.pc + Name: blas + Version: ${version} + Description: BLAS FORTRAN implementation + Libs: -L$out/lib -lblas + Cflags: -I$dev/include + EOF - libcblas="${lib.getLib blasProvider'}/lib/libcblas${canonicalExtension}" + libcblas="${lib.getLib blasProvider'}/lib/libcblas${canonicalExtension}" - if ! [ -e "$libcblas" ]; then - echo "$libcblas does not exist, ${blasProvider'.name} does not provide libcblas." - exit 1 - fi + if ! [ -e "$libcblas" ]; then + echo "$libcblas does not exist, ${blasProvider'.name} does not provide libcblas." + exit 1 + fi - cp -L "$libcblas" $out/lib/libcblas${canonicalExtension} - chmod +w $out/lib/libcblas${canonicalExtension} + cp -L "$libcblas" $out/lib/libcblas${canonicalExtension} + chmod +w $out/lib/libcblas${canonicalExtension} -'' + (if stdenv.hostPlatform.isElf then '' - patchelf --set-soname libcblas${canonicalExtension} $out/lib/libcblas${canonicalExtension} - patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libcblas${canonicalExtension} -'' else lib.optionalString stdenv.hostPlatform.isDarwin '' - install_name_tool \ - -id $out/lib/libcblas${canonicalExtension} \ - -add_rpath ${lib.getLib blasProvider'}/lib \ - $out/lib/libcblas${canonicalExtension} -'') + '' - if [ "$out/lib/libcblas${canonicalExtension}" != "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then - ln -s $out/lib/libcblas${canonicalExtension} "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" - fi + '' + + ( + if stdenv.hostPlatform.isElf then + '' + patchelf --set-soname libcblas${canonicalExtension} $out/lib/libcblas${canonicalExtension} + patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libcblas${canonicalExtension} + '' + else + lib.optionalString stdenv.hostPlatform.isDarwin '' + install_name_tool \ + -id $out/lib/libcblas${canonicalExtension} \ + -add_rpath ${lib.getLib blasProvider'}/lib \ + $out/lib/libcblas${canonicalExtension} + '' + ) + + '' + if [ "$out/lib/libcblas${canonicalExtension}" != "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then + ln -s $out/lib/libcblas${canonicalExtension} "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" + fi - cp ${lib.getDev lapack-reference}/include/cblas{,_mangling}.h $dev/include + cp ${lib.getDev lapack-reference}/include/cblas{,_mangling}.h $dev/include - cat < $dev/lib/pkgconfig/cblas.pc -Name: cblas -Version: ${version} -Description: BLAS C implementation -Cflags: -I$dev/include -Libs: -L$out/lib -lcblas -EOF -'' + lib.optionalString (blasImplementation == "mkl") '' - mkdir -p $out/nix-support - echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook - ln -s $out/lib/libblas${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary} - ln -sf ${blasProvider'}/include/* $dev/include -''); + cat < $dev/lib/pkgconfig/cblas.pc + Name: cblas + Version: ${version} + Description: BLAS C implementation + Cflags: -I$dev/include + Libs: -L$out/lib -lcblas + EOF + '' + + lib.optionalString (blasImplementation == "mkl") '' + mkdir -p $out/nix-support + echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook + ln -s $out/lib/libblas${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary} + ln -sf ${blasProvider'}/include/* $dev/include + '' + ); } diff --git a/pkgs/build-support/alternatives/lapack/default.nix b/pkgs/build-support/alternatives/lapack/default.nix index 2d62855..8dd24b2 100644 --- a/pkgs/build-support/alternatives/lapack/default.nix +++ b/pkgs/build-support/alternatives/lapack/default.nix @@ -1,19 +1,27 @@ -{ lib, stdenv -, lapack-reference, openblas -, isILP64 ? false -, lapackProvider ? openblas }: +{ + lib, + stdenv, + lapack-reference, + openblas, + isILP64 ? false, + lapackProvider ? openblas, +}: let version = "3"; - canonicalExtension = if stdenv.hostPlatform.isLinux - then "${stdenv.hostPlatform.extensions.sharedLibrary}.${version}" - else stdenv.hostPlatform.extensions.sharedLibrary; + canonicalExtension = + if stdenv.hostPlatform.isLinux then + "${stdenv.hostPlatform.extensions.sharedLibrary}.${version}" + else + stdenv.hostPlatform.extensions.sharedLibrary; lapackImplementation = lib.getName lapackProvider; - lapackProvider' = if lapackImplementation == "mkl" - then lapackProvider - else lapackProvider.override { blas64 = isILP64; }; + lapackProvider' = + if lapackImplementation == "mkl" then + lapackProvider + else + lapackProvider.override { blas64 = isILP64; }; in @@ -23,9 +31,12 @@ stdenv.mkDerivation { pname = "lapack"; inherit version; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - meta = (lapackProvider'.meta or {}) // { + meta = (lapackProvider'.meta or { }) // { description = "${lib.getName lapackProvider'} with just the LAPACK C and FORTRAN ABI"; }; @@ -44,70 +55,77 @@ stdenv.mkDerivation { dontPatchELF = true; - installPhase = ('' - mkdir -p $out/lib $dev/include $dev/lib/pkgconfig + installPhase = ( + '' + mkdir -p $out/lib $dev/include $dev/lib/pkgconfig - liblapack="${lib.getLib lapackProvider'}/lib/liblapack${canonicalExtension}" + liblapack="${lib.getLib lapackProvider'}/lib/liblapack${canonicalExtension}" - if ! [ -e "$liblapack" ]; then - echo "$liblapack does not exist, ${lapackProvider'.name} does not provide liblapack." - exit 1 - fi + if ! [ -e "$liblapack" ]; then + echo "$liblapack does not exist, ${lapackProvider'.name} does not provide liblapack." + exit 1 + fi - cp -L "$liblapack" $out/lib/liblapack${canonicalExtension} - chmod +w $out/lib/liblapack${canonicalExtension} + cp -L "$liblapack" $out/lib/liblapack${canonicalExtension} + chmod +w $out/lib/liblapack${canonicalExtension} -'' + (lib.optionalString stdenv.hostPlatform.isElf '' - patchelf --set-soname liblapack${canonicalExtension} $out/lib/liblapack${canonicalExtension} - patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider'}/lib" $out/lib/liblapack${canonicalExtension} -'') + '' + '' + + (lib.optionalString stdenv.hostPlatform.isElf '' + patchelf --set-soname liblapack${canonicalExtension} $out/lib/liblapack${canonicalExtension} + patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider'}/lib" $out/lib/liblapack${canonicalExtension} + '') + + '' - if [ "$out/lib/liblapack${canonicalExtension}" != "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then - ln -s $out/lib/liblapack${canonicalExtension} "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" - fi + if [ "$out/lib/liblapack${canonicalExtension}" != "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then + ln -s $out/lib/liblapack${canonicalExtension} "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" + fi - install -D ${lib.getDev lapack-reference}/include/lapack.h $dev/include/lapack.h + install -D ${lib.getDev lapack-reference}/include/lapack.h $dev/include/lapack.h - cat < $dev/lib/pkgconfig/lapack.pc -Name: lapack -Version: ${version} -Description: LAPACK FORTRAN implementation -Cflags: -I$dev/include -Libs: -L$out/lib -llapack -EOF + cat < $dev/lib/pkgconfig/lapack.pc + Name: lapack + Version: ${version} + Description: LAPACK FORTRAN implementation + Cflags: -I$dev/include + Libs: -L$out/lib -llapack + EOF - liblapacke="${lib.getLib lapackProvider'}/lib/liblapacke${canonicalExtension}" + liblapacke="${lib.getLib lapackProvider'}/lib/liblapacke${canonicalExtension}" - if ! [ -e "$liblapacke" ]; then - echo "$liblapacke does not exist, ${lapackProvider'.name} does not provide liblapacke." - exit 1 - fi + if ! [ -e "$liblapacke" ]; then + echo "$liblapacke does not exist, ${lapackProvider'.name} does not provide liblapacke." + exit 1 + fi - cp -L "$liblapacke" $out/lib/liblapacke${canonicalExtension} - chmod +w $out/lib/liblapacke${canonicalExtension} + cp -L "$liblapacke" $out/lib/liblapacke${canonicalExtension} + chmod +w $out/lib/liblapacke${canonicalExtension} -'' + (lib.optionalString stdenv.hostPlatform.isElf '' - patchelf --set-soname liblapacke${canonicalExtension} $out/lib/liblapacke${canonicalExtension} - patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider'}/lib" $out/lib/liblapacke${canonicalExtension} -'') + '' + '' + + (lib.optionalString stdenv.hostPlatform.isElf '' + patchelf --set-soname liblapacke${canonicalExtension} $out/lib/liblapacke${canonicalExtension} + patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider'}/lib" $out/lib/liblapacke${canonicalExtension} + '') + + '' - if [ -f "$out/lib/liblapacke.so.3" ]; then - ln -s $out/lib/liblapacke.so.3 $out/lib/liblapacke.so - fi + if [ -f "$out/lib/liblapacke.so.3" ]; then + ln -s $out/lib/liblapacke.so.3 $out/lib/liblapacke.so + fi - cp ${lib.getDev lapack-reference}/include/lapacke{,_mangling,_config,_utils}.h $dev/include + cp ${lib.getDev lapack-reference}/include/lapacke{,_mangling,_config,_utils}.h $dev/include - cat < $dev/lib/pkgconfig/lapacke.pc -Name: lapacke -Version: ${version} -Description: LAPACK C implementation -Cflags: -I$dev/include -Libs: -L$out/lib -llapacke -EOF -'' + lib.optionalString (lapackImplementation == "mkl") '' - mkdir -p $out/nix-support - echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook - ln -s $out/lib/liblapack${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary} - ln -sf ${lapackProvider'}/include/* $dev/include -''); + cat < $dev/lib/pkgconfig/lapacke.pc + Name: lapacke + Version: ${version} + Description: LAPACK C implementation + Cflags: -I$dev/include + Libs: -L$out/lib -llapacke + EOF + '' + + lib.optionalString (lapackImplementation == "mkl") '' + mkdir -p $out/nix-support + echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook + ln -s $out/lib/liblapack${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary} + ln -sf ${lapackProvider'}/include/* $dev/include + '' + ); } diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix index 95dc7ff..97eca74 100644 --- a/pkgs/build-support/appimage/default.nix +++ b/pkgs/build-support/appimage/default.nix @@ -1,13 +1,14 @@ -{ lib -, bash -, binutils-unwrapped -, coreutils -, gawk -, libarchive -, pv -, squashfsTools -, buildFHSEnv -, pkgs +{ + lib, + bash, + binutils-unwrapped, + coreutils, + gawk, + libarchive, + pv, + squashfsTools, + buildFHSEnv, + pkgs, }: rec { @@ -26,9 +27,14 @@ rec { ]; }; - extract = args@{ name ? "${args.pname}-${args.version}", postExtract ? "", src, ... }: pkgs.runCommand "${name}-extracted" { - buildInputs = [ appimage-exec ]; - } '' + extract = + args@{ + name ? "${args.pname}-${args.version}", + postExtract ? "", + src, + ... + }: + pkgs.runCommand "${name}-extracted" { buildInputs = [ appimage-exec ]; } '' appimage-exec.sh -x $out ${src} ${postExtract} ''; @@ -38,173 +44,199 @@ rec { extractType2 = extract; wrapType1 = wrapType2; - wrapAppImage = args@{ - src, - extraPkgs, - meta ? {}, - ... - }: buildFHSEnv - (defaultFhsEnvArgs // { - targetPkgs = pkgs: [ appimage-exec ] - ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs; + wrapAppImage = + args@{ + src, + extraPkgs, + meta ? { }, + ... + }: + buildFHSEnv ( + defaultFhsEnvArgs + // { + targetPkgs = pkgs: [ appimage-exec ] ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs; - runScript = "appimage-exec.sh -w ${src} --"; + runScript = "appimage-exec.sh -w ${src} --"; - meta = { - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - } // meta; - } // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage)))); + meta = { + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + } // meta; + } + // (removeAttrs args (builtins.attrNames (builtins.functionArgs wrapAppImage))) + ); - wrapType2 = args@{ src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage - (args // { - inherit extraPkgs; - src = extract (lib.filterAttrs (key: value: builtins.elem key [ "name" "pname" "version" "src" ]) args); + wrapType2 = + args@{ + src, + extraPkgs ? pkgs: [ ], + ... + }: + wrapAppImage ( + args + // { + inherit extraPkgs; + src = extract ( + lib.filterAttrs ( + key: value: + builtins.elem key [ + "name" + "pname" + "version" + "src" + ] + ) args + ); - # passthru src to make nix-update work - # hack to keep the origin position (unsafeGetAttrPos) - passthru = lib.pipe args [ - lib.attrNames - (lib.remove "src") - (removeAttrs args) - ] // args.passthru or { }; - }); + # passthru src to make nix-update work + # hack to keep the origin position (unsafeGetAttrPos) + passthru = + lib.pipe args [ + lib.attrNames + (lib.remove "src") + (removeAttrs args) + ] + // args.passthru or { }; + } + ); defaultFhsEnvArgs = { # Most of the packages were taken from the Steam chroot - targetPkgs = pkgs: with pkgs; [ - gtk3 - bashInteractive - gnome.zenity - xorg.xrandr - which - perl - xdg-utils - iana-etc - krb5 - gsettings-desktop-schemas - hicolor-icon-theme # dont show a gtk warning about hicolor not being installed - ]; + targetPkgs = + pkgs: with pkgs; [ + gtk3 + bashInteractive + gnome.zenity + xorg.xrandr + which + perl + xdg-utils + iana-etc + krb5 + gsettings-desktop-schemas + hicolor-icon-theme # dont show a gtk warning about hicolor not being installed + ]; # list of libraries expected in an appimage environment: # https://github.com/AppImage/pkg2appimage/blob/master/excludelist - multiPkgs = pkgs: with pkgs; [ - desktop-file-utils - xorg.libXcomposite - xorg.libXtst - xorg.libXrandr - xorg.libXext - xorg.libX11 - xorg.libXfixes - libGL + multiPkgs = + pkgs: with pkgs; [ + desktop-file-utils + xorg.libXcomposite + xorg.libXtst + xorg.libXrandr + xorg.libXext + xorg.libX11 + xorg.libXfixes + libGL - gst_all_1.gstreamer - gst_all_1.gst-plugins-ugly - gst_all_1.gst-plugins-base - libdrm - xorg.xkeyboardconfig - xorg.libpciaccess + gst_all_1.gstreamer + gst_all_1.gst-plugins-ugly + gst_all_1.gst-plugins-base + libdrm + xorg.xkeyboardconfig + xorg.libpciaccess - glib - gtk2 - bzip2 - zlib - gdk-pixbuf + glib + gtk2 + bzip2 + zlib + gdk-pixbuf - xorg.libXinerama - xorg.libXdamage - xorg.libXcursor - xorg.libXrender - xorg.libXScrnSaver - xorg.libXxf86vm - xorg.libXi - xorg.libSM - xorg.libICE - freetype - curlWithGnuTls - nspr - nss - fontconfig - cairo - pango - expat - dbus - cups - libcap - SDL2 - libusb1 - udev - dbus-glib - atk - at-spi2-atk - libudev0-shim + xorg.libXinerama + xorg.libXdamage + xorg.libXcursor + xorg.libXrender + xorg.libXScrnSaver + xorg.libXxf86vm + xorg.libXi + xorg.libSM + xorg.libICE + freetype + curlWithGnuTls + nspr + nss + fontconfig + cairo + pango + expat + dbus + cups + libcap + SDL2 + libusb1 + udev + dbus-glib + atk + at-spi2-atk + libudev0-shim - xorg.libXt - xorg.libXmu - xorg.libxcb - xorg.xcbutil - xorg.xcbutilwm - xorg.xcbutilimage - xorg.xcbutilkeysyms - xorg.xcbutilrenderutil - libGLU - libuuid - libogg - libvorbis - SDL - SDL2_image - glew110 - openssl - libidn - tbb - wayland - mesa - libxkbcommon - vulkan-loader + xorg.libXt + xorg.libXmu + xorg.libxcb + xorg.xcbutil + xorg.xcbutilwm + xorg.xcbutilimage + xorg.xcbutilkeysyms + xorg.xcbutilrenderutil + libGLU + libuuid + libogg + libvorbis + SDL + SDL2_image + glew110 + openssl + libidn + tbb + wayland + mesa + libxkbcommon + vulkan-loader - flac - freeglut - libjpeg - libpng12 - libpulseaudio - libsamplerate - libmikmod - libthai - libtheora - libtiff - pixman - speex - SDL_image - SDL_ttf - SDL_mixer - SDL2_ttf - SDL2_mixer - libappindicator-gtk2 - libcaca - libcanberra - libgcrypt - libvpx - librsvg - xorg.libXft - libvdpau - alsa-lib + flac + freeglut + libjpeg + libpng12 + libpulseaudio + libsamplerate + libmikmod + libthai + libtheora + libtiff + pixman + speex + SDL_image + SDL_ttf + SDL_mixer + SDL2_ttf + SDL2_mixer + libappindicator-gtk2 + libcaca + libcanberra + libgcrypt + libvpx + librsvg + xorg.libXft + libvdpau + alsa-lib - harfbuzz - e2fsprogs - libgpg-error - keyutils.lib - libjack2 - fribidi - p11-kit + harfbuzz + e2fsprogs + libgpg-error + keyutils.lib + libjack2 + fribidi + p11-kit - gmp + gmp - # libraries not on the upstream include list, but nevertheless expected - # by at least one appimage - libtool.lib # for Synfigstudio - xorg.libxshmfence # for apple-music-electron - at-spi2-core - pciutils # for FreeCAD - pipewire # immersed-vr wayland support - ]; + # libraries not on the upstream include list, but nevertheless expected + # by at least one appimage + libtool.lib # for Synfigstudio + xorg.libxshmfence # for apple-music-electron + at-spi2-core + pciutils # for FreeCAD + pipewire # immersed-vr wayland support + ]; }; } diff --git a/pkgs/build-support/binary-cache/default.nix b/pkgs/build-support/binary-cache/default.nix index 8c610c5..0d88291 100644 --- a/pkgs/build-support/binary-cache/default.nix +++ b/pkgs/build-support/binary-cache/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, coreutils, jq, python3, nix, xz }: +{ + lib, + stdenv, + coreutils, + jq, + python3, + nix, + xz, +}: # This function is for creating a flat-file binary cache, i.e. the kind created by # nix copy --to file:///some/path and usable as a substituter (with the file:// prefix). @@ -6,8 +14,9 @@ # For example, in the Nixpkgs repo: # nix-build -E 'with import ./. {}; mkBinaryCache { rootPaths = [hello]; }' -{ name ? "binary-cache" -, rootPaths +{ + name ? "binary-cache", + rootPaths, }: stdenv.mkDerivation { @@ -19,7 +28,13 @@ stdenv.mkDerivation { preferLocalBuild = true; - nativeBuildInputs = [ coreutils jq python3 nix xz ]; + nativeBuildInputs = [ + coreutils + jq + python3 + nix + xz + ]; buildCommand = '' mkdir -p $out/nar diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 5ca5bc3..7328336 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -5,59 +5,72 @@ # script that sets up the right environment variables so that the # compiler and the linker just "work". -{ name ? "" -, lib -, stdenvNoCC -, runtimeShell -, bintools ? null, libc ? null, coreutils ? null, gnugrep ? null -, netbsd ? null, netbsdCross ? null -, sharedLibraryLoader ? - if libc == null then - null - else if stdenvNoCC.targetPlatform.isNetBSD then - if !(targetPackages ? netbsdCross) then - netbsd.ld_elf_so - else if libc != targetPackages.netbsdCross.headers then - targetPackages.netbsdCross.ld_elf_so - else +{ + name ? "", + lib, + stdenvNoCC, + runtimeShell, + bintools ? null, + libc ? null, + coreutils ? null, + gnugrep ? null, + netbsd ? null, + netbsdCross ? null, + sharedLibraryLoader ? + if libc == null then null - else - lib.getLib libc -, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" -, propagateDoc ? bintools != null && bintools ? man -, extraPackages ? [], extraBuildCommands ? "" -, isGNU ? bintools.isGNU or false -, isLLVM ? bintools.isLLVM or false -, isCCTools ? bintools.isCCTools or false -, expand-response-params -, targetPackages ? {} -, useMacosReexportHack ? false -, wrapGas ? false + else if stdenvNoCC.targetPlatform.isNetBSD then + if !(targetPackages ? netbsdCross) then + netbsd.ld_elf_so + else if libc != targetPackages.netbsdCross.headers then + targetPackages.netbsdCross.ld_elf_so + else + null + else + lib.getLib libc, + nativeTools, + noLibc ? false, + nativeLibc, + nativePrefix ? "", + propagateDoc ? bintools != null && bintools ? man, + extraPackages ? [ ], + extraBuildCommands ? "", + isGNU ? bintools.isGNU or false, + isLLVM ? bintools.isLLVM or false, + isCCTools ? bintools.isCCTools or false, + expand-response-params, + targetPackages ? { }, + useMacosReexportHack ? false, + wrapGas ? false, -# Note: the hardening flags are part of the bintools-wrapper, rather than -# the cc-wrapper, because a few of them are handled by the linker. -, defaultHardeningFlags ? [ - "bindnow" - "format" - "fortify" - "fortify3" - "pic" - "relro" - "stackprotector" - "strictoverflow" - ] ++ lib.optional (with stdenvNoCC; - # Musl-based platforms will keep "pie", other platforms will not. - # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` - # in the nixpkgs manual to inform users about the defaults. - targetPlatform.libc == "musl" - # Except when: - # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. - # - static armv7l, where compilation fails. - && !(targetPlatform.isAarch && targetPlatform.isStatic) - ) "pie" + # Note: the hardening flags are part of the bintools-wrapper, rather than + # the cc-wrapper, because a few of them are handled by the linker. + defaultHardeningFlags ? + [ + "bindnow" + "format" + "fortify" + "fortify3" + "pic" + "relro" + "stackprotector" + "strictoverflow" + ] + ++ lib.optional ( + with stdenvNoCC; + # Musl-based platforms will keep "pie", other platforms will not. + # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` + # in the nixpkgs manual to inform users about the defaults. + targetPlatform.libc == "musl" + # Except when: + # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. + # - static armv7l, where compilation fails. + && !(targetPlatform.isAarch && targetPlatform.isStatic) + ) "pie", -# Darwin code signing support utilities -, postLinkSignHook ? null, signingUtils ? null + # Darwin code signing support utilities + postLinkSignHook ? null, + signingUtils ? null, }: assert nativeTools -> !propagateDoc && nativePrefix != ""; @@ -90,8 +103,7 @@ let # # TODO(@Ericson2314) Make unconditional, or optional but always true by # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); + targetPrefix = optionalString (targetPlatform != hostPlatform) (targetPlatform.config + "-"); bintoolsVersion = getVersion bintools; bintoolsName = removePrefix targetPrefix (getName bintools); @@ -104,39 +116,67 @@ let coreutils_bin = optionalString (!nativeTools) (getBin coreutils); # See description in cc-wrapper. - suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; + suffixSalt = + replaceStrings + [ + "-" + "." + ] + [ + "_" + "_" + ] + targetPlatform.config; # The dynamic linker has different names on different platforms. This is a # shell glob that ought to match it. dynamicLinker = - /**/ if sharedLibraryLoader == null then "" - else if targetPlatform.libc == "musl" then "${sharedLibraryLoader}/lib/ld-musl-*" - else if targetPlatform.libc == "uclibc" then "${sharedLibraryLoader}/lib/ld*-uClibc.so.1" - else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker" - else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64" - else if targetPlatform.libc == "nblibc" then "${sharedLibraryLoader}/libexec/ld.elf_so" - else if targetPlatform.system == "i686-linux" then "${sharedLibraryLoader}/lib/ld-linux.so.2" - else if targetPlatform.system == "x86_64-linux" then "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2" + if sharedLibraryLoader == null then + "" + else if targetPlatform.libc == "musl" then + "${sharedLibraryLoader}/lib/ld-musl-*" + else if targetPlatform.libc == "uclibc" then + "${sharedLibraryLoader}/lib/ld*-uClibc.so.1" + else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then + "/system/bin/linker" + else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then + "/system/bin/linker64" + else if targetPlatform.libc == "nblibc" then + "${sharedLibraryLoader}/libexec/ld.elf_so" + else if targetPlatform.system == "i686-linux" then + "${sharedLibraryLoader}/lib/ld-linux.so.2" + else if targetPlatform.system == "x86_64-linux" then + "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2" # ELFv1 (.1) or ELFv2 (.2) ABI - else if targetPlatform.isPower64 then "${sharedLibraryLoader}/lib/ld64.so.*" + else if targetPlatform.isPower64 then + "${sharedLibraryLoader}/lib/ld64.so.*" # ARM with a wildcard, which can be "" or "-armhf". - else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3" - else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" - else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1" - else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1" + else if (with targetPlatform; isAarch32 && isLinux) then + "${sharedLibraryLoader}/lib/ld-linux*.so.3" + else if targetPlatform.system == "aarch64-linux" then + "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" + else if targetPlatform.system == "powerpc-linux" then + "${sharedLibraryLoader}/lib/ld.so.1" + else if targetPlatform.isMips then + "${sharedLibraryLoader}/lib/ld.so.1" # `ld-linux-riscv{32,64}-.so.1` - else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1" - else if targetPlatform.isLoongArch64 then "${sharedLibraryLoader}/lib/ld-linux-loongarch*.so.1" - else if targetPlatform.isDarwin then "/usr/lib/dyld" - else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1" - else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1" - else ""; + else if targetPlatform.isRiscV then + "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1" + else if targetPlatform.isLoongArch64 then + "${sharedLibraryLoader}/lib/ld-linux-loongarch*.so.1" + else if targetPlatform.isDarwin then + "/usr/lib/dyld" + else if targetPlatform.isFreeBSD then + "/libexec/ld-elf.so.1" + else if hasSuffix "pc-gnu" targetPlatform.config then + "ld.so.1" + else + ""; in stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${bintoolsName}-wrapper"); + pname = targetPrefix + (if name != "" then name else "${bintoolsName}-wrapper"); version = optionalString (bintools != null) bintoolsVersion; preferLocalBuild = true; @@ -145,7 +185,15 @@ stdenvNoCC.mkDerivation { passthru = { inherit targetPrefix suffixSalt; - inherit bintools libc nativeTools nativeLibc nativePrefix isGNU isLLVM; + inherit + bintools + libc + nativeTools + nativeLibc + nativePrefix + isGNU + isLLVM + ; emacsBufferSetup = pkgs: '' ; We should handle propagation here too @@ -184,22 +232,27 @@ stdenvNoCC.mkDerivation { } '' - + (if nativeTools then '' - echo ${nativePrefix} > $out/nix-support/orig-bintools + + ( + if nativeTools then + '' + echo ${nativePrefix} > $out/nix-support/orig-bintools - ldPath="${nativePrefix}/bin" - '' else '' - echo $bintools_bin > $out/nix-support/orig-bintools + ldPath="${nativePrefix}/bin" + '' + else + '' + echo $bintools_bin > $out/nix-support/orig-bintools - ldPath="${bintools_bin}/bin" - '' + ldPath="${bintools_bin}/bin" + '' - # Solaris needs an additional ld wrapper. - + optionalString (targetPlatform.isSunOS && nativePrefix != "") '' - ldPath="${nativePrefix}/bin" - exec="$ldPath/${targetPrefix}ld" - wrap ld-solaris ${./ld-solaris-wrapper.sh} - '') + # Solaris needs an additional ld wrapper. + + optionalString (targetPlatform.isSunOS && nativePrefix != "") '' + ldPath="${nativePrefix}/bin" + exec="$ldPath/${targetPrefix}ld" + wrap ld-solaris ${./ld-solaris-wrapper.sh} + '' + ) # If we are asked to wrap `gas` and this bintools has it, # then symlink it (`as` will be symlinked next). @@ -222,16 +275,23 @@ stdenvNoCC.mkDerivation { fi done - '' + (if !useMacosReexportHack then '' - if [ -e ''${ld:-$ldPath/${targetPrefix}ld} ]; then - wrap ${targetPrefix}ld ${./ld-wrapper.sh} ''${ld:-$ldPath/${targetPrefix}ld} - fi - '' else '' - ldInner="${targetPrefix}ld-reexport-delegate" - wrap "$ldInner" ${./macos-sierra-reexport-hack.bash} ''${ld:-$ldPath/${targetPrefix}ld} - wrap "${targetPrefix}ld" ${./ld-wrapper.sh} "$out/bin/$ldInner" - unset ldInner - '') + '' + '' + + ( + if !useMacosReexportHack then + '' + if [ -e ''${ld:-$ldPath/${targetPrefix}ld} ]; then + wrap ${targetPrefix}ld ${./ld-wrapper.sh} ''${ld:-$ldPath/${targetPrefix}ld} + fi + '' + else + '' + ldInner="${targetPrefix}ld-reexport-delegate" + wrap "$ldInner" ${./macos-sierra-reexport-hack.bash} ''${ld:-$ldPath/${targetPrefix}ld} + wrap "${targetPrefix}ld" ${./ld-wrapper.sh} "$out/bin/$ldInner" + unset ldInner + '' + ) + + '' for variant in $ldPath/${targetPrefix}ld.*; do basename=$(basename "$variant") @@ -251,47 +311,54 @@ stdenvNoCC.mkDerivation { ## ## General libc support ## - optionalString (libc != null) ('' - touch "$out/nix-support/libc-ldflags" - echo "-L${libc_lib}${libc.libdir or "/lib"}" >> $out/nix-support/libc-ldflags + optionalString (libc != null) ( + '' + touch "$out/nix-support/libc-ldflags" + echo "-L${libc_lib}${libc.libdir or "/lib"}" >> $out/nix-support/libc-ldflags - echo "${libc_lib}" > $out/nix-support/orig-libc - echo "${libc_dev}" > $out/nix-support/orig-libc-dev - '' + echo "${libc_lib}" > $out/nix-support/orig-libc + echo "${libc_dev}" > $out/nix-support/orig-libc-dev + '' - ## - ## Dynamic linker support - ## - + optionalString (sharedLibraryLoader != null) '' - if [[ -z ''${dynamicLinker+x} ]]; then - echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2 - local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?" - fi - '' + ## + ## Dynamic linker support + ## + + optionalString (sharedLibraryLoader != null) '' + if [[ -z ''${dynamicLinker+x} ]]; then + echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2 + local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?" + fi + '' - # Expand globs to fill array of options - + '' - dynamicLinker=($dynamicLinker) + # Expand globs to fill array of options + + '' + dynamicLinker=($dynamicLinker) - case ''${#dynamicLinker[@]} in - 0) echo "No dynamic linker found for platform '${targetPlatform.config}'." >&2;; - 1) echo "Using dynamic linker: '$dynamicLinker'" >&2;; - *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;; - esac + case ''${#dynamicLinker[@]} in + 0) echo "No dynamic linker found for platform '${targetPlatform.config}'." >&2;; + 1) echo "Using dynamic linker: '$dynamicLinker'" >&2;; + *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;; + esac - if [ -n "''${dynamicLinker-}" ]; then - echo $dynamicLinker > $out/nix-support/dynamic-linker + if [ -n "''${dynamicLinker-}" ]; then + echo $dynamicLinker > $out/nix-support/dynamic-linker - ${if targetPlatform.isDarwin then '' - printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook - '' else optionalString (sharedLibraryLoader != null) '' - if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then - echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32 - fi - touch $out/nix-support/ld-set-dynamic-linker - ''} - fi - '') + ${ + if targetPlatform.isDarwin then + '' + printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook + '' + else + optionalString (sharedLibraryLoader != null) '' + if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then + echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32 + fi + touch $out/nix-support/ld-set-dynamic-linker + '' + } + fi + '' + ) ## ## User env support @@ -301,17 +368,22 @@ stdenvNoCC.mkDerivation { # install the wrapper, you get tools like objdump (same for any # binaries of libc). + optionalString (!nativeTools) '' - printWords ${bintools_bin} ${optionalString (libc != null) libc_bin} > $out/nix-support/propagated-user-env-packages + printWords ${bintools_bin} ${ + optionalString (libc != null) libc_bin + } > $out/nix-support/propagated-user-env-packages '' ## ## Man page and info support ## - + optionalString propagateDoc ('' - ln -s ${bintools.man} $man - '' + optionalString (bintools ? info) '' - ln -s ${bintools.info} $info - '') + + optionalString propagateDoc ( + '' + ln -s ${bintools.man} $man + '' + + optionalString (bintools ? info) '' + ln -s ${bintools.info} $info + '' + ) ## ## Hardening support @@ -379,9 +451,13 @@ stdenvNoCC.mkDerivation { + optionalString targetPlatform.isDarwin ( let inherit (targetPlatform) - darwinPlatform darwinSdkVersion - darwinMinVersion darwinMinVersionVariable; - in '' + darwinPlatform + darwinSdkVersion + darwinMinVersion + darwinMinVersionVariable + ; + in + '' export darwinPlatform=${darwinPlatform} export darwinMinVersion=${darwinMinVersion} export darwinSdkVersion=${darwinSdkVersion} @@ -421,19 +497,34 @@ stdenvNoCC.mkDerivation { shell = (getBin runtimeShell + runtimeShell.shellPath or ""); gnugrep_bin = optionalString (!nativeTools) gnugrep; wrapperName = "BINTOOLS_WRAPPER"; - inherit dynamicLinker targetPrefix suffixSalt coreutils_bin; - inherit bintools_bin libc_bin libc_dev libc_lib; + inherit + dynamicLinker + targetPrefix + suffixSalt + coreutils_bin + ; + inherit + bintools_bin + libc_bin + libc_dev + libc_lib + ; default_hardening_flags_str = builtins.toString defaultHardeningFlags; }; meta = - let bintools_ = optionalAttrs (bintools != null) bintools; in - (optionalAttrs (bintools_ ? meta) (removeAttrs bintools.meta ["priority"])) // - { description = - attrByPath ["meta" "description"] "System binary utilities" bintools_ + let + bintools_ = optionalAttrs (bintools != null) bintools; + in + (optionalAttrs (bintools_ ? meta) (removeAttrs bintools.meta [ "priority" ])) + // { + description = + attrByPath [ + "meta" + "description" + ] "System binary utilities" bintools_ + " (wrapper script)"; priority = 10; - } // optionalAttrs useMacosReexportHack { - platforms = platforms.darwin; - }; + } + // optionalAttrs useMacosReexportHack { platforms = platforms.darwin; }; } diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix index 3ffff74..66c58fe 100644 --- a/pkgs/build-support/build-bazel-package/default.nix +++ b/pkgs/build-support/build-bazel-package/default.nix @@ -1,23 +1,24 @@ -{ stdenv -, cacert -, lib -, writeCBin +{ + stdenv, + cacert, + lib, + writeCBin, }: args@{ - name ? "${args.pname}-${args.version}" -, bazel -, bazelFlags ? [] -, bazelBuildFlags ? [] -, bazelTestFlags ? [] -, bazelRunFlags ? [] -, runTargetFlags ? [] -, bazelFetchFlags ? [] -, bazelTargets ? [] -, bazelTestTargets ? [] -, bazelRunTarget ? null -, buildAttrs -, fetchAttrs + name ? "${args.pname}-${args.version}", + bazel, + bazelFlags ? [ ], + bazelBuildFlags ? [ ], + bazelTestFlags ? [ ], + bazelRunFlags ? [ ], + runTargetFlags ? [ ], + bazelFetchFlags ? [ ], + bazelTargets ? [ ], + bazelTestTargets ? [ ], + bazelRunTarget ? null, + buildAttrs, + fetchAttrs, # Newer versions of Bazel are moving away from built-in rules_cc and instead # allow fetching it as an external dependency in a WORKSPACE file[1]. If @@ -28,44 +29,56 @@ args@{ # project depends on it via an external dependency. # # [1]: https://github.com/bazelbuild/rules_cc -, removeRulesCC ? true -, removeLocalConfigCc ? true -, removeLocal ? true + removeRulesCC ? true, + removeLocalConfigCc ? true, + removeLocal ? true, # Use build --nobuild instead of fetch. This allows fetching the dependencies # required for the build as configured, rather than fetching all the dependencies # which may not work in some situations (e.g. Java code which ends up relying on # Debian-specific /usr/share/java paths, but doesn't in the configured build). -, fetchConfigured ? true + fetchConfigured ? true, # Don’t add Bazel --copt and --linkopt from NIX_CFLAGS_COMPILE / # NIX_LDFLAGS. This is necessary when using a custom toolchain which # Bazel wants all headers / libraries to come from, like when using # CROSSTOOL. Weirdly, we can still get the flags through the wrapped # compiler. -, dontAddBazelOpts ? false -, ... + dontAddBazelOpts ? false, + ... }: let - fArgs = removeAttrs args [ "buildAttrs" "fetchAttrs" "removeRulesCC" ] // { - inherit - name - bazelFlags - bazelBuildFlags - bazelTestFlags - bazelRunFlags - runTargetFlags - bazelFetchFlags - bazelTargets - bazelTestTargets - bazelRunTarget - dontAddBazelOpts - ; - }; + fArgs = + removeAttrs args [ + "buildAttrs" + "fetchAttrs" + "removeRulesCC" + ] + // { + inherit + name + bazelFlags + bazelBuildFlags + bazelTestFlags + bazelRunFlags + runTargetFlags + bazelFetchFlags + bazelTargets + bazelTestTargets + bazelRunTarget + dontAddBazelOpts + ; + }; fBuildAttrs = fArgs // buildAttrs; fFetchAttrs = fArgs // removeAttrs fetchAttrs [ "sha256" ]; - bazelCmd = { cmd, additionalFlags, targets, targetRunFlags ? [ ] }: + bazelCmd = + { + cmd, + additionalFlags, + targets, + targetRunFlags ? [ ], + }: lib.optionalString (targets != [ ]) '' # See footnote called [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables] BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \ @@ -83,7 +96,9 @@ let $bazelFlags \ ${lib.strings.concatStringsSep " " additionalFlags} \ ${lib.strings.concatStringsSep " " targets} \ - ${lib.optionalString (targetRunFlags != []) " -- " + lib.strings.concatStringsSep " " targetRunFlags} + ${ + lib.optionalString (targetRunFlags != [ ]) " -- " + lib.strings.concatStringsSep " " targetRunFlags + } ''; # we need this to chmod dangling symlinks on darwin, gnu coreutils refuses to do so: # chmod: cannot operate on dangling symlink '$symlink' @@ -108,182 +123,216 @@ let } ''; in -stdenv.mkDerivation (fBuildAttrs // { +stdenv.mkDerivation ( + fBuildAttrs + // { - deps = stdenv.mkDerivation (fFetchAttrs // { - name = "${name}-deps.tar.gz"; + deps = stdenv.mkDerivation ( + fFetchAttrs + // { + name = "${name}-deps.tar.gz"; - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or []; + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ fFetchAttrs.impureEnvVars or [ ]; - nativeBuildInputs = fFetchAttrs.nativeBuildInputs or [] ++ [ bazel ]; + nativeBuildInputs = fFetchAttrs.nativeBuildInputs or [ ] ++ [ bazel ]; - preHook = fFetchAttrs.preHook or "" + '' - export bazelOut="$(echo ''${NIX_BUILD_TOP}/output | sed -e 's,//,/,g')" - export bazelUserRoot="$(echo ''${NIX_BUILD_TOP}/tmp | sed -e 's,//,/,g')" - export HOME="$NIX_BUILD_TOP" - export USER="nix" - # This is needed for git_repository with https remotes - export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt" - # This is needed for Bazel fetchers that are themselves programs (e.g. - # rules_go using the go toolchain) - export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" - ''; + preHook = + fFetchAttrs.preHook or "" + + '' + export bazelOut="$(echo ''${NIX_BUILD_TOP}/output | sed -e 's,//,/,g')" + export bazelUserRoot="$(echo ''${NIX_BUILD_TOP}/tmp | sed -e 's,//,/,g')" + export HOME="$NIX_BUILD_TOP" + export USER="nix" + # This is needed for git_repository with https remotes + export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt" + # This is needed for Bazel fetchers that are themselves programs (e.g. + # rules_go using the go toolchain) + export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" + ''; - buildPhase = fFetchAttrs.buildPhase or '' - runHook preBuild + buildPhase = + fFetchAttrs.buildPhase or '' + runHook preBuild - ${ - bazelCmd { - cmd = if fetchConfigured then "build --nobuild" else "fetch"; - additionalFlags = [ - # We disable multithreading for the fetching phase since it can lead to timeouts with many dependencies/threads: - # https://github.com/bazelbuild/bazel/issues/6502 - "--loading_phase_threads=1" - "$bazelFetchFlags" - ] ++ (if fetchConfigured then ["--jobs" "$NIX_BUILD_CORES"] else []); - targets = fFetchAttrs.bazelTargets ++ fFetchAttrs.bazelTestTargets; + ${bazelCmd { + cmd = if fetchConfigured then "build --nobuild" else "fetch"; + additionalFlags = + [ + # We disable multithreading for the fetching phase since it can lead to timeouts with many dependencies/threads: + # https://github.com/bazelbuild/bazel/issues/6502 + "--loading_phase_threads=1" + "$bazelFetchFlags" + ] + ++ ( + if fetchConfigured then + [ + "--jobs" + "$NIX_BUILD_CORES" + ] + else + [ ] + ); + targets = fFetchAttrs.bazelTargets ++ fFetchAttrs.bazelTestTargets; + }} + + runHook postBuild + ''; + + installPhase = + fFetchAttrs.installPhase or ( + '' + runHook preInstall + + # Remove all built in external workspaces, Bazel will recreate them when building + rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker} + ${lib.optionalString removeRulesCC "rm -rf $bazelOut/external/{rules_cc,\\@rules_cc.marker}"} + rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker} + ${lib.optionalString removeLocalConfigCc "rm -rf $bazelOut/external/{local_config_cc,\\@local_config_cc.marker}"} + ${lib.optionalString removeLocal "rm -rf $bazelOut/external/{local_*,\\@local_*.marker}"} + + # Clear markers + find $bazelOut/external -name '@*\.marker' -exec sh -c 'echo > {}' \; + + # Remove all vcs files + rm -rf $(find $bazelOut/external -type d -name .git) + rm -rf $(find $bazelOut/external -type d -name .svn) + rm -rf $(find $bazelOut/external -type d -name .hg) + + # Removing top-level symlinks along with their markers. + # This is needed because they sometimes point to temporary paths (?). + # For example, in Tensorflow-gpu build: + # platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms + find $bazelOut/external -maxdepth 1 -type l | while read symlink; do + name="$(basename "$symlink")" + rm "$symlink" + test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker" || true + done + + # Patching symlinks to remove build directory reference + find $bazelOut/external -type l | while read symlink; do + new_target="$(readlink "$symlink" | sed "s,$NIX_BUILD_TOP,NIX_BUILD_TOP,")" + rm "$symlink" + ln -sf "$new_target" "$symlink" + '' + + lib.optionalString stdenv.isDarwin '' + # on linux symlink permissions cannot be modified, so we modify those on darwin to match the linux ones + ${chmodder}/bin/chmodder "$symlink" + '' + + '' + done + + echo '${bazel.name}' > $bazelOut/external/.nix-bazel-version + + (cd $bazelOut/ && tar czf $out --sort=name --mtime='@1' --owner=0 --group=0 --numeric-owner external/) + + runHook postInstall + '' + ); + + dontFixup = true; + allowedRequisites = [ ]; + + outputHashAlgo = "sha256"; + outputHash = fetchAttrs.sha256; + } + ); + + nativeBuildInputs = fBuildAttrs.nativeBuildInputs or [ ] ++ [ + (bazel.override { enableNixHacks = true; }) + ]; + + preHook = + fBuildAttrs.preHook or "" + + '' + export bazelOut="$NIX_BUILD_TOP/output" + export bazelUserRoot="$NIX_BUILD_TOP/tmp" + export HOME="$NIX_BUILD_TOP" + ''; + + preConfigure = + '' + mkdir -p "$bazelOut" + + (cd $bazelOut && tar xfz $deps) + + test "${bazel.name}" = "$(<$bazelOut/external/.nix-bazel-version)" || { + echo "fixed output derivation was built for a different bazel version" >&2 + echo " got: $(<$bazelOut/external/.nix-bazel-version)" >&2 + echo "expected: ${bazel.name}" >&2 + exit 1 } - } - runHook postBuild - ''; + chmod -R +w $bazelOut + find $bazelOut -type l | while read symlink; do + if [[ $(readlink "$symlink") == *NIX_BUILD_TOP* ]]; then + ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink" + fi + done + '' + + fBuildAttrs.preConfigure or ""; - installPhase = fFetchAttrs.installPhase or ('' - runHook preInstall + buildPhase = + fBuildAttrs.buildPhase or '' + runHook preBuild - # Remove all built in external workspaces, Bazel will recreate them when building - rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker} - ${lib.optionalString removeRulesCC "rm -rf $bazelOut/external/{rules_cc,\\@rules_cc.marker}"} - rm -rf $bazelOut/external/{embedded_jdk,\@embedded_jdk.marker} - ${lib.optionalString removeLocalConfigCc "rm -rf $bazelOut/external/{local_config_cc,\\@local_config_cc.marker}"} - ${lib.optionalString removeLocal "rm -rf $bazelOut/external/{local_*,\\@local_*.marker}"} + # Bazel sandboxes the execution of the tools it invokes, so even though we are + # calling the correct nix wrappers, the values of the environment variables + # the wrappers are expecting will not be set. So instead of relying on the + # wrappers picking them up, pass them in explicitly via `--copt`, `--linkopt` + # and related flags. - # Clear markers - find $bazelOut/external -name '@*\.marker' -exec sh -c 'echo > {}' \; + copts=() + host_copts=() + linkopts=() + host_linkopts=() + if [ -z "''${dontAddBazelOpts:-}" ]; then + for flag in $NIX_CFLAGS_COMPILE; do + copts+=( "--copt=$flag" ) + host_copts+=( "--host_copt=$flag" ) + done + for flag in $NIX_CXXSTDLIB_COMPILE; do + copts+=( "--copt=$flag" ) + host_copts+=( "--host_copt=$flag" ) + done + for flag in $NIX_LDFLAGS; do + linkopts+=( "--linkopt=-Wl,$flag" ) + host_linkopts+=( "--host_linkopt=-Wl,$flag" ) + done + fi - # Remove all vcs files - rm -rf $(find $bazelOut/external -type d -name .git) - rm -rf $(find $bazelOut/external -type d -name .svn) - rm -rf $(find $bazelOut/external -type d -name .hg) - - # Removing top-level symlinks along with their markers. - # This is needed because they sometimes point to temporary paths (?). - # For example, in Tensorflow-gpu build: - # platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms - find $bazelOut/external -maxdepth 1 -type l | while read symlink; do - name="$(basename "$symlink")" - rm "$symlink" - test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker" || true - done - - # Patching symlinks to remove build directory reference - find $bazelOut/external -type l | while read symlink; do - new_target="$(readlink "$symlink" | sed "s,$NIX_BUILD_TOP,NIX_BUILD_TOP,")" - rm "$symlink" - ln -sf "$new_target" "$symlink" - '' + lib.optionalString stdenv.isDarwin '' - # on linux symlink permissions cannot be modified, so we modify those on darwin to match the linux ones - ${chmodder}/bin/chmodder "$symlink" - '' + '' - done - - echo '${bazel.name}' > $bazelOut/external/.nix-bazel-version - - (cd $bazelOut/ && tar czf $out --sort=name --mtime='@1' --owner=0 --group=0 --numeric-owner external/) - - runHook postInstall - ''); - - dontFixup = true; - allowedRequisites = []; - - outputHashAlgo = "sha256"; - outputHash = fetchAttrs.sha256; - }); - - nativeBuildInputs = fBuildAttrs.nativeBuildInputs or [] ++ [ (bazel.override { enableNixHacks = true; }) ]; - - preHook = fBuildAttrs.preHook or "" + '' - export bazelOut="$NIX_BUILD_TOP/output" - export bazelUserRoot="$NIX_BUILD_TOP/tmp" - export HOME="$NIX_BUILD_TOP" - ''; - - preConfigure = '' - mkdir -p "$bazelOut" - - (cd $bazelOut && tar xfz $deps) - - test "${bazel.name}" = "$(<$bazelOut/external/.nix-bazel-version)" || { - echo "fixed output derivation was built for a different bazel version" >&2 - echo " got: $(<$bazelOut/external/.nix-bazel-version)" >&2 - echo "expected: ${bazel.name}" >&2 - exit 1 - } - - chmod -R +w $bazelOut - find $bazelOut -type l | while read symlink; do - if [[ $(readlink "$symlink") == *NIX_BUILD_TOP* ]]; then - ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink" - fi - done - '' + fBuildAttrs.preConfigure or ""; - - buildPhase = fBuildAttrs.buildPhase or '' - runHook preBuild - - # Bazel sandboxes the execution of the tools it invokes, so even though we are - # calling the correct nix wrappers, the values of the environment variables - # the wrappers are expecting will not be set. So instead of relying on the - # wrappers picking them up, pass them in explicitly via `--copt`, `--linkopt` - # and related flags. - - copts=() - host_copts=() - linkopts=() - host_linkopts=() - if [ -z "''${dontAddBazelOpts:-}" ]; then - for flag in $NIX_CFLAGS_COMPILE; do - copts+=( "--copt=$flag" ) - host_copts+=( "--host_copt=$flag" ) - done - for flag in $NIX_CXXSTDLIB_COMPILE; do - copts+=( "--copt=$flag" ) - host_copts+=( "--host_copt=$flag" ) - done - for flag in $NIX_LDFLAGS; do - linkopts+=( "--linkopt=-Wl,$flag" ) - host_linkopts+=( "--host_linkopt=-Wl,$flag" ) - done - fi - - ${ - bazelCmd { - cmd = "test"; - additionalFlags = - ["--test_output=errors"] ++ fBuildAttrs.bazelTestFlags ++ ["--jobs" "$NIX_BUILD_CORES"]; - targets = fBuildAttrs.bazelTestTargets; - } - } - ${ - bazelCmd { - cmd = "build"; - additionalFlags = fBuildAttrs.bazelBuildFlags ++ ["--jobs" "$NIX_BUILD_CORES"]; - targets = fBuildAttrs.bazelTargets; - } - } - ${ - bazelCmd { - cmd = "run"; - additionalFlags = fBuildAttrs.bazelRunFlags ++ [ "--jobs" "$NIX_BUILD_CORES" ]; - # Bazel run only accepts a single target, but `bazelCmd` expects `targets` to be a list. - targets = lib.optionals (fBuildAttrs.bazelRunTarget != null) [ fBuildAttrs.bazelRunTarget ]; - targetRunFlags = fBuildAttrs.runTargetFlags; - } - } - runHook postBuild - ''; -}) + ${bazelCmd { + cmd = "test"; + additionalFlags = + [ "--test_output=errors" ] + ++ fBuildAttrs.bazelTestFlags + ++ [ + "--jobs" + "$NIX_BUILD_CORES" + ]; + targets = fBuildAttrs.bazelTestTargets; + }} + ${bazelCmd { + cmd = "build"; + additionalFlags = fBuildAttrs.bazelBuildFlags ++ [ + "--jobs" + "$NIX_BUILD_CORES" + ]; + targets = fBuildAttrs.bazelTargets; + }} + ${bazelCmd { + cmd = "run"; + additionalFlags = fBuildAttrs.bazelRunFlags ++ [ + "--jobs" + "$NIX_BUILD_CORES" + ]; + # Bazel run only accepts a single target, but `bazelCmd` expects `targets` to be a list. + targets = lib.optionals (fBuildAttrs.bazelRunTarget != null) [ fBuildAttrs.bazelRunTarget ]; + targetRunFlags = fBuildAttrs.runTargetFlags; + }} + runHook postBuild + ''; + } +) # [USER and BAZEL_USE_CPP_ONLY_TOOLCHAIN variables]: # Bazel computes the default value of output_user_root before parsing the diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix index 1e34ad1..db04260 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix @@ -1,22 +1,24 @@ -{ lib -, stdenv -, runCommandLocal -, buildEnv -, writeText -, writeShellScriptBin -, pkgs -, pkgsi686Linux +{ + lib, + stdenv, + runCommandLocal, + buildEnv, + writeText, + writeShellScriptBin, + pkgs, + pkgsi686Linux, }: -{ profile ? "" -, targetPkgs ? pkgs: [] -, multiPkgs ? pkgs: [] -, multiArch ? false # Whether to include 32bit packages -, extraBuildCommands ? "" -, extraBuildCommandsMulti ? "" -, extraOutputsToInstall ? [] -, ... # for name, or pname+version -} @ args: +{ + profile ? "", + targetPkgs ? pkgs: [ ], + multiPkgs ? pkgs: [ ], + multiArch ? false, # Whether to include 32bit packages + extraBuildCommands ? "", + extraBuildCommandsMulti ? "", + extraOutputsToInstall ? [ ], + ... # for name, or pname+version +}@args: # HOWTO: # All packages (most likely programs) returned from targetPkgs will only be @@ -36,9 +38,7 @@ let inherit (stdenv) is64bit; - name = if (args ? pname && args ? version) - then "${args.pname}-${args.version}" - else args.name; + name = if (args ? pname && args ? version) then "${args.pname}-${args.version}" else args.name; # "use of glibc_multi is only supported on x86_64-linux" isMultiBuild = multiArch && stdenv.system == "x86_64-linux"; @@ -46,7 +46,7 @@ let # list of packages (usually programs) which match the host's architecture # (which includes stuff from multiPkgs) - targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [] else multiPkgs pkgs); + targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [ ] else multiPkgs pkgs); # list of packages which are for x86 (only multiPkgs, only for x86_64 hosts) multiPaths = multiPkgs pkgsi686Linux; @@ -74,13 +74,13 @@ let bzip2 xz ]; - baseMultiPaths = with pkgsi686Linux; [ - (toString gcc.cc.lib) - ]; + baseMultiPaths = with pkgsi686Linux; [ (toString gcc.cc.lib) ]; ldconfig = writeShellScriptBin "ldconfig" '' # due to a glibc bug, 64-bit ldconfig complains about patchelf'd 32-bit libraries, so we use 32-bit ldconfig when we have them - exec ${if isMultiBuild then pkgsi686Linux.glibc.bin else pkgs.glibc.bin}/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@" + exec ${ + if isMultiBuild then pkgsi686Linux.glibc.bin else pkgs.glibc.bin + }/bin/ldconfig -f /etc/ld.so.conf -C /etc/ld.so.cache "$@" ''; etcProfile = writeText "profile" '' @@ -135,8 +135,15 @@ let staticUsrProfileTarget = buildEnv { name = "${name}-usr-target"; # ldconfig wrapper must come first so it overrides the original ldconfig - paths = [ etcPkg ldconfig ] ++ baseTargetPaths ++ targetPaths; - extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall; + paths = [ + etcPkg + ldconfig + ] ++ baseTargetPaths ++ targetPaths; + extraOutputsToInstall = [ + "out" + "lib" + "bin" + ] ++ extraOutputsToInstall; ignoreCollisions = true; postBuild = '' if [[ -d $out/share/gsettings-schemas/ ]]; then @@ -172,7 +179,10 @@ let staticUsrProfileMulti = buildEnv { name = "${name}-usr-multi"; paths = baseMultiPaths ++ multiPaths; - extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall; + extraOutputsToInstall = [ + "out" + "lib" + ] ++ extraOutputsToInstall; ignoreCollisions = true; }; @@ -207,60 +217,71 @@ let ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/ ''; - setupLibDirs = if isTargetBuild - then setupLibDirsTarget - else setupLibDirsMulti; + setupLibDirs = if isTargetBuild then setupLibDirsTarget else setupLibDirsMulti; # the target profile is the actual profile that will be used for the chroot - setupTargetProfile = '' - mkdir -m0755 usr - pushd usr + setupTargetProfile = + '' + mkdir -m0755 usr + pushd usr - ${setupLibDirs} + ${setupLibDirs} - '' + lib.optionalString isMultiBuild '' - if [ -d "${staticUsrProfileMulti}/share" ]; then - cp -rLf ${staticUsrProfileMulti}/share share - fi - '' + '' - if [ -d "${staticUsrProfileTarget}/share" ]; then - if [ -d share ]; then - chmod -R 755 share - cp -rLTf ${staticUsrProfileTarget}/share share - else - cp -rsHf ${staticUsrProfileTarget}/share share + '' + + lib.optionalString isMultiBuild '' + if [ -d "${staticUsrProfileMulti}/share" ]; then + cp -rLf ${staticUsrProfileMulti}/share share fi - fi - for i in bin sbin include; do - if [ -d "${staticUsrProfileTarget}/$i" ]; then - cp -rsHf "${staticUsrProfileTarget}/$i" "$i" + '' + + '' + if [ -d "${staticUsrProfileTarget}/share" ]; then + if [ -d share ]; then + chmod -R 755 share + cp -rLTf ${staticUsrProfileTarget}/share share + else + cp -rsHf ${staticUsrProfileTarget}/share share + fi fi - done - cd .. + for i in bin sbin include; do + if [ -d "${staticUsrProfileTarget}/$i" ]; then + cp -rsHf "${staticUsrProfileTarget}/$i" "$i" + fi + done + cd .. - for i in var etc opt; do - if [ -d "${staticUsrProfileTarget}/$i" ]; then - cp -rsHf "${staticUsrProfileTarget}/$i" "$i" - fi - done - for i in usr/{bin,sbin,lib,lib32,lib64}; do - if [ -d "$i" ]; then - ln -s "$i" - fi - done + for i in var etc opt; do + if [ -d "${staticUsrProfileTarget}/$i" ]; then + cp -rsHf "${staticUsrProfileTarget}/$i" "$i" + fi + done + for i in usr/{bin,sbin,lib,lib32,lib64}; do + if [ -d "$i" ]; then + ln -s "$i" + fi + done - popd - ''; + popd + ''; -in runCommandLocal "${name}-fhs" { - passthru = { - inherit args baseTargetPaths targetPaths baseMultiPaths ldconfig isMultiBuild; - }; -} '' - mkdir -p $out - pushd $out +in +runCommandLocal "${name}-fhs" + { + passthru = { + inherit + args + baseTargetPaths + targetPaths + baseMultiPaths + ldconfig + isMultiBuild + ; + }; + } + '' + mkdir -p $out + pushd $out - ${setupTargetProfile} - ${extraBuildCommands} - ${lib.optionalString isMultiBuild extraBuildCommandsMulti} -'' + ${setupTargetProfile} + ${extraBuildCommands} + ${lib.optionalString isMultiBuild extraBuildCommandsMulti} + '' diff --git a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix index 12f3e7d..21b8b03 100644 --- a/pkgs/build-support/build-fhsenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhsenv-bubblewrap/default.nix @@ -1,30 +1,32 @@ -{ lib -, stdenv -, callPackage -, runCommandLocal -, writeShellScript -, glibc -, pkgsi686Linux -, coreutils -, bubblewrap +{ + lib, + stdenv, + callPackage, + runCommandLocal, + writeShellScript, + glibc, + pkgsi686Linux, + coreutils, + bubblewrap, }: -{ runScript ? "bash" -, extraInstallCommands ? "" -, meta ? {} -, passthru ? {} -, extraPreBwrapCmds ? "" -, extraBwrapArgs ? [] -, unshareUser ? false -, unshareIpc ? false -, unsharePid ? false -, unshareNet ? false -, unshareUts ? false -, unshareCgroup ? false -, privateTmp ? false -, dieWithParent ? true -, ... -} @ args: +{ + runScript ? "bash", + extraInstallCommands ? "", + meta ? { }, + passthru ? { }, + extraPreBwrapCmds ? "", + extraBwrapArgs ? [ ], + unshareUser ? false, + unshareIpc ? false, + unsharePid ? false, + unshareNet ? false, + unshareUts ? false, + unshareCgroup ? false, + privateTmp ? false, + dieWithParent ? true, + ... +}@args: assert (!args ? pname || !args ? version) -> (args ? name); # You must provide name if pname or version (preferred) is missing. @@ -43,59 +45,82 @@ let name = args.name or "${args.pname}-${args.version}"; executableName = args.pname or args.name; # we don't know which have been supplied, and want to avoid defaulting missing attrs to null. Passed into runCommandLocal - nameAttrs = lib.filterAttrs (key: value: builtins.elem key [ "name" "pname" "version" ]) args; + nameAttrs = lib.filterAttrs ( + key: value: + builtins.elem key [ + "name" + "pname" + "version" + ] + ) args; buildFHSEnv = callPackage ./buildFHSEnv.nix { }; - fhsenv = buildFHSEnv (removeAttrs args [ - "runScript" "extraInstallCommands" "meta" "passthru" "extraPreBwrapCmds" "extraBwrapArgs" "dieWithParent" - "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" "privateTmp" - ]); + fhsenv = buildFHSEnv ( + removeAttrs args [ + "runScript" + "extraInstallCommands" + "meta" + "passthru" + "extraPreBwrapCmds" + "extraBwrapArgs" + "dieWithParent" + "unshareUser" + "unshareCgroup" + "unshareUts" + "unshareNet" + "unsharePid" + "unshareIpc" + "privateTmp" + ] + ); - etcBindEntries = let - files = [ - # NixOS Compatibility - "static" - "nix" # mainly for nixUnstable users, but also for access to nix/netrc - # Shells - "shells" - "bashrc" - "zshenv" - "zshrc" - "zinputrc" - "zprofile" - # Users, Groups, NSS - "passwd" - "group" - "shadow" - "hosts" - "resolv.conf" - "nsswitch.conf" - # User profiles - "profiles" - # Sudo & Su - "login.defs" - "sudoers" - "sudoers.d" - # Time - "localtime" - "zoneinfo" - # Other Core Stuff - "machine-id" - "os-release" - # PAM - "pam.d" - # Fonts - "fonts" - # ALSA - "alsa" - "asound.conf" - # SSL - "ssl/certs" - "ca-certificates" - "pki" - ]; - in map (path: "/etc/${path}") files; + etcBindEntries = + let + files = [ + # NixOS Compatibility + "static" + "nix" # mainly for nixUnstable users, but also for access to nix/netrc + # Shells + "shells" + "bashrc" + "zshenv" + "zshrc" + "zinputrc" + "zprofile" + # Users, Groups, NSS + "passwd" + "group" + "shadow" + "hosts" + "resolv.conf" + "nsswitch.conf" + # User profiles + "profiles" + # Sudo & Su + "login.defs" + "sudoers" + "sudoers.d" + # Time + "localtime" + "zoneinfo" + # Other Core Stuff + "machine-id" + "os-release" + # PAM + "pam.d" + # Fonts + "fonts" + # ALSA + "alsa" + "asound.conf" + # SSL + "ssl/certs" + "ca-certificates" + "pki" + ]; + in + map (path: "/etc/${path}") files; # Create this on the fly instead of linking from /nix # The container might have to modify it and re-run ldconfig if there are @@ -117,173 +142,187 @@ let EOF ldconfig &> /dev/null ''; - init = run: writeShellScript "${name}-init" '' - source /etc/profile - ${createLdConfCache} - exec ${run} "$@" - ''; + init = + run: + writeShellScript "${name}-init" '' + source /etc/profile + ${createLdConfCache} + exec ${run} "$@" + ''; indentLines = str: concatLines (map (s: " " + s) (filter (s: s != "") (splitString "\n" str))); - bwrapCmd = { initArgs ? "" }: '' - ${extraPreBwrapCmds} - ignored=(/nix /dev /proc /etc ${optionalString privateTmp "/tmp"}) - ro_mounts=() - symlinks=() - etc_ignored=() + bwrapCmd = + { + initArgs ? "", + }: + '' + ${extraPreBwrapCmds} + ignored=(/nix /dev /proc /etc ${optionalString privateTmp "/tmp"}) + ro_mounts=() + symlinks=() + etc_ignored=() - # loop through all entries of root in the fhs environment, except its /etc. - for i in ${fhsenv}/*; do - path="/''${i##*/}" - if [[ $path == '/etc' ]]; then - : - elif [[ -L $i ]]; then - symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path") - ignored+=("$path") - else - ro_mounts+=(--ro-bind "$i" "$path") - ignored+=("$path") - fi - done - - # loop through the entries of /etc in the fhs environment. - if [[ -d ${fhsenv}/etc ]]; then - for i in ${fhsenv}/etc/*; do + # loop through all entries of root in the fhs environment, except its /etc. + for i in ${fhsenv}/*; do path="/''${i##*/}" - # NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we - # don't want to override it with a path from the FHS environment. - if [[ $path == '/fonts' || $path == '/ssl' ]]; then + if [[ $path == '/etc' ]]; then + : + elif [[ -L $i ]]; then + symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path") + ignored+=("$path") + else + ro_mounts+=(--ro-bind "$i" "$path") + ignored+=("$path") + fi + done + + # loop through the entries of /etc in the fhs environment. + if [[ -d ${fhsenv}/etc ]]; then + for i in ${fhsenv}/etc/*; do + path="/''${i##*/}" + # NOTE: we're binding /etc/fonts and /etc/ssl/certs from the host so we + # don't want to override it with a path from the FHS environment. + if [[ $path == '/fonts' || $path == '/ssl' ]]; then + continue + fi + if [[ -L $i ]]; then + symlinks+=(--symlink "$i" "/etc$path") + else + ro_mounts+=(--ro-bind "$i" "/etc$path") + fi + etc_ignored+=("/etc$path") + done + fi + + # propagate /etc from the actual host if nested + if [[ -e /.host-etc ]]; then + ro_mounts+=(--ro-bind /.host-etc /.host-etc) + else + ro_mounts+=(--ro-bind /etc /.host-etc) + fi + + # link selected etc entries from the actual root + for i in ${escapeShellArgs etcBindEntries}; do + if [[ "''${etc_ignored[@]}" =~ "$i" ]]; then continue fi - if [[ -L $i ]]; then - symlinks+=(--symlink "$i" "/etc$path") - else - ro_mounts+=(--ro-bind "$i" "/etc$path") + if [[ -e $i ]]; then + symlinks+=(--symlink "/.host-etc/''${i#/etc/}" "$i") fi - etc_ignored+=("/etc$path") done - fi - # propagate /etc from the actual host if nested - if [[ -e /.host-etc ]]; then - ro_mounts+=(--ro-bind /.host-etc /.host-etc) - else - ro_mounts+=(--ro-bind /etc /.host-etc) - fi - - # link selected etc entries from the actual root - for i in ${escapeShellArgs etcBindEntries}; do - if [[ "''${etc_ignored[@]}" =~ "$i" ]]; then - continue - fi - if [[ -e $i ]]; then - symlinks+=(--symlink "/.host-etc/''${i#/etc/}" "$i") - fi - done - - declare -a auto_mounts - # loop through all directories in the root - for dir in /*; do - # if it is a directory and it is not ignored - if [[ -d "$dir" ]] && [[ ! "''${ignored[@]}" =~ "$dir" ]]; then - # add it to the mount list - auto_mounts+=(--bind "$dir" "$dir") - fi - done - - declare -a x11_args - # Always mount a tmpfs on /tmp/.X11-unix - # Rationale: https://github.com/flatpak/flatpak/blob/be2de97e862e5ca223da40a895e54e7bf24dbfb9/common/flatpak-run.c#L277 - x11_args+=(--tmpfs /tmp/.X11-unix) - - # Try to guess X socket path. This doesn't cover _everything_, but it covers some things. - if [[ "$DISPLAY" == :* ]]; then - display_nr=''${DISPLAY#?} - local_socket=/tmp/.X11-unix/X$display_nr - x11_args+=(--ro-bind-try "$local_socket" "$local_socket") - fi - - ${optionalString privateTmp '' - # sddm places XAUTHORITY in /tmp - if [[ "$XAUTHORITY" == /tmp/* ]]; then - x11_args+=(--ro-bind-try "$XAUTHORITY" "$XAUTHORITY") - fi - - # dbus-run-session puts the socket in /tmp - IFS=";" read -ra addrs <<<"$DBUS_SESSION_BUS_ADDRESS" - for addr in "''${addrs[@]}"; do - [[ "$addr" == unix:* ]] || continue - IFS="," read -ra parts <<<"''${addr#unix:}" - for part in "''${parts[@]}"; do - printf -v part '%s' "''${part//\\/\\\\}" - printf -v part '%b' "''${part//%/\\x}" - [[ "$part" == path=/tmp/* ]] || continue - x11_args+=(--ro-bind-try "''${part#path=}" "''${part#path=}") + declare -a auto_mounts + # loop through all directories in the root + for dir in /*; do + # if it is a directory and it is not ignored + if [[ -d "$dir" ]] && [[ ! "''${ignored[@]}" =~ "$dir" ]]; then + # add it to the mount list + auto_mounts+=(--bind "$dir" "$dir") + fi done - done - ''} - cmd=( - ${bubblewrap}/bin/bwrap - --dev-bind /dev /dev - --proc /proc - --chdir "$(pwd)" - ${optionalString unshareUser "--unshare-user"} - ${optionalString unshareIpc "--unshare-ipc"} - ${optionalString unsharePid "--unshare-pid"} - ${optionalString unshareNet "--unshare-net"} - ${optionalString unshareUts "--unshare-uts"} - ${optionalString unshareCgroup "--unshare-cgroup"} - ${optionalString dieWithParent "--die-with-parent"} - --ro-bind /nix /nix - ${optionalString privateTmp "--tmpfs /tmp"} - # Our glibc will look for the cache in its own path in `/nix/store`. - # As such, we need a cache to exist there, because pressure-vessel - # depends on the existence of an ld cache. However, adding one - # globally proved to be a bad idea (see #100655), the solution we - # settled on being mounting one via bwrap. - # Also, the cache needs to go to both 32 and 64 bit glibcs, for games - # of both architectures to work. - --tmpfs ${glibc}/etc \ - --tmpfs /etc \ - --symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \ - --symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \ - --ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \ - --remount-ro ${glibc}/etc \ - '' + optionalString fhsenv.isMultiBuild (indentLines '' + declare -a x11_args + # Always mount a tmpfs on /tmp/.X11-unix + # Rationale: https://github.com/flatpak/flatpak/blob/be2de97e862e5ca223da40a895e54e7bf24dbfb9/common/flatpak-run.c#L277 + x11_args+=(--tmpfs /tmp/.X11-unix) + + # Try to guess X socket path. This doesn't cover _everything_, but it covers some things. + if [[ "$DISPLAY" == :* ]]; then + display_nr=''${DISPLAY#?} + local_socket=/tmp/.X11-unix/X$display_nr + x11_args+=(--ro-bind-try "$local_socket" "$local_socket") + fi + + ${optionalString privateTmp '' + # sddm places XAUTHORITY in /tmp + if [[ "$XAUTHORITY" == /tmp/* ]]; then + x11_args+=(--ro-bind-try "$XAUTHORITY" "$XAUTHORITY") + fi + + # dbus-run-session puts the socket in /tmp + IFS=";" read -ra addrs <<<"$DBUS_SESSION_BUS_ADDRESS" + for addr in "''${addrs[@]}"; do + [[ "$addr" == unix:* ]] || continue + IFS="," read -ra parts <<<"''${addr#unix:}" + for part in "''${parts[@]}"; do + printf -v part '%s' "''${part//\\/\\\\}" + printf -v part '%b' "''${part//%/\\x}" + [[ "$part" == path=/tmp/* ]] || continue + x11_args+=(--ro-bind-try "''${part#path=}" "''${part#path=}") + done + done + ''} + + cmd=( + ${bubblewrap}/bin/bwrap + --dev-bind /dev /dev + --proc /proc + --chdir "$(pwd)" + ${optionalString unshareUser "--unshare-user"} + ${optionalString unshareIpc "--unshare-ipc"} + ${optionalString unsharePid "--unshare-pid"} + ${optionalString unshareNet "--unshare-net"} + ${optionalString unshareUts "--unshare-uts"} + ${optionalString unshareCgroup "--unshare-cgroup"} + ${optionalString dieWithParent "--die-with-parent"} + --ro-bind /nix /nix + ${optionalString privateTmp "--tmpfs /tmp"} + # Our glibc will look for the cache in its own path in `/nix/store`. + # As such, we need a cache to exist there, because pressure-vessel + # depends on the existence of an ld cache. However, adding one + # globally proved to be a bad idea (see #100655), the solution we + # settled on being mounting one via bwrap. + # Also, the cache needs to go to both 32 and 64 bit glibcs, for games + # of both architectures to work. + --tmpfs ${glibc}/etc \ + --tmpfs /etc \ + --symlink /etc/ld.so.conf ${glibc}/etc/ld.so.conf \ + --symlink /etc/ld.so.cache ${glibc}/etc/ld.so.cache \ + --ro-bind ${glibc}/etc/rpc ${glibc}/etc/rpc \ + --remount-ro ${glibc}/etc \ + '' + + optionalString fhsenv.isMultiBuild (indentLines '' --tmpfs ${pkgsi686Linux.glibc}/etc \ --symlink /etc/ld.so.conf ${pkgsi686Linux.glibc}/etc/ld.so.conf \ --symlink /etc/ld.so.cache ${pkgsi686Linux.glibc}/etc/ld.so.cache \ --ro-bind ${pkgsi686Linux.glibc}/etc/rpc ${pkgsi686Linux.glibc}/etc/rpc \ --remount-ro ${pkgsi686Linux.glibc}/etc \ - '') + '' - "''${ro_mounts[@]}" - "''${symlinks[@]}" - "''${auto_mounts[@]}" - "''${x11_args[@]}" - ${concatStringsSep "\n " extraBwrapArgs} - ${init runScript} ${initArgs} - ) - exec "''${cmd[@]}" - ''; - - bin = writeShellScript "${name}-bwrap" (bwrapCmd { initArgs = ''"$@"''; }); -in runCommandLocal name (nameAttrs // { - inherit meta; - - passthru = passthru // { - env = runCommandLocal "${name}-shell-env" { - shellHook = bwrapCmd {}; - } '' - echo >&2 "" - echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" - echo >&2 "" - exit 1 + '') + + '' + "''${ro_mounts[@]}" + "''${symlinks[@]}" + "''${auto_mounts[@]}" + "''${x11_args[@]}" + ${concatStringsSep "\n " extraBwrapArgs} + ${init runScript} ${initArgs} + ) + exec "''${cmd[@]}" ''; - inherit args fhsenv; - }; -}) '' - mkdir -p $out/bin - ln -s ${bin} $out/bin/${executableName} - ${extraInstallCommands} -'' + bin = writeShellScript "${name}-bwrap" (bwrapCmd { + initArgs = ''"$@"''; + }); +in +runCommandLocal name + ( + nameAttrs + // { + inherit meta; + + passthru = passthru // { + env = runCommandLocal "${name}-shell-env" { shellHook = bwrapCmd { }; } '' + echo >&2 "" + echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" + echo >&2 "" + exit 1 + ''; + inherit args fhsenv; + }; + } + ) + '' + mkdir -p $out/bin + ln -s ${bin} $out/bin/${executableName} + + ${extraInstallCommands} + '' diff --git a/pkgs/build-support/build-fhsenv-chroot/chrootenv/default.nix b/pkgs/build-support/build-fhsenv-chroot/chrootenv/default.nix index 32ac43d..d72ba68 100644 --- a/pkgs/build-support/build-fhsenv-chroot/chrootenv/default.nix +++ b/pkgs/build-support/build-fhsenv-chroot/chrootenv/default.nix @@ -1,10 +1,21 @@ -{ lib, stdenv, meson, ninja, pkg-config, glib }: +{ + lib, + stdenv, + meson, + ninja, + pkg-config, + glib, +}: stdenv.mkDerivation { name = "chrootenv"; src = ./src; - nativeBuildInputs = [ meson ninja pkg-config ]; + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; buildInputs = [ glib ]; meta = with lib; { diff --git a/pkgs/build-support/build-fhsenv-chroot/default.nix b/pkgs/build-support/build-fhsenv-chroot/default.nix index 6f0adfb..c7d5ff9 100644 --- a/pkgs/build-support/build-fhsenv-chroot/default.nix +++ b/pkgs/build-support/build-fhsenv-chroot/default.nix @@ -1,53 +1,86 @@ -{ lib, callPackage, runCommandLocal, writeScript, stdenv, coreutils }: - -let buildFHSEnv = callPackage ./env.nix { }; in - -args@{ name, version ? null, runScript ? "bash", extraInstallCommands ? "", meta ? {}, passthru ? {}, ... }: +{ + lib, + callPackage, + runCommandLocal, + writeScript, + stdenv, + coreutils, +}: let - env = buildFHSEnv (removeAttrs args [ "version" "runScript" "extraInstallCommands" "meta" "passthru" ]); + buildFHSEnv = callPackage ./env.nix { }; +in - chrootenv = callPackage ./chrootenv {}; +args@{ + name, + version ? null, + runScript ? "bash", + extraInstallCommands ? "", + meta ? { }, + passthru ? { }, + ... +}: - init = run: writeScript "${name}-init" '' - #! ${stdenv.shell} - for i in ${env}/* /host/*; do - path="/''${i##*/}" - [ -e "$path" ] || ${coreutils}/bin/ln -s "$i" "$path" - done +let + env = buildFHSEnv ( + removeAttrs args [ + "version" + "runScript" + "extraInstallCommands" + "meta" + "passthru" + ] + ); - [ -d "$1" ] && [ -r "$1" ] && cd "$1" - shift + chrootenv = callPackage ./chrootenv { }; - source /etc/profile - exec ${run} "$@" - ''; + init = + run: + writeScript "${name}-init" '' + #! ${stdenv.shell} + for i in ${env}/* /host/*; do + path="/''${i##*/}" + [ -e "$path" ] || ${coreutils}/bin/ln -s "$i" "$path" + done + + [ -d "$1" ] && [ -r "$1" ] && cd "$1" + shift + + source /etc/profile + exec ${run} "$@" + ''; versionStr = lib.optionalString (version != null) ("-" + version); nameAndVersion = name + versionStr; -in runCommandLocal nameAndVersion { - inherit meta; +in +runCommandLocal nameAndVersion + { + inherit meta; - passthru = passthru // { - env = runCommandLocal "${name}-shell-env" { - shellHook = '' - exec ${chrootenv}/bin/chrootenv ${init runScript} "$(pwd)" - ''; - } '' - echo >&2 "" - echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" - echo >&2 "" - exit 1 - ''; - }; -} '' - mkdir -p $out/bin - cat <$out/bin/${name} - #! ${stdenv.shell} - exec ${chrootenv}/bin/chrootenv ${init runScript} "\$(pwd)" "\$@" - EOF - chmod +x $out/bin/${name} - ${extraInstallCommands} -'' + passthru = passthru // { + env = + runCommandLocal "${name}-shell-env" + { + shellHook = '' + exec ${chrootenv}/bin/chrootenv ${init runScript} "$(pwd)" + ''; + } + '' + echo >&2 "" + echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" + echo >&2 "" + exit 1 + ''; + }; + } + '' + mkdir -p $out/bin + cat <$out/bin/${name} + #! ${stdenv.shell} + exec ${chrootenv}/bin/chrootenv ${init runScript} "\$(pwd)" "\$@" + EOF + chmod +x $out/bin/${name} + ${extraInstallCommands} + '' diff --git a/pkgs/build-support/build-fhsenv-chroot/env.nix b/pkgs/build-support/build-fhsenv-chroot/env.nix index 6a82435..c773d9d 100644 --- a/pkgs/build-support/build-fhsenv-chroot/env.nix +++ b/pkgs/build-support/build-fhsenv-chroot/env.nix @@ -1,12 +1,20 @@ -{ stdenv, lib, buildEnv, writeText, pkgs, pkgsi686Linux }: +{ + stdenv, + lib, + buildEnv, + writeText, + pkgs, + pkgsi686Linux, +}: -{ name -, profile ? "" -, targetPkgs ? pkgs: [] -, multiPkgs ? pkgs: [] -, extraBuildCommands ? "" -, extraBuildCommandsMulti ? "" -, extraOutputsToInstall ? [] +{ + name, + profile ? "", + targetPkgs ? pkgs: [ ], + multiPkgs ? pkgs: [ ], + extraBuildCommands ? "", + extraBuildCommandsMulti ? "", + extraOutputsToInstall ? [ ], }: # HOWTO: @@ -27,12 +35,12 @@ let is64Bit = stdenv.hostPlatform.parsed.cpu.bits == 64; # multi-lib glibc is only supported on x86_64 - isMultiBuild = multiPkgs != null && stdenv.hostPlatform.system == "x86_64-linux"; + isMultiBuild = multiPkgs != null && stdenv.hostPlatform.system == "x86_64-linux"; isTargetBuild = !isMultiBuild; # list of packages (usually programs) which are only be installed for the # host's architecture - targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [] else multiPkgs pkgs); + targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [ ] else multiPkgs pkgs); # list of packages which are installed for both x86 and x86_64 on x86_64 # systems @@ -42,16 +50,26 @@ let # these match the host's architecture, glibc_multi is used for multilib # builds. glibcLocales must be before glibc or glibc_multi as otherwiese # the wrong LOCALE_ARCHIVE will be used where only C.UTF-8 is available. - basePkgs = with pkgs; - [ glibcLocales - (if isMultiBuild then glibc_multi else glibc) - (toString gcc.cc.lib) bashInteractiveFHS coreutils less shadow su - gawk diffutils findutils gnused gnugrep - gnutar gzip bzip2 xz - ]; - baseMultiPkgs = with pkgsi686Linux; - [ (toString gcc.cc.lib) - ]; + basePkgs = with pkgs; [ + glibcLocales + (if isMultiBuild then glibc_multi else glibc) + (toString gcc.cc.lib) + bashInteractiveFHS + coreutils + less + shadow + su + gawk + diffutils + findutils + gnused + gnugrep + gnutar + gzip + bzip2 + xz + ]; + baseMultiPkgs = with pkgsi686Linux; [ (toString gcc.cc.lib) ]; etcProfile = writeText "profile" '' export PS1='${name}-chrootenv:\u@\h:\w\$ ' @@ -91,7 +109,7 @@ let # Compose /etc for the chroot environment etcPkg = stdenv.mkDerivation { - name = "${name}-chrootenv-etc"; + name = "${name}-chrootenv-etc"; buildCommand = '' mkdir -p $out/etc cd $out/etc @@ -150,7 +168,11 @@ let staticUsrProfileTarget = buildEnv { name = "${name}-usr-target"; paths = [ etcPkg ] ++ basePkgs ++ targetPaths; - extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall; + extraOutputsToInstall = [ + "out" + "lib" + "bin" + ] ++ extraOutputsToInstall; ignoreCollisions = true; postBuild = '' if [[ -d $out/share/gsettings-schemas/ ]]; then @@ -186,7 +208,10 @@ let staticUsrProfileMulti = buildEnv { name = "${name}-usr-multi"; paths = baseMultiPkgs ++ multiPaths; - extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall; + extraOutputsToInstall = [ + "out" + "lib" + ] ++ extraOutputsToInstall; ignoreCollisions = true; }; @@ -216,8 +241,7 @@ let ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/ ''; - setupLibDirs = if isTargetBuild then setupLibDirs_target - else setupLibDirs_multi; + setupLibDirs = if isTargetBuild then setupLibDirs_target else setupLibDirs_multi; # the target profile is the actual profile that will be used for the chroot setupTargetProfile = '' @@ -243,8 +267,9 @@ let done ''; -in stdenv.mkDerivation { - name = "${name}-fhs"; +in +stdenv.mkDerivation { + name = "${name}-fhs"; buildCommand = '' mkdir -p $out cd $out diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix index f0e7390..29d9824 100644 --- a/pkgs/build-support/build-graalvm-native-image/default.nix +++ b/pkgs/build-support/build-graalvm-native-image/default.nix @@ -1,30 +1,31 @@ -{ lib -, stdenv -, glibcLocales +{ + lib, + stdenv, + glibcLocales, # The GraalVM derivation to use -, graalvmDrv -, removeReferencesTo -, executable ? args.pname + graalvmDrv, + removeReferencesTo, + executable ? args.pname, # JAR used as input for GraalVM derivation, defaults to src -, jar ? args.src -, dontUnpack ? (jar == args.src) + jar ? args.src, + dontUnpack ? (jar == args.src), # Default native-image arguments. You probably don't want to set this, # except in special cases. In most cases, use extraNativeBuildArgs instead -, nativeImageBuildArgs ? [ + nativeImageBuildArgs ? [ (lib.optionalString stdenv.isDarwin "-H:-CheckToolchain") (lib.optionalString (stdenv.isLinux && stdenv.isAarch64) "-H:PageSize=64K") "-H:Name=${executable}" "-march=compatibility" "--verbose" - ] + ], # Extra arguments to be passed to the native-image -, extraNativeImageBuildArgs ? [ ] + extraNativeImageBuildArgs ? [ ], # XMX size of GraalVM during build -, graalvmXmx ? "-J-Xmx6g" -, meta ? { } -, LC_ALL ? "en_US.UTF-8" -, ... -} @ args: + graalvmXmx ? "-J-Xmx6g", + meta ? { }, + LC_ALL ? "en_US.UTF-8", + ... +}@args: let extraArgs = builtins.removeAttrs args [ @@ -41,44 +42,57 @@ let "postInstall" ]; in -stdenv.mkDerivation ({ - inherit dontUnpack jar; +stdenv.mkDerivation ( + { + inherit dontUnpack jar; - env = { inherit LC_ALL; }; + env = { + inherit LC_ALL; + }; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvmDrv glibcLocales removeReferencesTo ]; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ + graalvmDrv + glibcLocales + removeReferencesTo + ]; - nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; + nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ]; - buildPhase = args.buildPhase or '' - runHook preBuild + buildPhase = + args.buildPhase or '' + runHook preBuild - native-image -jar "$jar" $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n) ''${nativeImageBuildArgs[@]} + native-image -jar "$jar" $(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n) ''${nativeImageBuildArgs[@]} - runHook postBuild - ''; + runHook postBuild + ''; - installPhase = args.installPhase or '' - runHook preInstall + installPhase = + args.installPhase or '' + runHook preInstall - install -Dm755 ${executable} -t $out/bin + install -Dm755 ${executable} -t $out/bin - runHook postInstall - ''; + runHook postInstall + ''; - postInstall = '' - remove-references-to -t ${graalvmDrv} $out/bin/${executable} - ${args.postInstall or ""} - ''; + postInstall = '' + remove-references-to -t ${graalvmDrv} $out/bin/${executable} + ${args.postInstall or ""} + ''; - disallowedReferences = [ graalvmDrv ]; + disallowedReferences = [ graalvmDrv ]; - passthru = { inherit graalvmDrv; }; + passthru = { + inherit graalvmDrv; + }; - meta = { - # default to graalvm's platforms - platforms = graalvmDrv.meta.platforms; - # default to executable name - mainProgram = executable; - } // meta; -} // extraArgs) + meta = { + # default to graalvm's platforms + platforms = graalvmDrv.meta.platforms; + # default to executable name + mainProgram = executable; + } // meta; + } + // extraArgs +) diff --git a/pkgs/build-support/build-maven.nix b/pkgs/build-support/build-maven.nix index 7ac8afd..8eaf109 100644 --- a/pkgs/build-support/build-maven.nix +++ b/pkgs/build-support/build-maven.nix @@ -1,4 +1,13 @@ -{ stdenv, maven, runCommand, writeText, fetchurl, lib, requireFile, linkFarm }: +{ + stdenv, + maven, + runCommand, + writeText, + fetchurl, + lib, + requireFile, + linkFarm, +}: # Takes an info file generated by mvn2nix # (https://github.com/NixOS/mvn2nix-maven-plugin) and builds the maven # project with it. @@ -16,45 +25,57 @@ infoFile: let info = lib.importJSON infoFile; - dependencies = lib.flatten (map (dep: - let - inherit (dep) sha1 groupId artifactId version metadata repository-id; - versionDir = dep.unresolved-version or version; - authenticated = dep.authenticated or false; - url = dep.url or ""; + dependencies = lib.flatten ( + map ( + dep: + let + inherit (dep) + sha1 + groupId + artifactId + version + metadata + repository-id + ; + versionDir = dep.unresolved-version or version; + authenticated = dep.authenticated or false; + url = dep.url or ""; - fetch = if (url != "") then - ((if authenticated then requireFile else fetchurl) { - inherit url sha1; - }) - else - ""; + fetch = + if (url != "") then + ((if authenticated then requireFile else fetchurl) { inherit url sha1; }) + else + ""; - fetchMetadata = (if authenticated then requireFile else fetchurl) { - inherit (metadata) url sha1; - }; + fetchMetadata = (if authenticated then requireFile else fetchurl) { inherit (metadata) url sha1; }; - layout = "${ - builtins.replaceStrings [ "." ] [ "/" ] groupId - }/${artifactId}/${versionDir}"; - in lib.optional (url != "") { - layout = "${layout}/${fetch.name}"; - drv = fetch; - } ++ lib.optionals (dep ? metadata) ([{ - layout = "${layout}/maven-metadata-${repository-id}.xml"; - drv = fetchMetadata; - }] ++ lib.optional (fetch != "") { - layout = "${layout}/${ - builtins.replaceStrings [ version ] [ dep.unresolved-version ] - fetch.name - }"; - drv = fetch; - })) info.dependencies); + layout = "${builtins.replaceStrings [ "." ] [ "/" ] groupId}/${artifactId}/${versionDir}"; + in + lib.optional (url != "") { + layout = "${layout}/${fetch.name}"; + drv = fetch; + } + ++ lib.optionals (dep ? metadata) ( + [ + { + layout = "${layout}/maven-metadata-${repository-id}.xml"; + drv = fetchMetadata; + } + ] + ++ lib.optional (fetch != "") { + layout = "${layout}/${builtins.replaceStrings [ version ] [ dep.unresolved-version ] fetch.name}"; + drv = fetch; + } + ) + ) info.dependencies + ); - repo = linkFarm "maven-repository" (lib.forEach dependencies (dependency: { - name = dependency.layout; - path = dependency.drv; - })); + repo = linkFarm "maven-repository" ( + lib.forEach dependencies (dependency: { + name = dependency.layout; + path = dependency.drv; + }) + ); settings = writeText "settings.xml" '' = 128*1024 then [ "pkgs" ] else [ ]; - } - '' - ${buildPackages.perl}/bin/perl -w ${builder} - eval "$postBuild" - '') + runCommand name + rec { + inherit + manifest + ignoreCollisions + checkCollisionContents + passthru + meta + pathsToLink + extraPrefix + postBuild + nativeBuildInputs + buildInputs + ; + pkgs = builtins.toJSON ( + map (drv: { + paths = + # First add the usual output(s): respect if user has chosen explicitly, + # and otherwise use `meta.outputsToInstall`. The attribute is guaranteed + # to exist in mkDerivation-created cases. The other cases (e.g. runCommand) + # aren't expected to have multiple outputs. + ( + if + (!drv ? outputSpecified || !drv.outputSpecified) && drv.meta.outputsToInstall or null != null + then + map (outName: drv.${outName}) drv.meta.outputsToInstall + else + [ drv ] + ) + # Add any extra outputs specified by the caller of `buildEnv`. + ++ lib.filter (p: p != null) (builtins.map (outName: drv.${outName} or null) extraOutputsToInstall); + priority = drv.meta.priority or 5; + }) paths + ); + preferLocalBuild = true; + allowSubstitutes = false; + # XXX: The size is somewhat arbitrary + passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ]; + } + '' + ${buildPackages.perl}/bin/perl -w ${builder} + eval "$postBuild" + '' +) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 4adc1dc..e824490 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -5,55 +5,73 @@ # script that sets up the right environment variables so that the # compiler and the linker just "work". -{ name ? "" -, lib -, stdenvNoCC -, runtimeShell -, cc ? null, libc ? null, bintools, coreutils ? null -, zlib ? null -, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" -, propagateDoc ? cc != null && cc ? man -, extraTools ? [], extraPackages ? [], extraBuildCommands ? "" -, nixSupport ? {} -, isGNU ? false, isClang ? cc.isClang or false, isCcache ? cc.isCcache or false, gnugrep ? null -, expand-response-params -, libcxx ? null +{ + name ? "", + lib, + stdenvNoCC, + runtimeShell, + cc ? null, + libc ? null, + bintools, + coreutils ? null, + zlib ? null, + nativeTools, + noLibc ? false, + nativeLibc, + nativePrefix ? "", + propagateDoc ? cc != null && cc ? man, + extraTools ? [ ], + extraPackages ? [ ], + extraBuildCommands ? "", + nixSupport ? { }, + isGNU ? false, + isClang ? cc.isClang or false, + isCcache ? cc.isCcache or false, + gnugrep ? null, + expand-response-params, + libcxx ? null, -# Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags` -, useCcForLibs ? + # Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags` + useCcForLibs ? - # Always add these flags for Clang, because in order to compile (most - # software) it needs libraries that are shipped and compiled with gcc. - if isClang then true + # Always add these flags for Clang, because in order to compile (most + # software) it needs libraries that are shipped and compiled with gcc. + if isClang then + true - # Never add these flags for a build!=host cross-compiler or a host!=target - # ("cross-built-native") compiler; currently nixpkgs has a special build - # path for these (`crossStageStatic`). Hopefully at some point that build - # path will be merged with this one and this conditional will be removed. - else if (with stdenvNoCC; buildPlatform != hostPlatform || hostPlatform != targetPlatform) then false + # Never add these flags for a build!=host cross-compiler or a host!=target + # ("cross-built-native") compiler; currently nixpkgs has a special build + # path for these (`crossStageStatic`). Hopefully at some point that build + # path will be merged with this one and this conditional will be removed. + else if (with stdenvNoCC; buildPlatform != hostPlatform || hostPlatform != targetPlatform) then + false - # Never add these flags when wrapping the bootstrapFiles' compiler; it has a - # /usr/-like layout with everything smashed into a single outpath, so it has - # no trouble finding its own libraries. - else if (cc.passthru.isFromBootstrapFiles or false) then false + # Never add these flags when wrapping the bootstrapFiles' compiler; it has a + # /usr/-like layout with everything smashed into a single outpath, so it has + # no trouble finding its own libraries. + else if (cc.passthru.isFromBootstrapFiles or false) then + false - # Add these flags when wrapping `xgcc` (the first compiler that nixpkgs builds) - else if (cc.passthru.isXgcc or false) then true + # Add these flags when wrapping `xgcc` (the first compiler that nixpkgs builds) + else if (cc.passthru.isXgcc or false) then + true - # Add these flags when wrapping `stdenv.cc` - else if (cc.stdenv.cc.cc.passthru.isXgcc or false) then true + # Add these flags when wrapping `stdenv.cc` + else if (cc.stdenv.cc.cc.passthru.isXgcc or false) then + true - # Do not add these flags in any other situation. This is `false` mainly to - # prevent these flags from being added when wrapping *old* versions of gcc - # (e.g. `gcc6Stdenv`), since they will cause the old gcc to get `-B` and - # `-L` flags pointing at the new gcc's libstdc++ headers. Example failure: - # https://hydra.nixos.org/build/213125495 - else false + # Do not add these flags in any other situation. This is `false` mainly to + # prevent these flags from being added when wrapping *old* versions of gcc + # (e.g. `gcc6Stdenv`), since they will cause the old gcc to get `-B` and + # `-L` flags pointing at the new gcc's libstdc++ headers. Example failure: + # https://hydra.nixos.org/build/213125495 + else + false, -# the derivation at which the `-B` and `-L` flags added by `useCcForLibs` will point -, gccForLibs ? if useCcForLibs then cc else null -, fortify-headers ? null -, includeFortifyHeaders ? null + # the derivation at which the `-B` and `-L` flags added by `useCcForLibs` will point + gccForLibs ? if useCcForLibs then cc else null, + fortify-headers ? null, + includeFortifyHeaders ? null, }: assert nativeTools -> !propagateDoc && nativePrefix != ""; @@ -85,9 +103,11 @@ let inherit (stdenvNoCC) hostPlatform targetPlatform; - includeFortifyHeaders' = if includeFortifyHeaders != null - then includeFortifyHeaders - else (targetPlatform.libc == "musl" && isGNU); + includeFortifyHeaders' = + if includeFortifyHeaders != null then + includeFortifyHeaders + else + (targetPlatform.libc == "musl" && isGNU); # Prefix for binaries. Customarily ends with a dash separator. # @@ -100,8 +120,7 @@ let libc_bin = optionalString (libc != null) (getBin libc); libc_dev = optionalString (libc != null) (getDev libc); libc_lib = optionalString (libc != null) (getLib libc); - cc_solib = getLib cc - + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; + cc_solib = getLib cc + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; # The wrapper scripts use 'cat' and 'grep', so we may need coreutils. coreutils_bin = optionalString (!nativeTools) (getBin coreutils); @@ -111,17 +130,28 @@ let # without interfering. For the moment, it is defined as the target triple, # adjusted to be a valid bash identifier. This should be considered an # unstable implementation detail, however. - suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; + suffixSalt = + replaceStrings + [ + "-" + "." + ] + [ + "_" + "_" + ] + targetPlatform.config; - useGccForLibs = useCcForLibs + useGccForLibs = + useCcForLibs && libcxx == null && !targetPlatform.isDarwin && !(targetPlatform.useLLVM or false) && !(targetPlatform.useAndroidPrebuilt or false) && !(targetPlatform.isiOS or false) && gccForLibs != null; - gccForLibs_solib = getLib gccForLibs - + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; + gccForLibs_solib = + getLib gccForLibs + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"; # Analogously to cc_solib and gccForLibs_solib libcxx_solib = "${getLib libcxx}/lib"; @@ -140,74 +170,88 @@ let # -- older compilers (for example bootstrap's GCC 5) fail with # -march=too-modern-cpu - isGccArchSupported = arch: - if targetPlatform.isPower then false else # powerpc does not allow -march= - if isGNU then - { # Generic + isGccArchSupported = + arch: + if targetPlatform.isPower then + false + # powerpc does not allow -march= + else if isGNU then + { + # Generic x86-64-v2 = versionAtLeast ccVersion "11.0"; x86-64-v3 = versionAtLeast ccVersion "11.0"; x86-64-v4 = versionAtLeast ccVersion "11.0"; # Intel - skylake = versionAtLeast ccVersion "6.0"; + skylake = versionAtLeast ccVersion "6.0"; skylake-avx512 = versionAtLeast ccVersion "6.0"; - cannonlake = versionAtLeast ccVersion "8.0"; + cannonlake = versionAtLeast ccVersion "8.0"; icelake-client = versionAtLeast ccVersion "8.0"; icelake-server = versionAtLeast ccVersion "8.0"; - cascadelake = versionAtLeast ccVersion "9.0"; - cooperlake = versionAtLeast ccVersion "10.0"; - tigerlake = versionAtLeast ccVersion "10.0"; - knm = versionAtLeast ccVersion "8.0"; - alderlake = versionAtLeast ccVersion "12.0"; + cascadelake = versionAtLeast ccVersion "9.0"; + cooperlake = versionAtLeast ccVersion "10.0"; + tigerlake = versionAtLeast ccVersion "10.0"; + knm = versionAtLeast ccVersion "8.0"; + alderlake = versionAtLeast ccVersion "12.0"; # AMD - znver1 = versionAtLeast ccVersion "6.0"; - znver2 = versionAtLeast ccVersion "9.0"; - znver3 = versionAtLeast ccVersion "11.0"; - znver4 = versionAtLeast ccVersion "13.0"; - }.${arch} or true + znver1 = versionAtLeast ccVersion "6.0"; + znver2 = versionAtLeast ccVersion "9.0"; + znver3 = versionAtLeast ccVersion "11.0"; + znver4 = versionAtLeast ccVersion "13.0"; + } + .${arch} or true else if isClang then - { #Generic + { + #Generic x86-64-v2 = versionAtLeast ccVersion "12.0"; x86-64-v3 = versionAtLeast ccVersion "12.0"; x86-64-v4 = versionAtLeast ccVersion "12.0"; # Intel - cannonlake = versionAtLeast ccVersion "5.0"; + cannonlake = versionAtLeast ccVersion "5.0"; icelake-client = versionAtLeast ccVersion "7.0"; icelake-server = versionAtLeast ccVersion "7.0"; - knm = versionAtLeast ccVersion "7.0"; - alderlake = versionAtLeast ccVersion "16.0"; + knm = versionAtLeast ccVersion "7.0"; + alderlake = versionAtLeast ccVersion "16.0"; # AMD - znver1 = versionAtLeast ccVersion "4.0"; - znver2 = versionAtLeast ccVersion "9.0"; - znver3 = versionAtLeast ccVersion "12.0"; - znver4 = versionAtLeast ccVersion "16.0"; - }.${arch} or true + znver1 = versionAtLeast ccVersion "4.0"; + znver2 = versionAtLeast ccVersion "9.0"; + znver3 = versionAtLeast ccVersion "12.0"; + znver4 = versionAtLeast ccVersion "16.0"; + } + .${arch} or true else false; - isGccTuneSupported = tune: + isGccTuneSupported = + tune: # for x86 -mtune= takes the same values as -march, plus two more: if targetPlatform.isx86 then { generic = true; intel = true; - }.${tune} or (isGccArchSupported tune) + } + .${tune} or (isGccArchSupported tune) # on arm64, the -mtune= values are specific processors else if targetPlatform.isAarch64 then - (if isGNU then - { - cortex-a53 = versionAtLeast ccVersion "4.8"; # gcc 8c075f - cortex-a72 = versionAtLeast ccVersion "5.1"; # gcc d8f70d - "cortex-a72.cortex-a53" = versionAtLeast ccVersion "5.1"; # gcc d8f70d - }.${tune} or false - else if isClang then - { - cortex-a53 = versionAtLeast ccVersion "3.9"; # llvm dfc5d1 - }.${tune} or false - else false) + ( + if isGNU then + { + cortex-a53 = versionAtLeast ccVersion "4.8"; # gcc 8c075f + cortex-a72 = versionAtLeast ccVersion "5.1"; # gcc d8f70d + "cortex-a72.cortex-a53" = versionAtLeast ccVersion "5.1"; # gcc d8f70d + } + .${tune} or false + else if isClang then + { + cortex-a53 = versionAtLeast ccVersion "3.9"; # llvm dfc5d1 + } + .${tune} or false + else + false + ) else if targetPlatform.isPower then # powerpc does not support -march true @@ -223,39 +267,44 @@ let # # Note: this function can make use of ccVersion; for example, `if # versionOlder ccVersion "12" then ...` - findBestTuneApproximation = tune: - let guess = if isClang - then { - # clang does not tune for big.LITTLE chips - "cortex-a72.cortex-a53" = "cortex-a72"; - }.${tune} or tune - else tune; - in if isGccTuneSupported guess - then guess - else null; + findBestTuneApproximation = + tune: + let + guess = + if isClang then + { + # clang does not tune for big.LITTLE chips + "cortex-a72.cortex-a53" = "cortex-a72"; + } + .${tune} or tune + else + tune; + in + if isGccTuneSupported guess then guess else null; - defaultHardeningFlags = bintools.defaultHardeningFlags or []; + defaultHardeningFlags = bintools.defaultHardeningFlags or [ ]; # if cc.hardeningUnsupportedFlagsByTargetPlatform exists, this is # called with the targetPlatform as an argument and # cc.hardeningUnsupportedFlags is completely ignored - the function # is responsible for including the constant hardeningUnsupportedFlags # list however it sees fit. - ccHardeningUnsupportedFlags = if cc ? hardeningUnsupportedFlagsByTargetPlatform - then cc.hardeningUnsupportedFlagsByTargetPlatform targetPlatform - else (cc.hardeningUnsupportedFlags or []); + ccHardeningUnsupportedFlags = + if cc ? hardeningUnsupportedFlagsByTargetPlatform then + cc.hardeningUnsupportedFlagsByTargetPlatform targetPlatform + else + (cc.hardeningUnsupportedFlags or [ ]); darwinPlatformForCC = optionalString targetPlatform.isDarwin ( - if (targetPlatform.darwinPlatform == "macos" && isGNU) then "macosx" - else targetPlatform.darwinPlatform + if (targetPlatform.darwinPlatform == "macos" && isGNU) then + "macosx" + else + targetPlatform.darwinPlatform ); - darwinMinVersion = optionalString targetPlatform.isDarwin ( - targetPlatform.darwinMinVersion - ); + darwinMinVersion = optionalString targetPlatform.isDarwin (targetPlatform.darwinMinVersion); - darwinMinVersionVariable = optionalString targetPlatform.isDarwin - targetPlatform.darwinMinVersionVariable; + darwinMinVersionVariable = optionalString targetPlatform.isDarwin targetPlatform.darwinMinVersionVariable; in assert includeFortifyHeaders' -> fortify-headers != null; @@ -269,13 +318,17 @@ assert nativeLibc == bintools.nativeLibc; assert nativePrefix == bintools.nativePrefix; stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${ccName}-wrapper"); + pname = targetPrefix + (if name != "" then name else "${ccName}-wrapper"); version = optionalString (cc != null) ccVersion; preferLocalBuild = true; - outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ]; + outputs = + [ "out" ] + ++ optionals propagateDoc [ + "man" + "info" + ]; passthru = { inherit targetPrefix suffixSalt; @@ -284,7 +337,16 @@ stdenvNoCC.mkDerivation { # Binutils, and Apple's "cctools"; "bintools" as an attempt to find an # unused middle-ground name that evokes both. inherit bintools; - inherit cc libc libcxx nativeTools nativeLibc nativePrefix isGNU isClang; + inherit + cc + libc + libcxx + nativeTools + nativeLibc + nativePrefix + isGNU + isClang + ; emacsBufferSetup = pkgs: '' ; We should handle propagation here too @@ -329,15 +391,20 @@ stdenvNoCC.mkDerivation { } '' - + (if nativeTools then '' - echo ${if targetPlatform.isDarwin then cc else nativePrefix} > $out/nix-support/orig-cc + + ( + if nativeTools then + '' + echo ${if targetPlatform.isDarwin then cc else nativePrefix} > $out/nix-support/orig-cc - ccPath="${if targetPlatform.isDarwin then cc else nativePrefix}/bin" - '' else '' - echo $cc > $out/nix-support/orig-cc + ccPath="${if targetPlatform.isDarwin then cc else nativePrefix}/bin" + '' + else + '' + echo $cc > $out/nix-support/orig-cc - ccPath="${cc}/bin" - '') + ccPath="${cc}/bin" + '' + ) # Create symlinks to everything in the bintools wrapper. + '' @@ -418,22 +485,26 @@ stdenvNoCC.mkDerivation { ''; strictDeps = true; - propagatedBuildInputs = [ bintools ] ++ extraTools ++ optionals cc.langD or cc.langJava or false [ zlib ]; + propagatedBuildInputs = [ + bintools + ] ++ extraTools ++ optionals cc.langD or cc.langJava or false [ zlib ]; depsTargetTargetPropagated = optional (libcxx != null) libcxx ++ extraPackages; - setupHooks = [ - ../setup-hooks/role.bash - ] ++ optional (cc.langC or true) ./setup-hook.sh + setupHooks = + [ ../setup-hooks/role.bash ] + ++ optional (cc.langC or true) ./setup-hook.sh ++ optional (cc.langFortran or false) ./fortran-hook.sh - ++ optional (targetPlatform.isWindows) (stdenvNoCC.mkDerivation { - name = "win-dll-hook.sh"; - dontUnpack = true; - installPhase = '' - echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib" > $out - echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib64" >> $out - echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib32" >> $out - ''; - }); + ++ optional (targetPlatform.isWindows) ( + stdenvNoCC.mkDerivation { + name = "win-dll-hook.sh"; + dontUnpack = true; + installPhase = '' + echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib" > $out + echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib64" >> $out + echo addToSearchPath "LINK_DLL_FOLDERS" "${cc_solib}/lib32" >> $out + ''; + } + ); postFixup = # Ensure flags files exists, as some other programs cat them. (That these @@ -476,23 +547,32 @@ stdenvNoCC.mkDerivation { # vs libstdc++, etc.) since Darwin isn't `useLLVM` on all counts. (See # https://clang.llvm.org/docs/Toolchain.html for all the axes one might # break `useLLVM` into.) - + optionalString (isClang - && targetPlatform.isLinux - && !(targetPlatform.useAndroidPrebuilt or false) - && !(targetPlatform.useLLVM or false) - && gccForLibs != null) ('' - echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags + + + optionalString + ( + isClang + && targetPlatform.isLinux + && !(targetPlatform.useAndroidPrebuilt or false) + && !(targetPlatform.useLLVM or false) + && gccForLibs != null + ) + ( + '' + echo "--gcc-toolchain=${gccForLibs}" >> $out/nix-support/cc-cflags - # Pull in 'cc.out' target to get 'libstdc++fs.a'. It should be in - # 'cc.lib'. But it's a gcc package bug. - # TODO(trofi): remove once gcc is fixed to move libraries to .lib output. - echo "-L${gccForLibs}/${optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}"}/lib" >> $out/nix-support/cc-ldflags - '' - # this ensures that when clang passes -lgcc_s to lld (as it does - # when building e.g. firefox), lld is able to find libgcc_s.so - + concatMapStrings (libgcc: '' - echo "-L${libgcc}/lib" >> $out/nix-support/cc-ldflags - '') (toList (gccForLibs.libgcc or []))) + # Pull in 'cc.out' target to get 'libstdc++fs.a'. It should be in + # 'cc.lib'. But it's a gcc package bug. + # TODO(trofi): remove once gcc is fixed to move libraries to .lib output. + echo "-L${gccForLibs}/${ + optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}" + }/lib" >> $out/nix-support/cc-ldflags + '' + # this ensures that when clang passes -lgcc_s to lld (as it does + # when building e.g. firefox), lld is able to find libgcc_s.so + + concatMapStrings (libgcc: '' + echo "-L${libgcc}/lib" >> $out/nix-support/cc-ldflags + '') (toList (gccForLibs.libgcc or [ ])) + ) ## ## General libc support @@ -509,31 +589,36 @@ stdenvNoCC.mkDerivation { # compile, because it uses "#include_next " to find the # limits.h file in ../includes-fixed. To remedy the problem, # another -idirafter is necessary to add that directory again. - + optionalString (libc != null) ('' - touch "$out/nix-support/libc-cflags" - touch "$out/nix-support/libc-ldflags" - echo "-B${libc_lib}${libc.libdir or "/lib/"}" >> $out/nix-support/libc-crt1-cflags - '' + optionalString (!(cc.langD or false)) '' - echo "-idirafter ${libc_dev}${libc.incdir or "/include"}" >> $out/nix-support/libc-cflags - '' + optionalString (isGNU && (!(cc.langD or false))) '' - for dir in "${cc}"/lib/gcc/*/*/include-fixed; do - echo '-idirafter' ''${dir} >> $out/nix-support/libc-cflags - done - '' + '' + + optionalString (libc != null) ( + '' + touch "$out/nix-support/libc-cflags" + touch "$out/nix-support/libc-ldflags" + echo "-B${libc_lib}${libc.libdir or "/lib/"}" >> $out/nix-support/libc-crt1-cflags + '' + + optionalString (!(cc.langD or false)) '' + echo "-idirafter ${libc_dev}${libc.incdir or "/include"}" >> $out/nix-support/libc-cflags + '' + + optionalString (isGNU && (!(cc.langD or false))) '' + for dir in "${cc}"/lib/gcc/*/*/include-fixed; do + echo '-idirafter' ''${dir} >> $out/nix-support/libc-cflags + done + '' + + '' - echo "${libc_lib}" > $out/nix-support/orig-libc - echo "${libc_dev}" > $out/nix-support/orig-libc-dev - '' - # fortify-headers is a set of wrapper headers that augment libc - # and use #include_next to pass through to libc's true - # implementations, so must appear before them in search order. - # in theory a correctly placed -idirafter could be used, but in - # practice the compiler may have been built with a --with-headers - # like option that forces the libc headers before all -idirafter, - # hence -isystem here. - + optionalString includeFortifyHeaders' '' - echo "-isystem ${fortify-headers}/include" >> $out/nix-support/libc-cflags - '') + echo "${libc_lib}" > $out/nix-support/orig-libc + echo "${libc_dev}" > $out/nix-support/orig-libc-dev + '' + # fortify-headers is a set of wrapper headers that augment libc + # and use #include_next to pass through to libc's true + # implementations, so must appear before them in search order. + # in theory a correctly placed -idirafter could be used, but in + # practice the compiler may have been built with a --with-headers + # like option that forces the libc headers before all -idirafter, + # hence -isystem here. + + optionalString includeFortifyHeaders' '' + echo "-isystem ${fortify-headers}/include" >> $out/nix-support/libc-cflags + '' + ) ## ## General libc++ support @@ -541,10 +626,13 @@ stdenvNoCC.mkDerivation { # We have a libc++ directly, we have one via "smuggled" GCC, or we have one # bundled with the C compiler because it is GCC - + optionalString (libcxx != null || (useGccForLibs && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) '' - touch "$out/nix-support/libcxx-cxxflags" - touch "$out/nix-support/libcxx-ldflags" - '' + + + optionalString + (libcxx != null || (useGccForLibs && gccForLibs.langCC or false) || (isGNU && cc.langCC or false)) + '' + touch "$out/nix-support/libcxx-cxxflags" + touch "$out/nix-support/libcxx-ldflags" + '' # Adding -isystem flags should be done only for clang; gcc # already knows how to find its own libstdc++, and adding # additional -isystem flags will confuse gfortran (see @@ -578,7 +666,8 @@ stdenvNoCC.mkDerivation { ccLDFlags+=" -L${cc_solib}/lib" ccCFlags+=" -B${cc_solib}/lib" - '' + optionalString cc.langAda or false '' + '' + + optionalString cc.langAda or false '' touch "$out/nix-support/gnat-cflags" touch "$out/nix-support/gnat-ldflags" basePath=$(echo $cc/lib/*/*/*) @@ -586,10 +675,12 @@ stdenvNoCC.mkDerivation { gnatCFlags="-I$basePath/adainclude -I$basePath/adalib" echo "$gnatCFlags" >> $out/nix-support/gnat-cflags - '' + '' + '' + + '' echo "$ccLDFlags" >> $out/nix-support/cc-ldflags echo "$ccCFlags" >> $out/nix-support/cc-cflags - '' + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) '' + '' + + optionalString (targetPlatform.isDarwin && (libcxx != null) && (cc.isClang or false)) '' echo " -L${libcxx_solib}" >> $out/nix-support/cc-ldflags '' @@ -599,7 +690,8 @@ stdenvNoCC.mkDerivation { + optionalString propagateDoc '' ln -s ${cc.man} $man ln -s ${cc.info} $info - '' + optionalString (cc.langD or cc.langJava or false) '' + '' + + optionalString (cc.langD or cc.langJava or false) '' echo "-B${zlib}${zlib.libdir or "/lib/"}" >> $out/nix-support/libc-cflags '' @@ -622,18 +714,28 @@ stdenvNoCC.mkDerivation { # For clang, this is handled in add-clang-cc-cflags-before.sh # TODO: aarch64-darwin has mcpu incompatible with gcc - + optionalString ((targetPlatform ? gcc.arch) && !isClang && !(targetPlatform.isDarwin && targetPlatform.isAarch64) && - isGccArchSupported targetPlatform.gcc.arch) '' - echo "-march=${targetPlatform.gcc.arch}" >> $out/nix-support/cc-cflags-before - '' + + + optionalString + ( + (targetPlatform ? gcc.arch) + && !isClang + && !(targetPlatform.isDarwin && targetPlatform.isAarch64) + && isGccArchSupported targetPlatform.gcc.arch + ) + '' + echo "-march=${targetPlatform.gcc.arch}" >> $out/nix-support/cc-cflags-before + '' # -mcpu is not very useful, except on PowerPC where it is used # instead of march. On all other platforms you should use mtune # and march instead. # TODO: aarch64-darwin has mcpu incompatible with gcc - + optionalString ((targetPlatform ? gcc.cpu) && (isClang || !(targetPlatform.isDarwin && targetPlatform.isAarch64))) '' - echo "-mcpu=${targetPlatform.gcc.cpu}" >> $out/nix-support/cc-cflags-before - '' + + + optionalString + ((targetPlatform ? gcc.cpu) && (isClang || !(targetPlatform.isDarwin && targetPlatform.isAarch64))) + '' + echo "-mcpu=${targetPlatform.gcc.cpu}" >> $out/nix-support/cc-cflags-before + '' # -mfloat-abi only matters on arm32 but we set it here # unconditionally just in case. If the abi specifically sets hard @@ -650,35 +752,48 @@ stdenvNoCC.mkDerivation { + optionalString (targetPlatform ? gcc.thumb) '' echo "-m${if targetPlatform.gcc.thumb then "thumb" else "arm"}" >> $out/nix-support/cc-cflags-before '' - + (let tune = if targetPlatform ? gcc.tune - then findBestTuneApproximation targetPlatform.gcc.tune - else null; - in optionalString (tune != null) '' - echo "-mtune=${tune}" >> $out/nix-support/cc-cflags-before - '') + + ( + let + tune = + if targetPlatform ? gcc.tune then findBestTuneApproximation targetPlatform.gcc.tune else null; + in + optionalString (tune != null) '' + echo "-mtune=${tune}" >> $out/nix-support/cc-cflags-before + '' + ) # TODO: categorize these and figure out a better place for them + optionalString targetPlatform.isWindows '' hardening_unsupported_flags+=" pic" - '' + optionalString targetPlatform.isMinGW '' + '' + + optionalString targetPlatform.isMinGW '' hardening_unsupported_flags+=" stackprotector fortify" - '' + optionalString targetPlatform.isAvr '' + '' + + optionalString targetPlatform.isAvr '' hardening_unsupported_flags+=" stackprotector pic" - '' + optionalString (targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano") '' + '' + + optionalString (targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano") '' hardening_unsupported_flags+=" stackprotector fortify pie pic" - '' + optionalString (targetPlatform.libc == "musl" && targetPlatform.isx86_32) '' + '' + + optionalString (targetPlatform.libc == "musl" && targetPlatform.isx86_32) '' hardening_unsupported_flags+=" stackprotector" - '' + optionalString targetPlatform.isNetBSD '' + '' + + optionalString targetPlatform.isNetBSD '' hardening_unsupported_flags+=" stackprotector fortify" - '' + optionalString cc.langAda or false '' + '' + + optionalString cc.langAda or false '' hardening_unsupported_flags+=" format stackprotector strictoverflow" - '' + optionalString cc.langD or false '' + '' + + optionalString cc.langD or false '' hardening_unsupported_flags+=" format" - '' + optionalString cc.langFortran or false '' + '' + + optionalString cc.langFortran or false '' hardening_unsupported_flags+=" format" - '' + optionalString targetPlatform.isWasm '' + '' + + optionalString targetPlatform.isWasm '' hardening_unsupported_flags+=" stackprotector fortify pie pic" - '' + optionalString targetPlatform.isMicroBlaze '' + '' + + optionalString targetPlatform.isMicroBlaze '' hardening_unsupported_flags+=" stackprotector" '' @@ -689,7 +804,7 @@ stdenvNoCC.mkDerivation { '' + optionalString targetPlatform.isDarwin '' - echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags + echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags '' + optionalString targetPlatform.isAndroid '' @@ -718,9 +833,11 @@ stdenvNoCC.mkDerivation { ## + optionalString isClang '' # Escape twice: once for this script, once for the one it gets substituted into. - export march=${escapeShellArg - (optionalString (targetPlatform ? gcc.arch) - (escapeShellArg "-march=${targetPlatform.gcc.arch}"))} + export march=${ + escapeShellArg ( + optionalString (targetPlatform ? gcc.arch) (escapeShellArg "-march=${targetPlatform.gcc.arch}") + ) + } export defaultTarget=${targetPlatform.config} substituteAll ${./add-clang-cc-cflags-before.sh} $out/nix-support/add-local-cc-cflags-before.sh '' @@ -729,11 +846,9 @@ stdenvNoCC.mkDerivation { ## Extra custom steps ## + extraBuildCommands - + concatStringsSep "; " - (mapAttrsToList - (name: value: "echo ${toString value} >> $out/nix-support/${name}") - nixSupport); - + + concatStringsSep "; " ( + mapAttrsToList (name: value: "echo ${toString value} >> $out/nix-support/${name}") nixSupport + ); env = { inherit isClang; @@ -755,10 +870,18 @@ stdenvNoCC.mkDerivation { }; meta = - let cc_ = optionalAttrs (cc != null) cc; in - (optionalAttrs (cc_ ? meta) (removeAttrs cc.meta ["priority"])) // - { description = attrByPath ["meta" "description"] "System C compiler" cc_ + " (wrapper script)"; + let + cc_ = optionalAttrs (cc != null) cc; + in + (optionalAttrs (cc_ ? meta) (removeAttrs cc.meta [ "priority" ])) + // { + description = + attrByPath [ + "meta" + "description" + ] "System C compiler" cc_ + + " (wrapper script)"; priority = 10; mainProgram = if name != "" then name else ccName; - }; + }; } diff --git a/pkgs/build-support/checkpoint-build.nix b/pkgs/build-support/checkpoint-build.nix index f1202ca..80dd725 100644 --- a/pkgs/build-support/checkpoint-build.nix +++ b/pkgs/build-support/checkpoint-build.nix @@ -1,18 +1,14 @@ -{ lib -, buildPackages -}: +{ lib, buildPackages }: let # rudimentary support for cross-compiling # see: https://github.com/NixOS/nixpkgs/pull/279487#discussion_r1444449726 - inherit (buildPackages) - mktemp - rsync - ; + inherit (buildPackages) mktemp rsync; in rec { - /* Prepare a derivation for local builds. + /* + Prepare a derivation for local builds. * * This function prepares checkpoint builds by storing * the build output and the sources for cross checking. @@ -30,38 +26,43 @@ rec { * - use `mkCheckpointBuild changedVBox checkpointArtifacts` * - enjoy shorter build times */ - prepareCheckpointBuild = drv: drv.overrideAttrs (old: { - outputs = [ "out" ]; - name = drv.name + "-checkpointArtifacts"; - # To determine differences between the state of the build directory - # from an earlier build and a later one we store the state of the build - # directory before build, but after patch phases. - # This way, the same derivation can be used multiple times and only changes are detected. - # Additionally, removed files are handled correctly in later builds. - preBuild = (old.preBuild or "") + '' - mkdir -p $out/sources - cp -r ./* $out/sources/ - ''; + prepareCheckpointBuild = + drv: + drv.overrideAttrs (old: { + outputs = [ "out" ]; + name = drv.name + "-checkpointArtifacts"; + # To determine differences between the state of the build directory + # from an earlier build and a later one we store the state of the build + # directory before build, but after patch phases. + # This way, the same derivation can be used multiple times and only changes are detected. + # Additionally, removed files are handled correctly in later builds. + preBuild = + (old.preBuild or "") + + '' + mkdir -p $out/sources + cp -r ./* $out/sources/ + ''; - # After the build, the build directory is copied again - # to get the output files. - # We copy the complete build folder, to take care of - # build tools that build in the source directory, instead of - # having a separate build directory such as the Linux kernel. - installPhase = '' - runHook preCheckpointInstall - mkdir -p $out/outputs - cp -r ./* $out/outputs/ - runHook postCheckpointInstall - unset postPhases - ''; + # After the build, the build directory is copied again + # to get the output files. + # We copy the complete build folder, to take care of + # build tools that build in the source directory, instead of + # having a separate build directory such as the Linux kernel. + installPhase = '' + runHook preCheckpointInstall + mkdir -p $out/outputs + cp -r ./* $out/outputs/ + runHook postCheckpointInstall + unset postPhases + ''; - dontFixup = true; - doInstallCheck = false; - doDist = false; - }); + dontFixup = true; + doInstallCheck = false; + doDist = false; + }); - /* Build a derivation based on the checkpoint output generated by + /* + Build a derivation based on the checkpoint output generated by * the `prepareCheckpointBuild` function. * * Usage: @@ -69,27 +70,29 @@ rec { * checkpointArtifacts = prepareCheckpointBuild drv; * in mkCheckpointBuild drv checkpointArtifacts */ - mkCheckpointBuild = drv: checkpointArtifacts: drv.overrideAttrs (old: { - # The actual checkpoint build phase. - # We compare the changed sources from a previous build with the current and create a patch. - # Afterwards we clean the build directory and copy the previous output files (including the sources). - # The source difference patch is then applied to get the latest changes again to allow short build times. - preBuild = (old.preBuild or "") + '' - set +e - sourceDifferencePatchFile=$(${mktemp}/bin/mktemp) - diff -ur ${checkpointArtifacts}/sources ./ > "$sourceDifferencePatchFile" - set -e - shopt -s dotglob - rm -r * - ${rsync}/bin/rsync \ - --checksum --times --atimes --chown=$USER:$USER --chmod=+w \ - -r ${checkpointArtifacts}/outputs/ . - patch -p 1 -i "$sourceDifferencePatchFile" - rm "$sourceDifferencePatchFile" - ''; - }); + mkCheckpointBuild = + drv: checkpointArtifacts: + drv.overrideAttrs (old: { + # The actual checkpoint build phase. + # We compare the changed sources from a previous build with the current and create a patch. + # Afterwards we clean the build directory and copy the previous output files (including the sources). + # The source difference patch is then applied to get the latest changes again to allow short build times. + preBuild = + (old.preBuild or "") + + '' + set +e + sourceDifferencePatchFile=$(${mktemp}/bin/mktemp) + diff -ur ${checkpointArtifacts}/sources ./ > "$sourceDifferencePatchFile" + set -e + shopt -s dotglob + rm -r * + ${rsync}/bin/rsync \ + --checksum --times --atimes --chown=$USER:$USER --chmod=+w \ + -r ${checkpointArtifacts}/outputs/ . + patch -p 1 -i "$sourceDifferencePatchFile" + rm "$sourceDifferencePatchFile" + ''; + }); - mkCheckpointedBuild = lib.warn - "`mkCheckpointedBuild` is deprecated, use `mkCheckpointBuild` instead!" - mkCheckpointBuild; + mkCheckpointedBuild = lib.warn "`mkCheckpointedBuild` is deprecated, use `mkCheckpointBuild` instead!" mkCheckpointBuild; } diff --git a/pkgs/build-support/closure-info.nix b/pkgs/build-support/closure-info.nix index f2aa496..1e84b7b 100644 --- a/pkgs/build-support/closure-info.nix +++ b/pkgs/build-support/closure-info.nix @@ -4,7 +4,11 @@ # "nix-store --load-db" and "nix-store --register-validity # --hash-given". -{ stdenv, coreutils, jq }: +{ + stdenv, + coreutils, + jq, +}: { rootPaths }: @@ -19,24 +23,26 @@ stdenv.mkDerivation { preferLocalBuild = true; - nativeBuildInputs = [ coreutils jq ]; + nativeBuildInputs = [ + coreutils + jq + ]; - empty = rootPaths == []; + empty = rootPaths == [ ]; - buildCommand = - '' - out=''${outputs[out]} + buildCommand = '' + out=''${outputs[out]} - mkdir $out + mkdir $out - if [[ -n "$empty" ]]; then - echo 0 > $out/total-nar-size - touch $out/registration $out/store-paths - else - jq -r ".closure | map(.narSize) | add" < "$NIX_ATTRS_JSON_FILE" > $out/total-nar-size - jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < "$NIX_ATTRS_JSON_FILE" | head -n -1 > $out/registration - jq -r '.closure[].path' < "$NIX_ATTRS_JSON_FILE" > $out/store-paths - fi + if [[ -n "$empty" ]]; then + echo 0 > $out/total-nar-size + touch $out/registration $out/store-paths + else + jq -r ".closure | map(.narSize) | add" < "$NIX_ATTRS_JSON_FILE" > $out/total-nar-size + jq -r '.closure | map([.path, .narHash, .narSize, "", (.references | length)] + .references) | add | map("\(.)\n") | add' < "$NIX_ATTRS_JSON_FILE" | head -n -1 > $out/registration + jq -r '.closure[].path' < "$NIX_ATTRS_JSON_FILE" > $out/store-paths + fi - ''; + ''; } diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix index 6036d0f..b51d1e7 100644 --- a/pkgs/build-support/coq/default.nix +++ b/pkgs/build-support/coq/default.nix @@ -1,9 +1,14 @@ -{ lib, stdenv, coqPackages, coq, which, fetchzip }@args: +{ + lib, + stdenv, + coqPackages, + coq, + which, + fetchzip, +}@args: let - lib = import ./extra-lib.nix { - inherit (args) lib; - }; + lib = import ./extra-lib.nix { inherit (args) lib; }; inherit (lib) concatStringsSep @@ -28,7 +33,8 @@ let isGitLabDomain = d: match "^gitlab.*" d != null; in -{ pname, +{ + pname, version ? null, fetcher ? null, owner ? "coq-community", @@ -36,120 +42,199 @@ in repo ? pname, defaultVersion ? null, releaseRev ? (v: v), - displayVersion ? {}, - release ? {}, - buildInputs ? [], - nativeBuildInputs ? [], - extraBuildInputs ? [], - extraNativeBuildInputs ? [], - overrideBuildInputs ? [], - overrideNativeBuildInputs ? [], + displayVersion ? { }, + release ? { }, + buildInputs ? [ ], + nativeBuildInputs ? [ ], + extraBuildInputs ? [ ], + extraNativeBuildInputs ? [ ], + overrideBuildInputs ? [ ], + overrideNativeBuildInputs ? [ ], namePrefix ? [ "coq" ], enableParallelBuilding ? true, - extraInstallFlags ? [], + extraInstallFlags ? [ ], setCOQBIN ? true, mlPlugin ? false, useMelquiondRemake ? null, - dropAttrs ? [], - keepAttrs ? [], - dropDerivationAttrs ? [], + dropAttrs ? [ ], + keepAttrs ? [ ], + dropDerivationAttrs ? [ ], useDuneifVersion ? (x: false), useDune ? false, opam-name ? (concatStringsSep "-" (namePrefix ++ [ pname ])), ... }@args: let - args-to-remove = foldl (flip remove) ([ - "version" "fetcher" "repo" "owner" "domain" "releaseRev" - "displayVersion" "defaultVersion" "useMelquiondRemake" - "release" - "buildInputs" "nativeBuildInputs" - "extraBuildInputs" "extraNativeBuildInputs" - "overrideBuildInputs" "overrideNativeBuildInputs" - "namePrefix" - "meta" "useDuneifVersion" "useDune" "opam-name" - "extraInstallFlags" "setCOQBIN" "mlPlugin" - "dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs; - fetch = import ../coq/meta-fetch/default.nix - { inherit lib stdenv fetchzip; } ({ + args-to-remove = foldl (flip remove) ( + [ + "version" + "fetcher" + "repo" + "owner" + "domain" + "releaseRev" + "displayVersion" + "defaultVersion" + "useMelquiondRemake" + "release" + "buildInputs" + "nativeBuildInputs" + "extraBuildInputs" + "extraNativeBuildInputs" + "overrideBuildInputs" + "overrideNativeBuildInputs" + "namePrefix" + "meta" + "useDuneifVersion" + "useDune" + "opam-name" + "extraInstallFlags" + "setCOQBIN" + "mlPlugin" + "dropAttrs" + "dropDerivationAttrs" + "keepAttrs" + ] + ++ dropAttrs + ) keepAttrs; + fetch = import ../coq/meta-fetch/default.nix { inherit lib stdenv fetchzip; } ( + { inherit release releaseRev; - location = { inherit domain owner repo; }; - } // optionalAttrs (args?fetcher) {inherit fetcher;}); + location = { + inherit domain owner repo; + }; + } + // optionalAttrs (args ? fetcher) { inherit fetcher; } + ); fetched = fetch (if version != null then version else defaultVersion); - display-pkg = n: sep: v: - let d = displayVersion.${n} or (if sep == "" then ".." else true); in - n + optionalString (v != "" && v != null) (switch d [ - { case = true; out = sep + v; } - { case = "."; out = sep + versions.major v; } - { case = ".."; out = sep + versions.majorMinor v; } - { case = "..."; out = sep + versions.majorMinorPatch v; } - { case = isFunction; out = optionalString (d v != "") (sep + d v); } - { case = isString; out = optionalString (d != "") (sep + d); } - ] "") + optionalString (v == null) "-broken"; + display-pkg = + n: sep: v: + let + d = displayVersion.${n} or (if sep == "" then ".." else true); + in + n + + optionalString (v != "" && v != null) ( + switch d [ + { + case = true; + out = sep + v; + } + { + case = "."; + out = sep + versions.major v; + } + { + case = ".."; + out = sep + versions.majorMinor v; + } + { + case = "..."; + out = sep + versions.majorMinorPatch v; + } + { + case = isFunction; + out = optionalString (d v != "") (sep + d v); + } + { + case = isString; + out = optionalString (d != "") (sep + d); + } + ] "" + ) + + optionalString (v == null) "-broken"; append-version = p: n: p + display-pkg n "" coqPackages.${n}.version + "-"; prefix-name = foldl append-version "" namePrefix; useDune = args.useDune or (useDuneifVersion fetched.version); - coqlib-flags = switch coq.coq-version [ - { case = v: versions.isLe "8.6" v && v != "dev" ; - out = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ]; } - ] [ "COQLIBINSTALL=$(out)/lib/coq/${coq.coq-version}/user-contrib" - "COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)" ]; + coqlib-flags = + switch coq.coq-version + [ + { + case = v: versions.isLe "8.6" v && v != "dev"; + out = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ]; + } + ] + [ + "COQLIBINSTALL=$(out)/lib/coq/${coq.coq-version}/user-contrib" + "COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)" + ]; docdir-flags = switch coq.coq-version [ - { case = v: versions.isLe "8.6" v && v != "dev"; - out = [ "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ]; } + { + case = v: versions.isLe "8.6" v && v != "dev"; + out = [ "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ]; + } ] [ "COQDOCINSTALL=$(out)/share/coq/${coq.coq-version}/user-contrib" ]; in -stdenv.mkDerivation (removeAttrs ({ +stdenv.mkDerivation ( + removeAttrs ( + { - name = prefix-name + (display-pkg pname "-" fetched.version); + name = prefix-name + (display-pkg pname "-" fetched.version); - inherit (fetched) version src; + inherit (fetched) version src; - nativeBuildInputs = args.overrideNativeBuildInputs - or ([ which ] - ++ optional useDune coq.ocamlPackages.dune_3 - ++ optionals (useDune || mlPlugin) [ coq.ocamlPackages.ocaml coq.ocamlPackages.findlib ] - ++ (args.nativeBuildInputs or []) ++ extraNativeBuildInputs); - buildInputs = args.overrideBuildInputs - or ([ coq ] ++ (args.buildInputs or []) ++ extraBuildInputs); - inherit enableParallelBuilding; + nativeBuildInputs = + args.overrideNativeBuildInputs or ( + [ which ] + ++ optional useDune coq.ocamlPackages.dune_3 + ++ optionals (useDune || mlPlugin) [ + coq.ocamlPackages.ocaml + coq.ocamlPackages.findlib + ] + ++ (args.nativeBuildInputs or [ ]) + ++ extraNativeBuildInputs + ); + buildInputs = + args.overrideBuildInputs or ([ coq ] ++ (args.buildInputs or [ ]) ++ extraBuildInputs); + inherit enableParallelBuilding; - meta = ({ platforms = coq.meta.platforms; } // - (switch domain [{ - case = pred.union isGitHubDomain isGitLabDomain; - out = { homepage = "https://${domain}/${owner}/${repo}"; }; - }] {}) // - optionalAttrs (fetched.broken or false) { coqFilter = true; broken = true; }) // - (args.meta or {}) ; + meta = + ( + { + platforms = coq.meta.platforms; + } + // (switch domain [ + { + case = pred.union isGitHubDomain isGitLabDomain; + out = { + homepage = "https://${domain}/${owner}/${repo}"; + }; + } + ] { }) + // optionalAttrs (fetched.broken or false) { + coqFilter = true; + broken = true; + } + ) + // (args.meta or { }); -} -// (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; }) -// (optionalAttrs (!args?installPhase && !args?useMelquiondRemake) { - installFlags = - coqlib-flags ++ docdir-flags ++ - extraInstallFlags; -}) -// (optionalAttrs useDune { - buildPhase = '' - runHook preBuild - dune build -p ${opam-name} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} - runHook postBuild - ''; - installPhase = '' - runHook preInstall - dune install ${opam-name} --prefix=$out - mv $out/lib/coq $out/lib/TEMPORARY - mkdir $out/lib/coq/ - mv $out/lib/TEMPORARY $out/lib/coq/${coq.coq-version} - runHook postInstall - ''; -}) -// (optionalAttrs (args?useMelquiondRemake) rec { - COQUSERCONTRIB = "$out/lib/coq/${coq.coq-version}/user-contrib"; - preConfigurePhases = "autoconf"; - configureFlags = [ "--libdir=${COQUSERCONTRIB}/${useMelquiondRemake.logpath or ""}" ]; - buildPhase = "./remake -j$NIX_BUILD_CORES"; - installPhase = "./remake install"; -}) -// (removeAttrs args args-to-remove)) dropDerivationAttrs) + } + // (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; }) + // (optionalAttrs (!args ? installPhase && !args ? useMelquiondRemake) { + installFlags = coqlib-flags ++ docdir-flags ++ extraInstallFlags; + }) + // (optionalAttrs useDune { + buildPhase = '' + runHook preBuild + dune build -p ${opam-name} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + runHook postBuild + ''; + installPhase = '' + runHook preInstall + dune install ${opam-name} --prefix=$out + mv $out/lib/coq $out/lib/TEMPORARY + mkdir $out/lib/coq/ + mv $out/lib/TEMPORARY $out/lib/coq/${coq.coq-version} + runHook postInstall + ''; + }) + // (optionalAttrs (args ? useMelquiondRemake) rec { + COQUSERCONTRIB = "$out/lib/coq/${coq.coq-version}/user-contrib"; + preConfigurePhases = "autoconf"; + configureFlags = [ "--libdir=${COQUSERCONTRIB}/${useMelquiondRemake.logpath or ""}" ]; + buildPhase = "./remake -j$NIX_BUILD_CORES"; + installPhase = "./remake install"; + }) + // (removeAttrs args args-to-remove) + ) dropDerivationAttrs +) diff --git a/pkgs/build-support/coq/extra-lib.nix b/pkgs/build-support/coq/extra-lib.nix index 94de7c0..29378a1 100644 --- a/pkgs/build-support/coq/extra-lib.nix +++ b/pkgs/build-support/coq/extra-lib.nix @@ -24,70 +24,78 @@ recursiveUpdate lib (rec { versions = let truncate = n: v: concatStringsSep "." (take n (splitVersion v)); - opTruncate = op: v0: v: let n = length (splitVersion v0); in - op (truncate n v) (truncate n v0); - in rec { + opTruncate = + op: v0: v: + let + n = length (splitVersion v0); + in + op (truncate n v) (truncate n v0); + in + rec { - /* Get string of the first n parts of a version string. + /* + Get string of the first n parts of a version string. - Example: - - truncate 2 "1.2.3-stuff" - => "1.2" + Example: + - truncate 2 "1.2.3-stuff" + => "1.2" - - truncate 4 "1.2.3-stuff" - => "1.2.3.stuff" - */ + - truncate 4 "1.2.3-stuff" + => "1.2.3.stuff" + */ - inherit truncate; + inherit truncate; - /* Get string of the first three parts (major, minor and patch) - of a version string. + /* + Get string of the first three parts (major, minor and patch) + of a version string. - Example: - majorMinorPatch "1.2.3-stuff" - => "1.2.3" - */ - majorMinorPatch = truncate 3; + Example: + majorMinorPatch "1.2.3-stuff" + => "1.2.3" + */ + majorMinorPatch = truncate 3; - /* Version comparison predicates, - - isGe v0 v <-> v is greater or equal than v0 [*] - - isLe v0 v <-> v is lesser or equal than v0 [*] - - isGt v0 v <-> v is strictly greater than v0 [*] - - isLt v0 v <-> v is strictly lesser than v0 [*] - - isEq v0 v <-> v is equal to v0 [*] - - range low high v <-> v is between low and high [**] + /* + Version comparison predicates, + - isGe v0 v <-> v is greater or equal than v0 [*] + - isLe v0 v <-> v is lesser or equal than v0 [*] + - isGt v0 v <-> v is strictly greater than v0 [*] + - isLt v0 v <-> v is strictly lesser than v0 [*] + - isEq v0 v <-> v is equal to v0 [*] + - range low high v <-> v is between low and high [**] - [*] truncating v to the same number of digits as v0 - [**] truncating v to low for the lower bound and high for the upper bound + [*] truncating v to the same number of digits as v0 + [**] truncating v to low for the lower bound and high for the upper bound - Examples: - - isGe "8.10" "8.10.1" - => true - - isLe "8.10" "8.10.1" - => true - - isGt "8.10" "8.10.1" - => false - - isGt "8.10.0" "8.10.1" - => true - - isEq "8.10" "8.10.1" - => true - - range "8.10" "8.11" "8.11.1" - => true - - range "8.10" "8.11+" "8.11.0" - => false - - range "8.10" "8.11+" "8.11+beta1" - => false + Examples: + - isGe "8.10" "8.10.1" + => true + - isLe "8.10" "8.10.1" + => true + - isGt "8.10" "8.10.1" + => false + - isGt "8.10.0" "8.10.1" + => true + - isEq "8.10" "8.10.1" + => true + - range "8.10" "8.11" "8.11.1" + => true + - range "8.10" "8.11+" "8.11.0" + => false + - range "8.10" "8.11+" "8.11+beta1" + => false + */ + isGe = opTruncate versionAtLeast; + isGt = opTruncate (flip versionOlder); + isLe = opTruncate (flip versionAtLeast); + isLt = opTruncate versionOlder; + isEq = opTruncate pred.equal; + range = low: high: pred.inter (versions.isGe low) (versions.isLe high); + }; - */ - isGe = opTruncate versionAtLeast; - isGt = opTruncate (flip versionOlder); - isLe = opTruncate (flip versionAtLeast); - isLt = opTruncate versionOlder; - isEq = opTruncate pred.equal; - range = low: high: pred.inter (versions.isGe low) (versions.isLe high); - }; - - /* Returns a list of list, splitting it using a predicate. + /* + Returns a list of list, splitting it using a predicate. This is analoguous to builtins.split sep list, with a predicate as a separator and a list instead of a string. @@ -97,117 +105,157 @@ recursiveUpdate lib (rec { splitList (x: x == "x") [ "y" "x" "z" "t" ] => [ [ "y" ] "x" [ "z" "t" ] ] */ - splitList = pred: l: # put in file lists - let loop = (vv: v: l: if l == [] then vv ++ [v] - else let hd = head l; tl = tail l; in - if pred hd then loop (vv ++ [ v hd ]) [] tl else loop vv (v ++ [hd]) tl); - in loop [] [] l; + splitList = + pred: l: # put in file lists + let + loop = ( + vv: v: l: + if l == [ ] then + vv ++ [ v ] + else + let + hd = head l; + tl = tail l; + in + if pred hd then + loop ( + vv + ++ [ + v + hd + ] + ) [ ] tl + else + loop vv (v ++ [ hd ]) tl + ); + in + loop [ ] [ ] l; pred = { - /* Predicate intersection, union, and complement */ - inter = p: q: x: p x && q x; - union = p: q: x: p x || q x; - compl = p: x: ! p x; - true = p: true; + # Predicate intersection, union, and complement + inter = + p: q: x: + p x && q x; + union = + p: q: x: + p x || q x; + compl = p: x: !p x; + true = p: true; false = p: false; - /* predicate "being equal to y" */ - equal = y: x: x == y; + # predicate "being equal to y" + equal = y: x: x == y; }; - /* Emulate a "switch - case" construct, - instead of relying on `if then else if ...` */ - /* Usage: - ```nix - switch-if [ - if-clause-1 - .. - if-clause-k - ] default-out - ``` - where a if-clause has the form `{ cond = b; out = r; }` - the first branch such as `b` is true */ - - switch-if = c: d: (findFirst (getAttr "cond") {} c).out or d; - - /* Usage: - ```nix - switch x [ - simple-clause-1 - .. - simple-clause-k - ] default-out - ``` - where a simple-clause has the form `{ case = p; out = r; }` - the first branch such as `p x` is true - or - ```nix - switch [ x1 .. xn ] [ - complex-clause-1 - .. - complex-clause-k - ] default-out - ``` - where a complex-clause is either a simple-clause - or has the form { cases = [ p1 .. pn ]; out = r; } - in which case the first branch such as all `pi x` are true - - if the variables p are not functions, - they are converted to a equal p - if out is missing the default-out is taken */ - - switch = var: clauses: default: with pred; let - compare = f: if isFunction f then f else equal f; - combine = cl: var: - if cl?case then compare cl.case var - else all (equal true) (zipListsWith compare cl.cases var); in - switch-if (map (cl: { cond = combine cl var; inherit (cl) out; }) clauses) default; - - /* Override arguments to mkCoqDerivation for a Coq library. - - This function allows you to easily override arguments to mkCoqDerivation, - even when they are not exposed by the Coq library directly. - - Type: overrideCoqDerivation :: AttrSet -> CoqLibraryDerivation -> CoqLibraryDerivation - - Example: - - ```nix - coqPackages.lib.overrideCoqDerivation - { - defaultVersion = "9999"; - release."9999".sha256 = "1lq8x86vd3vqqh2yq6hvyagpnhfq5wmk5pg2z0xq7b7dbbbhyfkw"; - } - coqPackages.QuickChick; - ``` - - This example overrides the `defaultVersion` and `release` arguments that - are passed to `mkCoqDerivation` in the QuickChick derivation. - - Note that there is a difference between using `.override` on a Coq - library vs this `overrideCoqDerivation` function. `.override` allows you - to modify arguments to the derivation itself, for instance by passing - different versions of dependencies: - - ```nix - coqPackages.QuickChick.override { ssreflect = my-cool-ssreflect; } - ``` - - whereas `overrideCoqDerivation` allows you to override arguments to the - call to `mkCoqDerivation` in the Coq library. - - Note that all Coq libraries in Nixpkgs have a `version` argument for - easily using a different version. So if all you want to do is use a - different version, and the derivation for the Coq library already has - support for the version you want, you likely only need to update the - `version` argument on the library derivation. This is done with - `.override`: - - ```nix - coqPackages.QuickChick.override { version = "1.4.0"; } - ``` + /* + Emulate a "switch - case" construct, + instead of relying on `if then else if ...` */ - overrideCoqDerivation = f: drv: (drv.override (args: { - mkCoqDerivation = drv_: (args.mkCoqDerivation drv_).override f; - })); + /* + Usage: + ```nix + switch-if [ + if-clause-1 + .. + if-clause-k + ] default-out + ``` + where a if-clause has the form `{ cond = b; out = r; }` + the first branch such as `b` is true + */ + + switch-if = c: d: (findFirst (getAttr "cond") { } c).out or d; + + /* + Usage: + ```nix + switch x [ + simple-clause-1 + .. + simple-clause-k + ] default-out + ``` + where a simple-clause has the form `{ case = p; out = r; }` + the first branch such as `p x` is true + or + ```nix + switch [ x1 .. xn ] [ + complex-clause-1 + .. + complex-clause-k + ] default-out + ``` + where a complex-clause is either a simple-clause + or has the form { cases = [ p1 .. pn ]; out = r; } + in which case the first branch such as all `pi x` are true + + if the variables p are not functions, + they are converted to a equal p + if out is missing the default-out is taken + */ + + switch = + var: clauses: default: + with pred; + let + compare = f: if isFunction f then f else equal f; + combine = + cl: var: + if cl ? case then compare cl.case var else all (equal true) (zipListsWith compare cl.cases var); + in + switch-if (map (cl: { + cond = combine cl var; + inherit (cl) out; + }) clauses) default; + + /* + Override arguments to mkCoqDerivation for a Coq library. + + This function allows you to easily override arguments to mkCoqDerivation, + even when they are not exposed by the Coq library directly. + + Type: overrideCoqDerivation :: AttrSet -> CoqLibraryDerivation -> CoqLibraryDerivation + + Example: + + ```nix + coqPackages.lib.overrideCoqDerivation + { + defaultVersion = "9999"; + release."9999".sha256 = "1lq8x86vd3vqqh2yq6hvyagpnhfq5wmk5pg2z0xq7b7dbbbhyfkw"; + } + coqPackages.QuickChick; + ``` + + This example overrides the `defaultVersion` and `release` arguments that + are passed to `mkCoqDerivation` in the QuickChick derivation. + + Note that there is a difference between using `.override` on a Coq + library vs this `overrideCoqDerivation` function. `.override` allows you + to modify arguments to the derivation itself, for instance by passing + different versions of dependencies: + + ```nix + coqPackages.QuickChick.override { ssreflect = my-cool-ssreflect; } + ``` + + whereas `overrideCoqDerivation` allows you to override arguments to the + call to `mkCoqDerivation` in the Coq library. + + Note that all Coq libraries in Nixpkgs have a `version` argument for + easily using a different version. So if all you want to do is use a + different version, and the derivation for the Coq library already has + support for the version you want, you likely only need to update the + `version` argument on the library derivation. This is done with + `.override`: + + ```nix + coqPackages.QuickChick.override { version = "1.4.0"; } + ``` + */ + overrideCoqDerivation = + f: drv: + (drv.override (args: { + mkCoqDerivation = drv_: (args.mkCoqDerivation drv_).override f; + })); }) diff --git a/pkgs/build-support/coq/meta-fetch/default.nix b/pkgs/build-support/coq/meta-fetch/default.nix index daed9fa..f9d5167 100644 --- a/pkgs/build-support/coq/meta-fetch/default.nix +++ b/pkgs/build-support/coq/meta-fetch/default.nix @@ -1,9 +1,11 @@ -{ lib, stdenv, fetchzip }@args: +{ + lib, + stdenv, + fetchzip, +}@args: let - lib = import ../extra-lib.nix { - inherit (args) lib; - }; + lib = import ../extra-lib.nix { inherit (args) lib; }; inherit (lib) attrNames @@ -28,68 +30,123 @@ let inherit (lib.strings) match split; - default-fetcher = {domain ? "github.com", owner ? "", repo, rev, name ? "source", sha256 ? null, ...}@args: - let ext = if args?sha256 then "zip" else "tar.gz"; - fmt = if args?sha256 then "zip" else "tarball"; - pr = match "^#(.*)$" rev; - url = switch-if [ - { cond = pr == null && (match "^github.*" domain) != null; - out = "https://${domain}/${owner}/${repo}/archive/${rev}.${ext}"; } - { cond = pr != null && (match "^github.*" domain) != null; - out = "https://api.${domain}/repos/${owner}/${repo}/${fmt}/pull/${head pr}/head"; } - { cond = pr == null && (match "^gitlab.*" domain) != null; - out = "https://${domain}/${owner}/${repo}/-/archive/${rev}/${repo}-${rev}.${ext}"; } - { cond = (match "(www.)?mpi-sws.org" domain) != null; - out = "https://www.mpi-sws.org/~${owner}/${repo}/download/${repo}-${rev}.${ext}";} - ] (throw "meta-fetch: no fetcher found for domain ${domain} on ${rev}"); - fetch = x: if args?sha256 then fetchzip (x // { inherit sha256; }) else builtins.fetchTarball x; - in fetch { inherit url ; }; + default-fetcher = + { + domain ? "github.com", + owner ? "", + repo, + rev, + name ? "source", + sha256 ? null, + ... + }@args: + let + ext = if args ? sha256 then "zip" else "tar.gz"; + fmt = if args ? sha256 then "zip" else "tarball"; + pr = match "^#(.*)$" rev; + url = switch-if [ + { + cond = pr == null && (match "^github.*" domain) != null; + out = "https://${domain}/${owner}/${repo}/archive/${rev}.${ext}"; + } + { + cond = pr != null && (match "^github.*" domain) != null; + out = "https://api.${domain}/repos/${owner}/${repo}/${fmt}/pull/${head pr}/head"; + } + { + cond = pr == null && (match "^gitlab.*" domain) != null; + out = "https://${domain}/${owner}/${repo}/-/archive/${rev}/${repo}-${rev}.${ext}"; + } + { + cond = (match "(www.)?mpi-sws.org" domain) != null; + out = "https://www.mpi-sws.org/~${owner}/${repo}/download/${repo}-${rev}.${ext}"; + } + ] (throw "meta-fetch: no fetcher found for domain ${domain} on ${rev}"); + fetch = x: if args ? sha256 then fetchzip (x // { inherit sha256; }) else builtins.fetchTarball x; + in + fetch { inherit url; }; in { fetcher ? default-fetcher, location, - release ? {}, + release ? { }, releaseRev ? (v: v), }: -let isVersion = x: isString x && match "^/.*" x == null && release?${x}; - shortVersion = x: if (isString x && match "^/.*" x == null) - then findFirst (v: versions.majorMinor v == x) null - (sort versionAtLeast (attrNames release)) - else null; - isShortVersion = x: shortVersion x != null; - isPathString = x: isString x && match "^/.*" x != null && pathExists x; in +let + isVersion = x: isString x && match "^/.*" x == null && release ? ${x}; + shortVersion = + x: + if (isString x && match "^/.*" x == null) then + findFirst (v: versions.majorMinor v == x) null (sort versionAtLeast (attrNames release)) + else + null; + isShortVersion = x: shortVersion x != null; + isPathString = x: isString x && match "^/.*" x != null && pathExists x; +in arg: switch arg [ - { case = isNull; out = { version = "broken"; src = ""; broken = true; }; } - { case = isPathString; out = { version = "dev"; src = arg; }; } - { case = pred.union isVersion isShortVersion; - out = let - v = if isVersion arg then arg else shortVersion arg; - given-sha256 = release.${v}.sha256 or ""; - sha256 = if given-sha256 == "" then fakeSha256 else given-sha256; - rv = release.${v} // { inherit sha256; }; - in + { + case = isNull; + out = { + version = "broken"; + src = ""; + broken = true; + }; + } + { + case = isPathString; + out = { + version = "dev"; + src = arg; + }; + } + { + case = pred.union isVersion isShortVersion; + out = + let + v = if isVersion arg then arg else shortVersion arg; + given-sha256 = release.${v}.sha256 or ""; + sha256 = if given-sha256 == "" then fakeSha256 else given-sha256; + rv = release.${v} // { + inherit sha256; + }; + in { version = rv.version or v; src = rv.src or fetcher (location // { rev = releaseRev v; } // rv); }; - } - { case = isString; - out = let - splitted = filter isString (split ":" arg); - rev = last splitted; + } + { + case = isString; + out = + let + splitted = filter isString (split ":" arg); + rev = last splitted; has-owner = length splitted > 1; - version = "dev"; in { - inherit version; - src = fetcher (location // { inherit rev; } // - (optionalAttrs has-owner { owner = head splitted; })); - }; } - { case = isAttrs; + version = "dev"; + in + { + inherit version; + src = fetcher ( + location // { inherit rev; } // (optionalAttrs has-owner { owner = head splitted; }) + ); + }; + } + { + case = isAttrs; out = { version = arg.version or "dev"; - src = (arg.fetcher or fetcher) (location // (arg.location or {})); }; } - { case = isPath; + src = (arg.fetcher or fetcher) (location // (arg.location or { })); + }; + } + { + case = isPath; out = { - version = "dev" ; - src = builtins.path {path = arg; name = location.name or "source";}; }; } + version = "dev"; + src = builtins.path { + path = arg; + name = location.name or "source"; + }; + }; + } ] (throw "not a valid source description") diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index c99b8bb..a74586e 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -1,66 +1,88 @@ -{ lib -, stdenv -, callPackage -, runCommand -, writeText -, pub2nix -, dartHooks -, makeWrapper -, dart -, nodejs -, darwin -, jq -, yq +{ + lib, + stdenv, + callPackage, + runCommand, + writeText, + pub2nix, + dartHooks, + makeWrapper, + dart, + nodejs, + darwin, + jq, + yq, }: -{ src -, sourceRoot ? "source" -, packageRoot ? (lib.removePrefix "/" (lib.removePrefix "source" sourceRoot)) -, gitHashes ? { } -, sdkSourceBuilders ? { } -, customSourceBuilders ? { } +{ + src, + sourceRoot ? "source", + packageRoot ? (lib.removePrefix "/" (lib.removePrefix "source" sourceRoot)), + gitHashes ? { }, + sdkSourceBuilders ? { }, + customSourceBuilders ? { }, -, sdkSetupScript ? "" -, extraPackageConfigSetup ? "" + sdkSetupScript ? "", + extraPackageConfigSetup ? "", # Output type to produce. Can be any kind supported by dart # https://dart.dev/tools/dart-compile#types-of-output # If using jit, you might want to pass some arguments to `dartJitFlags` -, dartOutputType ? "exe" -, dartCompileCommand ? "dart compile" -, dartCompileFlags ? [ ] + dartOutputType ? "exe", + dartCompileCommand ? "dart compile", + dartCompileFlags ? [ ], # These come at the end of the command, useful to pass flags to the jit run -, dartJitFlags ? [ ] + dartJitFlags ? [ ], # Attrset of entry point files to build and install. # Where key is the final binary path and value is the source file path # e.g. { "bin/foo" = "bin/main.dart"; } # Set to null to read executables from pubspec.yaml -, dartEntryPoints ? null + dartEntryPoints ? null, # Used when wrapping aot, jit, kernel, and js builds. # Set to null to disable wrapping. -, dartRuntimeCommand ? if dartOutputType == "aot-snapshot" then "${dart}/bin/dartaotruntime" - else if (dartOutputType == "jit-snapshot" || dartOutputType == "kernel") then "${dart}/bin/dart" - else if dartOutputType == "js" then "${nodejs}/bin/node" - else null + dartRuntimeCommand ? + if dartOutputType == "aot-snapshot" then + "${dart}/bin/dartaotruntime" + else if (dartOutputType == "jit-snapshot" || dartOutputType == "kernel") then + "${dart}/bin/dart" + else if dartOutputType == "js" then + "${nodejs}/bin/node" + else + null, -, runtimeDependencies ? [ ] -, extraWrapProgramArgs ? "" + runtimeDependencies ? [ ], + extraWrapProgramArgs ? "", -, autoPubspecLock ? null -, pubspecLock ? if autoPubspecLock == null then - throw "The pubspecLock argument is required. If import-from-derivation is allowed (it isn't in Nixpkgs), you can set autoPubspecLock to the path to a pubspec.lock instead." - else - assert lib.assertMsg (builtins.pathExists autoPubspecLock) "The pubspec.lock file could not be found!"; - lib.importJSON (runCommand "${lib.getName args}-pubspec-lock-json" { nativeBuildInputs = [ yq ]; } ''yq . '${autoPubspecLock}' > "$out"'') -, ... + autoPubspecLock ? null, + pubspecLock ? + if autoPubspecLock == null then + throw "The pubspecLock argument is required. If import-from-derivation is allowed (it isn't in Nixpkgs), you can set autoPubspecLock to the path to a pubspec.lock instead." + else + assert lib.assertMsg (builtins.pathExists autoPubspecLock) + "The pubspec.lock file could not be found!"; + lib.importJSON ( + runCommand "${lib.getName args}-pubspec-lock-json" { + nativeBuildInputs = [ yq ]; + } ''yq . '${autoPubspecLock}' > "$out"'' + ), + ... }@args: let generators = callPackage ./generators.nix { inherit dart; } { buildDrvArgs = args; }; pubspecLockFile = builtins.toJSON pubspecLock; - pubspecLockData = pub2nix.readPubspecLock { inherit src packageRoot pubspecLock gitHashes sdkSourceBuilders customSourceBuilders; }; + pubspecLockData = pub2nix.readPubspecLock { + inherit + src + packageRoot + pubspecLock + gitHashes + sdkSourceBuilders + customSourceBuilders + ; + }; packageConfig = generators.linkPackageConfig { packageConfig = pub2nix.generatePackageConfig { pname = if args.pname != null then "${args.pname}-${args.version}" else null; @@ -80,53 +102,85 @@ let extraSetupCommands = extraPackageConfigSetup; }; - inherit (dartHooks.override { inherit dart; }) dartConfigHook dartBuildHook dartInstallHook dartFixupHook; + inherit (dartHooks.override { inherit dart; }) + dartConfigHook + dartBuildHook + dartInstallHook + dartFixupHook + ; - baseDerivation = stdenv.mkDerivation (finalAttrs: (builtins.removeAttrs args [ "gitHashes" "sdkSourceBuilders" "pubspecLock" "customSourceBuilders" ]) // { - inherit pubspecLockFile packageConfig sdkSetupScript - dartCompileCommand dartOutputType dartRuntimeCommand dartCompileFlags - dartJitFlags; + baseDerivation = stdenv.mkDerivation ( + finalAttrs: + (builtins.removeAttrs args [ + "gitHashes" + "sdkSourceBuilders" + "pubspecLock" + "customSourceBuilders" + ]) + // { + inherit + pubspecLockFile + packageConfig + sdkSetupScript + dartCompileCommand + dartOutputType + dartRuntimeCommand + dartCompileFlags + dartJitFlags + ; - outputs = [ "out" "pubcache" ] ++ args.outputs or [ ]; + outputs = [ + "out" + "pubcache" + ] ++ args.outputs or [ ]; - dartEntryPoints = - if (dartEntryPoints != null) - then writeText "entrypoints.json" (builtins.toJSON dartEntryPoints) - else null; + dartEntryPoints = + if (dartEntryPoints != null) then + writeText "entrypoints.json" (builtins.toJSON dartEntryPoints) + else + null; - runtimeDependencies = map lib.getLib runtimeDependencies; + runtimeDependencies = map lib.getLib runtimeDependencies; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ - dart - dartConfigHook - dartBuildHook - dartInstallHook - dartFixupHook - makeWrapper - jq - ] ++ lib.optionals stdenv.isDarwin [ - darwin.sigtool - ] ++ - # Ensure that we inherit the propagated build inputs from the dependencies. - builtins.attrValues pubspecLockData.dependencySources; + nativeBuildInputs = + (args.nativeBuildInputs or [ ]) + ++ [ + dart + dartConfigHook + dartBuildHook + dartInstallHook + dartFixupHook + makeWrapper + jq + ] + ++ lib.optionals stdenv.isDarwin [ darwin.sigtool ] + ++ + # Ensure that we inherit the propagated build inputs from the dependencies. + builtins.attrValues pubspecLockData.dependencySources; - preConfigure = args.preConfigure or "" + '' - ln -sf "$pubspecLockFilePath" pubspec.lock - ''; + preConfigure = + args.preConfigure or "" + + '' + ln -sf "$pubspecLockFilePath" pubspec.lock + ''; - # When stripping, it seems some ELF information is lost and the dart VM cli - # runs instead of the expected program. Don't strip if it's an exe output. - dontStrip = args.dontStrip or (dartOutputType == "exe"); + # When stripping, it seems some ELF information is lost and the dart VM cli + # runs instead of the expected program. Don't strip if it's an exe output. + dontStrip = args.dontStrip or (dartOutputType == "exe"); - passAsFile = [ "pubspecLockFile" ]; + passAsFile = [ "pubspecLockFile" ]; - passthru = { - pubspecLock = pubspecLockData; - } // (args.passthru or { }); + passthru = { + pubspecLock = pubspecLockData; + } // (args.passthru or { }); - meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; }; - }); + meta = (args.meta or { }) // { + platforms = args.meta.platforms or dart.meta.platforms; + }; + } + ); in -assert !(builtins.isString dartOutputType && dartOutputType != "") -> -throw "dartOutputType must be a non-empty string"; +assert + !(builtins.isString dartOutputType && dartOutputType != "") + -> throw "dartOutputType must be a non-empty string"; baseDerivation diff --git a/pkgs/build-support/dart/build-dart-application/generators.nix b/pkgs/build-support/dart/build-dart-application/generators.nix index f01a093..45fb36c 100644 --- a/pkgs/build-support/dart/build-dart-application/generators.nix +++ b/pkgs/build-support/dart/build-dart-application/generators.nix @@ -1,10 +1,11 @@ -{ lib -, stdenvNoCC -, dart -, dartHooks -, jq -, yq -, cacert +{ + lib, + stdenvNoCC, + dart, + dartHooks, + jq, + yq, + cacert, }: { @@ -12,8 +13,8 @@ # Passing these is recommended to ensure that the same steps are made to # prepare the sources in both this derivation and the one that builds the Dart # package. - buildDrvArgs ? { } -, ... + buildDrvArgs ? { }, + ... }@args: # This is a derivation and setup hook that can be used to fetch dependencies for Dart projects. @@ -38,37 +39,46 @@ let "postPatch" ]; - buildDrvInheritArgs = builtins.foldl' - (attrs: arg: - if buildDrvArgs ? ${arg} - then attrs // { ${arg} = buildDrvArgs.${arg}; } - else attrs) - { } - buildDrvInheritArgNames; + buildDrvInheritArgs = builtins.foldl' ( + attrs: arg: if buildDrvArgs ? ${arg} then attrs // { ${arg} = buildDrvArgs.${arg}; } else attrs + ) { } buildDrvInheritArgNames; drvArgs = buildDrvInheritArgs // (removeAttrs args [ "buildDrvArgs" ]); name = (if drvArgs ? name then drvArgs.name else "${drvArgs.pname}-${drvArgs.version}"); # Adds the root package to a dependency package_config.json file from pub2nix. - linkPackageConfig = { packageConfig, extraSetupCommands ? "" }: stdenvNoCC.mkDerivation (drvArgs // { - name = "${name}-package-config-with-root.json"; + linkPackageConfig = + { + packageConfig, + extraSetupCommands ? "", + }: + stdenvNoCC.mkDerivation ( + drvArgs + // { + name = "${name}-package-config-with-root.json"; - nativeBuildInputs = drvArgs.nativeBuildInputs or [ ] ++ args.nativeBuildInputs or [ ] ++ [ jq yq ]; + nativeBuildInputs = + drvArgs.nativeBuildInputs or [ ] + ++ args.nativeBuildInputs or [ ] + ++ [ + jq + yq + ]; - dontBuild = true; + dontBuild = true; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - packageName="$(yq --raw-output .name pubspec.yaml)" - jq --arg name "$packageName" '.packages |= . + [{ name: $name, rootUri: "../", packageUri: "lib/" }]' '${packageConfig}' > "$out" - ${extraSetupCommands} + packageName="$(yq --raw-output .name pubspec.yaml)" + jq --arg name "$packageName" '.packages |= . + [{ name: $name, rootUri: "../", packageUri: "lib/" }]' '${packageConfig}' > "$out" + ${extraSetupCommands} - runHook postInstall - ''; - }); + runHook postInstall + ''; + } + ); in { - inherit - linkPackageConfig; + inherit linkPackageConfig; } diff --git a/pkgs/build-support/dart/build-dart-application/hooks/default.nix b/pkgs/build-support/dart/build-dart-application/hooks/default.nix index 253d313..61ba390 100644 --- a/pkgs/build-support/dart/build-dart-application/hooks/default.nix +++ b/pkgs/build-support/dart/build-dart-application/hooks/default.nix @@ -1,4 +1,10 @@ -{ lib, makeSetupHook, dart, yq, jq }: +{ + lib, + makeSetupHook, + dart, + yq, + jq, +}: { dartConfigHook = makeSetupHook { @@ -11,10 +17,6 @@ substitutions.yq = "${yq}/bin/yq"; substitutions.jq = "${jq}/bin/jq"; } ./dart-build-hook.sh; - dartInstallHook = makeSetupHook { - name = "dart-install-hook"; - } ./dart-install-hook.sh; - dartFixupHook = makeSetupHook { - name = "dart-fixup-hook"; - } ./dart-fixup-hook.sh; + dartInstallHook = makeSetupHook { name = "dart-install-hook"; } ./dart-install-hook.sh; + dartFixupHook = makeSetupHook { name = "dart-fixup-hook"; } ./dart-fixup-hook.sh; } diff --git a/pkgs/build-support/dart/pub2nix/package-config.nix b/pkgs/build-support/dart/pub2nix/package-config.nix index 70abb0a..3cc67e8 100644 --- a/pkgs/build-support/dart/pub2nix/package-config.nix +++ b/pkgs/build-support/dart/pub2nix/package-config.nix @@ -1,16 +1,18 @@ -{ lib -, runCommand -, jq -, yq +{ + lib, + runCommand, + jq, + yq, }: -{ pname ? null +{ + pname ? null, # A list of dependency package names. -, dependencies + dependencies, # An attribute set of package names to sources. -, dependencySources + dependencySources, }: let @@ -22,47 +24,51 @@ in (runCommand "${lib.optionalString (pname != null) "${pname}-"}package-config.json" { inherit packages; - nativeBuildInputs = [ jq yq ]; + nativeBuildInputs = [ + jq + yq + ]; __structuredAttrs = true; -}) '' - declare -A packageSources - declare -A packageRoots - while IFS=',' read -r name src packageRoot; do - packageSources["$name"]="$src" - packageRoots["$name"]="$packageRoot" - done < <(jq -r '.packages | to_entries | map("\(.key),\(.value.src),\(.value.packageRoot)") | .[]' "$NIX_ATTRS_JSON_FILE") +}) + '' + declare -A packageSources + declare -A packageRoots + while IFS=',' read -r name src packageRoot; do + packageSources["$name"]="$src" + packageRoots["$name"]="$packageRoot" + done < <(jq -r '.packages | to_entries | map("\(.key),\(.value.src),\(.value.packageRoot)") | .[]' "$NIX_ATTRS_JSON_FILE") - for package in "''${!packageSources[@]}"; do - if [ ! -e "''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml" ]; then - echo >&2 "The package sources for $package are missing. Is the following path inside the source derivation?" - echo >&2 "Source path: ''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml" - exit 1 - fi + for package in "''${!packageSources[@]}"; do + if [ ! -e "''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml" ]; then + echo >&2 "The package sources for $package are missing. Is the following path inside the source derivation?" + echo >&2 "Source path: ''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml" + exit 1 + fi - languageConstraint="$(yq -r .environment.sdk "''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml")" - if [[ "$languageConstraint" =~ ^[[:space:]]*(\^|>=|>)?[[:space:]]*([[:digit:]]+\.[[:digit:]]+)\.[[:digit:]]+.*$ ]]; then - languageVersionJson="\"''${BASH_REMATCH[2]}\"" - elif [ "$languageConstraint" = 'any' ]; then - languageVersionJson='null' - else - # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/language_version.dart#L106C35-L106C35 - languageVersionJson='"2.7"' - fi + languageConstraint="$(yq -r .environment.sdk "''${packageSources["$package"]}/''${packageRoots["$package"]}/pubspec.yaml")" + if [[ "$languageConstraint" =~ ^[[:space:]]*(\^|>=|>)?[[:space:]]*([[:digit:]]+\.[[:digit:]]+)\.[[:digit:]]+.*$ ]]; then + languageVersionJson="\"''${BASH_REMATCH[2]}\"" + elif [ "$languageConstraint" = 'any' ]; then + languageVersionJson='null' + else + # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/language_version.dart#L106C35-L106C35 + languageVersionJson='"2.7"' + fi - jq --null-input \ - --arg name "$package" \ - --arg path "''${packageSources["$package"]}/''${packageRoots["$package"]}" \ - --argjson languageVersion "$languageVersionJson" \ - '{ - name: $name, - rootUri: "file://\($path)", - packageUri: "lib/", - languageVersion: $languageVersion, - }' - done | jq > "$out" --slurp '{ - configVersion: 2, - generator: "nixpkgs", - packages: ., - }' -'' + jq --null-input \ + --arg name "$package" \ + --arg path "''${packageSources["$package"]}/''${packageRoots["$package"]}" \ + --argjson languageVersion "$languageVersionJson" \ + '{ + name: $name, + rootUri: "file://\($path)", + packageUri: "lib/", + languageVersion: $languageVersion, + }' + done | jq > "$out" --slurp '{ + configVersion: 2, + generator: "nixpkgs", + packages: ., + }' + '' diff --git a/pkgs/build-support/dart/pub2nix/pubspec-lock.nix b/pkgs/build-support/dart/pub2nix/pubspec-lock.nix index e1ab4d7..456236e 100644 --- a/pkgs/build-support/dart/pub2nix/pubspec-lock.nix +++ b/pkgs/build-support/dart/pub2nix/pubspec-lock.nix @@ -1,28 +1,29 @@ -{ lib -, callPackage -, fetchurl -, fetchgit -, runCommand +{ + lib, + callPackage, + fetchurl, + fetchgit, + runCommand, }: { # The source directory of the package. - src + src, # The package subdirectory within src. # Useful if the package references sibling packages with relative paths. -, packageRoot ? "." + packageRoot ? ".", # The pubspec.lock file, in attribute set form. -, pubspecLock + pubspecLock, # Hashes for Git dependencies. # Pub does not record these itself, so they must be manually provided. -, gitHashes ? { } + gitHashes ? { }, # Functions to generate SDK package sources. # The function names should match the SDK names, and the package name is given as an argument. -, sdkSourceBuilders ? { } + sdkSourceBuilders ? { }, # Functions that create custom package source derivations. # @@ -30,7 +31,7 @@ # source, and source files are given in an attribute set argument. # # The passthru of the source derivation should be propagated. -, customSourceBuilders ? { } + customSourceBuilders ? { }, }: let @@ -43,14 +44,20 @@ let "transitive" = "transitive"; }; - dependencies = lib.foldlAttrs - (dependencies: name: details: dependencies // { ${dependencyTypes.${details.dependency}} = dependencies.${dependencyTypes.${details.dependency}} ++ [ name ]; }) - (lib.genAttrs (builtins.attrValues dependencyTypes) (dependencyType: [ ])) - pubspecLock.packages; + dependencies = lib.foldlAttrs ( + dependencies: name: details: + dependencies + // { + ${dependencyTypes.${details.dependency}} = + dependencies.${dependencyTypes.${details.dependency}} + ++ [ name ]; + } + ) (lib.genAttrs (builtins.attrValues dependencyTypes) (dependencyType: [ ])) pubspecLock.packages; # fetchTarball fails with "tarball contains an unexpected number of top-level files". This is a workaround. # https://discourse.nixos.org/t/fetchtarball-with-multiple-top-level-directories-fails/20556 - mkHostedDependencySource = name: details: + mkHostedDependencySource = + name: details: let archive = fetchurl { name = "pub-${name}-${details.version}.tar.gz"; @@ -63,48 +70,95 @@ let tar xf '${archive}' -C "$out" ''; - mkGitDependencySource = name: details: (fetchgit { - name = "pub-${name}-${details.version}"; - url = details.description.url; - rev = details.description.resolved-ref; - hash = gitHashes.${name} or (throw "A Git hash is required for ${name}! Set to an empty string to obtain it."); - }).overrideAttrs ({ passthru ? { }, ... }: { - passthru = passthru // { - packageRoot = details.description.path; - }; - }); + mkGitDependencySource = + name: details: + (fetchgit { + name = "pub-${name}-${details.version}"; + url = details.description.url; + rev = details.description.resolved-ref; + hash = + gitHashes.${name} + or (throw "A Git hash is required for ${name}! Set to an empty string to obtain it."); + }).overrideAttrs + ( + { + passthru ? { }, + ... + }: + { + passthru = passthru // { + packageRoot = details.description.path; + }; + } + ); - mkPathDependencySource = name: details: - assert lib.assertMsg details.description.relative "Only relative paths are supported - ${name} has an absolue path!"; - (if lib.isDerivation src then src else (runCommand "pub-${name}-${details.version}" { } ''cp -r '${src}' "$out"'')).overrideAttrs ({ passthru ? { }, ... }: { - passthru = passthru // { - packageRoot = "${packageRoot}/${details.description.path}"; - }; - }); + mkPathDependencySource = + name: details: + assert lib.assertMsg details.description.relative + "Only relative paths are supported - ${name} has an absolue path!"; + ( + if lib.isDerivation src then + src + else + (runCommand "pub-${name}-${details.version}" { } ''cp -r '${src}' "$out"'') + ).overrideAttrs + ( + { + passthru ? { }, + ... + }: + { + passthru = passthru // { + packageRoot = "${packageRoot}/${details.description.path}"; + }; + } + ); - mkSdkDependencySource = name: details: - (sdkSourceBuilders.${details.description} or (throw "No SDK source builder has been given for ${details.description}!")) name; + mkSdkDependencySource = + name: details: + (sdkSourceBuilders.${details.description} + or (throw "No SDK source builder has been given for ${details.description}!") + ) + name; - addDependencySourceUtils = dependencySource: details: dependencySource.overrideAttrs ({ passthru, ... }: { - passthru = passthru // { - inherit (details) version; - }; - }); + addDependencySourceUtils = + dependencySource: details: + dependencySource.overrideAttrs ( + { passthru, ... }: + { + passthru = passthru // { + inherit (details) version; + }; + } + ); - sourceBuilders = callPackage ../../../development/compilers/dart/package-source-builders { } // customSourceBuilders; + sourceBuilders = + callPackage ../../../development/compilers/dart/package-source-builders { } // customSourceBuilders; - dependencySources = lib.filterAttrs (name: src: src != null) (builtins.mapAttrs - (name: details: + dependencySources = lib.filterAttrs (name: src: src != null) ( + builtins.mapAttrs ( + name: details: (sourceBuilders.${name} or ({ src, ... }: src)) { inherit (details) version source; - src = ((addDependencySourceUtils (({ - "hosted" = mkHostedDependencySource; - "git" = mkGitDependencySource; - "path" = mkPathDependencySource; - "sdk" = mkSdkDependencySource; - }.${details.source} name) details)) details); - }) - pubspecLock.packages); + src = ( + (addDependencySourceUtils ( + ( + { + "hosted" = mkHostedDependencySource; + "git" = mkGitDependencySource; + "path" = mkPathDependencySource; + "sdk" = mkSdkDependencySource; + } + .${details.source} + name + ) + details + )) + details + ); + } + ) pubspecLock.packages + ); in { inherit @@ -115,5 +169,6 @@ in dependencyVersions # An attribute set of package names to their sources. - dependencySources; + dependencySources + ; } diff --git a/pkgs/build-support/deterministic-uname/default.nix b/pkgs/build-support/deterministic-uname/default.nix index 6d15055..3d308cf 100644 --- a/pkgs/build-support/deterministic-uname/default.nix +++ b/pkgs/build-support/deterministic-uname/default.nix @@ -1,10 +1,11 @@ # expr and script based on our lsb_release -{ stdenv -, lib -, substituteAll -, coreutils -, getopt -, modDirVersion ? "" +{ + stdenv, + lib, + substituteAll, + coreutils, + getopt, + modDirVersion ? "", }: substituteAll { @@ -17,7 +18,8 @@ substituteAll { inherit coreutils getopt; - uSystem = if stdenv.buildPlatform.uname.system != null then stdenv.buildPlatform.uname.system else "unknown"; + uSystem = + if stdenv.buildPlatform.uname.system != null then stdenv.buildPlatform.uname.system else "unknown"; inherit (stdenv.buildPlatform.uname) processor; # uname -o @@ -26,11 +28,12 @@ substituteAll { # https://stackoverflow.com/questions/61711186/where-does-host-operating-system-in-uname-c-comes-from # https://github.com/coreutils/gnulib/blob/master/m4/host-os.m4 operatingSystem = - if stdenv.buildPlatform.isLinux - then "GNU/Linux" - else if stdenv.buildPlatform.isDarwin - then "Darwin" # darwin isn't in host-os.m4 so where does this come from? - else "unknown"; + if stdenv.buildPlatform.isLinux then + "GNU/Linux" + else if stdenv.buildPlatform.isDarwin then + "Darwin" # darwin isn't in host-os.m4 so where does this come from? + else + "unknown"; # in os-specific/linux module packages # --replace '$(shell uname -r)' "${kernel.modDirVersion}" \ diff --git a/pkgs/build-support/dhall/directory-to-nix.nix b/pkgs/build-support/dhall/directory-to-nix.nix index d751e19..ba02ddf 100644 --- a/pkgs/build-support/dhall/directory-to-nix.nix +++ b/pkgs/build-support/dhall/directory-to-nix.nix @@ -1,4 +1,4 @@ -{ dhallPackages, dhallPackageToNix}: +{ dhallPackages, dhallPackageToNix }: # `dhallDirectoryToNix is a utility function to take a directory of Dhall files # and read them in as a Nix expression. @@ -11,9 +11,10 @@ # `dhallDirectoryToNix` utility. It is not possible to use # `dhallDirectoryToNix` in Nixpkgs, since the Nixpkgs Hydra doesn't allow IFD. -{ src -, # The file to import, relative to the src root directory - file ? "package.dhall" +{ + src, + # The file to import, relative to the src root directory + file ? "package.dhall", }@args: let @@ -22,4 +23,4 @@ let builtPkg = dhallPackages.callPackage generatedPkg { }; in - dhallPackageToNix builtPkg +dhallPackageToNix builtPkg diff --git a/pkgs/build-support/dhall/package-to-nix.nix b/pkgs/build-support/dhall/package-to-nix.nix index 301501a..1c47c9c 100644 --- a/pkgs/build-support/dhall/package-to-nix.nix +++ b/pkgs/build-support/dhall/package-to-nix.nix @@ -1,4 +1,3 @@ - # `dhallPackageToNix` is a utility function to take a Nixpkgs Dhall package # (created with a function like `dhallPackages.buildDhallDirectoryPackage`) # and read it in as a Nix expression. @@ -14,23 +13,23 @@ { stdenv, dhall-nix }: dhallPackage: - let - drv = stdenv.mkDerivation { - name = "dhall-compiled-package.nix"; +let + drv = stdenv.mkDerivation { + name = "dhall-compiled-package.nix"; - buildCommand = '' - # Dhall requires that the cache is writable, even if it is never written to. - # We copy the cache from the input package to the current directory and - # set the cache as writable. - cp -r "${dhallPackage}/.cache" ./ - export XDG_CACHE_HOME=$PWD/.cache - chmod -R +w ./.cache + buildCommand = '' + # Dhall requires that the cache is writable, even if it is never written to. + # We copy the cache from the input package to the current directory and + # set the cache as writable. + cp -r "${dhallPackage}/.cache" ./ + export XDG_CACHE_HOME=$PWD/.cache + chmod -R +w ./.cache - dhall-to-nix <<< "${dhallPackage}/binary.dhall" > $out - ''; + dhall-to-nix <<< "${dhallPackage}/binary.dhall" > $out + ''; - nativeBuildInputs = [ dhall-nix ]; - }; + nativeBuildInputs = [ dhall-nix ]; + }; - in - import drv +in +import drv diff --git a/pkgs/build-support/dhall/to-nix.nix b/pkgs/build-support/dhall/to-nix.nix index 96cc16e..e7e9c86 100644 --- a/pkgs/build-support/dhall/to-nix.nix +++ b/pkgs/build-support/dhall/to-nix.nix @@ -1,24 +1,30 @@ -/* `dhallToNix` is a utility function to convert expressions in the Dhall - configuration language to their corresponding Nix expressions. +/* + `dhallToNix` is a utility function to convert expressions in the Dhall + configuration language to their corresponding Nix expressions. - Example: - dhallToNix "{ foo = 1, bar = True }" - => { foo = 1; bar = true; } - dhallToNix "λ(x : Bool) → x == False" - => x : x == false - dhallToNix "λ(x : Bool) → x == False" false - => true + Example: + dhallToNix "{ foo = 1, bar = True }" + => { foo = 1; bar = true; } + dhallToNix "λ(x : Bool) → x == False" + => x : x == false + dhallToNix "λ(x : Bool) → x == False" false + => true - See https://hackage.haskell.org/package/dhall-nix/docs/Dhall-Nix.html for - a longer tutorial + See https://hackage.haskell.org/package/dhall-nix/docs/Dhall-Nix.html for + a longer tutorial - Note that this uses "import from derivation", meaning that Nix will perform - a build during the evaluation phase if you use this `dhallToNix` utility + Note that this uses "import from derivation", meaning that Nix will perform + a build during the evaluation phase if you use this `dhallToNix` utility */ -{ stdenv, dhall-nix, writeText }: +{ + stdenv, + dhall-nix, + writeText, +}: let - dhallToNix = code : + dhallToNix = + code: let file = writeText "dhall-expression" code; @@ -33,6 +39,6 @@ let }; in - import drv; + import drv; in - dhallToNix +dhallToNix diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 1d1989d..78cb01d 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -1,55 +1,51 @@ -{ bashInteractive -, buildPackages -, cacert -, callPackage -, closureInfo -, coreutils -, e2fsprogs -, proot -, fakeNss -, fakeroot -, file -, go -, jq -, jshon -, lib -, makeWrapper -, moreutils -, nix -, nixosTests -, pigz -, rsync -, runCommand -, runtimeShell -, shadow -, skopeo -, storeDir ? builtins.storeDir -, substituteAll -, symlinkJoin -, tarsum -, util-linux -, vmTools -, writeClosure -, writeScript -, writeShellScriptBin -, writeText -, writeTextDir -, writePython3 -, zstd +{ + bashInteractive, + buildPackages, + cacert, + callPackage, + closureInfo, + coreutils, + e2fsprogs, + proot, + fakeNss, + fakeroot, + file, + go, + jq, + jshon, + lib, + makeWrapper, + moreutils, + nix, + nixosTests, + pigz, + rsync, + runCommand, + runtimeShell, + shadow, + skopeo, + storeDir ? builtins.storeDir, + substituteAll, + symlinkJoin, + tarsum, + util-linux, + vmTools, + writeClosure, + writeScript, + writeShellScriptBin, + writeText, + writeTextDir, + writePython3, + zstd, }: let - inherit (lib) - optionals - optionalString - ; + inherit (lib) optionals optionalString; - inherit (lib) - escapeShellArgs - toList - ; + inherit (lib) escapeShellArgs toList; - mkDbExtraCommand = contents: + mkDbExtraCommand = + contents: let contentsList = if builtins.isList contents then contents else [ contents ]; in @@ -63,7 +59,9 @@ let # A user is required by nix # https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478 export USER=nobody - ${buildPackages.nix}/bin/nix-store --load-db < ${closureInfo {rootPaths = contentsList;}}/registration + ${buildPackages.nix}/bin/nix-store --load-db < ${ + closureInfo { rootPaths = contentsList; } + }/registration # Reset registration times to make the image reproducible ${buildPackages.sqlite}/bin/sqlite3 nix/var/nix/db/db.sqlite "UPDATE ValidPaths SET registrationTime = ''${SOURCE_DATE_EPOCH}" @@ -101,13 +99,23 @@ let }; }; - compressorForImage = compressor: imageName: compressors.${compressor} or - (throw "in docker image ${imageName}: compressor must be one of: [${toString builtins.attrNames compressors}]"); + compressorForImage = + compressor: imageName: + compressors.${compressor} + or (throw "in docker image ${imageName}: compressor must be one of: [${toString builtins.attrNames compressors}]"); in rec { examples = callPackage ./examples.nix { - inherit buildImage buildLayeredImage fakeNss pullImage shadowSetup buildImageWithNixDb streamNixShellImage; + inherit + buildImage + buildLayeredImage + fakeNss + pullImage + shadowSetup + buildImageWithNixDb + streamNixShellImage + ; }; tests = { @@ -121,24 +129,36 @@ rec { pullImage = let - fixName = name: builtins.replaceStrings [ "/" ":" ] [ "-" "-" ] name; + fixName = + name: + builtins.replaceStrings + [ + "/" + ":" + ] + [ + "-" + "-" + ] + name; in - { imageName + { + imageName, # To find the digest of an image, you can use skopeo: # see doc/functions.xml - , imageDigest - , sha256 - , os ? "linux" - , # Image architecture, defaults to the architecture of the `hostPlatform` when unset - arch ? defaultArchitecture + imageDigest, + sha256, + os ? "linux", + # Image architecture, defaults to the architecture of the `hostPlatform` when unset + arch ? defaultArchitecture, # This is used to set name to the pulled image - , finalImageName ? imageName + finalImageName ? imageName, # This used to set a tag to the pulled image - , finalImageTag ? "latest" + finalImageTag ? "latest", # This is used to disable TLS certificate verification, allowing access to http registries on (hopefully) trusted networks - , tlsVerify ? true + tlsVerify ? true, - , name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar" + name ? fixName "docker-image-${finalImageName}-${finalImageTag}.tar", }: runCommand name @@ -156,17 +176,18 @@ rec { sourceURL = "docker://${imageName}@${imageDigest}"; destNameTag = "${finalImageName}:${finalImageTag}"; - } '' - skopeo \ - --insecure-policy \ - --tmpdir=$TMPDIR \ - --override-os ${os} \ - --override-arch ${arch} \ - copy \ - --src-tls-verify=${lib.boolToString tlsVerify} \ - "$sourceURL" "docker-archive://$out:$destNameTag" \ - | cat # pipe through cat to force-disable progress bar - ''; + } + '' + skopeo \ + --insecure-policy \ + --tmpdir=$TMPDIR \ + --override-os ${os} \ + --override-arch ${arch} \ + copy \ + --src-tls-verify=${lib.boolToString tlsVerify} \ + "$sourceURL" "docker-archive://$out:$destNameTag" \ + | cat # pipe through cat to force-disable progress bar + ''; # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash. # And we cannot untar it, because then we cannot preserve permissions etc. @@ -174,13 +195,11 @@ rec { # buildEnv creates symlinks to dirs, which is hard to edit inside the overlay VM mergeDrvs = - { derivations - , onlyDeps ? false + { + derivations, + onlyDeps ? false, }: - runCommand "merge-drvs" - { - inherit derivations onlyDeps; - } '' + runCommand "merge-drvs" { inherit derivations onlyDeps; } '' if [[ -n "$onlyDeps" ]]; then echo $derivations > $out exit 0 @@ -229,29 +248,37 @@ rec { # Run commands in a virtual machine. runWithOverlay = - { name - , fromImage ? null - , fromImageName ? null - , fromImageTag ? null - , diskSize ? 1024 - , buildVMMemorySize ? 512 - , preMount ? "" - , postMount ? "" - , postUmount ? "" + { + name, + fromImage ? null, + fromImageName ? null, + fromImageTag ? null, + diskSize ? 1024, + buildVMMemorySize ? 512, + preMount ? "", + postMount ? "", + postUmount ? "", }: - vmTools.runInLinuxVM ( - runCommand name - { - preVM = vmTools.createEmptyImage { - size = diskSize; - fullName = "docker-run-disk"; - destination = "./image"; - }; - inherit fromImage fromImageName fromImageTag; - memSize = buildVMMemorySize; + vmTools.runInLinuxVM ( + runCommand name + { + preVM = vmTools.createEmptyImage { + size = diskSize; + fullName = "docker-run-disk"; + destination = "./image"; + }; + inherit fromImage fromImageName fromImageTag; + memSize = buildVMMemorySize; - nativeBuildInputs = [ util-linux e2fsprogs jshon rsync jq ]; - } '' + nativeBuildInputs = [ + util-linux + e2fsprogs + jshon + rsync + jq + ]; + } + '' mkdir disk mkfs /dev/${vmTools.hd} mount /dev/${vmTools.hd} disk @@ -336,11 +363,25 @@ rec { ) ${postUmount} - ''); + '' + ); - exportImage = { name ? fromImage.name, fromImage, fromImageName ? null, fromImageTag ? null, diskSize ? 1024 }: + exportImage = + { + name ? fromImage.name, + fromImage, + fromImageName ? null, + fromImageTag ? null, + diskSize ? 1024, + }: runWithOverlay { - inherit name fromImage fromImageName fromImageTag diskSize; + inherit + name + fromImage + fromImageName + fromImageTag + diskSize + ; postMount = '' echo "Packing raw image..." @@ -357,7 +398,8 @@ rec { # Create an executable shell script which has the coreutils in its # PATH. Since root scripts are executed in a blank environment, even # things like `ls` or `echo` will be missing. - shellScript = name: text: + shellScript = + name: text: writeScript name '' #!${runtimeShell} set -e @@ -369,25 +411,29 @@ rec { mkPureLayer = { # Name of the layer - name - , # JSON containing configuration and metadata for this layer. - baseJson - , # Files to add to the layer. - copyToRoot ? null - , # When copying the contents into the image, preserve symlinks to + name, + # JSON containing configuration and metadata for this layer. + baseJson, + # Files to add to the layer. + copyToRoot ? null, + # When copying the contents into the image, preserve symlinks to # directories (see `rsync -K`). Otherwise, transform those symlinks # into directories. - keepContentsDirlinks ? false - , # Additional commands to run on the layer before it is tar'd up. - extraCommands ? "" - , uid ? 0 - , gid ? 0 + keepContentsDirlinks ? false, + # Additional commands to run on the layer before it is tar'd up. + extraCommands ? "", + uid ? 0, + gid ? 0, }: runCommand "docker-layer-${name}" { inherit baseJson extraCommands; contents = copyToRoot; - nativeBuildInputs = [ jshon rsync tarsum ]; + nativeBuildInputs = [ + jshon + rsync + tarsum + ]; } '' mkdir layer @@ -428,30 +474,30 @@ rec { mkRootLayer = { # Name of the image. - name - , # Script to run as root. Bash. - runAsRoot - , # Files to add to the layer. If null, an empty layer will be created. + name, + # Script to run as root. Bash. + runAsRoot, + # Files to add to the layer. If null, an empty layer will be created. # To add packages to /bin, use `buildEnv` or similar. - copyToRoot ? null - , # When copying the contents into the image, preserve symlinks to + copyToRoot ? null, + # When copying the contents into the image, preserve symlinks to # directories (see `rsync -K`). Otherwise, transform those symlinks # into directories. - keepContentsDirlinks ? false - , # JSON containing configuration and metadata for this layer. - baseJson - , # Existing image onto which to append the new layer. - fromImage ? null - , # Name of the image we're appending onto. - fromImageName ? null - , # Tag of the image we're appending onto. - fromImageTag ? null - , # How much disk to allocate for the temporary virtual machine. - diskSize ? 1024 - , # How much memory to allocate for the temporary virtual machine. - buildVMMemorySize ? 512 - , # Commands (bash) to run on the layer; these do not require sudo. - extraCommands ? "" + keepContentsDirlinks ? false, + # JSON containing configuration and metadata for this layer. + baseJson, + # Existing image onto which to append the new layer. + fromImage ? null, + # Name of the image we're appending onto. + fromImageName ? null, + # Tag of the image we're appending onto. + fromImageTag ? null, + # How much disk to allocate for the temporary virtual machine. + diskSize ? 1024, + # How much memory to allocate for the temporary virtual machine. + buildVMMemorySize ? 512, + # Commands (bash) to run on the layer; these do not require sudo. + extraCommands ? "", }: # Generate an executable script from the `runAsRoot` text. let @@ -461,7 +507,13 @@ rec { runWithOverlay { name = "docker-layer-${name}"; - inherit fromImage fromImageName fromImageTag diskSize buildVMMemorySize; + inherit + fromImage + fromImageName + fromImageTag + diskSize + buildVMMemorySize + ; preMount = lib.optionalString (copyToRoot != null && copyToRoot != [ ]) '' echo "Adding contents..." @@ -515,17 +567,24 @@ rec { ''; }; - buildLayeredImage = lib.makeOverridable ({ name, compressor ? "gz", ... }@args: + buildLayeredImage = lib.makeOverridable ( + { + name, + compressor ? "gz", + ... + }@args: let - stream = streamLayeredImage (builtins.removeAttrs args ["compressor"]); + stream = streamLayeredImage (builtins.removeAttrs args [ "compressor" ]); compress = compressorForImage compressor name; in - runCommand "${baseNameOf name}.tar${compress.ext}" - { - inherit (stream) imageName; - passthru = { inherit (stream) imageTag; inherit stream; }; - nativeBuildInputs = compress.nativeInputs; - } "${stream} | ${compress.compress} > $out" + runCommand "${baseNameOf name}.tar${compress.ext}" { + inherit (stream) imageName; + passthru = { + inherit (stream) imageTag; + inherit stream; + }; + nativeBuildInputs = compress.nativeInputs; + } "${stream} | ${compress.compress} > $out" ); # 1. extract the base image @@ -537,50 +596,50 @@ rec { buildImage = lib.makeOverridable ( args@{ # Image name. - name - , # Image tag, when null then the nix output hash will be used. - tag ? null - , # Parent image, to append to. - fromImage ? null - , # Name of the parent image; will be read from the image otherwise. - fromImageName ? null - , # Tag of the parent image; will be read from the image otherwise. - fromImageTag ? null - , # Files to put on the image (a nix store path or list of paths). - copyToRoot ? null - , # When copying the contents into the image, preserve symlinks to + name, + # Image tag, when null then the nix output hash will be used. + tag ? null, + # Parent image, to append to. + fromImage ? null, + # Name of the parent image; will be read from the image otherwise. + fromImageName ? null, + # Tag of the parent image; will be read from the image otherwise. + fromImageTag ? null, + # Files to put on the image (a nix store path or list of paths). + copyToRoot ? null, + # When copying the contents into the image, preserve symlinks to # directories (see `rsync -K`). Otherwise, transform those symlinks # into directories. - keepContentsDirlinks ? false - , # Docker config; e.g. what command to run on the container. - config ? null - , # Image architecture, defaults to the architecture of the `hostPlatform` when unset - architecture ? defaultArchitecture - , # Optional bash script to run on the files prior to fixturizing the layer. - extraCommands ? "" - , uid ? 0 - , gid ? 0 - , # Optional bash script to run as root on the image when provisioning. - runAsRoot ? null - , # Size of the virtual machine disk to provision when building the image. - diskSize ? 1024 - , # Size of the virtual machine memory to provision when building the image. - buildVMMemorySize ? 512 - , # Time of creation of the image. - created ? "1970-01-01T00:00:01Z" - , # Compressor to use. One of: none, gz, zstd. - compressor ? "gz" - , # Deprecated. - contents ? null - , + keepContentsDirlinks ? false, + # Docker config; e.g. what command to run on the container. + config ? null, + # Image architecture, defaults to the architecture of the `hostPlatform` when unset + architecture ? defaultArchitecture, + # Optional bash script to run on the files prior to fixturizing the layer. + extraCommands ? "", + uid ? 0, + gid ? 0, + # Optional bash script to run as root on the image when provisioning. + runAsRoot ? null, + # Size of the virtual machine disk to provision when building the image. + diskSize ? 1024, + # Size of the virtual machine memory to provision when building the image. + buildVMMemorySize ? 512, + # Time of creation of the image. + created ? "1970-01-01T00:00:01Z", + # Compressor to use. One of: none, gz, zstd. + compressor ? "gz", + # Deprecated. + contents ? null, }: let checked = lib.warnIf (contents != null) "in docker image ${name}: The contents parameter is deprecated. Change to copyToRoot if the contents are designed to be copied to the root filesystem, such as when you use `buildEnv` or similar between contents and your packages. Use copyToRoot = buildEnv { ... }; or similar if you intend to add packages to /bin." - lib.throwIf (contents != null && copyToRoot != null) "in docker image ${name}: You can not specify both contents and copyToRoot." - ; + lib.throwIf + (contents != null && copyToRoot != null) + "in docker image ${name}: You can not specify both contents and copyToRoot."; rootContents = if copyToRoot == null then contents else copyToRoot; @@ -589,200 +648,224 @@ rec { # Create a JSON blob of the configuration. Set the date to unix zero. baseJson = let - pure = writeText "${baseName}-config.json" (builtins.toJSON { - inherit created config architecture; - preferLocalBuild = true; - os = "linux"; - }); - impure = runCommand "${baseName}-config.json" - { - nativeBuildInputs = [ jq ]; + pure = writeText "${baseName}-config.json" ( + builtins.toJSON { + inherit created config architecture; preferLocalBuild = true; + os = "linux"; } - '' - jq ".created = \"$(TZ=utc date --iso-8601="seconds")\"" ${pure} > $out - ''; + ); + impure = + runCommand "${baseName}-config.json" + { + nativeBuildInputs = [ jq ]; + preferLocalBuild = true; + } + '' + jq ".created = \"$(TZ=utc date --iso-8601="seconds")\"" ${pure} > $out + ''; in if created == "now" then impure else pure; compress = compressorForImage compressor name; layer = - if runAsRoot == null - then - mkPureLayer - { - name = baseName; - inherit baseJson keepContentsDirlinks extraCommands uid gid; - copyToRoot = rootContents; - } else + if runAsRoot == null then + mkPureLayer { + name = baseName; + inherit + baseJson + keepContentsDirlinks + extraCommands + uid + gid + ; + copyToRoot = rootContents; + } + else mkRootLayer { name = baseName; - inherit baseJson fromImage fromImageName fromImageTag - keepContentsDirlinks runAsRoot diskSize buildVMMemorySize - extraCommands; + inherit + baseJson + fromImage + fromImageName + fromImageTag + keepContentsDirlinks + runAsRoot + diskSize + buildVMMemorySize + extraCommands + ; copyToRoot = rootContents; }; - result = runCommand "docker-image-${baseName}.tar${compress.ext}" - { - nativeBuildInputs = [ jshon jq moreutils ] ++ compress.nativeInputs; - # Image name must be lowercase - imageName = lib.toLower name; - imageTag = lib.optionalString (tag != null) tag; - inherit fromImage baseJson; - layerClosure = writeClosure [ layer ]; - passthru.buildArgs = args; - passthru.layer = layer; - passthru.imageTag = - if tag != null - then tag + result = + runCommand "docker-image-${baseName}.tar${compress.ext}" + { + nativeBuildInputs = [ + jshon + jq + moreutils + ] ++ compress.nativeInputs; + # Image name must be lowercase + imageName = lib.toLower name; + imageTag = lib.optionalString (tag != null) tag; + inherit fromImage baseJson; + layerClosure = writeClosure [ layer ]; + passthru.buildArgs = args; + passthru.layer = layer; + passthru.imageTag = + if tag != null then + tag + else + lib.head ( + lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext result.outPath)) + ); + } + '' + ${lib.optionalString (tag == null) '' + outName="$(basename "$out")" + outHash=$(echo "$outName" | cut -d - -f 1) + + imageTag=$outHash + ''} + + # Print tar contents: + # 1: Interpreted as relative to the root directory + # 2: With no trailing slashes on directories + # This is useful for ensuring that the output matches the + # values generated by the "find" command + ls_tar() { + for f in $(tar -tf $1 | xargs realpath -ms --relative-to=.); do + if [[ "$f" != "." ]]; then + echo "/$f" + fi + done + } + + mkdir image + touch baseFiles + baseEnvs='[]' + if [[ -n "$fromImage" ]]; then + echo "Unpacking base image..." + tar -C image -xpf "$fromImage" + + # Store the layers and the environment variables from the base image + cat ./image/manifest.json | jq -r '.[0].Layers | .[]' > layer-list + configName="$(cat ./image/manifest.json | jq -r '.[0].Config')" + baseEnvs="$(cat "./image/$configName" | jq '.config.Env // []')" + + # Extract the parentID from the manifest + if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then + parentID="$( + cat "image/manifest.json" | + jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \ + --arg desiredTag "$fromImageName:$fromImageTag" + )" + else + echo "From-image name or tag wasn't set. Reading the first ID." + parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')" + fi + + # Otherwise do not import the base image configuration and manifest + chmod a+w image image/*.json + rm -f image/*.json + + for l in image/*/layer.tar; do + ls_tar $l >> baseFiles + done else - lib.head (lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext result.outPath))); - } '' - ${lib.optionalString (tag == null) '' - outName="$(basename "$out")" - outHash=$(echo "$outName" | cut -d - -f 1) - - imageTag=$outHash - ''} - - # Print tar contents: - # 1: Interpreted as relative to the root directory - # 2: With no trailing slashes on directories - # This is useful for ensuring that the output matches the - # values generated by the "find" command - ls_tar() { - for f in $(tar -tf $1 | xargs realpath -ms --relative-to=.); do - if [[ "$f" != "." ]]; then - echo "/$f" + touch layer-list fi - done - } - mkdir image - touch baseFiles - baseEnvs='[]' - if [[ -n "$fromImage" ]]; then - echo "Unpacking base image..." - tar -C image -xpf "$fromImage" + chmod -R ug+rw image - # Store the layers and the environment variables from the base image - cat ./image/manifest.json | jq -r '.[0].Layers | .[]' > layer-list - configName="$(cat ./image/manifest.json | jq -r '.[0].Config')" - baseEnvs="$(cat "./image/$configName" | jq '.config.Env // []')" + mkdir temp + cp ${layer}/* temp/ + chmod ug+w temp/* - # Extract the parentID from the manifest - if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then - parentID="$( - cat "image/manifest.json" | - jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \ - --arg desiredTag "$fromImageName:$fromImageTag" - )" - else - echo "From-image name or tag wasn't set. Reading the first ID." - parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')" - fi + for dep in $(cat $layerClosure); do + find $dep >> layerFiles + done - # Otherwise do not import the base image configuration and manifest - chmod a+w image image/*.json - rm -f image/*.json + echo "Adding layer..." + # Record the contents of the tarball with ls_tar. + ls_tar temp/layer.tar >> baseFiles - for l in image/*/layer.tar; do - ls_tar $l >> baseFiles - done - else - touch layer-list - fi + # Append nix/store directory to the layer so that when the layer is loaded in the + # image /nix/store has read permissions for non-root users. + # nix/store is added only if the layer has /nix/store paths in it. + if [ $(wc -l < $layerClosure) -gt 1 ] && [ $(grep -c -e "^/nix/store$" baseFiles) -eq 0 ]; then + mkdir -p nix/store + chmod -R 555 nix + echo "./nix" >> layerFiles + echo "./nix/store" >> layerFiles + fi - chmod -R ug+rw image + # Get the files in the new layer which were *not* present in + # the old layer, and record them as newFiles. + comm <(sort -n baseFiles|uniq) \ + <(sort -n layerFiles|uniq|grep -v ${layer}) -1 -3 > newFiles + # Append the new files to the layer. + tar -rpf temp/layer.tar --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ + --owner=0 --group=0 --no-recursion --verbatim-files-from --files-from newFiles - mkdir temp - cp ${layer}/* temp/ - chmod ug+w temp/* + echo "Adding meta..." - for dep in $(cat $layerClosure); do - find $dep >> layerFiles - done + # If we have a parentID, add it to the json metadata. + if [[ -n "$parentID" ]]; then + cat temp/json | jshon -s "$parentID" -i parent > tmpjson + mv tmpjson temp/json + fi - echo "Adding layer..." - # Record the contents of the tarball with ls_tar. - ls_tar temp/layer.tar >> baseFiles + # Take the sha256 sum of the generated json and use it as the layer ID. + # Compute the size and add it to the json under the 'Size' field. + layerID=$(sha256sum temp/json|cut -d ' ' -f 1) + size=$(stat --printf="%s" temp/layer.tar) + cat temp/json | jshon -s "$layerID" -i id -n $size -i Size > tmpjson + mv tmpjson temp/json - # Append nix/store directory to the layer so that when the layer is loaded in the - # image /nix/store has read permissions for non-root users. - # nix/store is added only if the layer has /nix/store paths in it. - if [ $(wc -l < $layerClosure) -gt 1 ] && [ $(grep -c -e "^/nix/store$" baseFiles) -eq 0 ]; then - mkdir -p nix/store - chmod -R 555 nix - echo "./nix" >> layerFiles - echo "./nix/store" >> layerFiles - fi + # Use the temp folder we've been working on to create a new image. + mv temp image/$layerID - # Get the files in the new layer which were *not* present in - # the old layer, and record them as newFiles. - comm <(sort -n baseFiles|uniq) \ - <(sort -n layerFiles|uniq|grep -v ${layer}) -1 -3 > newFiles - # Append the new files to the layer. - tar -rpf temp/layer.tar --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ - --owner=0 --group=0 --no-recursion --verbatim-files-from --files-from newFiles + # Add the new layer ID to the end of the layer list + ( + cat layer-list + # originally this used `sed -i "1i$layerID" layer-list`, but + # would fail if layer-list was completely empty. + echo "$layerID/layer.tar" + ) | sponge layer-list - echo "Adding meta..." + # Create image json and image manifest + imageJson=$(cat ${baseJson} | jq '.config.Env = $baseenv + .config.Env' --argjson baseenv "$baseEnvs") + imageJson=$(echo "$imageJson" | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}") + manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]") - # If we have a parentID, add it to the json metadata. - if [[ -n "$parentID" ]]; then - cat temp/json | jshon -s "$parentID" -i parent > tmpjson - mv tmpjson temp/json - fi + for layerTar in $(cat ./layer-list); do + layerChecksum=$(sha256sum image/$layerTar | cut -d ' ' -f1) + imageJson=$(echo "$imageJson" | jq ".history |= . + [{\"created\": \"$(jq -r .created ${baseJson})\"}]") + # diff_ids order is from the bottom-most to top-most layer + imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= . + [\"sha256:$layerChecksum\"]") + manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= . + [\"$layerTar\"]") + done - # Take the sha256 sum of the generated json and use it as the layer ID. - # Compute the size and add it to the json under the 'Size' field. - layerID=$(sha256sum temp/json|cut -d ' ' -f 1) - size=$(stat --printf="%s" temp/layer.tar) - cat temp/json | jshon -s "$layerID" -i id -n $size -i Size > tmpjson - mv tmpjson temp/json + imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1) + echo "$imageJson" > "image/$imageJsonChecksum.json" + manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"$imageJsonChecksum.json\"") + echo "$manifestJson" > image/manifest.json - # Use the temp folder we've been working on to create a new image. - mv temp image/$layerID + # Store the json under the name image/repositories. + jshon -n object \ + -n object -s "$layerID" -i "$imageTag" \ + -i "$imageName" > image/repositories - # Add the new layer ID to the end of the layer list - ( - cat layer-list - # originally this used `sed -i "1i$layerID" layer-list`, but - # would fail if layer-list was completely empty. - echo "$layerID/layer.tar" - ) | sponge layer-list + # Make the image read-only. + chmod -R a-w image - # Create image json and image manifest - imageJson=$(cat ${baseJson} | jq '.config.Env = $baseenv + .config.Env' --argjson baseenv "$baseEnvs") - imageJson=$(echo "$imageJson" | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}") - manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]") + echo "Cooking the image..." + tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | ${compress.compress} > $out - for layerTar in $(cat ./layer-list); do - layerChecksum=$(sha256sum image/$layerTar | cut -d ' ' -f1) - imageJson=$(echo "$imageJson" | jq ".history |= . + [{\"created\": \"$(jq -r .created ${baseJson})\"}]") - # diff_ids order is from the bottom-most to top-most layer - imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= . + [\"sha256:$layerChecksum\"]") - manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= . + [\"$layerTar\"]") - done - - imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1) - echo "$imageJson" > "image/$imageJsonChecksum.json" - manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"$imageJsonChecksum.json\"") - echo "$manifestJson" > image/manifest.json - - # Store the json under the name image/repositories. - jshon -n object \ - -n object -s "$layerID" -i "$imageTag" \ - -i "$imageName" > image/repositories - - # Make the image read-only. - chmod -R a-w image - - echo "Cooking the image..." - tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | ${compress.compress} > $out - - echo "Finished." - ''; + echo "Finished." + ''; in checked result @@ -791,57 +874,59 @@ rec { # Merge the tarballs of images built with buildImage into a single # tarball that contains all images. Running `docker load` on the resulting # tarball will load the images into the docker daemon. - mergeImages = images: runCommand "merge-docker-images" - { - inherit images; - nativeBuildInputs = [ file jq ] - ++ compressors.none.nativeInputs - ++ compressors.gz.nativeInputs - ++ compressors.zstd.nativeInputs; - } '' - mkdir image inputs - # Extract images - repos=() - manifests=() - last_image_mime="application/gzip" - for item in $images; do - name=$(basename $item) - mkdir inputs/$name + mergeImages = + images: + runCommand "merge-docker-images" + { + inherit images; + nativeBuildInputs = [ + file + jq + ] ++ compressors.none.nativeInputs ++ compressors.gz.nativeInputs ++ compressors.zstd.nativeInputs; + } + '' + mkdir image inputs + # Extract images + repos=() + manifests=() + last_image_mime="application/gzip" + for item in $images; do + name=$(basename $item) + mkdir inputs/$name - last_image_mime=$(file --mime-type -b $item) - case $last_image_mime in - "application/x-tar") ${compressors.none.decompress};; - "application/zstd") ${compressors.zstd.decompress};; - "application/gzip") ${compressors.gz.decompress};; - *) echo "error: unexpected layer type $last_image_mime" >&2; exit 1;; - esac < $item | tar -xC inputs/$name - - if [ -f inputs/$name/repositories ]; then - repos+=(inputs/$name/repositories) - fi - if [ -f inputs/$name/manifest.json ]; then - manifests+=(inputs/$name/manifest.json) - fi - done - # Copy all layers from input images to output image directory - cp -R --update=none inputs/*/* image/ - # Merge repositories objects and manifests - jq -s add "''${repos[@]}" > repositories - jq -s add "''${manifests[@]}" > manifest.json - # Replace output image repositories and manifest with merged versions - mv repositories image/repositories - mv manifest.json image/manifest.json - # Create tarball and gzip - tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | ( - case $last_image_mime in - "application/x-tar") ${compressors.none.compress};; - "application/zstd") ${compressors.zstd.compress};; - "application/gzip") ${compressors.gz.compress};; - # `*)` not needed; already checked. - esac - ) > $out - ''; + last_image_mime=$(file --mime-type -b $item) + case $last_image_mime in + "application/x-tar") ${compressors.none.decompress};; + "application/zstd") ${compressors.zstd.decompress};; + "application/gzip") ${compressors.gz.decompress};; + *) echo "error: unexpected layer type $last_image_mime" >&2; exit 1;; + esac < $item | tar -xC inputs/$name + if [ -f inputs/$name/repositories ]; then + repos+=(inputs/$name/repositories) + fi + if [ -f inputs/$name/manifest.json ]; then + manifests+=(inputs/$name/manifest.json) + fi + done + # Copy all layers from input images to output image directory + cp -R --update=none inputs/*/* image/ + # Merge repositories objects and manifests + jq -s add "''${repos[@]}" > repositories + jq -s add "''${manifests[@]}" > manifest.json + # Replace output image repositories and manifest with merged versions + mv repositories image/repositories + mv manifest.json image/manifest.json + # Create tarball and gzip + tar -C image --hard-dereference --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0 --xform s:'^./':: -c . | ( + case $last_image_mime in + "application/x-tar") ${compressors.none.compress};; + "application/zstd") ${compressors.zstd.compress};; + "application/gzip") ${compressors.gz.compress};; + # `*)` not needed; already checked. + esac + ) > $out + ''; # Provide a /etc/passwd and /etc/group that contain root and nobody. # Useful when packaging binaries that insist on using nss to look up @@ -879,220 +964,253 @@ rec { # the container. # Be careful since this doesn't work well with multilayer. # TODO: add the dependencies of the config json. - buildImageWithNixDb = args@{ copyToRoot ? contents, contents ? null, extraCommands ? "", ... }: ( - buildImage (args // { - extraCommands = (mkDbExtraCommand copyToRoot) + extraCommands; - }) - ); + buildImageWithNixDb = + args@{ + copyToRoot ? contents, + contents ? null, + extraCommands ? "", + ... + }: + (buildImage (args // { extraCommands = (mkDbExtraCommand copyToRoot) + extraCommands; })); # TODO: add the dependencies of the config json. - buildLayeredImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }: ( - buildLayeredImage (args // { - extraCommands = (mkDbExtraCommand contents) + extraCommands; - }) - ); + buildLayeredImageWithNixDb = + args@{ + contents ? null, + extraCommands ? "", + ... + }: + (buildLayeredImage (args // { extraCommands = (mkDbExtraCommand contents) + extraCommands; })); # Arguments are documented in ../../../doc/build-helpers/images/dockertools.section.md streamLayeredImage = lib.makeOverridable ( { - name - , tag ? null - , fromImage ? null - , contents ? [ ] - , config ? { } - , architecture ? defaultArchitecture - , created ? "1970-01-01T00:00:01Z" - , uid ? 0 - , gid ? 0 - , uname ? "root" - , gname ? "root" - , maxLayers ? 100 - , extraCommands ? "" - , fakeRootCommands ? "" - , enableFakechroot ? false - , includeStorePaths ? true - , passthru ? {} - , + name, + tag ? null, + fromImage ? null, + contents ? [ ], + config ? { }, + architecture ? defaultArchitecture, + created ? "1970-01-01T00:00:01Z", + uid ? 0, + gid ? 0, + uname ? "root", + gname ? "root", + maxLayers ? 100, + extraCommands ? "", + fakeRootCommands ? "", + enableFakechroot ? false, + includeStorePaths ? true, + passthru ? { }, }: - assert - (lib.assertMsg (maxLayers > 1) - "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})"); - let - baseName = baseNameOf name; + assert ( + lib.assertMsg (maxLayers > 1) + "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})" + ); + let + baseName = baseNameOf name; - streamScript = writePython3 "stream" { } ./stream_layered_image.py; - baseJson = writeText "${baseName}-base.json" (builtins.toJSON { + streamScript = writePython3 "stream" { } ./stream_layered_image.py; + baseJson = writeText "${baseName}-base.json" ( + builtins.toJSON { inherit config architecture; os = "linux"; - }); + } + ); - contentsList = if builtins.isList contents then contents else [ contents ]; - bind-paths = builtins.toString (builtins.map (path: "--bind=${path}:${path}!") [ + contentsList = if builtins.isList contents then contents else [ contents ]; + bind-paths = builtins.toString ( + builtins.map (path: "--bind=${path}:${path}!") [ "/dev/" "/proc/" "/sys/" "${builtins.storeDir}/" "$out/layer.tar" - ]); + ] + ); - # We store the customisation layer as a tarball, to make sure that - # things like permissions set on 'extraCommands' are not overridden - # by Nix. Then we precompute the sha256 for performance. - customisationLayer = symlinkJoin { - name = "${baseName}-customisation-layer"; - paths = contentsList; - inherit extraCommands fakeRootCommands; - nativeBuildInputs = [ - fakeroot - ] ++ optionals enableFakechroot [ - proot - ]; - postBuild = '' - mv $out old_out - (cd old_out; eval "$extraCommands" ) + # We store the customisation layer as a tarball, to make sure that + # things like permissions set on 'extraCommands' are not overridden + # by Nix. Then we precompute the sha256 for performance. + customisationLayer = symlinkJoin { + name = "${baseName}-customisation-layer"; + paths = contentsList; + inherit extraCommands fakeRootCommands; + nativeBuildInputs = [ fakeroot ] ++ optionals enableFakechroot [ proot ]; + postBuild = '' + mv $out old_out + (cd old_out; eval "$extraCommands" ) - mkdir $out - ${if enableFakechroot then '' - proot -r $PWD/old_out ${bind-paths} --pwd=/ fakeroot bash -c ' - source $stdenv/setup - eval "$fakeRootCommands" - tar \ - --sort name \ - --exclude=./proc \ - --exclude=./sys \ - --exclude=.${builtins.storeDir} \ - --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \ - --hard-dereference \ - -cf $out/layer.tar . - ' - '' else '' - fakeroot bash -c ' - source $stdenv/setup - cd old_out - eval "$fakeRootCommands" - tar \ - --sort name \ - --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \ - --hard-dereference \ - -cf $out/layer.tar . - ' - ''} - sha256sum $out/layer.tar \ - | cut -f 1 -d ' ' \ - > $out/checksum - ''; - }; + mkdir $out + ${ + if enableFakechroot then + '' + proot -r $PWD/old_out ${bind-paths} --pwd=/ fakeroot bash -c ' + source $stdenv/setup + eval "$fakeRootCommands" + tar \ + --sort name \ + --exclude=./proc \ + --exclude=./sys \ + --exclude=.${builtins.storeDir} \ + --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \ + --hard-dereference \ + -cf $out/layer.tar . + ' + '' + else + '' + fakeroot bash -c ' + source $stdenv/setup + cd old_out + eval "$fakeRootCommands" + tar \ + --sort name \ + --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \ + --hard-dereference \ + -cf $out/layer.tar . + ' + '' + } + sha256sum $out/layer.tar \ + | cut -f 1 -d ' ' \ + > $out/checksum + ''; + }; - closureRoots = lib.optionals includeStorePaths /* normally true */ ( - [ baseJson customisationLayer ] - ); - overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots); + closureRoots = + lib.optionals includeStorePaths # normally true + ([ + baseJson + customisationLayer + ]); + overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots); - # These derivations are only created as implementation details of docker-tools, - # so they'll be excluded from the created images. - unnecessaryDrvs = [ baseJson overallClosure customisationLayer ]; + # These derivations are only created as implementation details of docker-tools, + # so they'll be excluded from the created images. + unnecessaryDrvs = [ + baseJson + overallClosure + customisationLayer + ]; - conf = runCommand "${baseName}-conf.json" + conf = + runCommand "${baseName}-conf.json" { - inherit fromImage maxLayers created uid gid uname gname; + inherit + fromImage + maxLayers + created + uid + gid + uname + gname + ; imageName = lib.toLower name; preferLocalBuild = true; passthru.imageTag = - if tag != null - then tag + if tag != null then + tag else - lib.head (lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext conf.outPath))); + lib.head ( + lib.strings.splitString "-" (baseNameOf (builtins.unsafeDiscardStringContext conf.outPath)) + ); paths = buildPackages.referencesByPopularity overallClosure; nativeBuildInputs = [ jq ]; - } '' - ${if (tag == null) then '' - outName="$(basename "$out")" - outHash=$(echo "$outName" | cut -d - -f 1) - - imageTag=$outHash - '' else '' - imageTag="${tag}" - ''} - - # convert "created" to iso format - if [[ "$created" != "now" ]]; then - created="$(date -Iseconds -d "$created")" - fi - - paths() { - cat $paths ${lib.concatMapStringsSep " " - (path: "| (grep -v ${path} || true)") - unnecessaryDrvs} } + '' + ${ + if (tag == null) then + '' + outName="$(basename "$out")" + outHash=$(echo "$outName" | cut -d - -f 1) - # Compute the number of layers that are already used by a potential - # 'fromImage' as well as the customization layer. Ensure that there is - # still at least one layer available to store the image contents. - usedLayers=0 - - # subtract number of base image layers - if [[ -n "$fromImage" ]]; then - (( usedLayers += $(tar -xOf "$fromImage" manifest.json | jq '.[0].Layers | length') )) - fi - - # one layer will be taken up by the customisation layer - (( usedLayers += 1 )) - - if ! (( $usedLayers < $maxLayers )); then - echo >&2 "Error: usedLayers $usedLayers layers to store 'fromImage' and" \ - "'extraCommands', but only maxLayers=$maxLayers were" \ - "allowed. At least 1 layer is required to store contents." - exit 1 - fi - availableLayers=$(( maxLayers - usedLayers )) - - # Create $maxLayers worth of Docker Layers, one layer per store path - # unless there are more paths than $maxLayers. In that case, create - # $maxLayers-1 for the most popular layers, and smush the remainaing - # store paths in to one final layer. - # - # The following code is fiddly w.r.t. ensuring every layer is - # created, and that no paths are missed. If you change the - # following lines, double-check that your code behaves properly - # when the number of layers equals: - # maxLayers-1, maxLayers, and maxLayers+1, 0 - paths | - jq -sR ' - rtrimstr("\n") | split("\n") - | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ] - | map(select(length > 0)) - ' \ - --argjson maxLayers "$availableLayers" > store_layers.json - - # The index on $store_layers is necessary because the --slurpfile - # automatically reads the file as an array. - cat ${baseJson} | jq ' - . + { - "store_dir": $store_dir, - "from_image": $from_image, - "store_layers": $store_layers[0], - "customisation_layer", $customisation_layer, - "repo_tag": $repo_tag, - "created": $created, - "uid": $uid, - "gid": $gid, - "uname": $uname, - "gname": $gname + imageTag=$outHash + '' + else + '' + imageTag="${tag}" + '' } - ' --arg store_dir "${storeDir}" \ - --argjson from_image ${if fromImage == null then "null" else "'\"${fromImage}\"'"} \ - --slurpfile store_layers store_layers.json \ - --arg customisation_layer ${customisationLayer} \ - --arg repo_tag "$imageName:$imageTag" \ - --arg created "$created" \ - --arg uid "$uid" \ - --arg gid "$gid" \ - --arg uname "$uname" \ - --arg gname "$gname" | - tee $out - ''; - result = runCommand "stream-${baseName}" + # convert "created" to iso format + if [[ "$created" != "now" ]]; then + created="$(date -Iseconds -d "$created")" + fi + + paths() { + cat $paths ${lib.concatMapStringsSep " " (path: "| (grep -v ${path} || true)") unnecessaryDrvs} + } + + # Compute the number of layers that are already used by a potential + # 'fromImage' as well as the customization layer. Ensure that there is + # still at least one layer available to store the image contents. + usedLayers=0 + + # subtract number of base image layers + if [[ -n "$fromImage" ]]; then + (( usedLayers += $(tar -xOf "$fromImage" manifest.json | jq '.[0].Layers | length') )) + fi + + # one layer will be taken up by the customisation layer + (( usedLayers += 1 )) + + if ! (( $usedLayers < $maxLayers )); then + echo >&2 "Error: usedLayers $usedLayers layers to store 'fromImage' and" \ + "'extraCommands', but only maxLayers=$maxLayers were" \ + "allowed. At least 1 layer is required to store contents." + exit 1 + fi + availableLayers=$(( maxLayers - usedLayers )) + + # Create $maxLayers worth of Docker Layers, one layer per store path + # unless there are more paths than $maxLayers. In that case, create + # $maxLayers-1 for the most popular layers, and smush the remainaing + # store paths in to one final layer. + # + # The following code is fiddly w.r.t. ensuring every layer is + # created, and that no paths are missed. If you change the + # following lines, double-check that your code behaves properly + # when the number of layers equals: + # maxLayers-1, maxLayers, and maxLayers+1, 0 + paths | + jq -sR ' + rtrimstr("\n") | split("\n") + | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ] + | map(select(length > 0)) + ' \ + --argjson maxLayers "$availableLayers" > store_layers.json + + # The index on $store_layers is necessary because the --slurpfile + # automatically reads the file as an array. + cat ${baseJson} | jq ' + . + { + "store_dir": $store_dir, + "from_image": $from_image, + "store_layers": $store_layers[0], + "customisation_layer", $customisation_layer, + "repo_tag": $repo_tag, + "created": $created, + "uid": $uid, + "gid": $gid, + "uname": $uname, + "gname": $gname + } + ' --arg store_dir "${storeDir}" \ + --argjson from_image ${if fromImage == null then "null" else "'\"${fromImage}\"'"} \ + --slurpfile store_layers store_layers.json \ + --arg customisation_layer ${customisationLayer} \ + --arg repo_tag "$imageName:$imageTag" \ + --arg created "$created" \ + --arg uid "$uid" \ + --arg gid "$gid" \ + --arg uname "$uname" \ + --arg gname "$gname" | + tee $out + ''; + + result = + runCommand "stream-${baseName}" { inherit (conf) imageName; preferLocalBuild = true; @@ -1104,99 +1222,112 @@ rec { isExe = true; }; nativeBuildInputs = [ makeWrapper ]; - } '' - makeWrapper ${streamScript} $out --add-flags ${conf} - ''; - in - result + } + '' + makeWrapper ${streamScript} $out --add-flags ${conf} + ''; + in + result ); # This function streams a docker image that behaves like a nix-shell for a derivation streamNixShellImage = - { # The derivation whose environment this docker image should be based on - drv - , # Image Name - name ? drv.name + "-env" - , # Image tag, the Nix's output hash will be used if null - tag ? null - , # User id to run the container as. Defaults to 1000, because many + { + # The derivation whose environment this docker image should be based on + drv, + # Image Name + name ? drv.name + "-env", + # Image tag, the Nix's output hash will be used if null + tag ? null, + # User id to run the container as. Defaults to 1000, because many # binaries don't like to be run as root - uid ? 1000 - , # Group id to run the container as, see also uid - gid ? 1000 - , # The home directory of the user - homeDirectory ? "/build" - , # The path to the bash binary to use as the shell. See `NIX_BUILD_SHELL` in `man nix-shell` - shell ? bashInteractive + "/bin/bash" - , # Run this command in the environment of the derivation, in an interactive shell. See `--command` in `man nix-shell` - command ? null - , # Same as `command`, but runs the command in a non-interactive shell instead. See `--run` in `man nix-shell` - run ? null + uid ? 1000, + # Group id to run the container as, see also uid + gid ? 1000, + # The home directory of the user + homeDirectory ? "/build", + # The path to the bash binary to use as the shell. See `NIX_BUILD_SHELL` in `man nix-shell` + shell ? bashInteractive + "/bin/bash", + # Run this command in the environment of the derivation, in an interactive shell. See `--command` in `man nix-shell` + command ? null, + # Same as `command`, but runs the command in a non-interactive shell instead. See `--run` in `man nix-shell` + run ? null, }: - assert lib.assertMsg (! (drv.drvAttrs.__structuredAttrs or false)) - "streamNixShellImage: Does not work with the derivation ${drv.name} because it uses __structuredAttrs"; - assert lib.assertMsg (command == null || run == null) - "streamNixShellImage: Can't specify both command and run"; - let + assert lib.assertMsg (!(drv.drvAttrs.__structuredAttrs or false)) + "streamNixShellImage: Does not work with the derivation ${drv.name} because it uses __structuredAttrs"; + assert lib.assertMsg ( + command == null || run == null + ) "streamNixShellImage: Can't specify both command and run"; + let - # A binary that calls the command to build the derivation - builder = writeShellScriptBin "buildDerivation" '' - exec ${lib.escapeShellArg (stringValue drv.drvAttrs.builder)} ${lib.escapeShellArgs (map stringValue drv.drvAttrs.args)} - ''; + # A binary that calls the command to build the derivation + builder = writeShellScriptBin "buildDerivation" '' + exec ${lib.escapeShellArg (stringValue drv.drvAttrs.builder)} ${lib.escapeShellArgs (map stringValue drv.drvAttrs.args)} + ''; - staticPath = "${dirOf shell}:${lib.makeBinPath [ builder ]}"; + staticPath = "${dirOf shell}:${lib.makeBinPath [ builder ]}"; - # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L493-L526 - rcfile = writeText "nix-shell-rc" '' - unset PATH - dontAddDisableDepTrack=1 - # TODO: https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L506 - [ -e $stdenv/setup ] && source $stdenv/setup - PATH=${staticPath}:"$PATH" - SHELL=${lib.escapeShellArg shell} - BASH=${lib.escapeShellArg shell} - set +e - [ -n "$PS1" -a -z "$NIX_SHELL_PRESERVE_PROMPT" ] && PS1='\n\[\033[1;32m\][nix-shell:\w]\$\[\033[0m\] ' - if [ "$(type -t runHook)" = function ]; then - runHook shellHook - fi - unset NIX_ENFORCE_PURITY - shopt -u nullglob - shopt -s execfail - ${optionalString (command != null || run != null) '' - ${optionalString (command != null) command} - ${optionalString (run != null) run} - exit - ''} - ''; + # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L493-L526 + rcfile = writeText "nix-shell-rc" '' + unset PATH + dontAddDisableDepTrack=1 + # TODO: https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L506 + [ -e $stdenv/setup ] && source $stdenv/setup + PATH=${staticPath}:"$PATH" + SHELL=${lib.escapeShellArg shell} + BASH=${lib.escapeShellArg shell} + set +e + [ -n "$PS1" -a -z "$NIX_SHELL_PRESERVE_PROMPT" ] && PS1='\n\[\033[1;32m\][nix-shell:\w]\$\[\033[0m\] ' + if [ "$(type -t runHook)" = function ]; then + runHook shellHook + fi + unset NIX_ENFORCE_PURITY + shopt -u nullglob + shopt -s execfail + ${optionalString (command != null || run != null) '' + ${optionalString (command != null) command} + ${optionalString (run != null) run} + exit + ''} + ''; - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/globals.hh#L464-L465 - sandboxBuildDir = "/build"; + # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/globals.hh#L464-L465 + sandboxBuildDir = "/build"; - # This function closely mirrors what this Nix code does: - # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/primops.cc#L1102 - # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/eval.cc#L1981-L2036 - stringValue = value: - # We can't just use `toString` on all derivation attributes because that - # would not put path literals in the closure. So we explicitly copy - # those into the store here - if builtins.typeOf value == "path" then "${value}" - else if builtins.typeOf value == "list" then toString (map stringValue value) - else toString value; + # This function closely mirrors what this Nix code does: + # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/primops.cc#L1102 + # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/eval.cc#L1981-L2036 + stringValue = + value: + # We can't just use `toString` on all derivation attributes because that + # would not put path literals in the closure. So we explicitly copy + # those into the store here + if builtins.typeOf value == "path" then + "${value}" + else if builtins.typeOf value == "list" then + toString (map stringValue value) + else + toString value; - # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L992-L1004 - drvEnv = lib.mapAttrs' (name: value: - let str = stringValue value; - in if lib.elem name (drv.drvAttrs.passAsFile or []) - then lib.nameValuePair "${name}Path" (writeText "pass-as-text-${name}" str) - else lib.nameValuePair name str - ) drv.drvAttrs // - # A mapping from output name to the nix store path where they should end up - # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/primops.cc#L1253 - lib.genAttrs drv.outputs (output: builtins.unsafeDiscardStringContext drv.${output}.outPath); + # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L992-L1004 + drvEnv = + lib.mapAttrs' ( + name: value: + let + str = stringValue value; + in + if lib.elem name (drv.drvAttrs.passAsFile or [ ]) then + lib.nameValuePair "${name}Path" (writeText "pass-as-text-${name}" str) + else + lib.nameValuePair name str + ) drv.drvAttrs + # A mapping from output name to the nix store path where they should end up + # https://github.com/NixOS/nix/blob/2.8.0/src/libexpr/primops.cc#L1253 + // lib.genAttrs drv.outputs (output: builtins.unsafeDiscardStringContext drv.${output}.outPath); - # Environment variables set in the image - envVars = { + # Environment variables set in the image + envVars = + { # Root certificates for internet access SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; @@ -1217,7 +1348,9 @@ rec { # TODO: Make configurable? NIX_BUILD_CORES = "1"; - } // drvEnv // { + } + // drvEnv + // { # https://github.com/NixOS/nix/blob/2.8.0/src/libstore/build/local-derivation-goal.cc#L1008-L1010 NIX_BUILD_TOP = sandboxBuildDir; @@ -1239,61 +1372,73 @@ rec { TERM = "xterm-256color"; }; + in + streamLayeredImage { + inherit name tag; + contents = [ + binSh + usrBinEnv + (fakeNss.override { + # Allows programs to look up the build user's home directory + # https://github.com/NixOS/nix/blob/ffe155abd36366a870482625543f9bf924a58281/src/libstore/build/local-derivation-goal.cc#L906-L910 + # Slightly differs however: We use the passed-in homeDirectory instead of sandboxBuildDir. + # We're doing this because it's arguably a bug in Nix that sandboxBuildDir is used here: https://github.com/NixOS/nix/issues/6379 + extraPasswdLines = [ + "nixbld:x:${toString uid}:${toString gid}:Build user:${homeDirectory}:/noshell" + ]; + extraGroupLines = [ "nixbld:!:${toString gid}:" ]; + }) + ]; - in streamLayeredImage { - inherit name tag; - contents = [ - binSh - usrBinEnv - (fakeNss.override { - # Allows programs to look up the build user's home directory - # https://github.com/NixOS/nix/blob/ffe155abd36366a870482625543f9bf924a58281/src/libstore/build/local-derivation-goal.cc#L906-L910 - # Slightly differs however: We use the passed-in homeDirectory instead of sandboxBuildDir. - # We're doing this because it's arguably a bug in Nix that sandboxBuildDir is used here: https://github.com/NixOS/nix/issues/6379 - extraPasswdLines = [ - "nixbld:x:${toString uid}:${toString gid}:Build user:${homeDirectory}:/noshell" - ]; - extraGroupLines = [ - "nixbld:!:${toString gid}:" - ]; - }) - ]; + fakeRootCommands = '' + # Effectively a single-user installation of Nix, giving the user full + # control over the Nix store. Needed for building the derivation this + # shell is for, but also in case one wants to use Nix inside the + # image + mkdir -p ./nix/{store,var/nix} ./etc/nix + chown -R ${toString uid}:${toString gid} ./nix ./etc/nix - fakeRootCommands = '' - # Effectively a single-user installation of Nix, giving the user full - # control over the Nix store. Needed for building the derivation this - # shell is for, but also in case one wants to use Nix inside the - # image - mkdir -p ./nix/{store,var/nix} ./etc/nix - chown -R ${toString uid}:${toString gid} ./nix ./etc/nix + # Gives the user control over the build directory + mkdir -p .${sandboxBuildDir} + chown -R ${toString uid}:${toString gid} .${sandboxBuildDir} + ''; - # Gives the user control over the build directory - mkdir -p .${sandboxBuildDir} - chown -R ${toString uid}:${toString gid} .${sandboxBuildDir} - ''; - - # Run this image as the given uid/gid - config.User = "${toString uid}:${toString gid}"; - config.Cmd = - # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L185-L186 - # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L534-L536 - if run == null - then [ shell "--rcfile" rcfile ] - else [ shell rcfile ]; - config.WorkingDir = sandboxBuildDir; - config.Env = lib.mapAttrsToList (name: value: "${name}=${value}") envVars; - }; + # Run this image as the given uid/gid + config.User = "${toString uid}:${toString gid}"; + config.Cmd = + # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L185-L186 + # https://github.com/NixOS/nix/blob/2.8.0/src/nix-build/nix-build.cc#L534-L536 + if run == null then + [ + shell + "--rcfile" + rcfile + ] + else + [ + shell + rcfile + ]; + config.WorkingDir = sandboxBuildDir; + config.Env = lib.mapAttrsToList (name: value: "${name}=${value}") envVars; + }; # Wrapper around streamNixShellImage to build an image from the result - buildNixShellImage = { drv, compressor ? "gz", ... }@args: + buildNixShellImage = + { + drv, + compressor ? "gz", + ... + }@args: let - stream = streamNixShellImage (builtins.removeAttrs args ["compressor"]); + stream = streamNixShellImage (builtins.removeAttrs args [ "compressor" ]); compress = compressorForImage compressor drv.name; in - runCommand "${drv.name}-env.tar${compress.ext}" - { - inherit (stream) imageName; - passthru = { inherit (stream) imageTag; }; - nativeBuildInputs = compress.nativeInputs; - } "${stream} | ${compress.compress} > $out"; + runCommand "${drv.name}-env.tar${compress.ext}" { + inherit (stream) imageName; + passthru = { + inherit (stream) imageTag; + }; + nativeBuildInputs = compress.nativeInputs; + } "${stream} | ${compress.compress} > $out"; } diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index 52706ef..0bac3a1 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -7,13 +7,23 @@ # $ nix-build '' -A dockerTools.examples.redis # $ docker load < result -{ pkgs, buildImage, buildLayeredImage, fakeNss, pullImage, shadowSetup, buildImageWithNixDb, pkgsCross, streamNixShellImage }: +{ + pkgs, + buildImage, + buildLayeredImage, + fakeNss, + pullImage, + shadowSetup, + buildImageWithNixDb, + pkgsCross, + streamNixShellImage, +}: let nixosLib = import ../../../nixos/lib { # Experimental features need testing too, but there's no point in warning # about it, so we enable the feature flag. - featureFlags.minimalModules = {}; + featureFlags.minimalModules = { }; }; evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; }; @@ -54,58 +64,63 @@ rec { Cmd = [ "/bin/redis-server" ]; WorkingDir = "/data"; Volumes = { - "/data" = {}; + "/data" = { }; }; }; }; # 3. another service example - nginx = let - nginxPort = "80"; - nginxConf = pkgs.writeText "nginx.conf" '' - user nobody nobody; - daemon off; - error_log /dev/stdout info; - pid /dev/null; - events {} - http { - access_log /dev/stdout; - server { - listen ${nginxPort}; - index index.html; - location / { - root ${nginxWebRoot}; + nginx = + let + nginxPort = "80"; + nginxConf = pkgs.writeText "nginx.conf" '' + user nobody nobody; + daemon off; + error_log /dev/stdout info; + pid /dev/null; + events {} + http { + access_log /dev/stdout; + server { + listen ${nginxPort}; + index index.html; + location / { + root ${nginxWebRoot}; + } } } - } - ''; - nginxWebRoot = pkgs.writeTextDir "index.html" '' -

Hello from NGINX

- ''; - in - buildLayeredImage { - name = "nginx-container"; - tag = "latest"; - contents = [ - fakeNss - pkgs.nginx - ]; + ''; + nginxWebRoot = pkgs.writeTextDir "index.html" '' +

Hello from NGINX

+ ''; + in + buildLayeredImage { + name = "nginx-container"; + tag = "latest"; + contents = [ + fakeNss + pkgs.nginx + ]; - extraCommands = '' - mkdir -p tmp/nginx_client_body + extraCommands = '' + mkdir -p tmp/nginx_client_body - # nginx still tries to read this directory even if error_log - # directive is specifying another file :/ - mkdir -p var/log/nginx - ''; + # nginx still tries to read this directory even if error_log + # directive is specifying another file :/ + mkdir -p var/log/nginx + ''; - config = { - Cmd = [ "nginx" "-c" nginxConf ]; - ExposedPorts = { - "${nginxPort}/tcp" = {}; + config = { + Cmd = [ + "nginx" + "-c" + nginxConf + ]; + ExposedPorts = { + "${nginxPort}/tcp" = { }; + }; }; }; - }; # 4. example of pulling an image. could be used as a base for other images nixFromDockerHub = pullImage { @@ -216,7 +231,11 @@ rec { tag = "latest"; extraCommands = ''echo "(extraCommand)" > extraCommands''; config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - contents = [ pkgs.hello pkgs.bash pkgs.coreutils ]; + contents = [ + pkgs.hello + pkgs.bash + pkgs.coreutils + ]; }; # 11. Create an image on top of a layered image @@ -232,7 +251,9 @@ rec { Env = [ "PATH=${pkgs.coreutils}/bin/" ]; WorkingDir = "/example-output"; Cmd = [ - "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" + "${pkgs.bash}/bin/bash" + "-c" + "echo hello > foo; cat foo" ]; }; }; @@ -250,7 +271,9 @@ rec { Env = [ "PATH=${pkgs.coreutils}/bin/" ]; WorkingDir = "/example-output"; Cmd = [ - "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" + "${pkgs.bash}/bin/bash" + "-c" + "echo hello > foo; cat foo" ]; }; }; @@ -270,41 +293,43 @@ rec { # - the layer of parent are below # - the order of parent layer is preserved at image build time # (this is why there are 3 images) - layersOrder = let - l1 = pkgs.dockerTools.buildImage { - name = "l1"; + layersOrder = + let + l1 = pkgs.dockerTools.buildImage { + name = "l1"; + tag = "latest"; + extraCommands = '' + mkdir -p tmp + echo layer1 > tmp/layer1 + echo layer1 > tmp/layer2 + echo layer1 > tmp/layer3 + ''; + }; + l2 = pkgs.dockerTools.buildImage { + name = "l2"; + fromImage = l1; + tag = "latest"; + extraCommands = '' + mkdir -p tmp + echo layer2 > tmp/layer2 + echo layer2 > tmp/layer3 + ''; + }; + in + pkgs.dockerTools.buildImage { + name = "l3"; + fromImage = l2; tag = "latest"; + copyToRoot = pkgs.buildEnv { + name = "image-root"; + pathsToLink = [ "/bin" ]; + paths = [ pkgs.coreutils ]; + }; extraCommands = '' mkdir -p tmp - echo layer1 > tmp/layer1 - echo layer1 > tmp/layer2 - echo layer1 > tmp/layer3 + echo layer3 > tmp/layer3 ''; }; - l2 = pkgs.dockerTools.buildImage { - name = "l2"; - fromImage = l1; - tag = "latest"; - extraCommands = '' - mkdir -p tmp - echo layer2 > tmp/layer2 - echo layer2 > tmp/layer3 - ''; - }; - in pkgs.dockerTools.buildImage { - name = "l3"; - fromImage = l2; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.coreutils ]; - }; - extraCommands = '' - mkdir -p tmp - echo layer3 > tmp/layer3 - ''; - }; # 15. Environment variable inheritance. # Child image should inherit parents environment variables, @@ -362,7 +387,10 @@ rec { name = "two-layered-image"; tag = "latest"; config.Cmd = [ "${pkgs.hello}/bin/hello" ]; - contents = [ pkgs.bash pkgs.hello ]; + contents = [ + pkgs.bash + pkgs.hello + ]; maxLayers = 2; }; @@ -372,7 +400,8 @@ rec { name = "bulk-layer"; tag = "latest"; contents = with pkgs; [ - coreutils hello + coreutils + hello ]; maxLayers = 2; }; @@ -384,7 +413,8 @@ rec { tag = "latest"; fromImage = two-layered-image; contents = with pkgs; [ - coreutils hello + coreutils + hello ]; maxLayers = 4; }; @@ -456,29 +486,31 @@ rec { # 23. Ensure that layers are unpacked in the correct order before the # runAsRoot script is executed. layersUnpackOrder = - let - layerOnTopOf = parent: layerName: - pkgs.dockerTools.buildImage { - name = "layers-unpack-order-${layerName}"; - tag = "latest"; - fromImage = parent; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ pkgs.coreutils ]; + let + layerOnTopOf = + parent: layerName: + pkgs.dockerTools.buildImage { + name = "layers-unpack-order-${layerName}"; + tag = "latest"; + fromImage = parent; + copyToRoot = pkgs.buildEnv { + name = "image-root"; + pathsToLink = [ "/bin" ]; + paths = [ pkgs.coreutils ]; + }; + runAsRoot = '' + #!${pkgs.runtimeShell} + echo -n "${layerName}" >> /layer-order + ''; }; - runAsRoot = '' - #!${pkgs.runtimeShell} - echo -n "${layerName}" >> /layer-order - ''; - }; - # When executing the runAsRoot script when building layer C, if layer B is - # not unpacked on top of layer A, the contents of /layer-order will not be - # "ABC". - layerA = layerOnTopOf null "a"; - layerB = layerOnTopOf layerA "b"; - layerC = layerOnTopOf layerB "c"; - in layerC; + # When executing the runAsRoot script when building layer C, if layer B is + # not unpacked on top of layer A, the contents of /layer-order will not be + # "ABC". + layerA = layerOnTopOf null "a"; + layerB = layerOnTopOf layerA "b"; + layerC = layerOnTopOf layerB "c"; + in + layerC; bashUncompressed = pkgs.dockerTools.buildImage { name = "bash-uncompressed"; @@ -533,67 +565,86 @@ rec { # buildLayeredImage with non-root user bashLayeredWithUser = - let - nonRootShadowSetup = { user, uid, gid ? uid }: with pkgs; [ - ( - writeTextDir "etc/shadow" '' - root:!x::::::: - ${user}:!::::::: - '' - ) - ( - writeTextDir "etc/passwd" '' - root:x:0:0::/root:${runtimeShell} - ${user}:x:${toString uid}:${toString gid}::/home/${user}: - '' - ) - ( - writeTextDir "etc/group" '' - root:x:0: - ${user}:x:${toString gid}: - '' - ) - ( - writeTextDir "etc/gshadow" '' - root:x:: - ${user}:x:: - '' - ) - ]; - in + let + nonRootShadowSetup = + { + user, + uid, + gid ? uid, + }: + with pkgs; + [ + (writeTextDir "etc/shadow" '' + root:!x::::::: + ${user}:!::::::: + '') + (writeTextDir "etc/passwd" '' + root:x:0:0::/root:${runtimeShell} + ${user}:x:${toString uid}:${toString gid}::/home/${user}: + '') + (writeTextDir "etc/group" '' + root:x:0: + ${user}:x:${toString gid}: + '') + (writeTextDir "etc/gshadow" '' + root:x:: + ${user}:x:: + '') + ]; + in pkgs.dockerTools.buildLayeredImage { name = "bash-layered-with-user"; tag = "latest"; - contents = [ pkgs.bash pkgs.coreutils ] ++ nonRootShadowSetup { uid = 999; user = "somebody"; }; + contents = + [ + pkgs.bash + pkgs.coreutils + ] + ++ nonRootShadowSetup { + uid = 999; + user = "somebody"; + }; }; # basic example, with cross compilation - cross = let - # Cross compile for x86_64 if on aarch64 - crossPkgs = - if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then pkgsCross.gnu64 - else pkgsCross.aarch64-multiplatform; - in crossPkgs.dockerTools.buildImage { - name = "hello-cross"; - tag = "latest"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - pathsToLink = [ "/bin" ]; - paths = [ crossPkgs.hello ]; + cross = + let + # Cross compile for x86_64 if on aarch64 + crossPkgs = + if pkgs.stdenv.hostPlatform.system == "aarch64-linux" then + pkgsCross.gnu64 + else + pkgsCross.aarch64-multiplatform; + in + crossPkgs.dockerTools.buildImage { + name = "hello-cross"; + tag = "latest"; + copyToRoot = pkgs.buildEnv { + name = "image-root"; + pathsToLink = [ "/bin" ]; + paths = [ crossPkgs.hello ]; + }; }; - }; # layered image where a store path is itself a symlink layeredStoreSymlink = - let - target = pkgs.writeTextDir "dir/target" "Content doesn't matter."; - symlink = pkgs.runCommand "symlink" {} "ln -s ${target} $out"; - in + let + target = pkgs.writeTextDir "dir/target" "Content doesn't matter."; + symlink = pkgs.runCommand "symlink" { } "ln -s ${target} $out"; + in pkgs.dockerTools.buildLayeredImage { name = "layeredstoresymlink"; tag = "latest"; - contents = [ pkgs.bash symlink ]; - } // { passthru = { inherit symlink; }; }; + contents = [ + pkgs.bash + symlink + ]; + } + // { + passthru = { + inherit symlink; + }; + }; # image with registry/ prefix prefixedImage = pkgs.dockerTools.buildImage { @@ -613,17 +664,19 @@ rec { layeredImageWithFakeRootCommands = pkgs.dockerTools.buildLayeredImage { name = "layered-image-with-fake-root-commands"; tag = "latest"; - contents = [ - pkgs.pkgsStatic.busybox - ]; + contents = [ pkgs.pkgsStatic.busybox ]; fakeRootCommands = '' mkdir -p ./home/alice chown 1000 ./home/alice - ln -s ${pkgs.hello.overrideAttrs (o: { - # A unique `hello` to make sure that it isn't included via another mechanism by accident. - configureFlags = o.configureFlags or [] ++ [ " --program-prefix=layeredImageWithFakeRootCommands-" ]; - doCheck = false; - })} ./hello + ln -s ${ + pkgs.hello.overrideAttrs (o: { + # A unique `hello` to make sure that it isn't included via another mechanism by accident. + configureFlags = o.configureFlags or [ ] ++ [ + " --program-prefix=layeredImageWithFakeRootCommands-" + ]; + doCheck = false; + }) + } ./hello ''; }; @@ -694,21 +747,27 @@ rec { etc = let inherit (pkgs) lib; - nixosCore = (evalMinimalConfig ({ config, ... }: { - imports = [ - pkgs.pkgsModule - ../../../nixos/modules/system/etc/etc.nix - ]; - environment.etc."some-config-file" = { - text = '' - 127.0.0.1 localhost - ::1 localhost - ''; - # For executables: - # mode = "0755"; - }; - })); - in pkgs.dockerTools.streamLayeredImage { + nixosCore = ( + evalMinimalConfig ( + { config, ... }: + { + imports = [ + pkgs.pkgsModule + ../../../nixos/modules/system/etc/etc.nix + ]; + environment.etc."some-config-file" = { + text = '' + 127.0.0.1 localhost + ::1 localhost + ''; + # For executables: + # mode = "0755"; + }; + } + ) + ); + in + pkgs.dockerTools.streamLayeredImage { name = "etc"; tag = "latest"; enableFakechroot = true; @@ -743,13 +802,19 @@ rec { name = "build-image-with-path"; tag = "latest"; # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = [ pkgs.bashInteractive ./test-dummy ]; + copyToRoot = [ + pkgs.bashInteractive + ./test-dummy + ]; }; layered-image-with-path = pkgs.dockerTools.streamLayeredImage { name = "layered-image-with-path"; tag = "latest"; - contents = [ pkgs.bashInteractive ./test-dummy ]; + contents = [ + pkgs.bashInteractive + ./test-dummy + ]; }; build-image-with-architecture = buildImage { @@ -757,14 +822,20 @@ rec { tag = "latest"; architecture = "arm64"; # Not recommended. Use `buildEnv` between copy and packages to avoid file duplication. - copyToRoot = [ pkgs.bashInteractive ./test-dummy ]; + copyToRoot = [ + pkgs.bashInteractive + ./test-dummy + ]; }; layered-image-with-architecture = pkgs.dockerTools.streamLayeredImage { name = "layered-image-with-architecture"; tag = "latest"; architecture = "arm64"; - contents = [ pkgs.bashInteractive ./test-dummy ]; + contents = [ + pkgs.bashInteractive + ./test-dummy + ]; }; # ensure that caCertificates builds @@ -780,8 +851,7 @@ rec { ]; }; - config = { - }; + config = { }; }; nix-shell-basic = streamNixShellImage { @@ -804,11 +874,7 @@ rec { nix-shell-inputs = streamNixShellImage { name = "nix-shell-inputs"; tag = "latest"; - drv = pkgs.mkShell { - nativeBuildInputs = [ - pkgs.hello - ]; - }; + drv = pkgs.mkShell { nativeBuildInputs = [ pkgs.hello ]; }; command = '' hello ''; @@ -829,7 +895,7 @@ rec { nix-shell-run = streamNixShellImage { name = "nix-shell-run"; tag = "latest"; - drv = pkgs.mkShell {}; + drv = pkgs.mkShell { }; run = '' case "$-" in *i*) echo This shell is interactive ;; @@ -841,7 +907,7 @@ rec { nix-shell-command = streamNixShellImage { name = "nix-shell-command"; tag = "latest"; - drv = pkgs.mkShell {}; + drv = pkgs.mkShell { }; command = '' case "$-" in *i*) echo This shell is interactive ;; @@ -853,7 +919,7 @@ rec { nix-shell-writable-home = streamNixShellImage { name = "nix-shell-writable-home"; tag = "latest"; - drv = pkgs.mkShell {}; + drv = pkgs.mkShell { }; run = '' if [[ "$HOME" != "$(eval "echo ~$(whoami)")" ]]; then echo "\$HOME ($HOME) is not the same as ~\$(whoami) ($(eval "echo ~$(whoami)"))" @@ -871,7 +937,7 @@ rec { nix-shell-nonexistent-home = streamNixShellImage { name = "nix-shell-nonexistent-home"; tag = "latest"; - drv = pkgs.mkShell {}; + drv = pkgs.mkShell { }; homeDirectory = "/homeless-shelter"; run = '' if [[ "$HOME" != "$(eval "echo ~$(whoami)")" ]]; then diff --git a/pkgs/build-support/docker/nix-prefetch-docker.nix b/pkgs/build-support/docker/nix-prefetch-docker.nix index 18accd1..a39f41b 100644 --- a/pkgs/build-support/docker/nix-prefetch-docker.nix +++ b/pkgs/build-support/docker/nix-prefetch-docker.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, makeWrapper, nix, skopeo, jq }: +{ + lib, + stdenv, + makeWrapper, + nix, + skopeo, + jq, +}: stdenv.mkDerivation { name = "nix-prefetch-docker"; @@ -10,7 +17,13 @@ stdenv.mkDerivation { installPhase = '' install -vD ${./nix-prefetch-docker} $out/bin/$name; wrapProgram $out/bin/$name \ - --prefix PATH : ${lib.makeBinPath [ nix skopeo jq ]} \ + --prefix PATH : ${ + lib.makeBinPath [ + nix + skopeo + jq + ] + } \ --set HOME /homeless-shelter ''; diff --git a/pkgs/build-support/docker/tarsum.nix b/pkgs/build-support/docker/tarsum.nix index f62a8d4..f97c7a2 100644 --- a/pkgs/build-support/docker/tarsum.nix +++ b/pkgs/build-support/docker/tarsum.nix @@ -1,4 +1,9 @@ -{ stdenv, go, docker, nixosTests }: +{ + stdenv, + go, + docker, + nixosTests, +}: stdenv.mkDerivation { name = "tarsum"; diff --git a/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix b/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix index 16cf029..e810f8e 100644 --- a/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-global-tool/default.nix @@ -1,48 +1,69 @@ -{ buildDotnetModule, emptyDirectory, mkNugetDeps, dotnet-sdk }: +{ + buildDotnetModule, + emptyDirectory, + mkNugetDeps, + dotnet-sdk, +}: -{ pname -, version +{ + pname, + version, # Name of the nuget package to install, if different from pname -, nugetName ? pname + nugetName ? pname, # Hash of the nuget package to install, will be given on first build -, nugetSha256 ? "" + nugetSha256 ? "", # Additional nuget deps needed by the tool package -, nugetDeps ? (_: []) + nugetDeps ? (_: [ ]), # Executables to wrap into `$out/bin`, same as in `buildDotnetModule`, but with # a default of `pname` instead of null, to avoid auto-wrapping everything -, executables ? pname + executables ? pname, # The dotnet runtime to use, dotnet tools need a full SDK to function -, dotnet-runtime ? dotnet-sdk -, ... -} @ args: + dotnet-runtime ? dotnet-sdk, + ... +}@args: -buildDotnetModule (args // { - inherit pname version dotnet-runtime executables; +buildDotnetModule ( + args + // { + inherit + pname + version + dotnet-runtime + executables + ; - src = emptyDirectory; + src = emptyDirectory; - nugetDeps = mkNugetDeps { - name = pname; - nugetDeps = { fetchNuGet }: [ - (fetchNuGet { pname = nugetName; inherit version; sha256 = nugetSha256; }) - ] ++ (nugetDeps fetchNuGet); - }; + nugetDeps = mkNugetDeps { + name = pname; + nugetDeps = + { fetchNuGet }: + [ + (fetchNuGet { + pname = nugetName; + inherit version; + sha256 = nugetSha256; + }) + ] + ++ (nugetDeps fetchNuGet); + }; - projectFile = ""; + projectFile = ""; - useDotnetFromEnv = true; + useDotnetFromEnv = true; - dontBuild = true; + dontBuild = true; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - dotnet tool install --tool-path $out/lib/${pname} ${nugetName} + dotnet tool install --tool-path $out/lib/${pname} ${nugetName} - # remove files that contain nix store paths to temp nuget sources we made - find $out -name 'project.assets.json' -delete - find $out -name '.nupkg.metadata' -delete + # remove files that contain nix store paths to temp nuget sources we made + find $out -name 'project.assets.json' -delete + find $out -name '.nupkg.metadata' -delete - runHook postInstall - ''; -}) + runHook postInstall + ''; + } +) diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix index 15a753d..73df0b8 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix @@ -1,53 +1,55 @@ -{ lib -, stdenvNoCC -, callPackage -, writeShellScript -, srcOnly -, linkFarmFromDrvs -, symlinkJoin -, makeWrapper -, dotnetCorePackages -, mkNugetSource -, mkNugetDeps -, nuget-to-nix -, cacert -, coreutils -, runtimeShellPackage +{ + lib, + stdenvNoCC, + callPackage, + writeShellScript, + srcOnly, + linkFarmFromDrvs, + symlinkJoin, + makeWrapper, + dotnetCorePackages, + mkNugetSource, + mkNugetDeps, + nuget-to-nix, + cacert, + coreutils, + runtimeShellPackage, }: -{ name ? "${args.pname}-${args.version}" -, pname ? name -, enableParallelBuilding ? true -, doCheck ? false +{ + name ? "${args.pname}-${args.version}", + pname ? name, + enableParallelBuilding ? true, + doCheck ? false, # Flags to pass to `makeWrapper`. This is done to avoid double wrapping. -, makeWrapperArgs ? [ ] + makeWrapperArgs ? [ ], # Flags to pass to `dotnet restore`. -, dotnetRestoreFlags ? [ ] + dotnetRestoreFlags ? [ ], # Flags to pass to `dotnet build`. -, dotnetBuildFlags ? [ ] + dotnetBuildFlags ? [ ], # Flags to pass to `dotnet test`, if running tests is enabled. -, dotnetTestFlags ? [ ] + dotnetTestFlags ? [ ], # Flags to pass to `dotnet install`. -, dotnetInstallFlags ? [ ] + dotnetInstallFlags ? [ ], # Flags to pass to `dotnet pack`. -, dotnetPackFlags ? [ ] + dotnetPackFlags ? [ ], # Flags to pass to dotnet in all phases. -, dotnetFlags ? [ ] + dotnetFlags ? [ ], # The path to publish the project to. When unset, the directory "$out/lib/$pname" is used. -, installPath ? null + installPath ? null, # The binaries that should get installed to `$out/bin`, relative to `$installPath/`. These get wrapped accordingly. # Unfortunately, dotnet has no method for doing this automatically. # If unset, all executables in the projects root will get installed. This may cause bloat! -, executables ? null + executables ? null, # Packs a project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`. -, packNupkg ? false + packNupkg ? false, # The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well. -, projectFile ? null + projectFile ? null, # The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched. # This can be generated by running the `passthru.fetch-deps` script. -, nugetDeps ? null + nugetDeps ? null, # A list of derivations containing nupkg packages for local project references. # Referenced derivations can be built with `buildDotnetModule` with `packNupkg=true` flag. # Since we are sharing them as nugets they must be added to csproj/fsproj files as `PackageReference` as well. @@ -56,67 +58,87 @@ # To enable discovery through `projectReferences` you would need to add a line: # # -, projectReferences ? [ ] + projectReferences ? [ ], # Libraries that need to be available at runtime should be passed through this. # These get wrapped into `LD_LIBRARY_PATH`. -, runtimeDeps ? [ ] + runtimeDeps ? [ ], # The dotnet runtime ID. If null, fetch-deps will gather dependencies for all # platforms in meta.platforms which are supported by the sdk. -, runtimeId ? null + runtimeId ? null, # Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks. # See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details. -, disabledTests ? [ ] + disabledTests ? [ ], # The project file to run unit tests against. This is usually referenced in the regular project file, but sometimes it needs to be manually set. # It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this. -, testProjectFile ? "" + testProjectFile ? "", # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc. -, buildType ? "Release" + buildType ? "Release", # If set to true, builds the application as a self-contained - removing the runtime dependency on dotnet -, selfContainedBuild ? false + selfContainedBuild ? false, # Whether to use an alternative wrapper, that executes the application DLL using the dotnet runtime from the user environment. `dotnet-runtime` is provided as a default in case no .NET is installed # This is useful for .NET tools and applications that may need to run under different .NET runtimes -, useDotnetFromEnv ? false + useDotnetFromEnv ? false, # Whether to explicitly enable UseAppHost when building. This is redundant if useDotnetFromEnv is enabledz -, useAppHost ? true + useAppHost ? true, # The dotnet SDK to use. -, dotnet-sdk ? dotnetCorePackages.sdk_6_0 + dotnet-sdk ? dotnetCorePackages.sdk_6_0, # The dotnet runtime to use. -, dotnet-runtime ? dotnetCorePackages.runtime_6_0 + dotnet-runtime ? dotnetCorePackages.runtime_6_0, # The dotnet SDK to run tests against. This can differentiate from the SDK compiled against. -, dotnet-test-sdk ? dotnet-sdk -, ... -} @ args: + dotnet-test-sdk ? dotnet-sdk, + ... +}@args: let platforms = - if args ? meta.platforms - then lib.intersectLists args.meta.platforms dotnet-sdk.meta.platforms - else dotnet-sdk.meta.platforms; + if args ? meta.platforms then + lib.intersectLists args.meta.platforms dotnet-sdk.meta.platforms + else + dotnet-sdk.meta.platforms; - inherit (callPackage ./hooks { - inherit dotnet-sdk dotnet-test-sdk disabledTests nuget-source dotnet-runtime runtimeDeps buildType; - runtimeId = - if runtimeId != null - then runtimeId - else dotnetCorePackages.systemToDotnetRid stdenvNoCC.targetPlatform.system; - }) dotnetConfigureHook dotnetBuildHook dotnetCheckHook dotnetInstallHook dotnetFixupHook; + inherit + (callPackage ./hooks { + inherit + dotnet-sdk + dotnet-test-sdk + disabledTests + nuget-source + dotnet-runtime + runtimeDeps + buildType + ; + runtimeId = + if runtimeId != null then + runtimeId + else + dotnetCorePackages.systemToDotnetRid stdenvNoCC.targetPlatform.system; + }) + dotnetConfigureHook + dotnetBuildHook + dotnetCheckHook + dotnetInstallHook + dotnetFixupHook + ; localDeps = - if (projectReferences != [ ]) - then linkFarmFromDrvs "${name}-project-references" projectReferences - else null; + if (projectReferences != [ ]) then + linkFarmFromDrvs "${name}-project-references" projectReferences + else + null; _nugetDeps = if (nugetDeps != null) then - if lib.isDerivation nugetDeps - then nugetDeps - else mkNugetDeps { - inherit name; - sourceFile = nugetDeps; - } - else throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script."; + if lib.isDerivation nugetDeps then + nugetDeps + else + mkNugetDeps { + inherit name; + sourceFile = nugetDeps; + } + else + throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script."; # contains the actual package dependencies dependenciesSource = mkNugetSource { @@ -130,194 +152,221 @@ let # a packages dependencies when the dotnet-sdk version changes sdkDeps = lib.lists.flatten [ dotnet-sdk.packages ]; - sdkSource = let - version = dotnet-sdk.version or (lib.concatStringsSep "-" dotnet-sdk.versions); - in mkNugetSource { - name = "dotnet-sdk-${version}-source"; - deps = sdkDeps; - }; + sdkSource = + let + version = dotnet-sdk.version or (lib.concatStringsSep "-" dotnet-sdk.versions); + in + mkNugetSource { + name = "dotnet-sdk-${version}-source"; + deps = sdkDeps; + }; nuget-source = symlinkJoin { name = "${name}-nuget-source"; - paths = [ dependenciesSource sdkSource ]; + paths = [ + dependenciesSource + sdkSource + ]; }; nugetDepsFile = _nugetDeps.sourceFile; in -stdenvNoCC.mkDerivation (args // { - nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ - dotnetConfigureHook - dotnetBuildHook - dotnetCheckHook - dotnetInstallHook - dotnetFixupHook +stdenvNoCC.mkDerivation ( + args + // { + nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [ + dotnetConfigureHook + dotnetBuildHook + dotnetCheckHook + dotnetInstallHook + dotnetFixupHook - cacert - makeWrapper - dotnet-sdk - ]; - - # Parse the version attr into a format acceptable for the Version msbuild property - # The actual version attr is saved in InformationalVersion, which accepts an arbitrary string - versionForDotnet = if !(lib.hasAttr "version" args) || args.version == null - then null else let - components = lib.pipe args.version [ - lib.splitVersion - (lib.filter (x: (lib.strings.match "[0-9]+" x) != null)) - (lib.filter (x: (lib.toIntBase10 x) < 65535)) # one version component in dotnet has to fit in 16 bits + cacert + makeWrapper + dotnet-sdk ]; - in if (lib.length components) == 0 - then null - else lib.concatStringsSep "." ((lib.take 4 components) - ++ (if (lib.length components) < 4 - then lib.replicate (4 - (lib.length components)) "0" - else [ ])); - makeWrapperArgs = args.makeWrapperArgs or [ ] ++ [ - "--prefix LD_LIBRARY_PATH : ${dotnet-sdk.icu}/lib" - ]; + # Parse the version attr into a format acceptable for the Version msbuild property + # The actual version attr is saved in InformationalVersion, which accepts an arbitrary string + versionForDotnet = + if !(lib.hasAttr "version" args) || args.version == null then + null + else + let + components = lib.pipe args.version [ + lib.splitVersion + (lib.filter (x: (lib.strings.match "[0-9]+" x) != null)) + (lib.filter (x: (lib.toIntBase10 x) < 65535)) # one version component in dotnet has to fit in 16 bits + ]; + in + if (lib.length components) == 0 then + null + else + lib.concatStringsSep "." ( + (lib.take 4 components) + ++ (if (lib.length components) < 4 then lib.replicate (4 - (lib.length components)) "0" else [ ]) + ); - # Stripping breaks the executable - dontStrip = args.dontStrip or true; + makeWrapperArgs = args.makeWrapperArgs or [ ] ++ [ + "--prefix LD_LIBRARY_PATH : ${dotnet-sdk.icu}/lib" + ]; - # gappsWrapperArgs gets included when wrapping for dotnet, as to avoid double wrapping - dontWrapGApps = args.dontWrapGApps or true; + # Stripping breaks the executable + dontStrip = args.dontStrip or true; - inherit selfContainedBuild useAppHost useDotnetFromEnv; + # gappsWrapperArgs gets included when wrapping for dotnet, as to avoid double wrapping + dontWrapGApps = args.dontWrapGApps or true; - passthru = { - inherit nuget-source; - } // lib.optionalAttrs (!lib.isDerivation nugetDeps) { - fetch-deps = - let - flags = dotnetFlags ++ dotnetRestoreFlags; - runtimeIds = - if runtimeId != null - then [ runtimeId ] - else map (system: dotnetCorePackages.systemToDotnetRid system) platforms; - defaultDepsFile = - # Wire in the nugetDeps file such that running the script with no args - # runs it agains the correct deps file by default. - # Note that toString is necessary here as it results in the path at - # eval time (i.e. to the file in your local Nixpkgs checkout) rather - # than the Nix store path of the path after it's been imported. - if lib.isPath nugetDepsFile && !lib.hasPrefix "${builtins.storeDir}/" (toString nugetDepsFile) - then toString nugetDepsFile - else ''$(mktemp -t "${pname}-deps-XXXXXX.nix")''; - in - writeShellScript "fetch-${pname}-deps" '' - set -euo pipefail + inherit selfContainedBuild useAppHost useDotnetFromEnv; - export PATH="${lib.makeBinPath [ coreutils runtimeShellPackage dotnet-sdk (nuget-to-nix.override { inherit dotnet-sdk; }) ]}" + passthru = + { + inherit nuget-source; + } + // lib.optionalAttrs (!lib.isDerivation nugetDeps) { + fetch-deps = + let + flags = dotnetFlags ++ dotnetRestoreFlags; + runtimeIds = + if runtimeId != null then + [ runtimeId ] + else + map (system: dotnetCorePackages.systemToDotnetRid system) platforms; + defaultDepsFile = + # Wire in the nugetDeps file such that running the script with no args + # runs it agains the correct deps file by default. + # Note that toString is necessary here as it results in the path at + # eval time (i.e. to the file in your local Nixpkgs checkout) rather + # than the Nix store path of the path after it's been imported. + if lib.isPath nugetDepsFile && !lib.hasPrefix "${builtins.storeDir}/" (toString nugetDepsFile) then + toString nugetDepsFile + else + ''$(mktemp -t "${pname}-deps-XXXXXX.nix")''; + in + writeShellScript "fetch-${pname}-deps" '' + set -euo pipefail - for arg in "$@"; do - case "$arg" in - --keep-sources|-k) - keepSources=1 - shift - ;; - --help|-h) - echo "usage: $0 [--keep-sources] [--help] " - echo " The path to write the lockfile to. A temporary file is used if this is not set" - echo " --keep-sources Dont remove temporary directories upon exit, useful for debugging" - echo " --help Show this help message" - exit - ;; - esac - done + export PATH="${ + lib.makeBinPath [ + coreutils + runtimeShellPackage + dotnet-sdk + (nuget-to-nix.override { inherit dotnet-sdk; }) + ] + }" - if [[ ''${TMPDIR:-} == /run/user/* ]]; then - # /run/user is usually a tmpfs in RAM, which may be too small - # to store all downloaded dotnet packages - unset TMPDIR - fi - - export tmp=$(mktemp -td "deps-${pname}-XXXXXX") - HOME=$tmp/home - - exitTrap() { - test -n "''${ranTrap-}" && return - ranTrap=1 - - if test -n "''${keepSources-}"; then - echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home" - else - rm -rf "$tmp" - fi - - # Since mktemp is used this will be empty if the script didnt succesfully complete - if ! test -s "$depsFile"; then - rm -rf "$depsFile" - fi - } - - trap exitTrap EXIT INT TERM - - dotnetRestore() { - local -r project="''${1-}" - local -r rid="$2" - - dotnet restore ''${project-} \ - -p:ContinuousIntegrationBuild=true \ - -p:Deterministic=true \ - --packages "$tmp/nuget_pkgs" \ - --runtime "$rid" \ - --no-cache \ - --force \ - ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \ - ${lib.optionalString (flags != []) (toString flags)} - } - - declare -a projectFiles=( ${toString (lib.toList projectFile)} ) - declare -a testProjectFiles=( ${toString (lib.toList testProjectFile)} ) - - export DOTNET_NOLOGO=1 - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - - depsFile=$(realpath "''${1:-${defaultDepsFile}}") - echo Will write lockfile to "$depsFile" - mkdir -p "$tmp/nuget_pkgs" - - storeSrc="${srcOnly args}" - src=$tmp/src - cp -rT "$storeSrc" "$src" - chmod -R +w "$src" - - cd "$src" - echo "Restoring project..." - - ${dotnet-sdk}/bin/dotnet tool restore - cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true - - for rid in "${lib.concatStringsSep "\" \"" runtimeIds}"; do - (( ''${#projectFiles[@]} == 0 )) && dotnetRestore "" "$rid" - - for project in ''${projectFiles[@]-} ''${testProjectFiles[@]-}; do - dotnetRestore "$project" "$rid" + for arg in "$@"; do + case "$arg" in + --keep-sources|-k) + keepSources=1 + shift + ;; + --help|-h) + echo "usage: $0 [--keep-sources] [--help] " + echo " The path to write the lockfile to. A temporary file is used if this is not set" + echo " --keep-sources Dont remove temporary directories upon exit, useful for debugging" + echo " --help Show this help message" + exit + ;; + esac done - done - # Second copy, makes sure packages restored by ie. paket are included - cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true - echo "Succesfully restored project" + if [[ ''${TMPDIR:-} == /run/user/* ]]; then + # /run/user is usually a tmpfs in RAM, which may be too small + # to store all downloaded dotnet packages + unset TMPDIR + fi - echo "Writing lockfile..." + export tmp=$(mktemp -td "deps-${pname}-XXXXXX") + HOME=$tmp/home - excluded_sources="${lib.concatStringsSep " " sdkDeps}" - for excluded_source in ''${excluded_sources[@]}; do - ls "$excluded_source" >> "$tmp/excluded_list" - done - tmpFile="$tmp"/deps.nix - echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please dont edit it manually, your changes might get overwritten!\n" > "$tmpFile" - nuget-to-nix "$tmp/nuget_pkgs" "$tmp/excluded_list" >> "$tmpFile" - mv "$tmpFile" "$depsFile" - echo "Succesfully wrote lockfile to $depsFile" - ''; - } // args.passthru or { }; + exitTrap() { + test -n "''${ranTrap-}" && return + ranTrap=1 - meta = (args.meta or { }) // { inherit platforms; }; -} + if test -n "''${keepSources-}"; then + echo -e "Path to the source: $tmp/src\nPath to the fake home: $tmp/home" + else + rm -rf "$tmp" + fi + + # Since mktemp is used this will be empty if the script didnt succesfully complete + if ! test -s "$depsFile"; then + rm -rf "$depsFile" + fi + } + + trap exitTrap EXIT INT TERM + + dotnetRestore() { + local -r project="''${1-}" + local -r rid="$2" + + dotnet restore ''${project-} \ + -p:ContinuousIntegrationBuild=true \ + -p:Deterministic=true \ + --packages "$tmp/nuget_pkgs" \ + --runtime "$rid" \ + --no-cache \ + --force \ + ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \ + ${lib.optionalString (flags != [ ]) (toString flags)} + } + + declare -a projectFiles=( ${toString (lib.toList projectFile)} ) + declare -a testProjectFiles=( ${toString (lib.toList testProjectFile)} ) + + export DOTNET_NOLOGO=1 + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + + depsFile=$(realpath "''${1:-${defaultDepsFile}}") + echo Will write lockfile to "$depsFile" + mkdir -p "$tmp/nuget_pkgs" + + storeSrc="${srcOnly args}" + src=$tmp/src + cp -rT "$storeSrc" "$src" + chmod -R +w "$src" + + cd "$src" + echo "Restoring project..." + + ${dotnet-sdk}/bin/dotnet tool restore + cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true + + for rid in "${lib.concatStringsSep "\" \"" runtimeIds}"; do + (( ''${#projectFiles[@]} == 0 )) && dotnetRestore "" "$rid" + + for project in ''${projectFiles[@]-} ''${testProjectFiles[@]-}; do + dotnetRestore "$project" "$rid" + done + done + # Second copy, makes sure packages restored by ie. paket are included + cp -r $HOME/.nuget/packages/* $tmp/nuget_pkgs || true + + echo "Succesfully restored project" + + echo "Writing lockfile..." + + excluded_sources="${lib.concatStringsSep " " sdkDeps}" + for excluded_source in ''${excluded_sources[@]}; do + ls "$excluded_source" >> "$tmp/excluded_list" + done + tmpFile="$tmp"/deps.nix + echo -e "# This file was automatically generated by passthru.fetch-deps.\n# Please dont edit it manually, your changes might get overwritten!\n" > "$tmpFile" + nuget-to-nix "$tmp/nuget_pkgs" "$tmp/excluded_list" >> "$tmpFile" + mv "$tmpFile" "$depsFile" + echo "Succesfully wrote lockfile to $depsFile" + ''; + } + // args.passthru or { }; + + meta = (args.meta or { }) // { + inherit platforms; + }; + } # ICU tries to unconditionally load files from /usr/share/icu on Darwin, which makes builds fail # in the sandbox, so disable ICU on Darwin. This, as far as I know, shouldn't cause any built packages # to behave differently, just the dotnet build tool. - // lib.optionalAttrs stdenvNoCC.isDarwin { DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = 1; }) + // lib.optionalAttrs stdenvNoCC.isDarwin { DOTNET_SYSTEM_GLOBALIZATION_INVARIANT = 1; } +) diff --git a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix index 7012ff3..55c2828 100644 --- a/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-module/hooks/default.nix @@ -1,20 +1,21 @@ -{ lib -, stdenv -, which -, coreutils -, zlib -, openssl -, callPackage -, makeSetupHook -, makeWrapper -, dotnet-sdk -, dotnet-test-sdk -, disabledTests -, nuget-source -, dotnet-runtime -, runtimeDeps -, buildType -, runtimeId +{ + lib, + stdenv, + which, + coreutils, + zlib, + openssl, + callPackage, + makeSetupHook, + makeWrapper, + dotnet-sdk, + dotnet-test-sdk, + disabledTests, + nuget-source, + dotnet-runtime, + runtimeDeps, + buildType, + runtimeId, }: assert (builtins.isString runtimeId); @@ -22,10 +23,14 @@ let libraryPath = lib.makeLibraryPath runtimeDeps; in { - dotnetConfigureHook = callPackage ({ }: + dotnetConfigureHook = callPackage ( + { }: makeSetupHook { name = "dotnet-configure-hook"; - propagatedBuildInputs = [ dotnet-sdk nuget-source ]; + propagatedBuildInputs = [ + dotnet-sdk + nuget-source + ]; substitutions = { nugetSource = nuget-source; dynamicLinker = "${stdenv.cc}/nix-support/dynamic-linker"; @@ -38,42 +43,51 @@ in ]; inherit runtimeId; }; - } ./dotnet-configure-hook.sh) { }; + } ./dotnet-configure-hook.sh + ) { }; - dotnetBuildHook = callPackage ({ }: + dotnetBuildHook = callPackage ( + { }: makeSetupHook { name = "dotnet-build-hook"; propagatedBuildInputs = [ dotnet-sdk ]; substitutions = { inherit buildType runtimeId; }; - } ./dotnet-build-hook.sh) { }; + } ./dotnet-build-hook.sh + ) { }; - dotnetCheckHook = callPackage ({ }: + dotnetCheckHook = callPackage ( + { }: makeSetupHook { name = "dotnet-check-hook"; propagatedBuildInputs = [ dotnet-test-sdk ]; substitutions = { inherit buildType runtimeId libraryPath; - disabledTests = lib.optionalString (disabledTests != []) - (let - escapedNames = lib.lists.map (n: lib.replaceStrings [","] ["%2C"] n) disabledTests; + disabledTests = lib.optionalString (disabledTests != [ ]) ( + let + escapedNames = lib.lists.map (n: lib.replaceStrings [ "," ] [ "%2C" ] n) disabledTests; filters = lib.lists.map (n: "FullyQualifiedName!=${n}") escapedNames; in - "${lib.concatStringsSep "&" filters}"); + "${lib.concatStringsSep "&" filters}" + ); }; - } ./dotnet-check-hook.sh) { }; + } ./dotnet-check-hook.sh + ) { }; - dotnetInstallHook = callPackage ({ }: + dotnetInstallHook = callPackage ( + { }: makeSetupHook { name = "dotnet-install-hook"; propagatedBuildInputs = [ dotnet-sdk ]; substitutions = { inherit buildType runtimeId; }; - } ./dotnet-install-hook.sh) { }; + } ./dotnet-install-hook.sh + ) { }; - dotnetFixupHook = callPackage ({ }: + dotnetFixupHook = callPackage ( + { }: makeSetupHook { name = "dotnet-fixup-hook"; propagatedBuildInputs = [ dotnet-runtime ]; @@ -85,5 +99,6 @@ in dirname = "${coreutils}/bin/dirname"; realpath = "${coreutils}/bin/realpath"; }; - } ./dotnet-fixup-hook.sh) { }; + } ./dotnet-fixup-hook.sh + ) { }; } diff --git a/pkgs/build-support/dotnet/build-dotnet-package/default.nix b/pkgs/build-support/dotnet/build-dotnet-package/default.nix index 14446ef..64bf19a 100644 --- a/pkgs/build-support/dotnet/build-dotnet-package/default.nix +++ b/pkgs/build-support/dotnet/build-dotnet-package/default.nix @@ -1,116 +1,124 @@ -{ stdenv, lib, makeWrapper, pkg-config, mono, dotnetbuildhelpers }: +{ + stdenv, + lib, + makeWrapper, + pkg-config, + mono, + dotnetbuildhelpers, +}: -attrsOrig @ -{ pname -, version -, nativeBuildInputs ? [] -, xBuildFiles ? [ ] -, xBuildFlags ? [ "/p:Configuration=Release" ] -, outputFiles ? [ "bin/Release/*" ] -, dllFiles ? [ "*.dll" ] -, exeFiles ? [ "*.exe" ] -# Additional arguments to pass to the makeWrapper function, which wraps -# generated binaries. -, makeWrapperArgs ? [ ] -, ... }: - let - arrayToShell = (a: toString (map (lib.escape (lib.stringToCharacters "\\ ';$`()|<>\t") ) a)); +attrsOrig@{ + pname, + version, + nativeBuildInputs ? [ ], + xBuildFiles ? [ ], + xBuildFlags ? [ "/p:Configuration=Release" ], + outputFiles ? [ "bin/Release/*" ], + dllFiles ? [ "*.dll" ], + exeFiles ? [ "*.exe" ], + # Additional arguments to pass to the makeWrapper function, which wraps + # generated binaries. + makeWrapperArgs ? [ ], + ... +}: +let + arrayToShell = (a: toString (map (lib.escape (lib.stringToCharacters "\\ ';$`()|<>\t")) a)); - attrs = { - inherit pname version; + attrs = { + inherit pname version; - nativeBuildInputs = [ - pkg-config - makeWrapper - dotnetbuildhelpers - mono - ] ++ nativeBuildInputs; + nativeBuildInputs = [ + pkg-config + makeWrapper + dotnetbuildhelpers + mono + ] ++ nativeBuildInputs; - configurePhase = '' - runHook preConfigure + configurePhase = '' + runHook preConfigure - [ -z "''${dontPlacateNuget-}" ] && placate-nuget.sh - [ -z "''${dontPlacatePaket-}" ] && placate-paket.sh - [ -z "''${dontPatchFSharpTargets-}" ] && patch-fsharp-targets.sh + [ -z "''${dontPlacateNuget-}" ] && placate-nuget.sh + [ -z "''${dontPlacatePaket-}" ] && placate-paket.sh + [ -z "''${dontPatchFSharpTargets-}" ] && patch-fsharp-targets.sh - runHook postConfigure - ''; + runHook postConfigure + ''; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - echo Building dotNET packages... + echo Building dotNET packages... - # Probably needs to be moved to fsharp - if pkg-config FSharp.Core - then - export FSharpTargetsPath="$(dirname $(pkg-config FSharp.Core --variable=Libraries))/Microsoft.FSharp.Targets" - fi + # Probably needs to be moved to fsharp + if pkg-config FSharp.Core + then + export FSharpTargetsPath="$(dirname $(pkg-config FSharp.Core --variable=Libraries))/Microsoft.FSharp.Targets" + fi - ran="" - for xBuildFile in ${arrayToShell xBuildFiles} ''${xBuildFilesExtra} + ran="" + for xBuildFile in ${arrayToShell xBuildFiles} ''${xBuildFilesExtra} + do + ran="yes" + xbuild ${arrayToShell xBuildFlags} ''${xBuildFlagsArray} $xBuildFile + done + + [ -z "$ran" ] && xbuild ${arrayToShell xBuildFlags} ''${xBuildFlagsArray} + + runHook postBuild + ''; + + dontStrip = true; + + installPhase = '' + runHook preInstall + + target="$out/lib/dotnet/${pname}" + mkdir -p "$target" + + cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target" + + if [ -z "''${dontRemoveDuplicatedDlls-}" ] + then + pushd "$out" + remove-duplicated-dlls.sh + popd + fi + + set -f + for dllPattern in ${arrayToShell dllFiles} ''${dllFilesArray[@]} + do + set +f + for dll in "$target"/$dllPattern do - ran="yes" - xbuild ${arrayToShell xBuildFlags} ''${xBuildFlagsArray} $xBuildFile + [ -f "$dll" ] || continue + if pkg-config $(basename -s .dll "$dll") + then + echo "$dll already exported by a buildInputs, not re-exporting" + else + create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll" + fi done + done - [ -z "$ran" ] && xbuild ${arrayToShell xBuildFlags} ''${xBuildFlagsArray} - - runHook postBuild - ''; - - dontStrip = true; - - installPhase = '' - runHook preInstall - - target="$out/lib/dotnet/${pname}" - mkdir -p "$target" - - cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target" - - if [ -z "''${dontRemoveDuplicatedDlls-}" ] - then - pushd "$out" - remove-duplicated-dlls.sh - popd - fi - - set -f - for dllPattern in ${arrayToShell dllFiles} ''${dllFilesArray[@]} + set -f + for exePattern in ${arrayToShell exeFiles} ''${exeFilesArray[@]} + do + set +f + for exe in "$target"/$exePattern do - set +f - for dll in "$target"/$dllPattern - do - [ -f "$dll" ] || continue - if pkg-config $(basename -s .dll "$dll") - then - echo "$dll already exported by a buildInputs, not re-exporting" - else - create-pkg-config-for-dll.sh "$out/lib/pkgconfig" "$dll" - fi - done + [ -f "$exe" ] || continue + mkdir -p "$out"/bin + commandName="$(basename -s .exe "$(echo "$exe" | tr "[A-Z]" "[a-z]")")" + makeWrapper \ + "${mono}/bin/mono" \ + "$out"/bin/"$commandName" \ + --add-flags "\"$exe\"" \ + ''${makeWrapperArgs} done + done - set -f - for exePattern in ${arrayToShell exeFiles} ''${exeFilesArray[@]} - do - set +f - for exe in "$target"/$exePattern - do - [ -f "$exe" ] || continue - mkdir -p "$out"/bin - commandName="$(basename -s .exe "$(echo "$exe" | tr "[A-Z]" "[a-z]")")" - makeWrapper \ - "${mono}/bin/mono" \ - "$out"/bin/"$commandName" \ - --add-flags "\"$exe\"" \ - ''${makeWrapperArgs} - done - done - - runHook postInstall - ''; - }; - in - stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "nativeBuildInputs" ] )) + runHook postInstall + ''; + }; +in +stdenv.mkDerivation (attrs // (builtins.removeAttrs attrsOrig [ "nativeBuildInputs" ])) diff --git a/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix b/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix index 4348832..8ce5e34 100644 --- a/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix +++ b/pkgs/build-support/dotnet/dotnetbuildhelpers/default.nix @@ -1,18 +1,19 @@ -{ runCommand, mono, pkg-config }: - runCommand - "dotnetbuildhelpers" - { preferLocalBuild = true; } - '' - target="$out/bin" - mkdir -p "$target" +{ + runCommand, + mono, + pkg-config, +}: +runCommand "dotnetbuildhelpers" { preferLocalBuild = true; } '' + target="$out/bin" + mkdir -p "$target" - for script in ${./create-pkg-config-for-dll.sh} ${./patch-fsharp-targets.sh} ${./remove-duplicated-dlls.sh} ${./placate-nuget.sh} ${./placate-paket.sh} - do - scriptName="$(basename "$script" | cut -f 2- -d -)" - cp -v "$script" "$target"/"$scriptName" - chmod 755 "$target"/"$scriptName" - patchShebangs "$target"/"$scriptName" - substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config - substituteInPlace "$target"/"$scriptName" --replace monodis ${mono}/bin/monodis - done - '' + for script in ${./create-pkg-config-for-dll.sh} ${./patch-fsharp-targets.sh} ${./remove-duplicated-dlls.sh} ${./placate-nuget.sh} ${./placate-paket.sh} + do + scriptName="$(basename "$script" | cut -f 2- -d -)" + cp -v "$script" "$target"/"$scriptName" + chmod 755 "$target"/"$scriptName" + patchShebangs "$target"/"$scriptName" + substituteInPlace "$target"/"$scriptName" --replace pkg-config ${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config + substituteInPlace "$target"/"$scriptName" --replace monodis ${mono}/bin/monodis + done +'' diff --git a/pkgs/build-support/dotnet/dotnetenv/build-solution.nix b/pkgs/build-support/dotnet/dotnetenv/build-solution.nix index b3372b9..71da8ca 100644 --- a/pkgs/build-support/dotnet/dotnetenv/build-solution.nix +++ b/pkgs/build-support/dotnet/dotnetenv/build-solution.nix @@ -1,15 +1,20 @@ -{ lib, stdenv, dotnetfx }: -{ name -, src -, baseDir ? "." -, slnFile -, targets ? "ReBuild" -, verbosity ? "detailed" -, options ? "/p:Configuration=Debug;Platform=Win32" -, assemblyInputs ? [] -, preBuild ? "" -, modifyPublicMain ? false -, mainClassFile ? null +{ + lib, + stdenv, + dotnetfx, +}: +{ + name, + src, + baseDir ? ".", + slnFile, + targets ? "ReBuild", + verbosity ? "detailed", + options ? "/p:Configuration=Debug;Platform=Win32", + assemblyInputs ? [ ], + preBuild ? "", + modifyPublicMain ? false, + mainClassFile ? null, }: assert modifyPublicMain -> mainClassFile != null; @@ -31,55 +36,55 @@ stdenv.mkDerivation { ''; installPhase = '' - addDeps() - { - if [ -f $1/nix-support/dotnet-assemblies ] - then - for i in $(cat $1/nix-support/dotnet-assemblies) - do - windowsPath=$(cygpath --windows $i) - assemblySearchPaths="$assemblySearchPaths;$windowsPath" + addDeps() + { + if [ -f $1/nix-support/dotnet-assemblies ] + then + for i in $(cat $1/nix-support/dotnet-assemblies) + do + windowsPath=$(cygpath --windows $i) + assemblySearchPaths="$assemblySearchPaths;$windowsPath" - addDeps $i - done - fi - } + addDeps $i + done + fi + } - for i in ${toString assemblyInputs} - do - windowsPath=$(cygpath --windows $i) - echo "Using assembly path: $windowsPath" + for i in ${toString assemblyInputs} + do + windowsPath=$(cygpath --windows $i) + echo "Using assembly path: $windowsPath" - if [ "$assemblySearchPaths" = "" ] - then - assemblySearchPaths="$windowsPath" - else - assemblySearchPaths="$assemblySearchPaths;$windowsPath" - fi + if [ "$assemblySearchPaths" = "" ] + then + assemblySearchPaths="$windowsPath" + else + assemblySearchPaths="$assemblySearchPaths;$windowsPath" + fi - addDeps $i - done + addDeps $i + done - echo "Assembly search paths are: $assemblySearchPaths" + echo "Assembly search paths are: $assemblySearchPaths" - if [ "$assemblySearchPaths" != "" ] - then - echo "Using assembly search paths args: $assemblySearchPathsArg" - export AssemblySearchPaths=$assemblySearchPaths - fi + if [ "$assemblySearchPaths" != "" ] + then + echo "Using assembly search paths args: $assemblySearchPathsArg" + export AssemblySearchPaths=$assemblySearchPaths + fi - mkdir -p $out - MSBuild.exe ${toString slnFile} /nologo /t:${targets} /p:IntermediateOutputPath=$(cygpath --windows $out)\\ /p:OutputPath=$(cygpath --windows $out)\\ /verbosity:${verbosity} ${options} + mkdir -p $out + MSBuild.exe ${toString slnFile} /nologo /t:${targets} /p:IntermediateOutputPath=$(cygpath --windows $out)\\ /p:OutputPath=$(cygpath --windows $out)\\ /verbosity:${verbosity} ${options} - # Because .NET assemblies store strings as UTF-16 internally, we cannot detect - # hashes. Therefore a text files containing the proper paths is created - # We can also use this file the propagate transitive dependencies. + # Because .NET assemblies store strings as UTF-16 internally, we cannot detect + # hashes. Therefore a text files containing the proper paths is created + # We can also use this file the propagate transitive dependencies. - mkdir -p $out/nix-support + mkdir -p $out/nix-support - for i in ${toString assemblyInputs} - do - echo $i >> $out/nix-support/dotnet-assemblies - done + for i in ${toString assemblyInputs} + do + echo $i >> $out/nix-support/dotnet-assemblies + done ''; } diff --git a/pkgs/build-support/dotnet/dotnetenv/default.nix b/pkgs/build-support/dotnet/dotnetenv/default.nix index 3015db4..dbdcc8c 100644 --- a/pkgs/build-support/dotnet/dotnetenv/default.nix +++ b/pkgs/build-support/dotnet/dotnetenv/default.nix @@ -1,17 +1,24 @@ -{ lib, stdenv, dotnetfx }: - -let dotnetenv = { - buildSolution = import ./build-solution.nix { - inherit lib stdenv; - dotnetfx = dotnetfx.pkg; - }; + lib, + stdenv, + dotnetfx, +}: - buildWrapper = import ./wrapper.nix { - inherit dotnetenv; - }; +let + dotnetenv = { + buildSolution = import ./build-solution.nix { + inherit lib stdenv; + dotnetfx = dotnetfx.pkg; + }; - inherit (dotnetfx) assembly20Path wcfPath referenceAssembly30Path referenceAssembly35Path; -}; + buildWrapper = import ./wrapper.nix { inherit dotnetenv; }; + + inherit (dotnetfx) + assembly20Path + wcfPath + referenceAssembly30Path + referenceAssembly35Path + ; + }; in dotnetenv diff --git a/pkgs/build-support/dotnet/dotnetenv/wrapper.nix b/pkgs/build-support/dotnet/dotnetenv/wrapper.nix index 423303c..04059ef 100644 --- a/pkgs/build-support/dotnet/dotnetenv/wrapper.nix +++ b/pkgs/build-support/dotnet/dotnetenv/wrapper.nix @@ -1,23 +1,31 @@ -{dotnetenv}: +{ dotnetenv }: -{ name -, src -, baseDir ? "." -, slnFile -, targets ? "ReBuild" -, verbosity ? "detailed" -, options ? "/p:Configuration=Debug;Platform=Win32" -, assemblyInputs ? [] -, preBuild ? "" -, namespace -, mainClassName -, mainClassFile -, modifyPublicMain ? true +{ + name, + src, + baseDir ? ".", + slnFile, + targets ? "ReBuild", + verbosity ? "detailed", + options ? "/p:Configuration=Debug;Platform=Win32", + assemblyInputs ? [ ], + preBuild ? "", + namespace, + mainClassName, + mainClassFile, + modifyPublicMain ? true, }: let application = dotnetenv.buildSolution { - inherit name src baseDir slnFile targets verbosity; + inherit + name + src + baseDir + slnFile + targets + verbosity + ; inherit options assemblyInputs preBuild; inherit modifyPublicMain mainClassFile; }; @@ -28,37 +36,37 @@ dotnetenv.buildSolution { slnFile = "Wrapper.sln"; assemblyInputs = [ application ]; preBuild = '' - addRuntimeDeps() - { - if [ -f $1/nix-support/dotnet-assemblies ] - then - for i in $(cat $1/nix-support/dotnet-assemblies) - do - windowsPath=$(cygpath --windows $i | sed 's|\\|\\\\|g') - assemblySearchArray="$assemblySearchArray @\"$windowsPath\"" + addRuntimeDeps() + { + if [ -f $1/nix-support/dotnet-assemblies ] + then + for i in $(cat $1/nix-support/dotnet-assemblies) + do + windowsPath=$(cygpath --windows $i | sed 's|\\|\\\\|g') + assemblySearchArray="$assemblySearchArray @\"$windowsPath\"" - addRuntimeDeps $i - done - fi - } + addRuntimeDeps $i + done + fi + } - export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g') + export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g') - # Generate assemblySearchPaths string array contents - for path in ${toString assemblyInputs} - do - assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", " - addRuntimeDeps $path - done + # Generate assemblySearchPaths string array contents + for path in ${toString assemblyInputs} + do + assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", " + addRuntimeDeps $path + done - sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \ - -e "s|@ASSEMBLYNAME@|${namespace}|" \ - Wrapper/Wrapper.csproj.in > Wrapper/Wrapper.csproj + sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \ + -e "s|@ASSEMBLYNAME@|${namespace}|" \ + Wrapper/Wrapper.csproj.in > Wrapper/Wrapper.csproj - sed -e "s|@NAMESPACE@|${namespace}|g" \ - -e "s|@MAINCLASSNAME@|${mainClassName}|g" \ - -e "s|@EXEPATH@|$exePath|g" \ - -e "s|@ASSEMBLYSEARCHPATH@|$assemblySearchArray|" \ - Wrapper/Wrapper.cs.in > Wrapper/Wrapper.cs + sed -e "s|@NAMESPACE@|${namespace}|g" \ + -e "s|@MAINCLASSNAME@|${mainClassName}|g" \ + -e "s|@EXEPATH@|$exePath|g" \ + -e "s|@ASSEMBLYSEARCHPATH@|$assemblySearchArray|" \ + Wrapper/Wrapper.cs.in > Wrapper/Wrapper.cs ''; } diff --git a/pkgs/build-support/dotnet/fetchnuget/default.nix b/pkgs/build-support/dotnet/fetchnuget/default.nix index 061da74..649ad48 100644 --- a/pkgs/build-support/dotnet/fetchnuget/default.nix +++ b/pkgs/build-support/dotnet/fetchnuget/default.nix @@ -1,43 +1,50 @@ -{ fetchurl, buildDotnetPackage, unzip }: +{ + fetchurl, + buildDotnetPackage, + unzip, +}: -attrs @ -{ pname -, version -, url ? "https://www.nuget.org/api/v2/package/${pname}/${version}" -, sha256 ? "" -, md5 ? "" -, ... +attrs@{ + pname, + version, + url ? "https://www.nuget.org/api/v2/package/${pname}/${version}", + sha256 ? "", + md5 ? "", + ... }: if md5 != "" then throw "fetchnuget does not support md5 anymore, please use sha256" else - buildDotnetPackage ({ - src = fetchurl { - inherit url sha256; - name = "${pname}.${version}.zip"; - }; + buildDotnetPackage ( + { + src = fetchurl { + inherit url sha256; + name = "${pname}.${version}.zip"; + }; - sourceRoot = "."; + sourceRoot = "."; - nativeBuildInputs = [ unzip ]; + nativeBuildInputs = [ unzip ]; - dontBuild = true; + dontBuild = true; - preInstall = '' - function traverseRename () { - for e in * - do - t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")" - [ "$t" != "$e" ] && mv -vn "$e" "$t" - if [ -d "$t" ] - then - cd "$t" - traverseRename - cd .. - fi - done - } + preInstall = '' + function traverseRename () { + for e in * + do + t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")" + [ "$t" != "$e" ] && mv -vn "$e" "$t" + if [ -d "$t" ] + then + cd "$t" + traverseRename + cd .. + fi + done + } - traverseRename - ''; - } // attrs) + traverseRename + ''; + } + // attrs + ) diff --git a/pkgs/build-support/dotnet/make-nuget-deps/default.nix b/pkgs/build-support/dotnet/make-nuget-deps/default.nix index fcd3f9f..4f47a06 100644 --- a/pkgs/build-support/dotnet/make-nuget-deps/default.nix +++ b/pkgs/build-support/dotnet/make-nuget-deps/default.nix @@ -1,12 +1,22 @@ { linkFarmFromDrvs, fetchurl }: -{ name, nugetDeps ? import sourceFile, sourceFile ? null }: +{ + name, + nugetDeps ? import sourceFile, + sourceFile ? null, +}: linkFarmFromDrvs "${name}-nuget-deps" (nugetDeps { - fetchNuGet = { pname, version, sha256 - , url ? "https://www.nuget.org/api/v2/package/${pname}/${version}" }: + fetchNuGet = + { + pname, + version, + sha256, + url ? "https://www.nuget.org/api/v2/package/${pname}/${version}", + }: fetchurl { name = "${pname}.${version}.nupkg"; inherit url sha256; }; -}) // { +}) +// { inherit sourceFile; } diff --git a/pkgs/build-support/dotnet/make-nuget-source/default.nix b/pkgs/build-support/dotnet/make-nuget-source/default.nix index 4cf9c1a..fe8814e 100644 --- a/pkgs/build-support/dotnet/make-nuget-source/default.nix +++ b/pkgs/build-support/dotnet/make-nuget-source/default.nix @@ -1,28 +1,43 @@ -{ lib, python3, stdenvNoCC }: +{ + lib, + python3, + stdenvNoCC, +}: -{ name -, description ? "" -, deps ? [] -, ... +{ + name, + description ? "", + deps ? [ ], + ... }@args: -stdenvNoCC.mkDerivation (lib.recursiveUpdate { - inherit name; +stdenvNoCC.mkDerivation ( + lib.recursiveUpdate + { + inherit name; - nativeBuildInputs = [ python3 ]; + nativeBuildInputs = [ python3 ]; - buildCommand = '' - mkdir -p $out/{lib,share} + buildCommand = '' + mkdir -p $out/{lib,share} - # use -L to follow symbolic links. When `projectReferences` is used in - # buildDotnetModule, one of the deps will be a symlink farm. - find -L ${lib.concatStringsSep " " deps} -type f -name '*.nupkg' -exec \ - ln -s '{}' -t $out/lib ';' + # use -L to follow symbolic links. When `projectReferences` is used in + # buildDotnetModule, one of the deps will be a symlink farm. + find -L ${lib.concatStringsSep " " deps} -type f -name '*.nupkg' -exec \ + ln -s '{}' -t $out/lib ';' - # Generates a list of all licenses' spdx ids, if available. - # Note that this currently ignores any license provided in plain text (e.g. "LICENSE.txt") - python ${./extract-licenses-from-nupkgs.py} $out/lib > $out/share/licenses - ''; + # Generates a list of all licenses' spdx ids, if available. + # Note that this currently ignores any license provided in plain text (e.g. "LICENSE.txt") + python ${./extract-licenses-from-nupkgs.py} $out/lib > $out/share/licenses + ''; - meta.description = description; -} (removeAttrs args [ "name" "description" "deps" ])) + meta.description = description; + } + ( + removeAttrs args [ + "name" + "description" + "deps" + ] + ) +) diff --git a/pkgs/build-support/dotnet/nuget-to-nix/default.nix b/pkgs/build-support/dotnet/nuget-to-nix/default.nix index 3fdda4a..5a6609a 100644 --- a/pkgs/build-support/dotnet/nuget-to-nix/default.nix +++ b/pkgs/build-support/dotnet/nuget-to-nix/default.nix @@ -1,35 +1,38 @@ -{ lib -, runCommandLocal -, runtimeShell -, substituteAll -, nix -, coreutils -, jq -, yq -, curl -, gnugrep -, gawk -, dotnet-sdk +{ + lib, + runCommandLocal, + runtimeShell, + substituteAll, + nix, + coreutils, + jq, + yq, + curl, + gnugrep, + gawk, + dotnet-sdk, }: -runCommandLocal "nuget-to-nix" { - script = substituteAll { - src = ./nuget-to-nix.sh; - inherit runtimeShell; +runCommandLocal "nuget-to-nix" + { + script = substituteAll { + src = ./nuget-to-nix.sh; + inherit runtimeShell; - binPath = lib.makeBinPath [ - nix - coreutils - jq - yq - curl - gnugrep - gawk - dotnet-sdk - ]; - }; + binPath = lib.makeBinPath [ + nix + coreutils + jq + yq + curl + gnugrep + gawk + dotnet-sdk + ]; + }; - meta.description = "Convert a nuget packages directory to a lockfile for buildDotnetModule"; -} '' - install -Dm755 $script $out/bin/nuget-to-nix -'' + meta.description = "Convert a nuget packages directory to a lockfile for buildDotnetModule"; + } + '' + install -Dm755 $script $out/bin/nuget-to-nix + '' diff --git a/pkgs/build-support/emacs/buffer.nix b/pkgs/build-support/emacs/buffer.nix index 48a7996..c91fd03 100644 --- a/pkgs/build-support/emacs/buffer.nix +++ b/pkgs/build-support/emacs/buffer.nix @@ -1,13 +1,22 @@ # Functions to build elisp files to locally configure emcas buffers. # See https://github.com/shlevy/nix-buffer -{ lib, writeText, inherit-local }: +{ + lib, + writeText, + inherit-local, +}: rec { - withPackages = pkgs': let + withPackages = + pkgs': + let pkgs = builtins.filter (x: x != null) pkgs'; - extras = map (x: x.emacsBufferSetup pkgs) (builtins.filter (builtins.hasAttr "emacsBufferSetup") pkgs); - in writeText "dir-locals.el" '' + extras = map (x: x.emacsBufferSetup pkgs) ( + builtins.filter (builtins.hasAttr "emacsBufferSetup") pkgs + ); + in + writeText "dir-locals.el" '' (require 'inherit-local "${inherit-local}/share/emacs/site-lisp/elpa/inherit-local-${inherit-local.version}/inherit-local.elc") ; Only set up nixpkgs buffer handling when we have some buffers active @@ -43,7 +52,9 @@ rec { ; setenv modifies in place, so copy the environment first (setq process-environment (copy-tree process-environment)) (setenv "PATH" (concat "${lib.makeSearchPath "bin" pkgs}:" (getenv "PATH"))) - (inherit-local-permanent exec-path (append '(${builtins.concatStringsSep " " (map (p: "\"${p}/bin\"") pkgs)}) exec-path)) + (inherit-local-permanent exec-path (append '(${ + builtins.concatStringsSep " " (map (p: "\"${p}/bin\"") pkgs) + }) exec-path)) (inherit-local-permanent eshell-path-env (concat "${lib.makeSearchPath "bin" pkgs}:" (if (boundp 'eshell-path-env) eshell-path-env (getenv "PATH")))) @@ -54,24 +65,28 @@ rec { ''; # nix-buffer function for a project with a bunch of haskell packages # in one directory - haskellMonoRepo = { project-root # The monorepo root - , haskellPackages # The composed haskell packages set that contains all of the packages - }: { root }: - let # The haskell paths. - haskell-paths = lib.filesystem.haskellPathsInDir project-root; - # Find the haskell package that the 'root' is in, if any. - haskell-path-parent = - let filtered = builtins.filter (name: - lib.hasPrefix (toString (project-root + "/${name}")) (toString root) + haskellMonoRepo = + { + project-root, # The monorepo root + haskellPackages, # The composed haskell packages set that contains all of the packages + }: + { root }: + let + # The haskell paths. + haskell-paths = lib.filesystem.haskellPathsInDir project-root; + # Find the haskell package that the 'root' is in, if any. + haskell-path-parent = + let + filtered = builtins.filter ( + name: lib.hasPrefix (toString (project-root + "/${name}")) (toString root) ) (builtins.attrNames haskell-paths); - in - if filtered == [] then null else builtins.head filtered; - # We're in the directory of a haskell package - is-haskell-package = haskell-path-parent != null; - haskell-package = haskellPackages.${haskell-path-parent}; - # GHC environment with all needed deps for the haskell package - haskell-package-env = - builtins.head haskell-package.env.nativeBuildInputs; + in + if filtered == [ ] then null else builtins.head filtered; + # We're in the directory of a haskell package + is-haskell-package = haskell-path-parent != null; + haskell-package = haskellPackages.${haskell-path-parent}; + # GHC environment with all needed deps for the haskell package + haskell-package-env = builtins.head haskell-package.env.nativeBuildInputs; in - lib.optionalAttrs is-haskell-package (withPackages [ haskell-package-env ]); + lib.optionalAttrs is-haskell-package (withPackages [ haskell-package-env ]); } diff --git a/pkgs/build-support/emacs/elpa.nix b/pkgs/build-support/emacs/elpa.nix index a43578f..d969ae9 100644 --- a/pkgs/build-support/emacs/elpa.nix +++ b/pkgs/build-support/emacs/elpa.nix @@ -1,37 +1,60 @@ # builder for Emacs packages built for packages.el -{ lib, stdenv, emacs, texinfo, writeText, gcc }: +{ + lib, + stdenv, + emacs, + texinfo, + writeText, + gcc, +}: let - handledArgs = [ "files" "fileSpecs" "meta" ]; - genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; }; + handledArgs = [ + "files" + "fileSpecs" + "meta" + ]; + genericBuild = import ./generic.nix { + inherit + lib + stdenv + emacs + texinfo + writeText + gcc + ; + }; in -{ pname -, version -, src -, meta ? {} -, ... +{ + pname, + version, + src, + meta ? { }, + ... }@args: -genericBuild ({ +genericBuild ( + { - dontUnpack = true; + dontUnpack = true; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - emacs --batch -Q -l ${./elpa2nix.el} \ - -f elpa2nix-install-package \ - "$src" "$out/share/emacs/site-lisp/elpa" + emacs --batch -Q -l ${./elpa2nix.el} \ + -f elpa2nix-install-package \ + "$src" "$out/share/emacs/site-lisp/elpa" - runHook postInstall - ''; + runHook postInstall + ''; - meta = { - homepage = args.src.meta.homepage or "https://elpa.gnu.org/packages/${pname}.html"; - } // meta; -} + meta = { + homepage = args.src.meta.homepage or "https://elpa.gnu.org/packages/${pname}.html"; + } // meta; + } -// removeAttrs args handledArgs) + // removeAttrs args handledArgs +) diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix index bdf1cd4..fcd1a7e 100644 --- a/pkgs/build-support/emacs/generic.nix +++ b/pkgs/build-support/emacs/generic.nix @@ -1,10 +1,22 @@ # generic builder for Emacs packages -{ lib, stdenv, emacs, texinfo, writeText, gcc, ... }: +{ + lib, + stdenv, + emacs, + texinfo, + writeText, + gcc, + ... +}: let inherit (lib) optionalAttrs getLib; - handledArgs = [ "buildInputs" "packageRequires" "meta" ]; + handledArgs = [ + "buildInputs" + "packageRequires" + "meta" + ]; setupHook = writeText "setup-hook.sh" '' source ${./emacs-funcs.sh} @@ -22,69 +34,79 @@ let in -{ pname -, version -, buildInputs ? [] -, packageRequires ? [] -, meta ? {} -, ... +{ + pname, + version, + buildInputs ? [ ], + packageRequires ? [ ], + meta ? { }, + ... }@args: -stdenv.mkDerivation (finalAttrs: ({ - name = "emacs-${pname}-${finalAttrs.version}"; +stdenv.mkDerivation ( + finalAttrs: + ( + { + name = "emacs-${pname}-${finalAttrs.version}"; - unpackCmd = '' - case "$curSrc" in - *.el) - # keep original source filename without the hash - local filename=$(basename "$curSrc") - filename="''${filename:33}" - cp $curSrc $filename - chmod +w $filename - sourceRoot="." - ;; - *) - _defaultUnpack "$curSrc" - ;; - esac - ''; + unpackCmd = '' + case "$curSrc" in + *.el) + # keep original source filename without the hash + local filename=$(basename "$curSrc") + filename="''${filename:33}" + cp $curSrc $filename + chmod +w $filename + sourceRoot="." + ;; + *) + _defaultUnpack "$curSrc" + ;; + esac + ''; - buildInputs = [emacs texinfo] ++ packageRequires ++ buildInputs; - propagatedBuildInputs = packageRequires; - propagatedUserEnvPkgs = packageRequires; + buildInputs = [ + emacs + texinfo + ] ++ packageRequires ++ buildInputs; + propagatedBuildInputs = packageRequires; + propagatedUserEnvPkgs = packageRequires; - inherit setupHook; + inherit setupHook; - doCheck = false; + doCheck = false; - meta = { - broken = false; - platforms = emacs.meta.platforms; - } // optionalAttrs ((args.src.meta.homepage or "") != "") { - homepage = args.src.meta.homepage; - } // meta; -} + meta = + { + broken = false; + platforms = emacs.meta.platforms; + } + // optionalAttrs ((args.src.meta.homepage or "") != "") { homepage = args.src.meta.homepage; } + // meta; + } -// optionalAttrs (emacs.withNativeCompilation or false) { + // optionalAttrs (emacs.withNativeCompilation or false) { - LIBRARY_PATH = "${getLib stdenv.cc.libc}/lib"; + LIBRARY_PATH = "${getLib stdenv.cc.libc}/lib"; - nativeBuildInputs = [ gcc ]; + nativeBuildInputs = [ gcc ]; - addEmacsNativeLoadPath = true; + addEmacsNativeLoadPath = true; - postInstall = '' - # Besides adding the output directory to the native load path, make sure - # the current package's elisp files are in the load path, otherwise - # (require 'file-b) from file-a.el in the same package will fail. - mkdir -p $out/share/emacs/native-lisp - source ${./emacs-funcs.sh} - addEmacsVars "$out" + postInstall = '' + # Besides adding the output directory to the native load path, make sure + # the current package's elisp files are in the load path, otherwise + # (require 'file-b) from file-a.el in the same package will fail. + mkdir -p $out/share/emacs/native-lisp + source ${./emacs-funcs.sh} + addEmacsVars "$out" - find $out/share/emacs -type f -name '*.el' -print0 \ - | xargs -0 -I {} -n 1 -P $NIX_BUILD_CORES sh -c \ - "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true" - ''; -} + find $out/share/emacs -type f -name '*.el' -print0 \ + | xargs -0 -I {} -n 1 -P $NIX_BUILD_CORES sh -c \ + "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true" + ''; + } -// removeAttrs args handledArgs)) + // removeAttrs args handledArgs + ) +) diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix index 323c6e6..79f5a72 100644 --- a/pkgs/build-support/emacs/melpa.nix +++ b/pkgs/build-support/emacs/melpa.nix @@ -1,10 +1,27 @@ # builder for Emacs packages built for packages.el # using MELPA package-build.el -{ lib, stdenv, fetchFromGitHub, emacs, texinfo, writeText, gcc }: +{ + lib, + stdenv, + fetchFromGitHub, + emacs, + texinfo, + writeText, + gcc, +}: let - genericBuild = import ./generic.nix { inherit lib stdenv emacs texinfo writeText gcc; }; + genericBuild = import ./generic.nix { + inherit + lib + stdenv + emacs + texinfo + writeText + gcc + ; + }; packageBuild = stdenv.mkDerivation { name = "package-build"; @@ -28,82 +45,80 @@ let in -{ /* +{ + /* pname: Nix package name without special symbols and without version or "emacs-" prefix. */ - pname - /* - ename: Original Emacs package name, possibly containing special symbols. - */ -, ename ? null -, version -, recipe -, meta ? {} -, ... + pname, + # ename: Original Emacs package name, possibly containing special symbols. + ename ? null, + version, + recipe, + meta ? { }, + ... }@args: -genericBuild ({ +genericBuild ( + { - ename = - if ename == null - then pname - else ename; + ename = if ename == null then pname else ename; - elpa2nix = ./elpa2nix.el; - melpa2nix = ./melpa2nix.el; + elpa2nix = ./elpa2nix.el; + melpa2nix = ./melpa2nix.el; - inherit packageBuild; + inherit packageBuild; - preUnpack = '' - mkdir -p "$NIX_BUILD_TOP/recipes" - if [ -n "$recipe" ]; then - cp "$recipe" "$NIX_BUILD_TOP/recipes/$ename" - fi + preUnpack = '' + mkdir -p "$NIX_BUILD_TOP/recipes" + if [ -n "$recipe" ]; then + cp "$recipe" "$NIX_BUILD_TOP/recipes/$ename" + fi - ln -s "$packageBuild" "$NIX_BUILD_TOP/package-build" + ln -s "$packageBuild" "$NIX_BUILD_TOP/package-build" - mkdir -p "$NIX_BUILD_TOP/packages" - ''; - - postUnpack = '' - mkdir -p "$NIX_BUILD_TOP/working" - ln -s "$NIX_BUILD_TOP/$sourceRoot" "$NIX_BUILD_TOP/working/$ename" - ''; - - buildPhase = '' - runHook preBuild - - cd "$NIX_BUILD_TOP" - - emacs --batch -Q \ - -L "$NIX_BUILD_TOP/package-build" \ - -l "$melpa2nix" \ - -f melpa2nix-build-package \ - $ename $version $commit - - runHook postBuild + mkdir -p "$NIX_BUILD_TOP/packages" ''; - installPhase = '' - runHook preInstall + postUnpack = '' + mkdir -p "$NIX_BUILD_TOP/working" + ln -s "$NIX_BUILD_TOP/$sourceRoot" "$NIX_BUILD_TOP/working/$ename" + ''; - archive="$NIX_BUILD_TOP/packages/$ename-$version.el" - if [ ! -f "$archive" ]; then - archive="$NIX_BUILD_TOP/packages/$ename-$version.tar" - fi + buildPhase = '' + runHook preBuild - emacs --batch -Q \ - -l "$elpa2nix" \ - -f elpa2nix-install-package \ - "$archive" "$out/share/emacs/site-lisp/elpa" + cd "$NIX_BUILD_TOP" - runHook postInstall - ''; + emacs --batch -Q \ + -L "$NIX_BUILD_TOP/package-build" \ + -l "$melpa2nix" \ + -f melpa2nix-build-package \ + $ename $version $commit - meta = { - homepage = args.src.meta.homepage or "https://melpa.org/#/${pname}"; - } // meta; -} + runHook postBuild + ''; -// removeAttrs args [ "meta" ]) + installPhase = '' + runHook preInstall + + archive="$NIX_BUILD_TOP/packages/$ename-$version.el" + if [ ! -f "$archive" ]; then + archive="$NIX_BUILD_TOP/packages/$ename-$version.tar" + fi + + emacs --batch -Q \ + -l "$elpa2nix" \ + -f elpa2nix-install-package \ + "$archive" "$out/share/emacs/site-lisp/elpa" + + runHook postInstall + ''; + + meta = { + homepage = args.src.meta.homepage or "https://melpa.org/#/${pname}"; + } // meta; + } + + // removeAttrs args [ "meta" ] +) diff --git a/pkgs/build-support/emacs/trivial.nix b/pkgs/build-support/emacs/trivial.nix index 11c28c0..5dbe65c 100644 --- a/pkgs/build-support/emacs/trivial.nix +++ b/pkgs/build-support/emacs/trivial.nix @@ -4,25 +4,27 @@ args: -callPackage ./generic.nix envargs ({ - buildPhase = '' - runHook preBuild +callPackage ./generic.nix envargs ( + { + buildPhase = '' + runHook preBuild - emacs -L . --batch -f batch-byte-compile *.el + emacs -L . --batch -f batch-byte-compile *.el - runHook postBuild - ''; + runHook postBuild + ''; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - LISPDIR=$out/share/emacs/site-lisp - install -d $LISPDIR - install *.el *.elc $LISPDIR - emacs --batch -l package --eval "(package-generate-autoloads \"${args.pname}\" \"$LISPDIR\")" + LISPDIR=$out/share/emacs/site-lisp + install -d $LISPDIR + install *.el *.elc $LISPDIR + emacs --batch -l package --eval "(package-generate-autoloads \"${args.pname}\" \"$LISPDIR\")" - runHook postInstall - ''; -} + runHook postInstall + ''; + } -// args) + // args +) diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix index 59a6942..6c26511 100644 --- a/pkgs/build-support/emacs/wrapper.nix +++ b/pkgs/build-support/emacs/wrapper.nix @@ -1,38 +1,42 @@ /* + # Usage -# Usage + `emacs.pkgs.withPackages` takes a single argument: a function from a package + set to a list of packages (the packages that will be available in + Emacs). For example, + ``` + emacs.pkgs.withPackages (epkgs: [ epkgs.evil epkgs.magit ]) + ``` + All the packages in the list should come from the provided package + set. It is possible to add any package to the list, but the provided + set is guaranteed to have consistent dependencies and be built with + the correct version of Emacs. -`emacs.pkgs.withPackages` takes a single argument: a function from a package -set to a list of packages (the packages that will be available in -Emacs). For example, -``` -emacs.pkgs.withPackages (epkgs: [ epkgs.evil epkgs.magit ]) -``` -All the packages in the list should come from the provided package -set. It is possible to add any package to the list, but the provided -set is guaranteed to have consistent dependencies and be built with -the correct version of Emacs. - -# Overriding - -`emacs.pkgs.withPackages` inherits the package set which contains it, so the -correct way to override the provided package set is to override the -set which contains `emacs.pkgs.withPackages`. For example, to override -`emacs.pkgs.emacs.pkgs.withPackages`, -``` -let customEmacsPackages = - emacs.pkgs.overrideScope (self: super: { - # use a custom version of emacs - emacs = ...; - # use the unstable MELPA version of magit - magit = self.melpaPackages.magit; - }); -in customEmacsPackages.withPackages (epkgs: [ epkgs.evil epkgs.magit ]) -``` + # Overriding + `emacs.pkgs.withPackages` inherits the package set which contains it, so the + correct way to override the provided package set is to override the + set which contains `emacs.pkgs.withPackages`. For example, to override + `emacs.pkgs.emacs.pkgs.withPackages`, + ``` + let customEmacsPackages = + emacs.pkgs.overrideScope (self: super: { + # use a custom version of emacs + emacs = ...; + # use the unstable MELPA version of magit + magit = self.melpaPackages.magit; + }); + in customEmacsPackages.withPackages (epkgs: [ epkgs.evil epkgs.magit ]) + ``` */ -{ lib, lndir, makeBinaryWrapper, runCommand, gcc }: +{ + lib, + lndir, + makeBinaryWrapper, + runCommand, + gcc, +}: self: let inherit (self) emacs; @@ -41,149 +45,151 @@ let in packagesFun: # packages explicitly requested by the user let - explicitRequires = - if lib.isFunction packagesFun - then packagesFun self - else packagesFun; + explicitRequires = if lib.isFunction packagesFun then packagesFun self else packagesFun; in -runCommand - (lib.appendToName "with-packages" emacs).name +runCommand (lib.appendToName "with-packages" emacs).name { inherit emacs explicitRequires; - nativeBuildInputs = [ emacs lndir makeBinaryWrapper ]; + nativeBuildInputs = [ + emacs + lndir + makeBinaryWrapper + ]; preferLocalBuild = true; allowSubstitutes = false; # Store all paths we want to add to emacs here, so that we only need to add # one path to the load lists - deps = runCommand "emacs-packages-deps" - ({ - inherit explicitRequires lndir emacs; - nativeBuildInputs = lib.optional withNativeCompilation gcc; - } // lib.optionalAttrs withNativeCompilation { - inherit (emacs) LIBRARY_PATH; - }) - '' - findInputsOld() { - local pkg="$1"; shift - local var="$1"; shift - local propagatedBuildInputsFiles=("$@") + deps = + runCommand "emacs-packages-deps" + ( + { + inherit explicitRequires lndir emacs; + nativeBuildInputs = lib.optional withNativeCompilation gcc; + } + // lib.optionalAttrs withNativeCompilation { inherit (emacs) LIBRARY_PATH; } + ) + '' + findInputsOld() { + local pkg="$1"; shift + local var="$1"; shift + local propagatedBuildInputsFiles=("$@") - # TODO(@Ericson2314): Restore using associative array once Darwin - # nix-shell doesn't use impure bash. This should replace the O(n) - # case with an O(1) hash map lookup, assuming bash is implemented - # well :D. - local varSlice="$var[*]" - # ''${..-} to hack around old bash empty array problem - case "''${!varSlice-}" in - *" $pkg "*) return 0 ;; - esac - unset -v varSlice + # TODO(@Ericson2314): Restore using associative array once Darwin + # nix-shell doesn't use impure bash. This should replace the O(n) + # case with an O(1) hash map lookup, assuming bash is implemented + # well :D. + local varSlice="$var[*]" + # ''${..-} to hack around old bash empty array problem + case "''${!varSlice-}" in + *" $pkg "*) return 0 ;; + esac + unset -v varSlice - eval "$var"'+=("$pkg")' + eval "$var"'+=("$pkg")' - if ! [ -e "$pkg" ]; then - echo "build input $pkg does not exist" >&2 - exit 1 - fi + if ! [ -e "$pkg" ]; then + echo "build input $pkg does not exist" >&2 + exit 1 + fi - local file - for file in "''${propagatedBuildInputsFiles[@]}"; do - file="$pkg/nix-support/$file" - [[ -f "$file" ]] || continue + local file + for file in "''${propagatedBuildInputsFiles[@]}"; do + file="$pkg/nix-support/$file" + [[ -f "$file" ]] || continue - local pkgNext - for pkgNext in $(< "$file"); do - findInputsOld "$pkgNext" "$var" "''${propagatedBuildInputsFiles[@]}" - done - done - } - mkdir -p $out/bin - mkdir -p $out/share/emacs/site-lisp - ${lib.optionalString withNativeCompilation '' - mkdir -p $out/share/emacs/native-lisp - ''} - ${lib.optionalString withTreeSitter '' - mkdir -p $out/lib - ''} - - local requires - for pkg in $explicitRequires; do - findInputsOld $pkg requires propagated-user-env-packages - done - # requires now holds all requested packages and their transitive dependencies - - linkPath() { - local pkg=$1 - local origin_path=$2 - local dest_path=$3 - - # Add the path to the search path list, but only if it exists - if [[ -d "$pkg/$origin_path" ]]; then - $lndir/bin/lndir -silent "$pkg/$origin_path" "$out/$dest_path" - fi - } - - linkEmacsPackage() { - linkPath "$1" "bin" "bin" - linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp" + local pkgNext + for pkgNext in $(< "$file"); do + findInputsOld "$pkgNext" "$var" "''${propagatedBuildInputsFiles[@]}" + done + done + } + mkdir -p $out/bin + mkdir -p $out/share/emacs/site-lisp ${lib.optionalString withNativeCompilation '' - linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp" + mkdir -p $out/share/emacs/native-lisp ''} ${lib.optionalString withTreeSitter '' - linkPath "$1" "lib" "lib" + mkdir -p $out/lib ''} - } - # Iterate over the array of inputs (avoiding nix's own interpolation) - for pkg in "''${requires[@]}"; do - linkEmacsPackage $pkg - done + local requires + for pkg in $explicitRequires; do + findInputsOld $pkg requires propagated-user-env-packages + done + # requires now holds all requested packages and their transitive dependencies - siteStart="$out/share/emacs/site-lisp/site-start.el" - siteStartByteCompiled="$siteStart"c - subdirs="$out/share/emacs/site-lisp/subdirs.el" - subdirsByteCompiled="$subdirs"c + linkPath() { + local pkg=$1 + local origin_path=$2 + local dest_path=$3 - # A dependency may have brought the original siteStart or subdirs, delete - # it and create our own - # Begin the new site-start.el by loading the original, which sets some - # NixOS-specific paths. Paths are searched in the reverse of the order - # they are specified in, so user and system profile paths are searched last. - # - # NOTE: Avoid displaying messages early at startup by binding - # inhibit-message to t. This would prevent the Emacs GUI from showing up - # prematurely. The messages would still be logged to the *Messages* - # buffer. - rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled - cat >"$siteStart" < "$subdirs" + linkEmacsPackage() { + linkPath "$1" "bin" "bin" + linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp" + ${lib.optionalString withNativeCompilation '' + linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp" + ''} + ${lib.optionalString withTreeSitter '' + linkPath "$1" "lib" "lib" + ''} + } - # Byte-compiling improves start-up time only slightly, but costs nothing. - $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs" + # Iterate over the array of inputs (avoiding nix's own interpolation) + for pkg in "''${requires[@]}"; do + linkEmacsPackage $pkg + done - ${lib.optionalString withNativeCompilation '' - $emacs/bin/emacs --batch \ - --eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \ - -f batch-native-compile "$siteStart" "$subdirs" - ''} - ''; + siteStart="$out/share/emacs/site-lisp/site-start.el" + siteStartByteCompiled="$siteStart"c + subdirs="$out/share/emacs/site-lisp/subdirs.el" + subdirsByteCompiled="$subdirs"c + + # A dependency may have brought the original siteStart or subdirs, delete + # it and create our own + # Begin the new site-start.el by loading the original, which sets some + # NixOS-specific paths. Paths are searched in the reverse of the order + # they are specified in, so user and system profile paths are searched last. + # + # NOTE: Avoid displaying messages early at startup by binding + # inhibit-message to t. This would prevent the Emacs GUI from showing up + # prematurely. The messages would still be logged to the *Messages* + # buffer. + rm -f $siteStart $siteStartByteCompiled $subdirs $subdirsByteCompiled + cat >"$siteStart" < "$subdirs" + + # Byte-compiling improves start-up time only slightly, but costs nothing. + $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs" + + ${lib.optionalString withNativeCompilation '' + $emacs/bin/emacs --batch \ + --eval "(add-to-list 'native-comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \ + -f batch-native-compile "$siteStart" "$subdirs" + ''} + ''; inherit (emacs) meta; } diff --git a/pkgs/build-support/fake-nss/default.nix b/pkgs/build-support/fake-nss/default.nix index 7d85ec5..346f683 100644 --- a/pkgs/build-support/fake-nss/default.nix +++ b/pkgs/build-support/fake-nss/default.nix @@ -2,13 +2,22 @@ # Useful when packaging binaries that insist on using nss to look up # username/groups (like nginx). # /bin/sh is fine to not exist, and provided by another shim. -{ lib, symlinkJoin, writeTextDir, runCommand, extraPasswdLines ? [], extraGroupLines ? [] }: +{ + lib, + symlinkJoin, + writeTextDir, + runCommand, + extraPasswdLines ? [ ], + extraGroupLines ? [ ], +}: symlinkJoin { name = "fake-nss"; paths = [ (writeTextDir "etc/passwd" '' root:x:0:0:root user:/var/empty:/bin/sh - ${lib.concatStrings (map (line: line + "\n") extraPasswdLines)}nobody:x:65534:65534:nobody:/var/empty:/bin/sh + ${ + lib.concatStrings (map (line: line + "\n") extraPasswdLines) + }nobody:x:65534:65534:nobody:/var/empty:/bin/sh '') (writeTextDir "etc/group" '' root:x:0: diff --git a/pkgs/build-support/fetch9front/default.nix b/pkgs/build-support/fetch9front/default.nix index 677fee1..1ddc5eb 100644 --- a/pkgs/build-support/fetch9front/default.nix +++ b/pkgs/build-support/fetch9front/default.nix @@ -1,35 +1,57 @@ -{ fetchgit, fetchzip, lib }: +{ + fetchgit, + fetchzip, + lib, +}: lib.makeOverridable ( - { owner - , repo - , rev - , domain ? "git.9front.org" - , name ? "source" - , leaveDotGit ? false - , deepClone ? false - , ... # For hash agility - } @ args: + { + owner, + repo, + rev, + domain ? "git.9front.org", + name ? "source", + leaveDotGit ? false, + deepClone ? false, + ... # For hash agility + }@args: let - passthruAttrs = removeAttrs args [ "domain" "owner" "repo" "rev" "leaveDotGit" "deepClone" ]; + passthruAttrs = removeAttrs args [ + "domain" + "owner" + "repo" + "rev" + "leaveDotGit" + "deepClone" + ]; useFetchGit = leaveDotGit || deepClone; fetcher = if useFetchGit then fetchgit else fetchzip; gitRepoUrl = "git://${domain}/${owner}/${repo}"; - fetcherArgs = (if useFetchGit then { - # git9 does not support shallow fetches - inherit rev leaveDotGit; - url = gitRepoUrl; - } else { - url = "https://${domain}/${owner}/${repo}/${rev}/snap.tar.gz"; + fetcherArgs = + ( + if useFetchGit then + { + # git9 does not support shallow fetches + inherit rev leaveDotGit; + url = gitRepoUrl; + } + else + { + url = "https://${domain}/${owner}/${repo}/${rev}/snap.tar.gz"; - passthru = { - inherit gitRepoUrl; + passthru = { + inherit gitRepoUrl; + }; + } + ) + // passthruAttrs + // { + inherit name; }; - }) // passthruAttrs // { inherit name; }; in fetcher fetcherArgs // { inherit rev; } diff --git a/pkgs/build-support/fetchbitbucket/default.nix b/pkgs/build-support/fetchbitbucket/default.nix index 2f9103f..9e64954 100644 --- a/pkgs/build-support/fetchbitbucket/default.nix +++ b/pkgs/build-support/fetchbitbucket/default.nix @@ -1,11 +1,26 @@ { fetchzip, lib }: lib.makeOverridable ( -{ owner, repo, rev, name ? "source" -, ... # For hash agility -}@args: fetchzip ({ - inherit name; - url = "https://bitbucket.org/${owner}/${repo}/get/${rev}.tar.gz"; - meta.homepage = "https://bitbucket.org/${owner}/${repo}/"; -} // removeAttrs args [ "owner" "repo" "rev" ]) // { inherit rev; } + { + owner, + repo, + rev, + name ? "source", + ... # For hash agility + }@args: + fetchzip ( + { + inherit name; + url = "https://bitbucket.org/${owner}/${repo}/get/${rev}.tar.gz"; + meta.homepage = "https://bitbucket.org/${owner}/${repo}/"; + } + // removeAttrs args [ + "owner" + "repo" + "rev" + ] + ) + // { + inherit rev; + } ) diff --git a/pkgs/build-support/fetchbower/default.nix b/pkgs/build-support/fetchbower/default.nix index fd971d4..64d35b3 100644 --- a/pkgs/build-support/fetchbower/default.nix +++ b/pkgs/build-support/fetchbower/default.nix @@ -1,28 +1,52 @@ -{ stdenvNoCC, lib, bower2nix, cacert }: +{ + stdenvNoCC, + lib, + bower2nix, + cacert, +}: let - bowerVersion = version: + bowerVersion = + version: let components = lib.splitString "#" version; hash = lib.last components; ver = if builtins.length components == 1 then (cleanName version) else hash; - in ver; + in + ver; - cleanName = name: lib.replaceStrings ["/" ":"] ["-" "-"] name; + cleanName = + name: + lib.replaceStrings + [ + "/" + ":" + ] + [ + "-" + "-" + ] + name; - fetchbower = name: version: target: outputHash: stdenvNoCC.mkDerivation { - name = "${cleanName name}-${bowerVersion version}"; - buildCommand = '' - fetch-bower --quiet --out=$PWD/out "${name}" "${target}" "${version}" - # In some cases, the result of fetchBower is different depending - # on the output directory (e.g. if the bower package contains - # symlinks). So use a local output directory before copying to - # $out. - cp -R out $out - ''; - outputHashMode = "recursive"; - outputHashAlgo = "sha256"; - inherit outputHash; - nativeBuildInputs = [ bower2nix cacert ]; - }; + fetchbower = + name: version: target: outputHash: + stdenvNoCC.mkDerivation { + name = "${cleanName name}-${bowerVersion version}"; + buildCommand = '' + fetch-bower --quiet --out=$PWD/out "${name}" "${target}" "${version}" + # In some cases, the result of fetchBower is different depending + # on the output directory (e.g. if the bower package contains + # symlinks). So use a local output directory before copying to + # $out. + cp -R out $out + ''; + outputHashMode = "recursive"; + outputHashAlgo = "sha256"; + inherit outputHash; + nativeBuildInputs = [ + bower2nix + cacert + ]; + }; -in fetchbower +in +fetchbower diff --git a/pkgs/build-support/fetchbzr/default.nix b/pkgs/build-support/fetchbzr/default.nix index b7db9e9..576bc2a 100644 --- a/pkgs/build-support/fetchbzr/default.nix +++ b/pkgs/build-support/fetchbzr/default.nix @@ -1,5 +1,9 @@ { stdenvNoCC, breezy }: -{ url, rev, sha256 }: +{ + url, + rev, + sha256, +}: stdenvNoCC.mkDerivation { name = "bzr-export"; diff --git a/pkgs/build-support/fetchcvs/default.nix b/pkgs/build-support/fetchcvs/default.nix index 43a10c3..bd5e76c 100644 --- a/pkgs/build-support/fetchcvs/default.nix +++ b/pkgs/build-support/fetchcvs/default.nix @@ -3,20 +3,40 @@ # tag="" (get version by tag name) # If you don't specify neither one date="NOW" will be used (get latest) -{stdenvNoCC, cvs, openssh, lib}: +{ + stdenvNoCC, + cvs, + openssh, + lib, +}: lib.makeOverridable ( -{cvsRoot, module, tag ? null, date ? null, sha256}: + { + cvsRoot, + module, + tag ? null, + date ? null, + sha256, + }: -stdenvNoCC.mkDerivation { - name = "cvs-export"; - builder = ./builder.sh; - nativeBuildInputs = [cvs openssh]; + stdenvNoCC.mkDerivation { + name = "cvs-export"; + builder = ./builder.sh; + nativeBuildInputs = [ + cvs + openssh + ]; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = sha256; - inherit cvsRoot module sha256 tag date; -} + inherit + cvsRoot + module + sha256 + tag + date + ; + } ) diff --git a/pkgs/build-support/fetchdarcs/default.nix b/pkgs/build-support/fetchdarcs/default.nix index 6073efe..e48619c 100644 --- a/pkgs/build-support/fetchdarcs/default.nix +++ b/pkgs/build-support/fetchdarcs/default.nix @@ -1,21 +1,35 @@ -{stdenvNoCC, darcs, cacert, lib}: - -lib.makeOverridable ( -{ url -, rev ? null -, context ? null -, sha256 ? "" -, name ? "fetchdarcs" +{ + stdenvNoCC, + darcs, + cacert, + lib, }: -stdenvNoCC.mkDerivation { - builder = ./builder.sh; - nativeBuildInputs = [cacert darcs]; +lib.makeOverridable ( + { + url, + rev ? null, + context ? null, + sha256 ? "", + name ? "fetchdarcs", + }: - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = sha256; + stdenvNoCC.mkDerivation { + builder = ./builder.sh; + nativeBuildInputs = [ + cacert + darcs + ]; - inherit url rev context name; -} + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = sha256; + + inherit + url + rev + context + name + ; + } ) diff --git a/pkgs/build-support/fetchdebianpatch/default.nix b/pkgs/build-support/fetchdebianpatch/default.nix index 8d8076b..0f694f9 100644 --- a/pkgs/build-support/fetchdebianpatch/default.nix +++ b/pkgs/build-support/fetchdebianpatch/default.nix @@ -1,16 +1,21 @@ { lib, fetchpatch }: lib.makeOverridable ( - { pname, version, debianRevision ? null, area ? "main", - patch, name ? patch, hash }: + { + pname, + version, + debianRevision ? null, + area ? "main", + patch, + name ? patch, + hash, + }: let inherit (lib.strings) hasPrefix substring; - prefix = - substring 0 (if hasPrefix "lib" pname then 4 else 1) pname; - versionString = - if debianRevision == null then version - else "${version}-${debianRevision}"; - in fetchpatch { + prefix = substring 0 (if hasPrefix "lib" pname then 4 else 1) pname; + versionString = if debianRevision == null then version else "${version}-${debianRevision}"; + in + fetchpatch { inherit name hash; url = "https://sources.debian.org/data/${area}/${prefix}/" diff --git a/pkgs/build-support/fetchdocker/credentials.nix b/pkgs/build-support/fetchdocker/credentials.nix index f8a229c..6ee63cd 100644 --- a/pkgs/build-support/fetchdocker/credentials.nix +++ b/pkgs/build-support/fetchdocker/credentials.nix @@ -31,9 +31,6 @@ # given to the nix-build invocation to provide it with the # DOCKER_CREDENTIALS path let - pathParts = - (builtins.filter - ({prefix, path}: "DOCKER_CREDENTIALS" == prefix) - builtins.nixPath); + pathParts = (builtins.filter ({ prefix, path }: "DOCKER_CREDENTIALS" == prefix) builtins.nixPath); in - lib.optionalString (pathParts != []) ((builtins.head pathParts).path) +lib.optionalString (pathParts != [ ]) ((builtins.head pathParts).path) diff --git a/pkgs/build-support/fetchdocker/default.nix b/pkgs/build-support/fetchdocker/default.nix index ef6132b..cbf6b9a 100644 --- a/pkgs/build-support/fetchdocker/default.nix +++ b/pkgs/build-support/fetchdocker/default.nix @@ -1,25 +1,40 @@ -{ stdenv, lib, coreutils, bash, gnutar, writeText }: +{ + stdenv, + lib, + coreutils, + bash, + gnutar, + writeText, +}: let stripScheme = - builtins.replaceStrings [ "https://" "http://" ] [ "" "" ]; - stripNixStore = - s: lib.removePrefix "${builtins.storeDir}/" s; + builtins.replaceStrings + [ + "https://" + "http://" + ] + [ + "" + "" + ]; + stripNixStore = s: lib.removePrefix "${builtins.storeDir}/" s; in -{ name -, registry ? "https://registry-1.docker.io/v2/" -, repository ? "library" -, imageName -, tag -, imageLayers -, imageConfig -, image ? "${stripScheme registry}/${repository}/${imageName}:${tag}" +{ + name, + registry ? "https://registry-1.docker.io/v2/", + repository ? "library", + imageName, + tag, + imageLayers, + imageConfig, + image ? "${stripScheme registry}/${repository}/${imageName}:${tag}", }: # Make sure there are *no* slashes in the repository or container # names since we use these to make the output derivation name for the # nix-store path. -assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters repository); -assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters imageName); +assert null == lib.findFirst (c: "/" == c) null (lib.stringToCharacters repository); +assert null == lib.findFirst (c: "/" == c) null (lib.stringToCharacters imageName); let # Abuse paths to collapse possible double slashes @@ -28,31 +43,45 @@ let layers = builtins.map stripNixStore imageLayers; - manifest = - writeText "manifest.json" (builtins.toJSON [ - { Config = stripNixStore imageConfig; - Layers = layers; + manifest = writeText "manifest.json" ( + builtins.toJSON [ + { + Config = stripNixStore imageConfig; + Layers = layers; RepoTags = [ "${repoTag1}:${tag}" ]; - }]); + } + ] + ); - repositories = - writeText "repositories" (builtins.toJSON { + repositories = writeText "repositories" ( + builtins.toJSON { ${repoTag1} = { ${tag} = lib.last layers; }; - }); + } + ); - imageFileStorePaths = - writeText "imageFileStorePaths.txt" - (lib.concatStringsSep "\n" ((lib.unique imageLayers) ++ [imageConfig])); + imageFileStorePaths = writeText "imageFileStorePaths.txt" ( + lib.concatStringsSep "\n" ((lib.unique imageLayers) ++ [ imageConfig ]) + ); in stdenv.mkDerivation { - builder = ./fetchdocker-builder.sh; + builder = ./fetchdocker-builder.sh; buildInputs = [ coreutils ]; preferLocalBuild = true; - inherit name imageName repository tag; - inherit bash gnutar manifest repositories; + inherit + name + imageName + repository + tag + ; + inherit + bash + gnutar + manifest + repositories + ; inherit imageFileStorePaths; passthru = { diff --git a/pkgs/build-support/fetchdocker/fetchDockerConfig.nix b/pkgs/build-support/fetchdocker/fetchDockerConfig.nix index 9fd813b..6ff2268 100644 --- a/pkgs/build-support/fetchdocker/fetchDockerConfig.nix +++ b/pkgs/build-support/fetchdocker/fetchDockerConfig.nix @@ -1,13 +1,26 @@ -pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }: +pkgargs@{ + stdenv, + lib, + haskellPackages, + writeText, + gawk, +}: let - generic-fetcher = - import ./generic-fetcher.nix pkgargs; + generic-fetcher = import ./generic-fetcher.nix pkgargs; in -args@{ repository ? "library", imageName, tag, ... }: +args@{ + repository ? "library", + imageName, + tag, + ... +}: -generic-fetcher ({ - fetcher = "hocker-config"; - name = "${repository}_${imageName}_${tag}-config.json"; - tag = "unused"; -} // args) +generic-fetcher ( + { + fetcher = "hocker-config"; + name = "${repository}_${imageName}_${tag}-config.json"; + tag = "unused"; + } + // args +) diff --git a/pkgs/build-support/fetchdocker/fetchDockerLayer.nix b/pkgs/build-support/fetchdocker/fetchDockerLayer.nix index 869ba63..87f8f60 100644 --- a/pkgs/build-support/fetchdocker/fetchDockerLayer.nix +++ b/pkgs/build-support/fetchdocker/fetchDockerLayer.nix @@ -1,13 +1,21 @@ -pkgargs@{ stdenv, lib, haskellPackages, writeText, gawk }: +pkgargs@{ + stdenv, + lib, + haskellPackages, + writeText, + gawk, +}: let - generic-fetcher = - import ./generic-fetcher.nix pkgargs; + generic-fetcher = import ./generic-fetcher.nix pkgargs; in args@{ layerDigest, ... }: -generic-fetcher ({ - fetcher = "hocker-layer"; - name = "docker-layer-${layerDigest}.tar.gz"; - tag = "unused"; -} // args) +generic-fetcher ( + { + fetcher = "hocker-layer"; + name = "docker-layer-${layerDigest}.tar.gz"; + tag = "unused"; + } + // args +) diff --git a/pkgs/build-support/fetchdocker/generic-fetcher.nix b/pkgs/build-support/fetchdocker/generic-fetcher.nix index 95b1934..645a8fa 100644 --- a/pkgs/build-support/fetchdocker/generic-fetcher.nix +++ b/pkgs/build-support/fetchdocker/generic-fetcher.nix @@ -1,36 +1,44 @@ -{ stdenv, lib, haskellPackages, writeText, gawk }: +{ + stdenv, + lib, + haskellPackages, + writeText, + gawk, +}: let - awk = "${gawk}/bin/awk"; + awk = "${gawk}/bin/awk"; dockerCredentialsFile = import ./credentials.nix { inherit lib; }; in -{ fetcher -, name - , registry ? "https://registry-1.docker.io/v2/" - , repository ? "library" - , imageName - , sha256 - , tag ? "" - , layerDigest ? "" +{ + fetcher, + name, + registry ? "https://registry-1.docker.io/v2/", + repository ? "library", + imageName, + sha256, + tag ? "", + layerDigest ? "", }: # There must be no slashes in the repository or container names since # we use these to make the output derivation name for the nix store # path -assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters repository); -assert null == lib.findFirst (c: "/"==c) null (lib.stringToCharacters imageName); +assert null == lib.findFirst (c: "/" == c) null (lib.stringToCharacters repository); +assert null == lib.findFirst (c: "/" == c) null (lib.stringToCharacters imageName); # Only allow hocker-config and hocker-layer as fetchers for now -assert (builtins.elem fetcher ["hocker-config" "hocker-layer"]); +assert ( + builtins.elem fetcher [ + "hocker-config" + "hocker-layer" + ] +); # If layerDigest is non-empty then it must not have a 'sha256:' prefix! -assert - (if layerDigest != "" - then !lib.hasPrefix "sha256:" layerDigest - else true); +assert (if layerDigest != "" then !lib.hasPrefix "sha256:" layerDigest else true); let - layerDigestFlag = - lib.optionalString (layerDigest != "") "--layer ${layerDigest}"; + layerDigestFlag = lib.optionalString (layerDigest != "") "--layer ${layerDigest}"; in stdenv.mkDerivation { inherit name; @@ -87,7 +95,11 @@ stdenv.mkDerivation { preferLocalBuild = true; - impureEnvVars = [ "DOCKER_USER" "DOCKER_PASS" "DOCKER_TOKEN" ]; + impureEnvVars = [ + "DOCKER_USER" + "DOCKER_PASS" + "DOCKER_TOKEN" + ]; inherit registry dockerCredentialsFile; } diff --git a/pkgs/build-support/fetchfirefoxaddon/default.nix b/pkgs/build-support/fetchfirefoxaddon/default.nix index e07a6a1..f9738c9 100644 --- a/pkgs/build-support/fetchfirefoxaddon/default.nix +++ b/pkgs/build-support/fetchfirefoxaddon/default.nix @@ -1,29 +1,39 @@ -{ stdenv -, fetchurl -, jq -, strip-nondeterminism -, unzip -, writeScript -, zip +{ + stdenv, + fetchurl, + jq, + strip-nondeterminism, + unzip, + writeScript, + zip, }: -{ name -, url ? null -, sha1 ? "" -, sha256 ? "" -, sha512 ? "" -, fixedExtid ? null -, hash ? "" -, src ? "" +{ + name, + url ? null, + sha1 ? "", + sha256 ? "", + sha512 ? "", + fixedExtid ? null, + hash ? "", + src ? "", }: let extid = if fixedExtid == null then "nixos@${name}" else fixedExtid; - source = if url == null then src else - fetchurl { - url = url; - inherit sha1 sha256 sha512 hash; - }; + source = + if url == null then + src + else + fetchurl { + url = url; + inherit + sha1 + sha256 + sha512 + hash + ; + }; in stdenv.mkDerivation { inherit name; diff --git a/pkgs/build-support/fetchfirefoxaddon/tests.nix b/pkgs/build-support/fetchfirefoxaddon/tests.nix index a29f65c..809c5cf 100644 --- a/pkgs/build-support/fetchfirefoxaddon/tests.nix +++ b/pkgs/build-support/fetchfirefoxaddon/tests.nix @@ -1,4 +1,9 @@ -{ testers, fetchFirefoxAddon, fetchurl, ... }: +{ + testers, + fetchFirefoxAddon, + fetchurl, + ... +}: { simple = testers.invalidateFetcherByDrvHash fetchFirefoxAddon { diff --git a/pkgs/build-support/fetchfossil/default.nix b/pkgs/build-support/fetchfossil/default.nix index 3f3bf69..0f3a98c 100644 --- a/pkgs/build-support/fetchfossil/default.nix +++ b/pkgs/build-support/fetchfossil/default.nix @@ -1,33 +1,43 @@ -{stdenv, lib, fossil, cacert}: +{ + stdenv, + lib, + fossil, + cacert, +}: -{ name ? null -, url -, rev -, sha256 ? "" -, hash ? "" +{ + name ? null, + url, + rev, + sha256 ? "", + hash ? "", }: if hash != "" && sha256 != "" then throw "Only one of sha256 or hash can be set" else -stdenv.mkDerivation { - name = "fossil-archive" + (lib.optionalString (name != null) "-${name}"); - builder = ./builder.sh; - nativeBuildInputs = [fossil cacert]; + stdenv.mkDerivation { + name = "fossil-archive" + (lib.optionalString (name != null) "-${name}"); + builder = ./builder.sh; + nativeBuildInputs = [ + fossil + cacert + ]; - # Envvar docs are hard to find. A link for the future: - # https://www.fossil-scm.org/index.html/doc/trunk/www/env-opts.md - impureEnvVars = [ "http_proxy" ]; + # Envvar docs are hard to find. A link for the future: + # https://www.fossil-scm.org/index.html/doc/trunk/www/env-opts.md + impureEnvVars = [ "http_proxy" ]; - outputHashAlgo = if hash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != "" then - hash - else if sha256 != "" then - sha256 - else - lib.fakeSha256; + outputHashAlgo = if hash != "" then null else "sha256"; + outputHashMode = "recursive"; + outputHash = + if hash != "" then + hash + else if sha256 != "" then + sha256 + else + lib.fakeSha256; - inherit url rev; - preferLocalBuild = true; -} + inherit url rev; + preferLocalBuild = true; + } diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index 83811e8..324bb40 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -1,111 +1,147 @@ -{lib, stdenvNoCC, git, git-lfs, cacert}: let - urlToName = url: rev: let - inherit (lib) removeSuffix splitString last; - base = last (splitString ":" (baseNameOf (removeSuffix "/" url))); +{ + lib, + stdenvNoCC, + git, + git-lfs, + cacert, +}: +let + urlToName = + url: rev: + let + inherit (lib) removeSuffix splitString last; + base = last (splitString ":" (baseNameOf (removeSuffix "/" url))); - matched = builtins.match "(.*)\\.git" base; + matched = builtins.match "(.*)\\.git" base; - short = builtins.substring 0 7 rev; + short = builtins.substring 0 7 rev; - appendShort = lib.optionalString ((builtins.match "[a-f0-9]*" rev) != null) "-${short}"; - in "${if matched == null then base else builtins.head matched}${appendShort}"; + appendShort = lib.optionalString ((builtins.match "[a-f0-9]*" rev) != null) "-${short}"; + in + "${if matched == null then base else builtins.head matched}${appendShort}"; in lib.makeOverridable ( -{ url, rev ? "HEAD", sha256 ? "", hash ? "", leaveDotGit ? deepClone -, fetchSubmodules ? true, deepClone ? false -, branchName ? null -, sparseCheckout ? [] -, nonConeMode ? false -, name ? urlToName url rev -, # Shell code executed after the file has been fetched - # successfully. This can do things like check or transform the file. - postFetch ? "" -, preferLocalBuild ? true -, fetchLFS ? false -, # Shell code to build a netrc file for BASIC auth - netrcPhase ? null -, # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes) - # needed for netrcPhase - netrcImpureEnvVars ? [] -, passthru ? {} -, meta ? {} -, allowedRequisites ? null -}: + { + url, + rev ? "HEAD", + sha256 ? "", + hash ? "", + leaveDotGit ? deepClone, + fetchSubmodules ? true, + deepClone ? false, + branchName ? null, + sparseCheckout ? [ ], + nonConeMode ? false, + name ? urlToName url rev, + # Shell code executed after the file has been fetched + # successfully. This can do things like check or transform the file. + postFetch ? "", + preferLocalBuild ? true, + fetchLFS ? false, + # Shell code to build a netrc file for BASIC auth + netrcPhase ? null, + # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes) + # needed for netrcPhase + netrcImpureEnvVars ? [ ], + passthru ? { }, + meta ? { }, + allowedRequisites ? null, + }: -/* NOTE: - fetchgit has one problem: git fetch only works for refs. - This is because fetching arbitrary (maybe dangling) commits creates garbage collection risks - and checking whether a commit belongs to a ref is expensive. This may - change in the future when some caching is added to git (?) - Usually refs are either tags (refs/tags/*) or branches (refs/heads/*) - Cloning branches will make the hash check fail when there is an update. - But not all patches we want can be accessed by tags. + /* + NOTE: + fetchgit has one problem: git fetch only works for refs. + This is because fetching arbitrary (maybe dangling) commits creates garbage collection risks + and checking whether a commit belongs to a ref is expensive. This may + change in the future when some caching is added to git (?) + Usually refs are either tags (refs/tags/*) or branches (refs/heads/*) + Cloning branches will make the hash check fail when there is an update. + But not all patches we want can be accessed by tags. - The workaround is getting the last n commits so that it's likely that they - still contain the hash we want. + The workaround is getting the last n commits so that it's likely that they + still contain the hash we want. - for now : increase depth iteratively (TODO) + for now : increase depth iteratively (TODO) - real fix: ask git folks to add a - git fetch $HASH contained in $BRANCH - facility because checking that $HASH is contained in $BRANCH is less - expensive than fetching --depth $N. - Even if git folks implemented this feature soon it may take years until - server admins start using the new version? -*/ + real fix: ask git folks to add a + git fetch $HASH contained in $BRANCH + facility because checking that $HASH is contained in $BRANCH is less + expensive than fetching --depth $N. + Even if git folks implemented this feature soon it may take years until + server admins start using the new version? + */ -assert deepClone -> leaveDotGit; -assert nonConeMode -> (sparseCheckout != []); + assert deepClone -> leaveDotGit; + assert nonConeMode -> (sparseCheckout != [ ]); -if hash != "" && sha256 != "" then - throw "Only one of sha256 or hash can be set" -else if builtins.isString sparseCheckout then - # Changed to throw on 2023-06-04 - throw "Please provide directories/patterns for sparse checkout as a list of strings. Passing a (multi-line) string is not supported any more." -else -stdenvNoCC.mkDerivation { - inherit name; - builder = ./builder.sh; - fetcher = ./nix-prefetch-git; - - nativeBuildInputs = [ git ] - ++ lib.optionals fetchLFS [ git-lfs ]; - - outputHashAlgo = if hash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != "" then - hash - else if sha256 != "" then - sha256 + if hash != "" && sha256 != "" then + throw "Only one of sha256 or hash can be set" + else if builtins.isString sparseCheckout then + # Changed to throw on 2023-06-04 + throw + "Please provide directories/patterns for sparse checkout as a list of strings. Passing a (multi-line) string is not supported any more." else - lib.fakeSha256; + stdenvNoCC.mkDerivation { + inherit name; + builder = ./builder.sh; + fetcher = ./nix-prefetch-git; - # git-sparse-checkout(1) says: - # > When the --stdin option is provided, the directories or patterns are read - # > from standard in as a newline-delimited list instead of from the arguments. - sparseCheckout = builtins.concatStringsSep "\n" sparseCheckout; + nativeBuildInputs = [ git ] ++ lib.optionals fetchLFS [ git-lfs ]; - inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName nonConeMode postFetch; + outputHashAlgo = if hash != "" then null else "sha256"; + outputHashMode = "recursive"; + outputHash = + if hash != "" then + hash + else if sha256 != "" then + sha256 + else + lib.fakeSha256; - postHook = if netrcPhase == null then null else '' - ${netrcPhase} - # required that git uses the netrc file - mv {,.}netrc - export NETRC=$PWD/.netrc - export HOME=$PWD - ''; + # git-sparse-checkout(1) says: + # > When the --stdin option is provided, the directories or patterns are read + # > from standard in as a newline-delimited list instead of from the arguments. + sparseCheckout = builtins.concatStringsSep "\n" sparseCheckout; - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + inherit + url + rev + leaveDotGit + fetchLFS + fetchSubmodules + deepClone + branchName + nonConeMode + postFetch + ; - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ netrcImpureEnvVars ++ [ - "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER" - ]; + postHook = + if netrcPhase == null then + null + else + '' + ${netrcPhase} + # required that git uses the netrc file + mv {,.}netrc + export NETRC=$PWD/.netrc + export HOME=$PWD + ''; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - inherit preferLocalBuild meta allowedRequisites; + impureEnvVars = + lib.fetchers.proxyImpureEnvVars + ++ netrcImpureEnvVars + ++ [ + "GIT_PROXY_COMMAND" + "NIX_GIT_SSL_CAINFO" + "SOCKS_SERVER" + ]; - passthru = passthru // { - gitRepoUrl = url; - }; -} + inherit preferLocalBuild meta allowedRequisites; + + passthru = passthru // { + gitRepoUrl = url; + }; + } ) diff --git a/pkgs/build-support/fetchgit/tests.nix b/pkgs/build-support/fetchgit/tests.nix index 23e5fa2..1dfc2e6 100644 --- a/pkgs/build-support/fetchgit/tests.nix +++ b/pkgs/build-support/fetchgit/tests.nix @@ -1,4 +1,5 @@ -{ testers, fetchgit, ... }: { +{ testers, fetchgit, ... }: +{ simple = testers.invalidateFetcherByDrvHash fetchgit { name = "simple-nix-source"; url = "https://github.com/NixOS/nix"; diff --git a/pkgs/build-support/fetchgitea/default.nix b/pkgs/build-support/fetchgitea/default.nix index 513ceba..a7910b6 100644 --- a/pkgs/build-support/fetchgitea/default.nix +++ b/pkgs/build-support/fetchgitea/default.nix @@ -3,7 +3,7 @@ { lib, fetchFromGitHub }: lib.makeOverridable ( -{ domain, ... }@args: + { domain, ... }@args: -fetchFromGitHub ((removeAttrs args [ "domain" ]) // { githubBase = domain; }) + fetchFromGitHub ((removeAttrs args [ "domain" ]) // { githubBase = domain; }) ) diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix index 66da4d6..be60b6e 100644 --- a/pkgs/build-support/fetchgithub/default.nix +++ b/pkgs/build-support/fetchgithub/default.nix @@ -1,79 +1,123 @@ -{ lib, fetchgit, fetchzip }: +{ + lib, + fetchgit, + fetchzip, +}: lib.makeOverridable ( -{ owner, repo, rev -, name ? null # Override with null to use the default value -, pname ? "source-${githubBase}-${owner}-${repo}" -, fetchSubmodules ? false, leaveDotGit ? null -, deepClone ? false, private ? false, forceFetchGit ? false -, sparseCheckout ? [] -, githubBase ? "github.com", varPrefix ? null -, passthru ? { } -, meta ? { } -, ... # For hash agility -}@args: + { + owner, + repo, + rev, + name ? null, # Override with null to use the default value + pname ? "source-${githubBase}-${owner}-${repo}", + fetchSubmodules ? false, + leaveDotGit ? null, + deepClone ? false, + private ? false, + forceFetchGit ? false, + sparseCheckout ? [ ], + githubBase ? "github.com", + varPrefix ? null, + passthru ? { }, + meta ? { }, + ... # For hash agility + }@args: -let - name = if args.name or null != null then args.name - else "${pname}-${rev}"; + let + name = if args.name or null != null then args.name else "${pname}-${rev}"; - position = (if args.meta.description or null != null - then builtins.unsafeGetAttrPos "description" args.meta - else builtins.unsafeGetAttrPos "rev" args - ); - baseUrl = "https://${githubBase}/${owner}/${repo}"; - newPassthru = passthru // { - inherit rev owner repo; - }; - newMeta = meta // { - homepage = meta.homepage or baseUrl; - } // lib.optionalAttrs (position != null) { - # to indicate where derivation originates, similar to make-derivation.nix's mkDerivation - position = "${position.file}:${toString position.line}"; - }; - passthruAttrs = removeAttrs args [ "owner" "repo" "rev" "fetchSubmodules" "forceFetchGit" "private" "githubBase" "varPrefix" ]; - varBase = "NIX${lib.optionalString (varPrefix != null) "_${varPrefix}"}_GITHUB_PRIVATE_"; - useFetchGit = fetchSubmodules || (leaveDotGit == true) || deepClone || forceFetchGit || (sparseCheckout != []); - # We prefer fetchzip in cases we don't need submodules as the hash - # is more stable in that case. - fetcher = - if useFetchGit then fetchgit - # fetchzip may not be overridable when using external tools, for example nix-prefetch - else if fetchzip ? override then fetchzip.override { withUnzip = false; } - else fetchzip; - privateAttrs = lib.optionalAttrs private { - netrcPhase = '' - if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then - echo "Error: Private fetchFromGitHub requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&2 - exit 1 - fi - cat > netrc <&2 + exit 1 + fi + cat > netrc < $out + # hash of current directory + # remove trailing newline + git rev-parse $(git write-tree) \ + | tr -d '\n' > $out - mv $DOT_GIT/index-user $DOT_GIT/index # restore index - ''; + mv $DOT_GIT/index-user $DOT_GIT/index # restore index + ''; - gitHash = builtins.readFile gitHashFile; # cache against git hash + gitHash = builtins.readFile gitHashFile; # cache against git hash - nixPath = runCommand "put-in-nix" { - nativeBuildInputs = [ git ]; - preferLocalBuild = true; - } '' - mkdir $out + nixPath = + runCommand "put-in-nix" + { + nativeBuildInputs = [ git ]; + preferLocalBuild = true; + } + '' + mkdir $out - # dump tar of *current directory* at given revision - git -C ${srcStr} archive --format=tar ${gitHash} \ - | tar xf - -C $out - ''; + # dump tar of *current directory* at given revision + git -C ${srcStr} archive --format=tar ${gitHash} \ + | tar xf - -C $out + ''; -in nixPath + in + nixPath ) diff --git a/pkgs/build-support/fetchgx/default.nix b/pkgs/build-support/fetchgx/default.nix index 93f60c0..774bc86 100644 --- a/pkgs/build-support/fetchgx/default.nix +++ b/pkgs/build-support/fetchgx/default.nix @@ -1,12 +1,27 @@ -{ stdenvNoCC, gx, gx-go, go, cacert }: +{ + stdenvNoCC, + gx, + gx-go, + go, + cacert, +}: -{ name, src, sha256 }: +{ + name, + src, + sha256, +}: stdenvNoCC.mkDerivation { name = "${name}-gxdeps"; inherit src; - nativeBuildInputs = [ cacert go gx gx-go ]; + nativeBuildInputs = [ + cacert + go + gx + gx-go + ]; outputHashAlgo = "sha256"; outputHashMode = "recursive"; diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix index 6af886b..ee7dc87 100644 --- a/pkgs/build-support/fetchhg/default.nix +++ b/pkgs/build-support/fetchhg/default.nix @@ -1,34 +1,41 @@ -{ lib, stdenvNoCC, mercurial }: -{ name ? null -, url -, rev ? null -, sha256 ? null -, hash ? null -, fetchSubrepos ? false -, preferLocalBuild ? true }: +{ + lib, + stdenvNoCC, + mercurial, +}: +{ + name ? null, + url, + rev ? null, + sha256 ? null, + hash ? null, + fetchSubrepos ? false, + preferLocalBuild ? true, +}: if hash != null && sha256 != null then throw "Only one of sha256 or hash can be set" else -# TODO: statically check if mercurial as the https support if the url starts woth https. -stdenvNoCC.mkDerivation { - name = "hg-archive" + (lib.optionalString (name != null) "-${name}"); - builder = ./builder.sh; - nativeBuildInputs = [mercurial]; + # TODO: statically check if mercurial as the https support if the url starts woth https. + stdenvNoCC.mkDerivation { + name = "hg-archive" + (lib.optionalString (name != null) "-${name}"); + builder = ./builder.sh; + nativeBuildInputs = [ mercurial ]; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; + impureEnvVars = lib.fetchers.proxyImpureEnvVars; - subrepoClause = lib.optionalString fetchSubrepos "S"; + subrepoClause = lib.optionalString fetchSubrepos "S"; - outputHashAlgo = if hash != null then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != null then - hash - else if sha256 != null then - sha256 - else - lib.fakeSha256; + outputHashAlgo = if hash != null then null else "sha256"; + outputHashMode = "recursive"; + outputHash = + if hash != null then + hash + else if sha256 != null then + sha256 + else + lib.fakeSha256; - inherit url rev; - inherit preferLocalBuild; -} + inherit url rev; + inherit preferLocalBuild; + } diff --git a/pkgs/build-support/fetchipfs/default.nix b/pkgs/build-support/fetchipfs/default.nix index 0cbb094..22dff78 100644 --- a/pkgs/build-support/fetchipfs/default.nix +++ b/pkgs/build-support/fetchipfs/default.nix @@ -1,50 +1,76 @@ -{ stdenv -, curl -}: +{ stdenv, curl }: -{ ipfs -, url ? "" -, curlOpts ? "" -, outputHash ? "" -, outputHashAlgo ? "" -, md5 ? "" -, sha1 ? "" -, sha256 ? "" -, sha512 ? "" -, meta ? {} -, port ? "8080" -, postFetch ? "" -, preferLocalBuild ? true +{ + ipfs, + url ? "", + curlOpts ? "", + outputHash ? "", + outputHashAlgo ? "", + md5 ? "", + sha1 ? "", + sha256 ? "", + sha512 ? "", + meta ? { }, + port ? "8080", + postFetch ? "", + preferLocalBuild ? true, }: let - hasHash = (outputHash != "" && outputHashAlgo != "") - || md5 != "" || sha1 != "" || sha256 != "" || sha512 != ""; + hasHash = + (outputHash != "" && outputHashAlgo != "") + || md5 != "" + || sha1 != "" + || sha256 != "" + || sha512 != ""; in -if (!hasHash) then throw "Specify sha for fetchipfs fixed-output derivation" else stdenv.mkDerivation { - name = ipfs; - builder = ./builder.sh; - nativeBuildInputs = [ curl ]; +if (!hasHash) then + throw "Specify sha for fetchipfs fixed-output derivation" +else + stdenv.mkDerivation { + name = ipfs; + builder = ./builder.sh; + nativeBuildInputs = [ curl ]; - # New-style output content requirements. - outputHashAlgo = if outputHashAlgo != "" then outputHashAlgo else - if sha512 != "" then "sha512" else if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5"; - outputHash = if outputHash != "" then outputHash else - if sha512 != "" then sha512 else if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5; + # New-style output content requirements. + outputHashAlgo = + if outputHashAlgo != "" then + outputHashAlgo + else if sha512 != "" then + "sha512" + else if sha256 != "" then + "sha256" + else if sha1 != "" then + "sha1" + else + "md5"; + outputHash = + if outputHash != "" then + outputHash + else if sha512 != "" then + sha512 + else if sha256 != "" then + sha256 + else if sha1 != "" then + sha1 + else + md5; - outputHashMode = "recursive"; + outputHashMode = "recursive"; - inherit curlOpts - postFetch - ipfs - url - port - meta; + inherit + curlOpts + postFetch + ipfs + url + port + meta + ; - # Doing the download on a remote machine just duplicates network - # traffic, so don't do that. - inherit preferLocalBuild; -} + # Doing the download on a remote machine just duplicates network + # traffic, so don't do that. + inherit preferLocalBuild; + } diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix index 0f3cd4e..eca3600 100644 --- a/pkgs/build-support/fetchmavenartifact/default.nix +++ b/pkgs/build-support/fetchmavenartifact/default.nix @@ -1,6 +1,10 @@ # Adaptation of the MIT-licensed work on `sbt2nix` done by Charles O'Farrell -{ lib, fetchurl, stdenv }: +{ + lib, + fetchurl, + stdenv, +}: let defaultRepos = [ "https://repo1.maven.org/maven2" @@ -10,64 +14,80 @@ let ]; in -args@ -{ # Example: "org.apache.httpcomponents" - groupId -, # Example: "httpclient" - artifactId -, # Example: "4.3.6" - version -, # Example: "jdk11" - classifier ? null -, # List of maven repositories from where to fetch the artifact. +args@{ + # Example: "org.apache.httpcomponents" + groupId, + # Example: "httpclient" + artifactId, + # Example: "4.3.6" + version, + # Example: "jdk11" + classifier ? null, + # List of maven repositories from where to fetch the artifact. # Example: [ http://oss.sonatype.org/content/repositories/public ]. - repos ? defaultRepos + repos ? defaultRepos, # The `url` and `urls` parameters, if specified should point to the JAR # file and will take precedence over the `repos` parameter. Only one of `url` # and `urls` can be specified, not both. -, url ? "" -, urls ? [] -, # The rest of the arguments are just forwarded to `fetchurl`. + url ? "", + urls ? [ ], + # The rest of the arguments are just forwarded to `fetchurl`. ... }: # only one of url and urls can be specified at a time. -assert (url == "") || (urls == []); +assert (url == "") || (urls == [ ]); # if repos is empty, then url or urls must be specified. -assert (repos != []) || (url != "") || (urls != []); +assert (repos != [ ]) || (url != "") || (urls != [ ]); let - pname = (lib.replaceStrings [ "." ] [ "_" ] groupId) + "_" + (lib.replaceStrings [ "." ] [ "_" ] artifactId); + pname = + (lib.replaceStrings [ "." ] [ "_" ] groupId) + + "_" + + (lib.replaceStrings [ "." ] [ "_" ] artifactId); suffix = lib.optionalString (classifier != null) "-${classifier}"; filename = "${artifactId}-${version}${suffix}.jar"; - mkJarUrl = repoUrl: + mkJarUrl = + repoUrl: lib.concatStringsSep "/" [ (lib.removeSuffix "/" repoUrl) - (lib.replaceStrings ["."] ["/"] groupId) + (lib.replaceStrings [ "." ] [ "/" ] groupId) artifactId version filename ]; urls_ = - if url != "" then [url] - else if urls != [] then urls - else map mkJarUrl repos; - jar = - fetchurl ( - builtins.removeAttrs args [ "groupId" "artifactId" "version" "classifier" "repos" "url" ] - // { urls = urls_; name = "${pname}-${version}.jar"; } - ); + if url != "" then + [ url ] + else if urls != [ ] then + urls + else + map mkJarUrl repos; + jar = fetchurl ( + builtins.removeAttrs args [ + "groupId" + "artifactId" + "version" + "classifier" + "repos" + "url" + ] + // { + urls = urls_; + name = "${pname}-${version}.jar"; + } + ); in - stdenv.mkDerivation { - inherit pname version; - dontUnpack = true; - # By moving the jar to $out/share/java we make it discoverable by java - # packages packages that mention this derivation in their buildInputs. - installPhase = '' - mkdir -p $out/share/java - ln -s ${jar} $out/share/java/${filename} - ''; - # We also add a `jar` attribute that can be used to easily obtain the path - # to the downloaded jar file. - passthru.jar = jar; - } +stdenv.mkDerivation { + inherit pname version; + dontUnpack = true; + # By moving the jar to $out/share/java we make it discoverable by java + # packages packages that mention this derivation in their buildInputs. + installPhase = '' + mkdir -p $out/share/java + ln -s ${jar} $out/share/java/${filename} + ''; + # We also add a `jar` attribute that can be used to easily obtain the path + # to the downloaded jar file. + passthru.jar = jar; +} diff --git a/pkgs/build-support/fetchmtn/default.nix b/pkgs/build-support/fetchmtn/default.nix index 4aa1342..852ccc3 100644 --- a/pkgs/build-support/fetchmtn/default.nix +++ b/pkgs/build-support/fetchmtn/default.nix @@ -1,25 +1,40 @@ # You can specify some extra mirrors and a cache DB via options -{lib, stdenvNoCC, monotone, defaultDBMirrors ? [], cacheDB ? "./mtn-checkout.db"}: +{ + lib, + stdenvNoCC, + monotone, + defaultDBMirrors ? [ ], + cacheDB ? "./mtn-checkout.db", +}: # dbs is a list of strings # each is an url for sync # selector is mtn selector, like h:org.example.branch # -{name ? "mtn-checkout", dbs ? [], sha256 -, selector ? "h:" + branch, branch}: +{ + name ? "mtn-checkout", + dbs ? [ ], + sha256, + selector ? "h:" + branch, + branch, +}: stdenvNoCC.mkDerivation { builder = ./builder.sh; - nativeBuildInputs = [monotone]; + nativeBuildInputs = [ monotone ]; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = sha256; dbs = defaultDBMirrors ++ dbs; - inherit branch cacheDB name selector; + inherit + branch + cacheDB + name + selector + ; impureEnvVars = lib.fetchers.proxyImpureEnvVars; } - diff --git a/pkgs/build-support/fetchnextcloudapp/default.nix b/pkgs/build-support/fetchnextcloudapp/default.nix index 059003d..8d46d32 100644 --- a/pkgs/build-support/fetchnextcloudapp/default.nix +++ b/pkgs/build-support/fetchnextcloudapp/default.nix @@ -1,36 +1,45 @@ -{ stdenv, fetchzip, applyPatches, lib, ... }: -{ url -, hash ? "" -, sha256 ? "" -, appName ? null -, appVersion ? null -, license -, patches ? [ ] -, description ? null -, homepage ? null +{ + stdenv, + fetchzip, + applyPatches, + lib, + ... }: -applyPatches ({ - inherit patches; - src = fetchzip { - inherit url hash sha256; - postFetch = '' - pushd $out &>/dev/null - if [ ! -f ./appinfo/info.xml ]; then - echo "appinfo/info.xml doesn't exist in $out, aborting!" - exit 1 - fi - popd &>/dev/null - ''; - meta = { - license = lib.licenses.${license}; - longDescription = description; - inherit homepage; - } // lib.optionalAttrs (description != null) { - longDescription = description; - } // lib.optionalAttrs (homepage != null) { - inherit homepage; +{ + url, + hash ? "", + sha256 ? "", + appName ? null, + appVersion ? null, + license, + patches ? [ ], + description ? null, + homepage ? null, +}: +applyPatches ( + { + inherit patches; + src = fetchzip { + inherit url hash sha256; + postFetch = '' + pushd $out &>/dev/null + if [ ! -f ./appinfo/info.xml ]; then + echo "appinfo/info.xml doesn't exist in $out, aborting!" + exit 1 + fi + popd &>/dev/null + ''; + meta = + { + license = lib.licenses.${license}; + longDescription = description; + inherit homepage; + } + // lib.optionalAttrs (description != null) { longDescription = description; } + // lib.optionalAttrs (homepage != null) { inherit homepage; }; }; - }; -} // lib.optionalAttrs (appName != null && appVersion != null) { - name = "nextcloud-app-${appName}-${appVersion}"; -}) + } + // lib.optionalAttrs (appName != null && appVersion != null) { + name = "nextcloud-app-${appName}-${appVersion}"; + } +) diff --git a/pkgs/build-support/fetchpatch/default.nix b/pkgs/build-support/fetchpatch/default.nix index a3ca668..043548e 100644 --- a/pkgs/build-support/fetchpatch/default.nix +++ b/pkgs/build-support/fetchpatch/default.nix @@ -4,90 +4,113 @@ # often change with updating of git or cgit. # stripLen acts as the -p parameter when applying a patch. -{ lib, fetchurl, patchutils }: +{ + lib, + fetchurl, + patchutils, +}: -{ relative ? null -, stripLen ? 0 -, decode ? "cat" # custom command to decode patch e.g. base64 -d -, extraPrefix ? null -, excludes ? [] -, includes ? [] -, revert ? false -, postFetch ? "" -, ... +{ + relative ? null, + stripLen ? 0, + decode ? "cat", # custom command to decode patch e.g. base64 -d + extraPrefix ? null, + excludes ? [ ], + includes ? [ ], + revert ? false, + postFetch ? "", + ... }@args: let - args' = if relative != null then { - stripLen = 1 + lib.length (lib.splitString "/" relative) + stripLen; - extraPrefix = lib.optionalString (extraPrefix != null) extraPrefix; - } else { - inherit stripLen extraPrefix; - }; -in let + args' = + if relative != null then + { + stripLen = 1 + lib.length (lib.splitString "/" relative) + stripLen; + extraPrefix = lib.optionalString (extraPrefix != null) extraPrefix; + } + else + { inherit stripLen extraPrefix; }; +in +let inherit (args') stripLen extraPrefix; in -lib.throwIfNot (excludes == [] || includes == []) +lib.throwIfNot (excludes == [ ] || includes == [ ]) "fetchpatch: cannot use excludes and includes simultaneously" -fetchurl ({ - postFetch = '' - tmpfile="$TMPDIR/patch" + fetchurl + ( + { + postFetch = + '' + tmpfile="$TMPDIR/patch" - if [ ! -s "$out" ]; then - echo "error: Fetched patch file '$out' is empty!" 1>&2 - exit 1 - fi + if [ ! -s "$out" ]; then + echo "error: Fetched patch file '$out' is empty!" 1>&2 + exit 1 + fi - set +e - ${decode} < "$out" > "$tmpfile" - if [ $? -ne 0 ] || [ ! -s "$tmpfile" ]; then - echo 'Failed to decode patch with command "'${lib.escapeShellArg decode}'"' >&2 - echo 'Fetched file was (limited to 128 bytes):' >&2 - od -A x -t x1z -v -N 128 "$out" >&2 - exit 1 - fi - set -e - mv "$tmpfile" "$out" + set +e + ${decode} < "$out" > "$tmpfile" + if [ $? -ne 0 ] || [ ! -s "$tmpfile" ]; then + echo 'Failed to decode patch with command "'${lib.escapeShellArg decode}'"' >&2 + echo 'Fetched file was (limited to 128 bytes):' >&2 + od -A x -t x1z -v -N 128 "$out" >&2 + exit 1 + fi + set -e + mv "$tmpfile" "$out" - "${patchutils}/bin/lsdiff" \ - ${lib.optionalString (relative != null) "-p1 -i ${lib.escapeShellArg relative}/'*'"} \ - "$out" \ - | sort -u | sed -e 's/[*?]/\\&/g' \ - | xargs -I{} \ - "${patchutils}/bin/filterdiff" \ - --include={} \ - --strip=${toString stripLen} \ - ${lib.optionalString (extraPrefix != null) '' - --addoldprefix=a/${lib.escapeShellArg extraPrefix} \ - --addnewprefix=b/${lib.escapeShellArg extraPrefix} \ - ''} \ - --clean "$out" > "$tmpfile" + "${patchutils}/bin/lsdiff" \ + ${lib.optionalString (relative != null) "-p1 -i ${lib.escapeShellArg relative}/'*'"} \ + "$out" \ + | sort -u | sed -e 's/[*?]/\\&/g' \ + | xargs -I{} \ + "${patchutils}/bin/filterdiff" \ + --include={} \ + --strip=${toString stripLen} \ + ${ + lib.optionalString (extraPrefix != null) '' + --addoldprefix=a/${lib.escapeShellArg extraPrefix} \ + --addnewprefix=b/${lib.escapeShellArg extraPrefix} \ + '' + } \ + --clean "$out" > "$tmpfile" - if [ ! -s "$tmpfile" ]; then - echo "error: Normalized patch '$tmpfile' is empty (while the fetched file was not)!" 1>&2 - echo "Did you maybe fetch a HTML representation of a patch instead of a raw patch?" 1>&2 - echo "Fetched file was:" 1>&2 - cat "$out" 1>&2 - exit 1 - fi + if [ ! -s "$tmpfile" ]; then + echo "error: Normalized patch '$tmpfile' is empty (while the fetched file was not)!" 1>&2 + echo "Did you maybe fetch a HTML representation of a patch instead of a raw patch?" 1>&2 + echo "Fetched file was:" 1>&2 + cat "$out" 1>&2 + exit 1 + fi - ${patchutils}/bin/filterdiff \ - -p1 \ - ${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \ - ${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \ - "$tmpfile" > "$out" + ${patchutils}/bin/filterdiff \ + -p1 \ + ${builtins.toString (builtins.map (x: "-x ${lib.escapeShellArg x}") excludes)} \ + ${builtins.toString (builtins.map (x: "-i ${lib.escapeShellArg x}") includes)} \ + "$tmpfile" > "$out" - if [ ! -s "$out" ]; then - echo "error: Filtered patch '$out' is empty (while the original patch file was not)!" 1>&2 - echo "Check your includes and excludes." 1>&2 - echo "Normalized patch file was:" 1>&2 - cat "$tmpfile" 1>&2 - exit 1 - fi - '' + lib.optionalString revert '' - ${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile" - mv "$tmpfile" "$out" - '' + postFetch; -} // builtins.removeAttrs args [ - "relative" "stripLen" "decode" "extraPrefix" "excludes" "includes" "revert" - "postFetch" -]) + if [ ! -s "$out" ]; then + echo "error: Filtered patch '$out' is empty (while the original patch file was not)!" 1>&2 + echo "Check your includes and excludes." 1>&2 + echo "Normalized patch file was:" 1>&2 + cat "$tmpfile" 1>&2 + exit 1 + fi + '' + + lib.optionalString revert '' + ${patchutils}/bin/interdiff "$out" /dev/null > "$tmpfile" + mv "$tmpfile" "$out" + '' + + postFetch; + } + // builtins.removeAttrs args [ + "relative" + "stripLen" + "decode" + "extraPrefix" + "excludes" + "includes" + "revert" + "postFetch" + ] + ) diff --git a/pkgs/build-support/fetchpatch/tests.nix b/pkgs/build-support/fetchpatch/tests.nix index 0a27f1b..8795389 100644 --- a/pkgs/build-support/fetchpatch/tests.nix +++ b/pkgs/build-support/fetchpatch/tests.nix @@ -7,13 +7,21 @@ in { simple = testers.invalidateFetcherByDrvHash fetchpatch { url = "https://github.com/facebook/zstd/pull/2724/commits/e1f85dbca3a0ed5ef06c8396912a0914db8dea6a.patch"; - sha256 = if isFetchpatch2 then "sha256-01BrkHLye4KOdqCw3tv7AJzIF6578pl2fl270TJFTmw=" else "sha256-PuYAqnJWAE+L9bsroOnnBGJhERW8LHrGSLtIEkKU9vg="; + sha256 = + if isFetchpatch2 then + "sha256-01BrkHLye4KOdqCw3tv7AJzIF6578pl2fl270TJFTmw=" + else + "sha256-PuYAqnJWAE+L9bsroOnnBGJhERW8LHrGSLtIEkKU9vg="; }; relative = testers.invalidateFetcherByDrvHash fetchpatch { url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch"; relative = "include"; - sha256 = if isFetchpatch2 then "sha256-1TtmuKeNIl/Yp+sfzBMR8Ue78tPIgjqGgjasa5IN52o=" else "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4="; + sha256 = + if isFetchpatch2 then + "sha256-1TtmuKeNIl/Yp+sfzBMR8Ue78tPIgjqGgjasa5IN52o=" + else + "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4="; }; full = testers.invalidateFetcherByDrvHash fetchpatch { @@ -23,13 +31,21 @@ in extraPrefix = "foo/bar/"; excludes = [ "foo/bar/bernoulli_no_atomic_mp.cpp" ]; revert = true; - sha256 = if isFetchpatch2 then "sha256-+UKmEbr2rIAweCav/hR/7d4ZrYV84ht/domTrHtm8sM=" else "sha256-+UKmEbr2rIAweCav/hR/7d4ZrYV84ht/domTrHtm8sM="; + sha256 = + if isFetchpatch2 then + "sha256-+UKmEbr2rIAweCav/hR/7d4ZrYV84ht/domTrHtm8sM=" + else + "sha256-+UKmEbr2rIAweCav/hR/7d4ZrYV84ht/domTrHtm8sM="; }; decode = testers.invalidateFetcherByDrvHash fetchpatch { name = "gcc.patch"; url = "https://chromium.googlesource.com/aosp/platform/external/libchrome/+/f37ae3b1a873d74182a2ac31d96742ead9c1f523^!?format=TEXT"; decode = "base64 -d"; - sha256 = if isFetchpatch2 then "sha256-oMvPlmzE51ArI+EvFxONXkqmNee39106/O1ikG0Bdso=" else "sha256-SJHk8XrutqAyoIdORlhCpBCN626P+uzed7mjKz5eQYY="; + sha256 = + if isFetchpatch2 then + "sha256-oMvPlmzE51ArI+EvFxONXkqmNee39106/O1ikG0Bdso=" + else + "sha256-SJHk8XrutqAyoIdORlhCpBCN626P+uzed7mjKz5eQYY="; }; } diff --git a/pkgs/build-support/fetchpijul/default.nix b/pkgs/build-support/fetchpijul/default.nix index fd41cfa..c3adc3b 100644 --- a/pkgs/build-support/fetchpijul/default.nix +++ b/pkgs/build-support/fetchpijul/default.nix @@ -1,59 +1,70 @@ -{ lib, stdenvNoCC, pijul, cacert }: +{ + lib, + stdenvNoCC, + pijul, + cacert, +}: lib.makeOverridable ( -{ url -, hash ? "" -, change ? null -, state ? null -, channel ? "main" -, name ? "fetchpijul" -, # TODO: Changes in pijul are unordered so there's many ways to end up with the same repository state. + { + url, + hash ? "", + change ? null, + state ? null, + channel ? "main", + name ? "fetchpijul", + # TODO: Changes in pijul are unordered so there's many ways to end up with the same repository state. # This makes leaveDotPijul unfeasible to implement until pijul CLI implements # a way of reordering changes to sort them in a consistent and deterministic manner. # leaveDotPijul ? false -}: -if change != null && state != null then - throw "Only one of 'change' or 'state' can be set" -else - stdenvNoCC.mkDerivation { - inherit name; - nativeBuildInputs = [ pijul cacert ]; - strictDeps = true; + }: + if change != null && state != null then + throw "Only one of 'change' or 'state' can be set" + else + stdenvNoCC.mkDerivation { + inherit name; + nativeBuildInputs = [ + pijul + cacert + ]; + strictDeps = true; - dontUnpack = true; - dontConfigure = true; - dontBuild = true; + dontUnpack = true; + dontConfigure = true; + dontBuild = true; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - pijul clone \ - ''${change:+--change "$change"} \ - ''${state:+--state "$state"} \ - --channel "$channel" \ - "$url" \ - "$out" + pijul clone \ + ''${change:+--change "$change"} \ + ''${state:+--state "$state"} \ + --channel "$channel" \ + "$url" \ + "$out" - runHook postInstall - ''; + runHook postInstall + ''; - fixupPhase = '' - runHook preFixup + fixupPhase = '' + runHook preFixup - rm -rf "$out/.pijul" + rm -rf "$out/.pijul" - runHook postFixup - ''; + runHook postFixup + ''; - outputHashAlgo = if hash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != "" then - hash - else - lib.fakeSha256; + outputHashAlgo = if hash != "" then null else "sha256"; + outputHashMode = "recursive"; + outputHash = if hash != "" then hash else lib.fakeSha256; - inherit url change state channel; + inherit + url + change + state + channel + ; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - } + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + } ) diff --git a/pkgs/build-support/fetchpypi/default.nix b/pkgs/build-support/fetchpypi/default.nix index ebd277c..8b18047 100644 --- a/pkgs/build-support/fetchpypi/default.nix +++ b/pkgs/build-support/fetchpypi/default.nix @@ -1,28 +1,62 @@ # `fetchPypi` function for fetching artifacts from PyPI. -{ fetchurl -, makeOverridable -}: +{ fetchurl, makeOverridable }: let - computeUrl = {format ? "setuptools", ... } @attrs: let - computeWheelUrl = {pname, version, dist ? "py2.py3", python ? "py2.py3", abi ? "none", platform ? "any"}: - # Fetch a wheel. By default we fetch an universal wheel. - # See https://www.python.org/dev/peps/pep-0427/#file-name-convention for details regarding the optional arguments. - "https://files.pythonhosted.org/packages/${dist}/${builtins.substring 0 1 pname}/${pname}/${pname}-${version}-${python}-${abi}-${platform}.whl"; + computeUrl = + { + format ? "setuptools", + ... + }@attrs: + let + computeWheelUrl = + { + pname, + version, + dist ? "py2.py3", + python ? "py2.py3", + abi ? "none", + platform ? "any", + }: + # Fetch a wheel. By default we fetch an universal wheel. + # See https://www.python.org/dev/peps/pep-0427/#file-name-convention for details regarding the optional arguments. + "https://files.pythonhosted.org/packages/${dist}/${builtins.substring 0 1 pname}/${pname}/${pname}-${version}-${python}-${abi}-${platform}.whl"; - computeSourceUrl = {pname, version, extension ? "tar.gz"}: - # Fetch a source tarball. - "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${pname}-${version}.${extension}"; + computeSourceUrl = + { + pname, + version, + extension ? "tar.gz", + }: + # Fetch a source tarball. + "mirror://pypi/${builtins.substring 0 1 pname}/${pname}/${pname}-${version}.${extension}"; - compute = (if format == "wheel" then computeWheelUrl - else if format == "setuptools" then computeSourceUrl - else throw "Unsupported format ${format}"); + compute = ( + if format == "wheel" then + computeWheelUrl + else if format == "setuptools" then + computeSourceUrl + else + throw "Unsupported format ${format}" + ); - in compute (builtins.removeAttrs attrs ["format"]); + in + compute (builtins.removeAttrs attrs [ "format" ]); -in makeOverridable( {format ? "setuptools", sha256 ? "", hash ? "", ... } @attrs: +in +makeOverridable ( + { + format ? "setuptools", + sha256 ? "", + hash ? "", + ... + }@attrs: let - url = computeUrl (builtins.removeAttrs attrs ["sha256" "hash"]) ; - in fetchurl { - inherit url sha256 hash; - }) + url = computeUrl ( + builtins.removeAttrs attrs [ + "sha256" + "hash" + ] + ); + in + fetchurl { inherit url sha256 hash; } +) diff --git a/pkgs/build-support/fetchpypilegacy/default.nix b/pkgs/build-support/fetchpypilegacy/default.nix index bcd5604..7c28c60 100644 --- a/pkgs/build-support/fetchpypilegacy/default.nix +++ b/pkgs/build-support/fetchpypilegacy/default.nix @@ -1,7 +1,8 @@ # Fetch from PyPi legacy API as documented in https://warehouse.pypa.io/api-reference/legacy.html -{ runCommand -, lib -, python3 +{ + runCommand, + lib, + python3, }: { # package name @@ -21,25 +22,27 @@ let urls' = urls ++ lib.optional (url != null) url; pathParts = lib.filter ({ prefix, path }: "NETRC" == prefix) builtins.nixPath; - netrc_file = - if (pathParts != [ ]) - then (lib.head pathParts).path - else ""; + netrc_file = if (pathParts != [ ]) then (lib.head pathParts).path else ""; in # Assert that we have at least one URL -assert urls' != [ ]; runCommand file - ({ - nativeBuildInputs = [ python3 ]; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - outputHashMode = "flat"; - # if hash is empty select a default algo to let nix propose the actual hash. - outputHashAlgo = if hash == "" then "sha256" else null; - outputHash = hash; - NETRC = netrc_file; - } - // (lib.optionalAttrs (name != null) {inherit name;})) +assert urls' != [ ]; +runCommand file + ( + { + nativeBuildInputs = [ python3 ]; + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + outputHashMode = "flat"; + # if hash is empty select a default algo to let nix propose the actual hash. + outputHashAlgo = if hash == "" then "sha256" else null; + outputHash = hash; + NETRC = netrc_file; + } + // (lib.optionalAttrs (name != null) { inherit name; }) + ) '' - python ${./fetch-legacy.py} ${lib.concatStringsSep " " (map (url: "--url ${lib.escapeShellArg url}") urls')} --pname ${pname} --filename ${file} + python ${./fetch-legacy.py} ${ + lib.concatStringsSep " " (map (url: "--url ${lib.escapeShellArg url}") urls') + } --pname ${pname} --filename ${file} mv ${file} $out '' diff --git a/pkgs/build-support/fetchpypilegacy/tests.nix b/pkgs/build-support/fetchpypilegacy/tests.nix index b16325b..3edfd64 100644 --- a/pkgs/build-support/fetchpypilegacy/tests.nix +++ b/pkgs/build-support/fetchpypilegacy/tests.nix @@ -1,4 +1,5 @@ -{ testers, fetchPypiLegacy, ... }: { +{ testers, fetchPypiLegacy, ... }: +{ # Tests that we can send custom headers with spaces in them fetchSimple = testers.invalidateFetcherByDrvHash fetchPypiLegacy { pname = "requests"; diff --git a/pkgs/build-support/fetchrepoorcz/default.nix b/pkgs/build-support/fetchrepoorcz/default.nix index 3ac7cac..bfa0ff4 100644 --- a/pkgs/build-support/fetchrepoorcz/default.nix +++ b/pkgs/build-support/fetchrepoorcz/default.nix @@ -1,10 +1,23 @@ { fetchzip }: # gitweb example, snapshot support is optional in gitweb -{ repo, rev, name ? "source" -, ... # For hash agility -}@args: fetchzip ({ - inherit name; - url = "https://repo.or.cz/${repo}.git/snapshot/${rev}.tar.gz"; - meta.homepage = "https://repo.or.cz/${repo}.git/"; -} // removeAttrs args [ "repo" "rev" ]) // { inherit rev; } +{ + repo, + rev, + name ? "source", + ... # For hash agility +}@args: +fetchzip ( + { + inherit name; + url = "https://repo.or.cz/${repo}.git/snapshot/${rev}.tar.gz"; + meta.homepage = "https://repo.or.cz/${repo}.git/"; + } + // removeAttrs args [ + "repo" + "rev" + ] +) +// { + inherit rev; +} diff --git a/pkgs/build-support/fetchrepoproject/default.nix b/pkgs/build-support/fetchrepoproject/default.nix index a5e79c8..5f2f0b8 100644 --- a/pkgs/build-support/fetchrepoproject/default.nix +++ b/pkgs/build-support/fetchrepoproject/default.nix @@ -1,9 +1,24 @@ -{ lib, stdenvNoCC, gitRepo, cacert, copyPathsToStore }: +{ + lib, + stdenvNoCC, + gitRepo, + cacert, + copyPathsToStore, +}: -{ name, manifest, rev ? "HEAD", sha256 -# Optional parameters: -, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "", manifestName ? "" -, localManifests ? [], createMirror ? false, useArchive ? false +{ + name, + manifest, + rev ? "HEAD", + sha256, + # Optional parameters: + repoRepoURL ? "", + repoRepoRev ? "", + referenceDir ? "", + manifestName ? "", + localManifests ? [ ], + createMirror ? false, + useArchive ? false, }: assert repoRepoRev != "" -> repoRepoURL != ""; @@ -34,10 +49,18 @@ let local_manifests = copyPathsToStore localManifests; -in stdenvNoCC.mkDerivation { +in +stdenvNoCC.mkDerivation { inherit name; - inherit cacert manifest rev repoRepoURL repoRepoRev referenceDir; # TODO + inherit + cacert + manifest + rev + repoRepoURL + repoRepoRev + referenceDir + ; # TODO outputHashAlgo = "sha256"; outputHashMode = "recursive"; @@ -47,10 +70,14 @@ in stdenvNoCC.mkDerivation { enableParallelBuilding = true; impureEnvVars = fetchers.proxyImpureEnvVars ++ [ - "GIT_PROXY_COMMAND" "SOCKS_SERVER" + "GIT_PROXY_COMMAND" + "SOCKS_SERVER" ]; - nativeBuildInputs = [ gitRepo cacert ]; + nativeBuildInputs = [ + gitRepo + cacert + ]; GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; @@ -62,7 +89,7 @@ in stdenvNoCC.mkDerivation { cd $out mkdir .repo - ${optionalString (local_manifests != []) '' + ${optionalString (local_manifests != [ ]) '' mkdir .repo/local_manifests for local_manifest in ${concatMapStringsSep " " toString local_manifests}; do cp $local_manifest .repo/local_manifests/$(stripHash $local_manifest) diff --git a/pkgs/build-support/fetchs3/default.nix b/pkgs/build-support/fetchs3/default.nix index acad074..e0a7688 100644 --- a/pkgs/build-support/fetchs3/default.nix +++ b/pkgs/build-support/fetchs3/default.nix @@ -1,36 +1,58 @@ -{ lib, runCommand, awscli }: +{ + lib, + runCommand, + awscli, +}: -{ s3url -, name ? builtins.baseNameOf s3url -, sha256 -, region ? "us-east-1" -, credentials ? null # Default to looking at local EC2 metadata service -, recursiveHash ? false -, postFetch ? null +{ + s3url, + name ? builtins.baseNameOf s3url, + sha256, + region ? "us-east-1", + credentials ? null, # Default to looking at local EC2 metadata service + recursiveHash ? false, + postFetch ? null, }: let - mkCredentials = { access_key_id, secret_access_key, session_token ? null }: { - AWS_ACCESS_KEY_ID = access_key_id; - AWS_SECRET_ACCESS_KEY = secret_access_key; - AWS_SESSION_TOKEN = session_token; - }; + mkCredentials = + { + access_key_id, + secret_access_key, + session_token ? null, + }: + { + AWS_ACCESS_KEY_ID = access_key_id; + AWS_SECRET_ACCESS_KEY = secret_access_key; + AWS_SESSION_TOKEN = session_token; + }; credentialAttrs = lib.optionalAttrs (credentials != null) (mkCredentials credentials); -in runCommand name ({ - nativeBuildInputs = [ awscli ]; +in +runCommand name + ( + { + nativeBuildInputs = [ awscli ]; - outputHashAlgo = "sha256"; - outputHash = sha256; - outputHashMode = if recursiveHash then "recursive" else "flat"; + outputHashAlgo = "sha256"; + outputHash = sha256; + outputHashMode = if recursiveHash then "recursive" else "flat"; - preferLocalBuild = true; + preferLocalBuild = true; - AWS_DEFAULT_REGION = region; -} // credentialAttrs) (if postFetch != null then '' - downloadedFile="$(mktemp)" - aws s3 cp ${s3url} $downloadedFile - ${postFetch} -'' else '' - aws s3 cp ${s3url} $out -'') + AWS_DEFAULT_REGION = region; + } + // credentialAttrs + ) + ( + if postFetch != null then + '' + downloadedFile="$(mktemp)" + aws s3 cp ${s3url} $downloadedFile + ${postFetch} + '' + else + '' + aws s3 cp ${s3url} $out + '' + ) diff --git a/pkgs/build-support/fetchsavannah/default.nix b/pkgs/build-support/fetchsavannah/default.nix index eb65eb1..9f9f17e 100644 --- a/pkgs/build-support/fetchsavannah/default.nix +++ b/pkgs/build-support/fetchsavannah/default.nix @@ -1,12 +1,25 @@ { fetchzip, lib }: lib.makeOverridable ( -# cgit example, snapshot support is optional in cgit -{ repo, rev, name ? "source-savannah.gnu.org-${repo}-${rev}" -, ... # For hash agility -}@args: fetchzip ({ - inherit name; - url = "https://git.savannah.gnu.org/cgit/${repo}.git/snapshot/${repo}-${rev}.tar.gz"; - meta.homepage = "https://git.savannah.gnu.org/cgit/${repo}.git/"; -} // removeAttrs args [ "repo" "rev" ]) // { inherit rev; } + # cgit example, snapshot support is optional in cgit + { + repo, + rev, + name ? "source-savannah.gnu.org-${repo}-${rev}", + ... # For hash agility + }@args: + fetchzip ( + { + inherit name; + url = "https://git.savannah.gnu.org/cgit/${repo}.git/snapshot/${repo}-${rev}.tar.gz"; + meta.homepage = "https://git.savannah.gnu.org/cgit/${repo}.git/"; + } + // removeAttrs args [ + "repo" + "rev" + ] + ) + // { + inherit rev; + } ) diff --git a/pkgs/build-support/fetchsourcehut/default.nix b/pkgs/build-support/fetchsourcehut/default.nix index 42d437b..bdb0b9e 100644 --- a/pkgs/build-support/fetchsourcehut/default.nix +++ b/pkgs/build-support/fetchsourcehut/default.nix @@ -1,62 +1,84 @@ -{ fetchgit, fetchhg, fetchzip, lib }: +{ + fetchgit, + fetchhg, + fetchzip, + lib, +}: let - inherit (lib) - assertOneOf - makeOverridable - optionalString - ; + inherit (lib) assertOneOf makeOverridable optionalString; in makeOverridable ( -{ owner -, repo, rev -, domain ? "sr.ht" -, vc ? "git" -, name ? "source" -, fetchSubmodules ? false -, ... # For hash agility -} @ args: + { + owner, + repo, + rev, + domain ? "sr.ht", + vc ? "git", + name ? "source", + fetchSubmodules ? false, + ... # For hash agility + }@args: -assert (assertOneOf "vc" vc [ "hg" "git" ]); + assert ( + assertOneOf "vc" vc [ + "hg" + "git" + ] + ); -let - urlFor = resource: "https://${resource}.${domain}/${owner}/${repo}"; - baseUrl = urlFor vc; - baseArgs = { - inherit name; - } // removeAttrs args [ - "owner" "repo" "rev" "domain" "vc" "name" "fetchSubmodules" - ]; - vcArgs = baseArgs // { - inherit rev; - url = baseUrl; - }; - fetcher = if fetchSubmodules then vc else "zip"; - cases = { - git = { - fetch = fetchgit; - arguments = vcArgs // { fetchSubmodules = true; }; + let + urlFor = resource: "https://${resource}.${domain}/${owner}/${repo}"; + baseUrl = urlFor vc; + baseArgs = + { + inherit name; + } + // removeAttrs args [ + "owner" + "repo" + "rev" + "domain" + "vc" + "name" + "fetchSubmodules" + ]; + vcArgs = baseArgs // { + inherit rev; + url = baseUrl; }; - hg = { - fetch = fetchhg; - arguments = vcArgs // { fetchSubrepos = true; }; - }; - zip = { - fetch = fetchzip; - arguments = baseArgs // { - url = "${baseUrl}/archive/${rev}.tar.gz"; - postFetch = optionalString (vc == "hg") '' - rm -f "$out/.hg_archival.txt" - ''; # impure file; see #12002 - passthru = { - gitRepoUrl = urlFor "git"; + fetcher = if fetchSubmodules then vc else "zip"; + cases = { + git = { + fetch = fetchgit; + arguments = vcArgs // { + fetchSubmodules = true; + }; + }; + hg = { + fetch = fetchhg; + arguments = vcArgs // { + fetchSubrepos = true; + }; + }; + zip = { + fetch = fetchzip; + arguments = baseArgs // { + url = "${baseUrl}/archive/${rev}.tar.gz"; + postFetch = optionalString (vc == "hg") '' + rm -f "$out/.hg_archival.txt" + ''; # impure file; see #12002 + passthru = { + gitRepoUrl = urlFor "git"; + }; }; }; }; - }; -in cases.${fetcher}.fetch cases.${fetcher}.arguments // { - inherit rev; - meta.homepage = "${baseUrl}"; -} + in + cases.${fetcher}.fetch cases.${fetcher}.arguments + // { + inherit rev; + meta.homepage = "${baseUrl}"; + } ) diff --git a/pkgs/build-support/fetchsvn/default.nix b/pkgs/build-support/fetchsvn/default.nix index 41752eb..6cd5ad2 100644 --- a/pkgs/build-support/fetchsvn/default.nix +++ b/pkgs/build-support/fetchsvn/default.nix @@ -1,33 +1,50 @@ -{ lib, stdenvNoCC, buildPackages -, subversion, glibcLocales, sshSupport ? true, openssh ? null +{ + lib, + stdenvNoCC, + buildPackages, + subversion, + glibcLocales, + sshSupport ? true, + openssh ? null, }: -{ url, rev ? "HEAD", sha256 ? "", hash ? "" -, ignoreExternals ? false, ignoreKeywords ? false, name ? null -, preferLocalBuild ? true +{ + url, + rev ? "HEAD", + sha256 ? "", + hash ? "", + ignoreExternals ? false, + ignoreKeywords ? false, + name ? null, + preferLocalBuild ? true, }: assert sshSupport -> openssh != null; let - repoName = with lib; + repoName = + with lib; let fst = head; snd = l: head (tail l); trd = l: head (tail (tail l)); path_ = (p: if head p == "" then tail p else p) # ~ drop final slash if any - (reverseList (splitString "/" url)); + (reverseList (splitString "/" url)); path = [ (removeSuffix "/" (head path_)) ] ++ (tail path_); in - # ../repo/trunk -> repo - if fst path == "trunk" then snd path - # ../repo/branches/branch -> repo-branch - else if snd path == "branches" then "${trd path}-${fst path}" - # ../repo/tags/tag -> repo-tag - else if snd path == "tags" then "${trd path}-${fst path}" - # ../repo (no trunk) -> repo - else fst path; + # ../repo/trunk -> repo + if fst path == "trunk" then + snd path + # ../repo/branches/branch -> repo-branch + else if snd path == "branches" then + "${trd path}-${fst path}" + # ../repo/tags/tag -> repo-tag + else if snd path == "tags" then + "${trd path}-${fst path}" + # ../repo (no trunk) -> repo + else + fst path; name_ = if name == null then "${repoName}-r${toString rev}" else name; in @@ -35,25 +52,33 @@ in if hash != "" && sha256 != "" then throw "Only one of sha256 or hash can be set" else -stdenvNoCC.mkDerivation { - name = name_; - builder = ./builder.sh; - nativeBuildInputs = [ subversion glibcLocales ] - ++ lib.optional sshSupport openssh; + stdenvNoCC.mkDerivation { + name = name_; + builder = ./builder.sh; + nativeBuildInputs = [ + subversion + glibcLocales + ] ++ lib.optional sshSupport openssh; - SVN_SSH = if sshSupport then "${buildPackages.openssh}/bin/ssh" else null; + SVN_SSH = if sshSupport then "${buildPackages.openssh}/bin/ssh" else null; - outputHashAlgo = if hash != "" then null else "sha256"; - outputHashMode = "recursive"; - outputHash = if hash != "" then - hash - else if sha256 != "" then - sha256 - else - lib.fakeSha256; + outputHashAlgo = if hash != "" then null else "sha256"; + outputHashMode = "recursive"; + outputHash = + if hash != "" then + hash + else if sha256 != "" then + sha256 + else + lib.fakeSha256; - inherit url rev ignoreExternals ignoreKeywords; + inherit + url + rev + ignoreExternals + ignoreKeywords + ; - impureEnvVars = lib.fetchers.proxyImpureEnvVars; - inherit preferLocalBuild; -} + impureEnvVars = lib.fetchers.proxyImpureEnvVars; + inherit preferLocalBuild; + } diff --git a/pkgs/build-support/fetchsvnrevision/default.nix b/pkgs/build-support/fetchsvnrevision/default.nix index f2e2a11..c3987f3 100644 --- a/pkgs/build-support/fetchsvnrevision/default.nix +++ b/pkgs/build-support/fetchsvnrevision/default.nix @@ -1,10 +1,13 @@ runCommand: subversion: repository: - import (runCommand "head-revision" - { buildInputs = [ subversion ]; +import ( + runCommand "head-revision" + { + buildInputs = [ subversion ]; dummy = builtins.currentTime; } '' rev=$(echo p | svn ls -v --depth empty ${repository} |awk '{ print $1 }') echo "[ \"$rev\" ]" > $out echo Latest revision is $rev - '') + '' +) diff --git a/pkgs/build-support/fetchsvnssh/default.nix b/pkgs/build-support/fetchsvnssh/default.nix index ef72de6..6d3bef6 100644 --- a/pkgs/build-support/fetchsvnssh/default.nix +++ b/pkgs/build-support/fetchsvnssh/default.nix @@ -1,11 +1,25 @@ -{stdenvNoCC, subversion, sshSupport ? true, openssh ? null, expect}: -{username, password, url, rev ? "HEAD", sha256 ? ""}: - +{ + stdenvNoCC, + subversion, + sshSupport ? true, + openssh ? null, + expect, +}: +{ + username, + password, + url, + rev ? "HEAD", + sha256 ? "", +}: stdenvNoCC.mkDerivation { name = "svn-export-ssh"; builder = ./builder.sh; - nativeBuildInputs = [subversion expect]; + nativeBuildInputs = [ + subversion + expect + ]; outputHashAlgo = "sha256"; outputHashMode = "recursive"; @@ -13,5 +27,12 @@ stdenvNoCC.mkDerivation { sshSubversion = ./sshsubversion.exp; - inherit username password url rev sshSupport openssh; + inherit + username + password + url + rev + sshSupport + openssh + ; } diff --git a/pkgs/build-support/fetchtorrent/default.nix b/pkgs/build-support/fetchtorrent/default.nix index 1267486..b0339a4 100644 --- a/pkgs/build-support/fetchtorrent/default.nix +++ b/pkgs/build-support/fetchtorrent/default.nix @@ -1,20 +1,34 @@ -{ lib, runCommand, transmission_noSystemd, rqbit, writeShellScript, formats, cacert, rsync }: +{ + lib, + runCommand, + transmission_noSystemd, + rqbit, + writeShellScript, + formats, + cacert, + rsync, +}: let urlRegexp = ''.*xt=urn:bt[im]h:([^&]{64}|[^&]{40}).*''; in -{ url -, name ? - if (builtins.match urlRegexp url) == null then - "bittorrent" - else - "bittorrent-" + builtins.head (builtins.match urlRegexp url) -, config ? if (backend == "transmission") then { } else throw "json config for configuring fetchFromBitorrent only works with the transmission backend" -, hash -, backend ? "transmission" -, recursiveHash ? true -, postFetch ? "" -, postUnpack ? "" -, meta ? {} +{ + url, + name ? + if (builtins.match urlRegexp url) == null then + "bittorrent" + else + "bittorrent-" + builtins.head (builtins.match urlRegexp url), + config ? + if (backend == "transmission") then + { } + else + throw "json config for configuring fetchFromBitorrent only works with the transmission backend", + hash, + backend ? "transmission", + recursiveHash ? true, + postFetch ? "", + postUnpack ? "", + meta ? { }, }: let afterSuccess = writeShellScript "fetch-bittorrent-done.sh" '' @@ -28,35 +42,49 @@ let ${postFetch} kill $PPID ''; - jsonConfig = (formats.json {}).generate "jsonConfig" config; + jsonConfig = (formats.json { }).generate "jsonConfig" config; in -runCommand name { - inherit meta; - nativeBuildInputs = [ cacert ] ++ (if (backend == "transmission" ) then [ transmission_noSystemd ] else if (backend == "rqbit") then [ rqbit ] else throw "rqbit or transmission are the only available backends for fetchtorrent"); - outputHashAlgo = if hash != "" then null else "sha256"; - outputHash = hash; - outputHashMode = if recursiveHash then "recursive" else "flat"; +runCommand name + { + inherit meta; + nativeBuildInputs = + [ cacert ] + ++ ( + if (backend == "transmission") then + [ transmission_noSystemd ] + else if (backend == "rqbit") then + [ rqbit ] + else + throw "rqbit or transmission are the only available backends for fetchtorrent" + ); + outputHashAlgo = if hash != "" then null else "sha256"; + outputHash = hash; + outputHashMode = if recursiveHash then "recursive" else "flat"; - # url will be written to the derivation, meaning it can be parsed and utilized - # by external tools, such as tools that may want to seed fetchtorrent calls - # in nixpkgs - inherit url; -} -(if (backend == "transmission") then '' - export HOME=$TMP - export downloadedDirectory=$out/downloadedDirectory - mkdir -p $downloadedDirectory - mkdir -p $HOME/.config/transmission - cp ${jsonConfig} $HOME/.config/transmission/settings.json - function handleChild { - # This detects failures and logs the contents of the transmission fetch - find $out - exit 0 + # url will be written to the derivation, meaning it can be parsed and utilized + # by external tools, such as tools that may want to seed fetchtorrent calls + # in nixpkgs + inherit url; } - trap handleChild CHLD - transmission-cli --port $(shuf -n 1 -i 49152-65535) --portmap --finish ${afterSuccess} --download-dir $downloadedDirectory --config-dir "$HOME"/.config/transmission "$url" -'' else -'' - export HOME=$TMP - rqbit --disable-dht-persistence --http-api-listen-addr "127.0.0.1:$(shuf -n 1 -i 49152-65535)" download -o $out --exit-on-finish "$url" -'') + ( + if (backend == "transmission") then + '' + export HOME=$TMP + export downloadedDirectory=$out/downloadedDirectory + mkdir -p $downloadedDirectory + mkdir -p $HOME/.config/transmission + cp ${jsonConfig} $HOME/.config/transmission/settings.json + function handleChild { + # This detects failures and logs the contents of the transmission fetch + find $out + exit 0 + } + trap handleChild CHLD + transmission-cli --port $(shuf -n 1 -i 49152-65535) --portmap --finish ${afterSuccess} --download-dir $downloadedDirectory --config-dir "$HOME"/.config/transmission "$url" + '' + else + '' + export HOME=$TMP + rqbit --disable-dht-persistence --http-api-listen-addr "127.0.0.1:$(shuf -n 1 -i 49152-65535)" download -o $out --exit-on-finish "$url" + '' + ) diff --git a/pkgs/build-support/fetchtorrent/tests.nix b/pkgs/build-support/fetchtorrent/tests.nix index e8cc3f3..1d4dbb2 100644 --- a/pkgs/build-support/fetchtorrent/tests.nix +++ b/pkgs/build-support/fetchtorrent/tests.nix @@ -1,4 +1,9 @@ -{ testers, fetchtorrent, lib, ... }: +{ + testers, + fetchtorrent, + lib, + ... +}: let wired-cd.meta.license = [ diff --git a/pkgs/build-support/fetchurl/boot.nix b/pkgs/build-support/fetchurl/boot.nix index 8f8c78b..4aa7609 100644 --- a/pkgs/build-support/fetchurl/boot.nix +++ b/pkgs/build-support/fetchurl/boot.nix @@ -1,12 +1,15 @@ -let mirrors = import ./mirrors.nix; in +let + mirrors = import ./mirrors.nix; +in { system }: -{ url ? builtins.head urls -, urls ? [] -, sha256 ? "" -, hash ? "" -, name ? baseNameOf (toString url) +{ + url ? builtins.head urls, + urls ? [ ], + sha256 ? "", + hash ? "", + name ? baseNameOf (toString url), }: # assert exactly one hash is set @@ -14,12 +17,18 @@ assert hash != "" || sha256 != ""; assert hash != "" -> sha256 == ""; import { - inherit system hash sha256 name; + inherit + system + hash + sha256 + name + ; url = # Handle mirror:// URIs. Since currently # supports only one URI, use the first listed mirror. - let m = builtins.match "mirror://([a-z]+)/(.*)" url; in - if m == null then url - else builtins.head (mirrors.${builtins.elemAt m 0}) + (builtins.elemAt m 1); + let + m = builtins.match "mirror://([a-z]+)/(.*)" url; + in + if m == null then url else builtins.head (mirrors.${builtins.elemAt m 0}) + (builtins.elemAt m 1); } diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index a9c2c7c..0af58d4 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -1,6 +1,12 @@ -{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC -, curl # Note that `curl' may be `null', in case of the native stdenvNoCC. -, cacert ? null }: +{ + lib, + buildPackages ? { + inherit stdenvNoCC; + }, + stdenvNoCC, + curl, # Note that `curl' may be `null', in case of the native stdenvNoCC. + cacert ? null, +}: let @@ -11,180 +17,252 @@ let # fetchurl instantiations via environment variables. This makes the # resulting store derivations (.drv files) much smaller, which in # turn makes nix-env/nix-instantiate faster. - mirrorsFile = - buildPackages.stdenvNoCC.mkDerivation ({ + mirrorsFile = buildPackages.stdenvNoCC.mkDerivation ( + { name = "mirrors-list"; strictDeps = true; builder = ./write-mirror-list.sh; preferLocalBuild = true; - } // mirrors); + } + // mirrors + ); # Names of the master sites that are mirrored (i.e., "sourceforge", # "gnu", etc.). sites = builtins.attrNames mirrors; - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ - # This variable allows the user to pass additional options to curl - "NIX_CURL_FLAGS" + impureEnvVars = + lib.fetchers.proxyImpureEnvVars + ++ [ + # This variable allows the user to pass additional options to curl + "NIX_CURL_FLAGS" - # This variable allows the user to override hashedMirrors from the - # command-line. - "NIX_HASHED_MIRRORS" + # This variable allows the user to override hashedMirrors from the + # command-line. + "NIX_HASHED_MIRRORS" - # This variable allows overriding the timeout for connecting to - # the hashed mirrors. - "NIX_CONNECT_TIMEOUT" - ] ++ (map (site: "NIX_MIRRORS_${site}") sites); + # This variable allows overriding the timeout for connecting to + # the hashed mirrors. + "NIX_CONNECT_TIMEOUT" + ] + ++ (map (site: "NIX_MIRRORS_${site}") sites); in -{ # URL to fetch. - url ? "" +{ + # URL to fetch. + url ? "", -, # Alternatively, a list of URLs specifying alternative download + # Alternatively, a list of URLs specifying alternative download # locations. They are tried in order. - urls ? [] + urls ? [ ], -, # Additional curl options needed for the download to succeed. + # Additional curl options needed for the download to succeed. # Warning: Each space (no matter the escaping) will start a new argument. # If you wish to pass arguments with spaces, use `curlOptsList` - curlOpts ? "" + curlOpts ? "", -, # Additional curl options needed for the download to succeed. - curlOptsList ? [] + # Additional curl options needed for the download to succeed. + curlOptsList ? [ ], -, # Name of the file. If empty, use the basename of `url' (or of the + # Name of the file. If empty, use the basename of `url' (or of the # first element of `urls'). - name ? "" + name ? "", # for versioned downloads optionally take pname + version. -, pname ? "" -, version ? "" + pname ? "", + version ? "", -, # SRI hash. - hash ? "" + # SRI hash. + hash ? "", -, # Legacy ways of specifying the hash. - outputHash ? "" -, outputHashAlgo ? "" -, sha1 ? "" -, sha256 ? "" -, sha512 ? "" + # Legacy ways of specifying the hash. + outputHash ? "", + outputHashAlgo ? "", + sha1 ? "", + sha256 ? "", + sha512 ? "", -, recursiveHash ? false + recursiveHash ? false, -, # Shell code to build a netrc file for BASIC auth - netrcPhase ? null + # Shell code to build a netrc file for BASIC auth + netrcPhase ? null, -, # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes) + # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes) # needed for netrcPhase - netrcImpureEnvVars ? [] + netrcImpureEnvVars ? [ ], -, # Shell code executed after the file has been fetched + # Shell code executed after the file has been fetched # successfully. This can do things like check or transform the file. - postFetch ? "" + postFetch ? "", -, # Whether to download to a temporary path rather than $out. Useful + # Whether to download to a temporary path rather than $out. Useful # in conjunction with postFetch. The location of the temporary file # is communicated to postFetch via $downloadedFile. - downloadToTemp ? false + downloadToTemp ? false, -, # If true, set executable bit on downloaded file - executable ? false + # If true, set executable bit on downloaded file + executable ? false, -, # If set, don't download the file, but write a list of all possible + # If set, don't download the file, but write a list of all possible # URLs (resulting from resolving mirror:// URLs) to $out. - showURLs ? false + showURLs ? false, -, # Meta information, if any. - meta ? {} + # Meta information, if any. + meta ? { }, # Passthru information, if any. -, passthru ? {} + passthru ? { }, # Doing the download on a remote machine just duplicates network # traffic, so don't do that by default -, preferLocalBuild ? true + preferLocalBuild ? true, # Additional packages needed as part of a fetch -, nativeBuildInputs ? [ ] + nativeBuildInputs ? [ ], }: let urls_ = - if urls != [] && url == "" then - (if lib.isList urls then urls - else throw "`urls` is not a list") - else if urls == [] && url != "" then - (if lib.isString url then [url] - else throw "`url` is not a string") - else throw "fetchurl requires either `url` or `urls` to be set"; + if urls != [ ] && url == "" then + (if lib.isList urls then urls else throw "`urls` is not a list") + else if urls == [ ] && url != "" then + (if lib.isString url then [ url ] else throw "`url` is not a string") + else + throw "fetchurl requires either `url` or `urls` to be set"; hash_ = - if with lib.lists; length (filter (s: s != "") [ hash outputHash sha1 sha256 sha512 ]) > 1 - then throw "multiple hashes passed to fetchurl" else + if + with lib.lists; + length ( + filter (s: s != "") [ + hash + outputHash + sha1 + sha256 + sha512 + ] + ) > 1 + then + throw "multiple hashes passed to fetchurl" + else - if hash != "" then { outputHashAlgo = null; outputHash = hash; } + if hash != "" then + { + outputHashAlgo = null; + outputHash = hash; + } else if outputHash != "" then - if outputHashAlgo != "" then { inherit outputHashAlgo outputHash; } - else throw "fetchurl was passed outputHash without outputHashAlgo" - else if sha512 != "" then { outputHashAlgo = "sha512"; outputHash = sha512; } - else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; } - else if sha1 != "" then { outputHashAlgo = "sha1"; outputHash = sha1; } - else if cacert != null then { outputHashAlgo = "sha256"; outputHash = ""; } - else throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}"; + if outputHashAlgo != "" then + { inherit outputHashAlgo outputHash; } + else + throw "fetchurl was passed outputHash without outputHashAlgo" + else if sha512 != "" then + { + outputHashAlgo = "sha512"; + outputHash = sha512; + } + else if sha256 != "" then + { + outputHashAlgo = "sha256"; + outputHash = sha256; + } + else if sha1 != "" then + { + outputHashAlgo = "sha1"; + outputHash = sha1; + } + else if cacert != null then + { + outputHashAlgo = "sha256"; + outputHash = ""; + } + else + throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}"; in -assert (lib.isList curlOpts) -> lib.warn '' - fetchurl for ${toString (builtins.head urls_)}: curlOpts is a list (${lib.generators.toPretty { multiline = false; } curlOpts}), which is not supported anymore. +assert + (lib.isList curlOpts) + -> lib.warn '' + fetchurl for ${toString (builtins.head urls_)}: curlOpts is a list (${ + lib.generators.toPretty { multiline = false; } curlOpts + }), which is not supported anymore. - If you wish to get the same effect as before, for elements with spaces (even if escaped) to expand to multiple curl arguments, use a string argument instead: curlOpts = ${lib.strings.escapeNixString (toString curlOpts)}; - If you wish for each list element to be passed as a separate curl argument, allowing arguments to contain spaces, use curlOptsList instead: curlOptsList = [ ${lib.concatMapStringsSep " " lib.strings.escapeNixString curlOpts} ];'' true; -stdenvNoCC.mkDerivation (( - if (pname != "" && version != "") then - { inherit pname version; } - else - { name = - if showURLs then "urls" - else if name != "" then name - else baseNameOf (toString (builtins.head urls_)); - } -) // { - builder = ./builder.sh; +stdenvNoCC.mkDerivation ( + ( + if (pname != "" && version != "") then + { inherit pname version; } + else + { + name = + if showURLs then + "urls" + else if name != "" then + name + else + baseNameOf (toString (builtins.head urls_)); + } + ) + // { + builder = ./builder.sh; - nativeBuildInputs = [ curl ] ++ nativeBuildInputs; + nativeBuildInputs = [ curl ] ++ nativeBuildInputs; - urls = urls_; + urls = urls_; - # If set, prefer the content-addressable mirrors - # (http://tarballs.nixos.org) over the original URLs. - preferHashedMirrors = true; + # If set, prefer the content-addressable mirrors + # (http://tarballs.nixos.org) over the original URLs. + preferHashedMirrors = true; - # New-style output content requirements. - inherit (hash_) outputHashAlgo outputHash; + # New-style output content requirements. + inherit (hash_) outputHashAlgo outputHash; - SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash) - then "${cacert}/etc/ssl/certs/ca-bundle.crt" - else "/no-cert-file.crt"; + SSL_CERT_FILE = + if + ( + hash_.outputHash == "" + || hash_.outputHash == lib.fakeSha256 + || hash_.outputHash == lib.fakeSha512 + || hash_.outputHash == lib.fakeHash + ) + then + "${cacert}/etc/ssl/certs/ca-bundle.crt" + else + "/no-cert-file.crt"; - outputHashMode = if (recursiveHash || executable) then "recursive" else "flat"; + outputHashMode = if (recursiveHash || executable) then "recursive" else "flat"; - inherit curlOpts; - curlOptsList = lib.escapeShellArgs curlOptsList; - inherit showURLs mirrorsFile postFetch downloadToTemp executable; + inherit curlOpts; + curlOptsList = lib.escapeShellArgs curlOptsList; + inherit + showURLs + mirrorsFile + postFetch + downloadToTemp + executable + ; - impureEnvVars = impureEnvVars ++ netrcImpureEnvVars; + impureEnvVars = impureEnvVars ++ netrcImpureEnvVars; - nixpkgsVersion = lib.trivial.release; + nixpkgsVersion = lib.trivial.release; - inherit preferLocalBuild; + inherit preferLocalBuild; - postHook = if netrcPhase == null then null else '' - ${netrcPhase} - curlOpts="$curlOpts --netrc-file $PWD/netrc" - ''; + postHook = + if netrcPhase == null then + null + else + '' + ${netrcPhase} + curlOpts="$curlOpts --netrc-file $PWD/netrc" + ''; - inherit meta; - passthru = { inherit url; } // passthru; -}) + inherit meta; + passthru = { + inherit url; + } // passthru; + } +) diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix index e192c65..e34e1ec 100644 --- a/pkgs/build-support/fetchurl/mirrors.nix +++ b/pkgs/build-support/fetchurl/mirrors.nix @@ -1,9 +1,7 @@ { # Content-addressable Nix mirrors - hashedMirrors = [ - "https://tarballs.nixos.org" - ]; + hashedMirrors = [ "https://tarballs.nixos.org" ]; # Mirrors for mirror://site/filename URIs, where "site" is # "sourceforge", "gnu", etc. @@ -44,9 +42,7 @@ ]; # CRAN mirrors - cran = [ - "https://cran.r-project.org/src/contrib/" - ]; + cran = [ "https://cran.r-project.org/src/contrib/" ]; # BitlBee mirrors, see https://www.bitlbee.org/main.php/mirrors.html bitlbee = [ @@ -142,14 +138,10 @@ ]; # MySQL - mysql = [ - "https://cdn.mysql.com/Downloads/" - ]; + mysql = [ "https://cdn.mysql.com/Downloads/" ]; # Maven Central - maven = [ - "https://repo1.maven.org/maven2/" - ]; + maven = [ "https://repo1.maven.org/maven2/" ]; # Mozilla projects mozilla = [ @@ -167,14 +159,10 @@ ]; # PostgreSQL - postgresql = [ - "https://ftp.postgresql.org/pub/" - ]; + postgresql = [ "https://ftp.postgresql.org/pub/" ]; # Qt - qt = [ - "https://download.qt.io/" - ]; + qt = [ "https://download.qt.io/" ]; # Sage mirrors (https://www.sagemath.org/mirrors.html) sageupstream = [ @@ -309,7 +297,7 @@ "https://cpan.metacpan.org/" "https://cpan.perl.org/" "https://mirrors.kernel.org/CPAN/" - "https://backpan.perl.org/" # for old releases + "https://backpan.perl.org/" # for old releases ]; # D DUB @@ -319,9 +307,7 @@ ]; # Haskell Hackage - hackage = [ - "https://hackage.haskell.org/package/" - ]; + hackage = [ "https://hackage.haskell.org/package/" ]; # Lua Rocks luarocks = [ @@ -339,9 +325,7 @@ ]; # Python Test-PyPI - testpypi = [ - "https://test.pypi.io/packages/source/" - ]; + testpypi = [ "https://test.pypi.io/packages/source/" ]; ### Linux distros diff --git a/pkgs/build-support/fetchurl/tests.nix b/pkgs/build-support/fetchurl/tests.nix index e348d77..8d90641 100644 --- a/pkgs/build-support/fetchurl/tests.nix +++ b/pkgs/build-support/fetchurl/tests.nix @@ -1,11 +1,23 @@ -{ testers, fetchurl, jq, moreutils, ... }: { +{ + testers, + fetchurl, + jq, + moreutils, + ... +}: +{ # Tests that we can send custom headers with spaces in them header = - let headerValue = "Test '\" <- These are some quotes"; - in testers.invalidateFetcherByDrvHash fetchurl { + let + headerValue = "Test '\" <- These are some quotes"; + in + testers.invalidateFetcherByDrvHash fetchurl { url = "https://httpbin.org/headers"; sha256 = builtins.hashString "sha256" (headerValue + "\n"); - curlOptsList = [ "-H" "Hello: ${headerValue}" ]; + curlOptsList = [ + "-H" + "Hello: ${headerValue}" + ]; postFetch = '' ${jq}/bin/jq -r '.headers.Hello' $out | ${moreutils}/bin/sponge $out ''; diff --git a/pkgs/build-support/fetchzip/default.nix b/pkgs/build-support/fetchzip/default.nix index dd04ccb..dfd6321 100644 --- a/pkgs/build-support/fetchzip/default.nix +++ b/pkgs/build-support/fetchzip/default.nix @@ -5,73 +5,105 @@ # (e.g. due to minor changes in the compression algorithm, or changes # in timestamps). -{ lib, fetchurl, withUnzip ? true, unzip, glibcLocalesUtf8 }: +{ + lib, + fetchurl, + withUnzip ? true, + unzip, + glibcLocalesUtf8, +}: -{ name ? "source" -, url ? "" -, urls ? [] -, nativeBuildInputs ? [] -, postFetch ? "" -, extraPostFetch ? "" +{ + name ? "source", + url ? "", + urls ? [ ], + nativeBuildInputs ? [ ], + postFetch ? "", + extraPostFetch ? "", -# Optionally move the contents of the unpacked tree up one level. -, stripRoot ? true -# Allows to set the extension for the intermediate downloaded -# file. This can be used as a hint for the unpackCmdHooks to select -# an appropriate unpacking tool. -, extension ? null + # Optionally move the contents of the unpacked tree up one level. + stripRoot ? true, + # Allows to set the extension for the intermediate downloaded + # file. This can be used as a hint for the unpackCmdHooks to select + # an appropriate unpacking tool. + extension ? null, -# the rest are given to fetchurl as is -, ... } @ args: + # the rest are given to fetchurl as is + ... +}@args: -assert (extraPostFetch != "") -> lib.warn "use 'postFetch' instead of 'extraPostFetch' with 'fetchzip' and 'fetchFromGitHub' or 'fetchFromGitLab'." true; +assert + (extraPostFetch != "") + -> lib.warn "use 'postFetch' instead of 'extraPostFetch' with 'fetchzip' and 'fetchFromGitHub' or 'fetchFromGitLab'." true; let tmpFilename = - if extension != null - then "download.${extension}" - else baseNameOf (if url != "" then url else builtins.head urls); + if extension != null then + "download.${extension}" + else + baseNameOf (if url != "" then url else builtins.head urls); in -fetchurl ({ - inherit name; - recursiveHash = true; +fetchurl ( + { + inherit name; + recursiveHash = true; - downloadToTemp = true; + downloadToTemp = true; - # Have to pull in glibcLocalesUtf8 for unzip in setup-hook.sh to handle - # UTF-8 aware locale: - # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 - nativeBuildInputs = lib.optionals withUnzip [ unzip glibcLocalesUtf8 ] ++ nativeBuildInputs; + # Have to pull in glibcLocalesUtf8 for unzip in setup-hook.sh to handle + # UTF-8 aware locale: + # https://github.com/NixOS/nixpkgs/issues/176225#issuecomment-1146617263 + nativeBuildInputs = + lib.optionals withUnzip [ + unzip + glibcLocalesUtf8 + ] + ++ nativeBuildInputs; - postFetch = - '' - unpackDir="$TMPDIR/unpack" - mkdir "$unpackDir" - cd "$unpackDir" + postFetch = + '' + unpackDir="$TMPDIR/unpack" + mkdir "$unpackDir" + cd "$unpackDir" - renamed="$TMPDIR/${tmpFilename}" - mv "$downloadedFile" "$renamed" - unpackFile "$renamed" - chmod -R +w "$unpackDir" - '' + (if stripRoot then '' - if [ $(ls -A "$unpackDir" | wc -l) != 1 ]; then - echo "error: zip file must contain a single file or directory." - echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files." - exit 1 - fi - fn=$(cd "$unpackDir" && ls -A) - if [ -f "$unpackDir/$fn" ]; then - mkdir $out - fi - mv "$unpackDir/$fn" "$out" - '' else '' - mv "$unpackDir" "$out" - '') + '' - ${postFetch} - ${extraPostFetch} - chmod 755 "$out" - ''; + renamed="$TMPDIR/${tmpFilename}" + mv "$downloadedFile" "$renamed" + unpackFile "$renamed" + chmod -R +w "$unpackDir" + '' + + ( + if stripRoot then + '' + if [ $(ls -A "$unpackDir" | wc -l) != 1 ]; then + echo "error: zip file must contain a single file or directory." + echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files." + exit 1 + fi + fn=$(cd "$unpackDir" && ls -A) + if [ -f "$unpackDir/$fn" ]; then + mkdir $out + fi + mv "$unpackDir/$fn" "$out" + '' + else + '' + mv "$unpackDir" "$out" + '' + ) + + '' + ${postFetch} + ${extraPostFetch} + chmod 755 "$out" + ''; # ^ Remove non-owner write permissions # Fixes https://github.com/NixOS/nixpkgs/issues/38649 -} // removeAttrs args [ "stripRoot" "extraPostFetch" "postFetch" "extension" "nativeBuildInputs" ]) + } + // removeAttrs args [ + "stripRoot" + "extraPostFetch" + "postFetch" + "extension" + "nativeBuildInputs" + ] +) diff --git a/pkgs/build-support/fetchzip/tests.nix b/pkgs/build-support/fetchzip/tests.nix index 13175d5..66227f0 100644 --- a/pkgs/build-support/fetchzip/tests.nix +++ b/pkgs/build-support/fetchzip/tests.nix @@ -1,4 +1,9 @@ -{ testers, fetchzip, runCommand, ... }: +{ + testers, + fetchzip, + runCommand, + ... +}: let url = "https://gist.github.com/glandium/01d54cefdb70561b5f6675e08f2990f2/archive/2f430f0c136a69b0886281d0c76708997d8878af.zip"; @@ -16,10 +21,12 @@ in }; hiddenDir = testers.invalidateFetcherByDrvHash fetchzip { - url = "file://${runCommand "hiddendir.tar" {} '' - mkdir .foo - tar -cf $out .foo - ''}"; + url = "file://${ + runCommand "hiddendir.tar" { } '' + mkdir .foo + tar -cf $out .foo + '' + }"; sha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; }; } diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix index 5d7cd7d..98e7c16 100644 --- a/pkgs/build-support/flutter/default.nix +++ b/pkgs/build-support/flutter/default.nix @@ -1,179 +1,207 @@ -{ lib -, callPackage -, runCommand -, makeWrapper -, wrapGAppsHook -, buildDartApplication -, cacert -, glib -, flutter -, pkg-config -, jq -, yq -, moreutils +{ + lib, + callPackage, + runCommand, + makeWrapper, + wrapGAppsHook, + buildDartApplication, + cacert, + glib, + flutter, + pkg-config, + jq, + yq, + moreutils, }: # absolutely no mac support for now -{ pubGetScript ? "flutter pub get" -, flutterBuildFlags ? [ ] -, targetFlutterPlatform ? "linux" -, extraWrapProgramArgs ? "" -, ... +{ + pubGetScript ? "flutter pub get", + flutterBuildFlags ? [ ], + targetFlutterPlatform ? "linux", + extraWrapProgramArgs ? "", + ... }@args: let - builderArgs = rec { - universal = args // { - sdkSetupScript = '' - # Pub needs SSL certificates. Dart normally looks in a hardcoded path. - # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 - # - # Dart does not respect SSL_CERT_FILE... - # https://github.com/dart-lang/sdk/issues/48506 - # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. - # https://github.com/flutter/flutter/issues/56607 - # https://github.com/flutter/flutter/issues/113594 - # - # libredirect is of no use either, as Flutter does not pass any - # environment variables (including LD_PRELOAD) to the Pub process. - # - # Instead, Flutter is patched to allow the path to the Dart binary used for - # Pub commands to be overriden. - export NIX_FLUTTER_PUB_DART="${runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } '' - mkdir -p "$out/bin" - makeWrapper ${flutter.dart}/bin/dart "$out/bin/dart" \ - --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt" - ''}/bin/dart" + builderArgs = + rec { + universal = args // { + sdkSetupScript = '' + # Pub needs SSL certificates. Dart normally looks in a hardcoded path. + # https://github.com/dart-lang/sdk/blob/3.1.0/runtime/bin/security_context_linux.cc#L48 + # + # Dart does not respect SSL_CERT_FILE... + # https://github.com/dart-lang/sdk/issues/48506 + # ...and Flutter does not support --root-certs-file, so the path cannot be manually set. + # https://github.com/flutter/flutter/issues/56607 + # https://github.com/flutter/flutter/issues/113594 + # + # libredirect is of no use either, as Flutter does not pass any + # environment variables (including LD_PRELOAD) to the Pub process. + # + # Instead, Flutter is patched to allow the path to the Dart binary used for + # Pub commands to be overriden. + export NIX_FLUTTER_PUB_DART="${ + runCommand "dart-with-certs" { nativeBuildInputs = [ makeWrapper ]; } '' + mkdir -p "$out/bin" + makeWrapper ${flutter.dart}/bin/dart "$out/bin/dart" \ + --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt" + '' + }/bin/dart" - export HOME="$NIX_BUILD_TOP" - flutter config --no-analytics &>/dev/null # mute first-run - flutter config --enable-linux-desktop >/dev/null - ''; + export HOME="$NIX_BUILD_TOP" + flutter config --no-analytics &>/dev/null # mute first-run + flutter config --enable-linux-desktop >/dev/null + ''; - inherit pubGetScript; + inherit pubGetScript; - sdkSourceBuilders = { - # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81 - "flutter" = name: runCommand "flutter-sdk-${name}" { passthru.packageRoot = "."; } '' - for path in '${flutter}/packages/${name}' '${flutter}/bin/cache/pkg/${name}'; do - if [ -d "$path" ]; then - ln -s "$path" "$out" - break - fi - done + sdkSourceBuilders = { + # https://github.com/dart-lang/pub/blob/68dc2f547d0a264955c1fa551fa0a0e158046494/lib/src/sdk/flutter.dart#L81 + "flutter" = + name: + runCommand "flutter-sdk-${name}" { passthru.packageRoot = "."; } '' + for path in '${flutter}/packages/${name}' '${flutter}/bin/cache/pkg/${name}'; do + if [ -d "$path" ]; then + ln -s "$path" "$out" + break + fi + done - if [ ! -e "$out" ]; then - echo 1>&2 'The Flutter SDK does not contain the requested package: ${name}!' - exit 1 + if [ ! -e "$out" ]; then + echo 1>&2 'The Flutter SDK does not contain the requested package: ${name}!' + exit 1 + fi + ''; + }; + + extraPackageConfigSetup = '' + # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755 + if [ "$('${yq}/bin/yq' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then + '${jq}/bin/jq' '.packages |= . + [{ + name: "flutter_gen", + rootUri: "flutter_gen", + languageVersion: "2.12", + }]' "$out" | '${moreutils}/bin/sponge' "$out" fi ''; }; - extraPackageConfigSetup = '' - # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755 - if [ "$('${yq}/bin/yq' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then - '${jq}/bin/jq' '.packages |= . + [{ - name: "flutter_gen", - rootUri: "flutter_gen", - languageVersion: "2.12", - }]' "$out" | '${moreutils}/bin/sponge' "$out" - fi - ''; - }; + linux = universal // { + outputs = universal.outputs or [ ] ++ [ "debug" ]; - linux = universal // { - outputs = universal.outputs or [ ] ++ [ "debug" ]; + nativeBuildInputs = (universal.nativeBuildInputs or [ ]) ++ [ + wrapGAppsHook - nativeBuildInputs = (universal.nativeBuildInputs or [ ]) ++ [ - wrapGAppsHook + # Flutter requires pkg-config for Linux desktop support, and many plugins + # attempt to use it. + # + # It is available to the `flutter` tool through its wrapper, but it must be + # added here as well so the setup hook adds plugin dependencies to the + # pkg-config search paths. + pkg-config + ]; - # Flutter requires pkg-config for Linux desktop support, and many plugins - # attempt to use it. - # - # It is available to the `flutter` tool through its wrapper, but it must be - # added here as well so the setup hook adds plugin dependencies to the - # pkg-config search paths. - pkg-config - ]; + buildInputs = (universal.buildInputs or [ ]) ++ [ glib ]; - buildInputs = (universal.buildInputs or [ ]) ++ [ glib ]; + dontDartBuild = true; + buildPhase = + universal.buildPhase or '' + runHook preBuild - dontDartBuild = true; - buildPhase = universal.buildPhase or '' - runHook preBuild + mkdir -p build/flutter_assets/fonts - mkdir -p build/flutter_assets/fonts + flutter build linux -v --release --split-debug-info="$debug" ${ + builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags) + } - flutter build linux -v --release --split-debug-info="$debug" ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} + runHook postBuild + ''; - runHook postBuild - ''; + dontDartInstall = true; + installPhase = + universal.installPhase or '' + runHook preInstall - dontDartInstall = true; - installPhase = universal.installPhase or '' - runHook preInstall + built=build/linux/*/release/bundle - built=build/linux/*/release/bundle + mkdir -p $out/bin + mv $built $out/app - mkdir -p $out/bin - mv $built $out/app + for f in $(find $out/app -iname "*.desktop" -type f); do + install -D $f $out/share/applications/$(basename $f) + done - for f in $(find $out/app -iname "*.desktop" -type f); do - install -D $f $out/share/applications/$(basename $f) - done + for f in $(find $out/app -maxdepth 1 -type f); do + ln -s $f $out/bin/$(basename $f) + done - for f in $(find $out/app -maxdepth 1 -type f); do - ln -s $f $out/bin/$(basename $f) - done + # make *.so executable + find $out/app -iname "*.so" -type f -exec chmod +x {} + - # make *.so executable - find $out/app -iname "*.so" -type f -exec chmod +x {} + + # remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral + for f in $(find $out/app -executable -type f); do + if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also + echo "strip RPath of $f" + newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g") + patchelf --set-rpath "$newrp" "$f" + fi + done - # remove stuff like /build/source/packages/ubuntu_desktop_installer/linux/flutter/ephemeral - for f in $(find $out/app -executable -type f); do - if patchelf --print-rpath "$f" | grep /build; then # this ignores static libs (e,g. libapp.so) also - echo "strip RPath of $f" - newrp=$(patchelf --print-rpath $f | sed -r "s|/build.*ephemeral:||g" | sed -r "s|/build.*profile:||g") - patchelf --set-rpath "$newrp" "$f" - fi - done + runHook postInstall + ''; - runHook postInstall - ''; + dontWrapGApps = true; + extraWrapProgramArgs = '' + ''${gappsWrapperArgs[@]} \ + ${extraWrapProgramArgs} + ''; + }; - dontWrapGApps = true; - extraWrapProgramArgs = '' - ''${gappsWrapperArgs[@]} \ - ${extraWrapProgramArgs} - ''; - }; + web = universal // { + dontDartBuild = true; + buildPhase = + universal.buildPhase or '' + runHook preBuild - web = universal // { - dontDartBuild = true; - buildPhase = universal.buildPhase or '' - runHook preBuild + mkdir -p build/flutter_assets/fonts - mkdir -p build/flutter_assets/fonts + flutter build web -v --release ${ + builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags) + } - flutter build web -v --release ${builtins.concatStringsSep " " (map (flag: "\"${flag}\"") flutterBuildFlags)} + runHook postBuild + ''; - runHook postBuild - ''; + dontDartInstall = true; + installPhase = + universal.installPhase or '' + runHook preInstall - dontDartInstall = true; - installPhase = universal.installPhase or '' - runHook preInstall + cp -r build/web "$out" - cp -r build/web "$out" + runHook postInstall + ''; + }; + } + .${targetFlutterPlatform} or (throw "Unsupported Flutter host platform: ${targetFlutterPlatform}"); - runHook postInstall - ''; - }; - }.${targetFlutterPlatform} or (throw "Unsupported Flutter host platform: ${targetFlutterPlatform}"); - - minimalFlutter = flutter.override { supportedTargetFlutterPlatforms = [ "universal" targetFlutterPlatform ]; }; + minimalFlutter = flutter.override { + supportedTargetFlutterPlatforms = [ + "universal" + targetFlutterPlatform + ]; + }; buildAppWith = flutter: buildDartApplication.override { dart = flutter; }; in -buildAppWith minimalFlutter (builderArgs // { passthru = builderArgs.passthru or { } // { multiShell = buildAppWith flutter builderArgs; }; }) +buildAppWith minimalFlutter ( + builderArgs + // { + passthru = builderArgs.passthru or { } // { + multiShell = buildAppWith flutter builderArgs; + }; + } +) diff --git a/pkgs/build-support/go/module.nix b/pkgs/build-support/go/module.nix index 6f568c0..8023b35 100644 --- a/pkgs/build-support/go/module.nix +++ b/pkgs/build-support/go/module.nix @@ -1,321 +1,391 @@ -{ go, cacert, git, lib, stdenv }: +{ + go, + cacert, + git, + lib, + stdenv, +}: -{ name ? "${args'.pname}-${args'.version}" -, src -, nativeBuildInputs ? [ ] -, passthru ? { } -, patches ? [ ] +{ + name ? "${args'.pname}-${args'.version}", + src, + nativeBuildInputs ? [ ], + passthru ? { }, + patches ? [ ], # A function to override the goModules derivation -, overrideModAttrs ? (_oldAttrs: { }) + overrideModAttrs ? (_oldAttrs: { }), # path to go.mod and go.sum directory -, modRoot ? "./" + modRoot ? "./", # vendorHash is the SRI hash of the vendored dependencies # # if vendorHash is null, then we won't fetch any dependencies and # rely on the vendor folder within the source. -, vendorHash ? throw ( - if args'?vendorSha256 then + vendorHash ? throw ( + if args' ? vendorSha256 then "buildGoModule: Expect vendorHash instead of vendorSha256" else "buildGoModule: vendorHash is missing" - ) + ), # Whether to delete the vendor folder supplied with the source. -, deleteVendor ? false + deleteVendor ? false, # Whether to fetch (go mod download) and proxy the vendor directory. # This is useful if your code depends on c code and go mod tidy does not # include the needed sources to build or if any dependency has case-insensitive # conflicts which will produce platform dependant `vendorHash` checksums. -, proxyVendor ? false + proxyVendor ? false, # We want parallel builds by default -, enableParallelBuilding ? true + enableParallelBuilding ? true, # Do not enable this without good reason # IE: programs coupled with the compiler -, allowGoReference ? false + allowGoReference ? false, -, CGO_ENABLED ? go.CGO_ENABLED + CGO_ENABLED ? go.CGO_ENABLED, -, meta ? { } + meta ? { }, # Not needed with buildGoModule -, goPackagePath ? "" + goPackagePath ? "", -, ldflags ? [ ] + ldflags ? [ ], -, GOFLAGS ? [ ] + GOFLAGS ? [ ], # needed for buildFlags{,Array} warning -, buildFlags ? "" -, buildFlagsArray ? "" + buildFlags ? "", + buildFlagsArray ? "", -, ... + ... }@args': assert goPackagePath != "" -> throw "`goPackagePath` is not needed with `buildGoModule`"; let - args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "vendorHash" ]; + args = removeAttrs args' [ + "overrideModAttrs" + "vendorSha256" + "vendorHash" + ]; GO111MODULE = "on"; GOTOOLCHAIN = "local"; - goModules = if (vendorHash == null) then "" else - (stdenv.mkDerivation { - name = "${name}-go-modules"; + goModules = + if (vendorHash == null) then + "" + else + (stdenv.mkDerivation { + name = "${name}-go-modules"; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ go git cacert ]; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ + go + git + cacert + ]; - inherit (args) src; - inherit (go) GOOS GOARCH; - inherit GO111MODULE GOTOOLCHAIN; + inherit (args) src; + inherit (go) GOOS GOARCH; + inherit GO111MODULE GOTOOLCHAIN; - # The following inheritence behavior is not trivial to expect, and some may - # argue it's not ideal. Changing it may break vendor hashes in Nixpkgs and - # out in the wild. In anycase, it's documented in: - # doc/languages-frameworks/go.section.md - prePatch = args.prePatch or ""; - patches = args.patches or [ ]; - patchFlags = args.patchFlags or [ ]; - postPatch = args.postPatch or ""; - preBuild = args.preBuild or ""; - postBuild = args.modPostBuild or ""; - sourceRoot = args.sourceRoot or ""; - env = args.env or { }; + # The following inheritence behavior is not trivial to expect, and some may + # argue it's not ideal. Changing it may break vendor hashes in Nixpkgs and + # out in the wild. In anycase, it's documented in: + # doc/languages-frameworks/go.section.md + prePatch = args.prePatch or ""; + patches = args.patches or [ ]; + patchFlags = args.patchFlags or [ ]; + postPatch = args.postPatch or ""; + preBuild = args.preBuild or ""; + postBuild = args.modPostBuild or ""; + sourceRoot = args.sourceRoot or ""; + env = args.env or { }; - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ - "GIT_PROXY_COMMAND" - "SOCKS_SERVER" - "GOPROXY" - ]; + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ + "GIT_PROXY_COMMAND" + "SOCKS_SERVER" + "GOPROXY" + ]; - configurePhase = args.modConfigurePhase or '' - runHook preConfigure - export GOCACHE=$TMPDIR/go-cache - export GOPATH="$TMPDIR/go" - cd "${modRoot}" - runHook postConfigure - ''; + configurePhase = + args.modConfigurePhase or '' + runHook preConfigure + export GOCACHE=$TMPDIR/go-cache + export GOPATH="$TMPDIR/go" + cd "${modRoot}" + runHook postConfigure + ''; - buildPhase = args.modBuildPhase or ('' - runHook preBuild - '' + lib.optionalString deleteVendor '' - if [ ! -d vendor ]; then - echo "vendor folder does not exist, 'deleteVendor' is not needed" - exit 10 - else - rm -rf vendor - fi - '' + '' - if [ -d vendor ]; then - echo "vendor folder exists, please set 'vendorHash = null;' in your expression" - exit 10 - fi + buildPhase = + args.modBuildPhase or ( + '' + runHook preBuild + '' + + lib.optionalString deleteVendor '' + if [ ! -d vendor ]; then + echo "vendor folder does not exist, 'deleteVendor' is not needed" + exit 10 + else + rm -rf vendor + fi + '' + + '' + if [ -d vendor ]; then + echo "vendor folder exists, please set 'vendorHash = null;' in your expression" + exit 10 + fi - ${if proxyVendor then '' - mkdir -p "''${GOPATH}/pkg/mod/cache/download" - go mod download - '' else '' - if (( "''${NIX_DEBUG:-0}" >= 1 )); then - goModVendorFlags+=(-v) - fi - go mod vendor "''${goModVendorFlags[@]}" - ''} + ${ + if proxyVendor then + '' + mkdir -p "''${GOPATH}/pkg/mod/cache/download" + go mod download + '' + else + '' + if (( "''${NIX_DEBUG:-0}" >= 1 )); then + goModVendorFlags+=(-v) + fi + go mod vendor "''${goModVendorFlags[@]}" + '' + } - mkdir -p vendor + mkdir -p vendor - runHook postBuild - ''); + runHook postBuild + '' + ); - installPhase = args.modInstallPhase or '' - runHook preInstall + installPhase = + args.modInstallPhase or '' + runHook preInstall - ${if proxyVendor then '' - rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb" - cp -r --reflink=auto "''${GOPATH}/pkg/mod/cache/download" $out - '' else '' - cp -r --reflink=auto vendor $out - ''} + ${ + if proxyVendor then + '' + rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb" + cp -r --reflink=auto "''${GOPATH}/pkg/mod/cache/download" $out + '' + else + '' + cp -r --reflink=auto vendor $out + '' + } - if ! [ "$(ls -A $out)" ]; then - echo "vendor folder is empty, please set 'vendorHash = null;' in your expression" - exit 10 - fi + if ! [ "$(ls -A $out)" ]; then + echo "vendor folder is empty, please set 'vendorHash = null;' in your expression" + exit 10 + fi - runHook postInstall - ''; + runHook postInstall + ''; - dontFixup = true; + dontFixup = true; - outputHashMode = "recursive"; - outputHash = vendorHash; - # Handle empty vendorHash; avoid - # error: empty hash requires explicit hash algorithm - outputHashAlgo = if vendorHash == "" then "sha256" else null; - }).overrideAttrs overrideModAttrs; + outputHashMode = "recursive"; + outputHash = vendorHash; + # Handle empty vendorHash; avoid + # error: empty hash requires explicit hash algorithm + outputHashAlgo = if vendorHash == "" then "sha256" else null; + }).overrideAttrs + overrideModAttrs; - package = stdenv.mkDerivation (args // { - nativeBuildInputs = [ go ] ++ nativeBuildInputs; + package = stdenv.mkDerivation ( + args + // { + nativeBuildInputs = [ go ] ++ nativeBuildInputs; - inherit (go) GOOS GOARCH; + inherit (go) GOOS GOARCH; - GOFLAGS = GOFLAGS - ++ lib.optional (!proxyVendor) "-mod=vendor" - ++ lib.optional (!allowGoReference) "-trimpath"; - inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN; + GOFLAGS = + GOFLAGS + ++ lib.optional (!proxyVendor) "-mod=vendor" + ++ lib.optional (!allowGoReference) "-trimpath"; + inherit + CGO_ENABLED + enableParallelBuilding + GO111MODULE + GOTOOLCHAIN + ; - # If not set to an explicit value, set the buildid empty for reproducibility. - ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid="; + # If not set to an explicit value, set the buildid empty for reproducibility. + ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid="; - configurePhase = args.configurePhase or ('' - runHook preConfigure + configurePhase = + args.configurePhase or ( + '' + runHook preConfigure - export GOCACHE=$TMPDIR/go-cache - export GOPATH="$TMPDIR/go" - export GOPROXY=off - export GOSUMDB=off - cd "$modRoot" - '' + lib.optionalString (vendorHash != null) '' - ${if proxyVendor then '' - export GOPROXY=file://${goModules} - '' else '' - rm -rf vendor - cp -r --reflink=auto ${goModules} vendor - ''} - '' + '' + export GOCACHE=$TMPDIR/go-cache + export GOPATH="$TMPDIR/go" + export GOPROXY=off + export GOSUMDB=off + cd "$modRoot" + '' + + lib.optionalString (vendorHash != null) '' + ${ + if proxyVendor then + '' + export GOPROXY=file://${goModules} + '' + else + '' + rm -rf vendor + cp -r --reflink=auto ${goModules} vendor + '' + } + '' + + '' - # currently pie is only enabled by default in pkgsMusl - # this will respect the `hardening{Disable,Enable}` flags if set - if [[ $NIX_HARDENING_ENABLE =~ "pie" ]]; then - export GOFLAGS="-buildmode=pie $GOFLAGS" - fi + # currently pie is only enabled by default in pkgsMusl + # this will respect the `hardening{Disable,Enable}` flags if set + if [[ $NIX_HARDENING_ENABLE =~ "pie" ]]; then + export GOFLAGS="-buildmode=pie $GOFLAGS" + fi - runHook postConfigure - ''); + runHook postConfigure + '' + ); - buildPhase = args.buildPhase or ('' - runHook preBuild + buildPhase = + args.buildPhase or ( + '' + runHook preBuild - exclude='\(/_\|examples\|Godeps\|testdata' - if [[ -n "$excludedPackages" ]]; then - IFS=' ' read -r -a excludedArr <<<$excludedPackages - printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}" - excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf - exclude+='\|'"$excludedAlternates" - fi - exclude+='\)' + exclude='\(/_\|examples\|Godeps\|testdata' + if [[ -n "$excludedPackages" ]]; then + IFS=' ' read -r -a excludedArr <<<$excludedPackages + printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}" + excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf + exclude+='\|'"$excludedAlternates" + fi + exclude+='\)' - buildGoDir() { - local cmd="$1" dir="$2" + buildGoDir() { + local cmd="$1" dir="$2" - . $TMPDIR/buildFlagsArray + . $TMPDIR/buildFlagsArray - declare -a flags - flags+=($buildFlags "''${buildFlagsArray[@]}") - flags+=(''${tags:+-tags=''${tags// /,}}) - flags+=(''${ldflags:+-ldflags="$ldflags"}) - flags+=("-p" "$NIX_BUILD_CORES") + declare -a flags + flags+=($buildFlags "''${buildFlagsArray[@]}") + flags+=(''${tags:+-tags=''${tags// /,}}) + flags+=(''${ldflags:+-ldflags="$ldflags"}) + flags+=("-p" "$NIX_BUILD_CORES") - if [ "$cmd" = "test" ]; then - flags+=(-vet=off) - flags+=($checkFlags) - fi + if [ "$cmd" = "test" ]; then + flags+=(-vet=off) + flags+=($checkFlags) + fi - local OUT - if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then - if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then - echo "$OUT" >&2 - return 1 - fi - fi - if [ -n "$OUT" ]; then - echo "$OUT" >&2 - fi - return 0 - } + local OUT + if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then + if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then + echo "$OUT" >&2 + return 1 + fi + fi + if [ -n "$OUT" ]; then + echo "$OUT" >&2 + fi + return 0 + } - getGoDirs() { - local type; - type="$1" - if [ -n "$subPackages" ]; then - echo "$subPackages" | sed "s,\(^\| \),\1./,g" - else - find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique | grep -v "$exclude" - fi - } + getGoDirs() { + local type; + type="$1" + if [ -n "$subPackages" ]; then + echo "$subPackages" | sed "s,\(^\| \),\1./,g" + else + find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique | grep -v "$exclude" + fi + } - if (( "''${NIX_DEBUG:-0}" >= 1 )); then - buildFlagsArray+=(-x) - fi + if (( "''${NIX_DEBUG:-0}" >= 1 )); then + buildFlagsArray+=(-x) + fi - if [ ''${#buildFlagsArray[@]} -ne 0 ]; then - declare -p buildFlagsArray > $TMPDIR/buildFlagsArray - else - touch $TMPDIR/buildFlagsArray - fi - if [ -z "$enableParallelBuilding" ]; then - export NIX_BUILD_CORES=1 - fi - for pkg in $(getGoDirs ""); do - echo "Building subPackage $pkg" - buildGoDir install "$pkg" - done - '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # normalize cross-compiled builds w.r.t. native builds - ( - dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH} - if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then - mv $dir/* $dir/.. - fi - if [[ -d $dir ]]; then - rmdir $dir - fi - ) - '' + '' - runHook postBuild - ''); + if [ ''${#buildFlagsArray[@]} -ne 0 ]; then + declare -p buildFlagsArray > $TMPDIR/buildFlagsArray + else + touch $TMPDIR/buildFlagsArray + fi + if [ -z "$enableParallelBuilding" ]; then + export NIX_BUILD_CORES=1 + fi + for pkg in $(getGoDirs ""); do + echo "Building subPackage $pkg" + buildGoDir install "$pkg" + done + '' + + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + # normalize cross-compiled builds w.r.t. native builds + ( + dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH} + if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then + mv $dir/* $dir/.. + fi + if [[ -d $dir ]]; then + rmdir $dir + fi + ) + '' + + '' + runHook postBuild + '' + ); - doCheck = args.doCheck or true; - checkPhase = args.checkPhase or '' - runHook preCheck - # We do not set trimpath for tests, in case they reference test assets - export GOFLAGS=''${GOFLAGS//-trimpath/} + doCheck = args.doCheck or true; + checkPhase = + args.checkPhase or '' + runHook preCheck + # We do not set trimpath for tests, in case they reference test assets + export GOFLAGS=''${GOFLAGS//-trimpath/} - for pkg in $(getGoDirs test); do - buildGoDir test "$pkg" - done + for pkg in $(getGoDirs test); do + buildGoDir test "$pkg" + done - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = args.installPhase or '' - runHook preInstall + installPhase = + args.installPhase or '' + runHook preInstall - mkdir -p $out - dir="$GOPATH/bin" - [ -e "$dir" ] && cp -r $dir $out + mkdir -p $out + dir="$GOPATH/bin" + [ -e "$dir" ] && cp -r $dir $out - runHook postInstall - ''; + runHook postInstall + ''; - strictDeps = true; + strictDeps = true; - disallowedReferences = lib.optional (!allowGoReference) go; + disallowedReferences = lib.optional (!allowGoReference) go; - passthru = passthru // { inherit go goModules vendorHash; }; + passthru = passthru // { + inherit go goModules vendorHash; + }; - meta = { - # Add default meta information - platforms = go.meta.platforms or lib.platforms.all; - } // meta; - }); + meta = { + # Add default meta information + platforms = go.meta.platforms or lib.platforms.all; + } // meta; + } + ); in lib.warnIf (buildFlags != "" || buildFlagsArray != "") "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`" -lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule" -lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true" -lib.warnIf (lib.any (lib.hasPrefix "-mod=") GOFLAGS) "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS" + lib.warnIf + (builtins.elem "-buildid=" ldflags) + "`-buildid=` is set by default as ldflag by buildGoModule" + lib.warnIf + (builtins.elem "-trimpath" GOFLAGS) + "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true" + lib.warnIf + (lib.any (lib.hasPrefix "-mod=") GOFLAGS) + "use `proxyVendor` to control Go module/vendor behavior instead of setting `-mod=` in GOFLAGS" package diff --git a/pkgs/build-support/go/package.nix b/pkgs/build-support/go/package.nix index 94a459c..bb95c68 100644 --- a/pkgs/build-support/go/package.nix +++ b/pkgs/build-support/go/package.nix @@ -1,292 +1,348 @@ -{ go, govers, lib, fetchgit, fetchhg, fetchbzr, rsync -, fetchFromGitHub, stdenv }: +{ + go, + govers, + lib, + fetchgit, + fetchhg, + fetchbzr, + rsync, + fetchFromGitHub, + stdenv, +}: -{ buildInputs ? [] -, nativeBuildInputs ? [] -, passthru ? {} -, preFixup ? "" -, shellHook ? "" +{ + buildInputs ? [ ], + nativeBuildInputs ? [ ], + passthru ? { }, + preFixup ? "", + shellHook ? "", -# We want parallel builds by default -, enableParallelBuilding ? true + # We want parallel builds by default + enableParallelBuilding ? true, -# Go import path of the package -, goPackagePath + # Go import path of the package + goPackagePath, -# Go package aliases -, goPackageAliases ? [ ] + # Go package aliases + goPackageAliases ? [ ], -# Extra sources to include in the gopath -, extraSrcs ? [ ] + # Extra sources to include in the gopath + extraSrcs ? [ ], -# Extra gopaths containing src subfolder -# with sources to include in the gopath -, extraSrcPaths ? [ ] + # Extra gopaths containing src subfolder + # with sources to include in the gopath + extraSrcPaths ? [ ], -# go2nix dependency file -, goDeps ? null + # go2nix dependency file + goDeps ? null, -# Whether to delete the vendor folder supplied with the source. -, deleteVendor ? false + # Whether to delete the vendor folder supplied with the source. + deleteVendor ? false, -, dontRenameImports ? false + dontRenameImports ? false, -# Do not enable this without good reason -# IE: programs coupled with the compiler -, allowGoReference ? false + # Do not enable this without good reason + # IE: programs coupled with the compiler + allowGoReference ? false, -, CGO_ENABLED ? go.CGO_ENABLED + CGO_ENABLED ? go.CGO_ENABLED, -, ldflags ? [ ] + ldflags ? [ ], -, GOFLAGS ? [ ] + GOFLAGS ? [ ], -# needed for buildFlags{,Array} warning -, buildFlags ? "" -, buildFlagsArray ? "" + # needed for buildFlags{,Array} warning + buildFlags ? "", + buildFlagsArray ? "", -, meta ? {}, ... } @ args: + meta ? { }, + ... +}@args: let - dep2src = goDep: - { - inherit (goDep) goPackagePath; - src = if goDep.fetch.type == "git" then - fetchgit { - inherit (goDep.fetch) url rev sha256; - } + dep2src = goDep: { + inherit (goDep) goPackagePath; + src = + if goDep.fetch.type == "git" then + fetchgit { inherit (goDep.fetch) url rev sha256; } else if goDep.fetch.type == "hg" then - fetchhg { - inherit (goDep.fetch) url rev sha256; - } + fetchhg { inherit (goDep.fetch) url rev sha256; } else if goDep.fetch.type == "bzr" then - fetchbzr { - inherit (goDep.fetch) url rev sha256; - } + fetchbzr { inherit (goDep.fetch) url rev sha256; } else if goDep.fetch.type == "FromGitHub" then fetchFromGitHub { - inherit (goDep.fetch) owner repo rev sha256; + inherit (goDep.fetch) + owner + repo + rev + sha256 + ; } - else abort "Unrecognized package fetch type: ${goDep.fetch.type}"; - }; + else + abort "Unrecognized package fetch type: ${goDep.fetch.type}"; + }; - importGodeps = { depsFile }: - map dep2src (import depsFile); + importGodeps = { depsFile }: map dep2src (import depsFile); - goPath = if goDeps != null then importGodeps { depsFile = goDeps; } ++ extraSrcs - else extraSrcs; + goPath = if goDeps != null then importGodeps { depsFile = goDeps; } ++ extraSrcs else extraSrcs; package = stdenv.mkDerivation ( - (builtins.removeAttrs args [ "goPackageAliases" "disabled" "extraSrcs"]) // { + (builtins.removeAttrs args [ + "goPackageAliases" + "disabled" + "extraSrcs" + ]) + // { - nativeBuildInputs = [ go ] - ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs; - buildInputs = buildInputs; + nativeBuildInputs = [ go ] ++ (lib.optional (!dontRenameImports) govers) ++ nativeBuildInputs; + buildInputs = buildInputs; - inherit (go) GOOS GOARCH GO386; + inherit (go) GOOS GOARCH GO386; - GOHOSTARCH = go.GOHOSTARCH or null; - GOHOSTOS = go.GOHOSTOS or null; + GOHOSTARCH = go.GOHOSTARCH or null; + GOHOSTOS = go.GOHOSTOS or null; - inherit CGO_ENABLED enableParallelBuilding; + inherit CGO_ENABLED enableParallelBuilding; - GO111MODULE = "off"; - GOTOOLCHAIN = "local"; - GOFLAGS = GOFLAGS ++ lib.optional (!allowGoReference) "-trimpath" ; + GO111MODULE = "off"; + GOTOOLCHAIN = "local"; + GOFLAGS = GOFLAGS ++ lib.optional (!allowGoReference) "-trimpath"; - GOARM = toString (lib.intersectLists [(stdenv.hostPlatform.parsed.cpu.version or "")] ["5" "6" "7"]); + GOARM = toString ( + lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ + "5" + "6" + "7" + ] + ); - # If not set to an explicit value, set the buildid empty for reproducibility. - ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid="; + # If not set to an explicit value, set the buildid empty for reproducibility. + ldflags = ldflags ++ lib.optional (!lib.any (lib.hasPrefix "-buildid=") ldflags) "-buildid="; - configurePhase = args.configurePhase or ('' - runHook preConfigure + configurePhase = + args.configurePhase or ( + '' + runHook preConfigure - # Extract the source - cd "$NIX_BUILD_TOP" - mkdir -p "go/src/$(dirname "$goPackagePath")" - mv "$sourceRoot" "go/src/$goPackagePath" + # Extract the source + cd "$NIX_BUILD_TOP" + mkdir -p "go/src/$(dirname "$goPackagePath")" + mv "$sourceRoot" "go/src/$goPackagePath" - '' + lib.optionalString deleteVendor '' - if [ ! -d "go/src/$goPackagePath/vendor" ]; then - echo "vendor folder does not exist, 'deleteVendor' is not needed" - exit 10 - else - rm -rf "go/src/$goPackagePath/vendor" - fi - '' + lib.optionalString (goDeps != null) '' - if [ -d "go/src/$goPackagePath/vendor" ]; then - echo "vendor folder exists, 'goDeps' is not needed" - exit 10 - fi - '' + lib.flip lib.concatMapStrings goPath ({ src, goPackagePath }: '' - mkdir goPath - (cd goPath; unpackFile "${src}") - mkdir -p "go/src/$(dirname "${goPackagePath}")" - chmod -R u+w goPath/* - mv goPath/* "go/src/${goPackagePath}" - rmdir goPath + '' + + lib.optionalString deleteVendor '' + if [ ! -d "go/src/$goPackagePath/vendor" ]; then + echo "vendor folder does not exist, 'deleteVendor' is not needed" + exit 10 + else + rm -rf "go/src/$goPackagePath/vendor" + fi + '' + + lib.optionalString (goDeps != null) '' + if [ -d "go/src/$goPackagePath/vendor" ]; then + echo "vendor folder exists, 'goDeps' is not needed" + exit 10 + fi + '' + + lib.flip lib.concatMapStrings goPath ( + { src, goPackagePath }: + '' + mkdir goPath + (cd goPath; unpackFile "${src}") + mkdir -p "go/src/$(dirname "${goPackagePath}")" + chmod -R u+w goPath/* + mv goPath/* "go/src/${goPackagePath}" + rmdir goPath - '') + (lib.optionalString (extraSrcPaths != []) '' - ${rsync}/bin/rsync -a ${lib.concatMapStringsSep " " (p: "${p}/src") extraSrcPaths} go + '' + ) + + (lib.optionalString (extraSrcPaths != [ ]) '' + ${rsync}/bin/rsync -a ${lib.concatMapStringsSep " " (p: "${p}/src") extraSrcPaths} go - '') + '' - export GOPATH=$NIX_BUILD_TOP/go:$GOPATH - export GOCACHE=$TMPDIR/go-cache + '') + + '' + export GOPATH=$NIX_BUILD_TOP/go:$GOPATH + export GOCACHE=$TMPDIR/go-cache - # currently pie is only enabled by default in pkgsMusl - # this will respect the `hardening{Disable,Enable}` flags if set - if [[ $NIX_HARDENING_ENABLE =~ "pie" ]]; then - export GOFLAGS="-buildmode=pie $GOFLAGS" - fi + # currently pie is only enabled by default in pkgsMusl + # this will respect the `hardening{Disable,Enable}` flags if set + if [[ $NIX_HARDENING_ENABLE =~ "pie" ]]; then + export GOFLAGS="-buildmode=pie $GOFLAGS" + fi - runHook postConfigure - ''); + runHook postConfigure + '' + ); - renameImports = args.renameImports or ( - let - inputsWithAliases = lib.filter (x: x ? goPackageAliases) - (buildInputs ++ (args.propagatedBuildInputs or [ ])); - rename = to: from: "echo Renaming '${from}' to '${to}'; govers -d -m ${from} ${to}"; - renames = p: lib.concatMapStringsSep "\n" (rename p.goPackagePath) p.goPackageAliases; - in lib.concatMapStringsSep "\n" renames inputsWithAliases); + renameImports = + args.renameImports or ( + let + inputsWithAliases = lib.filter (x: x ? goPackageAliases) ( + buildInputs ++ (args.propagatedBuildInputs or [ ]) + ); + rename = to: from: "echo Renaming '${from}' to '${to}'; govers -d -m ${from} ${to}"; + renames = p: lib.concatMapStringsSep "\n" (rename p.goPackagePath) p.goPackageAliases; + in + lib.concatMapStringsSep "\n" renames inputsWithAliases + ); - buildPhase = args.buildPhase or ('' - runHook preBuild + buildPhase = + args.buildPhase or ( + '' + runHook preBuild - runHook renameImports + runHook renameImports - exclude='\(/_\|examples\|Godeps\|testdata' - if [[ -n "$excludedPackages" ]]; then - IFS=' ' read -r -a excludedArr <<<$excludedPackages - printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}" - excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf - exclude+='\|'"$excludedAlternates" - fi - exclude+='\)' + exclude='\(/_\|examples\|Godeps\|testdata' + if [[ -n "$excludedPackages" ]]; then + IFS=' ' read -r -a excludedArr <<<$excludedPackages + printf -v excludedAlternates '%s\\|' "''${excludedArr[@]}" + excludedAlternates=''${excludedAlternates%\\|} # drop final \| added by printf + exclude+='\|'"$excludedAlternates" + fi + exclude+='\)' - buildGoDir() { - local cmd="$1" dir="$2" + buildGoDir() { + local cmd="$1" dir="$2" - . $TMPDIR/buildFlagsArray + . $TMPDIR/buildFlagsArray - declare -a flags - flags+=($buildFlags "''${buildFlagsArray[@]}") - flags+=(''${tags:+-tags=''${tags// /,}}) - flags+=(''${ldflags:+-ldflags="$ldflags"}) - flags+=("-p" "$NIX_BUILD_CORES") + declare -a flags + flags+=($buildFlags "''${buildFlagsArray[@]}") + flags+=(''${tags:+-tags=''${tags// /,}}) + flags+=(''${ldflags:+-ldflags="$ldflags"}) + flags+=("-p" "$NIX_BUILD_CORES") - if [ "$cmd" = "test" ]; then - flags+=(-vet=off) - flags+=($checkFlags) - fi + if [ "$cmd" = "test" ]; then + flags+=(-vet=off) + flags+=($checkFlags) + fi - local OUT - if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then - if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then - echo "$OUT" >&2 - return 1 - fi - fi - if [ -n "$OUT" ]; then - echo "$OUT" >&2 - fi - return 0 - } + local OUT + if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then + if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then + echo "$OUT" >&2 + return 1 + fi + fi + if [ -n "$OUT" ]; then + echo "$OUT" >&2 + fi + return 0 + } - getGoDirs() { - local type; - type="$1" - if [ -n "$subPackages" ]; then - echo "$subPackages" | sed "s,\(^\| \),\1$goPackagePath/,g" - else - pushd "$NIX_BUILD_TOP/go/src" >/dev/null - find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq | grep -v "$exclude" - popd >/dev/null - fi - } + getGoDirs() { + local type; + type="$1" + if [ -n "$subPackages" ]; then + echo "$subPackages" | sed "s,\(^\| \),\1$goPackagePath/,g" + else + pushd "$NIX_BUILD_TOP/go/src" >/dev/null + find "$goPackagePath" -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort | uniq | grep -v "$exclude" + popd >/dev/null + fi + } - if (( "''${NIX_DEBUG:-0}" >= 1 )); then - buildFlagsArray+=(-x) - fi + if (( "''${NIX_DEBUG:-0}" >= 1 )); then + buildFlagsArray+=(-x) + fi - if [ ''${#buildFlagsArray[@]} -ne 0 ]; then - declare -p buildFlagsArray > $TMPDIR/buildFlagsArray - else - touch $TMPDIR/buildFlagsArray - fi - if [ -z "$enableParallelBuilding" ]; then - export NIX_BUILD_CORES=1 - fi - for pkg in $(getGoDirs ""); do - echo "Building subPackage $pkg" - buildGoDir install "$pkg" - done - '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - # normalize cross-compiled builds w.r.t. native builds - ( - dir=$NIX_BUILD_TOP/go/bin/${go.GOOS}_${go.GOARCH} - if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then - mv $dir/* $dir/.. - fi - if [[ -d $dir ]]; then - rmdir $dir - fi - ) - '' + '' - runHook postBuild - ''); + if [ ''${#buildFlagsArray[@]} -ne 0 ]; then + declare -p buildFlagsArray > $TMPDIR/buildFlagsArray + else + touch $TMPDIR/buildFlagsArray + fi + if [ -z "$enableParallelBuilding" ]; then + export NIX_BUILD_CORES=1 + fi + for pkg in $(getGoDirs ""); do + echo "Building subPackage $pkg" + buildGoDir install "$pkg" + done + '' + + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + # normalize cross-compiled builds w.r.t. native builds + ( + dir=$NIX_BUILD_TOP/go/bin/${go.GOOS}_${go.GOARCH} + if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then + mv $dir/* $dir/.. + fi + if [[ -d $dir ]]; then + rmdir $dir + fi + ) + '' + + '' + runHook postBuild + '' + ); - doCheck = args.doCheck or false; - checkPhase = args.checkPhase or '' - runHook preCheck - # We do not set trimpath for tests, in case they reference test assets - export GOFLAGS=''${GOFLAGS//-trimpath/} + doCheck = args.doCheck or false; + checkPhase = + args.checkPhase or '' + runHook preCheck + # We do not set trimpath for tests, in case they reference test assets + export GOFLAGS=''${GOFLAGS//-trimpath/} - for pkg in $(getGoDirs test); do - buildGoDir test "$pkg" - done + for pkg in $(getGoDirs test); do + buildGoDir test "$pkg" + done - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = args.installPhase or '' - runHook preInstall + installPhase = + args.installPhase or '' + runHook preInstall - mkdir -p $out - dir="$NIX_BUILD_TOP/go/bin" - [ -e "$dir" ] && cp -r $dir $out + mkdir -p $out + dir="$NIX_BUILD_TOP/go/bin" + [ -e "$dir" ] && cp -r $dir $out - runHook postInstall - ''; + runHook postInstall + ''; - strictDeps = true; + strictDeps = true; - shellHook = '' - d=$(mktemp -d "--suffix=-$name") - '' + toString (map (dep: '' - mkdir -p "$d/src/$(dirname "${dep.goPackagePath}")" - ln -s "${dep.src}" "$d/src/${dep.goPackagePath}" - '' - ) goPath) + '' - export GOPATH=${lib.concatStringsSep ":" ( ["$d"] ++ ["$GOPATH"] ++ ["$PWD"] ++ extraSrcPaths)} - '' + shellHook; + shellHook = + '' + d=$(mktemp -d "--suffix=-$name") + '' + + toString ( + map (dep: '' + mkdir -p "$d/src/$(dirname "${dep.goPackagePath}")" + ln -s "${dep.src}" "$d/src/${dep.goPackagePath}" + '') goPath + ) + + '' + export GOPATH=${lib.concatStringsSep ":" ([ "$d" ] ++ [ "$GOPATH" ] ++ [ "$PWD" ] ++ extraSrcPaths)} + '' + + shellHook; - disallowedReferences = lib.optional (!allowGoReference) go - ++ lib.optional (!dontRenameImports) govers; + disallowedReferences = + lib.optional (!allowGoReference) go + ++ lib.optional (!dontRenameImports) govers; - passthru = passthru // - { inherit go; } // - lib.optionalAttrs (goPackageAliases != []) { inherit goPackageAliases; }; + passthru = + passthru + // { + inherit go; + } + // lib.optionalAttrs (goPackageAliases != [ ]) { inherit goPackageAliases; }; - meta = { - # Add default meta information - homepage = "https://${goPackagePath}"; - platforms = go.meta.platforms or lib.platforms.all; - } // meta; - }); + meta = { + # Add default meta information + homepage = "https://${goPackagePath}"; + platforms = go.meta.platforms or lib.platforms.all; + } // meta; + } + ); in lib.warnIf (buildFlags != "" || buildFlagsArray != "") "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`" -lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule" -lib.warnIf (builtins.elem "-trimpath" GOFLAGS) "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true" + lib.warnIf + (builtins.elem "-buildid=" ldflags) + "`-buildid=` is set by default as ldflag by buildGoModule" + lib.warnIf + (builtins.elem "-trimpath" GOFLAGS) + "`-trimpath` is added by default to GOFLAGS by buildGoModule when allowGoReference isn't set to true" package diff --git a/pkgs/build-support/icon-conv-tools/default.nix b/pkgs/build-support/icon-conv-tools/default.nix index 442f1f2..7abd163 100644 --- a/pkgs/build-support/icon-conv-tools/default.nix +++ b/pkgs/build-support/icon-conv-tools/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, icoutils }: +{ + lib, + stdenv, + icoutils, +}: stdenv.mkDerivation { pname = "icon-conv-tools"; diff --git a/pkgs/build-support/install-shell-files/default.nix b/pkgs/build-support/install-shell-files/default.nix index d50661d..697b488 100644 --- a/pkgs/build-support/install-shell-files/default.nix +++ b/pkgs/build-support/install-shell-files/default.nix @@ -6,7 +6,7 @@ let in setupHook.overrideAttrs (oldAttrs: { - passthru = (oldAttrs.passthru or {}) // { + passthru = (oldAttrs.passthru or { }) // { tests = tests.install-shell-files; }; }) diff --git a/pkgs/build-support/kernel/compress-firmware-xz.nix b/pkgs/build-support/kernel/compress-firmware-xz.nix index cb9ce7a..6ee9e00 100644 --- a/pkgs/build-support/kernel/compress-firmware-xz.nix +++ b/pkgs/build-support/kernel/compress-firmware-xz.nix @@ -4,7 +4,7 @@ firmware: let args = { - allowedRequisites = []; + allowedRequisites = [ ]; } // lib.optionalAttrs (firmware ? meta) { inherit (firmware) meta; }; in diff --git a/pkgs/build-support/kernel/initrd-compressor-meta.nix b/pkgs/build-support/kernel/initrd-compressor-meta.nix index 443e599..52e0099 100644 --- a/pkgs/build-support/kernel/initrd-compressor-meta.nix +++ b/pkgs/build-support/kernel/initrd-compressor-meta.nix @@ -6,7 +6,7 @@ rec { }; gzip = { executable = pkgs: "${pkgs.gzip}/bin/gzip"; - defaultArgs = ["-9n"]; + defaultArgs = [ "-9n" ]; ubootName = "gzip"; extension = ".gz"; }; @@ -17,18 +17,24 @@ rec { }; xz = { executable = pkgs: "${pkgs.xz}/bin/xz"; - defaultArgs = ["--check=crc32" "--lzma2=dict=512KiB"]; + defaultArgs = [ + "--check=crc32" + "--lzma2=dict=512KiB" + ]; extension = ".xz"; }; lzma = { executable = pkgs: "${pkgs.xz}/bin/lzma"; - defaultArgs = ["--check=crc32" "--lzma1=dict=512KiB"]; + defaultArgs = [ + "--check=crc32" + "--lzma1=dict=512KiB" + ]; ubootName = "lzma"; extension = ".lzma"; }; lz4 = { executable = pkgs: "${pkgs.lz4}/bin/lz4"; - defaultArgs = ["-l"]; + defaultArgs = [ "-l" ]; ubootName = "lz4"; extension = ".lz4"; }; @@ -39,7 +45,7 @@ rec { }; zstd = { executable = pkgs: "${pkgs.zstd}/bin/zstd"; - defaultArgs = ["-10"]; + defaultArgs = [ "-10" ]; ubootName = "zstd"; extension = ".zst"; }; @@ -48,6 +54,6 @@ rec { }; pixz = xz // { executable = pkgs: "${pkgs.pixz}/bin/pixz"; - defaultArgs = []; + defaultArgs = [ ]; }; } diff --git a/pkgs/build-support/kernel/make-initrd-ng-tool.nix b/pkgs/build-support/kernel/make-initrd-ng-tool.nix index 5e08c09..5fddb3a 100644 --- a/pkgs/build-support/kernel/make-initrd-ng-tool.nix +++ b/pkgs/build-support/kernel/make-initrd-ng-tool.nix @@ -1,4 +1,11 @@ -{ rustPlatform, lib, makeWrapper, patchelf, glibc, binutils }: +{ + rustPlatform, + lib, + makeWrapper, + patchelf, + glibc, + binutils, +}: rustPlatform.buildRustPackage { pname = "make-initrd-ng"; @@ -12,7 +19,12 @@ rustPlatform.buildRustPackage { meta = { description = "Tool for copying binaries and their dependencies"; mainProgram = "make-initrd-ng"; - maintainers = with lib.maintainers; [ das_j elvishjerricco k900 lheckemann ]; + maintainers = with lib.maintainers; [ + das_j + elvishjerricco + k900 + lheckemann + ]; license = lib.licenses.mit; }; } diff --git a/pkgs/build-support/kernel/make-initrd-ng.nix b/pkgs/build-support/kernel/make-initrd-ng.nix index 65e143c..7384d16 100644 --- a/pkgs/build-support/kernel/make-initrd-ng.nix +++ b/pkgs/build-support/kernel/make-initrd-ng.nix @@ -8,90 +8,119 @@ let # compression type and filename extension. compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1; in -{ stdenvNoCC, libarchive, ubootTools, lib, pkgsBuildHost, makeInitrdNGTool, binutils, runCommand -# Name of the derivation (not of the resulting file!) -, name ? "initrd" +{ + stdenvNoCC, + libarchive, + ubootTools, + lib, + pkgsBuildHost, + makeInitrdNGTool, + binutils, + runCommand, + # Name of the derivation (not of the resulting file!) + name ? "initrd", -, strip ? true + strip ? true, -# Program used to compress the cpio archive; use "cat" for no compression. -# This can also be a function which takes a package set and returns the path to the compressor, -# such as `pkgs: "${pkgs.lzop}/bin/lzop"`. -, compressor ? "gzip" -, _compressorFunction ? - if lib.isFunction compressor then compressor - else if ! builtins.hasContext compressor && builtins.hasAttr compressor compressors then compressors.${compressor}.executable - else _: compressor -, _compressorExecutable ? _compressorFunction pkgsBuildHost -, _compressorName ? compressorName _compressorExecutable -, _compressorMeta ? compressors.${_compressorName} or {} + # Program used to compress the cpio archive; use "cat" for no compression. + # This can also be a function which takes a package set and returns the path to the compressor, + # such as `pkgs: "${pkgs.lzop}/bin/lzop"`. + compressor ? "gzip", + _compressorFunction ? + if lib.isFunction compressor then + compressor + else if !builtins.hasContext compressor && builtins.hasAttr compressor compressors then + compressors.${compressor}.executable + else + _: compressor, + _compressorExecutable ? _compressorFunction pkgsBuildHost, + _compressorName ? compressorName _compressorExecutable, + _compressorMeta ? compressors.${_compressorName} or { }, -# List of arguments to pass to the compressor program, or null to use its defaults -, compressorArgs ? null -, _compressorArgsReal ? if compressorArgs == null then _compressorMeta.defaultArgs or [] else compressorArgs + # List of arguments to pass to the compressor program, or null to use its defaults + compressorArgs ? null, + _compressorArgsReal ? + if compressorArgs == null then _compressorMeta.defaultArgs or [ ] else compressorArgs, -# Filename extension to use for the compressed initramfs. This is -# included for clarity, but $out/initrd will always be a symlink to -# the final image. -# If this isn't guessed, you may want to complete the metadata above and send a PR :) -, extension ? _compressorMeta.extension or - (throw "Unrecognised compressor ${_compressorName}, please specify filename extension") + # Filename extension to use for the compressed initramfs. This is + # included for clarity, but $out/initrd will always be a symlink to + # the final image. + # If this isn't guessed, you may want to complete the metadata above and send a PR :) + extension ? + _compressorMeta.extension + or (throw "Unrecognised compressor ${_compressorName}, please specify filename extension"), -# List of { object = path_or_derivation; symlink = "/path"; } -# The paths are copied into the initramfs in their nix store path -# form, then linked at the root according to `symlink`. -, contents + # List of { object = path_or_derivation; symlink = "/path"; } + # The paths are copied into the initramfs in their nix store path + # form, then linked at the root according to `symlink`. + contents, -# List of uncompressed cpio files to prepend to the initramfs. This -# can be used to add files in specified paths without them becoming -# symlinks to store paths. -, prepend ? [] + # List of uncompressed cpio files to prepend to the initramfs. This + # can be used to add files in specified paths without them becoming + # symlinks to store paths. + prepend ? [ ], -# Whether to wrap the initramfs in a u-boot image. -, makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target == "uImage" + # Whether to wrap the initramfs in a u-boot image. + makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target == "uImage", -# If generating a u-boot image, the architecture to use. The default -# guess may not align with u-boot's nomenclature correctly, so it can -# be overridden. -# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list. -, uInitrdArch ? stdenvNoCC.hostPlatform.ubootArch + # If generating a u-boot image, the architecture to use. The default + # guess may not align with u-boot's nomenclature correctly, so it can + # be overridden. + # See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list. + uInitrdArch ? stdenvNoCC.hostPlatform.ubootArch, -# The name of the compression, as recognised by u-boot. -# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list. -# If this isn't guessed, you may want to complete the metadata above and send a PR :) -, uInitrdCompression ? _compressorMeta.ubootName or - (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression") -}: runCommand name ({ - compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}"; - passthru = { - compressorExecutableFunction = _compressorFunction; - compressorArgs = _compressorArgsReal; - }; + # The name of the compression, as recognised by u-boot. + # See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list. + # If this isn't guessed, you may want to complete the metadata above and send a PR :) + uInitrdCompression ? + _compressorMeta.ubootName + or (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression"), +}: +runCommand name + ({ + compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}"; + passthru = { + compressorExecutableFunction = _compressorFunction; + compressorArgs = _compressorArgsReal; + }; - inherit extension makeUInitrd uInitrdArch prepend; - ${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression; + inherit + extension + makeUInitrd + uInitrdArch + prepend + ; + ${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression; - passAsFile = ["contents"]; - contents = lib.concatMapStringsSep "\n" ({ object, symlink, ... }: "${object}\n${lib.optionalString (symlink != null) symlink}") contents + "\n"; + passAsFile = [ "contents" ]; + contents = + lib.concatMapStringsSep "\n" ( + { object, symlink, ... }: "${object}\n${lib.optionalString (symlink != null) symlink}" + ) contents + + "\n"; - nativeBuildInputs = [makeInitrdNGTool libarchive] ++ lib.optional makeUInitrd ubootTools ++ lib.optional strip binutils; + nativeBuildInputs = [ + makeInitrdNGTool + libarchive + ] ++ lib.optional makeUInitrd ubootTools ++ lib.optional strip binutils; - STRIP = if strip then "${pkgsBuildHost.binutils.targetPrefix}strip" else null; -}) '' - mkdir -p ./root/var/empty - make-initrd-ng "$contentsPath" ./root - mkdir "$out" - (cd root && find . -exec touch -h -d '@1' '{}' +) - for PREP in $prepend; do - cat $PREP >> $out/initrd - done - (cd root && find . -print0 | sort -z | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- | eval -- $compress >> "$out/initrd") + STRIP = if strip then "${pkgsBuildHost.binutils.targetPrefix}strip" else null; + }) + '' + mkdir -p ./root/var/empty + make-initrd-ng "$contentsPath" ./root + mkdir "$out" + (cd root && find . -exec touch -h -d '@1' '{}' +) + for PREP in $prepend; do + cat $PREP >> $out/initrd + done + (cd root && find . -print0 | sort -z | bsdtar --uid 0 --gid 0 -cnf - -T - | bsdtar --null -cf - --format=newc @- | eval -- $compress >> "$out/initrd") - if [ -n "$makeUInitrd" ]; then - mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img - # Compatibility symlink - ln -sf "initrd.img" "$out/initrd" - else - ln -s "initrd" "$out/initrd$extension" - fi -'' + if [ -n "$makeUInitrd" ]; then + mkimage -A "$uInitrdArch" -O linux -T ramdisk -C "$uInitrdCompression" -d "$out/initrd" $out/initrd.img + # Compatibility symlink + ln -sf "initrd.img" "$out/initrd" + else + ln -s "initrd" "$out/initrd$extension" + fi + '' diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix index 9c27a14..ebbabe7 100644 --- a/pkgs/build-support/kernel/make-initrd.nix +++ b/pkgs/build-support/kernel/make-initrd.nix @@ -18,72 +18,93 @@ let # compression type and filename extension. compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1; in -{ stdenvNoCC, perl, libarchive, ubootTools, lib, pkgsBuildHost -# Name of the derivation (not of the resulting file!) -, name ? "initrd" +{ + stdenvNoCC, + perl, + libarchive, + ubootTools, + lib, + pkgsBuildHost, + # Name of the derivation (not of the resulting file!) + name ? "initrd", -# Program used to compress the cpio archive; use "cat" for no compression. -# This can also be a function which takes a package set and returns the path to the compressor, -# such as `pkgs: "${pkgs.lzop}/bin/lzop"`. -, compressor ? "gzip" -, _compressorFunction ? - if lib.isFunction compressor then compressor - else if ! builtins.hasContext compressor && builtins.hasAttr compressor compressors then compressors.${compressor}.executable - else _: compressor -, _compressorExecutable ? _compressorFunction pkgsBuildHost -, _compressorName ? compressorName _compressorExecutable -, _compressorMeta ? compressors.${_compressorName} or {} + # Program used to compress the cpio archive; use "cat" for no compression. + # This can also be a function which takes a package set and returns the path to the compressor, + # such as `pkgs: "${pkgs.lzop}/bin/lzop"`. + compressor ? "gzip", + _compressorFunction ? + if lib.isFunction compressor then + compressor + else if !builtins.hasContext compressor && builtins.hasAttr compressor compressors then + compressors.${compressor}.executable + else + _: compressor, + _compressorExecutable ? _compressorFunction pkgsBuildHost, + _compressorName ? compressorName _compressorExecutable, + _compressorMeta ? compressors.${_compressorName} or { }, -# List of arguments to pass to the compressor program, or null to use its defaults -, compressorArgs ? null -, _compressorArgsReal ? if compressorArgs == null then _compressorMeta.defaultArgs or [] else compressorArgs + # List of arguments to pass to the compressor program, or null to use its defaults + compressorArgs ? null, + _compressorArgsReal ? + if compressorArgs == null then _compressorMeta.defaultArgs or [ ] else compressorArgs, -# Filename extension to use for the compressed initramfs. This is -# included for clarity, but $out/initrd will always be a symlink to -# the final image. -# If this isn't guessed, you may want to complete the metadata above and send a PR :) -, extension ? _compressorMeta.extension or - (throw "Unrecognised compressor ${_compressorName}, please specify filename extension") + # Filename extension to use for the compressed initramfs. This is + # included for clarity, but $out/initrd will always be a symlink to + # the final image. + # If this isn't guessed, you may want to complete the metadata above and send a PR :) + extension ? + _compressorMeta.extension + or (throw "Unrecognised compressor ${_compressorName}, please specify filename extension"), -# List of { object = path_or_derivation; symlink = "/path"; } -# The paths are copied into the initramfs in their nix store path -# form, then linked at the root according to `symlink`. -, contents + # List of { object = path_or_derivation; symlink = "/path"; } + # The paths are copied into the initramfs in their nix store path + # form, then linked at the root according to `symlink`. + contents, -# List of uncompressed cpio files to prepend to the initramfs. This -# can be used to add files in specified paths without them becoming -# symlinks to store paths. -, prepend ? [] + # List of uncompressed cpio files to prepend to the initramfs. This + # can be used to add files in specified paths without them becoming + # symlinks to store paths. + prepend ? [ ], -# Whether to wrap the initramfs in a u-boot image. -, makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target == "uImage" + # Whether to wrap the initramfs in a u-boot image. + makeUInitrd ? stdenvNoCC.hostPlatform.linux-kernel.target == "uImage", -# If generating a u-boot image, the architecture to use. The default -# guess may not align with u-boot's nomenclature correctly, so it can -# be overridden. -# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list. -, uInitrdArch ? stdenvNoCC.hostPlatform.linuxArch + # If generating a u-boot image, the architecture to use. The default + # guess may not align with u-boot's nomenclature correctly, so it can + # be overridden. + # See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list. + uInitrdArch ? stdenvNoCC.hostPlatform.linuxArch, -# The name of the compression, as recognised by u-boot. -# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list. -# If this isn't guessed, you may want to complete the metadata above and send a PR :) -, uInitrdCompression ? _compressorMeta.ubootName or - (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression") + # The name of the compression, as recognised by u-boot. + # See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list. + # If this isn't guessed, you may want to complete the metadata above and send a PR :) + uInitrdCompression ? + _compressorMeta.ubootName + or (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression"), }: let # !!! Move this into a public lib function, it is probably useful for others - toValidStoreName = x: with builtins; - lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x)); + toValidStoreName = + x: with builtins; lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x)); -in stdenvNoCC.mkDerivation rec { - inherit name makeUInitrd extension uInitrdArch prepend; +in +stdenvNoCC.mkDerivation rec { + inherit + name + makeUInitrd + extension + uInitrdArch + prepend + ; ${if makeUInitrd then "uInitrdCompression" else null} = uInitrdCompression; builder = ./make-initrd.sh; - nativeBuildInputs = [ perl libarchive ] - ++ lib.optional makeUInitrd ubootTools; + nativeBuildInputs = [ + perl + libarchive + ] ++ lib.optional makeUInitrd ubootTools; compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}"; @@ -104,10 +125,9 @@ in stdenvNoCC.mkDerivation rec { # For obtaining the closure of `contents'. # Note: we don't use closureInfo yet, as that won't build with nix-1.x. # See #36268. - exportReferencesGraph = - lib.zipListsWith - (x: i: [("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") x.object]) - contents - (lib.range 0 (lib.length contents - 1)); + exportReferencesGraph = lib.zipListsWith (x: i: [ + ("closure-${toValidStoreName (baseNameOf x.symlink)}-${toString i}") + x.object + ]) contents (lib.range 0 (lib.length contents - 1)); pathsFromGraph = ./paths-from-graph.pl; } diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix index d82e279..a830c97 100644 --- a/pkgs/build-support/kernel/modules-closure.nix +++ b/pkgs/build-support/kernel/modules-closure.nix @@ -3,13 +3,28 @@ # the modules identified by `rootModules', plus their dependencies. # Also generate an appropriate modules.dep. -{ stdenvNoCC, kernel, firmware, nukeReferences, rootModules -, kmod, allowMissing ? false }: +{ + stdenvNoCC, + kernel, + firmware, + nukeReferences, + rootModules, + kmod, + allowMissing ? false, +}: stdenvNoCC.mkDerivation { name = kernel.name + "-shrunk"; builder = ./modules-closure.sh; - nativeBuildInputs = [ nukeReferences kmod ]; - inherit kernel firmware rootModules allowMissing; - allowedReferences = ["out"]; + nativeBuildInputs = [ + nukeReferences + kmod + ]; + inherit + kernel + firmware + rootModules + allowMissing + ; + allowedReferences = [ "out" ]; } diff --git a/pkgs/build-support/lib/cmake.nix b/pkgs/build-support/lib/cmake.nix index 57fa586..2ecea65 100644 --- a/pkgs/build-support/lib/cmake.nix +++ b/pkgs/build-support/lib/cmake.nix @@ -1,30 +1,51 @@ { stdenv, lib }: let - inherit (lib) findFirst isString optional optionals; + inherit (lib) + findFirst + isString + optional + optionals + ; - cmakeFlags' = - optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([ - "-DCMAKE_SYSTEM_NAME=${findFirst isString "Generic" (optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}" - ] ++ optionals (stdenv.hostPlatform.uname.processor != null) [ + cmakeFlags' = optionals (stdenv.hostPlatform != stdenv.buildPlatform) ( + [ + "-DCMAKE_SYSTEM_NAME=${ + findFirst isString "Generic" ( + optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system + ) + }" + ] + ++ optionals (stdenv.hostPlatform.uname.processor != null) [ "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}" - ] ++ optionals (stdenv.hostPlatform.uname.release != null) [ + ] + ++ optionals (stdenv.hostPlatform.uname.release != null) [ "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}" - ] ++ optionals (stdenv.hostPlatform.isDarwin) [ + ] + ++ optionals (stdenv.hostPlatform.isDarwin) [ "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}" - ] ++ optionals (stdenv.buildPlatform.uname.system != null) [ + ] + ++ optionals (stdenv.buildPlatform.uname.system != null) [ "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}" - ] ++ optionals (stdenv.buildPlatform.uname.processor != null) [ + ] + ++ optionals (stdenv.buildPlatform.uname.processor != null) [ "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}" - ] ++ optionals (stdenv.buildPlatform.uname.release != null) [ + ] + ++ optionals (stdenv.buildPlatform.uname.release != null) [ "-DCMAKE_HOST_SYSTEM_VERSION=${stdenv.buildPlatform.uname.release}" - ] ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + ] + ++ optionals (stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ "-DCMAKE_CROSSCOMPILING_EMULATOR=env" - ] ++ optionals stdenv.hostPlatform.isStatic [ - "-DCMAKE_LINK_SEARCH_START_STATIC=ON" - ]); + ] + ++ optionals stdenv.hostPlatform.isStatic [ "-DCMAKE_LINK_SEARCH_START_STATIC=ON" ] + ); - makeCMakeFlags = { cmakeFlags ? [], ... }: cmakeFlags ++ cmakeFlags'; + makeCMakeFlags = + { + cmakeFlags ? [ ], + ... + }: + cmakeFlags ++ cmakeFlags'; in { diff --git a/pkgs/build-support/lib/meson.nix b/pkgs/build-support/lib/meson.nix index 456c10f..e9fc72c 100644 --- a/pkgs/build-support/lib/meson.nix +++ b/pkgs/build-support/lib/meson.nix @@ -4,10 +4,15 @@ let inherit (lib) boolToString optionals; # See https://mesonbuild.com/Reference-tables.html#cpu-families - cpuFamily = platform: with platform; - /**/ if isAarch32 then "arm" - else if isx86_32 then "x86" - else platform.uname.processor; + cpuFamily = + platform: + with platform; + if isAarch32 then + "arm" + else if isx86_32 then + "x86" + else + platform.uname.processor; crossFile = builtins.toFile "cross-file.conf" '' [properties] @@ -25,9 +30,16 @@ let rust = ['rustc', '--target', '${stdenv.targetPlatform.rust.rustcTargetSpec}'] ''; - crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--cross-file=${crossFile}" ]; + crossFlags = optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "--cross-file=${crossFile}" + ]; - makeMesonFlags = { mesonFlags ? [], ... }: crossFlags ++ mesonFlags; + makeMesonFlags = + { + mesonFlags ? [ ], + ... + }: + crossFlags ++ mesonFlags; in { diff --git a/pkgs/build-support/libredirect/default.nix b/pkgs/build-support/libredirect/default.nix index 1ab4a0d..dd5a969 100644 --- a/pkgs/build-support/libredirect/default.nix +++ b/pkgs/build-support/libredirect/default.nix @@ -1,122 +1,150 @@ -{ lib, stdenv, bintools-unwrapped, llvmPackages, llvmPackages_13, coreutils }: +{ + lib, + stdenv, + bintools-unwrapped, + llvmPackages, + llvmPackages_13, + coreutils, +}: let # aarch64-darwin needs a clang that can build arm64e binaries, so make sure a version of LLVM # is used that can do that, but prefer the stdenv one if it is new enough. - llvmPkgs = if (lib.versionAtLeast (lib.getVersion llvmPackages.clang) "13") - then llvmPackages - else llvmPackages_13; - in -if stdenv.hostPlatform.isStatic -then throw '' - libredirect is not available on static builds. + llvmPkgs = + if (lib.versionAtLeast (lib.getVersion llvmPackages.clang) "13") then + llvmPackages + else + llvmPackages_13; +in +if stdenv.hostPlatform.isStatic then + throw '' + libredirect is not available on static builds. - Please fix your derivation to not depend on libredirect on static - builds, using something like following: + Please fix your derivation to not depend on libredirect on static + builds, using something like following: - nativeBuildInputs = - lib.optional (!stdenv.buildPlatform.isStatic) libredirect; + nativeBuildInputs = + lib.optional (!stdenv.buildPlatform.isStatic) libredirect; - and disable tests as necessary, although fixing tests to work without - libredirect is even better. + and disable tests as necessary, although fixing tests to work without + libredirect is even better. - libredirect uses LD_PRELOAD feature of dynamic loader and does not - work on static builds where dynamic loader is not used. + libredirect uses LD_PRELOAD feature of dynamic loader and does not + work on static builds where dynamic loader is not used. '' -else stdenv.mkDerivation rec { - pname = "libredirect"; - version = "0"; +else + stdenv.mkDerivation rec { + pname = "libredirect"; + version = "0"; - unpackPhase = '' - cp ${./libredirect.c} libredirect.c - cp ${./test.c} test.c - ''; - - outputs = ["out" "hook"]; - - libName = "libredirect" + stdenv.hostPlatform.extensions.sharedLibrary; - - buildPhase = '' - runHook preBuild - - ${if stdenv.isDarwin && stdenv.isAarch64 then '' - # We need the unwrapped binutils and clang: - # We also want to build a fat library with x86_64, arm64, arm64e in there. - # Because we use the unwrapped tools, we need to provide -isystem for headers - # and the library search directory for libdl. - # We can't build this on x86_64, because the libSystem we point to doesn't - # like arm64(e). - PATH=${bintools-unwrapped}/bin:${llvmPkgs.clang-unwrapped}/bin:$PATH \ - clang -arch x86_64 -arch arm64 -arch arm64e \ - -isystem ${llvmPkgs.clang.libc}/include \ - -isystem ${llvmPkgs.libclang.lib}/lib/clang/*/include \ - -L${llvmPkgs.clang.libc}/lib \ - -Wl,-install_name,$libName \ - -Wall -std=c99 -O3 -fPIC libredirect.c \ - -shared -o "$libName" - '' else if stdenv.isDarwin then '' - $CC -Wall -std=c99 -O3 -fPIC libredirect.c \ - -Wl,-install_name,$out/lib/$libName \ - -shared -o "$libName" - '' else '' - $CC -Wall -std=c99 -O3 -fPIC libredirect.c \ - -shared -o "$libName" - ''} - - if [ -n "$doInstallCheck" ]; then - $CC -Wall -std=c99 \ - ${lib.optionalString (!stdenv.isDarwin) "-D_GNU_SOURCE"} \ - -O3 test.c -o test - fi - - runHook postBuild - ''; - - # We want to retain debugging info to be able to use GDB on libredirect.so - # to more easily investigate which function overrides are missing or why - # existing ones do not have the intended effect. - dontStrip = true; - - installPhase = '' - runHook preInstall - - install -vD "$libName" "$out/lib/$libName" - - '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' - # dylib will be rejected unless dylib rpath gets explictly set - install_name_tool \ - -change $libName $out/lib/$libName \ - $out/lib/$libName - '' + '' - # Provide a setup hook that injects our library into every process. - mkdir -p "$hook/nix-support" - cat < "$hook/nix-support/setup-hook" - ${if stdenv.isDarwin then '' - export DYLD_INSERT_LIBRARIES="$out/lib/$libName" - '' else '' - export LD_PRELOAD="$out/lib/$libName" - ''} - SETUP_HOOK - - runHook postInstall - ''; - - doInstallCheck = true; - - installCheckPhase = '' - ( - source "$hook/nix-support/setup-hook" - NIX_REDIRECTS="/foo/bar/test=${coreutils}/bin/true:/bar/baz=$(mktemp -d)" ./test - ) - ''; - - meta = with lib; { - platforms = platforms.unix; - description = "An LD_PRELOAD library to intercept and rewrite the paths in glibc calls"; - longDescription = '' - libredirect is an LD_PRELOAD library to intercept and rewrite the paths in - glibc calls based on the value of $NIX_REDIRECTS, a colon-separated list - of path prefixes to be rewritten, e.g. "/src=/dst:/usr/=/nix/store/". + unpackPhase = '' + cp ${./libredirect.c} libredirect.c + cp ${./test.c} test.c ''; - }; -} + + outputs = [ + "out" + "hook" + ]; + + libName = "libredirect" + stdenv.hostPlatform.extensions.sharedLibrary; + + buildPhase = '' + runHook preBuild + + ${ + if stdenv.isDarwin && stdenv.isAarch64 then + '' + # We need the unwrapped binutils and clang: + # We also want to build a fat library with x86_64, arm64, arm64e in there. + # Because we use the unwrapped tools, we need to provide -isystem for headers + # and the library search directory for libdl. + # We can't build this on x86_64, because the libSystem we point to doesn't + # like arm64(e). + PATH=${bintools-unwrapped}/bin:${llvmPkgs.clang-unwrapped}/bin:$PATH \ + clang -arch x86_64 -arch arm64 -arch arm64e \ + -isystem ${llvmPkgs.clang.libc}/include \ + -isystem ${llvmPkgs.libclang.lib}/lib/clang/*/include \ + -L${llvmPkgs.clang.libc}/lib \ + -Wl,-install_name,$libName \ + -Wall -std=c99 -O3 -fPIC libredirect.c \ + -shared -o "$libName" + '' + else if stdenv.isDarwin then + '' + $CC -Wall -std=c99 -O3 -fPIC libredirect.c \ + -Wl,-install_name,$out/lib/$libName \ + -shared -o "$libName" + '' + else + '' + $CC -Wall -std=c99 -O3 -fPIC libredirect.c \ + -shared -o "$libName" + '' + } + + if [ -n "$doInstallCheck" ]; then + $CC -Wall -std=c99 \ + ${lib.optionalString (!stdenv.isDarwin) "-D_GNU_SOURCE"} \ + -O3 test.c -o test + fi + + runHook postBuild + ''; + + # We want to retain debugging info to be able to use GDB on libredirect.so + # to more easily investigate which function overrides are missing or why + # existing ones do not have the intended effect. + dontStrip = true; + + installPhase = + '' + runHook preInstall + + install -vD "$libName" "$out/lib/$libName" + + '' + + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' + # dylib will be rejected unless dylib rpath gets explictly set + install_name_tool \ + -change $libName $out/lib/$libName \ + $out/lib/$libName + '' + + '' + # Provide a setup hook that injects our library into every process. + mkdir -p "$hook/nix-support" + cat < "$hook/nix-support/setup-hook" + ${ + if stdenv.isDarwin then + '' + export DYLD_INSERT_LIBRARIES="$out/lib/$libName" + '' + else + '' + export LD_PRELOAD="$out/lib/$libName" + '' + } + SETUP_HOOK + + runHook postInstall + ''; + + doInstallCheck = true; + + installCheckPhase = '' + ( + source "$hook/nix-support/setup-hook" + NIX_REDIRECTS="/foo/bar/test=${coreutils}/bin/true:/bar/baz=$(mktemp -d)" ./test + ) + ''; + + meta = with lib; { + platforms = platforms.unix; + description = "An LD_PRELOAD library to intercept and rewrite the paths in glibc calls"; + longDescription = '' + libredirect is an LD_PRELOAD library to intercept and rewrite the paths in + glibc calls based on the value of $NIX_REDIRECTS, a colon-separated list + of path prefixes to be rewritten, e.g. "/src=/dst:/usr/=/nix/store/". + ''; + }; + } diff --git a/pkgs/build-support/make-darwin-bundle/default.nix b/pkgs/build-support/make-darwin-bundle/default.nix index 52dd54b..289deb4 100644 --- a/pkgs/build-support/make-darwin-bundle/default.nix +++ b/pkgs/build-support/make-darwin-bundle/default.nix @@ -3,11 +3,16 @@ # applications. If the package conatins a .desktop file use # `desktopToDarwinLauncher` instead. -{ lib, writeShellScript, writeDarwinBundle }: +{ + lib, + writeShellScript, + writeDarwinBundle, +}: -{ name # The name of the Application file. -, exec # Executable file. -, icon ? "" # Optional icon file. +{ + name, # The name of the Application file. + exec, # Executable file. + icon ? "", # Optional icon file. }: writeShellScript "make-darwin-bundle-${name}" ('' diff --git a/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix b/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix index 752cbbd..9cf7ab2 100644 --- a/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix +++ b/pkgs/build-support/make-darwin-bundle/write-darwin-bundle.nix @@ -1,4 +1,8 @@ -{ writeScriptBin, lib, makeBinaryWrapper }: +{ + writeScriptBin, + lib, + makeBinaryWrapper, +}: let pListText = lib.generators.toPlist { } { @@ -12,36 +16,37 @@ let CFBundlePackageType = "APPL"; CFBundleSignature = "???"; }; -in writeScriptBin "write-darwin-bundle" '' - shopt -s nullglob +in +writeScriptBin "write-darwin-bundle" '' + shopt -s nullglob - readonly prefix=$1 - readonly name=$2 - # TODO: support executables with spaces in their names - readonly execName=''${3%% *} # Before the first space - [[ $3 =~ " " ]] && readonly execArgs=''${3#* } # Everything after the first space - readonly icon=$4.icns - readonly squircle=''${5:-1} - readonly plist=$prefix/Applications/$name.app/Contents/Info.plist - readonly binary=$prefix/bin/$execName - readonly bundleExecutable=$prefix/Applications/$name.app/Contents/MacOS/$name + readonly prefix=$1 + readonly name=$2 + # TODO: support executables with spaces in their names + readonly execName=''${3%% *} # Before the first space + [[ $3 =~ " " ]] && readonly execArgs=''${3#* } # Everything after the first space + readonly icon=$4.icns + readonly squircle=''${5:-1} + readonly plist=$prefix/Applications/$name.app/Contents/Info.plist + readonly binary=$prefix/bin/$execName + readonly bundleExecutable=$prefix/Applications/$name.app/Contents/MacOS/$name - cat > "$plist" < "$plist" <|d' -i "$plist" - fi + if [[ $squircle == 0 || $squircle == "false" ]]; then + sed '/CFBundleIconFiles/,\||d' -i "$plist" + fi - if [[ -n "$execArgs" ]]; then - ( - source ${makeBinaryWrapper}/nix-support/setup-hook - # WORKAROUND: makeBinaryWrapper fails when -u is set - set +u - makeBinaryWrapper "$binary" "$bundleExecutable" --add-flags "$execArgs" - ) - else - ln -s "$binary" "$bundleExecutable" - fi + if [[ -n "$execArgs" ]]; then + ( + source ${makeBinaryWrapper}/nix-support/setup-hook + # WORKAROUND: makeBinaryWrapper fails when -u is set + set +u + makeBinaryWrapper "$binary" "$bundleExecutable" --add-flags "$execArgs" + ) + else + ln -s "$binary" "$bundleExecutable" + fi '' diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix index ccceb23..b2ddaec 100644 --- a/pkgs/build-support/make-desktopitem/default.nix +++ b/pkgs/build-support/make-desktopitem/default.nix @@ -1,118 +1,142 @@ -{ lib, writeTextFile, buildPackages }: +{ + lib, + writeTextFile, + buildPackages, +}: # All possible values as defined by the spec, version 1.4. # Please keep in spec order for easier maintenance. # When adding a new value, don't forget to update the Version field below! # See https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html -lib.makeOverridable ({ name # The name of the desktop file -, type ? "Application" -# version is hardcoded -, desktopName # The name of the application -, genericName ? null -, noDisplay ? null -, comment ? null -, icon ? null -# we don't support the Hidden key - if you don't need something, just don't install it -, onlyShowIn ? [] -, notShowIn ? [] -, dbusActivatable ? null -, tryExec ? null -, exec ? null -, path ? null -, terminal ? null -, actions ? {} # An attrset of [internal name] -> { name, exec?, icon? } -, mimeTypes ? [] # The spec uses "MimeType" as singular, use plural here to signify list-ness -, categories ? [] -, implements ? [] -, keywords ? [] -, startupNotify ? null -, startupWMClass ? null -, url ? null -, prefersNonDefaultGPU ? null -# not supported until version 1.5, which is not supported by our desktop-file-utils as of 2022-02-23 -# , singleMainWindow ? null -, extraConfig ? {} # Additional values to be added literally to the final item, e.g. vendor extensions -}: -let - # There are multiple places in the FDO spec that make "boolean" values actually tristate, - # e.g. StartupNotify, where "unset" is literally defined as "do something reasonable". - # So, handle null values separately. - boolOrNullToString = value: - if value == null then null - else if builtins.isBool value then lib.boolToString value - else throw "makeDesktopItem: value must be a boolean or null!"; +lib.makeOverridable ( + { + name, # The name of the desktop file + type ? "Application" + # version is hardcoded + , + desktopName, # The name of the application + genericName ? null, + noDisplay ? null, + comment ? null, + icon ? null, + # we don't support the Hidden key - if you don't need something, just don't install it + onlyShowIn ? [ ], + notShowIn ? [ ], + dbusActivatable ? null, + tryExec ? null, + exec ? null, + path ? null, + terminal ? null, + actions ? { }, # An attrset of [internal name] -> { name, exec?, icon? } + mimeTypes ? [ ], # The spec uses "MimeType" as singular, use plural here to signify list-ness + categories ? [ ], + implements ? [ ], + keywords ? [ ], + startupNotify ? null, + startupWMClass ? null, + url ? null, + prefersNonDefaultGPU ? null, + # not supported until version 1.5, which is not supported by our desktop-file-utils as of 2022-02-23 + # , singleMainWindow ? null + extraConfig ? { }, # Additional values to be added literally to the final item, e.g. vendor extensions + }: + let + # There are multiple places in the FDO spec that make "boolean" values actually tristate, + # e.g. StartupNotify, where "unset" is literally defined as "do something reasonable". + # So, handle null values separately. + boolOrNullToString = + value: + if value == null then + null + else if builtins.isBool value then + lib.boolToString value + else + throw "makeDesktopItem: value must be a boolean or null!"; - # Multiple values are represented as one string, joined by semicolons. - # Technically, it's possible to escape semicolons in values with \;, but this is currently not implemented. - renderList = key: value: - if !builtins.isList value then throw "makeDesktopItem: value for ${key} must be a list!" - else if builtins.any (item: lib.hasInfix ";" item) value then throw "makeDesktopItem: values in ${key} list must not contain semicolons!" - else if value == [] then null - else builtins.concatStringsSep ";" value; + # Multiple values are represented as one string, joined by semicolons. + # Technically, it's possible to escape semicolons in values with \;, but this is currently not implemented. + renderList = + key: value: + if !builtins.isList value then + throw "makeDesktopItem: value for ${key} must be a list!" + else if builtins.any (item: lib.hasInfix ";" item) value then + throw "makeDesktopItem: values in ${key} list must not contain semicolons!" + else if value == [ ] then + null + else + builtins.concatStringsSep ";" value; - # The [Desktop Entry] section of the desktop file, as an attribute set. - # Please keep in spec order. - mainSection = { - "Type" = type; - "Version" = "1.4"; - "Name" = desktopName; - "GenericName" = genericName; - "NoDisplay" = boolOrNullToString noDisplay; - "Comment" = comment; - "Icon" = icon; - "OnlyShowIn" = renderList "onlyShowIn" onlyShowIn; - "NotShowIn" = renderList "notShowIn" notShowIn; - "DBusActivatable" = boolOrNullToString dbusActivatable; - "TryExec" = tryExec; - "Exec" = exec; - "Path" = path; - "Terminal" = boolOrNullToString terminal; - "Actions" = renderList "actions" (builtins.attrNames actions); - "MimeType" = renderList "mimeTypes" mimeTypes; - "Categories" = renderList "categories" categories; - "Implements" = renderList "implements" implements; - "Keywords" = renderList "keywords" keywords; - "StartupNotify" = boolOrNullToString startupNotify; - "StartupWMClass" = startupWMClass; - "URL" = url; - "PrefersNonDefaultGPU" = boolOrNullToString prefersNonDefaultGPU; - # "SingleMainWindow" = boolOrNullToString singleMainWindow; - } // extraConfig; + # The [Desktop Entry] section of the desktop file, as an attribute set. + # Please keep in spec order. + mainSection = { + "Type" = type; + "Version" = "1.4"; + "Name" = desktopName; + "GenericName" = genericName; + "NoDisplay" = boolOrNullToString noDisplay; + "Comment" = comment; + "Icon" = icon; + "OnlyShowIn" = renderList "onlyShowIn" onlyShowIn; + "NotShowIn" = renderList "notShowIn" notShowIn; + "DBusActivatable" = boolOrNullToString dbusActivatable; + "TryExec" = tryExec; + "Exec" = exec; + "Path" = path; + "Terminal" = boolOrNullToString terminal; + "Actions" = renderList "actions" (builtins.attrNames actions); + "MimeType" = renderList "mimeTypes" mimeTypes; + "Categories" = renderList "categories" categories; + "Implements" = renderList "implements" implements; + "Keywords" = renderList "keywords" keywords; + "StartupNotify" = boolOrNullToString startupNotify; + "StartupWMClass" = startupWMClass; + "URL" = url; + "PrefersNonDefaultGPU" = boolOrNullToString prefersNonDefaultGPU; + # "SingleMainWindow" = boolOrNullToString singleMainWindow; + } // extraConfig; - # Render a single attribute pair to a Key=Value line. - # FIXME: this isn't entirely correct for arbitrary strings, as some characters - # need to be escaped. There are currently none in nixpkgs though, so this is OK. - renderLine = name: value: if value != null then "${name}=${value}" else null; + # Render a single attribute pair to a Key=Value line. + # FIXME: this isn't entirely correct for arbitrary strings, as some characters + # need to be escaped. There are currently none in nixpkgs though, so this is OK. + renderLine = name: value: if value != null then "${name}=${value}" else null; - # Render a full section of the file from an attrset. - # Null values are intentionally left out. - renderSection = sectionName: attrs: - lib.pipe attrs [ - (lib.mapAttrsToList renderLine) - (builtins.filter (v: v != null)) - (builtins.concatStringsSep "\n") - (section: '' - [${sectionName}] - ${section} - '') - ]; + # Render a full section of the file from an attrset. + # Null values are intentionally left out. + renderSection = + sectionName: attrs: + lib.pipe attrs [ + (lib.mapAttrsToList renderLine) + (builtins.filter (v: v != null)) + (builtins.concatStringsSep "\n") + (section: '' + [${sectionName}] + ${section} + '') + ]; - mainSectionRendered = renderSection "Desktop Entry" mainSection; + mainSectionRendered = renderSection "Desktop Entry" mainSection; - # Convert from javaCase names as used in Nix to PascalCase as used in the spec. - preprocessAction = { name, icon ? null, exec ? null }: { - "Name" = name; - "Icon" = icon; - "Exec" = exec; - }; - renderAction = name: attrs: renderSection "Desktop Action ${name}" (preprocessAction attrs); - actionsRendered = lib.mapAttrsToList renderAction actions; + # Convert from javaCase names as used in Nix to PascalCase as used in the spec. + preprocessAction = + { + name, + icon ? null, + exec ? null, + }: + { + "Name" = name; + "Icon" = icon; + "Exec" = exec; + }; + renderAction = name: attrs: renderSection "Desktop Action ${name}" (preprocessAction attrs); + actionsRendered = lib.mapAttrsToList renderAction actions; - content = [ mainSectionRendered ] ++ actionsRendered; -in -writeTextFile { - name = "${name}.desktop"; - destination = "/share/applications/${name}.desktop"; - text = builtins.concatStringsSep "\n" content; - checkPhase = ''${buildPackages.desktop-file-utils}/bin/desktop-file-validate "$target"''; -}) + content = [ mainSectionRendered ] ++ actionsRendered; + in + writeTextFile { + name = "${name}.desktop"; + destination = "/share/applications/${name}.desktop"; + text = builtins.concatStringsSep "\n" content; + checkPhase = ''${buildPackages.desktop-file-utils}/bin/desktop-file-validate "$target"''; + } +) diff --git a/pkgs/build-support/make-hardcode-gsettings-patch/default.nix b/pkgs/build-support/make-hardcode-gsettings-patch/default.nix index 820b003..f3f7819 100644 --- a/pkgs/build-support/make-hardcode-gsettings-patch/default.nix +++ b/pkgs/build-support/make-hardcode-gsettings-patch/default.nix @@ -18,7 +18,6 @@ It will end up in the generated patch as `@EVOLUTION@` placeholder, which should be replaced at build time with a path to the directory containing a `gschemas.compiled` file that includes the schema. - Arguments: - `src`: source to generate the patch for. @@ -57,8 +56,7 @@ schemaIdToVariableMapping, }: -runCommand - "hardcode-gsettings.patch" +runCommand "hardcode-gsettings.patch" { inherit src patches; nativeBuildInputs = [ diff --git a/pkgs/build-support/make-impure-test.nix b/pkgs/build-support/make-impure-test.nix index 84d0b30..ae8f336 100644 --- a/pkgs/build-support/make-impure-test.nix +++ b/pkgs/build-support/make-impure-test.nix @@ -1,4 +1,5 @@ -/* Create tests that run in the nix sandbox with additional access to selected host paths +/* + Create tests that run in the nix sandbox with additional access to selected host paths This is for example useful for testing hardware where a tests needs access to /sys and optionally more. @@ -28,58 +29,62 @@ Rerun an already cached test: $(nix-build -A mypackage.impureTests) --check */ -{ lib -, stdenv -, writeShellScript +{ + lib, + stdenv, + writeShellScript, -, name -, testedPackage ? null -, testPath ? "${testedPackage}.impureTests.${name}.testDerivation" -, sandboxPaths ? [ "/sys" ] -, prepareRunCommands ? "" -, nixFlags ? [ ] -, testScript -, ... -} @ args: + name, + testedPackage ? null, + testPath ? "${testedPackage}.impureTests.${name}.testDerivation", + sandboxPaths ? [ "/sys" ], + prepareRunCommands ? "", + nixFlags ? [ ], + testScript, + ... +}@args: let sandboxPathsTests = builtins.map (path: "[[ ! -e '${path}' ]]") sandboxPaths; sandboxPathsTest = lib.concatStringsSep " || " sandboxPathsTests; sandboxPathsList = lib.concatStringsSep " " sandboxPaths; - testDerivation = stdenv.mkDerivation (lib.recursiveUpdate - { - name = "test-run-${name}"; + testDerivation = stdenv.mkDerivation ( + lib.recursiveUpdate + { + name = "test-run-${name}"; - requiredSystemFeatures = [ "nixos-test" ]; + requiredSystemFeatures = [ "nixos-test" ]; - buildCommand = '' - mkdir -p $out + buildCommand = '' + mkdir -p $out - if ${sandboxPathsTest}; then - echo 'Run this test as *root* with `--option extra-sandbox-paths '"'${sandboxPathsList}'"'`' - exit 1 - fi + if ${sandboxPathsTest}; then + echo 'Run this test as *root* with `--option extra-sandbox-paths '"'${sandboxPathsList}'"'`' + exit 1 + fi - # Run test - ${testScript} - ''; + # Run test + ${testScript} + ''; - passthru.runScript = runScript; - } - (builtins.removeAttrs args [ - "lib" - "stdenv" - "writeShellScript" + passthru.runScript = runScript; + } + ( + builtins.removeAttrs args [ + "lib" + "stdenv" + "writeShellScript" - "name" - "testedPackage" - "testPath" - "sandboxPaths" - "prepareRunCommands" - "nixFlags" - "testScript" - ]) + "name" + "testedPackage" + "testPath" + "sandboxPaths" + "prepareRunCommands" + "nixFlags" + "testScript" + ] + ) ); runScript = writeShellScript "run-script-${name}" '' @@ -92,5 +97,7 @@ let in # The main output is the run script, inject the derivation for the actual test runScript.overrideAttrs (old: { - passthru = { inherit testDerivation; }; + passthru = { + inherit testDerivation; + }; }) diff --git a/pkgs/build-support/make-pkgconfigitem/default.nix b/pkgs/build-support/make-pkgconfigitem/default.nix index d3bcabb..842b716 100644 --- a/pkgs/build-support/make-pkgconfigitem/default.nix +++ b/pkgs/build-support/make-pkgconfigitem/default.nix @@ -1,29 +1,36 @@ -{ lib, writeTextFile, buildPackages }: +{ + lib, + writeTextFile, + buildPackages, +}: # See https://people.freedesktop.org/~dbn/pkg-config-guide.html#concepts -{ name # The name of the pc file +{ + name, # The name of the pc file # keywords # provide a default description for convenience. it's not important but still required by pkg-config. -, description ? "A pkg-config file for ${name}" -, url ? "" -, version ? "" -, requires ? [ ] -, requiresPrivate ? [ ] -, conflicts ? [ ] -, cflags ? [ ] -, libs ? [ ] -, libsPrivate ? [ ] -, variables ? { } + description ? "A pkg-config file for ${name}", + url ? "", + version ? "", + requires ? [ ], + requiresPrivate ? [ ], + conflicts ? [ ], + cflags ? [ ], + libs ? [ ], + libsPrivate ? [ ], + variables ? { }, }: let # only 'out' has to be changed, otherwise it would be replaced by the out of the writeTextFile placeholderToSubstVar = builtins.replaceStrings [ "${placeholder "out"}" ] [ "@out@" ]; - replacePlaceholderAndListToString = x: - if builtins.isList x - then placeholderToSubstVar (builtins.concatStringsSep " " x) - else placeholderToSubstVar x; + replacePlaceholderAndListToString = + x: + if builtins.isList x then + placeholderToSubstVar (builtins.concatStringsSep " " x) + else + placeholderToSubstVar x; keywordsSection = let @@ -42,24 +49,35 @@ let "Libs.private" = mustBeAList libsPrivate "libsPrivate"; }; - renderVariable = name: value: - lib.optionalString (value != "" && value != [ ]) "${name}=${replacePlaceholderAndListToString value}"; - renderKeyword = name: value: - lib.optionalString (value != "" && value != [ ]) "${name}: ${replacePlaceholderAndListToString value}"; + renderVariable = + name: value: + lib.optionalString ( + value != "" && value != [ ] + ) "${name}=${replacePlaceholderAndListToString value}"; + renderKeyword = + name: value: + lib.optionalString ( + value != "" && value != [ ] + ) "${name}: ${replacePlaceholderAndListToString value}"; - renderSomething = renderFunc: attrs: + renderSomething = + renderFunc: attrs: lib.pipe attrs [ (lib.mapAttrsToList renderFunc) (builtins.filter (v: v != "")) (builtins.concatStringsSep "\n") - (section: ''${section} + (section: '' + ${section} '') ]; variablesSectionRendered = renderSomething renderVariable variables; keywordsSectionRendered = renderSomething renderKeyword keywordsSection; - content = [ variablesSectionRendered keywordsSectionRendered ]; + content = [ + variablesSectionRendered + keywordsSectionRendered + ]; in writeTextFile { name = "${name}.pc"; diff --git a/pkgs/build-support/make-startupitem/default.nix b/pkgs/build-support/make-startupitem/default.nix index 94bf07c..6d8e865 100644 --- a/pkgs/build-support/make-startupitem/default.nix +++ b/pkgs/build-support/make-startupitem/default.nix @@ -1,13 +1,14 @@ # given a package with a $name.desktop file, makes a copy # as autostart item. -{stdenv, lib}: -{ name # name of the desktop file (without .desktop) -, package # package where the desktop file resides in -, srcPrefix ? "" # additional prefix that the desktop file may have in the 'package' -, after ? null -, condition ? null -, phase ? "2" +{ stdenv, lib }: +{ + name, # name of the desktop file (without .desktop) + package, # package where the desktop file resides in + srcPrefix ? "", # additional prefix that the desktop file may have in the 'package' + after ? null, + condition ? null, + phase ? "2", }: # the builder requires that diff --git a/pkgs/build-support/mkshell/default.nix b/pkgs/build-support/mkshell/default.nix index 5369301..ad34882 100644 --- a/pkgs/build-support/mkshell/default.nix +++ b/pkgs/build-support/mkshell/default.nix @@ -1,26 +1,33 @@ -{ lib, stdenv, buildEnv }: +{ + lib, + stdenv, + buildEnv, +}: # A special kind of derivation that is only meant to be consumed by the # nix-shell. -{ name ? "nix-shell" -, # a list of packages to add to the shell environment - packages ? [ ] -, # propagate all the inputs from the given derivations - inputsFrom ? [ ] -, buildInputs ? [ ] -, nativeBuildInputs ? [ ] -, propagatedBuildInputs ? [ ] -, propagatedNativeBuildInputs ? [ ] -, ... +{ + name ? "nix-shell", + # a list of packages to add to the shell environment + packages ? [ ], + # propagate all the inputs from the given derivations + inputsFrom ? [ ], + buildInputs ? [ ], + nativeBuildInputs ? [ ], + propagatedBuildInputs ? [ ], + propagatedNativeBuildInputs ? [ ], + ... }@attrs: let - mergeInputs = name: - (attrs.${name} or [ ]) ++ - # 1. get all `{build,nativeBuild,...}Inputs` from the elements of `inputsFrom` - # 2. since that is a list of lists, `flatten` that into a regular list - # 3. filter out of the result everything that's in `inputsFrom` itself - # this leaves actual dependencies of the derivations in `inputsFrom`, but never the derivations themselves - (lib.subtractLists inputsFrom (lib.flatten (lib.catAttrs name inputsFrom))); + mergeInputs = + name: + (attrs.${name} or [ ]) + ++ + # 1. get all `{build,nativeBuild,...}Inputs` from the elements of `inputsFrom` + # 2. since that is a list of lists, `flatten` that into a regular list + # 3. filter out of the result everything that's in `inputsFrom` itself + # this leaves actual dependencies of the derivations in `inputsFrom`, but never the derivations themselves + (lib.subtractLists inputsFrom (lib.flatten (lib.catAttrs name inputsFrom))); rest = builtins.removeAttrs attrs [ "name" @@ -34,29 +41,33 @@ let ]; in -stdenv.mkDerivation ({ - inherit name; +stdenv.mkDerivation ( + { + inherit name; - buildInputs = mergeInputs "buildInputs"; - nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs"); - propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; - propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; + buildInputs = mergeInputs "buildInputs"; + nativeBuildInputs = packages ++ (mergeInputs "nativeBuildInputs"); + propagatedBuildInputs = mergeInputs "propagatedBuildInputs"; + propagatedNativeBuildInputs = mergeInputs "propagatedNativeBuildInputs"; - shellHook = lib.concatStringsSep "\n" (lib.catAttrs "shellHook" - (lib.reverseList inputsFrom ++ [ attrs ])); + shellHook = lib.concatStringsSep "\n" ( + lib.catAttrs "shellHook" (lib.reverseList inputsFrom ++ [ attrs ]) + ); - phases = [ "buildPhase" ]; + phases = [ "buildPhase" ]; - buildPhase = '' - { echo "------------------------------------------------------------"; - echo " WARNING: the existence of this path is not guaranteed."; - echo " It is an internal implementation detail for pkgs.mkShell."; - echo "------------------------------------------------------------"; - echo; - # Record all build inputs as runtime dependencies - export; - } >> "$out" - ''; + buildPhase = '' + { echo "------------------------------------------------------------"; + echo " WARNING: the existence of this path is not guaranteed."; + echo " It is an internal implementation detail for pkgs.mkShell."; + echo "------------------------------------------------------------"; + echo; + # Record all build inputs as runtime dependencies + export; + } >> "$out" + ''; - preferLocalBuild = true; -} // rest) + preferLocalBuild = true; + } + // rest +) diff --git a/pkgs/build-support/mono-dll-fixer/default.nix b/pkgs/build-support/mono-dll-fixer/default.nix index 09a9860..61df37e 100644 --- a/pkgs/build-support/mono-dll-fixer/default.nix +++ b/pkgs/build-support/mono-dll-fixer/default.nix @@ -1,4 +1,4 @@ -{stdenv, perl}: +{ stdenv, perl }: stdenv.mkDerivation { name = "mono-dll-fixer"; dllFixer = ./dll-fixer.pl; diff --git a/pkgs/build-support/nix-gitignore/default.nix b/pkgs/build-support/nix-gitignore/default.nix index 8497206..78e6667 100644 --- a/pkgs/build-support/nix-gitignore/default.nix +++ b/pkgs/build-support/nix-gitignore/default.nix @@ -30,36 +30,67 @@ let trace ; - inherit (lib.strings) match split typeOf; debug = a: trace a a; last = l: elemAt l ((length l) - 1); -in rec { +in +rec { # [["good/relative/source/file" true] ["bad.tmpfile" false]] -> root -> path - filterPattern = patterns: root: - (name: _type: + filterPattern = + patterns: root: + ( + name: _type: let relPath = removePrefix ((toString root) + "/") name; matches = pair: (match (head pair) relPath) != null; - matched = map (pair: [(matches pair) (last pair)]) patterns; + matched = map (pair: [ + (matches pair) + (last pair) + ]) patterns; in - last (last ([[true true]] ++ (filter head matched))) + last ( + last ( + [ + [ + true + true + ] + ] + ++ (filter head matched) + ) + ) ); # string -> [[regex bool]] - gitignoreToPatterns = gitignore: + gitignoreToPatterns = + gitignore: let # ignore -> bool isComment = i: (match "^(#.*|$)" i) != null; # ignore -> [ignore bool] - computeNegation = l: - let split = match "^(!?)(.*)" l; - in [(elemAt split 1) (head split == "!")]; + computeNegation = + l: + let + split = match "^(!?)(.*)" l; + in + [ + (elemAt split 1) + (head split == "!") + ]; # regex -> regex - handleHashesBangs = replaceStrings ["\\#" "\\!"] ["#" "!"]; + handleHashesBangs = + replaceStrings + [ + "\\#" + "\\!" + ] + [ + "#" + "!" + ]; # ignore -> regex substWildcards = @@ -67,74 +98,106 @@ in rec { special = "^$.+{}()"; escs = "\\*?"; splitString = - let recurse = str : [(substring 0 1 str)] ++ - (optionals (str != "") (recurse (substring 1 (stringLength(str)) str) )); - in str : recurse str; + let + recurse = + str: + [ (substring 0 1 str) ] ++ (optionals (str != "") (recurse (substring 1 (stringLength (str)) str))); + in + str: recurse str; chars = s: filter (c: c != "" && !isList c) (splitString s); escape = s: map (c: "\\" + c) (chars s); in - replaceStrings - ((chars special) ++ (escape escs) ++ ["**/" "**" "*" "?"]) - ((escape special) ++ (escape escs) ++ ["(.*/)?" ".*" "[^/]*" "[^/]"]); + replaceStrings + ( + (chars special) + ++ (escape escs) + ++ [ + "**/" + "**" + "*" + "?" + ] + ) + ( + (escape special) + ++ (escape escs) + ++ [ + "(.*/)?" + ".*" + "[^/]*" + "[^/]" + ] + ); # (regex -> regex) -> regex -> regex - mapAroundCharclass = f: r: # rl = regex or list - let slightFix = replaceStrings ["\\]"] ["]"]; + mapAroundCharclass = + f: r: # rl = regex or list + let + slightFix = replaceStrings [ "\\]" ] [ "]" ]; in - concatStringsSep "" - (map (rl: if isList rl then slightFix (elemAt rl 0) else f rl) - (split "(\\[([^\\\\]|\\\\.)+])" r)); + concatStringsSep "" ( + map (rl: if isList rl then slightFix (elemAt rl 0) else f rl) (split "(\\[([^\\\\]|\\\\.)+])" r) + ); # regex -> regex - handleSlashPrefix = l: + handleSlashPrefix = + l: let split = (match "^(/?)(.*)" l); findSlash = l: optionalString ((match ".+/.+" l) == null) l; hasSlash = mapAroundCharclass findSlash l != l; in - (if (elemAt split 0) == "/" || hasSlash - then "^" - else "(^|.*/)" - ) + (elemAt split 1); + (if (elemAt split 0) == "/" || hasSlash then "^" else "(^|.*/)") + (elemAt split 1); # regex -> regex - handleSlashSuffix = l: - let split = (match "^(.*)/$" l); - in if split != null then (elemAt split 0) + "($|/.*)" else l; + handleSlashSuffix = + l: + let + split = (match "^(.*)/$" l); + in + if split != null then (elemAt split 0) + "($|/.*)" else l; # (regex -> regex) -> [regex, bool] -> [regex, bool] - mapPat = f: l: [(f (head l)) (last l)]; + mapPat = f: l: [ + (f (head l)) + (last l) + ]; in - map (l: # `l' for "line" - mapPat (l: handleSlashSuffix (handleSlashPrefix (handleHashesBangs (mapAroundCharclass substWildcards l)))) - (computeNegation l)) - (filter (l: !isList l && !isComment l) - (split "\n" gitignore)); + map ( + l: # `l' for "line" + mapPat ( + l: handleSlashSuffix (handleSlashPrefix (handleHashesBangs (mapAroundCharclass substWildcards l))) + ) (computeNegation l) + ) (filter (l: !isList l && !isComment l) (split "\n" gitignore)); gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root; # string|[string|file] (→ [string|file] → [string]) -> string - gitignoreCompileIgnore = file_str_patterns: root: + gitignoreCompileIgnore = + file_str_patterns: root: let onPath = f: a: if typeOf a == "path" then f a else a; str_patterns = map (onPath readFile) (toList file_str_patterns); - in concatStringsSep "\n" str_patterns; + in + concatStringsSep "\n" str_patterns; - gitignoreFilterPure = predicate: patterns: root: name: type: - gitignoreFilter (gitignoreCompileIgnore patterns root) root name type - && predicate name type; + gitignoreFilterPure = + predicate: patterns: root: name: type: + gitignoreFilter (gitignoreCompileIgnore patterns root) root name type && predicate name type; # This is a very hacky way of programming this! # A better way would be to reuse existing filtering by making multiple gitignore functions per each root. # Then for each file find the set of roots with gitignores (and functions). # This would make gitignoreFilterSource very different from gitignoreFilterPure. # rootPath → gitignoresConcatenated - compileRecursiveGitignore = root: + compileRecursiveGitignore = + root: let dirOrIgnore = file: type: baseNameOf file == ".gitignore" || type == "directory"; ignores = builtins.filterSource dirOrIgnore root; - in readFile ( - runCommand "${baseNameOf root}-recursive-gitignore" {} '' + in + readFile ( + runCommand "${baseNameOf root}-recursive-gitignore" { } '' cd ${ignores} find -type f -exec sh -c ' @@ -165,34 +228,40 @@ in rec { END { print \"\" } " "$1" ' sh {} \; > $out - ''); + '' + ); - withGitignoreFile = patterns: root: - toList patterns ++ [ ".git" ] ++ [(root + "/.gitignore")]; + withGitignoreFile = patterns: root: toList patterns ++ [ ".git" ] ++ [ (root + "/.gitignore") ]; - withRecursiveGitignoreFile = patterns: root: - toList patterns ++ [ ".git" ] ++ [(compileRecursiveGitignore root)]; + withRecursiveGitignoreFile = + patterns: root: toList patterns ++ [ ".git" ] ++ [ (compileRecursiveGitignore root) ]; # filterSource derivatives - gitignoreFilterSourcePure = predicate: patterns: root: + gitignoreFilterSourcePure = + predicate: patterns: root: filterSource (gitignoreFilterPure predicate patterns root) root; - gitignoreFilterSource = predicate: patterns: root: + gitignoreFilterSource = + predicate: patterns: root: gitignoreFilterSourcePure predicate (withGitignoreFile patterns root) root; - gitignoreFilterRecursiveSource = predicate: patterns: root: + gitignoreFilterRecursiveSource = + predicate: patterns: root: gitignoreFilterSourcePure predicate (withRecursiveGitignoreFile patterns root) root; # "Predicate"-less alternatives gitignoreSourcePure = gitignoreFilterSourcePure (_: _: true); - gitignoreSource = patterns: let type = typeOf patterns; in - if (type == "string" && pathExists patterns) || type == "path" - then throw - "type error in gitignoreSource(patterns -> source -> path), " - "use [] or \"\" if there are no additional patterns" - else gitignoreFilterSource (_: _: true) patterns; + gitignoreSource = + patterns: + let + type = typeOf patterns; + in + if (type == "string" && pathExists patterns) || type == "path" then + throw "type error in gitignoreSource(patterns -> source -> path), " "use [] or \"\" if there are no additional patterns" + else + gitignoreFilterSource (_: _: true) patterns; gitignoreRecursiveSource = gitignoreFilterSourcePure (_: _: true); } diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 1c7bf63..308f7c6 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -1,88 +1,103 @@ -{ lib -, stdenv -, fetchNpmDeps -, buildPackages -, nodejs -, darwin -} @ topLevelArgs: +{ + lib, + stdenv, + fetchNpmDeps, + buildPackages, + nodejs, + darwin, +}@topLevelArgs: -{ name ? "${args.pname}-${args.version}" -, src ? null -, srcs ? null -, sourceRoot ? null -, prePatch ? "" -, patches ? [ ] -, postPatch ? "" -, nativeBuildInputs ? [ ] -, buildInputs ? [ ] +{ + name ? "${args.pname}-${args.version}", + src ? null, + srcs ? null, + sourceRoot ? null, + prePatch ? "", + patches ? [ ], + postPatch ? "", + nativeBuildInputs ? [ ], + buildInputs ? [ ], # The output hash of the dependencies for this project. # Can be calculated in advance with prefetch-npm-deps. -, npmDepsHash ? "" + npmDepsHash ? "", # Whether to force the usage of Git dependencies that have install scripts, but not a lockfile. # Use with care. -, forceGitDeps ? false + forceGitDeps ? false, # Whether to force allow an empty dependency cache. # This can be enabled if there are truly no remote dependencies, but generally an empty cache indicates something is wrong. -, forceEmptyCache ? false + forceEmptyCache ? false, # Whether to make the cache writable prior to installing dependencies. # Don't set this unless npm tries to write to the cache directory, as it can slow down the build. -, makeCacheWritable ? false + makeCacheWritable ? false, # The script to run to build the project. -, npmBuildScript ? "build" + npmBuildScript ? "build", # Flags to pass to all npm commands. -, npmFlags ? [ ] + npmFlags ? [ ], # Flags to pass to `npm ci`. -, npmInstallFlags ? [ ] + npmInstallFlags ? [ ], # Flags to pass to `npm rebuild`. -, npmRebuildFlags ? [ ] + npmRebuildFlags ? [ ], # Flags to pass to `npm run ${npmBuildScript}`. -, npmBuildFlags ? [ ] + npmBuildFlags ? [ ], # Flags to pass to `npm pack`. -, npmPackFlags ? [ ] + npmPackFlags ? [ ], # Flags to pass to `npm prune`. -, npmPruneFlags ? npmInstallFlags + npmPruneFlags ? npmInstallFlags, # Value for npm `--workspace` flag and directory in which the files to be installed are found. -, npmWorkspace ? null -, nodejs ? topLevelArgs.nodejs -, npmDeps ? fetchNpmDeps { - inherit forceGitDeps forceEmptyCache src srcs sourceRoot prePatch patches postPatch; - name = "${name}-npm-deps"; - hash = npmDepsHash; -} + npmWorkspace ? null, + nodejs ? topLevelArgs.nodejs, + npmDeps ? fetchNpmDeps { + inherit + forceGitDeps + forceEmptyCache + src + srcs + sourceRoot + prePatch + patches + postPatch + ; + name = "${name}-npm-deps"; + hash = npmDepsHash; + }, # Custom npmConfigHook -, npmConfigHook ? null + npmConfigHook ? null, # Custom npmBuildHook -, npmBuildHook ? null + npmBuildHook ? null, # Custom npmInstallHook -, npmInstallHook ? null -, ... -} @ args: + npmInstallHook ? null, + ... +}@args: let # .override {} negates splicing, so we need to use buildPackages explicitly - npmHooks = buildPackages.npmHooks.override { - inherit nodejs; - }; + npmHooks = buildPackages.npmHooks.override { inherit nodejs; }; in -stdenv.mkDerivation (args // { - inherit npmDeps npmBuildScript; +stdenv.mkDerivation ( + args + // { + inherit npmDeps npmBuildScript; - nativeBuildInputs = nativeBuildInputs - ++ [ - nodejs - # Prefer passed hooks - (if npmConfigHook != null then npmConfigHook else npmHooks.npmConfigHook) - (if npmBuildHook != null then npmBuildHook else npmHooks.npmBuildHook) - (if npmInstallHook != null then npmInstallHook else npmHooks.npmInstallHook) - nodejs.python - ] - ++ lib.optionals stdenv.isDarwin [ darwin.cctools ]; - buildInputs = buildInputs ++ [ nodejs ]; + nativeBuildInputs = + nativeBuildInputs + ++ [ + nodejs + # Prefer passed hooks + (if npmConfigHook != null then npmConfigHook else npmHooks.npmConfigHook) + (if npmBuildHook != null then npmBuildHook else npmHooks.npmBuildHook) + (if npmInstallHook != null then npmInstallHook else npmHooks.npmInstallHook) + nodejs.python + ] + ++ lib.optionals stdenv.isDarwin [ darwin.cctools ]; + buildInputs = buildInputs ++ [ nodejs ]; - strictDeps = true; + strictDeps = true; - # Stripping takes way too long with the amount of files required by a typical Node.js project. - dontStrip = args.dontStrip or true; + # Stripping takes way too long with the amount of files required by a typical Node.js project. + dontStrip = args.dontStrip or true; - meta = (args.meta or { }) // { platforms = args.meta.platforms or nodejs.meta.platforms; }; -}) + meta = (args.meta or { }) // { + platforms = args.meta.platforms or nodejs.meta.platforms; + }; + } +) diff --git a/pkgs/build-support/node/build-npm-package/hooks/default.nix b/pkgs/build-support/node/build-npm-package/hooks/default.nix index 36f0319..bfa3e8a 100644 --- a/pkgs/build-support/node/build-npm-package/hooks/default.nix +++ b/pkgs/build-support/node/build-npm-package/hooks/default.nix @@ -1,48 +1,44 @@ -{ lib -, srcOnly -, makeSetupHook -, makeWrapper -, nodejs -, jq -, prefetch-npm-deps -, diffutils -, installShellFiles +{ + lib, + srcOnly, + makeSetupHook, + makeWrapper, + nodejs, + jq, + prefetch-npm-deps, + diffutils, + installShellFiles, }: { - npmConfigHook = makeSetupHook - { - name = "npm-config-hook"; - substitutions = { - nodeSrc = srcOnly nodejs; - nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; + npmConfigHook = makeSetupHook { + name = "npm-config-hook"; + substitutions = { + nodeSrc = srcOnly nodejs; + nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; - # Specify `diff`, `jq`, and `prefetch-npm-deps` by abspath to ensure that the user's build - # inputs do not cause us to find the wrong binaries. - diff = "${diffutils}/bin/diff"; - jq = "${jq}/bin/jq"; - prefetchNpmDeps = "${prefetch-npm-deps}/bin/prefetch-npm-deps"; + # Specify `diff`, `jq`, and `prefetch-npm-deps` by abspath to ensure that the user's build + # inputs do not cause us to find the wrong binaries. + diff = "${diffutils}/bin/diff"; + jq = "${jq}/bin/jq"; + prefetchNpmDeps = "${prefetch-npm-deps}/bin/prefetch-npm-deps"; - nodeVersion = nodejs.version; - nodeVersionMajor = lib.versions.major nodejs.version; - }; - } ./npm-config-hook.sh; + nodeVersion = nodejs.version; + nodeVersionMajor = lib.versions.major nodejs.version; + }; + } ./npm-config-hook.sh; - npmBuildHook = makeSetupHook - { - name = "npm-build-hook"; - } ./npm-build-hook.sh; + npmBuildHook = makeSetupHook { name = "npm-build-hook"; } ./npm-build-hook.sh; - npmInstallHook = makeSetupHook - { - name = "npm-install-hook"; - propagatedBuildInputs = [ - installShellFiles - makeWrapper - ]; - substitutions = { - hostNode = "${nodejs}/bin/node"; - jq = "${jq}/bin/jq"; - }; - } ./npm-install-hook.sh; + npmInstallHook = makeSetupHook { + name = "npm-install-hook"; + propagatedBuildInputs = [ + installShellFiles + makeWrapper + ]; + substitutions = { + hostNode = "${nodejs}/bin/node"; + jq = "${jq}/bin/jq"; + }; + } ./npm-install-hook.sh; } diff --git a/pkgs/build-support/node/fetch-npm-deps/default.nix b/pkgs/build-support/node/fetch-npm-deps/default.nix index d86fc90..743eb01 100644 --- a/pkgs/build-support/node/fetch-npm-deps/default.nix +++ b/pkgs/build-support/node/fetch-npm-deps/default.nix @@ -1,4 +1,18 @@ -{ lib, stdenvNoCC, rustPlatform, makeWrapper, pkg-config, curl, gnutar, gzip, testers, fetchurl, cacert, prefetch-npm-deps, fetchNpmDeps }: +{ + lib, + stdenvNoCC, + rustPlatform, + makeWrapper, + pkg-config, + curl, + gnutar, + gzip, + testers, + fetchurl, + cacert, + prefetch-npm-deps, + fetchNpmDeps, +}: { prefetch-npm-deps = rustPlatform.buildRustPackage { @@ -7,7 +21,8 @@ src = lib.cleanSourceWith { src = ./.; - filter = name: type: + filter = + name: type: let name' = builtins.baseNameOf name; in @@ -16,31 +31,54 @@ cargoLock.lockFile = ./Cargo.lock; - nativeBuildInputs = [ makeWrapper pkg-config ]; + nativeBuildInputs = [ + makeWrapper + pkg-config + ]; buildInputs = [ curl ]; postInstall = '' - wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${lib.makeBinPath [ gnutar gzip ]} + wrapProgram "$out/bin/prefetch-npm-deps" --prefix PATH : ${ + lib.makeBinPath [ + gnutar + gzip + ] + } ''; passthru.tests = let - makeTestSrc = { name, src }: stdenvNoCC.mkDerivation { - name = "${name}-src"; + makeTestSrc = + { name, src }: + stdenvNoCC.mkDerivation { + name = "${name}-src"; - inherit src; + inherit src; - buildCommand = '' - mkdir -p $out - cp $src $out/package-lock.json - ''; - }; + buildCommand = '' + mkdir -p $out + cp $src $out/package-lock.json + ''; + }; - makeTest = { name, src, hash, forceGitDeps ? false, forceEmptyCache ? false }: testers.invalidateFetcherByDrvHash fetchNpmDeps { - inherit name hash forceGitDeps forceEmptyCache; + makeTest = + { + name, + src, + hash, + forceGitDeps ? false, + forceEmptyCache ? false, + }: + testers.invalidateFetcherByDrvHash fetchNpmDeps { + inherit + name + hash + forceGitDeps + forceEmptyCache + ; - src = makeTestSrc { inherit name src; }; - }; + src = makeTestSrc { inherit name src; }; + }; in { lockfileV1 = makeTest { @@ -142,66 +180,86 @@ meta = with lib; { description = "Prefetch dependencies from npm (for use with `fetchNpmDeps`)"; mainProgram = "prefetch-npm-deps"; - maintainers = with maintainers; [ lilyinstarlight winter ]; + maintainers = with maintainers; [ + lilyinstarlight + winter + ]; license = licenses.mit; }; }; fetchNpmDeps = - { name ? "npm-deps" - , hash ? "" - , forceGitDeps ? false - , forceEmptyCache ? false - , ... - } @ args: + { + name ? "npm-deps", + hash ? "", + forceGitDeps ? false, + forceEmptyCache ? false, + ... + }@args: let hash_ = - if hash != "" then { - outputHash = hash; - } else { - outputHash = ""; - outputHashAlgo = "sha256"; - }; + if hash != "" then + { outputHash = hash; } + else + { + outputHash = ""; + outputHashAlgo = "sha256"; + }; forceGitDeps_ = lib.optionalAttrs forceGitDeps { FORCE_GIT_DEPS = true; }; forceEmptyCache_ = lib.optionalAttrs forceEmptyCache { FORCE_EMPTY_CACHE = true; }; in - stdenvNoCC.mkDerivation (args // { - inherit name; + stdenvNoCC.mkDerivation ( + args + // { + inherit name; - nativeBuildInputs = [ prefetch-npm-deps ]; + nativeBuildInputs = [ prefetch-npm-deps ]; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - if [[ ! -e package-lock.json ]]; then - echo - echo "ERROR: The package-lock.json file does not exist!" - echo - echo "package-lock.json is required to make sure that npmDepsHash doesn't change" - echo "when packages are updated on npm." - echo - echo "Hint: You can copy a vendored package-lock.json file via postPatch." - echo + if [[ ! -e package-lock.json ]]; then + echo + echo "ERROR: The package-lock.json file does not exist!" + echo + echo "package-lock.json is required to make sure that npmDepsHash doesn't change" + echo "when packages are updated on npm." + echo + echo "Hint: You can copy a vendored package-lock.json file via postPatch." + echo - exit 1 - fi + exit 1 + fi - prefetch-npm-deps package-lock.json $out + prefetch-npm-deps package-lock.json $out - runHook postBuild - ''; + runHook postBuild + ''; - dontInstall = true; + dontInstall = true; - # NIX_NPM_TOKENS environment variable should be a JSON mapping in the shape of: - # `{ "registry.example.com": "example-registry-bearer-token", ... }` - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_NPM_TOKENS" ]; + # NIX_NPM_TOKENS environment variable should be a JSON mapping in the shape of: + # `{ "registry.example.com": "example-registry-bearer-token", ... }` + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_NPM_TOKENS" ]; - SSL_CERT_FILE = if (hash_.outputHash == "" || hash_.outputHash == lib.fakeSha256 || hash_.outputHash == lib.fakeSha512 || hash_.outputHash == lib.fakeHash) - then "${cacert}/etc/ssl/certs/ca-bundle.crt" - else "/no-cert-file.crt"; + SSL_CERT_FILE = + if + ( + hash_.outputHash == "" + || hash_.outputHash == lib.fakeSha256 + || hash_.outputHash == lib.fakeSha512 + || hash_.outputHash == lib.fakeHash + ) + then + "${cacert}/etc/ssl/certs/ca-bundle.crt" + else + "/no-cert-file.crt"; - outputHashMode = "recursive"; - } // hash_ // forceGitDeps_ // forceEmptyCache_); + outputHashMode = "recursive"; + } + // hash_ + // forceGitDeps_ + // forceEmptyCache_ + ); } diff --git a/pkgs/build-support/node/fetch-yarn-deps/default.nix b/pkgs/build-support/node/fetch-yarn-deps/default.nix index 7f0e069..b335615 100644 --- a/pkgs/build-support/node/fetch-yarn-deps/default.nix +++ b/pkgs/build-support/node/fetch-yarn-deps/default.nix @@ -1,4 +1,16 @@ -{ stdenv, lib, makeWrapper, coreutils, nix-prefetch-git, fetchurl, nodejs-slim, prefetch-yarn-deps, cacert, callPackage, nix }: +{ + stdenv, + lib, + makeWrapper, + coreutils, + nix-prefetch-git, + fetchurl, + nodejs-slim, + prefetch-yarn-deps, + cacert, + callPackage, + nix, +}: let yarnpkg-lockfile-tar = fetchurl { @@ -6,9 +18,10 @@ let hash = "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="; }; - tests = callPackage ./tests {}; + tests = callPackage ./tests { }; -in { +in +{ prefetch-yarn-deps = stdenv.mkDerivation { name = "prefetch-yarn-deps"; @@ -29,12 +42,20 @@ in { patchShebangs $out/libexec makeWrapper $out/libexec/index.js $out/bin/prefetch-yarn-deps \ - --prefix PATH : ${lib.makeBinPath [ coreutils nix-prefetch-git nix ]} + --prefix PATH : ${ + lib.makeBinPath [ + coreutils + nix-prefetch-git + nix + ] + } runHook postInstall ''; - passthru = { inherit tests; }; + passthru = { + inherit tests; + }; }; fixup-yarn-lock = stdenv.mkDerivation { @@ -61,45 +82,74 @@ in { runHook postInstall ''; - passthru = { inherit tests; }; + passthru = { + inherit tests; + }; }; - fetchYarnDeps = let - f = { - name ? "offline", - src ? null, - hash ? "", - sha256 ? "", - ... - }@args: let - hash_ = - if hash != "" then { outputHashAlgo = null; outputHash = hash; } - else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; } - else { outputHashAlgo = "sha256"; outputHash = lib.fakeSha256; }; - in stdenv.mkDerivation ({ - inherit name; + fetchYarnDeps = + let + f = + { + name ? "offline", + src ? null, + hash ? "", + sha256 ? "", + ... + }@args: + let + hash_ = + if hash != "" then + { + outputHashAlgo = null; + outputHash = hash; + } + else if sha256 != "" then + { + outputHashAlgo = "sha256"; + outputHash = sha256; + } + else + { + outputHashAlgo = "sha256"; + outputHash = lib.fakeSha256; + }; + in + stdenv.mkDerivation ( + { + inherit name; - dontUnpack = src == null; - dontInstall = true; + dontUnpack = src == null; + dontInstall = true; - nativeBuildInputs = [ prefetch-yarn-deps cacert ]; - GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + nativeBuildInputs = [ + prefetch-yarn-deps + cacert + ]; + GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; + NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - yarnLock=''${yarnLock:=$PWD/yarn.lock} - mkdir -p $out - (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock) + yarnLock=''${yarnLock:=$PWD/yarn.lock} + mkdir -p $out + (cd $out; prefetch-yarn-deps --verbose --builder $yarnLock) - runHook postBuild - ''; + runHook postBuild + ''; - outputHashMode = "recursive"; - } // hash_ // (removeAttrs args ["src" "name" "hash" "sha256"])); + outputHashMode = "recursive"; + } + // hash_ + // (removeAttrs args [ + "src" + "name" + "hash" + "sha256" + ]) + ); - in lib.setFunctionArgs f (lib.functionArgs f) // { - inherit tests; - }; + in + lib.setFunctionArgs f (lib.functionArgs f) // { inherit tests; }; } diff --git a/pkgs/build-support/node/import-npm-lock/default.nix b/pkgs/build-support/node/import-npm-lock/default.nix index d530b8e..2aa2d4a 100644 --- a/pkgs/build-support/node/import-npm-lock/default.nix +++ b/pkgs/build-support/node/import-npm-lock/default.nix @@ -1,12 +1,18 @@ -{ lib -, fetchurl -, stdenv -, callPackages -, runCommand +{ + lib, + fetchurl, + stdenv, + callPackages, + runCommand, }: let - inherit (builtins) match elemAt toJSON removeAttrs; + inherit (builtins) + match + elemAt + toJSON + removeAttrs + ; inherit (lib) importJSON mapAttrs; matchGitHubReference = match "github(.com)?:.+"; @@ -15,9 +21,11 @@ let # Fetch a module from package-lock.json -> packages fetchModule = - { module - , npmRoot ? null - }: ( + { + module, + npmRoot ? null, + }: + ( if module ? "resolved" then ( let @@ -28,27 +36,24 @@ let ( if mUrl == null then ( - assert npmRoot != null; { + assert npmRoot != null; + { outPath = npmRoot + "/${module.resolved}"; } ) else if (scheme == "http" || scheme == "https") then - ( - fetchurl { - url = module.resolved; - hash = module.integrity; - } - ) + (fetchurl { + url = module.resolved; + hash = module.integrity; + }) else if lib.hasPrefix "git" module.resolved then - ( - builtins.fetchGit { - url = module.resolved; - } - ) - else throw "Unsupported URL scheme: ${scheme}" + (builtins.fetchGit { url = module.resolved; }) + else + throw "Unsupported URL scheme: ${scheme}" ) ) - else null + else + null ); # Manage node_modules outside of the store with hooks @@ -57,58 +62,67 @@ let in { importNpmLock = - { npmRoot ? null - , package ? importJSON (npmRoot + "/package.json") - , packageLock ? importJSON (npmRoot + "/package-lock.json") - , pname ? getName package - , version ? getVersion package + { + npmRoot ? null, + package ? importJSON (npmRoot + "/package.json"), + packageLock ? importJSON (npmRoot + "/package-lock.json"), + pname ? getName package, + version ? getVersion package, }: let - mapLockDependencies = - mapAttrs - (name: version: ( - # Substitute the constraint with the version of the dependency from the top-level of package-lock. - if ( + mapLockDependencies = mapAttrs ( + name: version: + ( + # Substitute the constraint with the version of the dependency from the top-level of package-lock. + if + ( # if the version is `latest` version == "latest" || - # Or if it's a github reference - matchGitHubReference version != null - ) then packageLock'.packages.${"node_modules/${name}"}.version - # But not a regular version constraint - else version - )); + # Or if it's a github reference + matchGitHubReference version != null + ) + then + packageLock'.packages.${"node_modules/${name}"}.version + # But not a regular version constraint + else + version + ) + ); packageLock' = packageLock // { - packages = - mapAttrs - (_: module: - let - src = fetchModule { - inherit module npmRoot; - }; - in - (removeAttrs module [ - "link" - "funding" - ]) // lib.optionalAttrs (src != null) { - resolved = "file:${src}"; - } // lib.optionalAttrs (module ? dependencies) { - dependencies = mapLockDependencies module.dependencies; - } // lib.optionalAttrs (module ? optionalDependencies) { - optionalDependencies = mapLockDependencies module.optionalDependencies; - }) - packageLock.packages; + packages = mapAttrs ( + _: module: + let + src = fetchModule { inherit module npmRoot; }; + in + (removeAttrs module [ + "link" + "funding" + ]) + // lib.optionalAttrs (src != null) { resolved = "file:${src}"; } + // lib.optionalAttrs (module ? dependencies) { + dependencies = mapLockDependencies module.dependencies; + } + // lib.optionalAttrs (module ? optionalDependencies) { + optionalDependencies = mapLockDependencies module.optionalDependencies; + } + ) packageLock.packages; }; - mapPackageDependencies = mapAttrs (name: _: packageLock'.packages.${"node_modules/${name}"}.resolved); + mapPackageDependencies = mapAttrs ( + name: _: packageLock'.packages.${"node_modules/${name}"}.resolved + ); # Substitute dependency references in package.json with Nix store paths - packageJSON' = package // lib.optionalAttrs (package ? dependencies) { - dependencies = mapPackageDependencies package.dependencies; - } // lib.optionalAttrs (package ? devDependencies) { - devDependencies = mapPackageDependencies package.devDependencies; - }; + packageJSON' = + package + // lib.optionalAttrs (package ? dependencies) { + dependencies = mapPackageDependencies package.dependencies; + } + // lib.optionalAttrs (package ? devDependencies) { + devDependencies = mapPackageDependencies package.devDependencies; + }; pname = package.name or "unknown"; @@ -117,15 +131,19 @@ in { inherit pname version; - passAsFile = [ "package" "packageLock" ]; + passAsFile = [ + "package" + "packageLock" + ]; package = toJSON packageJSON'; packageLock = toJSON packageLock'; - } '' - mkdir $out - cp "$packagePath" $out/package.json - cp "$packageLockPath" $out/package-lock.json - ''; + } + '' + mkdir $out + cp "$packagePath" $out/package.json + cp "$packageLockPath" $out/package-lock.json + ''; inherit hooks; inherit (hooks) npmConfigHook; diff --git a/pkgs/build-support/node/import-npm-lock/hooks/default.nix b/pkgs/build-support/node/import-npm-lock/hooks/default.nix index 5990371..89dea60 100644 --- a/pkgs/build-support/node/import-npm-lock/hooks/default.nix +++ b/pkgs/build-support/node/import-npm-lock/hooks/default.nix @@ -1,13 +1,18 @@ -{ callPackage, lib, makeSetupHook, srcOnly, nodejs }: { - npmConfigHook = makeSetupHook - { - name = "npm-config-hook"; - substitutions = { - nodeSrc = srcOnly nodejs; - nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; - canonicalizeSymlinksScript = ./canonicalize-symlinks.js; - storePrefix = builtins.storeDir; - }; - } ./npm-config-hook.sh; + callPackage, + lib, + makeSetupHook, + srcOnly, + nodejs, +}: +{ + npmConfigHook = makeSetupHook { + name = "npm-config-hook"; + substitutions = { + nodeSrc = srcOnly nodejs; + nodeGyp = "${nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"; + canonicalizeSymlinksScript = ./canonicalize-symlinks.js; + storePrefix = builtins.storeDir; + }; + } ./npm-config-hook.sh; } diff --git a/pkgs/build-support/nuke-references/default.nix b/pkgs/build-support/nuke-references/default.nix index 4472d6e..40e128a 100644 --- a/pkgs/build-support/nuke-references/default.nix +++ b/pkgs/build-support/nuke-references/default.nix @@ -3,7 +3,13 @@ # path (/nix/store/eeee...). This is useful for getting rid of # dependencies that you know are not actually needed at runtime. -{ lib, stdenvNoCC, perl, signingUtils, shell ? stdenvNoCC.shell }: +{ + lib, + stdenvNoCC, + perl, + signingUtils, + shell ? stdenvNoCC.shell, +}: let stdenv = stdenvNoCC; diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix index 972244f..6e840b5 100644 --- a/pkgs/build-support/ocaml/dune.nix +++ b/pkgs/build-support/ocaml/dune.nix @@ -1,50 +1,90 @@ -{ lib, stdenv, ocaml, findlib, dune_1, dune_2, dune_3 }: +{ + lib, + stdenv, + ocaml, + findlib, + dune_1, + dune_2, + dune_3, +}: -{ pname, version, nativeBuildInputs ? [], enableParallelBuilding ? true, ... }@args: +{ + pname, + version, + nativeBuildInputs ? [ ], + enableParallelBuilding ? true, + ... +}@args: -let Dune = - let dune-version = args.duneVersion or "3"; in - { "1" = dune_1; "2" = dune_2; "3" = dune_3; }."${dune-version}" -; in +let + Dune = + let + dune-version = args.duneVersion or "3"; + in + { + "1" = dune_1; + "2" = dune_2; + "3" = dune_3; + } + ."${dune-version}"; +in -if (args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion) || - (args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion) -then throw "${pname}-${version} is not available for OCaml ${ocaml.version}" +if + (args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion) + || (args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion) +then + throw "${pname}-${version} is not available for OCaml ${ocaml.version}" else -stdenv.mkDerivation ({ + stdenv.mkDerivation ( + { - inherit enableParallelBuilding; - dontAddStaticConfigureFlags = true; - configurePlatforms = []; + inherit enableParallelBuilding; + dontAddStaticConfigureFlags = true; + configurePlatforms = [ ]; - buildPhase = '' - runHook preBuild - dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} - runHook postBuild - ''; - checkPhase = '' - runHook preCheck - dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} - runHook postCheck - ''; - installPhase = '' - runHook preInstall - dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} \ - ${if lib.versionAtLeast Dune.version "2.9" - then "--docdir $out/share/doc --mandir $out/share/man" - else ""} - runHook postInstall - ''; + buildPhase = '' + runHook preBuild + dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + runHook postBuild + ''; + checkPhase = '' + runHook preCheck + dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + runHook postCheck + ''; + installPhase = '' + runHook preInstall + dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} \ + ${ + if lib.versionAtLeast Dune.version "2.9" then + "--docdir $out/share/doc --mandir $out/share/man" + else + "" + } + runHook postInstall + ''; - strictDeps = true; + strictDeps = true; -} // (builtins.removeAttrs args [ "minimalOCamlVersion" "duneVersion" ]) // { + } + // (builtins.removeAttrs args [ + "minimalOCamlVersion" + "duneVersion" + ]) + // { - name = "ocaml${ocaml.version}-${pname}-${version}"; + name = "ocaml${ocaml.version}-${pname}-${version}"; - nativeBuildInputs = [ ocaml Dune findlib ] ++ nativeBuildInputs; + nativeBuildInputs = [ + ocaml + Dune + findlib + ] ++ nativeBuildInputs; - meta = (args.meta or {}) // { platforms = args.meta.platforms or ocaml.meta.platforms; }; + meta = (args.meta or { }) // { + platforms = args.meta.platforms or ocaml.meta.platforms; + }; -}) + } + ) diff --git a/pkgs/build-support/ocaml/oasis.nix b/pkgs/build-support/ocaml/oasis.nix index 91daad5..f4319fc 100644 --- a/pkgs/build-support/ocaml/oasis.nix +++ b/pkgs/build-support/ocaml/oasis.nix @@ -1,46 +1,66 @@ -{ lib, stdenv, ocaml_oasis, ocaml, findlib, ocamlbuild }: +{ + lib, + stdenv, + ocaml_oasis, + ocaml, + findlib, + ocamlbuild, +}: -{ pname, version, nativeBuildInputs ? [], meta ? { platforms = ocaml.meta.platforms or []; }, +{ + pname, + version, + nativeBuildInputs ? [ ], + meta ? { + platforms = ocaml.meta.platforms or [ ]; + }, minimumOCamlVersion ? null, createFindlibDestdir ? true, dontStrip ? true, ... }@args: -if args ? minimumOCamlVersion && - lib.versionOlder ocaml.version args.minimumOCamlVersion -then throw "${pname}-${version} is not available for OCaml ${ocaml.version}" +if args ? minimumOCamlVersion && lib.versionOlder ocaml.version args.minimumOCamlVersion then + throw "${pname}-${version} is not available for OCaml ${ocaml.version}" else -stdenv.mkDerivation (args // { - name = "ocaml${ocaml.version}-${pname}-${version}"; + stdenv.mkDerivation ( + args + // { + name = "ocaml${ocaml.version}-${pname}-${version}"; - nativeBuildInputs = [ ocaml findlib ocamlbuild ocaml_oasis ] ++ nativeBuildInputs; + nativeBuildInputs = [ + ocaml + findlib + ocamlbuild + ocaml_oasis + ] ++ nativeBuildInputs; - inherit createFindlibDestdir; - inherit dontStrip; + inherit createFindlibDestdir; + inherit dontStrip; - strictDeps = true; + strictDeps = true; - buildPhase = '' - runHook preBuild - oasis setup - ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out - ocaml setup.ml -build - runHook postBuild - ''; + buildPhase = '' + runHook preBuild + oasis setup + ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out + ocaml setup.ml -build + runHook postBuild + ''; - checkPhase = '' - runHook preCheck - ocaml setup.ml -test - runHook postCheck - ''; + checkPhase = '' + runHook preCheck + ocaml setup.ml -test + runHook postCheck + ''; - installPhase = '' - runHook preInstall - mkdir -p $out - ocaml setup.ml -install - runHook postInstall - ''; + installPhase = '' + runHook preInstall + mkdir -p $out + ocaml setup.ml -install + runHook postInstall + ''; -}) + } + ) diff --git a/pkgs/build-support/ocaml/topkg.nix b/pkgs/build-support/ocaml/topkg.nix index 73be581..4b387b1 100644 --- a/pkgs/build-support/ocaml/topkg.nix +++ b/pkgs/build-support/ocaml/topkg.nix @@ -1,28 +1,53 @@ -{ lib, stdenv, fetchurl, ocaml, findlib, topkg, ocamlbuild, cmdliner, odoc, b0 +{ + lib, + stdenv, + fetchurl, + ocaml, + findlib, + topkg, + ocamlbuild, + cmdliner, + odoc, + b0, }: -{ pname, version, nativeBuildInputs ? [ ], buildInputs ? [ ], ... }@args: +{ + pname, + version, + nativeBuildInputs ? [ ], + buildInputs ? [ ], + ... +}@args: -lib.throwIf (args ? minimalOCamlVersion - && lib.versionOlder ocaml.version args.minimalOCamlVersion) -"${pname}-${version} is not available for OCaml ${ocaml.version}" +lib.throwIf (args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion) + "${pname}-${version} is not available for OCaml ${ocaml.version}" -stdenv.mkDerivation ({ + stdenv.mkDerivation + ( + { - dontAddStaticConfigureFlags = true; - configurePlatforms = [ ]; - strictDeps = true; - inherit (topkg) buildPhase installPhase; + dontAddStaticConfigureFlags = true; + configurePlatforms = [ ]; + strictDeps = true; + inherit (topkg) buildPhase installPhase; -} // (builtins.removeAttrs args [ "minimalOCamlVersion" ]) // { + } + // (builtins.removeAttrs args [ "minimalOCamlVersion" ]) + // { - name = "ocaml${ocaml.version}-${pname}-${version}"; + name = "ocaml${ocaml.version}-${pname}-${version}"; - nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ] ++ nativeBuildInputs; - buildInputs = [ topkg ] ++ buildInputs; + nativeBuildInputs = [ + ocaml + findlib + ocamlbuild + topkg + ] ++ nativeBuildInputs; + buildInputs = [ topkg ] ++ buildInputs; - meta = (args.meta or { }) // { - platforms = args.meta.platforms or ocaml.meta.platforms; - }; + meta = (args.meta or { }) // { + platforms = args.meta.platforms or ocaml.meta.platforms; + }; -}) + } + ) diff --git a/pkgs/build-support/oci-tools/default.nix b/pkgs/build-support/oci-tools/default.nix index 1f5507f..a9b6787 100644 --- a/pkgs/build-support/oci-tools/default.nix +++ b/pkgs/build-support/oci-tools/default.nix @@ -1,78 +1,143 @@ -{ lib, writeText, runCommand, writeClosure }: +{ + lib, + writeText, + runCommand, + writeClosure, +}: { buildContainer = - { args - , mounts ? {} - , os ? "linux" - , arch ? "x86_64" - , readonly ? false + { + args, + mounts ? { }, + os ? "linux", + arch ? "x86_64", + readonly ? false, }: - let - sysMounts = { - "/proc" = { - type = "proc"; - source = "proc"; - }; - "/dev" = { - type = "tmpfs"; - source = "tmpfs"; - options = [ "nosuid" "strictatime" "mode=755" "size=65536k" ]; - }; - "/dev/pts" = { - type = "devpts"; - source = "devpts"; - options = [ "nosuid" "noexec" "newinstance" "ptmxmode=0666" "mode=755" "gid=5" ]; - }; - "/dev/shm" = { - type = "tmpfs"; - source = "shm"; - options = [ "nosuid" "noexec" "nodev" "mode=1777" "size=65536k" ]; - }; - "/dev/mqueue" = { - type = "mqueue"; - source = "mqueue"; - options = [ "nosuid" "noexec" "nodev" ]; - }; - "/sys" = { - type = "sysfs"; - source = "sysfs"; - options = [ "nosuid" "noexec" "nodev" "ro" ]; - }; - "/sys/fs/cgroup" = { - type = "cgroup"; - source = "cgroup"; - options = [ "nosuid" "noexec" "nodev" "relatime" "ro" ]; - }; - }; - config = writeText "config.json" (builtins.toJSON { - ociVersion = "1.0.0"; - platform = { - inherit os arch; + let + sysMounts = { + "/proc" = { + type = "proc"; + source = "proc"; + }; + "/dev" = { + type = "tmpfs"; + source = "tmpfs"; + options = [ + "nosuid" + "strictatime" + "mode=755" + "size=65536k" + ]; + }; + "/dev/pts" = { + type = "devpts"; + source = "devpts"; + options = [ + "nosuid" + "noexec" + "newinstance" + "ptmxmode=0666" + "mode=755" + "gid=5" + ]; + }; + "/dev/shm" = { + type = "tmpfs"; + source = "shm"; + options = [ + "nosuid" + "noexec" + "nodev" + "mode=1777" + "size=65536k" + ]; + }; + "/dev/mqueue" = { + type = "mqueue"; + source = "mqueue"; + options = [ + "nosuid" + "noexec" + "nodev" + ]; + }; + "/sys" = { + type = "sysfs"; + source = "sysfs"; + options = [ + "nosuid" + "noexec" + "nodev" + "ro" + ]; + }; + "/sys/fs/cgroup" = { + type = "cgroup"; + source = "cgroup"; + options = [ + "nosuid" + "noexec" + "nodev" + "relatime" + "ro" + ]; + }; }; + config = writeText "config.json" ( + builtins.toJSON { + ociVersion = "1.0.0"; + platform = { + inherit os arch; + }; - linux = { - namespaces = map (type: { inherit type; }) [ "pid" "network" "mount" "ipc" "uts" ]; - }; + linux = { + namespaces = map (type: { inherit type; }) [ + "pid" + "network" + "mount" + "ipc" + "uts" + ]; + }; - root = { path = "rootfs"; inherit readonly; }; + root = { + path = "rootfs"; + inherit readonly; + }; - process = { - inherit args; - user = { uid = 0; gid = 0; }; - cwd = "/"; - }; + process = { + inherit args; + user = { + uid = 0; + gid = 0; + }; + cwd = "/"; + }; - mounts = lib.mapAttrsToList (destination: { type, source, options ? null }: { - inherit destination type source options; - }) sysMounts; - }); - in - runCommand "join" {} '' + mounts = lib.mapAttrsToList ( + destination: + { + type, + source, + options ? null, + }: + { + inherit + destination + type + source + options + ; + } + ) sysMounts; + } + ); + in + runCommand "join" { } '' set -o pipefail mkdir -p $out/rootfs/{dev,proc,sys} cp ${config} $out/config.json xargs tar c < ${writeClosure args} | tar -xC $out/rootfs/ ''; } - diff --git a/pkgs/build-support/packages.nix b/pkgs/build-support/packages.nix index 10c1b25..bddb456 100644 --- a/pkgs/build-support/packages.nix +++ b/pkgs/build-support/packages.nix @@ -1,41 +1,43 @@ { ... }: res: pkgs: super: -with pkgs; -{ - autoreconfHook = callPackage - ( - { makeSetupHook, autoconf, automake, gettext, libtool }: - makeSetupHook - { - name = "autoreconf-hook"; - propagatedBuildInputs = [ autoconf automake gettext libtool ]; - } ./setup-hooks/autoreconf.sh - ) - { }; +with pkgs; { + autoreconfHook = callPackage ( + { + makeSetupHook, + autoconf, + automake, + gettext, + libtool, + }: + makeSetupHook { + name = "autoreconf-hook"; + propagatedBuildInputs = [ + autoconf + automake + gettext + libtool + ]; + } ./setup-hooks/autoreconf.sh + ) { }; autoreconfHook264 = autoreconfHook.override { autoconf = autoconf264; automake = automake111x; }; - autoreconfHook269 = autoreconfHook.override { - autoconf = autoconf269; - }; - autoreconfHook271 = autoreconfHook.override { - autoconf = autoconf271; - }; + autoreconfHook269 = autoreconfHook.override { autoconf = autoconf269; }; + autoreconfHook271 = autoreconfHook.override { autoconf = autoconf271; }; - autoPatchelfHook = makeSetupHook - { - name = "auto-patchelf-hook"; - propagatedBuildInputs = [ bintools ]; - substitutions = { - pythonInterpreter = "${python3.withPackages (ps: [ ps.pyelftools ])}/bin/python"; - autoPatchelfScript = ./setup-hooks/auto-patchelf.py; - }; - meta.platforms = lib.platforms.linux; - } ./setup-hooks/auto-patchelf.sh; + autoPatchelfHook = makeSetupHook { + name = "auto-patchelf-hook"; + propagatedBuildInputs = [ bintools ]; + substitutions = { + pythonInterpreter = "${python3.withPackages (ps: [ ps.pyelftools ])}/bin/python"; + autoPatchelfScript = ./setup-hooks/auto-patchelf.py; + }; + meta.platforms = lib.platforms.linux; + } ./setup-hooks/auto-patchelf.sh; # tomato-c = callPackage ../applications/misc/tomato-c { }; @@ -49,23 +51,22 @@ with pkgs; # inherit (darwin.apple_sdk.frameworks) Security; # }; - stripJavaArchivesHook = makeSetupHook - { - name = "strip-java-archives-hook"; - propagatedBuildInputs = [ strip-nondeterminism ]; - } ./setup-hooks/strip-java-archives.sh; + stripJavaArchivesHook = makeSetupHook { + name = "strip-java-archives-hook"; + propagatedBuildInputs = [ strip-nondeterminism ]; + } ./setup-hooks/strip-java-archives.sh; - ensureNewerSourcesHook = { year }: makeSetupHook - { - name = "ensure-newer-sources-hook"; - } - (writeScript "ensure-newer-sources-hook.sh" '' - postUnpackHooks+=(_ensureNewerSources) - _ensureNewerSources() { - '${findutils}/bin/find' "$sourceRoot" \ - '!' -newermt '${year}-01-01' -exec touch -h -d '${year}-01-02' '{}' '+' - } - ''); + ensureNewerSourcesHook = + { year }: + makeSetupHook { name = "ensure-newer-sources-hook"; } ( + writeScript "ensure-newer-sources-hook.sh" '' + postUnpackHooks+=(_ensureNewerSources) + _ensureNewerSources() { + '${findutils}/bin/find' "$sourceRoot" \ + '!' -newermt '${year}-01-01' -exec touch -h -d '${year}-01-02' '{}' '+' + } + '' + ); # Zip file format only allows times after year 1980, which makes e.g. Python # wheel building fail with: @@ -80,11 +81,12 @@ with pkgs; # Post 24.11 branch-off, this should throw an error in aliases.nix. addOpenGLRunpath = callPackage ./add-opengl-runpath { }; - updateAutotoolsGnuConfigScriptsHook = makeSetupHook - { - name = "update-autotools-gnu-config-scripts-hook"; - substitutions = { gnu_config = gnu-config; }; - } ./setup-hooks/update-autotools-gnu-config-scripts.sh; + updateAutotoolsGnuConfigScriptsHook = makeSetupHook { + name = "update-autotools-gnu-config-scripts-hook"; + substitutions = { + gnu_config = gnu-config; + }; + } ./setup-hooks/update-autotools-gnu-config-scripts.sh; # gogUnpackHook = makeSetupHook # { @@ -113,11 +115,7 @@ with pkgs; diffPlugins = (callPackage ./plugins.nix { }).diffPlugins; - dieHook = makeSetupHook - { - name = "die-hook"; - } ./setup-hooks/die.sh; - + dieHook = makeSetupHook { name = "die-hook"; } ./setup-hooks/die.sh; # dockerTools = callPackage ./docker # { @@ -152,10 +150,13 @@ with pkgs; # fetchbzr = callPackage ./fetchbzr { }; fetchcvs = - if stdenv.buildPlatform != stdenv.hostPlatform + if + stdenv.buildPlatform != stdenv.hostPlatform # hack around splicing being crummy with things that (correctly) don't eval. - then buildPackages.fetchcvs - else callPackage ./fetchcvs { }; + then + buildPackages.fetchcvs + else + callPackage ./fetchcvs { }; fetchdarcs = callPackage ./fetchdarcs { }; @@ -167,14 +168,16 @@ with pkgs; fetchfossil = callPackage ./fetchfossil { }; - fetchgit = (callPackage ./fetchgit { - git = buildPackages.gitMinimal; - cacert = buildPackages.cacert; - git-lfs = buildPackages.git-lfs; - }) // { - # fetchgit is a function, so we use // instead of passthru. - tests = pkgs.tests.fetchgit; - }; + fetchgit = + (callPackage ./fetchgit { + git = buildPackages.gitMinimal; + cacert = buildPackages.cacert; + git-lfs = buildPackages.git-lfs; + }) + // { + # fetchgit is a function, so we use // instead of passthru. + tests = pkgs.tests.fetchgit; + }; fetchgitLocal = callPackage ./fetchgitlocal { }; @@ -184,26 +187,21 @@ with pkgs; fetchpijul = callPackage ./fetchpijul { }; - inherit (callPackages ./node/fetch-yarn-deps { }) - fixup-yarn-lock - prefetch-yarn-deps - fetchYarnDeps; + inherit (callPackages ./node/fetch-yarn-deps { }) fixup-yarn-lock prefetch-yarn-deps fetchYarnDeps; prefer-remote-fetch = import ./prefer-remote-fetch; - fetchpatch = callPackage ./fetchpatch - { + fetchpatch = + callPackage ./fetchpatch { # 0.3.4 would change hashes: https://github.com/NixOS/nixpkgs/issues/25154 patchutils = buildPackages.patchutils_0_3_3; - } // { - tests = pkgs.tests.fetchpatch; - version = 1; - }; + } + // { + tests = pkgs.tests.fetchpatch; + version = 1; + }; - fetchpatch2 = callPackage ./fetchpatch - { - patchutils = buildPackages.patchutils_0_4_2; - } // { + fetchpatch2 = callPackage ./fetchpatch { patchutils = buildPackages.patchutils_0_4_2; } // { tests = pkgs.tests.fetchpatch2; version = 2; }; @@ -213,10 +211,13 @@ with pkgs; fetchtorrent = callPackage ./fetchtorrent { }; fetchsvn = - if stdenv.buildPlatform != stdenv.hostPlatform + if + stdenv.buildPlatform != stdenv.hostPlatform # hack around splicing being crummy with things that (correctly) don't eval. - then buildPackages.fetchsvn - else callPackage ./fetchsvn { }; + then + buildPackages.fetchsvn + else + callPackage ./fetchsvn { }; fetchsvnrevision = import ./fetchsvnrevision runCommand subversion; @@ -224,8 +225,7 @@ with pkgs; fetchhg = callPackage ./fetchhg { }; - fetchFirefoxAddon = callPackage ./fetchfirefoxaddon { } - // { + fetchFirefoxAddon = callPackage ./fetchfirefoxaddon { } // { tests = pkgs.tests.fetchFirefoxAddon; }; @@ -233,8 +233,8 @@ with pkgs; # `fetchurl' downloads a file from the network. fetchurl = - if stdenv.buildPlatform != stdenv.hostPlatform - then buildPackages.fetchurl # No need to do special overrides twice, + if stdenv.buildPlatform != stdenv.hostPlatform then + buildPackages.fetchurl # No need to do special overrides twice, else makeOverridable (import ./fetchurl) { inherit lib stdenvNoCC buildPackages; @@ -244,9 +244,7 @@ with pkgs; fetchurl = stdenv.fetchurlBoot; zlib = buildPackages.zlib.override { fetchurl = stdenv.fetchurlBoot; }; pkg-config = buildPackages.pkg-config.override (old: { - pkg-config = old.pkg-config.override { - fetchurl = stdenv.fetchurlBoot; - }; + pkg-config = old.pkg-config.override { fetchurl = stdenv.fetchurlBoot; }; }); perl = buildPackages.perl.override { fetchurl = stdenv.fetchurlBoot; }; openssl = buildPackages.openssl.override { @@ -273,9 +271,7 @@ with pkgs; # So turn gssSupport off there, and on Windows. # On other platforms, keep the previous value. gssSupport = - if stdenv.isDarwin || stdenv.hostPlatform.isWindows - then false - else old.gssSupport or true; # `? true` is the default + if stdenv.isDarwin || stdenv.hostPlatform.isWindows then false else old.gssSupport or true; # `? true` is the default libkrb5 = buildPackages.libkrb5.override { fetchurl = stdenv.fetchurlBoot; inherit pkg-config perl openssl; @@ -296,8 +292,7 @@ with pkgs; # inherit curl stdenv; # }; - fetchzip = callPackage ./fetchzip { } - // { + fetchzip = callPackage ./fetchzip { } // { tests = pkgs.tests.fetchzip; }; @@ -369,18 +364,21 @@ with pkgs; makeWrapper = makeShellWrapper; - makeShellWrapper = makeSetupHook - { - name = "make-shell-wrapper-hook"; - propagatedBuildInputs = [ dieHook ]; - substitutions = { - # targetPackages.runtimeShell only exists when pkgs == targetPackages (when targetPackages is not __raw) - shell = if targetPackages ? runtimeShell then targetPackages.runtimeShell else throw "makeWrapper/makeShellWrapper must be in nativeBuildInputs"; - }; - passthru = { - tests = tests.makeWrapper; - }; - } ./setup-hooks/make-wrapper.sh; + makeShellWrapper = makeSetupHook { + name = "make-shell-wrapper-hook"; + propagatedBuildInputs = [ dieHook ]; + substitutions = { + # targetPackages.runtimeShell only exists when pkgs == targetPackages (when targetPackages is not __raw) + shell = + if targetPackages ? runtimeShell then + targetPackages.runtimeShell + else + throw "makeWrapper/makeShellWrapper must be in nativeBuildInputs"; + }; + passthru = { + tests = tests.makeWrapper; + }; + } ./setup-hooks/make-wrapper.sh; makeBinaryWrapper = callPackage ./setup-hooks/make-binary-wrapper { }; @@ -408,18 +406,18 @@ with pkgs; # pathsFromGraph = ./kernel/paths-from-graph.pl; - pruneLibtoolFiles = makeSetupHook { name = "prune-libtool-files"; } - ./setup-hooks/prune-libtool-files.sh; + pruneLibtoolFiles = makeSetupHook { + name = "prune-libtool-files"; + } ./setup-hooks/prune-libtool-files.sh; # closureInfo = callPackage ./closure-info.nix { }; # setupSystemdUnits = callPackage ./setup-systemd-units.nix { }; - shortenPerlShebang = makeSetupHook - { - name = "shorten-perl-shebang-hook"; - propagatedBuildInputs = [ dieHook ]; - } ./setup-hooks/shorten-perl-shebang.sh; + shortenPerlShebang = makeSetupHook { + name = "shorten-perl-shebang-hook"; + propagatedBuildInputs = [ dieHook ]; + } ./setup-hooks/shorten-perl-shebang.sh; # singularity-tools = callPackage ./singularity-tools { }; @@ -433,15 +431,11 @@ with pkgs; # replaceDependency = callPackage ./replace-dependency.nix { }; - nukeReferences = callPackage ./nuke-references { - inherit (darwin) signingUtils; - }; + nukeReferences = callPackage ./nuke-references { inherit (darwin) signingUtils; }; # referencesByPopularity = callPackage ./references-by-popularity { }; - removeReferencesTo = callPackage ./remove-references-to { - inherit (darwin) signingUtils; - }; + removeReferencesTo = callPackage ./remove-references-to { inherit (darwin) signingUtils; }; # # No callPackage. In particular, we don't want `img` *package* in parameters. # vmTools = makeOverridable (import ./vm) { inherit pkgs lib; }; @@ -454,12 +448,13 @@ with pkgs; # name = "set-java-classpath-hook"; # } ./setup-hooks/set-java-classpath.sh; - fixDarwinDylibNames = makeSetupHook - { - name = "fix-darwin-dylib-names-hook"; - substitutions = { inherit (binutils) targetPrefix; }; - meta.platforms = lib.platforms.darwin; - } ./setup-hooks/fix-darwin-dylib-names.sh; + fixDarwinDylibNames = makeSetupHook { + name = "fix-darwin-dylib-names-hook"; + substitutions = { + inherit (binutils) targetPrefix; + }; + meta.platforms = lib.platforms.darwin; + } ./setup-hooks/fix-darwin-dylib-names.sh; # writeDarwinBundle = callPackage ./make-darwin-bundle/write-darwin-bundle.nix { }; @@ -490,10 +485,9 @@ with pkgs; # # intended to be used like nix-build -E 'with import { }; enableDebugging fooPackage' # enableDebugging = pkg: pkg.override { stdenv = stdenvAdapters.keepDebugInfo pkg.stdenv; }; - findXMLCatalogs = makeSetupHook - { - name = "find-xml-catalogs-hook"; - } ./setup-hooks/find-xml-catalogs.sh; + findXMLCatalogs = makeSetupHook { + name = "find-xml-catalogs-hook"; + } ./setup-hooks/find-xml-catalogs.sh; # wrapGAppsHook = callPackage ./setup-hooks/wrap-gapps-hook { # makeWrapper = makeBinaryWrapper; @@ -507,10 +501,9 @@ with pkgs; # name = "separate-debug-info-hook"; # } ./setup-hooks/separate-debug-info.sh; - setupDebugInfoDirs = makeSetupHook - { - name = "setup-debug-info-dirs-hook"; - } ./setup-hooks/setup-debug-info-dirs.sh; + setupDebugInfoDirs = makeSetupHook { + name = "setup-debug-info-dirs-hook"; + } ./setup-hooks/setup-debug-info-dirs.sh; # useOldCXXAbi = makeSetupHook { # name = "use-old-cxx-abi-hook"; @@ -540,8 +533,9 @@ with pkgs; # deterministic-uname = callPackage ./deterministic-uname { }; wrapCCWith = - { cc - , # This should be the only bintools runtime dep with this sort of logic. The + { + cc, + # This should be the only bintools runtime dep with this sort of logic. The # Others should instead delegate to the next stage's choice with # `targetPackages.stdenv.cc.bintools`. This one is different just to # provide the default choice, avoiding infinite recursion. @@ -549,16 +543,18 @@ with pkgs; # a default here, since eval will hit this function when bootstrapping # stdenv where the bintools attribute doesn't exist, but will never actually # be evaluated -- callPackage ends up being too eager. - bintools ? pkgs.bintools - , libc ? bintools.libc - , # libc++ from the default LLVM version is bound at the top level, but we + bintools ? pkgs.bintools, + libc ? bintools.libc, + # libc++ from the default LLVM version is bound at the top level, but we # want the C++ library to be explicitly chosen by the caller, and null by # default. - libcxx ? null - , extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) ((threadsCrossFor cc.version).package) - , nixSupport ? { } - , ... - } @ extraArgs: + libcxx ? null, + extraPackages ? lib.optional (cc.isGNU or false && stdenv.targetPlatform.isMinGW) ( + (threadsCrossFor cc.version).package + ), + nixSupport ? { }, + ... + }@extraArgs: callPackage ./cc-wrapper ( let self = { @@ -570,21 +566,28 @@ with pkgs; isGNU = cc.isGNU or false; isClang = cc.isClang or false; - inherit cc bintools libc libcxx extraPackages nixSupport zlib; + inherit + cc + bintools + libc + libcxx + extraPackages + nixSupport + zlib + ; } // extraArgs; in self ); - wrapCC = cc: wrapCCWith { - inherit cc; - }; + wrapCC = cc: wrapCCWith { inherit cc; }; wrapBintoolsWith = - { bintools - , libc ? if stdenv.targetPlatform != stdenv.hostPlatform then libcCross else stdenv.cc.libc - , ... - } @ extraArgs: + { + bintools, + libc ? if stdenv.targetPlatform != stdenv.hostPlatform then libcCross else stdenv.cc.libc, + ... + }@extraArgs: callPackage ./bintools-wrapper ( let self = { @@ -603,6 +606,6 @@ with pkgs; # sourceFromHead = callPackage ./source-from-head-fun.nix { }; - wrapRustcWith = { rustc-unwrapped, ... } @ args: callPackage ./rust/rustc-wrapper args; + wrapRustcWith = { rustc-unwrapped, ... }@args: callPackage ./rust/rustc-wrapper args; wrapRustc = rustc-unwrapped: wrapRustcWith { inherit rustc-unwrapped; }; } diff --git a/pkgs/build-support/php/build-composer-project.nix b/pkgs/build-support/php/build-composer-project.nix index 80c63bc..5a21eda 100644 --- a/pkgs/build-support/php/build-composer-project.nix +++ b/pkgs/build-support/php/build-composer-project.nix @@ -1,7 +1,17 @@ -{ callPackage, stdenvNoCC, lib, writeTextDir, php, makeBinaryWrapper, fetchFromGitHub, fetchurl }: +{ + callPackage, + stdenvNoCC, + lib, + writeTextDir, + php, + makeBinaryWrapper, + fetchFromGitHub, + fetchurl, +}: let - buildComposerProjectOverride = finalAttrs: previousAttrs: + buildComposerProjectOverride = + finalAttrs: previousAttrs: let phpDrv = finalAttrs.php or php; @@ -22,49 +32,58 @@ let phpDrv.composerHooks.composerInstallHook ]; - buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ - phpDrv - ]; + buildInputs = (previousAttrs.buildInputs or [ ]) ++ [ phpDrv ]; patches = previousAttrs.patches or [ ]; strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? - configurePhase = previousAttrs.configurePhase or '' - runHook preConfigure + configurePhase = + previousAttrs.configurePhase or '' + runHook preConfigure - runHook postConfigure - ''; + runHook postConfigure + ''; - buildPhase = previousAttrs.buildPhase or '' - runHook preBuild + buildPhase = + previousAttrs.buildPhase or '' + runHook preBuild - runHook postBuild - ''; + runHook postBuild + ''; doCheck = previousAttrs.doCheck or true; - checkPhase = previousAttrs.checkPhase or '' - runHook preCheck + checkPhase = + previousAttrs.checkPhase or '' + runHook preCheck - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = previousAttrs.installPhase or '' - runHook preInstall + installPhase = + previousAttrs.installPhase or '' + runHook preInstall - runHook postInstall - ''; + runHook postInstall + ''; doInstallCheck = previousAttrs.doInstallCheck or false; - installCheckPhase = previousAttrs.installCheckPhase or '' - runHook preInstallCheck + installCheckPhase = + previousAttrs.installCheckPhase or '' + runHook preInstallCheck - runHook postInstallCheck - ''; + runHook postInstallCheck + ''; composerRepository = phpDrv.mkComposerRepository { inherit composer composer-local-repo-plugin; - inherit (finalAttrs) patches pname src vendorHash version; + inherit (finalAttrs) + patches + pname + src + vendorHash + version + ; composerLock = previousAttrs.composerLock or null; composerNoDev = previousAttrs.composerNoDev or true; @@ -73,9 +92,9 @@ let composerStrictValidation = previousAttrs.composerStrictValidation or true; }; - COMPOSER_CACHE_DIR="/dev/null"; - COMPOSER_DISABLE_NETWORK="1"; - COMPOSER_MIRROR_PATH_REPOS="1"; + COMPOSER_CACHE_DIR = "/dev/null"; + COMPOSER_DISABLE_NETWORK = "1"; + COMPOSER_MIRROR_PATH_REPOS = "1"; meta = previousAttrs.meta or { } // { platforms = lib.platforms.all; diff --git a/pkgs/build-support/php/build-composer-repository.nix b/pkgs/build-support/php/build-composer-repository.nix index e359c08..a5b02fd 100644 --- a/pkgs/build-support/php/build-composer-repository.nix +++ b/pkgs/build-support/php/build-composer-repository.nix @@ -1,4 +1,11 @@ -{ callPackage, stdenvNoCC, lib, writeTextDir, fetchFromGitHub, php }: +{ + callPackage, + stdenvNoCC, + lib, + writeTextDir, + fetchFromGitHub, + php, +}: let mkComposerRepositoryOverride = @@ -22,12 +29,24 @@ let composer-local-repo-plugin = callPackage ./pkgs/composer-local-repo-plugin.nix { }; in assert (lib.assertMsg (previousAttrs ? src) "mkComposerRepository expects src argument."); - assert (lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument."); + assert ( + lib.assertMsg (previousAttrs ? vendorHash) "mkComposerRepository expects vendorHash argument." + ); assert (lib.assertMsg (previousAttrs ? version) "mkComposerRepository expects version argument."); assert (lib.assertMsg (previousAttrs ? pname) "mkComposerRepository expects pname argument."); - assert (lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument."); - assert (lib.assertMsg (previousAttrs ? composerNoPlugins) "mkComposerRepository expects composerNoPlugins argument."); - assert (lib.assertMsg (previousAttrs ? composerNoScripts) "mkComposerRepository expects composerNoScripts argument."); + assert ( + lib.assertMsg (previousAttrs ? composerNoDev) "mkComposerRepository expects composerNoDev argument." + ); + assert ( + lib.assertMsg ( + previousAttrs ? composerNoPlugins + ) "mkComposerRepository expects composerNoPlugins argument." + ); + assert ( + lib.assertMsg ( + previousAttrs ? composerNoScripts + ) "mkComposerRepository expects composerNoScripts argument." + ); { composerNoDev = previousAttrs.composerNoDev or true; composerNoPlugins = previousAttrs.composerNoPlugins or true; @@ -51,37 +70,42 @@ let strictDeps = previousAttrs.strictDeps or true; # Should we keep these empty phases? - configurePhase = previousAttrs.configurePhase or '' - runHook preConfigure + configurePhase = + previousAttrs.configurePhase or '' + runHook preConfigure - runHook postConfigure - ''; + runHook postConfigure + ''; - buildPhase = previousAttrs.buildPhase or '' - runHook preBuild + buildPhase = + previousAttrs.buildPhase or '' + runHook preBuild - runHook postBuild - ''; + runHook postBuild + ''; doCheck = previousAttrs.doCheck or true; - checkPhase = previousAttrs.checkPhase or '' - runHook preCheck + checkPhase = + previousAttrs.checkPhase or '' + runHook preCheck - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = previousAttrs.installPhase or '' - runHook preInstall + installPhase = + previousAttrs.installPhase or '' + runHook preInstall - runHook postInstall - ''; + runHook postInstall + ''; doInstallCheck = previousAttrs.doInstallCheck or false; - installCheckPhase = previousAttrs.installCheckPhase or '' - runHook preInstallCheck + installCheckPhase = + previousAttrs.installCheckPhase or '' + runHook preInstallCheck - runHook postInstallCheck - ''; + runHook postInstallCheck + ''; COMPOSER_CACHE_DIR = "/dev/null"; COMPOSER_MIRROR_PATH_REPOS = "1"; @@ -89,7 +113,8 @@ let COMPOSER_DISABLE_NETWORK = "0"; outputHashMode = "recursive"; - outputHashAlgo = if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; + outputHashAlgo = + if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256"; outputHash = finalAttrs.vendorHash or ""; }; in diff --git a/pkgs/build-support/php/build-pecl.nix b/pkgs/build-support/php/build-pecl.nix index 6f38a66..16913a8 100644 --- a/pkgs/build-support/php/build-pecl.nix +++ b/pkgs/build-support/php/build-pecl.nix @@ -1,45 +1,69 @@ -{ stdenv, lib, php, autoreconfHook, fetchurl, re2c, nix-update-script }: +{ + stdenv, + lib, + php, + autoreconfHook, + fetchurl, + re2c, + nix-update-script, +}: -{ pname -, version -, internalDeps ? [ ] -, peclDeps ? [ ] -, buildInputs ? [ ] -, nativeBuildInputs ? [ ] -, postPhpize ? "" -, makeFlags ? [ ] -, src ? fetchurl ({ - url = "https://pecl.php.net/get/${pname}-${version}.tgz"; - } // lib.filterAttrs (attrName: _: lib.elem attrName [ "sha256" "hash" ]) args) -, passthru ? { } -, ... +{ + pname, + version, + internalDeps ? [ ], + peclDeps ? [ ], + buildInputs ? [ ], + nativeBuildInputs ? [ ], + postPhpize ? "", + makeFlags ? [ ], + src ? fetchurl ( + { + url = "https://pecl.php.net/get/${pname}-${version}.tgz"; + } + // lib.filterAttrs ( + attrName: _: + lib.elem attrName [ + "sha256" + "hash" + ] + ) args + ), + passthru ? { }, + ... }@args: -stdenv.mkDerivation (args // { - name = "php-${pname}-${version}"; - extensionName = pname; +stdenv.mkDerivation ( + args + // { + name = "php-${pname}-${version}"; + extensionName = pname; - inherit src; + inherit src; - nativeBuildInputs = [ autoreconfHook re2c ] ++ nativeBuildInputs; - buildInputs = [ php ] ++ peclDeps ++ buildInputs; + nativeBuildInputs = [ + autoreconfHook + re2c + ] ++ nativeBuildInputs; + buildInputs = [ php ] ++ peclDeps ++ buildInputs; - makeFlags = [ "EXTENSION_DIR=$(out)/lib/php/extensions" ] ++ makeFlags; + makeFlags = [ "EXTENSION_DIR=$(out)/lib/php/extensions" ] ++ makeFlags; - autoreconfPhase = '' - phpize - ${postPhpize} - ${lib.concatMapStringsSep "\n" - (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}") - internalDeps} - ''; - checkPhase = "NO_INTERACTON=yes make test"; + autoreconfPhase = '' + phpize + ${postPhpize} + ${lib.concatMapStringsSep "\n" ( + dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}" + ) internalDeps} + ''; + checkPhase = "NO_INTERACTON=yes make test"; - passthru = passthru // { - # Thes flags were introduced for `nix-update` so that it can update - # PHP extensions correctly. - # See the corresponding PR: https://github.com/Mic92/nix-update/pull/123 - isPhpExtension = true; - updateScript = nix-update-script {}; - }; -}) + passthru = passthru // { + # Thes flags were introduced for `nix-update` so that it can update + # PHP extensions correctly. + # See the corresponding PR: https://github.com/Mic92/nix-update/pull/123 + isPhpExtension = true; + updateScript = nix-update-script { }; + }; + } +) diff --git a/pkgs/build-support/php/hooks/default.nix b/pkgs/build-support/php/hooks/default.nix index 98e81c8..80e9be6 100644 --- a/pkgs/build-support/php/hooks/default.nix +++ b/pkgs/build-support/php/hooks/default.nix @@ -1,12 +1,13 @@ -{ lib -, makeSetupHook -, diffutils -, jq -, writeShellApplication -, moreutils -, makeBinaryWrapper -, cacert -, buildPackages +{ + lib, + makeSetupHook, + diffutils, + jq, + writeShellApplication, + moreutils, + makeBinaryWrapper, + cacert, + buildPackages, }: let @@ -17,24 +18,31 @@ let }; in { - composerRepositoryHook = makeSetupHook - { - name = "composer-repository-hook.sh"; - propagatedBuildInputs = [ jq moreutils cacert ]; - substitutions = { - phpScriptUtils = lib.getExe php-script-utils; - }; - } ./composer-repository-hook.sh; + composerRepositoryHook = makeSetupHook { + name = "composer-repository-hook.sh"; + propagatedBuildInputs = [ + jq + moreutils + cacert + ]; + substitutions = { + phpScriptUtils = lib.getExe php-script-utils; + }; + } ./composer-repository-hook.sh; - composerInstallHook = makeSetupHook - { - name = "composer-install-hook.sh"; - propagatedBuildInputs = [ jq makeBinaryWrapper moreutils cacert ]; - substitutions = { - # Specify the stdenv's `diff` by abspath to ensure that the user's build - # inputs do not cause us to find the wrong `diff`. - cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp"; - phpScriptUtils = lib.getExe php-script-utils; - }; - } ./composer-install-hook.sh; + composerInstallHook = makeSetupHook { + name = "composer-install-hook.sh"; + propagatedBuildInputs = [ + jq + makeBinaryWrapper + moreutils + cacert + ]; + substitutions = { + # Specify the stdenv's `diff` by abspath to ensure that the user's build + # inputs do not cause us to find the wrong `diff`. + cmp = "${lib.getBin buildPackages.diffutils}/bin/cmp"; + phpScriptUtils = lib.getExe php-script-utils; + }; + } ./composer-install-hook.sh; } diff --git a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix index bfdc3d4..5351a3e 100644 --- a/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix +++ b/pkgs/build-support/php/pkgs/composer-local-repo-plugin.nix @@ -1,9 +1,14 @@ -{ php, callPackage, stdenvNoCC, lib, fetchFromGitHub, makeBinaryWrapper }: +{ + php, + callPackage, + stdenvNoCC, + lib, + fetchFromGitHub, + makeBinaryWrapper, +}: let - composer = callPackage ./composer-phar.nix { - inherit (php.packages.composer) version pharHash; - }; + composer = callPackage ./composer-phar.nix { inherit (php.packages.composer) version pharHash; }; composerKeys = stdenvNoCC.mkDerivation (finalComposerKeysAttrs: { pname = "composer-keys"; @@ -43,13 +48,9 @@ stdenvNoCC.mkDerivation (finalAttrs: { COMPOSER_HTACCESS_PROTECT = "0"; COMPOSER_DISABLE_NETWORK = "1"; - nativeBuildInputs = [ - makeBinaryWrapper - ]; + nativeBuildInputs = [ makeBinaryWrapper ]; - buildInputs = [ - composer - ]; + buildInputs = [ composer ]; configurePhase = '' runHook preConfigure diff --git a/pkgs/build-support/php/pkgs/composer-phar.nix b/pkgs/build-support/php/pkgs/composer-phar.nix index f281334..a03adc6 100644 --- a/pkgs/build-support/php/pkgs/composer-phar.nix +++ b/pkgs/build-support/php/pkgs/composer-phar.nix @@ -1,17 +1,17 @@ { - _7zz - , cacert - , curl - , fetchurl - , git - , lib - , makeBinaryWrapper - , php - , stdenvNoCC - , unzip - , xz - , version - , pharHash + _7zz, + cacert, + curl, + fetchurl, + git, + lib, + makeBinaryWrapper, + php, + stdenvNoCC, + unzip, + xz, + version, + pharHash, }: stdenvNoCC.mkDerivation (finalAttrs: { @@ -34,7 +34,16 @@ stdenvNoCC.mkDerivation (finalAttrs: { install -D $src $out/libexec/composer/composer.phar makeWrapper ${php}/bin/php $out/bin/composer \ --add-flags "$out/libexec/composer/composer.phar" \ - --prefix PATH : ${lib.makeBinPath [ _7zz cacert curl git unzip xz ]} + --prefix PATH : ${ + lib.makeBinPath [ + _7zz + cacert + curl + git + unzip + xz + ] + } runHook postInstall ''; diff --git a/pkgs/build-support/pkg-config-wrapper/default.nix b/pkgs/build-support/pkg-config-wrapper/default.nix index 4a6c189..db8692d 100644 --- a/pkgs/build-support/pkg-config-wrapper/default.nix +++ b/pkgs/build-support/pkg-config-wrapper/default.nix @@ -1,13 +1,15 @@ # The wrapper script ensures variables like PKG_CONFIG_PATH and # PKG_CONFIG_PATH_FOR_BUILD work properly. -{ stdenvNoCC -, lib -, buildPackages -, pkg-config -, baseBinName ? "pkg-config" -, propagateDoc ? pkg-config != null && pkg-config ? man -, extraPackages ? [], extraBuildCommands ? "" +{ + stdenvNoCC, + lib, + buildPackages, + pkg-config, + baseBinName ? "pkg-config", + propagateDoc ? pkg-config != null && pkg-config ? man, + extraPackages ? [ ], + extraBuildCommands ? "", }: let @@ -28,11 +30,20 @@ let # # TODO(@Ericson2314) Make unconditional, or optional but always true by # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); + targetPrefix = optionalString (targetPlatform != hostPlatform) (targetPlatform.config + "-"); # See description in cc-wrapper. - suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; + suffixSalt = + replaceStrings + [ + "-" + "." + ] + [ + "_" + "_" + ] + targetPlatform.config; wrapperBinName = "${targetPrefix}${baseBinName}"; in @@ -105,11 +116,14 @@ stdenv.mkDerivation { ## ## Man page and doc support ## - + optionalString propagateDoc ('' - ln -s ${pkg-config.man} $man - '' + optionalString (pkg-config ? doc) '' - ln -s ${pkg-config.doc} $doc - '') + + optionalString propagateDoc ( + '' + ln -s ${pkg-config.man} $man + '' + + optionalString (pkg-config ? doc) '' + ln -s ${pkg-config.doc} $doc + '' + ) + '' substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh @@ -128,12 +142,23 @@ stdenv.mkDerivation { }; meta = - let pkg-config_ = optionalAttrs (pkg-config != null) pkg-config; in - (optionalAttrs (pkg-config_ ? meta) (removeAttrs pkg-config.meta ["priority" "mainProgram"])) // - { description = - attrByPath ["meta" "description"] "pkg-config" pkg-config_ + let + pkg-config_ = optionalAttrs (pkg-config != null) pkg-config; + in + (optionalAttrs (pkg-config_ ? meta) ( + removeAttrs pkg-config.meta [ + "priority" + "mainProgram" + ] + )) + // { + description = + attrByPath [ + "meta" + "description" + ] "pkg-config" pkg-config_ + " (wrapper script)"; priority = 10; mainProgram = wrapperBinName; - }; + }; } diff --git a/pkgs/build-support/plugins.nix b/pkgs/build-support/plugins.nix index 31b478c..192e82f 100644 --- a/pkgs/build-support/plugins.nix +++ b/pkgs/build-support/plugins.nix @@ -2,28 +2,29 @@ # helper functions for packaging programs with plugin systems { - /* Takes a list of expected plugin names - * and compares it to the found plugins given in the file, - * one plugin per line. - * If the lists differ, the build fails with a nice message. - * - * This is helpful to ensure maintainers don’t miss - * the addition or removal of a plugin. - */ - diffPlugins = expectedPlugins: foundPluginsFilePath: '' - # sort both lists first - plugins_expected=$(mktemp) - (${lib.concatMapStrings (s: "echo \"${s}\";") expectedPlugins}) \ - | sort -u > "$plugins_expected" - plugins_found=$(mktemp) - sort -u "${foundPluginsFilePath}" > "$plugins_found" + /* + Takes a list of expected plugin names + and compares it to the found plugins given in the file, + one plugin per line. + If the lists differ, the build fails with a nice message. - if ! mismatches="$(diff -y "$plugins_expected" "$plugins_found")"; then - echo "The the list of expected plugins (left side) doesn't match" \ - "the list of plugins we found (right side):" >&2 - echo "$mismatches" >&2 - exit 1 - fi - ''; + This is helpful to ensure maintainers don’t miss + the addition or removal of a plugin. + */ + diffPlugins = expectedPlugins: foundPluginsFilePath: '' + # sort both lists first + plugins_expected=$(mktemp) + (${lib.concatMapStrings (s: "echo \"${s}\";") expectedPlugins}) \ + | sort -u > "$plugins_expected" + plugins_found=$(mktemp) + sort -u "${foundPluginsFilePath}" > "$plugins_found" + + if ! mismatches="$(diff -y "$plugins_expected" "$plugins_found")"; then + echo "The the list of expected plugins (left side) doesn't match" \ + "the list of plugins we found (right side):" >&2 + echo "$mismatches" >&2 + exit 1 + fi + ''; } diff --git a/pkgs/build-support/portable-service/default.nix b/pkgs/build-support/portable-service/default.nix index 6389e8d..7fd592d 100644 --- a/pkgs/build-support/portable-service/default.nix +++ b/pkgs/build-support/portable-service/default.nix @@ -1,4 +1,8 @@ -{ pkgs, lib, stdenv }: +{ + pkgs, + lib, + stdenv, +}: /* Create a systemd portable service image https://systemd.io/PORTABLE_SERVICES/ @@ -13,30 +17,30 @@ { # The name and version of the portable service. The resulting image will be # created in result/$pname_$version.raw - pname -, version + pname, + version, # Units is a list of derivations for systemd unit files. Those files will be # copied to /etc/systemd/system in the resulting image. Note that the unit # names must be prefixed with the name of the portable service. -, units + units, # Basic info about the portable service image, used for the generated # /etc/os-release -, description ? null -, homepage ? null + description ? null, + homepage ? null, # A list of attribute sets {object, symlink}. Symlinks will be created # in the root filesystem of the image to objects in the nix store. -, symlinks ? [ ] + symlinks ? [ ], # A list of additional derivations to be included in the image as-is. -, contents ? [ ] + contents ? [ ], # mksquashfs options -, squashfsTools ? pkgs.squashfsTools -, squash-compression ? "xz -Xdict-size 100%" -, squash-block-size ? "1M" + squashfsTools ? pkgs.squashfsTools, + squash-compression ? "xz -Xdict-size 100%", + squash-block-size ? "1M", }: let @@ -53,38 +57,40 @@ let PRETTY_NAME = "NixOS"; BUILD_ID = "rolling"; }; - os-release = pkgs.writeText "os-release" - (envFileGenerator (filterNull os-release-params)); + os-release = pkgs.writeText "os-release" (envFileGenerator (filterNull os-release-params)); in stdenv.mkDerivation { pname = "root-fs-scaffold"; inherit version; - buildCommand = '' - # scaffold a file system layout - mkdir -p $out/etc/systemd/system $out/proc $out/sys $out/dev $out/run \ - $out/tmp $out/var/tmp $out/var/lib $out/var/cache $out/var/log + buildCommand = + '' + # scaffold a file system layout + mkdir -p $out/etc/systemd/system $out/proc $out/sys $out/dev $out/run \ + $out/tmp $out/var/tmp $out/var/lib $out/var/cache $out/var/log - # empty files to mount over with host's version - touch $out/etc/resolv.conf $out/etc/machine-id + # empty files to mount over with host's version + touch $out/etc/resolv.conf $out/etc/machine-id - # required for portable services - cp ${os-release} $out/etc/os-release - '' - # units **must** be copied to /etc/systemd/system/ - + (lib.concatMapStringsSep "\n" (u: "cp ${u} $out/etc/systemd/system/${u.name};") units) - + (lib.concatMapStringsSep "\n" - ({ object, symlink }: '' - mkdir -p $(dirname $out/${symlink}); - ln -s ${object} $out/${symlink}; - '') - symlinks) - ; + # required for portable services + cp ${os-release} $out/etc/os-release + '' + # units **must** be copied to /etc/systemd/system/ + + (lib.concatMapStringsSep "\n" (u: "cp ${u} $out/etc/systemd/system/${u.name};") units) + + (lib.concatMapStringsSep "\n" ( + { object, symlink }: + '' + mkdir -p $(dirname $out/${symlink}); + ln -s ${object} $out/${symlink}; + '' + ) symlinks); }; in -assert lib.assertMsg (lib.all (u: lib.hasPrefix pname u.name) units) "Unit names must be prefixed with the service name"; +assert lib.assertMsg (lib.all ( + u: lib.hasPrefix pname u.name +) units) "Unit names must be prefixed with the service name"; stdenv.mkDerivation { pname = "${pname}-img"; diff --git a/pkgs/build-support/references-by-popularity/default.nix b/pkgs/build-support/references-by-popularity/default.nix index 2171c62..f681559 100644 --- a/pkgs/build-support/references-by-popularity/default.nix +++ b/pkgs/build-support/references-by-popularity/default.nix @@ -1,13 +1,21 @@ -{ runCommand, python3, coreutils }: +{ + runCommand, + python3, + coreutils, +}: # Write the references of `path' to a file, in order of how "popular" each # reference is. Nix 2 only. -path: runCommand "closure-paths" -{ - exportReferencesGraph.graph = path; - __structuredAttrs = true; - preferLocalBuild = true; - nativeBuildInputs = [ coreutils python3 ]; -} -'' - python3 ${./closure-graph.py} "$NIX_ATTRS_JSON_FILE" graph > ''${outputs[out]} -'' +path: +runCommand "closure-paths" + { + exportReferencesGraph.graph = path; + __structuredAttrs = true; + preferLocalBuild = true; + nativeBuildInputs = [ + coreutils + python3 + ]; + } + '' + python3 ${./closure-graph.py} "$NIX_ATTRS_JSON_FILE" graph > ''${outputs[out]} + '' diff --git a/pkgs/build-support/release/binary-tarball.nix b/pkgs/build-support/release/binary-tarball.nix index 37c5f8c..0e608ba 100644 --- a/pkgs/build-support/release/binary-tarball.nix +++ b/pkgs/build-support/release/binary-tarball.nix @@ -1,18 +1,23 @@ -/* This function builds a binary tarball. The resulting binaries are - usually only useful if they are don't have any runtime dependencies - on any paths in the Nix store, since those aren't distributed in - the tarball. For instance, the binaries should be statically - linked: they can't depend on dynamic libraries in the store - (including Glibc). +/* + This function builds a binary tarball. The resulting binaries are + usually only useful if they are don't have any runtime dependencies + on any paths in the Nix store, since those aren't distributed in + the tarball. For instance, the binaries should be statically + linked: they can't depend on dynamic libraries in the store + (including Glibc). - The binaries are built and installed with a prefix of /usr/local by - default. They are installed by setting DESTDIR to a temporary - directory, so the Makefile of the package should support DESTDIR. + The binaries are built and installed with a prefix of /usr/local by + default. They are installed by setting DESTDIR to a temporary + directory, so the Makefile of the package should support DESTDIR. */ -{ src, lib, stdenv -, name ? "binary-tarball" -, ... } @ args: +{ + src, + lib, + stdenv, + name ? "binary-tarball", + ... +}@args: stdenv.mkDerivation ( @@ -27,52 +32,53 @@ stdenv.mkDerivation ( postPhases = "finalPhase"; } - // args // + // args + // - { - name = name + (lib.optionalString (src ? version) "-${src.version}"); + { + name = name + (lib.optionalString (src ? version) "-${src.version}"); - postHook = '' - mkdir -p $out/nix-support - echo "$system" > $out/nix-support/system - . ${./functions.sh} + postHook = '' + mkdir -p $out/nix-support + echo "$system" > $out/nix-support/system + . ${./functions.sh} - origSrc=$src - src=$(findTarball $src) + origSrc=$src + src=$(findTarball $src) - if test -e $origSrc/nix-support/hydra-release-name; then - releaseName=$(cat $origSrc/nix-support/hydra-release-name) - fi + if test -e $origSrc/nix-support/hydra-release-name; then + releaseName=$(cat $origSrc/nix-support/hydra-release-name) + fi - installFlagsArray=(DESTDIR=$TMPDIR/inst) + installFlagsArray=(DESTDIR=$TMPDIR/inst) - # Prefix hackery because of a bug in stdenv (it tries to `mkdir - # $prefix', which doesn't work due to the DESTDIR). - configureFlags="--prefix=$prefix $configureFlags" - dontAddPrefix=1 - prefix=$TMPDIR/inst$prefix - ''; + # Prefix hackery because of a bug in stdenv (it tries to `mkdir + # $prefix', which doesn't work due to the DESTDIR). + configureFlags="--prefix=$prefix $configureFlags" + dontAddPrefix=1 + prefix=$TMPDIR/inst$prefix + ''; - doDist = true; + doDist = true; - distPhase = '' - mkdir -p $out/tarballs - tar cvfj $out/tarballs/''${releaseName:-binary-dist}.tar.bz2 -C $TMPDIR/inst . - ''; + distPhase = '' + mkdir -p $out/tarballs + tar cvfj $out/tarballs/''${releaseName:-binary-dist}.tar.bz2 -C $TMPDIR/inst . + ''; - finalPhase = '' - for i in $out/tarballs/*; do - echo "file binary-dist $i" >> $out/nix-support/hydra-build-products - done + finalPhase = '' + for i in $out/tarballs/*; do + echo "file binary-dist $i" >> $out/nix-support/hydra-build-products + done - # Propagate the release name of the source tarball. This is - # to get nice package names in channels. - test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name) - ''; + # Propagate the release name of the source tarball. This is + # to get nice package names in channels. + test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name) + ''; - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = "Build of a generic binary distribution"; - }; + meta = (lib.optionalAttrs (args ? meta) args.meta) // { + description = "Build of a generic binary distribution"; + }; - } + } ) diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix index ab84a50..4ada5a8 100644 --- a/pkgs/build-support/release/debian-build.nix +++ b/pkgs/build-support/release/debian-build.nix @@ -1,94 +1,107 @@ # This function compiles a source tarball in a virtual machine image # that contains a Debian-like (i.e. dpkg-based) OS. -{ name ? "debian-build" -, diskImage -, src, lib, stdenv, vmTools, checkinstall -, fsTranslation ? false -, # Features provided by this package. - debProvides ? [] -, # Features required by this package. - debRequires ? [] -, ... } @ args: +{ + name ? "debian-build", + diskImage, + src, + lib, + stdenv, + vmTools, + checkinstall, + fsTranslation ? false, + # Features provided by this package. + debProvides ? [ ], + # Features required by this package. + debRequires ? [ ], + ... +}@args: -vmTools.runInLinuxImage (stdenv.mkDerivation ( +vmTools.runInLinuxImage ( + stdenv.mkDerivation ( - { - doCheck = true; + { + doCheck = true; - prefix = "/usr"; + prefix = "/usr"; - prePhases = "installExtraDebsPhase sysInfoPhase"; - } + prePhases = "installExtraDebsPhase sysInfoPhase"; + } - // removeAttrs args ["vmTools" "lib"] // + // removeAttrs args [ + "vmTools" + "lib" + ] + // - { - name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); + { + name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); - # !!! cut&paste from rpm-build.nix - postHook = '' - . ${./functions.sh} - propagateImageName - src=$(findTarball $src) - ''; + # !!! cut&paste from rpm-build.nix + postHook = '' + . ${./functions.sh} + propagateImageName + src=$(findTarball $src) + ''; - installExtraDebsPhase = '' - for i in $extraDebs; do - dpkg --install $(ls $i/debs/*.deb | sort | head -1) - done - ''; + installExtraDebsPhase = '' + for i in $extraDebs; do + dpkg --install $(ls $i/debs/*.deb | sort | head -1) + done + ''; - sysInfoPhase = '' - [ ! -f /etc/lsb-release ] || (source /etc/lsb-release; echo "OS release: $DISTRIB_DESCRIPTION") - echo "System/kernel: $(uname -a)" - if test -e /etc/debian_version; then echo "Debian release: $(cat /etc/debian_version)"; fi - echo "installed Debian packages" - dpkg-query --list - ''; + sysInfoPhase = '' + [ ! -f /etc/lsb-release ] || (source /etc/lsb-release; echo "OS release: $DISTRIB_DESCRIPTION") + echo "System/kernel: $(uname -a)" + if test -e /etc/debian_version; then echo "Debian release: $(cat /etc/debian_version)"; fi + echo "installed Debian packages" + dpkg-query --list + ''; - installPhase = '' - eval "$preInstall" - export LOGNAME=root + installPhase = '' + eval "$preInstall" + export LOGNAME=root - # otherwise build hangs when it wants to display - # the log file - export PAGER=cat - ${checkinstall}/sbin/checkinstall --nodoc -y -D \ - --fstrans=${if fsTranslation then "yes" else "no"} \ - --requires="${lib.concatStringsSep "," debRequires}" \ - --provides="${lib.concatStringsSep "," debProvides}" \ - ${if (src ? version) then "--pkgversion=$(echo ${src.version} | tr _ -)" - else "--pkgversion=0.0.0"} \ - ''${debMaintainer:+--maintainer="'$debMaintainer'"} \ - ''${debName:+--pkgname="'$debName'"} \ - $checkInstallFlags \ - -- \ - $SHELL -c "''${installCommand:-make install}" + # otherwise build hangs when it wants to display + # the log file + export PAGER=cat + ${checkinstall}/sbin/checkinstall --nodoc -y -D \ + --fstrans=${if fsTranslation then "yes" else "no"} \ + --requires="${lib.concatStringsSep "," debRequires}" \ + --provides="${lib.concatStringsSep "," debProvides}" \ + ${ + if (src ? version) then "--pkgversion=$(echo ${src.version} | tr _ -)" else "--pkgversion=0.0.0" + } \ + ''${debMaintainer:+--maintainer="'$debMaintainer'"} \ + ''${debName:+--pkgname="'$debName'"} \ + $checkInstallFlags \ + -- \ + $SHELL -c "''${installCommand:-make install}" - mkdir -p $out/debs - find . -name "*.deb" -exec cp {} $out/debs \; + mkdir -p $out/debs + find . -name "*.deb" -exec cp {} $out/debs \; - [ "$(echo $out/debs/*.deb)" != "" ] + [ "$(echo $out/debs/*.deb)" != "" ] - for i in $out/debs/*.deb; do - echo "Generated DEB package: $i" - dpkg-deb --info "$i" - pkgName=$(dpkg-deb -W "$i" | awk '{print $1}') - echo "file deb $i" >> $out/nix-support/hydra-build-products - done - dpkg -i $out/debs/*.deb + for i in $out/debs/*.deb; do + echo "Generated DEB package: $i" + dpkg-deb --info "$i" + pkgName=$(dpkg-deb -W "$i" | awk '{print $1}') + echo "file deb $i" >> $out/nix-support/hydra-build-products + done + dpkg -i $out/debs/*.deb - for i in $extraDebs; do - echo "file deb-extra $(ls $i/debs/*.deb | sort | head -1)" >> $out/nix-support/hydra-build-products - done + for i in $extraDebs; do + echo "file deb-extra $(ls $i/debs/*.deb | sort | head -1)" >> $out/nix-support/hydra-build-products + done - eval "$postInstall" - ''; + eval "$postInstall" + ''; - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = "Deb package for ${diskImage.fullName}"; - }; - } + meta = (lib.optionalAttrs (args ? meta) args.meta) // { + description = "Deb package for ${diskImage.fullName}"; + }; + } -)) + ) +) diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix index f5ab2db..cead413 100644 --- a/pkgs/build-support/release/default.nix +++ b/pkgs/build-support/release/default.nix @@ -22,51 +22,84 @@ in rec { - sourceTarball = args: import ./source-tarball.nix ( - { inherit lib stdenv autoconf automake libtool; - } // args); + sourceTarball = + args: + import ./source-tarball.nix ( + { + inherit + lib + stdenv + autoconf + automake + libtool + ; + } + // args + ); makeSourceTarball = sourceTarball; # compatibility - binaryTarball = args: import ./binary-tarball.nix ( - { inherit lib stdenv; - } // args); + binaryTarball = args: import ./binary-tarball.nix ({ inherit lib stdenv; } // args); - mvnBuild = args: import ./maven-build.nix ( - { inherit lib stdenv; - } // args); + mvnBuild = args: import ./maven-build.nix ({ inherit lib stdenv; } // args); - nixBuild = args: import ./nix-build.nix ( - { inherit lib stdenv; - } // args); + nixBuild = args: import ./nix-build.nix ({ inherit lib stdenv; } // args); - coverageAnalysis = args: nixBuild ( - { inherit lcov enableGCOVInstrumentation makeGCOVReport; - doCoverageAnalysis = true; - } // args); + coverageAnalysis = + args: + nixBuild ( + { + inherit lcov enableGCOVInstrumentation makeGCOVReport; + doCoverageAnalysis = true; + } + // args + ); - clangAnalysis = args: nixBuild ( - { inherit clang-analyzer; - doClangAnalysis = true; - } // args); + clangAnalysis = + args: + nixBuild ( + { + inherit clang-analyzer; + doClangAnalysis = true; + } + // args + ); - coverityAnalysis = args: nixBuild ( - { inherit cov-build xz; - doCoverityAnalysis = true; - } // args); + coverityAnalysis = + args: + nixBuild ( + { + inherit cov-build xz; + doCoverityAnalysis = true; + } + // args + ); - rpmBuild = args: import ./rpm-build.nix ( - { inherit lib vmTools; - } // args); + rpmBuild = args: import ./rpm-build.nix ({ inherit lib vmTools; } // args); - debBuild = args: import ./debian-build.nix ( - { inherit lib stdenv vmTools checkinstall; - } // args); + debBuild = + args: + import ./debian-build.nix ( + { + inherit + lib + stdenv + vmTools + checkinstall + ; + } + // args + ); aggregate = - { name, constituents, meta ? { } }: + { + name, + constituents, + meta ? { }, + }: pkgs.runCommand name - { inherit constituents meta; + { + inherit constituents meta; preferLocalBuild = true; _hydraAggregate = true; } @@ -83,57 +116,67 @@ rec { done ''; - /* Create a channel job which success depends on the success of all of - its contituents. Channel jobs are a special type of jobs that are - listed in the channel tab of Hydra and that can be suscribed. - A tarball of the src attribute is distributed via the channel. + /* + Create a channel job which success depends on the success of all of + its contituents. Channel jobs are a special type of jobs that are + listed in the channel tab of Hydra and that can be suscribed. + A tarball of the src attribute is distributed via the channel. - - constituents: a list of derivations on which the channel success depends. - - name: the channel name that will be used in the hydra interface. - - src: should point to the root folder of the nix-expressions used by the - channel, typically a folder containing a `default.nix`. - - channel { - constituents = [ foo bar baz ]; - name = "my-channel"; - src = ./.; - }; + - constituents: a list of derivations on which the channel success depends. + - name: the channel name that will be used in the hydra interface. + - src: should point to the root folder of the nix-expressions used by the + channel, typically a folder containing a `default.nix`. + channel { + constituents = [ foo bar baz ]; + name = "my-channel"; + src = ./.; + }; */ channel = - { name, src, constituents ? [], meta ? {}, isNixOS ? true, ... }@args: - stdenv.mkDerivation ({ - preferLocalBuild = true; - _hydraAggregate = true; + { + name, + src, + constituents ? [ ], + meta ? { }, + isNixOS ? true, + ... + }@args: + stdenv.mkDerivation ( + { + preferLocalBuild = true; + _hydraAggregate = true; - dontConfigure = true; - dontBuild = true; + dontConfigure = true; + dontBuild = true; - patchPhase = optionalString isNixOS '' - touch .update-on-nixos-rebuild - ''; + patchPhase = optionalString isNixOS '' + touch .update-on-nixos-rebuild + ''; - installPhase = '' - mkdir -p $out/{tarballs,nix-support} + installPhase = '' + mkdir -p $out/{tarballs,nix-support} - tar cJf "$out/tarballs/nixexprs.tar.xz" \ - --owner=0 --group=0 --mtime="1970-01-01 00:00:00 UTC" \ - --transform='s!^\.!${name}!' . + tar cJf "$out/tarballs/nixexprs.tar.xz" \ + --owner=0 --group=0 --mtime="1970-01-01 00:00:00 UTC" \ + --transform='s!^\.!${name}!' . - echo "channel - $out/tarballs/nixexprs.tar.xz" > "$out/nix-support/hydra-build-products" - echo $constituents > "$out/nix-support/hydra-aggregate-constituents" + echo "channel - $out/tarballs/nixexprs.tar.xz" > "$out/nix-support/hydra-build-products" + echo $constituents > "$out/nix-support/hydra-aggregate-constituents" - # Propagate build failures. - for i in $constituents; do - if [ -e "$i/nix-support/failed" ]; then - touch "$out/nix-support/failed" - fi - done - ''; + # Propagate build failures. + for i in $constituents; do + if [ -e "$i/nix-support/failed" ]; then + touch "$out/nix-support/failed" + fi + done + ''; - meta = meta // { - isHydraChannel = true; - }; - } // removeAttrs args [ "meta" ]); + meta = meta // { + isHydraChannel = true; + }; + } + // removeAttrs args [ "meta" ] + ); } diff --git a/pkgs/build-support/release/maven-build.nix b/pkgs/build-support/release/maven-build.nix index f618032..7ac95a5 100644 --- a/pkgs/build-support/release/maven-build.nix +++ b/pkgs/build-support/release/maven-build.nix @@ -1,16 +1,17 @@ -{ stdenv -, lib -, name -, src -, doTest ? true -, doTestCompile ? true -, doJavadoc ? false -, doCheckstyle ? false -, doRelease ? false -, includeTestClasses ? true -, extraMvnFlags ? "" -, ... -} @ args : +{ + stdenv, + lib, + name, + src, + doTest ? true, + doTestCompile ? true, + doJavadoc ? false, + doCheckstyle ? false, + doRelease ? false, + includeTestClasses ? true, + extraMvnFlags ? "", + ... +}@args: let mvnFlags = lib.escapeShellArgs [ @@ -20,84 +21,86 @@ let ]; in -stdenv.mkDerivation ( { - inherit name src; - phases = "setupPhase unpackPhase patchPhase mvnCompile ${lib.optionalString doTestCompile "mvnTestCompile mvnTestJar"} ${lib.optionalString doTest "mvnTest"} ${lib.optionalString doJavadoc "mvnJavadoc"} ${lib.optionalString doCheckstyle "mvnCheckstyle"} mvnJar mvnAssembly mvnRelease finalPhase"; +stdenv.mkDerivation ( + { + inherit name src; + phases = "setupPhase unpackPhase patchPhase mvnCompile ${lib.optionalString doTestCompile "mvnTestCompile mvnTestJar"} ${lib.optionalString doTest "mvnTest"} ${lib.optionalString doJavadoc "mvnJavadoc"} ${lib.optionalString doCheckstyle "mvnCheckstyle"} mvnJar mvnAssembly mvnRelease finalPhase"; - setupPhase = '' - runHook preSetupPhase + setupPhase = '' + runHook preSetupPhase - mkdir -p $out/nix-support - export LANG="en_US.UTF-8" - export LOCALE_ARCHIVE=$glibcLocales/lib/locale/locale-archive - export M2_REPO=$TMPDIR/repository + mkdir -p $out/nix-support + export LANG="en_US.UTF-8" + export LOCALE_ARCHIVE=$glibcLocales/lib/locale/locale-archive + export M2_REPO=$TMPDIR/repository - runHook postSetupPhase - ''; + runHook postSetupPhase + ''; - mvnCompile = '' - mvn compile ${mvnFlags} - ''; + mvnCompile = '' + mvn compile ${mvnFlags} + ''; - mvnTestCompile = '' - mvn test-compile ${mvnFlags} - ''; + mvnTestCompile = '' + mvn test-compile ${mvnFlags} + ''; - mvnTestJar = '' - mvn jar:test-jar ${mvnFlags} - ''; + mvnTestJar = '' + mvn jar:test-jar ${mvnFlags} + ''; - mvnTest = '' - mvn test ${mvnFlags} + mvnTest = '' + mvn test ${mvnFlags} - if [ -d target/site/cobertura ] ; then - echo "report coverage $out/site/cobertura" >> $out/nix-support/hydra-build-products - fi + if [ -d target/site/cobertura ] ; then + echo "report coverage $out/site/cobertura" >> $out/nix-support/hydra-build-products + fi - if [ -d target/surefire-reports ] ; then - mvn surefire-report:report-only - echo "report coverage $out/site/surefire-report.html" >> $out/nix-support/hydra-build-products - fi - ''; + if [ -d target/surefire-reports ] ; then + mvn surefire-report:report-only + echo "report coverage $out/site/surefire-report.html" >> $out/nix-support/hydra-build-products + fi + ''; - mvnJavadoc = '' - mvn javadoc:javadoc ${mvnFlags} - echo "report javadoc $out/site/apidocs" >> $out/nix-support/hydra-build-products - ''; + mvnJavadoc = '' + mvn javadoc:javadoc ${mvnFlags} + echo "report javadoc $out/site/apidocs" >> $out/nix-support/hydra-build-products + ''; - mvnCheckstyle = '' - mvn checkstyle:checkstyle ${mvnFlags} - echo "report checkstyle $out/site/checkstyle.html" >> $out/nix-support/hydra-build-products - ''; + mvnCheckstyle = '' + mvn checkstyle:checkstyle ${mvnFlags} + echo "report checkstyle $out/site/checkstyle.html" >> $out/nix-support/hydra-build-products + ''; - mvnJar = '' - mvn jar:jar ${mvnFlags} - ''; + mvnJar = '' + mvn jar:jar ${mvnFlags} + ''; - mvnAssembly = '' - mvn assembly:assembly -Dmaven.test.skip=true ${mvnFlags} - ''; + mvnAssembly = '' + mvn assembly:assembly -Dmaven.test.skip=true ${mvnFlags} + ''; - mvnRelease = '' - mkdir -p $out/release + mvnRelease = '' + mkdir -p $out/release - zip=$(ls target/*.zip| head -1) - releaseName=$(basename $zip .zip) - releaseName="$releaseName-r${toString src.rev or "0"}" - cp $zip $out/release/$releaseName.zip + zip=$(ls target/*.zip| head -1) + releaseName=$(basename $zip .zip) + releaseName="$releaseName-r${toString src.rev or "0"}" + cp $zip $out/release/$releaseName.zip - echo "$releaseName" > $out/nix-support/hydra-release-name + echo "$releaseName" > $out/nix-support/hydra-release-name - ${lib.optionalString doRelease '' - echo "file zip $out/release/$releaseName.zip" >> $out/nix-support/hydra-build-products - ''} - ''; + ${lib.optionalString doRelease '' + echo "file zip $out/release/$releaseName.zip" >> $out/nix-support/hydra-build-products + ''} + ''; - finalPhase = '' - if [ -d target/site ] ; then - cp -R target/site $out/ - echo "report site $out/site" >> $out/nix-support/hydra-build-products - fi - ''; -} // args + finalPhase = '' + if [ -d target/site ] ; then + cp -R target/site $out/ + echo "report site $out/site" >> $out/nix-support/hydra-build-products + fi + ''; + } + // args ) diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix index 348cd5b..37cd159 100644 --- a/pkgs/build-support/release/nix-build.nix +++ b/pkgs/build-support/release/nix-build.nix @@ -5,22 +5,26 @@ # it turns on GCC's coverage analysis feature. It then runs `make # check' and produces a coverage analysis report using `lcov'. -{ buildOutOfSourceTree ? false -, preConfigure ? null -, doCoverageAnalysis ? false -, doClangAnalysis ? false -, doCoverityAnalysis ? false -, lcovFilter ? [] -, lcovExtraTraceFiles ? [] -, src, lib, stdenv -, name ? if doCoverageAnalysis then "nix-coverage" else "nix-build" -, failureHook ? null -, prePhases ? [] -, postPhases ? [] -, buildInputs ? [] -, preHook ? "" -, postHook ? "" -, ... } @ args: +{ + buildOutOfSourceTree ? false, + preConfigure ? null, + doCoverageAnalysis ? false, + doClangAnalysis ? false, + doCoverityAnalysis ? false, + lcovFilter ? [ ], + lcovExtraTraceFiles ? [ ], + src, + lib, + stdenv, + name ? if doCoverageAnalysis then "nix-coverage" else "nix-build", + failureHook ? null, + prePhases ? [ ], + postPhases ? [ ], + buildInputs ? [ ], + preHook ? "", + postHook ? "", + ... +}@args: let doingAnalysis = doCoverageAnalysis || doClangAnalysis || doCoverityAnalysis; @@ -37,49 +41,49 @@ stdenv.mkDerivation ( showBuildStats = true; - finalPhase = - '' - # Propagate the release name of the source tarball. This is - # to get nice package names in channels. - if test -e $origSrc/nix-support/hydra-release-name; then - cp $origSrc/nix-support/hydra-release-name $out/nix-support/hydra-release-name + finalPhase = '' + # Propagate the release name of the source tarball. This is + # to get nice package names in channels. + if test -e $origSrc/nix-support/hydra-release-name; then + cp $origSrc/nix-support/hydra-release-name $out/nix-support/hydra-release-name + fi + + # Package up Coverity analysis results + if [ ! -z "${toString doCoverityAnalysis}" ]; then + if [ -d "_coverity_$name/cov-int" ]; then + mkdir -p $out/tarballs + NAME=`cat $out/nix-support/hydra-release-name` + cd _coverity_$name + tar caf $out/tarballs/$NAME-coverity-int.xz cov-int + echo "file cov-build $out/tarballs/$NAME-coverity-int.xz" >> $out/nix-support/hydra-build-products + fi + fi + + # Package up Clang analysis results + if [ ! -z "${toString doClangAnalysis}" ]; then + if [ ! -z "`ls _clang_analyze_$name`" ]; then + cd _clang_analyze_$name && mv * $out/analysis + else + mkdir -p $out/analysis + echo "No bugs found." >> $out/analysis/index.html fi - # Package up Coverity analysis results - if [ ! -z "${toString doCoverityAnalysis}" ]; then - if [ -d "_coverity_$name/cov-int" ]; then - mkdir -p $out/tarballs - NAME=`cat $out/nix-support/hydra-release-name` - cd _coverity_$name - tar caf $out/tarballs/$NAME-coverity-int.xz cov-int - echo "file cov-build $out/tarballs/$NAME-coverity-int.xz" >> $out/nix-support/hydra-build-products - fi - fi - - # Package up Clang analysis results - if [ ! -z "${toString doClangAnalysis}" ]; then - if [ ! -z "`ls _clang_analyze_$name`" ]; then - cd _clang_analyze_$name && mv * $out/analysis - else - mkdir -p $out/analysis - echo "No bugs found." >> $out/analysis/index.html - fi - - echo "report analysis $out/analysis" >> $out/nix-support/hydra-build-products - fi - ''; - - failureHook = (lib.optionalString (failureHook != null) failureHook) + - '' - if test -n "$succeedOnFailure"; then - if test -n "$keepBuildDirectory"; then - KEEPBUILDDIR="$out/`basename $TMPDIR`" - echo "Copying build directory to $KEEPBUILDDIR" - mkdir -p $KEEPBUILDDIR - cp -R "$TMPDIR/"* $KEEPBUILDDIR - fi + echo "report analysis $out/analysis" >> $out/nix-support/hydra-build-products fi ''; + + failureHook = + (lib.optionalString (failureHook != null) failureHook) + + '' + if test -n "$succeedOnFailure"; then + if test -n "$keepBuildDirectory"; then + KEEPBUILDDIR="$out/`basename $TMPDIR`" + echo "Copying build directory to $KEEPBUILDDIR" + mkdir -p $KEEPBUILDDIR + cp -R "$TMPDIR/"* $KEEPBUILDDIR + fi + fi + ''; } // removeAttrs args [ "lib" ] # Propagating lib causes the evaluation to fail, because lib is a function that can't be converted to a string @@ -131,44 +135,44 @@ stdenv.mkDerivation ( fi ''; - prePhases = ["initPhase"] ++ prePhases; + prePhases = [ "initPhase" ] ++ prePhases; buildInputs = - buildInputs ++ - (lib.optional doCoverageAnalysis args.makeGCOVReport) ++ - (lib.optional doClangAnalysis args.clang-analyzer) ++ - (lib.optional doCoverityAnalysis args.cov-build) ++ - (lib.optional doCoverityAnalysis args.xz); + buildInputs + ++ (lib.optional doCoverageAnalysis args.makeGCOVReport) + ++ (lib.optional doClangAnalysis args.clang-analyzer) + ++ (lib.optional doCoverityAnalysis args.cov-build) + ++ (lib.optional doCoverityAnalysis args.xz); - lcovFilter = ["${builtins.storeDir}/*"] ++ lcovFilter; + lcovFilter = [ "${builtins.storeDir}/*" ] ++ lcovFilter; inherit lcovExtraTraceFiles; - postPhases = postPhases ++ ["finalPhase"]; + postPhases = postPhases ++ [ "finalPhase" ]; meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = if doCoverageAnalysis then "Coverage analysis" else "Nix package for ${stdenv.hostPlatform.system}"; + description = + if doCoverageAnalysis then "Coverage analysis" else "Nix package for ${stdenv.hostPlatform.system}"; }; } // - (lib.optionalAttrs buildOutOfSourceTree - { - preConfigure = - # Build out of source tree and make the source tree read-only. This - # helps catch violations of the GNU Coding Standards (info - # "(standards) Configuration"), like `make distcheck' does. - '' mkdir "../build" - cd "../build" - configureScript="../$sourceRoot/configure" - chmod -R a-w "../$sourceRoot" + (lib.optionalAttrs buildOutOfSourceTree { + preConfigure = + # Build out of source tree and make the source tree read-only. This + # helps catch violations of the GNU Coding Standards (info + # "(standards) Configuration"), like `make distcheck' does. + '' + mkdir "../build" + cd "../build" + configureScript="../$sourceRoot/configure" + chmod -R a-w "../$sourceRoot" - echo "building out of source tree, from \`$PWD'..." + echo "building out of source tree, from \`$PWD'..." - ${lib.optionalString (preConfigure != null) preConfigure} - ''; - } - ) + ${lib.optionalString (preConfigure != null) preConfigure} + ''; + }) ) diff --git a/pkgs/build-support/release/rpm-build.nix b/pkgs/build-support/release/rpm-build.nix index ccbbd57..ee50f0a 100644 --- a/pkgs/build-support/release/rpm-build.nix +++ b/pkgs/build-support/release/rpm-build.nix @@ -1,54 +1,59 @@ # This function builds an RPM from a source tarball that contains a # RPM spec file (i.e., one that can be built using `rpmbuild -ta'). -{ name ? "rpm-build" -, diskImage -, src, lib, vmTools -, ... } @ args: +{ + name ? "rpm-build", + diskImage, + src, + lib, + vmTools, + ... +}@args: vmTools.buildRPM ( - removeAttrs args ["vmTools"] // + removeAttrs args [ "vmTools" ] + // - { - name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); + { + name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); - preBuild = '' - . ${./functions.sh} - propagateImageName - src=$(findTarball $src) - ''; + preBuild = '' + . ${./functions.sh} + propagateImageName + src=$(findTarball $src) + ''; - postInstall = '' - declare -a rpms rpmNames - for i in $out/rpms/*/*.rpm; do - if echo $i | grep -vq "\.src\.rpm$"; then - echo "file rpm $i" >> $out/nix-support/hydra-build-products - rpms+=($i) - rpmNames+=("$(rpm -qp "$i")") - fi - done + postInstall = '' + declare -a rpms rpmNames + for i in $out/rpms/*/*.rpm; do + if echo $i | grep -vq "\.src\.rpm$"; then + echo "file rpm $i" >> $out/nix-support/hydra-build-products + rpms+=($i) + rpmNames+=("$(rpm -qp "$i")") + fi + done - echo "installing ''${rpms[*]}..." - rpm -Up ''${rpms[*]} --excludepath /nix/store + echo "installing ''${rpms[*]}..." + rpm -Up ''${rpms[*]} --excludepath /nix/store - eval "$postRPMInstall" + eval "$postRPMInstall" - echo "uninstalling ''${rpmNames[*]}..." - rpm -e ''${rpmNames[*]} --nodeps + echo "uninstalling ''${rpmNames[*]}..." + rpm -e ''${rpmNames[*]} --nodeps - for i in $out/rpms/*/*.src.rpm; do - echo "file srpm $i" >> $out/nix-support/hydra-build-products - done + for i in $out/rpms/*/*.src.rpm; do + echo "file srpm $i" >> $out/nix-support/hydra-build-products + done - for rpmdir in $extraRPMs ; do - echo "file rpm-extra $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1)" >> $out/nix-support/hydra-build-products - done - ''; + for rpmdir in $extraRPMs ; do + echo "file rpm-extra $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1)" >> $out/nix-support/hydra-build-products + done + ''; - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = "RPM package for ${diskImage.fullName}"; - }; - } + meta = (lib.optionalAttrs (args ? meta) args.meta) // { + description = "RPM package for ${diskImage.fullName}"; + }; + } ) diff --git a/pkgs/build-support/release/source-tarball.nix b/pkgs/build-support/release/source-tarball.nix index fbc8bc6..4c2d689 100644 --- a/pkgs/build-support/release/source-tarball.nix +++ b/pkgs/build-support/release/source-tarball.nix @@ -2,18 +2,26 @@ # checkout from a Subversion or CVS repository) into a source tarball # by running `autoreconf', `configure' and `make dist'. -{ officialRelease ? false -, buildInputs ? [] -, name ? "source-tarball" -, version ? "0" -, versionSuffix ? - if officialRelease - then "" - else "pre${toString (src.rev or src.revCount or "")}" -, src, lib, stdenv, autoconf, automake, libtool -, # By default, provide all the GNU Build System as input. - bootstrapBuildInputs ? [ autoconf automake libtool ] -, ... } @ args: +{ + officialRelease ? false, + buildInputs ? [ ], + name ? "source-tarball", + version ? "0", + versionSuffix ? if officialRelease then "" else "pre${toString (src.rev or src.revCount or "")}", + src, + lib, + stdenv, + autoconf, + automake, + libtool, + # By default, provide all the GNU Build System as input. + bootstrapBuildInputs ? [ + autoconf + automake + libtool + ], + ... +}@args: stdenv.mkDerivation ( @@ -73,57 +81,58 @@ stdenv.mkDerivation ( } # Then, the caller-supplied attributes. - // (builtins.removeAttrs args [ "lib" ]) // + // (builtins.removeAttrs args [ "lib" ]) + // - # And finally, our own stuff. - { - name = name + "-" + version + versionSuffix; + # And finally, our own stuff. + { + name = name + "-" + version + versionSuffix; - buildInputs = buildInputs ++ bootstrapBuildInputs; + buildInputs = buildInputs ++ bootstrapBuildInputs; - preUnpack = '' - mkdir -p $out/nix-support - ''; + preUnpack = '' + mkdir -p $out/nix-support + ''; - postUnpack = '' - # Set all source files to the current date. This is because Nix - # resets the timestamp on all files to 0 (1/1/1970), which some - # people don't like (in particular GNU tar prints harmless but - # frightening warnings about it). - touch now - touch -d "1970-01-01 00:00:00 UTC" then - find $sourceRoot ! -newer then -print0 | xargs -0r touch --reference now - rm now then - eval "$nextPostUnpack" - ''; + postUnpack = '' + # Set all source files to the current date. This is because Nix + # resets the timestamp on all files to 0 (1/1/1970), which some + # people don't like (in particular GNU tar prints harmless but + # frightening warnings about it). + touch now + touch -d "1970-01-01 00:00:00 UTC" then + find $sourceRoot ! -newer then -print0 | xargs -0r touch --reference now + rm now then + eval "$nextPostUnpack" + ''; - nextPostUnpack = if args ? postUnpack then args.postUnpack else ""; + nextPostUnpack = if args ? postUnpack then args.postUnpack else ""; - # Cause distPhase to copy tar.bz2 in addition to tar.gz. - tarballs = "*.tar.gz *.tar.bz2 *.tar.xz"; + # Cause distPhase to copy tar.bz2 in addition to tar.gz. + tarballs = "*.tar.gz *.tar.bz2 *.tar.xz"; - finalPhase = '' - for i in "$out/tarballs/"*; do - echo "file source-dist $i" >> $out/nix-support/hydra-build-products - done + finalPhase = '' + for i in "$out/tarballs/"*; do + echo "file source-dist $i" >> $out/nix-support/hydra-build-products + done - # Try to figure out the release name. - releaseName=$( (cd $out/tarballs && ls) | head -n 1 | sed -e 's^\.[a-z].*^^') - test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name) - ''; + # Try to figure out the release name. + releaseName=$( (cd $out/tarballs && ls) | head -n 1 | sed -e 's^\.[a-z].*^^') + test -n "$releaseName" && (echo "$releaseName" >> $out/nix-support/hydra-release-name) + ''; - passthru = { - inherit src; - version = version + versionSuffix; - }; + passthru = { + inherit src; + version = version + versionSuffix; + }; - meta = (lib.optionalAttrs (args ? meta) args.meta) // { - description = "Source distribution"; + meta = (lib.optionalAttrs (args ? meta) args.meta) // { + description = "Source distribution"; - # Tarball builds are generally important, so give them a high - # default priority. - schedulingPriority = 200; - }; - } + # Tarball builds are generally important, so give them a high + # default priority. + schedulingPriority = 200; + }; + } ) diff --git a/pkgs/build-support/remove-references-to/default.nix b/pkgs/build-support/remove-references-to/default.nix index 1277cdb..30c7982 100644 --- a/pkgs/build-support/remove-references-to/default.nix +++ b/pkgs/build-support/remove-references-to/default.nix @@ -3,7 +3,12 @@ # non-existent path (/nix/store/eeee...). This is useful for getting rid of # dependencies that you know are not actually needed at runtime. -{ lib, stdenvNoCC, signingUtils, shell ? stdenvNoCC.shell }: +{ + lib, + stdenvNoCC, + signingUtils, + shell ? stdenvNoCC.shell, +}: let stdenv = stdenvNoCC; diff --git a/pkgs/build-support/replace-dependency.nix b/pkgs/build-support/replace-dependency.nix index 7912d21..eac2b6e 100644 --- a/pkgs/build-support/replace-dependency.nix +++ b/pkgs/build-support/replace-dependency.nix @@ -1,4 +1,8 @@ -{ runCommandLocal, nix, lib }: +{ + runCommandLocal, + nix, + lib, +}: # Replace a single dependency in the requisites tree of drv, propagating # the change all the way up the tree, without a full rebuild. This can be @@ -17,7 +21,12 @@ # }; # This will rebuild glibc with your security patch, then copy over firefox # (and all of its dependencies) without rebuilding further. -{ drv, oldDependency, newDependency, verbose ? true }: +{ + drv, + oldDependency, + newDependency, + verbose ? true, +}: let inherit (lib) @@ -34,26 +43,36 @@ let ; warn = if verbose then builtins.trace else (x: y: y); - references = import (runCommandLocal "references.nix" { exportReferencesGraph = [ "graph" drv ]; } '' - (echo { - while read path - do - echo " \"$path\" = [" - read count - read count - while [ "0" != "$count" ] - do - read ref_path - if [ "$ref_path" != "$path" ] - then - echo " (builtins.storePath (/. + \"$ref_path\"))" - fi - count=$(($count - 1)) - done - echo " ];" - done < graph - echo }) > $out - '').outPath; + references = + import + (runCommandLocal "references.nix" + { + exportReferencesGraph = [ + "graph" + drv + ]; + } + '' + (echo { + while read path + do + echo " \"$path\" = [" + read count + read count + while [ "0" != "$count" ] + do + read ref_path + if [ "$ref_path" != "$path" ] + then + echo " (builtins.storePath (/. + \"$ref_path\"))" + fi + count=$(($count - 1)) + done + echo " ];" + done < graph + echo }) > $out + '' + ).outPath; discard = builtins.unsafeDiscardStringContext; @@ -61,34 +80,50 @@ let referencesOf = drv: references.${discard (toString drv)}; - dependsOnOldMemo = listToAttrs (map - (drv: { name = discard (toString drv); - value = elem oldStorepath (referencesOf drv) || - any dependsOnOld (referencesOf drv); - }) (attrNames references)); + dependsOnOldMemo = listToAttrs ( + map (drv: { + name = discard (toString drv); + value = elem oldStorepath (referencesOf drv) || any dependsOnOld (referencesOf drv); + }) (attrNames references) + ); dependsOnOld = drv: dependsOnOldMemo.${discard (toString drv)}; - drvName = drv: - discard (substring 33 (stringLength (builtins.baseNameOf drv)) (builtins.baseNameOf drv)); + drvName = + drv: discard (substring 33 (stringLength (builtins.baseNameOf drv)) (builtins.baseNameOf drv)); - rewriteHashes = drv: hashes: runCommandLocal (drvName drv) { nixStore = "${nix.out}/bin/nix-store"; } '' - $nixStore --dump ${drv} | sed 's|${baseNameOf drv}|'$(basename $out)'|g' | sed -e ${ - concatStringsSep " -e " (mapAttrsToList (name: value: - "'s|${baseNameOf name}|${baseNameOf value}|g'" - ) hashes) - } | $nixStore --restore $out - ''; + rewriteHashes = + drv: hashes: + runCommandLocal (drvName drv) { nixStore = "${nix.out}/bin/nix-store"; } '' + $nixStore --dump ${drv} | sed 's|${baseNameOf drv}|'$(basename $out)'|g' | sed -e ${ + concatStringsSep " -e " ( + mapAttrsToList (name: value: "'s|${baseNameOf name}|${baseNameOf value}|g'") hashes + ) + } | $nixStore --restore $out + ''; - rewrittenDeps = listToAttrs [ {name = discard (toString oldDependency); value = newDependency;} ]; + rewrittenDeps = listToAttrs [ + { + name = discard (toString oldDependency); + value = newDependency; + } + ]; - rewriteMemo = listToAttrs (map - (drv: { name = discard (toString drv); - value = rewriteHashes (builtins.storePath drv) - (filterAttrs (n: v: elem (builtins.storePath (discard (toString n))) (referencesOf drv)) rewriteMemo); - }) - (filter dependsOnOld (attrNames references))) // rewrittenDeps; + rewriteMemo = + listToAttrs ( + map (drv: { + name = discard (toString drv); + value = rewriteHashes (builtins.storePath drv) ( + filterAttrs (n: v: elem (builtins.storePath (discard (toString n))) (referencesOf drv)) rewriteMemo + ); + }) (filter dependsOnOld (attrNames references)) + ) + // rewrittenDeps; drvHash = discard (toString drv); -in assert (stringLength (drvName (toString oldDependency)) == stringLength (drvName (toString newDependency))); -rewriteMemo.${drvHash} or (warn "replace-dependency.nix: Derivation ${drvHash} does not depend on ${discard (toString oldDependency)}" drv) +in +assert ( + stringLength (drvName (toString oldDependency)) == stringLength (drvName (toString newDependency)) +); +rewriteMemo.${drvHash} + or (warn "replace-dependency.nix: Derivation ${drvHash} does not depend on ${discard (toString oldDependency)}" drv) diff --git a/pkgs/build-support/replace-secret/replace-secret.nix b/pkgs/build-support/replace-secret/replace-secret.nix index 41f5cb0..7e661a0 100644 --- a/pkgs/build-support/replace-secret/replace-secret.nix +++ b/pkgs/build-support/replace-secret/replace-secret.nix @@ -1,4 +1,8 @@ -{ stdenv, lib, python3 }: +{ + stdenv, + lib, + python3, +}: stdenv.mkDerivation { name = "replace-secret"; diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix index bbb2660..99a097f 100644 --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix @@ -1,97 +1,125 @@ -{ lib, stdenv -, mkRustcDepArgs, mkRustcFeatureArgs, needUnstableCLI +{ + lib, + stdenv, + mkRustcDepArgs, + mkRustcFeatureArgs, + needUnstableCLI, }: -{ crateName, +{ + crateName, dependencies, - crateFeatures, crateRenames, libName, release, libPath, - crateType, metadata, crateBin, hasCrateBin, - extraRustcOpts, verbose, colors, + crateFeatures, + crateRenames, + libName, + release, + libPath, + crateType, + metadata, + crateBin, + hasCrateBin, + extraRustcOpts, + verbose, + colors, buildTests, - codegenUnits + codegenUnits, }: - let - baseRustcOpts = - [ - (if release then "-C opt-level=3" else "-C debuginfo=2") - "-C codegen-units=${toString codegenUnits}" - "--remap-path-prefix=$NIX_BUILD_TOP=/" - (mkRustcDepArgs dependencies crateRenames) - (mkRustcFeatureArgs crateFeatures) - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "--target" stdenv.hostPlatform.rust.rustcTargetSpec - ] ++ lib.optionals (needUnstableCLI dependencies) [ - "-Z" "unstable-options" - ] ++ extraRustcOpts - # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude - # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022 - ++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro" - ; - rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; +let + baseRustcOpts = + [ + (if release then "-C opt-level=3" else "-C debuginfo=2") + "-C codegen-units=${toString codegenUnits}" + "--remap-path-prefix=$NIX_BUILD_TOP=/" + (mkRustcDepArgs dependencies crateRenames) + (mkRustcFeatureArgs crateFeatures) + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "--target" + stdenv.hostPlatform.rust.rustcTargetSpec + ] + ++ lib.optionals (needUnstableCLI dependencies) [ + "-Z" + "unstable-options" + ] + ++ extraRustcOpts + # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude + # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022 + ++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro"; + rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; + # build the final rustc arguments that can be different between different + # crates + libRustcOpts = lib.concatStringsSep " " ( + baseRustcOpts ++ [ rustcMeta ] ++ (map (x: "--crate-type ${x}") crateType) + ); - # build the final rustc arguments that can be different between different - # crates - libRustcOpts = lib.concatStringsSep " " ( - baseRustcOpts - ++ [rustcMeta] - ++ (map (x: "--crate-type ${x}") crateType) - ); + binRustcOpts = lib.concatStringsSep " " ( + [ "-C linker=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" ] ++ baseRustcOpts + ); - binRustcOpts = lib.concatStringsSep " " ( - [ "-C linker=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" ] ++ - baseRustcOpts - ); + build_bin = if buildTests then "build_bin_test" else "build_bin"; +in +'' + runHook preBuild - build_bin = if buildTests then "build_bin_test" else "build_bin"; - in '' - runHook preBuild + # configure & source common build functions + LIB_RUSTC_OPTS="${libRustcOpts}" + BIN_RUSTC_OPTS="${binRustcOpts}" + LIB_EXT="${stdenv.hostPlatform.extensions.sharedLibrary or ""}" + LIB_PATH="${libPath}" + LIB_NAME="${libName}" - # configure & source common build functions - LIB_RUSTC_OPTS="${libRustcOpts}" - BIN_RUSTC_OPTS="${binRustcOpts}" - LIB_EXT="${stdenv.hostPlatform.extensions.sharedLibrary or ""}" - LIB_PATH="${libPath}" - LIB_NAME="${libName}" + CRATE_NAME='${lib.replaceStrings [ "-" ] [ "_" ] libName}' - CRATE_NAME='${lib.replaceStrings ["-"] ["_"] libName}' + setup_link_paths - setup_link_paths - - if [[ -e "$LIB_PATH" ]]; then - build_lib "$LIB_PATH" - ${lib.optionalString buildTests ''build_lib_test "$LIB_PATH"''} - elif [[ -e src/lib.rs ]]; then - build_lib src/lib.rs - ${lib.optionalString buildTests "build_lib_test src/lib.rs"} - fi + if [[ -e "$LIB_PATH" ]]; then + build_lib "$LIB_PATH" + ${lib.optionalString buildTests ''build_lib_test "$LIB_PATH"''} + elif [[ -e src/lib.rs ]]; then + build_lib src/lib.rs + ${lib.optionalString buildTests "build_lib_test src/lib.rs"} + fi - ${lib.optionalString (lib.length crateBin > 0) (lib.concatMapStringsSep "\n" (bin: - let - haveRequiredFeature = if bin ? requiredFeatures then - # Check that all element in requiredFeatures are also present in crateFeatures - lib.intersectLists bin.requiredFeatures crateFeatures == bin.requiredFeatures + ${lib.optionalString (lib.length crateBin > 0) ( + lib.concatMapStringsSep "\n" ( + bin: + let + haveRequiredFeature = + if bin ? requiredFeatures then + # Check that all element in requiredFeatures are also present in crateFeatures + lib.intersectLists bin.requiredFeatures crateFeatures == bin.requiredFeatures + else + true; + in + if haveRequiredFeature then + '' + mkdir -p target/bin + BIN_NAME='${bin.name or crateName}' + ${ + if !bin ? path then + '' + BIN_PATH="" + search_for_bin_path "$BIN_NAME" + '' + else + '' + BIN_PATH='${bin.path}' + '' + } + ${build_bin} "$BIN_NAME" "$BIN_PATH" + '' else - true; - in - if haveRequiredFeature then '' - mkdir -p target/bin - BIN_NAME='${bin.name or crateName}' - ${if !bin ? path then '' - BIN_PATH="" - search_for_bin_path "$BIN_NAME" - '' else '' - BIN_PATH='${bin.path}' - ''} - ${build_bin} "$BIN_NAME" "$BIN_PATH" - '' else '' - echo Binary ${bin.name or crateName} not compiled due to not having all of the required features -- ${lib.escapeShellArg (builtins.toJSON bin.requiredFeatures)} -- enabled. - '') crateBin)} + '' + echo Binary ${bin.name or crateName} not compiled due to not having all of the required features -- ${lib.escapeShellArg (builtins.toJSON bin.requiredFeatures)} -- enabled. + '' + ) crateBin + )} - ${lib.optionalString buildTests '' + ${lib.optionalString buildTests '' # When tests are enabled build all the files in the `tests` directory as # test binaries. if [ -d tests ]; then @@ -109,21 +137,21 @@ done fi - ''} + ''} - # If crateBin is empty and hasCrateBin is not set then we must try to - # detect some kind of bin target based on some files that might exist. - ${lib.optionalString (lib.length crateBin == 0 && !hasCrateBin) '' - if [[ -e src/main.rs ]]; then - mkdir -p target/bin - ${build_bin} ${crateName} src/main.rs - fi - for i in src/bin/*.rs; do #*/ - mkdir -p target/bin - ${build_bin} "$(basename $i .rs)" "$i" - done - ''} - # Remove object files to avoid "wrong ELF type" - find target -type f -name "*.o" -print0 | xargs -0 rm -f - runHook postBuild - '' + # If crateBin is empty and hasCrateBin is not set then we must try to + # detect some kind of bin target based on some files that might exist. + ${lib.optionalString (lib.length crateBin == 0 && !hasCrateBin) '' + if [[ -e src/main.rs ]]; then + mkdir -p target/bin + ${build_bin} ${crateName} src/main.rs + fi + for i in src/bin/*.rs; do #*/ + mkdir -p target/bin + ${build_bin} "$(basename $i .rs)" "$i" + done + ''} + # Remove object files to avoid "wrong ELF type" + find target -type f -name "*.o" -print0 | xargs -0 rm -f + runHook postBuild +'' diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix index 6b88271..c124f98 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -1,62 +1,72 @@ -{ lib, stdenv, echo_colored, noisily, mkRustcDepArgs, mkRustcFeatureArgs }: { - build -, buildDependencies -, codegenUnits -, colors -, completeBuildDeps -, completeDeps -, crateAuthors -, crateDescription -, crateFeatures -, crateHomepage -, crateLicense -, crateLicenseFile -, crateLinks -, crateName -, crateReadme -, crateRenames -, crateRepository -, crateRustVersion -, crateVersion -, extraLinkFlags -, extraRustcOptsForBuildRs -, libName -, libPath -, release -, verbose -, workspace_member }: -let version_ = lib.splitString "-" crateVersion; - versionPre = lib.optionalString (lib.tail version_ != []) (lib.elemAt version_ 1); - version = lib.splitVersion (lib.head version_); - rustcOpts = lib.foldl' (opts: opt: opts + " " + opt) - (if release then "-C opt-level=3" else "-C debuginfo=2") - (["-C codegen-units=${toString codegenUnits}"] ++ extraRustcOptsForBuildRs); - buildDeps = mkRustcDepArgs buildDependencies crateRenames; - authors = lib.concatStringsSep ":" crateAuthors; - optLevel = if release then 3 else 0; - completeDepsDir = lib.concatStringsSep " " completeDeps; - completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; - envFeatures = lib.concatStringsSep " " ( - map (f: lib.replaceStrings ["-"] ["_"] (lib.toUpper f)) crateFeatures - ); -in '' + lib, + stdenv, + echo_colored, + noisily, + mkRustcDepArgs, + mkRustcFeatureArgs, +}: +{ + build, + buildDependencies, + codegenUnits, + colors, + completeBuildDeps, + completeDeps, + crateAuthors, + crateDescription, + crateFeatures, + crateHomepage, + crateLicense, + crateLicenseFile, + crateLinks, + crateName, + crateReadme, + crateRenames, + crateRepository, + crateRustVersion, + crateVersion, + extraLinkFlags, + extraRustcOptsForBuildRs, + libName, + libPath, + release, + verbose, + workspace_member, +}: +let + version_ = lib.splitString "-" crateVersion; + versionPre = lib.optionalString (lib.tail version_ != [ ]) (lib.elemAt version_ 1); + version = lib.splitVersion (lib.head version_); + rustcOpts = lib.foldl' (opts: opt: opts + " " + opt) ( + if release then "-C opt-level=3" else "-C debuginfo=2" + ) ([ "-C codegen-units=${toString codegenUnits}" ] ++ extraRustcOptsForBuildRs); + buildDeps = mkRustcDepArgs buildDependencies crateRenames; + authors = lib.concatStringsSep ":" crateAuthors; + optLevel = if release then 3 else 0; + completeDepsDir = lib.concatStringsSep " " completeDeps; + completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; + envFeatures = lib.concatStringsSep " " ( + map (f: lib.replaceStrings [ "-" ] [ "_" ] (lib.toUpper f)) crateFeatures + ); +in +'' ${echo_colored colors} ${noisily colors verbose} source ${./lib.sh} ${lib.optionalString (workspace_member != null) '' - noisily cd "${workspace_member}" -''} + noisily cd "${workspace_member}" + ''} ${lib.optionalString (workspace_member == null) '' - echo_colored "Searching for matching Cargo.toml (${crateName})" - local cargo_toml_dir=$(matching_cargo_toml_dir "${crateName}") - if [ -z "$cargo_toml_dir" ]; then - echo_error "ERROR configuring ${crateName}: No matching Cargo.toml in $(pwd) found." >&2 - exit 23 - fi - noisily cd "$cargo_toml_dir" -''} + echo_colored "Searching for matching Cargo.toml (${crateName})" + local cargo_toml_dir=$(matching_cargo_toml_dir "${crateName}") + if [ -z "$cargo_toml_dir" ]; then + echo_error "ERROR configuring ${crateName}: No matching Cargo.toml in $(pwd) found." >&2 + exit 23 + fi + noisily cd "$cargo_toml_dir" + ''} runHook preConfigure @@ -137,8 +147,12 @@ in '' export CARGO_CFG_TARGET_FAMILY="unix" export CARGO_CFG_UNIX=1 export CARGO_CFG_TARGET_ENV="gnu" - export CARGO_CFG_TARGET_ENDIAN=${if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big"} - export CARGO_CFG_TARGET_POINTER_WIDTH=${with stdenv.hostPlatform; toString (if isILP32 then 32 else parsed.cpu.bits)} + export CARGO_CFG_TARGET_ENDIAN=${ + if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big" + } + export CARGO_CFG_TARGET_POINTER_WIDTH=${ + with stdenv.hostPlatform; toString (if isILP32 then 32 else parsed.cpu.bits) + } export CARGO_CFG_TARGET_VENDOR=${stdenv.hostPlatform.parsed.vendor.name} export CARGO_MANIFEST_DIR=$(pwd) diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index 4a7fd11..794df5e 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -4,15 +4,16 @@ # This can be useful for deploying packages with NixOps, and to share # binary dependencies between projects. -{ lib -, stdenv -, defaultCrateOverrides -, fetchCrate -, pkgsBuildBuild -, rustc -, cargo -, jq -, libiconv +{ + lib, + stdenv, + defaultCrateOverrides, + fetchCrate, + pkgsBuildBuild, + rustc, + cargo, + jq, + libiconv, }: let @@ -20,40 +21,36 @@ let # and renames. # # See docs for crateRenames below. - mkRustcDepArgs = dependencies: crateRenames: - lib.concatMapStringsSep " " - (dep: - let - normalizeName = lib.replaceStrings [ "-" ] [ "_" ]; - extern = normalizeName dep.libName; - # Find a choice that matches in name and optionally version. - findMatchOrUseExtern = choices: - lib.findFirst - (choice: - (!(choice ? version) - || choice.version == dep.version or "")) - { rename = extern; } - choices; - name = - if lib.hasAttr dep.crateName crateRenames then - let choices = crateRenames.${dep.crateName}; - in - normalizeName ( - if builtins.isList choices - then (findMatchOrUseExtern choices).rename - else choices - ) - else - extern; - opts = lib.optionalString (dep.stdlib or false) "noprelude:"; - filename = - if lib.any (x: x == "lib" || x == "rlib") dep.crateType - then "${dep.metadata}.rlib" - else "${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}"; - in - " --extern ${opts}${name}=${dep.lib}/lib/lib${extern}-${filename}" - ) - dependencies; + mkRustcDepArgs = + dependencies: crateRenames: + lib.concatMapStringsSep " " ( + dep: + let + normalizeName = lib.replaceStrings [ "-" ] [ "_" ]; + extern = normalizeName dep.libName; + # Find a choice that matches in name and optionally version. + findMatchOrUseExtern = + choices: + lib.findFirst (choice: (!(choice ? version) || choice.version == dep.version or "")) { + rename = extern; + } choices; + name = + if lib.hasAttr dep.crateName crateRenames then + let + choices = crateRenames.${dep.crateName}; + in + normalizeName (if builtins.isList choices then (findMatchOrUseExtern choices).rename else choices) + else + extern; + opts = lib.optionalString (dep.stdlib or false) "noprelude:"; + filename = + if lib.any (x: x == "lib" || x == "rlib") dep.crateType then + "${dep.metadata}.rlib" + else + "${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}"; + in + " --extern ${opts}${name}=${dep.lib}/lib/lib${extern}-${filename}" + ) dependencies; # Create feature arguments for rustc. mkRustcFeatureArgs = lib.concatMapStringsSep " " (f: ''--cfg feature=\"${f}\"''); @@ -64,51 +61,66 @@ let # special "noprelude:" modifier. If in later versions of Rust this is # stabilized we can account for that here, too, so we don't opt into # instability unnecessarily. - needUnstableCLI = dependencies: - lib.any (dep: dep.stdlib or false) dependencies; + needUnstableCLI = dependencies: lib.any (dep: dep.stdlib or false) dependencies; inherit (import ./log.nix { inherit lib; }) noisily echo_colored; configureCrate = import ./configure-crate.nix { - inherit lib stdenv echo_colored noisily mkRustcDepArgs mkRustcFeatureArgs; + inherit + lib + stdenv + echo_colored + noisily + mkRustcDepArgs + mkRustcFeatureArgs + ; }; buildCrate = import ./build-crate.nix { - inherit lib stdenv mkRustcDepArgs mkRustcFeatureArgs needUnstableCLI; + inherit + lib + stdenv + mkRustcDepArgs + mkRustcFeatureArgs + needUnstableCLI + ; }; installCrate = import ./install-crate.nix { inherit stdenv; }; in - /* The overridable pkgs.buildRustCrate function. - * - * Any unrecognized parameters will be passed as to - * the underlying stdenv.mkDerivation. - */ -crate_: lib.makeOverridable +/* + The overridable pkgs.buildRustCrate function. + * + * Any unrecognized parameters will be passed as to + * the underlying stdenv.mkDerivation. +*/ +crate_: +lib.makeOverridable ( # The rust compiler to use. # # Default: pkgs.rustc - { rust + { + rust, # Whether to build a release version (`true`) or a debug # version (`false`). Debug versions are faster to build # but might be much slower at runtime. - , release + release, # Whether to print rustc invocations etc. # # Example: false # Default: true - , verbose + verbose, # A list of rust/cargo features to enable while building the crate. # Example: [ "std" "async" ] - , features + features, # Additional native build inputs for building this crate. - , nativeBuildInputs + nativeBuildInputs, # Additional build inputs for building this crate. # # Example: [ pkgs.openssl ] - , buildInputs + buildInputs, # Allows to override the parameters to buildRustCrate # for any rust dependency in the transitive build tree. # @@ -119,13 +131,13 @@ crate_: lib.makeOverridable # pkgs.defaultCrateOverrides // { # hello = attrs: { buildInputs = [ openssl ]; }; # } - , crateOverrides + crateOverrides, # Rust library dependencies, i.e. other libraries that were built # with buildRustCrate. - , dependencies + dependencies, # Rust build dependencies, i.e. other libraries that were built # with buildRustCrate and are used by a build script. - , buildDependencies + buildDependencies, # Specify the "extern" name of a library if it differs from the library target. # See above for an extended explanation. # @@ -172,43 +184,43 @@ crate_: lib.makeOverridable # # Including multiple versions of a crate is very popular during # ecosystem transitions, e.g. from futures 0.1 to futures 0.3. - , crateRenames + crateRenames, # A list of extra options to pass to rustc. # # Example: [ "-Z debuginfo=2" ] # Default: [] - , extraRustcOpts + extraRustcOpts, # A list of extra options to pass to rustc when building a build.rs. # # Example: [ "-Z debuginfo=2" ] # Default: [] - , extraRustcOptsForBuildRs + extraRustcOptsForBuildRs, # Whether to enable building tests. # Use true to enable. # Default: false - , buildTests + buildTests, # Passed to stdenv.mkDerivation. - , preUnpack + preUnpack, # Passed to stdenv.mkDerivation. - , postUnpack + postUnpack, # Passed to stdenv.mkDerivation. - , prePatch + prePatch, # Passed to stdenv.mkDerivation. - , patches + patches, # Passed to stdenv.mkDerivation. - , postPatch + postPatch, # Passed to stdenv.mkDerivation. - , preConfigure + preConfigure, # Passed to stdenv.mkDerivation. - , postConfigure + postConfigure, # Passed to stdenv.mkDerivation. - , preBuild + preBuild, # Passed to stdenv.mkDerivation. - , postBuild + postBuild, # Passed to stdenv.mkDerivation. - , preInstall + preInstall, # Passed to stdenv.mkDerivation. - , postInstall + postInstall, }: let @@ -250,156 +262,218 @@ crate_: lib.makeOverridable crateBin = lib.filter (bin: !(bin ? name && bin.name == ",")) (crate.crateBin or [ ]); hasCrateBin = crate ? crateBin; in - stdenv.mkDerivation (rec { + stdenv.mkDerivation ( + rec { - inherit (crate) crateName; - inherit - preUnpack - postUnpack - prePatch - patches - postPatch - preConfigure - postConfigure - preBuild - postBuild - preInstall - postInstall - buildTests - ; + inherit (crate) crateName; + inherit + preUnpack + postUnpack + prePatch + patches + postPatch + preConfigure + postConfigure + preBuild + postBuild + preInstall + postInstall + buildTests + ; - src = crate.src or (fetchCrate { inherit (crate) crateName version sha256; }); - name = "rust_${crate.crateName}-${crate.version}${lib.optionalString buildTests_ "-test"}"; - version = crate.version; - depsBuildBuild = [ pkgsBuildBuild.stdenv.cc ]; - nativeBuildInputs = [ rust stdenv.cc cargo jq ] - ++ lib.optionals stdenv.buildPlatform.isDarwin [ libiconv ] - ++ (crate.nativeBuildInputs or [ ]) ++ nativeBuildInputs_; - buildInputs = lib.optionals stdenv.isDarwin [ libiconv ] ++ (crate.buildInputs or [ ]) ++ buildInputs_; - dependencies = map lib.getLib dependencies_; - buildDependencies = map lib.getLib buildDependencies_; + src = crate.src or (fetchCrate { inherit (crate) crateName version sha256; }); + name = "rust_${crate.crateName}-${crate.version}${lib.optionalString buildTests_ "-test"}"; + version = crate.version; + depsBuildBuild = [ pkgsBuildBuild.stdenv.cc ]; + nativeBuildInputs = + [ + rust + stdenv.cc + cargo + jq + ] + ++ lib.optionals stdenv.buildPlatform.isDarwin [ libiconv ] + ++ (crate.nativeBuildInputs or [ ]) + ++ nativeBuildInputs_; + buildInputs = + lib.optionals stdenv.isDarwin [ libiconv ] ++ (crate.buildInputs or [ ]) ++ buildInputs_; + dependencies = map lib.getLib dependencies_; + buildDependencies = map lib.getLib buildDependencies_; - completeDeps = lib.unique (dependencies ++ lib.concatMap (dep: dep.completeDeps) dependencies); - completeBuildDeps = lib.unique ( - buildDependencies + completeDeps = lib.unique (dependencies ++ lib.concatMap (dep: dep.completeDeps) dependencies); + completeBuildDeps = lib.unique ( + buildDependencies ++ lib.concatMap (dep: dep.completeBuildDeps ++ dep.completeDeps) buildDependencies - ); - - # Create a list of features that are enabled by the crate itself and - # through the features argument of buildRustCrate. Exclude features - # with a forward slash, since they are passed through to dependencies, - # and dep: features, since they're internal-only and do nothing except - # enable optional dependencies. - crateFeatures = lib.optionals (crate ? features) - (builtins.filter - (f: !(lib.hasInfix "/" f || lib.hasPrefix "dep:" f)) - (crate.features ++ features) ); - libName = if crate ? libName then crate.libName else crate.crateName; - libPath = lib.optionalString (crate ? libPath) crate.libPath; + # Create a list of features that are enabled by the crate itself and + # through the features argument of buildRustCrate. Exclude features + # with a forward slash, since they are passed through to dependencies, + # and dep: features, since they're internal-only and do nothing except + # enable optional dependencies. + crateFeatures = lib.optionals (crate ? features) ( + builtins.filter (f: !(lib.hasInfix "/" f || lib.hasPrefix "dep:" f)) (crate.features ++ features) + ); - # Seed the symbol hashes with something unique every time. - # https://doc.rust-lang.org/1.0.0/rustc/metadata/loader/index.html#frobbing-symbols - metadata = - let - depsMetadata = lib.foldl' (str: dep: str + dep.metadata) "" (dependencies ++ buildDependencies); - hashedMetadata = builtins.hashString "sha256" - (crateName + "-" + crateVersion + "___" + toString (mkRustcFeatureArgs crateFeatures) + - "___" + depsMetadata + "___" + stdenv.hostPlatform.rust.rustcTarget); - in - lib.substring 0 10 hashedMetadata; + libName = if crate ? libName then crate.libName else crate.crateName; + libPath = lib.optionalString (crate ? libPath) crate.libPath; - build = crate.build or ""; - # Either set to a concrete sub path to the crate root - # or use `null` for auto-detect. - workspace_member = crate.workspace_member or "."; - crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [ ]; - crateDescription = crate.description or ""; - crateHomepage = crate.homepage or ""; - crateLicense = crate.license or ""; - crateLicenseFile = crate.license-file or ""; - crateLinks = crate.links or ""; - crateReadme = crate.readme or ""; - crateRepository = crate.repository or ""; - crateRustVersion = crate.rust-version or ""; - crateVersion = crate.version; - crateType = - if lib.attrByPath [ "procMacro" ] false crate then [ "proc-macro" ] else - if lib.attrByPath [ "plugin" ] false crate then [ "dylib" ] else - (crate.type or [ "lib" ]); - colors = lib.attrByPath [ "colors" ] "always" crate; - extraLinkFlags = lib.concatStringsSep " " (crate.extraLinkFlags or [ ]); - edition = crate.edition or null; - codegenUnits = if crate ? codegenUnits then crate.codegenUnits else 1; - extraRustcOpts = - lib.optionals (crate ? extraRustcOpts) crate.extraRustcOpts + # Seed the symbol hashes with something unique every time. + # https://doc.rust-lang.org/1.0.0/rustc/metadata/loader/index.html#frobbing-symbols + metadata = + let + depsMetadata = lib.foldl' (str: dep: str + dep.metadata) "" (dependencies ++ buildDependencies); + hashedMetadata = builtins.hashString "sha256" ( + crateName + + "-" + + crateVersion + + "___" + + toString (mkRustcFeatureArgs crateFeatures) + + "___" + + depsMetadata + + "___" + + stdenv.hostPlatform.rust.rustcTarget + ); + in + lib.substring 0 10 hashedMetadata; + + build = crate.build or ""; + # Either set to a concrete sub path to the crate root + # or use `null` for auto-detect. + workspace_member = crate.workspace_member or "."; + crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else [ ]; + crateDescription = crate.description or ""; + crateHomepage = crate.homepage or ""; + crateLicense = crate.license or ""; + crateLicenseFile = crate.license-file or ""; + crateLinks = crate.links or ""; + crateReadme = crate.readme or ""; + crateRepository = crate.repository or ""; + crateRustVersion = crate.rust-version or ""; + crateVersion = crate.version; + crateType = + if lib.attrByPath [ "procMacro" ] false crate then + [ "proc-macro" ] + else if lib.attrByPath [ "plugin" ] false crate then + [ "dylib" ] + else + (crate.type or [ "lib" ]); + colors = lib.attrByPath [ "colors" ] "always" crate; + extraLinkFlags = lib.concatStringsSep " " (crate.extraLinkFlags or [ ]); + edition = crate.edition or null; + codegenUnits = if crate ? codegenUnits then crate.codegenUnits else 1; + extraRustcOpts = + lib.optionals (crate ? extraRustcOpts) crate.extraRustcOpts ++ extraRustcOpts_ ++ (lib.optional (edition != null) "--edition ${edition}"); - extraRustcOptsForBuildRs = - lib.optionals (crate ? extraRustcOptsForBuildRs) crate.extraRustcOptsForBuildRs - ++ extraRustcOptsForBuildRs_ - ++ (lib.optional (edition != null) "--edition ${edition}"); + extraRustcOptsForBuildRs = + lib.optionals (crate ? extraRustcOptsForBuildRs) crate.extraRustcOptsForBuildRs + ++ extraRustcOptsForBuildRs_ + ++ (lib.optional (edition != null) "--edition ${edition}"); + configurePhase = configureCrate { + inherit + crateName + buildDependencies + completeDeps + completeBuildDeps + crateDescription + crateFeatures + crateRenames + libName + build + workspace_member + release + libPath + crateVersion + crateLinks + extraLinkFlags + extraRustcOptsForBuildRs + crateLicense + crateLicenseFile + crateReadme + crateRepository + crateRustVersion + crateAuthors + crateHomepage + verbose + colors + codegenUnits + ; + }; + buildPhase = buildCrate { + inherit + crateName + dependencies + crateFeatures + crateRenames + libName + release + libPath + crateType + metadata + hasCrateBin + crateBin + verbose + colors + extraRustcOpts + buildTests + codegenUnits + ; + }; + dontStrip = !release; - configurePhase = configureCrate { - inherit crateName buildDependencies completeDeps completeBuildDeps crateDescription - crateFeatures crateRenames libName build workspace_member release libPath crateVersion crateLinks - extraLinkFlags extraRustcOptsForBuildRs - crateLicense crateLicenseFile crateReadme crateRepository crateRustVersion - crateAuthors crateHomepage verbose colors codegenUnits; - }; - buildPhase = buildCrate { - inherit crateName dependencies - crateFeatures crateRenames libName release libPath crateType - metadata hasCrateBin crateBin verbose colors - extraRustcOpts buildTests codegenUnits; - }; - dontStrip = !release; + # We need to preserve metadata in .rlib, which might get stripped on macOS. See https://github.com/NixOS/nixpkgs/issues/218712 + stripExclude = [ "*.rlib" ]; - # We need to preserve metadata in .rlib, which might get stripped on macOS. See https://github.com/NixOS/nixpkgs/issues/218712 - stripExclude = [ "*.rlib" ]; + installPhase = installCrate crateName metadata buildTests; - installPhase = installCrate crateName metadata buildTests; + # depending on the test setting we are either producing something with bins + # and libs or just test binaries + outputs = + if buildTests then + [ "out" ] + else + [ + "out" + "lib" + ]; + outputDev = if buildTests then [ "out" ] else [ "lib" ]; - # depending on the test setting we are either producing something with bins - # and libs or just test binaries - outputs = if buildTests then [ "out" ] else [ "out" "lib" ]; - outputDev = if buildTests then [ "out" ] else [ "lib" ]; - - meta = { - mainProgram = crateName; - badPlatforms = [ - # Rust is currently unable to target the n32 ABI - lib.systems.inspect.patterns.isMips64n32 - ]; - }; - } // extraDerivationAttrs + meta = { + mainProgram = crateName; + badPlatforms = [ + # Rust is currently unable to target the n32 ABI + lib.systems.inspect.patterns.isMips64n32 + ]; + }; + } + // extraDerivationAttrs ) ) -{ - rust = rustc; - release = crate_.release or true; - verbose = crate_.verbose or true; - extraRustcOpts = [ ]; - extraRustcOptsForBuildRs = [ ]; - features = [ ]; - nativeBuildInputs = [ ]; - buildInputs = [ ]; - crateOverrides = defaultCrateOverrides; - preUnpack = crate_.preUnpack or ""; - postUnpack = crate_.postUnpack or ""; - prePatch = crate_.prePatch or ""; - patches = crate_.patches or [ ]; - postPatch = crate_.postPatch or ""; - preConfigure = crate_.preConfigure or ""; - postConfigure = crate_.postConfigure or ""; - preBuild = crate_.preBuild or ""; - postBuild = crate_.postBuild or ""; - preInstall = crate_.preInstall or ""; - postInstall = crate_.postInstall or ""; - dependencies = crate_.dependencies or [ ]; - buildDependencies = crate_.buildDependencies or [ ]; - crateRenames = crate_.crateRenames or { }; - buildTests = crate_.buildTests or false; -} + { + rust = rustc; + release = crate_.release or true; + verbose = crate_.verbose or true; + extraRustcOpts = [ ]; + extraRustcOptsForBuildRs = [ ]; + features = [ ]; + nativeBuildInputs = [ ]; + buildInputs = [ ]; + crateOverrides = defaultCrateOverrides; + preUnpack = crate_.preUnpack or ""; + postUnpack = crate_.postUnpack or ""; + prePatch = crate_.prePatch or ""; + patches = crate_.patches or [ ]; + postPatch = crate_.postPatch or ""; + preConfigure = crate_.preConfigure or ""; + postConfigure = crate_.postConfigure or ""; + preBuild = crate_.preBuild or ""; + postBuild = crate_.postBuild or ""; + preInstall = crate_.preInstall or ""; + postInstall = crate_.postInstall or ""; + dependencies = crate_.dependencies or [ ]; + buildDependencies = crate_.buildDependencies or [ ]; + crateRenames = crate_.crateRenames or { }; + buildTests = crate_.buildTests or false; + } diff --git a/pkgs/build-support/rust/build-rust-crate/helpers.nix b/pkgs/build-support/rust/build-rust-crate/helpers.nix index 386d0ce..a72bb50 100644 --- a/pkgs/build-support/rust/build-rust-crate/helpers.nix +++ b/pkgs/build-support/rust/build-rust-crate/helpers.nix @@ -1,26 +1,35 @@ -{stdenv, lib}: +{ stdenv, lib }: { kernel = stdenv.hostPlatform.parsed.kernel.name; abi = stdenv.hostPlatform.parsed.abi.name; cpu = stdenv.hostPlatform.parsed.cpu.name; - updateFeatures = f: up: functions: lib.deepSeq f (lib.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions); - mapFeatures = features: map (fun: fun { features = features; }); - mkFeatures = feat: lib.foldl (features: featureName: - if feat.${featureName} or false then - [ featureName ] ++ features - else - features - ) [] (lib.attrNames feat); - include = includedFiles: src: builtins.filterSource (path: type: - lib.any (f: - let p = toString (src + ("/" + f)); - in - p == path || (lib.strings.hasPrefix (p + "/") path) - ) includedFiles - ) src; - exclude = excludedFiles: src: builtins.filterSource (path: type: - lib.all (f: - !lib.strings.hasPrefix (toString (src + ("/" + f))) path - ) excludedFiles - ) src; + updateFeatures = + f: up: functions: + lib.deepSeq f ( + lib.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions + ); + mapFeatures = features: map (fun: fun { features = features; }); + mkFeatures = + feat: + lib.foldl ( + features: featureName: + if feat.${featureName} or false then [ featureName ] ++ features else features + ) [ ] (lib.attrNames feat); + include = + includedFiles: src: + builtins.filterSource ( + path: type: + lib.any ( + f: + let + p = toString (src + ("/" + f)); + in + p == path || (lib.strings.hasPrefix (p + "/") path) + ) includedFiles + ) src; + exclude = + excludedFiles: src: + builtins.filterSource ( + path: type: lib.all (f: !lib.strings.hasPrefix (toString (src + ("/" + f))) path) excludedFiles + ) src; } diff --git a/pkgs/build-support/rust/build-rust-crate/install-crate.nix b/pkgs/build-support/rust/build-rust-crate/install-crate.nix index f4a4dcd..2099eca 100644 --- a/pkgs/build-support/rust/build-rust-crate/install-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/install-crate.nix @@ -1,51 +1,53 @@ { stdenv }: crateName: metadata: buildTests: -if !buildTests then '' - runHook preInstall - # always create $out even if we do not have binaries. We are detecting binary targets during compilation, if those are missing there is no way to only have $lib - mkdir $out - if [[ -s target/env ]]; then - mkdir -p $lib - cp target/env $lib/env - fi - if [[ -s target/link.final ]]; then - mkdir -p $lib/lib - cp target/link.final $lib/lib/link - fi - if [[ "$(ls -A target/lib)" ]]; then - mkdir -p $lib/lib - cp -r target/lib/* $lib/lib #*/ - for library in $lib/lib/*.so $lib/lib/*.dylib; do #*/ - ln -s $library $(echo $library | sed -e "s/-${metadata}//") - done - fi - if [[ "$(ls -A target/build)" ]]; then # */ - mkdir -p $lib/lib - cp -r target/build/* $lib/lib # */ - fi - if [[ -d target/bin ]]; then - if [[ "$(ls -A target/bin)" ]]; then - mkdir -p $out/bin - cp -rP target/bin/* $out/bin # */ +if !buildTests then + '' + runHook preInstall + # always create $out even if we do not have binaries. We are detecting binary targets during compilation, if those are missing there is no way to only have $lib + mkdir $out + if [[ -s target/env ]]; then + mkdir -p $lib + cp target/env $lib/env fi - fi - runHook postInstall -'' else -# for tests we just put them all in the output. No execution. -'' - runHook preInstall + if [[ -s target/link.final ]]; then + mkdir -p $lib/lib + cp target/link.final $lib/lib/link + fi + if [[ "$(ls -A target/lib)" ]]; then + mkdir -p $lib/lib + cp -r target/lib/* $lib/lib #*/ + for library in $lib/lib/*.so $lib/lib/*.dylib; do #*/ + ln -s $library $(echo $library | sed -e "s/-${metadata}//") + done + fi + if [[ "$(ls -A target/build)" ]]; then # */ + mkdir -p $lib/lib + cp -r target/build/* $lib/lib # */ + fi + if [[ -d target/bin ]]; then + if [[ "$(ls -A target/bin)" ]]; then + mkdir -p $out/bin + cp -rP target/bin/* $out/bin # */ + fi + fi + runHook postInstall + '' +else + # for tests we just put them all in the output. No execution. + '' + runHook preInstall - mkdir -p $out/tests - if [ -e target/bin ]; then - find target/bin/ -type f -executable -exec cp {} $out/tests \; - fi - if [ -e target/lib ]; then - find target/lib/ -type f \! -name '*.rlib' \ - -a \! -name '*${stdenv.hostPlatform.extensions.sharedLibrary}' \ - -a \! -name '*.d' \ - -executable \ - -print0 | xargs --no-run-if-empty --null install --target $out/tests; - fi + mkdir -p $out/tests + if [ -e target/bin ]; then + find target/bin/ -type f -executable -exec cp {} $out/tests \; + fi + if [ -e target/lib ]; then + find target/lib/ -type f \! -name '*.rlib' \ + -a \! -name '*${stdenv.hostPlatform.extensions.sharedLibrary}' \ + -a \! -name '*.d' \ + -executable \ + -print0 | xargs --no-run-if-empty --null install --target $out/tests; + fi - runHook postInstall -'' + runHook postInstall + '' diff --git a/pkgs/build-support/rust/build-rust-crate/log.nix b/pkgs/build-support/rust/build-rust-crate/log.nix index 9054815..ab80aa9 100644 --- a/pkgs/build-support/rust/build-rust-crate/log.nix +++ b/pkgs/build-support/rust/build-rust-crate/log.nix @@ -1,27 +1,29 @@ { lib }: -let echo_colored_body = start_escape: - # Body of a function that behaves like "echo" but - # has the output colored by the given start_escape - # sequence. E.g. - # - # * echo_x "Building ..." - # * echo_x -n "Running " - # - # This is more complicated than apparent at first sight - # because: - # * The color markers and the text must be print - # in the same echo statement. Otherise, other - # intermingled text from concurrent builds will - # be colored as well. - # * We need to preserve the trailing newline of the - # echo if and only if it is present. Bash likes - # to strip those if we capture the output of echo - # in a variable. - # * Leading "-" will be interpreted by test as an - # option for itself. Therefore, we prefix it with - # an x in `[[ "x$1" =~ ^x- ]]`. - '' +let + echo_colored_body = + start_escape: + # Body of a function that behaves like "echo" but + # has the output colored by the given start_escape + # sequence. E.g. + # + # * echo_x "Building ..." + # * echo_x -n "Running " + # + # This is more complicated than apparent at first sight + # because: + # * The color markers and the text must be print + # in the same echo statement. Otherise, other + # intermingled text from concurrent builds will + # be colored as well. + # * We need to preserve the trailing newline of the + # echo if and only if it is present. Bash likes + # to strip those if we capture the output of echo + # in a variable. + # * Leading "-" will be interpreted by test as an + # option for itself. Therefore, we prefix it with + # an x in `[[ "x$1" =~ ^x- ]]`. + '' local echo_args=""; while [[ "x$1" =~ ^x- ]]; do echo_args+=" $1" @@ -31,12 +33,12 @@ let echo_colored_body = start_escape: local start_escape="$(printf '${start_escape}')" local reset="$(printf '\033[0m')" echo $echo_args $start_escape"$@"$reset - ''; - echo_conditional_colored_body = colors: start_escape: - if colors == "always" - then (echo_colored_body start_escape) - else ''echo "$@"''; -in { + ''; + echo_conditional_colored_body = + colors: start_escape: + if colors == "always" then (echo_colored_body start_escape) else ''echo "$@"''; +in +{ echo_colored = colors: '' echo_colored() { ${echo_conditional_colored_body colors ''\033[0;1;32m''} @@ -45,15 +47,15 @@ in { echo_error() { ${echo_conditional_colored_body colors ''\033[0;1;31m''} } - ''; + ''; noisily = colors: verbose: '' - noisily() { - ${lib.optionalString verbose '' - echo_colored -n "Running " - echo $@ - ''} - $@ - } + noisily() { + ${lib.optionalString verbose '' + echo_colored -n "Running " + echo $@ + ''} + $@ + } ''; } diff --git a/pkgs/build-support/rust/build-rust-crate/test/brotli-crates.nix b/pkgs/build-support/rust/build-rust-crate/test/brotli-crates.nix index 4831c10..4880c45 100644 --- a/pkgs/build-support/rust/build-rust-crate/test/brotli-crates.nix +++ b/pkgs/build-support/rust/build-rust-crate/test/brotli-crates.nix @@ -1,95 +1,159 @@ -{ lib, stdenv, buildRustCrate, fetchgit }: -let kernel = stdenv.buildPlatform.parsed.kernel.name; - abi = stdenv.buildPlatform.parsed.abi.name; - include = includedFiles: src: builtins.filterSource (path: type: - lib.lists.any (f: - let p = toString (src + ("/" + f)); in +{ + lib, + stdenv, + buildRustCrate, + fetchgit, +}: +let + kernel = stdenv.buildPlatform.parsed.kernel.name; + abi = stdenv.buildPlatform.parsed.abi.name; + include = + includedFiles: src: + builtins.filterSource ( + path: type: + lib.lists.any ( + f: + let + p = toString (src + ("/" + f)); + in (path == p) || (type == "directory" && lib.strings.hasPrefix path p) ) includedFiles ) src; - updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions); - mapFeatures = features: map (fun: fun { features = features; }); - mkFeatures = feat: lib.lists.foldl (features: featureName: - if feat.${featureName} or false then - [ featureName ] ++ features - else - features - ) [] (builtins.attrNames feat); + updateFeatures = + f: up: functions: + builtins.deepSeq f ( + lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions + ); + mapFeatures = features: map (fun: fun { features = features; }); + mkFeatures = + feat: + lib.lists.foldl ( + features: featureName: + if feat.${featureName} or false then [ featureName ] ++ features else features + ) [ ] (builtins.attrNames feat); in rec { - alloc_no_stdlib_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { - crateName = "alloc-no-stdlib"; - version = "1.3.0"; - authors = [ "Daniel Reiter Horn " ]; - sha256 = "1jcp27pzmqdszgp80y484g4kwbjbg7x8a589drcwbxg0i8xwkir9"; - crateBin = [ { name = "example"; } ]; - inherit dependencies buildDependencies features; - }; - brotli_2_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { - crateName = "brotli"; - version = "2.5.0"; - authors = [ "Daniel Reiter Horn " "The Brotli Authors" ]; - sha256 = "1ynw4hkdwnp0kj30p86ls44ahv4s99258s019bqrq4mya8hlsb5b"; - crateBin = [ { name = "brotli"; } ]; - inherit dependencies buildDependencies features; - }; - brotli_decompressor_1_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { - crateName = "brotli-decompressor"; - version = "1.3.1"; - authors = [ "Daniel Reiter Horn " "The Brotli Authors" ]; - sha256 = "022g69q1xzwdj0130qm3fa4qwpn4q1jx3lc8yz0v0v201p7bm8fb"; - crateBin = [ { name = "brotli-decompressor"; } ]; - inherit dependencies buildDependencies features; - }; - alloc_no_stdlib_1_3_0 = { features?(alloc_no_stdlib_1_3_0_features {}) }: alloc_no_stdlib_1_3_0_ { - features = mkFeatures (features.alloc_no_stdlib_1_3_0 or {}); - }; - alloc_no_stdlib_1_3_0_features = f: updateFeatures f ({ - alloc_no_stdlib_1_3_0.default = (f.alloc_no_stdlib_1_3_0.default or true); - }) []; - brotli_2_5_0 = { features?(brotli_2_5_0_features {}) }: brotli_2_5_0_ { - dependencies = mapFeatures features ([ alloc_no_stdlib_1_3_0 brotli_decompressor_1_3_1 ]); - features = mkFeatures (features.brotli_2_5_0 or {}); - }; - brotli_2_5_0_features = f: updateFeatures f (rec { - alloc_no_stdlib_1_3_0.no-stdlib = - (f.alloc_no_stdlib_1_3_0.no-stdlib or false) || - (brotli_2_5_0.no-stdlib or false) || - (f.brotli_2_5_0.no-stdlib or false); - alloc_no_stdlib_1_3_0.default = true; - brotli_2_5_0.default = (f.brotli_2_5_0.default or true); - brotli_decompressor_1_3_1.disable-timer = - (f.brotli_decompressor_1_3_1.disable-timer or false) || - (brotli_2_5_0.disable-timer or false) || - (f.brotli_2_5_0.disable-timer or false); - brotli_decompressor_1_3_1.no-stdlib = - (f.brotli_decompressor_1_3_1.no-stdlib or false) || - (brotli_2_5_0.no-stdlib or false) || - (f.brotli_2_5_0.no-stdlib or false); - brotli_decompressor_1_3_1.benchmark = - (f.brotli_decompressor_1_3_1.benchmark or false) || - (brotli_2_5_0.benchmark or false) || - (f.brotli_2_5_0.benchmark or false); - brotli_decompressor_1_3_1.default = true; - brotli_decompressor_1_3_1.seccomp = - (f.brotli_decompressor_1_3_1.seccomp or false) || - (brotli_2_5_0.seccomp or false) || - (f.brotli_2_5_0.seccomp or false); - }) [ alloc_no_stdlib_1_3_0_features brotli_decompressor_1_3_1_features ]; - brotli_decompressor_1_3_1 = { features?(brotli_decompressor_1_3_1_features {}) }: brotli_decompressor_1_3_1_ { - dependencies = mapFeatures features ([ alloc_no_stdlib_1_3_0 ]); - features = mkFeatures (features.brotli_decompressor_1_3_1 or {}); - }; - brotli_decompressor_1_3_1_features = f: updateFeatures f (rec { - alloc_no_stdlib_1_3_0.no-stdlib = - (f.alloc_no_stdlib_1_3_0.no-stdlib or false) || - (brotli_decompressor_1_3_1.no-stdlib or false) || - (f.brotli_decompressor_1_3_1.no-stdlib or false); - alloc_no_stdlib_1_3_0.default = true; - alloc_no_stdlib_1_3_0.unsafe = - (f.alloc_no_stdlib_1_3_0.unsafe or false) || - (brotli_decompressor_1_3_1.unsafe or false) || - (f.brotli_decompressor_1_3_1.unsafe or false); - brotli_decompressor_1_3_1.default = (f.brotli_decompressor_1_3_1.default or true); - }) [ alloc_no_stdlib_1_3_0_features ]; + alloc_no_stdlib_1_3_0_ = + { + dependencies ? [ ], + buildDependencies ? [ ], + features ? [ ], + }: + buildRustCrate { + crateName = "alloc-no-stdlib"; + version = "1.3.0"; + authors = [ "Daniel Reiter Horn " ]; + sha256 = "1jcp27pzmqdszgp80y484g4kwbjbg7x8a589drcwbxg0i8xwkir9"; + crateBin = [ { name = "example"; } ]; + inherit dependencies buildDependencies features; + }; + brotli_2_5_0_ = + { + dependencies ? [ ], + buildDependencies ? [ ], + features ? [ ], + }: + buildRustCrate { + crateName = "brotli"; + version = "2.5.0"; + authors = [ + "Daniel Reiter Horn " + "The Brotli Authors" + ]; + sha256 = "1ynw4hkdwnp0kj30p86ls44ahv4s99258s019bqrq4mya8hlsb5b"; + crateBin = [ { name = "brotli"; } ]; + inherit dependencies buildDependencies features; + }; + brotli_decompressor_1_3_1_ = + { + dependencies ? [ ], + buildDependencies ? [ ], + features ? [ ], + }: + buildRustCrate { + crateName = "brotli-decompressor"; + version = "1.3.1"; + authors = [ + "Daniel Reiter Horn " + "The Brotli Authors" + ]; + sha256 = "022g69q1xzwdj0130qm3fa4qwpn4q1jx3lc8yz0v0v201p7bm8fb"; + crateBin = [ { name = "brotli-decompressor"; } ]; + inherit dependencies buildDependencies features; + }; + alloc_no_stdlib_1_3_0 = + { + features ? (alloc_no_stdlib_1_3_0_features { }), + }: + alloc_no_stdlib_1_3_0_ { features = mkFeatures (features.alloc_no_stdlib_1_3_0 or { }); }; + alloc_no_stdlib_1_3_0_features = + f: + updateFeatures f ({ + alloc_no_stdlib_1_3_0.default = (f.alloc_no_stdlib_1_3_0.default or true); + }) [ ]; + brotli_2_5_0 = + { + features ? (brotli_2_5_0_features { }), + }: + brotli_2_5_0_ { + dependencies = mapFeatures features ([ + alloc_no_stdlib_1_3_0 + brotli_decompressor_1_3_1 + ]); + features = mkFeatures (features.brotli_2_5_0 or { }); + }; + brotli_2_5_0_features = + f: + updateFeatures f + (rec { + alloc_no_stdlib_1_3_0.no-stdlib = + (f.alloc_no_stdlib_1_3_0.no-stdlib or false) + || (brotli_2_5_0.no-stdlib or false) + || (f.brotli_2_5_0.no-stdlib or false); + alloc_no_stdlib_1_3_0.default = true; + brotli_2_5_0.default = (f.brotli_2_5_0.default or true); + brotli_decompressor_1_3_1.disable-timer = + (f.brotli_decompressor_1_3_1.disable-timer or false) + || (brotli_2_5_0.disable-timer or false) + || (f.brotli_2_5_0.disable-timer or false); + brotli_decompressor_1_3_1.no-stdlib = + (f.brotli_decompressor_1_3_1.no-stdlib or false) + || (brotli_2_5_0.no-stdlib or false) + || (f.brotli_2_5_0.no-stdlib or false); + brotli_decompressor_1_3_1.benchmark = + (f.brotli_decompressor_1_3_1.benchmark or false) + || (brotli_2_5_0.benchmark or false) + || (f.brotli_2_5_0.benchmark or false); + brotli_decompressor_1_3_1.default = true; + brotli_decompressor_1_3_1.seccomp = + (f.brotli_decompressor_1_3_1.seccomp or false) + || (brotli_2_5_0.seccomp or false) + || (f.brotli_2_5_0.seccomp or false); + }) + [ + alloc_no_stdlib_1_3_0_features + brotli_decompressor_1_3_1_features + ]; + brotli_decompressor_1_3_1 = + { + features ? (brotli_decompressor_1_3_1_features { }), + }: + brotli_decompressor_1_3_1_ { + dependencies = mapFeatures features ([ alloc_no_stdlib_1_3_0 ]); + features = mkFeatures (features.brotli_decompressor_1_3_1 or { }); + }; + brotli_decompressor_1_3_1_features = + f: + updateFeatures f (rec { + alloc_no_stdlib_1_3_0.no-stdlib = + (f.alloc_no_stdlib_1_3_0.no-stdlib or false) + || (brotli_decompressor_1_3_1.no-stdlib or false) + || (f.brotli_decompressor_1_3_1.no-stdlib or false); + alloc_no_stdlib_1_3_0.default = true; + alloc_no_stdlib_1_3_0.unsafe = + (f.alloc_no_stdlib_1_3_0.unsafe or false) + || (brotli_decompressor_1_3_1.unsafe or false) + || (f.brotli_decompressor_1_3_1.unsafe or false); + brotli_decompressor_1_3_1.default = (f.brotli_decompressor_1_3_1.default or true); + }) [ alloc_no_stdlib_1_3_0_features ]; } diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix index 1ecef4c..1e1b95d 100644 --- a/pkgs/build-support/rust/build-rust-crate/test/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix @@ -1,665 +1,796 @@ -{ lib -, buildPackages -, buildRustCrate -, callPackage -, releaseTools -, runCommand -, runCommandCC -, stdenv -, symlinkJoin -, writeTextFile +{ + lib, + buildPackages, + buildRustCrate, + callPackage, + releaseTools, + runCommand, + runCommandCC, + stdenv, + symlinkJoin, + writeTextFile, }: let - mkCrate = buildRustCrate: args: let - p = { - crateName = "nixtestcrate"; - version = "0.1.0"; - authors = [ "Test " ]; - } // args; - in buildRustCrate p; + mkCrate = + buildRustCrate: args: + let + p = { + crateName = "nixtestcrate"; + version = "0.1.0"; + authors = [ "Test " ]; + } // args; + in + buildRustCrate p; mkHostCrate = mkCrate buildRustCrate; mkCargoToml = - { name, crateVersion ? "0.1.0", path ? "Cargo.toml" }: - mkFile path '' - [package] - name = ${builtins.toJSON name} - version = ${builtins.toJSON crateVersion} - ''; + { + name, + crateVersion ? "0.1.0", + path ? "Cargo.toml", + }: + mkFile path '' + [package] + name = ${builtins.toJSON name} + version = ${builtins.toJSON crateVersion} + ''; - mkFile = destination: text: writeTextFile { - name = "src"; - destination = "/${destination}"; - inherit text; - }; + mkFile = + destination: text: + writeTextFile { + name = "src"; + destination = "/${destination}"; + inherit text; + }; - mkBin = name: mkFile name '' - use std::env; - fn main() { - let name: String = env::args().nth(0).unwrap(); - println!("executed {}", name); - } - ''; + mkBin = + name: + mkFile name '' + use std::env; + fn main() { + let name: String = env::args().nth(0).unwrap(); + println!("executed {}", name); + } + ''; - mkBinExtern = name: extern: mkFile name '' - extern crate ${extern}; - fn main() { - assert_eq!(${extern}::test(), 23); - } - ''; + mkBinExtern = + name: extern: + mkFile name '' + extern crate ${extern}; + fn main() { + assert_eq!(${extern}::test(), 23); + } + ''; - mkTestFile = name: functionName: mkFile name '' - #[cfg(test)] - #[test] - fn ${functionName}() { - assert!(true); - } - ''; - mkTestFileWithMain = name: functionName: mkFile name '' - #[cfg(test)] - #[test] - fn ${functionName}() { - assert!(true); - } - - fn main() {} - ''; + mkTestFile = + name: functionName: + mkFile name '' + #[cfg(test)] + #[test] + fn ${functionName}() { + assert!(true); + } + ''; + mkTestFileWithMain = + name: functionName: + mkFile name '' + #[cfg(test)] + #[test] + fn ${functionName}() { + assert!(true); + } + fn main() {} + ''; mkLib = name: mkFile name "pub fn test() -> i32 { return 23; }"; - mkTest = crateArgs: let - crate = mkHostCrate (builtins.removeAttrs crateArgs ["expectedTestOutput"]); - hasTests = crateArgs.buildTests or false; - expectedTestOutputs = crateArgs.expectedTestOutputs or null; - binaries = map (v: lib.escapeShellArg v.name) (crateArgs.crateBin or []); - isLib = crateArgs ? libName || crateArgs ? libPath; - crateName = crateArgs.crateName or "nixtestcrate"; - libName = crateArgs.libName or crateName; + mkTest = + crateArgs: + let + crate = mkHostCrate (builtins.removeAttrs crateArgs [ "expectedTestOutput" ]); + hasTests = crateArgs.buildTests or false; + expectedTestOutputs = crateArgs.expectedTestOutputs or null; + binaries = map (v: lib.escapeShellArg v.name) (crateArgs.crateBin or [ ]); + isLib = crateArgs ? libName || crateArgs ? libPath; + crateName = crateArgs.crateName or "nixtestcrate"; + libName = crateArgs.libName or crateName; - libTestBinary = if !isLib then null else mkHostCrate { - crateName = "run-test-${crateName}"; - dependencies = [ crate ]; - src = mkBinExtern "src/main.rs" libName; - }; + libTestBinary = + if !isLib then + null + else + mkHostCrate { + crateName = "run-test-${crateName}"; + dependencies = [ crate ]; + src = mkBinExtern "src/main.rs" libName; + }; in - assert expectedTestOutputs != null -> hasTests; - assert hasTests -> expectedTestOutputs != null; + assert expectedTestOutputs != null -> hasTests; + assert hasTests -> expectedTestOutputs != null; - runCommand "run-buildRustCrate-${crateName}-test" { - nativeBuildInputs = [ crate ]; - } (if !hasTests then '' - ${lib.concatMapStringsSep "\n" (binary: + runCommand "run-buildRustCrate-${crateName}-test" { nativeBuildInputs = [ crate ]; } ( + if !hasTests then + '' + ${lib.concatMapStringsSep "\n" ( + binary: # Can't actually run the binary when cross-compiling (lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "type ") + binary ) binaries} ${lib.optionalString isLib '' - test -e ${crate}/lib/*.rlib || exit 1 - ${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "test -x "} \ - ${libTestBinary}/bin/run-test-${crateName} + test -e ${crate}/lib/*.rlib || exit 1 + ${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "test -x "} \ + ${libTestBinary}/bin/run-test-${crateName} ''} touch $out - '' else if stdenv.hostPlatform == stdenv.buildPlatform then '' + '' + else if stdenv.hostPlatform == stdenv.buildPlatform then + '' for file in ${crate}/tests/*; do $file 2>&1 >> $out done set -e - ${lib.concatMapStringsSep "\n" (o: "grep '${o}' $out || { echo 'output \"${o}\" not found in:'; cat $out; exit 23; }") expectedTestOutputs} - '' else '' + ${lib.concatMapStringsSep "\n" ( + o: "grep '${o}' $out || { echo 'output \"${o}\" not found in:'; cat $out; exit 23; }" + ) expectedTestOutputs} + '' + else + '' for file in ${crate}/tests/*; do test -x "$file" done touch "$out" '' - ); + ); - /* Returns a derivation that asserts that the crate specified by `crateArgs` - has the specified files as output. + /* + Returns a derivation that asserts that the crate specified by `crateArgs` + has the specified files as output. - `name` is used as part of the derivation name that performs the checking. + `name` is used as part of the derivation name that performs the checking. - `crateArgs` is passed to `mkHostCrate` to build the crate with `buildRustCrate`. + `crateArgs` is passed to `mkHostCrate` to build the crate with `buildRustCrate`. - `expectedFiles` contains a list of expected file paths in the output. E.g. - `[ "./bin/my_binary" ]`. + `expectedFiles` contains a list of expected file paths in the output. E.g. + `[ "./bin/my_binary" ]`. - `output` specifies the name of the output to use. By default, the default - output is used but e.g. `output = "lib";` will cause the lib output - to be checked instead. You do not need to specify any directories. - */ - assertOutputs = { name, crateArgs, expectedFiles, output? null }: - assert (builtins.isString name); - assert (builtins.isAttrs crateArgs); - assert (builtins.isList expectedFiles); + `output` specifies the name of the output to use. By default, the default + output is used but e.g. `output = "lib";` will cause the lib output + to be checked instead. You do not need to specify any directories. + */ + assertOutputs = + { + name, + crateArgs, + expectedFiles, + output ? null, + }: + assert (builtins.isString name); + assert (builtins.isAttrs crateArgs); + assert (builtins.isList expectedFiles); - let - crate = mkHostCrate (builtins.removeAttrs crateArgs ["expectedTestOutput"]); - crateOutput = if output == null then crate else crate."${output}"; - expectedFilesFile = writeTextFile { - name = "expected-files-${name}"; - text = - let sorted = builtins.sort (a: b: a "$actualFiles" - diff -q ${expectedFilesFile} "$actualFiles" > /dev/null || { - echo -e "\033[0;1;31mERROR: Difference in expected output files in ${crateOutput} \033[0m" >&2 - echo === Got: - sed -e 's/^/ /' $actualFiles - echo === Expected: - sed -e 's/^/ /' ${expectedFilesFile} - echo === Diff: - diff -u ${expectedFilesFile} $actualFiles |\ - tail -n +3 |\ - sed -e 's/^/ /' - exit 1 - } - touch $out - '') - ; + | sed -E -e 's/-[0-9a-fA-F]{10}\.rlib/-HASH.rlib/g' \ + > "$actualFiles" + diff -q ${expectedFilesFile} "$actualFiles" > /dev/null || { + echo -e "\033[0;1;31mERROR: Difference in expected output files in ${crateOutput} \033[0m" >&2 + echo === Got: + sed -e 's/^/ /' $actualFiles + echo === Expected: + sed -e 's/^/ /' ${expectedFilesFile} + echo === Diff: + diff -u ${expectedFilesFile} $actualFiles |\ + tail -n +3 |\ + sed -e 's/^/ /' + exit 1 + } + touch $out + '' + ); - in rec { +in +rec { - tests = let - cases = rec { - libPath = { libPath = "src/my_lib.rs"; src = mkLib "src/my_lib.rs"; }; - srcLib = { src = mkLib "src/lib.rs"; }; - - # This used to be supported by cargo but as of 1.40.0 I can't make it work like that with just cargo anymore. - # This might be a regression or deprecated thing they finally removed… - # customLibName = { libName = "test_lib"; src = mkLib "src/test_lib.rs"; }; - # rustLibTestsCustomLibName = { - # libName = "test_lib"; - # src = mkTestFile "src/test_lib.rs" "foo"; - # buildTests = true; - # expectedTestOutputs = [ "test foo ... ok" ]; - # }; - - customLibNameAndLibPath = { libName = "test_lib"; libPath = "src/best-lib.rs"; src = mkLib "src/best-lib.rs"; }; - crateBinWithPath = { crateBin = [{ name = "test_binary1"; path = "src/foobar.rs"; }]; src = mkBin "src/foobar.rs"; }; - crateBinNoPath1 = { crateBin = [{ name = "my-binary2"; }]; src = mkBin "src/my_binary2.rs"; }; - crateBinNoPath2 = { - crateBin = [{ name = "my-binary3"; } { name = "my-binary4"; }]; - src = symlinkJoin { - name = "buildRustCrateMultipleBinariesCase"; - paths = [ (mkBin "src/bin/my_binary3.rs") (mkBin "src/bin/my_binary4.rs") ]; + tests = + let + cases = rec { + libPath = { + libPath = "src/my_lib.rs"; + src = mkLib "src/my_lib.rs"; }; - }; - crateBinNoPath3 = { crateBin = [{ name = "my-binary5"; }]; src = mkBin "src/bin/main.rs"; }; - crateBinNoPath4 = { crateBin = [{ name = "my-binary6"; }]; src = mkBin "src/main.rs";}; - crateBinRename1 = { - crateBin = [{ name = "my-binary-rename1"; }]; - src = mkBinExtern "src/main.rs" "foo_renamed"; - dependencies = [ (mkHostCrate { crateName = "foo"; src = mkLib "src/lib.rs"; }) ]; - crateRenames = { "foo" = "foo_renamed"; }; - }; - crateBinRename2 = { - crateBin = [{ name = "my-binary-rename2"; }]; - src = mkBinExtern "src/main.rs" "foo_renamed"; - dependencies = [ (mkHostCrate { crateName = "foo"; libName = "foolib"; src = mkLib "src/lib.rs"; }) ]; - crateRenames = { "foo" = "foo_renamed"; }; - }; - crateBinRenameMultiVersion = let - crateWithVersion = version: mkHostCrate { - crateName = "my_lib"; - inherit version; - src = mkFile "src/lib.rs" '' - pub const version: &str = "${version}"; - ''; + srcLib = { + src = mkLib "src/lib.rs"; }; - depCrate01 = crateWithVersion "0.1.2"; - depCrate02 = crateWithVersion "0.2.1"; - in { - crateName = "my_bin"; - src = symlinkJoin { - name = "my_bin_src"; - paths = [ - (mkFile "src/main.rs" '' - #[test] - fn my_lib_01() { assert_eq!(lib01::version, "0.1.2"); } - #[test] - fn my_lib_02() { assert_eq!(lib02::version, "0.2.1"); } + # This used to be supported by cargo but as of 1.40.0 I can't make it work like that with just cargo anymore. + # This might be a regression or deprecated thing they finally removed… + # customLibName = { libName = "test_lib"; src = mkLib "src/test_lib.rs"; }; + # rustLibTestsCustomLibName = { + # libName = "test_lib"; + # src = mkTestFile "src/test_lib.rs" "foo"; + # buildTests = true; + # expectedTestOutputs = [ "test foo ... ok" ]; + # }; - fn main() { } - '') - ]; + customLibNameAndLibPath = { + libName = "test_lib"; + libPath = "src/best-lib.rs"; + src = mkLib "src/best-lib.rs"; }; - dependencies = [ depCrate01 depCrate02 ]; - crateRenames = { - "my_lib" = [ + crateBinWithPath = { + crateBin = [ { - version = "0.1.2"; - rename = "lib01"; - } - { - version = "0.2.1"; - rename = "lib02"; + name = "test_binary1"; + path = "src/foobar.rs"; } ]; + src = mkBin "src/foobar.rs"; }; - buildTests = true; - expectedTestOutputs = [ - "test my_lib_01 ... ok" - "test my_lib_02 ... ok" - ]; - }; - rustLibTestsDefault = { - src = mkTestFile "src/lib.rs" "baz"; - buildTests = true; - expectedTestOutputs = [ "test baz ... ok" ]; - }; - rustLibTestsCustomLibPath = { - libPath = "src/test_path.rs"; - src = mkTestFile "src/test_path.rs" "bar"; - buildTests = true; - expectedTestOutputs = [ "test bar ... ok" ]; - }; - rustLibTestsCustomLibPathWithTests = { - libPath = "src/test_path.rs"; - src = symlinkJoin { - name = "rust-lib-tests-custom-lib-path-with-tests-dir"; - paths = [ - (mkTestFile "src/test_path.rs" "bar") - (mkTestFile "tests/something.rs" "something") + crateBinNoPath1 = { + crateBin = [ { name = "my-binary2"; } ]; + src = mkBin "src/my_binary2.rs"; + }; + crateBinNoPath2 = { + crateBin = [ + { name = "my-binary3"; } + { name = "my-binary4"; } ]; - }; - buildTests = true; - expectedTestOutputs = [ - "test bar ... ok" - "test something ... ok" - ]; - }; - rustBinTestsCombined = { - src = symlinkJoin { - name = "rust-bin-tests-combined"; - paths = [ - (mkTestFileWithMain "src/main.rs" "src_main") - (mkTestFile "tests/foo.rs" "tests_foo") - (mkTestFile "tests/bar.rs" "tests_bar") - ]; - }; - buildTests = true; - expectedTestOutputs = [ - "test src_main ... ok" - "test tests_foo ... ok" - "test tests_bar ... ok" - ]; - }; - rustBinTestsSubdirCombined = { - src = symlinkJoin { - name = "rust-bin-tests-subdir-combined"; - paths = [ - (mkTestFileWithMain "src/main.rs" "src_main") - (mkTestFile "tests/foo/main.rs" "tests_foo") - (mkTestFile "tests/bar/main.rs" "tests_bar") - ]; - }; - buildTests = true; - expectedTestOutputs = [ - "test src_main ... ok" - "test tests_foo ... ok" - "test tests_bar ... ok" - ]; - }; - linkAgainstRlibCrate = { - crateName = "foo"; - src = mkFile "src/main.rs" '' - extern crate somerlib; - fn main() {} - ''; - dependencies = [ - (mkHostCrate { - crateName = "somerlib"; - type = [ "rlib" ]; - src = mkLib "src/lib.rs"; - }) - ]; - }; - buildScriptDeps = let - depCrate = buildRustCrate: boolVal: mkCrate buildRustCrate { - crateName = "bar"; - src = mkFile "src/lib.rs" '' - pub const baz: bool = ${boolVal}; - ''; - }; - in { - crateName = "foo"; - src = symlinkJoin { - name = "build-script-and-main"; - paths = [ - (mkFile "src/main.rs" '' - extern crate bar; - #[cfg(test)] - #[test] - fn baz_false() { assert!(!bar::baz); } - fn main() { } - '') - (mkFile "build.rs" '' - extern crate bar; - fn main() { assert!(bar::baz); } - '') - ]; - }; - buildDependencies = [ (depCrate buildPackages.buildRustCrate "true") ]; - dependencies = [ (depCrate buildRustCrate "false") ]; - buildTests = true; - expectedTestOutputs = [ "test baz_false ... ok" ]; - }; - buildScriptFeatureEnv = { - crateName = "build-script-feature-env"; - features = [ "some-feature" "crate/another_feature" ]; - src = symlinkJoin { - name = "build-script-feature-env"; - paths = [ - (mkFile "src/main.rs" '' - #[cfg(test)] - #[test] - fn feature_not_visible() { - assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_err()); - assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none()); - } - fn main() {} - '') - (mkFile "build.rs" '' - fn main() { - assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_ok()); - assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none()); - } - '') - ]; - }; - buildTests = true; - expectedTestOutputs = [ "test feature_not_visible ... ok" ]; - }; - # Regression test for https://github.com/NixOS/nixpkgs/pull/88054 - # Build script output should be rewritten as valid env vars. - buildScriptIncludeDirDeps = let - depCrate = mkHostCrate { - crateName = "bar"; src = symlinkJoin { - name = "build-script-and-include-dir-bar"; + name = "buildRustCrateMultipleBinariesCase"; paths = [ - (mkFile "src/lib.rs" '' - fn main() { } + (mkBin "src/bin/my_binary3.rs") + (mkBin "src/bin/my_binary4.rs") + ]; + }; + }; + crateBinNoPath3 = { + crateBin = [ { name = "my-binary5"; } ]; + src = mkBin "src/bin/main.rs"; + }; + crateBinNoPath4 = { + crateBin = [ { name = "my-binary6"; } ]; + src = mkBin "src/main.rs"; + }; + crateBinRename1 = { + crateBin = [ { name = "my-binary-rename1"; } ]; + src = mkBinExtern "src/main.rs" "foo_renamed"; + dependencies = [ + (mkHostCrate { + crateName = "foo"; + src = mkLib "src/lib.rs"; + }) + ]; + crateRenames = { + "foo" = "foo_renamed"; + }; + }; + crateBinRename2 = { + crateBin = [ { name = "my-binary-rename2"; } ]; + src = mkBinExtern "src/main.rs" "foo_renamed"; + dependencies = [ + (mkHostCrate { + crateName = "foo"; + libName = "foolib"; + src = mkLib "src/lib.rs"; + }) + ]; + crateRenames = { + "foo" = "foo_renamed"; + }; + }; + crateBinRenameMultiVersion = + let + crateWithVersion = + version: + mkHostCrate { + crateName = "my_lib"; + inherit version; + src = mkFile "src/lib.rs" '' + pub const version: &str = "${version}"; + ''; + }; + depCrate01 = crateWithVersion "0.1.2"; + depCrate02 = crateWithVersion "0.2.1"; + in + { + crateName = "my_bin"; + src = symlinkJoin { + name = "my_bin_src"; + paths = [ + (mkFile "src/main.rs" '' + #[test] + fn my_lib_01() { assert_eq!(lib01::version, "0.1.2"); } + + #[test] + fn my_lib_02() { assert_eq!(lib02::version, "0.2.1"); } + + fn main() { } + '') + ]; + }; + dependencies = [ + depCrate01 + depCrate02 + ]; + crateRenames = { + "my_lib" = [ + { + version = "0.1.2"; + rename = "lib01"; + } + { + version = "0.2.1"; + rename = "lib02"; + } + ]; + }; + buildTests = true; + expectedTestOutputs = [ + "test my_lib_01 ... ok" + "test my_lib_02 ... ok" + ]; + }; + rustLibTestsDefault = { + src = mkTestFile "src/lib.rs" "baz"; + buildTests = true; + expectedTestOutputs = [ "test baz ... ok" ]; + }; + rustLibTestsCustomLibPath = { + libPath = "src/test_path.rs"; + src = mkTestFile "src/test_path.rs" "bar"; + buildTests = true; + expectedTestOutputs = [ "test bar ... ok" ]; + }; + rustLibTestsCustomLibPathWithTests = { + libPath = "src/test_path.rs"; + src = symlinkJoin { + name = "rust-lib-tests-custom-lib-path-with-tests-dir"; + paths = [ + (mkTestFile "src/test_path.rs" "bar") + (mkTestFile "tests/something.rs" "something") + ]; + }; + buildTests = true; + expectedTestOutputs = [ + "test bar ... ok" + "test something ... ok" + ]; + }; + rustBinTestsCombined = { + src = symlinkJoin { + name = "rust-bin-tests-combined"; + paths = [ + (mkTestFileWithMain "src/main.rs" "src_main") + (mkTestFile "tests/foo.rs" "tests_foo") + (mkTestFile "tests/bar.rs" "tests_bar") + ]; + }; + buildTests = true; + expectedTestOutputs = [ + "test src_main ... ok" + "test tests_foo ... ok" + "test tests_bar ... ok" + ]; + }; + rustBinTestsSubdirCombined = { + src = symlinkJoin { + name = "rust-bin-tests-subdir-combined"; + paths = [ + (mkTestFileWithMain "src/main.rs" "src_main") + (mkTestFile "tests/foo/main.rs" "tests_foo") + (mkTestFile "tests/bar/main.rs" "tests_bar") + ]; + }; + buildTests = true; + expectedTestOutputs = [ + "test src_main ... ok" + "test tests_foo ... ok" + "test tests_bar ... ok" + ]; + }; + linkAgainstRlibCrate = { + crateName = "foo"; + src = mkFile "src/main.rs" '' + extern crate somerlib; + fn main() {} + ''; + dependencies = [ + (mkHostCrate { + crateName = "somerlib"; + type = [ "rlib" ]; + src = mkLib "src/lib.rs"; + }) + ]; + }; + buildScriptDeps = + let + depCrate = + buildRustCrate: boolVal: + mkCrate buildRustCrate { + crateName = "bar"; + src = mkFile "src/lib.rs" '' + pub const baz: bool = ${boolVal}; + ''; + }; + in + { + crateName = "foo"; + src = symlinkJoin { + name = "build-script-and-main"; + paths = [ + (mkFile "src/main.rs" '' + extern crate bar; + #[cfg(test)] + #[test] + fn baz_false() { assert!(!bar::baz); } + fn main() { } + '') + (mkFile "build.rs" '' + extern crate bar; + fn main() { assert!(bar::baz); } + '') + ]; + }; + buildDependencies = [ (depCrate buildPackages.buildRustCrate "true") ]; + dependencies = [ (depCrate buildRustCrate "false") ]; + buildTests = true; + expectedTestOutputs = [ "test baz_false ... ok" ]; + }; + buildScriptFeatureEnv = { + crateName = "build-script-feature-env"; + features = [ + "some-feature" + "crate/another_feature" + ]; + src = symlinkJoin { + name = "build-script-feature-env"; + paths = [ + (mkFile "src/main.rs" '' + #[cfg(test)] + #[test] + fn feature_not_visible() { + assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_err()); + assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none()); + } + fn main() {} '') - (mkFile "build.rs" '' - use std::path::PathBuf; - fn main() { println!("cargo:include-dir={}/src", std::env::current_dir().unwrap_or(PathBuf::from(".")).to_str().unwrap()); } + (mkFile "build.rs" '' + fn main() { + assert!(std::env::var("CARGO_FEATURE_SOME_FEATURE").is_ok()); + assert!(option_env!("CARGO_FEATURE_SOME_FEATURE").is_none()); + } + '') + ]; + }; + buildTests = true; + expectedTestOutputs = [ "test feature_not_visible ... ok" ]; + }; + # Regression test for https://github.com/NixOS/nixpkgs/pull/88054 + # Build script output should be rewritten as valid env vars. + buildScriptIncludeDirDeps = + let + depCrate = mkHostCrate { + crateName = "bar"; + src = symlinkJoin { + name = "build-script-and-include-dir-bar"; + paths = [ + (mkFile "src/lib.rs" '' + fn main() { } + '') + (mkFile "build.rs" '' + use std::path::PathBuf; + fn main() { println!("cargo:include-dir={}/src", std::env::current_dir().unwrap_or(PathBuf::from(".")).to_str().unwrap()); } + '') + ]; + }; + }; + in + { + crateName = "foo"; + src = symlinkJoin { + name = "build-script-and-include-dir-foo"; + paths = [ + (mkFile "src/main.rs" '' + fn main() { } + '') + (mkFile "build.rs" '' + fn main() { assert!(std::env::var_os("DEP_BAR_INCLUDE_DIR").is_some()); } + '') + ]; + }; + buildDependencies = [ depCrate ]; + dependencies = [ depCrate ]; + }; + # Regression test for https://github.com/NixOS/nixpkgs/issues/74071 + # Whenevever a build.rs file is generating files those should not be overlayed onto the actual source dir + buildRsOutDirOverlay = { + src = symlinkJoin { + name = "buildrs-out-dir-overlay"; + paths = [ + (mkLib "src/lib.rs") + (mkFile "build.rs" '' + use std::env; + use std::ffi::OsString; + use std::fs; + use std::path::Path; + fn main() { + let out_dir = env::var_os("OUT_DIR").expect("OUT_DIR not set"); + let out_file = Path::new(&out_dir).join("lib.rs"); + fs::write(out_file, "invalid rust code!").expect("failed to write lib.rs"); + } '') ]; }; }; - in { - crateName = "foo"; - src = symlinkJoin { - name = "build-script-and-include-dir-foo"; - paths = [ - (mkFile "src/main.rs" '' - fn main() { } - '') - (mkFile "build.rs" '' - fn main() { assert!(std::env::var_os("DEP_BAR_INCLUDE_DIR").is_some()); } - '') - ]; - }; - buildDependencies = [ depCrate ]; - dependencies = [ depCrate ]; - }; - # Regression test for https://github.com/NixOS/nixpkgs/issues/74071 - # Whenevever a build.rs file is generating files those should not be overlayed onto the actual source dir - buildRsOutDirOverlay = { - src = symlinkJoin { - name = "buildrs-out-dir-overlay"; - paths = [ - (mkLib "src/lib.rs") - (mkFile "build.rs" '' - use std::env; - use std::ffi::OsString; - use std::fs; - use std::path::Path; - fn main() { - let out_dir = env::var_os("OUT_DIR").expect("OUT_DIR not set"); - let out_file = Path::new(&out_dir).join("lib.rs"); - fs::write(out_file, "invalid rust code!").expect("failed to write lib.rs"); - } - '') - ]; - }; - }; - # Regression test for https://github.com/NixOS/nixpkgs/pull/83379 - # link flag order should be preserved - linkOrder = { - src = symlinkJoin { - name = "buildrs-out-dir-overlay"; - paths = [ - (mkFile "build.rs" '' - fn main() { - // in the other order, linkage will fail - println!("cargo:rustc-link-lib=b"); - println!("cargo:rustc-link-lib=a"); - } - '') - (mkFile "src/main.rs" '' - extern "C" { - fn hello_world(); - } - fn main() { - unsafe { - hello_world(); + # Regression test for https://github.com/NixOS/nixpkgs/pull/83379 + # link flag order should be preserved + linkOrder = { + src = symlinkJoin { + name = "buildrs-out-dir-overlay"; + paths = [ + (mkFile "build.rs" '' + fn main() { + // in the other order, linkage will fail + println!("cargo:rustc-link-lib=b"); + println!("cargo:rustc-link-lib=a"); } - } - '') + '') + (mkFile "src/main.rs" '' + extern "C" { + fn hello_world(); + } + fn main() { + unsafe { + hello_world(); + } + } + '') + ]; + }; + buildInputs = + let + compile = + name: text: + let + src = writeTextFile { + name = "${name}-src.c"; + inherit text; + }; + in + runCommandCC name { } '' + mkdir -p $out/lib + # Note: On darwin (which defaults to clang) we have to add + # `-undefined dynamic_lookup` as otherwise the compilation fails. + $CC -shared \ + ${lib.optionalString stdenv.isDarwin "-undefined dynamic_lookup"} \ + -o $out/lib/${name}${stdenv.hostPlatform.extensions.sharedLibrary} ${src} + ''; + b = compile "libb" '' + #include + + void hello(); + + void hello_world() { + hello(); + printf(" world!\n"); + } + ''; + a = compile "liba" '' + #include + + void hello() { + printf("hello"); + } + ''; + in + [ + a + b + ]; + }; + rustCargoTomlInSubDir = { + # The "workspace_member" can be set to the sub directory with the crate to build. + # By default ".", meaning the top level directory is assumed. + # Using null will trigger a search. + workspace_member = null; + src = symlinkJoin rec { + name = "find-cargo-toml"; + paths = [ + (mkCargoToml { name = "ignoreMe"; }) + (mkTestFileWithMain "src/main.rs" "ignore_main") + + (mkCargoToml { + name = "rustCargoTomlInSubDir"; + path = "subdir/Cargo.toml"; + }) + (mkTestFileWithMain "subdir/src/main.rs" "src_main") + (mkTestFile "subdir/tests/foo/main.rs" "tests_foo") + (mkTestFile "subdir/tests/bar/main.rs" "tests_bar") + ]; + }; + buildTests = true; + expectedTestOutputs = [ + "test src_main ... ok" + "test tests_foo ... ok" + "test tests_bar ... ok" ]; }; - buildInputs = let - compile = name: text: let - src = writeTextFile { - name = "${name}-src.c"; - inherit text; - }; - in runCommandCC name {} '' - mkdir -p $out/lib - # Note: On darwin (which defaults to clang) we have to add - # `-undefined dynamic_lookup` as otherwise the compilation fails. - $CC -shared \ - ${lib.optionalString stdenv.isDarwin "-undefined dynamic_lookup"} \ - -o $out/lib/${name}${stdenv.hostPlatform.extensions.sharedLibrary} ${src} - ''; - b = compile "libb" '' - #include - void hello(); - - void hello_world() { - hello(); - printf(" world!\n"); - } - ''; - a = compile "liba" '' - #include - - void hello() { - printf("hello"); - } - ''; - in [ a b ]; + rustCargoTomlInTopDir = + let + withoutCargoTomlSearch = builtins.removeAttrs rustCargoTomlInSubDir [ "workspace_member" ]; + in + withoutCargoTomlSearch // { expectedTestOutputs = [ "test ignore_main ... ok" ]; }; + procMacroInPrelude = { + procMacro = true; + edition = "2018"; + src = symlinkJoin { + name = "proc-macro-in-prelude"; + paths = [ + (mkFile "src/lib.rs" '' + use proc_macro::TokenTree; + '') + ]; + }; + }; }; - rustCargoTomlInSubDir = { - # The "workspace_member" can be set to the sub directory with the crate to build. - # By default ".", meaning the top level directory is assumed. - # Using null will trigger a search. - workspace_member = null; - src = symlinkJoin rec { - name = "find-cargo-toml"; - paths = [ - (mkCargoToml { name = "ignoreMe"; }) - (mkTestFileWithMain "src/main.rs" "ignore_main") + brotliCrates = (callPackage ./brotli-crates.nix { }); + rcgenCrates = callPackage ./rcgen-crates.nix { + # Suppress deprecation warning + buildRustCrate = null; + }; + tests = lib.mapAttrs ( + key: value: mkTest (value // lib.optionalAttrs (!value ? crateName) { crateName = key; }) + ) cases; + in + tests + // rec { - (mkCargoToml { name = "rustCargoTomlInSubDir"; path = "subdir/Cargo.toml"; }) - (mkTestFileWithMain "subdir/src/main.rs" "src_main") - (mkTestFile "subdir/tests/foo/main.rs" "tests_foo") - (mkTestFile "subdir/tests/bar/main.rs" "tests_bar") + crateBinWithPathOutputs = assertOutputs { + name = "crateBinWithPath"; + crateArgs = { + crateBin = [ + { + name = "test_binary1"; + path = "src/foobar.rs"; + } ]; + src = mkBin "src/foobar.rs"; }; - buildTests = true; - expectedTestOutputs = [ - "test src_main ... ok" - "test tests_foo ... ok" - "test tests_bar ... ok" + expectedFiles = [ "./bin/test_binary1" ]; + }; + + crateBinWithPathOutputsDebug = assertOutputs { + name = "crateBinWithPath"; + crateArgs = { + release = false; + crateBin = [ + { + name = "test_binary1"; + path = "src/foobar.rs"; + } + ]; + src = mkBin "src/foobar.rs"; + }; + expectedFiles = + [ "./bin/test_binary1" ] + ++ lib.optionals stdenv.isDarwin [ + # On Darwin, the debug symbols are in a separate directory. + "./bin/test_binary1.dSYM/Contents/Info.plist" + "./bin/test_binary1.dSYM/Contents/Resources/DWARF/test_binary1" + ]; + }; + + crateBinNoPath1Outputs = assertOutputs { + name = "crateBinNoPath1"; + crateArgs = { + crateBin = [ { name = "my-binary2"; } ]; + src = mkBin "src/my_binary2.rs"; + }; + expectedFiles = [ "./bin/my-binary2" ]; + }; + + crateLibOutputs = assertOutputs { + name = "crateLib"; + output = "lib"; + crateArgs = { + libName = "test_lib"; + type = [ "rlib" ]; + libPath = "src/lib.rs"; + src = mkLib "src/lib.rs"; + }; + expectedFiles = [ + "./nix-support/propagated-build-inputs" + "./lib/libtest_lib-HASH.rlib" + "./lib/link" ]; }; - rustCargoTomlInTopDir = - let - withoutCargoTomlSearch = builtins.removeAttrs rustCargoTomlInSubDir [ "workspace_member" ]; - in - withoutCargoTomlSearch // { - expectedTestOutputs = [ - "test ignore_main ... ok" - ]; - }; - procMacroInPrelude = { - procMacro = true; - edition = "2018"; - src = symlinkJoin { - name = "proc-macro-in-prelude"; - paths = [ - (mkFile "src/lib.rs" '' - use proc_macro::TokenTree; - '') - ]; + crateLibOutputsDebug = assertOutputs { + name = "crateLib"; + output = "lib"; + crateArgs = { + release = false; + libName = "test_lib"; + type = [ "rlib" ]; + libPath = "src/lib.rs"; + src = mkLib "src/lib.rs"; }; + expectedFiles = [ + "./nix-support/propagated-build-inputs" + "./lib/libtest_lib-HASH.rlib" + "./lib/link" + ]; }; - }; - brotliCrates = (callPackage ./brotli-crates.nix {}); - rcgenCrates = callPackage ./rcgen-crates.nix { - # Suppress deprecation warning - buildRustCrate = null; - }; - tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases; - in tests // rec { - crateBinWithPathOutputs = assertOutputs { - name="crateBinWithPath"; - crateArgs = { - crateBin = [{ name = "test_binary1"; path = "src/foobar.rs"; }]; - src = mkBin "src/foobar.rs"; - }; - expectedFiles = [ - "./bin/test_binary1" - ]; + brotliTest = + let + pkg = brotliCrates.brotli_2_5_0 { }; + in + runCommand "run-brotli-test-cmd" { nativeBuildInputs = [ pkg ]; } ( + if stdenv.hostPlatform == stdenv.buildPlatform then + '' + ${pkg}/bin/brotli -c ${pkg}/bin/brotli > /dev/null && touch $out + '' + else + '' + test -x '${pkg}/bin/brotli' && touch $out + '' + ); + allocNoStdLibTest = + let + pkg = brotliCrates.alloc_no_stdlib_1_3_0 { }; + in + runCommand "run-alloc-no-stdlib-test-cmd" { nativeBuildInputs = [ pkg ]; } '' + test -e ${pkg}/bin/example && touch $out + ''; + brotliDecompressorTest = + let + pkg = brotliCrates.brotli_decompressor_1_3_1 { }; + in + runCommand "run-brotli-decompressor-test-cmd" { nativeBuildInputs = [ pkg ]; } '' + test -e ${pkg}/bin/brotli-decompressor && touch $out + ''; + + rcgenTest = + let + pkg = rcgenCrates.rootCrate.build; + in + runCommand "run-rcgen-test-cmd" { nativeBuildInputs = [ pkg ]; } ( + if stdenv.hostPlatform == stdenv.buildPlatform then + '' + ${pkg}/bin/rcgen && touch $out + '' + else + '' + test -x '${pkg}/bin/rcgen' && touch $out + '' + ); }; - - crateBinWithPathOutputsDebug = assertOutputs { - name="crateBinWithPath"; - crateArgs = { - release = false; - crateBin = [{ name = "test_binary1"; path = "src/foobar.rs"; }]; - src = mkBin "src/foobar.rs"; - }; - expectedFiles = [ - "./bin/test_binary1" - ] ++ lib.optionals stdenv.isDarwin [ - # On Darwin, the debug symbols are in a separate directory. - "./bin/test_binary1.dSYM/Contents/Info.plist" - "./bin/test_binary1.dSYM/Contents/Resources/DWARF/test_binary1" - ]; - }; - - crateBinNoPath1Outputs = assertOutputs { - name="crateBinNoPath1"; - crateArgs = { - crateBin = [{ name = "my-binary2"; }]; - src = mkBin "src/my_binary2.rs"; - }; - expectedFiles = [ - "./bin/my-binary2" - ]; - }; - - crateLibOutputs = assertOutputs { - name="crateLib"; - output="lib"; - crateArgs = { - libName = "test_lib"; - type = [ "rlib" ]; - libPath = "src/lib.rs"; - src = mkLib "src/lib.rs"; - }; - expectedFiles = [ - "./nix-support/propagated-build-inputs" - "./lib/libtest_lib-HASH.rlib" - "./lib/link" - ]; - }; - - crateLibOutputsDebug = assertOutputs { - name="crateLib"; - output="lib"; - crateArgs = { - release = false; - libName = "test_lib"; - type = [ "rlib" ]; - libPath = "src/lib.rs"; - src = mkLib "src/lib.rs"; - }; - expectedFiles = [ - "./nix-support/propagated-build-inputs" - "./lib/libtest_lib-HASH.rlib" - "./lib/link" - ]; - }; - - brotliTest = let - pkg = brotliCrates.brotli_2_5_0 {}; - in runCommand "run-brotli-test-cmd" { - nativeBuildInputs = [ pkg ]; - } (if stdenv.hostPlatform == stdenv.buildPlatform then '' - ${pkg}/bin/brotli -c ${pkg}/bin/brotli > /dev/null && touch $out - '' else '' - test -x '${pkg}/bin/brotli' && touch $out - ''); - allocNoStdLibTest = let - pkg = brotliCrates.alloc_no_stdlib_1_3_0 {}; - in runCommand "run-alloc-no-stdlib-test-cmd" { - nativeBuildInputs = [ pkg ]; - } '' - test -e ${pkg}/bin/example && touch $out - ''; - brotliDecompressorTest = let - pkg = brotliCrates.brotli_decompressor_1_3_1 {}; - in runCommand "run-brotli-decompressor-test-cmd" { - nativeBuildInputs = [ pkg ]; - } '' - test -e ${pkg}/bin/brotli-decompressor && touch $out - ''; - - rcgenTest = let - pkg = rcgenCrates.rootCrate.build; - in runCommand "run-rcgen-test-cmd" { - nativeBuildInputs = [ pkg ]; - } (if stdenv.hostPlatform == stdenv.buildPlatform then '' - ${pkg}/bin/rcgen && touch $out - '' else '' - test -x '${pkg}/bin/rcgen' && touch $out - ''); - }; test = releaseTools.aggregate { name = "buildRustCrate-tests"; meta = { diff --git a/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix b/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix index ed273c0..274abe8 100644 --- a/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix +++ b/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix @@ -1,30 +1,35 @@ - # This file was @generated by crate2nix 0.10.0 with the command: # "generate" # See https://github.com/kolloch/crate2nix for more info. -{ nixpkgs ? -, pkgs ? import nixpkgs { config = {}; } -, lib ? pkgs.lib -, stdenv ? pkgs.stdenv -, buildRustCrateForPkgs ? if buildRustCrate != null - then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate) - else pkgs: pkgs.buildRustCrate +{ + nixpkgs ? , + pkgs ? import nixpkgs { config = { }; }, + lib ? pkgs.lib, + stdenv ? pkgs.stdenv, + buildRustCrateForPkgs ? + if buildRustCrate != null then + lib.warn + "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." + (_: buildRustCrate) + else + pkgs: pkgs.buildRustCrate, # Deprecated -, buildRustCrate ? null + buildRustCrate ? null, # This is used as the `crateOverrides` argument for `buildRustCrate`. -, defaultCrateOverrides ? pkgs.defaultCrateOverrides + defaultCrateOverrides ? pkgs.defaultCrateOverrides, # The features to enable for the root_crate or the workspace_members. -, rootFeatures ? [ "default" ] + rootFeatures ? [ "default" ], # If true, throw errors instead of issueing deprecation warnings. -, strictDeprecation ? false + strictDeprecation ? false, # Used for conditional compilation based on CPU feature detection. -, targetFeatures ? [] + targetFeatures ? [ ], # Whether to perform release builds: longer compile times, faster binaries. -, release ? true + release ? true, # Additional crate2nix configuration if it exists. -, crateConfig - ? lib.optionalAttrs (builtins.pathExists ./crate-config.nix) (pkgs.callPackage ./crate-config.nix {}) + crateConfig ? lib.optionalAttrs (builtins.pathExists ./crate-config.nix) ( + pkgs.callPackage ./crate-config.nix { } + ), }: rec { @@ -37,9 +42,7 @@ rec { # Use this attribute to refer to the derivation building your root crate package. # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }. - build = internal.buildRustCrateWithFeatures { - inherit packageId; - }; + build = internal.buildRustCrateWithFeatures { inherit packageId; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! @@ -51,9 +54,7 @@ rec { workspaceMembers = { "rcgen" = rec { packageId = "rcgen"; - build = internal.buildRustCrateWithFeatures { - packageId = "rcgen"; - }; + build = internal.buildRustCrateWithFeatures { packageId = "rcgen"; }; # Debug support which might change between releases. # File a bug if you depend on any for non-debug work! @@ -63,10 +64,12 @@ rec { # A derivation that joins the outputs of all workspace members together. allWorkspaceMembers = pkgs.symlinkJoin { - name = "all-workspace-members"; - paths = - let members = builtins.attrValues workspaceMembers; - in builtins.map (m: m.build) members; + name = "all-workspace-members"; + paths = + let + members = builtins.attrValues workspaceMembers; + in + builtins.map (m: m.build) members; }; # @@ -90,9 +93,7 @@ rec { version = "0.3.1"; edition = "2018"; sha256 = "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh"; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "asn1-rs-derive"; @@ -128,7 +129,11 @@ rec { name = "time"; packageId = "time"; optional = true; - features = [ "macros" "parsing" "formatting" ]; + features = [ + "macros" + "parsing" + "formatting" + ]; } ]; features = { @@ -142,7 +147,12 @@ rec { "serialize" = [ "cookie-factory" ]; "time" = [ "dep:time" ]; }; - resolvedDefaultFeatures = [ "datetime" "default" "std" "time" ]; + resolvedDefaultFeatures = [ + "datetime" + "default" + "std" + "time" + ]; }; "asn1-rs-derive" = rec { crateName = "asn1-rs-derive"; @@ -150,9 +160,7 @@ rec { edition = "2018"; sha256 = "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv"; procMacro = true; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "proc-macro2"; @@ -179,9 +187,7 @@ rec { edition = "2018"; sha256 = "1va27bn7qxqp4wanzjlkagnynv6jnrhnwmcky2ahzb1r405p6xr7"; procMacro = true; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "proc-macro2"; @@ -203,9 +209,7 @@ rec { version = "0.1.7"; edition = "2015"; sha256 = "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x"; - authors = [ - "Josh Stone " - ]; + authors = [ "Josh Stone " ]; }; "autocfg 1.0.1" = rec { @@ -213,9 +217,7 @@ rec { version = "1.0.1"; edition = "2015"; sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d"; - authors = [ - "Josh Stone " - ]; + authors = [ "Josh Stone " ]; }; "base64" = rec { @@ -230,16 +232,17 @@ rec { features = { "default" = [ "std" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ + "default" + "std" + ]; }; "base64ct" = rec { crateName = "base64ct"; version = "1.1.1"; edition = "2018"; sha256 = "0p4was874qc90q2chm2i14m9mn8zmxjis8vaxihd6a2x4aqxkd76"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; features = { "std" = [ "alloc" ]; }; @@ -249,13 +252,14 @@ rec { version = "1.3.2"; edition = "2018"; sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; features = { "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ + "core" + "compiler_builtins" + ]; }; resolvedDefaultFeatures = [ "default" ]; }; @@ -264,9 +268,7 @@ rec { version = "0.8.1"; edition = "2018"; sha256 = "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik"; - authors = [ - "Jack Lloyd " - ]; + authors = [ "Jack Lloyd " ]; dependencies = [ { name = "botan-sys"; @@ -282,7 +284,10 @@ rec { "no-std" = [ "cstr_core/alloc" ]; "vendored" = [ "botan-sys/vendored" ]; }; - resolvedDefaultFeatures = [ "default" "vendored" ]; + resolvedDefaultFeatures = [ + "default" + "vendored" + ]; }; "botan-src" = rec { crateName = "botan-src"; @@ -300,9 +305,7 @@ rec { version = "0.8.1"; edition = "2015"; sha256 = "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x"; - authors = [ - "Jack Lloyd " - ]; + authors = [ "Jack Lloyd " ]; dependencies = [ { name = "cty"; @@ -320,18 +323,19 @@ rec { "botan-src" = [ "dep:botan-src" ]; "vendored" = [ "botan-src" ]; }; - resolvedDefaultFeatures = [ "botan-src" "default" "vendored" ]; + resolvedDefaultFeatures = [ + "botan-src" + "default" + "vendored" + ]; }; "bumpalo" = rec { crateName = "bumpalo"; version = "3.9.1"; edition = "2018"; sha256 = "1688dv6s0cbj72p9lmll8a02a85dzxvdw2is7pji490zmd35m954"; - authors = [ - "Nick Fitzgerald " - ]; - features = { - }; + authors = [ "Nick Fitzgerald " ]; + features = { }; resolvedDefaultFeatures = [ "default" ]; }; "byteorder" = rec { @@ -339,9 +343,7 @@ rec { version = "1.4.3"; edition = "2018"; sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l"; - authors = [ - "Andrew Gallant " - ]; + authors = [ "Andrew Gallant " ]; features = { "default" = [ "std" ]; }; @@ -350,11 +352,9 @@ rec { crateName = "cc"; version = "1.0.72"; edition = "2018"; - crateBin = []; + crateBin = [ ]; sha256 = "1vl50h2qh0nh0iddzj6gd1pnxnxpvwmbfxc30578c1pajmxi7a92"; - authors = [ - "Alex Crichton " - ]; + authors = [ "Alex Crichton " ]; features = { "jobserver" = [ "dep:jobserver" ]; "parallel" = [ "jobserver" ]; @@ -365,13 +365,14 @@ rec { version = "1.0.0"; edition = "2018"; sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"; - authors = [ - "Alex Crichton " - ]; + authors = [ "Alex Crichton " ]; features = { "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ + "core" + "compiler_builtins" + ]; }; }; "const-oid" = rec { @@ -379,20 +380,15 @@ rec { version = "0.6.2"; edition = "2018"; sha256 = "12vv7csqqjj0x1l5mf51lgqiw76k5c3mb1yzfhfcqysks2j2lvwx"; - authors = [ - "RustCrypto Developers" - ]; - features = { - }; + authors = [ "RustCrypto Developers" ]; + features = { }; }; "crypto-bigint" = rec { crateName = "crypto-bigint"; version = "0.2.11"; edition = "2018"; sha256 = "00qckh65nzb7s7vd60wylw6alxf9g37xh31lirb1qw0l8fxx6fzq"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "generic-array"; @@ -418,16 +414,19 @@ rec { "rlp" = [ "dep:rlp" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "default" "generic-array" "rand" "rand_core" ]; + resolvedDefaultFeatures = [ + "default" + "generic-array" + "rand" + "rand_core" + ]; }; "cty" = rec { crateName = "cty"; version = "0.2.2"; edition = "2015"; sha256 = "0d8z0pbr87wgzqqb2jk5pvj0afzc6d3rb772ach6fijhg6yglrdk"; - authors = [ - "Jorge Aparicio " - ]; + authors = [ "Jorge Aparicio " ]; }; "data-encoding" = rec { @@ -435,23 +434,23 @@ rec { version = "2.3.2"; edition = "2018"; sha256 = "0mvd8bjq5mq50fcf931cff57vwmbsvs1kpxynkzrshli98y3kqiy"; - authors = [ - "Julien Cretin " - ]; + authors = [ "Julien Cretin " ]; features = { "default" = [ "std" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "std" + ]; }; "der" = rec { crateName = "der"; version = "0.4.5"; edition = "2018"; sha256 = "1x4k0jln8va1657cghl40l6p7hyvr1ixz71v9cd6imwmgp51rdvr"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "const-oid"; @@ -474,16 +473,21 @@ rec { "oid" = [ "const-oid" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "bigint" "const-oid" "crypto-bigint" "oid" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "bigint" + "const-oid" + "crypto-bigint" + "oid" + "std" + ]; }; "der-parser" = rec { crateName = "der-parser"; version = "7.0.0"; edition = "2018"; sha256 = "10kfa2gzl3x20mwgrd43cyi79xgkqxyzcyrh0xylv4apa33qlfgy"; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "asn1-rs"; @@ -517,18 +521,24 @@ rec { "cookie-factory" = [ "dep:cookie-factory" ]; "default" = [ "std" ]; "num-bigint" = [ "dep:num-bigint" ]; - "serialize" = [ "std" "cookie-factory" ]; + "serialize" = [ + "std" + "cookie-factory" + ]; }; - resolvedDefaultFeatures = [ "bigint" "default" "num-bigint" "std" ]; + resolvedDefaultFeatures = [ + "bigint" + "default" + "num-bigint" + "std" + ]; }; "digest" = rec { crateName = "digest"; version = "0.9.0"; edition = "2018"; sha256 = "0rmhvk33rgvd6ll71z8sng91a52rw14p0drjn1da0mqa138n1pfk"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "generic-array"; @@ -540,7 +550,10 @@ rec { "dev" = [ "blobby" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "std" + ]; }; "displaydoc" = rec { crateName = "displaydoc"; @@ -548,9 +561,7 @@ rec { edition = "2018"; sha256 = "11i8p5snlc1hs4g5q3wiyr75dn276l6kr0si5m7xmfa6y31mvy9v"; procMacro = true; - authors = [ - "Jane Lusby " - ]; + authors = [ "Jane Lusby " ]; dependencies = [ { name = "proc-macro2"; @@ -568,16 +579,17 @@ rec { features = { "default" = [ "std" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ + "default" + "std" + ]; }; "foreign-types" = rec { crateName = "foreign-types"; version = "0.3.2"; edition = "2015"; sha256 = "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn"; - authors = [ - "Steven Fackler " - ]; + authors = [ "Steven Fackler " ]; dependencies = [ { name = "foreign-types-shared"; @@ -591,9 +603,7 @@ rec { version = "0.1.1"; edition = "2015"; sha256 = "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00"; - authors = [ - "Steven Fackler " - ]; + authors = [ "Steven Fackler " ]; }; "generic-array" = rec { @@ -627,9 +637,7 @@ rec { version = "0.2.4"; edition = "2018"; sha256 = "0k0bdr1dyf4n9fvnkx4fmwxhv4hgnyf55gj86v4m69fln743g3a1"; - authors = [ - "The Rand Project Developers" - ]; + authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "cfg-if"; @@ -650,9 +658,17 @@ rec { features = { "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; - "js" = [ "wasm-bindgen" "js-sys" ]; + "js" = [ + "wasm-bindgen" + "js-sys" + ]; "js-sys" = [ "dep:js-sys" ]; - "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; + "rustc-dep-of-std" = [ + "compiler_builtins" + "core" + "libc/rustc-dep-of-std" + "wasi/rustc-dep-of-std" + ]; "wasm-bindgen" = [ "dep:wasm-bindgen" ]; }; resolvedDefaultFeatures = [ "std" ]; @@ -662,9 +678,7 @@ rec { version = "1.0.1"; edition = "2018"; sha256 = "0d8wr2qf5b25a04xf10rz9r0pdbjdgb0zaw3xvf8k2sqcz1qzaqs"; - authors = [ - "David Tolnay " - ]; + authors = [ "David Tolnay " ]; }; "js-sys" = rec { @@ -672,9 +686,7 @@ rec { version = "0.3.56"; edition = "2018"; sha256 = "010g8jkj5avy3xd77i3cprjzzpfa6z9z2ay0fkllqmpx617c53x3"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "wasm-bindgen"; @@ -688,9 +700,7 @@ rec { version = "1.4.0"; edition = "2015"; sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2"; - authors = [ - "Marvin Löbel " - ]; + authors = [ "Marvin Löbel " ]; dependencies = [ { name = "spin"; @@ -702,32 +712,37 @@ rec { "spin" = [ "dep:spin" ]; "spin_no_std" = [ "spin" ]; }; - resolvedDefaultFeatures = [ "spin" "spin_no_std" ]; + resolvedDefaultFeatures = [ + "spin" + "spin_no_std" + ]; }; "libc" = rec { crateName = "libc"; version = "0.2.116"; edition = "2015"; sha256 = "0x6sk17kv2fdsqxlm23bz9x1y79w90k7ylkflk44rgidhy4bspan"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; features = { "default" = [ "std" ]; - "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ]; + "rustc-dep-of-std" = [ + "align" + "rustc-std-workspace-core" + ]; "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ]; "use_std" = [ "std" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ + "default" + "std" + ]; }; "libm" = rec { crateName = "libm"; version = "0.2.1"; edition = "2018"; sha256 = "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7"; - authors = [ - "Jorge Aparicio " - ]; + authors = [ "Jorge Aparicio " ]; features = { "musl-reference-tests" = [ "rand" ]; "rand" = [ "dep:rand" ]; @@ -739,9 +754,7 @@ rec { version = "0.4.14"; edition = "2015"; sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "cfg-if"; @@ -750,9 +763,21 @@ rec { ]; features = { "kv_unstable" = [ "value-bag" ]; - "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ]; - "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ]; - "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ]; + "kv_unstable_serde" = [ + "kv_unstable_std" + "value-bag/serde" + "serde" + ]; + "kv_unstable_std" = [ + "std" + "kv_unstable" + "value-bag/error" + ]; + "kv_unstable_sval" = [ + "kv_unstable" + "value-bag/sval" + "sval" + ]; "serde" = [ "dep:serde" ]; "sval" = [ "dep:sval" ]; "value-bag" = [ "dep:value-bag" ]; @@ -772,7 +797,10 @@ rec { "core" = [ "dep:core" ]; "default" = [ "std" ]; "libc" = [ "dep:libc" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ + "core" + "compiler_builtins" + ]; "use_std" = [ "std" ]; }; resolvedDefaultFeatures = [ "std" ]; @@ -782,9 +810,7 @@ rec { version = "0.2.1"; edition = "2018"; sha256 = "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8"; - authors = [ - "Alex Huszagh " - ]; + authors = [ "Alex Huszagh " ]; features = { "default" = [ "std" ]; }; @@ -795,9 +821,7 @@ rec { version = "7.1.0"; edition = "2018"; sha256 = "0281jdx0xcyhjgs1jkj9pii8py1clcpazg41bgz7d71qxzhi278v"; - authors = [ - "contact@geoffroycouprie.com" - ]; + authors = [ "contact@geoffroycouprie.com" ]; dependencies = [ { name = "memchr"; @@ -818,18 +842,24 @@ rec { ]; features = { "default" = [ "std" ]; - "std" = [ "alloc" "memchr/std" "minimal-lexical/std" ]; + "std" = [ + "alloc" + "memchr/std" + "minimal-lexical/std" + ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "std" + ]; }; "num-bigint" = rec { crateName = "num-bigint"; version = "0.4.3"; edition = "2018"; sha256 = "0py73wsa5j4izhd39nkqzqv260r0ma08vy30ky54ld3vkhlbcfpr"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "num-integer"; @@ -856,9 +886,15 @@ rec { "quickcheck" = [ "dep:quickcheck" ]; "rand" = [ "dep:rand" ]; "serde" = [ "dep:serde" ]; - "std" = [ "num-integer/std" "num-traits/std" ]; + "std" = [ + "num-integer/std" + "num-traits/std" + ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ + "default" + "std" + ]; }; "num-bigint-dig" = rec { crateName = "num-bigint-dig"; @@ -933,24 +969,41 @@ rec { } ]; features = { - "default" = [ "std" "i128" "u64_digit" ]; - "i128" = [ "num-integer/i128" "num-traits/i128" ]; + "default" = [ + "std" + "i128" + "u64_digit" + ]; + "i128" = [ + "num-integer/i128" + "num-traits/i128" + ]; "prime" = [ "rand/std_rng" ]; "rand" = [ "dep:rand" ]; "serde" = [ "dep:serde" ]; - "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ]; + "std" = [ + "num-integer/std" + "num-traits/std" + "smallvec/write" + "rand/std" + "serde/std" + ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ]; + resolvedDefaultFeatures = [ + "i128" + "prime" + "rand" + "u64_digit" + "zeroize" + ]; }; "num-integer" = rec { crateName = "num-integer"; version = "0.1.44"; edition = "2015"; sha256 = "1nq152y3304as1iai95hqz8prqnc94lks1s7q05sfjdmcf56kk6j"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "num-traits"; @@ -969,16 +1022,17 @@ rec { "i128" = [ "num-traits/i128" ]; "std" = [ "num-traits/std" ]; }; - resolvedDefaultFeatures = [ "i128" "std" ]; + resolvedDefaultFeatures = [ + "i128" + "std" + ]; }; "num-iter" = rec { crateName = "num-iter"; version = "0.1.42"; edition = "2015"; sha256 = "0ndd9wb9qar50fdr16xm3i1zk6h2g9br56nml2n22kd56y1iq0mj"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "num-integer"; @@ -999,8 +1053,14 @@ rec { ]; features = { "default" = [ "std" ]; - "i128" = [ "num-integer/i128" "num-traits/i128" ]; - "std" = [ "num-integer/std" "num-traits/std" ]; + "i128" = [ + "num-integer/i128" + "num-traits/i128" + ]; + "std" = [ + "num-integer/std" + "num-traits/std" + ]; }; }; "num-traits" = rec { @@ -1008,9 +1068,7 @@ rec { version = "0.2.14"; edition = "2015"; sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s"; - authors = [ - "The Rust Project Developers" - ]; + authors = [ "The Rust Project Developers" ]; dependencies = [ { name = "libm"; @@ -1028,16 +1086,19 @@ rec { "default" = [ "std" ]; "libm" = [ "dep:libm" ]; }; - resolvedDefaultFeatures = [ "default" "i128" "libm" "std" ]; + resolvedDefaultFeatures = [ + "default" + "i128" + "libm" + "std" + ]; }; "num_threads" = rec { crateName = "num_threads"; version = "0.1.3"; edition = "2015"; sha256 = "05gvsnv4k6d69iksz47i7fq1r61dj1k1nh4i8xrw7qlkcfx9kflp"; - authors = [ - "Jacob Pratt " - ]; + authors = [ "Jacob Pratt " ]; dependencies = [ { name = "libc"; @@ -1052,9 +1113,7 @@ rec { version = "0.4.0"; edition = "2018"; sha256 = "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq"; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "asn1-rs"; @@ -1062,19 +1121,37 @@ rec { } ]; features = { - "crypto" = [ "kdf" "pkcs1" "pkcs7" "pkcs9" "pkcs12" "nist_algs" "x962" ]; + "crypto" = [ + "kdf" + "pkcs1" + "pkcs7" + "pkcs9" + "pkcs12" + "nist_algs" + "x962" + ]; "default" = [ "registry" ]; }; - resolvedDefaultFeatures = [ "crypto" "default" "kdf" "nist_algs" "pkcs1" "pkcs12" "pkcs7" "pkcs9" "registry" "x509" "x962" ]; + resolvedDefaultFeatures = [ + "crypto" + "default" + "kdf" + "nist_algs" + "pkcs1" + "pkcs12" + "pkcs7" + "pkcs9" + "registry" + "x509" + "x962" + ]; }; "once_cell" = rec { crateName = "once_cell"; version = "1.9.0"; edition = "2018"; sha256 = "1mfqhrsgi368x92bwnq3vi3p5nv0n1qlrn69gfflhvkfkxfm2cns"; - authors = [ - "Aleksey Kladov " - ]; + authors = [ "Aleksey Kladov " ]; features = { "alloc" = [ "race" ]; "atomic-polyfill" = [ "dep:atomic-polyfill" ]; @@ -1082,16 +1159,19 @@ rec { "parking_lot" = [ "dep:parking_lot" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "race" + "std" + ]; }; "openssl" = rec { crateName = "openssl"; version = "0.10.38"; edition = "2018"; sha256 = "15baqlphisr1f7ddq11jnrrzz4shdh35kwal24adyc2c4cif4yhc"; - authors = [ - "Steven Fackler " - ]; + authors = [ "Steven Fackler " ]; dependencies = [ { name = "bitflags"; @@ -1155,7 +1235,7 @@ rec { { name = "vcpkg"; packageId = "vcpkg"; - target = {target, features}: (target."env" == "msvc"); + target = { target, features }: (target."env" == "msvc"); } ]; features = { @@ -1168,9 +1248,7 @@ rec { version = "1.0.2"; edition = "2018"; sha256 = "0iqrvfnm71x9pvff39d5ajwn3gc9glxlv4d4h22max7342db18z9"; - authors = [ - "Jonathan Creekmore " - ]; + authors = [ "Jonathan Creekmore " ]; dependencies = [ { name = "base64"; @@ -1184,9 +1262,7 @@ rec { version = "0.2.4"; edition = "2018"; sha256 = "1m1c9jypydzabg4yscplmvff7pdcc8gg4cqg081hnlf03hxkmsc4"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "base64ct"; @@ -1203,14 +1279,15 @@ rec { version = "0.2.4"; edition = "2018"; sha256 = "0b2f1a0lf5h53zrjvcqbxzjhh89gcfa1myhf6z7w10ypg61fwsqi"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "der"; packageId = "der"; - features = [ "bigint" "oid" ]; + features = [ + "bigint" + "oid" + ]; } { name = "pem-rfc7468"; @@ -1226,21 +1303,31 @@ rec { } ]; features = { - "alloc" = [ "der/alloc" "zeroize" ]; - "pem" = [ "alloc" "pem-rfc7468/alloc" ]; + "alloc" = [ + "der/alloc" + "zeroize" + ]; + "pem" = [ + "alloc" + "pem-rfc7468/alloc" + ]; "pem-rfc7468" = [ "dep:pem-rfc7468" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "std" "zeroize" ]; + resolvedDefaultFeatures = [ + "alloc" + "pem" + "pem-rfc7468" + "std" + "zeroize" + ]; }; "pkcs8" = rec { crateName = "pkcs8"; version = "0.7.6"; edition = "2018"; sha256 = "0iq46p6fa2b8xy6pj52zpmdy8ya3fg31dj4rc19x1fi69nvgjgpf"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "der"; @@ -1271,29 +1358,57 @@ rec { } ]; features = { - "3des" = [ "encryption" "pkcs5/3des" ]; - "alloc" = [ "der/alloc" "zeroize" ]; - "des-insecure" = [ "encryption" "pkcs5/des-insecure" ]; - "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ]; - "pem" = [ "alloc" "pem-rfc7468/alloc" ]; + "3des" = [ + "encryption" + "pkcs5/3des" + ]; + "alloc" = [ + "der/alloc" + "zeroize" + ]; + "des-insecure" = [ + "encryption" + "pkcs5/des-insecure" + ]; + "encryption" = [ + "alloc" + "pkcs5/alloc" + "pkcs5/pbes2" + "rand_core" + ]; + "pem" = [ + "alloc" + "pem-rfc7468/alloc" + ]; "pem-rfc7468" = [ "dep:pem-rfc7468" ]; "pkcs1" = [ "dep:pkcs1" ]; "pkcs5" = [ "dep:pkcs5" ]; "rand_core" = [ "dep:rand_core" ]; - "sha1" = [ "encryption" "pkcs5/sha1" ]; - "std" = [ "alloc" "der/std" ]; + "sha1" = [ + "encryption" + "pkcs5/sha1" + ]; + "std" = [ + "alloc" + "der/std" + ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "pkcs1" "std" "zeroize" ]; + resolvedDefaultFeatures = [ + "alloc" + "pem" + "pem-rfc7468" + "pkcs1" + "std" + "zeroize" + ]; }; "pkg-config" = rec { crateName = "pkg-config"; version = "0.3.24"; edition = "2015"; sha256 = "1ghcyjp5537r7qigmgl3dj62j01arlpddaq93a3i414v3iskz2aq"; - authors = [ - "Alex Crichton " - ]; + authors = [ "Alex Crichton " ]; }; "ppv-lite86" = rec { @@ -1301,13 +1416,14 @@ rec { version = "0.2.16"; edition = "2018"; sha256 = "0wkqwnvnfcgqlrahphl45vdlgi2f1bs7nqcsalsllp1y4dp9x7zb"; - authors = [ - "The CryptoCorrosion Contributors" - ]; + authors = [ "The CryptoCorrosion Contributors" ]; features = { "default" = [ "std" ]; }; - resolvedDefaultFeatures = [ "simd" "std" ]; + resolvedDefaultFeatures = [ + "simd" + "std" + ]; }; "proc-macro2" = rec { crateName = "proc-macro2"; @@ -1327,16 +1443,17 @@ rec { features = { "default" = [ "proc-macro" ]; }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; + resolvedDefaultFeatures = [ + "default" + "proc-macro" + ]; }; "quote" = rec { crateName = "quote"; version = "1.0.15"; edition = "2018"; sha256 = "0id1q0875pvhkg0mlb5z8gzdm2g2rbbz76bfzhv331lrm2b3wkc6"; - authors = [ - "David Tolnay " - ]; + authors = [ "David Tolnay " ]; dependencies = [ { name = "proc-macro2"; @@ -1348,7 +1465,10 @@ rec { "default" = [ "proc-macro" ]; "proc-macro" = [ "proc-macro2/proc-macro" ]; }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; + resolvedDefaultFeatures = [ + "default" + "proc-macro" + ]; }; "rand" = rec { crateName = "rand"; @@ -1393,7 +1513,10 @@ rec { ]; features = { "alloc" = [ "rand_core/alloc" ]; - "default" = [ "std" "std_rng" ]; + "default" = [ + "std" + "std_rng" + ]; "getrandom" = [ "rand_core/getrandom" ]; "libc" = [ "dep:libc" ]; "log" = [ "dep:log" ]; @@ -1401,12 +1524,33 @@ rec { "rand_chacha" = [ "dep:rand_chacha" ]; "rand_hc" = [ "dep:rand_hc" ]; "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" "rand_core/serde1" ]; + "serde1" = [ + "serde" + "rand_core/serde1" + ]; "simd_support" = [ "packed_simd" ]; - "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; - "std_rng" = [ "rand_chacha" "rand_hc" ]; + "std" = [ + "rand_core/std" + "rand_chacha/std" + "alloc" + "getrandom" + "libc" + ]; + "std_rng" = [ + "rand_chacha" + "rand_hc" + ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "rand_hc" "std" "std_rng" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "getrandom" + "libc" + "rand_chacha" + "rand_hc" + "std" + "std_rng" + ]; }; "rand_chacha" = rec { crateName = "rand_chacha"; @@ -1458,18 +1602,24 @@ rec { "getrandom" = [ "dep:getrandom" ]; "serde" = [ "dep:serde" ]; "serde1" = [ "serde" ]; - "std" = [ "alloc" "getrandom" "getrandom/std" ]; + "std" = [ + "alloc" + "getrandom" + "getrandom/std" + ]; }; - resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "getrandom" + "std" + ]; }; "rand_hc" = rec { crateName = "rand_hc"; version = "0.3.1"; edition = "2018"; sha256 = "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm"; - authors = [ - "The Rand Project Developers" - ]; + authors = [ "The Rand Project Developers" ]; dependencies = [ { name = "rand_core"; @@ -1483,12 +1633,13 @@ rec { version = "0.9.2"; edition = "2018"; crateBin = [ - { name = "rcgen"; path = "src/main.rs"; } + { + name = "rcgen"; + path = "src/main.rs"; + } ]; sha256 = "0ppwfl9g504x2qwk7m7mag8c3l70w9mcfha93013nlzqdlw2vynp"; - authors = [ - "est31 " - ]; + authors = [ "est31 " ]; dependencies = [ { name = "pem"; @@ -1513,7 +1664,10 @@ rec { { name = "yasna"; packageId = "yasna"; - features = [ "time" "std" ]; + features = [ + "time" + "std" + ]; } { name = "zeroize"; @@ -1556,16 +1710,19 @@ rec { "x509-parser" = [ "dep:x509-parser" ]; "zeroize" = [ "dep:zeroize" ]; }; - resolvedDefaultFeatures = [ "default" "pem" "x509-parser" "zeroize" ]; + resolvedDefaultFeatures = [ + "default" + "pem" + "x509-parser" + "zeroize" + ]; }; "ring" = rec { crateName = "ring"; version = "0.16.20"; edition = "2018"; sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh"; - authors = [ - "Brian Smith " - ]; + authors = [ "Brian Smith " ]; dependencies = [ { name = "libc"; @@ -1585,14 +1742,32 @@ rec { name = "once_cell"; packageId = "once_cell"; usesDefaultFeatures = false; - target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris")); + target = + { target, features }: + ( + (target."os" == "dragonfly") + || (target."os" == "freebsd") + || (target."os" == "illumos") + || (target."os" == "netbsd") + || (target."os" == "openbsd") + || (target."os" == "solaris") + ); features = [ "std" ]; } { name = "spin"; packageId = "spin"; usesDefaultFeatures = false; - target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux")))); + target = + { target, features }: + ( + (target."arch" == "x86") + || (target."arch" == "x86_64") + || ( + ((target."arch" == "aarch64") || (target."arch" == "arm")) + && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux")) + ) + ); } { name = "untrusted"; @@ -1602,15 +1777,28 @@ rec { name = "web-sys"; packageId = "web-sys"; usesDefaultFeatures = false; - target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == "")); - features = [ "Crypto" "Window" ]; + target = + { target, features }: + ( + (target."arch" == "wasm32") + && (target."vendor" == "unknown") + && (target."os" == "unknown") + && (target."env" == "") + ); + features = [ + "Crypto" + "Window" + ]; } { name = "winapi"; packageId = "winapi"; usesDefaultFeatures = false; target = { target, features }: (target."os" == "windows"); - features = [ "ntsecapi" "wtypesbase" ]; + features = [ + "ntsecapi" + "wtypesbase" + ]; } ]; buildDependencies = [ @@ -1625,16 +1813,24 @@ rec { name = "libc"; packageId = "libc"; usesDefaultFeatures = false; - target = {target, features}: ((target."unix" or false) || (target."windows" or false)); + target = { target, features }: ((target."unix" or false) || (target."windows" or false)); } ]; features = { - "default" = [ "alloc" "dev_urandom_fallback" ]; + "default" = [ + "alloc" + "dev_urandom_fallback" + ]; "dev_urandom_fallback" = [ "once_cell" ]; "once_cell" = [ "dep:once_cell" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "dev_urandom_fallback" + "once_cell" + ]; }; "rsa" = rec { crateName = "rsa"; @@ -1666,7 +1862,12 @@ rec { packageId = "num-bigint-dig"; rename = "num-bigint"; usesDefaultFeatures = false; - features = [ "i128" "u64_digit" "prime" "zeroize" ]; + features = [ + "i128" + "u64_digit" + "prime" + "zeroize" + ]; } { name = "num-integer"; @@ -1708,29 +1909,59 @@ rec { { name = "zeroize"; packageId = "zeroize"; - features = [ "alloc" "zeroize_derive" ]; + features = [ + "alloc" + "zeroize_derive" + ]; } ]; features = { - "alloc" = [ "digest/alloc" "pkcs1/alloc" "pkcs8/alloc" "pkcs8/pkcs1" ]; - "default" = [ "std" "pem" ]; - "nightly" = [ "subtle/nightly" "num-bigint/nightly" ]; - "pem" = [ "alloc" "pkcs1/pem" "pkcs8/pem" ]; + "alloc" = [ + "digest/alloc" + "pkcs1/alloc" + "pkcs8/alloc" + "pkcs8/pkcs1" + ]; + "default" = [ + "std" + "pem" + ]; + "nightly" = [ + "subtle/nightly" + "num-bigint/nightly" + ]; + "pem" = [ + "alloc" + "pkcs1/pem" + "pkcs8/pem" + ]; "pkcs5" = [ "pkcs8/encryption" ]; - "serde" = [ "num-bigint/serde" "serde_crate" ]; + "serde" = [ + "num-bigint/serde" + "serde_crate" + ]; "serde_crate" = [ "dep:serde_crate" ]; - "std" = [ "alloc" "digest/std" "pkcs1/std" "pkcs8/std" "rand/std" ]; + "std" = [ + "alloc" + "digest/std" + "pkcs1/std" + "pkcs8/std" + "rand/std" + ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "pem" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "pem" + "std" + ]; }; "rusticata-macros" = rec { crateName = "rusticata-macros"; version = "4.0.0"; edition = "2018"; sha256 = "03dmfxhgwzpm1360iwcpcg3y18ddgya0i0hc599am212pdvj7ib5"; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "nom"; @@ -1746,9 +1977,7 @@ rec { version = "1.8.0"; edition = "2018"; sha256 = "10zf4fn63p2d6sx8qap3jvyarcfw563308x3431hd4c34r35gpgj"; - authors = [ - "The Servo Project Developers" - ]; + authors = [ "The Servo Project Developers" ]; features = { "arbitrary" = [ "dep:arbitrary" ]; "const_new" = [ "const_generics" ]; @@ -1771,9 +2000,7 @@ rec { version = "0.4.1"; edition = "2018"; sha256 = "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw"; - authors = [ - "RustCrypto Developers" - ]; + authors = [ "RustCrypto Developers" ]; dependencies = [ { name = "der"; @@ -1795,7 +2022,10 @@ rec { "Henry de Valence " ]; features = { - "default" = [ "std" "i128" ]; + "default" = [ + "std" + "i128" + ]; }; }; "syn" = rec { @@ -1803,9 +2033,7 @@ rec { version = "1.0.86"; edition = "2018"; sha256 = "0sqwa4nqxzm89nj8xd8sk4iz0hbrw3mb17b6hyc2w2d0zzsb6rca"; - authors = [ - "David Tolnay " - ]; + authors = [ "David Tolnay " ]; dependencies = [ { name = "proc-macro2"; @@ -1824,22 +2052,40 @@ rec { } ]; features = { - "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ]; + "default" = [ + "derive" + "parsing" + "printing" + "clone-impls" + "proc-macro" + ]; "printing" = [ "quote" ]; - "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ]; + "proc-macro" = [ + "proc-macro2/proc-macro" + "quote/proc-macro" + ]; "quote" = [ "dep:quote" ]; "test" = [ "syn-test-suite/all-features" ]; }; - resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" ]; + resolvedDefaultFeatures = [ + "clone-impls" + "default" + "derive" + "extra-traits" + "full" + "parsing" + "printing" + "proc-macro" + "quote" + "visit" + ]; }; "synstructure" = rec { crateName = "synstructure"; version = "0.12.6"; edition = "2018"; sha256 = "03r1lydbf3japnlpc4wka7y90pmz1i0danaj3f9a7b431akdlszk"; - authors = [ - "Nika Layzell " - ]; + authors = [ "Nika Layzell " ]; dependencies = [ { name = "proc-macro2"; @@ -1855,7 +2101,14 @@ rec { name = "syn"; packageId = "syn"; usesDefaultFeatures = false; - features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; + features = [ + "derive" + "parsing" + "printing" + "clone-impls" + "visit" + "extra-traits" + ]; } { name = "unicode-xid"; @@ -1864,18 +2117,23 @@ rec { ]; features = { "default" = [ "proc-macro" ]; - "proc-macro" = [ "proc-macro2/proc-macro" "syn/proc-macro" "quote/proc-macro" ]; + "proc-macro" = [ + "proc-macro2/proc-macro" + "syn/proc-macro" + "quote/proc-macro" + ]; }; - resolvedDefaultFeatures = [ "default" "proc-macro" ]; + resolvedDefaultFeatures = [ + "default" + "proc-macro" + ]; }; "thiserror" = rec { crateName = "thiserror"; version = "1.0.30"; edition = "2018"; sha256 = "05y4wm29ck8flwq5k1q6nhwh00a3b30cz3xr0qvnbwad5vjsnjw5"; - authors = [ - "David Tolnay " - ]; + authors = [ "David Tolnay " ]; dependencies = [ { name = "thiserror-impl"; @@ -1890,9 +2148,7 @@ rec { edition = "2018"; sha256 = "0jviwmvx6wzawsj6c9msic7h419wmsbjagl9dzhpydkzc8zzscma"; procMacro = true; - authors = [ - "David Tolnay " - ]; + authors = [ "David Tolnay " ]; dependencies = [ { name = "proc-macro2"; @@ -1942,21 +2198,44 @@ rec { ]; features = { "default" = [ "std" ]; - "formatting" = [ "itoa" "std" ]; + "formatting" = [ + "itoa" + "std" + ]; "itoa" = [ "dep:itoa" ]; "large-dates" = [ "time-macros/large-dates" ]; "local-offset" = [ "std" ]; "macros" = [ "time-macros" ]; - "quickcheck" = [ "quickcheck-dep" "alloc" ]; + "quickcheck" = [ + "quickcheck-dep" + "alloc" + ]; "quickcheck-dep" = [ "dep:quickcheck-dep" ]; "rand" = [ "dep:rand" ]; "serde" = [ "dep:serde" ]; - "serde-human-readable" = [ "serde" "formatting" "parsing" ]; - "serde-well-known" = [ "serde/alloc" "formatting" "parsing" ]; + "serde-human-readable" = [ + "serde" + "formatting" + "parsing" + ]; + "serde-well-known" = [ + "serde/alloc" + "formatting" + "parsing" + ]; "std" = [ "alloc" ]; "time-macros" = [ "dep:time-macros" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "formatting" "itoa" "macros" "parsing" "std" "time-macros" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "formatting" + "itoa" + "macros" + "parsing" + "std" + "time-macros" + ]; }; "time-macros" = rec { crateName = "time-macros"; @@ -1968,8 +2247,7 @@ rec { "Jacob Pratt " "Time contributors" ]; - features = { - }; + features = { }; }; "typenum" = rec { crateName = "typenum"; @@ -1996,8 +2274,7 @@ rec { "kwantam " "Manish Goregaokar " ]; - features = { - }; + features = { }; resolvedDefaultFeatures = [ "default" ]; }; "untrusted" = rec { @@ -2006,9 +2283,7 @@ rec { edition = "2018"; sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1"; libPath = "src/untrusted.rs"; - authors = [ - "Brian Smith " - ]; + authors = [ "Brian Smith " ]; }; "vcpkg" = rec { @@ -2016,9 +2291,7 @@ rec { version = "0.2.15"; edition = "2015"; sha256 = "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc"; - authors = [ - "Jim McGrath " - ]; + authors = [ "Jim McGrath " ]; }; "version_check" = rec { @@ -2026,9 +2299,7 @@ rec { version = "0.9.4"; edition = "2015"; sha256 = "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9"; - authors = [ - "Sergio Benitez " - ]; + authors = [ "Sergio Benitez " ]; }; "wasi" = rec { @@ -2036,26 +2307,29 @@ rec { version = "0.10.2+wasi-snapshot-preview1"; edition = "2018"; sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx"; - authors = [ - "The Cranelift Project Developers" - ]; + authors = [ "The Cranelift Project Developers" ]; features = { "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" ]; - "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; + "rustc-dep-of-std" = [ + "compiler_builtins" + "core" + "rustc-std-workspace-alloc" + ]; "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ]; }; - resolvedDefaultFeatures = [ "default" "std" ]; + resolvedDefaultFeatures = [ + "default" + "std" + ]; }; "wasm-bindgen" = rec { crateName = "wasm-bindgen"; version = "0.2.79"; edition = "2018"; sha256 = "01kc4lj2vlf0ra2w63izrgdlv8p6f8p15086hhyqln6q4dsazw95"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "cfg-if"; @@ -2067,25 +2341,36 @@ rec { } ]; features = { - "default" = [ "spans" "std" ]; + "default" = [ + "spans" + "std" + ]; "enable-interning" = [ "std" ]; "serde" = [ "dep:serde" ]; - "serde-serialize" = [ "serde" "serde_json" "std" ]; + "serde-serialize" = [ + "serde" + "serde_json" + "std" + ]; "serde_json" = [ "dep:serde_json" ]; "spans" = [ "wasm-bindgen-macro/spans" ]; "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ]; - "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ]; + "xxx_debug_only_print_generated_code" = [ + "wasm-bindgen-macro/xxx_debug_only_print_generated_code" + ]; }; - resolvedDefaultFeatures = [ "default" "spans" "std" ]; + resolvedDefaultFeatures = [ + "default" + "spans" + "std" + ]; }; "wasm-bindgen-backend" = rec { crateName = "wasm-bindgen-backend"; version = "0.2.79"; edition = "2018"; sha256 = "1jpdrl5jj01961jxhmvj7v25ws928fyfj8ms7izifnhg0ggw08cb"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "bumpalo"; @@ -2128,9 +2413,7 @@ rec { edition = "2018"; sha256 = "00gdh0dlf2r77mxwh08q0z01vz2z7mvrllmj4gjjx9a0kvb06hig"; procMacro = true; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "quote"; @@ -2152,9 +2435,7 @@ rec { version = "0.2.79"; edition = "2018"; sha256 = "1g1fjqvrkrf3j20z8nxsf60cypxg9dfvpbachl2b53908q6s7a5z"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "proc-macro2"; @@ -2167,7 +2448,10 @@ rec { { name = "syn"; packageId = "syn"; - features = [ "visit" "full" ]; + features = [ + "visit" + "full" + ]; } { name = "wasm-bindgen-backend"; @@ -2189,9 +2473,7 @@ rec { version = "0.2.79"; edition = "2018"; sha256 = "18h67l9b9jn06iw9r2p7bh9i0brh24lilcp4f26f4f24bh1qv59x"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; }; "web-sys" = rec { @@ -2199,9 +2481,7 @@ rec { version = "0.3.56"; edition = "2018"; sha256 = "1sxqmwq773ss5m6vz7z95fdm6bqlix0s2awsy0j5gllxy8cv6q60"; - authors = [ - "The wasm-bindgen Developers" - ]; + authors = [ "The wasm-bindgen Developers" ]; dependencies = [ { name = "js-sys"; @@ -2214,51 +2494,122 @@ rec { ]; features = { "AbortSignal" = [ "EventTarget" ]; - "AnalyserNode" = [ "AudioNode" "EventTarget" ]; + "AnalyserNode" = [ + "AudioNode" + "EventTarget" + ]; "Animation" = [ "EventTarget" ]; "AnimationEvent" = [ "Event" ]; "AnimationPlaybackEvent" = [ "Event" ]; - "Attr" = [ "EventTarget" "Node" ]; - "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; - "AudioContext" = [ "BaseAudioContext" "EventTarget" ]; - "AudioDestinationNode" = [ "AudioNode" "EventTarget" ]; + "Attr" = [ + "EventTarget" + "Node" + ]; + "AudioBufferSourceNode" = [ + "AudioNode" + "AudioScheduledSourceNode" + "EventTarget" + ]; + "AudioContext" = [ + "BaseAudioContext" + "EventTarget" + ]; + "AudioDestinationNode" = [ + "AudioNode" + "EventTarget" + ]; "AudioNode" = [ "EventTarget" ]; "AudioProcessingEvent" = [ "Event" ]; - "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ]; - "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; + "AudioScheduledSourceNode" = [ + "AudioNode" + "EventTarget" + ]; + "AudioStreamTrack" = [ + "EventTarget" + "MediaStreamTrack" + ]; "AudioTrackList" = [ "EventTarget" ]; "AudioWorklet" = [ "Worklet" ]; "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ]; - "AudioWorkletNode" = [ "AudioNode" "EventTarget" ]; + "AudioWorkletNode" = [ + "AudioNode" + "EventTarget" + ]; "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ]; "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ]; "BaseAudioContext" = [ "EventTarget" ]; "BatteryManager" = [ "EventTarget" ]; "BeforeUnloadEvent" = [ "Event" ]; - "BiquadFilterNode" = [ "AudioNode" "EventTarget" ]; + "BiquadFilterNode" = [ + "AudioNode" + "EventTarget" + ]; "BlobEvent" = [ "Event" ]; "Bluetooth" = [ "EventTarget" ]; "BluetoothAdvertisingEvent" = [ "Event" ]; "BluetoothDevice" = [ "EventTarget" ]; - "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ]; + "BluetoothPermissionResult" = [ + "EventTarget" + "PermissionStatus" + ]; "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ]; "BluetoothRemoteGattService" = [ "EventTarget" ]; "BroadcastChannel" = [ "EventTarget" ]; - "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ]; - "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ]; - "ChannelMergerNode" = [ "AudioNode" "EventTarget" ]; - "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ]; - "CharacterData" = [ "EventTarget" "Node" ]; - "ChromeWorker" = [ "EventTarget" "Worker" ]; + "CanvasCaptureMediaStream" = [ + "EventTarget" + "MediaStream" + ]; + "CdataSection" = [ + "CharacterData" + "EventTarget" + "Node" + "Text" + ]; + "ChannelMergerNode" = [ + "AudioNode" + "EventTarget" + ]; + "ChannelSplitterNode" = [ + "AudioNode" + "EventTarget" + ]; + "CharacterData" = [ + "EventTarget" + "Node" + ]; + "ChromeWorker" = [ + "EventTarget" + "Worker" + ]; "Clipboard" = [ "EventTarget" ]; "ClipboardEvent" = [ "Event" ]; "CloseEvent" = [ "Event" ]; - "Comment" = [ "CharacterData" "EventTarget" "Node" ]; - "CompositionEvent" = [ "Event" "UiEvent" ]; - "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; - "ConvolverNode" = [ "AudioNode" "EventTarget" ]; - "CssAnimation" = [ "Animation" "EventTarget" ]; - "CssConditionRule" = [ "CssGroupingRule" "CssRule" ]; + "Comment" = [ + "CharacterData" + "EventTarget" + "Node" + ]; + "CompositionEvent" = [ + "Event" + "UiEvent" + ]; + "ConstantSourceNode" = [ + "AudioNode" + "AudioScheduledSourceNode" + "EventTarget" + ]; + "ConvolverNode" = [ + "AudioNode" + "EventTarget" + ]; + "CssAnimation" = [ + "Animation" + "EventTarget" + ]; + "CssConditionRule" = [ + "CssGroupingRule" + "CssRule" + ]; "CssCounterStyleRule" = [ "CssRule" ]; "CssFontFaceRule" = [ "CssRule" ]; "CssFontFeatureValuesRule" = [ "CssRule" ]; @@ -2266,47 +2617,101 @@ rec { "CssImportRule" = [ "CssRule" ]; "CssKeyframeRule" = [ "CssRule" ]; "CssKeyframesRule" = [ "CssRule" ]; - "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; + "CssMediaRule" = [ + "CssConditionRule" + "CssGroupingRule" + "CssRule" + ]; "CssNamespaceRule" = [ "CssRule" ]; "CssPageRule" = [ "CssRule" ]; "CssStyleRule" = [ "CssRule" ]; "CssStyleSheet" = [ "StyleSheet" ]; - "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ]; - "CssTransition" = [ "Animation" "EventTarget" ]; + "CssSupportsRule" = [ + "CssConditionRule" + "CssGroupingRule" + "CssRule" + ]; + "CssTransition" = [ + "Animation" + "EventTarget" + ]; "CustomEvent" = [ "Event" ]; - "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; - "DelayNode" = [ "AudioNode" "EventTarget" ]; + "DedicatedWorkerGlobalScope" = [ + "EventTarget" + "WorkerGlobalScope" + ]; + "DelayNode" = [ + "AudioNode" + "EventTarget" + ]; "DeviceLightEvent" = [ "Event" ]; "DeviceMotionEvent" = [ "Event" ]; "DeviceOrientationEvent" = [ "Event" ]; "DeviceProximityEvent" = [ "Event" ]; - "Document" = [ "EventTarget" "Node" ]; - "DocumentFragment" = [ "EventTarget" "Node" ]; + "Document" = [ + "EventTarget" + "Node" + ]; + "DocumentFragment" = [ + "EventTarget" + "Node" + ]; "DocumentTimeline" = [ "AnimationTimeline" ]; - "DocumentType" = [ "EventTarget" "Node" ]; + "DocumentType" = [ + "EventTarget" + "Node" + ]; "DomMatrix" = [ "DomMatrixReadOnly" ]; "DomPoint" = [ "DomPointReadOnly" ]; "DomRect" = [ "DomRectReadOnly" ]; "DomRequest" = [ "EventTarget" ]; - "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ]; - "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ]; - "Element" = [ "EventTarget" "Node" ]; + "DragEvent" = [ + "Event" + "MouseEvent" + "UiEvent" + ]; + "DynamicsCompressorNode" = [ + "AudioNode" + "EventTarget" + ]; + "Element" = [ + "EventTarget" + "Node" + ]; "ErrorEvent" = [ "Event" ]; "EventSource" = [ "EventTarget" ]; "ExtendableEvent" = [ "Event" ]; - "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ]; - "FetchEvent" = [ "Event" "ExtendableEvent" ]; + "ExtendableMessageEvent" = [ + "Event" + "ExtendableEvent" + ]; + "FetchEvent" = [ + "Event" + "ExtendableEvent" + ]; "FetchObserver" = [ "EventTarget" ]; "File" = [ "Blob" ]; "FileReader" = [ "EventTarget" ]; "FileSystemDirectoryEntry" = [ "FileSystemEntry" ]; "FileSystemFileEntry" = [ "FileSystemEntry" ]; - "FocusEvent" = [ "Event" "UiEvent" ]; + "FocusEvent" = [ + "Event" + "UiEvent" + ]; "FontFaceSet" = [ "EventTarget" ]; "FontFaceSetLoadEvent" = [ "Event" ]; - "GainNode" = [ "AudioNode" "EventTarget" ]; - "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ]; - "GamepadButtonEvent" = [ "Event" "GamepadEvent" ]; + "GainNode" = [ + "AudioNode" + "EventTarget" + ]; + "GamepadAxisMoveEvent" = [ + "Event" + "GamepadEvent" + ]; + "GamepadButtonEvent" = [ + "Event" + "GamepadEvent" + ]; "GamepadEvent" = [ "Event" ]; "GpuDevice" = [ "EventTarget" ]; "GpuUncapturedErrorEvent" = [ "Event" ]; @@ -2315,98 +2720,479 @@ rec { "HidConnectionEvent" = [ "Event" ]; "HidDevice" = [ "EventTarget" ]; "HidInputReportEvent" = [ "Event" ]; - "HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ]; - "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlDocument" = [ "Document" "EventTarget" "Node" ]; - "HtmlElement" = [ "Element" "EventTarget" "Node" ]; - "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlAnchorElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlAreaElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlAudioElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "HtmlMediaElement" + "Node" + ]; + "HtmlBaseElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlBodyElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlBrElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlButtonElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlCanvasElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDListElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDataElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDataListElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDetailsElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDialogElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDirectoryElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDivElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlDocument" = [ + "Document" + "EventTarget" + "Node" + ]; + "HtmlElement" = [ + "Element" + "EventTarget" + "Node" + ]; + "HtmlEmbedElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlFieldSetElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlFontElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; "HtmlFormControlsCollection" = [ "HtmlCollection" ]; - "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; + "HtmlFormElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlFrameElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlFrameSetElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlHeadElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlHeadingElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlHrElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlHtmlElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlIFrameElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlImageElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlInputElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlLabelElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlLegendElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlLiElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlLinkElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMapElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMediaElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMenuElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMenuItemElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMetaElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlMeterElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlModElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlOListElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlObjectElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlOptGroupElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlOptionElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; "HtmlOptionsCollection" = [ "HtmlCollection" ]; - "HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ]; - "HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ]; + "HtmlOutputElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlParagraphElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlParamElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlPictureElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlPreElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlProgressElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlQuoteElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlScriptElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlSelectElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlSlotElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlSourceElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlSpanElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlStyleElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableCaptionElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableCellElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableColElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableRowElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTableSectionElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTemplateElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTextAreaElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTimeElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTitleElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlTrackElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlUListElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlUnknownElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "Node" + ]; + "HtmlVideoElement" = [ + "Element" + "EventTarget" + "HtmlElement" + "HtmlMediaElement" + "Node" + ]; "IdbCursorWithValue" = [ "IdbCursor" ]; "IdbDatabase" = [ "EventTarget" ]; "IdbFileHandle" = [ "EventTarget" ]; - "IdbFileRequest" = [ "DomRequest" "EventTarget" ]; + "IdbFileRequest" = [ + "DomRequest" + "EventTarget" + ]; "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ]; "IdbMutableFile" = [ "EventTarget" ]; - "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ]; + "IdbOpenDbRequest" = [ + "EventTarget" + "IdbRequest" + ]; "IdbRequest" = [ "EventTarget" ]; "IdbTransaction" = [ "EventTarget" ]; "IdbVersionChangeEvent" = [ "Event" ]; - "IirFilterNode" = [ "AudioNode" "EventTarget" ]; + "IirFilterNode" = [ + "AudioNode" + "EventTarget" + ]; "ImageCaptureErrorEvent" = [ "Event" ]; - "InputEvent" = [ "Event" "UiEvent" ]; - "KeyboardEvent" = [ "Event" "UiEvent" ]; + "InputEvent" = [ + "Event" + "UiEvent" + ]; + "KeyboardEvent" = [ + "Event" + "UiEvent" + ]; "KeyframeEffect" = [ "AnimationEffect" ]; - "LocalMediaStream" = [ "EventTarget" "MediaStream" ]; + "LocalMediaStream" = [ + "EventTarget" + "MediaStream" + ]; "MediaDevices" = [ "EventTarget" ]; - "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ]; + "MediaElementAudioSourceNode" = [ + "AudioNode" + "EventTarget" + ]; "MediaEncryptedEvent" = [ "Event" ]; "MediaKeyError" = [ "Event" ]; "MediaKeyMessageEvent" = [ "Event" ]; @@ -2417,8 +3203,14 @@ rec { "MediaRecorderErrorEvent" = [ "Event" ]; "MediaSource" = [ "EventTarget" ]; "MediaStream" = [ "EventTarget" ]; - "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ]; - "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ]; + "MediaStreamAudioDestinationNode" = [ + "AudioNode" + "EventTarget" + ]; + "MediaStreamAudioSourceNode" = [ + "AudioNode" + "EventTarget" + ]; "MediaStreamEvent" = [ "Event" ]; "MediaStreamTrack" = [ "EventTarget" ]; "MediaStreamTrackEvent" = [ "Event" ]; @@ -2426,34 +3218,70 @@ rec { "MessagePort" = [ "EventTarget" ]; "MidiAccess" = [ "EventTarget" ]; "MidiConnectionEvent" = [ "Event" ]; - "MidiInput" = [ "EventTarget" "MidiPort" ]; + "MidiInput" = [ + "EventTarget" + "MidiPort" + ]; "MidiMessageEvent" = [ "Event" ]; - "MidiOutput" = [ "EventTarget" "MidiPort" ]; + "MidiOutput" = [ + "EventTarget" + "MidiPort" + ]; "MidiPort" = [ "EventTarget" ]; - "MouseEvent" = [ "Event" "UiEvent" ]; - "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "MouseEvent" = [ + "Event" + "UiEvent" + ]; + "MouseScrollEvent" = [ + "Event" + "MouseEvent" + "UiEvent" + ]; "MutationEvent" = [ "Event" ]; "NetworkInformation" = [ "EventTarget" ]; "Node" = [ "EventTarget" ]; "Notification" = [ "EventTarget" ]; - "NotificationEvent" = [ "Event" "ExtendableEvent" ]; + "NotificationEvent" = [ + "Event" + "ExtendableEvent" + ]; "OfflineAudioCompletionEvent" = [ "Event" ]; - "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ]; + "OfflineAudioContext" = [ + "BaseAudioContext" + "EventTarget" + ]; "OfflineResourceList" = [ "EventTarget" ]; "OffscreenCanvas" = [ "EventTarget" ]; - "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ]; + "OscillatorNode" = [ + "AudioNode" + "AudioScheduledSourceNode" + "EventTarget" + ]; "PageTransitionEvent" = [ "Event" ]; "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ]; - "PannerNode" = [ "AudioNode" "EventTarget" ]; - "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ]; + "PannerNode" = [ + "AudioNode" + "EventTarget" + ]; + "PaymentMethodChangeEvent" = [ + "Event" + "PaymentRequestUpdateEvent" + ]; "PaymentRequestUpdateEvent" = [ "Event" ]; "Performance" = [ "EventTarget" ]; "PerformanceMark" = [ "PerformanceEntry" ]; "PerformanceMeasure" = [ "PerformanceEntry" ]; - "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ]; + "PerformanceNavigationTiming" = [ + "PerformanceEntry" + "PerformanceResourceTiming" + ]; "PerformanceResourceTiming" = [ "PerformanceEntry" ]; "PermissionStatus" = [ "EventTarget" ]; - "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "PointerEvent" = [ + "Event" + "MouseEvent" + "UiEvent" + ]; "PopStateEvent" = [ "Event" ]; "PopupBlockedEvent" = [ "Event" ]; "PresentationAvailability" = [ "EventTarget" ]; @@ -2462,11 +3290,18 @@ rec { "PresentationConnectionCloseEvent" = [ "Event" ]; "PresentationConnectionList" = [ "EventTarget" ]; "PresentationRequest" = [ "EventTarget" ]; - "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ]; + "ProcessingInstruction" = [ + "CharacterData" + "EventTarget" + "Node" + ]; "ProgressEvent" = [ "Event" ]; "PromiseRejectionEvent" = [ "Event" ]; "PublicKeyCredential" = [ "Credential" ]; - "PushEvent" = [ "Event" "ExtendableEvent" ]; + "PushEvent" = [ + "Event" + "ExtendableEvent" + ]; "RadioNodeList" = [ "NodeList" ]; "RtcDataChannel" = [ "EventTarget" ]; "RtcDataChannelEvent" = [ "Event" ]; @@ -2477,50 +3312,202 @@ rec { "RtcdtmfToneChangeEvent" = [ "Event" ]; "Screen" = [ "EventTarget" ]; "ScreenOrientation" = [ "EventTarget" ]; - "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ]; - "ScrollAreaEvent" = [ "Event" "UiEvent" ]; + "ScriptProcessorNode" = [ + "AudioNode" + "EventTarget" + ]; + "ScrollAreaEvent" = [ + "Event" + "UiEvent" + ]; "SecurityPolicyViolationEvent" = [ "Event" ]; "ServiceWorker" = [ "EventTarget" ]; "ServiceWorkerContainer" = [ "EventTarget" ]; - "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; + "ServiceWorkerGlobalScope" = [ + "EventTarget" + "WorkerGlobalScope" + ]; "ServiceWorkerRegistration" = [ "EventTarget" ]; - "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ]; + "ShadowRoot" = [ + "DocumentFragment" + "EventTarget" + "Node" + ]; "SharedWorker" = [ "EventTarget" ]; - "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ]; + "SharedWorkerGlobalScope" = [ + "EventTarget" + "WorkerGlobalScope" + ]; "SourceBuffer" = [ "EventTarget" ]; "SourceBufferList" = [ "EventTarget" ]; "SpeechRecognition" = [ "EventTarget" ]; "SpeechRecognitionError" = [ "Event" ]; "SpeechRecognitionEvent" = [ "Event" ]; "SpeechSynthesis" = [ "EventTarget" ]; - "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ]; + "SpeechSynthesisErrorEvent" = [ + "Event" + "SpeechSynthesisEvent" + ]; "SpeechSynthesisEvent" = [ "Event" ]; "SpeechSynthesisUtterance" = [ "EventTarget" ]; - "StereoPannerNode" = [ "AudioNode" "EventTarget" ]; + "StereoPannerNode" = [ + "AudioNode" + "EventTarget" + ]; "StorageEvent" = [ "Event" ]; - "SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; - "SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; - "SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; - "SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgElement" = [ "Element" "EventTarget" "Node" ]; - "SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ]; - "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; + "SvgAnimateElement" = [ + "Element" + "EventTarget" + "Node" + "SvgAnimationElement" + "SvgElement" + ]; + "SvgAnimateMotionElement" = [ + "Element" + "EventTarget" + "Node" + "SvgAnimationElement" + "SvgElement" + ]; + "SvgAnimateTransformElement" = [ + "Element" + "EventTarget" + "Node" + "SvgAnimationElement" + "SvgElement" + ]; + "SvgAnimationElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgCircleElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgClipPathElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgComponentTransferFunctionElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgDefsElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgDescElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgElement" = [ + "Element" + "EventTarget" + "Node" + ]; + "SvgEllipseElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgFilterElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgForeignObjectElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgGeometryElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgGradientElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgGraphicsElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgImageElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgLineElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgLinearGradientElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGradientElement" + ]; + "SvgMarkerElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgMaskElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgMetadataElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgPathElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; "SvgPathSegArcAbs" = [ "SvgPathSeg" ]; "SvgPathSegArcRel" = [ "SvgPathSeg" ]; "SvgPathSegClosePath" = [ "SvgPathSeg" ]; @@ -2540,113 +3527,426 @@ rec { "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ]; "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ]; "SvgPathSegMovetoRel" = [ "SvgPathSeg" ]; - "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ]; - "SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ]; - "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ]; - "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ]; - "SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ]; - "SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ]; - "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; - "SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; - "SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; - "SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ]; - "SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ]; - "SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ]; - "SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ]; + "SvgPatternElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgPolygonElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgPolylineElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgRadialGradientElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGradientElement" + ]; + "SvgRectElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGeometryElement" + "SvgGraphicsElement" + ]; + "SvgScriptElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgSetElement" = [ + "Element" + "EventTarget" + "Node" + "SvgAnimationElement" + "SvgElement" + ]; + "SvgStopElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgStyleElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgSwitchElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgSymbolElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgTextContentElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgTextElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + "SvgTextContentElement" + "SvgTextPositioningElement" + ]; + "SvgTextPathElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + "SvgTextContentElement" + ]; + "SvgTextPositioningElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + "SvgTextContentElement" + ]; + "SvgTitleElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgUseElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgViewElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgaElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgfeBlendElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeColorMatrixElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeComponentTransferElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeCompositeElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeConvolveMatrixElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeDiffuseLightingElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeDisplacementMapElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeDistantLightElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeDropShadowElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeFloodElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeFuncAElement" = [ + "Element" + "EventTarget" + "Node" + "SvgComponentTransferFunctionElement" + "SvgElement" + ]; + "SvgfeFuncBElement" = [ + "Element" + "EventTarget" + "Node" + "SvgComponentTransferFunctionElement" + "SvgElement" + ]; + "SvgfeFuncGElement" = [ + "Element" + "EventTarget" + "Node" + "SvgComponentTransferFunctionElement" + "SvgElement" + ]; + "SvgfeFuncRElement" = [ + "Element" + "EventTarget" + "Node" + "SvgComponentTransferFunctionElement" + "SvgElement" + ]; + "SvgfeGaussianBlurElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeImageElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeMergeElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeMergeNodeElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeMorphologyElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeOffsetElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfePointLightElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeSpecularLightingElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeSpotLightElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeTileElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgfeTurbulenceElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvggElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgmPathElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + ]; + "SvgsvgElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + ]; + "SvgtSpanElement" = [ + "Element" + "EventTarget" + "Node" + "SvgElement" + "SvgGraphicsElement" + "SvgTextContentElement" + "SvgTextPositioningElement" + ]; "TcpServerSocket" = [ "EventTarget" ]; "TcpServerSocketEvent" = [ "Event" ]; "TcpSocket" = [ "EventTarget" ]; "TcpSocketErrorEvent" = [ "Event" ]; "TcpSocketEvent" = [ "Event" ]; - "Text" = [ "CharacterData" "EventTarget" "Node" ]; + "Text" = [ + "CharacterData" + "EventTarget" + "Node" + ]; "TextTrack" = [ "EventTarget" ]; "TextTrackCue" = [ "EventTarget" ]; "TextTrackList" = [ "EventTarget" ]; "TimeEvent" = [ "Event" ]; - "TouchEvent" = [ "Event" "UiEvent" ]; + "TouchEvent" = [ + "Event" + "UiEvent" + ]; "TrackEvent" = [ "Event" ]; "TransitionEvent" = [ "Event" ]; "UiEvent" = [ "Event" ]; "Usb" = [ "EventTarget" ]; "UsbConnectionEvent" = [ "Event" ]; - "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ]; + "UsbPermissionResult" = [ + "EventTarget" + "PermissionStatus" + ]; "UserProximityEvent" = [ "Event" ]; "ValueEvent" = [ "Event" ]; - "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ]; + "VideoStreamTrack" = [ + "EventTarget" + "MediaStreamTrack" + ]; "VideoTrackList" = [ "EventTarget" ]; "VrDisplay" = [ "EventTarget" ]; - "VttCue" = [ "EventTarget" "TextTrackCue" ]; + "VttCue" = [ + "EventTarget" + "TextTrackCue" + ]; "WakeLockSentinel" = [ "EventTarget" ]; - "WaveShaperNode" = [ "AudioNode" "EventTarget" ]; + "WaveShaperNode" = [ + "AudioNode" + "EventTarget" + ]; "WebGlContextEvent" = [ "Event" ]; - "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ]; + "WebKitCssMatrix" = [ + "DomMatrix" + "DomMatrixReadOnly" + ]; "WebSocket" = [ "EventTarget" ]; - "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ]; + "WheelEvent" = [ + "Event" + "MouseEvent" + "UiEvent" + ]; "Window" = [ "EventTarget" ]; "WindowClient" = [ "Client" ]; "Worker" = [ "EventTarget" ]; "WorkerDebuggerGlobalScope" = [ "EventTarget" ]; "WorkerGlobalScope" = [ "EventTarget" ]; - "XmlDocument" = [ "Document" "EventTarget" "Node" ]; - "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; + "XmlDocument" = [ + "Document" + "EventTarget" + "Node" + ]; + "XmlHttpRequest" = [ + "EventTarget" + "XmlHttpRequestEventTarget" + ]; "XmlHttpRequestEventTarget" = [ "EventTarget" ]; - "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ]; + "XmlHttpRequestUpload" = [ + "EventTarget" + "XmlHttpRequestEventTarget" + ]; "Xr" = [ "EventTarget" ]; - "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ]; + "XrBoundedReferenceSpace" = [ + "EventTarget" + "XrReferenceSpace" + "XrSpace" + ]; "XrInputSourceEvent" = [ "Event" ]; "XrInputSourcesChangeEvent" = [ "Event" ]; - "XrReferenceSpace" = [ "EventTarget" "XrSpace" ]; + "XrReferenceSpace" = [ + "EventTarget" + "XrSpace" + ]; "XrReferenceSpaceEvent" = [ "Event" ]; "XrSession" = [ "EventTarget" ]; "XrSessionEvent" = [ "Event" ]; "XrSpace" = [ "EventTarget" ]; "XrViewerPose" = [ "XrPose" ]; }; - resolvedDefaultFeatures = [ "Crypto" "EventTarget" "Window" ]; + resolvedDefaultFeatures = [ + "Crypto" + "EventTarget" + "Window" + ]; }; "webpki" = rec { crateName = "webpki"; version = "0.22.0"; edition = "2018"; sha256 = "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh"; - authors = [ - "Brian Smith " - ]; + authors = [ "Brian Smith " ]; dependencies = [ { name = "ring"; @@ -2662,16 +3962,17 @@ rec { "alloc" = [ "ring/alloc" ]; "std" = [ "alloc" ]; }; - resolvedDefaultFeatures = [ "alloc" "std" ]; + resolvedDefaultFeatures = [ + "alloc" + "std" + ]; }; "winapi" = rec { crateName = "winapi"; version = "0.3.9"; edition = "2015"; sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"; - authors = [ - "Peter Atashian " - ]; + authors = [ "Peter Atashian " ]; dependencies = [ { name = "winapi-i686-pc-windows-gnu"; @@ -2687,16 +3988,17 @@ rec { features = { "debug" = [ "impl-debug" ]; }; - resolvedDefaultFeatures = [ "ntsecapi" "wtypesbase" ]; + resolvedDefaultFeatures = [ + "ntsecapi" + "wtypesbase" + ]; }; "winapi-i686-pc-windows-gnu" = rec { crateName = "winapi-i686-pc-windows-gnu"; version = "0.4.0"; edition = "2015"; sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"; - authors = [ - "Peter Atashian " - ]; + authors = [ "Peter Atashian " ]; }; "winapi-x86_64-pc-windows-gnu" = rec { @@ -2704,9 +4006,7 @@ rec { version = "0.4.0"; edition = "2015"; sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"; - authors = [ - "Peter Atashian " - ]; + authors = [ "Peter Atashian " ]; }; "x509-parser" = rec { @@ -2714,9 +4014,7 @@ rec { version = "0.13.0"; edition = "2018"; sha256 = "0f3fqbv92q3a3s51md94sw3vgzs934agl4ii5a6ym364mkdlpwg5"; - authors = [ - "Pierre Chifflier " - ]; + authors = [ "Pierre Chifflier " ]; dependencies = [ { name = "asn1-rs"; @@ -2747,7 +4045,10 @@ rec { { name = "oid-registry"; packageId = "oid-registry"; - features = [ "crypto" "x509" ]; + features = [ + "crypto" + "x509" + ]; } { name = "ring"; @@ -2772,16 +4073,18 @@ rec { "ring" = [ "dep:ring" ]; "verify" = [ "ring" ]; }; - resolvedDefaultFeatures = [ "default" "ring" "verify" ]; + resolvedDefaultFeatures = [ + "default" + "ring" + "verify" + ]; }; "yasna" = rec { crateName = "yasna"; version = "0.5.0"; edition = "2018"; sha256 = "0k1gk11hq4rwlppv9f50bz8bnmgr73r66idpp7rybly96si38v9l"; - authors = [ - "Masaki Hara " - ]; + authors = [ "Masaki Hara " ]; dependencies = [ { name = "time"; @@ -2796,16 +4099,18 @@ rec { "num-bigint" = [ "dep:num-bigint" ]; "time" = [ "dep:time" ]; }; - resolvedDefaultFeatures = [ "default" "std" "time" ]; + resolvedDefaultFeatures = [ + "default" + "std" + "time" + ]; }; "zeroize" = rec { crateName = "zeroize"; version = "1.4.3"; edition = "2018"; sha256 = "068nvl3n5hk6lfn5y24grf2c7anzzqfzjjccscq3md7rqp79v3fn"; - authors = [ - "The RustCrypto Project Developers" - ]; + authors = [ "The RustCrypto Project Developers" ]; dependencies = [ { name = "zeroize_derive"; @@ -2817,7 +4122,11 @@ rec { "default" = [ "alloc" ]; "zeroize_derive" = [ "dep:zeroize_derive" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ]; + resolvedDefaultFeatures = [ + "alloc" + "default" + "zeroize_derive" + ]; }; "zeroize_derive" = rec { crateName = "zeroize_derive"; @@ -2825,9 +4134,7 @@ rec { edition = "2018"; sha256 = "1nzdqyryjnqcrqz0vhddpkd8sybhn0bd8rbd6l33rdhhxwzz3s41"; procMacro = true; - authors = [ - "The RustCrypto Project Developers" - ]; + authors = [ "The RustCrypto Project Developers" ]; dependencies = [ { name = "proc-macro2"; @@ -2851,49 +4158,48 @@ rec { }; # -# crate2nix/default.nix (excerpt start) -# + # crate2nix/default.nix (excerpt start) + # - /* Target (platform) data for conditional dependencies. - This corresponds roughly to what buildRustCrate is setting. - */ - defaultTarget = { - unix = true; - windows = false; - fuchsia = true; - test = false; + /* + Target (platform) data for conditional dependencies. + This corresponds roughly to what buildRustCrate is setting. + */ + defaultTarget = { + unix = true; + windows = false; + fuchsia = true; + test = false; - # This doesn't appear to be officially documented anywhere yet. - # See https://github.com/rust-lang-nursery/rust-forge/issues/101. - os = - if stdenv.hostPlatform.isDarwin - then "macos" - else stdenv.hostPlatform.parsed.kernel.name; - arch = stdenv.hostPlatform.parsed.cpu.name; - family = "unix"; - env = "gnu"; - endian = - if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" - then "little" else "big"; - pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits; - vendor = stdenv.hostPlatform.parsed.vendor.name; - debug_assertions = false; - }; + # This doesn't appear to be officially documented anywhere yet. + # See https://github.com/rust-lang-nursery/rust-forge/issues/101. + os = if stdenv.hostPlatform.isDarwin then "macos" else stdenv.hostPlatform.parsed.kernel.name; + arch = stdenv.hostPlatform.parsed.cpu.name; + family = "unix"; + env = "gnu"; + endian = + if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big"; + pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits; + vendor = stdenv.hostPlatform.parsed.vendor.name; + debug_assertions = false; + }; - /* Filters common temp files and build files. */ - # TODO(pkolloch): Substitute with gitignore filter - sourceFilter = name: type: - let - baseName = builtins.baseNameOf (builtins.toString name); - in - ! ( + # Filters common temp files and build files. + # TODO(pkolloch): Substitute with gitignore filter + sourceFilter = + name: type: + let + baseName = builtins.baseNameOf (builtins.toString name); + in + !( # Filter out git baseName == ".gitignore" || (type == "directory" && baseName == ".git") # Filter out build results || ( - type == "directory" && ( + type == "directory" + && ( baseName == "target" || baseName == "_site" || baseName == ".sass-cache" @@ -2903,16 +4209,11 @@ rec { ) # Filter out nix-build result symlinks - || ( - type == "symlink" && lib.hasPrefix "result" baseName - ) + || (type == "symlink" && lib.hasPrefix "result" baseName) # Filter out IDE config - || ( - type == "directory" && ( - baseName == ".idea" || baseName == ".vscode" - ) - ) || lib.hasSuffix ".iml" baseName + || (type == "directory" && (baseName == ".idea" || baseName == ".vscode")) + || lib.hasSuffix ".iml" baseName # Filter out nix build files || baseName == "Cargo.nix" @@ -2926,161 +4227,187 @@ rec { || baseName == "tests.nix" ); - /* Returns a crate which depends on successful test execution - of crate given as the second argument. + /* + Returns a crate which depends on successful test execution + of crate given as the second argument. - testCrateFlags: list of flags to pass to the test executable - testInputs: list of packages that should be available during test execution - */ - crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }: - assert builtins.typeOf testCrateFlags == "list"; - assert builtins.typeOf testInputs == "list"; - assert builtins.typeOf testPreRun == "string"; - assert builtins.typeOf testPostRun == "string"; - let - # override the `crate` so that it will build and execute tests instead of - # building the actual lib and bin targets We just have to pass `--test` - # to rustc and it will do the right thing. We execute the tests and copy - # their log and the test executables to $out for later inspection. - test = - let - drv = testCrate.override - ( - _: { - buildTests = true; - } - ); - # If the user hasn't set any pre/post commands, we don't want to - # insert empty lines. This means that any existing users of crate2nix - # don't get a spurious rebuild unless they set these explicitly. - testCommand = pkgs.lib.concatStringsSep "\n" - (pkgs.lib.filter (s: s != "") [ - testPreRun - "$f $testCrateFlags 2>&1 | tee -a $out" - testPostRun - ]); - in - pkgs.runCommand "run-tests-${testCrate.name}" - { - inherit testCrateFlags; - buildInputs = testInputs; - } '' - set -ex - - export RUST_BACKTRACE=1 - - # recreate a file hierarchy as when running tests with cargo - - # the source for test data - ${pkgs.xorg.lndir}/bin/lndir ${crate.src} - - # build outputs - testRoot=target/debug - mkdir -p $testRoot - - # executables of the crate - # we copy to prevent std::env::current_exe() to resolve to a store location - for i in ${crate}/bin/*; do - cp "$i" "$testRoot" - done - chmod +w -R . - - # test harness executables are suffixed with a hash, like cargo does - # this allows to prevent name collision with the main - # executables of the crate - hash=$(basename $out) - for file in ${drv}/tests/*; do - f=$testRoot/$(basename $file)-$hash - cp $file $f - ${testCommand} - done - ''; - in - pkgs.runCommand "${crate.name}-linked" + testCrateFlags: list of flags to pass to the test executable + testInputs: list of packages that should be available during test execution + */ + crateWithTest = { - inherit (crate) outputs crateName; - passthru = (crate.passthru or { }) // { - inherit test; - }; - } '' - echo tested by ${test} - ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs} - ''; + crate, + testCrate, + testCrateFlags, + testInputs, + testPreRun, + testPostRun, + }: + assert builtins.typeOf testCrateFlags == "list"; + assert builtins.typeOf testInputs == "list"; + assert builtins.typeOf testPreRun == "string"; + assert builtins.typeOf testPostRun == "string"; + let + # override the `crate` so that it will build and execute tests instead of + # building the actual lib and bin targets We just have to pass `--test` + # to rustc and it will do the right thing. We execute the tests and copy + # their log and the test executables to $out for later inspection. + test = + let + drv = testCrate.override (_: { + buildTests = true; + }); + # If the user hasn't set any pre/post commands, we don't want to + # insert empty lines. This means that any existing users of crate2nix + # don't get a spurious rebuild unless they set these explicitly. + testCommand = pkgs.lib.concatStringsSep "\n" ( + pkgs.lib.filter (s: s != "") [ + testPreRun + "$f $testCrateFlags 2>&1 | tee -a $out" + testPostRun + ] + ); + in + pkgs.runCommand "run-tests-${testCrate.name}" + { + inherit testCrateFlags; + buildInputs = testInputs; + } + '' + set -ex - /* A restricted overridable version of builtRustCratesWithFeatures. */ - buildRustCrateWithFeatures = - { packageId - , features ? rootFeatures - , crateOverrides ? defaultCrateOverrides - , buildRustCrateForPkgsFunc ? null - , runTests ? false - , testCrateFlags ? [ ] - , testInputs ? [ ] - # Any command to run immediatelly before a test is executed. - , testPreRun ? "" - # Any command run immediatelly after a test is executed. - , testPostRun ? "" - }: - lib.makeOverridable - ( - { features - , crateOverrides - , runTests - , testCrateFlags - , testInputs - , testPreRun - , testPostRun - }: - let - buildRustCrateForPkgsFuncOverriden = - if buildRustCrateForPkgsFunc != null - then buildRustCrateForPkgsFunc - else - ( - if crateOverrides == pkgs.defaultCrateOverrides - then buildRustCrateForPkgs - else - pkgs: (buildRustCrateForPkgs pkgs).override { - defaultCrateOverrides = crateOverrides; - } - ); - builtRustCrates = builtRustCratesWithFeatures { - inherit packageId features; - buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden; - runTests = false; + export RUST_BACKTRACE=1 + + # recreate a file hierarchy as when running tests with cargo + + # the source for test data + ${pkgs.xorg.lndir}/bin/lndir ${crate.src} + + # build outputs + testRoot=target/debug + mkdir -p $testRoot + + # executables of the crate + # we copy to prevent std::env::current_exe() to resolve to a store location + for i in ${crate}/bin/*; do + cp "$i" "$testRoot" + done + chmod +w -R . + + # test harness executables are suffixed with a hash, like cargo does + # this allows to prevent name collision with the main + # executables of the crate + hash=$(basename $out) + for file in ${drv}/tests/*; do + f=$testRoot/$(basename $file)-$hash + cp $file $f + ${testCommand} + done + ''; + in + pkgs.runCommand "${crate.name}-linked" + { + inherit (crate) outputs crateName; + passthru = (crate.passthru or { }) // { + inherit test; }; - builtTestRustCrates = builtRustCratesWithFeatures { - inherit packageId features; - buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden; - runTests = true; - }; - drv = builtRustCrates.crates.${packageId}; - testDrv = builtTestRustCrates.crates.${packageId}; - derivation = - if runTests then - crateWithTest - { + } + '' + echo tested by ${test} + ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs} + ''; + + # A restricted overridable version of builtRustCratesWithFeatures. + buildRustCrateWithFeatures = + { + packageId, + features ? rootFeatures, + crateOverrides ? defaultCrateOverrides, + buildRustCrateForPkgsFunc ? null, + runTests ? false, + testCrateFlags ? [ ], + testInputs ? [ ], + # Any command to run immediatelly before a test is executed. + testPreRun ? "", + # Any command run immediatelly after a test is executed. + testPostRun ? "", + }: + lib.makeOverridable + ( + { + features, + crateOverrides, + runTests, + testCrateFlags, + testInputs, + testPreRun, + testPostRun, + }: + let + buildRustCrateForPkgsFuncOverriden = + if buildRustCrateForPkgsFunc != null then + buildRustCrateForPkgsFunc + else + ( + if crateOverrides == pkgs.defaultCrateOverrides then + buildRustCrateForPkgs + else + pkgs: (buildRustCrateForPkgs pkgs).override { defaultCrateOverrides = crateOverrides; } + ); + builtRustCrates = builtRustCratesWithFeatures { + inherit packageId features; + buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden; + runTests = false; + }; + builtTestRustCrates = builtRustCratesWithFeatures { + inherit packageId features; + buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden; + runTests = true; + }; + drv = builtRustCrates.crates.${packageId}; + testDrv = builtTestRustCrates.crates.${packageId}; + derivation = + if runTests then + crateWithTest { crate = drv; testCrate = testDrv; - inherit testCrateFlags testInputs testPreRun testPostRun; + inherit + testCrateFlags + testInputs + testPreRun + testPostRun + ; } - else drv; - in - derivation - ) - { inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; }; + else + drv; + in + derivation + ) + { + inherit + features + crateOverrides + runTests + testCrateFlags + testInputs + testPreRun + testPostRun + ; + }; - /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc - for the corresponding crate. - */ - builtRustCratesWithFeatures = - { packageId - , features - , crateConfigs ? crates - , buildRustCrateForPkgsFunc - , runTests - , target ? defaultTarget - } @ args: + /* + Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc + for the corresponding crate. + */ + builtRustCratesWithFeatures = + { + packageId, + features, + crateConfigs ? crates, + buildRustCrateForPkgsFunc, + runTests, + target ? defaultTarget, + }@args: assert (builtins.isAttrs crateConfigs); assert (builtins.isString packageId); assert (builtins.isList features); @@ -3088,65 +4415,63 @@ rec { assert (builtins.isBool runTests); let rootPackageId = packageId; - mergedFeatures = mergePackageFeatures - ( - args // { - inherit rootPackageId; - target = target // { test = runTests; }; - } - ); + mergedFeatures = mergePackageFeatures ( + args + // { + inherit rootPackageId; + target = target // { + test = runTests; + }; + } + ); # Memoize built packages so that reappearing packages are only built once. builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs; - mkBuiltByPackageIdByPkgs = pkgs: + mkBuiltByPackageIdByPkgs = + pkgs: let self = { - crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs; + crates = lib.mapAttrs ( + packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId + ) crateConfigs; build = mkBuiltByPackageIdByPkgs pkgs.buildPackages; }; in self; - buildByPackageIdForPkgsImpl = self: pkgs: packageId: + buildByPackageIdForPkgsImpl = + self: pkgs: packageId: let features = mergedFeatures."${packageId}" or [ ]; crateConfig' = crateConfigs."${packageId}"; - crateConfig = - builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ]; - devDependencies = - lib.optionals - (runTests && packageId == rootPackageId) - (crateConfig'.devDependencies or [ ]); - dependencies = - dependencyDerivations { - inherit features target; - buildByPackageId = depPackageId: - # proc_macro crates must be compiled for the build architecture - if crateConfigs.${depPackageId}.procMacro or false - then self.build.crates.${depPackageId} - else self.crates.${depPackageId}; - dependencies = - (crateConfig.dependencies or [ ]) - ++ devDependencies; - }; - buildDependencies = - dependencyDerivations { - inherit features target; - buildByPackageId = depPackageId: - self.build.crates.${depPackageId}; - dependencies = crateConfig.buildDependencies or [ ]; - }; - filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies { - inherit dependencies features target; + crateConfig = builtins.removeAttrs crateConfig' [ + "resolvedDefaultFeatures" + "devDependencies" + ]; + devDependencies = lib.optionals (runTests && packageId == rootPackageId) ( + crateConfig'.devDependencies or [ ] + ); + dependencies = dependencyDerivations { + inherit features target; + buildByPackageId = + depPackageId: + # proc_macro crates must be compiled for the build architecture + if crateConfigs.${depPackageId}.procMacro or false then + self.build.crates.${depPackageId} + else + self.crates.${depPackageId}; + dependencies = (crateConfig.dependencies or [ ]) ++ devDependencies; }; - dependenciesWithRenames = - lib.filter (d: d ? "rename") - ( - filterEnabledDependenciesForThis - ( - (crateConfig.buildDependencies or [ ]) - ++ (crateConfig.dependencies or [ ]) - ++ devDependencies - ) - ); + buildDependencies = dependencyDerivations { + inherit features target; + buildByPackageId = depPackageId: self.build.crates.${depPackageId}; + dependencies = crateConfig.buildDependencies or [ ]; + }; + filterEnabledDependenciesForThis = + dependencies: filterEnabledDependencies { inherit dependencies features target; }; + dependenciesWithRenames = lib.filter (d: d ? "rename") ( + filterEnabledDependenciesForThis ( + (crateConfig.buildDependencies or [ ]) ++ (crateConfig.dependencies or [ ]) ++ devDependencies + ) + ); # Crate renames have the form: # # { @@ -3157,157 +4482,171 @@ rec { # } crateRenames = let - grouped = - lib.groupBy - (dependency: dependency.name) - dependenciesWithRenames; - versionAndRename = dep: + grouped = lib.groupBy (dependency: dependency.name) dependenciesWithRenames; + versionAndRename = + dep: let package = crateConfigs."${dep.packageId}"; in - { inherit (dep) rename; version = package.version; }; + { + inherit (dep) rename; + version = package.version; + }; in lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped; in - buildRustCrateForPkgsFunc pkgs - ( - crateConfig // { - src = crateConfig.src or ( - pkgs.fetchurl rec { - name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz"; - # https://www.pietroalbini.org/blog/downloading-crates-io/ - # Not rate-limited, CDN URL. - url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate"; - sha256 = - assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}"); - crateConfig.sha256; - } - ); - extraRustcOpts = lib.lists.optional (targetFeatures != [ ]) "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}"; - inherit features dependencies buildDependencies crateRenames release; - } - ); + buildRustCrateForPkgsFunc pkgs ( + crateConfig + // { + src = + crateConfig.src or (pkgs.fetchurl rec { + name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz"; + # https://www.pietroalbini.org/blog/downloading-crates-io/ + # Not rate-limited, CDN URL. + url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate"; + sha256 = + assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}"); + crateConfig.sha256; + }); + extraRustcOpts = + lib.lists.optional (targetFeatures != [ ]) + "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}"; + inherit + features + dependencies + buildDependencies + crateRenames + release + ; + } + ); in builtByPackageIdByPkgs; - /* Returns the actual derivations for the given dependencies. */ - dependencyDerivations = - { buildByPackageId - , features - , dependencies - , target - }: + # Returns the actual derivations for the given dependencies. + dependencyDerivations = + { + buildByPackageId, + features, + dependencies, + target, + }: assert (builtins.isList features); assert (builtins.isList dependencies); assert (builtins.isAttrs target); let - enabledDependencies = filterEnabledDependencies { - inherit dependencies features target; - }; + enabledDependencies = filterEnabledDependencies { inherit dependencies features target; }; depDerivation = dependency: buildByPackageId dependency.packageId; in map depDerivation enabledDependencies; - /* Returns a sanitized version of val with all values substituted that cannot - be serialized as JSON. - */ - sanitizeForJson = val: - if builtins.isAttrs val - then lib.mapAttrs (n: v: sanitizeForJson v) val - else if builtins.isList val - then builtins.map sanitizeForJson val - else if builtins.isFunction val - then "function" - else val; + /* + Returns a sanitized version of val with all values substituted that cannot + be serialized as JSON. + */ + sanitizeForJson = + val: + if builtins.isAttrs val then + lib.mapAttrs (n: v: sanitizeForJson v) val + else if builtins.isList val then + builtins.map sanitizeForJson val + else if builtins.isFunction val then + "function" + else + val; - /* Returns various tools to debug a crate. */ - debugCrate = { packageId, target ? defaultTarget }: - assert (builtins.isString packageId); - let - debug = rec { - # The built tree as passed to buildRustCrate. - buildTree = buildRustCrateWithFeatures { - buildRustCrateForPkgsFunc = _: lib.id; - inherit packageId; - }; - sanitizedBuildTree = sanitizeForJson buildTree; - dependencyTree = sanitizeForJson - ( - buildRustCrateWithFeatures { - buildRustCrateForPkgsFunc = _: crate: { - "01_crateName" = crate.crateName or false; - "02_features" = crate.features or [ ]; - "03_dependencies" = crate.dependencies or [ ]; - }; - inherit packageId; - } - ); - mergedPackageFeatures = mergePackageFeatures { - features = rootFeatures; - inherit packageId target; - }; - diffedDefaultPackageFeatures = diffDefaultPackageFeatures { - inherit packageId target; + # Returns various tools to debug a crate. + debugCrate = + { + packageId, + target ? defaultTarget, + }: + assert (builtins.isString packageId); + let + debug = rec { + # The built tree as passed to buildRustCrate. + buildTree = buildRustCrateWithFeatures { + buildRustCrateForPkgsFunc = _: lib.id; + inherit packageId; + }; + sanitizedBuildTree = sanitizeForJson buildTree; + dependencyTree = sanitizeForJson (buildRustCrateWithFeatures { + buildRustCrateForPkgsFunc = _: crate: { + "01_crateName" = crate.crateName or false; + "02_features" = crate.features or [ ]; + "03_dependencies" = crate.dependencies or [ ]; + }; + inherit packageId; + }); + mergedPackageFeatures = mergePackageFeatures { + features = rootFeatures; + inherit packageId target; + }; + diffedDefaultPackageFeatures = diffDefaultPackageFeatures { inherit packageId target; }; }; + in + { + internal = debug; }; - in - { internal = debug; }; - /* Returns differences between cargo default features and crate2nix default - features. + /* + Returns differences between cargo default features and crate2nix default + features. - This is useful for verifying the feature resolution in crate2nix. - */ - diffDefaultPackageFeatures = - { crateConfigs ? crates - , packageId - , target - }: + This is useful for verifying the feature resolution in crate2nix. + */ + diffDefaultPackageFeatures = + { + crateConfigs ? crates, + packageId, + target, + }: assert (builtins.isAttrs crateConfigs); let prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; }); - mergedFeatures = - prefixValues - "crate2nix" - (mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; }); + mergedFeatures = prefixValues "crate2nix" (mergePackageFeatures { + inherit crateConfigs packageId target; + features = [ "default" ]; + }); configs = prefixValues "cargo" crateConfigs; - combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ]; - onlyInCargo = - builtins.attrNames - (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined); - onlyInCrate2Nix = - builtins.attrNames - (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined); - differentFeatures = lib.filterAttrs - ( - n: v: - (v ? "crate2nix") - && (v ? "cargo") - && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ]) - ) - combined; + combined = lib.foldAttrs (a: b: a // b) { } [ + mergedFeatures + configs + ]; + onlyInCargo = builtins.attrNames ( + lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined + ); + onlyInCrate2Nix = builtins.attrNames ( + lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined + ); + differentFeatures = lib.filterAttrs ( + n: v: + (v ? "crate2nix") + && (v ? "cargo") + && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ]) + ) combined; in - builtins.toJSON { - inherit onlyInCargo onlyInCrate2Nix differentFeatures; - }; + builtins.toJSON { inherit onlyInCargo onlyInCrate2Nix differentFeatures; }; - /* Returns an attrset mapping packageId to the list of enabled features. + /* + Returns an attrset mapping packageId to the list of enabled features. - If multiple paths to a dependency enable different features, the - corresponding feature sets are merged. Features in rust are additive. - */ - mergePackageFeatures = - { crateConfigs ? crates - , packageId - , rootPackageId ? packageId - , features ? rootFeatures - , dependencyPath ? [ crates.${packageId}.crateName ] - , featuresByPackageId ? { } - , target - # Adds devDependencies to the crate with rootPackageId. - , runTests ? false - , ... - } @ args: + If multiple paths to a dependency enable different features, the + corresponding feature sets are merged. Features in rust are additive. + */ + mergePackageFeatures = + { + crateConfigs ? crates, + packageId, + rootPackageId ? packageId, + features ? rootFeatures, + dependencyPath ? [ crates.${packageId}.crateName ], + featuresByPackageId ? { }, + target, + # Adds devDependencies to the crate with rootPackageId. + runTests ? false, + ... + }@args: assert (builtins.isAttrs crateConfigs); assert (builtins.isString packageId); assert (builtins.isString rootPackageId); @@ -3320,13 +4659,17 @@ rec { crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}"); expandedFeatures = expandFeatures (crateConfig.features or { }) features; enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures; - depWithResolvedFeatures = dependency: + depWithResolvedFeatures = + dependency: let packageId = dependency.packageId; features = dependencyFeatures enabledFeatures dependency; in - { inherit packageId features; }; - resolveDependencies = cache: path: dependencies: + { + inherit packageId features; + }; + resolveDependencies = + cache: path: dependencies: assert (builtins.isAttrs cache); assert (builtins.isList dependencies); let @@ -3337,158 +4680,161 @@ rec { directDependencies = map depWithResolvedFeatures enabledDependencies; foldOverCache = op: lib.foldl op cache directDependencies; in - foldOverCache - ( - cache: { packageId, features }: - let - cacheFeatures = cache.${packageId} or [ ]; - combinedFeatures = sortedUnique (cacheFeatures ++ features); - in - if cache ? ${packageId} && cache.${packageId} == combinedFeatures - then cache - else - mergePackageFeatures { - features = combinedFeatures; - featuresByPackageId = cache; - inherit crateConfigs packageId target runTests rootPackageId; - } - ); + foldOverCache ( + cache: + { packageId, features }: + let + cacheFeatures = cache.${packageId} or [ ]; + combinedFeatures = sortedUnique (cacheFeatures ++ features); + in + if cache ? ${packageId} && cache.${packageId} == combinedFeatures then + cache + else + mergePackageFeatures { + features = combinedFeatures; + featuresByPackageId = cache; + inherit + crateConfigs + packageId + target + runTests + rootPackageId + ; + } + ); cacheWithSelf = let cacheFeatures = featuresByPackageId.${packageId} or [ ]; combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures); in - featuresByPackageId // { - "${packageId}" = combinedFeatures; - }; - cacheWithDependencies = - resolveDependencies cacheWithSelf "dep" - ( - crateConfig.dependencies or [ ] - ++ lib.optionals - (runTests && packageId == rootPackageId) - (crateConfig.devDependencies or [ ]) - ); - cacheWithAll = - resolveDependencies - cacheWithDependencies "build" - (crateConfig.buildDependencies or [ ]); + featuresByPackageId // { "${packageId}" = combinedFeatures; }; + cacheWithDependencies = resolveDependencies cacheWithSelf "dep" ( + crateConfig.dependencies or [ ] + ++ lib.optionals (runTests && packageId == rootPackageId) (crateConfig.devDependencies or [ ]) + ); + cacheWithAll = resolveDependencies cacheWithDependencies "build" ( + crateConfig.buildDependencies or [ ] + ); in cacheWithAll; - /* Returns the enabled dependencies given the enabled features. */ - filterEnabledDependencies = { dependencies, features, target }: - assert (builtins.isList dependencies); - assert (builtins.isList features); - assert (builtins.isAttrs target); + # Returns the enabled dependencies given the enabled features. + filterEnabledDependencies = + { + dependencies, + features, + target, + }: + assert (builtins.isList dependencies); + assert (builtins.isList features); + assert (builtins.isAttrs target); - lib.filter - ( + lib.filter ( dep: let targetFunc = dep.target or (features: true); in targetFunc { inherit features target; } - && ( - !(dep.optional or false) - || builtins.any (doesFeatureEnableDependency dep) features - ) - ) - dependencies; + && (!(dep.optional or false) || builtins.any (doesFeatureEnableDependency dep) features) + ) dependencies; - /* Returns whether the given feature should enable the given dependency. */ - doesFeatureEnableDependency = dependency: feature: - let - name = dependency.rename or dependency.name; - prefix = "${name}/"; - len = builtins.stringLength prefix; - startsWithPrefix = builtins.substring 0 len feature == prefix; - in - feature == name || startsWithPrefix; + # Returns whether the given feature should enable the given dependency. + doesFeatureEnableDependency = + dependency: feature: + let + name = dependency.rename or dependency.name; + prefix = "${name}/"; + len = builtins.stringLength prefix; + startsWithPrefix = builtins.substring 0 len feature == prefix; + in + feature == name || startsWithPrefix; - /* Returns the expanded features for the given inputFeatures by applying the - rules in featureMap. + /* + Returns the expanded features for the given inputFeatures by applying the + rules in featureMap. - featureMap is an attribute set which maps feature names to lists of further - feature names to enable in case this feature is selected. - */ - expandFeatures = featureMap: inputFeatures: - assert (builtins.isAttrs featureMap); - assert (builtins.isList inputFeatures); - let - expandFeature = feature: - assert (builtins.isString feature); - [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ])); - outFeatures = lib.concatMap expandFeature inputFeatures; - in - sortedUnique outFeatures; + featureMap is an attribute set which maps feature names to lists of further + feature names to enable in case this feature is selected. + */ + expandFeatures = + featureMap: inputFeatures: + assert (builtins.isAttrs featureMap); + assert (builtins.isList inputFeatures); + let + expandFeature = + feature: + assert (builtins.isString feature); + [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ])); + outFeatures = lib.concatMap expandFeature inputFeatures; + in + sortedUnique outFeatures; - /* This function adds optional dependencies as features if they are enabled - indirectly by dependency features. This function mimics Cargo's behavior - described in a note at: - https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features - */ - enableFeatures = dependencies: features: - assert (builtins.isList features); - assert (builtins.isList dependencies); - let - additionalFeatures = lib.concatMap - ( + /* + This function adds optional dependencies as features if they are enabled + indirectly by dependency features. This function mimics Cargo's behavior + described in a note at: + https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features + */ + enableFeatures = + dependencies: features: + assert (builtins.isList features); + assert (builtins.isList dependencies); + let + additionalFeatures = lib.concatMap ( dependency: - assert (builtins.isAttrs dependency); - let - enabled = builtins.any (doesFeatureEnableDependency dependency) features; - in - if (dependency.optional or false) && enabled - then [ (dependency.rename or dependency.name) ] - else [ ] - ) - dependencies; - in - sortedUnique (features ++ additionalFeatures); + assert (builtins.isAttrs dependency); + let + enabled = builtins.any (doesFeatureEnableDependency dependency) features; + in + if (dependency.optional or false) && enabled then + [ (dependency.rename or dependency.name) ] + else + [ ] + ) dependencies; + in + sortedUnique (features ++ additionalFeatures); - /* - Returns the actual features for the given dependency. + /* + Returns the actual features for the given dependency. - features: The features of the crate that refers this dependency. - */ - dependencyFeatures = features: dependency: - assert (builtins.isList features); - assert (builtins.isAttrs dependency); - let - defaultOrNil = - if dependency.usesDefaultFeatures or true - then [ "default" ] - else [ ]; - explicitFeatures = dependency.features or [ ]; - additionalDependencyFeatures = - let - dependencyPrefix = (dependency.rename or dependency.name) + "/"; - dependencyFeatures = - builtins.filter (f: lib.hasPrefix dependencyPrefix f) features; - in - builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures; - in - defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures; + features: The features of the crate that refers this dependency. + */ + dependencyFeatures = + features: dependency: + assert (builtins.isList features); + assert (builtins.isAttrs dependency); + let + defaultOrNil = if dependency.usesDefaultFeatures or true then [ "default" ] else [ ]; + explicitFeatures = dependency.features or [ ]; + additionalDependencyFeatures = + let + dependencyPrefix = (dependency.rename or dependency.name) + "/"; + dependencyFeatures = builtins.filter (f: lib.hasPrefix dependencyPrefix f) features; + in + builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures; + in + defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures; - /* Sorts and removes duplicates from a list of strings. */ - sortedUnique = features: - assert (builtins.isList features); - assert (builtins.all builtins.isString features); - let - outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features; - outFeaturesUnique = builtins.attrNames outFeaturesSet; - in - builtins.sort (a: b: a < b) outFeaturesUnique; + # Sorts and removes duplicates from a list of strings. + sortedUnique = + features: + assert (builtins.isList features); + assert (builtins.all builtins.isString features); + let + outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features; + outFeaturesUnique = builtins.attrNames outFeaturesSet; + in + builtins.sort (a: b: a < b) outFeaturesUnique; - deprecationWarning = message: value: - if strictDeprecation - then builtins.throw "strictDeprecation enabled, aborting: ${message}" - else builtins.trace message value; + deprecationWarning = + message: value: + if strictDeprecation then + builtins.throw "strictDeprecation enabled, aborting: ${message}" + else + builtins.trace message value; - # - # crate2nix/default.nix (excerpt end) - # + # + # crate2nix/default.nix (excerpt end) + # }; } - diff --git a/pkgs/build-support/rust/build-rust-package/default.nix b/pkgs/build-support/rust/build-rust-package/default.nix index cd90c68..c8d7a5c 100644 --- a/pkgs/build-support/rust/build-rust-package/default.nix +++ b/pkgs/build-support/rust/build-rust-package/default.nix @@ -1,82 +1,103 @@ -{ lib -, importCargoLock -, fetchCargoTarball -, stdenv -, callPackage -, cargoBuildHook -, cargoCheckHook -, cargoInstallHook -, cargoNextestHook -, cargoSetupHook -, cargo -, cargo-auditable -, buildPackages -, rustc -, libiconv -, windows +{ + lib, + importCargoLock, + fetchCargoTarball, + stdenv, + callPackage, + cargoBuildHook, + cargoCheckHook, + cargoInstallHook, + cargoNextestHook, + cargoSetupHook, + cargo, + cargo-auditable, + buildPackages, + rustc, + libiconv, + windows, }: -{ name ? "${args.pname}-${args.version}" +{ + name ? "${args.pname}-${args.version}", # Name for the vendored dependencies tarball -, cargoDepsName ? name + cargoDepsName ? name, -, src ? null -, srcs ? null -, preUnpack ? null -, unpackPhase ? null -, postUnpack ? null -, cargoPatches ? [] -, patches ? [] -, sourceRoot ? null -, logLevel ? "" -, buildInputs ? [] -, nativeBuildInputs ? [] -, cargoUpdateHook ? "" -, cargoDepsHook ? "" -, buildType ? "release" -, meta ? {} -, cargoLock ? null -, cargoVendorDir ? null -, checkType ? buildType -, buildNoDefaultFeatures ? false -, checkNoDefaultFeatures ? buildNoDefaultFeatures -, buildFeatures ? [ ] -, checkFeatures ? buildFeatures -, useNextest ? false -# Enable except on aarch64 pkgsStatic, where we use lld for reasons -, auditable ? !cargo-auditable.meta.broken && !(stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isDarwin) + src ? null, + srcs ? null, + preUnpack ? null, + unpackPhase ? null, + postUnpack ? null, + cargoPatches ? [ ], + patches ? [ ], + sourceRoot ? null, + logLevel ? "", + buildInputs ? [ ], + nativeBuildInputs ? [ ], + cargoUpdateHook ? "", + cargoDepsHook ? "", + buildType ? "release", + meta ? { }, + cargoLock ? null, + cargoVendorDir ? null, + checkType ? buildType, + buildNoDefaultFeatures ? false, + checkNoDefaultFeatures ? buildNoDefaultFeatures, + buildFeatures ? [ ], + checkFeatures ? buildFeatures, + useNextest ? false, + # Enable except on aarch64 pkgsStatic, where we use lld for reasons + auditable ? + !cargo-auditable.meta.broken + && !( + stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isDarwin + ), -, depsExtraArgs ? {} + depsExtraArgs ? { }, -# Toggles whether a custom sysroot is created when the target is a .json file. -, __internal_dontAddSysroot ? false + # Toggles whether a custom sysroot is created when the target is a .json file. + __internal_dontAddSysroot ? false, -# Needed to `pushd`/`popd` into a subdir of a tarball if this subdir -# contains a Cargo.toml, but isn't part of a workspace (which is e.g. the -# case for `rustfmt`/etc from the `rust-sources). -# Otherwise, everything from the tarball would've been built/tested. -, buildAndTestSubdir ? null -, ... } @ args: + # Needed to `pushd`/`popd` into a subdir of a tarball if this subdir + # contains a Cargo.toml, but isn't part of a workspace (which is e.g. the + # case for `rustfmt`/etc from the `rust-sources). + # Otherwise, everything from the tarball would've been built/tested. + buildAndTestSubdir ? null, + ... +}@args: -assert cargoVendorDir == null && cargoLock == null - -> !(args ? cargoSha256 && args.cargoSha256 != null) && !(args ? cargoHash && args.cargoHash != null) - -> throw "cargoSha256, cargoHash, cargoVendorDir, or cargoLock must be set"; +assert + cargoVendorDir == null && cargoLock == null + -> + !(args ? cargoSha256 && args.cargoSha256 != null) && !(args ? cargoHash && args.cargoHash != null) + -> throw "cargoSha256, cargoHash, cargoVendorDir, or cargoLock must be set"; let cargoDeps = - if cargoVendorDir != null then null - else if cargoLock != null then importCargoLock cargoLock - else fetchCargoTarball ({ - inherit src srcs sourceRoot preUnpack unpackPhase postUnpack cargoUpdateHook; - name = cargoDepsName; - patches = cargoPatches; - } // lib.optionalAttrs (args ? cargoHash) { - hash = args.cargoHash; - } // lib.optionalAttrs (args ? cargoSha256) { - sha256 = args.cargoSha256; - } // depsExtraArgs); + if cargoVendorDir != null then + null + else if cargoLock != null then + importCargoLock cargoLock + else + fetchCargoTarball ( + { + inherit + src + srcs + sourceRoot + preUnpack + unpackPhase + postUnpack + cargoUpdateHook + ; + name = cargoDepsName; + patches = cargoPatches; + } + // lib.optionalAttrs (args ? cargoHash) { hash = args.cargoHash; } + // lib.optionalAttrs (args ? cargoSha256) { sha256 = args.cargoSha256; } + // depsExtraArgs + ); target = stdenv.hostPlatform.rust.rustcTargetSpec; targetIsJSON = lib.hasSuffix ".json" target; @@ -95,76 +116,90 @@ in # See https://os.phil-opp.com/testing/ for more information. assert useSysroot -> !(args.doCheck or true); -stdenv.mkDerivation ((removeAttrs args [ "depsExtraArgs" "cargoUpdateHook" "cargoLock" ]) // lib.optionalAttrs useSysroot { - RUSTFLAGS = "--sysroot ${sysroot} " + (args.RUSTFLAGS or ""); -} // { - inherit buildAndTestSubdir cargoDeps; +stdenv.mkDerivation ( + (removeAttrs args [ + "depsExtraArgs" + "cargoUpdateHook" + "cargoLock" + ]) + // lib.optionalAttrs useSysroot { RUSTFLAGS = "--sysroot ${sysroot} " + (args.RUSTFLAGS or ""); } + // { + inherit buildAndTestSubdir cargoDeps; - cargoBuildType = buildType; + cargoBuildType = buildType; - cargoCheckType = checkType; + cargoCheckType = checkType; - cargoBuildNoDefaultFeatures = buildNoDefaultFeatures; + cargoBuildNoDefaultFeatures = buildNoDefaultFeatures; - cargoCheckNoDefaultFeatures = checkNoDefaultFeatures; + cargoCheckNoDefaultFeatures = checkNoDefaultFeatures; - cargoBuildFeatures = buildFeatures; + cargoBuildFeatures = buildFeatures; - cargoCheckFeatures = checkFeatures; + cargoCheckFeatures = checkFeatures; - patchRegistryDeps = ./patch-registry-deps; + patchRegistryDeps = ./patch-registry-deps; - nativeBuildInputs = nativeBuildInputs ++ lib.optionals auditable [ - (buildPackages.cargo-auditable-cargo-wrapper.override { - inherit cargo cargo-auditable; - }) - ] ++ [ - cargoBuildHook - (if useNextest then cargoNextestHook else cargoCheckHook) - cargoInstallHook - cargoSetupHook - rustc - ]; + nativeBuildInputs = + nativeBuildInputs + ++ lib.optionals auditable [ + (buildPackages.cargo-auditable-cargo-wrapper.override { inherit cargo cargo-auditable; }) + ] + ++ [ + cargoBuildHook + (if useNextest then cargoNextestHook else cargoCheckHook) + cargoInstallHook + cargoSetupHook + rustc + ]; - buildInputs = buildInputs - ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ] - ++ lib.optionals stdenv.hostPlatform.isMinGW [ windows.pthreads ]; + buildInputs = + buildInputs + ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ windows.pthreads ]; - patches = cargoPatches ++ patches; + patches = cargoPatches ++ patches; - PKG_CONFIG_ALLOW_CROSS = - if stdenv.buildPlatform != stdenv.hostPlatform then 1 else 0; + PKG_CONFIG_ALLOW_CROSS = if stdenv.buildPlatform != stdenv.hostPlatform then 1 else 0; - postUnpack = '' - eval "$cargoDepsHook" + postUnpack = + '' + eval "$cargoDepsHook" - export RUST_LOG=${logLevel} - '' + (args.postUnpack or ""); + export RUST_LOG=${logLevel} + '' + + (args.postUnpack or ""); - configurePhase = args.configurePhase or '' - runHook preConfigure - runHook postConfigure - ''; + configurePhase = + args.configurePhase or '' + runHook preConfigure + runHook postConfigure + ''; - doCheck = args.doCheck or true; + doCheck = args.doCheck or true; - strictDeps = true; + strictDeps = true; - meta = { - # default to Rust's platforms - platforms = rustc.meta.platforms ++ [ - # Platforms without host tools from - # https://doc.rust-lang.org/nightly/rustc/platform-support.html - "armv7a-darwin" - "armv5tel-linux" "armv7a-linux" "m68k-linux" "mipsel-linux" - "mips64el-linux" "riscv32-linux" - "armv6l-netbsd" - "x86_64-redox" - "wasm32-wasi" - ]; - badPlatforms = [ - # Rust is currently unable to target the n32 ABI - lib.systems.inspect.patterns.isMips64n32 - ]; - } // meta; -}) + meta = { + # default to Rust's platforms + platforms = rustc.meta.platforms ++ [ + # Platforms without host tools from + # https://doc.rust-lang.org/nightly/rustc/platform-support.html + "armv7a-darwin" + "armv5tel-linux" + "armv7a-linux" + "m68k-linux" + "mipsel-linux" + "mips64el-linux" + "riscv32-linux" + "armv6l-netbsd" + "x86_64-redox" + "wasm32-wasi" + ]; + badPlatforms = [ + # Rust is currently unable to target the n32 ABI + lib.systems.inspect.patterns.isMips64n32 + ]; + } // meta; + } +) diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix index bb95b7b..9ad7f6f 100644 --- a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix +++ b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix @@ -1,16 +1,33 @@ -{ lib, stdenv, rustPlatform, buildPackages }: +{ + lib, + stdenv, + rustPlatform, + buildPackages, +}: -{ shortTarget, originalCargoToml, target, RUSTFLAGS }: +{ + shortTarget, + originalCargoToml, + target, + RUSTFLAGS, +}: let cargoSrc = import ../../sysroot/src.nix { - inherit lib stdenv rustPlatform buildPackages originalCargoToml; + inherit + lib + stdenv + rustPlatform + buildPackages + originalCargoToml + ; }; -in rustPlatform.buildRustPackage { +in +rustPlatform.buildRustPackage { inherit target RUSTFLAGS; name = "custom-sysroot"; - src = cargoSrc; + src = cargoSrc; RUSTC_BOOTSTRAP = 1; __internal_dontAddSysroot = true; diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix index 92c71df..32c8509 100644 --- a/pkgs/build-support/rust/default-crate-overrides.nix +++ b/pkgs/build-support/rust/default-crate-overrides.nix @@ -1,47 +1,48 @@ -{ lib -, stdenv -, atk -, pkg-config -, curl -, darwin -, libgit2 -, gtk3 -, libssh2 -, openssl -, sqlite -, zlib -, dbus -, dbus-glib -, gdk-pixbuf -, cairo -, python3 -, libsodium -, postgresql -, gmp -, gobject-introspection -, foundationdb -, capnproto -, nettle -, gtk4 -, clang -, llvmPackages -, linux-pam -, pango -, cmake -, glib -, freetype -, fontconfig -, rdkafka -, udev -, libevdev -, alsa-lib -, graphene -, protobuf -, autoconf -, automake -, libtool -, seatd # =libseat -, ... +{ + lib, + stdenv, + atk, + pkg-config, + curl, + darwin, + libgit2, + gtk3, + libssh2, + openssl, + sqlite, + zlib, + dbus, + dbus-glib, + gdk-pixbuf, + cairo, + python3, + libsodium, + postgresql, + gmp, + gobject-introspection, + foundationdb, + capnproto, + nettle, + gtk4, + clang, + llvmPackages, + linux-pam, + pango, + cmake, + glib, + freetype, + fontconfig, + rdkafka, + udev, + libevdev, + alsa-lib, + graphene, + protobuf, + autoconf, + automake, + libtool, + seatd, # =libseat + ... }: let @@ -53,22 +54,26 @@ in buildInputs = [ alsa-lib ]; }; - cairo-rs = attrs: { - buildInputs = [ cairo ]; - }; + cairo-rs = attrs: { buildInputs = [ cairo ]; }; cairo-sys-rs = attrs: { nativeBuildInputs = [ pkg-config ]; buildInputs = [ cairo ]; }; - capnp-rpc = attrs: { - nativeBuildInputs = [ capnproto ]; - }; + capnp-rpc = attrs: { nativeBuildInputs = [ capnproto ]; }; cargo = attrs: { - buildInputs = [ openssl zlib curl ] - ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ]; + buildInputs = + [ + openssl + zlib + curl + ] + ++ lib.optionals stdenv.isDarwin [ + CoreFoundation + Security + ]; }; libz-sys = attrs: { @@ -79,8 +84,14 @@ in curl-sys = attrs: { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ zlib curl ]; - propagatedBuildInputs = [ curl zlib ]; + buildInputs = [ + zlib + curl + ]; + propagatedBuildInputs = [ + curl + zlib + ]; extraLinkFlags = [ "-L${zlib.out}/lib" ]; }; @@ -90,11 +101,14 @@ in }; evdev-sys = attrs: { - nativeBuildInputs = [ - pkg-config - ] ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [ - python3 autoconf automake libtool - ]; + nativeBuildInputs = + [ pkg-config ] + ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [ + python3 + autoconf + automake + libtool + ]; buildInputs = [ libevdev ]; # This prevents libevdev's build.rs from trying to `git fetch` when HOST!=TARGET @@ -103,9 +117,7 @@ in ''; }; - expat-sys = attrs: { - nativeBuildInputs = [ cmake ]; - }; + expat-sys = attrs: { nativeBuildInputs = [ cmake ]; }; foundationdb-sys = attrs: { buildInputs = [ foundationdb ]; @@ -117,9 +129,7 @@ in # ''; }; - foundationdb = attrs: { - buildInputs = [ foundationdb ]; - }; + foundationdb = attrs: { buildInputs = [ foundationdb ]; }; freetype-sys = attrs: { nativeBuildInputs = [ cmake ]; @@ -131,21 +141,13 @@ in buildInputs = [ glib ]; }; - gobject-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; + gobject-sys = attrs: { buildInputs = [ dbus-glib ]; }; - gio-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; + gio-sys = attrs: { buildInputs = [ dbus-glib ]; }; - gdk-pixbuf-sys = attrs: { - buildInputs = [ dbus-glib ]; - }; + gdk-pixbuf-sys = attrs: { buildInputs = [ dbus-glib ]; }; - gdk-pixbuf = attrs: { - buildInputs = [ gdk-pixbuf ]; - }; + gdk-pixbuf = attrs: { buildInputs = [ gdk-pixbuf ]; }; gtk-sys = attrs: { buildInputs = [ gtk3 ]; @@ -170,7 +172,11 @@ in libgit2-sys = attrs: { LIBGIT2_SYS_USE_PKG_CONFIG = true; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl zlib libgit2 ]; + buildInputs = [ + openssl + zlib + libgit2 + ]; }; libseat-sys = attrs: { @@ -185,7 +191,11 @@ in libssh2-sys = attrs: { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl zlib libssh2 ]; + buildInputs = [ + openssl + zlib + libssh2 + ]; }; libdbus-sys = attrs: { @@ -199,28 +209,30 @@ in }; graphene-sys = attrs: { - nativeBuildInputs = [ pkg-config gobject-introspection ]; + nativeBuildInputs = [ + pkg-config + gobject-introspection + ]; buildInputs = [ graphene ]; }; nettle-sys = attrs: { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ nettle clang ]; + buildInputs = [ + nettle + clang + ]; LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; }; - openssl = attrs: { - buildInputs = [ openssl ]; - }; + openssl = attrs: { buildInputs = [ openssl ]; }; openssl-sys = attrs: { nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ]; }; - pam-sys = attr: { - buildInputs = [ linux-pam ]; - }; + pam-sys = attr: { buildInputs = [ linux-pam ]; }; pango-sys = attr: { nativeBuildInputs = [ pkg-config ]; @@ -232,9 +244,7 @@ in buildInputs = [ postgresql ]; }; - prost-build = attr: { - nativeBuildInputs = [ protobuf ]; - }; + prost-build = attr: { nativeBuildInputs = [ protobuf ]; }; rdkafka-sys = attr: { nativeBuildInputs = [ pkg-config ]; @@ -243,28 +253,23 @@ in rink = attrs: { buildInputs = [ gmp ]; - crateBin = [{ name = "rink"; path = "src/bin/rink.rs"; }]; + crateBin = [ + { + name = "rink"; + path = "src/bin/rink.rs"; + } + ]; }; - security-framework-sys = attr: { - propagatedBuildInputs = lib.optional stdenv.isDarwin Security; - }; + security-framework-sys = attr: { propagatedBuildInputs = lib.optional stdenv.isDarwin Security; }; - sequoia-openpgp = attrs: { - buildInputs = [ gmp ]; - }; + sequoia-openpgp = attrs: { buildInputs = [ gmp ]; }; - sequoia-openpgp-ffi = attrs: { - buildInputs = [ gmp ]; - }; + sequoia-openpgp-ffi = attrs: { buildInputs = [ gmp ]; }; - sequoia-ipc = attrs: { - buildInputs = [ gmp ]; - }; + sequoia-ipc = attrs: { buildInputs = [ gmp ]; }; - sequoia-guide = attrs: { - buildInputs = [ gmp ]; - }; + sequoia-guide = attrs: { buildInputs = [ gmp ]; }; pangocairo-sys = attr: { nativeBuildInputs = [ pkg-config ]; @@ -273,25 +278,35 @@ in sequoia-store = attrs: { nativeBuildInputs = [ capnproto ]; - buildInputs = [ sqlite gmp ]; + buildInputs = [ + sqlite + gmp + ]; }; sequoia-sq = attrs: { - buildInputs = [ sqlite gmp ]; + buildInputs = [ + sqlite + gmp + ]; }; sequoia-tool = attrs: { nativeBuildInputs = [ capnproto ]; - buildInputs = [ sqlite gmp ]; + buildInputs = [ + sqlite + gmp + ]; }; - serde_derive = attrs: { - buildInputs = lib.optional stdenv.isDarwin Security; - }; + serde_derive = attrs: { buildInputs = lib.optional stdenv.isDarwin Security; }; servo-fontconfig-sys = attrs: { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ freetype fontconfig ]; + buildInputs = [ + freetype + fontconfig + ]; }; thrussh-libsodium = attrs: { @@ -299,9 +314,7 @@ in buildInputs = [ libsodium ]; }; - xcb = attrs: { - buildInputs = [ python3 ]; - }; + xcb = attrs: { buildInputs = [ python3 ]; }; atk-sys = attrs: { nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix index adbfe98..a1fa2f0 100644 --- a/pkgs/build-support/rust/fetch-cargo-tarball/default.nix +++ b/pkgs/build-support/rust/fetch-cargo-tarball/default.nix @@ -1,116 +1,143 @@ -{ lib, stdenv, cacert, git, cargo, python3 }: -let cargo-vendor-normalise = stdenv.mkDerivation { - name = "cargo-vendor-normalise"; - src = ./cargo-vendor-normalise.py; - nativeBuildInputs = [ python3.pkgs.wrapPython ]; - dontUnpack = true; - installPhase = "install -D $src $out/bin/cargo-vendor-normalise"; - pythonPath = [ python3.pkgs.toml ]; - postFixup = "wrapPythonPrograms"; - doInstallCheck = true; - installCheckPhase = '' - # check that ../fetchcargo-default-config.toml is a fix point - reference=${../fetchcargo-default-config.toml} - < $reference $out/bin/cargo-vendor-normalise > test; - cmp test $reference - ''; - preferLocalBuild = true; -}; +{ + lib, + stdenv, + cacert, + git, + cargo, + python3, +}: +let + cargo-vendor-normalise = stdenv.mkDerivation { + name = "cargo-vendor-normalise"; + src = ./cargo-vendor-normalise.py; + nativeBuildInputs = [ python3.pkgs.wrapPython ]; + dontUnpack = true; + installPhase = "install -D $src $out/bin/cargo-vendor-normalise"; + pythonPath = [ python3.pkgs.toml ]; + postFixup = "wrapPythonPrograms"; + doInstallCheck = true; + installCheckPhase = '' + # check that ../fetchcargo-default-config.toml is a fix point + reference=${../fetchcargo-default-config.toml} + < $reference $out/bin/cargo-vendor-normalise > test; + cmp test $reference + ''; + preferLocalBuild = true; + }; in -{ name ? "cargo-deps" -, src ? null -, srcs ? [] -, patches ? [] -, sourceRoot ? "" -, cargoUpdateHook ? "" -, nativeBuildInputs ? [] -, ... -} @ args: +{ + name ? "cargo-deps", + src ? null, + srcs ? [ ], + patches ? [ ], + sourceRoot ? "", + cargoUpdateHook ? "", + nativeBuildInputs ? [ ], + ... +}@args: -let hash_ = - if args ? hash then - { - outputHashAlgo = if args.hash == "" then "sha256" else null; - outputHash = args.hash; - } - else if args ? sha256 then { outputHashAlgo = "sha256"; outputHash = args.sha256; } - else throw "fetchCargoTarball requires a hash for ${name}"; -in stdenv.mkDerivation ({ - name = "${name}-vendor.tar.gz"; - nativeBuildInputs = [ cacert git cargo-vendor-normalise cargo ] ++ nativeBuildInputs; +let + hash_ = + if args ? hash then + { + outputHashAlgo = if args.hash == "" then "sha256" else null; + outputHash = args.hash; + } + else if args ? sha256 then + { + outputHashAlgo = "sha256"; + outputHash = args.sha256; + } + else + throw "fetchCargoTarball requires a hash for ${name}"; +in +stdenv.mkDerivation ( + { + name = "${name}-vendor.tar.gz"; + nativeBuildInputs = [ + cacert + git + cargo-vendor-normalise + cargo + ] ++ nativeBuildInputs; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - # Ensure deterministic Cargo vendor builds - export SOURCE_DATE_EPOCH=1 + # Ensure deterministic Cargo vendor builds + export SOURCE_DATE_EPOCH=1 - if [[ ! -f Cargo.lock ]]; then - echo - echo "ERROR: The Cargo.lock file doesn't exist" - echo - echo "Cargo.lock is needed to make sure that cargoHash/cargoSha256 doesn't change" - echo "when the registry is updated." - echo + if [[ ! -f Cargo.lock ]]; then + echo + echo "ERROR: The Cargo.lock file doesn't exist" + echo + echo "Cargo.lock is needed to make sure that cargoHash/cargoSha256 doesn't change" + echo "when the registry is updated." + echo - exit 1 - fi + exit 1 + fi - # Keep the original around for copyLockfile - cp Cargo.lock Cargo.lock.orig + # Keep the original around for copyLockfile + cp Cargo.lock Cargo.lock.orig - export CARGO_HOME=$(mktemp -d cargo-home.XXX) - CARGO_CONFIG=$(mktemp cargo-config.XXXX) + export CARGO_HOME=$(mktemp -d cargo-home.XXX) + CARGO_CONFIG=$(mktemp cargo-config.XXXX) - if [[ -n "$NIX_CRATES_INDEX" ]]; then - cat >$CARGO_HOME/config.toml <$CARGO_HOME/config.toml < $CARGO_CONFIG + cargo vendor $name --respect-source-config | cargo-vendor-normalise > $CARGO_CONFIG - # Create an empty vendor directory when there is no dependency to vendor - mkdir -p $name - # Add the Cargo.lock to allow hash invalidation - cp Cargo.lock.orig $name/Cargo.lock + # Create an empty vendor directory when there is no dependency to vendor + mkdir -p $name + # Add the Cargo.lock to allow hash invalidation + cp Cargo.lock.orig $name/Cargo.lock - # Packages with git dependencies generate non-default cargo configs, so - # always install it rather than trying to write a standard default template. - install -D $CARGO_CONFIG $name/.cargo/config; + # Packages with git dependencies generate non-default cargo configs, so + # always install it rather than trying to write a standard default template. + install -D $CARGO_CONFIG $name/.cargo/config; - runHook postBuild - ''; + runHook postBuild + ''; - # Build a reproducible tar, per instructions at https://reproducible-builds.org/docs/archives/ - installPhase = '' - tar --owner=0 --group=0 --numeric-owner --format=gnu \ - --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ - -czf $out $name - ''; + # Build a reproducible tar, per instructions at https://reproducible-builds.org/docs/archives/ + installPhase = '' + tar --owner=0 --group=0 --numeric-owner --format=gnu \ + --sort=name --mtime="@$SOURCE_DATE_EPOCH" \ + -czf $out $name + ''; - inherit (hash_) outputHashAlgo outputHash; + inherit (hash_) outputHashAlgo outputHash; - impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_CRATES_INDEX" ]; -} // (builtins.removeAttrs args [ - "name" "sha256" "cargoUpdateHook" "nativeBuildInputs" -])) + impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [ "NIX_CRATES_INDEX" ]; + } + // (builtins.removeAttrs args [ + "name" + "sha256" + "cargoUpdateHook" + "nativeBuildInputs" + ]) +) diff --git a/pkgs/build-support/rust/fetchcrate.nix b/pkgs/build-support/rust/fetchcrate.nix index 423f4d7..fef2e0b 100644 --- a/pkgs/build-support/rust/fetchcrate.nix +++ b/pkgs/build-support/rust/fetchcrate.nix @@ -1,20 +1,33 @@ -{ lib, fetchzip, fetchurl }: +{ + lib, + fetchzip, + fetchurl, +}: -{ crateName ? args.pname -, pname ? null +{ + crateName ? args.pname, + pname ? null, # The `dl` field of the registry's index configuration # https://doc.rust-lang.org/cargo/reference/registry-index.html#index-configuration -, registryDl ? "https://crates.io/api/v1/crates" -, version -, unpack ? true -, ... -} @ args: + registryDl ? "https://crates.io/api/v1/crates", + version, + unpack ? true, + ... +}@args: assert pname == null || pname == crateName; -(if unpack then fetchzip else fetchurl) ({ - name = "${crateName}-${version}.tar.gz"; - url = "${registryDl}/${crateName}/${version}/download"; -} // lib.optionalAttrs unpack { - extension = "tar.gz"; -} // removeAttrs args [ "crateName" "pname" "registryDl" "version" "unpack" ]) +(if unpack then fetchzip else fetchurl) ( + { + name = "${crateName}-${version}.tar.gz"; + url = "${registryDl}/${crateName}/${version}/download"; + } + // lib.optionalAttrs unpack { extension = "tar.gz"; } + // removeAttrs args [ + "crateName" + "pname" + "registryDl" + "version" + "unpack" + ] +) diff --git a/pkgs/build-support/rust/hooks/default.nix b/pkgs/build-support/rust/hooks/default.nix index 874f23f..b7ffb4c 100644 --- a/pkgs/build-support/rust/hooks/default.nix +++ b/pkgs/build-support/rust/hooks/default.nix @@ -1,59 +1,72 @@ -{ buildPackages -, callPackage -, cargo -, cargo-nextest -, clang -, lib -, makeSetupHook -, maturin -, rust -, rustc -, stdenv +{ + buildPackages, + callPackage, + cargo, + cargo-nextest, + clang, + lib, + makeSetupHook, + maturin, + rust, + rustc, + stdenv, -# This confusingly-named parameter indicates the *subdirectory of -# `target/` from which to copy the build artifacts. It is derived -# from a stdenv platform (or a JSON file). -, target ? stdenv.hostPlatform.rust.cargoShortTarget + # This confusingly-named parameter indicates the *subdirectory of + # `target/` from which to copy the build artifacts. It is derived + # from a stdenv platform (or a JSON file). + target ? stdenv.hostPlatform.rust.cargoShortTarget, }: { - cargoBuildHook = callPackage ({ }: + cargoBuildHook = callPackage ( + { }: makeSetupHook { name = "cargo-build-hook.sh"; propagatedBuildInputs = [ cargo ]; substitutions = { inherit (rust.envVars) rustHostPlatformSpec setEnv; }; - } ./cargo-build-hook.sh) {}; + } ./cargo-build-hook.sh + ) { }; - cargoCheckHook = callPackage ({ }: + cargoCheckHook = callPackage ( + { }: makeSetupHook { name = "cargo-check-hook.sh"; propagatedBuildInputs = [ cargo ]; substitutions = { inherit (rust.envVars) rustHostPlatformSpec; }; - } ./cargo-check-hook.sh) {}; + } ./cargo-check-hook.sh + ) { }; - cargoInstallHook = callPackage ({ }: + cargoInstallHook = callPackage ( + { }: makeSetupHook { name = "cargo-install-hook.sh"; propagatedBuildInputs = [ ]; substitutions = { targetSubdirectory = target; }; - } ./cargo-install-hook.sh) {}; + } ./cargo-install-hook.sh + ) { }; - cargoNextestHook = callPackage ({ }: + cargoNextestHook = callPackage ( + { }: makeSetupHook { name = "cargo-nextest-hook.sh"; - propagatedBuildInputs = [ cargo cargo-nextest ]; + propagatedBuildInputs = [ + cargo + cargo-nextest + ]; substitutions = { inherit (rust.envVars) rustHostPlatformSpec; }; - } ./cargo-nextest-hook.sh) {}; + } ./cargo-nextest-hook.sh + ) { }; - cargoSetupHook = callPackage ({ }: + cargoSetupHook = callPackage ( + { }: makeSetupHook { name = "cargo-setup-hook.sh"; propagatedBuildInputs = [ ]; @@ -71,12 +84,16 @@ [target."${stdenv.hostPlatform.rust.rustcTarget}"] "linker" = "${rust.envVars.linkerForHost}" ''} - "rustflags" = [ "-C", "target-feature=${if stdenv.hostPlatform.isStatic then "+" else "-"}crt-static" ] + "rustflags" = [ "-C", "target-feature=${ + if stdenv.hostPlatform.isStatic then "+" else "-" + }crt-static" ] ''; }; - } ./cargo-setup-hook.sh) {}; + } ./cargo-setup-hook.sh + ) { }; - maturinBuildHook = callPackage ({ pkgsHostTarget }: + maturinBuildHook = callPackage ( + { pkgsHostTarget }: makeSetupHook { name = "maturin-build-hook.sh"; propagatedBuildInputs = [ @@ -87,14 +104,17 @@ substitutions = { inherit (rust.envVars) rustTargetPlatformSpec setEnv; }; - } ./maturin-build-hook.sh) {}; + } ./maturin-build-hook.sh + ) { }; - bindgenHook = callPackage ({}: makeSetupHook { + bindgenHook = callPackage ( + { }: + makeSetupHook { name = "rust-bindgen-hook"; substitutions = { libclang = clang.cc.lib; inherit clang; }; - } - ./rust-bindgen-hook.sh) {}; + } ./rust-bindgen-hook.sh + ) { }; } diff --git a/pkgs/build-support/rust/import-cargo-lock.nix b/pkgs/build-support/rust/import-cargo-lock.nix index e3fe57e..5e1a3c1 100644 --- a/pkgs/build-support/rust/import-cargo-lock.nix +++ b/pkgs/build-support/rust/import-cargo-lock.nix @@ -1,14 +1,23 @@ -{ fetchgit, fetchurl, lib, writers, python3Packages, runCommand, cargo, jq }: +{ + fetchgit, + fetchurl, + lib, + writers, + python3Packages, + runCommand, + cargo, + jq, +}: { # Cargo lock file - lockFile ? null + lockFile ? null, # Cargo lock file contents as string -, lockFileContents ? null + lockFileContents ? null, # Allow `builtins.fetchGit` to be used to not require hashes for git dependencies -, allowBuiltinFetchGit ? false + allowBuiltinFetchGit ? false, # Additional registries to pull sources from # { "https://" = "https://"; } @@ -17,33 +26,34 @@ # https://doc.rust-lang.org/cargo/reference/registries.html#using-an-alternate-registry # - "download URL" is the "dl" value of its associated index configuration # https://doc.rust-lang.org/cargo/reference/registry-index.html#index-configuration -, extraRegistries ? {} + extraRegistries ? { }, # Hashes for git dependencies. -, outputHashes ? {} -} @ args: + outputHashes ? { }, +}@args: assert (lockFile == null) != (lockFileContents == null); let # Parse a git source into different components. - parseGit = src: + parseGit = + src: let parts = builtins.match ''git\+([^?]+)(\?(rev|tag|branch)=(.*))?#(.*)'' src; type = builtins.elemAt parts 2; # rev, tag or branch value = builtins.elemAt parts 3; in - if parts == null then null - else { + if parts == null then + null + else + { url = builtins.elemAt parts 0; sha = builtins.elemAt parts 4; - } // lib.optionalAttrs (type != null) { inherit type value; }; + } + // lib.optionalAttrs (type != null) { inherit type value; }; # shadows args.lockFileContents - lockFileContents = - if lockFile != null - then builtins.readFile lockFile - else args.lockFileContents; + lockFileContents = if lockFile != null then builtins.readFile lockFile else args.lockFileContents; parsedLockFile = builtins.fromTOML lockFileContents; @@ -66,10 +76,15 @@ let builtins.map nameGitSha (builtins.filter (pkg: lib.hasPrefix "git+" pkg.source) depPackages) ); - nameGitSha = pkg: let gitParts = parseGit pkg.source; in { - name = "${pkg.name}-${pkg.version}"; - value = gitParts.sha; - }; + nameGitSha = + pkg: + let + gitParts = parseGit pkg.source; + in + { + name = "${pkg.name}-${pkg.version}"; + value = gitParts.sha; + }; # Convert the attrset provided through the `outputHashes` argument to a # a mapping from git commit SHA -> output hash. @@ -79,19 +94,25 @@ let # workspace). By using the git commit SHA as a universal identifier, # the user does not have to specify the output hash for every package # individually. - gitShaOutputHash = lib.mapAttrs' (nameVer: hash: + gitShaOutputHash = lib.mapAttrs' ( + nameVer: hash: let unusedHash = throw "A hash was specified for ${nameVer}, but there is no corresponding git dependency."; - rev = namesGitShas.${nameVer} or unusedHash; in { + rev = namesGitShas.${nameVer} or unusedHash; + in + { name = rev; value = hash; - }) outputHashes; + } + ) outputHashes; # We can't use the existing fetchCrate function, since it uses a # recursive hash of the unpacked crate. - fetchCrate = pkg: downloadUrl: + fetchCrate = + pkg: downloadUrl: let - checksum = pkg.checksum or parsedLockFile.metadata."checksum ${pkg.name} ${pkg.version} (${pkg.source})"; + checksum = + pkg.checksum or parsedLockFile.metadata."checksum ${pkg.name} ${pkg.version} (${pkg.source})"; in assert lib.assertMsg (checksum != null) '' Package ${pkg.name} does not have a checksum. @@ -107,27 +128,36 @@ let } // extraRegistries; # Replaces values inherited by workspace members. - replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" - { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" "W503" ]; } - (builtins.readFile ./replace-workspace-values.py); + replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" { + libraries = with python3Packages; [ + tomli + tomli-w + ]; + flakeIgnore = [ + "E501" + "W503" + ]; + } (builtins.readFile ./replace-workspace-values.py); # Fetch and unpack a crate. - mkCrate = pkg: + mkCrate = + pkg: let gitParts = parseGit pkg.source; registryIndexUrl = lib.removePrefix "registry+" pkg.source; in - if lib.hasPrefix "registry+" pkg.source && builtins.hasAttr registryIndexUrl registries then + if lib.hasPrefix "registry+" pkg.source && builtins.hasAttr registryIndexUrl registries then let crateTarball = fetchCrate pkg registries.${registryIndexUrl}; - in runCommand "${pkg.name}-${pkg.version}" {} '' + in + runCommand "${pkg.name}-${pkg.version}" { } '' mkdir $out tar xf "${crateTarball}" -C $out --strip-components=1 # Cargo is happy with largely empty metadata. printf '{"files":{},"package":"${crateTarball.outputHash}"}' > "$out/.cargo-checksum.json" '' - else if gitParts != null then + else if gitParts != null then let missingHash = throw '' No hash was found while vendoring the git dependency ${pkg.name}-${pkg.version}. You can add @@ -156,7 +186,8 @@ let } else missingHash; - in runCommand "${pkg.name}-${pkg.version}" {} '' + in + runCommand "${pkg.name}-${pkg.version}" { } '' tree=${tree} # If the target package is in a workspace, or if it's the top-level @@ -201,62 +232,73 @@ let # Set up configuration for the vendor directory. cat > $out/.cargo-config < $out/.cargo/config < $out/.cargo/config <> $out/.cargo/config <> $out/.cargo/config <> $out/.cargo/config - fi - fi - done - ''; + if [ -e "$crate/.cargo-config" ]; then + key=$(sed 's/\[source\."\(.*\)"\]/\1/; t; d' < "$crate/.cargo-config") + if [[ -z ''${keysSeen[$key]} ]]; then + keysSeen[$key]=1 + cat "$crate/.cargo-config" >> $out/.cargo/config + fi + fi + done + ''; in - vendorDir +vendorDir diff --git a/pkgs/build-support/rust/lib/default.nix b/pkgs/build-support/rust/lib/default.nix index e09f913..1e173d6 100644 --- a/pkgs/build-support/rust/lib/default.nix +++ b/pkgs/build-support/rust/lib/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, pkgsBuildHost -, pkgsBuildTarget -, pkgsTargetTarget +{ + lib, + stdenv, + pkgsBuildHost, + pkgsBuildTarget, + pkgsTargetTarget, }: rec { @@ -12,85 +13,124 @@ rec { # to buildPlatform CFLAGS being passed to the # hostPlatform-targeted compiler -- for example, `-m64` being # passed on a build=x86_64/host=aarch64 compilation. - envVars = let + envVars = + let - # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64 - shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin; + # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64 + shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin; - ccForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc"; - cxxForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}c++"; - linkerForBuild = ccForBuild; + ccForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc"; + cxxForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}c++"; + linkerForBuild = ccForBuild; - ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; - cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; - linkerForHost = if shouldUseLLD stdenv.targetPlatform - && !stdenv.cc.bintools.isLLVM - then "${pkgsBuildHost.llvmPackages.bintools}/bin/${stdenv.cc.targetPrefix}ld.lld" - else ccForHost; + ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; + cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; + linkerForHost = + if shouldUseLLD stdenv.targetPlatform && !stdenv.cc.bintools.isLLVM then + "${pkgsBuildHost.llvmPackages.bintools}/bin/${stdenv.cc.targetPrefix}ld.lld" + else + ccForHost; - # Unfortunately we must use the dangerous `pkgsTargetTarget` here - # because hooks are artificially phase-shifted one slot earlier - # (they go in nativeBuildInputs, so the hostPlatform looks like - # a targetPlatform to them). - ccForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"; - cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"; - linkerForTarget = if shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform - && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already - then "${pkgsBuildTarget.llvmPackages.bintools}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}ld.lld" - else ccForTarget; + # Unfortunately we must use the dangerous `pkgsTargetTarget` here + # because hooks are artificially phase-shifted one slot earlier + # (they go in nativeBuildInputs, so the hostPlatform looks like + # a targetPlatform to them). + ccForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"; + cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"; + linkerForTarget = + if + shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already + then + "${pkgsBuildTarget.llvmPackages.bintools}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}ld.lld" + else + ccForTarget; - rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; - rustBuildPlatformSpec = stdenv.buildPlatform.rust.rustcTargetSpec; - rustHostPlatform = stdenv.hostPlatform.rust.rustcTarget; - rustHostPlatformSpec = stdenv.hostPlatform.rust.rustcTargetSpec; - rustTargetPlatform = stdenv.targetPlatform.rust.rustcTarget; - rustTargetPlatformSpec = stdenv.targetPlatform.rust.rustcTargetSpec; - in { - inherit - ccForBuild cxxForBuild linkerForBuild rustBuildPlatform rustBuildPlatformSpec - ccForHost cxxForHost linkerForHost rustHostPlatform rustHostPlatformSpec - ccForTarget cxxForTarget linkerForTarget rustTargetPlatform rustTargetPlatformSpec; + rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; + rustBuildPlatformSpec = stdenv.buildPlatform.rust.rustcTargetSpec; + rustHostPlatform = stdenv.hostPlatform.rust.rustcTarget; + rustHostPlatformSpec = stdenv.hostPlatform.rust.rustcTargetSpec; + rustTargetPlatform = stdenv.targetPlatform.rust.rustcTarget; + rustTargetPlatformSpec = stdenv.targetPlatform.rust.rustcTargetSpec; + in + { + inherit + ccForBuild + cxxForBuild + linkerForBuild + rustBuildPlatform + rustBuildPlatformSpec + ccForHost + cxxForHost + linkerForHost + rustHostPlatform + rustHostPlatformSpec + ccForTarget + cxxForTarget + linkerForTarget + rustTargetPlatform + rustTargetPlatformSpec + ; - # Prefix this onto a command invocation in order to set the - # variables needed by cargo. - # - setEnv = '' - env \ - '' - # Due to a bug in how splicing and pkgsTargetTarget works, in - # situations where pkgsTargetTarget is irrelevant - # pkgsTargetTarget.stdenv.cc is often simply wrong. We must omit - # the following lines when rustTargetPlatform collides with - # rustHostPlatform. - + lib.optionalString (rustTargetPlatform != rustHostPlatform) '' - "CC_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${ccForTarget}" \ - "CXX_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${cxxForTarget}" \ - "CARGO_TARGET_${stdenv.targetPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForTarget}" \ - '' + '' - "CC_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${ccForHost}" \ - "CXX_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${cxxForHost}" \ - "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForHost}" \ - '' + '' - "CC_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${ccForBuild}" \ - "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \ - "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \ - "CARGO_BUILD_TARGET=${rustBuildPlatform}" \ - "HOST_CC=${pkgsBuildHost.stdenv.cc}/bin/cc" \ - "HOST_CXX=${pkgsBuildHost.stdenv.cc}/bin/c++" \ - ''; - }; -} // lib.mapAttrs (old: new: platform: - # TODO: enable warning after 23.05 is EOL. - # lib.warn "`rust.${old} platform` is deprecated. Use `platform.rust.${new}` instead." - lib.getAttrFromPath new platform.rust) -{ - toTargetArch = [ "platform" "arch" ]; - toTargetOs = [ "platform" "os" ]; - toTargetFamily = [ "platform" "target-family" ]; - toTargetVendor = [ "platform" "vendor" ]; - toRustTarget = [ "rustcTarget" ]; - toRustTargetSpec = [ "rustcTargetSpec" ]; - toRustTargetSpecShort = [ "cargoShortTarget" ]; - toRustTargetForUseInEnvVars = [ "cargoEnvVarTarget" ]; - IsNoStdTarget = [ "isNoStdTarget" ]; + # Prefix this onto a command invocation in order to set the + # variables needed by cargo. + # + setEnv = + '' + env \ + '' + # Due to a bug in how splicing and pkgsTargetTarget works, in + # situations where pkgsTargetTarget is irrelevant + # pkgsTargetTarget.stdenv.cc is often simply wrong. We must omit + # the following lines when rustTargetPlatform collides with + # rustHostPlatform. + + lib.optionalString (rustTargetPlatform != rustHostPlatform) '' + "CC_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${ccForTarget}" \ + "CXX_${stdenv.targetPlatform.rust.cargoEnvVarTarget}=${cxxForTarget}" \ + "CARGO_TARGET_${stdenv.targetPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForTarget}" \ + '' + + '' + "CC_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${ccForHost}" \ + "CXX_${stdenv.hostPlatform.rust.cargoEnvVarTarget}=${cxxForHost}" \ + "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForHost}" \ + '' + + '' + "CC_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${ccForBuild}" \ + "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \ + "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \ + "CARGO_BUILD_TARGET=${rustBuildPlatform}" \ + "HOST_CC=${pkgsBuildHost.stdenv.cc}/bin/cc" \ + "HOST_CXX=${pkgsBuildHost.stdenv.cc}/bin/c++" \ + ''; + }; } +// + lib.mapAttrs + ( + old: new: platform: + # TODO: enable warning after 23.05 is EOL. + # lib.warn "`rust.${old} platform` is deprecated. Use `platform.rust.${new}` instead." + lib.getAttrFromPath new platform.rust + ) + { + toTargetArch = [ + "platform" + "arch" + ]; + toTargetOs = [ + "platform" + "os" + ]; + toTargetFamily = [ + "platform" + "target-family" + ]; + toTargetVendor = [ + "platform" + "vendor" + ]; + toRustTarget = [ "rustcTarget" ]; + toRustTargetSpec = [ "rustcTargetSpec" ]; + toRustTargetSpecShort = [ "cargoShortTarget" ]; + toRustTargetForUseInEnvVars = [ "cargoEnvVarTarget" ]; + IsNoStdTarget = [ "isNoStdTarget" ]; + } diff --git a/pkgs/build-support/rust/rustc-wrapper/default.nix b/pkgs/build-support/rust/rustc-wrapper/default.nix index 0defa63..ce15973 100644 --- a/pkgs/build-support/rust/rustc-wrapper/default.nix +++ b/pkgs/build-support/rust/rustc-wrapper/default.nix @@ -1,52 +1,66 @@ -{ lib, runCommand, rustc-unwrapped, sysroot ? null }: +{ + lib, + runCommand, + rustc-unwrapped, + sysroot ? null, +}: -runCommand "${rustc-unwrapped.pname}-wrapper-${rustc-unwrapped.version}" { - preferLocalBuild = true; - strictDeps = true; - inherit (rustc-unwrapped) outputs; +runCommand "${rustc-unwrapped.pname}-wrapper-${rustc-unwrapped.version}" + { + preferLocalBuild = true; + strictDeps = true; + inherit (rustc-unwrapped) outputs; - env = { - sysroot = lib.optionalString (sysroot != null) "--sysroot ${sysroot}"; + env = { + sysroot = lib.optionalString (sysroot != null) "--sysroot ${sysroot}"; - # Upstream rustc still assumes that musl = static[1]. The fix for - # this is to disable crt-static by default for non-static musl - # targets. - # - # Even though Cargo will build build.rs files for the build platform, - # cross-compiling _from_ musl appears to work fine, so we only need - # to do this when rustc's target platform is dynamically linked musl. - # - # [1]: https://github.com/rust-lang/compiler-team/issues/422 - # - # WARNING: using defaultArgs is dangerous, as it will apply to all - # targets used by this compiler (host and target). This means - # that it can't be used to set arguments that should only be - # applied to the target. It's fine to do this for -crt-static, - # because rustc does not support +crt-static host platforms - # anyway. - defaultArgs = lib.optionalString - (with rustc-unwrapped.stdenv.targetPlatform; isMusl && !isStatic) - "-C target-feature=-crt-static"; - }; + # Upstream rustc still assumes that musl = static[1]. The fix for + # this is to disable crt-static by default for non-static musl + # targets. + # + # Even though Cargo will build build.rs files for the build platform, + # cross-compiling _from_ musl appears to work fine, so we only need + # to do this when rustc's target platform is dynamically linked musl. + # + # [1]: https://github.com/rust-lang/compiler-team/issues/422 + # + # WARNING: using defaultArgs is dangerous, as it will apply to all + # targets used by this compiler (host and target). This means + # that it can't be used to set arguments that should only be + # applied to the target. It's fine to do this for -crt-static, + # because rustc does not support +crt-static host platforms + # anyway. + defaultArgs = lib.optionalString ( + with rustc-unwrapped.stdenv.targetPlatform; isMusl && !isStatic + ) "-C target-feature=-crt-static"; + }; - passthru = { - inherit (rustc-unwrapped) pname version src llvm llvmPackages; - unwrapped = rustc-unwrapped; - }; + passthru = { + inherit (rustc-unwrapped) + pname + version + src + llvm + llvmPackages + ; + unwrapped = rustc-unwrapped; + }; - meta = rustc-unwrapped.meta // { - description = "${rustc-unwrapped.meta.description} (wrapper script)"; - priority = 10; - }; -} '' - mkdir -p $out/bin - ln -s ${rustc-unwrapped}/bin/* $out/bin - rm $out/bin/{rustc,rustdoc} - prog=${rustc-unwrapped}/bin/rustc extraFlagsVar=NIX_RUSTFLAGS \ - substituteAll ${./rustc-wrapper.sh} $out/bin/rustc - prog=${rustc-unwrapped}/bin/rustdoc extraFlagsVar=NIX_RUSTDOCFLAGS \ - substituteAll ${./rustc-wrapper.sh} $out/bin/rustdoc - chmod +x $out/bin/{rustc,rustdoc} - ${lib.concatMapStrings (output: "ln -s ${rustc-unwrapped.${output}} \$${output}\n") - (lib.remove "out" rustc-unwrapped.outputs)} -'' + meta = rustc-unwrapped.meta // { + description = "${rustc-unwrapped.meta.description} (wrapper script)"; + priority = 10; + }; + } + '' + mkdir -p $out/bin + ln -s ${rustc-unwrapped}/bin/* $out/bin + rm $out/bin/{rustc,rustdoc} + prog=${rustc-unwrapped}/bin/rustc extraFlagsVar=NIX_RUSTFLAGS \ + substituteAll ${./rustc-wrapper.sh} $out/bin/rustc + prog=${rustc-unwrapped}/bin/rustdoc extraFlagsVar=NIX_RUSTDOCFLAGS \ + substituteAll ${./rustc-wrapper.sh} $out/bin/rustdoc + chmod +x $out/bin/{rustc,rustdoc} + ${lib.concatMapStrings (output: "ln -s ${rustc-unwrapped.${output}} \$${output}\n") ( + lib.remove "out" rustc-unwrapped.outputs + )} + '' diff --git a/pkgs/build-support/rust/sysroot/src.nix b/pkgs/build-support/rust/sysroot/src.nix index 664702e..d41cbf5 100644 --- a/pkgs/build-support/rust/sysroot/src.nix +++ b/pkgs/build-support/rust/sysroot/src.nix @@ -1,5 +1,9 @@ -{ lib, stdenv, rustPlatform, buildPackages -, originalCargoToml ? null +{ + lib, + stdenv, + rustPlatform, + buildPackages, + originalCargoToml ? null, }: stdenv.mkDerivation { @@ -10,17 +14,18 @@ stdenv.mkDerivation { dontConfigure = true; dontBuild = true; - installPhase = '' - export RUSTC_SRC=${rustPlatform.rustLibSrc.override { }} - '' - + lib.optionalString (originalCargoToml != null) '' - export ORIG_CARGO=${originalCargoToml} - '' - + '' - ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py} - mkdir -p $out/src - echo '#![no_std]' > $out/src/lib.rs - cp Cargo.toml $out/Cargo.toml - cp ${./Cargo.lock} $out/Cargo.lock - ''; + installPhase = + '' + export RUSTC_SRC=${rustPlatform.rustLibSrc.override { }} + '' + + lib.optionalString (originalCargoToml != null) '' + export ORIG_CARGO=${originalCargoToml} + '' + + '' + ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py} + mkdir -p $out/src + echo '#![no_std]' > $out/src/lib.rs + cp Cargo.toml $out/Cargo.toml + cp ${./Cargo.lock} $out/Cargo.lock + ''; } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/default.nix index 26e6487..c9d9389 100644 --- a/pkgs/build-support/rust/test/import-cargo-lock/default.nix +++ b/pkgs/build-support/rust/test/import-cargo-lock/default.nix @@ -1,4 +1,9 @@ -{ callPackage, maturin, writers, python3Packages }: +{ + callPackage, + maturin, + writers, + python3Packages, +}: # Build like this from nixpkgs root: # $ nix-build -A tests.importCargoLock @@ -7,14 +12,23 @@ basicDynamic = callPackage ./basic-dynamic { }; gitDependency = callPackage ./git-dependency { }; gitDependencyRev = callPackage ./git-dependency-rev { }; - gitDependencyRevNonWorkspaceNestedCrate = callPackage ./git-dependency-rev-non-workspace-nested-crate { }; + gitDependencyRevNonWorkspaceNestedCrate = + callPackage ./git-dependency-rev-non-workspace-nested-crate + { }; gitDependencyTag = callPackage ./git-dependency-tag { }; gitDependencyBranch = callPackage ./git-dependency-branch { }; maturin = maturin.tests.pyo3; v1 = callPackage ./v1 { }; gitDependencyWorkspaceInheritance = callPackage ./git-dependency-workspace-inheritance { - replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" - { libraries = with python3Packages; [ tomli tomli-w ]; flakeIgnore = [ "E501" "W503" ]; } - (builtins.readFile ../../replace-workspace-values.py); + replaceWorkspaceValues = writers.writePython3 "replace-workspace-values" { + libraries = with python3Packages; [ + tomli + tomli-w + ]; + flakeIgnore = [ + "E501" + "W503" + ]; + } (builtins.readFile ../../replace-workspace-values.py); }; } diff --git a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix index 63e3bea..5609f7c 100644 --- a/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix +++ b/pkgs/build-support/rust/test/import-cargo-lock/git-dependency-rev-non-workspace-nested-crate/default.nix @@ -1,4 +1,11 @@ -{ rustPlatform, pkg-config, openssl, lib, darwin, stdenv }: +{ + rustPlatform, + pkg-config, + openssl, + lib, + darwin, + stdenv, +}: let fs = lib.fileset; in @@ -15,15 +22,9 @@ rustPlatform.buildRustPackage { ]; }; - nativeBuildInputs = [ - pkg-config - ]; + nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - openssl - ] ++ lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.Security - ]; + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; cargoLock = { lockFile = ./Cargo.lock; diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix b/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix index f364dd5..23a8445 100644 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix +++ b/pkgs/build-support/setup-hooks/make-binary-wrapper/default.nix @@ -1,11 +1,12 @@ -{ targetPackages -, lib -, makeSetupHook -, dieHook -, writeShellScript -, tests -, cc ? targetPackages.stdenv.cc -, sanitizers ? [] +{ + targetPackages, + lib, + makeSetupHook, + dieHook, + writeShellScript, + tests, + cc ? targetPackages.stdenv.cc, + sanitizers ? [ ], }: makeSetupHook { @@ -13,7 +14,9 @@ makeSetupHook { propagatedBuildInputs = [ dieHook ]; substitutions = { - cc = "${cc}/bin/${cc.targetPrefix}cc ${lib.escapeShellArgs (map (s: "-fsanitize=${s}") sanitizers)}"; + cc = "${cc}/bin/${cc.targetPrefix}cc ${ + lib.escapeShellArgs (map (s: "-fsanitize=${s}") sanitizers) + }"; }; passthru = { diff --git a/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix b/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix index 2834cfc..8a06316 100644 --- a/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix +++ b/pkgs/build-support/setup-hooks/mpi-check-hook/default.nix @@ -1,5 +1,3 @@ { callPackage, makeSetupHook }: -makeSetupHook { - name = "mpi-checkPhase-hook"; -} ./mpi-check-hook.sh +makeSetupHook { name = "mpi-checkPhase-hook"; } ./mpi-check-hook.sh diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix b/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix index 854f857..a37aff6 100644 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix +++ b/pkgs/build-support/setup-hooks/patch-ppd-files/default.nix @@ -1,7 +1,8 @@ -{ lib -, makeSetupHook -, which -, callPackage +{ + lib, + makeSetupHook, + which, + callPackage, }: makeSetupHook { @@ -10,7 +11,7 @@ makeSetupHook { which = lib.getBin which; awkscript = ./patch-ppd-lines.awk; }; - passthru.tests.test = callPackage ./test.nix {}; + passthru.tests.test = callPackage ./test.nix { }; meta = { description = "setup hook to patch executable paths in ppd files"; maintainers = [ lib.maintainers.yarny ]; diff --git a/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix b/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix index 4f2996b..edb324e 100644 --- a/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix +++ b/pkgs/build-support/setup-hooks/patch-ppd-files/test.nix @@ -1,7 +1,8 @@ -{ substituteAll -, diffutils -, stdenv -, patchPpdFilesHook +{ + substituteAll, + diffutils, + stdenv, + patchPpdFilesHook, }: let @@ -25,7 +26,10 @@ in stdenv.mkDerivation { name = "${patchPpdFilesHook.name}-test"; buildInputs = [ diffutils ]; - nativeBuildInputs = [ diffutils patchPpdFilesHook ]; + nativeBuildInputs = [ + diffutils + patchPpdFilesHook + ]; dontUnpack = true; dontInstall = true; ppdFileCommands = [ "cmp" ]; diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/default.nix b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/default.nix index f166445..e07cc15 100644 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/default.nix +++ b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/default.nix @@ -1,60 +1,57 @@ -{ lib -, callPackage -, makeSetupHook -, gnused +{ + lib, + callPackage, + makeSetupHook, + gnused, }: let tests = import ./test { inherit callPackage; }; in { - patchRcPathBash = makeSetupHook - { - name = "patch-rc-path-bash"; - meta = with lib; { - description = "Setup-hook to inject source-time PATH prefix to a Bash/Ksh/Zsh script"; - maintainers = with maintainers; [ ShamrockLee ]; - }; - passthru.tests = { - inherit (tests) test-bash; - }; - } ./patch-rc-path-bash.sh; - patchRcPathCsh = makeSetupHook - { - name = "patch-rc-path-csh"; - substitutions = { - sed = "${gnused}/bin/sed"; - }; - meta = with lib; { - description = "Setup-hook to inject source-time PATH prefix to a Csh script"; - maintainers = with maintainers; [ ShamrockLee ]; - }; - passthru.tests = { - inherit (tests) test-csh; - }; - } ./patch-rc-path-csh.sh; - patchRcPathFish = makeSetupHook - { - name = "patch-rc-path-fish"; - meta = with lib; { - description = "Setup-hook to inject source-time PATH prefix to a Fish script"; - maintainers = with maintainers; [ ShamrockLee ]; - }; - passthru.tests = { - inherit (tests) test-fish; - }; - } ./patch-rc-path-fish.sh; - patchRcPathPosix = makeSetupHook - { - name = "patch-rc-path-posix"; - substitutions = { - sed = "${gnused}/bin/sed"; - }; - meta = with lib; { - description = "Setup-hook to inject source-time PATH prefix to a POSIX shell script"; - maintainers = with maintainers; [ ShamrockLee ]; - }; - passthru.tests = { - inherit (tests) test-posix; - }; - } ./patch-rc-path-posix.sh; + patchRcPathBash = makeSetupHook { + name = "patch-rc-path-bash"; + meta = with lib; { + description = "Setup-hook to inject source-time PATH prefix to a Bash/Ksh/Zsh script"; + maintainers = with maintainers; [ ShamrockLee ]; + }; + passthru.tests = { + inherit (tests) test-bash; + }; + } ./patch-rc-path-bash.sh; + patchRcPathCsh = makeSetupHook { + name = "patch-rc-path-csh"; + substitutions = { + sed = "${gnused}/bin/sed"; + }; + meta = with lib; { + description = "Setup-hook to inject source-time PATH prefix to a Csh script"; + maintainers = with maintainers; [ ShamrockLee ]; + }; + passthru.tests = { + inherit (tests) test-csh; + }; + } ./patch-rc-path-csh.sh; + patchRcPathFish = makeSetupHook { + name = "patch-rc-path-fish"; + meta = with lib; { + description = "Setup-hook to inject source-time PATH prefix to a Fish script"; + maintainers = with maintainers; [ ShamrockLee ]; + }; + passthru.tests = { + inherit (tests) test-fish; + }; + } ./patch-rc-path-fish.sh; + patchRcPathPosix = makeSetupHook { + name = "patch-rc-path-posix"; + substitutions = { + sed = "${gnused}/bin/sed"; + }; + meta = with lib; { + description = "Setup-hook to inject source-time PATH prefix to a POSIX shell script"; + maintainers = with maintainers; [ ShamrockLee ]; + }; + passthru.tests = { + inherit (tests) test-posix; + }; + } ./patch-rc-path-posix.sh; } diff --git a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/default.nix b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/default.nix index 82bc160..8479e2c 100644 --- a/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/default.nix +++ b/pkgs/build-support/setup-hooks/patch-rc-path-hooks/test/default.nix @@ -1,442 +1,432 @@ { callPackage }: { - test-bash = callPackage - ( - { lib - , runCommandLocal - , bash - , hello - , ksh - , patchRcPathBash - , shellcheck - , zsh - }: - runCommandLocal "patch-rc-path-bash-test" - { - nativeBuildInputs = [ - bash - ksh - patchRcPathBash - shellcheck - zsh - ]; - meta = { - description = "Package test of patchActivateBash"; - inherit (patchRcPathBash.meta) maintainers; - }; - } - '' - set -eu -o pipefail + test-bash = callPackage ( + { + lib, + runCommandLocal, + bash, + hello, + ksh, + patchRcPathBash, + shellcheck, + zsh, + }: + runCommandLocal "patch-rc-path-bash-test" + { + nativeBuildInputs = [ + bash + ksh + patchRcPathBash + shellcheck + zsh + ]; + meta = { + description = "Package test of patchActivateBash"; + inherit (patchRcPathBash.meta) maintainers; + }; + } + '' + set -eu -o pipefail - # Check the setup hook script + # Check the setup hook script - echo "Running shellcheck against ${./test-sourcing-bash}" - shellcheck -s bash --exclude SC1090 ${./test-sourcing-bash} - shellcheck -s ksh --exclude SC1090 ${./test-sourcing-bash} + echo "Running shellcheck against ${./test-sourcing-bash}" + shellcheck -s bash --exclude SC1090 ${./test-sourcing-bash} + shellcheck -s ksh --exclude SC1090 ${./test-sourcing-bash} - # Test patching a blank file + # Test patching a blank file - echo > blank.bash + echo > blank.bash - echo "Generating blank_patched.bash from blank.bash" - cp blank.bash blank_patched.bash - patchRcPathBash blank_patched.bash "$PWD/delta:$PWD/foxtrot" + echo "Generating blank_patched.bash from blank.bash" + cp blank.bash blank_patched.bash + patchRcPathBash blank_patched.bash "$PWD/delta:$PWD/foxtrot" - echo "Running shellcheck against blank_patched.bash" - shellcheck -s bash blank_patched.bash - shellcheck -s ksh blank_patched.bash + echo "Running shellcheck against blank_patched.bash" + shellcheck -s bash blank_patched.bash + shellcheck -s ksh blank_patched.bash - echo "Testing in Bash if blank.bash and blank_patched.bash modifies PATH the same way" - bash ${./test-sourcing-bash} ./blank.bash ./blank_patched.bash + echo "Testing in Bash if blank.bash and blank_patched.bash modifies PATH the same way" + bash ${./test-sourcing-bash} ./blank.bash ./blank_patched.bash - echo "Testing in Ksh if blank.bash and blank_patched.bash modifies PATH the same way" - ksh ${./test-sourcing-bash} "$PWD/blank.bash" "$PWD/blank_patched.bash" + echo "Testing in Ksh if blank.bash and blank_patched.bash modifies PATH the same way" + ksh ${./test-sourcing-bash} "$PWD/blank.bash" "$PWD/blank_patched.bash" - echo "Testing in Zsh if blank.bash and blank_patched.bash modifies PATH the same way" - zsh ${./test-sourcing-bash} ./blank.bash ./blank_patched.bash + echo "Testing in Zsh if blank.bash and blank_patched.bash modifies PATH the same way" + zsh ${./test-sourcing-bash} ./blank.bash ./blank_patched.bash - # Test patching silent_hello + # Test patching silent_hello - echo "hello > /dev/null" > silent_hello.bash + echo "hello > /dev/null" > silent_hello.bash - echo "Generating silent_hello_patched.bash from silent_hello.bash" - cp silent_hello.bash silent_hello_patched.bash - patchRcPathBash silent_hello_patched.bash "${hello}/bin" + echo "Generating silent_hello_patched.bash from silent_hello.bash" + cp silent_hello.bash silent_hello_patched.bash + patchRcPathBash silent_hello_patched.bash "${hello}/bin" - echo "Running shellcheck against silent_hello_patched.bash" - shellcheck -s bash silent_hello_patched.bash + echo "Running shellcheck against silent_hello_patched.bash" + shellcheck -s bash silent_hello_patched.bash - echo "Testing in Bash if silent_hello_patched.bash get sourced without error" - bash -eu -o pipefail -c ". ./silent_hello_patched.bash" + echo "Testing in Bash if silent_hello_patched.bash get sourced without error" + bash -eu -o pipefail -c ". ./silent_hello_patched.bash" - echo "Testing in Ksh if silent_hello_patched.bash get sourced without error" - ksh -eu -o pipefail -c ". ./silent_hello_patched.bash" + echo "Testing in Ksh if silent_hello_patched.bash get sourced without error" + ksh -eu -o pipefail -c ". ./silent_hello_patched.bash" - echo "Testing in Zsh if silent_hello_patched.bash get sourced without error" - zsh -eu -o pipefail -c ". ./silent_hello_patched.bash" + echo "Testing in Zsh if silent_hello_patched.bash get sourced without error" + zsh -eu -o pipefail -c ". ./silent_hello_patched.bash" - # Check the sample source + # Check the sample source - echo "Running shellcheck against sample_source.bash" - shellcheck -s bash ${./sample_source.bash} - shellcheck -s ksh ${./sample_source.bash} + echo "Running shellcheck against sample_source.bash" + shellcheck -s bash ${./sample_source.bash} + shellcheck -s ksh ${./sample_source.bash} - # Test patching the sample source + # Test patching the sample source - cp ${./sample_source.bash} sample_source_patched.bash - chmod u+w sample_source_patched.bash + cp ${./sample_source.bash} sample_source_patched.bash + chmod u+w sample_source_patched.bash - echo "Generating sample_source_patched.bash from ./sample_source.bash" - patchRcPathBash sample_source_patched.bash "$PWD/delta:$PWD/foxtrot" + echo "Generating sample_source_patched.bash from ./sample_source.bash" + patchRcPathBash sample_source_patched.bash "$PWD/delta:$PWD/foxtrot" - echo "Running shellcheck against sample_source_patched.bash" - shellcheck -s bash sample_source_patched.bash + echo "Running shellcheck against sample_source_patched.bash" + shellcheck -s bash sample_source_patched.bash - echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - bash ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash + echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + bash ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash - echo "Testing in Ksh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - ksh ${./test-sourcing-bash} ${./sample_source.bash} "$PWD/sample_source_patched.bash" + echo "Testing in Ksh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + ksh ${./test-sourcing-bash} ${./sample_source.bash} "$PWD/sample_source_patched.bash" - echo "Testing in Zsh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - zsh ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash + echo "Testing in Zsh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + zsh ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash - # Test double-patching the sample source + # Test double-patching the sample source - echo "Patching again sample_source_patched.bash" - patchRcPathBash sample_source_patched.bash "$PWD/foxtrot:$PWD/golf" + echo "Patching again sample_source_patched.bash" + patchRcPathBash sample_source_patched.bash "$PWD/foxtrot:$PWD/golf" - echo "Running shellcheck against sample_source_patched.bash" - shellcheck -s bash sample_source_patched.bash - shellcheck -s ksh sample_source_patched.bash + echo "Running shellcheck against sample_source_patched.bash" + shellcheck -s bash sample_source_patched.bash + shellcheck -s ksh sample_source_patched.bash - echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - bash ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash + echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + bash ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash - echo "Testing in Ksh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - ksh ${./test-sourcing-bash} ${./sample_source.bash} "$PWD/sample_source_patched.bash" + echo "Testing in Ksh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + ksh ${./test-sourcing-bash} ${./sample_source.bash} "$PWD/sample_source_patched.bash" - echo "Testing in Zsh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - zsh ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash + echo "Testing in Zsh if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + zsh ${./test-sourcing-bash} ${./sample_source.bash} ./sample_source_patched.bash - # Create a dummy output - touch "$out" - '' - ) - { }; + # Create a dummy output + touch "$out" + '' + ) { }; + test-csh = callPackage ( + { + lib, + runCommandLocal, + gnused, + hello, + patchRcPathCsh, + tcsh, + }: + runCommandLocal "patch-rc-path-csh-test" + { + nativeBuildInputs = [ + patchRcPathCsh + tcsh + ]; + meta = { + description = "Package test of patchActivateCsh"; + inherit (patchRcPathCsh.meta) maintainers; + }; + } + '' + set -eu -o pipefail - test-csh = callPackage - ( - { lib - , runCommandLocal - , gnused - , hello - , patchRcPathCsh - , tcsh - }: - runCommandLocal "patch-rc-path-csh-test" - { - nativeBuildInputs = [ - patchRcPathCsh - tcsh - ]; - meta = { - description = "Package test of patchActivateCsh"; - inherit (patchRcPathCsh.meta) maintainers; - }; - } - '' - set -eu -o pipefail + # Test patching a blank file + echo > blank.csh - # Test patching a blank file + echo "Generating blank_patched.csh from blank.csh" + cp blank.csh blank_patched.csh + patchRcPathCsh blank_patched.csh "$PWD/delta:$PWD/foxtrot" - echo > blank.csh + echo "Testing in Csh if blank.csh and blank_patched.csh modifies PATH the same way" + tcsh -e ${./test-sourcing-csh} blank.csh blank_patched.csh - echo "Generating blank_patched.csh from blank.csh" - cp blank.csh blank_patched.csh - patchRcPathCsh blank_patched.csh "$PWD/delta:$PWD/foxtrot" - echo "Testing in Csh if blank.csh and blank_patched.csh modifies PATH the same way" - tcsh -e ${./test-sourcing-csh} blank.csh blank_patched.csh + # Test patching silent_hello file + echo "hello > /dev/null" > silent_hello.csh - # Test patching silent_hello file + echo "Generating silent_hello_patched.csh from silent_hello.csh" + cp silent_hello.csh silent_hello_patched.csh + patchRcPathCsh silent_hello_patched.csh "${hello}/bin" - echo "hello > /dev/null" > silent_hello.csh + echo "Testing in Csh if silent_hello_patched.csh get sourced without errer" + tcsh -e -c "source silent_hello_patched.csh" - echo "Generating silent_hello_patched.csh from silent_hello.csh" - cp silent_hello.csh silent_hello_patched.csh - patchRcPathCsh silent_hello_patched.csh "${hello}/bin" - echo "Testing in Csh if silent_hello_patched.csh get sourced without errer" - tcsh -e -c "source silent_hello_patched.csh" + # Generate the sample source + substitute ${./sample_source.csh.in} sample_source.csh --replace @sed@ ${gnused}/bin/sed + chmod u+rw sample_source.csh - # Generate the sample source - substitute ${./sample_source.csh.in} sample_source.csh --replace @sed@ ${gnused}/bin/sed - chmod u+rw sample_source.csh + # Test patching the sample source + echo "Generating sample_source_patched.csh from sample_source.csh" + cp sample_source.csh sample_source_patched.csh + chmod u+w sample_source_patched.csh + patchRcPathCsh sample_source_patched.csh "$PWD/delta:$PWD/foxtrot" - # Test patching the sample source + echo "Testing in Csh if sample_source.csh and sample_source_patched.csh modifies PATH the same way" + tcsh -e ${./test-sourcing-csh} sample_source.csh sample_source_patched.csh - echo "Generating sample_source_patched.csh from sample_source.csh" - cp sample_source.csh sample_source_patched.csh - chmod u+w sample_source_patched.csh - patchRcPathCsh sample_source_patched.csh "$PWD/delta:$PWD/foxtrot" - echo "Testing in Csh if sample_source.csh and sample_source_patched.csh modifies PATH the same way" - tcsh -e ${./test-sourcing-csh} sample_source.csh sample_source_patched.csh + # Test double-patching the sample source + echo "Patching again sample_source_patched.csh from sample_source.csh" + patchRcPathCsh sample_source_patched.csh "$PWD/foxtrot:$PWD/golf" - # Test double-patching the sample source + echo "Testing in Csh if sample_source.csh and sample_source_patched.csh modifies PATH the same way" + tcsh -e ${./test-sourcing-csh} sample_source.csh sample_source_patched.csh - echo "Patching again sample_source_patched.csh from sample_source.csh" - patchRcPathCsh sample_source_patched.csh "$PWD/foxtrot:$PWD/golf" - echo "Testing in Csh if sample_source.csh and sample_source_patched.csh modifies PATH the same way" - tcsh -e ${./test-sourcing-csh} sample_source.csh sample_source_patched.csh + # Create a dummy output + touch "$out" + '' + ) { }; + test-fish = callPackage ( + { + lib, + runCommandLocal, + fish, + hello, + patchRcPathFish, + }: + runCommandLocal "patch-rc-path-fish-test" + { + nativeBuildInputs = [ + fish + patchRcPathFish + ]; + meta = { + description = "Package test of patchActivateFish"; + inherit (patchRcPathFish.meta) maintainers; + }; + } + '' + set -eu -o pipefail - # Create a dummy output - touch "$out" - '' - ) - { }; + # Test patching a blank file + echo > blank.fish - test-fish = callPackage - ( - { lib - , runCommandLocal - , fish - , hello - , patchRcPathFish - }: - runCommandLocal "patch-rc-path-fish-test" - { - nativeBuildInputs = [ - fish - patchRcPathFish - ]; - meta = { - description = "Package test of patchActivateFish"; - inherit (patchRcPathFish.meta) maintainers; - }; - } - '' - set -eu -o pipefail + echo "Generating blank_patched.fish from blank.fish" + cp blank.fish blank_patched.fish + patchRcPathFish blank_patched.fish "$PWD/delta:$PWD/foxtrot" + echo "Testing in Fish if blank.fish and blank_patched.fish modifies PATH the same way" + HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" + HOME="$HOME_TEMP" fish ${./test-sourcing-fish} blank.fish blank_patched.fish + rm -r "$HOME_TEMP" - # Test patching a blank file - echo > blank.fish + # Test patching silent_hello file - echo "Generating blank_patched.fish from blank.fish" - cp blank.fish blank_patched.fish - patchRcPathFish blank_patched.fish "$PWD/delta:$PWD/foxtrot" + echo "hello > /dev/null" > silent_hello.fish - echo "Testing in Fish if blank.fish and blank_patched.fish modifies PATH the same way" - HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" - HOME="$HOME_TEMP" fish ${./test-sourcing-fish} blank.fish blank_patched.fish - rm -r "$HOME_TEMP" + echo "Generating silent_hello_patched.fish from silent_hello.fish" + cp silent_hello.fish silent_hello_patched.fish + patchRcPathFish silent_hello_patched.fish "${hello}/bin" + echo "Testing in Fish if silent_hello_patched.fish get sourced without error" + HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" + HOME="$HOME_TEMP" fish -c "source silent_hello_patched.fish" + rm -r "$HOME_TEMP" - # Test patching silent_hello file - echo "hello > /dev/null" > silent_hello.fish + # Test patching the sample source - echo "Generating silent_hello_patched.fish from silent_hello.fish" - cp silent_hello.fish silent_hello_patched.fish - patchRcPathFish silent_hello_patched.fish "${hello}/bin" + cp ${./sample_source.fish} sample_source_patched.fish + chmod u+w sample_source_patched.fish - echo "Testing in Fish if silent_hello_patched.fish get sourced without error" - HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" - HOME="$HOME_TEMP" fish -c "source silent_hello_patched.fish" - rm -r "$HOME_TEMP" + echo "Generating sample_source_patched.fish from ${./sample_source.fish}" + patchRcPathFish sample_source_patched.fish "$PWD/delta:$PWD/foxtrot" + echo "Testing in Fish if sample_source.fish and sample_source_patched.fish modifies PATH the same way" + HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" + HOME="$HOME_TEMP" fish ${./test-sourcing-fish} ${./sample_source.fish} sample_source_patched.fish + rm -r "$HOME_TEMP" - # Test patching the sample source + # Test double-patching the sample source - cp ${./sample_source.fish} sample_source_patched.fish - chmod u+w sample_source_patched.fish + echo "Patching again sample_source_patched.fish from ${./sample_source.fish}" + patchRcPathFish sample_source_patched.fish "$PWD/foxtrot:$PWD/golf" - echo "Generating sample_source_patched.fish from ${./sample_source.fish}" - patchRcPathFish sample_source_patched.fish "$PWD/delta:$PWD/foxtrot" - echo "Testing in Fish if sample_source.fish and sample_source_patched.fish modifies PATH the same way" - HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" - HOME="$HOME_TEMP" fish ${./test-sourcing-fish} ${./sample_source.fish} sample_source_patched.fish - rm -r "$HOME_TEMP" + echo "Testing in Fish if sample_source.fish and sample_source_patched.fish modifies PATH the same way" + HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" + HOME="$HOME_TEMP" fish ${./test-sourcing-fish} ${./sample_source.fish} sample_source_patched.fish + rm -r "$HOME_TEMP" - # Test double-patching the sample source + # Create a dummy output + touch "$out" + '' + ) { }; - echo "Patching again sample_source_patched.fish from ${./sample_source.fish}" - patchRcPathFish sample_source_patched.fish "$PWD/foxtrot:$PWD/golf" + test-posix = callPackage ( + { + lib, + runCommandLocal, + bash, + dash, + gnused, + hello, + ksh, + patchRcPathPosix, + shellcheck, + }: + runCommandLocal "patch-rc-path-posix-test" + { + nativeBuildInputs = [ + bash + dash + ksh + patchRcPathPosix + shellcheck + ]; + meta = { + description = "Package test of patchActivatePosix"; + inherit (patchRcPathPosix.meta) maintainers; + }; + } + '' + set -eu -o pipefail - echo "Testing in Fish if sample_source.fish and sample_source_patched.fish modifies PATH the same way" - HOME_TEMP="$(mktemp -d temporary_home_XXXXXX)" - HOME="$HOME_TEMP" fish ${./test-sourcing-fish} ${./sample_source.fish} sample_source_patched.fish - rm -r "$HOME_TEMP" + # Check the setup hook script - # Create a dummy output - touch "$out" - '' - ) - { }; + echo "Running shellcheck against ${./test-sourcing-posix}" + shellcheck -s sh --exclude SC1090 ${./test-sourcing-posix} + shellcheck -s dash --exclude SC1090 ${./test-sourcing-posix} + # Test patching a blank file - test-posix = callPackage - ( - { lib - , runCommandLocal - , bash - , dash - , gnused - , hello - , ksh - , patchRcPathPosix - , shellcheck - }: - runCommandLocal "patch-rc-path-posix-test" - { - nativeBuildInputs = [ - bash - dash - ksh - patchRcPathPosix - shellcheck - ]; - meta = { - description = "Package test of patchActivatePosix"; - inherit (patchRcPathPosix.meta) maintainers; - }; - } - '' - set -eu -o pipefail + echo > blank.sh + echo "Generating blank_patched.sh from blank.sh" + cp blank.sh blank_patched.sh + patchRcPathPosix blank_patched.sh "$PWD/delta:$PWD/foxtrot" - # Check the setup hook script + echo "Running shellcheck against blank_patched.sh" + shellcheck -s sh blank_patched.sh + shellcheck -s dash blank_patched.sh - echo "Running shellcheck against ${./test-sourcing-posix}" - shellcheck -s sh --exclude SC1090 ${./test-sourcing-posix} - shellcheck -s dash --exclude SC1090 ${./test-sourcing-posix} + echo "Testing in Bash if blank.sh and blank_patched.sh modifies PATH the same way" + bash --posix ${./test-sourcing-posix} ./blank.sh ./blank_patched.sh + echo "Testing in Dash if blank.sh and blank_patched.sh modifies PATH the same way" + dash ${./test-sourcing-posix} ./blank.sh ./blank_patched.sh - # Test patching a blank file + echo "Testing in Ksh if ./blank.sh and ./blank_patched.sh modifies PATH the same way" + ksh ${./test-sourcing-posix} "$PWD/blank.sh" "$PWD/blank_patched.sh" - echo > blank.sh - echo "Generating blank_patched.sh from blank.sh" - cp blank.sh blank_patched.sh - patchRcPathPosix blank_patched.sh "$PWD/delta:$PWD/foxtrot" + # Test patching silent_hello file - echo "Running shellcheck against blank_patched.sh" - shellcheck -s sh blank_patched.sh - shellcheck -s dash blank_patched.sh + echo "hello > /dev/null" > silent_hello.sh - echo "Testing in Bash if blank.sh and blank_patched.sh modifies PATH the same way" - bash --posix ${./test-sourcing-posix} ./blank.sh ./blank_patched.sh + echo "Generating silent_hello_patched.sh from silent_hello.sh" + cp silent_hello.sh silent_hello_patched.sh + patchRcPathPosix silent_hello_patched.sh "${hello}/bin" - echo "Testing in Dash if blank.sh and blank_patched.sh modifies PATH the same way" - dash ${./test-sourcing-posix} ./blank.sh ./blank_patched.sh + echo "Running shellcheck against silent_hello_patched.sh" + shellcheck -s sh silent_hello_patched.sh + shellcheck -s dash silent_hello_patched.sh - echo "Testing in Ksh if ./blank.sh and ./blank_patched.sh modifies PATH the same way" - ksh ${./test-sourcing-posix} "$PWD/blank.sh" "$PWD/blank_patched.sh" + echo "Testing in Bash if silent_hello_patched.sh get sourced without error" + bash --posix -eu -c ". ./silent_hello_patched.sh" + echo "Testing in Dash if silent_hello_patched.sh get sourced without error" + dash -eu -c ". ./silent_hello_patched.sh" - # Test patching silent_hello file + echo "Testing in Ksh if silent_hello_patched.sh get sourced without error" + ksh -eu -c ". $PWD/silent_hello_patched.sh" - echo "hello > /dev/null" > silent_hello.sh - echo "Generating silent_hello_patched.sh from silent_hello.sh" - cp silent_hello.sh silent_hello_patched.sh - patchRcPathPosix silent_hello_patched.sh "${hello}/bin" + # Generate the sample source "$PWD/delta:$PWD/foxtrot" "$PWD/delta:$PWD/foxtrot" - echo "Running shellcheck against silent_hello_patched.sh" - shellcheck -s sh silent_hello_patched.sh - shellcheck -s dash silent_hello_patched.sh + substitute ${./sample_source.sh.in} sample_source.sh --replace @sed@ ${gnused}/bin/sed + chmod u+rw sample_source.sh - echo "Testing in Bash if silent_hello_patched.sh get sourced without error" - bash --posix -eu -c ". ./silent_hello_patched.sh" - echo "Testing in Dash if silent_hello_patched.sh get sourced without error" - dash -eu -c ". ./silent_hello_patched.sh" + # Check the sample source - echo "Testing in Ksh if silent_hello_patched.sh get sourced without error" - ksh -eu -c ". $PWD/silent_hello_patched.sh" + echo "Running shellcheck against sample_source.sh" + shellcheck -s sh sample_source.sh + shellcheck -s dash sample_source.sh - # Generate the sample source "$PWD/delta:$PWD/foxtrot" "$PWD/delta:$PWD/foxtrot" + # Test patching the sample source - substitute ${./sample_source.sh.in} sample_source.sh --replace @sed@ ${gnused}/bin/sed - chmod u+rw sample_source.sh + echo "Generating sample_source_patched.sh from sample_source.sh" + cp sample_source.sh sample_source_patched.sh + chmod u+w sample_source_patched.sh + patchRcPathPosix sample_source_patched.sh "$PWD/delta:$PWD/foxtrot" + echo "Running shellcheck against sample_source_patched.sh" + shellcheck -s sh sample_source_patched.sh + shellcheck -s dash sample_source_patched.sh - # Check the sample source + echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + bash --posix ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" - echo "Running shellcheck against sample_source.sh" - shellcheck -s sh sample_source.sh - shellcheck -s dash sample_source.sh + echo "Testing in Dash if sample_source.sh and sample_source_patched.sh modifies PATH the same way" + dash ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" + echo "Testing in Ksh if sample_source.sh and sample_source_patched.sh modifies PATH the same way" + ksh ${./test-sourcing-posix} "$PWD/sample_source.sh" "$PWD/sample_source_patched.sh" - # Test patching the sample source - echo "Generating sample_source_patched.sh from sample_source.sh" - cp sample_source.sh sample_source_patched.sh - chmod u+w sample_source_patched.sh - patchRcPathPosix sample_source_patched.sh "$PWD/delta:$PWD/foxtrot" + # Test double-patching the sample source - echo "Running shellcheck against sample_source_patched.sh" - shellcheck -s sh sample_source_patched.sh - shellcheck -s dash sample_source_patched.sh + echo "Patching again sample_source_patched.sh" + patchRcPathPosix sample_source_patched.sh "$PWD/foxtrot:$PWD/golf" - echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - bash --posix ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" + echo "Running shellcheck against sample_source_patched.sh" + shellcheck -s sh sample_source_patched.sh + shellcheck -s dash sample_source_patched.sh - echo "Testing in Dash if sample_source.sh and sample_source_patched.sh modifies PATH the same way" - dash ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" + echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" + bash --posix ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" - echo "Testing in Ksh if sample_source.sh and sample_source_patched.sh modifies PATH the same way" - ksh ${./test-sourcing-posix} "$PWD/sample_source.sh" "$PWD/sample_source_patched.sh" + echo "Testing in Dash if sample_source.sh and sample_source_patched.sh modifies PATH the same way" + dash ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" + echo "Testing in Ksh if sample_source.sh and sample_source_patched.sh modifies PATH the same way" + ksh ${./test-sourcing-posix} "$PWD/sample_source.sh" "$PWD/sample_source_patched.sh" - # Test double-patching the sample source - echo "Patching again sample_source_patched.sh" - patchRcPathPosix sample_source_patched.sh "$PWD/foxtrot:$PWD/golf" - - echo "Running shellcheck against sample_source_patched.sh" - shellcheck -s sh sample_source_patched.sh - shellcheck -s dash sample_source_patched.sh - - echo "Testing in Bash if sample_source.bash and sample_source_patched.bash modifies PATH the same way" - bash --posix ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" - - echo "Testing in Dash if sample_source.sh and sample_source_patched.sh modifies PATH the same way" - dash ${./test-sourcing-posix} "./sample_source.sh" "./sample_source_patched.sh" - - echo "Testing in Ksh if sample_source.sh and sample_source_patched.sh modifies PATH the same way" - ksh ${./test-sourcing-posix} "$PWD/sample_source.sh" "$PWD/sample_source_patched.sh" - - - # Create a dummy output - touch "$out" - '' - ) - { }; + # Create a dummy output + touch "$out" + '' + ) { }; } diff --git a/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix b/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix index 9881ed1..44650bc 100644 --- a/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix +++ b/pkgs/build-support/setup-hooks/postgresql-test-hook/test.nix @@ -1,4 +1,8 @@ -{ postgresql, postgresqlTestHook, stdenv }: +{ + postgresql, + postgresqlTestHook, + stdenv, +}: stdenv.mkDerivation { name = "postgresql-test-hook-test"; @@ -6,7 +10,7 @@ stdenv.mkDerivation { nativeCheckInputs = [ postgresql ]; dontUnpack = true; doCheck = true; - passAsFile = ["sql"]; + passAsFile = [ "sql" ]; sql = '' CREATE TABLE hello ( message text diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix index 3c5199b..67841d3 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix @@ -1,203 +1,251 @@ -{ stdenv -, lib -, makeSetupHook -, makeWrapper -, gobject-introspection -, isGraphical ? true -, gtk3 -, librsvg -, dconf -, callPackage -, wrapGAppsHook -, targetPackages +{ + stdenv, + lib, + makeSetupHook, + makeWrapper, + gobject-introspection, + isGraphical ? true, + gtk3, + librsvg, + dconf, + callPackage, + wrapGAppsHook, + targetPackages, }: makeSetupHook { name = "wrap-gapps-hook"; - propagatedBuildInputs = [ - # We use the wrapProgram function. - makeWrapper - ] ++ lib.optionals isGraphical [ - # TODO: remove this, packages should depend on GTK explicitly. - gtk3 + propagatedBuildInputs = + [ + # We use the wrapProgram function. + makeWrapper + ] + ++ lib.optionals isGraphical [ + # TODO: remove this, packages should depend on GTK explicitly. + gtk3 - librsvg - ]; + librsvg + ]; # depsTargetTargetPropagated will essentially be buildInputs when wrapGAppsHook is placed into nativeBuildInputs # the librsvg and gtk3 above should be removed but kept to not break anything that implicitly depended on its binaries - depsTargetTargetPropagated = assert (lib.assertMsg (!targetPackages ? raw) "wrapGAppsHook must be in nativeBuildInputs"); lib.optionals isGraphical [ - # librsvg provides a module for gdk-pixbuf to allow rendering - # SVG icons. Most icon themes are SVG-based and so are some - # graphics in GTK (e.g. cross for closing window in window title bar) - # so it is pretty much required for applications using GTK. - librsvg + depsTargetTargetPropagated = + assert (lib.assertMsg (!targetPackages ? raw) "wrapGAppsHook must be in nativeBuildInputs"); + lib.optionals isGraphical [ + # librsvg provides a module for gdk-pixbuf to allow rendering + # SVG icons. Most icon themes are SVG-based and so are some + # graphics in GTK (e.g. cross for closing window in window title bar) + # so it is pretty much required for applications using GTK. + librsvg - # TODO: remove this, packages should depend on GTK explicitly. - gtk3 - ] ++ lib.optionals (!stdenv.isDarwin) [ - # It is highly probable that a program will use GSettings, - # at minimum through GTK file chooser dialogue. - # Let’s add a GIO module for “dconf” GSettings backend - # to avoid falling back to “memory” backend. This is - # required for GSettings-based settings to be persisted. - # Unfortunately, it also requires the user to have dconf - # D-Bus service enabled globally (e.g. through a NixOS module). - dconf.lib - ]; + # TODO: remove this, packages should depend on GTK explicitly. + gtk3 + ] + ++ lib.optionals (!stdenv.isDarwin) [ + # It is highly probable that a program will use GSettings, + # at minimum through GTK file chooser dialogue. + # Let’s add a GIO module for “dconf” GSettings backend + # to avoid falling back to “memory” backend. This is + # required for GSettings-based settings to be persisted. + # Unfortunately, it also requires the user to have dconf + # D-Bus service enabled globally (e.g. through a NixOS module). + dconf.lib + ]; passthru = { - tests = let - sample-project = ./tests/sample-project; + tests = + let + sample-project = ./tests/sample-project; - testLib = callPackage ./tests/lib.nix { }; - inherit (testLib) expectSomeLineContainingYInFileXToMentionZ; - in rec { - # Simple derivation containing a program and a daemon. - basic = stdenv.mkDerivation { - name = "basic"; + testLib = callPackage ./tests/lib.nix { }; + inherit (testLib) expectSomeLineContainingYInFileXToMentionZ; + in + rec { + # Simple derivation containing a program and a daemon. + basic = stdenv.mkDerivation { + name = "basic"; - src = sample-project; + src = sample-project; - strictDeps = true; - nativeBuildInputs = [ wrapGAppsHook ]; + strictDeps = true; + nativeBuildInputs = [ wrapGAppsHook ]; - installFlags = [ "bin-foo" "libexec-bar" ]; + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + }; + + # The wrapper for executable files should add path to dconf GIO module. + basic-contains-dconf = + let + tested = basic; + in + testLib.runTest "basic-contains-dconf" ( + testLib.skip stdenv.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + '' + ); + + basic-contains-gdk-pixbuf = + let + tested = basic; + in + testLib.runTest "basic-contains-gdk-pixbuf" ( + testLib.skip stdenv.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GDK_PIXBUF_MODULE_FILE" + "${lib.getLib librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GDK_PIXBUF_MODULE_FILE" + "${lib.getLib librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" + } + '' + ); + + # Simple derivation containing a gobject-introspection typelib. + typelib-Mahjong = stdenv.mkDerivation { + name = "typelib-Mahjong"; + + src = sample-project; + + strictDeps = true; + + installFlags = [ "typelib-Mahjong" ]; + }; + + # Simple derivation using a typelib. + typelib-user = stdenv.mkDerivation { + name = "typelib-user"; + + src = sample-project; + + strictDeps = true; + nativeBuildInputs = [ + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ typelib-Mahjong ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + }; + + # Testing cooperation with gobject-introspection setup hook, + # which should populate GI_TYPELIB_PATH variable with paths + # to typelibs among the derivation’s dependencies. + # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. + typelib-user-has-gi-typelib-path = + let + tested = typelib-user; + in + testLib.runTest "typelib-user-has-gi-typelib-path" '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" + "${typelib-Mahjong}/lib/girepository-1.0" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" + "${typelib-Mahjong}/lib/girepository-1.0" + } + ''; + + # Simple derivation containing a gobject-introspection typelib in lib output. + typelib-Bechamel = stdenv.mkDerivation { + name = "typelib-Bechamel"; + + outputs = [ + "out" + "lib" + ]; + + src = sample-project; + + strictDeps = true; + + makeFlags = [ "LIBDIR=${placeholder "lib"}/lib" ]; + + installFlags = [ "typelib-Bechamel" ]; + }; + + # Simple derivation using a typelib from non-default output. + typelib-multiout-user = stdenv.mkDerivation { + name = "typelib-multiout-user"; + + src = sample-project; + + strictDeps = true; + nativeBuildInputs = [ + gobject-introspection + wrapGAppsHook + ]; + + buildInputs = [ typelib-Bechamel ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + }; + + # Testing cooperation with gobject-introspection setup hook, + # which should populate GI_TYPELIB_PATH variable with paths + # to typelibs among the derivation’s dependencies, + # even when they are not in default output. + # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. + typelib-multiout-user-has-gi-typelib-path = + let + tested = typelib-multiout-user; + in + testLib.runTest "typelib-multiout-user-has-gi-typelib-path" '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" + "${typelib-Bechamel.lib}/lib/girepository-1.0" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" + "${typelib-Bechamel.lib}/lib/girepository-1.0" + } + ''; + + # Simple derivation that contains a typelib as well as a program using it. + typelib-self-user = stdenv.mkDerivation { + name = "typelib-self-user"; + + src = sample-project; + + strictDeps = true; + nativeBuildInputs = [ + gobject-introspection + wrapGAppsHook + ]; + + installFlags = [ + "typelib-Cow" + "bin-foo" + "libexec-bar" + ]; + }; + + # Testing cooperation with gobject-introspection setup hook, + # which should add the path to derivation’s own typelibs + # to GI_TYPELIB_PATH variable. + # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. + # https://github.com/NixOS/nixpkgs/issues/85515 + typelib-self-user-has-gi-typelib-path = + let + tested = typelib-self-user; + in + testLib.runTest "typelib-self-user-has-gi-typelib-path" '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" + "${typelib-self-user}/lib/girepository-1.0" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" + "${typelib-self-user}/lib/girepository-1.0" + } + ''; }; - - # The wrapper for executable files should add path to dconf GIO module. - basic-contains-dconf = let - tested = basic; - in testLib.runTest "basic-contains-dconf" ( - testLib.skip stdenv.isDarwin '' - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES" "${dconf.lib}/lib/gio/modules"} - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GIO_EXTRA_MODULES" "${dconf.lib}/lib/gio/modules"} - '' - ); - - basic-contains-gdk-pixbuf = let - tested = basic; - in testLib.runTest "basic-contains-gdk-pixbuf" ( - testLib.skip stdenv.isDarwin '' - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GDK_PIXBUF_MODULE_FILE" "${lib.getLib librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"} - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GDK_PIXBUF_MODULE_FILE" "${lib.getLib librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"} - '' - ); - - # Simple derivation containing a gobject-introspection typelib. - typelib-Mahjong = stdenv.mkDerivation { - name = "typelib-Mahjong"; - - src = sample-project; - - strictDeps = true; - - installFlags = [ "typelib-Mahjong" ]; - }; - - # Simple derivation using a typelib. - typelib-user = stdenv.mkDerivation { - name = "typelib-user"; - - src = sample-project; - - strictDeps = true; - nativeBuildInputs = [ - gobject-introspection - wrapGAppsHook - ]; - - buildInputs = [ - typelib-Mahjong - ]; - - installFlags = [ "bin-foo" "libexec-bar" ]; - }; - - # Testing cooperation with gobject-introspection setup hook, - # which should populate GI_TYPELIB_PATH variable with paths - # to typelibs among the derivation’s dependencies. - # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. - typelib-user-has-gi-typelib-path = let - tested = typelib-user; - in testLib.runTest "typelib-user-has-gi-typelib-path" '' - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" "${typelib-Mahjong}/lib/girepository-1.0"} - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" "${typelib-Mahjong}/lib/girepository-1.0"} - ''; - - # Simple derivation containing a gobject-introspection typelib in lib output. - typelib-Bechamel = stdenv.mkDerivation { - name = "typelib-Bechamel"; - - outputs = [ "out" "lib" ]; - - src = sample-project; - - strictDeps = true; - - makeFlags = [ - "LIBDIR=${placeholder "lib"}/lib" - ]; - - installFlags = [ "typelib-Bechamel" ]; - }; - - # Simple derivation using a typelib from non-default output. - typelib-multiout-user = stdenv.mkDerivation { - name = "typelib-multiout-user"; - - src = sample-project; - - strictDeps = true; - nativeBuildInputs = [ - gobject-introspection - wrapGAppsHook - ]; - - buildInputs = [ - typelib-Bechamel - ]; - - installFlags = [ "bin-foo" "libexec-bar" ]; - }; - - # Testing cooperation with gobject-introspection setup hook, - # which should populate GI_TYPELIB_PATH variable with paths - # to typelibs among the derivation’s dependencies, - # even when they are not in default output. - # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. - typelib-multiout-user-has-gi-typelib-path = let - tested = typelib-multiout-user; - in testLib.runTest "typelib-multiout-user-has-gi-typelib-path" '' - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" "${typelib-Bechamel.lib}/lib/girepository-1.0"} - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" "${typelib-Bechamel.lib}/lib/girepository-1.0"} - ''; - - # Simple derivation that contains a typelib as well as a program using it. - typelib-self-user = stdenv.mkDerivation { - name = "typelib-self-user"; - - src = sample-project; - - strictDeps = true; - nativeBuildInputs = [ - gobject-introspection - wrapGAppsHook - ]; - - installFlags = [ "typelib-Cow" "bin-foo" "libexec-bar" ]; - }; - - # Testing cooperation with gobject-introspection setup hook, - # which should add the path to derivation’s own typelibs - # to GI_TYPELIB_PATH variable. - # The resulting GI_TYPELIB_PATH should be picked up by the wrapper. - # https://github.com/NixOS/nixpkgs/issues/85515 - typelib-self-user-has-gi-typelib-path = let - tested = typelib-self-user; - in testLib.runTest "typelib-self-user-has-gi-typelib-path" '' - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH" "${typelib-self-user}/lib/girepository-1.0"} - ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH" "${typelib-self-user}/lib/girepository-1.0"} - ''; - }; }; } ./wrap-gapps-hook.sh diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix index 59fa9de..f717b1b 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix @@ -1,16 +1,22 @@ { lib, runCommand }: rec { - runTest = name: body: runCommand name { strictDeps = true; } '' - set -o errexit - ${body} - touch $out - ''; + runTest = + name: body: + runCommand name { strictDeps = true; } '' + set -o errexit + ${body} + touch $out + ''; - skip = cond: text: - if cond then '' - echo "Skipping test $name" > /dev/stderr - '' else text; + skip = + cond: text: + if cond then + '' + echo "Skipping test $name" > /dev/stderr + '' + else + text; fail = text: '' echo "FAIL: $name: ${text}" > /dev/stderr diff --git a/pkgs/build-support/setup-systemd-units.nix b/pkgs/build-support/setup-systemd-units.nix index 4c7ee86..3dd9708 100644 --- a/pkgs/build-support/setup-systemd-units.nix +++ b/pkgs/build-support/setup-systemd-units.nix @@ -3,81 +3,82 @@ # # Creates a symlink at /etc/systemd-static/${namespace} for slightly # improved atomicity. -{ writeScriptBin -, bash -, coreutils -, systemd -, runCommand -, lib +{ + writeScriptBin, + bash, + coreutils, + systemd, + runCommand, + lib, }: - { units # : AttrSet String (Either Path { path : Path, wanted-by : [ String ] }) - # ^ A set whose names are unit names and values are - # either paths to the corresponding unit files or a set - # containing the path and the list of units this unit - # should be wanted-by (none by default). - # - # The names should include the unit suffix - # (e.g. ".service") - , namespace # : String - # The namespace for the unit files, to allow for - # multiple independent unit sets managed by - # `setupSystemdUnits`. - }: - let static = runCommand "systemd-static" {} - '' - mkdir -p $out - ${lib.concatStringsSep "\n" (lib.mapAttrsToList (nm: file: - "ln -sv ${file.path or file} $out/${nm}" - ) units)} - ''; - add-unit-snippet = name: file: - '' - oldUnit=$(readlink -f "$unitDir/${name}" || echo "$unitDir/${name}") - if [ -f "$oldUnit" -a "$oldUnit" != "${file.path or file}" ]; then - unitsToStop+=("${name}") - fi - ln -sf "/etc/systemd-static/${namespace}/${name}" \ - "$unitDir/.${name}.tmp" - mv -T "$unitDir/.${name}.tmp" "$unitDir/${name}" - ${lib.concatStringsSep "\n" (map (unit: - '' - mkdir -p "$unitDir/${unit}.wants" - ln -sf "../${name}" \ - "$unitDir/${unit}.wants/.${name}.tmp" - mv -T "$unitDir/${unit}.wants/.${name}.tmp" \ - "$unitDir/${unit}.wants/${name}" - '' - ) file.wanted-by or [])} - unitsToStart+=("${name}") - ''; - in - writeScriptBin "setup-systemd-units" - '' - #!${bash}/bin/bash -e - export PATH=${coreutils}/bin:${systemd}/bin +{ + units, + # : AttrSet String (Either Path { path : Path, wanted-by : [ String ] }) + # ^ A set whose names are unit names and values are + # either paths to the corresponding unit files or a set + # containing the path and the list of units this unit + # should be wanted-by (none by default). + # + # The names should include the unit suffix + # (e.g. ".service") + namespace, +# : String +# The namespace for the unit files, to allow for +# multiple independent unit sets managed by +# `setupSystemdUnits`. +}: +let + static = runCommand "systemd-static" { } '' + mkdir -p $out + ${lib.concatStringsSep "\n" ( + lib.mapAttrsToList (nm: file: "ln -sv ${file.path or file} $out/${nm}") units + )} + ''; + add-unit-snippet = name: file: '' + oldUnit=$(readlink -f "$unitDir/${name}" || echo "$unitDir/${name}") + if [ -f "$oldUnit" -a "$oldUnit" != "${file.path or file}" ]; then + unitsToStop+=("${name}") + fi + ln -sf "/etc/systemd-static/${namespace}/${name}" \ + "$unitDir/.${name}.tmp" + mv -T "$unitDir/.${name}.tmp" "$unitDir/${name}" + ${lib.concatStringsSep "\n" ( + map (unit: '' + mkdir -p "$unitDir/${unit}.wants" + ln -sf "../${name}" \ + "$unitDir/${unit}.wants/.${name}.tmp" + mv -T "$unitDir/${unit}.wants/.${name}.tmp" \ + "$unitDir/${unit}.wants/${name}" + '') file.wanted-by or [ ] + )} + unitsToStart+=("${name}") + ''; +in +writeScriptBin "setup-systemd-units" '' + #!${bash}/bin/bash -e + export PATH=${coreutils}/bin:${systemd}/bin - unitDir=/etc/systemd/system - if [ ! -w "$unitDir" ]; then - unitDir=/nix/var/nix/profiles/default/lib/systemd/system - mkdir -p "$unitDir" - fi - declare -a unitsToStop unitsToStart + unitDir=/etc/systemd/system + if [ ! -w "$unitDir" ]; then + unitDir=/nix/var/nix/profiles/default/lib/systemd/system + mkdir -p "$unitDir" + fi + declare -a unitsToStop unitsToStart - oldStatic=$(readlink -f /etc/systemd-static/${namespace} || true) - if [ "$oldStatic" != "${static}" ]; then - ${lib.concatStringsSep "\n" - (lib.mapAttrsToList add-unit-snippet units)} - if [ ''${#unitsToStop[@]} -ne 0 ]; then - echo "Stopping unit(s) ''${unitsToStop[@]}" >&2 - systemctl stop "''${unitsToStop[@]}" - fi - mkdir -p /etc/systemd-static - ln -sfT ${static} /etc/systemd-static/.${namespace}.tmp - mv -T /etc/systemd-static/.${namespace}.tmp /etc/systemd-static/${namespace} - systemctl daemon-reload - echo "Starting unit(s) ''${unitsToStart[@]}" >&2 - systemctl start "''${unitsToStart[@]}" - else - echo "Units unchanged, doing nothing" >&2 - fi - '' + oldStatic=$(readlink -f /etc/systemd-static/${namespace} || true) + if [ "$oldStatic" != "${static}" ]; then + ${lib.concatStringsSep "\n" (lib.mapAttrsToList add-unit-snippet units)} + if [ ''${#unitsToStop[@]} -ne 0 ]; then + echo "Stopping unit(s) ''${unitsToStop[@]}" >&2 + systemctl stop "''${unitsToStop[@]}" + fi + mkdir -p /etc/systemd-static + ln -sfT ${static} /etc/systemd-static/.${namespace}.tmp + mv -T /etc/systemd-static/.${namespace}.tmp /etc/systemd-static/${namespace} + systemctl daemon-reload + echo "Starting unit(s) ''${unitsToStart[@]}" >&2 + systemctl start "''${unitsToStart[@]}" + else + echo "Units unchanged, doing nothing" >&2 + fi +'' diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix index c9e53a4..ac6a211 100644 --- a/pkgs/build-support/singularity-tools/default.nix +++ b/pkgs/build-support/singularity-tools/default.nix @@ -1,19 +1,21 @@ -{ runCommand -, lib -, stdenv -, storeDir ? builtins.storeDir -, writeScript -, singularity -, writeClosure -, bash -, vmTools -, gawk -, util-linux -, runtimeShell -, e2fsprogs +{ + runCommand, + lib, + stdenv, + storeDir ? builtins.storeDir, + writeScript, + singularity, + writeClosure, + bash, + vmTools, + gawk, + util-linux, + runtimeShell, + e2fsprogs, }: rec { - shellScript = name: text: + shellScript = + name: text: writeScript name '' #!${runtimeShell} set -e @@ -21,15 +23,13 @@ rec { ''; mkLayer = - { name - , contents ? [ ] + { + name, + contents ? [ ], # May be "apptainer" instead of "singularity" - , projectName ? (singularity.projectName or "singularity") + projectName ? (singularity.projectName or "singularity"), }: - runCommand "${projectName}-layer-${name}" - { - inherit contents; - } '' + runCommand "${projectName}-layer-${name}" { inherit contents; } '' mkdir $out for f in $contents ; do cp -ra $f $out/ @@ -40,13 +40,14 @@ rec { let defaultSingularity = singularity; in - { name - , contents ? [ ] - , diskSize ? 1024 - , runScript ? "#!${stdenv.shell}\nexec /bin/sh" - , runAsRoot ? null - , memSize ? 512 - , singularity ? defaultSingularity + { + name, + contents ? [ ], + diskSize ? 1024, + runScript ? "#!${stdenv.shell}\nexec /bin/sh", + runAsRoot ? null, + memSize ? 512, + singularity ? defaultSingularity, }: let projectName = singularity.projectName or "singularity"; @@ -55,7 +56,12 @@ rec { result = vmTools.runInLinuxVM ( runCommand "${projectName}-image-${name}.img" { - buildInputs = [ singularity e2fsprogs util-linux gawk ]; + buildInputs = [ + singularity + e2fsprogs + util-linux + gawk + ]; layerClosure = writeClosure contents; preVM = vmTools.createEmptyImage { size = diskSize; @@ -110,7 +116,8 @@ rec { echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd echo > /etc/resolv.conf TMPDIR=$(pwd -P) ${projectName} build $out ./img - ''); + '' + ); in result; diff --git a/pkgs/build-support/source-from-head-fun.nix b/pkgs/build-support/source-from-head-fun.nix index 938df1e..5171968 100644 --- a/pkgs/build-support/source-from-head-fun.nix +++ b/pkgs/build-support/source-from-head-fun.nix @@ -7,10 +7,12 @@ to create source snapshots The documentation is availible at https://github.com/MarcWeber/nix-repository-manager/raw/master/README - */ { config }: - localTarName: publishedSrcSnapshot: - if config.sourceFromHead.useLocalRepos or false then - "${config.sourceFromHead.managedRepoDir or "/set/sourceFromHead.managedRepoDir/please"}/dist/${localTarName}" - else publishedSrcSnapshot +localTarName: publishedSrcSnapshot: +if config.sourceFromHead.useLocalRepos or false then + "${ + config.sourceFromHead.managedRepoDir or "/set/sourceFromHead.managedRepoDir/please" + }/dist/${localTarName}" +else + publishedSrcSnapshot diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix index 2b0db0e..571c0d4 100644 --- a/pkgs/build-support/src-only/default.nix +++ b/pkgs/build-support/src-only/default.nix @@ -11,12 +11,19 @@ let args = if builtins.hasAttr "drvAttrs" attrs then attrs.drvAttrs else attrs; name = if builtins.hasAttr "name" args then args.name else "${args.pname}-${args.version}"; in -stdenv.mkDerivation (args // { - name = "${name}-source"; - installPhase = "cp -r . $out"; - outputs = [ "out" ]; - separateDebugInfo = false; - dontUnpack = false; - dontInstall = false; - phases = ["unpackPhase" "patchPhase" "installPhase"]; -}) +stdenv.mkDerivation ( + args + // { + name = "${name}-source"; + installPhase = "cp -r . $out"; + outputs = [ "out" ]; + separateDebugInfo = false; + dontUnpack = false; + dontInstall = false; + phases = [ + "unpackPhase" + "patchPhase" + "installPhase" + ]; + } +) diff --git a/pkgs/build-support/substitute-files/substitute-all-files.nix b/pkgs/build-support/substitute-files/substitute-all-files.nix index 682e976..8c9b20a 100644 --- a/pkgs/build-support/substitute-files/substitute-all-files.nix +++ b/pkgs/build-support/substitute-files/substitute-all-files.nix @@ -2,25 +2,28 @@ args: -stdenv.mkDerivation ({ - name = if args ? name then args.name else baseNameOf (toString args.src); - builder = builtins.toFile "builder.sh" '' - source $stdenv/setup - set -o pipefail +stdenv.mkDerivation ( + { + name = if args ? name then args.name else baseNameOf (toString args.src); + builder = builtins.toFile "builder.sh" '' + source $stdenv/setup + set -o pipefail - eval "$preInstall" + eval "$preInstall" - args= + args= - pushd "$src" - echo -ne "${lib.concatStringsSep "\\0" args.files}" | xargs -0 -n1 -I {} -- find {} -type f -print0 | while read -d "" line; do - mkdir -p "$out/$(dirname "$line")" - substituteAll "$line" "$out/$line" - done - popd + pushd "$src" + echo -ne "${lib.concatStringsSep "\\0" args.files}" | xargs -0 -n1 -I {} -- find {} -type f -print0 | while read -d "" line; do + mkdir -p "$out/$(dirname "$line")" + substituteAll "$line" "$out/$line" + done + popd - eval "$postInstall" - ''; - preferLocalBuild = true; - allowSubstitutes = false; -} // args) + eval "$postInstall" + ''; + preferLocalBuild = true; + allowSubstitutes = false; + } + // args +) diff --git a/pkgs/build-support/substitute/substitute-all.nix b/pkgs/build-support/substitute/substitute-all.nix index f49d560..6481982 100644 --- a/pkgs/build-support/substitute/substitute-all.nix +++ b/pkgs/build-support/substitute/substitute-all.nix @@ -3,10 +3,13 @@ args: # see the substituteAll in the nixpkgs documentation for usage and constraints -stdenvNoCC.mkDerivation ({ - name = if args ? name then args.name else baseNameOf (toString args.src); - builder = ./substitute-all.sh; - inherit (args) src; - preferLocalBuild = true; - allowSubstitutes = false; -} // args) +stdenvNoCC.mkDerivation ( + { + name = if args ? name then args.name else baseNameOf (toString args.src); + builder = ./substitute-all.sh; + inherit (args) src; + preferLocalBuild = true; + allowSubstitutes = false; + } + // args +) diff --git a/pkgs/build-support/substitute/substitute.nix b/pkgs/build-support/substitute/substitute.nix index 37233a3..5a9e19a 100644 --- a/pkgs/build-support/substitute/substitute.nix +++ b/pkgs/build-support/substitute/substitute.nix @@ -1,30 +1,30 @@ { lib, stdenvNoCC }: /* -This is a wrapper around `substitute` in the stdenv. + This is a wrapper around `substitute` in the stdenv. -Attribute arguments: -- `name` (optional): The name of the resulting derivation -- `src`: The path to the file to substitute -- `substitutions`: The list of substitution arguments to pass - See https://nixos.org/manual/nixpkgs/stable/#fun-substitute -- `replacements`: Deprecated version of `substitutions` - that doesn't support spaces in arguments. + Attribute arguments: + - `name` (optional): The name of the resulting derivation + - `src`: The path to the file to substitute + - `substitutions`: The list of substitution arguments to pass + See https://nixos.org/manual/nixpkgs/stable/#fun-substitute + - `replacements`: Deprecated version of `substitutions` + that doesn't support spaces in arguments. -Example: + Example: -```nix -{ substitute }: -substitute { - src = ./greeting.txt; - substitutions = [ - "--replace" - "world" - "paul" - ]; -} -``` + ```nix + { substitute }: + substitute { + src = ./greeting.txt; + substitutions = [ + "--replace" + "world" + "paul" + ]; + } + ``` -See ../../test/substitute for tests + See ../../test/substitute for tests */ args: @@ -43,16 +43,19 @@ let pkgs.substitute: For "${name}", `replacements` is used, which is deprecated since it doesn't support arguments with spaces. Use `substitutions` instead: substitutions = [ ${deprecationReplacement} ];''; in -optionalDeprecationWarning -stdenvNoCC.mkDerivation ({ - inherit name; - builder = ./substitute.sh; - inherit (args) src; - preferLocalBuild = true; - allowSubstitutes = false; -} // args // lib.optionalAttrs (args ? substitutions) { - substitutions = - assert lib.assertMsg (lib.isList args.substitutions) '' - pkgs.substitute: For "${name}", `substitutions` is passed, which is expected to be a list, but it's a ${builtins.typeOf args.substitutions} instead.''; - lib.escapeShellArgs args.substitutions; -}) +optionalDeprecationWarning stdenvNoCC.mkDerivation ( + { + inherit name; + builder = ./substitute.sh; + inherit (args) src; + preferLocalBuild = true; + allowSubstitutes = false; + } + // args + // lib.optionalAttrs (args ? substitutions) { + substitutions = + assert lib.assertMsg (lib.isList args.substitutions) + ''pkgs.substitute: For "${name}", `substitutions` is passed, which is expected to be a list, but it's a ${builtins.typeOf args.substitutions} instead.''; + lib.escapeShellArgs args.substitutions; + } +) diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix index 362622d..8eb2e8f 100644 --- a/pkgs/build-support/testers/default.nix +++ b/pkgs/build-support/testers/default.nix @@ -1,15 +1,35 @@ -{ pkgs, pkgsLinux, buildPackages, lib, callPackage, runCommand, stdenv, substituteAll, testers }: +{ + pkgs, + pkgsLinux, + buildPackages, + lib, + callPackage, + runCommand, + stdenv, + substituteAll, + testers, +}: # Documentation is in doc/builders/testers.chapter.md { # See https://nixos.org/manual/nixpkgs/unstable/#tester-testBuildFailure # or doc/builders/testers.chapter.md - testBuildFailure = drv: drv.overrideAttrs (orig: { - builder = buildPackages.bash; - args = [ - (substituteAll { coreutils = buildPackages.coreutils; src = ./expect-failure.sh; }) - orig.realBuilder or stdenv.shell - ] ++ orig.args or ["-e" (orig.builder or ../../stdenv/generic/default-builder.sh)]; - }); + testBuildFailure = + drv: + drv.overrideAttrs (orig: { + builder = buildPackages.bash; + args = + [ + (substituteAll { + coreutils = buildPackages.coreutils; + src = ./expect-failure.sh; + }) + orig.realBuilder or stdenv.shell + ] + ++ orig.args or [ + "-e" + (orig.builder or ../../stdenv/generic/default-builder.sh) + ]; + }); # See https://nixos.org/manual/nixpkgs/unstable/#tester-testEqualDerivation # or doc/builders/testers.chapter.md @@ -17,69 +37,78 @@ # See https://nixos.org/manual/nixpkgs/unstable/#tester-testEqualContents # or doc/builders/testers.chapter.md - testEqualContents = { - assertion, - actual, - expected, - }: runCommand "equal-contents-${lib.strings.toLower assertion}" { - inherit assertion actual expected; - } '' - echo "Checking:" - echo "$assertion" - if ! diff -U5 -r "$actual" "$expected" --color=always - then - echo - echo 'Contents must be equal, but were not!' - echo - echo "+: expected, at $expected" - echo "-: unexpected, at $actual" - exit 1 - else - find "$expected" -type f -executable > expected-executables | sort - find "$actual" -type f -executable > actual-executables | sort - if ! diff -U0 actual-executables expected-executables --color=always - then - echo - echo "Contents must be equal, but some files' executable bits don't match" - echo - echo "+: make this file executable in the actual contents" - echo "-: make this file non-executable in the actual contents" - exit 1 - else - echo "expected $expected and actual $actual match." - echo 'OK' - touch $out - fi - fi - ''; + testEqualContents = + { + assertion, + actual, + expected, + }: + runCommand "equal-contents-${lib.strings.toLower assertion}" { inherit assertion actual expected; } + '' + echo "Checking:" + echo "$assertion" + if ! diff -U5 -r "$actual" "$expected" --color=always + then + echo + echo 'Contents must be equal, but were not!' + echo + echo "+: expected, at $expected" + echo "-: unexpected, at $actual" + exit 1 + else + find "$expected" -type f -executable > expected-executables | sort + find "$actual" -type f -executable > actual-executables | sort + if ! diff -U0 actual-executables expected-executables --color=always + then + echo + echo "Contents must be equal, but some files' executable bits don't match" + echo + echo "+: make this file executable in the actual contents" + echo "-: make this file non-executable in the actual contents" + exit 1 + else + echo "expected $expected and actual $actual match." + echo 'OK' + touch $out + fi + fi + ''; # See https://nixos.org/manual/nixpkgs/unstable/#tester-testVersion # or doc/builders/testers.chapter.md testVersion = - { package, + { + package, command ? "${package.meta.mainProgram or package.pname or package.name} --version", version ? package.version, - }: runCommand "${package.name}-test-version" { nativeBuildInputs = [ package ]; meta.timeout = 60; } '' - if output=$(${command} 2>&1); then - if grep -Fw -- "${version}" - <<< "$output"; then - touch $out + }: + runCommand "${package.name}-test-version" + { + nativeBuildInputs = [ package ]; + meta.timeout = 60; + } + '' + if output=$(${command} 2>&1); then + if grep -Fw -- "${version}" - <<< "$output"; then + touch $out + else + echo "Version string '${version}' not found!" >&2 + echo "The output was:" >&2 + echo "$output" >&2 + exit 1 + fi else - echo "Version string '${version}' not found!" >&2 - echo "The output was:" >&2 + echo -n ${lib.escapeShellArg command} >&2 + echo " returned a non-zero exit code." >&2 echo "$output" >&2 exit 1 fi - else - echo -n ${lib.escapeShellArg command} >&2 - echo " returned a non-zero exit code." >&2 - echo "$output" >&2 - exit 1 - fi - ''; + ''; # See doc/builders/testers.chapter.md or # https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash - invalidateFetcherByDrvHash = f: args: + invalidateFetcherByDrvHash = + f: args: let drvPath = (f args).drvPath; # It's safe to discard the context, because we don't access the path. @@ -89,61 +118,68 @@ # Make sure we did change the derivation. If the fetcher ignores `name`, # `invalidateFetcherByDrvHash` doesn't work. checked = - if salted.drvPath == drvPath - then throw "invalidateFetcherByDrvHash: Adding the derivation hash to the fixed-output derivation name had no effect. Make sure the fetcher's name argument ends up in the derivation name. Otherwise, the fetcher will not be re-run when its implementation changes. This is important for testing." - else salted; - in checked; + if salted.drvPath == drvPath then + throw "invalidateFetcherByDrvHash: Adding the derivation hash to the fixed-output derivation name had no effect. Make sure the fetcher's name argument ends up in the derivation name. Otherwise, the fetcher will not be re-run when its implementation changes. This is important for testing." + else + salted; + in + checked; # See doc/builders/testers.chapter.md or # https://nixos.org/manual/nixpkgs/unstable/#tester-runNixOSTest runNixOSTest = - let nixos = import ../../../nixos/lib { - inherit lib; + let + nixos = import ../../../nixos/lib { inherit lib; }; + in + testModule: + nixos.runTest { + _file = "pkgs.runNixOSTest implementation"; + imports = [ + (lib.setDefaultModuleLocation "the argument that was passed to pkgs.runNixOSTest" testModule) + ]; + hostPkgs = pkgs; + node.pkgs = pkgsLinux; }; - in testModule: - nixos.runTest { - _file = "pkgs.runNixOSTest implementation"; - imports = [ - (lib.setDefaultModuleLocation "the argument that was passed to pkgs.runNixOSTest" testModule) - ]; - hostPkgs = pkgs; - node.pkgs = pkgsLinux; - }; # See doc/builders/testers.chapter.md or # https://nixos.org/manual/nixpkgs/unstable/#tester-invalidateFetcherByDrvHash nixosTest = let - /* The nixos/lib/testing-python.nix module, preapplied with arguments that - * make sense for this evaluation of Nixpkgs. - */ - nixosTesting = - (import ../../../nixos/lib/testing-python.nix { + /* + The nixos/lib/testing-python.nix module, preapplied with arguments that + make sense for this evaluation of Nixpkgs. + */ + nixosTesting = ( + import ../../../nixos/lib/testing-python.nix { inherit (stdenv.hostPlatform) system; inherit pkgs; - extraConfigurations = [( - { lib, ... }: { - config.nixpkgs.pkgs = lib.mkDefault pkgsLinux; - } - )]; - }); + extraConfigurations = [ + ( + { lib, ... }: + { + config.nixpkgs.pkgs = lib.mkDefault pkgsLinux; + } + ) + ]; + } + ); in - test: - let - loadedTest = if builtins.typeOf test == "path" - then import test - else test; - calledTest = lib.toFunction loadedTest pkgs; - in - nixosTesting.simpleTest calledTest; + test: + let + loadedTest = if builtins.typeOf test == "path" then import test else test; + calledTest = lib.toFunction loadedTest pkgs; + in + nixosTesting.simpleTest calledTest; hasPkgConfigModule = { moduleName, ... }@args: - lib.warn "testers.hasPkgConfigModule has been deprecated in favor of testers.hasPkgConfigModules. It accepts a list of strings via the moduleNames argument instead of a single moduleName." ( - testers.hasPkgConfigModules (builtins.removeAttrs args [ "moduleName" ] // { - moduleNames = [ moduleName ]; - }) - ); + lib.warn + "testers.hasPkgConfigModule has been deprecated in favor of testers.hasPkgConfigModules. It accepts a list of strings via the moduleNames argument instead of a single moduleName." + ( + testers.hasPkgConfigModules ( + builtins.removeAttrs args [ "moduleName" ] // { moduleNames = [ moduleName ]; } + ) + ); hasPkgConfigModules = callPackage ./hasPkgConfigModules/tester.nix { }; testMetaPkgConfig = callPackage ./testMetaPkgConfig/tester.nix { }; diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix index bbcc4f0..c9257e3 100644 --- a/pkgs/build-support/testers/hasPkgConfigModules/tester.nix +++ b/pkgs/build-support/testers/hasPkgConfigModules/tester.nix @@ -1,35 +1,41 @@ # Static arguments -{ lib, runCommand, pkg-config }: +{ + lib, + runCommand, + pkg-config, +}: # Tester arguments -{ package, +{ + package, moduleNames ? package.meta.pkgConfigModules, testName ? "check-pkg-config-${lib.concatStringsSep "-" moduleNames}", }: -runCommand testName { +runCommand testName + { nativeBuildInputs = [ pkg-config ]; buildInputs = [ package ]; inherit moduleNames; - meta = { - description = "Test whether ${package.name} exposes pkg-config modules ${lib.concatStringsSep ", " moduleNames}."; - } - # Make sure licensing info etc is preserved, as this is a concern for e.g. cache.nixos.org, - # as hydra can't check this meta info in dependencies. - # The test itself is just Nixpkgs, with MIT license. - // builtins.intersectAttrs - { - available = throw "unused"; - broken = throw "unused"; - insecure = throw "unused"; - license = throw "unused"; - maintainers = throw "unused"; - platforms = throw "unused"; - unfree = throw "unused"; - unsupported = throw "unused"; - } - package.meta; - } '' + meta = + { + description = "Test whether ${package.name} exposes pkg-config modules ${lib.concatStringsSep ", " moduleNames}."; + } + # Make sure licensing info etc is preserved, as this is a concern for e.g. cache.nixos.org, + # as hydra can't check this meta info in dependencies. + # The test itself is just Nixpkgs, with MIT license. + // builtins.intersectAttrs { + available = throw "unused"; + broken = throw "unused"; + insecure = throw "unused"; + license = throw "unused"; + maintainers = throw "unused"; + platforms = throw "unused"; + unfree = throw "unused"; + unsupported = throw "unused"; + } package.meta; + } + '' touch "$out" for moduleName in $moduleNames; do echo "checking pkg-config module $moduleName in $buildInputs" diff --git a/pkgs/build-support/testers/hasPkgConfigModules/tests.nix b/pkgs/build-support/testers/hasPkgConfigModules/tests.nix index 9656949..70c80a6 100644 --- a/pkgs/build-support/testers/hasPkgConfigModules/tests.nix +++ b/pkgs/build-support/testers/hasPkgConfigModules/tests.nix @@ -1,6 +1,12 @@ # cd nixpkgs # nix-build -A tests.testers.hasPkgConfigModule -{ lib, testers, zlib, openssl, runCommand }: +{ + lib, + testers, + zlib, + openssl, + runCommand, +}: lib.recurseIntoAttrs { @@ -9,41 +15,40 @@ lib.recurseIntoAttrs { moduleNames = [ "zlib" ]; }; - zlib-has-meta-pkgConfigModules = testers.hasPkgConfigModules { - package = zlib; - }; + zlib-has-meta-pkgConfigModules = testers.hasPkgConfigModules { package = zlib; }; openssl-has-openssl = testers.hasPkgConfigModules { package = openssl; moduleNames = [ "openssl" ]; }; - openssl-has-all-meta-pkgConfigModules = testers.hasPkgConfigModules { - package = openssl; - }; + openssl-has-all-meta-pkgConfigModules = testers.hasPkgConfigModules { package = openssl; }; - zlib-does-not-have-ylib = runCommand "zlib-does-not-have-ylib" { - failed = testers.testBuildFailure ( - testers.hasPkgConfigModules { - package = zlib; - moduleNames = [ "ylib" ]; + zlib-does-not-have-ylib = + runCommand "zlib-does-not-have-ylib" + { + failed = testers.testBuildFailure ( + testers.hasPkgConfigModules { + package = zlib; + moduleNames = [ "ylib" ]; + } + ); } - ); - } '' - echo 'it logs a relevant error message' - { - grep -F "pkg-config module ylib was not found" $failed/testBuildFailure.log - } + '' + echo 'it logs a relevant error message' + { + grep -F "pkg-config module ylib was not found" $failed/testBuildFailure.log + } - echo 'it logs which pkg-config modules are available, to be helpful' - { - # grep -v: the string zlib does also occur in a store path in an earlier message, which isn't particularly helpful - grep -v "checking pkg-config module" < $failed/testBuildFailure.log \ - | grep -F "zlib" - } + echo 'it logs which pkg-config modules are available, to be helpful' + { + # grep -v: the string zlib does also occur in a store path in an earlier message, which isn't particularly helpful + grep -v "checking pkg-config module" < $failed/testBuildFailure.log \ + | grep -F "zlib" + } - # done - touch $out - ''; + # done + touch $out + ''; } diff --git a/pkgs/build-support/testers/test-equal-derivation.nix b/pkgs/build-support/testers/test-equal-derivation.nix index 610d5f5..497a5cd 100644 --- a/pkgs/build-support/testers/test-equal-derivation.nix +++ b/pkgs/build-support/testers/test-equal-derivation.nix @@ -1,13 +1,19 @@ -{ lib, runCommand, emptyFile, nix-diff }: +{ + lib, + runCommand, + emptyFile, + nix-diff, +}: assertion: a: b: let - drvA = builtins.unsafeDiscardOutputDependency a.drvPath or (throw "testEqualDerivation second argument must be a package"); - drvB = builtins.unsafeDiscardOutputDependency b.drvPath or (throw "testEqualDerivation third argument must be a package"); - name = - if a?name - then "testEqualDerivation-${a.name}" - else "testEqualDerivation"; + drvA = + builtins.unsafeDiscardOutputDependency + a.drvPath or (throw "testEqualDerivation second argument must be a package"); + drvB = + builtins.unsafeDiscardOutputDependency + b.drvPath or (throw "testEqualDerivation third argument must be a package"); + name = if a ? name then "testEqualDerivation-${a.name}" else "testEqualDerivation"; in if drvA == drvB then emptyFile @@ -16,7 +22,8 @@ else { inherit assertion drvA drvB; nativeBuildInputs = [ nix-diff ]; - } '' + } + '' echo "$assertion" echo "However, the derivations differ:" echo diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix index da67711..ba34cd3 100644 --- a/pkgs/build-support/testers/test/default.nix +++ b/pkgs/build-support/testers/test/default.nix @@ -1,8 +1,13 @@ -{ testers, lib, pkgs, hello, runCommand, ... }: +{ + testers, + lib, + pkgs, + hello, + runCommand, + ... +}: let - pkgs-with-overlay = pkgs.extend(final: prev: { - proof-of-overlay-hello = prev.hello; - }); + pkgs-with-overlay = pkgs.extend (final: prev: { proof-of-overlay-hello = prev.hello; }); dummyVersioning = { revision = "test"; @@ -14,98 +19,133 @@ in lib.recurseIntoAttrs { hasPkgConfigModules = pkgs.callPackage ../hasPkgConfigModules/tests.nix { }; - runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ({ lib, ... }: { - name = "runNixOSTest-test"; - nodes.machine = { pkgs, ... }: { - system.nixos = dummyVersioning; - environment.systemPackages = [ pkgs.proof-of-overlay-hello pkgs.figlet ]; - }; - testScript = '' - machine.succeed("hello | figlet >/dev/console") - ''; - }); + runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ( + { lib, ... }: + { + name = "runNixOSTest-test"; + nodes.machine = + { pkgs, ... }: + { + system.nixos = dummyVersioning; + environment.systemPackages = [ + pkgs.proof-of-overlay-hello + pkgs.figlet + ]; + }; + testScript = '' + machine.succeed("hello | figlet >/dev/console") + ''; + } + ); # Check that the wiring of nixosTest is correct. # Correct operation of the NixOS test driver should be asserted elsewhere. - nixosTest-example = pkgs-with-overlay.testers.nixosTest ({ lib, ... }: { - name = "nixosTest-test"; - nodes.machine = { pkgs, ... }: { - system.nixos = dummyVersioning; - environment.systemPackages = [ pkgs.proof-of-overlay-hello pkgs.figlet ]; - }; - testScript = '' - machine.succeed("hello | figlet >/dev/console") - ''; - }); + nixosTest-example = pkgs-with-overlay.testers.nixosTest ( + { lib, ... }: + { + name = "nixosTest-test"; + nodes.machine = + { pkgs, ... }: + { + system.nixos = dummyVersioning; + environment.systemPackages = [ + pkgs.proof-of-overlay-hello + pkgs.figlet + ]; + }; + testScript = '' + machine.succeed("hello | figlet >/dev/console") + ''; + } + ); testBuildFailure = lib.recurseIntoAttrs { - happy = runCommand "testBuildFailure-happy" { - failed = testers.testBuildFailure (runCommand "fail" {} '' - echo ok-ish >$out + happy = + runCommand "testBuildFailure-happy" + { + failed = testers.testBuildFailure ( + runCommand "fail" { } '' + echo ok-ish >$out - echo failing though - echo also stderr 1>&2 - echo 'line\nwith-\bbackslashes' - printf "incomplete line - no newline" + echo failing though + echo also stderr 1>&2 + echo 'line\nwith-\bbackslashes' + printf "incomplete line - no newline" - exit 3 - ''); - } '' - grep -F 'ok-ish' $failed/result + exit 3 + '' + ); + } + '' + grep -F 'ok-ish' $failed/result - grep -F 'failing though' $failed/testBuildFailure.log - grep -F 'also stderr' $failed/testBuildFailure.log - grep -F 'line\nwith-\bbackslashes' $failed/testBuildFailure.log - grep -F 'incomplete line - no newline' $failed/testBuildFailure.log + grep -F 'failing though' $failed/testBuildFailure.log + grep -F 'also stderr' $failed/testBuildFailure.log + grep -F 'line\nwith-\bbackslashes' $failed/testBuildFailure.log + grep -F 'incomplete line - no newline' $failed/testBuildFailure.log - [[ 3 = $(cat $failed/testBuildFailure.exit) ]] + [[ 3 = $(cat $failed/testBuildFailure.exit) ]] - touch $out - ''; + touch $out + ''; - helloDoesNotFail = runCommand "testBuildFailure-helloDoesNotFail" { - failed = testers.testBuildFailure (testers.testBuildFailure hello); + helloDoesNotFail = + runCommand "testBuildFailure-helloDoesNotFail" + { + failed = testers.testBuildFailure (testers.testBuildFailure hello); - # Add hello itself as a prerequisite, so we don't try to run this test if - # there's an actual failure in hello. - inherit hello; - } '' - echo "Checking $failed/testBuildFailure.log" - grep -F 'testBuildFailure: The builder did not fail, but a failure was expected' $failed/testBuildFailure.log >/dev/null - [[ 1 = $(cat $failed/testBuildFailure.exit) ]] - touch $out - echo 'All good.' - ''; + # Add hello itself as a prerequisite, so we don't try to run this test if + # there's an actual failure in hello. + inherit hello; + } + '' + echo "Checking $failed/testBuildFailure.log" + grep -F 'testBuildFailure: The builder did not fail, but a failure was expected' $failed/testBuildFailure.log >/dev/null + [[ 1 = $(cat $failed/testBuildFailure.exit) ]] + touch $out + echo 'All good.' + ''; - multiOutput = runCommand "testBuildFailure-multiOutput" { - failed = testers.testBuildFailure (runCommand "fail" { - # dev will be the default output - outputs = ["dev" "doc" "out"]; - } '' - echo i am failing - exit 1 - ''); - } '' - grep -F 'i am failing' $failed/testBuildFailure.log >/dev/null - [[ 1 = $(cat $failed/testBuildFailure.exit) ]] + multiOutput = + runCommand "testBuildFailure-multiOutput" + { + failed = testers.testBuildFailure ( + runCommand "fail" + { + # dev will be the default output + outputs = [ + "dev" + "doc" + "out" + ]; + } + '' + echo i am failing + exit 1 + '' + ); + } + '' + grep -F 'i am failing' $failed/testBuildFailure.log >/dev/null + [[ 1 = $(cat $failed/testBuildFailure.exit) ]] - # Checking our note that dev is the default output - echo $failed/_ | grep -- '-dev/_' >/dev/null - echo 'All good.' - touch $out - ''; + # Checking our note that dev is the default output + echo $failed/_ | grep -- '-dev/_' >/dev/null + echo 'All good.' + touch $out + ''; }; testEqualContents = lib.recurseIntoAttrs { happy = testers.testEqualContents { assertion = "The same directory contents at different paths are recognized as equal"; - expected = runCommand "expected" {} '' + expected = runCommand "expected" { } '' mkdir -p $out/c echo a >$out/a echo b >$out/b echo d >$out/c/d ''; - actual = runCommand "actual" {} '' + actual = runCommand "actual" { } '' mkdir -p $out/c echo a >$out/a echo b >$out/b @@ -114,100 +154,112 @@ lib.recurseIntoAttrs { }; unequalExe = - runCommand "testEqualContents-unequalExe" { - log = testers.testBuildFailure (testers.testEqualContents { - assertion = "The same directory contents at different paths are recognized as equal"; - expected = runCommand "expected" {} '' - mkdir -p $out/c - echo a >$out/a - chmod a+x $out/a - echo b >$out/b - echo d >$out/c/d - ''; - actual = runCommand "actual" {} '' - mkdir -p $out/c - echo a >$out/a - echo b >$out/b - chmod a+x $out/b - echo d >$out/c/d - ''; - }); - } '' - ( - set -x - grep -F -- "executable bits don't match" $log/testBuildFailure.log - grep -E -- '+.*-actual/a' $log/testBuildFailure.log - grep -E -- '-.*-actual/b' $log/testBuildFailure.log - grep -F -- "--- actual-executables" $log/testBuildFailure.log - grep -F -- "+++ expected-executables" $log/testBuildFailure.log - ) || { - echo "Test failed: could not find pattern in build log $log" - exit 1 + runCommand "testEqualContents-unequalExe" + { + log = testers.testBuildFailure ( + testers.testEqualContents { + assertion = "The same directory contents at different paths are recognized as equal"; + expected = runCommand "expected" { } '' + mkdir -p $out/c + echo a >$out/a + chmod a+x $out/a + echo b >$out/b + echo d >$out/c/d + ''; + actual = runCommand "actual" { } '' + mkdir -p $out/c + echo a >$out/a + echo b >$out/b + chmod a+x $out/b + echo d >$out/c/d + ''; + } + ); } - echo 'All good.' - touch $out - ''; + '' + ( + set -x + grep -F -- "executable bits don't match" $log/testBuildFailure.log + grep -E -- '+.*-actual/a' $log/testBuildFailure.log + grep -E -- '-.*-actual/b' $log/testBuildFailure.log + grep -F -- "--- actual-executables" $log/testBuildFailure.log + grep -F -- "+++ expected-executables" $log/testBuildFailure.log + ) || { + echo "Test failed: could not find pattern in build log $log" + exit 1 + } + echo 'All good.' + touch $out + ''; fileDiff = - runCommand "testEqualContents-fileDiff" { - log = testers.testBuildFailure (testers.testEqualContents { - assertion = "The same directory contents at different paths are recognized as equal"; - expected = runCommand "expected" {} '' - mkdir -p $out/c - echo a >$out/a - echo b >$out/b - echo d >$out/c/d - ''; - actual = runCommand "actual" {} '' - mkdir -p $out/c - echo a >$out/a - echo B >$out/b - echo d >$out/c/d - ''; - }); - } '' - ( - set -x - grep -F -- "Contents must be equal but were not" $log/testBuildFailure.log - grep -E -- '+++ .*-actual/b' $log/testBuildFailure.log - grep -E -- '--- .*-actual/b' $log/testBuildFailure.log - grep -F -- "-B" $log/testBuildFailure.log - grep -F -- "+b" $log/testBuildFailure.log - ) || { - echo "Test failed: could not find pattern in build log $log" - exit 1 + runCommand "testEqualContents-fileDiff" + { + log = testers.testBuildFailure ( + testers.testEqualContents { + assertion = "The same directory contents at different paths are recognized as equal"; + expected = runCommand "expected" { } '' + mkdir -p $out/c + echo a >$out/a + echo b >$out/b + echo d >$out/c/d + ''; + actual = runCommand "actual" { } '' + mkdir -p $out/c + echo a >$out/a + echo B >$out/b + echo d >$out/c/d + ''; + } + ); } - echo 'All good.' - touch $out - ''; + '' + ( + set -x + grep -F -- "Contents must be equal but were not" $log/testBuildFailure.log + grep -E -- '+++ .*-actual/b' $log/testBuildFailure.log + grep -E -- '--- .*-actual/b' $log/testBuildFailure.log + grep -F -- "-B" $log/testBuildFailure.log + grep -F -- "+b" $log/testBuildFailure.log + ) || { + echo "Test failed: could not find pattern in build log $log" + exit 1 + } + echo 'All good.' + touch $out + ''; fileMissing = - runCommand "testEqualContents-fileMissing" { - log = testers.testBuildFailure (testers.testEqualContents { - assertion = "The same directory contents at different paths are recognized as equal"; - expected = runCommand "expected" {} '' - mkdir -p $out/c - echo a >$out/a - echo b >$out/b - echo d >$out/c/d - ''; - actual = runCommand "actual" {} '' - mkdir -p $out/c - echo a >$out/a - echo d >$out/c/d - ''; - }); - } '' - ( - set -x - grep -F -- "Contents must be equal but were not" $log/testBuildFailure.log - grep -E -- 'Only in .*-expected: b' $log/testBuildFailure.log - ) || { - echo "Test failed: could not find pattern in build log $log" - exit 1 + runCommand "testEqualContents-fileMissing" + { + log = testers.testBuildFailure ( + testers.testEqualContents { + assertion = "The same directory contents at different paths are recognized as equal"; + expected = runCommand "expected" { } '' + mkdir -p $out/c + echo a >$out/a + echo b >$out/b + echo d >$out/c/d + ''; + actual = runCommand "actual" { } '' + mkdir -p $out/c + echo a >$out/a + echo d >$out/c/d + ''; + } + ); } - echo 'All good.' - touch $out - ''; + '' + ( + set -x + grep -F -- "Contents must be equal but were not" $log/testBuildFailure.log + grep -E -- 'Only in .*-expected: b' $log/testBuildFailure.log + ) || { + echo "Test failed: could not find pattern in build log $log" + exit 1 + } + echo 'All good.' + touch $out + ''; }; } diff --git a/pkgs/build-support/testers/testMetaPkgConfig/tester.nix b/pkgs/build-support/testers/testMetaPkgConfig/tester.nix index 7892a29..1dd5263 100644 --- a/pkgs/build-support/testers/testMetaPkgConfig/tester.nix +++ b/pkgs/build-support/testers/testMetaPkgConfig/tester.nix @@ -1,12 +1,18 @@ -{ lib, runCommand, testers }: +{ + lib, + runCommand, + testers, +}: package: -runCommand "check-meta-pkg-config-modules-for-${package.name}" { - meta = { - description = "Test whether ${package.name} exposes all pkg-config modules ${toString package.meta.pkgConfigModules}"; - }; - dependsOn = testers.hasPkgConfigModules { inherit package; }; -} '' - echo "found all of ${toString package.meta.pkgConfigModules}" > "$out" -'' +runCommand "check-meta-pkg-config-modules-for-${package.name}" + { + meta = { + description = "Test whether ${package.name} exposes all pkg-config modules ${toString package.meta.pkgConfigModules}"; + }; + dependsOn = testers.hasPkgConfigModules { inherit package; }; + } + '' + echo "found all of ${toString package.meta.pkgConfigModules}" > "$out" + '' diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix index 1625b0c..c9fc250 100644 --- a/pkgs/build-support/trivial-builders/default.nix +++ b/pkgs/build-support/trivial-builders/default.nix @@ -1,38 +1,50 @@ -{ lib, config, stdenv, stdenvNoCC, jq, lndir, runtimeShell, shellcheck-minimal }: +{ + lib, + config, + stdenv, + stdenvNoCC, + jq, + lndir, + runtimeShell, + shellcheck-minimal, +}: let - inherit (lib) - optionalAttrs - warn - ; + inherit (lib) optionalAttrs warn; in rec { # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommand - runCommand = name: env: runCommandWith { - stdenv = stdenvNoCC; - runLocal = false; - inherit name; - derivationArgs = env; - }; + runCommand = + name: env: + runCommandWith { + stdenv = stdenvNoCC; + runLocal = false; + inherit name; + derivationArgs = env; + }; # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandLocal - runCommandLocal = name: env: runCommandWith { - stdenv = stdenvNoCC; - runLocal = true; - inherit name; - derivationArgs = env; - }; + runCommandLocal = + name: env: + runCommandWith { + stdenv = stdenvNoCC; + runLocal = true; + inherit name; + derivationArgs = env; + }; # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-runCommandCC - runCommandCC = name: env: runCommandWith { - stdenv = stdenv; - runLocal = false; - inherit name; - derivationArgs = env; - }; + runCommandCC = + name: env: + runCommandWith { + stdenv = stdenv; + runLocal = false; + inherit name; + derivationArgs = env; + }; # `runCommandCCLocal` left out on purpose. # We shouldn’t force the user to have a cc in scope. @@ -46,7 +58,7 @@ rec { the used `stdenv` freely and has a more explicit approach to changing the arguments passed to `stdenv.mkDerivation`. - */ + */ runCommandWith = let # prevent infinite recursion for the default stdenv value @@ -54,60 +66,77 @@ rec { in { # which stdenv to use, defaults to a stdenv with a C compiler, pkgs.stdenv - stdenv ? defaultStdenv + stdenv ? defaultStdenv, # whether to build this derivation locally instead of substituting - , runLocal ? false + runLocal ? false, # extra arguments to pass to stdenv.mkDerivation - , derivationArgs ? { } + derivationArgs ? { }, # name of the resulting derivation - , name - # TODO(@Artturin): enable strictDeps always - }: buildCommand: - stdenv.mkDerivation ({ + name, + # TODO(@Artturin): enable strictDeps always + }: + buildCommand: + stdenv.mkDerivation ( + { enableParallelBuilding = true; inherit buildCommand name; - passAsFile = [ "buildCommand" ] - ++ (derivationArgs.passAsFile or [ ]); + passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]); } - // lib.optionalAttrs (! derivationArgs?meta) { - pos = let args = builtins.attrNames derivationArgs; in - if builtins.length args > 0 - then builtins.unsafeGetAttrPos (builtins.head args) derivationArgs - else null; + // lib.optionalAttrs (!derivationArgs ? meta) { + pos = + let + args = builtins.attrNames derivationArgs; + in + if builtins.length args > 0 then + builtins.unsafeGetAttrPos (builtins.head args) derivationArgs + else + null; } // (lib.optionalAttrs runLocal { preferLocalBuild = true; allowSubstitutes = false; }) - // builtins.removeAttrs derivationArgs [ "passAsFile" ]); - + // builtins.removeAttrs derivationArgs [ "passAsFile" ] + ); # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeTextFile writeTextFile = - { name - , text - , executable ? false - , destination ? "" - , checkPhase ? "" - , meta ? { } - , allowSubstitutes ? false - , preferLocalBuild ? true - , derivationArgs ? { } + { + name, + text, + executable ? false, + destination ? "", + checkPhase ? "", + meta ? { }, + allowSubstitutes ? false, + preferLocalBuild ? true, + derivationArgs ? { }, }: let matches = builtins.match "/bin/([^/]+)" destination; in runCommand name - ({ - inherit text executable checkPhase allowSubstitutes preferLocalBuild; - passAsFile = [ "text" ] - ++ derivationArgs.passAsFile or [ ]; - meta = lib.optionalAttrs (executable && matches != null) - { - mainProgram = lib.head matches; - } // meta // derivationArgs.meta or {}; - } // removeAttrs derivationArgs [ "passAsFile" "meta" ]) + ( + { + inherit + text + executable + checkPhase + allowSubstitutes + preferLocalBuild + ; + passAsFile = [ "text" ] ++ derivationArgs.passAsFile or [ ]; + meta = + lib.optionalAttrs (executable && matches != null) { mainProgram = lib.head matches; } + // meta + // derivationArgs.meta or { }; + } + // removeAttrs derivationArgs [ + "passAsFile" + "meta" + ] + ) '' target=$out${lib.escapeShellArg destination} mkdir -p "$(dirname "$target")" @@ -131,27 +160,37 @@ rec { # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeTextDir = path: text: writeTextFile { - inherit text; - name = builtins.baseNameOf path; - destination = "/${path}"; - }; + writeTextDir = + path: text: + writeTextFile { + inherit text; + name = builtins.baseNameOf path; + destination = "/${path}"; + }; # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeScript = name: text: writeTextFile { inherit name text; executable = true; }; + writeScript = + name: text: + writeTextFile { + inherit name text; + executable = true; + }; # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeScriptBin = name: text: writeTextFile { - inherit name text; - executable = true; - destination = "/bin/${name}"; - }; + writeScriptBin = + name: text: + writeTextFile { + inherit name text; + executable = true; + destination = "/bin/${name}"; + }; # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeShellScript = name: text: + writeShellScript = + name: text: writeTextFile { inherit name; executable = true; @@ -166,7 +205,8 @@ rec { # See doc/build-helpers/trivial-build-helpers.chapter.md # or https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-text-writing - writeShellScriptBin = name: text: + writeShellScriptBin = + name: text: writeTextFile { inherit name; executable = true; @@ -190,31 +230,31 @@ rec { The name of the script to write. Type: String - */ + */ name, /* The shell script's text, not including a shebang. Type: String - */ + */ text, /* Inputs to add to the shell script's `$PATH` at runtime. Type: [String|Derivation] - */ + */ runtimeInputs ? [ ], /* Extra environment variables to set at runtime. Type: AttrSet - */ + */ runtimeEnv ? null, /* `stdenv.mkDerivation`'s `meta` argument. Type: AttrSet - */ + */ meta ? { }, /* The `checkPhase` to run. Defaults to `shellcheck` on supported @@ -223,7 +263,7 @@ rec { The script path will be given as `$target` in the `checkPhase`. Type: String - */ + */ checkPhase ? null, /* Checks to exclude when running `shellcheck`, e.g. `[ "SC2016" ]`. @@ -231,13 +271,13 @@ rec { See for a list of checks. Type: [String] - */ + */ excludeShellChecks ? [ ], /* Extra command-line flags to pass to ShellCheck. Type: [String] - */ + */ extraShellCheckFlags ? [ ], /* Bash options to activate with `set -o` at the start of the script. @@ -245,17 +285,22 @@ rec { Defaults to `[ "errexit" "nounset" "pipefail" ]`. Type: [String] - */ - bashOptions ? [ "errexit" "nounset" "pipefail" ], - /* Extra arguments to pass to `stdenv.mkDerivation`. + */ + bashOptions ? [ + "errexit" + "nounset" + "pipefail" + ], + /* + Extra arguments to pass to `stdenv.mkDerivation`. - :::{.caution} - Certain derivation attributes are used internally, - overriding those could cause problems. - ::: + :::{.caution} + Certain derivation attributes are used internally, + overriding those could cause problems. + ::: - Type: AttrSet - */ + Type: AttrSet + */ derivationArgs ? { }, }: writeTextFile { @@ -264,49 +309,60 @@ rec { destination = "/bin/${name}"; allowSubstitutes = true; preferLocalBuild = false; - text = '' - #!${runtimeShell} - ${lib.concatMapStringsSep "\n" (option: "set -o ${option}") bashOptions} - '' + lib.optionalString (runtimeEnv != null) - (lib.concatStrings - (lib.mapAttrsToList - (name: value: '' + text = + '' + #!${runtimeShell} + ${lib.concatMapStringsSep "\n" (option: "set -o ${option}") bashOptions} + '' + + lib.optionalString (runtimeEnv != null) ( + lib.concatStrings ( + lib.mapAttrsToList (name: value: '' ${lib.toShellVar name value} export ${name} - '') - runtimeEnv)) - + lib.optionalString (runtimeInputs != [ ]) '' + '') runtimeEnv + ) + ) + + lib.optionalString (runtimeInputs != [ ]) '' - export PATH="${lib.makeBinPath runtimeInputs}:$PATH" - '' + '' + export PATH="${lib.makeBinPath runtimeInputs}:$PATH" + '' + + '' - ${text} - ''; + ${text} + ''; checkPhase = # GHC (=> shellcheck) isn't supported on some platforms (such as risc-v) # but we still want to use writeShellApplication on those platforms let shellcheckSupported = lib.meta.availableOn stdenv.buildPlatform shellcheck-minimal.compiler; - excludeFlags = lib.optionals (excludeShellChecks != [ ]) [ "--exclude" (lib.concatStringsSep "," excludeShellChecks) ]; + excludeFlags = lib.optionals (excludeShellChecks != [ ]) [ + "--exclude" + (lib.concatStringsSep "," excludeShellChecks) + ]; shellcheckCommand = lib.optionalString shellcheckSupported '' # use shellcheck which does not include docs # pandoc takes long to build and documentation isn't needed for just running the cli - ${lib.getExe shellcheck-minimal} ${lib.escapeShellArgs (excludeFlags ++ extraShellCheckFlags)} "$target" + ${lib.getExe shellcheck-minimal} ${ + lib.escapeShellArgs (excludeFlags ++ extraShellCheckFlags) + } "$target" ''; in - if checkPhase == null then '' - runHook preCheck - ${stdenv.shellDryRun} "$target" - ${shellcheckCommand} - runHook postCheck - '' - else checkPhase; + if checkPhase == null then + '' + runHook preCheck + ${stdenv.shellDryRun} "$target" + ${shellcheckCommand} + runHook postCheck + '' + else + checkPhase; }; # Create a C binary # TODO: add to writers? pkgs/build-support/writers - writeCBin = pname: code: + writeCBin = + pname: code: runCommandCC pname { inherit pname code; @@ -329,22 +385,20 @@ rec { # TODO: deduplicate with documentation in doc/build-helpers/trivial-build-helpers.chapter.md # see also https://github.com/NixOS/nixpkgs/pull/249721 # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-concatText - /* concat a list of files to the nix store. + /* + concat a list of files to the nix store. The contents of files are added to the file in the store. Example: - # Writes my-file to /nix/store/ concatTextFile { name = "my-file"; files = [ drv1 "${drv2}/path/to/file" ]; } - See also the `concatText` helper function below. - # Writes executable my-file to /nix/store//bin/my-file concatTextFile { name = "my-file"; @@ -352,19 +406,26 @@ rec { executable = true; destination = "/bin/my-file"; } - - - */ + */ concatTextFile = - { name # the name of the derivation - , files - , executable ? false # run chmod +x ? - , destination ? "" # relative path appended to $out eg "/bin/foo" - , checkPhase ? "" # syntax checks, e.g. for scripts - , meta ? { } + { + name, # the name of the derivation + files, + executable ? false, # run chmod +x ? + destination ? "", # relative path appended to $out eg "/bin/foo" + checkPhase ? "", # syntax checks, e.g. for scripts + meta ? { }, }: runCommandLocal name - { inherit files executable checkPhase meta destination; } + { + inherit + files + executable + checkPhase + meta + destination + ; + } '' file=$out$destination mkdir -p "$(dirname "$file")" @@ -385,11 +446,8 @@ rec { Example: - # Writes contents of files to /nix/store/ concatText "my-file" [ file1 file2 ] - - */ concatText = name: files: concatTextFile { inherit name files; }; @@ -402,10 +460,13 @@ rec { Example: # Writes contents of files to /nix/store/ concatScript "my-file" [ file1 file2 ] - */ - concatScript = name: files: concatTextFile { inherit name files; executable = true; }; - + concatScript = + name: files: + concatTextFile { + inherit name files; + executable = true; + }; /* TODO: Deduplicate this documentation. @@ -421,20 +482,14 @@ rec { Example: - # adds symlinks of hello to current build. symlinkJoin { name = "myhello"; paths = [ pkgs.hello ]; } - - - # adds symlinks of hello and stack to current build and prints "links added" symlinkJoin { name = "myexample"; paths = [ pkgs.hello pkgs.stack ]; postBuild = "echo links added"; } - This creates a derivation with a directory structure like the following: - /nix/store/sglsr5g079a5235hy29da3mq3hv8sjmm-myexample |-- bin | |-- hello -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10/bin/hello @@ -448,7 +503,6 @@ rec { | `-- stack.fish -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/fish/vendor_completions.d/stack.fish ... - symlinkJoin and linkFarm are similar functions, but they output derivations with different structure. @@ -463,30 +517,34 @@ rec { linkFarm is instead used to create a simple derivation with symlinks to other derivations. A derivation created with linkFarm is often used in CI as a easy way to build multiple derivations at once. - */ + */ symlinkJoin = - args_@{ name - , paths - , preferLocalBuild ? true - , allowSubstitutes ? false - , postBuild ? "" - , ... + args_@{ + name, + paths, + preferLocalBuild ? true, + allowSubstitutes ? false, + postBuild ? "", + ... }: let - args = removeAttrs args_ [ "name" "postBuild" ] + args = + removeAttrs args_ [ + "name" + "postBuild" + ] // { - inherit preferLocalBuild allowSubstitutes; - passAsFile = [ "paths" ]; - }; # pass the defaults + inherit preferLocalBuild allowSubstitutes; + passAsFile = [ "paths" ]; + }; # pass the defaults in - runCommand name args - '' - mkdir -p $out - for i in $(cat $pathsPath); do - ${lndir}/bin/lndir -silent $i $out - done - ${postBuild} - ''; + runCommand name args '' + mkdir -p $out + for i in $(cat $pathsPath); do + ${lndir}/bin/lndir -silent $i $out + done + ${postBuild} + ''; # TODO: move linkFarm docs to the Nixpkgs manual /* @@ -498,12 +556,10 @@ rec { [ { name = "name" ; path = "/nix/store/..."; } ] - or an attribute set name -> path like: { name = "/nix/store/..."; other = "/nix/store/..."; } - Example: # Symlinks hello and stack paths in store to current $out/hello-test and @@ -516,34 +572,36 @@ rec { |-- foobar -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1 `-- hello-test -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10 - See the note on symlinkJoin for the difference between linkFarm and symlinkJoin. - */ - linkFarm = name: entries: + */ + linkFarm = + name: entries: let entries' = - if (lib.isAttrs entries) then entries + if (lib.isAttrs entries) then + entries # We do this foldl to have last-wins semantics in case of repeated entries - else if (lib.isList entries) then lib.foldl (a: b: a // { "${b.name}" = b.path; }) { } entries - else throw "linkFarm entries must be either attrs or a list!"; + else if (lib.isList entries) then + lib.foldl (a: b: a // { "${b.name}" = b.path; }) { } entries + else + throw "linkFarm entries must be either attrs or a list!"; - linkCommands = lib.mapAttrsToList - (name: path: '' - mkdir -p "$(dirname ${lib.escapeShellArg "${name}"})" - ln -s ${lib.escapeShellArg "${path}"} ${lib.escapeShellArg "${name}"} - '') - entries'; + linkCommands = lib.mapAttrsToList (name: path: '' + mkdir -p "$(dirname ${lib.escapeShellArg "${name}"})" + ln -s ${lib.escapeShellArg "${path}"} ${lib.escapeShellArg "${name}"} + '') entries'; in runCommand name { preferLocalBuild = true; allowSubstitutes = false; passthru.entries = entries'; - } '' - mkdir -p $out - cd $out - ${lib.concatStrings linkCommands} - ''; + } + '' + mkdir -p $out + cd $out + ${lib.concatStrings linkCommands} + ''; # TODO: move linkFarmFromDrvs docs to the Nixpkgs manual /* @@ -560,16 +618,20 @@ rec { This creates a derivation with a directory structure like the following: - /nix/store/m3s6wkjy9c3wy830201bqsb91nk2yj8c-myexample |-- gcc-wrapper-9.2.0 -> /nix/store/fqhjxf9ii4w4gqcsx59fyw2vvj91486a-gcc-wrapper-9.2.0 |-- ghc-8.6.5 -> /nix/store/gnf3s07bglhbbk4y6m76sbh42siym0s6-ghc-8.6.5 `-- hello-2.10 -> /nix/store/k0ll91c4npk4lg8lqhx00glg2m735g74-hello-2.10 - */ - linkFarmFromDrvs = name: drvs: - let mkEntryFromDrv = drv: { name = drv.name; path = drv; }; - in linkFarm name (map mkEntryFromDrv drvs); + linkFarmFromDrvs = + name: drvs: + let + mkEntryFromDrv = drv: { + name = drv.name; + path = drv; + }; + in + linkFarm name (map mkEntryFromDrv drvs); # TODO: move onlyBin docs to the Nixpkgs manual /* @@ -580,100 +642,121 @@ rec { bin output and other contents of the package's output (e.g. setup hooks) cause trouble when used in your environment. */ - onlyBin = drv: runCommand "${drv.name}-only-bin" { } '' - mkdir -p $out - ln -s ${lib.getBin drv}/bin $out/bin - ''; - + onlyBin = + drv: + runCommand "${drv.name}-only-bin" { } '' + mkdir -p $out + ln -s ${lib.getBin drv}/bin $out/bin + ''; # Docs in doc/builders/special/makesetuphook.section.md # See https://nixos.org/manual/nixpkgs/unstable/#sec-pkgs.makeSetupHook makeSetupHook = - { name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook" - , deps ? [ ] + { + name ? lib.warn "calling makeSetupHook without passing a name is deprecated." "hook", + deps ? [ ], # hooks go in nativeBuildInput so these will be nativeBuildInput - , propagatedBuildInputs ? [ ] + propagatedBuildInputs ? [ ], # these will be buildInputs - , depsTargetTargetPropagated ? [ ] - , meta ? { } - , passthru ? { } - , substitutions ? { } + depsTargetTargetPropagated ? [ ], + meta ? { }, + passthru ? { }, + substitutions ? { }, }: script: runCommand name - (substitutions // { - # TODO(@Artturin:) substitutions should be inside the env attrset - # but users are likely passing non-substitution arguments through substitutions - # turn off __structuredAttrs to unbreak substituteAll - __structuredAttrs = false; - inherit meta; - inherit depsTargetTargetPropagated; - propagatedBuildInputs = - # remove list conditionals before 23.11 - lib.warnIf (!lib.isList deps) "'deps' argument to makeSetupHook must be a list. content of deps: ${toString deps}" - (lib.warnIf (deps != [ ]) "'deps' argument to makeSetupHook is deprecated and will be removed in release 23.11., Please use propagatedBuildInputs instead. content of deps: ${toString deps}" - propagatedBuildInputs ++ (if lib.isList deps then deps else [ deps ])); - strictDeps = true; - # TODO 2023-01, no backport: simplify to inherit passthru; - passthru = passthru - // optionalAttrs (substitutions?passthru) - (warn "makeSetupHook (name = ${lib.strings.escapeNixString name}): `substitutions.passthru` is deprecated. Please set `passthru` directly." - substitutions.passthru); - }) - ('' - mkdir -p $out/nix-support - cp ${script} $out/nix-support/setup-hook - recordPropagatedDependencies - '' + lib.optionalString (substitutions != { }) '' - substituteAll ${script} $out/nix-support/setup-hook - ''); - + ( + substitutions + // { + # TODO(@Artturin:) substitutions should be inside the env attrset + # but users are likely passing non-substitution arguments through substitutions + # turn off __structuredAttrs to unbreak substituteAll + __structuredAttrs = false; + inherit meta; + inherit depsTargetTargetPropagated; + propagatedBuildInputs = + # remove list conditionals before 23.11 + lib.warnIf (!lib.isList deps) + "'deps' argument to makeSetupHook must be a list. content of deps: ${toString deps}" + ( + lib.warnIf (deps != [ ]) + "'deps' argument to makeSetupHook is deprecated and will be removed in release 23.11., Please use propagatedBuildInputs instead. content of deps: ${toString deps}" + propagatedBuildInputs + ++ (if lib.isList deps then deps else [ deps ]) + ); + strictDeps = true; + # TODO 2023-01, no backport: simplify to inherit passthru; + passthru = + passthru + // optionalAttrs (substitutions ? passthru) ( + warn "makeSetupHook (name = ${lib.strings.escapeNixString name}): `substitutions.passthru` is deprecated. Please set `passthru` directly." substitutions.passthru + ); + } + ) + ( + '' + mkdir -p $out/nix-support + cp ${script} $out/nix-support/setup-hook + recordPropagatedDependencies + '' + + lib.optionalString (substitutions != { }) '' + substituteAll ${script} $out/nix-support/setup-hook + '' + ); # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeReferencesToFile # TODO: Convert to throw after Nixpkgs 24.05 branch-off. - writeReferencesToFile = (if config.allowAliases then lib.warn else throw) - "writeReferencesToFile is deprecated in favour of writeClosure" - (path: writeClosure [ path ]); + writeReferencesToFile = + (if config.allowAliases then lib.warn else throw) + "writeReferencesToFile is deprecated in favour of writeClosure" + (path: writeClosure [ path ]); # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeClosure - writeClosure = paths: runCommand "runtime-deps" - { - # Get the cleaner exportReferencesGraph interface - __structuredAttrs = true; - exportReferencesGraph.graph = paths; - nativeBuildInputs = [ jq ]; - } - '' - jq -r ".graph | map(.path) | sort | .[]" "$NIX_ATTRS_JSON_FILE" > "$out" - ''; + writeClosure = + paths: + runCommand "runtime-deps" + { + # Get the cleaner exportReferencesGraph interface + __structuredAttrs = true; + exportReferencesGraph.graph = paths; + nativeBuildInputs = [ jq ]; + } + '' + jq -r ".graph | map(.path) | sort | .[]" "$NIX_ATTRS_JSON_FILE" > "$out" + ''; # Docs in doc/build-helpers/trivial-build-helpers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#trivial-builder-writeDirectReferencesToFile - writeDirectReferencesToFile = path: runCommand "runtime-references" - { - exportReferencesGraph = [ "graph" path ]; - inherit path; - } - '' - touch ./references - while read p; do - read dummy - read nrRefs - if [[ $p == $path ]]; then - for ((i = 0; i < nrRefs; i++)); do - read ref; - echo $ref >>./references - done - else - for ((i = 0; i < nrRefs; i++)); do - read ref; - done - fi - done < graph - sort ./references >$out - ''; + writeDirectReferencesToFile = + path: + runCommand "runtime-references" + { + exportReferencesGraph = [ + "graph" + path + ]; + inherit path; + } + '' + touch ./references + while read p; do + read dummy + read nrRefs + if [[ $p == $path ]]; then + for ((i = 0; i < nrRefs; i++)); do + read ref; + echo $ref >>./references + done + else + for ((i = 0; i < nrRefs; i++)); do + read ref; + done + fi + done < graph + sort ./references >$out + ''; # TODO: move writeStringReferencesToFile docs to the Nixpkgs manual /* @@ -684,8 +767,9 @@ rec { contents (to avoid unnecessary rebuilds, for example). Note that this only works as intended on Nix >= 2.3. - */ - writeStringReferencesToFile = string: + */ + writeStringReferencesToFile = + string: /* The basic operation this performs is to copy the string context from `string` to a second string and wrap that string in a @@ -707,14 +791,10 @@ rec { # Objects copied from outside of the store, such as paths and # `builtins.fetch*`ed ones sources = lib.attrNames (lib.filterAttrs (n: v: v ? path) context); - packages = - lib.mapAttrs' - (name: value: - { - inherit value; - name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name); - }) - derivations; + packages = lib.mapAttrs' (name: value: { + inherit value; + name = lib.head (builtins.match "${builtins.storeDir}/[${nixHashChars}]+-(.*)\.drv" name); + }) derivations; # The syntax of output paths differs between outputs named `out` # and other, explicitly named ones. For explicitly named ones, # the output name is suffixed as `-name`, but `out` outputs @@ -722,33 +802,35 @@ rec { # from named output paths. Therefore, we find all the named ones # first so we can use them to remove false matches when looking # for `out` outputs (see the definition of `outputPaths`). - namedOutputPaths = - lib.flatten - (lib.mapAttrsToList - (name: value: - (map - (output: - lib.filter - lib.isList - (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string)) - (lib.remove "out" value.outputs))) - packages); + namedOutputPaths = lib.flatten ( + lib.mapAttrsToList ( + name: value: + (map ( + output: + lib.filter lib.isList ( + builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name}-${output})" string + ) + ) (lib.remove "out" value.outputs)) + ) packages + ); # Only `out` outputs - outputPaths = - lib.flatten - (lib.mapAttrsToList - (name: value: - if lib.elem "out" value.outputs then - lib.filter - (x: lib.isList x && - # If the matched path is in `namedOutputPaths`, - # it's a partial match of an output path where - # the output name isn't `out` - lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths) - (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string) - else - [ ]) - packages); + outputPaths = lib.flatten ( + lib.mapAttrsToList ( + name: value: + if lib.elem "out" value.outputs then + lib.filter ( + x: + lib.isList x + && + # If the matched path is in `namedOutputPaths`, + # it's a partial match of an output path where + # the output name isn't `out` + lib.all (o: !lib.hasPrefix (lib.head x) o) namedOutputPaths + ) (builtins.split "(${builtins.storeDir}/[${nixHashChars}]+-${name})" string) + else + [ ] + ) packages + ); allPaths = lib.concatStringsSep "\n" (lib.unique (sources ++ namedOutputPaths ++ outputPaths)); allPathsWithContext = builtins.appendContext allPaths context; in @@ -757,25 +839,27 @@ rec { else writeDirectReferencesToFile (writeText "string-file" string); - # Docs in doc/build-helpers/fetchers.chapter.md # See https://nixos.org/manual/nixpkgs/unstable/#requirefile requireFile = - { name ? null - , sha256 ? null - , sha1 ? null - , hash ? null - , url ? null - , message ? null - , hashMode ? "flat" + { + name ? null, + sha256 ? null, + sha1 ? null, + hash ? null, + url ? null, + message ? null, + hashMode ? "flat", }: - assert (message != null) || (url != null); - assert (sha256 != null) || (sha1 != null) || (hash != null); - assert (name != null) || (url != null); - let - msg = - if message != null then message - else '' + assert (message != null) || (url != null); + assert (sha256 != null) || (sha1 != null) || (hash != null); + assert (name != null) || (url != null); + let + msg = + if message != null then + message + else + '' Unfortunately, we cannot download file ${name_} automatically. Please go to ${url} to download it yourself, and add it to the Nix store using either @@ -783,37 +867,42 @@ rec { or nix-prefetch-url --type ${hashAlgo} file:///path/to/${name_} ''; - hashAlgo = - if hash != null then (builtins.head (lib.strings.splitString "-" hash)) - else if sha256 != null then "sha256" - else "sha1"; - hashAlgo_ = if hash != null then "" else hashAlgo; - hash_ = - if hash != null then hash - else if sha256 != null then sha256 - else sha1; - name_ = if name == null then baseNameOf (toString url) else name; - in - stdenvNoCC.mkDerivation { - name = name_; - outputHashMode = hashMode; - outputHashAlgo = hashAlgo_; - outputHash = hash_; - preferLocalBuild = true; - allowSubstitutes = false; - builder = writeScript "restrict-message" '' - source ${stdenvNoCC}/setup - cat <<_EOF_ + hashAlgo = + if hash != null then + (builtins.head (lib.strings.splitString "-" hash)) + else if sha256 != null then + "sha256" + else + "sha1"; + hashAlgo_ = if hash != null then "" else hashAlgo; + hash_ = + if hash != null then + hash + else if sha256 != null then + sha256 + else + sha1; + name_ = if name == null then baseNameOf (toString url) else name; + in + stdenvNoCC.mkDerivation { + name = name_; + outputHashMode = hashMode; + outputHashAlgo = hashAlgo_; + outputHash = hash_; + preferLocalBuild = true; + allowSubstitutes = false; + builder = writeScript "restrict-message" '' + source ${stdenvNoCC}/setup + cat <<_EOF_ - *** - ${msg} - *** - - _EOF_ - exit 1 - ''; - }; + *** + ${msg} + *** + _EOF_ + exit 1 + ''; + }; # TODO: move copyPathToStore docs to the Nixpkgs manual /* @@ -824,15 +913,13 @@ rec { */ copyPathToStore = builtins.filterSource (p: t: true); - # TODO: move copyPathsToStore docs to the Nixpkgs manual - /* - Copy a list of paths to the Nix store. - */ + # Copy a list of paths to the Nix store. copyPathsToStore = builtins.map copyPathToStore; # TODO: move applyPatches docs to the Nixpkgs manual - /* Applies a list of patches to a source directory. + /* + Applies a list of patches to a source directory. Example: @@ -847,53 +934,68 @@ rec { }) ]; } - - */ + */ applyPatches = - { src - , name ? (if builtins.typeOf src == "path" - then builtins.baseNameOf src - else - if builtins.isAttrs src && builtins.hasAttr "name" src - then src.name - else throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." - ) + "-patched" - , patches ? [ ] - , prePatch ? "" - , postPatch ? "" - , ... + { + src, + name ? + ( + if builtins.typeOf src == "path" then + builtins.baseNameOf src + else if builtins.isAttrs src && builtins.hasAttr "name" src then + src.name + else + throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute." + ) + + "-patched", + patches ? [ ], + prePatch ? "", + postPatch ? "", + ... }@args: - if patches == [ ] && prePatch == "" && postPatch == "" - then src # nothing to do, so use original src to avoid additional drv - else stdenvNoCC.mkDerivation - ({ - inherit name src patches prePatch postPatch; - preferLocalBuild = true; - allowSubstitutes = false; - phases = "unpackPhase patchPhase installPhase"; - installPhase = "cp -R ./ $out"; - } - # Carry `meta` information from the underlying `src` if present. - // (optionalAttrs (src?meta) { inherit (src) meta; }) - // (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ])); + if patches == [ ] && prePatch == "" && postPatch == "" then + src # nothing to do, so use original src to avoid additional drv + else + stdenvNoCC.mkDerivation ( + { + inherit + name + src + patches + prePatch + postPatch + ; + preferLocalBuild = true; + allowSubstitutes = false; + phases = "unpackPhase patchPhase installPhase"; + installPhase = "cp -R ./ $out"; + } + # Carry `meta` information from the underlying `src` if present. + // (optionalAttrs (src ? meta) { inherit (src) meta; }) + // (removeAttrs args [ + "src" + "name" + "patches" + "prePatch" + "postPatch" + ]) + ); # TODO: move docs to Nixpkgs manual - /* An immutable file in the store with a length of 0 bytes. */ - emptyFile = runCommand "empty-file" - { - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "0ip26j2h11n1kgkz36rl4akv694yz65hr72q4kv4b3lxcbi65b3p"; - preferLocalBuild = true; - } "touch $out"; + # An immutable file in the store with a length of 0 bytes. + emptyFile = runCommand "empty-file" { + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0ip26j2h11n1kgkz36rl4akv694yz65hr72q4kv4b3lxcbi65b3p"; + preferLocalBuild = true; + } "touch $out"; # TODO: move docs to Nixpkgs manual - /* An immutable empty directory in the store. */ - emptyDirectory = runCommand "empty-directory" - { - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"; - preferLocalBuild = true; - } "mkdir $out"; + # An immutable empty directory in the store. + emptyDirectory = runCommand "empty-directory" { + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5"; + preferLocalBuild = true; + } "mkdir $out"; } diff --git a/pkgs/build-support/trivial-builders/test-overriding.nix b/pkgs/build-support/trivial-builders/test-overriding.nix index a16bbbe..2976712 100644 --- a/pkgs/build-support/trivial-builders/test-overriding.nix +++ b/pkgs/build-support/trivial-builders/test-overriding.nix @@ -4,14 +4,15 @@ # to disable extglob in `writeShellScript`. # # Run using `nix-build -A tests.trivial-builders.overriding`. -{ lib -, stdenv -, runtimeShell -, runCommand -, callPackage -, writeShellScript -, writeTextFile -, writeShellScriptBin +{ + lib, + stdenv, + runtimeShell, + runCommand, + callPackage, + writeShellScript, + writeTextFile, + writeShellScriptBin, }: let @@ -22,16 +23,15 @@ let rm success ''; - simpleCase = case: - writeShellScript "test-trivial-overriding-${case}" extglobScript; + simpleCase = case: writeShellScript "test-trivial-overriding-${case}" extglobScript; - callPackageCase = case: callPackage ( - { writeShellScript }: - writeShellScript "test-trivial-callpackage-overriding-${case}" extglobScript - ) { }; + callPackageCase = + case: + callPackage ( + { writeShellScript }: writeShellScript "test-trivial-callpackage-overriding-${case}" extglobScript + ) { }; - binCase = case: - writeShellScriptBin "test-trivial-overriding-bin-${case}" extglobScript; + binCase = case: writeShellScriptBin "test-trivial-overriding-bin-${case}" extglobScript; # building this derivation would fail without overriding textFileCase = writeTextFile { @@ -44,17 +44,21 @@ let executable = true; }; - disallowExtglob = x: x.overrideAttrs (_: { + disallowExtglob = + x: + x.overrideAttrs (_: { checkPhase = '' ${stdenv.shell} -n "$target" ''; }); - # Run old checkPhase, but only succeed if it fails. - # This HACK is required because we can't introspect build failures - # in nix: With `assertFail` we want to make sure that the default - # `checkPhase` would fail if extglob was used in the script. - assertFail = x: x.overrideAttrs (old: { + # Run old checkPhase, but only succeed if it fails. + # This HACK is required because we can't introspect build failures + # in nix: With `assertFail` we want to make sure that the default + # `checkPhase` would fail if extglob was used in the script. + assertFail = + x: + x.overrideAttrs (old: { checkPhase = '' if ${old.checkPhase} @@ -62,10 +66,18 @@ let ''; }); - mkCase = case: outcome: isBin: + mkCase = + case: outcome: isBin: let - drv = lib.pipe outcome ([ case ] ++ lib.optionals (outcome == "fail") [ disallowExtglob assertFail ]); - in if isBin then "${drv}/bin/${drv.name}" else drv; + drv = lib.pipe outcome ( + [ case ] + ++ lib.optionals (outcome == "fail") [ + disallowExtglob + assertFail + ] + ); + in + if isBin then "${drv}/bin/${drv.name}" else drv; writeTextOverrides = { # Make sure extglob works by default @@ -89,10 +101,12 @@ let # run its `checkPhase` which is our main interest. Additionally # it executes the script and thus makes sure that extglob also # works at run time. - runTest = script: + runTest = + script: let name = script.name or (builtins.baseNameOf script); - in writeShellScript "run-${name}" '' + in + writeShellScript "run-${name}" '' if [ "$(${script})" != "success" ]; then echo "Failed in ${name}" exit 1 @@ -100,11 +114,15 @@ let ''; in -runCommand "test-writeShellScript-overriding" { - passthru = { inherit writeTextOverrides; }; -} '' - ${lib.concatMapStrings (test: '' +runCommand "test-writeShellScript-overriding" + { + passthru = { + inherit writeTextOverrides; + }; + } + '' + ${lib.concatMapStrings (test: '' ${runTest test} '') (lib.attrValues writeTextOverrides)} - touch "$out" -'' + touch "$out" + '' diff --git a/pkgs/build-support/trivial-builders/test/concat-test.nix b/pkgs/build-support/trivial-builders/test/concat-test.nix index 5ce4356..9591d2c 100644 --- a/pkgs/build-support/trivial-builders/test/concat-test.nix +++ b/pkgs/build-support/trivial-builders/test/concat-test.nix @@ -1,12 +1,24 @@ -{ callPackage, lib, pkgs, runCommand, concatText, writeText, hello, emptyFile }: +{ + callPackage, + lib, + pkgs, + runCommand, + concatText, + writeText, + hello, + emptyFile, +}: let stri = writeText "pathToTest"; txt1 = stri "abc"; txt2 = stri hello; - res = concatText "textToTest" [ txt1 txt2 ]; + res = concatText "textToTest" [ + txt1 + txt2 + ]; in runCommand "test-concatPaths" { } '' diff -U3 <(cat ${txt1} ${txt2}) ${res} - diff -U3 ${concatText "void" []} ${emptyFile} + diff -U3 ${concatText "void" [ ]} ${emptyFile} touch $out '' diff --git a/pkgs/build-support/trivial-builders/test/default.nix b/pkgs/build-support/trivial-builders/test/default.nix index e1ed0be..655b2b1 100644 --- a/pkgs/build-support/trivial-builders/test/default.nix +++ b/pkgs/build-support/trivial-builders/test/default.nix @@ -8,29 +8,30 @@ cd nixpkgs nix-build -A tests.trivial-builders.foo - */ -{ callPackage, lib, stdenv }: +{ + callPackage, + lib, + stdenv, +}: let inherit (lib) recurseIntoAttrs; - references = callPackage ./references {}; + references = callPackage ./references { }; in recurseIntoAttrs { - concat = callPackage ./concat-test.nix {}; - linkFarm = callPackage ./link-farm.nix {}; - overriding = callPackage ../test-overriding.nix {}; + concat = callPackage ./concat-test.nix { }; + linkFarm = callPackage ./link-farm.nix { }; + overriding = callPackage ../test-overriding.nix { }; inherit references; - writeCBin = callPackage ./writeCBin.nix {}; - writeClosure-union = callPackage ./writeClosure-union.nix { - inherit (references) samples; - }; - writeShellApplication = callPackage ./writeShellApplication.nix {}; - writeScriptBin = callPackage ./writeScriptBin.nix {}; - writeShellScript = callPackage ./write-shell-script.nix {}; - writeShellScriptBin = callPackage ./writeShellScriptBin.nix {}; + writeCBin = callPackage ./writeCBin.nix { }; + writeClosure-union = callPackage ./writeClosure-union.nix { inherit (references) samples; }; + writeShellApplication = callPackage ./writeShellApplication.nix { }; + writeScriptBin = callPackage ./writeScriptBin.nix { }; + writeShellScript = callPackage ./write-shell-script.nix { }; + writeShellScriptBin = callPackage ./writeShellScriptBin.nix { }; writeStringReferencesToFile = callPackage ./writeStringReferencesToFile.nix { inherit (references) samples; }; - writeTextFile = callPackage ./write-text-file.nix {}; + writeTextFile = callPackage ./write-text-file.nix { }; } diff --git a/pkgs/build-support/trivial-builders/test/link-farm.nix b/pkgs/build-support/trivial-builders/test/link-farm.nix index 1ebfc70..82cd43a 100644 --- a/pkgs/build-support/trivial-builders/test/link-farm.nix +++ b/pkgs/build-support/trivial-builders/test/link-farm.nix @@ -1,4 +1,9 @@ -{ linkFarm, hello, writeTextFile, runCommand }: +{ + linkFarm, + hello, + writeTextFile, + runCommand, +}: let foo = writeTextFile { name = "foo"; @@ -6,19 +11,32 @@ let }; linkFarmFromList = linkFarm "linkFarmFromList" [ - { name = "foo"; path = foo; } - { name = "hello"; path = hello; } + { + name = "foo"; + path = foo; + } + { + name = "hello"; + path = hello; + } ]; linkFarmWithRepeats = linkFarm "linkFarmWithRepeats" [ - { name = "foo"; path = foo; } - { name = "hello"; path = hello; } - { name = "foo"; path = hello; } + { + name = "foo"; + path = foo; + } + { + name = "hello"; + path = hello; + } + { + name = "foo"; + path = hello; + } ]; - linkFarmFromAttrs = linkFarm "linkFarmFromAttrs" { - inherit foo hello; - }; + linkFarmFromAttrs = linkFarm "linkFarmFromAttrs" { inherit foo hello; }; in runCommand "test-linkFarm" { } '' function assertPathEquals() { diff --git a/pkgs/build-support/trivial-builders/test/references/default.nix b/pkgs/build-support/trivial-builders/test/references/default.nix index 928cc1d..be755ff 100644 --- a/pkgs/build-support/trivial-builders/test/references/default.nix +++ b/pkgs/build-support/trivial-builders/test/references/default.nix @@ -1,18 +1,19 @@ -{ lib -, stdenvNoCC -, testers -, callPackage -, writeText +{ + lib, + stdenvNoCC, + testers, + callPackage, + writeText, # nativeBuildInputs -, shellcheck-minimal + shellcheck-minimal, # Samples -, samples ? cleanSamples (callPackage ./samples.nix { }) + samples ? cleanSamples (callPackage ./samples.nix { }), # Filter out the non-string-like attributes such as .override added by # callPackage. -, cleanSamples ? lib.filterAttrs (n: lib.isStringLike) + cleanSamples ? lib.filterAttrs (n: lib.isStringLike), # Test targets -, writeDirectReferencesToFile -, writeClosure + writeDirectReferencesToFile, + writeClosure, }: # -------------------------------------------------------------------------- # @@ -43,8 +44,11 @@ let # Map each attribute to an element specification of Bash associative arrary # and concatenate them with white spaces, to be used to define a # one-line Bash associative array. - samplesToString = attrs: - lib.concatMapStringsSep " " (name: "[${name}]=${lib.escapeShellArg "${attrs.${name}}"}") (builtins.attrNames attrs); + samplesToString = + attrs: + lib.concatMapStringsSep " " (name: "[${name}]=${lib.escapeShellArg "${attrs.${name}}"}") ( + builtins.attrNames attrs + ); closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples; directReferences = lib.mapAttrs (n: v: writeDirectReferencesToFile v) samples; @@ -70,9 +74,7 @@ let ''; doInstallCheck = true; - nativeInstallCheckInputs = [ - shellcheck-minimal - ]; + nativeInstallCheckInputs = [ shellcheck-minimal ]; installCheckPhase = '' runHook preInstallCheck shellcheck "$out/bin/${finalAttrs.meta.mainProgram}" @@ -95,21 +97,22 @@ let in testers.nixosTest { name = "nixpkgs-trivial-builders"; - nodes.machine = { ... }: { - virtualisation.writableStore = true; + nodes.machine = + { ... }: + { + virtualisation.writableStore = true; - # Test runs without network, so we don't substitute and prepare our deps - nix.settings.substituters = lib.mkForce [ ]; - environment.etc."pre-built-paths".source = writeText "pre-built-paths" ( - builtins.toJSON [ testScriptBin ] - ); - }; - testScript = - '' - machine.succeed(""" - ${lib.getExe testScriptBin} 2>/dev/console - """) - ''; + # Test runs without network, so we don't substitute and prepare our deps + nix.settings.substituters = lib.mkForce [ ]; + environment.etc."pre-built-paths".source = writeText "pre-built-paths" ( + builtins.toJSON [ testScriptBin ] + ); + }; + testScript = '' + machine.succeed(""" + ${lib.getExe testScriptBin} 2>/dev/console + """) + ''; passthru = { inherit collectiveClosure diff --git a/pkgs/build-support/trivial-builders/test/references/samples.nix b/pkgs/build-support/trivial-builders/test/references/samples.nix index 3afb970..ce650f7 100644 --- a/pkgs/build-support/trivial-builders/test/references/samples.nix +++ b/pkgs/build-support/trivial-builders/test/references/samples.nix @@ -1,18 +1,15 @@ -{ lib -, runCommand -, writeText -, emptyFile -, emptyDirectory -, figlet -, hello -, zlib +{ + lib, + runCommand, + writeText, + emptyFile, + emptyDirectory, + figlet, + hello, + zlib, }: { - inherit - figlet - hello - zlib - ; + inherit figlet hello zlib; zlib-dev = zlib.dev; norefs = writeText "hi" "hello"; norefsDup = writeText "hi" "hello"; @@ -23,8 +20,5 @@ helloFigletRef = writeText "hi" "hello ${hello} ${figlet}"; selfRef = runCommand "self-ref-1" { } "echo $out >$out"; selfRef2 = runCommand "self-ref-2" { } ''echo "${figlet}, $out" >$out''; - inherit - emptyFile - emptyDirectory - ; + inherit emptyFile emptyDirectory; } diff --git a/pkgs/build-support/trivial-builders/test/write-shell-script.nix b/pkgs/build-support/trivial-builders/test/write-shell-script.nix index a5c9f1f..2e20588 100644 --- a/pkgs/build-support/trivial-builders/test/write-shell-script.nix +++ b/pkgs/build-support/trivial-builders/test/write-shell-script.nix @@ -1,14 +1,19 @@ -{ lib, writeShellScript }: let +{ lib, writeShellScript }: +let output = "hello"; -in (writeShellScript "test-script" '' +in +(writeShellScript "test-script" '' echo ${lib.escapeShellArg output} -'').overrideAttrs (old: { - checkPhase = old.checkPhase or "" + '' - expected=${lib.escapeShellArg output} - got=$("$target") - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi - ''; -}) +'').overrideAttrs + (old: { + checkPhase = + old.checkPhase or "" + + '' + expected=${lib.escapeShellArg output} + got=$("$target") + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi + ''; + }) diff --git a/pkgs/build-support/trivial-builders/test/write-text-file.nix b/pkgs/build-support/trivial-builders/test/write-text-file.nix index 2e6685c..f9d508d 100644 --- a/pkgs/build-support/trivial-builders/test/write-text-file.nix +++ b/pkgs/build-support/trivial-builders/test/write-text-file.nix @@ -9,7 +9,12 @@ cd nixpkgs nix-build -A tests.trivial-builders.writeTextFile.foo */ -{ lib, runCommand, runtimeShell, writeTextFile }: +{ + lib, + runCommand, + runtimeShell, + writeTextFile, +}: let veryWeirdName = ''here's a name with some "bad" characters, like spaces and quotes''; in @@ -27,15 +32,15 @@ lib.recurseIntoAttrs { ''; }; in - assert pkg.meta.mainProgram == "foo"; - assert baseNameOf (lib.getExe pkg) == "foo"; - assert pkg.name == "bar"; - runCommand "test-writeTextFile-different-exe-name" {} '' - PATH="${lib.makeBinPath [ pkg ]}:$PATH" - x=$(foo) - [[ "$x" == hi ]] - touch $out - ''; + assert pkg.meta.mainProgram == "foo"; + assert baseNameOf (lib.getExe pkg) == "foo"; + assert pkg.name == "bar"; + runCommand "test-writeTextFile-different-exe-name" { } '' + PATH="${lib.makeBinPath [ pkg ]}:$PATH" + x=$(foo) + [[ "$x" == hi ]] + touch $out + ''; weird-name = writeTextFile { name = "weird-names"; diff --git a/pkgs/build-support/trivial-builders/test/writeCBin.nix b/pkgs/build-support/trivial-builders/test/writeCBin.nix index 56cab45..9d6dc34 100644 --- a/pkgs/build-support/trivial-builders/test/writeCBin.nix +++ b/pkgs/build-support/trivial-builders/test/writeCBin.nix @@ -5,7 +5,11 @@ nix-build -A tests.trivial-builders.writeCBin */ -{ lib, writeCBin, runCommand }: +{ + lib, + writeCBin, + runCommand, +}: let output = "hello"; pkg = writeCBin "test-script" '' @@ -16,28 +20,27 @@ let } ''; in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeCBin" { } '' +assert pkg.meta.mainProgram == "test-script"; +runCommand "test-writeCBin" { } '' - echo Testing with getExe... + echo Testing with getExe... - target=${lib.getExe pkg} - expected=${lib.escapeShellArg output} - got=$("$target") - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi + target=${lib.getExe pkg} + expected=${lib.escapeShellArg output} + got=$("$target") + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi - echo Testing with makeBinPath... + echo Testing with makeBinPath... - PATH="${lib.makeBinPath [ pkg ]}:$PATH" - got=$(test-script) - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi - - touch $out - '' + PATH="${lib.makeBinPath [ pkg ]}:$PATH" + got=$(test-script) + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi + touch $out +'' diff --git a/pkgs/build-support/trivial-builders/test/writeClosure-union.nix b/pkgs/build-support/trivial-builders/test/writeClosure-union.nix index 92a2bf9..223f0f8 100644 --- a/pkgs/build-support/trivial-builders/test/writeClosure-union.nix +++ b/pkgs/build-support/trivial-builders/test/writeClosure-union.nix @@ -1,23 +1,24 @@ -{ lib -, runCommandLocal +{ + lib, + runCommandLocal, # Test targets -, writeClosure -, samples + writeClosure, + samples, }: -runCommandLocal "test-trivial-builders-writeClosure-union" { - __structuredAttrs = true; - closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples; - collectiveClosure = writeClosure (lib.attrValues samples); - inherit samples; - meta.maintainers = with lib.maintainers; [ - ShamrockLee - ]; -} '' - set -eu -o pipefail - echo >&2 Testing mixed closures... - echo >&2 Checking all samples "(''${samples[*]})" "$collectiveClosure" - diff -U3 \ - <(sort <"$collectiveClosure") \ - <(cat "''${closures[@]}" | sort | uniq) - touch "$out" -'' +runCommandLocal "test-trivial-builders-writeClosure-union" + { + __structuredAttrs = true; + closures = lib.mapAttrs (n: v: writeClosure [ v ]) samples; + collectiveClosure = writeClosure (lib.attrValues samples); + inherit samples; + meta.maintainers = with lib.maintainers; [ ShamrockLee ]; + } + '' + set -eu -o pipefail + echo >&2 Testing mixed closures... + echo >&2 Checking all samples "(''${samples[*]})" "$collectiveClosure" + diff -U3 \ + <(sort <"$collectiveClosure") \ + <(cat "''${closures[@]}" | sort | uniq) + touch "$out" + '' diff --git a/pkgs/build-support/trivial-builders/test/writeScriptBin.nix b/pkgs/build-support/trivial-builders/test/writeScriptBin.nix index 1487443..ed1263d 100644 --- a/pkgs/build-support/trivial-builders/test/writeScriptBin.nix +++ b/pkgs/build-support/trivial-builders/test/writeScriptBin.nix @@ -5,35 +5,38 @@ nix-build -A tests.trivial-builders.writeShellScriptBin */ -{ lib, writeScriptBin, runCommand }: +{ + lib, + writeScriptBin, + runCommand, +}: let output = "hello"; pkg = writeScriptBin "test-script" '' echo ${lib.escapeShellArg output} ''; in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeScriptBin" { } '' +assert pkg.meta.mainProgram == "test-script"; +runCommand "test-writeScriptBin" { } '' - echo Testing with getExe... + echo Testing with getExe... - target=${lib.getExe pkg} - expected=${lib.escapeShellArg output} - got=$("$target") - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi + target=${lib.getExe pkg} + expected=${lib.escapeShellArg output} + got=$("$target") + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi - echo Testing with makeBinPath... + echo Testing with makeBinPath... - PATH="${lib.makeBinPath [ pkg ]}:$PATH" - got=$(test-script) - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi - - touch $out - '' + PATH="${lib.makeBinPath [ pkg ]}:$PATH" + got=$(test-script) + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi + touch $out +'' diff --git a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix b/pkgs/build-support/trivial-builders/test/writeShellApplication.nix index c50f5a4..fa0750a 100644 --- a/pkgs/build-support/trivial-builders/test/writeShellApplication.nix +++ b/pkgs/build-support/trivial-builders/test/writeShellApplication.nix @@ -1,17 +1,19 @@ # Run with: # nix-build -A tests.trivial-builders.writeShellApplication -{ writeShellApplication -, writeTextFile -, runCommand -, lib -, linkFarm -, diffutils -, hello +{ + writeShellApplication, + writeTextFile, + runCommand, + lib, + linkFarm, + diffutils, + hello, }: let - checkShellApplication = args@{name, expected, ...}: + checkShellApplication = + args@{ name, expected, ... }: let - writeShellApplicationArgs = builtins.removeAttrs args ["expected"]; + writeShellApplicationArgs = builtins.removeAttrs args [ "expected" ]; script = writeShellApplication writeShellApplicationArgs; executable = lib.getExe script; expected' = writeTextFile { @@ -43,65 +45,65 @@ linkFarm "writeShellApplication-tests" { assert script.meta.description == "A test for the `writeShellApplication` `meta` argument."; script; - test-runtime-inputs = - checkShellApplication { - name = "test-runtime-inputs"; - text = '' - hello - ''; - runtimeInputs = [ hello ]; - expected = "Hello, world!\n"; - }; + test-runtime-inputs = checkShellApplication { + name = "test-runtime-inputs"; + text = '' + hello + ''; + runtimeInputs = [ hello ]; + expected = "Hello, world!\n"; + }; - test-runtime-env = - checkShellApplication { - name = "test-runtime-env"; - runtimeEnv = { - MY_COOL_ENV_VAR = "my-cool-env-value"; - MY_OTHER_COOL_ENV_VAR = "my-other-cool-env-value"; - # Check that we can serialize a bunch of different types: - BOOL = true; - INT = 1; - LIST = [1 2 3]; - MAP = { - a = "a"; - b = "b"; - }; + test-runtime-env = checkShellApplication { + name = "test-runtime-env"; + runtimeEnv = { + MY_COOL_ENV_VAR = "my-cool-env-value"; + MY_OTHER_COOL_ENV_VAR = "my-other-cool-env-value"; + # Check that we can serialize a bunch of different types: + BOOL = true; + INT = 1; + LIST = [ + 1 + 2 + 3 + ]; + MAP = { + a = "a"; + b = "b"; }; - text = '' - echo "$MY_COOL_ENV_VAR" - echo "$MY_OTHER_COOL_ENV_VAR" - ''; - expected = '' - my-cool-env-value - my-other-cool-env-value - ''; }; + text = '' + echo "$MY_COOL_ENV_VAR" + echo "$MY_OTHER_COOL_ENV_VAR" + ''; + expected = '' + my-cool-env-value + my-other-cool-env-value + ''; + }; - test-check-phase = - checkShellApplication { - name = "test-check-phase"; - text = ""; - checkPhase = '' - echo "echo -n hello" > $target - ''; - expected = "hello"; - }; + test-check-phase = checkShellApplication { + name = "test-check-phase"; + text = ""; + checkPhase = '' + echo "echo -n hello" > $target + ''; + expected = "hello"; + }; - test-argument-forwarding = - checkShellApplication { - name = "test-argument-forwarding"; - text = ""; - derivationArgs.MY_BUILD_TIME_VARIABLE = "puppy"; - derivationArgs.postCheck = '' - if [[ "$MY_BUILD_TIME_VARIABLE" != puppy ]]; then - echo "\$MY_BUILD_TIME_VARIABLE is not set to 'puppy'!" - exit 1 - fi - ''; - meta.description = "A test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`."; - expected = ""; - }; + test-argument-forwarding = checkShellApplication { + name = "test-argument-forwarding"; + text = ""; + derivationArgs.MY_BUILD_TIME_VARIABLE = "puppy"; + derivationArgs.postCheck = '' + if [[ "$MY_BUILD_TIME_VARIABLE" != puppy ]]; then + echo "\$MY_BUILD_TIME_VARIABLE is not set to 'puppy'!" + exit 1 + fi + ''; + meta.description = "A test checking that `writeShellApplication` forwards extra arguments to `stdenv.mkDerivation`."; + expected = ""; + }; test-exclude-shell-checks = writeShellApplication { name = "test-exclude-shell-checks"; @@ -122,7 +124,10 @@ linkFarm "writeShellApplication-tests" { true ''; # Don't use `pipefail`: - bashOptions = ["errexit" "nounset"]; + bashOptions = [ + "errexit" + "nounset" + ]; expected = ""; }; @@ -132,7 +137,7 @@ linkFarm "writeShellApplication-tests" { echo -n "$someUndefinedVariable" ''; # Don't use `nounset`: - bashOptions = []; + bashOptions = [ ]; # Don't warn about the undefined variable at build time: excludeShellChecks = [ "SC2154" ]; expected = ""; diff --git a/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix b/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix index e93410e..94d0947 100644 --- a/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix +++ b/pkgs/build-support/trivial-builders/test/writeShellScriptBin.nix @@ -5,35 +5,38 @@ nix-build -A tests.trivial-builders.writeShellScriptBin */ -{ lib, writeShellScriptBin, runCommand }: +{ + lib, + writeShellScriptBin, + runCommand, +}: let output = "hello"; pkg = writeShellScriptBin "test-script" '' echo ${lib.escapeShellArg output} ''; in - assert pkg.meta.mainProgram == "test-script"; - runCommand "test-writeShellScriptBin" { } '' +assert pkg.meta.mainProgram == "test-script"; +runCommand "test-writeShellScriptBin" { } '' - echo Testing with getExe... + echo Testing with getExe... - target=${lib.getExe pkg} - expected=${lib.escapeShellArg output} - got=$("$target") - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi + target=${lib.getExe pkg} + expected=${lib.escapeShellArg output} + got=$("$target") + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi - echo Testing with makeBinPath... + echo Testing with makeBinPath... - PATH="${lib.makeBinPath [ pkg ]}:$PATH" - got=$(test-script) - if [[ "$got" != "$expected" ]]; then - echo "wrong output: expected $expected, got $got" - exit 1 - fi - - touch $out - '' + PATH="${lib.makeBinPath [ pkg ]}:$PATH" + got=$(test-script) + if [[ "$got" != "$expected" ]]; then + echo "wrong output: expected $expected, got $got" + exit 1 + fi + touch $out +'' diff --git a/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix b/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix index dedd7e1..c4a743b 100644 --- a/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix +++ b/pkgs/build-support/trivial-builders/test/writeStringReferencesToFile.nix @@ -1,15 +1,24 @@ -{ callPackage, lib, pkgs, runCommand, samples, writeText, writeStringReferencesToFile }: +{ + callPackage, + lib, + pkgs, + runCommand, + samples, + writeText, + writeStringReferencesToFile, +}: let samplePaths = lib.unique (lib.attrValues samples); stri = x: "${x}"; - sampleText = writeText "sample-text" (lib.concatStringsSep "\n" (lib.unique (map stri samplePaths))); - stringReferencesText = - writeStringReferencesToFile - ((lib.concatMapStringsSep "fillertext" - stri - (lib.attrValues samples)) + '' - STORE=${builtins.storeDir};\nsystemctl start bar-foo.service - ''); + sampleText = writeText "sample-text" ( + lib.concatStringsSep "\n" (lib.unique (map stri samplePaths)) + ); + stringReferencesText = writeStringReferencesToFile ( + (lib.concatMapStringsSep "fillertext" stri (lib.attrValues samples)) + + '' + STORE=${builtins.storeDir};\nsystemctl start bar-foo.service + '' + ); in runCommand "test-writeStringReferencesToFile" { } '' diff -U3 <(sort ${stringReferencesText}) <(sort ${sampleText}) diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index 5637585..955c5c3 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -1,17 +1,41 @@ -{ lib -, pkgs -, kernel ? pkgs.linux -, img ? pkgs.stdenv.hostPlatform.linux-kernel.target -, storeDir ? builtins.storeDir -, rootModules ? - [ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "crc32c_generic" ] - ++ pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos" +{ + lib, + pkgs, + kernel ? pkgs.linux, + img ? pkgs.stdenv.hostPlatform.linux-kernel.target, + storeDir ? builtins.storeDir, + rootModules ? [ + "virtio_pci" + "virtio_mmio" + "virtio_blk" + "virtio_balloon" + "virtio_rng" + "ext4" + "unix" + "9p" + "9pnet_virtio" + "crc32c_generic" + ] ++ pkgs.lib.optional pkgs.stdenv.hostPlatform.isx86 "rtc_cmos", }: let - inherit (pkgs) bash bashInteractive busybox cpio coreutils e2fsprogs fetchurl kmod rpm - stdenv util-linux - buildPackages writeScript writeText runCommand; + inherit (pkgs) + bash + bashInteractive + busybox + cpio + coreutils + e2fsprogs + fetchurl + kmod + rpm + stdenv + util-linux + buildPackages + writeScript + writeText + runCommand + ; in rec { qemu-common = import ../../../nixos/lib/qemu-common.nix { inherit lib pkgs; }; @@ -23,39 +47,42 @@ rec { firmware = kernel; }; - hd = "vda"; # either "sda" or "vda" - initrdUtils = runCommand "initrd-utils" - { nativeBuildInputs = [ buildPackages.nukeReferences ]; - allowedReferences = [ "out" modulesClosure ]; # prevent accidents like glibc being included in the initrd - } - '' - mkdir -p $out/bin - mkdir -p $out/lib + initrdUtils = + runCommand "initrd-utils" + { + nativeBuildInputs = [ buildPackages.nukeReferences ]; + allowedReferences = [ + "out" + modulesClosure + ]; # prevent accidents like glibc being included in the initrd + } + '' + mkdir -p $out/bin + mkdir -p $out/lib - # Copy what we need from Glibc. - cp -p \ - ${pkgs.stdenv.cc.libc}/lib/ld-*.so.? \ - ${pkgs.stdenv.cc.libc}/lib/libc.so.* \ - ${pkgs.stdenv.cc.libc}/lib/libm.so.* \ - ${pkgs.stdenv.cc.libc}/lib/libresolv.so.* \ - $out/lib + # Copy what we need from Glibc. + cp -p \ + ${pkgs.stdenv.cc.libc}/lib/ld-*.so.? \ + ${pkgs.stdenv.cc.libc}/lib/libc.so.* \ + ${pkgs.stdenv.cc.libc}/lib/libm.so.* \ + ${pkgs.stdenv.cc.libc}/lib/libresolv.so.* \ + $out/lib - # Copy BusyBox. - cp -pd ${pkgs.busybox}/bin/* $out/bin + # Copy BusyBox. + cp -pd ${pkgs.busybox}/bin/* $out/bin - # Run patchelf to make the programs refer to the copied libraries. - for i in $out/bin/* $out/lib/*; do if ! test -L $i; then nuke-refs $i; fi; done - - for i in $out/bin/*; do - if [ -f "$i" -a ! -L "$i" ]; then - echo "patching $i..." - patchelf --set-interpreter $out/lib/ld-*.so.? --set-rpath $out/lib $i || true - fi - done - ''; # */ + # Run patchelf to make the programs refer to the copied libraries. + for i in $out/bin/* $out/lib/*; do if ! test -L $i; then nuke-refs $i; fi; done + for i in $out/bin/*; do + if [ -f "$i" -a ! -L "$i" ]; then + echo "patching $i..." + patchelf --set-interpreter $out/lib/ld-*.so.? --set-rpath $out/lib $i || true + fi + done + ''; # */ stage1Init = writeScript "vm-run-stage1" '' #! ${initrdUtils}/bin/ash -e @@ -147,16 +174,15 @@ rec { exec switch_root /fs $command $out ''; - initrd = pkgs.makeInitrd { contents = [ - { object = stage1Init; + { + object = stage1Init; symlink = "/init"; } ]; }; - stage2Init = writeScript "vm-run-stage2" '' #! ${bash}/bin/sh source /tmp/xchg/saved-env @@ -207,7 +233,6 @@ rec { fi ''; - qemuCommandLinux = '' ${qemu-common.qemuBinary qemu} \ -nographic -no-reboot \ @@ -221,72 +246,72 @@ rec { $QEMU_OPTS ''; + vmRunCommand = + qemuCommand: + writeText "vm-run" '' + export > saved-env - vmRunCommand = qemuCommand: writeText "vm-run" '' - export > saved-env + PATH=${coreutils}/bin + mkdir xchg + mv saved-env xchg/ - PATH=${coreutils}/bin - mkdir xchg - mv saved-env xchg/ + eval "$preVM" - eval "$preVM" - - if [ "$enableParallelBuilding" = 1 ]; then - if [ ''${NIX_BUILD_CORES:-0} = 0 ]; then - QEMU_OPTS+=" -smp cpus=$(nproc)" - else - QEMU_OPTS+=" -smp cpus=$NIX_BUILD_CORES" + if [ "$enableParallelBuilding" = 1 ]; then + if [ ''${NIX_BUILD_CORES:-0} = 0 ]; then + QEMU_OPTS+=" -smp cpus=$(nproc)" + else + QEMU_OPTS+=" -smp cpus=$NIX_BUILD_CORES" + fi fi - fi - # Write the command to start the VM to a file so that the user can - # debug inside the VM if the build fails (when Nix is called with - # the -K option to preserve the temporary build directory). - cat > ./run-vm < ./run-vm < ${destination}/nix-support/full-name - ''; + # A bash script fragment that produces a disk image at `destination`. + createEmptyImage = + { + # Disk image size in MiB + size, + # Name that will be written to ${destination}/nix-support/full-name + fullName, + # Where to write the image files, defaulting to $out + destination ? "$out", + }: + '' + mkdir -p ${destination} + diskImage=${destination}/disk-image.qcow2 + ${qemu}/bin/qemu-img create -f qcow2 $diskImage "${toString size}M" + mkdir ${destination}/nix-support + echo "${fullName}" > ${destination}/nix-support/full-name + ''; defaultCreateRootFS = '' mkdir /mnt @@ -301,448 +326,616 @@ rec { mkdir /mnt/proc /mnt/dev /mnt/sys ''; + /* + Run a derivation in a Linux virtual machine (using Qemu/KVM). By + default, there is no disk image; the root filesystem is a tmpfs, + and the nix store is shared with the host (via the 9P protocol). + Thus, any pure Nix derivation should run unmodified, e.g. the + call - /* Run a derivation in a Linux virtual machine (using Qemu/KVM). By - default, there is no disk image; the root filesystem is a tmpfs, - and the nix store is shared with the host (via the 9P protocol). - Thus, any pure Nix derivation should run unmodified, e.g. the - call + runInLinuxVM patchelf - runInLinuxVM patchelf + will build the derivation `patchelf' inside a VM. The attribute + `preVM' can optionally contain a shell command to be evaluated + *before* the VM is started (i.e., on the host). The attribute + `memSize' specifies the memory size of the VM in megabytes, + defaulting to 512. The attribute `diskImage' can optionally + specify a file system image to be attached to /dev/sda. (Note + that currently we expect the image to contain a filesystem, not a + full disk image with a partition table etc.) - will build the derivation `patchelf' inside a VM. The attribute - `preVM' can optionally contain a shell command to be evaluated - *before* the VM is started (i.e., on the host). The attribute - `memSize' specifies the memory size of the VM in megabytes, - defaulting to 512. The attribute `diskImage' can optionally - specify a file system image to be attached to /dev/sda. (Note - that currently we expect the image to contain a filesystem, not a - full disk image with a partition table etc.) + If the build fails and Nix is run with the `-K' option, a script + `run-vm' will be left behind in the temporary build directory + that allows you to boot into the VM and debug it interactively. + */ - If the build fails and Nix is run with the `-K' option, a script - `run-vm' will be left behind in the temporary build directory - that allows you to boot into the VM and debug it interactively. */ + runInLinuxVM = + drv: + lib.overrideDerivation drv ( + { + memSize ? 512, + QEMU_OPTS ? "", + args, + builder, + ... + }: + { + requiredSystemFeatures = [ "kvm" ]; + builder = "${bash}/bin/sh"; + args = [ + "-e" + (vmRunCommand qemuCommandLinux) + ]; + origArgs = args; + origBuilder = builder; + QEMU_OPTS = "${QEMU_OPTS} -m ${toString memSize}"; + passAsFile = [ ]; # HACK fix - see https://github.com/NixOS/nixpkgs/issues/16742 + } + ); - runInLinuxVM = drv: lib.overrideDerivation drv ({ memSize ? 512, QEMU_OPTS ? "", args, builder, ... }: { - requiredSystemFeatures = [ "kvm" ]; - builder = "${bash}/bin/sh"; - args = ["-e" (vmRunCommand qemuCommandLinux)]; - origArgs = args; - origBuilder = builder; - QEMU_OPTS = "${QEMU_OPTS} -m ${toString memSize}"; - passAsFile = []; # HACK fix - see https://github.com/NixOS/nixpkgs/issues/16742 - }); - - - extractFs = {file, fs ? null} : + extractFs = + { + file, + fs ? null, + }: runInLinuxVM ( - stdenv.mkDerivation { - name = "extract-file"; - buildInputs = [ util-linux ]; - buildCommand = '' - ln -s ${kernel}/lib /lib - ${kmod}/bin/modprobe loop - ${kmod}/bin/modprobe ext4 - ${kmod}/bin/modprobe hfs - ${kmod}/bin/modprobe hfsplus - ${kmod}/bin/modprobe squashfs - ${kmod}/bin/modprobe iso9660 - ${kmod}/bin/modprobe ufs - ${kmod}/bin/modprobe cramfs + stdenv.mkDerivation { + name = "extract-file"; + buildInputs = [ util-linux ]; + buildCommand = '' + ln -s ${kernel}/lib /lib + ${kmod}/bin/modprobe loop + ${kmod}/bin/modprobe ext4 + ${kmod}/bin/modprobe hfs + ${kmod}/bin/modprobe hfsplus + ${kmod}/bin/modprobe squashfs + ${kmod}/bin/modprobe iso9660 + ${kmod}/bin/modprobe ufs + ${kmod}/bin/modprobe cramfs - mkdir -p $out - mkdir -p tmp - mount -o loop,ro,ufstype=44bsd ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp || - mount -o loop,ro ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp - cp -Rv tmp/* $out/ || exit 0 - ''; - }); + mkdir -p $out + mkdir -p tmp + mount -o loop,ro,ufstype=44bsd ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp || + mount -o loop,ro ${lib.optionalString (fs != null) "-t ${fs} "}${file} tmp + cp -Rv tmp/* $out/ || exit 0 + ''; + } + ); - - extractMTDfs = {file, fs ? null} : + extractMTDfs = + { + file, + fs ? null, + }: runInLinuxVM ( - stdenv.mkDerivation { - name = "extract-file-mtd"; - buildInputs = [ pkgs.util-linux pkgs.mtdutils ]; - buildCommand = '' - ln -s ${kernel}/lib /lib - ${kmod}/bin/modprobe mtd - ${kmod}/bin/modprobe mtdram total_size=131072 - ${kmod}/bin/modprobe mtdchar - ${kmod}/bin/modprobe mtdblock - ${kmod}/bin/modprobe jffs2 - ${kmod}/bin/modprobe zlib + stdenv.mkDerivation { + name = "extract-file-mtd"; + buildInputs = [ + pkgs.util-linux + pkgs.mtdutils + ]; + buildCommand = '' + ln -s ${kernel}/lib /lib + ${kmod}/bin/modprobe mtd + ${kmod}/bin/modprobe mtdram total_size=131072 + ${kmod}/bin/modprobe mtdchar + ${kmod}/bin/modprobe mtdblock + ${kmod}/bin/modprobe jffs2 + ${kmod}/bin/modprobe zlib - mkdir -p $out - mkdir -p tmp + mkdir -p $out + mkdir -p tmp - dd if=${file} of=/dev/mtd0 - mount ${lib.optionalString (fs != null) "-t ${fs} "}/dev/mtdblock0 tmp + dd if=${file} of=/dev/mtd0 + mount ${lib.optionalString (fs != null) "-t ${fs} "}/dev/mtdblock0 tmp - cp -R tmp/* $out/ - ''; - }); + cp -R tmp/* $out/ + ''; + } + ); + /* + Like runInLinuxVM, but run the build not using the stdenv from + the Nix store, but using the tools provided by /bin, /usr/bin + etc. from the specified filesystem image, which typically is a + filesystem containing a non-NixOS Linux distribution. + */ - /* Like runInLinuxVM, but run the build not using the stdenv from - the Nix store, but using the tools provided by /bin, /usr/bin - etc. from the specified filesystem image, which typically is a - filesystem containing a non-NixOS Linux distribution. */ + runInLinuxImage = + drv: + runInLinuxVM ( + lib.overrideDerivation drv (attrs: { + mountDisk = attrs.mountDisk or true; - runInLinuxImage = drv: runInLinuxVM (lib.overrideDerivation drv (attrs: { - mountDisk = attrs.mountDisk or true; + /* + Mount `image' as the root FS, but use a temporary copy-on-write + image since we don't want to (and can't) write to `image'. + */ + preVM = '' + diskImage=$(pwd)/disk-image.qcow2 + origImage=${attrs.diskImage} + if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi + ${qemu}/bin/qemu-img create -F ${attrs.diskImageFormat} -b "$origImage" -f qcow2 $diskImage + ''; - /* Mount `image' as the root FS, but use a temporary copy-on-write - image since we don't want to (and can't) write to `image'. */ - preVM = '' - diskImage=$(pwd)/disk-image.qcow2 - origImage=${attrs.diskImage} - if test -d "$origImage"; then origImage="$origImage/disk-image.qcow2"; fi - ${qemu}/bin/qemu-img create -F ${attrs.diskImageFormat} -b "$origImage" -f qcow2 $diskImage - ''; + /* + Inside the VM, run the stdenv setup script normally, but at the + very end set $PATH and $SHELL to the `native' paths for the + distribution inside the VM. + */ + postHook = '' + PATH=/usr/bin:/bin:/usr/sbin:/sbin + SHELL=/bin/sh + eval "$origPostHook" + ''; - /* Inside the VM, run the stdenv setup script normally, but at the - very end set $PATH and $SHELL to the `native' paths for the - distribution inside the VM. */ - postHook = '' - PATH=/usr/bin:/bin:/usr/sbin:/sbin - SHELL=/bin/sh - eval "$origPostHook" - ''; + origPostHook = lib.optionalString (attrs ? postHook) attrs.postHook; - origPostHook = lib.optionalString (attrs ? postHook) attrs.postHook; + # Don't run Nix-specific build steps like patchelf. + fixupPhase = "true"; + }) + ); - /* Don't run Nix-specific build steps like patchelf. */ - fixupPhase = "true"; - })); - - - /* Create a filesystem image of the specified size and fill it with - a set of RPM packages. */ + /* + Create a filesystem image of the specified size and fill it with + a set of RPM packages. + */ fillDiskWithRPMs = - { size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? "" - , runScripts ? true, createRootFS ? defaultCreateRootFS - , QEMU_OPTS ? "", memSize ? 512 - , unifiedSystemDir ? false + { + size ? 4096, + rpms, + name, + fullName, + preInstall ? "", + postInstall ? "", + runScripts ? true, + createRootFS ? defaultCreateRootFS, + QEMU_OPTS ? "", + memSize ? 512, + unifiedSystemDir ? false, }: - runInLinuxVM (stdenv.mkDerivation { - inherit name preInstall postInstall rpms QEMU_OPTS memSize; - preVM = createEmptyImage {inherit size fullName;}; + runInLinuxVM ( + stdenv.mkDerivation { + inherit + name + preInstall + postInstall + rpms + QEMU_OPTS + memSize + ; + preVM = createEmptyImage { inherit size fullName; }; - buildCommand = '' - ${createRootFS} + buildCommand = '' + ${createRootFS} - chroot=$(type -tP chroot) - - # Make the Nix store available in /mnt, because that's where the RPMs live. - mkdir -p /mnt${storeDir} - ${util-linux}/bin/mount -o bind ${storeDir} /mnt${storeDir} - - # Newer distributions like Fedora 18 require /lib etc. to be - # symlinked to /usr. - ${lib.optionalString unifiedSystemDir '' - mkdir -p /mnt/usr/bin /mnt/usr/sbin /mnt/usr/lib /mnt/usr/lib64 - ln -s /usr/bin /mnt/bin - ln -s /usr/sbin /mnt/sbin - ln -s /usr/lib /mnt/lib - ln -s /usr/lib64 /mnt/lib64 - ${util-linux}/bin/mount -t proc none /mnt/proc - ''} - - echo "unpacking RPMs..." - set +o pipefail - for i in $rpms; do - echo "$i..." - ${rpm}/bin/rpm2cpio "$i" | chroot /mnt ${cpio}/bin/cpio -i --make-directories --unconditional - done - - eval "$preInstall" - - echo "initialising RPM DB..." - PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ - ldconfig -v || true - PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ - rpm --initdb - - ${util-linux}/bin/mount -o bind /tmp /mnt/tmp - - echo "installing RPMs..." - PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ - rpm -iv --nosignature ${lib.optionalString (!runScripts) "--noscripts"} $rpms - - echo "running post-install script..." - eval "$postInstall" - - rm /mnt/.debug - - ${util-linux}/bin/umount /mnt${storeDir} /mnt/tmp ${lib.optionalString unifiedSystemDir "/mnt/proc"} - ${util-linux}/bin/umount /mnt - ''; - - passthru = { inherit fullName; }; - }); - - - /* Generate a script that can be used to run an interactive session - in the given image. */ - - makeImageTestScript = image: writeScript "image-test" '' - #! ${bash}/bin/sh - if test -z "$1"; then - echo "Syntax: $0 " - exit 1 - fi - diskImage="$1" - if ! test -e "$diskImage"; then - ${qemu}/bin/qemu-img create -b ${image}/disk-image.qcow2 -f qcow2 -F qcow2 "$diskImage" - fi - export TMPDIR=$(mktemp -d) - export out=/dummy - export origBuilder= - export origArgs= - mkdir $TMPDIR/xchg - export > $TMPDIR/xchg/saved-env - mountDisk=1 - ${qemuCommandLinux} - ''; - - - /* Build RPM packages from the tarball `src' in the Linux - distribution installed in the filesystem `diskImage'. The - tarball must contain an RPM specfile. */ - - buildRPM = attrs: runInLinuxImage (stdenv.mkDerivation ({ - prePhases = [ "prepareImagePhase" "sysInfoPhase" ]; - dontConfigure = true; - - outDir = "rpms/${attrs.diskImage.name}"; - - prepareImagePhase = '' - if test -n "$extraRPMs"; then - for rpmdir in $extraRPMs ; do - rpm -iv $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1) - done - fi - ''; - - sysInfoPhase = '' - echo "System/kernel: $(uname -a)" - if test -e /etc/fedora-release; then echo "Fedora release: $(cat /etc/fedora-release)"; fi - if test -e /etc/SuSE-release; then echo "SUSE release: $(cat /etc/SuSE-release)"; fi - echo "installed RPM packages" - rpm -qa --qf "%{Name}-%{Version}-%{Release} (%{Arch}; %{Distribution}; %{Vendor})\n" - ''; - - buildPhase = '' - eval "$preBuild" - - srcName="$(rpmspec --srpm -q --qf '%{source}' *.spec)" - cp "$src" "$srcName" # `ln' doesn't work always work: RPM requires that the file is owned by root - - export HOME=/tmp/home - mkdir $HOME - - rpmout=/tmp/rpmout - mkdir $rpmout $rpmout/SPECS $rpmout/BUILD $rpmout/RPMS $rpmout/SRPMS - - echo "%_topdir $rpmout" >> $HOME/.rpmmacros - - if [ `uname -m` = i686 ]; then extra="--target i686-linux"; fi - rpmbuild -vv $extra -ta "$srcName" - - eval "$postBuild" - ''; - - installPhase = '' - eval "$preInstall" - - mkdir -p $out/$outDir - find $rpmout -name "*.rpm" -exec cp {} $out/$outDir \; - - for i in $out/$outDir/*.rpm; do - echo "Generated RPM/SRPM: $i" - rpm -qip $i - done - - eval "$postInstall" - ''; # */ - } // attrs)); - - - /* Create a filesystem image of the specified size and fill it with - a set of Debian packages. `debs' must be a list of list of - .deb files, namely, the Debian packages grouped together into - strongly connected components. See deb/deb-closure.nix. */ - - fillDiskWithDebs = - { size ? 4096, debs, name, fullName, postInstall ? null, createRootFS ? defaultCreateRootFS - , QEMU_OPTS ? "", memSize ? 512, ... }@args: - - runInLinuxVM (stdenv.mkDerivation ({ - inherit name postInstall QEMU_OPTS memSize; - - debs = (lib.intersperse "|" debs); - - preVM = createEmptyImage {inherit size fullName;}; - - buildCommand = '' - ${createRootFS} - - PATH=$PATH:${lib.makeBinPath [ pkgs.dpkg pkgs.glibc pkgs.xz ]} - - # Unpack the .debs. We do this to prevent pre-install scripts - # (which have lots of circular dependencies) from barfing. - echo "unpacking Debs..." - - for deb in $debs; do - if test "$deb" != "|"; then - echo "$deb..." - dpkg-deb --extract "$deb" /mnt - fi - done - - # Make the Nix store available in /mnt, because that's where the .debs live. - mkdir -p /mnt/inst${storeDir} - ${util-linux}/bin/mount -o bind ${storeDir} /mnt/inst${storeDir} - ${util-linux}/bin/mount -o bind /proc /mnt/proc - ${util-linux}/bin/mount -o bind /dev /mnt/dev - - # Misc. files/directories assumed by various packages. - echo "initialising Dpkg DB..." - touch /mnt/etc/shells - touch /mnt/var/lib/dpkg/status - touch /mnt/var/lib/dpkg/available - touch /mnt/var/lib/dpkg/diversions - - # Now install the .debs. This is basically just to register - # them with dpkg and to make their pre/post-install scripts - # run. - echo "installing Debs..." - - export DEBIAN_FRONTEND=noninteractive - - oldIFS="$IFS" - IFS="|" - for component in $debs; do - IFS="$oldIFS" - echo - echo ">>> INSTALLING COMPONENT: $component" - debs= - for i in $component; do - debs="$debs /inst/$i"; - done chroot=$(type -tP chroot) - # Create a fake start-stop-daemon script, as done in debootstrap. - mv "/mnt/sbin/start-stop-daemon" "/mnt/sbin/start-stop-daemon.REAL" - echo "#!/bin/true" > "/mnt/sbin/start-stop-daemon" - chmod 755 "/mnt/sbin/start-stop-daemon" + # Make the Nix store available in /mnt, because that's where the RPMs live. + mkdir -p /mnt${storeDir} + ${util-linux}/bin/mount -o bind ${storeDir} /mnt${storeDir} + # Newer distributions like Fedora 18 require /lib etc. to be + # symlinked to /usr. + ${lib.optionalString unifiedSystemDir '' + mkdir -p /mnt/usr/bin /mnt/usr/sbin /mnt/usr/lib /mnt/usr/lib64 + ln -s /usr/bin /mnt/bin + ln -s /usr/sbin /mnt/sbin + ln -s /usr/lib /mnt/lib + ln -s /usr/lib64 /mnt/lib64 + ${util-linux}/bin/mount -t proc none /mnt/proc + ''} + + echo "unpacking RPMs..." + set +o pipefail + for i in $rpms; do + echo "$i..." + ${rpm}/bin/rpm2cpio "$i" | chroot /mnt ${cpio}/bin/cpio -i --make-directories --unconditional + done + + eval "$preInstall" + + echo "initialising RPM DB..." PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ - /usr/bin/dpkg --install --force-all $debs < /dev/null || true + ldconfig -v || true + PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ + rpm --initdb - # Move the real start-stop-daemon back into its place. - mv "/mnt/sbin/start-stop-daemon.REAL" "/mnt/sbin/start-stop-daemon" - done + ${util-linux}/bin/mount -o bind /tmp /mnt/tmp - echo "running post-install script..." - eval "$postInstall" + echo "installing RPMs..." + PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ + rpm -iv --nosignature ${lib.optionalString (!runScripts) "--noscripts"} $rpms - rm /mnt/.debug + echo "running post-install script..." + eval "$postInstall" - ${util-linux}/bin/umount /mnt/inst${storeDir} - ${util-linux}/bin/umount /mnt/proc - ${util-linux}/bin/umount /mnt/dev - ${util-linux}/bin/umount /mnt - ''; + rm /mnt/.debug - passthru = { inherit fullName; }; - } // args)); + ${util-linux}/bin/umount /mnt${storeDir} /mnt/tmp ${lib.optionalString unifiedSystemDir "/mnt/proc"} + ${util-linux}/bin/umount /mnt + ''; + passthru = { + inherit fullName; + }; + } + ); - /* Generate a Nix expression containing fetchurl calls for the - closure of a set of top-level RPM packages from the - `primary.xml.gz' file of a Fedora or openSUSE distribution. */ + /* + Generate a script that can be used to run an interactive session + in the given image. + */ - rpmClosureGenerator = - {name, packagesLists, urlPrefixes, packages, archs ? []}: - assert (builtins.length packagesLists) == (builtins.length urlPrefixes); - runCommand "${name}.nix" { - nativeBuildInputs = [ buildPackages.perl buildPackages.perlPackages.XMLSimple ]; - inherit archs; - } '' - ${lib.concatImapStrings (i: pl: '' - gunzip < ${pl} > ./packages_${toString i}.xml - '') packagesLists} - perl -w ${rpm/rpm-closure.pl} \ - ${lib.concatImapStrings (i: pl: "./packages_${toString i}.xml ${pl.snd} " ) (lib.zipLists packagesLists urlPrefixes)} \ - ${toString packages} > $out + makeImageTestScript = + image: + writeScript "image-test" '' + #! ${bash}/bin/sh + if test -z "$1"; then + echo "Syntax: $0 " + exit 1 + fi + diskImage="$1" + if ! test -e "$diskImage"; then + ${qemu}/bin/qemu-img create -b ${image}/disk-image.qcow2 -f qcow2 -F qcow2 "$diskImage" + fi + export TMPDIR=$(mktemp -d) + export out=/dummy + export origBuilder= + export origArgs= + mkdir $TMPDIR/xchg + export > $TMPDIR/xchg/saved-env + mountDisk=1 + ${qemuCommandLinux} ''; + /* + Build RPM packages from the tarball `src' in the Linux + distribution installed in the filesystem `diskImage'. The + tarball must contain an RPM specfile. + */ - /* Helper function that combines rpmClosureGenerator and - fillDiskWithRPMs to generate a disk image from a set of package - names. */ + buildRPM = + attrs: + runInLinuxImage ( + stdenv.mkDerivation ( + { + prePhases = [ + "prepareImagePhase" + "sysInfoPhase" + ]; + dontConfigure = true; + + outDir = "rpms/${attrs.diskImage.name}"; + + prepareImagePhase = '' + if test -n "$extraRPMs"; then + for rpmdir in $extraRPMs ; do + rpm -iv $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1) + done + fi + ''; + + sysInfoPhase = '' + echo "System/kernel: $(uname -a)" + if test -e /etc/fedora-release; then echo "Fedora release: $(cat /etc/fedora-release)"; fi + if test -e /etc/SuSE-release; then echo "SUSE release: $(cat /etc/SuSE-release)"; fi + echo "installed RPM packages" + rpm -qa --qf "%{Name}-%{Version}-%{Release} (%{Arch}; %{Distribution}; %{Vendor})\n" + ''; + + buildPhase = '' + eval "$preBuild" + + srcName="$(rpmspec --srpm -q --qf '%{source}' *.spec)" + cp "$src" "$srcName" # `ln' doesn't work always work: RPM requires that the file is owned by root + + export HOME=/tmp/home + mkdir $HOME + + rpmout=/tmp/rpmout + mkdir $rpmout $rpmout/SPECS $rpmout/BUILD $rpmout/RPMS $rpmout/SRPMS + + echo "%_topdir $rpmout" >> $HOME/.rpmmacros + + if [ `uname -m` = i686 ]; then extra="--target i686-linux"; fi + rpmbuild -vv $extra -ta "$srcName" + + eval "$postBuild" + ''; + + installPhase = '' + eval "$preInstall" + + mkdir -p $out/$outDir + find $rpmout -name "*.rpm" -exec cp {} $out/$outDir \; + + for i in $out/$outDir/*.rpm; do + echo "Generated RPM/SRPM: $i" + rpm -qip $i + done + + eval "$postInstall" + ''; # */ + } + // attrs + ) + ); + + /* + Create a filesystem image of the specified size and fill it with + a set of Debian packages. `debs' must be a list of list of + .deb files, namely, the Debian packages grouped together into + strongly connected components. See deb/deb-closure.nix. + */ + + fillDiskWithDebs = + { + size ? 4096, + debs, + name, + fullName, + postInstall ? null, + createRootFS ? defaultCreateRootFS, + QEMU_OPTS ? "", + memSize ? 512, + ... + }@args: + + runInLinuxVM ( + stdenv.mkDerivation ( + { + inherit + name + postInstall + QEMU_OPTS + memSize + ; + + debs = (lib.intersperse "|" debs); + + preVM = createEmptyImage { inherit size fullName; }; + + buildCommand = '' + ${createRootFS} + + PATH=$PATH:${ + lib.makeBinPath [ + pkgs.dpkg + pkgs.glibc + pkgs.xz + ] + } + + # Unpack the .debs. We do this to prevent pre-install scripts + # (which have lots of circular dependencies) from barfing. + echo "unpacking Debs..." + + for deb in $debs; do + if test "$deb" != "|"; then + echo "$deb..." + dpkg-deb --extract "$deb" /mnt + fi + done + + # Make the Nix store available in /mnt, because that's where the .debs live. + mkdir -p /mnt/inst${storeDir} + ${util-linux}/bin/mount -o bind ${storeDir} /mnt/inst${storeDir} + ${util-linux}/bin/mount -o bind /proc /mnt/proc + ${util-linux}/bin/mount -o bind /dev /mnt/dev + + # Misc. files/directories assumed by various packages. + echo "initialising Dpkg DB..." + touch /mnt/etc/shells + touch /mnt/var/lib/dpkg/status + touch /mnt/var/lib/dpkg/available + touch /mnt/var/lib/dpkg/diversions + + # Now install the .debs. This is basically just to register + # them with dpkg and to make their pre/post-install scripts + # run. + echo "installing Debs..." + + export DEBIAN_FRONTEND=noninteractive + + oldIFS="$IFS" + IFS="|" + for component in $debs; do + IFS="$oldIFS" + echo + echo ">>> INSTALLING COMPONENT: $component" + debs= + for i in $component; do + debs="$debs /inst/$i"; + done + chroot=$(type -tP chroot) + + # Create a fake start-stop-daemon script, as done in debootstrap. + mv "/mnt/sbin/start-stop-daemon" "/mnt/sbin/start-stop-daemon.REAL" + echo "#!/bin/true" > "/mnt/sbin/start-stop-daemon" + chmod 755 "/mnt/sbin/start-stop-daemon" + + PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \ + /usr/bin/dpkg --install --force-all $debs < /dev/null || true + + # Move the real start-stop-daemon back into its place. + mv "/mnt/sbin/start-stop-daemon.REAL" "/mnt/sbin/start-stop-daemon" + done + + echo "running post-install script..." + eval "$postInstall" + + rm /mnt/.debug + + ${util-linux}/bin/umount /mnt/inst${storeDir} + ${util-linux}/bin/umount /mnt/proc + ${util-linux}/bin/umount /mnt/dev + ${util-linux}/bin/umount /mnt + ''; + + passthru = { + inherit fullName; + }; + } + // args + ) + ); + + /* + Generate a Nix expression containing fetchurl calls for the + closure of a set of top-level RPM packages from the + `primary.xml.gz' file of a Fedora or openSUSE distribution. + */ + + rpmClosureGenerator = + { + name, + packagesLists, + urlPrefixes, + packages, + archs ? [ ], + }: + assert (builtins.length packagesLists) == (builtins.length urlPrefixes); + runCommand "${name}.nix" + { + nativeBuildInputs = [ + buildPackages.perl + buildPackages.perlPackages.XMLSimple + ]; + inherit archs; + } + '' + ${lib.concatImapStrings (i: pl: '' + gunzip < ${pl} > ./packages_${toString i}.xml + '') packagesLists} + perl -w ${rpm/rpm-closure.pl} \ + ${ + lib.concatImapStrings (i: pl: "./packages_${toString i}.xml ${pl.snd} ") ( + lib.zipLists packagesLists urlPrefixes + ) + } \ + ${toString packages} > $out + ''; + + /* + Helper function that combines rpmClosureGenerator and + fillDiskWithRPMs to generate a disk image from a set of package + names. + */ makeImageFromRPMDist = - { name, fullName, size ? 4096 - , urlPrefix ? "", urlPrefixes ? [urlPrefix] - , packagesList ? "", packagesLists ? [packagesList] - , packages, extraPackages ? [] - , preInstall ? "", postInstall ? "", archs ? ["noarch" "i386"] - , runScripts ? true, createRootFS ? defaultCreateRootFS - , QEMU_OPTS ? "", memSize ? 512 - , unifiedSystemDir ? false }: + { + name, + fullName, + size ? 4096, + urlPrefix ? "", + urlPrefixes ? [ urlPrefix ], + packagesList ? "", + packagesLists ? [ packagesList ], + packages, + extraPackages ? [ ], + preInstall ? "", + postInstall ? "", + archs ? [ + "noarch" + "i386" + ], + runScripts ? true, + createRootFS ? defaultCreateRootFS, + QEMU_OPTS ? "", + memSize ? 512, + unifiedSystemDir ? false, + }: fillDiskWithRPMs { - inherit name fullName size preInstall postInstall runScripts createRootFS unifiedSystemDir QEMU_OPTS memSize; + inherit + name + fullName + size + preInstall + postInstall + runScripts + createRootFS + unifiedSystemDir + QEMU_OPTS + memSize + ; rpms = import (rpmClosureGenerator { - inherit name packagesLists urlPrefixes archs; + inherit + name + packagesLists + urlPrefixes + archs + ; packages = packages ++ extraPackages; }) { inherit fetchurl; }; }; - - /* Like `rpmClosureGenerator', but now for Debian/Ubuntu releases - (i.e. generate a closure from a Packages.bz2 file). */ + /* + Like `rpmClosureGenerator', but now for Debian/Ubuntu releases + (i.e. generate a closure from a Packages.bz2 file). + */ debClosureGenerator = - {name, packagesLists, urlPrefix, packages}: + { + name, + packagesLists, + urlPrefix, + packages, + }: runCommand "${name}.nix" - { nativeBuildInputs = [ buildPackages.perl buildPackages.dpkg ]; } '' - for i in ${toString packagesLists}; do - echo "adding $i..." - case $i in - *.xz | *.lzma) - xz -d < $i >> ./Packages - ;; - *.bz2) - bunzip2 < $i >> ./Packages - ;; - *.gz) - gzip -dc < $i >> ./Packages - ;; - esac - done + { + nativeBuildInputs = [ + buildPackages.perl + buildPackages.dpkg + ]; + } + '' + for i in ${toString packagesLists}; do + echo "adding $i..." + case $i in + *.xz | *.lzma) + xz -d < $i >> ./Packages + ;; + *.bz2) + bunzip2 < $i >> ./Packages + ;; + *.gz) + gzip -dc < $i >> ./Packages + ;; + esac + done - perl -w ${deb/deb-closure.pl} \ - ./Packages ${urlPrefix} ${toString packages} > $out - ''; + perl -w ${deb/deb-closure.pl} \ + ./Packages ${urlPrefix} ${toString packages} > $out + ''; - - /* Helper function that combines debClosureGenerator and - fillDiskWithDebs to generate a disk image from a set of package - names. */ + /* + Helper function that combines debClosureGenerator and + fillDiskWithDebs to generate a disk image from a set of package + names. + */ makeImageFromDebDist = - { name, fullName, size ? 4096, urlPrefix - , packagesList ? "", packagesLists ? [packagesList] - , packages, extraPackages ? [], postInstall ? "" - , extraDebs ? [], createRootFS ? defaultCreateRootFS - , QEMU_OPTS ? "", memSize ? 512, ... }@args: + { + name, + fullName, + size ? 4096, + urlPrefix, + packagesList ? "", + packagesLists ? [ packagesList ], + packages, + extraPackages ? [ ], + postInstall ? "", + extraDebs ? [ ], + createRootFS ? defaultCreateRootFS, + QEMU_OPTS ? "", + memSize ? 512, + ... + }@args: let expr = debClosureGenerator { @@ -750,20 +943,35 @@ rec { packages = packages ++ extraPackages; }; in - (fillDiskWithDebs ({ - inherit name fullName size postInstall createRootFS QEMU_OPTS memSize; - debs = import expr {inherit fetchurl;} ++ extraDebs; - } // args)) // {inherit expr;}; + (fillDiskWithDebs ( + { + inherit + name + fullName + size + postInstall + createRootFS + QEMU_OPTS + memSize + ; + debs = import expr { inherit fetchurl; } ++ extraDebs; + } + // args + )) + // { + inherit expr; + }; - - /* The set of supported RPM-based distributions. */ + # The set of supported RPM-based distributions. rpmDistros = { # Note: no i386 release for Fedora >= 26 fedora26x86_64 = - let version = "26"; - in { + let + version = "26"; + in + { name = "fedora-${version}-x86_64"; fullName = "Fedora ${version} (x86_64)"; packagesList = fetchurl rec { @@ -771,14 +979,22 @@ rec { sha256 = "880055a50c05b20641530d09b23f64501a000b2f92fe252417c530178730a95e"; }; urlPrefix = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os"; - archs = ["noarch" "x86_64"]; - packages = commonFedoraPackages ++ [ "cronie" "util-linux" ]; + archs = [ + "noarch" + "x86_64" + ]; + packages = commonFedoraPackages ++ [ + "cronie" + "util-linux" + ]; unifiedSystemDir = true; }; fedora27x86_64 = - let version = "27"; - in { + let + version = "27"; + in + { name = "fedora-${version}-x86_64"; fullName = "Fedora ${version} (x86_64)"; packagesList = fetchurl rec { @@ -786,14 +1002,22 @@ rec { sha256 = "48986ce4583cd09825c6d437150314446f0f49fa1a1bd62dcfa1085295030fe9"; }; urlPrefix = "mirror://fedora/linux/releases/${version}/Everything/x86_64/os"; - archs = ["noarch" "x86_64"]; - packages = commonFedoraPackages ++ [ "cronie" "util-linux" ]; + archs = [ + "noarch" + "x86_64" + ]; + packages = commonFedoraPackages ++ [ + "cronie" + "util-linux" + ]; unifiedSystemDir = true; }; centos6i386 = - let version = "6.9"; - in rec { + let + version = "6.9"; + in + rec { name = "centos-${version}-i386"; fullName = "CentOS ${version} (i386)"; urlPrefix = "mirror://centos/${version}/os/i386"; @@ -801,13 +1025,18 @@ rec { url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; sha256 = "b826a45082ef68340325c0855f3d2e5d5a4d0f77d28ba3b871791d6f14a97aeb"; }; - archs = ["noarch" "i386"]; + archs = [ + "noarch" + "i386" + ]; packages = commonCentOSPackages ++ [ "procps" ]; }; centos6x86_64 = - let version = "6.9"; - in rec { + let + version = "6.9"; + in + rec { name = "centos-${version}-x86_64"; fullName = "CentOS ${version} (x86_64)"; urlPrefix = "mirror://centos/${version}/os/x86_64"; @@ -815,14 +1044,19 @@ rec { url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; sha256 = "ed2b2d4ac98d774d4cd3e91467e1532f7e8b0275cfc91a0d214b532dcaf1e979"; }; - archs = ["noarch" "x86_64"]; + archs = [ + "noarch" + "x86_64" + ]; packages = commonCentOSPackages ++ [ "procps" ]; }; # Note: no i386 release for 7.x centos7x86_64 = - let version = "7.4.1708"; - in rec { + let + version = "7.4.1708"; + in + rec { name = "centos-${version}-x86_64"; fullName = "CentOS ${version} (x86_64)"; urlPrefix = "mirror://centos/${version}/os/x86_64"; @@ -830,183 +1064,215 @@ rec { url = "${urlPrefix}/repodata/${sha256}-primary.xml.gz"; sha256 = "b686d3a0f337323e656d9387b9a76ce6808b26255fc3a138b1a87d3b1cb95ed5"; }; - archs = ["noarch" "x86_64"]; + archs = [ + "noarch" + "x86_64" + ]; packages = commonCentOSPackages ++ [ "procps-ng" ]; }; }; - - /* The set of supported Dpkg-based distributions. */ + # The set of supported Dpkg-based distributions. debDistros = { ubuntu1404i386 = { name = "ubuntu-14.04-trusty-i386"; fullName = "Ubuntu 14.04 Trusty (i386)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/trusty/main/binary-i386/Packages.bz2"; - sha256 = "1d5y3v3v079gdq45hc07ja0bjlmzqfwdwwlq0brwxi8m75k3iz7x"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/trusty/universe/binary-i386/Packages.bz2"; - sha256 = "03x9w92by320rfklrqhcl3qpwmnxds9c8ijl5zhcb21d6dcz5z1a"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/trusty/main/binary-i386/Packages.bz2"; + sha256 = "1d5y3v3v079gdq45hc07ja0bjlmzqfwdwwlq0brwxi8m75k3iz7x"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/trusty/universe/binary-i386/Packages.bz2"; + sha256 = "03x9w92by320rfklrqhcl3qpwmnxds9c8ijl5zhcb21d6dcz5z1a"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu1404x86_64 = { name = "ubuntu-14.04-trusty-amd64"; fullName = "Ubuntu 14.04 Trusty (amd64)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/trusty/main/binary-amd64/Packages.bz2"; - sha256 = "1hhzbyqfr5i0swahwnl5gfp5l9p9hspywb1vpihr3b74p1z935bh"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/trusty/universe/binary-amd64/Packages.bz2"; - sha256 = "04560ba8s4z4v5iawknagrkn9q1nzvpn081ycmqvhh73p3p3g1jm"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/trusty/main/binary-amd64/Packages.bz2"; + sha256 = "1hhzbyqfr5i0swahwnl5gfp5l9p9hspywb1vpihr3b74p1z935bh"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/trusty/universe/binary-amd64/Packages.bz2"; + sha256 = "04560ba8s4z4v5iawknagrkn9q1nzvpn081ycmqvhh73p3p3g1jm"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu1604i386 = { name = "ubuntu-16.04-xenial-i386"; fullName = "Ubuntu 16.04 Xenial (i386)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/xenial/main/binary-i386/Packages.xz"; - sha256 = "13r75sp4slqy8w32y5dnr7pp7p3cfvavyr1g7gwnlkyrq4zx4ahy"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/xenial/universe/binary-i386/Packages.xz"; - sha256 = "14fid1rqm3sc0wlygcvn0yx5aljf51c2jpd4x0zxij4019316hsh"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/xenial/main/binary-i386/Packages.xz"; + sha256 = "13r75sp4slqy8w32y5dnr7pp7p3cfvavyr1g7gwnlkyrq4zx4ahy"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/xenial/universe/binary-i386/Packages.xz"; + sha256 = "14fid1rqm3sc0wlygcvn0yx5aljf51c2jpd4x0zxij4019316hsh"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu1604x86_64 = { name = "ubuntu-16.04-xenial-amd64"; fullName = "Ubuntu 16.04 Xenial (amd64)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/xenial/main/binary-amd64/Packages.xz"; - sha256 = "110qnkhjkkwm316fbig3aivm2595ydz6zskc4ld5cr8ngcrqm1bn"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/xenial/universe/binary-amd64/Packages.xz"; - sha256 = "0mm7gj491yi6q4v0n4qkbsm94s59bvqir6fk60j73w7y4la8rg68"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/xenial/main/binary-amd64/Packages.xz"; + sha256 = "110qnkhjkkwm316fbig3aivm2595ydz6zskc4ld5cr8ngcrqm1bn"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/xenial/universe/binary-amd64/Packages.xz"; + sha256 = "0mm7gj491yi6q4v0n4qkbsm94s59bvqir6fk60j73w7y4la8rg68"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu1804i386 = { name = "ubuntu-18.04-bionic-i386"; fullName = "Ubuntu 18.04 Bionic (i386)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/bionic/main/binary-i386/Packages.xz"; - sha256 = "0f0v4131kwf7m7f8j3288rlqdxk1k3vqy74b7fcfd6jz9j8d840i"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/bionic/universe/binary-i386/Packages.xz"; - sha256 = "1v75c0dqr0wp0dqd4hnci92qqs4hll8frqdbpswadgxm5chn91bw"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/bionic/main/binary-i386/Packages.xz"; + sha256 = "0f0v4131kwf7m7f8j3288rlqdxk1k3vqy74b7fcfd6jz9j8d840i"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/bionic/universe/binary-i386/Packages.xz"; + sha256 = "1v75c0dqr0wp0dqd4hnci92qqs4hll8frqdbpswadgxm5chn91bw"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu1804x86_64 = { name = "ubuntu-18.04-bionic-amd64"; fullName = "Ubuntu 18.04 Bionic (amd64)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/bionic/main/binary-amd64/Packages.xz"; - sha256 = "1ls81bjyvmfz6i919kszl7xks1ibrh1xqhsk6698ackndkm0wp39"; - }) - (fetchurl { - url = "mirror://ubuntu/dists/bionic/universe/binary-amd64/Packages.xz"; - sha256 = "1832nqpn4ap95b3sj870xqayrza9in4kih9jkmjax27pq6x15v1r"; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/bionic/main/binary-amd64/Packages.xz"; + sha256 = "1ls81bjyvmfz6i919kszl7xks1ibrh1xqhsk6698ackndkm0wp39"; + }) + (fetchurl { + url = "mirror://ubuntu/dists/bionic/universe/binary-amd64/Packages.xz"; + sha256 = "1832nqpn4ap95b3sj870xqayrza9in4kih9jkmjax27pq6x15v1r"; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu2004i386 = { name = "ubuntu-20.04-focal-i386"; fullName = "Ubuntu 20.04 Focal (i386)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/focal/main/binary-i386/Packages.xz"; - sha256 = "sha256-7RAYURoN3RKYQAHpwBS9TIV6vCmpURpphyMJQmV4wLc="; - }) - (fetchurl { - url = "mirror://ubuntu/dists/focal/universe/binary-i386/Packages.xz"; - sha256 = "sha256-oA551xVE80volUPgkMyvzpQ1d+GhuZd4DAe7dXZnULM="; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/focal/main/binary-i386/Packages.xz"; + sha256 = "sha256-7RAYURoN3RKYQAHpwBS9TIV6vCmpURpphyMJQmV4wLc="; + }) + (fetchurl { + url = "mirror://ubuntu/dists/focal/universe/binary-i386/Packages.xz"; + sha256 = "sha256-oA551xVE80volUPgkMyvzpQ1d+GhuZd4DAe7dXZnULM="; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu2004x86_64 = { name = "ubuntu-20.04-focal-amd64"; fullName = "Ubuntu 20.04 Focal (amd64)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/focal/main/binary-amd64/Packages.xz"; - sha256 = "sha256-d1eSH/j+7Zw5NKDJk21EG6SiOL7j6myMHfXLzUP8mGE="; - }) - (fetchurl { - url = "mirror://ubuntu/dists/focal/universe/binary-amd64/Packages.xz"; - sha256 = "sha256-RqdG2seJvZU3rKVNsWgLnf9RwkgVMRE1A4IZnX2WudE="; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/focal/main/binary-amd64/Packages.xz"; + sha256 = "sha256-d1eSH/j+7Zw5NKDJk21EG6SiOL7j6myMHfXLzUP8mGE="; + }) + (fetchurl { + url = "mirror://ubuntu/dists/focal/universe/binary-amd64/Packages.xz"; + sha256 = "sha256-RqdG2seJvZU3rKVNsWgLnf9RwkgVMRE1A4IZnX2WudE="; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu2204i386 = { name = "ubuntu-22.04-jammy-i386"; fullName = "Ubuntu 22.04 Jammy (i386)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/jammy/main/binary-i386/Packages.xz"; - sha256 = "sha256-iZBmwT0ep4v+V3sayybbOgZBOFFZwPGpOKtmuLMMVPQ="; - }) - (fetchurl { - url = "mirror://ubuntu/dists/jammy/universe/binary-i386/Packages.xz"; - sha256 = "sha256-DO2LdpZ9rDDBhWj2gvDWd0TJJVZHxKsYTKTi6GXjm1E="; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/jammy/main/binary-i386/Packages.xz"; + sha256 = "sha256-iZBmwT0ep4v+V3sayybbOgZBOFFZwPGpOKtmuLMMVPQ="; + }) + (fetchurl { + url = "mirror://ubuntu/dists/jammy/universe/binary-i386/Packages.xz"; + sha256 = "sha256-DO2LdpZ9rDDBhWj2gvDWd0TJJVZHxKsYTKTi6GXjm1E="; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; ubuntu2204x86_64 = { name = "ubuntu-22.04-jammy-amd64"; fullName = "Ubuntu 22.04 Jammy (amd64)"; - packagesLists = - [ (fetchurl { - url = "mirror://ubuntu/dists/jammy/main/binary-amd64/Packages.xz"; - sha256 = "sha256-N8tX8VVMv6ccWinun/7hipqMF4K7BWjgh0t/9M6PnBE="; - }) - (fetchurl { - url = "mirror://ubuntu/dists/jammy/universe/binary-amd64/Packages.xz"; - sha256 = "sha256-0pyyTJP+xfQyVXBrzn60bUd5lSA52MaKwbsUpvNlXOI="; - }) - ]; + packagesLists = [ + (fetchurl { + url = "mirror://ubuntu/dists/jammy/main/binary-amd64/Packages.xz"; + sha256 = "sha256-N8tX8VVMv6ccWinun/7hipqMF4K7BWjgh0t/9M6PnBE="; + }) + (fetchurl { + url = "mirror://ubuntu/dists/jammy/universe/binary-amd64/Packages.xz"; + sha256 = "sha256-0pyyTJP+xfQyVXBrzn60bUd5lSA52MaKwbsUpvNlXOI="; + }) + ]; urlPrefix = "mirror://ubuntu"; - packages = commonDebPackages ++ [ "diffutils" "libc-bin" ]; + packages = commonDebPackages ++ [ + "diffutils" + "libc-bin" + ]; }; debian10i386 = { @@ -1076,8 +1342,7 @@ rec { }; }; - - /* Common packages for Fedora images. */ + # Common packages for Fedora images. commonFedoraPackages = [ "autoconf" "automake" @@ -1144,7 +1409,7 @@ rec { "unzip" ]; - /* Common packages for openSUSE images. */ + # Common packages for openSUSE images. commonOpenSUSEPackages = [ "aaa_base" "autoconf" @@ -1167,8 +1432,7 @@ rec { "gnu-getopt" ]; - - /* Common packages for Debian/Ubuntu images. */ + # Common packages for Debian/Ubuntu images. commonDebPackages = [ "base-passwd" "dpkg" @@ -1200,33 +1464,45 @@ rec { "passwd" ]; - commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" ]; + commonDebianPackages = commonDebPackages ++ [ + "sysvinit" + "diff" + ]; - - /* A set of functions that build the Linux distributions specified - in `rpmDistros' and `debDistros'. For instance, - `diskImageFuns.ubuntu1004x86_64 { }' builds an Ubuntu 10.04 disk - image containing the default packages specified above. Overrides - of the default image parameters can be given. In particular, - `extraPackages' specifies the names of additional packages from - the distribution that should be included in the image; `packages' - allows the entire set of packages to be overridden; and `size' - sets the size of the disk in megabytes. E.g., - `diskImageFuns.ubuntu1004x86_64 { extraPackages = ["firefox"]; - size = 8192; }' builds an 8 GiB image containing Firefox in - addition to the default packages. */ + /* + A set of functions that build the Linux distributions specified + in `rpmDistros' and `debDistros'. For instance, + `diskImageFuns.ubuntu1004x86_64 { }' builds an Ubuntu 10.04 disk + image containing the default packages specified above. Overrides + of the default image parameters can be given. In particular, + `extraPackages' specifies the names of additional packages from + the distribution that should be included in the image; `packages' + allows the entire set of packages to be overridden; and `size' + sets the size of the disk in megabytes. E.g., + `diskImageFuns.ubuntu1004x86_64 { extraPackages = ["firefox"]; + size = 8192; }' builds an 8 GiB image containing Firefox in + addition to the default packages. + */ diskImageFuns = - (lib.mapAttrs (name: as: as2: makeImageFromRPMDist (as // as2)) rpmDistros) // - (lib.mapAttrs (name: as: as2: makeImageFromDebDist (as // as2)) debDistros); + (lib.mapAttrs ( + name: as: as2: + makeImageFromRPMDist (as // as2) + ) rpmDistros) + // (lib.mapAttrs ( + name: as: as2: + makeImageFromDebDist (as // as2) + ) debDistros); + # Shorthand for `diskImageFuns. { extraPackages = ... }'. + diskImageExtraFuns = lib.mapAttrs ( + name: f: extraPackages: + f { inherit extraPackages; } + ) diskImageFuns; - /* Shorthand for `diskImageFuns. { extraPackages = ... }'. */ - diskImageExtraFuns = - lib.mapAttrs (name: f: extraPackages: f { inherit extraPackages; }) diskImageFuns; - - - /* Default disk images generated from the `rpmDistros' and - `debDistros' sets. */ - diskImages = lib.mapAttrs (name: f: f {}) diskImageFuns; + /* + Default disk images generated from the `rpmDistros' and + `debDistros' sets. + */ + diskImages = lib.mapAttrs (name: f: f { }) diskImageFuns; } diff --git a/pkgs/build-support/vm/test.nix b/pkgs/build-support/vm/test.nix index 50dbfeb..7811509 100644 --- a/pkgs/build-support/vm/test.nix +++ b/pkgs/build-support/vm/test.nix @@ -19,20 +19,20 @@ in { - # Run the PatchELF derivation in a VM. buildPatchelfInVM = runInLinuxVM patchelf; buildHelloInVM = runInLinuxVM hello; - buildPcmanrmInVM = runInLinuxVM (pcmanfm.overrideAttrs (old: { - # goes out-of-memory with many cores - enableParallelBuilding = false; - })); + buildPcmanrmInVM = runInLinuxVM ( + pcmanfm.overrideAttrs (old: { + # goes out-of-memory with many cores + enableParallelBuilding = false; + }) + ); testRPMImage = makeImageTestScript diskImages.fedora27x86_64; - buildPatchelfRPM = buildRPM { name = "patchelf-rpm"; src = patchelf.src; @@ -40,19 +40,19 @@ in diskImageFormat = "qcow2"; }; - testUbuntuImage = makeImageTestScript diskImages.ubuntu1804i386; - - buildInDebian = runInLinuxImage (stdenv.mkDerivation { - name = "deb-compile"; - src = patchelf.src; - diskImage = diskImages.ubuntu1804i386; - diskImageFormat = "qcow2"; - memSize = 512; - postHook = '' - dpkg-query --list - ''; - }); + buildInDebian = runInLinuxImage ( + stdenv.mkDerivation { + name = "deb-compile"; + src = patchelf.src; + diskImage = diskImages.ubuntu1804i386; + diskImageFormat = "qcow2"; + memSize = 512; + postHook = '' + dpkg-query --list + ''; + } + ); } diff --git a/pkgs/build-support/writers/aliases.nix b/pkgs/build-support/writers/aliases.nix index fb108a6..4a18d6f 100644 --- a/pkgs/build-support/writers/aliases.nix +++ b/pkgs/build-support/writers/aliases.nix @@ -3,33 +3,32 @@ lib: prev: let # Removing recurseForDerivation prevents derivations of aliased attribute # set to appear while listing all the packages available. - removeRecurseForDerivations = alias: with lib; + removeRecurseForDerivations = + alias: + with lib; if alias.recurseForDerivations or false then - removeAttrs alias ["recurseForDerivations"] - else alias; + removeAttrs alias [ "recurseForDerivations" ] + else + alias; # Disabling distribution prevents top-level aliases for non-recursed package # sets from building on Hydra. - removeDistribute = alias: with lib; - if isDerivation alias then - dontDistribute alias - else alias; + removeDistribute = alias: with lib; if isDerivation alias then dontDistribute alias else alias; # Make sure that we are not shadowing something from # writers. - checkInPkgs = n: alias: if builtins.hasAttr n prev - then throw "Alias ${n} is still in writers" - else alias; + checkInPkgs = + n: alias: if builtins.hasAttr n prev then throw "Alias ${n} is still in writers" else alias; - mapAliases = aliases: - lib.mapAttrs (n: alias: removeDistribute - (removeRecurseForDerivations - (checkInPkgs n alias))) - aliases; + mapAliases = + aliases: + lib.mapAttrs ( + n: alias: removeDistribute (removeRecurseForDerivations (checkInPkgs n alias)) + ) aliases; in mapAliases ({ - /* Cleanup before 22.05, Added 2021-12-11 */ + # Cleanup before 22.05, Added 2021-12-11 writePython2 = "Python 2 is EOL and the use of writers.writePython2 is deprecated."; writePython2Bin = "Python 2 is EOL and the use of writers.writePython2Bin is deprecated."; }) diff --git a/pkgs/build-support/writers/data.nix b/pkgs/build-support/writers/data.nix index 3151503..0bb285f 100644 --- a/pkgs/build-support/writers/data.nix +++ b/pkgs/build-support/writers/data.nix @@ -1,10 +1,11 @@ -{ lib, pkgs, formats, runCommand }: +{ + lib, + pkgs, + formats, + runCommand, +}: let - inherit (lib) - last - optionalString - types - ; + inherit (lib) last optionalString types; in { /** @@ -29,8 +30,15 @@ in data :: T: the data that will be converted. ``` */ - makeDataWriter = lib.warn "pkgs.writers.makeDataWriter is deprecated. Use pkgs.writeTextFile." ({ input ? lib.id, output ? "cp $inputPath $out" }: nameOrPath: data: - assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); + makeDataWriter = lib.warn "pkgs.writers.makeDataWriter is deprecated. Use pkgs.writeTextFile." ( + { + input ? lib.id, + output ? "cp $inputPath $out", + }: + nameOrPath: data: + assert + (types.path.check nameOrPath) + || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); let name = last (builtins.split "/" nameOrPath); in @@ -38,15 +46,17 @@ in { input = input data; passAsFile = [ "input" ]; - } '' - ${output} + } + '' + ${output} - ${optionalString (types.path.check nameOrPath) '' - mv $out tmp - mkdir -p $out/$(dirname "${nameOrPath}") - mv tmp $out/${nameOrPath} - ''} - ''); + ${optionalString (types.path.check nameOrPath) '' + mv $out tmp + mkdir -p $out/$(dirname "${nameOrPath}") + mv tmp $out/${nameOrPath} + ''} + '' + ); inherit (pkgs) writeText; @@ -59,7 +69,7 @@ in writeJSON "data.json" { hello = "world"; } ``` */ - writeJSON = (pkgs.formats.json {}).generate; + writeJSON = (pkgs.formats.json { }).generate; /** Writes the content to a TOML file. @@ -70,7 +80,7 @@ in writeTOML "data.toml" { hello = "world"; } ``` */ - writeTOML = (pkgs.formats.toml {}).generate; + writeTOML = (pkgs.formats.toml { }).generate; /** Writes the content to a YAML file. @@ -81,5 +91,5 @@ in writeYAML "data.yaml" { hello = "world"; } ``` */ - writeYAML = (pkgs.formats.yaml {}).generate; + writeYAML = (pkgs.formats.yaml { }).generate; } diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix index cadb697..ad2be96 100644 --- a/pkgs/build-support/writers/default.nix +++ b/pkgs/build-support/writers/default.nix @@ -1,8 +1,12 @@ -{ config, lib, callPackages }: +{ + config, + lib, + callPackages, +}: # If you are reading this, you can test these writers by running: nix-build . -A tests.writers let - aliases = if config.allowAliases then (import ./aliases.nix lib) else prev: {}; + aliases = if config.allowAliases then (import ./aliases.nix lib) else prev: { }; # Writers for JSON-like data structures dataWriters = callPackages ./data.nix { }; diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix index 06d763c..7df2c84 100644 --- a/pkgs/build-support/writers/scripts.nix +++ b/pkgs/build-support/writers/scripts.nix @@ -27,8 +27,16 @@ rec { # Examples: # writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; } # makeScriptWriter { interpreter = "${pkgs.dash}/bin/dash"; } "hello" "echo hello world" - makeScriptWriter = { interpreter, check ? "", makeWrapperArgs ? [], }: nameOrPath: content: - assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); + makeScriptWriter = + { + interpreter, + check ? "", + makeWrapperArgs ? [ ], + }: + nameOrPath: content: + assert + (types.path.check nameOrPath) + || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); assert (types.path.check content) || (types.str.check content); let nameIsPath = types.path.check nameOrPath; @@ -37,83 +45,93 @@ rec { # The inner derivation which creates the executable under $out/bin (never at $out directly) # This is required in order to support wrapping, as wrapped programs consist of at least two files: the executable and the wrapper. inner = - pkgs.runCommandLocal name ( - { - inherit makeWrapperArgs; - nativeBuildInputs = [ - makeBinaryWrapper - ]; - meta.mainProgram = name; - } - // ( - if (types.str.check content) then { - inherit content interpreter; - passAsFile = [ "content" ]; - } else { - inherit interpreter; - contentPath = content; + pkgs.runCommandLocal name + ( + { + inherit makeWrapperArgs; + nativeBuildInputs = [ makeBinaryWrapper ]; + meta.mainProgram = name; } + // ( + if (types.str.check content) then + { + inherit content interpreter; + passAsFile = [ "content" ]; + } + else + { + inherit interpreter; + contentPath = content; + } + ) ) - ) - '' - # On darwin a script cannot be used as an interpreter in a shebang but - # there doesn't seem to be a limit to the size of shebang and multiple - # arguments to the interpreter are allowed. - if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter - then - wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3) - # Get first word from the line (note: xargs echo remove leading spaces) - wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1) - - if isScript $wrapperInterpreter + '' + # On darwin a script cannot be used as an interpreter in a shebang but + # there doesn't seem to be a limit to the size of shebang and multiple + # arguments to the interpreter are allowed. + if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter then - echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported." - exit 1 + wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3) + # Get first word from the line (note: xargs echo remove leading spaces) + wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1) + + if isScript $wrapperInterpreter + then + echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported." + exit 1 + fi + + # This should work as long as wrapperInterpreter is a shell, which is + # the case for programs wrapped with makeWrapper, like + # python3.withPackages etc. + interpreterLine="$wrapperInterpreterLine $interpreter" + else + interpreterLine=$interpreter fi - # This should work as long as wrapperInterpreter is a shell, which is - # the case for programs wrapped with makeWrapper, like - # python3.withPackages etc. - interpreterLine="$wrapperInterpreterLine $interpreter" - else - interpreterLine=$interpreter - fi - - echo "#! $interpreterLine" > $out - cat "$contentPath" >> $out - ${optionalString (check != "") '' - ${check} $out - ''} - chmod +x $out - - # Relocate executable - # Wrap it if makeWrapperArgs are specified - mv $out tmp - mkdir -p $out/$(dirname "${path}") - mv tmp $out/${path} - if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then - wrapProgram $out/${path} ''${makeWrapperArgs[@]} - fi - ''; - in - if nameIsPath - then inner - # In case nameOrPath is a name, the user intends the executable to be located at $out. - # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. - # This breaks the override pattern. - # In case this turns out to be a problem, we can still add more magic - else pkgs.runCommandLocal name {} '' - ln -s ${inner}/bin/${name} $out - ''; + echo "#! $interpreterLine" > $out + cat "$contentPath" >> $out + ${optionalString (check != "") '' + ${check} $out + ''} + chmod +x $out + # Relocate executable + # Wrap it if makeWrapperArgs are specified + mv $out tmp + mkdir -p $out/$(dirname "${path}") + mv tmp $out/${path} + if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then + wrapProgram $out/${path} ''${makeWrapperArgs[@]} + fi + ''; + in + if nameIsPath then + inner + # In case nameOrPath is a name, the user intends the executable to be located at $out. + # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. + # This breaks the override pattern. + # In case this turns out to be a problem, we can still add more magic + else + pkgs.runCommandLocal name { } '' + ln -s ${inner}/bin/${name} $out + ''; # Base implementation for compiled executables. # Takes a compile script, which in turn takes the name as an argument. # # Examples: # writeSimpleC = makeBinWriter { compileScript = name: "gcc -o $out $contentPath"; } - makeBinWriter = { compileScript, strip ? true, makeWrapperArgs ? [] }: nameOrPath: content: - assert (types.path.check nameOrPath) || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); + makeBinWriter = + { + compileScript, + strip ? true, + makeWrapperArgs ? [ ], + }: + nameOrPath: content: + assert + (types.path.check nameOrPath) + || (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); assert (types.path.check content) || (types.str.check content); let nameIsPath = types.path.check nameOrPath; @@ -122,46 +140,46 @@ rec { # The inner derivation which creates the executable under $out/bin (never at $out directly) # This is required in order to support wrapping, as wrapped programs consist of at least two files: the executable and the wrapper. inner = - pkgs.runCommandLocal name ( - { - inherit makeWrapperArgs; - nativeBuildInputs = [ - makeBinaryWrapper - ]; - meta.mainProgram = name; - } - // ( - if (types.str.check content) then { - inherit content; - passAsFile = [ "content" ]; - } else { - contentPath = content; - } + pkgs.runCommandLocal name + ( + { + inherit makeWrapperArgs; + nativeBuildInputs = [ makeBinaryWrapper ]; + meta.mainProgram = name; + } + // ( + if (types.str.check content) then + { + inherit content; + passAsFile = [ "content" ]; + } + else + { contentPath = content; } + ) ) - ) - '' - ${compileScript} - ${lib.optionalString strip - "${lib.getBin buildPackages.bintools-unwrapped}/bin/${buildPackages.bintools-unwrapped.targetPrefix}strip -S $out"} - # Sometimes binaries produced for darwin (e. g. by GHC) won't be valid - # mach-o executables from the get-go, but need to be corrected somehow - # which is done by fixupPhase. - ${lib.optionalString pkgs.stdenvNoCC.hostPlatform.isDarwin "fixupPhase"} - mv $out tmp - mkdir -p $out/$(dirname "${path}") - mv tmp $out/${path} - if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then - wrapProgram $out/${path} ''${makeWrapperArgs[@]} - fi - ''; + '' + ${compileScript} + ${lib.optionalString strip "${lib.getBin buildPackages.bintools-unwrapped}/bin/${buildPackages.bintools-unwrapped.targetPrefix}strip -S $out"} + # Sometimes binaries produced for darwin (e. g. by GHC) won't be valid + # mach-o executables from the get-go, but need to be corrected somehow + # which is done by fixupPhase. + ${lib.optionalString pkgs.stdenvNoCC.hostPlatform.isDarwin "fixupPhase"} + mv $out tmp + mkdir -p $out/$(dirname "${path}") + mv tmp $out/${path} + if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then + wrapProgram $out/${path} ''${makeWrapperArgs[@]} + fi + ''; in - if nameIsPath - then inner - # In case nameOrPath is a name, the user intends the executable to be located at $out. - # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. - # This breaks the override pattern. - # In case this turns out to be a problem, we can still add more magic - else pkgs.runCommandLocal name {} '' + if nameIsPath then + inner + # In case nameOrPath is a name, the user intends the executable to be located at $out. + # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. + # This breaks the override pattern. + # In case this turns out to be a problem, we can still add more magic + else + pkgs.runCommandLocal name { } '' ln -s ${inner}/bin/${name} $out ''; @@ -184,10 +202,12 @@ rec { # '' # hello # '' - writeBash = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.bash}"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.bash}"; } name argsOrScript; + writeBash = + name: argsOrScript: + if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript then + makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.bash}"; }) name + else + makeScriptWriter { interpreter = "${lib.getExe pkgs.bash}"; } name argsOrScript; # Like writeScriptBin but the first line is a shebang to bash # @@ -208,8 +228,7 @@ rec { # '' # hello # '' - writeBashBin = name: - writeBash "/bin/${name}"; + writeBashBin = name: writeBash "/bin/${name}"; # Like writeScript but the first line is a shebang to dash # @@ -230,10 +249,12 @@ rec { # '' # hello # '' - writeDash = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.dash}"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.dash}"; } name argsOrScript; + writeDash = + name: argsOrScript: + if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript then + makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.dash}"; }) name + else + makeScriptWriter { interpreter = "${lib.getExe pkgs.dash}"; } name argsOrScript; # Like writeScriptBin but the first line is a shebang to dash # @@ -254,8 +275,7 @@ rec { # '' # hello # '' - writeDashBin = name: - writeDash "/bin/${name}"; + writeDashBin = name: writeDash "/bin/${name}"; # Like writeScript but the first line is a shebang to fish # @@ -276,16 +296,21 @@ rec { # '' # hello # '' - writeFish = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { - interpreter = "${lib.getExe pkgs.fish} --no-config"; - check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only - }) name - else makeScriptWriter { - interpreter = "${lib.getExe pkgs.fish} --no-config"; - check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only - } name argsOrScript; + writeFish = + name: argsOrScript: + if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript then + makeScriptWriter ( + argsOrScript + // { + interpreter = "${lib.getExe pkgs.fish} --no-config"; + check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only + } + ) name + else + makeScriptWriter { + interpreter = "${lib.getExe pkgs.fish} --no-config"; + check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only + } name argsOrScript; # Like writeScriptBin but the first line is a shebang to fish # @@ -306,8 +331,7 @@ rec { # '' # hello # '' - writeFishBin = name: - writeFish "/bin/${name}"; + writeFishBin = name: writeFish "/bin/${name}"; # writeHaskell takes a name, an attrset with libraries and haskell version (both optional) # and some haskell source code and returns an executable. @@ -318,30 +342,32 @@ rec { # # main = launchMissiles # ''; - writeHaskell = name: { - ghc ? pkgs.ghc, - ghcArgs ? [], - libraries ? [], - makeWrapperArgs ? [], - strip ? true, - threadedRuntime ? true, - }: + writeHaskell = + name: + { + ghc ? pkgs.ghc, + ghcArgs ? [ ], + libraries ? [ ], + makeWrapperArgs ? [ ], + strip ? true, + threadedRuntime ? true, + }: let appendIfNotSet = el: list: if elem el list then list else list ++ [ el ]; ghcArgs' = if threadedRuntime then appendIfNotSet "-threaded" ghcArgs else ghcArgs; - in makeBinWriter { + in + makeBinWriter { compileScript = '' cp $contentPath tmp.hs - ${(ghc.withPackages (_: libraries ))}/bin/ghc ${lib.escapeShellArgs ghcArgs'} tmp.hs + ${(ghc.withPackages (_: libraries))}/bin/ghc ${lib.escapeShellArgs ghcArgs'} tmp.hs mv tmp $out ''; inherit makeWrapperArgs strip; } name; # writeHaskellBin takes the same arguments as writeHaskell but outputs a directory (like writeScriptBin) - writeHaskellBin = name: - writeHaskell "/bin/${name}"; + writeHaskellBin = name: writeHaskell "/bin/${name}"; # Like writeScript but the first line is a shebang to nu # @@ -362,11 +388,14 @@ rec { # '' # hello # '' - writeNu = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; } name argsOrScript; - + writeNu = + name: argsOrScript: + if lib.isAttrs argsOrScript && !lib.isDerivation argsOrScript then + makeScriptWriter ( + argsOrScript // { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; } + ) name + else + makeScriptWriter { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; } name argsOrScript; # Like writeScriptBin but the first line is a shebang to nu # @@ -387,25 +416,27 @@ rec { # '' # hello # '' - writeNuBin = name: - writeNu "/bin/${name}"; + writeNuBin = name: writeNu "/bin/${name}"; # makeRubyWriter takes ruby and compatible rubyPackages and produces ruby script writer, # If any libraries are specified, ruby.withPackages is used as interpreter, otherwise the "bare" ruby is used. - makeRubyWriter = ruby: rubyPackages: buildRubyPackages: name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) - // { - interpreter = - if libraries == [] - then "${ruby}/bin/ruby" - else "${(ruby.withPackages (ps: libraries))}/bin/ruby"; - # Rubocop doesn't seem to like running in this fashion. - #check = (writeDash "rubocop.sh" '' - # exec ${lib.getExe buildRubyPackages.rubocop} "$1" - #''); - } - ) name; + makeRubyWriter = + ruby: rubyPackages: buildRubyPackages: name: + { + libraries ? [ ], + ... + }@args: + makeScriptWriter ( + (builtins.removeAttrs args [ "libraries" ]) + // { + interpreter = + if libraries == [ ] then "${ruby}/bin/ruby" else "${(ruby.withPackages (ps: libraries))}/bin/ruby"; + # Rubocop doesn't seem to like running in this fashion. + #check = (writeDash "rubocop.sh" '' + # exec ${lib.getExe buildRubyPackages.rubocop} "$1" + #''); + } + ) name; # Like writeScript but the first line is a shebang to ruby # @@ -415,26 +446,32 @@ rec { # '' writeRuby = makeRubyWriter pkgs.ruby pkgs.rubyPackages buildPackages.rubyPackages; - writeRubyBin = name: - writeRuby "/bin/${name}"; + writeRubyBin = name: writeRuby "/bin/${name}"; # makeLuaWriter takes lua and compatible luaPackages and produces lua script writer, # which validates the script with luacheck at build time. If any libraries are specified, # lua.withPackages is used as interpreter, otherwise the "bare" lua is used. - makeLuaWriter = lua: luaPackages: buildLuaPackages: name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) - // { - interpreter = lua.interpreter; + makeLuaWriter = + lua: luaPackages: buildLuaPackages: name: + { + libraries ? [ ], + ... + }@args: + makeScriptWriter ( + (builtins.removeAttrs args [ "libraries" ]) + // { + interpreter = lua.interpreter; # if libraries == [] # then lua.interpreter # else (lua.withPackages (ps: libraries)).interpreter # This should support packages! I just cant figure out why some dependency collision happens whenever I try to run this. - check = (writeDash "luacheck.sh" '' - exec ${buildLuaPackages.luacheck}/bin/luacheck "$1" - ''); - } - ) name; + check = ( + writeDash "luacheck.sh" '' + exec ${buildLuaPackages.luacheck}/bin/luacheck "$1" + '' + ); + } + ) name; # writeLua takes a name an attributeset with libraries and some lua source code and # returns an executable (should also work with luajit) @@ -458,28 +495,28 @@ rec { # '' writeLua = makeLuaWriter pkgs.lua pkgs.luaPackages buildPackages.luaPackages; - writeLuaBin = name: - writeLua "/bin/${name}"; + writeLuaBin = name: writeLua "/bin/${name}"; - writeRust = name: { - makeWrapperArgs ? [], - rustc ? pkgs.rustc, - rustcArgs ? [], - strip ? true, - }: - let - darwinArgs = lib.optionals stdenv.isDarwin [ "-L${lib.getLib libiconv}/lib" ]; - in + writeRust = + name: + { + makeWrapperArgs ? [ ], + rustc ? pkgs.rustc, + rustcArgs ? [ ], + strip ? true, + }: + let + darwinArgs = lib.optionals stdenv.isDarwin [ "-L${lib.getLib libiconv}/lib" ]; + in makeBinWriter { compileScript = '' cp "$contentPath" tmp.rs - PATH=${lib.makeBinPath [pkgs.gcc]} ${rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs + PATH=${lib.makeBinPath [ pkgs.gcc ]} ${rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs ''; inherit makeWrapperArgs strip; } name; - writeRustBin = name: - writeRust "/bin/${name}"; + writeRustBin = name: writeRust "/bin/${name}"; # writeJS takes a name an attributeset with libraries and some JavaScript sourcecode and # returns an executable @@ -491,23 +528,26 @@ rec { # var result = UglifyJS.minify(code); # console.log(result.code); # '' - writeJS = name: { libraries ? [] }: content: - let - node-env = pkgs.buildEnv { - name = "node"; - paths = libraries; - pathsToLink = [ - "/lib/node_modules" - ]; - }; - in writeDash name '' - export NODE_PATH=${node-env}/lib/node_modules - exec ${lib.getExe pkgs.nodejs} ${pkgs.writeText "js" content} "$@" - ''; + writeJS = + name: + { + libraries ? [ ], + }: + content: + let + node-env = pkgs.buildEnv { + name = "node"; + paths = libraries; + pathsToLink = [ "/lib/node_modules" ]; + }; + in + writeDash name '' + export NODE_PATH=${node-env}/lib/node_modules + exec ${lib.getExe pkgs.nodejs} ${pkgs.writeText "js" content} "$@" + ''; # writeJSBin takes the same arguments as writeJS but outputs a directory (like writeScriptBin) - writeJSBin = name: - writeJS "/bin/${name}"; + writeJSBin = name: writeJS "/bin/${name}"; awkFormatNginx = builtins.toFile "awkFormat-nginx.awk" '' awk -f @@ -515,18 +555,22 @@ rec { /\{/{ctx++;idx=1} /\}/{ctx--} {id="";for(i=idx;i $out - gixy $out ''; + writeNginxConfig = + name: text: + pkgs.runCommandLocal name + { + inherit text; + passAsFile = [ "text" ]; + nativeBuildInputs = [ gixy ]; + } # sh + '' + # nginx-config-formatter has an error - https://github.com/1connect/nginx-config-formatter/issues/16 + awk -f ${awkFormatNginx} "$textPath" | sed '/^\s*$/d' > $out + gixy $out + ''; + # writePerl takes a name an attributeset with libraries and some perl sourcecode and # returns an executable # @@ -535,42 +579,55 @@ rec { # use boolean; # print "Howdy!\n" if true; # '' - writePerl = name: { libraries ? [], ... } @ args: + writePerl = + name: + { + libraries ? [ ], + ... + }@args: makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) + (builtins.removeAttrs args [ "libraries" ]) // { interpreter = "${lib.getExe (pkgs.perl.withPackages (p: libraries))}"; } ) name; # writePerlBin takes the same arguments as writePerl but outputs a directory (like writeScriptBin) - writePerlBin = name: - writePerl "/bin/${name}"; + writePerlBin = name: writePerl "/bin/${name}"; # makePythonWriter takes python and compatible pythonPackages and produces python script writer, # which validates the script with flake8 at build time. If any libraries are specified, # python.withPackages is used as interpreter, otherwise the "bare" python is used. - makePythonWriter = python: pythonPackages: buildPythonPackages: name: { libraries ? [], flakeIgnore ? [], ... } @ args: - let - ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}"; - in - makeScriptWriter - ( - (builtins.removeAttrs args ["libraries" "flakeIgnore"]) + makePythonWriter = + python: pythonPackages: buildPythonPackages: name: + { + libraries ? [ ], + flakeIgnore ? [ ], + ... + }@args: + let + ignoreAttribute = + optionalString (flakeIgnore != [ ]) + "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}"; + in + makeScriptWriter ( + (builtins.removeAttrs args [ + "libraries" + "flakeIgnore" + ]) // { interpreter = if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then - if libraries == [] - then python.interpreter - else (python.withPackages (ps: libraries)).interpreter - else python.interpreter - ; - check = optionalString python.isPy3k (writeDash "pythoncheck.sh" '' - exec ${buildPythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1" - ''); + if libraries == [ ] then python.interpreter else (python.withPackages (ps: libraries)).interpreter + else + python.interpreter; + check = optionalString python.isPy3k ( + writeDash "pythoncheck.sh" '' + exec ${buildPythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1" + '' + ); } - ) - name; + ) name; # writePyPy2 takes a name an attributeset with libraries and some pypy2 sourcecode and # returns an executable @@ -587,8 +644,7 @@ rec { writePyPy2 = makePythonWriter pkgs.pypy2 pkgs.pypy2Packages buildPackages.pypy2Packages; # writePyPy2Bin takes the same arguments as writePyPy2 but outputs a directory (like writeScriptBin) - writePyPy2Bin = name: - writePyPy2 "/bin/${name}"; + writePyPy2Bin = name: writePyPy2 "/bin/${name}"; # writePython3 takes a name an attributeset with libraries and some python3 sourcecode and # returns an executable @@ -605,8 +661,7 @@ rec { writePython3 = makePythonWriter pkgs.python3 pkgs.python3Packages buildPackages.python3Packages; # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin) - writePython3Bin = name: - writePython3 "/bin/${name}"; + writePython3Bin = name: writePython3 "/bin/${name}"; # writePyPy3 takes a name an attributeset with libraries and some pypy3 sourcecode and # returns an executable @@ -623,46 +678,60 @@ rec { writePyPy3 = makePythonWriter pkgs.pypy3 pkgs.pypy3Packages buildPackages.pypy3Packages; # writePyPy3Bin takes the same arguments as writePyPy3 but outputs a directory (like writeScriptBin) - writePyPy3Bin = name: - writePyPy3 "/bin/${name}"; + writePyPy3Bin = name: writePyPy3 "/bin/${name}"; + makeFSharpWriter = + { + dotnet-sdk ? pkgs.dotnet-sdk, + fsi-flags ? "", + libraries ? _: [ ], + ... + }@args: + nameOrPath: + let + fname = last (builtins.split "/" nameOrPath); + path = if strings.hasSuffix ".fsx" nameOrPath then nameOrPath else "${nameOrPath}.fsx"; + _nugetDeps = mkNugetDeps { + name = "${fname}-nuget-deps"; + nugetDeps = libraries; + }; - makeFSharpWriter = { dotnet-sdk ? pkgs.dotnet-sdk, fsi-flags ? "", libraries ? _: [], ... } @ args: nameOrPath: - let - fname = last (builtins.split "/" nameOrPath); - path = if strings.hasSuffix ".fsx" nameOrPath then nameOrPath else "${nameOrPath}.fsx"; - _nugetDeps = mkNugetDeps { name = "${fname}-nuget-deps"; nugetDeps = libraries; }; + nuget-source = mkNugetSource { + name = "${fname}-nuget-source"; + description = "A Nuget source with the dependencies for ${fname}"; + deps = [ _nugetDeps ]; + }; - nuget-source = mkNugetSource { - name = "${fname}-nuget-source"; - description = "A Nuget source with the dependencies for ${fname}"; - deps = [ _nugetDeps ]; - }; + fsi = writeBash "fsi" '' + export HOME=$NIX_BUILD_TOP/.home + export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 + export DOTNET_CLI_TELEMETRY_OPTOUT=1 + export DOTNET_NOLOGO=1 + script="$1"; shift + ${lib.getExe dotnet-sdk} fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script" + ''; - fsi = writeBash "fsi" '' - export HOME=$NIX_BUILD_TOP/.home - export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 - export DOTNET_CLI_TELEMETRY_OPTOUT=1 - export DOTNET_NOLOGO=1 - script="$1"; shift - ${lib.getExe dotnet-sdk} fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script" - ''; + in + content: + makeScriptWriter + ( + (builtins.removeAttrs args [ + "dotnet-sdk" + "fsi-flags" + "libraries" + ]) + // { + interpreter = fsi; + } + ) + path + '' + #i "nuget: ${nuget-source}/lib" + ${content} + exit 0 + ''; - in content: makeScriptWriter ( - (builtins.removeAttrs args ["dotnet-sdk" "fsi-flags" "libraries"]) - // { - interpreter = fsi; - } - ) path - '' - #i "nuget: ${nuget-source}/lib" - ${ content } - exit 0 - ''; + writeFSharp = makeFSharpWriter { }; - writeFSharp = - makeFSharpWriter {}; - - writeFSharpBin = name: - writeFSharp "/bin/${name}"; + writeFSharpBin = name: writeFSharp "/bin/${name}"; } diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix index 656d127..9058df3 100644 --- a/pkgs/build-support/writers/test.nix +++ b/pkgs/build-support/writers/test.nix @@ -1,12 +1,13 @@ -{ haskellPackages -, lib -, nodePackages -, perlPackages -, python3Packages -, runCommand -, testers -, writers -, writeText +{ + haskellPackages, + lib, + nodePackages, + perlPackages, + python3Packages, + runCommand, + testers, + writers, + writeText, }: # If you are reading this, you can test these writers by running: nix-build . -A tests.writers @@ -43,8 +44,9 @@ let writeYAML ; - expectSuccess = test: - runCommand "run-${test.name}" {} '' + expectSuccess = + test: + runCommand "run-${test.name}" { } '' if [[ "$(${test})" != success ]]; then echo 'test ${test.name} failed' exit 1 @@ -53,8 +55,9 @@ let touch $out ''; - expectSuccessBin = test: - runCommand "run-${test.name}" {} '' + expectSuccessBin = + test: + runCommand "run-${test.name}" { } '' if [[ "$(${getExe test})" != success ]]; then echo 'test ${test.name} failed' exit 1 @@ -63,69 +66,90 @@ let touch $out ''; - expectDataEqual = { file, expected }: + expectDataEqual = + { file, expected }: let expectedFile = writeText "${file.name}-expected" expected; in - testers.testEqualContents { expected = expectedFile; actual = file; assertion = "${file.name} matches"; }; + testers.testEqualContents { + expected = expectedFile; + actual = file; + assertion = "${file.name} matches"; + }; in recurseIntoAttrs { bin = recurseIntoAttrs { - bash = expectSuccessBin (writeBashBin "test-writers-bash-bin" '' - if [[ "test" == "test" ]]; then echo "success"; fi - ''); + bash = expectSuccessBin ( + writeBashBin "test-writers-bash-bin" '' + if [[ "test" == "test" ]]; then echo "success"; fi + '' + ); - dash = expectSuccessBin (writeDashBin "test-writers-dash-bin" '' - test '~' = '~' && echo 'success' - ''); + dash = expectSuccessBin ( + writeDashBin "test-writers-dash-bin" '' + test '~' = '~' && echo 'success' + '' + ); - fish = expectSuccessBin (writeFishBin "test-writers-fish-bin" '' - if test "test" = "test" - echo "success" - end - ''); + fish = expectSuccessBin ( + writeFishBin "test-writers-fish-bin" '' + if test "test" = "test" + echo "success" + end + '' + ); - rust = expectSuccessBin (writeRustBin "test-writers-rust-bin" {} '' - fn main(){ - println!("success") - } - ''); + rust = expectSuccessBin ( + writeRustBin "test-writers-rust-bin" { } '' + fn main(){ + println!("success") + } + '' + ); - haskell = expectSuccessBin (writeHaskellBin "test-writers-haskell-bin" { libraries = [ haskellPackages.acme-default ]; } '' - import Data.Default + haskell = expectSuccessBin ( + writeHaskellBin "test-writers-haskell-bin" { libraries = [ haskellPackages.acme-default ]; } '' + import Data.Default - int :: Int - int = def + int :: Int + int = def - main :: IO () - main = case int of - 18871 -> putStrLn $ id "success" - _ -> print "fail" - ''); + main :: IO () + main = case int of + 18871 -> putStrLn $ id "success" + _ -> print "fail" + '' + ); - js = expectSuccessBin (writeJSBin "test-writers-js-bin" { libraries = [ nodePackages.semver ]; } '' - var semver = require('semver'); + js = expectSuccessBin ( + writeJSBin "test-writers-js-bin" { libraries = [ nodePackages.semver ]; } '' + var semver = require('semver'); - if (semver.valid('1.2.3')) { - console.log('success') - } else { - console.log('fail') - } - ''); + if (semver.valid('1.2.3')) { + console.log('success') + } else { + console.log('fail') + } + '' + ); - perl = expectSuccessBin (writePerlBin "test-writers-perl-bin" { libraries = [ perlPackages.boolean ]; } '' - use boolean; - print "success\n" if true; - ''); + perl = expectSuccessBin ( + writePerlBin "test-writers-perl-bin" { libraries = [ perlPackages.boolean ]; } '' + use boolean; + print "success\n" if true; + '' + ); - python3 = expectSuccessBin (writePython3Bin "test-writers-python3-bin" { libraries = [ python3Packages.pyyaml ]; } '' - import yaml + python3 = expectSuccessBin ( + writePython3Bin "test-writers-python3-bin" { libraries = [ python3Packages.pyyaml ]; } '' + import yaml - y = yaml.safe_load(""" - - test: success - """) - print(y[0]['test']) - ''); + y = yaml.safe_load(""" + - test: success + """) + print(y[0]['test']) + '' + ); # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356 @@ -171,59 +195,75 @@ recurseIntoAttrs { }; simple = recurseIntoAttrs { - bash = expectSuccess (writeBash "test-writers-bash" '' - if [[ "test" == "test" ]]; then echo "success"; fi - ''); + bash = expectSuccess ( + writeBash "test-writers-bash" '' + if [[ "test" == "test" ]]; then echo "success"; fi + '' + ); - dash = expectSuccess (writeDash "test-writers-dash" '' - test '~' = '~' && echo 'success' - ''); + dash = expectSuccess ( + writeDash "test-writers-dash" '' + test '~' = '~' && echo 'success' + '' + ); - fish = expectSuccess (writeFish "test-writers-fish" '' - if test "test" = "test" + fish = expectSuccess ( + writeFish "test-writers-fish" '' + if test "test" = "test" + echo "success" + end + '' + ); + + nu = expectSuccess ( + writeNu "test-writers-nushell" '' echo "success" - end - ''); + '' + ); - nu = expectSuccess (writeNu "test-writers-nushell" '' - echo "success" - ''); + haskell = expectSuccess ( + writeHaskell "test-writers-haskell" { libraries = [ haskellPackages.acme-default ]; } '' + import Data.Default - haskell = expectSuccess (writeHaskell "test-writers-haskell" { libraries = [ haskellPackages.acme-default ]; } '' - import Data.Default + int :: Int + int = def - int :: Int - int = def + main :: IO () + main = case int of + 18871 -> putStrLn $ id "success" + _ -> print "fail" + '' + ); - main :: IO () - main = case int of - 18871 -> putStrLn $ id "success" - _ -> print "fail" - ''); + js = expectSuccess ( + writeJS "test-writers-js" { libraries = [ nodePackages.semver ]; } '' + var semver = require('semver'); - js = expectSuccess (writeJS "test-writers-js" { libraries = [ nodePackages.semver ]; } '' - var semver = require('semver'); + if (semver.valid('1.2.3')) { + console.log('success') + } else { + console.log('fail') + } + '' + ); - if (semver.valid('1.2.3')) { - console.log('success') - } else { - console.log('fail') - } - ''); + perl = expectSuccess ( + writePerl "test-writers-perl" { libraries = [ perlPackages.boolean ]; } '' + use boolean; + print "success\n" if true; + '' + ); - perl = expectSuccess (writePerl "test-writers-perl" { libraries = [ perlPackages.boolean ]; } '' - use boolean; - print "success\n" if true; - ''); + python3 = expectSuccess ( + writePython3 "test-writers-python3" { libraries = [ python3Packages.pyyaml ]; } '' + import yaml - python3 = expectSuccess (writePython3 "test-writers-python3" { libraries = [ python3Packages.pyyaml ]; } '' - import yaml - - y = yaml.safe_load(""" - - test: success - """) - print(y[0]['test']) - ''); + y = yaml.safe_load(""" + - test: success + """) + print(y[0]['test']) + '' + ); # Commented out because of this issue: https://github.com/NixOS/nixpkgs/issues/39356 @@ -245,72 +285,105 @@ recurseIntoAttrs { # print(y[0]['test']) #''); - fsharp = expectSuccess (makeFSharpWriter { - libraries = { fetchNuGet }: [ - (fetchNuGet { pname = "FSharp.SystemTextJson"; version = "0.17.4"; sha256 = "1bplzc9ybdqspii4q28l8gmfvzpkmgq5l1hlsiyg2h46w881lwg2"; }) - (fetchNuGet { pname = "System.Text.Json"; version = "4.6.0"; sha256 = "0ism236hwi0k6axssfq58s1d8lihplwiz058pdvl8al71hagri39"; }) - ]; - } "test-writers-fsharp" '' + fsharp = expectSuccess ( + makeFSharpWriter + { + libraries = + { fetchNuGet }: + [ + (fetchNuGet { + pname = "FSharp.SystemTextJson"; + version = "0.17.4"; + sha256 = "1bplzc9ybdqspii4q28l8gmfvzpkmgq5l1hlsiyg2h46w881lwg2"; + }) + (fetchNuGet { + pname = "System.Text.Json"; + version = "4.6.0"; + sha256 = "0ism236hwi0k6axssfq58s1d8lihplwiz058pdvl8al71hagri39"; + }) + ]; + } + "test-writers-fsharp" + '' - #r "nuget: FSharp.SystemTextJson, 0.17.4" + #r "nuget: FSharp.SystemTextJson, 0.17.4" - module Json = - open System.Text.Json - open System.Text.Json.Serialization - let options = JsonSerializerOptions() - options.Converters.Add(JsonFSharpConverter()) - let serialize<'a> (o: 'a) = JsonSerializer.Serialize<'a>(o, options) - let deserialize<'a> (str: string) = JsonSerializer.Deserialize<'a>(str, options) + module Json = + open System.Text.Json + open System.Text.Json.Serialization + let options = JsonSerializerOptions() + options.Converters.Add(JsonFSharpConverter()) + let serialize<'a> (o: 'a) = JsonSerializer.Serialize<'a>(o, options) + let deserialize<'a> (str: string) = JsonSerializer.Deserialize<'a>(str, options) - type Letter = A | B - let a = {| Hello = Some "World"; Letter = A |} - if a |> Json.serialize |> Json.deserialize |> (=) a - then "success" - else "failed" - |> printfn "%s" - ''); + type Letter = A | B + let a = {| Hello = Some "World"; Letter = A |} + if a |> Json.serialize |> Json.deserialize |> (=) a + then "success" + else "failed" + |> printfn "%s" + '' + ); #pypy2NoLibs = expectSuccess (writePyPy2 "test-writers-pypy2-no-libs" {} '' # print("success") #''); - python3NoLibs = expectSuccess (writePython3 "test-writers-python3-no-libs" {} '' - print("success") - ''); + python3NoLibs = expectSuccess ( + writePython3 "test-writers-python3-no-libs" { } '' + print("success") + '' + ); - pypy3NoLibs = expectSuccess (writePyPy3 "test-writers-pypy3-no-libs" {} '' - print("success") - ''); + pypy3NoLibs = expectSuccess ( + writePyPy3 "test-writers-pypy3-no-libs" { } '' + print("success") + '' + ); - fsharpNoNugetDeps = expectSuccess (writeFSharp "test-writers-fsharp-no-nuget-deps" '' - printfn "success" - ''); + fsharpNoNugetDeps = expectSuccess ( + writeFSharp "test-writers-fsharp-no-nuget-deps" '' + printfn "success" + '' + ); - luaNoLibs = expectSuccess (writeLua "test-writers-lua-no-libs" {} '' - print("success") - ''); + luaNoLibs = expectSuccess ( + writeLua "test-writers-lua-no-libs" { } '' + print("success") + '' + ); - rubyNoLibs = expectSuccess (writeRuby "test-writers-ruby-no-libs" {} '' - puts "success" - ''); + rubyNoLibs = expectSuccess ( + writeRuby "test-writers-ruby-no-libs" { } '' + puts "success" + '' + ); }; path = recurseIntoAttrs { - bash = expectSuccess (writeBash "test-writers-bash-path" (writeText "test" '' - if [[ "test" == "test" ]]; then echo "success"; fi - '')); + bash = expectSuccess ( + writeBash "test-writers-bash-path" ( + writeText "test" '' + if [[ "test" == "test" ]]; then echo "success"; fi + '' + ) + ); - haskell = expectSuccess (writeHaskell "test-writers-haskell-path" { libraries = [ haskellPackages.acme-default ]; } (writeText "test" '' - import Data.Default + haskell = expectSuccess ( + writeHaskell "test-writers-haskell-path" { libraries = [ haskellPackages.acme-default ]; } ( + writeText "test" '' + import Data.Default - int :: Int - int = def + int :: Int + int = def - main :: IO () - main = case int of - 18871 -> putStrLn $ id "success" - _ -> print "fail" - '')); + main :: IO () + main = case int of + 18871 -> putStrLn $ id "success" + _ -> print "fail" + '' + ) + ); }; data = { @@ -404,16 +477,18 @@ recurseIntoAttrs { '' ); - no-empty-wrapper = let - bin = writeBashBin "bin" { makeWrapperArgs = []; } ''true''; - in runCommand "run-test-writers-wrapping-no-empty-wrapper" {} '' - ls -A ${bin}/bin - if [ $(ls -A ${bin}/bin | wc -l) -eq 1 ]; then - touch $out - else - echo "Error: Empty wrapper was created" >&2 - exit 1 - fi - ''; + no-empty-wrapper = + let + bin = writeBashBin "bin" { makeWrapperArgs = [ ]; } ''true''; + in + runCommand "run-test-writers-wrapping-no-empty-wrapper" { } '' + ls -A ${bin}/bin + if [ $(ls -A ${bin}/bin | wc -l) -eq 1 ]; then + touch $out + else + echo "Error: Empty wrapper was created" >&2 + exit 1 + fi + ''; }; } diff --git a/pkgs/by-name/aa/aalib/default.nix b/pkgs/by-name/aa/aalib/default.nix index 903364e..84e4609 100644 --- a/pkgs/by-name/aa/aalib/default.nix +++ b/pkgs/by-name/aa/aalib/default.nix @@ -1,4 +1,10 @@ -{lib, stdenv, fetchurl, ncurses, automake}: +{ + lib, + stdenv, + fetchurl, + ncurses, + automake, +}: stdenv.mkDerivation rec { pname = "aalib"; @@ -9,10 +15,17 @@ stdenv.mkDerivation rec { sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"; }; - outputs = [ "bin" "dev" "out" "man" "info" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "info" + ]; setOutputFlags = false; # Doesn't support all the flags - patches = [ ./clang.patch ] # Fix implicit `int` on `main` error with newer versions of clang + patches = + [ ./clang.patch ] # Fix implicit `int` on `main` error with newer versions of clang ++ lib.optionals stdenv.isDarwin [ ./darwin.patch ]; # The fuloong2f is not supported by aalib still @@ -27,7 +40,10 @@ stdenv.mkDerivation rec { buildInputs = [ ncurses ]; - configureFlags = [ "--without-x" "--with-ncurses=${ncurses.dev}" ]; + configureFlags = [ + "--without-x" + "--with-ncurses=${ncurses.dev}" + ]; postInstall = '' mkdir -p $dev/bin diff --git a/pkgs/by-name/ab/abseil-cpp/202103.nix b/pkgs/by-name/ab/abseil-cpp/202103.nix index 5929449..0b4912e 100644 --- a/pkgs/by-name/ab/abseil-cpp/202103.nix +++ b/pkgs/by-name/ab/abseil-cpp/202103.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation rec { @@ -18,38 +19,39 @@ stdenv.mkDerivation rec { sha256 = "sha256-fcxPhuI2eL/fnd6nT11p8DpUNwGNaXZmd03yOiZcOT0="; }; - patches = [ - # Use CMAKE_INSTALL_FULL_{LIBDIR,INCLUDEDIR} - # https://github.com/abseil/abseil-cpp/pull/963 - (fetchpatch { - url = "https://github.com/abseil/abseil-cpp/commit/5bfa70c75e621c5d5ec095c8c4c0c050dcb2957e.patch"; - sha256 = "0nhjxqfxpi2pkfinnqvd5m4npf9l1kg39mjx9l3087ajhadaywl5"; - }) + patches = + [ + # Use CMAKE_INSTALL_FULL_{LIBDIR,INCLUDEDIR} + # https://github.com/abseil/abseil-cpp/pull/963 + (fetchpatch { + url = "https://github.com/abseil/abseil-cpp/commit/5bfa70c75e621c5d5ec095c8c4c0c050dcb2957e.patch"; + sha256 = "0nhjxqfxpi2pkfinnqvd5m4npf9l1kg39mjx9l3087ajhadaywl5"; + }) - # Bacport gcc-13 fix: - # https://github.com/abseil/abseil-cpp/pull/1187 - (fetchpatch { - name = "gcc-13.patch"; - url = "https://github.com/abseil/abseil-cpp/commit/36a4b073f1e7e02ed7d1ac140767e36f82f09b7c.patch"; - hash = "sha256-aA7mwGEtv/cQINcawjkukmCvfNuqwUeDFssSiNKPdgg="; - }) - ] ++ lib.optionals stdenv.hostPlatform.isLoongArch64 [ - # https://github.com/abseil/abseil-cpp/pull/1110 - (fetchpatch { - url = "https://github.com/abseil/abseil-cpp/commit/808bc202fc13e85a7948db0d7fb58f0f051200b1.patch"; - sha256 = "sha256-ayY/aV/xWOdEyFSDqV7B5WDGvZ0ASr/aeBeYwP5RZVc="; - }) - ] ++ lib.optionals stdenv.isDarwin [ - # Don’t propagate the path to CoreFoundation. Otherwise, it’s impossible to build packages - # that require a different SDK other than the default one. - ./cmake-core-foundation.patch - ]; + # Bacport gcc-13 fix: + # https://github.com/abseil/abseil-cpp/pull/1187 + (fetchpatch { + name = "gcc-13.patch"; + url = "https://github.com/abseil/abseil-cpp/commit/36a4b073f1e7e02ed7d1ac140767e36f82f09b7c.patch"; + hash = "sha256-aA7mwGEtv/cQINcawjkukmCvfNuqwUeDFssSiNKPdgg="; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isLoongArch64 [ + # https://github.com/abseil/abseil-cpp/pull/1110 + (fetchpatch { + url = "https://github.com/abseil/abseil-cpp/commit/808bc202fc13e85a7948db0d7fb58f0f051200b1.patch"; + sha256 = "sha256-ayY/aV/xWOdEyFSDqV7B5WDGvZ0ASr/aeBeYwP5RZVc="; + }) + ] + ++ lib.optionals stdenv.isDarwin [ + # Don’t propagate the path to CoreFoundation. Otherwise, it’s impossible to build packages + # that require a different SDK other than the default one. + ./cmake-core-foundation.patch + ]; cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/ab/abseil-cpp/202111.nix b/pkgs/by-name/ab/abseil-cpp/202111.nix index 0c1a173..e87ad89 100644 --- a/pkgs/by-name/ab/abseil-cpp/202111.nix +++ b/pkgs/by-name/ab/abseil-cpp/202111.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation rec { @@ -26,9 +27,7 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/ab/abseil-cpp/202206.nix b/pkgs/by-name/ab/abseil-cpp/202206.nix index 5dda078..988bf38 100644 --- a/pkgs/by-name/ab/abseil-cpp/202206.nix +++ b/pkgs/by-name/ab/abseil-cpp/202206.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation rec { @@ -25,9 +26,7 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/ab/abseil-cpp/202301.nix b/pkgs/by-name/ab/abseil-cpp/202301.nix index b2d4f43..061243c 100644 --- a/pkgs/by-name/ab/abseil-cpp/202301.nix +++ b/pkgs/by-name/ab/abseil-cpp/202301.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + gtest, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation (finalAttrs: { @@ -28,9 +29,7 @@ stdenv.mkDerivation (finalAttrs: { "-DABSL_BUILD_TEST_HELPERS=ON" "-DABSL_USE_EXTERNAL_GOOGLETEST=ON" "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; strictDeps = true; diff --git a/pkgs/by-name/ab/abseil-cpp/202308.nix b/pkgs/by-name/ab/abseil-cpp/202308.nix index f3aac7d..ddaf957 100644 --- a/pkgs/by-name/ab/abseil-cpp/202308.nix +++ b/pkgs/by-name/ab/abseil-cpp/202308.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + gtest, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation (finalAttrs: { @@ -22,9 +23,7 @@ stdenv.mkDerivation (finalAttrs: { "-DABSL_BUILD_TEST_HELPERS=ON" "-DABSL_USE_EXTERNAL_GOOGLETEST=ON" "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; strictDeps = true; diff --git a/pkgs/by-name/ab/abseil-cpp/202401.nix b/pkgs/by-name/ab/abseil-cpp/202401.nix index 73e663b..83db65e 100644 --- a/pkgs/by-name/ab/abseil-cpp/202401.nix +++ b/pkgs/by-name/ab/abseil-cpp/202401.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, gtest -, static ? stdenv.hostPlatform.isStatic -, cxxStandard ? null +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + gtest, + static ? stdenv.hostPlatform.isStatic, + cxxStandard ? null, }: stdenv.mkDerivation (finalAttrs: { @@ -22,9 +23,7 @@ stdenv.mkDerivation (finalAttrs: { "-DABSL_BUILD_TEST_HELPERS=ON" "-DABSL_USE_EXTERNAL_GOOGLETEST=ON" "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals (cxxStandard != null) [ - "-DCMAKE_CXX_STANDARD=${cxxStandard}" - ]; + ] ++ lib.optionals (cxxStandard != null) [ "-DCMAKE_CXX_STANDARD=${cxxStandard}" ]; strictDeps = true; diff --git a/pkgs/by-name/ab/abseil-cpp/packages.nix b/pkgs/by-name/ab/abseil-cpp/packages.nix index beca4cb..2cb302b 100644 --- a/pkgs/by-name/ab/abseil-cpp/packages.nix +++ b/pkgs/by-name/ab/abseil-cpp/packages.nix @@ -1,37 +1,46 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { abseil-cpp_202103 = callPackage ./202103.nix { # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; abseil-cpp_202206 = callPackage ./202206.nix { # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; abseil-cpp_202301 = callPackage ./202301.nix { # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; abseil-cpp_202308 = callPackage ./202308.nix { # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; abseil-cpp_202401 = callPackage ./202401.nix { # If abseil-cpp doesn’t have a deployment target of 10.13+, arrow-cpp crashes in libgrpc.dylib. - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; abseil-cpp = abseil-cpp_202401; } diff --git a/pkgs/by-name/ac/acl/default.nix b/pkgs/by-name/ac/acl/default.nix index 7d8a04a..e971399 100644 --- a/pkgs/by-name/ac/acl/default.nix +++ b/pkgs/by-name/ac/acl/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, gettext, attr }: +{ + lib, + stdenv, + fetchurl, + gettext, + attr, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -14,7 +20,13 @@ stdenv.mkDerivation rec { hash = "sha256-XyvbrWKXB6p9hcYj+ZSqih0t7FWnPeUgW6wL9gWKL3w="; }; - outputs = [ "bin" "dev" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "doc" + ]; nativeBuildInputs = [ gettext ]; buildInputs = [ attr ]; diff --git a/pkgs/by-name/al/alsa-lib/default.nix b/pkgs/by-name/al/alsa-lib/default.nix index 50f40cd..a2f2fa5 100644 --- a/pkgs/by-name/al/alsa-lib/default.nix +++ b/pkgs/by-name/al/alsa-lib/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchurl -, alsa-topology-conf -, alsa-ucm-conf -, testers +{ + lib, + stdenv, + fetchurl, + alsa-topology-conf, + alsa-ucm-conf, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -30,7 +31,10 @@ stdenv.mkDerivation (finalAttrs: { ln -s ${alsa-topology-conf}/share/alsa/topology $out/share/alsa ''; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; @@ -45,7 +49,10 @@ stdenv.mkDerivation (finalAttrs: { ''; license = licenses.lgpl21Plus; - pkgConfigModules = [ "alsa" "alsa-topology" ]; + pkgConfigModules = [ + "alsa" + "alsa-topology" + ]; platforms = platforms.linux; maintainers = with maintainers; [ l-as ]; }; diff --git a/pkgs/by-name/ap/apache-httpd/2.4.nix b/pkgs/by-name/ap/apache-httpd/2.4.nix index f2bf67f..b6e26a2 100644 --- a/pkgs/by-name/ap/apache-httpd/2.4.nix +++ b/pkgs/by-name/ap/apache-httpd/2.4.nix @@ -1,25 +1,34 @@ -{ lib -, stdenv -, fetchurl -, perl -, zlib -, apr -, aprutil -, pcre2 -, libiconv -, lynx -, which -, libxcrypt -# for passthru.tests -# , nixosTests -, proxySupport ? true -, sslSupport ? true, openssl -, modTlsSupport ? false, rustls-ffi, Foundation -, http2Support ? true, nghttp2 -, ldapSupport ? true, openldap -, libxml2Support ? true, libxml2 -, brotliSupport ? true, brotli -, luaSupport ? false, lua5 +{ + lib, + stdenv, + fetchurl, + perl, + zlib, + apr, + aprutil, + pcre2, + libiconv, + lynx, + which, + libxcrypt, + # for passthru.tests + # , nixosTests + proxySupport ? true, + sslSupport ? true, + openssl, + modTlsSupport ? false, + rustls-ffi, + Foundation, + http2Support ? true, + nghttp2, + ldapSupport ? true, + openldap, + libxml2Support ? true, + libxml2, + brotliSupport ? true, + brotli, + luaSupport ? false, + lua5, }: stdenv.mkDerivation rec { @@ -32,20 +41,30 @@ stdenv.mkDerivation rec { }; # FIXME: -dev depends on -doc - outputs = [ "out" "dev" "man" "doc" ]; + outputs = [ + "out" + "dev" + "man" + "doc" + ]; setOutputFlags = false; # it would move $out/modules, etc. nativeBuildInputs = [ which ]; - buildInputs = [ perl libxcrypt ] ++ - lib.optional brotliSupport brotli ++ - lib.optional sslSupport openssl ++ - lib.optional modTlsSupport rustls-ffi ++ - lib.optional (modTlsSupport && stdenv.isDarwin) Foundation ++ - lib.optional ldapSupport openldap ++ # there is no --with-ldap flag - lib.optional libxml2Support libxml2 ++ - lib.optional http2Support nghttp2 ++ - lib.optional stdenv.isDarwin libiconv; + buildInputs = + [ + perl + libxcrypt + ] + ++ lib.optional brotliSupport brotli + ++ lib.optional sslSupport openssl + ++ lib.optional modTlsSupport rustls-ffi + ++ lib.optional (modTlsSupport && stdenv.isDarwin) Foundation + ++ lib.optional ldapSupport openldap + # there is no --with-ldap flag + ++ lib.optional libxml2Support libxml2 + ++ lib.optional http2Support nghttp2 + ++ lib.optional stdenv.isDarwin libiconv; postPatch = '' sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|" @@ -86,7 +105,11 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - stripDebugList = [ "lib" "modules" "bin" ]; + stripDebugList = [ + "lib" + "modules" + "bin" + ]; postInstall = '' mkdir -p $doc/share/doc/httpd @@ -106,9 +129,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Apache HTTPD, the world's most popular web server"; - homepage = "https://httpd.apache.org/"; - license = licenses.asl20; - platforms = platforms.linux ++ platforms.darwin; + homepage = "https://httpd.apache.org/"; + license = licenses.asl20; + platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ lovek323 ]; }; } diff --git a/pkgs/by-name/ap/apache-httpd/packages.nix b/pkgs/by-name/ap/apache-httpd/packages.nix index 7cc64bf..0ea9f99 100644 --- a/pkgs/by-name/ap/apache-httpd/packages.nix +++ b/pkgs/by-name/ap/apache-httpd/packages.nix @@ -1,10 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ - apacheHttpd_2_4 = callPackage ./2.4.nix { - inherit (darwin.apple_sdk.frameworks) Foundation; - }; +with pkgs; { + apacheHttpd_2_4 = callPackage ./2.4.nix { inherit (darwin.apple_sdk.frameworks) Foundation; }; apacheHttpd = apacheHttpd_2_4; } diff --git a/pkgs/by-name/ap/apr/default.nix b/pkgs/by-name/ap/apr/default.nix index 6428489..f41a6ac 100644 --- a/pkgs/by-name/ap/apr/default.nix +++ b/pkgs/by-name/ap/apr/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, fetchpatch, buildPackages, autoreconfHook }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + buildPackages, + autoreconfHook, +}: stdenv.mkDerivation rec { pname = "apr"; @@ -9,51 +16,53 @@ stdenv.mkDerivation rec { sha256 = "sha256-/GSN6YPzoqbJ543qHxgGOb0vrWwG1VbUNnpwH+XDVXc="; }; - patches = [ - ./cross-assume-dev-zero-mmappable.patch - ]; + patches = [ ./cross-assume-dev-zero-mmappable.patch ]; # This test needs the net postPatch = '' rm test/testsock.* ''; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; outputBin = "dev"; - preConfigure = - '' - configureFlagsArray+=("--with-installbuilddir=$dev/share/build") - ''; + preConfigure = '' + configureFlagsArray+=("--with-installbuilddir=$dev/share/build") + ''; - configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # For cross builds, provide answers to the configure time tests. - # These answers are valid on x86_64-linux and aarch64-linux. - "ac_cv_file__dev_zero=yes" - "ac_cv_func_setpgrp_void=yes" - "apr_cv_tcp_nodelay_with_cork=yes" - "ac_cv_define_PTHREAD_PROCESS_SHARED=yes" - "apr_cv_process_shared_works=yes" - "apr_cv_mutex_robust_shared=yes" - "ap_cv_atomic_builtins=yes" - "apr_cv_mutex_recursive=yes" - "apr_cv_epoll=yes" - "apr_cv_epoll_create1=yes" - "apr_cv_dup3=yes" - "apr_cv_accept4=yes" - "apr_cv_sock_cloexec=yes" - "ac_cv_struct_rlimit=yes" - "ac_cv_func_sem_open=yes" - "ac_cv_negative_eai=yes" - "apr_cv_gai_addrconfig=yes" - "ac_cv_o_nonblock_inherited=no" - "apr_cv_pthreads_lib=-lpthread" - "CC_FOR_BUILD=${buildPackages.stdenv.cc}/bin/cc" - ] ++ lib.optionals (stdenv.hostPlatform.system == "i686-cygwin") [ - # Including the Windows headers breaks unistd.h. - # Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2 - "ac_cv_header_windows_h=no" - ]; + configureFlags = + lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # For cross builds, provide answers to the configure time tests. + # These answers are valid on x86_64-linux and aarch64-linux. + "ac_cv_file__dev_zero=yes" + "ac_cv_func_setpgrp_void=yes" + "apr_cv_tcp_nodelay_with_cork=yes" + "ac_cv_define_PTHREAD_PROCESS_SHARED=yes" + "apr_cv_process_shared_works=yes" + "apr_cv_mutex_robust_shared=yes" + "ap_cv_atomic_builtins=yes" + "apr_cv_mutex_recursive=yes" + "apr_cv_epoll=yes" + "apr_cv_epoll_create1=yes" + "apr_cv_dup3=yes" + "apr_cv_accept4=yes" + "apr_cv_sock_cloexec=yes" + "ac_cv_struct_rlimit=yes" + "ac_cv_func_sem_open=yes" + "ac_cv_negative_eai=yes" + "apr_cv_gai_addrconfig=yes" + "ac_cv_o_nonblock_inherited=no" + "apr_cv_pthreads_lib=-lpthread" + "CC_FOR_BUILD=${buildPackages.stdenv.cc}/bin/cc" + ] + ++ lib.optionals (stdenv.hostPlatform.system == "i686-cygwin") [ + # Including the Windows headers breaks unistd.h. + # Based on ftp://sourceware.org/pub/cygwin/release/libapr1/libapr1-1.3.8-2-src.tar.bz2 + "ac_cv_header_windows_h=no" + ]; # - Update libtool for macOS 11 support # - Regenerate for cross fix patch diff --git a/pkgs/by-name/ap/aprutil/default.nix b/pkgs/by-name/ap/aprutil/default.nix index bd32ad4..ac79452 100644 --- a/pkgs/by-name/ap/aprutil/default.nix +++ b/pkgs/by-name/ap/aprutil/default.nix @@ -1,9 +1,21 @@ -{ lib, stdenv, fetchurl, makeWrapper, apr, expat, gnused -, sslSupport ? true, openssl -, bdbSupport ? true, db -, ldapSupport ? !stdenv.isCygwin, openldap -, libiconv, libxcrypt -, cyrus_sasl, autoreconfHook +{ + lib, + stdenv, + fetchurl, + makeWrapper, + apr, + expat, + gnused, + sslSupport ? true, + openssl, + bdbSupport ? true, + db, + ldapSupport ? !stdenv.isCygwin, + openldap, + libiconv, + libxcrypt, + cyrus_sasl, + autoreconfHook, }: assert sslSupport -> openssl != null; @@ -27,35 +39,57 @@ stdenv.mkDerivation rec { NIX_CFLAGS_LINK = [ "-lcrypt" ]; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; outputBin = "dev"; - nativeBuildInputs = [ makeWrapper autoreconfHook ]; + nativeBuildInputs = [ + makeWrapper + autoreconfHook + ]; - configureFlags = [ "--with-apr=${apr.dev}" "--with-expat=${expat.dev}" ] + configureFlags = + [ + "--with-apr=${apr.dev}" + "--with-expat=${expat.dev}" + ] ++ lib.optional (!stdenv.isCygwin) "--with-crypto" ++ lib.optional sslSupport "--with-openssl=${openssl.dev}" ++ lib.optional bdbSupport "--with-berkeley-db=${db.dev}" ++ lib.optional ldapSupport "--with-ldap=ldap" - ++ lib.optionals stdenv.isCygwin - [ "--without-pgsql" "--without-sqlite2" "--without-sqlite3" - "--without-freetds" "--without-berkeley-db" "--without-crypto" ] - ; + ++ lib.optionals stdenv.isCygwin [ + "--without-pgsql" + "--without-sqlite2" + "--without-sqlite3" + "--without-freetds" + "--without-berkeley-db" + "--without-crypto" + ]; - postConfigure = '' - echo '#define APR_HAVE_CRYPT_H 1' >> confdefs.h - '' + - # For some reason, db version 6.9 is selected when cross-compiling. - # It's unclear as to why, it requires someone with more autotools / configure knowledge to go deeper into that. - # Always replacing the link flag with a generic link flag seems to help though, so let's do that for now. - lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - substituteInPlace Makefile \ - --replace "-ldb-6.9" "-ldb" - substituteInPlace apu-1-config \ - --replace "-ldb-6.9" "-ldb" - ''; + postConfigure = + '' + echo '#define APR_HAVE_CRYPT_H 1' >> confdefs.h + '' + + + # For some reason, db version 6.9 is selected when cross-compiling. + # It's unclear as to why, it requires someone with more autotools / configure knowledge to go deeper into that. + # Always replacing the link flag with a generic link flag seems to help though, so let's do that for now. + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + substituteInPlace Makefile \ + --replace "-ldb-6.9" "-ldb" + substituteInPlace apu-1-config \ + --replace "-ldb-6.9" "-ldb" + ''; - propagatedBuildInputs = [ apr expat libiconv libxcrypt ] + propagatedBuildInputs = + [ + apr + expat + libiconv + libxcrypt + ] ++ lib.optional sslSupport openssl ++ lib.optional bdbSupport db ++ lib.optional ldapSupport openldap diff --git a/pkgs/by-name/as/asciidoc/default.nix b/pkgs/by-name/as/asciidoc/default.nix index 69b0ccf..152740d 100644 --- a/pkgs/by-name/as/asciidoc/default.nix +++ b/pkgs/by-name/as/asciidoc/default.nix @@ -1,47 +1,63 @@ -{ fetchurl, lib, stdenv, python3 -, fetchFromGitHub, autoreconfHook -, installShellFiles -, enableStandardFeatures ? false -, sourceHighlight -, highlight -, pygments -, graphviz -, texliveMinimal -, dblatexFull -, libxslt -, w3m -, lynx -, imagemagick -, lilypond -, libxml2 -, docbook_xml_dtd_45 -, docbook_xsl_ns -, docbook_xsl -, fop -, epubcheck -, gnused -, coreutils +{ + fetchurl, + lib, + stdenv, + python3, + fetchFromGitHub, + autoreconfHook, + installShellFiles, + enableStandardFeatures ? false, + sourceHighlight, + highlight, + pygments, + graphviz, + texliveMinimal, + dblatexFull, + libxslt, + w3m, + lynx, + imagemagick, + lilypond, + libxml2, + docbook_xml_dtd_45, + docbook_xsl_ns, + docbook_xsl, + fop, + epubcheck, + gnused, + coreutils, -# if true, enable all the below filters and backends -, enableExtraPlugins ? false + # if true, enable all the below filters and backends + enableExtraPlugins ? false, -# unzip is needed to extract filter and backend plugins -, unzip -# filters -, enableDitaaFilter ? false, jre -, enableMscgenFilter ? false, mscgen -, enableDiagFilter ? false, blockdiag, seqdiag, actdiag, nwdiag -, enableQrcodeFilter ? false, qrencode -, enableMatplotlibFilter ? false, matplotlib, numpy -, enableAafigureFilter ? false, aafigure, recursive-pth-loader -# backends -, enableDeckjsBackend ? false -, enableOdfBackend ? false + # unzip is needed to extract filter and backend plugins + unzip, + # filters + enableDitaaFilter ? false, + jre, + enableMscgenFilter ? false, + mscgen, + enableDiagFilter ? false, + blockdiag, + seqdiag, + actdiag, + nwdiag, + enableQrcodeFilter ? false, + qrencode, + enableMatplotlibFilter ? false, + matplotlib, + numpy, + enableAafigureFilter ? false, + aafigure, + recursive-pth-loader, + # backends + enableDeckjsBackend ? false, + enableOdfBackend ? false, -# java is problematic on some platforms, where it is unfree -, enableJava ? true + # java is problematic on some platforms, where it is unfree + enableJava ? true, -, buildPackages + buildPackages, }: let @@ -86,11 +102,15 @@ let }; # there are no archives or tags, using latest commit in master branch as per 2013-09-22 - matplotlibFilterSrc = let commit = "75f0d009629f93f33fab04b83faca20cc35dd358"; in fetchurl { - name = "mplw-${commit}.tar.gz"; - url = "https://api.github.com/repos/lvv/mplw/tarball/${commit}"; - sha256 = "0yfhkm2dr8gnp0fcg25x89hwiymkri2m5cyqzmzragzwj0hbmcf1"; - }; + matplotlibFilterSrc = + let + commit = "75f0d009629f93f33fab04b83faca20cc35dd358"; + in + fetchurl { + name = "mplw-${commit}.tar.gz"; + url = "https://api.github.com/repos/lvv/mplw/tarball/${commit}"; + sha256 = "0yfhkm2dr8gnp0fcg25x89hwiymkri2m5cyqzmzragzwj0hbmcf1"; + }; aafigureFilterSrc = fetchurl { url = "https://asciidoc-aafigure-filter.googlecode.com/files/aafigure-filter-1.1.zip"; @@ -117,8 +137,10 @@ let sha256 = "08ya4bskygzqkfqwjllpg31qc5k08xp2k78z9b2480g8y57bfy10"; }; -in python3.pkgs.buildPythonApplication rec { - pname = "asciidoc" +in +python3.pkgs.buildPythonApplication rec { + pname = + "asciidoc" + lib.optionalString enableStandardFeatures "-full" + lib.optionalString enableExtraPlugins "-with-plugins"; version = "10.2.0"; @@ -137,118 +159,142 @@ in python3.pkgs.buildPythonApplication rec { ]; # install filters early, so their shebangs are patched too - postPatch = with lib; '' - mkdir -p "$out/etc/asciidoc/filters" - mkdir -p "$out/etc/asciidoc/backends" - '' + optionalString _enableDitaaFilter '' - echo "Extracting ditaa filter" - unzip -d "$out/etc/asciidoc/filters/ditaa" "${ditaaFilterSrc}" - sed -i -e "s|java -jar|${jre}/bin/java -jar|" \ - "$out/etc/asciidoc/filters/ditaa/ditaa2img.py" - '' + optionalString _enableMscgenFilter '' - echo "Extracting mscgen filter" - unzip -d "$out/etc/asciidoc/filters/mscgen" "${mscgenFilterSrc}" - sed -i -e "s|filter-wrapper.py mscgen|filter-wrapper.py ${mscgen}/bin/mscgen|" \ - "$out/etc/asciidoc/filters/mscgen/mscgen-filter.conf" - '' + optionalString _enableDiagFilter '' - echo "Extracting diag filter" - unzip -d "$out/etc/asciidoc/filters/diag" "${diagFilterSrc}" - sed -i \ - -e "s|filter='blockdiag|filter=\'${blockdiag}/bin/blockdiag|" \ - -e "s|filter='seqdiag|filter=\'${seqdiag}/bin/seqdiag|" \ - -e "s|filter='actdiag|filter=\'${actdiag}/bin/actdiag|" \ - -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \ - -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \ - "$out/etc/asciidoc/filters/diag/diag-filter.conf" - '' + optionalString _enableQrcodeFilter '' - echo "Extracting qrcode filter" - unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}" - sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \ - "$out/etc/asciidoc/filters/qrcode/qrcode2img.py" - '' + optionalString _enableMatplotlibFilter '' - echo "Extracting mpl (matplotlib) filter" - mkdir -p "$out/etc/asciidoc/filters/mpl" - tar xvf "${matplotlibFilterSrc}" -C "$out/etc/asciidoc/filters/mpl" --strip-components=1 - # Stop asciidoc from loading mpl/.old/chart-filter.conf - rm -rf "$out/etc/asciidoc/filters/mpl/.old" - # Add matplotlib and numpy to sys.path - matplotlib_path="$(toPythonPath ${matplotlib})" - numpy_path="$(toPythonPath ${numpy})" - sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \ - "$out/etc/asciidoc/filters/mpl/mplw.py" - '' + optionalString _enableAafigureFilter '' - echo "Extracting aafigure filter" - unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}" - # Add aafigure to sys.path (and it needs recursive-pth-loader) - pth_loader_path="$(toPythonPath ${recursive-pth-loader})" - aafigure_path="$(toPythonPath ${aafigure})" - sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \ - "$out/etc/asciidoc/filters/aafigure/aafig2img.py" - '' + optionalString _enableDeckjsBackend '' - echo "Extracting deckjs backend" - unzip -d "$out/etc/asciidoc/backends/deckjs" "${deckjsBackendSrc}" - '' + optionalString _enableOdfBackend '' - echo "Extracting odf backend (odt + odp)" - unzip -d "$out/etc/asciidoc/backends/odt" "${odtBackendSrc}" - unzip -d "$out/etc/asciidoc/backends/odp" "${odpBackendSrc}" - # The odt backend has a TODO note about removing this hardcoded path, but - # the odp backend already has that fix. Copy it here until fixed upstream. - sed -i "s|'/etc/asciidoc/backends/odt/asciidoc.ott'|os.path.dirname(__file__),'asciidoc.ott'|" \ - "$out/etc/asciidoc/backends/odt/a2x-backend.py" - '' + (if enableStandardFeatures then '' - sed -e "s|dot|${graphviz}/bin/dot|g" \ - -e "s|neato|${graphviz}/bin/neato|g" \ - -e "s|twopi|${graphviz}/bin/twopi|g" \ - -e "s|circo|${graphviz}/bin/circo|g" \ - -e "s|fdp|${graphviz}/bin/fdp|g" \ - -i "asciidoc/resources/filters/graphviz/graphviz2png.py" + postPatch = + with lib; + '' + mkdir -p "$out/etc/asciidoc/filters" + mkdir -p "$out/etc/asciidoc/backends" + '' + + optionalString _enableDitaaFilter '' + echo "Extracting ditaa filter" + unzip -d "$out/etc/asciidoc/filters/ditaa" "${ditaaFilterSrc}" + sed -i -e "s|java -jar|${jre}/bin/java -jar|" \ + "$out/etc/asciidoc/filters/ditaa/ditaa2img.py" + '' + + optionalString _enableMscgenFilter '' + echo "Extracting mscgen filter" + unzip -d "$out/etc/asciidoc/filters/mscgen" "${mscgenFilterSrc}" + sed -i -e "s|filter-wrapper.py mscgen|filter-wrapper.py ${mscgen}/bin/mscgen|" \ + "$out/etc/asciidoc/filters/mscgen/mscgen-filter.conf" + '' + + optionalString _enableDiagFilter '' + echo "Extracting diag filter" + unzip -d "$out/etc/asciidoc/filters/diag" "${diagFilterSrc}" + sed -i \ + -e "s|filter='blockdiag|filter=\'${blockdiag}/bin/blockdiag|" \ + -e "s|filter='seqdiag|filter=\'${seqdiag}/bin/seqdiag|" \ + -e "s|filter='actdiag|filter=\'${actdiag}/bin/actdiag|" \ + -e "s|filter='nwdiag|filter=\'${nwdiag}/bin/nwdiag|" \ + -e "s|filter='packetdiag|filter=\'${nwdiag}/bin/packetdiag|" \ + "$out/etc/asciidoc/filters/diag/diag-filter.conf" + '' + + optionalString _enableQrcodeFilter '' + echo "Extracting qrcode filter" + unzip -d "$out/etc/asciidoc/filters/qrcode" "${qrcodeFilterSrc}" + sed -i -e "s|systemcmd('qrencode|systemcmd('${qrencode}/bin/qrencode|" \ + "$out/etc/asciidoc/filters/qrcode/qrcode2img.py" + '' + + optionalString _enableMatplotlibFilter '' + echo "Extracting mpl (matplotlib) filter" + mkdir -p "$out/etc/asciidoc/filters/mpl" + tar xvf "${matplotlibFilterSrc}" -C "$out/etc/asciidoc/filters/mpl" --strip-components=1 + # Stop asciidoc from loading mpl/.old/chart-filter.conf + rm -rf "$out/etc/asciidoc/filters/mpl/.old" + # Add matplotlib and numpy to sys.path + matplotlib_path="$(toPythonPath ${matplotlib})" + numpy_path="$(toPythonPath ${numpy})" + sed -i "/^import.*sys/asys.path.append(\"$matplotlib_path\"); sys.path.append(\"$numpy_path\");" \ + "$out/etc/asciidoc/filters/mpl/mplw.py" + '' + + optionalString _enableAafigureFilter '' + echo "Extracting aafigure filter" + unzip -d "$out/etc/asciidoc/filters/aafigure" "${aafigureFilterSrc}" + # Add aafigure to sys.path (and it needs recursive-pth-loader) + pth_loader_path="$(toPythonPath ${recursive-pth-loader})" + aafigure_path="$(toPythonPath ${aafigure})" + sed -i "/^import.*sys/asys.path.append(\"$pth_loader_path\"); sys.path.append(\"$aafigure_path\"); import sitecustomize" \ + "$out/etc/asciidoc/filters/aafigure/aafig2img.py" + '' + + optionalString _enableDeckjsBackend '' + echo "Extracting deckjs backend" + unzip -d "$out/etc/asciidoc/backends/deckjs" "${deckjsBackendSrc}" + '' + + optionalString _enableOdfBackend '' + echo "Extracting odf backend (odt + odp)" + unzip -d "$out/etc/asciidoc/backends/odt" "${odtBackendSrc}" + unzip -d "$out/etc/asciidoc/backends/odp" "${odpBackendSrc}" + # The odt backend has a TODO note about removing this hardcoded path, but + # the odp backend already has that fix. Copy it here until fixed upstream. + sed -i "s|'/etc/asciidoc/backends/odt/asciidoc.ott'|os.path.dirname(__file__),'asciidoc.ott'|" \ + "$out/etc/asciidoc/backends/odt/a2x-backend.py" + '' + + ( + if enableStandardFeatures then + '' + sed -e "s|dot|${graphviz}/bin/dot|g" \ + -e "s|neato|${graphviz}/bin/neato|g" \ + -e "s|twopi|${graphviz}/bin/twopi|g" \ + -e "s|circo|${graphviz}/bin/circo|g" \ + -e "s|fdp|${graphviz}/bin/fdp|g" \ + -i "asciidoc/resources/filters/graphviz/graphviz2png.py" - sed -e "s|run('latex|run('${texlive}/bin/latex|g" \ - -e "s|cmd = 'dvipng'|cmd = '${texlive}/bin/dvipng'|g" \ - -e "s|cmd = 'dvisvgm'|cmd = '${texlive}/bin/dvisvgm'|g" \ - -i "asciidoc/resources/filters/latex/latex2img.py" + sed -e "s|run('latex|run('${texlive}/bin/latex|g" \ + -e "s|cmd = 'dvipng'|cmd = '${texlive}/bin/dvipng'|g" \ + -e "s|cmd = 'dvisvgm'|cmd = '${texlive}/bin/dvisvgm'|g" \ + -i "asciidoc/resources/filters/latex/latex2img.py" - sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \ - -e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \ - -e "s|run('convert|run('${imagemagick.out}/bin/convert|g" \ - -i "asciidoc/resources/filters/music/music2png.py" + sed -e "s|run('abc2ly|run('${lilypond}/bin/abc2ly|g" \ + -e "s|run('lilypond|run('${lilypond}/bin/lilypond|g" \ + -e "s|run('convert|run('${imagemagick.out}/bin/convert|g" \ + -i "asciidoc/resources/filters/music/music2png.py" - sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \ - -e 's|filter="highlight|filter="${highlight}/bin/highlight|' \ - -e 's|filter="pygmentize|filter="${pygments}/bin/pygmentize|' \ - -i "asciidoc/resources/filters/source/source-highlight-filter.conf" + sed -e 's|filter="source-highlight|filter="${sourceHighlight}/bin/source-highlight|' \ + -e 's|filter="highlight|filter="${highlight}/bin/highlight|' \ + -e 's|filter="pygmentize|filter="${pygments}/bin/pygmentize|' \ + -i "asciidoc/resources/filters/source/source-highlight-filter.conf" - # ENV is custom environment passed to programs that a2x invokes. Here we - # use it to work around an impurity in the tetex package; tetex tools - # cannot find their neighbours (e.g. pdflatex doesn't find mktextfm). - # We can remove PATH= when those impurities are fixed. - # TODO: Is this still necessary when using texlive? - sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${lib.makeBinPath [ texlive coreutils gnused ]}', **(dict(filter(lambda v: v[0] == 'SOURCE_DATE_EPOCH', os.environ.items()))))|" \ - -e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \ - -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \ - -e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \ - ${optionalString enableJava ''-e "s|^FOP =.*|FOP = '${fop}/bin/fop'|"''} \ - -e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \ - -e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \ - -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ - -e "s|^EPUBCHECK =.*|EPUBCHECK = '${epubcheck}/bin/epubcheck'|" \ - -i asciidoc/a2x.py - '' else '' - sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', **(dict(filter(lambda v: v[0] == 'SOURCE_DATE_EPOCH', os.environ.items()))))|" \ - -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \ - -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ - -i asciidoc/a2x.py - '') + '' - # Fix tests - for f in $(grep -R --files-with-matches "2002-11-25") ; do - substituteInPlace $f --replace "2002-11-25" "1980-01-02" - substituteInPlace $f --replace "00:37:42" "00:00:00" - done - '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - # We want to use asciidoc from the build platform to build the documentation. - substituteInPlace Makefile.in \ - --replace "python3 -m asciidoc.a2x" "${buildPackages.asciidoc}/bin/a2x" - ''; + # ENV is custom environment passed to programs that a2x invokes. Here we + # use it to work around an impurity in the tetex package; tetex tools + # cannot find their neighbours (e.g. pdflatex doesn't find mktextfm). + # We can remove PATH= when those impurities are fixed. + # TODO: Is this still necessary when using texlive? + sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', PATH='${ + lib.makeBinPath [ + texlive + coreutils + gnused + ] + }', **(dict(filter(lambda v: v[0] == 'SOURCE_DATE_EPOCH', os.environ.items()))))|" \ + -e "s|^ASCIIDOC =.*|ASCIIDOC = '$out/bin/asciidoc'|" \ + -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \ + -e "s|^DBLATEX =.*|DBLATEX = '${dblatexFull}/bin/dblatex'|" \ + ${optionalString enableJava ''-e "s|^FOP =.*|FOP = '${fop}/bin/fop'|"''} \ + -e "s|^W3M =.*|W3M = '${w3m}/bin/w3m'|" \ + -e "s|^LYNX =.*|LYNX = '${lynx}/bin/lynx'|" \ + -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ + -e "s|^EPUBCHECK =.*|EPUBCHECK = '${epubcheck}/bin/epubcheck'|" \ + -i asciidoc/a2x.py + '' + else + '' + sed -e "s|^ENV =.*|ENV = dict(XML_CATALOG_FILES='${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml ${docbook_xsl_ns}/xml/xsl/docbook/catalog.xml ${docbook_xsl}/xml/xsl/docbook/catalog.xml', **(dict(filter(lambda v: v[0] == 'SOURCE_DATE_EPOCH', os.environ.items()))))|" \ + -e "s|^XSLTPROC =.*|XSLTPROC = '${libxslt.bin}/bin/xsltproc'|" \ + -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ + -i asciidoc/a2x.py + '' + ) + + '' + # Fix tests + for f in $(grep -R --files-with-matches "2002-11-25") ; do + substituteInPlace $f --replace "2002-11-25" "1980-01-02" + substituteInPlace $f --replace "00:37:42" "00:00:00" + done + '' + + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + # We want to use asciidoc from the build platform to build the documentation. + substituteInPlace Makefile.in \ + --replace "python3 -m asciidoc.a2x" "${buildPackages.asciidoc}/bin/a2x" + ''; postBuild = '' make manpages @@ -283,13 +329,16 @@ in python3.pkgs.buildPythonApplication rec { the backend output markups (which can be almost any type of SGML/XML markup) can be customized and extended by the user. ''; - sourceProvenance = with sourceTypes; [ - fromSource - ] ++ lib.optional _enableDitaaFilter binaryBytecode; + sourceProvenance = + with sourceTypes; + [ fromSource ] ++ lib.optional _enableDitaaFilter binaryBytecode; homepage = "https://asciidoc-py.github.io/"; changelog = "https://github.com/asciidoc-py/asciidoc-py/blob/${version}/CHANGELOG.adoc"; license = licenses.gpl2Plus; platforms = platforms.unix; - maintainers = with maintainers; [ bjornfor dotlambda ]; + maintainers = with maintainers; [ + bjornfor + dotlambda + ]; }; } diff --git a/pkgs/by-name/as/asciidoc/packages.nix b/pkgs/by-name/as/asciidoc/packages.nix index 9d71b27..c3ff5ba 100644 --- a/pkgs/by-name/as/asciidoc/packages.nix +++ b/pkgs/by-name/as/asciidoc/packages.nix @@ -1,17 +1,20 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { asciidoc = callPackage ./. { - inherit (python3.pkgs) pygments matplotlib numpy aafigure recursive-pth-loader; + inherit (python3.pkgs) + pygments + matplotlib + numpy + aafigure + recursive-pth-loader + ; w3m = w3m-batch; enableStandardFeatures = false; }; - asciidoc-full = asciidoc.override { - enableStandardFeatures = true; - }; + asciidoc-full = asciidoc.override { enableStandardFeatures = true; }; asciidoc-full-with-plugins = asciidoc.override { enableStandardFeatures = true; diff --git a/pkgs/by-name/at/attr/default.nix b/pkgs/by-name/at/attr/default.nix index 4815497..9de27c0 100644 --- a/pkgs/by-name/at/attr/default.nix +++ b/pkgs/by-name/at/attr/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, gettext }: +{ + lib, + stdenv, + fetchurl, + gettext, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -14,7 +19,13 @@ stdenv.mkDerivation rec { sha256 = "sha256-Ob9nRS+kHQlIwhl2AQU/SLPXigKTiXNDMqYwmmgMbIc="; }; - outputs = [ "bin" "dev" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "doc" + ]; nativeBuildInputs = [ gettext ]; diff --git a/pkgs/by-name/au/audit/default.nix b/pkgs/by-name/au/audit/default.nix index 1e941a1..35729af 100644 --- a/pkgs/by-name/au/audit/default.nix +++ b/pkgs/by-name/au/audit/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoreconfHook -, bash -, buildPackages -, libtool -, linuxHeaders -, python3 -, swig +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, + bash, + buildPackages, + libtool, + linuxHeaders, + python3, + swig, -# Enabling python support while cross compiling would be possible, but the -# configure script tries executing python to gather info instead of relying on -# python3-config exclusively -, enablePython ? stdenv.hostPlatform == stdenv.buildPlatform, + # Enabling python support while cross compiling would be possible, but the + # configure script tries executing python to gather info instead of relying on + # python3-config exclusively + enablePython ? stdenv.hostPlatform == stdenv.buildPlatform, }: stdenv.mkDerivation (finalAttrs: { @@ -31,25 +32,25 @@ stdenv.mkDerivation (finalAttrs: { "${linuxHeaders}/include/linux/audit.h" ''; - outputs = [ "bin" "dev" "out" "man" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + ]; strictDeps = true; - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - autoreconfHook - ] - ++ lib.optionals enablePython [ - python3 - swig - ]; + nativeBuildInputs = + [ autoreconfHook ] + ++ lib.optionals enablePython [ + python3 + swig + ]; - buildInputs = [ - bash - ]; + buildInputs = [ bash ]; configureFlags = [ # z/OS plugin is not useful on Linux, and pulls in an extra openldap diff --git a/pkgs/by-name/au/autoconf-archive/default.nix b/pkgs/by-name/au/autoconf-archive/default.nix index 3fbfabc..2d2c813 100644 --- a/pkgs/by-name/au/autoconf-archive/default.nix +++ b/pkgs/by-name/au/autoconf-archive/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, xz }: +{ + lib, + stdenv, + fetchurl, + xz, +}: stdenv.mkDerivation rec { pname = "autoconf-archive"; diff --git a/pkgs/by-name/au/autoconf/2.13.nix b/pkgs/by-name/au/autoconf/2.13.nix index 8fba52a..e829c1c 100644 --- a/pkgs/by-name/au/autoconf/2.13.nix +++ b/pkgs/by-name/au/autoconf/2.13.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, m4, perl }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, +}: stdenv.mkDerivation rec { pname = "autoconf"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh"; }; - nativeBuildInputs = [ m4 perl ]; + nativeBuildInputs = [ + m4 + perl + ]; strictDeps = true; doCheck = true; diff --git a/pkgs/by-name/au/autoconf/2.64.nix b/pkgs/by-name/au/autoconf/2.64.nix index daf026d..679aa29 100644 --- a/pkgs/by-name/au/autoconf/2.64.nix +++ b/pkgs/by-name/au/autoconf/2.64.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, m4, perl }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, +}: stdenv.mkDerivation rec { pname = "autoconf"; @@ -10,7 +16,10 @@ stdenv.mkDerivation rec { }; strictDeps = true; - nativeBuildInputs = [ m4 perl ]; + nativeBuildInputs = [ + m4 + perl + ]; buildInputs = [ m4 ]; # Work around a known issue in Cygwin. See diff --git a/pkgs/by-name/au/autoconf/2.69.nix b/pkgs/by-name/au/autoconf/2.69.nix index 870b0ae..a71c934 100644 --- a/pkgs/by-name/au/autoconf/2.69.nix +++ b/pkgs/by-name/au/autoconf/2.69.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, m4, perl }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, +}: stdenv.mkDerivation rec { pname = "autoconf"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"; }; - nativeBuildInputs = [ m4 perl ]; + nativeBuildInputs = [ + m4 + perl + ]; buildInputs = [ m4 ]; # Work around a known issue in Cygwin. See diff --git a/pkgs/by-name/au/autoconf/2.71.nix b/pkgs/by-name/au/autoconf/2.71.nix index 1fcb819..829a57e 100644 --- a/pkgs/by-name/au/autoconf/2.71.nix +++ b/pkgs/by-name/au/autoconf/2.71.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, m4, perl, texinfo }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, + texinfo, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -8,7 +15,10 @@ stdenv.mkDerivation rec { pname = "autoconf"; version = "2.71"; - outputs = [ "out" "doc" ]; + outputs = [ + "out" + "doc" + ]; src = fetchurl { url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; @@ -21,7 +31,11 @@ stdenv.mkDerivation rec { ]; strictDeps = true; - nativeBuildInputs = [ m4 perl texinfo ]; + nativeBuildInputs = [ + m4 + perl + texinfo + ]; buildInputs = [ m4 ]; postBuild = " make html @@ -44,7 +58,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # Make the Autotest test suite run in parallel. - preCheck ='' + preCheck = '' export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" ''; diff --git a/pkgs/by-name/au/autoconf/default.nix b/pkgs/by-name/au/autoconf/default.nix index 8039e36..23d0b0c 100644 --- a/pkgs/by-name/au/autoconf/default.nix +++ b/pkgs/by-name/au/autoconf/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, m4, perl, texinfo }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, + texinfo, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -8,7 +15,10 @@ stdenv.mkDerivation rec { pname = "autoconf"; version = "2.72"; - outputs = [ "out" "doc" ]; + outputs = [ + "out" + "doc" + ]; src = fetchurl { url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz"; @@ -16,7 +26,11 @@ stdenv.mkDerivation rec { }; strictDeps = true; - nativeBuildInputs = [ m4 perl texinfo ]; + nativeBuildInputs = [ + m4 + perl + texinfo + ]; buildInputs = [ m4 ]; postBuild = " make html @@ -39,7 +53,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # Make the Autotest test suite run in parallel. - preCheck ='' + preCheck = '' export TESTSUITEFLAGS="-j$NIX_BUILD_CORES" ''; diff --git a/pkgs/by-name/au/autoconf/packages.nix b/pkgs/by-name/au/autoconf/packages.nix index 934064c..7166968 100644 --- a/pkgs/by-name/au/autoconf/packages.nix +++ b/pkgs/by-name/au/autoconf/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { autoconf = callPackage ./. { }; autoconf213 = callPackage ./2.13.nix { }; autoconf264 = callPackage ./2.64.nix { }; diff --git a/pkgs/by-name/au/automake/automake-1.11.x.nix b/pkgs/by-name/au/automake/automake-1.11.x.nix index 161dca6..20921a9 100644 --- a/pkgs/by-name/au/automake/automake-1.11.x.nix +++ b/pkgs/by-name/au/automake/automake-1.11.x.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: +{ + lib, + stdenv, + fetchurl, + perl, + autoconf, +}: stdenv.mkDerivation rec { pname = "automake"; @@ -16,10 +22,16 @@ stdenv.mkDerivation rec { sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5"; }; - patches = [ ./fix-test-autoconf-2.69.patch ./fix-perl-5.26.patch ]; + patches = [ + ./fix-test-autoconf-2.69.patch + ./fix-perl-5.26.patch + ]; strictDeps = true; - nativeBuildInputs = [ perl autoconf ]; + nativeBuildInputs = [ + perl + autoconf + ]; buildInputs = [ autoconf ]; doCheck = false; # takes _a lot_ of time, fails 11 of 782 tests diff --git a/pkgs/by-name/au/automake/automake-1.15.x.nix b/pkgs/by-name/au/automake/automake-1.15.x.nix index f0df759..3defb1d 100644 --- a/pkgs/by-name/au/automake/automake-1.15.x.nix +++ b/pkgs/by-name/au/automake/automake-1.15.x.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: +{ + lib, + stdenv, + fetchurl, + perl, + autoconf, +}: stdenv.mkDerivation rec { pname = "automake"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg"; }; - nativeBuildInputs = [ autoconf perl ]; + nativeBuildInputs = [ + autoconf + perl + ]; buildInputs = [ autoconf ]; setupHook = ./setup-hook.sh; diff --git a/pkgs/by-name/au/automake/automake-1.16.x.nix b/pkgs/by-name/au/automake/automake-1.16.x.nix index 0d9572c..55f61a2 100644 --- a/pkgs/by-name/au/automake/automake-1.16.x.nix +++ b/pkgs/by-name/au/automake/automake-1.16.x.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, perl, autoconf }: +{ + lib, + stdenv, + fetchurl, + perl, + autoconf, +}: stdenv.mkDerivation rec { pname = "automake"; @@ -10,7 +16,10 @@ stdenv.mkDerivation rec { }; strictDeps = true; - nativeBuildInputs = [ autoconf perl ]; + nativeBuildInputs = [ + autoconf + perl + ]; buildInputs = [ autoconf ]; setupHook = ./setup-hook.sh; diff --git a/pkgs/by-name/au/automake/packages.nix b/pkgs/by-name/au/automake/packages.nix index 236842e..2d376be 100644 --- a/pkgs/by-name/au/automake/packages.nix +++ b/pkgs/by-name/au/automake/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { automake = automake116x; automake111x = callPackage ./automake-1.11.x.nix { }; automake115x = callPackage ./automake-1.15.x.nix { }; diff --git a/pkgs/by-name/aw/aws-c-auth/default.nix b/pkgs/by-name/aw/aws-c-auth/default.nix index 7a7d808..059b270 100644 --- a/pkgs/by-name/aw/aws-c-auth/default.nix +++ b/pkgs/by-name/aw/aws-c-auth/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchFromGitHub -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-http -, aws-c-io -, aws-c-sdkutils -, cmake -, nix -, s2n-tls +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-cal, + aws-c-common, + aws-c-compression, + aws-c-http, + aws-c-io, + aws-c-sdkutils, + cmake, + nix, + s2n-tls, }: stdenv.mkDerivation rec { @@ -23,9 +24,7 @@ stdenv.mkDerivation rec { hash = "sha256-76sBv4oChDrkv80HPktkULFNC37kfTNxjlwNg/FJiyA="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ aws-c-cal @@ -36,13 +35,9 @@ stdenv.mkDerivation rec { s2n-tls ]; - propagatedBuildInputs = [ - aws-c-sdkutils - ]; + propagatedBuildInputs = [ aws-c-sdkutils ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-cal/default.nix b/pkgs/by-name/aw/aws-c-cal/default.nix index 0188c89..664546c 100644 --- a/pkgs/by-name/aw/aws-c-cal/default.nix +++ b/pkgs/by-name/aw/aws-c-cal/default.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, nix, openssl, Security }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + aws-c-common, + nix, + openssl, + Security, +}: stdenv.mkDerivation (finalAttrs: { pname = "aws-c-cal"; @@ -18,13 +27,14 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake ]; - buildInputs = [ aws-c-common openssl ]; + buildInputs = [ + aws-c-common + openssl + ]; propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-cal/packages.nix b/pkgs/by-name/aw/aws-c-cal/packages.nix index 989742a..f8ce648 100644 --- a/pkgs/by-name/aw/aws-c-cal/packages.nix +++ b/pkgs/by-name/aw/aws-c-cal/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - aws-c-cal = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + aws-c-cal = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/aw/aws-c-common/default.nix b/pkgs/by-name/aw/aws-c-common/default.nix index 360b82b..3b9a99b 100644 --- a/pkgs/by-name/aw/aws-c-common/default.nix +++ b/pkgs/by-name/aw/aws-c-common/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, nix +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + nix, }: stdenv.mkDerivation rec { @@ -20,26 +21,26 @@ stdenv.mkDerivation rec { cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" - ] ++ lib.optionals stdenv.hostPlatform.isRiscV [ - "-DCMAKE_C_FLAGS=-fasynchronous-unwind-tables" - ]; + ] ++ lib.optionals stdenv.hostPlatform.isRiscV [ "-DCMAKE_C_FLAGS=-fasynchronous-unwind-tables" ]; # aws-c-common misuses cmake modules, so we need # to manually add a MODULE_PATH to its consumers setupHook = ./setup-hook.sh; # Prevent the execution of tests known to be flaky. - preCheck = let - ignoreTests = [ - "promise_test_multiple_waiters" - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - "sba_metrics" # https://github.com/awslabs/aws-c-common/issues/839 - ]; - in '' - cat <CTestCustom.cmake - SET(CTEST_CUSTOM_TESTS_IGNORE ${toString ignoreTests}) - EOW - ''; + preCheck = + let + ignoreTests = + [ "promise_test_multiple_waiters" ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + "sba_metrics" # https://github.com/awslabs/aws-c-common/issues/839 + ]; + in + '' + cat <CTestCustom.cmake + SET(CTEST_CUSTOM_TESTS_IGNORE ${toString ignoreTests}) + EOW + ''; doCheck = true; @@ -52,6 +53,10 @@ stdenv.mkDerivation rec { homepage = "https://github.com/awslabs/aws-c-common"; license = licenses.asl20; platforms = platforms.unix; - maintainers = with maintainers; [ orivej eelco r-burns ]; + maintainers = with maintainers; [ + orivej + eelco + r-burns + ]; }; } diff --git a/pkgs/by-name/aw/aws-c-compression/default.nix b/pkgs/by-name/aw/aws-c-compression/default.nix index e38279f..9b393e0 100644 --- a/pkgs/by-name/aw/aws-c-compression/default.nix +++ b/pkgs/by-name/aw/aws-c-compression/default.nix @@ -1,8 +1,10 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-common -, cmake -, nix +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-common, + cmake, + nix, }: stdenv.mkDerivation rec { @@ -16,17 +18,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-Cf3MvoRWGAy+vlE59JSpTGOBl07dI4mbIaL1HIiLN/I="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; - buildInputs = [ - aws-c-common - ]; + buildInputs = [ aws-c-common ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-event-stream/default.nix b/pkgs/by-name/aw/aws-c-event-stream/default.nix index 14d24ae..288daa0 100644 --- a/pkgs/by-name/aw/aws-c-event-stream/default.nix +++ b/pkgs/by-name/aw/aws-c-event-stream/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, aws-c-cal -, aws-c-common -, aws-c-io -, aws-checksums -, s2n-tls -, libexecinfo -# for passthru.tests -, nix +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + aws-c-cal, + aws-c-common, + aws-c-io, + aws-checksums, + s2n-tls, + libexecinfo, + # for passthru.tests + nix, }: stdenv.mkDerivation rec { @@ -25,12 +26,15 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - buildInputs = [ aws-c-cal aws-c-common aws-c-io aws-checksums s2n-tls ] - ++ lib.optional stdenv.hostPlatform.isMusl libexecinfo; + buildInputs = [ + aws-c-cal + aws-c-common + aws-c-io + aws-checksums + s2n-tls + ] ++ lib.optional stdenv.hostPlatform.isMusl libexecinfo; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS:BOOL=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS:BOOL=ON" ]; # passthru.tests = { # inherit nix; @@ -41,6 +45,9 @@ stdenv.mkDerivation rec { homepage = "https://github.com/awslabs/aws-c-event-stream"; license = licenses.asl20; platforms = platforms.unix; - maintainers = with maintainers; [ orivej eelco ]; + maintainers = with maintainers; [ + orivej + eelco + ]; }; } diff --git a/pkgs/by-name/aw/aws-c-http/default.nix b/pkgs/by-name/aw/aws-c-http/default.nix index 4b22e53..0cdc275 100644 --- a/pkgs/by-name/aw/aws-c-http/default.nix +++ b/pkgs/by-name/aw/aws-c-http/default.nix @@ -1,12 +1,14 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-io -, cmake -, nix -, s2n-tls +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-cal, + aws-c-common, + aws-c-compression, + aws-c-io, + cmake, + nix, + s2n-tls, }: stdenv.mkDerivation rec { @@ -20,9 +22,7 @@ stdenv.mkDerivation rec { hash = "sha256-S5ETVkdGTndt2GJBNL4DU5SycHAufsmN06xBDRMFVKo="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ aws-c-cal @@ -32,9 +32,7 @@ stdenv.mkDerivation rec { s2n-tls ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-io/default.nix b/pkgs/by-name/aw/aws-c-io/default.nix index 65b5843..c18fe19 100644 --- a/pkgs/by-name/aw/aws-c-io/default.nix +++ b/pkgs/by-name/aw/aws-c-io/default.nix @@ -1,4 +1,14 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, nix, s2n-tls, Security }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + aws-c-cal, + aws-c-common, + nix, + s2n-tls, + Security, +}: stdenv.mkDerivation rec { pname = "aws-c-io"; @@ -13,12 +23,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - buildInputs = [ aws-c-cal aws-c-common s2n-tls ]; + buildInputs = [ + aws-c-cal + aws-c-common + s2n-tls + ]; propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Security ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-io/packages.nix b/pkgs/by-name/aw/aws-c-io/packages.nix index d17278d..1f1197d 100644 --- a/pkgs/by-name/aw/aws-c-io/packages.nix +++ b/pkgs/by-name/aw/aws-c-io/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - aws-c-io = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + aws-c-io = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/aw/aws-c-mqtt/default.nix b/pkgs/by-name/aw/aws-c-mqtt/default.nix index 2e6c6a5..8e20255 100644 --- a/pkgs/by-name/aw/aws-c-mqtt/default.nix +++ b/pkgs/by-name/aw/aws-c-mqtt/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchFromGitHub -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-http -, aws-c-io -, cmake -, nix -, s2n-tls +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-cal, + aws-c-common, + aws-c-compression, + aws-c-http, + aws-c-io, + cmake, + nix, + s2n-tls, }: stdenv.mkDerivation rec { @@ -22,9 +23,7 @@ stdenv.mkDerivation rec { hash = "sha256-MWcXTMwKtFnrNp+OnHxkiYCUXc3IUhM6iTQa+F9JwsQ="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ aws-c-cal @@ -35,9 +34,7 @@ stdenv.mkDerivation rec { s2n-tls ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-s3/default.nix b/pkgs/by-name/aw/aws-c-s3/default.nix index 8db5b83..9ad85d2 100644 --- a/pkgs/by-name/aw/aws-c-s3/default.nix +++ b/pkgs/by-name/aw/aws-c-s3/default.nix @@ -1,15 +1,17 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-auth -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-http -, aws-c-io -, aws-checksums -, cmake -, nix -, s2n-tls +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-auth, + aws-c-cal, + aws-c-common, + aws-c-compression, + aws-c-http, + aws-c-io, + aws-checksums, + cmake, + nix, + s2n-tls, }: stdenv.mkDerivation rec { @@ -23,9 +25,7 @@ stdenv.mkDerivation rec { hash = "sha256-8eKQsP7AftNDccsZHPC9PcwpbpgZSvsioUuSsiggQDs="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ aws-c-auth @@ -38,9 +38,7 @@ stdenv.mkDerivation rec { s2n-tls ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; diff --git a/pkgs/by-name/aw/aws-c-sdkutils/default.nix b/pkgs/by-name/aw/aws-c-sdkutils/default.nix index 7ced8b5..88a2d16 100644 --- a/pkgs/by-name/aw/aws-c-sdkutils/default.nix +++ b/pkgs/by-name/aw/aws-c-sdkutils/default.nix @@ -1,8 +1,10 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-common -, cmake -, nix +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-common, + cmake, + nix, }: stdenv.mkDerivation rec { @@ -16,17 +18,11 @@ stdenv.mkDerivation rec { hash = "sha256-RTRDbdv+QmRG0Sk/R9qhl45WYEVyl+M0EceLFsoONTI="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; - buildInputs = [ - aws-c-common - ]; + buildInputs = [ aws-c-common ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; doCheck = true; diff --git a/pkgs/by-name/aw/aws-checksums/default.nix b/pkgs/by-name/aw/aws-checksums/default.nix index 41da5e2..4b0497c 100644 --- a/pkgs/by-name/aw/aws-checksums/default.nix +++ b/pkgs/by-name/aw/aws-checksums/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, nix }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + aws-c-common, + nix, +}: stdenv.mkDerivation rec { pname = "aws-checksums"; @@ -15,9 +22,7 @@ stdenv.mkDerivation rec { buildInputs = [ aws-c-common ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]; passthru.tests = { inherit nix; @@ -28,6 +33,9 @@ stdenv.mkDerivation rec { homepage = "https://github.com/awslabs/aws-checksums"; license = licenses.asl20; platforms = platforms.unix; - maintainers = with maintainers; [ orivej eelco ]; + maintainers = with maintainers; [ + orivej + eelco + ]; }; } diff --git a/pkgs/by-name/aw/aws-crt-cpp/default.nix b/pkgs/by-name/aw/aws-crt-cpp/default.nix index 9837813..11d4a9f 100644 --- a/pkgs/by-name/aw/aws-crt-cpp/default.nix +++ b/pkgs/by-name/aw/aws-crt-cpp/default.nix @@ -1,17 +1,19 @@ -{ lib, stdenv -, fetchFromGitHub -, aws-c-auth -, aws-c-cal -, aws-c-common -, aws-c-compression -, aws-c-event-stream -, aws-c-http -, aws-c-io -, aws-c-mqtt -, aws-c-s3 -, aws-checksums -, cmake -, s2n-tls +{ + lib, + stdenv, + fetchFromGitHub, + aws-c-auth, + aws-c-cal, + aws-c-common, + aws-c-compression, + aws-c-event-stream, + aws-c-http, + aws-c-io, + aws-c-mqtt, + aws-c-s3, + aws-checksums, + cmake, + s2n-tls, # for passthru.tests # , nix }: @@ -20,7 +22,10 @@ stdenv.mkDerivation rec { pname = "aws-crt-cpp"; version = "0.26.4"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "awslabs"; @@ -39,9 +44,7 @@ stdenv.mkDerivation rec { substituteInPlace CMakeLists.txt --replace '-Werror' "" ''; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; propagatedBuildInputs = [ aws-c-auth diff --git a/pkgs/by-name/aw/aws-sdk-cpp/default.nix b/pkgs/by-name/aw/aws-sdk-cpp/default.nix index b64978d..ed9ae0c 100644 --- a/pkgs/by-name/aw/aws-sdk-cpp/default.nix +++ b/pkgs/by-name/aw/aws-sdk-cpp/default.nix @@ -1,17 +1,18 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, curl -, openssl -, zlib -, aws-crt-cpp -, CoreAudio -, AudioToolbox -, # Allow building a limited set of APIs, e.g. ["s3" "ec2"]. - apis ? ["*"] -, # Whether to enable AWS' custom memory management. - customMemoryManagement ? true +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + curl, + openssl, + zlib, + aws-crt-cpp, + CoreAudio, + AudioToolbox, + # Allow building a limited set of APIs, e.g. ["s3" "ec2"]. + apis ? [ "*" ], + # Whether to enable AWS' custom memory management. + customMemoryManagement ? true, # for passthru.tests # , nix # , arrow-cpp @@ -19,11 +20,17 @@ }: let - host_os = if stdenv.hostPlatform.isDarwin then "APPLE" - else if stdenv.hostPlatform.isAndroid then "ANDROID" - else if stdenv.hostPlatform.isWindows then "WINDOWS" - else if stdenv.hostPlatform.isLinux then "LINUX" - else throw "Unknown host OS"; + host_os = + if stdenv.hostPlatform.isDarwin then + "APPLE" + else if stdenv.hostPlatform.isAndroid then + "ANDROID" + else if stdenv.hostPlatform.isWindows then + "WINDOWS" + else if stdenv.hostPlatform.isLinux then + "LINUX" + else + throw "Unknown host OS"; in stdenv.mkDerivation rec { @@ -37,59 +44,73 @@ stdenv.mkDerivation rec { hash = "sha256-yg+OkeUaqwUQGQ5ThIVQUpF2rHm4FuFbcl5gE5WHHOQ="; }; - postPatch = '' - # Append the dev output to path hints in finding Aws.h to avoid - # having to pass `AWS_CORE_HEADER_FILE` explicitly to cmake configure - # when using find_package(AWSSDK CONFIG) - substituteInPlace cmake/AWSSDKConfig.cmake \ - --replace 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core' \ - 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core" - "${placeholder "dev"}/include/aws/core' + postPatch = + '' + # Append the dev output to path hints in finding Aws.h to avoid + # having to pass `AWS_CORE_HEADER_FILE` explicitly to cmake configure + # when using find_package(AWSSDK CONFIG) + substituteInPlace cmake/AWSSDKConfig.cmake \ + --replace 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core' \ + 'C:/AWSSDK/''${AWSSDK_INSTALL_INCLUDEDIR}/aws/core" + "${placeholder "dev"}/include/aws/core' - # Avoid blanket -Werror to evade build failures on less - # tested compilers. - substituteInPlace cmake/compiler_settings.cmake \ - --replace '"-Werror"' ' ' + # Avoid blanket -Werror to evade build failures on less + # tested compilers. + substituteInPlace cmake/compiler_settings.cmake \ + --replace '"-Werror"' ' ' - # Flaky on Hydra - rm tests/aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp - rm tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp - rm tests/aws-cpp-sdk-core-tests/aws/client/AwsConfigTest.cpp - # Includes aws-c-auth private headers, so only works with submodule build - rm tests/aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp - # TestRandomURLMultiThreaded fails - rm tests/aws-cpp-sdk-core-tests/http/HttpClientTest.cpp - '' + lib.optionalString stdenv.isi686 '' - # EPSILON is exceeded - rm tests/aws-cpp-sdk-core-tests/aws/client/AdaptiveRetryStrategyTest.cpp - ''; + # Flaky on Hydra + rm tests/aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp + rm tests/aws-cpp-sdk-core-tests/aws/client/AWSClientTest.cpp + rm tests/aws-cpp-sdk-core-tests/aws/client/AwsConfigTest.cpp + # Includes aws-c-auth private headers, so only works with submodule build + rm tests/aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp + # TestRandomURLMultiThreaded fails + rm tests/aws-cpp-sdk-core-tests/http/HttpClientTest.cpp + '' + + lib.optionalString stdenv.isi686 '' + # EPSILON is exceeded + rm tests/aws-cpp-sdk-core-tests/aws/client/AdaptiveRetryStrategyTest.cpp + ''; # FIXME: might be nice to put different APIs in different outputs # (e.g. libaws-cpp-sdk-s3.so in output "s3"). - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - nativeBuildInputs = [ cmake curl ]; + nativeBuildInputs = [ + cmake + curl + ]; - buildInputs = [ - curl openssl zlib - ] ++ lib.optionals (stdenv.isDarwin && - ((builtins.elem "text-to-speech" apis) || - (builtins.elem "*" apis))) - [ CoreAudio AudioToolbox ]; + buildInputs = + [ + curl + openssl + zlib + ] + ++ lib.optionals + (stdenv.isDarwin && ((builtins.elem "text-to-speech" apis) || (builtins.elem "*" apis))) + [ + CoreAudio + AudioToolbox + ]; # propagation is needed for Security.framework to be available when linking propagatedBuildInputs = [ aws-crt-cpp ]; - cmakeFlags = [ - "-DBUILD_DEPS=OFF" - ] ++ lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0" - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "-DENABLE_TESTING=OFF" - "-DCURL_HAS_H2=1" - "-DCURL_HAS_TLS_PROXY=1" - "-DTARGET_ARCH=${host_os}" - ] ++ lib.optional (apis != ["*"]) - "-DBUILD_ONLY=${lib.concatStringsSep ";" apis}"; + cmakeFlags = + [ "-DBUILD_DEPS=OFF" ] + ++ lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0" + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "-DENABLE_TESTING=OFF" + "-DCURL_HAS_H2=1" + "-DCURL_HAS_TLS_PROXY=1" + "-DTARGET_ARCH=${host_os}" + ] + ++ lib.optional (apis != [ "*" ]) "-DBUILD_ONLY=${lib.concatStringsSep ";" apis}"; env.NIX_CFLAGS_COMPILE = toString [ # openssl 3 generates several deprecation warnings @@ -148,7 +169,10 @@ stdenv.mkDerivation rec { homepage = "https://github.com/aws/aws-sdk-cpp"; license = licenses.asl20; platforms = platforms.unix; - maintainers = with maintainers; [ eelco orivej ]; + maintainers = with maintainers; [ + eelco + orivej + ]; # building ec2 runs out of memory: cc1plus: out of memory allocating 33554372 bytes after a total of 74424320 bytes broken = stdenv.buildPlatform.is32bit && ((builtins.elem "ec2" apis) || (builtins.elem "*" apis)); }; diff --git a/pkgs/by-name/aw/aws-sdk-cpp/packages.nix b/pkgs/by-name/aw/aws-sdk-cpp/packages.nix index 46675cb..c6400ce 100644 --- a/pkgs/by-name/aw/aws-sdk-cpp/packages.nix +++ b/pkgs/by-name/aw/aws-sdk-cpp/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - aws-sdk-cpp = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox; - }; +with pkgs; { + aws-sdk-cpp = callPackage ./. { inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox; }; } diff --git a/pkgs/by-name/ba/bash/5.nix b/pkgs/by-name/ba/bash/5.nix index de0426f..1fef3e3 100644 --- a/pkgs/by-name/ba/bash/5.nix +++ b/pkgs/by-name/ba/bash/5.nix @@ -1,25 +1,29 @@ -{ lib -, stdenv -, buildPackages -, fetchurl -, bison -, util-linux +{ + lib, + stdenv, + buildPackages, + fetchurl, + bison, + util-linux, # patch for cygwin requires readline support -, interactive ? stdenv.isCygwin -, readline -, withDocs ? false -, texinfo -, forFHSEnv ? false + interactive ? stdenv.isCygwin, + readline, + withDocs ? false, + texinfo, + forFHSEnv ? false, -, pkgsStatic + pkgsStatic, }: let - upstreamPatches = import ./bash-5.2-patches.nix (nr: sha256: fetchurl { - url = "mirror://gnu/bash/bash-5.2-patches/bash52-${nr}"; - inherit sha256; - }); + upstreamPatches = import ./bash-5.2-patches.nix ( + nr: sha256: + fetchurl { + url = "mirror://gnu/bash/bash-5.2-patches/bash52-${nr}"; + inherit sha256; + } + ); in stdenv.mkDerivation rec { pname = "bash${lib.optionalString interactive "-interactive"}"; @@ -31,26 +35,36 @@ stdenv.mkDerivation rec { sha256 = "sha256-oTnBZt9/9EccXgczBRZC7lVWwcyKSnjxRVg8XIGrMvs="; }; - hardeningDisable = [ "format" ] + hardeningDisable = + [ "format" ] # bionic libc is super weird and has issues with fortify outside of its own libc, check this comment: # https://github.com/NixOS/nixpkgs/pull/192630#discussion_r978985593 # or you can check libc/include/sys/cdefs.h in bionic source code ++ lib.optional (stdenv.hostPlatform.libc == "bionic") "fortify"; - outputs = [ "out" "dev" "man" "doc" "info" ]; + outputs = [ + "out" + "dev" + "man" + "doc" + "info" + ]; separateDebugInfo = true; - env.NIX_CFLAGS_COMPILE = '' - -DSYS_BASHRC="/etc/bashrc" - -DSYS_BASH_LOGOUT="/etc/bash_logout" - '' + lib.optionalString (!forFHSEnv) '' - -DDEFAULT_PATH_VALUE="/no-such-path" - -DSTANDARD_UTILS_PATH="/no-such-path" - '' + '' - -DNON_INTERACTIVE_LOGIN_SHELLS - -DSSH_SOURCE_BASHRC - ''; + env.NIX_CFLAGS_COMPILE = + '' + -DSYS_BASHRC="/etc/bashrc" + -DSYS_BASH_LOGOUT="/etc/bash_logout" + '' + + lib.optionalString (!forFHSEnv) '' + -DDEFAULT_PATH_VALUE="/no-such-path" + -DSTANDARD_UTILS_PATH="/no-such-path" + '' + + '' + -DNON_INTERACTIVE_LOGIN_SHELLS + -DSSH_SOURCE_BASHRC + ''; patchFlags = [ "-p0" ]; @@ -67,35 +81,37 @@ stdenv.mkDerivation rec { ./parallel.patch ]; - configureFlags = [ - # At least on Linux bash memory allocator has pathological performance - # in scenarios involving use of larger memory: - # https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00052.html - # Various distributions default to system allocator. Let's nixpkgs - # do the same. - "--without-bash-malloc" - (if interactive then "--with-installed-readline" else "--disable-readline") - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "bash_cv_job_control_missing=nomissing" - "bash_cv_sys_named_pipes=nomissing" - "bash_cv_getcwd_malloc=yes" - ] ++ lib.optionals stdenv.hostPlatform.isCygwin [ - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--with-installed-readline" - "bash_cv_dev_stdin=present" - "bash_cv_dev_fd=standard" - "bash_cv_termcap_lib=libncurses" - ] ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [ - "--disable-nls" - ]; + configureFlags = + [ + # At least on Linux bash memory allocator has pathological performance + # in scenarios involving use of larger memory: + # https://lists.gnu.org/archive/html/bug-bash/2023-08/msg00052.html + # Various distributions default to system allocator. Let's nixpkgs + # do the same. + "--without-bash-malloc" + (if interactive then "--with-installed-readline" else "--disable-readline") + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "bash_cv_job_control_missing=nomissing" + "bash_cv_sys_named_pipes=nomissing" + "bash_cv_getcwd_malloc=yes" + ] + ++ lib.optionals stdenv.hostPlatform.isCygwin [ + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--with-installed-readline" + "bash_cv_dev_stdin=present" + "bash_cv_dev_fd=standard" + "bash_cv_termcap_lib=libncurses" + ] + ++ lib.optionals (stdenv.hostPlatform.libc == "musl") [ "--disable-nls" ]; strictDeps = true; # Note: Bison is needed because the patches above modify parse.y. depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bison ] - ++ lib.optional withDocs texinfo - ++ lib.optional stdenv.hostPlatform.isDarwin stdenv.cc.bintools; + nativeBuildInputs = [ + bison + ] ++ lib.optional withDocs texinfo ++ lib.optional stdenv.hostPlatform.isDarwin stdenv.cc.bintools; buildInputs = lib.optional interactive readline; @@ -115,15 +131,16 @@ stdenv.mkDerivation rec { ''; postFixup = - if interactive - then '' - substituteInPlace "$out/bin/bashbug" \ - --replace '#!/bin/sh' "#!$out/bin/bash" - '' + if interactive then + '' + substituteInPlace "$out/bin/bashbug" \ + --replace '#!/bin/sh' "#!$out/bin/bash" + '' # most space is taken by locale data - else '' - rm -rf "$out/share" "$out/bin/bashbug" - ''; + else + '' + rm -rf "$out/share" "$out/bin/bashbug" + ''; passthru = { shellPath = "/bin/bash"; @@ -132,7 +149,9 @@ stdenv.mkDerivation rec { meta = with lib; { homepage = "https://www.gnu.org/software/bash/"; - description = "GNU Bourne-Again Shell, the de facto standard shell on Linux" + lib.optionalString interactive " (for interactive use)"; + description = + "GNU Bourne-Again Shell, the de facto standard shell on Linux" + + lib.optionalString interactive " (for interactive use)"; longDescription = '' Bash is the shell, or command language interpreter, that will appear in the GNU operating system. Bash is an sh-compatible diff --git a/pkgs/by-name/ba/bash/bash-5.2-patches.nix b/pkgs/by-name/ba/bash/bash-5.2-patches.nix index 5d5ef94..ac13c0a 100644 --- a/pkgs/by-name/ba/bash/bash-5.2-patches.nix +++ b/pkgs/by-name/ba/bash/bash-5.2-patches.nix @@ -1,30 +1,30 @@ # Automatically generated by `update-patch-set.sh'; do not edit. patch: [ -(patch "001" "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl") -(patch "002" "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25") -(patch "003" "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba") -(patch "004" "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq") -(patch "005" "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c") -(patch "006" "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i") -(patch "007" "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015") -(patch "008" "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb") -(patch "009" "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr") -(patch "010" "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67") -(patch "011" "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3") -(patch "012" "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g") -(patch "013" "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9") -(patch "014" "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y") -(patch "015" "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg") -(patch "016" "05arb0hzmng03cr357lf6p8af0x2a1pznsd3psll03nibfy56n0m") -(patch "017" "129cvx4gfz8n23iw1lhbknbw86fyw6vh60jqj1wj3d5pr75wwj0w") -(patch "018" "105am94qxjc27gga4a8asvsi01090xwjfim3s16lafwjvm4xsha6") -(patch "019" "10njgv5mrc5rhsp5lvxcbm0pnzn59a8spi2nhdasifyl1a32cp1j") -(patch "020" "07f0wlmqjdfarp44w3gj9gdqbqm5x20rvlhpn34ngklmxcm2bz5n") -(patch "021" "1kahfqqalcwi4m73pg3ssz6lh0kcqsqax09myac7a15d2y0vhd43") -(patch "022" "0w74aym0g1fh48864a3qxh89f26iaq7wsbg7244c6kjr94527dbq") -(patch "023" "1lywjqbc36j5pdzfcvnz1zy30j76aqmsm190p888av0hw815b45g") -(patch "024" "1hq23djqbr7s9y2324jq9mxr5bwdkmgizn3zgpchbsqp054k85cp") -(patch "025" "0x9hc4silzl4d3zw4p43i5dm7w86k50j47f87lracwfgwy3z8f2i") -(patch "026" "1b1fhm1dsi67r8ip17s0xvx2qq31fsxc1g9n3r931dd0k9a1zvln") + (patch "001" "02iibpd3jq8p1bhdzgik8ps6gi1145vr463a82gj1hivjbp2ybzl") + (patch "002" "1f6p1z85qh1lavdp3xikgp0bfv0vqhvgpgwmdzlywl35hwdmxk25") + (patch "003" "1zxsi869jd90hksx3nyypgyqwrxhw2ws3r6hmk76yc1lsgdhq2ba") + (patch "004" "04i5liw5cg6dqkdxfgazqc2jrw40bmclx3dx45bwy259pcj7g0iq") + (patch "005" "0mykflv9qnbx3jz71l4f7isadiw9knm4qimqkwsv9cv88dafpq7c") + (patch "006" "13265akl8w6zyrg0l7f0x6arjgqjhllcwl6lk46rl53x4mm5dq6i") + (patch "007" "146lrwkn5wgxzs6vx34wl47g69zsxdy032k40qzi626b47ya6015") + (patch "008" "1s5i8hcayrv25lc8fxcr431v634yx5sii53b8fmip789s0pxjjvb") + (patch "009" "1kfk25151ka9wkmk1myf12irgcmvhsd8b0nfifvhrszah9w82npr") + (patch "010" "1kf1jrwm30js0v3d1r2rk4x09s1pyjp70wnd1qqhf9bmkw15ww67") + (patch "011" "1x5nkvbj6hci7gx42q7qa72hg2a9wwxh85dk79gn521ypwjmy6w3") + (patch "012" "0b6lcwzm7v5bzjiwaz2c8n5aj77w8ckhp2vwk4v3zsdq3z70gc9g") + (patch "013" "1rkwpibd6j2ghppfhqsva2jm4kdni6b7jpdsxdps52643gc4yjq9") + (patch "014" "09766vqqw4ffnmysm725v35qkhp1g9j4qgqag941xvq655pj9y9y") + (patch "015" "12im449abnq5gaqjmdxr5i38kmp02fa8l8wffad3jryvd58r0wzg") + (patch "016" "05arb0hzmng03cr357lf6p8af0x2a1pznsd3psll03nibfy56n0m") + (patch "017" "129cvx4gfz8n23iw1lhbknbw86fyw6vh60jqj1wj3d5pr75wwj0w") + (patch "018" "105am94qxjc27gga4a8asvsi01090xwjfim3s16lafwjvm4xsha6") + (patch "019" "10njgv5mrc5rhsp5lvxcbm0pnzn59a8spi2nhdasifyl1a32cp1j") + (patch "020" "07f0wlmqjdfarp44w3gj9gdqbqm5x20rvlhpn34ngklmxcm2bz5n") + (patch "021" "1kahfqqalcwi4m73pg3ssz6lh0kcqsqax09myac7a15d2y0vhd43") + (patch "022" "0w74aym0g1fh48864a3qxh89f26iaq7wsbg7244c6kjr94527dbq") + (patch "023" "1lywjqbc36j5pdzfcvnz1zy30j76aqmsm190p888av0hw815b45g") + (patch "024" "1hq23djqbr7s9y2324jq9mxr5bwdkmgizn3zgpchbsqp054k85cp") + (patch "025" "0x9hc4silzl4d3zw4p43i5dm7w86k50j47f87lracwfgwy3z8f2i") + (patch "026" "1b1fhm1dsi67r8ip17s0xvx2qq31fsxc1g9n3r931dd0k9a1zvln") ] diff --git a/pkgs/by-name/ba/bash/bash-completion/default.nix b/pkgs/by-name/ba/bash/bash-completion/default.nix index 80f5ffe..150d8f6 100644 --- a/pkgs/by-name/ba/bash/bash-completion/default.nix +++ b/pkgs/by-name/ba/bash/bash-completion/default.nix @@ -1,10 +1,13 @@ -{ lib, stdenv, fetchurl -, fetchpatch -, autoreconfHook -, perl -, ps -, python3Packages -, bashInteractive +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, + perl, + ps, + python3Packages, + bashInteractive, }: stdenv.mkDerivation rec { diff --git a/pkgs/by-name/ba/bash/blesh/default.nix b/pkgs/by-name/ba/bash/blesh/default.nix index 8863376..2ae1f59 100644 --- a/pkgs/by-name/ba/bash/blesh/default.nix +++ b/pkgs/by-name/ba/bash/blesh/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenvNoCC -, fetchzip -, runtimeShell -, bashInteractive -, glibcLocales +{ + lib, + stdenvNoCC, + fetchzip, + runtimeShell, + bashInteractive, + glibcLocales, }: stdenvNoCC.mkDerivation rec { @@ -18,7 +19,10 @@ stdenvNoCC.mkDerivation rec { dontBuild = true; doCheck = true; - nativeCheckInputs = [ bashInteractive glibcLocales ]; + nativeCheckInputs = [ + bashInteractive + glibcLocales + ]; preCheck = "export LC_ALL=en_US.UTF-8"; installPhase = '' diff --git a/pkgs/by-name/ba/bash/fzf-obc/default.nix b/pkgs/by-name/ba/bash/fzf-obc/default.nix index 7621ae8..549b0d7 100644 --- a/pkgs/by-name/ba/bash/fzf-obc/default.nix +++ b/pkgs/by-name/ba/bash/fzf-obc/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub }: +{ + lib, + stdenv, + fetchFromGitHub, +}: stdenv.mkDerivation rec { pname = "fzf-obc"; diff --git a/pkgs/by-name/ba/bash/nix-bash-completions/default.nix b/pkgs/by-name/ba/bash/nix-bash-completions/default.nix index 10fb097..71ea4e1 100644 --- a/pkgs/by-name/ba/bash/nix-bash-completions/default.nix +++ b/pkgs/by-name/ba/bash/nix-bash-completions/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch }: +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, +}: stdenv.mkDerivation rec { version = "0.6.8"; @@ -52,7 +57,10 @@ stdenv.mkDerivation rec { description = "Bash completions for Nix, NixOS, and NixOps"; license = licenses.bsd3; platforms = platforms.all; - maintainers = with maintainers; [ hedning ncfavier ]; + maintainers = with maintainers; [ + hedning + ncfavier + ]; # Set a lower priority such that Nix wins in case of conflicts. priority = 10; }; diff --git a/pkgs/by-name/ba/bash/packages.nix b/pkgs/by-name/ba/bash/packages.nix index 758d7d5..0c92d58 100644 --- a/pkgs/by-name/ba/bash/packages.nix +++ b/pkgs/by-name/ba/bash/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { bash = lowPrio (callPackage ./5.nix { }); # WARNING: this attribute is used by nix-shell so it shouldn't be removed/renamed bashInteractive = callPackage ./5.nix { diff --git a/pkgs/by-name/ba/bash/undistract-me/default.nix b/pkgs/by-name/ba/bash/undistract-me/default.nix index b15903e..2bc59f1 100644 --- a/pkgs/by-name/ba/bash/undistract-me/default.nix +++ b/pkgs/by-name/ba/bash/undistract-me/default.nix @@ -1,13 +1,14 @@ -{ lib -, stdenvNoCC -, fetchFromGitHub -, fetchpatch -, coreutils -, gnused -, libnotify -, pulseaudio -, sound-theme-freedesktop -, xprop +{ + lib, + stdenvNoCC, + fetchFromGitHub, + fetchpatch, + coreutils, + gnused, + libnotify, + pulseaudio, + sound-theme-freedesktop, + xprop, }: stdenvNoCC.mkDerivation rec { diff --git a/pkgs/by-name/ba/bash/yarn-completion/default.nix b/pkgs/by-name/ba/bash/yarn-completion/default.nix index 48d1f42..748db1f 100644 --- a/pkgs/by-name/ba/bash/yarn-completion/default.nix +++ b/pkgs/by-name/ba/bash/yarn-completion/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchFromGitHub -, installShellFiles +{ + lib, + stdenv, + fetchFromGitHub, + installShellFiles, }: stdenv.mkDerivation rec { diff --git a/pkgs/by-name/bc/bc/default.nix b/pkgs/by-name/bc/bc/default.nix index e788fc5..bd376ed 100644 --- a/pkgs/by-name/bc/bc/default.nix +++ b/pkgs/by-name/bc/bc/default.nix @@ -1,5 +1,13 @@ -{ lib, stdenv, autoreconfHook, buildPackages -, fetchurl, flex, readline, ed, texinfo +{ + lib, + stdenv, + autoreconfHook, + buildPackages, + fetchurl, + flex, + readline, + ed, + texinfo, }: stdenv.mkDerivation rec { @@ -18,11 +26,18 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ # Tools - autoreconfHook ed flex texinfo + autoreconfHook + ed + flex + texinfo # Libraries for build - buildPackages.readline buildPackages.ncurses + buildPackages.readline + buildPackages.ncurses + ]; + buildInputs = [ + readline + flex ]; - buildInputs = [ readline flex ]; doCheck = true; # not cross diff --git a/pkgs/by-name/bi/bind/default.nix b/pkgs/by-name/bi/bind/default.nix index 7829e48..bbdd9e6 100644 --- a/pkgs/by-name/bi/bind/default.nix +++ b/pkgs/by-name/bi/bind/default.nix @@ -1,23 +1,24 @@ -{ stdenv -, lib -, fetchurl -, perl -, pkg-config -, libcap -, libidn2 -, libtool -, libxml2 -, openssl -, libuv -, nghttp2 -, jemalloc -, enablePython ? false -, python3 -, enableGSSAPI ? true -, libkrb5 -, buildPackages -, cmocka -, tzdata +{ + stdenv, + lib, + fetchurl, + perl, + pkg-config, + libcap, + libidn2, + libtool, + libxml2, + openssl, + libuv, + nghttp2, + jemalloc, + enablePython ? false, + python3, + enableGSSAPI ? true, + libkrb5, + buildPackages, + cmocka, + tzdata, # for passthru.tests # , nixosTests # , gitUpdater @@ -32,26 +33,45 @@ stdenv.mkDerivation rec { hash = "sha256-df/uUnMelgTISbZY3ynpJ/HE8B1aceo+vL62NwLLZlE="; }; - outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ]; - - patches = [ - ./dont-keep-configure-flags.patch + outputs = [ + "out" + "lib" + "dev" + "man" + "dnsutils" + "host" ]; - nativeBuildInputs = [ perl pkg-config ]; - buildInputs = [ libidn2 libtool libxml2 openssl libuv nghttp2 jemalloc ] + patches = [ ./dont-keep-configure-flags.patch ]; + + nativeBuildInputs = [ + perl + pkg-config + ]; + buildInputs = + [ + libidn2 + libtool + libxml2 + openssl + libuv + nghttp2 + jemalloc + ] ++ lib.optional stdenv.isLinux libcap ++ lib.optional enableGSSAPI libkrb5 ++ lib.optional enablePython (python3.withPackages (ps: with ps; [ ply ])); depsBuildBuild = [ buildPackages.stdenv.cc ]; - configureFlags = [ - "--localstatedir=/var" - "--without-lmdb" - "--with-libidn2" - ] ++ lib.optional enableGSSAPI "--with-gssapi=${libkrb5.dev}/bin/krb5-config" - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)"; + configureFlags = + [ + "--localstatedir=/var" + "--without-lmdb" + "--with-libidn2" + ] + ++ lib.optional enableGSSAPI "--with-gssapi=${libkrb5.dev}/bin/krb5-config" + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)"; postInstall = '' moveToOutput bin/bind9-config $dev @@ -83,23 +103,21 @@ stdenv.mkDerivation rec { # TODO: investigate failures; see this and linked discussions: # https://github.com/NixOS/nixpkgs/pull/192962 /* - doCheck = with stdenv.hostPlatform; !isStatic && !(isAarch64 && isLinux) - # https://gitlab.isc.org/isc-projects/bind9/-/issues/4269 - && !is32bit; + doCheck = with stdenv.hostPlatform; !isStatic && !(isAarch64 && isLinux) + # https://gitlab.isc.org/isc-projects/bind9/-/issues/4269 + && !is32bit; */ checkTarget = "unit"; - checkInputs = [ - cmocka - ] ++ lib.optionals (!stdenv.hostPlatform.isMusl) [ - tzdata - ]; - preCheck = lib.optionalString stdenv.hostPlatform.isMusl '' - # musl doesn't respect TZDIR, skip timezone-related tests - sed -i '/^ISC_TEST_ENTRY(isc_time_formatISO8601L/d' tests/isc/time_test.c - '' + lib.optionalString stdenv.hostPlatform.isDarwin '' - # Test timeouts on Darwin - sed -i '/^ISC_TEST_ENTRY(tcpdns_recv_one/d' tests/isc/netmgr_test.c - ''; + checkInputs = [ cmocka ] ++ lib.optionals (!stdenv.hostPlatform.isMusl) [ tzdata ]; + preCheck = + lib.optionalString stdenv.hostPlatform.isMusl '' + # musl doesn't respect TZDIR, skip timezone-related tests + sed -i '/^ISC_TEST_ENTRY(isc_time_formatISO8601L/d' tests/isc/time_test.c + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Test timeouts on Darwin + sed -i '/^ISC_TEST_ENTRY(tcpdns_recv_one/d' tests/isc/netmgr_test.c + ''; # passthru = { # tests = { @@ -126,6 +144,10 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ globin ]; platforms = platforms.unix; - outputsToInstall = [ "out" "dnsutils" "host" ]; + outputsToInstall = [ + "out" + "dnsutils" + "host" + ]; }; } diff --git a/pkgs/by-name/bi/bind/packages.nix b/pkgs/by-name/bi/bind/packages.nix index e43d4e8..9f5a9eb 100644 --- a/pkgs/by-name/bi/bind/packages.nix +++ b/pkgs/by-name/bi/bind/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { bind = callPackage ./. { }; dnsutils = bind.dnsutils; dig = lib.addMetaAttrs { mainProgram = "dig"; } bind.dnsutils; diff --git a/pkgs/by-name/bi/binutils/2.38/default.nix b/pkgs/by-name/bi/binutils/2.38/default.nix index b916c2d..ab05185 100644 --- a/pkgs/by-name/bi/binutils/2.38/default.nix +++ b/pkgs/by-name/bi/binutils/2.38/default.nix @@ -1,30 +1,32 @@ -{ stdenv -, autoreconfHook -, autoconf269, automake, libtool -, bison -, buildPackages -, fetchFromGitHub -, fetchurl -, flex -, gettext -, lib -, noSysDirs -, perl -, substitute -, texinfo -, zlib +{ + stdenv, + autoreconfHook, + autoconf269, + automake, + libtool, + bison, + buildPackages, + fetchFromGitHub, + fetchurl, + flex, + gettext, + lib, + noSysDirs, + perl, + substitute, + texinfo, + zlib, -, enableGold ? stdenv.targetPlatform.isElf -, enableShared ? !stdenv.hostPlatform.isStatic + enableGold ? stdenv.targetPlatform.isElf, + enableShared ? !stdenv.hostPlatform.isStatic, # WARN: Enabling all targets increases output size to a multiple. -, withAllTargets ? false + withAllTargets ? false, }: # WARN: configure silently disables ld.gold if it's unsupported, so we need to # make sure that intent matches result ourselves. assert enableGold -> stdenv.targetPlatform.isElf; - let inherit (stdenv) buildPlatform hostPlatform targetPlatform; @@ -53,138 +55,181 @@ stdenv.mkDerivation { inherit version; # HACK: Ensure that we preserve source from bootstrap binutils to not rebuild LLVM - src = stdenv.__bootPackages.binutils-unwrapped_2_38.src - or srcs.${targetPlatform.system} - or srcs.normal; + src = + stdenv.__bootPackages.binutils-unwrapped_2_38.src or srcs.${targetPlatform.system} or srcs.normal; # WARN: this package is used for bootstrapping fetchurl, and thus cannot use # fetchpatch! All mutable patches (generated by GitHub or cgit) that are # needed here should be included directly in Nixpkgs as files. - patches = [ - # Make binutils output deterministic by default. - ./deterministic.patch + patches = + [ + # Make binutils output deterministic by default. + ./deterministic.patch + # Breaks nm BSD flag detection + ./0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch - # Breaks nm BSD flag detection - ./0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch + # Required for newer macos versions + ./0001-libtool.m4-update-macos-version-detection-block.patch - # Required for newer macos versions - ./0001-libtool.m4-update-macos-version-detection-block.patch + # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's + # not clear why this behavior was decided upon but it has the unfortunate + # consequence that the linker will fail to find transitive dependencies of + # shared objects when cross-compiling. Consequently, we are forced to + # override this behavior, forcing ld to search DT_RPATH even when + # cross-compiling. + ./always-search-rpath.patch - # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's - # not clear why this behavior was decided upon but it has the unfortunate - # consequence that the linker will fail to find transitive dependencies of - # shared objects when cross-compiling. Consequently, we are forced to - # override this behavior, forcing ld to search DT_RPATH even when - # cross-compiling. - ./always-search-rpath.patch + # Fixed in 2.39 + # https://sourceware.org/bugzilla/show_bug.cgi?id=28885 + # https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=99852365513266afdd793289813e8e565186c9e6 + # https://github.com/NixOS/nixpkgs/issues/170946 + ./deterministic-temp-prefixes.patch + ] + ++ lib.optional targetPlatform.isiOS ./support-ios.patch + ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch + ++ + lib.optional stdenv.targetPlatform.isMips64n64 + # this patch is from debian: + # https://sources.debian.org/data/main/b/binutils/2.38-3/debian/patches/mips64-default-n64.diff + ( + if stdenv.targetPlatform.isMusl then + substitute { + src = ./mips64-default-n64.patch; + substitutions = [ + "--replace" + "gnuabi64" + "muslabi64" + ]; + } + else + ./mips64-default-n64.patch + ) + # On PowerPC, when generating assembly code, GCC generates a `.machine` + # custom instruction which instructs the assembler to generate code for this + # machine. However, some GCC versions generate the wrong one, or make it + # too strict, which leads to some confusing "unrecognized opcode: wrtee" + # or "unrecognized opcode: eieio" errors. + # + # To remove when binutils 2.39 is released. + # + # Upstream commit: + # https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=cebc89b9328eab994f6b0314c263f94e7949a553 + ++ lib.optional stdenv.targetPlatform.isPower ./ppc-make-machine-less-strict.patch; - # Fixed in 2.39 - # https://sourceware.org/bugzilla/show_bug.cgi?id=28885 - # https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=99852365513266afdd793289813e8e565186c9e6 - # https://github.com/NixOS/nixpkgs/issues/170946 - ./deterministic-temp-prefixes.patch - ] - ++ lib.optional targetPlatform.isiOS ./support-ios.patch - ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch - ++ lib.optional stdenv.targetPlatform.isMips64n64 - # this patch is from debian: - # https://sources.debian.org/data/main/b/binutils/2.38-3/debian/patches/mips64-default-n64.diff - (if stdenv.targetPlatform.isMusl - then substitute { src = ./mips64-default-n64.patch; substitutions = [ "--replace" "gnuabi64" "muslabi64" ]; } - else ./mips64-default-n64.patch) - # On PowerPC, when generating assembly code, GCC generates a `.machine` - # custom instruction which instructs the assembler to generate code for this - # machine. However, some GCC versions generate the wrong one, or make it - # too strict, which leads to some confusing "unrecognized opcode: wrtee" - # or "unrecognized opcode: eieio" errors. - # - # To remove when binutils 2.39 is released. - # - # Upstream commit: - # https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=cebc89b9328eab994f6b0314c263f94e7949a553 - ++ lib.optional stdenv.targetPlatform.isPower ./ppc-make-machine-less-strict.patch - ; - - outputs = [ "out" "info" "man" ]; + outputs = [ + "out" + "info" + "man" + ]; strictDeps = true; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - bison - perl - texinfo - ] - ++ lib.optionals targetPlatform.isiOS [ autoreconfHook ] - ++ lib.optionals buildPlatform.isDarwin [ autoconf269 automake gettext libtool ] - ++ lib.optionals targetPlatform.isVc4 [ flex ] - ; + nativeBuildInputs = + [ + bison + perl + texinfo + ] + ++ lib.optionals targetPlatform.isiOS [ autoreconfHook ] + ++ lib.optionals buildPlatform.isDarwin [ + autoconf269 + automake + gettext + libtool + ] + ++ lib.optionals targetPlatform.isVc4 [ flex ]; - buildInputs = [ zlib gettext ]; + buildInputs = [ + zlib + gettext + ]; inherit noSysDirs; - preConfigure = (lib.optionalString buildPlatform.isDarwin '' - for i in */configure.ac; do - pushd "$(dirname "$i")" - echo "Running autoreconf in $PWD" - # autoreconf doesn't work, don't know why - # autoreconf ''${autoreconfFlags:---install --force --verbose} - autoconf - popd - done - '') + '' - # Clear the default library search path. - if test "$noSysDirs" = "1"; then - echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt - fi + preConfigure = + (lib.optionalString buildPlatform.isDarwin '' + for i in */configure.ac; do + pushd "$(dirname "$i")" + echo "Running autoreconf in $PWD" + # autoreconf doesn't work, don't know why + # autoreconf ''${autoreconfFlags:---install --force --verbose} + autoconf + popd + done + '') + + '' + # Clear the default library search path. + if test "$noSysDirs" = "1"; then + echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt + fi - # Use symlinks instead of hard links to save space ("strip" in the - # fixup phase strips each hard link separately). - for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do - sed -i "$i" -e 's|ln |ln -s |' - done - ''; + # Use symlinks instead of hard links to save space ("strip" in the + # fixup phase strips each hard link separately). + for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do + sed -i "$i" -e 's|ln |ln -s |' + done + ''; # As binutils takes part in the stdenv building, we don't want references # to the bootstrap-tools libgcc (as uses to happen on arm/mips) env.NIX_CFLAGS_COMPILE = - if hostPlatform.isDarwin - then "-Wno-string-plus-int -Wno-deprecated-declarations" - else "-static-libgcc"; + if hostPlatform.isDarwin then + "-Wno-string-plus-int -Wno-deprecated-declarations" + else + "-static-libgcc"; - hardeningDisable = [ "format" "pie" ]; + hardeningDisable = [ + "format" + "pie" + ]; - configurePlatforms = [ "build" "host" "target" ]; + configurePlatforms = [ + "build" + "host" + "target" + ]; - configureFlags = [ - "--enable-64-bit-bfd" - "--with-system-zlib" + configureFlags = + [ + "--enable-64-bit-bfd" + "--with-system-zlib" - "--enable-deterministic-archives" - "--disable-werror" - "--enable-fix-loongson2f-nop" + "--enable-deterministic-archives" + "--disable-werror" + "--enable-fix-loongson2f-nop" - # Turn on --enable-new-dtags by default to make the linker set - # RUNPATH instead of RPATH on binaries. This is important because - # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. - "--enable-new-dtags" + # Turn on --enable-new-dtags by default to make the linker set + # RUNPATH instead of RPATH on binaries. This is important because + # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" - # force target prefix. Some versions of binutils will make it empty if - # `--host` and `--target` are too close, even if Nixpkgs thinks the - # platforms are different (e.g. because not all the info makes the - # `config`). Other versions of binutils will always prefix if `--target` is - # passed, even if `--host` and `--target` are the same. The easiest thing - # for us to do is not leave it to chance, and force the program prefix to be - # what we want it to be. - "--program-prefix=${targetPrefix}" - ] - ++ lib.optionals withAllTargets [ "--enable-targets=all" ] - ++ lib.optionals enableGold [ "--enable-gold" "--enable-plugins" ] - ++ (if enableShared - then [ "--enable-shared" "--disable-static" ] - else [ "--disable-shared" "--enable-static" ]) - ; + # force target prefix. Some versions of binutils will make it empty if + # `--host` and `--target` are too close, even if Nixpkgs thinks the + # platforms are different (e.g. because not all the info makes the + # `config`). Other versions of binutils will always prefix if `--target` is + # passed, even if `--host` and `--target` are the same. The easiest thing + # for us to do is not leave it to chance, and force the program prefix to be + # what we want it to be. + "--program-prefix=${targetPrefix}" + ] + ++ lib.optionals withAllTargets [ "--enable-targets=all" ] + ++ lib.optionals enableGold [ + "--enable-gold" + "--enable-plugins" + ] + ++ ( + if enableShared then + [ + "--enable-shared" + "--disable-static" + ] + else + [ + "--disable-shared" + "--enable-static" + ] + ); # Fails doCheck = false; @@ -194,7 +239,11 @@ stdenv.mkDerivation { postFixup = ""; # Break dependency on pkgsBuildBuild.gcc when building a cross-binutils - stripDebugList = if stdenv.hostPlatform != stdenv.targetPlatform then "bin lib ${stdenv.hostPlatform.config}" else null; + stripDebugList = + if stdenv.hostPlatform != stdenv.targetPlatform then + "bin lib ${stdenv.hostPlatform.config}" + else + null; # INFO: Otherwise it fails with: # `./sanity.sh: line 36: $out/bin/size: not found` @@ -218,7 +267,10 @@ stdenv.mkDerivation { ''; homepage = "https://www.gnu.org/software/binutils/"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 lovesegfault ]; + maintainers = with maintainers; [ + ericson2314 + lovesegfault + ]; platforms = platforms.unix; # INFO: Give binutils a lower priority than gcc-wrapper to prevent a diff --git a/pkgs/by-name/bi/binutils/2.38/libbfd.nix b/pkgs/by-name/bi/binutils/2.38/libbfd.nix index feac15b..d70ac79 100644 --- a/pkgs/by-name/bi/binutils/2.38/libbfd.nix +++ b/pkgs/by-name/bi/binutils/2.38/libbfd.nix @@ -1,13 +1,24 @@ -{ lib, stdenv -, fetchpatch, gnu-config, autoreconfHook, bison, binutils-unwrapped_2_38 -, libiberty, libintl, zlib +{ + lib, + stdenv, + fetchpatch, + gnu-config, + autoreconfHook, + bison, + binutils-unwrapped_2_38, + libiberty, + libintl, + zlib, }: stdenv.mkDerivation { pname = "libbfd"; inherit (binutils-unwrapped_2_38) version src; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; patches = binutils-unwrapped_2_38.patches ++ [ ./build-components-separately.patch @@ -31,12 +42,22 @@ stdenv.mkDerivation { dontUpdateAutotoolsGnuConfigScripts = true; strictDeps = true; - nativeBuildInputs = [ autoreconfHook bison ]; - buildInputs = [ libiberty zlib ] ++ lib.optionals stdenv.isDarwin [ libintl ]; + nativeBuildInputs = [ + autoreconfHook + bison + ]; + buildInputs = [ + libiberty + zlib + ] ++ lib.optionals stdenv.isDarwin [ libintl ]; - configurePlatforms = [ "build" "host" ]; + configurePlatforms = [ + "build" + "host" + ]; configureFlags = [ - "--enable-targets=all" "--enable-64-bit-bfd" + "--enable-targets=all" + "--enable-64-bit-bfd" "--enable-install-libbfd" "--with-system-zlib" ] ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared"; diff --git a/pkgs/by-name/bi/binutils/2.38/libopcodes.nix b/pkgs/by-name/bi/binutils/2.38/libopcodes.nix index 16b3695..f4cb861 100644 --- a/pkgs/by-name/bi/binutils/2.38/libopcodes.nix +++ b/pkgs/by-name/bi/binutils/2.38/libopcodes.nix @@ -1,18 +1,25 @@ -{ lib, stdenv, buildPackages -, autoreconfHook, bison, binutils-unwrapped_2_38 -, libiberty, libbfd_2_38 +{ + lib, + stdenv, + buildPackages, + autoreconfHook, + bison, + binutils-unwrapped_2_38, + libiberty, + libbfd_2_38, }: stdenv.mkDerivation { pname = "libopcodes"; inherit (binutils-unwrapped_2_38) version src; - outputs = [ "out" "dev" ]; - - patches = binutils-unwrapped_2_38.patches ++ [ - ./build-components-separately.patch + outputs = [ + "out" + "dev" ]; + patches = binutils-unwrapped_2_38.patches ++ [ ./build-components-separately.patch ]; + # We just want to build libopcodes postPatch = '' cd opcodes @@ -20,14 +27,21 @@ stdenv.mkDerivation { ''; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ autoreconfHook bison ]; + nativeBuildInputs = [ + autoreconfHook + bison + ]; buildInputs = [ libiberty ]; # dis-asm.h includes bfd.h propagatedBuildInputs = [ libbfd_2_38 ]; - configurePlatforms = [ "build" "host" ]; + configurePlatforms = [ + "build" + "host" + ]; configureFlags = [ - "--enable-targets=all" "--enable-64-bit-bfd" + "--enable-targets=all" + "--enable-64-bit-bfd" "--enable-install-libbfd" "--enable-shared" ]; diff --git a/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix b/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix index 86eae18..98da12d 100644 --- a/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix +++ b/pkgs/by-name/bi/binutils/bintools-wrapper/default.nix @@ -5,59 +5,72 @@ # script that sets up the right environment variables so that the # compiler and the linker just "work". -{ name ? "" -, lib -, stdenvNoCC -, runtimeShell -, bintools ? null, libc ? null, coreutils ? null, gnugrep ? null -, netbsd ? null, netbsdCross ? null -, sharedLibraryLoader ? - if libc == null then - null - else if stdenvNoCC.targetPlatform.isNetBSD then - if !(targetPackages ? netbsdCross) then - netbsd.ld_elf_so - else if libc != targetPackages.netbsdCross.headers then - targetPackages.netbsdCross.ld_elf_so - else +{ + name ? "", + lib, + stdenvNoCC, + runtimeShell, + bintools ? null, + libc ? null, + coreutils ? null, + gnugrep ? null, + netbsd ? null, + netbsdCross ? null, + sharedLibraryLoader ? + if libc == null then null - else - lib.getLib libc -, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? "" -, propagateDoc ? bintools != null && bintools ? man -, extraPackages ? [], extraBuildCommands ? "" -, isGNU ? bintools.isGNU or false -, isLLVM ? bintools.isLLVM or false -, isCCTools ? bintools.isCCTools or false -, expand-response-params -, targetPackages ? {} -, useMacosReexportHack ? false -, wrapGas ? false + else if stdenvNoCC.targetPlatform.isNetBSD then + if !(targetPackages ? netbsdCross) then + netbsd.ld_elf_so + else if libc != targetPackages.netbsdCross.headers then + targetPackages.netbsdCross.ld_elf_so + else + null + else + lib.getLib libc, + nativeTools, + noLibc ? false, + nativeLibc, + nativePrefix ? "", + propagateDoc ? bintools != null && bintools ? man, + extraPackages ? [ ], + extraBuildCommands ? "", + isGNU ? bintools.isGNU or false, + isLLVM ? bintools.isLLVM or false, + isCCTools ? bintools.isCCTools or false, + expand-response-params, + targetPackages ? { }, + useMacosReexportHack ? false, + wrapGas ? false, -# Note: the hardening flags are part of the bintools-wrapper, rather than -# the cc-wrapper, because a few of them are handled by the linker. -, defaultHardeningFlags ? [ - "bindnow" - "format" - "fortify" - "fortify3" - "pic" - "relro" - "stackprotector" - "strictoverflow" - ] ++ lib.optional (with stdenvNoCC; - # Musl-based platforms will keep "pie", other platforms will not. - # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` - # in the nixpkgs manual to inform users about the defaults. - targetPlatform.libc == "musl" - # Except when: - # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. - # - static armv7l, where compilation fails. - && !(targetPlatform.isAarch && targetPlatform.isStatic) - ) "pie" + # Note: the hardening flags are part of the bintools-wrapper, rather than + # the cc-wrapper, because a few of them are handled by the linker. + defaultHardeningFlags ? + [ + "bindnow" + "format" + "fortify" + "fortify3" + "pic" + "relro" + "stackprotector" + "strictoverflow" + ] + ++ lib.optional ( + with stdenvNoCC; + # Musl-based platforms will keep "pie", other platforms will not. + # If you change this, make sure to update section `{#sec-hardening-in-nixpkgs}` + # in the nixpkgs manual to inform users about the defaults. + targetPlatform.libc == "musl" + # Except when: + # - static aarch64, where compilation works, but produces segfaulting dynamically linked binaries. + # - static armv7l, where compilation fails. + && !(targetPlatform.isAarch && targetPlatform.isStatic) + ) "pie", -# Darwin code signing support utilities -, postLinkSignHook ? null, signingUtils ? null + # Darwin code signing support utilities + postLinkSignHook ? null, + signingUtils ? null, }: assert nativeTools -> !propagateDoc && nativePrefix != ""; @@ -90,8 +103,7 @@ let # # TODO(@Ericson2314) Make unconditional, or optional but always true by # default. - targetPrefix = optionalString (targetPlatform != hostPlatform) - (targetPlatform.config + "-"); + targetPrefix = optionalString (targetPlatform != hostPlatform) (targetPlatform.config + "-"); bintoolsVersion = getVersion bintools; bintoolsName = removePrefix targetPrefix (getName bintools); @@ -104,39 +116,67 @@ let coreutils_bin = optionalString (!nativeTools) (getBin coreutils); # See description in cc-wrapper. - suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; + suffixSalt = + replaceStrings + [ + "-" + "." + ] + [ + "_" + "_" + ] + targetPlatform.config; # The dynamic linker has different names on different platforms. This is a # shell glob that ought to match it. dynamicLinker = - /**/ if sharedLibraryLoader == null then "" - else if targetPlatform.libc == "musl" then "${sharedLibraryLoader}/lib/ld-musl-*" - else if targetPlatform.libc == "uclibc" then "${sharedLibraryLoader}/lib/ld*-uClibc.so.1" - else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then "/system/bin/linker" - else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then "/system/bin/linker64" - else if targetPlatform.libc == "nblibc" then "${sharedLibraryLoader}/libexec/ld.elf_so" - else if targetPlatform.system == "i686-linux" then "${sharedLibraryLoader}/lib/ld-linux.so.2" - else if targetPlatform.system == "x86_64-linux" then "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2" + if sharedLibraryLoader == null then + "" + else if targetPlatform.libc == "musl" then + "${sharedLibraryLoader}/lib/ld-musl-*" + else if targetPlatform.libc == "uclibc" then + "${sharedLibraryLoader}/lib/ld*-uClibc.so.1" + else if (targetPlatform.libc == "bionic" && targetPlatform.is32bit) then + "/system/bin/linker" + else if (targetPlatform.libc == "bionic" && targetPlatform.is64bit) then + "/system/bin/linker64" + else if targetPlatform.libc == "nblibc" then + "${sharedLibraryLoader}/libexec/ld.elf_so" + else if targetPlatform.system == "i686-linux" then + "${sharedLibraryLoader}/lib/ld-linux.so.2" + else if targetPlatform.system == "x86_64-linux" then + "${sharedLibraryLoader}/lib/ld-linux-x86-64.so.2" # ELFv1 (.1) or ELFv2 (.2) ABI - else if targetPlatform.isPower64 then "${sharedLibraryLoader}/lib/ld64.so.*" + else if targetPlatform.isPower64 then + "${sharedLibraryLoader}/lib/ld64.so.*" # ARM with a wildcard, which can be "" or "-armhf". - else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3" - else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" - else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1" - else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1" + else if (with targetPlatform; isAarch32 && isLinux) then + "${sharedLibraryLoader}/lib/ld-linux*.so.3" + else if targetPlatform.system == "aarch64-linux" then + "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" + else if targetPlatform.system == "powerpc-linux" then + "${sharedLibraryLoader}/lib/ld.so.1" + else if targetPlatform.isMips then + "${sharedLibraryLoader}/lib/ld.so.1" # `ld-linux-riscv{32,64}-.so.1` - else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1" - else if targetPlatform.isLoongArch64 then "${sharedLibraryLoader}/lib/ld-linux-loongarch*.so.1" - else if targetPlatform.isDarwin then "/usr/lib/dyld" - else if targetPlatform.isFreeBSD then "/libexec/ld-elf.so.1" - else if hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1" - else ""; + else if targetPlatform.isRiscV then + "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1" + else if targetPlatform.isLoongArch64 then + "${sharedLibraryLoader}/lib/ld-linux-loongarch*.so.1" + else if targetPlatform.isDarwin then + "/usr/lib/dyld" + else if targetPlatform.isFreeBSD then + "/libexec/ld-elf.so.1" + else if hasSuffix "pc-gnu" targetPlatform.config then + "ld.so.1" + else + ""; in stdenvNoCC.mkDerivation { - pname = targetPrefix - + (if name != "" then name else "${bintoolsName}-wrapper"); + pname = targetPrefix + (if name != "" then name else "${bintoolsName}-wrapper"); version = optionalString (bintools != null) bintoolsVersion; preferLocalBuild = true; @@ -184,22 +224,27 @@ stdenvNoCC.mkDerivation { } '' - + (if nativeTools then '' - echo ${nativePrefix} > $out/nix-support/orig-bintools + + ( + if nativeTools then + '' + echo ${nativePrefix} > $out/nix-support/orig-bintools - ldPath="${nativePrefix}/bin" - '' else '' - echo $bintools_bin > $out/nix-support/orig-bintools + ldPath="${nativePrefix}/bin" + '' + else + '' + echo $bintools_bin > $out/nix-support/orig-bintools - ldPath="${bintools_bin}/bin" - '' + ldPath="${bintools_bin}/bin" + '' - # Solaris needs an additional ld wrapper. - + optionalString (targetPlatform.isSunOS && nativePrefix != "") '' - ldPath="${nativePrefix}/bin" - exec="$ldPath/${targetPrefix}ld" - wrap ld-solaris ${./ld-solaris-wrapper.sh} - '') + # Solaris needs an additional ld wrapper. + + optionalString (targetPlatform.isSunOS && nativePrefix != "") '' + ldPath="${nativePrefix}/bin" + exec="$ldPath/${targetPrefix}ld" + wrap ld-solaris ${./ld-solaris-wrapper.sh} + '' + ) # If we are asked to wrap `gas` and this bintools has it, # then symlink it (`as` will be symlinked next). @@ -222,16 +267,23 @@ stdenvNoCC.mkDerivation { fi done - '' + (if !useMacosReexportHack then '' - if [ -e ''${ld:-$ldPath/${targetPrefix}ld} ]; then - wrap ${targetPrefix}ld ${./ld-wrapper.sh} ''${ld:-$ldPath/${targetPrefix}ld} - fi - '' else '' - ldInner="${targetPrefix}ld-reexport-delegate" - wrap "$ldInner" ${./macos-sierra-reexport-hack.bash} ''${ld:-$ldPath/${targetPrefix}ld} - wrap "${targetPrefix}ld" ${./ld-wrapper.sh} "$out/bin/$ldInner" - unset ldInner - '') + '' + '' + + ( + if !useMacosReexportHack then + '' + if [ -e ''${ld:-$ldPath/${targetPrefix}ld} ]; then + wrap ${targetPrefix}ld ${./ld-wrapper.sh} ''${ld:-$ldPath/${targetPrefix}ld} + fi + '' + else + '' + ldInner="${targetPrefix}ld-reexport-delegate" + wrap "$ldInner" ${./macos-sierra-reexport-hack.bash} ''${ld:-$ldPath/${targetPrefix}ld} + wrap "${targetPrefix}ld" ${./ld-wrapper.sh} "$out/bin/$ldInner" + unset ldInner + '' + ) + + '' for variant in $ldPath/${targetPrefix}ld.*; do basename=$(basename "$variant") @@ -251,47 +303,54 @@ stdenvNoCC.mkDerivation { ## ## General libc support ## - optionalString (libc != null) ('' - touch "$out/nix-support/libc-ldflags" - echo "-L${libc_lib}${libc.libdir or "/lib"}" >> $out/nix-support/libc-ldflags + optionalString (libc != null) ( + '' + touch "$out/nix-support/libc-ldflags" + echo "-L${libc_lib}${libc.libdir or "/lib"}" >> $out/nix-support/libc-ldflags - echo "${libc_lib}" > $out/nix-support/orig-libc - echo "${libc_dev}" > $out/nix-support/orig-libc-dev - '' + echo "${libc_lib}" > $out/nix-support/orig-libc + echo "${libc_dev}" > $out/nix-support/orig-libc-dev + '' - ## - ## Dynamic linker support - ## - + optionalString (sharedLibraryLoader != null) '' - if [[ -z ''${dynamicLinker+x} ]]; then - echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2 - local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?" - fi - '' + ## + ## Dynamic linker support + ## + + optionalString (sharedLibraryLoader != null) '' + if [[ -z ''${dynamicLinker+x} ]]; then + echo "Don't know the name of the dynamic linker for platform '${targetPlatform.config}', so guessing instead." >&2 + local dynamicLinker="${sharedLibraryLoader}/lib/ld*.so.?" + fi + '' - # Expand globs to fill array of options - + '' - dynamicLinker=($dynamicLinker) + # Expand globs to fill array of options + + '' + dynamicLinker=($dynamicLinker) - case ''${#dynamicLinker[@]} in - 0) echo "No dynamic linker found for platform '${targetPlatform.config}'." >&2;; - 1) echo "Using dynamic linker: '$dynamicLinker'" >&2;; - *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;; - esac + case ''${#dynamicLinker[@]} in + 0) echo "No dynamic linker found for platform '${targetPlatform.config}'." >&2;; + 1) echo "Using dynamic linker: '$dynamicLinker'" >&2;; + *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;; + esac - if [ -n "''${dynamicLinker-}" ]; then - echo $dynamicLinker > $out/nix-support/dynamic-linker + if [ -n "''${dynamicLinker-}" ]; then + echo $dynamicLinker > $out/nix-support/dynamic-linker - ${if targetPlatform.isDarwin then '' - printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook - '' else optionalString (sharedLibraryLoader != null) '' - if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then - echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32 - fi - touch $out/nix-support/ld-set-dynamic-linker - ''} - fi - '') + ${ + if targetPlatform.isDarwin then + '' + printf "export LD_DYLD_PATH=%q\n" "$dynamicLinker" >> $out/nix-support/setup-hook + '' + else + optionalString (sharedLibraryLoader != null) '' + if [ -e ${sharedLibraryLoader}/lib/32/ld-linux.so.2 ]; then + echo ${sharedLibraryLoader}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32 + fi + touch $out/nix-support/ld-set-dynamic-linker + '' + } + fi + '' + ) ## ## User env support @@ -301,17 +360,22 @@ stdenvNoCC.mkDerivation { # install the wrapper, you get tools like objdump (same for any # binaries of libc). + optionalString (!nativeTools) '' - printWords ${bintools_bin} ${optionalString (libc != null) libc_bin} > $out/nix-support/propagated-user-env-packages + printWords ${bintools_bin} ${ + optionalString (libc != null) libc_bin + } > $out/nix-support/propagated-user-env-packages '' ## ## Man page and info support ## - + optionalString propagateDoc ('' - ln -s ${bintools.man} $man - '' + optionalString (bintools ? info) '' - ln -s ${bintools.info} $info - '') + + optionalString propagateDoc ( + '' + ln -s ${bintools.man} $man + '' + + optionalString (bintools ? info) '' + ln -s ${bintools.info} $info + '' + ) ## ## Hardening support @@ -379,9 +443,13 @@ stdenvNoCC.mkDerivation { + optionalString targetPlatform.isDarwin ( let inherit (targetPlatform) - darwinPlatform darwinSdkVersion - darwinMinVersion darwinMinVersionVariable; - in '' + darwinPlatform + darwinSdkVersion + darwinMinVersion + darwinMinVersionVariable + ; + in + '' export darwinPlatform=${darwinPlatform} export darwinMinVersion=${darwinMinVersion} export darwinSdkVersion=${darwinSdkVersion} @@ -421,19 +489,34 @@ stdenvNoCC.mkDerivation { shell = (getBin runtimeShell + runtimeShell.shellPath or ""); gnugrep_bin = optionalString (!nativeTools) gnugrep; wrapperName = "BINTOOLS_WRAPPER"; - inherit dynamicLinker targetPrefix suffixSalt coreutils_bin; - inherit bintools_bin libc_bin libc_dev libc_lib; + inherit + dynamicLinker + targetPrefix + suffixSalt + coreutils_bin + ; + inherit + bintools_bin + libc_bin + libc_dev + libc_lib + ; default_hardening_flags_str = builtins.toString defaultHardeningFlags; }; meta = - let bintools_ = optionalAttrs (bintools != null) bintools; in - (optionalAttrs (bintools_ ? meta) (removeAttrs bintools.meta ["priority"])) // - { description = - attrByPath ["meta" "description"] "System binary utilities" bintools_ + let + bintools_ = optionalAttrs (bintools != null) bintools; + in + (optionalAttrs (bintools_ ? meta) (removeAttrs bintools.meta [ "priority" ])) + // { + description = + attrByPath [ + "meta" + "description" + ] "System binary utilities" bintools_ + " (wrapper script)"; priority = 10; - } // optionalAttrs useMacosReexportHack { - platforms = platforms.darwin; - }; + } + // optionalAttrs useMacosReexportHack { platforms = platforms.darwin; }; } diff --git a/pkgs/by-name/bi/binutils/default.nix b/pkgs/by-name/bi/binutils/default.nix index c707d0d..c9cb921 100644 --- a/pkgs/by-name/bi/binutils/default.nix +++ b/pkgs/by-name/bi/binutils/default.nix @@ -2,26 +2,29 @@ let withGold = platform: platform.isElf && !platform.isRiscV && !platform.isLoongArch64; in -{ stdenv -, autoreconfHook -, autoconf269, automake, libtool -, bison -, buildPackages -, fetchFromGitHub -, fetchurl -, flex -, gettext -, lib -, noSysDirs -, perl -, substitute -, zlib +{ + stdenv, + autoreconfHook, + autoconf269, + automake, + libtool, + bison, + buildPackages, + fetchFromGitHub, + fetchurl, + flex, + gettext, + lib, + noSysDirs, + perl, + substitute, + zlib, -, enableGold ? withGold stdenv.targetPlatform -, enableGoldDefault ? false -, enableShared ? !stdenv.hostPlatform.isStatic + enableGold ? withGold stdenv.targetPlatform, + enableGoldDefault ? false, + enableShared ? !stdenv.hostPlatform.isStatic, # WARN: Enabling all targets increases output size to a multiple. -, withAllTargets ? false + withAllTargets ? false, }: # WARN: configure silently disables ld.gold if it's unsupported, so we need to @@ -29,7 +32,6 @@ in assert enableGold -> withGold stdenv.targetPlatform; assert enableGoldDefault -> enableGold; - let inherit (stdenv) buildPlatform hostPlatform targetPlatform; @@ -58,105 +60,118 @@ stdenv.mkDerivation (finalAttrs: { inherit version; # HACK: Ensure that we preserve source from bootstrap binutils to not rebuild LLVM - src = stdenv.__bootPackages.binutils-unwrapped.src - or srcs.${targetPlatform.system} - or srcs.normal; + src = stdenv.__bootPackages.binutils-unwrapped.src or srcs.${targetPlatform.system} or srcs.normal; # WARN: this package is used for bootstrapping fetchurl, and thus cannot use # fetchpatch! All mutable patches (generated by GitHub or cgit) that are # needed here should be included directly in Nixpkgs as files. - patches = [ - # Upstream patch to fix llvm testsuite failure when loading powerpc - # objects: - # https://sourceware.org/PR30794 - ./gold-powerpc-for-llvm.patch + patches = + [ + # Upstream patch to fix llvm testsuite failure when loading powerpc + # objects: + # https://sourceware.org/PR30794 + ./gold-powerpc-for-llvm.patch - # Make binutils output deterministic by default. - ./deterministic.patch + # Make binutils output deterministic by default. + ./deterministic.patch + # Breaks nm BSD flag detection, heeds an upstream fix: + # https://sourceware.org/PR29547 + ./0001-Revert-libtool.m4-fix-the-NM-nm-over-here-B-option-w.patch + ./0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch - # Breaks nm BSD flag detection, heeds an upstream fix: - # https://sourceware.org/PR29547 - ./0001-Revert-libtool.m4-fix-the-NM-nm-over-here-B-option-w.patch - ./0001-Revert-libtool.m4-fix-nm-BSD-flag-detection.patch + # Required for newer macos versions + ./0001-libtool.m4-update-macos-version-detection-block.patch - # Required for newer macos versions - ./0001-libtool.m4-update-macos-version-detection-block.patch + # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's + # not clear why this behavior was decided upon but it has the unfortunate + # consequence that the linker will fail to find transitive dependencies of + # shared objects when cross-compiling. Consequently, we are forced to + # override this behavior, forcing ld to search DT_RPATH even when + # cross-compiling. + ./always-search-rpath.patch - # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's - # not clear why this behavior was decided upon but it has the unfortunate - # consequence that the linker will fail to find transitive dependencies of - # shared objects when cross-compiling. Consequently, we are forced to - # override this behavior, forcing ld to search DT_RPATH even when - # cross-compiling. - ./always-search-rpath.patch + # Avoid `lib -> out -> lib` reference. Normally `bfd-plugins` does + # not need to know binutils' BINDIR at all. It's an absolute path + # where libraries are stored. + ./plugins-no-BINDIR.patch + ] + ++ lib.optional targetPlatform.isiOS ./support-ios.patch + # Adds AVR-specific options to "size" for compatibility with Atmel's downstream distribution + # Patch from arch-community + # https://github.com/archlinux/svntogit-community/blob/c8d53dd1734df7ab15931f7fad0c9acb8386904c/trunk/avr-size.patch + ++ lib.optional targetPlatform.isAvr ./avr-size.patch + ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch; - # Avoid `lib -> out -> lib` reference. Normally `bfd-plugins` does - # not need to know binutils' BINDIR at all. It's an absolute path - # where libraries are stored. - ./plugins-no-BINDIR.patch - ] - ++ lib.optional targetPlatform.isiOS ./support-ios.patch - # Adds AVR-specific options to "size" for compatibility with Atmel's downstream distribution - # Patch from arch-community - # https://github.com/archlinux/svntogit-community/blob/c8d53dd1734df7ab15931f7fad0c9acb8386904c/trunk/avr-size.patch - ++ lib.optional targetPlatform.isAvr ./avr-size.patch - ++ lib.optional stdenv.targetPlatform.isWindows ./windres-locate-gcc.patch - ; - - outputs = [ "out" "info" "man" "dev" ] - # Ideally we would like to always install 'lib' into a separate - # target. Unfortunately cross-compiled binutils installs libraries - # across both `$lib/lib/` and `$out/$target/lib` with a reference - # from $out to $lib. Probably a binutils bug: all libraries should go - # to $lib as binutils does not build target libraries. Let's make our - # life slightly simpler by installing everything into $out for - # cross-binutils. - ++ lib.optionals (targetPlatform == hostPlatform) [ "lib" ]; + outputs = + [ + "out" + "info" + "man" + "dev" + ] + # Ideally we would like to always install 'lib' into a separate + # target. Unfortunately cross-compiled binutils installs libraries + # across both `$lib/lib/` and `$out/$target/lib` with a reference + # from $out to $lib. Probably a binutils bug: all libraries should go + # to $lib as binutils does not build target libraries. Let's make our + # life slightly simpler by installing everything into $out for + # cross-binutils. + ++ lib.optionals (targetPlatform == hostPlatform) [ "lib" ]; strictDeps = true; depsBuildBuild = [ buildPackages.stdenv.cc ]; # texinfo was removed here in https://github.com/NixOS/nixpkgs/pull/210132 # to reduce rebuilds during stdenv bootstrap. Please don't add it back without # checking the impact there first. - nativeBuildInputs = [ - bison - perl - ] - ++ lib.optionals targetPlatform.isiOS [ autoreconfHook ] - ++ lib.optionals buildPlatform.isDarwin [ autoconf269 automake gettext libtool ] - ++ lib.optionals targetPlatform.isVc4 [ flex ] - ; + nativeBuildInputs = + [ + bison + perl + ] + ++ lib.optionals targetPlatform.isiOS [ autoreconfHook ] + ++ lib.optionals buildPlatform.isDarwin [ + autoconf269 + automake + gettext + libtool + ] + ++ lib.optionals targetPlatform.isVc4 [ flex ]; - buildInputs = [ zlib gettext ]; + buildInputs = [ + zlib + gettext + ]; inherit noSysDirs; - preConfigure = (lib.optionalString buildPlatform.isDarwin '' - for i in */configure.ac; do - pushd "$(dirname "$i")" - echo "Running autoreconf in $PWD" - # autoreconf doesn't work, don't know why - # autoreconf ''${autoreconfFlags:---install --force --verbose} - autoconf - popd - done - '') + '' - # Clear the default library search path. - if test "$noSysDirs" = "1"; then - echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt - fi + preConfigure = + (lib.optionalString buildPlatform.isDarwin '' + for i in */configure.ac; do + pushd "$(dirname "$i")" + echo "Running autoreconf in $PWD" + # autoreconf doesn't work, don't know why + # autoreconf ''${autoreconfFlags:---install --force --verbose} + autoconf + popd + done + '') + + '' + # Clear the default library search path. + if test "$noSysDirs" = "1"; then + echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt + fi - # Use symlinks instead of hard links to save space ("strip" in the - # fixup phase strips each hard link separately). - for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do - sed -i "$i" -e 's|ln |ln -s |' - done + # Use symlinks instead of hard links to save space ("strip" in the + # fixup phase strips each hard link separately). + for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do + sed -i "$i" -e 's|ln |ln -s |' + done - # autoreconfHook is not included for all targets. - # Call it here explicitly as well. - ${finalAttrs.postAutoreconf} - ''; + # autoreconfHook is not included for all targets. + # Call it here explicitly as well. + ${finalAttrs.postAutoreconf} + ''; postAutoreconf = '' # As we regenerated configure build system tries hard to use @@ -171,59 +186,81 @@ stdenv.mkDerivation (finalAttrs: { # As binutils takes part in the stdenv building, we don't want references # to the bootstrap-tools libgcc (as uses to happen on arm/mips) env.NIX_CFLAGS_COMPILE = - if hostPlatform.isDarwin - then "-Wno-string-plus-int -Wno-deprecated-declarations" - else "-static-libgcc"; + if hostPlatform.isDarwin then + "-Wno-string-plus-int -Wno-deprecated-declarations" + else + "-static-libgcc"; - hardeningDisable = [ "format" "pie" ]; + hardeningDisable = [ + "format" + "pie" + ]; - configurePlatforms = [ "build" "host" "target" ]; + configurePlatforms = [ + "build" + "host" + "target" + ]; - configureFlags = [ - "--enable-64-bit-bfd" - "--with-system-zlib" + configureFlags = + [ + "--enable-64-bit-bfd" + "--with-system-zlib" - "--enable-deterministic-archives" - "--disable-werror" - "--enable-fix-loongson2f-nop" + "--enable-deterministic-archives" + "--disable-werror" + "--enable-fix-loongson2f-nop" - # Turn on --enable-new-dtags by default to make the linker set - # RUNPATH instead of RPATH on binaries. This is important because - # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. - "--enable-new-dtags" + # Turn on --enable-new-dtags by default to make the linker set + # RUNPATH instead of RPATH on binaries. This is important because + # RUNPATH can be overridden using LD_LIBRARY_PATH at runtime. + "--enable-new-dtags" - # force target prefix. Some versions of binutils will make it empty if - # `--host` and `--target` are too close, even if Nixpkgs thinks the - # platforms are different (e.g. because not all the info makes the - # `config`). Other versions of binutils will always prefix if `--target` is - # passed, even if `--host` and `--target` are the same. The easiest thing - # for us to do is not leave it to chance, and force the program prefix to be - # what we want it to be. - "--program-prefix=${targetPrefix}" + # force target prefix. Some versions of binutils will make it empty if + # `--host` and `--target` are too close, even if Nixpkgs thinks the + # platforms are different (e.g. because not all the info makes the + # `config`). Other versions of binutils will always prefix if `--target` is + # passed, even if `--host` and `--target` are the same. The easiest thing + # for us to do is not leave it to chance, and force the program prefix to be + # what we want it to be. + "--program-prefix=${targetPrefix}" - # Unconditionally disable: - # - musl target needs porting: https://sourceware.org/PR29477 - "--disable-gprofng" + # Unconditionally disable: + # - musl target needs porting: https://sourceware.org/PR29477 + "--disable-gprofng" - # By default binutils searches $libdir for libraries. This brings in - # libbfd and libopcodes into a default visibility. Drop default lib - # path to force users to declare their use of these libraries. - "--with-lib-path=:" - ] - ++ lib.optionals withAllTargets [ "--enable-targets=all" ] - ++ lib.optionals enableGold [ - "--enable-gold${lib.optionalString enableGoldDefault "=default"}" - "--enable-plugins" - ] ++ (if enableShared - then [ "--enable-shared" "--disable-static" ] - else [ "--disable-shared" "--enable-static" ]) - ; + # By default binutils searches $libdir for libraries. This brings in + # libbfd and libopcodes into a default visibility. Drop default lib + # path to force users to declare their use of these libraries. + "--with-lib-path=:" + ] + ++ lib.optionals withAllTargets [ "--enable-targets=all" ] + ++ lib.optionals enableGold [ + "--enable-gold${lib.optionalString enableGoldDefault "=default"}" + "--enable-plugins" + ] + ++ ( + if enableShared then + [ + "--enable-shared" + "--disable-static" + ] + else + [ + "--disable-shared" + "--enable-static" + ] + ); # Fails doCheck = false; # Break dependency on pkgsBuildBuild.gcc when building a cross-binutils - stripDebugList = if stdenv.hostPlatform != stdenv.targetPlatform then "bin lib ${stdenv.hostPlatform.config}" else null; + stripDebugList = + if stdenv.hostPlatform != stdenv.targetPlatform then + "bin lib ${stdenv.hostPlatform.config}" + else + null; # INFO: Otherwise it fails with: # `./sanity.sh: line 36: $out/bin/size: not found` @@ -263,7 +300,10 @@ stdenv.mkDerivation (finalAttrs: { ''; homepage = "https://www.gnu.org/software/binutils/"; license = licenses.gpl3Plus; - maintainers = with maintainers; [ ericson2314 lovesegfault ]; + maintainers = with maintainers; [ + ericson2314 + lovesegfault + ]; platforms = platforms.unix; # INFO: Give binutils a lower priority than gcc-wrapper to prevent a diff --git a/pkgs/by-name/bi/binutils/libbfd.nix b/pkgs/by-name/bi/binutils/libbfd.nix index dca62b8..0d78627 100644 --- a/pkgs/by-name/bi/binutils/libbfd.nix +++ b/pkgs/by-name/bi/binutils/libbfd.nix @@ -1,5 +1,7 @@ -{ lib, stdenv -, binutils-unwrapped-all-targets +{ + lib, + stdenv, + binutils-unwrapped-all-targets, }: stdenv.mkDerivation { diff --git a/pkgs/by-name/bi/binutils/libopcodes.nix b/pkgs/by-name/bi/binutils/libopcodes.nix index 06ef999..4bd42c3 100644 --- a/pkgs/by-name/bi/binutils/libopcodes.nix +++ b/pkgs/by-name/bi/binutils/libopcodes.nix @@ -1,5 +1,7 @@ -{ lib, stdenv -, binutils-unwrapped-all-targets +{ + lib, + stdenv, + binutils-unwrapped-all-targets, }: stdenv.mkDerivation { diff --git a/pkgs/by-name/bi/binutils/packages.nix b/pkgs/by-name/bi/binutils/packages.nix index e4ffdcf..2693f72 100644 --- a/pkgs/by-name/bi/binutils/packages.nix +++ b/pkgs/by-name/bi/binutils/packages.nix @@ -1,8 +1,7 @@ { lib, noSysDirs, ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Here we select the default bintools implementations to be used. Note when # cross compiling these are used not for this stage but the *next* stage. # That is why we choose using this stage's target platform / next stage's @@ -23,18 +22,20 @@ with pkgs; let inherit (stdenv.targetPlatform) linker; in - if linker == "lld" then llvmPackages.bintools-unwrapped + if linker == "lld" then + llvmPackages.bintools-unwrapped # else if linker == "cctools" then darwin.binutils-unwrapped - else if linker == "bfd" then binutils-unwrapped - else if linker == "gold" then binutils-unwrapped.override { enableGoldDefault = true; } - else null; + else if linker == "bfd" then + binutils-unwrapped + else if linker == "gold" then + binutils-unwrapped.override { enableGoldDefault = true; } + else + null; bintoolsNoLibc = wrapBintoolsWith { bintools = bintools-unwrapped; libc = preLibcCrossHeaders; }; - bintools = wrapBintoolsWith { - bintools = bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = bintools-unwrapped; }; bintoolsDualAs = wrapBintoolsWith { bintools = darwin.binutilsDualAs-unwrapped; @@ -52,13 +53,9 @@ with pkgs; noSysDirs = (stdenv.targetPlatform != stdenv.hostPlatform) || noSysDirs; withAllTargets = true; }; - binutils = wrapBintoolsWith { - bintools = binutils-unwrapped; - }; + binutils = wrapBintoolsWith { bintools = binutils-unwrapped; }; binutils_nogold = lowPrio (wrapBintoolsWith { - bintools = binutils-unwrapped.override { - enableGold = false; - }; + bintools = binutils-unwrapped.override { enableGold = false; }; }); binutilsNoLibc = wrapBintoolsWith { bintools = binutils-unwrapped; diff --git a/pkgs/by-name/bi/bison/default.nix b/pkgs/by-name/bi/bison/default.nix index 8f8dd82..92c8e40 100644 --- a/pkgs/by-name/bi/bison/default.nix +++ b/pkgs/by-name/bi/bison/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, m4, perl, help2man }: +{ + lib, + stdenv, + fetchurl, + m4, + perl, + help2man, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -16,14 +23,20 @@ stdenv.mkDerivation rec { # gnulib relies on --host= to detect iconv() features on musl(). # Otherwise tests fail due to incorrect unicode symbol oconversion. - configurePlatforms = [ "build" "host" ]; + configurePlatforms = [ + "build" + "host" + ]; # there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell # however when cross-compiling it would still be patched with the build stdenv shell which would be wrong # cannot add bash to buildInputs due to infinite recursion strictDeps = stdenv.hostPlatform != stdenv.buildPlatform; - nativeBuildInputs = [ m4 perl ] ++ lib.optional stdenv.isSunOS help2man; + nativeBuildInputs = [ + m4 + perl + ] ++ lib.optional stdenv.isSunOS help2man; propagatedBuildInputs = [ m4 ]; enableParallelBuilding = true; diff --git a/pkgs/by-name/bl/bluez-alsa/default.nix b/pkgs/by-name/bl/bluez-alsa/default.nix index 911efe4..8899882 100644 --- a/pkgs/by-name/bl/bluez-alsa/default.nix +++ b/pkgs/by-name/bl/bluez-alsa/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, aacSupport ? true -, alsa-lib -, autoreconfHook -, bluez -, dbus -, fdk_aac -, fetchFromGitHub -, gitUpdater -, glib -, libbsd -, ncurses -, pkg-config -, readline -, sbc +{ + lib, + stdenv, + aacSupport ? true, + alsa-lib, + autoreconfHook, + bluez, + dbus, + fdk_aac, + fetchFromGitHub, + gitUpdater, + glib, + libbsd, + ncurses, + pkg-config, + readline, + sbc, }: stdenv.mkDerivation (finalAttrs: { @@ -41,9 +42,7 @@ stdenv.mkDerivation (finalAttrs: { readline libbsd ncurses - ] ++ lib.optionals aacSupport [ - fdk_aac - ]; + ] ++ lib.optionals aacSupport [ fdk_aac ]; configureFlags = [ (lib.enableFeature aacSupport "aac") @@ -79,7 +78,10 @@ stdenv.mkDerivation (finalAttrs: { ''; license = with lib.licenses; [ mit ]; mainProgram = "bluealsa"; - maintainers = with lib.maintainers; [ AndersonTorres oxij ]; + maintainers = with lib.maintainers; [ + AndersonTorres + oxij + ]; platforms = lib.platforms.linux; }; }) diff --git a/pkgs/by-name/bl/bluez-tools/default.nix b/pkgs/by-name/bl/bluez-tools/default.nix index 47d381a..2e11d5e 100644 --- a/pkgs/by-name/bl/bluez-tools/default.nix +++ b/pkgs/by-name/bl/bluez-tools/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, autoreconfHook -, fetchFromGitHub -, glib -, pkg-config -, readline -, unstableGitUpdater +{ + lib, + stdenv, + autoreconfHook, + fetchFromGitHub, + glib, + pkg-config, + readline, + unstableGitUpdater, }: stdenv.mkDerivation (finalAttrs: { diff --git a/pkgs/by-name/bl/bluez/default.nix b/pkgs/by-name/bl/bluez/default.nix index f23f333..b466e40 100644 --- a/pkgs/by-name/bl/bluez/default.nix +++ b/pkgs/by-name/bl/bluez/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, alsa-lib -, dbus -, docutils -, ell -, enableExperimental ? false -, fetchurl -, glib -, json_c -, libical -, pkg-config -, python3 -, readline -, systemdMinimal -, udev +{ + lib, + stdenv, + alsa-lib, + dbus, + docutils, + ell, + enableExperimental ? false, + fetchurl, + glib, + json_c, + libical, + pkg-config, + python3, + readline, + systemdMinimal, + udev, }: stdenv.mkDerivation (finalAttrs: { @@ -28,12 +29,10 @@ stdenv.mkDerivation (finalAttrs: { patches = # Disable one failing test with musl libc, also seen by alpine # https://github.com/bluez/bluez/issues/726 - lib.optional (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_64) - (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/main/bluez/disable_aics_unit_testcases.patch?id=8e96f7faf01a45f0ad8449c1cd825db63a8dfd48"; - hash = "sha256-1PJkipqBO3qxxOqRFQKfpWlne1kzTCgtnTFYI1cFQt4="; - }) - ; + lib.optional (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_64) (fetchurl { + url = "https://git.alpinelinux.org/aports/plain/main/bluez/disable_aics_unit_testcases.patch?id=8e96f7faf01a45f0ad8449c1cd825db63a8dfd48"; + hash = "sha256-1PJkipqBO3qxxOqRFQKfpWlne1kzTCgtnTFYI1cFQt4="; + }); buildInputs = [ alsa-lib @@ -54,23 +53,29 @@ stdenv.mkDerivation (finalAttrs: { python3.pkgs.wrapPython ]; - outputs = [ "out" "dev" "test" ]; + outputs = [ + "out" + "dev" + "test" + ]; - postPatch = '' - substituteInPlace tools/hid2hci.rules \ - --replace /sbin/udevadm ${systemdMinimal}/bin/udevadm \ - --replace "hid2hci " "$out/lib/udev/hid2hci " - '' + - # Disable some tests: - # - test-mesh-crypto depends on the following kernel settings: - # CONFIG_CRYPTO_[USER|USER_API|USER_API_AEAD|USER_API_HASH|AES|CCM|AEAD|CMAC] - '' - if [[ ! -f unit/test-mesh-crypto.c ]]; then - echo "unit/test-mesh-crypto.c no longer exists" - false - fi - echo 'int main() { return 77; }' > unit/test-mesh-crypto.c - ''; + postPatch = + '' + substituteInPlace tools/hid2hci.rules \ + --replace /sbin/udevadm ${systemdMinimal}/bin/udevadm \ + --replace "hid2hci " "$out/lib/udev/hid2hci " + '' + + + # Disable some tests: + # - test-mesh-crypto depends on the following kernel settings: + # CONFIG_CRYPTO_[USER|USER_API|USER_API_AEAD|USER_API_HASH|AES|CCM|AEAD|CMAC] + '' + if [[ ! -f unit/test-mesh-crypto.c ]]; then + echo "unit/test-mesh-crypto.c no longer exists" + false + fi + echo 'int main() { return 77; }' > unit/test-mesh-crypto.c + ''; configureFlags = [ "--localstatedir=/var" @@ -98,60 +103,57 @@ stdenv.mkDerivation (finalAttrs: { (lib.withFeatureAs true "udevdir" "${placeholder "out"}/lib/udev") ]; - makeFlags = [ - "rulesdir=${placeholder "out"}/lib/udev/rules.d" - ]; + makeFlags = [ "rulesdir=${placeholder "out"}/lib/udev/rules.d" ]; # Work around `make install' trying to create /var/lib/bluetooth. - installFlags = [ - "statedir=$(TMPDIR)/var/lib/bluetooth" - ]; + installFlags = [ "statedir=$(TMPDIR)/var/lib/bluetooth" ]; doCheck = stdenv.hostPlatform.isx86_64; - postInstall = let - pythonPath = with python3.pkgs; [ - dbus-python - pygobject3 - ]; - in - '' - mkdir -p $test/{bin,test} - cp -a test $test - pushd $test/test - for t in \ - list-devices \ - monitor-bluetooth \ - simple-agent \ - test-adapter \ - test-device \ - test-thermometer \ - ; do - ln -s ../test/$t $test/bin/bluez-$t - done - popd - wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}" + postInstall = + let + pythonPath = with python3.pkgs; [ + dbus-python + pygobject3 + ]; + in + '' + mkdir -p $test/{bin,test} + cp -a test $test + pushd $test/test + for t in \ + list-devices \ + monitor-bluetooth \ + simple-agent \ + test-adapter \ + test-device \ + test-thermometer \ + ; do + ln -s ../test/$t $test/bin/bluez-$t + done + popd + wrapPythonProgramsIn $test/test "$test/test ${toString pythonPath}" - # for bluez4 compatibility for NixOS - mkdir $out/sbin - ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd - ln -s ../libexec/bluetooth/obexd $out/sbin/obexd + # for bluez4 compatibility for NixOS + mkdir $out/sbin + ln -s ../libexec/bluetooth/bluetoothd $out/sbin/bluetoothd + ln -s ../libexec/bluetooth/obexd $out/sbin/obexd - # Add extra configuration - mkdir $out/etc/bluetooth - ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf + # Add extra configuration + mkdir $out/etc/bluetooth + ln -s /etc/bluetooth/main.conf $out/etc/bluetooth/main.conf - # https://github.com/NixOS/nixpkgs/issues/204418 - ln -s /etc/bluetooth/input.conf $out/etc/bluetooth/input.conf - ln -s /etc/bluetooth/network.conf $out/etc/bluetooth/network.conf + # https://github.com/NixOS/nixpkgs/issues/204418 + ln -s /etc/bluetooth/input.conf $out/etc/bluetooth/input.conf + ln -s /etc/bluetooth/network.conf $out/etc/bluetooth/network.conf - # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez - for files in $(find tools/ -type f -perm -755); do - filename=$(basename $files) - install -Dm755 tools/$filename $out/bin/$filename - done - install -Dm755 attrib/gatttool $out/bin/gatttool - ''; + # Add missing tools, ref https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/bluez + for files in $(find tools/ -type f -perm -755); do + filename=$(basename $files) + install -Dm755 tools/$filename $out/bin/$filename + done + install -Dm755 attrib/gatttool $out/bin/gatttool + ''; enableParallelBuilding = true; @@ -159,7 +161,12 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.bluez.org/"; description = "Official Linux Bluetooth protocol stack"; changelog = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/ChangeLog?h=${finalAttrs.version}"; - license = with lib.licenses; [ bsd2 gpl2Plus lgpl21Plus mit ]; + license = with lib.licenses; [ + bsd2 + gpl2Plus + lgpl21Plus + mit + ]; mainProgram = "btinfo"; maintainers = with lib.maintainers; [ AndersonTorres ]; platforms = lib.platforms.linux; diff --git a/pkgs/by-name/bl/bluez/packages.nix b/pkgs/by-name/bl/bluez/packages.nix index 3fa5885..bfdda7c 100644 --- a/pkgs/by-name/bl/bluez/packages.nix +++ b/pkgs/by-name/bl/bluez/packages.nix @@ -1,12 +1,9 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { bluez = callPackage ./. { }; bluez5 = bluez; bluez5-experimental = bluez-experimental; - bluez-experimental = bluez.override { - enableExperimental = true; - }; + bluez-experimental = bluez.override { enableExperimental = true; }; } diff --git a/pkgs/by-name/bo/boehmgc/default.nix b/pkgs/by-name/bo/boehmgc/default.nix index 9711457..9b0ceef 100644 --- a/pkgs/by-name/bo/boehmgc/default.nix +++ b/pkgs/by-name/bo/boehmgc/default.nix @@ -1,12 +1,13 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, # doc: https://github.com/ivmai/bdwgc/blob/v8.2.6/doc/README.macros (LARGE_CONFIG) -, enableLargeConfig ? false -, enableMmap ? true -, enableStatic ? false -, nixVersions + enableLargeConfig ? false, + enableMmap ? true, + enableStatic ? false, + nixVersions, }: stdenv.mkDerivation (finalAttrs: { @@ -20,20 +21,23 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-y6hU5qU4qO9VvQvKNH9dvReCrf3+Ih2HHbF6IS1V3WQ="; }; - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl"; - nativeBuildInputs = [ - autoreconfHook - ]; + nativeBuildInputs = [ autoreconfHook ]; - configureFlags = [ - "--enable-cplusplus" - "--with-libatomic-ops=none" - ] - ++ lib.optional enableStatic "--enable-static" - ++ lib.optional enableMmap "--enable-mmap" - ++ lib.optional enableLargeConfig "--enable-large-config"; + configureFlags = + [ + "--enable-cplusplus" + "--with-libatomic-ops=none" + ] + ++ lib.optional enableStatic "--enable-static" + ++ lib.optional enableMmap "--enable-mmap" + ++ lib.optional enableLargeConfig "--enable-large-config"; # This stanza can be dropped when a release fixes this issue: # https://github.com/ivmai/bdwgc/issues/376 @@ -41,15 +45,12 @@ stdenv.mkDerivation (finalAttrs: { # don't forget to disable the fix (and if the next release does # not fix the problem the test failure will be a reminder to # extend the set of versions requiring the workaround). - makeFlags = lib.optionals - (stdenv.hostPlatform.isPower64 && - finalAttrs.version == "8.2.6") - [ - # do not use /proc primitives to track dirty bits; see: - # https://github.com/ivmai/bdwgc/issues/479#issuecomment-1279687537 - # https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741 - "CFLAGS_EXTRA=-DNO_SOFT_VDB" - ]; + makeFlags = lib.optionals (stdenv.hostPlatform.isPower64 && finalAttrs.version == "8.2.6") [ + # do not use /proc primitives to track dirty bits; see: + # https://github.com/ivmai/bdwgc/issues/479#issuecomment-1279687537 + # https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741 + "CFLAGS_EXTRA=-DNO_SOFT_VDB" + ]; # `gctest` fails under emulation on aarch64-darwin doCheck = !(stdenv.isDarwin && stdenv.isx86_64); diff --git a/pkgs/by-name/bo/boost-build/default.nix b/pkgs/by-name/bo/boost-build/default.nix index 6b485b8..f4b9bed 100644 --- a/pkgs/by-name/bo/boost-build/default.nix +++ b/pkgs/by-name/bo/boost-build/default.nix @@ -1,13 +1,14 @@ -{ lib -, stdenv -, fetchFromGitHub -, bison -# boost derivation to use for the src and version. -# This is used by the boost derivation to build -# a b2 matching their version (by overriding this -# argument). Infinite recursion is not an issue -# since we only look at src and version of boost. -, useBoost ? {} +{ + lib, + stdenv, + fetchFromGitHub, + bison, + # boost derivation to use for the src and version. + # This is used by the boost derivation to build + # a b2 matching their version (by overriding this + # argument). Infinite recursion is not an issue + # since we only look at src and version of boost. + useBoost ? { }, }: let @@ -16,36 +17,34 @@ in stdenv.mkDerivation { pname = "boost-build"; - version = - if useBoost ? version - then "boost-${useBoost.version}" - else defaultVersion; + version = if useBoost ? version then "boost-${useBoost.version}" else defaultVersion; - src = useBoost.src or (fetchFromGitHub { - owner = "boostorg"; - repo = "build"; - rev = defaultVersion; - sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54"; - }); + src = + useBoost.src or (fetchFromGitHub { + owner = "boostorg"; + repo = "build"; + rev = defaultVersion; + sha256 = "1r4rwlq87ydmsdqrik4ly5iai796qalvw7603mridg2nwcbbnf54"; + }); # b2 is in a subdirectory of boost source tarballs postUnpack = lib.optionalString (useBoost ? src) '' sourceRoot="$sourceRoot/tools/build" ''; - patches = useBoost.boostBuildPatches or []; + patches = useBoost.boostBuildPatches or [ ]; # Upstream defaults to gcc on darwin, but we use clang. - postPatch = '' - substituteInPlace src/build-system.jam \ - --replace "default-toolset = darwin" "default-toolset = clang-darwin" - '' + lib.optionalString (useBoost ? version && lib.versionAtLeast useBoost.version "1.82") '' - patchShebangs --build src/engine/build.sh - ''; + postPatch = + '' + substituteInPlace src/build-system.jam \ + --replace "default-toolset = darwin" "default-toolset = clang-darwin" + '' + + lib.optionalString (useBoost ? version && lib.versionAtLeast useBoost.version "1.82") '' + patchShebangs --build src/engine/build.sh + ''; - nativeBuildInputs = [ - bison - ]; + nativeBuildInputs = [ bison ]; buildPhase = '' runHook preBuild diff --git a/pkgs/by-name/bo/boost/1.75.nix b/pkgs/by-name/bo/boost/1.75.nix index ec77070..5b261ce 100644 --- a/pkgs/by-name/bo/boost/1.75.nix +++ b/pkgs/by-name/bo/boost/1.75.nix @@ -1,15 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.75.0"; - - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_75_0.html - sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb"; - }; -}) +callPackage ./generic.nix ( + args + // rec { + version = "1.75.0"; + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_75_0.html + sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.77.nix b/pkgs/by-name/bo/boost/1.77.nix index 3da1a45..2dee7bd 100644 --- a/pkgs/by-name/bo/boost/1.77.nix +++ b/pkgs/by-name/bo/boost/1.77.nix @@ -1,15 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.77.0"; - - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_77_0.html - sha256 = "sha256-/J+F/AMOIzFCkIJBr3qEbmBjCqc4jeml+vsfOiaECFQ="; - }; -}) +callPackage ./generic.nix ( + args + // rec { + version = "1.77.0"; + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_77_0.html + sha256 = "sha256-/J+F/AMOIzFCkIJBr3qEbmBjCqc4jeml+vsfOiaECFQ="; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.78.nix b/pkgs/by-name/bo/boost/1.78.nix index 2cc818e..8beb8a3 100644 --- a/pkgs/by-name/bo/boost/1.78.nix +++ b/pkgs/by-name/bo/boost/1.78.nix @@ -1,15 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.78.0"; - - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_78_0.html - sha256 = "8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc"; - }; -}) +callPackage ./generic.nix ( + args + // rec { + version = "1.78.0"; + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_78_0.html + sha256 = "8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.79.nix b/pkgs/by-name/bo/boost/1.79.nix index 87975e2..216b9a8 100644 --- a/pkgs/by-name/bo/boost/1.79.nix +++ b/pkgs/by-name/bo/boost/1.79.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.79.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.79.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_79_0.html - sha256 = "475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_79_0.html + sha256 = "475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.80.nix b/pkgs/by-name/bo/boost/1.80.nix index 1aab51a..93a8764 100644 --- a/pkgs/by-name/bo/boost/1.80.nix +++ b/pkgs/by-name/bo/boost/1.80.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.80.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.80.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_80_0.html - sha256 = "1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_80_0.html + sha256 = "1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.81.nix b/pkgs/by-name/bo/boost/1.81.nix index 2376255..10410ba 100644 --- a/pkgs/by-name/bo/boost/1.81.nix +++ b/pkgs/by-name/bo/boost/1.81.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.81.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.81.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_81_0.html - sha256 = "71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_81_0.html + sha256 = "71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.82.nix b/pkgs/by-name/bo/boost/1.82.nix index 193d07e..519d95f 100644 --- a/pkgs/by-name/bo/boost/1.82.nix +++ b/pkgs/by-name/bo/boost/1.82.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.82.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.82.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_82_0.html - sha256 = "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_82_0.html + sha256 = "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.83.nix b/pkgs/by-name/bo/boost/1.83.nix index df5c5a5..5325d48 100644 --- a/pkgs/by-name/bo/boost/1.83.nix +++ b/pkgs/by-name/bo/boost/1.83.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.83.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.83.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_83_0.html - sha256 = "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_83_0.html + sha256 = "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.84.nix b/pkgs/by-name/bo/boost/1.84.nix index a55f55a..a246515 100644 --- a/pkgs/by-name/bo/boost/1.84.nix +++ b/pkgs/by-name/bo/boost/1.84.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.84.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.84.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_84_0.html - sha256 = "cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_84_0.html + sha256 = "cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/1.85.nix b/pkgs/by-name/bo/boost/1.85.nix index 2a3252d..19f0a3b 100644 --- a/pkgs/by-name/bo/boost/1.85.nix +++ b/pkgs/by-name/bo/boost/1.85.nix @@ -1,14 +1,24 @@ -{ callPackage, fetchurl, fetchpatch, ... } @ args: +{ + callPackage, + fetchurl, + fetchpatch, + ... +}@args: -callPackage ./generic.nix (args // rec { - version = "1.85.0"; +callPackage ./generic.nix ( + args + // rec { + version = "1.85.0"; - src = fetchurl { - urls = [ - "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2" - ]; - # SHA256 from http://www.boost.org/users/history/version_1_85_0.html - sha256 = "7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617"; - }; -}) + src = fetchurl { + urls = [ + "mirror://sourceforge/boost/boost_${builtins.replaceStrings [ "." ] [ "_" ] version}.tar.bz2" + "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${ + builtins.replaceStrings [ "." ] [ "_" ] version + }.tar.bz2" + ]; + # SHA256 from http://www.boost.org/users/history/version_1_85_0.html + sha256 = "7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617"; + }; + } +) diff --git a/pkgs/by-name/bo/boost/default.nix b/pkgs/by-name/bo/boost/default.nix index 1a2ae9d..1c7f9fa 100644 --- a/pkgs/by-name/bo/boost/default.nix +++ b/pkgs/by-name/bo/boost/default.nix @@ -1,12 +1,15 @@ -{ lib -, callPackage -, boost-build -, fetchurl +{ + lib, + callPackage, + boost-build, + fetchurl, }: let - makeBoost = file: - lib.fix (self: + makeBoost = + file: + lib.fix ( + self: callPackage file { boost-build = boost-build.override { # useBoost allows us passing in src and version from @@ -15,7 +18,8 @@ let }; } ); -in { +in +{ boost175 = makeBoost ./1.75.nix; boost177 = makeBoost ./1.77.nix; boost178 = makeBoost ./1.78.nix; diff --git a/pkgs/by-name/bo/boost/generic.nix b/pkgs/by-name/bo/boost/generic.nix index cdcdb20..95f0fca 100644 --- a/pkgs/by-name/bo/boost/generic.nix +++ b/pkgs/by-name/bo/boost/generic.nix @@ -1,29 +1,50 @@ -{ lib, stdenv, icu, expat, zlib, bzip2, zstd, xz, python ? null, fixDarwinDylibNames, libiconv, libxcrypt -, boost-build -, fetchpatch -, which -, toolset ? /**/ if stdenv.cc.isClang then "clang" - else if stdenv.cc.isGNU then "gcc" - else null -, enableRelease ? true -, enableDebug ? false -, enableSingleThreaded ? false -, enableMultiThreaded ? true -, enableShared ? !(with stdenv.hostPlatform; isStatic || isMinGW) # problems for now -, enableStatic ? !enableShared -, enablePython ? false -, enableNumpy ? false -, enableIcu ? stdenv.hostPlatform == stdenv.buildPlatform -, taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic)) -, patches ? [] -, boostBuildPatches ? [] -, useMpi ? false -, mpi -, extraB2Args ? [] +{ + lib, + stdenv, + icu, + expat, + zlib, + bzip2, + zstd, + xz, + python ? null, + fixDarwinDylibNames, + libiconv, + libxcrypt, + boost-build, + fetchpatch, + which, + toolset ? + if stdenv.cc.isClang then + "clang" + else if stdenv.cc.isGNU then + "gcc" + else + null, + enableRelease ? true, + enableDebug ? false, + enableSingleThreaded ? false, + enableMultiThreaded ? true, + enableShared ? !(with stdenv.hostPlatform; isStatic || isMinGW), # problems for now + enableStatic ? !enableShared, + enablePython ? false, + enableNumpy ? false, + enableIcu ? stdenv.hostPlatform == stdenv.buildPlatform, + taggedLayout ? ( + (enableRelease && enableDebug) + || (enableSingleThreaded && enableMultiThreaded) + || (enableShared && enableStatic) + ), + patches ? [ ], + boostBuildPatches ? [ ], + useMpi ? false, + mpi, + extraB2Args ? [ ], -# Attributes inherit from specific versions -, version, src -, ... + # Attributes inherit from specific versions + version, + src, + ... }: # We must build at least one type of libraries @@ -33,66 +54,90 @@ assert enableNumpy -> enablePython; let - variant = lib.concatStringsSep "," - (lib.optional enableRelease "release" ++ - lib.optional enableDebug "debug"); + variant = lib.concatStringsSep "," ( + lib.optional enableRelease "release" ++ lib.optional enableDebug "debug" + ); - threading = lib.concatStringsSep "," - (lib.optional enableSingleThreaded "single" ++ - lib.optional enableMultiThreaded "multi"); + threading = lib.concatStringsSep "," ( + lib.optional enableSingleThreaded "single" ++ lib.optional enableMultiThreaded "multi" + ); - link = lib.concatStringsSep "," - (lib.optional enableShared "shared" ++ - lib.optional enableStatic "static"); + link = lib.concatStringsSep "," ( + lib.optional enableShared "shared" ++ lib.optional enableStatic "static" + ); runtime-link = if enableShared then "shared" else "static"; # To avoid library name collisions layout = if taggedLayout then "tagged" else "system"; - needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform || useMpi || (stdenv.isDarwin && enableShared); + needUserConfig = + stdenv.hostPlatform != stdenv.buildPlatform || useMpi || (stdenv.isDarwin && enableShared); - b2Args = lib.concatStringsSep " " ([ - "--includedir=$dev/include" - "--libdir=$out/lib" - "-j$NIX_BUILD_CORES" - "--layout=${layout}" - "variant=${variant}" - "threading=${threading}" - "link=${link}" - "-sEXPAT_INCLUDE=${expat.dev}/include" - "-sEXPAT_LIBPATH=${expat.out}/lib" + b2Args = lib.concatStringsSep " " ( + [ + "--includedir=$dev/include" + "--libdir=$out/lib" + "-j$NIX_BUILD_CORES" + "--layout=${layout}" + "variant=${variant}" + "threading=${threading}" + "link=${link}" + "-sEXPAT_INCLUDE=${expat.dev}/include" + "-sEXPAT_LIBPATH=${expat.out}/lib" - # TODO: make this unconditional - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform || - # required on mips; see 61d9f201baeef4c4bb91ad8a8f5f89b747e0dfe4 - (stdenv.hostPlatform.isMips && lib.versionAtLeast version "1.79")) [ - "address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}" - "architecture=${if stdenv.hostPlatform.isMips64 - then if lib.versionOlder version "1.78" then "mips1" else "mips" - else if stdenv.hostPlatform.parsed.cpu.name == "s390x" then "s390x" - else toString stdenv.hostPlatform.parsed.cpu.family}" - # env in host triplet for Mach-O is "macho", but boost binary format for Mach-O is "mach-o" - "binary-format=${if stdenv.hostPlatform.isMacho then "mach-o" - else toString stdenv.hostPlatform.parsed.kernel.execFormat.name}" - "target-os=${toString stdenv.hostPlatform.parsed.kernel.name}" + # TODO: make this unconditional + ] + ++ + lib.optionals + ( + stdenv.hostPlatform != stdenv.buildPlatform + || + # required on mips; see 61d9f201baeef4c4bb91ad8a8f5f89b747e0dfe4 + (stdenv.hostPlatform.isMips && lib.versionAtLeast version "1.79") + ) + [ + "address-model=${toString stdenv.hostPlatform.parsed.cpu.bits}" + "architecture=${ + if stdenv.hostPlatform.isMips64 then + if lib.versionOlder version "1.78" then "mips1" else "mips" + else if stdenv.hostPlatform.parsed.cpu.name == "s390x" then + "s390x" + else + toString stdenv.hostPlatform.parsed.cpu.family + }" + # env in host triplet for Mach-O is "macho", but boost binary format for Mach-O is "mach-o" + "binary-format=${ + if stdenv.hostPlatform.isMacho then + "mach-o" + else + toString stdenv.hostPlatform.parsed.kernel.execFormat.name + }" + "target-os=${toString stdenv.hostPlatform.parsed.kernel.name}" - # adapted from table in boost manual - # https://www.boost.org/doc/libs/1_66_0/libs/context/doc/html/context/architectures.html - "abi=${if stdenv.hostPlatform.parsed.cpu.family == "arm" then "aapcs" - else if stdenv.hostPlatform.isWindows then "ms" - else if stdenv.hostPlatform.isMips32 then "o32" - else if stdenv.hostPlatform.isMips64n64 then "n64" - else "sysv"}" - ] ++ lib.optional (link != "static") "runtime-link=${runtime-link}" + # adapted from table in boost manual + # https://www.boost.org/doc/libs/1_66_0/libs/context/doc/html/context/architectures.html + "abi=${ + if stdenv.hostPlatform.parsed.cpu.family == "arm" then + "aapcs" + else if stdenv.hostPlatform.isWindows then + "ms" + else if stdenv.hostPlatform.isMips32 then + "o32" + else if stdenv.hostPlatform.isMips64n64 then + "n64" + else + "sysv" + }" + ] + ++ lib.optional (link != "static") "runtime-link=${runtime-link}" ++ lib.optional (variant == "release") "debug-symbols=off" ++ lib.optional (toolset != null) "toolset=${toolset}" ++ lib.optional (!enablePython) "--without-python" ++ lib.optional needUserConfig "--user-config=user-config.jam" ++ lib.optional (stdenv.buildPlatform.isDarwin && stdenv.hostPlatform.isLinux) "pch=off" - ++ lib.optionals stdenv.hostPlatform.isMinGW [ - "threadapi=win32" - ] ++ extraB2Args + ++ lib.optionals stdenv.hostPlatform.isMinGW [ "threadapi=win32" ] + ++ extraB2Args ); in @@ -102,53 +147,54 @@ stdenv.mkDerivation { inherit src version; - patchFlags = []; + patchFlags = [ ]; - patches = patches - ++ lib.optional stdenv.isDarwin ./darwin-no-system-python.patch - ++ [ ./cmake-paths-173.patch ] - ++ lib.optional (version == "1.77.0") (fetchpatch { - url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch"; - relative = "include"; - sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4="; - }) - # Fixes ABI detection - ++ lib.optional (version == "1.83.0") (fetchpatch { - url = "https://github.com/boostorg/context/commit/6fa6d5c50d120e69b2d8a1c0d2256ee933e94b3b.patch"; - stripLen = 1; - extraPrefix = "libs/context/"; - sha256 = "sha256-bCfLL7bD1Rn4Ie/P3X+nIcgTkbXdCX6FW7B9lHsmVW8="; - }) - # This fixes another issue regarding ill-formed constant expressions, which is a default error - # in clang 16 and will be a hard error in clang 17. - ++ lib.optional (lib.versionOlder version "1.80") (fetchpatch { - url = "https://github.com/boostorg/log/commit/77f1e20bd69c2e7a9e25e6a9818ae6105f7d070c.patch"; - relative = "include"; - hash = "sha256-6qOiGJASm33XzwoxVZfKJd7sTlQ5yd+MMFQzegXm5RI="; - }) - ++ lib.optionals (lib.versionOlder version "1.81") [ - # libc++ 15 dropped support for `std::unary_function` and `std::binary_function` in C++17+. - # C++17 is the default for clang 16, but clang 15 is also affected in that language mode. - # This patch is for Boost 1.80, but it also applies to earlier versions. - (fetchpatch { - url = "https://www.boost.org/patches/1_80_0/0005-config-libcpp15.patch"; - hash = "sha256-ULFMzKphv70unvPZ3o4vSP/01/xbSM9a2TlIV67eXDQ="; - }) - # This fixes another ill-formed contant expressions issue flagged by clang 16. - (fetchpatch { - url = "https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a.patch"; + patches = + patches + ++ lib.optional stdenv.isDarwin ./darwin-no-system-python.patch + ++ [ ./cmake-paths-173.patch ] + ++ lib.optional (version == "1.77.0") (fetchpatch { + url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch"; relative = "include"; - hash = "sha256-dq4SVgxkPJSC7Fvr59VGnXkM4Lb09kYDaBksCHo9C0s="; + sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4="; }) - # This fixes an issue in Python 3.11 about Py_TPFLAGS_HAVE_GC - (fetchpatch { - name = "python311-compatibility.patch"; - url = "https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013.patch"; - hash = "sha256-IHxLtJBx0xSy7QEr8FbCPofsjcPuSYzgtPwDlx1JM+4="; + # Fixes ABI detection + ++ lib.optional (version == "1.83.0") (fetchpatch { + url = "https://github.com/boostorg/context/commit/6fa6d5c50d120e69b2d8a1c0d2256ee933e94b3b.patch"; stripLen = 1; - extraPrefix = "libs/python/"; + extraPrefix = "libs/context/"; + sha256 = "sha256-bCfLL7bD1Rn4Ie/P3X+nIcgTkbXdCX6FW7B9lHsmVW8="; }) - ]; + # This fixes another issue regarding ill-formed constant expressions, which is a default error + # in clang 16 and will be a hard error in clang 17. + ++ lib.optional (lib.versionOlder version "1.80") (fetchpatch { + url = "https://github.com/boostorg/log/commit/77f1e20bd69c2e7a9e25e6a9818ae6105f7d070c.patch"; + relative = "include"; + hash = "sha256-6qOiGJASm33XzwoxVZfKJd7sTlQ5yd+MMFQzegXm5RI="; + }) + ++ lib.optionals (lib.versionOlder version "1.81") [ + # libc++ 15 dropped support for `std::unary_function` and `std::binary_function` in C++17+. + # C++17 is the default for clang 16, but clang 15 is also affected in that language mode. + # This patch is for Boost 1.80, but it also applies to earlier versions. + (fetchpatch { + url = "https://www.boost.org/patches/1_80_0/0005-config-libcpp15.patch"; + hash = "sha256-ULFMzKphv70unvPZ3o4vSP/01/xbSM9a2TlIV67eXDQ="; + }) + # This fixes another ill-formed contant expressions issue flagged by clang 16. + (fetchpatch { + url = "https://github.com/boostorg/numeric_conversion/commit/50a1eae942effb0a9b90724323ef8f2a67e7984a.patch"; + relative = "include"; + hash = "sha256-dq4SVgxkPJSC7Fvr59VGnXkM4Lb09kYDaBksCHo9C0s="; + }) + # This fixes an issue in Python 3.11 about Py_TPFLAGS_HAVE_GC + (fetchpatch { + name = "python311-compatibility.patch"; + url = "https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013.patch"; + hash = "sha256-IHxLtJBx0xSy7QEr8FbCPofsjcPuSYzgtPwDlx1JM+4="; + stripLen = 1; + extraPrefix = "libs/python/"; + }) + ]; meta = with lib; { homepage = "http://boost.org/"; @@ -166,73 +212,86 @@ stdenv.mkDerivation { # inherit boostBuildPatches; # }; - preConfigure = lib.optionalString useMpi '' - cat << EOF >> user-config.jam - using mpi : ${lib.getDev mpi}/bin/mpiCC ; - EOF - '' - # On darwin we need to add the `$out/lib` to the libraries' rpath explicitly, - # otherwise the dynamic linker is unable to resolve the reference to @rpath - # when the boost libraries want to load each other at runtime. - + lib.optionalString (stdenv.isDarwin && enableShared) '' - cat << EOF >> user-config.jam - using clang-darwin : : ${stdenv.cc.targetPrefix}c++ - : "-rpath $out/lib/" - ; - EOF - '' - # b2 has trouble finding the correct compiler and tools for cross compilation - # since it apparently ignores $CC, $AR etc. Thus we need to set everything - # in user-config.jam. To keep things simple we just set everything in an - # uniform way for clang and gcc (which works thanks to our cc-wrapper). - # We pass toolset later which will make b2 invoke everything in the right - # way -- the other toolset in user-config.jam will be ignored. - + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - cat << EOF >> user-config.jam - using gcc : cross : ${stdenv.cc.targetPrefix}c++ - : $AR - $RANLIB - ; + preConfigure = + lib.optionalString useMpi '' + cat << EOF >> user-config.jam + using mpi : ${lib.getDev mpi}/bin/mpiCC ; + EOF + '' + # On darwin we need to add the `$out/lib` to the libraries' rpath explicitly, + # otherwise the dynamic linker is unable to resolve the reference to @rpath + # when the boost libraries want to load each other at runtime. + + lib.optionalString (stdenv.isDarwin && enableShared) '' + cat << EOF >> user-config.jam + using clang-darwin : : ${stdenv.cc.targetPrefix}c++ + : "-rpath $out/lib/" + ; + EOF + '' + # b2 has trouble finding the correct compiler and tools for cross compilation + # since it apparently ignores $CC, $AR etc. Thus we need to set everything + # in user-config.jam. To keep things simple we just set everything in an + # uniform way for clang and gcc (which works thanks to our cc-wrapper). + # We pass toolset later which will make b2 invoke everything in the right + # way -- the other toolset in user-config.jam will be ignored. + + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + cat << EOF >> user-config.jam + using gcc : cross : ${stdenv.cc.targetPrefix}c++ + : $AR + $RANLIB + ; - using clang : cross : ${stdenv.cc.targetPrefix}c++ - : $AR - $RANLIB - ; - EOF - '' - # b2 needs to be explicitly told how to find Python when cross-compiling - + lib.optionalString enablePython '' - cat << EOF >> user-config.jam - using python : : ${python.interpreter} - : ${python}/include/python${python.pythonVersion} - : ${python}/lib - ; - EOF - ''; + using clang : cross : ${stdenv.cc.targetPrefix}c++ + : $AR + $RANLIB + ; + EOF + '' + # b2 needs to be explicitly told how to find Python when cross-compiling + + lib.optionalString enablePython '' + cat << EOF >> user-config.jam + using python : : ${python.interpreter} + : ${python}/include/python${python.pythonVersion} + : ${python}/lib + ; + EOF + ''; - NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin - "-headerpad_max_install_names"; + NIX_CFLAGS_LINK = lib.optionalString stdenv.isDarwin "-headerpad_max_install_names"; enableParallelBuilding = true; - nativeBuildInputs = [ which boost-build ] - ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ expat zlib bzip2 libiconv ] + nativeBuildInputs = [ + which + boost-build + ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + buildInputs = + [ + expat + zlib + bzip2 + libiconv + ] ++ lib.optional (lib.versionAtLeast version "1.69") zstd ++ [ xz ] ++ lib.optional enableIcu icu - ++ lib.optionals enablePython [ libxcrypt python ] + ++ lib.optionals enablePython [ + libxcrypt + python + ] ++ lib.optional enableNumpy python.pkgs.numpy; configureScript = "./bootstrap.sh"; - configurePlatforms = []; + configurePlatforms = [ ]; dontDisableStatic = true; dontAddStaticConfigureFlags = true; - configureFlags = [ - "--includedir=$(dev)/include" - "--libdir=$(out)/lib" - "--with-bjam=b2" # prevent bootstrapping b2 in configurePhase - ] ++ lib.optional (toolset != null) "--with-toolset=${toolset}" + configureFlags = + [ + "--includedir=$(dev)/include" + "--libdir=$(out)/lib" + "--with-bjam=b2" # prevent bootstrapping b2 in configurePhase + ] + ++ lib.optional (toolset != null) "--with-toolset=${toolset}" ++ [ (if enableIcu then "--with-icu=${icu.dev}" else "--without-icu") ]; buildPhase = '' @@ -254,14 +313,19 @@ stdenv.mkDerivation { runHook postInstall ''; - postFixup = '' - # Make boost header paths relative so that they are not runtime dependencies - cd "$dev" && find include \( -name '*.hpp' -or -name '*.h' -or -name '*.ipp' \) \ - -exec sed '1s/^\xef\xbb\xbf//;1i#line 1 "{}"' -i '{}' \; - '' + lib.optionalString stdenv.hostPlatform.isMinGW '' - $RANLIB "$out/lib/"*.a - ''; + postFixup = + '' + # Make boost header paths relative so that they are not runtime dependencies + cd "$dev" && find include \( -name '*.hpp' -or -name '*.h' -or -name '*.ipp' \) \ + -exec sed '1s/^\xef\xbb\xbf//;1i#line 1 "{}"' -i '{}' \; + '' + + lib.optionalString stdenv.hostPlatform.isMinGW '' + $RANLIB "$out/lib/"*.a + ''; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; setOutputFlags = false; } diff --git a/pkgs/by-name/bo/boost/packages.nix b/pkgs/by-name/bo/boost/packages.nix index 4a1b526..33aff79 100644 --- a/pkgs/by-name/bo/boost/packages.nix +++ b/pkgs/by-name/bo/boost/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { inherit (callPackage ./. { inherit (buildPackages) boost-build; }) boost175 boost177 @@ -14,7 +13,7 @@ with pkgs; boost183 boost184 boost185 - ; + ; boost = boost181; } diff --git a/pkgs/by-name/bp/bpftools/default.nix b/pkgs/by-name/bp/bpftools/default.nix index 9ec4778..e74b474 100644 --- a/pkgs/by-name/bp/bpftools/default.nix +++ b/pkgs/by-name/bp/bpftools/default.nix @@ -1,9 +1,17 @@ -{ lib, stdenv, linuxHeaders -, libopcodes, libopcodes_2_38 -, libbfd, libbfd_2_38 -, elfutils, readline -, zlib -, python3, bison, flex +{ + lib, + stdenv, + linuxHeaders, + libopcodes, + libopcodes_2_38, + libbfd, + libbfd_2_38, + elfutils, + readline, + zlib, + python3, + bison, + flex, }: stdenv.mkDerivation rec { @@ -18,11 +26,29 @@ stdenv.mkDerivation rec { ./include-asm-types-for-ppc64le.patch ]; - nativeBuildInputs = [ python3 bison flex ]; - buildInputs = (if (lib.versionAtLeast version "5.20") - then [ libopcodes libbfd ] - else [ libopcodes_2_38 libbfd_2_38 ]) - ++ [ elfutils zlib readline ]; + nativeBuildInputs = [ + python3 + bison + flex + ]; + buildInputs = + ( + if (lib.versionAtLeast version "5.20") then + [ + libopcodes + libbfd + ] + else + [ + libopcodes_2_38 + libbfd_2_38 + ] + ) + ++ [ + elfutils + zlib + readline + ]; preConfigure = '' patchShebangs scripts/bpf_doc.py @@ -34,7 +60,11 @@ stdenv.mkDerivation rec { --replace '/sbin' '/bin' ''; - buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; + buildFlags = [ + "bpftool" + "bpf_asm" + "bpf_dbg" + ]; installPhase = '' make -C bpftool install @@ -43,10 +73,13 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "https://github.com/libbpf/bpftool"; + homepage = "https://github.com/libbpf/bpftool"; description = "Debugging/program analysis tools for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; + license = [ + licenses.gpl2 + licenses.bsd2 + ]; + platforms = platforms.linux; maintainers = with maintainers; [ thoughtpolice ]; }; } diff --git a/pkgs/by-name/br/brotli/default.nix b/pkgs/by-name/br/brotli/default.nix index 60429f4..9458abf 100644 --- a/pkgs/by-name/br/brotli/default.nix +++ b/pkgs/by-name/br/brotli/default.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, staticOnly ? stdenv.hostPlatform.isStatic -, testers +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + staticOnly ? stdenv.hostPlatform.isStatic, + testers, }: # ?TODO: there's also python lib in there @@ -35,7 +36,11 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = lib.optional staticOnly "-DBUILD_SHARED_LIBS=OFF"; - outputs = [ "out" "dev" "lib" ]; + outputs = [ + "out" + "dev" + "lib" + ]; doCheck = true; @@ -54,18 +59,18 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { homepage = "https://github.com/google/brotli"; description = "A generic-purpose lossless compression algorithm and tool"; - longDescription = - '' Brotli is a generic-purpose lossless compression algorithm that - compresses data using a combination of a modern variant of the LZ77 - algorithm, Huffman coding and 2nd order context modeling, with a - compression ratio comparable to the best currently available - general-purpose compression methods. It is similar in speed with - deflate but offers more dense compression. + longDescription = '' + Brotli is a generic-purpose lossless compression algorithm that + compresses data using a combination of a modern variant of the LZ77 + algorithm, Huffman coding and 2nd order context modeling, with a + compression ratio comparable to the best currently available + general-purpose compression methods. It is similar in speed with + deflate but offers more dense compression. - The specification of the Brotli Compressed Data Format is defined - in the following internet draft: - http://www.ietf.org/id/draft-alakuijala-brotli - ''; + The specification of the Brotli Compressed Data Format is defined + in the following internet draft: + http://www.ietf.org/id/draft-alakuijala-brotli + ''; license = licenses.mit; maintainers = with maintainers; [ freezeboy ]; pkgConfigModules = [ diff --git a/pkgs/by-name/bu/busybox/default.nix b/pkgs/by-name/bu/busybox/default.nix index 33fa766..254040d 100644 --- a/pkgs/by-name/bu/busybox/default.nix +++ b/pkgs/by-name/bu/busybox/default.nix @@ -1,11 +1,17 @@ -{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab -, enableStatic ? stdenv.hostPlatform.isStatic -, enableMinimal ? false -, enableAppletSymlinks ? true -# Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping: -# nix build -f pkgs/top-level/release.nix stdenvBootstrapTools.x86_64-linux.dist -, useMusl ? stdenv.hostPlatform.libc == "musl", musl -, extraConfig ? "" +{ + stdenv, + lib, + buildPackages, + fetchurl, + fetchFromGitLab, + enableStatic ? stdenv.hostPlatform.isStatic, + enableMinimal ? false, + enableAppletSymlinks ? true, + # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping: + # nix build -f pkgs/top-level/release.nix stdenvBootstrapTools.x86_64-linux.dist + useMusl ? stdenv.hostPlatform.libc == "musl", + musl, + extraConfig ? "", }: assert stdenv.hostPlatform.libc == "musl" -> useMusl; @@ -60,8 +66,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-uMwkyVdNgJ5yecO+NJeVxdXOtv3xnKcJ+AzeUOR94xQ="; }; - hardeningDisable = [ "format" "pie" ] - ++ lib.optionals enableStatic [ "fortify" ]; + hardeningDisable = [ + "format" + "pie" + ] ++ lib.optionals enableStatic [ "fortify" ]; patches = [ ./busybox-in-store.patch @@ -153,7 +161,10 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ]; + buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ + stdenv.cc.libc + stdenv.cc.libc.static + ]; enableParallelBuilding = true; @@ -165,7 +176,10 @@ stdenv.mkDerivation rec { description = "Tiny versions of common UNIX utilities in a single small executable"; homepage = "https://busybox.net/"; license = licenses.gpl2Only; - maintainers = with maintainers; [ TethysSvensson qyliss ]; + maintainers = with maintainers; [ + TethysSvensson + qyliss + ]; platforms = platforms.linux; priority = 15; # below systemd (halt, init, poweroff, reboot) and coreutils }; diff --git a/pkgs/by-name/bu/busybox/packages.nix b/pkgs/by-name/bu/busybox/packages.nix index 03b8dd5..149ee4d 100644 --- a/pkgs/by-name/bu/busybox/packages.nix +++ b/pkgs/by-name/bu/busybox/packages.nix @@ -1,14 +1,18 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { busybox = callPackage ./. { }; busybox-sandbox-shell = callPackage ./sandbox-shell.nix { # musl roadmap has RISC-V support projected for 1.1.20 busybox = - if !stdenv.hostPlatform.isRiscV && !stdenv.hostPlatform.isLoongArch64 && stdenv.hostPlatform.libc != "bionic" - then pkgsStatic.busybox - else busybox; + if + !stdenv.hostPlatform.isRiscV + && !stdenv.hostPlatform.isLoongArch64 + && stdenv.hostPlatform.libc != "bionic" + then + pkgsStatic.busybox + else + busybox; }; } diff --git a/pkgs/by-name/bu/busybox/sandbox-shell.nix b/pkgs/by-name/bu/busybox/sandbox-shell.nix index fa70e5f..488fd6a 100644 --- a/pkgs/by-name/bu/busybox/sandbox-shell.nix +++ b/pkgs/by-name/bu/busybox/sandbox-shell.nix @@ -1,4 +1,4 @@ -{ busybox}: +{ busybox }: # Minimal shell for use as basic /bin/sh in sandbox builds busybox.override { diff --git a/pkgs/by-name/bz/bzip2/1_1.nix b/pkgs/by-name/bz/bzip2/1_1.nix index e9d6f7c..d48cd71 100644 --- a/pkgs/by-name/bz/bzip2/1_1.nix +++ b/pkgs/by-name/bz/bzip2/1_1.nix @@ -1,9 +1,11 @@ -{ lib, stdenv -, fetchFromGitLab -, meson -, python3 -, ninja -, testers +{ + lib, + stdenv, + fetchFromGitLab, + meson, + python3, + ninja, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -27,12 +29,15 @@ stdenv.mkDerivation (finalAttrs: { ninja ]; - outputs = [ "bin" "dev" "out" "man" ]; - - mesonFlags = [ - "-Ddocs=disabled" + outputs = [ + "bin" + "dev" + "out" + "man" ]; + mesonFlags = [ "-Ddocs=disabled" ]; + strictDeps = true; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; @@ -42,6 +47,6 @@ stdenv.mkDerivation (finalAttrs: { license = licenses.bsdOriginal; pkgConfigModules = [ "bz2" ]; platforms = platforms.all; - maintainers = []; + maintainers = [ ]; }; }) diff --git a/pkgs/by-name/bz/bzip2/default.nix b/pkgs/by-name/bz/bzip2/default.nix index bfab2db..da65915 100644 --- a/pkgs/by-name/bz/bzip2/default.nix +++ b/pkgs/by-name/bz/bzip2/default.nix @@ -1,8 +1,11 @@ -{ lib, stdenv, fetchurl -, enableStatic ? with stdenv.hostPlatform; isStatic || isCygwin -, enableShared ? true -, autoreconfHook -, testers +{ + lib, + stdenv, + fetchurl, + enableStatic ? with stdenv.hostPlatform; isStatic || isCygwin, + enableShared ? true, + autoreconfHook, + testers, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -10,66 +13,75 @@ # cgit) that are needed here should be included directly in Nixpkgs as # files. -stdenv.mkDerivation (finalAttrs: let - inherit (finalAttrs) version; -in { - pname = "bzip2"; - version = "1.0.8"; +stdenv.mkDerivation ( + finalAttrs: + let + inherit (finalAttrs) version; + in + { + pname = "bzip2"; + version = "1.0.8"; - src = fetchurl { - url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz"; - sha256 = "sha256-q1oDF27hBtPw+pDjgdpHjdrkBZGBU8yiSOaCzQxKImk="; - }; + src = fetchurl { + url = "https://sourceware.org/pub/bzip2/bzip2-${version}.tar.gz"; + sha256 = "sha256-q1oDF27hBtPw+pDjgdpHjdrkBZGBU8yiSOaCzQxKImk="; + }; - patchFlags = ["-p0"]; + patchFlags = [ "-p0" ]; - patches = [ - (fetchurl { - url = "https://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch"; - sha256 = "sha256-QMufl6ffJVVVVZespvkCbFpB6++R1lnq1687jEsUjr0="; - }) - ]; - # Fix up hardcoded version from the above patch, e.g. seen in bzip2.pc or libbz2.so.1.0.N - postPatch = '' - patch <<-EOF - --- configure.ac - +++ configure.ac - @@ -3,3 +3,3 @@ - -AC_INIT([bzip2], [1.0.6], [Julian Seward ]) - +AC_INIT([bzip2], [${version}], [Julian Seward ]) - BZIP2_LT_CURRENT=1 - -BZIP2_LT_REVISION=6 - +BZIP2_LT_REVISION=${lib.versions.patch version} - EOF - ''; + patches = [ + (fetchurl { + url = "https://ftp.suse.com/pub/people/sbrabec/bzip2/for_downstream/bzip2-1.0.6.2-autoconfiscated.patch"; + sha256 = "sha256-QMufl6ffJVVVVZespvkCbFpB6++R1lnq1687jEsUjr0="; + }) + ]; + # Fix up hardcoded version from the above patch, e.g. seen in bzip2.pc or libbz2.so.1.0.N + postPatch = '' + patch <<-EOF + --- configure.ac + +++ configure.ac + @@ -3,3 +3,3 @@ + -AC_INIT([bzip2], [1.0.6], [Julian Seward ]) + +AC_INIT([bzip2], [${version}], [Julian Seward ]) + BZIP2_LT_CURRENT=1 + -BZIP2_LT_REVISION=6 + +BZIP2_LT_REVISION=${lib.versions.patch version} + EOF + ''; - strictDeps = true; - nativeBuildInputs = [ autoreconfHook ]; + strictDeps = true; + nativeBuildInputs = [ autoreconfHook ]; - outputs = [ "bin" "dev" "out" "man" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + ]; - configureFlags = lib.concatLists [ - (lib.optional enableStatic "--enable-static") - (lib.optional (!enableShared) "--disable-shared") - ]; + configureFlags = lib.concatLists [ + (lib.optional enableStatic "--enable-static") + (lib.optional (!enableShared) "--disable-shared") + ]; - dontDisableStatic = enableStatic; + dontDisableStatic = enableStatic; - enableParallelBuilding = true; + enableParallelBuilding = true; - postInstall = '' - ln -s $out/lib/libbz2.so.1.0.* $out/lib/libbz2.so.1.0 - ''; + postInstall = '' + ln -s $out/lib/libbz2.so.1.0.* $out/lib/libbz2.so.1.0 + ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = with lib; { - description = "High-quality data compression program"; - homepage = "https://www.sourceware.org/bzip2"; - changelog = "https://sourceware.org/git/?p=bzip2.git;a=blob;f=CHANGES;hb=HEAD"; - license = licenses.bsdOriginal; - pkgConfigModules = [ "bzip2" ]; - platforms = platforms.all; - maintainers = with maintainers; [ mic92 ]; - }; -}) + meta = with lib; { + description = "High-quality data compression program"; + homepage = "https://www.sourceware.org/bzip2"; + changelog = "https://sourceware.org/git/?p=bzip2.git;a=blob;f=CHANGES;hb=HEAD"; + license = licenses.bsdOriginal; + pkgConfigModules = [ "bzip2" ]; + platforms = platforms.all; + maintainers = with maintainers; [ mic92 ]; + }; + } +) diff --git a/pkgs/by-name/bz/bzip2/packages.nix b/pkgs/by-name/bz/bzip2/packages.nix index 6fde252..6a989ef 100644 --- a/pkgs/by-name/bz/bzip2/packages.nix +++ b/pkgs/by-name/bz/bzip2/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { bzip2 = callPackage ./. { }; bzip2_1_1 = callPackage ./1_1.nix { }; } diff --git a/pkgs/by-name/c-/c-ares/default.nix b/pkgs/by-name/c-/c-ares/default.nix index 8fdfc05..1f77a97 100644 --- a/pkgs/by-name/c-/c-ares/default.nix +++ b/pkgs/by-name/c-/c-ares/default.nix @@ -1,5 +1,10 @@ -{ lib, stdenv, fetchurl, writeTextDir -, withCMake ? true, cmake +{ + lib, + stdenv, + fetchurl, + writeTextDir, + withCMake ? true, + cmake, # sensitive downstream packages # for passthru.tests @@ -21,14 +26,20 @@ stdenv.mkDerivation rec { hash = "sha256-CnK+ZpWZVcQ+KvL70DQY6Cor1UZGBOyaYhR+N6zrQgs="; }; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; nativeBuildInputs = lib.optionals withCMake [ cmake ]; - cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "-DCARES_SHARED=OFF" - "-DCARES_STATIC=ON" - ]; + cmakeFlags = + [ ] + ++ lib.optionals stdenv.hostPlatform.isStatic [ + "-DCARES_SHARED=OFF" + "-DCARES_STATIC=ON" + ]; enableParallelBuilding = true; diff --git a/pkgs/by-name/c-/c-ares/packages.nix b/pkgs/by-name/c-/c-ares/packages.nix index 0846e63..6b66cb7 100644 --- a/pkgs/by-name/c-/c-ares/packages.nix +++ b/pkgs/by-name/c-/c-ares/packages.nix @@ -1,10 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { c-ares = callPackage ./. { }; - c-aresMinimal = callPackage ./. { - withCMake = false; - }; + c-aresMinimal = callPackage ./. { withCMake = false; }; } diff --git a/pkgs/by-name/ca/cacert/default.nix b/pkgs/by-name/ca/cacert/default.nix index 7dc047b..981f243 100644 --- a/pkgs/by-name/ca/cacert/default.nix +++ b/pkgs/by-name/ca/cacert/default.nix @@ -1,24 +1,27 @@ -{ lib -, stdenv -, writeText -, fetchFromGitHub -, buildcatrust -, blacklist ? [] -, extraCertificateFiles ? [] -, extraCertificateStrings ? [] +{ + lib, + stdenv, + writeText, + fetchFromGitHub, + buildcatrust, + blacklist ? [ ], + extraCertificateFiles ? [ ], + extraCertificateStrings ? [ ], -# Used by update.sh -, nssOverride ? null + # Used by update.sh + nssOverride ? null, -# Used for tests only -, runCommand -, cacert -, openssl + # Used for tests only + runCommand, + cacert, + openssl, }: let blocklist = writeText "cacert-blocklist.txt" (lib.concatStringsSep "\n" blacklist); - extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" (lib.concatStringsSep "\n\n" extraCertificateStrings); + extraCertificatesBundle = writeText "cacert-extra-certificates-bundle.crt" ( + lib.concatStringsSep "\n\n" extraCertificateStrings + ); srcVersion = "3.98"; version = if nssOverride != null then nssOverride.version else srcVersion; @@ -26,19 +29,26 @@ let homepage = "https://curl.haxx.se/docs/caextract.html"; description = "A bundle of X.509 certificates of public Certificate Authorities (CA)"; platforms = platforms.all; - maintainers = with maintainers; [ fpletz lukegb ]; + maintainers = with maintainers; [ + fpletz + lukegb + ]; license = licenses.mpl20; }; certdata = stdenv.mkDerivation { pname = "nss-cacert-certdata"; inherit version; - src = if nssOverride != null then nssOverride.src else fetchFromGitHub { - owner = "nss-dev"; - repo = "nss"; - rev = "NSS_${lib.replaceStrings ["."] ["_"] version}_RTM"; - hash = "sha256-0p1HzspxyzhzX46O7ax8tmYiaFEBeqEqEvman4NIiQc="; - }; + src = + if nssOverride != null then + nssOverride.src + else + fetchFromGitHub { + owner = "nss-dev"; + repo = "nss"; + rev = "NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM"; + hash = "sha256-0p1HzspxyzhzX46O7ax8tmYiaFEBeqEqEvman4NIiQc="; + }; dontBuild = true; @@ -60,7 +70,11 @@ stdenv.mkDerivation rec { src = certdata; - outputs = [ "out" "unbundled" "p11kit" ]; + outputs = [ + "out" + "unbundled" + "p11kit" + ]; nativeBuildInputs = [ buildcatrust ]; @@ -68,7 +82,9 @@ stdenv.mkDerivation rec { mkdir unbundled buildcatrust \ --certdata_input certdata.txt \ - --ca_bundle_input "${extraCertificatesBundle}" ${lib.escapeShellArgs (map (arg: "${arg}") extraCertificateFiles)} \ + --ca_bundle_input "${extraCertificatesBundle}" ${ + lib.escapeShellArgs (map (arg: "${arg}") extraCertificateFiles) + } \ --blocklist "${blocklist}" \ --ca_bundle_output ca-bundle.crt \ --ca_standard_bundle_output ca-no-trust-rules-bundle.crt \ @@ -93,120 +109,138 @@ stdenv.mkDerivation rec { passthru = { updateScript = ./update.sh; - tests = let - isTrusted = '' - isTrusted() { - # isTrusted - for f in $1/etc/ssl/certs/*.crt; do - if ! [[ -s "$f" ]]; then continue; fi - fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)" - if [[ "x$fingerprint" == "x$3" ]]; then - # If the certificate is treated as rejected for TLS Web Server, then we consider it untrusted. - if openssl x509 -in "$f" -noout -text | grep -q '^Rejected Uses:'; then - if openssl x509 -in "$f" -noout -text | grep -A1 '^Rejected Uses:' | grep -q 'TLS Web Server'; then - return 1 + tests = + let + isTrusted = '' + isTrusted() { + # isTrusted + for f in $1/etc/ssl/certs/*.crt; do + if ! [[ -s "$f" ]]; then continue; fi + fingerprint="$(openssl x509 -in "$f" -noout -fingerprint -sha256 | cut -f2 -d=)" + if [[ "x$fingerprint" == "x$3" ]]; then + # If the certificate is treated as rejected for TLS Web Server, then we consider it untrusted. + if openssl x509 -in "$f" -noout -text | grep -q '^Rejected Uses:'; then + if openssl x509 -in "$f" -noout -text | grep -A1 '^Rejected Uses:' | grep -q 'TLS Web Server'; then + return 1 + fi fi + return 0 fi - return 0 - fi - done - return 1 - } - ''; - in { - # Test that building this derivation with a blacklist works, and that UTF-8 is supported. - blacklist-utf8 = let - blacklistCAToFingerprint = { - # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint. - "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD"; - "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98"; - }; - mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint); - in runCommand "verify-the-cacert-filter-output" { - cacert = cacert.unbundled; - cacertWithExcludes = (cacert.override { - blacklist = builtins.attrNames blacklistCAToFingerprint; - }).unbundled; - - nativeBuildInputs = [ openssl ]; - } '' - ${isTrusted} - - # Ensure that each certificate is in the main "cacert". - ${mapBlacklist (caName: caFingerprint: '' - isTrusted "$cacert" "${caName}" "${caFingerprint}" || ({ - echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2 - exit 1 - }) - '')} - - # Ensure that each certificate is NOT in the "cacertWithExcludes". - ${mapBlacklist (caName: caFingerprint: '' - isTrusted "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({ - echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2 - exit 1 - }) - '')} - - touch "$out" - ''; - - # Test that we can add additional certificates to the store, and have them be trusted. - extra-certificates = let - extraCertificateStr = '' - -----BEGIN CERTIFICATE----- - MIIB5DCCAWqgAwIBAgIUItvsAYEIdYDkOIo5sdDYMcUaNuIwCgYIKoZIzj0EAwIw - KTEnMCUGA1UEAwweTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlMB4XDTIx - MDYxMjE5MDQzMFoXDTIyMDYxMjE5MDQzMFowKTEnMCUGA1UEAwweTml4T1MgY2Fj - ZXJ0IGV4dHJhIGNlcnRpZmljYXRlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuP8y - lAm6ZyQt9v/P6gTlV/a9R+D61WjucW04kaegOhg8csiluimYodiSv0Pbgymu+Zxm - A3Bz9QGmytaYTiJ16083rJkwwIhqoYl7kWsLzreSTaLz87KH+rdeol59+H0Oo1Mw - UTAdBgNVHQ4EFgQUCxuHfvqI4YVU5M+A0+aKvd1LrdswHwYDVR0jBBgwFoAUCxuH - fvqI4YVU5M+A0+aKvd1LrdswDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNo - ADBlAjEArgxgjdNmRlSEuai0dzlktmBEDZKy2Iiul+ttSoce9ohfEVYESwO602HW - keVvI56vAjBCro3dc3m2TuktiKO6lQV56PUEyxko4H/sR5pnHlduCGRDlFzQKXf/ - pMMmtj7cVb8= - -----END CERTIFICATE----- + done + return 1 + } ''; - extraCertificateFile = ./test-cert-file.crt; - extraCertificatesToFingerprint = { - # String above - "NixOS cacert extra certificate string" = "A3:20:D0:84:96:97:25:FF:98:B8:A9:6D:A3:7C:89:95:6E:7A:77:21:92:F3:33:E9:31:AF:5E:03:CE:A9:E5:EE"; + in + { + # Test that building this derivation with a blacklist works, and that UTF-8 is supported. + blacklist-utf8 = + let + blacklistCAToFingerprint = { + # "blacklist" uses the CA name from the NSS bundle, but we check for presence using the SHA256 fingerprint. + "CFCA EV ROOT" = "5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD"; + "NetLock Arany (Class Gold) Főtanúsítvány" = "6C:61:DA:C3:A2:DE:F0:31:50:6B:E0:36:D2:A6:FE:40:19:94:FB:D1:3D:F9:C8:D4:66:59:92:74:C4:46:EC:98"; + }; + mapBlacklist = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f blacklistCAToFingerprint); + in + runCommand "verify-the-cacert-filter-output" + { + cacert = cacert.unbundled; + cacertWithExcludes = + (cacert.override { blacklist = builtins.attrNames blacklistCAToFingerprint; }).unbundled; - # File - "NixOS cacert extra certificate file" = "88:B8:BE:A7:57:AC:F1:FE:D6:98:8B:50:E0:BD:0A:AE:88:C7:DF:70:26:E1:67:5E:F5:F6:91:27:FF:02:D4:A5"; - }; - mapExtra = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f extraCertificatesToFingerprint); - in runCommand "verify-the-cacert-extra-output" { - cacert = cacert.unbundled; - cacertWithExtras = (cacert.override { - extraCertificateStrings = [ extraCertificateStr ]; - extraCertificateFiles = [ extraCertificateFile ]; - }).unbundled; + nativeBuildInputs = [ openssl ]; + } + '' + ${isTrusted} - nativeBuildInputs = [ openssl ]; - } '' - ${isTrusted} + # Ensure that each certificate is in the main "cacert". + ${mapBlacklist ( + caName: caFingerprint: '' + isTrusted "$cacert" "${caName}" "${caFingerprint}" || ({ + echo "CA fingerprint ${caFingerprint} (${caName}) is missing from the CA bundle. Consider picking a different CA for the blacklist test." >&2 + exit 1 + }) + '' + )} - # Ensure that the extra certificate is not in the main "cacert". - ${mapExtra (extraName: extraFingerprint: '' - isTrusted "$cacert" "${extraName}" "${extraFingerprint}" && ({ - echo "'extra' CA fingerprint ${extraFingerprint} (${extraName}) is present in the main CA bundle." >&2 - exit 1 - }) - '')} + # Ensure that each certificate is NOT in the "cacertWithExcludes". + ${mapBlacklist ( + caName: caFingerprint: '' + isTrusted "$cacertWithExcludes" "${caName}" "${caFingerprint}" && ({ + echo "CA fingerprint ${caFingerprint} (${caName}) is present in the cacertWithExcludes bundle." >&2 + exit 1 + }) + '' + )} - # Ensure that the extra certificates ARE in the "cacertWithExtras". - ${mapExtra (extraName: extraFingerprint: '' - isTrusted "$cacertWithExtras" "${extraName}" "${extraFingerprint}" || ({ - echo "CA fingerprint ${extraFingerprint} (${extraName}) is not present in the cacertWithExtras bundle." >&2 - exit 1 - }) - '')} + touch "$out" + ''; - touch "$out" - ''; - }; + # Test that we can add additional certificates to the store, and have them be trusted. + extra-certificates = + let + extraCertificateStr = '' + -----BEGIN CERTIFICATE----- + MIIB5DCCAWqgAwIBAgIUItvsAYEIdYDkOIo5sdDYMcUaNuIwCgYIKoZIzj0EAwIw + KTEnMCUGA1UEAwweTml4T1MgY2FjZXJ0IGV4dHJhIGNlcnRpZmljYXRlMB4XDTIx + MDYxMjE5MDQzMFoXDTIyMDYxMjE5MDQzMFowKTEnMCUGA1UEAwweTml4T1MgY2Fj + ZXJ0IGV4dHJhIGNlcnRpZmljYXRlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuP8y + lAm6ZyQt9v/P6gTlV/a9R+D61WjucW04kaegOhg8csiluimYodiSv0Pbgymu+Zxm + A3Bz9QGmytaYTiJ16083rJkwwIhqoYl7kWsLzreSTaLz87KH+rdeol59+H0Oo1Mw + UTAdBgNVHQ4EFgQUCxuHfvqI4YVU5M+A0+aKvd1LrdswHwYDVR0jBBgwFoAUCxuH + fvqI4YVU5M+A0+aKvd1LrdswDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAgNo + ADBlAjEArgxgjdNmRlSEuai0dzlktmBEDZKy2Iiul+ttSoce9ohfEVYESwO602HW + keVvI56vAjBCro3dc3m2TuktiKO6lQV56PUEyxko4H/sR5pnHlduCGRDlFzQKXf/ + pMMmtj7cVb8= + -----END CERTIFICATE----- + ''; + extraCertificateFile = ./test-cert-file.crt; + extraCertificatesToFingerprint = { + # String above + "NixOS cacert extra certificate string" = "A3:20:D0:84:96:97:25:FF:98:B8:A9:6D:A3:7C:89:95:6E:7A:77:21:92:F3:33:E9:31:AF:5E:03:CE:A9:E5:EE"; + + # File + "NixOS cacert extra certificate file" = "88:B8:BE:A7:57:AC:F1:FE:D6:98:8B:50:E0:BD:0A:AE:88:C7:DF:70:26:E1:67:5E:F5:F6:91:27:FF:02:D4:A5"; + }; + mapExtra = f: lib.concatStringsSep "\n" (lib.mapAttrsToList f extraCertificatesToFingerprint); + in + runCommand "verify-the-cacert-extra-output" + { + cacert = cacert.unbundled; + cacertWithExtras = + (cacert.override { + extraCertificateStrings = [ extraCertificateStr ]; + extraCertificateFiles = [ extraCertificateFile ]; + }).unbundled; + + nativeBuildInputs = [ openssl ]; + } + '' + ${isTrusted} + + # Ensure that the extra certificate is not in the main "cacert". + ${mapExtra ( + extraName: extraFingerprint: '' + isTrusted "$cacert" "${extraName}" "${extraFingerprint}" && ({ + echo "'extra' CA fingerprint ${extraFingerprint} (${extraName}) is present in the main CA bundle." >&2 + exit 1 + }) + '' + )} + + # Ensure that the extra certificates ARE in the "cacertWithExtras". + ${mapExtra ( + extraName: extraFingerprint: '' + isTrusted "$cacertWithExtras" "${extraName}" "${extraFingerprint}" || ({ + echo "CA fingerprint ${extraFingerprint} (${extraName}) is not present in the cacertWithExtras bundle." >&2 + exit 1 + }) + '' + )} + + touch "$out" + ''; + }; }; inherit meta; diff --git a/pkgs/by-name/ca/cairo/default.nix b/pkgs/by-name/ca/cairo/default.nix index 7408a43..9cb35c8 100644 --- a/pkgs/by-name/ca/cairo/default.nix +++ b/pkgs/by-name/ca/cairo/default.nix @@ -1,116 +1,164 @@ -{ lib, stdenv, fetchurl, fetchpatch, gtk-doc, meson, ninja, pkg-config, python3 -, docbook_xsl, fontconfig, freetype, libpng, pixman, zlib -, x11Support? !stdenv.isDarwin || true, libXext, libXrender -, gobjectSupport ? true, glib -, xcbSupport ? x11Support, libxcb -, darwin -, testers +{ + lib, + stdenv, + fetchurl, + fetchpatch, + gtk-doc, + meson, + ninja, + pkg-config, + python3, + docbook_xsl, + fontconfig, + freetype, + libpng, + pixman, + zlib, + x11Support ? !stdenv.isDarwin || true, + libXext, + libXrender, + gobjectSupport ? true, + glib, + xcbSupport ? x11Support, + libxcb, + darwin, + testers, }: let inherit (lib) optional optionals; -in stdenv.mkDerivation (finalAttrs: let - inherit (finalAttrs) pname version; -in { - pname = "cairo"; - version = "1.18.0"; +in +stdenv.mkDerivation ( + finalAttrs: + let + inherit (finalAttrs) pname version; + in + { + pname = "cairo"; + version = "1.18.0"; - src = fetchurl { - url = "https://cairographics.org/${if lib.mod (builtins.fromJSON (lib.versions.minor version)) 2 == 0 then "releases" else "snapshots"}/${pname}-${version}.tar.xz"; - hash = "sha256-JDoHNrl4oz3uKfnMp1IXM7eKZbVBggb+970cPUzxC2Q="; - }; + src = fetchurl { + url = "https://cairographics.org/${ + if lib.mod (builtins.fromJSON (lib.versions.minor version)) 2 == 0 then "releases" else "snapshots" + }/${pname}-${version}.tar.xz"; + hash = "sha256-JDoHNrl4oz3uKfnMp1IXM7eKZbVBggb+970cPUzxC2Q="; + }; - outputs = [ "out" "dev" "devdoc" ]; - outputBin = "dev"; # very small - separateDebugInfo = true; + outputs = [ + "out" + "dev" + "devdoc" + ]; + outputBin = "dev"; # very small + separateDebugInfo = true; - nativeBuildInputs = [ - gtk-doc - meson - ninja - pkg-config - python3 - ]; + nativeBuildInputs = [ + gtk-doc + meson + ninja + pkg-config + python3 + ]; - buildInputs = [ - docbook_xsl - ] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - CoreGraphics - CoreText - ApplicationServices - Carbon - ]); + buildInputs = + [ docbook_xsl ] + ++ optionals stdenv.isDarwin ( + with darwin.apple_sdk.frameworks; + [ + CoreGraphics + CoreText + ApplicationServices + Carbon + ] + ); - propagatedBuildInputs = [ fontconfig freetype pixman libpng zlib ] - ++ optionals x11Support [ libXext libXrender ] - ++ optionals xcbSupport [ libxcb ] - ++ optional gobjectSupport glib - ; # TODO: maybe liblzo but what would it be for here? + propagatedBuildInputs = + [ + fontconfig + freetype + pixman + libpng + zlib + ] + ++ optionals x11Support [ + libXext + libXrender + ] + ++ optionals xcbSupport [ libxcb ] + ++ optional gobjectSupport glib; # TODO: maybe liblzo but what would it be for here? - mesonFlags = [ - "-Dgtk_doc=true" + mesonFlags = + [ + "-Dgtk_doc=true" - # error: #error config.h must be included before this header - "-Dsymbol-lookup=disabled" + # error: #error config.h must be included before this header + "-Dsymbol-lookup=disabled" - # Only used in tests, causes a dependency cycle - "-Dspectre=disabled" + # Only used in tests, causes a dependency cycle + "-Dspectre=disabled" - (lib.mesonEnable "glib" gobjectSupport) - (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck) - (lib.mesonEnable "xlib" x11Support) - (lib.mesonEnable "xcb" xcbSupport) - ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - "--cross-file=${builtins.toFile "cross-file.conf" '' - [properties] - ipc_rmid_deferred_release = ${ - { - linux = "true"; - freebsd = "true"; - netbsd = "false"; - }.${stdenv.hostPlatform.parsed.kernel.name} or - (throw "Unknown value for ipc_rmid_deferred_release") - } - ''}" - ]; + (lib.mesonEnable "glib" gobjectSupport) + (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck) + (lib.mesonEnable "xlib" x11Support) + (lib.mesonEnable "xcb" xcbSupport) + ] + ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + "--cross-file=${builtins.toFile "cross-file.conf" '' + [properties] + ipc_rmid_deferred_release = ${ + { + linux = "true"; + freebsd = "true"; + netbsd = "false"; + } + .${stdenv.hostPlatform.parsed.kernel.name} or (throw "Unknown value for ipc_rmid_deferred_release") + } + ''}" + ]; - preConfigure = '' - patchShebangs version.py - ''; - - enableParallelBuilding = true; - - doCheck = false; # fails - - postInstall = '' - # Work around broken `Requires.private' that prevents Freetype - # `-I' flags to be propagated. - sed -i "$out/lib/pkgconfig/cairo.pc" \ - -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype.dev}/include/freetype2 -I${freetype.dev}/include|g' - '' + lib.optionalString stdenv.isDarwin glib.flattenInclude; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - description = "A 2D graphics library with support for multiple output devices"; - mainProgram = "cairo-trace"; - longDescription = '' - Cairo is a 2D graphics library with support for multiple output - devices. Currently supported output targets include the X - Window System, XCB, Quartz, Win32, image buffers, PostScript, - PDF, and SVG file output. - - Cairo is designed to produce consistent output on all output - media while taking advantage of display hardware acceleration - when available (e.g., through the X Render Extension). + preConfigure = '' + patchShebangs version.py ''; - homepage = "http://cairographics.org/"; - license = with licenses; [ lgpl2Plus mpl10 ]; - pkgConfigModules = [ - "cairo-pdf" - "cairo-ps" - "cairo-svg" - ] ++ lib.optional gobjectSupport "cairo-gobject"; - platforms = platforms.all; - }; -}) + + enableParallelBuilding = true; + + doCheck = false; # fails + + postInstall = + '' + # Work around broken `Requires.private' that prevents Freetype + # `-I' flags to be propagated. + sed -i "$out/lib/pkgconfig/cairo.pc" \ + -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype.dev}/include/freetype2 -I${freetype.dev}/include|g' + '' + + lib.optionalString stdenv.isDarwin glib.flattenInclude; + + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + + meta = with lib; { + description = "A 2D graphics library with support for multiple output devices"; + mainProgram = "cairo-trace"; + longDescription = '' + Cairo is a 2D graphics library with support for multiple output + devices. Currently supported output targets include the X + Window System, XCB, Quartz, Win32, image buffers, PostScript, + PDF, and SVG file output. + + Cairo is designed to produce consistent output on all output + media while taking advantage of display hardware acceleration + when available (e.g., through the X Render Extension). + ''; + homepage = "http://cairographics.org/"; + license = with licenses; [ + lgpl2Plus + mpl10 + ]; + pkgConfigModules = [ + "cairo-pdf" + "cairo-ps" + "cairo-svg" + ] ++ lib.optional gobjectSupport "cairo-gobject"; + platforms = platforms.all; + }; + } +) diff --git a/pkgs/by-name/ca/cargo-nextest/default.nix b/pkgs/by-name/ca/cargo-nextest/default.nix index de0af79..d58eca0 100644 --- a/pkgs/by-name/ca/cargo-nextest/default.nix +++ b/pkgs/by-name/ca/cargo-nextest/default.nix @@ -1,4 +1,10 @@ -{ lib, rustPlatform, fetchFromGitHub, stdenv, darwin }: +{ + lib, + rustPlatform, + fetchFromGitHub, + stdenv, + darwin, +}: rustPlatform.buildRustPackage rec { pname = "cargo-nextest"; @@ -13,12 +19,16 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-FH9ODkK84bPPYyHP4kKcHKWpJ3FV1NC8S/NQFvV63Gw="; - buildInputs = lib.optionals stdenv.isDarwin [ - darwin.apple_sdk.frameworks.SystemConfiguration - ]; + buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ]; - cargoBuildFlags = [ "-p" "cargo-nextest" ]; - cargoTestFlags = [ "-p" "cargo-nextest" ]; + cargoBuildFlags = [ + "-p" + "cargo-nextest" + ]; + cargoTestFlags = [ + "-p" + "cargo-nextest" + ]; # TODO: investigate some more why these tests fail in nix checkFlags = [ @@ -32,7 +42,14 @@ rustPlatform.buildRustPackage rec { mainProgram = "cargo-nextest"; homepage = "https://github.com/nextest-rs/nextest"; changelog = "https://nexte.st/CHANGELOG.html"; - license = with licenses; [ mit asl20 ]; - maintainers = with maintainers; [ ekleog figsoda matthiasbeyer ]; + license = with licenses; [ + mit + asl20 + ]; + maintainers = with maintainers; [ + ekleog + figsoda + matthiasbeyer + ]; }; } diff --git a/pkgs/by-name/ca/catch2/3.nix b/pkgs/by-name/ca/catch2/3.nix index 403c4f7..dc09c89 100644 --- a/pkgs/by-name/ca/catch2/3.nix +++ b/pkgs/by-name/ca/catch2/3.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, python3 +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + python3, }: stdenv.mkDerivation rec { @@ -16,31 +17,27 @@ stdenv.mkDerivation rec { hash = "sha256-xGPfXjk+oOnR7JqTrZd2pKJxalrlS8CMs7HWDClXaS8="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; hardeningDisable = [ "trivialautovarinit" ]; - cmakeFlags = [ - "-DCATCH_DEVELOPMENT_BUILD=ON" - "-DCATCH_BUILD_TESTING=${if doCheck then "ON" else "OFF"}" - ] ++ lib.optionals (stdenv.isDarwin && doCheck) [ - # test has a faulty path normalization technique that won't work in - # our darwin build environment https://github.com/catchorg/Catch2/issues/1691 - "-DCMAKE_CTEST_ARGUMENTS=-E;ApprovalTests" - ]; + cmakeFlags = + [ + "-DCATCH_DEVELOPMENT_BUILD=ON" + "-DCATCH_BUILD_TESTING=${if doCheck then "ON" else "OFF"}" + ] + ++ lib.optionals (stdenv.isDarwin && doCheck) [ + # test has a faulty path normalization technique that won't work in + # our darwin build environment https://github.com/catchorg/Catch2/issues/1691 + "-DCMAKE_CTEST_ARGUMENTS=-E;ApprovalTests" + ]; # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796 - env = lib.optionalAttrs stdenv.isx86_32 { - NIX_CFLAGS_COMPILE = "-msse2 -mfpmath=sse"; - }; + env = lib.optionalAttrs stdenv.isx86_32 { NIX_CFLAGS_COMPILE = "-msse2 -mfpmath=sse"; }; doCheck = true; - nativeCheckInputs = [ - python3 - ]; + nativeCheckInputs = [ python3 ]; meta = { description = "Modern, C++-native, test framework for unit-tests"; diff --git a/pkgs/by-name/ca/catch2/default.nix b/pkgs/by-name/ca/catch2/default.nix index 56b2016..87555d7 100644 --- a/pkgs/by-name/ca/catch2/default.nix +++ b/pkgs/by-name/ca/catch2/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: stdenv.mkDerivation rec { pname = "catch2"; @@ -8,7 +13,7 @@ stdenv.mkDerivation rec { owner = "catchorg"; repo = "Catch2"; rev = "v${version}"; - sha256="sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU="; + sha256 = "sha256-XnT2ziES94Y4uzWmaxSw7nWegJFQjAqFUG8PkwK5nLU="; }; nativeBuildInputs = [ cmake ]; @@ -19,7 +24,10 @@ stdenv.mkDerivation rec { description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)"; homepage = "http://catch-lib.net"; license = licenses.boost; - maintainers = with maintainers; [ edwtjo knedlsepp ]; + maintainers = with maintainers; [ + edwtjo + knedlsepp + ]; platforms = with platforms; unix ++ windows; }; } diff --git a/pkgs/by-name/ca/catch2/packages.nix b/pkgs/by-name/ca/catch2/packages.nix index 1f6ed31..e4e30f1 100644 --- a/pkgs/by-name/ca/catch2/packages.nix +++ b/pkgs/by-name/ca/catch2/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { catch2 = callPackage ./. { }; catch2_3 = callPackage ./3.nix { }; } diff --git a/pkgs/by-name/cl/cloog/0.18.0.nix b/pkgs/by-name/cl/cloog/0.18.0.nix index a1ba3aa..ac992f3 100644 --- a/pkgs/by-name/cl/cloog/0.18.0.nix +++ b/pkgs/by-name/cl/cloog/0.18.0.nix @@ -1,4 +1,10 @@ -{ fetchurl, lib, stdenv, gmp, isl }: +{ + fetchurl, + lib, + stdenv, + gmp, + isl, +}: stdenv.mkDerivation rec { pname = "cloog"; @@ -41,24 +47,24 @@ stdenv.mkDerivation rec { license = lib.licenses.gpl2Plus; - /* Leads to an ICE on Cygwin: - - make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src' - /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c -o Box.lo Box.cc - libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc -DDLL_EXPORT -DPIC -o .libs/Box.o - In file included from checked.defs.hh:595, - from Checked_Number.defs.hh:27, - from Coefficient.types.hh:15, - from Coefficient.defs.hh:26, - from Box.defs.hh:28, - from Box.cc:24: - checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)': - checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719 - Please submit a full bug report, - with preprocessed source if appropriate. - See for instructions. - make[3]: *** [Box.lo] Error 1 + /* + Leads to an ICE on Cygwin: + make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src' + /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c -o Box.lo Box.cc + libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc -DDLL_EXPORT -DPIC -o .libs/Box.o + In file included from checked.defs.hh:595, + from Checked_Number.defs.hh:27, + from Coefficient.types.hh:15, + from Coefficient.defs.hh:26, + from Box.defs.hh:28, + from Box.cc:24: + checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)': + checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719 + Please submit a full bug report, + with preprocessed source if appropriate. + See for instructions. + make[3]: *** [Box.lo] Error 1 */ platforms = lib.platforms.unix; # Once had cygwin problems }; diff --git a/pkgs/by-name/cl/cloog/default.nix b/pkgs/by-name/cl/cloog/default.nix index 3ae266c..0d7e26b 100644 --- a/pkgs/by-name/cl/cloog/default.nix +++ b/pkgs/by-name/cl/cloog/default.nix @@ -1,4 +1,10 @@ -{ fetchurl, lib, stdenv, gmp, isl }: +{ + fetchurl, + lib, + stdenv, + gmp, + isl, +}: stdenv.mkDerivation rec { pname = "cloog"; @@ -43,24 +49,24 @@ stdenv.mkDerivation rec { license = lib.licenses.gpl2Plus; - /* Leads to an ICE on Cygwin: - - make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src' - /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c -o Box.lo Box.cc - libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc -DDLL_EXPORT -DPIC -o .libs/Box.o - In file included from checked.defs.hh:595, - from Checked_Number.defs.hh:27, - from Coefficient.types.hh:15, - from Coefficient.defs.hh:26, - from Box.defs.hh:28, - from Box.cc:24: - checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)': - checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719 - Please submit a full bug report, - with preprocessed source if appropriate. - See for instructions. - make[3]: *** [Box.lo] Error 1 + /* + Leads to an ICE on Cygwin: + make[3]: Entering directory `/tmp/nix-build-9q5gw5m37q5l4f0kjfv9ar8fsc9plk27-ppl-0.10.2.drv-1/ppl-0.10.2/src' + /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c -o Box.lo Box.cc + libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -g -O2 -frounding-math -W -Wall -c Box.cc -DDLL_EXPORT -DPIC -o .libs/Box.o + In file included from checked.defs.hh:595, + from Checked_Number.defs.hh:27, + from Coefficient.types.hh:15, + from Coefficient.defs.hh:26, + from Box.defs.hh:28, + from Box.cc:24: + checked.inlines.hh: In function `Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Checked::input_generic(Type&, std::istream&, Parma_Polyhedra_Library::Rounding_Dir)': + checked.inlines.hh:607: internal compiler error: in invert_truthvalue, at fold-const.c:2719 + Please submit a full bug report, + with preprocessed source if appropriate. + See for instructions. + make[3]: *** [Box.lo] Error 1 */ platforms = lib.platforms.unix; # Once had cygwin problems }; diff --git a/pkgs/by-name/cl/cloog/packages.nix b/pkgs/by-name/cl/cloog/packages.nix index 0800b3c..8dff529 100644 --- a/pkgs/by-name/cl/cloog/packages.nix +++ b/pkgs/by-name/cl/cloog/packages.nix @@ -1,13 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ - cloog = callPackage ./. { - isl = isl_0_14; - }; +with pkgs; { + cloog = callPackage ./. { isl = isl_0_14; }; - cloog_0_18_0 = callPackage ./0.18.0.nix { - isl = isl_0_11; - }; + cloog_0_18_0 = callPackage ./0.18.0.nix { isl = isl_0_11; }; } diff --git a/pkgs/by-name/cm/cmake/default.nix b/pkgs/by-name/cm/cmake/default.nix index d13cc0b..8024629 100644 --- a/pkgs/by-name/cm/cmake/default.nix +++ b/pkgs/by-name/cm/cmake/default.nix @@ -1,52 +1,56 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, bzip2 -, curlMinimal -, expat -, libarchive -, libuv -, ncurses -, openssl -, pkg-config -, ps -, rhash -, sphinx -, texinfo -, xz -, zlib -, isBootstrap ? null -, isMinimalBuild ? ( - if isBootstrap != null - then lib.warn - "isBootstrap argument is deprecated and will be removed; use isMinimalBuild instead" - isBootstrap - else false) -, useOpenSSL ? !isMinimalBuild -, useSharedLibraries ? (!isMinimalBuild && !stdenv.isCygwin) -, uiToolkits ? [] # can contain "ncurses" and/or "qt5" -, buildDocs ? !(isMinimalBuild || (uiToolkits == [])) -, darwin -# , libsForQt5 -, gitUpdater +{ + lib, + stdenv, + fetchurl, + buildPackages, + bzip2, + curlMinimal, + expat, + libarchive, + libuv, + ncurses, + openssl, + pkg-config, + ps, + rhash, + sphinx, + texinfo, + xz, + zlib, + isBootstrap ? null, + isMinimalBuild ? ( + if isBootstrap != null then + lib.warn "isBootstrap argument is deprecated and will be removed; use isMinimalBuild instead" isBootstrap + else + false + ), + useOpenSSL ? !isMinimalBuild, + useSharedLibraries ? (!isMinimalBuild && !stdenv.isCygwin), + uiToolkits ? [ ], # can contain "ncurses" and/or "qt5" + buildDocs ? !(isMinimalBuild || (uiToolkits == [ ])), + darwin, + # , libsForQt5 + gitUpdater, }: let inherit (darwin.apple_sdk.frameworks) CoreServices SystemConfiguration; # inherit (libsForQt5) qtbase wrapQtAppsHook; cursesUI = lib.elem "ncurses" uiToolkits; - # qt5UI = lib.elem "qt5" uiToolkits; in +# qt5UI = lib.elem "qt5" uiToolkits; # Accepts only "ncurses" and "qt5" as possible uiToolkits -assert lib.subtractLists [ "ncurses" "qt5" ] uiToolkits == []; +assert + lib.subtractLists [ + "ncurses" + "qt5" + ] uiToolkits == [ ]; # Minimal, bootstrap cmake does not have toolkits -assert isMinimalBuild -> (uiToolkits == []); +assert isMinimalBuild -> (uiToolkits == [ ]); stdenv.mkDerivation (finalAttrs: { - pname = "cmake" - + lib.optionalString isMinimalBuild "-minimal" - + lib.optionalString cursesUI "-cursesUI"; - # + lib.optionalString qt5UI "-qt5UI"; + pname = + "cmake" + lib.optionalString isMinimalBuild "-minimal" + lib.optionalString cursesUI "-cursesUI"; + # + lib.optionalString qt5UI "-qt5UI"; version = "3.29.1"; src = fetchurl { @@ -54,21 +58,27 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-f7Auj1e2Kzmqa0z3HoIBSLoaI3JIiElHNQIeMqsO78w="; }; - patches = [ - # Don't search in non-Nix locations such as /usr, but do search in our libc. - ./001-search-path.diff - # Don't depend on frameworks. - ./002-application-services.diff - # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d - ./003-libuv-application-services.diff - ] - ++ lib.optional stdenv.isCygwin ./004-cygwin.diff - # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51 - ++ lib.optional (stdenv.isDarwin && isMinimalBuild) ./005-remove-systemconfiguration-dep.diff - # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG. - ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff; + patches = + [ + # Don't search in non-Nix locations such as /usr, but do search in our libc. + ./001-search-path.diff + # Don't depend on frameworks. + ./002-application-services.diff + # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d + ./003-libuv-application-services.diff + ] + ++ lib.optional stdenv.isCygwin ./004-cygwin.diff + # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51 + ++ lib.optional (stdenv.isDarwin && isMinimalBuild) ./005-remove-systemconfiguration-dep.diff + # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG. + ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff; - outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ]; + outputs = + [ "out" ] + ++ lib.optionals buildDocs [ + "man" + "info" + ]; separateDebugInfo = true; setOutputFlags = false; @@ -79,27 +89,25 @@ stdenv.mkDerivation (finalAttrs: { depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = finalAttrs.setupHooks ++ [ - pkg-config - ] - ++ lib.optionals buildDocs [ texinfo ]; + nativeBuildInputs = finalAttrs.setupHooks ++ [ pkg-config ] ++ lib.optionals buildDocs [ texinfo ]; # ++ lib.optionals qt5UI [ wrapQtAppsHook ]; - buildInputs = lib.optionals useSharedLibraries [ - bzip2 - curlMinimal - expat - libarchive - xz - zlib - libuv - rhash - ] - ++ lib.optional useOpenSSL openssl - ++ lib.optional cursesUI ncurses - # ++ lib.optional qt5UI qtbase - ++ lib.optional stdenv.isDarwin CoreServices - ++ lib.optional (stdenv.isDarwin && !isMinimalBuild) SystemConfiguration; + buildInputs = + lib.optionals useSharedLibraries [ + bzip2 + curlMinimal + expat + libarchive + xz + zlib + libuv + rhash + ] + ++ lib.optional useOpenSSL openssl + ++ lib.optional cursesUI ncurses + # ++ lib.optional qt5UI qtbase + ++ lib.optional stdenv.isDarwin CoreServices + ++ lib.optional (stdenv.isDarwin && !isMinimalBuild) SystemConfiguration; propagatedBuildInputs = lib.optional stdenv.isDarwin ps; @@ -118,49 +126,49 @@ stdenv.mkDerivation (finalAttrs: { # variables and commandline switches configurePlatforms = [ ]; - configureFlags = [ - "CXXFLAGS=-Wno-elaborated-enum-base" - "--docdir=share/doc/${finalAttrs.pname}-${finalAttrs.version}" - ] ++ (if useSharedLibraries - then [ + configureFlags = + [ + "CXXFLAGS=-Wno-elaborated-enum-base" + "--docdir=share/doc/${finalAttrs.pname}-${finalAttrs.version}" + ] + ++ ( + if useSharedLibraries then + [ "--no-system-cppdap" "--no-system-jsoncpp" "--system-libs" ] - else [ - "--no-system-libs" - ]) # FIXME: cleanup - # ++ lib.optional qt5UI "--qt-gui" - ++ lib.optionals buildDocs [ - "--sphinx-build=${sphinx}/bin/sphinx-build" - "--sphinx-info" - "--sphinx-man" - ] - # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568 - ++ lib.optionals stdenv.hostPlatform.is32bit [ - "CFLAGS=-D_FILE_OFFSET_BITS=64" - "CXXFLAGS=-D_FILE_OFFSET_BITS=64" - ] - ++ [ - "--" - # We should set the proper `CMAKE_SYSTEM_NAME`. - # http://www.cmake.org/Wiki/CMake_Cross_Compiling - # - # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and - # strip. Otherwise they are taken to be relative to the source root of the - # package being built. - (lib.cmakeFeature "CMAKE_CXX_COMPILER" "${stdenv.cc.targetPrefix}c++") - (lib.cmakeFeature "CMAKE_C_COMPILER" "${stdenv.cc.targetPrefix}cc") - (lib.cmakeFeature "CMAKE_AR" - "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar") - (lib.cmakeFeature "CMAKE_RANLIB" - "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib") - (lib.cmakeFeature "CMAKE_STRIP" - "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip") + else + [ "--no-system-libs" ] + ) # FIXME: cleanup + # ++ lib.optional qt5UI "--qt-gui" + ++ lib.optionals buildDocs [ + "--sphinx-build=${sphinx}/bin/sphinx-build" + "--sphinx-info" + "--sphinx-man" + ] + # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568 + ++ lib.optionals stdenv.hostPlatform.is32bit [ + "CFLAGS=-D_FILE_OFFSET_BITS=64" + "CXXFLAGS=-D_FILE_OFFSET_BITS=64" + ] + ++ [ + "--" + # We should set the proper `CMAKE_SYSTEM_NAME`. + # http://www.cmake.org/Wiki/CMake_Cross_Compiling + # + # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and + # strip. Otherwise they are taken to be relative to the source root of the + # package being built. + (lib.cmakeFeature "CMAKE_CXX_COMPILER" "${stdenv.cc.targetPrefix}c++") + (lib.cmakeFeature "CMAKE_C_COMPILER" "${stdenv.cc.targetPrefix}cc") + (lib.cmakeFeature "CMAKE_AR" "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar") + (lib.cmakeFeature "CMAKE_RANLIB" "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib") + (lib.cmakeFeature "CMAKE_STRIP" "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip") - (lib.cmakeBool "CMAKE_USE_OPENSSL" useOpenSSL) - (lib.cmakeBool "BUILD_CursesDialog" cursesUI) - ]; + (lib.cmakeBool "CMAKE_USE_OPENSSL" useOpenSSL) + (lib.cmakeBool "BUILD_CursesDialog" cursesUI) + ]; # `pkgsCross.musl64.cmake.override { stdenv = pkgsCross.musl64.llvmPackages_16.libcxxStdenv; }` # fails with `The C++ compiler does not support C++11 (e.g. std::unique_ptr).` @@ -196,9 +204,16 @@ stdenv.mkDerivation (finalAttrs: { ''; changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor finalAttrs.version}/release/${lib.versions.majorMinor finalAttrs.version}.html"; license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ ttuegel lnl7 AndersonTorres ]; + maintainers = with lib.maintainers; [ + ttuegel + lnl7 + AndersonTorres + ]; platforms = lib.platforms.all; mainProgram = "cmake"; - broken = (/*qt5UI &&*/ stdenv.isDarwin); + broken = ( + # qt5UI && + stdenv.isDarwin + ); }; }) diff --git a/pkgs/by-name/cm/cmake/packages.nix b/pkgs/by-name/cm/cmake/packages.nix index 638a24a..37851cb 100644 --- a/pkgs/by-name/cm/cmake/packages.nix +++ b/pkgs/by-name/cm/cmake/packages.nix @@ -1,20 +1,18 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { cmake = callPackage ./. { }; # can't use override - it triggers infinite recursion - cmakeMinimal = callPackage ./. { - isMinimalBuild = true; - }; + cmakeMinimal = callPackage ./. { isMinimalBuild = true; }; - cmakeCurses = cmake.override { - uiToolkits = [ "ncurses" ]; - }; + cmakeCurses = cmake.override { uiToolkits = [ "ncurses" ]; }; cmakeWithGui = cmake.override { - uiToolkits = [ "ncurses" "qt5" ]; + uiToolkits = [ + "ncurses" + "qt5" + ]; }; } diff --git a/pkgs/by-name/co/coeurl/default.nix b/pkgs/by-name/co/coeurl/default.nix index b0743e0..c88bf4e 100644 --- a/pkgs/by-name/co/coeurl/default.nix +++ b/pkgs/by-name/co/coeurl/default.nix @@ -1,13 +1,14 @@ -{ lib -, stdenv -, fetchFromGitLab -, fetchpatch -, ninja -, pkg-config -, meson -, libevent -, curl -, spdlog +{ + lib, + stdenv, + fetchFromGitLab, + fetchpatch, + ninja, + pkg-config, + meson, + libevent, + curl, + spdlog, }: stdenv.mkDerivation rec { @@ -41,9 +42,17 @@ stdenv.mkDerivation rec { substituteInPlace subprojects/curl.wrap --replace '[provides]' '[provide]' ''; - nativeBuildInputs = [ ninja pkg-config meson ]; + nativeBuildInputs = [ + ninja + pkg-config + meson + ]; - buildInputs = [ libevent curl spdlog ]; + buildInputs = [ + libevent + curl + spdlog + ]; meta = with lib; { description = "A simple async wrapper around CURL for C++"; diff --git a/pkgs/by-name/co/coreutils/default.nix b/pkgs/by-name/co/coreutils/default.nix index efcdce1..d3fbe91 100644 --- a/pkgs/by-name/co/coreutils/default.nix +++ b/pkgs/by-name/co/coreutils/default.nix @@ -1,22 +1,29 @@ -{ lib -, stdenv -, fetchurl -, autoreconfHook -, buildPackages -, libiconv -, perl -, texinfo -, xz -, gmpSupport ? true, gmp -, aclSupport ? stdenv.isLinux, acl -, attrSupport ? stdenv.isLinux, attr -, selinuxSupport ? false, libselinux, libsepol -# No openssl in default version, so openssl-induced rebuilds aren't too big. -# It makes *sum functions significantly faster. -, minimal ? true -, withOpenssl ? !minimal, openssl -, withPrefix ? false -, singleBinary ? "symlinks" # you can also pass "shebangs" or false +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + buildPackages, + libiconv, + perl, + texinfo, + xz, + gmpSupport ? true, + gmp, + aclSupport ? stdenv.isLinux, + acl, + attrSupport ? stdenv.isLinux, + attr, + selinuxSupport ? false, + libselinux, + libsepol, + # No openssl in default version, so openssl-induced rebuilds aren't too big. + # It makes *sum functions significantly faster. + minimal ? true, + withOpenssl ? !minimal, + openssl, + withPrefix ? false, + singleBinary ? "symlinks", # you can also pass "shebangs" or false }: # Note: this package is used for bootstrapping fetchurl, and thus cannot use @@ -27,7 +34,13 @@ assert aclSupport -> acl != null; assert selinuxSupport -> libselinux != null && libsepol != null; let - inherit (lib) concatStringsSep isString optional optionals optionalString; + inherit (lib) + concatStringsSep + isString + optional + optionals + optionalString + ; isCross = (stdenv.hostPlatform != stdenv.buildPlatform); in stdenv.mkDerivation rec { @@ -44,82 +57,97 @@ stdenv.mkDerivation rec { ./fix-test-failure-musl.patch ]; - postPatch = '' - # The test tends to fail on btrfs, f2fs and maybe other unusual filesystems. - sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh - sed '2i echo Skipping du threshold test && exit 77' -i ./tests/du/threshold.sh - sed '2i echo Skipping cp reflink-auto test && exit 77' -i ./tests/cp/reflink-auto.sh - sed '2i echo Skipping cp sparse test && exit 77' -i ./tests/cp/sparse.sh - sed '2i echo Skipping env test && exit 77' -i ./tests/env/env.sh - sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh - sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh - - # Some target platforms, especially when building inside a container have - # issues with the inotify test. - sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail/inotify-dir-recreate.sh - - # sandbox does not allow setgid - sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh - substituteInPlace ./tests/install/install-C.sh \ - --replace 'mode3=2755' 'mode3=1755' - - # Fails on systems with a rootfs. Looks like a bug in the test, see - # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html - sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh - - # these tests fail in the unprivileged nix sandbox (without nix-daemon) as we break posix assumptions - for f in ./tests/chgrp/{basic.sh,recurse.sh,default-no-deref.sh,no-x.sh,posix-H.sh}; do - sed '2i echo Skipping chgrp && exit 77' -i "$f" - done - for f in gnulib-tests/{test-chown.c,test-fchownat.c,test-lchown.c}; do - echo "int main() { return 77; }" > "$f" - done - - # We don't have localtime in the sandbox - for f in gnulib-tests/{test-localtime_r.c,test-localtime_r-mt.c}; do - echo "int main() { return 77; }" > "$f" - done - - # intermittent failures on builders, unknown reason - sed '2i echo Skipping du basic test && exit 77' -i ./tests/du/basic.sh - '' + (optionalString (stdenv.hostPlatform.libc == "musl") (concatStringsSep "\n" [ + postPatch = '' - echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c - echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c - '' - ])) + (optionalString stdenv.isAarch64 '' - # Sometimes fails: https://github.com/NixOS/nixpkgs/pull/143097#issuecomment-954462584 - sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/cut/cut-huge-range.sh - ''); + # The test tends to fail on btrfs, f2fs and maybe other unusual filesystems. + sed '2i echo Skipping dd sparse test && exit 77' -i ./tests/dd/sparse.sh + sed '2i echo Skipping du threshold test && exit 77' -i ./tests/du/threshold.sh + sed '2i echo Skipping cp reflink-auto test && exit 77' -i ./tests/cp/reflink-auto.sh + sed '2i echo Skipping cp sparse test && exit 77' -i ./tests/cp/sparse.sh + sed '2i echo Skipping env test && exit 77' -i ./tests/env/env.sh + sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh + sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh - outputs = [ "out" "info" ]; + # Some target platforms, especially when building inside a container have + # issues with the inotify test. + sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail/inotify-dir-recreate.sh + + # sandbox does not allow setgid + sed '2i echo Skipping chmod setgid test && exit 77' -i ./tests/chmod/setgid.sh + substituteInPlace ./tests/install/install-C.sh \ + --replace 'mode3=2755' 'mode3=1755' + + # Fails on systems with a rootfs. Looks like a bug in the test, see + # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html + sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh + + # these tests fail in the unprivileged nix sandbox (without nix-daemon) as we break posix assumptions + for f in ./tests/chgrp/{basic.sh,recurse.sh,default-no-deref.sh,no-x.sh,posix-H.sh}; do + sed '2i echo Skipping chgrp && exit 77' -i "$f" + done + for f in gnulib-tests/{test-chown.c,test-fchownat.c,test-lchown.c}; do + echo "int main() { return 77; }" > "$f" + done + + # We don't have localtime in the sandbox + for f in gnulib-tests/{test-localtime_r.c,test-localtime_r-mt.c}; do + echo "int main() { return 77; }" > "$f" + done + + # intermittent failures on builders, unknown reason + sed '2i echo Skipping du basic test && exit 77' -i ./tests/du/basic.sh + '' + + (optionalString (stdenv.hostPlatform.libc == "musl") ( + concatStringsSep "\n" [ + '' + echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c + echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c + '' + ] + )) + + (optionalString stdenv.isAarch64 '' + # Sometimes fails: https://github.com/NixOS/nixpkgs/pull/143097#issuecomment-954462584 + sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/cut/cut-huge-range.sh + ''); + + outputs = [ + "out" + "info" + ]; separateDebugInfo = true; - nativeBuildInputs = [ - # autoreconfHook is due to patch, normally only needed for cygwin - autoreconfHook - perl - xz.bin - ] - ++ optionals stdenv.hostPlatform.isCygwin [ - # due to patch - texinfo - ]; + nativeBuildInputs = + [ + # autoreconfHook is due to patch, normally only needed for cygwin + autoreconfHook + perl + xz.bin + ] + ++ optionals stdenv.hostPlatform.isCygwin [ + # due to patch + texinfo + ]; - buildInputs = [ ] + buildInputs = + [ ] ++ optional aclSupport acl ++ optional attrSupport attr ++ optional gmpSupport gmp ++ optional withOpenssl openssl - ++ optionals selinuxSupport [ libselinux libsepol ] + ++ optionals selinuxSupport [ + libselinux + libsepol + ] # TODO(@Ericson2314): Investigate whether Darwin could benefit too ++ optional (isCross && stdenv.hostPlatform.libc != "glibc") libiconv; hardeningDisable = [ "trivialautovarinit" ]; - configureFlags = [ "--with-packager=https://nixos.org" ] - ++ optional (singleBinary != false) - ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}") + configureFlags = + [ "--with-packager=https://nixos.org" ] + ++ optional (singleBinary != false) ( + "--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}" + ) ++ optional withOpenssl "--with-openssl" ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no" ++ optional withPrefix "--program-prefix=g" @@ -142,7 +170,8 @@ stdenv.mkDerivation rec { # Darwin (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19351), # and {Open,Free}BSD. # With non-standard storeDir: https://github.com/NixOS/nix/issues/512 - doCheck = (!isCross) + doCheck = + (!isCross) && (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") && !stdenv.isAarch32; @@ -153,10 +182,12 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = optionalString selinuxSupport "-lsepol"; FORCE_UNSAFE_CONFIGURE = optionalString stdenv.hostPlatform.isSunOS "1"; - env.NIX_CFLAGS_COMPILE = toString ([] + env.NIX_CFLAGS_COMPILE = toString ( + [ ] # Work around a bogus warning in conjunction with musl. ++ optional stdenv.hostPlatform.isMusl "-Wno-error" - ++ optional stdenv.hostPlatform.isAndroid "-D__USE_FORTIFY_LEVEL=0"); + ++ optional stdenv.hostPlatform.isAndroid "-D__USE_FORTIFY_LEVEL=0" + ); # Works around a bug with 8.26: # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually). Stop. @@ -164,14 +195,15 @@ stdenv.mkDerivation rec { sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|' ''; - postInstall = optionalString (isCross && !minimal) '' - rm $out/share/man/man1/* - cp ${buildPackages.coreutils-full}/share/man/man1/* $out/share/man/man1 - '' - # du: 8.7 M locale + 0.4 M man pages - + optionalString minimal '' - rm -r "$out/share" - ''; + postInstall = + optionalString (isCross && !minimal) '' + rm $out/share/man/man1/* + cp ${buildPackages.coreutils-full}/share/man/man1/* $out/share/man/man1 + '' + # du: 8.7 M locale + 0.4 M man pages + + optionalString minimal '' + rm -r "$out/share" + ''; meta = with lib; { homepage = "https://www.gnu.org/software/coreutils/"; diff --git a/pkgs/by-name/co/coreutils/packages.nix b/pkgs/by-name/co/coreutils/packages.nix index f691731..37c431e 100644 --- a/pkgs/by-name/co/coreutils/packages.nix +++ b/pkgs/by-name/co/coreutils/packages.nix @@ -1,13 +1,15 @@ { ... }: res: pkgs: super: -with pkgs; -{ - coreutils = callPackage ./. { }; +with pkgs; { + coreutils = callPackage ./. { }; # The coreutils above are built with dependencies from # bootstrapping. We cannot override it here, because that pulls in # openssl from the previous stage as well. coreutils-full = callPackage ./. { minimal = false; }; - coreutils-prefixed = coreutils.override { withPrefix = true; singleBinary = false; }; + coreutils-prefixed = coreutils.override { + withPrefix = true; + singleBinary = false; + }; } diff --git a/pkgs/by-name/cp/cpio/default.nix b/pkgs/by-name/cp/cpio/default.nix index 276cf41..639b062 100644 --- a/pkgs/by-name/cp/cpio/default.nix +++ b/pkgs/by-name/cp/cpio/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchurl -, autoreconfHook +{ + lib, + stdenv, + fetchurl, + autoreconfHook, # for passthru.tests # , git diff --git a/pkgs/by-name/cr/cracklib/default.nix b/pkgs/by-name/cr/cracklib/default.nix index 4c0badf..9df0b46 100644 --- a/pkgs/by-name/cr/cracklib/default.nix +++ b/pkgs/by-name/cr/cracklib/default.nix @@ -1,9 +1,19 @@ -let version = "2.9.11"; in -{ stdenv, lib, buildPackages, fetchurl, zlib, gettext -, lists ? [ (fetchurl { - url = "https://github.com/cracklib/cracklib/releases/download/v${version}/cracklib-words-${version}.gz"; - hash = "sha256-popxGjE1c517Z+nzYLM/DU7M+b1/rE0XwNXkVqkcUXo="; -}) ] +let + version = "2.9.11"; +in +{ + stdenv, + lib, + buildPackages, + fetchurl, + zlib, + gettext, + lists ? [ + (fetchurl { + url = "https://github.com/cracklib/cracklib/releases/download/v${version}/cracklib-words-${version}.gz"; + hash = "sha256-popxGjE1c517Z+nzYLM/DU7M+b1/rE0XwNXkVqkcUXo="; + }) + ], }: stdenv.mkDerivation rec { @@ -15,16 +25,23 @@ stdenv.mkDerivation rec { hash = "sha256-yosEmjwtOyIloejRXWE3mOvHSOOVA4jtomlN5Qe6YCA="; }; - nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) buildPackages.cracklib; - buildInputs = [ zlib gettext ]; + nativeBuildInputs = lib.optional ( + stdenv.hostPlatform != stdenv.buildPlatform + ) buildPackages.cracklib; + buildInputs = [ + zlib + gettext + ]; - postPatch = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - chmod +x util/cracklib-format - patchShebangs util + postPatch = + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' + chmod +x util/cracklib-format + patchShebangs util - '' + '' - ln -vs ${toString lists} dicts/ - ''; + '' + + '' + ln -vs ${toString lists} dicts/ + ''; postInstall = '' make dict-local @@ -33,10 +50,10 @@ stdenv.mkDerivation rec { installCheckTarget = "test"; meta = with lib; { - homepage = "https://github.com/cracklib/cracklib"; + homepage = "https://github.com/cracklib/cracklib"; description = "A library for checking the strength of passwords"; license = licenses.lgpl21; # Different license for the wordlist: http://www.openwall.com/wordlists maintainers = with maintainers; [ lovek323 ]; - platforms = platforms.unix; + platforms = platforms.unix; }; } diff --git a/pkgs/by-name/cr/cryptsetup/default.nix b/pkgs/by-name/cr/cryptsetup/default.nix index 0e32966..f83555c 100644 --- a/pkgs/by-name/cr/cryptsetup/default.nix +++ b/pkgs/by-name/cr/cryptsetup/default.nix @@ -1,22 +1,38 @@ -{ lib, stdenv, fetchurl, lvm2, json_c, asciidoctor -, openssl, libuuid, pkg-config, popt, nixosTests -, libargon2, withInternalArgon2 ? false +{ + lib, + stdenv, + fetchurl, + lvm2, + json_c, + asciidoctor, + openssl, + libuuid, + pkg-config, + popt, + nixosTests, + libargon2, + withInternalArgon2 ? false, # Programs enabled by default upstream are implicitly enabled unless # manually set to false. -, programs ? {} + programs ? { }, # The release tarballs contain precomputed manpage files, so we don't need # to run asciidoctor on the man sources. By avoiding asciidoctor, we make # the bare NixOS build hash independent of changes to the ruby ecosystem, # saving mass-rebuilds. -, rebuildMan ? false + rebuildMan ? false, }: stdenv.mkDerivation rec { pname = "cryptsetup"; version = "2.7.1"; - outputs = [ "bin" "out" "dev" "man" ]; + outputs = [ + "bin" + "out" + "dev" + "man" + ]; separateDebugInfo = true; src = fetchurl { @@ -40,23 +56,30 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; - configureFlags = [ - "--with-crypto_backend=openssl" - "--disable-ssh-token" - ] ++ lib.optionals (!rebuildMan) [ - "--disable-asciidoc" - ] ++ lib.optionals (!withInternalArgon2) [ - "--enable-libargon2" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "--disable-external-tokens" - # We have to override this even though we're removing token - # support, because the path still gets included in the binary even - # though it isn't used. - "--with-luks2-external-tokens-path=/" - ] ++ (with lib; mapAttrsToList (flip enableFeature)) programs; + configureFlags = + [ + "--with-crypto_backend=openssl" + "--disable-ssh-token" + ] + ++ lib.optionals (!rebuildMan) [ "--disable-asciidoc" ] + ++ lib.optionals (!withInternalArgon2) [ "--enable-libargon2" ] + ++ lib.optionals stdenv.hostPlatform.isStatic [ + "--disable-external-tokens" + # We have to override this even though we're removing token + # support, because the path still gets included in the binary even + # though it isn't used. + "--with-luks2-external-tokens-path=/" + ] + ++ (with lib; mapAttrsToList (flip enableFeature)) programs; nativeBuildInputs = [ pkg-config ] ++ lib.optionals rebuildMan [ asciidoctor ]; - buildInputs = [ lvm2 json_c openssl libuuid popt ] ++ lib.optional (!withInternalArgon2) libargon2; + buildInputs = [ + lvm2 + json_c + openssl + libuuid + popt + ] ++ lib.optional (!withInternalArgon2) libargon2; # The test [7] header backup in compat-test fails with a mysterious # "out of memory" error, even though tons of memory is available. @@ -65,14 +88,11 @@ stdenv.mkDerivation rec { passthru = { tests = { - nixos = - lib.optionalAttrs stdenv.hostPlatform.isLinux ( - lib.recurseIntoAttrs ( - lib.filterAttrs - (name: _value: lib.hasPrefix "luks" name) - nixosTests.installer - ) - ); + nixos = lib.optionalAttrs stdenv.hostPlatform.isLinux ( + lib.recurseIntoAttrs ( + lib.filterAttrs (name: _value: lib.hasPrefix "luks" name) nixosTests.installer + ) + ); }; }; diff --git a/pkgs/by-name/cu/cunit/default.nix b/pkgs/by-name/cu/cunit/default.nix index 77af649..2ab67f5 100644 --- a/pkgs/by-name/cu/cunit/default.nix +++ b/pkgs/by-name/cu/cunit/default.nix @@ -1,11 +1,23 @@ -{ lib, stdenv, fetchurl, autoconf, automake, libtool, autoreconfHook}: +{ + lib, + stdenv, + fetchurl, + autoconf, + automake, + libtool, + autoreconfHook, +}: stdenv.mkDerivation rec { pname = "CUnit"; version = "2.1-3"; - nativeBuildInputs = [ autoreconfHook autoconf automake ]; - buildInputs = [libtool]; + nativeBuildInputs = [ + autoreconfHook + autoconf + automake + ]; + buildInputs = [ libtool ]; src = fetchurl { url = "mirror://sourceforge/cunit/CUnit/${version}/${pname}-${version}.tar.bz2"; diff --git a/pkgs/by-name/cu/curl/default.nix b/pkgs/by-name/cu/curl/default.nix index 63b7852..911e612 100644 --- a/pkgs/by-name/cu/curl/default.nix +++ b/pkgs/by-name/cu/curl/default.nix @@ -1,31 +1,59 @@ -{ lib, stdenv, fetchurl, darwin, pkg-config, perl -, brotliSupport ? false, brotli -, c-aresSupport ? false, c-aresMinimal -, gnutlsSupport ? false, gnutls -, gsaslSupport ? false, gsasl -, gssSupport ? with stdenv.hostPlatform; ( - !isWindows && - # disable gss because of: undefined reference to `k5_bcmp' - # a very sad story re static: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039 - !isStatic && - # the "mig" tool does not configure its compiler correctly. This could be - # fixed in mig, but losing gss support on cross compilation to darwin is - # not worth the effort. - !(isDarwin && (stdenv.buildPlatform != stdenv.hostPlatform)) - ), libkrb5 -, http2Support ? true, nghttp2 -, http3Support ? false, nghttp3, ngtcp2 -, websocketSupport ? false -, idnSupport ? false, libidn2 -, ldapSupport ? false, openldap -, opensslSupport ? zlibSupport, openssl -, pslSupport ? false, libpsl -, rtmpSupport ? false, rtmpdump -, scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 -, wolfsslSupport ? false, wolfssl -, rustlsSupport ? false, rustls-ffi -, zlibSupport ? true, zlib -, zstdSupport ? false, zstd +{ + lib, + stdenv, + fetchurl, + darwin, + pkg-config, + perl, + brotliSupport ? false, + brotli, + c-aresSupport ? false, + c-aresMinimal, + gnutlsSupport ? false, + gnutls, + gsaslSupport ? false, + gsasl, + gssSupport ? + with stdenv.hostPlatform; + ( + !isWindows + && + # disable gss because of: undefined reference to `k5_bcmp' + # a very sad story re static: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039 + !isStatic + && + # the "mig" tool does not configure its compiler correctly. This could be + # fixed in mig, but losing gss support on cross compilation to darwin is + # not worth the effort. + !(isDarwin && (stdenv.buildPlatform != stdenv.hostPlatform)) + ), + libkrb5, + http2Support ? true, + nghttp2, + http3Support ? false, + nghttp3, + ngtcp2, + websocketSupport ? false, + idnSupport ? false, + libidn2, + ldapSupport ? false, + openldap, + opensslSupport ? zlibSupport, + openssl, + pslSupport ? false, + libpsl, + rtmpSupport ? false, + rtmpdump, + scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, + libssh2, + wolfsslSupport ? false, + wolfssl, + rustlsSupport ? false, + rustls-ffi, + zlibSupport ? true, + zlib, + zstdSupport ? false, + zstd, # for passthru.tests # , nixosTests @@ -46,7 +74,15 @@ # cgit) that are needed here should be included directly in Nixpkgs as # files. -assert !((lib.count (x: x) [ gnutlsSupport opensslSupport wolfsslSupport rustlsSupport ]) > 1); +assert + !( + (lib.count (x: x) [ + gnutlsSupport + opensslSupport + wolfsslSupport + rustlsSupport + ]) > 1 + ); stdenv.mkDerivation (finalAttrs: { pname = "curl"; @@ -55,7 +91,9 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { urls = [ "https://curl.haxx.se/download/curl-${finalAttrs.version}.tar.xz" - "https://github.com/curl/curl/releases/download/curl-${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}/curl-${finalAttrs.version}.tar.xz" + "https://github.com/curl/curl/releases/download/curl-${ + builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version + }/curl-${finalAttrs.version}.tar.xz" ]; hash = "sha256-b+oqrGpGEPvQQAr7C83b5yWKZMY/H2jlhV68DGWXEM0="; }; @@ -64,54 +102,73 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs scripts ''; - outputs = [ "bin" "dev" "out" "man" "devdoc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "devdoc" + ]; separateDebugInfo = stdenv.isLinux; enableParallelBuilding = true; strictDeps = true; - nativeBuildInputs = [ pkg-config perl ]; + nativeBuildInputs = [ + pkg-config + perl + ]; # Zlib and OpenSSL must be propagated because `libcurl.la' contains # "-lz -lssl", which aren't necessary direct build inputs of # applications that use Curl. - propagatedBuildInputs = with lib; - optional brotliSupport brotli ++ - optional c-aresSupport c-aresMinimal ++ - optional gnutlsSupport gnutls ++ - optional gsaslSupport gsasl ++ - optional gssSupport libkrb5 ++ - optional http2Support nghttp2 ++ - optionals http3Support [ nghttp3 ngtcp2 ] ++ - optional idnSupport libidn2 ++ - optional ldapSupport openldap ++ - optional opensslSupport openssl ++ - optional pslSupport libpsl ++ - optional rtmpSupport rtmpdump ++ - optional scpSupport libssh2 ++ - optional wolfsslSupport wolfssl ++ - optional rustlsSupport rustls-ffi ++ - optional zlibSupport zlib ++ - optional zstdSupport zstd ++ - optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - CoreFoundation - CoreServices - SystemConfiguration - ]); + propagatedBuildInputs = + with lib; + optional brotliSupport brotli + ++ optional c-aresSupport c-aresMinimal + ++ optional gnutlsSupport gnutls + ++ optional gsaslSupport gsasl + ++ optional gssSupport libkrb5 + ++ optional http2Support nghttp2 + ++ optionals http3Support [ + nghttp3 + ngtcp2 + ] + ++ optional idnSupport libidn2 + ++ optional ldapSupport openldap + ++ optional opensslSupport openssl + ++ optional pslSupport libpsl + ++ optional rtmpSupport rtmpdump + ++ optional scpSupport libssh2 + ++ optional wolfsslSupport wolfssl + ++ optional rustlsSupport rustls-ffi + ++ optional zlibSupport zlib + ++ optional zstdSupport zstd + ++ optionals stdenv.isDarwin ( + with darwin.apple_sdk.frameworks; + [ + CoreFoundation + CoreServices + SystemConfiguration + ] + ); # for the second line see https://curl.haxx.se/mail/tracker-2014-03/0087.html - preConfigure = '' - sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure - rm src/tool_hugehelp.c - '' + lib.optionalString (pslSupport && stdenv.hostPlatform.isStatic) '' - # curl doesn't understand that libpsl2 has deps because it doesn't use - # pkg-config. - # https://github.com/curl/curl/pull/12919 - configureFlagsArray+=("LIBS=-lidn2 -lunistring") - ''; + preConfigure = + '' + sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure + rm src/tool_hugehelp.c + '' + + lib.optionalString (pslSupport && stdenv.hostPlatform.isStatic) '' + # curl doesn't understand that libpsl2 has deps because it doesn't use + # pkg-config. + # https://github.com/curl/curl/pull/12919 + configureFlagsArray+=("LIBS=-lidn2 -lunistring") + ''; - configureFlags = [ + configureFlags = + [ # Build without manual "--disable-manual" (lib.enableFeature c-aresSupport "ares") @@ -134,18 +191,19 @@ stdenv.mkDerivation (finalAttrs: { (lib.withFeatureAs wolfsslSupport "wolfssl" (lib.getDev wolfssl)) ] ++ lib.optional gssSupport "--with-gssapi=${lib.getDev libkrb5}" - # For the 'urandom', maybe it should be a cross-system option - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "--with-random=/dev/urandom" + # For the 'urandom', maybe it should be a cross-system option + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--with-random=/dev/urandom" ++ lib.optionals stdenv.hostPlatform.isWindows [ "--disable-shared" "--enable-static" - ] ++ lib.optionals stdenv.isDarwin [ + ] + ++ lib.optionals stdenv.isDarwin [ # Disable default CA bundle, use NIX_SSL_CERT_FILE or fallback to nss-cacert from the default profile. # Without this curl might detect /etc/ssl/cert.pem at build time on macOS, causing curl to ignore NIX_SSL_CERT_FILE. "--without-ca-bundle" "--without-ca-path" - ] ++ lib.optionals (!gnutlsSupport && !opensslSupport && !wolfsslSupport && !rustlsSupport) [ + ] + ++ lib.optionals (!gnutlsSupport && !opensslSupport && !wolfsslSupport && !rustlsSupport) [ "--without-ssl" ]; @@ -156,29 +214,35 @@ stdenv.mkDerivation (finalAttrs: { # they cannot be run concurrently and are a bottleneck # tests are available in passthru.tests.withCheck doCheck = false; - preCheck = '' - patchShebangs tests/ - '' + lib.optionalString stdenv.isDarwin '' - # bad interaction with sandbox if enabled? - rm tests/data/test1453 - rm tests/data/test1086 - '' + lib.optionalString stdenv.hostPlatform.isMusl '' - # different resolving behaviour? - rm tests/data/test1592 - ''; + preCheck = + '' + patchShebangs tests/ + '' + + lib.optionalString stdenv.isDarwin '' + # bad interaction with sandbox if enabled? + rm tests/data/test1453 + rm tests/data/test1086 + '' + + lib.optionalString stdenv.hostPlatform.isMusl '' + # different resolving behaviour? + rm tests/data/test1592 + ''; - postInstall = '' - moveToOutput bin/curl-config "$dev" + postInstall = + '' + moveToOutput bin/curl-config "$dev" - # Install completions - make -C scripts install - '' + lib.optionalString scpSupport '' - sed '/^dependency_libs/s|${lib.getDev libssh2}|${lib.getLib libssh2}|' -i "$out"/lib/*.la - '' + lib.optionalString gnutlsSupport '' - ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary} - ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4 - ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4.4.0 - ''; + # Install completions + make -C scripts install + '' + + lib.optionalString scpSupport '' + sed '/^dependency_libs/s|${lib.getDev libssh2}|${lib.getLib libssh2}|' -i "$out"/lib/*.la + '' + + lib.optionalString gnutlsSupport '' + ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary} + ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4 + ln $out/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libcurl-gnutls${stdenv.hostPlatform.extensions.sharedLibrary}.4.4.0 + ''; # passthru = let # useThisCurl = attr: attr.override { curl = finalAttrs.finalPackage; }; @@ -207,12 +271,17 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { changelog = "https://curl.se/changes.html#${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; description = "A command line tool for transferring files with URL syntax"; - homepage = "https://curl.se/"; + homepage = "https://curl.se/"; license = licenses.curl; maintainers = with maintainers; [ lovek323 ]; platforms = platforms.all; # Fails to link against static brotli or gss - broken = (stdenv.hostPlatform.isStatic && (brotliSupport || gssSupport || stdenv.hostPlatform.system == "x86_64-darwin")) || rustlsSupport; + broken = + ( + stdenv.hostPlatform.isStatic + && (brotliSupport || gssSupport || stdenv.hostPlatform.system == "x86_64-darwin") + ) + || rustlsSupport; pkgConfigModules = [ "libcurl" ]; mainProgram = "curl"; }; diff --git a/pkgs/by-name/cu/curl/packages.nix b/pkgs/by-name/cu/curl/packages.nix index 24f50a6..82e4ea5 100644 --- a/pkgs/by-name/cu/curl/packages.nix +++ b/pkgs/by-name/cu/curl/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { curlFull = curl.override { ldapSupport = true; gsaslSupport = true; @@ -16,15 +15,19 @@ with pkgs; http3Support = true; }; - curl = curlMinimal.override ({ - idnSupport = true; - pslSupport = true; - zstdSupport = true; - } // lib.optionalAttrs (!stdenv.hostPlatform.isStatic) { - brotliSupport = true; - }); + curl = curlMinimal.override ( + { + idnSupport = true; + pslSupport = true; + zstdSupport = true; + } + // lib.optionalAttrs (!stdenv.hostPlatform.isStatic) { brotliSupport = true; } + ); curlMinimal = callPackage ./. { }; - curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; }; + curlWithGnuTls = curl.override { + gnutlsSupport = true; + opensslSupport = false; + }; } diff --git a/pkgs/by-name/cu/curlpp/default.nix b/pkgs/by-name/cu/curlpp/default.nix index c8fe78d..d5e880b 100644 --- a/pkgs/by-name/cu/curlpp/default.nix +++ b/pkgs/by-name/cu/curlpp/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, cmake, curl }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + curl, +}: stdenv.mkDerivation rec { pname = "curlpp"; diff --git a/pkgs/by-name/cy/cyrus-sasl/default.nix b/pkgs/by-name/cy/cyrus-sasl/default.nix index ab583cf..2aeeab1 100644 --- a/pkgs/by-name/cy/cyrus-sasl/default.nix +++ b/pkgs/by-name/cy/cyrus-sasl/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, openssl -, openldap -, libkrb5 -, db -, gettext -, pam -, libxcrypt -, fixDarwinDylibNames -, autoreconfHook -, enableLdap ? false -, buildPackages -, pruneLibtoolFiles +{ + lib, + stdenv, + fetchurl, + fetchpatch, + openssl, + openldap, + libkrb5, + db, + gettext, + pam, + libxcrypt, + fixDarwinDylibNames, + autoreconfHook, + enableLdap ? false, + buildPackages, + pruneLibtoolFiles, # for passthru.tests # , nixosTests }: @@ -23,11 +24,11 @@ stdenv.mkDerivation rec { version = "2.1.28"; src = fetchurl { - urls = - [ "https://github.com/cyrusimap/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz" - "http://www.cyrusimap.org/releases/${pname}-${version}.tar.gz" - "http://www.cyrusimap.org/releases/old/${pname}-${version}.tar.gz" - ]; + urls = [ + "https://github.com/cyrusimap/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz" + "http://www.cyrusimap.org/releases/${pname}-${version}.tar.gz" + "http://www.cyrusimap.org/releases/old/${pname}-${version}.tar.gz" + ]; sha256 = "sha256-fM/Gq9Ae1nwaCSSzU+Um8bdmsh9C1FYu5jWo6/xbs4w="; }; @@ -41,15 +42,26 @@ stdenv.mkDerivation rec { }) ]; - outputs = [ "bin" "dev" "out" "man" "devdoc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "devdoc" + ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ autoreconfHook pruneLibtoolFiles ] - ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = - [ openssl db gettext libkrb5 libxcrypt ] - ++ lib.optional enableLdap openldap - ++ lib.optional stdenv.isLinux pam; + nativeBuildInputs = [ + autoreconfHook + pruneLibtoolFiles + ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + buildInputs = [ + openssl + db + gettext + libkrb5 + libxcrypt + ] ++ lib.optional enableLdap openldap ++ lib.optional stdenv.isLinux pam; configureFlags = [ "--with-openssl=${openssl.dev}" @@ -59,7 +71,9 @@ stdenv.mkDerivation rec { "--enable-shared" ] ++ lib.optional enableLdap "--with-ldap=${openldap.dev}"; - installFlags = lib.optionals stdenv.isDarwin [ "framedir=$(out)/Library/Frameworks/SASL2.framework" ]; + installFlags = lib.optionals stdenv.isDarwin [ + "framedir=$(out)/Library/Frameworks/SASL2.framework" + ]; # passthru.tests = { # inherit (nixosTests) parsedmarc postfix; diff --git a/pkgs/by-name/cy/cyrus-sasl/packages.nix b/pkgs/by-name/cy/cyrus-sasl/packages.nix index e9e6f52..75e858f 100644 --- a/pkgs/by-name/cy/cyrus-sasl/packages.nix +++ b/pkgs/by-name/cy/cyrus-sasl/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - cyrus_sasl = callPackage ./. { - libkrb5 = if stdenv.isFreeBSD then heimdal else libkrb5; - }; +with pkgs; { + cyrus_sasl = callPackage ./. { libkrb5 = if stdenv.isFreeBSD then heimdal else libkrb5; }; } diff --git a/pkgs/by-name/da/darwin/darwin-packages.nix b/pkgs/by-name/da/darwin/darwin-packages.nix index 29337ca..cebdea8 100644 --- a/pkgs/by-name/da/darwin/darwin-packages.nix +++ b/pkgs/by-name/da/darwin/darwin-packages.nix @@ -1,10 +1,14 @@ -{ lib -, buildPackages, pkgs, targetPackages -, generateSplicesForMkScope, makeScopeWithSplicing' -, stdenv -, preLibcCrossHeaders -, config -, path +{ + lib, + buildPackages, + pkgs, + targetPackages, + generateSplicesForMkScope, + makeScopeWithSplicing', + stdenv, + preLibcCrossHeaders, + config, + path, }: let @@ -12,254 +16,288 @@ let # # TODO(@Ericson2314) Make unconditional, or optional but always true by # default. - targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) - (stdenv.targetPlatform.config + "-"); + targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) ( + stdenv.targetPlatform.config + "-" + ); # Bootstrap `fetchurl` needed to build SDK packages without causing an infinite recursion. - fetchurlBoot = import (path + "/pkgs/build-support/fetchurl/boot.nix") { - inherit (stdenv) system; - }; + fetchurlBoot = import (path + "/pkgs/build-support/fetchurl/boot.nix") { inherit (stdenv) system; }; - aliases = self: super: {}; #lib.optionalAttrs config.allowAliases (import ../top-level/darwin-aliases.nix lib self super pkgs); + aliases = self: super: { }; # lib.optionalAttrs config.allowAliases (import ../top-level/darwin-aliases.nix lib self super pkgs); in makeScopeWithSplicing' { otherSplices = generateSplicesForMkScope "darwin"; extra = spliced: spliced.apple_sdk.frameworks; - f = lib.extends aliases (self: let - inherit (self) mkDerivation callPackage; + f = lib.extends aliases ( + self: + let + inherit (self) mkDerivation callPackage; - # Must use pkgs.callPackage to avoid infinite recursion. + # Must use pkgs.callPackage to avoid infinite recursion. - # Open source packages that are built from source - appleSourcePackages = pkgs.callPackage ./packages/apple-source-releases { } self; + # Open source packages that are built from source + appleSourcePackages = pkgs.callPackage ./packages/apple-source-releases { } self; - impure-cmds = pkgs.callPackage ./packages/impure-cmds { }; + impure-cmds = pkgs.callPackage ./packages/impure-cmds { }; - # macOS 10.12 SDK - apple_sdk_10_12 = pkgs.callPackage ./packages/apple-sdk { - inherit (buildPackages.darwin) print-reexports; - inherit (self) darwin-stubs; - fetchurl = fetchurlBoot; - }; + # macOS 10.12 SDK + apple_sdk_10_12 = pkgs.callPackage ./packages/apple-sdk { + inherit (buildPackages.darwin) print-reexports; + inherit (self) darwin-stubs; + fetchurl = fetchurlBoot; + }; - # macOS 11.0 SDK - apple_sdk_11_0 = pkgs.callPackage ./packages/apple-sdk-11.0 { - fetchurl = fetchurlBoot; - }; + # macOS 11.0 SDK + apple_sdk_11_0 = pkgs.callPackage ./packages/apple-sdk-11.0 { fetchurl = fetchurlBoot; }; - # Pick an SDK - apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12; + # Pick an SDK + apple_sdk = if stdenv.hostPlatform.isAarch64 then apple_sdk_11_0 else apple_sdk_10_12; - # Pick the source of libraries: either Apple's open source releases, or the - # SDK. - useAppleSDKLibs = stdenv.hostPlatform.isAarch64; + # Pick the source of libraries: either Apple's open source releases, or the + # SDK. + useAppleSDKLibs = stdenv.hostPlatform.isAarch64; - selectAttrs = attrs: names: - lib.listToAttrs (lib.concatMap (n: lib.optionals (attrs ? "${n}") [(lib.nameValuePair n attrs."${n}")]) names); + selectAttrs = + attrs: names: + lib.listToAttrs ( + lib.concatMap (n: lib.optionals (attrs ? "${n}") [ (lib.nameValuePair n attrs."${n}") ]) names + ); - chooseLibs = ( - # There are differences in which libraries are exported. Avoid evaluation - # errors when a package is not provided. - selectAttrs ( - if useAppleSDKLibs - then apple_sdk - else appleSourcePackages - ) ["Libsystem" "LibsystemCross" "libcharset" "libunwind" "objc4" "configd" "IOKit"] - ) // { - inherit ( - if useAppleSDKLibs - then apple_sdk.frameworks - else appleSourcePackages - ) Security; - }; -in + chooseLibs = + ( + # There are differences in which libraries are exported. Avoid evaluation + # errors when a package is not provided. + selectAttrs (if useAppleSDKLibs then apple_sdk else appleSourcePackages) [ + "Libsystem" + "LibsystemCross" + "libcharset" + "libunwind" + "objc4" + "configd" + "IOKit" + ] + ) + // { + inherit (if useAppleSDKLibs then apple_sdk.frameworks else appleSourcePackages) Security; + }; + in -impure-cmds // appleSourcePackages // chooseLibs // { + impure-cmds + // appleSourcePackages + // chooseLibs + // { - inherit apple_sdk apple_sdk_10_12 apple_sdk_11_0; + inherit apple_sdk apple_sdk_10_12 apple_sdk_11_0; - stdenvNoCF = stdenv.override { - extraBuildInputs = []; - }; + stdenvNoCF = stdenv.override { extraBuildInputs = [ ]; }; - binutils-unwrapped = callPackage ./packages/binutils { - inherit (pkgs) binutils-unwrapped; - inherit (pkgs.llvmPackages) llvm clang-unwrapped; - }; + binutils-unwrapped = callPackage ./packages/binutils { + inherit (pkgs) binutils-unwrapped; + inherit (pkgs.llvmPackages) llvm clang-unwrapped; + }; - binutils = pkgs.wrapBintoolsWith { - libc = - if stdenv.targetPlatform != stdenv.hostPlatform - then pkgs.libcCross - else pkgs.stdenv.cc.libc; - bintools = self.binutils-unwrapped; - }; + binutils = pkgs.wrapBintoolsWith { + libc = if stdenv.targetPlatform != stdenv.hostPlatform then pkgs.libcCross else pkgs.stdenv.cc.libc; + bintools = self.binutils-unwrapped; + }; - binutilsDualAs-unwrapped = callPackage ./packages/binutils { - inherit (pkgs) binutils-unwrapped; - inherit (pkgs.llvmPackages) llvm clang-unwrapped; - dualAs = true; - }; + binutilsDualAs-unwrapped = callPackage ./packages/binutils { + inherit (pkgs) binutils-unwrapped; + inherit (pkgs.llvmPackages) llvm clang-unwrapped; + dualAs = true; + }; - binutilsDualAs = pkgs.wrapBintoolsWith { - libc = - if stdenv.targetPlatform != stdenv.hostPlatform - then pkgs.libcCross - else pkgs.stdenv.cc.libc; - bintools = self.binutilsDualAs-unwrapped; - }; + binutilsDualAs = pkgs.wrapBintoolsWith { + libc = if stdenv.targetPlatform != stdenv.hostPlatform then pkgs.libcCross else pkgs.stdenv.cc.libc; + bintools = self.binutilsDualAs-unwrapped; + }; - binutilsNoLibc = pkgs.wrapBintoolsWith { - libc = preLibcCrossHeaders; - bintools = self.binutils-unwrapped; - }; + binutilsNoLibc = pkgs.wrapBintoolsWith { + libc = preLibcCrossHeaders; + bintools = self.binutils-unwrapped; + }; - cctools = self.cctools-llvm; + cctools = self.cctools-llvm; - cctools-apple = callPackage ./packages/cctools/apple.nix { - stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; - }; + cctools-apple = callPackage ./packages/cctools/apple.nix { + stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; + }; - cctools-llvm = callPackage ./packages/cctools/llvm.nix { - stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; - }; + cctools-llvm = callPackage ./packages/cctools/llvm.nix { + stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; + }; - cctools-port = callPackage ./packages/cctools/port.nix { - stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; - }; + cctools-port = callPackage ./packages/cctools/port.nix { + stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv; + }; - # TODO(@connorbaker): See https://github.com/NixOS/nixpkgs/issues/229389. - cf-private = self.apple_sdk.frameworks.CoreFoundation; + # TODO(@connorbaker): See https://github.com/NixOS/nixpkgs/issues/229389. + cf-private = self.apple_sdk.frameworks.CoreFoundation; - DarwinTools = callPackage ./packages/DarwinTools { }; + DarwinTools = callPackage ./packages/DarwinTools { }; - darwin-stubs = callPackage ./packages/darwin-stubs { }; + darwin-stubs = callPackage ./packages/darwin-stubs { }; - print-reexports = callPackage ./packages/print-reexports { }; + print-reexports = callPackage ./packages/print-reexports { }; - rewrite-tbd = callPackage ./packages/rewrite-tbd { }; + rewrite-tbd = callPackage ./packages/rewrite-tbd { }; - checkReexportsHook = pkgs.makeSetupHook { - name = "darwin-check-reexports-hook"; - propagatedBuildInputs = [ pkgs.darwin.print-reexports ]; - } ./packages/print-reexports/setup-hook.sh; + checkReexportsHook = pkgs.makeSetupHook { + name = "darwin-check-reexports-hook"; + propagatedBuildInputs = [ pkgs.darwin.print-reexports ]; + } ./packages/print-reexports/setup-hook.sh; - sigtool = callPackage ./packages/sigtool { }; + sigtool = callPackage ./packages/sigtool { }; - signingUtils = callPackage ./packages/signing-utils { }; + signingUtils = callPackage ./packages/signing-utils { }; - postLinkSignHook = callPackage ./packages/signing-utils/post-link-sign-hook.nix { }; + postLinkSignHook = callPackage ./packages/signing-utils/post-link-sign-hook.nix { }; - autoSignDarwinBinariesHook = pkgs.makeSetupHook { - name = "auto-sign-darwin-binaries-hook"; - propagatedBuildInputs = [ self.signingUtils ]; - } ./packages/signing-utils/auto-sign-hook.sh; + autoSignDarwinBinariesHook = pkgs.makeSetupHook { + name = "auto-sign-darwin-binaries-hook"; + propagatedBuildInputs = [ self.signingUtils ]; + } ./packages/signing-utils/auto-sign-hook.sh; - iosSdkPkgs = callPackage ./packages/xcode/sdk-pkgs.nix { - buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk; - targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs; - inherit (pkgs.llvmPackages) clang-unwrapped; - }; + iosSdkPkgs = callPackage ./packages/xcode/sdk-pkgs.nix { + buildIosSdk = buildPackages.darwin.iosSdkPkgs.sdk; + targetIosSdkPkgs = targetPackages.darwin.iosSdkPkgs; + inherit (pkgs.llvmPackages) clang-unwrapped; + }; - iproute2mac = callPackage ./packages/iproute2mac { }; + iproute2mac = callPackage ./packages/iproute2mac { }; - libobjc = self.objc4; + libobjc = self.objc4; - lsusb = callPackage ./packages/lsusb { }; + lsusb = callPackage ./packages/lsusb { }; - moltenvk = pkgs.darwin.apple_sdk_11_0.callPackage ./packages/moltenvk { - inherit (apple_sdk_11_0.frameworks) AppKit Foundation Metal QuartzCore; - inherit (apple_sdk_11_0.libs) simd; - }; + moltenvk = pkgs.darwin.apple_sdk_11_0.callPackage ./packages/moltenvk { + inherit (apple_sdk_11_0.frameworks) + AppKit + Foundation + Metal + QuartzCore + ; + inherit (apple_sdk_11_0.libs) simd; + }; - openwith = pkgs.darwin.apple_sdk_11_0.callPackage ./packages/openwith { - inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers; - }; + openwith = pkgs.darwin.apple_sdk_11_0.callPackage ./packages/openwith { + inherit (apple_sdk_11_0.frameworks) AppKit Foundation UniformTypeIdentifiers; + }; - stubs = pkgs.callPackages ./packages/stubs { }; + stubs = pkgs.callPackages ./packages/stubs { }; - trash = callPackage ./packages/trash { }; + trash = callPackage ./packages/trash { }; - xattr = pkgs.python3Packages.callPackage ./packages/xattr { }; + xattr = pkgs.python3Packages.callPackage ./packages/xattr { }; - inherit (pkgs.callPackages ./packages/xcode { }) - xcode_8_1 xcode_8_2 - xcode_9_1 xcode_9_2 xcode_9_3 xcode_9_4 xcode_9_4_1 - xcode_10_1 xcode_10_2 xcode_10_2_1 xcode_10_3 - xcode_11 xcode_11_1 xcode_11_2 xcode_11_3_1 xcode_11_4 xcode_11_5 xcode_11_6 xcode_11_7 - xcode_12 xcode_12_0_1 xcode_12_1 xcode_12_2 xcode_12_3 xcode_12_4 xcode_12_5 xcode_12_5_1 - xcode_13 xcode_13_1 xcode_13_2 xcode_13_3 xcode_13_3_1 xcode_13_4 xcode_13_4_1 - xcode_14 xcode_14_1 - xcode_15 xcode_15_1 - xcode; + inherit (pkgs.callPackages ./packages/xcode { }) + xcode_8_1 + xcode_8_2 + xcode_9_1 + xcode_9_2 + xcode_9_3 + xcode_9_4 + xcode_9_4_1 + xcode_10_1 + xcode_10_2 + xcode_10_2_1 + xcode_10_3 + xcode_11 + xcode_11_1 + xcode_11_2 + xcode_11_3_1 + xcode_11_4 + xcode_11_5 + xcode_11_6 + xcode_11_7 + xcode_12 + xcode_12_0_1 + xcode_12_1 + xcode_12_2 + xcode_12_3 + xcode_12_4 + xcode_12_5 + xcode_12_5_1 + xcode_13 + xcode_13_1 + xcode_13_2 + xcode_13_3 + xcode_13_3_1 + xcode_13_4 + xcode_13_4_1 + xcode_14 + xcode_14_1 + xcode_15 + xcode_15_1 + xcode + ; - CoreSymbolication = callPackage ./packages/CoreSymbolication { - inherit (apple_sdk) darwin-stubs; - }; + CoreSymbolication = callPackage ./packages/CoreSymbolication { inherit (apple_sdk) darwin-stubs; }; - # TODO: Remove the CF hook if a solution to the crashes is not found. - CF = - # CF used to refer to the open source version of CoreFoundation from the Swift - # project. As of macOS 14, the rpath-based approach allowing packages to choose - # which version to use no longer seems to work reliably. Sometimes they works, - # but sometimes they crash with the error (in the system crash logs): - # CF objects must have a non-zero isa. - # See https://developer.apple.com/forums/thread/739355 for more on that error. - # - # In this branch, we only have a single "CoreFoundation" to choose from. - # To be compatible with the existing convention, we define - # CoreFoundation with the setup hook, and CF as the same package but - # with the setup hook removed. - # - # This may seem unimportant, but without it packages (e.g., bacula) will - # fail with linker errors referring ___CFConstantStringClassReference. - # It's not clear to me why some packages need this extra setup. - lib.overrideDerivation apple_sdk.frameworks.CoreFoundation (drv: { - setupHook = null; - }); + # TODO: Remove the CF hook if a solution to the crashes is not found. + CF = + # CF used to refer to the open source version of CoreFoundation from the Swift + # project. As of macOS 14, the rpath-based approach allowing packages to choose + # which version to use no longer seems to work reliably. Sometimes they works, + # but sometimes they crash with the error (in the system crash logs): + # CF objects must have a non-zero isa. + # See https://developer.apple.com/forums/thread/739355 for more on that error. + # + # In this branch, we only have a single "CoreFoundation" to choose from. + # To be compatible with the existing convention, we define + # CoreFoundation with the setup hook, and CF as the same package but + # with the setup hook removed. + # + # This may seem unimportant, but without it packages (e.g., bacula) will + # fail with linker errors referring ___CFConstantStringClassReference. + # It's not clear to me why some packages need this extra setup. + lib.overrideDerivation apple_sdk.frameworks.CoreFoundation (drv: { + setupHook = null; + }); - # Formerly the CF attribute. Use this is you need the open source release. - swift-corelibs-foundation = callPackage ./packages/swift-corelibs/corefoundation.nix { }; + # Formerly the CF attribute. Use this is you need the open source release. + swift-corelibs-foundation = callPackage ./packages/swift-corelibs/corefoundation.nix { }; - # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in - # libdispatch-broken = callPackage ./packages/swift-corelibs/libdispatch.nix { }; + # As the name says, this is broken, but I don't want to lose it since it's a direction we want to go in + # libdispatch-broken = callPackage ./packages/swift-corelibs/libdispatch.nix { }; - libtapi = callPackage ./packages/libtapi {}; + libtapi = callPackage ./packages/libtapi { }; - ios-deploy = callPackage ./packages/ios-deploy {}; + ios-deploy = callPackage ./packages/ios-deploy { }; - discrete-scroll = callPackage ./packages/discrete-scroll { }; + discrete-scroll = callPackage ./packages/discrete-scroll { }; - # # See doc/packages/darwin-builder.section.md - # linux-builder = lib.makeOverridable ({ modules }: - # let - # toGuest = builtins.replaceStrings [ "darwin" ] [ "linux" ]; + # # See doc/packages/darwin-builder.section.md + # linux-builder = lib.makeOverridable ({ modules }: + # let + # toGuest = builtins.replaceStrings [ "darwin" ] [ "linux" ]; - # nixos = import ../../nixos { - # configuration = { - # imports = [ - # ../../nixos/modules/profiles/macos-builder.nix - # ] ++ modules; + # nixos = import ../../nixos { + # configuration = { + # imports = [ + # ../../nixos/modules/profiles/macos-builder.nix + # ] ++ modules; - # # If you need to override this, consider starting with the right Nixpkgs - # # in the first place, ie change `pkgs` in `pkgs.darwin.linux-builder`. - # # or if you're creating new wiring that's not `pkgs`-centric, perhaps use the - # # macos-builder profile directly. - # virtualisation.host = { inherit pkgs; }; + # # If you need to override this, consider starting with the right Nixpkgs + # # in the first place, ie change `pkgs` in `pkgs.darwin.linux-builder`. + # # or if you're creating new wiring that's not `pkgs`-centric, perhaps use the + # # macos-builder profile directly. + # virtualisation.host = { inherit pkgs; }; - # nixpkgs.hostPlatform = lib.mkDefault (toGuest stdenv.hostPlatform.system); - # }; + # nixpkgs.hostPlatform = lib.mkDefault (toGuest stdenv.hostPlatform.system); + # }; - # system = null; - # }; + # system = null; + # }; - # in - # nixos.config.system.build.macos-builder-installer) { modules = [ ]; }; + # in + # nixos.config.system.build.macos-builder-installer) { modules = [ ]; }; - # linux-builder-x86_64 = self.linux-builder.override { - # modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ]; - # }; + # linux-builder-x86_64 = self.linux-builder.override { + # modules = [ { nixpkgs.hostPlatform = "x86_64-linux"; } ]; + # }; -}); + } + ); } diff --git a/pkgs/by-name/da/darwin/packages.nix b/pkgs/by-name/da/darwin/packages.nix index f885a26..d18fee3 100644 --- a/pkgs/by-name/da/darwin/packages.nix +++ b/pkgs/by-name/da/darwin/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Darwin package set # # Even though this is a set of packages not single package, use `callPackage` diff --git a/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix b/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix index 11e4c84..8d50305 100644 --- a/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix +++ b/pkgs/by-name/da/darwin/packages/DarwinTools/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "DarwinTools"; @@ -9,9 +13,7 @@ stdenv.mkDerivation rec { hash = "sha256-Fzo5QhLd3kZHVFKhJe7xzV6bmRz5nAsG2mNLkAqVBEI="; }; - patches = [ - ./sw_vers-CFPriv.patch - ]; + patches = [ ./sw_vers-CFPriv.patch ]; configurePhase = '' export SRCROOT=. diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/apple_sdk.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/apple_sdk.nix index fdc3bd4..0a34fe0 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/apple_sdk.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/apple_sdk.nix @@ -1,92 +1,136 @@ -{ lib, stdenvNoCC, buildPackages, fetchurl, xar, cpio, pkgs, python3, pbzx, MacOSX-SDK }: +{ + lib, + stdenvNoCC, + buildPackages, + fetchurl, + xar, + cpio, + pkgs, + python3, + pbzx, + MacOSX-SDK, +}: # TODO: reorganize to make this just frameworks, and move libs to default.nix let stdenv = stdenvNoCC; - standardFrameworkPath = name: private: + standardFrameworkPath = + name: private: "/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework"; - mkDepsRewrites = deps: - let - mergeRewrites = x: y: { - prefix = lib.mergeAttrs (x.prefix or {}) (y.prefix or {}); - const = lib.mergeAttrs (x.const or {}) (y.const or {}); - }; + mkDepsRewrites = + deps: + let + mergeRewrites = x: y: { + prefix = lib.mergeAttrs (x.prefix or { }) (y.prefix or { }); + const = lib.mergeAttrs (x.const or { }) (y.const or { }); + }; - rewriteArgs = { prefix ? {}, const ? {} }: lib.concatLists ( - (lib.mapAttrsToList (from: to: [ "-p" "${from}:${to}" ]) prefix) ++ - (lib.mapAttrsToList (from: to: [ "-c" "${from}:${to}" ]) const) - ); + rewriteArgs = + { + prefix ? { }, + const ? { }, + }: + lib.concatLists ( + (lib.mapAttrsToList (from: to: [ + "-p" + "${from}:${to}" + ]) prefix) + ++ (lib.mapAttrsToList (from: to: [ + "-c" + "${from}:${to}" + ]) const) + ); - rewrites = depList: lib.fold mergeRewrites {} - (map (dep: dep.tbdRewrites) - (lib.filter (dep: dep ? tbdRewrites) depList)); - in + rewrites = + depList: + lib.fold mergeRewrites { } ( + map (dep: dep.tbdRewrites) (lib.filter (dep: dep ? tbdRewrites) depList) + ); + in lib.escapeShellArgs (rewriteArgs (rewrites (builtins.attrValues deps))); - mkFramework = { name, deps, private ? false }: - let self = stdenv.mkDerivation { - pname = "apple-${lib.optionalString private "private-"}framework-${name}"; - version = MacOSX-SDK.version; + mkFramework = + { + name, + deps, + private ? false, + }: + let + self = stdenv.mkDerivation { + pname = "apple-${lib.optionalString private "private-"}framework-${name}"; + version = MacOSX-SDK.version; - dontUnpack = true; + dontUnpack = true; - # because we copy files from the system - preferLocalBuild = true; + # because we copy files from the system + preferLocalBuild = true; - disallowedRequisites = [ MacOSX-SDK ]; + disallowedRequisites = [ MacOSX-SDK ]; - nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ]; + nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ]; - installPhase = '' - mkdir -p $out/Library/Frameworks + installPhase = '' + mkdir -p $out/Library/Frameworks - cp -r ${MacOSX-SDK}${standardFrameworkPath name private} $out/Library/Frameworks + cp -r ${MacOSX-SDK}${standardFrameworkPath name private} $out/Library/Frameworks - if [[ -d ${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule ]]; then - mkdir -p $out/lib/swift - cp -r -t $out/lib/swift \ - ${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule \ - ${MacOSX-SDK}/usr/lib/swift/libswift${name}.tbd - fi + if [[ -d ${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule ]]; then + mkdir -p $out/lib/swift + cp -r -t $out/lib/swift \ + ${MacOSX-SDK}/usr/lib/swift/${name}.swiftmodule \ + ${MacOSX-SDK}/usr/lib/swift/libswift${name}.tbd + fi - # Fix and check tbd re-export references - chmod u+w -R $out - find $out -name '*.tbd' -type f | while read tbd; do - echo "Fixing re-exports in $tbd" - rewrite-tbd \ - -p ${standardFrameworkPath name private}/:$out/Library/Frameworks/${name}.framework/ \ - -p /usr/lib/swift/:$out/lib/swift/ \ - ${mkDepsRewrites deps} \ - -r ${builtins.storeDir} \ - "$tbd" - done - ''; + # Fix and check tbd re-export references + chmod u+w -R $out + find $out -name '*.tbd' -type f | while read tbd; do + echo "Fixing re-exports in $tbd" + rewrite-tbd \ + -p ${standardFrameworkPath name private}/:$out/Library/Frameworks/${name}.framework/ \ + -p /usr/lib/swift/:$out/lib/swift/ \ + ${mkDepsRewrites deps} \ + -r ${builtins.storeDir} \ + "$tbd" + done + ''; - propagatedBuildInputs = builtins.attrValues deps; + propagatedBuildInputs = builtins.attrValues deps; - passthru = { - tbdRewrites = { - prefix."${standardFrameworkPath name private}/" = "${self}/Library/Frameworks/${name}.framework/"; + passthru = { + tbdRewrites = { + prefix."${standardFrameworkPath name private}/" = "${self}/Library/Frameworks/${name}.framework/"; + }; + }; + + meta = with lib; { + description = "Apple SDK framework ${name}"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; }; }; + in + self; - meta = with lib; { - description = "Apple SDK framework ${name}"; - maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - }; + framework = + name: deps: + mkFramework { + inherit name deps; + private = false; }; - in self; - - framework = name: deps: mkFramework { inherit name deps; private = false; }; - privateFramework = name: deps: mkFramework { inherit name deps; private = true; }; -in rec { + privateFramework = + name: deps: + mkFramework { + inherit name deps; + private = true; + }; +in +rec { libs = { xpc = stdenv.mkDerivation { - name = "apple-lib-xpc"; + name = "apple-lib-xpc"; dontUnpack = true; installPhase = '' @@ -99,11 +143,17 @@ in rec { }; Xplugin = stdenv.mkDerivation { - name = "apple-lib-Xplugin"; + name = "apple-lib-Xplugin"; dontUnpack = true; propagatedBuildInputs = with frameworks; [ - OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText + OpenGL + ApplicationServices + Carbon + IOKit + CoreGraphics + CoreServices + CoreText ]; installPhase = '' @@ -115,7 +165,7 @@ in rec { }; utmp = stdenv.mkDerivation { - name = "apple-lib-utmp"; + name = "apple-lib-utmp"; dontUnpack = true; installPhase = '' @@ -160,109 +210,199 @@ in rec { }; }; - frameworks = let - # Dependency map created by gen-frameworks.py. - generatedDeps = import ./frameworks.nix { - inherit frameworks libs; - }; + frameworks = + let + # Dependency map created by gen-frameworks.py. + generatedDeps = import ./frameworks.nix { inherit frameworks libs; }; - # Additional dependencies that are not picked up by gen-frameworks.py. - # Some of these are simply private frameworks the generator does not see. - extraDeps = with libs; with frameworks; let - inherit (pkgs.darwin.apple_sdk_11_0) libnetwork; - libobjc = pkgs.darwin.apple_sdk_11_0.objc4; - in { - # Below this comment are entries migrated from before the generator was - # added. If, for a given framework, you are able to reverify the extra - # deps are really necessary on top of the generator deps, move it above - # this comment (and maybe document your findings). - AVFoundation = { inherit ApplicationServices AVFCapture AVFCore; }; - Accelerate = { inherit CoreWLAN IOBluetooth; }; - AddressBook = { inherit AddressBookCore ContactsPersistence libobjc; }; - AppKit = { inherit AudioToolbox AudioUnit UIFoundation; }; - AudioToolbox = { inherit AudioToolboxCore; }; - AudioUnit = { inherit Carbon CoreAudio; }; - Carbon = { inherit IOKit QuartzCore libobjc; }; - CoreAudio = { inherit IOKit; }; - CoreFoundation = { inherit libobjc; }; - CoreGraphics = { inherit SystemConfiguration; }; - CoreMIDIServer = { inherit CoreMIDI; }; - CoreMedia = { inherit ApplicationServices AudioToolbox AudioUnit; }; - CoreServices = { inherit CoreAudio NetFS ServiceManagement; }; - CoreWLAN = { inherit SecurityFoundation; }; - DiscRecording = { inherit IOKit libobjc; }; - Foundation = { inherit SystemConfiguration libobjc; }; - GameKit = { inherit GameCenterFoundation GameCenterUI GameCenterUICore ReplayKit; }; - ICADevices = { inherit Carbon libobjc; }; - IOBluetooth = { inherit CoreBluetooth; }; - JavaScriptCore = { inherit libobjc; }; - Kernel = { inherit IOKit; }; - LinkPresentation = { inherit URLFormatting; }; - MediaToolbox = { inherit AudioUnit; }; - MetricKit = { inherit SignpostMetrics; }; - Network = { inherit libnetwork; }; - PCSC = { inherit CoreData; }; - PassKit = { inherit PassKitCore; }; - QTKit = { inherit CoreMedia CoreMediaIO MediaToolbox VideoToolbox; }; - Quartz = { inherit QTKit; }; - QuartzCore = { inherit ApplicationServices CoreImage CoreVideo Metal OpenCL libobjc; }; - Security = { inherit IOKit libDER; }; - TWAIN = { inherit Carbon; }; - VideoDecodeAcceleration = { inherit CoreVideo; }; - WebKit = { inherit ApplicationServices Carbon libobjc; }; - }; + # Additional dependencies that are not picked up by gen-frameworks.py. + # Some of these are simply private frameworks the generator does not see. + extraDeps = + with libs; + with frameworks; + let + inherit (pkgs.darwin.apple_sdk_11_0) libnetwork; + libobjc = pkgs.darwin.apple_sdk_11_0.objc4; + in + { + # Below this comment are entries migrated from before the generator was + # added. If, for a given framework, you are able to reverify the extra + # deps are really necessary on top of the generator deps, move it above + # this comment (and maybe document your findings). + AVFoundation = { + inherit ApplicationServices AVFCapture AVFCore; + }; + Accelerate = { + inherit CoreWLAN IOBluetooth; + }; + AddressBook = { + inherit AddressBookCore ContactsPersistence libobjc; + }; + AppKit = { + inherit AudioToolbox AudioUnit UIFoundation; + }; + AudioToolbox = { + inherit AudioToolboxCore; + }; + AudioUnit = { + inherit Carbon CoreAudio; + }; + Carbon = { + inherit IOKit QuartzCore libobjc; + }; + CoreAudio = { + inherit IOKit; + }; + CoreFoundation = { + inherit libobjc; + }; + CoreGraphics = { + inherit SystemConfiguration; + }; + CoreMIDIServer = { + inherit CoreMIDI; + }; + CoreMedia = { + inherit ApplicationServices AudioToolbox AudioUnit; + }; + CoreServices = { + inherit CoreAudio NetFS ServiceManagement; + }; + CoreWLAN = { + inherit SecurityFoundation; + }; + DiscRecording = { + inherit IOKit libobjc; + }; + Foundation = { + inherit SystemConfiguration libobjc; + }; + GameKit = { + inherit + GameCenterFoundation + GameCenterUI + GameCenterUICore + ReplayKit + ; + }; + ICADevices = { + inherit Carbon libobjc; + }; + IOBluetooth = { + inherit CoreBluetooth; + }; + JavaScriptCore = { + inherit libobjc; + }; + Kernel = { + inherit IOKit; + }; + LinkPresentation = { + inherit URLFormatting; + }; + MediaToolbox = { + inherit AudioUnit; + }; + MetricKit = { + inherit SignpostMetrics; + }; + Network = { + inherit libnetwork; + }; + PCSC = { + inherit CoreData; + }; + PassKit = { + inherit PassKitCore; + }; + QTKit = { + inherit + CoreMedia + CoreMediaIO + MediaToolbox + VideoToolbox + ; + }; + Quartz = { + inherit QTKit; + }; + QuartzCore = { + inherit + ApplicationServices + CoreImage + CoreVideo + Metal + OpenCL + libobjc + ; + }; + Security = { + inherit IOKit libDER; + }; + TWAIN = { + inherit Carbon; + }; + VideoDecodeAcceleration = { + inherit CoreVideo; + }; + WebKit = { + inherit ApplicationServices Carbon libobjc; + }; + }; - # Overrides for framework derivations. - overrides = super: { - CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: { - setupHook = ./cf-setup-hook.sh; - }); + # Overrides for framework derivations. + overrides = super: { + CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: { + setupHook = ./cf-setup-hook.sh; + }); - # This framework doesn't exist in newer SDKs (somewhere around 10.13), but - # there are references to it in nixpkgs. - QuickTime = throw "QuickTime framework not available"; + # This framework doesn't exist in newer SDKs (somewhere around 10.13), but + # there are references to it in nixpkgs. + QuickTime = throw "QuickTime framework not available"; - # Seems to be appropriate given https://developer.apple.com/forums/thread/666686 - JavaVM = super.JavaNativeFoundation; + # Seems to be appropriate given https://developer.apple.com/forums/thread/666686 + JavaVM = super.JavaNativeFoundation; - CoreVideo = lib.overrideDerivation super.CoreVideo (drv: { - installPhase = drv.installPhase + '' - # When used as a module, complains about a missing import for - # Darwin.C.stdint. Apparently fixed in later SDKs. - sed -e "/CFBase.h/ i #include " \ - -i $out/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h - ''; - }); + CoreVideo = lib.overrideDerivation super.CoreVideo (drv: { + installPhase = + drv.installPhase + + '' + # When used as a module, complains about a missing import for + # Darwin.C.stdint. Apparently fixed in later SDKs. + sed -e "/CFBase.h/ i #include " \ + -i $out/Library/Frameworks/CoreVideo.framework/Headers/CVBase.h + ''; + }); - System = lib.overrideDerivation super.System (drv: { - installPhase = drv.installPhase + '' - # Contrarily to the other frameworks, System framework's TBD file - # is a symlink pointing to ${MacOSX-SDK}/usr/lib/libSystem.B.tbd. - # This produces an error when installing the framework as: - # 1. The original file is not copied into the output directory - # 2. Even if it was copied, the relative path wouldn't match - # Thus, it is easier to replace the file than to fix the symlink. - cp --remove-destination ${MacOSX-SDK}/usr/lib/libSystem.B.tbd \ - $out/Library/Frameworks/System.framework/Versions/B/System.tbd - ''; - }); - }; + System = lib.overrideDerivation super.System (drv: { + installPhase = + drv.installPhase + + '' + # Contrarily to the other frameworks, System framework's TBD file + # is a symlink pointing to ${MacOSX-SDK}/usr/lib/libSystem.B.tbd. + # This produces an error when installing the framework as: + # 1. The original file is not copied into the output directory + # 2. Even if it was copied, the relative path wouldn't match + # Thus, it is easier to replace the file than to fix the symlink. + cp --remove-destination ${MacOSX-SDK}/usr/lib/libSystem.B.tbd \ + $out/Library/Frameworks/System.framework/Versions/B/System.tbd + ''; + }); + }; - # Merge extraDeps into generatedDeps. - deps = generatedDeps // ( - lib.mapAttrs - (name: deps: generatedDeps.${name} // deps) - extraDeps - ); + # Merge extraDeps into generatedDeps. + deps = generatedDeps // (lib.mapAttrs (name: deps: generatedDeps.${name} // deps) extraDeps); - # Create derivations, and add private frameworks. - bareFrameworks = (lib.mapAttrs framework deps) // ( - lib.mapAttrs privateFramework (import ./private-frameworks.nix { - inherit frameworks; - libobjc = pkgs.darwin.apple_sdk_11_0.objc4; - }) - ); - in + # Create derivations, and add private frameworks. + bareFrameworks = + (lib.mapAttrs framework deps) + // (lib.mapAttrs privateFramework ( + import ./private-frameworks.nix { + inherit frameworks; + libobjc = pkgs.darwin.apple_sdk_11_0.objc4; + } + )); + in # Apply derivation overrides. bareFrameworks // overrides bareFrameworks; } diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/default.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/default.nix index 238c1b7..be2b5ac 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/default.nix @@ -1,24 +1,42 @@ -{ stdenvNoCC, fetchurl, newScope, lib, pkgs -, stdenv, overrideCC -, xar, cpio, python3, pbzx }: +{ + stdenvNoCC, + fetchurl, + newScope, + lib, + pkgs, + stdenv, + overrideCC, + xar, + cpio, + python3, + pbzx, +}: let - mkSusDerivation = args: stdenvNoCC.mkDerivation (args // { - dontBuild = true; - darwinDontCodeSign = true; + mkSusDerivation = + args: + stdenvNoCC.mkDerivation ( + args + // { + dontBuild = true; + darwinDontCodeSign = true; - nativeBuildInputs = [ cpio pbzx ]; + nativeBuildInputs = [ + cpio + pbzx + ]; - outputs = [ "out" ]; + outputs = [ "out" ]; - unpackPhase = '' - pbzx $src | cpio -idm - ''; + unpackPhase = '' + pbzx $src | cpio -idm + ''; - passthru = { - inherit (args) version; - }; - }); + passthru = { + inherit (args) version; + }; + } + ); MacOSX-SDK = mkSusDerivation { pname = "MacOSX-SDK"; @@ -50,16 +68,20 @@ let ''; }; - mkCc = cc: - if stdenv.isAarch64 then cc + mkCc = + cc: + if stdenv.isAarch64 then + cc else cc.override { bintools = stdenv.cc.bintools.override { libc = packages.Libsystem; }; libc = packages.Libsystem; }; - mkStdenv = stdenv: - if stdenv.isAarch64 then stdenv + mkStdenv = + stdenv: + if stdenv.isAarch64 then + stdenv else let darwinMinVersion = "10.12"; @@ -67,23 +89,38 @@ let in (overrideCC stdenv (mkCc stdenv.cc)).override { extraBuildInputs = [ pkgs.darwin.apple_sdk_11_0.frameworks.CoreFoundation ]; - buildPlatform = stdenv.buildPlatform // { inherit darwinMinVersion darwinSdkVersion; }; - hostPlatform = stdenv.hostPlatform // { inherit darwinMinVersion darwinSdkVersion; }; - targetPlatform = stdenv.targetPlatform // { inherit darwinMinVersion darwinSdkVersion; }; + buildPlatform = stdenv.buildPlatform // { + inherit darwinMinVersion darwinSdkVersion; + }; + hostPlatform = stdenv.hostPlatform // { + inherit darwinMinVersion darwinSdkVersion; + }; + targetPlatform = stdenv.targetPlatform // { + inherit darwinMinVersion darwinSdkVersion; + }; }; - stdenvs = { - stdenv = mkStdenv stdenv; - } // builtins.listToAttrs (map - (v: { - name = "llvmPackages_${v}"; - value = pkgs."llvmPackages_${v}" // { - stdenv = mkStdenv pkgs."llvmPackages_${v}".stdenv; - clang = mkCc pkgs."llvmPackages_${v}".clang; - }; - }) - [ "12" "13" "14" "15" "16" ] - ); + stdenvs = + { + stdenv = mkStdenv stdenv; + } + // builtins.listToAttrs ( + map + (v: { + name = "llvmPackages_${v}"; + value = pkgs."llvmPackages_${v}" // { + stdenv = mkStdenv pkgs."llvmPackages_${v}".stdenv; + clang = mkCc pkgs."llvmPackages_${v}".clang; + }; + }) + [ + "12" + "13" + "14" + "15" + "16" + ] + ); callPackage = newScope (packages // pkgs.darwin // { inherit MacOSX-SDK; }); @@ -116,35 +153,47 @@ let inherit (pkgs.darwin.apple_sdk_11_0.frameworks) CoreServices CoreGraphics ImageIO; }; - rustPlatform = pkgs.makeRustPlatform { - inherit (pkgs.darwin.apple_sdk_11_0) stdenv; - inherit (pkgs) rustc cargo; - } // { - inherit (pkgs.callPackage ../../../build-support/rust/hooks { + rustPlatform = + pkgs.makeRustPlatform { inherit (pkgs.darwin.apple_sdk_11_0) stdenv; - inherit (pkgs) cargo rustc; - clang = mkCc pkgs.clang; - }) bindgenHook; - }; - - callPackage = newScope (lib.optionalAttrs stdenv.isDarwin (stdenvs // rec { - inherit (pkgs.darwin.apple_sdk_11_0) xcodebuild rustPlatform; - darwin = pkgs.darwin.overrideScope (_: prev: { - inherit (prev.darwin.apple_sdk_11_0) - IOKit - Libsystem - LibsystemCross - Security - configd - libcharset - libunwind - objc4 + inherit (pkgs) rustc cargo; + } + // { + inherit + (pkgs.callPackage ../../../build-support/rust/hooks { + inherit (pkgs.darwin.apple_sdk_11_0) stdenv; + inherit (pkgs) cargo rustc; + clang = mkCc pkgs.clang; + }) + bindgenHook ; - apple_sdk = prev.darwin.apple_sdk_11_0; - CF = prev.darwin.apple_sdk_11_0.CoreFoundation; - }); - xcbuild = xcodebuild; - })); + }; + + callPackage = newScope ( + lib.optionalAttrs stdenv.isDarwin ( + stdenvs + // rec { + inherit (pkgs.darwin.apple_sdk_11_0) xcodebuild rustPlatform; + darwin = pkgs.darwin.overrideScope ( + _: prev: { + inherit (prev.darwin.apple_sdk_11_0) + IOKit + Libsystem + LibsystemCross + Security + configd + libcharset + libunwind + objc4 + ; + apple_sdk = prev.darwin.apple_sdk_11_0; + CF = prev.darwin.apple_sdk_11_0.CoreFoundation; + } + ); + xcbuild = xcodebuild; + } + ) + ); darwin-stubs = stdenvNoCC.mkDerivation { pname = "darwin-stubs"; @@ -157,4 +206,5 @@ let ''; }; }; -in packages +in +packages diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/frameworks.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/frameworks.nix index fa6945f..530f6ad 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/frameworks.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/frameworks.nix @@ -1,196 +1,1056 @@ # This file is generated by gen-frameworks.nix. # Do not edit, put overrides in apple_sdk.nix instead. -{ libs, frameworks }: with libs; with frameworks; +{ libs, frameworks }: +with libs; +with frameworks; { - AGL = { inherit Carbon OpenGL; }; - AVFoundation = { inherit AudioToolbox CoreAudio CoreAudioTypes CoreFoundation CoreGraphics CoreImage CoreMIDI CoreMedia CoreVideo Foundation IOKit ImageIO MediaToolbox Metal QuartzCore UniformTypeIdentifiers simd; }; - AVKit = { inherit AVFoundation AppKit Cocoa Foundation; }; - Accelerate = { inherit CoreFoundation CoreGraphics CoreVideo Foundation IOKit Metal; }; - Accessibility = { inherit CoreGraphics Foundation; }; - Accounts = { inherit Foundation; }; - AdServices = { inherit Foundation; }; - AdSupport = { inherit Foundation; }; - AddressBook = { inherit Carbon Cocoa CoreFoundation Foundation; }; - AppKit = { inherit ApplicationServices CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal OpenGL QuartzCore; }; - AppTrackingTransparency = { inherit Foundation; }; - AppleScriptKit = {}; - AppleScriptObjC = { inherit Foundation; }; - ApplicationServices = { inherit ColorSync CoreFoundation CoreGraphics CoreServices CoreText ImageIO; }; - AudioToolbox = { inherit Carbon CoreAudio CoreAudioTypes CoreFoundation CoreMIDI Foundation; }; - AudioUnit = { inherit AudioToolbox; }; - AudioVideoBridging = { inherit Foundation IOKit; }; - AuthenticationServices = { inherit AppKit Foundation; }; - AutomaticAssessmentConfiguration = { inherit Foundation; }; - Automator = { inherit AppKit Cocoa Foundation OSAKit; }; - BackgroundTasks = { inherit Foundation; }; - BusinessChat = { inherit Cocoa Foundation; }; - CFNetwork = { inherit CoreFoundation; }; - CalendarStore = {}; - CallKit = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - Carbon = { inherit ApplicationServices CoreServices Foundation Security; }; - ClassKit = { inherit CoreGraphics Foundation; }; - CloudKit = { inherit CoreFoundation CoreGraphics CoreLocation Foundation IOKit; }; - Cocoa = { inherit AppKit CoreData Foundation; }; - Collaboration = { inherit AppKit CoreServices Foundation; }; - ColorSync = { inherit CoreFoundation; }; - Combine = {}; - Contacts = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - ContactsUI = { inherit AppKit; }; - CoreAudio = { inherit CoreAudioTypes CoreFoundation; }; - CoreAudioKit = { inherit AppKit AudioUnit Cocoa Foundation; }; - CoreAudioTypes = { inherit CoreFoundation; }; - CoreBluetooth = { inherit Foundation; }; - CoreData = { inherit CloudKit Combine CoreFoundation CoreGraphics CoreLocation Foundation IOKit; }; - CoreDisplay = {}; - CoreFoundation = {}; - CoreGraphics = { inherit CoreFoundation IOKit; }; - CoreHaptics = { inherit Foundation; }; - CoreImage = { inherit ApplicationServices CoreFoundation CoreGraphics CoreVideo Foundation IOKit IOSurface ImageIO Metal OpenGL; }; - CoreLocation = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - CoreMIDI = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - CoreMIDIServer = {}; - CoreML = { inherit CoreFoundation CoreGraphics CoreVideo Foundation IOKit ImageIO Metal; }; - CoreMedia = { inherit CoreAudio CoreAudioTypes CoreFoundation CoreGraphics CoreVideo Foundation IOKit Metal; }; - CoreMediaIO = { inherit CoreFoundation CoreMedia; }; - CoreMotion = { inherit Foundation; }; - CoreServices = { inherit CFNetwork CoreFoundation DiskArbitration Security; }; - CoreSpotlight = { inherit Foundation UniformTypeIdentifiers; }; - CoreTelephony = {}; - CoreText = { inherit CoreFoundation CoreGraphics; }; - CoreVideo = { inherit ApplicationServices CoreFoundation CoreGraphics IOSurface Metal OpenGL; }; - CoreWLAN = { inherit Foundation IOKit; }; - CryptoKit = { inherit CoreFoundation CoreGraphics Foundation IOKit LocalAuthentication Security; }; - CryptoTokenKit = { inherit CoreFoundation CoreGraphics Foundation IOKit Security; }; - DVDPlayback = { inherit ApplicationServices CoreFoundation Security; }; - DeveloperToolsSupport = { inherit Foundation; }; - DeviceCheck = { inherit Foundation; }; - DirectoryService = { inherit CoreFoundation; }; - DiscRecording = { inherit CoreServices Foundation; }; - DiscRecordingUI = { inherit Carbon Cocoa DiscRecording; }; - DiskArbitration = { inherit CoreFoundation IOKit; }; - DriverKit = {}; - EventKit = { inherit CoreGraphics CoreLocation Foundation; }; - ExceptionHandling = { inherit Foundation; }; - ExecutionPolicy = { inherit Foundation; }; - ExternalAccessory = { inherit Foundation; }; - FWAUserLib = { inherit IOKit; }; - FileProvider = { inherit CoreGraphics Foundation; }; - FileProviderUI = { inherit AppKit FileProvider Foundation; }; - FinderSync = { inherit AppKit Foundation; }; - ForceFeedback = { inherit CoreFoundation IOKit; }; - Foundation = { inherit ApplicationServices Combine CoreFoundation CoreGraphics CoreServices IOKit Security; }; - GLKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal ModelIO OpenGL QuartzCore simd; }; - GLUT = { inherit OpenGL; }; - GSS = { inherit CoreFoundation; }; - GameController = { inherit AppKit Foundation IOKit; }; - GameKit = { inherit AppKit Cocoa Contacts CoreGraphics Foundation GameController GameplayKit Metal MetalKit ModelIO SceneKit SpriteKit simd; }; - GameplayKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore SceneKit SpriteKit simd; }; - HIDDriverKit = { inherit IOKit USBDriverKit; }; - Hypervisor = {}; - ICADevices = { inherit CoreFoundation CoreGraphics CoreServices IOBluetooth; }; - IMServicePlugIn = { inherit Foundation; }; - IOBluetooth = { inherit CoreAudio CoreFoundation CoreServices Foundation IOKit; }; - IOBluetoothUI = { inherit Cocoa IOBluetooth; }; - IOKit = { inherit CoreFoundation; }; - IOSurface = { inherit CoreFoundation Foundation IOKit; }; - IOUSBHost = { inherit Foundation IOKit; }; - IdentityLookup = { inherit Foundation; }; - ImageCaptureCore = { inherit Cocoa CoreGraphics Foundation; }; - ImageIO = { inherit CoreFoundation CoreGraphics; }; - InputMethodKit = { inherit Carbon Cocoa Foundation; }; - InstallerPlugins = {}; - InstantMessage = {}; - Intents = { inherit CoreFoundation CoreGraphics CoreLocation Foundation IOKit; }; - JavaNativeFoundation = { inherit Foundation; }; - JavaRuntimeSupport = { inherit ApplicationServices Cocoa Foundation QuartzCore; }; - JavaScriptCore = { inherit CoreFoundation CoreGraphics Foundation; }; - Kerberos = {}; - Kernel = {}; - KernelManagement = { inherit Foundation; }; - LDAP = {}; - LatentSemanticMapping = { inherit Carbon CoreFoundation; }; - LinkPresentation = { inherit AppKit Foundation; }; - LocalAuthentication = { inherit Foundation; }; - MLCompute = { inherit CoreFoundation CoreGraphics Foundation IOKit Metal; }; - MapKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; }; - MediaAccessibility = { inherit CoreFoundation CoreGraphics CoreText QuartzCore; }; - MediaLibrary = { inherit Foundation; }; - MediaPlayer = { inherit AVFoundation CoreGraphics Foundation; }; - MediaToolbox = { inherit AudioToolbox CoreFoundation CoreMedia; }; - Message = {}; - Metal = { inherit CoreFoundation CoreGraphics Foundation IOKit IOSurface; }; - MetalKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal ModelIO QuartzCore simd; }; - MetalPerformanceShaders = { inherit CoreGraphics Foundation Metal simd; }; - MetalPerformanceShadersGraph = { inherit Foundation MetalPerformanceShaders; }; - MetricKit = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - ModelIO = { inherit CoreFoundation CoreGraphics Foundation IOKit simd; }; - MultipeerConnectivity = { inherit Cocoa Foundation; }; - NaturalLanguage = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - NearbyInteraction = { inherit CoreFoundation CoreGraphics Foundation IOKit simd; }; - NetFS = { inherit CoreFoundation; }; - Network = { inherit CoreFoundation Foundation Security; }; - NetworkExtension = { inherit Foundation Network Security; }; - NetworkingDriverKit = {}; - NotificationCenter = { inherit AppKit Foundation; }; - OSAKit = { inherit Carbon Cocoa; }; - OSLog = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - OpenAL = {}; - OpenCL = { inherit OpenGL; }; - OpenDirectory = { inherit CoreFoundation Foundation; }; - OpenGL = {}; - PCIDriverKit = { inherit IOKit; }; - PCSC = {}; - PDFKit = { inherit AppKit Cocoa; }; - ParavirtualizedGraphics = { inherit AppKit CoreVideo Foundation IOSurface Metal; }; - PassKit = { inherit AppKit Contacts CoreGraphics Foundation; }; - PencilKit = { inherit AppKit CloudKit Cocoa CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; }; - Photos = { inherit AVFoundation CoreAudio CoreFoundation CoreGraphics CoreImage CoreLocation CoreMIDI CoreMedia Foundation IOKit ImageIO Metal QuartzCore UniformTypeIdentifiers simd; }; - PhotosUI = { inherit AppKit Foundation MapKit Photos; }; - PreferencePanes = { inherit Cocoa; }; - PushKit = { inherit Foundation; }; - Python = { inherit Carbon; }; - QTKit = {}; - Quartz = { inherit AppKit ApplicationServices Cocoa Foundation ImageCaptureCore OpenGL PDFKit QuartzCore QuickLook; }; - QuartzCore = { inherit CoreFoundation CoreGraphics CoreImage CoreVideo Foundation IOKit Metal OpenGL; }; - QuickLook = { inherit ApplicationServices CoreFoundation; }; - QuickLookThumbnailing = { inherit CoreGraphics Foundation UniformTypeIdentifiers; }; - RealityKit = { inherit AVFoundation AppKit AudioToolbox CloudKit Combine CoreAudio CoreData CoreFoundation CoreGraphics CoreImage CoreLocation CoreMIDI CoreText Foundation IOKit Metal MultipeerConnectivity QuartzCore simd; }; - ReplayKit = { inherit AVFoundation AppKit Foundation; }; - Ruby = {}; - SafariServices = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit Metal QuartzCore; }; - SceneKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore simd; }; - ScreenSaver = { inherit AppKit Foundation; }; - ScreenTime = { inherit AppKit Foundation; }; - ScriptingBridge = { inherit ApplicationServices CoreServices Foundation; }; - Security = { inherit CoreFoundation; }; - SecurityFoundation = { inherit Foundation Security; }; - SecurityInterface = { inherit AppKit Cocoa Security SecurityFoundation; }; - SensorKit = { inherit CoreFoundation CoreLocation Foundation; }; - ServiceManagement = { inherit CoreFoundation Security; }; - Social = { inherit AppKit Foundation; }; - SoundAnalysis = { inherit AVFoundation CoreML CoreMedia Foundation; }; - Speech = { inherit AVFoundation CoreAudio CoreFoundation CoreGraphics CoreImage CoreMIDI CoreMedia Foundation IOKit Metal QuartzCore UniformTypeIdentifiers simd; }; - SpriteKit = { inherit AppKit CloudKit Cocoa CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation GLKit IOKit Metal ModelIO QuartzCore simd; }; - StoreKit = { inherit AppKit CoreGraphics Foundation; }; - SwiftUI = { inherit AppKit CloudKit Combine CoreData CoreFoundation CoreGraphics CoreImage CoreLocation DeveloperToolsSupport Foundation IOKit Metal QuartzCore UniformTypeIdentifiers; }; - SyncServices = {}; - System = {}; - SystemConfiguration = { inherit CoreFoundation Security; }; - SystemExtensions = { inherit Foundation; }; - TWAIN = {}; - Tcl = {}; - Tk = {}; - USBDriverKit = { inherit IOKit; }; - UniformTypeIdentifiers = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - UserNotifications = { inherit Foundation; }; - UserNotificationsUI = { inherit AppKit; }; - VideoDecodeAcceleration = {}; - VideoSubscriberAccount = { inherit Foundation; }; - VideoToolbox = { inherit CoreFoundation CoreGraphics CoreMedia CoreVideo; }; - Virtualization = { inherit CoreFoundation CoreGraphics Foundation IOKit; }; - Vision = { inherit CoreAudio CoreFoundation CoreGraphics CoreML CoreMedia CoreVideo Foundation IOKit ImageIO Metal simd; }; - WebKit = { inherit AppKit CloudKit CoreData CoreFoundation CoreGraphics CoreImage CoreLocation Foundation IOKit JavaScriptCore Metal OpenGL QuartzCore; }; - WidgetKit = { inherit Combine CoreFoundation CoreGraphics CoreVideo Foundation IOKit Intents Metal SwiftUI; }; - iTunesLibrary = { inherit Foundation; }; - vmnet = {}; + AGL = { + inherit Carbon OpenGL; + }; + AVFoundation = { + inherit + AudioToolbox + CoreAudio + CoreAudioTypes + CoreFoundation + CoreGraphics + CoreImage + CoreMIDI + CoreMedia + CoreVideo + Foundation + IOKit + ImageIO + MediaToolbox + Metal + QuartzCore + UniformTypeIdentifiers + simd + ; + }; + AVKit = { + inherit + AVFoundation + AppKit + Cocoa + Foundation + ; + }; + Accelerate = { + inherit + CoreFoundation + CoreGraphics + CoreVideo + Foundation + IOKit + Metal + ; + }; + Accessibility = { + inherit CoreGraphics Foundation; + }; + Accounts = { + inherit Foundation; + }; + AdServices = { + inherit Foundation; + }; + AdSupport = { + inherit Foundation; + }; + AddressBook = { + inherit + Carbon + Cocoa + CoreFoundation + Foundation + ; + }; + AppKit = { + inherit + ApplicationServices + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + OpenGL + QuartzCore + ; + }; + AppTrackingTransparency = { + inherit Foundation; + }; + AppleScriptKit = { }; + AppleScriptObjC = { + inherit Foundation; + }; + ApplicationServices = { + inherit + ColorSync + CoreFoundation + CoreGraphics + CoreServices + CoreText + ImageIO + ; + }; + AudioToolbox = { + inherit + Carbon + CoreAudio + CoreAudioTypes + CoreFoundation + CoreMIDI + Foundation + ; + }; + AudioUnit = { + inherit AudioToolbox; + }; + AudioVideoBridging = { + inherit Foundation IOKit; + }; + AuthenticationServices = { + inherit AppKit Foundation; + }; + AutomaticAssessmentConfiguration = { + inherit Foundation; + }; + Automator = { + inherit + AppKit + Cocoa + Foundation + OSAKit + ; + }; + BackgroundTasks = { + inherit Foundation; + }; + BusinessChat = { + inherit Cocoa Foundation; + }; + CFNetwork = { + inherit CoreFoundation; + }; + CalendarStore = { }; + CallKit = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + Carbon = { + inherit + ApplicationServices + CoreServices + Foundation + Security + ; + }; + ClassKit = { + inherit CoreGraphics Foundation; + }; + CloudKit = { + inherit + CoreFoundation + CoreGraphics + CoreLocation + Foundation + IOKit + ; + }; + Cocoa = { + inherit AppKit CoreData Foundation; + }; + Collaboration = { + inherit AppKit CoreServices Foundation; + }; + ColorSync = { + inherit CoreFoundation; + }; + Combine = { }; + Contacts = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + ContactsUI = { + inherit AppKit; + }; + CoreAudio = { + inherit CoreAudioTypes CoreFoundation; + }; + CoreAudioKit = { + inherit + AppKit + AudioUnit + Cocoa + Foundation + ; + }; + CoreAudioTypes = { + inherit CoreFoundation; + }; + CoreBluetooth = { + inherit Foundation; + }; + CoreData = { + inherit + CloudKit + Combine + CoreFoundation + CoreGraphics + CoreLocation + Foundation + IOKit + ; + }; + CoreDisplay = { }; + CoreFoundation = { }; + CoreGraphics = { + inherit CoreFoundation IOKit; + }; + CoreHaptics = { + inherit Foundation; + }; + CoreImage = { + inherit + ApplicationServices + CoreFoundation + CoreGraphics + CoreVideo + Foundation + IOKit + IOSurface + ImageIO + Metal + OpenGL + ; + }; + CoreLocation = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + CoreMIDI = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + CoreMIDIServer = { }; + CoreML = { + inherit + CoreFoundation + CoreGraphics + CoreVideo + Foundation + IOKit + ImageIO + Metal + ; + }; + CoreMedia = { + inherit + CoreAudio + CoreAudioTypes + CoreFoundation + CoreGraphics + CoreVideo + Foundation + IOKit + Metal + ; + }; + CoreMediaIO = { + inherit CoreFoundation CoreMedia; + }; + CoreMotion = { + inherit Foundation; + }; + CoreServices = { + inherit + CFNetwork + CoreFoundation + DiskArbitration + Security + ; + }; + CoreSpotlight = { + inherit Foundation UniformTypeIdentifiers; + }; + CoreTelephony = { }; + CoreText = { + inherit CoreFoundation CoreGraphics; + }; + CoreVideo = { + inherit + ApplicationServices + CoreFoundation + CoreGraphics + IOSurface + Metal + OpenGL + ; + }; + CoreWLAN = { + inherit Foundation IOKit; + }; + CryptoKit = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + LocalAuthentication + Security + ; + }; + CryptoTokenKit = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + Security + ; + }; + DVDPlayback = { + inherit ApplicationServices CoreFoundation Security; + }; + DeveloperToolsSupport = { + inherit Foundation; + }; + DeviceCheck = { + inherit Foundation; + }; + DirectoryService = { + inherit CoreFoundation; + }; + DiscRecording = { + inherit CoreServices Foundation; + }; + DiscRecordingUI = { + inherit Carbon Cocoa DiscRecording; + }; + DiskArbitration = { + inherit CoreFoundation IOKit; + }; + DriverKit = { }; + EventKit = { + inherit CoreGraphics CoreLocation Foundation; + }; + ExceptionHandling = { + inherit Foundation; + }; + ExecutionPolicy = { + inherit Foundation; + }; + ExternalAccessory = { + inherit Foundation; + }; + FWAUserLib = { + inherit IOKit; + }; + FileProvider = { + inherit CoreGraphics Foundation; + }; + FileProviderUI = { + inherit AppKit FileProvider Foundation; + }; + FinderSync = { + inherit AppKit Foundation; + }; + ForceFeedback = { + inherit CoreFoundation IOKit; + }; + Foundation = { + inherit + ApplicationServices + Combine + CoreFoundation + CoreGraphics + CoreServices + IOKit + Security + ; + }; + GLKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + ModelIO + OpenGL + QuartzCore + simd + ; + }; + GLUT = { + inherit OpenGL; + }; + GSS = { + inherit CoreFoundation; + }; + GameController = { + inherit AppKit Foundation IOKit; + }; + GameKit = { + inherit + AppKit + Cocoa + Contacts + CoreGraphics + Foundation + GameController + GameplayKit + Metal + MetalKit + ModelIO + SceneKit + SpriteKit + simd + ; + }; + GameplayKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + GLKit + IOKit + Metal + ModelIO + QuartzCore + SceneKit + SpriteKit + simd + ; + }; + HIDDriverKit = { + inherit IOKit USBDriverKit; + }; + Hypervisor = { }; + ICADevices = { + inherit + CoreFoundation + CoreGraphics + CoreServices + IOBluetooth + ; + }; + IMServicePlugIn = { + inherit Foundation; + }; + IOBluetooth = { + inherit + CoreAudio + CoreFoundation + CoreServices + Foundation + IOKit + ; + }; + IOBluetoothUI = { + inherit Cocoa IOBluetooth; + }; + IOKit = { + inherit CoreFoundation; + }; + IOSurface = { + inherit CoreFoundation Foundation IOKit; + }; + IOUSBHost = { + inherit Foundation IOKit; + }; + IdentityLookup = { + inherit Foundation; + }; + ImageCaptureCore = { + inherit Cocoa CoreGraphics Foundation; + }; + ImageIO = { + inherit CoreFoundation CoreGraphics; + }; + InputMethodKit = { + inherit Carbon Cocoa Foundation; + }; + InstallerPlugins = { }; + InstantMessage = { }; + Intents = { + inherit + CoreFoundation + CoreGraphics + CoreLocation + Foundation + IOKit + ; + }; + JavaNativeFoundation = { + inherit Foundation; + }; + JavaRuntimeSupport = { + inherit + ApplicationServices + Cocoa + Foundation + QuartzCore + ; + }; + JavaScriptCore = { + inherit CoreFoundation CoreGraphics Foundation; + }; + Kerberos = { }; + Kernel = { }; + KernelManagement = { + inherit Foundation; + }; + LDAP = { }; + LatentSemanticMapping = { + inherit Carbon CoreFoundation; + }; + LinkPresentation = { + inherit AppKit Foundation; + }; + LocalAuthentication = { + inherit Foundation; + }; + MLCompute = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + Metal + ; + }; + MapKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + QuartzCore + ; + }; + MediaAccessibility = { + inherit + CoreFoundation + CoreGraphics + CoreText + QuartzCore + ; + }; + MediaLibrary = { + inherit Foundation; + }; + MediaPlayer = { + inherit AVFoundation CoreGraphics Foundation; + }; + MediaToolbox = { + inherit AudioToolbox CoreFoundation CoreMedia; + }; + Message = { }; + Metal = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + IOSurface + ; + }; + MetalKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + ModelIO + QuartzCore + simd + ; + }; + MetalPerformanceShaders = { + inherit + CoreGraphics + Foundation + Metal + simd + ; + }; + MetalPerformanceShadersGraph = { + inherit Foundation MetalPerformanceShaders; + }; + MetricKit = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + ModelIO = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + simd + ; + }; + MultipeerConnectivity = { + inherit Cocoa Foundation; + }; + NaturalLanguage = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + NearbyInteraction = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + simd + ; + }; + NetFS = { + inherit CoreFoundation; + }; + Network = { + inherit CoreFoundation Foundation Security; + }; + NetworkExtension = { + inherit Foundation Network Security; + }; + NetworkingDriverKit = { }; + NotificationCenter = { + inherit AppKit Foundation; + }; + OSAKit = { + inherit Carbon Cocoa; + }; + OSLog = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + OpenAL = { }; + OpenCL = { + inherit OpenGL; + }; + OpenDirectory = { + inherit CoreFoundation Foundation; + }; + OpenGL = { }; + PCIDriverKit = { + inherit IOKit; + }; + PCSC = { }; + PDFKit = { + inherit AppKit Cocoa; + }; + ParavirtualizedGraphics = { + inherit + AppKit + CoreVideo + Foundation + IOSurface + Metal + ; + }; + PassKit = { + inherit + AppKit + Contacts + CoreGraphics + Foundation + ; + }; + PencilKit = { + inherit + AppKit + CloudKit + Cocoa + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + QuartzCore + ; + }; + Photos = { + inherit + AVFoundation + CoreAudio + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + CoreMIDI + CoreMedia + Foundation + IOKit + ImageIO + Metal + QuartzCore + UniformTypeIdentifiers + simd + ; + }; + PhotosUI = { + inherit + AppKit + Foundation + MapKit + Photos + ; + }; + PreferencePanes = { + inherit Cocoa; + }; + PushKit = { + inherit Foundation; + }; + Python = { + inherit Carbon; + }; + QTKit = { }; + Quartz = { + inherit + AppKit + ApplicationServices + Cocoa + Foundation + ImageCaptureCore + OpenGL + PDFKit + QuartzCore + QuickLook + ; + }; + QuartzCore = { + inherit + CoreFoundation + CoreGraphics + CoreImage + CoreVideo + Foundation + IOKit + Metal + OpenGL + ; + }; + QuickLook = { + inherit ApplicationServices CoreFoundation; + }; + QuickLookThumbnailing = { + inherit CoreGraphics Foundation UniformTypeIdentifiers; + }; + RealityKit = { + inherit + AVFoundation + AppKit + AudioToolbox + CloudKit + Combine + CoreAudio + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + CoreMIDI + CoreText + Foundation + IOKit + Metal + MultipeerConnectivity + QuartzCore + simd + ; + }; + ReplayKit = { + inherit AVFoundation AppKit Foundation; + }; + Ruby = { }; + SafariServices = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + Metal + QuartzCore + ; + }; + SceneKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + GLKit + IOKit + Metal + ModelIO + QuartzCore + simd + ; + }; + ScreenSaver = { + inherit AppKit Foundation; + }; + ScreenTime = { + inherit AppKit Foundation; + }; + ScriptingBridge = { + inherit ApplicationServices CoreServices Foundation; + }; + Security = { + inherit CoreFoundation; + }; + SecurityFoundation = { + inherit Foundation Security; + }; + SecurityInterface = { + inherit + AppKit + Cocoa + Security + SecurityFoundation + ; + }; + SensorKit = { + inherit CoreFoundation CoreLocation Foundation; + }; + ServiceManagement = { + inherit CoreFoundation Security; + }; + Social = { + inherit AppKit Foundation; + }; + SoundAnalysis = { + inherit + AVFoundation + CoreML + CoreMedia + Foundation + ; + }; + Speech = { + inherit + AVFoundation + CoreAudio + CoreFoundation + CoreGraphics + CoreImage + CoreMIDI + CoreMedia + Foundation + IOKit + Metal + QuartzCore + UniformTypeIdentifiers + simd + ; + }; + SpriteKit = { + inherit + AppKit + CloudKit + Cocoa + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + GLKit + IOKit + Metal + ModelIO + QuartzCore + simd + ; + }; + StoreKit = { + inherit AppKit CoreGraphics Foundation; + }; + SwiftUI = { + inherit + AppKit + CloudKit + Combine + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + DeveloperToolsSupport + Foundation + IOKit + Metal + QuartzCore + UniformTypeIdentifiers + ; + }; + SyncServices = { }; + System = { }; + SystemConfiguration = { + inherit CoreFoundation Security; + }; + SystemExtensions = { + inherit Foundation; + }; + TWAIN = { }; + Tcl = { }; + Tk = { }; + USBDriverKit = { + inherit IOKit; + }; + UniformTypeIdentifiers = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + UserNotifications = { + inherit Foundation; + }; + UserNotificationsUI = { + inherit AppKit; + }; + VideoDecodeAcceleration = { }; + VideoSubscriberAccount = { + inherit Foundation; + }; + VideoToolbox = { + inherit + CoreFoundation + CoreGraphics + CoreMedia + CoreVideo + ; + }; + Virtualization = { + inherit + CoreFoundation + CoreGraphics + Foundation + IOKit + ; + }; + Vision = { + inherit + CoreAudio + CoreFoundation + CoreGraphics + CoreML + CoreMedia + CoreVideo + Foundation + IOKit + ImageIO + Metal + simd + ; + }; + WebKit = { + inherit + AppKit + CloudKit + CoreData + CoreFoundation + CoreGraphics + CoreImage + CoreLocation + Foundation + IOKit + JavaScriptCore + Metal + OpenGL + QuartzCore + ; + }; + WidgetKit = { + inherit + Combine + CoreFoundation + CoreGraphics + CoreVideo + Foundation + IOKit + Intents + Metal + SwiftUI + ; + }; + iTunesLibrary = { + inherit Foundation; + }; + vmnet = { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libSystem.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libSystem.nix index b661da7..c285a61 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libSystem.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libSystem.nix @@ -1,4 +1,8 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: +{ + stdenvNoCC, + buildPackages, + MacOSX-SDK, +}: stdenvNoCC.mkDerivation { pname = "libSystem"; @@ -9,20 +13,70 @@ stdenvNoCC.mkDerivation { nativeBuildInputs = [ buildPackages.darwin.rewrite-tbd ]; - includeDirs = [ - "CommonCrypto" "_types" "architecture" "arpa" "atm" "bank" "bsd" "bsm" - "corecrypto" "corpses" "default_pager" "device" "dispatch" "hfs" "i386" - "iokit" "kern" "libkern" "mach" "mach-o" "mach_debug" "machine" "malloc" - "miscfs" "net" "netinet" "netinet6" "netkey" "nfs" "os" "osfmk" "pexpert" - "platform" "protocols" "pthread" "rpc" "rpcsvc" "secure" "security" - "servers" "sys" "uuid" "vfs" "voucher" "xlocale" - ] ++ [ - "arm" "xpc" "arm64" - ]; + includeDirs = + [ + "CommonCrypto" + "_types" + "architecture" + "arpa" + "atm" + "bank" + "bsd" + "bsm" + "corecrypto" + "corpses" + "default_pager" + "device" + "dispatch" + "hfs" + "i386" + "iokit" + "kern" + "libkern" + "mach" + "mach-o" + "mach_debug" + "machine" + "malloc" + "miscfs" + "net" + "netinet" + "netinet6" + "netkey" + "nfs" + "os" + "osfmk" + "pexpert" + "platform" + "protocols" + "pthread" + "rpc" + "rpcsvc" + "secure" + "security" + "servers" + "sys" + "uuid" + "vfs" + "voucher" + "xlocale" + ] + ++ [ + "arm" + "xpc" + "arm64" + ]; csu = [ - "bundle1.o" "crt0.o" "crt1.10.5.o" "crt1.10.6.o" "crt1.o" "dylib1.10.5.o" - "dylib1.o" "gcrt1.o" "lazydylib1.o" + "bundle1.o" + "crt0.o" + "crt1.10.5.o" + "crt1.10.6.o" + "crt1.o" + "dylib1.10.5.o" + "dylib1.o" + "gcrt1.o" + "lazydylib1.o" ]; installPhase = '' @@ -85,4 +139,3 @@ stdenvNoCC.mkDerivation { done ''; } - diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcharset.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcharset.nix index bf55037..c6d0eef 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcharset.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcharset.nix @@ -1,4 +1,8 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: +{ + stdenvNoCC, + buildPackages, + MacOSX-SDK, +}: stdenvNoCC.mkDerivation { pname = "libcharset"; diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcompression.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcompression.nix index 92a45b7..5532e38 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcompression.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libcompression.nix @@ -1,20 +1,27 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: +{ + stdenvNoCC, + buildPackages, + MacOSX-SDK, +}: -let self = stdenvNoCC.mkDerivation { - pname = "libcompression"; - version = MacOSX-SDK.version; +let + self = stdenvNoCC.mkDerivation { + pname = "libcompression"; + version = MacOSX-SDK.version; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - installPhase = '' - mkdir -p $out/lib - cp ${MacOSX-SDK}/usr/lib/libcompression* $out/lib - ''; + installPhase = '' + mkdir -p $out/lib + cp ${MacOSX-SDK}/usr/lib/libcompression* $out/lib + ''; - passthru = { - tbdRewrites = { - const."/usr/lib/libcompression.dylib" = "${self}/lib/libcompression.dylib"; + passthru = { + tbdRewrites = { + const."/usr/lib/libcompression.dylib" = "${self}/lib/libcompression.dylib"; + }; }; }; -}; in self +in +self diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libnetwork.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libnetwork.nix index 2e5c059..e991269 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libnetwork.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libnetwork.nix @@ -1,20 +1,27 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: +{ + stdenvNoCC, + buildPackages, + MacOSX-SDK, +}: -let self = stdenvNoCC.mkDerivation { - pname = "libnetwork"; - version = MacOSX-SDK.version; +let + self = stdenvNoCC.mkDerivation { + pname = "libnetwork"; + version = MacOSX-SDK.version; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - installPhase = '' - mkdir -p $out/lib - cp ${MacOSX-SDK}/usr/lib/libnetwork* $out/lib - ''; + installPhase = '' + mkdir -p $out/lib + cp ${MacOSX-SDK}/usr/lib/libnetwork* $out/lib + ''; - passthru = { - tbdRewrites = { - const."/usr/lib/libnetwork.dylib" = "${self}/lib/libnetwork.dylib"; + passthru = { + tbdRewrites = { + const."/usr/lib/libnetwork.dylib" = "${self}/lib/libnetwork.dylib"; + }; }; }; -}; in self +in +self diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libobjc.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libobjc.nix index 9288097..b39a8dd 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libobjc.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libobjc.nix @@ -1,24 +1,31 @@ -{ stdenvNoCC, MacOSX-SDK, libcharset }: +{ + stdenvNoCC, + MacOSX-SDK, + libcharset, +}: -let self = stdenvNoCC.mkDerivation { - pname = "libobjc"; - version = MacOSX-SDK.version; +let + self = stdenvNoCC.mkDerivation { + pname = "libobjc"; + version = MacOSX-SDK.version; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - installPhase = '' - mkdir -p $out/{include,lib/swift} - cp -r ${MacOSX-SDK}/usr/include/objc $out/include - cp ${MacOSX-SDK}/usr/lib/libobjc* $out/lib - cp -r ${MacOSX-SDK}/usr/lib/swift/ObjectiveC.swiftmodule $out/lib/swift - cp ${MacOSX-SDK}/usr/lib/swift/libswiftObjectiveC.tbd $out/lib/swift - ''; + installPhase = '' + mkdir -p $out/{include,lib/swift} + cp -r ${MacOSX-SDK}/usr/include/objc $out/include + cp ${MacOSX-SDK}/usr/lib/libobjc* $out/lib + cp -r ${MacOSX-SDK}/usr/lib/swift/ObjectiveC.swiftmodule $out/lib/swift + cp ${MacOSX-SDK}/usr/lib/swift/libswiftObjectiveC.tbd $out/lib/swift + ''; - passthru = { - tbdRewrites = { - const."/usr/lib/libobjc.A.dylib" = "${self}/lib/libobjc.A.dylib"; - const."/usr/lib/swift/libswiftObjectiveC.dylib" = "${self}/lib/swift/libswiftObjectiveC.dylib"; + passthru = { + tbdRewrites = { + const."/usr/lib/libobjc.A.dylib" = "${self}/lib/libobjc.A.dylib"; + const."/usr/lib/swift/libswiftObjectiveC.dylib" = "${self}/lib/swift/libswiftObjectiveC.dylib"; + }; }; }; -}; in self +in +self diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libpm.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libpm.nix index 995f2b2..85b684f 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libpm.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libpm.nix @@ -1,4 +1,8 @@ -{ stdenvNoCC, MacOSX-SDK, checkReexportsHook }: +{ + stdenvNoCC, + MacOSX-SDK, + checkReexportsHook, +}: stdenvNoCC.mkDerivation { pname = "libpm"; diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libunwind.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libunwind.nix index 885780e..f8b540f 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libunwind.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/libunwind.nix @@ -1,4 +1,8 @@ -{ stdenvNoCC, buildPackages, MacOSX-SDK }: +{ + stdenvNoCC, + buildPackages, + MacOSX-SDK, +}: stdenvNoCC.mkDerivation { pname = "libunwind"; diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/private-frameworks.nix b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/private-frameworks.nix index 4566c8a..9b91dbf 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/private-frameworks.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk-11.0/private-frameworks.nix @@ -1,32 +1,37 @@ -{ frameworks, libobjc }: with frameworks; +{ frameworks, libobjc }: +with frameworks; # generated by hand to avoid exposing all private frameworks # frameworks here are only the necessary ones used by public frameworks. { - Apple80211 = {}; - AVFCapture = {}; - AVFCore = {}; - AddressBookCore = { inherit ContactsPersistence; }; - AudioToolboxCore = {}; - ContactsPersistence = {}; - GameCenterFoundation = {}; - GameCenterUI = {}; - GameCenterUICore = {}; - MediaRemote = {}; - PassKitCore = {}; - SignpostMetrics = {}; - SkyLight = {}; - UIFoundation = {}; - URLFormatting = {}; + Apple80211 = { }; + AVFCapture = { }; + AVFCore = { }; + AddressBookCore = { + inherit ContactsPersistence; + }; + AudioToolboxCore = { }; + ContactsPersistence = { }; + GameCenterFoundation = { }; + GameCenterUI = { }; + GameCenterUICore = { }; + MediaRemote = { }; + PassKitCore = { }; + SignpostMetrics = { }; + SkyLight = { }; + UIFoundation = { }; + URLFormatting = { }; # Also expose CoreSymbolication; used by `root` package. - CoreSymbolication = {}; + CoreSymbolication = { }; # Also expose DebugSymbols; used by `llvmPackages_8.lldb` package. - DebugSymbols = {}; + DebugSymbols = { }; # Also expose DisplayServices; used by `sketchybar` package. - DisplayServices = { inherit libobjc; }; + DisplayServices = { + inherit libobjc; + }; # Also expose MultitouchSupport; used by `chuck` package. - MultitouchSupport = {}; + MultitouchSupport = { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix index a3d1df0..ff278e1 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk/default.nix @@ -1,4 +1,13 @@ -{ stdenv, fetchurl, cpio, pbzx, pkgs, lib, darwin-stubs, print-reexports }: +{ + stdenv, + fetchurl, + cpio, + pbzx, + pkgs, + lib, + darwin-stubs, + print-reexports, +}: let # sadly needs to be exported because security_tool needs it @@ -12,13 +21,20 @@ let # 3. ??? # 4. Profit src = fetchurl { - url = "http://swcdn.apple.com/content/downloads/33/36/041-90419-A_7JJ4H9ZHO2/xs88ob5wjz6riz7g6764twblnvksusg4ps/DevSDK_OSX1012.pkg"; + url = "http://swcdn.apple.com/content/downloads/33/36/041-90419-A_7JJ4H9ZHO2/xs88ob5wjz6riz7g6764twblnvksusg4ps/DevSDK_OSX1012.pkg"; sha256 = "13xq34sb7383b37hwy076gnhf96prpk1b4087p87xnwswxbrisih"; }; - nativeBuildInputs = [ cpio pbzx ]; + nativeBuildInputs = [ + cpio + pbzx + ]; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; unpackPhase = '' pbzx $src | cpio -idm @@ -45,170 +61,186 @@ let meta = with lib; { description = "Apple SDK ${version}"; maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; + platforms = platforms.darwin; }; }; - mkFrameworkSubs = name: deps: - let - deps' = deps // { "${name}" = placeholder "out"; }; - substArgs = lib.concatMap (x: [ "--subst-var-by" x deps'."${x}" ]) (lib.attrNames deps'); - in lib.escapeShellArgs substArgs; + mkFrameworkSubs = + name: deps: + let + deps' = deps // { + "${name}" = placeholder "out"; + }; + substArgs = lib.concatMap (x: [ + "--subst-var-by" + x + deps'."${x}" + ]) (lib.attrNames deps'); + in + lib.escapeShellArgs substArgs; - framework = name: deps: stdenv.mkDerivation { - name = "apple-framework-${name}"; + framework = + name: deps: + stdenv.mkDerivation { + name = "apple-framework-${name}"; - dontUnpack = true; + dontUnpack = true; - # because we copy files from the system - preferLocalBuild = true; + # because we copy files from the system + preferLocalBuild = true; - disallowedRequisites = [ sdk ]; + disallowedRequisites = [ sdk ]; - nativeBuildInputs = [ print-reexports ]; + nativeBuildInputs = [ print-reexports ]; - extraTBDFiles = []; + extraTBDFiles = [ ]; - installPhase = '' - linkFramework() { - local path="$1" - local nested_path="$1" - if [ "$path" == "JavaNativeFoundation.framework" ]; then - local nested_path="JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework" - fi - if [ "$path" == "JavaRuntimeSupport.framework" ]; then - local nested_path="JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework" - fi - local name="$(basename "$path" .framework)" - local current="$(readlink "/System/Library/Frameworks/$nested_path/Versions/Current")" - if [ -z "$current" ]; then - current=A - fi + installPhase = '' + linkFramework() { + local path="$1" + local nested_path="$1" + if [ "$path" == "JavaNativeFoundation.framework" ]; then + local nested_path="JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework" + fi + if [ "$path" == "JavaRuntimeSupport.framework" ]; then + local nested_path="JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework" + fi + local name="$(basename "$path" .framework)" + local current="$(readlink "/System/Library/Frameworks/$nested_path/Versions/Current")" + if [ -z "$current" ]; then + current=A + fi - local dest="$out/Library/Frameworks/$path" + local dest="$out/Library/Frameworks/$path" - mkdir -p "$dest/Versions/$current" - pushd "$dest/Versions/$current" >/dev/null + mkdir -p "$dest/Versions/$current" + pushd "$dest/Versions/$current" >/dev/null - if [ -d "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current/Headers" ]; then - cp -R "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current/Headers" . - elif [ -d "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current/Headers" ]; then - current="$(readlink "/System/Library/Frameworks/$name.framework/Versions/Current")" - cp -R "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current/Headers" . - fi + if [ -d "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current/Headers" ]; then + cp -R "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current/Headers" . + elif [ -d "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current/Headers" ]; then + current="$(readlink "/System/Library/Frameworks/$name.framework/Versions/Current")" + cp -R "${sdk.out}/Library/Frameworks/$name.framework/Versions/$current/Headers" . + fi - local tbd_source=${darwin-stubs}/System/Library/Frameworks/$nested_path/Versions/$current - if [ "${name}" != "Kernel" ]; then - # The Kernel.framework has headers but no actual library component. - cp -v $tbd_source/*.tbd . - fi + local tbd_source=${darwin-stubs}/System/Library/Frameworks/$nested_path/Versions/$current + if [ "${name}" != "Kernel" ]; then + # The Kernel.framework has headers but no actual library component. + cp -v $tbd_source/*.tbd . + fi - if [ -d "$tbd_source/Libraries" ]; then - mkdir Libraries - cp -v $tbd_source/Libraries/*.tbd Libraries/ - fi + if [ -d "$tbd_source/Libraries" ]; then + mkdir Libraries + cp -v $tbd_source/Libraries/*.tbd Libraries/ + fi - ln -s -L "/System/Library/Frameworks/$nested_path/Versions/$current/Resources" + ln -s -L "/System/Library/Frameworks/$nested_path/Versions/$current/Resources" - if [ -f "/System/Library/Frameworks/$nested_path/module.map" ]; then - ln -s "/System/Library/Frameworks/$nested_path/module.map" - fi + if [ -f "/System/Library/Frameworks/$nested_path/module.map" ]; then + ln -s "/System/Library/Frameworks/$nested_path/module.map" + fi - pushd "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current" >/dev/null - local children=$(echo Frameworks/*.framework) - popd >/dev/null + pushd "${sdk.out}/Library/Frameworks/$nested_path/Versions/$current" >/dev/null + local children=$(echo Frameworks/*.framework) + popd >/dev/null - for child in $children; do - childpath="$path/Versions/$current/$child" - linkFramework "$childpath" + for child in $children; do + childpath="$path/Versions/$current/$child" + linkFramework "$childpath" + done + + pushd ../.. >/dev/null + ln -s "$current" Versions/Current + ln -s Versions/Current/* . + popd >/dev/null + + popd >/dev/null + } + + linkFramework "${name}.framework" + + # linkFramework is recursive, the rest of the processing is not. + + local tbd_source=${darwin-stubs}/System/Library/Frameworks/${name}.framework + for tbd in $extraTBDFiles; do + local tbd_dest_dir=$out/Library/Frameworks/${name}.framework/$(dirname "$tbd") + mkdir -p "$tbd_dest_dir" + cp -v "$tbd_source/$tbd" "$tbd_dest_dir" done - pushd ../.. >/dev/null + # Fix and check tbd re-export references + find $out -name '*.tbd' | while read tbd; do + echo "Fixing re-exports in $tbd" + substituteInPlace "$tbd" ${mkFrameworkSubs name deps} + + echo "Checking re-exports in $tbd" + print-reexports "$tbd" | while read target; do + local expected="''${target%.dylib}.tbd" + if ! [ -e "$expected" ]; then + echo -e "Re-export missing:\n\t$target\n\t(expected $expected)" + echo -e "While processing\n\t$tbd" + exit 1 + else + echo "Re-exported target $target ok" + fi + done + done + ''; + + propagatedBuildInputs = builtins.attrValues deps; + + # don't use pure CF for dylibs that depend on frameworks + setupHook = ./framework-setup-hook.sh; + + # Not going to be more specific than this for now + __propagatedImpureHostDeps = lib.optionals (name != "Kernel") [ + # The setup-hook ensures that everyone uses the impure CoreFoundation who uses these SDK frameworks, so let's expose it + "/System/Library/Frameworks/CoreFoundation.framework" + "/System/Library/Frameworks/${name}.framework" + "/System/Library/Frameworks/${name}.framework/${name}" + ]; + + meta = with lib; { + description = "Apple SDK framework ${name}"; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.darwin; + }; + }; + + tbdOnlyFramework = + name: + { + private ? true, + }: + stdenv.mkDerivation { + name = "apple-framework-${name}"; + dontUnpack = true; + installPhase = '' + mkdir -p $out/Library/Frameworks/ + cp -r ${darwin-stubs}/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework \ + $out/Library/Frameworks + + cd $out/Library/Frameworks/${name}.framework + + versions=(./Versions/*) + if [ "''${#versions[@]}" != 1 ]; then + echo "Unable to determine current version of framework ${name}" + exit 1 + fi + current=$(basename ''${versions[0]}) + + chmod u+w -R . ln -s "$current" Versions/Current ln -s Versions/Current/* . - popd >/dev/null - popd >/dev/null - } - - linkFramework "${name}.framework" - - # linkFramework is recursive, the rest of the processing is not. - - local tbd_source=${darwin-stubs}/System/Library/Frameworks/${name}.framework - for tbd in $extraTBDFiles; do - local tbd_dest_dir=$out/Library/Frameworks/${name}.framework/$(dirname "$tbd") - mkdir -p "$tbd_dest_dir" - cp -v "$tbd_source/$tbd" "$tbd_dest_dir" - done - - # Fix and check tbd re-export references - find $out -name '*.tbd' | while read tbd; do - echo "Fixing re-exports in $tbd" - substituteInPlace "$tbd" ${mkFrameworkSubs name deps} - - echo "Checking re-exports in $tbd" - print-reexports "$tbd" | while read target; do - local expected="''${target%.dylib}.tbd" - if ! [ -e "$expected" ]; then - echo -e "Re-export missing:\n\t$target\n\t(expected $expected)" - echo -e "While processing\n\t$tbd" - exit 1 - else - echo "Re-exported target $target ok" - fi - done - done - ''; - - propagatedBuildInputs = builtins.attrValues deps; - - # don't use pure CF for dylibs that depend on frameworks - setupHook = ./framework-setup-hook.sh; - - # Not going to be more specific than this for now - __propagatedImpureHostDeps = lib.optionals (name != "Kernel") [ - # The setup-hook ensures that everyone uses the impure CoreFoundation who uses these SDK frameworks, so let's expose it - "/System/Library/Frameworks/CoreFoundation.framework" - "/System/Library/Frameworks/${name}.framework" - "/System/Library/Frameworks/${name}.framework/${name}" - ]; - - meta = with lib; { - description = "Apple SDK framework ${name}"; - maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; + # NOTE there's no re-export checking here, this is probably wrong + ''; }; - }; - - tbdOnlyFramework = name: { private ? true }: stdenv.mkDerivation { - name = "apple-framework-${name}"; - dontUnpack = true; - installPhase = '' - mkdir -p $out/Library/Frameworks/ - cp -r ${darwin-stubs}/System/Library/${lib.optionalString private "Private"}Frameworks/${name}.framework \ - $out/Library/Frameworks - - cd $out/Library/Frameworks/${name}.framework - - versions=(./Versions/*) - if [ "''${#versions[@]}" != 1 ]; then - echo "Unable to determine current version of framework ${name}" - exit 1 - fi - current=$(basename ''${versions[0]}) - - chmod u+w -R . - ln -s "$current" Versions/Current - ln -s Versions/Current/* . - - # NOTE there's no re-export checking here, this is probably wrong - ''; - }; -in rec { +in +rec { libs = { xpc = stdenv.mkDerivation { - name = "apple-lib-xpc"; + name = "apple-lib-xpc"; dontUnpack = true; installPhase = '' @@ -221,14 +253,20 @@ in rec { }; Xplugin = stdenv.mkDerivation { - name = "apple-lib-Xplugin"; + name = "apple-lib-Xplugin"; dontUnpack = true; # Not enough __propagatedImpureHostDeps = [ "/usr/lib/libXplugin.1.dylib" ]; propagatedBuildInputs = with frameworks; [ - OpenGL ApplicationServices Carbon IOKit CoreGraphics CoreServices CoreText + OpenGL + ApplicationServices + Carbon + IOKit + CoreGraphics + CoreServices + CoreText ]; installPhase = '' @@ -240,7 +278,7 @@ in rec { }; utmp = stdenv.mkDerivation { - name = "apple-lib-utmp"; + name = "apple-lib-utmp"; dontUnpack = true; installPhase = '' @@ -265,88 +303,98 @@ in rec { }; }; - overrides = super: { - AppKit = lib.overrideDerivation super.AppKit (drv: { - __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [ - "/System/Library/PrivateFrameworks/" - ]; - }); + overrides = + super: + { + AppKit = lib.overrideDerivation super.AppKit (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [ ] ++ [ + "/System/Library/PrivateFrameworks/" + ]; + }); - Carbon = lib.overrideDerivation super.Carbon (drv: { - extraTBDFiles = [ "Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering.tbd" ]; - }); + Carbon = lib.overrideDerivation super.Carbon (drv: { + extraTBDFiles = [ "Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering.tbd" ]; + }); - CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: { - setupHook = ./cf-setup-hook.sh; - }); + CoreFoundation = lib.overrideDerivation super.CoreFoundation (drv: { + setupHook = ./cf-setup-hook.sh; + }); - CoreMedia = lib.overrideDerivation super.CoreMedia (drv: { - __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [ - "/System/Library/Frameworks/CoreImage.framework" - ]; - }); + CoreMedia = lib.overrideDerivation super.CoreMedia (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [ ] ++ [ + "/System/Library/Frameworks/CoreImage.framework" + ]; + }); - CoreMIDI = lib.overrideDerivation super.CoreMIDI (drv: { - __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [ - "/System/Library/PrivateFrameworks/" - ]; - setupHook = ./private-frameworks-setup-hook.sh; - }); + CoreMIDI = lib.overrideDerivation super.CoreMIDI (drv: { + __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [ ] ++ [ + "/System/Library/PrivateFrameworks/" + ]; + setupHook = ./private-frameworks-setup-hook.sh; + }); - IMServicePlugIn = lib.overrideDerivation super.IMServicePlugIn (drv: { - extraTBDFiles = [ "Versions/A/Frameworks/IMServicePlugInSupport.framework/Versions/A/IMServicePlugInSupport.tbd" ]; - }); + IMServicePlugIn = lib.overrideDerivation super.IMServicePlugIn (drv: { + extraTBDFiles = [ + "Versions/A/Frameworks/IMServicePlugInSupport.framework/Versions/A/IMServicePlugInSupport.tbd" + ]; + }); - Security = lib.overrideDerivation super.Security (drv: { - setupHook = ./security-setup-hook.sh; - }); + Security = lib.overrideDerivation super.Security (drv: { + setupHook = ./security-setup-hook.sh; + }); - QuartzCore = lib.overrideDerivation super.QuartzCore (drv: { - installPhase = drv.installPhase + '' - f="$out/Library/Frameworks/QuartzCore.framework/Headers/CoreImage.h" - substituteInPlace "$f" \ - --replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage" - ''; - }); + QuartzCore = lib.overrideDerivation super.QuartzCore (drv: { + installPhase = + drv.installPhase + + '' + f="$out/Library/Frameworks/QuartzCore.framework/Headers/CoreImage.h" + substituteInPlace "$f" \ + --replace "QuartzCore/../Frameworks/CoreImage.framework/Headers" "CoreImage" + ''; + }); - MetalKit = lib.overrideDerivation super.MetalKit (drv: { - installPhase = drv.installPhase + '' - mkdir -p $out/include/simd - cp ${lib.getDev sdk}/include/simd/*.h $out/include/simd/ - ''; - }); + MetalKit = lib.overrideDerivation super.MetalKit (drv: { + installPhase = + drv.installPhase + + '' + mkdir -p $out/include/simd + cp ${lib.getDev sdk}/include/simd/*.h $out/include/simd/ + ''; + }); - System = lib.overrideDerivation super.System (drv: { - installPhase = '' - mkdir -p $out/Library/Frameworks/System.framework/Versions/B - ln -s $out/Library/Frameworks/System.framework/Versions/{B,Current} - ln -s ${pkgs.darwin.Libsystem}/lib/libSystem.B.tbd $out/Library/Frameworks/System.framework/Versions/B/System.tbd - ln -s $out/Library/Frameworks/System.framework/{Versions/Current/,}System.tbd - ''; - }); + System = lib.overrideDerivation super.System (drv: { + installPhase = '' + mkdir -p $out/Library/Frameworks/System.framework/Versions/B + ln -s $out/Library/Frameworks/System.framework/Versions/{B,Current} + ln -s ${pkgs.darwin.Libsystem}/lib/libSystem.B.tbd $out/Library/Frameworks/System.framework/Versions/B/System.tbd + ln -s $out/Library/Frameworks/System.framework/{Versions/Current/,}System.tbd + ''; + }); - WebKit = lib.overrideDerivation super.WebKit (drv: { - extraTBDFiles = [ - "Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore.tbd" - "Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy.tbd" - ]; - }); - } // lib.genAttrs [ - "ContactsPersistence" - "CoreSymbolication" - "DebugSymbols" - "DisplayServices" - "GameCenter" - "MultitouchSupport" - "SkyLight" - "UIFoundation" - ] - (x: tbdOnlyFramework x {}); + WebKit = lib.overrideDerivation super.WebKit (drv: { + extraTBDFiles = [ + "Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore.tbd" + "Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy.tbd" + ]; + }); + } + // lib.genAttrs [ + "ContactsPersistence" + "CoreSymbolication" + "DebugSymbols" + "DisplayServices" + "GameCenter" + "MultitouchSupport" + "SkyLight" + "UIFoundation" + ] (x: tbdOnlyFramework x { }); - bareFrameworks = lib.mapAttrs framework (import ./frameworks.nix { - inherit frameworks libs; - inherit (pkgs.darwin) libobjc; - }); + bareFrameworks = lib.mapAttrs framework ( + import ./frameworks.nix { + inherit frameworks libs; + inherit (pkgs.darwin) libobjc; + } + ); frameworks = bareFrameworks // overrides bareFrameworks; diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix index a9fbcc0..7b5393c 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk/frameworks.nix @@ -2,129 +2,341 @@ # Epic weird knot-tying happening here. # TODO: clean up the process for generating this and include it -{ frameworks, libs, libobjc, }: +{ + frameworks, + libs, + libobjc, +}: -with frameworks; with libs; { - AGL = { inherit Carbon OpenGL; }; - AVFoundation = { inherit ApplicationServices CoreGraphics CoreMedia MediaToolbox; }; - AVKit = {}; - Accounts = {}; - AddressBook = { inherit libobjc Carbon ContactsPersistence; }; - AppKit = { inherit ApplicationServices AudioToolbox AudioUnit Foundation QuartzCore UIFoundation; }; - AppKitScripting = {}; - AppleScriptKit = {}; - AppleScriptObjC = {}; - AudioToolbox = { inherit CoreAudio CoreMIDI; }; - AudioUnit = { inherit AudioToolbox Carbon CoreAudio; }; - AudioVideoBridging = { inherit Foundation; }; - Automator = {}; - CFNetwork = {}; - CalendarStore = {}; - Cocoa = { inherit AppKit CoreData; }; - Collaboration = {}; +with frameworks; +with libs; +{ + AGL = { + inherit Carbon OpenGL; + }; + AVFoundation = { + inherit + ApplicationServices + CoreGraphics + CoreMedia + MediaToolbox + ; + }; + AVKit = { }; + Accounts = { }; + AddressBook = { + inherit libobjc Carbon ContactsPersistence; + }; + AppKit = { + inherit + ApplicationServices + AudioToolbox + AudioUnit + Foundation + QuartzCore + UIFoundation + ; + }; + AppKitScripting = { }; + AppleScriptKit = { }; + AppleScriptObjC = { }; + AudioToolbox = { + inherit CoreAudio CoreMIDI; + }; + AudioUnit = { + inherit AudioToolbox Carbon CoreAudio; + }; + AudioVideoBridging = { + inherit Foundation; + }; + Automator = { }; + CFNetwork = { }; + CalendarStore = { }; + Cocoa = { + inherit AppKit CoreData; + }; + Collaboration = { }; # Impure version of CoreFoundation, this should not be used unless another # framework includes headers that are not available in the pure version. - CoreFoundation = {}; - CoreAudio = { inherit IOKit; }; - CoreAudioKit = { inherit AudioUnit; }; - CoreData = {}; - CoreGraphics = { inherit Accelerate IOKit IOSurface SystemConfiguration; }; - CoreImage = {}; - CoreLocation = {}; - CoreMIDI = {}; - CoreMIDIServer = { inherit CoreMIDI; }; - CoreMedia = { inherit ApplicationServices AudioToolbox AudioUnit CoreAudio CoreGraphics CoreVideo; }; - CoreMediaIO = { inherit CoreMedia; }; - CoreText = { inherit CoreGraphics; }; - CoreVideo = { inherit ApplicationServices CoreGraphics IOSurface OpenGL; }; - CoreWLAN = { inherit SecurityFoundation; }; - DVDPlayback = {}; - DirectoryService = {}; - DiscRecording = { inherit libobjc CoreServices IOKit; }; - DiscRecordingUI = {}; - DiskArbitration = { inherit IOKit; }; - EventKit = {}; - ExceptionHandling = {}; - FWAUserLib = {}; - ForceFeedback = { inherit IOKit; }; - Foundation = { inherit libobjc CoreFoundation Security ApplicationServices SystemConfiguration; }; - GLKit = {}; - GLUT = { inherit OpenGL; }; - GSS = {}; - GameCenter = {}; - GameController = {}; - GameKit = { inherit Cocoa Foundation GameCenter GameController GameplayKit Metal MetalKit ModelIO SceneKit SpriteKit; }; - GameplayKit = {}; - Hypervisor = {}; - ICADevices = { inherit libobjc Carbon IOBluetooth; }; - IMServicePlugIn = {}; - IOBluetoothUI = { inherit IOBluetooth; }; - IOKit = {}; - IOSurface = { inherit IOKit xpc; }; - ImageCaptureCore = {}; - ImageIO = { inherit CoreGraphics; }; - InputMethodKit = { inherit Carbon; }; - InstallerPlugins = {}; - InstantMessage = {}; - JavaFrameEmbedding = {}; - JavaNativeFoundation = {}; - JavaRuntimeSupport = {}; - JavaScriptCore = { inherit libobjc; }; - Kerberos = {}; - Kernel = { inherit IOKit; }; - LDAP = {}; - LatentSemanticMapping = { inherit Carbon; }; - LocalAuthentication = {}; - MapKit = {}; - MediaAccessibility = { inherit CoreGraphics CoreText QuartzCore; }; - MediaPlayer = {}; - MediaToolbox = { inherit AudioToolbox AudioUnit CoreMedia; }; - Metal = {}; - MetalKit = { inherit ModelIO Metal; }; - ModelIO = {}; - NetFS = {}; - OSAKit = { inherit Carbon; }; - OpenAL = {}; - OpenCL = { inherit IOSurface OpenGL; }; - OpenGL = {}; - PCSC = { inherit CoreData; }; - PreferencePanes = {}; - PubSub = {}; - QTKit = { inherit CoreMediaIO CoreMedia MediaToolbox QuickTime VideoToolbox; }; - QuickLook = { inherit ApplicationServices; }; - SceneKit = {}; - ScreenSaver = {}; - Scripting = {}; - ScriptingBridge = {}; - Security = { inherit IOKit; }; - SecurityFoundation = {}; - SecurityInterface = { inherit Security SecurityFoundation; }; - ServiceManagement = { inherit Security; }; - Social = {}; - SpriteKit = {}; - StoreKit = {}; - SyncServices = {}; - System = {}; - SystemConfiguration = { inherit Security; }; - TWAIN = { inherit Carbon; }; - Tcl = {}; - VideoDecodeAcceleration = { inherit CoreVideo; }; - VideoToolbox = { inherit CoreMedia CoreVideo; }; - WebKit = { inherit libobjc ApplicationServices Carbon JavaScriptCore OpenGL; }; + CoreFoundation = { }; + CoreAudio = { + inherit IOKit; + }; + CoreAudioKit = { + inherit AudioUnit; + }; + CoreData = { }; + CoreGraphics = { + inherit + Accelerate + IOKit + IOSurface + SystemConfiguration + ; + }; + CoreImage = { }; + CoreLocation = { }; + CoreMIDI = { }; + CoreMIDIServer = { + inherit CoreMIDI; + }; + CoreMedia = { + inherit + ApplicationServices + AudioToolbox + AudioUnit + CoreAudio + CoreGraphics + CoreVideo + ; + }; + CoreMediaIO = { + inherit CoreMedia; + }; + CoreText = { + inherit CoreGraphics; + }; + CoreVideo = { + inherit + ApplicationServices + CoreGraphics + IOSurface + OpenGL + ; + }; + CoreWLAN = { + inherit SecurityFoundation; + }; + DVDPlayback = { }; + DirectoryService = { }; + DiscRecording = { + inherit libobjc CoreServices IOKit; + }; + DiscRecordingUI = { }; + DiskArbitration = { + inherit IOKit; + }; + EventKit = { }; + ExceptionHandling = { }; + FWAUserLib = { }; + ForceFeedback = { + inherit IOKit; + }; + Foundation = { + inherit + libobjc + CoreFoundation + Security + ApplicationServices + SystemConfiguration + ; + }; + GLKit = { }; + GLUT = { + inherit OpenGL; + }; + GSS = { }; + GameCenter = { }; + GameController = { }; + GameKit = { + inherit + Cocoa + Foundation + GameCenter + GameController + GameplayKit + Metal + MetalKit + ModelIO + SceneKit + SpriteKit + ; + }; + GameplayKit = { }; + Hypervisor = { }; + ICADevices = { + inherit libobjc Carbon IOBluetooth; + }; + IMServicePlugIn = { }; + IOBluetoothUI = { + inherit IOBluetooth; + }; + IOKit = { }; + IOSurface = { + inherit IOKit xpc; + }; + ImageCaptureCore = { }; + ImageIO = { + inherit CoreGraphics; + }; + InputMethodKit = { + inherit Carbon; + }; + InstallerPlugins = { }; + InstantMessage = { }; + JavaFrameEmbedding = { }; + JavaNativeFoundation = { }; + JavaRuntimeSupport = { }; + JavaScriptCore = { + inherit libobjc; + }; + Kerberos = { }; + Kernel = { + inherit IOKit; + }; + LDAP = { }; + LatentSemanticMapping = { + inherit Carbon; + }; + LocalAuthentication = { }; + MapKit = { }; + MediaAccessibility = { + inherit CoreGraphics CoreText QuartzCore; + }; + MediaPlayer = { }; + MediaToolbox = { + inherit AudioToolbox AudioUnit CoreMedia; + }; + Metal = { }; + MetalKit = { + inherit ModelIO Metal; + }; + ModelIO = { }; + NetFS = { }; + OSAKit = { + inherit Carbon; + }; + OpenAL = { }; + OpenCL = { + inherit IOSurface OpenGL; + }; + OpenGL = { }; + PCSC = { + inherit CoreData; + }; + PreferencePanes = { }; + PubSub = { }; + QTKit = { + inherit + CoreMediaIO + CoreMedia + MediaToolbox + QuickTime + VideoToolbox + ; + }; + QuickLook = { + inherit ApplicationServices; + }; + SceneKit = { }; + ScreenSaver = { }; + Scripting = { }; + ScriptingBridge = { }; + Security = { + inherit IOKit; + }; + SecurityFoundation = { }; + SecurityInterface = { + inherit Security SecurityFoundation; + }; + ServiceManagement = { + inherit Security; + }; + Social = { }; + SpriteKit = { }; + StoreKit = { }; + SyncServices = { }; + System = { }; + SystemConfiguration = { + inherit Security; + }; + TWAIN = { + inherit Carbon; + }; + Tcl = { }; + VideoDecodeAcceleration = { + inherit CoreVideo; + }; + VideoToolbox = { + inherit CoreMedia CoreVideo; + }; + WebKit = { + inherit + libobjc + ApplicationServices + Carbon + JavaScriptCore + OpenGL + ; + }; # Umbrellas - Accelerate = { inherit CoreWLAN IOBluetooth; }; - ApplicationServices = { inherit CoreGraphics CoreServices CoreText ImageIO; }; - Carbon = { inherit libobjc ApplicationServices CoreServices Foundation IOKit Security QuartzCore; }; - CoreBluetooth = {}; + Accelerate = { + inherit CoreWLAN IOBluetooth; + }; + ApplicationServices = { + inherit + CoreGraphics + CoreServices + CoreText + ImageIO + ; + }; + Carbon = { + inherit + libobjc + ApplicationServices + CoreServices + Foundation + IOKit + Security + QuartzCore + ; + }; + CoreBluetooth = { }; # TODO: figure out which part of the umbrella depends on CoreFoundation and move it there. - CoreServices = { inherit CFNetwork CoreFoundation CoreAudio CoreData DiskArbitration Security NetFS OpenDirectory ServiceManagement; }; - IOBluetooth = { inherit CoreBluetooth IOKit; }; - JavaVM = {}; - OpenDirectory = {}; - Quartz = { inherit QuartzCore QuickLook QTKit; }; - QuartzCore = { inherit libobjc ApplicationServices CoreVideo OpenCL CoreImage Metal; }; - QuickTime = { inherit ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore; }; + CoreServices = { + inherit + CFNetwork + CoreFoundation + CoreAudio + CoreData + DiskArbitration + Security + NetFS + OpenDirectory + ServiceManagement + ; + }; + IOBluetooth = { + inherit CoreBluetooth IOKit; + }; + JavaVM = { }; + OpenDirectory = { }; + Quartz = { + inherit QuartzCore QuickLook QTKit; + }; + QuartzCore = { + inherit + libobjc + ApplicationServices + CoreVideo + OpenCL + CoreImage + Metal + ; + }; + QuickTime = { + inherit + ApplicationServices + AudioUnit + Carbon + CoreAudio + CoreServices + OpenGL + QuartzCore + ; + }; - vmnet = {}; + vmnet = { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-sdk/impure-deps.nix b/pkgs/by-name/da/darwin/packages/apple-sdk/impure-deps.nix index c111492..d1fa5ba 100644 --- a/pkgs/by-name/da/darwin/packages/apple-sdk/impure-deps.nix +++ b/pkgs/by-name/da/darwin/packages/apple-sdk/impure-deps.nix @@ -4,40 +4,24 @@ rec { "/usr/lib/libsqlite3.dylib" "/usr/lib/libxml2.2.dylib" ]; - ForceFeedback = [ - "/System/Library/Frameworks/ForceFeedback.framework" - ]; - AGL = [ - "/System/Library/Frameworks/AGL.framework" - ]; - IOKit = [ - "/System/Library/Frameworks/IOKit.framework" - ]; - JavaScriptCore = [ - "/System/Library/Frameworks/JavaScriptCore.framework" - ]; - QuickLook = [ - "/System/Library/Frameworks/QuickLook.framework" - ]; + ForceFeedback = [ "/System/Library/Frameworks/ForceFeedback.framework" ]; + AGL = [ "/System/Library/Frameworks/AGL.framework" ]; + IOKit = [ "/System/Library/Frameworks/IOKit.framework" ]; + JavaScriptCore = [ "/System/Library/Frameworks/JavaScriptCore.framework" ]; + QuickLook = [ "/System/Library/Frameworks/QuickLook.framework" ]; Quartz = [ "/System/Library/Frameworks/Quartz.framework" "/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo" "/System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF" "/usr/lib/libspindump.dylib" ]; - ImageCaptureCore = [ - "/System/Library/Frameworks/ImageCaptureCore.framework" - ]; + ImageCaptureCore = [ "/System/Library/Frameworks/ImageCaptureCore.framework" ]; VideoToolbox = [ "/System/Library/Frameworks/VideoToolbox.framework" "/System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA" ]; - QuickTime = [ - "/System/Library/Frameworks/QuickTime.framework" - ]; - CoreMedia = [ - "/System/Library/Frameworks/CoreMedia.framework" - ]; + QuickTime = [ "/System/Library/Frameworks/QuickTime.framework" ]; + CoreMedia = [ "/System/Library/Frameworks/CoreMedia.framework" ]; CoreMediaIO = [ "/System/Library/Frameworks/CoreMediaIO.framework" "/System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox" @@ -60,12 +44,8 @@ rec { "/System/Library/Frameworks/OSAKit.framework" "/usr/lib/libexslt.0.dylib" ]; - WebKit = [ - "/System/Library/Frameworks/WebKit.framework" - ]; - DiskArbitration = [ - "/System/Library/Frameworks/DiskArbitration.framework" - ]; + WebKit = [ "/System/Library/Frameworks/WebKit.framework" ]; + DiskArbitration = [ "/System/Library/Frameworks/DiskArbitration.framework" ]; Security = [ "/System/Library/Frameworks/Security.framework" "/usr/lib/libbsm.0.dylib" @@ -75,12 +55,8 @@ rec { "/usr/lib/libxml2.2.dylib" "/usr/lib/libsqlite3.dylib" ]; - GSS = [ - "/System/Library/Frameworks/GSS.framework" - ]; - Kerberos = [ - "/System/Library/Frameworks/Kerberos.framework" - ]; + GSS = [ "/System/Library/Frameworks/GSS.framework" ]; + Kerberos = [ "/System/Library/Frameworks/Kerberos.framework" ]; CoreServices = [ "/System/Library/Frameworks/CoreServices.framework" "/System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore" @@ -91,39 +67,27 @@ rec { "/usr/lib/libiconv.2.dylib" "/usr/lib/libxslt.1.dylib" ] ++ Foundation; - IOSurface = [ - "/System/Library/Frameworks/IOSurface.framework" - ]; + IOSurface = [ "/System/Library/Frameworks/IOSurface.framework" ]; CoreGraphics = [ "/System/Library/Frameworks/CoreGraphics.framework" "/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport" "/usr/lib/libbsm.0.dylib" "/usr/lib/libz.1.dylib" ]; - CoreText = [ - "/System/Library/Frameworks/CoreText.framework" - ]; - ImageIO = [ - "/System/Library/Frameworks/ImageIO.framework" - ]; + CoreText = [ "/System/Library/Frameworks/CoreText.framework" ]; + ImageIO = [ "/System/Library/Frameworks/ImageIO.framework" ]; ApplicationServices = [ "/System/Library/Frameworks/ApplicationServices.framework" "/usr/lib/libcups.2.dylib" "/usr/lib/libresolv.9.dylib" ] ++ AudioToolbox; - OpenGL = [ - "/System/Library/Frameworks/OpenGL.framework" - ]; - CoreVideo = [ - "/System/Library/Frameworks/CoreVideo.framework" - ]; + OpenGL = [ "/System/Library/Frameworks/OpenGL.framework" ]; + CoreVideo = [ "/System/Library/Frameworks/CoreVideo.framework" ]; QuartzCore = [ "/System/Library/Frameworks/QuartzCore.framework" "/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport" ]; - PCSC = [ - "/System/Library/Frameworks/PCSC.framework" - ]; + PCSC = [ "/System/Library/Frameworks/PCSC.framework" ]; AppKit = [ "/System/Library/Frameworks/AppKit.framework" "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211" @@ -188,9 +152,7 @@ rec { "/usr/lib/liblangid.dylib" "/usr/lib/libCRFSuite.dylib" ]; - CoreData = [ - "/System/Library/Frameworks/CoreData.framework" - ]; + CoreData = [ "/System/Library/Frameworks/CoreData.framework" ]; Cocoa = [ "/System/Library/Frameworks/Cocoa.framework" "/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation" @@ -206,51 +168,23 @@ rec { "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211" "/System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage" ]; - CoreAudio = [ - "/System/Library/Frameworks/CoreAudio.framework" - ]; - AudioUnit = [ - "/System/Library/Frameworks/AudioUnit.framework" - ]; - CoreMIDI = [ - "/System/Library/Frameworks/CoreMIDI.framework" - ]; - AudioToolbox = [ - "/System/Library/Frameworks/AudioToolbox.framework" - ]; - SystemConfiguration = [ - "/System/Library/Frameworks/SystemConfiguration.framework" - ]; + CoreAudio = [ "/System/Library/Frameworks/CoreAudio.framework" ]; + AudioUnit = [ "/System/Library/Frameworks/AudioUnit.framework" ]; + CoreMIDI = [ "/System/Library/Frameworks/CoreMIDI.framework" ]; + AudioToolbox = [ "/System/Library/Frameworks/AudioToolbox.framework" ]; + SystemConfiguration = [ "/System/Library/Frameworks/SystemConfiguration.framework" ]; NetFS = [ "/System/Library/Frameworks/NetFS.framework" "/System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth" "/System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport" ]; - Accelerate = [ - "/System/Library/Frameworks/Accelerate.framework" - ]; - OpenDirectory = [ - "/System/Library/Frameworks/OpenDirectory.framework" - ]; - ServiceManagement = [ - "/System/Library/Frameworks/ServiceManagement.framework" - ]; - OpenCL = [ - "/System/Library/Frameworks/OpenCL.framework" - ]; - CoreWLAN = [ - "/System/Library/Frameworks/CoreWLAN.framework" - ]; - IOBluetooth = [ - "/System/Library/Frameworks/IOBluetooth.framework" - ] ++ AudioUnit ++ CoreBluetooth; - CoreBluetooth = [ - "/System/Library/Frameworks/CoreBluetooth.framework" - ]; - SecurityFoundation = [ - "/System/Library/Frameworks/SecurityFoundation.framework" - ]; - Kernel = [ - "/System/Library/Frameworks/Kernel.framework" - ]; + Accelerate = [ "/System/Library/Frameworks/Accelerate.framework" ]; + OpenDirectory = [ "/System/Library/Frameworks/OpenDirectory.framework" ]; + ServiceManagement = [ "/System/Library/Frameworks/ServiceManagement.framework" ]; + OpenCL = [ "/System/Library/Frameworks/OpenCL.framework" ]; + CoreWLAN = [ "/System/Library/Frameworks/CoreWLAN.framework" ]; + IOBluetooth = [ "/System/Library/Frameworks/IOBluetooth.framework" ] ++ AudioUnit ++ CoreBluetooth; + CoreBluetooth = [ "/System/Library/Frameworks/CoreBluetooth.framework" ]; + SecurityFoundation = [ "/System/Library/Frameworks/SecurityFoundation.framework" ]; + Kernel = [ "/System/Library/Frameworks/Kernel.framework" ]; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/CarbonHeaders/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/CarbonHeaders/default.nix index f3ef0e9..35ca7aa 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/CarbonHeaders/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/CarbonHeaders/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenvNoCC }: +{ + lib, + appleDerivation', + stdenvNoCC, +}: appleDerivation' stdenvNoCC { dontBuild = true; @@ -14,7 +18,7 @@ appleDerivation' stdenvNoCC { meta = with lib; { maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/CommonCrypto/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/CommonCrypto/default.nix index 32e1429..1298256 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/CommonCrypto/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/CommonCrypto/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenvNoCC }: +{ + lib, + appleDerivation', + stdenvNoCC, +}: appleDerivation' stdenvNoCC { installPhase = '' @@ -36,7 +40,7 @@ appleDerivation' stdenvNoCC { meta = with lib; { maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Csu/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Csu/default.nix index 8cb478d..f0edc0f 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Csu/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Csu/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenv }: +{ + lib, + appleDerivation', + stdenv, +}: appleDerivation' stdenv { @@ -23,7 +27,7 @@ appleDerivation' stdenv { meta = with lib; { description = "Apple's common startup stubs for darwin"; maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/ICU/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/ICU/default.nix index ed5e998..5e1393b 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/ICU/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/ICU/default.nix @@ -1,80 +1,95 @@ -{ appleDerivation, lib, stdenv, buildPackages, python3 }: +{ + appleDerivation, + lib, + stdenv, + buildPackages, + python3, +}: let - formatVersionNumeric = version: + formatVersionNumeric = + version: let versionParts = lib.versions.splitVersion version; major = lib.toInt (lib.elemAt versionParts 0); minor = lib.toInt (lib.elemAt versionParts 1); patch = if lib.length versionParts > 2 then lib.toInt (lib.elemAt versionParts 2) else 0; - in toString (major * 10000 + minor * 100 + patch); + in + toString (major * 10000 + minor * 100 + patch); in appleDerivation { nativeBuildInputs = [ python3 ]; - depsBuildBuild = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc ]; + depsBuildBuild = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + buildPackages.stdenv.cc + ]; - postPatch = '' - substituteInPlace makefile \ - --replace "/usr/bin/" "" \ - --replace "xcrun --sdk macosx --find" "echo -n" \ - --replace "xcrun --sdk macosx.internal --show-sdk-path" "echo -n /dev/null" \ - --replace "-install_name " "-install_name $out" + postPatch = + '' + substituteInPlace makefile \ + --replace "/usr/bin/" "" \ + --replace "xcrun --sdk macosx --find" "echo -n" \ + --replace "xcrun --sdk macosx.internal --show-sdk-path" "echo -n /dev/null" \ + --replace "-install_name " "-install_name $out" - substituteInPlace icuSources/config/mh-darwin \ - --replace "-install_name " "-install_name $out/" + substituteInPlace icuSources/config/mh-darwin \ + --replace "-install_name " "-install_name $out/" - # drop using impure /var/db/timezone/icutz - substituteInPlace makefile \ - --replace '-DU_TIMEZONE_FILES_DIR=\"\\\"$(TZDATA_LOOKUP_DIR)\\\"\" -DU_TIMEZONE_PACKAGE=\"\\\"$(TZDATA_PACKAGE)\\\"\"' "" + # drop using impure /var/db/timezone/icutz + substituteInPlace makefile \ + --replace '-DU_TIMEZONE_FILES_DIR=\"\\\"$(TZDATA_LOOKUP_DIR)\\\"\" -DU_TIMEZONE_PACKAGE=\"\\\"$(TZDATA_PACKAGE)\\\"\"' "" - # FIXME: This will cause `ld: warning: OS version (12.0) too small, changing to 13.0.0`, APPLE should fix it. - substituteInPlace makefile \ - --replace "ZIPPERING_LDFLAGS=-Wl,-iosmac_version_min,12.0" "ZIPPERING_LDFLAGS=" + # FIXME: This will cause `ld: warning: OS version (12.0) too small, changing to 13.0.0`, APPLE should fix it. + substituteInPlace makefile \ + --replace "ZIPPERING_LDFLAGS=-Wl,-iosmac_version_min,12.0" "ZIPPERING_LDFLAGS=" - # skip test for missing encodingSamples data - substituteInPlace icuSources/test/cintltst/ucsdetst.c \ - --replace "&TestMailFilterCSS" "NULL" + # skip test for missing encodingSamples data + substituteInPlace icuSources/test/cintltst/ucsdetst.c \ + --replace "&TestMailFilterCSS" "NULL" - patchShebangs icuSources - '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + patchShebangs icuSources + '' + + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - # This looks like a bug in the makefile. It defines ENV_BUILDHOST to - # propagate the correct value of CC, CXX, etc, but has the following double - # expansion that results in the empty string. - substituteInPlace makefile \ - --replace '$($(ENV_BUILDHOST))' '$(ENV_BUILDHOST)' - ''; + # This looks like a bug in the makefile. It defines ENV_BUILDHOST to + # propagate the correct value of CC, CXX, etc, but has the following double + # expansion that results in the empty string. + substituteInPlace makefile \ + --replace '$($(ENV_BUILDHOST))' '$(ENV_BUILDHOST)' + ''; # APPLE is using makefile to save its default configuration and call ./configure, so we hack makeFlags # instead of configuring ourself, trying to stay abreast of APPLE. dontConfigure = true; - makeFlags = [ - "DSTROOT=$(out)" + makeFlags = + [ + "DSTROOT=$(out)" - # remove /usr prefix on include and lib - "PRIVATE_HDR_PREFIX=" - "libdir=/lib/" + # remove /usr prefix on include and lib + "PRIVATE_HDR_PREFIX=" + "libdir=/lib/" - "DATA_INSTALL_DIR=/share/icu/" - "DATA_LOOKUP_DIR=$(DSTROOT)$(DATA_INSTALL_DIR)" - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # darwin* platform properties are only defined on darwin - # hack to use our lower macos version - "MAC_OS_X_VERSION_MIN_REQUIRED=${formatVersionNumeric stdenv.hostPlatform.darwinMinVersion}" - "ICU_TARGET_VERSION=-m${stdenv.hostPlatform.darwinPlatform}-version-min=${stdenv.hostPlatform.darwinMinVersion}" - ] - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "CROSS_BUILD=YES" - "BUILD_TYPE=" - "RC_ARCHS=${stdenv.hostPlatform.darwinArch}" - "HOSTCC=cc" - "HOSTCXX=c++" - "CC=${stdenv.cc.targetPrefix}cc" - "CXX=${stdenv.cc.targetPrefix}c++" - "HOSTISYSROOT=" - "OSX_HOST_VERSION_MIN_STRING=${stdenv.buildPlatform.darwinMinVersion}" - ]; + "DATA_INSTALL_DIR=/share/icu/" + "DATA_LOOKUP_DIR=$(DSTROOT)$(DATA_INSTALL_DIR)" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # darwin* platform properties are only defined on darwin + # hack to use our lower macos version + "MAC_OS_X_VERSION_MIN_REQUIRED=${formatVersionNumeric stdenv.hostPlatform.darwinMinVersion}" + "ICU_TARGET_VERSION=-m${stdenv.hostPlatform.darwinPlatform}-version-min=${stdenv.hostPlatform.darwinMinVersion}" + ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "CROSS_BUILD=YES" + "BUILD_TYPE=" + "RC_ARCHS=${stdenv.hostPlatform.darwinArch}" + "HOSTCC=cc" + "HOSTCXX=c++" + "CC=${stdenv.cc.targetPrefix}cc" + "CXX=${stdenv.cc.targetPrefix}c++" + "HOSTISYSROOT=" + "OSX_HOST_VERSION_MIN_STRING=${stdenv.buildPlatform.darwinMinVersion}" + ]; doCheck = true; checkTarget = "check"; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/IOKit/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/IOKit/default.nix index 3943e2b..bff972b 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/IOKit/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/IOKit/default.nix @@ -1,4 +1,11 @@ -{ lib, appleDerivation', stdenv, IOKitSrcs, xnu, darwin-stubs }: +{ + lib, + appleDerivation', + stdenv, + IOKitSrcs, + xnu, + darwin-stubs, +}: # Someday it'll make sense to split these out into their own packages, but today is not that day. appleDerivation' stdenv { @@ -182,7 +189,7 @@ appleDerivation' stdenv { meta = with lib; { maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/default.nix index 6ff3cec..e6a8f26 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libc/default.nix @@ -1,12 +1,19 @@ -{ appleDerivation', stdenvNoCC, ed, unifdef, Libc_10-9 }: +{ + appleDerivation', + stdenvNoCC, + ed, + unifdef, + Libc_10-9, +}: appleDerivation' stdenvNoCC { - nativeBuildInputs = [ ed unifdef ]; - - patches = [ - ./0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch + nativeBuildInputs = [ + ed + unifdef ]; + patches = [ ./0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch ]; + installPhase = '' export SRCROOT=$PWD export DSTROOT=$out diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Librpcsvc/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Librpcsvc/default.nix index 3c71531..440186b 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Librpcsvc/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Librpcsvc/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation, developer_cmds }: +{ + lib, + appleDerivation, + developer_cmds, +}: appleDerivation { buildInputs = [ developer_cmds ]; @@ -16,7 +20,7 @@ appleDerivation { meta = with lib; { maintainers = with maintainers; [ matthewbauer ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/default.nix index 87fb851..0f58eb4 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Libsystem/default.nix @@ -1,10 +1,37 @@ -{ lib, stdenv, buildPackages, fetchzip, fetchFromGitHub -, appleDerivation', xnu, Libc, Libm, libdispatch, Libinfo -, dyld, Csu, architecture, libclosure, CarbonHeaders, ncurses, CommonCrypto -, copyfile, removefile, libresolvHeaders, libresolv, Libnotify, libmalloc, libplatform, libpthread -, mDNSResponder, launchd, libutilHeaders, hfsHeaders, darwin-stubs -, headersOnly ? false -, withLibresolv ? !headersOnly +{ + lib, + stdenv, + buildPackages, + fetchzip, + fetchFromGitHub, + appleDerivation', + xnu, + Libc, + Libm, + libdispatch, + Libinfo, + dyld, + Csu, + architecture, + libclosure, + CarbonHeaders, + ncurses, + CommonCrypto, + copyfile, + removefile, + libresolvHeaders, + libresolv, + Libnotify, + libmalloc, + libplatform, + libpthread, + mDNSResponder, + launchd, + libutilHeaders, + hfsHeaders, + darwin-stubs, + headersOnly ? false, + withLibresolv ? !headersOnly, }: let @@ -33,143 +60,149 @@ appleDerivation' stdenv { dontBuild = true; dontFixup = true; - installPhase = '' - export NIX_ENFORCE_PURITY= + installPhase = + '' + export NIX_ENFORCE_PURITY= - mkdir -p $out/lib $out/include + mkdir -p $out/lib $out/include - function copyHierarchy () { - mkdir -p $1 - while read f; do - mkdir -p $1/$(dirname $f) - cp --parents -pn $f $1 + function copyHierarchy () { + mkdir -p $1 + while read f; do + mkdir -p $1/$(dirname $f) + cp --parents -pn $f $1 + done + } + + # Set up our include directories + (cd ${xnu}/include && find . -name '*.h' -or -name '*.defs' | copyHierarchy $out/include) + cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/Availability*.h $out/include + cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h $out/include + + for dep in ${Libc} ${Libm} ${Libinfo} ${dyld} ${architecture} \ + ${libclosure} ${CarbonHeaders} ${libdispatch} ${ncurses.dev} \ + ${CommonCrypto} ${copyfile} ${removefile} ${libresolvHeaders} \ + ${Libnotify} ${libplatform} ${mDNSResponder} ${launchd} \ + ${libutilHeaders} ${libmalloc} ${libpthread} ${hfsHeaders}; do + (cd $dep/include && find . -name '*.h' | copyHierarchy $out/include) done - } - # Set up our include directories - (cd ${xnu}/include && find . -name '*.h' -or -name '*.defs' | copyHierarchy $out/include) - cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/Availability*.h $out/include - cp ${xnu}/Library/Frameworks/Kernel.framework/Versions/A/Headers/stdarg.h $out/include + (cd ${buildPackages.darwin.cctools.dev}/include/mach-o && find . -name '*.h' | copyHierarchy $out/include/mach-o) - for dep in ${Libc} ${Libm} ${Libinfo} ${dyld} ${architecture} \ - ${libclosure} ${CarbonHeaders} ${libdispatch} ${ncurses.dev} \ - ${CommonCrypto} ${copyfile} ${removefile} ${libresolvHeaders} \ - ${Libnotify} ${libplatform} ${mDNSResponder} ${launchd} \ - ${libutilHeaders} ${libmalloc} ${libpthread} ${hfsHeaders}; do - (cd $dep/include && find . -name '*.h' | copyHierarchy $out/include) - done + for header in pthread.h pthread_impl.h pthread_spis.h sched.h; do + ln -s "$out/include/pthread/$header" "$out/include/$header" + done - (cd ${buildPackages.darwin.cctools.dev}/include/mach-o && find . -name '*.h' | copyHierarchy $out/include/mach-o) + # Copy `asl.h` from the syslog sources since it is no longer provided as part of Libc. + cp ${syslog.src}/libsystem_asl.tproj/include/asl.h $out/include - for header in pthread.h pthread_impl.h pthread_spis.h sched.h; do - ln -s "$out/include/pthread/$header" "$out/include/$header" - done + mkdir -p $out/include/os - # Copy `asl.h` from the syslog sources since it is no longer provided as part of Libc. - cp ${syslog.src}/libsystem_asl.tproj/include/asl.h $out/include + cp ${darling.src}/src/libc/os/activity.h $out/include/os + cp ${darling.src}/src/libc/os/log.h $out/include/os + cp ${darling.src}/src/duct/include/os/trace.h $out/include/os - mkdir -p $out/include/os + cat < $out/include/os/availability.h + #ifndef __OS_AVAILABILITY__ + #define __OS_AVAILABILITY__ + #include - cp ${darling.src}/src/libc/os/activity.h $out/include/os - cp ${darling.src}/src/libc/os/log.h $out/include/os - cp ${darling.src}/src/duct/include/os/trace.h $out/include/os + #if defined(__has_feature) && defined(__has_attribute) && __has_attribute(availability) + #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1)(__VA_ARGS__) + #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_MSG5, __API_DEPRECATED_MSG4, __API_DEPRECATED_MSG3, __API_DEPRECATED_MSG2, __API_DEPRECATED_MSG1)(__VA_ARGS__) + #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_REP5, __API_DEPRECATED_REP4, __API_DEPRECATED_REP3, __API_DEPRECATED_REP2, __API_DEPRECATED_REP1)(__VA_ARGS__) + #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__, __API_UNAVAILABLE3, __API_UNAVAILABLE2, __API_UNAVAILABLE1)(__VA_ARGS__) + #else - cat < $out/include/os/availability.h - #ifndef __OS_AVAILABILITY__ - #define __OS_AVAILABILITY__ - #include + #define API_AVAILABLE(...) + #define API_DEPRECATED(...) + #define API_DEPRECATED_WITH_REPLACEMENT(...) + #define API_UNAVAILABLE(...) - #if defined(__has_feature) && defined(__has_attribute) && __has_attribute(availability) - #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1)(__VA_ARGS__) - #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_MSG5, __API_DEPRECATED_MSG4, __API_DEPRECATED_MSG3, __API_DEPRECATED_MSG2, __API_DEPRECATED_MSG1)(__VA_ARGS__) - #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__, __API_DEPRECATED_REP5, __API_DEPRECATED_REP4, __API_DEPRECATED_REP3, __API_DEPRECATED_REP2, __API_DEPRECATED_REP1)(__VA_ARGS__) - #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__, __API_UNAVAILABLE3, __API_UNAVAILABLE2, __API_UNAVAILABLE1)(__VA_ARGS__) - #else + #endif + #endif + EOF - #define API_AVAILABLE(...) - #define API_DEPRECATED(...) - #define API_DEPRECATED_WITH_REPLACEMENT(...) - #define API_UNAVAILABLE(...) + cat < $out/include/TargetConditionals.h + #ifndef __TARGETCONDITIONALS__ + #define __TARGETCONDITIONALS__ + #define TARGET_OS_MAC 1 + #define TARGET_OS_WIN32 0 + #define TARGET_OS_UNIX 0 + #define TARGET_OS_OSX 1 + #define TARGET_OS_IPHONE 0 + #define TARGET_OS_IOS 0 + #define TARGET_OS_WATCH 0 + #define TARGET_OS_BRIDGE 0 + #define TARGET_OS_TV 0 + #define TARGET_OS_SIMULATOR 0 + #define TARGET_OS_EMBEDDED 0 + #define TARGET_OS_EMBEDDED_OTHER 0 /* Used in configd */ + #define TARGET_IPHONE_SIMULATOR TARGET_OS_SIMULATOR /* deprecated */ + #define TARGET_OS_NANO TARGET_OS_WATCH /* deprecated */ + #define TARGET_OS_LINUX 0 - #endif - #endif - EOF + #define TARGET_CPU_PPC 0 + #define TARGET_CPU_PPC64 0 + #define TARGET_CPU_68K 0 + #define TARGET_CPU_X86 0 + #define TARGET_CPU_X86_64 1 + #define TARGET_CPU_ARM 0 + #define TARGET_CPU_ARM64 0 + #define TARGET_CPU_MIPS 0 + #define TARGET_CPU_SPARC 0 + #define TARGET_CPU_ALPHA 0 + #define TARGET_RT_MAC_CFM 0 + #define TARGET_RT_MAC_MACHO 1 + #define TARGET_RT_LITTLE_ENDIAN 1 + #define TARGET_RT_BIG_ENDIAN 0 + #define TARGET_RT_64_BIT 1 + #endif /* __TARGETCONDITIONALS__ */ + EOF + '' + + lib.optionalString (!headersOnly) '' - cat < $out/include/TargetConditionals.h - #ifndef __TARGETCONDITIONALS__ - #define __TARGETCONDITIONALS__ - #define TARGET_OS_MAC 1 - #define TARGET_OS_WIN32 0 - #define TARGET_OS_UNIX 0 - #define TARGET_OS_OSX 1 - #define TARGET_OS_IPHONE 0 - #define TARGET_OS_IOS 0 - #define TARGET_OS_WATCH 0 - #define TARGET_OS_BRIDGE 0 - #define TARGET_OS_TV 0 - #define TARGET_OS_SIMULATOR 0 - #define TARGET_OS_EMBEDDED 0 - #define TARGET_OS_EMBEDDED_OTHER 0 /* Used in configd */ - #define TARGET_IPHONE_SIMULATOR TARGET_OS_SIMULATOR /* deprecated */ - #define TARGET_OS_NANO TARGET_OS_WATCH /* deprecated */ - #define TARGET_OS_LINUX 0 + # The startup object files + cp ${Csu}/lib/* $out/lib - #define TARGET_CPU_PPC 0 - #define TARGET_CPU_PPC64 0 - #define TARGET_CPU_68K 0 - #define TARGET_CPU_X86 0 - #define TARGET_CPU_X86_64 1 - #define TARGET_CPU_ARM 0 - #define TARGET_CPU_ARM64 0 - #define TARGET_CPU_MIPS 0 - #define TARGET_CPU_SPARC 0 - #define TARGET_CPU_ALPHA 0 - #define TARGET_RT_MAC_CFM 0 - #define TARGET_RT_MAC_MACHO 1 - #define TARGET_RT_LITTLE_ENDIAN 1 - #define TARGET_RT_BIG_ENDIAN 0 - #define TARGET_RT_64_BIT 1 - #endif /* __TARGETCONDITIONALS__ */ - EOF - '' + lib.optionalString (!headersOnly) '' + cp -vr \ + ${darwin-stubs}/usr/lib/libSystem.B.tbd \ + ${darwin-stubs}/usr/lib/system \ + $out/lib - # The startup object files - cp ${Csu}/lib/* $out/lib + substituteInPlace $out/lib/libSystem.B.tbd \ + --replace "/usr/lib/system/" "$out/lib/system/" + ln -s libSystem.B.tbd $out/lib/libSystem.tbd - cp -vr \ - ${darwin-stubs}/usr/lib/libSystem.B.tbd \ - ${darwin-stubs}/usr/lib/system \ - $out/lib + # Set up links to pretend we work like a conventional unix (Apple's design, not mine!) + for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do + ln -s libSystem.tbd $out/lib/lib$name.tbd + done + '' + + lib.optionalString withLibresolv '' - substituteInPlace $out/lib/libSystem.B.tbd \ - --replace "/usr/lib/system/" "$out/lib/system/" - ln -s libSystem.B.tbd $out/lib/libSystem.tbd + # This probably doesn't belong here, but we want to stay similar to glibc, which includes resolv internally... + cp ${libresolv}/lib/libresolv.9.dylib $out/lib/libresolv.9.dylib + resolv_libSystem=$(${stdenv.cc.bintools.targetPrefix}otool -L "$out/lib/libresolv.9.dylib" | tail -n +3 | grep -o "$NIX_STORE.*-\S*") || true + echo $libs - # Set up links to pretend we work like a conventional unix (Apple's design, not mine!) - for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do - ln -s libSystem.tbd $out/lib/lib$name.tbd - done - '' + lib.optionalString withLibresolv '' - - # This probably doesn't belong here, but we want to stay similar to glibc, which includes resolv internally... - cp ${libresolv}/lib/libresolv.9.dylib $out/lib/libresolv.9.dylib - resolv_libSystem=$(${stdenv.cc.bintools.targetPrefix}otool -L "$out/lib/libresolv.9.dylib" | tail -n +3 | grep -o "$NIX_STORE.*-\S*") || true - echo $libs - - chmod +w $out/lib/libresolv.9.dylib - ${stdenv.cc.bintools.targetPrefix}install_name_tool \ - -id $out/lib/libresolv.9.dylib \ - -change "$resolv_libSystem" /usr/lib/libSystem.dylib \ - $out/lib/libresolv.9.dylib - ln -s libresolv.9.dylib $out/lib/libresolv.dylib - ''; + chmod +w $out/lib/libresolv.9.dylib + ${stdenv.cc.bintools.targetPrefix}install_name_tool \ + -id $out/lib/libresolv.9.dylib \ + -change "$resolv_libSystem" /usr/lib/libSystem.dylib \ + $out/lib/libresolv.9.dylib + ln -s libresolv.9.dylib $out/lib/libresolv.dylib + ''; appleHeaders = builtins.readFile ./headers.txt; meta = with lib; { description = "The Mac OS libc/libSystem (tapi library with pure headers)"; - maintainers = with maintainers; [ copumpkin gridaphobe ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + maintainers = with maintainers; [ + copumpkin + gridaphobe + ]; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/PowerManagement/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/PowerManagement/default.nix index 5685d09..a3ad27b 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/PowerManagement/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/PowerManagement/default.nix @@ -1,9 +1,16 @@ -{ appleDerivation, xcbuildHook, IOKit }: +{ + appleDerivation, + xcbuildHook, + IOKit, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; buildInputs = [ IOKit ]; - xcbuildFlags = [ "-target" "caffeinate" ]; + xcbuildFlags = [ + "-target" + "caffeinate" + ]; installPhase = '' install -D Products/Deployment/caffeinate $out/bin/caffeinate ''; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/boot.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/boot.nix index f4fe65b..26106f3 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/boot.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/boot.nix @@ -1,4 +1,8 @@ -{ appleDerivation', stdenv, darwin-stubs }: +{ + appleDerivation', + stdenv, + darwin-stubs, +}: appleDerivation' stdenv { __propagatedImpureHostDeps = [ diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/default.nix index 984910b..65786b9 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/Security/default.nix @@ -1,11 +1,26 @@ -{ appleDerivation, xcbuildHook, xpc, dtrace, xnu }: +{ + appleDerivation, + xcbuildHook, + xpc, + dtrace, + xnu, +}: appleDerivation { - nativeBuildInputs = [ xcbuildHook dtrace ]; + nativeBuildInputs = [ + xcbuildHook + dtrace + ]; # buildInputs = [ Foundation xpc darling ]; - buildInputs = [ xpc xnu ]; + buildInputs = [ + xpc + xnu + ]; - xcbuildFlags = [ "-target" "Security_frameworks_osx" ]; + xcbuildFlags = [ + "-target" + "Security_frameworks_osx" + ]; # env.NIX_CFLAGS_COMPILE = "-Wno-error -I${xnu}/include/libkern -DPRIVATE -I${xnu}/Library/Frameworks/System.framework/Headers"; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/boot.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/boot.nix index 7d1066a..7bace34 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/boot.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/boot.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, buildPackages, appleDerivation, fetchFromGitHub, bsdmake, perl, flex, bison +{ + lib, + stdenv, + buildPackages, + appleDerivation, + fetchFromGitHub, + bsdmake, + perl, + flex, + bison, }: # this derivation sucks @@ -10,16 +19,23 @@ # # the more recent adv_cmds release is used for everything else in this package -let recentAdvCmds = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "adv_cmds"; - rev = "adv_cmds-158"; - hash = "sha256-1qL69pGHIaefooJJ8eT83XGz9+bW7Yg3k+X9fNkMCHw="; -}; +let + recentAdvCmds = fetchFromGitHub { + owner = "apple-oss-distributions"; + repo = "adv_cmds"; + rev = "adv_cmds-158"; + hash = "sha256-1qL69pGHIaefooJJ8eT83XGz9+bW7Yg3k+X9fNkMCHw="; + }; -in appleDerivation { +in +appleDerivation { depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bsdmake perl bison flex ]; + nativeBuildInputs = [ + bsdmake + perl + bison + flex + ]; buildInputs = [ flex ]; patchPhase = '' diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/default.nix index 3ac338d..5cdf182 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/adv_cmds/default.nix @@ -1,4 +1,12 @@ -{ stdenv, lib, appleDerivation, xcbuild, ncurses, libutil, Libc }: +{ + stdenv, + lib, + appleDerivation, + xcbuild, + ncurses, + libutil, + Libc, +}: let # Libc conflicts with libc++ 16, so provide only the header from it that’s needed to build. @@ -56,7 +64,11 @@ appleDerivation { ''; nativeBuildInputs = [ xcbuild ]; - buildInputs = [ ncurses libutil msgcat ]; + buildInputs = [ + ncurses + libutil + msgcat + ]; meta = { platforms = lib.platforms.darwin; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/architecture/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/architecture/default.nix index 86f58b6..400fcfa 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/architecture/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/architecture/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenvNoCC }: +{ + lib, + appleDerivation', + stdenvNoCC, +}: appleDerivation' stdenvNoCC { dontBuild = true; @@ -33,7 +37,7 @@ appleDerivation' stdenvNoCC { meta = with lib; { maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/basic_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/basic_cmds/default.nix index 7d011d2..ff1fd79 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/basic_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/basic_cmds/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation, xcbuildHook }: +{ + lib, + appleDerivation, + xcbuildHook, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/bootstrap_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/bootstrap_cmds/default.nix index ff98ed8..4a2772f 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/bootstrap_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/bootstrap_cmds/default.nix @@ -1,16 +1,25 @@ -{ lib, appleDerivation, stdenv, bison, flex }: +{ + lib, + appleDerivation, + stdenv, + bison, + flex, +}: let # Hard to get CC to pull this off without infinite recursion - targetTargetPrefix = lib.optionalString - (with stdenv; hostPlatform != targetPlatform) - (stdenv.targetPlatform.config + "-"); + targetTargetPrefix = lib.optionalString (with stdenv; hostPlatform != targetPlatform) ( + stdenv.targetPlatform.config + "-" + ); in appleDerivation { - nativeBuildInputs = [ bison flex ]; + nativeBuildInputs = [ + bison + flex + ]; buildPhase = '' cd migcom.tproj diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/bsdmake/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/bsdmake/default.nix index 214aa5d..addc520 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/bsdmake/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/bsdmake/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation, makeWrapper }: +{ + lib, + appleDerivation, + makeWrapper, +}: appleDerivation { nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/configd/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/configd/default.nix index 998bc86..cd0fc67 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/configd/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/configd/default.nix @@ -1,5 +1,19 @@ -{ lib, stdenv, runCommand, appleDerivation', launchd, bootstrap_cmds, swift-corelibs-foundation, xnu, xpc, ppp, IOKit, eap8021x, Security -, headersOnly ? false }: +{ + lib, + stdenv, + runCommand, + appleDerivation', + launchd, + bootstrap_cmds, + swift-corelibs-foundation, + xnu, + xpc, + ppp, + IOKit, + eap8021x, + Security, + headersOnly ? false, +}: let privateHeaders = runCommand "swift-corelibs-foundation-private" { } '' @@ -13,7 +27,14 @@ appleDerivation' stdenv { meta.broken = stdenv.cc.nativeLibc; nativeBuildInputs = lib.optionals (!headersOnly) [ bootstrap_cmds ]; - buildInputs = lib.optionals (!headersOnly) [ privateHeaders launchd ppp xpc IOKit eap8021x ]; + buildInputs = lib.optionals (!headersOnly) [ + privateHeaders + launchd + ppp + xpc + IOKit + eap8021x + ]; propagatedBuildInputs = lib.optionals (!headersOnly) [ Security ]; @@ -174,11 +195,13 @@ appleDerivation' stdenv { popd >/dev/null ''; - installPhase = '' - mkdir -p $out/include - cp dnsinfo/*.h $out/include/ - '' + lib.optionalString (!headersOnly) '' - mkdir -p $out/Library/Frameworks/ - mv SystemConfiguration.fproj/SystemConfiguration.framework $out/Library/Frameworks - ''; + installPhase = + '' + mkdir -p $out/include + cp dnsinfo/*.h $out/include/ + '' + + lib.optionalString (!headersOnly) '' + mkdir -p $out/Library/Frameworks/ + mv SystemConfiguration.fproj/SystemConfiguration.framework $out/Library/Frameworks + ''; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/default.nix index 1bd574f..9b26a5d 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, fetchFromGitHub, pkgs }: +{ + lib, + stdenv, + fetchurl, + fetchFromGitHub, + pkgs, +}: let # This attrset can in theory be computed automatically, but for that to work nicely we need @@ -7,116 +13,116 @@ let # now it's staying here. versions = { "macos-14.3" = { - system_cmds = "970.0.4"; + system_cmds = "970.0.4"; }; "osx-10.12.6" = { - xnu = "3789.70.16"; - libiconv = "50"; - Libnotify = "165.20.1"; - objc4 = "709.1"; - dyld = "433.5"; - CommonCrypto = "60092.50.5"; - copyfile = "138"; - ppp = "838.50.1"; - libclosure = "67"; - Libinfo = "503.50.4"; - Libsystem = "1238.60.2"; - removefile = "45"; - libmalloc = "116.50.8"; - libresolv = "64"; - libplatform = "126.50.8"; + xnu = "3789.70.16"; + libiconv = "50"; + Libnotify = "165.20.1"; + objc4 = "709.1"; + dyld = "433.5"; + CommonCrypto = "60092.50.5"; + copyfile = "138"; + ppp = "838.50.1"; + libclosure = "67"; + Libinfo = "503.50.4"; + Libsystem = "1238.60.2"; + removefile = "45"; + libmalloc = "116.50.8"; + libresolv = "64"; + libplatform = "126.50.8"; mDNSResponder = "765.50.9"; - libutil = "47.30.1"; - libunwind = "35.3"; - Libc = "1158.50.2"; - dtrace = "209.50.12"; - libpthread = "218.60.3"; - hfs = "366.70.1"; + libutil = "47.30.1"; + libunwind = "35.3"; + Libc = "1158.50.2"; + dtrace = "209.50.12"; + libpthread = "218.60.3"; + hfs = "366.70.1"; }; "osx-10.11.6" = { PowerManagement = "572.50.1"; - dtrace = "168"; - xnu = "3248.60.10"; - libpthread = "138.10.4"; - libiconv = "44"; - Libnotify = "150.40.1"; - objc4 = "680"; - eap8021x = "222.40.1"; - dyld = "360.22"; - architecture = "268"; - CommonCrypto = "60075.50.1"; - copyfile = "127"; - Csu = "85"; - ppp = "809.50.2"; - libclosure = "65"; - Libinfo = "477.50.4"; - Libsystem = "1226.10.1"; - removefile = "41"; - libresolv = "60"; + dtrace = "168"; + xnu = "3248.60.10"; + libpthread = "138.10.4"; + libiconv = "44"; + Libnotify = "150.40.1"; + objc4 = "680"; + eap8021x = "222.40.1"; + dyld = "360.22"; + architecture = "268"; + CommonCrypto = "60075.50.1"; + copyfile = "127"; + Csu = "85"; + ppp = "809.50.2"; + libclosure = "65"; + Libinfo = "477.50.4"; + Libsystem = "1226.10.1"; + removefile = "41"; + libresolv = "60"; # Their release page is a bit of a mess here, so I'm going to lie a bit and say this version # is the right one, even though it isn't. The version I have here doesn't appear to be linked # to any OS releases, but Apple also doesn't mention mDNSResponder from 10.11 to 10.11.6, and # neither of those versions are publicly available. - libplatform = "125"; + libplatform = "125"; mDNSResponder = "625.41.2"; # IOKit contains a set of packages with different versions, so we don't have a general version - IOKit = ""; + IOKit = ""; - libutil = "43"; - libunwind = "35.3"; - Librpcsvc = "26"; - developer_cmds= "62"; - network_cmds = "481.20.1"; - basic_cmds = "55"; - adv_cmds = "163"; - file_cmds = "264.1.1"; - shell_cmds = "187"; - system_cmds = "550.6"; - diskdev_cmds = "593"; - top = "108"; - text_cmds = "99"; + libutil = "43"; + libunwind = "35.3"; + Librpcsvc = "26"; + developer_cmds = "62"; + network_cmds = "481.20.1"; + basic_cmds = "55"; + adv_cmds = "163"; + file_cmds = "264.1.1"; + shell_cmds = "187"; + system_cmds = "550.6"; + diskdev_cmds = "593"; + top = "108"; + text_cmds = "99"; }; "osx-10.11.5" = { - Libc = "1082.50.1"; # 10.11.6 still unreleased :/ + Libc = "1082.50.1"; # 10.11.6 still unreleased :/ }; "osx-10.10.5" = { - adv_cmds = "158"; - CF = "1153.18"; - ICU = "531.48"; - libdispatch = "442.1.4"; - Security = "57031.40.6"; + adv_cmds = "158"; + CF = "1153.18"; + ICU = "531.48"; + libdispatch = "442.1.4"; + Security = "57031.40.6"; - IOAudioFamily = "203.3"; - IOFireWireFamily = "458"; - IOFWDVComponents = "207.4.1"; - IOFireWireAVC = "423"; - IOFireWireSBP2 = "427"; + IOAudioFamily = "203.3"; + IOFireWireFamily = "458"; + IOFWDVComponents = "207.4.1"; + IOFireWireAVC = "423"; + IOFireWireSBP2 = "427"; IOFireWireSerialBusProtocolTransport = "251.0.1"; - IOGraphics = "485.40.1"; - IOHIDFamily = "606.40.1"; - IONetworkingFamily = "101"; - IOSerialFamily = "74.20.1"; - IOStorageFamily = "182.1.1"; - IOBDStorageFamily = "14"; - IOCDStorageFamily = "51"; - IODVDStorageFamily = "35"; - IOKitUser = "1050.20.2"; + IOGraphics = "485.40.1"; + IOHIDFamily = "606.40.1"; + IONetworkingFamily = "101"; + IOSerialFamily = "74.20.1"; + IOStorageFamily = "182.1.1"; + IOBDStorageFamily = "14"; + IOCDStorageFamily = "51"; + IODVDStorageFamily = "35"; + IOKitUser = "1050.20.2"; }; "osx-10.9.5" = { - launchd = "842.92.1"; - libauto = "185.5"; - Libc = "997.90.3"; # We use this, but not from here - Libsystem = "1197.1.1"; - Security = "55471.14.18"; + launchd = "842.92.1"; + libauto = "185.5"; + Libc = "997.90.3"; # We use this, but not from here + Libsystem = "1197.1.1"; + Security = "55471.14.18"; security_dotmac_tp = "55107.1"; IOStorageFamily = "172"; }; "osx-10.8.5" = { - configd = "453.19"; - Libc = "825.40.1"; + configd = "453.19"; + Libc = "825.40.1"; IOUSBFamily = "630.4.5"; }; "osx-10.8.4" = { @@ -142,78 +148,95 @@ let }; }; - fetchApple' = pname: version: sha256: let - # When cross-compiling, fetchurl depends on libiconv, resulting - # in an infinite recursion without this. It's not clear why this - # worked fine when not cross-compiling - fetch = if pname == "libiconv" - then stdenv.fetchurlBoot - else fetchurl; - in fetch { - url = "https://github.com/apple-oss-distributions/${pname}/archive/refs/tags/${pname}-${version}.tar.gz"; - inherit sha256; - }; + fetchApple' = + pname: version: sha256: + let + # When cross-compiling, fetchurl depends on libiconv, resulting + # in an infinite recursion without this. It's not clear why this + # worked fine when not cross-compiling + fetch = if pname == "libiconv" then stdenv.fetchurlBoot else fetchurl; + in + fetch { + url = "https://github.com/apple-oss-distributions/${pname}/archive/refs/tags/${pname}-${version}.tar.gz"; + inherit sha256; + }; - fetchApple = sdkName: sha256: pname: let - version = versions.${sdkName}.${pname}; - in fetchApple' pname version sha256; + fetchApple = + sdkName: sha256: pname: + let + version = versions.${sdkName}.${pname}; + in + fetchApple' pname version sha256; - appleDerivation'' = stdenv: pname: version: sdkName: sha256: attrs: stdenv.mkDerivation (finalAttrs: { - inherit pname version; + appleDerivation'' = + stdenv: pname: version: sdkName: sha256: attrs: + stdenv.mkDerivation ( + finalAttrs: + { + inherit pname version; - src = if attrs ? srcs then null else (fetchApple' pname version sha256); + src = if attrs ? srcs then null else (fetchApple' pname version sha256); - enableParallelBuilding = true; + enableParallelBuilding = true; - # In rare cases, APPLE may drop some headers quietly on new release. - doInstallCheck = attrs ? appleHeaders; - passAsFile = [ "appleHeaders" ]; - installCheckPhase = '' - cd $out/include + # In rare cases, APPLE may drop some headers quietly on new release. + doInstallCheck = attrs ? appleHeaders; + passAsFile = [ "appleHeaders" ]; + installCheckPhase = '' + cd $out/include - result=$(diff -u "$appleHeadersPath" <(find * -type f | sort) --label "Listed in appleHeaders" --label "Found in \$out/include" || true) + result=$(diff -u "$appleHeadersPath" <(find * -type f | sort) --label "Listed in appleHeaders" --label "Found in \$out/include" || true) - if [ -z "$result" ]; then - echo "Apple header list is matched." - else - echo >&2 "\ - Apple header list is inconsistent, please ensure no header file is unexpectedly dropped. - $result - " - exit 1 - fi - ''; + if [ -z "$result" ]; then + echo "Apple header list is matched." + else + echo >&2 "\ + Apple header list is inconsistent, please ensure no header file is unexpectedly dropped. + $result + " + exit 1 + fi + ''; - } // (if builtins.isFunction attrs then attrs finalAttrs else attrs) // { - meta = (with lib; { - platforms = platforms.darwin; - license = licenses.apple-psl20; - }) // (attrs.meta or {}); - }); + } + // (if builtins.isFunction attrs then attrs finalAttrs else attrs) + // { + meta = + (with lib; { + platforms = platforms.darwin; + license = licenses.apple-psl20; + }) + // (attrs.meta or { }); + } + ); IOKitSpecs = { - IOAudioFamily = fetchApple "osx-10.10.5" "sha256-frs2pm2OpGUOz68ZXsjktlyHlgn5oXM+ltbmAf//Cio="; - IOFireWireFamily = fetchApple "osx-10.10.5" "sha256-V9fNeo/Wj9dm1/XM4hkOInnMk01M6c9QSjJs5zJKB60="; - IOFWDVComponents = fetchApple "osx-10.10.5" "sha256-KenCX9C/Z2ErUK8tpKpm65gEmhn2NsXFxlzK7NKomaI="; - IOFireWireAVC = fetchApple "osx-10.10.5" "sha256-Gd8+PK/mk+xEXgF8dGAx+3jsXv4NX1GiBFyjyrf6sTo="; - IOFireWireSBP2 = fetchApple "osx-10.10.5" "sha256-Z3nP8pX1YG4Fbt7MrnqO06ihE9aYOex5Eib/rqOpoPk="; + IOAudioFamily = fetchApple "osx-10.10.5" "sha256-frs2pm2OpGUOz68ZXsjktlyHlgn5oXM+ltbmAf//Cio="; + IOFireWireFamily = fetchApple "osx-10.10.5" "sha256-V9fNeo/Wj9dm1/XM4hkOInnMk01M6c9QSjJs5zJKB60="; + IOFWDVComponents = fetchApple "osx-10.10.5" "sha256-KenCX9C/Z2ErUK8tpKpm65gEmhn2NsXFxlzK7NKomaI="; + IOFireWireAVC = fetchApple "osx-10.10.5" "sha256-Gd8+PK/mk+xEXgF8dGAx+3jsXv4NX1GiBFyjyrf6sTo="; + IOFireWireSBP2 = fetchApple "osx-10.10.5" "sha256-Z3nP8pX1YG4Fbt7MrnqO06ihE9aYOex5Eib/rqOpoPk="; IOFireWireSerialBusProtocolTransport = fetchApple "osx-10.10.5" "sha256-zdYE0UCKiVhDRGdWaH8L51ArbYTnsQOmcN/OMmpNdFA="; - IOGraphics = fetchApple "osx-10.10.5" "sha256-lXoW4sx3pyl5fg5Qde3sQi2i8rTLnpeCdDaTHjbfaMI="; - IOHIDFamily = fetchApple "osx-10.10.5" "sha256-b+S1p3p5d8olYE18VrBns4euerVINaQSFEp34sko5rM="; - IONetworkingFamily = fetchApple "osx-10.10.5" "sha256-NOpFOBKS6iwFj9DJxduZYZfZJuhDyBQw2QMKHbu7j40="; - IOSerialFamily = fetchApple "osx-10.10.5" "sha256-hpYrgXsuTul4CYoYIjQjerfvQRqISM2tCcfVXlnjbZo="; - IOStorageFamily = fetchApple "osx-10.9.5" "sha256-CeA4rHUrBKHsDeJU9ssIY9LQwDw09a+vQUyruosaLKA="; - IOBDStorageFamily = fetchApple "osx-10.10.5" "sha256-gD52RKXGKWGga/QGlutxsgsPNSN6gcRfFQRT8v51N3E="; - IOCDStorageFamily = fetchApple "osx-10.10.5" "sha256-+nyqH6lMPmIkDLYXNVSeR4vBYS165oyJx+DkCkKOGRg="; - IODVDStorageFamily = fetchApple "osx-10.10.5" "sha256-Jy3UuRzdd0bBdhJgI/f8vLXh2GdGs1RVN3G2iEs86kQ="; + IOGraphics = fetchApple "osx-10.10.5" "sha256-lXoW4sx3pyl5fg5Qde3sQi2i8rTLnpeCdDaTHjbfaMI="; + IOHIDFamily = fetchApple "osx-10.10.5" "sha256-b+S1p3p5d8olYE18VrBns4euerVINaQSFEp34sko5rM="; + IONetworkingFamily = fetchApple "osx-10.10.5" "sha256-NOpFOBKS6iwFj9DJxduZYZfZJuhDyBQw2QMKHbu7j40="; + IOSerialFamily = fetchApple "osx-10.10.5" "sha256-hpYrgXsuTul4CYoYIjQjerfvQRqISM2tCcfVXlnjbZo="; + IOStorageFamily = fetchApple "osx-10.9.5" "sha256-CeA4rHUrBKHsDeJU9ssIY9LQwDw09a+vQUyruosaLKA="; + IOBDStorageFamily = fetchApple "osx-10.10.5" "sha256-gD52RKXGKWGga/QGlutxsgsPNSN6gcRfFQRT8v51N3E="; + IOCDStorageFamily = fetchApple "osx-10.10.5" "sha256-+nyqH6lMPmIkDLYXNVSeR4vBYS165oyJx+DkCkKOGRg="; + IODVDStorageFamily = fetchApple "osx-10.10.5" "sha256-Jy3UuRzdd0bBdhJgI/f8vLXh2GdGs1RVN3G2iEs86kQ="; # There should be an IOStreamFamily project here, but they haven't released it :( - IOUSBFamily = fetchApple "osx-10.8.5" "sha256-FwgGoP97Sj47VGXMxbY0oUugKf7jtxAL1RzL6+315cU="; # This is from 10.8 :( - IOUSBFamily_older = fetchApple "osx-10.8.4" "sha256-5apCsqtHK0EC8x1uPTTll43x69eal/nsokfS80qLlxs=" "IOUSBFamily"; # This is even older :( - IOKitUser = fetchApple "osx-10.10.5" "sha256-3UHM3g91v4RugmONbM+SAPr1SfoUPY3QPcTwTpt+zuY="; + IOUSBFamily = fetchApple "osx-10.8.5" "sha256-FwgGoP97Sj47VGXMxbY0oUugKf7jtxAL1RzL6+315cU="; # This is from 10.8 :( + IOUSBFamily_older = + fetchApple "osx-10.8.4" "sha256-5apCsqtHK0EC8x1uPTTll43x69eal/nsokfS80qLlxs=" + "IOUSBFamily"; # This is even older :( + IOKitUser = fetchApple "osx-10.10.5" "sha256-3UHM3g91v4RugmONbM+SAPr1SfoUPY3QPcTwTpt+zuY="; # There should be an IOVideo here, but they haven't released it :( }; - IOKitSrcs = lib.mapAttrs (name: value: if lib.isFunction value then value name else value) IOKitSpecs; + IOKitSrcs = lib.mapAttrs ( + name: value: if lib.isFunction value then value name else value + ) IOKitSpecs; in @@ -224,108 +247,195 @@ let macosPackages_11_0_1 = import ./macos-11.0.1.nix { inherit applePackage'; }; developerToolsPackages_11_3_1 = import ./developer-tools-11.3.1.nix { inherit applePackage'; }; - applePackage' = namePath: version: sdkName: sha256: + applePackage' = + namePath: version: sdkName: sha256: let pname = builtins.head (lib.splitString "/" namePath); appleDerivation' = stdenv: appleDerivation'' stdenv pname version sdkName sha256; appleDerivation = appleDerivation' stdenv; callPackage = self.newScope { inherit appleDerivation' appleDerivation; }; - in callPackage (./. + "/${namePath}"); + in + callPackage (./. + "/${namePath}"); - applePackage = namePath: sdkName: sha256: let - pname = builtins.head (lib.splitString "/" namePath); - version = versions.${sdkName}.${pname}; - in applePackage' namePath version sdkName sha256; + applePackage = + namePath: sdkName: sha256: + let + pname = builtins.head (lib.splitString "/" namePath); + version = versions.${sdkName}.${pname}; + in + applePackage' namePath version sdkName sha256; # Only used for bootstrapping. It’s convenient because it was the last version to come with a real makefile. - adv_cmds-boot = applePackage "adv_cmds/boot.nix" "osx-10.5.8" "sha256-/OJLNpATyS31W5nWfJgSVO5itp8j55TRwG57/QLT5Fg=" {}; + adv_cmds-boot = + applePackage "adv_cmds/boot.nix" "osx-10.5.8" "sha256-/OJLNpATyS31W5nWfJgSVO5itp8j55TRwG57/QLT5Fg=" + { }; in -developerToolsPackages_11_3_1 // macosPackages_11_0_1 // { - # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here. +developerToolsPackages_11_3_1 +// macosPackages_11_0_1 +// { + # TODO: shorten this list, we should cut down to a minimum set of bootstrap or necessary packages here. - inherit (adv_cmds-boot) ps locale; - architecture = applePackage "architecture" "osx-10.11.6" "sha256-cUKeMx6mOAxBSRHIdfzsrR65Qv86m7+20XvpKqVfwVI=" {}; - bsdmake = applePackage "bsdmake" "dev-tools-3.2.6" "sha256-CW8zP5QZMhWTGp+rhrm8oHE/vSLsRlv1VRAGe1OUDmI=" {}; - CarbonHeaders = applePackage "CarbonHeaders" "osx-10.6.2" "sha256-UNaHvxzYzEBnYYuoMLqWUVprZa6Wqn/3XleoSCco050=" {}; - CommonCrypto = applePackage "CommonCrypto" "osx-10.12.6" "sha256-FLgODBrfv+XsGaAjddncYAm/BIJJYw6LcwX/z7ncKFM=" {}; - configd = applePackage "configd" "osx-10.8.5" "sha256-6I3FWNjTgds5abEcZrD++s9b+P9a2+qUf8KFAb72DwI=" { - Security = applePackage "Security/boot.nix" "osx-10.9.5" "sha256-7qr0IamjCXCobIJ6V9KtvbMBkJDfRCy4C5eqpHJlQLI=" {}; - inherit (pkgs.darwin.apple_sdk.libs) xpc; - }; - copyfile = applePackage "copyfile" "osx-10.12.6" "sha256-uHqLFOIpXK+n0RHyOZzVsP2DDZcFDivKCnqHBaXvHns=" {}; - Csu = applePackage "Csu" "osx-10.11.6" "sha256-h6a/sQMEVeFxKNWAPgKBXjWhyL2L2nvX9BQUMaTQ6sY=" {}; - dtrace = applePackage "dtrace" "osx-10.12.6" "sha256-Icr22ozixHquI0kRB2XZ+LlxD6V46sJHsHy4L/tDXZg=" {}; - dyld = applePackage "dyld" "osx-10.12.6" "sha256-JmKnOZtBPf96zEx7vhYHLBSTOPyKN71IdYE3R0IeJww=" {}; - eap8021x = applePackage "eap8021x" "osx-10.11.6" "sha256-54P3+YhVhOanoZQoqswDnr/GbR/AdEERse135nyuIQo=" {}; - IOKit = applePackage "IOKit" "osx-10.11.6" "" { inherit IOKitSrcs; }; - launchd = applePackage "launchd" "osx-10.9.5" "sha256-dmV0UK7hG9wvTr+F4Z47nCFXcVZCV+cQ46WbE0DBtJs=" {}; - libauto = applePackage "libauto" "osx-10.9.5" "sha256-GnRcKq8jRbEsI/PSDphwUjWtpEIEcnLlQL9yxYLgSsU=" {}; - Libc = applePackage "Libc" "osx-10.12.6" "sha256-LSsL7S3KFgGU9qjK4atu/4wBh8ftgfsk6JOvg+ZTZOY=" { - Libc_10-9 = fetchFromGitHub { - owner = "apple-oss-distributions"; - repo = "Libc"; - rev = "Libc-997.90.3"; - hash = "sha256-B18RNO+Rai5XE52TKdJV7eknosTZ+bRERkiU12d/kPU="; + inherit (adv_cmds-boot) ps locale; + architecture = + applePackage "architecture" "osx-10.11.6" "sha256-cUKeMx6mOAxBSRHIdfzsrR65Qv86m7+20XvpKqVfwVI=" + { }; + bsdmake = + applePackage "bsdmake" "dev-tools-3.2.6" "sha256-CW8zP5QZMhWTGp+rhrm8oHE/vSLsRlv1VRAGe1OUDmI=" + { }; + CarbonHeaders = + applePackage "CarbonHeaders" "osx-10.6.2" "sha256-UNaHvxzYzEBnYYuoMLqWUVprZa6Wqn/3XleoSCco050=" + { }; + CommonCrypto = + applePackage "CommonCrypto" "osx-10.12.6" "sha256-FLgODBrfv+XsGaAjddncYAm/BIJJYw6LcwX/z7ncKFM=" + { }; + configd = + applePackage "configd" "osx-10.8.5" "sha256-6I3FWNjTgds5abEcZrD++s9b+P9a2+qUf8KFAb72DwI=" + { + Security = + applePackage "Security/boot.nix" "osx-10.9.5" "sha256-7qr0IamjCXCobIJ6V9KtvbMBkJDfRCy4C5eqpHJlQLI=" + { }; + inherit (pkgs.darwin.apple_sdk.libs) xpc; }; + copyfile = + applePackage "copyfile" "osx-10.12.6" "sha256-uHqLFOIpXK+n0RHyOZzVsP2DDZcFDivKCnqHBaXvHns=" + { }; + Csu = applePackage "Csu" "osx-10.11.6" "sha256-h6a/sQMEVeFxKNWAPgKBXjWhyL2L2nvX9BQUMaTQ6sY=" { }; + dtrace = + applePackage "dtrace" "osx-10.12.6" "sha256-Icr22ozixHquI0kRB2XZ+LlxD6V46sJHsHy4L/tDXZg=" + { }; + dyld = applePackage "dyld" "osx-10.12.6" "sha256-JmKnOZtBPf96zEx7vhYHLBSTOPyKN71IdYE3R0IeJww=" { }; + eap8021x = + applePackage "eap8021x" "osx-10.11.6" "sha256-54P3+YhVhOanoZQoqswDnr/GbR/AdEERse135nyuIQo=" + { }; + IOKit = applePackage "IOKit" "osx-10.11.6" "" { inherit IOKitSrcs; }; + launchd = + applePackage "launchd" "osx-10.9.5" "sha256-dmV0UK7hG9wvTr+F4Z47nCFXcVZCV+cQ46WbE0DBtJs=" + { }; + libauto = + applePackage "libauto" "osx-10.9.5" "sha256-GnRcKq8jRbEsI/PSDphwUjWtpEIEcnLlQL9yxYLgSsU=" + { }; + Libc = applePackage "Libc" "osx-10.12.6" "sha256-LSsL7S3KFgGU9qjK4atu/4wBh8ftgfsk6JOvg+ZTZOY=" { + Libc_10-9 = fetchFromGitHub { + owner = "apple-oss-distributions"; + repo = "Libc"; + rev = "Libc-997.90.3"; + hash = "sha256-B18RNO+Rai5XE52TKdJV7eknosTZ+bRERkiU12d/kPU="; }; - libclosure = applePackage "libclosure" "osx-10.11.6" "sha256-L5rQ+UBpf3B+W1U+gZKk7fXulslHsc8lxnCsplV+nr0=" {}; - libdispatch = applePackage "libdispatch" "osx-10.10.5" "sha256-jfAEk0OLrJa9AIZVikIoHomd+l+4rCfc320Xh50qK5M=" {}; - libiconv = applePackage "libiconv" "osx-10.12.6" "sha256-ZzPFkchK3EU95UQUVVrR0t8iilhi/VnIkjjtP6KT2oI=" {}; - Libinfo = applePackage "Libinfo" "osx-10.11.6" "sha256-6F7wiwerv4nz/xXHtp1qCHSaFzZgzcRN+jbmXA5oWOQ=" {}; - Libm = applePackage "Libm" "osx-10.7.4" "sha256-KjMETfT4qJm0m0Ux/F6Rq8bI4Q4UVnFx6IKbKxXd+Es=" {}; - Libnotify = applePackage "Libnotify" "osx-10.12.6" "sha256-6wvMBxAUfiYcQtmlfYCj1d3kFmFM/jdboTd7hRvi3e4=" {}; - libmalloc = if stdenv.isx86_64 then - applePackage "libmalloc" "osx-10.12.6" "sha256-brfG4GEF2yZipKdhlPq6DhT2z5hKYSb2MAmffaikdO4=" {} - else macosPackages_11_0_1.libmalloc; - libplatform = if stdenv.isx86_64 then - applePackage "libplatform" "osx-10.12.6" "sha256-6McMTjw55xtnCsFI3AB1osRagnuB5pSTqeMKD3gpGtM=" {} - else macosPackages_11_0_1.libplatform; - libpthread = applePackage "libpthread" "osx-10.12.6" "sha256-QvJ9PERmrCWBiDmOWrLvQUKZ4JxHuh8gS5nlZKDLqE8=" {}; - libresolv = applePackage "libresolv" "osx-10.12.6" "sha256-FtvwjJKSFX6j9APYPC8WLXVOjbHLZa1Gcoc8yxLy8qE=" {}; - Libsystem = applePackage "Libsystem" "osx-10.12.6" "sha256-zvRdCP//TjKCGAqm/5nJXPppshU1cv2fg/L/yK/olGQ=" {}; - libutil = applePackage "libutil" "osx-10.12.6" "sha256-4PFuk+CTLwvd/Ll9GLBkiIM0Sh/CVaiKwh5m1noheRs=" {}; - libunwind = applePackage "libunwind" "osx-10.12.6" "sha256-CC0sndP/mKYe3dZu3v7fjuDASV4V4w7dAcnWMvpoquE=" {}; - mDNSResponder = applePackage "mDNSResponder" "osx-10.12.6" "sha256-ddZr6tropkpdMJhq/kUlm3OwO8b0yxtkrMpwec8R4FY=" {}; - objc4 = applePackage "objc4" "osx-10.12.6" "sha256-ZsxRpdsfv3Dxs7yBBCkjbKXKR6aXwkEpxc1XYXz7ueM=" {}; - ppp = applePackage "ppp" "osx-10.12.6" "sha256-M1zoEjjeKIDUEP6ACbpUJk3OXjobw4g/qzUmxGdX1J0=" {}; - removefile = applePackage "removefile" "osx-10.12.6" "sha256-UpNk27kGXnZss1ZXWVJU9jLz/NW63ZAZEDLhyCYoi9M=" {}; - xnu = if stdenv.isx86_64 then - applePackage "xnu" "osx-10.12.6" "sha256-C8TPQlUT3RbzAy8YnZPNtr70hpaVG9Llv0h42s3NENI=" { - python3 = pkgs.buildPackages.buildPackages.python3; # TODO(@Ericson2314) this shouldn't be needed. - } - else macosPackages_11_0_1.xnu; - hfs = applePackage "hfs" "osx-10.12.6" "sha256-eGi18HQFJrU5UHoBOE0LqO5gQ0xOf8+OJuAWQljfKE4=" {}; - Librpcsvc = applePackage "Librpcsvc" "osx-10.11.6" "sha256-YHbGws901xONzAbo6sB5zSea4Wp0sgYUJ8YgwVfWxnE=" {}; - adv_cmds = applePackage "adv_cmds" "osx-10.11.6" "sha256-Ztp8ALWcviEpthoiY8ttWzGI8OcsLzsULjlqe8GIzw8=" {}; - basic_cmds = applePackage "basic_cmds" "osx-10.11.6" "sha256-BYPPTg4/7x6RPs0WwwQlkNiZxxArV+7EVe6bM+a/I6Q=" {}; - developer_cmds = applePackage "developer_cmds" "osx-10.11.6" "sha256-h0wMVlS6QdRvKOVJ74W9ziHYGApjvnk77AIR6ukYBRo=" {}; - diskdev_cmds = applePackage "diskdev_cmds" "osx-10.11.6" "sha256-VX+hcZ7JhOA8EhwLloPlM3Yx79RXp9OYHV9Mi10uw3Q=" { - macosPackages_11_0_1 = macosPackages_11_0_1; - }; - network_cmds = if stdenv.isx86_64 then - applePackage "network_cmds" "osx-10.11.6" "sha256-I89CLIswGheewOjiNZwQTgWvWbhm0qtB5+KUqzxnQ5M=" {} - else macosPackages_11_0_1.network_cmds; - file_cmds = applePackage "file_cmds" "osx-10.11.6" "sha256-JYy6HwmultKeZtLfaysbsyLoWg+OaTh7eJu54JkJC0Q=" {}; - shell_cmds = applePackage "shell_cmds" "osx-10.11.6" "sha256-kmEOprkiJGMVcl7yHkGX8ymk/5KjE99gWuF8j2hK5hY=" {}; - system_cmds = applePackage "system_cmds" "macos-14.3" "sha256-qFp9nkzsq9uQ7zoyfvO+3gvDlc7kaPvn6luvmO/Io30=" {}; - text_cmds = applePackage "text_cmds" "osx-10.11.6" "sha256-KSebU7ZyUsPeqn51nzuGNaNxs9pvmlIQQdkWXIVzDxw=" {}; - top = applePackage "top" "osx-10.11.6" "sha256-jbz64ODogtpNyLpXGSZj1jCBdFPVXcVcBkL1vc7g5qQ=" {}; - PowerManagement = applePackage "PowerManagement" "osx-10.11.6" "sha256-bYGtYnBOcE5W03AZzfVTJXPZ6GgryGAMt/LgLPxFkVk=" {}; + }; + libclosure = + applePackage "libclosure" "osx-10.11.6" "sha256-L5rQ+UBpf3B+W1U+gZKk7fXulslHsc8lxnCsplV+nr0=" + { }; + libdispatch = + applePackage "libdispatch" "osx-10.10.5" "sha256-jfAEk0OLrJa9AIZVikIoHomd+l+4rCfc320Xh50qK5M=" + { }; + libiconv = + applePackage "libiconv" "osx-10.12.6" "sha256-ZzPFkchK3EU95UQUVVrR0t8iilhi/VnIkjjtP6KT2oI=" + { }; + Libinfo = + applePackage "Libinfo" "osx-10.11.6" "sha256-6F7wiwerv4nz/xXHtp1qCHSaFzZgzcRN+jbmXA5oWOQ=" + { }; + Libm = applePackage "Libm" "osx-10.7.4" "sha256-KjMETfT4qJm0m0Ux/F6Rq8bI4Q4UVnFx6IKbKxXd+Es=" { }; + Libnotify = + applePackage "Libnotify" "osx-10.12.6" "sha256-6wvMBxAUfiYcQtmlfYCj1d3kFmFM/jdboTd7hRvi3e4=" + { }; + libmalloc = + if stdenv.isx86_64 then + applePackage "libmalloc" "osx-10.12.6" "sha256-brfG4GEF2yZipKdhlPq6DhT2z5hKYSb2MAmffaikdO4=" { } + else + macosPackages_11_0_1.libmalloc; + libplatform = + if stdenv.isx86_64 then + applePackage "libplatform" "osx-10.12.6" "sha256-6McMTjw55xtnCsFI3AB1osRagnuB5pSTqeMKD3gpGtM=" { } + else + macosPackages_11_0_1.libplatform; + libpthread = + applePackage "libpthread" "osx-10.12.6" "sha256-QvJ9PERmrCWBiDmOWrLvQUKZ4JxHuh8gS5nlZKDLqE8=" + { }; + libresolv = + applePackage "libresolv" "osx-10.12.6" "sha256-FtvwjJKSFX6j9APYPC8WLXVOjbHLZa1Gcoc8yxLy8qE=" + { }; + Libsystem = + applePackage "Libsystem" "osx-10.12.6" "sha256-zvRdCP//TjKCGAqm/5nJXPppshU1cv2fg/L/yK/olGQ=" + { }; + libutil = + applePackage "libutil" "osx-10.12.6" "sha256-4PFuk+CTLwvd/Ll9GLBkiIM0Sh/CVaiKwh5m1noheRs=" + { }; + libunwind = + applePackage "libunwind" "osx-10.12.6" "sha256-CC0sndP/mKYe3dZu3v7fjuDASV4V4w7dAcnWMvpoquE=" + { }; + mDNSResponder = + applePackage "mDNSResponder" "osx-10.12.6" "sha256-ddZr6tropkpdMJhq/kUlm3OwO8b0yxtkrMpwec8R4FY=" + { }; + objc4 = + applePackage "objc4" "osx-10.12.6" "sha256-ZsxRpdsfv3Dxs7yBBCkjbKXKR6aXwkEpxc1XYXz7ueM=" + { }; + ppp = applePackage "ppp" "osx-10.12.6" "sha256-M1zoEjjeKIDUEP6ACbpUJk3OXjobw4g/qzUmxGdX1J0=" { }; + removefile = + applePackage "removefile" "osx-10.12.6" "sha256-UpNk27kGXnZss1ZXWVJU9jLz/NW63ZAZEDLhyCYoi9M=" + { }; + xnu = + if stdenv.isx86_64 then + applePackage "xnu" "osx-10.12.6" "sha256-C8TPQlUT3RbzAy8YnZPNtr70hpaVG9Llv0h42s3NENI=" { + python3 = pkgs.buildPackages.buildPackages.python3; # TODO(@Ericson2314) this shouldn't be needed. + } + else + macosPackages_11_0_1.xnu; + hfs = applePackage "hfs" "osx-10.12.6" "sha256-eGi18HQFJrU5UHoBOE0LqO5gQ0xOf8+OJuAWQljfKE4=" { }; + Librpcsvc = + applePackage "Librpcsvc" "osx-10.11.6" "sha256-YHbGws901xONzAbo6sB5zSea4Wp0sgYUJ8YgwVfWxnE=" + { }; + adv_cmds = + applePackage "adv_cmds" "osx-10.11.6" "sha256-Ztp8ALWcviEpthoiY8ttWzGI8OcsLzsULjlqe8GIzw8=" + { }; + basic_cmds = + applePackage "basic_cmds" "osx-10.11.6" "sha256-BYPPTg4/7x6RPs0WwwQlkNiZxxArV+7EVe6bM+a/I6Q=" + { }; + developer_cmds = + applePackage "developer_cmds" "osx-10.11.6" "sha256-h0wMVlS6QdRvKOVJ74W9ziHYGApjvnk77AIR6ukYBRo=" + { }; + diskdev_cmds = + applePackage "diskdev_cmds" "osx-10.11.6" "sha256-VX+hcZ7JhOA8EhwLloPlM3Yx79RXp9OYHV9Mi10uw3Q=" + { macosPackages_11_0_1 = macosPackages_11_0_1; }; + network_cmds = + if stdenv.isx86_64 then + applePackage "network_cmds" "osx-10.11.6" "sha256-I89CLIswGheewOjiNZwQTgWvWbhm0qtB5+KUqzxnQ5M=" { } + else + macosPackages_11_0_1.network_cmds; + file_cmds = + applePackage "file_cmds" "osx-10.11.6" "sha256-JYy6HwmultKeZtLfaysbsyLoWg+OaTh7eJu54JkJC0Q=" + { }; + shell_cmds = + applePackage "shell_cmds" "osx-10.11.6" "sha256-kmEOprkiJGMVcl7yHkGX8ymk/5KjE99gWuF8j2hK5hY=" + { }; + system_cmds = + applePackage "system_cmds" "macos-14.3" "sha256-qFp9nkzsq9uQ7zoyfvO+3gvDlc7kaPvn6luvmO/Io30=" + { }; + text_cmds = + applePackage "text_cmds" "osx-10.11.6" "sha256-KSebU7ZyUsPeqn51nzuGNaNxs9pvmlIQQdkWXIVzDxw=" + { }; + top = applePackage "top" "osx-10.11.6" "sha256-jbz64ODogtpNyLpXGSZj1jCBdFPVXcVcBkL1vc7g5qQ=" { }; + PowerManagement = + applePackage "PowerManagement" "osx-10.11.6" "sha256-bYGtYnBOcE5W03AZzfVTJXPZ6GgryGAMt/LgLPxFkVk=" + { }; - # `configdHeaders` can’t use an override because `pkgs.darwin.configd` on aarch64-darwin will - # be replaced by SystemConfiguration.framework from the macOS SDK. - configdHeaders = applePackage "configd" "osx-10.8.5" "sha256-6I3FWNjTgds5abEcZrD++s9b+P9a2+qUf8KFAb72DwI=" { - headersOnly = true; - Security = null; - xpc = null; - }; - libutilHeaders = pkgs.darwin.libutil.override { headersOnly = true; }; - hfsHeaders = pkgs.darwin.hfs.override { headersOnly = true; }; - libresolvHeaders= pkgs.darwin.libresolv.override { headersOnly = true; }; + # `configdHeaders` can’t use an override because `pkgs.darwin.configd` on aarch64-darwin will + # be replaced by SystemConfiguration.framework from the macOS SDK. + configdHeaders = + applePackage "configd" "osx-10.8.5" "sha256-6I3FWNjTgds5abEcZrD++s9b+P9a2+qUf8KFAb72DwI=" + { + headersOnly = true; + Security = null; + xpc = null; + }; + libutilHeaders = pkgs.darwin.libutil.override { headersOnly = true; }; + hfsHeaders = pkgs.darwin.hfs.override { headersOnly = true; }; + libresolvHeaders = pkgs.darwin.libresolv.override { headersOnly = true; }; - # TODO(matthewbauer): - # To be removed, once I figure out how to build a newer Security version. - Security = applePackage "Security/boot.nix" "osx-10.9.5" "sha256-7qr0IamjCXCobIJ6V9KtvbMBkJDfRCy4C5eqpHJlQLI=" {}; + # TODO(matthewbauer): + # To be removed, once I figure out how to build a newer Security version. + Security = + applePackage "Security/boot.nix" "osx-10.9.5" "sha256-7qr0IamjCXCobIJ6V9KtvbMBkJDfRCy4C5eqpHJlQLI=" + { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer-tools-11.3.1.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/developer-tools-11.3.1.nix index 7eeafec..6944f87 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer-tools-11.3.1.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/developer-tools-11.3.1.nix @@ -3,6 +3,12 @@ { applePackage' }: { -bootstrap_cmds = applePackage' "bootstrap_cmds" "116" "developer-tools-11.3.1" "06nw99ajkd264vdi6n2zv252ppxp3wx3120hqf3jqdh6c1wavy0b" {}; -developer_cmds = applePackage' "developer_cmds" "66" "developer-tools-11.3.1" "0f7vphpscjcypq49gjckbs20xhm7yjalr4nnbphqcqp8v1al56dc" {}; + bootstrap_cmds = + applePackage' "bootstrap_cmds" "116" "developer-tools-11.3.1" + "06nw99ajkd264vdi6n2zv252ppxp3wx3120hqf3jqdh6c1wavy0b" + { }; + developer_cmds = + applePackage' "developer_cmds" "66" "developer-tools-11.3.1" + "0f7vphpscjcypq49gjckbs20xhm7yjalr4nnbphqcqp8v1al56dc" + { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/default.nix index 23a5ae0..f558f36 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/developer_cmds/default.nix @@ -1,7 +1,16 @@ -{ lib, appleDerivation, xcbuildHook, llvmPackages, makeWrapper }: +{ + lib, + appleDerivation, + xcbuildHook, + llvmPackages, + makeWrapper, +}: appleDerivation { - nativeBuildInputs = [ xcbuildHook makeWrapper ]; + nativeBuildInputs = [ + xcbuildHook + makeWrapper + ]; patches = [ # The following copied from diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/default.nix index e4431c6..94cdd0d 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/diskdev_cmds/default.nix @@ -1,10 +1,20 @@ -{ lib, appleDerivation, xcbuildHook, Libc, stdenv, macosPackages_11_0_1, xnu -, fetchurl, libutil }: +{ + lib, + appleDerivation, + xcbuildHook, + Libc, + stdenv, + macosPackages_11_0_1, + xnu, + fetchurl, + libutil, +}: let xnu-src = if stdenv.isAarch64 then macosPackages_11_0_1.xnu.src else xnu.src; arch = if stdenv.isAarch64 then "arm" else "i386"; -in appleDerivation { +in +appleDerivation { patches = [ # Fixes a build failure with newer versions of clang that make implicit int an error. ./fix-implicit-int.patch diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/dtrace/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/dtrace/default.nix index afff789..790b005 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/dtrace/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/dtrace/default.nix @@ -1,14 +1,37 @@ -{ appleDerivation, xcbuildHook, CoreSymbolication, apple_sdk -, xnu, bison, flex, stdenv, fixDarwinDylibNames }: +{ + appleDerivation, + xcbuildHook, + CoreSymbolication, + apple_sdk, + xnu, + bison, + flex, + stdenv, + fixDarwinDylibNames, +}: appleDerivation { - nativeBuildInputs = [ xcbuildHook flex bison fixDarwinDylibNames ]; - buildInputs = [ CoreSymbolication apple_sdk.frameworks.CoreSymbolication xnu ]; + nativeBuildInputs = [ + xcbuildHook + flex + bison + fixDarwinDylibNames + ]; + buildInputs = [ + CoreSymbolication + apple_sdk.frameworks.CoreSymbolication + xnu + ]; # -fcommon: workaround build failure on -fno-common toolchains: # duplicate symbol '_kCSRegionMachHeaderName' in: libproc.o dt_module_apple.o env.NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers -Wno-error=implicit-function-declaration -fcommon"; NIX_LDFLAGS = "-L./Products/Release"; - xcbuildFlags = [ "-target" "dtrace_frameworks" "-target" "dtrace" ]; + xcbuildFlags = [ + "-target" + "dtrace_frameworks" + "-target" + "dtrace" + ]; doCheck = false; checkPhase = "xcodebuild -target dtrace_tests"; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/dyld/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/dyld/default.nix index e91d703..2735f55 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/dyld/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/dyld/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenvNoCC }: +{ + lib, + appleDerivation', + stdenvNoCC, +}: appleDerivation' stdenvNoCC { installPhase = '' @@ -10,7 +14,7 @@ appleDerivation' stdenvNoCC { meta = with lib; { description = "Impure primitive symlinks to the Mac OS native dyld, along with headers"; maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/file_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/file_cmds/default.nix index 8d44cc8..37effe1 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/file_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/file_cmds/default.nix @@ -1,8 +1,25 @@ -{ lib, appleDerivation, xcbuildHook, zlib, bzip2, xz, ncurses, libutil, Libinfo }: +{ + lib, + appleDerivation, + xcbuildHook, + zlib, + bzip2, + xz, + ncurses, + libutil, + Libinfo, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ zlib bzip2 xz ncurses libutil Libinfo ]; + buildInputs = [ + zlib + bzip2 + xz + ncurses + libutil + Libinfo + ]; # some commands not working: # mtree: _simple.h not found diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/hfs/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/hfs/default.nix index 093e852..867e5b2 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/hfs/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/hfs/default.nix @@ -1,4 +1,10 @@ -{ appleDerivation', stdenv, stdenvNoCC, lib, headersOnly ? true }: +{ + appleDerivation', + stdenv, + stdenvNoCC, + lib, + headersOnly ? true, +}: appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { installPhase = lib.optionalString headersOnly '' diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/default.nix index 8a551dc..ef9abbb 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libauto/default.nix @@ -1,8 +1,17 @@ -{ lib, stdenv, appleDerivation, libdispatch, Libsystem }: +{ + lib, + stdenv, + appleDerivation, + libdispatch, + Libsystem, +}: appleDerivation { # these are included in the pure libc - buildInputs = lib.optionals stdenv.cc.nativeLibc [ libdispatch Libsystem ]; + buildInputs = lib.optionals stdenv.cc.nativeLibc [ + libdispatch + Libsystem + ]; buildPhase = '' cp ${./auto_dtrace.h} ./auto_dtrace.h diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libiconv/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libiconv/default.nix index 6a3bddc..53271e6 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libiconv/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libiconv/default.nix @@ -1,6 +1,9 @@ -{ stdenv, appleDerivation, lib -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic +{ + stdenv, + appleDerivation, + lib, + enableStatic ? stdenv.hostPlatform.isStatic, + enableShared ? !stdenv.hostPlatform.isStatic, }: appleDerivation { diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libplatform/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libplatform/default.nix index e0b25d2..c89949e 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libplatform/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libplatform/default.nix @@ -1,4 +1,8 @@ -{ lib, appleDerivation', stdenvNoCC }: +{ + lib, + appleDerivation', + stdenvNoCC, +}: appleDerivation' stdenvNoCC (finalAttrs: { installPhase = '' @@ -7,33 +11,38 @@ appleDerivation' stdenvNoCC (finalAttrs: { test -d private && cp -r private/* $out/include ''; - appleHeaders = '' - _simple.h - libkern/OSAtomic.h - libkern/OSAtomicDeprecated.h - libkern/OSAtomicQueue.h - libkern/OSCacheControl.h - libkern/OSSpinLockDeprecated.h - os/alloc_once_impl.h - os/base.h - os/base_private.h - os/internal/atomic.h - os/internal/crashlog.h - os/internal/internal_shared.h - os/lock.h - os/lock_private.h - os/once_private.h - os/semaphore_private.h - platform/compat.h - platform/introspection_private.h - platform/string.h - setjmp.h - '' + ( - if lib.versionAtLeast finalAttrs.version "254.40.4" then '' - string_x86.h - ucontext.h - '' else '' - ucontext.h + appleHeaders = '' - ); + _simple.h + libkern/OSAtomic.h + libkern/OSAtomicDeprecated.h + libkern/OSAtomicQueue.h + libkern/OSCacheControl.h + libkern/OSSpinLockDeprecated.h + os/alloc_once_impl.h + os/base.h + os/base_private.h + os/internal/atomic.h + os/internal/crashlog.h + os/internal/internal_shared.h + os/lock.h + os/lock_private.h + os/once_private.h + os/semaphore_private.h + platform/compat.h + platform/introspection_private.h + platform/string.h + setjmp.h + '' + + ( + if lib.versionAtLeast finalAttrs.version "254.40.4" then + '' + string_x86.h + ucontext.h + '' + else + '' + ucontext.h + '' + ); }) diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libpthread/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libpthread/default.nix index 3d62270..dd15d3c 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libpthread/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libpthread/default.nix @@ -1,7 +1,16 @@ -{ lib, appleDerivation', stdenvNoCC, libdispatch, xnu }: +{ + lib, + appleDerivation', + stdenvNoCC, + libdispatch, + xnu, +}: appleDerivation' stdenvNoCC { - propagatedBuildInputs = [ libdispatch xnu ]; + propagatedBuildInputs = [ + libdispatch + xnu + ]; installPhase = '' mkdir -p $out/include/pthread/ diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libresolv/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libresolv/default.nix index 2a8a609..c0f91e3 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libresolv/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libresolv/default.nix @@ -1,9 +1,20 @@ -{ lib, appleDerivation', stdenv, stdenvNoCC, Libinfo, configdHeaders, mDNSResponder -, headersOnly ? false +{ + lib, + appleDerivation', + stdenv, + stdenvNoCC, + Libinfo, + configdHeaders, + mDNSResponder, + headersOnly ? false, }: appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { - buildInputs = lib.optionals (!headersOnly) [ Libinfo configdHeaders mDNSResponder ]; + buildInputs = lib.optionals (!headersOnly) [ + Libinfo + configdHeaders + mDNSResponder + ]; buildPhase = lib.optionalString (!headersOnly) '' $CC -I. -c dns_util.c @@ -36,17 +47,19 @@ appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { $CC -dynamiclib -install_name $out/lib/libresolv.9.dylib -current_version 1.0.0 -compatibility_version 1.0.0 -o libresolv.9.dylib *.o ''; - installPhase = '' - mkdir -p $out/include $out/include/arpa $out/lib + installPhase = + '' + mkdir -p $out/include $out/include/arpa $out/lib - cp dns.h $out/include/ - cp dns_util.h $out/include - cp nameser.h $out/include - ln -s ../nameser.h $out/include/arpa - cp resolv.h $out/include - '' + lib.optionalString (!headersOnly) '' + cp dns.h $out/include/ + cp dns_util.h $out/include + cp nameser.h $out/include + ln -s ../nameser.h $out/include/arpa + cp resolv.h $out/include + '' + + lib.optionalString (!headersOnly) '' - cp libresolv.9.dylib $out/lib - ln -s libresolv.9.dylib $out/lib/libresolv.dylib - ''; + cp libresolv.9.dylib $out/lib + ln -s libresolv.9.dylib $out/lib/libresolv.dylib + ''; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libunwind/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libunwind/default.nix index df3c565..ddeea76 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libunwind/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libunwind/default.nix @@ -10,8 +10,11 @@ appleDerivation { ''; meta = with lib; { - maintainers = with maintainers; [ copumpkin lnl7 ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + maintainers = with maintainers; [ + copumpkin + lnl7 + ]; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/libutil/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/libutil/default.nix index 5cc8e0f..653b058 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/libutil/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/libutil/default.nix @@ -1,7 +1,13 @@ -{ lib, stdenv, stdenvNoCC, appleDerivation', xcbuildHook +{ + lib, + stdenv, + stdenvNoCC, + appleDerivation', + xcbuildHook, -# headersOnly is true when building for libSystem -, headersOnly ? false }: + # headersOnly is true when building for libSystem + headersOnly ? false, +}: appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { nativeBuildInputs = lib.optional (!headersOnly) xcbuildHook; @@ -11,21 +17,27 @@ appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { --replace '#include ' "" ''; - xcbuildFlags = [ "-target" "util" ]; + xcbuildFlags = [ + "-target" + "util" + ]; - installPhase = '' - mkdir -p $out/include - '' + lib.optionalString headersOnly '' - cp *.h $out/include - '' + lib.optionalString (!headersOnly)'' - mkdir -p $out/lib $out/include + installPhase = + '' + mkdir -p $out/include + '' + + lib.optionalString headersOnly '' + cp *.h $out/include + '' + + lib.optionalString (!headersOnly) '' + mkdir -p $out/lib $out/include - cp Products/Release/*.dylib $out/lib - cp Products/Release/*.h $out/include + cp Products/Release/*.dylib $out/lib + cp Products/Release/*.h $out/include - # TODO: figure out how to get this to be right the first time around - install_name_tool -id $out/lib/libutil.dylib $out/lib/libutil.dylib - ''; + # TODO: figure out how to get this to be right the first time around + install_name_tool -id $out/lib/libutil.dylib $out/lib/libutil.dylib + ''; # FIXME: headers are different against headersOnly. And all the headers are NOT in macos, do we really want them? # appleHeaders = '' @@ -37,7 +49,7 @@ appleDerivation' (if headersOnly then stdenvNoCC else stdenv) { meta = with lib; { maintainers = with maintainers; [ copumpkin ]; - platforms = platforms.darwin; - license = licenses.apple-psl20; + platforms = platforms.darwin; + license = licenses.apple-psl20; }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/macos-11.0.1.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/macos-11.0.1.nix index b4a7bbc..8d1a1b4 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/macos-11.0.1.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/macos-11.0.1.nix @@ -3,44 +3,153 @@ { applePackage' }: { -CommonCrypto = applePackage' "CommonCrypto" "60178.40.2" "macos-11.0.1" "129gsxhhcxqycg0zjrdrz2ay4dv2ih1ckafqh33qrc499z8dam2p" {}; -Csu = applePackage' "Csu" "88" "macos-11.0.1" "1lzp9x8iv60c2h12q2s89nf49b5hvpqq4a9li44zr2fxszn8lqxh" {}; -ICU = applePackage' "ICU" "66108" "macos-11.0.1" "0mclizp99daihghqy2sgzjkid8i93dsn5pi8q9p7b3156chrhw57" {}; -Libc = applePackage' "Libc" "1439.40.11" "macos-11.0.1" "12k5sbz2k1pl839w2lk9iw414zzl50zdjzgq2x6bm20yjbfj69qm" {}; -Libinfo = applePackage' "Libinfo" "542.40.3" "macos-11.0.1" "18jvl7cdg64x6clhsfv5pbzxis2aldddpca5r81xqakrmi9mck80" {}; -Libnotify = applePackage' "Libnotify" "279.40.4" "macos-11.0.1" "1vr11s0c42ssjs29shy1m8rj008np7aswdzjpimsfzyav47jb6y7" {}; -Librpcsvc = applePackage' "Librpcsvc" "26" "macos-11.0.1" "0wf6srbw28664wa0dckldbhrl9ydg70fms06rj6i7mvlrz1ccxk0" {}; -Libsystem = applePackage' "Libsystem" "1292.50.1" "macos-11.0.1" "0d3flh1p4kskic8ypi8wia4kinfbprx9fvyfqc3mcq0710i0gy77" {}; -PowerManagement = applePackage' "PowerManagement" "1132.50.3" "macos-11.0.1" "1sb2nz92vdf6v3h17ry0vgw0z9zsva82lhdrhsf3k60jhfw1fi2v" {}; -Security = applePackage' "Security" "59754.41.1" "macos-11.0.1" "0jq70mnwkvrrhws64ipx0i68pi3n0sk95jlhacxxikdj9f4hpbsw" {}; -adv_cmds = applePackage' "adv_cmds" "176" "macos-11.0.1" "0sskwl3jc7llbrlyd1i7qlb03yhm1xkbxd1k9xhh7f9wqhlzq31j" {}; -architecture = applePackage' "architecture" "279" "macos-11.0.1" "19s93rqr9r98qh0rlndf7kv3v4n1ifh9i539mbpsx6kbixcx8vvp" {}; -basic_cmds = applePackage' "basic_cmds" "55" "macos-11.0.1" "1913pzk376zfap2fwmrb233rkn4h4l2c65nd7s8ixvrz1r7cz0q5" {}; -bootstrap_cmds = applePackage' "bootstrap_cmds" "121" "macos-11.0.1" "0qgbgwijv7xqmm9gn74jibyw2dh516xpj7h1grj2j1i80m3b16bl" {}; -configd = applePackage' "configd" "1109.40.9" "macos-11.0.1" "024ny63lpwzgnm8g28hh8dldvmmislmrl298n721rm0blqjhahz5" {}; -copyfile = applePackage' "copyfile" "173.40.2" "macos-11.0.1" "1j20909inn2iw8n51b8vk551wznfi3bhfziy8nbv08qj5lk50m04" {}; -diskdev_cmds = applePackage' "diskdev_cmds" "667.40.1" "macos-11.0.1" "0wr60vyvgkbc4wyldnsqas0xss2k1fgmbdk3vnhj6v6jqa98l1ny" {}; -dtrace = applePackage' "dtrace" "370.40.1" "macos-11.0.1" "1qj74mix1x3drffr1qpafm57aby42bc61kynba5q0ppbcf0lrbp1" {}; -dyld = applePackage' "dyld" "832.7.1" "macos-11.0.1" "01q7fsibr6xp94l3w22sh8qfjgwzzf1v82mhgq39ivkxwwc4jdy0" {}; -eap8021x = applePackage' "eap8021x" "304.40.1" "macos-11.0.1" "1aihyklri64w380d1mvi830n5cnzs9gd38z8i9ccd37n48gmz88p" {}; -file_cmds = applePackage' "file_cmds" "321.40.3" "macos-11.0.1" "0p077lnbcy8266m03a0fssj4214bjxh88y3qkspnzcvi0g84k43q" {}; -hfs = applePackage' "hfs" "556.41.1" "macos-11.0.1" "0a0s6b12b0q07wslfifna0bj51dml9v098i4crr2m1vivnx4xj75" {}; -libclosure = applePackage' "libclosure" "78" "macos-11.0.1" "0vf9n0k3m8dbprv1bf45zqg0g43bidy2i5z1v9a826bsf8lv7am7" {}; -libdispatch = applePackage' "libdispatch" "1271.40.12" "macos-11.0.1" "1ck5srcjapg18vqb8wl08gacs7ndc6xr067qjn3ngx39q1jdcywz" {}; -libiconv = applePackage' "libiconv" "59" "macos-11.0.1" "0lwa4brdwm4lvrdnxylzsn1yph4m7csgri2zkc4xb4xiisz32pwp" {}; -libmalloc = applePackage' "libmalloc" "317.40.8" "macos-11.0.1" "sha256-Tdhb0mq3w4Hwvp3xHB79Vr22hCOQK6h28HCsd7jvITI=" {}; -libplatform = applePackage' "libplatform" "254.40.4" "macos-11.0.1" "1qf3ri0yd8b1xjln1j1gyx7ks6k3a2jhd63blyvfby75y9s7flky" {}; -libpthread = applePackage' "libpthread" "454.40.3" "macos-11.0.1" "0zljbw8mpb80n1if65hhi9lkgwbgjr8vc9wvf7q1nl3mzyl35f8p" {}; -libresolv = applePackage' "libresolv" "68" "macos-11.0.1" "045ahh8nvaam9whryc2f5g5xagwp7d187r80kcff82snp5p66aq1" {}; -libunwind = applePackage' "libunwind" "200.10" "macos-11.0.1" "0wa4ssr7skn5j0ncm1rigd56qmbs982zvwr3qpjn28krwp8wvigd" {}; -libutil = applePackage' "libutil" "58.40.2" "macos-11.0.1" "11s0vizk7bg0k0yjx21j8vaji4j4vk57131qbp07i9lpksb3bcy4" {}; -mDNSResponder = applePackage' "mDNSResponder" "1310.40.42" "macos-11.0.1" "0xxrqqbqsf0pagfs1yzwfbwf7lhr0sns97k18y7kh4ri0p09h44c" {}; -network_cmds = applePackage' "network_cmds" "606.40.2" "macos-11.0.1" "1jsy13nraarafq6wmgh3wyir8wrwfra148xsjns7cw7q5xn40a1w" {}; -objc4 = applePackage' "objc4" "818.2" "macos-11.0.1" "0m8mk1qd18wqjfn2jsq2lx6fxvllhmadmvz11jzg8vjw8pq91nw2" {}; -ppp = applePackage' "ppp" "877.40.2" "macos-11.0.1" "06xznc77j45zzi12m4cmr3jj853qlc8dbmynbg1z6m9qf5phdbgk" {}; -removefile = applePackage' "removefile" "49.40.3" "macos-11.0.1" "0870ihxpmvj8ggaycwlismbgbw9768lz7w6mc9vxf8l6nlc43z4f" {}; -shell_cmds = applePackage' "shell_cmds" "216.40.4" "macos-11.0.1" "0wbysc9lwf1xgl686r3yn95rndcmqlp17zc1ig9gsl5fxyy5bghh" {}; -text_cmds = applePackage' "text_cmds" "106" "macos-11.0.1" "17fn35m6i866zjrf8da6cq6crydp6vp4zq0aaab243rv1fx303yy" {}; -top = applePackage' "top" "129" "macos-11.0.1" "0d9pqmv3mwkfcv7c05hfvnvnn4rbsl92plr5hsazp854pshzqw2k" {}; -xnu = applePackage' "xnu" "7195.50.7.100.1" "macos-11.0.1" "11zjmpw11rcc6a0xlbwramra1rsr65s4ypnxwpajgbr2c657lipl" {}; + CommonCrypto = + applePackage' "CommonCrypto" "60178.40.2" "macos-11.0.1" + "129gsxhhcxqycg0zjrdrz2ay4dv2ih1ckafqh33qrc499z8dam2p" + { }; + Csu = + applePackage' "Csu" "88" "macos-11.0.1" "1lzp9x8iv60c2h12q2s89nf49b5hvpqq4a9li44zr2fxszn8lqxh" + { }; + ICU = + applePackage' "ICU" "66108" "macos-11.0.1" "0mclizp99daihghqy2sgzjkid8i93dsn5pi8q9p7b3156chrhw57" + { }; + Libc = + applePackage' "Libc" "1439.40.11" "macos-11.0.1" + "12k5sbz2k1pl839w2lk9iw414zzl50zdjzgq2x6bm20yjbfj69qm" + { }; + Libinfo = + applePackage' "Libinfo" "542.40.3" "macos-11.0.1" + "18jvl7cdg64x6clhsfv5pbzxis2aldddpca5r81xqakrmi9mck80" + { }; + Libnotify = + applePackage' "Libnotify" "279.40.4" "macos-11.0.1" + "1vr11s0c42ssjs29shy1m8rj008np7aswdzjpimsfzyav47jb6y7" + { }; + Librpcsvc = + applePackage' "Librpcsvc" "26" "macos-11.0.1" "0wf6srbw28664wa0dckldbhrl9ydg70fms06rj6i7mvlrz1ccxk0" + { }; + Libsystem = + applePackage' "Libsystem" "1292.50.1" "macos-11.0.1" + "0d3flh1p4kskic8ypi8wia4kinfbprx9fvyfqc3mcq0710i0gy77" + { }; + PowerManagement = + applePackage' "PowerManagement" "1132.50.3" "macos-11.0.1" + "1sb2nz92vdf6v3h17ry0vgw0z9zsva82lhdrhsf3k60jhfw1fi2v" + { }; + Security = + applePackage' "Security" "59754.41.1" "macos-11.0.1" + "0jq70mnwkvrrhws64ipx0i68pi3n0sk95jlhacxxikdj9f4hpbsw" + { }; + adv_cmds = + applePackage' "adv_cmds" "176" "macos-11.0.1" "0sskwl3jc7llbrlyd1i7qlb03yhm1xkbxd1k9xhh7f9wqhlzq31j" + { }; + architecture = + applePackage' "architecture" "279" "macos-11.0.1" + "19s93rqr9r98qh0rlndf7kv3v4n1ifh9i539mbpsx6kbixcx8vvp" + { }; + basic_cmds = + applePackage' "basic_cmds" "55" "macos-11.0.1" + "1913pzk376zfap2fwmrb233rkn4h4l2c65nd7s8ixvrz1r7cz0q5" + { }; + bootstrap_cmds = + applePackage' "bootstrap_cmds" "121" "macos-11.0.1" + "0qgbgwijv7xqmm9gn74jibyw2dh516xpj7h1grj2j1i80m3b16bl" + { }; + configd = + applePackage' "configd" "1109.40.9" "macos-11.0.1" + "024ny63lpwzgnm8g28hh8dldvmmislmrl298n721rm0blqjhahz5" + { }; + copyfile = + applePackage' "copyfile" "173.40.2" "macos-11.0.1" + "1j20909inn2iw8n51b8vk551wznfi3bhfziy8nbv08qj5lk50m04" + { }; + diskdev_cmds = + applePackage' "diskdev_cmds" "667.40.1" "macos-11.0.1" + "0wr60vyvgkbc4wyldnsqas0xss2k1fgmbdk3vnhj6v6jqa98l1ny" + { }; + dtrace = + applePackage' "dtrace" "370.40.1" "macos-11.0.1" + "1qj74mix1x3drffr1qpafm57aby42bc61kynba5q0ppbcf0lrbp1" + { }; + dyld = + applePackage' "dyld" "832.7.1" "macos-11.0.1" "01q7fsibr6xp94l3w22sh8qfjgwzzf1v82mhgq39ivkxwwc4jdy0" + { }; + eap8021x = + applePackage' "eap8021x" "304.40.1" "macos-11.0.1" + "1aihyklri64w380d1mvi830n5cnzs9gd38z8i9ccd37n48gmz88p" + { }; + file_cmds = + applePackage' "file_cmds" "321.40.3" "macos-11.0.1" + "0p077lnbcy8266m03a0fssj4214bjxh88y3qkspnzcvi0g84k43q" + { }; + hfs = + applePackage' "hfs" "556.41.1" "macos-11.0.1" "0a0s6b12b0q07wslfifna0bj51dml9v098i4crr2m1vivnx4xj75" + { }; + libclosure = + applePackage' "libclosure" "78" "macos-11.0.1" + "0vf9n0k3m8dbprv1bf45zqg0g43bidy2i5z1v9a826bsf8lv7am7" + { }; + libdispatch = + applePackage' "libdispatch" "1271.40.12" "macos-11.0.1" + "1ck5srcjapg18vqb8wl08gacs7ndc6xr067qjn3ngx39q1jdcywz" + { }; + libiconv = + applePackage' "libiconv" "59" "macos-11.0.1" "0lwa4brdwm4lvrdnxylzsn1yph4m7csgri2zkc4xb4xiisz32pwp" + { }; + libmalloc = + applePackage' "libmalloc" "317.40.8" "macos-11.0.1" + "sha256-Tdhb0mq3w4Hwvp3xHB79Vr22hCOQK6h28HCsd7jvITI=" + { }; + libplatform = + applePackage' "libplatform" "254.40.4" "macos-11.0.1" + "1qf3ri0yd8b1xjln1j1gyx7ks6k3a2jhd63blyvfby75y9s7flky" + { }; + libpthread = + applePackage' "libpthread" "454.40.3" "macos-11.0.1" + "0zljbw8mpb80n1if65hhi9lkgwbgjr8vc9wvf7q1nl3mzyl35f8p" + { }; + libresolv = + applePackage' "libresolv" "68" "macos-11.0.1" "045ahh8nvaam9whryc2f5g5xagwp7d187r80kcff82snp5p66aq1" + { }; + libunwind = + applePackage' "libunwind" "200.10" "macos-11.0.1" + "0wa4ssr7skn5j0ncm1rigd56qmbs982zvwr3qpjn28krwp8wvigd" + { }; + libutil = + applePackage' "libutil" "58.40.2" "macos-11.0.1" + "11s0vizk7bg0k0yjx21j8vaji4j4vk57131qbp07i9lpksb3bcy4" + { }; + mDNSResponder = + applePackage' "mDNSResponder" "1310.40.42" "macos-11.0.1" + "0xxrqqbqsf0pagfs1yzwfbwf7lhr0sns97k18y7kh4ri0p09h44c" + { }; + network_cmds = + applePackage' "network_cmds" "606.40.2" "macos-11.0.1" + "1jsy13nraarafq6wmgh3wyir8wrwfra148xsjns7cw7q5xn40a1w" + { }; + objc4 = + applePackage' "objc4" "818.2" "macos-11.0.1" "0m8mk1qd18wqjfn2jsq2lx6fxvllhmadmvz11jzg8vjw8pq91nw2" + { }; + ppp = + applePackage' "ppp" "877.40.2" "macos-11.0.1" "06xznc77j45zzi12m4cmr3jj853qlc8dbmynbg1z6m9qf5phdbgk" + { }; + removefile = + applePackage' "removefile" "49.40.3" "macos-11.0.1" + "0870ihxpmvj8ggaycwlismbgbw9768lz7w6mc9vxf8l6nlc43z4f" + { }; + shell_cmds = + applePackage' "shell_cmds" "216.40.4" "macos-11.0.1" + "0wbysc9lwf1xgl686r3yn95rndcmqlp17zc1ig9gsl5fxyy5bghh" + { }; + text_cmds = + applePackage' "text_cmds" "106" "macos-11.0.1" + "17fn35m6i866zjrf8da6cq6crydp6vp4zq0aaab243rv1fx303yy" + { }; + top = + applePackage' "top" "129" "macos-11.0.1" "0d9pqmv3mwkfcv7c05hfvnvnn4rbsl92plr5hsazp854pshzqw2k" + { }; + xnu = + applePackage' "xnu" "7195.50.7.100.1" "macos-11.0.1" + "11zjmpw11rcc6a0xlbwramra1rsr65s4ypnxwpajgbr2c657lipl" + { }; } diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/network_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/network_cmds/default.nix index 600571f..362f88e 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/network_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/network_cmds/default.nix @@ -1,9 +1,22 @@ -{ lib, appleDerivation, xcbuildHook, stdenv -, Librpcsvc, xnu, libpcap, developer_cmds }: +{ + lib, + appleDerivation, + xcbuildHook, + stdenv, + Librpcsvc, + xnu, + libpcap, + developer_cmds, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ xnu Librpcsvc libpcap developer_cmds ]; + buildInputs = [ + xnu + Librpcsvc + libpcap + developer_cmds + ]; # Work around error from on aarch64-darwin: # error: 'TARGET_OS_IPHONE' is not defined, evaluates to 0 [-Werror,-Wundef-prefix=TARGET_OS_] @@ -45,7 +58,7 @@ appleDerivation { # mkdir -p $out/System/Library/LaunchDaemons # install kdumpd.tproj/com.apple.kdumpd.plist $out/System/Library/LaunchDaemons - ''; + ''; meta = { platforms = lib.platforms.darwin; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/pure.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/pure.nix index 6a0c819..5a4924d 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/pure.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/objc4/pure.nix @@ -1,4 +1,11 @@ -{ stdenv, fetchapplesource, libauto, launchd, libc_old, libunwind }: +{ + stdenv, + fetchapplesource, + libauto, + launchd, + libc_old, + libunwind, +}: stdenv.mkDerivation rec { version = "551.1"; @@ -6,13 +13,18 @@ stdenv.mkDerivation rec { src = fetchapplesource { inherit version; - name = "objc4"; + name = "objc4"; sha256 = "1jrdb6yyb5jwwj27c1r0nr2y2ihqjln8ynj61mpkvp144c1cm5bg"; }; patches = [ ./spinlocks.patch ]; - buildInputs = [ libauto launchd libc_old libunwind ]; + buildInputs = [ + libauto + launchd + libc_old + libunwind + ]; buildPhase = '' cp ${./objc-probes.h} runtime/objc-probes.h diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/shell_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/shell_cmds/default.nix index a835228..1d4c67d 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/shell_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/shell_cmds/default.nix @@ -1,7 +1,15 @@ -{ lib, appleDerivation, xcbuildHook, launchd }: +{ + lib, + appleDerivation, + xcbuildHook, + launchd, +}: appleDerivation { - nativeBuildInputs = [ xcbuildHook launchd ]; + nativeBuildInputs = [ + xcbuildHook + launchd + ]; patchPhase = '' # NOTE: these hashes must be recalculated for each version change diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/text_cmds/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/text_cmds/default.nix index c6fc009..3ab8c13 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/text_cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/text_cmds/default.nix @@ -1,8 +1,21 @@ -{ lib, appleDerivation, xcbuildHook, ncurses, bzip2, zlib, xz }: +{ + lib, + appleDerivation, + xcbuildHook, + ncurses, + bzip2, + zlib, + xz, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ ncurses bzip2 zlib xz ]; + buildInputs = [ + ncurses + bzip2 + zlib + xz + ]; # patches to use ncursees # disables md5 diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/top/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/top/default.nix index 2a47de0..c69ed4b 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/top/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/top/default.nix @@ -1,8 +1,19 @@ -{xcbuildHook, appleDerivation, apple_sdk, ncurses, libutil, lib}: +{ + xcbuildHook, + appleDerivation, + apple_sdk, + ncurses, + libutil, + lib, +}: appleDerivation { nativeBuildInputs = [ xcbuildHook ]; - buildInputs = [ apple_sdk.frameworks.IOKit ncurses libutil ]; + buildInputs = [ + apple_sdk.frameworks.IOKit + ncurses + libutil + ]; # Workaround build failure on -fno-common toolchains: # duplicate symbol '_tsamp' in: main.o top.o env.NIX_CFLAGS_COMPILE = "-fcommon"; diff --git a/pkgs/by-name/da/darwin/packages/apple-source-releases/xnu/default.nix b/pkgs/by-name/da/darwin/packages/apple-source-releases/xnu/default.nix index 14ede79..7971934 100644 --- a/pkgs/by-name/da/darwin/packages/apple-source-releases/xnu/default.nix +++ b/pkgs/by-name/da/darwin/packages/apple-source-releases/xnu/default.nix @@ -1,164 +1,190 @@ -{ appleDerivation', lib, stdenv, stdenvNoCC, buildPackages -, bootstrap_cmds, bison, flex -, gnum4, unifdef, perl, python3 -, headersOnly ? true +{ + appleDerivation', + lib, + stdenv, + stdenvNoCC, + buildPackages, + bootstrap_cmds, + bison, + flex, + gnum4, + unifdef, + perl, + python3, + headersOnly ? true, }: appleDerivation' (if headersOnly then stdenvNoCC else stdenv) ( - let arch = if stdenv.isx86_64 then "x86_64" else "arm64"; + let + arch = if stdenv.isx86_64 then "x86_64" else "arm64"; in { - depsBuildBuild = [ buildPackages.stdenv.cc ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bootstrap_cmds bison flex gnum4 unifdef perl python3 ]; + nativeBuildInputs = [ + bootstrap_cmds + bison + flex + gnum4 + unifdef + perl + python3 + ]; - patches = lib.optionals stdenv.isx86_64 [ ./python3.patch ]; + patches = lib.optionals stdenv.isx86_64 [ ./python3.patch ]; - postPatch = '' - substituteInPlace Makefile \ - --replace "/bin/" "" \ - --replace "MAKEJOBS := " '# MAKEJOBS := ' + postPatch = + '' + substituteInPlace Makefile \ + --replace "/bin/" "" \ + --replace "MAKEJOBS := " '# MAKEJOBS := ' - substituteInPlace makedefs/MakeInc.cmd \ - --replace "/usr/bin/" "" \ - --replace "/bin/" "" \ - --replace "-Werror " "" + substituteInPlace makedefs/MakeInc.cmd \ + --replace "/usr/bin/" "" \ + --replace "/bin/" "" \ + --replace "-Werror " "" - substituteInPlace makedefs/MakeInc.def \ - --replace "-c -S -m" "-c -m" + substituteInPlace makedefs/MakeInc.def \ + --replace "-c -S -m" "-c -m" - substituteInPlace makedefs/MakeInc.top \ - --replace "MEMORY_SIZE := " 'MEMORY_SIZE := 1073741824 # ' + substituteInPlace makedefs/MakeInc.top \ + --replace "MEMORY_SIZE := " 'MEMORY_SIZE := 1073741824 # ' - substituteInPlace libkern/kxld/Makefile \ - --replace "-Werror " "" + substituteInPlace libkern/kxld/Makefile \ + --replace "-Werror " "" - substituteInPlace SETUP/kextsymboltool/Makefile \ - --replace "-lstdc++" "-lc++" + substituteInPlace SETUP/kextsymboltool/Makefile \ + --replace "-lstdc++" "-lc++" - substituteInPlace libsyscall/xcodescripts/mach_install_mig.sh \ - --replace "/usr/include" "/include" \ - --replace "/usr/local/include" "/include" \ - --replace 'MIG=`' "# " \ - --replace 'MIGCC=`' "# " \ - --replace " -o 0" "" \ - --replace '$SRC/$mig' '-I$DSTROOT/include $SRC/$mig' \ - --replace '$SRC/servers/netname.defs' '-I$DSTROOT/include $SRC/servers/netname.defs' \ - --replace '$BUILT_PRODUCTS_DIR/mig_hdr' '$BUILT_PRODUCTS_DIR' \ - --replace 'MACHINE_ARCH=armv7' 'MACHINE_ARCH=arm64' # this might break the comments saying 32-bit is required + substituteInPlace libsyscall/xcodescripts/mach_install_mig.sh \ + --replace "/usr/include" "/include" \ + --replace "/usr/local/include" "/include" \ + --replace 'MIG=`' "# " \ + --replace 'MIGCC=`' "# " \ + --replace " -o 0" "" \ + --replace '$SRC/$mig' '-I$DSTROOT/include $SRC/$mig' \ + --replace '$SRC/servers/netname.defs' '-I$DSTROOT/include $SRC/servers/netname.defs' \ + --replace '$BUILT_PRODUCTS_DIR/mig_hdr' '$BUILT_PRODUCTS_DIR' \ + --replace 'MACHINE_ARCH=armv7' 'MACHINE_ARCH=arm64' # this might break the comments saying 32-bit is required - patchShebangs . - '' + lib.optionalString stdenv.isAarch64 '' - # iig is closed-sourced, we don't have it - # create an empty file to the header instead - # this line becomes: echo "" > $@; echo --header ... - substituteInPlace iokit/DriverKit/Makefile \ - --replace '--def $<' '> $@; echo' - ''; + patchShebangs . + '' + + lib.optionalString stdenv.isAarch64 '' + # iig is closed-sourced, we don't have it + # create an empty file to the header instead + # this line becomes: echo "" > $@; echo --header ... + substituteInPlace iokit/DriverKit/Makefile \ + --replace '--def $<' '> $@; echo' + ''; - PLATFORM = "MacOSX"; - SDKVERSION = "10.11"; - CC = "${stdenv.cc.targetPrefix or ""}cc"; - CXX = "${stdenv.cc.targetPrefix or ""}c++"; - MIG = "mig"; - MIGCOM = "migcom"; - STRIP = "${stdenv.cc.bintools.targetPrefix or ""}strip"; - RANLIB = "${stdenv.cc.bintools.targetPrefix or ""}ranlib"; - NM = "${stdenv.cc.bintools.targetPrefix or ""}nm"; - UNIFDEF = "unifdef"; - DSYMUTIL = "dsymutil"; - HOST_OS_VERSION = "10.10"; - HOST_CC = "${buildPackages.stdenv.cc.targetPrefix or ""}cc"; - HOST_FLEX = "flex"; - HOST_BISON = "bison"; - HOST_GM4 = "m4"; - MIGCC = "cc"; - ARCHS = arch; - ARCH_CONFIGS = arch; + PLATFORM = "MacOSX"; + SDKVERSION = "10.11"; + CC = "${stdenv.cc.targetPrefix or ""}cc"; + CXX = "${stdenv.cc.targetPrefix or ""}c++"; + MIG = "mig"; + MIGCOM = "migcom"; + STRIP = "${stdenv.cc.bintools.targetPrefix or ""}strip"; + RANLIB = "${stdenv.cc.bintools.targetPrefix or ""}ranlib"; + NM = "${stdenv.cc.bintools.targetPrefix or ""}nm"; + UNIFDEF = "unifdef"; + DSYMUTIL = "dsymutil"; + HOST_OS_VERSION = "10.10"; + HOST_CC = "${buildPackages.stdenv.cc.targetPrefix or ""}cc"; + HOST_FLEX = "flex"; + HOST_BISON = "bison"; + HOST_GM4 = "m4"; + MIGCC = "cc"; + ARCHS = arch; + ARCH_CONFIGS = arch; - env.NIX_CFLAGS_COMPILE = "-Wno-error"; + env.NIX_CFLAGS_COMPILE = "-Wno-error"; - preBuild = let macosVersion = - "10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11" + - lib.optionalString stdenv.isAarch64 " 10.12 10.13 10.14 10.15 11.0"; - in '' - # This is a bit of a hack... - mkdir -p sdk/usr/local/libexec + preBuild = + let + macosVersion = + "10.0 10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11" + + lib.optionalString stdenv.isAarch64 " 10.12 10.13 10.14 10.15 11.0"; + in + '' + # This is a bit of a hack... + mkdir -p sdk/usr/local/libexec - cat > sdk/usr/local/libexec/availability.pl < sdk/usr/local/libexec/availability.pl <> security & privacy >> accessibility' diff --git a/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix b/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix index 51e345f..eac4f6b 100644 --- a/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix +++ b/pkgs/by-name/da/darwin/packages/impure-cmds/default.nix @@ -6,29 +6,33 @@ let commands = { ditto = "/usr/bin/ditto"; # ditto is not opensource - sudo = "/usr/bin/sudo"; # sudo must be owned by uid 0 and have the setuid bit set + sudo = "/usr/bin/sudo"; # sudo must be owned by uid 0 and have the setuid bit set }; - mkImpureDrv = name: path: - runCommandLocal "${name}-impure-darwin" { - __impureHostDeps = [ path ]; + mkImpureDrv = + name: path: + runCommandLocal "${name}-impure-darwin" + { + __impureHostDeps = [ path ]; - meta = { - platforms = lib.platforms.darwin; - }; - } '' - if ! [ -x ${path} ]; then - echo Cannot find command ${path} - exit 1 - fi + meta = { + platforms = lib.platforms.darwin; + }; + } + '' + if ! [ -x ${path} ]; then + echo Cannot find command ${path} + exit 1 + fi - mkdir -p $out/bin - ln -s ${path} $out/bin + mkdir -p $out/bin + ln -s ${path} $out/bin - manpage="/usr/share/man/man1/${name}.1" - if [ -f $manpage ]; then - mkdir -p $out/share/man/man1 - ln -s $manpage $out/share/man/man1 - fi - ''; -in lib.mapAttrs mkImpureDrv commands + manpage="/usr/share/man/man1/${name}.1" + if [ -f $manpage ]; then + mkdir -p $out/share/man/man1 + ln -s $manpage $out/share/man/man1 + fi + ''; +in +lib.mapAttrs mkImpureDrv commands diff --git a/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix b/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix index c405ac8..a5e99b2 100644 --- a/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix +++ b/pkgs/by-name/da/darwin/packages/ios-deploy/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchFromGitHub -, darwin -, testers +{ + lib, + stdenv, + fetchFromGitHub, + darwin, + testers, }: let @@ -19,9 +20,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-TVGC+f+1ow3b93CK3PhIL70le5SZxxb2ug5OkIg8XCA="; }; - buildInputs = [ - darwin.apple_sdk.frameworks.Foundation - ]; + buildInputs = [ darwin.apple_sdk.frameworks.Foundation ]; buildPhase = '' runHook preBuild @@ -43,13 +42,9 @@ stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; - __impureHostDeps = [ - privateFrameworks - ]; + __impureHostDeps = [ privateFrameworks ]; - passthru.tests.version = testers.testVersion { - package = finalAttrs.finalPackage; - }; + passthru.tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; meta = { description = "Install and debug iPhone apps from the command line, without using Xcode"; diff --git a/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix b/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix index a7f1f0b..9ad1e60 100644 --- a/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix +++ b/pkgs/by-name/da/darwin/packages/iproute2mac/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, darwin, python3 }: +{ + lib, + stdenv, + fetchFromGitHub, + darwin, + python3, +}: stdenv.mkDerivation rec { version = "1.4.1"; diff --git a/pkgs/by-name/da/darwin/packages/libtapi/default.nix b/pkgs/by-name/da/darwin/packages/libtapi/default.nix index cb6b3cf..7d57388 100644 --- a/pkgs/by-name/da/darwin/packages/libtapi/default.nix +++ b/pkgs/by-name/da/darwin/packages/libtapi/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchFromGitHub, pkgsBuildBuild, cmake, python3, ncurses }: +{ + lib, + stdenv, + fetchFromGitHub, + pkgsBuildBuild, + cmake, + python3, + ncurses, +}: stdenv.mkDerivation (finalAttrs: { pname = "libtapi"; @@ -15,21 +23,25 @@ stdenv.mkDerivation (finalAttrs: { # Backported from newer llvm, fixes configure error when cross compiling. # Also means we don't have to manually fix the result with install_name_tool. - patches = [ - ./disable-rpath.patch - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # TODO: make unconditional and rebuild the world - # TODO: send upstream - ./native-clang-tblgen.patch - ]; + patches = + [ ./disable-rpath.patch ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # TODO: make unconditional and rebuild the world + # TODO: send upstream + ./native-clang-tblgen.patch + ]; - nativeBuildInputs = [ cmake python3 ]; + nativeBuildInputs = [ + cmake + python3 + ]; # ncurses is required here to avoid a reference to bootstrap-tools, which is # not allowed for the stdenv. buildInputs = [ ncurses ]; - cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=OFF" ] + cmakeFlags = + [ "-DLLVM_INCLUDE_TESTS=OFF" ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "-DCMAKE_CROSSCOMPILING=True" # This package could probably have a llvm_6 llvm-tblgen and clang-tblgen @@ -47,7 +59,8 @@ stdenv.mkDerivation (finalAttrs: { "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}" + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=${lib.concatStringsSep ";" nativeToolchainFlags}" ) ]; @@ -61,9 +74,17 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="$INCLUDE_FIX") ''; - buildFlags = [ "clangBasic" "libtapi" "tapi" ]; + buildFlags = [ + "clangBasic" + "libtapi" + "tapi" + ]; - installTargets = [ "install-libtapi" "install-tapi-headers" "install-tapi" ]; + installTargets = [ + "install-libtapi" + "install-tapi-headers" + "install-tapi" + ]; meta = with lib; { description = "Replaces the Mach-O Dynamic Library Stub files in Apple's SDKs to reduce the size"; diff --git a/pkgs/by-name/da/darwin/packages/lsusb/default.nix b/pkgs/by-name/da/darwin/packages/lsusb/default.nix index 712e32f..a29df82 100644 --- a/pkgs/by-name/da/darwin/packages/lsusb/default.nix +++ b/pkgs/by-name/da/darwin/packages/lsusb/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub }: +{ + lib, + stdenv, + fetchFromGitHub, +}: stdenv.mkDerivation { version = "1.0"; diff --git a/pkgs/by-name/da/darwin/packages/openwith/default.nix b/pkgs/by-name/da/darwin/packages/openwith/default.nix index eb78f7a..ec7b92a 100644 --- a/pkgs/by-name/da/darwin/packages/openwith/default.nix +++ b/pkgs/by-name/da/darwin/packages/openwith/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchFromGitHub, swift, AppKit, Foundation, UniformTypeIdentifiers }: +{ + lib, + stdenv, + fetchFromGitHub, + swift, + AppKit, + Foundation, + UniformTypeIdentifiers, +}: let arch = if stdenv.isAarch64 then "arm64" else "x86_64"; @@ -16,7 +24,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ swift ]; - buildInputs = [ AppKit Foundation UniformTypeIdentifiers ]; + buildInputs = [ + AppKit + Foundation + UniformTypeIdentifiers + ]; makeFlags = [ "openwith_${arch}" ]; @@ -31,7 +43,10 @@ stdenv.mkDerivation rec { homepage = "https://github.com/jdek/openwith"; license = licenses.unlicense; maintainers = with maintainers; [ zowoq ]; - platforms = [ "aarch64-darwin" "x86_64-darwin" ]; + platforms = [ + "aarch64-darwin" + "x86_64-darwin" + ]; broken = stdenv.isx86_64; # https://hydra.nixos.org/build/219354133/nixlog/3 }; } diff --git a/pkgs/by-name/da/darwin/packages/print-reexports/default.nix b/pkgs/by-name/da/darwin/packages/print-reexports/default.nix index 992cf1b..88d8d85 100644 --- a/pkgs/by-name/da/darwin/packages/print-reexports/default.nix +++ b/pkgs/by-name/da/darwin/packages/print-reexports/default.nix @@ -1,8 +1,12 @@ -{ lib, stdenv, libyaml }: +{ + lib, + stdenv, + libyaml, +}: stdenv.mkDerivation { name = "print-reexports"; - src = lib.sourceFilesBySuffices ./. [".c"]; + src = lib.sourceFilesBySuffices ./. [ ".c" ]; buildInputs = [ libyaml ]; diff --git a/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix b/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix index 527cca8..1026d9a 100644 --- a/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix +++ b/pkgs/by-name/da/darwin/packages/rewrite-tbd/default.nix @@ -1,4 +1,9 @@ -{ stdenv, lib, fetchFromGitHub, libyaml }: +{ + stdenv, + lib, + fetchFromGitHub, + libyaml, +}: stdenv.mkDerivation { pname = "rewrite-tbd"; @@ -20,7 +25,11 @@ stdenv.mkDerivation { buildInputs = [ libyaml ]; - makeFlags = [ "-f" "Makefile.boot" "PREFIX=${placeholder "out"}"]; + makeFlags = [ + "-f" + "Makefile.boot" + "PREFIX=${placeholder "out"}" + ]; meta = with lib; { homepage = "https://github.com/thefloweringash/rewrite-tbd/"; diff --git a/pkgs/by-name/da/darwin/packages/signing-utils/default.nix b/pkgs/by-name/da/darwin/packages/signing-utils/default.nix index 035ac59..9cfe992 100644 --- a/pkgs/by-name/da/darwin/packages/signing-utils/default.nix +++ b/pkgs/by-name/da/darwin/packages/signing-utils/default.nix @@ -1,6 +1,7 @@ -{ stdenvNoCC -, sigtool -, cctools +{ + stdenvNoCC, + sigtool, + cctools, }: let diff --git a/pkgs/by-name/da/darwin/packages/signing-utils/post-link-sign-hook.nix b/pkgs/by-name/da/darwin/packages/signing-utils/post-link-sign-hook.nix index 13595e3..7857669 100644 --- a/pkgs/by-name/da/darwin/packages/signing-utils/post-link-sign-hook.nix +++ b/pkgs/by-name/da/darwin/packages/signing-utils/post-link-sign-hook.nix @@ -1,4 +1,8 @@ -{ writeTextFile, cctools, sigtool }: +{ + writeTextFile, + cctools, + sigtool, +}: writeTextFile { name = "post-link-sign-hook"; diff --git a/pkgs/by-name/da/darwin/packages/sigtool/default.nix b/pkgs/by-name/da/darwin/packages/sigtool/default.nix index eb323a8..95fde38 100644 --- a/pkgs/by-name/da/darwin/packages/sigtool/default.nix +++ b/pkgs/by-name/da/darwin/packages/sigtool/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, openssl }: +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + openssl, +}: stdenv.mkDerivation rec { pname = "sigtool"; diff --git a/pkgs/by-name/da/darwin/packages/stubs/default.nix b/pkgs/by-name/da/darwin/packages/stubs/default.nix index 862305a..832fdc5 100644 --- a/pkgs/by-name/da/darwin/packages/stubs/default.nix +++ b/pkgs/by-name/da/darwin/packages/stubs/default.nix @@ -1,12 +1,22 @@ -{ lib, writeScriptBin, runtimeShell }: +{ + lib, + writeScriptBin, + runtimeShell, +}: -let fake = name: lib.overrideDerivation (writeScriptBin name '' - #!${runtimeShell} - echo >&2 "Faking call to ${name} with arguments:" - echo >&2 "$@" -'') (drv: { - name = "${name}-stub"; -}); in +let + fake = + name: + lib.overrideDerivation + (writeScriptBin name '' + #!${runtimeShell} + echo >&2 "Faking call to ${name} with arguments:" + echo >&2 "$@" + '') + (drv: { + name = "${name}-stub"; + }); +in { setfile = fake "SetFile"; diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix b/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix index 5c593b1..750e6c2 100644 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix +++ b/pkgs/by-name/da/darwin/packages/swift-corelibs/corefoundation.nix @@ -1,11 +1,25 @@ -{ lib, stdenv, fetchFromGitHub, fetchurl, makeSetupHook, cmake, pkg-config, launchd, libdispatch, python3Minimal, libxml2, objc4, icu }: +{ + lib, + stdenv, + fetchFromGitHub, + fetchurl, + makeSetupHook, + cmake, + pkg-config, + launchd, + libdispatch, + python3Minimal, + libxml2, + objc4, + icu, +}: let # 10.12 adds a new sysdir.h that our version of CF in the main derivation depends on, but # isn't available publicly, so instead we grab an older version of the same file that did # not use sysdir.h, but provided the same functionality. Luckily it's simple :) hack hack sysdir-free-system-directories = fetchurl { - url = "https://raw.githubusercontent.com/apple/swift-corelibs-foundation/9a5d8420f7793e63a8d5ec1ede516c4ebec939f0/CoreFoundation/Base.subproj/CFSystemDirectories.c"; + url = "https://raw.githubusercontent.com/apple/swift-corelibs-foundation/9a5d8420f7793e63a8d5ec1ede516c4ebec939f0/CoreFoundation/Base.subproj/CFSystemDirectories.c"; sha256 = "0krfyghj4f096arvvpf884ra5czqlmbrgf8yyc0b3avqmb613pcc"; }; in @@ -15,14 +29,24 @@ stdenv.mkDerivation { version = "unstable-2018-09-14"; src = fetchFromGitHub { - owner = "apple"; - repo = "swift-corelibs-foundation"; - rev = "71aaba20e1450a82c516af1342fe23268e15de0a"; + owner = "apple"; + repo = "swift-corelibs-foundation"; + rev = "71aaba20e1450a82c516af1342fe23268e15de0a"; sha256 = "17kpql0f27xxz4jjw84vpas5f5sn4vdqwv10g151rc3rswbwln1z"; }; - nativeBuildInputs = [ cmake pkg-config python3Minimal ]; - buildInputs = [ (lib.getDev launchd) libdispatch libxml2 objc4 icu ]; + nativeBuildInputs = [ + cmake + pkg-config + python3Minimal + ]; + buildInputs = [ + (lib.getDev launchd) + libdispatch + libxml2 + objc4 + icu + ]; patches = [ ./0001-Add-missing-TARGET_OS_-defines.patch diff --git a/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix b/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix index a5b4b2a..ed3512d 100644 --- a/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix +++ b/pkgs/by-name/da/darwin/packages/swift-corelibs/libdispatch.nix @@ -1,4 +1,10 @@ -{ stdenv, fetchFromGitHub, cmake, apple_sdk_sierra, xnu-new }: +{ + stdenv, + fetchFromGitHub, + cmake, + apple_sdk_sierra, + xnu-new, +}: stdenv.mkDerivation rec { name = "swift-corelibs-libdispatch"; @@ -9,5 +15,8 @@ stdenv.mkDerivation rec { sha256 = "1czkyyc9llq2mnqfp19mzcfsxzas0y8zrk0gr5hg60acna6jkz2l"; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ apple_sdk_sierra.sdk xnu-new ]; + buildInputs = [ + apple_sdk_sierra.sdk + xnu-new + ]; } diff --git a/pkgs/by-name/da/darwin/packages/trash/default.nix b/pkgs/by-name/da/darwin/packages/trash/default.nix index a239f66..d3bfcf6 100644 --- a/pkgs/by-name/da/darwin/packages/trash/default.nix +++ b/pkgs/by-name/da/darwin/packages/trash/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchFromGitHub, perl, AppKit, Cocoa, ScriptingBridge }: +{ + lib, + stdenv, + fetchFromGitHub, + perl, + AppKit, + Cocoa, + ScriptingBridge, +}: stdenv.mkDerivation rec { version = "0.9.2"; @@ -11,7 +19,12 @@ stdenv.mkDerivation rec { sha256 = "1d3rc03vgz32faj7qi18iiggxvxlqrj9lsk5jkpa9r1mcs5d89my"; }; - buildInputs = [ perl Cocoa AppKit ScriptingBridge ]; + buildInputs = [ + perl + Cocoa + AppKit + ScriptingBridge + ]; patches = [ ./trash.diff ]; diff --git a/pkgs/by-name/da/darwin/packages/xattr/default.nix b/pkgs/by-name/da/darwin/packages/xattr/default.nix index 7fe0f84..5c8a693 100644 --- a/pkgs/by-name/da/darwin/packages/xattr/default.nix +++ b/pkgs/by-name/da/darwin/packages/xattr/default.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, buildPythonPackage -, python -, ed -, unifdef +{ + lib, + stdenv, + fetchFromGitHub, + buildPythonPackage, + python, + ed, + unifdef, }: buildPythonPackage rec { @@ -35,7 +36,11 @@ buildPythonPackage rec { ]; # need to use `out` instead of `bin` since buildPythonPackage ignores the latter - outputs = [ "out" "doc" "python" ]; + outputs = [ + "out" + "doc" + "python" + ]; # We need to patch a reference to gnutar in an included Makefile postUnpack = '' @@ -71,7 +76,10 @@ buildPythonPackage rec { meta = with lib; { description = "Display and manipulate extended attributes"; - license = [ licenses.psfl licenses.mit ]; # see $doc/share/xattr/OpenSourceLicenses + license = [ + licenses.psfl + licenses.mit + ]; # see $doc/share/xattr/OpenSourceLicenses maintainers = [ maintainers.sternenseemann ]; homepage = "https://opensource.apple.com/source/python_modules/"; platforms = lib.platforms.darwin; diff --git a/pkgs/by-name/da/darwin/packages/xcode/default.nix b/pkgs/by-name/da/darwin/packages/xcode/default.nix index 1b7949d..b8fe1cf 100644 --- a/pkgs/by-name/da/darwin/packages/xcode/default.nix +++ b/pkgs/by-name/da/darwin/packages/xcode/default.nix @@ -1,48 +1,58 @@ -{ stdenv, requireFile, lib }: +{ + stdenv, + requireFile, + lib, +}: -let requireXcode = version: sha256: - let - xip = "Xcode_" + version + ".xip"; +let + requireXcode = + version: sha256: + let + xip = "Xcode_" + version + ".xip"; - unxip = if stdenv.buildPlatform.isDarwin - then '' - open -W ${xip} - rm -rf ${xip} - '' - else '' - xar -xf ${xip} - rm -rf ${xip} - pbzx -n Content | cpio -i - rm Content Metadata - rcodesign verify Xcode.app/Contents/MacOS/Xcode - ''; + unxip = + if stdenv.buildPlatform.isDarwin then + '' + open -W ${xip} + rm -rf ${xip} + '' + else + '' + xar -xf ${xip} + rm -rf ${xip} + pbzx -n Content | cpio -i + rm Content Metadata + rcodesign verify Xcode.app/Contents/MacOS/Xcode + ''; - app = requireFile rec { - name = "Xcode.app"; - url = "https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_${version}/${xip}"; - hashMode = "recursive"; - inherit sha256; - message = '' - Unfortunately, we cannot download ${name} automatically. - Please go to ${url} - to download it yourself, and add it to the Nix store by running the following commands. - Note: download (~ 5GB), extraction and storing of Xcode will take a while + app = requireFile rec { + name = "Xcode.app"; + url = "https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_${version}/${xip}"; + hashMode = "recursive"; + inherit sha256; + message = '' + Unfortunately, we cannot download ${name} automatically. + Please go to ${url} + to download it yourself, and add it to the Nix store by running the following commands. + Note: download (~ 5GB), extraction and storing of Xcode will take a while - ${unxip} - nix-store --add-fixed --recursive sha256 Xcode.app - rm -rf Xcode.app - ''; - }; - meta = with lib; { - homepage = "https://developer.apple.com/downloads/"; - description = "Apple's XCode SDK"; - license = licenses.unfree; - platforms = platforms.darwin ++ platforms.linux; - }; + ${unxip} + nix-store --add-fixed --recursive sha256 Xcode.app + rm -rf Xcode.app + ''; + }; + meta = with lib; { + homepage = "https://developer.apple.com/downloads/"; + description = "Apple's XCode SDK"; + license = licenses.unfree; + platforms = platforms.darwin ++ platforms.linux; + }; - in app.overrideAttrs ( oldAttrs: oldAttrs // { inherit meta; }); + in + app.overrideAttrs (oldAttrs: oldAttrs // { inherit meta; }); -in lib.makeExtensible (self: { +in +lib.makeExtensible (self: { xcode_8_1 = requireXcode "8.1" "sha256-VuAovU/b4rcLh+xMtcsZmbTWwTk35VGfMSp+fqPbsqM="; xcode_8_2 = requireXcode "8.2" "sha256-ohqgGD7JEEmXEvmfn/N9Ga2lM8jNwhIuh+ky7PQPzY4="; xcode_9_1 = requireXcode "9.1" "sha256-LG7pVMh1rNh5uP/bASvV9sKvGDrSGWH90J4gzwcgYSk="; @@ -83,5 +93,10 @@ in lib.makeExtensible (self: { xcode_14_1 = requireXcode "14.1" "sha256-QJGAUVIhuDYyzDNttBPv5lIGOfvkYqdOFSUAr5tlkfs="; xcode_15 = requireXcode "15" "sha256-ffqISt2Ayccln5BArKIjSdzbEgoSoNwq8TPLGysAE0c="; xcode_15_1 = requireXcode "15.1" "sha256-0djqoSamU87rCpjo50Un3cFg9wKf+pSczRko6uumGM0="; - xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if (stdenv.targetPlatform ? xcodeVer) then stdenv.targetPlatform.xcodeVer else "12.3")}"; + xcode = + self."xcode_${ + lib.replaceStrings [ "." ] [ "_" ] ( + if (stdenv.targetPlatform ? xcodeVer) then stdenv.targetPlatform.xcodeVer else "12.3" + ) + }"; }) diff --git a/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix b/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix index 45cb12b..05f9acf 100644 --- a/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix +++ b/pkgs/by-name/da/darwin/packages/xcode/sdk-pkgs.nix @@ -1,18 +1,20 @@ -{ stdenv -, clang-unwrapped -, binutils-unwrapped -, runCommand +{ + stdenv, + clang-unwrapped, + binutils-unwrapped, + runCommand, -, wrapBintoolsWith -, wrapCCWith -, buildIosSdk, targetIosSdkPkgs -, xcode -, lib + wrapBintoolsWith, + wrapCCWith, + buildIosSdk, + targetIosSdkPkgs, + xcode, + lib, }: let -minSdkVersion = stdenv.targetPlatform.minSdkVersion or "9.0"; + minSdkVersion = stdenv.targetPlatform.minSdkVersion or "9.0"; in @@ -20,7 +22,9 @@ rec { sdk = rec { name = "ios-sdk"; type = "derivation"; - outPath = xcode + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk"; + outPath = + xcode + + "/Contents/Developer/Platforms/${platform}.platform/Developer/SDKs/${platform}${version}.sdk"; platform = stdenv.targetPlatform.xcodePlatform or ""; version = stdenv.targetPlatform.sdkVer or ""; @@ -31,31 +35,39 @@ rec { bintools = binutils-unwrapped; }; - clang = (wrapCCWith { - cc = clang-unwrapped; - bintools = binutils; - libc = targetIosSdkPkgs.libraries; - extraPackages = [ "${sdk}/System" ]; - extraBuildCommands = '' - tr '\n' ' ' < $out/nix-support/cc-cflags > cc-cflags.tmp - mv cc-cflags.tmp $out/nix-support/cc-cflags - echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags - echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags - ${lib.optionalString (lib.versionAtLeast sdk.version "14") "echo -isystem ${xcode}/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 >> $out/nix-support/cc-cflags"} - ''; - }) // { - inherit sdk; - }; - - libraries = let sdk = buildIosSdk; in runCommand "libSystem-prebuilt" { - passthru = { + clang = + (wrapCCWith { + cc = clang-unwrapped; + bintools = binutils; + libc = targetIosSdkPkgs.libraries; + extraPackages = [ "${sdk}/System" ]; + extraBuildCommands = '' + tr '\n' ' ' < $out/nix-support/cc-cflags > cc-cflags.tmp + mv cc-cflags.tmp $out/nix-support/cc-cflags + echo "-target ${stdenv.targetPlatform.config}" >> $out/nix-support/cc-cflags + echo "-isystem ${sdk}/usr/include${lib.optionalString (lib.versionAtLeast "10" sdk.version) " -isystem ${sdk}/usr/include/c++/4.2.1/ -stdlib=libstdc++"}" >> $out/nix-support/cc-cflags + ${lib.optionalString (lib.versionAtLeast sdk.version "14") "echo -isystem ${xcode}/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 >> $out/nix-support/cc-cflags"} + ''; + }) + // { inherit sdk; }; - } '' - if ! [ -d ${sdk} ]; then - echo "You must have version ${sdk.version} of the ${sdk.platform} sdk installed at ${sdk}" >&2 - exit 1 - fi - ln -s ${sdk}/usr $out - ''; + + libraries = + let + sdk = buildIosSdk; + in + runCommand "libSystem-prebuilt" + { + passthru = { + inherit sdk; + }; + } + '' + if ! [ -d ${sdk} ]; then + echo "You must have version ${sdk.version} of the ${sdk.platform} sdk installed at ${sdk}" >&2 + exit 1 + fi + ln -s ${sdk}/usr $out + ''; } diff --git a/pkgs/by-name/db/db/db-4.8.nix b/pkgs/by-name/db/db/db-4.8.nix index 8170537..b91ec5d 100644 --- a/pkgs/by-name/db/db/db-4.8.nix +++ b/pkgs/by-name/db/db/db-4.8.nix @@ -1,14 +1,23 @@ -{ lib, stdenv, fetchurl, autoreconfHook, ... } @ args: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + ... +}@args: -import ./generic.nix (args // { - version = "4.8.30"; - sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0"; - extraPatches = [ - ./clang-4.8.patch - ./CVE-2017-10140-4.8-cwd-db_config.patch - ./darwin-mutexes-4.8.patch - ]; +import ./generic.nix ( + args + // { + version = "4.8.30"; + sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0"; + extraPatches = [ + ./clang-4.8.patch + ./CVE-2017-10140-4.8-cwd-db_config.patch + ./darwin-mutexes-4.8.patch + ]; - drvArgs.hardeningDisable = [ "format" ]; - drvArgs.doCheck = false; -}) + drvArgs.hardeningDisable = [ "format" ]; + drvArgs.doCheck = false; + } +) diff --git a/pkgs/by-name/db/db/db-5.3.nix b/pkgs/by-name/db/db/db-5.3.nix index 2362cc9..77e9a1a 100644 --- a/pkgs/by-name/db/db/db-5.3.nix +++ b/pkgs/by-name/db/db/db-5.3.nix @@ -1,11 +1,20 @@ -{ lib, stdenv, fetchurl, autoreconfHook, ... } @ args: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + ... +}@args: -import ./generic.nix (args // { - version = "5.3.28"; - sha256 = "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"; - extraPatches = [ - ./clang-5.3.patch - ./CVE-2017-10140-cwd-db_config.patch - ./darwin-mutexes.patch - ]; -}) +import ./generic.nix ( + args + // { + version = "5.3.28"; + sha256 = "0a1n5hbl7027fbz5lm0vp0zzfp1hmxnz14wx3zl9563h83br5ag0"; + extraPatches = [ + ./clang-5.3.patch + ./CVE-2017-10140-cwd-db_config.patch + ./darwin-mutexes.patch + ]; + } +) diff --git a/pkgs/by-name/db/db/db-6.0.nix b/pkgs/by-name/db/db/db-6.0.nix index d92d28d..f720ca1 100644 --- a/pkgs/by-name/db/db/db-6.0.nix +++ b/pkgs/by-name/db/db/db-6.0.nix @@ -1,12 +1,21 @@ -{ lib, stdenv, fetchurl, autoreconfHook, ... } @ args: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + ... +}@args: -import ./generic.nix (args // { - version = "6.0.30"; - sha256 = "1lhglbvg65j5slrlv7qv4vi3cvd7kjywa07gq1abzschycf4p3k0"; - license = lib.licenses.agpl3Only; - extraPatches = [ - ./clang-6.0.patch - ./CVE-2017-10140-cwd-db_config.patch - ./darwin-mutexes.patch - ]; -}) +import ./generic.nix ( + args + // { + version = "6.0.30"; + sha256 = "1lhglbvg65j5slrlv7qv4vi3cvd7kjywa07gq1abzschycf4p3k0"; + license = lib.licenses.agpl3Only; + extraPatches = [ + ./clang-6.0.patch + ./CVE-2017-10140-cwd-db_config.patch + ./darwin-mutexes.patch + ]; + } +) diff --git a/pkgs/by-name/db/db/db-6.2.nix b/pkgs/by-name/db/db/db-6.2.nix index fd5a532..2f573aa 100644 --- a/pkgs/by-name/db/db/db-6.2.nix +++ b/pkgs/by-name/db/db/db-6.2.nix @@ -1,12 +1,21 @@ -{ lib, stdenv, fetchurl, autoreconfHook, ... } @ args: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + ... +}@args: -import ./generic.nix (args // { - version = "6.2.32"; - sha256 = "1yx8wzhch5wwh016nh0kfxvknjkafv6ybkqh6nh7lxx50jqf5id9"; - license = lib.licenses.agpl3Only; - extraPatches = [ - ./clang-6.0.patch - ./CVE-2017-10140-cwd-db_config.patch - ./darwin-mutexes.patch - ]; -}) +import ./generic.nix ( + args + // { + version = "6.2.32"; + sha256 = "1yx8wzhch5wwh016nh0kfxvknjkafv6ybkqh6nh7lxx50jqf5id9"; + license = lib.licenses.agpl3Only; + extraPatches = [ + ./clang-6.0.patch + ./CVE-2017-10140-cwd-db_config.patch + ./darwin-mutexes.patch + ]; + } +) diff --git a/pkgs/by-name/db/db/generic.nix b/pkgs/by-name/db/db/generic.nix index d715c1f..9c53a51 100644 --- a/pkgs/by-name/db/db/generic.nix +++ b/pkgs/by-name/db/db/generic.nix @@ -1,95 +1,108 @@ -{ lib, stdenv, fetchurl, autoreconfHook -, cxxSupport ? true -, compat185 ? true -, dbmSupport ? false +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + cxxSupport ? true, + compat185 ? true, + dbmSupport ? false, -# Options from inherited versions -, version, sha256 -, extraPatches ? [ ] -, license ? lib.licenses.sleepycat -, drvArgs ? {} + # Options from inherited versions + version, + sha256, + extraPatches ? [ ], + license ? lib.licenses.sleepycat, + drvArgs ? { }, }: -stdenv.mkDerivation (rec { - pname = "db"; - inherit version; +stdenv.mkDerivation ( + rec { + pname = "db"; + inherit version; - src = fetchurl { - url = "https://download.oracle.com/berkeley-db/${pname}-${version}.tar.gz"; - sha256 = sha256; - }; + src = fetchurl { + url = "https://download.oracle.com/berkeley-db/${pname}-${version}.tar.gz"; + sha256 = sha256; + }; - # The provided configure script features `main` returning implicit `int`, which causes - # configure checks to work incorrectly with clang 16. - nativeBuildInputs = [ autoreconfHook ]; + # The provided configure script features `main` returning implicit `int`, which causes + # configure checks to work incorrectly with clang 16. + nativeBuildInputs = [ autoreconfHook ]; - patches = extraPatches; + patches = extraPatches; - outputs = [ "bin" "out" "dev" ]; + outputs = [ + "bin" + "out" + "dev" + ]; - # Required when regenerated the configure script to make sure the vendored macros are found. - autoreconfFlags = [ "-fi" "-Iaclocal" "-Iaclocal_java" ]; + # Required when regenerated the configure script to make sure the vendored macros are found. + autoreconfFlags = [ + "-fi" + "-Iaclocal" + "-Iaclocal_java" + ]; - preAutoreconf = '' - pushd dist - # Upstream’s `dist/s_config` cats everything into `aclocal.m4`, but that doesn’t work with - # autoreconfHook, so cat `config.m4` to another file. Otherwise, it won’t be found by `aclocal`. - cat aclocal/config.m4 >> aclocal/options.m4 - ''; + preAutoreconf = '' + pushd dist + # Upstream’s `dist/s_config` cats everything into `aclocal.m4`, but that doesn’t work with + # autoreconfHook, so cat `config.m4` to another file. Otherwise, it won’t be found by `aclocal`. + cat aclocal/config.m4 >> aclocal/options.m4 + ''; - # This isn’t pretty. The version information is kept separate from the configure script. - # After the configure script is regenerated, the version information has to be replaced with the - # contents of `dist/RELEASE`. - postAutoreconf = '' - ( - declare -a vars=( - "DB_VERSION_FAMILY" - "DB_VERSION_RELEASE" - "DB_VERSION_MAJOR" - "DB_VERSION_MINOR" - "DB_VERSION_PATCH" - "DB_VERSION_STRING" - "DB_VERSION_FULL_STRING" - "DB_VERSION_UNIQUE_NAME" - "DB_VERSION" + # This isn’t pretty. The version information is kept separate from the configure script. + # After the configure script is regenerated, the version information has to be replaced with the + # contents of `dist/RELEASE`. + postAutoreconf = '' + ( + declare -a vars=( + "DB_VERSION_FAMILY" + "DB_VERSION_RELEASE" + "DB_VERSION_MAJOR" + "DB_VERSION_MINOR" + "DB_VERSION_PATCH" + "DB_VERSION_STRING" + "DB_VERSION_FULL_STRING" + "DB_VERSION_UNIQUE_NAME" + "DB_VERSION" + ) + source RELEASE + for var in "''${vars[@]}"; do + sed -e "s/__EDIT_''${var}__/''${!var}/g" -i configure + done ) - source RELEASE - for var in "''${vars[@]}"; do - sed -e "s/__EDIT_''${var}__/''${!var}/g" -i configure - done - ) - popd - ''; + popd + ''; - configureFlags = - [ + configureFlags = [ (if cxxSupport then "--enable-cxx" else "--disable-cxx") (if compat185 then "--enable-compat185" else "--disable-compat185") - ] - ++ lib.optional dbmSupport "--enable-dbm" - ++ lib.optional stdenv.isFreeBSD "--with-pic"; + ] ++ lib.optional dbmSupport "--enable-dbm" ++ lib.optional stdenv.isFreeBSD "--with-pic"; - preConfigure = '' - cd build_unix - configureScript=../dist/configure - ''; + preConfigure = '' + cd build_unix + configureScript=../dist/configure + ''; - postInstall = '' - rm -rf $out/docs - ''; + postInstall = '' + rm -rf $out/docs + ''; - enableParallelBuilding = true; + enableParallelBuilding = true; - doCheck = true; + doCheck = true; - checkPhase = '' - make examples_c examples_cxx - ''; + checkPhase = '' + make examples_c examples_cxx + ''; - meta = with lib; { - homepage = "https://www.oracle.com/database/technologies/related/berkeleydb.html"; - description = "Berkeley DB"; - license = license; - platforms = platforms.unix; - }; -} // drvArgs) + meta = with lib; { + homepage = "https://www.oracle.com/database/technologies/related/berkeleydb.html"; + description = "Berkeley DB"; + license = license; + platforms = platforms.unix; + }; + } + // drvArgs +) diff --git a/pkgs/by-name/db/db/packages.nix b/pkgs/by-name/db/db/packages.nix index ff5dee7..e96fb46 100644 --- a/pkgs/by-name/db/db/packages.nix +++ b/pkgs/by-name/db/db/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Make bdb5 the default as it is the last release under the custom # bsd-like license db = db5; diff --git a/pkgs/by-name/db/dblatex/default.nix b/pkgs/by-name/db/dblatex/default.nix index d615cef..fa858df 100644 --- a/pkgs/by-name/db/dblatex/default.nix +++ b/pkgs/by-name/db/dblatex/default.nix @@ -1,13 +1,53 @@ -{ lib, stdenv, fetchurl, python3, libxslt, texliveBasic -, enableAllFeatures ? false, imagemagick, fig2dev, inkscape, fontconfig, ghostscript +{ + lib, + stdenv, + fetchurl, + python3, + libxslt, + texliveBasic, + enableAllFeatures ? false, + imagemagick, + fig2dev, + inkscape, + fontconfig, + ghostscript, -, tex ? texliveBasic.withPackages (ps: with ps; [ # satisfy all packages that ./configure mentions - epstopdf anysize appendix changebar - fancybox fancyvrb float footmisc listings jknapltx/*for mathrsfs.sty*/ - multirow overpic pdfpages pdflscape graphics stmaryrd subfigure titlesec wasysym - # pkgs below don't seem requested by dblatex, but our manual fails without them - ec zapfding symbol eepic times rsfs cs tex4ht courier helvetic ly1 - ]) + tex ? texliveBasic.withPackages ( + ps: with ps; [ + # satisfy all packages that ./configure mentions + epstopdf + anysize + appendix + changebar + fancybox + fancyvrb + float + footmisc + listings + jknapltx # for mathrsfs.sty + multirow + overpic + pdfpages + pdflscape + graphics + stmaryrd + subfigure + titlesec + wasysym + # pkgs below don't seem requested by dblatex, but our manual fails without them + ec + zapfding + symbol + eepic + times + rsfs + cs + tex4ht + courier + helvetic + ly1 + ] + ), }: # NOTE: enableAllFeatures just purifies the expression, it doesn't actually @@ -22,32 +62,42 @@ stdenv.mkDerivation rec { sha256 = "0yd09nypswy3q4scri1dg7dr99d7gd6r2dwx0xm81l9f4y32gs0n"; }; - buildInputs = [ python3 libxslt tex ] - ++ lib.optionals enableAllFeatures [ imagemagick fig2dev ]; + buildInputs = + [ + python3 + libxslt + tex + ] + ++ lib.optionals enableAllFeatures [ + imagemagick + fig2dev + ]; # TODO: dblatex tries to execute texindy command, but nixpkgs doesn't have # that yet. In Ubuntu, texindy is a part of the xindy package. - preConfigure = '' - sed -i 's|self.install_layout == "deb"|False|' setup.py - '' + lib.optionalString enableAllFeatures '' - for file in $(find -name "*.py"); do - sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt.bin}/bin/xsltproc|g' \ - -e 's|Popen(\["xsltproc|Popen(\["${libxslt.bin}/bin/xsltproc|g' \ - -e 's|cmd = \["texindy|cmd = ["nixpkgs_is_missing_texindy|g' \ - -e 's|cmd = "epstopdf|cmd = "${tex}/bin/epstopdf|g' \ - -e 's|cmd = \["makeindex|cmd = ["${tex}/bin/makeindex|g' \ - -e 's|doc.program = "pdflatex"|doc.program = "${tex}/bin/pdflatex"|g' \ - -e 's|self.program = "latex"|self.program = "${tex}/bin/latex"|g' \ - -e 's|Popen("pdflatex|Popen("${tex}/bin/pdflatex|g' \ - -e 's|"fc-match"|"${fontconfig.bin}/bin/fc-match"|g' \ - -e 's|"fc-list"|"${fontconfig.bin}/bin/fc-list"|g' \ - -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \ - -e 's|cmd = "fig2dev|cmd = "${fig2dev}/bin/fig2dev|g' \ - -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \ - -e 's|cmd = "convert|cmd = "${imagemagick.out}/bin/convert|g' \ - -i "$file" - done - ''; + preConfigure = + '' + sed -i 's|self.install_layout == "deb"|False|' setup.py + '' + + lib.optionalString enableAllFeatures '' + for file in $(find -name "*.py"); do + sed -e 's|cmd = \["xsltproc|cmd = \["${libxslt.bin}/bin/xsltproc|g' \ + -e 's|Popen(\["xsltproc|Popen(\["${libxslt.bin}/bin/xsltproc|g' \ + -e 's|cmd = \["texindy|cmd = ["nixpkgs_is_missing_texindy|g' \ + -e 's|cmd = "epstopdf|cmd = "${tex}/bin/epstopdf|g' \ + -e 's|cmd = \["makeindex|cmd = ["${tex}/bin/makeindex|g' \ + -e 's|doc.program = "pdflatex"|doc.program = "${tex}/bin/pdflatex"|g' \ + -e 's|self.program = "latex"|self.program = "${tex}/bin/latex"|g' \ + -e 's|Popen("pdflatex|Popen("${tex}/bin/pdflatex|g' \ + -e 's|"fc-match"|"${fontconfig.bin}/bin/fc-match"|g' \ + -e 's|"fc-list"|"${fontconfig.bin}/bin/fc-list"|g' \ + -e 's|cmd = "inkscape|cmd = "${inkscape}/bin/inkscape|g' \ + -e 's|cmd = "fig2dev|cmd = "${fig2dev}/bin/fig2dev|g' \ + -e 's|cmd = \["ps2pdf|cmd = ["${ghostscript}/bin/ps2pdf|g' \ + -e 's|cmd = "convert|cmd = "${imagemagick.out}/bin/convert|g' \ + -i "$file" + done + ''; dontBuild = true; @@ -55,7 +105,9 @@ stdenv.mkDerivation rec { ${python3.interpreter} ./setup.py install --prefix="$out" --use-python-path --verbose ''; - passthru = { inherit tex; }; + passthru = { + inherit tex; + }; meta = { description = "A program to convert DocBook to DVI, PostScript or PDF via LaTeX or ConTeXt"; diff --git a/pkgs/by-name/db/dblatex/packages.nix b/pkgs/by-name/db/dblatex/packages.nix index c3deb97..04ad974 100644 --- a/pkgs/by-name/db/dblatex/packages.nix +++ b/pkgs/by-name/db/dblatex/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { dblatex = callPackage ./. { }; dblatexFull = dblatex.override { enableAllFeatures = true; }; } diff --git a/pkgs/by-name/db/dbus/default.nix b/pkgs/by-name/db/dbus/default.nix index cb5fe9e..3554a50 100644 --- a/pkgs/by-name/db/dbus/default.nix +++ b/pkgs/by-name/db/dbus/default.nix @@ -1,20 +1,21 @@ -{ stdenv -, lib -, fetchurl -, pkg-config -, expat -, enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal -, systemdMinimal -, audit -, libapparmor -, dbus -, docbook_xml_dtd_44 -, docbook-xsl-nons -, xmlto -, autoreconfHook -, autoconf-archive -, x11Support ? (stdenv.isLinux || stdenv.isDarwin) -, xorg +{ + stdenv, + lib, + fetchurl, + pkg-config, + expat, + enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal, + systemdMinimal, + audit, + libapparmor, + dbus, + docbook_xml_dtd_44, + docbook-xsl-nons, + xmlto, + autoreconfHook, + autoconf-archive, + x11Support ? (stdenv.isLinux || stdenv.isDarwin), + xorg, }: stdenv.mkDerivation rec { @@ -28,21 +29,30 @@ stdenv.mkDerivation rec { patches = lib.optional stdenv.isSunOS ./implement-getgrouplist.patch; - postPatch = '' - substituteInPlace bus/Makefile.am \ - --replace 'install-data-hook:' 'disabled:' \ - --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':' - substituteInPlace tools/Makefile.am \ - --replace 'install-data-local:' 'disabled:' \ - --replace 'installcheck-local:' 'disabled:' - '' + /* cleanup of runtime references */ '' - substituteInPlace ./dbus/dbus-sysdeps-unix.c \ - --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\"" - substituteInPlace ./tools/dbus-launch.c \ - --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"' - ''; + postPatch = + '' + substituteInPlace bus/Makefile.am \ + --replace 'install-data-hook:' 'disabled:' \ + --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':' + substituteInPlace tools/Makefile.am \ + --replace 'install-data-local:' 'disabled:' \ + --replace 'installcheck-local:' 'disabled:' + '' + # cleanup of runtime references + + '' + substituteInPlace ./dbus/dbus-sysdeps-unix.c \ + --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\"" + substituteInPlace ./tools/dbus-launch.c \ + --replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"' + ''; - outputs = [ "out" "dev" "lib" "doc" "man" ]; + outputs = [ + "out" + "dev" + "lib" + "doc" + "man" + ]; separateDebugInfo = true; strictDeps = true; @@ -55,37 +65,47 @@ stdenv.mkDerivation rec { xmlto ]; - propagatedBuildInputs = [ - expat - ]; + propagatedBuildInputs = [ expat ]; buildInputs = - lib.optionals x11Support (with xorg; [ - libX11 - libICE - libSM - ]) ++ lib.optional enableSystemd systemdMinimal - ++ lib.optionals stdenv.isLinux [ audit libapparmor ]; + lib.optionals x11Support ( + with xorg; + [ + libX11 + libICE + libSM + ] + ) + ++ lib.optional enableSystemd systemdMinimal + ++ lib.optionals stdenv.isLinux [ + audit + libapparmor + ]; # ToDo: optional selinux? __darwinAllowLocalNetworking = true; - configureFlags = [ - "--enable-user-session" - "--enable-xml-docs" - "--libexecdir=${placeholder "out"}/libexec" - "--datadir=/etc" - "--localstatedir=/var" - "--runstatedir=/run" - "--sysconfdir=/etc" - "--with-session-socket-dir=/tmp" - "--with-system-pid-file=/run/dbus/pid" - "--with-system-socket=/run/dbus/system_bus_socket" - "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" - "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user" - ] ++ lib.optional (!x11Support) "--without-x" - ++ lib.optionals stdenv.isLinux [ "--enable-apparmor" "--enable-libaudit" ] - ++ lib.optionals enableSystemd [ "SYSTEMCTL=${systemdMinimal}/bin/systemctl" ]; + configureFlags = + [ + "--enable-user-session" + "--enable-xml-docs" + "--libexecdir=${placeholder "out"}/libexec" + "--datadir=/etc" + "--localstatedir=/var" + "--runstatedir=/run" + "--sysconfdir=/etc" + "--with-session-socket-dir=/tmp" + "--with-system-pid-file=/run/dbus/pid" + "--with-system-socket=/run/dbus/system_bus_socket" + "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" + "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user" + ] + ++ lib.optional (!x11Support) "--without-x" + ++ lib.optionals stdenv.isLinux [ + "--enable-apparmor" + "--enable-libaudit" + ] + ++ lib.optionals enableSystemd [ "SYSTEMCTL=${systemdMinimal}/bin/systemctl" ]; NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed"; diff --git a/pkgs/by-name/db/dbus/make-dbus-conf.nix b/pkgs/by-name/db/dbus/make-dbus-conf.nix index 0a8b630..67e4bc0 100644 --- a/pkgs/by-name/db/dbus/make-dbus-conf.nix +++ b/pkgs/by-name/db/dbus/make-dbus-conf.nix @@ -1,18 +1,20 @@ -{ runCommand -, writeText -, libxslt -, dbus -, findXMLCatalogs -, serviceDirectories ? [] -, suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper" -, apparmor ? "disabled" # one of enabled, disabled, required +{ + runCommand, + writeText, + libxslt, + dbus, + findXMLCatalogs, + serviceDirectories ? [ ], + suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper", + apparmor ? "disabled", # one of enabled, disabled, required }: -/* DBus has two configuration parsers -- normal and "trivial", which is used - * for suid helper. Unfortunately the latter doesn't support - * directive. That means that we can't just place our configuration to - * *-local.conf -- it needs to be in the main configuration file. - */ +/* + DBus has two configuration parsers -- normal and "trivial", which is used + for suid helper. Unfortunately the latter doesn't support + directive. That means that we can't just place our configuration to + *-local.conf -- it needs to be in the main configuration file. +*/ runCommand "dbus-1" { inherit serviceDirectories suidHelper apparmor; @@ -24,9 +26,7 @@ runCommand "dbus-1" findXMLCatalogs ]; - buildInputs = [ - dbus.out - ]; + buildInputs = [ dbus.out ]; } '' mkdir -p $out diff --git a/pkgs/by-name/de/dejagnu/default.nix b/pkgs/by-name/de/dejagnu/default.nix index 5c7720a..d96c57a 100644 --- a/pkgs/by-name/de/dejagnu/default.nix +++ b/pkgs/by-name/de/dejagnu/default.nix @@ -1,4 +1,10 @@ -{ fetchurl, lib, stdenv, expect, makeWrapper }: +{ + fetchurl, + lib, + stdenv, + expect, + makeWrapper, +}: stdenv.mkDerivation rec { pname = "dejagnu"; diff --git a/pkgs/by-name/de/dejavu-fonts/default.nix b/pkgs/by-name/de/dejavu-fonts/default.nix index ba9fed1..7eefada 100644 --- a/pkgs/by-name/de/dejavu-fonts/default.nix +++ b/pkgs/by-name/de/dejavu-fonts/default.nix @@ -1,4 +1,11 @@ -{ fetchFromGitHub, lib, stdenv, fontforge, perl, perlPackages }: +{ + fetchFromGitHub, + lib, + stdenv, + fontforge, + perl, + perlPackages, +}: let version = "2.37"; @@ -26,12 +33,17 @@ let full-ttf = stdenv.mkDerivation { pname = "dejavu-fonts-full"; inherit version; - nativeBuildInputs = [fontforge perl perlPackages.IOString perlPackages.FontTTF]; + nativeBuildInputs = [ + fontforge + perl + perlPackages.IOString + perlPackages.FontTTF + ]; src = fetchFromGitHub { owner = "dejavu-fonts"; repo = "dejavu-fonts"; - rev = "version_${lib.replaceStrings ["."] ["_"] version}"; + rev = "version_${lib.replaceStrings [ "." ] [ "_" ] version}"; sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk"; }; @@ -52,7 +64,8 @@ let ''; inherit meta; }; -in stdenv.mkDerivation { +in +stdenv.mkDerivation { pname = "dejavu-fonts"; inherit version; buildCommand = '' @@ -61,5 +74,7 @@ in stdenv.mkDerivation { ''; inherit meta; - passthru = { inherit minimal full-ttf; }; + passthru = { + inherit minimal full-ttf; + }; } diff --git a/pkgs/by-name/de/dejavu-fonts/packages.nix b/pkgs/by-name/de/dejavu-fonts/packages.nix index 0c1f43f..8fcbe08 100644 --- a/pkgs/by-name/de/dejavu-fonts/packages.nix +++ b/pkgs/by-name/de/dejavu-fonts/packages.nix @@ -1,9 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ - dejavu_fonts = lowPrio (callPackage ./. {}); +with pkgs; { + dejavu_fonts = lowPrio (callPackage ./. { }); # solve collision for nix-env before https://github.com/NixOS/nix/pull/815 dejavu_fontsEnv = buildEnv { diff --git a/pkgs/by-name/di/diffutils/default.nix b/pkgs/by-name/di/diffutils/default.nix index 8c4a160..4238e40 100644 --- a/pkgs/by-name/di/diffutils/default.nix +++ b/pkgs/by-name/di/diffutils/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, xz, coreutils ? null }: +{ + lib, + stdenv, + fetchurl, + xz, + coreutils ? null, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -14,18 +20,25 @@ stdenv.mkDerivation rec { hash = "sha256-kOXpPMck5OvhLt6A3xY0Bjx6hVaSaFkZv+YLVWyb0J4="; }; - outputs = [ "out" "info" ]; + outputs = [ + "out" + "info" + ]; nativeBuildInputs = [ (lib.getBin xz) ]; - /* If no explicit coreutils is given, use the one from stdenv. */ + # If no explicit coreutils is given, use the one from stdenv. buildInputs = [ coreutils ]; # Disable stack-related gnulib tests on x86_64-darwin because they have problems running under # Rosetta 2: test-c-stack hangs, test-sigsegv-catch-stackoverflow fails. - postPatch = if (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) then '' - sed -i -E 's:test-c-stack2?\.sh::g' gnulib-tests/Makefile.in - sed -i -E 's:test-sigsegv-catch-stackoverflow[12]::g' gnulib-tests/Makefile.in - '' else null; + postPatch = + if (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) then + '' + sed -i -E 's:test-c-stack2?\.sh::g' gnulib-tests/Makefile.in + sed -i -E 's:test-sigsegv-catch-stackoverflow[12]::g' gnulib-tests/Makefile.in + '' + else + null; configureFlags = # "pr" need not be on the PATH as a run-time dep, so we need to tell diff --git a/pkgs/by-name/dj/djvulibre/default.nix b/pkgs/by-name/dj/djvulibre/default.nix index 073a6e3..ba7e7a1 100644 --- a/pkgs/by-name/dj/djvulibre/default.nix +++ b/pkgs/by-name/dj/djvulibre/default.nix @@ -1,10 +1,12 @@ -{ lib, stdenv -, fetchurl -, libjpeg -, libtiff -, librsvg -, libiconv -, bash +{ + lib, + stdenv, + fetchurl, + libjpeg, + libtiff, + librsvg, + libiconv, + bash, }: stdenv.mkDerivation rec { @@ -16,12 +18,14 @@ stdenv.mkDerivation rec { sha256 = "1p1fiygq9ny8aimwc4vxwjc6k9ykgdsq1sq06slfbzalfvm0kl7w"; }; - outputs = [ "bin" "dev" "out" ]; + outputs = [ + "bin" + "dev" + "out" + ]; strictDeps = true; - nativeBuildInputs = [ - librsvg - ]; + nativeBuildInputs = [ librsvg ]; buildInputs = [ libjpeg diff --git a/pkgs/by-name/do/docbook/packages.nix b/pkgs/by-name/do/docbook/packages.nix index adc0263..3edfab8 100644 --- a/pkgs/by-name/do/docbook/packages.nix +++ b/pkgs/by-name/do/docbook/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { docbook5 = callPackage ./schemas/docbook-5.0 { }; docbook_sgml_dtd_31 = callPackage ./schemas/sgml-dtd/docbook/3.1.nix { }; docbook_sgml_dtd_41 = callPackage ./schemas/sgml-dtd/docbook/4.1.nix { }; @@ -13,9 +12,7 @@ with pkgs; docbook_xml_dtd_45 = callPackage ./schemas/xml-dtd/docbook/4.5.nix { }; docbook_xml_ebnf_dtd = callPackage ./schemas/xml-dtd/docbook-ebnf { }; - inherit (callPackages ./stylesheets/xslt/docbook-xsl { }) - docbook-xsl-nons - docbook-xsl-ns; + inherit (callPackages ./stylesheets/xslt/docbook-xsl { }) docbook-xsl-nons docbook-xsl-ns; # TODO: move this to aliases docbook_xsl = docbook-xsl-nons; diff --git a/pkgs/by-name/do/docbook/schemas/docbook-5.0/default.nix b/pkgs/by-name/do/docbook/schemas/docbook-5.0/default.nix index 68bc610..ea5e7a6 100644 --- a/pkgs/by-name/do/docbook/schemas/docbook-5.0/default.nix +++ b/pkgs/by-name/do/docbook/schemas/docbook-5.0/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, unzip }: +{ + lib, + stdenv, + fetchurl, + unzip, +}: stdenv.mkDerivation rec { pname = "docbook5"; @@ -11,21 +16,20 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ unzip ]; - installPhase = - '' - dst=$out/share/xml/docbook-5.0 - mkdir -p $dst - cp -prv * $dst/ + installPhase = '' + dst=$out/share/xml/docbook-5.0 + mkdir -p $dst + cp -prv * $dst/ - substituteInPlace $dst/catalog.xml --replace 'uri="' "uri=\"$dst/" + substituteInPlace $dst/catalog.xml --replace 'uri="' "uri=\"$dst/" - rm -rf $dst/docs $dst/ChangeLog + rm -rf $dst/docs $dst/ChangeLog - # Backwards compatibility. Will remove eventually. - mkdir -p $out/xml/rng $out/xml/dtd - ln -s $dst/rng $out/xml/rng/docbook - ln -s $dst/dtd $out/xml/dtd/docbook - ''; + # Backwards compatibility. Will remove eventually. + mkdir -p $out/xml/rng $out/xml/dtd + ln -s $dst/rng $out/xml/rng/docbook + ln -s $dst/dtd $out/xml/dtd/docbook + ''; meta = { description = "Schemas for DocBook 5.0, a semantic markup language for technical documentation"; diff --git a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/3.1.nix b/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/3.1.nix index b1db363..0c89451 100644 --- a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/3.1.nix +++ b/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/3.1.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, unzip }: +{ + lib, + stdenv, + fetchurl, + unzip, +}: let @@ -21,15 +26,14 @@ stdenv.mkDerivation { nativeBuildInputs = [ unzip ]; - installPhase = - '' - o=$out/sgml/dtd/docbook-3.1 - mkdir -p $o - cd $o - unzip ${src} - unzip ${isoents} - sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat - ''; + installPhase = '' + o=$out/sgml/dtd/docbook-3.1 + mkdir -p $o + cd $o + unzip ${src} + unzip ${isoents} + sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat + ''; meta = { platforms = lib.platforms.unix; diff --git a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/4.1.nix b/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/4.1.nix index 85d7ab1..4a106db 100644 --- a/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/4.1.nix +++ b/pkgs/by-name/do/docbook/schemas/sgml-dtd/docbook/4.1.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, unzip }: +{ + lib, + stdenv, + fetchurl, + unzip, +}: let @@ -21,15 +26,14 @@ stdenv.mkDerivation { nativeBuildInputs = [ unzip ]; - installPhase = - '' - o=$out/sgml/dtd/docbook-4.1 - mkdir -p $o - cd $o - unzip ${src} - unzip ${isoents} - sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat - ''; + installPhase = '' + o=$out/sgml/dtd/docbook-4.1 + mkdir -p $o + cd $o + unzip ${src} + unzip ${isoents} + sed -e "s/iso-/ISO/" -e "s/.gml//" -i docbook.cat + ''; meta = { platforms = lib.platforms.unix; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/default.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/default.nix index 6be2e89..fe1d111 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/default.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook-ebnf/default.nix @@ -1,4 +1,8 @@ -{lib, stdenv, fetchurl}: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "docbook-xml-ebnf"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.1.2.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.1.2.nix index c367e2a..9da4c65 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.1.2.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.1.2.nix @@ -1,4 +1,10 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: +{ + lib, + stdenv, + fetchurl, + unzip, + findXMLCatalogs, +}: let # Urgh, DocBook 4.1.2 doesn't come with an XML catalog. Use the one @@ -10,7 +16,12 @@ let in import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; + inherit + lib + stdenv + unzip + findXMLCatalogs + ; version = "4.1.2"; src = fetchurl { url = "https://docbook.org/xml/4.1.2/docbkx412.zip"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.2.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.2.nix index 8f778ea..a4516f1 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.2.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.2.nix @@ -1,7 +1,18 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: +{ + lib, + stdenv, + fetchurl, + unzip, + findXMLCatalogs, +}: import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; + inherit + lib + stdenv + unzip + findXMLCatalogs + ; version = "4.2"; src = fetchurl { url = "https://docbook.org/xml/4.2/docbook-xml-4.2.zip"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.3.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.3.nix index a58370e..1e71c8e 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.3.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.3.nix @@ -1,7 +1,18 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: +{ + lib, + stdenv, + fetchurl, + unzip, + findXMLCatalogs, +}: import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; + inherit + lib + stdenv + unzip + findXMLCatalogs + ; version = "4.3"; src = fetchurl { url = "https://docbook.org/xml/4.3/docbook-xml-4.3.zip"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.4.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.4.nix index 3b46fe8..ddac44d 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.4.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.4.nix @@ -1,7 +1,18 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: +{ + lib, + stdenv, + fetchurl, + unzip, + findXMLCatalogs, +}: import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; + inherit + lib + stdenv + unzip + findXMLCatalogs + ; version = "4.4"; src = fetchurl { url = "https://docbook.org/xml/4.4/docbook-xml-4.4.zip"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.5.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.5.nix index c4ab1f6..0e7bb96 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.5.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/4.5.nix @@ -1,7 +1,18 @@ -{lib, stdenv, fetchurl, unzip, findXMLCatalogs}: +{ + lib, + stdenv, + fetchurl, + unzip, + findXMLCatalogs, +}: import ./generic.nix { - inherit lib stdenv unzip findXMLCatalogs; + inherit + lib + stdenv + unzip + findXMLCatalogs + ; version = "4.5"; src = fetchurl { url = "https://docbook.org/xml/4.5/docbook-xml-4.5.zip"; diff --git a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/generic.nix b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/generic.nix index 7a635f6..bc85e35 100644 --- a/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/generic.nix +++ b/pkgs/by-name/do/docbook/schemas/xml-dtd/docbook/generic.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, unzip, src, version, postInstall ? "true", findXMLCatalogs }: +{ + lib, + stdenv, + unzip, + src, + version, + postInstall ? "true", + findXMLCatalogs, +}: stdenv.mkDerivation { inherit version src postInstall; diff --git a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/default.nix b/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/default.nix index a81d73a..e06ef90 100644 --- a/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/default.nix +++ b/pkgs/by-name/do/docbook/stylesheets/xslt/docbook-xsl/default.nix @@ -1,82 +1,102 @@ -{ lib, stdenv, substituteAll, fetchurl, fetchpatch, findXMLCatalogs, writeScriptBin, /*ruby,*/ bash, withManOptDedupPatch ? false }: +{ + lib, + stdenv, + substituteAll, + fetchurl, + fetchpatch, + findXMLCatalogs, + writeScriptBin, # ruby, + bash, + withManOptDedupPatch ? false, +}: let - common = { pname, sha256, suffix ? "" }: let - legacySuffix = lib.optionalString (suffix != "-nons") "-ns"; - self = stdenv.mkDerivation rec { - inherit pname; - version = "1.79.2"; + common = + { + pname, + sha256, + suffix ? "", + }: + let + legacySuffix = lib.optionalString (suffix != "-nons") "-ns"; + self = stdenv.mkDerivation rec { + inherit pname; + version = "1.79.2"; - src = fetchurl { - url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2"; - inherit sha256; + src = fetchurl { + url = "https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F${version}/docbook-xsl${suffix}-${version}.tar.bz2"; + inherit sha256; + }; + + patches = + [ + # Prevent a potential stack overflow + # https://github.com/docbook/xslt10-stylesheets/pull/37 + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch"; + sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3"; + stripLen = "1"; + }) + + # Fix reproducibility by respecting generate.consistent.ids in indexes + # https://github.com/docbook/xslt10-stylesheets/pull/88 + # https://sourceforge.net/p/docbook/bugs/1385/ + (fetchpatch { + url = "https://github.com/docbook/xslt10-stylesheets/commit/07631601e6602bc49b8eac3aab9d2b35968d3e7a.patch"; + sha256 = "0igfhcr6hzcydqsnjsd181h5yl3drjnrwdmxcybr236m8255vkq3"; + stripLen = "1"; + }) + + # Add legacy sourceforge.net URIs to the catalog + (substituteAll { + src = ./catalog-legacy-uris.patch; + inherit legacySuffix suffix version; + }) + ] + ++ lib.optionals withManOptDedupPatch [ + # Fixes https://github.com/NixOS/nixpkgs/issues/166304 + # https://github.com/docbook/xslt10-stylesheets/pull/241 + ./fix-man-options-duplication.patch + ]; + + propagatedBuildInputs = [ findXMLCatalogs ]; + + dontBuild = true; + + installPhase = '' + dst=$out/share/xml/${pname} + mkdir -p $dst + rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp + mv * $dst/ + + # Backwards compatibility. Will remove eventually. + mkdir -p $out/xml/xsl + ln -s $dst $out/xml/xsl/docbook + + # More backwards compatibility + ln -s $dst $out/share/xml/docbook-xsl${legacySuffix} + ''; + + # passthru.dbtoepub = writeScriptBin "dbtoepub" + # '' + # #!${bash}/bin/bash + # exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" + # ''; + + meta = { + homepage = "https://github.com/docbook/wiki/wiki/DocBookXslStylesheets"; + description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.eelco ]; + platforms = lib.platforms.all; + }; }; + in + self; - patches = [ - # Prevent a potential stack overflow - # https://github.com/docbook/xslt10-stylesheets/pull/37 - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/docbook-style-xsl/raw/e3ae7a97ed1d185594dd35954e1a02196afb205a/f/docbook-style-xsl-non-recursive-string-subst.patch"; - sha256 = "0lrjjg5kpwwmbhkxzz6i5zmimb6lsvrrdhzc2qgjmb3r6jnsmii3"; - stripLen = "1"; - }) - - # Fix reproducibility by respecting generate.consistent.ids in indexes - # https://github.com/docbook/xslt10-stylesheets/pull/88 - # https://sourceforge.net/p/docbook/bugs/1385/ - (fetchpatch { - url = "https://github.com/docbook/xslt10-stylesheets/commit/07631601e6602bc49b8eac3aab9d2b35968d3e7a.patch"; - sha256 = "0igfhcr6hzcydqsnjsd181h5yl3drjnrwdmxcybr236m8255vkq3"; - stripLen = "1"; - }) - - # Add legacy sourceforge.net URIs to the catalog - (substituteAll { - src = ./catalog-legacy-uris.patch; - inherit legacySuffix suffix version; - }) - ] ++ lib.optionals withManOptDedupPatch [ - # Fixes https://github.com/NixOS/nixpkgs/issues/166304 - # https://github.com/docbook/xslt10-stylesheets/pull/241 - ./fix-man-options-duplication.patch - ]; - - propagatedBuildInputs = [ findXMLCatalogs ]; - - dontBuild = true; - - installPhase = '' - dst=$out/share/xml/${pname} - mkdir -p $dst - rm -rf RELEASE* README* INSTALL TODO NEWS* BUGS install.sh tools Makefile tests extensions webhelp - mv * $dst/ - - # Backwards compatibility. Will remove eventually. - mkdir -p $out/xml/xsl - ln -s $dst $out/xml/xsl/docbook - - # More backwards compatibility - ln -s $dst $out/share/xml/docbook-xsl${legacySuffix} - ''; - - # passthru.dbtoepub = writeScriptBin "dbtoepub" - # '' - # #!${bash}/bin/bash - # exec -a dbtoepub ${ruby}/bin/ruby ${self}/share/xml/${pname}/epub/bin/dbtoepub "$@" - # ''; - - meta = { - homepage = "https://github.com/docbook/wiki/wiki/DocBookXslStylesheets"; - description = "XSL stylesheets for transforming DocBook documents into HTML and various other formats"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.eelco ]; - platforms = lib.platforms.all; - }; - }; - in self; - -in { +in +{ docbook-xsl-nons = common { pname = "docbook-xsl-nons"; diff --git a/pkgs/by-name/do/docbook2x/default.nix b/pkgs/by-name/do/docbook2x/default.nix index 3fa76f5..37e26d4 100644 --- a/pkgs/by-name/do/docbook2x/default.nix +++ b/pkgs/by-name/do/docbook2x/default.nix @@ -1,7 +1,19 @@ -{ fetchurl, lib, stdenv, texinfo, perlPackages -, groff, libxml2, libxslt, gnused, libiconv, opensp -, docbook_xml_dtd_43, bash -, makeWrapper }: +{ + fetchurl, + lib, + stdenv, + texinfo, + perlPackages, + groff, + libxml2, + libxslt, + gnused, + libiconv, + opensp, + docbook_xml_dtd_43, + bash, + makeWrapper, +}: stdenv.mkDerivation rec { pname = "docbook2X"; @@ -16,9 +28,26 @@ stdenv.mkDerivation rec { # writes its output to stdout instead of creating a file. patches = [ ./db2x_texixml-to-stdout.patch ]; - nativeBuildInputs = [ makeWrapper perlPackages.perl texinfo libxslt ]; - buildInputs = [ groff libxml2 opensp libiconv bash ] - ++ (with perlPackages; [ perl XMLSAX XMLParser XMLNamespaceSupport ]); + nativeBuildInputs = [ + makeWrapper + perlPackages.perl + texinfo + libxslt + ]; + buildInputs = + [ + groff + libxml2 + opensp + libiconv + bash + ] + ++ (with perlPackages; [ + perl + XMLSAX + XMLParser + XMLNamespaceSupport + ]); postConfigure = '' # Broken substitution is used for `perl/config.pl', which leaves literal @@ -37,7 +66,14 @@ stdenv.mkDerivation rec { # XXX: We work around the fact that `wrapProgram' doesn't support # spaces below by inserting escaped backslashes. wrapProgram $out/bin/$i \ - --prefix PERL5LIB : ${with perlPackages; makeFullPerlPath [XMLSAX XMLParser XMLNamespaceSupport]} \ + --prefix PERL5LIB : ${ + with perlPackages; + makeFullPerlPath [ + XMLSAX + XMLParser + XMLNamespaceSupport + ] + } \ --prefix XML_CATALOG_FILES "\ " \ "$out/share/docbook2X/dtd/catalog.xml\ $out/share/docbook2X/xslt/catalog.xml\ ${docbook_xml_dtd_43}/xml/dtd/docbook/catalog.xml" done diff --git a/pkgs/by-name/do/doxygen/default.nix b/pkgs/by-name/do/doxygen/default.nix index 35fcdc7..7b6f2cc 100644 --- a/pkgs/by-name/do/doxygen/default.nix +++ b/pkgs/by-name/do/doxygen/default.nix @@ -1,16 +1,17 @@ -{ lib -, stdenv -, cmake -, fetchFromGitHub -, fetchpatch -, python3 -, flex -, bison -, qt5 -, CoreServices -, libiconv -, spdlog -, sqlite +{ + lib, + stdenv, + cmake, + fetchFromGitHub, + fetchpatch, + python3, + flex, + bison, + qt5, + CoreServices, + libiconv, + spdlog, + sqlite, }: stdenv.mkDerivation rec { @@ -39,8 +40,19 @@ stdenv.mkDerivation rec { bison ]; - buildInputs = [ libiconv spdlog sqlite ] - ++ lib.optionals (qt5 != null) (with qt5; [ qtbase wrapQtAppsHook ]) + buildInputs = + [ + libiconv + spdlog + sqlite + ] + ++ lib.optionals (qt5 != null) ( + with qt5; + [ + qtbase + wrapQtAppsHook + ] + ) ++ lib.optionals stdenv.isDarwin [ CoreServices ]; cmakeFlags = [ @@ -49,11 +61,13 @@ stdenv.mkDerivation rec { "-Duse_sys_sqlite3=ON" ] ++ lib.optional (qt5 != null) "-Dbuild_wizard=YES"; - env.NIX_CFLAGS_COMPILE = - lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9"; + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9"; # put examples in an output so people/tools can test against them - outputs = [ "out" "examples" ]; + outputs = [ + "out" + "examples" + ]; postInstall = '' cp -r ../examples $examples ''; diff --git a/pkgs/by-name/do/doxygen/packages.nix b/pkgs/by-name/do/doxygen/packages.nix index 28e78cd..769c84c 100644 --- a/pkgs/by-name/do/doxygen/packages.nix +++ b/pkgs/by-name/do/doxygen/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { doxygen = darwin.apple_sdk_11_0.callPackage ./. { qt5 = null; inherit (darwin.apple_sdk_11_0.frameworks) CoreServices; diff --git a/pkgs/by-name/e2/e2fsprogs/default.nix b/pkgs/by-name/e2/e2fsprogs/default.nix index fd9a71a..d86ae73 100644 --- a/pkgs/by-name/e2/e2fsprogs/default.nix +++ b/pkgs/by-name/e2/e2fsprogs/default.nix @@ -1,6 +1,16 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo -, withFuse ? stdenv.isLinux, fuse -, shared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + buildPackages, + fetchurl, + fetchpatch, + pkg-config, + libuuid, + gettext, + texinfo, + withFuse ? stdenv.isLinux, + fuse, + shared ? !stdenv.hostPlatform.isStatic, # for passthru.tests # , e2fsprogs, runCommand }: @@ -15,16 +25,27 @@ stdenv.mkDerivation rec { }; # fuse2fs adds 14mb of dependencies - outputs = [ "bin" "dev" "out" "man" "info" ] - ++ lib.optionals withFuse [ "fuse2fs" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "info" + ] ++ lib.optionals withFuse [ "fuse2fs" ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ pkg-config texinfo ]; - buildInputs = [ libuuid gettext ] - ++ lib.optionals withFuse [ fuse ]; + nativeBuildInputs = [ + pkg-config + texinfo + ]; + buildInputs = [ + libuuid + gettext + ] ++ lib.optionals withFuse [ fuse ]; patches = [ - (fetchpatch { # avoid using missing __GNUC_PREREQ(X,Y) + (fetchpatch { + # avoid using missing __GNUC_PREREQ(X,Y) url = "https://raw.githubusercontent.com/void-linux/void-packages/9583597eb3e6e6b33f61dbc615d511ce030bc443/srcpkgs/e2fsprogs/patches/fix-glibcism.patch"; sha256 = "1gfcsr0i3q8q2f0lqza8na0iy4l4p3cbii51ds6zmj0y4hz2dwhb"; excludes = [ "lib/ext2fs/hashmap.h" ]; @@ -40,34 +61,37 @@ stdenv.mkDerivation rec { ]; configureFlags = - if stdenv.isLinux then [ - # It seems that the e2fsprogs is one of the few packages that cannot be - # build with shared and static libs. - (if shared then "--enable-elf-shlibs" else "--disable-elf-shlibs") - "--enable-symlink-install" - "--enable-relative-symlinks" - "--with-crond-dir=no" - # fsck, libblkid, libuuid and uuidd are in util-linux-ng (the "libuuid" dependency) - "--disable-fsck" - "--disable-libblkid" - "--disable-libuuid" - "--disable-uuidd" - ] else [ - "--enable-libuuid --disable-e2initrd-helper" - ]; + if stdenv.isLinux then + [ + # It seems that the e2fsprogs is one of the few packages that cannot be + # build with shared and static libs. + (if shared then "--enable-elf-shlibs" else "--disable-elf-shlibs") + "--enable-symlink-install" + "--enable-relative-symlinks" + "--with-crond-dir=no" + # fsck, libblkid, libuuid and uuidd are in util-linux-ng (the "libuuid" dependency) + "--disable-fsck" + "--disable-libblkid" + "--disable-libuuid" + "--disable-uuidd" + ] + else + [ "--enable-libuuid --disable-e2initrd-helper" ]; nativeCheckInputs = [ buildPackages.perl ]; doCheck = true; - postInstall = '' - # avoid cycle between outputs - if [ -f $out/lib/${pname}/e2scrub_all_cron ]; then - mv $out/lib/${pname}/e2scrub_all_cron $bin/bin/ - fi - '' + lib.optionalString withFuse '' - mkdir -p $fuse2fs/bin - mv $bin/bin/fuse2fs $fuse2fs/bin/fuse2fs - ''; + postInstall = + '' + # avoid cycle between outputs + if [ -f $out/lib/${pname}/e2scrub_all_cron ]; then + mv $out/lib/${pname}/e2scrub_all_cron $bin/bin/ + fi + '' + + lib.optionalString withFuse '' + mkdir -p $fuse2fs/bin + mv $bin/bin/fuse2fs $fuse2fs/bin/fuse2fs + ''; enableParallelBuilding = true; @@ -87,8 +111,8 @@ stdenv.mkDerivation rec { license = with licenses; [ gpl2Plus lgpl2Plus # lib/ext2fs, lib/e2p - bsd3 # lib/uuid - mit # lib/et, lib/ss + bsd3 # lib/uuid + mit # lib/et, lib/ss ]; platforms = platforms.unix; maintainers = [ ]; diff --git a/pkgs/by-name/ed/ed/default.nix b/pkgs/by-name/ed/ed/default.nix index c1f99de..1294905 100644 --- a/pkgs/by-name/ed/ed/default.nix +++ b/pkgs/by-name/ed/ed/default.nix @@ -1,9 +1,11 @@ { lib, pkgs }: -lib.makeScope pkgs.newScope (self: +lib.makeScope pkgs.newScope ( + self: let inherit (self) callPackage; - in { + in + { sources = import ./sources.nix { inherit lib; inherit (pkgs) fetchurl; @@ -11,4 +13,5 @@ lib.makeScope pkgs.newScope (self: ed = callPackage (self.sources.ed) { }; edUnstable = callPackage (self.sources.edUnstable) { }; - }) + } +) diff --git a/pkgs/by-name/ed/ed/generic.nix b/pkgs/by-name/ed/ed/generic.nix index 70ec6ba..4ef93a3 100644 --- a/pkgs/by-name/ed/ed/generic.nix +++ b/pkgs/by-name/ed/ed/generic.nix @@ -1,28 +1,33 @@ -{ pname -, version -, src -, patches ? [ ] -, meta +{ + pname, + version, + src, + patches ? [ ], + meta, }: # Note: this package is used for bootstrapping fetchurl, and thus cannot use # fetchpatch! All mutable patches (generated by GitHub or cgit) that are needed # here should be included directly in Nixpkgs as files. -{ lib -, stdenv -, fetchurl -, lzip +{ + lib, + stdenv, + fetchurl, + lzip, }: stdenv.mkDerivation { - inherit pname version src patches; + inherit + pname + version + src + patches + ; nativeBuildInputs = [ lzip ]; - configureFlags = [ - "CC=${stdenv.cc.targetPrefix}cc" - ]; + configureFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ]; doCheck = true; diff --git a/pkgs/by-name/ed/ed/packages.nix b/pkgs/by-name/ed/ed/packages.nix index daefac3..c34049b 100644 --- a/pkgs/by-name/ed/ed/packages.nix +++ b/pkgs/by-name/ed/ed/packages.nix @@ -1,8 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - inherit (recurseIntoAttrs (callPackage ./. { })) - ed edUnstable; +with pkgs; { + inherit (recurseIntoAttrs (callPackage ./. { })) ed edUnstable; } diff --git a/pkgs/by-name/ed/ed/sources.nix b/pkgs/by-name/ed/ed/sources.nix index 77e13da..5bdeab0 100644 --- a/pkgs/by-name/ed/ed/sources.nix +++ b/pkgs/by-name/ed/ed/sources.nix @@ -1,6 +1,4 @@ -{ lib -, fetchurl -}: +{ lib, fetchurl }: let meta = { @@ -21,25 +19,39 @@ let }; in { - ed = let - pname = "ed"; - version = "1.20.1"; - src = fetchurl { - url = "mirror://gnu/ed/ed-${version}.tar.lz"; - hash = "sha256-saRjspehQfmHbEsfzQFHf2Rc3tkhaAkOmjXbKvS6u8o="; + ed = + let + pname = "ed"; + version = "1.20.1"; + src = fetchurl { + url = "mirror://gnu/ed/ed-${version}.tar.lz"; + hash = "sha256-saRjspehQfmHbEsfzQFHf2Rc3tkhaAkOmjXbKvS6u8o="; + }; + in + import ./generic.nix { + inherit + pname + version + src + meta + ; }; - in import ./generic.nix { - inherit pname version src meta; - }; - edUnstable = let - pname = "ed"; - version = "1.20-pre2"; - src = fetchurl { - url = "http://download.savannah.gnu.org/releases/ed/ed-${version}.tar.lz"; - hash = "sha256-bHTDeMhVNNo3qqDNoBNaBA+DHDa4WJpfQNcTvAUPgsY="; + edUnstable = + let + pname = "ed"; + version = "1.20-pre2"; + src = fetchurl { + url = "http://download.savannah.gnu.org/releases/ed/ed-${version}.tar.lz"; + hash = "sha256-bHTDeMhVNNo3qqDNoBNaBA+DHDa4WJpfQNcTvAUPgsY="; + }; + in + import ./generic.nix { + inherit + pname + version + src + meta + ; }; - in import ./generic.nix { - inherit pname version src meta; - }; } diff --git a/pkgs/by-name/ed/editline/default.nix b/pkgs/by-name/ed/editline/default.nix index 4f891a2..78f808c 100644 --- a/pkgs/by-name/ed/editline/default.nix +++ b/pkgs/by-name/ed/editline/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, nix-update-script, fetchpatch }: +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + nix-update-script, + fetchpatch, +}: stdenv.mkDerivation rec { pname = "editline"; @@ -28,7 +35,12 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; - outputs = [ "out" "dev" "man" "doc" ]; + outputs = [ + "out" + "dev" + "man" + "doc" + ]; passthru.updateScript = nix-update-script { }; @@ -36,7 +48,10 @@ stdenv.mkDerivation rec { homepage = "https://troglobit.com/projects/editline/"; description = "A readline() replacement for UNIX without termcap (ncurses)"; license = licenses.bsdOriginal; - maintainers = with maintainers; [ dtzWill oxalica ]; + maintainers = with maintainers; [ + dtzWill + oxalica + ]; platforms = platforms.all; }; } diff --git a/pkgs/by-name/el/elf-header/default.nix b/pkgs/by-name/el/elf-header/default.nix index 72166bb..c32f0e8 100644 --- a/pkgs/by-name/el/elf-header/default.nix +++ b/pkgs/by-name/el/elf-header/default.nix @@ -1,14 +1,17 @@ -{ stdenvNoCC, lib, glibc, musl }: +{ + stdenvNoCC, + lib, + glibc, + musl, +}: let - libc = - if stdenvNoCC.targetPlatform.isMusl - then musl - else glibc; - headerPath = - if stdenvNoCC.targetPlatform.isMusl - then "musl-${libc.version}/include/elf.h" - else "glibc-${libc.version}/elf/elf.h"; + libc = if stdenvNoCC.targetPlatform.isMusl then musl else glibc; + headerPath = + if stdenvNoCC.targetPlatform.isMusl then + "musl-${libc.version}/include/elf.h" + else + "glibc-${libc.version}/elf/elf.h"; in stdenvNoCC.mkDerivation { diff --git a/pkgs/by-name/el/elf-header/packages.nix b/pkgs/by-name/el/elf-header/packages.nix index da6e0fb..59a3d7a 100644 --- a/pkgs/by-name/el/elf-header/packages.nix +++ b/pkgs/by-name/el/elf-header/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Provided by libc on Operating Systems that use the Extensible Linker Format. elf-header = if stdenv.hostPlatform.isElf then null else elf-header-real; diff --git a/pkgs/by-name/el/elfutils/default.nix b/pkgs/by-name/el/elfutils/default.nix index 6de0780..bb93cc6 100644 --- a/pkgs/by-name/el/elfutils/default.nix +++ b/pkgs/by-name/el/elfutils/default.nix @@ -1,8 +1,27 @@ -{ lib, stdenv, fetchurl, fetchpatch, pkg-config, musl-fts -, musl-obstack, m4, zlib, zstd, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs -, argp-standalone -, enableDebuginfod ? true, sqlite, curl, libmicrohttpd, libarchive -, gitUpdater +{ + lib, + stdenv, + fetchurl, + fetchpatch, + pkg-config, + musl-fts, + musl-obstack, + m4, + zlib, + zstd, + bzip2, + bison, + flex, + gettext, + xz, + setupDebugInfoDirs, + argp-standalone, + enableDebuginfod ? true, + sqlite, + curl, + libmicrohttpd, + libarchive, + gitUpdater, }: # TODO: Look at the hardcoded paths to kernel, modules etc. @@ -39,32 +58,51 @@ stdenv.mkDerivation rec { }) ] ++ lib.optionals stdenv.hostPlatform.isMusl [ ./musl-error_h.patch ]; - postPatch = '' - patchShebangs tests/*.sh - '' + lib.optionalString stdenv.hostPlatform.isRiscV '' - # disable failing test: - # - # > dwfl_thread_getframes: No DWARF information found - sed -i s/run-backtrace-dwarf.sh//g tests/Makefile.in - ''; + postPatch = + '' + patchShebangs tests/*.sh + '' + + lib.optionalString stdenv.hostPlatform.isRiscV '' + # disable failing test: + # + # > dwfl_thread_getframes: No DWARF information found + sed -i s/run-backtrace-dwarf.sh//g tests/Makefile.in + ''; - outputs = [ "bin" "dev" "out" "man" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + ]; # We need bzip2 in NativeInputs because otherwise we can't unpack the src, # as the host-bzip2 will be in the path. - nativeBuildInputs = [ m4 bison flex gettext bzip2 ] - ++ lib.optional enableDebuginfod pkg-config; - buildInputs = [ zlib zstd bzip2 xz ] + nativeBuildInputs = [ + m4 + bison + flex + gettext + bzip2 + ] ++ lib.optional enableDebuginfod pkg-config; + buildInputs = + [ + zlib + zstd + bzip2 + xz + ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - argp-standalone - musl-fts - musl-obstack - ] ++ lib.optionals enableDebuginfod [ - sqlite - curl - libmicrohttpd - libarchive - ]; + argp-standalone + musl-fts + musl-obstack + ] + ++ lib.optionals enableDebuginfod [ + sqlite + curl + libmicrohttpd + libarchive + ]; propagatedNativeBuildInputs = [ setupDebugInfoDirs ]; @@ -77,7 +115,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - doCheck = # Backtrace unwinding tests rely on glibc-internal symbol names. # Musl provides slightly different forms and fails. @@ -86,8 +123,7 @@ stdenv.mkDerivation rec { # Test suite tries using `uname` to determine whether certain tests # can be executed, so we need to match build and host platform exactly. && (stdenv.hostPlatform == stdenv.buildPlatform); - doInstallCheck = !stdenv.hostPlatform.isMusl - && (stdenv.hostPlatform == stdenv.buildPlatform); + doInstallCheck = !stdenv.hostPlatform.isMusl && (stdenv.hostPlatform == stdenv.buildPlatform); passthru.updateScript = gitUpdater { url = "https://sourceware.org/git/elfutils.git"; @@ -102,7 +138,14 @@ stdenv.mkDerivation rec { badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; # licenses are GPL2 or LGPL3+ for libraries, GPL3+ for bins, # but since this package isn't split that way, all three are listed. - license = with licenses; [ gpl2Only lgpl3Plus gpl3Plus ]; - maintainers = with maintainers; [ eelco r-burns ]; + license = with licenses; [ + gpl2Only + lgpl3Plus + gpl3Plus + ]; + maintainers = with maintainers; [ + eelco + r-burns + ]; }; } diff --git a/pkgs/by-name/el/ell/default.nix b/pkgs/by-name/el/ell/default.nix index 9c16a34..6aa1d00 100644 --- a/pkgs/by-name/el/ell/default.nix +++ b/pkgs/by-name/el/ell/default.nix @@ -1,17 +1,22 @@ -{ lib, stdenv -, fetchgit -, autoreconfHook -, pkg-config -, dbus -, sysctl -, gitUpdater +{ + lib, + stdenv, + fetchgit, + autoreconfHook, + pkg-config, + dbus, + sysctl, + gitUpdater, }: stdenv.mkDerivation rec { pname = "ell"; version = "0.64"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchgit { url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; @@ -36,9 +41,7 @@ stdenv.mkDerivation rec { doCheck = !stdenv.hostPlatform.isMusl; passthru = { - updateScript = gitUpdater { - url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; - }; + updateScript = gitUpdater { url = "https://git.kernel.org/pub/scm/libs/ell/ell.git"; }; }; meta = with lib; { @@ -50,6 +53,9 @@ stdenv.mkDerivation rec { changelog = "https://git.kernel.org/pub/scm/libs/ell/ell.git/tree/ChangeLog?h=${version}"; license = licenses.lgpl21Plus; platforms = platforms.linux; - maintainers = with maintainers; [ mic92 dtzWill ]; + maintainers = with maintainers; [ + mic92 + dtzWill + ]; }; } diff --git a/pkgs/by-name/ep/epubcheck/default.nix b/pkgs/by-name/ep/epubcheck/default.nix index abd2803..d342698 100644 --- a/pkgs/by-name/ep/epubcheck/default.nix +++ b/pkgs/by-name/ep/epubcheck/default.nix @@ -1,5 +1,10 @@ -{ lib, stdenv, fetchzip -, jre, makeWrapper }: +{ + lib, + stdenv, + fetchzip, + jre, + makeWrapper, +}: stdenv.mkDerivation rec { pname = "epubcheck"; @@ -36,7 +41,12 @@ stdenv.mkDerivation rec { description = "Validation tool for EPUB"; mainProgram = "epubcheck"; sourceProvenance = with sourceTypes; [ binaryBytecode ]; - license = with licenses; [ asl20 bsd3 mpl10 w3c ]; + license = with licenses; [ + asl20 + bsd3 + mpl10 + w3c + ]; platforms = platforms.all; maintainers = with maintainers; [ eadwu ]; }; diff --git a/pkgs/by-name/ex/expat/default.nix b/pkgs/by-name/ex/expat/default.nix index 34775b2..c20f2ab 100644 --- a/pkgs/by-name/ex/expat/default.nix +++ b/pkgs/by-name/ex/expat/default.nix @@ -1,6 +1,7 @@ -{ lib -, stdenv -, fetchurl +{ + lib, + stdenv, + fetchurl, # for passthru.tests # , python3 # , perlPackages @@ -17,20 +18,25 @@ let version = "2.6.2"; - tag = "R_${lib.replaceStrings ["."] ["_"] version}"; + tag = "R_${lib.replaceStrings [ "." ] [ "_" ] version}"; in stdenv.mkDerivation (finalAttrs: { pname = "expat"; inherit version; src = fetchurl { - url = with finalAttrs; "https://github.com/libexpat/libexpat/releases/download/${tag}/${pname}-${version}.tar.xz"; + url = + with finalAttrs; + "https://github.com/libexpat/libexpat/releases/download/${tag}/${pname}-${version}.tar.xz"; hash = "sha256-7hS0xdiQixvsN62TdgfqsYPU2YBqCK3uRyw8MSHSc2Q="; }; strictDeps = true; - outputs = [ "out" "dev" ]; # TODO: fix referrers + outputs = [ + "out" + "dev" + ]; # TODO: fix referrers outputBin = "dev"; enableParallelBuilding = true; diff --git a/pkgs/by-name/ex/expect/default.nix b/pkgs/by-name/ex/expect/default.nix index e2457ad..9626681 100644 --- a/pkgs/by-name/ex/expect/default.nix +++ b/pkgs/by-name/ex/expect/default.nix @@ -1,4 +1,14 @@ -{ lib, stdenv, buildPackages, fetchurl, tcl, makeWrapper, autoreconfHook, fetchpatch, substituteAll }: +{ + lib, + stdenv, + buildPackages, + fetchurl, + tcl, + makeWrapper, + autoreconfHook, + fetchpatch, + substituteAll, +}: tcl.mkTclDerivation rec { pname = "expect"; @@ -35,7 +45,10 @@ tcl.mkTclDerivation rec { sed -i "s,/bin/stty,$(type -p stty),g" configure.in ''; - nativeBuildInputs = [ autoreconfHook makeWrapper ]; + nativeBuildInputs = [ + autoreconfHook + makeWrapper + ]; strictDeps = true; hardeningDisable = [ "format" ]; @@ -45,7 +58,10 @@ tcl.mkTclDerivation rec { ${lib.optionalString stdenv.isDarwin "tclWrapperArgs+=(--prefix DYLD_LIBRARY_PATH : $out/lib/expect${version})"} ''; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; meta = with lib; { description = "A tool for automating interactive applications"; diff --git a/pkgs/by-name/fi/file/default.nix b/pkgs/by-name/fi/file/default.nix index 8cff5cc..89def48 100644 --- a/pkgs/by-name/fi/file/default.nix +++ b/pkgs/by-name/fi/file/default.nix @@ -1,5 +1,11 @@ -{ lib, stdenv, fetchurl, file, zlib, libgnurx -, testers +{ + lib, + stdenv, + fetchurl, + file, + zlib, + libgnurx, + testers, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -19,7 +25,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-/Jf1ECm7DiyfTjv/79r2ePDgOe6HK53lwAKm0Jx4TYI="; }; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; patches = [ # Upstream patch to fix 32-bit tests. @@ -31,8 +41,7 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; nativeBuildInputs = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file; - buildInputs = [ zlib ] - ++ lib.optional stdenv.hostPlatform.isWindows libgnurx; + buildInputs = [ zlib ] ++ lib.optional stdenv.hostPlatform.isWindows libgnurx; # https://bugs.astron.com/view.php?id=382 doCheck = !stdenv.buildPlatform.isMusl; diff --git a/pkgs/by-name/fi/file/packages.nix b/pkgs/by-name/fi/file/packages.nix index 00ab6a0..a77c65d 100644 --- a/pkgs/by-name/fi/file/packages.nix +++ b/pkgs/by-name/fi/file/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - file = callPackage ./. { - inherit (windows) libgnurx; - }; +with pkgs; { + file = callPackage ./. { inherit (windows) libgnurx; }; } diff --git a/pkgs/by-name/fi/findutils/default.nix b/pkgs/by-name/fi/findutils/default.nix index b37eaea..e25943e 100644 --- a/pkgs/by-name/fi/findutils/default.nix +++ b/pkgs/by-name/fi/findutils/default.nix @@ -1,5 +1,8 @@ -{ lib, stdenv, fetchurl -, coreutils +{ + lib, + stdenv, + fetchurl, + coreutils, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -25,13 +28,17 @@ stdenv.mkDerivation rec { buildInputs = [ coreutils ]; # bin/updatedb script needs to call sort # Since glibc-2.25 the i686 tests hang reliably right after test-sleep. - doCheck - = !stdenv.hostPlatform.isDarwin + doCheck = + !stdenv.hostPlatform.isDarwin && !(stdenv.hostPlatform.libc == "glibc" && stdenv.hostPlatform.isi686) && (stdenv.hostPlatform.libc != "musl") && stdenv.hostPlatform == stdenv.buildPlatform; - outputs = [ "out" "info" "locate"]; + outputs = [ + "out" + "info" + "locate" + ]; configureFlags = [ # "sort" need not be on the PATH as a run-time dep, so we need to tell diff --git a/pkgs/by-name/fl/flex/2.5.35.nix b/pkgs/by-name/fl/flex/2.5.35.nix index d6a0992..a2414ef 100644 --- a/pkgs/by-name/fl/flex/2.5.35.nix +++ b/pkgs/by-name/fl/flex/2.5.35.nix @@ -1,11 +1,23 @@ -{ lib, stdenv, fetchurl, autoreconfHook, flex, bison, texinfo, help2man, m4 }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + flex, + bison, + texinfo, + help2man, + m4, +}: stdenv.mkDerivation rec { pname = "flex"; version = "2.5.35"; src = fetchurl { - url = "https://github.com/westes/flex/archive/flex-${lib.replaceStrings ["."] ["-"] version}.tar.gz"; + url = "https://github.com/westes/flex/archive/flex-${ + lib.replaceStrings [ "." ] [ "-" ] version + }.tar.gz"; sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm"; }; @@ -13,7 +25,13 @@ stdenv.mkDerivation rec { patchShebangs tests ''; - nativeBuildInputs = [ flex bison texinfo help2man autoreconfHook ]; + nativeBuildInputs = [ + flex + bison + texinfo + help2man + autoreconfHook + ]; propagatedBuildInputs = [ m4 ]; diff --git a/pkgs/by-name/fl/flex/default.nix b/pkgs/by-name/fl/flex/default.nix index 8991c14..e00ef15 100644 --- a/pkgs/by-name/fl/flex/default.nix +++ b/pkgs/by-name/fl/flex/default.nix @@ -1,5 +1,12 @@ -{ lib, stdenv, buildPackages, fetchurl, bison, m4 -, autoreconfHook, help2man +{ + lib, + stdenv, + buildPackages, + fetchurl, + bison, + m4, + autoreconfHook, + help2man, }: # Avoid 'fetchpatch' to allow 'flex' to be used as a possible 'gcc' @@ -17,22 +24,29 @@ stdenv.mkDerivation rec { # Also upstream, will be part of 2.6.5 # https://github.com/westes/flex/commit/24fd0551333e - patches = [(fetchurl { - name = "glibc-2.26.patch"; - url = "https://raw.githubusercontent.com/lede-project/source/0fb14a2b1ab2f82ce63f4437b062229d73d90516/tools/flex/patches/200-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch"; - sha256 = "0mpp41zdg17gx30kcpj83jl8hssks3adbks0qzbhcz882b9c083r"; - })]; + patches = [ + (fetchurl { + name = "glibc-2.26.patch"; + url = "https://raw.githubusercontent.com/lede-project/source/0fb14a2b1ab2f82ce63f4437b062229d73d90516/tools/flex/patches/200-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch"; + sha256 = "0mpp41zdg17gx30kcpj83jl8hssks3adbks0qzbhcz882b9c083r"; + }) + ]; - postPatch = '' - patchShebangs tests - '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - substituteInPlace Makefile.in --replace "tests" " " + postPatch = + '' + patchShebangs tests + '' + + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + substituteInPlace Makefile.in --replace "tests" " " - substituteInPlace doc/Makefile.am --replace 'flex.1: $(top_srcdir)/configure.ac' 'flex.1: ' - ''; + substituteInPlace doc/Makefile.am --replace 'flex.1: $(top_srcdir)/configure.ac' 'flex.1: ' + ''; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ autoreconfHook help2man ]; + nativeBuildInputs = [ + autoreconfHook + help2man + ]; buildInputs = [ bison ]; propagatedBuildInputs = [ m4 ]; diff --git a/pkgs/by-name/fl/flex/packages.nix b/pkgs/by-name/fl/flex/packages.nix index 248e6d0..2d9d9c0 100644 --- a/pkgs/by-name/fl/flex/packages.nix +++ b/pkgs/by-name/fl/flex/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { flex_2_5_35 = callPackage ./2.5.35.nix { }; flex = callPackage ./. { }; } diff --git a/pkgs/by-name/fm/fmt/default.nix b/pkgs/by-name/fm/fmt/default.nix index 9866be4..cdb2121 100644 --- a/pkgs/by-name/fm/fmt/default.nix +++ b/pkgs/by-name/fm/fmt/default.nix @@ -1,8 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub, fetchpatch -, cmake -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + enableShared ? !stdenv.hostPlatform.isStatic, # for passthru.tests # , mpd @@ -12,12 +14,20 @@ }: let - generic = { version, sha256, patches ? [ ] }: + generic = + { + version, + sha256, + patches ? [ ], + }: stdenv.mkDerivation { pname = "fmt"; inherit version; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "fmtlib"; @@ -30,9 +40,7 @@ let nativeBuildInputs = [ cmake ]; - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=${if enableShared then "ON" else "OFF"}" - ]; + cmakeFlags = [ "-DBUILD_SHARED_LIBS=${if enableShared then "ON" else "OFF"}" ]; doCheck = true; diff --git a/pkgs/by-name/fm/fmt/packages.nix b/pkgs/by-name/fm/fmt/packages.nix index 14fd8b1..fd70fa5 100644 --- a/pkgs/by-name/fm/fmt/packages.nix +++ b/pkgs/by-name/fm/fmt/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { inherit (callPackages ./. { }) fmt_8 fmt_9 fmt_10; fmt = fmt_10; } diff --git a/pkgs/by-name/fo/fontconfig/default.nix b/pkgs/by-name/fo/fontconfig/default.nix index a3150ca..3d5df79 100644 --- a/pkgs/by-name/fo/fontconfig/default.nix +++ b/pkgs/by-name/fo/fontconfig/default.nix @@ -1,15 +1,16 @@ -{ stdenv -, lib -, fetchurl -, pkg-config -, python3 -, freetype -, expat -, libxslt -, gperf -, dejavu_fonts -, autoreconfHook -, CoreFoundation +{ + stdenv, + lib, + fetchurl, + pkg-config, + python3, + freetype, + expat, + libxslt, + gperf, + dejavu_fonts, + autoreconfHook, + CoreFoundation, # for passthru.tests # , testers }: @@ -18,10 +19,17 @@ stdenv.mkDerivation (finalAttrs: { pname = "fontconfig"; version = "2.15.0"; - outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config + outputs = [ + "bin" + "dev" + "lib" + "out" + ]; # $out contains all the config src = fetchurl { - url = with finalAttrs; "https://www.freedesktop.org/software/fontconfig/release/${pname}-${version}.tar.xz"; + url = + with finalAttrs; + "https://www.freedesktop.org/software/fontconfig/release/${pname}-${version}.tar.xz"; hash = "sha256-Y6BljQ4G4PqIYQZFK1jvBPIfWCAuoCqUw53g0zNdfA4="; }; @@ -33,28 +41,26 @@ stdenv.mkDerivation (finalAttrs: { python3 ]; - buildInputs = [ - expat - ] ++ lib.optional stdenv.isDarwin CoreFoundation; + buildInputs = [ expat ] ++ lib.optional stdenv.isDarwin CoreFoundation; - propagatedBuildInputs = [ - freetype - ]; + propagatedBuildInputs = [ freetype ]; postPatch = '' # Requires networking. sed -i '/check_PROGRAMS += test-crbug1004254/d' test/Makefile.am ''; - configureFlags = [ - "--sysconfdir=/etc" - "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" - "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/ - # just <1MB; this is what you get when loading config fails for some reason - "--with-default-fonts=${dejavu_fonts.minimal}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" - ]; + configureFlags = + [ + "--sysconfdir=/etc" + "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" + "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/ + # just <1MB; this is what you get when loading config fails for some reason + "--with-default-fonts=${dejavu_fonts.minimal}" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" + ]; enableParallelBuilding = true; diff --git a/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix b/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix index 47884b9..a1ac7d1 100644 --- a/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix +++ b/pkgs/by-name/fo/fontconfig/make-fonts-cache.nix @@ -1,4 +1,9 @@ -{ runCommand, lib, fontconfig, fontDirectories }: +{ + runCommand, + lib, + fontconfig, + fontDirectories, +}: runCommand "fc-cache" { diff --git a/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix b/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix index a03f744..846f1c1 100644 --- a/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix +++ b/pkgs/by-name/fo/fontconfig/make-fonts-conf.nix @@ -1,23 +1,41 @@ -{ runCommand, stdenv, lib, libxslt, fontconfig, dejavu_fonts }: - -let fontconfig_ = fontconfig; in { - fontconfig ? fontconfig_ + runCommand, + stdenv, + lib, + libxslt, + fontconfig, + dejavu_fonts, +}: + +let + fontconfig_ = fontconfig; +in +{ + fontconfig ? fontconfig_, # an array of fonts, e.g. `[ pkgs.dejavu_fonts.minimal ]` -, fontDirectories - , impureFontDirectories ? [ - # nix user profile - "~/.nix-profile/lib/X11/fonts" "~/.nix-profile/share/fonts" - ] - ++ lib.optional stdenv.isDarwin "~/Library/Fonts" - ++ [ - # FHS paths for non-NixOS platforms - "/usr/share/fonts" "/usr/local/share/fonts" - ] - # darwin paths - ++ lib.optionals stdenv.isDarwin [ "/Library/Fonts" "/System/Library/Fonts" ] - # nix default profile - ++ [ "/nix/var/nix/profiles/default/lib/X11/fonts" "/nix/var/nix/profiles/default/share/fonts" ] + fontDirectories, + impureFontDirectories ? + [ + # nix user profile + "~/.nix-profile/lib/X11/fonts" + "~/.nix-profile/share/fonts" + ] + ++ lib.optional stdenv.isDarwin "~/Library/Fonts" + ++ [ + # FHS paths for non-NixOS platforms + "/usr/share/fonts" + "/usr/local/share/fonts" + ] + # darwin paths + ++ lib.optionals stdenv.isDarwin [ + "/Library/Fonts" + "/System/Library/Fonts" + ] + # nix default profile + ++ [ + "/nix/var/nix/profiles/default/lib/X11/fonts" + "/nix/var/nix/profiles/default/share/fonts" + ], }: runCommand "fonts.conf" diff --git a/pkgs/by-name/fo/fontconfig/packages.nix b/pkgs/by-name/fo/fontconfig/packages.nix index 8670a20..f8c3250 100644 --- a/pkgs/by-name/fo/fontconfig/packages.nix +++ b/pkgs/by-name/fo/fontconfig/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - fontconfig = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) CoreFoundation; - }; +with pkgs; { + fontconfig = callPackage ./. { inherit (darwin.apple_sdk.frameworks) CoreFoundation; }; } diff --git a/pkgs/by-name/fo/fontforge/default.nix b/pkgs/by-name/fo/fontforge/default.nix index d7a083b..6d53246 100644 --- a/pkgs/by-name/fo/fontforge/default.nix +++ b/pkgs/by-name/fo/fontforge/default.nix @@ -1,13 +1,34 @@ -{ stdenv, fetchFromGitHub, lib, fetchpatch -, cmake, uthash, pkg-config -, python, freetype, zlib, glib, giflib, libpng, libjpeg, libtiff, libxml2, cairo, pango -, readline, woff2, zeromq -, withSpiro ? false, libspiro -, withGTK ? false, gtk3 -, withGUI ? withGTK -, withPython ? true -, withExtras ? true -, Carbon, Cocoa +{ + stdenv, + fetchFromGitHub, + lib, + fetchpatch, + cmake, + uthash, + pkg-config, + python, + freetype, + zlib, + glib, + giflib, + libpng, + libjpeg, + libtiff, + libxml2, + cairo, + pango, + readline, + woff2, + zeromq, + withSpiro ? false, + libspiro, + withGTK ? false, + gtk3, + withGUI ? withGTK, + withPython ? true, + withExtras ? true, + Carbon, + Cocoa, }: assert withGTK -> withGUI; @@ -43,16 +64,39 @@ stdenv.mkDerivation rec { # do not use x87's 80-bit arithmetic, rouding errors result in very different font binaries env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-msse2 -mfpmath=sse"; - nativeBuildInputs = [ pkg-config cmake ]; - buildInputs = [ - readline uthash woff2 zeromq - python freetype zlib glib giflib libpng libjpeg libtiff libxml2 - ] + nativeBuildInputs = [ + pkg-config + cmake + ]; + buildInputs = + [ + readline + uthash + woff2 + zeromq + python + freetype + zlib + glib + giflib + libpng + libjpeg + libtiff + libxml2 + ] ++ lib.optionals withSpiro [ libspiro ] - ++ lib.optionals withGUI [ gtk3 cairo pango ] - ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ]; + ++ lib.optionals withGUI [ + gtk3 + cairo + pango + ] + ++ lib.optionals stdenv.isDarwin [ + Carbon + Cocoa + ]; - cmakeFlags = [ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ] + cmakeFlags = + [ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" ] ++ lib.optional (!withSpiro) "-DENABLE_LIBSPIRO=OFF" ++ lib.optional (!withGUI) "-DENABLE_GUI=OFF" ++ lib.optional (!withGTK) "-DENABLE_X11=ON" diff --git a/pkgs/by-name/fo/fontforge/packages.nix b/pkgs/by-name/fo/fontforge/packages.nix index fe4c9f3..f20e4c3 100644 --- a/pkgs/by-name/fo/fontforge/packages.nix +++ b/pkgs/by-name/fo/fontforge/packages.nix @@ -1,12 +1,13 @@ { ... }: res: pkgs: super: -with pkgs; -{ - fontforge = lowPrio (callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; - python = python3; - }); +with pkgs; { + fontforge = lowPrio ( + callPackage ./. { + inherit (darwin.apple_sdk.frameworks) Carbon Cocoa; + python = python3; + } + ); fontforge-gtk = fontforge.override { withSpiro = true; withGTK = true; diff --git a/pkgs/by-name/fo/fop/default.nix b/pkgs/by-name/fo/fop/default.nix index 94a2421..385086a 100644 --- a/pkgs/by-name/fo/fop/default.nix +++ b/pkgs/by-name/fo/fop/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, fetchurl -, ant -, jdk -, jre -, makeWrapper -, stripJavaArchivesHook +{ + lib, + stdenv, + fetchurl, + ant, + jdk, + jre, + makeWrapper, + stripJavaArchivesHook, }: stdenv.mkDerivation (finalAttrs: { @@ -71,7 +72,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://xmlgraphics.apache.org/fop/"; license = lib.licenses.asl20; mainProgram = "fop"; - maintainers = with lib.maintainers; [ bjornfor tomasajt ]; + maintainers = with lib.maintainers; [ + bjornfor + tomasajt + ]; platforms = jre.meta.platforms; sourceProvenance = with lib.sourceTypes; [ fromSource diff --git a/pkgs/by-name/fo/fortify-headers/default.nix b/pkgs/by-name/fo/fortify-headers/default.nix index 1f418af..bb3c554 100644 --- a/pkgs/by-name/fo/fortify-headers/default.nix +++ b/pkgs/by-name/fo/fortify-headers/default.nix @@ -1,6 +1,7 @@ -{ lib -, stdenv -, fetchurl +{ + lib, + stdenv, + fetchurl, }: stdenv.mkDerivation { @@ -11,7 +12,7 @@ stdenv.mkDerivation { # extract from the alpine package src = fetchurl { url = "https://dl-cdn.alpinelinux.org/alpine/v3.18/main/x86_64/fortify-headers-1.1-r3.apk"; - name = "fortify-headers.tar.gz"; # ensure it's extracted as a .tar.gz + name = "fortify-headers.tar.gz"; # ensure it's extracted as a .tar.gz hash = "sha256-8A8JcKHIBgXpUuIP4zs3Q1yBs5jCGd5F3H2E8UN/S2g="; }; diff --git a/pkgs/by-name/fr/freetype/default.nix b/pkgs/by-name/fr/freetype/default.nix index 0d56ab1..a801e16 100644 --- a/pkgs/by-name/fr/freetype/default.nix +++ b/pkgs/by-name/fr/freetype/default.nix @@ -1,24 +1,25 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, pkgsHostHost -, pkg-config -, which -, makeWrapper -, zlib -, bzip2 -, brotli -, libpng -, gnumake -, glib +{ + lib, + stdenv, + fetchurl, + buildPackages, + pkgsHostHost, + pkg-config, + which, + makeWrapper, + zlib, + bzip2, + brotli, + libpng, + gnumake, + glib, -, # FreeType supports LCD filtering (colloquially referred to as sub-pixel rendering). + # FreeType supports LCD filtering (colloquially referred to as sub-pixel rendering). # LCD filtering is also known as ClearType and covered by several Microsoft patents. # This option allows it to be disabled. See http://www.freetype.org/patents.html. - useEncumberedCode ? true + useEncumberedCode ? true, - # for passthru.tests +# for passthru.tests # , cairo # , fontforge # , ghostscript @@ -35,20 +36,32 @@ # , testers }: - stdenv.mkDerivation (finalAttrs: { pname = "freetype"; version = "2.13.2"; - src = let inherit (finalAttrs) pname version; in fetchurl { - url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz"; - sha256 = "sha256-EpkcTlXFBt1/m3ZZM+Yv0r4uBtQhUF15UKEy5PG7SE0="; - }; + src = + let + inherit (finalAttrs) pname version; + in + fetchurl { + url = "mirror://savannah/${pname}/${pname}-${version}.tar.xz"; + sha256 = "sha256-EpkcTlXFBt1/m3ZZM+Yv0r4uBtQhUF15UKEy5PG7SE0="; + }; - propagatedBuildInputs = [ zlib bzip2 brotli libpng ]; # needed when linking against freetype + propagatedBuildInputs = [ + zlib + bzip2 + brotli + libpng + ]; # needed when linking against freetype # dependence on harfbuzz is looser than the reverse dependence - nativeBuildInputs = [ pkg-config which ] + nativeBuildInputs = + [ + pkg-config + which + ] ++ lib.optional (!stdenv.hostPlatform.isWindows) makeWrapper # FreeType requires GNU Make, which is not part of stdenv on FreeBSD. ++ lib.optional (!stdenv.isLinux) gnumake; @@ -57,32 +70,41 @@ stdenv.mkDerivation (finalAttrs: { ./enable-table-validation.patch ] ++ lib.optional useEncumberedCode ./enable-subpixel-rendering.patch; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - configureFlags = [ "--bindir=$(dev)/bin" "--enable-freetype-config" ]; + configureFlags = [ + "--bindir=$(dev)/bin" + "--enable-freetype-config" + ]; # native compiler to generate building tool CC_BUILD = "${buildPackages.stdenv.cc}/bin/cc"; # The asm for armel is written with the 'asm' keyword. - CFLAGS = lib.optionalString stdenv.isAarch32 "-std=gnu99" + CFLAGS = + lib.optionalString stdenv.isAarch32 "-std=gnu99" + lib.optionalString stdenv.hostPlatform.is32bit " -D_FILE_OFFSET_BITS=64"; enableParallelBuilding = true; doCheck = true; - postInstall = glib.flattenInclude + postInstall = + glib.flattenInclude # pkgsCross.mingwW64.pkg-config doesn't build # makeWrapper doesn't cross-compile to windows #120726 + '' - substituteInPlace $dev/bin/freetype-config \ - --replace ${buildPackages.pkg-config} ${pkgsHostHost.pkg-config} - '' + lib.optionalString (!stdenv.hostPlatform.isMinGW) '' + substituteInPlace $dev/bin/freetype-config \ + --replace ${buildPackages.pkg-config} ${pkgsHostHost.pkg-config} + '' + + lib.optionalString (!stdenv.hostPlatform.isMinGW) '' - wrapProgram "$dev/bin/freetype-config" \ - --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH:$dev/lib/pkgconfig" - ''; + wrapProgram "$dev/bin/freetype-config" \ + --set PKG_CONFIG_PATH "$PKG_CONFIG_PATH:$dev/lib/pkgconfig" + ''; # passthru.tests = { # inherit @@ -113,7 +135,9 @@ stdenv.mkDerivation (finalAttrs: { fonts. ''; homepage = "https://www.freetype.org/"; - changelog = "https://gitlab.freedesktop.org/freetype/freetype/-/raw/VER-${builtins.replaceStrings ["."] ["-"] finalAttrs.version}/docs/CHANGES"; + changelog = "https://gitlab.freedesktop.org/freetype/freetype/-/raw/VER-${ + builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version + }/docs/CHANGES"; license = licenses.gpl2Plus; # or the FreeType License (BSD + advertising clause) platforms = platforms.all; pkgConfigModules = [ "freetype2" ]; diff --git a/pkgs/by-name/fu/fuse/common.nix b/pkgs/by-name/fu/fuse/common.nix index f4b8bfc..7353a0d 100644 --- a/pkgs/by-name/fu/fuse/common.nix +++ b/pkgs/by-name/fu/fuse/common.nix @@ -1,15 +1,26 @@ { version, hash }: -{ lib, stdenv, fetchFromGitHub, fetchpatch -, fusePackages, util-linux, gettext, shadow -, meson, ninja, pkg-config -, autoreconfHook -, python3Packages, which +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + fusePackages, + util-linux, + gettext, + shadow, + meson, + ninja, + pkg-config, + autoreconfHook, + python3Packages, + which, }: let isFuse3 = lib.hasPrefix "3" version; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "fuse"; inherit version; @@ -23,25 +34,38 @@ in stdenv.mkDerivation rec { preAutoreconf = "touch config.rpath"; patches = - lib.optional - (!isFuse3 && (stdenv.isAarch64 || stdenv.hostPlatform.isLoongArch64)) - (fetchpatch { - url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch"; - sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa"; - }) - ++ (if isFuse3 - then [ ./fuse3-install.patch ./fuse3-Do-not-set-FUSERMOUNT_DIR.patch ] - else [ - ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch - (fetchpatch { - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9"; - sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; - }) - ]); + lib.optional (!isFuse3 && (stdenv.isAarch64 || stdenv.hostPlatform.isLoongArch64)) (fetchpatch { + url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch"; + sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa"; + }) + ++ ( + if isFuse3 then + [ + ./fuse3-install.patch + ./fuse3-Do-not-set-FUSERMOUNT_DIR.patch + ] + else + [ + ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch + (fetchpatch { + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9"; + sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; + }) + ] + ); - nativeBuildInputs = if isFuse3 - then [ meson ninja pkg-config ] - else [ autoreconfHook gettext ]; + nativeBuildInputs = + if isFuse3 then + [ + meson + ninja + pkg-config + ] + else + [ + autoreconfHook + gettext + ]; outputs = [ "out" ] ++ lib.optional isFuse3 "common"; @@ -51,29 +75,41 @@ in stdenv.mkDerivation rec { "-Dinitscriptdir=" ]; - preConfigure = '' - export MOUNT_FUSE_PATH=$out/sbin - export INIT_D_PATH=$TMPDIR/etc/init.d - export UDEV_RULES_PATH=$out/etc/udev/rules.d + preConfigure = + '' + export MOUNT_FUSE_PATH=$out/sbin + export INIT_D_PATH=$TMPDIR/etc/init.d + export UDEV_RULES_PATH=$out/etc/udev/rules.d - # Ensure that FUSE calls the setuid wrapper, not - # $out/bin/fusermount. It falls back to calling fusermount in - # $PATH, so it should also work on non-NixOS systems. - export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\"" + # Ensure that FUSE calls the setuid wrapper, not + # $out/bin/fusermount. It falls back to calling fusermount in + # $PATH, so it should also work on non-NixOS systems. + export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\"" - substituteInPlace lib/mount_util.c --replace "/bin/" "${util-linux}/bin/" - '' + (if isFuse3 then '' - # The configure phase will delete these files (temporary workaround for - # ./fuse3-install_man.patch) - install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1 - install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8 - '' else '' - substituteInPlace util/mount.fuse.c --replace '"su"' '"${shadow.su}/bin/su"' - sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh - ./makeconf.sh - ''); + substituteInPlace lib/mount_util.c --replace "/bin/" "${util-linux}/bin/" + '' + + ( + if isFuse3 then + '' + # The configure phase will delete these files (temporary workaround for + # ./fuse3-install_man.patch) + install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1 + install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8 + '' + else + '' + substituteInPlace util/mount.fuse.c --replace '"su"' '"${shadow.su}/bin/su"' + sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh + ./makeconf.sh + '' + ); - nativeCheckInputs = [ which ] ++ (with python3Packages; [ python pytest ]); + nativeCheckInputs = + [ which ] + ++ (with python3Packages; [ + python + pytest + ]); checkPhase = '' python3 -m pytest test/ @@ -81,13 +117,20 @@ in stdenv.mkDerivation rec { doCheck = false; # v2: no tests, v3: all tests get skipped in a sandbox - postFixup = "cd $out\n" + (if isFuse3 then '' - install -D -m444 etc/fuse.conf $common/etc/fuse.conf - install -D -m444 etc/udev/rules.d/99-fuse3.rules $common/etc/udev/rules.d/99-fuse.rules - '' else '' - cp ${fusePackages.fuse_3.common}/etc/fuse.conf etc/fuse.conf - cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules - ''); + postFixup = + "cd $out\n" + + ( + if isFuse3 then + '' + install -D -m444 etc/fuse.conf $common/etc/fuse.conf + install -D -m444 etc/udev/rules.d/99-fuse3.rules $common/etc/udev/rules.d/99-fuse.rules + '' + else + '' + cp ${fusePackages.fuse_3.common}/etc/fuse.conf etc/fuse.conf + cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules + '' + ); meta = with lib; { description = "Library that allows filesystems to be implemented in user space"; @@ -102,7 +145,10 @@ in stdenv.mkDerivation rec { homepage = "https://github.com/libfuse/libfuse"; changelog = "https://github.com/libfuse/libfuse/releases/tag/fuse-${version}"; platforms = platforms.linux; - license = with licenses; [ gpl2Only lgpl21Only ]; + license = with licenses; [ + gpl2Only + lgpl21Only + ]; maintainers = [ maintainers.primeos ]; }; } diff --git a/pkgs/by-name/fu/fuse/default.nix b/pkgs/by-name/fu/fuse/default.nix index f692c2f..c19920f 100644 --- a/pkgs/by-name/fu/fuse/default.nix +++ b/pkgs/by-name/fu/fuse/default.nix @@ -1,10 +1,9 @@ { callPackage, util-linux }: let - mkFuse = args: callPackage (import ./common.nix args) { - inherit util-linux; - }; -in { + mkFuse = args: callPackage (import ./common.nix args) { inherit util-linux; }; +in +{ fuse_2 = mkFuse { version = "2.9.9"; hash = "sha256-dgjM6M7xk5MHi9xPyCyvF0vq0KM8UCsEYBcMhkrdvfs="; diff --git a/pkgs/by-name/fu/fuse/packages.nix b/pkgs/by-name/fu/fuse/packages.nix index 7f1604c..8344cc2 100644 --- a/pkgs/by-name/fu/fuse/packages.nix +++ b/pkgs/by-name/fu/fuse/packages.nix @@ -1,11 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ - fusePackages = dontRecurseIntoAttrs (callPackage ./. { - util-linux = util-linuxMinimal; - }); +with pkgs; { + fusePackages = dontRecurseIntoAttrs (callPackage ./. { util-linux = util-linuxMinimal; }); fuse = fuse2; fuse2 = lowPrio (if stdenv.isDarwin then macfuse-stubs else fusePackages.fuse_2); fuse3 = fusePackages.fuse_3; diff --git a/pkgs/by-name/ga/gawk/default.nix b/pkgs/by-name/ga/gawk/default.nix index d85880e..cfad07b 100644 --- a/pkgs/by-name/ga/gawk/default.nix +++ b/pkgs/by-name/ga/gawk/default.nix @@ -1,17 +1,24 @@ -{ lib, stdenv, fetchurl -# TODO: links -lsigsegv but loses the reference for some reason -, withSigsegv ? (false && stdenv.hostPlatform.system != "x86_64-cygwin"), libsigsegv -, interactive ? false, readline -, autoreconfHook # no-pma fix +{ + lib, + stdenv, + fetchurl, + # TODO: links -lsigsegv but loses the reference for some reason + withSigsegv ? (false && stdenv.hostPlatform.system != "x86_64-cygwin"), + libsigsegv, + interactive ? false, + readline, + autoreconfHook, # no-pma fix -/* Test suite broke on: - stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1 - || stdenv.isDarwin # XXX: `locale' segfaults - || stdenv.isSunOS # XXX: `_backsmalls1' fails, locale stuff? - || stdenv.isFreeBSD -*/ -, doCheck ? (interactive && stdenv.isLinux), glibcLocales ? null -, locale ? null + /* + Test suite broke on: + stdenv.isCygwin # XXX: `test-dup2' segfaults on Cygwin 6.1 + || stdenv.isDarwin # XXX: `locale' segfaults + || stdenv.isSunOS # XXX: `_backsmalls1' fails, locale stuff? + || stdenv.isFreeBSD + */ + doCheck ? (interactive && stdenv.isLinux), + glibcLocales ? null, + locale ? null, }: assert (doCheck && stdenv.isLinux) -> glibcLocales != null; @@ -32,14 +39,16 @@ stdenv.mkDerivation rec { hardeningDisable = [ "pie" ]; # When we do build separate interactive version, it makes sense to always include man. - outputs = [ "out" "info" ] - ++ lib.optional (!interactive) "man"; + outputs = [ + "out" + "info" + ] ++ lib.optional (!interactive) "man"; # no-pma fix - nativeBuildInputs = [ autoreconfHook ] - ++ lib.optional (doCheck && stdenv.isLinux) glibcLocales; + nativeBuildInputs = [ autoreconfHook ] ++ lib.optional (doCheck && stdenv.isLinux) glibcLocales; - buildInputs = lib.optional withSigsegv libsigsegv + buildInputs = + lib.optional withSigsegv libsigsegv ++ lib.optional interactive readline ++ lib.optional stdenv.isDarwin locale; @@ -48,9 +57,7 @@ stdenv.mkDerivation rec { (if interactive then "--with-readline=${readline.dev}" else "--without-readline") ]; - makeFlags = [ - "AR=${stdenv.cc.targetPrefix}ar" - ]; + makeFlags = [ "AR=${stdenv.cc.targetPrefix}ar" ]; inherit doCheck; diff --git a/pkgs/by-name/ga/gawk/gawk-with-extensions.nix b/pkgs/by-name/ga/gawk/gawk-with-extensions.nix index 1b82d79..c218ad7 100644 --- a/pkgs/by-name/ga/gawk/gawk-with-extensions.nix +++ b/pkgs/by-name/ga/gawk/gawk-with-extensions.nix @@ -1,13 +1,20 @@ -{ runCommand, gawk, extensions, makeWrapper }: +{ + runCommand, + gawk, + extensions, + makeWrapper, +}: -runCommand "gawk-with-extensions" { - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ gawk ] ++ extensions; -} '' - mkdir -p $out/bin - for i in ${gawk}/bin/*; do - name="$(basename "$i")" - makeWrapper $i $out/bin/$name \ - --prefix AWKLIBPATH : "${gawk}/lib/gawk:''${AWKLIBPATH:-}" - done -'' +runCommand "gawk-with-extensions" + { + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ gawk ] ++ extensions; + } + '' + mkdir -p $out/bin + for i in ${gawk}/bin/*; do + name="$(basename "$i")" + makeWrapper $i $out/bin/$name \ + --prefix AWKLIBPATH : "${gawk}/lib/gawk:''${AWKLIBPATH:-}" + done + '' diff --git a/pkgs/by-name/ga/gawk/gawkextlib.nix b/pkgs/by-name/ga/gawk/gawkextlib.nix index 86bf2be..9d5ccb0 100644 --- a/pkgs/by-name/ga/gawk/gawkextlib.nix +++ b/pkgs/by-name/ga/gawk/gawkextlib.nix @@ -1,64 +1,96 @@ -{ lib, stdenv, recurseIntoAttrs, fetchgit, pkg-config, autoreconfHook -, autoconf, automake, libiconv, libtool, texinfo, gettext, gawk, rapidjson, gd -, libharu, lmdb, gmp, glibcLocales, mpfr, more, postgresql, hiredis -, expat, tre }: +{ + lib, + stdenv, + recurseIntoAttrs, + fetchgit, + pkg-config, + autoreconfHook, + autoconf, + automake, + libiconv, + libtool, + texinfo, + gettext, + gawk, + rapidjson, + gd, + libharu, + lmdb, + gmp, + glibcLocales, + mpfr, + more, + postgresql, + hiredis, + expat, + tre, +}: let - buildExtension = lib.makeOverridable - ({ name, gawkextlib, extraBuildInputs ? [ ], doCheck ? true, patches ? [ ] }: - let is_extension = gawkextlib != null; - in stdenv.mkDerivation rec { - pname = "gawkextlib-${name}"; - version = "unstable-2022-10-20"; + buildExtension = lib.makeOverridable ( + { + name, + gawkextlib, + extraBuildInputs ? [ ], + doCheck ? true, + patches ? [ ], + }: + let + is_extension = gawkextlib != null; + in + stdenv.mkDerivation rec { + pname = "gawkextlib-${name}"; + version = "unstable-2022-10-20"; - src = fetchgit { - url = "git://git.code.sf.net/p/gawkextlib/code"; - rev = "f6c75b4ac1e0cd8d70c2f6c7a8d58b4d94cfde97"; - sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg="; - }; + src = fetchgit { + url = "git://git.code.sf.net/p/gawkextlib/code"; + rev = "f6c75b4ac1e0cd8d70c2f6c7a8d58b4d94cfde97"; + sha256 = "sha256-0p3CrQ3TBl7UcveZytK/9rkAzn69RRM2GwY2eCeqlkg="; + }; - inherit patches; + inherit patches; - postPatch = '' - cd ${name} + postPatch = '' + cd ${name} + ''; + + nativeBuildInputs = [ + autoconf + automake + libtool + autoreconfHook + pkg-config + texinfo + gettext + ]; + + buildInputs = [ gawk ] ++ extraBuildInputs; + propagatedBuildInputs = lib.optional is_extension gawkextlib; + + setupHook = if is_extension then ./setup-hook.sh else null; + inherit gawk; + + inherit doCheck; + nativeCheckInputs = [ more ]; + + meta = with lib; { + homepage = "https://sourceforge.net/projects/gawkextlib/"; + description = "Dynamically loaded extension libraries for GNU AWK"; + mainProgram = "xmlgawk"; + longDescription = '' + The gawkextlib project provides several extension libraries for + gawk (GNU AWK), as well as libgawkextlib containing some APIs that + are useful for building gawk extension libraries. These libraries + enable gawk to process XML data, interact with a PostgreSQL + database, use the GD graphics library, and perform unlimited + precision MPFR calculations. ''; - - nativeBuildInputs = [ - autoconf - automake - libtool - autoreconfHook - pkg-config - texinfo - gettext - ]; - - buildInputs = [ gawk ] ++ extraBuildInputs; - propagatedBuildInputs = lib.optional is_extension gawkextlib; - - setupHook = if is_extension then ./setup-hook.sh else null; - inherit gawk; - - inherit doCheck; - nativeCheckInputs = [ more ]; - - meta = with lib; { - homepage = "https://sourceforge.net/projects/gawkextlib/"; - description = "Dynamically loaded extension libraries for GNU AWK"; - mainProgram = "xmlgawk"; - longDescription = '' - The gawkextlib project provides several extension libraries for - gawk (GNU AWK), as well as libgawkextlib containing some APIs that - are useful for building gawk extension libraries. These libraries - enable gawk to process XML data, interact with a PostgreSQL - database, use the GD graphics library, and perform unlimited - precision MPFR calculations. - ''; - license = licenses.gpl3Plus; - platforms = platforms.unix; - maintainers = with maintainers; [ tomberek ]; - }; - }); + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ tomberek ]; + }; + } + ); gawkextlib = buildExtension { gawkextlib = null; name = "lib"; @@ -121,7 +153,10 @@ let mpfr = buildExtension { inherit gawkextlib; name = "mpfr"; - extraBuildInputs = [ gmp mpfr ]; + extraBuildInputs = [ + gmp + mpfr + ]; }; nl_langinfo = buildExtension { inherit gawkextlib; @@ -148,10 +183,17 @@ let xml = buildExtension { inherit gawkextlib; name = "xml"; - extraBuildInputs = [ expat libiconv ]; + extraBuildInputs = [ + expat + libiconv + ]; }; }; -in recurseIntoAttrs (libs // { - inherit gawkextlib buildExtension; - full = builtins.attrValues libs; -}) +in +recurseIntoAttrs ( + libs + // { + inherit gawkextlib buildExtension; + full = builtins.attrValues libs; + } +) diff --git a/pkgs/by-name/ga/gawk/packages.nix b/pkgs/by-name/ga/gawk/packages.nix index 635e621..7f1b9b2 100644 --- a/pkgs/by-name/ga/gawk/packages.nix +++ b/pkgs/by-name/ga/gawk/packages.nix @@ -1,15 +1,10 @@ { ... }: res: pkgs: super: -with pkgs; -{ - gawk = callPackage ./. { - inherit (darwin) locale; - }; +with pkgs; { + gawk = callPackage ./. { inherit (darwin) locale; }; - gawk-with-extensions = callPackage ./gawk-with-extensions.nix { - extensions = gawkextlib.full; - }; + gawk-with-extensions = callPackage ./gawk-with-extensions.nix { extensions = gawkextlib.full; }; gawkextlib = callPackage ./gawkextlib.nix { }; gawkInteractive = gawk.override { interactive = true; }; diff --git a/pkgs/by-name/gc/gcc/all.nix b/pkgs/by-name/gc/gcc/all.nix index 70b4b75..a0cc090 100644 --- a/pkgs/by-name/gc/gcc/all.nix +++ b/pkgs/by-name/gc/gcc/all.nix @@ -1,50 +1,78 @@ -{ lib -, stdenv -, gccStdenv -, gcc7Stdenv -, callPackage -, isl_0_11, isl_0_14, isl_0_17, isl_0_20 -, libcCross -, threadsCrossFor -, noSysDirs -, texinfo5 -, cloog_0_18_0, cloog -, lowPrio -, wrapCC +{ + lib, + stdenv, + gccStdenv, + gcc7Stdenv, + callPackage, + isl_0_11, + isl_0_14, + isl_0_17, + isl_0_20, + libcCross, + threadsCrossFor, + noSysDirs, + texinfo5, + cloog_0_18_0, + cloog, + lowPrio, + wrapCC, }@args: let versions = import ./versions.nix; - gccForMajorMinorVersion = majorMinorVersion: + gccForMajorMinorVersion = + majorMinorVersion: let atLeast = lib.versionAtLeast majorMinorVersion; - attrName = "gcc${lib.replaceStrings ["."] [""] majorMinorVersion}"; - pkg = lowPrio (wrapCC (callPackage ./default.nix ({ - inherit noSysDirs; - inherit majorMinorVersion; - reproducibleBuild = true; - profiledCompiler = false; - libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then args.libcCross else null; - threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCrossFor majorMinorVersion else { }; - isl = if stdenv.isDarwin then null - else if atLeast "9" then isl_0_20 - else if atLeast "7" then isl_0_17 - else if atLeast "6" then (if stdenv.targetPlatform.isRedox then isl_0_17 else isl_0_14) - else if atLeast "4.9" then isl_0_11 - else /* "4.8" */ isl_0_14; - } // lib.optionalAttrs (majorMinorVersion == "4.8") { - texinfo = texinfo5; # doesn't validate since 6.1 -> 6.3 bump - } // lib.optionalAttrs (!(atLeast "6")) { - cloog = if stdenv.isDarwin - then null - else if atLeast "4.9" then cloog_0_18_0 - else /* 4.8 */ cloog; - } // lib.optionalAttrs (atLeast "6" && !(atLeast "9")) { - # gcc 10 is too strict to cross compile gcc <= 8 - stdenv = if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc7Stdenv else stdenv; - }))); + attrName = "gcc${lib.replaceStrings [ "." ] [ "" ] majorMinorVersion}"; + pkg = lowPrio ( + wrapCC ( + callPackage ./default.nix ( + { + inherit noSysDirs; + inherit majorMinorVersion; + reproducibleBuild = true; + profiledCompiler = false; + libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then args.libcCross else null; + threadsCross = + if stdenv.targetPlatform != stdenv.buildPlatform then threadsCrossFor majorMinorVersion else { }; + isl = + if stdenv.isDarwin then + null + else if atLeast "9" then + isl_0_20 + else if atLeast "7" then + isl_0_17 + else if atLeast "6" then + (if stdenv.targetPlatform.isRedox then isl_0_17 else isl_0_14) + else if atLeast "4.9" then + isl_0_11 + # "4.8" + else + isl_0_14; + } + // lib.optionalAttrs (majorMinorVersion == "4.8") { + texinfo = texinfo5; # doesn't validate since 6.1 -> 6.3 bump + } + // lib.optionalAttrs (!(atLeast "6")) { + cloog = + if stdenv.isDarwin then + null + else if atLeast "4.9" then + cloog_0_18_0 + # 4.8 + else + cloog; + } + // lib.optionalAttrs (atLeast "6" && !(atLeast "9")) { + # gcc 10 is too strict to cross compile gcc <= 8 + stdenv = + if (stdenv.targetPlatform != stdenv.buildPlatform) && stdenv.cc.isGNU then gcc7Stdenv else stdenv; + } + ) + ) + ); in - lib.nameValuePair attrName pkg; + lib.nameValuePair attrName pkg; in lib.listToAttrs (map gccForMajorMinorVersion versions.allMajorVersions) - diff --git a/pkgs/by-name/gc/gcc/common/builder.nix b/pkgs/by-name/gc/gcc/common/builder.nix index 25c5646..a83efed 100644 --- a/pkgs/by-name/gc/gcc/common/builder.nix +++ b/pkgs/by-name/gc/gcc/common/builder.nix @@ -1,295 +1,310 @@ -{ lib -, stdenv -, enableMultilib -, targetConfig +{ + lib, + stdenv, + enableMultilib, + targetConfig, }: let - forceLibgccToBuildCrtStuff = - import ./libgcc-buildstuff.nix { inherit lib stdenv; }; + forceLibgccToBuildCrtStuff = import ./libgcc-buildstuff.nix { inherit lib stdenv; }; in -originalAttrs: (stdenv.mkDerivation (finalAttrs: originalAttrs // { - passthru = (originalAttrs.passthru or {}) // { inherit forceLibgccToBuildCrtStuff; }; - preUnpack = '' - oldOpts="$(shopt -po nounset)" || true - set -euo pipefail +originalAttrs: +(stdenv.mkDerivation ( + finalAttrs: + originalAttrs + // { + passthru = (originalAttrs.passthru or { }) // { + inherit forceLibgccToBuildCrtStuff; + }; + preUnpack = '' + oldOpts="$(shopt -po nounset)" || true + set -euo pipefail - export NIX_FIXINC_DUMMY="$NIX_BUILD_TOP/dummy" - mkdir "$NIX_FIXINC_DUMMY" + export NIX_FIXINC_DUMMY="$NIX_BUILD_TOP/dummy" + mkdir "$NIX_FIXINC_DUMMY" - if test "$staticCompiler" = "1"; then - EXTRA_LDFLAGS="-static" - else - EXTRA_LDFLAGS="-Wl,-rpath,''${!outputLib}/lib" - fi + if test "$staticCompiler" = "1"; then + EXTRA_LDFLAGS="-static" + else + EXTRA_LDFLAGS="-Wl,-rpath,''${!outputLib}/lib" + fi - # GCC interprets empty paths as ".", which we don't want. - if test -z "''${CPATH-}"; then unset CPATH; fi - if test -z "''${LIBRARY_PATH-}"; then unset LIBRARY_PATH; fi - echo "\$CPATH is \`''${CPATH-}'" - echo "\$LIBRARY_PATH is \`''${LIBRARY_PATH-}'" + # GCC interprets empty paths as ".", which we don't want. + if test -z "''${CPATH-}"; then unset CPATH; fi + if test -z "''${LIBRARY_PATH-}"; then unset LIBRARY_PATH; fi + echo "\$CPATH is \`''${CPATH-}'" + echo "\$LIBRARY_PATH is \`''${LIBRARY_PATH-}'" - if test "$noSysDirs" = "1"; then + if test "$noSysDirs" = "1"; then - declare -g \ - EXTRA_FLAGS_FOR_BUILD EXTRA_FLAGS EXTRA_FLAGS_FOR_TARGET \ - EXTRA_LDFLAGS_FOR_BUILD EXTRA_LDFLAGS_FOR_TARGET + declare -g \ + EXTRA_FLAGS_FOR_BUILD EXTRA_FLAGS EXTRA_FLAGS_FOR_TARGET \ + EXTRA_LDFLAGS_FOR_BUILD EXTRA_LDFLAGS_FOR_TARGET - # Extract flags from Bintools Wrappers - for post in '_FOR_BUILD' ""; do - curBintools="NIX_BINTOOLS''${post}" + # Extract flags from Bintools Wrappers + for post in '_FOR_BUILD' ""; do + curBintools="NIX_BINTOOLS''${post}" - declare -a extraLDFlags=() - if [[ -e "''${!curBintools}/nix-support/orig-libc" ]]; then - # Figure out what extra flags when linking to pass to the gcc - # compilers being generated to make sure that they use our libc. - extraLDFlags=($(< "''${!curBintools}/nix-support/libc-ldflags") $(< "''${!curBintools}/nix-support/libc-ldflags-before" || true)) - if [ -e ''${!curBintools}/nix-support/ld-set-dynamic-linker ]; then - extraLDFlags=-dynamic-linker=$(< ''${!curBintools}/nix-support/dynamic-linker) - fi + declare -a extraLDFlags=() + if [[ -e "''${!curBintools}/nix-support/orig-libc" ]]; then + # Figure out what extra flags when linking to pass to the gcc + # compilers being generated to make sure that they use our libc. + extraLDFlags=($(< "''${!curBintools}/nix-support/libc-ldflags") $(< "''${!curBintools}/nix-support/libc-ldflags-before" || true)) + if [ -e ''${!curBintools}/nix-support/ld-set-dynamic-linker ]; then + extraLDFlags=-dynamic-linker=$(< ''${!curBintools}/nix-support/dynamic-linker) + fi - # The path to the Libc binaries such as `crti.o'. - libc_libdir="$(< "''${!curBintools}/nix-support/orig-libc")/lib" - else - # Hack: support impure environments. - extraLDFlags=("-L/usr/lib64" "-L/usr/lib") - libc_libdir="/usr/lib" - fi - extraLDFlags=("-L$libc_libdir" "-rpath" "$libc_libdir" - "''${extraLDFlags[@]}") - for i in "''${extraLDFlags[@]}"; do - declare -g EXTRA_LDFLAGS''${post}+=" -Wl,$i" - done - done + # The path to the Libc binaries such as `crti.o'. + libc_libdir="$(< "''${!curBintools}/nix-support/orig-libc")/lib" + else + # Hack: support impure environments. + extraLDFlags=("-L/usr/lib64" "-L/usr/lib") + libc_libdir="/usr/lib" + fi + extraLDFlags=("-L$libc_libdir" "-rpath" "$libc_libdir" + "''${extraLDFlags[@]}") + for i in "''${extraLDFlags[@]}"; do + declare -g EXTRA_LDFLAGS''${post}+=" -Wl,$i" + done + done - # Extract flags from CC Wrappers - for post in '_FOR_BUILD' ""; do - curCC="NIX_CC''${post}" - curFIXINC="NIX_FIXINC_DUMMY''${post}" + # Extract flags from CC Wrappers + for post in '_FOR_BUILD' ""; do + curCC="NIX_CC''${post}" + curFIXINC="NIX_FIXINC_DUMMY''${post}" - declare -a extraFlags=() - if [[ -e "''${!curCC}/nix-support/orig-libc" ]]; then - # Figure out what extra compiling flags to pass to the gcc compilers - # being generated to make sure that they use our libc. - extraFlags=($(< "''${!curCC}/nix-support/libc-crt1-cflags") $(< "''${!curCC}/nix-support/libc-cflags")) + declare -a extraFlags=() + if [[ -e "''${!curCC}/nix-support/orig-libc" ]]; then + # Figure out what extra compiling flags to pass to the gcc compilers + # being generated to make sure that they use our libc. + extraFlags=($(< "''${!curCC}/nix-support/libc-crt1-cflags") $(< "''${!curCC}/nix-support/libc-cflags")) - # The path to the Libc headers - libc_devdir="$(< "''${!curCC}/nix-support/orig-libc-dev")" + # The path to the Libc headers + libc_devdir="$(< "''${!curCC}/nix-support/orig-libc-dev")" - # Use *real* header files, otherwise a limits.h is generated that - # does not include Libc's limits.h (notably missing SSIZE_MAX, - # which breaks the build). - declare -g NIX_FIXINC_DUMMY''${post}="$libc_devdir/include" - else - # Hack: support impure environments. - extraFlags=("-isystem" "/usr/include") - declare -g NIX_FIXINC_DUMMY''${post}=/usr/include - fi + # Use *real* header files, otherwise a limits.h is generated that + # does not include Libc's limits.h (notably missing SSIZE_MAX, + # which breaks the build). + declare -g NIX_FIXINC_DUMMY''${post}="$libc_devdir/include" + else + # Hack: support impure environments. + extraFlags=("-isystem" "/usr/include") + declare -g NIX_FIXINC_DUMMY''${post}=/usr/include + fi - extraFlags=("-I''${!curFIXINC}" "''${extraFlags[@]}") + extraFlags=("-I''${!curFIXINC}" "''${extraFlags[@]}") - # BOOT_CFLAGS defaults to `-g -O2'; since we override it below, make - # sure to explictly add them so that files compiled with the bootstrap - # compiler are optimized and (optionally) contain debugging information - # (info "(gccinstall) Building"). - if test -n "''${dontStrip-}"; then - extraFlags=("-O2" "-g" "''${extraFlags[@]}") - else - # Don't pass `-g' at all; this saves space while building. - extraFlags=("-O2" "''${extraFlags[@]}") - fi + # BOOT_CFLAGS defaults to `-g -O2'; since we override it below, make + # sure to explictly add them so that files compiled with the bootstrap + # compiler are optimized and (optionally) contain debugging information + # (info "(gccinstall) Building"). + if test -n "''${dontStrip-}"; then + extraFlags=("-O2" "-g" "''${extraFlags[@]}") + else + # Don't pass `-g' at all; this saves space while building. + extraFlags=("-O2" "''${extraFlags[@]}") + fi - declare -g EXTRA_FLAGS''${post}="''${extraFlags[*]}" - done + declare -g EXTRA_FLAGS''${post}="''${extraFlags[*]}" + done - if test -z "''${targetConfig-}"; then - # host = target, so the flags are the same - EXTRA_FLAGS_FOR_TARGET="$EXTRA_FLAGS" - EXTRA_LDFLAGS_FOR_TARGET="$EXTRA_LDFLAGS" + if test -z "''${targetConfig-}"; then + # host = target, so the flags are the same + EXTRA_FLAGS_FOR_TARGET="$EXTRA_FLAGS" + EXTRA_LDFLAGS_FOR_TARGET="$EXTRA_LDFLAGS" + fi + + # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find + # the startfiles. + # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx + # for the startfiles. + makeFlagsArray+=( + "BUILD_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD" + "SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD" + "NATIVE_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY" + + "LDFLAGS_FOR_BUILD=$EXTRA_LDFLAGS_FOR_BUILD" + #"LDFLAGS=$EXTRA_LDFLAGS" + "LDFLAGS_FOR_TARGET=$EXTRA_LDFLAGS_FOR_TARGET" + + "CFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" + "CXXFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" + "FLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" + + # It seems there is a bug in GCC 5 + #"CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" + #"CXXFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" + + "CFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" + "CXXFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" + "FLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" + ) + + if test -z "''${targetConfig-}"; then + makeFlagsArray+=( + "BOOT_CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" + "BOOT_LDFLAGS=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" + ) + fi + + if test "$withoutTargetLibc" == 1; then + # We don't want the gcc build to assume there will be a libc providing + # limits.h in this stage + makeFlagsArray+=( + 'LIMITS_H_TEST=false' + ) + else + makeFlagsArray+=( + 'LIMITS_H_TEST=true' + ) + fi + fi + + eval "$oldOpts" + ''; + + preConfigure = + (originalAttrs.preConfigure or "") + + '' + if test -n "$newlibSrc"; then + tar xvf "$newlibSrc" -C .. + ln -s ../newlib-*/newlib newlib + # Patch to get armvt5el working: + sed -i -e 's/ arm)/ arm*)/' newlib/configure.host fi - # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find - # the startfiles. - # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx - # for the startfiles. - makeFlagsArray+=( - "BUILD_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD" - "SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY_FOR_BUILD" - "NATIVE_SYSTEM_HEADER_DIR=$NIX_FIXINC_DUMMY" - - "LDFLAGS_FOR_BUILD=$EXTRA_LDFLAGS_FOR_BUILD" - #"LDFLAGS=$EXTRA_LDFLAGS" - "LDFLAGS_FOR_TARGET=$EXTRA_LDFLAGS_FOR_TARGET" - - "CFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" - "CXXFLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" - "FLAGS_FOR_BUILD=$EXTRA_FLAGS_FOR_BUILD $EXTRA_LDFLAGS_FOR_BUILD" - - # It seems there is a bug in GCC 5 - #"CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" - #"CXXFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" - - "CFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" - "CXXFLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" - "FLAGS_FOR_TARGET=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" - ) - - if test -z "''${targetConfig-}"; then - makeFlagsArray+=( - "BOOT_CFLAGS=$EXTRA_FLAGS $EXTRA_LDFLAGS" - "BOOT_LDFLAGS=$EXTRA_FLAGS_FOR_TARGET $EXTRA_LDFLAGS_FOR_TARGET" - ) + # Bug - they packaged zlib + if test -d "zlib"; then + # This breaks the build without-headers, which should build only + # the target libgcc as target libraries. + # See 'configure:5370' + rm -Rf zlib fi - if test "$withoutTargetLibc" == 1; then - # We don't want the gcc build to assume there will be a libc providing - # limits.h in this stage - makeFlagsArray+=( - 'LIMITS_H_TEST=false' - ) - else - makeFlagsArray+=( - 'LIMITS_H_TEST=true' - ) + if test -n "$crossMingw" -a -n "$withoutTargetLibc"; then + mkdir -p ../mingw + # --with-build-sysroot expects that: + cp -R $libcCross/include ../mingw + configureFlags="$configureFlags --with-build-sysroot=`pwd`/.." fi - fi - eval "$oldOpts" - ''; + # Perform the build in a different directory. + mkdir ../build + cd ../build + configureScript=../$sourceRoot/configure + ''; - preConfigure = (originalAttrs.preConfigure or "") + '' - if test -n "$newlibSrc"; then - tar xvf "$newlibSrc" -C .. - ln -s ../newlib-*/newlib newlib - # Patch to get armvt5el working: - sed -i -e 's/ arm)/ arm*)/' newlib/configure.host - fi + postConfigure = '' + # Avoid store paths when embedding ./configure flags into gcc. + # Mangled arguments are still useful when reporting bugs upstream. + sed -e "/TOPLEVEL_CONFIGURE_ARGUMENTS=/ s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i Makefile + ''; - # Bug - they packaged zlib - if test -d "zlib"; then - # This breaks the build without-headers, which should build only - # the target libgcc as target libraries. - # See 'configure:5370' - rm -Rf zlib - fi + preInstall = + '' + mkdir -p "$out/''${targetConfig}/lib" + mkdir -p "''${!outputLib}/''${targetConfig}/lib" + '' + + + # if cross-compiling, link from $lib/lib to $lib/${targetConfig}. + # since native-compiles have $lib/lib as a directory (not a + # symlink), this ensures that in every case we can assume that + # $lib/lib contains the .so files + lib.optionalString (with stdenv; targetPlatform.config != hostPlatform.config) '' + ln -Ts "''${!outputLib}/''${targetConfig}/lib" $lib/lib + '' + + + # Make `lib64` symlinks to `lib`. + lib.optionalString + (!enableMultilib && stdenv.hostPlatform.is64bit && !stdenv.hostPlatform.isMips64n32) + '' + ln -s lib "$out/''${targetConfig}/lib64" + ln -s lib "''${!outputLib}/''${targetConfig}/lib64" + '' + + + # On mips platforms, gcc follows the IRIX naming convention: + # + # $PREFIX/lib = mips32 + # $PREFIX/lib32 = mips64n32 + # $PREFIX/lib64 = mips64 + # + # Make `lib32` symlinks to `lib`. + lib.optionalString (!enableMultilib && stdenv.targetPlatform.isMips64n32) '' + ln -s lib "$out/''${targetConfig}/lib32" + ln -s lib "''${!outputLib}/''${targetConfig}/lib32" + ''; - if test -n "$crossMingw" -a -n "$withoutTargetLibc"; then - mkdir -p ../mingw - # --with-build-sysroot expects that: - cp -R $libcCross/include ../mingw - configureFlags="$configureFlags --with-build-sysroot=`pwd`/.." - fi + postInstall = '' + # Move runtime libraries to lib output. + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.so*" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.la" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dylib" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dll.a" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dll" "''${!outputLib}" + moveToOutput "share/gcc-*/python" "''${!outputLib}" - # Perform the build in a different directory. - mkdir ../build - cd ../build - configureScript=../$sourceRoot/configure - ''; + if [ -z "$enableShared" ]; then + moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.a" "''${!outputLib}" + fi - postConfigure = '' - # Avoid store paths when embedding ./configure flags into gcc. - # Mangled arguments are still useful when reporting bugs upstream. - sed -e "/TOPLEVEL_CONFIGURE_ARGUMENTS=/ s|$NIX_STORE/[a-z0-9]\{32\}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" -i Makefile - ''; + for i in "''${!outputLib}/''${targetConfig}"/lib/*.{la,py}; do + substituteInPlace "$i" --replace "$out" "''${!outputLib}" + done - preInstall = '' - mkdir -p "$out/''${targetConfig}/lib" - mkdir -p "''${!outputLib}/''${targetConfig}/lib" - '' + - # if cross-compiling, link from $lib/lib to $lib/${targetConfig}. - # since native-compiles have $lib/lib as a directory (not a - # symlink), this ensures that in every case we can assume that - # $lib/lib contains the .so files - lib.optionalString (with stdenv; targetPlatform.config != hostPlatform.config) '' - ln -Ts "''${!outputLib}/''${targetConfig}/lib" $lib/lib - '' + - # Make `lib64` symlinks to `lib`. - lib.optionalString (!enableMultilib && stdenv.hostPlatform.is64bit && !stdenv.hostPlatform.isMips64n32) '' - ln -s lib "$out/''${targetConfig}/lib64" - ln -s lib "''${!outputLib}/''${targetConfig}/lib64" - '' + - # On mips platforms, gcc follows the IRIX naming convention: - # - # $PREFIX/lib = mips32 - # $PREFIX/lib32 = mips64n32 - # $PREFIX/lib64 = mips64 - # - # Make `lib32` symlinks to `lib`. - lib.optionalString (!enableMultilib && stdenv.targetPlatform.isMips64n32) '' - ln -s lib "$out/''${targetConfig}/lib32" - ln -s lib "''${!outputLib}/''${targetConfig}/lib32" - ''; + if [ -n "$enableMultilib" ]; then + moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.so*" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.la" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dylib" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dll.a" "''${!outputLib}" + moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dll" "''${!outputLib}" - postInstall = '' - # Move runtime libraries to lib output. - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.so*" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.la" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dylib" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dll.a" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.dll" "''${!outputLib}" - moveToOutput "share/gcc-*/python" "''${!outputLib}" + for i in "''${!outputLib}/''${targetConfig}"/lib64/*.{la,py}; do + substituteInPlace "$i" --replace "$out" "''${!outputLib}" + done + fi - if [ -z "$enableShared" ]; then - moveToOutput "''${targetConfig+$targetConfig/}lib/lib*.a" "''${!outputLib}" - fi + # Remove `fixincl' to prevent a retained dependency on the + # previous gcc. + rm -rf $out/libexec/gcc/*/*/install-tools + rm -rf $out/lib/gcc/*/*/install-tools - for i in "''${!outputLib}/''${targetConfig}"/lib/*.{la,py}; do - substituteInPlace "$i" --replace "$out" "''${!outputLib}" - done + # More dependencies with the previous gcc or some libs (gccbug stores the build command line) + rm -rf $out/bin/gccbug - if [ -n "$enableMultilib" ]; then - moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.so*" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.la" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dylib" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dll.a" "''${!outputLib}" - moveToOutput "''${targetConfig+$targetConfig/}lib64/lib*.dll" "''${!outputLib}" + if type "install_name_tool"; then + for i in "''${!outputLib}"/lib/*.*.dylib "''${!outputLib}"/lib/*.so.[0-9]; do + install_name_tool -id "$i" "$i" || true + for old_path in $(otool -L "$i" | grep "$out" | awk '{print $1}'); do + new_path=`echo "$old_path" | sed "s,$out,''${!outputLib},"` + install_name_tool -change "$old_path" "$new_path" "$i" || true + done + done + fi - for i in "''${!outputLib}/''${targetConfig}"/lib64/*.{la,py}; do - substituteInPlace "$i" --replace "$out" "''${!outputLib}" - done - fi + # Get rid of some "fixed" header files + rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux,sys/mount.h,bits/statx.h} - # Remove `fixincl' to prevent a retained dependency on the - # previous gcc. - rm -rf $out/libexec/gcc/*/*/install-tools - rm -rf $out/lib/gcc/*/*/install-tools + # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks. + for i in $out/bin/*-gcc*; do + if cmp -s $out/bin/gcc $i; then + ln -sfn gcc $i + fi + done - # More dependencies with the previous gcc or some libs (gccbug stores the build command line) - rm -rf $out/bin/gccbug + for i in $out/bin/c++ $out/bin/*-c++* $out/bin/*-g++*; do + if cmp -s $out/bin/g++ $i; then + ln -sfn g++ $i + fi + done - if type "install_name_tool"; then - for i in "''${!outputLib}"/lib/*.*.dylib "''${!outputLib}"/lib/*.so.[0-9]; do - install_name_tool -id "$i" "$i" || true - for old_path in $(otool -L "$i" | grep "$out" | awk '{print $1}'); do - new_path=`echo "$old_path" | sed "s,$out,''${!outputLib},"` - install_name_tool -change "$old_path" "$new_path" "$i" || true - done - done - fi - - # Get rid of some "fixed" header files - rm -rfv $out/lib/gcc/*/*/include-fixed/{root,linux,sys/mount.h,bits/statx.h} - - # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks. - for i in $out/bin/*-gcc*; do - if cmp -s $out/bin/gcc $i; then - ln -sfn gcc $i - fi - done - - for i in $out/bin/c++ $out/bin/*-c++* $out/bin/*-g++*; do - if cmp -s $out/bin/g++ $i; then - ln -sfn g++ $i - fi - done - - # Two identical man pages are shipped (moving and compressing is done later) - for i in "$out"/share/man/man1/*g++.1; do - if test -e "$i"; then - man_prefix=`echo "$i" | sed "s,.*/\(.*\)g++.1,\1,"` - ln -sf "$man_prefix"gcc.1 "$i" - fi - done - ''; -})) + # Two identical man pages are shipped (moving and compressing is done later) + for i in "$out"/share/man/man1/*g++.1; do + if test -e "$i"; then + man_prefix=`echo "$i" | sed "s,.*/\(.*\)g++.1,\1,"` + ln -sf "$man_prefix"gcc.1 "$i" + fi + done + ''; + } +)) diff --git a/pkgs/by-name/gc/gcc/common/checksum.nix b/pkgs/by-name/gc/gcc/common/checksum.nix index 7a20ed1..c0e5956 100644 --- a/pkgs/by-name/gc/gcc/common/checksum.nix +++ b/pkgs/by-name/gc/gcc/common/checksum.nix @@ -1,40 +1,51 @@ -{ lib -, stdenv -, nukeReferences -, langC -, langCC -, runtimeShell +{ + lib, + stdenv, + nukeReferences, + langC, + langCC, + runtimeShell, }: let - enableChecksum = (with stdenv; buildPlatform == hostPlatform && hostPlatform == targetPlatform) && langC && langCC && !stdenv.hostPlatform.isDarwin; + enableChecksum = + (with stdenv; buildPlatform == hostPlatform && hostPlatform == targetPlatform) + && langC + && langCC + && !stdenv.hostPlatform.isDarwin; in -(pkg: pkg.overrideAttrs (previousAttrs: lib.optionalAttrs enableChecksum { - outputs = previousAttrs.outputs ++ lib.optionals enableChecksum [ "checksum" ]; - # This is a separate phase because gcc assembles its phase scripts - # in bash instead of nix (we should fix that). - preFixupPhases = (previousAttrs.preFixupPhases or []) ++ [ "postInstallSaveChecksumPhase" ]; - # - # gcc uses an auxiliary utility `genchecksum` to md5-hash (most of) its - # `.o` and `.a` files prior to linking (in case the linker is - # nondeterministic). Since we want to compare across gccs built from two - # separate derivations, we wrap `genchecksum` with a `nuke-references` - # call. We also stash copies of the inputs to `genchecksum` in - # `$checksum/inputs/` -- this is extremely helpful for debugging since - # it's hard to get Nix to not delete the $NIX_BUILD_TOP of a successful - # build. - # - postInstallSaveChecksumPhase = '' - mv gcc/build/genchecksum gcc/build/.genchecksum-wrapped - cat > gcc/build/genchecksum <<\EOF - #!${runtimeShell} - ${nukeReferences}/bin/nuke-refs $@ - for INPUT in "$@"; do install -Dt $INPUT $checksum/inputs/; done - exec build/.genchecksum-wrapped $@ - EOF - chmod +x gcc/build/genchecksum - rm gcc/*-checksum.* - make -C gcc cc1-checksum.o cc1plus-checksum.o - install -Dt $checksum/checksums/ gcc/cc*-checksum.o - ''; -})) +( + pkg: + pkg.overrideAttrs ( + previousAttrs: + lib.optionalAttrs enableChecksum { + outputs = previousAttrs.outputs ++ lib.optionals enableChecksum [ "checksum" ]; + # This is a separate phase because gcc assembles its phase scripts + # in bash instead of nix (we should fix that). + preFixupPhases = (previousAttrs.preFixupPhases or [ ]) ++ [ "postInstallSaveChecksumPhase" ]; + # + # gcc uses an auxiliary utility `genchecksum` to md5-hash (most of) its + # `.o` and `.a` files prior to linking (in case the linker is + # nondeterministic). Since we want to compare across gccs built from two + # separate derivations, we wrap `genchecksum` with a `nuke-references` + # call. We also stash copies of the inputs to `genchecksum` in + # `$checksum/inputs/` -- this is extremely helpful for debugging since + # it's hard to get Nix to not delete the $NIX_BUILD_TOP of a successful + # build. + # + postInstallSaveChecksumPhase = '' + mv gcc/build/genchecksum gcc/build/.genchecksum-wrapped + cat > gcc/build/genchecksum <<\EOF + #!${runtimeShell} + ${nukeReferences}/bin/nuke-refs $@ + for INPUT in "$@"; do install -Dt $INPUT $checksum/inputs/; done + exec build/.genchecksum-wrapped $@ + EOF + chmod +x gcc/build/genchecksum + rm gcc/*-checksum.* + make -C gcc cc1-checksum.o cc1plus-checksum.o + install -Dt $checksum/checksums/ gcc/cc*-checksum.o + ''; + } + ) +) diff --git a/pkgs/by-name/gc/gcc/common/configure-flags.nix b/pkgs/by-name/gc/gcc/common/configure-flags.nix index b8dccf9..db5a0f2 100644 --- a/pkgs/by-name/gc/gcc/common/configure-flags.nix +++ b/pkgs/by-name/gc/gcc/common/configure-flags.nix @@ -1,30 +1,40 @@ -{ lib, stdenv -, targetPackages +{ + lib, + stdenv, + targetPackages, -, withoutTargetLibc, libcCross -, threadsCross -, version + withoutTargetLibc, + libcCross, + threadsCross, + version, -, binutils, gmp, mpfr, libmpc, isl -, cloog ? null + binutils, + gmp, + mpfr, + libmpc, + isl, + cloog ? null, -, enableLTO -, enableMultilib -, enablePlugin -, disableGdbPlugin ? !enablePlugin -, enableShared + enableLTO, + enableMultilib, + enablePlugin, + disableGdbPlugin ? !enablePlugin, + enableShared, -, langC -, langCC -, langD ? false -, langFortran -, langJava ? false, javaAwtGtk ? false, javaAntlr ? null, javaEcj ? null -, langAda ? false -, langGo -, langObjC -, langObjCpp -, langJit -, disableBootstrap ? stdenv.targetPlatform != stdenv.hostPlatform + langC, + langCC, + langD ? false, + langFortran, + langJava ? false, + javaAwtGtk ? false, + javaAntlr ? null, + javaEcj ? null, + langAda ? false, + langGo, + langObjC, + langObjCpp, + langJit, + disableBootstrap ? stdenv.targetPlatform != stdenv.hostPlatform, }: assert !enablePlugin -> disableGdbPlugin; @@ -39,10 +49,8 @@ assert langJava -> lib.versionOlder version "7"; # # ref: https://stackoverflow.com/questions/15670169/what-is-difference-between-sjlj-vs-dwarf-vs-seh - let - inherit (stdenv) - buildPlatform hostPlatform targetPlatform; + inherit (stdenv) buildPlatform hostPlatform targetPlatform; # See https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903 disableBootstrap' = disableBootstrap && !langFortran && !langGo; @@ -50,57 +58,79 @@ let crossMingw = targetPlatform != hostPlatform && targetPlatform.isMinGW; crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem"; - targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) - "${stdenv.targetPlatform.config}-"; + targetPrefix = lib.optionalString ( + stdenv.targetPlatform != stdenv.hostPlatform + ) "${stdenv.targetPlatform.config}-"; crossConfigureFlags = # Ensure that -print-prog-name is able to find the correct programs. [ - "--with-as=${if targetPackages.stdenv.cc.bintools.isLLVM then binutils else targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-as" + "--with-as=${ + if targetPackages.stdenv.cc.bintools.isLLVM then binutils else targetPackages.stdenv.cc.bintools + }/bin/${targetPlatform.config}-as" "--with-ld=${targetPackages.stdenv.cc.bintools}/bin/${targetPlatform.config}-ld" ] - ++ (if withoutTargetLibc then [ - "--disable-libssp" - "--disable-nls" - "--without-headers" - "--disable-threads" - "--disable-libgomp" - "--disable-libquadmath" - (lib.enableFeature enableShared "shared") - "--disable-libatomic" # requires libc - "--disable-decimal-float" # requires libc - "--disable-libmpx" # requires libc - ] ++ lib.optionals crossMingw [ - "--with-headers=${lib.getDev libcCross}/include" - "--with-gcc" - "--with-gnu-as" - "--with-gnu-ld" - "--disable-debug" - "--disable-win32-registry" - "--enable-hash-synchronization" - "--enable-libssp" - "--disable-nls" - # To keep ABI compatibility with upstream mingw-w64 - "--enable-fully-dynamic-string" - ] ++ lib.optionals (crossMingw && targetPlatform.isx86_32) [ - # See Note [Windows Exception Handling] - "--enable-sjlj-exceptions" - "--with-dwarf2" - ] else [ - (if crossDarwin then "--with-sysroot=${lib.getLib libcCross}/share/sysroot" - else "--with-headers=${lib.getDev libcCross}${libcCross.incdir or "/include"}") - "--enable-__cxa_atexit" - "--enable-long-long" - "--enable-threads=${if targetPlatform.isUnix then "posix" - else if targetPlatform.isWindows then (threadsCross.model or "win32") - else "single"}" - "--enable-nls" - ] ++ lib.optionals (targetPlatform.libc == "uclibc" || targetPlatform.libc == "musl") [ - # libsanitizer requires netrom/netrom.h which is not - # available in uclibc. - "--disable-libsanitizer" - ] ++ lib.optional (targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano") "--with-newlib" - ++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc" + ++ ( + if withoutTargetLibc then + [ + "--disable-libssp" + "--disable-nls" + "--without-headers" + "--disable-threads" + "--disable-libgomp" + "--disable-libquadmath" + (lib.enableFeature enableShared "shared") + "--disable-libatomic" # requires libc + "--disable-decimal-float" # requires libc + "--disable-libmpx" # requires libc + ] + ++ lib.optionals crossMingw [ + "--with-headers=${lib.getDev libcCross}/include" + "--with-gcc" + "--with-gnu-as" + "--with-gnu-ld" + "--disable-debug" + "--disable-win32-registry" + "--enable-hash-synchronization" + "--enable-libssp" + "--disable-nls" + # To keep ABI compatibility with upstream mingw-w64 + "--enable-fully-dynamic-string" + ] + ++ lib.optionals (crossMingw && targetPlatform.isx86_32) [ + # See Note [Windows Exception Handling] + "--enable-sjlj-exceptions" + "--with-dwarf2" + ] + else + [ + ( + if crossDarwin then + "--with-sysroot=${lib.getLib libcCross}/share/sysroot" + else + "--with-headers=${lib.getDev libcCross}${libcCross.incdir or "/include"}" + ) + "--enable-__cxa_atexit" + "--enable-long-long" + "--enable-threads=${ + if targetPlatform.isUnix then + "posix" + else if targetPlatform.isWindows then + (threadsCross.model or "win32") + else + "single" + }" + "--enable-nls" + ] + ++ lib.optionals (targetPlatform.libc == "uclibc" || targetPlatform.libc == "musl") [ + # libsanitizer requires netrom/netrom.h which is not + # available in uclibc. + "--disable-libsanitizer" + ] + ++ lib.optional ( + targetPlatform.libc == "newlib" || targetPlatform.libc == "newlib-nano" + ) "--with-newlib" + ++ lib.optional (targetPlatform.libc == "avrlibc") "--with-avrlibc" ); configureFlags = @@ -113,9 +143,12 @@ let "--with-mpc=${libmpc}" ] ++ lib.optionals (!withoutTargetLibc) [ - (if libcCross == null - then "--with-native-system-header-dir=${lib.getDev stdenv.cc.libc}/include" - else "--with-native-system-header-dir=${lib.getDev libcCross}${libcCross.incdir or "/include"}") + ( + if libcCross == null then + "--with-native-system-header-dir=${lib.getDev stdenv.cc.libc}/include" + else + "--with-native-system-header-dir=${lib.getDev libcCross}${libcCross.incdir or "/include"}" + ) # gcc builds for cross-compilers (build != host) or cross-built # gcc (host != target) always apply the offset prefix to disentangle # target headers from build or host headers: @@ -159,39 +192,45 @@ let "--with-system-zlib" "--enable-static" "--enable-languages=${ - lib.concatStringsSep "," - ( lib.optional langC "c" - ++ lib.optional langCC "c++" - ++ lib.optional langD "d" - ++ lib.optional langFortran "fortran" - ++ lib.optional langJava "java" - ++ lib.optional langAda "ada" - ++ lib.optional langGo "go" - ++ lib.optional langObjC "objc" - ++ lib.optional langObjCpp "obj-c++" - ++ lib.optionals crossDarwin [ "objc" "obj-c++" ] - ++ lib.optional langJit "jit" - ) + lib.concatStringsSep "," ( + lib.optional langC "c" + ++ lib.optional langCC "c++" + ++ lib.optional langD "d" + ++ lib.optional langFortran "fortran" + ++ lib.optional langJava "java" + ++ lib.optional langAda "ada" + ++ lib.optional langGo "go" + ++ lib.optional langObjC "objc" + ++ lib.optional langObjCpp "obj-c++" + ++ lib.optionals crossDarwin [ + "objc" + "obj-c++" + ] + ++ lib.optional langJit "jit" + ) }" ] - ++ (if (enableMultilib || targetPlatform.isAvr) - then ["--enable-multilib" "--disable-libquadmath"] - else ["--disable-multilib"]) + ++ ( + if (enableMultilib || targetPlatform.isAvr) then + [ + "--enable-multilib" + "--disable-libquadmath" + ] + else + [ "--disable-multilib" ] + ) ++ lib.optional (!enableShared) "--disable-shared" ++ lib.singleton (lib.enableFeature enablePlugin "plugin") # Libcc1 is the GCC cc1 plugin for the GDB debugger which is only used by gdb ++ lib.optional disableGdbPlugin "--disable-libcc1" # Support -m32 on powerpc64le/be - ++ lib.optional (targetPlatform.system == "powerpc64le-linux") - "--enable-targets=powerpcle-linux" - ++ lib.optional (targetPlatform.system == "powerpc64-linux") - "--enable-targets=powerpc-linux" + ++ lib.optional (targetPlatform.system == "powerpc64le-linux") "--enable-targets=powerpcle-linux" + ++ lib.optional (targetPlatform.system == "powerpc64-linux") "--enable-targets=powerpc-linux" # Fix "unknown long double size, cannot define BFP_FMT" - ++ lib.optional (targetPlatform.isPower && targetPlatform.isMusl) - "--disable-decimal-float" + ++ lib.optional (targetPlatform.isPower && targetPlatform.isMusl) "--disable-decimal-float" # Optional features ++ lib.optional (isl != null) "--with-isl=${isl}" @@ -202,10 +241,9 @@ let ] # Ada options, gcc can't build the runtime library for a cross compiler - ++ lib.optional langAda - (if hostPlatform == targetPlatform - then "--enable-libada" - else "--disable-libada") + ++ lib.optional langAda ( + if hostPlatform == targetPlatform then "--enable-libada" else "--disable-libada" + ) # Java options ++ lib.optionals langJava [ @@ -219,43 +257,52 @@ let ++ lib.optional javaAwtGtk "--enable-java-awt=gtk" ++ lib.optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}" - ++ import ../common/platform-flags.nix { inherit (stdenv) targetPlatform; inherit lib; } + ++ import ../common/platform-flags.nix { + inherit (stdenv) targetPlatform; + inherit lib; + } ++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags ++ lib.optional disableBootstrap' "--disable-bootstrap" # Platform-specific flags - ++ lib.optional (targetPlatform == hostPlatform && targetPlatform.isx86_32) "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" + ++ lib.optional ( + targetPlatform == hostPlatform && targetPlatform.isx86_32 + ) "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" ++ lib.optional targetPlatform.isNetBSD "--disable-libssp" # Provided by libc. ++ lib.optionals hostPlatform.isSunOS [ - "--enable-long-long" "--enable-libssp" "--enable-threads=posix" "--disable-nls" "--enable-__cxa_atexit" + "--enable-long-long" + "--enable-libssp" + "--enable-threads=posix" + "--disable-nls" + "--enable-__cxa_atexit" # On Illumos/Solaris GNU as is preferred - "--with-gnu-as" "--without-gnu-ld" + "--with-gnu-as" + "--without-gnu-ld" ] - ++ lib.optional (targetPlatform.libc == "musl") - # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865 - "--disable-libmpx" + ++ + lib.optional (targetPlatform.libc == "musl") + # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865 + "--disable-libmpx" ++ lib.optionals (targetPlatform == hostPlatform && targetPlatform.libc == "musl") [ "--disable-libsanitizer" "--disable-symvers" "libat_cv_have_ifunc=no" "--disable-gnu-indirect-function" ] - ++ lib.optionals langJit [ - "--enable-host-shared" - ] - ++ lib.optionals (langD) [ - "--with-target-system-zlib=yes" - ] + ++ lib.optionals langJit [ "--enable-host-shared" ] + ++ lib.optionals (langD) [ "--with-target-system-zlib=yes" ] # On mips64-unknown-linux-gnu libsanitizer defines collide with # glibc's definitions and fail the build. It was fixed in gcc-13+. - ++ lib.optionals (targetPlatform.isMips && targetPlatform.parsed.abi.name == "gnu" && lib.versions.major version == "12") [ - "--disable-libsanitizer" - ] + ++ lib.optionals ( + targetPlatform.isMips + && targetPlatform.parsed.abi.name == "gnu" + && lib.versions.major version == "12" + ) [ "--disable-libsanitizer" ] ++ lib.optionals targetPlatform.isAlpha [ # Workaround build failures like: # cc1: error: fp software completion requires '-mtrap-precision=i' [-Werror] "--disable-werror" - ] - ; + ]; -in configureFlags +in +configureFlags diff --git a/pkgs/by-name/gc/gcc/common/dependencies.nix b/pkgs/by-name/gc/gcc/common/dependencies.nix index a38cdcb..8adf07a 100644 --- a/pkgs/by-name/gc/gcc/common/dependencies.nix +++ b/pkgs/by-name/gc/gcc/common/dependencies.nix @@ -1,37 +1,38 @@ -{ lib -, stdenv -, version -, buildPackages -, targetPackages -, texinfo -, which -, gettext -, pkg-config ? null -, gnused -, patchelf -, gmp -, mpfr -, libmpc -, libucontext ? null -, libxcrypt ? null -, cloog ? null -, isl ? null -, zlib ? null -, gnat-bootstrap ? null -, flex ? null -, boehmgc ? null -, zip ? null -, unzip ? null -, gtk2 ? null -, libart_lgpl ? null -, perl ? null -, xlibs ? null -, langJava ? false -, javaAwtGtk ? false -, langAda ? false -, langGo ? false -, withoutTargetLibc ? null -, threadsCross ? null +{ + lib, + stdenv, + version, + buildPackages, + targetPackages, + texinfo, + which, + gettext, + pkg-config ? null, + gnused, + patchelf, + gmp, + mpfr, + libmpc, + libucontext ? null, + libxcrypt ? null, + cloog ? null, + isl ? null, + zlib ? null, + gnat-bootstrap ? null, + flex ? null, + boehmgc ? null, + zip ? null, + unzip ? null, + gtk2 ? null, + libart_lgpl ? null, + perl ? null, + xlibs ? null, + langJava ? false, + javaAwtGtk ? false, + langAda ? false, + langGo ? false, + withoutTargetLibc ? null, + threadsCross ? null, }: let @@ -43,50 +44,66 @@ in # same for all gcc's depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - texinfo - which - gettext - ] - ++ optionals (perl != null) [ perl ] - ++ optionals javaAwtGtk [ pkg-config ] - ++ optionals (with stdenv.targetPlatform; isVc4 || isRedox && flex != null) [ flex ] - ++ optionals langAda [ gnat-bootstrap ] - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ optionals buildPlatform.isDarwin [ gnused ] - ; + nativeBuildInputs = + [ + texinfo + which + gettext + ] + ++ optionals (perl != null) [ perl ] + ++ optionals javaAwtGtk [ pkg-config ] + ++ optionals (with stdenv.targetPlatform; isVc4 || isRedox && flex != null) [ flex ] + ++ optionals langAda [ gnat-bootstrap ] + # The builder relies on GNU sed (for instance, Darwin's `sed' fails with + # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. + ++ optionals buildPlatform.isDarwin [ gnused ]; # For building runtime libs # same for all gcc's depsBuildTarget = ( - if hostPlatform == buildPlatform then [ - targetPackages.stdenv.cc.bintools # newly-built gcc will be used - ] else assert targetPlatform == hostPlatform; [ - # build != host == target - stdenv.cc - ] + if hostPlatform == buildPlatform then + [ + targetPackages.stdenv.cc.bintools # newly-built gcc will be used + ] + else + assert targetPlatform == hostPlatform; + [ + # build != host == target + stdenv.cc + ] ) ++ optionals targetPlatform.isLinux [ patchelf ]; - buildInputs = [ - gmp - mpfr - libmpc - ] - ++ optionals (lib.versionAtLeast version "10") [ libxcrypt ] - ++ [ - targetPackages.stdenv.cc.bintools # For linking code at run-time - ] - ++ optionals (lib.versionOlder version "5" && cloog != null) [ cloog ] - ++ optionals (isl != null) [ isl ] - ++ optionals (zlib != null) [ zlib ] - ++ optionals langJava [ boehmgc zip unzip ] - ++ optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs) - ++ optionals (langGo && stdenv.hostPlatform.isMusl) [ libucontext ] - ; + buildInputs = + [ + gmp + mpfr + libmpc + ] + ++ optionals (lib.versionAtLeast version "10") [ libxcrypt ] + ++ [ + targetPackages.stdenv.cc.bintools # For linking code at run-time + ] + ++ optionals (lib.versionOlder version "5" && cloog != null) [ cloog ] + ++ optionals (isl != null) [ isl ] + ++ optionals (zlib != null) [ zlib ] + ++ optionals langJava [ + boehmgc + zip + unzip + ] + ++ optionals javaAwtGtk ( + [ + gtk2 + libart_lgpl + ] + ++ xlibs + ) + ++ optionals (langGo && stdenv.hostPlatform.isMusl) [ libucontext ]; # threadsCross.package after gcc6 so i assume its okay for 4.8 and 4.9 too - depsTargetTarget = optionals (!withoutTargetLibc && threadsCross != { } && threadsCross.package != null) [ threadsCross.package ]; + depsTargetTarget = optionals ( + !withoutTargetLibc && threadsCross != { } && threadsCross.package != null + ) [ threadsCross.package ]; } diff --git a/pkgs/by-name/gc/gcc/common/extra-target-flags.nix b/pkgs/by-name/gc/gcc/common/extra-target-flags.nix index 30a2418..9cb64d6 100644 --- a/pkgs/by-name/gc/gcc/common/extra-target-flags.nix +++ b/pkgs/by-name/gc/gcc/common/extra-target-flags.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, withoutTargetLibc, langD ? false, libcCross, threadsCross }: +{ + lib, + stdenv, + withoutTargetLibc, + langD ? false, + libcCross, + threadsCross, +}: let inherit (stdenv) hostPlatform targetPlatform; @@ -8,26 +15,34 @@ in # For non-cross builds these flags are currently assigned in builder.sh. # It would be good to consolidate the generation of makeFlags # ({C,CXX,LD}FLAGS_FOR_{BUILD,TARGET}, etc...) at some point. - EXTRA_FLAGS_FOR_TARGET = let - mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([ - "-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}" - ] ++ lib.optionals (! withoutTargetLibc) [ - "-B${lib.getLib dep}${dep.libdir or "/lib"}" - ]); - in mkFlags libcCross langD - ++ lib.optionals (!withoutTargetLibc) (mkFlags (threadsCross.package or null) langD) - ; + EXTRA_FLAGS_FOR_TARGET = + let + mkFlags = + dep: langD: + lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ( + [ "-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}" ] + ++ lib.optionals (!withoutTargetLibc) [ "-B${lib.getLib dep}${dep.libdir or "/lib"}" ] + ); + in + mkFlags libcCross langD + ++ lib.optionals (!withoutTargetLibc) (mkFlags (threadsCross.package or null) langD); - EXTRA_LDFLAGS_FOR_TARGET = let - mkFlags = dep: lib.optionals (targetPlatform != hostPlatform && dep != null) ([ - "-Wl,-L${lib.getLib dep}${dep.libdir or "/lib"}" - ] ++ (if withoutTargetLibc then [ - "-B${lib.getLib dep}${dep.libdir or "/lib"}" - ] else [ - "-Wl,-rpath,${lib.getLib dep}${dep.libdir or "/lib"}" - "-Wl,-rpath-link,${lib.getLib dep}${dep.libdir or "/lib"}" - ])); - in mkFlags libcCross - ++ lib.optionals (!withoutTargetLibc) (mkFlags (threadsCross.package or null)) - ; + EXTRA_LDFLAGS_FOR_TARGET = + let + mkFlags = + dep: + lib.optionals (targetPlatform != hostPlatform && dep != null) ( + [ "-Wl,-L${lib.getLib dep}${dep.libdir or "/lib"}" ] + ++ ( + if withoutTargetLibc then + [ "-B${lib.getLib dep}${dep.libdir or "/lib"}" ] + else + [ + "-Wl,-rpath,${lib.getLib dep}${dep.libdir or "/lib"}" + "-Wl,-rpath-link,${lib.getLib dep}${dep.libdir or "/lib"}" + ] + ) + ); + in + mkFlags libcCross ++ lib.optionals (!withoutTargetLibc) (mkFlags (threadsCross.package or null)); } diff --git a/pkgs/by-name/gc/gcc/common/libgcc-buildstuff.nix b/pkgs/by-name/gc/gcc/common/libgcc-buildstuff.nix index 991efc2..b3c70ff 100644 --- a/pkgs/by-name/gc/gcc/common/libgcc-buildstuff.nix +++ b/pkgs/by-name/gc/gcc/common/libgcc-buildstuff.nix @@ -1,6 +1,4 @@ -{ lib -, stdenv -}: +{ lib, stdenv }: # Trick to build a gcc that is capable of emitting shared libraries *without* having the # targetPlatform libc available beforehand. Taken from: @@ -15,9 +13,7 @@ let # glibc. At this early pre-glibc stage these files sometimes # have different names. crtstuff-ofiles = - if stdenv.targetPlatform.isPower - then "ecrti.o ecrtn.o ncrti.o ncrtn.o" - else "crti.o crtn.o"; + if stdenv.targetPlatform.isPower then "ecrti.o ecrtn.o ncrti.o ncrtn.o" else "crti.o crtn.o"; # Normally, `SHLIB_LC` is set to `-lc`, which means that # `libgcc_s.so` cannot be built until `libc.so` is available. @@ -37,17 +33,22 @@ in echo 'SHLIB_LC=${SHLIB_LC}' >> libgcc/Makefile.in '' - # Meanwhile, crt{i,n}.S are not present on certain platforms - # (e.g. LoongArch64), resulting in the following error: - # - # No rule to make target '../../../gcc-xx.x.x/libgcc/config/loongarch/crti.S', needed by 'crti.o'. Stop. - # - # For LoongArch64 and S390, a hacky workaround is to simply touch them, - # as the platform forces .init_array support. - # - # https://www.openwall.com/lists/musl/2022/11/09/3 - # - # 'parsed.cpu.family' won't be correct for every platform. -+ lib.optionalString (stdenv.targetPlatform.isLoongArch64 || stdenv.targetPlatform.isS390 || stdenv.targetPlatform.isAlpha) '' - touch libgcc/config/${stdenv.targetPlatform.parsed.cpu.family}/crt{i,n}.S -'' +# Meanwhile, crt{i,n}.S are not present on certain platforms +# (e.g. LoongArch64), resulting in the following error: +# +# No rule to make target '../../../gcc-xx.x.x/libgcc/config/loongarch/crti.S', needed by 'crti.o'. Stop. +# +# For LoongArch64 and S390, a hacky workaround is to simply touch them, +# as the platform forces .init_array support. +# +# https://www.openwall.com/lists/musl/2022/11/09/3 +# +# 'parsed.cpu.family' won't be correct for every platform. ++ + lib.optionalString + ( + stdenv.targetPlatform.isLoongArch64 || stdenv.targetPlatform.isS390 || stdenv.targetPlatform.isAlpha + ) + '' + touch libgcc/config/${stdenv.targetPlatform.parsed.cpu.family}/crt{i,n}.S + '' diff --git a/pkgs/by-name/gc/gcc/common/libgcc.nix b/pkgs/by-name/gc/gcc/common/libgcc.nix index a7de840..7fc7b5a 100644 --- a/pkgs/by-name/gc/gcc/common/libgcc.nix +++ b/pkgs/by-name/gc/gcc/common/libgcc.nix @@ -1,160 +1,181 @@ -{ lib -, stdenv -, version -, langC -, langCC -, langJit -, enableShared -, targetPlatform -, hostPlatform -, withoutTargetLibc -, libcCross +{ + lib, + stdenv, + version, + langC, + langCC, + langJit, + enableShared, + targetPlatform, + hostPlatform, + withoutTargetLibc, + libcCross, }: assert !stdenv.targetPlatform.hasSharedLibraries -> !enableShared; -drv: lib.pipe drv +drv: +lib.pipe drv -([ + ( + [ - (pkg: pkg.overrideAttrs (previousAttrs: - lib.optionalAttrs ( - targetPlatform != hostPlatform && - (enableShared || targetPlatform.isMinGW) && - withoutTargetLibc - ) { - makeFlags = [ "all-gcc" "all-target-libgcc" ]; - installTargets = "install-gcc install-target-libgcc"; - })) + ( + pkg: + pkg.overrideAttrs ( + previousAttrs: + lib.optionalAttrs + (targetPlatform != hostPlatform && (enableShared || targetPlatform.isMinGW) && withoutTargetLibc) + { + makeFlags = [ + "all-gcc" + "all-target-libgcc" + ]; + installTargets = "install-gcc install-target-libgcc"; + } + ) + ) -] ++ + ] + ++ -# nixpkgs did not add the "libgcc" output until gcc11. In theory -# the following condition can be changed to `true`, but that has not -# been tested. -lib.optionals (lib.versionAtLeast version "11.0") + # nixpkgs did not add the "libgcc" output until gcc11. In theory + # the following condition can be changed to `true`, but that has not + # been tested. + lib.optionals (lib.versionAtLeast version "11.0") -(let - targetPlatformSlash = - if hostPlatform == targetPlatform - then "" - else "${targetPlatform.config}/"; + ( + let + targetPlatformSlash = if hostPlatform == targetPlatform then "" else "${targetPlatform.config}/"; - # If we are building a cross-compiler and the target libc provided - # to us at build time has a libgcc, use that instead of building a - # new one. This avoids having two separate (but identical) libgcc - # outpaths in the closure of most packages, which can be confusing. - useLibgccFromTargetLibc = - libcCross != null && - libcCross?passthru.libgcc; + # If we are building a cross-compiler and the target libc provided + # to us at build time has a libgcc, use that instead of building a + # new one. This avoids having two separate (but identical) libgcc + # outpaths in the closure of most packages, which can be confusing. + useLibgccFromTargetLibc = libcCross != null && libcCross ? passthru.libgcc; - enableLibGccOutput = - (!stdenv.targetPlatform.isWindows || (with stdenv; targetPlatform == hostPlatform)) && - !langJit && - !stdenv.hostPlatform.isDarwin && - enableShared && - !useLibgccFromTargetLibc - ; + enableLibGccOutput = + (!stdenv.targetPlatform.isWindows || (with stdenv; targetPlatform == hostPlatform)) + && !langJit + && !stdenv.hostPlatform.isDarwin + && enableShared + && !useLibgccFromTargetLibc; - # For some reason libgcc_s.so has major-version "2" on m68k but - # "1" everywhere else. Might be worth changing this to "*". - libgcc_s-version-major = - if targetPlatform.isM68k - then "2" - else "1"; + # For some reason libgcc_s.so has major-version "2" on m68k but + # "1" everywhere else. Might be worth changing this to "*". + libgcc_s-version-major = if targetPlatform.isM68k then "2" else "1"; -in -[ + in + [ -(pkg: pkg.overrideAttrs (previousAttrs: lib.optionalAttrs useLibgccFromTargetLibc { - passthru = (previousAttrs.passthru or {}) // { - inherit (libcCross) libgcc; - }; -})) + ( + pkg: + pkg.overrideAttrs ( + previousAttrs: + lib.optionalAttrs useLibgccFromTargetLibc { + passthru = (previousAttrs.passthru or { }) // { + inherit (libcCross) libgcc; + }; + } + ) + ) -(pkg: pkg.overrideAttrs (previousAttrs: lib.optionalAttrs ((!langC) || langJit || enableLibGccOutput) { - outputs = previousAttrs.outputs ++ lib.optionals enableLibGccOutput [ "libgcc" ]; - # This is a separate phase because gcc assembles its phase scripts - # in bash instead of nix (we should fix that). - preFixupPhases = (previousAttrs.preFixupPhases or []) ++ lib.optionals ((!langC) || enableLibGccOutput) [ "preFixupLibGccPhase" ]; - preFixupLibGccPhase = - # delete extra/unused builds of libgcc_s in non-langC builds - # (i.e. libgccjit, gnat, etc) to avoid potential confusion - lib.optionalString (!langC) '' - rm -f $out/lib/libgcc_s.so* - '' + ( + pkg: + pkg.overrideAttrs ( + previousAttrs: + lib.optionalAttrs ((!langC) || langJit || enableLibGccOutput) { + outputs = previousAttrs.outputs ++ lib.optionals enableLibGccOutput [ "libgcc" ]; + # This is a separate phase because gcc assembles its phase scripts + # in bash instead of nix (we should fix that). + preFixupPhases = + (previousAttrs.preFixupPhases or [ ]) + ++ lib.optionals ((!langC) || enableLibGccOutput) [ "preFixupLibGccPhase" ]; + preFixupLibGccPhase = + # delete extra/unused builds of libgcc_s in non-langC builds + # (i.e. libgccjit, gnat, etc) to avoid potential confusion + lib.optionalString (!langC) '' + rm -f $out/lib/libgcc_s.so* + '' - # TODO(amjoseph): remove the `libgcc_s.so` symlinks below and replace them - # with a `-L${gccForLibs.libgcc}/lib` in cc-wrapper's - # `$out/nix-support/cc-flags`. See also: - # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130614895 - # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130635982 - # - https://github.com/NixOS/nixpkgs/commit/404155c6acfa59456aebe6156b22fe385e7dec6f - # - # move `libgcc_s.so` into its own output, `$libgcc` - + lib.optionalString enableLibGccOutput ('' - # move libgcc from lib to its own output (libgcc) - mkdir -p $libgcc/lib - mv $lib/${targetPlatformSlash}lib/libgcc_s.so $libgcc/lib/ - mv $lib/${targetPlatformSlash}lib/libgcc_s.so.${libgcc_s-version-major} $libgcc/lib/ - ln -s $libgcc/lib/libgcc_s.so $lib/${targetPlatformSlash}lib/ - ln -s $libgcc/lib/libgcc_s.so.${libgcc_s-version-major} $lib/${targetPlatformSlash}lib/ - '' - # - # Nixpkgs ordinarily turns dynamic linking into pseudo-static linking: - # libraries are still loaded dynamically, exactly which copy of each - # library is loaded is permanently fixed at compile time (via RUNPATH). - # For libgcc_s we must revert to the "impure dynamic linking" style found - # in imperative software distributions. We must do this because - # `libgcc_s` calls `malloc()` and therefore has a `DT_NEEDED` for `libc`, - # which creates two problems: - # - # 1. A circular package dependency `glibc`<-`libgcc`<-`glibc` - # - # 2. According to the `-Wl,-rpath` flags added by Nixpkgs' `ld-wrapper`, - # the two versions of `glibc` in the cycle above are actually - # different packages. The later one is compiled by this `gcc`, but - # the earlier one was compiled by the compiler *that compiled* this - # `gcc` (usually the bootstrapFiles). In any event, the `glibc` - # dynamic loader won't honor that specificity without namespaced - # manual loads (`dlmopen()`). Once a `libc` is present in the address - # space of a process, that `libc` will be used to satisfy all - # `DT_NEEDED`s for `libc`, regardless of `RUNPATH`s. - # - # So we wipe the RUNPATH using `patchelf --set-rpath ""`. We can't use - # `patchelf --remove-rpath`, because at least as of patchelf 0.15.0 it - # will leave the old RUNPATH string in the file where the reference - # scanner can still find it: - # - # https://github.com/NixOS/patchelf/issues/453 - # - # Note: we might be using the bootstrapFiles' copy of patchelf, so we have - # to keep doing it this way until both the issue is fixed *and* all the - # bootstrapFiles are regenerated, on every platform. - # - # This patchelfing is *not* effectively equivalent to copying - # `libgcc_s` into `glibc`'s outpath. There is one minor and one - # major difference: - # - # 1. (Minor): multiple builds of `glibc` (say, with different - # overrides or parameters) will all reference a single store - # path: - # - # /nix/store/xxx...xxx-gcc-libgcc/lib/libgcc_s.so.1 - # - # This many-to-one referrer relationship will be visible in the store's - # dependency graph, and will be available to `nix-store -q` queries. - # Copying `libgcc_s` into each of its referrers would lose that - # information. - # - # 2. (Major): by referencing `libgcc_s.so.1`, rather than copying it, we - # are still able to run `nix-store -qd` on it to find out how it got - # built! Most importantly, we can see from that deriver which compiler - # was used to build it (or if it is part of the unpacked - # bootstrap-files). Copying `libgcc_s.so.1` from one outpath to - # another eliminates the ability to make these queries. - # - + '' - patchelf --set-rpath "" $libgcc/lib/libgcc_s.so.${libgcc_s-version-major} - ''); -}))])) + # TODO(amjoseph): remove the `libgcc_s.so` symlinks below and replace them + # with a `-L${gccForLibs.libgcc}/lib` in cc-wrapper's + # `$out/nix-support/cc-flags`. See also: + # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130614895 + # - https://github.com/NixOS/nixpkgs/pull/209870#discussion_r1130635982 + # - https://github.com/NixOS/nixpkgs/commit/404155c6acfa59456aebe6156b22fe385e7dec6f + # + # move `libgcc_s.so` into its own output, `$libgcc` + + lib.optionalString enableLibGccOutput ( + '' + # move libgcc from lib to its own output (libgcc) + mkdir -p $libgcc/lib + mv $lib/${targetPlatformSlash}lib/libgcc_s.so $libgcc/lib/ + mv $lib/${targetPlatformSlash}lib/libgcc_s.so.${libgcc_s-version-major} $libgcc/lib/ + ln -s $libgcc/lib/libgcc_s.so $lib/${targetPlatformSlash}lib/ + ln -s $libgcc/lib/libgcc_s.so.${libgcc_s-version-major} $lib/${targetPlatformSlash}lib/ + '' + # + # Nixpkgs ordinarily turns dynamic linking into pseudo-static linking: + # libraries are still loaded dynamically, exactly which copy of each + # library is loaded is permanently fixed at compile time (via RUNPATH). + # For libgcc_s we must revert to the "impure dynamic linking" style found + # in imperative software distributions. We must do this because + # `libgcc_s` calls `malloc()` and therefore has a `DT_NEEDED` for `libc`, + # which creates two problems: + # + # 1. A circular package dependency `glibc`<-`libgcc`<-`glibc` + # + # 2. According to the `-Wl,-rpath` flags added by Nixpkgs' `ld-wrapper`, + # the two versions of `glibc` in the cycle above are actually + # different packages. The later one is compiled by this `gcc`, but + # the earlier one was compiled by the compiler *that compiled* this + # `gcc` (usually the bootstrapFiles). In any event, the `glibc` + # dynamic loader won't honor that specificity without namespaced + # manual loads (`dlmopen()`). Once a `libc` is present in the address + # space of a process, that `libc` will be used to satisfy all + # `DT_NEEDED`s for `libc`, regardless of `RUNPATH`s. + # + # So we wipe the RUNPATH using `patchelf --set-rpath ""`. We can't use + # `patchelf --remove-rpath`, because at least as of patchelf 0.15.0 it + # will leave the old RUNPATH string in the file where the reference + # scanner can still find it: + # + # https://github.com/NixOS/patchelf/issues/453 + # + # Note: we might be using the bootstrapFiles' copy of patchelf, so we have + # to keep doing it this way until both the issue is fixed *and* all the + # bootstrapFiles are regenerated, on every platform. + # + # This patchelfing is *not* effectively equivalent to copying + # `libgcc_s` into `glibc`'s outpath. There is one minor and one + # major difference: + # + # 1. (Minor): multiple builds of `glibc` (say, with different + # overrides or parameters) will all reference a single store + # path: + # + # /nix/store/xxx...xxx-gcc-libgcc/lib/libgcc_s.so.1 + # + # This many-to-one referrer relationship will be visible in the store's + # dependency graph, and will be available to `nix-store -q` queries. + # Copying `libgcc_s` into each of its referrers would lose that + # information. + # + # 2. (Major): by referencing `libgcc_s.so.1`, rather than copying it, we + # are still able to run `nix-store -qd` on it to find out how it got + # built! Most importantly, we can see from that deriver which compiler + # was used to build it (or if it is part of the unpacked + # bootstrap-files). Copying `libgcc_s.so.1` from one outpath to + # another eliminates the ability to make these queries. + # + + '' + patchelf --set-rpath "" $libgcc/lib/libgcc_s.so.${libgcc_s-version-major} + '' + ); + } + ) + ) + ] + ) + ) diff --git a/pkgs/by-name/gc/gcc/common/meta.nix b/pkgs/by-name/gc/gcc/common/meta.nix index 5ce4cec..5e6fd6e 100644 --- a/pkgs/by-name/gc/gcc/common/meta.nix +++ b/pkgs/by-name/gc/gcc/common/meta.nix @@ -1,4 +1,4 @@ -{ lib, version, }: +{ lib, version }: let inherit (lib) diff --git a/pkgs/by-name/gc/gcc/common/platform-flags.nix b/pkgs/by-name/gc/gcc/common/platform-flags.nix index cc6a67d..16ddd56 100644 --- a/pkgs/by-name/gc/gcc/common/platform-flags.nix +++ b/pkgs/by-name/gc/gcc/common/platform-flags.nix @@ -2,10 +2,10 @@ let isAarch64Darwin = targetPlatform.isDarwin && targetPlatform.isAarch64; - gcc = targetPlatform.gcc or {}; - p = gcc - // targetPlatform.parsed.abi; -in lib.concatLists [ + gcc = targetPlatform.gcc or { }; + p = gcc // targetPlatform.parsed.abi; +in +lib.concatLists [ # --with-arch= is unknown flag on x86_64 and aarch64-darwin. (lib.optional (!targetPlatform.isx86_64 && !isAarch64Darwin && p ? arch) "--with-arch=${p.arch}") # --with-cpu on aarch64-darwin fails with "Unknown cpu used in --with-cpu=apple-a13". @@ -17,16 +17,28 @@ in lib.concatLists [ (lib.optionals targetPlatform.isPower64 # musl explicitly rejects 128-bit long double on # powerpc64; see musl/arch/powerpc64/bits/float.h - (lib.optionals - (!targetPlatform.isMusl - && (targetPlatform.isLittleEndian || - # "... --with-long-double-format is only supported if the default cpu is power7 or newer" - # https://github.com/NixOS/nixpkgs/pull/170215#issuecomment-1202164709 - (lib.lists.elem - (lib.strings.substring 0 6 (p.cpu or "")) - [ "power7" "power8" "power9" "power1"/*0, 11, etc*/ ]))) [ - "--with-long-double-128" - "--with-long-double-format=${gcc.long-double-format or "ieee"}" - ])) + ( + lib.optionals + ( + !targetPlatform.isMusl + && ( + targetPlatform.isLittleEndian + || + # "... --with-long-double-format is only supported if the default cpu is power7 or newer" + # https://github.com/NixOS/nixpkgs/pull/170215#issuecomment-1202164709 + (lib.lists.elem (lib.strings.substring 0 6 (p.cpu or "")) [ + "power7" + "power8" + "power9" + "power1" # 0, 11, etc + ]) + ) + ) + [ + "--with-long-double-128" + "--with-long-double-format=${gcc.long-double-format or "ieee"}" + ] + ) + ) (lib.optional targetPlatform.isMips64n32 "--disable-libsanitizer") # libsanitizer does not compile on mips64n32 ] diff --git a/pkgs/by-name/gc/gcc/common/pre-configure.nix b/pkgs/by-name/gc/gcc/common/pre-configure.nix index 77179d7..2b8fbb2 100644 --- a/pkgs/by-name/gc/gcc/common/pre-configure.nix +++ b/pkgs/by-name/gc/gcc/common/pre-configure.nix @@ -1,31 +1,41 @@ -{ lib -, stdenv -, version, buildPlatform, hostPlatform, targetPlatform -, gnat-bootstrap ? null -, langAda ? false -, langFortran -, langJava ? false -, langJit ? false -, langGo -, withoutTargetLibc -, enableShared -, enableMultilib -, pkgsBuildTarget +{ + lib, + stdenv, + version, + buildPlatform, + hostPlatform, + targetPlatform, + gnat-bootstrap ? null, + langAda ? false, + langFortran, + langJava ? false, + langJit ? false, + langGo, + withoutTargetLibc, + enableShared, + enableMultilib, + pkgsBuildTarget, }: assert langJava -> lib.versionOlder version "7"; -assert langAda -> gnat-bootstrap != null; let - needsLib - = (lib.versionOlder version "7" && (langJava || langGo)) - || (lib.versions.major version == "4" && lib.versions.minor version == "9" && targetPlatform.isDarwin); -in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' +assert langAda -> gnat-bootstrap != null; +let + needsLib = + (lib.versionOlder version "7" && (langJava || langGo)) + || ( + lib.versions.major version == "4" && lib.versions.minor version == "9" && targetPlatform.isDarwin + ); +in +lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g` export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET" export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET" export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" -'' + lib.optionalString needsLib '' +'' ++ lib.optionalString needsLib '' export lib=$out; -'' + lib.optionalString langAda '' +'' ++ lib.optionalString langAda '' export PATH=${gnat-bootstrap}/bin:$PATH '' @@ -34,9 +44,12 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' # buildPlatform and emit code for the targetPlatform. The compiler # which is built alongside gfortran in this configuration doesn't # meet that need: it runs on the hostPlatform. -+ lib.optionalString (langFortran && (with stdenv; buildPlatform != hostPlatform && hostPlatform == targetPlatform)) '' - export GFORTRAN_FOR_TARGET=${pkgsBuildTarget.gfortran}/bin/${stdenv.targetPlatform.config}-gfortran -'' ++ + lib.optionalString + (langFortran && (with stdenv; buildPlatform != hostPlatform && hostPlatform == targetPlatform)) + '' + export GFORTRAN_FOR_TARGET=${pkgsBuildTarget.gfortran}/bin/${stdenv.targetPlatform.config}-gfortran + '' # On x86_64-darwin, the gnat-bootstrap bootstrap compiler that we need to build a # native GCC with Ada support emits assembly that is accepted by the Clang @@ -52,16 +65,19 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' # gnat-bootstrap, the former is provided as `as`, while the latter is provided as # `gas`. # -+ lib.optionalString ( - langAda - && buildPlatform == hostPlatform - && hostPlatform == targetPlatform - && targetPlatform.isx86_64 - && targetPlatform.isDarwin - ) '' - export AS_FOR_BUILD=${gnat-bootstrap}/bin/as - export AS_FOR_TARGET=${gnat-bootstrap}/bin/gas -'' ++ + lib.optionalString + ( + langAda + && buildPlatform == hostPlatform + && hostPlatform == targetPlatform + && targetPlatform.isx86_64 + && targetPlatform.isDarwin + ) + '' + export AS_FOR_BUILD=${gnat-bootstrap}/bin/as + export AS_FOR_TARGET=${gnat-bootstrap}/bin/gas + '' # NOTE 2020/3/18: This environment variable prevents configure scripts from # detecting the presence of aligned_alloc on Darwin. There are many facts that @@ -92,11 +108,13 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' # compilation even if the configure scripts did not check header presence. # + lib.optionalString (buildPlatform.isDarwin) '' - export build_configargs=ac_cv_func_aligned_alloc=no -'' + lib.optionalString (hostPlatform.isDarwin) '' - export host_configargs=ac_cv_func_aligned_alloc=no -'' + lib.optionalString (targetPlatform.isDarwin) '' - export target_configargs=ac_cv_func_aligned_alloc=no + export build_configargs=ac_cv_func_aligned_alloc=no +'' ++ lib.optionalString (hostPlatform.isDarwin) '' + export host_configargs=ac_cv_func_aligned_alloc=no +'' ++ lib.optionalString (targetPlatform.isDarwin) '' + export target_configargs=ac_cv_func_aligned_alloc=no '' # In order to properly install libgccjit on macOS Catalina, strip(1) @@ -110,20 +128,26 @@ in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) '' # HACK: if host and target config are the same, but the platforms are # actually different we need to convince the configure script that it # is in fact building a cross compiler although it doesn't believe it. -+ lib.optionalString (targetPlatform.config == hostPlatform.config && targetPlatform != hostPlatform) '' - substituteInPlace configure --replace is_cross_compiler=no is_cross_compiler=yes -'' ++ + lib.optionalString (targetPlatform.config == hostPlatform.config && targetPlatform != hostPlatform) + '' + substituteInPlace configure --replace is_cross_compiler=no is_cross_compiler=yes + '' # Normally (for host != target case) --without-headers automatically # enables 'inhibit_libc=true' in gcc's gcc/configure.ac. But case of # gcc->clang or dynamic->static "cross"-compilation manages to evade it: there # hostPlatform != targetPlatform, hostPlatform.config == targetPlatform.config. # We explicitly inhibit libc headers use in this case as well. -+ lib.optionalString (targetPlatform != hostPlatform && - withoutTargetLibc && - targetPlatform.config == hostPlatform.config) '' - export inhibit_libc=true -'' ++ + lib.optionalString + ( + targetPlatform != hostPlatform && withoutTargetLibc && targetPlatform.config == hostPlatform.config + ) + '' + export inhibit_libc=true + '' -+ lib.optionalString (targetPlatform != hostPlatform && withoutTargetLibc && enableShared) - (import ./libgcc-buildstuff.nix { inherit lib stdenv; }) ++ lib.optionalString (targetPlatform != hostPlatform && withoutTargetLibc && enableShared) ( + import ./libgcc-buildstuff.nix { inherit lib stdenv; } +) diff --git a/pkgs/by-name/gc/gcc/common/strip-attributes.nix b/pkgs/by-name/gc/gcc/common/strip-attributes.nix index f2f0efb..3871d84 100644 --- a/pkgs/by-name/gc/gcc/common/strip-attributes.nix +++ b/pkgs/by-name/gc/gcc/common/strip-attributes.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, langJit }: +{ + lib, + stdenv, + langJit, +}: { # Note [Cross-compiler stripping] @@ -29,42 +33,51 @@ # The rest of stripDebugList{Host,Target} will be populated in # postInstall to disambiguate lib/ object files. - stripDebugList = [ "bin" "libexec" ]; + stripDebugList = [ + "bin" + "libexec" + ]; stripDebugListTarget = [ stdenv.targetPlatform.config ]; - preFixup = '' - # Populate most delicated lib/ part of stripDebugList{,Target} - updateDebugListPaths() { - local oldOpts - oldOpts="$(shopt -p nullglob)" || true - shopt -s nullglob + preFixup = + '' + # Populate most delicated lib/ part of stripDebugList{,Target} + updateDebugListPaths() { + local oldOpts + oldOpts="$(shopt -p nullglob)" || true + shopt -s nullglob - pushd $out - local -ar outHostFiles=( - lib{,32,64}/*.{a,o,so*} - lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/plugin - ) - local -ar outTargetFiles=( - lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a,o,so*} - ) - popd - '' + lib.optionalString (!langJit) '' - ${/*keep indentation*/ ""} - pushd $lib - local -ar libHostFiles=( - lib{,32,64}/*.{a,o,so*} - ) - local -ar libTargetFiles=( - lib{,32,64}/${stdenv.targetPlatform.config}/*.{a,o,so*} - ) - popd + pushd $out + local -ar outHostFiles=( + lib{,32,64}/*.{a,o,so*} + lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/plugin + ) + local -ar outTargetFiles=( + lib{,32,64}/gcc/${stdenv.targetPlatform.config}/*/*.{a,o,so*} + ) + popd + '' + + lib.optionalString (!langJit) '' + ${ + # keep indentation + "" + } + pushd $lib + local -ar libHostFiles=( + lib{,32,64}/*.{a,o,so*} + ) + local -ar libTargetFiles=( + lib{,32,64}/${stdenv.targetPlatform.config}/*.{a,o,so*} + ) + popd - '' + '' - eval "$oldOpts" + '' + + '' + eval "$oldOpts" - stripDebugList="$stripDebugList ''${outHostFiles[*]} ''${libHostFiles[*]}" - stripDebugListTarget="$stripDebugListTarget ''${outTargetFiles[*]} ''${libTargetFiles[*]}" - } - updateDebugListPaths - ''; + stripDebugList="$stripDebugList ''${outHostFiles[*]} ''${libHostFiles[*]}" + stripDebugListTarget="$stripDebugListTarget ''${outTargetFiles[*]} ''${libTargetFiles[*]}" + } + updateDebugListPaths + ''; } diff --git a/pkgs/by-name/gc/gcc/default.nix b/pkgs/by-name/gc/gcc/default.nix index 748cbdd..7e39c04 100644 --- a/pkgs/by-name/gc/gcc/default.nix +++ b/pkgs/by-name/gc/gcc/default.nix @@ -1,50 +1,76 @@ -{ lib, stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs -, langC ? true, langCC ? true, langFortran ? false -, langAda ? false -, langObjC ? stdenv.targetPlatform.isDarwin -, langObjCpp ? stdenv.targetPlatform.isDarwin -, langD ? false -, langGo ? false -, reproducibleBuild ? true -, profiledCompiler ? false -, langJit ? false -, staticCompiler ? false -, enableShared ? stdenv.targetPlatform.hasSharedLibraries -, enableLTO ? stdenv.hostPlatform.hasSharedLibraries -, texinfo ? null -, perl ? null # optional, for texi2pod (then pod2man) -, gmp, mpfr, libmpc, gettext, which, patchelf, binutils -, isl ? null # optional, for the Graphite optimization framework. -, zlib ? null -, libucontext ? null -, gnat-bootstrap ? null -, enableMultilib ? false -, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins -, name ? "gcc" -, libcCross ? null -, threadsCross ? null # for MinGW -, withoutTargetLibc ? false -, gnused ? null -, cloog # unused; just for compat with gcc4, as we override the parameter on some places -, buildPackages -, pkgsBuildTarget -, libxcrypt -, disableGdbPlugin ? !enablePlugin || (stdenv.targetPlatform.isAvr && stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) -, nukeReferences -, callPackage -, majorMinorVersion -, darwin +{ + lib, + stdenv, + targetPackages, + fetchurl, + fetchpatch, + fetchFromGitHub, + noSysDirs, + langC ? true, + langCC ? true, + langFortran ? false, + langAda ? false, + langObjC ? stdenv.targetPlatform.isDarwin, + langObjCpp ? stdenv.targetPlatform.isDarwin, + langD ? false, + langGo ? false, + reproducibleBuild ? true, + profiledCompiler ? false, + langJit ? false, + staticCompiler ? false, + enableShared ? stdenv.targetPlatform.hasSharedLibraries, + enableLTO ? stdenv.hostPlatform.hasSharedLibraries, + texinfo ? null, + perl ? null, # optional, for texi2pod (then pod2man) + gmp, + mpfr, + libmpc, + gettext, + which, + patchelf, + binutils, + isl ? null, # optional, for the Graphite optimization framework. + zlib ? null, + libucontext ? null, + gnat-bootstrap ? null, + enableMultilib ? false, + enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform, # Whether to support user-supplied plug-ins + name ? "gcc", + libcCross ? null, + threadsCross ? null, # for MinGW + withoutTargetLibc ? false, + gnused ? null, + cloog, # unused; just for compat with gcc4, as we override the parameter on some places + buildPackages, + pkgsBuildTarget, + libxcrypt, + disableGdbPlugin ? + !enablePlugin + || (stdenv.targetPlatform.isAvr && stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64), + nukeReferences, + callPackage, + majorMinorVersion, + darwin, -# only for gcc<=6.x -, langJava ? false -, flex -, boehmgc ? null -, zip ? null, unzip ? null, pkg-config ? null -, gtk2 ? null, libart_lgpl ? null -, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null -, libXrender ? null, xorgproto ? null -, libXrandr ? null, libXi ? null -, x11Support ? langJava + # only for gcc<=6.x + langJava ? false, + flex, + boehmgc ? null, + zip ? null, + unzip ? null, + pkg-config ? null, + gtk2 ? null, + libart_lgpl ? null, + libX11 ? null, + libXt ? null, + libSM ? null, + libICE ? null, + libXtst ? null, + libXrender ? null, + xorgproto ? null, + libXrandr ? null, + libXi ? null, + x11Support ? langJava, }: let @@ -74,40 +100,50 @@ let atLeast12 = versionAtLeast version "12"; atLeast11 = versionAtLeast version "11"; atLeast10 = versionAtLeast version "10"; - atLeast9 = versionAtLeast version "9"; - atLeast8 = versionAtLeast version "8"; - atLeast7 = versionAtLeast version "7"; - atLeast6 = versionAtLeast version "6"; - atLeast49 = versionAtLeast version "4.9"; + atLeast9 = versionAtLeast version "9"; + atLeast8 = versionAtLeast version "8"; + atLeast7 = versionAtLeast version "7"; + atLeast6 = versionAtLeast version "6"; + atLeast49 = versionAtLeast version "4.9"; is13 = majorVersion == "13"; is12 = majorVersion == "12"; is11 = majorVersion == "11"; is10 = majorVersion == "10"; - is9 = majorVersion == "9"; - is8 = majorVersion == "8"; - is7 = majorVersion == "7"; - is6 = majorVersion == "6"; + is9 = majorVersion == "9"; + is8 = majorVersion == "8"; + is7 = majorVersion == "7"; + is6 = majorVersion == "6"; is49 = majorVersion == "4" && versions.minor version == "9"; is48 = majorVersion == "4" && versions.minor version == "8"; - disableBootstrap = atLeast11 && !stdenv.hostPlatform.isDarwin && (atLeast12 -> !profiledCompiler); + disableBootstrap = atLeast11 && !stdenv.hostPlatform.isDarwin && (atLeast12 -> !profiledCompiler); - inherit (stdenv) buildPlatform hostPlatform targetPlatform; - targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; + inherit (stdenv) buildPlatform hostPlatform targetPlatform; + targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null; - patches = callFile ./patches {}; + patches = callFile ./patches { }; - /* Cross-gcc settings (build == host != target) */ - crossMingw = targetPlatform != hostPlatform && targetPlatform.isMinGW; - stageNameAddon = optionalString withoutTargetLibc "-nolibc"; - crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}${stageNameAddon}-"; + # Cross-gcc settings (build == host != target) + crossMingw = targetPlatform != hostPlatform && targetPlatform.isMinGW; + stageNameAddon = optionalString withoutTargetLibc "-nolibc"; + crossNameAddon = optionalString ( + targetPlatform != hostPlatform + ) "${targetPlatform.config}${stageNameAddon}-"; - javaAwtGtk = langJava && x11Support; - xlibs = [ - libX11 libXt libSM libICE libXtst libXrender libXrandr libXi - xorgproto - ]; - callFile = callPackageWith ({ + javaAwtGtk = langJava && x11Support; + xlibs = [ + libX11 + libXt + libSM + libICE + libXtst + libXrender + libXrandr + libXi + xorgproto + ]; + callFile = callPackageWith ( + { # lets inherit majorVersion @@ -120,7 +156,7 @@ let crossMingw stageNameAddon crossNameAddon - ; + ; # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc${majorVersion}.cc.override)" | jq '.[]' --raw-output' inherit binutils @@ -171,8 +207,9 @@ let which zip zlib - ; - } // optionalAttrs (!atLeast7) { + ; + } + // optionalAttrs (!atLeast7) { inherit boehmgc flex @@ -195,7 +232,7 @@ let xorgproto javaAwtGtk xlibs - ; + ; javaEcj = fetchurl { # The `$(top_srcdir)/ecj.jar' file is automatically picked up at # `configure' time. @@ -211,14 +248,17 @@ let url = "https://www.antlr.org/download/antlr-4.4-complete.jar"; sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz"; }; - }); + } + ); in # We enable the isl cloog backend. assert !atLeast6 -> (cloog != null -> isl != null); -assert langJava -> !atLeast7 && zip != null && unzip != null && zlib != null && boehmgc != null && perl != null; # for `--enable-java-home' +assert + langJava + -> !atLeast7 && zip != null && unzip != null && zlib != null && boehmgc != null && perl != null; # for `--enable-java-home' # Make sure we get GNU sed. assert stdenv.buildPlatform.isDarwin -> gnused != null; @@ -232,241 +272,357 @@ assert (atLeast6 && !is7 && !is8) -> (langAda -> gnat-bootstrap != null); assert atLeast12 -> !langD; # threadsCross is just for MinGW -assert threadsCross != {} -> stdenv.targetPlatform.isWindows; +assert threadsCross != { } -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore assert reproducibleBuild -> profiledCompiler == false; # We need all these X libraries when building AWT with GTK. -assert !atLeast7 -> (x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == []); +assert + !atLeast7 + -> ( + x11Support + -> + (filter (x: x == null) ( + [ + gtk2 + libart_lgpl + ] + ++ xlibs + )) == [ ] + ); -pipe ((callFile ./common/builder.nix {}) ({ - pname = "${crossNameAddon}${name}"; - inherit version; +pipe + ((callFile ./common/builder.nix { }) ( + { + pname = "${crossNameAddon}${name}"; + inherit version; - src = if is6 && stdenv.targetPlatform.isVc4 then fetchFromGitHub { - owner = "itszor"; - repo = "gcc-vc4"; - rev = "e90ff43f9671c760cf0d1dd62f569a0fb9bf8918"; - sha256 = "0gxf66hwqk26h8f853sybphqa5ca0cva2kmrw5jsiv6139g0qnp8"; - } else if is6 && stdenv.targetPlatform.isRedox then fetchFromGitHub { - owner = "redox-os"; - repo = "gcc"; - rev = "f360ac095028d286fc6dde4d02daed48f59813fa"; # `redox` branch - sha256 = "1an96h8l58pppyh3qqv90g8hgcfd9hj7igvh2gigmkxbrx94khfl"; - } else fetchurl { - url = if atLeast7 - then "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz" - else if atLeast6 - then "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz" - else "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; - ${if is10 || is11 || is13 then "hash" else "sha256"} = - gccVersions.srcHashForVersion version; - }; + src = + if is6 && stdenv.targetPlatform.isVc4 then + fetchFromGitHub { + owner = "itszor"; + repo = "gcc-vc4"; + rev = "e90ff43f9671c760cf0d1dd62f569a0fb9bf8918"; + sha256 = "0gxf66hwqk26h8f853sybphqa5ca0cva2kmrw5jsiv6139g0qnp8"; + } + else if is6 && stdenv.targetPlatform.isRedox then + fetchFromGitHub { + owner = "redox-os"; + repo = "gcc"; + rev = "f360ac095028d286fc6dde4d02daed48f59813fa"; # `redox` branch + sha256 = "1an96h8l58pppyh3qqv90g8hgcfd9hj7igvh2gigmkxbrx94khfl"; + } + else + fetchurl { + url = + if atLeast7 then + "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz" + else if atLeast6 then + "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz" + else + "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; + ${if is10 || is11 || is13 then "hash" else "sha256"} = gccVersions.srcHashForVersion version; + }; - inherit patches; + inherit patches; - outputs = - if atLeast7 - then [ "out" "man" "info" ] ++ optional (!langJit) "lib" - else if atLeast49 && (langJava || langGo || (if atLeast6 then langJit else targetPlatform.isDarwin)) then ["out" "man" "info"] - else [ "out" "lib" "man" "info" ]; + outputs = + if atLeast7 then + [ + "out" + "man" + "info" + ] + ++ optional (!langJit) "lib" + else if + atLeast49 && (langJava || langGo || (if atLeast6 then langJit else targetPlatform.isDarwin)) + then + [ + "out" + "man" + "info" + ] + else + [ + "out" + "lib" + "man" + "info" + ]; - setOutputFlags = false; + setOutputFlags = false; - libc_dev = stdenv.cc.libc_dev; + libc_dev = stdenv.cc.libc_dev; - hardeningDisable = [ "format" "pie" ] - ++ optionals (is11 && langAda) [ "fortify3" ]; + hardeningDisable = [ + "format" + "pie" + ] ++ optionals (is11 && langAda) [ "fortify3" ]; - postPatch = optionalString atLeast7 '' - configureScripts=$(find . -name configure) - for configureScript in $configureScripts; do - patchShebangs $configureScript - done - '' - # This should kill all the stdinc frameworks that gcc and friends like to - # insert into default search paths. - + optionalString (atLeast6 && hostPlatform.isDarwin) '' - substituteInPlace gcc/config/darwin-c.c${optionalString atLeast12 "c"} \ - --replace 'if (stdinc)' 'if (0)' - - substituteInPlace libgcc/config/t-slibgcc-darwin \ - --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)" - - substituteInPlace libgfortran/configure \ - --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" - '' - + ( - optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) - # On NixOS, use the right path to the dynamic linker instead of - # `/lib/ld*.so'. - (let - libc = if libcCross != null then libcCross else stdenv.cc.libc; - in - ( - '' echo "fixing the {GLIBC,UCLIBC,MUSL}_DYNAMIC_LINKER macros..." - for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h - do - grep -q ${optionalString (!atLeast6) "LIBC"}_DYNAMIC_LINKER "$header" || continue - echo " fixing $header..." - sed -i "$header" \ - -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \ - -e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g' - done - '' + optionalString (atLeast6 && targetPlatform.libc == "musl") '' - sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' + postPatch = + optionalString atLeast7 '' + configureScripts=$(find . -name configure) + for configureScript in $configureScripts; do + patchShebangs $configureScript + done '' - ) - )) - + optionalString (atLeast7 && targetPlatform.isAvr) ('' - makeFlagsArray+=( - '-s' # workaround for hitting hydra log limit - 'LIMITS_H_TEST=false' + # This should kill all the stdinc frameworks that gcc and friends like to + # insert into default search paths. + + optionalString (atLeast6 && hostPlatform.isDarwin) '' + substituteInPlace gcc/config/darwin-c.c${optionalString atLeast12 "c"} \ + --replace 'if (stdinc)' 'if (0)' + + substituteInPlace libgcc/config/t-slibgcc-darwin \ + --replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)" + + substituteInPlace libgfortran/configure \ + --replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname" + '' + + (optionalString (targetPlatform != hostPlatform || stdenv.cc.libc != null) + # On NixOS, use the right path to the dynamic linker instead of + # `/lib/ld*.so'. + ( + let + libc = if libcCross != null then libcCross else stdenv.cc.libc; + in + ( + '' + echo "fixing the {GLIBC,UCLIBC,MUSL}_DYNAMIC_LINKER macros..." + for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h + do + grep -q ${optionalString (!atLeast6) "LIBC"}_DYNAMIC_LINKER "$header" || continue + echo " fixing $header..." + sed -i "$header" \ + -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \ + -e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g' + done + '' + + optionalString (atLeast6 && targetPlatform.libc == "musl") '' + sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR' + '' ) - ''); + ) + ) + + optionalString (atLeast7 && targetPlatform.isAvr) ('' + makeFlagsArray+=( + '-s' # workaround for hitting hydra log limit + 'LIMITS_H_TEST=false' + ) + ''); - inherit noSysDirs staticCompiler withoutTargetLibc - libcCross crossMingw; + inherit + noSysDirs + staticCompiler + withoutTargetLibc + libcCross + crossMingw + ; - inherit (callFile ./common/dependencies.nix { }) depsBuildBuild nativeBuildInputs depsBuildTarget buildInputs depsTargetTarget; + inherit (callFile ./common/dependencies.nix { }) + depsBuildBuild + nativeBuildInputs + depsBuildTarget + buildInputs + depsTargetTarget + ; - preConfigure = (callFile ./common/pre-configure.nix { }) + optionalString atLeast10 '' - ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h - ''; + preConfigure = + (callFile ./common/pre-configure.nix { }) + + optionalString atLeast10 '' + ln -sf ${libxcrypt}/include/crypt.h libsanitizer/sanitizer_common/crypt.h + ''; - dontDisableStatic = true; + dontDisableStatic = true; - configurePlatforms = [ "build" "host" "target" ]; + configurePlatforms = [ + "build" + "host" + "target" + ]; - configureFlags = (callFile ./common/configure-flags.nix { }) - ++ optional (is7 && targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419" - ++ optional (is7 && targetPlatform.isNetBSD) "--disable-libcilkrts"; + configureFlags = + (callFile ./common/configure-flags.nix { }) + ++ optional (is7 && targetPlatform.isAarch64) "--enable-fix-cortex-a53-843419" + ++ optional (is7 && targetPlatform.isNetBSD) "--disable-libcilkrts"; - inherit targetConfig; + inherit targetConfig; - buildFlags = - # we do not yet have Nix-driven profiling - assert atLeast12 -> (profiledCompiler -> !disableBootstrap); - if atLeast11 - then let target = - optionalString (profiledCompiler) "profiled" + - optionalString (targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap) "bootstrap"; - in optional (target != "") target - else - optional - (targetPlatform == hostPlatform && hostPlatform == buildPlatform) - (if profiledCompiler then "profiledbootstrap" else "bootstrap"); + buildFlags = + # we do not yet have Nix-driven profiling + assert atLeast12 -> (profiledCompiler -> !disableBootstrap); + if atLeast11 then + let + target = + optionalString (profiledCompiler) "profiled" + + optionalString ( + targetPlatform == hostPlatform && hostPlatform == buildPlatform && !disableBootstrap + ) "bootstrap"; + in + optional (target != "") target + else + optional (targetPlatform == hostPlatform && hostPlatform == buildPlatform) ( + if profiledCompiler then "profiledbootstrap" else "bootstrap" + ); - inherit (callFile ./common/strip-attributes.nix { }) - stripDebugList - stripDebugListTarget - preFixup; + inherit (callFile ./common/strip-attributes.nix { }) stripDebugList stripDebugListTarget preFixup; - # https://gcc.gnu.org/PR109898 - enableParallelInstalling = false; + # https://gcc.gnu.org/PR109898 + enableParallelInstalling = false; - env = mapAttrs (_: v: toString v) ({ + env = mapAttrs (_: v: toString v) ( + { - NIX_NO_SELF_RPATH = true; + NIX_NO_SELF_RPATH = true; - # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 - ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64"; + # https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 + ${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64"; - # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the - # library headers and binaries, regarless of the language being compiled. - # - # Note: When building the Java AWT GTK peer, the build system doesn't honor - # `--with-gmp' et al., e.g., when building - # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add - # them to $CPATH and $LIBRARY_PATH in this case. - # - # Likewise, the LTO code doesn't find zlib. - # - # Cross-compiling, we need gcc not to read ./specs in order to build the g++ - # compiler (after the specs for the cross-gcc are created). Having - # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the + # library headers and binaries, regarless of the language being compiled. + # + # Note: When building the Java AWT GTK peer, the build system doesn't honor + # `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add + # them to $CPATH and $LIBRARY_PATH in this case. + # + # Likewise, the LTO code doesn't find zlib. + # + # Cross-compiling, we need gcc not to read ./specs in order to build the g++ + # compiler (after the specs for the cross-gcc are created). Having + # LIBRARY_PATH= makes gcc read the specs from ., and the build breaks. - CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([] - ++ optional (zlib != null) zlib - ++ optional langJava boehmgc - ++ optionals javaAwtGtk xlibs - ++ optionals javaAwtGtk [ gmp mpfr ] - )); + CPATH = optionals (targetPlatform == hostPlatform) ( + makeSearchPathOutput "dev" "include" ( + [ ] + ++ optional (zlib != null) zlib + ++ optional langJava boehmgc + ++ optionals javaAwtGtk xlibs + ++ optionals javaAwtGtk [ + gmp + mpfr + ] + ) + ); - LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ( - optional (zlib != null) zlib - ++ optional langJava boehmgc - ++ optionals javaAwtGtk xlibs - ++ optionals javaAwtGtk [ gmp mpfr ] - )); + LIBRARY_PATH = optionals (targetPlatform == hostPlatform) ( + makeLibraryPath ( + optional (zlib != null) zlib + ++ optional langJava boehmgc + ++ optionals javaAwtGtk xlibs + ++ optionals javaAwtGtk [ + gmp + mpfr + ] + ) + ); - inherit (callFile ./common/extra-target-flags.nix { }) - EXTRA_FLAGS_FOR_TARGET - EXTRA_LDFLAGS_FOR_TARGET - ; - } // optionalAttrs is7 { - NIX_CFLAGS_COMPILE = optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument" - # Downgrade register storage class specifier errors to warnings when building a cross compiler from a clang stdenv. - + optionalString (stdenv.cc.isClang && targetPlatform != hostPlatform) " -Wno-register"; - } // optionalAttrs (!is7 && !atLeast12 && stdenv.cc.isClang && targetPlatform != hostPlatform) { - NIX_CFLAGS_COMPILE = "-Wno-register"; - } // optionalAttrs (!atLeast7) { - inherit langJava; - } // optionalAttrs atLeast6 { - NIX_LDFLAGS = optionalString hostPlatform.isSunOS "-lm"; - }); + inherit (callFile ./common/extra-target-flags.nix { }) + EXTRA_FLAGS_FOR_TARGET + EXTRA_LDFLAGS_FOR_TARGET + ; + } + // optionalAttrs is7 { + NIX_CFLAGS_COMPILE = + optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument" + # Downgrade register storage class specifier errors to warnings when building a cross compiler from a clang stdenv. + + optionalString (stdenv.cc.isClang && targetPlatform != hostPlatform) " -Wno-register"; + } + // optionalAttrs (!is7 && !atLeast12 && stdenv.cc.isClang && targetPlatform != hostPlatform) { + NIX_CFLAGS_COMPILE = "-Wno-register"; + } + // optionalAttrs (!atLeast7) { inherit langJava; } + // optionalAttrs atLeast6 { NIX_LDFLAGS = optionalString hostPlatform.isSunOS "-lm"; } + ); - passthru = { - inherit langC langCC langObjC langObjCpp langAda langFortran langGo langD langJava version; - isGNU = true; - hardeningUnsupportedFlags = optional is48 "stackprotector" - ++ optional (!atLeast11) "zerocallusedregs" - ++ optionals (!atLeast12) [ "fortify3" "trivialautovarinit" ] - ++ optionals (langFortran) [ "fortify" "format" ]; - }; + passthru = { + inherit + langC + langCC + langObjC + langObjCpp + langAda + langFortran + langGo + langD + langJava + version + ; + isGNU = true; + hardeningUnsupportedFlags = + optional is48 "stackprotector" + ++ optional (!atLeast11) "zerocallusedregs" + ++ optionals (!atLeast12) [ + "fortify3" + "trivialautovarinit" + ] + ++ optionals (langFortran) [ + "fortify" + "format" + ]; + }; - enableParallelBuilding = true; - inherit enableShared enableMultilib; - - meta = { - inherit (callFile ./common/meta.nix { }) - homepage - license - description - longDescription - platforms - # maintainers - ; - } // optionalAttrs (!atLeast11) { - badPlatforms = - # avr-gcc8 is maintained for the `qmk` package - if (is8 && targetPlatform.isAvr) then [] - else if !(is48 || is49) then [ "aarch64-darwin" ] - else platforms.darwin; - } // optionalAttrs is11 { - badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ]; - }; -} // optionalAttrs (!atLeast10 && stdenv.targetPlatform.isDarwin) { - # GCC <10 requires default cctools `strip` instead of `llvm-strip` used by Darwin bintools. - preBuild = '' - makeFlagsArray+=('STRIP=${getBin darwin.cctools-port}/bin/${stdenv.cc.targetPrefix}strip') - ''; -} // optionalAttrs (!atLeast8) { - doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv -} // optionalAttrs enableMultilib { - dontMoveLib64 = true; -} // optionalAttrs (((is49 && !stdenv.hostPlatform.isDarwin) || is6) && langJava) { - postFixup = '' - target="$(echo "$out/libexec/gcc"/*/*/ecj*)" - patchelf --set-rpath "$(patchelf --print-rpath "$target"):$out/lib" "$target" - ''; -} -)) -([ - (callPackage ./common/libgcc.nix { inherit version langC langCC langJit targetPlatform hostPlatform withoutTargetLibc enableShared libcCross; }) -] ++ optionals atLeast11 [ - (callPackage ./common/checksum.nix { inherit langC langCC; }) -]) + enableParallelBuilding = true; + inherit enableShared enableMultilib; + meta = + { + inherit (callFile ./common/meta.nix { }) + homepage + license + description + longDescription + platforms + # maintainers + ; + } + // optionalAttrs (!atLeast11) { + badPlatforms = + # avr-gcc8 is maintained for the `qmk` package + if (is8 && targetPlatform.isAvr) then + [ ] + else if !(is48 || is49) then + [ "aarch64-darwin" ] + else + platforms.darwin; + } + // optionalAttrs is11 { + badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ]; + }; + } + // optionalAttrs (!atLeast10 && stdenv.targetPlatform.isDarwin) { + # GCC <10 requires default cctools `strip` instead of `llvm-strip` used by Darwin bintools. + preBuild = '' + makeFlagsArray+=('STRIP=${getBin darwin.cctools-port}/bin/${stdenv.cc.targetPrefix}strip') + ''; + } + // optionalAttrs (!atLeast8) { + doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv + } + // optionalAttrs enableMultilib { dontMoveLib64 = true; } + // optionalAttrs (((is49 && !stdenv.hostPlatform.isDarwin) || is6) && langJava) { + postFixup = '' + target="$(echo "$out/libexec/gcc"/*/*/ecj*)" + patchelf --set-rpath "$(patchelf --print-rpath "$target"):$out/lib" "$target" + ''; + } + )) + ( + [ + (callPackage ./common/libgcc.nix { + inherit + version + langC + langCC + langJit + targetPlatform + hostPlatform + withoutTargetLibc + enableShared + libcCross + ; + }) + ] + ++ optionals atLeast11 [ (callPackage ./common/checksum.nix { inherit langC langCC; }) ] + ) diff --git a/pkgs/by-name/gc/gcc/packages.nix b/pkgs/by-name/gc/gcc/packages.nix index 9937bd2..3faa719 100644 --- a/pkgs/by-name/gc/gcc/packages.nix +++ b/pkgs/by-name/gc/gcc/packages.nix @@ -1,18 +1,15 @@ { noSysDirs, ... }: res: pkgs: super: -with pkgs; -{ - default-gcc-version = - if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6 - else 13; +with pkgs; { + default-gcc-version = if (with stdenv.targetPlatform; isVc4 || libc == "relibc") then 6 else 13; gcc = pkgs.${"gcc${toString default-gcc-version}"}; gccFun = callPackage ./.; gcc-unwrapped = gcc.cc; gccStdenv = - if stdenv.cc.isGNU - then stdenv + if stdenv.cc.isGNU then + stdenv else stdenv.override { cc = buildPackages.gcc; @@ -37,13 +34,12 @@ with pkgs; # profile-guided optimizations fastStdenv = overrideCC gccStdenv (wrapNonDeterministicGcc gccStdenv buildPackages.gcc_latest); - wrapCCMulti = cc: + wrapCCMulti = + cc: if stdenv.targetPlatform.system == "x86_64-linux" then let # Binutils with glibc multi - bintools = cc.bintools.override { - libc = glibc_multi; - }; + bintools = cc.bintools.override { libc = glibc_multi; }; in lowPrio (wrapCCWith { cc = cc.cc.override { @@ -60,55 +56,65 @@ with pkgs; extraBuildCommands = '' echo "dontMoveLib64=1" >> $out/nix-support/setup-hook ''; - }) else throw "Multilib ${cc.name} not supported for ‘${stdenv.targetPlatform.system}’"; + }) + else + throw "Multilib ${cc.name} not supported for ‘${stdenv.targetPlatform.system}’"; gcc_multi = wrapCCMulti gcc; gccMultiStdenv = overrideCC stdenv buildPackages.gcc_multi; - gcc_debug = lowPrio (wrapCC (gcc.cc.overrideAttrs { - dontStrip = true; - })); + gcc_debug = lowPrio (wrapCC (gcc.cc.overrideAttrs { dontStrip = true; })); gccCrossLibcStdenv = overrideCC stdenv buildPackages.gccWithoutTargetLibc; - # The GCC used to build libc for the target platform. Normal gccs will be # built with, and use, that cross-compiled libc. - gccWithoutTargetLibc = assert stdenv.targetPlatform != stdenv.hostPlatform; let - libcCross1 = binutilsNoLibc.libc; - in - wrapCCWith { - cc = gccFun { - # copy-pasted - inherit noSysDirs; - majorMinorVersion = toString default-gcc-version; + gccWithoutTargetLibc = + assert stdenv.targetPlatform != stdenv.hostPlatform; + let + libcCross1 = binutilsNoLibc.libc; + in + wrapCCWith { + cc = gccFun { + # copy-pasted + inherit noSysDirs; + majorMinorVersion = toString default-gcc-version; - reproducibleBuild = true; - profiledCompiler = false; + reproducibleBuild = true; + profiledCompiler = false; - isl = if !stdenv.isDarwin then isl_0_20 else null; + isl = if !stdenv.isDarwin then isl_0_20 else null; - withoutTargetLibc = true; - langCC = false; - libcCross = libcCross1; - targetPackages.stdenv.cc.bintools = binutilsNoLibc; - enableShared = - stdenv.targetPlatform.hasSharedLibraries + withoutTargetLibc = true; + langCC = false; + libcCross = libcCross1; + targetPackages.stdenv.cc.bintools = binutilsNoLibc; + enableShared = + stdenv.targetPlatform.hasSharedLibraries - # temporarily disabled due to breakage; - # see https://github.com/NixOS/nixpkgs/pull/243249 - && !stdenv.targetPlatform.isWindows - && !(stdenv.targetPlatform.useLLVM or false) - ; + # temporarily disabled due to breakage; + # see https://github.com/NixOS/nixpkgs/pull/243249 + && !stdenv.targetPlatform.isWindows + && !(stdenv.targetPlatform.useLLVM or false); + }; + bintools = binutilsNoLibc; + libc = libcCross1; + extraPackages = [ ]; }; - bintools = binutilsNoLibc; - libc = libcCross1; - extraPackages = [ ]; - }; inherit (callPackage ./all.nix { inherit noSysDirs; }) - gcc48 gcc49 gcc6 gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc13; + gcc48 + gcc49 + gcc6 + gcc7 + gcc8 + gcc9 + gcc10 + gcc11 + gcc12 + gcc13 + ; gcc_latest = gcc13; @@ -116,113 +122,139 @@ with pkgs; # This is for e.g. LLVM libraries on linux. gccForLibs = - if stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU + if + stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU # Can only do this is in the native case, otherwise we might get infinite # recursion if `targetPackages.stdenv.cc.cc` itself uses `gccForLibs`. - then targetPackages.stdenv.cc.cc - else gcc.cc; + then + targetPackages.stdenv.cc.cc + else + gcc.cc; - wrapNonDeterministicGcc = stdenv: ccWrapper: + wrapNonDeterministicGcc = + stdenv: ccWrapper: if ccWrapper.isGNU then - ccWrapper.overrideAttrs - (old: { - env = old.env // { - cc = old.env.cc.override { - reproducibleBuild = false; - profiledCompiler = with stdenv; (!isDarwin && hostPlatform.isx86); - }; + ccWrapper.overrideAttrs (old: { + env = old.env // { + cc = old.env.cc.override { + reproducibleBuild = false; + profiledCompiler = with stdenv; (!isDarwin && hostPlatform.isx86); }; - }) else ccWrapper; - + }; + }) + else + ccWrapper; # Use the same GCC version as the one from stdenv by default - gfortran = wrapCC (gcc.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran = wrapCC ( + gcc.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran48 = wrapCC (gcc48.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran48 = wrapCC ( + gcc48.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran49 = wrapCC (gcc49.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran49 = wrapCC ( + gcc49.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran6 = wrapCC (gcc6.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran6 = wrapCC ( + gcc6.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran7 = wrapCC (gcc7.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran7 = wrapCC ( + gcc7.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran8 = wrapCC (gcc8.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran8 = wrapCC ( + gcc8.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran9 = wrapCC (gcc9.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran9 = wrapCC ( + gcc9.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran10 = wrapCC (gcc10.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran10 = wrapCC ( + gcc10.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran11 = wrapCC (gcc11.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran11 = wrapCC ( + gcc11.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran12 = wrapCC (gcc12.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran12 = wrapCC ( + gcc12.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); - gfortran13 = wrapCC (gcc13.cc.override { - name = "gfortran"; - langFortran = true; - langCC = false; - langC = false; - profiledCompiler = false; - }); + gfortran13 = wrapCC ( + gcc13.cc.override { + name = "gfortran"; + langFortran = true; + langCC = false; + langC = false; + profiledCompiler = false; + } + ); libgccjit = gcc.cc.override { name = "libgccjit"; @@ -235,145 +267,175 @@ with pkgs; }; gcj = gcj6; - gcj6 = wrapCC (gcc6.cc.override { - name = "gcj"; - langJava = true; - langFortran = false; - langCC = false; - langC = false; - profiledCompiler = false; - inherit zip unzip zlib boehmgc gettext pkg-config perl; - inherit (gnome2) libart_lgpl; - }); + gcj6 = wrapCC ( + gcc6.cc.override { + name = "gcj"; + langJava = true; + langFortran = false; + langCC = false; + langC = false; + profiledCompiler = false; + inherit + zip + unzip + zlib + boehmgc + gettext + pkg-config + perl + ; + inherit (gnome2) libart_lgpl; + } + ); gnat = gnat12; # When changing this, update also gnatPackages - gnat11 = wrapCC (gcc11.cc.override { - name = "gnat"; - langC = true; - langCC = false; - langAda = true; - profiledCompiler = false; - # As per upstream instructions building a cross compiler - # should be done with a (native) compiler of the same version. - # If we are cross-compiling GNAT, we may as well do the same. - gnat-bootstrap = - if stdenv.hostPlatform == stdenv.targetPlatform - && stdenv.buildPlatform == stdenv.hostPlatform - then buildPackages.gnat-bootstrap11 - else buildPackages.gnat11; - }); + gnat11 = wrapCC ( + gcc11.cc.override { + name = "gnat"; + langC = true; + langCC = false; + langAda = true; + profiledCompiler = false; + # As per upstream instructions building a cross compiler + # should be done with a (native) compiler of the same version. + # If we are cross-compiling GNAT, we may as well do the same. + gnat-bootstrap = + if stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform then + buildPackages.gnat-bootstrap11 + else + buildPackages.gnat11; + } + ); - gnat12 = wrapCC (gcc12.cc.override { - name = "gnat"; - langC = true; - langCC = false; - langAda = true; - profiledCompiler = false; - # As per upstream instructions building a cross compiler - # should be done with a (native) compiler of the same version. - # If we are cross-compiling GNAT, we may as well do the same. - gnat-bootstrap = - if stdenv.hostPlatform == stdenv.targetPlatform - && stdenv.buildPlatform == stdenv.hostPlatform - then buildPackages.gnat-bootstrap12 - else buildPackages.gnat12; - stdenv = - if stdenv.hostPlatform == stdenv.targetPlatform - && stdenv.buildPlatform == stdenv.hostPlatform - && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 - then overrideCC stdenv gnat-bootstrap12 - else stdenv; - }); + gnat12 = wrapCC ( + gcc12.cc.override { + name = "gnat"; + langC = true; + langCC = false; + langAda = true; + profiledCompiler = false; + # As per upstream instructions building a cross compiler + # should be done with a (native) compiler of the same version. + # If we are cross-compiling GNAT, we may as well do the same. + gnat-bootstrap = + if stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform then + buildPackages.gnat-bootstrap12 + else + buildPackages.gnat12; + stdenv = + if + stdenv.hostPlatform == stdenv.targetPlatform + && stdenv.buildPlatform == stdenv.hostPlatform + && stdenv.buildPlatform.isDarwin + && stdenv.buildPlatform.isx86_64 + then + overrideCC stdenv gnat-bootstrap12 + else + stdenv; + } + ); - gnat13 = wrapCC (gcc13.cc.override { - name = "gnat"; - langC = true; - langCC = false; - langAda = true; - profiledCompiler = false; - # As per upstream instructions building a cross compiler - # should be done with a (native) compiler of the same version. - # If we are cross-compiling GNAT, we may as well do the same. - gnat-bootstrap = - if stdenv.hostPlatform == stdenv.targetPlatform - && stdenv.buildPlatform == stdenv.hostPlatform - then buildPackages.gnat-bootstrap12 - else buildPackages.gnat13; - stdenv = - if stdenv.hostPlatform == stdenv.targetPlatform - && stdenv.buildPlatform == stdenv.hostPlatform - && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 - then overrideCC stdenv gnat-bootstrap12 - else stdenv; - }); + gnat13 = wrapCC ( + gcc13.cc.override { + name = "gnat"; + langC = true; + langCC = false; + langAda = true; + profiledCompiler = false; + # As per upstream instructions building a cross compiler + # should be done with a (native) compiler of the same version. + # If we are cross-compiling GNAT, we may as well do the same. + gnat-bootstrap = + if stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform then + buildPackages.gnat-bootstrap12 + else + buildPackages.gnat13; + stdenv = + if + stdenv.hostPlatform == stdenv.targetPlatform + && stdenv.buildPlatform == stdenv.hostPlatform + && stdenv.buildPlatform.isDarwin + && stdenv.buildPlatform.isx86_64 + then + overrideCC stdenv gnat-bootstrap12 + else + stdenv; + } + ); gnat-bootstrap = gnat-bootstrap12; - gnat-bootstrap11 = wrapCC (callPackage ../development/compilers/gnat-bootstrap { majorVersion = "11"; }); - gnat-bootstrap12 = wrapCCWith ({ - cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "12"; }; - } // lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { - bintools = bintoolsDualAs; - }); + gnat-bootstrap11 = wrapCC ( + callPackage ../development/compilers/gnat-bootstrap { majorVersion = "11"; } + ); + gnat-bootstrap12 = wrapCCWith ( + { + cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "12"; }; + } + // lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { bintools = bintoolsDualAs; } + ); gnat12Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat12; }); gnat13Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat13; }); gnatPackages = gnat12Packages; - inherit (gnatPackages) - gprbuild - gnatprove; + inherit (gnatPackages) gprbuild gnatprove; - gccgo = wrapCC (gcc.cc.override - { + gccgo = wrapCC ( + gcc.cc.override { name = "gccgo"; - langCC = true; #required for go. + langCC = true; # required for go. langC = true; langGo = true; langJit = true; profiledCompiler = false; - } // { - # not supported on darwin: https://github.com/golang/go/issues/463 - meta.broken = stdenv.hostPlatform.isDarwin; - }); + } + // { + # not supported on darwin: https://github.com/golang/go/issues/463 + meta.broken = stdenv.hostPlatform.isDarwin; + } + ); - gccgo12 = wrapCC (gcc12.cc.override - { + gccgo12 = wrapCC ( + gcc12.cc.override { name = "gccgo"; - langCC = true; #required for go. + langCC = true; # required for go. langC = true; langGo = true; langJit = true; profiledCompiler = false; - } // { - # not supported on darwin: https://github.com/golang/go/issues/463 - meta.broken = stdenv.hostPlatform.isDarwin; - }); + } + // { + # not supported on darwin: https://github.com/golang/go/issues/463 + meta.broken = stdenv.hostPlatform.isDarwin; + } + ); - gccgo13 = wrapCC (gcc13.cc.override - { + gccgo13 = wrapCC ( + gcc13.cc.override { name = "gccgo"; - langCC = true; #required for go. + langCC = true; # required for go. langC = true; langGo = true; langJit = true; profiledCompiler = false; - } // { - # not supported on darwin: https://github.com/golang/go/issues/463 - meta.broken = stdenv.hostPlatform.isDarwin; - }); - + } + // { + # not supported on darwin: https://github.com/golang/go/issues/463 + meta.broken = stdenv.hostPlatform.isDarwin; + } + ); # It would be better to match the default gcc so that there are no linking errors # when using C/C++ libraries in D packages, but right now versions >= 12 are broken. gdc = gdc11; - gdc11 = wrapCC (gcc11.cc.override { - name = "gdc"; - langCC = false; - langC = false; - langD = true; - profiledCompiler = false; - }); + gdc11 = wrapCC ( + gcc11.cc.override { + name = "gdc"; + langCC = false; + langC = false; + langD = true; + profiledCompiler = false; + } + ); } diff --git a/pkgs/by-name/gc/gcc/patches/default.nix b/pkgs/by-name/gc/gcc/patches/default.nix index 8f0c8f6..f8495f3 100644 --- a/pkgs/by-name/gc/gcc/patches/default.nix +++ b/pkgs/by-name/gc/gcc/patches/default.nix @@ -1,27 +1,29 @@ -{ lib, stdenv -, langC -, langAda -, langObjC -, langObjCpp -, langD -, langFortran -, langGo -, reproducibleBuild -, profiledCompiler -, langJit -, staticCompiler -, enableShared -, enableLTO -, version -, fetchpatch -, majorVersion -, targetPlatform -, hostPlatform -, noSysDirs -, buildPlatform -, fetchurl -, withoutTargetLibc -, threadsCross +{ + lib, + stdenv, + langC, + langAda, + langObjC, + langObjCpp, + langD, + langFortran, + langGo, + reproducibleBuild, + profiledCompiler, + langJit, + staticCompiler, + enableShared, + enableLTO, + version, + fetchpatch, + majorVersion, + targetPlatform, + hostPlatform, + noSysDirs, + buildPlatform, + fetchurl, + withoutTargetLibc, + threadsCross, }: let @@ -29,19 +31,19 @@ let atLeast12 = lib.versionAtLeast version "12"; atLeast11 = lib.versionAtLeast version "11"; atLeast10 = lib.versionAtLeast version "10"; - atLeast9 = lib.versionAtLeast version "9"; - atLeast8 = lib.versionAtLeast version "8"; - atLeast7 = lib.versionAtLeast version "7"; - atLeast6 = lib.versionAtLeast version "6"; - atLeast49 = lib.versionAtLeast version "4.9"; + atLeast9 = lib.versionAtLeast version "9"; + atLeast8 = lib.versionAtLeast version "8"; + atLeast7 = lib.versionAtLeast version "7"; + atLeast6 = lib.versionAtLeast version "6"; + atLeast49 = lib.versionAtLeast version "4.9"; is13 = majorVersion == "13"; is12 = majorVersion == "12"; is11 = majorVersion == "11"; is10 = majorVersion == "10"; - is9 = majorVersion == "9"; - is8 = majorVersion == "8"; - is7 = majorVersion == "7"; - is6 = majorVersion == "6"; + is9 = majorVersion == "9"; + is8 = majorVersion == "8"; + is7 = majorVersion == "7"; + is6 = majorVersion == "6"; is49 = majorVersion == "4" && lib.versions.minor version == "9"; is48 = majorVersion == "4" && lib.versions.minor version == "8"; inherit (lib) optionals optional; @@ -54,31 +56,39 @@ in # 3. Patches relevant only to gcc<12 # - ## 1. Patches relevant to gcc>=12 on every platform #################################### -[] +[ ] ++ optional (atLeast6 && !atLeast12) ./fix-bug-80431.patch ++ optional (targetPlatform != hostPlatform) ./libstdc++-target.patch ++ optionals (noSysDirs) ( - [(if atLeast12 then ./gcc-12-no-sys-dirs.patch else ./no-sys-dirs.patch)] ++ - ({ - "13" = [ ./13/no-sys-dirs-riscv.patch ./13/mangle-NIX_STORE-in-__FILE__.patch ]; - "12" = [ ./no-sys-dirs-riscv.patch ./12/mangle-NIX_STORE-in-__FILE__.patch ]; - "11" = [ ./no-sys-dirs-riscv.patch ]; - "10" = [ ./no-sys-dirs-riscv.patch ]; - "9" = [ ./no-sys-dirs-riscv-gcc9.patch ]; - }."${majorVersion}" or []) + [ (if atLeast12 then ./gcc-12-no-sys-dirs.patch else ./no-sys-dirs.patch) ] + ++ ( + { + "13" = [ + ./13/no-sys-dirs-riscv.patch + ./13/mangle-NIX_STORE-in-__FILE__.patch + ]; + "12" = [ + ./no-sys-dirs-riscv.patch + ./12/mangle-NIX_STORE-in-__FILE__.patch + ]; + "11" = [ ./no-sys-dirs-riscv.patch ]; + "10" = [ ./no-sys-dirs-riscv.patch ]; + "9" = [ ./no-sys-dirs-riscv-gcc9.patch ]; + } + ."${majorVersion}" or [ ] + ) ) ++ optional (atLeast12 && langAda) ./gnat-cflags-11.patch -++ optional langFortran (if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch) +++ optional langFortran ( + if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch +) ++ optional atLeast7 ./ppc-musl.patch ++ optional is12 ./12/lambda-ICE-PR109241.patch # backport ICE fix on ccache code ++ optional is13 ./13/ICE-PR110280.patch # backport ICE fix on const_unop ++ optional (atLeast9 && langD) ./libphobos.patch - - ## 2. Patches relevant to gcc>=12 on specific platforms #################################### ### Musl+Go+gcc12 @@ -121,48 +131,68 @@ in }) ] - ## Darwin # Fix detection of bootstrap compiler Ada support (cctools as) on Nix Darwin ++ optional (atLeast12 && stdenv.isDarwin && langAda) ./ada-cctools-as-detection-configure.patch # Use absolute path in GNAT dylib install names on Darwin -++ optionals (stdenv.isDarwin && langAda) ({ - "13" = [ ./gnat-darwin-dylib-install-name-13.patch ]; - "12" = [ ./gnat-darwin-dylib-install-name.patch ]; -}.${majorVersion} or []) +++ optionals (stdenv.isDarwin && langAda) ( + { + "13" = [ ./gnat-darwin-dylib-install-name-13.patch ]; + "12" = [ ./gnat-darwin-dylib-install-name.patch ]; + } + .${majorVersion} or [ ] +) # We only apply this patch when building a native toolchain for aarch64-darwin, as it breaks building # a foreign one: https://github.com/iains/gcc-12-branch/issues/18 -++ optionals (stdenv.isDarwin && stdenv.isAarch64 && buildPlatform == hostPlatform && hostPlatform == targetPlatform) ({ - "13" = [ (fetchpatch { - name = "gcc-13-darwin-aarch64-support.patch"; - url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3c5cbc8e9cf444a1967786af48e430588e1eb481/gcc/gcc-13.2.0.diff"; - sha256 = "sha256-Y5r3U3dwAFG6+b0TNCFd18PNxYu2+W/5zDbZ5cHvv+U="; - }) ]; - "12" = [ (fetchurl { - name = "gcc-12-darwin-aarch64-support.patch"; - url = "https://raw.githubusercontent.com/Homebrew/formula-patches/f1188b90d610e2ed170b22512ff7435ba5c891e2/gcc/gcc-12.3.0.diff"; - sha256 = "sha256-naL5ZNiurqfDBiPSU8PTbTmLqj25B+vjjiqc4fAFgYs="; - }) ]; - "11" = [ (fetchpatch { - # There are no upstream release tags in https://github.com/iains/gcc-11-branch. - # ff4bf32 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.4.0 - url = "https://github.com/iains/gcc-11-branch/compare/ff4bf326d03e750a8d4905ea49425fe7d15a04b8..gcc-11.4-darwin-r0.diff"; - hash = "sha256-6prPgR2eGVJs7vKd6iM1eZsEPCD1ShzLns2Z+29vlt4="; - }) ]; -}.${majorVersion} or []) - +++ + optionals + ( + stdenv.isDarwin + && stdenv.isAarch64 + && buildPlatform == hostPlatform + && hostPlatform == targetPlatform + ) + ( + { + "13" = [ + (fetchpatch { + name = "gcc-13-darwin-aarch64-support.patch"; + url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3c5cbc8e9cf444a1967786af48e430588e1eb481/gcc/gcc-13.2.0.diff"; + sha256 = "sha256-Y5r3U3dwAFG6+b0TNCFd18PNxYu2+W/5zDbZ5cHvv+U="; + }) + ]; + "12" = [ + (fetchurl { + name = "gcc-12-darwin-aarch64-support.patch"; + url = "https://raw.githubusercontent.com/Homebrew/formula-patches/f1188b90d610e2ed170b22512ff7435ba5c891e2/gcc/gcc-12.3.0.diff"; + sha256 = "sha256-naL5ZNiurqfDBiPSU8PTbTmLqj25B+vjjiqc4fAFgYs="; + }) + ]; + "11" = [ + (fetchpatch { + # There are no upstream release tags in https://github.com/iains/gcc-11-branch. + # ff4bf32 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.4.0 + url = "https://github.com/iains/gcc-11-branch/compare/ff4bf326d03e750a8d4905ea49425fe7d15a04b8..gcc-11.4-darwin-r0.diff"; + hash = "sha256-6prPgR2eGVJs7vKd6iM1eZsEPCD1ShzLns2Z+29vlt4="; + }) + ]; + } + .${majorVersion} or [ ] + ) ## Windows # Obtain latest patch with ../update-mcfgthread-patches.sh -++ optional (atLeast6 && !atLeast13 && !withoutTargetLibc && targetPlatform.isMinGW && threadsCross.model == "mcf") - (./. + "/${majorVersion}/Added-mcf-thread-model-support-from-mcfgthread.patch") - - - +++ optional ( + atLeast6 + && !atLeast13 + && !withoutTargetLibc + && targetPlatform.isMinGW + && threadsCross.model == "mcf" +) (./. + "/${majorVersion}/Added-mcf-thread-model-support-from-mcfgthread.patch") ############################################################################## ## @@ -174,9 +204,6 @@ in ## ############################################################################## - - - ## gcc 11.0 and older ############################################################################## # libgcc’s `configure` script misdetects aarch64-darwin, resulting in an invalid deployment target. @@ -185,19 +212,20 @@ in # openjdk build fails without this on -march=opteron; is upstream in gcc12 ++ optionals (is11) [ ./11/gcc-issue-103910.patch ] - - ## gcc 10.0 and older ############################################################################## ++ optional (langAda && (is9 || is10)) ./gnat-cflags.patch -++ optional (is10 && buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch { - url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch"; - sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA="; -}) +++ + optional (is10 && buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) + (fetchpatch { + url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch"; + sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA="; + }) # Fix undefined symbol errors when building older versions with clang -++ optional (!atLeast11 && stdenv.cc.isClang && stdenv.hostPlatform.isDarwin) ./clang-genconditions.patch - +++ optional ( + !atLeast11 && stdenv.cc.isClang && stdenv.hostPlatform.isDarwin +) ./clang-genconditions.patch ## gcc 9.0 and older ############################################################################## @@ -208,7 +236,6 @@ in # which is not supported by the clang integrated assembler used by default on Darwin. ++ optional (is9 && hostPlatform.isDarwin) ./9/gcc9-darwin-as-gstabs.patch - ## gcc 8.0 and older ############################################################################## # for 49 this is applied later @@ -222,12 +249,14 @@ in # Make avr-gcc8 build on aarch64-darwin # avr-gcc8 is maintained for the `qmk` package # https://github.com/osx-cross/homebrew-avr/blob/main/Formula/avr-gcc%408.rb#L69 -++ optional (is8 && targetPlatform.isAvr && hostPlatform.isDarwin && hostPlatform.isAarch64) ./8/avr-gcc-8-darwin.patch - +++ optional ( + is8 && targetPlatform.isAvr && hostPlatform.isDarwin && hostPlatform.isAarch64 +) ./8/avr-gcc-8-darwin.patch ## gcc 7.0 and older ############################################################################## -++ optional (is7 && hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied +++ optional (is7 && hostPlatform != buildPlatform) (fetchpatch { + # XXX: Refine when this should be applied url = "https://git.busybox.net/buildroot/plain/package/gcc/7.1.0/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02"; sha256 = "0mrvxsdwip2p3l17dscpc1x8vhdsciqw1z5q9i6p5g9yg1cqnmgs"; }) @@ -245,9 +274,9 @@ in url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; }) -++ optional ((is6 || is7 || is8) && !atLeast9 && targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch - - +++ optional ( + (is6 || is7 || is8) && !atLeast9 && targetPlatform.libc == "musl" +) ./libgomp-dont-force-initial-exec.patch ## gcc 6.0 and older ############################################################################## @@ -263,7 +292,9 @@ in # The clang-based assembler used in darwin.cctools-llvm (LLVM >11) does not support piping input. # Fortunately, it does not exhibit the problem GCC has with the cctools assembler. # This patch can be dropped should darwin.cctools-llvm ever implement support. -++ optional (!atLeast7 && hostPlatform.isDarwin && lib.versionAtLeast (lib.getVersion stdenv.cc) "12") ./4.9/darwin-clang-as.patch +++ optional ( + !atLeast7 && hostPlatform.isDarwin && lib.versionAtLeast (lib.getVersion stdenv.cc) "12" +) ./4.9/darwin-clang-as.patch # Building libstdc++ with flat namespaces results in trying to link CoreFoundation, which # defaults to the impure, system location and causes the build to fail. @@ -287,21 +318,70 @@ in ./struct-sigaltstack-4.9.patch ] # Retpoline patches pulled from the branch hjl/indirect/gcc-4_9-branch (by H.J. Lu, the author of GCC upstream retpoline commits) -++ optionals is49 - (builtins.map ({commit, sha256}: fetchpatch {url = "https://github.com/hjl-tools/gcc/commit/${commit}.patch"; inherit sha256;}) - [{ commit = "e623d21608e96ecd6b65f0d06312117d20488a38"; sha256 = "1ix8i4d2r3ygbv7npmsdj790rhxqrnfwcqzv48b090r9c3ij8ay3"; } - { commit = "2015a09e332309f12de1dadfe179afa6a29368b8"; sha256 = "0xcfs0cbb63llj2gbcdrvxim79ax4k4aswn0a3yjavxsj71s1n91"; } - { commit = "6b11591f4494f705e8746e7d58b7f423191f4e92"; sha256 = "0aydyhsm2ig0khgbp27am7vq7liyqrq6kfhfi2ki0ij0ab1hfbga"; } - { commit = "203c7d9c3e9cb0f88816b481ef8e7e87b3ecc373"; sha256 = "0wqn16y7wy5kg8ngfcni5qdwfphl01axczibbk49bxclwnzvldqa"; } - { commit = "f039c6f284b2c9ce97c8353d6034978795c4872e"; sha256 = "13fkgdb17lpyxfksz1zanxhgpsm0jrss9w61nbl7an4im22hz7ci"; } - { commit = "ed42606bdab1c5d9e5ad828cd6fe1a0557f193b7"; sha256 = "0gdnn8v3p03imj3qga2mzdhpgbmjcklkxdl97jvz5xia2ikzknxm"; } - { commit = "5278e062ef292fd2fbf987d25389785f4c5c0f99"; sha256 = "0j81x758wf8v7j4rx5wc1cy7yhkvhlhv3wmnarwakxiwsspq0vrs"; } - { commit = "76f1ffbbb6cd9f6ecde6c82cd16e20a27242e890"; sha256 = "1py56y6gp7fjf4f8bbsfwh5bs1gnmlqda1ycsmnwlzfm0cshdp0c"; } - { commit = "4ca48b2b688b135c0390f54ea9077ef10aedd52c"; sha256 = "15r019pzr3k0lpgyvdc92c8fayw8b5lrzncna4bqmamcsdz7vsaw"; } - { commit = "98c7bf9ddc80db965d69d61521b1c7a1cec32d9a"; sha256 = "1d7pfdv1q23nf0wadw7jbp6d6r7pnzjpbyxgbdfv7j1vr9l1bp60"; } - { commit = "3dc76b53ad896494ca62550a7a752fecbca3f7a2"; sha256 = "0jvdzfpvfdmklfcjwqblwq1i22iqis7ljpvm7adra5d7zf2xk7xz"; } - { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } - { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }]) +++ optionals is49 ( + builtins.map + ( + { commit, sha256 }: + fetchpatch { + url = "https://github.com/hjl-tools/gcc/commit/${commit}.patch"; + inherit sha256; + } + ) + [ + { + commit = "e623d21608e96ecd6b65f0d06312117d20488a38"; + sha256 = "1ix8i4d2r3ygbv7npmsdj790rhxqrnfwcqzv48b090r9c3ij8ay3"; + } + { + commit = "2015a09e332309f12de1dadfe179afa6a29368b8"; + sha256 = "0xcfs0cbb63llj2gbcdrvxim79ax4k4aswn0a3yjavxsj71s1n91"; + } + { + commit = "6b11591f4494f705e8746e7d58b7f423191f4e92"; + sha256 = "0aydyhsm2ig0khgbp27am7vq7liyqrq6kfhfi2ki0ij0ab1hfbga"; + } + { + commit = "203c7d9c3e9cb0f88816b481ef8e7e87b3ecc373"; + sha256 = "0wqn16y7wy5kg8ngfcni5qdwfphl01axczibbk49bxclwnzvldqa"; + } + { + commit = "f039c6f284b2c9ce97c8353d6034978795c4872e"; + sha256 = "13fkgdb17lpyxfksz1zanxhgpsm0jrss9w61nbl7an4im22hz7ci"; + } + { + commit = "ed42606bdab1c5d9e5ad828cd6fe1a0557f193b7"; + sha256 = "0gdnn8v3p03imj3qga2mzdhpgbmjcklkxdl97jvz5xia2ikzknxm"; + } + { + commit = "5278e062ef292fd2fbf987d25389785f4c5c0f99"; + sha256 = "0j81x758wf8v7j4rx5wc1cy7yhkvhlhv3wmnarwakxiwsspq0vrs"; + } + { + commit = "76f1ffbbb6cd9f6ecde6c82cd16e20a27242e890"; + sha256 = "1py56y6gp7fjf4f8bbsfwh5bs1gnmlqda1ycsmnwlzfm0cshdp0c"; + } + { + commit = "4ca48b2b688b135c0390f54ea9077ef10aedd52c"; + sha256 = "15r019pzr3k0lpgyvdc92c8fayw8b5lrzncna4bqmamcsdz7vsaw"; + } + { + commit = "98c7bf9ddc80db965d69d61521b1c7a1cec32d9a"; + sha256 = "1d7pfdv1q23nf0wadw7jbp6d6r7pnzjpbyxgbdfv7j1vr9l1bp60"; + } + { + commit = "3dc76b53ad896494ca62550a7a752fecbca3f7a2"; + sha256 = "0jvdzfpvfdmklfcjwqblwq1i22iqis7ljpvm7adra5d7zf2xk7xz"; + } + { + commit = "1e961ed49b18e176c7457f53df2433421387c23b"; + sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; + } + { + commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; + sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; + } + ] +) ++ optional (is49 && !atLeast6) [ # gcc-11 compatibility @@ -313,7 +393,6 @@ in }) ] - ## gcc 4.8 only ############################################################################## ++ optional (!atLeast49 && hostPlatform.isDarwin) ./gfortran-darwin-NXConstStr.patch diff --git a/pkgs/by-name/gc/gcc/versions.nix b/pkgs/by-name/gc/gcc/versions.nix index 261ffc6..3ded842 100644 --- a/pkgs/by-name/gc/gcc/versions.nix +++ b/pkgs/by-name/gc/gcc/versions.nix @@ -4,34 +4,37 @@ let "12" = "12.3.0"; "11" = "11.4.0"; "10" = "10.5.0"; - "9" = "9.5.0"; - "8" = "8.5.0"; - "7" = "7.5.0"; - "6" = "6.5.0"; - "4.9"= "4.9.4"; - "4.8"= "4.8.5"; + "9" = "9.5.0"; + "8" = "8.5.0"; + "7" = "7.5.0"; + "6" = "6.5.0"; + "4.9" = "4.9.4"; + "4.8" = "4.8.5"; }; - fromMajorMinor = majorMinorVersion: - majorMinorToVersionMap."${majorMinorVersion}"; + fromMajorMinor = majorMinorVersion: majorMinorToVersionMap."${majorMinorVersion}"; # TODO(amjoseph): convert older hashes to SRI form - srcHashForVersion = version: { - # NOTE: there is no need to remove hashes of obsolete minor - # versions when adding a new minor version. - "13.2.0" = "sha256-4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o="; - "12.3.0" = "sha256-lJpdT5nnhkIak7Uysi/6tVeN5zITaZdbka7Jet/ajDs="; - "11.4.0" = "sha256-Py2yIrAH6KSiPNW6VnJu8I6LHx6yBV7nLBQCzqc6jdk="; - "10.5.0" = "sha256-JRCVQ/30bzl8NHtdi3osflaUpaUczkucbh6opxyjB8E="; - "9.5.0" = "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7"; - "8.5.0" = "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k"; - "7.5.0" = "0qg6kqc5l72hpnj4vr6l0p69qav0rh4anlkk3y55540zy3klc6dq"; - "6.5.0" = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby"; - "4.9.4" = "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"; - "4.8.5" = "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"; - }."${version}"; + srcHashForVersion = + version: + { + # NOTE: there is no need to remove hashes of obsolete minor + # versions when adding a new minor version. + "13.2.0" = "sha256-4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o="; + "12.3.0" = "sha256-lJpdT5nnhkIak7Uysi/6tVeN5zITaZdbka7Jet/ajDs="; + "11.4.0" = "sha256-Py2yIrAH6KSiPNW6VnJu8I6LHx6yBV7nLBQCzqc6jdk="; + "10.5.0" = "sha256-JRCVQ/30bzl8NHtdi3osflaUpaUczkucbh6opxyjB8E="; + "9.5.0" = "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7"; + "8.5.0" = "0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k"; + "7.5.0" = "0qg6kqc5l72hpnj4vr6l0p69qav0rh4anlkk3y55540zy3klc6dq"; + "6.5.0" = "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby"; + "4.9.4" = "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc"; + "4.8.5" = "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"; + } + ."${version}"; -in { +in +{ inherit fromMajorMinor; inherit srcHashForVersion; allMajorVersions = builtins.attrNames majorMinorToVersionMap; diff --git a/pkgs/by-name/gd/gd/default.nix b/pkgs/by-name/gd/gd/default.nix index af96d9d..86a000c 100644 --- a/pkgs/by-name/gd/gd/default.nix +++ b/pkgs/by-name/gd/gd/default.nix @@ -1,20 +1,21 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoconf -, automake -, pkg-config -, zlib -, libpng -, libjpeg -, libwebp -, libtiff -, withXorg ? true -, libXpm -, libavif -, fontconfig -, freetype +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoconf, + automake, + pkg-config, + zlib, + libpng, + libjpeg, + libwebp, + libtiff, + withXorg ? true, + libXpm, + libavif, + fontconfig, + freetype, }: stdenv.mkDerivation rec { @@ -27,7 +28,8 @@ stdenv.mkDerivation rec { }; patches = [ - (fetchpatch { # included in > 2.3.3 + (fetchpatch { + # included in > 2.3.3 name = "restore-GD_FLIP.patch"; url = "https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a.diff"; sha256 = "XRXR3NOkbEub3Nybaco2duQk0n8vxif5mTl2AUacn9w="; @@ -36,18 +38,37 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - configureFlags = [ - "--enable-gd-formats" - ] + configureFlags = + [ "--enable-gd-formats" ] # -pthread gets passed to clang, causing warnings ++ lib.optional stdenv.isDarwin "--enable-werror=no"; - nativeBuildInputs = [ autoconf automake pkg-config ]; + nativeBuildInputs = [ + autoconf + automake + pkg-config + ]; - buildInputs = [ zlib freetype libpng libjpeg libwebp libtiff libavif ] - ++ lib.optionals withXorg [ fontconfig libXpm ]; + buildInputs = + [ + zlib + freetype + libpng + libjpeg + libwebp + libtiff + libavif + ] + ++ lib.optionals withXorg [ + fontconfig + libXpm + ]; - outputs = [ "bin" "dev" "out" ]; + outputs = [ + "bin" + "dev" + "out" + ]; postFixup = '' moveToOutput "bin/gdlib-config" $dev diff --git a/pkgs/by-name/gd/gd/packages.nix b/pkgs/by-name/gd/gd/packages.nix index 5d7d62f..0d25043 100644 --- a/pkgs/by-name/gd/gd/packages.nix +++ b/pkgs/by-name/gd/gd/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - gd = callPackage ../development/libraries/gd { - automake = automake115x; - }; +with pkgs; { + gd = callPackage ../development/libraries/gd { automake = automake115x; }; } diff --git a/pkgs/by-name/gd/gdb/default.nix b/pkgs/by-name/gd/gdb/default.nix index e607967..33ecb1e 100644 --- a/pkgs/by-name/gd/gdb/default.nix +++ b/pkgs/by-name/gd/gdb/default.nix @@ -1,29 +1,53 @@ -{ lib, stdenv, targetPackages +{ + lib, + stdenv, + targetPackages, -# Build time -, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages + # Build time + fetchurl, + fetchpatch, + pkg-config, + perl, + texinfo, + setupDebugInfoDirs, + buildPackages, -# Run time -, ncurses, readline, gmp, mpfr, expat, libipt, zlib, zstd, xz, dejagnu, sourceHighlight, libiconv + # Run time + ncurses, + readline, + gmp, + mpfr, + expat, + libipt, + zlib, + zstd, + xz, + dejagnu, + sourceHighlight, + libiconv, -, pythonSupport ? stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.hostPlatform.isCygwin, python3 ? null -, enableDebuginfod ? lib.meta.availableOn stdenv.hostPlatform elfutils, elfutils -, guile ? null -, hostCpuOnly ? false -, enableSim ? false -, safePaths ? [ - # $debugdir:$datadir/auto-load are whitelisted by default by GDB - "$debugdir" "$datadir/auto-load" - # targetPackages so we get the right libc when cross-compiling and using buildPackages.gdb - targetPackages.stdenv.cc.cc.lib - ] -, writeScript + pythonSupport ? stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.hostPlatform.isCygwin, + python3 ? null, + enableDebuginfod ? lib.meta.availableOn stdenv.hostPlatform elfutils, + elfutils, + guile ? null, + hostCpuOnly ? false, + enableSim ? false, + safePaths ? [ + # $debugdir:$datadir/auto-load are whitelisted by default by GDB + "$debugdir" + "$datadir/auto-load" + # targetPackages so we get the right libc when cross-compiling and using buildPackages.gdb + targetPackages.stdenv.cc.cc.lib + ], + writeScript, }: let basename = "gdb"; - targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) - "${stdenv.targetPlatform.config}-"; + targetPrefix = lib.optionalString ( + stdenv.targetPlatform != stdenv.hostPlatform + ) "${stdenv.targetPlatform.config}-"; in assert pythonSupport -> python3 != null; @@ -37,25 +61,43 @@ stdenv.mkDerivation rec { hash = "sha256-LU3YBh2N7RK2xj9V5FNEiB6CJhBfTSqbI0BA76XOd3I="; }; - postPatch = lib.optionalString stdenv.isDarwin '' - substituteInPlace gdb/darwin-nat.c \ - --replace '#include "bfd/mach-o.h"' '#include "mach-o.h"' - '' + lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace sim/erc32/erc32.c --replace sys/fcntl.h fcntl.h - substituteInPlace sim/erc32/interf.c --replace sys/fcntl.h fcntl.h - substituteInPlace sim/erc32/sis.c --replace sys/fcntl.h fcntl.h - substituteInPlace sim/ppc/emul_unix.c --replace sys/termios.h termios.h - ''; + postPatch = + lib.optionalString stdenv.isDarwin '' + substituteInPlace gdb/darwin-nat.c \ + --replace '#include "bfd/mach-o.h"' '#include "mach-o.h"' + '' + + lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace sim/erc32/erc32.c --replace sys/fcntl.h fcntl.h + substituteInPlace sim/erc32/interf.c --replace sys/fcntl.h fcntl.h + substituteInPlace sim/erc32/sis.c --replace sys/fcntl.h fcntl.h + substituteInPlace sim/ppc/emul_unix.c --replace sys/termios.h termios.h + ''; patches = [ ./debug-info-from-env.patch - ] ++ lib.optionals stdenv.isDarwin [ - ./darwin-target-match.patch + ] ++ lib.optionals stdenv.isDarwin [ ./darwin-target-match.patch ]; + + nativeBuildInputs = [ + pkg-config + texinfo + perl + setupDebugInfoDirs ]; - nativeBuildInputs = [ pkg-config texinfo perl setupDebugInfoDirs ]; - - buildInputs = [ ncurses readline gmp mpfr expat libipt zlib zstd xz guile sourceHighlight ] + buildInputs = + [ + ncurses + readline + gmp + mpfr + expat + libipt + zlib + zstd + xz + guile + sourceHighlight + ] ++ lib.optional pythonSupport python3 ++ lib.optional doCheck dejagnu ++ lib.optional enableDebuginfod (elfutils.override { enableDebuginfod = true; }) @@ -72,7 +114,11 @@ stdenv.mkDerivation rec { env.NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral"; - configurePlatforms = [ "build" "host" "target" ]; + configurePlatforms = [ + "build" + "host" + "target" + ]; preConfigure = '' # remove precompiled docs, required for man gdbinit to mention /etc/gdb/gdbinit @@ -88,39 +134,46 @@ stdenv.mkDerivation rec { ''; configureScript = "../configure"; - configureFlags = with lib; [ - # Set the program prefix to the current targetPrefix. - # This ensures that the prefix always conforms to - # nixpkgs' expectations instead of relying on the build - # system which only receives `config` which is merely a - # subset of the platform description. - "--program-prefix=${targetPrefix}" + configureFlags = + with lib; + [ + # Set the program prefix to the current targetPrefix. + # This ensures that the prefix always conforms to + # nixpkgs' expectations instead of relying on the build + # system which only receives `config` which is merely a + # subset of the platform description. + "--program-prefix=${targetPrefix}" - "--disable-werror" - ] ++ lib.optional (!hostCpuOnly) "--enable-targets=all" ++ [ - "--enable-64-bit-bfd" - "--disable-install-libbfd" - "--disable-shared" "--enable-static" - "--with-system-zlib" - "--with-system-readline" + "--disable-werror" + ] + ++ lib.optional (!hostCpuOnly) "--enable-targets=all" + ++ [ + "--enable-64-bit-bfd" + "--disable-install-libbfd" + "--disable-shared" + "--enable-static" + "--with-system-zlib" + "--with-system-readline" - "--with-system-gdbinit=/etc/gdb/gdbinit" - "--with-system-gdbinit-dir=/etc/gdb/gdbinit.d" + "--with-system-gdbinit=/etc/gdb/gdbinit" + "--with-system-gdbinit-dir=/etc/gdb/gdbinit.d" - "--with-gmp=${gmp.dev}" - "--with-mpfr=${mpfr.dev}" - "--with-expat" "--with-libexpat-prefix=${expat.dev}" - "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}" - ] ++ lib.optional (!pythonSupport) "--without-python" + "--with-gmp=${gmp.dev}" + "--with-mpfr=${mpfr.dev}" + "--with-expat" + "--with-libexpat-prefix=${expat.dev}" + "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}" + ] + ++ lib.optional (!pythonSupport) "--without-python" ++ lib.optional stdenv.hostPlatform.isMusl "--disable-nls" ++ lib.optional stdenv.hostPlatform.isStatic "--disable-inprocess-agent" ++ lib.optional enableDebuginfod "--with-debuginfod=yes" ++ lib.optional (!enableSim) "--disable-sim"; - postInstall = - '' # Remove Info files already provided by Binutils and other packages. - rm -v $out/share/info/bfd.info - ''; + postInstall = '' + # Remove Info files already provided by Binutils and other packages. + rm -v $out/share/info/bfd.info + ''; # TODO: Investigate & fix the test failures. doCheck = false; @@ -153,7 +206,11 @@ stdenv.mkDerivation rec { license = lib.licenses.gpl3Plus; # GDB upstream does not support ARM darwin - platforms = with platforms; linux ++ cygwin ++ ["x86_64-darwin"]; - maintainers = with maintainers; [ pierron globin lsix ]; + platforms = with platforms; linux ++ cygwin ++ [ "x86_64-darwin" ]; + maintainers = with maintainers; [ + pierron + globin + lsix + ]; }; } diff --git a/pkgs/by-name/gd/gdb/packages.nix b/pkgs/by-name/gd/gdb/packages.nix index d933365..cfc9828 100644 --- a/pkgs/by-name/gd/gdb/packages.nix +++ b/pkgs/by-name/gd/gdb/packages.nix @@ -1,10 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ - gdb = callPackage ./. { - guile = null; - }; +with pkgs; { + gdb = callPackage ./. { guile = null; }; gdbHostCpuOnly = gdb.override { hostCpuOnly = true; }; } diff --git a/pkgs/by-name/gd/gdbm/default.nix b/pkgs/by-name/gd/gdbm/default.nix index e1a3def..fe73b35 100644 --- a/pkgs/by-name/gd/gdbm/default.nix +++ b/pkgs/by-name/gd/gdbm/default.nix @@ -1,4 +1,8 @@ -{ stdenv, lib, fetchurl }: +{ + stdenv, + lib, + fetchurl, +}: stdenv.mkDerivation rec { pname = "gdbm"; @@ -18,11 +22,11 @@ stdenv.mkDerivation rec { # failing on a link in a chmod -w directory, which cygwin # apparently allows. postPatch = lib.optionalString stdenv.buildPlatform.isCygwin '' - substituteInPlace tests/Makefile.in --replace \ - '_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la' \ - '_LDADD = ../compat/libgdbm_compat.la ../src/libgdbm.la' - substituteInPlace tests/testsuite.at --replace \ - 'm4_include([dbmfetch03.at])' "" + substituteInPlace tests/Makefile.in --replace \ + '_LDADD = ../src/libgdbm.la ../compat/libgdbm_compat.la' \ + '_LDADD = ../compat/libgdbm_compat.la ../src/libgdbm.la' + substituteInPlace tests/testsuite.at --replace \ + 'm4_include([dbmfetch03.at])' "" ''; enableParallelBuilding = true; @@ -42,23 +46,23 @@ stdenv.mkDerivation rec { meta = with lib; { description = "GNU dbm key/value database library"; longDescription = '' - GNU dbm (or GDBM, for short) is a library of database functions that - use extensible hashing and work similar to the standard UNIX dbm. - These routines are provided to a programmer needing to create and - manipulate a hashed database. + GNU dbm (or GDBM, for short) is a library of database functions that + use extensible hashing and work similar to the standard UNIX dbm. + These routines are provided to a programmer needing to create and + manipulate a hashed database. - The basic use of GDBM is to store key/data pairs in a data file. - Each key must be unique and each key is paired with only one data - item. + The basic use of GDBM is to store key/data pairs in a data file. + Each key must be unique and each key is paired with only one data + item. - The library provides primitives for storing key/data pairs, - searching and retrieving the data by its key and deleting a key - along with its data. It also support sequential iteration over all - key/data pairs in a database. + The library provides primitives for storing key/data pairs, + searching and retrieving the data by its key and deleting a key + along with its data. It also support sequential iteration over all + key/data pairs in a database. - For compatibility with programs using old UNIX dbm function, the - package also provides traditional dbm and ndbm interfaces. - ''; + For compatibility with programs using old UNIX dbm function, the + package also provides traditional dbm and ndbm interfaces. + ''; homepage = "https://www.gnu.org/software/gdbm/"; license = licenses.gpl3Plus; platforms = platforms.all; diff --git a/pkgs/by-name/ge/getopt/default.nix b/pkgs/by-name/ge/getopt/default.nix index 6b6cbf6..7bad242 100644 --- a/pkgs/by-name/ge/getopt/default.nix +++ b/pkgs/by-name/ge/getopt/default.nix @@ -1,4 +1,8 @@ -{lib, stdenv, fetchurl}: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "getopt"; diff --git a/pkgs/by-name/ge/gettext/default.nix b/pkgs/by-name/ge/gettext/default.nix index f4757e9..917c5f4 100644 --- a/pkgs/by-name/ge/gettext/default.nix +++ b/pkgs/by-name/ge/gettext/default.nix @@ -1,4 +1,11 @@ -{ stdenv, lib, fetchurl, libiconv, xz, bash, path +{ + stdenv, + lib, + fetchurl, + libiconv, + xz, + bash, + path, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -21,46 +28,56 @@ stdenv.mkDerivation rec { ./0001-msginit-Do-not-use-POT-Creation-Date.patch ]; - outputs = [ "out" "man" "doc" "info" ]; + outputs = [ + "out" + "man" + "doc" + "info" + ]; hardeningDisable = [ "format" ]; LDFLAGS = lib.optionalString stdenv.isSunOS "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec"; - configureFlags = [ - "--disable-csharp" "--with-xz" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # On cross building, gettext supposes that the wchar.h from libc - # does not fulfill gettext needs, so it tries to work with its - # own wchar.h file, which does not cope well with the system's - # wchar.h and stddef.h (gcc-4.3 - glibc-2.9) - "gl_cv_func_wcwidth_works=yes" - ]; + configureFlags = + [ + "--disable-csharp" + "--with-xz" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # On cross building, gettext supposes that the wchar.h from libc + # does not fulfill gettext needs, so it tries to work with its + # own wchar.h file, which does not cope well with the system's + # wchar.h and stddef.h (gcc-4.3 - glibc-2.9) + "gl_cv_func_wcwidth_works=yes" + ]; - postPatch = '' - substituteAllInPlace gettext-runtime/src/gettext.sh.in - substituteInPlace gettext-tools/projects/KDE/trigger --replace "/bin/pwd" pwd - substituteInPlace gettext-tools/projects/GNOME/trigger --replace "/bin/pwd" pwd - substituteInPlace gettext-tools/src/project-id --replace "/bin/pwd" pwd - '' + lib.optionalString stdenv.hostPlatform.isCygwin '' - sed -i -e "s/\(cldr_plurals_LDADD = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in - sed -i -e "s/\(libgettextsrc_la_LDFLAGS = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in - '' + lib.optionalString stdenv.hostPlatform.isMinGW '' - sed -i "s/@GNULIB_CLOSE@/1/" */*/unistd.in.h - ''; + postPatch = + '' + substituteAllInPlace gettext-runtime/src/gettext.sh.in + substituteInPlace gettext-tools/projects/KDE/trigger --replace "/bin/pwd" pwd + substituteInPlace gettext-tools/projects/GNOME/trigger --replace "/bin/pwd" pwd + substituteInPlace gettext-tools/src/project-id --replace "/bin/pwd" pwd + '' + + lib.optionalString stdenv.hostPlatform.isCygwin '' + sed -i -e "s/\(cldr_plurals_LDADD = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in + sed -i -e "s/\(libgettextsrc_la_LDFLAGS = \)/\\1..\/gnulib-lib\/libxml_rpl.la /" gettext-tools/src/Makefile.in + '' + + lib.optionalString stdenv.hostPlatform.isMinGW '' + sed -i "s/@GNULIB_CLOSE@/1/" */*/unistd.in.h + ''; strictDeps = true; nativeBuildInputs = [ xz xz.bin ]; - buildInputs = lib.optionals (!stdenv.hostPlatform.isMinGW) [ - bash - ] - ++ lib.optionals (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) [ - # HACK, see #10874 (and 14664) - libiconv - ]; + buildInputs = + lib.optionals (!stdenv.hostPlatform.isMinGW) [ bash ] + ++ lib.optionals (!stdenv.isLinux && !stdenv.hostPlatform.isCygwin) [ + # HACK, see #10874 (and 14664) + libiconv + ]; setupHooks = [ # TODO: don't use relative path @@ -98,12 +115,13 @@ stdenv.mkDerivation rec { homepage = "https://www.gnu.org/software/gettext/"; - maintainers = with maintainers; [ zimbatm vrthra ]; + maintainers = with maintainers; [ + zimbatm + vrthra + ]; license = licenses.gpl2Plus; platforms = platforms.all; }; } -// lib.optionalAttrs stdenv.isDarwin { - makeFlags = [ "CFLAGS=-D_FORTIFY_SOURCE=0" ]; -} +// lib.optionalAttrs stdenv.isDarwin { makeFlags = [ "CFLAGS=-D_FORTIFY_SOURCE=0" ]; } diff --git a/pkgs/by-name/ge/gettext/packages.nix b/pkgs/by-name/ge/gettext/packages.nix index ce3a167..da0c5e4 100644 --- a/pkgs/by-name/ge/gettext/packages.nix +++ b/pkgs/by-name/ge/gettext/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gettext = callPackage ./. { }; # On non-GNU systems we need GNU Gettext for libintl. libintl = if stdenv.hostPlatform.libc != "glibc" then gettext else null; diff --git a/pkgs/by-name/gh/ghostscript/default.nix b/pkgs/by-name/gh/ghostscript/default.nix index cfb3cae..011ae6b 100644 --- a/pkgs/by-name/gh/ghostscript/default.nix +++ b/pkgs/by-name/gh/ghostscript/default.nix @@ -1,31 +1,32 @@ -{ config -, stdenv -, lib -, fetchurl -, pkg-config -, zlib -, expat -, openssl -, autoconf -, libjpeg -, libpng -, libtiff -, freetype -, fontconfig -, libpaper -, jbig2dec -, libiconv -, ijs -, lcms2 -, callPackage -, bash -, buildPackages -, openjpeg -, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin) -, cups -, x11Support ? cupsSupport -, xorg # with CUPS, X11 only adds very little -, dynamicDrivers ? true +{ + config, + stdenv, + lib, + fetchurl, + pkg-config, + zlib, + expat, + openssl, + autoconf, + libjpeg, + libpng, + libtiff, + freetype, + fontconfig, + libpaper, + jbig2dec, + libiconv, + ijs, + lcms2, + callPackage, + bash, + buildPackages, + openjpeg, + cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), + cups, + x11Support ? cupsSupport, + xorg, # with CUPS, X11 only adds very little + dynamicDrivers ? true, # for passthru.tests # , graphicsmagick @@ -64,7 +65,9 @@ stdenv.mkDerivation rec { version = "10.02.1"; src = fetchurl { - url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${lib.replaceStrings ["."] [""] version}/ghostscript-${version}.tar.xz"; + url = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${ + lib.replaceStrings [ "." ] [ "" ] version + }/ghostscript-${version}.tar.xz"; hash = "sha512-7g91TBvYoYQorRTqo+rYD/i5YnWvUBLnqDhPHxBJDaBW7smuPMeRp6E6JOFuVN9bzN0QnH1ToUU0u9c2CjALEQ="; }; @@ -73,26 +76,48 @@ stdenv.mkDerivation rec { ./doc-no-ref.diff ]; - outputs = [ "out" "man" "doc" ]; + outputs = [ + "out" + "man" + "doc" + ]; enableParallelBuilding = true; - depsBuildBuild = [ - buildPackages.stdenv.cc - ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ pkg-config autoconf zlib ] + nativeBuildInputs = [ + pkg-config + autoconf + zlib + ] ++ lib.optional cupsSupport cups; + + buildInputs = + [ + zlib + expat + openssl + libjpeg + libpng + libtiff + freetype + fontconfig + libpaper + jbig2dec + libiconv + ijs + lcms2 + bash + openjpeg + ] + ++ lib.optionals x11Support [ + xorg.libICE + xorg.libX11 + xorg.libXext + xorg.libXt + ] ++ lib.optional cupsSupport cups; - buildInputs = [ - zlib expat openssl - libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec - libiconv ijs lcms2 bash openjpeg - ] - ++ lib.optionals x11Support [ xorg.libICE xorg.libX11 xorg.libXext xorg.libXt ] - ++ lib.optional cupsSupport cups - ; - preConfigure = '' # https://ghostscript.com/doc/current/Make.htm export CCAUX=$CC_FOR_BUILD @@ -106,39 +131,42 @@ stdenv.mkDerivation rec { autoconf ''; - configureFlags = [ - "--with-system-libtiff" - "--without-tesseract" - ] ++ lib.optionals dynamicDrivers [ - "--enable-dynamic" - "--disable-hidden-visibility" - ] ++ lib.optionals x11Support [ - "--with-x" - ] ++ lib.optionals cupsSupport [ - "--enable-cups" - ]; + configureFlags = + [ + "--with-system-libtiff" + "--without-tesseract" + ] + ++ lib.optionals dynamicDrivers [ + "--enable-dynamic" + "--disable-hidden-visibility" + ] + ++ lib.optionals x11Support [ "--with-x" ] + ++ lib.optionals cupsSupport [ "--enable-cups" ]; # make check does nothing useful doCheck = false; # don't build/install statically linked bin/gs - buildFlags = [ "so" ] + buildFlags = + [ "so" ] # without -headerpad, the following error occurs on Darwin when compiling with X11 support (as of 10.02.0) # error: install_name_tool: changing install names or rpaths can't be redone for: [...]libgs.dylib.10 (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names) ++ lib.optional (x11Support && stdenv.isDarwin) "LDFLAGS=-headerpad_max_install_names"; installTargets = [ "soinstall" ]; - postInstall = '' - ln -s gsc "$out"/bin/gs + postInstall = + '' + ln -s gsc "$out"/bin/gs - cp -r Resource "$out/share/ghostscript/${version}" + cp -r Resource "$out/share/ghostscript/${version}" - ln -s "${fonts}" "$out/share/ghostscript/fonts" - '' + lib.optionalString stdenv.isDarwin '' - for file in $out/lib/*.dylib* ; do - install_name_tool -id "$file" $file - done - ''; + ln -s "${fonts}" "$out/share/ghostscript/fonts" + '' + + lib.optionalString stdenv.isDarwin '' + for file in $out/lib/*.dylib* ; do + install_name_tool -id "$file" $file + done + ''; # dynamic library name only contains maj.min, eg. '9.53' dylib_version = lib.versions.majorMinor version; diff --git a/pkgs/by-name/gh/ghostscript/packages.nix b/pkgs/by-name/gh/ghostscript/packages.nix index 618a9c4..8785b42 100644 --- a/pkgs/by-name/gh/ghostscript/packages.nix +++ b/pkgs/by-name/gh/ghostscript/packages.nix @@ -1,9 +1,7 @@ - { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { ghostscript = callPackage ./. { }; ghostscriptX = ghostscript.override { cupsSupport = true; diff --git a/pkgs/by-name/gh/ghostscript/test-corpus-render.nix b/pkgs/by-name/gh/ghostscript/test-corpus-render.nix index 0896612..c232ee4 100644 --- a/pkgs/by-name/gh/ghostscript/test-corpus-render.nix +++ b/pkgs/by-name/gh/ghostscript/test-corpus-render.nix @@ -1,6 +1,7 @@ -{ stdenv -, fetchgit -, ghostscript +{ + stdenv, + fetchgit, + ghostscript, }: stdenv.mkDerivation { diff --git a/pkgs/by-name/gi/giflib/default.nix b/pkgs/by-name/gi/giflib/default.nix index 9c24d11..0559af2 100644 --- a/pkgs/by-name/gi/giflib/default.nix +++ b/pkgs/by-name/gi/giflib/default.nix @@ -1,10 +1,11 @@ -{ stdenv -, lib -, fetchurl -, fetchpatch -, fixDarwinDylibNames -, pkgsStatic -, imagemagick_light +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fixDarwinDylibNames, + pkgsStatic, + imagemagick_light, }: stdenv.mkDerivation rec { @@ -16,28 +17,22 @@ stdenv.mkDerivation rec { hash = "sha256-vn/70FfK3r4qoURUL9kMaDjGoIO16KkEi47jtmsp1fs="; }; - patches = [ - ./CVE-2021-40633.patch - ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ - # Build dll libraries. - (fetchurl { - url = "https://aur.archlinux.org/cgit/aur.git/plain/001-mingw-build.patch?h=mingw-w64-giflib&id=b7311edf54824ac797c7916cd3ddc3a4b2368a19"; - hash = "sha256-bBx7lw7FWtxZJ+E9AAbKIpCGcJnS5lrGpjYcv/zBtKk="; - }) + patches = + [ ./CVE-2021-40633.patch ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ + # Build dll libraries. + (fetchurl { + url = "https://aur.archlinux.org/cgit/aur.git/plain/001-mingw-build.patch?h=mingw-w64-giflib&id=b7311edf54824ac797c7916cd3ddc3a4b2368a19"; + hash = "sha256-bBx7lw7FWtxZJ+E9AAbKIpCGcJnS5lrGpjYcv/zBtKk="; + }) - # Install executables. - ./mingw-install-exes.patch - ]; + # Install executables. + ./mingw-install-exes.patch + ]; - nativeBuildInputs = [ - imagemagick_light - ] ++ lib.optionals stdenv.isDarwin [ - fixDarwinDylibNames - ]; + nativeBuildInputs = [ imagemagick_light ] ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; - makeFlags = [ - "PREFIX=${builtins.placeholder "out"}" - ]; + makeFlags = [ "PREFIX=${builtins.placeholder "out"}" ]; postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' # Upstream build system does not support NOT building shared libraries. diff --git a/pkgs/by-name/gi/git/default.nix b/pkgs/by-name/gi/git/default.nix index fcf5edb..c272cda 100644 --- a/pkgs/by-name/gi/git/default.nix +++ b/pkgs/by-name/gi/git/default.nix @@ -1,25 +1,56 @@ -{ fetchurl, lib, stdenv, buildPackages -, curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio -, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc -, openssh, pcre2, bash -, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45 -, libxslt, tcl, tk, makeWrapper, libiconv -, svnSupport ? false, subversionClient, perlLibs, smtpPerlLibs -, perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform -, nlsSupport ? true -, osxkeychainSupport ? stdenv.isDarwin -, guiSupport ? false -, withManual ? true -, pythonSupport ? true -, withpcre2 ? true -, sendEmailSupport ? perlSupport -, Security, CoreServices -, withLibsecret ? false -, pkg-config, glib, libsecret -, gzip # needed at runtime by gitweb.cgi -, withSsh ? false -, sysctl -, doInstallCheck ? !stdenv.isDarwin # extremely slow on darwin +{ + fetchurl, + lib, + stdenv, + buildPackages, + curl, + openssl, + zlib, + expat, + perlPackages, + python3, + gettext, + cpio, + gnugrep, + gnused, + gawk, + coreutils, # needed at runtime by git-filter-branch etc + openssh, + pcre2, + bash, + asciidoc, + texinfo, + xmlto, + docbook2x, + docbook_xsl, + docbook_xml_dtd_45, + libxslt, + tcl, + tk, + makeWrapper, + libiconv, + svnSupport ? false, + subversionClient, + perlLibs, + smtpPerlLibs, + perlSupport ? stdenv.buildPlatform == stdenv.hostPlatform, + nlsSupport ? true, + osxkeychainSupport ? stdenv.isDarwin, + guiSupport ? false, + withManual ? true, + pythonSupport ? true, + withpcre2 ? true, + sendEmailSupport ? perlSupport, + Security, + CoreServices, + withLibsecret ? false, + pkg-config, + glib, + libsecret, + gzip, # needed at runtime by gitweb.cgi + withSsh ? false, + sysctl, + doInstallCheck ? !stdenv.isDarwin, # extremely slow on darwin # for passthru.tests # , nixosTests # , tests @@ -32,13 +63,23 @@ assert svnSupport -> perlSupport; let version = "2.44.0"; svn = subversionClient.override { perlBindings = perlSupport; }; - gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; + gitwebPerlLibs = with perlPackages; [ + CGI + HTMLParser + CGIFast + FCGI + FCGIProcManager + HTMLTagCloud + ]; in stdenv.mkDerivation (finalAttrs: { - pname = "git" + pname = + "git" + lib.optionalString svnSupport "-with-svn" - + lib.optionalString (!svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2) "-minimal"; + + lib.optionalString ( + !svnSupport && !guiSupport && !sendEmailSupport && !withManual && !pythonSupport && !withpcre2 + ) "-minimal"; inherit version; src = fetchurl { @@ -58,87 +99,127 @@ stdenv.mkDerivation (finalAttrs: { ./git-sh-i18n.patch ./git-send-email-honor-PATH.patch ./installCheck-path.patch - ] ++ lib.optionals withSsh [ - ./ssh-path.patch - ]; + ] ++ lib.optionals withSsh [ ./ssh-path.patch ]; - postPatch = '' - # Fix references to gettext introduced by ./git-sh-i18n.patch - substituteInPlace git-sh-i18n.sh \ - --subst-var-by gettext ${gettext} + postPatch = + '' + # Fix references to gettext introduced by ./git-sh-i18n.patch + substituteInPlace git-sh-i18n.sh \ + --subst-var-by gettext ${gettext} - # ensure we are using the correct shell when executing the test scripts - patchShebangs t/*.sh - '' + lib.optionalString withSsh '' - for x in connect.c git-gui/lib/remote_add.tcl ; do - substituteInPlace "$x" \ - --subst-var-by ssh "${openssh}/bin/ssh" - done - ''; + # ensure we are using the correct shell when executing the test scripts + patchShebangs t/*.sh + '' + + lib.optionalString withSsh '' + for x in connect.c git-gui/lib/remote_add.tcl ; do + substituteInPlace "$x" \ + --subst-var-by ssh "${openssh}/bin/ssh" + done + ''; - nativeBuildInputs = [ gettext perlPackages.perl makeWrapper pkg-config ] - ++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x - docbook_xsl docbook_xml_dtd_45 libxslt ]; - buildInputs = [ curl openssl zlib expat cpio libiconv bash ] + nativeBuildInputs = + [ + gettext + perlPackages.perl + makeWrapper + pkg-config + ] + ++ lib.optionals withManual [ + asciidoc + texinfo + xmlto + docbook2x + docbook_xsl + docbook_xml_dtd_45 + libxslt + ]; + buildInputs = + [ + curl + openssl + zlib + expat + cpio + libiconv + bash + ] ++ lib.optionals perlSupport [ perlPackages.perl ] - ++ lib.optionals guiSupport [tcl tk] + ++ lib.optionals guiSupport [ + tcl + tk + ] ++ lib.optionals withpcre2 [ pcre2 ] - ++ lib.optionals stdenv.isDarwin [ Security CoreServices ] - ++ lib.optionals withLibsecret [ glib libsecret ]; + ++ lib.optionals stdenv.isDarwin [ + Security + CoreServices + ] + ++ lib.optionals withLibsecret [ + glib + libsecret + ]; # required to support pthread_cancel() - NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s" - + lib.optionalString (stdenv.isFreeBSD) "-lthr"; + NIX_LDFLAGS = + lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s" + + lib.optionalString (stdenv.isFreeBSD) "-lthr"; - configureFlags = [ - "ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config" - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "ac_cv_fread_reads_directories=yes" - "ac_cv_snprintf_returns_bogus=no" - "ac_cv_iconv_omits_bom=no" - ]; + configureFlags = + [ "ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config" ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "ac_cv_fread_reads_directories=yes" + "ac_cv_snprintf_returns_bogus=no" + "ac_cv_iconv_omits_bom=no" + ]; preBuild = '' makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') ) ''; - makeFlags = [ - "prefix=\${out}" - ] - # Git does not allow setting a shell separately for building and run-time. - # Therefore lets leave it at the default /bin/sh when cross-compiling - ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}" - ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"]) - ++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"]) - ++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="] - ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"]) - ++ lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"] - ++ lib.optional withpcre2 "USE_LIBPCRE2=1" - ++ lib.optional (!nlsSupport) "NO_GETTEXT=1" - # git-gui refuses to start with the version of tk distributed with - # macOS Catalina. We can prevent git from building the .app bundle - # by specifying an invalid tk framework. The postInstall step will - # then ensure that git-gui uses tcl/tk from nixpkgs, which is an - # acceptable version. - # - # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706 - ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent"; + makeFlags = + [ "prefix=\${out}" ] + # Git does not allow setting a shell separately for building and run-time. + # Therefore lets leave it at the default /bin/sh when cross-compiling + ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}" + ++ (if perlSupport then [ "PERL_PATH=${perlPackages.perl}/bin/perl" ] else [ "NO_PERL=1" ]) + ++ (if pythonSupport then [ "PYTHON_PATH=${python3}/bin/python" ] else [ "NO_PYTHON=1" ]) + ++ lib.optionals stdenv.isSunOS [ + "INSTALL=install" + "NO_INET_NTOP=" + "NO_INET_PTON=" + ] + ++ (if stdenv.isDarwin then [ "NO_APPLE_COMMON_CRYPTO=1" ] else [ "sysconfdir=/etc" ]) + ++ lib.optionals stdenv.hostPlatform.isMusl [ + "NO_SYS_POLL_H=1" + "NO_GETTEXT=YesPlease" + ] + ++ lib.optional withpcre2 "USE_LIBPCRE2=1" + ++ lib.optional (!nlsSupport) "NO_GETTEXT=1" + # git-gui refuses to start with the version of tk distributed with + # macOS Catalina. We can prevent git from building the .app bundle + # by specifying an invalid tk framework. The postInstall step will + # then ensure that git-gui uses tcl/tk from nixpkgs, which is an + # acceptable version. + # + # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706 + ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent"; disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ stdenv.shellPackage ]; - - postBuild = '' - make -C contrib/subtree - '' + (lib.optionalString perlSupport '' - make -C contrib/diff-highlight - '') + (lib.optionalString osxkeychainSupport '' - make -C contrib/credential/osxkeychain - '') + (lib.optionalString withLibsecret '' - make -C contrib/credential/libsecret - ''); - + postBuild = + '' + make -C contrib/subtree + '' + + (lib.optionalString perlSupport '' + make -C contrib/diff-highlight + '') + + (lib.optionalString osxkeychainSupport '' + make -C contrib/credential/osxkeychain + '') + + (lib.optionalString withLibsecret '' + make -C contrib/credential/libsecret + ''); ## Install @@ -147,15 +228,17 @@ stdenv.mkDerivation (finalAttrs: { installFlags = [ "NO_INSTALL_HARDLINKS=1" ]; - preInstall = (lib.optionalString osxkeychainSupport '' - mkdir -p $out/bin - ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/ - rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o - '') + (lib.optionalString withLibsecret '' - mkdir -p $out/bin - ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/ - rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o - ''); + preInstall = + (lib.optionalString osxkeychainSupport '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/ + rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o + '') + + (lib.optionalString withLibsecret '' + mkdir -p $out/bin + ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/ + rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o + ''); postInstall = '' @@ -210,7 +293,8 @@ stdenv.mkDerivation (finalAttrs: { # HTTP(s) transports for pushing ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend ln -s $out/share/git/contrib/git-jump/git-jump $out/bin/git-jump - '' + lib.optionalString perlSupport '' + '' + + lib.optionalString perlSupport '' # wrap perl commands makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc.perl" $out/bin/git-credential-netrc \ --set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}" @@ -234,51 +318,68 @@ stdenv.mkDerivation (finalAttrs: { done '' - + (if svnSupport then '' - # wrap git-svn - wrapProgram $out/libexec/git-core/git-svn \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \ - --prefix PATH : "${svn.out}/bin" '' - else '' # replace git-svn by notification script - notSupported $out/libexec/git-core/git-svn - '') + + ( + if svnSupport then + '' + # wrap git-svn + wrapProgram $out/libexec/git-core/git-svn \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${ + perlPackages.makePerlPath (perlLibs ++ [ svn.out ]) + }" \ + --prefix PATH : "${svn.out}/bin" '' + else + '' + # replace git-svn by notification script + notSupported $out/libexec/git-core/git-svn + '' + ) - + (if sendEmailSupport then '' - # wrap git-send-email - wrapProgram $out/libexec/git-core/git-send-email \ - --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}" - '' else '' - # replace git-send-email by notification script - notSupported $out/libexec/git-core/git-send-email - '') + + ( + if sendEmailSupport then + '' + # wrap git-send-email + wrapProgram $out/libexec/git-core/git-send-email \ + --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}" + '' + else + '' + # replace git-send-email by notification script + notSupported $out/libexec/git-core/git-send-email + '' + ) - + lib.optionalString withManual ''# Install man pages - make -j $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \ - -C Documentation '' - - + (if guiSupport then '' - # Wrap Tcl/Tk programs - for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do - sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \ - -e "s|exec wish|exec '${tk}/bin/wish'|g" \ - "$out/$prog" - done - ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/gitk - '' else '' - # Don't wrap Tcl/Tk, replace them by notification scripts - for prog in bin/gitk libexec/git-core/git-gui; do - notSupported "$out/$prog" - done - '') - + lib.optionalString osxkeychainSupport '' - # enable git-credential-osxkeychain on darwin if desired (default) - mkdir -p $out/etc - cat > $out/etc/gitconfig << EOF - [credential] - helper = osxkeychain - EOF - ''; + + lib.optionalString withManual '' + # Install man pages + make -j $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \ + -C Documentation '' + + ( + if guiSupport then + '' + # Wrap Tcl/Tk programs + for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do + sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \ + -e "s|exec wish|exec '${tk}/bin/wish'|g" \ + "$out/$prog" + done + ln -s $out/share/git/contrib/completion/git-completion.bash $out/share/bash-completion/completions/gitk + '' + else + '' + # Don't wrap Tcl/Tk, replace them by notification scripts + for prog in bin/gitk libexec/git-core/git-gui; do + notSupported "$out/$prog" + done + '' + ) + + lib.optionalString osxkeychainSupport '' + # enable git-credential-osxkeychain on darwin if desired (default) + mkdir -p $out/etc + cat > $out/etc/gitconfig << EOF + [credential] + helper = osxkeychain + EOF + ''; ## InstallCheck @@ -295,77 +396,89 @@ stdenv.mkDerivation (finalAttrs: { nativeInstallCheckInputs = lib.optional stdenv.isDarwin sysctl; - preInstallCheck = '' - installCheckFlagsArray+=( - GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save" - GIT_TEST_INSTALLED=$out/bin - ${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"} - ) + preInstallCheck = + '' + installCheckFlagsArray+=( + GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save" + GIT_TEST_INSTALLED=$out/bin + ${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"} + ) - function disable_test { - local test=$1 pattern=$2 - if [ $# -eq 1 ]; then - mv t/{,skip-}$test.sh || true - else - sed -i t/$test.sh \ - -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}" - fi - } + function disable_test { + local test=$1 pattern=$2 + if [ $# -eq 1 ]; then + mv t/{,skip-}$test.sh || true + else + sed -i t/$test.sh \ + -e "/^\s*test_expect_.*$pattern/,/^\s*' *\$/{s/^/: #/}" + fi + } - # Shared permissions are forbidden in sandbox builds: - substituteInPlace t/test-lib.sh \ - --replace "test_set_prereq POSIXPERM" "" - # TODO: Investigate while these still fail (without POSIXPERM): - disable_test t0001-init 'shared overrides system' - disable_test t0001-init 'init honors global core.sharedRepository' - disable_test t1301-shared-repo - # /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found - disable_test t9902-completion + # Shared permissions are forbidden in sandbox builds: + substituteInPlace t/test-lib.sh \ + --replace "test_set_prereq POSIXPERM" "" + # TODO: Investigate while these still fail (without POSIXPERM): + disable_test t0001-init 'shared overrides system' + disable_test t0001-init 'init honors global core.sharedRepository' + disable_test t1301-shared-repo + # /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found + disable_test t9902-completion - # Our patched gettext never fallbacks - disable_test t0201-gettext-fallbacks - '' + lib.optionalString (!sendEmailSupport) '' - # Disable sendmail tests - disable_test t9001-send-email - '' + '' - # XXX: I failed to understand why this one fails. - # Could someone try to re-enable it on the next release ? - # Tested to fail: 2.18.0 and 2.19.0 - disable_test t1700-split-index "null sha1" + # Our patched gettext never fallbacks + disable_test t0201-gettext-fallbacks + '' + + lib.optionalString (!sendEmailSupport) '' + # Disable sendmail tests + disable_test t9001-send-email + '' + + '' + # XXX: I failed to understand why this one fails. + # Could someone try to re-enable it on the next release ? + # Tested to fail: 2.18.0 and 2.19.0 + disable_test t1700-split-index "null sha1" - # Flaky tests: - disable_test t5319-multi-pack-index - disable_test t6421-merge-partial-clone + # Flaky tests: + disable_test t5319-multi-pack-index + disable_test t6421-merge-partial-clone - # Fails reproducibly on ZFS on Linux with formD normalization - disable_test t0021-conversion - disable_test t3910-mac-os-precompose + # Fails reproducibly on ZFS on Linux with formD normalization + disable_test t0021-conversion + disable_test t3910-mac-os-precompose - '' + lib.optionalString (!perlSupport) '' - # request-pull is a Bash script that invokes Perl, so it is not available - # when NO_PERL=1, and the test should be skipped, but the test suite does - # not check for the Perl prerequisite. - disable_test t5150-request-pull - '' + lib.optionalString stdenv.isDarwin '' - # XXX: Some tests added in 2.24.0 fail. - # Please try to re-enable on the next release. - disable_test t7816-grep-binary-pattern - # fail (as of 2.33.0) - #===( 18623;1208 8/? 224/? 2/? )= =fatal: Not a valid object name refs/tags/signed-empty - disable_test t6300-for-each-ref - # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin) - disable_test t5003-archive-zip - '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' - disable_test t7527-builtin-fsmonitor - '' + lib.optionalString stdenv.hostPlatform.isMusl '' - # Test fails (as of 2.17.0, musl 1.1.19) - disable_test t3900-i18n-commit - # Fails largely due to assumptions about BOM - # Tested to fail: 2.18.0 - disable_test t0028-working-tree-encoding - ''; + '' + + lib.optionalString (!perlSupport) '' + # request-pull is a Bash script that invokes Perl, so it is not available + # when NO_PERL=1, and the test should be skipped, but the test suite does + # not check for the Perl prerequisite. + disable_test t5150-request-pull + '' + + lib.optionalString stdenv.isDarwin '' + # XXX: Some tests added in 2.24.0 fail. + # Please try to re-enable on the next release. + disable_test t7816-grep-binary-pattern + # fail (as of 2.33.0) + #===( 18623;1208 8/? 224/? 2/? )= =fatal: Not a valid object name refs/tags/signed-empty + disable_test t6300-for-each-ref + # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin) + disable_test t5003-archive-zip + '' + + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' + disable_test t7527-builtin-fsmonitor + '' + + lib.optionalString stdenv.hostPlatform.isMusl '' + # Test fails (as of 2.17.0, musl 1.1.19) + disable_test t3900-i18n-commit + # Fails largely due to assumptions about BOM + # Tested to fail: 2.18.0 + disable_test t0028-working-tree-encoding + ''; - stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ]; + stripDebugList = [ + "lib" + "libexec" + "bin" + "share/git/contrib/credential/libsecret" + ]; passthru = { shellPath = "/bin/git-shell"; @@ -389,7 +502,12 @@ stdenv.mkDerivation (finalAttrs: { ''; platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ primeos wmertens globin kashw2 ]; + maintainers = with lib.maintainers; [ + primeos + wmertens + globin + kashw2 + ]; mainProgram = "git"; }; }) diff --git a/pkgs/by-name/gi/git/packages.nix b/pkgs/by-name/gi/git/packages.nix index 70a8432..4c01606 100644 --- a/pkgs/by-name/gi/git/packages.nix +++ b/pkgs/by-name/gi/git/packages.nix @@ -1,11 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { git = callPackage ./. { inherit (darwin.apple_sdk.frameworks) CoreServices Security; - perlLibs = [ perlPackages.LWP perlPackages.URI perlPackages.TermReadKey ]; + perlLibs = [ + perlPackages.LWP + perlPackages.URI + perlPackages.TermReadKey + ]; smtpPerlLibs = [ perlPackages.libnet perlPackages.NetSMTPSSL @@ -28,15 +31,13 @@ with pkgs; # Git with SVN support, but without GUI. gitSVN = lowPrio (git.override { svnSupport = true; }); - git-doc = lib.addMetaAttrs - { - description = "Additional documentation for Git"; - longDescription = '' - This package contains additional documentation (HTML and text files) that - is referenced in the man pages of Git. - ''; - } - gitFull.doc; + git-doc = lib.addMetaAttrs { + description = "Additional documentation for Git"; + longDescription = '' + This package contains additional documentation (HTML and text files) that + is referenced in the man pages of Git. + ''; + } gitFull.doc; gitMinimal = git.override { withManual = false; diff --git a/pkgs/by-name/gl/glib/default.nix b/pkgs/by-name/gl/glib/default.nix index 09a8c46..5a05f77 100644 --- a/pkgs/by-name/gl/glib/default.nix +++ b/pkgs/by-name/gl/glib/default.nix @@ -1,26 +1,42 @@ -{ config -, lib -, stdenv -, fetchurl -, fetchpatch -, gettext -, meson -, ninja -, pkg-config -, perl -, python3 -, libiconv, zlib, libffi, pcre2, elfutils, /*gnome,*/ libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45, libxslt -# use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib) -, util-linuxMinimal ? null -, buildPackages +{ + config, + lib, + stdenv, + fetchurl, + fetchpatch, + gettext, + meson, + ninja, + pkg-config, + perl, + python3, + libiconv, + zlib, + libffi, + pcre2, + elfutils, # gnome, + libselinux, + bash, + gnum4, + gtk-doc, + docbook_xsl, + docbook_xml_dtd_45, + libxslt, + # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib) + util-linuxMinimal ? null, + buildPackages, -# for passthru.tests -# this is just for tests (not in the closure of any regular package) -, coreutils, dbus, libxml2, tzdata -, desktop-file-utils, shared-mime-info -, darwin -# , makeHardcodeGsettingsPatch -, testers + # for passthru.tests + # this is just for tests (not in the closure of any regular package) + coreutils, + dbus, + libxml2, + tzdata, + desktop-file-utils, + shared-mime-info, + darwin, + # , makeHardcodeGsettingsPatch + testers, }: assert stdenv.isLinux -> util-linuxMinimal != null; @@ -51,115 +67,143 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-JLjgZy3KEgzDLTlLzLhYROcy4E/nXRi7BXOy28dUj2M="; }; - patches = lib.optionals stdenv.isDarwin [ - ./darwin-compilation.patch - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - ./quark_init_on_demand.patch - ./gobject_init_on_demand.patch - ] ++ [ - (fetchpatch { - name = "GLib-against-PCRE2-10.43.patch"; - url = "https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6.patch"; - hash = "sha256-vgKzb5hQmFQGD8zxRrXnuX9Gpg/TeSrzehlOH2vA1xU="; - }) + patches = + lib.optionals stdenv.isDarwin [ ./darwin-compilation.patch ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + ./quark_init_on_demand.patch + ./gobject_init_on_demand.patch + ] + ++ [ + (fetchpatch { + name = "GLib-against-PCRE2-10.43.patch"; + url = "https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6.patch"; + hash = "sha256-vgKzb5hQmFQGD8zxRrXnuX9Gpg/TeSrzehlOH2vA1xU="; + }) - ./glib-appinfo-watch.patch - ./schema-override-variable.patch + ./glib-appinfo-watch.patch + ./schema-override-variable.patch - # Add support for Pantheon’s terminal emulator. - ./elementary-terminal-support.patch + # Add support for Pantheon’s terminal emulator. + ./elementary-terminal-support.patch - # GLib contains many binaries used for different purposes; - # we will install them to different outputs: - # 1. Tools for desktop environment ($bin) - # * gapplication (non-darwin) - # * gdbus - # * gio - # * gio-launch-desktop (symlink to $out) - # * gsettings - # 2. Development/build tools ($dev) - # * gdbus-codegen - # * gio-querymodules - # * glib-compile-resources - # * glib-compile-schemas - # * glib-genmarshal - # * glib-gettextize - # * glib-mkenums - # * gobject-query - # * gresource - # * gtester - # * gtester-report - # 3. Tools for desktop environment that cannot go to $bin due to $out depending on them ($out) - # * gio-launch-desktop - ./split-dev-programs.patch + # GLib contains many binaries used for different purposes; + # we will install them to different outputs: + # 1. Tools for desktop environment ($bin) + # * gapplication (non-darwin) + # * gdbus + # * gio + # * gio-launch-desktop (symlink to $out) + # * gsettings + # 2. Development/build tools ($dev) + # * gdbus-codegen + # * gio-querymodules + # * glib-compile-resources + # * glib-compile-schemas + # * glib-genmarshal + # * glib-gettextize + # * glib-mkenums + # * gobject-query + # * gresource + # * gtester + # * gtester-report + # 3. Tools for desktop environment that cannot go to $bin due to $out depending on them ($out) + # * gio-launch-desktop + ./split-dev-programs.patch - # Disable flaky test. - # https://gitlab.gnome.org/GNOME/glib/-/issues/820 - ./skip-timer-test.patch + # Disable flaky test. + # https://gitlab.gnome.org/GNOME/glib/-/issues/820 + ./skip-timer-test.patch + ]; + + outputs = [ + "bin" + "out" + "dev" + "devdoc" ]; - outputs = [ "bin" "out" "dev" "devdoc" ]; - setupHook = ./setup-hook.sh; - buildInputs = [ - finalAttrs.setupHook - pcre2 - ] ++ lib.optionals (!stdenv.hostPlatform.isWindows) [ - bash gnum4 # install glib-gettextize and m4 macros for other apps to use - ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ - elfutils - ] ++ lib.optionals stdenv.isLinux [ - libselinux - util-linuxMinimal # for libmount - ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - AppKit Carbon Cocoa CoreFoundation CoreServices Foundation - ]) ++ lib.optionals buildDocs [ - # Note: this needs to be both in buildInputs and nativeBuildInputs. The - # Meson gtkdoc module uses find_program to look it up (-> build dep), but - # glib's own Meson configuration uses the host pkg-config to find its - # version (-> host dep). We could technically go and fix this in glib, add - # pkg-config to depsBuildBuild, but this would be a futile exercise since - # Meson's gtkdoc integration does not support cross compilation[1] anyway - # and this derivation disables the docs build when cross compiling. - # - # [1] https://github.com/mesonbuild/meson/issues/2003 - gtk-doc - ]; + buildInputs = + [ + finalAttrs.setupHook + pcre2 + ] + ++ lib.optionals (!stdenv.hostPlatform.isWindows) [ + bash + gnum4 # install glib-gettextize and m4 macros for other apps to use + ] + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ] + ++ lib.optionals stdenv.isLinux [ + libselinux + util-linuxMinimal # for libmount + ] + ++ lib.optionals stdenv.isDarwin ( + with darwin.apple_sdk.frameworks; + [ + AppKit + Carbon + Cocoa + CoreFoundation + CoreServices + Foundation + ] + ) + ++ lib.optionals buildDocs [ + # Note: this needs to be both in buildInputs and nativeBuildInputs. The + # Meson gtkdoc module uses find_program to look it up (-> build dep), but + # glib's own Meson configuration uses the host pkg-config to find its + # version (-> host dep). We could technically go and fix this in glib, add + # pkg-config to depsBuildBuild, but this would be a futile exercise since + # Meson's gtkdoc integration does not support cross compilation[1] anyway + # and this derivation disables the docs build when cross compiling. + # + # [1] https://github.com/mesonbuild/meson/issues/2003 + gtk-doc + ]; strictDeps = true; - nativeBuildInputs = [ - meson - ninja - pkg-config - perl - python3 + nativeBuildInputs = + [ + meson + ninja + pkg-config + perl + python3 + gettext + libxslt + docbook_xsl + ] + ++ lib.optionals buildDocs [ + gtk-doc + docbook_xml_dtd_45 + libxml2 + ]; + + propagatedBuildInputs = [ + zlib + libffi gettext - libxslt - docbook_xsl - ] ++ lib.optionals buildDocs [ - gtk-doc - docbook_xml_dtd_45 - libxml2 + libiconv ]; - propagatedBuildInputs = [ zlib libffi gettext libiconv ]; - - mesonFlags = [ - # Avoid the need for gobject introspection binaries in PATH in cross-compiling case. - # Instead we just copy them over from the native output. - "-Dgtk_doc=${lib.boolToString buildDocs}" - "-Dnls=enabled" - "-Ddevbindir=${placeholder "dev"}/bin" - ] ++ lib.optionals (!lib.meta.availableOn stdenv.hostPlatform elfutils) [ - "-Dlibelf=disabled" - ] ++ lib.optionals (!stdenv.isDarwin) [ - "-Dman=true" # broken on Darwin - ] ++ lib.optionals stdenv.isFreeBSD [ - "-Db_lundef=false" - "-Dxattr=false" - ]; + mesonFlags = + [ + # Avoid the need for gobject introspection binaries in PATH in cross-compiling case. + # Instead we just copy them over from the native output. + "-Dgtk_doc=${lib.boolToString buildDocs}" + "-Dnls=enabled" + "-Ddevbindir=${placeholder "dev"}/bin" + ] + ++ lib.optionals (!lib.meta.availableOn stdenv.hostPlatform elfutils) [ "-Dlibelf=disabled" ] + ++ lib.optionals (!stdenv.isDarwin) [ + "-Dman=true" # broken on Darwin + ] + ++ lib.optionals stdenv.isFreeBSD [ + "-Db_lundef=false" + "-Dxattr=false" + ]; env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=nonnull" @@ -168,29 +212,31 @@ stdenv.mkDerivation (finalAttrs: { "-DG_DISABLE_CAST_CHECKS" ]; - postPatch = '' - chmod +x gio/tests/gengiotypefuncs.py - patchShebangs gio/tests/gengiotypefuncs.py - chmod +x docs/reference/gio/concat-files-helper.py - patchShebangs docs/reference/gio/concat-files-helper.py - patchShebangs glib/gen-unicode-tables.pl - patchShebangs glib/tests/gen-casefold-txt.py - patchShebangs glib/tests/gen-casemap-txt.py - patchShebangs tools/gen-visibility-macros.py + postPatch = + '' + chmod +x gio/tests/gengiotypefuncs.py + patchShebangs gio/tests/gengiotypefuncs.py + chmod +x docs/reference/gio/concat-files-helper.py + patchShebangs docs/reference/gio/concat-files-helper.py + patchShebangs glib/gen-unicode-tables.pl + patchShebangs glib/tests/gen-casefold-txt.py + patchShebangs glib/tests/gen-casemap-txt.py + patchShebangs tools/gen-visibility-macros.py - # Needs machine-id, comment the test - sed -e '/\/gdbus\/codegen-peer-to-peer/ s/^\/*/\/\//' -i gio/tests/gdbus-peer.c - sed -e '/g_test_add_func/ s/^\/*/\/\//' -i gio/tests/gdbus-address-get-session.c - # All gschemas fail to pass the test, upstream bug? - sed -e '/g_test_add_data_func/ s/^\/*/\/\//' -i gio/tests/gschema-compile.c - # Cannot reproduce the failing test_associations on hydra - sed -e '/\/appinfo\/associations/d' -i gio/tests/appinfo.c - # Needed because of libtool wrappers - sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c - '' + lib.optionalString stdenv.hostPlatform.isWindows '' - substituteInPlace gio/win32/meson.build \ - --replace "libintl, " "" - ''; + # Needs machine-id, comment the test + sed -e '/\/gdbus\/codegen-peer-to-peer/ s/^\/*/\/\//' -i gio/tests/gdbus-peer.c + sed -e '/g_test_add_func/ s/^\/*/\/\//' -i gio/tests/gdbus-address-get-session.c + # All gschemas fail to pass the test, upstream bug? + sed -e '/g_test_add_data_func/ s/^\/*/\/\//' -i gio/tests/gschema-compile.c + # Cannot reproduce the failing test_associations on hydra + sed -e '/\/appinfo\/associations/d' -i gio/tests/appinfo.c + # Needed because of libtool wrappers + sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c + '' + + lib.optionalString stdenv.hostPlatform.isWindows '' + substituteInPlace gio/win32/meson.build \ + --replace "libintl, " "" + ''; postConfigure = '' patchShebangs gio/gdbus-2.0/codegen/gdbus-codegen gobject/glib-{genmarshal,mkenums} @@ -198,23 +244,25 @@ stdenv.mkDerivation (finalAttrs: { DETERMINISTIC_BUILD = 1; - postInstall = '' - moveToOutput "share/glib-2.0" "$dev" - substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev" - sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|" + postInstall = + '' + moveToOutput "share/glib-2.0" "$dev" + substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev" + sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|" - # This file is *included* in gtk3 and would introduce runtime reference via __FILE__. - sed '1i#line 1 "glib-${finalAttrs.version}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \ - -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c - for i in $bin/bin/*; do - moveToOutput "share/bash-completion/completions/''${i##*/}" "$bin" - done - for i in $dev/bin/*; do - moveToOutput "share/bash-completion/completions/''${i##*/}" "$dev" - done - '' + lib.optionalString (!buildDocs) '' - cp -r ${buildPackages.glib.devdoc} $devdoc - ''; + # This file is *included* in gtk3 and would introduce runtime reference via __FILE__. + sed '1i#line 1 "glib-${finalAttrs.version}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \ + -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c + for i in $bin/bin/*; do + moveToOutput "share/bash-completion/completions/''${i##*/}" "$bin" + done + for i in $dev/bin/*; do + moveToOutput "share/bash-completion/completions/''${i##*/}" "$dev" + done + '' + + lib.optionalString (!buildDocs) '' + cp -r ${buildPackages.glib.devdoc} $devdoc + ''; # Move man pages to the same output as their binaries (needs to be # done after preFixupHooks which moves man pages too - in @@ -225,7 +273,11 @@ stdenv.mkDerivation (finalAttrs: { done ''; - nativeCheckInputs = [ tzdata desktop-file-utils shared-mime-info ]; + nativeCheckInputs = [ + tzdata + desktop-file-utils + shared-mime-info + ]; preCheck = lib.optionalString finalAttrs.finalPackage.doCheck or config.doCheckByDefault or false '' export LD_LIBRARY_PATH="$NIX_BUILD_TOP/glib-${finalAttrs.version}/glib/.libs''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" @@ -250,7 +302,9 @@ stdenv.mkDerivation (finalAttrs: { getSchemaDataDirPath = pkg: makeSchemaDataDirPath pkg pkg.name; tests = { - withChecks = finalAttrs.finalPackage.overrideAttrs (_: { doCheck = true; }); + withChecks = finalAttrs.finalPackage.overrideAttrs (_: { + doCheck = true; + }); pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; }; @@ -275,15 +329,20 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "C library of programming buildings blocks"; - homepage = "https://gitlab.gnome.org/GNOME/glib"; - license = licenses.lgpl21Plus; - maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 raskin ]); + homepage = "https://gitlab.gnome.org/GNOME/glib"; + license = licenses.lgpl21Plus; + maintainers = + teams.gnome.members + ++ (with maintainers; [ + lovek323 + raskin + ]); pkgConfigModules = [ "gio-2.0" "gobject-2.0" "gthread-2.0" ]; - platforms = platforms.unix ++ platforms.windows; + platforms = platforms.unix ++ platforms.windows; longDescription = '' GLib provides the core application building blocks for libraries diff --git a/pkgs/by-name/gl/glib/packages.nix b/pkgs/by-name/gl/glib/packages.nix index 610c6c2..5058549 100644 --- a/pkgs/by-name/gl/glib/packages.nix +++ b/pkgs/by-name/gl/glib/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { glib = callPackage ./. ( let glib-untested = glib.overrideAttrs { doCheck = false; }; diff --git a/pkgs/by-name/gl/glibc/common.nix b/pkgs/by-name/gl/glibc/common.nix index 4d6fb5a..b396ccb 100644 --- a/pkgs/by-name/gl/glibc/common.nix +++ b/pkgs/by-name/gl/glibc/common.nix @@ -1,4 +1,5 @@ -/* Build configuration used to build glibc, Info files, and locale +/* + Build configuration used to build glibc, Info files, and locale information. Note that this derivation has multiple outputs and does not respect the @@ -22,24 +23,28 @@ # cgit) that are needed here should be included directly in Nixpkgs as # files. -{ stdenv, lib -, buildPackages -, fetchurl -, linuxHeaders ? null -, gd ? null, libpng ? null -, libidn2 -, bison -, python3Minimal +{ + stdenv, + lib, + buildPackages, + fetchurl, + linuxHeaders ? null, + gd ? null, + libpng ? null, + libidn2, + bison, + python3Minimal, }: -{ pname -, withLinuxHeaders ? false -, profilingLibraries ? false -, withGd ? false -, extraBuildInputs ? [] -, extraNativeBuildInputs ? [] -, ... -} @ args: +{ + pname, + withLinuxHeaders ? false, + profilingLibraries ? false, + withGd ? false, + extraBuildInputs ? [ ], + extraNativeBuildInputs ? [ ], + ... +}@args: let version = "2.39"; @@ -50,243 +55,290 @@ in assert withLinuxHeaders -> linuxHeaders != null; assert withGd -> gd != null && libpng != null; -stdenv.mkDerivation ({ - version = version + patchSuffix; +stdenv.mkDerivation ( + { + version = version + patchSuffix; - enableParallelBuilding = true; + enableParallelBuilding = true; - patches = - [ - /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. - $ git fetch --all -p && git checkout origin/release/2.39/master && git describe - glibc-2.39-5-ge0910f1d32 - $ git show --minimal --reverse glibc-2.39.. > 2.39-master.patch + patches = + [ + /* + No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping. + $ git fetch --all -p && git checkout origin/release/2.39/master && git describe + glibc-2.39-5-ge0910f1d32 + $ git show --minimal --reverse glibc-2.39.. > 2.39-master.patch - To compare the archive contents zdiff can be used. - $ diff -u 2.39-master.patch ../nixpkgs/pkgs/development/libraries/glibc/2.39-master.patch - */ - ./2.39-master.patch + To compare the archive contents zdiff can be used. + $ diff -u 2.39-master.patch ../nixpkgs/pkgs/development/libraries/glibc/2.39-master.patch + */ + ./2.39-master.patch - /* Allow NixOS and Nix to handle the locale-archive. */ - ./nix-locale-archive.patch + # Allow NixOS and Nix to handle the locale-archive. + ./nix-locale-archive.patch - /* Don't use /etc/ld.so.cache, for non-NixOS systems. */ - ./dont-use-system-ld-so-cache.patch + # Don't use /etc/ld.so.cache, for non-NixOS systems. + ./dont-use-system-ld-so-cache.patch - /* Don't use /etc/ld.so.preload, but /etc/ld-nix.so.preload. */ - ./dont-use-system-ld-so-preload.patch + # Don't use /etc/ld.so.preload, but /etc/ld-nix.so.preload. + ./dont-use-system-ld-so-preload.patch - /* The command "getconf CS_PATH" returns the default search path - "/bin:/usr/bin", which is inappropriate on NixOS machines. This - patch extends the search path by "/run/current-system/sw/bin". */ - ./fix_path_attribute_in_getconf.patch + /* + The command "getconf CS_PATH" returns the default search path + "/bin:/usr/bin", which is inappropriate on NixOS machines. This + patch extends the search path by "/run/current-system/sw/bin". + */ + ./fix_path_attribute_in_getconf.patch - ./fix-x64-abi.patch + ./fix-x64-abi.patch - /* https://github.com/NixOS/nixpkgs/pull/137601 */ - ./nix-nss-open-files.patch + # https://github.com/NixOS/nixpkgs/pull/137601 + ./nix-nss-open-files.patch - ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch + ./0001-Revert-Remove-all-usage-of-BASH-or-BASH-in-installed.patch - /* Patch derived from archlinux, - https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/blob/e54d98e2d1aae4930ecad9404ef12234922d9dfd/reenable_DT_HASH.patch + /* + Patch derived from archlinux, + https://gitlab.archlinux.org/archlinux/packaging/packages/glibc/-/blob/e54d98e2d1aae4930ecad9404ef12234922d9dfd/reenable_DT_HASH.patch - See also https://github.com/ValveSoftware/Proton/issues/6051 - & https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 + See also https://github.com/ValveSoftware/Proton/issues/6051 + & https://github.com/NixOS/nixpkgs/pull/188492#issuecomment-1233802991 + */ + ./reenable_DT_HASH.patch + ] + /* + NVCC does not support ARM intrinsics. Since is pulled in by almost + every HPC piece of software, without this patch CUDA compilation on ARM + is effectively broken. See + https://forums.developer.nvidia.com/t/nvcc-fails-to-build-with-arm-neon-instructions-cpp-vs-cu/248355/2. */ - ./reenable_DT_HASH.patch - ] - /* NVCC does not support ARM intrinsics. Since is pulled in by almost - every HPC piece of software, without this patch CUDA compilation on ARM - is effectively broken. See - https://forums.developer.nvidia.com/t/nvcc-fails-to-build-with-arm-neon-instructions-cpp-vs-cu/248355/2. - */ - ++ ( - let - isAarch64 = stdenv.buildPlatform.isAarch64 || stdenv.hostPlatform.isAarch64; - isLinux = stdenv.buildPlatform.isLinux || stdenv.hostPlatform.isLinux; - in - lib.optional (isAarch64 && isLinux) ./0001-aarch64-math-vector.h-add-NVCC-include-guard.patch - ) - ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch - ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; + ++ ( + let + isAarch64 = stdenv.buildPlatform.isAarch64 || stdenv.hostPlatform.isAarch64; + isLinux = stdenv.buildPlatform.isLinux || stdenv.hostPlatform.isLinux; + in + lib.optional (isAarch64 && isLinux) ./0001-aarch64-math-vector.h-add-NVCC-include-guard.patch + ) + ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch + ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch; - postPatch = - '' - # Needed for glibc to build with the gnumake 3.82 - # http://comments.gmane.org/gmane.linux.lfs.support/31227 - sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile + postPatch = + '' + # Needed for glibc to build with the gnumake 3.82 + # http://comments.gmane.org/gmane.linux.lfs.support/31227 + sed -i 's/ot \$/ot:\n\ttouch $@\n$/' manual/Makefile - # nscd needs libgcc, and we don't want it dynamically linked - # because we don't want it to depend on bootstrap-tools libs. - echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile + # nscd needs libgcc, and we don't want it dynamically linked + # because we don't want it to depend on bootstrap-tools libs. + echo "LDFLAGS-nscd += -static-libgcc" >> nscd/Makefile - # Ensure that `__nss_files_fopen` can still be wrapped by `libredirect`. - sed -i -e '/libc_hidden_def (__nss_files_fopen)/d' nss/nss_files_fopen.c - sed -i -e '/libc_hidden_proto (__nss_files_fopen)/d' include/nss_files.h - '' - # FIXME: find a solution for infinite recursion in cross builds. - # For now it's hopefully acceptable that IDN from libc doesn't reliably work. - + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' + # Ensure that `__nss_files_fopen` can still be wrapped by `libredirect`. + sed -i -e '/libc_hidden_def (__nss_files_fopen)/d' nss/nss_files_fopen.c + sed -i -e '/libc_hidden_proto (__nss_files_fopen)/d' include/nss_files.h + '' + # FIXME: find a solution for infinite recursion in cross builds. + # For now it's hopefully acceptable that IDN from libc doesn't reliably work. + + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' - # Ensure that libidn2 is found. - patch -p 1 < config.cache << "EOF" - libc_cv_forced_unwind=yes - libc_cv_c_cleanup=yes - libc_cv_gnu89_inline=yes - EOF - - # ./configure has logic like - # - # AR=`$CC -print-prog-name=ar` - # - # This searches various directories in the gcc and its wrapper. In nixpkgs, - # this returns the bare string "ar", which is build ar. This can result as - # a build failure with the following message: - # - # libc_pic.a: error adding symbols: archive has no index; run ranlib to add one - # - # (Observed cross compiling from aarch64-linux -> armv7l-linux). - # - # Nixpkgs passes a correct value for AR and friends, so to use the correct - # set of tools, we only need to delete this special handling. - sed -i \ - -e '/^AR=/d' \ - -e '/^AS=/d' \ - -e '/^LD=/d' \ - -e '/^OBJCOPY=/d' \ - -e '/^OBJDUMP=/d' \ - $configureScript - ''; - - preBuild = lib.optionalString withGd "unset NIX_DONT_SET_RPATH"; - - doCheck = false; # fails - - meta = with lib; { - homepage = "https://www.gnu.org/software/libc/"; - description = "The GNU C Library"; - - longDescription = - '' Any Unix-like operating system needs a C library: the library which - defines the "system calls" and other basic facilities such as - open, malloc, printf, exit... - - The GNU C library is used as the C library in the GNU system and - most systems with the Linux kernel. + # Ensure that libidn2 is found. + patch -p 1 < config.cache << "EOF" + libc_cv_forced_unwind=yes + libc_cv_c_cleanup=yes + libc_cv_gnu89_inline=yes + EOF + + # ./configure has logic like + # + # AR=`$CC -print-prog-name=ar` + # + # This searches various directories in the gcc and its wrapper. In nixpkgs, + # this returns the bare string "ar", which is build ar. This can result as + # a build failure with the following message: + # + # libc_pic.a: error adding symbols: archive has no index; run ranlib to add one + # + # (Observed cross compiling from aarch64-linux -> armv7l-linux). + # + # Nixpkgs passes a correct value for AR and friends, so to use the correct + # set of tools, we only need to delete this special handling. + sed -i \ + -e '/^AR=/d' \ + -e '/^AS=/d' \ + -e '/^LD=/d' \ + -e '/^OBJCOPY=/d' \ + -e '/^OBJDUMP=/d' \ + $configureScript + ''; + + preBuild = lib.optionalString withGd "unset NIX_DONT_SET_RPATH"; + + doCheck = false; # fails + + meta = + with lib; + { + homepage = "https://www.gnu.org/software/libc/"; + description = "The GNU C Library"; + + longDescription = '' + Any Unix-like operating system needs a C library: the library which + defines the "system calls" and other basic facilities such as + open, malloc, printf, exit... + + The GNU C library is used as the C library in the GNU system and + most systems with the Linux kernel. + ''; + + license = licenses.lgpl2Plus; + + maintainers = with maintainers; [ + eelco + ma27 + connorbaker + ]; + platforms = platforms.linux; + } + // (args.meta or { }); + } +) diff --git a/pkgs/by-name/gl/glibc/default.nix b/pkgs/by-name/gl/glibc/default.nix index 3f73314..1d7351e 100644 --- a/pkgs/by-name/gl/glibc/default.nix +++ b/pkgs/by-name/gl/glibc/default.nix @@ -1,9 +1,12 @@ -{ lib, stdenv, callPackage -, withLinuxHeaders ? true -, profilingLibraries ? false -, withGd ? false -, pkgsBuildBuild -, libgcc +{ + lib, + stdenv, + callPackage, + withLinuxHeaders ? true, + profilingLibraries ? false, + withGd ? false, + pkgsBuildBuild, + libgcc, }: let @@ -16,8 +19,12 @@ in (callPackage ./common.nix { inherit stdenv; } { inherit withLinuxHeaders withGd profilingLibraries; - pname = "glibc" + lib.optionalString withGd "-gd" + lib.optionalString (stdenv.cc.isGNU && libgcc==null) "-nolibgcc"; -}).overrideAttrs(previousAttrs: { + pname = + "glibc" + + lib.optionalString withGd "-gd" + + lib.optionalString (stdenv.cc.isGNU && libgcc == null) "-nolibgcc"; +}).overrideAttrs + (previousAttrs: { # Note: # Things you write here override, and do not add to, @@ -28,49 +35,58 @@ in NIX_NO_SELF_RPATH = true; - postConfigure = '' - # Hack: get rid of the `-static' flag set by the bootstrap stdenv. - # This has to be done *after* `configure' because it builds some - # test binaries. - export NIX_CFLAGS_LINK= - export NIX_LDFLAGS_BEFORE= + postConfigure = + '' + # Hack: get rid of the `-static' flag set by the bootstrap stdenv. + # This has to be done *after* `configure' because it builds some + # test binaries. + export NIX_CFLAGS_LINK= + export NIX_LDFLAGS_BEFORE= - export NIX_DONT_SET_RPATH=1 - unset CFLAGS + export NIX_DONT_SET_RPATH=1 + unset CFLAGS - # Apparently --bindir is not respected. - makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin") - '' + lib.optionalString stdenv.buildPlatform.isDarwin '' - # ld-wrapper will otherwise attempt to inject CoreFoundation into ld-linux's RUNPATH - export NIX_COREFOUNDATION_RPATH= - ''; + # Apparently --bindir is not respected. + makeFlagsArray+=("bindir=$bin/bin" "sbindir=$bin/sbin" "rootsbindir=$bin/sbin") + '' + + lib.optionalString stdenv.buildPlatform.isDarwin '' + # ld-wrapper will otherwise attempt to inject CoreFoundation into ld-linux's RUNPATH + export NIX_COREFOUNDATION_RPATH= + ''; # The pie, stackprotector and fortify hardening flags are autodetected by # glibc and enabled by default if supported. Setting it for every gcc # invocation does not work. - hardeningDisable = [ "fortify" "pie" "stackprotector" ]; + hardeningDisable = [ + "fortify" + "pie" + "stackprotector" + ]; env = (previousAttrs.env or { }) // { - NIX_CFLAGS_COMPILE = (previousAttrs.env.NIX_CFLAGS_COMPILE or "") + lib.concatStringsSep " " - (builtins.concatLists [ - (lib.optionals withGd gdCflags) - # Fix -Werror build failure when building glibc with musl with GCC >= 8, see: - # https://github.com/NixOS/nixpkgs/pull/68244#issuecomment-544307798 - (lib.optional stdenv.hostPlatform.isMusl "-Wno-error=attribute-alias") - (lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) || stdenv.hostPlatform.isMusl) [ - # Ignore "error: '__EI___errno_location' specifies less restrictive attributes than its target '__errno_location'" - # New warning as of GCC 9 - # Same for musl: https://github.com/NixOS/nixpkgs/issues/78805 - "-Wno-error=missing-attributes" - ]) - (lib.optionals (stdenv.hostPlatform.isPower64) [ - # Do not complain about the Processor Specific ABI (i.e. the - # choice to use IEEE-standard `long double`). We pass this - # flag in order to mute a `-Werror=psabi` passed by glibc; - # hopefully future glibc releases will not pass that flag. - "-Wno-error=psabi" - ]) - ]); + NIX_CFLAGS_COMPILE = + (previousAttrs.env.NIX_CFLAGS_COMPILE or "") + + lib.concatStringsSep " " ( + builtins.concatLists [ + (lib.optionals withGd gdCflags) + # Fix -Werror build failure when building glibc with musl with GCC >= 8, see: + # https://github.com/NixOS/nixpkgs/pull/68244#issuecomment-544307798 + (lib.optional stdenv.hostPlatform.isMusl "-Wno-error=attribute-alias") + (lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) || stdenv.hostPlatform.isMusl) [ + # Ignore "error: '__EI___errno_location' specifies less restrictive attributes than its target '__errno_location'" + # New warning as of GCC 9 + # Same for musl: https://github.com/NixOS/nixpkgs/issues/78805 + "-Wno-error=missing-attributes" + ]) + (lib.optionals (stdenv.hostPlatform.isPower64) [ + # Do not complain about the Processor Specific ABI (i.e. the + # choice to use IEEE-standard `long double`). We pass this + # flag in order to mute a `-Werror=psabi` passed by glibc; + # hopefully future glibc releases will not pass that flag. + "-Wno-error=psabi" + ]) + ] + ); }; # glibc needs to `dlopen()` `libgcc_s.so` but does not link @@ -89,98 +105,105 @@ in # gcc.libgcc, since the path will be embedded in the resulting binary. # makeFlags = - (previousAttrs.makeFlags or []) - ++ lib.optionals (libgcc != null) [ - "user-defined-trusted-dirs=${libgcc}/lib" - ]; + (previousAttrs.makeFlags or [ ]) + ++ lib.optionals (libgcc != null) [ "user-defined-trusted-dirs=${libgcc}/lib" ]; - postInstall = previousAttrs.postInstall + (if stdenv.buildPlatform.canExecute stdenv.hostPlatform then '' - echo SUPPORTED-LOCALES=C.UTF-8/UTF-8 > ../glibc-2*/localedata/SUPPORTED - make -j''${NIX_BUILD_CORES:-1} localedata/install-locales - '' else lib.optionalString stdenv.buildPlatform.isLinux - # This is based on http://www.linuxfromscratch.org/lfs/view/development/chapter06/glibc.html - # Instead of using their patch to build a build-native localedef, - # we simply use the one from pkgsBuildBuild. - # - # Note that we can't use pkgsBuildHost (aka buildPackages) here, because - # that will cause an eval-time infinite recursion: "buildPackages.glibc - # depended on buildPackages.libgcc, which, since it's GCC, depends on the - # target's bintools, which depend on the target's glibc, which, again, - # depends on buildPackages.glibc, causing an infinute recursion when - # evaluating buildPackages.glibc when glibc hasn't come from stdenv - # (e.g. on musl)." https://github.com/NixOS/nixpkgs/pull/259964 - '' - pushd ../glibc-2*/localedata - export I18NPATH=$PWD GCONV_PATH=$PWD/../iconvdata - mkdir -p $NIX_BUILD_TOP/${pkgsBuildBuild.glibc}/lib/locale - ${lib.getBin pkgsBuildBuild.glibc}/bin/localedef \ - --alias-file=../intl/locale.alias \ - -i locales/C \ - -f charmaps/UTF-8 \ - --prefix $NIX_BUILD_TOP \ - ${if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" then - "--little-endian" - else - "--big-endian"} \ - C.UTF-8 - cp -r $NIX_BUILD_TOP/${pkgsBuildBuild.glibc}/lib/locale $out/lib - popd - '') + '' + postInstall = + previousAttrs.postInstall + + ( + if stdenv.buildPlatform.canExecute stdenv.hostPlatform then + '' + echo SUPPORTED-LOCALES=C.UTF-8/UTF-8 > ../glibc-2*/localedata/SUPPORTED + make -j''${NIX_BUILD_CORES:-1} localedata/install-locales + '' + else + lib.optionalString stdenv.buildPlatform.isLinux + # This is based on http://www.linuxfromscratch.org/lfs/view/development/chapter06/glibc.html + # Instead of using their patch to build a build-native localedef, + # we simply use the one from pkgsBuildBuild. + # + # Note that we can't use pkgsBuildHost (aka buildPackages) here, because + # that will cause an eval-time infinite recursion: "buildPackages.glibc + # depended on buildPackages.libgcc, which, since it's GCC, depends on the + # target's bintools, which depend on the target's glibc, which, again, + # depends on buildPackages.glibc, causing an infinute recursion when + # evaluating buildPackages.glibc when glibc hasn't come from stdenv + # (e.g. on musl)." https://github.com/NixOS/nixpkgs/pull/259964 + '' + pushd ../glibc-2*/localedata + export I18NPATH=$PWD GCONV_PATH=$PWD/../iconvdata + mkdir -p $NIX_BUILD_TOP/${pkgsBuildBuild.glibc}/lib/locale + ${lib.getBin pkgsBuildBuild.glibc}/bin/localedef \ + --alias-file=../intl/locale.alias \ + -i locales/C \ + -f charmaps/UTF-8 \ + --prefix $NIX_BUILD_TOP \ + ${ + if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian" then + "--little-endian" + else + "--big-endian" + } \ + C.UTF-8 + cp -r $NIX_BUILD_TOP/${pkgsBuildBuild.glibc}/lib/locale $out/lib + popd + '' + ) + + '' - test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache + test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache - if test -n "$linuxHeaders"; then - # Include the Linux kernel headers in Glibc, except the `scsi' - # subdirectory, which Glibc provides itself. - (cd $dev/include && \ - ln -sv $(ls -d $linuxHeaders/include/* | grep -v scsi\$) .) - fi + if test -n "$linuxHeaders"; then + # Include the Linux kernel headers in Glibc, except the `scsi' + # subdirectory, which Glibc provides itself. + (cd $dev/include && \ + ln -sv $(ls -d $linuxHeaders/include/* | grep -v scsi\$) .) + fi - # Fix for NIXOS-54 (ldd not working on x86_64). Make a symlink - # "lib64" to "lib". - if test -n "$is64bit"; then - ln -s lib $out/lib64 - fi + # Fix for NIXOS-54 (ldd not working on x86_64). Make a symlink + # "lib64" to "lib". + if test -n "$is64bit"; then + ln -s lib $out/lib64 + fi - # Get rid of more unnecessary stuff. - rm -rf $out/var $bin/bin/sln + # Get rid of more unnecessary stuff. + rm -rf $out/var $bin/bin/sln - # Backwards-compatibility to fix e.g. - # "configure: error: Pthreads are required to build libgomp" during `gcc`-build - # because it's not actually needed anymore to link against `pthreads` since - # it's now part of `libc.so.6` itself, but the gcc build breaks if - # this doesn't work. - ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so - ln -sf $out/lib/librt.so.1 $out/lib/librt.so - ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so - test -f $out/lib/libutil.so.1 && ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so - touch $out/lib/libpthread.a + # Backwards-compatibility to fix e.g. + # "configure: error: Pthreads are required to build libgomp" during `gcc`-build + # because it's not actually needed anymore to link against `pthreads` since + # it's now part of `libc.so.6` itself, but the gcc build breaks if + # this doesn't work. + ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so + ln -sf $out/lib/librt.so.1 $out/lib/librt.so + ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so + test -f $out/lib/libutil.so.1 && ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so + touch $out/lib/libpthread.a - # Put libraries for static linking in a separate output. Note - # that libc_nonshared.a and libpthread_nonshared.a are required - # for dynamically-linked applications. - mkdir -p $static/lib - mv $out/lib/*.a $static/lib - mv $static/lib/lib*_nonshared.a $out/lib - # If libutil.so.1 is missing, libutil.a is required. - test -f $out/lib/libutil.so.1 || mv $static/lib/libutil.a $out/lib - # Some of *.a files are linker scripts where moving broke the paths. - sed "/^GROUP/s|$out/lib/lib|$static/lib/lib|g" \ - -i "$static"/lib/*.a + # Put libraries for static linking in a separate output. Note + # that libc_nonshared.a and libpthread_nonshared.a are required + # for dynamically-linked applications. + mkdir -p $static/lib + mv $out/lib/*.a $static/lib + mv $static/lib/lib*_nonshared.a $out/lib + # If libutil.so.1 is missing, libutil.a is required. + test -f $out/lib/libutil.so.1 || mv $static/lib/libutil.a $out/lib + # Some of *.a files are linker scripts where moving broke the paths. + sed "/^GROUP/s|$out/lib/lib|$static/lib/lib|g" \ + -i "$static"/lib/*.a - # Work around a Nix bug: hard links across outputs cause a build failure. - cp $bin/bin/getconf $bin/bin/getconf_ - mv $bin/bin/getconf_ $bin/bin/getconf - ''; + # Work around a Nix bug: hard links across outputs cause a build failure. + cp $bin/bin/getconf $bin/bin/getconf_ + mv $bin/bin/getconf_ $bin/bin/getconf + ''; separateDebugInfo = true; passthru = - (previousAttrs.passthru or {}) - // lib.optionalAttrs (libgcc != null) { - inherit libgcc; - }; - - meta = (previousAttrs.meta or {}) // { description = "The GNU C Library"; }; -}) + (previousAttrs.passthru or { }) + // lib.optionalAttrs (libgcc != null) { inherit libgcc; }; + meta = (previousAttrs.meta or { }) // { + description = "The GNU C Library"; + }; + }) diff --git a/pkgs/by-name/gl/glibc/info.nix b/pkgs/by-name/gl/glibc/info.nix index d643d8a..380ee25 100644 --- a/pkgs/by-name/gl/glibc/info.nix +++ b/pkgs/by-name/gl/glibc/info.nix @@ -1,13 +1,20 @@ -{ callPackage, texinfo, perl }: +{ + callPackage, + texinfo, + perl, +}: -callPackage ./common.nix {} { +callPackage ./common.nix { } { pname = "glibc-info"; outputs = [ "out" ]; configureFlags = [ "--enable-add-ons" ]; - extraNativeBuildInputs = [ texinfo perl ]; + extraNativeBuildInputs = [ + texinfo + perl + ]; makeFlags = [ "info" ]; diff --git a/pkgs/by-name/gl/glibc/locales.nix b/pkgs/by-name/gl/glibc/locales.nix index eddeb5e..ec8b2ed 100644 --- a/pkgs/by-name/gl/glibc/locales.nix +++ b/pkgs/by-name/gl/glibc/locales.nix @@ -1,86 +1,95 @@ -/* This function builds just the `lib/locale/locale-archive' file from - Glibc and nothing else. If `allLocales' is true, all supported - locales are included; otherwise, just the locales listed in - `locales'. See localedata/SUPPORTED in the Glibc source tree for - the list of all supported locales: - https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED +/* + This function builds just the `lib/locale/locale-archive' file from + Glibc and nothing else. If `allLocales' is true, all supported + locales are included; otherwise, just the locales listed in + `locales'. See localedata/SUPPORTED in the Glibc source tree for + the list of all supported locales: + https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED */ -{ lib, stdenv, buildPackages, callPackage, writeText, glibc -, allLocales ? true, locales ? [ "en_US.UTF-8/UTF-8" ] +{ + lib, + stdenv, + buildPackages, + callPackage, + writeText, + glibc, + allLocales ? true, + locales ? [ "en_US.UTF-8/UTF-8" ], }: (callPackage ./common.nix { inherit stdenv; } { pname = "glibc-locales"; extraNativeBuildInputs = [ glibc ]; -}).overrideAttrs(finalAttrs: previousAttrs: { +}).overrideAttrs + ( + finalAttrs: previousAttrs: { - builder = ./locales-builder.sh; + builder = ./locales-builder.sh; - outputs = [ "out" ]; + outputs = [ "out" ]; - LOCALEDEF_FLAGS = [ - (if stdenv.hostPlatform.isLittleEndian - then "--little-endian" - else "--big-endian") - ]; + LOCALEDEF_FLAGS = [ + (if stdenv.hostPlatform.isLittleEndian then "--little-endian" else "--big-endian") + ]; - preBuild = (previousAttrs.preBuild or "") + '' - # Awful hack: `localedef' doesn't allow the path to `locale-archive' - # to be overriden, but you *can* specify a prefix, i.e. it will use - # //lib/locale/locale-archive. So we use - # $TMPDIR as a prefix, meaning that the locale-archive is placed in - # $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive. - LOCALEDEF_FLAGS+=" --prefix=$TMPDIR" + preBuild = + (previousAttrs.preBuild or "") + + '' + # Awful hack: `localedef' doesn't allow the path to `locale-archive' + # to be overriden, but you *can* specify a prefix, i.e. it will use + # //lib/locale/locale-archive. So we use + # $TMPDIR as a prefix, meaning that the locale-archive is placed in + # $TMPDIR/nix/store/...-glibc-.../lib/locale/locale-archive. + LOCALEDEF_FLAGS+=" --prefix=$TMPDIR" - mkdir -p $TMPDIR/"${buildPackages.glibc.out}/lib/locale" + mkdir -p $TMPDIR/"${buildPackages.glibc.out}/lib/locale" - echo 'C.UTF-8/UTF-8 \' >> ../glibc-2*/localedata/SUPPORTED + echo 'C.UTF-8/UTF-8 \' >> ../glibc-2*/localedata/SUPPORTED - # Hack to allow building of the locales (needed since glibc-2.12) - sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef $(LOCALEDEF_FLAGS),' ../glibc-2*/localedata/Makefile - '' - + lib.optionalString (!allLocales) '' - # Check that all locales to be built are supported - echo -n '${lib.concatMapStrings (s: s + " \\\n") locales}' \ - | sort -u > locales-to-build.txt - cat ../glibc-2*/localedata/SUPPORTED | grep ' \\' \ - | sort -u > locales-supported.txt - comm -13 locales-supported.txt locales-to-build.txt \ - > locales-unsupported.txt - if [[ $(wc -c locales-unsupported.txt) != "0 locales-unsupported.txt" ]]; then - cat locales-supported.txt - echo "Error: unsupported locales detected:" - cat locales-unsupported.txt - echo "You should choose from the list above the error." - false - fi + # Hack to allow building of the locales (needed since glibc-2.12) + sed -i -e 's,^$(rtld-prefix) $(common-objpfx)locale/localedef,localedef $(LOCALEDEF_FLAGS),' ../glibc-2*/localedata/Makefile + '' + + lib.optionalString (!allLocales) '' + # Check that all locales to be built are supported + echo -n '${lib.concatMapStrings (s: s + " \\\n") locales}' \ + | sort -u > locales-to-build.txt + cat ../glibc-2*/localedata/SUPPORTED | grep ' \\' \ + | sort -u > locales-supported.txt + comm -13 locales-supported.txt locales-to-build.txt \ + > locales-unsupported.txt + if [[ $(wc -c locales-unsupported.txt) != "0 locales-unsupported.txt" ]]; then + cat locales-supported.txt + echo "Error: unsupported locales detected:" + cat locales-unsupported.txt + echo "You should choose from the list above the error." + false + fi - echo SUPPORTED-LOCALES='${toString locales}' > ../glibc-2*/localedata/SUPPORTED - ''; + echo SUPPORTED-LOCALES='${toString locales}' > ../glibc-2*/localedata/SUPPORTED + ''; - # Current `nixpkgs` way of building locales is not compatible with - # parallel install. `locale-archive` is updated in parallel with - # multiple `localedef` processes and causes non-deterministic result: - # https://github.com/NixOS/nixpkgs/issues/245360 - enableParallelBuilding = false; + # Current `nixpkgs` way of building locales is not compatible with + # parallel install. `locale-archive` is updated in parallel with + # multiple `localedef` processes and causes non-deterministic result: + # https://github.com/NixOS/nixpkgs/issues/245360 + enableParallelBuilding = false; - makeFlags = (previousAttrs.makeFlags or []) ++ [ - "localedata/install-locales" - "localedir=${builtins.placeholder "out"}/lib/locale" - ]; + makeFlags = (previousAttrs.makeFlags or [ ]) ++ [ + "localedata/install-locales" + "localedir=${builtins.placeholder "out"}/lib/locale" + ]; - installPhase = - '' - mkdir -p "$out/lib/locale" "$out/share/i18n" - cp -v "$TMPDIR/$NIX_STORE/"*"/lib/locale/locale-archive" "$out/lib/locale" - cp -v ../glibc-2*/localedata/SUPPORTED "$out/share/i18n/SUPPORTED" - ''; + installPhase = '' + mkdir -p "$out/lib/locale" "$out/share/i18n" + cp -v "$TMPDIR/$NIX_STORE/"*"/lib/locale/locale-archive" "$out/lib/locale" + cp -v ../glibc-2*/localedata/SUPPORTED "$out/share/i18n/SUPPORTED" + ''; - setupHook = writeText "locales-setup-hook.sh" - '' - export LOCALE_ARCHIVE=@out@/lib/locale/locale-archive - ''; + setupHook = writeText "locales-setup-hook.sh" '' + export LOCALE_ARCHIVE=@out@/lib/locale/locale-archive + ''; - meta.description = "Locale information for the GNU C Library"; -}) + meta.description = "Locale information for the GNU C Library"; + } + ) diff --git a/pkgs/by-name/gl/glibc/multi.nix b/pkgs/by-name/gl/glibc/multi.nix index 5cd4895..002c5aa 100644 --- a/pkgs/by-name/gl/glibc/multi.nix +++ b/pkgs/by-name/gl/glibc/multi.nix @@ -1,5 +1,8 @@ -{ lib -, runCommand, glibc, glibc32 +{ + lib, + runCommand, + glibc, + glibc32, }: let @@ -9,9 +12,13 @@ in runCommand "${nameVersion.name}-multi-${nameVersion.version}" # out as the first output is an exception exclusive to glibc { - outputs = [ "out" "bin" "dev" ]; # TODO: no static version here (yet) + outputs = [ + "out" + "bin" + "dev" + ]; # TODO: no static version here (yet) passthru = { - libgcc = lib.lists.filter (x: x!=null) [ + libgcc = lib.lists.filter (x: x != null) [ (glibc64.libgcc or null) (glibc32.libgcc or null) ]; diff --git a/pkgs/by-name/gl/glibc/packages.nix b/pkgs/by-name/gl/glibc/packages.nix index dc55236..14c2af9 100644 --- a/pkgs/by-name/gl/glibc/packages.nix +++ b/pkgs/by-name/gl/glibc/packages.nix @@ -1,17 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { glibc = callPackage ./. { stdenv = gccStdenv; # doesn't compile without gcc }; mtrace = callPackage ./mtrace.nix { }; - glibc_memusage = callPackage ./. { - withGd = true; - }; + glibc_memusage = callPackage ./. { withGd = true; }; # Being redundant to avoid cycles on boot. TODO: find a better way glibcCross = callPackage ./. { @@ -26,13 +23,15 @@ with pkgs; # Only supported on Linux and only on glibc glibcLocales = - if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu - then callPackage ./locales.nix { } - else null; + if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu then + callPackage ./locales.nix { } + else + null; glibcLocalesUtf8 = - if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu - then callPackage ./locales.nix { allLocales = false; } - else null; + if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu then + callPackage ./locales.nix { allLocales = false; } + else + null; glibcInfo = callPackage ./info.nix { }; diff --git a/pkgs/by-name/gm/gmp/4.3.2.nix b/pkgs/by-name/gm/gmp/4.3.2.nix index e809ed9..a079b4c 100644 --- a/pkgs/by-name/gm/gmp/4.3.2.nix +++ b/pkgs/by-name/gm/gmp/4.3.2.nix @@ -1,78 +1,91 @@ -{ lib, stdenv, fetchurl, m4, cxx ? true }: +{ + lib, + stdenv, + fetchurl, + m4, + cxx ? true, +}: -let self = stdenv.mkDerivation rec { - pname = "gmp"; - version = "4.3.2"; +let + self = stdenv.mkDerivation rec { + pname = "gmp"; + version = "4.3.2"; - src = fetchurl { - url = "mirror://gnu/gmp/gmp-${version}.tar.bz2"; - sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck"; - }; + src = fetchurl { + url = "mirror://gnu/gmp/gmp-${version}.tar.bz2"; + sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck"; + }; - #outputs TODO: split $cxx due to libstdc++ dependency - # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added - # - see #5855 for related discussion - outputs = [ "out" "dev" "info" ]; - passthru.static = self.out; + #outputs TODO: split $cxx due to libstdc++ dependency + # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added + # - see #5855 for related discussion + outputs = [ + "out" + "dev" + "info" + ]; + passthru.static = self.out; - nativeBuildInputs = [ m4 ]; + nativeBuildInputs = [ m4 ]; - # Prevent the build system from using sub-architecture-specific - # instructions (e.g., SSE2 on i686). - # - # This is not a problem for Apple machines, which are all alike. In - # addition, `configfsf.guess' would return `i386-apple-darwin10.2.0' on - # `x86_64-darwin', leading to a 32-bit ABI build, which is undesirable. - preConfigure = - if !stdenv.isDarwin - then "ln -sf configfsf.guess config.guess" - else ''echo "Darwin host is `./config.guess`."''; + # Prevent the build system from using sub-architecture-specific + # instructions (e.g., SSE2 on i686). + # + # This is not a problem for Apple machines, which are all alike. In + # addition, `configfsf.guess' would return `i386-apple-darwin10.2.0' on + # `x86_64-darwin', leading to a 32-bit ABI build, which is undesirable. + preConfigure = + if !stdenv.isDarwin then + "ln -sf configfsf.guess config.guess" + else + ''echo "Darwin host is `./config.guess`."''; - configureFlags = [ - (lib.enableFeature cxx "cxx") - ] ++ lib.optionals stdenv.isDarwin [ - "ac_cv_build=x86_64-apple-darwin13.4.0" - "ac_cv_host=x86_64-apple-darwin13.4.0" - ]; + configureFlags = + [ (lib.enableFeature cxx "cxx") ] + ++ lib.optionals stdenv.isDarwin [ + "ac_cv_build=x86_64-apple-darwin13.4.0" + "ac_cv_host=x86_64-apple-darwin13.4.0" + ]; - # The test t-lucnum_ui fails (on Linux/x86_64) when built with GCC 4.8. - # Newer versions of GMP don't have that issue anymore. - doCheck = false; + # The test t-lucnum_ui fails (on Linux/x86_64) when built with GCC 4.8. + # Newer versions of GMP don't have that issue anymore. + doCheck = false; - meta = { - branch = "4"; - description = "GNU multiple precision arithmetic library"; + meta = { + branch = "4"; + description = "GNU multiple precision arithmetic library"; - longDescription = - '' GMP is a free library for arbitrary precision arithmetic, operating - on signed integers, rational numbers, and floating point numbers. - There is no practical limit to the precision except the ones implied - by the available memory in the machine GMP runs on. GMP has a rich - set of functions, and the functions have a regular interface. + longDescription = '' + GMP is a free library for arbitrary precision arithmetic, operating + on signed integers, rational numbers, and floating point numbers. + There is no practical limit to the precision except the ones implied + by the available memory in the machine GMP runs on. GMP has a rich + set of functions, and the functions have a regular interface. - The main target applications for GMP are cryptography applications - and research, Internet security applications, algebra systems, - computational algebra research, etc. + The main target applications for GMP are cryptography applications + and research, Internet security applications, algebra systems, + computational algebra research, etc. - GMP is carefully designed to be as fast as possible, both for small - operands and for huge operands. The speed is achieved by using - fullwords as the basic arithmetic type, by using fast algorithms, - with highly optimised assembly code for the most common inner loops - for a lot of CPUs, and by a general emphasis on speed. + GMP is carefully designed to be as fast as possible, both for small + operands and for huge operands. The speed is achieved by using + fullwords as the basic arithmetic type, by using fast algorithms, + with highly optimised assembly code for the most common inner loops + for a lot of CPUs, and by a general emphasis on speed. - GMP is faster than any other bignum library. The advantage for GMP - increases with the operand sizes for many operations, since GMP uses - asymptotically faster algorithms. + GMP is faster than any other bignum library. The advantage for GMP + increases with the operand sizes for many operations, since GMP uses + asymptotically faster algorithms. ''; - homepage = "https://gmplib.org/"; - license = lib.licenses.lgpl3Plus; + homepage = "https://gmplib.org/"; + license = lib.licenses.lgpl3Plus; - maintainers = [ ]; - platforms = lib.platforms.all; - badPlatforms = [ "x86_64-darwin" ]; - # never built on aarch64-darwin, aarch64-linux since first introduction in nixpkgs - broken = (stdenv.isDarwin && stdenv.isAarch64) || (stdenv.isLinux && stdenv.isAarch64); + maintainers = [ ]; + platforms = lib.platforms.all; + badPlatforms = [ "x86_64-darwin" ]; + # never built on aarch64-darwin, aarch64-linux since first introduction in nixpkgs + broken = (stdenv.isDarwin && stdenv.isAarch64) || (stdenv.isLinux && stdenv.isAarch64); + }; }; -}; - in self +in +self diff --git a/pkgs/by-name/gm/gmp/5.1.x.nix b/pkgs/by-name/gm/gmp/5.1.x.nix index e4fb89d..075b48f 100644 --- a/pkgs/by-name/gm/gmp/5.1.x.nix +++ b/pkgs/by-name/gm/gmp/5.1.x.nix @@ -1,87 +1,100 @@ -{ lib, stdenv, fetchurl, m4 -, cxx ? true -, withStatic ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchurl, + m4, + cxx ? true, + withStatic ? stdenv.hostPlatform.isStatic, }: -let inherit (lib) optional; in +let + inherit (lib) optional; +in -let self = stdenv.mkDerivation rec { - pname = "gmp"; - version = "5.1.3"; +let + self = stdenv.mkDerivation rec { + pname = "gmp"; + version = "5.1.3"; - src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv - urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ]; - sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m"; - }; + src = fetchurl { + # we need to use bz2, others aren't in bootstrapping stdenv + urls = [ + "mirror://gnu/gmp/gmp-${version}.tar.bz2" + "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" + ]; + sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m"; + }; - #outputs TODO: split $cxx due to libstdc++ dependency - # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added - # - see #5855 for related discussion - outputs = [ "out" "dev" "info" ]; - passthru.static = self.out; + #outputs TODO: split $cxx due to libstdc++ dependency + # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added + # - see #5855 for related discussion + outputs = [ + "out" + "dev" + "info" + ]; + passthru.static = self.out; - nativeBuildInputs = [ m4 ]; + nativeBuildInputs = [ m4 ]; - patches = [ - ./5.1.3-CVE-2021-43618.patch - ] ++ lib.optionals stdenv.isDarwin [ - ./need-size-t.patch - ]; + patches = [ ./5.1.3-CVE-2021-43618.patch ] ++ lib.optionals stdenv.isDarwin [ ./need-size-t.patch ]; - configureFlags = [ - "--with-pic" - (lib.enableFeature cxx "cxx") - # Build a "fat binary", with routines for several sub-architectures - # (x86), except on Solaris where some tests crash with "Memory fault". - # See , for instance. - # - # no darwin because gmp uses ASM that clang doesn't like - (lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat") - # The config.guess in GMP tries to runtime-detect various - # ARM optimization flags via /proc/cpuinfo (and is also - # broken on multicore CPUs). Avoid this impurity. - "--build=${stdenv.buildPlatform.config}" - ] ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions" - ++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64" - ; + configureFlags = + [ + "--with-pic" + (lib.enableFeature cxx "cxx") + # Build a "fat binary", with routines for several sub-architectures + # (x86), except on Solaris where some tests crash with "Memory fault". + # See , for instance. + # + # no darwin because gmp uses ASM that clang doesn't like + (lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat") + # The config.guess in GMP tries to runtime-detect various + # ARM optimization flags via /proc/cpuinfo (and is also + # broken on multicore CPUs). Avoid this impurity. + "--build=${stdenv.buildPlatform.config}" + ] + ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions" + ++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64"; - doCheck = true; + doCheck = true; - dontDisableStatic = withStatic; + dontDisableStatic = withStatic; - enableParallelBuilding = true; + enableParallelBuilding = true; - meta = with lib; { - homepage = "https://gmplib.org/"; - description = "GNU multiple precision arithmetic library"; - license = licenses.gpl3Plus; + meta = with lib; { + homepage = "https://gmplib.org/"; + description = "GNU multiple precision arithmetic library"; + license = licenses.gpl3Plus; - longDescription = - '' GMP is a free library for arbitrary precision arithmetic, operating - on signed integers, rational numbers, and floating point numbers. - There is no practical limit to the precision except the ones implied - by the available memory in the machine GMP runs on. GMP has a rich - set of functions, and the functions have a regular interface. + longDescription = '' + GMP is a free library for arbitrary precision arithmetic, operating + on signed integers, rational numbers, and floating point numbers. + There is no practical limit to the precision except the ones implied + by the available memory in the machine GMP runs on. GMP has a rich + set of functions, and the functions have a regular interface. - The main target applications for GMP are cryptography applications - and research, Internet security applications, algebra systems, - computational algebra research, etc. + The main target applications for GMP are cryptography applications + and research, Internet security applications, algebra systems, + computational algebra research, etc. - GMP is carefully designed to be as fast as possible, both for small - operands and for huge operands. The speed is achieved by using - fullwords as the basic arithmetic type, by using fast algorithms, - with highly optimised assembly code for the most common inner loops - for a lot of CPUs, and by a general emphasis on speed. + GMP is carefully designed to be as fast as possible, both for small + operands and for huge operands. The speed is achieved by using + fullwords as the basic arithmetic type, by using fast algorithms, + with highly optimised assembly code for the most common inner loops + for a lot of CPUs, and by a general emphasis on speed. - GMP is faster than any other bignum library. The advantage for GMP - increases with the operand sizes for many operations, since GMP uses - asymptotically faster algorithms. + GMP is faster than any other bignum library. The advantage for GMP + increases with the operand sizes for many operations, since GMP uses + asymptotically faster algorithms. ''; - platforms = platforms.all; - badPlatforms = [ "x86_64-darwin" ]; - # never built on aarch64-darwin since first introduction in nixpkgs - broken = stdenv.isDarwin && stdenv.isAarch64; + platforms = platforms.all; + badPlatforms = [ "x86_64-darwin" ]; + # never built on aarch64-darwin since first introduction in nixpkgs + broken = stdenv.isDarwin && stdenv.isAarch64; + }; }; -}; - in self +in +self diff --git a/pkgs/by-name/gm/gmp/6.x.nix b/pkgs/by-name/gm/gmp/6.x.nix index 4487424..c59ba2e 100644 --- a/pkgs/by-name/gm/gmp/6.x.nix +++ b/pkgs/by-name/gm/gmp/6.x.nix @@ -1,7 +1,11 @@ -{ lib, stdenv, fetchurl, m4 -, cxx ? !stdenv.hostPlatform.useAndroidPrebuilt && !stdenv.hostPlatform.isWasm -, buildPackages -, withStatic ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchurl, + m4, + cxx ? !stdenv.hostPlatform.useAndroidPrebuilt && !stdenv.hostPlatform.isWasm, + buildPackages, + withStatic ? stdenv.hostPlatform.isStatic, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -9,85 +13,99 @@ # cgit) that are needed here should be included directly in Nixpkgs as # files. -let inherit (lib) optional; in +let + inherit (lib) optional; +in -let self = stdenv.mkDerivation rec { - pname = "gmp${lib.optionalString cxx "-with-cxx"}"; - version = "6.3.0"; +let + self = stdenv.mkDerivation rec { + pname = "gmp${lib.optionalString cxx "-with-cxx"}"; + version = "6.3.0"; - src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv - urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ]; - hash = "sha256-rCghGnz7YJuuLiyNYFjWbI/pZDT3QM9v4uR7AA0cIMs="; - }; + src = fetchurl { + # we need to use bz2, others aren't in bootstrapping stdenv + urls = [ + "mirror://gnu/gmp/gmp-${version}.tar.bz2" + "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" + ]; + hash = "sha256-rCghGnz7YJuuLiyNYFjWbI/pZDT3QM9v4uR7AA0cIMs="; + }; - #outputs TODO: split $cxx due to libstdc++ dependency - # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added - # - see #5855 for related discussion - outputs = [ "out" "dev" "info" ]; - passthru.static = self.out; - - strictDeps = true; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ m4 ]; - - configureFlags = [ - "--with-pic" - (lib.enableFeature cxx "cxx") - # Build a "fat binary", with routines for several sub-architectures - # (x86), except on Solaris where some tests crash with "Memory fault". - # See , for instance. - # - # no darwin because gmp uses ASM that clang doesn't like - (lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat") - # The config.guess in GMP tries to runtime-detect various - # ARM optimization flags via /proc/cpuinfo (and is also - # broken on multicore CPUs). Avoid this impurity. - "--build=${stdenv.buildPlatform.config}" - ] ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions" - ++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64" - # to build a .dll on windows, we need --disable-static + --enable-shared - # see https://gmplib.org/manual/Notes-for-Particular-Systems.html - ++ optional (!withStatic && stdenv.hostPlatform.isWindows) "--disable-static --enable-shared" - ++ optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) "--disable-assembly"; - - doCheck = true; # not cross; - - dontDisableStatic = withStatic; - - enableParallelBuilding = true; - - meta = with lib; { - homepage = "https://gmplib.org/"; - description = "GNU multiple precision arithmetic library"; - license = with licenses; [ - lgpl3Only - gpl2Only + #outputs TODO: split $cxx due to libstdc++ dependency + # maybe let ghc use a version with *.so shared with rest of nixpkgs and *.a added + # - see #5855 for related discussion + outputs = [ + "out" + "dev" + "info" ]; + passthru.static = self.out; - longDescription = - '' GMP is a free library for arbitrary precision arithmetic, operating - on signed integers, rational numbers, and floating point numbers. - There is no practical limit to the precision except the ones implied - by the available memory in the machine GMP runs on. GMP has a rich - set of functions, and the functions have a regular interface. + strictDeps = true; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ m4 ]; - The main target applications for GMP are cryptography applications - and research, Internet security applications, algebra systems, - computational algebra research, etc. + configureFlags = + [ + "--with-pic" + (lib.enableFeature cxx "cxx") + # Build a "fat binary", with routines for several sub-architectures + # (x86), except on Solaris where some tests crash with "Memory fault". + # See , for instance. + # + # no darwin because gmp uses ASM that clang doesn't like + (lib.enableFeature (!stdenv.isSunOS && stdenv.hostPlatform.isx86) "fat") + # The config.guess in GMP tries to runtime-detect various + # ARM optimization flags via /proc/cpuinfo (and is also + # broken on multicore CPUs). Avoid this impurity. + "--build=${stdenv.buildPlatform.config}" + ] + ++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions" + ++ optional (stdenv.isDarwin && stdenv.is64bit) "ABI=64" + # to build a .dll on windows, we need --disable-static + --enable-shared + # see https://gmplib.org/manual/Notes-for-Particular-Systems.html + ++ optional (!withStatic && stdenv.hostPlatform.isWindows) "--disable-static --enable-shared" + ++ optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) "--disable-assembly"; - GMP is carefully designed to be as fast as possible, both for small - operands and for huge operands. The speed is achieved by using - fullwords as the basic arithmetic type, by using fast algorithms, - with highly optimised assembly code for the most common inner loops - for a lot of CPUs, and by a general emphasis on speed. + doCheck = true; # not cross; - GMP is faster than any other bignum library. The advantage for GMP - increases with the operand sizes for many operations, since GMP uses - asymptotically faster algorithms. + dontDisableStatic = withStatic; + + enableParallelBuilding = true; + + meta = with lib; { + homepage = "https://gmplib.org/"; + description = "GNU multiple precision arithmetic library"; + license = with licenses; [ + lgpl3Only + gpl2Only + ]; + + longDescription = '' + GMP is a free library for arbitrary precision arithmetic, operating + on signed integers, rational numbers, and floating point numbers. + There is no practical limit to the precision except the ones implied + by the available memory in the machine GMP runs on. GMP has a rich + set of functions, and the functions have a regular interface. + + The main target applications for GMP are cryptography applications + and research, Internet security applications, algebra systems, + computational algebra research, etc. + + GMP is carefully designed to be as fast as possible, both for small + operands and for huge operands. The speed is achieved by using + fullwords as the basic arithmetic type, by using fast algorithms, + with highly optimised assembly code for the most common inner loops + for a lot of CPUs, and by a general emphasis on speed. + + GMP is faster than any other bignum library. The advantage for GMP + increases with the operand sizes for many operations, since GMP uses + asymptotically faster algorithms. ''; - platforms = platforms.all; - maintainers = [ maintainers.vrthra ]; + platforms = platforms.all; + maintainers = [ maintainers.vrthra ]; + }; }; -}; - in self +in +self diff --git a/pkgs/by-name/gm/gmp/packages.nix b/pkgs/by-name/gm/gmp/packages.nix index fe320c4..e85a0b2 100644 --- a/pkgs/by-name/gm/gmp/packages.nix +++ b/pkgs/by-name/gm/gmp/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gmp4 = callPackage ./4.3.2.nix { }; # required by older GHC versions gmp5 = callPackage ./5.1.x.nix { }; gmp6 = callPackage ./6.x.nix { }; diff --git a/pkgs/by-name/gn/gnu-config/default.nix b/pkgs/by-name/gn/gnu-config/default.nix index 0315f39..c46706e 100644 --- a/pkgs/by-name/gn/gnu-config/default.nix +++ b/pkgs/by-name/gn/gnu-config/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -19,7 +23,8 @@ let url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}"; hash = "sha256-Rlxf5nx9NrcugIgScWRF1NONS5RzTKjTaoY50SMjh4s="; }; -in stdenv.mkDerivation { +in +stdenv.mkDerivation { pname = "gnu-config"; version = "2023-09-19"; @@ -58,7 +63,10 @@ in stdenv.mkDerivation { # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. - maintainers = with maintainers; [ dezgeg emilytrau ]; + maintainers = with maintainers; [ + dezgeg + emilytrau + ]; platforms = platforms.all; }; } diff --git a/pkgs/by-name/gn/gnugrep/default.nix b/pkgs/by-name/gn/gnugrep/default.nix index 5df8127..6b791b7 100644 --- a/pkgs/by-name/gn/gnugrep/default.nix +++ b/pkgs/by-name/gn/gnugrep/default.nix @@ -1,11 +1,21 @@ -{ lib, stdenv, glibcLocales, fetchurl, pcre2, libiconv, perl }: +{ + lib, + stdenv, + glibcLocales, + fetchurl, + pcre2, + libiconv, + perl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or # cgit) that are needed here should be included directly in Nixpkgs as # files. -let version = "3.11"; in +let + version = "3.11"; +in stdenv.mkDerivation { pname = "gnugrep"; @@ -19,19 +29,36 @@ stdenv.mkDerivation { # Some gnulib tests fail # - on Musl: https://github.com/NixOS/nixpkgs/pull/228714 # - on x86_64-darwin: https://github.com/NixOS/nixpkgs/pull/228714#issuecomment-1576826330 - postPatch = if stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) then '' - sed -i 's:gnulib-tests::g' Makefile.in - '' else null; + postPatch = + if stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) then + '' + sed -i 's:gnulib-tests::g' Makefile.in + '' + else + null; - nativeCheckInputs = [ perl glibcLocales ]; - outputs = [ "out" "info" ]; # the man pages are rather small + nativeCheckInputs = [ + perl + glibcLocales + ]; + outputs = [ + "out" + "info" + ]; # the man pages are rather small - buildInputs = [ pcre2 libiconv ]; + buildInputs = [ + pcre2 + libiconv + ]; # cygwin: FAIL: multibyte-white-space # freebsd: FAIL mb-non-UTF8-performance # x86_64-darwin: fails 'stack-overflow' tests on Rosetta 2 emulator - doCheck = !stdenv.isCygwin && !stdenv.isFreeBSD && !(stdenv.isDarwin && stdenv.hostPlatform.isx86_64) && !stdenv.buildPlatform.isRiscV64; + doCheck = + !stdenv.isCygwin + && !stdenv.isFreeBSD + && !(stdenv.isDarwin && stdenv.hostPlatform.isx86_64) + && !stdenv.buildPlatform.isRiscV64; # On macOS, force use of mkdir -p, since Grep's fallback # (./install-sh) is broken. @@ -43,15 +70,14 @@ stdenv.mkDerivation { # Fix reference to sh in bootstrap-tools, and invoke grep via # absolute path rather than looking at argv[0]. - postInstall = - '' - rm $out/bin/egrep $out/bin/fgrep - echo "#! /bin/sh" > $out/bin/egrep - echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep - echo "#! /bin/sh" > $out/bin/fgrep - echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep - chmod +x $out/bin/egrep $out/bin/fgrep - ''; + postInstall = '' + rm $out/bin/egrep $out/bin/fgrep + echo "#! /bin/sh" > $out/bin/egrep + echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep + echo "#! /bin/sh" > $out/bin/fgrep + echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep + chmod +x $out/bin/egrep $out/bin/fgrep + ''; meta = with lib; { homepage = "https://www.gnu.org/software/grep/"; diff --git a/pkgs/by-name/gn/gnulib/default.nix b/pkgs/by-name/gn/gnulib/default.nix index be6719c..6c9ea05 100644 --- a/pkgs/by-name/gn/gnulib/default.nix +++ b/pkgs/by-name/gn/gnulib/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchFromSavannah, python3 }: +{ + lib, + stdenv, + fetchFromSavannah, + python3, +}: stdenv.mkDerivation rec { pname = "gnulib"; diff --git a/pkgs/by-name/gn/gnum4/default.nix b/pkgs/by-name/gn/gnum4/default.nix index 66de4eb..699d7f7 100644 --- a/pkgs/by-name/gn/gnum4/default.nix +++ b/pkgs/by-name/gn/gnum4/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -16,18 +20,23 @@ stdenv.mkDerivation rec { # https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/m4/m4-1.4.19-r1.ebuild patches = lib.optional stdenv.hostPlatform.isLoongArch64 ./loong-fix-build.patch; - postPatch = if stdenv.hostPlatform.isLoongArch64 then '' - touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die - find . -name Makefile.in -exec touch {} + || die - '' else null; + postPatch = + if stdenv.hostPlatform.isLoongArch64 then + '' + touch ./aclocal.m4 ./lib/config.hin ./configure ./doc/stamp-vti || die + find . -name Makefile.in -exec touch {} + || die + '' + else + null; strictDeps = true; enableParallelBuilding = true; doCheck = false; - configureFlags = [ "--with-syscmd-shell=${stdenv.shell}" ] - ++ lib.optional stdenv.hostPlatform.isMinGW "CFLAGS=-fno-stack-protector"; + configureFlags = [ + "--with-syscmd-shell=${stdenv.shell}" + ] ++ lib.optional stdenv.hostPlatform.isMinGW "CFLAGS=-fno-stack-protector"; meta = { description = "GNU M4, a macro processor"; diff --git a/pkgs/by-name/gn/gnum4/packages.nix b/pkgs/by-name/gn/gnum4/packages.nix index ed44883..45fd817 100644 --- a/pkgs/by-name/gn/gnum4/packages.nix +++ b/pkgs/by-name/gn/gnum4/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gnum4 = callPackage ./. { }; m4 = gnum4; } diff --git a/pkgs/by-name/gn/gnumake/4.2/default.nix b/pkgs/by-name/gn/gnumake/4.2/default.nix index 21e9abd..a8b8567 100644 --- a/pkgs/by-name/gn/gnumake/4.2/default.nix +++ b/pkgs/by-name/gn/gnumake/4.2/default.nix @@ -1,6 +1,13 @@ -{ lib, stdenv, fetchurl, guileSupport ? false, pkg-config ? null , guile ? null }: +{ + lib, + stdenv, + fetchurl, + guileSupport ? false, + pkg-config ? null, + guile ? null, +}: -assert guileSupport -> ( pkg-config != null && guile != null ); +assert guileSupport -> (pkg-config != null && guile != null); stdenv.mkDerivation rec { pname = "gnumake"; @@ -26,7 +33,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = lib.optionals guileSupport [ pkg-config ]; buildInputs = lib.optionals guileSupport [ guile ]; - configureFlags = lib.optional guileSupport "--with-guile" + configureFlags = + lib.optional guileSupport "--with-guile" # Make uses this test to decide whether it should keep track of # subseconds. Apple made this possible with APFS and macOS 10.13. @@ -37,7 +45,11 @@ stdenv.mkDerivation rec { # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion. ++ lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no"; - outputs = [ "out" "man" "info" ]; + outputs = [ + "out" + "man" + "info" + ]; meta = with lib; { description = "A tool to control the generation of non-source files from sources"; diff --git a/pkgs/by-name/gn/gnumake/default.nix b/pkgs/by-name/gn/gnumake/default.nix index 23fe1b5..f648714 100644 --- a/pkgs/by-name/gn/gnumake/default.nix +++ b/pkgs/by-name/gn/gnumake/default.nix @@ -1,10 +1,12 @@ -{ lib -, stdenv -, fetchurl -, guileSupport ? false, guile -# avoid guile depend on bootstrap to prevent dependency cycles -, inBootstrap ? false -, pkg-config +{ + lib, + stdenv, + fetchurl, + guileSupport ? false, + guile, + # avoid guile depend on bootstrap to prevent dependency cycles + inBootstrap ? false, + pkg-config, # for passthru.tests # , gnumake }: @@ -35,7 +37,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = lib.optionals guileEnabled [ pkg-config ]; buildInputs = lib.optionals guileEnabled [ guile ]; - configureFlags = lib.optional guileEnabled "--with-guile" + configureFlags = + lib.optional guileEnabled "--with-guile" # Make uses this test to decide whether it should keep track of # subseconds. Apple made this possible with APFS and macOS 10.13. @@ -46,7 +49,11 @@ stdenv.mkDerivation rec { # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion. ++ lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no"; - outputs = [ "out" "man" "info" ]; + outputs = [ + "out" + "man" + "info" + ]; separateDebugInfo = true; # passthru.tests = { diff --git a/pkgs/by-name/gn/gnumake/packages.nix b/pkgs/by-name/gn/gnumake/packages.nix index d516d78..64dccbe 100644 --- a/pkgs/by-name/gn/gnumake/packages.nix +++ b/pkgs/by-name/gn/gnumake/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gnumake = callPackage ./. { }; gnumake42 = callPackage ./4.2 { }; } diff --git a/pkgs/by-name/gn/gnupatch/default.nix b/pkgs/by-name/gn/gnupatch/default.nix index c19e087..d6dfd13 100644 --- a/pkgs/by-name/gn/gnupatch/default.nix +++ b/pkgs/by-name/gn/gnupatch/default.nix @@ -1,5 +1,9 @@ -{ lib, stdenv, fetchurl -, ed, autoreconfHook +{ + lib, + stdenv, + fetchurl, + ed, + autoreconfHook, }: stdenv.mkDerivation rec { @@ -38,17 +42,17 @@ stdenv.mkDerivation rec { ]; doCheck = stdenv.hostPlatform.libc != "musl"; # not cross; - nativeCheckInputs = [ed]; + nativeCheckInputs = [ ed ]; meta = { description = "GNU Patch, a program to apply differences to files"; mainProgram = "patch"; - longDescription = - '' GNU Patch takes a patch file containing a difference listing - produced by the diff program and applies those differences to one or - more original files, producing patched versions. - ''; + longDescription = '' + GNU Patch takes a patch file containing a difference listing + produced by the diff program and applies those differences to one or + more original files, producing patched versions. + ''; homepage = "https://savannah.gnu.org/projects/patch"; diff --git a/pkgs/by-name/gn/gnupatch/packages.nix b/pkgs/by-name/gn/gnupatch/packages.nix index a4025d7..1a923a4 100644 --- a/pkgs/by-name/gn/gnupatch/packages.nix +++ b/pkgs/by-name/gn/gnupatch/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gnupatch = callPackage ./. { }; patch = gnupatch; } diff --git a/pkgs/by-name/gn/gnused/default.nix b/pkgs/by-name/gn/gnused/default.nix index f493e4f..2971673 100644 --- a/pkgs/by-name/gn/gnused/default.nix +++ b/pkgs/by-name/gn/gnused/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, perl }: +{ + lib, + stdenv, + fetchurl, + perl, +}: stdenv.mkDerivation rec { pname = "gnused"; @@ -9,7 +14,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE="; }; - outputs = [ "out" "info" ]; + outputs = [ + "out" + "info" + ]; nativeBuildInputs = [ perl ]; preConfigure = "patchShebangs ./build-aux/help2man"; diff --git a/pkgs/by-name/gn/gnutar/default.nix b/pkgs/by-name/gn/gnutar/default.nix index 331d977..6ab34c0 100644 --- a/pkgs/by-name/gn/gnutar/default.nix +++ b/pkgs/by-name/gn/gnutar/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, autoreconfHook, acl, libintl }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + acl, + libintl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -28,7 +35,10 @@ stdenv.mkDerivation rec { substituteInPlace src/system.c --replace '_(' 'N_(' ''; - outputs = [ "out" "info" ]; + outputs = [ + "out" + "info" + ]; nativeBuildInputs = lib.optional stdenv.isDarwin autoreconfHook; # Add libintl on Darwin specifically as it fails to link (or skip) @@ -40,11 +50,17 @@ stdenv.mkDerivation rec { # May have some issues with root compilation because the bootstrap tool # cannot be used as a login shell for now. - FORCE_UNSAFE_CONFIGURE = lib.optionalString (stdenv.hostPlatform.system == "armv7l-linux" || stdenv.isSunOS) "1"; + FORCE_UNSAFE_CONFIGURE = lib.optionalString ( + stdenv.hostPlatform.system == "armv7l-linux" || stdenv.isSunOS + ) "1"; - preConfigure = if stdenv.isCygwin then '' - sed -i gnu/fpending.h -e 's,include ,,' - '' else null; + preConfigure = + if stdenv.isCygwin then + '' + sed -i gnu/fpending.h -e 's,include ,,' + '' + else + null; doCheck = false; # fails doInstallCheck = false; # fails diff --git a/pkgs/by-name/gn/gnutls/default.nix b/pkgs/by-name/gn/gnutls/default.nix index 28eb6a8..b2e2a85 100644 --- a/pkgs/by-name/gn/gnutls/default.nix +++ b/pkgs/by-name/gn/gnutls/default.nix @@ -1,36 +1,37 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch2 -, zlib -, lzo -, libtasn1 -, nettle -, pkg-config -, lzip -, perl -, gmp -, autoconf -, automake -, libidn2 -, libiconv -, texinfo -, unbound -, dns-root-data -, gettext -, util-linux -, cxxBindings ? !stdenv.hostPlatform.isStatic # tries to link libstdc++.so -, tpmSupport ? false -, trousers -, which -, nettools -, libunistring -, withP11-kit ? !stdenv.hostPlatform.isStatic -, p11-kit -, Security # darwin Security.framework - # certificate compression - only zlib now, more possible: zstd, brotli +{ + lib, + stdenv, + fetchurl, + fetchpatch2, + zlib, + lzo, + libtasn1, + nettle, + pkg-config, + lzip, + perl, + gmp, + autoconf, + automake, + libidn2, + libiconv, + texinfo, + unbound, + dns-root-data, + gettext, + util-linux, + cxxBindings ? !stdenv.hostPlatform.isStatic, # tries to link libstdc++.so + tpmSupport ? false, + trousers, + which, + nettools, + libunistring, + withP11-kit ? !stdenv.hostPlatform.isStatic, + p11-kit, + Security, # darwin Security.framework +# certificate compression - only zlib now, more possible: zstd, brotli - # for passthru.tests +# for passthru.tests # , curlWithGnuTls # , emacs # , ffmpeg @@ -50,8 +51,7 @@ let # XXX: Gnulib's `test-select' fails on FreeBSD: # https://hydra.nixos.org/build/2962084/nixlog/1/raw . - doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin - && stdenv.buildPlatform == stdenv.hostPlatform; + doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin && stdenv.buildPlatform == stdenv.hostPlatform; inherit (stdenv.hostPlatform) isDarwin; in @@ -65,8 +65,16 @@ stdenv.mkDerivation rec { hash = "sha256-K+pOFUeU8/ABgPoqXFH+iwBax6Mc1YvUTN+n8268Ops="; }; - outputs = [ "bin" "dev" "out" ] - ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ "man" "devdoc" ]; + outputs = + [ + "bin" + "dev" + "out" + ] + ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ + "man" + "devdoc" + ]; # Not normally useful docs. outputInfo = "devdoc"; @@ -91,47 +99,74 @@ stdenv.mkDerivation rec { # - trust-store: default trust store path (/etc/ssl/...) is missing in sandbox (3.5.11) # - psk-file: no idea; it broke between 3.6.3 and 3.6.4 # Change p11-kit test to use pkg-config to find p11-kit - postPatch = '' - sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh - sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c - sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh - '' + lib.optionalString stdenv.hostPlatform.isMusl '' # See https://gitlab.com/gnutls/gnutls/-/issues/945 - sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool.sh - '' + lib.optionalString stdenv.hostPlatform.isStatic '' - # Adapted from https://gitlab.com/gnutls/gnutls/-/commit/d214cd4570fb1559a20e941bb7ceac7df52e96d3 - # Can be removed with 3.8.5+. - sed -i lib/nettle/backport/rsa-sign-tr.c -e \ - '/^#include /i\ - #define nettle_rsa_compute_root_tr _gnutls_nettle_backport_rsa_compute_root_tr' - ''; + postPatch = + '' + sed '2iexit 77' -i tests/{pkgconfig,fastopen}.sh + sed '/^void doit(void)/,/^{/ s/{/{ exit(77);/' -i tests/{trust-store,psk-file}.c + sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh + '' + + lib.optionalString stdenv.hostPlatform.isMusl '' + # See https://gitlab.com/gnutls/gnutls/-/issues/945 + sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool.sh + '' + + lib.optionalString stdenv.hostPlatform.isStatic '' + # Adapted from https://gitlab.com/gnutls/gnutls/-/commit/d214cd4570fb1559a20e941bb7ceac7df52e96d3 + # Can be removed with 3.8.5+. + sed -i lib/nettle/backport/rsa-sign-tr.c -e \ + '/^#include /i\ + #define nettle_rsa_compute_root_tr _gnutls_nettle_backport_rsa_compute_root_tr' + ''; preConfigure = "patchShebangs ."; configureFlags = lib.optionals withP11-kit [ "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt" "--with-default-trust-store-pkcs11=pkcs11:" - ] ++ [ + ] + ++ [ "--disable-dependency-tracking" "--enable-fast-install" "--with-unbound-root-key-file=${dns-root-data}/root.key" (lib.withFeature withP11-kit "p11-kit") (lib.enableFeature cxxBindings "cxx") - ] ++ lib.optionals (stdenv.hostPlatform.isMinGW) [ - "--disable-doc" - ]; + ] + ++ lib.optionals (stdenv.hostPlatform.isMinGW) [ "--disable-doc" ]; enableParallelBuilding = true; hardeningDisable = [ "trivialautovarinit" ]; - buildInputs = [ lzo lzip libtasn1 libidn2 zlib gmp libunistring unbound gettext libiconv ] - ++ lib.optional (withP11-kit) p11-kit - ++ lib.optional (tpmSupport && stdenv.isLinux) trousers; + buildInputs = [ + lzo + lzip + libtasn1 + libidn2 + zlib + gmp + libunistring + unbound + gettext + libiconv + ] ++ lib.optional (withP11-kit) p11-kit ++ lib.optional (tpmSupport && stdenv.isLinux) trousers; - nativeBuildInputs = [ perl pkg-config texinfo ] ++ [ autoconf automake ] - ++ lib.optionals doCheck [ which nettools util-linux ]; + nativeBuildInputs = + [ + perl + pkg-config + texinfo + ] + ++ [ + autoconf + automake + ] + ++ lib.optionals doCheck [ + which + nettools + util-linux + ]; - propagatedBuildInputs = [ nettle ] + propagatedBuildInputs = + [ nettle ] # Builds dynamically linking against gnutls seem to need the framework now. ++ lib.optional isDarwin Security; @@ -141,17 +176,19 @@ stdenv.mkDerivation rec { preCheck = "NIX_SSL_CERT_FILE=${./dummy.crt}"; # Fixup broken libtool and pkg-config files - preFixup = lib.optionalString (!isDarwin) '' - sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \ - -e 's,-lz,-L${zlib.out}/lib -lz,' \ - -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \ - -e 's,-lgmp,-L${gmp.out}/lib -lgmp,' \ - -i $out/lib/*.la "$dev/lib/pkgconfig/gnutls.pc" - '' + '' - # It seems only useful for static linking but basically noone does that. - substituteInPlace "$out/lib/libgnutls.la" \ - --replace "-lunistring" "" - ''; + preFixup = + lib.optionalString (!isDarwin) '' + sed ${lib.optionalString tpmSupport "-e 's,-ltspi,-L${trousers}/lib -ltspi,'"} \ + -e 's,-lz,-L${zlib.out}/lib -lz,' \ + -e 's,-L${gmp.dev}/lib,-L${gmp.out}/lib,' \ + -e 's,-lgmp,-L${gmp.out}/lib -lgmp,' \ + -i $out/lib/*.la "$dev/lib/pkgconfig/gnutls.pc" + '' + + '' + # It seems only useful for static linking but basically noone does that. + substituteInPlace "$out/lib/libgnutls.la" \ + --replace "-lunistring" "" + ''; # passthru.tests = { # inherit ngtcp2-gnutls curlWithGnuTls ffmpeg emacs qemu knot-resolver samba openconnect; diff --git a/pkgs/by-name/gn/gnutls/packages.nix b/pkgs/by-name/gn/gnutls/packages.nix index f595e4f..267f8b0 100644 --- a/pkgs/by-name/gn/gnutls/packages.nix +++ b/pkgs/by-name/gn/gnutls/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gnutls = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; util-linux = util-linuxMinimal; # break the cyclic dependency diff --git a/pkgs/by-name/gp/gperf/3.0.x.nix b/pkgs/by-name/gp/gperf/3.0.x.nix index bceef75..9fb2caa 100644 --- a/pkgs/by-name/gp/gperf/3.0.x.nix +++ b/pkgs/by-name/gp/gperf/3.0.x.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, autoreconfHook }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, +}: stdenv.mkDerivation rec { pname = "gperf"; diff --git a/pkgs/by-name/gp/gperf/default.nix b/pkgs/by-name/gp/gperf/default.nix index bdc3b7a..150a0cf 100644 --- a/pkgs/by-name/gp/gperf/default.nix +++ b/pkgs/by-name/gp/gperf/default.nix @@ -1,4 +1,8 @@ -{lib, stdenv, fetchurl}: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "gperf"; diff --git a/pkgs/by-name/gp/gperf/packages.nix b/pkgs/by-name/gp/gperf/packages.nix index a91b33b..0ed7395 100644 --- a/pkgs/by-name/gp/gperf/packages.nix +++ b/pkgs/by-name/gp/gperf/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gperf = callPackage ./. { }; # 3.1 changed some parameters from int to size_t, leading to mismatches. gperf_3_0 = callPackage ./3.0.x.nix { }; diff --git a/pkgs/by-name/gp/gpm/default.nix b/pkgs/by-name/gp/gpm/default.nix index 1c083b8..be5ffe8 100644 --- a/pkgs/by-name/gp/gpm/default.nix +++ b/pkgs/by-name/gp/gpm/default.nix @@ -1,5 +1,17 @@ -{ lib, stdenv, fetchFromGitHub, automake, autoconf, libtool, flex, bison, texinfo, fetchpatch, pkgsStatic -, withNcurses ? true, ncurses +{ + lib, + stdenv, + fetchFromGitHub, + automake, + autoconf, + libtool, + flex, + bison, + texinfo, + fetchpatch, + pkgsStatic, + withNcurses ? true, + ncurses, }: stdenv.mkDerivation rec { @@ -17,13 +29,21 @@ stdenv.mkDerivation rec { substituteInPlace src/prog/gpm-root.y --replace __sigemptyset sigemptyset ''; - nativeBuildInputs = [ automake autoconf libtool flex bison texinfo ]; + nativeBuildInputs = [ + automake + autoconf + libtool + flex + bison + texinfo + ]; buildInputs = [ ncurses ]; hardeningDisable = [ "format" ]; patches = [ - (fetchpatch { # pull request telmich/gpm#42 + (fetchpatch { + # pull request telmich/gpm#42 url = "https://github.com/kaction/gpm/commit/217b4fe4c9b62298a4e9a54c1f07e3b52b013a09.patch"; sha256 = "1f74h12iph4z1dldbxk9imcq11805c3ai2xhbsqvx8jpjrcfp19q"; }) diff --git a/pkgs/by-name/gp/gpm/packages.nix b/pkgs/by-name/gp/gpm/packages.nix index f900d7b..15beda9 100644 --- a/pkgs/by-name/gp/gpm/packages.nix +++ b/pkgs/by-name/gp/gpm/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { gpm = callPackage ./. { withNcurses = false; # Keep curses disabled for lack of value diff --git a/pkgs/by-name/gr/graphviz/default.nix b/pkgs/by-name/gr/graphviz/default.nix index dfa994d..59f5cc9 100644 --- a/pkgs/by-name/gr/graphviz/default.nix +++ b/pkgs/by-name/gr/graphviz/default.nix @@ -1,25 +1,26 @@ -{ lib -, stdenv -, fetchFromGitLab -, autoreconfHook -, pkg-config -, cairo -, expat -, flex -, fontconfig -, gd -, gts -, libjpeg -, libpng -, libtool -, pango -, bash -, bison -, xorg -, ApplicationServices -, Foundation -, python3 -, withXorg ? true +{ + lib, + stdenv, + fetchFromGitLab, + autoreconfHook, + pkg-config, + cairo, + expat, + flex, + fontconfig, + gd, + gts, + libjpeg, + libpng, + libtool, + pango, + bash, + bison, + xorg, + ApplicationServices, + Foundation, + python3, + withXorg ? true, # for passthru.tests # , exiv2 @@ -49,17 +50,29 @@ stdenv.mkDerivation rec { flex ]; - buildInputs = [ - libpng - libjpeg - expat - fontconfig - gd - gts - pango - bash - ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ]) - ++ optionals stdenv.isDarwin [ ApplicationServices Foundation ]; + buildInputs = + [ + libpng + libjpeg + expat + fontconfig + gd + gts + pango + bash + ] + ++ optionals withXorg ( + with xorg; + [ + libXrender + libXaw + libXpm + ] + ) + ++ optionals stdenv.isDarwin [ + ApplicationServices + Foundation + ]; hardeningDisable = [ "fortify" ]; @@ -70,8 +83,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - CPPFLAGS = optionalString (withXorg && stdenv.isDarwin) - "-I${cairo.dev}/include/cairo"; + CPPFLAGS = optionalString (withXorg && stdenv.isDarwin) "-I${cairo.dev}/include/cairo"; doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs @@ -109,6 +121,9 @@ stdenv.mkDerivation rec { description = "Graph visualization tools"; license = licenses.epl10; platforms = platforms.unix; - maintainers = with maintainers; [ bjornfor raskin ]; + maintainers = with maintainers; [ + bjornfor + raskin + ]; }; } diff --git a/pkgs/by-name/gr/graphviz/packages.nix b/pkgs/by-name/gr/graphviz/packages.nix index 045d21e..c3d5f02 100644 --- a/pkgs/by-name/gr/graphviz/packages.nix +++ b/pkgs/by-name/gr/graphviz/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { graphviz = callPackage ./. { inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; }; diff --git a/pkgs/by-name/gr/groff/default.nix b/pkgs/by-name/gr/groff/default.nix index df06292..abe2517 100644 --- a/pkgs/by-name/gr/groff/default.nix +++ b/pkgs/by-name/gr/groff/default.nix @@ -1,15 +1,29 @@ -{ lib, stdenv, fetchurl, fetchpatch, perl -, enableGhostscript ? false -, ghostscript, gawk, libX11, libXaw, libXt, libXmu # for postscript and html output -, enableHtml ? false, psutils, netpbm # for html output -, enableIconv ? false, iconv -, enableLibuchardet ? false, libuchardet # for detecting input file encoding in preconv(1) -, buildPackages -, autoreconfHook -, pkg-config -, texinfo -, bison -, bash +{ + lib, + stdenv, + fetchurl, + fetchpatch, + perl, + enableGhostscript ? false, + ghostscript, + gawk, + libX11, + libXaw, + libXt, + libXmu, # for postscript and html output + enableHtml ? false, + psutils, + netpbm, # for html output + enableIconv ? false, + iconv, + enableLibuchardet ? false, + libuchardet, # for detecting input file encoding in preconv(1) + buildPackages, + autoreconfHook, + pkg-config, + texinfo, + bison, + bash, }: stdenv.mkDerivation rec { @@ -21,54 +35,80 @@ stdenv.mkDerivation rec { hash = "sha256-a5dX9ZK3UYtJAutq9+VFcL3Mujeocf3bLTCuOGNRHBM="; }; - outputs = [ "out" "man" "doc" "info" "perl" ]; + outputs = [ + "out" + "man" + "doc" + "info" + "perl" + ]; enableParallelBuilding = true; - postPatch = '' - # BASH_PROG gets replaced with a path to the build bash which doesn't get automatically patched by patchShebangs - substituteInPlace contrib/gdiffmk/gdiffmk.sh \ - --replace "@BASH_PROG@" "/bin/sh" - '' + lib.optionalString enableHtml '' - substituteInPlace src/preproc/html/pre-html.cpp \ - --replace "psselect" "${psutils}/bin/psselect" \ - --replace "pnmcut" "${lib.getBin netpbm}/bin/pnmcut" \ - --replace "pnmcrop" "${lib.getBin netpbm}/bin/pnmcrop" \ - --replace "pnmtopng" "${lib.getBin netpbm}/bin/pnmtopng" - substituteInPlace tmac/www.tmac.in \ - --replace "pnmcrop" "${lib.getBin netpbm}/bin/pnmcrop" \ - --replace "pngtopnm" "${lib.getBin netpbm}/bin/pngtopnm" \ - --replace "@PNMTOPS_NOSETPAGE@" "${lib.getBin netpbm}/bin/pnmtops -nosetpage" - '' + lib.optionalString (enableGhostscript || enableHtml) '' - substituteInPlace contrib/pdfmark/pdfroff.sh \ - --replace '$GROFF_GHOSTSCRIPT_INTERPRETER' "${lib.getBin ghostscript}/bin/gs" \ - --replace '$GROFF_AWK_INTERPRETER' "${lib.getBin gawk}/bin/gawk" - ''; + postPatch = + '' + # BASH_PROG gets replaced with a path to the build bash which doesn't get automatically patched by patchShebangs + substituteInPlace contrib/gdiffmk/gdiffmk.sh \ + --replace "@BASH_PROG@" "/bin/sh" + '' + + lib.optionalString enableHtml '' + substituteInPlace src/preproc/html/pre-html.cpp \ + --replace "psselect" "${psutils}/bin/psselect" \ + --replace "pnmcut" "${lib.getBin netpbm}/bin/pnmcut" \ + --replace "pnmcrop" "${lib.getBin netpbm}/bin/pnmcrop" \ + --replace "pnmtopng" "${lib.getBin netpbm}/bin/pnmtopng" + substituteInPlace tmac/www.tmac.in \ + --replace "pnmcrop" "${lib.getBin netpbm}/bin/pnmcrop" \ + --replace "pngtopnm" "${lib.getBin netpbm}/bin/pngtopnm" \ + --replace "@PNMTOPS_NOSETPAGE@" "${lib.getBin netpbm}/bin/pnmtops -nosetpage" + '' + + lib.optionalString (enableGhostscript || enableHtml) '' + substituteInPlace contrib/pdfmark/pdfroff.sh \ + --replace '$GROFF_GHOSTSCRIPT_INTERPRETER' "${lib.getBin ghostscript}/bin/gs" \ + --replace '$GROFF_AWK_INTERPRETER' "${lib.getBin gawk}/bin/gawk" + ''; strictDeps = true; - nativeBuildInputs = [ autoreconfHook pkg-config texinfo ] + nativeBuildInputs = + [ + autoreconfHook + pkg-config + texinfo + ] # Required due to the patch that changes .ypp files. ++ lib.optional (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "9") bison; - buildInputs = [ perl bash ] - ++ lib.optionals enableGhostscript [ ghostscript gawk libX11 libXaw libXt libXmu ] - ++ lib.optionals enableHtml [ psutils netpbm ] + buildInputs = + [ + perl + bash + ] + ++ lib.optionals enableGhostscript [ + ghostscript + gawk + libX11 + libXaw + libXt + libXmu + ] + ++ lib.optionals enableHtml [ + psutils + netpbm + ] ++ lib.optionals enableIconv [ iconv ] ++ lib.optionals enableLibuchardet [ libuchardet ]; # Builds running without a chroot environment may detect the presence # of /usr/X11 in the host system, leading to an impure build of the # package. To avoid this issue, X11 support is explicitly disabled. - configureFlags = lib.optionals (!enableGhostscript) [ - "--without-x" - ] ++ [ - "ac_cv_path_PERL=${buildPackages.perl}/bin/perl" - ] ++ lib.optionals enableGhostscript [ - "--with-gs=${lib.getBin ghostscript}/bin/gs" - "--with-awk=${lib.getBin gawk}/bin/gawk" - "--with-appresdir=${placeholder "out"}/lib/X11/app-defaults" - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "gl_cv_func_signbit=yes" - ]; + configureFlags = + lib.optionals (!enableGhostscript) [ "--without-x" ] + ++ [ "ac_cv_path_PERL=${buildPackages.perl}/bin/perl" ] + ++ lib.optionals enableGhostscript [ + "--with-gs=${lib.getBin ghostscript}/bin/gs" + "--with-awk=${lib.getBin gawk}/bin/gawk" + "--with-appresdir=${placeholder "out"}/lib/X11/app-defaults" + ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "gl_cv_func_signbit=yes" ]; makeFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ # Trick to get the build system find the proper 'native' groff @@ -131,6 +171,9 @@ stdenv.mkDerivation rec { implementation of the -mm macros. ''; - outputsToInstall = [ "out" "perl" ]; + outputsToInstall = [ + "out" + "perl" + ]; }; } diff --git a/pkgs/by-name/gr/grpc/default.nix b/pkgs/by-name/gr/grpc/default.nix index 46a75fc..07772c9 100644 --- a/pkgs/by-name/gr/grpc/default.nix +++ b/pkgs/by-name/gr/grpc/default.nix @@ -1,18 +1,19 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, buildPackages -, cmake -, zlib -, c-ares -, pkg-config -, re2 -, openssl -, protobuf -, grpc -, abseil-cpp -, libnsl +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + buildPackages, + cmake, + zlib, + c-ares, + pkg-config, + re2, + openssl, + protobuf, + grpc, + abseil-cpp, + libnsl, # for passthru.tests # , python3 @@ -22,8 +23,8 @@ stdenv.mkDerivation rec { pname = "grpc"; version = "1.62.1"; # N.B: if you change this, please update: - # pythonPackages.grpcio-tools - # pythonPackages.grpcio-status + # pythonPackages.grpcio-tools + # pythonPackages.grpcio-status src = fetchFromGitHub { owner = "grpc"; @@ -42,37 +43,50 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ cmake pkg-config ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) grpc; - propagatedBuildInputs = [ c-ares re2 zlib abseil-cpp ]; - buildInputs = [ openssl protobuf ] - ++ lib.optionals stdenv.isLinux [ libnsl ]; + nativeBuildInputs = [ + cmake + pkg-config + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) grpc; + propagatedBuildInputs = [ + c-ares + re2 + zlib + abseil-cpp + ]; + buildInputs = [ + openssl + protobuf + ] ++ lib.optionals stdenv.isLinux [ libnsl ]; - cmakeFlags = [ - "-DgRPC_ZLIB_PROVIDER=package" - "-DgRPC_CARES_PROVIDER=package" - "-DgRPC_RE2_PROVIDER=package" - "-DgRPC_SSL_PROVIDER=package" - "-DgRPC_PROTOBUF_PROVIDER=package" - "-DgRPC_ABSL_PROVIDER=package" - "-DBUILD_SHARED_LIBS=ON" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc" - "-D_gRPC_CPP_PLUGIN=${buildPackages.grpc}/bin/grpc_cpp_plugin" - ] - # The build scaffold defaults to c++14 on darwin, even when the compiler uses - # a more recent c++ version by default [1]. However, downgrades are - # problematic, because the compatibility types in abseil will have different - # interface definitions than the ones used for building abseil itself. - # [1] https://github.com/grpc/grpc/blob/v1.57.0/CMakeLists.txt#L239-L243 - ++ (let - defaultCxxIsOlderThan17 = - (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.cc.version "16.0") - || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.cc.version "11.0"); - in lib.optionals (stdenv.hostPlatform.isDarwin && defaultCxxIsOlderThan17) - [ - "-DCMAKE_CXX_STANDARD=17" - ]); + cmakeFlags = + [ + "-DgRPC_ZLIB_PROVIDER=package" + "-DgRPC_CARES_PROVIDER=package" + "-DgRPC_RE2_PROVIDER=package" + "-DgRPC_SSL_PROVIDER=package" + "-DgRPC_PROTOBUF_PROVIDER=package" + "-DgRPC_ABSL_PROVIDER=package" + "-DBUILD_SHARED_LIBS=ON" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${buildPackages.protobuf}/bin/protoc" + "-D_gRPC_CPP_PLUGIN=${buildPackages.grpc}/bin/grpc_cpp_plugin" + ] + # The build scaffold defaults to c++14 on darwin, even when the compiler uses + # a more recent c++ version by default [1]. However, downgrades are + # problematic, because the compatibility types in abseil will have different + # interface definitions than the ones used for building abseil itself. + # [1] https://github.com/grpc/grpc/blob/v1.57.0/CMakeLists.txt#L239-L243 + ++ ( + let + defaultCxxIsOlderThan17 = + (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.cc.version "16.0") + || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.cc.version "11.0"); + in + lib.optionals (stdenv.hostPlatform.isDarwin && defaultCxxIsOlderThan17) [ + "-DCMAKE_CXX_STANDARD=17" + ] + ); # CMake creates a build directory by default, this conflicts with the # basel BUILD file on case-insensitive filesystems. @@ -89,12 +103,13 @@ stdenv.mkDerivation rec { export LD_LIBRARY_PATH=$(pwd)''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ''; - env.NIX_CFLAGS_COMPILE = toString ([ - "-Wno-error" - ] ++ lib.optionals stdenv.isDarwin [ - # Workaround for https://github.com/llvm/llvm-project/issues/48757 - "-Wno-elaborated-enum-base" - ]); + env.NIX_CFLAGS_COMPILE = toString ( + [ "-Wno-error" ] + ++ lib.optionals stdenv.isDarwin [ + # Workaround for https://github.com/llvm/llvm-project/issues/48757 + "-Wno-elaborated-enum-base" + ] + ); enableParallelBuilds = true; diff --git a/pkgs/by-name/gr/grpc/packages.nix b/pkgs/by-name/gr/grpc/packages.nix index ab22528..06718c2 100644 --- a/pkgs/by-name/gr/grpc/packages.nix +++ b/pkgs/by-name/gr/grpc/packages.nix @@ -1,11 +1,12 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { grpc = darwin.apple_sdk_11_0.callPackage ../development/libraries/grpc { - stdenv = if stdenv.isDarwin && stdenv.isx86_64 - then overrideSDK darwin.apple_sdk_11_0.stdenv { darwinMinVersion = "10.13"; } - else stdenv; + stdenv = + if stdenv.isDarwin && stdenv.isx86_64 then + overrideSDK darwin.apple_sdk_11_0.stdenv { darwinMinVersion = "10.13"; } + else + stdenv; }; } diff --git a/pkgs/by-name/gs/gsasl/default.nix b/pkgs/by-name/gs/gsasl/default.nix index 787c096..f67f135 100644 --- a/pkgs/by-name/gs/gsasl/default.nix +++ b/pkgs/by-name/gs/gsasl/default.nix @@ -1,5 +1,10 @@ -{ fetchurl, lib, stdenv, libidn, libkrb5 -, testers +{ + fetchurl, + lib, + stdenv, + libidn, + libkrb5, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -17,7 +22,10 @@ stdenv.mkDerivation (finalAttrs: { # https://git.musl-libc.org/cgit/musl/commit/?id=b50eb8c36c20f967bd0ed70c0b0db38a450886ba patches = lib.optional stdenv.hostPlatform.isMusl ./gsasl.patch; - buildInputs = [ libidn libkrb5 ]; + buildInputs = [ + libidn + libkrb5 + ]; configureFlags = [ "--with-gssapi-impl=mit" ]; @@ -32,12 +40,12 @@ stdenv.mkDerivation (finalAttrs: { description = "GNU SASL, Simple Authentication and Security Layer library"; mainProgram = "gsasl"; - longDescription = - '' GNU SASL is a library that implements the IETF Simple - Authentication and Security Layer (SASL) framework and - some SASL mechanisms. SASL is used in network servers - (e.g. IMAP, SMTP, etc.) to authenticate peers. - ''; + longDescription = '' + GNU SASL is a library that implements the IETF Simple + Authentication and Security Layer (SASL) framework and + some SASL mechanisms. SASL is used in network servers + (e.g. IMAP, SMTP, etc.) to authenticate peers. + ''; homepage = "https://www.gnu.org/software/gsasl/"; license = lib.licenses.gpl3Plus; diff --git a/pkgs/by-name/gt/gtest/default.nix b/pkgs/by-name/gt/gtest/default.nix index 51e0c68..d305a28 100644 --- a/pkgs/by-name/gt/gtest/default.nix +++ b/pkgs/by-name/gt/gtest/default.nix @@ -1,16 +1,20 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, ninja -, static ? stdenv.hostPlatform.isStatic, +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + ninja, + static ? stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation rec { pname = "gtest"; version = "1.14.0"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "google"; @@ -19,22 +23,25 @@ stdenv.mkDerivation rec { hash = "sha256-t0RchAHTJbuI5YW4uyBPykTvcjy90JW9AOPNjIhwh6U="; }; - patches = [ - ./fix-cmake-config-includedir.patch + patches = [ ./fix-cmake-config-includedir.patch ]; + + nativeBuildInputs = [ + cmake + ninja ]; - nativeBuildInputs = [ cmake ninja ]; - - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" - ] ++ lib.optionals ( - (stdenv.cc.isGNU && (lib.versionOlder stdenv.cc.version "11.0")) - || (stdenv.cc.isClang && (lib.versionOlder stdenv.cc.version "16.0")) - ) [ - # Enable C++17 support - # https://github.com/google/googletest/issues/3081 - "-DCMAKE_CXX_STANDARD=17" - ]; + cmakeFlags = + [ "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}" ] + ++ lib.optionals + ( + (stdenv.cc.isGNU && (lib.versionOlder stdenv.cc.version "11.0")) + || (stdenv.cc.isClang && (lib.versionOlder stdenv.cc.version "16.0")) + ) + [ + # Enable C++17 support + # https://github.com/google/googletest/issues/3081 + "-DCMAKE_CXX_STANDARD=17" + ]; meta = with lib; { description = "Google's framework for writing C++ tests"; diff --git a/pkgs/by-name/gt/gtk-doc/default.nix b/pkgs/by-name/gt/gtk-doc/default.nix index 75a6731..3906867 100644 --- a/pkgs/by-name/gt/gtk-doc/default.nix +++ b/pkgs/by-name/gt/gtk-doc/default.nix @@ -1,14 +1,16 @@ -{ lib -, fetchFromGitLab -, meson -, ninja -, pkg-config -, python3 -, docbook_xml_dtd_43 -, docbook-xsl-nons -, libxslt -, gettext -, withDblatex ? false, dblatex +{ + lib, + fetchFromGitLab, + meson, + ninja, + pkg-config, + python3, + docbook_xml_dtd_43, + docbook-xsl-nons, + libxslt, + gettext, + withDblatex ? false, + dblatex, # for passthru # , gnome }: @@ -29,9 +31,7 @@ python3.pkgs.buildPythonApplication rec { sha256 = "A6OXpazrJ05SUIO1ZPVN0xHTXOSov8UnPvUolZAv/Iw="; }; - patches = [ - ./respect-xml-catalog-files-var.patch - ]; + patches = [ ./respect-xml-catalog-files-var.patch ]; postPatch = '' substituteInPlace meson.build \ @@ -57,9 +57,7 @@ python3.pkgs.buildPythonApplication rec { docbook_xml_dtd_43 docbook-xsl-nons libxslt - ] ++ lib.optionals withDblatex [ - dblatex - ]; + ] ++ lib.optionals withDblatex [ dblatex ]; pythonPath = with python3.pkgs; [ pygments # Needed for https://gitlab.gnome.org/GNOME/gtk-doc/blob/GTK_DOC_1_32/meson.build#L42 diff --git a/pkgs/by-name/gu/guile/1.8.nix b/pkgs/by-name/gu/guile/1.8.nix index 51ac9ba..97915d9 100644 --- a/pkgs/by-name/gu/guile/1.8.nix +++ b/pkgs/by-name/gu/guile/1.8.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, gawk -, gmp -, libtool -, makeWrapper -, pkg-config -, pkgsBuildBuild -, readline +{ + lib, + stdenv, + fetchurl, + buildPackages, + gawk, + gmp, + libtool, + makeWrapper, + pkg-config, + pkgsBuildBuild, + readline, }: stdenv.mkDerivation rec { @@ -20,23 +21,23 @@ stdenv.mkDerivation rec { sha256 = "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; setOutputFlags = false; # $dev gets into the library otherwise # GCC 4.6 raises a number of set-but-unused warnings. - configureFlags = [ - "--disable-error-on-warning" - ] - # Guile needs patching to preset results for the configure tests about - # pthreads, which work only in native builds. - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "--with-threads=no"; + configureFlags = + [ "--disable-error-on-warning" ] + # Guile needs patching to preset results for the configure tests about + # pthreads, which work only in native builds. + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--with-threads=no"; depsBuildBuild = [ buildPackages.stdenv.cc - ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile_1_8; + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_1_8; nativeBuildInputs = [ makeWrapper pkg-config @@ -66,16 +67,17 @@ stdenv.mkDerivation rec { sed -e '/lt_dlinit/a lt_dladdsearchdir("'$out/lib'");' -i libguile/dynl.c ''; - postInstall = '' - wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" - '' - # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for - # why `--with-libunistring-prefix' and similar options coming from - # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. - + '' - sed -i "$out/lib/pkgconfig/guile"-*.pc \ - -e "s|-lltdl|-L${libtool.lib}/lib -lltdl|g" - ''; + postInstall = + '' + wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" + '' + # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for + # why `--with-libunistring-prefix' and similar options coming from + # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. + + '' + sed -i "$out/lib/pkgconfig/guile"-*.pc \ + -e "s|-lltdl|-L${libtool.lib}/lib -lltdl|g" + ''; # One test fails. # ERROR: file: "libtest-asmobs", message: "file not found" diff --git a/pkgs/by-name/gu/guile/2.0.nix b/pkgs/by-name/gu/guile/2.0.nix index 18daad8..8cb0cb7 100644 --- a/pkgs/by-name/gu/guile/2.0.nix +++ b/pkgs/by-name/gu/guile/2.0.nix @@ -1,26 +1,25 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, boehmgc -, buildPackages -, coverageAnalysis ? null -, gawk -, gmp -, libffi -, libtool -, libunistring -, makeWrapper -, pkg-config -, pkgsBuildBuild -, readline +{ + lib, + stdenv, + fetchurl, + fetchpatch, + boehmgc, + buildPackages, + coverageAnalysis ? null, + gawk, + gmp, + libffi, + libtool, + libunistring, + makeWrapper, + pkg-config, + pkgsBuildBuild, + readline, }: let # Do either a coverage analysis build or a standard build. - builder = if coverageAnalysis != null - then coverageAnalysis - else stdenv.mkDerivation; + builder = if coverageAnalysis != null then coverageAnalysis else stdenv.mkDerivation; in builder rec { pname = "guile"; @@ -31,14 +30,16 @@ builder rec { sha256 = "12yqkr974y91ylgw6jnmci2v90i90s7h9vxa4zk0sai8vjnz4i1p"; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; setOutputFlags = false; # $dev gets into the library otherwise depsBuildBuild = [ buildPackages.stdenv.cc - ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile_2_0; + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_2_0; nativeBuildInputs = [ makeWrapper @@ -64,66 +65,68 @@ builder rec { enableParallelBuilding = true; - patches = [ - # Small fixes to Clang compiler - ./clang.patch - # Self-explanatory - ./disable-gc-sensitive-tests.patch - # Read the header of the patch to more info - ./eai_system.patch - # RISC-V endianness - ./riscv.patch - # Fixes stability issues with 00-repl-server.test - (fetchpatch { - url = "https://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4"; - sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v"; - })] ++ - (lib.optional (coverageAnalysis != null) ./gcov-file-name.patch) - ++ lib.optionals stdenv.isDarwin [ - ./filter-mkostemp-darwin.patch - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch"; - sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207"; - }) - ]; + patches = + [ + # Small fixes to Clang compiler + ./clang.patch + # Self-explanatory + ./disable-gc-sensitive-tests.patch + # Read the header of the patch to more info + ./eai_system.patch + # RISC-V endianness + ./riscv.patch + # Fixes stability issues with 00-repl-server.test + (fetchpatch { + url = "https://git.savannah.gnu.org/cgit/guile.git/patch/?id=2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4"; + sha256 = "0p6c1lmw1iniq03z7x5m65kg3lq543kgvdb4nrxsaxjqf3zhl77v"; + }) + ] + ++ (lib.optional (coverageAnalysis != null) ./gcov-file-name.patch) + ++ lib.optionals stdenv.isDarwin [ + ./filter-mkostemp-darwin.patch + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch"; + sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207"; + }) + ]; # Explicitly link against libgcc_s, to work around the infamous # "libgcc_s.so.1 must be installed for pthread_cancel to work". # don't have "libgcc_s.so.1" on darwin - LDFLAGS = lib.optionalString - (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s"; + LDFLAGS = lib.optionalString (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s"; - configureFlags = [ - "--with-libreadline-prefix" - ] ++ lib.optionals stdenv.isSunOS [ - # Make sure the right is found, and not the incompatible - # /usr/include/mp.h from OpenSolaris. See - # - # for details. - "--with-libgmp-prefix=${lib.getDev gmp}" + configureFlags = + [ "--with-libreadline-prefix" ] + ++ lib.optionals stdenv.isSunOS [ + # Make sure the right is found, and not the incompatible + # /usr/include/mp.h from OpenSolaris. See + # + # for details. + "--with-libgmp-prefix=${lib.getDev gmp}" - # Same for these (?). - "--with-libreadline-prefix=${lib.getDev readline}" - "--with-libunistring-prefix=${libunistring}" + # Same for these (?). + "--with-libreadline-prefix=${lib.getDev readline}" + "--with-libunistring-prefix=${libunistring}" - # See below. - "--without-threads" - ]; + # See below. + "--without-threads" + ]; - postInstall = '' - wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" - '' - # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for - # why `--with-libunistring-prefix' and similar options coming from - # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. - + '' - sed -i "$out/lib/pkgconfig/guile"-*.pc \ - -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; - s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; - s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; - s|includedir=$out|includedir=$dev|g - " + postInstall = + '' + wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" + '' + # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for + # why `--with-libunistring-prefix' and similar options coming from + # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. + + '' + sed -i "$out/lib/pkgconfig/guile"-*.pc \ + -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; + s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; + s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; + s|includedir=$out|includedir=$dev|g + " ''; # make check doesn't work on darwin @@ -143,24 +146,28 @@ builder rec { homepage = "https://www.gnu.org/software/guile/"; description = "Embeddable Scheme implementation"; longDescription = '' - GNU Guile is an implementation of the Scheme programming language, with - support for many SRFIs, packaged for use in a wide variety of - environments. In addition to implementing the R5RS Scheme standard and - a large subset of R6RS, Guile includes a module system, full access to - POSIX system calls, networking support, multiple threads, dynamic - linking, a foreign function call interface, and powerful string - processing. - ''; + GNU Guile is an implementation of the Scheme programming language, with + support for many SRFIs, packaged for use in a wide variety of + environments. In addition to implementing the R5RS Scheme standard and + a large subset of R6RS, Guile includes a module system, full access to + POSIX system calls, networking support, multiple threads, dynamic + linking, a foreign function call interface, and powerful string + processing. + ''; license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ludo lovek323 vrthra ]; + maintainers = with maintainers; [ + ludo + lovek323 + vrthra + ]; platforms = platforms.all; }; } // -(lib.optionalAttrs (!stdenv.isLinux) { - # Work around . - SHELL = stdenv.shell; - CONFIG_SHELL = stdenv.shell; -}) + (lib.optionalAttrs (!stdenv.isLinux) { + # Work around . + SHELL = stdenv.shell; + CONFIG_SHELL = stdenv.shell; + }) diff --git a/pkgs/by-name/gu/guile/2.2.nix b/pkgs/by-name/gu/guile/2.2.nix index 9187355..6bd0527 100644 --- a/pkgs/by-name/gu/guile/2.2.nix +++ b/pkgs/by-name/gu/guile/2.2.nix @@ -1,26 +1,25 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, boehmgc -, buildPackages -, coverageAnalysis ? null -, gawk -, gmp -, libffi -, libtool -, libunistring -, makeWrapper -, pkg-config -, pkgsBuildBuild -, readline +{ + lib, + stdenv, + fetchurl, + fetchpatch, + boehmgc, + buildPackages, + coverageAnalysis ? null, + gawk, + gmp, + libffi, + libtool, + libunistring, + makeWrapper, + pkg-config, + pkgsBuildBuild, + readline, }: let # Do either a coverage analysis build or a standard build. - builder = if coverageAnalysis != null - then coverageAnalysis - else stdenv.mkDerivation; + builder = if coverageAnalysis != null then coverageAnalysis else stdenv.mkDerivation; in builder rec { pname = "guile"; @@ -31,14 +30,16 @@ builder rec { sha256 = "013mydzhfswqci6xmyc1ajzd59pfbdak15i0b090nhr9bzm7dxyd"; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; setOutputFlags = false; # $dev gets into the library otherwise depsBuildBuild = [ buildPackages.stdenv.cc - ] - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile_2_2; + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_2_2; nativeBuildInputs = [ makeWrapper pkg-config @@ -69,12 +70,13 @@ builder rec { # re: https://build.opensuse.org/request/show/732638 enableParallelBuilding = false; - patches = [ - # Read the header of the patch to more info - ./eai_system.patch - ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch - ++ lib.optional stdenv.isDarwin - (fetchpatch { + patches = + [ + # Read the header of the patch to more info + ./eai_system.patch + ] + ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch + ++ lib.optional stdenv.isDarwin (fetchpatch { url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch"; sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207"; }); @@ -83,38 +85,38 @@ builder rec { # "libgcc_s.so.1 must be installed for pthread_cancel to work". # don't have "libgcc_s.so.1" on clang - LDFLAGS = lib.optionalString - (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; + LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; - configureFlags = [ - "--with-libreadline-prefix=${lib.getDev readline}" - ] ++ lib.optionals stdenv.isSunOS [ - # Make sure the right is found, and not the incompatible - # /usr/include/mp.h from OpenSolaris. See - # - # for details. - "--with-libgmp-prefix=${lib.getDev gmp}" + configureFlags = + [ "--with-libreadline-prefix=${lib.getDev readline}" ] + ++ lib.optionals stdenv.isSunOS [ + # Make sure the right is found, and not the incompatible + # /usr/include/mp.h from OpenSolaris. See + # + # for details. + "--with-libgmp-prefix=${lib.getDev gmp}" - # Same for these (?). - "--with-libunistring-prefix=${libunistring}" + # Same for these (?). + "--with-libunistring-prefix=${libunistring}" - # See below. - "--without-threads" - ]; + # See below. + "--without-threads" + ]; - postInstall = '' - wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" - '' - # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for - # why `--with-libunistring-prefix' and similar options coming from - # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. - + '' - sed -i "$out/lib/pkgconfig/guile"-*.pc \ - -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; - s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; - s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; - s|includedir=$out|includedir=$dev|g - " + postInstall = + '' + wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" + '' + # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for + # why `--with-libunistring-prefix' and similar options coming from + # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. + + '' + sed -i "$out/lib/pkgconfig/guile"-*.pc \ + -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; + s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; + s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; + s|includedir=$out|includedir=$dev|g + " ''; # make check doesn't work on darwin @@ -142,7 +144,11 @@ builder rec { foreign function call interface, and powerful string processing. ''; license = licenses.lgpl3Plus; - maintainers = with maintainers; [ ludo lovek323 vrthra ]; + maintainers = with maintainers; [ + ludo + lovek323 + vrthra + ]; platforms = platforms.all; }; } diff --git a/pkgs/by-name/gu/guile/3.0.nix b/pkgs/by-name/gu/guile/3.0.nix index fb78837..b91100a 100644 --- a/pkgs/by-name/gu/guile/3.0.nix +++ b/pkgs/by-name/gu/guile/3.0.nix @@ -1,28 +1,27 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, boehmgc -, buildPackages -, coverageAnalysis ? null -, gawk -, gmp -, libffi -, libtool -, libunistring -, libxcrypt -, makeWrapper -, pkg-config -, pkgsBuildBuild -, readline -, writeScript +{ + lib, + stdenv, + fetchurl, + fetchpatch, + boehmgc, + buildPackages, + coverageAnalysis ? null, + gawk, + gmp, + libffi, + libtool, + libunistring, + libxcrypt, + makeWrapper, + pkg-config, + pkgsBuildBuild, + readline, + writeScript, }: let # Do either a coverage analysis build or a standard build. - builder = if coverageAnalysis != null - then coverageAnalysis - else stdenv.mkDerivation; + builder = if coverageAnalysis != null then coverageAnalysis else stdenv.mkDerivation; in builder rec { pname = "guile"; @@ -33,13 +32,16 @@ builder rec { sha256 = "sha256-GiYlrHKyNm6VeS8/51j9Lfd1tARKkKSpeHMm5mwNdQ0="; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; setOutputFlags = false; # $dev gets into the library otherwise depsBuildBuild = [ buildPackages.stdenv.cc - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - pkgsBuildBuild.guile_3_0; + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) pkgsBuildBuild.guile_3_0; nativeBuildInputs = [ makeWrapper pkg-config @@ -49,9 +51,7 @@ builder rec { libtool libunistring readline - ] ++ lib.optionals stdenv.isLinux [ - libxcrypt - ]; + ] ++ lib.optionals stdenv.isLinux [ libxcrypt ]; propagatedBuildInputs = [ boehmgc gmp @@ -62,9 +62,7 @@ builder rec { # flags, see below. libtool libunistring - ] ++ lib.optionals stdenv.isLinux [ - libxcrypt - ]; + ] ++ lib.optionals stdenv.isLinux [ libxcrypt ]; # According to # https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile.scm?h=a39207f7afd977e4e4299c6f0bb34bcb6d153818#n405 @@ -72,12 +70,13 @@ builder rec { # bit-reproducibly as long as we're not cross-compiling enableParallelBuilding = stdenv.buildPlatform == stdenv.hostPlatform; - patches = [ - ./eai_system.patch - ./guile-hurd-posix-spawn.patch - ] ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch - ++ lib.optional stdenv.isDarwin - (fetchpatch { + patches = + [ + ./eai_system.patch + ./guile-hurd-posix-spawn.patch + ] + ++ lib.optional (coverageAnalysis != null) ./gcov-file-name.patch + ++ lib.optional stdenv.isDarwin (fetchpatch { url = "https://gitlab.gnome.org/GNOME/gtk-osx/raw/52898977f165777ad9ef169f7d4818f2d4c9b731/patches/guile-clocktime.patch"; sha256 = "12wvwdna9j8795x59ldryv9d84c1j3qdk2iskw09306idfsis207"; }); @@ -86,42 +85,42 @@ builder rec { # "libgcc_s.so.1 must be installed for pthread_cancel to work". # don't have "libgcc_s.so.1" on clang - LDFLAGS = lib.optionalString - (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; + LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) "-lgcc_s"; - configureFlags = [ - "--with-libreadline-prefix=${lib.getDev readline}" - ] ++ lib.optionals stdenv.isSunOS [ - # Make sure the right is found, and not the incompatible - # /usr/include/mp.h from OpenSolaris. See - # - # for details. - "--with-libgmp-prefix=${lib.getDev gmp}" + configureFlags = + [ "--with-libreadline-prefix=${lib.getDev readline}" ] + ++ lib.optionals stdenv.isSunOS [ + # Make sure the right is found, and not the incompatible + # /usr/include/mp.h from OpenSolaris. See + # + # for details. + "--with-libgmp-prefix=${lib.getDev gmp}" - # Same for these (?). - "--with-libunistring-prefix=${libunistring}" + # Same for these (?). + "--with-libunistring-prefix=${libunistring}" - # See below. - "--without-threads" - ] - # At least on x86_64-darwin '-flto' autodetection is not correct: - # https://github.com/NixOS/nixpkgs/pull/160051#issuecomment-1046193028 - ++ lib.optional (stdenv.isDarwin) "--disable-lto"; + # See below. + "--without-threads" + ] + # At least on x86_64-darwin '-flto' autodetection is not correct: + # https://github.com/NixOS/nixpkgs/pull/160051#issuecomment-1046193028 + ++ lib.optional (stdenv.isDarwin) "--disable-lto"; - postInstall = '' - wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" - '' - # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for - # why `--with-libunistring-prefix' and similar options coming from - # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. - + '' - sed -i "$out/lib/pkgconfig/guile"-*.pc \ - -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; - s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; - s|-lcrypt|-L${libxcrypt}/lib -lcrypt|g ; - s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; - s|includedir=$out|includedir=$dev|g - " + postInstall = + '' + wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin" + '' + # XXX: See http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903 for + # why `--with-libunistring-prefix' and similar options coming from + # `AC_LIB_LINKFLAGS_BODY' don't work on NixOS/x86_64. + + '' + sed -i "$out/lib/pkgconfig/guile"-*.pc \ + -e "s|-lunistring|-L${libunistring}/lib -lunistring|g ; + s|-lltdl|-L${libtool.lib}/lib -lltdl|g ; + s|-lcrypt|-L${libxcrypt}/lib -lcrypt|g ; + s|^Cflags:\(.*\)$|Cflags: -I${libunistring.dev}/include \1|g ; + s|includedir=$out|includedir=$dev|g + " ''; # make check doesn't work on darwin diff --git a/pkgs/by-name/gu/guile/packages.nix b/pkgs/by-name/gu/guile/packages.nix index bc29563..4cd22c6 100644 --- a/pkgs/by-name/gu/guile/packages.nix +++ b/pkgs/by-name/gu/guile/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Needed for autogen guile_2_0 = callPackage ./2.0.nix { }; guile_2_2 = callPackage ./2.2.nix { }; diff --git a/pkgs/by-name/gz/gzip/default.nix b/pkgs/by-name/gz/gzip/default.nix index baff7f0..b4a69b0 100644 --- a/pkgs/by-name/gz/gzip/default.nix +++ b/pkgs/by-name/gz/gzip/default.nix @@ -1,7 +1,9 @@ -{ lib, stdenv -, fetchurl -, makeWrapper -, xz +{ + lib, + stdenv, + fetchurl, + makeWrapper, + xz, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -18,11 +20,18 @@ stdenv.mkDerivation rec { hash = "sha256-dFTraTXbF8ZlVXbC4bD6vv04tNCTbg+H9IzQYs6RoFc="; }; - outputs = [ "out" "man" "info" ]; + outputs = [ + "out" + "man" + "info" + ]; enableParallelBuilding = true; - nativeBuildInputs = [ xz.bin makeWrapper ]; + nativeBuildInputs = [ + xz.bin + makeWrapper + ]; makeFlags = [ "SHELL=/bin/sh" @@ -37,33 +46,34 @@ stdenv.mkDerivation rec { # executables being in $PATH. Rather than try to re-write all the # internal cross-references, just add $out/bin to PATH at the top of # all the executables that are shell scripts. - preFixup = '' - sed -i '1{;/#!\/bin\/sh/aPATH="'$out'/bin:$PATH" - }' $out/bin/* - '' - # run gzip with "-n" when $GZIP_NO_TIMESTAMPS (set by stdenv's setup.sh) is set to stop gzip from adding timestamps - # to archive headers: https://github.com/NixOS/nixpkgs/issues/86348 - # if changing so that there's no longer a .gzip-wrapped then update copy in make-bootstrap-tools.nix - + '' - wrapProgram $out/bin/gzip \ - --add-flags "\''${GZIP_NO_TIMESTAMPS:+-n}" - ''; + preFixup = + '' + sed -i '1{;/#!\/bin\/sh/aPATH="'$out'/bin:$PATH" + }' $out/bin/* + '' + # run gzip with "-n" when $GZIP_NO_TIMESTAMPS (set by stdenv's setup.sh) is set to stop gzip from adding timestamps + # to archive headers: https://github.com/NixOS/nixpkgs/issues/86348 + # if changing so that there's no longer a .gzip-wrapped then update copy in make-bootstrap-tools.nix + + '' + wrapProgram $out/bin/gzip \ + --add-flags "\''${GZIP_NO_TIMESTAMPS:+-n}" + ''; meta = { homepage = "https://www.gnu.org/software/gzip/"; description = "GNU zip compression program"; - longDescription = - ''gzip (GNU zip) is a popular data compression program written by - Jean-loup Gailly for the GNU project. Mark Adler wrote the - decompression part. + longDescription = '' + gzip (GNU zip) is a popular data compression program written by + Jean-loup Gailly for the GNU project. Mark Adler wrote the + decompression part. - We developed this program as a replacement for compress because of - the Unisys and IBM patents covering the LZW algorithm used by - compress. These patents made it impossible for us to use compress, - and we needed a replacement. The superior compression ratio of gzip - is just a bonus. - ''; + We developed this program as a replacement for compress because of + the Unisys and IBM patents covering the LZW algorithm used by + compress. These patents made it impossible for us to use compress, + and we needed a replacement. The superior compression ratio of gzip + is just a bonus. + ''; platforms = lib.platforms.all; diff --git a/pkgs/by-name/he/help2man/default.nix b/pkgs/by-name/he/help2man/default.nix index 9fd35a0..7c8653e 100644 --- a/pkgs/by-name/he/help2man/default.nix +++ b/pkgs/by-name/he/help2man/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, perlPackages, gettext, libintl }: +{ + lib, + stdenv, + fetchurl, + perlPackages, + gettext, + libintl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -18,12 +25,17 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - nativeBuildInputs = [ gettext perlPackages.perl perlPackages.LocaleGettext ]; - buildInputs = [ perlPackages.LocaleGettext libintl ]; - - configureFlags = [ - "--enable-nls" + nativeBuildInputs = [ + gettext + perlPackages.perl + perlPackages.LocaleGettext ]; + buildInputs = [ + perlPackages.LocaleGettext + libintl + ]; + + configureFlags = [ "--enable-nls" ]; doCheck = false; # target `check' is missing diff --git a/pkgs/by-name/hi/highlight/default.nix b/pkgs/by-name/hi/highlight/default.nix index d26d4fc..8317b11 100644 --- a/pkgs/by-name/hi/highlight/default.nix +++ b/pkgs/by-name/hi/highlight/default.nix @@ -1,4 +1,16 @@ -{ lib, stdenv, fetchFromGitLab, getopt, lua, boost, libxcrypt, pkg-config, swig, perl, gcc }: +{ + lib, + stdenv, + fetchFromGitLab, + getopt, + lua, + boost, + libxcrypt, + pkg-config, + swig, + perl, + gcc, +}: let self = stdenv.mkDerivation rec { @@ -14,20 +26,30 @@ let enableParallelBuilding = true; - nativeBuildInputs = [ pkg-config swig perl ] - ++ lib.optional stdenv.isDarwin gcc; + nativeBuildInputs = [ + pkg-config + swig + perl + ] ++ lib.optional stdenv.isDarwin gcc; - buildInputs = [ getopt lua boost libxcrypt ]; + buildInputs = [ + getopt + lua + boost + libxcrypt + ]; - postPatch = '' - substituteInPlace src/makefile \ - --replace "shell pkg-config" "shell $PKG_CONFIG" - substituteInPlace makefile \ - --replace 'gzip' 'gzip -n' - '' + lib.optionalString stdenv.cc.isClang '' - substituteInPlace src/makefile \ - --replace 'CXX=g++' 'CXX=clang++' - ''; + postPatch = + '' + substituteInPlace src/makefile \ + --replace "shell pkg-config" "shell $PKG_CONFIG" + substituteInPlace makefile \ + --replace 'gzip' 'gzip -n' + '' + + lib.optionalString stdenv.cc.isClang '' + substituteInPlace src/makefile \ + --replace 'CXX=g++' 'CXX=clang++' + ''; preConfigure = '' makeFlags="PREFIX=$out conf_dir=$out/etc/highlight/ CXX=$CXX AR=$AR" @@ -59,5 +81,4 @@ let }; in - if stdenv.isDarwin then self - else perl.pkgs.toPerlModule self +if stdenv.isDarwin then self else perl.pkgs.toPerlModule self diff --git a/pkgs/by-name/hi/highlight/packages.nix b/pkgs/by-name/hi/highlight/packages.nix index dad0348..ffdc34c 100644 --- a/pkgs/by-name/hi/highlight/packages.nix +++ b/pkgs/by-name/hi/highlight/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - highlight = callPackage ./. ({ - lua = lua5; - }); +with pkgs; { + highlight = callPackage ./. ({ lua = lua5; }); } diff --git a/pkgs/by-name/ht/http-parser/default.nix b/pkgs/by-name/ht/http-parser/default.nix index 65ac1fe..e7b8846 100644 --- a/pkgs/by-name/ht/http-parser/default.nix +++ b/pkgs/by-name/ht/http-parser/default.nix @@ -1,6 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, enableShared ? !stdenv.hostPlatform.isStatic -, enableStatic ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + enableShared ? !stdenv.hostPlatform.isStatic, + enableStatic ? stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation rec { @@ -16,36 +20,39 @@ stdenv.mkDerivation rec { env.NIX_CFLAGS_COMPILE = "-Wno-error"; - patches = [ - ./enable-static-shared.patch - ] ++ lib.optionals stdenv.isAarch32 [ - # https://github.com/nodejs/http-parser/pull/510 - (fetchpatch { - url = "https://github.com/nodejs/http-parser/commit/4f15b7d510dc7c6361a26a7c6d2f7c3a17f8d878.patch"; - sha256 = "sha256-rZZMJeow3V1fTnjadRaRa+xTq3pdhZn/eJ4xjxEDoU4="; - }) - ]; + patches = + [ ./enable-static-shared.patch ] + ++ lib.optionals stdenv.isAarch32 [ + # https://github.com/nodejs/http-parser/pull/510 + (fetchpatch { + url = "https://github.com/nodejs/http-parser/commit/4f15b7d510dc7c6361a26a7c6d2f7c3a17f8d878.patch"; + sha256 = "sha256-rZZMJeow3V1fTnjadRaRa+xTq3pdhZn/eJ4xjxEDoU4="; + }) + ]; - makeFlags = [ - "DESTDIR=" - "PREFIX=$(out)" - "BINEXT=${stdenv.hostPlatform.extensions.executable}" - "Platform=${lib.toLower stdenv.hostPlatform.uname.system}" - "AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}" - "ENABLE_SHARED=${if enableShared then "1" else "0"}" - "ENABLE_STATIC=${if enableStatic then "1" else "0"}" - ] ++ lib.optionals enableShared [ - "SOEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.sharedLibrary}" - ] ++ lib.optionals enableStatic [ - "AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}" - ] ++ lib.optionals (enableShared && stdenv.hostPlatform.isWindows) [ - "SONAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT)" - "LIBNAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOREV).$(SOEXT)" - "LDFLAGS=-Wl,--out-implib=$(LIBNAME).a" - ]; + makeFlags = + [ + "DESTDIR=" + "PREFIX=$(out)" + "BINEXT=${stdenv.hostPlatform.extensions.executable}" + "Platform=${lib.toLower stdenv.hostPlatform.uname.system}" + "AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}" + "ENABLE_SHARED=${if enableShared then "1" else "0"}" + "ENABLE_STATIC=${if enableStatic then "1" else "0"}" + ] + ++ lib.optionals enableShared [ + "SOEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.sharedLibrary}" + ] + ++ lib.optionals enableStatic [ + "AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}" + ] + ++ lib.optionals (enableShared && stdenv.hostPlatform.isWindows) [ + "SONAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT)" + "LIBNAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOREV).$(SOEXT)" + "LDFLAGS=-Wl,--out-implib=$(LIBNAME).a" + ]; - buildFlags = lib.optional enableShared "library" - ++ lib.optional enableStatic "package"; + buildFlags = lib.optional enableShared "library" ++ lib.optional enableStatic "package"; doCheck = true; checkTarget = "test"; diff --git a/pkgs/by-name/hw/hwdata/default.nix b/pkgs/by-name/hw/hwdata/default.nix index 83519d7..a442d77 100644 --- a/pkgs/by-name/hw/hwdata/default.nix +++ b/pkgs/by-name/hw/hwdata/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub }: +{ + lib, + stdenv, + fetchFromGitHub, +}: stdenv.mkDerivation rec { pname = "hwdata"; diff --git a/pkgs/by-name/ic/icu/default.nix b/pkgs/by-name/ic/icu/default.nix index bf59510..2652833 100644 --- a/pkgs/by-name/ic/icu/default.nix +++ b/pkgs/by-name/ic/icu/default.nix @@ -1,8 +1,23 @@ -{ stdenv, lib, fetchurl, fetchpatch, fixDarwinDylibNames, testers, buildPackages }: +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fixDarwinDylibNames, + testers, + buildPackages, +}: let make-icu = (import ./make-icu.nix) { - inherit stdenv lib buildPackages fetchurl fixDarwinDylibNames testers; + inherit + stdenv + lib + buildPackages + fetchurl + fixDarwinDylibNames + testers + ; }; in { diff --git a/pkgs/by-name/ic/icu/make-icu.nix b/pkgs/by-name/ic/icu/make-icu.nix index 836a7e3..f54d655 100644 --- a/pkgs/by-name/ic/icu/make-icu.nix +++ b/pkgs/by-name/ic/icu/make-icu.nix @@ -1,6 +1,18 @@ -{ stdenv, lib, buildPackages, fetchurl, fixDarwinDylibNames, testers }: +{ + stdenv, + lib, + buildPackages, + fetchurl, + fixDarwinDylibNames, + testers, +}: -{ version, hash, patches ? [], patchFlags ? [] }: +{ + version, + hash, + patches ? [ ], + patchFlags ? [ ], +}: let # Cross-compiled icu4c requires a build-root of a native compile @@ -10,7 +22,9 @@ let baseAttrs = { src = fetchurl { - url = "https://github.com/unicode-org/icu/releases/download/release-${lib.replaceStrings [ "." ] [ "-" ] version}/icu4c-${lib.replaceStrings [ "." ] [ "_" ] version}-src.tgz"; + url = "https://github.com/unicode-org/icu/releases/download/release-${ + lib.replaceStrings [ "." ] [ "-" ] version + }/icu4c-${lib.replaceStrings [ "." ] [ "_" ] version}-src.tgz"; inherit hash; }; @@ -20,25 +34,35 @@ let ''; # https://sourceware.org/glibc/wiki/Release/2.26#Removal_of_.27xlocale.h.27 - postPatch = if (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") && lib.versionOlder version "62.1" - then "substituteInPlace i18n/digitlst.cpp --replace '' ''" - else null; # won't find locale_t on darwin + postPatch = + if + (stdenv.hostPlatform.libc == "glibc" || stdenv.hostPlatform.libc == "musl") + && lib.versionOlder version "62.1" + then + "substituteInPlace i18n/digitlst.cpp --replace '' ''" + else + null; # won't find locale_t on darwin inherit patchFlags patches; - preConfigure = '' - sed -i -e "s|/bin/sh|${stdenv.shell}|" configure + preConfigure = + '' + sed -i -e "s|/bin/sh|${stdenv.shell}|" configure - # $(includedir) is different from $(prefix)/include due to multiple outputs - sed -i -e 's|^\(CPPFLAGS = .*\) -I\$(prefix)/include|\1 -I$(includedir)|' config/Makefile.inc.in - '' + lib.optionalString stdenv.isAarch32 '' - # From https://archlinuxarm.org/packages/armv7h/icu/files/icudata-stdlibs.patch - sed -e 's/LDFLAGSICUDT=-nodefaultlibs -nostdlib/LDFLAGSICUDT=/' -i config/mh-linux - ''; + # $(includedir) is different from $(prefix)/include due to multiple outputs + sed -i -e 's|^\(CPPFLAGS = .*\) -I\$(prefix)/include|\1 -I$(includedir)|' config/Makefile.inc.in + '' + + lib.optionalString stdenv.isAarch32 '' + # From https://archlinuxarm.org/packages/armv7h/icu/files/icudata-stdlibs.patch + sed -e 's/LDFLAGSICUDT=-nodefaultlibs -nostdlib/LDFLAGSICUDT=/' -i config/mh-linux + ''; - configureFlags = [ "--disable-debug" ] + configureFlags = + [ "--disable-debug" ] ++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) "--enable-rpath" - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--with-cross-build=${nativeBuildRoot}"; + ++ lib.optional ( + stdenv.buildPlatform != stdenv.hostPlatform + ) "--with-cross-build=${nativeBuildRoot}"; enableParallelBuilding = true; @@ -58,7 +82,10 @@ let realAttrs = baseAttrs // { name = pname + "-" + version; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; outputBin = "dev"; # FIXME: This fixes dylib references in the dylibs themselves, but @@ -66,18 +93,32 @@ let nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; # remove dependency on bootstrap-tools in early stdenv build - postInstall = lib.optionalString stdenv.isDarwin '' - sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc - '' + (let - replacements = [ - { from = "\${prefix}/include"; to = "${placeholder "dev"}/include"; } # --cppflags-searchpath - { from = "\${pkglibdir}/Makefile.inc"; to = "${placeholder "dev"}/lib/icu/Makefile.inc"; } # --incfile - { from = "\${pkglibdir}/pkgdata.inc"; to = "${placeholder "dev"}/lib/icu/pkgdata.inc"; } # --incpkgdatafile - ]; - in '' - substituteInPlace "$dev/bin/icu-config" \ - ${lib.concatMapStringsSep " " (r: "--replace '${r.from}' '${r.to}'") replacements} - ''); + postInstall = + lib.optionalString stdenv.isDarwin '' + sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc + '' + + ( + let + replacements = [ + { + from = "\${prefix}/include"; + to = "${placeholder "dev"}/include"; + } # --cppflags-searchpath + { + from = "\${pkglibdir}/Makefile.inc"; + to = "${placeholder "dev"}/lib/icu/Makefile.inc"; + } # --incfile + { + from = "\${pkglibdir}/pkgdata.inc"; + to = "${placeholder "dev"}/lib/icu/pkgdata.inc"; + } # --incpkgdatafile + ]; + in + '' + substituteInPlace "$dev/bin/icu-config" \ + ${lib.concatMapStringsSep " " (r: "--replace '${r.from}' '${r.to}'") replacements} + '' + ); postFixup = ''moveToOutput lib/icu "$dev" ''; }; @@ -85,11 +126,13 @@ let buildRootOnlyAttrs = baseAttrs // { name = pname + "-build-root-" + version; - preConfigure = baseAttrs.preConfigure + '' - mkdir build - cd build - configureScript=../configure - ''; + preConfigure = + baseAttrs.preConfigure + + '' + mkdir build + cd build + configureScript=../configure + ''; postBuild = '' cd .. @@ -99,9 +142,15 @@ let ''; }; - mkWithAttrs = attrs: stdenv.mkDerivation (finalAttrs: attrs // { - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - passthru.buildRootOnly = mkWithAttrs buildRootOnlyAttrs; - }); + mkWithAttrs = + attrs: + stdenv.mkDerivation ( + finalAttrs: + attrs + // { + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + passthru.buildRootOnly = mkWithAttrs buildRootOnlyAttrs; + } + ); in - mkWithAttrs realAttrs +mkWithAttrs realAttrs diff --git a/pkgs/by-name/ic/icu/packages.nix b/pkgs/by-name/ic/icu/packages.nix index f1f7dcc..9714842 100644 --- a/pkgs/by-name/ic/icu/packages.nix +++ b/pkgs/by-name/ic/icu/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { icu-versions = callPackages ./. { }; inherit (icu-versions) icu58 @@ -18,7 +17,7 @@ with pkgs; icu72 icu73 icu74 - ; + ; icu = icu73; } diff --git a/pkgs/by-name/im/imagemagick/6.x.nix b/pkgs/by-name/im/imagemagick/6.x.nix index a433cc6..857aa9d 100644 --- a/pkgs/by-name/im/imagemagick/6.x.nix +++ b/pkgs/by-name/im/imagemagick/6.x.nix @@ -1,37 +1,73 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, libtool -, bzip2Support ? true, bzip2 -, zlibSupport ? true, zlib -, libX11Support ? !stdenv.hostPlatform.isMinGW, libX11 -, libXtSupport ? !stdenv.hostPlatform.isMinGW, libXt -, fontconfigSupport ? true, fontconfig -, freetypeSupport ? true, freetype -, ghostscriptSupport ? false, ghostscript -, libjpegSupport ? true, libjpeg -, djvulibreSupport ? true, djvulibre -, lcms2Support ? true, lcms2 -, openexrSupport ? !stdenv.hostPlatform.isMinGW, openexr -, libpngSupport ? true, libpng -, liblqr1Support ? true, liblqr1 -, librsvgSupport ? !stdenv.hostPlatform.isMinGW, librsvg -, libtiffSupport ? true, libtiff -, libxml2Support ? true, libxml2 -, openjpegSupport ? !stdenv.hostPlatform.isMinGW, openjpeg -, libwebpSupport ? !stdenv.hostPlatform.isMinGW, libwebp -, libheifSupport ? true, libheif -, libde265Support ? true, libde265 -, fftw -, ApplicationServices, Foundation -, testers +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + libtool, + bzip2Support ? true, + bzip2, + zlibSupport ? true, + zlib, + libX11Support ? !stdenv.hostPlatform.isMinGW, + libX11, + libXtSupport ? !stdenv.hostPlatform.isMinGW, + libXt, + fontconfigSupport ? true, + fontconfig, + freetypeSupport ? true, + freetype, + ghostscriptSupport ? false, + ghostscript, + libjpegSupport ? true, + libjpeg, + djvulibreSupport ? true, + djvulibre, + lcms2Support ? true, + lcms2, + openexrSupport ? !stdenv.hostPlatform.isMinGW, + openexr, + libpngSupport ? true, + libpng, + liblqr1Support ? true, + liblqr1, + librsvgSupport ? !stdenv.hostPlatform.isMinGW, + librsvg, + libtiffSupport ? true, + libtiff, + libxml2Support ? true, + libxml2, + openjpegSupport ? !stdenv.hostPlatform.isMinGW, + openjpeg, + libwebpSupport ? !stdenv.hostPlatform.isMinGW, + libwebp, + libheifSupport ? true, + libheif, + libde265Support ? true, + libde265, + fftw, + ApplicationServices, + Foundation, + testers, }: let arch = - if stdenv.hostPlatform.system == "i686-linux" then "i686" - else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64" - else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l" - else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64" - else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le" - else null; + if stdenv.hostPlatform.system == "i686-linux" then + "i686" + else if + stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" + then + "x86-64" + else if stdenv.hostPlatform.system == "armv7l-linux" then + "armv7l" + else if + stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" + then + "aarch64" + else if stdenv.hostPlatform.system == "powerpc64le-linux" then + "ppc64le" + else + null; in stdenv.mkDerivation (finalAttrs: { @@ -45,26 +81,37 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-slQcA0cblxtG/1DiJx5swUh7Kfwgz5HG70eqJFLaQJI="; }; - outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big + outputs = [ + "out" + "dev" + "doc" + ]; # bin/ isn't really big outputMan = "out"; # it's tiny enableParallelBuilding = true; - configureFlags = [ - "--with-frozenpaths" - (lib.withFeatureAs (arch != null) "gcc-arch" arch) - (lib.withFeature librsvgSupport "rsvg") - (lib.withFeature liblqr1Support "lqr") - (lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts") - (lib.withFeature ghostscriptSupport "gslib") - ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ - # due to libxml2 being without DLLs ATM - "--enable-static" "--disable-shared" + configureFlags = + [ + "--with-frozenpaths" + (lib.withFeatureAs (arch != null) "gcc-arch" arch) + (lib.withFeature librsvgSupport "rsvg") + (lib.withFeature liblqr1Support "lqr") + (lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts") + (lib.withFeature ghostscriptSupport "gslib") + ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ + # due to libxml2 being without DLLs ATM + "--enable-static" + "--disable-shared" + ]; + + nativeBuildInputs = [ + pkg-config + libtool ]; - nativeBuildInputs = [ pkg-config libtool ]; - - buildInputs = [ ] + buildInputs = + [ ] ++ lib.optional zlibSupport zlib ++ lib.optional fontconfigSupport fontconfig ++ lib.optional ghostscriptSupport ghostscript @@ -83,7 +130,8 @@ stdenv.mkDerivation (finalAttrs: { Foundation ]; - propagatedBuildInputs = [ fftw ] + propagatedBuildInputs = + [ fftw ] ++ lib.optional bzip2Support bzip2 ++ lib.optional freetypeSupport freetype ++ lib.optional libjpegSupport libjpeg @@ -94,21 +142,23 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; # fails 2 out of 76 tests - postInstall = '' - (cd "$dev/include" && ln -s ImageMagick* ImageMagick) - moveToOutput "bin/*-config" "$dev" - moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params - for file in "$dev"/bin/*-config; do - substituteInPlace "$file" --replace "${pkg-config}/bin/pkg-config -config" \ - ${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config - substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \ - "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'" - done - '' + lib.optionalString ghostscriptSupport '' - for la in $out/lib/*.la; do - sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la - done - ''; + postInstall = + '' + (cd "$dev/include" && ln -s ImageMagick* ImageMagick) + moveToOutput "bin/*-config" "$dev" + moveToOutput "lib/ImageMagick-*/config-Q16" "$dev" # includes configure params + for file in "$dev"/bin/*-config; do + substituteInPlace "$file" --replace "${pkg-config}/bin/pkg-config -config" \ + ${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config + substituteInPlace "$file" --replace ${pkg-config}/bin/pkg-config \ + "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config'" + done + '' + + lib.optionalString ghostscriptSupport '' + for la in $out/lib/*.la; do + sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la + done + ''; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; @@ -116,7 +166,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://legacy.imagemagick.org/"; changelog = "https://legacy.imagemagick.org/script/changelog.php"; description = "A software suite to create, edit, compose, or convert bitmap images"; - pkgConfigModules = [ "ImageMagick" "MagickWand" ]; + pkgConfigModules = [ + "ImageMagick" + "MagickWand" + ]; platforms = platforms.linux ++ platforms.darwin; maintainers = with maintainers; [ ]; license = licenses.asl20; diff --git a/pkgs/by-name/im/imagemagick/default.nix b/pkgs/by-name/im/imagemagick/default.nix index a507a13..b1660ea 100644 --- a/pkgs/by-name/im/imagemagick/default.nix +++ b/pkgs/by-name/im/imagemagick/default.nix @@ -1,34 +1,57 @@ -{ lib -, stdenv -, fetchFromGitHub -, pkg-config -, libtool -, bzip2Support ? true, bzip2 -, zlibSupport ? true, zlib -, libX11Support ? !stdenv.hostPlatform.isMinGW, libX11 -, libXtSupport ? !stdenv.hostPlatform.isMinGW, libXt -, fontconfigSupport ? true, fontconfig -, freetypeSupport ? true, freetype -, ghostscriptSupport ? false, ghostscript -, libjpegSupport ? true, libjpeg -, djvulibreSupport ? true, djvulibre -, lcms2Support ? true, lcms2 -, openexrSupport ? !stdenv.hostPlatform.isMinGW, openexr -, libjxlSupport ? true, libjxl -, libpngSupport ? true, libpng -, liblqr1Support ? true, liblqr1 -, librawSupport ? true, libraw -, librsvgSupport ? !stdenv.hostPlatform.isMinGW, librsvg, pango -, libtiffSupport ? true, libtiff -, libxml2Support ? true, libxml2 -, openjpegSupport ? !stdenv.hostPlatform.isMinGW, openjpeg -, libwebpSupport ? !stdenv.hostPlatform.isMinGW, libwebp -, libheifSupport ? true, libheif -, potrace -, coreutils -, curl -, ApplicationServices -, Foundation +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + libtool, + bzip2Support ? true, + bzip2, + zlibSupport ? true, + zlib, + libX11Support ? !stdenv.hostPlatform.isMinGW, + libX11, + libXtSupport ? !stdenv.hostPlatform.isMinGW, + libXt, + fontconfigSupport ? true, + fontconfig, + freetypeSupport ? true, + freetype, + ghostscriptSupport ? false, + ghostscript, + libjpegSupport ? true, + libjpeg, + djvulibreSupport ? true, + djvulibre, + lcms2Support ? true, + lcms2, + openexrSupport ? !stdenv.hostPlatform.isMinGW, + openexr, + libjxlSupport ? true, + libjxl, + libpngSupport ? true, + libpng, + liblqr1Support ? true, + liblqr1, + librawSupport ? true, + libraw, + librsvgSupport ? !stdenv.hostPlatform.isMinGW, + librsvg, + pango, + libtiffSupport ? true, + libtiff, + libxml2Support ? true, + libxml2, + openjpegSupport ? !stdenv.hostPlatform.isMinGW, + openjpeg, + libwebpSupport ? !stdenv.hostPlatform.isMinGW, + libwebp, + libheifSupport ? true, + libheif, + potrace, + coreutils, + curl, + ApplicationServices, + Foundation, # for passthru.tests # , testers # , imagemagick @@ -41,12 +64,22 @@ assert libXtSupport -> libX11Support; let arch = - if stdenv.hostPlatform.system == "i686-linux" then "i686" - else if stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" then "x86-64" - else if stdenv.hostPlatform.system == "armv7l-linux" then "armv7l" - else if stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" then "aarch64" - else if stdenv.hostPlatform.system == "powerpc64le-linux" then "ppc64le" - else null; + if stdenv.hostPlatform.system == "i686-linux" then + "i686" + else if + stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin" + then + "x86-64" + else if stdenv.hostPlatform.system == "armv7l-linux" then + "armv7l" + else if + stdenv.hostPlatform.system == "aarch64-linux" || stdenv.hostPlatform.system == "aarch64-darwin" + then + "aarch64" + else if stdenv.hostPlatform.system == "powerpc64le-linux" then + "ppc64le" + else + null; in stdenv.mkDerivation (finalAttrs: { @@ -60,32 +93,43 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-W9WbHzmTa0dA9+mOxXu88qmN1mO9ORaH0Nj6r2s1Q+E="; }; - outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big + outputs = [ + "out" + "dev" + "doc" + ]; # bin/ isn't really big outputMan = "out"; # it's tiny enableParallelBuilding = true; - configureFlags = [ - # specify delegates explicitly otherwise `convert` will invoke the build - # coreutils for filetypes it doesn't natively support. - "MVDelegate=${lib.getExe' coreutils "mv"}" - "RMDelegate=${lib.getExe' coreutils "rm"}" - "--with-frozenpaths" - (lib.withFeatureAs (arch != null) "gcc-arch" arch) - (lib.withFeature librsvgSupport "rsvg") - (lib.withFeature librsvgSupport "pango") - (lib.withFeature liblqr1Support "lqr") - (lib.withFeature libjxlSupport "jxl") - (lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts") - (lib.withFeature ghostscriptSupport "gslib") - ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ - # due to libxml2 being without DLLs ATM - "--enable-static" "--disable-shared" + configureFlags = + [ + # specify delegates explicitly otherwise `convert` will invoke the build + # coreutils for filetypes it doesn't natively support. + "MVDelegate=${lib.getExe' coreutils "mv"}" + "RMDelegate=${lib.getExe' coreutils "rm"}" + "--with-frozenpaths" + (lib.withFeatureAs (arch != null) "gcc-arch" arch) + (lib.withFeature librsvgSupport "rsvg") + (lib.withFeature librsvgSupport "pango") + (lib.withFeature liblqr1Support "lqr") + (lib.withFeature libjxlSupport "jxl") + (lib.withFeatureAs ghostscriptSupport "gs-font-dir" "${ghostscript}/share/ghostscript/fonts") + (lib.withFeature ghostscriptSupport "gslib") + ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ + # due to libxml2 being without DLLs ATM + "--enable-static" + "--disable-shared" + ]; + + nativeBuildInputs = [ + pkg-config + libtool ]; - nativeBuildInputs = [ pkg-config libtool ]; - - buildInputs = [ potrace ] + buildInputs = + [ potrace ] ++ lib.optional zlibSupport zlib ++ lib.optional fontconfigSupport fontconfig ++ lib.optional ghostscriptSupport ghostscript @@ -108,7 +152,8 @@ stdenv.mkDerivation (finalAttrs: { Foundation ]; - propagatedBuildInputs = [ curl ] + propagatedBuildInputs = + [ curl ] ++ lib.optional bzip2Support bzip2 ++ lib.optional freetypeSupport freetype ++ lib.optional libjpegSupport libjpeg @@ -117,19 +162,21 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional libXtSupport libXt ++ lib.optional libwebpSupport libwebp; - postInstall = '' - (cd "$dev/include" && ln -s ImageMagick* ImageMagick) - moveToOutput "bin/*-config" "$dev" - moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params - for file in "$dev"/bin/*-config; do - substituteInPlace "$file" --replace pkg-config \ - "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '$(command -v $PKG_CONFIG)'" - done - '' + lib.optionalString ghostscriptSupport '' - for la in $out/lib/*.la; do - sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la - done - ''; + postInstall = + '' + (cd "$dev/include" && ln -s ImageMagick* ImageMagick) + moveToOutput "bin/*-config" "$dev" + moveToOutput "lib/ImageMagick-*/config-Q16HDRI" "$dev" # includes configure params + for file in "$dev"/bin/*-config; do + substituteInPlace "$file" --replace pkg-config \ + "PKG_CONFIG_PATH='$dev/lib/pkgconfig' '$(command -v $PKG_CONFIG)'" + done + '' + + lib.optionalString ghostscriptSupport '' + for la in $out/lib/*.la; do + sed 's|-lgs|-L${lib.getLib ghostscript}/lib -lgs|' -i $la + done + ''; # passthru.tests = { # version = testers.testVersion { package = finalAttrs.finalPackage; }; @@ -143,9 +190,16 @@ stdenv.mkDerivation (finalAttrs: { homepage = "http://www.imagemagick.org/"; changelog = "https://github.com/ImageMagick/Website/blob/main/ChangeLog.md"; description = "A software suite to create, edit, compose, or convert bitmap images"; - pkgConfigModules = [ "ImageMagick" "MagickWand" ]; + pkgConfigModules = [ + "ImageMagick" + "MagickWand" + ]; platforms = platforms.linux ++ platforms.darwin; - maintainers = with maintainers; [ erictapen dotlambda rhendric ]; + maintainers = with maintainers; [ + erictapen + dotlambda + rhendric + ]; license = licenses.asl20; mainProgram = "magick"; }; diff --git a/pkgs/by-name/im/imagemagick/packages.nix b/pkgs/by-name/im/imagemagick/packages.nix index 8fbd6d7..3468449 100644 --- a/pkgs/by-name/im/imagemagick/packages.nix +++ b/pkgs/by-name/im/imagemagick/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { imagemagick6_light = imagemagick6.override { bzip2Support = false; zlibSupport = false; @@ -30,37 +29,35 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; }; - imagemagick6Big = imagemagick6.override { - ghostscriptSupport = true; - }; + imagemagick6Big = imagemagick6.override { ghostscriptSupport = true; }; - imagemagick_light = lowPrio (imagemagick.override { - bzip2Support = false; - zlibSupport = false; - libX11Support = false; - libXtSupport = false; - fontconfigSupport = false; - freetypeSupport = false; - libjpegSupport = false; - djvulibreSupport = false; - lcms2Support = false; - openexrSupport = false; - libjxlSupport = false; - libpngSupport = false; - liblqr1Support = false; - librsvgSupport = false; - libtiffSupport = false; - libxml2Support = false; - openjpegSupport = false; - libwebpSupport = false; - libheifSupport = false; - }); + imagemagick_light = lowPrio ( + imagemagick.override { + bzip2Support = false; + zlibSupport = false; + libX11Support = false; + libXtSupport = false; + fontconfigSupport = false; + freetypeSupport = false; + libjpegSupport = false; + djvulibreSupport = false; + lcms2Support = false; + openexrSupport = false; + libjxlSupport = false; + libpngSupport = false; + liblqr1Support = false; + librsvgSupport = false; + libtiffSupport = false; + libxml2Support = false; + openjpegSupport = false; + libwebpSupport = false; + libheifSupport = false; + } + ); - imagemagick = lowPrio (callPackage ./. { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; - }); + imagemagick = lowPrio ( + callPackage ./. { inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; } + ); - imagemagickBig = lowPrio (imagemagick.override { - ghostscriptSupport = true; - }); + imagemagickBig = lowPrio (imagemagick.override { ghostscriptSupport = true; }); } diff --git a/pkgs/by-name/im/imlib2/default.nix b/pkgs/by-name/im/imlib2/default.nix index 9c75eef..f5412aa 100644 --- a/pkgs/by-name/im/imlib2/default.nix +++ b/pkgs/by-name/im/imlib2/default.nix @@ -1,26 +1,38 @@ -{ lib, stdenv, fetchurl -# Image file formats -, libjpeg, libtiff, giflib, libpng, libwebp, libjxl -, libspectre -# imlib2 can load images from ID3 tags. -, libid3tag, librsvg, libheif -, freetype , bzip2, pkg-config -, x11Support ? true -, webpSupport ? true -, svgSupport ? false -, heifSupport ? false -, jxlSupport ? false -, psSupport ? false +{ + lib, + stdenv, + fetchurl, + # Image file formats + libjpeg, + libtiff, + giflib, + libpng, + libwebp, + libjxl, + libspectre, + # imlib2 can load images from ID3 tags. + libid3tag, + librsvg, + libheif, + freetype, + bzip2, + pkg-config, + x11Support ? true, + webpSupport ? true, + svgSupport ? false, + heifSupport ? false, + jxlSupport ? false, + psSupport ? false, -# for passthru.tests -# , libcaca -# , diffoscopeMinimal -# , feh -# , icewm -# , openbox -# , fluxbox -# , enlightenment -, xorg + # for passthru.tests + # , libcaca + # , diffoscopeMinimal + # , feh + # , icewm + # , openbox + # , fluxbox + # , enlightenment + xorg, # , testers # , gitUpdater @@ -38,10 +50,20 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-zEmTGiBWCWioZIycoHkIWXYIXqltWaAbHhfLVa8P/kI="; }; - buildInputs = [ - libjpeg libtiff giflib libpng - bzip2 freetype libid3tag - ] ++ optionals x11Support [ xorg.libXft xorg.libXext ] + buildInputs = + [ + libjpeg + libtiff + giflib + libpng + bzip2 + freetype + libid3tag + ] + ++ optionals x11Support [ + xorg.libXft + xorg.libXext + ] ++ optional heifSupport libheif ++ optional svgSupport librsvg ++ optional webpSupport libwebp @@ -54,12 +76,17 @@ stdenv.mkDerivation (finalAttrs: { # Do not build amd64 assembly code on Darwin, because it fails to compile # with unknow directive errors - configureFlags = optional stdenv.isDarwin "--enable-amd64=no" + configureFlags = + optional stdenv.isDarwin "--enable-amd64=no" ++ optional (!svgSupport) "--without-svg" ++ optional (!heifSupport) "--without-heif" ++ optional (!x11Support) "--without-x"; - outputs = [ "bin" "out" "dev" ]; + outputs = [ + "bin" + "out" + "dev" + ]; # passthru = { # tests = { diff --git a/pkgs/by-name/im/imlib2/packages.nix b/pkgs/by-name/im/imlib2/packages.nix index 54acd8b..1e5527b 100644 --- a/pkgs/by-name/im/imlib2/packages.nix +++ b/pkgs/by-name/im/imlib2/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { imlib2 = callPackage ./. { }; imlib2Full = imlib2.override { # Compilation error on Darwin with librsvg. For more information see: @@ -13,7 +12,5 @@ with pkgs; jxlSupport = true; psSupport = true; }; - imlib2-nox = imlib2.override { - x11Support = false; - }; + imlib2-nox = imlib2.override { x11Support = false; }; } diff --git a/pkgs/by-name/in/inotify-tools/default.nix b/pkgs/by-name/in/inotify-tools/default.nix index e8536ea..097ba96 100644 --- a/pkgs/by-name/in/inotify-tools/default.nix +++ b/pkgs/by-name/in/inotify-tools/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, autoreconfHook, fetchFromGitHub, nix-update-script, fanotifySupport ? true }: +{ + lib, + stdenv, + autoreconfHook, + fetchFromGitHub, + nix-update-script, + fanotifySupport ? true, +}: stdenv.mkDerivation (finalAttrs: { pname = "inotify-tools"; @@ -11,9 +18,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-6kM2JzxRcwUjUmbUWGnQ+gAvZcn7C32/enRwiYiuQGU="; }; - configureFlags = [ - (lib.enableFeature fanotifySupport "fanotify") - ]; + configureFlags = [ (lib.enableFeature fanotifySupport "fanotify") ]; nativeBuildInputs = [ autoreconfHook ]; @@ -24,7 +29,11 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { homepage = "https://github.com/inotify-tools/inotify-tools/wiki"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ marcweber pSub shamilton ]; + maintainers = with maintainers; [ + marcweber + pSub + shamilton + ]; platforms = platforms.linux; }; }) diff --git a/pkgs/by-name/in/intltool/default.nix b/pkgs/by-name/in/intltool/default.nix index 967fc44..e972dc7 100644 --- a/pkgs/by-name/in/intltool/default.nix +++ b/pkgs/by-name/in/intltool/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchurl, fetchpatch, gettext, perlPackages, buildPackages }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + gettext, + perlPackages, + buildPackages, +}: stdenv.mkDerivation rec { pname = "intltool"; @@ -10,17 +18,27 @@ stdenv.mkDerivation rec { }; # fix "unescaped left brace" errors when using intltool in some cases - patches = [(fetchpatch { - name = "perl5.26-regex-fixes.patch"; - urls = [ - "https://sources.debian.org/data/main/i/intltool/0.51.0-5/debian/patches/perl5.26-regex-fixes.patch" - "https://src.fedoraproject.org/rpms/intltool/raw/d8d2ef29fb122a42a6b6678eb1ec97ae56902af2/f/intltool-perl5.26-regex-fixes.patch" - ]; - sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45"; - })]; + patches = [ + (fetchpatch { + name = "perl5.26-regex-fixes.patch"; + urls = [ + "https://sources.debian.org/data/main/i/intltool/0.51.0-5/debian/patches/perl5.26-regex-fixes.patch" + "https://src.fedoraproject.org/rpms/intltool/raw/d8d2ef29fb122a42a6b6678eb1ec97ae56902af2/f/intltool-perl5.26-regex-fixes.patch" + ]; + sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45"; + }) + ]; - nativeBuildInputs = with perlPackages; [ perl XMLParser ]; - propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]); + nativeBuildInputs = with perlPackages; [ + perl + XMLParser + ]; + propagatedBuildInputs = + [ gettext ] + ++ (with perlPackages; [ + perl + XMLParser + ]); postInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' for f in $out/bin/*; do diff --git a/pkgs/by-name/ip/iptables/default.nix b/pkgs/by-name/ip/iptables/default.nix index b824845..4b10f15 100644 --- a/pkgs/by-name/ip/iptables/default.nix +++ b/pkgs/by-name/ip/iptables/default.nix @@ -1,8 +1,19 @@ -{ lib, stdenv, fetchurl -, autoreconfHook, pkg-config, pruneLibtoolFiles, flex, bison -, libmnl, libnetfilter_conntrack, libnfnetlink, libnftnl, libpcap -, nftablesCompat ? true -, gitUpdater +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + pkg-config, + pruneLibtoolFiles, + flex, + bison, + libmnl, + libnetfilter_conntrack, + libnfnetlink, + libnftnl, + libpcap, + nftablesCompat ? true, + gitUpdater, }: stdenv.mkDerivation rec { @@ -14,13 +25,27 @@ stdenv.mkDerivation rec { sha256 = "XMJVwYk1bjF9BwdVzpNx62Oht4PDRJj7jDAmTzzFnJw="; }; - outputs = [ "out" "dev" "man" ]; - - nativeBuildInputs = [ - autoreconfHook pkg-config pruneLibtoolFiles flex bison + outputs = [ + "out" + "dev" + "man" ]; - buildInputs = [ libmnl libnetfilter_conntrack libnfnetlink libnftnl libpcap ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + pruneLibtoolFiles + flex + bison + ]; + + buildInputs = [ + libmnl + libnetfilter_conntrack + libnfnetlink + libnftnl + libpcap + ]; configureFlags = [ "--enable-bpf-compiler" diff --git a/pkgs/by-name/ip/iptables/packages.nix b/pkgs/by-name/ip/iptables/packages.nix index 8ad4c55..ce86a3f 100644 --- a/pkgs/by-name/ip/iptables/packages.nix +++ b/pkgs/by-name/ip/iptables/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { iptables = callPackage ./. { }; iptables-legacy = callPackage ./. { nftablesCompat = false; }; iptables-nftables-compat = iptables; diff --git a/pkgs/by-name/is/isl/generic.nix b/pkgs/by-name/is/isl/generic.nix index 31bd990..5616363 100644 --- a/pkgs/by-name/is/isl/generic.nix +++ b/pkgs/by-name/is/isl/generic.nix @@ -1,31 +1,33 @@ -{ version -, urls -, sha256 -, configureFlags ? [] -, patches ? [] +{ + version, + urls, + sha256, + configureFlags ? [ ], + patches ? [ ], }: -{ lib -, stdenv -, fetchurl -, gmp -, autoreconfHook -, buildPackages +{ + lib, + stdenv, + fetchurl, + gmp, + autoreconfHook, + buildPackages, }: stdenv.mkDerivation { pname = "isl"; inherit version; - src = fetchurl { - inherit urls sha256; - }; + src = fetchurl { inherit urls sha256; }; inherit patches; strictDeps = true; depsBuildBuild = lib.optionals (lib.versionAtLeast version "0.24") [ buildPackages.stdenv.cc ]; - nativeBuildInputs = lib.optionals (stdenv.hostPlatform.isRiscV && lib.versionOlder version "0.24") [ autoreconfHook ]; + nativeBuildInputs = lib.optionals (stdenv.hostPlatform.isRiscV && lib.versionOlder version "0.24") [ + autoreconfHook + ]; buildInputs = [ gmp ]; inherit configureFlags; diff --git a/pkgs/by-name/is/isl/packages.nix b/pkgs/by-name/is/isl/packages.nix index 80e0e82..23b2c3c 100644 --- a/pkgs/by-name/is/isl/packages.nix +++ b/pkgs/by-name/is/isl/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { isl = isl_0_20; isl_0_11 = callPackage ./0.11.1.nix { }; isl_0_14 = callPackage ./0.14.1.nix { }; diff --git a/pkgs/by-name/it/itstool/default.nix b/pkgs/by-name/it/itstool/default.nix index c8889d3..c348439 100644 --- a/pkgs/by-name/it/itstool/default.nix +++ b/pkgs/by-name/it/itstool/default.nix @@ -1,7 +1,8 @@ -{ stdenv -, lib -, fetchurl -, python3 +{ + stdenv, + lib, + fetchurl, + python3, }: stdenv.mkDerivation rec { @@ -25,9 +26,7 @@ stdenv.mkDerivation rec { python3.pkgs.libxml2 ]; - pythonPath = [ - python3.pkgs.libxml2 - ]; + pythonPath = [ python3.pkgs.libxml2 ]; postFixup = '' wrapPythonPrograms diff --git a/pkgs/by-name/ja/jansson/default.nix b/pkgs/by-name/ja/jansson/default.nix index e868324..3ec2193 100644 --- a/pkgs/by-name/ja/jansson/default.nix +++ b/pkgs/by-name/ja/jansson/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: stdenv.mkDerivation rec { pname = "jansson"; diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-darwin-base.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-darwin-base.nix index 68d33b6..caf2189 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-darwin-base.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-darwin-base.nix @@ -1,66 +1,74 @@ -{ sourcePerArch, knownVulnerabilities ? [] }: +{ + sourcePerArch, + knownVulnerabilities ? [ ], +}: -{ swingSupport ? true # not used for now -, lib, stdenv -, fetchurl -, setJavaClassPath +{ + swingSupport ? true, # not used for now + lib, + stdenv, + fetchurl, + setJavaClassPath, }: assert (stdenv.isDarwin && stdenv.isx86_64); -let cpuName = stdenv.hostPlatform.parsed.cpu.name; - result = stdenv.mkDerivation { - pname = if sourcePerArch.packageType == "jdk" - then "adoptopenjdk-${sourcePerArch.vmType}-bin" - else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin"; - version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); +let + cpuName = stdenv.hostPlatform.parsed.cpu.name; + result = stdenv.mkDerivation { + pname = + if sourcePerArch.packageType == "jdk" then + "adoptopenjdk-${sourcePerArch.vmType}-bin" + else + "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin"; + version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + + src = fetchurl { inherit (sourcePerArch.${cpuName}) url sha256; }; + + # See: https://github.com/NixOS/patchelf/issues/10 + dontStrip = 1; + + installPhase = '' + cd .. + + mv $sourceRoot $out + + # jni.h expects jni_md.h to be in the header search path. + ln -s $out/Contents/Home/include/darwin/*_md.h $out/Contents/Home/include/ + + rm -rf $out/Home/demo + + # Remove some broken manpages. + rm -rf $out/Home/man/ja* + + ln -s $out/Contents/Home/* $out/ + + # Propagate the setJavaClassPath setup hook from the JDK so that + # any package that depends on the JDK has $CLASSPATH set up + # properly. + mkdir -p $out/nix-support + printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs + + # Set JAVA_HOME automatically. + cat <> $out/nix-support/setup-hook + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + ''; + + # FIXME: use multiple outputs or return actual JRE package + passthru.jre = result; + + passthru.home = result; + + meta = with lib; { + license = licenses.gpl2Classpath; + description = "AdoptOpenJDK, prebuilt OpenJDK binary"; + platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms + maintainers = with lib.maintainers; [ taku0 ]; + inherit knownVulnerabilities; + mainProgram = "java"; + }; - src = fetchurl { - inherit (sourcePerArch.${cpuName}) url sha256; }; - - # See: https://github.com/NixOS/patchelf/issues/10 - dontStrip = 1; - - installPhase = '' - cd .. - - mv $sourceRoot $out - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/Contents/Home/include/darwin/*_md.h $out/Contents/Home/include/ - - rm -rf $out/Home/demo - - # Remove some broken manpages. - rm -rf $out/Home/man/ja* - - ln -s $out/Contents/Home/* $out/ - - # Propagate the setJavaClassPath setup hook from the JDK so that - # any package that depends on the JDK has $CLASSPATH set up - # properly. - mkdir -p $out/nix-support - printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - cat <> $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi - EOF - ''; - - # FIXME: use multiple outputs or return actual JRE package - passthru.jre = result; - - passthru.home = result; - - meta = with lib; { - license = licenses.gpl2Classpath; - description = "AdoptOpenJDK, prebuilt OpenJDK binary"; - platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms - maintainers = with lib.maintainers; [ taku0 ]; - inherit knownVulnerabilities; - mainProgram = "java"; - }; - -}; in result +in +result diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-linux-base.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-linux-base.nix index 712efc2..7706978 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-linux-base.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk-linux-base.nix @@ -1,123 +1,138 @@ -{ sourcePerArch, knownVulnerabilities ? [] }: +{ + sourcePerArch, + knownVulnerabilities ? [ ], +}: -{ stdenv -, lib -, fetchurl -, autoPatchelfHook -, makeWrapper -, setJavaClassPath -# minimum dependencies -, alsa-lib -, fontconfig -, freetype -, libffi -, xorg -, zlib -# runtime dependencies -, cups -# runtime dependencies for GTK+ Look and Feel -, gtkSupport ? true -, cairo -, glib -, gtk3 +{ + stdenv, + lib, + fetchurl, + autoPatchelfHook, + makeWrapper, + setJavaClassPath, + # minimum dependencies + alsa-lib, + fontconfig, + freetype, + libffi, + xorg, + zlib, + # runtime dependencies + cups, + # runtime dependencies for GTK+ Look and Feel + gtkSupport ? true, + cairo, + glib, + gtk3, }: let cpuName = stdenv.hostPlatform.parsed.cpu.name; - runtimeDependencies = [ - cups - ] ++ lib.optionals gtkSupport [ - cairo glib gtk3 - ]; + runtimeDependencies = + [ cups ] + ++ lib.optionals gtkSupport [ + cairo + glib + gtk3 + ]; runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies; in -let result = stdenv.mkDerivation rec { - pname = if sourcePerArch.packageType == "jdk" - then "adoptopenjdk-${sourcePerArch.vmType}-bin" - else "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin"; +let + result = stdenv.mkDerivation rec { + pname = + if sourcePerArch.packageType == "jdk" then + "adoptopenjdk-${sourcePerArch.vmType}-bin" + else + "adoptopenjdk-${sourcePerArch.packageType}-${sourcePerArch.vmType}-bin"; - version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + + src = fetchurl { inherit (sourcePerArch.${cpuName}) url sha256; }; + + buildInputs = [ + alsa-lib # libasound.so wanted by lib/libjsound.so + fontconfig + freetype + stdenv.cc.cc.lib # libstdc++.so.6 + xorg.libX11 + xorg.libXext + xorg.libXi + xorg.libXrender + xorg.libXtst + zlib + ] ++ lib.optional stdenv.isAarch32 libffi; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + # See: https://github.com/NixOS/patchelf/issues/10 + dontStrip = 1; + + installPhase = '' + cd .. + + mv $sourceRoot $out + + # jni.h expects jni_md.h to be in the header search path. + ln -s $out/include/linux/*_md.h $out/include/ + + rm -rf $out/demo + + # Remove some broken manpages. + rm -rf $out/man/ja* + + # Remove embedded freetype to avoid problems like + # https://github.com/NixOS/nixpkgs/issues/57733 + find "$out" -name 'libfreetype.so*' -delete + + # Propagate the setJavaClassPath setup hook from the JDK so that + # any package that depends on the JDK has $CLASSPATH set up + # properly. + mkdir -p $out/nix-support + printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs + + # Set JAVA_HOME automatically. + cat <> "$out/nix-support/setup-hook" + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + + # We cannot use -exec since wrapProgram is a function but not a command. + # + # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it + # breaks building OpenJDK (#114495). + for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do + if patchelf --print-interpreter "$bin" &> /dev/null; then + wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" + fi + done + ''; + + preFixup = '' + find "$out" -name libfontmanager.so -exec \ + patchelf --add-needed libfontconfig.so {} \; + ''; + + # FIXME: use multiple outputs or return actual JRE package + passthru.jre = result; + + passthru.home = result; + + meta = with lib; { + license = licenses.gpl2Classpath; + sourceProvenance = with sourceTypes; [ + binaryNativeCode + binaryBytecode + ]; + description = "AdoptOpenJDK, prebuilt OpenJDK binary"; + platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms + maintainers = with lib.maintainers; [ taku0 ]; + inherit knownVulnerabilities; + mainProgram = "java"; + }; - src = fetchurl { - inherit (sourcePerArch.${cpuName}) url sha256; }; - - buildInputs = [ - alsa-lib # libasound.so wanted by lib/libjsound.so - fontconfig - freetype - stdenv.cc.cc.lib # libstdc++.so.6 - xorg.libX11 - xorg.libXext - xorg.libXi - xorg.libXrender - xorg.libXtst - zlib - ] ++ lib.optional stdenv.isAarch32 libffi; - - nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; - - # See: https://github.com/NixOS/patchelf/issues/10 - dontStrip = 1; - - installPhase = '' - cd .. - - mv $sourceRoot $out - - # jni.h expects jni_md.h to be in the header search path. - ln -s $out/include/linux/*_md.h $out/include/ - - rm -rf $out/demo - - # Remove some broken manpages. - rm -rf $out/man/ja* - - # Remove embedded freetype to avoid problems like - # https://github.com/NixOS/nixpkgs/issues/57733 - find "$out" -name 'libfreetype.so*' -delete - - # Propagate the setJavaClassPath setup hook from the JDK so that - # any package that depends on the JDK has $CLASSPATH set up - # properly. - mkdir -p $out/nix-support - printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs - - # Set JAVA_HOME automatically. - cat <> "$out/nix-support/setup-hook" - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi - EOF - - # We cannot use -exec since wrapProgram is a function but not a command. - # - # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it - # breaks building OpenJDK (#114495). - for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do - if patchelf --print-interpreter "$bin" &> /dev/null; then - wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" - fi - done - ''; - - preFixup = '' - find "$out" -name libfontmanager.so -exec \ - patchelf --add-needed libfontconfig.so {} \; - ''; - - # FIXME: use multiple outputs or return actual JRE package - passthru.jre = result; - - passthru.home = result; - - meta = with lib; { - license = licenses.gpl2Classpath; - sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; - description = "AdoptOpenJDK, prebuilt OpenJDK binary"; - platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms - maintainers = with lib.maintainers; [ taku0 ]; - inherit knownVulnerabilities; - mainProgram = "java"; - }; - -}; in result +in +result diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix index fcad500..263f479 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk11-linux.nix @@ -5,8 +5,16 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.${variant}.jdk.hotspot; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.${variant}.jre.hotspot; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.${variant}.jdk.openj9; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk11.${variant}.jre.openj9; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk11.${variant}.jdk.hotspot; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk11.${variant}.jre.hotspot; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk11.${variant}.jdk.openj9; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk11.${variant}.jre.openj9; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix index fdde25b..c577c68 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-darwin.nix @@ -4,8 +4,20 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jre.hotspot; knownVulnerabilities = ["Support ended"]; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jdk.openj9; knownVulnerabilities = ["Support ended"]; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk13.mac.jre.openj9; knownVulnerabilities = ["Support ended"]; }; + jdk-hotspot = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk13.mac.jdk.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-hotspot = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk13.mac.jre.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jdk-openj9 = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk13.mac.jdk.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-openj9 = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk13.mac.jre.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix index 6c57b54..98b380a 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk13-linux.nix @@ -5,8 +5,20 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.${variant}.jdk.hotspot; knownVulnerabilities = ["Support ended"]; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.${variant}.jre.hotspot; knownVulnerabilities = ["Support ended"]; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.${variant}.jdk.openj9; knownVulnerabilities = ["Support ended"]; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk13.${variant}.jre.openj9; knownVulnerabilities = ["Support ended"]; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk13.${variant}.jdk.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk13.${variant}.jre.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk13.${variant}.jdk.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk13.${variant}.jre.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix index 1c776f6..17d77dd 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-darwin.nix @@ -4,8 +4,20 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jdk.hotspot; knownVulnerabilities = ["Support ended"]; }; - jre-hotspot = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jre.hotspot; knownVulnerabilities = ["Support ended"]; }; - jdk-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jdk.openj9; knownVulnerabilities = ["Support ended"]; }; - jre-openj9 = import ./jdk-darwin-base.nix { sourcePerArch = sources.openjdk14.mac.jre.openj9; knownVulnerabilities = ["Support ended"]; }; + jdk-hotspot = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk14.mac.jdk.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-hotspot = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk14.mac.jre.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jdk-openj9 = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk14.mac.jdk.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-openj9 = import ./jdk-darwin-base.nix { + sourcePerArch = sources.openjdk14.mac.jre.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix index 573fc17..070d8c8 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk14-linux.nix @@ -5,8 +5,20 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.${variant}.jdk.hotspot; knownVulnerabilities = ["Support ended"]; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.${variant}.jre.hotspot; knownVulnerabilities = ["Support ended"]; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.${variant}.jdk.openj9; knownVulnerabilities = ["Support ended"]; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk14.${variant}.jre.openj9; knownVulnerabilities = ["Support ended"]; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk14.${variant}.jdk.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk14.${variant}.jre.hotspot; + knownVulnerabilities = [ "Support ended" ]; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk14.${variant}.jdk.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk14.${variant}.jre.openj9; + knownVulnerabilities = [ "Support ended" ]; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix index 7c6d1d3..f492980 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk15-linux.nix @@ -5,8 +5,16 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk15.${variant}.jre.openj9; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk15.${variant}.jdk.hotspot; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk15.${variant}.jre.hotspot; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk15.${variant}.jdk.openj9; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk15.${variant}.jre.openj9; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-linux.nix index 3d80390..4bad7c1 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk16-linux.nix @@ -5,8 +5,16 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk16.${variant}.jre.openj9; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk16.${variant}.jdk.hotspot; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk16.${variant}.jre.hotspot; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk16.${variant}.jdk.openj9; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk16.${variant}.jre.openj9; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix index e069a85..151a1c3 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk17-linux.nix @@ -5,6 +5,10 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk17.${variant}.jdk.hotspot; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk17.${variant}.jre.hotspot; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk17.${variant}.jdk.hotspot; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk17.${variant}.jre.hotspot; + }; } diff --git a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix index 2b0cac6..553556b 100644 --- a/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix +++ b/pkgs/by-name/ja/java/adoptopenjdk-bin/jdk8-linux.nix @@ -5,8 +5,16 @@ let sources = lib.importJSON ./sources.json; in { - jdk-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.${variant}.jdk.hotspot; }; - jre-hotspot = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.${variant}.jre.hotspot; }; - jdk-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.${variant}.jdk.openj9; }; - jre-openj9 = import ./jdk-linux-base.nix { sourcePerArch = sources.openjdk8.${variant}.jre.openj9; }; + jdk-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk8.${variant}.jdk.hotspot; + }; + jre-hotspot = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk8.${variant}.jre.hotspot; + }; + jdk-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk8.${variant}.jdk.openj9; + }; + jre-openj9 = import ./jdk-linux-base.nix { + sourcePerArch = sources.openjdk8.${variant}.jre.openj9; + }; } diff --git a/pkgs/by-name/ja/java/java-packages.nix b/pkgs/by-name/ja/java/java-packages.nix index 090a1ce..b44f4a2 100644 --- a/pkgs/by-name/ja/java/java-packages.nix +++ b/pkgs/by-name/ja/java/java-packages.nix @@ -11,238 +11,202 @@ let openjfx21 = callPackage ./openjdk/openjfx/21.nix { }; openjfx22 = callPackage ./openjdk/openjfx/22.nix { }; -in { - inherit openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; +in +{ + inherit + openjfx11 + openjfx15 + openjfx17 + openjfx19 + openjfx20 + openjfx21 + openjfx22 + ; - compiler = let + compiler = + let - gnomeArgs = { - inherit (gnome2) GConf gnome_vfs; - }; + gnomeArgs = { + inherit (gnome2) GConf gnome_vfs; + }; - bootstrapArgs = gnomeArgs // { - openjfx = openjfx11; /* need this despite next line :-( */ - enableJavaFX = false; - headless = true; - }; + bootstrapArgs = gnomeArgs // { + openjfx = openjfx11; # need this despite next line :-( + enableJavaFX = false; + headless = true; + }; - mkAdoptopenjdk = path-linux: path-darwin: let - package-linux = import path-linux { inherit stdenv lib; }; - package-darwin = import path-darwin { inherit lib; }; - package = if stdenv.isLinux - then package-linux - else package-darwin; - in { - inherit package-linux package-darwin; - __attrsFailEvaluation = true; + mkAdoptopenjdk = + path-linux: path-darwin: + let + package-linux = import path-linux { inherit stdenv lib; }; + package-darwin = import path-darwin { inherit lib; }; + package = if stdenv.isLinux then package-linux else package-darwin; + in + { + inherit package-linux package-darwin; + __attrsFailEvaluation = true; - jdk-hotspot = callPackage package.jdk-hotspot {}; - jre-hotspot = callPackage package.jre-hotspot {}; - } // lib.optionalAttrs (package?jdk-openj9) { - jdk-openj9 = callPackage package.jdk-openj9 {}; - } // lib.optionalAttrs (package?jre-openj9) { - jre-openj9 = callPackage package.jre-openj9 {}; - }; + jdk-hotspot = callPackage package.jdk-hotspot { }; + jre-hotspot = callPackage package.jre-hotspot { }; + } + // lib.optionalAttrs (package ? jdk-openj9) { jdk-openj9 = callPackage package.jdk-openj9 { }; } + // lib.optionalAttrs (package ? jre-openj9) { jre-openj9 = callPackage package.jre-openj9 { }; }; - mkBootstrap = adoptopenjdk: path: args: - /* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */ - if !stdenv.hostPlatform.isi686 - then - # only linux has the gtkSupport option - if stdenv.isLinux - then adoptopenjdk.jdk-hotspot.override { gtkSupport = false; } - else adoptopenjdk.jdk-hotspot - else callPackage path args; + mkBootstrap = + adoptopenjdk: path: args: + # adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping + if !stdenv.hostPlatform.isi686 then + # only linux has the gtkSupport option + if stdenv.isLinux then + adoptopenjdk.jdk-hotspot.override { gtkSupport = false; } + else + adoptopenjdk.jdk-hotspot + else + callPackage path args; - mkOpenjdk = path-linux: path-darwin: args: - if stdenv.isLinux - then mkOpenjdkLinuxOnly path-linux args - else let - openjdk = callPackage path-darwin {}; - in openjdk // { headless = openjdk; }; + mkOpenjdk = + path-linux: path-darwin: args: + if stdenv.isLinux then + mkOpenjdkLinuxOnly path-linux args + else + let + openjdk = callPackage path-darwin { }; + in + openjdk // { headless = openjdk; }; - mkOpenjdkLinuxOnly = path-linux: args: let - openjdk = callPackage path-linux (gnomeArgs // args); - in assert stdenv.isLinux; openjdk // { - headless = openjdk.override { headless = true; }; - }; + mkOpenjdkLinuxOnly = + path-linux: args: + let + openjdk = callPackage path-linux (gnomeArgs // args); + in + assert stdenv.isLinux; + openjdk // { headless = openjdk.override { headless = true; }; }; - in rec { - adoptopenjdk-8 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk8-linux.nix - ./adoptopenjdk-bin/jdk8-darwin.nix; + in + rec { + adoptopenjdk-8 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk8-linux.nix ./adoptopenjdk-bin/jdk8-darwin.nix; - adoptopenjdk-11 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk11-linux.nix - ./adoptopenjdk-bin/jdk11-darwin.nix; + adoptopenjdk-11 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk11-linux.nix ./adoptopenjdk-bin/jdk11-darwin.nix; - adoptopenjdk-13 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk13-linux.nix - ./adoptopenjdk-bin/jdk13-darwin.nix; + adoptopenjdk-13 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk13-linux.nix ./adoptopenjdk-bin/jdk13-darwin.nix; - adoptopenjdk-14 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk14-linux.nix - ./adoptopenjdk-bin/jdk14-darwin.nix; + adoptopenjdk-14 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk14-linux.nix ./adoptopenjdk-bin/jdk14-darwin.nix; - adoptopenjdk-15 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk15-linux.nix - ./adoptopenjdk-bin/jdk15-darwin.nix; + adoptopenjdk-15 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk15-linux.nix ./adoptopenjdk-bin/jdk15-darwin.nix; - adoptopenjdk-16 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk16-linux.nix - ./adoptopenjdk-bin/jdk16-darwin.nix; + adoptopenjdk-16 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk16-linux.nix ./adoptopenjdk-bin/jdk16-darwin.nix; - adoptopenjdk-17 = mkAdoptopenjdk - ./adoptopenjdk-bin/jdk17-linux.nix - ./adoptopenjdk-bin/jdk17-darwin.nix; + adoptopenjdk-17 = mkAdoptopenjdk ./adoptopenjdk-bin/jdk17-linux.nix ./adoptopenjdk-bin/jdk17-darwin.nix; - corretto11 = callPackage ./corretto/11.nix { }; - corretto17 = callPackage ./corretto/17.nix { }; - corretto19 = callPackage ./corretto/19.nix { }; - corretto21 = callPackage ./corretto/21.nix { }; + corretto11 = callPackage ./corretto/11.nix { }; + corretto17 = callPackage ./corretto/17.nix { }; + corretto19 = callPackage ./corretto/19.nix { }; + corretto21 = callPackage ./corretto/21.nix { }; - openjdk8-bootstrap = mkBootstrap adoptopenjdk-8 - ./openjdk/bootstrap.nix - { version = "8"; }; + openjdk8-bootstrap = mkBootstrap adoptopenjdk-8 ./openjdk/bootstrap.nix { version = "8"; }; - openjdk11-bootstrap = mkBootstrap adoptopenjdk-11 - ./openjdk/bootstrap.nix - { version = "10"; }; + openjdk11-bootstrap = mkBootstrap adoptopenjdk-11 ./openjdk/bootstrap.nix { version = "10"; }; - openjdk13-bootstrap = mkBootstrap adoptopenjdk-13 - ./openjdk/12.nix - (bootstrapArgs // { - inherit openjdk11-bootstrap; - /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */ - stdenv = gcc8Stdenv; - }); + openjdk13-bootstrap = mkBootstrap adoptopenjdk-13 ./openjdk/12.nix ( + bootstrapArgs + // { + inherit openjdk11-bootstrap; + # build segfaults with gcc9 or newer, so use gcc8 like Debian does + stdenv = gcc8Stdenv; + } + ); - openjdk14-bootstrap = mkBootstrap adoptopenjdk-14 - ./openjdk/13.nix - (bootstrapArgs // { - inherit openjdk13-bootstrap; - }); + openjdk14-bootstrap = mkBootstrap adoptopenjdk-14 ./openjdk/13.nix ( + bootstrapArgs // { inherit openjdk13-bootstrap; } + ); - openjdk15-bootstrap = mkBootstrap adoptopenjdk-15 - ./openjdk/14.nix - (bootstrapArgs // { - inherit openjdk14-bootstrap; - }); + openjdk15-bootstrap = mkBootstrap adoptopenjdk-15 ./openjdk/14.nix ( + bootstrapArgs // { inherit openjdk14-bootstrap; } + ); - openjdk16-bootstrap = mkBootstrap adoptopenjdk-16 - ./openjdk/15.nix - (bootstrapArgs // { - inherit openjdk15-bootstrap; - }); + openjdk16-bootstrap = mkBootstrap adoptopenjdk-16 ./openjdk/15.nix ( + bootstrapArgs // { inherit openjdk15-bootstrap; } + ); - openjdk17-bootstrap = mkBootstrap adoptopenjdk-17 - ./openjdk/16.nix - (bootstrapArgs // { - inherit openjdk16-bootstrap; - }); + openjdk17-bootstrap = mkBootstrap adoptopenjdk-17 ./openjdk/16.nix ( + bootstrapArgs // { inherit openjdk16-bootstrap; } + ); - openjdk18-bootstrap = mkBootstrap adoptopenjdk-17 - ./openjdk/17.nix - (bootstrapArgs // { - inherit openjdk17-bootstrap; - }); + openjdk18-bootstrap = mkBootstrap adoptopenjdk-17 ./openjdk/17.nix ( + bootstrapArgs // { inherit openjdk17-bootstrap; } + ); - openjdk8 = mkOpenjdk - ./openjdk/8.nix - ./zulu/8.nix - { }; + openjdk8 = mkOpenjdk ./openjdk/8.nix ./zulu/8.nix { }; - openjdk11 = mkOpenjdk - ./openjdk/11.nix - ./zulu/11.nix - { openjfx = openjfx11; }; + openjdk11 = mkOpenjdk ./openjdk/11.nix ./zulu/11.nix { openjfx = openjfx11; }; - openjdk12 = mkOpenjdkLinuxOnly ./openjdk/12.nix { - /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */ + openjdk12 = mkOpenjdkLinuxOnly ./openjdk/12.nix { + # build segfaults with gcc9 or newer, so use gcc8 like Debian does stdenv = gcc8Stdenv; openjfx = openjfx11; - }; + }; - openjdk13 = mkOpenjdkLinuxOnly ./openjdk/13.nix { - inherit openjdk13-bootstrap; - openjfx = openjfx11; - }; + openjdk13 = mkOpenjdkLinuxOnly ./openjdk/13.nix { + inherit openjdk13-bootstrap; + openjfx = openjfx11; + }; - openjdk14 = mkOpenjdkLinuxOnly ./openjdk/14.nix { - inherit openjdk14-bootstrap; - openjfx = openjfx11; - }; + openjdk14 = mkOpenjdkLinuxOnly ./openjdk/14.nix { + inherit openjdk14-bootstrap; + openjfx = openjfx11; + }; - openjdk15 = mkOpenjdkLinuxOnly ./openjdk/15.nix { - inherit openjdk15-bootstrap; - openjfx = openjfx15; - }; + openjdk15 = mkOpenjdkLinuxOnly ./openjdk/15.nix { + inherit openjdk15-bootstrap; + openjfx = openjfx15; + }; - openjdk16 = mkOpenjdkLinuxOnly ./openjdk/16.nix { - inherit openjdk16-bootstrap; - openjfx = openjfx15; - }; + openjdk16 = mkOpenjdkLinuxOnly ./openjdk/16.nix { + inherit openjdk16-bootstrap; + openjfx = openjfx15; + }; - openjdk17 = mkOpenjdk - ./openjdk/17.nix - ./zulu/17.nix - { + openjdk17 = mkOpenjdk ./openjdk/17.nix ./zulu/17.nix { inherit openjdk17-bootstrap; openjfx = openjfx17; }; - openjdk18 = mkOpenjdk - ./openjdk/18.nix - ./zulu/18.nix - { + openjdk18 = mkOpenjdk ./openjdk/18.nix ./zulu/18.nix { inherit openjdk18-bootstrap; openjfx = openjfx17; }; - openjdk19 = mkOpenjdk - ./openjdk/19.nix - ./zulu/19.nix - { + openjdk19 = mkOpenjdk ./openjdk/19.nix ./zulu/19.nix { openjdk19-bootstrap = temurin-bin.jdk-19; openjfx = openjfx19; }; - openjdk20 = mkOpenjdk - ./openjdk/20.nix - ./zulu/20.nix - { + openjdk20 = mkOpenjdk ./openjdk/20.nix ./zulu/20.nix { openjdk20-bootstrap = temurin-bin.jdk-20; openjfx = openjfx20; }; - openjdk21 = mkOpenjdk - ./openjdk/21.nix - ./zulu/21.nix - { + openjdk21 = mkOpenjdk ./openjdk/21.nix ./zulu/21.nix { openjdk21-bootstrap = temurin-bin.jdk-21; openjfx = openjfx21; }; - openjdk22 = mkOpenjdk - ./openjdk/22.nix - ./zulu/22.nix - { + openjdk22 = mkOpenjdk ./openjdk/22.nix ./zulu/22.nix { openjdk22-bootstrap = temurin-bin.jdk-21; openjfx = openjfx22; }; - temurin-bin = recurseIntoAttrs (callPackage ( - if stdenv.isLinux - then ./temurin-bin/jdk-linux.nix - else ./temurin-bin/jdk-darwin.nix - ) {}); + temurin-bin = recurseIntoAttrs ( + callPackage ( + if stdenv.isLinux then ./temurin-bin/jdk-linux.nix else ./temurin-bin/jdk-darwin.nix + ) { } + ); - semeru-bin = recurseIntoAttrs (callPackage ( - if stdenv.isLinux - then ./semeru-bin/jdk-linux.nix - else ./semeru-bin/jdk-darwin.nix - ) {}); - }; + semeru-bin = recurseIntoAttrs ( + callPackage (if stdenv.isLinux then ./semeru-bin/jdk-linux.nix else ./semeru-bin/jdk-darwin.nix) { } + ); + }; } // lib.optionalAttrs config.allowAliases { jogl_2_4_0 = throw "'jogl_2_4_0' is renamed to/replaced by 'jogl'"; diff --git a/pkgs/by-name/ja/java/openjdk/11.nix b/pkgs/by-name/ja/java/openjdk/11.nix index e9b8961..8b717b6 100644 --- a/pkgs/by-name/ja/java/openjdk/11.nix +++ b/pkgs/by-name/ja/java/openjdk/11.nix @@ -1,11 +1,47 @@ -{ stdenv, lib, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio, file, which, unzip -, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk11-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + harfbuzz, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk11-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -28,14 +64,48 @@ let sha256 = "sha256-mp8toB1dWcwOtMqNFd7UwRg8pLJckovqD/LD5p9zUoA="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + harfbuzz + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -51,30 +121,30 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk10.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk10.patch ]; preConfigure = '' chmod +x configure substituteInPlace configure --replace /bin/bash "${bash}/bin/bash" ''; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-harfbuzz=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - "--disable-warnings-as-errors" - ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-harfbuzz=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + "--disable-warnings-as-errors" + ] + ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; @@ -85,11 +155,21 @@ let # when building jtreg env.NIX_CFLAGS_COMPILE = "-Wformat"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -168,4 +248,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/12.nix b/pkgs/by-name/ja/java/openjdk/12.nix index ab0696e..7afa573 100644 --- a/pkgs/by-name/ja/java/openjdk/12.nix +++ b/pkgs/by-name/ja/java/openjdk/12.nix @@ -1,11 +1,46 @@ -{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip -, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk11-bootstrap, fetchpatch -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk11-bootstrap, + fetchpatch, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -25,14 +60,47 @@ let sha256 = "1ndlxmikyy298z7lqpr1bd0zxq7yx6xidj8y3c8mw9m9fy64h9c7"; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -52,28 +120,28 @@ let url = "https://github.com/openjdk/panama-foreign/commit/af5c725b8109ce83fc04ef0f8bf6aaf0b50c0441.patch"; sha256 = "0ja84kih5wkjn58pml53s59qnavb1z92dc88cbgw7vcyqwc1gs0h"; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk10.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk10.patch ]; prePatch = '' chmod +x configure patchShebangs --build configure ''; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; @@ -81,11 +149,20 @@ let env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ]; - NIX_LDFLAGS = lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]; + NIX_LDFLAGS = + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ]; # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -169,4 +246,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/13.nix b/pkgs/by-name/ja/java/openjdk/13.nix index 5d5d9f7..7308e31 100644 --- a/pkgs/by-name/ja/java/openjdk/13.nix +++ b/pkgs/by-name/ja/java/openjdk/13.nix @@ -1,11 +1,46 @@ -{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip -, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk13-bootstrap, fetchpatch -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk13-bootstrap, + fetchpatch, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -25,14 +60,47 @@ let sha256 = "1871ziss7ny19rw8f7bay5vznmhpqbfi4ihn3yygs06wyxhm0zmv"; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -52,9 +120,7 @@ let url = "https://github.com/openjdk/panama-foreign/commit/af5c725b8109ce83fc04ef0f8bf6aaf0b50c0441.patch"; sha256 = "0ja84kih5wkjn58pml53s59qnavb1z92dc88cbgw7vcyqwc1gs0h"; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; prePatch = '' chmod +x configure @@ -64,21 +130,26 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; @@ -86,11 +157,21 @@ let env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -166,7 +247,9 @@ let disallowedReferences = [ openjdk-bootstrap ]; - meta = (import ./meta.nix lib version) // { broken = true; }; + meta = (import ./meta.nix lib version) // { + broken = true; + }; passthru = { architecture = ""; @@ -174,4 +257,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/14.nix b/pkgs/by-name/ja/java/openjdk/14.nix index 348fd39..def00f5 100644 --- a/pkgs/by-name/ja/java/openjdk/14.nix +++ b/pkgs/by-name/ja/java/openjdk/14.nix @@ -1,11 +1,45 @@ -{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip -, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk14-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk14-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -25,14 +59,47 @@ let sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3"; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -47,9 +114,7 @@ let url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; prePatch = '' chmod +x configure @@ -59,21 +124,26 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; @@ -81,11 +151,21 @@ let env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -162,7 +242,9 @@ let disallowedReferences = [ openjdk-bootstrap ]; - meta = (import ./meta.nix lib version) // { broken = true; }; + meta = (import ./meta.nix lib version) // { + broken = true; + }; passthru = { architecture = ""; @@ -170,4 +252,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/15.nix b/pkgs/by-name/ja/java/openjdk/15.nix index 2447b07..f8b7780 100644 --- a/pkgs/by-name/ja/java/openjdk/15.nix +++ b/pkgs/by-name/ja/java/openjdk/15.nix @@ -1,11 +1,45 @@ -{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip -, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib, libpng, zlib, lcms2 -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama -, libXcursor, libXrandr, fontconfig, openjdk15-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk15-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -28,14 +62,47 @@ let sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l"; }; - nativeBuildInputs = [ pkg-config autoconf unzip zip file which ]; - buildInputs = [ - cpio perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip + zip + file + which ]; + buildInputs = + [ + cpio + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -50,9 +117,7 @@ let url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch"; sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; prePatch = '' chmod +x configure @@ -62,32 +127,47 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -173,4 +253,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/16.nix b/pkgs/by-name/ja/java/openjdk/16.nix index 4b0874a..a150eb6 100644 --- a/pkgs/by-name/ja/java/openjdk/16.nix +++ b/pkgs/by-name/ja/java/openjdk/16.nix @@ -1,11 +1,46 @@ -{ stdenv, lib, fetchurl, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk16-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk16-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -29,14 +64,47 @@ let sha256 = "165nr15dqfcxzsl5z95g4iklln4rlfkgdigdma576mx8813ldi44"; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -52,9 +120,7 @@ let sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r"; }) ./fix-glibc-2.34.patch - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; prePatch = '' chmod +x configure @@ -64,34 +130,49 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -177,4 +258,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/17.nix b/pkgs/by-name/ja/java/openjdk/17.nix index d2c7168..eecc3c3 100644 --- a/pkgs/by-name/ja/java/openjdk/17.nix +++ b/pkgs/by-name/ja/java/openjdk/17.nix @@ -1,11 +1,48 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk17-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + harfbuzz, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk17-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -29,14 +66,48 @@ let sha256 = "sha256-S6QOB4Tbi+K1yjvvywTfvwFI2eX8AiqIx5c3zfxcskc="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + harfbuzz + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -69,9 +140,7 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -81,35 +150,50 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-harfbuzz=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-harfbuzz=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -191,4 +275,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/18.nix b/pkgs/by-name/ja/java/openjdk/18.nix index 2c49672..638d0ef 100644 --- a/pkgs/by-name/ja/java/openjdk/18.nix +++ b/pkgs/by-name/ja/java/openjdk/18.nix @@ -1,11 +1,48 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, harfbuzz, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk18-bootstrap -, setJavaClassPath -, headless ? false -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + harfbuzz, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk18-bootstrap, + setJavaClassPath, + headless ? false, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -28,14 +65,48 @@ let sha256 = "sha256-yGPC8VA983Ml6Fv/oiEgRrcVe4oe+Q4oCHbzOmFbZq8="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype harfbuzz alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + harfbuzz + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -59,9 +130,7 @@ let url = "https://git.alpinelinux.org/aports/plain/testing/openjdk18/FixNullPtrCast.patch?id=b93d1fc37fcf106144958d957bb97c7db67bd41f"; hash = "sha256-nvO8RcmKwMcPdzq28mZ4If1XJ6FQ76CYWqRIozPCk5U="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -71,35 +140,50 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-freetype=system" - "--with-harfbuzz=system" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-freetype=system" + "--with-harfbuzz=system" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -187,4 +271,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/19.nix b/pkgs/by-name/ja/java/openjdk/19.nix index 51fd0d8..16ae61a 100644 --- a/pkgs/by-name/ja/java/openjdk/19.nix +++ b/pkgs/by-name/ja/java/openjdk/19.nix @@ -1,14 +1,50 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk19-bootstrap -, ensureNewerSourcesForZipFilesHook -, setJavaClassPath -# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages -# which should be fixable, this is a no-rebuild workaround for GHC. -, headless ? stdenv.targetPlatform.isGhcjs -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk19-bootstrap, + ensureNewerSourcesForZipFilesHook, + setJavaClassPath, + # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages + # which should be fixable, this is a no-rebuild workaround for GHC. + headless ? stdenv.targetPlatform.isGhcjs, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -32,14 +68,48 @@ let hash = "sha256-pBEHmBtIgG4Czou4C/zpBBYZEDImvXiLoA5CjOzpeyI="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip + ensureNewerSourcesForZipFilesHook ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -71,9 +141,7 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -83,33 +151,48 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -191,4 +274,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/20.nix b/pkgs/by-name/ja/java/openjdk/20.nix index 2be834a..9c0d0a4 100644 --- a/pkgs/by-name/ja/java/openjdk/20.nix +++ b/pkgs/by-name/ja/java/openjdk/20.nix @@ -1,14 +1,50 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk20-bootstrap -, ensureNewerSourcesForZipFilesHook -, setJavaClassPath -# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages -# which should be fixable, this is a no-rebuild workaround for GHC. -, headless ? stdenv.targetPlatform.isGhcjs -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk20-bootstrap, + ensureNewerSourcesForZipFilesHook, + setJavaClassPath, + # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages + # which should be fixable, this is a no-rebuild workaround for GHC. + headless ? stdenv.targetPlatform.isGhcjs, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -32,14 +68,48 @@ let hash = "sha256-fXoSO8nq5qpUYbCtbrRr2C46XRdYX77Pxmk7GfmlZV4="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip + ensureNewerSourcesForZipFilesHook ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk10.patch @@ -71,9 +141,7 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -83,33 +151,48 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional headless "--enable-headless-only" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -191,4 +274,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/21.nix b/pkgs/by-name/ja/java/openjdk/21.nix index 623ac28..9b51285 100644 --- a/pkgs/by-name/ja/java/openjdk/21.nix +++ b/pkgs/by-name/ja/java/openjdk/21.nix @@ -1,14 +1,50 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio -, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib -, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst -, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk21-bootstrap -, ensureNewerSourcesForZipFilesHook -, setJavaClassPath -# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages -# which should be fixable, this is a no-rebuild workaround for GHC. -, headless ? stdenv.targetPlatform.isGhcjs -, enableJavaFX ? false, openjfx -, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk21-bootstrap, + ensureNewerSourcesForZipFilesHook, + setJavaClassPath, + # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages + # which should be fixable, this is a no-rebuild workaround for GHC. + headless ? stdenv.targetPlatform.isGhcjs, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -32,14 +68,48 @@ let hash = "sha256-fA8nRWBuTL87S8mwapmNfCPPQoI2aKHjbHJ6PDN3khs="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib - libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 gnome_vfs GConf glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip + ensureNewerSourcesForZipFilesHook ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk21.patch @@ -64,9 +134,7 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -76,22 +144,27 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = ["build" "host"]; + configurePlatforms = [ + "build" + "host" + ]; - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc" ++ lib.optional headless "--enable-headless-only" ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; @@ -99,11 +172,21 @@ let env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -185,4 +268,5 @@ let inherit gtk3; }; }; -in openjdk +in +openjdk diff --git a/pkgs/by-name/ja/java/openjdk/22.nix b/pkgs/by-name/ja/java/openjdk/22.nix index bef62b6..13d1fb2 100644 --- a/pkgs/by-name/ja/java/openjdk/22.nix +++ b/pkgs/by-name/ja/java/openjdk/22.nix @@ -1,49 +1,50 @@ -{ stdenv -, lib -, fetchurl -, fetchpatch -, fetchFromGitHub -, bash -, pkg-config -, autoconf -, cpio -, file -, which -, unzip -, zip -, perl -, cups -, freetype -, alsa-lib -, libjpeg -, giflib -, libpng -, zlib -, lcms2 -, libX11 -, libICE -, libXrender -, libXext -, libXt -, libXtst -, libXi -, libXinerama -, libXcursor -, libXrandr -, fontconfig -, openjdk22-bootstrap -, ensureNewerSourcesForZipFilesHook -, setJavaClassPath +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchFromGitHub, + bash, + pkg-config, + autoconf, + cpio, + file, + which, + unzip, + zip, + perl, + cups, + freetype, + alsa-lib, + libjpeg, + giflib, + libpng, + zlib, + lcms2, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + fontconfig, + openjdk22-bootstrap, + ensureNewerSourcesForZipFilesHook, + setJavaClassPath, # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages # which should be fixable, this is a no-rebuild workaround for GHC. -, headless ? stdenv.targetPlatform.isGhcjs -, enableJavaFX ? false -, openjfx -, enableGnome2 ? true -, gtk3 -, gnome_vfs -, glib -, GConf + headless ? stdenv.targetPlatform.isGhcjs, + enableJavaFX ? false, + openjfx, + enableGnome2 ? true, + gtk3, + gnome_vfs, + glib, + GConf, }: let @@ -67,41 +68,48 @@ let hash = "sha256-itjvIedPwJl/l3a2gIVpNMs1zkbrjioVqbCj1Z1nCJE="; }; - nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ]; - buildInputs = [ - cpio - file - which - zip - perl - zlib - cups - freetype - alsa-lib - libjpeg - giflib - libpng - zlib - lcms2 - libX11 - libICE - libXrender - libXext - libXtst - libXt - libXtst - libXi - libXinerama - libXcursor - libXrandr - fontconfig - openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk3 - gnome_vfs - GConf - glib + nativeBuildInputs = [ + pkg-config + autoconf + unzip + ensureNewerSourcesForZipFilesHook ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libpng + zlib + lcms2 + libX11 + libICE + libXrender + libXext + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk3 + gnome_vfs + GConf + glib + ]; patches = [ ./fix-java-home-jdk21.patch @@ -126,9 +134,7 @@ let url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch"; hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg="; }) - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk13.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk13.patch ]; postPatch = '' chmod +x configure @@ -138,43 +144,49 @@ let # JDK's build system attempts to specifically detect # and special-case WSL, and we don't want it to do that, # so pass the correct platform names explicitly - configurePlatforms = [ "build" "host" ]; - + configurePlatforms = [ + "build" + "host" + ]; # https://openjdk.org/groups/build/doc/building.html - configureFlags = [ - "--with-boot-jdk=${openjdk-bootstrap.home}" - "--with-version-build=${version.build}" - "--with-version-opt=nixos" - "--with-version-pre=" - "--enable-unlimited-crypto" - "--with-native-debug-symbols=internal" - "--with-libjpeg=system" - "--with-giflib=system" - "--with-libpng=system" - "--with-zlib=system" - "--with-lcms=system" - "--with-stdc++lib=dynamic" - ] - ++ lib.optional headless "--enable-headless-only" - ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; + configureFlags = + [ + "--with-boot-jdk=${openjdk-bootstrap.home}" + "--with-version-build=${version.build}" + "--with-version-opt=nixos" + "--with-version-pre=" + "--enable-unlimited-crypto" + "--with-native-debug-symbols=internal" + "--with-libjpeg=system" + "--with-giflib=system" + "--with-libpng=system" + "--with-zlib=system" + "--with-lcms=system" + "--with-stdc++lib=dynamic" + ] + ++ lib.optional headless "--enable-headless-only" + ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}"; separateDebugInfo = true; env.NIX_CFLAGS_COMPILE = "-Wno-error"; - NIX_LDFLAGS = toString (lib.optionals (!headless) [ - "-lfontconfig" - "-lcups" - "-lXinerama" - "-lXrandr" - "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-3" - "-lgio-2.0" - "-lgnomevfs-2" - "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-3" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' diff --git a/pkgs/by-name/ja/java/openjdk/8.nix b/pkgs/by-name/ja/java/openjdk/8.nix index aebfcee..044778a 100644 --- a/pkgs/by-name/ja/java/openjdk/8.nix +++ b/pkgs/by-name/ja/java/openjdk/8.nix @@ -1,24 +1,58 @@ -{ stdenv, lib, fetchFromGitHub, pkg-config, lndir, bash, cpio, file, which, unzip, zip -, cups, freetype, alsa-lib, cacert, perl, liberation_ttf, fontconfig, zlib -, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr -, libjpeg, giflib -, openjdk8-bootstrap -, setJavaClassPath -, headless ? false -, enableGnome2 ? true, gtk2, gnome_vfs, glib, GConf +{ + stdenv, + lib, + fetchFromGitHub, + pkg-config, + lndir, + bash, + cpio, + file, + which, + unzip, + zip, + cups, + freetype, + alsa-lib, + cacert, + perl, + liberation_ttf, + fontconfig, + zlib, + libX11, + libICE, + libXrender, + libXext, + libXt, + libXtst, + libXi, + libXinerama, + libXcursor, + libXrandr, + libjpeg, + giflib, + openjdk8-bootstrap, + setJavaClassPath, + headless ? false, + enableGnome2 ? true, + gtk2, + gnome_vfs, + glib, + GConf, }: let /** - * The JRE libraries are in directories that depend on the CPU. - */ - architecture = { - i686-linux = "i386"; - x86_64-linux = "amd64"; - aarch64-linux = "aarch64"; - powerpc64le-linux = "ppc64le"; - }.${stdenv.system} or (throw "Unsupported platform ${stdenv.system}"); + The JRE libraries are in directories that depend on the CPU. + */ + architecture = + { + i686-linux = "i386"; + x86_64-linux = "amd64"; + aarch64-linux = "aarch64"; + powerpc64le-linux = "ppc64le"; + } + .${stdenv.system} or (throw "Unsupported platform ${stdenv.system}"); update = "362"; build = "ga"; @@ -36,25 +70,56 @@ let rev = "jdk${version}"; sha256 = "sha256-C5dQwfIIpIrLeO3JWERyFCQHUSgG8gARuc3qXAeLkJ4="; }; - outputs = [ "out" "jre" ]; - - nativeBuildInputs = [ pkg-config lndir unzip ]; - buildInputs = [ - cpio file which zip perl zlib cups freetype alsa-lib - libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst - libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap - ] ++ lib.optionals (!headless && enableGnome2) [ - gtk2 gnome_vfs GConf glib + outputs = [ + "out" + "jre" ]; + nativeBuildInputs = [ + pkg-config + lndir + unzip + ]; + buildInputs = + [ + cpio + file + which + zip + perl + zlib + cups + freetype + alsa-lib + libjpeg + giflib + libX11 + libICE + libXext + libXrender + libXtst + libXt + libXtst + libXi + libXinerama + libXcursor + libXrandr + fontconfig + openjdk-bootstrap + ] + ++ lib.optionals (!headless && enableGnome2) [ + gtk2 + gnome_vfs + GConf + glib + ]; + patches = [ ./fix-java-home-jdk8.patch ./read-truststore-from-env-jdk8.patch ./currency-date-range-jdk8.patch ./fix-library-path-jdk8.patch - ] ++ lib.optionals (!headless && enableGnome2) [ - ./swing-use-gtk-jdk8.patch - ]; + ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk8.patch ]; # Hotspot cares about the host(!) version otherwise DISABLE_HOTSPOT_OS_VERSION_CHECK = "ok"; @@ -81,24 +146,37 @@ let separateDebugInfo = true; - env.NIX_CFLAGS_COMPILE = toString ([ - # glibc 2.24 deprecated readdir_r so we need this - # See https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg49006.html - "-Wno-error=deprecated-declarations" - ] ++ lib.optionals stdenv.cc.isGNU [ - # https://bugzilla.redhat.com/show_bug.cgi?id=1306558 - # https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716 - "-fno-lifetime-dse" - "-fno-delete-null-pointer-checks" - "-std=gnu++98" - "-Wno-error" - ]); + env.NIX_CFLAGS_COMPILE = toString ( + [ + # glibc 2.24 deprecated readdir_r so we need this + # See https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg49006.html + "-Wno-error=deprecated-declarations" + ] + ++ lib.optionals stdenv.cc.isGNU [ + # https://bugzilla.redhat.com/show_bug.cgi?id=1306558 + # https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716 + "-fno-lifetime-dse" + "-fno-delete-null-pointer-checks" + "-std=gnu++98" + "-Wno-error" + ] + ); - NIX_LDFLAGS= toString (lib.optionals (!headless) [ - "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic" - ] ++ lib.optionals (!headless && enableGnome2) [ - "-lgtk-x11-2.0" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2" - ]); + NIX_LDFLAGS = toString ( + lib.optionals (!headless) [ + "-lfontconfig" + "-lcups" + "-lXinerama" + "-lXrandr" + "-lmagic" + ] + ++ lib.optionals (!headless && enableGnome2) [ + "-lgtk-x11-2.0" + "-lgio-2.0" + "-lgnomevfs-2" + "-lgconf-2" + ] + ); # -j flag is explicitly rejected by the build system: # Error: 'make -jN' is not supported, use 'make JOBS=N' @@ -213,7 +291,11 @@ let license = licenses.gpl2; description = "The open-source Java Development Kit"; maintainers = with maintainers; [ edwtjo ]; - platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ]; + platforms = [ + "i686-linux" + "x86_64-linux" + "aarch64-linux" + ]; mainProgram = "java"; }; @@ -223,4 +305,5 @@ let inherit gtk2; }; }; -in openjdk8 +in +openjdk8 diff --git a/pkgs/by-name/ja/java/openjdk/bootstrap.nix b/pkgs/by-name/ja/java/openjdk/bootstrap.nix index e58888c..36bd229 100644 --- a/pkgs/by-name/ja/java/openjdk/bootstrap.nix +++ b/pkgs/by-name/ja/java/openjdk/bootstrap.nix @@ -1,31 +1,46 @@ -{ stdenv -, runCommand, fetchurl, zlib +{ + stdenv, + runCommand, + fetchurl, + zlib, -, version + version, }: assert stdenv.hostPlatform.libc == "glibc"; let - fetchboot = version: arch: sha256: fetchurl { - name = "openjdk${version}-bootstrap-${arch}-linux.tar.xz"; - url = "http://tarballs.nixos.org/openjdk/2018-03-31/${version}/${arch}-linux.tar.xz"; - inherit sha256; - }; + fetchboot = + version: arch: sha256: + fetchurl { + name = "openjdk${version}-bootstrap-${arch}-linux.tar.xz"; + url = "http://tarballs.nixos.org/openjdk/2018-03-31/${version}/${arch}-linux.tar.xz"; + inherit sha256; + }; - src = if stdenv.hostPlatform.system == "x86_64-linux" then - (if version == "10" then fetchboot "10" "x86_64" "08085fsxc1qhqiv3yi38w8lrg3vm7s0m2yvnwr1c92v019806yq2" - else if version == "8" then fetchboot "8" "x86_64" "18zqx6jhm3lizn9hh6ryyqc9dz3i96pwaz8f6nxfllk70qi5gvks" - else throw "No bootstrap jdk for version ${version}") - else if stdenv.hostPlatform.system == "i686-linux" then - (if version == "10" then fetchboot "10" "i686" "1blb9gyzp8gfyggxvggqgpcgfcyi00ndnnskipwgdm031qva94p7" - else if version == "8" then fetchboot "8" "i686" "1yx04xh8bqz7amg12d13rw5vwa008rav59mxjw1b9s6ynkvfgqq9" - else throw "No bootstrap for version") - else throw "No bootstrap jdk for system ${stdenv.hostPlatform.system}"; + src = + if stdenv.hostPlatform.system == "x86_64-linux" then + ( + if version == "10" then + fetchboot "10" "x86_64" "08085fsxc1qhqiv3yi38w8lrg3vm7s0m2yvnwr1c92v019806yq2" + else if version == "8" then + fetchboot "8" "x86_64" "18zqx6jhm3lizn9hh6ryyqc9dz3i96pwaz8f6nxfllk70qi5gvks" + else + throw "No bootstrap jdk for version ${version}" + ) + else if stdenv.hostPlatform.system == "i686-linux" then + ( + if version == "10" then + fetchboot "10" "i686" "1blb9gyzp8gfyggxvggqgpcgfcyi00ndnnskipwgdm031qva94p7" + else if version == "8" then + fetchboot "8" "i686" "1yx04xh8bqz7amg12d13rw5vwa008rav59mxjw1b9s6ynkvfgqq9" + else + throw "No bootstrap for version" + ) + else + throw "No bootstrap jdk for system ${stdenv.hostPlatform.system}"; - bootstrap = runCommand "openjdk-bootstrap" { - passthru.home = "${bootstrap}/lib/openjdk"; - } '' + bootstrap = runCommand "openjdk-bootstrap" { passthru.home = "${bootstrap}/lib/openjdk"; } '' tar xvf ${src} mv openjdk-bootstrap $out @@ -37,4 +52,5 @@ let patchelf --set-rpath "${stdenv.cc.libc}/lib:${stdenv.cc.cc.lib}/lib:${zlib}/lib:$LIBDIRS" "$elf" || true done ''; -in bootstrap +in +bootstrap diff --git a/pkgs/by-name/ja/java/openjdk/jre.nix b/pkgs/by-name/ja/java/openjdk/jre.nix index 02f6da9..40d5673 100644 --- a/pkgs/by-name/ja/java/openjdk/jre.nix +++ b/pkgs/by-name/ja/java/openjdk/jre.nix @@ -1,8 +1,9 @@ -{ stdenv -, jdk -, lib -, callPackage -, modules ? [ "java.base" ] +{ + stdenv, + jdk, + lib, + callPackage, + modules ? [ "java.base" ], }: let @@ -31,9 +32,10 @@ let passthru = { home = "${jre}"; tests = [ - (callPackage ./tests/test_jre_minimal.nix {}) - (callPackage ./tests/test_jre_minimal_with_logging.nix {}) + (callPackage ./tests/test_jre_minimal.nix { }) + (callPackage ./tests/test_jre_minimal_with_logging.nix { }) ]; }; }; -in jre +in +jre diff --git a/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix b/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix index aac5441..e87efa7 100644 --- a/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix +++ b/pkgs/by-name/ja/java/openjdk/make-bootstrap.nix @@ -1,6 +1,10 @@ -{ runCommand, openjdk, nukeReferences }: +{ + runCommand, + openjdk, + nukeReferences, +}: -runCommand "${openjdk.name}-bootstrap.tar.xz" {} '' +runCommand "${openjdk.name}-bootstrap.tar.xz" { } '' mkdir -pv openjdk-bootstrap/lib # Do a deep copy of the openjdk diff --git a/pkgs/by-name/ja/java/openjdk/meta.nix b/pkgs/by-name/ja/java/openjdk/meta.nix index 74383dd..3b7a427 100644 --- a/pkgs/by-name/ja/java/openjdk/meta.nix +++ b/pkgs/by-name/ja/java/openjdk/meta.nix @@ -3,9 +3,21 @@ lib: version: with lib; { license = licenses.gpl2Only; description = "The open-source Java Development Kit"; maintainers = with maintainers; [ edwtjo ]; - platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" "powerpc64le-linux" ]; - mainProgram = "java"; - knownVulnerabilities = optionals (builtins.elem (versions.major version) [ "12" "13" "14" "15" "16" "18" ]) [ - "This OpenJDK version has reached its end of life." + platforms = [ + "i686-linux" + "x86_64-linux" + "aarch64-linux" + "armv7l-linux" + "armv6l-linux" + "powerpc64le-linux" ]; + mainProgram = "java"; + knownVulnerabilities = optionals (builtins.elem (versions.major version) [ + "12" + "13" + "14" + "15" + "16" + "18" + ]) [ "This OpenJDK version has reached its end of life." ]; } diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/11.nix b/pkgs/by-name/ja/java/openjdk/openjfx/11.nix index 424c41c..af2df91 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/11.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/11.nix @@ -1,8 +1,27 @@ -{ stdenv, lib, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake -, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand -, openjdk11-bootstrap -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + writeText, + gradle_7, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4-headless, + python3, + ruby, + fetchurl, + runCommand, + openjdk11-bootstrap, + withMedia ? true, + withWebKit ? false, }: let @@ -10,9 +29,7 @@ let update = ".0.18"; build = "1"; repover = "${major}${update}+${build}"; - gradle_ = (gradle_7.override { - java = openjdk11-bootstrap; - }); + gradle_ = (gradle_7.override { java = openjdk11-bootstrap; }); icuVersionWithSep = s: "71${s}1"; icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; @@ -20,52 +37,76 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}-${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}-${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx${major}u"; - rev = repover; - sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx${major}u"; + rev = repover; + sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko="; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4-headless + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - postPatch = '' - substituteInPlace buildSrc/linux.gradle \ - --replace ', "-Werror=implicit-function-declaration"' "" + postPatch = '' + substituteInPlace buildSrc/linux.gradle \ + --replace ', "-Werror=implicit-function-declaration"' "" - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ + modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h + ''; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk11-bootstrap.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk11-bootstrap.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -86,7 +127,8 @@ let outputHash = "sha256-syceJMUEknBDCHK8eGs6rUU3IQn+HnQfURfCrDxYPa9="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/15.nix b/pkgs/by-name/ja/java/openjdk/openjfx/15.nix index 1fb48f4..ca712fd 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/15.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/15.nix @@ -1,8 +1,25 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_6 -, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4-headless, python3, ruby -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + writeText, + openjdk11_headless, + gradle_6, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4-headless, + python3, + ruby, + withMedia ? true, + withWebKit ? false, }: let @@ -10,52 +27,74 @@ let update = ".0.1"; build = "+1"; repover = "${major}${update}${build}"; - gradle_ = (gradle_6.override { - java = openjdk11_headless; - }); + gradle_ = (gradle_6.override { java = openjdk11_headless; }); - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4-headless + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk11_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk11_headless.home} + '' + + args.gradleProperties or "" + ); - env.NIX_CFLAGS_COMPILE = toString [ - #avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. - "-DGLIB_DISABLE_DEPRECATION_WARNINGS" + env.NIX_CFLAGS_COMPILE = toString [ + #avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. + "-DGLIB_DISABLE_DEPRECATION_WARNINGS" - # gstreamer workaround for -fno-common toolchains: - # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of - # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here - "-fcommon" - ]; + # gstreamer workaround for -fno-common toolchains: + # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of + # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here + "-fcommon" + ]; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -76,7 +115,8 @@ let outputHash = "sha256-fGLTMM9s/Vn7eMzn6OQR3tL0cGbAYc7c4J4/aW3JvkI="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' @@ -121,9 +161,7 @@ in makePackage { license = licenses.gpl2; description = "The next-generation Java client toolkit"; maintainers = with maintainers; [ abbradar ]; - knownVulnerabilities = [ - "This OpenJFX version has reached its end of life." - ]; + knownVulnerabilities = [ "This OpenJFX version has reached its end of life." ]; platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/17.nix b/pkgs/by-name/ja/java/openjdk/openjfx/17.nix index c5d6c6a..4009bcb 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/17.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/17.nix @@ -1,8 +1,27 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 -, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + writeText, + openjdk17_headless, + gradle_7, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4-headless, + python3, + ruby, + fetchurl, + runCommand, + withMedia ? true, + withWebKit ? false, }: let @@ -10,9 +29,7 @@ let update = ".0.6"; build = "+3"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - java = openjdk17_headless; - }); + gradle_ = (gradle_7.override { java = openjdk17_headless; }); icuVersionWithSep = s: "71${s}1"; icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; @@ -20,49 +37,73 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx${major}u"; - rev = repover; - sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx${major}u"; + rev = repover; + sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw="; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4-headless + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ + modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h + ''; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk17_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk17_headless.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -83,7 +124,8 @@ let outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/19.nix b/pkgs/by-name/ja/java/openjdk/openjfx/19.nix index 6f173db..2b3d7cc 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/19.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/19.nix @@ -1,8 +1,29 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless -, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + writeText, + openjdk17_headless, + openjdk19_headless, + gradle_7, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4, + python3, + ruby, + fetchurl, + runCommand, + withMedia ? true, + withWebKit ? false, }: let @@ -10,10 +31,12 @@ let update = ".0.2.1"; build = "+1"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + gradle_ = ( + gradle_7.override { + # note: gradle does not yet support running on 19 + java = openjdk17_headless; + } + ); icuVersionWithSep = s: "68${s}2"; icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "."}-data-bin-l.zip"; @@ -21,62 +44,86 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs="; + }; - patches = [ - # 8295962: Reference to State in Task.java is ambiguous when building with JDK 19 - (fetchpatch { - url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch"; - hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw="; - }) - # ditto - (fetchpatch { - url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch"; - hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU="; - }) - ]; + patches = [ + # 8295962: Reference to State in Task.java is ambiguous when building with JDK 19 + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch"; + hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw="; + }) + # ditto + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch"; + hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU="; + }) + ]; - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ + modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h + ''; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4 + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk19_headless.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -100,7 +147,8 @@ let outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' @@ -131,7 +179,10 @@ in makePackage { done ''; - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; + disallowedReferences = [ + openjdk17_headless + openjdk19_headless + ]; passthru.deps = deps; diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/20.nix b/pkgs/by-name/ja/java/openjdk/openjfx/20.nix index 794590d..bedf843 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/20.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/20.nix @@ -1,8 +1,29 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless -, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + writeText, + openjdk17_headless, + openjdk19_headless, + gradle_7, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4, + python3, + ruby, + fetchurl, + runCommand, + withMedia ? true, + withWebKit ? false, }: let @@ -10,10 +31,12 @@ let update = ""; build = "+19"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + gradle_ = ( + gradle_7.override { + # note: gradle does not yet support running on 19 + java = openjdk17_headless; + } + ); icuVersionWithSep = s: "71${s}1"; icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; @@ -21,49 +44,73 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU="; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4 + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ + modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h + ''; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk19_headless.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -87,7 +134,8 @@ let outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' @@ -118,7 +166,10 @@ in makePackage { done ''; - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; + disallowedReferences = [ + openjdk17_headless + openjdk19_headless + ]; passthru.deps = deps; diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/21.nix b/pkgs/by-name/ja/java/openjdk/openjfx/21.nix index f49dbe3..c141dca 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/21.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/21.nix @@ -1,8 +1,29 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless -, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + writeText, + openjdk17_headless, + openjdk19_headless, + gradle_7, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4, + python3, + ruby, + fetchurl, + runCommand, + withMedia ? true, + withWebKit ? false, }: let @@ -10,10 +31,12 @@ let update = ""; build = "-ga"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + gradle_ = ( + gradle_7.override { + # note: gradle does not yet support running on 19 + java = openjdk17_headless; + } + ); icuVersionWithSep = s: "73${s}1"; icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; @@ -21,49 +44,73 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - hash = "sha256-deNAGfnA6gwcAa64l0AWdkX+vJd3ZOfIgAifSl+/m+s="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-deNAGfnA6gwcAa64l0AWdkX+vJd3ZOfIgAifSl+/m+s="; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4 + ]; + nativeBuildInputs = [ + gradle_ + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ + modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h + ''; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk19_headless.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -87,7 +134,8 @@ let outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; }; -in makePackage { +in +makePackage { pname = "openjfx-modular-sdk"; gradleProperties = '' @@ -118,7 +166,10 @@ in makePackage { done ''; - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; + disallowedReferences = [ + openjdk17_headless + openjdk19_headless + ]; passthru.deps = deps; diff --git a/pkgs/by-name/ja/java/openjdk/openjfx/22.nix b/pkgs/by-name/ja/java/openjdk/openjfx/22.nix index d585dbd..fc05cc2 100644 --- a/pkgs/by-name/ja/java/openjdk/openjfx/22.nix +++ b/pkgs/by-name/ja/java/openjdk/openjfx/22.nix @@ -1,27 +1,28 @@ -{ stdenv -, lib -, fetchFromGitHub -, fetchpatch -, fetchurl -, runCommand -, writeText -, openjdk21_headless -, gradle -, pkg-config -, perl -, cmake -, gperf -, gtk2 -, gtk3 -, libXtst -, libXxf86vm -, glib -, alsa-lib -, ffmpeg_4 -, python3 -, ruby -, withMedia ? true -, withWebKit ? false +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + fetchurl, + runCommand, + writeText, + openjdk21_headless, + gradle, + pkg-config, + perl, + cmake, + gperf, + gtk2, + gtk3, + libXtst, + libXxf86vm, + glib, + alsa-lib, + ffmpeg_4, + python3, + ruby, + withMedia ? true, + withWebKit ? false, }: let @@ -36,42 +37,66 @@ let url = "https://github.com/unicode-org/icu/releases/${icuPath}"; hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; }; - icuFakeRepository = runCommand "icu-data-repository" {} '' + icuFakeRepository = runCommand "icu-data-repository" { } '' install -Dm644 ${icuData} $out/${icuPath} ''; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; + makePackage = + args: + stdenv.mkDerivation ( + { + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ="; - }; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ="; + }; - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; + buildInputs = [ + gtk2 + gtk3 + libXtst + libXxf86vm + glib + alsa-lib + ffmpeg_4 + ]; + nativeBuildInputs = [ + gradle + perl + pkg-config + cmake + gperf + python3 + ruby + ]; - dontUseCmakeConfigure = true; + dontUseCmakeConfigure = true; - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk21_headless.home} - '' + args.gradleProperties or ""); + config = writeText "gradle.properties" ( + '' + CONF = Release + JDK_HOME = ${openjdk21_headless.home} + '' + + args.gradleProperties or "" + ); - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk + export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES + export GRADLE_USER_HOME=$(mktemp -d) + ln -s $config gradle.properties + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" + gradle --no-daemon --console=plain $gradleFlags sdk - runHook postBuild - ''; - } // args); + runHook postBuild + ''; + } + // args + ); # Fake build to pre-download deps into fixed-output derivation. # We run nearly full build because I see no other way to download everything that's needed. @@ -124,7 +149,10 @@ makePackage { done ''; - disallowedReferences = [ openjdk21_headless openjdk21_headless ]; + disallowedReferences = [ + openjdk21_headless + openjdk21_headless + ]; passthru.deps = deps; diff --git a/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix b/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix index 71f3a55..3d1fc51 100644 --- a/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix +++ b/pkgs/by-name/ja/java/openjdk/tests/hello-logging.nix @@ -1,9 +1,10 @@ -{ jdk -, jre -, pkgs +{ + jdk, + jre, + pkgs, }: -/* 'Hello world' Java application derivation for use in tests */ +# 'Hello world' Java application derivation for use in tests let source = pkgs.writeTextDir "src/Hello.java" '' import java.util.logging.Logger; @@ -18,30 +19,30 @@ let } ''; in - pkgs.stdenv.mkDerivation { - pname = "hello"; - version = "1.0.0"; +pkgs.stdenv.mkDerivation { + pname = "hello"; + version = "1.0.0"; - src = source; + src = source; - buildPhase = '' - runHook preBuildPhase - ${jdk}/bin/javac src/Hello.java - runHook postBuildPhase - ''; - installPhase = '' - runHook preInstallPhase + buildPhase = '' + runHook preBuildPhase + ${jdk}/bin/javac src/Hello.java + runHook postBuildPhase + ''; + installPhase = '' + runHook preInstallPhase - mkdir -p $out/lib - cp src/Hello.class $out/lib + mkdir -p $out/lib + cp src/Hello.class $out/lib - mkdir -p $out/bin - cat >$out/bin/hello <$out/bin/hello <$out/bin/hello <$out/bin/hello </dev/stdout | grep "Hello, world!" - touch $out - '' +runCommand "test" { } '' + ${hello-logging}/bin/hello &>/dev/stdout | grep "Hello, world!" + touch $out +'' diff --git a/pkgs/by-name/ja/java/packages.nix b/pkgs/by-name/ja/java/packages.nix index dac9ec6..8bd9468 100644 --- a/pkgs/by-name/ja/java/packages.nix +++ b/pkgs/by-name/ja/java/packages.nix @@ -1,11 +1,18 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { javaPackages = recurseIntoAttrs (callPackage ./java-packages.nix { }); - inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21 openjfx22; + inherit (javaPackages) + openjfx11 + openjfx15 + openjfx17 + openjfx19 + openjfx20 + openjfx21 + openjfx22 + ; openjfx = openjfx17; openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap; @@ -50,7 +57,7 @@ with pkgs; jdk22 = openjdk22; jdk22_headless = openjdk22_headless; - /* default JDK */ + # default JDK jdk = jdk21; jdk_headless = jdk21_headless; @@ -64,9 +71,7 @@ with pkgs; jre = jdk; jre_headless = jdk_headless; - jre17_minimal = callPackage ./openjdk/jre.nix { - jdk = jdk17; - }; + jre17_minimal = callPackage ./openjdk/jre.nix { jdk = jdk17; }; jre_minimal = callPackage ./openjdk/jre.nix { }; openjdk = jdk; diff --git a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin-base.nix b/pkgs/by-name/ja/java/semeru-bin/jdk-darwin-base.nix index ccbc7d8..323918d 100644 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin-base.nix +++ b/pkgs/by-name/ja/java/semeru-bin/jdk-darwin-base.nix @@ -1,5 +1,8 @@ args: -import ../temurin-bin/jdk-darwin-base.nix ({ - name-prefix = "semeru"; - brand-name = "IBM Semeru Runtime"; -} // args) +import ../temurin-bin/jdk-darwin-base.nix ( + { + name-prefix = "semeru"; + brand-name = "IBM Semeru Runtime"; + } + // args +) diff --git a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin.nix b/pkgs/by-name/ja/java/semeru-bin/jdk-darwin.nix index f58fec3..9f9511f 100644 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-darwin.nix +++ b/pkgs/by-name/ja/java/semeru-bin/jdk-darwin.nix @@ -2,7 +2,7 @@ let sources = (lib.importJSON ./sources.json).openj9.mac; - common = opts: callPackage (import ./jdk-darwin-base.nix opts) {}; + common = opts: callPackage (import ./jdk-darwin-base.nix opts) { }; in { jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; diff --git a/pkgs/by-name/ja/java/semeru-bin/jdk-linux-base.nix b/pkgs/by-name/ja/java/semeru-bin/jdk-linux-base.nix index 41879ea..2eff157 100644 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-linux-base.nix +++ b/pkgs/by-name/ja/java/semeru-bin/jdk-linux-base.nix @@ -1,5 +1,8 @@ args: -import ../temurin-bin/jdk-linux-base.nix ({ - name-prefix = "semeru"; - brand-name = "IBM Semeru Runtime"; -} // args) +import ../temurin-bin/jdk-linux-base.nix ( + { + name-prefix = "semeru"; + brand-name = "IBM Semeru Runtime"; + } + // args +) diff --git a/pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix b/pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix index c80dd99..6cbc647 100644 --- a/pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix +++ b/pkgs/by-name/ja/java/semeru-bin/jdk-linux.nix @@ -2,7 +2,7 @@ let sources = (lib.importJSON ./sources.json).openj9.linux; - common = opts: callPackage (import ./jdk-linux-base.nix opts) {}; + common = opts: callPackage (import ./jdk-linux-base.nix opts) { }; in { jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; diff --git a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin-base.nix b/pkgs/by-name/ja/java/temurin-bin/jdk-darwin-base.nix index 8f6831a..df72e78 100644 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin-base.nix +++ b/pkgs/by-name/ja/java/temurin-bin/jdk-darwin-base.nix @@ -1,30 +1,37 @@ -{ name-prefix ? "temurin" -, brand-name ? "Eclipse Temurin" -, sourcePerArch -, knownVulnerabilities ? [] +{ + name-prefix ? "temurin", + brand-name ? "Eclipse Temurin", + sourcePerArch, + knownVulnerabilities ? [ ], }: -{ swingSupport ? true # not used for now -, lib, stdenv -, fetchurl -, setJavaClassPath +{ + swingSupport ? true, # not used for now + lib, + stdenv, + fetchurl, + setJavaClassPath, }: let cpuName = stdenv.hostPlatform.parsed.cpu.name; validCpuTypes = builtins.attrNames lib.systems.parse.cpuTypes; - providedCpuTypes = builtins.filter - (arch: builtins.elem arch validCpuTypes) - (builtins.attrNames sourcePerArch); + providedCpuTypes = builtins.filter (arch: builtins.elem arch validCpuTypes) ( + builtins.attrNames sourcePerArch + ); result = stdenv.mkDerivation { - pname = if sourcePerArch.packageType == "jdk" - then "${name-prefix}-bin" - else "${name-prefix}-${sourcePerArch.packageType}-bin"; - version = - sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + pname = + if sourcePerArch.packageType == "jdk" then + "${name-prefix}-bin" + else + "${name-prefix}-${sourcePerArch.packageType}-bin"; + version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); src = fetchurl { - inherit (sourcePerArch.${cpuName} or (throw "unsupported system ${stdenv.hostPlatform.system}")) url sha256; + inherit (sourcePerArch.${cpuName} or (throw "unsupported system ${stdenv.hostPlatform.system}")) + url + sha256 + ; }; # See: https://github.com/NixOS/patchelf/issues/10 @@ -64,12 +71,16 @@ let meta = with lib; { license = licenses.gpl2Classpath; - sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; + sourceProvenance = with sourceTypes; [ + binaryNativeCode + binaryBytecode + ]; description = "${brand-name}, prebuilt OpenJDK binary"; - platforms = builtins.map (arch: arch + "-darwin") providedCpuTypes; # some inherit jre.meta.platforms + platforms = builtins.map (arch: arch + "-darwin") providedCpuTypes; # some inherit jre.meta.platforms maintainers = with maintainers; [ taku0 ]; inherit knownVulnerabilities; mainProgram = "java"; }; }; -in result +in +result diff --git a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin.nix b/pkgs/by-name/ja/java/temurin-bin/jdk-darwin.nix index 5122b6e..0f23c17 100644 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-darwin.nix +++ b/pkgs/by-name/ja/java/temurin-bin/jdk-darwin.nix @@ -2,7 +2,7 @@ let sources = (lib.importJSON ./sources.json).hotspot.mac; - common = opts: callPackage (import ./jdk-darwin-base.nix opts) {}; + common = opts: callPackage (import ./jdk-darwin-base.nix opts) { }; in { jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; diff --git a/pkgs/by-name/ja/java/temurin-bin/jdk-linux-base.nix b/pkgs/by-name/ja/java/temurin-bin/jdk-linux-base.nix index ba56518..6b94402 100644 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-linux-base.nix +++ b/pkgs/by-name/ja/java/temurin-bin/jdk-linux-base.nix @@ -1,56 +1,59 @@ -{ name-prefix ? "temurin" -, brand-name ? "Eclipse Temurin" -, sourcePerArch -, knownVulnerabilities ? [] +{ + name-prefix ? "temurin", + brand-name ? "Eclipse Temurin", + sourcePerArch, + knownVulnerabilities ? [ ], }: -{ stdenv -, lib -, fetchurl -, autoPatchelfHook -, makeWrapper -, setJavaClassPath -# minimum dependencies -, alsa-lib -, fontconfig -, freetype -, libffi -, xorg -, zlib -# runtime dependencies -, cups -# runtime dependencies for GTK+ Look and Feel -# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages -# which should be fixable, this is a no-rebuild workaround for GHC. -, gtkSupport ? !stdenv.targetPlatform.isGhcjs -, cairo -, glib -, gtk3 +{ + stdenv, + lib, + fetchurl, + autoPatchelfHook, + makeWrapper, + setJavaClassPath, + # minimum dependencies + alsa-lib, + fontconfig, + freetype, + libffi, + xorg, + zlib, + # runtime dependencies + cups, + # runtime dependencies for GTK+ Look and Feel + # TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages + # which should be fixable, this is a no-rebuild workaround for GHC. + gtkSupport ? !stdenv.targetPlatform.isGhcjs, + cairo, + glib, + gtk3, }: let cpuName = stdenv.hostPlatform.parsed.cpu.name; - runtimeDependencies = [ - cups - ] ++ lib.optionals gtkSupport [ - cairo glib gtk3 - ]; + runtimeDependencies = + [ cups ] + ++ lib.optionals gtkSupport [ + cairo + glib + gtk3 + ]; runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies; validCpuTypes = builtins.attrNames lib.systems.parse.cpuTypes; - providedCpuTypes = builtins.filter - (arch: builtins.elem arch validCpuTypes) - (builtins.attrNames sourcePerArch); + providedCpuTypes = builtins.filter (arch: builtins.elem arch validCpuTypes) ( + builtins.attrNames sourcePerArch + ); result = stdenv.mkDerivation { - pname = if sourcePerArch.packageType == "jdk" - then "${name-prefix}-bin" - else "${name-prefix}-${sourcePerArch.packageType}-bin"; + pname = + if sourcePerArch.packageType == "jdk" then + "${name-prefix}-bin" + else + "${name-prefix}-${sourcePerArch.packageType}-bin"; - version = - sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); + version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}"); - src = fetchurl { - inherit (sourcePerArch.${cpuName}) url sha256; - }; + src = fetchurl { inherit (sourcePerArch.${cpuName}) url sha256; }; buildInputs = [ alsa-lib # libasound.so wanted by lib/libjsound.so @@ -65,7 +68,10 @@ let zlib ] ++ lib.optional stdenv.isAarch32 libffi; - nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; # See: https://github.com/NixOS/patchelf/issues/10 dontStrip = 1; @@ -121,12 +127,16 @@ let meta = with lib; { license = licenses.gpl2Classpath; - sourceProvenance = with sourceTypes; [ binaryNativeCode binaryBytecode ]; + sourceProvenance = with sourceTypes; [ + binaryNativeCode + binaryBytecode + ]; description = "${brand-name}, prebuilt OpenJDK binary"; - platforms = builtins.map (arch: arch + "-linux") providedCpuTypes; # some inherit jre.meta.platforms + platforms = builtins.map (arch: arch + "-linux") providedCpuTypes; # some inherit jre.meta.platforms maintainers = with maintainers; [ taku0 ]; inherit knownVulnerabilities; mainProgram = "java"; }; }; -in result +in +result diff --git a/pkgs/by-name/ja/java/temurin-bin/jdk-linux.nix b/pkgs/by-name/ja/java/temurin-bin/jdk-linux.nix index 87a00a3..bd369f2 100644 --- a/pkgs/by-name/ja/java/temurin-bin/jdk-linux.nix +++ b/pkgs/by-name/ja/java/temurin-bin/jdk-linux.nix @@ -1,9 +1,13 @@ -{ stdenv, lib, callPackage }: +{ + stdenv, + lib, + callPackage, +}: let variant = if stdenv.hostPlatform.isMusl then "alpine-linux" else "linux"; sources = (lib.importJSON ./sources.json).hotspot.${variant}; - common = opts: callPackage (import ./jdk-linux-base.nix opts) {}; + common = opts: callPackage (import ./jdk-linux-base.nix opts) { }; in { jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; }; diff --git a/pkgs/by-name/ja/java/zulu/11.nix b/pkgs/by-name/ja/java/zulu/11.nix index afe3363..9978ff2 100644 --- a/pkgs/by-name/ja/java/zulu/11.nix +++ b/pkgs/by-name/ja/java/zulu/11.nix @@ -1,42 +1,54 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-11-lts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-linux = { - zuluVersion = "11.70.15"; - jdkVersion = "11.0.22"; - hash = - if enableJavaFX then "sha256-FxTHgng7/oDY3n3qy8j1ztbpBQeoGcEBJbEXqaE4Zr4=" - else "sha256-V41ZRrJtkle3joKhwoID5bvWkN5I4gFjmbEnTD7no8U="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-11-lts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-linux = { + zuluVersion = "11.70.15"; + jdkVersion = "11.0.22"; + hash = + if enableJavaFX then + "sha256-FxTHgng7/oDY3n3qy8j1ztbpBQeoGcEBJbEXqaE4Zr4=" + else + "sha256-V41ZRrJtkle3joKhwoID5bvWkN5I4gFjmbEnTD7no8U="; + }; - aarch64-linux = { - zuluVersion = "11.70.15"; - jdkVersion = "11.0.22"; - hash = - if enableJavaFX then throw "JavaFX is not available for aarch64-linux" - else "sha256-u6XWMXAArUhMMb6j3KFOhkIxpVYR1oYLF0Wde7/tI0k="; - }; + aarch64-linux = { + zuluVersion = "11.70.15"; + jdkVersion = "11.0.22"; + hash = + if enableJavaFX then + throw "JavaFX is not available for aarch64-linux" + else + "sha256-u6XWMXAArUhMMb6j3KFOhkIxpVYR1oYLF0Wde7/tI0k="; + }; - x86_64-darwin = { - zuluVersion = "11.70.15"; - jdkVersion = "11.0.22"; - hash = - if enableJavaFX then "sha256-JkJZwk+D28wHWqwUoLo7WW5ypwTrT5biSoP+70YI3eQ=" - else "sha256-ca/ttkPe2tbcm1ruguDgPsxKWbEdKcICsKCDXaup9N4="; - }; + x86_64-darwin = { + zuluVersion = "11.70.15"; + jdkVersion = "11.0.22"; + hash = + if enableJavaFX then + "sha256-JkJZwk+D28wHWqwUoLo7WW5ypwTrT5biSoP+70YI3eQ=" + else + "sha256-ca/ttkPe2tbcm1ruguDgPsxKWbEdKcICsKCDXaup9N4="; + }; - aarch64-darwin = { - zuluVersion = "11.70.15"; - jdkVersion = "11.0.22"; - hash = - if enableJavaFX then "sha256-bAgH4lCxPvvFOeif5gI2aoLt1aC4EXPzb2YmiS9bQsU=" - else "sha256-PWQOF+P9djZarjAJaE3I0tuI1E4H/9584VN04BMzmvM="; + aarch64-darwin = { + zuluVersion = "11.70.15"; + jdkVersion = "11.0.22"; + hash = + if enableJavaFX then + "sha256-bAgH4lCxPvvFOeif5gI2aoLt1aC4EXPzb2YmiS9bQsU=" + else + "sha256-PWQOF+P9djZarjAJaE3I0tuI1E4H/9584VN04BMzmvM="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/17.nix b/pkgs/by-name/ja/java/zulu/17.nix index 74e00df..9f17488 100644 --- a/pkgs/by-name/ja/java/zulu/17.nix +++ b/pkgs/by-name/ja/java/zulu/17.nix @@ -1,42 +1,54 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-17-lts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-linux = { - zuluVersion = "17.48.15"; - jdkVersion = "17.0.10"; - hash = - if enableJavaFX then "sha256-YvuD/n84+DARPm+38TxIUB727SIhASFo+WX9+PtJqyw=" - else "sha256-VyhNob2G1Tq/WCKT0g0Y//f+JD2hWgj6QU9idfvUj+I="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-17-lts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-linux = { + zuluVersion = "17.48.15"; + jdkVersion = "17.0.10"; + hash = + if enableJavaFX then + "sha256-YvuD/n84+DARPm+38TxIUB727SIhASFo+WX9+PtJqyw=" + else + "sha256-VyhNob2G1Tq/WCKT0g0Y//f+JD2hWgj6QU9idfvUj+I="; + }; - aarch64-linux = { - zuluVersion = "17.48.15"; - jdkVersion = "17.0.10"; - hash = - if enableJavaFX then throw "JavaFX is not available for aarch64-linux" - else "sha256-9OZl8ruaLvjdpg42fC3IM5mC/9lmshCppNfUuz/Sf8E="; - }; + aarch64-linux = { + zuluVersion = "17.48.15"; + jdkVersion = "17.0.10"; + hash = + if enableJavaFX then + throw "JavaFX is not available for aarch64-linux" + else + "sha256-9OZl8ruaLvjdpg42fC3IM5mC/9lmshCppNfUuz/Sf8E="; + }; - x86_64-darwin = { - zuluVersion = "17.48.15"; - jdkVersion = "17.0.10"; - hash = - if enableJavaFX then "sha256-VOIcFtjQiYsA4AiP1TCa0Q76Ew5FdeJCICwsYGU+Dnw=" - else "sha256-huSKGvOnrEUAiE2MJbdHWtF2saeLGaQkZllXzDo8o+g="; - }; + x86_64-darwin = { + zuluVersion = "17.48.15"; + jdkVersion = "17.0.10"; + hash = + if enableJavaFX then + "sha256-VOIcFtjQiYsA4AiP1TCa0Q76Ew5FdeJCICwsYGU+Dnw=" + else + "sha256-huSKGvOnrEUAiE2MJbdHWtF2saeLGaQkZllXzDo8o+g="; + }; - aarch64-darwin = { - zuluVersion = "17.48.15"; - jdkVersion = "17.0.10"; - hash = - if enableJavaFX then "sha256-fxBDhHMeL5IP4eRw9ykXrRRh7Nl9DnvDB1YLaQwFHLg=" - else "sha256-kuEiHSkb4WFtPB3m0A968LPZw7Wl0sKquhbzDF8vQS8="; + aarch64-darwin = { + zuluVersion = "17.48.15"; + jdkVersion = "17.0.10"; + hash = + if enableJavaFX then + "sha256-fxBDhHMeL5IP4eRw9ykXrRRh7Nl9DnvDB1YLaQwFHLg=" + else + "sha256-kuEiHSkb4WFtPB3m0A968LPZw7Wl0sKquhbzDF8vQS8="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/18.nix b/pkgs/by-name/ja/java/zulu/18.nix index cbee8ac..91ab1c7 100644 --- a/pkgs/by-name/ja/java/zulu/18.nix +++ b/pkgs/by-name/ja/java/zulu/18.nix @@ -1,26 +1,34 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-18-sts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-darwin = { - zuluVersion = "18.32.13"; - jdkVersion = "18.0.2.1"; - hash = - if enableJavaFX then "sha256-ZVZ1gbpJwxTduq2PPOCKqbSl+shq2NTFgqG++OXvFcg=" - else "sha256-uHPcyOgxUdTgzmIVRp/awtwve9zSt+1TZNef7DUuoRg="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-18-sts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-darwin = { + zuluVersion = "18.32.13"; + jdkVersion = "18.0.2.1"; + hash = + if enableJavaFX then + "sha256-ZVZ1gbpJwxTduq2PPOCKqbSl+shq2NTFgqG++OXvFcg=" + else + "sha256-uHPcyOgxUdTgzmIVRp/awtwve9zSt+1TZNef7DUuoRg="; + }; - aarch64-darwin = { - zuluVersion = "18.32.13"; - jdkVersion = "18.0.2.1"; - hash = - if enableJavaFX then "sha256-tNx0a1u9iamcN9VFOJ3eqDEA6C204dtIBJZvuAH2Vjk=" - else "sha256-jAZDgxtWMq/74yKAxA69oOU0C9nXvKG5MjmZLsK04iM="; + aarch64-darwin = { + zuluVersion = "18.32.13"; + jdkVersion = "18.0.2.1"; + hash = + if enableJavaFX then + "sha256-tNx0a1u9iamcN9VFOJ3eqDEA6C204dtIBJZvuAH2Vjk=" + else + "sha256-jAZDgxtWMq/74yKAxA69oOU0C9nXvKG5MjmZLsK04iM="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/19.nix b/pkgs/by-name/ja/java/zulu/19.nix index 28dbf58..9a437c5 100644 --- a/pkgs/by-name/ja/java/zulu/19.nix +++ b/pkgs/by-name/ja/java/zulu/19.nix @@ -1,26 +1,34 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-19-sts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-darwin = { - zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13"; - jdkVersion = "19.0.2"; - hash = - if enableJavaFX then "sha256-AwLcIId0gH5D6DUU8CgJ3qnKVQm28LXYirBeXBHwPYE=" - else "sha256-KARXWumsY+OcqpEOV2EL9SsPni1nGSipjRji/Mn2KsE="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-19-sts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-darwin = { + zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13"; + jdkVersion = "19.0.2"; + hash = + if enableJavaFX then + "sha256-AwLcIId0gH5D6DUU8CgJ3qnKVQm28LXYirBeXBHwPYE=" + else + "sha256-KARXWumsY+OcqpEOV2EL9SsPni1nGSipjRji/Mn2KsE="; + }; - aarch64-darwin = { - zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13"; - jdkVersion = "19.0.2"; - hash = - if enableJavaFX then "sha256-/R2rrcBr64qPGEtvhruXBhPwnvurt/hiR1ICzZAdYxE=" - else "sha256-F30FjZaLL756X/Xs6xjNwW9jds4pEATxoxOeeLL7Y5E="; + aarch64-darwin = { + zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13"; + jdkVersion = "19.0.2"; + hash = + if enableJavaFX then + "sha256-/R2rrcBr64qPGEtvhruXBhPwnvurt/hiR1ICzZAdYxE=" + else + "sha256-F30FjZaLL756X/Xs6xjNwW9jds4pEATxoxOeeLL7Y5E="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/20.nix b/pkgs/by-name/ja/java/zulu/20.nix index 38083a8..608b39e 100644 --- a/pkgs/by-name/ja/java/zulu/20.nix +++ b/pkgs/by-name/ja/java/zulu/20.nix @@ -1,26 +1,34 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-20-sts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-darwin = { - zuluVersion = "20.32.11"; - jdkVersion = "20.0.2"; - hash = - if enableJavaFX then "sha256-hyxQAivZAXtqMebe30L+EYa7p+TdSdKNYj7Rl/ZwRNQ=" - else "sha256-Ev9KG6DvuBnsZrOguLsO1KQzudHCBcJNwKh45Inpnfo="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-20-sts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-darwin = { + zuluVersion = "20.32.11"; + jdkVersion = "20.0.2"; + hash = + if enableJavaFX then + "sha256-hyxQAivZAXtqMebe30L+EYa7p+TdSdKNYj7Rl/ZwRNQ=" + else + "sha256-Ev9KG6DvuBnsZrOguLsO1KQzudHCBcJNwKh45Inpnfo="; + }; - aarch64-darwin = { - zuluVersion = "20.32.11"; - jdkVersion = "20.0.2"; - hash = - if enableJavaFX then "sha256-iPQzZS4CwaoqT8cSzg4kWCT1OyGBSJLq+NETcbucLo4=" - else "sha256-15uNZ6uMfSASV3QU2q2oA/jBk2PCHOfSjn1GY7/7qIY="; + aarch64-darwin = { + zuluVersion = "20.32.11"; + jdkVersion = "20.0.2"; + hash = + if enableJavaFX then + "sha256-iPQzZS4CwaoqT8cSzg4kWCT1OyGBSJLq+NETcbucLo4=" + else + "sha256-15uNZ6uMfSASV3QU2q2oA/jBk2PCHOfSjn1GY7/7qIY="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/21.nix b/pkgs/by-name/ja/java/zulu/21.nix index db2d3a3..b58cb56 100644 --- a/pkgs/by-name/ja/java/zulu/21.nix +++ b/pkgs/by-name/ja/java/zulu/21.nix @@ -1,42 +1,54 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-21-lts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-linux = { - zuluVersion = "21.32.17"; - jdkVersion = "21.0.2"; - hash = - if enableJavaFX then "sha256-CEM2lMjyZLWS1tBcS1tBTUxBwAyzW3vrpRWFVVSFVGY=" - else "sha256-Wtcw++5rtJv/8QvznoQ5LnKNiRA9NHSn5d7w/RNLMAo="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-21-lts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-linux = { + zuluVersion = "21.32.17"; + jdkVersion = "21.0.2"; + hash = + if enableJavaFX then + "sha256-CEM2lMjyZLWS1tBcS1tBTUxBwAyzW3vrpRWFVVSFVGY=" + else + "sha256-Wtcw++5rtJv/8QvznoQ5LnKNiRA9NHSn5d7w/RNLMAo="; + }; - aarch64-linux = { - zuluVersion = "21.32.17"; - jdkVersion = "21.0.2"; - hash = - if enableJavaFX then throw "JavaFX is not available for aarch64-linux" - else "sha256-zn3xr11EqfRVYXxLiJFEP74+Syacd32Lgu1m93Fnz+A="; - }; + aarch64-linux = { + zuluVersion = "21.32.17"; + jdkVersion = "21.0.2"; + hash = + if enableJavaFX then + throw "JavaFX is not available for aarch64-linux" + else + "sha256-zn3xr11EqfRVYXxLiJFEP74+Syacd32Lgu1m93Fnz+A="; + }; - x86_64-darwin = { - zuluVersion = "21.32.17"; - jdkVersion = "21.0.2"; - hash = - if enableJavaFX then "sha256-CbEKa9Z/ItFqVM4BqsWXyRf5ejQZXPK8OqkULr9Cpqk=" - else "sha256-Otj+KI61fZdcJ4auRToDaqRuR6sqw9gVOOuuKlTTwCU="; - }; + x86_64-darwin = { + zuluVersion = "21.32.17"; + jdkVersion = "21.0.2"; + hash = + if enableJavaFX then + "sha256-CbEKa9Z/ItFqVM4BqsWXyRf5ejQZXPK8OqkULr9Cpqk=" + else + "sha256-Otj+KI61fZdcJ4auRToDaqRuR6sqw9gVOOuuKlTTwCU="; + }; - aarch64-darwin = { - zuluVersion = "21.32.17"; - jdkVersion = "21.0.2"; - hash = - if enableJavaFX then "sha256-PK+cafgQsnK6acuQxun4IUiyYHQJsBfUawwfGV8OCfQ=" - else "sha256-6CYFFt6LYGYUIqcl8d8sNu+Ij2+zU5NWawDnMl2z0E4="; + aarch64-darwin = { + zuluVersion = "21.32.17"; + jdkVersion = "21.0.2"; + hash = + if enableJavaFX then + "sha256-PK+cafgQsnK6acuQxun4IUiyYHQJsBfUawwfGV8OCfQ=" + else + "sha256-6CYFFt6LYGYUIqcl8d8sNu+Ij2+zU5NWawDnMl2z0E4="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/22.nix b/pkgs/by-name/ja/java/zulu/22.nix index 96b0e68..e0637d5 100644 --- a/pkgs/by-name/ja/java/zulu/22.nix +++ b/pkgs/by-name/ja/java/zulu/22.nix @@ -1,42 +1,54 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-22-lts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-linux = { - zuluVersion = "22.28.91"; - jdkVersion = "22.0.0"; - hash = - if enableJavaFX then "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ=" - else "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-22-lts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-linux = { + zuluVersion = "22.28.91"; + jdkVersion = "22.0.0"; + hash = + if enableJavaFX then + "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ=" + else + "sha256-HvMiODsz+puu1xtxG2RRXH/PWCk91PGNZ7UcOd9orqQ="; + }; - aarch64-linux = { - zuluVersion = "22.28.91"; - jdkVersion = "22.0.0"; - hash = - if enableJavaFX then throw "JavaFX is not available for aarch64-linux" - else "sha256-3RLNNEbMk5wAZsQmbQj/jpx9iTL/yr9N3wL4t7m6c+s="; - }; + aarch64-linux = { + zuluVersion = "22.28.91"; + jdkVersion = "22.0.0"; + hash = + if enableJavaFX then + throw "JavaFX is not available for aarch64-linux" + else + "sha256-3RLNNEbMk5wAZsQmbQj/jpx9iTL/yr9N3wL4t7m6c+s="; + }; - x86_64-darwin = { - zuluVersion = "22.28.91"; - jdkVersion = "22.0.0"; - hash = - if enableJavaFX then "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw=" - else "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw="; - }; + x86_64-darwin = { + zuluVersion = "22.28.91"; + jdkVersion = "22.0.0"; + hash = + if enableJavaFX then + "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw=" + else + "sha256-Y6PSNQjHRXukwux2sVbvpTIqT+Cg+KeG1C0iSEwyKZw="; + }; - aarch64-darwin = { - zuluVersion = "22.28.91"; - jdkVersion = "22.0.0"; - hash = - if enableJavaFX then "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0=" - else "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0="; + aarch64-darwin = { + zuluVersion = "22.28.91"; + jdkVersion = "22.0.0"; + hash = + if enableJavaFX then + "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0=" + else + "sha256-o0VkWB4+PzBmNNWy+FZlyjTgukBTe6owfydb3YNfEE0="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/8.nix b/pkgs/by-name/ja/java/zulu/8.nix index 0541114..0275ca0 100644 --- a/pkgs/by-name/ja/java/zulu/8.nix +++ b/pkgs/by-name/ja/java/zulu/8.nix @@ -1,42 +1,54 @@ -{ callPackage -, enableJavaFX ? false -, ... +{ + callPackage, + enableJavaFX ? false, + ... }@args: -callPackage ./common.nix ({ - # Details from https://www.azul.com/downloads/?version=java-8-lts&package=jdk - # Note that the latest build may differ by platform - dists = { - x86_64-linux = { - zuluVersion = "8.76.0.17"; - jdkVersion = "8.0.402"; - hash = - if enableJavaFX then "sha256-29aDAu8WVYQFSpMUFq4gG64BBz/ei/VDMg72xrpB9w4=" - else "sha256-34DI6O7T8iqDHsX63S3xk+BKDu8IHRRWNvtxpsnUJEk="; - }; +callPackage ./common.nix ( + { + # Details from https://www.azul.com/downloads/?version=java-8-lts&package=jdk + # Note that the latest build may differ by platform + dists = { + x86_64-linux = { + zuluVersion = "8.76.0.17"; + jdkVersion = "8.0.402"; + hash = + if enableJavaFX then + "sha256-29aDAu8WVYQFSpMUFq4gG64BBz/ei/VDMg72xrpB9w4=" + else + "sha256-34DI6O7T8iqDHsX63S3xk+BKDu8IHRRWNvtxpsnUJEk="; + }; - aarch64-linux = { - zuluVersion = "8.74.0.17"; - jdkVersion = "8.0.392"; - hash = - if enableJavaFX then throw "JavaFX is not available for aarch64-linux" - else "sha256-xESdKEmfkiE657X/xclwsJR5M+P72BpWErtAcYMcK0Y="; - }; + aarch64-linux = { + zuluVersion = "8.74.0.17"; + jdkVersion = "8.0.392"; + hash = + if enableJavaFX then + throw "JavaFX is not available for aarch64-linux" + else + "sha256-xESdKEmfkiE657X/xclwsJR5M+P72BpWErtAcYMcK0Y="; + }; - x86_64-darwin = { - zuluVersion = "8.76.0.17"; - jdkVersion = "8.0.402"; - hash = - if enableJavaFX then "sha256-oqFpKeWwfiXr3oX78LGvAyDGAAS2GON2gAm6fHGH7Ow=" - else "sha256-edZqDEsydQCDEwC1ZCDF/MjWVTnuQNWcKR2k/RjaIEI="; - }; + x86_64-darwin = { + zuluVersion = "8.76.0.17"; + jdkVersion = "8.0.402"; + hash = + if enableJavaFX then + "sha256-oqFpKeWwfiXr3oX78LGvAyDGAAS2GON2gAm6fHGH7Ow=" + else + "sha256-edZqDEsydQCDEwC1ZCDF/MjWVTnuQNWcKR2k/RjaIEI="; + }; - aarch64-darwin = { - zuluVersion = "8.76.0.17"; - jdkVersion = "8.0.402"; - hash = - if enableJavaFX then "sha256-UCWRXCz4v381IWzWPDYzwJwbhsmZOYxKPLGJBQGjPmc=" - else "sha256-0VPlOuNB39gDnU+pK0DGTSUjTHTtYoxaRg3YD2LyLXg="; + aarch64-darwin = { + zuluVersion = "8.76.0.17"; + jdkVersion = "8.0.402"; + hash = + if enableJavaFX then + "sha256-UCWRXCz4v381IWzWPDYzwJwbhsmZOYxKPLGJBQGjPmc=" + else + "sha256-0VPlOuNB39gDnU+pK0DGTSUjTHTtYoxaRg3YD2LyLXg="; + }; }; - }; -} // builtins.removeAttrs args [ "callPackage" ]) + } + // builtins.removeAttrs args [ "callPackage" ] +) diff --git a/pkgs/by-name/ja/java/zulu/common.nix b/pkgs/by-name/ja/java/zulu/common.nix index c905623..74a1f21 100644 --- a/pkgs/by-name/ja/java/zulu/common.nix +++ b/pkgs/by-name/ja/java/zulu/common.nix @@ -1,56 +1,59 @@ -{ lib -, stdenv -, fetchurl -, setJavaClassPath -, enableJavaFX ? false -, dists +{ + lib, + stdenv, + fetchurl, + setJavaClassPath, + enableJavaFX ? false, + dists, # minimum dependencies -, unzip -, autoPatchelfHook -, makeWrapper -, alsa-lib -, fontconfig -, freetype -, zlib -, xorg + unzip, + autoPatchelfHook, + makeWrapper, + alsa-lib, + fontconfig, + freetype, + zlib, + xorg, # runtime dependencies -, cups + cups, # runtime dependencies for GTK+ Look and Feel -, gtkSupport ? stdenv.isLinux -, cairo -, glib -, gtk2 -, gtk3 + gtkSupport ? stdenv.isLinux, + cairo, + glib, + gtk2, + gtk3, # runtime dependencies for JavaFX -, ffmpeg + ffmpeg, }: let - dist = dists.${stdenv.hostPlatform.system} - or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + dist = + dists.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); - arch = { - "aarch64" = "aarch64"; - "x86_64" = "x64"; - }.${stdenv.hostPlatform.parsed.cpu.name} - or (throw "Unsupported architecture: ${stdenv.hostPlatform.parsed.cpu.name}"); + arch = + { + "aarch64" = "aarch64"; + "x86_64" = "x64"; + } + .${stdenv.hostPlatform.parsed.cpu.name} + or (throw "Unsupported architecture: ${stdenv.hostPlatform.parsed.cpu.name}"); - platform = { - "darwin" = "macosx"; - "linux" = "linux"; - }.${stdenv.hostPlatform.parsed.kernel.name} - or (throw "Unsupported platform: ${stdenv.hostPlatform.parsed.kernel.name}"); + platform = + { + "darwin" = "macosx"; + "linux" = "linux"; + } + .${stdenv.hostPlatform.parsed.kernel.name} + or (throw "Unsupported platform: ${stdenv.hostPlatform.parsed.kernel.name}"); - runtimeDependencies = [ - cups - ] ++ lib.optionals gtkSupport [ - cairo - glib - gtk3 - ] ++ lib.optionals (gtkSupport && lib.versionOlder dist.jdkVersion "17") [ - gtk2 - ] ++ lib.optionals (stdenv.isLinux && enableJavaFX) [ - ffmpeg.lib - ]; + runtimeDependencies = + [ cups ] + ++ lib.optionals gtkSupport [ + cairo + glib + gtk3 + ] + ++ lib.optionals (gtkSupport && lib.versionOlder dist.jdkVersion "17") [ gtk2 ] + ++ lib.optionals (stdenv.isLinux && enableJavaFX) [ ffmpeg.lib ]; runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies; @@ -73,31 +76,37 @@ let curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/"; }; - nativeBuildInputs = [ - unzip - ] ++ lib.optionals stdenv.isLinux [ - autoPatchelfHook - makeWrapper - ]; + nativeBuildInputs = + [ unzip ] + ++ lib.optionals stdenv.isLinux [ + autoPatchelfHook + makeWrapper + ]; - buildInputs = lib.optionals stdenv.isLinux [ - alsa-lib # libasound.so wanted by lib/libjsound.so - fontconfig - freetype - stdenv.cc.cc # libstdc++.so.6 - xorg.libX11 - xorg.libXext - xorg.libXi - xorg.libXrender - xorg.libXtst - xorg.libXxf86vm - zlib - ] ++ lib.optionals (stdenv.isLinux && enableJavaFX) runtimeDependencies; + buildInputs = + lib.optionals stdenv.isLinux [ + alsa-lib # libasound.so wanted by lib/libjsound.so + fontconfig + freetype + stdenv.cc.cc # libstdc++.so.6 + xorg.libX11 + xorg.libXext + xorg.libXi + xorg.libXrender + xorg.libXtst + xorg.libXxf86vm + zlib + ] + ++ lib.optionals (stdenv.isLinux && enableJavaFX) runtimeDependencies; - autoPatchelfIgnoreMissingDeps = if (stdenv.isLinux && enableJavaFX) then [ - "libavcodec*.so.*" - "libavformat*.so.*" - ] else null; + autoPatchelfIgnoreMissingDeps = + if (stdenv.isLinux && enableJavaFX) then + [ + "libavcodec*.so.*" + "libavformat*.so.*" + ] + else + null; installPhase = '' mkdir -p $out @@ -115,33 +124,35 @@ let fi ''; - preFixup = '' - # Propagate the setJavaClassPath setup hook from the ${if isJdk8 then "JRE" else "JDK"} so that - # any package that depends on the ${if isJdk8 then "JRE" else "JDK"} has $CLASSPATH set up - # properly. - mkdir -p $out/nix-support - printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs + preFixup = + '' + # Propagate the setJavaClassPath setup hook from the ${if isJdk8 then "JRE" else "JDK"} so that + # any package that depends on the ${if isJdk8 then "JRE" else "JDK"} has $CLASSPATH set up + # properly. + mkdir -p $out/nix-support + printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs - # Set JAVA_HOME automatically. - cat <> $out/nix-support/setup-hook - if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi - EOF - '' + lib.optionalString stdenv.isLinux '' - # We cannot use -exec since wrapProgram is a function but not a command. - # - # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it - # breaks building OpenJDK (#114495). - for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do - if patchelf --print-interpreter "$bin" &> /dev/null; then - wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" - fi - done - '' - # FIXME: move all of the above to installPhase. - + lib.optionalString stdenv.isLinux '' - find "$out" -name libfontmanager.so -exec \ - patchelf --add-needed libfontconfig.so {} \; - ''; + # Set JAVA_HOME automatically. + cat <> $out/nix-support/setup-hook + if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi + EOF + '' + + lib.optionalString stdenv.isLinux '' + # We cannot use -exec since wrapProgram is a function but not a command. + # + # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it + # breaks building OpenJDK (#114495). + for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do + if patchelf --print-interpreter "$bin" &> /dev/null; then + wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" + fi + done + '' + # FIXME: move all of the above to installPhase. + + lib.optionalString stdenv.isLinux '' + find "$out" -name libfontmanager.so -exec \ + patchelf --add-needed libfontconfig.so {} \; + ''; # fixupPhase is moving the man to share/man which breaks it because it's a # relative symlink. @@ -149,9 +160,7 @@ let ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man ''; - passthru = (lib.optionalAttrs isJdk8 { - jre = jdk; - }) // { + passthru = (lib.optionalAttrs isJdk8 { jre = jdk; }) // { home = jdk; }; @@ -165,7 +174,10 @@ let mainProgram = "java"; maintainers = [ ]; platforms = builtins.attrNames dists; - sourceProvenance = with lib.sourceTypes; [ binaryBytecode binaryNativeCode ]; + sourceProvenance = with lib.sourceTypes; [ + binaryBytecode + binaryNativeCode + ]; }; }; in diff --git a/pkgs/by-name/je/jemalloc/default.nix b/pkgs/by-name/je/jemalloc/default.nix index 902c0d7..dc3553e 100644 --- a/pkgs/by-name/je/jemalloc/default.nix +++ b/pkgs/by-name/je/jemalloc/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -# By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which -# then stops downstream builds (mariadb in particular) from detecting it. This -# option should remove the prefix and give us a working jemalloc. -# Causes segfaults with some software (ex. rustc), but defaults to true for backward -# compatibility. -, stripPrefix ? stdenv.hostPlatform.isDarwin -, disableInitExecTls ? false +{ + lib, + stdenv, + fetchurl, + fetchpatch, + # By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which + # then stops downstream builds (mariadb in particular) from detecting it. This + # option should remove the prefix and give us a working jemalloc. + # Causes segfaults with some software (ex. rustc), but defaults to true for backward + # compatibility. + stripPrefix ? stdenv.hostPlatform.isDarwin, + disableInitExecTls ? false, }: stdenv.mkDerivation rec { @@ -44,8 +45,7 @@ stdenv.mkDerivation rec { ++ lib.optional stdenv.isAarch64 "--with-lg-page=16" # See https://github.com/jemalloc/jemalloc/issues/1997 # Using a value of 48 should work on both emulated and native x86_64-darwin. - ++ lib.optional (stdenv.isDarwin && stdenv.isx86_64) "--with-lg-vaddr=48" - ; + ++ lib.optional (stdenv.isDarwin && stdenv.isx86_64) "--with-lg-vaddr=48"; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=array-bounds"; diff --git a/pkgs/by-name/je/jemalloc/rust.nix b/pkgs/by-name/je/jemalloc/rust.nix index 1a99689..ce7fcbf 100644 --- a/pkgs/by-name/je/jemalloc/rust.nix +++ b/pkgs/by-name/je/jemalloc/rust.nix @@ -1,22 +1,27 @@ -{ lib -, stdenv -, jemalloc -, writeText +{ + lib, + stdenv, + jemalloc, + writeText, -, unprefixed ? false + unprefixed ? false, }: let # On some platforms the unprefixed feature will be ignored: # https://github.com/tikv/jemallocator/blob/ab0676d77e81268cd09b059260c75b38dbef2d51/jemalloc-sys/src/env.rs - unprefixed' = unprefixed && !stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAndroid; + unprefixed' = + unprefixed + && !stdenv.hostPlatform.isMusl + && !stdenv.hostPlatform.isDarwin + && !stdenv.hostPlatform.isAndroid; -in jemalloc.overrideAttrs (oldAttrs: { - configureFlags = oldAttrs.configureFlags ++ [ - "--with-private-namespace=_rjem_" - ] ++ lib.optionals (!unprefixed') [ - "--with-jemalloc-prefix=_rjem_" - ]; +in +jemalloc.overrideAttrs (oldAttrs: { + configureFlags = + oldAttrs.configureFlags + ++ [ "--with-private-namespace=_rjem_" ] + ++ lib.optionals (!unprefixed') [ "--with-jemalloc-prefix=_rjem_" ]; setupHook = writeText "setup-hook.sh" '' export JEMALLOC_OVERRIDE="@out@/lib/libjemalloc${stdenv.hostPlatform.extensions.library}" diff --git a/pkgs/by-name/jq/jq/default.nix b/pkgs/by-name/jq/jq/default.nix index 432fe68..59eecac 100644 --- a/pkgs/by-name/jq/jq/default.nix +++ b/pkgs/by-name/jq/jq/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, fetchurl -, removeReferencesTo -, autoreconfHook -, bison -, onigurumaSupport ? true -, oniguruma +{ + lib, + stdenv, + fetchurl, + removeReferencesTo, + autoreconfHook, + bison, + onigurumaSupport ? true, + oniguruma, }: stdenv.mkDerivation rec { @@ -18,7 +19,14 @@ stdenv.mkDerivation rec { hash = "sha256-R4ycoSn9LjRD/icxS0VeIR4NjGC8j/ffcDhz3u7lgMI="; }; - outputs = [ "bin" "doc" "man" "dev" "lib" "out" ]; + outputs = [ + "bin" + "doc" + "man" + "dev" + "lib" + "out" + ]; # Upstream script that writes the version that's eventually compiled # and printed in `jq --help` relies on a .git directory which our src @@ -36,7 +44,11 @@ stdenv.mkDerivation rec { ''; buildInputs = lib.optionals onigurumaSupport [ oniguruma ]; - nativeBuildInputs = [ removeReferencesTo autoreconfHook bison ]; + nativeBuildInputs = [ + removeReferencesTo + autoreconfHook + bison + ]; # Darwin requires _REENTRANT be defined to use functions like `lgamma_r`. # Otherwise, configure will detect that they’re in libm, but the build will fail @@ -47,14 +59,16 @@ stdenv.mkDerivation rec { "-D_DARWIN_C_SOURCE=1" ]); - configureFlags = [ - "--bindir=\${bin}/bin" - "--sbindir=\${bin}/bin" - "--datadir=\${doc}/share" - "--mandir=\${man}/share/man" - ] ++ lib.optional (!onigurumaSupport) "--with-oniguruma=no" - # jq is linked to libjq: - ++ lib.optional (!stdenv.isDarwin) "LDFLAGS=-Wl,-rpath,\\\${libdir}"; + configureFlags = + [ + "--bindir=\${bin}/bin" + "--sbindir=\${bin}/bin" + "--datadir=\${doc}/share" + "--mandir=\${man}/share/man" + ] + ++ lib.optional (!onigurumaSupport) "--with-oniguruma=no" + # jq is linked to libjq: + ++ lib.optional (!stdenv.isDarwin) "LDFLAGS=-Wl,-rpath,\\\${libdir}"; # Break the dependency cycle: $dev refers to $bin via propagated-build-outputs, and # $bin refers to $dev because of https://github.com/jqlang/jq/commit/583e4a27188a2db097dd043dd203b9c106bba100 @@ -70,13 +84,19 @@ stdenv.mkDerivation rec { $bin/bin/jq -r '.values[1]' <<< '{"values":["hello","world"]}' | grep '^world$' > /dev/null ''; - passthru = { inherit onigurumaSupport; }; + passthru = { + inherit onigurumaSupport; + }; meta = with lib; { description = "A lightweight and flexible command-line JSON processor"; homepage = "https://jqlang.github.io/jq/"; license = licenses.mit; - maintainers = with maintainers; [ raskin artturin ncfavier ]; + maintainers = with maintainers; [ + raskin + artturin + ncfavier + ]; platforms = platforms.unix; downloadPage = "https://jqlang.github.io/jq/download/"; mainProgram = "jq"; diff --git a/pkgs/by-name/js/json_c/default.nix b/pkgs/by-name/js/json_c/default.nix index ab3d2be..12b3763 100644 --- a/pkgs/by-name/js/json_c/default.nix +++ b/pkgs/by-name/js/json_c/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake +{ + lib, + stdenv, + fetchFromGitHub, + cmake, }: stdenv.mkDerivation (finalAttrs: { @@ -15,7 +16,10 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-R5KIJ0xVgGqffjzJaZvvvhAneJ+ZBuanyF6KYTTxb58="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/ke/kerberos/heimdal.nix b/pkgs/by-name/ke/kerberos/heimdal.nix index ff211b6..252238e 100644 --- a/pkgs/by-name/ke/kerberos/heimdal.nix +++ b/pkgs/by-name/ke/kerberos/heimdal.nix @@ -1,46 +1,47 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, pkg-config -, python3 -, perl -, bison -, flex -, texinfo -, perlPackages +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + pkg-config, + python3, + perl, + bison, + flex, + texinfo, + perlPackages, -, openldap -, libcap_ng -, sqlite -, openssl -, db -, libedit -, pam -, krb5 -, libmicrohttpd -, cjson + openldap, + libcap_ng, + sqlite, + openssl, + db, + libedit, + pam, + krb5, + libmicrohttpd, + cjson, -, CoreFoundation -, Security -, SystemConfiguration + CoreFoundation, + Security, + SystemConfiguration, -, curl -, jdk -, unzip -, which + curl, + jdk, + unzip, + which, -, nixosTests + nixosTests, -, withCJSON ? true -, withCapNG ? stdenv.isLinux -# libmicrohttpd should theoretically work for darwin as well, but something is broken. -# It affects tests check-bx509d and check-httpkadmind. -, withMicroHTTPD ? stdenv.isLinux -, withOpenLDAP ? true -, withOpenLDAPAsHDBModule ? false -, withOpenSSL ? true -, withSQLite3 ? true + withCJSON ? true, + withCapNG ? stdenv.isLinux, + # libmicrohttpd should theoretically work for darwin as well, but something is broken. + # It affects tests check-bx509d and check-httpkadmind. + withMicroHTTPD ? stdenv.isLinux, + withOpenLDAP ? true, + withOpenLDAPAsHDBModule ? false, + withOpenSSL ? true, + withSQLite3 ? true, }: assert lib.assertMsg (withOpenLDAPAsHDBModule -> withOpenLDAP) '' @@ -58,7 +59,12 @@ stdenv.mkDerivation { hash = "sha256-uljzQBzXrZCZjcIWfioqHN8YsbUUNy14Vo+A3vZIXzM="; }; - outputs = [ "out" "dev" "man" "info" ]; + outputs = [ + "out" + "dev" + "man" + "info" + ]; nativeBuildInputs = [ autoreconfHook @@ -68,11 +74,19 @@ stdenv.mkDerivation { bison flex texinfo - ] - ++ (with perlPackages; [ JSON ]); + ] ++ (with perlPackages; [ JSON ]); - buildInputs = [ db libedit pam ] - ++ lib.optionals (stdenv.isDarwin) [ CoreFoundation Security SystemConfiguration ] + buildInputs = + [ + db + libedit + pam + ] + ++ lib.optionals (stdenv.isDarwin) [ + CoreFoundation + Security + SystemConfiguration + ] ++ lib.optionals (withCJSON) [ cjson ] ++ lib.optionals (withCapNG) [ libcap_ng ] ++ lib.optionals (withMicroHTTPD) [ libmicrohttpd ] @@ -88,25 +102,21 @@ stdenv.mkDerivation { which ]; - configureFlags = [ - "--with-libedit-include=${libedit.dev}/include" - "--with-libedit-lib=${libedit}/lib" - "--with-berkeley-db-include=${db.dev}/include" - "--with-berkeley-db" + configureFlags = + [ + "--with-libedit-include=${libedit.dev}/include" + "--with-libedit-lib=${libedit}/lib" + "--with-berkeley-db-include=${db.dev}/include" + "--with-berkeley-db" - "--without-x" - "--disable-afs-string-to-key" - ] ++ lib.optionals (withCapNG) [ - "--with-capng" - ] ++ lib.optionals (withCJSON) [ - "--with-cjson=${cjson}" - ] ++ lib.optionals (withOpenLDAP) [ - "--with-openldap=${openldap.dev}" - ] ++ lib.optionals (withOpenLDAPAsHDBModule) [ - "--enable-hdb-openldap-module" - ] ++ lib.optionals (withSQLite3) [ - "--with-sqlite3=${sqlite.dev}" - ]; + "--without-x" + "--disable-afs-string-to-key" + ] + ++ lib.optionals (withCapNG) [ "--with-capng" ] + ++ lib.optionals (withCJSON) [ "--with-cjson=${cjson}" ] + ++ lib.optionals (withOpenLDAP) [ "--with-openldap=${openldap.dev}" ] + ++ lib.optionals (withOpenLDAPAsHDBModule) [ "--enable-hdb-openldap-module" ] + ++ lib.optionals (withSQLite3) [ "--with-sqlite3=${sqlite.dev}" ]; # (check-ldap) slapd resides within ${openldap}/libexec, # which is not part of $PATH by default. diff --git a/pkgs/by-name/ke/kerberos/krb5.nix b/pkgs/by-name/ke/kerberos/krb5.nix index edf5a06..c053e0b 100644 --- a/pkgs/by-name/ke/kerberos/krb5.nix +++ b/pkgs/by-name/ke/kerberos/krb5.nix @@ -1,21 +1,33 @@ -{ lib, stdenv, fetchurl, pkg-config, perl, bison, bootstrap_cmds -, openssl, openldap, libedit, keyutils, libverto, darwin +{ + lib, + stdenv, + fetchurl, + pkg-config, + perl, + bison, + bootstrap_cmds, + openssl, + openldap, + libedit, + keyutils, + libverto, + darwin, -# for passthru.tests -# , bind -# , curl -# , nixosTests -# , openssh -# , postgresql -# , python3 + # for passthru.tests + # , bind + # , curl + # , nixosTests + # , openssh + # , postgresql + # , python3 -# Extra Arguments -, type ? "" -# This is called "staticOnly" because krb5 does not support -# builting both static and shared, see below. -, staticOnly ? false -, withLdap ? false -, withVerto ? false + # Extra Arguments + type ? "", + # This is called "staticOnly" because krb5 does not support + # builting both static and shared, see below. + staticOnly ? false, + withLdap ? false, + withVerto ? false, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -38,36 +50,55 @@ stdenv.mkDerivation rec { hash = "sha256-lWCUGp2EPAJDpxsXp6xv4xx867W845g9t55Srn6FBJE="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - configureFlags = [ "--localstatedir=/var/lib" ] + configureFlags = + [ "--localstatedir=/var/lib" ] # krb5's ./configure does not allow passing --enable-shared and --enable-static at the same time. # See https://bbs.archlinux.org/viewtopic.php?pid=1576737#p1576737 - ++ lib.optionals staticOnly [ "--enable-static" "--disable-shared" ] + ++ lib.optionals staticOnly [ + "--enable-static" + "--disable-shared" + ] ++ lib.optional withLdap "--with-ldap" ++ lib.optional withVerto "--with-system-verto" ++ lib.optional stdenv.isFreeBSD ''WARN_CFLAGS=""'' - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) - [ "krb5_cv_attr_constructor_destructor=yes,yes" - "ac_cv_func_regcomp=yes" - "ac_cv_printf_positional=yes" - ]; + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "krb5_cv_attr_constructor_destructor=yes,yes" + "ac_cv_func_regcomp=yes" + "ac_cv_printf_positional=yes" + ]; - nativeBuildInputs = [ pkg-config perl ] + nativeBuildInputs = + [ + pkg-config + perl + ] ++ lib.optional (!libOnly) bison # Provides the mig command used by the build scripts ++ lib.optional stdenv.isDarwin bootstrap_cmds; - buildInputs = [ openssl ] - ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.libc != "bionic" && !(stdenv.hostPlatform.useLLVM or false)) [ keyutils ] + buildInputs = + [ openssl ] + ++ lib.optionals ( + stdenv.hostPlatform.isLinux + && stdenv.hostPlatform.libc != "bionic" + && !(stdenv.hostPlatform.useLLVM or false) + ) [ keyutils ] ++ lib.optionals (!libOnly) [ libedit ] ++ lib.optionals withLdap [ openldap ] ++ lib.optionals withVerto [ libverto ]; - propagatedBuildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk; [ - libs.xpc - frameworks.Kerberos - ]); + propagatedBuildInputs = lib.optionals stdenv.isDarwin ( + with darwin.apple_sdk; + [ + libs.xpc + frameworks.Kerberos + ] + ); sourceRoot = "krb5-${version}/src"; @@ -76,7 +107,12 @@ stdenv.mkDerivation rec { --replace "'ld " "'${stdenv.cc.targetPrefix}ld " ''; - libFolders = [ "util" "include" "lib" "build-tools" ]; + libFolders = [ + "util" + "include" + "lib" + "build-tools" + ]; buildPhase = lib.optionalString libOnly '' runHook preBuild diff --git a/pkgs/by-name/ke/kerberos/packages.nix b/pkgs/by-name/ke/kerberos/packages.nix index 2a8c57d..c85bc65 100644 --- a/pkgs/by-name/ke/kerberos/packages.nix +++ b/pkgs/by-name/ke/kerberos/packages.nix @@ -1,11 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ - krb5 = callPackage ./krb5.nix { - inherit (buildPackages.darwin) bootstrap_cmds; - }; +with pkgs; { + krb5 = callPackage ./krb5.nix { inherit (buildPackages.darwin) bootstrap_cmds; }; libkrb5 = krb5.override { type = "lib"; }; heimdal = callPackage ./heimdal.nix { diff --git a/pkgs/by-name/ke/kernel-headers/default.nix b/pkgs/by-name/ke/kernel-headers/default.nix index fc2f8dd..f4a1969 100644 --- a/pkgs/by-name/ke/kernel-headers/default.nix +++ b/pkgs/by-name/ke/kernel-headers/default.nix @@ -1,6 +1,14 @@ -{ stdenvNoCC, lib, buildPackages, fetchurl, perl, elf-header -, bison, flex, rsync -, writeTextFile +{ + stdenvNoCC, + lib, + buildPackages, + fetchurl, + perl, + elf-header, + bison, + flex, + rsync, + writeTextFile, }: let @@ -29,89 +37,114 @@ let destination = "/include/byteswap.h"; }; - makeLinuxHeaders = { src, version, patches ? [] }: stdenvNoCC.mkDerivation { - inherit src; + makeLinuxHeaders = + { + src, + version, + patches ? [ ], + }: + stdenvNoCC.mkDerivation { + inherit src; - pname = "linux-headers"; - inherit version; + pname = "linux-headers"; + inherit version; - ARCH = stdenvNoCC.hostPlatform.linuxArch; + ARCH = stdenvNoCC.hostPlatform.linuxArch; - strictDeps = true; - enableParallelBuilding = true; + strictDeps = true; + enableParallelBuilding = true; - # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc. - # We do this so we have a build->build, not build->host, C compiler. - depsBuildBuild = [ buildPackages.stdenv.cc ]; - # `elf-header` is null when libc provides `elf.h`. - nativeBuildInputs = [ - perl elf-header - ] ++ lib.optionals stdenvNoCC.hostPlatform.isAndroid [ - bison flex rsync - ] ++ lib.optionals (stdenvNoCC.buildPlatform.isDarwin && - stdenvNoCC.hostPlatform.isMips) [ - darwin-endian-h - darwin-byteswap-h - ]; + # It may look odd that we use `stdenvNoCC`, and yet explicit depend on a cc. + # We do this so we have a build->build, not build->host, C compiler. + depsBuildBuild = [ buildPackages.stdenv.cc ]; + # `elf-header` is null when libc provides `elf.h`. + nativeBuildInputs = + [ + perl + elf-header + ] + ++ lib.optionals stdenvNoCC.hostPlatform.isAndroid [ + bison + flex + rsync + ] + ++ lib.optionals (stdenvNoCC.buildPlatform.isDarwin && stdenvNoCC.hostPlatform.isMips) [ + darwin-endian-h + darwin-byteswap-h + ]; - extraIncludeDirs = lib.optionals (with stdenvNoCC.hostPlatform; isPower && is32bit && isBigEndian) ["ppc"]; + extraIncludeDirs = lib.optionals (with stdenvNoCC.hostPlatform; isPower && is32bit && isBigEndian) [ + "ppc" + ]; - inherit patches; + inherit patches; - hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format"; + hardeningDisable = lib.optional stdenvNoCC.buildPlatform.isDarwin "format"; - makeFlags = [ - "SHELL=bash" - # Avoid use of runtime build->host compilers for checks. These - # checks only cared to work around bugs in very old compilers, so - # these changes should be safe. - "cc-version:=9999" - "cc-fullversion:=999999" - # `$(..)` expanded by make alone - "HOSTCC:=$(CC_FOR_BUILD)" - "HOSTCXX:=$(CXX_FOR_BUILD)" - ]; + makeFlags = [ + "SHELL=bash" + # Avoid use of runtime build->host compilers for checks. These + # checks only cared to work around bugs in very old compilers, so + # these changes should be safe. + "cc-version:=9999" + "cc-fullversion:=999999" + # `$(..)` expanded by make alone + "HOSTCC:=$(CC_FOR_BUILD)" + "HOSTCXX:=$(CXX_FOR_BUILD)" + ]; - # Skip clean on darwin, case-sensitivity issues. - buildPhase = lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) '' - make mrproper $makeFlags - '' + (if stdenvNoCC.hostPlatform.isAndroid then '' - make defconfig - make headers_install - '' else '' - make headers $makeFlags - ''); + # Skip clean on darwin, case-sensitivity issues. + buildPhase = + lib.optionalString (!stdenvNoCC.buildPlatform.isDarwin) '' + make mrproper $makeFlags + '' + + ( + if stdenvNoCC.hostPlatform.isAndroid then + '' + make defconfig + make headers_install + '' + else + '' + make headers $makeFlags + '' + ); - checkPhase = '' - make headers_check $makeFlags - ''; + checkPhase = '' + make headers_check $makeFlags + ''; - # The following command requires rsync: - # make headers_install INSTALL_HDR_PATH=$out $makeFlags - # but rsync depends on popt which does not compile on aarch64 without - # updateAutotoolsGnuConfigScriptsHook which is not enabled in stage2, - # so we replicate it with cp. This also reduces bootstrap closure size. - installPhase = '' - mkdir -p $out - cp -r usr/include $out - find $out -type f ! -name '*.h' -delete - '' - # Some builds (e.g. KVM) want a kernel.release. - + '' - mkdir -p $out/include/config - echo "${version}-default" > $out/include/config/kernel.release - ''; + # The following command requires rsync: + # make headers_install INSTALL_HDR_PATH=$out $makeFlags + # but rsync depends on popt which does not compile on aarch64 without + # updateAutotoolsGnuConfigScriptsHook which is not enabled in stage2, + # so we replicate it with cp. This also reduces bootstrap closure size. + installPhase = + '' + mkdir -p $out + cp -r usr/include $out + find $out -type f ! -name '*.h' -delete + '' + # Some builds (e.g. KVM) want a kernel.release. + + '' + mkdir -p $out/include/config + echo "${version}-default" > $out/include/config/kernel.release + ''; - meta = with lib; { - description = "Header files and scripts for Linux kernel"; - license = licenses.gpl2; - platforms = platforms.linux; + meta = with lib; { + description = "Header files and scripts for Linux kernel"; + license = licenses.gpl2; + platforms = platforms.linux; + }; }; - }; -in { +in +{ inherit makeLinuxHeaders; - linuxHeaders = let version = "6.7"; in + linuxHeaders = + let + version = "6.7"; + in makeLinuxHeaders { inherit version; src = fetchurl { diff --git a/pkgs/by-name/ke/kernel-headers/packages.nix b/pkgs/by-name/ke/kernel-headers/packages.nix index 6467245..7ecf699 100644 --- a/pkgs/by-name/ke/kernel-headers/packages.nix +++ b/pkgs/by-name/ke/kernel-headers/packages.nix @@ -1,8 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - inherit (callPackages ./. { inherit (pkgsBuildBuild) elf-header; }) - linuxHeaders makeLinuxHeaders; +with pkgs; { + inherit (callPackages ./. { inherit (pkgsBuildBuild) elf-header; }) linuxHeaders makeLinuxHeaders; } diff --git a/pkgs/by-name/ke/keyutils/default.nix b/pkgs/by-name/ke/keyutils/default.nix index 3426266..2274ca1 100644 --- a/pkgs/by-name/ke/keyutils/default.nix +++ b/pkgs/by-name/ke/keyutils/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -30,7 +34,12 @@ stdenv.mkDerivation rec { makeFlags = lib.optionals stdenv.hostPlatform.isStatic "NO_SOLIB=1"; - outputs = [ "out" "lib" "dev" "man" ]; + outputs = [ + "out" + "lib" + "dev" + "man" + ]; postPatch = '' # https://github.com/archlinux/svntogit-packages/blob/packages/keyutils/trunk/reproducible.patch diff --git a/pkgs/by-name/lc/lcms2/default.nix b/pkgs/by-name/lc/lcms2/default.nix index ab98488..d78841e 100644 --- a/pkgs/by-name/lc/lcms2/default.nix +++ b/pkgs/by-name/lc/lcms2/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, libtiff, libjpeg, zlib }: +{ + lib, + stdenv, + fetchurl, + libtiff, + libjpeg, + zlib, +}: stdenv.mkDerivation rec { pname = "lcms2"; @@ -9,9 +16,17 @@ stdenv.mkDerivation rec { hash = "sha256-2HPTSti5tM6gEGMfGmIo0gh0deTcXnY+uBrMI9nUWlE="; }; - outputs = [ "bin" "dev" "out" ]; + outputs = [ + "bin" + "dev" + "out" + ]; - propagatedBuildInputs = [ libtiff libjpeg zlib ]; + propagatedBuildInputs = [ + libtiff + libjpeg + zlib + ]; # See https://trac.macports.org/ticket/60656 LDFLAGS = if stdenv.hostPlatform.isDarwin then "-Wl,-w" else null; diff --git a/pkgs/by-name/ld/ldns/default.nix b/pkgs/by-name/ld/ldns/default.nix index 1e696b1..59850c7 100644 --- a/pkgs/by-name/ld/ldns/default.nix +++ b/pkgs/by-name/ld/ldns/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchurl, openssl, perl, which, dns-root-data }: +{ + lib, + stdenv, + fetchurl, + openssl, + perl, + which, + dns-root-data, +}: stdenv.mkDerivation rec { pname = "ldns"; @@ -13,21 +21,28 @@ stdenv.mkDerivation rec { patchShebangs doc/doxyparse.pl ''; - outputs = [ "out" "dev" "man" "examples" ]; + outputs = [ + "out" + "dev" + "man" + "examples" + ]; nativeBuildInputs = [ perl ]; buildInputs = [ openssl ]; - configureFlags = [ - "--with-ssl=${openssl.dev}" - "--with-trust-anchor=${dns-root-data}/root.key" - "--with-drill" - "--disable-gost" - "--with-examples" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_func_malloc_0_nonnull=yes" - "ac_cv_func_realloc_0_nonnull=yes" - ]; + configureFlags = + [ + "--with-ssl=${openssl.dev}" + "--with-trust-anchor=${dns-root-data}/root.key" + "--with-drill" + "--disable-gost" + "--with-examples" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes" + ]; nativeCheckInputs = [ which ]; doCheck = false; # fails. missing some files diff --git a/pkgs/by-name/le/lerc/default.nix b/pkgs/by-name/le/lerc/default.nix index f7bba51..d5c206f 100644 --- a/pkgs/by-name/le/lerc/default.nix +++ b/pkgs/by-name/le/lerc/default.nix @@ -1,15 +1,19 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, }: stdenv.mkDerivation rec { pname = "lerc"; version = "4.0.0"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "esri"; @@ -27,9 +31,7 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; meta = { description = "C++ library for Limited Error Raster Compression"; diff --git a/pkgs/by-name/li/libarchive/default.nix b/pkgs/by-name/li/libarchive/default.nix index 6a368fe..31961bd 100644 --- a/pkgs/by-name/li/libarchive/default.nix +++ b/pkgs/by-name/li/libarchive/default.nix @@ -1,23 +1,25 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, acl -, attr -, autoreconfHook -, bzip2 -, e2fsprogs -, lzo -, openssl -, pkg-config -, sharutils -, xz -, zlib -, zstd -# Optional but increases closure only negligibly. Also, while libxml2 builds -# fine on windows, libarchive has trouble linking windows things it depends on -# for some reason. -, xarSupport ? stdenv.hostPlatform.isUnix, libxml2 +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + acl, + attr, + autoreconfHook, + bzip2, + e2fsprogs, + lzo, + openssl, + pkg-config, + sharutils, + xz, + zlib, + zstd, + # Optional but increases closure only negligibly. Also, while libxml2 builds + # fine on windows, libarchive has trouble linking windows things it depends on + # for some reason. + xarSupport ? stdenv.hostPlatform.isUnix, + libxml2, # for passthru.tests # , cmake @@ -51,52 +53,69 @@ stdenv.mkDerivation (finalAttrs: { }) ]; - outputs = [ "out" "lib" "dev" ]; + outputs = [ + "out" + "lib" + "dev" + ]; - postPatch = let - skipTestPaths = [ - # test won't work in nix sandbox - "libarchive/test/test_write_disk_perms.c" - # the filesystem does not necessarily have sparse capabilities - "libarchive/test/test_sparse_basic.c" - # the filesystem does not necessarily have hardlink capabilities - "libarchive/test/test_write_disk_hardlink.c" - # access-time-related tests flakey on some systems - "cpio/test/test_option_a.c" - "cpio/test/test_option_t.c" - ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [ - # only on some aarch64-linux systems? - "cpio/test/test_basic.c" - "cpio/test/test_format_newc.c" - ]; - removeTest = testPath: '' - substituteInPlace Makefile.am --replace "${testPath}" "" - rm "${testPath}" + postPatch = + let + skipTestPaths = + [ + # test won't work in nix sandbox + "libarchive/test/test_write_disk_perms.c" + # the filesystem does not necessarily have sparse capabilities + "libarchive/test/test_sparse_basic.c" + # the filesystem does not necessarily have hardlink capabilities + "libarchive/test/test_write_disk_hardlink.c" + # access-time-related tests flakey on some systems + "cpio/test/test_option_a.c" + "cpio/test/test_option_t.c" + ] + ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [ + # only on some aarch64-linux systems? + "cpio/test/test_basic.c" + "cpio/test/test_format_newc.c" + ]; + removeTest = testPath: '' + substituteInPlace Makefile.am --replace "${testPath}" "" + rm "${testPath}" + ''; + in + '' + substituteInPlace Makefile.am --replace '/bin/pwd' "$(type -P pwd)" + + ${lib.concatStringsSep "\n" (map removeTest skipTestPaths)} ''; - in '' - substituteInPlace Makefile.am --replace '/bin/pwd' "$(type -P pwd)" - - ${lib.concatStringsSep "\n" (map removeTest skipTestPaths)} - ''; nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ - bzip2 - lzo - openssl - xz - zlib - zstd - ] ++ lib.optional stdenv.hostPlatform.isUnix sharutils - ++ lib.optionals stdenv.isLinux [ acl attr e2fsprogs ] + buildInputs = + [ + bzip2 + lzo + openssl + xz + zlib + zstd + ] + ++ lib.optional stdenv.hostPlatform.isUnix sharutils + ++ lib.optionals stdenv.isLinux [ + acl + attr + e2fsprogs + ] ++ lib.optional xarSupport libxml2; # Without this, pkg-config-based dependencies are unhappy - propagatedBuildInputs = lib.optionals stdenv.isLinux [ attr acl ]; + propagatedBuildInputs = lib.optionals stdenv.isLinux [ + attr + acl + ]; configureFlags = lib.optional (!xarSupport) "--without-xml2"; @@ -126,7 +145,10 @@ stdenv.mkDerivation (finalAttrs: { ''; changelog = "https://github.com/libarchive/libarchive/releases/tag/v${finalAttrs.version}"; license = licenses.bsd3; - maintainers = with maintainers; [ jcumming AndersonTorres ]; + maintainers = with maintainers; [ + jcumming + AndersonTorres + ]; platforms = platforms.all; }; diff --git a/pkgs/by-name/li/libbsd/default.nix b/pkgs/by-name/li/libbsd/default.nix index 9e80d17..ca07f52 100644 --- a/pkgs/by-name/li/libbsd/default.nix +++ b/pkgs/by-name/li/libbsd/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchurl -, autoreconfHook -, libmd -, gitUpdater +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + libmd, + gitUpdater, }: stdenv.mkDerivation rec { @@ -15,7 +16,11 @@ stdenv.mkDerivation rec { hash = "sha256-Vf36Jpb7TVWlkvqa0Uqd+JfHsACN2zswxBmRSEH4XzM="; }; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; enableParallelBuilding = true; @@ -38,7 +43,14 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Common functions found on BSD systems"; homepage = "https://libbsd.freedesktop.org/"; - license = with licenses; [ beerware bsd2 bsd3 bsdOriginal isc mit ]; + license = with licenses; [ + beerware + bsd2 + bsd3 + bsdOriginal + isc + mit + ]; platforms = platforms.unix; # See architectures defined in src/local-elf.h. badPlatforms = lib.platforms.microblaze; diff --git a/pkgs/by-name/li/libcap_ng/default.nix b/pkgs/by-name/li/libcap_ng/default.nix index 59aa5bb..d0678b3 100644 --- a/pkgs/by-name/li/libcap_ng/default.nix +++ b/pkgs/by-name/li/libcap_ng/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "libcap-ng"; @@ -9,12 +13,14 @@ stdenv.mkDerivation rec { sha256 = "sha256-aFgdOzjnVTy29t33gTsfyZ5ShW8hQh97R3zlq9JgWoo="; }; - outputs = [ "out" "dev" "man" ]; - - configureFlags = [ - "--without-python" + outputs = [ + "out" + "dev" + "man" ]; + configureFlags = [ "--without-python" ]; + meta = with lib; { description = "Library for working with POSIX capabilities"; homepage = "https://people.redhat.com/sgrubb/libcap-ng/"; diff --git a/pkgs/by-name/li/libcpuid/default.nix b/pkgs/by-name/li/libcpuid/default.nix index cf4afd8..52bf48a 100644 --- a/pkgs/by-name/li/libcpuid/default.nix +++ b/pkgs/by-name/li/libcpuid/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }: +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + autoreconfHook, +}: stdenv.mkDerivation rec { pname = "libcpuid"; @@ -19,7 +25,10 @@ stdenv.mkDerivation rec { mainProgram = "cpuid_tool"; changelog = "https://raw.githubusercontent.com/anrieff/libcpuid/master/ChangeLog"; license = licenses.bsd2; - maintainers = with maintainers; [ orivej artuuge ]; + maintainers = with maintainers; [ + orivej + artuuge + ]; platforms = platforms.x86; }; } diff --git a/pkgs/by-name/li/libdeflate/default.nix b/pkgs/by-name/li/libdeflate/default.nix index c59ace0..6eabecc 100644 --- a/pkgs/by-name/li/libdeflate/default.nix +++ b/pkgs/by-name/li/libdeflate/default.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, fixDarwinDylibNames -, pkgsStatic -, cmake -, testers +{ + lib, + stdenv, + fetchFromGitHub, + fixDarwinDylibNames, + pkgsStatic, + cmake, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -20,14 +21,11 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = lib.optionals stdenv.hostPlatform.isStatic [ "-DLIBDEFLATE_BUILD_SHARED_LIB=OFF" ]; - nativeBuildInputs = [ cmake ] - ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; passthru.tests = { static = pkgsStatic.libdeflate; - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; + pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; }; meta = with lib; { @@ -36,7 +34,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/ebiggers/libdeflate"; changelog = "https://github.com/ebiggers/libdeflate/blob/v${finalAttrs.version}/NEWS.md"; platforms = platforms.unix ++ platforms.windows; - maintainers = with maintainers; [ orivej kaction ]; + maintainers = with maintainers; [ + orivej + kaction + ]; pkgConfigModules = [ "libdeflate" ]; }; }) diff --git a/pkgs/by-name/li/libedit/default.nix b/pkgs/by-name/li/libedit/default.nix index aeb7981..927d614 100644 --- a/pkgs/by-name/li/libedit/default.nix +++ b/pkgs/by-name/li/libedit/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchurl -, ncurses +{ + lib, + stdenv, + fetchurl, + ncurses, }: stdenv.mkDerivation (finalAttrs: { @@ -13,15 +14,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-TugYK25WkpDn0fRPD3jayHFrNfZWt2Uo9pnGnJiBTa0="; }; - outputs = [ "out" "dev" "man" ]; - - patches = [ - ./01-cygwin.patch + outputs = [ + "out" + "dev" + "man" ]; - propagatedBuildInputs = [ - ncurses - ]; + patches = [ ./01-cygwin.patch ]; + + propagatedBuildInputs = [ ncurses ]; # GCC automatically include `stdc-predefs.h` while Clang does not do this by # default. While Musl is ISO 10646 compliant, it does not define @@ -30,9 +31,9 @@ stdenv.mkDerivation (finalAttrs: { # fine with GCC and Musl. # There is a DR to fix this issue with Clang which is not merged yet. # https://reviews.llvm.org/D137043 - env.NIX_CFLAGS_COMPILE = - lib.optionalString (stdenv.targetPlatform.isMusl && stdenv.cc.isClang) - "-D__STDC_ISO_10646__=201103L"; + env.NIX_CFLAGS_COMPILE = lib.optionalString ( + stdenv.targetPlatform.isMusl && stdenv.cc.isClang + ) "-D__STDC_ISO_10646__=201103L"; postFixup = '' find $out/lib -type f | \ @@ -44,10 +45,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "http://www.thrysoee.dk/editline/"; description = "A port of the NetBSD Editline library (libedit)"; longDescription = '' - This is an autotool- and libtoolized port of the NetBSD Editline library - (libedit). This Berkeley-style licensed command line editor library - provides generic line editing, history, and tokenization functions, - similar to those found in GNU Readline. + This is an autotool- and libtoolized port of the NetBSD Editline library + (libedit). This Berkeley-style licensed command line editor library + provides generic line editing, history, and tokenization functions, + similar to those found in GNU Readline. ''; license = with lib.licenses; [ bsd3 ]; maintainers = with lib.maintainers; [ AndersonTorres ]; diff --git a/pkgs/by-name/li/libepoxy/default.nix b/pkgs/by-name/li/libepoxy/default.nix index b9ab0d7..54b3447 100644 --- a/pkgs/by-name/li/libepoxy/default.nix +++ b/pkgs/by-name/li/libepoxy/default.nix @@ -1,16 +1,17 @@ -{ lib -, stdenv -, fetchFromGitHub -, meson -, ninja -, pkg-config -, utilmacros -, python3 -, libGL -, libX11 -, Carbon -, OpenGL -, x11Support ? !stdenv.isDarwin +{ + lib, + stdenv, + fetchFromGitHub, + meson, + ninja, + pkg-config, + utilmacros, + python3, + libGL, + libX11, + Carbon, + OpenGL, + x11Support ? !stdenv.isDarwin, # for passthru.tests # , testers }: @@ -19,44 +20,55 @@ stdenv.mkDerivation (finalAttrs: { pname = "libepoxy"; version = "1.5.10"; - src = with finalAttrs; fetchFromGitHub { - owner = "anholt"; - repo = pname; - rev = version; - sha256 = "sha256-gZiyPOW2PeTMILcPiUTqPUGRNlMM5mI1z9563v4SgEs="; - }; + src = + with finalAttrs; + fetchFromGitHub { + owner = "anholt"; + repo = pname; + rev = version; + sha256 = "sha256-gZiyPOW2PeTMILcPiUTqPUGRNlMM5mI1z9563v4SgEs="; + }; patches = [ ./libgl-path.patch ]; - postPatch = '' - patchShebangs src/*.py - '' - + lib.optionalString stdenv.isDarwin '' - substituteInPlace src/dispatch_common.h --replace "PLATFORM_HAS_GLX 0" "PLATFORM_HAS_GLX 1" - '' - # cgl_core and cgl_epoxy_api fail in darwin sandbox and on Hydra (because it's headless?) - + lib.optionalString stdenv.isDarwin '' - substituteInPlace test/meson.build \ - --replace "[ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ]," "" - '' - + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' - substituteInPlace test/meson.build \ - --replace "[ 'cgl_core', [ 'cgl_core.c' ] ]," "" - ''; + postPatch = + '' + patchShebangs src/*.py + '' + + lib.optionalString stdenv.isDarwin '' + substituteInPlace src/dispatch_common.h --replace "PLATFORM_HAS_GLX 0" "PLATFORM_HAS_GLX 1" + '' + # cgl_core and cgl_epoxy_api fail in darwin sandbox and on Hydra (because it's headless?) + + lib.optionalString stdenv.isDarwin '' + substituteInPlace test/meson.build \ + --replace "[ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ]," "" + '' + + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' + substituteInPlace test/meson.build \ + --replace "[ 'cgl_core', [ 'cgl_core.c' ] ]," "" + ''; - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ meson ninja pkg-config utilmacros python3 ]; - - buildInputs = lib.optionals (x11Support && !stdenv.isDarwin) [ - libGL - ] ++ lib.optionals x11Support [ - libX11 - ] ++ lib.optionals stdenv.isDarwin [ - Carbon - OpenGL + outputs = [ + "out" + "dev" ]; + nativeBuildInputs = [ + meson + ninja + pkg-config + utilmacros + python3 + ]; + + buildInputs = + lib.optionals (x11Support && !stdenv.isDarwin) [ libGL ] + ++ lib.optionals x11Support [ libX11 ] + ++ lib.optionals stdenv.isDarwin [ + Carbon + OpenGL + ]; + mesonFlags = [ "-Degl=${if (x11Support && !stdenv.isDarwin) then "yes" else "no"}" "-Dglx=${if x11Support then "yes" else "no"}" @@ -64,7 +76,9 @@ stdenv.mkDerivation (finalAttrs: { "-Dx11=${lib.boolToString x11Support}" ]; - env.NIX_CFLAGS_COMPILE = lib.optionalString (x11Support && !stdenv.isDarwin) ''-DLIBGL_PATH="${lib.getLib libGL}/lib"''; + env.NIX_CFLAGS_COMPILE = lib.optionalString ( + x11Support && !stdenv.isDarwin + ) ''-DLIBGL_PATH="${lib.getLib libGL}/lib"''; doCheck = true; diff --git a/pkgs/by-name/li/libev/default.nix b/pkgs/by-name/li/libev/default.nix index 750cb39..a8bb27c 100644 --- a/pkgs/by-name/li/libev/default.nix +++ b/pkgs/by-name/li/libev/default.nix @@ -1,6 +1,9 @@ -{ lib, stdenv, fetchurl -, # Note: -static hasn’t work on darwin - static ? with stdenv.hostPlatform; isStatic && !isDarwin +{ + lib, + stdenv, + fetchurl, + # Note: -static hasn’t work on darwin + static ? with stdenv.hostPlatform; isStatic && !isDarwin, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -10,7 +13,7 @@ stdenv.mkDerivation rec { pname = "libev"; - version="4.33"; + version = "4.33"; src = fetchurl { url = "http://dist.schmorp.de/libev/Attic/${pname}-${version}.tar.gz"; diff --git a/pkgs/by-name/li/libexecinfo/default.nix b/pkgs/by-name/li/libexecinfo/default.nix index 36f956e..f822f24 100644 --- a/pkgs/by-name/li/libexecinfo/default.nix +++ b/pkgs/by-name/li/libexecinfo/default.nix @@ -1,6 +1,10 @@ -{ lib, stdenv, fetchurl, fetchpatch -, enableStatic ? true -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchurl, + fetchpatch, + enableStatic ? true, + enableShared ? !stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation rec { @@ -26,23 +30,27 @@ stdenv.mkDerivation rec { ./30-linux-makefile.patch ]; - makeFlags = [ "CC:=$(CC)" "AR:=$(AR)" ]; + makeFlags = [ + "CC:=$(CC)" + "AR:=$(AR)" + ]; hardeningEnable = [ "stackprotector" ]; - buildFlags = - lib.optional enableStatic "static" - ++ lib.optional enableShared "dynamic"; + buildFlags = lib.optional enableStatic "static" ++ lib.optional enableShared "dynamic"; patchFlags = [ "-p0" ]; - installPhase = '' - install -Dm644 execinfo.h stacktraverse.h -t $out/include - '' + lib.optionalString enableShared '' - install -Dm755 libexecinfo.so.1 -t $out/lib - ln -s $out/lib/libexecinfo.so{.1,} - '' + lib.optionalString enableStatic '' - install -Dm755 libexecinfo.a -t $out/lib - ''; + installPhase = + '' + install -Dm644 execinfo.h stacktraverse.h -t $out/include + '' + + lib.optionalString enableShared '' + install -Dm755 libexecinfo.so.1 -t $out/lib + ln -s $out/lib/libexecinfo.so{.1,} + '' + + lib.optionalString enableStatic '' + install -Dm755 libexecinfo.a -t $out/lib + ''; meta = with lib; { description = "Quick-n-dirty BSD licensed clone of the GNU libc backtrace facility"; diff --git a/pkgs/by-name/li/libffi/3.3.nix b/pkgs/by-name/li/libffi/3.3.nix index 294717d..171bce3 100644 --- a/pkgs/by-name/li/libffi/3.3.nix +++ b/pkgs/by-name/li/libffi/3.3.nix @@ -1,8 +1,12 @@ -{ lib, stdenv, fetchurl, fetchpatch -, autoreconfHook +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, -, doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping -, dejagnu + doCheck ? true, # test suite depends on dejagnu which cannot be used during bootstrapping + dejagnu, }: stdenv.mkDerivation rec { @@ -14,9 +18,14 @@ stdenv.mkDerivation rec { hash = "sha256-cvunkicD3fp6Ao1ROsFahcjVTI1n9V+lpIAohdxlIFY="; }; - patches = []; + patches = [ ]; - outputs = [ "out" "dev" "man" "info" ]; + outputs = [ + "out" + "dev" + "man" + "info" + ]; configureFlags = [ "--with-gcc-arch=generic" # no detection of -march= or -mtune= diff --git a/pkgs/by-name/li/libffi/default.nix b/pkgs/by-name/li/libffi/default.nix index edd16ec..f3dccf0 100644 --- a/pkgs/by-name/li/libffi/default.nix +++ b/pkgs/by-name/li/libffi/default.nix @@ -1,12 +1,16 @@ -{ lib, stdenv, fetchurl, fetchpatch -, autoreconfHook +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, # test suite depends on dejagnu which cannot be used during bootstrapping # dejagnu also requires tcl which can't be built statically at the moment -, doCheck ? !(stdenv.hostPlatform.isStatic) -, dejagnu -, nix-update-script -, testers + doCheck ? !(stdenv.hostPlatform.isStatic), + dejagnu, + nix-update-script, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -14,7 +18,9 @@ stdenv.mkDerivation (finalAttrs: { version = "3.4.6"; src = fetchurl { - url = with finalAttrs; "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz"; + url = + with finalAttrs; + "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz"; hash = "sha256-sN6p3yPIY6elDoJUQPPr/6vWXfFJcQjl1Dd0eEOJWk4="; }; @@ -22,15 +28,22 @@ stdenv.mkDerivation (finalAttrs: { # cannot use fetchpatch! All mutable patches (generated by GitHub or # cgit) that are needed here should be included directly in Nixpkgs as # files. - patches = [ - ]; + patches = [ ]; strictDeps = true; - outputs = [ "out" "dev" "man" "info" ]; + outputs = [ + "out" + "dev" + "man" + "info" + ]; enableParallelBuilding = true; - configurePlatforms = [ "build" "host" ]; + configurePlatforms = [ + "build" + "host" + ]; configureFlags = [ "--with-gcc-arch=generic" # no detection of -march= or -mtune= @@ -52,9 +65,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = nix-update-script { }; tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; + pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; }; }; diff --git a/pkgs/by-name/li/libffi/packages.nix b/pkgs/by-name/li/libffi/packages.nix index 76275b6..b319851 100644 --- a/pkgs/by-name/li/libffi/packages.nix +++ b/pkgs/by-name/li/libffi/packages.nix @@ -1,11 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libffi = callPackage ./. { }; libffi_3_3 = callPackage ./3.3.nix { }; - libffiBoot = libffi.override { - doCheck = false; - }; + libffiBoot = libffi.override { doCheck = false; }; } diff --git a/pkgs/by-name/li/libfido2/default.nix b/pkgs/by-name/li/libfido2/default.nix index b3c3cc4..d942ba2 100644 --- a/pkgs/by-name/li/libfido2/default.nix +++ b/pkgs/by-name/li/libfido2/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchurl -, cmake -, pkg-config -, hidapi -, libcbor -, openssl -, udev -, zlib -, withPcsclite ? true -, pcsclite +{ + lib, + stdenv, + fetchurl, + cmake, + pkg-config, + hidapi, + libcbor, + openssl, + udev, + zlib, + withPcsclite ? true, + pcsclite, }: stdenv.mkDerivation rec { @@ -22,28 +23,37 @@ stdenv.mkDerivation rec { sha256 = "sha256-NgF5LjIAMtQoACxMzoSZpMe4AzGQUaJaDJ8fE4/+5Fo="; }; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + ]; - buildInputs = [ libcbor zlib ] + buildInputs = + [ + libcbor + zlib + ] ++ lib.optionals stdenv.isDarwin [ hidapi ] ++ lib.optionals stdenv.isLinux [ udev ] ++ lib.optionals (stdenv.isLinux && withPcsclite) [ pcsclite ]; propagatedBuildInputs = [ openssl ]; - outputs = [ "out" "dev" "man" ]; - - cmakeFlags = [ - "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" - "-DCMAKE_INSTALL_LIBDIR=lib" - ] ++ lib.optionals stdenv.isDarwin [ - "-DUSE_HIDAPI=1" - ] ++ lib.optionals stdenv.isLinux [ - "-DNFC_LINUX=1" - ] ++ lib.optionals (stdenv.isLinux && withPcsclite) [ - "-DUSE_PCSC=1" + outputs = [ + "out" + "dev" + "man" ]; + cmakeFlags = + [ + "-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d" + "-DCMAKE_INSTALL_LIBDIR=lib" + ] + ++ lib.optionals stdenv.isDarwin [ "-DUSE_HIDAPI=1" ] + ++ lib.optionals stdenv.isLinux [ "-DNFC_LINUX=1" ] + ++ lib.optionals (stdenv.isLinux && withPcsclite) [ "-DUSE_PCSC=1" ]; + # causes possible redefinition of _FORTIFY_SOURCE? hardeningDisable = [ "fortify3" ]; @@ -53,7 +63,10 @@ stdenv.mkDerivation rec { ''; homepage = "https://github.com/Yubico/libfido2"; license = licenses.bsd2; - maintainers = with maintainers; [ dtzWill prusnak ]; + maintainers = with maintainers; [ + dtzWill + prusnak + ]; platforms = platforms.unix; }; } diff --git a/pkgs/by-name/li/libgcrypt/1.8.nix b/pkgs/by-name/li/libgcrypt/1.8.nix index 226aed7..f393200 100644 --- a/pkgs/by-name/li/libgcrypt/1.8.nix +++ b/pkgs/by-name/li/libgcrypt/1.8.nix @@ -1,9 +1,11 @@ -{ lib -, stdenv -, fetchurl -, libgpg-error -, enableCapabilities ? false, libcap -, buildPackages +{ + lib, + stdenv, + fetchurl, + libgpg-error, + enableCapabilities ? false, + libcap, + buildPackages, # for passthru.tests # , gnupg # , libotr @@ -21,7 +23,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-aJaRVQH5UeI9AtywRTRpwswiqk13oAH/c6JkfC0p590="; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; outputBin = "dev"; # The CPU Jitter random number generator must not be compiled with @@ -31,17 +37,22 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - buildInputs = [ libgpg-error ] - ++ lib.optional enableCapabilities libcap; + buildInputs = [ libgpg-error ] ++ lib.optional enableCapabilities libcap; strictDeps = true; - configureFlags = [ "--with-libgpg-error-prefix=${libgpg-error.dev}" ] - ++ lib.optional (stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157 + configureFlags = + [ "--with-libgpg-error-prefix=${libgpg-error.dev}" ] + ++ lib.optional ( + stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) + ) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157 # Necessary to generate correct assembly when compiling for aarch32 on # aarch64 - configurePlatforms = [ "host" "build" ]; + configurePlatforms = [ + "host" + "build" + ]; postConfigure = '' sed -i configure \ @@ -50,11 +61,13 @@ stdenv.mkDerivation rec { # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config - postFixup = '' - sed -i 's,#include ,#include "${libgpg-error.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h" - '' + lib.optionalString enableCapabilities '' - sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $out/lib/libgcrypt.la - ''; + postFixup = + '' + sed -i 's,#include ,#include "${libgpg-error.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h" + '' + + lib.optionalString enableCapabilities '' + sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $out/lib/libgcrypt.la + ''; doCheck = true; @@ -68,8 +81,6 @@ stdenv.mkDerivation rec { description = "General-purpose cryptographic library"; license = licenses.lgpl2Plus; platforms = platforms.all; - knownVulnerabilities = [ - "CVE-2021-40528" - ]; + knownVulnerabilities = [ "CVE-2021-40528" ]; }; } diff --git a/pkgs/by-name/li/libgcrypt/default.nix b/pkgs/by-name/li/libgcrypt/default.nix index 4130f50..4b6bb8c 100644 --- a/pkgs/by-name/li/libgcrypt/default.nix +++ b/pkgs/by-name/li/libgcrypt/default.nix @@ -1,10 +1,12 @@ -{ lib -, stdenv -, fetchurl -, gettext -, libgpg-error -, enableCapabilities ? false, libcap -, buildPackages +{ + lib, + stdenv, + fetchurl, + gettext, + libgpg-error, + enableCapabilities ? false, + libcap, + buildPackages, # for passthru.tests # , gnupg # , libotr @@ -22,7 +24,11 @@ stdenv.mkDerivation rec { hash = "sha256-iwhwiXrFrGfe1Wjc+t9Flpz6imvrD9YK8qnq3Coycqo="; }; - outputs = [ "out" "dev" "info" ]; + outputs = [ + "out" + "dev" + "info" + ]; outputBin = "dev"; # The CPU Jitter random number generator must not be compiled with @@ -32,18 +38,24 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - buildInputs = [ libgpg-error ] - ++ lib.optional stdenv.isDarwin gettext - ++ lib.optional enableCapabilities libcap; + buildInputs = [ + libgpg-error + ] ++ lib.optional stdenv.isDarwin gettext ++ lib.optional enableCapabilities libcap; strictDeps = true; - configureFlags = [ "--with-libgpg-error-prefix=${libgpg-error.dev}" ] - ++ lib.optional (stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157 + configureFlags = + [ "--with-libgpg-error-prefix=${libgpg-error.dev}" ] + ++ lib.optional ( + stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) + ) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157 # Necessary to generate correct assembly when compiling for aarch32 on # aarch64 - configurePlatforms = [ "host" "build" ]; + configurePlatforms = [ + "host" + "build" + ]; postConfigure = '' sed -i configure \ @@ -54,11 +66,13 @@ stdenv.mkDerivation rec { # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config - postFixup = '' - sed -i 's,#include ,#include "${libgpg-error.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h" - '' + lib.optionalString enableCapabilities '' - sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $out/lib/libgcrypt.la - ''; + postFixup = + '' + sed -i 's,#include ,#include "${libgpg-error.dev}/include/gpg-error.h",g' "$dev/include/gcrypt.h" + '' + + lib.optionalString enableCapabilities '' + sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $out/lib/libgcrypt.la + ''; # TODO: figure out why this is even necessary and why the missing dylib only crashes # random instead of every test diff --git a/pkgs/by-name/li/libgcrypt/packages.nix b/pkgs/by-name/li/libgcrypt/packages.nix index 7b417e4..a56df9d 100644 --- a/pkgs/by-name/li/libgcrypt/packages.nix +++ b/pkgs/by-name/li/libgcrypt/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libgcrypt = callPackage ./. { }; libgcrypt_1_8 = callPackage ./1.8.nix { }; } diff --git a/pkgs/by-name/li/libgit2/default.nix b/pkgs/by-name/li/libgit2/default.nix index e95dc72..fa80e3a 100644 --- a/pkgs/by-name/li/libgit2/default.nix +++ b/pkgs/by-name/li/libgit2/default.nix @@ -1,17 +1,18 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, python3 -, zlib -, libssh2 -, openssl -, pcre -, http-parser -, libiconv -, Security -, staticBuild ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + python3, + zlib, + libssh2, + openssl, + pcre, + http-parser, + libiconv, + Security, + staticBuild ? stdenv.hostPlatform.isStatic, # for passthru.tests # , libgit2-glib # , python3Packages @@ -23,7 +24,11 @@ stdenv.mkDerivation rec { version = "1.7.2"; # also check the following packages for updates: python3Packages.pygit2 and libgit2-glib - outputs = ["lib" "dev" "out"]; + outputs = [ + "lib" + "dev" + "out" + ]; src = fetchFromGitHub { owner = "libgit2"; @@ -32,20 +37,31 @@ stdenv.mkDerivation rec { hash = "sha256-fVPY/byE2/rxmv/bUykcAbmUFMlF3UZogVuTzjOXJUU="; }; - cmakeFlags = [ - "-DUSE_HTTP_PARSER=system" - "-DUSE_SSH=ON" - "-DBUILD_SHARED_LIBS=${if staticBuild then "OFF" else "ON"}" - ] ++ lib.optionals stdenv.hostPlatform.isWindows [ - "-DDLLTOOL=${stdenv.cc.bintools.targetPrefix}dlltool" - # For ws2_32, refered to by a `*.pc` file - "-DCMAKE_LIBRARY_PATH=${stdenv.cc.libc}/lib" + cmakeFlags = + [ + "-DUSE_HTTP_PARSER=system" + "-DUSE_SSH=ON" + "-DBUILD_SHARED_LIBS=${if staticBuild then "OFF" else "ON"}" + ] + ++ lib.optionals stdenv.hostPlatform.isWindows [ + "-DDLLTOOL=${stdenv.cc.bintools.targetPrefix}dlltool" + # For ws2_32, refered to by a `*.pc` file + "-DCMAKE_LIBRARY_PATH=${stdenv.cc.libc}/lib" + ]; + + nativeBuildInputs = [ + cmake + python3 + pkg-config ]; - nativeBuildInputs = [ cmake python3 pkg-config ]; - - buildInputs = [ zlib libssh2 openssl pcre http-parser ] - ++ lib.optional stdenv.isDarwin Security; + buildInputs = [ + zlib + libssh2 + openssl + pcre + http-parser + ] ++ lib.optional stdenv.isDarwin Security; propagatedBuildInputs = lib.optional (!stdenv.isLinux) libiconv; diff --git a/pkgs/by-name/li/libgit2/packages.nix b/pkgs/by-name/li/libgit2/packages.nix index 99acc68..0fb6d46 100644 --- a/pkgs/by-name/li/libgit2/packages.nix +++ b/pkgs/by-name/li/libgit2/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - libgit2 = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + libgit2 = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/li/libguestfs/appliance.nix b/pkgs/by-name/li/libguestfs/appliance.nix index 1cedb03..52cd8be 100644 --- a/pkgs/by-name/li/libguestfs/appliance.nix +++ b/pkgs/by-name/li/libguestfs/appliance.nix @@ -1,6 +1,7 @@ -{ lib -, stdenvNoCC -, fetchurl +{ + lib, + stdenvNoCC, + fetchurl, }: stdenvNoCC.mkDerivation rec { @@ -24,8 +25,14 @@ stdenvNoCC.mkDerivation rec { meta = with lib; { description = "VM appliance disk image used in libguestfs package"; homepage = "https://libguestfs.org"; - license = with licenses; [ gpl2Plus lgpl2Plus ]; - platforms = [ "i686-linux" "x86_64-linux" ]; + license = with licenses; [ + gpl2Plus + lgpl2Plus + ]; + platforms = [ + "i686-linux" + "x86_64-linux" + ]; hydraPlatforms = [ ]; # Hydra fails with "Output limit exceeded" }; } diff --git a/pkgs/by-name/li/libguestfs/default.nix b/pkgs/by-name/li/libguestfs/default.nix index 0b2b427..e731ad4 100644 --- a/pkgs/by-name/li/libguestfs/default.nix +++ b/pkgs/by-name/li/libguestfs/default.nix @@ -1,44 +1,45 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, autoreconfHook -, makeWrapper -, libxcrypt -, ncurses -, cpio -, gperf -, cdrkit -, flex -, bison -, qemu -, pcre2 -, augeas -, libxml2 -, acl -, libcap -, libcap_ng -, libconfig -, systemd -, fuse -, yajl -, libvirt -, hivex -, db -, gmp -, readline -, file -, numactl -, libapparmor -, jansson -, getopt -, perlPackages -, ocamlPackages -, libtirpc -, appliance ? null -, javaSupport ? false -, jdk -, zstd +{ + lib, + stdenv, + fetchurl, + pkg-config, + autoreconfHook, + makeWrapper, + libxcrypt, + ncurses, + cpio, + gperf, + cdrkit, + flex, + bison, + qemu, + pcre2, + augeas, + libxml2, + acl, + libcap, + libcap_ng, + libconfig, + systemd, + fuse, + yajl, + libvirt, + hivex, + db, + gmp, + readline, + file, + numactl, + libapparmor, + jansson, + getopt, + perlPackages, + ocamlPackages, + libtirpc, + appliance ? null, + javaSupport ? false, + jdk, + zstd, }: assert appliance == null || lib.isDerivation appliance; @@ -53,46 +54,63 @@ stdenv.mkDerivation rec { }; strictDeps = true; - nativeBuildInputs = [ - autoreconfHook - bison - cdrkit - cpio - flex - getopt - gperf - makeWrapper - pkg-config - qemu - zstd - ] ++ (with perlPackages; [ perl libintl-perl GetoptLong ModuleBuild ]) - ++ (with ocamlPackages; [ ocaml findlib ]); - buildInputs = [ - libxcrypt - ncurses - jansson - pcre2 - augeas - libxml2 - acl - libcap - libcap_ng - libconfig - systemd - fuse - yajl - libvirt - gmp - readline - file - hivex - db - numactl - libapparmor - perlPackages.ModuleBuild - libtirpc - ] ++ (with ocamlPackages; [ ocamlbuild ocaml_libvirt gettext-stub ounit ]) - ++ lib.optional javaSupport jdk; + nativeBuildInputs = + [ + autoreconfHook + bison + cdrkit + cpio + flex + getopt + gperf + makeWrapper + pkg-config + qemu + zstd + ] + ++ (with perlPackages; [ + perl + libintl-perl + GetoptLong + ModuleBuild + ]) + ++ (with ocamlPackages; [ + ocaml + findlib + ]); + buildInputs = + [ + libxcrypt + ncurses + jansson + pcre2 + augeas + libxml2 + acl + libcap + libcap_ng + libconfig + systemd + fuse + yajl + libvirt + gmp + readline + file + hivex + db + numactl + libapparmor + perlPackages.ModuleBuild + libtirpc + ] + ++ (with ocamlPackages; [ + ocamlbuild + ocaml_libvirt + gettext-stub + ounit + ]) + ++ lib.optional javaSupport jdk; prePatch = '' # build-time scripts @@ -112,9 +130,7 @@ stdenv.mkDerivation rec { "--with-distro=NixOS" "--with-guestfs-path=${placeholder "out"}/lib/guestfs" ] ++ lib.optionals (!javaSupport) [ "--without-java" ]; - patches = [ - ./libguestfs-syms.patch - ]; + patches = [ ./libguestfs-syms.patch ]; createFindlibDestdir = true; @@ -158,7 +174,10 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Tools for accessing and modifying virtual machine disk images"; - license = with licenses; [ gpl2Plus lgpl21Plus ]; + license = with licenses; [ + gpl2Plus + lgpl21Plus + ]; homepage = "https://libguestfs.org/"; maintainers = with maintainers; [ offline ]; platforms = platforms.linux; diff --git a/pkgs/by-name/li/libguestfs/packages.nix b/pkgs/by-name/li/libguestfs/packages.nix index ee8550e..4a45571 100644 --- a/pkgs/by-name/li/libguestfs/packages.nix +++ b/pkgs/by-name/li/libguestfs/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libguestfs-appliance = callPackage ./appliance.nix { }; libguestfs = callPackage ./. { autoreconfHook = buildPackages.autoreconfHook264; diff --git a/pkgs/by-name/li/libheif/default.nix b/pkgs/by-name/li/libheif/default.nix index cdff03f..ccb985d 100644 --- a/pkgs/by-name/li/libheif/default.nix +++ b/pkgs/by-name/li/libheif/default.nix @@ -1,30 +1,36 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, pkg-config -, dav1d -, rav1e -, libde265 -, x265 -, libpng -, libjpeg -, libaom -, gdk-pixbuf +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + dav1d, + rav1e, + libde265, + x265, + libpng, + libjpeg, + libaom, + gdk-pixbuf, -# for passthru.tests -, gimp -, imagemagick -, imlib2Full -, imv -, vips + # for passthru.tests + gimp, + imagemagick, + imlib2Full, + imv, + vips, }: stdenv.mkDerivation rec { pname = "libheif"; version = "1.17.6"; - outputs = [ "bin" "out" "dev" "man" ]; + outputs = [ + "bin" + "out" + "dev" + "man" + ]; src = fetchFromGitHub { owner = "strukturag"; @@ -59,7 +65,13 @@ stdenv.mkDerivation rec { ''; passthru.tests = { - inherit gimp imagemagick imlib2Full imv vips; + inherit + gimp + imagemagick + imlib2Full + imv + vips + ; }; meta = { diff --git a/pkgs/by-name/li/libical/default.nix b/pkgs/by-name/li/libical/default.nix index 9cfe47f..cf3fcc4 100644 --- a/pkgs/by-name/li/libical/default.nix +++ b/pkgs/by-name/li/libical/default.nix @@ -1,29 +1,33 @@ -{ lib -, stdenv -, fetchFromGitHub -, pkgsBuildBuild -, pkgsBuildHost -, cmake -, glib -, icu -, libxml2 -, ninja -, perl -, pkg-config -, libical -, python3 -, tzdata -, fixDarwinDylibNames -, withIntrospection ? stdenv.hostPlatform.emulatorAvailable pkgsBuildHost -, gobject-introspection -, vala +{ + lib, + stdenv, + fetchFromGitHub, + pkgsBuildBuild, + pkgsBuildHost, + cmake, + glib, + icu, + libxml2, + ninja, + perl, + pkg-config, + libical, + python3, + tzdata, + fixDarwinDylibNames, + withIntrospection ? stdenv.hostPlatform.emulatorAvailable pkgsBuildHost, + gobject-introspection, + vala, }: stdenv.mkDerivation rec { pname = "libical"; version = "3.0.18"; - outputs = [ "out" "dev" ]; # "devdoc" ]; + outputs = [ + "out" + "dev" + ]; # "devdoc" ]; src = fetchFromGitHub { owner = "libical"; @@ -39,26 +43,25 @@ stdenv.mkDerivation rec { libical ]; - nativeBuildInputs = [ - cmake - ninja - perl - pkg-config - ] ++ lib.optionals withIntrospection [ - gobject-introspection - vala - # Docs building fails: - # https://github.com/NixOS/nixpkgs/pull/67204 - # previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489 - # gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs - ] ++ lib.optionals stdenv.isDarwin [ - fixDarwinDylibNames - ]; + nativeBuildInputs = + [ + cmake + ninja + perl + pkg-config + ] + ++ lib.optionals withIntrospection [ + gobject-introspection + vala + # Docs building fails: + # https://github.com/NixOS/nixpkgs/pull/67204 + # previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489 + # gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs + ] + ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; nativeInstallCheckInputs = [ # running libical-glib tests - (python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ - pygobject3 - ])) + (python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ pygobject3 ])) ]; buildInputs = [ @@ -67,13 +70,15 @@ stdenv.mkDerivation rec { icu ]; - cmakeFlags = [ - "-DENABLE_GTK_DOC=False" - "-DGOBJECT_INTROSPECTION=${if withIntrospection then "True" else "False"}" - "-DICAL_GLIB_VAPI=${if withIntrospection then "True" else "False"}" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "-DIMPORT_ICAL_GLIB_SRC_GENERATOR=${lib.getDev pkgsBuildBuild.libical}/lib/cmake/LibIcal/IcalGlibSrcGenerator.cmake" - ]; + cmakeFlags = + [ + "-DENABLE_GTK_DOC=False" + "-DGOBJECT_INTROSPECTION=${if withIntrospection then "True" else "False"}" + "-DICAL_GLIB_VAPI=${if withIntrospection then "True" else "False"}" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DIMPORT_ICAL_GLIB_SRC_GENERATOR=${lib.getDev pkgsBuildBuild.libical}/lib/cmake/LibIcal/IcalGlibSrcGenerator.cmake" + ]; patches = [ # Will appear in 3.1.0 @@ -86,13 +91,17 @@ stdenv.mkDerivation rec { # Musl does not support TZDIR. doInstallCheck = !stdenv.hostPlatform.isMusl; enableParallelChecking = false; - preInstallCheck = if stdenv.isDarwin then '' - for testexe in $(find ./src/test -maxdepth 1 -type f -executable); do - for lib in $(cd lib && ls *.3.dylib); do - install_name_tool -change $lib $out/lib/$lib $testexe - done - done - '' else null; + preInstallCheck = + if stdenv.isDarwin then + '' + for testexe in $(find ./src/test -maxdepth 1 -type f -executable); do + for lib in $(cd lib && ls *.3.dylib); do + install_name_tool -change $lib $out/lib/$lib $testexe + done + done + '' + else + null; installCheckPhase = '' runHook preInstallCheck diff --git a/pkgs/by-name/li/libiconv/default.nix b/pkgs/by-name/li/libiconv/default.nix index ed162d1..03d17de 100644 --- a/pkgs/by-name/li/libiconv/default.nix +++ b/pkgs/by-name/li/libiconv/default.nix @@ -1,7 +1,10 @@ -{ fetchurl, stdenv, lib -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic -, enableDarwinABICompat ? false +{ + fetchurl, + stdenv, + lib, + enableStatic ? stdenv.hostPlatform.isStatic, + enableShared ? !stdenv.hostPlatform.isStatic, + enableDarwinABICompat ? false, }: # assert !stdenv.hostPlatform.isLinux || stdenv.hostPlatform != stdenv.buildPlatform; # TODO: improve on cross @@ -23,7 +26,10 @@ stdenv.mkDerivation rec { ]; postPatch = - lib.optionalString ((stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isMinGW) || stdenv.cc.nativeLibc) + lib.optionalString + ( + (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isMinGW) || stdenv.cc.nativeLibc + ) '' sed '/^_GL_WARN_ON_USE (gets/d' -i srclib/stdio.in.h '' diff --git a/pkgs/by-name/li/libiconv/packages.nix b/pkgs/by-name/li/libiconv/packages.nix index a9e7355..9fd0d49 100644 --- a/pkgs/by-name/li/libiconv/packages.nix +++ b/pkgs/by-name/li/libiconv/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # GNU libc provides libiconv so systems with glibc don't need to # build libiconv separately. Additionally, Apple forked/repackaged # libiconv so we use that instead of the vanilla version on that OS, @@ -11,17 +10,22 @@ with pkgs; # We also provide `libiconvReal`, which will always be a standalone libiconv, # just in case you want it regardless of platform. libiconv = - if lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" "nblibc" "wasilibc" ] + if + lib.elem stdenv.hostPlatform.libc [ + "glibc" + "musl" + "nblibc" + "wasilibc" + ] then - libcIconv - (if stdenv.hostPlatform != stdenv.buildPlatform - then libcCross - else stdenv.cc.libc) + libcIconv (if stdenv.hostPlatform != stdenv.buildPlatform then libcCross else stdenv.cc.libc) # else if stdenv.hostPlatform.isDarwin # then darwin.libiconv - else libiconvReal; + else + libiconvReal; - libcIconv = libc: + libcIconv = + libc: let inherit (libc) pname version; libcDev = lib.getDev libc; @@ -34,7 +38,12 @@ with pkgs; libiconvReal = callPackage ./. { }; iconv = - if lib.elem stdenv.hostPlatform.libc [ "glibc" "musl" ] then + if + lib.elem stdenv.hostPlatform.libc [ + "glibc" + "musl" + ] + then lib.getBin stdenv.cc.libc else if stdenv.hostPlatform.isDarwin then lib.getBin darwin.libiconv diff --git a/pkgs/by-name/li/libid3tag/default.nix b/pkgs/by-name/li/libid3tag/default.nix index c8c9d8b..96ae596 100644 --- a/pkgs/by-name/li/libid3tag/default.nix +++ b/pkgs/by-name/li/libid3tag/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, zlib, gperf_3_0 }: +{ + lib, + stdenv, + fetchurl, + zlib, + gperf_3_0, +}: stdenv.mkDerivation rec { pname = "libid3tag"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151"; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; setOutputFlags = false; strictDeps = true; diff --git a/pkgs/by-name/li/libidn2/default.nix b/pkgs/by-name/li/libidn2/default.nix index bfe9c2a..d6c64ec 100644 --- a/pkgs/by-name/li/libidn2/default.nix +++ b/pkgs/by-name/li/libidn2/default.nix @@ -1,4 +1,13 @@ -{ fetchurl, lib, stdenv, libiconv, libunistring, help2man, texinfo, buildPackages }: +{ + fetchurl, + lib, + stdenv, + libiconv, + libunistring, + help2man, + texinfo, + buildPackages, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -16,13 +25,22 @@ stdenv.mkDerivation rec { strictDeps = true; # Beware: non-bootstrap libidn2 is overridden by ./hack.nix - outputs = [ "bin" "dev" "out" "info" "devdoc" ]; + outputs = [ + "bin" + "dev" + "out" + "info" + "devdoc" + ]; enableParallelBuilding = true; # The above patch causes the documentation to be regenerated, so the # documentation tools are required. - nativeBuildInputs = lib.optionals stdenv.isDarwin [ help2man texinfo ]; + nativeBuildInputs = lib.optionals stdenv.isDarwin [ + help2man + texinfo + ]; buildInputs = [ libunistring ] ++ lib.optional stdenv.isDarwin libiconv; depsBuildBuild = [ buildPackages.stdenv.cc ]; @@ -40,7 +58,11 @@ stdenv.mkDerivation rec { ''; mainProgram = "idn2"; - license = with lib.licenses; [ lgpl3Plus gpl2Plus gpl3Plus ]; + license = with lib.licenses; [ + lgpl3Plus + gpl2Plus + gpl3Plus + ]; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ fpletz ]; }; diff --git a/pkgs/by-name/li/libidn2/no-bootstrap-reference.nix b/pkgs/by-name/li/libidn2/no-bootstrap-reference.nix index 216beb5..7c01fdd 100644 --- a/pkgs/by-name/li/libidn2/no-bootstrap-reference.nix +++ b/pkgs/by-name/li/libidn2/no-bootstrap-reference.nix @@ -1,10 +1,20 @@ -{ stdenv, lib, libidn2, libunistring, runCommandLocal, patchelf }: +{ + stdenv, + lib, + libidn2, + libunistring, + runCommandLocal, + patchelf, +}: # Construct a copy of libidn2.* where all (transitive) libc references (in .bin) # get replaced by a new one, so that there's no reference to bootstrap tools. -runCommandLocal - "${libidn2.pname}-${libidn2.version}" +runCommandLocal "${libidn2.pname}-${libidn2.version}" { - outputs = [ "bin" "dev" "out" ]; + outputs = [ + "bin" + "dev" + "out" + ]; passthru = { inherit (libidn2) out info devdoc; # no need to touch these store paths }; @@ -15,8 +25,13 @@ runCommandLocal chmod +w "$bin"/bin/* patchelf \ --set-interpreter '${stdenv.cc.bintools.dynamicLinker}' \ - --set-rpath '${lib.concatMapStringsSep ":" (p: lib.getLib p + "/lib") - [ stdenv.cc.libc libunistring libidn2 ]}' \ + --set-rpath '${ + lib.concatMapStringsSep ":" (p: lib.getLib p + "/lib") [ + stdenv.cc.libc + libunistring + libidn2 + ] + }' \ "$bin"/bin/* cp -r '${libidn2.dev}' "$dev" @@ -28,4 +43,3 @@ runCommandLocal ln -s '${libidn2.out}' "$out" # it's hard to be without any $out '' - diff --git a/pkgs/by-name/li/libipt/default.nix b/pkgs/by-name/li/libipt/default.nix index ed88ed8..cfcd9cc 100644 --- a/pkgs/by-name/li/libipt/default.nix +++ b/pkgs/by-name/li/libipt/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: +{ + lib, + stdenv, + fetchFromGitHub, + cmake, +}: stdenv.mkDerivation rec { pname = "libipt"; diff --git a/pkgs/by-name/li/libjpeg-turbo/default.nix b/pkgs/by-name/li/libjpeg-turbo/default.nix index 4a5b478..f70b635 100644 --- a/pkgs/by-name/li/libjpeg-turbo/default.nix +++ b/pkgs/by-name/li/libjpeg-turbo/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, cmake -, nasm -, openjdk -, enableJava ? false # whether to build the java wrapper -, enableJpeg7 ? false # whether to build libjpeg with v7 compatibility -, enableJpeg8 ? false # whether to build libjpeg with v8 compatibility -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + cmake, + nasm, + openjdk, + enableJava ? false, # whether to build the java wrapper + enableJpeg7 ? false, # whether to build libjpeg with v7 compatibility + enableJpeg8 ? false, # whether to build libjpeg with v8 compatibility + enableStatic ? stdenv.hostPlatform.isStatic, + enableShared ? !stdenv.hostPlatform.isStatic, # for passthru.tests # , dvgrab @@ -28,7 +29,7 @@ # , testers }: -assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both +assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both stdenv.mkDerivation (finalAttrs: { @@ -42,23 +43,31 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-xHjd0WHN50b75wdWPHUwfmJGsiWKmj+zA59UwakIo74="; }; - patches = [ - (fetchpatch { - name = "CMAKE_CROSSCOMPILING_EMULATOR=env-fix.patch"; - url = "https://github.com/libjpeg-turbo/libjpeg-turbo/compare/36c51dd3eb60ebde3ca77d3cfa7df3422f1aaaf1..b6ee1016abbc55116304ad396cf88aa19391e10a.patch"; - hash = "sha256-dNwXicvZEsG02TBaM5nYMlZ+VczT/Dfx6ZM/6huZpwE="; - }) + patches = + [ + (fetchpatch { + name = "CMAKE_CROSSCOMPILING_EMULATOR=env-fix.patch"; + url = "https://github.com/libjpeg-turbo/libjpeg-turbo/compare/36c51dd3eb60ebde3ca77d3cfa7df3422f1aaaf1..b6ee1016abbc55116304ad396cf88aa19391e10a.patch"; + hash = "sha256-dNwXicvZEsG02TBaM5nYMlZ+VczT/Dfx6ZM/6huZpwE="; + }) - # This is needed by freeimage - ./0001-Compile-transupp.c-as-part-of-the-library.patch - ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ - ./0002-Make-exported-symbols-in-transupp.c-weak.patch - ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ - ./mingw-boolean.patch + # This is needed by freeimage + ./0001-Compile-transupp.c-as-part-of-the-library.patch + ] + ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ + ./0002-Make-exported-symbols-in-transupp.c-weak.patch + ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ ./mingw-boolean.patch ]; + + outputs = [ + "bin" + "dev" + "dev_private" + "out" + "man" + "doc" ]; - outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ]; - postFixup = '' moveToOutput include/transupp.h $dev_private ''; @@ -66,24 +75,21 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake nasm - ] ++ lib.optionals enableJava [ - openjdk - ]; + ] ++ lib.optionals enableJava [ openjdk ]; - cmakeFlags = [ - "-DENABLE_STATIC=${if enableStatic then "1" else "0"}" - "-DENABLE_SHARED=${if enableShared then "1" else "0"}" - ] ++ lib.optionals enableJava [ - "-DWITH_JAVA=1" - ] ++ lib.optionals enableJpeg7 [ - "-DWITH_JPEG7=1" - ] ++ lib.optionals enableJpeg8 [ - "-DWITH_JPEG8=1" - ] ++ lib.optionals stdenv.hostPlatform.isRiscV [ - # https://github.com/libjpeg-turbo/libjpeg-turbo/issues/428 - # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/88bf1d16786c74f76f2e4f6ec2873d092f577c75 - "-DFLOATTEST=fp-contract" - ]; + cmakeFlags = + [ + "-DENABLE_STATIC=${if enableStatic then "1" else "0"}" + "-DENABLE_SHARED=${if enableShared then "1" else "0"}" + ] + ++ lib.optionals enableJava [ "-DWITH_JAVA=1" ] + ++ lib.optionals enableJpeg7 [ "-DWITH_JPEG7=1" ] + ++ lib.optionals enableJpeg8 [ "-DWITH_JPEG8=1" ] + ++ lib.optionals stdenv.hostPlatform.isRiscV [ + # https://github.com/libjpeg-turbo/libjpeg-turbo/issues/428 + # https://github.com/libjpeg-turbo/libjpeg-turbo/commit/88bf1d16786c74f76f2e4f6ec2873d092f577c75 + "-DFLOATTEST=fp-contract" + ]; doInstallCheck = true; installCheckTarget = "test"; @@ -110,8 +116,15 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://libjpeg-turbo.org/"; description = "A faster (using SIMD) libjpeg implementation"; license = licenses.ijg; # and some parts under other BSD-style licenses - pkgConfigModules = [ "libjpeg" "libturbojpeg" ]; - maintainers = with maintainers; [ vcunat colemickens kamadorueda ]; + pkgConfigModules = [ + "libjpeg" + "libturbojpeg" + ]; + maintainers = with maintainers; [ + vcunat + colemickens + kamadorueda + ]; platforms = platforms.all; }; }) diff --git a/pkgs/by-name/li/libjpeg-turbo/packages.nix b/pkgs/by-name/li/libjpeg-turbo/packages.nix index c998453..4bcab69 100644 --- a/pkgs/by-name/li/libjpeg-turbo/packages.nix +++ b/pkgs/by-name/li/libjpeg-turbo/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # also known as libturbojpeg libjpeg_turbo = callPackage ./. { }; libjpeg = libjpeg_turbo; diff --git a/pkgs/by-name/li/libjpeg/default.nix b/pkgs/by-name/li/libjpeg/default.nix index d161ff3..a3df305 100644 --- a/pkgs/by-name/li/libjpeg/default.nix +++ b/pkgs/by-name/li/libjpeg/default.nix @@ -1,6 +1,9 @@ -{ lib, stdenv, fetchurl -, testers -, static ? false +{ + lib, + stdenv, + fetchurl, + testers, + static ? false, }: stdenv.mkDerivation (finalAttrs: { @@ -14,7 +17,12 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = lib.optional static "--enable-static --disable-shared"; - outputs = [ "bin" "dev" "out" "man" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + ]; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; diff --git a/pkgs/by-name/li/libjpeg/packages.nix b/pkgs/by-name/li/libjpeg/packages.nix index fdb1200..14ce8fd 100644 --- a/pkgs/by-name/li/libjpeg/packages.nix +++ b/pkgs/by-name/li/libjpeg/packages.nix @@ -1,8 +1,6 @@ - { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libjpeg_original = callPackage ./. { }; } diff --git a/pkgs/by-name/li/libjxl/default.nix b/pkgs/by-name/li/libjxl/default.nix index c91ae27..ac45741 100644 --- a/pkgs/by-name/li/libjxl/default.nix +++ b/pkgs/by-name/li/libjxl/default.nix @@ -1,24 +1,27 @@ -{ stdenv, lib, fetchFromGitHub -, brotli -, cmake -, giflib -, gperftools -, gtest -, libhwy -, libjpeg -, libpng -, libwebp -, gdk-pixbuf -, openexr_3 -, pkg-config -, makeWrapper -, zlib -, asciidoc -, graphviz -, doxygen -, python3 -, lcms2 -, enablePlugins ? stdenv.buildPlatform.canExecute stdenv.hostPlatform +{ + stdenv, + lib, + fetchFromGitHub, + brotli, + cmake, + giflib, + gperftools, + gtest, + libhwy, + libjpeg, + libpng, + libwebp, + gdk-pixbuf, + openexr_3, + pkg-config, + makeWrapper, + zlib, + asciidoc, + graphviz, + doxygen, + python3, + lcms2, + enablePlugins ? stdenv.buildPlatform.canExecute stdenv.hostPlatform, }: let @@ -29,7 +32,10 @@ stdenv.mkDerivation rec { pname = "libjxl"; version = "0.9.1"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "libjxl"; @@ -52,9 +58,7 @@ stdenv.mkDerivation rec { python3 ]; - depsBuildBuild = [ - graphviz - ]; + depsBuildBuild = [ graphviz ]; # Functionality not currently provided by this package # that the cmake build can apparently use: @@ -90,33 +94,33 @@ stdenv.mkDerivation rec { libhwy ]; - cmakeFlags = [ - # For C dependencies like brotli, which are dynamically linked, - # we want to use the system libraries, so that we don't have to care about - # installing their .so files generated by this build. - # The other C++ dependencies are statically linked in, so there - # using the vendorered ones is easier. - "-DJPEGXL_FORCE_SYSTEM_BROTLI=ON" + cmakeFlags = + [ + # For C dependencies like brotli, which are dynamically linked, + # we want to use the system libraries, so that we don't have to care about + # installing their .so files generated by this build. + # The other C++ dependencies are statically linked in, so there + # using the vendorered ones is easier. + "-DJPEGXL_FORCE_SYSTEM_BROTLI=ON" - # Use our version of highway, though it is still statically linked in - "-DJPEGXL_FORCE_SYSTEM_HWY=ON" + # Use our version of highway, though it is still statically linked in + "-DJPEGXL_FORCE_SYSTEM_HWY=ON" - # Use our version of gtest - "-DJPEGXL_FORCE_SYSTEM_GTEST=ON" + # Use our version of gtest + "-DJPEGXL_FORCE_SYSTEM_GTEST=ON" - # TODO: Update this package to enable this (overridably via an option): - # Viewer tools for evaluation. - # "-DJPEGXL_ENABLE_VIEWERS=ON" - ] ++ lib.optionals enablePlugins [ - # Enable plugins, such as: - # * the `gdk-pixbuf` one, which allows applications like `eog` to load jpeg-xl files - # * the `gimp` one, which allows GIMP to load jpeg-xl files - "-DJPEGXL_ENABLE_PLUGINS=ON" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - "-DJPEGXL_STATIC=ON" - ] ++ lib.optionals stdenv.hostPlatform.isAarch32 [ - "-DJPEGXL_FORCE_NEON=ON" - ]; + # TODO: Update this package to enable this (overridably via an option): + # Viewer tools for evaluation. + # "-DJPEGXL_ENABLE_VIEWERS=ON" + ] + ++ lib.optionals enablePlugins [ + # Enable plugins, such as: + # * the `gdk-pixbuf` one, which allows applications like `eog` to load jpeg-xl files + # * the `gimp` one, which allows GIMP to load jpeg-xl files + "-DJPEGXL_ENABLE_PLUGINS=ON" + ] + ++ lib.optionals stdenv.hostPlatform.isStatic [ "-DJPEGXL_STATIC=ON" ] + ++ lib.optionals stdenv.hostPlatform.isAarch32 [ "-DJPEGXL_FORCE_NEON=ON" ]; postPatch = '' substituteInPlace plugins/gdk-pixbuf/jxl.thumbnailer \ diff --git a/pkgs/by-name/li/liblqr1/default.nix b/pkgs/by-name/li/liblqr1/default.nix index 6b8c2eb..7c55cf6 100644 --- a/pkgs/by-name/li/liblqr1/default.nix +++ b/pkgs/by-name/li/liblqr1/default.nix @@ -1,10 +1,21 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config, glib, Carbon, AppKit }: +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + glib, + Carbon, + AppKit, +}: stdenv.mkDerivation rec { pname = "liblqr-1"; version = "0.4.2"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "carlobaldassi"; @@ -14,13 +25,19 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkg-config ]; - buildInputs = lib.optionals stdenv.isDarwin [ Carbon AppKit ]; + buildInputs = lib.optionals stdenv.isDarwin [ + Carbon + AppKit + ]; propagatedBuildInputs = [ glib ]; meta = with lib; { homepage = "http://liblqr.wikidot.com"; description = "Seam-carving C/C++ library called Liquid Rescaling"; platforms = platforms.all; - license = with licenses; [ gpl3 lgpl3 ]; + license = with licenses; [ + gpl3 + lgpl3 + ]; }; } diff --git a/pkgs/by-name/li/liblqr1/packages.nix b/pkgs/by-name/li/liblqr1/packages.nix index 9441e21..8f089d8 100644 --- a/pkgs/by-name/li/liblqr1/packages.nix +++ b/pkgs/by-name/li/liblqr1/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - liblqr1 = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Carbon AppKit; - }; +with pkgs; { + liblqr1 = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Carbon AppKit; }; } diff --git a/pkgs/by-name/li/libmd/default.nix b/pkgs/by-name/li/libmd/default.nix index bf156fb..addbc8b 100644 --- a/pkgs/by-name/li/libmd/default.nix +++ b/pkgs/by-name/li/libmd/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, +}: stdenv.mkDerivation (finalAttrs: { pname = "libmd"; @@ -23,7 +29,13 @@ stdenv.mkDerivation (finalAttrs: { changelog = "https://archive.hadrons.org/software/libmd/libmd-${finalAttrs.version}.announce"; # Git: https://git.hadrons.org/cgit/libmd.git description = "Message Digest functions from BSD systems"; - license = with licenses; [ bsd3 bsd2 isc beerware publicDomain ]; + license = with licenses; [ + bsd3 + bsd2 + isc + beerware + publicDomain + ]; maintainers = with maintainers; [ primeos ]; platforms = platforms.unix; }; diff --git a/pkgs/by-name/li/libmnl/default.nix b/pkgs/by-name/li/libmnl/default.nix index 9a6f6a1..4c6502e 100644 --- a/pkgs/by-name/li/libmnl/default.nix +++ b/pkgs/by-name/li/libmnl/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "libmnl"; diff --git a/pkgs/by-name/li/libmpc/default.nix b/pkgs/by-name/li/libmpc/default.nix index fe11b59..793adbf 100644 --- a/pkgs/by-name/li/libmpc/default.nix +++ b/pkgs/by-name/li/libmpc/default.nix @@ -1,5 +1,9 @@ -{ lib, stdenv, fetchurl -, gmp, mpfr +{ + lib, + stdenv, + fetchurl, + gmp, + mpfr, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -19,18 +23,21 @@ stdenv.mkDerivation rec { strictDeps = true; enableParallelBuilding = true; - buildInputs = [ gmp mpfr ]; + buildInputs = [ + gmp + mpfr + ]; doCheck = true; # not cross; meta = { description = "Library for multiprecision complex arithmetic with exact rounding"; - longDescription = - '' GNU MPC is a C library for the arithmetic of complex numbers with - arbitrarily high precision and correct rounding of the result. It is - built upon and follows the same principles as GNU MPFR. - ''; + longDescription = '' + GNU MPC is a C library for the arithmetic of complex numbers with + arbitrarily high precision and correct rounding of the result. It is + built upon and follows the same principles as GNU MPFR. + ''; homepage = "https://www.multiprecision.org/mpc/"; license = lib.licenses.lgpl2Plus; diff --git a/pkgs/by-name/li/libnatspec/default.nix b/pkgs/by-name/li/libnatspec/default.nix index 4124422..4fea8c6 100644 --- a/pkgs/by-name/li/libnatspec/default.nix +++ b/pkgs/by-name/li/libnatspec/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, autoreconfHook, popt, libiconv }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + popt, + libiconv, +}: stdenv.mkDerivation rec { pname = "libnatspec"; diff --git a/pkgs/by-name/li/libnetfilter_conntrack/default.nix b/pkgs/by-name/li/libnetfilter_conntrack/default.nix index c424879..a543f4a 100644 --- a/pkgs/by-name/li/libnetfilter_conntrack/default.nix +++ b/pkgs/by-name/li/libnetfilter_conntrack/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libnfnetlink, libmnl }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + pkg-config, + libnfnetlink, + libmnl, +}: stdenv.mkDerivation rec { pname = "libnetfilter_conntrack"; diff --git a/pkgs/by-name/li/libnfnetlink/default.nix b/pkgs/by-name/li/libnfnetlink/default.nix index 3b6b804..897b257 100644 --- a/pkgs/by-name/li/libnfnetlink/default.nix +++ b/pkgs/by-name/li/libnfnetlink/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "libnfnetlink"; diff --git a/pkgs/by-name/li/libnftnl/default.nix b/pkgs/by-name/li/libnftnl/default.nix index b3e8c2f..d3853f2 100644 --- a/pkgs/by-name/li/libnftnl/default.nix +++ b/pkgs/by-name/li/libnftnl/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, pkg-config, libmnl }: +{ + lib, + stdenv, + fetchurl, + pkg-config, + libmnl, +}: stdenv.mkDerivation rec { version = "1.2.6"; diff --git a/pkgs/by-name/li/libnl/default.nix b/pkgs/by-name/li/libnl/default.nix index 68f4ee2..bbd09a2 100644 --- a/pkgs/by-name/li/libnl/default.nix +++ b/pkgs/by-name/li/libnl/default.nix @@ -1,19 +1,20 @@ -{ stdenv -, file -, lib -, fetchFromGitHub -, autoreconfHook -, bison -, flex -, pkg-config -, doxygen -, graphviz -, mscgen -, asciidoc -, sourceHighlight -, pythonSupport ? false -, swig ? null -, python ? null +{ + stdenv, + file, + lib, + fetchFromGitHub, + autoreconfHook, + bison, + flex, + pkg-config, + doxygen, + graphviz, + mscgen, + asciidoc, + sourceHighlight, + pythonSupport ? false, + swig ? null, + python ? null, }: stdenv.mkDerivation rec { @@ -23,11 +24,16 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { repo = "libnl"; owner = "thom311"; - rev = "libnl${lib.replaceStrings ["."] ["_"] version}"; + rev = "libnl${lib.replaceStrings [ "." ] [ "_" ] version}"; hash = "sha256-zVpoRlB5xDfo6wJkCJGGptuCXkNkriudtZF2Job9YD4="; }; - outputs = [ "bin" "dev" "out" "man" ] ++ lib.optional pythonSupport "py"; + outputs = [ + "bin" + "dev" + "out" + "man" + ] ++ lib.optional pythonSupport "py"; enableParallelBuilding = true; @@ -45,9 +51,9 @@ stdenv.mkDerivation rec { ] ++ lib.optional pythonSupport swig; postBuild = lib.optionalString (pythonSupport) '' - cd python - ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=../pythonlib - cd - + cd python + ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=../pythonlib + cd - ''; postFixup = lib.optionalString pythonSupport '' diff --git a/pkgs/by-name/li/libpcap/default.nix b/pkgs/by-name/li/libpcap/default.nix index db2ca67..a46ab8f 100644 --- a/pkgs/by-name/li/libpcap/default.nix +++ b/pkgs/by-name/li/libpcap/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchurl -, flex -, bison -, bluez -, libnl -, libxcrypt -, pkg-config -, withBluez ? false -, withRemote ? false +{ + lib, + stdenv, + fetchurl, + flex, + bison, + bluez, + libnl, + libxcrypt, + pkg-config, + withBluez ? false, + withRemote ? false, # for passthru.tests # , ettercap @@ -30,23 +31,20 @@ stdenv.mkDerivation rec { hash = "sha256-7RmgOD+tcuOtQ1/SOdfNgNZJFrhyaVUBWdIORxYOvl8="; }; - buildInputs = lib.optionals stdenv.isLinux [ libnl ] - ++ lib.optionals withRemote [ libxcrypt ]; + buildInputs = lib.optionals stdenv.isLinux [ libnl ] ++ lib.optionals withRemote [ libxcrypt ]; - nativeBuildInputs = [ flex bison ] - ++ lib.optionals stdenv.isLinux [ pkg-config ] - ++ lib.optionals withBluez [ bluez.dev ]; + nativeBuildInputs = [ + flex + bison + ] ++ lib.optionals stdenv.isLinux [ pkg-config ] ++ lib.optionals withBluez [ bluez.dev ]; # We need to force the autodetection because detection doesn't # work in pure build environments. - configureFlags = [ - "--with-pcap=${if stdenv.isLinux then "linux" else "bpf"}" - ] ++ lib.optionals stdenv.isDarwin [ - "--disable-universal" - ] ++ lib.optionals withRemote [ - "--enable-remote" - ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) - [ "ac_cv_linux_vers=2" ]; + configureFlags = + [ "--with-pcap=${if stdenv.isLinux then "linux" else "bpf"}" ] + ++ lib.optionals stdenv.isDarwin [ "--disable-universal" ] + ++ lib.optionals withRemote [ "--enable-remote" ] + ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ "ac_cv_linux_vers=2" ]; postInstall = '' if [ "$dontDisableStatic" -ne "1" ]; then diff --git a/pkgs/by-name/li/libpfm/default.nix b/pkgs/by-name/li/libpfm/default.nix index 0598fd6..8e6b5bc 100644 --- a/pkgs/by-name/li/libpfm/default.nix +++ b/pkgs/by-name/li/libpfm/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchurl -, enableShared ? !stdenv.hostPlatform.isStatic -, windows +{ + lib, + stdenv, + fetchurl, + enableShared ? !stdenv.hostPlatform.isStatic, + windows, }: stdenv.mkDerivation (finalAttrs: { @@ -46,7 +47,10 @@ stdenv.mkDerivation (finalAttrs: { (PMU) of modern processors. ''; license = licenses.gpl2; - maintainers = with maintainers; [ pierron t4ccer ]; + maintainers = with maintainers; [ + pierron + t4ccer + ]; platforms = platforms.linux ++ platforms.windows; }; }) diff --git a/pkgs/by-name/li/libpipeline/default.nix b/pkgs/by-name/li/libpipeline/default.nix index 3630980..f320ce4 100644 --- a/pkgs/by-name/li/libpipeline/default.nix +++ b/pkgs/by-name/li/libpipeline/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "libpipeline"; diff --git a/pkgs/by-name/li/libpkgconf/default.nix b/pkgs/by-name/li/libpkgconf/default.nix index bfa79f3..86bf6f9 100644 --- a/pkgs/by-name/li/libpkgconf/default.nix +++ b/pkgs/by-name/li/libpkgconf/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchurl -, removeReferencesTo +{ + lib, + stdenv, + fetchurl, + removeReferencesTo, }: stdenv.mkDerivation (finalAttrs: { @@ -13,7 +14,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OiJPKszwkbd6V4Exbie57juoLAg8wuU54IlAtopE/sU="; }; - outputs = [ "out" "lib" "dev" "man" "doc" ]; + outputs = [ + "out" + "lib" + "dev" + "man" + "doc" + ]; nativeBuildInputs = [ removeReferencesTo ]; @@ -22,23 +29,24 @@ stdenv.mkDerivation (finalAttrs: { # Debian has outputs like these too # (https://packages.debian.org/source/bullseye/pkgconf), so it is safe to # remove those references - postFixup = '' - remove-references-to \ - -t "${placeholder "out"}" \ - "${placeholder "lib"}"/lib/* - remove-references-to \ - -t "${placeholder "dev"}" \ - "${placeholder "lib"}"/lib/* \ - "${placeholder "out"}"/bin/* - '' - # Move back share/aclocal. Yes, this normally goes in the dev output for good - # reason, but in this case the dev output is for the `libpkgconf` library, - # while the aclocal stuff is for the tool. The tool is already for use during - # development, so there is no reason to have separate "dev-bin" and "dev-lib" - # outputs or something. - + '' - mv ${placeholder "dev"}/share ${placeholder "out"} - ''; + postFixup = + '' + remove-references-to \ + -t "${placeholder "out"}" \ + "${placeholder "lib"}"/lib/* + remove-references-to \ + -t "${placeholder "dev"}" \ + "${placeholder "lib"}"/lib/* \ + "${placeholder "out"}"/bin/* + '' + # Move back share/aclocal. Yes, this normally goes in the dev output for good + # reason, but in this case the dev output is for the `libpkgconf` library, + # while the aclocal stuff is for the tool. The tool is already for use during + # development, so there is no reason to have separate "dev-bin" and "dev-lib" + # outputs or something. + + '' + mv ${placeholder "dev"}/share ${placeholder "out"} + ''; meta = { homepage = "https://github.com/pkgconf/pkgconf"; @@ -55,7 +63,10 @@ stdenv.mkDerivation (finalAttrs: { changelog = "https://github.com/pkgconf/pkgconf/blob/pkgconf-${finalAttrs.version}/NEWS"; license = lib.licenses.isc; mainProgram = "pkgconf"; - maintainers = with lib.maintainers; [ zaninime AndersonTorres ]; + maintainers = with lib.maintainers; [ + zaninime + AndersonTorres + ]; platforms = lib.platforms.all; }; }) diff --git a/pkgs/by-name/li/libpkgconf/packages.nix b/pkgs/by-name/li/libpkgconf/packages.nix index aab7186..826534a 100644 --- a/pkgs/by-name/li/libpkgconf/packages.nix +++ b/pkgs/by-name/li/libpkgconf/packages.nix @@ -1,10 +1,9 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libpkgconf = callPackage ./. { }; - + pkgconf-unwrapped = libpkgconf; pkgconf = callPackage (path + "/pkgs/build-support/pkg-config-wrapper") { diff --git a/pkgs/by-name/li/libpng/12.nix b/pkgs/by-name/li/libpng/12.nix index e94bd02..acca892 100644 --- a/pkgs/by-name/li/libpng/12.nix +++ b/pkgs/by-name/li/libpng/12.nix @@ -1,5 +1,9 @@ -{ lib, stdenv, fetchurl, zlib -, testers +{ + lib, + stdenv, + fetchurl, + zlib, + testers, }: assert stdenv.hostPlatform == stdenv.buildPlatform -> zlib != null; @@ -13,7 +17,11 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"; }; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; propagatedBuildInputs = [ zlib ]; @@ -33,7 +41,10 @@ stdenv.mkDerivation (finalAttrs: { license = licenses.libpng; maintainers = [ ]; branch = "1.2"; - pkgConfigModules = [ "libpng" "libpng12" ]; + pkgConfigModules = [ + "libpng" + "libpng12" + ]; platforms = platforms.unix; }; }) diff --git a/pkgs/by-name/li/libpng/default.nix b/pkgs/by-name/li/libpng/default.nix index 34d7a3e..3a903ea 100644 --- a/pkgs/by-name/li/libpng/default.nix +++ b/pkgs/by-name/li/libpng/default.nix @@ -1,5 +1,10 @@ -{ lib, stdenv, fetchurl, zlib, apngSupport ? true -, testers +{ + lib, + stdenv, + fetchurl, + zlib, + apngSupport ? true, + testers, }: assert zlib != null; @@ -12,7 +17,8 @@ let }; whenPatched = lib.optionalString apngSupport; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "libpng" + whenPatched "-apng"; version = "1.6.43"; @@ -22,7 +28,11 @@ in stdenv.mkDerivation (finalAttrs: { }; postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; outputBin = "dev"; propagatedBuildInputs = [ zlib ]; @@ -36,11 +46,16 @@ in stdenv.mkDerivation (finalAttrs: { }; meta = with lib; { - description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch"; + description = + "The official reference implementation for the PNG file format" + + whenPatched " with animation patch"; homepage = "http://www.libpng.org/pub/png/libpng.html"; changelog = "https://github.com/pnggroup/libpng/blob/v${finalAttrs.version}/CHANGES"; license = licenses.libpng2; - pkgConfigModules = [ "libpng" "libpng16" ]; + pkgConfigModules = [ + "libpng" + "libpng16" + ]; platforms = platforms.all; maintainers = with maintainers; [ vcunat ]; }; diff --git a/pkgs/by-name/li/libpng/packages.nix b/pkgs/by-name/li/libpng/packages.nix index f5aeb36..a146ad3 100644 --- a/pkgs/by-name/li/libpng/packages.nix +++ b/pkgs/by-name/li/libpng/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libpng = callPackage ./. { }; libpng12 = callPackage ./12.nix { }; } diff --git a/pkgs/by-name/li/libpsl/default.nix b/pkgs/by-name/li/libpsl/default.nix index e875864..951e9da 100644 --- a/pkgs/by-name/li/libpsl/default.nix +++ b/pkgs/by-name/li/libpsl/default.nix @@ -1,17 +1,19 @@ -{ lib, stdenv -, fetchurl -, autoreconfHook -, docbook_xsl -, docbook_xml_dtd_43 -, gtk-doc -, lzip -, libidn2 -, libunistring -, libxslt -, pkg-config -, python3 -# , valgrind -, publicsuffix-list +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + docbook_xsl, + docbook_xml_dtd_43, + gtk-doc, + lzip, + libidn2, + libunistring, + libxslt, + pkg-config, + python3, + # , valgrind + publicsuffix-list, }: stdenv.mkDerivation rec { @@ -24,7 +26,11 @@ stdenv.mkDerivation rec { }; # bin/psl-make-dafsa brings a large runtime closure through python3 - outputs = [ "bin" "out" "dev" ]; + outputs = [ + "bin" + "out" + "dev" + ]; nativeBuildInputs = [ autoreconfHook @@ -43,9 +49,7 @@ stdenv.mkDerivation rec { libxslt ]; - propagatedBuildInputs = [ - publicsuffix-list - ]; + propagatedBuildInputs = [ publicsuffix-list ]; postPatch = '' patchShebangs src/psl-make-dafsa diff --git a/pkgs/by-name/li/libraw/default.nix b/pkgs/by-name/li/libraw/default.nix index f840641..4526fe6 100644 --- a/pkgs/by-name/li/libraw/default.nix +++ b/pkgs/by-name/li/libraw/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, lcms2 -, pkg-config +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + lcms2, + pkg-config, # for passthru.tests # , deepin @@ -24,11 +25,19 @@ stdenv.mkDerivation rec { hash = "sha256-p9CmOCulvV7+KKn1lXwpcysOo0+mD5UgPqy2ki0cIFE="; }; - outputs = [ "out" "lib" "dev" "doc" ]; + outputs = [ + "out" + "lib" + "dev" + "doc" + ]; propagatedBuildInputs = [ lcms2 ]; - nativeBuildInputs = [ autoreconfHook pkg-config ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; enableParallelBuilding = true; @@ -41,8 +50,10 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)"; homepage = "https://www.libraw.org/"; - license = with licenses; [ cddl lgpl2Plus ]; + license = with licenses; [ + cddl + lgpl2Plus + ]; platforms = platforms.unix; }; } - diff --git a/pkgs/by-name/li/librsvg/default.nix b/pkgs/by-name/li/librsvg/default.nix index ee840b8..c1f94aa 100644 --- a/pkgs/by-name/li/librsvg/default.nix +++ b/pkgs/by-name/li/librsvg/default.nix @@ -1,52 +1,56 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, glib -, gdk-pixbuf -, installShellFiles -, pango -, cairo -, libxml2 -, bzip2 -, libintl -, ApplicationServices -, Foundation -, libobjc -, rustPlatform -, rustc -, cargo-auditable-cargo-wrapper -, gi-docgen -, python3Packages -, gnome -, vala -, writeScript -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, buildPackages -, gobject-introspection -, _experimental-update-script-combinators -, common-updater-scripts -, jq -, nix +{ + lib, + stdenv, + fetchurl, + pkg-config, + glib, + gdk-pixbuf, + installShellFiles, + pango, + cairo, + libxml2, + bzip2, + libintl, + ApplicationServices, + Foundation, + libobjc, + rustPlatform, + rustc, + cargo-auditable-cargo-wrapper, + gi-docgen, + python3Packages, + gnome, + vala, + writeScript, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + buildPackages, + gobject-introspection, + _experimental-update-script-combinators, + common-updater-scripts, + jq, + nix, -# for passthru.tests -, enlightenment -, ffmpeg -, gegl -, gimp -, imagemagick -, imlib2 -, vips -, xfce + # for passthru.tests + enlightenment, + ffmpeg, + gegl, + gimp, + imagemagick, + imlib2, + vips, + xfce, }: stdenv.mkDerivation (finalAttrs: { pname = "librsvg"; version = "2.58.0"; - outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [ - "devdoc" - ]; + outputs = [ + "out" + "dev" + ] ++ lib.optionals withIntrospection [ "devdoc" ]; src = fetchurl { url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz"; @@ -63,35 +67,37 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - gdk-pixbuf - installShellFiles - pkg-config - rustc - cargo-auditable-cargo-wrapper - python3Packages.docutils - vala - rustPlatform.cargoSetupHook - ] ++ lib.optionals withIntrospection [ - gobject-introspection - gi-docgen - ]; + nativeBuildInputs = + [ + gdk-pixbuf + installShellFiles + pkg-config + rustc + cargo-auditable-cargo-wrapper + python3Packages.docutils + vala + rustPlatform.cargoSetupHook + ] + ++ lib.optionals withIntrospection [ + gobject-introspection + gi-docgen + ]; - buildInputs = [ - libxml2 - bzip2 - pango - libintl - vala # for share/vala/Makefile.vapigen - ] ++ lib.optionals stdenv.isDarwin [ - ApplicationServices - Foundation - libobjc - ]; + buildInputs = + [ + libxml2 + bzip2 + pango + libintl + vala # for share/vala/Makefile.vapigen + ] + ++ lib.optionals stdenv.isDarwin [ + ApplicationServices + Foundation + libobjc + ]; propagatedBuildInputs = [ glib @@ -99,13 +105,17 @@ stdenv.mkDerivation (finalAttrs: { cairo ]; - configureFlags = [ - (lib.enableFeature withIntrospection "introspection") - (lib.enableFeature withIntrospection "vala") + configureFlags = + [ + (lib.enableFeature withIntrospection "introspection") + (lib.enableFeature withIntrospection "vala") - "--enable-always-build-tests" - ] ++ lib.optional stdenv.isDarwin "--disable-Bsymbolic" - ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "RUST_TARGET=${stdenv.hostPlatform.rust.rustcTarget}"; + "--enable-always-build-tests" + ] + ++ lib.optional stdenv.isDarwin "--disable-Bsymbolic" + ++ lib.optional ( + stdenv.buildPlatform != stdenv.hostPlatform + ) "RUST_TARGET=${stdenv.hostPlatform.rust.rustcTarget}"; doCheck = false; # all tests fail on libtool-generated rsvg-convert not being able to find coreutils @@ -115,9 +125,7 @@ stdenv.mkDerivation (finalAttrs: { # librsvg only links Foundation, but it also requiers libobjc. The Framework.tbd in the 11.0 SDK # reexports libobjc, but the one in the 10.12 SDK does not, so link it manually. - env = lib.optionalAttrs (stdenv.isDarwin && stdenv.isx86_64) { - NIX_LDFLAGS = "-lobjc"; - }; + env = lib.optionalAttrs (stdenv.isDarwin && stdenv.isx86_64) { NIX_LDFLAGS = "-lobjc"; }; preConfigure = '' PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)" @@ -129,28 +137,39 @@ stdenv.mkDerivation (finalAttrs: { # relevant loader.cache here. # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to # point to this file in a wrapper. - postConfigure = '' - GDK_PIXBUF=$out/lib/gdk-pixbuf-2.0/2.10.0 - mkdir -p $GDK_PIXBUF/loaders - sed -i gdk-pixbuf-loader/Makefile \ - -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \ - -e "s#gdk_pixbuf_cache_file = .*#gdk_pixbuf_cache_file = $GDK_PIXBUF/loaders.cache#" \ - -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" + postConfigure = + '' + GDK_PIXBUF=$out/lib/gdk-pixbuf-2.0/2.10.0 + mkdir -p $GDK_PIXBUF/loaders + sed -i gdk-pixbuf-loader/Makefile \ + -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \ + -e "s#gdk_pixbuf_cache_file = .*#gdk_pixbuf_cache_file = $GDK_PIXBUF/loaders.cache#" \ + -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" - # Fix thumbnailer path - sed -e "s#@bindir@\(/gdk-pixbuf-thumbnailer\)#${gdk-pixbuf}/bin\1#g" \ - -i gdk-pixbuf-loader/librsvg.thumbnailer.in + # Fix thumbnailer path + sed -e "s#@bindir@\(/gdk-pixbuf-thumbnailer\)#${gdk-pixbuf}/bin\1#g" \ + -i gdk-pixbuf-loader/librsvg.thumbnailer.in - # 'error: linker `cc` not found' when cross-compiling - export RUSTFLAGS="-Clinker=$CC" - '' + lib.optionalString ((stdenv.buildPlatform != stdenv.hostPlatform) && (stdenv.hostPlatform.emulatorAvailable buildPackages)) '' - # the replacement is the native conditional - substituteInPlace gdk-pixbuf-loader/Makefile \ - --replace 'RUN_QUERY_LOADER_TEST = false' 'RUN_QUERY_LOADER_TEST = test -z "$(DESTDIR)"' \ - ''; + # 'error: linker `cc` not found' when cross-compiling + export RUSTFLAGS="-Clinker=$CC" + '' + + + lib.optionalString + ( + (stdenv.buildPlatform != stdenv.hostPlatform) + && (stdenv.hostPlatform.emulatorAvailable buildPackages) + ) + '' + # the replacement is the native conditional + substituteInPlace gdk-pixbuf-loader/Makefile \ + --replace 'RUN_QUERY_LOADER_TEST = false' 'RUN_QUERY_LOADER_TEST = test -z "$(DESTDIR)"' \ + ''; # Not generated when cross compiling. - postInstall = let emulator = stdenv.hostPlatform.emulator buildPackages; in + postInstall = + let + emulator = stdenv.hostPlatform.emulator buildPackages; + in lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) '' # Merge gdkpixbuf and librsvg loaders cat ${lib.getLib gdk-pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache > $GDK_PIXBUF/loaders.cache.tmp @@ -170,27 +189,29 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = let - updateSource = gnome.updateScript { - packageName = "librsvg"; - }; + updateSource = gnome.updateScript { packageName = "librsvg"; }; updateLockfile = { command = [ "sh" "-c" '' - PATH=${lib.makeBinPath [ - common-updater-scripts - jq - nix - ]} + PATH=${ + lib.makeBinPath [ + common-updater-scripts + jq + nix + ] + } # update-source-version does not allow updating to the same version so we need to clear it temporarily. # Get the current version so that we can restore it later. latestVersion=$(nix-instantiate --eval -A librsvg.version | jq --raw-output) # Clear the version. Provide hash so that we do not need to do pointless TOFU. # Needs to be a fake SRI hash that is non-zero, since u-s-v uses zero as a placeholder. # Also cannot be here verbatim or u-s-v would be confused what to replace. - update-source-version librsvg 0 "sha256-${lib.fixedWidthString 44 "B" "="}" --source-key=cargoDeps > /dev/null + update-source-version librsvg 0 "sha256-${ + lib.fixedWidthString 44 "B" "=" + }" --source-key=cargoDeps > /dev/null update-source-version librsvg "$latestVersion" --source-key=cargoDeps > /dev/null '' ]; @@ -208,7 +229,8 @@ stdenv.mkDerivation (finalAttrs: { gimp imagemagick imlib2 - vips; + vips + ; inherit (enlightenment) efl; inherit (xfce) xfwm4; ffmpeg = ffmpeg.override { withSvg = true; }; diff --git a/pkgs/by-name/li/librsvg/packages.nix b/pkgs/by-name/li/librsvg/packages.nix index 69bb6bf..0fddf00 100644 --- a/pkgs/by-name/li/librsvg/packages.nix +++ b/pkgs/by-name/li/librsvg/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { librsvg = callPackage ../development/libraries/librsvg { inherit (darwin) libobjc; inherit (darwin.apple_sdk.frameworks) ApplicationServices Foundation; diff --git a/pkgs/by-name/li/libseccomp/default.nix b/pkgs/by-name/li/libseccomp/default.nix index 19ba1f2..19f20ae 100644 --- a/pkgs/by-name/li/libseccomp/default.nix +++ b/pkgs/by-name/li/libseccomp/default.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchurl, getopt, util-linuxMinimal, which, gperf, nix-update-script }: +{ + lib, + stdenv, + fetchurl, + getopt, + util-linuxMinimal, + which, + gperf, + nix-update-script, +}: stdenv.mkDerivation rec { pname = "libseccomp"; @@ -9,7 +18,13 @@ stdenv.mkDerivation rec { hash = "sha256-JIosik2bmFiqa69ScSw0r+/PnJ6Ut23OAsHJqiX7M3U="; }; - outputs = [ "out" "lib" "dev" "man" "pythonsrc" ]; + outputs = [ + "out" + "lib" + "dev" + "man" + "pythonsrc" + ]; nativeBuildInputs = [ gperf ]; buildInputs = [ getopt ]; @@ -18,7 +33,10 @@ stdenv.mkDerivation rec { patchShebangs . ''; - nativeCheckInputs = [ util-linuxMinimal which ]; + nativeCheckInputs = [ + util-linuxMinimal + which + ]; doCheck = true; # Hack to ensure that patchelf --shrink-rpath get rids of a $TMPDIR reference. diff --git a/pkgs/by-name/li/libsecret/default.nix b/pkgs/by-name/li/libsecret/default.nix index 040722e..c3ec353 100644 --- a/pkgs/by-name/li/libsecret/default.nix +++ b/pkgs/by-name/li/libsecret/default.nix @@ -1,65 +1,67 @@ -{ stdenv -, lib -, fetchurl -, glib -, meson -, ninja -, pkg-config -, gettext -, libxslt -, python3 -, docbook-xsl-nons -, docbook_xml_dtd_42 -, libgcrypt -, gobject-introspection -, buildPackages -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, vala -, gi-docgen -, gnome -, gjs -, libintl -, dbus +{ + stdenv, + lib, + fetchurl, + glib, + meson, + ninja, + pkg-config, + gettext, + libxslt, + python3, + docbook-xsl-nons, + docbook_xml_dtd_42, + libgcrypt, + gobject-introspection, + buildPackages, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + vala, + gi-docgen, + gnome, + gjs, + libintl, + dbus, }: stdenv.mkDerivation rec { pname = "libsecret"; version = "0.21.4"; - outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc"; + outputs = [ + "out" + "dev" + ] ++ lib.optional withIntrospection "devdoc"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; hash = "sha256-Fj0I14O+bUq5qXnOtaT+y8HZZg08NBaMWBMBzVORKyA="; }; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - meson - ninja - pkg-config - gettext - libxslt # for xsltproc for building man pages - docbook-xsl-nons - docbook_xml_dtd_42 - libintl - vala - glib - ] ++ lib.optionals withIntrospection [ - gi-docgen - gobject-introspection - ]; + nativeBuildInputs = + [ + meson + ninja + pkg-config + gettext + libxslt # for xsltproc for building man pages + docbook-xsl-nons + docbook_xml_dtd_42 + libintl + vala + glib + ] + ++ lib.optionals withIntrospection [ + gi-docgen + gobject-introspection + ]; - buildInputs = [ - libgcrypt - ]; + buildInputs = [ libgcrypt ]; - propagatedBuildInputs = [ - glib - ]; + propagatedBuildInputs = [ glib ]; nativeCheckInputs = [ python3 diff --git a/pkgs/by-name/li/libselinux/default.nix b/pkgs/by-name/li/libselinux/default.nix index c0711f6..51ba5d8 100644 --- a/pkgs/by-name/li/libselinux/default.nix +++ b/pkgs/by-name/li/libselinux/default.nix @@ -1,7 +1,17 @@ -{ lib, stdenv, fetchurl, fetchpatch, buildPackages, pcre2, pkg-config, libsepol -, enablePython ? !stdenv.hostPlatform.isStatic -, swig ? null, python3 ? null, python3Packages -, fts +{ + lib, + stdenv, + fetchurl, + fetchpatch, + buildPackages, + pcre2, + pkg-config, + libsepol, + enablePython ? !stdenv.hostPlatform.isStatic, + swig ? null, + python3 ? null, + python3Packages, + fts, }: assert enablePython -> swig != null && python3 != null; @@ -13,7 +23,12 @@ stdenv.mkDerivation rec { version = "3.6"; inherit (libsepol) se_url; - outputs = [ "bin" "out" "dev" "man" ] ++ optional enablePython "py"; + outputs = [ + "bin" + "out" + "dev" + "man" + ] ++ optional enablePython "py"; src = fetchurl { url = "${se_url}/${version}/libselinux-${version}.tar.gz"; @@ -46,13 +61,22 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ pkg-config python3 ] ++ optionals enablePython [ - python3Packages.pip - python3Packages.setuptools - python3Packages.wheel - swig - ]; - buildInputs = [ libsepol pcre2 fts ] ++ optionals enablePython [ python3 ]; + nativeBuildInputs = + [ + pkg-config + python3 + ] + ++ optionals enablePython [ + python3Packages.pip + python3Packages.setuptools + python3Packages.wheel + swig + ]; + buildInputs = [ + libsepol + pcre2 + fts + ] ++ optionals enablePython [ python3 ]; # drop fortify here since package uses it by default, leading to compile error: # command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror] @@ -60,27 +84,27 @@ stdenv.mkDerivation rec { env.NIX_CFLAGS_COMPILE = "-Wno-error -D_FILE_OFFSET_BITS=64"; - makeFlags = [ - "PREFIX=$(out)" - "INCDIR=$(dev)/include/selinux" - "INCLUDEDIR=$(dev)/include" - "MAN3DIR=$(man)/share/man/man3" - "MAN5DIR=$(man)/share/man/man5" - "MAN8DIR=$(man)/share/man/man8" - "SBINDIR=$(bin)/sbin" - "SHLIBDIR=$(out)/lib" + makeFlags = + [ + "PREFIX=$(out)" + "INCDIR=$(dev)/include/selinux" + "INCLUDEDIR=$(dev)/include" + "MAN3DIR=$(man)/share/man/man3" + "MAN5DIR=$(man)/share/man/man5" + "MAN8DIR=$(man)/share/man/man8" + "SBINDIR=$(bin)/sbin" + "SHLIBDIR=$(out)/lib" - "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" - "ARCH=${stdenv.hostPlatform.linuxArch}" - ] ++ optionals (fts != null) [ - "FTS_LDLIBS=-lfts" - ] ++ optionals stdenv.hostPlatform.isStatic [ - "DISABLE_SHARED=y" - ] ++ optionals enablePython [ - "PYTHON=${python3.pythonOnBuildForHost.interpreter}" - "PYTHONLIBDIR=$(py)/${python3.sitePackages}" - "PYTHON_SETUP_ARGS=--no-build-isolation" - ]; + "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a" + "ARCH=${stdenv.hostPlatform.linuxArch}" + ] + ++ optionals (fts != null) [ "FTS_LDLIBS=-lfts" ] + ++ optionals stdenv.hostPlatform.isStatic [ "DISABLE_SHARED=y" ] + ++ optionals enablePython [ + "PYTHON=${python3.pythonOnBuildForHost.interpreter}" + "PYTHONLIBDIR=$(py)/${python3.sitePackages}" + "PYTHON_SETUP_ARGS=--no-build-isolation" + ]; postPatch = lib.optionalString stdenv.hostPlatform.isMusl '' substituteInPlace src/procattr.c \ @@ -93,7 +117,7 @@ stdenv.mkDerivation rec { installTargets = [ "install" ] ++ optional enablePython "install-pywrap"; - meta = removeAttrs libsepol.meta ["outputsToInstall"] // { + meta = removeAttrs libsepol.meta [ "outputsToInstall" ] // { description = "SELinux core library"; }; } diff --git a/pkgs/by-name/li/libsepol/default.nix b/pkgs/by-name/li/libsepol/default.nix index 548d522..ef95209 100644 --- a/pkgs/by-name/li/libsepol/default.nix +++ b/pkgs/by-name/li/libsepol/default.nix @@ -1,11 +1,22 @@ -{ lib, stdenv, fetchurl, fetchpatch, flex }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + flex, +}: stdenv.mkDerivation rec { pname = "libsepol"; version = "3.6"; se_url = "https://github.com/SELinuxProject/selinux/releases/download"; - outputs = [ "bin" "out" "dev" "man" ]; + outputs = [ + "bin" + "out" + "dev" + "man" + ]; src = fetchurl { url = "${se_url}/${version}/libsepol-${version}.tar.gz"; @@ -33,7 +44,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - passthru = { inherit se_url; }; + passthru = { + inherit se_url; + }; meta = with lib; { description = "SELinux binary policy manipulation library"; diff --git a/pkgs/by-name/li/libsigsegv/default.nix b/pkgs/by-name/li/libsigsegv/default.nix index 84c2f19..7f64f4b 100644 --- a/pkgs/by-name/li/libsigsegv/default.nix +++ b/pkgs/by-name/li/libsigsegv/default.nix @@ -1,5 +1,8 @@ -{ lib, stdenv, fetchurl -, enableSigbusFix ? false # required by kernels < 3.18.6 +{ + lib, + stdenv, + fetchurl, + enableSigbusFix ? false, # required by kernels < 3.18.6 }: stdenv.mkDerivation rec { diff --git a/pkgs/by-name/li/libsodium/default.nix b/pkgs/by-name/li/libsodium/default.nix index 4570b10..89a2b1c 100644 --- a/pkgs/by-name/li/libsodium/default.nix +++ b/pkgs/by-name/li/libsodium/default.nix @@ -1,5 +1,10 @@ -{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook -, testers +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -11,14 +16,17 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-AY15/goEXMoHMx03vQy1ey6DjFG8SP2DehRy5QBou+o="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; patches = [ # Drop -Ofast as it breaks floating point arithmetics in downstream # users. (fetchpatch { name = "drop-Ofast.patch"; - url = "https://github.com/jedisct1/libsodium/commit/ffd1e374989197b44d815ac8b5d8f0b43b6ce534.patch"; + url = "https://github.com/jedisct1/libsodium/commit/ffd1e374989197b44d815ac8b5d8f0b43b6ce534.patch"; hash = "sha256-jG0VirIoFBwYmRx6zHSu2xe6pXYwbeqNVhPJxO6eJEY="; }) ]; @@ -28,11 +36,15 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl"; enableParallelBuilding = true; - hardeningDisable = lib.optional (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_32) "stackprotector"; + hardeningDisable = lib.optional ( + stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_32 + ) "stackprotector"; # FIXME: the hardeingDisable attr above does not seems effective, so # the need to disable stackprotector via configureFlags - configureFlags = lib.optional (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_32) "--disable-ssp"; + configureFlags = lib.optional ( + stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_32 + ) "--disable-ssp"; doCheck = true; diff --git a/pkgs/by-name/li/libsoup/3.x.nix b/pkgs/by-name/li/libsoup/3.x.nix index 4d5f30c..3cb8d34 100644 --- a/pkgs/by-name/li/libsoup/3.x.nix +++ b/pkgs/by-name/li/libsoup/3.x.nix @@ -1,50 +1,56 @@ -{ stdenv -, lib -, fetchurl -, glib -, meson -, ninja -, pkg-config -, gnome -, libsysprof-capture -, sqlite -, buildPackages -, gobject-introspection -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, vala -, libpsl -, python3 -, gi-docgen -, brotli -, libnghttp2 +{ + stdenv, + lib, + fetchurl, + glib, + meson, + ninja, + pkg-config, + gnome, + libsysprof-capture, + sqlite, + buildPackages, + gobject-introspection, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + vala, + libpsl, + python3, + gi-docgen, + brotli, + libnghttp2, }: stdenv.mkDerivation rec { pname = "libsoup"; version = "3.4.4"; - outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc"; + outputs = [ + "out" + "dev" + ] ++ lib.optional withIntrospection "devdoc"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "sha256-KRxncl827ZDqQ+//JQZLacWi0ZgUiEd8BcSBo7Swxao="; }; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - meson - ninja - pkg-config - glib - python3 - ] ++ lib.optionals withIntrospection [ - gi-docgen - gobject-introspection - vala - ]; + nativeBuildInputs = + [ + meson + ninja + pkg-config + glib + python3 + ] + ++ lib.optionals withIntrospection [ + gi-docgen + gobject-introspection + vala + ]; buildInputs = [ sqlite @@ -52,13 +58,9 @@ stdenv.mkDerivation rec { glib.out brotli libnghttp2 - ] ++ lib.optionals stdenv.isLinux [ - libsysprof-capture - ]; + ] ++ lib.optionals stdenv.isLinux [ libsysprof-capture ]; - propagatedBuildInputs = [ - glib - ]; + propagatedBuildInputs = [ glib ]; mesonFlags = [ "-Dtls_check=false" # glib-networking is a runtime dependency, not a compile-time dependency diff --git a/pkgs/by-name/li/libsoup/default.nix b/pkgs/by-name/li/libsoup/default.nix index e92c59b..6b38bb9 100644 --- a/pkgs/by-name/li/libsoup/default.nix +++ b/pkgs/by-name/li/libsoup/default.nix @@ -1,56 +1,60 @@ -{ stdenv -, lib -, fetchurl -, glib -, libxml2 -, meson -, ninja -, pkg-config -, gnome -, libsysprof-capture -, gobject-introspection -, vala -, libpsl -, brotli -, gnomeSupport ? true -, sqlite -, buildPackages -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages +{ + stdenv, + lib, + fetchurl, + glib, + libxml2, + meson, + ninja, + pkg-config, + gnome, + libsysprof-capture, + gobject-introspection, + vala, + libpsl, + brotli, + gnomeSupport ? true, + sqlite, + buildPackages, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, }: stdenv.mkDerivation rec { pname = "libsoup"; version = "2.74.3"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "sha256-5Ld8Qc/EyMWgNfzcMgx7xs+3XvfFoDQVPfFBP6HZLxM="; }; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - meson - ninja - pkg-config - glib - ] ++ lib.optionals withIntrospection [ - gobject-introspection - vala - ]; + nativeBuildInputs = + [ + meson + ninja + pkg-config + glib + ] + ++ lib.optionals withIntrospection [ + gobject-introspection + vala + ]; buildInputs = [ sqlite libpsl glib.out brotli - ] ++ lib.optionals stdenv.isLinux [ - libsysprof-capture - ]; + ] ++ lib.optionals stdenv.isLinux [ libsysprof-capture ]; propagatedBuildInputs = [ glib @@ -64,9 +68,7 @@ stdenv.mkDerivation rec { "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}" "-Dgnome=${lib.boolToString gnomeSupport}" "-Dntlm=disabled" - ] ++ lib.optionals (!stdenv.isLinux) [ - "-Dsysprof=disabled" - ]; + ] ++ lib.optionals (!stdenv.isLinux) [ "-Dsysprof=disabled" ]; env.NIX_CFLAGS_COMPILE = "-lpthread"; diff --git a/pkgs/by-name/li/libspectre/default.nix b/pkgs/by-name/li/libspectre/default.nix index 9299e4d..8267ece 100644 --- a/pkgs/by-name/li/libspectre/default.nix +++ b/pkgs/by-name/li/libspectre/default.nix @@ -1,4 +1,11 @@ -{ fetchurl, lib, stdenv, pkg-config, ghostscript, cairo }: +{ + fetchurl, + lib, + stdenv, + pkg-config, + ghostscript, + cairo, +}: stdenv.mkDerivation rec { pname = "libspectre"; @@ -18,9 +25,7 @@ stdenv.mkDerivation rec { doCheck = true; - checkInputs = [ - cairo - ]; + checkInputs = [ cairo ]; meta = { homepage = "http://libspectre.freedesktop.org/"; diff --git a/pkgs/by-name/li/libssh2/default.nix b/pkgs/by-name/li/libssh2/default.nix index f7a51da..9e24cc6 100644 --- a/pkgs/by-name/li/libssh2/default.nix +++ b/pkgs/by-name/li/libssh2/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, openssl, zlib, windows }: +{ + lib, + stdenv, + fetchurl, + openssl, + zlib, + windows, +}: stdenv.mkDerivation rec { pname = "libssh2"; @@ -15,17 +22,23 @@ stdenv.mkDerivation rec { ./CVE-2023-48795.patch ]; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ + "out" + "dev" + "devdoc" + ]; propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc - buildInputs = [ zlib ] - ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64; + buildInputs = [ zlib ] ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64; meta = with lib; { description = "A client-side C library implementing the SSH2 protocol"; homepage = "https://www.libssh2.org"; platforms = platforms.all; - license = with licenses; [ bsd3 libssh2 ]; + license = with licenses; [ + bsd3 + libssh2 + ]; maintainers = with maintainers; [ SuperSandro2000 ]; }; } diff --git a/pkgs/by-name/li/libstemmer/default.nix b/pkgs/by-name/li/libstemmer/default.nix index 3f66ee9..2df6401 100644 --- a/pkgs/by-name/li/libstemmer/default.nix +++ b/pkgs/by-name/li/libstemmer/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, perl, buildPackages }: +{ + lib, + stdenv, + fetchFromGitHub, + perl, + buildPackages, +}: stdenv.mkDerivation rec { pname = "libstemmer"; @@ -13,12 +19,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ perl ]; - prePatch = '' - patchShebangs . - '' + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - substituteInPlace GNUmakefile \ - --replace './snowball' '${lib.getBin buildPackages.libstemmer}/bin/snowball' - ''; + prePatch = + '' + patchShebangs . + '' + + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + substituteInPlace GNUmakefile \ + --replace './snowball' '${lib.getBin buildPackages.libstemmer}/bin/snowball' + ''; makeTarget = "libstemmer.a"; diff --git a/pkgs/by-name/li/libtiff/default.nix b/pkgs/by-name/li/libtiff/default.nix index 10363e7..cf6090b 100644 --- a/pkgs/by-name/li/libtiff/default.nix +++ b/pkgs/by-name/li/libtiff/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, fetchFromGitLab -# , nix-update-script +{ + lib, + stdenv, + fetchFromGitLab, + # , nix-update-script -, autoreconfHook -, pkg-config -, sphinx + autoreconfHook, + pkg-config, + sphinx, -, lerc -, libdeflate -, libjpeg -, xz -, zlib + lerc, + libdeflate, + libjpeg, + xz, + zlib, - # for passthru.tests +# for passthru.tests # , libgeotiff # , python3Packages # , imagemagick @@ -47,7 +48,14 @@ stdenv.mkDerivation (finalAttrs: { mv VERSION VERSION.txt ''; - outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "dev_private" + "out" + "man" + "doc" + ]; postFixup = '' moveToOutput include/tif_config.h $dev_private @@ -58,12 +66,14 @@ stdenv.mkDerivation (finalAttrs: { # If you want to change to a different build system, please make # sure cross-compilation works first! - nativeBuildInputs = [ autoreconfHook pkg-config sphinx ]; - - buildInputs = [ - lerc + nativeBuildInputs = [ + autoreconfHook + pkg-config + sphinx ]; + buildInputs = [ lerc ]; + # TODO: opengl support (bogus configure detection) propagatedBuildInputs = [ libdeflate @@ -94,6 +104,6 @@ stdenv.mkDerivation (finalAttrs: { license = licenses.libtiff; platforms = platforms.unix ++ platforms.windows; pkgConfigModules = [ "libtiff-4" ]; - maintainers = []; + maintainers = [ ]; }; }) diff --git a/pkgs/by-name/li/libtiff/libtiff_t.nix b/pkgs/by-name/li/libtiff/libtiff_t.nix index 37e48f6..754b5dc 100644 --- a/pkgs/by-name/li/libtiff/libtiff_t.nix +++ b/pkgs/by-name/li/libtiff/libtiff_t.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchzip +{ + lib, + stdenv, + fetchzip, -, autoreconfHook -, pkg-config -, sphinx + autoreconfHook, + pkg-config, + sphinx, -, libdeflate -, libjpeg -, xz -, zlib + libdeflate, + libjpeg, + xz, + zlib, }: # This is a fork created by the hylafaxplus developer to @@ -36,7 +37,14 @@ stdenv.mkDerivation (finalAttrs: { mv VERSION VERSION.txt ''; - outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "dev_private" + "out" + "man" + "doc" + ]; postFixup = '' moveToOutput include/tif_config.h $dev_private @@ -47,7 +55,11 @@ stdenv.mkDerivation (finalAttrs: { # If you want to change to a different build system, please make # sure cross-compilation works first! - nativeBuildInputs = [ autoreconfHook pkg-config sphinx ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + sphinx + ]; # TODO: opengl support (bogus configure detection) propagatedBuildInputs = [ diff --git a/pkgs/by-name/li/libtiff/packages.nix b/pkgs/by-name/li/libtiff/packages.nix index 1ae1e5d..0a8d811 100644 --- a/pkgs/by-name/li/libtiff/packages.nix +++ b/pkgs/by-name/li/libtiff/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { inherit ({ libtiff = callPackage ./. { }; diff --git a/pkgs/by-name/li/libtool/default.nix b/pkgs/by-name/li/libtool/default.nix index 6970d2a..2fcc7a0 100644 --- a/pkgs/by-name/li/libtool/default.nix +++ b/pkgs/by-name/li/libtool/default.nix @@ -1,4 +1,10 @@ -{lib, stdenv, fetchurl, m4, perl}: +{ + lib, + stdenv, + fetchurl, + m4, + perl, +}: stdenv.mkDerivation rec { pname = "libtool"; @@ -9,8 +15,8 @@ stdenv.mkDerivation rec { sha256 = "029ggq5kri1gjn6nfqmgw4w920gyfzscjjxbsxxidal5zqsawd8w"; }; - nativeBuildInputs = [m4]; - buildInputs = [perl]; + nativeBuildInputs = [ m4 ]; + buildInputs = [ perl ]; # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the # "fixed" path in generated files! diff --git a/pkgs/by-name/li/libtool/libtool2.nix b/pkgs/by-name/li/libtool/libtool2.nix index 50c064c..a3f011a 100644 --- a/pkgs/by-name/li/libtool/libtool2.nix +++ b/pkgs/by-name/li/libtool/libtool2.nix @@ -1,6 +1,11 @@ -{ lib, stdenv, fetchurl, fetchpatch, m4 -, runtimeShell -, file +{ + lib, + stdenv, + fetchurl, + fetchpatch, + m4, + runtimeShell, + file, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -17,29 +22,38 @@ stdenv.mkDerivation rec { sha256 = "sha256-BOlsJATqcMWQxUbrpCAqThJyLGQAFsErmy8c49SB6ag="; }; - outputs = [ "out" "lib" ]; + outputs = [ + "out" + "lib" + ]; # FILECMD was added in libtool 2.4.7; previous versions hardwired `/usr/bin/file` # https://lists.gnu.org/archive/html/autotools-announce/2022-03/msg00000.html FILECMD = "${file}/bin/file"; postPatch = - # libtool commit da2e352735722917bf0786284411262195a6a3f6 changed - # the shebang from `/bin/sh` (which is a special sandbox exception) - # to `/usr/bin/env sh`, meaning that we now need to patch shebangs - # in libtoolize.in: - '' - substituteInPlace libtoolize.in --replace '#! /usr/bin/env sh' '#!${runtimeShell}' - # avoid help2man run after 'libtoolize.in' update - touch doc/libtoolize.1 - ''; + # libtool commit da2e352735722917bf0786284411262195a6a3f6 changed + # the shebang from `/bin/sh` (which is a special sandbox exception) + # to `/usr/bin/env sh`, meaning that we now need to patch shebangs + # in libtoolize.in: + '' + substituteInPlace libtoolize.in --replace '#! /usr/bin/env sh' '#!${runtimeShell}' + # avoid help2man run after 'libtoolize.in' update + touch doc/libtoolize.1 + ''; strictDeps = true; # As libtool is an early bootstrap dependency try hard not to # add autoconf and automake or help2man dependencies here. That way we can # avoid pulling in perl and get away with just an `m4` depend. - nativeBuildInputs = [ m4 file ]; - propagatedBuildInputs = [ m4 file ]; + nativeBuildInputs = [ + m4 + file + ]; + propagatedBuildInputs = [ + m4 + file + ]; # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the # "fixed" path in generated files! diff --git a/pkgs/by-name/li/libtool/packages.nix b/pkgs/by-name/li/libtool/packages.nix index 4e0206c..918efcb 100644 --- a/pkgs/by-name/li/libtool/packages.nix +++ b/pkgs/by-name/li/libtool/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libtool = libtool_2; libtool_1_5 = callPackage ./. { }; libtool_2 = callPackage ./libtool2.nix { }; diff --git a/pkgs/by-name/li/libuchardet/default.nix b/pkgs/by-name/li/libuchardet/default.nix index 642c39e..ba3cd03 100644 --- a/pkgs/by-name/li/libuchardet/default.nix +++ b/pkgs/by-name/li/libuchardet/default.nix @@ -1,10 +1,20 @@ -{ lib, stdenv, fetchurl, cmake }: +{ + lib, + stdenv, + fetchurl, + cmake, +}: stdenv.mkDerivation rec { pname = "uchardet"; version = "0.0.8"; - outputs = [ "bin" "out" "man" "dev" ]; + outputs = [ + "bin" + "out" + "man" + "dev" + ]; src = fetchurl { url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz"; diff --git a/pkgs/by-name/li/libunistring/default.nix b/pkgs/by-name/li/libunistring/default.nix index 51eb555..7a6f987 100644 --- a/pkgs/by-name/li/libunistring/default.nix +++ b/pkgs/by-name/li/libunistring/default.nix @@ -1,4 +1,9 @@ -{ fetchurl, lib, stdenv, libiconv }: +{ + fetchurl, + lib, + stdenv, + libiconv, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -14,28 +19,32 @@ stdenv.mkDerivation rec { sha256 = "sha256-oiUr7uyDCsREufaNazitiD2xmRnbNbUiIs+CfDhb22o="; }; - outputs = [ "out" "dev" "info" "doc" ]; + outputs = [ + "out" + "dev" + "info" + "doc" + ]; strictDeps = true; propagatedBuildInputs = lib.optional (!stdenv.isLinux) libiconv; - configureFlags = [ - "--with-libiconv-prefix=${libiconv}" - ]; + configureFlags = [ "--with-libiconv-prefix=${libiconv}" ]; doCheck = false; - /* This seems to cause several random failures like these, which I assume - is because of bad or missing target dependencies in their build system: + /* + This seems to cause several random failures like these, which I assume + is because of bad or missing target dependencies in their build system: - ./unistdio/test-u16-vasnprintf2.sh: line 16: ./test-u16-vasnprintf1: No such file or directory - FAIL unistdio/test-u16-vasnprintf2.sh (exit status: 1) + ./unistdio/test-u16-vasnprintf2.sh: line 16: ./test-u16-vasnprintf1: No such file or directory + FAIL unistdio/test-u16-vasnprintf2.sh (exit status: 1) - FAIL: unistdio/test-u16-vasnprintf3.sh - ====================================== + FAIL: unistdio/test-u16-vasnprintf3.sh + ====================================== - ./unistdio/test-u16-vasnprintf3.sh: line 16: ./test-u16-vasnprintf1: No such file or directory - FAIL unistdio/test-u16-vasnprintf3.sh (exit status: 1) + ./unistdio/test-u16-vasnprintf3.sh: line 16: ./test-u16-vasnprintf1: No such file or directory + FAIL unistdio/test-u16-vasnprintf3.sh (exit status: 1) */ enableParallelChecking = false; enableParallelBuilding = true; diff --git a/pkgs/by-name/li/libunwind/default.nix b/pkgs/by-name/li/libunwind/default.nix index 5144abc..f316dd7 100644 --- a/pkgs/by-name/li/libunwind/default.nix +++ b/pkgs/by-name/li/libunwind/default.nix @@ -1,4 +1,12 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }: +{ + stdenv, + lib, + fetchFromGitHub, + fetchpatch, + autoreconfHook, + xz, + buildPackages, +}: stdenv.mkDerivation rec { pname = "libunwind"; @@ -11,30 +19,39 @@ stdenv.mkDerivation rec { hash = "sha256-rCFBHs6rCSnp5FEwbUR5veNNTqSQpFblAv8ebSPX0qE="; }; - postPatch = if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then '' - substituteInPlace configure.ac --replace "-lgcc_s" "" - '' else lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace configure.ac --replace "-lgcc_s" "-lgcc_eh" - ''; + postPatch = + if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then + '' + substituteInPlace configure.ac --replace "-lgcc_s" "" + '' + else + lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace configure.ac --replace "-lgcc_s" "-lgcc_eh" + ''; nativeBuildInputs = [ autoreconfHook ]; - outputs = [ "out" "dev" "devman" ]; - - configureFlags = [ - # Starting from 1.8.1 libunwind installs testsuite by default. - # As we don't run the tests we disable it (this also fixes circular - # reference install failure). - "--disable-tests" - # Without latex2man, no man pages are installed despite being - # prebuilt in the source tarball. - "LATEX2MAN=${buildPackages.coreutils}/bin/true" - ] - # See https://github.com/libunwind/libunwind/issues/693 - ++ lib.optionals (with stdenv.hostPlatform; isAarch64 && isMusl && !isStatic) [ - "CFLAGS=-mno-outline-atomics" + outputs = [ + "out" + "dev" + "devman" ]; + configureFlags = + [ + # Starting from 1.8.1 libunwind installs testsuite by default. + # As we don't run the tests we disable it (this also fixes circular + # reference install failure). + "--disable-tests" + # Without latex2man, no man pages are installed despite being + # prebuilt in the source tarball. + "LATEX2MAN=${buildPackages.coreutils}/bin/true" + ] + # See https://github.com/libunwind/libunwind/issues/693 + ++ lib.optionals (with stdenv.hostPlatform; isAarch64 && isMusl && !isStatic) [ + "CFLAGS=-mno-outline-atomics" + ]; + propagatedBuildInputs = [ xz ]; postInstall = '' @@ -50,7 +67,25 @@ stdenv.mkDerivation rec { description = "A portable and efficient API to determine the call-chain of a program"; maintainers = with maintainers; [ orivej ]; # https://github.com/libunwind/libunwind#libunwind - platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd" "x86_64-linux" "x86_64-solaris" ]; + platforms = [ + "aarch64-linux" + "armv5tel-linux" + "armv6l-linux" + "armv7a-linux" + "armv7l-linux" + "i686-freebsd" + "i686-linux" + "loongarch64-linux" + "mips64el-linux" + "mipsel-linux" + "powerpc64-linux" + "powerpc64le-linux" + "riscv64-linux" + "s390x-linux" + "x86_64-freebsd" + "x86_64-linux" + "x86_64-solaris" + ]; license = licenses.mit; }; } diff --git a/pkgs/by-name/li/libunwind/packages.nix b/pkgs/by-name/li/libunwind/packages.nix index 2f30259..cedaa85 100644 --- a/pkgs/by-name/li/libunwind/packages.nix +++ b/pkgs/by-name/li/libunwind/packages.nix @@ -1,10 +1,12 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libunwind = - if stdenv.isDarwin then darwin.libunwind - else if stdenv.hostPlatform.system == "riscv32-linux" then llvmPackages_14.libunwind - else callPackage ./. { }; + if stdenv.isDarwin then + darwin.libunwind + else if stdenv.hostPlatform.system == "riscv32-linux" then + llvmPackages_14.libunwind + else + callPackage ./. { }; } diff --git a/pkgs/by-name/li/libuv/default.nix b/pkgs/by-name/li/libuv/default.nix index 5c79ba1..f5ab269 100644 --- a/pkgs/by-name/li/libuv/default.nix +++ b/pkgs/by-name/li/libuv/default.nix @@ -1,11 +1,12 @@ -{ stdenv -, lib -, fetchFromGitHub -, autoconf -, automake -, libtool -, pkg-config -, pkgsStatic +{ + stdenv, + lib, + fetchFromGitHub, + autoconf, + automake, + libtool, + pkg-config, + pkgsStatic, # for passthru.tests # , bind @@ -32,59 +33,116 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-U68BmIQNpmIy3prS7LkYl+wvDJQNikoeFiKh50yQFoA="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - postPatch = let - toDisable = [ - "getnameinfo_basic" "udp_send_hang_loop" # probably network-dependent - "tcp_connect_timeout" # tries to reach out to 8.8.8.8 - "spawn_setuid_fails" "spawn_setgid_fails" "fs_chown" # user namespaces - "getaddrinfo_fail" "getaddrinfo_fail_sync" "tcp_connect6_link_local" - "threadpool_multiple_event_loops" # times out on slow machines - "get_passwd" # passed on NixOS but failed on other Linuxes - "tcp_writealot" "udp_multicast_join" "udp_multicast_join6" "metrics_pool_events" # times out sometimes - "fs_fstat" # https://github.com/libuv/libuv/issues/2235#issuecomment-1012086927 + postPatch = + let + toDisable = + [ + "getnameinfo_basic" + "udp_send_hang_loop" # probably network-dependent + "tcp_connect_timeout" # tries to reach out to 8.8.8.8 + "spawn_setuid_fails" + "spawn_setgid_fails" + "fs_chown" # user namespaces + "getaddrinfo_fail" + "getaddrinfo_fail_sync" + "tcp_connect6_link_local" + "threadpool_multiple_event_loops" # times out on slow machines + "get_passwd" # passed on NixOS but failed on other Linuxes + "tcp_writealot" + "udp_multicast_join" + "udp_multicast_join6" + "metrics_pool_events" # times out sometimes + "fs_fstat" # https://github.com/libuv/libuv/issues/2235#issuecomment-1012086927 - # Assertion failed in test/test-tcp-bind6-error.c on line 60: r == UV_EADDRINUSE - # Assertion failed in test/test-tcp-bind-error.c on line 99: r == UV_EADDRINUSE - "tcp_bind6_error_addrinuse" "tcp_bind_error_addrinuse_listen" - # https://github.com/libuv/libuv/pull/4075#issuecomment-1935572237 - "thread_priority" - ] ++ lib.optionals stdenv.isDarwin [ - # Sometimes: timeout (no output), failed uv_listen. Someone - # should report these failures to libuv team. There tests should - # be much more robust. - "process_title" "emfile" "poll_duplex" "poll_unidirectional" - "ipc_listen_before_write" "ipc_listen_after_write" "ipc_tcp_connection" - "tcp_alloc_cb_fail" "tcp_ping_pong" "tcp_ref3" "tcp_ref4" - "tcp_bind6_error_inval" "tcp_bind6_error_addrinuse" "tcp_read_stop" - "tcp_unexpected_read" "tcp_write_to_half_open_connection" - "tcp_oob" "tcp_close_accept" "tcp_create_early_accept" - "tcp_create_early" "tcp_close" "tcp_bind_error_inval" - "tcp_bind_error_addrinuse" "tcp_shutdown_after_write" - "tcp_open" "tcp_write_queue_order" "tcp_try_write" "tcp_writealot" - "multiple_listen" "delayed_accept" "udp_recv_in_a_row" - "shutdown_close_tcp" "shutdown_eof" "shutdown_twice" "callback_stack" - "tty_pty" "condvar_5" "hrtime" "udp_multicast_join" - # Tests that fail when sandboxing is enabled. - "fs_event_close_in_callback" "fs_event_watch_dir" "fs_event_error_reporting" - "fs_event_watch_dir_recursive" "fs_event_watch_file" - "fs_event_watch_file_current_dir" "fs_event_watch_file_exact_path" - "process_priority" "udp_create_early_bad_bind" - ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ - # fail on macos < 10.15 (starting in libuv 1.47.0) - "fs_write_alotof_bufs_with_offset" "fs_write_multiple_bufs" "fs_read_bufs" - ] ++ lib.optionals stdenv.isAarch32 [ - # I observe this test failing with some regularity on ARMv7: - # https://github.com/libuv/libuv/issues/1871 - "shutdown_close_pipe" - ]; - tdRegexp = lib.concatStringsSep "\\|" toDisable; - in lib.optionalString (finalAttrs.finalPackage.doCheck) '' + # Assertion failed in test/test-tcp-bind6-error.c on line 60: r == UV_EADDRINUSE + # Assertion failed in test/test-tcp-bind-error.c on line 99: r == UV_EADDRINUSE + "tcp_bind6_error_addrinuse" + "tcp_bind_error_addrinuse_listen" + # https://github.com/libuv/libuv/pull/4075#issuecomment-1935572237 + "thread_priority" + ] + ++ lib.optionals stdenv.isDarwin [ + # Sometimes: timeout (no output), failed uv_listen. Someone + # should report these failures to libuv team. There tests should + # be much more robust. + "process_title" + "emfile" + "poll_duplex" + "poll_unidirectional" + "ipc_listen_before_write" + "ipc_listen_after_write" + "ipc_tcp_connection" + "tcp_alloc_cb_fail" + "tcp_ping_pong" + "tcp_ref3" + "tcp_ref4" + "tcp_bind6_error_inval" + "tcp_bind6_error_addrinuse" + "tcp_read_stop" + "tcp_unexpected_read" + "tcp_write_to_half_open_connection" + "tcp_oob" + "tcp_close_accept" + "tcp_create_early_accept" + "tcp_create_early" + "tcp_close" + "tcp_bind_error_inval" + "tcp_bind_error_addrinuse" + "tcp_shutdown_after_write" + "tcp_open" + "tcp_write_queue_order" + "tcp_try_write" + "tcp_writealot" + "multiple_listen" + "delayed_accept" + "udp_recv_in_a_row" + "shutdown_close_tcp" + "shutdown_eof" + "shutdown_twice" + "callback_stack" + "tty_pty" + "condvar_5" + "hrtime" + "udp_multicast_join" + # Tests that fail when sandboxing is enabled. + "fs_event_close_in_callback" + "fs_event_watch_dir" + "fs_event_error_reporting" + "fs_event_watch_dir_recursive" + "fs_event_watch_file" + "fs_event_watch_file_current_dir" + "fs_event_watch_file_exact_path" + "process_priority" + "udp_create_early_bad_bind" + ] + ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + # fail on macos < 10.15 (starting in libuv 1.47.0) + "fs_write_alotof_bufs_with_offset" + "fs_write_multiple_bufs" + "fs_read_bufs" + ] + ++ lib.optionals stdenv.isAarch32 [ + # I observe this test failing with some regularity on ARMv7: + # https://github.com/libuv/libuv/issues/1871 + "shutdown_close_pipe" + ]; + tdRegexp = lib.concatStringsSep "\\|" toDisable; + in + lib.optionalString (finalAttrs.finalPackage.doCheck) '' sed '/${tdRegexp}/d' -i test/test-list.h ''; - nativeBuildInputs = [ automake autoconf libtool pkg-config ]; + nativeBuildInputs = [ + automake + autoconf + libtool + pkg-config + ]; preConfigure = '' LIBTOOLIZE=libtoolize ./autogen.sh @@ -117,12 +175,18 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "A multi-platform support library with a focus on asynchronous I/O"; - homepage = "https://libuv.org/"; - changelog = "https://github.com/libuv/libuv/blob/v${finalAttrs.version}/ChangeLog"; + homepage = "https://libuv.org/"; + changelog = "https://github.com/libuv/libuv/blob/v${finalAttrs.version}/ChangeLog"; pkgConfigModules = [ "libuv" ]; maintainers = with maintainers; [ ]; - platforms = platforms.all; - license = with licenses; [ mit isc bsd2 bsd3 cc-by-40 ]; + platforms = platforms.all; + license = with licenses; [ + mit + isc + bsd2 + bsd3 + cc-by-40 + ]; }; }) diff --git a/pkgs/by-name/li/libuv/packages.nix b/pkgs/by-name/li/libuv/packages.nix index 4db7a03..51dbbe3 100644 --- a/pkgs/by-name/li/libuv/packages.nix +++ b/pkgs/by-name/li/libuv/packages.nix @@ -1,7 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libuv = darwin.apple_sdk_11_0.callPackage ./. { }; } diff --git a/pkgs/by-name/li/libverto/default.nix b/pkgs/by-name/li/libverto/default.nix index d161f2b..2e8bb24 100644 --- a/pkgs/by-name/li/libverto/default.nix +++ b/pkgs/by-name/li/libverto/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, glib -, libev -, libevent -, pkg-config -, glibSupport ? true -, libevSupport ? true -, libeventSupport ? true +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + glib, + libev, + libevent, + pkg-config, + glibSupport ? true, + libevSupport ? true, + libeventSupport ? true, }: let @@ -31,9 +32,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = - optional glibSupport glib - ++ optional libevSupport libev - ++ optional libeventSupport libevent; + optional glibSupport glib ++ optional libevSupport libev ++ optional libeventSupport libevent; meta = with lib; { homepage = "https://github.com/latchset/libverto"; diff --git a/pkgs/by-name/li/libwebp/default.nix b/pkgs/by-name/li/libwebp/default.nix index 2605dab..4657608 100644 --- a/pkgs/by-name/li/libwebp/default.nix +++ b/pkgs/by-name/li/libwebp/default.nix @@ -1,28 +1,40 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, libtool -, threadingSupport ? true # multi-threading -, openglSupport ? false, freeglut, libGL, libGLU # OpenGL (required for vwebp) -, pngSupport ? true, libpng # PNG image format -, jpegSupport ? true, libjpeg # JPEG image format -, tiffSupport ? true, libtiff # TIFF image format -, gifSupport ? true, giflib # GIF image format -, alignedSupport ? false # Force aligned memory operations -, swap16bitcspSupport ? false # Byte swap for 16bit color spaces -, experimentalSupport ? false # Experimental code -, libwebpmuxSupport ? true # Build libwebpmux -, libwebpdemuxSupport ? true # Build libwebpdemux -, libwebpdecoderSupport ? true # Build libwebpdecoder +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + libtool, + threadingSupport ? true, # multi-threading + openglSupport ? false, + freeglut, + libGL, + libGLU, # OpenGL (required for vwebp) + pngSupport ? true, + libpng, # PNG image format + jpegSupport ? true, + libjpeg, # JPEG image format + tiffSupport ? true, + libtiff, # TIFF image format + gifSupport ? true, + giflib, # GIF image format + alignedSupport ? false, # Force aligned memory operations + swap16bitcspSupport ? false, # Byte swap for 16bit color spaces + experimentalSupport ? false, # Experimental code + libwebpmuxSupport ? true, # Build libwebpmux + libwebpdemuxSupport ? true, # Build libwebpdemux + libwebpdecoderSupport ? true, # Build libwebpdecoder -# for passthru.tests -, freeimage -, gd -, graphicsmagick -, haskellPackages -, imagemagick -, imlib2 -, libjxl -, opencv -, python3 -, vips + # for passthru.tests + freeimage, + gd, + graphicsmagick, + haskellPackages, + imagemagick, + imlib2, + libjxl, + opencv, + python3, + vips, }: stdenv.mkDerivation rec { @@ -30,10 +42,10 @@ stdenv.mkDerivation rec { version = "1.3.2"; src = fetchFromGitHub { - owner = "webmproject"; - repo = pname; - rev = "v${version}"; - hash = "sha256-UYO2Fmm8nzQR8VBC26wEwWd3qZTD+6MHKcmKBoNcpEE="; + owner = "webmproject"; + repo = pname; + rev = "v${version}"; + hash = "sha256-UYO2Fmm8nzQR8VBC26wEwWd3qZTD+6MHKcmKBoNcpEE="; }; configureFlags = [ @@ -51,9 +63,17 @@ stdenv.mkDerivation rec { (lib.enableFeature libwebpdecoderSupport "libwebpdecoder") ]; - nativeBuildInputs = [ autoreconfHook libtool ]; - buildInputs = [ ] - ++ lib.optionals openglSupport [ freeglut libGL libGLU ] + nativeBuildInputs = [ + autoreconfHook + libtool + ]; + buildInputs = + [ ] + ++ lib.optionals openglSupport [ + freeglut + libGL + libGLU + ] ++ lib.optionals pngSupport [ libpng ] ++ lib.optionals jpegSupport [ libjpeg ] ++ lib.optionals tiffSupport [ libtiff ] @@ -62,7 +82,16 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; passthru.tests = { - inherit freeimage gd graphicsmagick imagemagick imlib2 libjxl opencv vips; + inherit + freeimage + gd + graphicsmagick + imagemagick + imlib2 + libjxl + opencv + vips + ; inherit (python3.pkgs) pillow imread; haskell-webp = haskellPackages.webp; }; diff --git a/pkgs/by-name/li/libxcrypt/default.nix b/pkgs/by-name/li/libxcrypt/default.nix index b2093dc..97d6922 100644 --- a/pkgs/by-name/li/libxcrypt/default.nix +++ b/pkgs/by-name/li/libxcrypt/default.nix @@ -1,9 +1,13 @@ -{ lib, stdenv, fetchurl, perl -# Update the enabled crypt scheme ids in passthru when the enabled hashes change -, enableHashes ? "strong" -# , nixosTests -, runCommand -, python3 +{ + lib, + stdenv, + fetchurl, + perl, + # Update the enabled crypt scheme ids in passthru when the enabled hashes change + enableHashes ? "strong", + # , nixosTests + runCommand, + python3, }: stdenv.mkDerivation (finalAttrs: { @@ -29,11 +33,9 @@ stdenv.mkDerivation (finalAttrs: { ]; # fixes: can't build x86_64-w64-mingw32 shared library unless -no-undefined is specified - makeFlags = lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS=-no-undefined"] ; + makeFlags = lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS=-no-undefined" ]; - nativeBuildInputs = [ - perl - ]; + nativeBuildInputs = [ perl ]; enableParallelBuilding = true; @@ -44,19 +46,28 @@ stdenv.mkDerivation (finalAttrs: { # inherit (nixosTests) login shadow; passthruMatches = runCommand "libxcrypt-test-passthru-matches" { } '' - ${python3.interpreter} "${./check_passthru_matches.py}" ${lib.escapeShellArgs ([ finalAttrs.src enableHashes "--" ] ++ finalAttrs.passthru.enabledCryptSchemeIds)} + ${python3.interpreter} "${./check_passthru_matches.py}" ${ + lib.escapeShellArgs ( + [ + finalAttrs.src + enableHashes + "--" + ] + ++ finalAttrs.passthru.enabledCryptSchemeIds + ) + } touch "$out" ''; }; enabledCryptSchemeIds = [ # https://github.com/besser82/libxcrypt/blob/v4.4.35/lib/hashes.conf - "y" # yescrypt - "gy" # gost_yescrypt - "7" # scrypt - "2b" # bcrypt - "2y" # bcrypt_y - "2a" # bcrypt_a - "6" # sha512crypt + "y" # yescrypt + "gy" # gost_yescrypt + "7" # scrypt + "2b" # bcrypt + "2y" # bcrypt_y + "2a" # bcrypt_a + "6" # sha512crypt ]; }; @@ -65,7 +76,10 @@ stdenv.mkDerivation (finalAttrs: { description = "Extended crypt library for descrypt, md5crypt, bcrypt, and others"; homepage = "https://github.com/besser82/libxcrypt/"; platforms = platforms.all; - maintainers = with maintainers; [ dottedmag hexa ]; + maintainers = with maintainers; [ + dottedmag + hexa + ]; license = licenses.lgpl21Plus; }; }) diff --git a/pkgs/by-name/li/libxcrypt/packages.nix b/pkgs/by-name/li/libxcrypt/packages.nix index 3d3253c..2134ce3 100644 --- a/pkgs/by-name/li/libxcrypt/packages.nix +++ b/pkgs/by-name/li/libxcrypt/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { libxcrypt = callPackage ./. { fetchurl = stdenv.fetchurlBoot; perl = buildPackages.perl.override { diff --git a/pkgs/by-name/li/libxml2/default.nix b/pkgs/by-name/li/libxml2/default.nix index fd71e3e..a45e2d8 100644 --- a/pkgs/by-name/li/libxml2/default.nix +++ b/pkgs/by-name/li/libxml2/default.nix @@ -1,35 +1,45 @@ -{ stdenv -, lib -, fetchurl -, zlib -, pkg-config -, autoreconfHook -, xz -, libintl -, python -, gettext -, ncurses -, findXMLCatalogs -, libiconv -# Python limits cross-compilation to an allowlist of host OSes. -# https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562 -, pythonSupport ? enableShared && - (stdenv.hostPlatform == stdenv.buildPlatform || stdenv.hostPlatform.isCygwin || stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isWasi) -, icuSupport ? false -, icu -, enableShared ? !stdenv.hostPlatform.isMinGW && !stdenv.hostPlatform.isStatic -, enableStatic ? !enableShared -# , gnome -, testers +{ + stdenv, + lib, + fetchurl, + zlib, + pkg-config, + autoreconfHook, + xz, + libintl, + python, + gettext, + ncurses, + findXMLCatalogs, + libiconv, + # Python limits cross-compilation to an allowlist of host OSes. + # https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562 + pythonSupport ? + enableShared + && ( + stdenv.hostPlatform == stdenv.buildPlatform + || stdenv.hostPlatform.isCygwin + || stdenv.hostPlatform.isLinux + || stdenv.hostPlatform.isWasi + ), + icuSupport ? false, + icu, + enableShared ? !stdenv.hostPlatform.isMinGW && !stdenv.hostPlatform.isStatic, + enableStatic ? !enableShared, + # , gnome + testers, }: stdenv.mkDerivation (finalAttrs: rec { pname = "libxml2"; version = "2.12.6"; - outputs = [ "bin" "dev" "out" "doc" ] - ++ lib.optional pythonSupport "py" - ++ lib.optional (enableStatic && enableShared) "static"; + outputs = [ + "bin" + "dev" + "out" + "doc" + ] ++ lib.optional pythonSupport "py" ++ lib.optional (enableStatic && enableShared) "static"; outputMan = "bin"; src = fetchurl { @@ -44,29 +54,22 @@ stdenv.mkDerivation (finalAttrs: rec { autoreconfHook ]; - buildInputs = lib.optionals pythonSupport [ - python - ] ++ lib.optionals (pythonSupport && python?isPy2 && python.isPy2) [ - gettext - ] ++ lib.optionals (pythonSupport && python?isPy3 && python.isPy3) [ - ncurses - ] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [ - libintl - ] ++ lib.optionals stdenv.isFreeBSD [ - # Libxml2 has an optional dependency on liblzma. However, on impure - # platforms, it may end up using that from /usr/lib, and thus lack a - # RUNPATH for that, leading to undefined references for its users. - xz - ]; + buildInputs = + lib.optionals pythonSupport [ python ] + ++ lib.optionals (pythonSupport && python ? isPy2 && python.isPy2) [ gettext ] + ++ lib.optionals (pythonSupport && python ? isPy3 && python.isPy3) [ ncurses ] + ++ lib.optionals (stdenv.isDarwin && pythonSupport && python ? isPy2 && python.isPy2) [ libintl ] + ++ lib.optionals stdenv.isFreeBSD [ + # Libxml2 has an optional dependency on liblzma. However, on impure + # platforms, it may end up using that from /usr/lib, and thus lack a + # RUNPATH for that, leading to undefined references for its users. + xz + ]; propagatedBuildInputs = [ zlib findXMLCatalogs - ] ++ lib.optionals stdenv.isDarwin [ - libiconv - ] ++ lib.optionals icuSupport [ - icu - ]; + ] ++ lib.optionals stdenv.isDarwin [ libiconv ] ++ lib.optionals icuSupport [ icu ]; configureFlags = [ "--exec-prefix=${placeholder "dev"}" @@ -84,9 +87,7 @@ stdenv.mkDerivation (finalAttrs: rec { enableParallelBuilding = true; - doCheck = - (stdenv.hostPlatform == stdenv.buildPlatform) && - stdenv.hostPlatform.libc != "musl"; + doCheck = (stdenv.hostPlatform == stdenv.buildPlatform) && stdenv.hostPlatform.libc != "musl"; preCheck = lib.optional stdenv.isDarwin '' export DYLD_LIBRARY_PATH="$PWD/.libs:$DYLD_LIBRARY_PATH" ''; @@ -99,12 +100,14 @@ stdenv.mkDerivation (finalAttrs: rec { substituteInPlace python/libxml2mod.la --replace "$dev/${python.sitePackages}" "$py/${python.sitePackages}" ''; - postFixup = '' - moveToOutput bin/xml2-config "$dev" - moveToOutput lib/xml2Conf.sh "$dev" - '' + lib.optionalString (enableStatic && enableShared) '' - moveToOutput lib/libxml2.a "$static" - ''; + postFixup = + '' + moveToOutput bin/xml2-config "$dev" + moveToOutput lib/xml2Conf.sh "$dev" + '' + + lib.optionalString (enableStatic && enableShared) '' + moveToOutput lib/libxml2.a "$static" + ''; passthru = { inherit version; @@ -116,9 +119,7 @@ stdenv.mkDerivation (finalAttrs: rec { # versionPolicy = "none"; # }; tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; + pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; }; }; @@ -127,7 +128,10 @@ stdenv.mkDerivation (finalAttrs: rec { description = "XML parsing library for C"; license = licenses.mit; platforms = platforms.all; - maintainers = with maintainers; [ eelco jtojnar ]; + maintainers = with maintainers; [ + eelco + jtojnar + ]; pkgConfigModules = [ "libxml-2.0" ]; }; }) diff --git a/pkgs/by-name/li/libxml2/packages.nix b/pkgs/by-name/li/libxml2/packages.nix index 396819c..d3da8d4 100644 --- a/pkgs/by-name/li/libxml2/packages.nix +++ b/pkgs/by-name/li/libxml2/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - libxml2 = callPackage ./. { - python = python3; - }; +with pkgs; { + libxml2 = callPackage ./. { python = python3; }; } diff --git a/pkgs/by-name/li/libxslt/default.nix b/pkgs/by-name/li/libxslt/default.nix index acf7878..c559885 100644 --- a/pkgs/by-name/li/libxslt/default.nix +++ b/pkgs/by-name/li/libxslt/default.nix @@ -1,17 +1,18 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, autoreconfHook -, libxml2 -, findXMLCatalogs -, gettext -, python -, ncurses -, libxcrypt -, libgcrypt -, cryptoSupport ? false -, pythonSupport ? libxml2.pythonSupport +{ + lib, + stdenv, + fetchurl, + pkg-config, + autoreconfHook, + libxml2, + findXMLCatalogs, + gettext, + python, + ncurses, + libxcrypt, + libgcrypt, + cryptoSupport ? false, + pythonSupport ? libxml2.pythonSupport, # , gnome }: @@ -19,7 +20,13 @@ stdenv.mkDerivation rec { pname = "libxslt"; version = "1.1.39"; - outputs = [ "bin" "dev" "out" "doc" "devdoc" ] ++ lib.optional pythonSupport "py"; + outputs = [ + "bin" + "dev" + "out" + "doc" + "devdoc" + ] ++ lib.optional pythonSupport "py"; outputMan = "bin"; src = fetchurl { @@ -34,21 +41,20 @@ stdenv.mkDerivation rec { autoreconfHook ]; - buildInputs = [ - libxml2.dev libxcrypt - ] ++ lib.optionals stdenv.isDarwin [ - gettext - ] ++ lib.optionals pythonSupport [ - libxml2.py - python - ncurses - ] ++ lib.optionals cryptoSupport [ - libgcrypt - ]; + buildInputs = + [ + libxml2.dev + libxcrypt + ] + ++ lib.optionals stdenv.isDarwin [ gettext ] + ++ lib.optionals pythonSupport [ + libxml2.py + python + ncurses + ] + ++ lib.optionals cryptoSupport [ libgcrypt ]; - propagatedBuildInputs = [ - findXMLCatalogs - ]; + propagatedBuildInputs = [ findXMLCatalogs ]; configureFlags = [ "--without-debug" @@ -56,20 +62,20 @@ stdenv.mkDerivation rec { "--without-debugger" (lib.withFeature pythonSupport "python") (lib.optionalString pythonSupport "PYTHON=${python.pythonOnBuildForHost.interpreter}") - ] ++ lib.optionals (!cryptoSupport) [ - "--without-crypto" - ]; + ] ++ lib.optionals (!cryptoSupport) [ "--without-crypto" ]; enableParallelBuilding = true; - postFixup = '' - moveToOutput bin/xslt-config "$dev" - moveToOutput lib/xsltConf.sh "$dev" - '' + lib.optionalString pythonSupport '' - mkdir -p $py/nix-support - echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs - moveToOutput ${python.sitePackages} "$py" - ''; + postFixup = + '' + moveToOutput bin/xslt-config "$dev" + moveToOutput lib/xsltConf.sh "$dev" + '' + + lib.optionalString pythonSupport '' + mkdir -p $py/nix-support + echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs + moveToOutput ${python.sitePackages} "$py" + ''; passthru = { inherit pythonSupport; @@ -85,7 +91,10 @@ stdenv.mkDerivation rec { description = "A C library and tools to do XSL transformations"; license = licenses.mit; platforms = platforms.all; - maintainers = with maintainers; [ eelco jtojnar ]; + maintainers = with maintainers; [ + eelco + jtojnar + ]; broken = pythonSupport && !libxml2.pythonSupport; # see #73102 for why this is not an assert }; } diff --git a/pkgs/by-name/li/libxslt/packages.nix b/pkgs/by-name/li/libxslt/packages.nix index 98cb249..f756070 100644 --- a/pkgs/by-name/li/libxslt/packages.nix +++ b/pkgs/by-name/li/libxslt/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - libxslt = callPackage ./. { - python = python3; - }; +with pkgs; { + libxslt = callPackage ./. { python = python3; }; } diff --git a/pkgs/by-name/li/lilypond/default.nix b/pkgs/by-name/li/lilypond/default.nix index acb3a54..a92ebd7 100644 --- a/pkgs/by-name/li/lilypond/default.nix +++ b/pkgs/by-name/li/lilypond/default.nix @@ -1,9 +1,45 @@ -{ stdenv, lib, fetchurl, ghostscript, gyre-fonts, texinfo, imagemagick, texi2html, guile -, python3, gettext, flex, perl, bison, pkg-config, autoreconfHook, dblatex -, fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff -, freefont_ttf, makeFontsConf -, makeWrapper, t1utils, boehmgc, rsync, coreutils -, texliveSmall, tex ? texliveSmall.withPackages (ps: with ps; [ lh metafont epsf fontinst ]) +{ + stdenv, + lib, + fetchurl, + ghostscript, + gyre-fonts, + texinfo, + imagemagick, + texi2html, + guile, + python3, + gettext, + flex, + perl, + bison, + pkg-config, + autoreconfHook, + dblatex, + fontconfig, + freetype, + pango, + fontforge, + help2man, + zip, + netpbm, + groff, + freefont_ttf, + makeFontsConf, + makeWrapper, + t1utils, + boehmgc, + rsync, + coreutils, + texliveSmall, + tex ? texliveSmall.withPackages ( + ps: with ps; [ + lh + metafont + epsf + fontinst + ] + ), }: stdenv.mkDerivation rec { @@ -21,14 +57,20 @@ stdenv.mkDerivation rec { # its Scheme libraries. wrapProgram "$f" \ --set GUILE_AUTO_COMPILE 0 \ - --set PATH "${lib.makeBinPath [ ghostscript coreutils (placeholder "out") ]}" \ + --set PATH "${ + lib.makeBinPath [ + ghostscript + coreutils + (placeholder "out") + ] + }" \ --argv0 "$f" done ''; configureFlags = [ "--disable-documentation" - # FIXME: these URW fonts are not OTF, configure reports "URW++ OTF files... no". + # FIXME: these URW fonts are not OTF, configure reports "URW++ OTF files... no". "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts" "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/" ]; @@ -38,13 +80,37 @@ stdenv.mkDerivation rec { export HOME=$TMPDIR/home ''; - nativeBuildInputs = [ autoreconfHook bison flex makeWrapper pkg-config ]; + nativeBuildInputs = [ + autoreconfHook + bison + flex + makeWrapper + pkg-config + ]; - buildInputs = - [ ghostscript texinfo imagemagick texi2html guile dblatex tex zip netpbm - python3 gettext perl fontconfig freetype pango - fontforge help2man groff t1utils boehmgc rsync - ]; + buildInputs = [ + ghostscript + texinfo + imagemagick + texi2html + guile + dblatex + tex + zip + netpbm + python3 + gettext + perl + fontconfig + freetype + pango + fontforge + help2man + groff + t1utils + boehmgc + rsync + ]; autoreconfPhase = "NOCONFIGURE=1 sh autogen.sh"; @@ -59,7 +125,10 @@ stdenv.mkDerivation rec { description = "Music typesetting system"; homepage = "http://lilypond.org/"; license = licenses.gpl3; - maintainers = with maintainers; [ marcweber yurrriq ]; + maintainers = with maintainers; [ + marcweber + yurrriq + ]; platforms = platforms.all; }; diff --git a/pkgs/by-name/li/lilypond/fonts.nix b/pkgs/by-name/li/lilypond/fonts.nix index b624498..150d7ee 100644 --- a/pkgs/by-name/li/lilypond/fonts.nix +++ b/pkgs/by-name/li/lilypond/fonts.nix @@ -1,8 +1,20 @@ -{ lib, stdenv, fetchFromGitHub, lilypond }: +{ + lib, + stdenv, + fetchFromGitHub, + lilypond, +}: let - olpFont = { fontName, rev, sha256, version ? rev, ... }: + olpFont = + { + fontName, + rev, + sha256, + version ? rev, + ... + }: stdenv.mkDerivation { inherit version; pname = "openlilypond-font-${fontName}"; diff --git a/pkgs/by-name/li/lilypond/unstable.nix b/pkgs/by-name/li/lilypond/unstable.nix index f500a79..6fe8a23 100644 --- a/pkgs/by-name/li/lilypond/unstable.nix +++ b/pkgs/by-name/li/lilypond/unstable.nix @@ -1,4 +1,8 @@ -{ lib, fetchurl, lilypond }: +{ + lib, + fetchurl, + lilypond, +}: lilypond.overrideAttrs (oldAttrs: rec { version = "2.25.14"; @@ -8,7 +12,10 @@ lilypond.overrideAttrs (oldAttrs: rec { }; passthru.updateScript = { - command = [ ./update.sh "unstable" ]; + command = [ + ./update.sh + "unstable" + ]; supportedFeatures = [ "commit" ]; }; }) diff --git a/pkgs/by-name/li/lilypond/with-fonts.nix b/pkgs/by-name/li/lilypond/with-fonts.nix index 2cfd151..ed2917b 100644 --- a/pkgs/by-name/li/lilypond/with-fonts.nix +++ b/pkgs/by-name/li/lilypond/with-fonts.nix @@ -1,9 +1,13 @@ -{ lib, symlinkJoin, makeWrapper -, lilypond, openlilylib-fonts +{ + lib, + symlinkJoin, + makeWrapper, + lilypond, + openlilylib-fonts, }: lib.appendToName "with-fonts" (symlinkJoin { - inherit (lilypond) meta name version ; + inherit (lilypond) meta name version; paths = [ lilypond ] ++ openlilylib-fonts.all; diff --git a/pkgs/by-name/li/lix/common.nix b/pkgs/by-name/li/lix/common.nix index d01d895..96401c6 100644 --- a/pkgs/by-name/li/lix/common.nix +++ b/pkgs/by-name/li/lix/common.nix @@ -1,80 +1,80 @@ -{ lib -, fetchFromGitHub -, version -, suffix ? "" -, hash ? null -, src ? fetchFromGitHub { +{ + lib, + fetchFromGitHub, + version, + suffix ? "", + hash ? null, + src ? fetchFromGitHub { owner = "lix-project"; repo = "lix"; rev = version; inherit hash; - } -, docCargoHash ? null -, patches ? [ ] -, maintainers ? lib.teams.lix.members -, + }, + docCargoHash ? null, + patches ? [ ], + maintainers ? lib.teams.lix.members, }@args: assert (hash == null) -> (src != null); -{ stdenv -, meson -, bash -, bison -, boehmgc -, boost -, brotli -, busybox-sandbox-shell -, bzip2 -, callPackage -, coreutils -, curl -, cmake -, docbook_xsl_ns -, docbook5 -, doxygen -, editline -, flex -, git -, gnutar -, gtest -, gzip -, jq -, lib -, libarchive -, libcpuid -, libgit2 -, libsodium -, libxml2 -, libxslt -, lowdown -, lsof -, man -, mercurial -, mdbook -, mdbook-linkcheck -, nlohmann_json -, ninja -, openssl -, toml11 -, python3 -, perl -, pkg-config -, rapidcheck -, Security -, sqlite -, util-linuxMinimal -, xz -# , nixosTests -, enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform -, enableStatic ? stdenv.hostPlatform.isStatic -, withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin) -, aws-sdk-cpp -, # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50 - withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp -, libseccomp -, confDir -, stateDir -, storeDir -, +{ + stdenv, + meson, + bash, + bison, + boehmgc, + boost, + brotli, + busybox-sandbox-shell, + bzip2, + callPackage, + coreutils, + curl, + cmake, + docbook_xsl_ns, + docbook5, + doxygen, + editline, + flex, + git, + gnutar, + gtest, + gzip, + jq, + lib, + libarchive, + libcpuid, + libgit2, + libsodium, + libxml2, + libxslt, + lowdown, + lsof, + man, + mercurial, + mdbook, + mdbook-linkcheck, + nlohmann_json, + ninja, + openssl, + toml11, + python3, + perl, + pkg-config, + rapidcheck, + Security, + sqlite, + util-linuxMinimal, + xz, + # , nixosTests + enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, + enableStatic ? stdenv.hostPlatform.isStatic, + withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), + aws-sdk-cpp, + # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50 + withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp, + libseccomp, + confDir, + stateDir, + storeDir, }: let lix-doc = callPackage ./doc { diff --git a/pkgs/by-name/li/lix/default.nix b/pkgs/by-name/li/lix/default.nix index 579c8c6..e42baf3 100644 --- a/pkgs/by-name/li/lix/default.nix +++ b/pkgs/by-name/li/lix/default.nix @@ -1,14 +1,14 @@ -{ lib -, aws-sdk-cpp -, boehmgc -, callPackage -, fetchFromGitHub -, Security -, storeDir ? "/nix/store" -, stateDir ? "/nix/var" -, confDir ? "/etc" -, path -, +{ + lib, + aws-sdk-cpp, + boehmgc, + callPackage, + fetchFromGitHub, + Security, + storeDir ? "/nix/store", + stateDir ? "/nix/var", + confDir ? "/etc", + path, }: let boehmgc-nix_2_3 = boehmgc.override { enableLargeConfig = true; }; diff --git a/pkgs/by-name/li/lix/packages.nix b/pkgs/by-name/li/lix/packages.nix index 1568048..2b7dab0 100644 --- a/pkgs/by-name/li/lix/packages.nix +++ b/pkgs/by-name/li/lix/packages.nix @@ -1,13 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ - lixVersions = recurseIntoAttrs (callPackage ./. { - storeDir = config.nix.storeDir or "/nix/store"; - stateDir = config.nix.stateDir or "/nix/var"; - inherit (darwin.apple_sdk.frameworks) Security; - }); +with pkgs; { + lixVersions = recurseIntoAttrs ( + callPackage ./. { + storeDir = config.nix.storeDir or "/nix/store"; + stateDir = config.nix.stateDir or "/nix/var"; + inherit (darwin.apple_sdk.frameworks) Security; + } + ); lix = lixVersions.stable; diff --git a/pkgs/by-name/ll/llvm/12/default.nix b/pkgs/by-name/ll/llvm/12/default.nix index 45955dc..85c23a3 100644 --- a/pkgs/by-name/ll/llvm/12/default.nix +++ b/pkgs/by-name/ll/llvm/12/default.nix @@ -1,22 +1,31 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake -, preLibcCrossHeaders -, substitute, substituteAll, fetchFromGitHub, fetchpatch -, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM version's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + preLibcCrossHeaders, + substitute, + substituteAll, + fetchFromGitHub, + fetchpatch, + libxml2, + python3, + isl, + fetchurl, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM version's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, }: let @@ -25,333 +34,379 @@ let dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs - fetch = name: sha256: fetchurl { - url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz"; - inherit sha256; - }; + fetch = + name: sha256: + fetchurl { + url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz"; + inherit sha256; + }; clang-tools-extra_src = fetch "clang-tools-extra" "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5"; inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + libxml2 + python3 + isl + release_version + version + fetch + buildLlvmTools + ; + } + ); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf"; - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - (substituteAll { - src = ../common/clang/clang-11-15-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit clang-tools-extra_src llvm_meta; - }; + libclang = callPackage ../common/clang { + src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf"; + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + (substituteAll { + src = ../common/clang/clang-11-15-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit clang-tools-extra_src llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - # disabled until recommonmark supports sphinx 3 - #Llvm-manpages = lowPrio (tools.libllvm.override { - # enableManpages = true; - # python3 = pkgs.python3; # don't use python-boot - #}); + # disabled until recommonmark supports sphinx 3 + #Llvm-manpages = lowPrio (tools.libllvm.override { + # enableManpages = true; + # python3 = pkgs.python3; # don't use python-boot + #}); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # disabled until recommonmark supports sphinx 3 - # lldb-manpages = lowPrio (tools.lldb.override { - # enableManpages = true; - # python3 = pkgs.python3; # don't use python-boot - # }); + # disabled until recommonmark supports sphinx 3 + # lldb-manpages = lowPrio (tools.lldb.override { + # enableManpages = true; + # python3 = pkgs.python3; # don't use python-boot + # }); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc - else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.libc == null then + tools.clangNoLibc + else if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - src = fetch "lld" "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9"; - patches = [ - ./lld/gnu-install-dirs.patch - ]; - inherit llvm_meta; - inherit (libraries) libunwind; - }; + lld = callPackage ../common/lld { + src = fetch "lld" "0qg3fgc7wj34hdkqn21y03zcmsdd01szhhm1hfki63iifrm3y2v9"; + patches = [ ./lld/gnu-install-dirs.patch ]; + inherit llvm_meta; + inherit (libraries) libunwind; + }; - lldb = callPackage ../common/lldb.nix { - src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"; - patches = - let - resourceDirPatch = callPackage - ({ substituteAll, libclang }: substituteAll - { + lldb = callPackage ../common/lldb.nix { + src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"; + patches = + let + resourceDirPatch = callPackage ( + { substituteAll, libclang }: + substituteAll { src = ./lldb/resource-dir.patch; clangLibDir = "${libclang.lib}/lib"; - }) - { }; - in - [ - ./lldb/procfs.patch - resourceDirPatch - ./lldb/gnu-install-dirs.patch - ]; - inherit llvm_meta; - }; - - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. - - bintools-unwrapped = callPackage ../common/bintools.nix { }; - - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; - - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; - - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - '' + lib.optionalString (!stdenv.targetPlatform.isWasm) '' - echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags - echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags - '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) '' - echo "-lunwind" >> $out/nix-support/cc-ldflags - '' + lib.optionalString stdenv.targetPlatform.isWasm '' - echo "-fno-exceptions" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; - - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - echo "-nostdlib++" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; - - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; - - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = '' - echo "-nostartfiles" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands0 cc; - }; - - clangNoCompilerRtWithLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - }; - - }); - - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; }); - in { - - compiler-rt-libc = callPackage ../common/compiler-rt { - src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l"; - patches = [ - ../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; - - compiler-rt-no-libc = callPackage ../common/compiler-rt { - src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l"; - patches = [ - ../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; - - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; - - stdenv = overrideCC stdenv buildLlvmTools.clang; - - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - - libcxx = callPackage ../common/libcxx { - src = fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - rev = "refs/tags/llvmorg-${version}"; - sparseCheckout = [ - "libcxx" - "libcxxabi" - "llvm/cmake" - "llvm/utils" - "runtimes" - ]; - hash = "sha256-etxgXIdWxMTmbZ83Hsc0w6Jt5OSQSUEPVEWqLkHsNBY="; + } + ) { }; + in + [ + ./lldb/procfs.patch + resourceDirPatch + ./lldb/gnu-install-dirs.patch + ]; + inherit llvm_meta; }; - patches = [ - (substitute { - src = ../common/libcxxabi/wasm.patch; - replacements = [ - "--replace-fail" "/cmake/" "/llvm/cmake/" - ]; - }) - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (substitute { - src = ../common/libcxx/libcxx-0001-musl-hacks.patch; - replacements = [ - "--replace-fail" "/include/" "/libcxx/include/" - ]; - }) - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; - libunwind = callPackage ../common/libunwind { - src = fetch "libunwind" "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb"; - patches = [ - ./libunwind/gnu-install-dirs.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - openmp = callPackage ../common/openmp { - src = fetch "openmp" "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0"; - patches = [ - # Fix cross. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch"; - hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A="; - }) - ]; - inherit llvm_meta targetLlvm; - }; - }); + bintools-unwrapped = callPackage ../common/bintools.nix { }; + + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; + + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; + + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + + lib.optionalString (!stdenv.targetPlatform.isWasm) '' + echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags + echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags + '' + + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) '' + echo "-lunwind" >> $out/nix-support/cc-ldflags + '' + + lib.optionalString stdenv.targetPlatform.isWasm '' + echo "-fno-exceptions" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; + + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + echo "-nostdlib++" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; + + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; + + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = + '' + echo "-nostartfiles" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands0 cc; + }; + + clangNoCompilerRtWithLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + }; + + } + ); + + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + libxml2 + python3 + isl + release_version + version + fetch + ; + } + ); + in + { + + compiler-rt-libc = callPackage ../common/compiler-rt { + src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l"; + patches = [ + ../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; + + compiler-rt-no-libc = callPackage ../common/compiler-rt { + src = fetch "compiler-rt" "1950rg294izdwkaasi7yjrmadc9mzdd5paf0q63jjcq2m3rdbj5l"; + patches = [ + ../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; + + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid then libraries.compiler-rt-libc else libraries.compiler-rt-no-libc; + + stdenv = overrideCC stdenv buildLlvmTools.clang; + + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + + libcxx = callPackage ../common/libcxx { + src = fetchFromGitHub { + owner = "llvm"; + repo = "llvm-project"; + rev = "refs/tags/llvmorg-${version}"; + sparseCheckout = [ + "libcxx" + "libcxxabi" + "llvm/cmake" + "llvm/utils" + "runtimes" + ]; + hash = "sha256-etxgXIdWxMTmbZ83Hsc0w6Jt5OSQSUEPVEWqLkHsNBY="; + }; + patches = + [ + (substitute { + src = ../common/libcxxabi/wasm.patch; + replacements = [ + "--replace-fail" + "/cmake/" + "/llvm/cmake/" + ]; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (substitute { + src = ../common/libcxx/libcxx-0001-musl-hacks.patch; + replacements = [ + "--replace-fail" + "/include/" + "/libcxx/include/" + ]; + }) + ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + + libunwind = callPackage ../common/libunwind { + src = fetch "libunwind" "192ww6n81lj2mb9pj4043z79jp3cf58a9c2qrxjwm5c3a64n1shb"; + patches = [ ./libunwind/gnu-install-dirs.patch ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; + + openmp = callPackage ../common/openmp { + src = fetch "openmp" "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0"; + patches = [ + # Fix cross. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch"; + hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A="; + }) + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/12/llvm/default.nix b/pkgs/by-name/ll/llvm/12/llvm/default.nix index 4745345..5c40878 100644 --- a/pkgs/by-name/ll/llvm/12/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/12/llvm/default.nix @@ -1,36 +1,41 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, fetch -, fetchpatch -, cmake -, python3 -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, buildLlvmTools -, debugVersion ? false -, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 -# broken for the armv7l builder -, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch -, enablePolly ? false +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + fetch, + fetchpatch, + cmake, + python3, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + buildLlvmTools, + debugVersion ? false, + doCheck ? + stdenv.isLinux + && (!stdenv.isx86_32) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch, + enablePolly ? false, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -49,309 +54,358 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - let - checkDeps = ps: with ps; [ psutil ]; - in python3.withPackages checkDeps - else python3; - -in stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; - - src = fetch pname "1pzx9zrmd7r3481sbhwvkms68fwhffpp4mmz45dgrkjpyl2q96kx"; - polly_src = fetch "polly" "1yfm9ixda4a2sx7ak5vswijx4ydk5lv1c1xh39xmd2kh299y4m12"; - - unpackPhase = '' - unpackFile $src - mv llvm-${release_version}* llvm - sourceRoot=$PWD/llvm - '' + optionalString enablePolly '' - unpackFile $polly_src - mv polly-* $sourceRoot/tools/polly - ''; - - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake python ] - ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ ncurses ] - ++ [ zlib ]; - - patches = [ - # When cross-compiling we configure llvm-config-native with an approximation - # of the flags used for the normal LLVM build. To avoid the need for building - # a native libLLVM.so (which would fail) we force llvm-config to be linked - # statically against the necessary LLVM components always. - ../../common/llvm/llvm-config-link-static.patch - # Fix llvm being miscompiled by some gccs. See llvm/llvm-project#49955 - # Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955 - ./fix-llvm-issue-49955.patch - - ./gnu-install-dirs.patch - # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test. - (fetchpatch { - name = "uops-CMOV16rm-noreg.diff"; - url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff"; - sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi"; - stripLen = 1; - }) - - # Fix musl build. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; - relative = "llvm"; - hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; - }) - - # Backport gcc-13 fixes with missing includes. - (fetchpatch { - name = "signals-gcc-13.patch"; - url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch"; - hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs="; - stripLen = 1; - }) - (fetchpatch { - name = "base64-gcc-13.patch"; - url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch"; - hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U="; - stripLen = 1; - }) - ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - # TODO: Fix failing tests: - rm test/DebugInfo/X86/vla-multi.ll - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-objcopy/MachO/universal-object.test - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - '' + '' - # Tweak tests to ignore namespace part of type to support - # gcc-12: https://gcc.gnu.org/PR103598. - # The change below mangles strings like: - # CHECK-NEXT: Starting llvm::Function pass manager run. - # to: - # CHECK-NEXT: Starting {{.*}}Function pass manager run. - for f in \ - test/Other/new-pass-manager.ll \ - test/Other/new-pm-O0-defaults.ll \ - test/Other/new-pm-defaults.ll \ - test/Other/new-pm-lto-defaults.ll \ - test/Other/new-pm-thinlto-defaults.ll \ - test/Other/pass-pipeline-parsing.ll \ - test/Transforms/Inline/cgscc-incremental-invalidate.ll \ - test/Transforms/Inline/clear-analyses.ll \ - test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \ - test/Transforms/SCCP/ipsccp-preserve-analysis.ll \ - test/Transforms/SCCP/preserve-analysis.ll \ - test/Transforms/SROA/dead-inst.ll \ - test/tools/gold/X86/new-pm.ll \ - ; do - echo "PATCH: $f" - substituteInPlace $f \ - --replace 'Starting llvm::' 'Starting {{.*}}' \ - --replace 'Finished llvm::' 'Finished {{.*}}' - done - '' + '' - # gcc-13 fix - sed -i '/#include /i#include ' \ - include/llvm/DebugInfo/Symbolize/DIPrinter.h - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' - ) - ''; - - # hacky fix: created binaries need to be run before installation - preBuild = '' - mkdir -p $out/ - ln -sv $PWD/lib $out - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (enableGoldPlugin) [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( + python = + if doCheck then let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; + checkDeps = ps: with ps; [ psutil ]; + in + python3.withPackages checkDeps + else + python3; - postBuild = '' - rm -fR $out - ''; +in +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - preCheck = '' - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib - ''; + src = fetch pname "1pzx9zrmd7r3481sbhwvkms68fwhffpp4mmz45dgrkjpyl2q96kx"; + polly_src = fetch "polly" "1yfm9ixda4a2sx7ak5vswijx4ydk5lv1c1xh39xmd2kh299y4m12"; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + unpackPhase = + '' + unpackFile $src + mv llvm-${release_version}* llvm + sourceRoot=$PWD/llvm + '' + + optionalString enablePolly '' + unpackFile $polly_src + mv polly-* $sourceRoot/tools/polly + ''; - inherit doCheck; + outputs = [ + "out" + "lib" + "dev" + "python" + ]; - checkTarget = "check-all"; + nativeBuildInputs = + [ + cmake + python + ] + ++ optionals enableManpages [ + python3.pkgs.sphinx + python3.pkgs.recommonmark + ]; - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis + + propagatedBuildInputs = optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ ncurses ] ++ [ + zlib + ]; + + patches = [ + # When cross-compiling we configure llvm-config-native with an approximation + # of the flags used for the normal LLVM build. To avoid the need for building + # a native libLLVM.so (which would fail) we force llvm-config to be linked + # statically against the necessary LLVM components always. + ../../common/llvm/llvm-config-link-static.patch + # Fix llvm being miscompiled by some gccs. See llvm/llvm-project#49955 + # Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955 + ./fix-llvm-issue-49955.patch + + ./gnu-install-dirs.patch + # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test. + (fetchpatch { + name = "uops-CMOV16rm-noreg.diff"; + url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff"; + sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi"; + stripLen = 1; + }) + + # Fix musl build. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; + relative = "llvm"; + hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; + }) + + # Backport gcc-13 fixes with missing includes. + (fetchpatch { + name = "signals-gcc-13.patch"; + url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch"; + hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs="; + stripLen = 1; + }) + (fetchpatch { + name = "base64-gcc-13.patch"; + url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch"; + hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U="; + stripLen = 1; + }) + ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + # TODO: Fix failing tests: + rm test/DebugInfo/X86/vla-multi.ll + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-objcopy/MachO/universal-object.test + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + '' + + '' + # Tweak tests to ignore namespace part of type to support + # gcc-12: https://gcc.gnu.org/PR103598. + # The change below mangles strings like: + # CHECK-NEXT: Starting llvm::Function pass manager run. + # to: + # CHECK-NEXT: Starting {{.*}}Function pass manager run. + for f in \ + test/Other/new-pass-manager.ll \ + test/Other/new-pm-O0-defaults.ll \ + test/Other/new-pm-defaults.ll \ + test/Other/new-pm-lto-defaults.ll \ + test/Other/new-pm-thinlto-defaults.ll \ + test/Other/pass-pipeline-parsing.ll \ + test/Transforms/Inline/cgscc-incremental-invalidate.ll \ + test/Transforms/Inline/clear-analyses.ll \ + test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \ + test/Transforms/SCCP/ipsccp-preserve-analysis.ll \ + test/Transforms/SCCP/preserve-analysis.ll \ + test/Transforms/SROA/dead-inst.ll \ + test/tools/gold/X86/new-pm.ll \ + ; do + echo "PATCH: $f" + substituteInPlace $f \ + --replace 'Starting llvm::' 'Starting {{.*}}' \ + --replace 'Finished llvm::' 'Finished {{.*}}' + done + '' + + '' + # gcc-13 fix + sed -i '/#include /i#include ' \ + include/llvm/DebugInfo/Symbolize/DIPrinter.h + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - buildPhase = '' - make docs-llvm-man - ''; + # hacky fix: created binaries need to be run before installation + preBuild = '' + mkdir -p $out/ + ln -sv $PWD/lib $out + ''; - propagatedBuildInputs = []; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - installPhase = '' - make -C docs install - ''; + hardeningDisable = [ "trivialautovarinit" ]; - postPatch = null; - postInstall = null; + cmakeBuildType = if debugVersion then "Debug" else "Release"; - outputs = [ "out" ]; + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; - doCheck = false; + postBuild = '' + rm -fR $out + ''; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + preCheck = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib + ''; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + buildPhase = '' + make docs-llvm-man + ''; + + propagatedBuildInputs = [ ]; + + installPhase = '' + make -C docs install + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/13/default.nix b/pkgs/by-name/ll/llvm/13/default.nix index 018fb0c..edc028f 100644 --- a/pkgs/by-name/ll/llvm/13/default.nix +++ b/pkgs/by-name/ll/llvm/13/default.nix @@ -1,24 +1,32 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake -, preLibcCrossHeaders -, fetchpatch -, libxml2, python3, isl, fetchFromGitHub, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM version's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + preLibcCrossHeaders, + fetchpatch, + libxml2, + python3, + isl, + fetchFromGitHub, + substitute, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM version's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -26,363 +34,423 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "13.0.1"; sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k"; } + officialRelease ? { + version = "13.0.1"; + sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k"; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; src = monorepoSrc; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version src buildLlvmTools; }); - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + libxml2 + python3 + isl + release_version + version + src + buildLlvmTools + ; + } + ); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - # Revert of https://reviews.llvm.org/D100879 - # The malloc alignment assumption is incorrect for jemalloc and causes - # mis-compilation in firefox. - # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454 - ./clang/revert-malloc-alignment-assumption.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-11-15-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + # Revert of https://reviews.llvm.org/D100879 + # The malloc alignment assumption is incorrect for jemalloc and causes + # mis-compilation in firefox. + # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454 + ./clang/revert-malloc-alignment-assumption.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-11-15-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # TODO: lldb/docs/index.rst:155:toctree contains reference to nonexisting document 'design/structureddataplugins' - # lldb-manpages = lowPrio (tools.lldb.override { - # enableManpages = true; - # python3 = pkgs.python3; # don't use python-boot - # }); + # TODO: lldb/docs/index.rst:155:toctree contains reference to nonexisting document 'design/structureddataplugins' + # lldb-manpages = lowPrio (tools.lldb.override { + # enableManpages = true; + # python3 = pkgs.python3; # don't use python-boot + # }); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc - else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.libc == null then + tools.clangNoLibc + else if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ ./lld/gnu-install-dirs.patch ]; + inherit llvm_meta; + }; - lldb = callPackage ../common/lldb.nix { - patches = - let - resourceDirPatch = callPackage - ({ substituteAll, libclang }: substituteAll - { + lldb = callPackage ../common/lldb.nix { + patches = + let + resourceDirPatch = callPackage ( + { substituteAll, libclang }: + substituteAll { src = ./lldb/resource-dir.patch; clangLibDir = "${libclang.lib}/lib"; - }) - { }; - in - [ - ./lldb/procfs.patch - resourceDirPatch - ./lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + } + ) { }; + in + [ + ./lldb/procfs.patch + resourceDirPatch + ./lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - '' + lib.optionalString (!stdenv.targetPlatform.isWasm) '' - echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags - echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags - '' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) '' - echo "-lunwind" >> $out/nix-support/cc-ldflags - '' + lib.optionalString stdenv.targetPlatform.isWasm '' - echo "-fno-exceptions" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt -Wno-unused-command-line-argument" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + + lib.optionalString (!stdenv.targetPlatform.isWasm) '' + echo "--unwindlib=libunwind" >> $out/nix-support/cc-cflags + echo "-L${targetLlvmLibraries.libunwind}/lib" >> $out/nix-support/cc-ldflags + '' + + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) '' + echo "-lunwind" >> $out/nix-support/cc-ldflags + '' + + lib.optionalString stdenv.targetPlatform.isWasm '' + echo "-fno-exceptions" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - echo "-nostdlib++" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + echo "-nostdlib++" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = '' - echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags - echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands cc; - }; + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = + '' + echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags + echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands cc; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = '' - echo "-nostartfiles" >> $out/nix-support/cc-cflags - '' + mkExtraBuildCommands0 cc; - }; + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = + '' + echo "-nostartfiles" >> $out/nix-support/cc-cflags + '' + + mkExtraBuildCommands0 cc; + }; - clangNoCompilerRtWithLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - }; + clangNoCompilerRtWithLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + }; - }); + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 isl release_version version src; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + libxml2 + python3 + isl + release_version + version + src + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ../common/compiler-rt/armv6-scudo-no-yield.patch - ../common/compiler-rt/armv6-scudo-libatomic.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../common/compiler-rt/armv6-scudo-no-yield.patch + ../common/compiler-rt/armv6-scudo-libatomic.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ../common/compiler-rt/armv6-scudo-no-yield.patch - ../common/compiler-rt/armv6-scudo-libatomic.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../common/compiler-rt/armv6-scudo-no-yield.patch + ../common/compiler-rt/armv6-scudo-libatomic.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid then libraries.compiler-rt-libc else libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - libcxx = callPackage ../common/libcxx { - patches = [ - (substitute { - src = ../common/libcxxabi/wasm.patch; - replacements = [ - "--replace-fail" "/cmake/" "/llvm/cmake/" + libcxx = callPackage ../common/libcxx { + patches = + [ + (substitute { + src = ../common/libcxxabi/wasm.patch; + replacements = [ + "--replace-fail" + "/cmake/" + "/llvm/cmake/" + ]; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (substitute { + src = ../common/libcxx/libcxx-0001-musl-hacks.patch; + replacements = [ + "--replace-fail" + "/include/" + "/libcxx/include/" + ]; + }) ]; - }) - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (substitute { - src = ../common/libcxx/libcxx-0001-musl-hacks.patch; - replacements = [ - "--replace-fail" "/include/" "/libcxx/include/" - ]; - }) - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - monorepoSrc = src; - }; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + monorepoSrc = src; + }; - libunwind = callPackage ../common/libunwind { - patches = [ - ./libunwind/gnu-install-dirs.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + patches = [ ./libunwind/gnu-install-dirs.patch ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - # Fix cross. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch"; - hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A="; - }) - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + # Fix cross. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5e2358c781b85a18d1463fd924d2741d4ae5e42e.patch"; + hash = "sha256-UxIlAifXnexF/MaraPW0Ut6q+sf3e7y1fMdEv1q103A="; + }) + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/13/llvm/default.nix b/pkgs/by-name/ll/llvm/13/llvm/default.nix index 58e742b..94020e6 100644 --- a/pkgs/by-name/ll/llvm/13/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/13/llvm/default.nix @@ -1,37 +1,42 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, src -, fetchpatch -, cmake -, python3 -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, buildLlvmTools -, debugVersion ? false -, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 -# broken for the armv7l builder -, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch -, enablePolly ? false +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + src, + fetchpatch, + cmake, + python3, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + buildLlvmTools, + debugVersion ? false, + doCheck ? + stdenv.isLinux + && (!stdenv.isx86_32) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch, + enablePolly ? false, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -50,266 +55,311 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - let - checkDeps = ps: with ps; [ psutil ]; - in python3.withPackages checkDeps - else python3; - -in stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; - - inherit src; - sourceRoot = "${src.name}/${pname}"; - - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake python ] - ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ncurses ] - ++ [ zlib ]; - - nativeCheckInputs = [ which ]; - - patches = [ - # When cross-compiling we configure llvm-config-native with an approximation - # of the flags used for the normal LLVM build. To avoid the need for building - # a native libLLVM.so (which would fail) we force llvm-config to be linked - # statically against the necessary LLVM components always. - ../../common/llvm/llvm-config-link-static.patch - - ./gnu-install-dirs.patch - - # Fix random compiler crashes: https://bugs.llvm.org/show_bug.cgi?id=50611 - (fetchpatch { - url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/4764a4f8c920912a2bfd8b0eea57273acfe0d8a8/trunk/no-strict-aliasing-DwarfCompileUnit.patch"; - sha256 = "18l6mrvm2vmwm77ckcnbjvh6ybvn72rhrb799d4qzwac4x2ifl7g"; - stripLen = 1; - }) - - # Fix musl build. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; - relative = "llvm"; - hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; - }) - - # Backport gcc-13 fixes with missing includes. - (fetchpatch { - name = "signals-gcc-13.patch"; - url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch"; - hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs="; - stripLen = 1; - }) - (fetchpatch { - name = "base64-gcc-13.patch"; - url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch"; - hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U="; - stripLen = 1; - }) - ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' - ) - ''; - - # hacky fix: created binaries need to be run before installation - preBuild = '' - mkdir -p $out/ - ln -sv $PWD/lib $out - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (enableGoldPlugin) [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( + python = + if doCheck then let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; + checkDeps = ps: with ps; [ psutil ]; + in + python3.withPackages checkDeps + else + python3; - postBuild = '' - rm -fR $out - ''; +in +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - preCheck = '' - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib - ''; + inherit src; + sourceRoot = "${src.name}/${pname}"; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + outputs = [ + "out" + "lib" + "dev" + "python" + ]; - inherit doCheck; + nativeBuildInputs = + [ + cmake + python + ] + ++ optionals enableManpages [ + python3.pkgs.sphinx + python3.pkgs.recommonmark + ]; - checkTarget = "check-all"; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + propagatedBuildInputs = optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ ncurses ] ++ [ + zlib + ]; + + nativeCheckInputs = [ which ]; + + patches = [ + # When cross-compiling we configure llvm-config-native with an approximation + # of the flags used for the normal LLVM build. To avoid the need for building + # a native libLLVM.so (which would fail) we force llvm-config to be linked + # statically against the necessary LLVM components always. + ../../common/llvm/llvm-config-link-static.patch + + ./gnu-install-dirs.patch + + # Fix random compiler crashes: https://bugs.llvm.org/show_bug.cgi?id=50611 + (fetchpatch { + url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/4764a4f8c920912a2bfd8b0eea57273acfe0d8a8/trunk/no-strict-aliasing-DwarfCompileUnit.patch"; + sha256 = "18l6mrvm2vmwm77ckcnbjvh6ybvn72rhrb799d4qzwac4x2ifl7g"; + stripLen = 1; + }) + + # Fix musl build. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; + relative = "llvm"; + hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; + }) + + # Backport gcc-13 fixes with missing includes. + (fetchpatch { + name = "signals-gcc-13.patch"; + url = "https://github.com/llvm/llvm-project/commit/ff1681ddb303223973653f7f5f3f3435b48a1983.patch"; + hash = "sha256-CXwYxQezTq5vdmc8Yn88BUAEly6YZ5VEIA6X3y5NNOs="; + stripLen = 1; + }) + (fetchpatch { + name = "base64-gcc-13.patch"; + url = "https://github.com/llvm/llvm-project/commit/5e9be93566f39ee6cecd579401e453eccfbe81e5.patch"; + hash = "sha256-PAwrVrvffPd7tphpwCkYiz+67szPRzRB2TXBvKfzQ7U="; + stripLen = 1; + }) + ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - buildPhase = '' - make docs-llvm-man - ''; + # hacky fix: created binaries need to be run before installation + preBuild = '' + mkdir -p $out/ + ln -sv $PWD/lib $out + ''; - propagatedBuildInputs = []; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - installPhase = '' - make -C docs install - ''; + hardeningDisable = [ "trivialautovarinit" ]; - postPatch = null; - postInstall = null; + cmakeBuildType = if debugVersion then "Debug" else "Release"; - outputs = [ "out" ]; + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; - doCheck = false; + postBuild = '' + rm -fR $out + ''; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + preCheck = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib + ''; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + buildPhase = '' + make docs-llvm-man + ''; + + propagatedBuildInputs = [ ]; + + installPhase = '' + make -C docs install + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/14/default.nix b/pkgs/by-name/ll/llvm/14/default.nix index 588dc8f..6430405 100644 --- a/pkgs/by-name/ll/llvm/14/default.nix +++ b/pkgs/by-name/ll/llvm/14/default.nix @@ -1,23 +1,30 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM version's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + substitute, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM version's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -25,356 +32,406 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "14.0.6"; sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE="; } + officialRelease ? { + version = "14.0.6"; + sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE="; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-11-15-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-11-15-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # TODO: lldb/docs/index.rst:155:toctree contains reference to nonexisting document 'design/structureddataplugins' - # lldb-manpages = lowPrio (tools.lldb.override { - # enableManpages = true; - # python3 = pkgs.python3; # don't use python-boot - # }); + # TODO: lldb/docs/index.rst:155:toctree contains reference to nonexisting document 'design/structureddataplugins' + # lldb-manpages = lowPrio (tools.lldb.override { + # enableManpages = true; + # python3 = pkgs.python3; # don't use python-boot + # }); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc - else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.libc == null then + tools.clangNoLibc + else if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ./lld/fix-root-src-dir.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ + ./lld/gnu-install-dirs.patch + ./lld/fix-root-src-dir.patch + ]; + inherit llvm_meta; + }; - lldb = callPackage ../common/lldb.nix { - patches = - let - resourceDirPatch = callPackage - ({ substituteAll, libclang }: substituteAll - { + lldb = callPackage ../common/lldb.nix { + patches = + let + resourceDirPatch = callPackage ( + { substituteAll, libclang }: + substituteAll { src = ./lldb/resource-dir.patch; clangLibDir = "${libclang.lib}/lib"; - }) - { }; - in - [ - ./lldb/procfs.patch - resourceDirPatch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + } + ) { }; + in + [ + ./lldb/procfs.patch + resourceDirPatch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; + + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ + "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + "-nostdlib++" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - "-nostdlib++" - ]; - }; + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ + "-rtlib=compiler-rt" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ]; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = [ - "-rtlib=compiler-rt" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ]; - }; + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" ]; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = [ "-nostartfiles" ]; - }; + clangNoCompilerRtWithLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + }; - clangNoCompilerRtWithLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - }; + } + ); - }); + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc; }); - in { + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../common/compiler-rt/armv6-scudo-no-yield.patch + ../common/compiler-rt/armv6-scudo-libatomic.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ../common/compiler-rt/armv6-scudo-no-yield.patch - ../common/compiler-rt/armv6-scudo-libatomic.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + ./compiler-rt/armv7l.patch + # Fix build on armv6l + ../common/compiler-rt/armv6-mcr-dmb.patch + ../common/compiler-rt/armv6-sync-ops-no-thumb.patch + ../common/compiler-rt/armv6-no-ldrexd-strexd.patch + ../common/compiler-rt/armv6-scudo-no-yield.patch + ../common/compiler-rt/armv6-scudo-libatomic.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/codesign.patch # Revert compiler-rt commit that makes codesign mandatory - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - ./compiler-rt/armv7l.patch - # Fix build on armv6l - ../common/compiler-rt/armv6-mcr-dmb.patch - ../common/compiler-rt/armv6-sync-ops-no-thumb.patch - ../common/compiler-rt/armv6-no-ldrexd-strexd.patch - ../common/compiler-rt/armv6-scudo-no-yield.patch - ../common/compiler-rt/armv6-scudo-libatomic.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid then libraries.compiler-rt-libc else libraries.compiler-rt-no-libc; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + stdenv = overrideCC stdenv buildLlvmTools.clang; - stdenv = overrideCC stdenv buildLlvmTools.clang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - - libcxx = callPackage ../common/libcxx { - patches = [ - (substitute { - src = ../common/libcxxabi/wasm.patch; - replacements = [ - "--replace-fail" "/cmake/" "/llvm/cmake/" + libcxx = callPackage ../common/libcxx { + patches = + [ + (substitute { + src = ../common/libcxxabi/wasm.patch; + replacements = [ + "--replace-fail" + "/cmake/" + "/llvm/cmake/" + ]; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (substitute { + src = ../common/libcxx/libcxx-0001-musl-hacks.patch; + replacements = [ + "--replace-fail" + "/include/" + "/libcxx/include/" + ]; + }) ]; - }) - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (substitute { - src = ../common/libcxx/libcxx-0001-musl-hacks.patch; - replacements = [ - "--replace-fail" "/include/" "/libcxx/include/" - ]; - }) - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - patches = [ - ./libunwind/gnu-install-dirs.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + patches = [ ./libunwind/gnu-install-dirs.patch ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/gnu-install-dirs.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/gnu-install-dirs.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/14/llvm/default.nix b/pkgs/by-name/ll/llvm/14/llvm/default.nix index 124d07e..8aa5d5f 100644 --- a/pkgs/by-name/ll/llvm/14/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/14/llvm/default.nix @@ -1,38 +1,43 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, fetchpatch -, cmake -, python3 -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, buildLlvmTools -, debugVersion ? false -, doCheck ? stdenv.isLinux && (!stdenv.isx86_32) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -# broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 -# broken for the armv7l builder -, enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + fetchpatch, + cmake, + python3, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + buildLlvmTools, + debugVersion ? false, + doCheck ? + stdenv.isLinux + && (!stdenv.isx86_32) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -51,273 +56,324 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - let - checkDeps = ps: with ps; [ psutil ]; - in python3.withPackages checkDeps - else python3; - -in stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; - - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); - - sourceRoot = "${src.name}/${pname}"; - - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake python ] - ++ optionals enableManpages [ python3.pkgs.sphinx python3.pkgs.recommonmark ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = [ ncurses zlib ]; - - nativeCheckInputs = [ which ]; - - patches = [ - ./gnu-install-dirs.patch - - # Fix musl build. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; - relative = "llvm"; - hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; - }) - # fix RuntimeDyld usage on aarch64-linux (e.g. python312Packages.numba tests) - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/2e1b838a889f9793d4bcd5dbfe10db9796b77143.patch"; - relative = "llvm"; - hash = "sha256-Ot45P/iwaR4hkcM3xtLwfryQNgHI6pv6ADjv98tgdZA="; - }) - ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + optionalString stdenv.hostPlatform.isRiscV '' - rm test/ExecutionEngine/frem.ll - rm test/ExecutionEngine/mov64zext32.ll - rm test/ExecutionEngine/test-interp-vec-arithm_float.ll - rm test/ExecutionEngine/test-interp-vec-arithm_int.ll - rm test/ExecutionEngine/test-interp-vec-logical.ll - rm test/ExecutionEngine/test-interp-vec-setcond-fp.ll - rm test/ExecutionEngine/test-interp-vec-setcond-int.ll - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "CrashRecoveryTest.cpp" "" - rm unittests/Support/CrashRecoveryTest.cpp - substituteInPlace unittests/ExecutionEngine/Orc/CMakeLists.txt \ - --replace "OrcCAPITest.cpp" "" - rm unittests/ExecutionEngine/Orc/OrcCAPITest.cpp - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' - ) - ''; - - # hacky fix: created binaries need to be run before installation - preBuild = '' - mkdir -p $out/ - ln -sv $PWD/lib $out - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (enableGoldPlugin) [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( + python = + if doCheck then let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; + checkDeps = ps: with ps; [ psutil ]; + in + python3.withPackages checkDeps + else + python3; - postBuild = '' - rm -fR $out - ''; +in +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - preCheck = '' - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib - ''; + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + sourceRoot = "${src.name}/${pname}"; - inherit doCheck; + outputs = [ + "out" + "lib" + "dev" + "python" + ]; - checkTarget = "check-all"; + nativeBuildInputs = + [ + cmake + python + ] + ++ optionals enableManpages [ + python3.pkgs.sphinx + python3.pkgs.recommonmark + ]; - # For the update script: - passthru.monorepoSrc = monorepoSrc; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + propagatedBuildInputs = [ + ncurses + zlib + ]; + + nativeCheckInputs = [ which ]; + + patches = [ + ./gnu-install-dirs.patch + + # Fix musl build. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; + relative = "llvm"; + hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; + }) + # fix RuntimeDyld usage on aarch64-linux (e.g. python312Packages.numba tests) + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/2e1b838a889f9793d4bcd5dbfe10db9796b77143.patch"; + relative = "llvm"; + hash = "sha256-Ot45P/iwaR4hkcM3xtLwfryQNgHI6pv6ADjv98tgdZA="; + }) + ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + optionalString stdenv.hostPlatform.isRiscV '' + rm test/ExecutionEngine/frem.ll + rm test/ExecutionEngine/mov64zext32.ll + rm test/ExecutionEngine/test-interp-vec-arithm_float.ll + rm test/ExecutionEngine/test-interp-vec-arithm_int.ll + rm test/ExecutionEngine/test-interp-vec-logical.ll + rm test/ExecutionEngine/test-interp-vec-setcond-fp.ll + rm test/ExecutionEngine/test-interp-vec-setcond-int.ll + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "CrashRecoveryTest.cpp" "" + rm unittests/Support/CrashRecoveryTest.cpp + substituteInPlace unittests/ExecutionEngine/Orc/CMakeLists.txt \ + --replace "OrcCAPITest.cpp" "" + rm unittests/ExecutionEngine/Orc/OrcCAPITest.cpp + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS='-svj''${NIX_BUILD_CORES} --no-progress-bar' + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - buildPhase = '' - make docs-llvm-man - ''; + # hacky fix: created binaries need to be run before installation + preBuild = '' + mkdir -p $out/ + ln -sv $PWD/lib $out + ''; - propagatedBuildInputs = []; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - installPhase = '' - make -C docs install - ''; + hardeningDisable = [ "trivialautovarinit" ]; - postPatch = null; - postInstall = null; + cmakeBuildType = if debugVersion then "Debug" else "Release"; - outputs = [ "out" ]; + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_CMAKE_DIR=${placeholder "dev"}/lib/cmake/llvm/" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; - doCheck = false; + postBuild = '' + rm -fR $out + ''; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + preCheck = '' + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib + ''; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + buildPhase = '' + make docs-llvm-man + ''; + + propagatedBuildInputs = [ ]; + + installPhase = '' + make -C docs install + ''; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/15/default.nix b/pkgs/by-name/ll/llvm/15/default.nix index bfcbe2b..733129c 100644 --- a/pkgs/by-name/ll/llvm/15/default.nix +++ b/pkgs/by-name/ll/llvm/15/default.nix @@ -1,23 +1,32 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, fetchpatch, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM version's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + ninja, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + fetchpatch, + substitute, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM version's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -25,372 +34,438 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "15.0.7"; sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s="; } + officialRelease ? { + version = "15.0.7"; + sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s="; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - lldbPlugins = lib.makeExtensible (lldbPlugins: let - callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; }); - in { - llef = callPackage ../common/lldb-plugins/llef.nix {}; - }); + lldbPlugins = lib.makeExtensible ( + lldbPlugins: + let + callPackage = newScope ( + lldbPlugins + // { + inherit stdenv; + inherit (tools) lldb; + } + ); + in + { + llef = callPackage ../common/lldb-plugins/llef.nix { }; + } + ); - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-11-15-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-11-15-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - lldb-manpages = lowPrio (tools.lldb.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + lldb-manpages = lowPrio ( + tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.libc == null then tools.clangNoLibc - else if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.libc == null then + tools.clangNoLibc + else if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ ./lld/gnu-install-dirs.patch ]; + inherit llvm_meta; + }; - lldb = callPackage ../common/lldb.nix { - patches = - let - resourceDirPatch = callPackage - ({ substituteAll, libclang }: substituteAll - { + lldb = callPackage ../common/lldb.nix { + patches = + let + resourceDirPatch = callPackage ( + { substituteAll, libclang }: + substituteAll { src = ./lldb/resource-dir.patch; clangLibDir = "${libclang.lib}/lib"; - }) - { }; - in - [ - ./lldb/procfs.patch - resourceDirPatch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + } + ) { }; + in + [ + ./lldb/procfs.patch + resourceDirPatch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" "-nostdlib++" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = - [ + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRtWithLibc = wrapCCWith (rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - } // lib.optionalAttrs stdenv.targetPlatform.isWasm { - nixSupport.cc-cflags = [ "-fno-exceptions" ]; - }); + clangNoCompilerRtWithLibc = wrapCCWith ( + rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + } + // lib.optionalAttrs stdenv.targetPlatform.isWasm { nixSupport.cc-cflags = [ "-fno-exceptions" ]; } + ); - }); + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid then libraries.compiler-rt-libc else libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - # `libcxx` requires a fairly modern C++ compiler, - # so: we use the clang from this LLVM package set instead of the regular - # stdenv's compiler. - libcxx = callPackage ../common/libcxx { - patches = [ - # See: - # - https://reviews.llvm.org/D133566 - # - https://github.com/NixOS/nixpkgs/issues/214524#issuecomment-1429146432 - # !!! Drop in LLVM 16+ - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/57c7bb3ec89565c68f858d316504668f9d214d59.patch"; - hash = "sha256-B07vHmSjy5BhhkGSj3e1E0XmMv5/9+mvC/k70Z29VwY="; - }) - (substitute { - src = ../common/libcxxabi/wasm.patch; - replacements = [ - "--replace-fail" "/cmake/" "/llvm/cmake/" + # `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ../common/libcxx { + patches = + [ + # See: + # - https://reviews.llvm.org/D133566 + # - https://github.com/NixOS/nixpkgs/issues/214524#issuecomment-1429146432 + # !!! Drop in LLVM 16+ + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/57c7bb3ec89565c68f858d316504668f9d214d59.patch"; + hash = "sha256-B07vHmSjy5BhhkGSj3e1E0XmMv5/9+mvC/k70Z29VwY="; + }) + (substitute { + src = ../common/libcxxabi/wasm.patch; + replacements = [ + "--replace-fail" + "/cmake/" + "/llvm/cmake/" + ]; + }) + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (substitute { + src = ../common/libcxx/libcxx-0001-musl-hacks.patch; + replacements = [ + "--replace-fail" + "/include/" + "/libcxx/include/" + ]; + }) ]; - }) - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (substitute { - src = ../common/libcxx/libcxx-0001-musl-hacks.patch; - replacements = [ - "--replace-fail" "/include/" "/libcxx/include/" - ]; - }) - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - patches = [ - ./libunwind/gnu-install-dirs.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + patches = [ ./libunwind/gnu-install-dirs.patch ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/fix-find-tool.patch - ./openmp/gnu-install-dirs.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/fix-find-tool.patch + ./openmp/gnu-install-dirs.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools) +in +{ + inherit + tools + libraries + release_version + lldbPlugins + ; +} +// (noExtend libraries) +// (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/15/llvm/default.nix b/pkgs/by-name/ll/llvm/15/llvm/default.nix index d7ebcbc..bf31db0 100644 --- a/pkgs/by-name/ll/llvm/15/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/15/llvm/default.nix @@ -1,43 +1,50 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, fetchpatch -, cmake -, darwin -, ninja -, python3 -, python3Packages -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, sysctl -, buildLlvmTools -, debugVersion ? false -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ - # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - # broken for the armv7l builder - && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + fetchpatch, + cmake, + darwin, + ninja, + python3, + python3Packages, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + sysctl, + buildLlvmTools, + debugVersion ? false, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + enablePFM ? + stdenv.isLinux # PFM only supports Linux + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -56,387 +63,439 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - # Note that we _explicitly_ ask for a python interpreter for our host - # platform here; the splicing that would ordinarily take care of this for - # us does not seem to work once we use `withPackages`. - let - checkDeps = ps: with ps; [ psutil ]; - in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps - else python3; - -in stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; - - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); - - sourceRoot = "${src.name}/${pname}"; - - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake ninja python ] - ++ optionals enableManpages [ - # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; - # splicing does *not* work with the latter. (TODO: fix) - python3Packages.sphinx python3Packages.recommonmark - ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = [ ncurses zlib ]; - - nativeCheckInputs = [ - which - ] ++ lib.optional stdenv.isDarwin sysctl; - - patches = [ - ./gnu-install-dirs.patch - - # Running the tests involves invoking binaries (like `opt`) that depend on - # the LLVM dylibs and reference them by absolute install path (i.e. their - # nix store path). - # - # Because we have not yet run the install phase (we're running these tests - # as part of `checkPhase` instead of `installCheckPhase`) these absolute - # paths do not exist yet; to work around this we point the loader (`ld` on - # unix, `dyld` on macOS) at the `lib` directory which will later become this - # package's `lib` output. - # - # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` - # dir but: - # - this doesn't generalize well to other platforms; `lit` doesn't forward - # `DYLD_LIBRARY_PATH` (macOS): - # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 - # - even if `lit` forwarded this env var, we actually cannot set - # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because - # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for - # "protected processes" (i.e. the python interpreter that runs `lit`): - # https://stackoverflow.com/a/35570229 - # - other LLVM subprojects deal with this issue by having their `lit` - # configuration set these env vars for us; it makes sense to do the same - # for LLVM: - # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 - # - # !!! TODO: look into upstreaming this patch - ./llvm-lit-cfg-add-libs-to-dylib-path.patch - - # `lit` has a mode where it executes run lines as a shell script which is - # constructs; this is problematic for macOS because it means that there's - # another process in between `lit` and the binaries being tested. As noted - # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our - # tests fail with dyld errors. - # - # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when - # present in the test configuration. - # - # It's not clear to me why this isn't an issue for LLVM developers running - # on macOS (nothing about this _seems_ nix specific).. - ./lit-shell-script-runner-set-dyld-library-path.patch - - # Fix musl build. - (fetchpatch { - url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; - relative = "llvm"; - hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; - }) - ] ++ lib.optionals enablePolly [ - ./gnu-install-dirs-polly.patch - - # Just like the `llvm-lit-cfg` patch, but for `polly`. - ./polly-lit-cfg-add-libs-to-dylib-path.patch - ]; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - - # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick - # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 - rm test/MC/ELF/cfi-version.ll - - # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) - # and thus fails under the sandbox: - substituteInPlace unittests/Support/Host.cpp \ - --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" - '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' - # This test tries to call the intrinsics `@llvm.roundeven.f32` and - # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` - # and `roundeven` on x86_64 macOS. - # - # However these functions are glibc specific so the test fails: - # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html - # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html - # - # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it - # pass there? - substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ - --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ - --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" - - # This test fails on darwin x86_64 because `sw_vers` reports a different - # macOS version than what LLVM finds by reading - # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into - # the sandbox on macOS). - # - # The `sw_vers` provided by nixpkgs reports the macOS version associated - # with the `CoreFoundation` framework with which it was built. Because - # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what - # `sw_vers` reports is not guaranteed to match the macOS version of the host - # that's building this derivation. - # - # Astute readers will note that we only _patch_ this test on aarch64-darwin - # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. - # So why does this test pass on aarch64? - # - # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ - # CoreFoundation framework instead of the nixpkgs provided one. - # - # Not entirely sure what the right fix is here. I'm assuming aarch64 - # `sw_vers` doesn't intentionally link against the host `CoreFoundation` - # (still digging into how this ends up happening, will follow up) but that - # aside I think the more pertinent question is: should we be patching LLVM's - # macOS version detection logic to use `sw_vers` instead of reading host - # paths? This *is* a way in which details about builder machines can creep - # into the artifacts that are produced, affecting reproducibility, but it's - # not clear to me when/where/for what this even gets used in LLVM. - # - # TODO(@rrbutani): fix/follow-up - substituteInPlace unittests/Support/Host.cpp \ - --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" - - # This test fails with a `dysmutil` crash; have not yet dug into what's - # going on here (TODO(@rrbutani)). - rm test/tools/dsymutil/ARM/obfuscated.test - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - # timing-based tests are trouble - rm utils/lit/tests/googletest-timeout.py - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - - # !!! Note: these tests are removed in LLVM 16. - # - # See here for context: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999790443 - rm test/CodeGen/RISCV/rv32zbp.ll - rm test/CodeGen/RISCV/rv64zbp.ll - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" - ) - ''; - - # Defensive check: some paths (that we make symlinks to) depend on the release - # version, for example: - # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 - # - # So we want to sure that the version in the source matches the release - # version we were given. - # - # We do this check here, in the LLVM build, because it happens early. - postConfigure = let - v = lib.versions; - major = v.major release_version; - minor = v.minor release_version; - patch = v.patch release_version; - in '' - # $1: part, $2: expected - check_version() { - part="''${1^^}" - part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - - if [[ "$part" != "$2" ]]; then - echo >&2 \ - "mismatch in the $1 version! we have version ${release_version}" \ - "and expected the $1 version to be '$2'; the source has '$part' instead" - exit 3 - fi - } - - check_version major ${major} - check_version minor ${minor} - check_version patch ${patch} - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" - ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (enableGoldPlugin) [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( + python = + if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; + checkDeps = ps: with ps; [ psutil ]; + in + pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else + python3; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; +in +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - inherit doCheck; + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - checkTarget = "check-all"; + sourceRoot = "${src.name}/${pname}"; - # For the update script: - passthru.monorepoSrc = monorepoSrc; + outputs = [ + "out" + "lib" + "dev" + "python" + ]; - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + nativeBuildInputs = + [ + cmake + ninja + python + ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx + python3Packages.recommonmark + ]; + + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis + + propagatedBuildInputs = [ + ncurses + zlib + ]; + + nativeCheckInputs = [ which ] ++ lib.optional stdenv.isDarwin sysctl; + + patches = + [ + ./gnu-install-dirs.patch + + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch + + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + + # Fix musl build. + (fetchpatch { + url = "https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67.patch"; + relative = "llvm"; + hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA="; + }) + ] + ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch + + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/Support/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers"}" + '' + + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on x86_64 macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + # TODO(@rrbutani): this seems to run fine on `aarch64-darwin`, why does it + # pass there? + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/Support/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + # timing-based tests are trouble + rm utils/lit/tests/googletest-timeout.py + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + + # !!! Note: these tests are removed in LLVM 16. + # + # See here for context: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999790443 + rm test/CodeGen/RISCV/rv32zbp.ll + rm test/CodeGen/RISCV/rv64zbp.ll + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - propagatedBuildInputs = []; + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = + let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in + '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - ninjaFlags = [ "docs-llvm-man" ]; - installTargets = [ "install-docs-llvm-man" ]; + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } - postPatch = null; - postInstall = null; + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; - outputs = [ "out" ]; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - doCheck = false; + hardeningDisable = [ "trivialautovarinit" ]; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + cmakeBuildType = if debugVersion then "Debug" else "Release"; + + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals (enableGoldPlugin) [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = [ ]; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/16/default.nix b/pkgs/by-name/ll/llvm/16/default.nix index 5dd07d7..6f1fe27 100644 --- a/pkgs/by-name/ll/llvm/16/default.nix +++ b/pkgs/by-name/ll/llvm/16/default.nix @@ -1,23 +1,30 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM verion's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + ninja, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM verion's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -25,365 +32,431 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "16.0.6"; sha256 = "sha256-fspqSReX+VD+Nl/Cfq+tDcdPtnQPV1IRopNDfd5VtUs="; } + officialRelease ? { + version = "16.0.6"; + sha256 = "sha256-fspqSReX+VD+Nl/Cfq+tDcdPtnQPV1IRopNDfd5VtUs="; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - lldbPlugins = lib.makeExtensible (lldbPlugins: let - callPackage = newScope (lldbPlugins // { inherit stdenv; inherit (tools) lldb; }); - in { - llef = callPackage ../common/lldb-plugins/llef.nix {}; - }); + lldbPlugins = lib.makeExtensible ( + lldbPlugins: + let + callPackage = newScope ( + lldbPlugins + // { + inherit stdenv; + inherit (tools) lldb; + } + ); + in + { + llef = callPackage ../common/lldb-plugins/llef.nix { }; + } + ); - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - major = lib.versions.major release_version; - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + major = lib.versions.major release_version; + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - lldb-manpages = lowPrio (tools.lldb.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + lldb-manpages = lowPrio ( + tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ./lld/add-table-base.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ + ./lld/gnu-install-dirs.patch + ./lld/add-table-base.patch + ]; + inherit llvm_meta; + }; - mlir = callPackage ../common/mlir { - inherit llvm_meta; - }; + mlir = callPackage ../common/mlir { inherit llvm_meta; }; - lldb = callPackage ../common/lldb.nix { - src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/lldb "$out" - '') { }; - patches = - let - resourceDirPatch = callPackage - ({ substituteAll, libclang }: substituteAll - { + lldb = callPackage ../common/lldb.nix { + src = callPackage ( + { runCommand }: + runCommand "lldb-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/lldb "$out" + '' + ) { }; + patches = + let + resourceDirPatch = callPackage ( + { substituteAll, libclang }: + substituteAll { src = ./lldb/resource-dir.patch; clangLibDir = "${libclang.lib}/lib"; - }) - { }; - in - [ - # FIXME: do we need this? ./procfs.patch - resourceDirPatch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + } + ) { }; + in + [ + # FIXME: do we need this? ./procfs.patch + resourceDirPatch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" "-nostdlib++" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = - [ + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRtWithLibc = wrapCCWith (rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - } // lib.optionalAttrs stdenv.targetPlatform.isWasm { - nixSupport.cc-cflags = [ "-fno-exceptions" ]; - }); + clangNoCompilerRtWithLibc = wrapCCWith ( + rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + } + // lib.optionalAttrs stdenv.targetPlatform.isWasm { nixSupport.cc-cflags = [ "-fno-exceptions" ]; } + ); - # Has to be in tools despite mostly being a library, - # because we use a native helper executable from a - # non-cross build in cross builds. - libclc = callPackage ../common/libclc.nix { - inherit buildLlvmTools; - }; - }); + # Has to be in tools despite mostly being a library, + # because we use a native helper executable from a + # non-cross build in cross builds. + libclc = callPackage ../common/libclc.nix { inherit buildLlvmTools; }; + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if + stdenv.hostPlatform.useLLVM or false + || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) + then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin then + libraries.compiler-rt-libc + else + libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - # `libcxx` requires a fairly modern C++ compiler, - # so: we use the clang from this LLVM package set instead of the regular - # stdenv's compiler. - libcxx = callPackage ../common/libcxx { - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + # `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ../common/libcxx { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - patches = [ - ./libunwind/gnu-install-dirs.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + patches = [ ./libunwind/gnu-install-dirs.patch ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/fix-find-tool.patch - ./openmp/gnu-install-dirs.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/fix-find-tool.patch + ./openmp/gnu-install-dirs.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version lldbPlugins; } // (noExtend libraries) // (noExtend tools) +in +{ + inherit + tools + libraries + release_version + lldbPlugins + ; +} +// (noExtend libraries) +// (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/16/llvm/default.nix b/pkgs/by-name/ll/llvm/16/llvm/default.nix index 0a8d877..efd73b7 100644 --- a/pkgs/by-name/ll/llvm/16/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/16/llvm/default.nix @@ -1,43 +1,50 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, cmake -, darwin -, ninja -, python3 -, python3Packages -, libffi -# TODO: Gold plugin on LLVM16 has a severe memory corruption bug: https://github.com/llvm/llvm-project/issues/61350. -, enableGoldPlugin ? false -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, sysctl -, buildLlvmTools -, debugVersion ? false -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ - # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - # broken for the armv7l builder - && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + cmake, + darwin, + ninja, + python3, + python3Packages, + libffi, + # TODO: Gold plugin on LLVM16 has a severe memory corruption bug: https://github.com/llvm/llvm-project/issues/61350. + enableGoldPlugin ? false, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + sysctl, + buildLlvmTools, + debugVersion ? false, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + enablePFM ? + stdenv.isLinux # PFM only supports Linux + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -56,380 +63,436 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - # Note that we _explicitly_ ask for a python interpreter for our host - # platform here; the splicing that would ordinarily take care of this for - # us does not seem to work once we use `withPackages`. - let - checkDeps = ps: with ps; [ psutil ]; - in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps - else python3; + python = + if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. + let + checkDeps = ps: with ps; [ psutil ]; + in + pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else + python3; in - assert (lib.assertMsg (!enableGoldPlugin) "Gold plugin cannot be enabled on LLVM16 due to a upstream issue: https://github.com/llvm/llvm-project/issues/61350"); - stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; +assert ( + lib.assertMsg (!enableGoldPlugin) + "Gold plugin cannot be enabled on LLVM16 due to a upstream issue: https://github.com/llvm/llvm-project/issues/61350" +); +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - sourceRoot = "${src.name}/${pname}"; + sourceRoot = "${src.name}/${pname}"; - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake ninja python ] - ++ optionals enableManpages [ - # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; - # splicing does *not* work with the latter. (TODO: fix) - python3Packages.sphinx python3Packages.recommonmark + outputs = [ + "out" + "lib" + "dev" + "python" ]; - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis + nativeBuildInputs = + [ + cmake + ninja + python + ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx + python3Packages.recommonmark + ]; - propagatedBuildInputs = [ ncurses zlib ]; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - nativeCheckInputs = [ - which - ] ++ lib.optional stdenv.isDarwin sysctl; - - patches = [ - ./gnu-install-dirs.patch - - # Running the tests involves invoking binaries (like `opt`) that depend on - # the LLVM dylibs and reference them by absolute install path (i.e. their - # nix store path). - # - # Because we have not yet run the install phase (we're running these tests - # as part of `checkPhase` instead of `installCheckPhase`) these absolute - # paths do not exist yet; to work around this we point the loader (`ld` on - # unix, `dyld` on macOS) at the `lib` directory which will later become this - # package's `lib` output. - # - # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` - # dir but: - # - this doesn't generalize well to other platforms; `lit` doesn't forward - # `DYLD_LIBRARY_PATH` (macOS): - # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 - # - even if `lit` forwarded this env var, we actually cannot set - # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because - # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for - # "protected processes" (i.e. the python interpreter that runs `lit`): - # https://stackoverflow.com/a/35570229 - # - other LLVM subprojects deal with this issue by having their `lit` - # configuration set these env vars for us; it makes sense to do the same - # for LLVM: - # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 - # - # !!! TODO: look into upstreaming this patch - ./llvm-lit-cfg-add-libs-to-dylib-path.patch - - # `lit` has a mode where it executes run lines as a shell script which is - # constructs; this is problematic for macOS because it means that there's - # another process in between `lit` and the binaries being tested. As noted - # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our - # tests fail with dyld errors. - # - # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when - # present in the test configuration. - # - # It's not clear to me why this isn't an issue for LLVM developers running - # on macOS (nothing about this _seems_ nix specific).. - ./lit-shell-script-runner-set-dyld-library-path.patch - ] ++ lib.optionals enablePolly [ - ./gnu-install-dirs-polly.patch - - # Just like the `llvm-lit-cfg` patch, but for `polly`. - ./polly-lit-cfg-add-libs-to-dylib-path.patch - ]; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - - # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick - # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 - rm test/MC/ELF/cfi-version.ll - - # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) - # and thus fails under the sandbox: - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" - - # This test tries to call the intrinsics `@llvm.roundeven.f32` and - # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` - # and `roundeven` on macOS. - # - # However these functions are glibc specific so the test fails: - # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html - # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html - # - substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ - --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ - --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" - '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' - # This test fails on darwin x86_64 because `sw_vers` reports a different - # macOS version than what LLVM finds by reading - # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into - # the sandbox on macOS). - # - # The `sw_vers` provided by nixpkgs reports the macOS version associated - # with the `CoreFoundation` framework with which it was built. Because - # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what - # `sw_vers` reports is not guaranteed to match the macOS version of the host - # that's building this derivation. - # - # Astute readers will note that we only _patch_ this test on aarch64-darwin - # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. - # So why does this test pass on aarch64? - # - # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ - # CoreFoundation framework instead of the nixpkgs provided one. - # - # Not entirely sure what the right fix is here. I'm assuming aarch64 - # `sw_vers` doesn't intentionally link against the host `CoreFoundation` - # (still digging into how this ends up happening, will follow up) but that - # aside I think the more pertinent question is: should we be patching LLVM's - # macOS version detection logic to use `sw_vers` instead of reading host - # paths? This *is* a way in which details about builder machines can creep - # into the artifacts that are produced, affecting reproducibility, but it's - # not clear to me when/where/for what this even gets used in LLVM. - # - # TODO(@rrbutani): fix/follow-up - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" - - # This test fails with a `dysmutil` crash; have not yet dug into what's - # going on here (TODO(@rrbutani)). - rm test/tools/dsymutil/ARM/obfuscated.test - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - - # Fails in the presence of anti-virus software or other intrusion-detection software that - # modifies the atime when run. See #284056. - rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test - - # timing-based tests are trouble - rm utils/lit/tests/googletest-timeout.py - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" - ) - ''; - - # Defensive check: some paths (that we make symlinks to) depend on the release - # version, for example: - # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 - # - # So we want to sure that the version in the source matches the release - # version we were given. - # - # We do this check here, in the LLVM build, because it happens early. - postConfigure = let - v = lib.versions; - major = v.major release_version; - minor = v.minor release_version; - patch = v.patch release_version; - in '' - # $1: part, $2: expected - check_version() { - part="''${1^^}" - part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - - if [[ "$part" != "$2" ]]; then - echo >&2 \ - "mismatch in the $1 version! we have version ${release_version}" \ - "and expected the $1 version to be '$2'; the source has '$part' instead" - exit 3 - fi - } - - check_version major ${major} - check_version minor ${minor} - check_version patch ${patch} - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" + propagatedBuildInputs = [ + ncurses + zlib ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals enableGoldPlugin [ - # For LLVMgold plugin - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( - let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + nativeCheckInputs = [ which ] ++ lib.optional stdenv.isDarwin sysctl; - inherit doCheck; + patches = + [ + ./gnu-install-dirs.patch - checkTarget = "check-all"; + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch - # For the update script: - passthru.monorepoSrc = monorepoSrc; + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] + ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers"}" + + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + '' + + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + + # Fails in the presence of anti-virus software or other intrusion-detection software that + # modifies the atime when run. See #284056. + rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test + + # timing-based tests are trouble + rm utils/lit/tests/googletest-timeout.py + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - propagatedBuildInputs = []; + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = + let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in + '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - ninjaFlags = [ "docs-llvm-man" ]; - installTargets = [ "install-docs-llvm-man" ]; + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } - postPatch = null; - postInstall = null; + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; - outputs = [ "out" ]; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - doCheck = false; + hardeningDisable = [ "trivialautovarinit" ]; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + cmakeBuildType = if debugVersion then "Debug" else "Release"; + + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals enableGoldPlugin [ + # For LLVMgold plugin + "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = [ ]; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/17/default.nix b/pkgs/by-name/ll/llvm/17/default.nix index 9f4be22..a326f62 100644 --- a/pkgs/by-name/ll/llvm/17/default.nix +++ b/pkgs/by-name/ll/llvm/17/default.nix @@ -1,23 +1,31 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, fetchpatch, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM verion's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + ninja, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + fetchpatch, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM verion's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -25,355 +33,406 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "17.0.6"; sha256 = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag="; } + officialRelease ? { + version = "17.0.6"; + sha256 = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag="; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - major = lib.versions.major release_version; - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + major = lib.versions.major release_version; + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - lldb-manpages = lowPrio (tools.lldb.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + lldb-manpages = lowPrio ( + tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ./lld/add-table-base.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ + ./lld/gnu-install-dirs.patch + ./lld/add-table-base.patch + ]; + inherit llvm_meta; + }; - mlir = callPackage ../common/mlir { - inherit llvm_meta; - }; + mlir = callPackage ../common/mlir { inherit llvm_meta; }; - lldb = callPackage ../common/lldb.nix { - src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/lldb "$out" - '') { }; - patches = - [ - # FIXME: do we need this? ./procfs.patch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + lldb = callPackage ../common/lldb.nix { + src = callPackage ( + { runCommand }: + runCommand "lldb-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/lldb "$out" + '' + ) { }; + patches = + [ + # FIXME: do we need this? ./procfs.patch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" "-nostdlib++" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = - [ + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRtWithLibc = wrapCCWith (rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - } // lib.optionalAttrs stdenv.targetPlatform.isWasm { - nixSupport.cc-cflags = [ "-fno-exceptions" ]; - }); + clangNoCompilerRtWithLibc = wrapCCWith ( + rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + } + // lib.optionalAttrs stdenv.targetPlatform.isWasm { nixSupport.cc-cflags = [ "-fno-exceptions" ]; } + ); - # Has to be in tools despite mostly being a library, - # because we use a native helper executable from a - # non-cross build in cross builds. - libclc = callPackage ../common/libclc.nix { - inherit buildLlvmTools; - }; - }); + # Has to be in tools despite mostly being a library, + # because we use a native helper executable from a + # non-cross build in cross builds. + libclc = callPackage ../common/libclc.nix { inherit buildLlvmTools; }; + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if + stdenv.hostPlatform.useLLVM or false + || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) + then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - ./compiler-rt/gnu-install-dirs.patch - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # Prevent a compilation error on darwin - ./compiler-rt/darwin-targetconditionals.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + ./compiler-rt/gnu-install-dirs.patch + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # Prevent a compilation error on darwin + ./compiler-rt/darwin-targetconditionals.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin then + libraries.compiler-rt-libc + else + libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - # `libcxx` requires a fairly modern C++ compiler, - # so: we use the clang from this LLVM package set instead of the regular - # stdenv's compiler. - libcxx = callPackage ../common/libcxx { - patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ - # https://github.com/llvm/llvm-project/issues/64226 - (fetchpatch { - name = "0042-mbstate_t-not-defined.patch"; - url = "https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch"; - hash = "sha256-jo+DYA6zuSv9OH3A0bYwY5TlkWprup4OKQ7rfK1WHBI="; - }) - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + # `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ../common/libcxx { + patches = + lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") + [ + # https://github.com/llvm/llvm-project/issues/64226 + (fetchpatch { + name = "0042-mbstate_t-not-defined.patch"; + url = "https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch"; + hash = "sha256-jo+DYA6zuSv9OH3A0bYwY5TlkWprup4OKQ7rfK1WHBI="; + }) + ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/fix-find-tool.patch - ./openmp/gnu-install-dirs.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/fix-find-tool.patch + ./openmp/gnu-install-dirs.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/17/llvm/default.nix b/pkgs/by-name/ll/llvm/17/llvm/default.nix index a045bea..49294ea 100644 --- a/pkgs/by-name/ll/llvm/17/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/17/llvm/default.nix @@ -1,42 +1,49 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, cmake -, darwin -, ninja -, python3 -, python3Packages -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, sysctl -, buildLlvmTools -, debugVersion ? false -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ - # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - # broken for the armv7l builder - && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + cmake, + darwin, + ninja, + python3, + python3Packages, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + sysctl, + buildLlvmTools, + debugVersion ? false, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + enablePFM ? + stdenv.isLinux # PFM only supports Linux + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -55,377 +62,430 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - # Note that we _explicitly_ ask for a python interpreter for our host - # platform here; the splicing that would ordinarily take care of this for - # us does not seem to work once we use `withPackages`. - let - checkDeps = ps: with ps; [ psutil ]; - in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps - else python3; + python = + if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. + let + checkDeps = ps: with ps; [ psutil ]; + in + pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else + python3; in -stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - sourceRoot = "${src.name}/${pname}"; + sourceRoot = "${src.name}/${pname}"; - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake ninja python ] - ++ optionals enableManpages [ - # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; - # splicing does *not* work with the latter. (TODO: fix) - python3Packages.sphinx python3Packages.recommonmark + outputs = [ + "out" + "lib" + "dev" + "python" ]; - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis + nativeBuildInputs = + [ + cmake + ninja + python + ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx + python3Packages.recommonmark + ]; - propagatedBuildInputs = [ ncurses zlib ]; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - nativeCheckInputs = [ - which - ] ++ lib.optional stdenv.isDarwin sysctl; - - patches = [ - ./gnu-install-dirs.patch - - # Running the tests involves invoking binaries (like `opt`) that depend on - # the LLVM dylibs and reference them by absolute install path (i.e. their - # nix store path). - # - # Because we have not yet run the install phase (we're running these tests - # as part of `checkPhase` instead of `installCheckPhase`) these absolute - # paths do not exist yet; to work around this we point the loader (`ld` on - # unix, `dyld` on macOS) at the `lib` directory which will later become this - # package's `lib` output. - # - # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` - # dir but: - # - this doesn't generalize well to other platforms; `lit` doesn't forward - # `DYLD_LIBRARY_PATH` (macOS): - # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 - # - even if `lit` forwarded this env var, we actually cannot set - # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because - # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for - # "protected processes" (i.e. the python interpreter that runs `lit`): - # https://stackoverflow.com/a/35570229 - # - other LLVM subprojects deal with this issue by having their `lit` - # configuration set these env vars for us; it makes sense to do the same - # for LLVM: - # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 - # - # !!! TODO: look into upstreaming this patch - ./llvm-lit-cfg-add-libs-to-dylib-path.patch - - # `lit` has a mode where it executes run lines as a shell script which is - # constructs; this is problematic for macOS because it means that there's - # another process in between `lit` and the binaries being tested. As noted - # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our - # tests fail with dyld errors. - # - # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when - # present in the test configuration. - # - # It's not clear to me why this isn't an issue for LLVM developers running - # on macOS (nothing about this _seems_ nix specific).. - ./lit-shell-script-runner-set-dyld-library-path.patch - ] ++ lib.optionals enablePolly [ - ./gnu-install-dirs-polly.patch - - # Just like the `llvm-lit-cfg` patch, but for `polly`. - ./polly-lit-cfg-add-libs-to-dylib-path.patch - ]; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - - # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick - # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 - rm test/MC/ELF/cfi-version.ll - - # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) - # and thus fails under the sandbox: - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" - - # This test tries to call the intrinsics `@llvm.roundeven.f32` and - # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` - # and `roundeven` on macOS. - # - # However these functions are glibc specific so the test fails: - # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html - # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html - # - substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ - --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ - --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" - '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' - # This test fails on darwin x86_64 because `sw_vers` reports a different - # macOS version than what LLVM finds by reading - # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into - # the sandbox on macOS). - # - # The `sw_vers` provided by nixpkgs reports the macOS version associated - # with the `CoreFoundation` framework with which it was built. Because - # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what - # `sw_vers` reports is not guaranteed to match the macOS version of the host - # that's building this derivation. - # - # Astute readers will note that we only _patch_ this test on aarch64-darwin - # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. - # So why does this test pass on aarch64? - # - # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ - # CoreFoundation framework instead of the nixpkgs provided one. - # - # Not entirely sure what the right fix is here. I'm assuming aarch64 - # `sw_vers` doesn't intentionally link against the host `CoreFoundation` - # (still digging into how this ends up happening, will follow up) but that - # aside I think the more pertinent question is: should we be patching LLVM's - # macOS version detection logic to use `sw_vers` instead of reading host - # paths? This *is* a way in which details about builder machines can creep - # into the artifacts that are produced, affecting reproducibility, but it's - # not clear to me when/where/for what this even gets used in LLVM. - # - # TODO(@rrbutani): fix/follow-up - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" - - # This test fails with a `dysmutil` crash; have not yet dug into what's - # going on here (TODO(@rrbutani)). - rm test/tools/dsymutil/ARM/obfuscated.test - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - - # Fails in the presence of anti-virus software or other intrusion-detection software that - # modifies the atime when run. See #284056. - rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - rm test/CodeGen/RISCV/attributes.ll - rm test/CodeGen/RISCV/xtheadmempair.ll - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" - ) - ''; - - # Defensive check: some paths (that we make symlinks to) depend on the release - # version, for example: - # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 - # - # So we want to sure that the version in the source matches the release - # version we were given. - # - # We do this check here, in the LLVM build, because it happens early. - postConfigure = let - v = lib.versions; - major = v.major release_version; - minor = v.minor release_version; - patch = v.patch release_version; - in '' - # $1: part, $2: expected - check_version() { - part="''${1^^}" - part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - - if [[ "$part" != "$2" ]]; then - echo >&2 \ - "mismatch in the $1 version! we have version ${release_version}" \ - "and expected the $1 version to be '$2'; the source has '$part' instead" - exit 3 - fi - } - - check_version major ${major} - check_version minor ${minor} - check_version patch ${patch} - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" + propagatedBuildInputs = [ + ncurses + zlib ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals enableGoldPlugin [ - # For LLVMgold plugin - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( - let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + nativeCheckInputs = [ which ] ++ lib.optional stdenv.isDarwin sysctl; - inherit doCheck; + patches = + [ + ./gnu-install-dirs.patch - checkTarget = "check-all"; + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch - # For the update script: - passthru.monorepoSrc = monorepoSrc; + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] + ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers"}" + + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + '' + + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + + # Fails in the presence of anti-virus software or other intrusion-detection software that + # modifies the atime when run. See #284056. + rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + rm test/CodeGen/RISCV/attributes.ll + rm test/CodeGen/RISCV/xtheadmempair.ll + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - propagatedBuildInputs = []; + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = + let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in + '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - ninjaFlags = [ "docs-llvm-man" ]; - installTargets = [ "install-docs-llvm-man" ]; + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } - postPatch = null; - postInstall = null; + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; - outputs = [ "out" ]; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - doCheck = false; + cmakeBuildType = if debugVersion then "Debug" else "Release"; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals enableGoldPlugin [ + # For LLVMgold plugin + "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" + ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = [ ]; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/18/default.nix b/pkgs/by-name/ll/llvm/18/default.nix index 4d2b160..6d8c8f6 100644 --- a/pkgs/by-name/ll/llvm/18/default.nix +++ b/pkgs/by-name/ll/llvm/18/default.nix @@ -1,23 +1,30 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM verion's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? null +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + ninja, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM verion's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -25,343 +32,392 @@ # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? { version = "18.1.3"; sha256 = "sha256-saQGbpYd95JuudwLcdG80GL8YhadH7TUY1FC0o0ithY="; } + officialRelease ? { + version = "18.1.3"; + sha256 = "sha256-saQGbpYd95JuudwLcdG80GL8YhadH7TUY1FC0o0ithY="; + }, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - major = lib.versions.major release_version; - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + major = lib.versions.major release_version; + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - lldb-manpages = lowPrio (tools.lldb.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + lldb-manpages = lowPrio ( + tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ ./lld/gnu-install-dirs.patch ]; + inherit llvm_meta; + }; - mlir = callPackage ../common/mlir { - inherit llvm_meta; - }; + mlir = callPackage ../common/mlir { inherit llvm_meta; }; - lldb = callPackage ../common/lldb.nix { - src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/lldb "$out" - '') { }; - patches = - [ - # FIXME: do we need this? ./procfs.patch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + lldb = callPackage ../common/lldb.nix { + src = callPackage ( + { runCommand }: + runCommand "lldb-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/lldb "$out" + '' + ) { }; + patches = + [ + # FIXME: do we need this? ./procfs.patch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" "-nostdlib++" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = - [ + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRtWithLibc = wrapCCWith (rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - } // lib.optionalAttrs stdenv.targetPlatform.isWasm { - nixSupport.cc-cflags = [ "-fno-exceptions" ]; - }); + clangNoCompilerRtWithLibc = wrapCCWith ( + rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + } + // lib.optionalAttrs stdenv.targetPlatform.isWasm { nixSupport.cc-cflags = [ "-fno-exceptions" ]; } + ); - # Has to be in tools despite mostly being a library, - # because we use a native helper executable from a - # non-cross build in cross builds. - libclc = callPackage ../common/libclc.nix { - inherit buildLlvmTools; - }; - }); + # Has to be in tools despite mostly being a library, + # because we use a native helper executable from a + # non-cross build in cross builds. + libclc = callPackage ../common/libclc.nix { inherit buildLlvmTools; }; + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if + stdenv.hostPlatform.useLLVM or false + || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) + then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin then + libraries.compiler-rt-libc + else + libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - # `libcxx` requires a fairly modern C++ compiler, - # so: we use the clang from this LLVM package set instead of the regular - # stdenv's compiler. - libcxx = callPackage ../common/libcxx { - patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ - # https://github.com/llvm/llvm-project/issues/64226 - ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + # `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ../common/libcxx { + patches = + lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") + [ + # https://github.com/llvm/llvm-project/issues/64226 + ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch + ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/fix-find-tool.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/fix-find-tool.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/18/llvm/default.nix b/pkgs/by-name/ll/llvm/18/llvm/default.nix index a973276..2bd6e8a 100644 --- a/pkgs/by-name/ll/llvm/18/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/18/llvm/default.nix @@ -1,42 +1,49 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, cmake -, darwin -, ninja -, python3 -, python3Packages -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, sysctl -, buildLlvmTools -, debugVersion ? false -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ - # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - # broken for the armv7l builder - && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + cmake, + darwin, + ninja, + python3, + python3Packages, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + sysctl, + buildLlvmTools, + debugVersion ? false, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + enablePFM ? + stdenv.isLinux # PFM only supports Linux + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -55,385 +62,433 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - # Note that we _explicitly_ ask for a python interpreter for our host - # platform here; the splicing that would ordinarily take care of this for - # us does not seem to work once we use `withPackages`. - let - checkDeps = ps: with ps; [ psutil ]; - in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps - else python3; + python = + if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. + let + checkDeps = ps: with ps; [ psutil ]; + in + pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else + python3; in -stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - sourceRoot = "${src.name}/${pname}"; + sourceRoot = "${src.name}/${pname}"; - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake ninja python ] - ++ optionals enableManpages [ - # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; - # splicing does *not* work with the latter. (TODO: fix) - python3Packages.sphinx - ] ++ optionals (lib.versionOlder version "18" && enableManpages) [ - python3Packages.recommonmark - ] ++ optionals (lib.versionAtLeast version "18" && enableManpages) [ - python3Packages.myst-parser - ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = [ ncurses zlib ]; - - nativeCheckInputs = [ - which - ] ++ lib.optional stdenv.isDarwin sysctl; - - patches = [ - ./gnu-install-dirs.patch - - # Running the tests involves invoking binaries (like `opt`) that depend on - # the LLVM dylibs and reference them by absolute install path (i.e. their - # nix store path). - # - # Because we have not yet run the install phase (we're running these tests - # as part of `checkPhase` instead of `installCheckPhase`) these absolute - # paths do not exist yet; to work around this we point the loader (`ld` on - # unix, `dyld` on macOS) at the `lib` directory which will later become this - # package's `lib` output. - # - # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` - # dir but: - # - this doesn't generalize well to other platforms; `lit` doesn't forward - # `DYLD_LIBRARY_PATH` (macOS): - # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 - # - even if `lit` forwarded this env var, we actually cannot set - # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because - # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for - # "protected processes" (i.e. the python interpreter that runs `lit`): - # https://stackoverflow.com/a/35570229 - # - other LLVM subprojects deal with this issue by having their `lit` - # configuration set these env vars for us; it makes sense to do the same - # for LLVM: - # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 - # - # !!! TODO: look into upstreaming this patch - ./llvm-lit-cfg-add-libs-to-dylib-path.patch - - # `lit` has a mode where it executes run lines as a shell script which is - # constructs; this is problematic for macOS because it means that there's - # another process in between `lit` and the binaries being tested. As noted - # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our - # tests fail with dyld errors. - # - # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when - # present in the test configuration. - # - # It's not clear to me why this isn't an issue for LLVM developers running - # on macOS (nothing about this _seems_ nix specific).. - ./lit-shell-script-runner-set-dyld-library-path.patch - ] ++ lib.optionals enablePolly [ - ./gnu-install-dirs-polly.patch - - # Just like the `llvm-lit-cfg` patch, but for `polly`. - ./polly-lit-cfg-add-libs-to-dylib-path.patch - ]; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - - # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick - # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 - rm test/MC/ELF/cfi-version.ll - - # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) - # and thus fails under the sandbox: - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" - - # This test tries to call the intrinsics `@llvm.roundeven.f32` and - # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` - # and `roundeven` on macOS. - # - # However these functions are glibc specific so the test fails: - # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html - # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html - # - substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ - --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ - --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" - - # fails when run in sandbox - substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \ - --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure" - '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' - # This test fails on darwin x86_64 because `sw_vers` reports a different - # macOS version than what LLVM finds by reading - # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into - # the sandbox on macOS). - # - # The `sw_vers` provided by nixpkgs reports the macOS version associated - # with the `CoreFoundation` framework with which it was built. Because - # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what - # `sw_vers` reports is not guaranteed to match the macOS version of the host - # that's building this derivation. - # - # Astute readers will note that we only _patch_ this test on aarch64-darwin - # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. - # So why does this test pass on aarch64? - # - # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ - # CoreFoundation framework instead of the nixpkgs provided one. - # - # Not entirely sure what the right fix is here. I'm assuming aarch64 - # `sw_vers` doesn't intentionally link against the host `CoreFoundation` - # (still digging into how this ends up happening, will follow up) but that - # aside I think the more pertinent question is: should we be patching LLVM's - # macOS version detection logic to use `sw_vers` instead of reading host - # paths? This *is* a way in which details about builder machines can creep - # into the artifacts that are produced, affecting reproducibility, but it's - # not clear to me when/where/for what this even gets used in LLVM. - # - # TODO(@rrbutani): fix/follow-up - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" - - # This test fails with a `dysmutil` crash; have not yet dug into what's - # going on here (TODO(@rrbutani)). - rm test/tools/dsymutil/ARM/obfuscated.test - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - - # Fails in the presence of anti-virus software or other intrusion-detection software that - # modifies the atime when run. See #284056. - rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - rm test/CodeGen/RISCV/attributes.ll - rm test/CodeGen/RISCV/xtheadmempair.ll - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" - ) - ''; - - # Defensive check: some paths (that we make symlinks to) depend on the release - # version, for example: - # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 - # - # So we want to sure that the version in the source matches the release - # version we were given. - # - # We do this check here, in the LLVM build, because it happens early. - postConfigure = let - v = lib.versions; - major = v.major release_version; - minor = v.minor release_version; - patch = v.patch release_version; - in '' - # $1: part, $2: expected - check_version() { - part="''${1^^}" - part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - - if [[ "$part" != "$2" ]]; then - echo >&2 \ - "mismatch in the $1 version! we have version ${release_version}" \ - "and expected the $1 version to be '$2'; the source has '$part' instead" - exit 3 - fi - } - - check_version major ${major} - check_version minor ${minor} - check_version patch ${patch} - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" + outputs = [ + "out" + "lib" + "dev" + "python" ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals enableGoldPlugin [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( - let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + nativeBuildInputs = + [ + cmake + ninja + python + ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx + ] + ++ optionals (lib.versionOlder version "18" && enableManpages) [ python3Packages.recommonmark ] + ++ optionals (lib.versionAtLeast version "18" && enableManpages) [ python3Packages.myst-parser ]; - inherit doCheck; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - checkTarget = "check-all"; + propagatedBuildInputs = [ + ncurses + zlib + ]; - # For the update script: - passthru.monorepoSrc = monorepoSrc; + nativeCheckInputs = [ which ] ++ lib.optional stdenv.isDarwin sysctl; - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + patches = + [ + ./gnu-install-dirs.patch + + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch + + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] + ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch + + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers"}" + + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + + # fails when run in sandbox + substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \ + --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure" + '' + + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + + # This test fails with a `dysmutil` crash; have not yet dug into what's + # going on here (TODO(@rrbutani)). + rm test/tools/dsymutil/ARM/obfuscated.test + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + + # Fails in the presence of anti-virus software or other intrusion-detection software that + # modifies the atime when run. See #284056. + rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + rm test/CodeGen/RISCV/attributes.ll + rm test/CodeGen/RISCV/xtheadmempair.ll + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - propagatedBuildInputs = []; + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = + let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in + '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - ninjaFlags = [ "docs-llvm-man" ]; - installTargets = [ "install-docs-llvm-man" ]; + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } - postPatch = null; - postInstall = null; + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; - outputs = [ "out" ]; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - doCheck = false; + hardeningDisable = [ "trivialautovarinit" ]; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + cmakeBuildType = if debugVersion then "Debug" else "Release"; + + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals enableGoldPlugin [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = [ ]; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/common/bintools.nix b/pkgs/by-name/ll/llvm/common/bintools.nix index 85b570d..a14df19 100644 --- a/pkgs/by-name/ll/llvm/common/bintools.nix +++ b/pkgs/by-name/ll/llvm/common/bintools.nix @@ -1,49 +1,62 @@ -{ lib, runCommand, stdenv, llvm, lld, version, release_version }: +{ + lib, + runCommand, + stdenv, + llvm, + lld, + version, + release_version, +}: let - targetPrefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-"; + targetPrefix = lib.optionalString ( + stdenv.hostPlatform != stdenv.targetPlatform + ) "${stdenv.targetPlatform.config}-"; in runCommand "llvm-binutils-${version}" -{ - preferLocalBuild = true; - passthru = { - isLLVM = true; - inherit targetPrefix; - }; -} - ('' - mkdir -p $out/bin - for prog in ${lld}/bin/*; do - ln -s $prog $out/bin/${targetPrefix}$(basename $prog) - done - for prog in ${llvm}/bin/*; do - ln -sf $prog $out/bin/${targetPrefix}$(basename $prog) - done + { + preferLocalBuild = true; + passthru = { + isLLVM = true; + inherit targetPrefix; + }; + } + ( + '' + mkdir -p $out/bin + for prog in ${lld}/bin/*; do + ln -s $prog $out/bin/${targetPrefix}$(basename $prog) + done + for prog in ${llvm}/bin/*; do + ln -sf $prog $out/bin/${targetPrefix}$(basename $prog) + done - llvmBin="${llvm}/bin" + llvmBin="${llvm}/bin" - ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar - ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool - ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib - ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt - ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp - ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm - ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy - ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip - ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump - ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf - ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size - ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings - ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line + ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar + ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool + ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib + ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt + ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp + ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm + ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy + ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip + ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump + ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf + ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size + ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings + ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line - if [ -e "$llvmBin/llvm-debuginfod" ]; then - ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod - ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find - fi + if [ -e "$llvmBin/llvm-debuginfod" ]; then + ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod + ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find + fi - ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld + ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld - # Only >=13 show GNU windres compatible in help - '' + lib.optionalString (lib.versionAtLeast release_version "13") '' - ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres - '') + # Only >=13 show GNU windres compatible in help + '' + + lib.optionalString (lib.versionAtLeast release_version "13") '' + ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres + '' + ) diff --git a/pkgs/by-name/ll/llvm/common/clang/default.nix b/pkgs/by-name/ll/llvm/common/clang/default.nix index 2373795..df1e11c 100644 --- a/pkgs/by-name/ll/llvm/common/clang/default.nix +++ b/pkgs/by-name/ll/llvm/common/clang/default.nix @@ -1,185 +1,250 @@ -{ lib -, stdenv -, llvm_meta -, patches ? [] -, src ? null -, monorepoSrc ? null -, runCommand -, substituteAll -, cmake -, ninja -, libxml2 -, libllvm -, release_version -, version -, python3 -, buildLlvmTools -, fixDarwinDylibNames -, enableManpages ? false -, clang-tools-extra_src ? null +{ + lib, + stdenv, + llvm_meta, + patches ? [ ], + src ? null, + monorepoSrc ? null, + runCommand, + substituteAll, + cmake, + ninja, + libxml2, + libllvm, + release_version, + version, + python3, + buildLlvmTools, + fixDarwinDylibNames, + enableManpages ? false, + clang-tools-extra_src ? null, }: let pname = "clang"; - src' = if monorepoSrc != null then - runCommand "${pname}-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/clang-tools-extra "$out" - '' else src; + src' = + if monorepoSrc != null then + runCommand "${pname}-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/clang-tools-extra "$out" + '' + else + src; - self = stdenv.mkDerivation (finalAttrs: rec { - inherit pname version patches; + self = stdenv.mkDerivation ( + finalAttrs: + rec { + inherit pname version patches; - src = src'; + src = src'; - sourceRoot = if lib.versionOlder release_version "13" then null - else "${src.name}/${pname}"; + sourceRoot = if lib.versionOlder release_version "13" then null else "${src.name}/${pname}"; - nativeBuildInputs = [ cmake ] - ++ (lib.optional (lib.versionAtLeast release_version "15") ninja) - ++ [ python3 ] - ++ lib.optional (lib.versionAtLeast version "18" && enableManpages) python3.pkgs.myst-parser - ++ lib.optional enableManpages python3.pkgs.sphinx - ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; + nativeBuildInputs = + [ cmake ] + ++ (lib.optional (lib.versionAtLeast release_version "15") ninja) + ++ [ python3 ] + ++ lib.optional (lib.versionAtLeast version "18" && enableManpages) python3.pkgs.myst-parser + ++ lib.optional enableManpages python3.pkgs.sphinx + ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libxml2 libllvm ]; - - cmakeFlags = (lib.optionals (lib.versionAtLeast release_version "15") [ - "-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang" - ]) ++ [ - "-DCLANGD_BUILD_XPC=OFF" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ lib.optionals (lib.versionAtLeast release_version "17") [ - "-DLLVM_INCLUDE_TESTS=OFF" - ] ++ lib.optionals enableManpages [ - "-DCLANG_INCLUDE_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) ([ - "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" - "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" - ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - # Added in LLVM15: - # `clang-tidy-confusable-chars-gen`: https://github.com/llvm/llvm-project/commit/c3574ef739fbfcc59d405985a3a4fa6f4619ecdb - # `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7 - "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen" - "-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen" - ]); - - postPatch = (if lib.versionOlder release_version "13" then '' - sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ - -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ - lib/Driver/ToolChains/*.cpp - '' else '' - (cd tools && ln -s ../../clang-tools-extra extra) - '') + lib.optionalString stdenv.hostPlatform.isMusl '' - sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp - ''; - - outputs = [ "out" "lib" "dev" "python" ]; - - postInstall = '' - ln -sv $out/bin/clang $out/bin/cpp - '' + (lib.optionalString (lib.versions.major release_version == "17") '' - - mkdir -p $lib/lib/clang - mv $lib/lib/17 $lib/lib/clang/17 - '') + '' - - # Move libclang to 'lib' output - moveToOutput "lib/libclang.*" "$lib" - moveToOutput "lib/libclang-cpp.*" "$lib" - '' + (if lib.versionOlder release_version "15" then '' - substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \ - --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ - --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." - '' else '' - substituteInPlace $dev/lib/cmake/clang/ClangTargets-release.cmake \ - --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ - --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." - '') + '' - - '' + (if lib.versionOlder release_version "15" then '' - mkdir -p $python/bin $python/share/{clang,scan-view} - '' else '' - mkdir -p $python/bin $python/share/clang/ - '') + '' - mv $out/bin/{git-clang-format,scan-view} $python/bin - if [ -e $out/bin/set-xcode-analyzer ]; then - mv $out/bin/set-xcode-analyzer $python/bin - fi - mv $out/share/clang/*.py $python/share/clang - '' + (lib.optionalString (lib.versionOlder release_version "15") '' - mv $out/share/scan-view/*.py $python/share/scan-view - '') + '' - rm $out/bin/c-index-test - patchShebangs $python/bin - - mkdir -p $dev/bin - '' + (if lib.versionOlder release_version "15" then '' - cp bin/clang-tblgen $dev/bin - '' else '' - cp bin/{clang-tblgen,clang-tidy-confusable-chars-gen,clang-pseudo-gen} $dev/bin - ''); - - passthru = { - inherit libllvm; - isClang = true; - } // (lib.optionalAttrs (lib.versionAtLeast release_version "15") { - hardeningUnsupportedFlags = [ - "fortify3" + buildInputs = [ + libxml2 + libllvm ]; - hardeningUnsupportedFlagsByTargetPlatform = targetPlatform: - lib.optional (!(targetPlatform.isx86_64 || targetPlatform.isAarch64)) "zerocallusedregs" - ++ (finalAttrs.passthru.hardeningUnsupportedFlags or []); - }) // (lib.optionalAttrs (lib.versionOlder release_version "15") { - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" ]; - }); - meta = llvm_meta // { - homepage = "https://clang.llvm.org/"; - description = "A C language family frontend for LLVM"; - longDescription = '' - The Clang project provides a language front-end and tooling - infrastructure for languages in the C language family (C, C++, Objective - C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. - It aims to deliver amazingly fast compiles, extremely useful error and - warning messages and to provide a platform for building great source - level tools. The Clang Static Analyzer and clang-tidy are tools that - automatically find bugs in your code, and are great examples of the sort - of tools that can be built using the Clang frontend as a library to - parse C/C++ code. - ''; - mainProgram = "clang"; - }; - } // lib.optionalAttrs enableManpages ({ - pname = "clang-manpages"; + cmakeFlags = + (lib.optionals (lib.versionAtLeast release_version "15") [ + "-DCLANG_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/clang" + ]) + ++ [ + "-DCLANGD_BUILD_XPC=OFF" + "-DLLVM_ENABLE_RTTI=ON" + ] + ++ lib.optionals (lib.versionAtLeast release_version "17") [ "-DLLVM_INCLUDE_TESTS=OFF" ] + ++ lib.optionals enableManpages [ + "-DCLANG_INCLUDE_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) ( + [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" + ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ + # Added in LLVM15: + # `clang-tidy-confusable-chars-gen`: https://github.com/llvm/llvm-project/commit/c3574ef739fbfcc59d405985a3a4fa6f4619ecdb + # `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7 + "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen" + "-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen" + ] + ); - installPhase = '' - mkdir -p $out/share/man/man1 - # Manually install clang manpage - cp docs/man/*.1 $out/share/man/man1/ - ''; + postPatch = + ( + if lib.versionOlder release_version "13" then + '' + sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \ + -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \ + lib/Driver/ToolChains/*.cpp + '' + else + '' + (cd tools && ln -s ../../clang-tools-extra extra) + '' + ) + + lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp + ''; - outputs = [ "out" ]; + outputs = [ + "out" + "lib" + "dev" + "python" + ]; - doCheck = false; + postInstall = + '' + ln -sv $out/bin/clang $out/bin/cpp + '' + + (lib.optionalString (lib.versions.major release_version == "17") '' - meta = llvm_meta // { - description = "man page for Clang ${version}"; - }; - } // (if lib.versionOlder release_version "15" then { - buildPhase = '' - make docs-clang-man - ''; - } else { - ninjaFlags = [ "docs-clang-man" ]; - })) // (lib.optionalAttrs (clang-tools-extra_src != null) { inherit clang-tools-extra_src; }) + mkdir -p $lib/lib/clang + mv $lib/lib/17 $lib/lib/clang/17 + '') + + '' + + # Move libclang to 'lib' output + moveToOutput "lib/libclang.*" "$lib" + moveToOutput "lib/libclang-cpp.*" "$lib" + '' + + ( + if lib.versionOlder release_version "15" then + '' + substituteInPlace $out/lib/cmake/clang/ClangTargets-release.cmake \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." + '' + else + '' + substituteInPlace $dev/lib/cmake/clang/ClangTargets-release.cmake \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang." "$lib/lib/libclang." \ + --replace "\''${_IMPORT_PREFIX}/lib/libclang-cpp." "$lib/lib/libclang-cpp." + '' + ) + + '' + + '' + + ( + if lib.versionOlder release_version "15" then + '' + mkdir -p $python/bin $python/share/{clang,scan-view} + '' + else + '' + mkdir -p $python/bin $python/share/clang/ + '' + ) + + '' + mv $out/bin/{git-clang-format,scan-view} $python/bin + if [ -e $out/bin/set-xcode-analyzer ]; then + mv $out/bin/set-xcode-analyzer $python/bin + fi + mv $out/share/clang/*.py $python/share/clang + '' + + (lib.optionalString (lib.versionOlder release_version "15") '' + mv $out/share/scan-view/*.py $python/share/scan-view + '') + + '' + rm $out/bin/c-index-test + patchShebangs $python/bin + + mkdir -p $dev/bin + '' + + ( + if lib.versionOlder release_version "15" then + '' + cp bin/clang-tblgen $dev/bin + '' + else + '' + cp bin/{clang-tblgen,clang-tidy-confusable-chars-gen,clang-pseudo-gen} $dev/bin + '' + ); + + passthru = + { + inherit libllvm; + isClang = true; + } + // (lib.optionalAttrs (lib.versionAtLeast release_version "15") { + hardeningUnsupportedFlags = [ "fortify3" ]; + hardeningUnsupportedFlagsByTargetPlatform = + targetPlatform: + lib.optional (!(targetPlatform.isx86_64 || targetPlatform.isAarch64)) "zerocallusedregs" + ++ (finalAttrs.passthru.hardeningUnsupportedFlags or [ ]); + }) + // (lib.optionalAttrs (lib.versionOlder release_version "15") { + hardeningUnsupportedFlags = [ + "fortify3" + "zerocallusedregs" + ]; + }); + + meta = llvm_meta // { + homepage = "https://clang.llvm.org/"; + description = "A C language family frontend for LLVM"; + longDescription = '' + The Clang project provides a language front-end and tooling + infrastructure for languages in the C language family (C, C++, Objective + C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. + It aims to deliver amazingly fast compiles, extremely useful error and + warning messages and to provide a platform for building great source + level tools. The Clang Static Analyzer and clang-tidy are tools that + automatically find bugs in your code, and are great examples of the sort + of tools that can be built using the Clang frontend as a library to + parse C/C++ code. + ''; + mainProgram = "clang"; + }; + } + // lib.optionalAttrs enableManpages ( + { + pname = "clang-manpages"; + + installPhase = '' + mkdir -p $out/share/man/man1 + # Manually install clang manpage + cp docs/man/*.1 $out/share/man/man1/ + ''; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man page for Clang ${version}"; + }; + } + // ( + if lib.versionOlder release_version "15" then + { + buildPhase = '' + make docs-clang-man + ''; + } + else + { ninjaFlags = [ "docs-clang-man" ]; } + ) + ) + // (lib.optionalAttrs (clang-tools-extra_src != null) { inherit clang-tools-extra_src; }) // (lib.optionalAttrs (lib.versionOlder release_version "13") { unpackPhase = '' unpackFile $src @@ -191,11 +256,13 @@ let --replace ' ''${CMAKE_SOURCE_DIR}/../clang-tools-extra' ' ''${CMAKE_SOURCE_DIR}/tools/extra' ''; }) - // (lib.optionalAttrs (lib.versionAtLeast release_version "15") { - env = lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) { - # The following warning is triggered with (at least) gcc >= - # 12, but appears to occur only for cross compiles. - NIX_CFLAGS_COMPILE = "-Wno-maybe-uninitialized"; - }; - })); -in self + // (lib.optionalAttrs (lib.versionAtLeast release_version "15") { + env = lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) { + # The following warning is triggered with (at least) gcc >= + # 12, but appears to occur only for cross compiles. + NIX_CFLAGS_COMPILE = "-Wno-maybe-uninitialized"; + }; + }) + ); +in +self diff --git a/pkgs/by-name/ll/llvm/common/common-let.nix b/pkgs/by-name/ll/llvm/common/common-let.nix index 31360f5..a0740a6 100644 --- a/pkgs/by-name/ll/llvm/common/common-let.nix +++ b/pkgs/by-name/ll/llvm/common/common-let.nix @@ -1,9 +1,10 @@ -{ lib -, fetchFromGitHub ? null -, release_version ? null -, gitRelease ? null -, officialRelease ? null -, monorepoSrc' ? null +{ + lib, + fetchFromGitHub ? null, + release_version ? null, + gitRelease ? null, + officialRelease ? null, + monorepoSrc' ? null, }: rec { @@ -13,31 +14,31 @@ rec { # See llvm/cmake/config-ix.cmake. platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86 ++ - lib.optionals (lib.versionAtLeast release_version "7") lib.platforms.riscv ++ - lib.optionals (lib.versionAtLeast release_version "14") lib.platforms.m68k; + lib.platforms.aarch64 + ++ lib.platforms.arm + ++ lib.platforms.mips + ++ lib.platforms.power + ++ lib.platforms.s390x + ++ lib.platforms.wasi + ++ lib.platforms.x86 + ++ lib.optionals (lib.versionAtLeast release_version "7") lib.platforms.riscv + ++ lib.optionals (lib.versionAtLeast release_version "14") lib.platforms.m68k; }; releaseInfo = - if gitRelease != null then rec { - original = gitRelease; - release_version = original.version; - version = gitRelease.rev-version; - } else rec { - original = officialRelease; - release_version = original.version; - version = - if original ? candidate then - "${release_version}-${original.candidate}" - else - release_version; - }; + if gitRelease != null then + rec { + original = gitRelease; + release_version = original.version; + version = gitRelease.rev-version; + } + else + rec { + original = officialRelease; + release_version = original.version; + version = + if original ? candidate then "${release_version}-${original.candidate}" else release_version; + }; monorepoSrc = if monorepoSrc' != null then @@ -45,11 +46,7 @@ rec { else let sha256 = releaseInfo.original.sha256; - rev = - if gitRelease != null then - gitRelease.rev - else - "llvmorg-${releaseInfo.version}"; + rev = if gitRelease != null then gitRelease.rev else "llvmorg-${releaseInfo.version}"; in fetchFromGitHub { owner = "llvm"; diff --git a/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix b/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix index 4f44d63..a20c256 100644 --- a/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix +++ b/pkgs/by-name/ll/llvm/common/compiler-rt/default.nix @@ -1,20 +1,21 @@ -{ lib -, stdenv -, llvm_meta -, release_version -, version -, patches ? [] -, src ? null -, monorepoSrc ? null -, runCommand -, cmake -, ninja -, python3 -, xcbuild -, libllvm -, linuxHeaders -, libxcrypt -, doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD +{ + lib, + stdenv, + llvm_meta, + release_version, + version, + patches ? [ ], + src ? null, + monorepoSrc ? null, + runCommand, + cmake, + ninja, + python3, + xcbuild, + libllvm, + linuxHeaders, + libxcrypt, + doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD, }: let @@ -22,152 +23,193 @@ let useLLVM = stdenv.hostPlatform.useLLVM or false; bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; haveLibc = stdenv.cc.libc != null; - isDarwinStatic = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic && lib.versionAtLeast release_version "16"; + isDarwinStatic = + stdenv.hostPlatform.isDarwin + && stdenv.hostPlatform.isStatic + && lib.versionAtLeast release_version "16"; inherit (stdenv.hostPlatform) isMusl isAarch64; baseName = "compiler-rt"; pname = baseName + lib.optionalString (haveLibc) "-libc"; - src' = if monorepoSrc != null then - runCommand "${baseName}-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${baseName} "$out" - '' else src; + src' = + if monorepoSrc != null then + runCommand "${baseName}-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${baseName} "$out" + '' + else + src; preConfigure = lib.optionalString (useLLVM && !haveLibc) '' cmakeFlagsArray+=(-DCMAKE_C_FLAGS="-nodefaultlibs -ffreestanding") ''; in -stdenv.mkDerivation ({ - inherit pname version patches; +stdenv.mkDerivation ( + { + inherit pname version patches; - src = src'; - sourceRoot = if lib.versionOlder release_version "13" then null - else "${src'.name}/${baseName}"; + src = src'; + sourceRoot = if lib.versionOlder release_version "13" then null else "${src'.name}/${baseName}"; - nativeBuildInputs = [ cmake ] - ++ (lib.optional (lib.versionAtLeast release_version "15") ninja) - ++ [ python3 libllvm.dev ] - ++ lib.optional stdenv.isDarwin xcbuild.xcrun; - buildInputs = - lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV) linuxHeaders; + nativeBuildInputs = + [ cmake ] + ++ (lib.optional (lib.versionAtLeast release_version "15") ninja) + ++ [ + python3 + libllvm.dev + ] + ++ lib.optional stdenv.isDarwin xcbuild.xcrun; + buildInputs = lib.optional ( + stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isRiscV + ) linuxHeaders; - env.NIX_CFLAGS_COMPILE = toString ([ - "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" - ] ++ lib.optionals (!haveLibc) [ - # The compiler got stricter about this, and there is a usellvm patch below - # which patches out the assert include causing an implicit definition of - # assert. It would be nicer to understand why compiler-rt thinks it should - # be able to #include in the first place; perhaps it's in the - # wrong, or perhaps there is a way to provide an assert.h. - "-Wno-error=implicit-function-declaration" - ]); + env.NIX_CFLAGS_COMPILE = toString ( + [ "-DSCUDO_DEFAULT_OPTIONS=DeleteSizeMismatch=0:DeallocationTypeMismatch=0" ] + ++ lib.optionals (!haveLibc) [ + # The compiler got stricter about this, and there is a usellvm patch below + # which patches out the assert include causing an implicit definition of + # assert. It would be nicer to understand why compiler-rt thinks it should + # be able to #include in the first place; perhaps it's in the + # wrong, or perhaps there is a way to provide an assert.h. + "-Wno-error=implicit-function-declaration" + ] + ); - cmakeFlags = [ - "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" - "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" - "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" - ] ++ lib.optionals (haveLibc && stdenv.hostPlatform.libc == "glibc") [ - "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include" - ] ++ lib.optionals ((useLLVM || bareMetal || isMusl || isAarch64) && (lib.versions.major release_version == "13")) [ - "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" - ] ++ lib.optionals (useLLVM || bareMetal || isMusl || isDarwinStatic) [ - "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" - "-DCOMPILER_RT_BUILD_XRAY=OFF" - "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" - "-DCOMPILER_RT_BUILD_MEMPROF=OFF" - "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary - ] ++ lib.optionals (useLLVM || bareMetal) [ - "-DCOMPILER_RT_BUILD_PROFILE=OFF" - ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal || isDarwinStatic) [ - "-DCMAKE_CXX_COMPILER_WORKS=ON" - ] ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ - "-DCMAKE_C_COMPILER_WORKS=ON" - "-DCOMPILER_RT_BAREMETAL_BUILD=ON" - "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" - ] ++ lib.optionals (useLLVM && !haveLibc) [ - "-DCMAKE_C_FLAGS=-nodefaultlibs" - ] ++ lib.optionals (useLLVM) [ - "-DCOMPILER_RT_BUILD_BUILTINS=ON" - #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program - "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" - ] ++ lib.optionals (bareMetal) [ - "-DCOMPILER_RT_OS_DIR=baremetal" - ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) (lib.optionals (lib.versionAtLeast release_version "16") [ - "-DCMAKE_LIPO=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}lipo" - ] ++ [ - "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON" - "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}" - "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}" - ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - # `COMPILER_RT_DEFAULT_TARGET_ONLY` does not apply to Darwin: - # https://github.com/llvm/llvm-project/blob/27ef42bec80b6c010b7b3729ed0528619521a690/compiler-rt/cmake/base-config-ix.cmake#L153 - "-DCOMPILER_RT_ENABLE_IOS=OFF" - ]) ++ lib.optionals (lib.versionAtLeast version "19" && stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ - "-DSANITIZER_MIN_OSX_VERSION=10.10" - ]; + cmakeFlags = + [ + "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" + "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" + "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" + ] + ++ lib.optionals (haveLibc && stdenv.hostPlatform.libc == "glibc") [ + "-DSANITIZER_COMMON_CFLAGS=-I${libxcrypt}/include" + ] + ++ lib.optionals ( + (useLLVM || bareMetal || isMusl || isAarch64) && (lib.versions.major release_version == "13") + ) [ "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" ] + ++ lib.optionals (useLLVM || bareMetal || isMusl || isDarwinStatic) [ + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" + "-DCOMPILER_RT_BUILD_LIBFUZZER=OFF" + "-DCOMPILER_RT_BUILD_MEMPROF=OFF" + "-DCOMPILER_RT_BUILD_ORC=OFF" # may be possible to build with musl if necessary + ] + ++ lib.optionals (useLLVM || bareMetal) [ "-DCOMPILER_RT_BUILD_PROFILE=OFF" ] + ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal || isDarwinStatic) [ + "-DCMAKE_CXX_COMPILER_WORKS=ON" + ] + ++ lib.optionals ((useLLVM && !haveLibc) || bareMetal) [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCOMPILER_RT_BAREMETAL_BUILD=ON" + "-DCMAKE_SIZEOF_VOID_P=${toString (stdenv.hostPlatform.parsed.cpu.bits / 8)}" + ] + ++ lib.optionals (useLLVM && !haveLibc) [ "-DCMAKE_C_FLAGS=-nodefaultlibs" ] + ++ lib.optionals (useLLVM) [ + "-DCOMPILER_RT_BUILD_BUILTINS=ON" + #https://stackoverflow.com/questions/53633705/cmake-the-c-compiler-is-not-able-to-compile-a-simple-test-program + "-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY" + ] + ++ lib.optionals (bareMetal) [ "-DCOMPILER_RT_OS_DIR=baremetal" ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin) ( + lib.optionals (lib.versionAtLeast release_version "16") [ + "-DCMAKE_LIPO=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}lipo" + ] + ++ [ + "-DDARWIN_macosx_OVERRIDE_SDK_VERSION=ON" + "-DDARWIN_osx_ARCHS=${stdenv.hostPlatform.darwinArch}" + "-DDARWIN_osx_BUILTIN_ARCHS=${stdenv.hostPlatform.darwinArch}" + ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ + # `COMPILER_RT_DEFAULT_TARGET_ONLY` does not apply to Darwin: + # https://github.com/llvm/llvm-project/blob/27ef42bec80b6c010b7b3729ed0528619521a690/compiler-rt/cmake/base-config-ix.cmake#L153 + "-DCOMPILER_RT_ENABLE_IOS=OFF" + ] + ) + ++ lib.optionals ( + lib.versionAtLeast version "19" + && stdenv.isDarwin + && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13" + ) [ "-DSANITIZER_MIN_OSX_VERSION=10.10" ]; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks - # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra - # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd - # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by - # a flag and turn the flag off during the stdenv build. - postPatch = lib.optionalString (!stdenv.isDarwin) '' - substituteInPlace cmake/builtin-config-ix.cmake \ - --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' - '' + lib.optionalString stdenv.isDarwin '' - substituteInPlace cmake/config-ix.cmake \ - --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' - '' + lib.optionalString (useLLVM && !haveLibc) ((lib.optionalString (lib.versionAtLeast release_version "18") '' - substituteInPlace lib/builtins/aarch64/sme-libc-routines.c \ - --replace "" "" - '') + '' - substituteInPlace lib/builtins/int_util.c \ - --replace "#include " "" - substituteInPlace lib/builtins/clear_cache.c \ - --replace "#include " "" - substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \ - --replace "#include " "" - ''); + # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks + # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra + # can build this. If we didn't do it, basically the entire nixpkgs on Darwin would have an unfree dependency and we'd + # get no binary cache for the entire platform. If you really find yourself wanting the TSAN, make this controllable by + # a flag and turn the flag off during the stdenv build. + postPatch = + lib.optionalString (!stdenv.isDarwin) '' + substituteInPlace cmake/builtin-config-ix.cmake \ + --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' + '' + + lib.optionalString stdenv.isDarwin '' + substituteInPlace cmake/config-ix.cmake \ + --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' + '' + + lib.optionalString (useLLVM && !haveLibc) ( + (lib.optionalString (lib.versionAtLeast release_version "18") '' + substituteInPlace lib/builtins/aarch64/sme-libc-routines.c \ + --replace "" "" + '') + + '' + substituteInPlace lib/builtins/int_util.c \ + --replace "#include " "" + substituteInPlace lib/builtins/clear_cache.c \ + --replace "#include " "" + substituteInPlace lib/builtins/cpu_model${lib.optionalString (lib.versionAtLeast version "18") "/x86"}.c \ + --replace "#include " "" + '' + ); - # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin) '' - ln -s "$out/lib"/*/* "$out/lib" - '' + lib.optionalString (useLLVM && stdenv.hostPlatform.isLinux) '' - ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o - ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o - # Note the history of crt{begin,end}S in previous versions of llvm in nixpkg: - # The presence of crtbegin_shared has been added and removed; it's possible - # people have added/removed it to get it working on their platforms. - # Try each in turn for now. - ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o - ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o - ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o - ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o - '' + lib.optionalString doFakeLibgcc '' - ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a - ''; + # Hack around weird upsream RPATH bug + postInstall = + lib.optionalString (stdenv.hostPlatform.isDarwin) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + + lib.optionalString (useLLVM && stdenv.hostPlatform.isLinux) '' + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o + # Note the history of crt{begin,end}S in previous versions of llvm in nixpkg: + # The presence of crtbegin_shared has been added and removed; it's possible + # people have added/removed it to get it working on their platforms. + # Try each in turn for now. + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o + ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + + lib.optionalString doFakeLibgcc '' + ln -s $out/lib/freebsd/libclang_rt.builtins-*.a $out/lib/libgcc.a + ''; - meta = llvm_meta // { - homepage = "https://compiler-rt.llvm.org/"; - description = "Compiler runtime libraries"; - longDescription = '' - The compiler-rt project provides highly tuned implementations of the - low-level code generator support routines like "__fixunsdfdi" and other - calls generated when a target doesn't have a short sequence of native - instructions to implement a core IR operation. It also provides - implementations of run-time libraries for dynamic testing tools such as - AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer. - ''; - # "All of the code in the compiler-rt project is dual licensed under the MIT - # license and the UIUC License (a BSD-like license)": - license = with lib.licenses; [ mit ncsa ]; - # compiler-rt requires a Clang stdenv on 32-bit RISC-V: - # https://reviews.llvm.org/D43106#1019077 - broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang; - }; -} // (if lib.versionOlder release_version "16" then { inherit preConfigure; } else {})) + meta = llvm_meta // { + homepage = "https://compiler-rt.llvm.org/"; + description = "Compiler runtime libraries"; + longDescription = '' + The compiler-rt project provides highly tuned implementations of the + low-level code generator support routines like "__fixunsdfdi" and other + calls generated when a target doesn't have a short sequence of native + instructions to implement a core IR operation. It also provides + implementations of run-time libraries for dynamic testing tools such as + AddressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer. + ''; + # "All of the code in the compiler-rt project is dual licensed under the MIT + # license and the UIUC License (a BSD-like license)": + license = with lib.licenses; [ + mit + ncsa + ]; + # compiler-rt requires a Clang stdenv on 32-bit RISC-V: + # https://reviews.llvm.org/D43106#1019077 + broken = stdenv.hostPlatform.isRiscV32 && !stdenv.cc.isClang; + }; + } + // (if lib.versionOlder release_version "16" then { inherit preConfigure; } else { }) +) diff --git a/pkgs/by-name/ll/llvm/common/libclc.nix b/pkgs/by-name/ll/llvm/common/libclc.nix index 4c2081e..e98635b 100644 --- a/pkgs/by-name/ll/llvm/common/libclc.nix +++ b/pkgs/by-name/ll/llvm/common/libclc.nix @@ -1,10 +1,22 @@ -{ lib, stdenv, version, runCommand, monorepoSrc, llvm, buildPackages, buildLlvmTools, ninja, cmake, python3 }: +{ + lib, + stdenv, + version, + runCommand, + monorepoSrc, + llvm, + buildPackages, + buildLlvmTools, + ninja, + cmake, + python3, +}: stdenv.mkDerivation rec { pname = "libclc"; inherit version; - src = runCommand "${pname}-src-${version}" {} '' + src = runCommand "${pname}-src-${version}" { } '' mkdir -p "$out" cp -r ${monorepoSrc}/cmake "$out" cp -r ${monorepoSrc}/${pname} "$out" @@ -12,31 +24,40 @@ stdenv.mkDerivation rec { sourceRoot = "${src.name}/${pname}"; - outputs = [ "out" "dev" ]; - - patches = [ - ./libclc/libclc-gnu-install-dirs.patch + outputs = [ + "out" + "dev" ]; - # cmake expects all required binaries to be in the same place, so it will not be able to find clang without the patch - postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace 'find_program( LLVM_CLANG clang PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ - 'find_program( LLVM_CLANG clang PATHS "${buildLlvmTools.clang.cc}/bin" NO_DEFAULT_PATH )' \ - --replace 'find_program( LLVM_AS llvm-as PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ - 'find_program( LLVM_AS llvm-as PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ - --replace 'find_program( LLVM_LINK llvm-link PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ - 'find_program( LLVM_LINK llvm-link PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ - --replace 'find_program( LLVM_OPT opt PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ - 'find_program( LLVM_OPT opt PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ - --replace 'find_program( LLVM_SPIRV llvm-spirv PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ - 'find_program( LLVM_SPIRV llvm-spirv PATHS "${buildPackages.spirv-llvm-translator.override { inherit (buildLlvmTools) llvm; }}/bin" NO_DEFAULT_PATH )' - '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - substituteInPlace CMakeLists.txt \ - --replace 'COMMAND prepare_builtins' 'COMMAND ${buildLlvmTools.libclc.dev}/bin/prepare_builtins' - ''; + patches = [ ./libclc/libclc-gnu-install-dirs.patch ]; - nativeBuildInputs = [ cmake ninja python3 ]; + # cmake expects all required binaries to be in the same place, so it will not be able to find clang without the patch + postPatch = + '' + substituteInPlace CMakeLists.txt \ + --replace 'find_program( LLVM_CLANG clang PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ + 'find_program( LLVM_CLANG clang PATHS "${buildLlvmTools.clang.cc}/bin" NO_DEFAULT_PATH )' \ + --replace 'find_program( LLVM_AS llvm-as PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ + 'find_program( LLVM_AS llvm-as PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ + --replace 'find_program( LLVM_LINK llvm-link PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ + 'find_program( LLVM_LINK llvm-link PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ + --replace 'find_program( LLVM_OPT opt PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ + 'find_program( LLVM_OPT opt PATHS "${buildLlvmTools.llvm}/bin" NO_DEFAULT_PATH )' \ + --replace 'find_program( LLVM_SPIRV llvm-spirv PATHS ''${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH )' \ + 'find_program( LLVM_SPIRV llvm-spirv PATHS "${ + buildPackages.spirv-llvm-translator.override { inherit (buildLlvmTools) llvm; } + }/bin" NO_DEFAULT_PATH )' + '' + + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' + substituteInPlace CMakeLists.txt \ + --replace 'COMMAND prepare_builtins' 'COMMAND ${buildLlvmTools.libclc.dev}/bin/prepare_builtins' + ''; + + nativeBuildInputs = [ + cmake + ninja + python3 + ]; buildInputs = [ llvm ]; strictDeps = true; diff --git a/pkgs/by-name/ll/llvm/common/libcxx/default.nix b/pkgs/by-name/ll/llvm/common/libcxx/default.nix index 0e91f50..b1b9262 100644 --- a/pkgs/by-name/ll/llvm/common/libcxx/default.nix +++ b/pkgs/by-name/ll/llvm/common/libcxx/default.nix @@ -1,22 +1,23 @@ -{ lib -, stdenv -, llvm_meta -, release_version -, monorepoSrc ? null -, src ? null -, patches ? [] -, runCommand -, substitute -, cmake -, lndir -, ninja -, python3 -, fixDarwinDylibNames -, version -, cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null -, libcxxrt -, libunwind -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + llvm_meta, + release_version, + monorepoSrc ? null, + src ? null, + patches ? [ ], + runCommand, + substitute, + cmake, + lndir, + ninja, + python3, + fixDarwinDylibNames, + version, + cxxabi ? if stdenv.hostPlatform.isFreeBSD then libcxxrt else null, + libcxxrt, + libunwind, + enableShared ? !stdenv.hostPlatform.isStatic, }: # external cxxabi is not supported on Darwin as the build will not link libcxx @@ -33,125 +34,168 @@ let # Note: useLLVM is likely false for Darwin but true under pkgsLLVM useLLVM = stdenv.hostPlatform.useLLVM or false; - src' = if monorepoSrc != null then - runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out/llvm" - '' + (lib.optionalString (lib.versionAtLeast release_version "14") '' - cp -r ${monorepoSrc}/cmake "$out" - '') + '' - cp -r ${monorepoSrc}/libcxx "$out" - cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" - cp -r ${monorepoSrc}/llvm/utils "$out/llvm" - '' + (lib.optionalString (lib.versionAtLeast release_version "14") '' - cp -r ${monorepoSrc}/third-party "$out" - '') + '' - cp -r ${monorepoSrc}/runtimes "$out" - '' + (lib.optionalString (cxxabi == null) '' - cp -r ${monorepoSrc}/libcxxabi "$out" - '')) else src; + src' = + if monorepoSrc != null then + runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out/llvm" + '' + + (lib.optionalString (lib.versionAtLeast release_version "14") '' + cp -r ${monorepoSrc}/cmake "$out" + '') + + '' + cp -r ${monorepoSrc}/libcxx "$out" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + '' + + (lib.optionalString (lib.versionAtLeast release_version "14") '' + cp -r ${monorepoSrc}/third-party "$out" + '') + + '' + cp -r ${monorepoSrc}/runtimes "$out" + '' + + (lib.optionalString (cxxabi == null) '' + cp -r ${monorepoSrc}/libcxxabi "$out" + '') + ) + else + src; - cxxabiCMakeFlags = lib.optionals (lib.versionAtLeast release_version "18") [ - "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF" - ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) (if lib.versionAtLeast release_version "18" then [ - "-DLIBCXXABI_ADDITIONAL_LIBRARIES=unwind" - "-DLIBCXXABI_USE_COMPILER_RT=ON" - ] else [ - "-DLIBCXXABI_USE_COMPILER_RT=ON" - "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" - ]) ++ lib.optionals stdenv.hostPlatform.isWasm [ - "-DLIBCXXABI_ENABLE_THREADS=OFF" - "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF" - ] ++ lib.optionals (!enableShared) [ - "-DLIBCXXABI_ENABLE_SHARED=OFF" - ]; + cxxabiCMakeFlags = + lib.optionals (lib.versionAtLeast release_version "18") [ "-DLIBCXXABI_USE_LLVM_UNWINDER=OFF" ] + ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) ( + if lib.versionAtLeast release_version "18" then + [ + "-DLIBCXXABI_ADDITIONAL_LIBRARIES=unwind" + "-DLIBCXXABI_USE_COMPILER_RT=ON" + ] + else + [ + "-DLIBCXXABI_USE_COMPILER_RT=ON" + "-DLIBCXXABI_USE_LLVM_UNWINDER=ON" + ] + ) + ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXXABI_ENABLE_THREADS=OFF" + "-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF" + ] + ++ lib.optionals (!enableShared) [ "-DLIBCXXABI_ENABLE_SHARED=OFF" ]; - cxxCMakeFlags = [ - "-DLIBCXX_CXX_ABI=${cxxabiName}" - ] ++ lib.optionals (cxxabi != null) [ - "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include" - ] ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [ - "-DLIBCXX_HAS_MUSL_LIBC=1" - ] ++ lib.optionals (lib.versionAtLeast release_version "18" && !useLLVM && stdenv.hostPlatform.libc == "glibc" && !stdenv.hostPlatform.isStatic) [ - "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s" - ] ++ lib.optionals useLLVM [ - "-DLIBCXX_USE_COMPILER_RT=ON" - ] ++ lib.optionals (useLLVM && lib.versionAtLeast release_version "16") [ - "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind" - ] ++ lib.optionals stdenv.hostPlatform.isWasm [ - "-DLIBCXX_ENABLE_THREADS=OFF" - "-DLIBCXX_ENABLE_FILESYSTEM=OFF" - "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" - ] ++ lib.optionals (!enableShared) [ - "-DLIBCXX_ENABLE_SHARED=OFF" - ]; + cxxCMakeFlags = + [ "-DLIBCXX_CXX_ABI=${cxxabiName}" ] + ++ lib.optionals (cxxabi != null) [ "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${lib.getDev cxxabi}/include" ] + ++ lib.optionals (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) [ + "-DLIBCXX_HAS_MUSL_LIBC=1" + ] + ++ lib.optionals ( + lib.versionAtLeast release_version "18" + && !useLLVM + && stdenv.hostPlatform.libc == "glibc" + && !stdenv.hostPlatform.isStatic + ) [ "-DLIBCXX_ADDITIONAL_LIBRARIES=gcc_s" ] + ++ lib.optionals useLLVM [ "-DLIBCXX_USE_COMPILER_RT=ON" ] + ++ lib.optionals (useLLVM && lib.versionAtLeast release_version "16") [ + "-DLIBCXX_ADDITIONAL_LIBRARIES=unwind" + ] + ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DLIBCXX_ENABLE_THREADS=OFF" + "-DLIBCXX_ENABLE_FILESYSTEM=OFF" + "-DLIBCXX_ENABLE_EXCEPTIONS=OFF" + ] + ++ lib.optionals (!enableShared) [ "-DLIBCXX_ENABLE_SHARED=OFF" ]; - cmakeFlags = [ - "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}" - ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ - # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib, - # but that does not appear to be the case for example when building - # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc). - "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib" - "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib" - ] ++ lib.optionals stdenv.hostPlatform.isWasm [ - "-DCMAKE_C_COMPILER_WORKS=ON" - "-DCMAKE_CXX_COMPILER_WORKS=ON" - "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker - ] ++ cxxCMakeFlags + cmakeFlags = + [ "-DLLVM_ENABLE_RUNTIMES=${lib.concatStringsSep ";" runtimes}" ] + ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ + # libcxxabi's CMake looks as though it treats -nostdlib++ as implying -nostdlib, + # but that does not appear to be the case for example when building + # pkgsLLVM.libcxxabi (which uses clangNoCompilerRtWithLibc). + "-DCMAKE_EXE_LINKER_FLAGS=-nostdlib" + "-DCMAKE_SHARED_LINKER_FLAGS=-nostdlib" + ] + ++ lib.optionals stdenv.hostPlatform.isWasm [ + "-DCMAKE_C_COMPILER_WORKS=ON" + "-DCMAKE_CXX_COMPILER_WORKS=ON" + "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker + ] + ++ cxxCMakeFlags ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags; in -stdenv.mkDerivation (rec { - inherit pname version cmakeFlags patches; +stdenv.mkDerivation ( + rec { + inherit + pname + version + cmakeFlags + patches + ; - src = src'; + src = src'; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' - patchShebangs utils/cat_files.py - ''; - - nativeBuildInputs = [ cmake ninja python3 ] - ++ lib.optional stdenv.isDarwin fixDarwinDylibNames - ++ lib.optional (cxxabi != null) lndir; - - buildInputs = [ cxxabi ] - ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ]; - - # libc++.so is a linker script which expands to multiple libraries, - # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't - # support linker scripts so the external cxxabi needs to be symlinked in - postInstall = lib.optionalString (cxxabi != null) '' - lndir ${lib.getDev cxxabi}/include $dev/include/c++/v1 - lndir ${lib.getLib cxxabi}/lib $out/lib - ''; - - passthru = { - isLLVM = true; - }; - - meta = llvm_meta // { - homepage = "https://libcxx.llvm.org/"; - description = "C++ standard library"; - longDescription = '' - libc++ is an implementation of the C++ standard library, targeting C++11, - C++14 and above. + preConfigure = lib.optionalString stdenv.hostPlatform.isMusl '' + patchShebangs utils/cat_files.py ''; - # "All of the code in libc++ is dual licensed under the MIT license and the - # UIUC License (a BSD-like license)": - license = with lib.licenses; [ mit ncsa ]; - }; -} // (if (lib.versionOlder release_version "16" || lib.versionAtLeast release_version "17") then { - postPatch = (lib.optionalString (lib.versionAtLeast release_version "14" && lib.versionOlder release_version "15") '' - # fix CMake error when static and LIBCXXABI_USE_LLVM_UNWINDER=ON. aren't - # building unwind so don't need to depend on it - substituteInPlace libcxx/src/CMakeLists.txt \ - --replace-fail "add_dependencies(cxx_static unwind)" "# add_dependencies(cxx_static unwind)" - '') + '' - cd runtimes - ''; -} else { - sourceRoot = "${src'.name}/runtimes"; -})) + + nativeBuildInputs = [ + cmake + ninja + python3 + ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames ++ lib.optional (cxxabi != null) lndir; + + buildInputs = [ cxxabi ] ++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm) [ libunwind ]; + + # libc++.so is a linker script which expands to multiple libraries, + # libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't + # support linker scripts so the external cxxabi needs to be symlinked in + postInstall = lib.optionalString (cxxabi != null) '' + lndir ${lib.getDev cxxabi}/include $dev/include/c++/v1 + lndir ${lib.getLib cxxabi}/lib $out/lib + ''; + + passthru = { + isLLVM = true; + }; + + meta = llvm_meta // { + homepage = "https://libcxx.llvm.org/"; + description = "C++ standard library"; + longDescription = '' + libc++ is an implementation of the C++ standard library, targeting C++11, + C++14 and above. + ''; + # "All of the code in libc++ is dual licensed under the MIT license and the + # UIUC License (a BSD-like license)": + license = with lib.licenses; [ + mit + ncsa + ]; + }; + } + // ( + if (lib.versionOlder release_version "16" || lib.versionAtLeast release_version "17") then + { + postPatch = + (lib.optionalString + (lib.versionAtLeast release_version "14" && lib.versionOlder release_version "15") + '' + # fix CMake error when static and LIBCXXABI_USE_LLVM_UNWINDER=ON. aren't + # building unwind so don't need to depend on it + substituteInPlace libcxx/src/CMakeLists.txt \ + --replace-fail "add_dependencies(cxx_static unwind)" "# add_dependencies(cxx_static unwind)" + '' + ) + + '' + cd runtimes + ''; + } + else + { sourceRoot = "${src'.name}/runtimes"; } + ) +) diff --git a/pkgs/by-name/ll/llvm/common/libunwind/default.nix b/pkgs/by-name/ll/llvm/common/libunwind/default.nix index 515914e..83bd9c7 100644 --- a/pkgs/by-name/ll/llvm/common/libunwind/default.nix +++ b/pkgs/by-name/ll/llvm/common/libunwind/default.nix @@ -1,34 +1,41 @@ -{ lib -, stdenv -, release_version -, patches ? [] -, src ? null -, llvm_meta -, version -, monorepoSrc ? null -, runCommand -, cmake -, ninja -, python3 -, libcxx -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + release_version, + patches ? [ ], + src ? null, + llvm_meta, + version, + monorepoSrc ? null, + runCommand, + cmake, + ninja, + python3, + libcxx, + enableShared ? !stdenv.hostPlatform.isStatic, }: let pname = "libunwind"; - src' = if monorepoSrc != null then - runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - mkdir -p "$out/libcxx" - cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" - cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx" - mkdir -p "$out/llvm" - cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" - '' + lib.optionalString (lib.versionAtLeast release_version "15") '' - cp -r ${monorepoSrc}/llvm/utils "$out/llvm" - cp -r ${monorepoSrc}/runtimes "$out" - '') else src; + src' = + if monorepoSrc != null then + runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + mkdir -p "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx" + cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx" + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + '' + + lib.optionalString (lib.versionAtLeast release_version "15") '' + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + cp -r ${monorepoSrc}/runtimes "$out" + '' + ) + else + src; hasPatches = builtins.length patches > 0; @@ -37,51 +44,70 @@ let ln -s ${libcxx.src}/llvm . ''; - prePatch = lib.optionalString (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) '' - cd ../${pname} - chmod -R u+w . - ''; + prePatch = + lib.optionalString + (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) + '' + cd ../${pname} + chmod -R u+w . + ''; - postPatch = lib.optionalString (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) '' - cd ../runtimes - ''; + postPatch = + lib.optionalString + (lib.versionAtLeast release_version "15" && (hasPatches || lib.versionOlder release_version "18")) + '' + cd ../runtimes + ''; postInstall = lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin) '' # libcxxabi wants to link to libunwind_shared.so (?). ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so ''; in -stdenv.mkDerivation (rec { - inherit pname version patches; +stdenv.mkDerivation ( + rec { + inherit pname version patches; - src = src'; + src = src'; - sourceRoot = - if lib.versionOlder release_version "13" then null - else if lib.versionAtLeast release_version "15" then "${src.name}/runtimes" - else "${src.name}/${pname}"; + sourceRoot = + if lib.versionOlder release_version "13" then + null + else if lib.versionAtLeast release_version "15" then + "${src.name}/runtimes" + else + "${src.name}/${pname}"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - nativeBuildInputs = [ cmake ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - ninja python3 - ]; + nativeBuildInputs = + [ cmake ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ + ninja + python3 + ]; - cmakeFlags = lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind" - ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"; + cmakeFlags = + lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind" + ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"; - meta = llvm_meta // { - # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst - homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library"; - description = "LLVM's unwinder library"; - longDescription = '' - The unwind library provides a family of _Unwind_* functions implementing - the language-neutral stack unwinding portion of the Itanium C++ ABI (Level - I). It is a dependency of the C++ ABI library, and sometimes is a - dependency of other runtimes. - ''; - }; -} // (if postUnpack != "" then { inherit postUnpack; } else {}) - // (if (lib.versionAtLeast release_version "15") then { inherit postInstall; } else {}) - // (if prePatch != "" then { inherit prePatch; } else {}) - // (if postPatch != "" then { inherit postPatch; } else {})) + meta = llvm_meta // { + # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst + homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library"; + description = "LLVM's unwinder library"; + longDescription = '' + The unwind library provides a family of _Unwind_* functions implementing + the language-neutral stack unwinding portion of the Itanium C++ ABI (Level + I). It is a dependency of the C++ ABI library, and sometimes is a + dependency of other runtimes. + ''; + }; + } + // (if postUnpack != "" then { inherit postUnpack; } else { }) + // (if (lib.versionAtLeast release_version "15") then { inherit postInstall; } else { }) + // (if prePatch != "" then { inherit prePatch; } else { }) + // (if postPatch != "" then { inherit postPatch; } else { }) +) diff --git a/pkgs/by-name/ll/llvm/common/lld/default.nix b/pkgs/by-name/ll/llvm/common/lld/default.nix index be296be..a478b92 100644 --- a/pkgs/by-name/ll/llvm/common/lld/default.nix +++ b/pkgs/by-name/ll/llvm/common/lld/default.nix @@ -1,77 +1,100 @@ -{ lib -, stdenv -, llvm_meta -, release_version -, patches ? [] -, buildLlvmTools -, monorepoSrc ? null -, src ? null -, libunwind ? null -, runCommand -, cmake -, ninja -, libxml2 -, libllvm -, version +{ + lib, + stdenv, + llvm_meta, + release_version, + patches ? [ ], + buildLlvmTools, + monorepoSrc ? null, + src ? null, + libunwind ? null, + runCommand, + cmake, + ninja, + libxml2, + libllvm, + version, }: let pname = "lld"; src' = if monorepoSrc != null then - runCommand "lld-src-${version}" {} '' + runCommand "lld-src-${version}" { } '' mkdir -p "$out" cp -r ${monorepoSrc}/cmake "$out" cp -r ${monorepoSrc}/${pname} "$out" mkdir -p "$out/libunwind" cp -r ${monorepoSrc}/libunwind/include "$out/libunwind" mkdir -p "$out/llvm" - '' else src; + '' + else + src; - postPatch = lib.optionalString (lib.versions.major release_version == "12") '' - substituteInPlace MachO/CMakeLists.txt --replace \ - '(''${LLVM_MAIN_SRC_DIR}/' '(' - mkdir -p libunwind/include - tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/" - '' + lib.optionalString (lib.versions.major release_version == "13" && stdenv.isDarwin) '' - substituteInPlace MachO/CMakeLists.txt --replace \ - '(''${LLVM_MAIN_SRC_DIR}/' '(../' - ''; -in -stdenv.mkDerivation (rec { - inherit pname version patches; - - src = src'; - - sourceRoot = - if lib.versionOlder release_version "13" then null - else "${src.name}/${pname}"; - - nativeBuildInputs = [ cmake ] ++ lib.optional (lib.versionAtLeast release_version "15") ninja; - buildInputs = [ libllvm libxml2 ]; - - cmakeFlags = lib.optionals (lib.versionOlder release_version "14") [ - "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}" - ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ]; - - # Musl's default stack size is too small for lld to be able to link Firefox. - LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; - - outputs = [ "out" "lib" "dev" ]; - - meta = llvm_meta // { - homepage = "https://lld.llvm.org/"; - description = "The LLVM linker (unwrapped)"; - longDescription = '' - LLD is a linker from the LLVM project that is a drop-in replacement for - system linkers and runs much faster than them. It also provides features - that are useful for toolchain developers. - The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and - WebAssembly in descending order of completeness. Internally, LLD consists - of several different linkers. + postPatch = + lib.optionalString (lib.versions.major release_version == "12") '' + substituteInPlace MachO/CMakeLists.txt --replace \ + '(''${LLVM_MAIN_SRC_DIR}/' '(' + mkdir -p libunwind/include + tar -xf "${libunwind.src}" --wildcards -C libunwind/include --strip-components=2 "libunwind-*/include/" + '' + + lib.optionalString (lib.versions.major release_version == "13" && stdenv.isDarwin) '' + substituteInPlace MachO/CMakeLists.txt --replace \ + '(''${LLVM_MAIN_SRC_DIR}/' '(../' ''; - }; -} // (if (postPatch == "" && lib.versions.major release_version != "13") then {} else { inherit postPatch; })) +in +stdenv.mkDerivation ( + rec { + inherit pname version patches; + + src = src'; + + sourceRoot = if lib.versionOlder release_version "13" then null else "${src.name}/${pname}"; + + nativeBuildInputs = [ cmake ] ++ lib.optional (lib.versionAtLeast release_version "15") ninja; + buildInputs = [ + libllvm + libxml2 + ]; + + cmakeFlags = + lib.optionals (lib.versionOlder release_version "14") [ + "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${ + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native" + }" + ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ + "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ]; + + # Musl's default stack size is too small for lld to be able to link Firefox. + LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152"; + + outputs = [ + "out" + "lib" + "dev" + ]; + + meta = llvm_meta // { + homepage = "https://lld.llvm.org/"; + description = "The LLVM linker (unwrapped)"; + longDescription = '' + LLD is a linker from the LLVM project that is a drop-in replacement for + system linkers and runs much faster than them. It also provides features + that are useful for toolchain developers. + The linker supports ELF (Unix), PE/COFF (Windows), Mach-O (macOS), and + WebAssembly in descending order of completeness. Internally, LLD consists + of several different linkers. + ''; + }; + } + // ( + if (postPatch == "" && lib.versions.major release_version != "13") then + { } + else + { inherit postPatch; } + ) +) diff --git a/pkgs/by-name/ll/llvm/common/lldb-plugins/llef.nix b/pkgs/by-name/ll/llvm/common/lldb-plugins/llef.nix index f671132..d4a06d6 100644 --- a/pkgs/by-name/ll/llvm/common/lldb-plugins/llef.nix +++ b/pkgs/by-name/ll/llvm/common/lldb-plugins/llef.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchFromGitHub -, makeWrapper -, lldb +{ + lib, + stdenv, + fetchFromGitHub, + makeWrapper, + lldb, }: stdenv.mkDerivation { diff --git a/pkgs/by-name/ll/llvm/common/lldb.nix b/pkgs/by-name/ll/llvm/common/lldb.nix index 59e427e..43434d6 100644 --- a/pkgs/by-name/ll/llvm/common/lldb.nix +++ b/pkgs/by-name/ll/llvm/common/lldb.nix @@ -1,30 +1,31 @@ -{ lib -, stdenv -, llvm_meta -, release_version -, cmake -, zlib -, ncurses -, swig3 -, swig4 -, which -, libedit -, libxml2 -, libllvm -, libclang -, python3 -, version -, darwin -, lit -, makeWrapper -, lua5_3 -, ninja -, runCommand -, src ? null -, monorepoSrc ? null -, patches ? [ ] -, enableManpages ? false -, ... +{ + lib, + stdenv, + llvm_meta, + release_version, + cmake, + zlib, + ncurses, + swig3, + swig4, + which, + libedit, + libxml2, + libllvm, + libclang, + python3, + version, + darwin, + lit, + makeWrapper, + lua5_3, + ninja, + runCommand, + src ? null, + monorepoSrc ? null, + patches ? [ ], + enableManpages ? false, + ... }: let @@ -34,7 +35,9 @@ let mkdir -p "$out" cp -r ${monorepoSrc}/cmake "$out" cp -r ${monorepoSrc}/lldb "$out" - '' else src; + '' + else + src; vscodeExt = { name = if lib.versionAtLeast release_version "18" then "lldb-dap" else "lldb-vscode"; version = if lib.versionAtLeast release_version "18" then "0.2.0" else "0.1.0"; @@ -42,177 +45,198 @@ let swig = if lib.versionAtLeast release_version "18" then swig4 else swig3; in -stdenv.mkDerivation (rec { - passthru.monorepoSrc = monorepoSrc; - pname = "lldb"; - inherit version; +stdenv.mkDerivation ( + rec { + passthru.monorepoSrc = monorepoSrc; + pname = "lldb"; + inherit version; - src = src'; - inherit patches; + src = src'; + inherit patches; - outputs = [ "out" "lib" "dev" ]; + outputs = [ + "out" + "lib" + "dev" + ]; - sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${src.name}/${pname}"; + sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${src.name}/${pname}"; - nativeBuildInputs = [ - cmake - python3 - which - swig - lit - makeWrapper - lua5_3 - ] ++ lib.optionals enableManpages [ - python3.pkgs.sphinx - ] ++ lib.optionals (lib.versionOlder release_version "18" && enableManpages) [ - python3.pkgs.recommonmark - ] ++ lib.optionals (lib.versionAtLeast release_version "18" && enableManpages) [ - python3.pkgs.myst-parser - ] ++ lib.optionals (lib.versionAtLeast release_version "14") [ - ninja - ]; + nativeBuildInputs = + [ + cmake + python3 + which + swig + lit + makeWrapper + lua5_3 + ] + ++ lib.optionals enableManpages [ python3.pkgs.sphinx ] + ++ lib.optionals (lib.versionOlder release_version "18" && enableManpages) [ + python3.pkgs.recommonmark + ] + ++ lib.optionals (lib.versionAtLeast release_version "18" && enableManpages) [ + python3.pkgs.myst-parser + ] + ++ lib.optionals (lib.versionAtLeast release_version "14") [ ninja ]; - buildInputs = [ - ncurses - zlib - libedit - libxml2 - libllvm - ] ++ lib.optionals (lib.versionAtLeast release_version "16") [ - # Starting with LLVM 16, the resource dir patch is no longer enough to get - # libclang into the rpath of the lldb executables. By putting it into - # buildInputs cc-wrapper will set up rpath correctly for us. - (lib.getLib libclang) - ] ++ lib.optionals stdenv.isDarwin [ - darwin.libobjc - darwin.apple_sdk.libs.xpc - darwin.apple_sdk.frameworks.Foundation - darwin.bootstrap_cmds - darwin.apple_sdk.frameworks.Carbon - darwin.apple_sdk.frameworks.Cocoa - ] - # The older libSystem used on x86_64 macOS is missing the - # `` header which `lldb` uses. - # - # We copy this header over from macOS 10.12 SDK. - # - # See here for context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional - ( - stdenv.targetPlatform.isDarwin - && !stdenv.targetPlatform.isAarch64 - && (lib.versionAtLeast release_version "15") - ) - ( - runCommand "bsm-audit-session-header" { } '' - install -Dm444 \ - "${lib.getDev darwin.apple_sdk.sdk}/include/bsm/audit_session.h" \ - "$out/include/bsm/audit_session.h" + buildInputs = + [ + ncurses + zlib + libedit + libxml2 + libllvm + ] + ++ lib.optionals (lib.versionAtLeast release_version "16") [ + # Starting with LLVM 16, the resource dir patch is no longer enough to get + # libclang into the rpath of the lldb executables. By putting it into + # buildInputs cc-wrapper will set up rpath correctly for us. + (lib.getLib libclang) + ] + ++ lib.optionals stdenv.isDarwin [ + darwin.libobjc + darwin.apple_sdk.libs.xpc + darwin.apple_sdk.frameworks.Foundation + darwin.bootstrap_cmds + darwin.apple_sdk.frameworks.Carbon + darwin.apple_sdk.frameworks.Cocoa + ] + # The older libSystem used on x86_64 macOS is missing the + # `` header which `lldb` uses. + # + # We copy this header over from macOS 10.12 SDK. + # + # See here for context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ + lib.optional + ( + stdenv.targetPlatform.isDarwin + && !stdenv.targetPlatform.isAarch64 + && (lib.versionAtLeast release_version "15") + ) + ( + runCommand "bsm-audit-session-header" { } '' + install -Dm444 \ + "${lib.getDev darwin.apple_sdk.sdk}/include/bsm/audit_session.h" \ + "$out/include/bsm/audit_session.h" + '' + ); + + hardeningDisable = [ "format" ]; + + cmakeFlags = + [ + "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" + "-DLLVM_ENABLE_RTTI=OFF" + "-DClang_DIR=${lib.getDev libclang}/lib/cmake" + "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" + ] + ++ lib.optionals stdenv.isDarwin [ "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" ] + ++ lib.optionals (!stdenv.isDarwin) [ + "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic + ] + ++ lib.optionals (lib.versionAtLeast release_version "17") [ + "-DCLANG_RESOURCE_DIR=../../../../${libclang.lib}" + ] + ++ lib.optionals enableManpages ( + [ + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ + # docs reference `automodapi` but it's not added to the extensions list when + # only building the manpages: + # https://github.com/llvm/llvm-project/blob/af6ec9200b09039573d85e349496c4f5b17c3d7f/lldb/docs/conf.py#L54 + # + # so, we just ignore the resulting errors + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ) + ++ lib.optionals doCheck [ + "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" + "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" + ]; + + doCheck = false; + doInstallCheck = lib.versionOlder release_version "15"; + + # TODO: cleanup with mass-rebuild + installCheckPhase = '' - ); + if [ ! -e $lib/${python3.sitePackages}/lldb/_lldb*.so ] ; then + echo "ERROR: python files not installed where expected!"; + return 1; + fi + '' # Something lua is built on older versions but this file doesn't exist. + + lib.optionalString (lib.versionAtLeast release_version "14") '' + if [ ! -e "$lib/lib/lua/${lua5_3.luaversion}/lldb.so" ] ; then + echo "ERROR: lua files not installed where expected!"; + return 1; + fi + ''; - hardeningDisable = [ "format" ]; + postInstall = '' + wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ - cmakeFlags = [ - "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" - "-DLLVM_ENABLE_RTTI=OFF" - "-DClang_DIR=${lib.getDev libclang}/lib/cmake" - "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" - ] ++ lib.optionals stdenv.isDarwin [ - "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" - ] ++ lib.optionals (!stdenv.isDarwin) [ - "-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic - ] ++ lib.optionals (lib.versionAtLeast release_version "17") [ - "-DCLANG_RESOURCE_DIR=../../../../${libclang.lib}" - ] ++ lib.optionals enableManpages ([ - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - # docs reference `automodapi` but it's not added to the extensions list when - # only building the manpages: - # https://github.com/llvm/llvm-project/blob/af6ec9200b09039573d85e349496c4f5b17c3d7f/lldb/docs/conf.py#L54 - # - # so, we just ignore the resulting errors - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ]) ++ lib.optionals doCheck [ - "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc" - "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++" - ]; - - doCheck = false; - doInstallCheck = lib.versionOlder release_version "15"; - - # TODO: cleanup with mass-rebuild - installCheckPhase = '' - if [ ! -e $lib/${python3.sitePackages}/lldb/_lldb*.so ] ; then - echo "ERROR: python files not installed where expected!"; - return 1; - fi - '' # Something lua is built on older versions but this file doesn't exist. - + lib.optionalString (lib.versionAtLeast release_version "14") '' - if [ ! -e "$lib/lib/lua/${lua5_3.luaversion}/lldb.so" ] ; then - echo "ERROR: lua files not installed where expected!"; - return 1; - fi - ''; - - postInstall = '' - wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ - - # Editor support - # vscode: - install -D ../tools/${vscodeExt.name}/package.json $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/package.json - mkdir -p $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/bin - ln -s $out/bin/*${if lib.versionAtLeast release_version "18" then vscodeExt.name else "-vscode"} $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/bin - ''; - - passthru.vscodeExtName = vscodeExt.name; - passthru.vscodeExtPublisher = "llvm"; - passthru.vscodeExtUniqueId = "llvm-org.${vscodeExt.name}-${vscodeExt.version}"; - - meta = llvm_meta // { - homepage = "https://lldb.llvm.org/"; - description = "A next-generation high-performance debugger"; - longDescription = '' - LLDB is a next generation, high-performance debugger. It is built as a set - of reusable components which highly leverage existing libraries in the - larger LLVM Project, such as the Clang expression parser and LLVM - disassembler. + # Editor support + # vscode: + install -D ../tools/${vscodeExt.name}/package.json $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/package.json + mkdir -p $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/bin + ln -s $out/bin/*${ + if lib.versionAtLeast release_version "18" then vscodeExt.name else "-vscode" + } $out/share/vscode/extensions/llvm-org.${vscodeExt.name}-${vscodeExt.version}/bin ''; - # llvm <10 never built on aarch64-darwin since first introduction in nixpkgs - broken = - (lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64) + + passthru.vscodeExtName = vscodeExt.name; + passthru.vscodeExtPublisher = "llvm"; + passthru.vscodeExtUniqueId = "llvm-org.${vscodeExt.name}-${vscodeExt.version}"; + + meta = llvm_meta // { + homepage = "https://lldb.llvm.org/"; + description = "A next-generation high-performance debugger"; + longDescription = '' + LLDB is a next generation, high-performance debugger. It is built as a set + of reusable components which highly leverage existing libraries in the + larger LLVM Project, such as the Clang expression parser and LLVM + disassembler. + ''; + # llvm <10 never built on aarch64-darwin since first introduction in nixpkgs + broken = + (lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64) || (((lib.versions.major release_version) == "13") && stdenv.isDarwin); - mainProgram = "lldb"; - }; -} // lib.optionalAttrs enableManpages { - pname = "lldb-manpages"; + mainProgram = "lldb"; + }; + } + // lib.optionalAttrs enableManpages { + pname = "lldb-manpages"; - buildPhase = lib.optionalString (lib.versionOlder release_version "15") '' - make ${if (lib.versionOlder release_version "12") then "docs-man" else "docs-lldb-man"} - ''; + buildPhase = lib.optionalString (lib.versionOlder release_version "15") '' + make ${if (lib.versionOlder release_version "12") then "docs-man" else "docs-lldb-man"} + ''; + ninjaFlags = lib.optionals (lib.versionAtLeast release_version "15") [ "docs-lldb-man" ]; - ninjaFlags = lib.optionals (lib.versionAtLeast release_version "15") [ "docs-lldb-man" ]; + propagatedBuildInputs = [ ]; - propagatedBuildInputs = [ ]; + # manually install lldb man page + installPhase = '' + mkdir -p $out/share/man/man1 + install docs/man/lldb.1 -t $out/share/man/man1/ + ''; - # manually install lldb man page - installPhase = '' - mkdir -p $out/share/man/man1 - install docs/man/lldb.1 -t $out/share/man/man1/ - ''; + postPatch = null; + postInstall = null; - postPatch = null; - postInstall = null; + outputs = [ "out" ]; - outputs = [ "out" ]; + doCheck = false; - doCheck = false; - - meta = llvm_meta // { - description = "man pages for LLDB ${version}"; - }; -}) + meta = llvm_meta // { + description = "man pages for LLDB ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/common/mlir/default.nix b/pkgs/by-name/ll/llvm/common/mlir/default.nix index 7a79ac3..a261d20 100644 --- a/pkgs/by-name/ll/llvm/common/mlir/default.nix +++ b/pkgs/by-name/ll/llvm/common/mlir/default.nix @@ -1,12 +1,20 @@ -{ lib, stdenv, llvm_meta -, buildLlvmTools -, monorepoSrc, runCommand -, cmake -, ninja -, libxml2 -, libllvm -, version -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) +{ + lib, + stdenv, + llvm_meta, + buildLlvmTools, + monorepoSrc, + runCommand, + cmake, + ninja, + libxml2, + libllvm, + version, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl), }: stdenv.mkDerivation rec { @@ -14,7 +22,7 @@ stdenv.mkDerivation rec { inherit version doCheck; # Blank llvm dir just so relative path works - src = runCommand "${pname}-src-${version}" {} '' + src = runCommand "${pname}-src-${version}" { } '' mkdir -p "$out" cp -r ${monorepoSrc}/cmake "$out" cp -r ${monorepoSrc}/mlir "$out" @@ -25,9 +33,7 @@ stdenv.mkDerivation rec { sourceRoot = "${src.name}/mlir"; - patches = [ - ./gnu-install-dirs.patch - ]; + patches = [ ./gnu-install-dirs.patch ]; nativeBuildInputs = [ cmake @@ -39,29 +45,41 @@ stdenv.mkDerivation rec { libxml2 ]; - cmakeFlags = [ - "-DLLVM_BUILD_TOOLS=ON" - # Install headers as well - "-DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF" - "-DMLIR_TOOLS_INSTALL_DIR=${placeholder "out"}/bin/" - "-DLLVM_ENABLE_IDE=OFF" - "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "out"}/lib/cmake/mlir" - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=OFF" - ] ++ lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" - "-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen" - ]; + cmakeFlags = + [ + "-DLLVM_BUILD_TOOLS=ON" + # Install headers as well + "-DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF" + "-DMLIR_TOOLS_INSTALL_DIR=${placeholder "out"}/bin/" + "-DLLVM_ENABLE_IDE=OFF" + "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "out"}/lib/cmake/mlir" + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ lib.optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=OFF" + ] + ++ + lib.optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen" + ]; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; meta = llvm_meta // { homepage = "https://mlir.llvm.org/"; diff --git a/pkgs/by-name/ll/llvm/common/openmp/default.nix b/pkgs/by-name/ll/llvm/common/openmp/default.nix index 7d9d813..8559e1b 100644 --- a/pkgs/by-name/ll/llvm/common/openmp/default.nix +++ b/pkgs/by-name/ll/llvm/common/openmp/default.nix @@ -1,86 +1,91 @@ -{ lib -, stdenv -, llvm_meta -, release_version -, patches ? [] -, monorepoSrc ? null -, src ? null -, runCommand -, cmake -, ninja -, llvm -, targetLlvm -, lit -, clang-unwrapped -, perl -, pkg-config -, xcbuild -, version +{ + lib, + stdenv, + llvm_meta, + release_version, + patches ? [ ], + monorepoSrc ? null, + src ? null, + runCommand, + cmake, + ninja, + llvm, + targetLlvm, + lit, + clang-unwrapped, + perl, + pkg-config, + xcbuild, + version, }: let pname = "openmp"; src' = if monorepoSrc != null then - runCommand "${pname}-src-${version}" {} '' + runCommand "${pname}-src-${version}" { } '' mkdir -p "$out" cp -r ${monorepoSrc}/cmake "$out" cp -r ${monorepoSrc}/${pname} "$out" - '' else src; + '' + else + src; in -stdenv.mkDerivation (rec { - inherit pname version patches; +stdenv.mkDerivation ( + rec { + inherit pname version patches; - src = src'; + src = src'; - sourceRoot = - if lib.versionOlder release_version "13" then null - else "${src.name}/${pname}"; + sourceRoot = if lib.versionOlder release_version "13" then null else "${src.name}/${pname}"; - outputs = [ "out" ] - ++ lib.optionals (lib.versionAtLeast release_version "14") [ "dev" ]; + outputs = [ "out" ] ++ lib.optionals (lib.versionAtLeast release_version "14") [ "dev" ]; - patchFlags = - if lib.versionOlder release_version "14" then [ "-p2" ] - else null; + patchFlags = if lib.versionOlder release_version "14" then [ "-p2" ] else null; - nativeBuildInputs = [ - cmake - ] ++ lib.optionals (lib.versionAtLeast release_version "15") [ - ninja - ] ++ [ perl ] ++ lib.optionals (lib.versionAtLeast release_version "14") [ - pkg-config lit - ]; + nativeBuildInputs = + [ cmake ] + ++ lib.optionals (lib.versionAtLeast release_version "15") [ ninja ] + ++ [ perl ] + ++ lib.optionals (lib.versionAtLeast release_version "14") [ + pkg-config + lit + ]; - buildInputs = [ - (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) - ]; + buildInputs = [ (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) ]; - cmakeFlags = lib.optionals (lib.versions.major release_version == "13") [ - "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL fails - ] ++ lib.optionals (lib.versionAtLeast release_version "14") [ - "-DCLANG_TOOL=${clang-unwrapped}/bin/clang" - "-DOPT_TOOL=${llvm}/bin/opt" - "-DLINK_TOOL=${llvm}/bin/llvm-link" - ]; + cmakeFlags = + lib.optionals (lib.versions.major release_version == "13") [ + "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL fails + ] + ++ lib.optionals (lib.versionAtLeast release_version "14") [ + "-DCLANG_TOOL=${clang-unwrapped}/bin/clang" + "-DOPT_TOOL=${llvm}/bin/opt" + "-DLINK_TOOL=${llvm}/bin/llvm-link" + ]; - meta = llvm_meta // { - homepage = "https://openmp.llvm.org/"; - description = "Support for the OpenMP language"; - longDescription = '' - The OpenMP subproject of LLVM contains the components required to build an - executable OpenMP program that are outside the compiler itself. - Contains the code for the runtime library against which code compiled by - "clang -fopenmp" must be linked before it can run and the library that - supports offload to target devices. + meta = llvm_meta // { + homepage = "https://openmp.llvm.org/"; + description = "Support for the OpenMP language"; + longDescription = '' + The OpenMP subproject of LLVM contains the components required to build an + executable OpenMP program that are outside the compiler itself. + Contains the code for the runtime library against which code compiled by + "clang -fopenmp" must be linked before it can run and the library that + supports offload to target devices. + ''; + # "All of the code is dual licensed under the MIT license and the UIUC + # License (a BSD-like license)": + license = with lib.licenses; [ + mit + ncsa + ]; + }; + } + // (lib.optionalAttrs (lib.versionAtLeast release_version "14") { + doCheck = false; + checkTarget = "check-openmp"; + preCheck = '' + patchShebangs ../tools/archer/tests/deflake.bash ''; - # "All of the code is dual licensed under the MIT license and the UIUC - # License (a BSD-like license)": - license = with lib.licenses; [ mit ncsa ]; - }; -} // (lib.optionalAttrs (lib.versionAtLeast release_version "14") { - doCheck = false; - checkTarget = "check-openmp"; - preCheck = '' - patchShebangs ../tools/archer/tests/deflake.bash - ''; -})) + }) +) diff --git a/pkgs/by-name/ll/llvm/git/default.nix b/pkgs/by-name/ll/llvm/git/default.nix index 1a34130..63877b7 100644 --- a/pkgs/by-name/ll/llvm/git/default.nix +++ b/pkgs/by-name/ll/llvm/git/default.nix @@ -1,28 +1,35 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, preLibcCrossHeaders -, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith -, buildLlvmTools # tools, but from the previous stage, for cross -, targetLlvmLibraries # libraries, but from the next stage, for cross -, targetLlvm -# This is the default binutils, but with *this* version of LLD rather -# than the default LLVM verion's, if LLD is the choice. We use these for -# the `useLLVM` bootstrapping below. -, bootBintoolsNoLibc ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintoolsNoLibc -, bootBintools ? - if stdenv.targetPlatform.linker == "lld" - then null - else pkgs.bintools -, darwin -# LLVM release information; specify one of these but not both: -, gitRelease ? { +{ + lowPrio, + newScope, + pkgs, + lib, + stdenv, + cmake, + ninja, + preLibcCrossHeaders, + libxml2, + python3, + fetchFromGitHub, + substituteAll, + overrideCC, + wrapCCWith, + wrapBintoolsWith, + buildLlvmTools, # tools, but from the previous stage, for cross + targetLlvmLibraries, # libraries, but from the next stage, for cross + targetLlvm, + # This is the default binutils, but with *this* version of LLD rather + # than the default LLVM verion's, if LLD is the choice. We use these for + # the `useLLVM` bootstrapping below. + bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc, + bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools, + darwin, + # LLVM release information; specify one of these but not both: + gitRelease ? { version = "19.0.0-git"; rev = "cebf77fb936a7270c7e3fa5c4a7e76216321d385"; rev-version = "19.0.0-unstable-2024-04-07"; sha256 = "sha256-616tscgsiFgHQcXW4KzK5srrudYizQFnJVM6K0qRf+I="; -} + }, # i.e.: # { # version = /* i.e. "15.0.0" */; @@ -30,343 +37,389 @@ # rev-version = /* human readable version; i.e. "15.0.0-unstable-2022-07-26" */; # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -, officialRelease ? null + officialRelease ? null, # i.e.: # { # version = /* i.e. "15.0.0" */; # candidate = /* optional; if specified, should be: "rcN" */ # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; # } -# By default, we'll try to fetch a release from `github:llvm/llvm-project` -# corresponding to the `gitRelease` or `officialRelease` specified. -# -# You can provide your own LLVM source by specifying this arg but then it's up -# to you to make sure that the LLVM repo given matches the release configuration -# specified. -, monorepoSrc ? null + # By default, we'll try to fetch a release from `github:llvm/llvm-project` + # corresponding to the `gitRelease` or `officialRelease` specified. + # + # You can provide your own LLVM source by specifying this arg but then it's up + # to you to make sure that the LLVM repo given matches the release configuration + # specified. + monorepoSrc ? null, }: -assert - lib.assertMsg - (lib.xor - (gitRelease != null) - (officialRelease != null)) - ("must specify `gitRelease` or `officialRelease`" + - (lib.optionalString (gitRelease != null) " — not both")); +assert lib.assertMsg (lib.xor (gitRelease != null) (officialRelease != null)) ( + "must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both") +); let monorepoSrc' = monorepoSrc; -in let +in +let inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; + inherit + (import ../common/common-let.nix { + inherit + lib + fetchFromGitHub + release_version + gitRelease + officialRelease + monorepoSrc' + ; + }) + llvm_meta + monorepoSrc + ; - tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); - major = lib.versions.major release_version; - mkExtraBuildCommands0 = cc: '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" - ''; + tools = lib.makeExtensible ( + tools: + let + callPackage = newScope ( + tools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + buildLlvmTools + ; + } + ); + major = lib.versions.major release_version; + mkExtraBuildCommands0 = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + mkExtraBuildCommands = + cc: + mkExtraBuildCommands0 cc + + '' + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share" + ''; - bintoolsNoLibc' = - if bootBintoolsNoLibc == null - then tools.bintoolsNoLibc - else bootBintoolsNoLibc; - bintools' = - if bootBintools == null - then tools.bintools - else bootBintools; + bintoolsNoLibc' = if bootBintoolsNoLibc == null then tools.bintoolsNoLibc else bootBintoolsNoLibc; + bintools' = if bootBintools == null then tools.bintools else bootBintools; - in { + in + { - libllvm = callPackage ./llvm { - inherit llvm_meta; - }; + libllvm = callPackage ./llvm { inherit llvm_meta; }; - # `llvm` historically had the binaries. When choosing an output explicitly, - # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* - llvm = tools.libllvm; + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm; - libclang = callPackage ../common/clang { - patches = [ - ./clang/purity.patch - # https://reviews.llvm.org/D51899 - ./clang/gnu-install-dirs.patch - ../common/clang/add-nostdlibinc-flag.patch - (substituteAll { - src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; - libllvmLibdir = "${tools.libllvm.lib}/lib"; - }) - ]; - inherit llvm_meta; - }; + libclang = callPackage ../common/clang { + patches = [ + ./clang/purity.patch + # https://reviews.llvm.org/D51899 + ./clang/gnu-install-dirs.patch + ../common/clang/add-nostdlibinc-flag.patch + (substituteAll { + src = ../common/clang/clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${tools.libllvm.lib}/lib"; + }) + ]; + inherit llvm_meta; + }; - clang-unwrapped = tools.libclang; + clang-unwrapped = tools.libclang; - llvm-manpages = lowPrio (tools.libllvm.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + llvm-manpages = lowPrio ( + tools.libllvm.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - clang-manpages = lowPrio (tools.libclang.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + clang-manpages = lowPrio ( + tools.libclang.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - lldb-manpages = lowPrio (tools.lldb.override { - enableManpages = true; - python3 = pkgs.python3; # don't use python-boot - }); + lldb-manpages = lowPrio ( + tools.lldb.override { + enableManpages = true; + python3 = pkgs.python3; # don't use python-boot + } + ); - # pick clang appropriate for package set we are targeting - clang = - /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM - else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang - else tools.libcxxClang; + # pick clang appropriate for package set we are targeting + clang = + if stdenv.targetPlatform.useLLVM or false then + tools.clangUseLLVM + else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then + tools.libstdcxxClang + else + tools.libcxxClang; - libstdcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. - libcxx = null; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libstdcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper. + libcxx = null; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - libcxxClang = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - }; + libcxxClang = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + }; - lld = callPackage ../common/lld { - patches = [ - ./lld/gnu-install-dirs.patch - ]; - inherit llvm_meta; - }; + lld = callPackage ../common/lld { + patches = [ ./lld/gnu-install-dirs.patch ]; + inherit llvm_meta; + }; - mlir = callPackage ../common/mlir { - inherit llvm_meta; - }; + mlir = callPackage ../common/mlir { inherit llvm_meta; }; - lldb = callPackage ../common/lldb.nix { - src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} '' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/lldb "$out" - '') { }; - patches = - [ - # FIXME: do we need this? ./procfs.patch - ../common/lldb/gnu-install-dirs.patch - ] - # This is a stopgap solution if/until the macOS SDK used for x86_64 is - # updated. - # - # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` - # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use - # of this preprocessor symbol in `lldb` with its expansion. - # - # See here for some context: - # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 - ++ lib.optional ( - stdenv.targetPlatform.isDarwin + lldb = callPackage ../common/lldb.nix { + src = callPackage ( + { runCommand }: + runCommand "lldb-src-${version}" { } '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/lldb "$out" + '' + ) { }; + patches = + [ + # FIXME: do we need this? ./procfs.patch + ../common/lldb/gnu-install-dirs.patch + ] + # This is a stopgap solution if/until the macOS SDK used for x86_64 is + # updated. + # + # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h` + # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use + # of this preprocessor symbol in `lldb` with its expansion. + # + # See here for some context: + # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 + ++ lib.optional ( + stdenv.targetPlatform.isDarwin && !stdenv.targetPlatform.isAarch64 && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") - ) ./lldb/cpu_subtype_arm64e_replacement.patch; - inherit llvm_meta; - }; + ) ./lldb/cpu_subtype_arm64e_replacement.patch; + inherit llvm_meta; + }; - # Below, is the LLVM bootstrapping logic. It handles building a - # fully LLVM toolchain from scratch. No GCC toolchain should be - # pulled in. As a consequence, it is very quick to build different - # targets provided by LLVM and we can also build for what GCC - # doesn’t support like LLVM. Probably we should move to some other - # file. + # Below, is the LLVM bootstrapping logic. It handles building a + # fully LLVM toolchain from scratch. No GCC toolchain should be + # pulled in. As a consequence, it is very quick to build different + # targets provided by LLVM and we can also build for what GCC + # doesn’t support like LLVM. Probably we should move to some other + # file. - bintools-unwrapped = callPackage ../common/bintools.nix { }; + bintools-unwrapped = callPackage ../common/bintools.nix { }; - bintoolsNoLibc = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - libc = preLibcCrossHeaders; - }; + bintoolsNoLibc = wrapBintoolsWith { + bintools = tools.bintools-unwrapped; + libc = preLibcCrossHeaders; + }; - bintools = wrapBintoolsWith { - bintools = tools.bintools-unwrapped; - }; + bintools = wrapBintoolsWith { bintools = tools.bintools-unwrapped; }; - clangUseLLVM = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = targetLlvmLibraries.libcxx; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ - targetLlvmLibraries.libunwind - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ "-rtlib=compiler-rt" - "-Wno-unused-command-line-argument" - "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" - ++ lib.optional - (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) - "-lunwind" - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ]; - }; + clangUseLLVM = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = targetLlvmLibraries.libcxx; + bintools = bintools'; + extraPackages = [ + targetLlvmLibraries.compiler-rt + ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [ targetLlvmLibraries.libunwind ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = + [ + "-rtlib=compiler-rt" + "-Wno-unused-command-line-argument" + "-B${targetLlvmLibraries.compiler-rt}/lib" + ] + ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind" + ++ lib.optional (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) "-lunwind" + ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ + "-L${targetLlvmLibraries.libunwind}/lib" + ]; + }; - clangNoLibcxx = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibcxx = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" "-nostdlib++" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoLibc = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ - targetLlvmLibraries.compiler-rt - ]; - extraBuildCommands = mkExtraBuildCommands cc; - nixSupport.cc-cflags = - [ + clangNoLibc = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ targetLlvmLibraries.compiler-rt ]; + extraBuildCommands = mkExtraBuildCommands cc; + nixSupport.cc-cflags = [ "-rtlib=compiler-rt" "-B${targetLlvmLibraries.compiler-rt}/lib" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRt = wrapCCWith rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintoolsNoLibc'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - nixSupport.cc-cflags = - [ + clangNoCompilerRt = wrapCCWith rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintoolsNoLibc'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + nixSupport.cc-cflags = [ "-nostartfiles" - ] - ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; - }; + ] ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions"; + }; - clangNoCompilerRtWithLibc = wrapCCWith (rec { - cc = tools.clang-unwrapped; - libcxx = null; - bintools = bintools'; - extraPackages = [ ]; - extraBuildCommands = mkExtraBuildCommands0 cc; - } // lib.optionalAttrs stdenv.targetPlatform.isWasm { - nixSupport.cc-cflags = [ "-fno-exceptions" ]; - }); + clangNoCompilerRtWithLibc = wrapCCWith ( + rec { + cc = tools.clang-unwrapped; + libcxx = null; + bintools = bintools'; + extraPackages = [ ]; + extraBuildCommands = mkExtraBuildCommands0 cc; + } + // lib.optionalAttrs stdenv.targetPlatform.isWasm { nixSupport.cc-cflags = [ "-fno-exceptions" ]; } + ); - # Has to be in tools despite mostly being a library, - # because we use a native helper executable from a - # non-cross build in cross builds. - libclc = callPackage ../common/libclc.nix { - inherit buildLlvmTools; - }; - }); + # Has to be in tools despite mostly being a library, + # because we use a native helper executable from a + # non-cross build in cross builds. + libclc = callPackage ../common/libclc.nix { inherit buildLlvmTools; }; + } + ); - libraries = lib.makeExtensible (libraries: let - callPackage = newScope (libraries // buildLlvmTools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc; }); - in { + libraries = lib.makeExtensible ( + libraries: + let + callPackage = newScope ( + libraries + // buildLlvmTools + // { + inherit + stdenv + cmake + ninja + libxml2 + python3 + release_version + version + monorepoSrc + ; + } + ); + in + { - compiler-rt-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) - then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc - else stdenv; - }; + compiler-rt-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if + stdenv.hostPlatform.useLLVM or false + || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic) + then + overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc + else + stdenv; + }; - compiler-rt-no-libc = callPackage ../common/compiler-rt { - patches = [ - ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config - # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the - # extra `/`. - ./compiler-rt/normalize-var.patch - # See: https://github.com/NixOS/nixpkgs/pull/186575 - ../common/compiler-rt/darwin-plistbuddy-workaround.patch - # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 - # ../common/compiler-rt/armv7l-15.patch - ]; - inherit llvm_meta; - stdenv = if stdenv.hostPlatform.useLLVM or false - then overrideCC stdenv buildLlvmTools.clangNoCompilerRt - else stdenv; - }; + compiler-rt-no-libc = callPackage ../common/compiler-rt { + patches = [ + ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config + # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the + # extra `/`. + ./compiler-rt/normalize-var.patch + # See: https://github.com/NixOS/nixpkgs/pull/186575 + ../common/compiler-rt/darwin-plistbuddy-workaround.patch + # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893 + # ../common/compiler-rt/armv7l-15.patch + ]; + inherit llvm_meta; + stdenv = + if stdenv.hostPlatform.useLLVM or false then + overrideCC stdenv buildLlvmTools.clangNoCompilerRt + else + stdenv; + }; - # N.B. condition is safe because without useLLVM both are the same. - compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin - then libraries.compiler-rt-libc - else libraries.compiler-rt-no-libc; + # N.B. condition is safe because without useLLVM both are the same. + compiler-rt = + if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin then + libraries.compiler-rt-libc + else + libraries.compiler-rt-no-libc; - stdenv = overrideCC stdenv buildLlvmTools.clang; + stdenv = overrideCC stdenv buildLlvmTools.clang; - libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; + libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang; - # `libcxx` requires a fairly modern C++ compiler, - # so: we use the clang from this LLVM package set instead of the regular - # stdenv's compiler. - libcxx = callPackage ../common/libcxx { - patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [ - # https://github.com/llvm/llvm-project/issues/64226 - ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch - ]; - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + # `libcxx` requires a fairly modern C++ compiler, + # so: we use the clang from this LLVM package set instead of the regular + # stdenv's compiler. + libcxx = callPackage ../common/libcxx { + patches = + lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") + [ + # https://github.com/llvm/llvm-project/issues/64226 + ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch + ]; + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - libunwind = callPackage ../common/libunwind { - inherit llvm_meta; - stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; - }; + libunwind = callPackage ../common/libunwind { + inherit llvm_meta; + stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx; + }; - openmp = callPackage ../common/openmp { - patches = [ - ./openmp/fix-find-tool.patch - ./openmp/run-lit-directly.patch - ]; - inherit llvm_meta targetLlvm; - }; - }); + openmp = callPackage ../common/openmp { + patches = [ + ./openmp/fix-find-tool.patch + ./openmp/run-lit-directly.patch + ]; + inherit llvm_meta targetLlvm; + }; + } + ); noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ]; -in { inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) +in +{ inherit tools libraries release_version; } // (noExtend libraries) // (noExtend tools) diff --git a/pkgs/by-name/ll/llvm/git/llvm/default.nix b/pkgs/by-name/ll/llvm/git/llvm/default.nix index 8987103..ce0cf3d 100644 --- a/pkgs/by-name/ll/llvm/git/llvm/default.nix +++ b/pkgs/by-name/ll/llvm/git/llvm/default.nix @@ -1,42 +1,49 @@ -{ lib, stdenv, llvm_meta -, pkgsBuildBuild -, monorepoSrc -, runCommand -, cmake -, darwin -, ninja -, python3 -, python3Packages -, libffi -, enableGoldPlugin ? libbfd.hasPluginAPI -, libbfd -, libpfm -, libxml2 -, ncurses -, version -, release_version -, zlib -, which -, sysctl -, buildLlvmTools -, debugVersion ? false -, doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl) - && (stdenv.hostPlatform == stdenv.buildPlatform) -, enableManpages ? false -, enableSharedLibraries ? !stdenv.hostPlatform.isStatic -, enablePFM ? stdenv.isLinux /* PFM only supports Linux */ - # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 - # broken for the armv7l builder - && !stdenv.hostPlatform.isAarch -, enablePolly ? true +{ + lib, + stdenv, + llvm_meta, + pkgsBuildBuild, + monorepoSrc, + runCommand, + cmake, + darwin, + ninja, + python3, + python3Packages, + libffi, + enableGoldPlugin ? libbfd.hasPluginAPI, + libbfd, + libpfm, + libxml2, + ncurses, + version, + release_version, + zlib, + which, + sysctl, + buildLlvmTools, + debugVersion ? false, + doCheck ? + ( + !stdenv.isx86_32 # TODO: why + ) + && (!stdenv.hostPlatform.isMusl) + && (stdenv.hostPlatform == stdenv.buildPlatform), + enableManpages ? false, + enableSharedLibraries ? !stdenv.hostPlatform.isStatic, + enablePFM ? + stdenv.isLinux # PFM only supports Linux + # broken for Ampere eMAG 8180 (c2.large.arm on Packet) #56245 + # broken for the armv7l builder + && !stdenv.hostPlatform.isAarch, + enablePolly ? true, }: let inherit (lib) optional optionals optionalString; # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with lib; - concatStringsSep "." (take 1 (splitString "." release_version)); + shortVersion = with lib; concatStringsSep "." (take 1 (splitString "." release_version)); # Ordinarily we would just the `doCheck` and `checkDeps` functionality # `mkDerivation` gives us to manage our test dependencies (instead of breaking @@ -55,381 +62,429 @@ let # # So, we "manually" assemble one python derivation for the package to depend # on, taking into account whether checks are enabled or not: - python = if doCheck then - # Note that we _explicitly_ ask for a python interpreter for our host - # platform here; the splicing that would ordinarily take care of this for - # us does not seem to work once we use `withPackages`. - let - checkDeps = ps: with ps; [ psutil ]; - in pkgsBuildBuild.targetPackages.python3.withPackages checkDeps - else python3; + python = + if doCheck then + # Note that we _explicitly_ ask for a python interpreter for our host + # platform here; the splicing that would ordinarily take care of this for + # us does not seem to work once we use `withPackages`. + let + checkDeps = ps: with ps; [ psutil ]; + in + pkgsBuildBuild.targetPackages.python3.withPackages checkDeps + else + python3; in -stdenv.mkDerivation (rec { - pname = "llvm"; - inherit version; +stdenv.mkDerivation ( + rec { + pname = "llvm"; + inherit version; - src = runCommand "${pname}-src-${version}" {} ('' - mkdir -p "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/${pname} "$out" - cp -r ${monorepoSrc}/third-party "$out" - '' + lib.optionalString enablePolly '' - chmod u+w "$out/${pname}/tools" - cp -r ${monorepoSrc}/polly "$out/${pname}/tools" - ''); + src = runCommand "${pname}-src-${version}" { } ( + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/${pname} "$out" + cp -r ${monorepoSrc}/third-party "$out" + '' + + lib.optionalString enablePolly '' + chmod u+w "$out/${pname}/tools" + cp -r ${monorepoSrc}/polly "$out/${pname}/tools" + '' + ); - sourceRoot = "${src.name}/${pname}"; + sourceRoot = "${src.name}/${pname}"; - outputs = [ "out" "lib" "dev" "python" ]; - - nativeBuildInputs = [ cmake ninja python ] - ++ optionals enableManpages [ - # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; - # splicing does *not* work with the latter. (TODO: fix) - python3Packages.sphinx - ] ++ optionals (lib.versionOlder version "18" && enableManpages) [ - python3Packages.recommonmark - ] ++ optionals (lib.versionAtLeast version "18" && enableManpages) [ - python3Packages.myst-parser - ]; - - buildInputs = [ libxml2 libffi ] - ++ optional enablePFM libpfm; # exegesis - - propagatedBuildInputs = [ ncurses zlib ]; - - nativeCheckInputs = [ - which - ] ++ lib.optional stdenv.isDarwin sysctl; - - patches = [ - ./gnu-install-dirs.patch - - # Running the tests involves invoking binaries (like `opt`) that depend on - # the LLVM dylibs and reference them by absolute install path (i.e. their - # nix store path). - # - # Because we have not yet run the install phase (we're running these tests - # as part of `checkPhase` instead of `installCheckPhase`) these absolute - # paths do not exist yet; to work around this we point the loader (`ld` on - # unix, `dyld` on macOS) at the `lib` directory which will later become this - # package's `lib` output. - # - # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` - # dir but: - # - this doesn't generalize well to other platforms; `lit` doesn't forward - # `DYLD_LIBRARY_PATH` (macOS): - # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 - # - even if `lit` forwarded this env var, we actually cannot set - # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because - # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for - # "protected processes" (i.e. the python interpreter that runs `lit`): - # https://stackoverflow.com/a/35570229 - # - other LLVM subprojects deal with this issue by having their `lit` - # configuration set these env vars for us; it makes sense to do the same - # for LLVM: - # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 - # - # !!! TODO: look into upstreaming this patch - ./llvm-lit-cfg-add-libs-to-dylib-path.patch - - # `lit` has a mode where it executes run lines as a shell script which is - # constructs; this is problematic for macOS because it means that there's - # another process in between `lit` and the binaries being tested. As noted - # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our - # tests fail with dyld errors. - # - # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when - # present in the test configuration. - # - # It's not clear to me why this isn't an issue for LLVM developers running - # on macOS (nothing about this _seems_ nix specific).. - ./lit-shell-script-runner-set-dyld-library-path.patch - ] ++ lib.optionals enablePolly [ - ./gnu-install-dirs-polly.patch - - # Just like the `llvm-lit-cfg` patch, but for `polly`. - ./polly-lit-cfg-add-libs-to-dylib-path.patch - ]; - - postPatch = optionalString stdenv.isDarwin '' - substituteInPlace cmake/modules/AddLLVM.cmake \ - --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ - --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" - - # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick - # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 - rm test/MC/ELF/cfi-version.ll - - # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) - # and thus fails under the sandbox: - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers" }" - - # This test tries to call the intrinsics `@llvm.roundeven.f32` and - # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` - # and `roundeven` on macOS. - # - # However these functions are glibc specific so the test fails: - # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html - # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html - # - substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ - --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ - --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" - - # fails when run in sandbox - substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \ - --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure" - '' + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' - # This test fails on darwin x86_64 because `sw_vers` reports a different - # macOS version than what LLVM finds by reading - # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into - # the sandbox on macOS). - # - # The `sw_vers` provided by nixpkgs reports the macOS version associated - # with the `CoreFoundation` framework with which it was built. Because - # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what - # `sw_vers` reports is not guaranteed to match the macOS version of the host - # that's building this derivation. - # - # Astute readers will note that we only _patch_ this test on aarch64-darwin - # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. - # So why does this test pass on aarch64? - # - # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ - # CoreFoundation framework instead of the nixpkgs provided one. - # - # Not entirely sure what the right fix is here. I'm assuming aarch64 - # `sw_vers` doesn't intentionally link against the host `CoreFoundation` - # (still digging into how this ends up happening, will follow up) but that - # aside I think the more pertinent question is: should we be patching LLVM's - # macOS version detection logic to use `sw_vers` instead of reading host - # paths? This *is* a way in which details about builder machines can creep - # into the artifacts that are produced, affecting reproducibility, but it's - # not clear to me when/where/for what this even gets used in LLVM. - # - # TODO(@rrbutani): fix/follow-up - substituteInPlace unittests/TargetParser/Host.cpp \ - --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" - '' + '' - # FileSystem permissions tests fail with various special bits - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "Path.cpp" "" - rm unittests/Support/Path.cpp - substituteInPlace unittests/IR/CMakeLists.txt \ - --replace "PassBuilderCallbacksTest.cpp" "" - rm unittests/IR/PassBuilderCallbacksTest.cpp - rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test - - # Fails in the presence of anti-virus software or other intrusion-detection software that - # modifies the atime when run. See #284056. - rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test - '' + optionalString stdenv.hostPlatform.isMusl '' - patch -p1 -i ${../../common/llvm/TLI-musl.patch} - substituteInPlace unittests/Support/CMakeLists.txt \ - --replace "add_subdirectory(DynamicLibrary)" "" - rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp - # valgrind unhappy with musl or glibc, but fails w/musl only - rm test/CodeGen/AArch64/wineh4.mir - '' + optionalString stdenv.hostPlatform.isAarch32 '' - # skip failing X86 test cases on 32-bit ARM - rm test/DebugInfo/X86/convert-debugloc.ll - rm test/DebugInfo/X86/convert-inlined.ll - rm test/DebugInfo/X86/convert-linked.ll - rm test/tools/dsymutil/X86/op-convert.test - rm test/tools/gold/X86/split-dwarf.ll - rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s - rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s - rm test/CodeGen/RISCV/attributes.ll - rm test/CodeGen/RISCV/xtheadmempair.ll - '' + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' - # Seems to require certain floating point hardware (NEON?) - rm test/ExecutionEngine/frem.ll - '' + '' - patchShebangs test/BugPoint/compile-custom.ll.py - ''; - - preConfigure = '' - # Workaround for configure flags that need to have spaces - cmakeFlagsArray+=( - -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" - ) - ''; - - # Defensive check: some paths (that we make symlinks to) depend on the release - # version, for example: - # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 - # - # So we want to sure that the version in the source matches the release - # version we were given. - # - # We do this check here, in the LLVM build, because it happens early. - postConfigure = let - v = lib.versions; - major = v.major release_version; - minor = v.minor release_version; - patch = v.patch release_version; - in '' - # $1: part, $2: expected - check_version() { - part="''${1^^}" - part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - - if [[ "$part" != "$2" ]]; then - echo >&2 \ - "mismatch in the $1 version! we have version ${release_version}" \ - "and expected the $1 version to be '$2'; the source has '$part' instead" - exit 3 - fi - } - - check_version major ${major} - check_version minor ${minor} - check_version patch ${patch} - ''; - - # E.g. mesa.drivers use the build-id as a cache key (see #93946): - LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - - hardeningDisable = [ "trivialautovarinit" ]; - - cmakeBuildType = if debugVersion then "Debug" else "Release"; - - cmakeFlags = with stdenv; let - # These flags influence llvm-config's BuildVariables.inc in addition to the - # general build. We need to make sure these are also passed via - # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native - # will return different results from the cross llvm-config. - # - # Some flags don't need to be repassed because LLVM already does so (like - # CMAKE_BUILD_TYPE), others are irrelevant to the result. - flagsForLlvmConfig = [ - "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" - "-DLLVM_ENABLE_RTTI=ON" - ] ++ optionals enableSharedLibraries [ - "-DLLVM_LINK_LLVM_DYLIB=ON" + outputs = [ + "out" + "lib" + "dev" + "python" ]; - in flagsForLlvmConfig ++ [ - "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc - "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" - "-DLLVM_ENABLE_FFI=ON" - "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" - "-DLLVM_ENABLE_DUMP=ON" - ] ++ optionals stdenv.hostPlatform.isStatic [ - # Disables building of shared libs, -fPIC is still injected by cc-wrapper - "-DLLVM_ENABLE_PIC=OFF" - "-DLLVM_BUILD_STATIC=ON" - "-DLLVM_LINK_LLVM_DYLIB=off" - # libxml2 needs to be disabled because the LLVM build system ignores its .la - # file and doesn't link zlib as well. - # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 - "-DLLVM_ENABLE_LIBXML2=OFF" - ] ++ optionals enableManpages [ - "-DLLVM_BUILD_DOCS=ON" - "-DLLVM_ENABLE_SPHINX=ON" - "-DSPHINX_OUTPUT_MAN=ON" - "-DSPHINX_OUTPUT_HTML=OFF" - "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals enableGoldPlugin [ - "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" - ] ++ optionals isDarwin [ - "-DLLVM_ENABLE_LIBCXX=ON" - "-DCAN_TARGET_i386=false" - ] ++ optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [ - "-DCMAKE_CROSSCOMPILING=True" - "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" - ( - let - nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; - nativeBintools = nativeCC.bintools.bintools; - nativeToolchainFlags = [ - "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" - "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" - "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" - "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" - "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" - ]; - # We need to repass the custom GNUInstallDirs values, otherwise CMake - # will choose them for us, leading to wrong results in llvm-config-native - nativeInstallFlags = [ - "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" - "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" - "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" - "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" - "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" - ]; - in "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" - + lib.concatStringsSep ";" (lib.concatLists [ - flagsForLlvmConfig - nativeToolchainFlags - nativeInstallFlags - ]) - ) - ]; - postInstall = '' - mkdir -p $python/share - mv $out/share/opt-viewer $python/share/opt-viewer - moveToOutput "bin/llvm-config*" "$dev" - substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \ - --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ - --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" - substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ - --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' - '' - + optionalString (stdenv.isDarwin && enableSharedLibraries) '' - ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib - '' - + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native - ''; + nativeBuildInputs = + [ + cmake + ninja + python + ] + ++ optionals enableManpages [ + # Note: we intentionally use `python3Packages` instead of `python3.pkgs`; + # splicing does *not* work with the latter. (TODO: fix) + python3Packages.sphinx + ] + ++ optionals (lib.versionOlder version "18" && enableManpages) [ python3Packages.recommonmark ] + ++ optionals (lib.versionAtLeast version "18" && enableManpages) [ python3Packages.myst-parser ]; - inherit doCheck; + buildInputs = [ + libxml2 + libffi + ] ++ optional enablePFM libpfm; # exegesis - checkTarget = "check-all"; + propagatedBuildInputs = [ + ncurses + zlib + ]; - # For the update script: - passthru.monorepoSrc = monorepoSrc; + nativeCheckInputs = [ which ] ++ lib.optional stdenv.isDarwin sysctl; - requiredSystemFeatures = [ "big-parallel" ]; - meta = llvm_meta // { - homepage = "https://llvm.org/"; - description = "A collection of modular and reusable compiler and toolchain technologies"; - longDescription = '' - The LLVM Project is a collection of modular and reusable compiler and - toolchain technologies. Despite its name, LLVM has little to do with - traditional virtual machines. The name "LLVM" itself is not an acronym; it - is the full name of the project. - LLVM began as a research project at the University of Illinois, with the - goal of providing a modern, SSA-based compilation strategy capable of - supporting both static and dynamic compilation of arbitrary programming - languages. Since then, LLVM has grown to be an umbrella project consisting - of a number of subprojects, many of which are being used in production by - a wide variety of commercial and open source projects as well as being - widely used in academic research. Code in the LLVM project is licensed - under the "Apache 2.0 License with LLVM exceptions". + patches = + [ + ./gnu-install-dirs.patch + + # Running the tests involves invoking binaries (like `opt`) that depend on + # the LLVM dylibs and reference them by absolute install path (i.e. their + # nix store path). + # + # Because we have not yet run the install phase (we're running these tests + # as part of `checkPhase` instead of `installCheckPhase`) these absolute + # paths do not exist yet; to work around this we point the loader (`ld` on + # unix, `dyld` on macOS) at the `lib` directory which will later become this + # package's `lib` output. + # + # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib` + # dir but: + # - this doesn't generalize well to other platforms; `lit` doesn't forward + # `DYLD_LIBRARY_PATH` (macOS): + # + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26 + # - even if `lit` forwarded this env var, we actually cannot set + # `DYLD_LIBRARY_PATH` in the child processes `lit` launches because + # `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for + # "protected processes" (i.e. the python interpreter that runs `lit`): + # https://stackoverflow.com/a/35570229 + # - other LLVM subprojects deal with this issue by having their `lit` + # configuration set these env vars for us; it makes sense to do the same + # for LLVM: + # + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31 + # + # !!! TODO: look into upstreaming this patch + ./llvm-lit-cfg-add-libs-to-dylib-path.patch + + # `lit` has a mode where it executes run lines as a shell script which is + # constructs; this is problematic for macOS because it means that there's + # another process in between `lit` and the binaries being tested. As noted + # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our + # tests fail with dyld errors. + # + # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when + # present in the test configuration. + # + # It's not clear to me why this isn't an issue for LLVM developers running + # on macOS (nothing about this _seems_ nix specific).. + ./lit-shell-script-runner-set-dyld-library-path.patch + ] + ++ lib.optionals enablePolly [ + ./gnu-install-dirs-polly.patch + + # Just like the `llvm-lit-cfg` patch, but for `polly`. + ./polly-lit-cfg-add-libs-to-dylib-path.patch + ]; + + postPatch = + optionalString stdenv.isDarwin '' + substituteInPlace cmake/modules/AddLLVM.cmake \ + --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \ + --replace 'set(_install_rpath "@loader_path/../''${CMAKE_INSTALL_LIBDIR}''${LLVM_LIBDIR_SUFFIX}" ''${extra_libdir})' "" + + # As of LLVM 15, marked as XFAIL on arm64 macOS but lit doesn't seem to pick + # this up: https://github.com/llvm/llvm-project/blob/c344d97a125b18f8fed0a64aace73c49a870e079/llvm/test/MC/ELF/cfi-version.ll#L7 + rm test/MC/ELF/cfi-version.ll + + # This test tries to call `sw_vers` by absolute path (`/usr/bin/sw_vers`) + # and thus fails under the sandbox: + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace '/usr/bin/sw_vers' "${(builtins.toString darwin.DarwinTools) + "/bin/sw_vers"}" + + # This test tries to call the intrinsics `@llvm.roundeven.f32` and + # `@llvm.roundeven.f64` which seem to (incorrectly?) lower to `roundevenf` + # and `roundeven` on macOS. + # + # However these functions are glibc specific so the test fails: + # - https://www.gnu.org/software/gnulib/manual/html_node/roundevenf.html + # - https://www.gnu.org/software/gnulib/manual/html_node/roundeven.html + # + substituteInPlace test/ExecutionEngine/Interpreter/intrinsics.ll \ + --replace "%roundeven32 = call float @llvm.roundeven.f32(float 0.000000e+00)" "" \ + --replace "%roundeven64 = call double @llvm.roundeven.f64(double 0.000000e+00)" "" + + # fails when run in sandbox + substituteInPlace unittests/Support/VirtualFileSystemTest.cpp \ + --replace "PhysicalFileSystemWorkingDirFailure" "DISABLED_PhysicalFileSystemWorkingDirFailure" + '' + + optionalString (stdenv.isDarwin && stdenv.hostPlatform.isx86) '' + # This test fails on darwin x86_64 because `sw_vers` reports a different + # macOS version than what LLVM finds by reading + # `/System/Library/CoreServices/SystemVersion.plist` (which is passed into + # the sandbox on macOS). + # + # The `sw_vers` provided by nixpkgs reports the macOS version associated + # with the `CoreFoundation` framework with which it was built. Because + # nixpkgs pins the SDK for `aarch64-darwin` and `x86_64-darwin` what + # `sw_vers` reports is not guaranteed to match the macOS version of the host + # that's building this derivation. + # + # Astute readers will note that we only _patch_ this test on aarch64-darwin + # (to use the nixpkgs provided `sw_vers`) instead of disabling it outright. + # So why does this test pass on aarch64? + # + # Well, it seems that `sw_vers` on aarch64 actually links against the _host_ + # CoreFoundation framework instead of the nixpkgs provided one. + # + # Not entirely sure what the right fix is here. I'm assuming aarch64 + # `sw_vers` doesn't intentionally link against the host `CoreFoundation` + # (still digging into how this ends up happening, will follow up) but that + # aside I think the more pertinent question is: should we be patching LLVM's + # macOS version detection logic to use `sw_vers` instead of reading host + # paths? This *is* a way in which details about builder machines can creep + # into the artifacts that are produced, affecting reproducibility, but it's + # not clear to me when/where/for what this even gets used in LLVM. + # + # TODO(@rrbutani): fix/follow-up + substituteInPlace unittests/TargetParser/Host.cpp \ + --replace "getMacOSHostVersion" "DISABLED_getMacOSHostVersion" + '' + + '' + # FileSystem permissions tests fail with various special bits + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "Path.cpp" "" + rm unittests/Support/Path.cpp + substituteInPlace unittests/IR/CMakeLists.txt \ + --replace "PassBuilderCallbacksTest.cpp" "" + rm unittests/IR/PassBuilderCallbacksTest.cpp + rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test + + # Fails in the presence of anti-virus software or other intrusion-detection software that + # modifies the atime when run. See #284056. + rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test + '' + + optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../../common/llvm/TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp + # valgrind unhappy with musl or glibc, but fails w/musl only + rm test/CodeGen/AArch64/wineh4.mir + '' + + optionalString stdenv.hostPlatform.isAarch32 '' + # skip failing X86 test cases on 32-bit ARM + rm test/DebugInfo/X86/convert-debugloc.ll + rm test/DebugInfo/X86/convert-inlined.ll + rm test/DebugInfo/X86/convert-linked.ll + rm test/tools/dsymutil/X86/op-convert.test + rm test/tools/gold/X86/split-dwarf.ll + rm test/tools/llvm-dwarfdump/X86/prettyprint_types.s + rm test/tools/llvm-dwarfdump/X86/simplified-template-names.s + rm test/CodeGen/RISCV/attributes.ll + rm test/CodeGen/RISCV/xtheadmempair.ll + '' + + optionalString (stdenv.hostPlatform.system == "armv6l-linux") '' + # Seems to require certain floating point hardware (NEON?) + rm test/ExecutionEngine/frem.ll + '' + + '' + patchShebangs test/BugPoint/compile-custom.ll.py + ''; + + preConfigure = '' + # Workaround for configure flags that need to have spaces + cmakeFlagsArray+=( + -DLLVM_LIT_ARGS="-svj''${NIX_BUILD_CORES} --no-progress-bar" + ) ''; - }; -} // lib.optionalAttrs enableManpages { - pname = "llvm-manpages"; - propagatedBuildInputs = []; + # Defensive check: some paths (that we make symlinks to) depend on the release + # version, for example: + # - https://github.com/llvm/llvm-project/blob/406bde9a15136254f2b10d9ef3a42033b3cb1b16/clang/lib/Headers/CMakeLists.txt#L185 + # + # So we want to sure that the version in the source matches the release + # version we were given. + # + # We do this check here, in the LLVM build, because it happens early. + postConfigure = + let + v = lib.versions; + major = v.major release_version; + minor = v.minor release_version; + patch = v.patch release_version; + in + '' + # $1: part, $2: expected + check_version() { + part="''${1^^}" + part="$(cat include/llvm/Config/llvm-config.h | grep "#define LLVM_VERSION_''${part} " | cut -d' ' -f3)" - ninjaFlags = [ "docs-llvm-man" ]; - installTargets = [ "install-docs-llvm-man" ]; + if [[ "$part" != "$2" ]]; then + echo >&2 \ + "mismatch in the $1 version! we have version ${release_version}" \ + "and expected the $1 version to be '$2'; the source has '$part' instead" + exit 3 + fi + } - postPatch = null; - postInstall = null; + check_version major ${major} + check_version minor ${minor} + check_version patch ${patch} + ''; - outputs = [ "out" ]; + # E.g. mesa.drivers use the build-id as a cache key (see #93946): + LDFLAGS = optionalString (enableSharedLibraries && !stdenv.isDarwin) "-Wl,--build-id=sha1"; - doCheck = false; + hardeningDisable = [ "trivialautovarinit" ]; - meta = llvm_meta // { - description = "man pages for LLVM ${version}"; - }; -}) + cmakeBuildType = if debugVersion then "Debug" else "Release"; + + cmakeFlags = + with stdenv; + let + # These flags influence llvm-config's BuildVariables.inc in addition to the + # general build. We need to make sure these are also passed via + # CROSS_TOOLCHAIN_FLAGS_NATIVE when cross-compiling or llvm-config-native + # will return different results from the cross llvm-config. + # + # Some flags don't need to be repassed because LLVM already does so (like + # CMAKE_BUILD_TYPE), others are irrelevant to the result. + flagsForLlvmConfig = [ + "-DLLVM_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/llvm" + "-DLLVM_ENABLE_RTTI=ON" + ] ++ optionals enableSharedLibraries [ "-DLLVM_LINK_LLVM_DYLIB=ON" ]; + in + flagsForLlvmConfig + ++ [ + "-DLLVM_INSTALL_UTILS=ON" # Needed by rustc + "-DLLVM_BUILD_TESTS=${if doCheck then "ON" else "OFF"}" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_ENABLE_DUMP=ON" + ] + ++ optionals stdenv.hostPlatform.isStatic [ + # Disables building of shared libs, -fPIC is still injected by cc-wrapper + "-DLLVM_ENABLE_PIC=OFF" + "-DLLVM_BUILD_STATIC=ON" + "-DLLVM_LINK_LLVM_DYLIB=off" + # libxml2 needs to be disabled because the LLVM build system ignores its .la + # file and doesn't link zlib as well. + # https://github.com/ClangBuiltLinux/tc-build/issues/150#issuecomment-845418812 + "-DLLVM_ENABLE_LIBXML2=OFF" + ] + ++ optionals enableManpages [ + "-DLLVM_BUILD_DOCS=ON" + "-DLLVM_ENABLE_SPHINX=ON" + "-DSPHINX_OUTPUT_MAN=ON" + "-DSPHINX_OUTPUT_HTML=OFF" + "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] + ++ optionals enableGoldPlugin [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] + ++ optionals isDarwin [ + "-DLLVM_ENABLE_LIBCXX=ON" + "-DCAN_TARGET_i386=false" + ] + ++ + optionals + ( + (stdenv.hostPlatform != stdenv.buildPlatform) + && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform) + ) + [ + "-DCMAKE_CROSSCOMPILING=True" + "-DLLVM_TABLEGEN=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + nativeBintools = nativeCC.bintools.bintools; + nativeToolchainFlags = [ + "-DCMAKE_C_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}cc" + "-DCMAKE_CXX_COMPILER=${nativeCC}/bin/${nativeCC.targetPrefix}c++" + "-DCMAKE_AR=${nativeBintools}/bin/${nativeBintools.targetPrefix}ar" + "-DCMAKE_STRIP=${nativeBintools}/bin/${nativeBintools.targetPrefix}strip" + "-DCMAKE_RANLIB=${nativeBintools}/bin/${nativeBintools.targetPrefix}ranlib" + ]; + # We need to repass the custom GNUInstallDirs values, otherwise CMake + # will choose them for us, leading to wrong results in llvm-config-native + nativeInstallFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}" + "-DCMAKE_INSTALL_BINDIR=${placeholder "out"}/bin" + "-DCMAKE_INSTALL_INCLUDEDIR=${placeholder "dev"}/include" + "-DCMAKE_INSTALL_LIBDIR=${placeholder "lib"}/lib" + "-DCMAKE_INSTALL_LIBEXECDIR=${placeholder "lib"}/libexec" + ]; + in + "-DCROSS_TOOLCHAIN_FLAGS_NATIVE:list=" + + lib.concatStringsSep ";" ( + lib.concatLists [ + flagsForLlvmConfig + nativeToolchainFlags + nativeInstallFlags + ] + ) + ) + ]; + + postInstall = + '' + mkdir -p $python/share + mv $out/share/opt-viewer $python/share/opt-viewer + moveToOutput "bin/llvm-config*" "$dev" + substituteInPlace "$dev/lib/cmake/llvm/LLVMExports-${ + if debugVersion then "debug" else "release" + }.cmake" \ + --replace "\''${_IMPORT_PREFIX}/lib/lib" "$lib/lib/lib" \ + --replace "$out/bin/llvm-config" "$dev/bin/llvm-config" + substituteInPlace "$dev/lib/cmake/llvm/LLVMConfig.cmake" \ + --replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "'"$lib"'")' + '' + + optionalString (stdenv.isDarwin && enableSharedLibraries) '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib + '' + + optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + cp NATIVE/bin/llvm-config $dev/bin/llvm-config-native + ''; + + inherit doCheck; + + checkTarget = "check-all"; + + # For the update script: + passthru.monorepoSrc = monorepoSrc; + + requiredSystemFeatures = [ "big-parallel" ]; + meta = llvm_meta // { + homepage = "https://llvm.org/"; + description = "A collection of modular and reusable compiler and toolchain technologies"; + longDescription = '' + The LLVM Project is a collection of modular and reusable compiler and + toolchain technologies. Despite its name, LLVM has little to do with + traditional virtual machines. The name "LLVM" itself is not an acronym; it + is the full name of the project. + LLVM began as a research project at the University of Illinois, with the + goal of providing a modern, SSA-based compilation strategy capable of + supporting both static and dynamic compilation of arbitrary programming + languages. Since then, LLVM has grown to be an umbrella project consisting + of a number of subprojects, many of which are being used in production by + a wide variety of commercial and open source projects as well as being + widely used in academic research. Code in the LLVM project is licensed + under the "Apache 2.0 License with LLVM exceptions". + ''; + }; + } + // lib.optionalAttrs enableManpages { + pname = "llvm-manpages"; + + propagatedBuildInputs = [ ]; + + ninjaFlags = [ "docs-llvm-man" ]; + installTargets = [ "install-docs-llvm-man" ]; + + postPatch = null; + postInstall = null; + + outputs = [ "out" ]; + + doCheck = false; + + meta = llvm_meta // { + description = "man pages for LLVM ${version}"; + }; + } +) diff --git a/pkgs/by-name/ll/llvm/multi.nix b/pkgs/by-name/ll/llvm/multi.nix index 136e13b..7a5fd25 100644 --- a/pkgs/by-name/ll/llvm/multi.nix +++ b/pkgs/by-name/ll/llvm/multi.nix @@ -1,42 +1,48 @@ -{ runCommand, -clang, -gcc64, -gcc32, -glibc_multi +{ + runCommand, + clang, + gcc64, + gcc32, + glibc_multi, }: let - combine = basegcc: runCommand "combine-gcc-libc" {} '' - mkdir -p $out - cp -r ${basegcc.cc}/lib $out/lib + combine = + basegcc: + runCommand "combine-gcc-libc" { } '' + mkdir -p $out + cp -r ${basegcc.cc}/lib $out/lib - chmod u+rw -R $out/lib - cp -r ${basegcc.libc}/lib/* $(ls -d $out/lib/gcc/*/*) - ''; - gcc_multi_sysroot = runCommand "gcc-multi-sysroot" { - passthru = { - inherit (gcc64) version; - lib = gcc_multi_sysroot; - }; - } '' - mkdir -p $out/lib{,64}/gcc + chmod u+rw -R $out/lib + cp -r ${basegcc.libc}/lib/* $(ls -d $out/lib/gcc/*/*) + ''; + gcc_multi_sysroot = + runCommand "gcc-multi-sysroot" + { + passthru = { + inherit (gcc64) version; + lib = gcc_multi_sysroot; + }; + } + '' + mkdir -p $out/lib{,64}/gcc - ln -s ${combine gcc64}/lib/gcc/* $out/lib64/gcc/ - ln -s ${combine gcc32}/lib/gcc/* $out/lib/gcc/ - # XXX: This shouldn't be needed, clang just doesn't look for "i686-unknown" - ln -s $out/lib/gcc/i686-unknown-linux-gnu $out/lib/gcc/i686-pc-linux-gnu + ln -s ${combine gcc64}/lib/gcc/* $out/lib64/gcc/ + ln -s ${combine gcc32}/lib/gcc/* $out/lib/gcc/ + # XXX: This shouldn't be needed, clang just doesn't look for "i686-unknown" + ln -s $out/lib/gcc/i686-unknown-linux-gnu $out/lib/gcc/i686-pc-linux-gnu - # includes - mkdir -p $out/include - ln -s ${glibc_multi.dev}/include/* $out/include - ln -s ${gcc64.cc}/include/c++ $out/include/c++ + # includes + mkdir -p $out/include + ln -s ${glibc_multi.dev}/include/* $out/include + ln -s ${gcc64.cc}/include/c++ $out/include/c++ - # dynamic linkers - mkdir -p $out/lib/32 - ln -s ${glibc_multi.out}/lib/ld-linux* $out/lib - ln -s ${glibc_multi.out}/lib/32/ld-linux* $out/lib/32/ - ''; + # dynamic linkers + mkdir -p $out/lib/32 + ln -s ${glibc_multi.out}/lib/ld-linux* $out/lib + ln -s ${glibc_multi.out}/lib/32/ld-linux* $out/lib/32/ + ''; clangMulti = clang.override { # Only used for providing expected structure re:dynamic linkers, AFAIK Most @@ -44,17 +50,17 @@ let # `gccForLibs`. libc = gcc_multi_sysroot; - bintools = clang.bintools.override { - libc = gcc_multi_sysroot; - }; + bintools = clang.bintools.override { libc = gcc_multi_sysroot; }; gccForLibs = gcc_multi_sysroot // { inherit (glibc_multi) libgcc; langCC = - assert (gcc64.cc.langCC != gcc32.cc.langCC) - -> throw "(gcc64.cc.langCC=${gcc64.cc.langCC}) != (gcc32.cc.langCC=${gcc32.cc.langCC})"; + assert + (gcc64.cc.langCC != gcc32.cc.langCC) + -> throw "(gcc64.cc.langCC=${gcc64.cc.langCC}) != (gcc32.cc.langCC=${gcc32.cc.langCC})"; gcc64.cc.langCC; }; }; -in clangMulti +in +clangMulti diff --git a/pkgs/by-name/ll/llvm/packages.nix b/pkgs/by-name/ll/llvm/packages.nix index b36ae68..5629a4e 100644 --- a/pkgs/by-name/ll/llvm/packages.nix +++ b/pkgs/by-name/ll/llvm/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { lld = llvmPackages.lld; lld_12 = llvmPackages_12.lld; @@ -38,74 +37,95 @@ with pkgs; let # This returns the minimum supported version for the platform. The # assumption is that or any later version is good. - choose = platform: - /**/ - if platform.isDarwin then 16 - else if platform.isFreeBSD then 12 - else if platform.isAndroid then 12 - else if platform.isLinux then 17 - else if platform.isWasm then 16 + choose = + platform: + if platform.isDarwin then + 16 + else if platform.isFreeBSD then + 12 + else if platform.isAndroid then + 12 + else if platform.isLinux then + 17 + else if platform.isWasm then + 16 # For unknown systems, assume the latest version is required. - else 17; + else + 17; # We take the "max of the mins". Why? Since those are lower bounds of the # supported version set, this is like intersecting those sets and then # taking the min bound of that. - minSupported = toString (lib.trivial.max (choose stdenv.hostPlatform) (choose - stdenv.targetPlatform)); + minSupported = toString ( + lib.trivial.max (choose stdenv.hostPlatform) (choose stdenv.targetPlatform) + ); in pkgs.${"llvmPackages_${minSupported}"}; - llvmPackages_12 = recurseIntoAttrs (callPackage ./12 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_12.tools; - targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries; - targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm; - })); + llvmPackages_12 = recurseIntoAttrs ( + callPackage ./12 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_12.tools; + targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries; + targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm; + }) + ); - llvmPackages_13 = recurseIntoAttrs (callPackage ./13 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_13.tools; - targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries; - targetLlvm = targetPackages.llvmPackages_13.llvm or llvmPackages_13.llvm; - stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13 - })); + llvmPackages_13 = recurseIntoAttrs ( + callPackage ./13 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_13.tools; + targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries; + targetLlvm = targetPackages.llvmPackages_13.llvm or llvmPackages_13.llvm; + stdenv = if stdenv.cc.cc.isGNU or false then gcc12Stdenv else stdenv; # does not build with gcc13 + }) + ); - llvmPackages_14 = recurseIntoAttrs (callPackage ./14 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_14.tools; - targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries; - targetLlvm = targetPackages.llvmPackages_14.llvm or llvmPackages_14.llvm; - })); + llvmPackages_14 = recurseIntoAttrs ( + callPackage ./14 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_14.tools; + targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries; + targetLlvm = targetPackages.llvmPackages_14.llvm or llvmPackages_14.llvm; + }) + ); - llvmPackages_15 = recurseIntoAttrs (callPackage ./15 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_15.tools; - targetLlvmLibraries = targetPackages.llvmPackages_15.libraries or llvmPackages_15.libraries; - targetLlvm = targetPackages.llvmPackages_15.llvm or llvmPackages_15.llvm; - })); + llvmPackages_15 = recurseIntoAttrs ( + callPackage ./15 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_15.tools; + targetLlvmLibraries = targetPackages.llvmPackages_15.libraries or llvmPackages_15.libraries; + targetLlvm = targetPackages.llvmPackages_15.llvm or llvmPackages_15.llvm; + }) + ); - llvmPackages_16 = recurseIntoAttrs (callPackage ./16 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_16.tools; - targetLlvmLibraries = targetPackages.llvmPackages_16.libraries or llvmPackages_16.libraries; - targetLlvm = targetPackages.llvmPackages_16.llvm or llvmPackages_16.llvm; - })); + llvmPackages_16 = recurseIntoAttrs ( + callPackage ./16 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_16.tools; + targetLlvmLibraries = targetPackages.llvmPackages_16.libraries or llvmPackages_16.libraries; + targetLlvm = targetPackages.llvmPackages_16.llvm or llvmPackages_16.llvm; + }) + ); - llvmPackages_17 = recurseIntoAttrs (callPackage ./17 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_17.tools; - targetLlvmLibraries = targetPackages.llvmPackages_17.libraries or llvmPackages_17.libraries; - targetLlvm = targetPackages.llvmPackages_17.llvm or llvmPackages_17.llvm; - })); + llvmPackages_17 = recurseIntoAttrs ( + callPackage ./17 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_17.tools; + targetLlvmLibraries = targetPackages.llvmPackages_17.libraries or llvmPackages_17.libraries; + targetLlvm = targetPackages.llvmPackages_17.llvm or llvmPackages_17.llvm; + }) + ); inherit (rec { - llvmPackages_18 = recurseIntoAttrs (callPackage ./18 ({ - inherit (stdenvAdapters) overrideCC; - buildLlvmTools = buildPackages.llvmPackages_18.tools; - targetLlvmLibraries = targetPackages.llvmPackages_18.libraries or llvmPackages_18.libraries; - targetLlvm = targetPackages.llvmPackages_18.llvm or llvmPackages_18.llvm; - })); + llvmPackages_18 = recurseIntoAttrs ( + callPackage ./18 ({ + inherit (stdenvAdapters) overrideCC; + buildLlvmTools = buildPackages.llvmPackages_18.tools; + targetLlvmLibraries = targetPackages.llvmPackages_18.libraries or llvmPackages_18.libraries; + targetLlvm = targetPackages.llvmPackages_18.llvm or llvmPackages_18.llvm; + }) + ); clang_18 = llvmPackages_18.clang; lld_18 = llvmPackages_18.lld; @@ -122,17 +142,19 @@ with pkgs; lld_18 lldb_18 llvm_18 - clang-tools_18; + clang-tools_18 + ; - wrapClangMulti = clang: + wrapClangMulti = + clang: if stdenv.targetPlatform.system == "x86_64-linux" then - callPackage ./multi.nix - { - inherit clang; - gcc32 = pkgsi686Linux.gcc; - gcc64 = pkgs.gcc; - } - else throw "Multilib ${clang.cc.name} not supported for '${stdenv.targetPlatform.system}'"; + callPackage ./multi.nix { + inherit clang; + gcc32 = pkgsi686Linux.gcc; + gcc64 = pkgs.gcc; + } + else + throw "Multilib ${clang.cc.name} not supported for '${stdenv.targetPlatform.system}'"; clang_multi = wrapClangMulti clang; clangMultiStdenv = overrideCC stdenv buildPackages.clang_multi; @@ -141,9 +163,7 @@ with pkgs; clang-sierraHack = clang.override { name = "clang-wrapper-with-reexport-hack"; - bintools = darwin.binutils.override { - useMacosReexportHack = true; - }; + bintools = darwin.binutils.override { useMacosReexportHack = true; }; }; clang = llvmPackages.clang; diff --git a/pkgs/by-name/lo/lowdown/default.nix b/pkgs/by-name/lo/lowdown/default.nix index 2c659ef..765f717 100644 --- a/pkgs/by-name/lo/lowdown/default.nix +++ b/pkgs/by-name/lo/lowdown/default.nix @@ -1,6 +1,12 @@ -{ lib, stdenv, fetchurl, fixDarwinDylibNames, which, dieHook -, enableShared ? !stdenv.hostPlatform.isStatic -, enableStatic ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchurl, + fixDarwinDylibNames, + which, + dieHook, + enableShared ? !stdenv.hostPlatform.isStatic, + enableStatic ? stdenv.hostPlatform.isStatic, # for passthru.tests # , nix }: @@ -9,15 +15,22 @@ stdenv.mkDerivation rec { pname = "lowdown"; version = "1.1.0"; - outputs = [ "out" "lib" "dev" "man" ]; + outputs = [ + "out" + "lib" + "dev" + "man" + ]; src = fetchurl { url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz"; hash = "sha512-EpAWTz7Zy+2qqJGgzLrt0tK7WEZ+hHbdyqzAmMiaqc6uNXscR88git6/UbTjvB9Yanvetvw9huSuyhcORCEIug=="; }; - nativeBuildInputs = [ which dieHook ] - ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; + nativeBuildInputs = [ + which + dieHook + ] ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; preConfigure = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' echo 'HAVE_SANDBOX_INIT=0' > configure.local @@ -36,13 +49,10 @@ stdenv.mkDerivation rec { "bins" # prevents shared object from being built unnecessarily ]; - installTargets = [ - "install" - ] ++ lib.optionals enableShared [ - "install_shared" - ] ++ lib.optionals enableStatic [ - "install_static" - ]; + installTargets = + [ "install" ] + ++ lib.optionals enableShared [ "install_shared" ] + ++ lib.optionals enableStatic [ "install_static" ]; postInstall = let diff --git a/pkgs/by-name/ls/lsof/default.nix b/pkgs/by-name/ls/lsof/default.nix index 4cce674..9c6f7d1 100644 --- a/pkgs/by-name/ls/lsof/default.nix +++ b/pkgs/by-name/ls/lsof/default.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, buildPackages, perl, which, ncurses, nukeReferences }: +{ + lib, + stdenv, + fetchFromGitHub, + buildPackages, + perl, + which, + ncurses, + nukeReferences, +}: let dialect = with lib; last (splitString "-" stdenv.hostPlatform.system); @@ -15,18 +24,24 @@ stdenv.mkDerivation rec { hash = "sha256-XW3l+E9D8hgI9jGJGKkIAKa8O9m0JHgZhEASqg4gYuw="; }; - postPatch = '' - patchShebangs --build lib/dialects/*/Mksrc - # Do not re-build version.h in every 'make' to allow nuke-refs below. - # We remove phony 'FRC' target that forces rebuilds: - # 'version.h: FRC ...' is translated to 'version.h: ...'. - sed -i lib/dialects/*/Makefile -e 's/version.h:\s*FRC/version.h:/' - '' + lib.optionalString stdenv.isDarwin '' - sed -i 's|lcurses|lncurses|g' Configure - ''; + postPatch = + '' + patchShebangs --build lib/dialects/*/Mksrc + # Do not re-build version.h in every 'make' to allow nuke-refs below. + # We remove phony 'FRC' target that forces rebuilds: + # 'version.h: FRC ...' is translated to 'version.h: ...'. + sed -i lib/dialects/*/Makefile -e 's/version.h:\s*FRC/version.h:/' + '' + + lib.optionalString stdenv.isDarwin '' + sed -i 's|lcurses|lncurses|g' Configure + ''; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ nukeReferences perl which ]; + nativeBuildInputs = [ + nukeReferences + perl + which + ]; buildInputs = [ ncurses ]; # Stop build scripts from searching global include paths diff --git a/pkgs/by-name/ly/lynx/default.nix b/pkgs/by-name/ly/lynx/default.nix index a31dc94..a1fa7e4 100644 --- a/pkgs/by-name/ly/lynx/default.nix +++ b/pkgs/by-name/ly/lynx/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, buildPackages -, fetchurl -, pkg-config -, ncurses -, gzip -, sslSupport ? true -, openssl -, nukeReferences -, fetchpatch +{ + lib, + stdenv, + buildPackages, + fetchurl, + pkg-config, + ncurses, + gzip, + sslSupport ? true, + openssl, + nukeReferences, + fetchpatch, }: stdenv.mkDerivation rec { @@ -34,11 +35,12 @@ stdenv.mkDerivation rec { ] ++ lib.optional sslSupport "--with-ssl"; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ nukeReferences ] - ++ lib.optional sslSupport pkg-config; + nativeBuildInputs = [ nukeReferences ] ++ lib.optional sslSupport pkg-config; - buildInputs = [ ncurses gzip ] - ++ lib.optional sslSupport openssl; + buildInputs = [ + ncurses + gzip + ] ++ lib.optional sslSupport openssl; # cfg_defs.h captures lots of references to build-only dependencies, derived # from config.cache. diff --git a/pkgs/by-name/lz/lzip/default.nix b/pkgs/by-name/lz/lzip/default.nix index 82052ba..b3607db 100644 --- a/pkgs/by-name/lz/lzip/default.nix +++ b/pkgs/by-name/lz/lzip/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -8,16 +12,18 @@ stdenv.mkDerivation rec { pname = "lzip"; version = "1.24.1"; - outputs = [ "out" "man" "info" ]; + outputs = [ + "out" + "man" + "info" + ]; src = fetchurl { url = "mirror://savannah/lzip/${pname}-${version}.tar.gz"; hash = "sha256-MMnLagYF9HnElsN262KaSLChaW0WfjweCQxd76SBsWI="; }; - patches = lib.optionals stdenv.hostPlatform.isMinGW [ - ./mingw-install-exe-file.patch - ]; + patches = lib.optionals stdenv.hostPlatform.isMinGW [ ./mingw-install-exe-file.patch ]; configureFlags = [ "CPPFLAGS=-DNDEBUG" diff --git a/pkgs/by-name/lz/lzo/default.nix b/pkgs/by-name/lz/lzo/default.nix index 480e2bb..28abe05 100644 --- a/pkgs/by-name/lz/lzo/default.nix +++ b/pkgs/by-name/lz/lzo/default.nix @@ -1,4 +1,8 @@ -{lib, stdenv, fetchurl}: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "lzo"; @@ -9,7 +13,7 @@ stdenv.mkDerivation rec { sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60"; }; - configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ; + configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared"; enableParallelBuilding = true; diff --git a/pkgs/by-name/ma/mailcap/default.nix b/pkgs/by-name/ma/mailcap/default.nix index 06c8047..22c75ac 100644 --- a/pkgs/by-name/ma/mailcap/default.nix +++ b/pkgs/by-name/ma/mailcap/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "mailcap"; diff --git a/pkgs/by-name/ma/man-db/default.nix b/pkgs/by-name/ma/man-db/default.nix index 846c0c3..81dd95b 100644 --- a/pkgs/by-name/ma/man-db/default.nix +++ b/pkgs/by-name/ma/man-db/default.nix @@ -1,16 +1,17 @@ -{ buildPackages -, db -, fetchurl -, groff -, gzip -, lib -, libiconv -, libpipeline -, makeWrapper -, pkg-config -, stdenv -, zstd -, autoreconfHook +{ + buildPackages, + db, + fetchurl, + groff, + gzip, + lib, + libiconv, + libpipeline, + makeWrapper, + pkg-config, + stdenv, + zstd, + autoreconfHook, # for passthru.tests # , nixosTests }: @@ -24,17 +25,30 @@ stdenv.mkDerivation rec { hash = "sha256-3e4kna63jPkrq3lMzQacyLV1mSJl6iDiOeiHFW6IAmU="; }; - outputs = [ "out" "doc" ]; + outputs = [ + "out" + "doc" + ]; outputMan = "out"; # users will want `man man` to work strictDeps = true; - nativeBuildInputs = [ autoreconfHook groff makeWrapper pkg-config zstd ]; - buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input) - nativeCheckInputs = [ libiconv /* for 'iconv' binary */ ]; - - patches = [ - ./systemwide-man-db-conf.patch + nativeBuildInputs = [ + autoreconfHook + groff + makeWrapper + pkg-config + zstd ]; + buildInputs = [ + libpipeline + db + groff + ]; # (Yes, 'groff' is both native and build input) + nativeCheckInputs = [ + libiconv # for 'iconv' binary + ]; + + patches = [ ./systemwide-man-db-conf.patch ]; postPatch = '' # Remove all mandatory manpaths. Nixpkgs makes no requirements on @@ -48,19 +62,21 @@ stdenv.mkDerivation rec { echo "MANDB_MAP /nix/var/nix/profiles/default/share/man /var/cache/man/nixpkgs" >> src/man_db.conf.in ''; - configureFlags = [ - "--disable-setuid" - "--disable-cache-owner" - "--localstatedir=/var" - "--with-config-file=${placeholder "out"}/etc/man_db.conf" - "--with-systemdtmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" - "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" - "--with-pager=less" - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - "ac_cv_func__set_invalid_parameter_handler=no" - "ac_cv_func_posix_fadvise=no" - "ac_cv_func_mempcpy=no" - ]; + configureFlags = + [ + "--disable-setuid" + "--disable-cache-owner" + "--localstatedir=/var" + "--with-config-file=${placeholder "out"}/etc/man_db.conf" + "--with-systemdtmpfilesdir=${placeholder "out"}/lib/tmpfiles.d" + "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system" + "--with-pager=less" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + "ac_cv_func__set_invalid_parameter_handler=no" + "ac_cv_func_posix_fadvise=no" + "ac_cv_func_mempcpy=no" + ]; preConfigure = '' configureFlagsArray+=("--with-sections=1 n l 8 3 0 2 5 4 9 6 7") @@ -72,7 +88,13 @@ stdenv.mkDerivation rec { # make sure that we don't wrap symlinks (since that changes argv[0] to the -wrapped name) find "$out/bin" -type f | while read file; do wrapProgram "$file" \ - --prefix PATH : "${lib.makeBinPath [ groff gzip zstd ]}" + --prefix PATH : "${ + lib.makeBinPath [ + groff + gzip + zstd + ] + }" done ''; @@ -82,7 +104,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */; + doCheck = + !stdenv.hostPlatform.isMusl # iconv binary + ; # passthru.tests = { # nixos = nixosTests.man; diff --git a/pkgs/by-name/ma/man-db/packages.nix b/pkgs/by-name/ma/man-db/packages.nix index 70423b2..a13d29c 100644 --- a/pkgs/by-name/ma/man-db/packages.nix +++ b/pkgs/by-name/ma/man-db/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { man = man-db; man-db = callPackage ./. { }; } diff --git a/pkgs/by-name/ma/maturin/default.nix b/pkgs/by-name/ma/maturin/default.nix index f7c213c..d82a16f 100644 --- a/pkgs/by-name/ma/maturin/default.nix +++ b/pkgs/by-name/ma/maturin/default.nix @@ -1,10 +1,11 @@ -{ callPackage -, lib -, stdenv -, fetchFromGitHub -, rustPlatform -, libiconv -, Security +{ + callPackage, + lib, + stdenv, + fetchFromGitHub, + rustPlatform, + libiconv, + Security, }: rustPlatform.buildRustPackage rec { @@ -20,12 +21,15 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-hPyPMQm/Oege0PPjYIrd1fEDOGqoQ1ffS2l6o8je4t4="; - buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ]; + buildInputs = lib.optionals stdenv.isDarwin [ + Security + libiconv + ]; # Requires network access, fails in sandbox. doCheck = false; - passthru.tests.pyo3 = callPackage ./pyo3-test {}; + passthru.tests.pyo3 = callPackage ./pyo3-test { }; meta = with lib; { description = "Build and publish Rust crates Python packages"; @@ -40,7 +44,10 @@ rustPlatform.buildRustPackage rec { ''; homepage = "https://github.com/PyO3/maturin"; changelog = "https://github.com/PyO3/maturin/blob/v${version}/Changelog.md"; - license = with licenses; [ asl20 /* or */ mit ]; + license = with licenses; [ + asl20 # or + mit + ]; maintainers = [ ]; }; } diff --git a/pkgs/by-name/ma/maturin/packages.nix b/pkgs/by-name/ma/maturin/packages.nix index 9a1d75b..a408d5c 100644 --- a/pkgs/by-name/ma/maturin/packages.nix +++ b/pkgs/by-name/ma/maturin/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - maturin = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + maturin = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/ma/maturin/pyo3-test/default.nix b/pkgs/by-name/ma/maturin/pyo3-test/default.nix index 7f79c85..140d715 100644 --- a/pkgs/by-name/ma/maturin/pyo3-test/default.nix +++ b/pkgs/by-name/ma/maturin/pyo3-test/default.nix @@ -1,6 +1,4 @@ -{ python3 -, rustPlatform -}: +{ python3, rustPlatform }: python3.pkgs.callPackage ./generic.nix { buildAndTestSubdir = "examples/word-count"; diff --git a/pkgs/by-name/ma/maturin/pyo3-test/generic.nix b/pkgs/by-name/ma/maturin/pyo3-test/generic.nix index 7bc7e8d..f32d616 100644 --- a/pkgs/by-name/ma/maturin/pyo3-test/generic.nix +++ b/pkgs/by-name/ma/maturin/pyo3-test/generic.nix @@ -1,16 +1,17 @@ # Derivation prototype, used by maturin and setuptools-rust # passthrough tests. -{ lib -, fetchFromGitHub -, python -, rustPlatform +{ + lib, + fetchFromGitHub, + python, + rustPlatform, -, nativeBuildInputs + nativeBuildInputs, -, buildAndTestSubdir ? null -, format ? "pyproject" -, preConfigure ? "" + buildAndTestSubdir ? null, + format ? "pyproject", + preConfigure ? "", }: python.pkgs.buildPythonPackage rec { @@ -24,15 +25,18 @@ python.pkgs.buildPythonPackage rec { hash = "sha256-NOMrrfo8WjlPhtGxWUOPJS/UDDdbLQRCXR++Zd6JmIA="; }; - cargoDeps = rustPlatform.importCargoLock { - lockFile = ./Cargo.lock; - }; + cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; }; postPatch = '' ln -s ${./Cargo.lock} Cargo.lock ''; - inherit buildAndTestSubdir format nativeBuildInputs preConfigure; + inherit + buildAndTestSubdir + format + nativeBuildInputs + preConfigure + ; pythonImportsCheck = [ "word_count" ]; diff --git a/pkgs/by-name/mc/mcpp/default.nix b/pkgs/by-name/mc/mcpp/default.nix index 9db55e2..4e5fabb 100644 --- a/pkgs/by-name/mc/mcpp/default.nix +++ b/pkgs/by-name/mc/mcpp/default.nix @@ -1,6 +1,7 @@ -{ lib -, stdenv -, fetchFromGitHub +{ + lib, + stdenv, + fetchFromGitHub, }: stdenv.mkDerivation (finalAttrs: { @@ -11,12 +12,10 @@ stdenv.mkDerivation (finalAttrs: { owner = "museoa"; repo = "mcpp"; rev = finalAttrs.version; - hash= "sha256-T4feegblOeG+NU+c+PAobf8HT8KDSfcINkRAa1hNpkY="; + hash = "sha256-T4feegblOeG+NU+c+PAobf8HT8KDSfcINkRAa1hNpkY="; }; - patches = [ - ./readlink.patch - ]; + patches = [ ./readlink.patch ]; configureFlags = [ "--enable-mcpplib" ]; diff --git a/pkgs/by-name/md/mdbook-linkcheck/default.nix b/pkgs/by-name/md/mdbook-linkcheck/default.nix index b8d19d0..5b6a3ed 100644 --- a/pkgs/by-name/md/mdbook-linkcheck/default.nix +++ b/pkgs/by-name/md/mdbook-linkcheck/default.nix @@ -1,5 +1,14 @@ -{ lib, stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, Security -, testers, mdbook-linkcheck }: +{ + lib, + stdenv, + fetchFromGitHub, + rustPlatform, + pkg-config, + openssl, + Security, + testers, + mdbook-linkcheck, +}: rustPlatform.buildRustPackage rec { pname = "mdbook-linkcheck"; @@ -29,6 +38,9 @@ rustPlatform.buildRustPackage rec { mainProgram = "mdbook-linkcheck"; homepage = "https://github.com/Michael-F-Bryan/mdbook-linkcheck"; license = licenses.mit; - maintainers = with maintainers; [ zhaofengli matthiasbeyer ]; + maintainers = with maintainers; [ + zhaofengli + matthiasbeyer + ]; }; } diff --git a/pkgs/by-name/md/mdbook-linkcheck/packages.nix b/pkgs/by-name/md/mdbook-linkcheck/packages.nix index 6a43971..55f5015 100644 --- a/pkgs/by-name/md/mdbook-linkcheck/packages.nix +++ b/pkgs/by-name/md/mdbook-linkcheck/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - mdbook-linkcheck = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + mdbook-linkcheck = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/md/mdbook/default.nix b/pkgs/by-name/md/mdbook/default.nix index 4939cfc..dc725ee 100644 --- a/pkgs/by-name/md/mdbook/default.nix +++ b/pkgs/by-name/md/mdbook/default.nix @@ -1,4 +1,12 @@ -{ lib, stdenv, fetchFromGitHub, nix, rustPlatform, CoreServices, installShellFiles }: +{ + lib, + stdenv, + fetchFromGitHub, + nix, + rustPlatform, + CoreServices, + installShellFiles, +}: rustPlatform.buildRustPackage rec { pname = "mdbook"; @@ -36,6 +44,10 @@ rustPlatform.buildRustPackage rec { homepage = "https://github.com/rust-lang/mdBook"; changelog = "https://github.com/rust-lang/mdBook/blob/v${version}/CHANGELOG.md"; license = [ licenses.mpl20 ]; - maintainers = with maintainers; [ havvy Frostman matthiasbeyer ]; + maintainers = with maintainers; [ + havvy + Frostman + matthiasbeyer + ]; }; } diff --git a/pkgs/by-name/md/mdbook/packages.nix b/pkgs/by-name/md/mdbook/packages.nix index 8955cac..79ca624 100644 --- a/pkgs/by-name/md/mdbook/packages.nix +++ b/pkgs/by-name/md/mdbook/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - mdbook = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) CoreServices; - }; +with pkgs; { + mdbook = callPackage ./. { inherit (darwin.apple_sdk.frameworks) CoreServices; }; } diff --git a/pkgs/by-name/me/memstream/default.nix b/pkgs/by-name/me/memstream/default.nix index 90505a5..37447d5 100644 --- a/pkgs/by-name/me/memstream/default.nix +++ b/pkgs/by-name/me/memstream/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "memstream"; diff --git a/pkgs/by-name/me/memstream/packages.nix b/pkgs/by-name/me/memstream/packages.nix index f238576..dbe703b 100644 --- a/pkgs/by-name/me/memstream/packages.nix +++ b/pkgs/by-name/me/memstream/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { memstream = callPackage ./. { }; memstreamHook = makeSetupHook { name = "memstream-hook"; diff --git a/pkgs/by-name/me/mercurial/default.nix b/pkgs/by-name/me/mercurial/default.nix index a5a5b2b..cbd081d 100644 --- a/pkgs/by-name/me/mercurial/default.nix +++ b/pkgs/by-name/me/mercurial/default.nix @@ -1,13 +1,25 @@ -{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles -, re2Support ? true -# depends on rust-cpython which won't support python312 -# https://github.com/dgrunwald/rust-cpython/commit/e815555629e557be084813045ca1ddebc2f76ef9 -, rustSupport ? (stdenv.hostPlatform.isLinux && python3Packages.pythonOlder "3.12"), cargo, rustPlatform, rustc -, fullBuild ? false -, gitSupport ? fullBuild -, guiSupport ? fullBuild, tk -, highlightSupport ? fullBuild -, ApplicationServices +{ + lib, + stdenv, + fetchurl, + fetchpatch, + python3Packages, + makeWrapper, + gettext, + installShellFiles, + re2Support ? true, + # depends on rust-cpython which won't support python312 + # https://github.com/dgrunwald/rust-cpython/commit/e815555629e557be084813045ca1ddebc2f76ef9 + rustSupport ? (stdenv.hostPlatform.isLinux && python3Packages.pythonOlder "3.12"), + cargo, + rustPlatform, + rustc, + fullBuild ? false, + gitSupport ? fullBuild, + guiSupport ? fullBuild, + tk, + highlightSupport ? fullBuild, + ApplicationServices, # for passthru.tests # , runCommand # , unzip @@ -19,7 +31,13 @@ }: let - inherit (python3Packages) docutils python fb-re2 pygit2 pygments; + inherit (python3Packages) + docutils + python + fb-re2 + pygit2 + pygments + ; self = python3Packages.buildPythonApplication rec { pname = "mercurial${lib.optionalString fullBuild "-full"}"; @@ -32,57 +50,70 @@ let format = "other"; - passthru = { inherit python; }; # pass it so that the same version can be used in hg2git + passthru = { + inherit python; + }; # pass it so that the same version can be used in hg2git - cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball { - inherit src; - name = "mercurial-${version}"; - sha256 = "sha256-G5tzwoIGOgpVI35rYXDeelnBgTbAiq7BDcXCHQzqSrs="; - sourceRoot = "mercurial-${version}/rust"; - } else null; + cargoDeps = + if rustSupport then + rustPlatform.fetchCargoTarball { + inherit src; + name = "mercurial-${version}"; + sha256 = "sha256-G5tzwoIGOgpVI35rYXDeelnBgTbAiq7BDcXCHQzqSrs="; + sourceRoot = "mercurial-${version}/rust"; + } + else + null; cargoRoot = if rustSupport then "rust" else null; - propagatedBuildInputs = lib.optional re2Support fb-re2 + propagatedBuildInputs = + lib.optional re2Support fb-re2 ++ lib.optional gitSupport pygit2 ++ lib.optional highlightSupport pygments; - nativeBuildInputs = [ makeWrapper gettext installShellFiles python3Packages.setuptools ] + nativeBuildInputs = + [ + makeWrapper + gettext + installShellFiles + python3Packages.setuptools + ] ++ lib.optionals rustSupport [ - rustPlatform.cargoSetupHook - cargo - rustc - ]; - buildInputs = [ docutils ] - ++ lib.optionals stdenv.isDarwin [ ApplicationServices ]; + rustPlatform.cargoSetupHook + cargo + rustc + ]; + buildInputs = [ docutils ] ++ lib.optionals stdenv.isDarwin [ ApplicationServices ]; - makeFlags = [ "PREFIX=$(out)" ] - ++ lib.optional rustSupport "PURE=--rust"; + makeFlags = [ "PREFIX=$(out)" ] ++ lib.optional rustSupport "PURE=--rust"; - postInstall = (lib.optionalString guiSupport '' - mkdir -p $out/etc/mercurial - cp contrib/hgk $out/bin - cat >> $out/etc/mercurial/hgrc << EOF - [extensions] - hgk=$out/${python.sitePackages}/hgext/hgk.py - EOF - # setting HG so that hgk can be run itself as well (not only hg view) - WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} - --set HG $out/bin/hg - --prefix PATH : ${tk}/bin " - '') + '' - for i in $(cd $out/bin && ls); do - wrapProgram $out/bin/$i \ - $WRAP_TK - done + postInstall = + (lib.optionalString guiSupport '' + mkdir -p $out/etc/mercurial + cp contrib/hgk $out/bin + cat >> $out/etc/mercurial/hgrc << EOF + [extensions] + hgk=$out/${python.sitePackages}/hgext/hgk.py + EOF + # setting HG so that hgk can be run itself as well (not only hg view) + WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix} + --set HG $out/bin/hg + --prefix PATH : ${tk}/bin " + '') + + '' + for i in $(cd $out/bin && ls); do + wrapProgram $out/bin/$i \ + $WRAP_TK + done - # copy hgweb.cgi to allow use in apache - mkdir -p $out/share/cgi-bin - cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin - chmod u+x $out/share/cgi-bin/hgweb.cgi + # copy hgweb.cgi to allow use in apache + mkdir -p $out/share/cgi-bin + cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin + chmod u+x $out/share/cgi-bin/hgweb.cgi - installShellCompletion --cmd hg \ - --bash contrib/bash_completion \ - --zsh contrib/zsh_completion - ''; + installShellCompletion --cmd hg \ + --bash contrib/bash_completion \ + --zsh contrib/zsh_completion + ''; # passthru.tests = { # mercurial-tests = makeTests { flags = "--with-hg=$MERCURIAL_BASE/bin/hg"; }; @@ -94,7 +125,12 @@ let downloadPage = "https://www.mercurial-scm.org/release/"; changelog = "https://wiki.mercurial-scm.org/Release${versions.majorMinor version}"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ]; + maintainers = with maintainers; [ + eelco + lukegb + pacien + techknowlogick + ]; platforms = platforms.unix; mainProgram = "hg"; }; @@ -158,31 +194,36 @@ let # test-patchbomb-tls.t # EOF - # export HGTEST_REAL_HG="${mercurial}/bin/hg" - # # include tests for native components - # export HGMODULEPOLICY="rust+c" - # # extended timeout necessary for tests to pass on the busy CI workers - # export HGTESTFLAGS="--blacklist blacklists/nix --timeout 1800 -j$NIX_BUILD_CORES ${flags}" - # make check - # touch $out - # ''; in - self.overridePythonAttrs (origAttrs: { - passthru = origAttrs.passthru // rec { - # withExtensions takes a function which takes the python packages set and - # returns a list of extensions to install. - # - # for instance: mercurial.withExtension (pm: [ pm.hg-evolve ]) - withExtensions = f: let +# export HGTEST_REAL_HG="${mercurial}/bin/hg" +# # include tests for native components +# export HGMODULEPOLICY="rust+c" +# # extended timeout necessary for tests to pass on the busy CI workers +# export HGTESTFLAGS="--blacklist blacklists/nix --timeout 1800 -j$NIX_BUILD_CORES ${flags}" +# make check +# touch $out +# ''; +self.overridePythonAttrs (origAttrs: { + passthru = origAttrs.passthru // rec { + # withExtensions takes a function which takes the python packages set and + # returns a list of extensions to install. + # + # for instance: mercurial.withExtension (pm: [ pm.hg-evolve ]) + withExtensions = + f: + let python = self.python; - mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: { - meta = oldAttrs.meta // { - priority = 50; - }; - }); + mercurialHighPrio = + ps: + (ps.toPythonModule self).overrideAttrs (oldAttrs: { + meta = oldAttrs.meta // { + priority = 50; + }; + }); plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ]; env = python.withPackages (ps: plugins); - in stdenv.mkDerivation { + in + stdenv.mkDerivation { pname = "${self.pname}-with-extensions"; inherit (self) src version meta; @@ -221,8 +262,8 @@ in ''; }; - # tests = origAttrs.passthru.tests // { - # withExtensions = withExtensions (pm: [ pm.hg-evolve ]); - # }; - }; - }) + # tests = origAttrs.passthru.tests // { + # withExtensions = withExtensions (pm: [ pm.hg-evolve ]); + # }; + }; +}) diff --git a/pkgs/by-name/me/mercurial/packages.nix b/pkgs/by-name/me/mercurial/packages.nix index a9f055c..ac2cb71 100644 --- a/pkgs/by-name/me/mercurial/packages.nix +++ b/pkgs/by-name/me/mercurial/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - mercurial = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) ApplicationServices; - }; +with pkgs; { + mercurial = callPackage ./. { inherit (darwin.apple_sdk.frameworks) ApplicationServices; }; } diff --git a/pkgs/by-name/me/mesa/default.nix b/pkgs/by-name/me/mesa/default.nix index a544e1b..13a84b3 100644 --- a/pkgs/by-name/me/mesa/default.nix +++ b/pkgs/by-name/me/mesa/default.nix @@ -1,80 +1,120 @@ -{ stdenv, lib, fetchurl, fetchpatch, fetchCrate, buildPackages -, meson, pkg-config, ninja -, intltool, bison, flex, file, python3Packages, wayland-scanner -, expat, libdrm, xorg, wayland, wayland-protocols, openssl -, llvmPackages, libffi, libomxil-bellagio, libva-minimal -, elfutils, libvdpau -, libglvnd, libunwind, lm_sensors -, vulkan-loader, glslang -, galliumDrivers ? - if stdenv.isLinux then - [ - "d3d12" # WSL emulated GPU (aka Dozen) - "kmsro" # special "render only" driver for GPUs without a display controller - "nouveau" # Nvidia - "radeonsi" # new AMD (GCN+) - "r300" # very old AMD - "r600" # less old AMD - "swrast" # software renderer (aka LLVMPipe) - "svga" # VMWare virtualized GPU - "virgl" # QEMU virtualized GPU (aka VirGL) - "zink" # generic OpenGL over Vulkan, experimental - ] ++ lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [ - "etnaviv" # Vivante GPU designs (mostly NXP/Marvell SoCs) - "freedreno" # Qualcomm Adreno (all Qualcomm SoCs) - "lima" # ARM Mali 4xx - "panfrost" # ARM Mali Midgard and up (T/G series) - "vc4" # Broadcom VC4 (Raspberry Pi 0-3) - ] ++ lib.optionals stdenv.isAarch64 [ - "tegra" # Nvidia Tegra SoCs - "v3d" # Broadcom VC5 (Raspberry Pi 4) - ] ++ lib.optionals stdenv.hostPlatform.isx86 [ - "iris" # new Intel, could work on non-x86 with PCIe cards, but doesn't build as of 22.3.4 - "crocus" # Intel legacy, x86 only - "i915" # Intel extra legacy, x86 only - ] - else [ "auto" ] -, vulkanDrivers ? - if stdenv.isLinux then - [ - "amd" # AMD (aka RADV) - "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen) - "nouveau-experimental" # Nouveau (aka NVK) - "swrast" # software renderer (aka Lavapipe) - ] - ++ lib.optionals (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") [ - # QEMU virtualized GPU (aka VirGL) - # Requires ATOMIC_INT_LOCK_FREE == 2. - "virtio" - ] - ++ lib.optionals stdenv.isAarch64 [ - "broadcom" # Broadcom VC5 (Raspberry Pi 4, aka V3D) - "freedreno" # Qualcomm Adreno (all Qualcomm SoCs) - "imagination-experimental" # PowerVR Rogue (currently N/A) - "panfrost" # ARM Mali Midgard and up (T/G series) - ] - ++ lib.optionals stdenv.hostPlatform.isx86 [ - "intel" # Intel (aka ANV), could work on non-x86 with PCIe cards, but doesn't build - "intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code) - ] - else [ "auto" ] -, eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ] -, vulkanLayers ? lib.optionals (!stdenv.isDarwin) [ "device-select" "overlay" "intel-nullhw" ] # No Vulkan support on Darwin -, OpenGL, Xplugin -, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light && !valgrind-light.meta.broken, valgrind-light -, withLibunwind ? lib.meta.availableOn stdenv.hostPlatform libunwind -, enableGalliumNine ? stdenv.isLinux -, enableOSMesa ? stdenv.isLinux -, enableOpenCL ? stdenv.isLinux && stdenv.isx86_64 -, enablePatentEncumberedCodecs ? true -, jdupes -, rustPlatform -, rust-bindgen -, rustc -, spirv-llvm-translator -, zstd -, directx-headers -, udev +{ + stdenv, + lib, + fetchurl, + fetchpatch, + fetchCrate, + buildPackages, + meson, + pkg-config, + ninja, + intltool, + bison, + flex, + file, + python3Packages, + wayland-scanner, + expat, + libdrm, + xorg, + wayland, + wayland-protocols, + openssl, + llvmPackages, + libffi, + libomxil-bellagio, + libva-minimal, + elfutils, + libvdpau, + libglvnd, + libunwind, + lm_sensors, + vulkan-loader, + glslang, + galliumDrivers ? + if stdenv.isLinux then + [ + "d3d12" # WSL emulated GPU (aka Dozen) + "kmsro" # special "render only" driver for GPUs without a display controller + "nouveau" # Nvidia + "radeonsi" # new AMD (GCN+) + "r300" # very old AMD + "r600" # less old AMD + "swrast" # software renderer (aka LLVMPipe) + "svga" # VMWare virtualized GPU + "virgl" # QEMU virtualized GPU (aka VirGL) + "zink" # generic OpenGL over Vulkan, experimental + ] + ++ lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [ + "etnaviv" # Vivante GPU designs (mostly NXP/Marvell SoCs) + "freedreno" # Qualcomm Adreno (all Qualcomm SoCs) + "lima" # ARM Mali 4xx + "panfrost" # ARM Mali Midgard and up (T/G series) + "vc4" # Broadcom VC4 (Raspberry Pi 0-3) + ] + ++ lib.optionals stdenv.isAarch64 [ + "tegra" # Nvidia Tegra SoCs + "v3d" # Broadcom VC5 (Raspberry Pi 4) + ] + ++ lib.optionals stdenv.hostPlatform.isx86 [ + "iris" # new Intel, could work on non-x86 with PCIe cards, but doesn't build as of 22.3.4 + "crocus" # Intel legacy, x86 only + "i915" # Intel extra legacy, x86 only + ] + else + [ "auto" ], + vulkanDrivers ? + if stdenv.isLinux then + [ + "amd" # AMD (aka RADV) + "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen) + "nouveau-experimental" # Nouveau (aka NVK) + "swrast" # software renderer (aka Lavapipe) + ] + ++ + lib.optionals + (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") + [ + # QEMU virtualized GPU (aka VirGL) + # Requires ATOMIC_INT_LOCK_FREE == 2. + "virtio" + ] + ++ lib.optionals stdenv.isAarch64 [ + "broadcom" # Broadcom VC5 (Raspberry Pi 4, aka V3D) + "freedreno" # Qualcomm Adreno (all Qualcomm SoCs) + "imagination-experimental" # PowerVR Rogue (currently N/A) + "panfrost" # ARM Mali Midgard and up (T/G series) + ] + ++ lib.optionals stdenv.hostPlatform.isx86 [ + "intel" # Intel (aka ANV), could work on non-x86 with PCIe cards, but doesn't build + "intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code) + ] + else + [ "auto" ], + eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ], + vulkanLayers ? lib.optionals (!stdenv.isDarwin) [ + "device-select" + "overlay" + "intel-nullhw" + ], # No Vulkan support on Darwin + OpenGL, + Xplugin, + withValgrind ? + lib.meta.availableOn stdenv.hostPlatform valgrind-light && !valgrind-light.meta.broken, + valgrind-light, + withLibunwind ? lib.meta.availableOn stdenv.hostPlatform libunwind, + enableGalliumNine ? stdenv.isLinux, + enableOSMesa ? stdenv.isLinux, + enableOpenCL ? stdenv.isLinux && stdenv.isx86_64, + enablePatentEncumberedCodecs ? true, + jdupes, + rustPlatform, + rust-bindgen, + rustc, + spirv-llvm-translator, + zstd, + directx-headers, + udev, }: # When updating this package, please verify at least these build (assuming x86_64-linux): @@ -106,7 +146,7 @@ let hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY="; } { - pname = "syn"; + pname = "syn"; version = "2.0.39"; hash = "sha256-Mjen2L/omhVbhU/+Ao65mogs3BP3fY+Bodab3uU63EI="; } @@ -124,294 +164,364 @@ let copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps); -self = stdenv.mkDerivation { - pname = "mesa"; - inherit version; + self = stdenv.mkDerivation { + pname = "mesa"; + inherit version; - src = fetchurl { - urls = [ - "https://archive.mesa3d.org/mesa-${version}.tar.xz" - "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz" - "ftp://ftp.freedesktop.org/pub/mesa/mesa-${version}.tar.xz" - "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" - "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" - ]; - inherit hash; - }; + src = fetchurl { + urls = [ + "https://archive.mesa3d.org/mesa-${version}.tar.xz" + "https://mesa.freedesktop.org/archive/mesa-${version}.tar.xz" + "ftp://ftp.freedesktop.org/pub/mesa/mesa-${version}.tar.xz" + "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" + "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz" + ]; + inherit hash; + }; - patches = [ - ./opencl.patch - ]; + patches = [ ./opencl.patch ]; - postPatch = '' - patchShebangs . + postPatch = '' + patchShebangs . - # The drirc.d directory cannot be installed to $drivers as that would cause a cyclic dependency: - substituteInPlace src/util/xmlconfig.c --replace \ - 'DATADIR "/drirc.d"' '"${placeholder "out"}/share/drirc.d"' - substituteInPlace src/util/meson.build --replace \ - "get_option('datadir')" "'${placeholder "out"}/share'" - substituteInPlace src/amd/vulkan/meson.build --replace \ - "get_option('datadir')" "'${placeholder "out"}/share'" + # The drirc.d directory cannot be installed to $drivers as that would cause a cyclic dependency: + substituteInPlace src/util/xmlconfig.c --replace \ + 'DATADIR "/drirc.d"' '"${placeholder "out"}/share/drirc.d"' + substituteInPlace src/util/meson.build --replace \ + "get_option('datadir')" "'${placeholder "out"}/share'" + substituteInPlace src/amd/vulkan/meson.build --replace \ + "get_option('datadir')" "'${placeholder "out"}/share'" - ${copyRustDeps} - ''; + ${copyRustDeps} + ''; - outputs = [ "out" "dev" "drivers" ] - ++ lib.optional enableOSMesa "osmesa" - ++ lib.optional stdenv.isLinux "driversdev" - ++ lib.optional enableOpenCL "opencl" - # the Dozen drivers depend on libspirv2dxil, but link it statically, and - # libspirv2dxil itself is pretty chonky, so relocate it to its own output - # in case anything wants to use it at some point - ++ lib.optional haveDozen "spirv2dxil"; + outputs = + [ + "out" + "dev" + "drivers" + ] + ++ lib.optional enableOSMesa "osmesa" + ++ lib.optional stdenv.isLinux "driversdev" + ++ lib.optional enableOpenCL "opencl" + # the Dozen drivers depend on libspirv2dxil, but link it statically, and + # libspirv2dxil itself is pretty chonky, so relocate it to its own output + # in case anything wants to use it at some point + ++ lib.optional haveDozen "spirv2dxil"; - # Keep build-ids so drivers can use them for caching, etc. - # Also some drivers segfault without this. - separateDebugInfo = true; + # Keep build-ids so drivers can use them for caching, etc. + # Also some drivers segfault without this. + separateDebugInfo = true; - # Needed to discover llvm-config for cross - preConfigure = '' - PATH=${llvmPackages.libllvm.dev}/bin:$PATH - ''; + # Needed to discover llvm-config for cross + preConfigure = '' + PATH=${llvmPackages.libllvm.dev}/bin:$PATH + ''; - mesonFlags = [ - "--sysconfdir=/etc" - "--datadir=${placeholder "drivers"}/share" # Vendor files + mesonFlags = + [ + "--sysconfdir=/etc" + "--datadir=${placeholder "drivers"}/share" # Vendor files - # Don't build in debug mode - # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327 - "-Db_ndebug=true" + # Don't build in debug mode + # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327 + "-Db_ndebug=true" - "-Ddri-search-path=${libglvnd.driverLink}/lib/dri" + "-Ddri-search-path=${libglvnd.driverLink}/lib/dri" - "-Dplatforms=${lib.concatStringsSep "," eglPlatforms}" - "-Dgallium-drivers=${lib.concatStringsSep "," galliumDrivers}" - "-Dvulkan-drivers=${lib.concatStringsSep "," vulkanDrivers}" + "-Dplatforms=${lib.concatStringsSep "," eglPlatforms}" + "-Dgallium-drivers=${lib.concatStringsSep "," galliumDrivers}" + "-Dvulkan-drivers=${lib.concatStringsSep "," vulkanDrivers}" - "-Ddri-drivers-path=${placeholder "drivers"}/lib/dri" - "-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau" - "-Domx-libs-path=${placeholder "drivers"}/lib/bellagio" - "-Dva-libs-path=${placeholder "drivers"}/lib/dri" - "-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d" + "-Ddri-drivers-path=${placeholder "drivers"}/lib/dri" + "-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau" + "-Domx-libs-path=${placeholder "drivers"}/lib/bellagio" + "-Dva-libs-path=${placeholder "drivers"}/lib/dri" + "-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d" - "-Dgallium-nine=${lib.boolToString enableGalliumNine}" # Direct3D in Wine - "-Dosmesa=${lib.boolToString enableOSMesa}" # used by wine - "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12) + "-Dgallium-nine=${lib.boolToString enableGalliumNine}" # Direct3D in Wine + "-Dosmesa=${lib.boolToString enableOSMesa}" # used by wine + "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12) - # To enable non-mesa gbm backends to be found (e.g. Nvidia) - "-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm" + # To enable non-mesa gbm backends to be found (e.g. Nvidia) + "-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm" - # meson auto_features enables these features, but we do not want them - "-Dandroid-libbacktrace=disabled" + # meson auto_features enables these features, but we do not want them + "-Dandroid-libbacktrace=disabled" - ] ++ lib.optionals stdenv.isLinux [ - "-Dglvnd=true" + ] + ++ lib.optionals stdenv.isLinux [ + "-Dglvnd=true" - # Enable RT for Intel hardware - # https://gitlab.freedesktop.org/mesa/mesa/-/issues/9080 - (lib.mesonEnable "intel-clc" (stdenv.buildPlatform == stdenv.hostPlatform)) - ] ++ lib.optionals stdenv.isDarwin [ - # Disable features that are explicitly unsupported on the platform - "-Dgbm=disabled" - "-Dxlib-lease=disabled" - "-Degl=disabled" - "-Dgallium-vdpau=disabled" - "-Dgallium-va=disabled" - "-Dgallium-xa=disabled" - "-Dlmsensors=disabled" - ] ++ lib.optionals enableOpenCL [ - # Clover, old OpenCL frontend - "-Dgallium-opencl=icd" - "-Dopencl-spirv=true" + # Enable RT for Intel hardware + # https://gitlab.freedesktop.org/mesa/mesa/-/issues/9080 + (lib.mesonEnable "intel-clc" (stdenv.buildPlatform == stdenv.hostPlatform)) + ] + ++ lib.optionals stdenv.isDarwin [ + # Disable features that are explicitly unsupported on the platform + "-Dgbm=disabled" + "-Dxlib-lease=disabled" + "-Degl=disabled" + "-Dgallium-vdpau=disabled" + "-Dgallium-va=disabled" + "-Dgallium-xa=disabled" + "-Dlmsensors=disabled" + ] + ++ lib.optionals enableOpenCL [ + # Clover, old OpenCL frontend + "-Dgallium-opencl=icd" + "-Dopencl-spirv=true" - # Rusticl, new OpenCL frontend - "-Dgallium-rusticl=true" - "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib" - ] ++ lib.optionals (!withValgrind) [ - "-Dvalgrind=disabled" - ] ++ lib.optionals (!withLibunwind) [ - "-Dlibunwind=disabled" - ] ++ lib.optional enablePatentEncumberedCodecs - "-Dvideo-codecs=all" - ++ lib.optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}"; + # Rusticl, new OpenCL frontend + "-Dgallium-rusticl=true" + "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib" + ] + ++ lib.optionals (!withValgrind) [ "-Dvalgrind=disabled" ] + ++ lib.optionals (!withLibunwind) [ "-Dlibunwind=disabled" ] + ++ lib.optional enablePatentEncumberedCodecs "-Dvideo-codecs=all" + ++ lib.optional ( + vulkanLayers != [ ] + ) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}"; - strictDeps = true; + strictDeps = true; - buildInputs = with xorg; [ - expat glslang llvmPackages.libllvm libglvnd xorgproto - libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr - libffi libvdpau libXvMC - libpthreadstubs openssl - zstd - ] ++ lib.optionals withLibunwind [ - libunwind - ] ++ [ - python3Packages.python # for shebang - ] ++ lib.optionals haveWayland [ wayland wayland-protocols ] - ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal udev lm_sensors ] - ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ] - ++ lib.optionals enableOpenCL [ llvmPackages.libclc llvmPackages.clang llvmPackages.clang-unwrapped spirv-llvm-translator ] - ++ lib.optional withValgrind valgrind-light - ++ lib.optional haveZink vulkan-loader - ++ lib.optional haveDozen directx-headers; + buildInputs = + with xorg; + [ + expat + glslang + llvmPackages.libllvm + libglvnd + xorgproto + libX11 + libXext + libxcb + libXt + libXfixes + libxshmfence + libXrandr + libffi + libvdpau + libXvMC + libpthreadstubs + openssl + zstd + ] + ++ lib.optionals withLibunwind [ libunwind ] + ++ [ + python3Packages.python # for shebang + ] + ++ lib.optionals haveWayland [ + wayland + wayland-protocols + ] + ++ lib.optionals stdenv.isLinux [ + libomxil-bellagio + libva-minimal + udev + lm_sensors + ] + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ] + ++ lib.optionals enableOpenCL [ + llvmPackages.libclc + llvmPackages.clang + llvmPackages.clang-unwrapped + spirv-llvm-translator + ] + ++ lib.optional withValgrind valgrind-light + ++ lib.optional haveZink vulkan-loader + ++ lib.optional haveDozen directx-headers; - depsBuildBuild = [ pkg-config ] - # Adding this unconditionally makes x86_64-darwin pick up an older toolchain, as - # we explicitly call Mesa with 11.0 stdenv, but buildPackages is still 10.something, - # and Mesa can't build with that. - # FIXME: figure this out, or figure out how to get rid of Mesa on Darwin, - # whichever is easier. - ++ lib.optional (!stdenv.isDarwin) buildPackages.stdenv.cc; + depsBuildBuild = + [ pkg-config ] + # Adding this unconditionally makes x86_64-darwin pick up an older toolchain, as + # we explicitly call Mesa with 11.0 stdenv, but buildPackages is still 10.something, + # and Mesa can't build with that. + # FIXME: figure this out, or figure out how to get rid of Mesa on Darwin, + # whichever is easier. + ++ lib.optional (!stdenv.isDarwin) buildPackages.stdenv.cc; - nativeBuildInputs = [ - meson pkg-config ninja - intltool bison flex file - python3Packages.python python3Packages.mako python3Packages.ply - jdupes glslang - rustc rust-bindgen rustPlatform.bindgenHook - ] ++ lib.optional haveWayland wayland-scanner; + nativeBuildInputs = [ + meson + pkg-config + ninja + intltool + bison + flex + file + python3Packages.python + python3Packages.mako + python3Packages.ply + jdupes + glslang + rustc + rust-bindgen + rustPlatform.bindgenHook + ] ++ lib.optional haveWayland wayland-scanner; - propagatedBuildInputs = with xorg; [ - libXdamage libXxf86vm - ] ++ lib.optional withLibdrm libdrm - ++ lib.optionals stdenv.isDarwin [ OpenGL Xplugin ]; + propagatedBuildInputs = + with xorg; + [ + libXdamage + libXxf86vm + ] + ++ lib.optional withLibdrm libdrm + ++ lib.optionals stdenv.isDarwin [ + OpenGL + Xplugin + ]; - doCheck = false; + doCheck = false; - postInstall = '' - # Some installs don't have any drivers so this directory is never created. - mkdir -p $drivers $osmesa - '' + lib.optionalString stdenv.isLinux '' - mkdir -p $drivers/lib + postInstall = + '' + # Some installs don't have any drivers so this directory is never created. + mkdir -p $drivers $osmesa + '' + + lib.optionalString stdenv.isLinux '' + mkdir -p $drivers/lib - if [ -n "$(shopt -s nullglob; echo "$out/lib/libxatracker"*)" -o -n "$(shopt -s nullglob; echo "$out/lib/libvulkan_"*)" ]; then - # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM - mv -t $drivers/lib \ - $out/lib/libpowervr_rogue* \ - $out/lib/libxatracker* \ - $out/lib/libvulkan_* - fi + if [ -n "$(shopt -s nullglob; echo "$out/lib/libxatracker"*)" -o -n "$(shopt -s nullglob; echo "$out/lib/libvulkan_"*)" ]; then + # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM + mv -t $drivers/lib \ + $out/lib/libpowervr_rogue* \ + $out/lib/libxatracker* \ + $out/lib/libvulkan_* + fi - if [ -n "$(shopt -s nullglob; echo "$out"/lib/lib*_mesa*)" ]; then - # Move other drivers to a separate output - mv -t $drivers/lib $out/lib/lib*_mesa* - fi + if [ -n "$(shopt -s nullglob; echo "$out"/lib/lib*_mesa*)" ]; then + # Move other drivers to a separate output + mv -t $drivers/lib $out/lib/lib*_mesa* + fi - # Update search path used by glvnd - for js in $drivers/share/glvnd/egl_vendor.d/*.json; do - substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_" - done + # Update search path used by glvnd + for js in $drivers/share/glvnd/egl_vendor.d/*.json; do + substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_" + done - # Update search path used by Vulkan (it's pointing to $out but - # drivers are in $drivers) - for js in $drivers/share/vulkan/icd.d/*.json; do - substituteInPlace "$js" --replace "$out" "$drivers" - done - '' + lib.optionalString enableOpenCL '' - # Move OpenCL stuff - mkdir -p $opencl/lib - mv -t "$opencl/lib/" \ - $out/lib/gallium-pipe \ - $out/lib/lib*OpenCL* + # Update search path used by Vulkan (it's pointing to $out but + # drivers are in $drivers) + for js in $drivers/share/vulkan/icd.d/*.json; do + substituteInPlace "$js" --replace "$out" "$drivers" + done + '' + + lib.optionalString enableOpenCL '' + # Move OpenCL stuff + mkdir -p $opencl/lib + mv -t "$opencl/lib/" \ + $out/lib/gallium-pipe \ + $out/lib/lib*OpenCL* - # We construct our own .icd files that contain absolute paths. - mkdir -p $opencl/etc/OpenCL/vendors/ - echo $opencl/lib/libMesaOpenCL.so > $opencl/etc/OpenCL/vendors/mesa.icd - echo $opencl/lib/libRusticlOpenCL.so > $opencl/etc/OpenCL/vendors/rusticl.icd - '' + lib.optionalString enableOSMesa '' - # move libOSMesa to $osmesa, as it's relatively big - mkdir -p $osmesa/lib - mv -t $osmesa/lib/ $out/lib/libOSMesa* - '' + lib.optionalString (vulkanLayers != []) '' - mv -t $drivers/lib $out/lib/libVkLayer* - for js in $drivers/share/vulkan/{im,ex}plicit_layer.d/*.json; do - substituteInPlace "$js" --replace '"libVkLayer_' '"'"$drivers/lib/libVkLayer_" - done - '' + lib.optionalString haveDozen '' - mkdir -p $spirv2dxil/{bin,lib} - mv -t $spirv2dxil/lib $out/lib/libspirv_to_dxil* - mv -t $spirv2dxil/bin $out/bin/spirv2dxil - ''; + # We construct our own .icd files that contain absolute paths. + mkdir -p $opencl/etc/OpenCL/vendors/ + echo $opencl/lib/libMesaOpenCL.so > $opencl/etc/OpenCL/vendors/mesa.icd + echo $opencl/lib/libRusticlOpenCL.so > $opencl/etc/OpenCL/vendors/rusticl.icd + '' + + lib.optionalString enableOSMesa '' + # move libOSMesa to $osmesa, as it's relatively big + mkdir -p $osmesa/lib + mv -t $osmesa/lib/ $out/lib/libOSMesa* + '' + + lib.optionalString (vulkanLayers != [ ]) '' + mv -t $drivers/lib $out/lib/libVkLayer* + for js in $drivers/share/vulkan/{im,ex}plicit_layer.d/*.json; do + substituteInPlace "$js" --replace '"libVkLayer_' '"'"$drivers/lib/libVkLayer_" + done + '' + + lib.optionalString haveDozen '' + mkdir -p $spirv2dxil/{bin,lib} + mv -t $spirv2dxil/lib $out/lib/libspirv_to_dxil* + mv -t $spirv2dxil/bin $out/bin/spirv2dxil + ''; - postFixup = lib.optionalString stdenv.isLinux '' - # set the default search path for DRI drivers; used e.g. by X server - for pc in lib/pkgconfig/{dri,d3d}.pc; do - [ -f "$dev/$pc" ] && substituteInPlace "$dev/$pc" --replace "$drivers" "${libglvnd.driverLink}" - done + postFixup = lib.optionalString stdenv.isLinux '' + # set the default search path for DRI drivers; used e.g. by X server + for pc in lib/pkgconfig/{dri,d3d}.pc; do + [ -f "$dev/$pc" ] && substituteInPlace "$dev/$pc" --replace "$drivers" "${libglvnd.driverLink}" + done - # remove pkgconfig files for GL/EGL; they are provided by libGL. - rm -f $dev/lib/pkgconfig/{gl,egl}.pc + # remove pkgconfig files for GL/EGL; they are provided by libGL. + rm -f $dev/lib/pkgconfig/{gl,egl}.pc - # Move development files for libraries in $drivers to $driversdev - mkdir -p $driversdev/include - mv $dev/include/xa_* $dev/include/d3d* -t $driversdev/include || true - mkdir -p $driversdev/lib/pkgconfig - for pc in lib/pkgconfig/{xatracker,d3d}.pc; do - if [ -f "$dev/$pc" ]; then - substituteInPlace "$dev/$pc" --replace $out $drivers - mv $dev/$pc $driversdev/$pc - fi - done + # Move development files for libraries in $drivers to $driversdev + mkdir -p $driversdev/include + mv $dev/include/xa_* $dev/include/d3d* -t $driversdev/include || true + mkdir -p $driversdev/lib/pkgconfig + for pc in lib/pkgconfig/{xatracker,d3d}.pc; do + if [ -f "$dev/$pc" ]; then + substituteInPlace "$dev/$pc" --replace $out $drivers + mv $dev/$pc $driversdev/$pc + fi + done - # Don't depend on build python - patchShebangs --host --update $out/bin/* + # Don't depend on build python + patchShebangs --host --update $out/bin/* - # NAR doesn't support hard links, so convert them to symlinks to save space. - jdupes --hard-links --link-soft --recurse "$drivers" + # NAR doesn't support hard links, so convert them to symlinks to save space. + jdupes --hard-links --link-soft --recurse "$drivers" - # add RPATH so the drivers can find the moved libgallium and libdricore9 - # moved here to avoid problems with stripping patchelfed files - for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do - if [[ ! -L "$lib" ]]; then - patchelf --set-rpath "$(patchelf --print-rpath $lib):$drivers/lib" "$lib" - fi - done - # add RPATH here so Zink can find libvulkan.so - ${lib.optionalString haveZink '' - patchelf --add-rpath ${vulkan-loader}/lib $drivers/lib/dri/zink_dri.so - ''} - ''; + # add RPATH so the drivers can find the moved libgallium and libdricore9 + # moved here to avoid problems with stripping patchelfed files + for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do + if [[ ! -L "$lib" ]]; then + patchelf --set-rpath "$(patchelf --print-rpath $lib):$drivers/lib" "$lib" + fi + done + # add RPATH here so Zink can find libvulkan.so + ${lib.optionalString haveZink '' + patchelf --add-rpath ${vulkan-loader}/lib $drivers/lib/dri/zink_dri.so + ''} + ''; - env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [ "-fno-common" ] ++ lib.optionals enableOpenCL [ - "-UPIPE_SEARCH_DIR" - "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\"" - ]); + env.NIX_CFLAGS_COMPILE = toString ( + lib.optionals stdenv.isDarwin [ "-fno-common" ] + ++ lib.optionals enableOpenCL [ + "-UPIPE_SEARCH_DIR" + "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\"" + ] + ); - passthru = { - inherit (libglvnd) driverLink; - inherit llvmPackages; + passthru = { + inherit (libglvnd) driverLink; + inherit llvmPackages; - libdrm = if withLibdrm then libdrm else null; + libdrm = if withLibdrm then libdrm else null; - tests = lib.optionalAttrs stdenv.isLinux { - devDoesNotDependOnLLVM = stdenv.mkDerivation { - name = "mesa-dev-does-not-depend-on-llvm"; - buildCommand = '' - echo ${self.dev} >>$out - ''; - disallowedRequisites = [ llvmPackages.llvm self.drivers ]; + tests = lib.optionalAttrs stdenv.isLinux { + devDoesNotDependOnLLVM = stdenv.mkDerivation { + name = "mesa-dev-does-not-depend-on-llvm"; + buildCommand = '' + echo ${self.dev} >>$out + ''; + disallowedRequisites = [ + llvmPackages.llvm + self.drivers + ]; + }; }; }; + + meta = with lib; { + description = "An open source 3D graphics library"; + longDescription = '' + The Mesa project began as an open-source implementation of the OpenGL + specification - a system for rendering interactive 3D graphics. Over the + years the project has grown to implement more graphics APIs, including + OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API, XvMC, and + Vulkan. A variety of device drivers allows the Mesa libraries to be used + in many different environments ranging from software emulation to + complete hardware acceleration for modern GPUs. + ''; + homepage = "https://www.mesa3d.org/"; + changelog = "https://www.mesa3d.org/relnotes/${version}.html"; + license = licenses.mit; # X11 variant, in most files + platforms = platforms.mesaPlatforms; + maintainers = with maintainers; [ + primeos + vcunat + ]; # Help is welcome :) + }; }; - meta = with lib; { - description = "An open source 3D graphics library"; - longDescription = '' - The Mesa project began as an open-source implementation of the OpenGL - specification - a system for rendering interactive 3D graphics. Over the - years the project has grown to implement more graphics APIs, including - OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API, XvMC, and - Vulkan. A variety of device drivers allows the Mesa libraries to be used - in many different environments ranging from software emulation to - complete hardware acceleration for modern GPUs. - ''; - homepage = "https://www.mesa3d.org/"; - changelog = "https://www.mesa3d.org/relnotes/${version}.html"; - license = licenses.mit; # X11 variant, in most files - platforms = platforms.mesaPlatforms; - maintainers = with maintainers; [ primeos vcunat ]; # Help is welcome :) - }; -}; - -in self +in +self diff --git a/pkgs/by-name/me/mesa/packages.nix b/pkgs/by-name/me/mesa/packages.nix index 2f74a9d..ceec83b 100644 --- a/pkgs/by-name/me/mesa/packages.nix +++ b/pkgs/by-name/me/mesa/packages.nix @@ -1,15 +1,15 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Default libGL implementation, should provide headers and # libGL.so/libEGL.so/... to link agains them. Android NDK provides # an OpenGL implementation, we can just use that. - libGL = if stdenv.hostPlatform.useAndroidPrebuilt then stdenv - else callPackage ./stubs.nix { - inherit (darwin.apple_sdk.frameworks) OpenGL; - }; + libGL = + if stdenv.hostPlatform.useAndroidPrebuilt then + stdenv + else + callPackage ./stubs.nix { inherit (darwin.apple_sdk.frameworks) OpenGL; }; # Default libGLU libGLU = mesa_glu; diff --git a/pkgs/by-name/me/mesa/stubs.nix b/pkgs/by-name/me/mesa/stubs.nix index 7738975..90806f4 100644 --- a/pkgs/by-name/me/mesa/stubs.nix +++ b/pkgs/by-name/me/mesa/stubs.nix @@ -1,87 +1,106 @@ -{ stdenv -, libglvnd -, mesa -, OpenGL -, testers +{ + stdenv, + libglvnd, + mesa, + OpenGL, + testers, }: stdenv.mkDerivation (finalAttrs: { pname = "libGL"; inherit (if stdenv.hostPlatform.isDarwin then mesa else libglvnd) version; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; # On macOS, libglvnd is not supported, so we just use what mesa # build. We need to also include OpenGL.framework, and some # extra tricks to go along with. We add mesa’s libGLX to support # the X extensions to OpenGL. - buildCommand = if stdenv.hostPlatform.isDarwin then '' - mkdir -p $out/nix-support $dev - echo ${OpenGL} >> $out/nix-support/propagated-build-inputs - ln -s ${mesa.out}/lib $out/lib + buildCommand = + if stdenv.hostPlatform.isDarwin then + '' + mkdir -p $out/nix-support $dev + echo ${OpenGL} >> $out/nix-support/propagated-build-inputs + ln -s ${mesa.out}/lib $out/lib - mkdir -p $dev/lib/pkgconfig $dev/nix-support - echo "$out" > $dev/nix-support/propagated-build-inputs - ln -s ${mesa.dev}/include $dev/include + mkdir -p $dev/lib/pkgconfig $dev/nix-support + echo "$out" > $dev/nix-support/propagated-build-inputs + ln -s ${mesa.dev}/include $dev/include - cat <$dev/lib/pkgconfig/gl.pc - Name: gl - Description: gl library - Version: ${mesa.version} - Libs: -L${mesa.out}/lib -lGL - Cflags: -I${mesa.dev}/include - EOF + cat <$dev/lib/pkgconfig/gl.pc + Name: gl + Description: gl library + Version: ${mesa.version} + Libs: -L${mesa.out}/lib -lGL + Cflags: -I${mesa.dev}/include + EOF - cat <$dev/lib/pkgconfig/glesv1_cm.pc - Name: glesv1_cm - Description: glesv1_cm library - Version: ${mesa.version} - Libs: -L${mesa.out}/lib -lGLESv1_CM - Cflags: -I${mesa.dev}/include - EOF + cat <$dev/lib/pkgconfig/glesv1_cm.pc + Name: glesv1_cm + Description: glesv1_cm library + Version: ${mesa.version} + Libs: -L${mesa.out}/lib -lGLESv1_CM + Cflags: -I${mesa.dev}/include + EOF - cat <$dev/lib/pkgconfig/glesv2.pc - Name: glesv2 - Description: glesv2 library - Version: ${mesa.version} - Libs: -L${mesa.out}/lib -lGLESv2 - Cflags: -I${mesa.dev}/include - EOF - '' + cat <$dev/lib/pkgconfig/glesv2.pc + Name: glesv2 + Description: glesv2 library + Version: ${mesa.version} + Libs: -L${mesa.out}/lib -lGLESv2 + Cflags: -I${mesa.dev}/include + EOF + '' - # Otherwise, setup gl stubs to use libglvnd. - else '' - mkdir -p $out/nix-support - ln -s ${libglvnd.out}/lib $out/lib + # Otherwise, setup gl stubs to use libglvnd. + else + '' + mkdir -p $out/nix-support + ln -s ${libglvnd.out}/lib $out/lib - mkdir -p $dev/{,lib/pkgconfig,nix-support} - echo "$out ${libglvnd} ${libglvnd.dev}" > $dev/nix-support/propagated-build-inputs - ln -s ${libglvnd.dev}/include $dev/include + mkdir -p $dev/{,lib/pkgconfig,nix-support} + echo "$out ${libglvnd} ${libglvnd.dev}" > $dev/nix-support/propagated-build-inputs + ln -s ${libglvnd.dev}/include $dev/include - genPkgConfig() { - local name="$1" - local lib="$2" + genPkgConfig() { + local name="$1" + local lib="$2" - cat <$dev/lib/pkgconfig/$name.pc - Name: $name - Description: $lib library - Version: ${libglvnd.version} - Libs: -L${libglvnd.out}/lib -l$lib - Cflags: -I${libglvnd.dev}/include - EOF - } + cat <$dev/lib/pkgconfig/$name.pc + Name: $name + Description: $lib library + Version: ${libglvnd.version} + Libs: -L${libglvnd.out}/lib -l$lib + Cflags: -I${libglvnd.dev}/include + EOF + } - genPkgConfig gl GL - genPkgConfig egl EGL - genPkgConfig glesv1_cm GLESv1_CM - genPkgConfig glesv2 GLESv2 - ''; + genPkgConfig gl GL + genPkgConfig egl EGL + genPkgConfig glesv1_cm GLESv1_CM + genPkgConfig glesv2 GLESv2 + ''; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - description = "Stub bindings using " + (if stdenv.hostPlatform.isDarwin then "mesa" else "libglvnd"); - pkgConfigModules = [ "gl" "egl" "glesv1_cm" "glesv2" ]; - } // { - inherit (if stdenv.hostPlatform.isDarwin then mesa.meta else libglvnd.meta) homepage license platforms; - }; + meta = + { + description = + "Stub bindings using " + (if stdenv.hostPlatform.isDarwin then "mesa" else "libglvnd"); + pkgConfigModules = [ + "gl" + "egl" + "glesv1_cm" + "glesv2" + ]; + } + // { + inherit (if stdenv.hostPlatform.isDarwin then mesa.meta else libglvnd.meta) + homepage + license + platforms + ; + }; }) diff --git a/pkgs/by-name/me/meson/default.nix b/pkgs/by-name/me/meson/default.nix index b2c85c4..5aafc8b 100644 --- a/pkgs/by-name/me/meson/default.nix +++ b/pkgs/by-name/me/meson/default.nix @@ -1,20 +1,28 @@ -{ lib -, stdenv -, fetchFromGitHub -, installShellFiles -, coreutils -, darwin -, libxcrypt -, openldap -, ninja -, pkg-config -, python3 -, substituteAll -, zlib +{ + lib, + stdenv, + fetchFromGitHub, + installShellFiles, + coreutils, + darwin, + libxcrypt, + openldap, + ninja, + pkg-config, + python3, + substituteAll, + zlib, }: let - inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation LDAP OpenAL OpenGL; + inherit (darwin.apple_sdk.frameworks) + AppKit + Cocoa + Foundation + LDAP + OpenAL + OpenGL + ; in python3.pkgs.buildPythonApplication rec { pname = "meson"; @@ -71,9 +79,7 @@ python3.pkgs.buildPythonApplication rec { ./0001-Revert-rust-recursively-pull-proc-macro-dependencies.patch ]; - buildInputs = lib.optionals (python3.pythonOlder "3.9") [ - libxcrypt - ]; + buildInputs = lib.optionals (python3.pythonOlder "3.9") [ libxcrypt ]; nativeBuildInputs = [ installShellFiles ]; @@ -82,45 +88,46 @@ python3.pkgs.buildPythonApplication rec { pkg-config ]; - checkInputs = [ - zlib - ] - ++ lib.optionals stdenv.isDarwin [ - AppKit - Cocoa - Foundation - LDAP - OpenAL - OpenGL - openldap - ]; + checkInputs = + [ zlib ] + ++ lib.optionals stdenv.isDarwin [ + AppKit + Cocoa + Foundation + LDAP + OpenAL + OpenGL + openldap + ]; - checkPhase = lib.concatStringsSep "\n" ([ - "runHook preCheck" - '' - patchShebangs 'test cases' - substituteInPlace \ - 'test cases/native/8 external program shebang parsing/script.int.in' \ - 'test cases/common/273 customtarget exe for test/generate.py' \ - --replace /usr/bin/env ${coreutils}/bin/env - '' - ] - # Remove problematic tests - ++ (builtins.map (f: ''rm -vr "${f}";'') [ - # requires git, creating cyclic dependency - ''test cases/common/66 vcstag'' - # requires glib, creating cyclic dependency - ''test cases/linuxlike/6 subdir include order'' - ''test cases/linuxlike/9 compiler checks with dependencies'' - # requires static zlib, see #66461 - ''test cases/linuxlike/14 static dynamic linkage'' - # Nixpkgs cctools does not have bitcode support. - ''test cases/osx/7 bitcode'' - ]) - ++ [ - ''HOME="$TMPDIR" python ./run_project_tests.py'' - "runHook postCheck" - ]); + checkPhase = lib.concatStringsSep "\n" ( + [ + "runHook preCheck" + '' + patchShebangs 'test cases' + substituteInPlace \ + 'test cases/native/8 external program shebang parsing/script.int.in' \ + 'test cases/common/273 customtarget exe for test/generate.py' \ + --replace /usr/bin/env ${coreutils}/bin/env + '' + ] + # Remove problematic tests + ++ (builtins.map (f: ''rm -vr "${f}";'') [ + # requires git, creating cyclic dependency + ''test cases/common/66 vcstag'' + # requires glib, creating cyclic dependency + ''test cases/linuxlike/6 subdir include order'' + ''test cases/linuxlike/9 compiler checks with dependencies'' + # requires static zlib, see #66461 + ''test cases/linuxlike/14 static dynamic linkage'' + # Nixpkgs cctools does not have bitcode support. + ''test cases/osx/7 bitcode'' + ]) + ++ [ + ''HOME="$TMPDIR" python ./run_project_tests.py'' + "runHook postCheck" + ] + ); postInstall = '' installShellCompletion --zsh data/shell-completions/zsh/_meson diff --git a/pkgs/by-name/me/meson/packages.nix b/pkgs/by-name/me/meson/packages.nix index 58d7361..2ce5ef9 100644 --- a/pkgs/by-name/me/meson/packages.nix +++ b/pkgs/by-name/me/meson/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { meson = callPackage ./. { }; # while building documentation meson may want to run binaries for host @@ -23,9 +22,10 @@ with pkgs; # The throw is moved into the `makeSetupHook` derivation, so that its # outer level, but not its outPath can still be evaluated if the condition # doesn't hold. This ensures that splicing still can work correctly. - (if (!stdenv.hostPlatform.canExecute stdenv.targetPlatform) then - ../by-name/me/meson/emulator-hook.sh - else - throw "mesonEmulatorHook may only be added to nativeBuildInputs when the target binaries can't be executed; however you are attempting to use it in a situation where ${stdenv.hostPlatform.config} can execute ${stdenv.targetPlatform.config}. Consider only adding mesonEmulatorHook according to a conditional based canExecute in your package expression."); + ( + if (!stdenv.hostPlatform.canExecute stdenv.targetPlatform) then + ../by-name/me/meson/emulator-hook.sh + else + throw "mesonEmulatorHook may only be added to nativeBuildInputs when the target binaries can't be executed; however you are attempting to use it in a situation where ${stdenv.hostPlatform.config} can execute ${stdenv.targetPlatform.config}. Consider only adding mesonEmulatorHook according to a conditional based canExecute in your package expression." + ); } - diff --git a/pkgs/by-name/mi/minizip/default.nix b/pkgs/by-name/mi/minizip/default.nix index 586dd11..c1f636d 100644 --- a/pkgs/by-name/mi/minizip/default.nix +++ b/pkgs/by-name/mi/minizip/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, zlib, autoreconfHook, fetchpatch }: +{ + lib, + stdenv, + zlib, + autoreconfHook, + fetchpatch, +}: stdenv.mkDerivation { pname = "minizip"; diff --git a/pkgs/by-name/mp/mpdecimal/default.nix b/pkgs/by-name/mp/mpdecimal/default.nix index 514c61f..40b3d3e 100644 --- a/pkgs/by-name/mp/mpdecimal/default.nix +++ b/pkgs/by-name/mp/mpdecimal/default.nix @@ -1,9 +1,18 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "mpdecimal"; version = "4.0.0"; - outputs = [ "out" "cxx" "doc" "dev" ]; + outputs = [ + "out" + "cxx" + "doc" + "dev" + ]; src = fetchurl { url = "https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-${version}.tar.gz"; @@ -23,7 +32,7 @@ stdenv.mkDerivation rec { meta = { description = "Library for arbitrary precision decimal floating point arithmetic"; - longDescription = '' + longDescription = '' libmpdec is a fast C/C++ library for correctly-rounded arbitrary precision decimal floating point arithmetic. It is a complete implementation of Mike Cowlishaw/IBM's General Decimal Arithmetic diff --git a/pkgs/by-name/mp/mpfr/default.nix b/pkgs/by-name/mp/mpfr/default.nix index dec33a6..4dba012 100644 --- a/pkgs/by-name/mp/mpfr/default.nix +++ b/pkgs/by-name/mp/mpfr/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchurl -, gmp -, writeScript +{ + lib, + stdenv, + fetchurl, + gmp, + writeScript, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -22,13 +23,19 @@ stdenv.mkDerivation rec { hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I="; }; - outputs = [ "out" "dev" "doc" "info" ]; + outputs = [ + "out" + "dev" + "doc" + "info" + ]; strictDeps = true; # mpfr.h requires gmp.h propagatedBuildInputs = [ gmp ]; - configureFlags = lib.optional stdenv.hostPlatform.isSunOS "--disable-thread-safe" + configureFlags = + lib.optional stdenv.hostPlatform.isSunOS "--disable-thread-safe" ++ lib.optional stdenv.hostPlatform.is64bit "--with-pic" ++ lib.optionals stdenv.hostPlatform.isPower64 [ # Without this, the `tget_set_d128` test experiences a link diff --git a/pkgs/by-name/ms/mscgen/default.nix b/pkgs/by-name/ms/mscgen/default.nix index a391a62..4394ef3 100644 --- a/pkgs/by-name/ms/mscgen/default.nix +++ b/pkgs/by-name/ms/mscgen/default.nix @@ -1,14 +1,16 @@ -{ lib, stdenv -, bison -, fetchurl -, flex -, gd -, libjpeg -, libpng -, libwebp -, pkg-config -, runtimeShell -, zlib +{ + lib, + stdenv, + bison, + fetchurl, + flex, + gd, + libjpeg, + libpng, + libwebp, + pkg-config, + runtimeShell, + zlib, }: stdenv.mkDerivation rec { @@ -20,15 +22,28 @@ stdenv.mkDerivation rec { sha256 = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"; }; - nativeBuildInputs = [ bison flex pkg-config ]; - buildInputs = [ gd libjpeg libpng libwebp zlib ]; + nativeBuildInputs = [ + bison + flex + pkg-config + ]; + buildInputs = [ + gd + libjpeg + libpng + libwebp + zlib + ]; doCheck = true; preCheck = '' sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" test/renderercheck.sh ''; - outputs = [ "out" "man" ]; + outputs = [ + "out" + "man" + ]; meta = { homepage = "http://www.mcternan.me.uk/mscgen/"; diff --git a/pkgs/by-name/mu/musl/default.nix b/pkgs/by-name/mu/musl/default.nix index 9f78670..cc1f4ab 100644 --- a/pkgs/by-name/mu/musl/default.nix +++ b/pkgs/by-name/mu/musl/default.nix @@ -1,6 +1,9 @@ -{ stdenv, lib, fetchurl -, linuxHeaders ? null -, useBSDCompatHeaders ? true +{ + stdenv, + lib, + fetchurl, + linuxHeaders ? null, + useBSDCompatHeaders ? true, }: let cdefs_h = fetchurl { @@ -35,11 +38,13 @@ let sha256 = "1mzxnc2ncq8lw9x6n7p00fvfklc9p3wfv28m68j0dfz5l8q2k6pp"; }; - arch = if stdenv.hostPlatform.isx86_64 - then "x86_64" - else if stdenv.hostPlatform.isx86_32 - then "i386" - else null; + arch = + if stdenv.hostPlatform.isx86_64 then + "x86_64" + else if stdenv.hostPlatform.isx86_32 then + "i386" + else + null; in stdenv.mkDerivation rec { @@ -47,7 +52,7 @@ stdenv.mkDerivation rec { version = "1.2.3"; src = fetchurl { - url = "https://musl.libc.org/releases/${pname}-${version}.tar.gz"; + url = "https://musl.libc.org/releases/${pname}-${version}.tar.gz"; sha256 = "sha256-fVsLYGJSHkYn4JnkydyCSNMqMChelZt+7Kp4DPjP1KQ="; }; @@ -78,8 +83,9 @@ stdenv.mkDerivation rec { sha256 = "sha256-qCw132TCSaZrkISmtDb8Q8ufyt8sAJdwACkvfwuoi/0="; }) ]; - CFLAGS = [ "-fstack-protector-strong" ] - ++ lib.optional stdenv.hostPlatform.isPower "-mlong-double-64"; + CFLAGS = [ + "-fstack-protector-strong" + ] ++ lib.optional stdenv.hostPlatform.isPower "-mlong-double-64"; configureFlags = [ "--enable-shared" @@ -89,7 +95,11 @@ stdenv.mkDerivation rec { "--syslibdir=${placeholder "out"}/lib" ]; - outputs = [ "out" "bin" "dev" ]; + outputs = [ + "out" + "bin" + "dev" + ]; dontDisableStatic = true; dontAddStaticConfigureFlags = true; @@ -99,63 +109,82 @@ stdenv.mkDerivation rec { preBuild = '' ${lib.optionalString (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) - "# the -x c flag is required since the file extension confuses gcc + "# the -x c flag is required since the file extension confuses gcc # that detect the file as a linker script. $CC -x c -c ${stack_chk_fail_local_c} -o __stack_chk_fail_local.o $AR r libssp_nonshared.a __stack_chk_fail_local.o" } ''; - postInstall = '' - # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do. - # Apparently glibc provides scsi itself? - (cd $dev/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) + postInstall = + '' + # Not sure why, but link in all but scsi directory as that's what uclibc/glibc do. + # Apparently glibc provides scsi itself? + (cd $dev/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .) - ${lib.optionalString (stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32) - "install -D libssp_nonshared.a $out/lib/libssp_nonshared.a" - } + ${lib.optionalString ( + stdenv.targetPlatform.libc == "musl" && stdenv.targetPlatform.isx86_32 + ) "install -D libssp_nonshared.a $out/lib/libssp_nonshared.a"} - # Create 'ldd' symlink, builtin - ln -s $out/lib/libc.so $bin/bin/ldd + # Create 'ldd' symlink, builtin + ln -s $out/lib/libc.so $bin/bin/ldd - # (impure) cc wrapper around musl for interactive usuage - for i in musl-gcc musl-clang ld.musl-clang; do - moveToOutput bin/$i $dev - done - moveToOutput lib/musl-gcc.specs $dev - substituteInPlace $dev/bin/musl-gcc \ - --replace $out/lib/musl-gcc.specs $dev/lib/musl-gcc.specs + # (impure) cc wrapper around musl for interactive usuage + for i in musl-gcc musl-clang ld.musl-clang; do + moveToOutput bin/$i $dev + done + moveToOutput lib/musl-gcc.specs $dev + substituteInPlace $dev/bin/musl-gcc \ + --replace $out/lib/musl-gcc.specs $dev/lib/musl-gcc.specs - # provide 'iconv' utility, using just-built headers, libc/ldso - $CC ${iconv_c} -o $bin/bin/iconv \ - -I$dev/include \ - -L$out/lib -Wl,-rpath=$out/lib \ - -lc \ - -B $out/lib \ - -Wl,-dynamic-linker=$(ls $out/lib/ld-*) - '' + lib.optionalString (arch != null) '' - # Create 'libc.musl-$arch' symlink - ln -rs $out/lib/libc.so $out/lib/libc.musl-${arch}.so.1 - '' + lib.optionalString useBSDCompatHeaders '' - install -D ${queue_h} $dev/include/sys/queue.h - install -D ${cdefs_h} $dev/include/sys/cdefs.h - install -D ${tree_h} $dev/include/sys/tree.h - ''; + # provide 'iconv' utility, using just-built headers, libc/ldso + $CC ${iconv_c} -o $bin/bin/iconv \ + -I$dev/include \ + -L$out/lib -Wl,-rpath=$out/lib \ + -lc \ + -B $out/lib \ + -Wl,-dynamic-linker=$(ls $out/lib/ld-*) + '' + + lib.optionalString (arch != null) '' + # Create 'libc.musl-$arch' symlink + ln -rs $out/lib/libc.so $out/lib/libc.musl-${arch}.so.1 + '' + + lib.optionalString useBSDCompatHeaders '' + install -D ${queue_h} $dev/include/sys/queue.h + install -D ${cdefs_h} $dev/include/sys/cdefs.h + install -D ${tree_h} $dev/include/sys/tree.h + ''; passthru.linuxHeaders = linuxHeaders; meta = with lib; { description = "An efficient, small, quality libc implementation"; - homepage = "https://musl.libc.org/"; - changelog = "https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v${version}"; - license = licenses.mit; - platforms = [ - "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" - "armv7l-linux" "i686-linux" "x86_64-linux" "m68k-linux" - "microblaze-linux" "microblazeel-linux" "mips-linux" "mips64-linux" - "mipsel-linux" "mips64el-linux" "powerpc64-linux" "powerpc64le-linux" - "riscv64-linux" "s390x-linux" + homepage = "https://musl.libc.org/"; + changelog = "https://git.musl-libc.org/cgit/musl/tree/WHATSNEW?h=v${version}"; + license = licenses.mit; + platforms = [ + "aarch64-linux" + "armv5tel-linux" + "armv6l-linux" + "armv7a-linux" + "armv7l-linux" + "i686-linux" + "x86_64-linux" + "m68k-linux" + "microblaze-linux" + "microblazeel-linux" + "mips-linux" + "mips64-linux" + "mipsel-linux" + "mips64el-linux" + "powerpc64-linux" + "powerpc64le-linux" + "riscv64-linux" + "s390x-linux" + ]; + maintainers = with maintainers; [ + thoughtpolice + dtzWill ]; - maintainers = with maintainers; [ thoughtpolice dtzWill ]; }; } diff --git a/pkgs/by-name/mu/musl/packages.nix b/pkgs/by-name/mu/musl/packages.nix index 7dd8e56..528d460 100644 --- a/pkgs/by-name/mu/musl/packages.nix +++ b/pkgs/by-name/mu/musl/packages.nix @@ -1,10 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { musl = callPackage ./. { }; - muslCross = musl.override { - stdenv = crossLibcStdenv; - }; + muslCross = musl.override { stdenv = crossLibcStdenv; }; } diff --git a/pkgs/by-name/na/nasm/default.nix b/pkgs/by-name/na/nasm/default.nix index 64abd3a..8aa2964 100644 --- a/pkgs/by-name/na/nasm/default.nix +++ b/pkgs/by-name/na/nasm/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchurl -, perl -, gitUpdater +{ + lib, + stdenv, + fetchurl, + perl, + gitUpdater, }: stdenv.mkDerivation rec { @@ -39,7 +40,10 @@ stdenv.mkDerivation rec { homepage = "https://www.nasm.us/"; description = "An 80x86 and x86-64 assembler designed for portability and modularity"; platforms = platforms.unix; - maintainers = with maintainers; [ pSub willibutz ]; + maintainers = with maintainers; [ + pSub + willibutz + ]; license = licenses.bsd2; }; } diff --git a/pkgs/by-name/nc/ncompress/default.nix b/pkgs/by-name/nc/ncompress/default.nix index c4678cd..22d1902 100644 --- a/pkgs/by-name/nc/ncompress/default.nix +++ b/pkgs/by-name/nc/ncompress/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchFromGitHub }: +{ + lib, + stdenv, + fetchFromGitHub, +}: stdenv.mkDerivation rec { pname = "ncompress"; diff --git a/pkgs/by-name/nc/ncurses/default.nix b/pkgs/by-name/nc/ncurses/default.nix index 2d383c8..b1c4ad1 100644 --- a/pkgs/by-name/nc/ncurses/default.nix +++ b/pkgs/by-name/nc/ncurses/default.nix @@ -1,15 +1,17 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, ncurses -, pkg-config -, abiVersion ? "6" -, enableStatic ? stdenv.hostPlatform.isStatic -, withCxx ? !stdenv.hostPlatform.useAndroidPrebuilt -, mouseSupport ? false, gpm -, unicodeSupport ? true -, testers +{ + lib, + stdenv, + fetchurl, + buildPackages, + ncurses, + pkg-config, + abiVersion ? "6", + enableStatic ? stdenv.hostPlatform.isStatic, + withCxx ? !stdenv.hostPlatform.useAndroidPrebuilt, + mouseSupport ? false, + gpm, + unicodeSupport ? true, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -21,149 +23,163 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk="; }; - outputs = [ "out" "dev" "man" ]; + outputs = [ + "out" + "dev" + "man" + ]; setOutputFlags = false; # some aren't supported - configureFlags = [ - (lib.withFeature (!enableStatic) "shared") - "--without-debug" - "--enable-pc-files" - "--enable-symlinks" - "--with-manpage-format=normal" - "--disable-stripping" - "--with-versioned-syms" - ] ++ lib.optional unicodeSupport "--enable-widec" + configureFlags = + [ + (lib.withFeature (!enableStatic) "shared") + "--without-debug" + "--enable-pc-files" + "--enable-symlinks" + "--with-manpage-format=normal" + "--disable-stripping" + "--with-versioned-syms" + ] + ++ lib.optional unicodeSupport "--enable-widec" ++ lib.optional (!withCxx) "--without-cxx" ++ lib.optional (abiVersion == "5") "--with-abi-version=5" ++ lib.optional stdenv.hostPlatform.isNetBSD "--enable-rpath" ++ lib.optionals stdenv.hostPlatform.isWindows [ "--enable-sp-funcs" "--enable-term-driver" - ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [ + ] + ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [ # For static binaries, the point is to have a standalone binary with # minimum dependencies. So here we make sure that binaries using this # package won't depend on a terminfo database located in the Nix store. - "--with-terminfo-dirs=${lib.concatStringsSep ":" [ - "/etc/terminfo" # Debian, Fedora, Gentoo - "/lib/terminfo" # Debian - "/usr/share/terminfo" # upstream default, probably all FHS-based distros - "/run/current-system/sw/share/terminfo" # NixOS - ]}" - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" - ]; + "--with-terminfo-dirs=${ + lib.concatStringsSep ":" [ + "/etc/terminfo" # Debian, Fedora, Gentoo + "/lib/terminfo" # Debian + "/usr/share/terminfo" # upstream default, probably all FHS-based distros + "/run/current-system/sw/share/terminfo" # NixOS + ] + }" + ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc" + ]; # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris: CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED"; strictDeps = true; - nativeBuildInputs = [ - pkg-config - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`. - ncurses - ]; + nativeBuildInputs = + [ pkg-config ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ + # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`. + ncurses + ]; buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm; - preConfigure = '' - export PKG_CONFIG_LIBDIR="$dev/lib/pkgconfig" - mkdir -p "$PKG_CONFIG_LIBDIR" - configureFlagsArray+=( - "--libdir=$out/lib" - "--includedir=$dev/include" - "--bindir=$dev/bin" - "--mandir=$man/share/man" - "--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR" - ) - '' - + lib.optionalString stdenv.isSunOS '' - sed -i -e '/-D__EXTENSIONS__/ s/-D_XOPEN_SOURCE=\$cf_XOPEN_SOURCE//' \ - -e '/CPPFLAGS="$CPPFLAGS/s/ -D_XOPEN_SOURCE_EXTENDED//' \ - configure - CFLAGS=-D_XOPEN_SOURCE_EXTENDED - ''; + preConfigure = + '' + export PKG_CONFIG_LIBDIR="$dev/lib/pkgconfig" + mkdir -p "$PKG_CONFIG_LIBDIR" + configureFlagsArray+=( + "--libdir=$out/lib" + "--includedir=$dev/include" + "--bindir=$dev/bin" + "--mandir=$man/share/man" + "--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR" + ) + '' + + lib.optionalString stdenv.isSunOS '' + sed -i -e '/-D__EXTENSIONS__/ s/-D_XOPEN_SOURCE=\$cf_XOPEN_SOURCE//' \ + -e '/CPPFLAGS="$CPPFLAGS/s/ -D_XOPEN_SOURCE_EXTENDED//' \ + configure + CFLAGS=-D_XOPEN_SOURCE_EXTENDED + ''; enableParallelBuilding = true; doCheck = false; - postFixup = let - abiVersion-extension = if stdenv.isDarwin then "${abiVersion}.$dylibtype" else "$dylibtype.${abiVersion}"; in - '' - # Determine what suffixes our libraries have - suffix="$(awk -F': ' 'f{print $3; f=0} /default library suffix/{f=1}' config.log)" - '' - # When building a wide-character (Unicode) build, create backward - # compatibility links from the the "normal" libraries to the - # wide-character libraries (e.g. libncurses.so to libncursesw.so). - + lib.optionalString unicodeSupport '' - libs="$(ls $dev/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")" - suffixes="$(echo "$suffix" | awk '{for (i=1; i < length($0); i++) {x=substr($0, i+1, length($0)-i); print x}}')" + postFixup = + let + abiVersion-extension = + if stdenv.isDarwin then "${abiVersion}.$dylibtype" else "$dylibtype.${abiVersion}"; + in + '' + # Determine what suffixes our libraries have + suffix="$(awk -F': ' 'f{print $3; f=0} /default library suffix/{f=1}' config.log)" + '' + # When building a wide-character (Unicode) build, create backward + # compatibility links from the the "normal" libraries to the + # wide-character libraries (e.g. libncurses.so to libncursesw.so). + + lib.optionalString unicodeSupport '' + libs="$(ls $dev/lib/pkgconfig | tr ' ' '\n' | sed "s,\(.*\)$suffix\.pc,\1,g")" + suffixes="$(echo "$suffix" | awk '{for (i=1; i < length($0); i++) {x=substr($0, i+1, length($0)-i); print x}}')" - # Get the path to the config util - cfg=$(basename $dev/bin/ncurses*-config) + # Get the path to the config util + cfg=$(basename $dev/bin/ncurses*-config) - # symlink the full suffixed include directory - ln -svf . $dev/include/ncurses$suffix + # symlink the full suffixed include directory + ln -svf . $dev/include/ncurses$suffix - for newsuffix in $suffixes ""; do - # Create a non-abi versioned config util links - ln -svf $cfg $dev/bin/ncurses$newsuffix-config + for newsuffix in $suffixes ""; do + # Create a non-abi versioned config util links + ln -svf $cfg $dev/bin/ncurses$newsuffix-config - # Allow for end users who #include - ln -svf . $dev/include/ncurses$newsuffix + # Allow for end users who #include + ln -svf . $dev/include/ncurses$newsuffix - for library in $libs; do - for dylibtype in so dll dylib; do - if [ -e "$out/lib/lib''${library}$suffix.$dylibtype" ]; then - ln -svf lib''${library}$suffix.$dylibtype $out/lib/lib$library$newsuffix.$dylibtype - ln -svf lib''${library}$suffix.${abiVersion-extension} $out/lib/lib$library$newsuffix.${abiVersion-extension} - if [ "ncurses" = "$library" ] - then - # make libtinfo symlinks - ln -svf lib''${library}$suffix.$dylibtype $out/lib/libtinfo$newsuffix.$dylibtype - ln -svf lib''${library}$suffix.${abiVersion-extension} $out/lib/libtinfo$newsuffix.${abiVersion-extension} + for library in $libs; do + for dylibtype in so dll dylib; do + if [ -e "$out/lib/lib''${library}$suffix.$dylibtype" ]; then + ln -svf lib''${library}$suffix.$dylibtype $out/lib/lib$library$newsuffix.$dylibtype + ln -svf lib''${library}$suffix.${abiVersion-extension} $out/lib/lib$library$newsuffix.${abiVersion-extension} + if [ "ncurses" = "$library" ] + then + # make libtinfo symlinks + ln -svf lib''${library}$suffix.$dylibtype $out/lib/libtinfo$newsuffix.$dylibtype + ln -svf lib''${library}$suffix.${abiVersion-extension} $out/lib/libtinfo$newsuffix.${abiVersion-extension} + fi fi - fi - done - for statictype in a dll.a la; do - if [ -e "$out/lib/lib''${library}$suffix.$statictype" ]; then - ln -svf lib''${library}$suffix.$statictype $out/lib/lib$library$newsuffix.$statictype - if [ "ncurses" = "$library" ] - then - # make libtinfo symlinks - ln -svf lib''${library}$suffix.$statictype $out/lib/libtinfo$newsuffix.$statictype + done + for statictype in a dll.a la; do + if [ -e "$out/lib/lib''${library}$suffix.$statictype" ]; then + ln -svf lib''${library}$suffix.$statictype $out/lib/lib$library$newsuffix.$statictype + if [ "ncurses" = "$library" ] + then + # make libtinfo symlinks + ln -svf lib''${library}$suffix.$statictype $out/lib/libtinfo$newsuffix.$statictype + fi fi - fi + done + ln -svf ''${library}$suffix.pc $dev/lib/pkgconfig/$library$newsuffix.pc done - ln -svf ''${library}$suffix.pc $dev/lib/pkgconfig/$library$newsuffix.pc done - done '' # Unconditional patches. Leading newline is to avoid mass rebuilds. + '' - # add pkg-config aliases for libraries that are built-in to libncurses(w) - for library in tinfo tic; do - for suffix in "" ${lib.optionalString unicodeSupport "w"}; do - ln -svf ncurses$suffix.pc $dev/lib/pkgconfig/$library$suffix.pc + # add pkg-config aliases for libraries that are built-in to libncurses(w) + for library in tinfo tic; do + for suffix in "" ${lib.optionalString unicodeSupport "w"}; do + ln -svf ncurses$suffix.pc $dev/lib/pkgconfig/$library$suffix.pc + done done - done - # move some utilities to $bin - # these programs are used at runtime and don't really belong in $dev - moveToOutput "bin/clear" "$out" - moveToOutput "bin/reset" "$out" - moveToOutput "bin/tabs" "$out" - moveToOutput "bin/tic" "$out" - moveToOutput "bin/tput" "$out" - moveToOutput "bin/tset" "$out" - moveToOutput "bin/captoinfo" "$out" - moveToOutput "bin/infotocap" "$out" - moveToOutput "bin/infocmp" "$out" - ''; + # move some utilities to $bin + # these programs are used at runtime and don't really belong in $dev + moveToOutput "bin/clear" "$out" + moveToOutput "bin/reset" "$out" + moveToOutput "bin/tabs" "$out" + moveToOutput "bin/tic" "$out" + moveToOutput "bin/tput" "$out" + moveToOutput "bin/tset" "$out" + moveToOutput "bin/captoinfo" "$out" + moveToOutput "bin/infotocap" "$out" + moveToOutput "bin/infocmp" "$out" + ''; preFixup = lib.optionalString (!stdenv.hostPlatform.isCygwin && !enableStatic) '' rm "$out"/lib/*.a @@ -184,14 +200,16 @@ stdenv.mkDerivation (finalAttrs: { ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! ''; license = licenses.mit; - pkgConfigModules = let - base = [ - "form" - "menu" - "ncurses" - "panel" - ] ++ lib.optional withCxx "ncurses++"; - in base ++ lib.optionals unicodeSupport (map (p: p + "w") base); + pkgConfigModules = + let + base = [ + "form" + "menu" + "ncurses" + "panel" + ] ++ lib.optional withCxx "ncurses++"; + in + base ++ lib.optionals unicodeSupport (map (p: p + "w") base); platforms = platforms.all; }; diff --git a/pkgs/by-name/nc/ncurses/packages.nix b/pkgs/by-name/nc/ncurses/packages.nix index 663cacd..32e2d1c 100644 --- a/pkgs/by-name/nc/ncurses/packages.nix +++ b/pkgs/by-name/nc/ncurses/packages.nix @@ -1,16 +1,8 @@ { ... }: res: pkgs: super: -with pkgs; -{ - ncurses5 = ncurses.override { - abiVersion = "5"; - }; - ncurses6 = ncurses.override { - abiVersion = "6"; - }; - ncurses = - if stdenv.hostPlatform.useiOSPrebuilt - then null - else callPackage ./. { }; +with pkgs; { + ncurses5 = ncurses.override { abiVersion = "5"; }; + ncurses6 = ncurses.override { abiVersion = "6"; }; + ncurses = if stdenv.hostPlatform.useiOSPrebuilt then null else callPackage ./. { }; } diff --git a/pkgs/by-name/ne/netbsd/default.nix b/pkgs/by-name/ne/netbsd/default.nix index fd5e24a..5f97ca9 100644 --- a/pkgs/by-name/ne/netbsd/default.nix +++ b/pkgs/by-name/ne/netbsd/default.nix @@ -1,137 +1,194 @@ -{ stdenv, lib, stdenvNoCC -, makeScopeWithSplicing', generateSplicesForMkScope -, buildPackages -, fetchcvs +{ + stdenv, + lib, + stdenvNoCC, + makeScopeWithSplicing', + generateSplicesForMkScope, + buildPackages, + fetchcvs, }: makeScopeWithSplicing' { otherSplices = generateSplicesForMkScope "netbsd"; - f = (self: lib.packagesFromDirectoryRecursive { - callPackage = self.callPackage; - directory = ./pkgs; - } // (let inherit (self) mkDerivation; in { + f = ( + self: + lib.packagesFromDirectoryRecursive { + callPackage = self.callPackage; + directory = ./pkgs; + } + // ( + let + inherit (self) mkDerivation; + in + { - fetchNetBSD = path: version: sha256: fetchcvs { - cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot"; - module = "src/${path}"; - inherit sha256; - tag = "netbsd-${lib.replaceStrings ["."] ["-"] version}-RELEASE"; - }; + fetchNetBSD = + path: version: sha256: + fetchcvs { + cvsRoot = ":pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot"; + module = "src/${path}"; + inherit sha256; + tag = "netbsd-${lib.replaceStrings [ "." ] [ "-" ] version}-RELEASE"; + }; - defaultMakeFlags = [ - "MKSOFTFLOAT=${if stdenv.hostPlatform.gcc.float or (stdenv.hostPlatform.parsed.abi.float or "hard") == "soft" - then "yes" - else "no"}" - ]; + defaultMakeFlags = [ + "MKSOFTFLOAT=${ + if stdenv.hostPlatform.gcc.float or (stdenv.hostPlatform.parsed.abi.float or "hard") == "soft" then + "yes" + else + "no" + }" + ]; - compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isNetBSD) self.compat; + compatIfNeeded = lib.optional (!stdenvNoCC.hostPlatform.isNetBSD) self.compat; - # The manual callPackages below should in principle be unnecessary because - # they're just selecting arguments that would be selected anyway. However, - # if we don't perform these manual calls, we get infinite recursion issues - # because of the splices. + # The manual callPackages below should in principle be unnecessary because + # they're just selecting arguments that would be selected anyway. However, + # if we don't perform these manual calls, we get infinite recursion issues + # because of the splices. - mkDerivation = self.callPackage ./pkgs/mkDerivation.nix { - inherit stdenv stdenvNoCC; - inherit (buildPackages.netbsd) netbsdSetupHook makeMinimal install tsort lorder; - inherit (buildPackages) mandoc; - inherit (buildPackages.buildPackages) rsync; + mkDerivation = self.callPackage ./pkgs/mkDerivation.nix { + inherit stdenv stdenvNoCC; + inherit (buildPackages.netbsd) + netbsdSetupHook + makeMinimal + install + tsort + lorder + ; + inherit (buildPackages) mandoc; + inherit (buildPackages.buildPackages) rsync; - }; + }; - makeMinimal = self.callPackage ./pkgs/makeMinimal.nix { - inherit (self) make; - }; + makeMinimal = self.callPackage ./pkgs/makeMinimal.nix { inherit (self) make; }; - compat = self.callPackage ./pkgs/compat/package.nix { - inherit (buildPackages) coreutils; - inherit (buildPackages.darwin) cctools-port; - inherit (buildPackages.buildPackages) rsync; - inherit (buildPackages.netbsd) makeMinimal; - inherit (self) install include libc libutil; - }; + compat = self.callPackage ./pkgs/compat/package.nix { + inherit (buildPackages) coreutils; + inherit (buildPackages.darwin) cctools-port; + inherit (buildPackages.buildPackages) rsync; + inherit (buildPackages.netbsd) makeMinimal; + inherit (self) + install + include + libc + libutil + ; + }; - install = self.callPackage ./pkgs/install/package.nix { - inherit (self) fts mtree make compatIfNeeded; - inherit (buildPackages.buildPackages) rsync; - inherit (buildPackages.netbsd) makeMinimal; - }; + install = self.callPackage ./pkgs/install/package.nix { + inherit (self) + fts + mtree + make + compatIfNeeded + ; + inherit (buildPackages.buildPackages) rsync; + inherit (buildPackages.netbsd) makeMinimal; + }; - # See note in pkgs/stat/package.nix - stat = self.callPackage ./pkgs/stat/package.nix { - inherit (buildPackages.netbsd) makeMinimal install; - inherit (buildPackages.buildPackages) rsync; - }; + # See note in pkgs/stat/package.nix + stat = self.callPackage ./pkgs/stat/package.nix { + inherit (buildPackages.netbsd) makeMinimal install; + inherit (buildPackages.buildPackages) rsync; + }; - # See note in pkgs/stat/hook.nix - statHook = self.callPackage ./pkgs/stat/hook.nix { - inherit (self) stat; - }; + # See note in pkgs/stat/hook.nix + statHook = self.callPackage ./pkgs/stat/hook.nix { inherit (self) stat; }; - tsort = self.callPackage ./pkgs/tsort.nix { - inherit (buildPackages.netbsd) makeMinimal install; - inherit (buildPackages.buildPackages) rsync; - }; + tsort = self.callPackage ./pkgs/tsort.nix { + inherit (buildPackages.netbsd) makeMinimal install; + inherit (buildPackages.buildPackages) rsync; + }; - lorder = self.callPackage ./pkgs/lorder.nix { - inherit (buildPackages.netbsd) makeMinimal install; - inherit (buildPackages.buildPackages) rsync; - }; + lorder = self.callPackage ./pkgs/lorder.nix { + inherit (buildPackages.netbsd) makeMinimal install; + inherit (buildPackages.buildPackages) rsync; + }; - config = self.callPackage ./pkgs/config.nix { - inherit (buildPackages.netbsd) makeMinimal install; - inherit (buildPackages.buildPackages) rsync; - inherit (self) cksum; - }; + config = self.callPackage ./pkgs/config.nix { + inherit (buildPackages.netbsd) makeMinimal install; + inherit (buildPackages.buildPackages) rsync; + inherit (self) cksum; + }; - include = self.callPackage ./pkgs/include.nix { - inherit (buildPackages.netbsd) - makeMinimal install nbperf rpcgen; - inherit (buildPackages) stdenv; - inherit (buildPackages.buildPackages) rsync; - }; + include = self.callPackage ./pkgs/include.nix { + inherit (buildPackages.netbsd) + makeMinimal + install + nbperf + rpcgen + ; + inherit (buildPackages) stdenv; + inherit (buildPackages.buildPackages) rsync; + }; - sys-headers = self.callPackage ./pkgs/sys/headers.nix { - inherit (buildPackages.netbsd) - makeMinimal install tsort lorder statHook uudecode config genassym; - inherit (buildPackages.buildPackages) rsync; - }; + sys-headers = self.callPackage ./pkgs/sys/headers.nix { + inherit (buildPackages.netbsd) + makeMinimal + install + tsort + lorder + statHook + uudecode + config + genassym + ; + inherit (buildPackages.buildPackages) rsync; + }; - libutil = self.callPackage ./pkgs/libutil.nix { - inherit (self) libc sys; - }; + libutil = self.callPackage ./pkgs/libutil.nix { inherit (self) libc sys; }; - libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { }; + libpthread-headers = self.callPackage ./pkgs/libpthread/headers.nix { }; - csu = self.callPackage ./pkgs/csu.nix { - inherit (self) headers sys ld_elf_so; - inherit (buildPackages.netbsd) - netbsdSetupHook - makeMinimal - install - genassym gencat lorder tsort statHook; - inherit (buildPackages.buildPackages) rsync; - }; + csu = self.callPackage ./pkgs/csu.nix { + inherit (self) headers sys ld_elf_so; + inherit (buildPackages.netbsd) + netbsdSetupHook + makeMinimal + install + genassym + gencat + lorder + tsort + statHook + ; + inherit (buildPackages.buildPackages) rsync; + }; - _mainLibcExtraPaths = with self; [ - common i18n_module.src sys.src - ld_elf_so.src libpthread.src libm.src libresolv.src - librpcsvc.src libutil.src librt.src libcrypt.src - ]; + _mainLibcExtraPaths = with self; [ + common + i18n_module.src + sys.src + ld_elf_so.src + libpthread.src + libm.src + libresolv.src + librpcsvc.src + libutil.src + librt.src + libcrypt.src + ]; - libc = self.callPackage ./pkgs/libc.nix { - inherit (self) headers csu librt; - inherit (buildPackages.netbsd) - netbsdSetupHook - makeMinimal - install - genassym gencat lorder tsort statHook rpcgen; - inherit (buildPackages.buildPackages) rsync; - }; + libc = self.callPackage ./pkgs/libc.nix { + inherit (self) headers csu librt; + inherit (buildPackages.netbsd) + netbsdSetupHook + makeMinimal + install + genassym + gencat + lorder + tsort + statHook + rpcgen + ; + inherit (buildPackages.buildPackages) rsync; + }; - mtree = self.callPackage ./pkgs/mtree.nix { - inherit (self) mknod; - }; + mtree = self.callPackage ./pkgs/mtree.nix { inherit (self) mknod; }; - })); + } + ) + ); } diff --git a/pkgs/by-name/ne/netbsd/packages.nix b/pkgs/by-name/ne/netbsd/packages.nix index 2ca3c8a..84a1570 100644 --- a/pkgs/by-name/ne/netbsd/packages.nix +++ b/pkgs/by-name/ne/netbsd/packages.nix @@ -1,10 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { netbsd = callPackage ./. { }; - netbsdCross = callPackage ./. { - stdenv = crossLibcStdenv; - }; + netbsdCross = callPackage ./. { stdenv = crossLibcStdenv; }; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix b/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix index a1336ad..4c149e9 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/compat/package.nix @@ -1,21 +1,29 @@ -{ lib, mkDerivation, stdenv -, zlib -, defaultMakeFlags -, coreutils -, cctools-port -, include, libc, libutil -, install -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, rsync -, fetchNetBSD -, _mainLibcExtraPaths +{ + lib, + mkDerivation, + stdenv, + zlib, + defaultMakeFlags, + coreutils, + cctools-port, + include, + libc, + libutil, + install, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + rsync, + fetchNetBSD, + _mainLibcExtraPaths, }: -mkDerivation (let +mkDerivation ( + let version = "9.2"; commonDeps = [ zlib ]; - in { + in + { path = "tools/compat"; sha256 = "1vsxg7136nlhc72vpa664vs22874xh7ila95nkmsd8crn3z3cyn0"; inherit version; @@ -29,19 +37,23 @@ mkDerivation (let make include/.stamp configure nbtool_config.h.in defs.mk.in ''; - configurePlatforms = [ "build" "host" ]; - configureFlags = [ - "--cache-file=config.cache" - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - # We include this header in our musl package only for legacy - # compatibility, and compat works fine without it (and having it - # know about sys/cdefs.h breaks packages like glib when built - # statically). - "ac_cv_header_sys_cdefs_h=no" + configurePlatforms = [ + "build" + "host" ]; + configureFlags = + [ "--cache-file=config.cache" ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + # We include this header in our musl package only for legacy + # compatibility, and compat works fine without it (and having it + # know about sys/cdefs.h breaks packages like glib when built + # statically). + "ac_cv_header_sys_cdefs_h=no" + ]; nativeBuildInputs = commonDeps ++ [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal rsync ]; @@ -50,22 +62,27 @@ mkDerivation (let # temporarily use gnuinstall for bootstrapping # bsdinstall will be built later - makeFlags = defaultMakeFlags ++ [ - "INSTALL=${coreutils}/bin/install" - "DATADIR=$(out)/share" - # Can't sort object files yet - "LORDER=echo" - "TSORT=cat" - # Can't process man pages yet - "MKSHARE=no" - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # GNU objcopy produces broken .a libs which won't link into dependers. - # Makefiles only invoke `$OBJCOPY -x/-X`, so cctools strip works here. - "OBJCOPY=${cctools-port}/bin/strip" - ]; + makeFlags = + defaultMakeFlags + ++ [ + "INSTALL=${coreutils}/bin/install" + "DATADIR=$(out)/share" + # Can't sort object files yet + "LORDER=echo" + "TSORT=cat" + # Can't process man pages yet + "MKSHARE=no" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # GNU objcopy produces broken .a libs which won't link into dependers. + # Makefiles only invoke `$OBJCOPY -x/-X`, so cctools strip works here. + "OBJCOPY=${cctools-port}/bin/strip" + ]; RENAME = "-D"; - passthru.tests = { netbsd-install = install; }; + passthru.tests = { + netbsd-install = install; + }; patches = [ ./compat-cxx-safe-header.patch @@ -79,42 +96,51 @@ mkDerivation (let makeFlagsArray+=('INSTALL_SYMLINK=''${INSTALL} ''${SYMLINK} ''${RENAME}') ''; - postInstall = '' - # why aren't these installed by netbsd? - install -D compat_defs.h $out/include/compat_defs.h - install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h - install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h - install -D $BSDSRCDIR/sys/sys/featuretest.h \ - $out/include/sys/featuretest.h - install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h - install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h - install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h - install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h - install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h - install -D $BSDSRCDIR/include/vis.h $out/include/vis.h - install -D $BSDSRCDIR/include/db.h $out/include/db.h - install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h - install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h - install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h - install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h - install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h - install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h + postInstall = + '' + # why aren't these installed by netbsd? + install -D compat_defs.h $out/include/compat_defs.h + install -D $BSDSRCDIR/include/cdbw.h $out/include/cdbw.h + install -D $BSDSRCDIR/sys/sys/cdbr.h $out/include/cdbr.h + install -D $BSDSRCDIR/sys/sys/featuretest.h \ + $out/include/sys/featuretest.h + install -D $BSDSRCDIR/sys/sys/md5.h $out/include/md5.h + install -D $BSDSRCDIR/sys/sys/rmd160.h $out/include/rmd160.h + install -D $BSDSRCDIR/sys/sys/sha1.h $out/include/sha1.h + install -D $BSDSRCDIR/sys/sys/sha2.h $out/include/sha2.h + install -D $BSDSRCDIR/sys/sys/queue.h $out/include/sys/queue.h + install -D $BSDSRCDIR/include/vis.h $out/include/vis.h + install -D $BSDSRCDIR/include/db.h $out/include/db.h + install -D $BSDSRCDIR/include/netconfig.h $out/include/netconfig.h + install -D $BSDSRCDIR/include/utmpx.h $out/include/utmpx.h + install -D $BSDSRCDIR/include/tzfile.h $out/include/tzfile.h + install -D $BSDSRCDIR/sys/sys/tree.h $out/include/sys/tree.h + install -D $BSDSRCDIR/include/nl_types.h $out/include/nl_types.h + install -D $BSDSRCDIR/include/stringlist.h $out/include/stringlist.h - # Collapse includes slightly to fix dangling reference - install -D $BSDSRCDIR/common/include/rpc/types.h $out/include/rpc/types.h - sed -i '1s;^;#include "nbtool_config.h"\n;' $out/include/rpc/types.h - '' + lib.optionalString stdenv.isDarwin '' - mkdir -p $out/include/ssp - touch $out/include/ssp/ssp.h - '' + '' - mkdir -p $out/lib/pkgconfig - substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \ - --subst-var-by out $out \ - --subst-var-by version ${version} - ''; - extraPaths = [ include.src libc.src libutil.src + # Collapse includes slightly to fix dangling reference + install -D $BSDSRCDIR/common/include/rpc/types.h $out/include/rpc/types.h + sed -i '1s;^;#include "nbtool_config.h"\n;' $out/include/rpc/types.h + '' + + lib.optionalString stdenv.isDarwin '' + mkdir -p $out/include/ssp + touch $out/include/ssp/ssp.h + '' + + '' + mkdir -p $out/lib/pkgconfig + substitute ${./libbsd-overlay.pc} $out/lib/pkgconfig/libbsd-overlay.pc \ + --subst-var-by out $out \ + --subst-var-by version ${version} + ''; + extraPaths = [ + include.src + libc.src + libutil.src (fetchNetBSD "external/bsd/flex" "9.2" "0h98jpfj7vx5zh7vd7bk6b1hmzgkcb757a8j6d9zgygxxv13v43m") (fetchNetBSD "sys/sys" "9.2" "0zawhw51klaigqqwkx0lzrx3mim2jywrc24cm7c66qsf1im9awgd") - (fetchNetBSD "common/include/rpc/types.h" "9.2" "0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a") + (fetchNetBSD "common/include/rpc/types.h" "9.2" + "0n2df12mlc3cbc48jxq35yzl1y7ghgpykvy7jnfh898rdhac7m9a" + ) ] ++ libutil.extraPaths ++ _mainLibcExtraPaths; - }) + } +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/config.nix b/pkgs/by-name/ne/netbsd/pkgs/config.nix index 277d701..c423f3c 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/config.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/config.nix @@ -1,8 +1,15 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, mandoc, byacc, flex, rsync -, compatIfNeeded -, cksum +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + byacc, + flex, + rsync, + compatIfNeeded, + cksum, }: mkDerivation { path = "usr.bin/config"; @@ -10,8 +17,14 @@ mkDerivation { sha256 = "1yz3n4hncdkk6kp595fh2q5lg150vpqg8iw2dccydkyw4y3hgsjj"; env.NIX_CFLAGS_COMPILE = toString [ "-DMAKE_BOOTSTRAP" ]; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal install mandoc byacc flex rsync + bsdSetupHook + netbsdSetupHook + makeMinimal + install + mandoc + byacc + flex + rsync ]; buildInputs = compatIfNeeded; extraPaths = [ cksum.src ]; diff --git a/pkgs/by-name/ne/netbsd/pkgs/csu.nix b/pkgs/by-name/ne/netbsd/pkgs/csu.nix index 2d13ced..6644333 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/csu.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/csu.nix @@ -1,11 +1,23 @@ -{ lib, mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, flex -, byacc, genassym, gencat, lorder, tsort, statHook, rsync -, headers -, sys -, ld_elf_so +{ + lib, + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + flex, + byacc, + genassym, + gencat, + lorder, + tsort, + statHook, + rsync, + headers, + sys, + ld_elf_so, }: mkDerivation { @@ -14,11 +26,24 @@ mkDerivation { sha256 = "0al5jfazvhlzn9hvmnrbchx4d0gm282hq5gp4xs2zmj9ycmf6d03"; meta.platforms = lib.platforms.netbsd; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff flex - byacc genassym gencat lorder tsort statHook rsync + install + mandoc + groff + flex + byacc + genassym + gencat + lorder + tsort + statHook + rsync ]; buildInputs = [ headers ]; - extraPaths = [ sys.src ld_elf_so.src ]; + extraPaths = [ + sys.src + ld_elf_so.src + ]; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix b/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix index 0393d36..7c64658 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/fts/package.nix @@ -1,7 +1,10 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook, rsync -, compatIfNeeded -, fetchNetBSD +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + rsync, + compatIfNeeded, + fetchNetBSD, }: mkDerivation { @@ -10,12 +13,16 @@ mkDerivation { sha256 = "01d4fpxvz1pgzfk5xznz5dcm0x0gdzwcsfm1h3d0xc9kc6hj2q77"; version = "9.2"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook rsync + bsdSetupHook + netbsdSetupHook + rsync ]; propagatedBuildInputs = compatIfNeeded; extraPaths = [ (fetchNetBSD "lib/libc/gen/fts.c" "9.2" "1a8hmf26242nmv05ipn3ircxb0jqmmi66rh78kkyi9vjwkfl3qn7") - (fetchNetBSD "lib/libc/include/namespace.h" "9.2" "0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc") + (fetchNetBSD "lib/libc/include/namespace.h" "9.2" + "0kksr3pdwdc1cplqf5z12ih4cml6l11lqrz91f7hjjm64y7785kc" + ) (fetchNetBSD "lib/libc/gen/fts.3" "9.2" "1asxw0n3fhjdadwkkq3xplfgqgl3q32w1lyrvbakfa3gs0wz5zc1") ]; skipIncludesPhase = true; diff --git a/pkgs/by-name/ne/netbsd/pkgs/headers.nix b/pkgs/by-name/ne/netbsd/pkgs/headers.nix index 646e567..40615b2 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/headers.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/headers.nix @@ -1,4 +1,10 @@ -{ lib, symlinkJoin, include, sys-headers, libpthread-headers }: +{ + lib, + symlinkJoin, + include, + sys-headers, + libpthread-headers, +}: symlinkJoin { name = "netbsd-headers-9.2"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix b/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix index 60b091e..c76ada8 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/i18n_module.nix @@ -1,4 +1,8 @@ -{ lib, mkDerivation, libc }: +{ + lib, + mkDerivation, + libc, +}: mkDerivation { path = "lib/i18n_module"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/include.nix b/pkgs/by-name/ne/netbsd/pkgs/include.nix index 1ecdec9..ec316a6 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/include.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/include.nix @@ -1,10 +1,18 @@ -{ lib, mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync, nbperf, rpcgen -, common -, defaultMakeFlags -, stdenv +{ + lib, + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + rsync, + nbperf, + rpcgen, + common, + defaultMakeFlags, + stdenv, }: mkDerivation { @@ -12,9 +20,15 @@ mkDerivation { version = "9.2"; sha256 = "0nxnmj4c8s3hb9n3fpcmd0zl3l1nmhivqgi9a35sis943qvpgl9h"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff rsync nbperf rpcgen + install + mandoc + groff + rsync + nbperf + rpcgen ]; # The makefiles define INCSDIR per subdirectory, so we have to set diff --git a/pkgs/by-name/ne/netbsd/pkgs/install/package.nix b/pkgs/by-name/ne/netbsd/pkgs/install/package.nix index 991517a..69b0c07 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/install/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/install/package.nix @@ -1,10 +1,16 @@ -{ mkDerivation -, writeShellScript -, mtree, make -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, mandoc, groff, rsync -, compatIfNeeded, fts +{ + mkDerivation, + writeShellScript, + mtree, + make, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + mandoc, + groff, + rsync, + compatIfNeeded, + fts, }: @@ -18,32 +24,39 @@ let @out@/bin/xinstall "$@" ''; in - mkDerivation { - path = "usr.bin/xinstall"; - version = "9.2"; - sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj"; - extraPaths = [ mtree.src make.src ]; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - mandoc groff rsync - ]; - skipIncludesPhase = true; - buildInputs = compatIfNeeded - # fts header is needed. glibc already has this header, but musl doesn't, - # so make sure pkgsMusl.netbsd.install still builds in case you want to - # remove it! - ++ [ fts ]; - installPhase = '' - runHook preInstall +mkDerivation { + path = "usr.bin/xinstall"; + version = "9.2"; + sha256 = "1f6pbz3qv1qcrchdxif8p5lbmnwl8b9nq615hsd3cyl4avd5bfqj"; + extraPaths = [ + mtree.src + make.src + ]; + nativeBuildInputs = [ + bsdSetupHook + netbsdSetupHook + makeMinimal + mandoc + groff + rsync + ]; + skipIncludesPhase = true; + buildInputs = + compatIfNeeded + # fts header is needed. glibc already has this header, but musl doesn't, + # so make sure pkgsMusl.netbsd.install still builds in case you want to + # remove it! + ++ [ fts ]; + installPhase = '' + runHook preInstall - install -D install.1 $out/share/man/man1/install.1 - install -D xinstall $out/bin/xinstall - install -D -m 0550 ${binstall} $out/bin/binstall - substituteInPlace $out/bin/binstall --subst-var out - ln -s $out/bin/binstall $out/bin/install + install -D install.1 $out/share/man/man1/install.1 + install -D xinstall $out/bin/xinstall + install -D -m 0550 ${binstall} $out/bin/binstall + substituteInPlace $out/bin/binstall --subst-var out + ln -s $out/bin/binstall $out/bin/install - runHook postInstall - ''; - setupHook = ./install-setup-hook.sh; - } + runHook postInstall + ''; + setupHook = ./install-setup-hook.sh; +} diff --git a/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix b/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix index 1496ad6..a350e81 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/ld_elf_so.nix @@ -1,11 +1,12 @@ -{ lib -, mkDerivation -, libc -, defaultMakeFlags +{ + lib, + mkDerivation, + libc, + defaultMakeFlags, }: mkDerivation { - path = "libexec/ld.elf_so"; + path = "libexec/ld.elf_so"; version = "9.2"; sha256 = "0ia9mqzdljly0vqfwflm5mzz55k7qsr4rw2bzhivky6k30vgirqa"; meta.platforms = lib.platforms.netbsd; @@ -13,6 +14,9 @@ mkDerivation { # Hack to prevent a symlink being installed here for compatibility. SHLINKINSTALLDIR = "/usr/libexec"; USE_FORT = "yes"; - makeFlags = defaultMakeFlags ++ [ "BINDIR=$(out)/libexec" "CLIBOBJ=${libc}/lib" ]; + makeFlags = defaultMakeFlags ++ [ + "BINDIR=$(out)/libexec" + "CLIBOBJ=${libc}/lib" + ]; extraPaths = [ libc.src ] ++ libc.extraPaths; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/libc.nix b/pkgs/by-name/ne/netbsd/pkgs/libc.nix index ebc01a1..d755e4b 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libc.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libc.nix @@ -1,14 +1,27 @@ -{ lib -, mkDerivation -, defaultMakeFlags -, _mainLibcExtraPaths -, fetchNetBSD -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, flex -, byacc, genassym, gencat, lorder, tsort, statHook, rsync, rpcgen -, csu, headers -, librt +{ + lib, + mkDerivation, + defaultMakeFlags, + _mainLibcExtraPaths, + fetchNetBSD, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + flex, + byacc, + genassym, + gencat, + lorder, + tsort, + statHook, + rsync, + rpcgen, + csu, + headers, + librt, }: mkDerivation { @@ -21,18 +34,32 @@ mkDerivation { (fetchNetBSD "external/bsd/jemalloc" "9.2" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb") ]; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff flex - byacc genassym gencat lorder tsort statHook rsync rpcgen + install + mandoc + groff + flex + byacc + genassym + gencat + lorder + tsort + statHook + rsync + rpcgen + ]; + buildInputs = [ + headers + csu ]; - buildInputs = [ headers csu ]; env.NIX_CFLAGS_COMPILE = "-B${csu}/lib -fcommon"; meta.platforms = lib.platforms.netbsd; SHLIBINSTALLDIR = "$(out)/lib"; MKPICINSTALL = "yes"; NLSDIR = "$(out)/share/nls"; - makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/var/db"]; + makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/var/db" ]; postInstall = '' pushd ${headers} find . -type d -exec mkdir -p $out/\{} \; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix b/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix index 2409879..5072821 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libcurses.nix @@ -1,7 +1,10 @@ -{ lib, mkDerivation, stdenv -, libterminfo -, compatIfNeeded -, defaultMakeFlags +{ + lib, + mkDerivation, + stdenv, + libterminfo, + compatIfNeeded, + defaultMakeFlags, }: mkDerivation { @@ -9,11 +12,14 @@ mkDerivation { version = "9.2"; sha256 = "0pd0dggl3w4bv5i5h0s1wrc8hr66n4hkv3zlklarwfdhc692fqal"; buildInputs = [ libterminfo ]; - env.NIX_CFLAGS_COMPILE = toString ([ - "-D__scanflike(a,b)=" - "-D__va_list=va_list" - "-D__warn_references(a,b)=" - ] ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)="); + env.NIX_CFLAGS_COMPILE = toString ( + [ + "-D__scanflike(a,b)=" + "-D__va_list=va_list" + "-D__warn_references(a,b)=" + ] + ++ lib.optional stdenv.isDarwin "-D__strong_alias(a,b)=" + ); propagatedBuildInputs = compatIfNeeded; MKDOC = "no"; # missing vfontedpr makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ]; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libedit.nix b/pkgs/by-name/ne/netbsd/pkgs/libedit.nix index eb734f3..ee1e7bf 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libedit.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libedit.nix @@ -1,26 +1,32 @@ -{ lib, mkDerivation -, libterminfo, libcurses -, compatIfNeeded -, defaultMakeFlags +{ + lib, + mkDerivation, + libterminfo, + libcurses, + compatIfNeeded, + defaultMakeFlags, }: mkDerivation { - path = "lib/libedit"; - version = "9.2"; - sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj"; - buildInputs = [ libterminfo libcurses ]; - propagatedBuildInputs = compatIfNeeded; - SHLIBINSTALLDIR = "$(out)/lib"; - makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ]; - postPatch = '' - sed -i '1i #undef bool_t' $COMPONENT_PATH/el.h - substituteInPlace $COMPONENT_PATH/config.h \ - --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" "" - substituteInPlace $COMPONENT_PATH/readline/Makefile --replace /usr/include "$out/include" - ''; - env.NIX_CFLAGS_COMPILE = toString [ - "-D__noinline=" - "-D__scanflike(a,b)=" - "-D__va_list=va_list" - ]; - } + path = "lib/libedit"; + version = "9.2"; + sha256 = "1wqhngraxwqk4jgrf5f18jy195yrp7c06n1gf31pbplq79mg1bcj"; + buildInputs = [ + libterminfo + libcurses + ]; + propagatedBuildInputs = compatIfNeeded; + SHLIBINSTALLDIR = "$(out)/lib"; + makeFlags = defaultMakeFlags ++ [ "LIBDO.terminfo=${libterminfo}/lib" ]; + postPatch = '' + sed -i '1i #undef bool_t' $COMPONENT_PATH/el.h + substituteInPlace $COMPONENT_PATH/config.h \ + --replace "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" "" + substituteInPlace $COMPONENT_PATH/readline/Makefile --replace /usr/include "$out/include" + ''; + env.NIX_CFLAGS_COMPILE = toString [ + "-D__noinline=" + "-D__scanflike(a,b)=" + "-D__va_list=va_list" + ]; +} diff --git a/pkgs/by-name/ne/netbsd/pkgs/libm.nix b/pkgs/by-name/ne/netbsd/pkgs/libm.nix index 8699008..f36e97f 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libm.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libm.nix @@ -1,4 +1,8 @@ -{ lib, mkDerivation, sys }: +{ + lib, + mkDerivation, + sys, +}: mkDerivation { path = "lib/libm"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpci.nix b/pkgs/by-name/ne/netbsd/pkgs/libpci.nix index 21ca0f6..b0be4a2 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libpci.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libpci.nix @@ -1,4 +1,8 @@ -{ lib, mkDerivation, sys }: +{ + lib, + mkDerivation, + sys, +}: mkDerivation { pname = "libpci"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix b/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix index 485a128..d8ea7c5 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libpthread/base.nix @@ -3,4 +3,3 @@ version = "9.2"; sha256 = "0mlmc31k509dwfmx5s2x010wxjc44mr6y0cbmk30cfipqh8c962h"; } - diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpthread/headers.nix b/pkgs/by-name/ne/netbsd/pkgs/libpthread/headers.nix index 3896562..c3cc899 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/headers.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libpthread/headers.nix @@ -1,9 +1,12 @@ { lib, mkDerivation }: -mkDerivation (import ./base.nix // { - pname = "libpthread-headers"; - installPhase = "includesPhase"; - dontBuild = true; - noCC = true; - meta.platforms = lib.platforms.netbsd; -}) +mkDerivation ( + import ./base.nix + // { + pname = "libpthread-headers"; + installPhase = "includesPhase"; + dontBuild = true; + noCC = true; + meta.platforms = lib.platforms.netbsd; + } +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/libpthread/package.nix b/pkgs/by-name/ne/netbsd/pkgs/libpthread/package.nix index c2a0d40..88d392e 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libpthread/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libpthread/package.nix @@ -1,15 +1,28 @@ -{ lib, mkDerivation -, headers -, common, libc, librt, sys +{ + lib, + mkDerivation, + headers, + common, + libc, + librt, + sys, }: -mkDerivation (import ./base.nix // { - pname = "libpthread"; - installPhase = null; - noCC = false; - dontBuild = false; - buildInputs = [ headers ]; - SHLIBINSTALLDIR = "$(out)/lib"; - extraPaths = [ common libc.src librt.src sys.src ]; - meta.platforms = lib.platforms.netbsd; -}) +mkDerivation ( + import ./base.nix + // { + pname = "libpthread"; + installPhase = null; + noCC = false; + dontBuild = false; + buildInputs = [ headers ]; + SHLIBINSTALLDIR = "$(out)/lib"; + extraPaths = [ + common + libc.src + librt.src + sys.src + ]; + meta.platforms = lib.platforms.netbsd; + } +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix b/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix index 2427592..24bc4f2 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libresolv.nix @@ -1,4 +1,8 @@ -{ lib, mkDerivation, libc }: +{ + lib, + mkDerivation, + libc, +}: mkDerivation { path = "lib/libresolv"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix b/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix index 8752433..8d757a8 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/librpcsvc.nix @@ -1,9 +1,15 @@ -{ lib -, mkDerivation -, defaultMakeFlags -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, tsort, lorder, rpcgen, statHook +{ + lib, + mkDerivation, + defaultMakeFlags, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + rpcgen, + statHook, }: mkDerivation { @@ -13,9 +19,13 @@ mkDerivation { makeFlags = defaultMakeFlags ++ [ "INCSDIR=$(out)/include/rpcsvc" ]; meta.platforms = lib.platforms.netbsd; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install tsort lorder rpcgen statHook + install + tsort + lorder + rpcgen + statHook ]; } - diff --git a/pkgs/by-name/ne/netbsd/pkgs/librt.nix b/pkgs/by-name/ne/netbsd/pkgs/librt.nix index 2ffe078..fa02299 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/librt.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/librt.nix @@ -1,4 +1,9 @@ -{ lib, mkDerivation, libc, headers }: +{ + lib, + mkDerivation, + libc, + headers, +}: mkDerivation { path = "lib/librt"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix b/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix index b9268cc..6ac573d 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libterminfo.nix @@ -1,8 +1,18 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, mandoc, statHook, nbperf, tic, rsync -, compatIfNeeded -, fetchNetBSD +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + mandoc, + statHook, + nbperf, + tic, + rsync, + compatIfNeeded, + fetchNetBSD, }: mkDerivation { @@ -10,8 +20,17 @@ mkDerivation { version = "9.2"; sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal install tsort lorder mandoc statHook nbperf tic rsync + bsdSetupHook + netbsdSetupHook + makeMinimal + install + tsort + lorder + mandoc + statHook + nbperf + tic + rsync ]; buildInputs = compatIfNeeded; SHLIBINSTALLDIR = "$(out)/lib"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/libutil.nix b/pkgs/by-name/ne/netbsd/pkgs/libutil.nix index 4aaf8f0..fdc57df 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/libutil.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/libutil.nix @@ -1,20 +1,41 @@ -{ mkDerivation -, common, libc, sys -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, byacc, install, tsort, lorder, mandoc, statHook, rsync -, headers +{ + mkDerivation, + common, + libc, + sys, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + byacc, + install, + tsort, + lorder, + mandoc, + statHook, + rsync, + headers, }: mkDerivation { path = "lib/libutil"; version = "9.2"; sha256 = "02gm5a5zhh8qp5r5q5r7x8x6x50ir1i0ncgsnfwh1vnrz6mxbq7z"; - extraPaths = [ common libc.src sys.src ]; + extraPaths = [ + common + libc.src + sys.src + ]; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - byacc install tsort lorder mandoc statHook rsync + byacc + install + tsort + lorder + mandoc + statHook + rsync ]; buildInputs = [ headers ]; SHLIBINSTALLDIR = "$(out)/lib"; diff --git a/pkgs/by-name/ne/netbsd/pkgs/lorder.nix b/pkgs/by-name/ne/netbsd/pkgs/lorder.nix index d310960..0b99a79 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/lorder.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/lorder.nix @@ -1,7 +1,12 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + rsync, }: mkDerivation { @@ -9,8 +14,12 @@ mkDerivation { version = "9.2"; sha256 = "0rjf9blihhm0n699vr2bg88m4yjhkbxh6fxliaay3wxkgnydjwn2"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff rsync + install + mandoc + groff + rsync ]; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/make.nix b/pkgs/by-name/ne/netbsd/pkgs/make.nix index dcd80ef..381e309 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/make.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/make.nix @@ -1,56 +1,63 @@ -{ lib, mkDerivation, fetchNetBSD, stdenv }: +{ + lib, + mkDerivation, + fetchNetBSD, + stdenv, +}: mkDerivation { path = "usr.bin/make"; sha256 = "0vi73yicbmbp522qzqvd979cx6zm5jakhy77xh73c1kygf8klccs"; version = "9.2"; - postPatch = '' - substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \ - --replace '-o ''${DOCOWN}' "" \ - --replace '-g ''${DOCGRP}' "" - for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do - substituteInPlace $mk \ - --replace '-o ''${BINOWN}' "" \ - --replace '-g ''${BINGRP}' "" - done - substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \ - --replace '-o ''${KMODULEOWN}' "" \ - --replace '-g ''${KMODULEGRP}' "" - substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \ - --replace '-o ''${LIBOWN}' "" \ - --replace '-g ''${LIBGRP}' "" \ - --replace '-o ''${DEBUGOWN}' "" \ - --replace '-g ''${DEBUGGRP}' "" - substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \ - --replace '-o ''${LIBOWN}' "" \ - --replace '-g ''${LIBGRP}' "" - substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \ - --replace '-o ''${MANOWN}' "" \ - --replace '-g ''${MANGRP}' "" - substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \ - --replace '-o ''${NLSOWN}' "" \ - --replace '-g ''${NLSGRP}' "" - substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \ - --replace '-o ''${BINOWN}' "" \ - --replace '-g ''${BINGRP}' "" \ - --replace '-o ''${RUMPBINOWN}' "" \ - --replace '-g ''${RUMPBINGRP}' "" \ - --replace '-o ''${DEBUGOWN}' "" \ - --replace '-g ''${DEBUGGRP}' "" + postPatch = + '' + substituteInPlace $BSDSRCDIR/share/mk/bsd.doc.mk \ + --replace '-o ''${DOCOWN}' "" \ + --replace '-g ''${DOCGRP}' "" + for mk in $BSDSRCDIR/share/mk/bsd.inc.mk $BSDSRCDIR/share/mk/bsd.kinc.mk; do + substituteInPlace $mk \ + --replace '-o ''${BINOWN}' "" \ + --replace '-g ''${BINGRP}' "" + done + substituteInPlace $BSDSRCDIR/share/mk/bsd.kmodule.mk \ + --replace '-o ''${KMODULEOWN}' "" \ + --replace '-g ''${KMODULEGRP}' "" + substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \ + --replace '-o ''${LIBOWN}' "" \ + --replace '-g ''${LIBGRP}' "" \ + --replace '-o ''${DEBUGOWN}' "" \ + --replace '-g ''${DEBUGGRP}' "" + substituteInPlace $BSDSRCDIR/share/mk/bsd.lua.mk \ + --replace '-o ''${LIBOWN}' "" \ + --replace '-g ''${LIBGRP}' "" + substituteInPlace $BSDSRCDIR/share/mk/bsd.man.mk \ + --replace '-o ''${MANOWN}' "" \ + --replace '-g ''${MANGRP}' "" + substituteInPlace $BSDSRCDIR/share/mk/bsd.nls.mk \ + --replace '-o ''${NLSOWN}' "" \ + --replace '-g ''${NLSGRP}' "" + substituteInPlace $BSDSRCDIR/share/mk/bsd.prog.mk \ + --replace '-o ''${BINOWN}' "" \ + --replace '-g ''${BINGRP}' "" \ + --replace '-o ''${RUMPBINOWN}' "" \ + --replace '-g ''${RUMPBINGRP}' "" \ + --replace '-o ''${DEBUGOWN}' "" \ + --replace '-g ''${DEBUGGRP}' "" - # make needs this to pick up our sys make files - export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\"" + # make needs this to pick up our sys make files + export NIX_CFLAGS_COMPILE+=" -D_PATH_DEFSYSPATH=\"$out/share/mk\"" - substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \ - --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB=' - substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \ - --replace /bin/rm rm - '' + lib.optionalString stdenv.isDarwin '' - substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \ - --replace '-Wl,--fatal-warnings' "" \ - --replace '-Wl,--warn-shared-textrel' "" - ''; + substituteInPlace $BSDSRCDIR/share/mk/bsd.lib.mk \ + --replace '_INSTRANLIB=''${empty(PRESERVE):?-a "''${RANLIB} -t":}' '_INSTRANLIB=' + substituteInPlace $BSDSRCDIR/share/mk/bsd.kinc.mk \ + --replace /bin/rm rm + '' + + lib.optionalString stdenv.isDarwin '' + substituteInPlace $BSDSRCDIR/share/mk/bsd.sys.mk \ + --replace '-Wl,--fatal-warnings' "" \ + --replace '-Wl,--warn-shared-textrel' "" + ''; postInstall = '' make -C $BSDSRCDIR/share/mk FILESDIR=$out/share/mk install ''; diff --git a/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix b/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix index 18655b3..585c72b 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/makeMinimal.nix @@ -1,6 +1,9 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook, rsync -, make +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + rsync, + make, }: mkDerivation { @@ -8,9 +11,11 @@ mkDerivation { sha256 = "0fh0nrnk18m613m5blrliq2aydciv51qhc0ihsj4k63incwbk90n"; version = "9.2"; - buildInputs = []; + buildInputs = [ ]; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook rsync + bsdSetupHook + netbsdSetupHook + rsync ]; skipIncludesPhase = true; diff --git a/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix b/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix index 82e8889..3b8137f 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/mkDerivation.nix @@ -1,82 +1,114 @@ -{ lib -, stdenvNoCC, stdenv -, fetchNetBSD -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, tsort, lorder -, mandoc, groff, statHook, rsync -, compatIfNeeded -, defaultMakeFlags +{ + lib, + stdenvNoCC, + stdenv, + fetchNetBSD, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + mandoc, + groff, + statHook, + rsync, + compatIfNeeded, + defaultMakeFlags, }: -lib.makeOverridable (attrs: let - stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv; -in stdenv'.mkDerivation ({ - pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd"; - inherit (attrs) version; - src = fetchNetBSD attrs.path attrs.version attrs.sha256; +lib.makeOverridable ( + attrs: + let + stdenv' = if attrs.noCC or false then stdenvNoCC else stdenv; + in + stdenv'.mkDerivation ( + { + pname = "${attrs.pname or (baseNameOf attrs.path)}-netbsd"; + inherit (attrs) version; + src = fetchNetBSD attrs.path attrs.version attrs.sha256; - extraPaths = [ ]; + extraPaths = [ ]; - nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal - install tsort lorder mandoc groff statHook rsync - ]; - buildInputs = compatIfNeeded; + nativeBuildInputs = [ + bsdSetupHook + netbsdSetupHook + makeMinimal + install + tsort + lorder + mandoc + groff + statHook + rsync + ]; + buildInputs = compatIfNeeded; - HOST_SH = stdenv'.shell; + HOST_SH = stdenv'.shell; - MACHINE_ARCH = { - i486 = "i386"; - i586 = "i386"; - i686 = "i386"; - }.${stdenv'.hostPlatform.parsed.cpu.name} - or stdenv'.hostPlatform.parsed.cpu.name; + MACHINE_ARCH = + { + i486 = "i386"; + i586 = "i386"; + i686 = "i386"; + } + .${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name; - MACHINE = { - x86_64 = "amd64"; - aarch64 = "evbarm64"; - i486 = "i386"; - i586 = "i386"; - i686 = "i386"; - }.${stdenv'.hostPlatform.parsed.cpu.name} - or stdenv'.hostPlatform.parsed.cpu.name; + MACHINE = + { + x86_64 = "amd64"; + aarch64 = "evbarm64"; + i486 = "i386"; + i586 = "i386"; + i686 = "i386"; + } + .${stdenv'.hostPlatform.parsed.cpu.name} or stdenv'.hostPlatform.parsed.cpu.name; - COMPONENT_PATH = attrs.path; + COMPONENT_PATH = attrs.path; - makeFlags = defaultMakeFlags; + makeFlags = defaultMakeFlags; - strictDeps = true; + strictDeps = true; - meta = with lib; { - maintainers = with maintainers; [ matthewbauer qyliss ]; - platforms = platforms.unix; - license = licenses.bsd2; - }; + meta = with lib; { + maintainers = with maintainers; [ + matthewbauer + qyliss + ]; + platforms = platforms.unix; + license = licenses.bsd2; + }; -} // lib.optionalAttrs stdenv'.hasCC { - # TODO should CC wrapper set this? - CPP = "${stdenv'.cc.targetPrefix}cpp"; -} // lib.optionalAttrs stdenv'.isDarwin { - MKRELRO = "no"; -} // lib.optionalAttrs (stdenv'.cc.isClang or false) { - HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc); -} // lib.optionalAttrs (stdenv'.cc.isGNU or false) { - HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc); -} // lib.optionalAttrs (stdenv'.isx86_32) { - USE_SSP = "no"; -} // lib.optionalAttrs (attrs.headersOnly or false) { - installPhase = "includesPhase"; - dontBuild = true; -} // attrs // { - # Files that use NetBSD-specific macros need to have nbtool_config.h - # included ahead of them on non-NetBSD platforms. - postPatch = lib.optionalString (!stdenv'.hostPlatform.isNetBSD) '' - set +e - grep -Zlr "^__RCSID - ^__BEGIN_DECLS" $COMPONENT_PATH | xargs -0r grep -FLZ nbtool_config.h | - xargs -0tr sed -i '0,/^#/s//#include \n\0/' - set -e - '' + attrs.postPatch or ""; -})) + } + // lib.optionalAttrs stdenv'.hasCC { + # TODO should CC wrapper set this? + CPP = "${stdenv'.cc.targetPrefix}cpp"; + } + // lib.optionalAttrs stdenv'.isDarwin { MKRELRO = "no"; } + // lib.optionalAttrs (stdenv'.cc.isClang or false) { + HAVE_LLVM = lib.versions.major (lib.getVersion stdenv'.cc.cc); + } + // lib.optionalAttrs (stdenv'.cc.isGNU or false) { + HAVE_GCC = lib.versions.major (lib.getVersion stdenv'.cc.cc); + } + // lib.optionalAttrs (stdenv'.isx86_32) { USE_SSP = "no"; } + // lib.optionalAttrs (attrs.headersOnly or false) { + installPhase = "includesPhase"; + dontBuild = true; + } + // attrs + // { + # Files that use NetBSD-specific macros need to have nbtool_config.h + # included ahead of them on non-NetBSD platforms. + postPatch = + lib.optionalString (!stdenv'.hostPlatform.isNetBSD) '' + set +e + grep -Zlr "^__RCSID + ^__BEGIN_DECLS" $COMPONENT_PATH | xargs -0r grep -FLZ nbtool_config.h | + xargs -0tr sed -i '0,/^#/s//#include \n\0/' + set -e + '' + + attrs.postPatch or ""; + } + ) +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix b/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix index 02ce7cf..a23c5dd 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/nbperf.nix @@ -5,4 +5,3 @@ mkDerivation { version = "9.2"; sha256 = "1nxc302vgmjhm3yqdivqyfzslrg0vjpbss44s74rcryrl19mma9r"; } - diff --git a/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/package.nix b/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/package.nix index e80571f..3136852 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/netbsdSetupHook/package.nix @@ -1,5 +1,3 @@ { makeSetupHook }: -makeSetupHook { - name = "netbsd-setup-hook"; - } ./setup-hook.sh +makeSetupHook { name = "netbsd-setup-hook"; } ./setup-hook.sh diff --git a/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix b/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix index 78186f5..e38c53a 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/stat/hook.nix @@ -1,4 +1,8 @@ -{ makeSetupHook, writeText, stat }: +{ + makeSetupHook, + writeText, + stat, +}: # stat isn't in POSIX, and NetBSD stat supports a completely # different range of flags than GNU stat, so including it in PATH @@ -6,9 +10,8 @@ # NetBSD's build system and NetBSD stat without including it in # PATH. -makeSetupHook { - name = "netbsd-stat-hook"; -} (writeText "netbsd-stat-hook-impl" '' - makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat) -'') - +makeSetupHook { name = "netbsd-stat-hook"; } ( + writeText "netbsd-stat-hook-impl" '' + makeFlagsArray+=(TOOL_STAT=${stat}/bin/stat) + '' +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix b/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix index fa4d5cb..397b1f5 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/stat/package.nix @@ -1,7 +1,12 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + rsync, }: # Don't add this to nativeBuildInputs directly. @@ -12,8 +17,12 @@ mkDerivation { version = "9.2"; sha256 = "18nqwlndfc34qbbgqx5nffil37jfq9aw663ippasfxd2hlyc106x"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff rsync + install + mandoc + groff + rsync ]; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/base.nix b/pkgs/by-name/ne/netbsd/pkgs/sys/base.nix index ba458ef..e3715c6 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/base.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/sys/base.nix @@ -1,9 +1,20 @@ -{ lib, mkDerivation -, include -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym -, defaultMakeFlags -, common +{ + lib, + mkDerivation, + include, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + statHook, + rsync, + uudecode, + config, + genassym, + defaultMakeFlags, + common, }: { path = "sys"; @@ -29,23 +40,34 @@ '' substituteInPlace sys/arch/i386/stand/efiboot/Makefile.efiboot \ --replace "-nocombreloc" "-z nocombreloc" - '' + - # multiple header dirs, see above - include.postPatch; + '' + + + # multiple header dirs, see above + include.postPatch; CONFIG = "GENERIC"; propagatedBuildInputs = [ include ]; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook - makeMinimal install tsort lorder statHook rsync uudecode config genassym + bsdSetupHook + netbsdSetupHook + makeMinimal + install + tsort + lorder + statHook + rsync + uudecode + config + genassym ]; - postConfigure = '' - pushd arch/$MACHINE/conf - config $CONFIG - popd - '' + postConfigure = + '' + pushd arch/$MACHINE/conf + config $CONFIG + popd + '' # multiple header dirs, see above + include.postConfigure; diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix b/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix index a3f20d7..2df35ef 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/sys/headers.nix @@ -1,21 +1,49 @@ -{ lib, mkDerivation -, include -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym -, defaultMakeFlags -, common +{ + lib, + mkDerivation, + include, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + statHook, + rsync, + uudecode, + config, + genassym, + defaultMakeFlags, + common, }: let base = import ./base.nix { inherit - lib mkDerivation include bsdSetupHook netbsdSetupHook makeMinimal install - tsort lorder statHook rsync uudecode config genassym defaultMakeFlags - common; + lib + mkDerivation + include + bsdSetupHook + netbsdSetupHook + makeMinimal + install + tsort + lorder + statHook + rsync + uudecode + config + genassym + defaultMakeFlags + common + ; }; in - mkDerivation (base // { +mkDerivation ( + base + // { pname = "sys-headers"; installPhase = "includesPhase"; dontBuild = true; noCC = true; - }) + } +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix b/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix index 87031a5..c8e6eda 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/sys/package.nix @@ -1,21 +1,49 @@ -{ lib, mkDerivation -, include -, bsdSetupHook, netbsdSetupHook -, makeMinimal, install, tsort, lorder, statHook, rsync, uudecode, config, genassym -, defaultMakeFlags -, common +{ + lib, + mkDerivation, + include, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + tsort, + lorder, + statHook, + rsync, + uudecode, + config, + genassym, + defaultMakeFlags, + common, }: let base = import ./base.nix { inherit - lib mkDerivation include bsdSetupHook netbsdSetupHook makeMinimal install - tsort lorder statHook rsync uudecode config genassym defaultMakeFlags - common; + lib + mkDerivation + include + bsdSetupHook + netbsdSetupHook + makeMinimal + install + tsort + lorder + statHook + rsync + uudecode + config + genassym + defaultMakeFlags + common + ; }; in - mkDerivation (base // { +mkDerivation ( + base + // { pname = "sys"; installPhase = null; noCC = false; dontBuild = false; - }) + } +) diff --git a/pkgs/by-name/ne/netbsd/pkgs/tic.nix b/pkgs/by-name/ne/netbsd/pkgs/tic.nix index 2a7e364..e090065 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/tic.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/tic.nix @@ -1,11 +1,17 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, nbperf, rsync -, compatIfNeeded -, defaultMakeFlags -, libterminfo -, fetchNetBSD +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + nbperf, + rsync, + compatIfNeeded, + defaultMakeFlags, + libterminfo, + fetchNetBSD, }: mkDerivation { @@ -15,9 +21,14 @@ mkDerivation { HOSTPROG = "tic"; buildInputs = compatIfNeeded; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff nbperf rsync + install + mandoc + groff + nbperf + rsync ]; makeFlags = defaultMakeFlags ++ [ "TOOLDIR=$(out)" ]; extraPaths = [ diff --git a/pkgs/by-name/ne/netbsd/pkgs/tsort.nix b/pkgs/by-name/ne/netbsd/pkgs/tsort.nix index 334eccc..9200bc5 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/tsort.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/tsort.nix @@ -1,7 +1,12 @@ -{ mkDerivation -, bsdSetupHook, netbsdSetupHook -, makeMinimal -, install, mandoc, groff, rsync +{ + mkDerivation, + bsdSetupHook, + netbsdSetupHook, + makeMinimal, + install, + mandoc, + groff, + rsync, }: mkDerivation { @@ -9,8 +14,12 @@ mkDerivation { version = "9.2"; sha256 = "1dqvf9gin29nnq3c4byxc7lfd062pg7m84843zdy6n0z63hnnwiq"; nativeBuildInputs = [ - bsdSetupHook netbsdSetupHook + bsdSetupHook + netbsdSetupHook makeMinimal - install mandoc groff rsync + install + mandoc + groff + rsync ]; } diff --git a/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix b/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix index dac9674..7592db3 100644 --- a/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix +++ b/pkgs/by-name/ne/netbsd/pkgs/uudecode.nix @@ -1,4 +1,8 @@ -{ lib, mkDerivation, stdenv }: +{ + lib, + mkDerivation, + stdenv, +}: mkDerivation { path = "usr.bin/uudecode"; @@ -7,4 +11,3 @@ mkDerivation { env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isLinux "-DNO_BASE64"; NIX_LDFLAGS = lib.optional stdenv.isDarwin "-lresolv"; } - diff --git a/pkgs/by-name/ne/netpbm/default.nix b/pkgs/by-name/ne/netpbm/default.nix index e7cc5a6..748d7db 100644 --- a/pkgs/by-name/ne/netpbm/default.nix +++ b/pkgs/by-name/ne/netpbm/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, fetchsvn -, pkg-config -, libjpeg -, libpng -, jbigkit -, flex -, zlib -, perl -, libxml2 -, makeWrapper -, libtiff -, enableX11 ? false -, libX11 -, buildPackages +{ + lib, + stdenv, + fetchsvn, + pkg-config, + libjpeg, + libpng, + jbigkit, + flex, + zlib, + perl, + libxml2, + makeWrapper, + libtiff, + enableX11 ? false, + libX11, + buildPackages, }: stdenv.mkDerivation { @@ -22,7 +23,11 @@ stdenv.mkDerivation { pname = "netpbm"; version = "11.6.0"; - outputs = [ "bin" "out" "dev" ]; + outputs = [ + "bin" + "out" + "dev" + ]; src = fetchsvn { url = "https://svn.code.sf.net/p/netpbm/code/advanced"; @@ -46,7 +51,6 @@ stdenv.mkDerivation { jbigkit ] ++ lib.optional enableX11 libX11; - strictDeps = true; enableParallelBuilding = true; @@ -60,40 +64,43 @@ stdenv.mkDerivation { --replace '/sharedlink' '/lib' ''; - configurePhase = '' - runHook preConfigure + configurePhase = + '' + runHook preConfigure - cp config.mk.in config.mk + cp config.mk.in config.mk - # Disable building static library - echo "STATICLIB_TOO = N" >> config.mk + # Disable building static library + echo "STATICLIB_TOO = N" >> config.mk - # Enable cross-compilation - echo 'AR = ${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar' >> config.mk - echo 'CC = ${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc' >> config.mk - echo 'CC_FOR_BUILD = ${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc' >> config.mk - echo 'LD_FOR_BUILD = $(CC_FOR_BUILD)' >> config.mk - echo 'PKG_CONFIG = ${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config' >> config.mk - echo 'RANLIB = ${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib' >> config.mk + # Enable cross-compilation + echo 'AR = ${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar' >> config.mk + echo 'CC = ${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc' >> config.mk + echo 'CC_FOR_BUILD = ${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc' >> config.mk + echo 'LD_FOR_BUILD = $(CC_FOR_BUILD)' >> config.mk + echo 'PKG_CONFIG = ${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config' >> config.mk + echo 'RANLIB = ${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib' >> config.mk - # Use libraries from Nixpkgs - echo "TIFFLIB = libtiff.so" >> config.mk - echo "TIFFLIB_NEEDS_JPEG = N" >> config.mk - echo "TIFFLIB_NEEDS_Z = N" >> config.mk - echo "JPEGLIB = libjpeg.so" >> config.mk - echo "JBIGLIB = libjbig.a" >> config.mk - # Insecure - echo "JASPERLIB = NONE" >> config.mk + # Use libraries from Nixpkgs + echo "TIFFLIB = libtiff.so" >> config.mk + echo "TIFFLIB_NEEDS_JPEG = N" >> config.mk + echo "TIFFLIB_NEEDS_Z = N" >> config.mk + echo "JPEGLIB = libjpeg.so" >> config.mk + echo "JBIGLIB = libjbig.a" >> config.mk + # Insecure + echo "JASPERLIB = NONE" >> config.mk - # Fix path to rgb.txt - echo "RGB_DB_PATH = $out/share/netpbm/misc/rgb.txt" >> config.mk - '' + lib.optionalString stdenv.isDarwin '' - echo "LDSHLIB=-dynamiclib -install_name $out/lib/libnetpbm.\$(MAJ).dylib" >> config.mk - echo "NETPBMLIBTYPE = dylib" >> config.mk - echo "NETPBMLIBSUFFIX = dylib" >> config.mk - '' + '' - runHook postConfigure - ''; + # Fix path to rgb.txt + echo "RGB_DB_PATH = $out/share/netpbm/misc/rgb.txt" >> config.mk + '' + + lib.optionalString stdenv.isDarwin '' + echo "LDSHLIB=-dynamiclib -install_name $out/lib/libnetpbm.\$(MAJ).dylib" >> config.mk + echo "NETPBMLIBTYPE = dylib" >> config.mk + echo "NETPBMLIBSUFFIX = dylib" >> config.mk + '' + + '' + runHook postConfigure + ''; env = lib.optionalAttrs stdenv.cc.isClang { NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration"; diff --git a/pkgs/by-name/ng/nghttp2/default.nix b/pkgs/by-name/ng/nghttp2/default.nix index 3abd7b2..111d5b5 100644 --- a/pkgs/by-name/ng/nghttp2/default.nix +++ b/pkgs/by-name/ng/nghttp2/default.nix @@ -1,20 +1,34 @@ -{ lib -, stdenv -, fetchurl -, installShellFiles -, pkg-config +{ + lib, + stdenv, + fetchurl, + installShellFiles, + pkg-config, -# Optional dependencies -, enableApp ? with stdenv.hostPlatform; !isWindows && !isStatic -, c-aresMinimal, libev, openssl, zlib -, enableGetAssets ? false, libxml2 -, enableHpack ? false, jansson -, enableHttp3 ? false, ngtcp2, nghttp3, quictls -, enableJemalloc ? false, jemalloc -, enablePython ? false, python3, ncurses + # Optional dependencies + enableApp ? with stdenv.hostPlatform; !isWindows && !isStatic, + c-aresMinimal, + libev, + openssl, + zlib, + enableGetAssets ? false, + libxml2, + enableHpack ? false, + jansson, + enableHttp3 ? false, + ngtcp2, + nghttp3, + quictls, + enableJemalloc ? false, + jemalloc, + enablePython ? false, + python3, + ncurses, -# Unit tests ; we have to set TZDIR, which is a GNUism. -, enableTests ? stdenv.hostPlatform.isGnu, cunit, tzdata + # Unit tests ; we have to set TZDIR, which is a GNUism. + enableTests ? stdenv.hostPlatform.isGnu, + cunit, + tzdata, # for passthru.tests # downstream dependencies, for testing @@ -40,17 +54,31 @@ stdenv.mkDerivation rec { sha256 = "sha256-Toz37DLUxaQwlmJC1yA10lXNlHCodm1h7tegGQ3VRP0="; }; - outputs = [ "out" "dev" "lib" "doc" "man" ]; + outputs = [ + "out" + "dev" + "lib" + "doc" + "man" + ]; - nativeBuildInputs = [ pkg-config ] - ++ lib.optionals (enableApp) [ installShellFiles ]; + nativeBuildInputs = [ pkg-config ] ++ lib.optionals (enableApp) [ installShellFiles ]; - buildInputs = lib.optionals enableApp [ c-aresMinimal libev zlib ] + buildInputs = + lib.optionals enableApp [ + c-aresMinimal + libev + zlib + ] ++ lib.optionals (enableApp && !enableHttp3) [ openssl ] ++ lib.optionals (enableGetAssets) [ libxml2 ] ++ lib.optionals (enableHpack) [ jansson ] ++ lib.optionals (enableJemalloc) [ jemalloc ] - ++ lib.optionals (enableHttp3) [ ngtcp2 nghttp3 quictls ] + ++ lib.optionals (enableHttp3) [ + ngtcp2 + nghttp3 + quictls + ] ++ lib.optionals (enablePython) [ python3 ]; enableParallelBuilding = true; @@ -63,20 +91,27 @@ stdenv.mkDerivation rec { # Unit tests require CUnit and setting TZDIR environment variable doCheck = enableTests; - nativeCheckInputs = lib.optionals (enableTests) [ cunit tzdata ]; + nativeCheckInputs = lib.optionals (enableTests) [ + cunit + tzdata + ]; preCheck = lib.optionalString (enableTests) '' export TZDIR=${tzdata}/share/zoneinfo ''; - postInstall = lib.optionalString (enableApp) '' - installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx} - '' + lib.optionalString (!enableApp) '' - rm -r $out/bin - '' + lib.optionalString (enablePython) '' - patchShebangs $out/share/nghttp2 - '' + lib.optionalString (!enablePython) '' - rm -r $out/share - ''; + postInstall = + lib.optionalString (enableApp) '' + installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx} + '' + + lib.optionalString (!enableApp) '' + rm -r $out/bin + '' + + lib.optionalString (enablePython) '' + patchShebangs $out/share/nghttp2 + '' + + lib.optionalString (!enablePython) '' + rm -r $out/share + ''; # passthru.tests = { # inherit curl libsoup; diff --git a/pkgs/by-name/ng/nghttp2/packages.nix b/pkgs/by-name/ng/nghttp2/packages.nix index 25246e1..a93ac01 100644 --- a/pkgs/by-name/ng/nghttp2/packages.nix +++ b/pkgs/by-name/ng/nghttp2/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { nghttp2 = callPackage ./. { }; libnghttp2 = nghttp2.lib; } diff --git a/pkgs/by-name/ng/nghttp3/default.nix b/pkgs/by-name/ng/nghttp3/default.nix index 6bf25dc..1d4e384 100644 --- a/pkgs/by-name/ng/nghttp3/default.nix +++ b/pkgs/by-name/ng/nghttp3/default.nix @@ -1,6 +1,9 @@ -{ lib, stdenv, fetchFromGitHub -, cmake -, CoreServices +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + CoreServices, # for passthru.tests # , curlHTTP3 }: @@ -17,16 +20,16 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; nativeBuildInputs = [ cmake ]; - buildInputs = lib.optionals stdenv.isDarwin [ - CoreServices - ]; + buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ]; - cmakeFlags = [ - (lib.cmakeBool "ENABLE_STATIC_LIB" false) - ]; + cmakeFlags = [ (lib.cmakeBool "ENABLE_STATIC_LIB" false) ]; doCheck = true; diff --git a/pkgs/by-name/ng/nghttp3/packages.nix b/pkgs/by-name/ng/nghttp3/packages.nix index bb285bc..e9b607f 100644 --- a/pkgs/by-name/ng/nghttp3/packages.nix +++ b/pkgs/by-name/ng/nghttp3/packages.nix @@ -1,7 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { nghttp3 = callPackage ./. { inherit (darwin.apple_sdk.frameworks) CoreServices; }; } diff --git a/pkgs/by-name/ng/ngtcp2/default.nix b/pkgs/by-name/ng/ngtcp2/default.nix index c511d89..a7e7ab0 100644 --- a/pkgs/by-name/ng/ngtcp2/default.nix +++ b/pkgs/by-name/ng/ngtcp2/default.nix @@ -1,8 +1,15 @@ -{ lib, stdenv, fetchFromGitHub -, cmake -, brotli, libev, nghttp3, quictls -, CoreServices -, withJemalloc ? false, jemalloc +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + brotli, + libev, + nghttp3, + quictls, + CoreServices, + withJemalloc ? false, + jemalloc, # for passthru.tests # , curlHTTP3 }: @@ -19,7 +26,11 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; nativeBuildInputs = [ cmake ]; buildInputs = [ @@ -27,13 +38,9 @@ stdenv.mkDerivation rec { libev nghttp3 quictls - ] ++ lib.optionals stdenv.isDarwin [ - CoreServices - ] ++ lib.optional withJemalloc jemalloc; + ] ++ lib.optionals stdenv.isDarwin [ CoreServices ] ++ lib.optional withJemalloc jemalloc; - cmakeFlags = [ - (lib.cmakeBool "ENABLE_STATIC_LIB" false) - ]; + cmakeFlags = [ (lib.cmakeBool "ENABLE_STATIC_LIB" false) ]; doCheck = true; diff --git a/pkgs/by-name/ng/ngtcp2/gnutls.nix b/pkgs/by-name/ng/ngtcp2/gnutls.nix index b521569..e3d0b58 100644 --- a/pkgs/by-name/ng/ngtcp2/gnutls.nix +++ b/pkgs/by-name/ng/ngtcp2/gnutls.nix @@ -1,7 +1,13 @@ -{ lib, stdenv, fetchFromGitHub -, autoreconfHook, pkg-config -, gnutls -, cunit, ncurses, knot-dns +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + pkg-config, + gnutls, + cunit, + ncurses, + knot-dns, }: stdenv.mkDerivation rec { @@ -15,17 +21,22 @@ stdenv.mkDerivation rec { hash = "sha256-C1Rk0KzTvFpwCz8vXvhSqGjYmGyLZxmnzZhPLZiL97M="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - nativeBuildInputs = [ autoreconfHook pkg-config ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; buildInputs = [ gnutls ]; configureFlags = [ "--with-gnutls=yes" ]; enableParallelBuilding = true; doCheck = true; - nativeCheckInputs = [ cunit ] - ++ lib.optional stdenv.isDarwin ncurses; + nativeCheckInputs = [ cunit ] ++ lib.optional stdenv.isDarwin ncurses; passthru.tests = knot-dns.passthru.tests; # the only consumer so far @@ -34,7 +45,9 @@ stdenv.mkDerivation rec { description = "an effort to implement RFC9000 QUIC protocol."; license = licenses.mit; platforms = platforms.unix; - maintainers = with maintainers; [ vcunat/* for knot-dns */ ]; + maintainers = with maintainers; [ + vcunat # for knot-dns + ]; }; } @@ -50,4 +63,3 @@ stdenv.mkDerivation rec { on a single version might be hard sometimes. That's why it seemed simpler to completely separate the nix expressions, too. */ - diff --git a/pkgs/by-name/ng/ngtcp2/packages.nix b/pkgs/by-name/ng/ngtcp2/packages.nix index 8f14934..8b68c2d 100644 --- a/pkgs/by-name/ng/ngtcp2/packages.nix +++ b/pkgs/by-name/ng/ngtcp2/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { ngtcp2 = callPackage ./ngtcp2 { inherit (darwin.apple_sdk.frameworks) CoreServices; }; ngtcp2-gnutls = callPackage ./gnutls.nix { }; } diff --git a/pkgs/by-name/ni/ninja/default.nix b/pkgs/by-name/ni/ninja/default.nix index 3402bcf..b0209bb 100644 --- a/pkgs/by-name/ni/ninja/default.nix +++ b/pkgs/by-name/ni/ninja/default.nix @@ -1,16 +1,17 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, asciidoc -, docbook_xml_dtd_45 -, docbook_xsl -, installShellFiles -, libxslt -, python3 -, re2c -, buildPackages -, buildDocs ? true +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + asciidoc, + docbook_xml_dtd_45, + docbook_xsl, + installShellFiles, + libxslt, + python3, + re2c, + buildPackages, + buildDocs ? true, }: stdenv.mkDerivation rec { @@ -26,17 +27,18 @@ stdenv.mkDerivation rec { depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ - python3 - re2c - installShellFiles - ] - ++ lib.optionals buildDocs [ - asciidoc - docbook_xml_dtd_45 - docbook_xsl - libxslt.bin - ]; + nativeBuildInputs = + [ + python3 + re2c + installShellFiles + ] + ++ lib.optionals buildDocs [ + asciidoc + docbook_xml_dtd_45 + docbook_xsl + libxslt.bin + ]; patches = lib.optionals stdenv.is32bit [ # Otherwise ninja may fail on some files in a larger FS. @@ -52,42 +54,48 @@ stdenv.mkDerivation rec { substituteInPlace configure.py --replace "subprocess.check_call(rebuild_args)" "open('rebuild_args','w').write(rebuild_args[0])" ''; - buildPhase = '' - runHook preBuild + buildPhase = + '' + runHook preBuild - # for list of env vars - # see https://github.com/ninja-build/ninja/blob/v1.11.1/configure.py#L264 - CXX="$CXX_FOR_BUILD" \ - AR="$AR_FOR_BUILD" \ - CFLAGS="$CFLAGS_FOR_BUILD" \ - CXXFLAGS="$CXXFLAGS_FOR_BUILD" \ - LDFLAGS="$LDFLAGS_FOR_BUILD" \ - python configure.py --bootstrap - python configure.py + # for list of env vars + # see https://github.com/ninja-build/ninja/blob/v1.11.1/configure.py#L264 + CXX="$CXX_FOR_BUILD" \ + AR="$AR_FOR_BUILD" \ + CFLAGS="$CFLAGS_FOR_BUILD" \ + CXXFLAGS="$CXXFLAGS_FOR_BUILD" \ + LDFLAGS="$LDFLAGS_FOR_BUILD" \ + python configure.py --bootstrap + python configure.py - source rebuild_args - '' + lib.optionalString buildDocs '' - # "./ninja -vn manual" output copied here to support cross compilation. - asciidoc -b docbook -d book -o build/manual.xml doc/manual.asciidoc - xsltproc --nonet doc/docbook.xsl build/manual.xml > doc/manual.html - '' + '' + source rebuild_args + '' + + lib.optionalString buildDocs '' + # "./ninja -vn manual" output copied here to support cross compilation. + asciidoc -b docbook -d book -o build/manual.xml doc/manual.asciidoc + xsltproc --nonet doc/docbook.xsl build/manual.xml > doc/manual.html + '' + + '' - runHook postBuild - ''; + runHook postBuild + ''; - installPhase = '' - runHook preInstall + installPhase = + '' + runHook preInstall - install -Dm555 -t $out/bin ninja - installShellCompletion --name ninja \ - --bash misc/bash-completion \ - --zsh misc/zsh-completion - '' + lib.optionalString buildDocs '' - install -Dm444 -t $out/share/doc/ninja doc/manual.asciidoc doc/manual.html - '' + '' + install -Dm555 -t $out/bin ninja + installShellCompletion --name ninja \ + --bash misc/bash-completion \ + --zsh misc/zsh-completion + '' + + lib.optionalString buildDocs '' + install -Dm444 -t $out/share/doc/ninja doc/manual.asciidoc doc/manual.html + '' + + '' - runHook postInstall - ''; + runHook postInstall + ''; setupHook = ./setup-hook.sh; @@ -103,6 +111,10 @@ stdenv.mkDerivation rec { homepage = "https://ninja-build.org/"; license = licenses.asl20; platforms = platforms.unix; - maintainers = with maintainers; [ thoughtpolice bjornfor orivej ]; + maintainers = with maintainers; [ + thoughtpolice + bjornfor + orivej + ]; }; } diff --git a/pkgs/by-name/ni/nix/common.nix b/pkgs/by-name/ni/nix/common.nix index b04c593..54b51ea 100644 --- a/pkgs/by-name/ni/nix/common.nix +++ b/pkgs/by-name/ni/nix/common.nix @@ -1,11 +1,22 @@ -{ lib -, fetchFromGitHub -, version -, suffix ? "" -, hash ? null -, src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; } -, patches ? [ ] -, maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ma27 ] +{ + lib, + fetchFromGitHub, + version, + suffix ? "", + hash ? null, + src ? fetchFromGitHub { + owner = "NixOS"; + repo = "nix"; + rev = version; + inherit hash; + }, + patches ? [ ], + maintainers ? with lib.maintainers; [ + eelco + lovesegfault + artturin + ma27 + ], }@args: assert (hash == null) -> (src != null); let @@ -27,251 +38,265 @@ let "2.20" ]; in -{ stdenv -, autoconf-archive -, autoreconfHook -, bash -, bison -, boehmgc -, boost -, brotli -, busybox-sandbox-shell -, bzip2 -, callPackage -, coreutils -, curl -, docbook_xsl_ns -, docbook5 -, editline -, flex -, git -, gnutar -, gtest -, gzip -, jq -, lib -, libarchive -, libcpuid -, libgit2 -, libsodium -, libxml2 -, libxslt -, lowdown -, man -, mdbook -, mdbook-linkcheck -, nlohmann_json -, openssl -, perl -, pkg-config -, rapidcheck -, Security -, sqlite -, util-linuxMinimal -, xz +{ + stdenv, + autoconf-archive, + autoreconfHook, + bash, + bison, + boehmgc, + boost, + brotli, + busybox-sandbox-shell, + bzip2, + callPackage, + coreutils, + curl, + docbook_xsl_ns, + docbook5, + editline, + flex, + git, + gnutar, + gtest, + gzip, + jq, + lib, + libarchive, + libcpuid, + libgit2, + libsodium, + libxml2, + libxslt, + lowdown, + man, + mdbook, + mdbook-linkcheck, + nlohmann_json, + openssl, + perl, + pkg-config, + rapidcheck, + Security, + sqlite, + util-linuxMinimal, + xz, -, enableDocumentation ? !atLeast24 || stdenv.hostPlatform == stdenv.buildPlatform -, enableStatic ? stdenv.hostPlatform.isStatic -, withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp -, withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp, libseccomp + enableDocumentation ? !atLeast24 || stdenv.hostPlatform == stdenv.buildPlatform, + enableStatic ? stdenv.hostPlatform.isStatic, + withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), + aws-sdk-cpp, + withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp, + libseccomp, -, confDir -, stateDir -, storeDir + confDir, + stateDir, + storeDir, # passthru tests -, pkgsi686Linux -}: let -self = stdenv.mkDerivation { - pname = "nix"; + pkgsi686Linux, +}: +let + self = stdenv.mkDerivation { + pname = "nix"; - version = "${version}${suffix}"; - VERSION_SUFFIX = suffix; + version = "${version}${suffix}"; + VERSION_SUFFIX = suffix; - inherit src patches; + inherit src patches; - outputs = - [ "out" "dev" ] - ++ lib.optionals enableDocumentation [ "man" "doc" ]; + outputs = + [ + "out" + "dev" + ] + ++ lib.optionals enableDocumentation [ + "man" + "doc" + ]; - hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ]; + hardeningEnable = lib.optionals (!stdenv.isDarwin) [ "pie" ]; - hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify"; + hardeningDisable = lib.optional stdenv.hostPlatform.isMusl "fortify"; - nativeBuildInputs = [ - pkg-config - autoconf-archive - autoreconfHook - bison - flex - jq - ] ++ lib.optionals (enableDocumentation && !atLeast24) [ - libxslt - libxml2 - docbook_xsl_ns - docbook5 - ] ++ lib.optionals (enableDocumentation && atLeast24) [ - (lib.getBin lowdown) - mdbook - ] ++ lib.optionals (atLeast213 && enableDocumentation) [ - mdbook-linkcheck - ] ++ lib.optionals stdenv.isLinux [ - util-linuxMinimal - ]; + nativeBuildInputs = + [ + pkg-config + autoconf-archive + autoreconfHook + bison + flex + jq + ] + ++ lib.optionals (enableDocumentation && !atLeast24) [ + libxslt + libxml2 + docbook_xsl_ns + docbook5 + ] + ++ lib.optionals (enableDocumentation && atLeast24) [ + (lib.getBin lowdown) + mdbook + ] + ++ lib.optionals (atLeast213 && enableDocumentation) [ mdbook-linkcheck ] + ++ lib.optionals stdenv.isLinux [ util-linuxMinimal ]; - buildInputs = [ - boost - brotli - bzip2 - curl - editline - libsodium - openssl - sqlite - xz - gtest - libarchive - lowdown - ] ++ lib.optionals atLeast220 [ - libgit2 - ] ++ lib.optionals stdenv.isDarwin [ - Security - ] ++ lib.optionals (stdenv.isx86_64) [ - libcpuid - ] ++ lib.optionals atLeast214 [ - rapidcheck - ] ++ lib.optionals withLibseccomp [ - libseccomp - ] ++ lib.optionals withAWS [ - aws-sdk-cpp - ]; + buildInputs = + [ + boost + brotli + bzip2 + curl + editline + libsodium + openssl + sqlite + xz + gtest + libarchive + lowdown + ] + ++ lib.optionals atLeast220 [ libgit2 ] + ++ lib.optionals stdenv.isDarwin [ Security ] + ++ lib.optionals (stdenv.isx86_64) [ libcpuid ] + ++ lib.optionals atLeast214 [ rapidcheck ] + ++ lib.optionals withLibseccomp [ libseccomp ] + ++ lib.optionals withAWS [ aws-sdk-cpp ]; - installCheckInputs = lib.optionals atLeast221 [ - git - ] ++ lib.optionals atLeast219 [ - man - ]; + installCheckInputs = lib.optionals atLeast221 [ git ] ++ lib.optionals atLeast219 [ man ]; - propagatedBuildInputs = [ - boehmgc - ] ++ lib.optionals (atLeast27) [ - nlohmann_json - ]; + propagatedBuildInputs = [ boehmgc ] ++ lib.optionals (atLeast27) [ nlohmann_json ]; - postPatch = '' - patchShebangs --build tests - ''; - - preConfigure = - # Copy libboost_context so we don't get all of Boost in our closure. - # https://github.com/NixOS/nixpkgs/issues/45462 - lib.optionalString (!enableStatic) '' - mkdir -p $out/lib - cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib - rm -f $out/lib/*.a - ${lib.optionalString stdenv.isLinux '' - chmod u+w $out/lib/*.so.* - patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.* - ''} - '' + - # On all versions before c9f51e87057652db0013289a95deffba495b35e7, which - # removes config.nix entirely and is not present in 2.3.x, we need to - # patch around an issue where the Nix configure step pulls in the build - # system's bash and other utilities when cross-compiling. - lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && !atLeast24) '' - mkdir tmp/ - substitute corepkgs/config.nix.in tmp/config.nix.in \ - --subst-var-by bash ${bash}/bin/bash \ - --subst-var-by coreutils ${coreutils}/bin \ - --subst-var-by bzip2 ${bzip2}/bin/bzip2 \ - --subst-var-by gzip ${gzip}/bin/gzip \ - --subst-var-by xz ${xz}/bin/xz \ - --subst-var-by tar ${gnutar}/bin/tar \ - --subst-var-by tr ${coreutils}/bin/tr - mv tmp/config.nix.in corepkgs/config.nix.in + postPatch = '' + patchShebangs --build tests ''; - configureFlags = [ - "--with-store-dir=${storeDir}" - "--localstatedir=${stateDir}" - "--sysconfdir=${confDir}" - "--enable-gc" - ] ++ lib.optionals (!enableDocumentation) [ - "--disable-doc-gen" - ] ++ lib.optionals stdenv.isLinux [ - "--with-sandbox-shell=${busybox-sandbox-shell}/bin/busybox" - ] ++ lib.optionals (atLeast210 && stdenv.isLinux && stdenv.hostPlatform.isStatic) [ - "--enable-embedded-sandbox-shell" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform ? nix && stdenv.hostPlatform.nix ? system) [ - "--with-system=${stdenv.hostPlatform.nix.system}" - ] ++ lib.optionals (!withLibseccomp) [ - # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50 - "--disable-seccomp-sandboxing" - ] ++ lib.optionals (atLeast210 && stdenv.cc.isGNU && !enableStatic) [ - "--enable-lto" - ]; + preConfigure = + # Copy libboost_context so we don't get all of Boost in our closure. + # https://github.com/NixOS/nixpkgs/issues/45462 + lib.optionalString (!enableStatic) '' + mkdir -p $out/lib + cp -pd ${boost}/lib/{libboost_context*,libboost_thread*,libboost_system*} $out/lib + rm -f $out/lib/*.a + ${lib.optionalString stdenv.isLinux '' + chmod u+w $out/lib/*.so.* + patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.* + ''} + '' + + + # On all versions before c9f51e87057652db0013289a95deffba495b35e7, which + # removes config.nix entirely and is not present in 2.3.x, we need to + # patch around an issue where the Nix configure step pulls in the build + # system's bash and other utilities when cross-compiling. + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && !atLeast24) '' + mkdir tmp/ + substitute corepkgs/config.nix.in tmp/config.nix.in \ + --subst-var-by bash ${bash}/bin/bash \ + --subst-var-by coreutils ${coreutils}/bin \ + --subst-var-by bzip2 ${bzip2}/bin/bzip2 \ + --subst-var-by gzip ${gzip}/bin/gzip \ + --subst-var-by xz ${xz}/bin/xz \ + --subst-var-by tar ${gnutar}/bin/tar \ + --subst-var-by tr ${coreutils}/bin/tr + mv tmp/config.nix.in corepkgs/config.nix.in + ''; - makeFlags = [ - # gcc runs multi-threaded LTO using make and does not yet detect the new fifo:/path style - # of make jobserver. until gcc adds support for this we have to instruct make to use this - # old style or LTO builds will run their linking on only one thread, which takes forever. - "--jobserver-style=pipe" - "profiledir=$(out)/etc/profile.d" - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "PRECOMPILE_HEADERS=0" - ++ lib.optional (stdenv.hostPlatform.isDarwin) "PRECOMPILE_HEADERS=1"; + configureFlags = + [ + "--with-store-dir=${storeDir}" + "--localstatedir=${stateDir}" + "--sysconfdir=${confDir}" + "--enable-gc" + ] + ++ lib.optionals (!enableDocumentation) [ "--disable-doc-gen" ] + ++ lib.optionals stdenv.isLinux [ "--with-sandbox-shell=${busybox-sandbox-shell}/bin/busybox" ] + ++ lib.optionals (atLeast210 && stdenv.isLinux && stdenv.hostPlatform.isStatic) [ + "--enable-embedded-sandbox-shell" + ] + ++ lib.optionals ( + stdenv.hostPlatform != stdenv.buildPlatform + && stdenv.hostPlatform ? nix + && stdenv.hostPlatform.nix ? system + ) [ "--with-system=${stdenv.hostPlatform.nix.system}" ] + ++ lib.optionals (!withLibseccomp) [ + # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50 + "--disable-seccomp-sandboxing" + ] + ++ lib.optionals (atLeast210 && stdenv.cc.isGNU && !enableStatic) [ "--enable-lto" ]; - installFlags = [ "sysconfdir=$(out)/etc" ]; + makeFlags = + [ + # gcc runs multi-threaded LTO using make and does not yet detect the new fifo:/path style + # of make jobserver. until gcc adds support for this we have to instruct make to use this + # old style or LTO builds will run their linking on only one thread, which takes forever. + "--jobserver-style=pipe" + "profiledir=$(out)/etc/profile.d" + ] + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "PRECOMPILE_HEADERS=0" + ++ lib.optional (stdenv.hostPlatform.isDarwin) "PRECOMPILE_HEADERS=1"; - doInstallCheck = true; - installCheckTarget = if atLeast210 then "installcheck" else null; + installFlags = [ "sysconfdir=$(out)/etc" ]; - # socket path becomes too long otherwise - preInstallCheck = lib.optionalString stdenv.isDarwin '' - export TMPDIR=$NIX_BUILD_TOP - '' - # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`. - # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html. - + lib.optionalString stdenv.isDarwin '' - export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES - '' - # See https://github.com/NixOS/nix/issues/5687 - + lib.optionalString (atLeast25 && stdenv.isDarwin) '' - echo "exit 99" > tests/gc-non-blocking.sh - ''; + doInstallCheck = true; + installCheckTarget = if atLeast210 then "installcheck" else null; - separateDebugInfo = stdenv.isLinux && (atLeast24 -> !enableStatic); + # socket path becomes too long otherwise + preInstallCheck = + lib.optionalString stdenv.isDarwin '' + export TMPDIR=$NIX_BUILD_TOP + '' + # Prevent crashes in libcurl due to invoking Objective-C `+initialize` methods after `fork`. + # See http://sealiesoftware.com/blog/archive/2017/6/5/Objective-C_and_fork_in_macOS_1013.html. + + lib.optionalString stdenv.isDarwin '' + export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES + '' + # See https://github.com/NixOS/nix/issues/5687 + + lib.optionalString (atLeast25 && stdenv.isDarwin) '' + echo "exit 99" > tests/gc-non-blocking.sh + ''; - enableParallelBuilding = true; + separateDebugInfo = stdenv.isLinux && (atLeast24 -> !enableStatic); - passthru = { - inherit aws-sdk-cpp boehmgc; + enableParallelBuilding = true; - perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; }); + passthru = { + inherit aws-sdk-cpp boehmgc; - tests = { - nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"}; + perl-bindings = perl.pkgs.toPerlModule ( + callPackage ./nix-perl.nix { + nix = self; + inherit Security; + } + ); + + tests = { + nixi686 = + pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"}; + }; + }; + + # point 'nix edit' and ofborg at the file that defines the attribute, + # not this common file. + pos = builtins.unsafeGetAttrPos "version" args; + meta = with lib; { + description = "Powerful package manager that makes package management reliable and reproducible"; + longDescription = '' + Nix is a powerful package manager for Linux and other Unix systems that + makes package management reliable and reproducible. It provides atomic + upgrades and rollbacks, side-by-side installation of multiple versions of + a package, multi-user package management and easy setup of build + environments. + ''; + homepage = "https://nixos.org/"; + license = licenses.lgpl21Plus; + inherit maintainers; + platforms = platforms.unix; + outputsToInstall = [ "out" ] ++ optional enableDocumentation "man"; + mainProgram = "nix"; + knownVulnerabilities = lib.optional ( + !builtins.elem (lib.versions.majorMinor version) unaffectedByFodSandboxEscape && !atLeast221 + ) "CVE-2024-27297"; }; }; - - # point 'nix edit' and ofborg at the file that defines the attribute, - # not this common file. - pos = builtins.unsafeGetAttrPos "version" args; - meta = with lib; { - description = "Powerful package manager that makes package management reliable and reproducible"; - longDescription = '' - Nix is a powerful package manager for Linux and other Unix systems that - makes package management reliable and reproducible. It provides atomic - upgrades and rollbacks, side-by-side installation of multiple versions of - a package, multi-user package management and easy setup of build - environments. - ''; - homepage = "https://nixos.org/"; - license = licenses.lgpl21Plus; - inherit maintainers; - platforms = platforms.unix; - outputsToInstall = [ "out" ] ++ optional enableDocumentation "man"; - mainProgram = "nix"; - knownVulnerabilities = lib.optional (!builtins.elem (lib.versions.majorMinor version) unaffectedByFodSandboxEscape && !atLeast221) "CVE-2024-27297"; - }; -}; -in self +in +self diff --git a/pkgs/by-name/ni/nix/default.nix b/pkgs/by-name/ni/nix/default.nix index 4c8f26e..6442486 100644 --- a/pkgs/by-name/ni/nix/default.nix +++ b/pkgs/by-name/ni/nix/default.nix @@ -1,19 +1,20 @@ -{ lib -, config -, aws-sdk-cpp -, boehmgc -, callPackage -, fetchFromGitHub -, fetchpatch -, fetchpatch2 -, runCommand -, Security +{ + lib, + config, + aws-sdk-cpp, + boehmgc, + callPackage, + fetchFromGitHub, + fetchpatch, + fetchpatch2, + runCommand, + Security, -, storeDir ? "/nix/store" -, stateDir ? "/nix/var" -, confDir ? "/etc" + storeDir ? "/nix/store", + stateDir ? "/nix/var", + confDir ? "/etc", -, path + path, }: let boehmgc-nix_2_3 = boehmgc.override { enableLargeConfig = true; }; @@ -26,75 +27,91 @@ let }); # old nix fails to build with newer aws-sdk-cpp and the patch doesn't apply - aws-sdk-cpp-old-nix = (aws-sdk-cpp.override { - apis = [ "s3" "transfer" ]; - customMemoryManagement = false; - }).overrideAttrs (args: rec { - # intentionally overriding postPatch - version = "1.9.294"; + aws-sdk-cpp-old-nix = + (aws-sdk-cpp.override { + apis = [ + "s3" + "transfer" + ]; + customMemoryManagement = false; + }).overrideAttrs + (args: rec { + # intentionally overriding postPatch + version = "1.9.294"; - src = fetchFromGitHub { - owner = "aws"; - repo = "aws-sdk-cpp"; - rev = version; - hash = "sha256-Z1eRKW+8nVD53GkNyYlZjCcT74MqFqqRMeMc33eIQ9g="; - }; - postPatch = '' - # Avoid blanket -Werror to evade build failures on less - # tested compilers. - substituteInPlace cmake/compiler_settings.cmake \ - --replace '"-Werror"' ' ' + src = fetchFromGitHub { + owner = "aws"; + repo = "aws-sdk-cpp"; + rev = version; + hash = "sha256-Z1eRKW+8nVD53GkNyYlZjCcT74MqFqqRMeMc33eIQ9g="; + }; + postPatch = + '' + # Avoid blanket -Werror to evade build failures on less + # tested compilers. + substituteInPlace cmake/compiler_settings.cmake \ + --replace '"-Werror"' ' ' - # Missing includes for GCC11 - sed '5i#include ' -i \ - aws-cpp-sdk-cloudfront-integration-tests/CloudfrontOperationTest.cpp \ - aws-cpp-sdk-cognitoidentity-integration-tests/IdentityPoolOperationTest.cpp \ - aws-cpp-sdk-dynamodb-integration-tests/TableOperationTest.cpp \ - aws-cpp-sdk-elasticfilesystem-integration-tests/ElasticFileSystemTest.cpp \ - aws-cpp-sdk-lambda-integration-tests/FunctionTest.cpp \ - aws-cpp-sdk-mediastore-data-integration-tests/MediaStoreDataTest.cpp \ - aws-cpp-sdk-queues/source/sqs/SQSQueue.cpp \ - aws-cpp-sdk-redshift-integration-tests/RedshiftClientTest.cpp \ - aws-cpp-sdk-s3-crt-integration-tests/BucketAndObjectOperationTest.cpp \ - aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp \ - aws-cpp-sdk-s3control-integration-tests/S3ControlTest.cpp \ - aws-cpp-sdk-sqs-integration-tests/QueueOperationTest.cpp \ - aws-cpp-sdk-transfer-tests/TransferTests.cpp - # Flaky on Hydra - rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp - # Includes aws-c-auth private headers, so only works with submodule build - rm aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp - # TestRandomURLMultiThreaded fails - rm aws-cpp-sdk-core-tests/http/HttpClientTest.cpp - '' + lib.optionalString aws-sdk-cpp.stdenv.isi686 '' - # EPSILON is exceeded - rm aws-cpp-sdk-core-tests/aws/client/AdaptiveRetryStrategyTest.cpp - ''; + # Missing includes for GCC11 + sed '5i#include ' -i \ + aws-cpp-sdk-cloudfront-integration-tests/CloudfrontOperationTest.cpp \ + aws-cpp-sdk-cognitoidentity-integration-tests/IdentityPoolOperationTest.cpp \ + aws-cpp-sdk-dynamodb-integration-tests/TableOperationTest.cpp \ + aws-cpp-sdk-elasticfilesystem-integration-tests/ElasticFileSystemTest.cpp \ + aws-cpp-sdk-lambda-integration-tests/FunctionTest.cpp \ + aws-cpp-sdk-mediastore-data-integration-tests/MediaStoreDataTest.cpp \ + aws-cpp-sdk-queues/source/sqs/SQSQueue.cpp \ + aws-cpp-sdk-redshift-integration-tests/RedshiftClientTest.cpp \ + aws-cpp-sdk-s3-crt-integration-tests/BucketAndObjectOperationTest.cpp \ + aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTest.cpp \ + aws-cpp-sdk-s3control-integration-tests/S3ControlTest.cpp \ + aws-cpp-sdk-sqs-integration-tests/QueueOperationTest.cpp \ + aws-cpp-sdk-transfer-tests/TransferTests.cpp + # Flaky on Hydra + rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp + # Includes aws-c-auth private headers, so only works with submodule build + rm aws-cpp-sdk-core-tests/aws/auth/AWSAuthSignerTest.cpp + # TestRandomURLMultiThreaded fails + rm aws-cpp-sdk-core-tests/http/HttpClientTest.cpp + '' + + lib.optionalString aws-sdk-cpp.stdenv.isi686 '' + # EPSILON is exceeded + rm aws-cpp-sdk-core-tests/aws/client/AdaptiveRetryStrategyTest.cpp + ''; - patches = (args.patches or [ ]) ++ [ ./patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch ]; + patches = (args.patches or [ ]) ++ [ ./patches/aws-sdk-cpp-TransferManager-ContentEncoding.patch ]; - # only a stripped down version is build which takes a lot less resources to build - requiredSystemFeatures = [ ]; - }); + # only a stripped down version is build which takes a lot less resources to build + requiredSystemFeatures = [ ]; + }); - aws-sdk-cpp-nix = (aws-sdk-cpp.override { - apis = [ "s3" "transfer" ]; - customMemoryManagement = false; - }).overrideAttrs { - # only a stripped down version is build which takes a lot less resources to build - requiredSystemFeatures = [ ]; - }; - - - common = args: - callPackage - (import ./common.nix ({ inherit lib fetchFromGitHub; } // args)) + aws-sdk-cpp-nix = + (aws-sdk-cpp.override { + apis = [ + "s3" + "transfer" + ]; + customMemoryManagement = false; + }).overrideAttrs { - inherit Security storeDir stateDir confDir; - boehmgc = boehmgc-nix; - aws-sdk-cpp = if lib.versionAtLeast args.version "2.12pre" then aws-sdk-cpp-nix else aws-sdk-cpp-old-nix; + # only a stripped down version is build which takes a lot less resources to build + requiredSystemFeatures = [ ]; }; + common = + args: + callPackage (import ./common.nix ({ inherit lib fetchFromGitHub; } // args)) { + inherit + Security + storeDir + stateDir + confDir + ; + boehmgc = boehmgc-nix; + aws-sdk-cpp = + if lib.versionAtLeast args.version "2.12pre" then aws-sdk-cpp-nix else aws-sdk-cpp-old-nix; + }; + # https://github.com/NixOS/nix/pull/7585 patch-monitorfdhup = fetchpatch2 { name = "nix-7585-monitor-fd-hup.patch"; @@ -104,114 +121,133 @@ let # Intentionally does not support overrideAttrs etc # Use only for tests that are about the package relation to `pkgs` and/or NixOS. - addTestsShallowly = tests: pkg: pkg // { - tests = pkg.tests // tests; - # In case someone reads the wrong attribute - passthru.tests = pkg.tests // tests; - }; - - addFallbackPathsCheck = pkg: addTestsShallowly - { nix-fallback-paths = - runCommand "test-nix-fallback-paths-version-equals-nix-stable" { - paths = lib.concatStringsSep "\n" (builtins.attrValues (import ./nix-fallback-paths.nix)); - } '' - if [[ "" != $(grep -v 'nix-${pkg.version}$' <<< "$paths") ]]; then - echo "nix-fallback-paths not up to date with nixVersions.stable (nix-${pkg.version})" - echo "The following paths are not up to date:" - grep -v 'nix-${pkg.version}$' <<< "$paths" - echo - echo "Fix it by running in nixpkgs:" - echo - echo "curl https://releases.nixos.org/nix/nix-${pkg.version}/fallback-paths.nix >nixos/modules/installer/tools/nix-fallback-paths.nix" - echo - exit 1 - else - echo "nix-fallback-paths versions up to date" - touch $out - fi - ''; - } - pkg; - -in lib.makeExtensible (self: ({ - nix_2_3 = ((common { - version = "2.3.18"; - hash = "sha256-jBz2Ub65eFYG+aWgSI3AJYvLSghio77fWQiIW1svA9U="; - patches = [ - patch-monitorfdhup - ]; - maintainers = with lib.maintainers; [ flokli raitobezarius ]; - }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs { - # https://github.com/NixOS/nix/issues/10222 - # spurious test/add.sh failures - enableParallelChecking = false; - }; - - nix_2_18 = common { - version = "2.18.2"; - hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY="; - }; - - nix_2_19 = common { - version = "2.19.4"; - hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI="; - }; - - nix_2_20 = common { - version = "2.20.6"; - hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54="; - }; - - nix_2_21 = common { - version = "2.21.2"; - hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE="; - }; - - nix_2_22 = common { - version = "2.22.0"; - hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8="; - }; - - git = common rec { - version = "2.23.0"; - suffix = "pre20240502_${lib.substring 0 8 src.rev}"; - src = fetchFromGitHub { - owner = "NixOS"; - repo = "nix"; - rev = "00ca2b05b8fbbef09be5d1e4820857605d4c31b6"; - hash = "sha256-trTxWfGElp0rkjquqG5I5RYVoxo8foCflxJFUtHwnOQ="; + addTestsShallowly = + tests: pkg: + pkg + // { + tests = pkg.tests // tests; + # In case someone reads the wrong attribute + passthru.tests = pkg.tests // tests; }; - }; - latest = self.nix_2_22; + addFallbackPathsCheck = + pkg: + addTestsShallowly { + nix-fallback-paths = + runCommand "test-nix-fallback-paths-version-equals-nix-stable" + { paths = lib.concatStringsSep "\n" (builtins.attrValues (import ./nix-fallback-paths.nix)); } + '' + if [[ "" != $(grep -v 'nix-${pkg.version}$' <<< "$paths") ]]; then + echo "nix-fallback-paths not up to date with nixVersions.stable (nix-${pkg.version})" + echo "The following paths are not up to date:" + grep -v 'nix-${pkg.version}$' <<< "$paths" + echo + echo "Fix it by running in nixpkgs:" + echo + echo "curl https://releases.nixos.org/nix/nix-${pkg.version}/fallback-paths.nix >nixos/modules/installer/tools/nix-fallback-paths.nix" + echo + exit 1 + else + echo "nix-fallback-paths versions up to date" + touch $out + fi + ''; + } pkg; - # The minimum Nix version supported by Nixpkgs - # Note that some functionality *might* have been backported into this Nix version, - # making this package an inaccurate representation of what features are available - # in the actual lowest minver.nix *patch* version. - minimum = - let - minver = import (path + "/lib/minver.nix"); - major = lib.versions.major minver; - minor = lib.versions.minor minver; - attribute = "nix_${major}_${minor}"; - nix = self.${attribute}; - in - if ! self ? ${attribute} then - throw "The minimum supported Nix version is ${minver} (declared in lib/minver.nix), but pkgs.nixVersions.${attribute} does not exist." - else - nix; +in +lib.makeExtensible ( + self: + ( + { + nix_2_3 = + ( + (common { + version = "2.3.18"; + hash = "sha256-jBz2Ub65eFYG+aWgSI3AJYvLSghio77fWQiIW1svA9U="; + patches = [ patch-monitorfdhup ]; + maintainers = with lib.maintainers; [ + flokli + raitobezarius + ]; + }).override + { boehmgc = boehmgc-nix_2_3; } + ).overrideAttrs + { + # https://github.com/NixOS/nix/issues/10222 + # spurious test/add.sh failures + enableParallelChecking = false; + }; - stable = addFallbackPathsCheck self.nix_2_18; -} // lib.optionalAttrs config.allowAliases ( - lib.listToAttrs (map ( - minor: - let - attr = "nix_2_${toString minor}"; - in - lib.nameValuePair attr (throw "${attr} has been removed") - ) (lib.range 4 17)) - // { - unstable = throw "nixVersions.unstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest."; - } -))) + nix_2_18 = common { + version = "2.18.2"; + hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY="; + }; + + nix_2_19 = common { + version = "2.19.4"; + hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI="; + }; + + nix_2_20 = common { + version = "2.20.6"; + hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54="; + }; + + nix_2_21 = common { + version = "2.21.2"; + hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE="; + }; + + nix_2_22 = common { + version = "2.22.0"; + hash = "sha256-Ugcc+lSq8nJP+mddMlGFnoG4Ix1lRFHWOal3299bqR8="; + }; + + git = common rec { + version = "2.23.0"; + suffix = "pre20240502_${lib.substring 0 8 src.rev}"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "nix"; + rev = "00ca2b05b8fbbef09be5d1e4820857605d4c31b6"; + hash = "sha256-trTxWfGElp0rkjquqG5I5RYVoxo8foCflxJFUtHwnOQ="; + }; + }; + + latest = self.nix_2_22; + + # The minimum Nix version supported by Nixpkgs + # Note that some functionality *might* have been backported into this Nix version, + # making this package an inaccurate representation of what features are available + # in the actual lowest minver.nix *patch* version. + minimum = + let + minver = import (path + "/lib/minver.nix"); + major = lib.versions.major minver; + minor = lib.versions.minor minver; + attribute = "nix_${major}_${minor}"; + nix = self.${attribute}; + in + if !self ? ${attribute} then + throw "The minimum supported Nix version is ${minver} (declared in lib/minver.nix), but pkgs.nixVersions.${attribute} does not exist." + else + nix; + + stable = addFallbackPathsCheck self.nix_2_18; + } + // lib.optionalAttrs config.allowAliases ( + lib.listToAttrs ( + map ( + minor: + let + attr = "nix_2_${toString minor}"; + in + lib.nameValuePair attr (throw "${attr} has been removed") + ) (lib.range 4 17) + ) + // { + unstable = throw "nixVersions.unstable has been removed. For bleeding edge (Nix master, roughly weekly updated) use nixVersions.git, otherwise use nixVersions.latest."; + } + ) + ) +) diff --git a/pkgs/by-name/ni/nix/nix-perl.nix b/pkgs/by-name/ni/nix/nix-perl.nix index 8fc2657..13412ec 100644 --- a/pkgs/by-name/ni/nix/nix-perl.nix +++ b/pkgs/by-name/ni/nix/nix-perl.nix @@ -1,32 +1,38 @@ -{ stdenv -, lib -, perl -, pkg-config -, curl -, nix -, libsodium -, boost -, autoreconfHook -, autoconf-archive -, nlohmann_json -, xz -, Security -, meson -, ninja -, bzip2 +{ + stdenv, + lib, + perl, + pkg-config, + curl, + nix, + libsodium, + boost, + autoreconfHook, + autoconf-archive, + nlohmann_json, + xz, + Security, + meson, + ninja, + bzip2, }: let atLeast223 = lib.versionAtLeast nix.version "2.23"; - mkConfigureOption = { mesonOption, autoconfOption, value }: + mkConfigureOption = + { + mesonOption, + autoconfOption, + value, + }: let - setFlagTo = if atLeast223 - then lib.mesonOption mesonOption - else lib.withFeatureAs true autoconfOption; + setFlagTo = + if atLeast223 then lib.mesonOption mesonOption else lib.withFeatureAs true autoconfOption; in setFlagTo value; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "nix-perl"; inherit (nix) version src; @@ -45,24 +51,29 @@ in stdenv.mkDerivation (finalAttrs: { # Not cross-safe since Nix checks for curl/perl via # NEED_PROG/find_program, but both seem to be needed at runtime # as well. - nativeBuildInputs = [ - pkg-config - perl - curl - ] ++ (if atLeast223 then [ - meson - ninja - ] else [ - autoconf-archive - autoreconfHook - ]); + nativeBuildInputs = + [ + pkg-config + perl + curl + ] + ++ ( + if atLeast223 then + [ + meson + ninja + ] + else + [ + autoconf-archive + autoreconfHook + ] + ); # `perlPackages.Test2Harness` is marked broken for Darwin doCheck = !stdenv.isDarwin; - nativeCheckInputs = [ - perl.pkgs.Test2Harness - ]; + nativeCheckInputs = [ perl.pkgs.Test2Harness ]; ${if atLeast223 then "mesonFlags" else "configureFlags"} = [ (mkConfigureOption { @@ -75,9 +86,7 @@ in stdenv.mkDerivation (finalAttrs: { autoconfOption = "dbd-sqlite"; value = "${perl.pkgs.DBDSQLite}/${perl.libPrefix}"; }) - ] ++ lib.optionals atLeast223 [ - (lib.mesonEnable "tests" finalAttrs.doCheck) - ]; + ] ++ lib.optionals atLeast223 [ (lib.mesonEnable "tests" finalAttrs.doCheck) ]; preConfigure = "export NIX_STATE_DIR=$TMPDIR"; }) diff --git a/pkgs/by-name/ni/nix/packages.nix b/pkgs/by-name/ni/nix/packages.nix index 7d9e468..671677b 100644 --- a/pkgs/by-name/ni/nix/packages.nix +++ b/pkgs/by-name/ni/nix/packages.nix @@ -1,13 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ - nixVersions = recurseIntoAttrs (callPackage ./. { - storeDir = config.nix.storeDir or "/nix/store"; - stateDir = config.nix.stateDir or "/nix/var"; - inherit (darwin.apple_sdk.frameworks) Security; - }); +with pkgs; { + nixVersions = recurseIntoAttrs ( + callPackage ./. { + storeDir = config.nix.storeDir or "/nix/store"; + stateDir = config.nix.stateDir or "/nix/var"; + inherit (darwin.apple_sdk.frameworks) Security; + } + ); nix = nixVersions.stable; diff --git a/pkgs/by-name/ni/nixdoc/default.nix b/pkgs/by-name/ni/nixdoc/default.nix index e1e7f19..d4dd70e 100644 --- a/pkgs/by-name/ni/nixdoc/default.nix +++ b/pkgs/by-name/ni/nixdoc/default.nix @@ -4,30 +4,31 @@ fetchFromGitHub, rustPlatform, darwin, -}: let +}: +let version = "3.0.2"; in - rustPlatform.buildRustPackage { - pname = "nixdoc"; - inherit version; +rustPlatform.buildRustPackage { + pname = "nixdoc"; + inherit version; - src = fetchFromGitHub { - owner = "nix-community"; - repo = "nixdoc"; - rev = "v${version}"; - sha256 = "sha256-V3MAvbdYk3DL064UYcJE9HmwfQBwpMxVXWiAKX6honA="; - }; + src = fetchFromGitHub { + owner = "nix-community"; + repo = "nixdoc"; + rev = "v${version}"; + sha256 = "sha256-V3MAvbdYk3DL064UYcJE9HmwfQBwpMxVXWiAKX6honA="; + }; - cargoHash = "sha256-RFxTjLiJCEc42Mb8rcayOFHkYk2GfpgsO3+hAaRwHgs="; + cargoHash = "sha256-RFxTjLiJCEc42Mb8rcayOFHkYk2GfpgsO3+hAaRwHgs="; - buildInputs = lib.optionals stdenv.isDarwin [darwin.Security]; + buildInputs = lib.optionals stdenv.isDarwin [ darwin.Security ]; - meta = { - description = "Generate documentation for Nix functions"; - mainProgram = "nixdoc"; - homepage = "https://github.com/nix-community/nixdoc"; - license = lib.licenses.gpl3; - # maintainers = with lib.maintainers; [ infinisil hsjobeki ]; - platforms = lib.platforms.unix; - }; - } + meta = { + description = "Generate documentation for Nix functions"; + mainProgram = "nixdoc"; + homepage = "https://github.com/nix-community/nixdoc"; + license = lib.licenses.gpl3; + # maintainers = with lib.maintainers; [ infinisil hsjobeki ]; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/by-name/nl/nlohmann_json/default.nix b/pkgs/by-name/nl/nlohmann_json/default.nix index 339db2b..5880937 100644 --- a/pkgs/by-name/nl/nlohmann_json/default.nix +++ b/pkgs/by-name/nl/nlohmann_json/default.nix @@ -1,7 +1,8 @@ -{ stdenv -, lib -, fetchFromGitHub -, cmake +{ + stdenv, + lib, + fetchFromGitHub, + cmake, }: let testData = fetchFromGitHub { @@ -10,7 +11,8 @@ let rev = "v3.1.0"; hash = "sha256-bG34W63ew7haLnC82A3lS7bviPDnApLipaBjJAjLcVk="; }; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "nlohmann_json"; version = "3.11.3"; diff --git a/pkgs/by-name/on/oniguruma/default.nix b/pkgs/by-name/on/oniguruma/default.nix index cf00629..33c7922 100644 --- a/pkgs/by-name/on/oniguruma/default.nix +++ b/pkgs/by-name/on/oniguruma/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, autoreconfHook }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, +}: stdenv.mkDerivation rec { pname = "oniguruma"; @@ -10,7 +15,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-YBYr07n8b0iG1MegeSX/03QWdzL1Xc6MSRv9nNgYps8="; }; - outputs = [ "dev" "lib" "out" ]; + outputs = [ + "dev" + "lib" + "out" + ]; outputBin = "dev"; # onig-config nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/by-name/op/openexr/3.nix b/pkgs/by-name/op/openexr/3.nix index 074fdf4..92b75ff 100644 --- a/pkgs/by-name/op/openexr/3.nix +++ b/pkgs/by-name/op/openexr/3.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, imath -, libdeflate -, pkg-config -, pkgsCross +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + imath, + libdeflate, + pkg-config, + pkgsCross, }: stdenv.mkDerivation rec { @@ -19,13 +20,17 @@ stdenv.mkDerivation rec { hash = "sha256-mVUxxYe6teiJ18PQ9703/kjBpJ9+a7vcDme+NwtQQQM="; }; - outputs = [ "bin" "dev" "out" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "doc" + ]; patches = # Disable broken test on musl libc # https://github.com/AcademySoftwareFoundation/openexr/issues/1556 - lib.optional stdenv.hostPlatform.isMusl ./disable-iex-test.patch - ; + lib.optional stdenv.hostPlatform.isMusl ./disable-iex-test.patch; # tests are determined to use /var/tmp on unix postPatch = '' @@ -36,8 +41,14 @@ stdenv.mkDerivation rec { cmakeFlags = lib.optional stdenv.hostPlatform.isStatic "-DCMAKE_SKIP_RPATH=ON"; - nativeBuildInputs = [ cmake pkg-config ]; - propagatedBuildInputs = [ imath libdeflate ]; + nativeBuildInputs = [ + cmake + pkg-config + ]; + propagatedBuildInputs = [ + imath + libdeflate + ]; # Without 'sse' enforcement tests fail on i686 as due to excessive precision as: # error reading back channel B pixel 21,-76 got -nan expected -nan diff --git a/pkgs/by-name/op/openexr/default.nix b/pkgs/by-name/op/openexr/default.nix index 6d45ca3..0bcf2e8 100644 --- a/pkgs/by-name/op/openexr/default.nix +++ b/pkgs/by-name/op/openexr/default.nix @@ -1,17 +1,23 @@ -{ lib -, stdenv -, fetchFromGitHub -, zlib -, ilmbase -, fetchpatch -, cmake +{ + lib, + stdenv, + fetchFromGitHub, + zlib, + ilmbase, + fetchpatch, + cmake, }: stdenv.mkDerivation rec { pname = "openexr"; version = "2.5.10"; - outputs = [ "bin" "dev" "out" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "doc" + ]; src = fetchFromGitHub { owner = "AcademySoftwareFoundation"; @@ -54,7 +60,10 @@ stdenv.mkDerivation rec { ] ++ lib.optional stdenv.hostPlatform.isStatic "-DCMAKE_SKIP_RPATH=ON"; nativeBuildInputs = [ cmake ]; - propagatedBuildInputs = [ ilmbase zlib ]; + propagatedBuildInputs = [ + ilmbase + zlib + ]; # https://github.com/AcademySoftwareFoundation/openexr/issues/1400 # https://github.com/AcademySoftwareFoundation/openexr/issues/1281 diff --git a/pkgs/by-name/op/openexr/packages.nix b/pkgs/by-name/op/openexr/packages.nix index 7ea0169..680a917 100644 --- a/pkgs/by-name/op/openexr/packages.nix +++ b/pkgs/by-name/op/openexr/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { openexr = openexr_2; openexr_2 = callPackage ./. { }; openexr_3 = callPackage ./3.nix { }; diff --git a/pkgs/by-name/op/openjpeg/default.nix b/pkgs/by-name/op/openjpeg/default.nix index 12b05df..86ad442 100644 --- a/pkgs/by-name/op/openjpeg/default.nix +++ b/pkgs/by-name/op/openjpeg/default.nix @@ -1,9 +1,21 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config -, libdeflate, libpng, libtiff, zlib, lcms2, jpylyzer -, jpipLibSupport ? false # JPIP library & executables -, jpipServerSupport ? false, curl, fcgi # JPIP Server -, jdk -, poppler +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + libdeflate, + libpng, + libtiff, + zlib, + lcms2, + jpylyzer, + jpipLibSupport ? false, # JPIP library & executables + jpipServerSupport ? false, + curl, + fcgi, # JPIP Server + jdk, + poppler, }: let @@ -21,7 +33,10 @@ stdenv.mkDerivation rec { hash = "sha256-mQ9B3MJY2/bg0yY/7jUJrAXM6ozAHT5fmwES5Q1SGxw="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; cmakeFlags = [ "-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib" @@ -35,10 +50,22 @@ stdenv.mkDerivation rec { (mkFlag doCheck "BUILD_TESTING") ]; - nativeBuildInputs = [ cmake pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + ]; - buildInputs = [ libpng libtiff zlib lcms2 ] - ++ lib.optionals jpipServerSupport [ curl fcgi ] + buildInputs = + [ + libpng + libtiff + zlib + lcms2 + ] + ++ lib.optionals jpipServerSupport [ + curl + fcgi + ] ++ lib.optional (jpipLibSupport) jdk; doCheck = (!stdenv.isAarch64 && !stdenv.hostPlatform.isPower64); # tests fail on aarch64-linux and powerpc64 diff --git a/pkgs/by-name/op/openldap/default.nix b/pkgs/by-name/op/openldap/default.nix index 4a00f40..11acb43 100644 --- a/pkgs/by-name/op/openldap/default.nix +++ b/pkgs/by-name/op/openldap/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchurl +{ + lib, + stdenv, + fetchurl, -# dependencies -, cyrus_sasl -, groff -, libsodium -, libtool -, openssl -, systemdMinimal -, libxcrypt + # dependencies + cyrus_sasl, + groff, + libsodium, + libtool, + openssl, + systemdMinimal, + libxcrypt, # for passthru.tests # , nixosTests @@ -36,41 +37,42 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - nativeBuildInputs = [ - groff - ]; + nativeBuildInputs = [ groff ]; - buildInputs = [ - (cyrus_sasl.override { - inherit openssl; - }) - libsodium - libtool - openssl - ] ++ lib.optionals (stdenv.isLinux) [ - libxcrypt # causes linking issues on *-darwin - systemdMinimal - ]; + buildInputs = + [ + (cyrus_sasl.override { inherit openssl; }) + libsodium + libtool + openssl + ] + ++ lib.optionals (stdenv.isLinux) [ + libxcrypt # causes linking issues on *-darwin + systemdMinimal + ]; preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") '' MACOSX_DEPLOYMENT_TARGET=10.16 ''; - configureFlags = [ - "--enable-argon2" - "--enable-crypt" - "--enable-modules" - "--enable-overlays" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "--with-yielding_select=yes" - "ac_cv_func_memcmp_working=yes" - ] ++ lib.optional stdenv.isFreeBSD "--with-pic"; + configureFlags = + [ + "--enable-argon2" + "--enable-crypt" + "--enable-modules" + "--enable-overlays" + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "--with-yielding_select=yes" + "ac_cv_func_memcmp_working=yes" + ] + ++ lib.optional stdenv.isFreeBSD "--with-pic"; env.NIX_CFLAGS_COMPILE = toString [ "-DLDAPI_SOCK=\"/run/openldap/ldapi\"" ]; - makeFlags= [ + makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" - "STRIP=" # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase. + "STRIP=" # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase. "STRIP_OPTS=" "prefix=${placeholder "out"}" "sysconfdir=/etc" diff --git a/pkgs/by-name/op/openmpi/default.nix b/pkgs/by-name/op/openmpi/default.nix index 913cccf..3f8696c 100644 --- a/pkgs/by-name/op/openmpi/default.nix +++ b/pkgs/by-name/op/openmpi/default.nix @@ -1,31 +1,52 @@ -{ lib, stdenv, fetchurl, removeReferencesTo, gfortran, perl, libnl -, rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin -, libpsm2, libfabric, pmix, ucx, ucc, makeWrapper -, config -# Enable CUDA support -, cudaSupport ? config.cudaSupport, cudaPackages ? null +{ + lib, + stdenv, + fetchurl, + removeReferencesTo, + gfortran, + perl, + libnl, + rdma-core, + zlib, + numactl, + libevent, + hwloc, + targetPackages, + symlinkJoin, + libpsm2, + libfabric, + pmix, + ucx, + ucc, + makeWrapper, + config, + # Enable CUDA support + cudaSupport ? config.cudaSupport, + cudaPackages ? null, -# Enable the Sun Grid Engine bindings -, enableSGE ? false + # Enable the Sun Grid Engine bindings + enableSGE ? false, -# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default -, enablePrefix ? false + # Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default + enablePrefix ? false, -# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux -, fabricSupport ? stdenv.isLinux && stdenv.isx86_64 + # Enable libfabric support (necessary for Omnipath networks) on x86_64 linux + fabricSupport ? stdenv.isLinux && stdenv.isx86_64, -# Enable Fortran support -, fortranSupport ? true + # Enable Fortran support + fortranSupport ? true, }: stdenv.mkDerivation rec { pname = "openmpi"; version = "4.1.6"; - src = with lib.versions; fetchurl { - url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2"; - sha256 = "sha256-90CZRIVRbetjtTEa8SLCZRefUyig2FelZ7hdsAsR5BU="; - }; + src = + with lib.versions; + fetchurl { + url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2"; + sha256 = "sha256-90CZRIVRbetjtTEa8SLCZRefUyig2FelZ7hdsAsR5BU="; + }; postPatch = '' patchShebangs ./ @@ -38,34 +59,63 @@ stdenv.mkDerivation rec { find -name "Makefile.in" -exec sed -i "s/\`date\`/$ts/" \{} \; ''; - outputs = [ "out" "man" "dev" ]; + outputs = [ + "out" + "man" + "dev" + ]; - buildInputs = [ zlib ] - ++ lib.optionals stdenv.isLinux [ libnl numactl pmix ucx ucc ] + buildInputs = + [ zlib ] + ++ lib.optionals stdenv.isLinux [ + libnl + numactl + pmix + ucx + ucc + ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_cudart ] - ++ [ libevent hwloc ] + ++ [ + libevent + hwloc + ] ++ lib.optional (stdenv.isLinux || stdenv.isFreeBSD) rdma-core - ++ lib.optionals fabricSupport [ libpsm2 libfabric ]; + ++ lib.optionals fabricSupport [ + libpsm2 + libfabric + ]; - nativeBuildInputs = [ perl removeReferencesTo makeWrapper ] + nativeBuildInputs = + [ + perl + removeReferencesTo + makeWrapper + ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ] ++ lib.optionals fortranSupport [ gfortran ]; - configureFlags = lib.optional (!cudaSupport) "--disable-mca-dso" + configureFlags = + lib.optional (!cudaSupport) "--disable-mca-dso" ++ lib.optional (!fortranSupport) "--disable-mpi-fortran" - ++ lib.optionals stdenv.isLinux [ + ++ lib.optionals stdenv.isLinux [ "--with-libnl=${lib.getDev libnl}" "--with-pmix=${lib.getDev pmix}" "--with-pmix-libdir=${pmix}/lib" "--enable-mpi-cxx" - ] ++ lib.optional enableSGE "--with-sge" + ] + ++ lib.optional enableSGE "--with-sge" ++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default" # TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build # https://github.com/openucx/ucx # https://www.open-mpi.org/faq/?category=buildcuda - ++ lib.optionals cudaSupport [ "--with-cuda=${cudaPackages.cuda_cudart}" "--enable-dlopen" ] - ++ lib.optionals fabricSupport [ "--with-psm2=${lib.getDev libpsm2}" "--with-libfabric=${lib.getDev libfabric}" ] - ; + ++ lib.optionals cudaSupport [ + "--with-cuda=${cudaPackages.cuda_cudart}" + "--enable-dlopen" + ] + ++ lib.optionals fabricSupport [ + "--with-psm2=${lib.getDev libpsm2}" + "--with-libfabric=${lib.getDev libfabric}" + ]; enableParallelBuilding = true; @@ -85,39 +135,41 @@ stdenv.mkDerivation rec { done moveToOutput "share/openmpi/ortecc-wrapper-data.txt" "''${!outputDev}" - ''; - - postFixup = '' - remove-references-to -t $dev $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) - remove-references-to -t $man $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) - - # The path to the wrapper is hard coded in libopen-pal.so, which we just cleared. - wrapProgram $dev/bin/opal_wrapper \ - --set OPAL_INCLUDEDIR $dev/include \ - --set OPAL_PKGDATADIR $dev/share/openmpi - - # default compilers should be indentical to the - # compilers at build time - - echo "$dev/share/openmpi/mpicc-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - $dev/share/openmpi/mpicc-wrapper-data.txt - - echo "$dev/share/openmpi/ortecc-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ - $dev/share/openmpi/ortecc-wrapper-data.txt - - echo "$dev/share/openmpi/mpic++-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \ - $dev/share/openmpi/mpic++-wrapper-data.txt - '' + lib.optionalString fortranSupport '' - - echo "$dev/share/openmpi/mpifort-wrapper-data.txt" - sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \ - $dev/share/openmpi/mpifort-wrapper-data.txt - ''; + postFixup = + '' + remove-references-to -t $dev $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) + remove-references-to -t $man $(readlink -f $out/lib/libopen-pal${stdenv.hostPlatform.extensions.sharedLibrary}) + + # The path to the wrapper is hard coded in libopen-pal.so, which we just cleared. + wrapProgram $dev/bin/opal_wrapper \ + --set OPAL_INCLUDEDIR $dev/include \ + --set OPAL_PKGDATADIR $dev/share/openmpi + + # default compilers should be indentical to the + # compilers at build time + + echo "$dev/share/openmpi/mpicc-wrapper-data.txt" + sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ + $dev/share/openmpi/mpicc-wrapper-data.txt + + echo "$dev/share/openmpi/ortecc-wrapper-data.txt" + sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \ + $dev/share/openmpi/ortecc-wrapper-data.txt + + echo "$dev/share/openmpi/mpic++-wrapper-data.txt" + sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \ + $dev/share/openmpi/mpic++-wrapper-data.txt + '' + + lib.optionalString fortranSupport '' + + echo "$dev/share/openmpi/mpifort-wrapper-data.txt" + sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \ + $dev/share/openmpi/mpifort-wrapper-data.txt + + ''; + doCheck = true; passthru = { diff --git a/pkgs/by-name/op/openmpi/packages.nix b/pkgs/by-name/op/openmpi/packages.nix index 95e875f..e41bb9f 100644 --- a/pkgs/by-name/op/openmpi/packages.nix +++ b/pkgs/by-name/op/openmpi/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { openmpi = callPackage ./. { }; mpi = openmpi; # this attribute should used to build MPI applications mpiCheckPhaseHook = callPackage (path + "/pkgs/build-support/setup-hooks/mpi-check-hook") { }; diff --git a/pkgs/by-name/op/opensp/default.nix b/pkgs/by-name/op/opensp/default.nix index 27f5dc4..b4e0998 100644 --- a/pkgs/by-name/op/opensp/default.nix +++ b/pkgs/by-name/op/opensp/default.nix @@ -1,6 +1,15 @@ -{ lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412 -, docbook_xsl, autoconf, automake, libtool -, autoreconfHook +{ + lib, + stdenv, + fetchurl, + fetchpatch, + xmlto, + docbook_xml_dtd_412, + docbook_xsl, + autoconf, + automake, + libtool, + autoreconfHook, }: stdenv.mkDerivation rec { @@ -32,7 +41,7 @@ stdenv.mkDerivation rec { # Remove random ids in the release notes sed -i -e 's/href="#idm.*"//g' $out/share/doc/OpenSP/releasenotes.html sed -i -e 's/name="idm.*"//g' $out/share/doc/OpenSP/releasenotes.html - ''; + ''; preConfigure = lib.optionalString stdenv.isCygwin '' autoreconf -fi @@ -40,15 +49,20 @@ stdenv.mkDerivation rec { strictDeps = true; - nativeBuildInputs = [ - xmlto - docbook_xml_dtd_412 - docbook_xsl - ] - # Clang 16 fails to build due to inappropriate definitions in the `config.h` generated by the - # existing configure scripts. Regenerate them to make sure they detect its features correctly. - ++ lib.optional stdenv.cc.isClang autoreconfHook - ++ lib.optionals stdenv.isCygwin [ autoconf automake libtool ]; + nativeBuildInputs = + [ + xmlto + docbook_xml_dtd_412 + docbook_xsl + ] + # Clang 16 fails to build due to inappropriate definitions in the `config.h` generated by the + # existing configure scripts. Regenerate them to make sure they detect its features correctly. + ++ lib.optional stdenv.cc.isClang autoreconfHook + ++ lib.optionals stdenv.isCygwin [ + autoconf + automake + libtool + ]; doCheck = false; # fails diff --git a/pkgs/by-name/op/openssh/common.nix b/pkgs/by-name/op/openssh/common.nix index 8d26085..2ec55a9 100644 --- a/pkgs/by-name/op/openssh/common.nix +++ b/pkgs/by-name/op/openssh/common.nix @@ -1,37 +1,40 @@ -{ pname -, version -, extraDesc ? "" -, src -, extraPatches ? [] -, extraNativeBuildInputs ? [] -, extraConfigureFlags ? [] -, extraMeta ? {} +{ + pname, + version, + extraDesc ? "", + src, + extraPatches ? [ ], + extraNativeBuildInputs ? [ ], + extraConfigureFlags ? [ ], + extraMeta ? { }, }: -{ lib, stdenv -# This *is* correct, though unusual. as a way of getting krb5-config from the -# package without splicing See: https://github.com/NixOS/nixpkgs/pull/107606 -, pkgs -, fetchurl -, autoreconfHook -, zlib -, openssl -, libedit -, ldns -, pkg-config -, pam -, libredirect -, etcDir ? null -, withKerberos ? true -, withLdns ? true -, libkrb5 -, libfido2 -, libxcrypt -, hostname -, withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl -, withPAM ? stdenv.hostPlatform.isLinux -, dsaKeysSupport ? false -, linkOpenssl ? true +{ + lib, + stdenv, + # This *is* correct, though unusual. as a way of getting krb5-config from the + # package without splicing See: https://github.com/NixOS/nixpkgs/pull/107606 + pkgs, + fetchurl, + autoreconfHook, + zlib, + openssl, + libedit, + ldns, + pkg-config, + pam, + libredirect, + etcDir ? null, + withKerberos ? true, + withLdns ? true, + libkrb5, + libfido2, + libxcrypt, + hostname, + withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl, + withPAM ? stdenv.hostPlatform.isLinux, + dsaKeysSupport ? false, + linkOpenssl ? true, # for passthru.tests # , nixosTests }: @@ -59,13 +62,21 @@ stdenv.mkDerivation { ''; strictDeps = true; - nativeBuildInputs = [ autoreconfHook pkg-config ] + nativeBuildInputs = + [ + autoreconfHook + pkg-config + ] # This is not the same as the libkrb5 from the inputs! pkgs.libkrb5 is # needed here to access krb5-config in order to cross compile. See: # https://github.com/NixOS/nixpkgs/pull/107606 ++ lib.optional withKerberos pkgs.libkrb5 ++ extraNativeBuildInputs; - buildInputs = [ zlib libedit ] + buildInputs = + [ + zlib + libedit + ] ++ [ (if linkOpenssl then openssl else libxcrypt) ] ++ lib.optional withFIDO libfido2 ++ lib.optional withKerberos libkrb5 @@ -80,24 +91,31 @@ stdenv.mkDerivation { # I set --disable-strip because later we strip anyway. And it fails to strip # properly when cross building. - configureFlags = [ - "--sbindir=\${out}/bin" - "--localstatedir=/var" - "--with-pid-dir=/run" - "--with-mantype=man" - "--with-libedit=yes" - "--disable-strip" - (lib.withFeature withPAM "pam") - (lib.enableFeature dsaKeysSupport "dsa-keys") - ] ++ lib.optional (etcDir != null) "--sysconfdir=${etcDir}" + configureFlags = + [ + "--sbindir=\${out}/bin" + "--localstatedir=/var" + "--with-pid-dir=/run" + "--with-mantype=man" + "--with-libedit=yes" + "--disable-strip" + (lib.withFeature withPAM "pam") + (lib.enableFeature dsaKeysSupport "dsa-keys") + ] + ++ lib.optional (etcDir != null) "--sysconfdir=${etcDir}" ++ lib.optional withFIDO "--with-security-key-builtin=yes" - ++ lib.optional withKerberos (assert libkrb5 != null; "--with-kerberos5=${libkrb5}") + ++ lib.optional withKerberos ( + assert libkrb5 != null; + "--with-kerberos5=${libkrb5}" + ) ++ lib.optional stdenv.isDarwin "--disable-libutil" ++ lib.optional (!linkOpenssl) "--without-openssl" ++ lib.optional withLdns "--with-ldns" ++ extraConfigureFlags; - ${if stdenv.hostPlatform.isStatic then "NIX_LDFLAGS" else null}= [ "-laudit" ] ++ lib.optionals withKerberos [ "-lkeyutils" ]; + ${if stdenv.hostPlatform.isStatic then "NIX_LDFLAGS" else null} = [ + "-laudit" + ] ++ lib.optionals withKerberos [ "-lkeyutils" ]; buildFlags = [ "SSH_KEYSIGN=ssh-keysign" ]; @@ -155,9 +173,14 @@ stdenv.mkDerivation { # integration tests hard to get working on darwin with its shaky # sandbox # t-exec tests fail on musl - checkTarget = lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "t-exec" + checkTarget = + lib.optional (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "t-exec" # other tests are less demanding of the environment - ++ [ "unit" "file-tests" "interop-tests" ]; + ++ [ + "unit" + "file-tests" + "interop-tests" + ]; postInstall = '' # Install ssh-copy-id, it's very useful. @@ -167,22 +190,28 @@ stdenv.mkDerivation { ''; installTargets = [ "install-nokeys" ]; - installFlags = [ - "sysconfdir=\${out}/etc/ssh" - ]; + installFlags = [ "sysconfdir=\${out}/etc/ssh" ]; # passthru.tests = { # borgbackup-integration = nixosTests.borgbackup; # openssh = nixosTests.openssh; # }; - meta = with lib; { - description = "An implementation of the SSH protocol${extraDesc}"; - homepage = "https://www.openssh.com/"; - changelog = "https://www.openssh.com/releasenotes.html"; - license = licenses.bsd2; - platforms = platforms.unix ++ platforms.windows; - maintainers = (extraMeta.maintainers or []) ++ (with maintainers; [ eelco aneeshusa ]); - mainProgram = "ssh"; - } // extraMeta; + meta = + with lib; + { + description = "An implementation of the SSH protocol${extraDesc}"; + homepage = "https://www.openssh.com/"; + changelog = "https://www.openssh.com/releasenotes.html"; + license = licenses.bsd2; + platforms = platforms.unix ++ platforms.windows; + maintainers = + (extraMeta.maintainers or [ ]) + ++ (with maintainers; [ + eelco + aneeshusa + ]); + mainProgram = "ssh"; + } + // extraMeta; } diff --git a/pkgs/by-name/op/openssh/copyid.nix b/pkgs/by-name/op/openssh/copyid.nix index 40707c2..a694b18 100644 --- a/pkgs/by-name/op/openssh/copyid.nix +++ b/pkgs/by-name/op/openssh/copyid.nix @@ -1,11 +1,13 @@ { runCommand, openssh }: -runCommand "ssh-copy-id-${openssh.version}" { - meta = openssh.meta // { - description = "A tool to copy SSH public keys to a remote machine"; - priority = (openssh.meta.priority or 0) - 1; - }; -} '' - install -Dm 755 {${openssh},$out}/bin/ssh-copy-id - install -Dm 644 {${openssh},$out}/share/man/man1/ssh-copy-id.1.gz -'' +runCommand "ssh-copy-id-${openssh.version}" + { + meta = openssh.meta // { + description = "A tool to copy SSH public keys to a remote machine"; + priority = (openssh.meta.priority or 0) - 1; + }; + } + '' + install -Dm 755 {${openssh},$out}/bin/ssh-copy-id + install -Dm 644 {${openssh},$out}/share/man/man1/ssh-copy-id.1.gz + '' diff --git a/pkgs/by-name/op/openssh/default.nix b/pkgs/by-name/op/openssh/default.nix index 855ce3d..84e3770 100644 --- a/pkgs/by-name/op/openssh/default.nix +++ b/pkgs/by-name/op/openssh/default.nix @@ -1,4 +1,10 @@ -{ callPackage, lib, fetchurl, fetchpatch, autoreconfHook }: +{ + callPackage, + lib, + fetchurl, + fetchpatch, + autoreconfHook, +}: let common = opts: callPackage (import ./common.nix opts) { }; in @@ -26,27 +32,30 @@ in hash = "sha256-SQQm92bYKidj/KzY2D6j1weYdQx70q/y5X3FZg93P/0="; }; - extraPatches = let url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/b3f86656fc67aa397f60747c85f7f7b967c3279d/security/openssh-portable/files/extra-patch-hpn"; in - [ - ./ssh-keysign-8.5.patch + extraPatches = + let + url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/b3f86656fc67aa397f60747c85f7f7b967c3279d/security/openssh-portable/files/extra-patch-hpn"; + in + [ + ./ssh-keysign-8.5.patch - # HPN Patch from FreeBSD ports - (fetchpatch { - name = "ssh-hpn-wo-channels.patch"; - inherit url; - stripLen = 1; - excludes = [ "channels.c" ]; - hash = "sha256-MydulQvz8sDVQ6Up9U1yrsiyI5EGmyKl/stUk7DvVOU="; - }) + # HPN Patch from FreeBSD ports + (fetchpatch { + name = "ssh-hpn-wo-channels.patch"; + inherit url; + stripLen = 1; + excludes = [ "channels.c" ]; + hash = "sha256-MydulQvz8sDVQ6Up9U1yrsiyI5EGmyKl/stUk7DvVOU="; + }) - (fetchpatch { - name = "ssh-hpn-channels.patch"; - inherit url; - extraPrefix = ""; - includes = [ "channels.c" ]; - hash = "sha256-pDLUbjv5XIyByEbiRAXC3WMUPKmn15af1stVmcvr7fE="; - }) - ]; + (fetchpatch { + name = "ssh-hpn-channels.patch"; + inherit url; + extraPrefix = ""; + includes = [ "channels.c" ]; + hash = "sha256-pDLUbjv5XIyByEbiRAXC3WMUPKmn15af1stVmcvr7fE="; + }) + ]; extraNativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/by-name/op/openssh/packages.nix b/pkgs/by-name/op/openssh/packages.nix index 4427ade..d1652f9 100644 --- a/pkgs/by-name/op/openssh/packages.nix +++ b/pkgs/by-name/op/openssh/packages.nix @@ -1,21 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ - opensshPackages = dontRecurseIntoAttrs (callPackage ./. {}); +with pkgs; { + opensshPackages = dontRecurseIntoAttrs (callPackage ./. { }); - openssh = opensshPackages.openssh.override { - etcDir = "/etc/ssh"; - }; + openssh = opensshPackages.openssh.override { etcDir = "/etc/ssh"; }; - openssh_hpn = opensshPackages.openssh_hpn.override { - etcDir = "/etc/ssh"; - }; + openssh_hpn = opensshPackages.openssh_hpn.override { etcDir = "/etc/ssh"; }; - openssh_gssapi = opensshPackages.openssh_gssapi.override { - etcDir = "/etc/ssh"; - }; + openssh_gssapi = opensshPackages.openssh_gssapi.override { etcDir = "/etc/ssh"; }; ssh-copy-id = callPackage ./copyid.nix { }; } diff --git a/pkgs/by-name/op/openssl/default.nix b/pkgs/by-name/op/openssl/default.nix index 86afc47..f227506 100644 --- a/pkgs/by-name/op/openssl/default.nix +++ b/pkgs/by-name/op/openssl/default.nix @@ -1,15 +1,24 @@ -{ lib, stdenv, fetchurl, buildPackages, perl, coreutils, writeShellScript -, makeWrapper -, withCryptodev ? false, cryptodev ? null -, withZlib ? false, zlib -, enableSSL2 ? false -, enableSSL3 ? false -, enableKTLS ? stdenv.isLinux -, static ? stdenv.hostPlatform.isStatic -# path to openssl.cnf file. will be placed in $etc/etc/ssl/openssl.cnf to replace the default -, conf ? null -, removeReferencesTo -, testers +{ + lib, + stdenv, + fetchurl, + buildPackages, + perl, + coreutils, + writeShellScript, + makeWrapper, + withCryptodev ? false, + cryptodev ? null, + withZlib ? false, + zlib, + enableSSL2 ? false, + enableSSL3 ? false, + enableKTLS ? stdenv.isLinux, + static ? stdenv.hostPlatform.isStatic, + # path to openssl.cnf file. will be placed in $etc/etc/ssl/openssl.cnf to replace the default + conf ? null, + removeReferencesTo, + testers, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -18,223 +27,264 @@ # files. let - common = { version, hash, patches ? [], withDocs ? false, extraMeta ? {} }: - stdenv.mkDerivation (finalAttrs: { - pname = "openssl"; - inherit version; + common = + { + version, + hash, + patches ? [ ], + withDocs ? false, + extraMeta ? { }, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "openssl"; + inherit version; - src = fetchurl { - url = "https://www.openssl.org/source/${finalAttrs.pname}-${version}.tar.gz"; - inherit hash; - }; + src = fetchurl { + url = "https://www.openssl.org/source/${finalAttrs.pname}-${version}.tar.gz"; + inherit hash; + }; - inherit patches; + inherit patches; - postPatch = '' - patchShebangs Configure - '' + lib.optionalString (lib.versionOlder version "1.1.1") '' - patchShebangs test/* - for a in test/t* ; do - substituteInPlace "$a" \ - --replace /bin/rm rm - done - '' - # config is a configure script which is not installed. - + lib.optionalString (lib.versionAtLeast version "1.1.1") '' - substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' - '' + lib.optionalString (lib.versionAtLeast version "1.1.1" && stdenv.hostPlatform.isMusl) '' - substituteInPlace crypto/async/arch/async_posix.h \ - --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \ - '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0' - '' - # Move ENGINESDIR into OPENSSLDIR for static builds, in order to move - # it to the separate etc output. - + lib.optionalString static '' - substituteInPlace Configurations/unix-Makefile.tmpl \ - --replace 'ENGINESDIR=$(libdir)/engines-{- $sover_dirname -}' \ - 'ENGINESDIR=$(OPENSSLDIR)/engines-{- $sover_dirname -}' - ''; + postPatch = + '' + patchShebangs Configure + '' + + lib.optionalString (lib.versionOlder version "1.1.1") '' + patchShebangs test/* + for a in test/t* ; do + substituteInPlace "$a" \ + --replace /bin/rm rm + done + '' + # config is a configure script which is not installed. + + lib.optionalString (lib.versionAtLeast version "1.1.1") '' + substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' + '' + + lib.optionalString (lib.versionAtLeast version "1.1.1" && stdenv.hostPlatform.isMusl) '' + substituteInPlace crypto/async/arch/async_posix.h \ + --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \ + '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0' + '' + # Move ENGINESDIR into OPENSSLDIR for static builds, in order to move + # it to the separate etc output. + + lib.optionalString static '' + substituteInPlace Configurations/unix-Makefile.tmpl \ + --replace 'ENGINESDIR=$(libdir)/engines-{- $sover_dirname -}' \ + 'ENGINESDIR=$(OPENSSLDIR)/engines-{- $sover_dirname -}' + ''; - outputs = [ "bin" "dev" "out" "man" ] - ++ lib.optional withDocs "doc" - # Separate output for the runtime dependencies of the static build. - # Specifically, move OPENSSLDIR into this output, as its path will be - # compiled into 'libcrypto.a'. This makes it a runtime dependency of - # any package that statically links openssl, so we want to keep that - # output minimal. - ++ lib.optional static "etc"; - setOutputFlags = false; - separateDebugInfo = - !stdenv.hostPlatform.isDarwin && - !(stdenv.hostPlatform.useLLVM or false) && - stdenv.cc.isGNU; + outputs = + [ + "bin" + "dev" + "out" + "man" + ] + ++ lib.optional withDocs "doc" + # Separate output for the runtime dependencies of the static build. + # Specifically, move OPENSSLDIR into this output, as its path will be + # compiled into 'libcrypto.a'. This makes it a runtime dependency of + # any package that statically links openssl, so we want to keep that + # output minimal. + ++ lib.optional static "etc"; + setOutputFlags = false; + separateDebugInfo = + !stdenv.hostPlatform.isDarwin && !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU; - nativeBuildInputs = - lib.optional (!stdenv.hostPlatform.isWindows) makeWrapper - ++ [ perl ] - ++ lib.optionals static [ removeReferencesTo ]; - buildInputs = lib.optional withCryptodev cryptodev - ++ lib.optional withZlib zlib; + nativeBuildInputs = + lib.optional (!stdenv.hostPlatform.isWindows) makeWrapper + ++ [ perl ] + ++ lib.optionals static [ removeReferencesTo ]; + buildInputs = lib.optional withCryptodev cryptodev ++ lib.optional withZlib zlib; - # TODO(@Ericson2314): Improve with mass rebuild - configurePlatforms = []; - configureScript = { - armv5tel-linux = "./Configure linux-armv4 -march=armv5te"; - armv6l-linux = "./Configure linux-armv4 -march=armv6"; - armv7l-linux = "./Configure linux-armv4 -march=armv7-a"; - x86_64-darwin = "./Configure darwin64-x86_64-cc"; - aarch64-darwin = "./Configure darwin64-arm64-cc"; - x86_64-linux = "./Configure linux-x86_64"; - x86_64-solaris = "./Configure solaris64-x86_64-gcc"; - powerpc64-linux = "./Configure linux-ppc64"; - riscv64-linux = "./Configure linux64-riscv64"; - }.${stdenv.hostPlatform.system} or ( - if stdenv.hostPlatform == stdenv.buildPlatform - then "./config" - else if stdenv.hostPlatform.isBSD - then if stdenv.hostPlatform.isx86_64 then "./Configure BSD-x86_64" - else if stdenv.hostPlatform.isx86_32 - then "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf" - else "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" - else if stdenv.hostPlatform.isMinGW - then "./Configure mingw${lib.optionalString - (stdenv.hostPlatform.parsed.cpu.bits != 32) - (toString stdenv.hostPlatform.parsed.cpu.bits)}" - else if stdenv.hostPlatform.isLinux - then if stdenv.hostPlatform.isx86_64 then "./Configure linux-x86_64" - else if stdenv.hostPlatform.isMips32 then "./Configure linux-mips32" - else if stdenv.hostPlatform.isMips64n32 then "./Configure linux-mips64" - else if stdenv.hostPlatform.isMips64n64 then "./Configure linux64-mips64" - else "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" - else if stdenv.hostPlatform.isiOS - then "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross" - else - throw "Not sure what configuration to use for ${stdenv.hostPlatform.config}" - ); + # TODO(@Ericson2314): Improve with mass rebuild + configurePlatforms = [ ]; + configureScript = + { + armv5tel-linux = "./Configure linux-armv4 -march=armv5te"; + armv6l-linux = "./Configure linux-armv4 -march=armv6"; + armv7l-linux = "./Configure linux-armv4 -march=armv7-a"; + x86_64-darwin = "./Configure darwin64-x86_64-cc"; + aarch64-darwin = "./Configure darwin64-arm64-cc"; + x86_64-linux = "./Configure linux-x86_64"; + x86_64-solaris = "./Configure solaris64-x86_64-gcc"; + powerpc64-linux = "./Configure linux-ppc64"; + riscv64-linux = "./Configure linux64-riscv64"; + } + .${stdenv.hostPlatform.system} or ( + if stdenv.hostPlatform == stdenv.buildPlatform then + "./config" + else if stdenv.hostPlatform.isBSD then + if stdenv.hostPlatform.isx86_64 then + "./Configure BSD-x86_64" + else if stdenv.hostPlatform.isx86_32 then + "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf" + else + "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" + else if stdenv.hostPlatform.isMinGW then + "./Configure mingw${ + lib.optionalString (stdenv.hostPlatform.parsed.cpu.bits != 32) ( + toString stdenv.hostPlatform.parsed.cpu.bits + ) + }" + else if stdenv.hostPlatform.isLinux then + if stdenv.hostPlatform.isx86_64 then + "./Configure linux-x86_64" + else if stdenv.hostPlatform.isMips32 then + "./Configure linux-mips32" + else if stdenv.hostPlatform.isMips64n32 then + "./Configure linux-mips64" + else if stdenv.hostPlatform.isMips64n64 then + "./Configure linux64-mips64" + else + "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" + else if stdenv.hostPlatform.isiOS then + "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross" + else + throw "Not sure what configuration to use for ${stdenv.hostPlatform.config}" + ); - # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags. - dontAddStaticConfigureFlags = true; - configureFlags = [ - "shared" # "shared" builds both shared and static libraries - "--libdir=lib" - (if !static then - "--openssldir=etc/ssl" - else - # Move OPENSSLDIR to the 'etc' output for static builds. Prepend '/.' - # to the path to make it appear absolute before variable expansion, - # else the 'prefix' would be prepended to it. - "--openssldir=/.$(etc)/etc/ssl" - ) - ] ++ lib.optionals withCryptodev [ - "-DHAVE_CRYPTODEV" - "-DUSE_CRYPTODEV_DIGESTS" - ] ++ lib.optional enableSSL2 "enable-ssl2" - ++ lib.optional enableSSL3 "enable-ssl3" - # We select KTLS here instead of the configure-time detection (which we patch out). - # KTLS should work on FreeBSD 13+ as well, so we could enable it if someone tests it. - ++ lib.optional (lib.versionAtLeast version "3.0.0" && enableKTLS) "enable-ktls" - ++ lib.optional (lib.versionAtLeast version "1.1.1" && stdenv.hostPlatform.isAarch64) "no-afalgeng" - # OpenSSL needs a specific `no-shared` configure flag. - # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options - # for a comprehensive list of configuration options. - ++ lib.optional (lib.versionAtLeast version "1.1.1" && static) "no-shared" - ++ lib.optional (lib.versionAtLeast version "3.0.0" && static) "no-module" - # This introduces a reference to the CTLOG_FILE which is undesired when - # trying to build binaries statically. - ++ lib.optional static "no-ct" - ++ lib.optional withZlib "zlib" - ++ lib.optionals (stdenv.hostPlatform.isMips && stdenv.hostPlatform ? gcc.arch) [ - # This is necessary in order to avoid openssl adding -march - # flags which ultimately conflict with those added by - # cc-wrapper. Openssl assumes that it can scan CFLAGS to - # detect any -march flags, using this perl code: - # - # && !grep { $_ =~ /-m(ips|arch=)/ } (@{$config{CFLAGS}}) - # - # The following bogus CFLAGS environment variable triggers the - # the code above, inhibiting `./Configure` from adding the - # conflicting flags. - "CFLAGS=-march=${stdenv.hostPlatform.gcc.arch}" - ]; + # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags. + dontAddStaticConfigureFlags = true; + configureFlags = + [ + "shared" # "shared" builds both shared and static libraries + "--libdir=lib" + ( + if !static then + "--openssldir=etc/ssl" + else + # Move OPENSSLDIR to the 'etc' output for static builds. Prepend '/.' + # to the path to make it appear absolute before variable expansion, + # else the 'prefix' would be prepended to it. + "--openssldir=/.$(etc)/etc/ssl" + ) + ] + ++ lib.optionals withCryptodev [ + "-DHAVE_CRYPTODEV" + "-DUSE_CRYPTODEV_DIGESTS" + ] + ++ lib.optional enableSSL2 "enable-ssl2" + ++ lib.optional enableSSL3 "enable-ssl3" + # We select KTLS here instead of the configure-time detection (which we patch out). + # KTLS should work on FreeBSD 13+ as well, so we could enable it if someone tests it. + ++ lib.optional (lib.versionAtLeast version "3.0.0" && enableKTLS) "enable-ktls" + ++ lib.optional (lib.versionAtLeast version "1.1.1" && stdenv.hostPlatform.isAarch64) "no-afalgeng" + # OpenSSL needs a specific `no-shared` configure flag. + # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options + # for a comprehensive list of configuration options. + ++ lib.optional (lib.versionAtLeast version "1.1.1" && static) "no-shared" + ++ lib.optional (lib.versionAtLeast version "3.0.0" && static) "no-module" + # This introduces a reference to the CTLOG_FILE which is undesired when + # trying to build binaries statically. + ++ lib.optional static "no-ct" + ++ lib.optional withZlib "zlib" + ++ lib.optionals (stdenv.hostPlatform.isMips && stdenv.hostPlatform ? gcc.arch) [ + # This is necessary in order to avoid openssl adding -march + # flags which ultimately conflict with those added by + # cc-wrapper. Openssl assumes that it can scan CFLAGS to + # detect any -march flags, using this perl code: + # + # && !grep { $_ =~ /-m(ips|arch=)/ } (@{$config{CFLAGS}}) + # + # The following bogus CFLAGS environment variable triggers the + # the code above, inhibiting `./Configure` from adding the + # conflicting flags. + "CFLAGS=-march=${stdenv.hostPlatform.gcc.arch}" + ]; - makeFlags = [ - "MANDIR=$(man)/share/man" - # This avoids conflicts between man pages of openssl subcommands (for - # example 'ts' and 'err') man pages and their equivalent top-level - # command in other packages (respectively man-pages and moreutils). - # This is done in ubuntu and archlinux, and possiibly many other distros. - "MANSUFFIX=ssl" - ]; - - enableParallelBuilding = true; - - postInstall = - (if static then '' - # OPENSSLDIR has a reference to self - remove-references-to -t $out $out/lib/*.a - '' else '' - # If we're building dynamic libraries, then don't install static - # libraries. - if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then - rm "$out/lib/"*.a - fi - - # 'etc' is a separate output on static builds only. - etc=$out - '') + '' - mkdir -p $bin - mv $out/bin $bin/bin - - '' + lib.optionalString (!stdenv.hostPlatform.isWindows) - # makeWrapper is broken for windows cross (https://github.com/NixOS/nixpkgs/issues/120726) - '' - # c_rehash is a legacy perl script with the same functionality - # as `openssl rehash` - # this wrapper script is created to maintain backwards compatibility without - # depending on perl - makeWrapper $bin/bin/openssl $bin/bin/c_rehash \ - --add-flags "rehash" - '' + '' - - mkdir $dev - mv $out/include $dev/ - - # remove dependency on Perl at runtime - rm -r $etc/etc/ssl/misc - - rmdir $etc/etc/ssl/{certs,private} - - ${lib.optionalString (conf != null) "cat ${conf} > $etc/etc/ssl/openssl.cnf"} - ''; - - postFixup = lib.optionalString (!stdenv.hostPlatform.isWindows) '' - # Check to make sure the main output and the static runtime dependencies - # don't depend on perl - if grep -r '${buildPackages.perl}' $out $etc; then - echo "Found an erroneous dependency on perl ^^^" >&2 - exit 1 - fi - ''; - - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - - meta = with lib; { - homepage = "https://www.openssl.org/"; - changelog = "https://github.com/openssl/openssl/blob/openssl-${version}/CHANGES.md"; - description = "A cryptographic library that implements the SSL and TLS protocols"; - license = licenses.openssl; - mainProgram = "openssl"; - maintainers = with maintainers; [ thillux ]; - pkgConfigModules = [ - "libcrypto" - "libssl" - "openssl" + makeFlags = [ + "MANDIR=$(man)/share/man" + # This avoids conflicts between man pages of openssl subcommands (for + # example 'ts' and 'err') man pages and their equivalent top-level + # command in other packages (respectively man-pages and moreutils). + # This is done in ubuntu and archlinux, and possiibly many other distros. + "MANSUFFIX=ssl" ]; - platforms = platforms.all; - } // extraMeta; - }); -in { + enableParallelBuilding = true; + + postInstall = + ( + if static then + '' + # OPENSSLDIR has a reference to self + remove-references-to -t $out $out/lib/*.a + '' + else + '' + # If we're building dynamic libraries, then don't install static + # libraries. + if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then + rm "$out/lib/"*.a + fi + + # 'etc' is a separate output on static builds only. + etc=$out + '' + ) + + '' + mkdir -p $bin + mv $out/bin $bin/bin + + '' + + + lib.optionalString (!stdenv.hostPlatform.isWindows) + # makeWrapper is broken for windows cross (https://github.com/NixOS/nixpkgs/issues/120726) + '' + # c_rehash is a legacy perl script with the same functionality + # as `openssl rehash` + # this wrapper script is created to maintain backwards compatibility without + # depending on perl + makeWrapper $bin/bin/openssl $bin/bin/c_rehash \ + --add-flags "rehash" + '' + + '' + + mkdir $dev + mv $out/include $dev/ + + # remove dependency on Perl at runtime + rm -r $etc/etc/ssl/misc + + rmdir $etc/etc/ssl/{certs,private} + + ${lib.optionalString (conf != null) "cat ${conf} > $etc/etc/ssl/openssl.cnf"} + ''; + + postFixup = lib.optionalString (!stdenv.hostPlatform.isWindows) '' + # Check to make sure the main output and the static runtime dependencies + # don't depend on perl + if grep -r '${buildPackages.perl}' $out $etc; then + echo "Found an erroneous dependency on perl ^^^" >&2 + exit 1 + fi + ''; + + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + + meta = + with lib; + { + homepage = "https://www.openssl.org/"; + changelog = "https://github.com/openssl/openssl/blob/openssl-${version}/CHANGES.md"; + description = "A cryptographic library that implements the SSL and TLS protocols"; + license = licenses.openssl; + mainProgram = "openssl"; + maintainers = with maintainers; [ thillux ]; + pkgConfigModules = [ + "libcrypto" + "libssl" + "openssl" + ]; + platforms = platforms.all; + } + // extraMeta; + }); + +in +{ # intended version "policy": # - 1.1 as long as some package exists, which does not build without it # - latest 3.x LTS @@ -252,9 +302,9 @@ in { patches = [ ./1.1/nix-ssl-cert-file.patch - (if stdenv.hostPlatform.isDarwin - then ./use-etc-ssl-certs-darwin.patch - else ./use-etc-ssl-certs.patch) + ( + if stdenv.hostPlatform.isDarwin then ./use-etc-ssl-certs-darwin.patch else ./use-etc-ssl-certs.patch + ) ]; withDocs = true; extraMeta = { @@ -275,9 +325,9 @@ in { # This patch disables build-time detection. ./3.0/openssl-disable-kernel-detection.patch - (if stdenv.hostPlatform.isDarwin - then ./use-etc-ssl-certs-darwin.patch - else ./use-etc-ssl-certs.patch) + ( + if stdenv.hostPlatform.isDarwin then ./use-etc-ssl-certs-darwin.patch else ./use-etc-ssl-certs.patch + ) ]; withDocs = true; @@ -298,9 +348,12 @@ in { # This patch disables build-time detection. ./3.0/openssl-disable-kernel-detection.patch - (if stdenv.hostPlatform.isDarwin - then ./3.2/use-etc-ssl-certs-darwin.patch - else ./3.2/use-etc-ssl-certs.patch) + ( + if stdenv.hostPlatform.isDarwin then + ./3.2/use-etc-ssl-certs-darwin.patch + else + ./3.2/use-etc-ssl-certs.patch + ) ]; withDocs = true; @@ -321,9 +374,12 @@ in { # This patch disables build-time detection. ./3.0/openssl-disable-kernel-detection.patch - (if stdenv.hostPlatform.isDarwin - then ./3.2/use-etc-ssl-certs-darwin.patch - else ./3.2/use-etc-ssl-certs.patch) + ( + if stdenv.hostPlatform.isDarwin then + ./3.2/use-etc-ssl-certs-darwin.patch + else + ./3.2/use-etc-ssl-certs.patch + ) ]; withDocs = true; diff --git a/pkgs/by-name/op/openssl/packages.nix b/pkgs/by-name/op/openssl/packages.nix index 6f5163e..1adae38 100644 --- a/pkgs/by-name/op/openssl/packages.nix +++ b/pkgs/by-name/op/openssl/packages.nix @@ -1,17 +1,15 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { openssl = openssl_3; - openssl_legacy = openssl.override { - conf = ./3.0/legacy.cnf; - }; + openssl_legacy = openssl.override { conf = ./3.0/legacy.cnf; }; inherit (callPackages ./. { }) openssl_1_1 openssl_3 openssl_3_2 - openssl_3_3; + openssl_3_3 + ; } diff --git a/pkgs/by-name/pa/pam/default.nix b/pkgs/by-name/pa/pam/default.nix index cb5b13e..73b83d9 100644 --- a/pkgs/by-name/pa/pam/default.nix +++ b/pkgs/by-name/pa/pam/default.nix @@ -1,6 +1,17 @@ -{ lib, stdenv, buildPackages, fetchurl, fetchpatch -, flex, cracklib, db4, gettext, audit, libxcrypt -, autoreconfHook269, pkg-config-unwrapped +{ + lib, + stdenv, + buildPackages, + fetchurl, + fetchpatch, + flex, + cracklib, + db4, + gettext, + audit, + libxcrypt, + autoreconfHook269, + pkg-config-unwrapped, # for passthru.tests # , nixosTests }: @@ -35,30 +46,44 @@ stdenv.mkDerivation rec { ]; # Case-insensitivity workaround for https://github.com/linux-pam/linux-pam/issues/569 - postPatch = if stdenv.buildPlatform.isDarwin && stdenv.buildPlatform != stdenv.hostPlatform then '' - rm CHANGELOG - touch ChangeLog - '' else null; + postPatch = + if stdenv.buildPlatform.isDarwin && stdenv.buildPlatform != stdenv.hostPlatform then + '' + rm CHANGELOG + touch ChangeLog + '' + else + null; - outputs = [ "out" "doc" "man" /* "modules" */ ]; + outputs = [ + "out" + "doc" + "man" # "modules" + ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; # autoreconfHook269 is needed for `suid-wrapper-path.patch` above. # pkg-config-unwrapped is needed for `AC_CHECK_LIB` and `AC_SEARCH_LIBS` - nativeBuildInputs = [ flex autoreconfHook269 pkg-config-unwrapped ] - ++ lib.optional stdenv.buildPlatform.isDarwin gettext; + nativeBuildInputs = [ + flex + autoreconfHook269 + pkg-config-unwrapped + ] ++ lib.optional stdenv.buildPlatform.isDarwin gettext; - buildInputs = [ cracklib db4 libxcrypt ] - ++ lib.optional stdenv.buildPlatform.isLinux audit; + buildInputs = [ + cracklib + db4 + libxcrypt + ] ++ lib.optional stdenv.buildPlatform.isLinux audit; enableParallelBuilding = true; preConfigure = lib.optionalString (stdenv.hostPlatform.libc == "musl") '' - # export ac_cv_search_crypt=no - # (taken from Alpine linux, apparently insecure but also doesn't build O:)) - # disable insecure modules - # sed -e 's/pam_rhosts//g' -i modules/Makefile.am - sed -e 's/pam_rhosts//g' -i modules/Makefile.in + # export ac_cv_search_crypt=no + # (taken from Alpine linux, apparently insecure but also doesn't build O:)) + # disable insecure modules + # sed -e 's/pam_rhosts//g' -i modules/Makefile.am + sed -e 's/pam_rhosts//g' -i modules/Makefile.in ''; configureFlags = [ @@ -69,9 +94,7 @@ stdenv.mkDerivation rec { "--enable-lastlog" ]; - installFlags = [ - "SCONFIGDIR=${placeholder "out"}/etc/security" - ]; + installFlags = [ "SCONFIGDIR=${placeholder "out"}/etc/security" ]; doCheck = false; # fails diff --git a/pkgs/by-name/pa/pam/packages.nix b/pkgs/by-name/pa/pam/packages.nix index 2084880..5623021 100644 --- a/pkgs/by-name/pa/pam/packages.nix +++ b/pkgs/by-name/pa/pam/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { linux-pam = callPackage ./. { }; pam = if stdenv.isLinux then linux-pam else openpam; diff --git a/pkgs/by-name/pa/pango/default.nix b/pkgs/by-name/pa/pango/default.nix index 3428877..25cc793 100644 --- a/pkgs/by-name/pa/pango/default.nix +++ b/pkgs/by-name/pa/pango/default.nix @@ -1,70 +1,85 @@ -{ lib -, stdenv -, fetchurl -, pkg-config -, cairo -, harfbuzz -, libintl -, libthai -, darwin -, fribidi -, gnome -, gi-docgen -, makeFontsConf -, freefont_ttf -, meson -, ninja -, glib -, python3 -, x11Support? !stdenv.isDarwin, libXft -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, buildPackages, gobject-introspection -, testers +{ + lib, + stdenv, + fetchurl, + pkg-config, + cairo, + harfbuzz, + libintl, + libthai, + darwin, + fribidi, + gnome, + gi-docgen, + makeFontsConf, + freefont_ttf, + meson, + ninja, + glib, + python3, + x11Support ? !stdenv.isDarwin, + libXft, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + buildPackages, + gobject-introspection, + testers, }: stdenv.mkDerivation (finalAttrs: { pname = "pango"; version = "1.51.2"; - outputs = [ "bin" "out" "dev" ] ++ lib.optional withIntrospection "devdoc"; + outputs = [ + "bin" + "out" + "dev" + ] ++ lib.optional withIntrospection "devdoc"; src = fetchurl { - url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + url = + with finalAttrs; + "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "sha256-PbpAfytfwRfhkvMCXwocyO3B/ZuTSxxXiyuXNCE5QVo="; }; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - meson ninja - glib # for glib-mkenum - pkg-config - python3 - ] ++ lib.optionals withIntrospection [ - gi-docgen - gobject-introspection - ]; + nativeBuildInputs = + [ + meson + ninja + glib # for glib-mkenum + pkg-config + python3 + ] + ++ lib.optionals withIntrospection [ + gi-docgen + gobject-introspection + ]; - buildInputs = [ - fribidi - libthai - ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ - ApplicationServices - Carbon - CoreGraphics - CoreText - ]); + buildInputs = + [ + fribidi + libthai + ] + ++ lib.optionals stdenv.isDarwin ( + with darwin.apple_sdk.frameworks; + [ + ApplicationServices + Carbon + CoreGraphics + CoreText + ] + ); propagatedBuildInputs = [ cairo glib libintl harfbuzz - ] ++ lib.optionals x11Support [ - libXft - ]; + ] ++ lib.optionals x11Support [ libXft ]; mesonFlags = [ (lib.mesonBool "gtk_doc" withIntrospection) @@ -73,9 +88,7 @@ stdenv.mkDerivation (finalAttrs: { ]; # Fontconfig error: Cannot load default config file - FONTCONFIG_FILE = makeFontsConf { - fontDirectories = [ freefont_ttf ]; - }; + FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ freefont_ttf ]; }; # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake) # it should be a build-time dep for build @@ -99,9 +112,7 @@ stdenv.mkDerivation (finalAttrs: { freeze = "1.90.0"; }; tests = { - pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - }; + pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; }; }; diff --git a/pkgs/by-name/pa/pango/packages.nix b/pkgs/by-name/pa/pango/packages.nix index 2757e8c..0058878 100644 --- a/pkgs/by-name/pa/pango/packages.nix +++ b/pkgs/by-name/pa/pango/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - pango = callPackage ./. { - harfbuzz = harfbuzz.override { withCoreText = stdenv.isDarwin; }; - }; +with pkgs; { + pango = callPackage ./. { harfbuzz = harfbuzz.override { withCoreText = stdenv.isDarwin; }; }; } diff --git a/pkgs/by-name/pa/patchelf/default.nix b/pkgs/by-name/pa/patchelf/default.nix index 94c0539..1641d43 100644 --- a/pkgs/by-name/pa/patchelf/default.nix +++ b/pkgs/by-name/pa/patchelf/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -21,7 +25,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; # fails 8 out of 24 tests, problems when loading libc.so.6 - doCheck = stdenv.name == "stdenv-linux" + doCheck = + stdenv.name == "stdenv-linux" # test scripts require unprefixed bintools binaries # https://github.com/NixOS/patchelf/issues/417 && stdenv.cc.targetPrefix == ""; diff --git a/pkgs/by-name/pa/patchelf/unstable.nix b/pkgs/by-name/pa/patchelf/unstable.nix index c2d9b2c..5964e9e 100644 --- a/pkgs/by-name/pa/patchelf/unstable.nix +++ b/pkgs/by-name/pa/patchelf/unstable.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, autoreconfHook, fetchFromGitHub, unstableGitUpdater }: +{ + lib, + stdenv, + fetchurl, + autoreconfHook, + fetchFromGitHub, + unstableGitUpdater, +}: stdenv.mkDerivation rec { pname = "patchelf"; @@ -25,9 +32,7 @@ stdenv.mkDerivation rec { doCheck = !stdenv.isDarwin; passthru = { - updateScript = unstableGitUpdater { - url = "https://github.com/NixOS/patchelf.git"; - }; + updateScript = unstableGitUpdater { url = "https://github.com/NixOS/patchelf.git"; }; }; meta = with lib; { diff --git a/pkgs/by-name/pa/patchutils/0.3.3.nix b/pkgs/by-name/pa/patchutils/0.3.3.nix index f503541..f1aea0a 100644 --- a/pkgs/by-name/pa/patchutils/0.3.3.nix +++ b/pkgs/by-name/pa/patchutils/0.3.3.nix @@ -1,7 +1,10 @@ -{ callPackage, ... } @ args: +{ callPackage, ... }@args: -callPackage ./generic.nix (args // { - version = "0.3.3"; - sha256 = "0g5df00cj4nczrmr4k791l7la0sq2wnf8rn981fsrz1f3d2yix4i"; - patches = [ ./drop-comments.patch ]; # we would get into a cycle when using fetchpatch on this one -}) +callPackage ./generic.nix ( + args + // { + version = "0.3.3"; + sha256 = "0g5df00cj4nczrmr4k791l7la0sq2wnf8rn981fsrz1f3d2yix4i"; + patches = [ ./drop-comments.patch ]; # we would get into a cycle when using fetchpatch on this one + } +) diff --git a/pkgs/by-name/pa/patchutils/0.4.2.nix b/pkgs/by-name/pa/patchutils/0.4.2.nix index d3d26c1..b6815f9 100644 --- a/pkgs/by-name/pa/patchutils/0.4.2.nix +++ b/pkgs/by-name/pa/patchutils/0.4.2.nix @@ -1,9 +1,12 @@ -{ callPackage, python3, ... } @ args: +{ callPackage, python3, ... }@args: -callPackage ./generic.nix (args // { - version = "0.4.2"; - sha256 = "sha256-iHWwll/jPeYriQ9s15O+f6/kGk5VLtv2QfH+1eu/Re0="; - # for gitdiff - extraBuildInputs = [ python3 ]; - patches = [ ./Revert-Fix-grepdiff-test.patch ]; -}) +callPackage ./generic.nix ( + args + // { + version = "0.4.2"; + sha256 = "sha256-iHWwll/jPeYriQ9s15O+f6/kGk5VLtv2QfH+1eu/Re0="; + # for gitdiff + extraBuildInputs = [ python3 ]; + patches = [ ./Revert-Fix-grepdiff-test.patch ]; + } +) diff --git a/pkgs/by-name/pa/patchutils/default.nix b/pkgs/by-name/pa/patchutils/default.nix index 902773f..c79b1d7 100644 --- a/pkgs/by-name/pa/patchutils/default.nix +++ b/pkgs/by-name/pa/patchutils/default.nix @@ -1,6 +1,9 @@ -{ callPackage, ... } @ args: +{ callPackage, ... }@args: -callPackage ./generic.nix (args // { - version = "0.3.4"; - sha256 = "0xp8mcfyi5nmb5a2zi5ibmyshxkb1zv1dgmnyn413m7ahgdx8mfg"; -}) +callPackage ./generic.nix ( + args + // { + version = "0.3.4"; + sha256 = "0xp8mcfyi5nmb5a2zi5ibmyshxkb1zv1dgmnyn413m7ahgdx8mfg"; + } +) diff --git a/pkgs/by-name/pa/patchutils/generic.nix b/pkgs/by-name/pa/patchutils/generic.nix index d1cd433..047b4cf 100644 --- a/pkgs/by-name/pa/patchutils/generic.nix +++ b/pkgs/by-name/pa/patchutils/generic.nix @@ -1,6 +1,14 @@ -{ lib, stdenv, fetchurl, perl, makeWrapper -, version, sha256, patches ? [], extraBuildInputs ? [] -, ... +{ + lib, + stdenv, + fetchurl, + perl, + makeWrapper, + version, + sha256, + patches ? [ ], + extraBuildInputs ? [ ], + ... }: stdenv.mkDerivation rec { pname = "patchutils"; @@ -27,13 +35,15 @@ stdenv.mkDerivation rec { doCheck = lib.versionAtLeast version "0.3.4"; - preCheck = '' - patchShebangs tests - chmod +x scripts/* - '' + lib.optionalString (lib.versionOlder version "0.4.2") '' - find tests -type f -name 'run-test' \ - -exec sed -i '{}' -e 's|/bin/echo|echo|g' \; - ''; + preCheck = + '' + patchShebangs tests + chmod +x scripts/* + '' + + lib.optionalString (lib.versionOlder version "0.4.2") '' + find tests -type f -name 'run-test' \ + -exec sed -i '{}' -e 's|/bin/echo|echo|g' \; + ''; meta = with lib; { description = "Tools to manipulate patch files"; diff --git a/pkgs/by-name/pa/patchutils/packages.nix b/pkgs/by-name/pa/patchutils/packages.nix index 89b6c9c..eb4d9a4 100644 --- a/pkgs/by-name/pa/patchutils/packages.nix +++ b/pkgs/by-name/pa/patchutils/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { patchutils = callPackage ./. { }; patchutils_0_3_3 = callPackage ./0.3.3.nix { }; patchutils_0_4_2 = callPackage ./0.4.2.nix { }; diff --git a/pkgs/by-name/pb/pbzx/default.nix b/pkgs/by-name/pb/pbzx/default.nix index 44555cd..6a29217 100644 --- a/pkgs/by-name/pb/pbzx/default.nix +++ b/pkgs/by-name/pb/pbzx/default.nix @@ -1,4 +1,10 @@ -{stdenv, lib, fetchFromGitHub, xz, xar}: +{ + stdenv, + lib, + fetchFromGitHub, + xz, + xar, +}: stdenv.mkDerivation rec { pname = "pbzx"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { rev = "v${version}"; sha256 = "0bwd7wmnhpz1n5p39mh6asfyccj4cm06hwigslcwbb3pdwmvxc90"; }; - buildInputs = [ xz xar ]; + buildInputs = [ + xz + xar + ]; buildPhase = '' ${stdenv.cc.targetPrefix}cc pbzx.c -llzma -lxar -o pbzx ''; diff --git a/pkgs/by-name/pc/pcre/default.nix b/pkgs/by-name/pc/pcre/default.nix index 5221915..480c396 100644 --- a/pkgs/by-name/pc/pcre/default.nix +++ b/pkgs/by-name/pc/pcre/default.nix @@ -1,12 +1,22 @@ -{ lib, stdenv, fetchurl -, pcre, windows ? null -, variant ? null +{ + lib, + stdenv, + fetchurl, + pcre, + windows ? null, + variant ? null, }: -assert lib.elem variant [ null "cpp" "pcre16" "pcre32" ]; +assert lib.elem variant [ + null + "cpp" + "pcre16" + "pcre32" +]; stdenv.mkDerivation rec { - pname = "pcre" + pname = + "pcre" + lib.optionalString (variant == "cpp") "-cpp" + lib.optionalString (variant != "cpp" && variant != null) variant; version = "8.45"; @@ -16,13 +26,21 @@ stdenv.mkDerivation rec { sha256 = "sha256-Ta5v3NK7C7bDe1+Xwzwr6VTadDmFNpzdrDVG4yGL/7g="; }; - outputs = [ "bin" "dev" "out" "doc" "man" ]; + outputs = [ + "bin" + "dev" + "out" + "doc" + "man" + ]; # Disable jit on Apple Silicon, https://github.com/zherczeg/sljit/issues/51 - configureFlags = lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto" ++ [ - "--enable-unicode-properties" - "--disable-cpp" - ] + configureFlags = + lib.optional (!(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--enable-jit=auto" + ++ [ + "--enable-unicode-properties" + "--disable-cpp" + ] ++ lib.optional (variant != null) "--enable-${variant}"; # https://bugs.exim.org/show_bug.cgi?id=2173 @@ -32,15 +50,18 @@ stdenv.mkDerivation rec { patchShebangs RunGrepTest ''; - doCheck = !(with stdenv.hostPlatform; isCygwin || isFreeBSD) && stdenv.hostPlatform == stdenv.buildPlatform; - # XXX: test failure on Cygwin - # we are running out of stack on both freeBSDs on Hydra + doCheck = + !(with stdenv.hostPlatform; isCygwin || isFreeBSD) && stdenv.hostPlatform == stdenv.buildPlatform; + # XXX: test failure on Cygwin + # we are running out of stack on both freeBSDs on Hydra - postFixup = '' - moveToOutput bin/pcre-config "$dev" - '' + lib.optionalString (variant != null) '' - ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib,*a} - ''; + postFixup = + '' + moveToOutput bin/pcre-config "$dev" + '' + + lib.optionalString (variant != null) '' + ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib,*a} + ''; meta = { homepage = "http://www.pcre.org/"; diff --git a/pkgs/by-name/pc/pcre/packages.nix b/pkgs/by-name/pc/pcre/packages.nix index 67a6fc0..6431201 100644 --- a/pkgs/by-name/pc/pcre/packages.nix +++ b/pkgs/by-name/pc/pcre/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { pcre = callPackage ./. { }; pcre16 = res.pcre.override { variant = "pcre16"; }; # pcre32 seems unused diff --git a/pkgs/by-name/pc/pcre2/default.nix b/pkgs/by-name/pc/pcre2/default.nix index 23234c4..34b25fe 100644 --- a/pkgs/by-name/pc/pcre2/default.nix +++ b/pkgs/by-name/pc/pcre2/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchurl -, withJitSealloc ? true +{ + lib, + stdenv, + fetchurl, + withJitSealloc ? true, }: stdenv.mkDerivation rec { @@ -23,16 +24,24 @@ stdenv.mkDerivation rec { '#include "src/sljit/sljitConfigCPU.h"' ''; - configureFlags = [ - "--enable-pcre2-16" - "--enable-pcre2-32" - # only enable jit on supported platforms which excludes Apple Silicon, see https://github.com/zherczeg/sljit/issues/51 - "--enable-jit=${if stdenv.hostPlatform.isS390x then "no" else "auto"}" - ] - # fix pcre jit in systemd units that set MemoryDenyWriteExecute=true like gitea - ++ lib.optional withJitSealloc "--enable-jit-sealloc"; + configureFlags = + [ + "--enable-pcre2-16" + "--enable-pcre2-32" + # only enable jit on supported platforms which excludes Apple Silicon, see https://github.com/zherczeg/sljit/issues/51 + "--enable-jit=${if stdenv.hostPlatform.isS390x then "no" else "auto"}" + ] + # fix pcre jit in systemd units that set MemoryDenyWriteExecute=true like gitea + ++ lib.optional withJitSealloc "--enable-jit-sealloc"; - outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ]; + outputs = [ + "bin" + "dev" + "out" + "doc" + "man" + "devdoc" + ]; postFixup = '' moveToOutput bin/pcre2-config "$dev" diff --git a/pkgs/by-name/pe/perl/default.nix b/pkgs/by-name/pe/perl/default.nix index dc0a2ea..9b66fea 100644 --- a/pkgs/by-name/pe/perl/default.nix +++ b/pkgs/by-name/pe/perl/default.nix @@ -4,56 +4,72 @@ let # Common passthru for all perl interpreters. # copied from lua passthruFun = - { overrides - , perlOnBuildForBuild - , perlOnBuildForHost - , perlOnBuildForTarget - , perlOnHostForHost - , perlOnTargetForTarget - , perlAttr ? null - , self # is perlOnHostForTarget - }: let - perlPackages = callPackage - # Function that when called - # - imports perl-packages.nix - # - adds spliced package sets to the package set - ({ stdenv, pkgs, perl, callPackage, makeScopeWithSplicing' }: let - perlPackagesFun = callPackage ./perl-packages.nix { - # allow 'perlPackages.override { pkgs = pkgs // { imagemagick = imagemagickBig; }; }' like in python3Packages - # most perl packages aren't called with callPackage so it's not possible to override their arguments individually - # the conditional is because the // above won't be applied to __splicedPackages and hopefully no one is doing that when cross-compiling - pkgs = if stdenv.buildPlatform != stdenv.hostPlatform then pkgs.__splicedPackages else pkgs; - inherit stdenv; - perl = self; - }; + { + overrides, + perlOnBuildForBuild, + perlOnBuildForHost, + perlOnBuildForTarget, + perlOnHostForHost, + perlOnTargetForTarget, + perlAttr ? null, + self, # is perlOnHostForTarget + }: + let + perlPackages = + callPackage + # Function that when called + # - imports perl-packages.nix + # - adds spliced package sets to the package set + ( + { + stdenv, + pkgs, + perl, + callPackage, + makeScopeWithSplicing', + }: + let + perlPackagesFun = callPackage ./perl-packages.nix { + # allow 'perlPackages.override { pkgs = pkgs // { imagemagick = imagemagickBig; }; }' like in python3Packages + # most perl packages aren't called with callPackage so it's not possible to override their arguments individually + # the conditional is because the // above won't be applied to __splicedPackages and hopefully no one is doing that when cross-compiling + pkgs = if stdenv.buildPlatform != stdenv.hostPlatform then pkgs.__splicedPackages else pkgs; + inherit stdenv; + perl = self; + }; - otherSplices = { - selfBuildBuild = perlOnBuildForBuild.pkgs; - selfBuildHost = perlOnBuildForHost.pkgs; - selfBuildTarget = perlOnBuildForTarget.pkgs; - selfHostHost = perlOnHostForHost.pkgs; - selfTargetTarget = perlOnTargetForTarget.pkgs or {}; - }; - in makeScopeWithSplicing' { - inherit otherSplices; - f = perlPackagesFun; - }) - { - perl = self; - }; - in rec { - buildEnv = callPackage ./wrapper.nix { - perl = self; - inherit (pkgs) requiredPerlModules; - }; - withPackages = f: buildEnv.override { extraLibs = f pkgs; }; - pkgs = perlPackages // (overrides pkgs); - interpreter = "${self}/bin/perl"; - libPrefix = "lib/perl5/site_perl"; - perlOnBuild = perlOnBuildForHost.override { inherit overrides; self = perlOnBuild; }; - }; + otherSplices = { + selfBuildBuild = perlOnBuildForBuild.pkgs; + selfBuildHost = perlOnBuildForHost.pkgs; + selfBuildTarget = perlOnBuildForTarget.pkgs; + selfHostHost = perlOnHostForHost.pkgs; + selfTargetTarget = perlOnTargetForTarget.pkgs or { }; + }; + in + makeScopeWithSplicing' { + inherit otherSplices; + f = perlPackagesFun; + } + ) + { perl = self; }; + in + rec { + buildEnv = callPackage ./wrapper.nix { + perl = self; + inherit (pkgs) requiredPerlModules; + }; + withPackages = f: buildEnv.override { extraLibs = f pkgs; }; + pkgs = perlPackages // (overrides pkgs); + interpreter = "${self}/bin/perl"; + libPrefix = "lib/perl5/site_perl"; + perlOnBuild = perlOnBuildForHost.override { + inherit overrides; + self = perlOnBuild; + }; + }; -in rec { +in +rec { # Maint version perl536 = callPackage ./interpreter.nix { self = perl536; diff --git a/pkgs/by-name/pe/perl/interpreter.nix b/pkgs/by-name/pe/perl/interpreter.nix index 95ddc5a..fa5e2a5 100644 --- a/pkgs/by-name/pe/perl/interpreter.nix +++ b/pkgs/by-name/pe/perl/interpreter.nix @@ -1,24 +1,28 @@ -{ stdenv -, fetchurl -, fetchFromGitHub -, buildPackages -, lib -, self -, version -, sha256 -, pkgsBuildBuild -, pkgsBuildHost -, pkgsBuildTarget -, pkgsHostHost -, pkgsTargetTarget -, zlib -, config -, passthruFun -, perlAttr ? "perl${lib.versions.major version}${lib.versions.minor version}" -, enableThreading ? true, coreutils, makeWrapper -, enableCrypt ? true, libxcrypt ? null -, overrides ? config.perlPackageOverrides or (p: {}) # TODO: (self: super: {}) like in python -} @ inputs: +{ + stdenv, + fetchurl, + fetchFromGitHub, + buildPackages, + lib, + self, + version, + sha256, + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsTargetTarget, + zlib, + config, + passthruFun, + perlAttr ? "perl${lib.versions.major version}${lib.versions.minor version}", + enableThreading ? true, + coreutils, + makeWrapper, + enableCrypt ? true, + libxcrypt ? null, + overrides ? config.perlPackageOverrides or (p: { }), # TODO: (self: super: {}) like in python +}@inputs: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -34,176 +38,214 @@ let libcLib = lib.getLib libc; in -stdenv.mkDerivation (rec { - inherit version; - pname = "perl"; +stdenv.mkDerivation ( + rec { + inherit version; + pname = "perl"; - src = fetchurl { - url = "mirror://cpan/src/5.0/perl-${version}.tar.gz"; - inherit sha256; - }; - - strictDeps = true; - # TODO: Add a "dev" output containing the header files. - outputs = [ "out" "man" "devdoc" ] ++ - lib.optional crossCompiling "mini"; - setOutputFlags = false; - - # On FreeBSD, if Perl is built with threads support, having - # libxcrypt available will result in a build failure, because - # perl.h will get conflicting definitions of struct crypt_data - # from libc's unistd.h and libxcrypt's crypt.h. - # - # FreeBSD Ports has the same issue building the perl port if - # the libxcrypt port has been installed. - # - # Without libxcrypt, Perl will still find FreeBSD's crypt functions. - propagatedBuildInputs = lib.optional (enableCrypt && !stdenv.isFreeBSD) libxcrypt; - - disallowedReferences = [ stdenv.cc ]; - - patches = - # Enable TLS/SSL verification in HTTP::Tiny by default - lib.optional (lib.versionOlder version "5.38.0") ./http-tiny-verify-ssl-by-default.patch - - # Do not look in /usr etc. for dependencies. - ++ lib.optional (lib.versionOlder version "5.38.0") ./no-sys-dirs-5.31.patch - ++ lib.optional (lib.versionAtLeast version "5.38.0") ./no-sys-dirs-5.38.0.patch - - ++ lib.optional stdenv.isSunOS ./ld-shared.patch - ++ lib.optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] - ++ lib.optional crossCompiling ./cross.patch; - - # This is not done for native builds because pwd may need to come from - # bootstrap tools when building bootstrap perl. - postPatch = (if crossCompiling then '' - substituteInPlace dist/PathTools/Cwd.pm \ - --replace "/bin/pwd" '${coreutils}/bin/pwd' - substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E" - '' else '' - substituteInPlace dist/PathTools/Cwd.pm \ - --replace "/bin/pwd" "$(type -P pwd)" - '') + - # Perl's build system uses the src variable, and its value may end up in - # the output in some cases (when cross-compiling) - '' - unset src - ''; - - # Build a thread-safe Perl with a dynamic libperl.so. We need the - # "installstyle" option to ensure that modules are put under - # $out/lib/perl5 - this is the general default, but because $out - # contains the string "perl", Configure would select $out/lib. - # Miniperl needs -lm. perl needs -lrt. - configureFlags = - (if crossCompiling - then [ "-Dlibpth=\"\"" "-Dglibpth=\"\"" "-Ddefault_inc_excludes_dot" ] - else [ "-de" "-Dcc=cc" ]) - ++ [ - "-Uinstallusrbinperl" - "-Dinstallstyle=lib/perl5" - ] ++ lib.optional (!crossCompiling) "-Duseshrplib" ++ [ - "-Dlocincpth=${libcInc}/include" - "-Dloclibpth=${libcLib}/lib" - ] - ++ lib.optionals ((builtins.match ''5\.[0-9]*[13579]\..+'' version) != null) [ "-Dusedevel" "-Uversiononly" ] - ++ lib.optional stdenv.isSunOS "-Dcc=gcc" - ++ lib.optional enableThreading "-Dusethreads" - ++ lib.optional (!enableCrypt) "-A clear:d_crypt_r" - ++ lib.optional stdenv.hostPlatform.isStatic "--all-static" - ++ lib.optionals (!crossCompiling) [ - "-Dprefix=${placeholder "out"}" - "-Dman1dir=${placeholder "out"}/share/man/man1" - "-Dman3dir=${placeholder "out"}/share/man/man3" - ]; - - configureScript = lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; - - dontAddStaticConfigureFlags = true; - - dontAddPrefix = !crossCompiling; - - enableParallelBuilding = !crossCompiling; - - # perl includes the build date, the uname of the build system and the - # username of the build user in some files. - # We override these to make it build deterministically. - # other distro solutions - # https://github.com/bmwiedemann/openSUSE/blob/master/packages/p/perl/perl-reproducible.patch - # https://github.com/archlinux/svntogit-packages/blob/packages/perl/trunk/config.over - # https://salsa.debian.org/perl-team/interpreter/perl/blob/debian-5.26/debian/config.over - # A ticket has been opened upstream to possibly clean some of this up: https://rt.perl.org/Public/Bug/Display.html?id=133452 - preConfigure = '' - cat > config.over < ./cpan/Compress-Raw-Zlib/config.in </c libpth => ' '," \ - -i "$out"/lib/perl5/*/*/Config.pm - # TODO: removing those paths would be cleaner than overwriting with nonsense. - substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \ - --replace "${libcInc}" /no-such-path \ - --replace "${ - if stdenv.hasCC then stdenv.cc else "/no-such-path" - }" /no-such-path \ - --replace "${ - if stdenv.hasCC && stdenv.cc.cc != null then stdenv.cc.cc else "/no-such-path" - }" /no-such-path \ - --replace "$man" /no-such-path - '' + lib.optionalString crossCompiling + disallowedReferences = [ stdenv.cc ]; + + patches = + # Enable TLS/SSL verification in HTTP::Tiny by default + lib.optional (lib.versionOlder version "5.38.0") ./http-tiny-verify-ssl-by-default.patch + + # Do not look in /usr etc. for dependencies. + ++ lib.optional (lib.versionOlder version "5.38.0") ./no-sys-dirs-5.31.patch + ++ lib.optional (lib.versionAtLeast version "5.38.0") ./no-sys-dirs-5.38.0.patch + + ++ lib.optional stdenv.isSunOS ./ld-shared.patch + ++ lib.optionals stdenv.isDarwin [ + ./cpp-precomp.patch + ./sw_vers.patch + ] + ++ lib.optional crossCompiling ./cross.patch; + + # This is not done for native builds because pwd may need to come from + # bootstrap tools when building bootstrap perl. + postPatch = + ( + if crossCompiling then + '' + substituteInPlace dist/PathTools/Cwd.pm \ + --replace "/bin/pwd" '${coreutils}/bin/pwd' + substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E" + '' + else + '' + substituteInPlace dist/PathTools/Cwd.pm \ + --replace "/bin/pwd" "$(type -P pwd)" + '' + ) + + + # Perl's build system uses the src variable, and its value may end up in + # the output in some cases (when cross-compiling) + '' + unset src + ''; + + # Build a thread-safe Perl with a dynamic libperl.so. We need the + # "installstyle" option to ensure that modules are put under + # $out/lib/perl5 - this is the general default, but because $out + # contains the string "perl", Configure would select $out/lib. + # Miniperl needs -lm. perl needs -lrt. + configureFlags = + ( + if crossCompiling then + [ + "-Dlibpth=\"\"" + "-Dglibpth=\"\"" + "-Ddefault_inc_excludes_dot" + ] + else + [ + "-de" + "-Dcc=cc" + ] + ) + ++ [ + "-Uinstallusrbinperl" + "-Dinstallstyle=lib/perl5" + ] + ++ lib.optional (!crossCompiling) "-Duseshrplib" + ++ [ + "-Dlocincpth=${libcInc}/include" + "-Dloclibpth=${libcLib}/lib" + ] + ++ lib.optionals ((builtins.match ''5\.[0-9]*[13579]\..+'' version) != null) [ + "-Dusedevel" + "-Uversiononly" + ] + ++ lib.optional stdenv.isSunOS "-Dcc=gcc" + ++ lib.optional enableThreading "-Dusethreads" + ++ lib.optional (!enableCrypt) "-A clear:d_crypt_r" + ++ lib.optional stdenv.hostPlatform.isStatic "--all-static" + ++ lib.optionals (!crossCompiling) [ + "-Dprefix=${placeholder "out"}" + "-Dman1dir=${placeholder "out"}/share/man/man1" + "-Dman3dir=${placeholder "out"}/share/man/man3" + ]; + + configureScript = lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; + + dontAddStaticConfigureFlags = true; + + dontAddPrefix = !crossCompiling; + + enableParallelBuilding = !crossCompiling; + + # perl includes the build date, the uname of the build system and the + # username of the build user in some files. + # We override these to make it build deterministically. + # other distro solutions + # https://github.com/bmwiedemann/openSUSE/blob/master/packages/p/perl/perl-reproducible.patch + # https://github.com/archlinux/svntogit-packages/blob/packages/perl/trunk/config.over + # https://salsa.debian.org/perl-team/interpreter/perl/blob/debian-5.26/debian/config.over + # A ticket has been opened upstream to possibly clean some of this up: https://rt.perl.org/Public/Bug/Display.html?id=133452 + preConfigure = '' + cat > config.over < ./cpan/Compress-Raw-Zlib/config.in </c libpth => ' '," \ + -i "$out"/lib/perl5/*/*/Config.pm + # TODO: removing those paths would be cleaner than overwriting with nonsense. + substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \ + --replace "${libcInc}" /no-such-path \ + --replace "${if stdenv.hasCC then stdenv.cc else "/no-such-path"}" /no-such-path \ + --replace "${ + if stdenv.hasCC && stdenv.cc.cc != null then stdenv.cc.cc else "/no-such-path" + }" /no-such-path \ + --replace "$man" /no-such-path + '' + + lib.optionalString crossCompiling '' mkdir -p $mini/lib/perl5/cross_perl/${version} for dir in cnf/{stub,cpan}; do cp -r $dir/* $mini/lib/perl5/cross_perl/${version} @@ -226,36 +268,45 @@ stdenv.mkDerivation (rec { "$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch" ''; # */ - meta = with lib; { - homepage = "https://www.perl.org/"; - description = "The standard implementation of the Perl 5 programming language"; - license = licenses.artistic1; - maintainers = [ maintainers.eelco ]; - platforms = platforms.all; - priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` - mainProgram = "perl"; - }; -} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { - crossVersion = "84db4c71ae3d3b01fb2966cd15a060a7be334710"; # Nov 29, 2023 + meta = with lib; { + homepage = "https://www.perl.org/"; + description = "The standard implementation of the Perl 5 programming language"; + license = licenses.artistic1; + maintainers = [ maintainers.eelco ]; + platforms = platforms.all; + priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` + mainProgram = "perl"; + }; + } + // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { + crossVersion = "84db4c71ae3d3b01fb2966cd15a060a7be334710"; # Nov 29, 2023 - perl-cross-src = fetchFromGitHub { - name = "perl-cross-${crossVersion}"; - owner = "arsv"; - repo = "perl-cross"; - rev = crossVersion; - sha256 = "sha256-1Zqw4sy/lD2nah0Z8rAE11tSpq1Ym9nBbatDczR+mxs="; - }; + perl-cross-src = fetchFromGitHub { + name = "perl-cross-${crossVersion}"; + owner = "arsv"; + repo = "perl-cross"; + rev = crossVersion; + sha256 = "sha256-1Zqw4sy/lD2nah0Z8rAE11tSpq1Ym9nBbatDczR+mxs="; + }; - depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; + depsBuildBuild = [ + buildPackages.stdenv.cc + makeWrapper + ]; - postUnpack = '' - unpackFile ${perl-cross-src} - chmod -R u+w ${perl-cross-src.name} - cp -R ${perl-cross-src.name}/* perl-${version}/ - ''; + postUnpack = '' + unpackFile ${perl-cross-src} + chmod -R u+w ${perl-cross-src.name} + cp -R ${perl-cross-src.name}/* perl-${version}/ + ''; - configurePlatforms = [ "build" "host" "target" ]; + configurePlatforms = [ + "build" + "host" + "target" + ]; - # TODO merge setup hooks - setupHook = ./setup-hook-cross.sh; -}) + # TODO merge setup hooks + setupHook = ./setup-hook-cross.sh; + } +) diff --git a/pkgs/by-name/pe/perl/packages.nix b/pkgs/by-name/pe/perl/packages.nix index 187aae6..1e75dd1 100644 --- a/pkgs/by-name/pe/perl/packages.nix +++ b/pkgs/by-name/pe/perl/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { perlInterpreters = import ./. { inherit callPackage; }; inherit (perlInterpreters) perl536 perl538; diff --git a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/default.nix b/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/default.nix index 516b6d0..dc9a9fa 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Bio-BigFile/default.nix @@ -1,16 +1,16 @@ { - BioPerl, - IOString, - buildPerlModule, - fetchFromGitHub, - fetchpatch, - fetchurl, - kent, - lib, - libmysqlclient, - libpng, - openssl, - perl + BioPerl, + IOString, + buildPerlModule, + fetchFromGitHub, + fetchpatch, + fetchurl, + kent, + lib, + libmysqlclient, + libpng, + openssl, + perl, }: buildPerlModule rec { @@ -45,7 +45,6 @@ buildPerlModule rec { ]; }); - buildInputs = [ BioPerl IOString diff --git a/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/default.nix b/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/default.nix index 237a4be..dde83f2 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Bio-Ext-Align/default.nix @@ -1,15 +1,22 @@ -{ lib, buildPerlPackage, fetchFromGitHub }: +{ + lib, + buildPerlPackage, + fetchFromGitHub, +}: buildPerlPackage rec { pname = "BioExtAlign"; version = "1.5.1"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; src = fetchFromGitHub { owner = "bioperl"; repo = "bioperl-ext"; - rev = "bioperl-ext-release-${lib.replaceStrings ["."] ["-"] version}"; + rev = "bioperl-ext-release-${lib.replaceStrings [ "." ] [ "-" ] version}"; sha256 = "sha256-+0tZ6q3PFem8DWa2vq+njOLmjDvMB0JhD0FGk00lVMA="; }; diff --git a/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix b/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix index 5ca983f..6487fc9 100644 --- a/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/ImageExifTool/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, buildPerlPackage -, exiftool -, fetchurl -, gitUpdater -, shortenPerlShebang -, testers +{ + lib, + stdenv, + buildPerlPackage, + exiftool, + fetchurl, + gitUpdater, + shortenPerlShebang, + testers, }: buildPerlPackage rec { @@ -28,9 +29,7 @@ buildPerlPackage rec { command = "${lib.getExe exiftool} -ver"; package = exiftool; }; - updateScript = gitUpdater { - url = "https://github.com/exiftool/exiftool.git"; - }; + updateScript = gitUpdater { url = "https://github.com/exiftool/exiftool.git"; }; }; meta = { @@ -48,8 +47,14 @@ buildPerlPackage rec { ''; homepage = "https://exiftool.org/"; changelog = "https://exiftool.org/history.html"; - license = with lib.licenses; [ gpl1Plus /* or */ artistic2 ]; - maintainers = with lib.maintainers; [ kiloreux anthonyroussel ]; + license = with lib.licenses; [ + gpl1Plus # or + artistic2 + ]; + maintainers = with lib.maintainers; [ + kiloreux + anthonyroussel + ]; mainProgram = "exiftool"; }; } diff --git a/pkgs/by-name/pe/perl/perl-modules/MNI/default.nix b/pkgs/by-name/pe/perl/perl-modules/MNI/default.nix index 067a08f..b1e6680 100644 --- a/pkgs/by-name/pe/perl/perl-modules/MNI/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/MNI/default.nix @@ -1,24 +1,31 @@ -{ fetchFromGitHub, buildPerlPackage, lib }: +{ + fetchFromGitHub, + buildPerlPackage, + lib, +}: buildPerlPackage { pname = "MNI-Perllib"; version = "2012-04-13"; src = fetchFromGitHub { - owner = "BIC-MNI"; - repo = "mni-perllib"; - rev = "b908472b4390180ea5d19a121ac5edad6ed88d83"; + owner = "BIC-MNI"; + repo = "mni-perllib"; + rev = "b908472b4390180ea5d19a121ac5edad6ed88d83"; sha256 = "0vk99pwgbard62k63386r7dpnm3h435jdqywr4xqfq7p04dz6kyb"; }; patches = [ ./no-stdin.patch ]; - doCheck = false; # TODO: almost all tests fail ... is this a real problem? + doCheck = false; # TODO: almost all tests fail ... is this a real problem? meta = { description = "MNI MINC perllib (not used much anymore)"; homepage = "https://github.com/BIC-MNI/mni-perllib"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; maintainers = with lib.maintainers; [ bcdarwin ]; }; } diff --git a/pkgs/by-name/pe/perl/perl-modules/Mozilla-LDAP/default.nix b/pkgs/by-name/pe/perl/perl-modules/Mozilla-LDAP/default.nix index 6c3d01a..39d7011 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Mozilla-LDAP/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Mozilla-LDAP/default.nix @@ -1,4 +1,9 @@ -{ lib, fetchurl, openldap, buildPerlPackage }: +{ + lib, + fetchurl, + openldap, + buildPerlPackage, +}: buildPerlPackage rec { pname = "Mozilla-Ldap"; @@ -13,6 +18,10 @@ buildPerlPackage rec { meta = { description = "Mozilla's ldap client library"; homepage = "https://metacpan.org/release/perldap"; - license = with lib.licenses; [ mpl20 lgpl21Plus gpl2Plus ]; + license = with lib.licenses; [ + mpl20 + lgpl21Plus + gpl2Plus + ]; }; } diff --git a/pkgs/by-name/pe/perl/perl-modules/Percona-Toolkit/default.nix b/pkgs/by-name/pe/perl/perl-modules/Percona-Toolkit/default.nix index 6a11573..181e90b 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Percona-Toolkit/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Percona-Toolkit/default.nix @@ -1,5 +1,12 @@ -{ lib, fetchFromGitHub, buildPerlPackage, shortenPerlShebang -, DBDmysql, DBI, IOSocketSSL, TermReadKey +{ + lib, + fetchFromGitHub, + buildPerlPackage, + shortenPerlShebang, + DBDmysql, + DBI, + IOSocketSSL, + TermReadKey, }: buildPerlPackage rec { @@ -17,7 +24,12 @@ buildPerlPackage rec { nativeBuildInputs = [ shortenPerlShebang ]; - buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey ]; + buildInputs = [ + DBDmysql + DBI + IOSocketSSL + TermReadKey + ]; postInstall = '' shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*) diff --git a/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix b/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix index 3856920..313e4ce 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Po4a/default.nix @@ -1,6 +1,28 @@ -{ stdenv, lib, fetchurl, docbook_xsl, docbook_xsl_ns, gettext, libxslt, glibcLocales, docbook_xml_dtd_412, docbook_sgml_dtd_41, opensp, bash -, perl, buildPerlPackage, ModuleBuild, TextWrapI18N, LocaleGettext, TermReadKey, SGMLSpm, UnicodeLineBreak, PodParser, YAMLTiny -, fetchpatch, writeShellScriptBin +{ + stdenv, + lib, + fetchurl, + docbook_xsl, + docbook_xsl_ns, + gettext, + libxslt, + glibcLocales, + docbook_xml_dtd_412, + docbook_sgml_dtd_41, + opensp, + bash, + perl, + buildPerlPackage, + ModuleBuild, + TextWrapI18N, + LocaleGettext, + TermReadKey, + SGMLSpm, + UnicodeLineBreak, + PodParser, + YAMLTiny, + fetchpatch, + writeShellScriptBin, }: buildPerlPackage rec { @@ -25,11 +47,28 @@ buildPerlPackage rec { # We don't want to depend on texlive here, so we replace it with a minimal # shellscript that suffices for the tests in t/fmt/tex/, i.e. it looks up # article.cls to an existing file, but doesn't find article-wrong.cls. - let kpsewhich-stub = writeShellScriptBin "kpsewhich" - ''[[ $1 = "article.cls" ]] && echo /dev/null''; + let + kpsewhich-stub = writeShellScriptBin "kpsewhich" ''[[ $1 = "article.cls" ]] && echo /dev/null''; in - [ gettext libxslt docbook_xsl docbook_xsl_ns ModuleBuild docbook_xml_dtd_412 docbook_sgml_dtd_41 opensp kpsewhich-stub glibcLocales ]; - propagatedBuildInputs = lib.optional (!stdenv.hostPlatform.isMusl) TextWrapI18N ++ [ LocaleGettext SGMLSpm UnicodeLineBreak PodParser YAMLTiny ]; + [ + gettext + libxslt + docbook_xsl + docbook_xsl_ns + ModuleBuild + docbook_xml_dtd_412 + docbook_sgml_dtd_41 + opensp + kpsewhich-stub + glibcLocales + ]; + propagatedBuildInputs = lib.optional (!stdenv.hostPlatform.isMusl) TextWrapI18N ++ [ + LocaleGettext + SGMLSpm + UnicodeLineBreak + PodParser + YAMLTiny + ]; # TODO: TermReadKey was temporarily removed from propagatedBuildInputs to unfreeze the build buildInputs = [ bash ]; LC_ALL = "en_US.UTF-8"; diff --git a/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix b/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix index 655610e..50b27d4 100644 --- a/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/Tirex/default.nix @@ -1,13 +1,14 @@ -{ lib -, buildPerlPackage -, fetchFromGitHub -, fetchpatch -, GD -, IPCShareLite -, JSON -, LWP -, mapnik -, nix-update-script +{ + lib, + buildPerlPackage, + fetchFromGitHub, + fetchpatch, + GD, + IPCShareLite, + JSON, + LWP, + mapnik, + nix-update-script, }: buildPerlPackage rec { diff --git a/pkgs/by-name/pe/perl/perl-modules/WWW-YoutubeViewer/default.nix b/pkgs/by-name/pe/perl/perl-modules/WWW-YoutubeViewer/default.nix index 6ab6233..4f9a9a6 100644 --- a/pkgs/by-name/pe/perl/perl-modules/WWW-YoutubeViewer/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/WWW-YoutubeViewer/default.nix @@ -1,13 +1,23 @@ -{ stdenv, lib, fetchFromGitHub, buildPerlPackage, shortenPerlShebang, LWP, LWPProtocolHttps, DataDump, JSON }: +{ + stdenv, + lib, + fetchFromGitHub, + buildPerlPackage, + shortenPerlShebang, + LWP, + LWPProtocolHttps, + DataDump, + JSON, +}: buildPerlPackage rec { pname = "WWW-YoutubeViewer"; version = "3.7.9"; src = fetchFromGitHub { - owner = "trizen"; - repo = "youtube-viewer"; - rev = version; + owner = "trizen"; + repo = "youtube-viewer"; + rev = version; sha256 = "16p0sa91h0zpqdpqmy348g6b9qj5f6qrbzrljn157vk00cg6mx18"; }; diff --git a/pkgs/by-name/pe/perl/perl-modules/generic/default.nix b/pkgs/by-name/pe/perl/perl-modules/generic/default.nix index e7afedf..157656a 100644 --- a/pkgs/by-name/pe/perl/perl-modules/generic/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/generic/default.nix @@ -1,57 +1,81 @@ -{ lib, stdenv, perl, toPerlModule }: +{ + lib, + stdenv, + perl, + toPerlModule, +}: -{ buildInputs ? [] -, nativeBuildInputs ? [] -, outputs ? [ "out" "devdoc" ] -, src ? null +{ + buildInputs ? [ ], + nativeBuildInputs ? [ ], + outputs ? [ + "out" + "devdoc" + ], + src ? null, -# enabling or disabling does nothing for perl packages so set it explicitly -# to false to not change hashes when enableParallelBuildingByDefault is enabled -, enableParallelBuilding ? false + # enabling or disabling does nothing for perl packages so set it explicitly + # to false to not change hashes when enableParallelBuildingByDefault is enabled + enableParallelBuilding ? false, -, doCheck ? true -, checkTarget ? "test" + doCheck ? true, + checkTarget ? "test", -# Prevent CPAN downloads. -, PERL_AUTOINSTALL ? "--skipdeps" + # Prevent CPAN downloads. + PERL_AUTOINSTALL ? "--skipdeps", -# From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows -# authors to skip certain tests (or include certain tests) when -# the results are not being monitored by a human being." -, AUTOMATED_TESTING ? true + # From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows + # authors to skip certain tests (or include certain tests) when + # the results are not being monitored by a human being." + AUTOMATED_TESTING ? true, -# current directory (".") is removed from @INC in Perl 5.26 but many old libs rely on it -# https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC -, PERL_USE_UNSAFE_INC ? "1" + # current directory (".") is removed from @INC in Perl 5.26 but many old libs rely on it + # https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC + PERL_USE_UNSAFE_INC ? "1", -, env ? {} + env ? { }, -, ... + ... }@attrs: -lib.throwIf (attrs ? name) "buildPerlPackage: `name` (\"${attrs.name}\") is deprecated, use `pname` and `version` instead" +lib.throwIf (attrs ? name) + "buildPerlPackage: `name` (\"${attrs.name}\") is deprecated, use `pname` and `version` instead" -(let - defaultMeta = { - homepage = "https://metacpan.org/dist/${attrs.pname}"; - inherit (perl.meta) platforms; - }; + ( + let + defaultMeta = { + homepage = "https://metacpan.org/dist/${attrs.pname}"; + inherit (perl.meta) platforms; + }; - package = stdenv.mkDerivation (attrs // { - name = "perl${perl.version}-${attrs.pname}-${attrs.version}"; + package = stdenv.mkDerivation ( + attrs + // { + name = "perl${perl.version}-${attrs.pname}-${attrs.version}"; - builder = ./builder.sh; + builder = ./builder.sh; - buildInputs = buildInputs ++ [ perl ]; - nativeBuildInputs = nativeBuildInputs ++ (if stdenv.buildPlatform != stdenv.hostPlatform then [ perl.mini ] else [ perl ]); + buildInputs = buildInputs ++ [ perl ]; + nativeBuildInputs = + nativeBuildInputs + ++ (if stdenv.buildPlatform != stdenv.hostPlatform then [ perl.mini ] else [ perl ]); - inherit outputs src doCheck checkTarget enableParallelBuilding; - env = { - inherit PERL_AUTOINSTALL AUTOMATED_TESTING PERL_USE_UNSAFE_INC; - fullperl = perl.__spliced.buildHost or perl; - } // env; + inherit + outputs + src + doCheck + checkTarget + enableParallelBuilding + ; + env = { + inherit PERL_AUTOINSTALL AUTOMATED_TESTING PERL_USE_UNSAFE_INC; + fullperl = perl.__spliced.buildHost or perl; + } // env; - meta = defaultMeta // (attrs.meta or { }); - }); + meta = defaultMeta // (attrs.meta or { }); + } + ); -in toPerlModule package) + in + toPerlModule package + ) diff --git a/pkgs/by-name/pe/perl/perl-modules/ham/default.nix b/pkgs/by-name/pe/perl/perl-modules/ham/default.nix index 8d1fce1..1ac5327 100644 --- a/pkgs/by-name/pe/perl/perl-modules/ham/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/ham/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPerlPackage -, fetchFromGitHub -, makeWrapper -, openssh -, GitRepository -, URI -, XMLParser +{ + lib, + buildPerlPackage, + fetchFromGitHub, + makeWrapper, + openssh, + GitRepository, + URI, + XMLParser, }: buildPerlPackage { @@ -22,7 +23,12 @@ buildPerlPackage { outputs = [ "out" ]; nativeBuildInputs = [ makeWrapper ]; - propagatedBuildInputs = [ openssh GitRepository URI XMLParser ]; + propagatedBuildInputs = [ + openssh + GitRepository + URI + XMLParser + ]; preConfigure = '' patchShebangs . diff --git a/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix b/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix index d694508..7a0ad7b 100644 --- a/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/maatkit/default.nix @@ -1,4 +1,9 @@ -{buildPerlPackage, lib, fetchurl, DBDmysql}: +{ + buildPerlPackage, + lib, + fetchurl, + DBDmysql, +}: buildPerlPackage { pname = "maatkit"; @@ -11,7 +16,7 @@ buildPerlPackage { outputs = [ "out" ]; - buildInputs = [ DBDmysql ] ; + buildInputs = [ DBDmysql ]; preConfigure = '' find . | while read fn; do @@ -25,7 +30,7 @@ buildPerlPackage { fi fi done - '' ; + ''; meta = with lib; { description = "Database toolkit"; diff --git a/pkgs/by-name/pe/perl/perl-modules/strip-nondeterminism/default.nix b/pkgs/by-name/pe/perl/perl-modules/strip-nondeterminism/default.nix index 31b3fad..960c0a2 100644 --- a/pkgs/by-name/pe/perl/perl-modules/strip-nondeterminism/default.nix +++ b/pkgs/by-name/pe/perl/perl-modules/strip-nondeterminism/default.nix @@ -1,19 +1,23 @@ -{ lib -, stdenv -, file -, fetchFromGitLab -, buildPerlPackage -, ArchiveZip -, ArchiveCpio -, SubOverride -, shortenPerlShebang +{ + lib, + stdenv, + file, + fetchFromGitLab, + buildPerlPackage, + ArchiveZip, + ArchiveCpio, + SubOverride, + shortenPerlShebang, }: buildPerlPackage rec { pname = "strip-nondeterminism"; version = "1.13.1"; - outputs = [ "out" "dev" ]; # no "devdoc" + outputs = [ + "out" + "dev" + ]; # no "devdoc" src = fetchFromGitLab { owner = "reproducible-builds"; @@ -36,18 +40,19 @@ buildPerlPackage rec { --replace "exec('file'" "exec('${lib.getExe file}'" ''; - postBuild = '' patchShebangs ./bin ''; - postInstall = '' - # we don’t need the debhelper script - rm $out/bin/dh_strip_nondeterminism - rm $out/share/man/man1/dh_strip_nondeterminism.1 - '' + lib.optionalString stdenv.isDarwin '' - shortenPerlShebang $out/bin/strip-nondeterminism - ''; + postInstall = + '' + # we don’t need the debhelper script + rm $out/bin/dh_strip_nondeterminism + rm $out/share/man/man1/dh_strip_nondeterminism.1 + '' + + lib.optionalString stdenv.isDarwin '' + shortenPerlShebang $out/bin/strip-nondeterminism + ''; installCheckPhase = '' runHook preInstallCheck @@ -64,6 +69,9 @@ buildPerlPackage rec { mainProgram = "strip-nondeterminism"; homepage = "https://reproducible-builds.org/"; license = licenses.gpl3Only; - maintainers = with maintainers; [ pSub artturin ]; + maintainers = with maintainers; [ + pSub + artturin + ]; }; } diff --git a/pkgs/by-name/pe/perl/perl-packages.nix b/pkgs/by-name/pe/perl/perl-packages.nix index abb5bae..8551d40 100644 --- a/pkgs/by-name/pe/perl/perl-packages.nix +++ b/pkgs/by-name/pe/perl/perl-packages.nix @@ -1,14 +1,25 @@ -/* This file defines the composition for CPAN (Perl) packages. It has - been factored out of all-packages.nix because there are so many of - them. Also, because most Nix expressions for CPAN packages are - trivial, most are actually defined here. I.e. there's no function - for each package in a separate file: the call to the function would - be almost as much code as the function itself. */ +/* + This file defines the composition for CPAN (Perl) packages. It has + been factored out of all-packages.nix because there are so many of + them. Also, because most Nix expressions for CPAN packages are + trivial, most are actually defined here. I.e. there's no function + for each package in a separate file: the call to the function would + be almost as much code as the function itself. +*/ -{ config -, stdenv, lib, buildPackages, pkgs, darwin -, fetchurl, fetchpatch, fetchFromGitHub, fetchFromGitLab -, perl, shortenPerlShebang +{ + config, + stdenv, + lib, + buildPackages, + pkgs, + darwin, + fetchurl, + fetchpatch, + fetchFromGitHub, + fetchFromGitLab, + perl, + shortenPerlShebang, # , nixosTests }: @@ -20,23 +31,32 @@ let inherit (lib) maintainers teams; in -with self; { +with self; +{ inherit perl; - perlPackages = self // { perlPackages = self.perlPackages // { __attrsFailEvaluation = true; }; }; + perlPackages = self // { + perlPackages = self.perlPackages // { + __attrsFailEvaluation = true; + }; + }; # Check whether a derivation provides a perl module. - hasPerlModule = drv: drv ? perlModule ; + hasPerlModule = drv: drv ? perlModule; - requiredPerlModules = drvs: let - modules = lib.filter hasPerlModule drvs; - in lib.unique ([perl] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPerlModules" modules)); + requiredPerlModules = + drvs: + let + modules = lib.filter hasPerlModule drvs; + in + lib.unique ([ perl ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPerlModules" modules)); # Convert derivation to a perl module. - toPerlModule = drv: - drv.overrideAttrs( oldAttrs: { + toPerlModule = + drv: + drv.overrideAttrs (oldAttrs: { # Use passthru in order to prevent rebuilds when possible. - passthru = (oldAttrs.passthru or {}) // { + passthru = (oldAttrs.passthru or { }) // { perlModule = perl; requiredPerlModules = requiredPerlModules drv.propagatedBuildInputs; }; @@ -45,50 +65,56 @@ with self; { buildPerlPackage = callPackage ./perl-modules/generic { }; # Helper functions for packages that use Module::Build to build. - buildPerlModule = args: - buildPerlPackage ({ - buildPhase = '' - runHook preBuild - perl Build.PL --prefix=$out; ./Build build - runHook postBuild - ''; - installPhase = '' - runHook preInstall - ./Build install - runHook postInstall - ''; - checkPhase = '' - runHook preCheck - ./Build test - runHook postCheck - ''; - } // args // { - preConfigure = '' - touch Makefile.PL - ${args.preConfigure or ""} - ''; - buildInputs = (args.buildInputs or []) ++ [ ModuleBuild ]; - }); + buildPerlModule = + args: + buildPerlPackage ( + { + buildPhase = '' + runHook preBuild + perl Build.PL --prefix=$out; ./Build build + runHook postBuild + ''; + installPhase = '' + runHook preInstall + ./Build install + runHook postInstall + ''; + checkPhase = '' + runHook preCheck + ./Build test + runHook postCheck + ''; + } + // args + // { + preConfigure = '' + touch Makefile.PL + ${args.preConfigure or ""} + ''; + buildInputs = (args.buildInputs or [ ]) ++ [ ModuleBuild ]; + } + ); - /* Construct a perl search path (such as $PERL5LIB) + /* + Construct a perl search path (such as $PERL5LIB) - Example: - pkgs = import { } - makePerlPath [ pkgs.perlPackages.libnet ] - => "/nix/store/n0m1fk9c960d8wlrs62sncnadygqqc6y-perl-Net-SMTP-1.25/lib/perl5/site_perl" + Example: + pkgs = import { } + makePerlPath [ pkgs.perlPackages.libnet ] + => "/nix/store/n0m1fk9c960d8wlrs62sncnadygqqc6y-perl-Net-SMTP-1.25/lib/perl5/site_perl" */ makePerlPath = lib.makeSearchPathOutput "lib" perl.libPrefix; - /* Construct a perl search path recursively including all dependencies (such as $PERL5LIB) + /* + Construct a perl search path recursively including all dependencies (such as $PERL5LIB) - Example: - pkgs = import { } - makeFullPerlPath [ pkgs.perlPackages.CGI ] - => "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl" + Example: + pkgs = import { } + makeFullPerlPath [ pkgs.perlPackages.CGI ] + => "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl" */ makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps); - # ack = buildPerlPackage rec { # pname = "ack"; # version = "3.7.0"; @@ -1462,7 +1488,10 @@ with self; { propagatedBuildInputs = [ DigestHMAC ]; meta = { description = "SASL Authentication framework"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -1663,7 +1692,10 @@ with self; { }; meta = { description = "B::COW additional B helpers to check COW status"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -3086,7 +3118,6 @@ with self; { # }; # }; - CGI = buildPerlPackage { pname = "CGI"; version = "4.59"; @@ -3094,7 +3125,11 @@ with self; { url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz"; hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw="; }; - buildInputs = [ TestDeep TestNoWarnings TestWarn ]; + buildInputs = [ + TestDeep + TestNoWarnings + TestWarn + ]; propagatedBuildInputs = [ HTMLParser ]; meta = { description = "Handle Common Gateway Interface requests and responses"; @@ -3169,12 +3204,18 @@ with self; { url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz"; hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q="; }; - propagatedBuildInputs = [ CGI FCGI ]; + propagatedBuildInputs = [ + CGI + FCGI + ]; doCheck = false; meta = { description = "CGI Interface for Fast CGI"; homepage = "https://metacpan.org/module/CGI::Fast"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -3600,7 +3641,10 @@ with self; { meta = { description = "Get information about a class and its structure"; homepage = "https://metacpan.org/pod/Class::Inspector"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -3695,11 +3739,17 @@ with self; { url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz"; hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw="; }; - buildInputs = [ TestFatal TestNeeds ]; + buildInputs = [ + TestFatal + TestNeeds + ]; meta = { description = "Provides Moose-like method modifiers"; homepage = "https://github.com/moose/Class-Method-Modifiers"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -3958,7 +4008,6 @@ with self; { # }; # }; - Clone = buildPerlPackage { pname = "Clone"; version = "0.46"; @@ -3969,7 +4018,10 @@ with self; { buildInputs = [ BCOW ]; meta = { description = "Recursively copy Perl datatypes"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -4857,7 +4909,10 @@ with self; { buildInputs = [ TestDeep ]; meta = { description = "Verify requirements in a CPAN::Meta object"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -7619,7 +7674,10 @@ with self; { }; meta = { description = "Find memory cycles in objects"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -7834,7 +7892,10 @@ with self; { meta = { description = "Keyed-Hashing for Message Authentication"; homepage = "https://metacpan.org/release/Digest-HMAC"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -8716,7 +8777,6 @@ with self; { # }; # }; - # EncodeEUCJPASCII = buildPerlPackage { # pname = "Encode-EUCJPASCII"; # version = "0.03"; @@ -8779,14 +8839,21 @@ with self; { url = "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz"; hash = "sha256-F2+gJ3H1QqTvsdvCpMko6PQ5G/QHhHO9YEDY8RrbDsE="; }; - preCheck = if stdenv.isCygwin then '' - sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t - sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t - sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t - '' else null; + preCheck = + if stdenv.isCygwin then + '' + sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t + sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t + sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t + '' + else + null; meta = { description = "Determine the locale encoding"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9064,7 +9131,10 @@ with self; { meta = { description = "An exporter with the features of Sub::Exporter but only core dependencies"; homepage = "https://metacpan.org/release/Exporter-Tiny"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9119,7 +9189,10 @@ with self; { }; meta = { description = "A wrapper for perl's configuration"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9193,7 +9266,10 @@ with self; { }; meta = { description = "Various portability utilities for module builders"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9221,7 +9297,10 @@ with self; { propagatedBuildInputs = [ ExtUtilsConfig ]; meta = { description = "Build.PL install path logic made easy"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9394,12 +9473,18 @@ with self; { url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz"; hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg="; }; - propagatedBuildInputs = [ Moo TypeTiny ]; + propagatedBuildInputs = [ + Moo + TypeTiny + ]; buildInputs = [ ModuleBuildTiny ]; meta = { description = "Client library for fastcgi protocol"; homepage = "https://github.com/tokuhirom/p5-fcgi-client"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -9949,7 +10034,10 @@ with self; { propagatedBuildInputs = [ HTTPDate ]; meta = { description = "Parse directory listing"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -10152,7 +10240,10 @@ with self; { meta = { description = "Locate per-dist and per-module shared files"; homepage = "https://metacpan.org/release/File-ShareDir"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -10181,7 +10272,10 @@ with self; { meta = { description = "Install shared files"; homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -11847,11 +11941,17 @@ with self; { url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz"; hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I="; }; - propagatedBuildInputs = [ HTMLTagset HTTPMessage ]; + propagatedBuildInputs = [ + HTMLTagset + HTTPMessage + ]; meta = { description = "HTML parser class"; homepage = "https://github.com/libwww-perl/HTML-Parser"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -11864,7 +11964,10 @@ with self; { }; meta = { description = "Generate An HTML Tag Cloud"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -11979,7 +12082,10 @@ with self; { }; meta = { description = "Data tables useful in parsing HTML"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12130,7 +12236,11 @@ with self; { hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM="; }; propagatedBuildInputs = [ HTTPDate ]; - buildInputs = [ TestDeep TestRequires URI ]; + buildInputs = [ + TestDeep + TestRequires + URI + ]; # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373 doCheck = false; meta = { @@ -12151,7 +12261,10 @@ with self; { meta = { description = "HTTP cookie jars"; homepage = "https://github.com/libwww-perl/HTTP-Cookies"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12162,12 +12275,18 @@ with self; { url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz"; hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0="; }; - buildInputs = [ ModuleBuildTiny TestNeeds ]; + buildInputs = [ + ModuleBuildTiny + TestNeeds + ]; propagatedBuildInputs = [ HTTPMessage ]; meta = { description = "A simple http server class"; homepage = "https://github.com/libwww-perl/HTTP-Daemon"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12182,7 +12301,10 @@ with self; { meta = { description = "Date conversion routines"; homepage = "https://github.com/libwww-perl/HTTP-Date"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12285,12 +12407,25 @@ with self; { url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz"; hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4="; }; - buildInputs = [ TestNeeds TryTiny ]; - propagatedBuildInputs = [ Clone EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ]; + buildInputs = [ + TestNeeds + TryTiny + ]; + propagatedBuildInputs = [ + Clone + EncodeLocale + HTTPDate + IOHTML + LWPMediaTypes + URI + ]; meta = { description = "HTTP style message (base class)"; homepage = "https://github.com/libwww-perl/HTTP-Message"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12318,7 +12453,10 @@ with self; { propagatedBuildInputs = [ HTTPMessage ]; meta = { description = "Choose a variant to serve"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12804,7 +12942,10 @@ with self; { }; meta = { description = "Open an HTML file with automatic charset detection"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -12973,7 +13114,10 @@ with self; { url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz"; hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk="; }; - propagatedBuildInputs = [ MozillaCA NetSSLeay ]; + propagatedBuildInputs = [ + MozillaCA + NetSSLeay + ]; # Fix path to default certificate store. postPatch = '' substituteInPlace lib/IO/Socket/SSL.pm \ @@ -12983,7 +13127,10 @@ with self; { meta = { description = "Nearly transparent SSL encapsulation for IO::Socket::INET"; homepage = "https://github.com/noxxi/p5-io-socket-ssl"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -13130,7 +13277,6 @@ with self; { # }; # }; - # IPCRun = buildPerlPackage { # pname = "IPC-Run"; # version = "20231003.0"; @@ -13695,7 +13841,10 @@ with self; { }; meta = { description = "Collection of network protocol modules"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -14181,10 +14330,13 @@ with self; { url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz"; hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU="; }; - LANG="C"; + LANG = "C"; meta = { description = "Perl extension for emulating gettext-related API"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -14667,7 +14819,16 @@ with self; { url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz"; hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0="; }; - propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPCookieJar HTTPNegotiate NetHTTP TryTiny WWWRobotRules ]; + propagatedBuildInputs = [ + FileListing + HTMLParser + HTTPCookies + HTTPCookieJar + HTTPNegotiate + NetHTTP + TryTiny + WWWRobotRules + ]; preCheck = '' export NO_NETWORK_TESTING=1 ''; @@ -14676,10 +14837,18 @@ with self; { substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #' ''; doCheck = !stdenv.isDarwin; - nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ]; + nativeCheckInputs = [ + HTTPDaemon + TestFatal + TestNeeds + TestRequiresInternet + ]; meta = { description = "The World-Wide Web library for Perl"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -14708,7 +14877,10 @@ with self; { meta = { description = "Guess media type for a file or a URL"; homepage = "https://github.com/libwww-perl/lwp-mediatypes"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -15100,7 +15272,6 @@ with self; { # }; # }; - # MailTools = buildPerlPackage { # pname = "MailTools"; # version = "2.21"; @@ -16033,7 +16204,10 @@ with self; { ''; meta = { description = "Build and install Perl modules"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; mainProgram = "config_data"; }; }; @@ -16107,10 +16281,16 @@ with self; { hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0="; }; buildInputs = [ FileShareDir ]; - propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ]; + propagatedBuildInputs = [ + ExtUtilsHelpers + ExtUtilsInstallPaths + ]; meta = { description = "A tiny replacement for Module::Build"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -16475,7 +16655,10 @@ with self; { }; meta = { description = "Runtime module handling"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -17001,10 +17184,18 @@ with self; { hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg="; }; buildInputs = [ TestFatal ]; - propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ]; + propagatedBuildInputs = [ + ClassMethodModifiers + ModuleRuntime + RoleTiny + SubQuote + ]; meta = { description = "Minimalist Object Orientation (with Moose compatibility)"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -18151,7 +18342,10 @@ with self; { meta = { description = "Mro::* interface compatibility for Perls < 5.9.5"; homepage = "https://metacpan.org/release/MRO-Compat"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -18720,11 +18914,14 @@ with self; { }; propagatedBuildInputs = [ URI ]; __darwinAllowLocalNetworking = true; - doCheck = false; /* wants network */ + doCheck = false; # wants network meta = { description = "Low-level HTTP connection (client)"; homepage = "https://github.com/libwww-perl/Net-HTTP"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -19124,7 +19321,10 @@ with self; { propagatedBuildInputs = [ IOSocketSSL ]; meta = { description = "SSL support for Net::SMTP"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -19226,7 +19426,10 @@ with self; { url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz"; hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk="; }; - buildInputs = [ pkgs.openssl pkgs.zlib ]; + buildInputs = [ + pkgs.openssl + pkgs.zlib + ]; doCheck = false; # Test performs network access. preConfigure = '' mkdir openssl @@ -21279,7 +21482,10 @@ with self; { }; meta = { description = "Play with other peoples' lexical variables"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -21824,7 +22030,6 @@ with self; { # }; # }; - # Readonly = buildPerlModule { # pname = "Readonly"; # version = "2.05"; @@ -22135,7 +22340,10 @@ with self; { }; meta = { description = "Roles: a nouvelle cuisine portion size slice of Moose"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -23596,7 +23804,10 @@ with self; { buildInputs = [ TestFatal ]; meta = { description = "Efficient generation of subroutines via string eval"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -23625,7 +23836,10 @@ with self; { meta = { description = "Apparently run a function in a higher stack frame"; homepage = "https://github.com/Perl-Toolchain-Gang/Sub-Uplevel"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -24255,35 +24469,41 @@ with self; { # }; # }; - TermReadKey = let - cross = stdenv.hostPlatform != stdenv.buildPlatform; - in buildPerlPackage { - pname = "TermReadKey"; - version = "2.38"; - src = fetchurl { - url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz"; - hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA="; - }; + TermReadKey = + let + cross = stdenv.hostPlatform != stdenv.buildPlatform; + in + buildPerlPackage { + pname = "TermReadKey"; + version = "2.38"; + src = fetchurl { + url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz"; + hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA="; + }; - # use native libraries from the host when running build commands - postConfigure = lib.optionalString cross (let - host_perl = perl.perlOnBuild; - host_self = perl.perlOnBuild.pkgs.TermReadKey; - perl_lib = "${host_perl}/lib/perl5/${host_perl.version}"; - self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}"; - in '' - sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile - ''); + # use native libraries from the host when running build commands + postConfigure = lib.optionalString cross ( + let + host_perl = perl.perlOnBuild; + host_self = perl.perlOnBuild.pkgs.TermReadKey; + perl_lib = "${host_perl}/lib/perl5/${host_perl.version}"; + self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}"; + in + '' + sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile + '' + ); - # TermReadKey uses itself in the build process - nativeBuildInputs = lib.optionals cross [ - perl.perlOnBuild.pkgs.TermReadKey - ]; - meta = { - description = "A perl module for simple terminal control"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + # TermReadKey uses itself in the build process + nativeBuildInputs = lib.optionals cross [ perl.perlOnBuild.pkgs.TermReadKey ]; + meta = { + description = "A perl module for simple terminal control"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; }; - }; # TermReadLineGnu = buildPerlPackage { # pname = "Term-ReadLine-Gnu"; @@ -24663,7 +24883,6 @@ with self; { # }; # }; - # TestBase = buildPerlPackage { # pname = "Test-Base"; # version = "0.89"; @@ -24850,7 +25069,10 @@ with self; { meta = { description = "Extremely flexible deep comparison"; homepage = "https://github.com/rjbs/Test-Deep"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -25028,7 +25250,10 @@ with self; { meta = { description = "Incredibly simple helpers for testing code with exceptions"; homepage = "https://github.com/rjbs/Test-Fatal"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -25295,7 +25520,10 @@ with self; { url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz"; hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI="; }; - propagatedBuildInputs = [ DevelCycle PadWalker ]; + propagatedBuildInputs = [ + DevelCycle + PadWalker + ]; meta = { description = "Verifies code hasn't left circular references"; license = with lib.licenses; [ artistic2 ]; @@ -25404,7 +25632,6 @@ with self; { # }; # }; - # TestMockObject = buildPerlPackage { # pname = "Test-MockObject"; # version = "1.20200122"; @@ -25518,7 +25745,10 @@ with self; { }; meta = { description = "Skip tests when modules not available"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -25717,7 +25947,10 @@ with self; { meta = { description = "Checks to see if the module can be loaded"; homepage = "https://github.com/tokuhirom/Test-Requires"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -25745,7 +25978,10 @@ with self; { meta = { description = "Easily test network connectivity"; homepage = "https://metacpan.org/dist/Test-RequiresInternet"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -26155,7 +26391,10 @@ with self; { propagatedBuildInputs = [ SubUplevel ]; meta = { description = "Perl extension to test methods for warnings"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -26166,11 +26405,17 @@ with self; { url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz"; hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk="; }; - buildInputs = [ CPANMetaCheck PadWalker ]; + buildInputs = [ + CPANMetaCheck + PadWalker + ]; meta = { description = "Test for warnings and the lack of them"; homepage = "https://github.com/karenetheridge/Test-Warnings"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -27354,7 +27599,10 @@ with self; { }; meta = { description = "Miscellaneous timezone manipulations routines"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -27561,7 +27809,10 @@ with self; { url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz"; hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4="; }; - buildInputs = [ CPANMetaCheck CaptureTiny ]; + buildInputs = [ + CPANMetaCheck + CaptureTiny + ]; meta = { description = "Minimal try/catch with proper preservation of $@"; homepage = "https://github.com/p5sagit/Try-Tiny"; @@ -27612,7 +27863,10 @@ with self; { meta = { description = "Tiny, yet Moo(se)-compatible type constraint"; homepage = "https://typetiny.toby.ink"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -27791,11 +28045,18 @@ with self; { url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz"; hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c="; }; - buildInputs = [ TestFatal TestNeeds TestWarnings ]; + buildInputs = [ + TestFatal + TestNeeds + TestWarnings + ]; meta = { description = "Uniform Resource Identifiers (absolute and relative)"; homepage = "https://github.com/libwww-perl/URI"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -28184,7 +28445,10 @@ with self; { propagatedBuildInputs = [ URI ]; meta = { description = "Database of robots.txt-derived permissions"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -28630,7 +28894,10 @@ with self; { }; meta = { description = "A simple generic namespace processor"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -28642,16 +28909,24 @@ with self; { hash = "sha256-0zEzJJHFHMz7TLlP/ET5zXM3jmGEmNSjffngQ2YcUV0="; }; patches = [ ./perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ]; - postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' - substituteInPlace Expat/Makefile.PL --replace 'use English;' '#' - '' + lib.optionalString stdenv.isCygwin '' - sed -i"" -e "s@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. \$Config{_exe};@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. (\$^O eq 'cygwin' ? \"\" : \$Config{_exe});@" inc/Devel/CheckLib.pm - ''; - makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ]; + postPatch = + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) '' + substituteInPlace Expat/Makefile.PL --replace 'use English;' '#' + '' + + lib.optionalString stdenv.isCygwin '' + sed -i"" -e "s@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. \$Config{_exe};@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. (\$^O eq 'cygwin' ? \"\" : \$Config{_exe});@" inc/Devel/CheckLib.pm + ''; + makeMakerFlags = [ + "EXPATLIBPATH=${pkgs.expat.out}/lib" + "EXPATINCPATH=${pkgs.expat.dev}/include" + ]; propagatedBuildInputs = [ LWP ]; meta = { description = "A perl module for parsing XML documents"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -28763,13 +29038,19 @@ with self; { url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz"; hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo="; }; - propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ]; + propagatedBuildInputs = [ + XMLNamespaceSupport + XMLSAXBase + ]; postInstall = '' perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()" - ''; + ''; meta = { description = "Simple API for XML"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; @@ -28783,7 +29064,10 @@ with self; { meta = { description = "Base class for SAX Drivers and Filters"; homepage = "https://github.com/grantm/XML-SAX-Base"; - license = with lib.licenses; [ artistic1 gpl1Plus ]; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; }; }; diff --git a/pkgs/by-name/pe/perl/wrapper.nix b/pkgs/by-name/pe/perl/wrapper.nix index 8e4630b..cf02df0 100644 --- a/pkgs/by-name/pe/perl/wrapper.nix +++ b/pkgs/by-name/pe/perl/wrapper.nix @@ -1,52 +1,63 @@ -{ lib, perl, buildEnv, makeBinaryWrapper -, extraLibs ? [] -, extraOutputsToInstall ? [] -, postBuild ? "" -, ignoreCollisions ? false -, requiredPerlModules +{ + lib, + perl, + buildEnv, + makeBinaryWrapper, + extraLibs ? [ ], + extraOutputsToInstall ? [ ], + postBuild ? "", + ignoreCollisions ? false, + requiredPerlModules, }: # Create a perl executable that knows about additional packages. let - env = let - paths = requiredPerlModules (extraLibs ++ [ perl ] ); - in buildEnv { - name = "${perl.name}-env"; + env = + let + paths = requiredPerlModules (extraLibs ++ [ perl ]); + in + buildEnv { + name = "${perl.name}-env"; - inherit paths; - inherit ignoreCollisions; - extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; + inherit paths; + inherit ignoreCollisions; + extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; - nativeBuildInputs = [ makeBinaryWrapper ]; + nativeBuildInputs = [ makeBinaryWrapper ]; - # we create wrapper for the binaries in the different packages - postBuild = '' - if [ -L "$out/bin" ]; then - unlink "$out/bin" - fi - mkdir -p "$out/bin" + # we create wrapper for the binaries in the different packages + postBuild = + '' + if [ -L "$out/bin" ]; then + unlink "$out/bin" + fi + mkdir -p "$out/bin" - # take every binary from perl packages and put them into the env - for path in ${lib.concatStringsSep " " paths}; do - if [ -d "$path/bin" ]; then - cd "$path/bin" - for prg in *; do - if [ -f "$prg" ]; then - rm -f "$out/bin/$prg" - if [ -x "$prg" ]; then - makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix PERL5LIB ':' "$out/${perl.libPrefix}" - fi + # take every binary from perl packages and put them into the env + for path in ${lib.concatStringsSep " " paths}; do + if [ -d "$path/bin" ]; then + cd "$path/bin" + for prg in *; do + if [ -f "$prg" ]; then + rm -f "$out/bin/$prg" + if [ -x "$prg" ]; then + makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix PERL5LIB ':' "$out/${perl.libPrefix}" + fi + fi + done fi done - fi - done - '' + postBuild; + '' + + postBuild; - meta = perl.meta // { outputsToInstall = ["out"]; }; # remove "man" from meta.outputsToInstall. pkgs.buildEnv produces no "man", it puts everything to "out" + meta = perl.meta // { + outputsToInstall = [ "out" ]; + }; # remove "man" from meta.outputsToInstall. pkgs.buildEnv produces no "man", it puts everything to "out" - passthru = perl.passthru // { - interpreter = "${env}/bin/perl"; - inherit perl; + passthru = perl.passthru // { + interpreter = "${env}/bin/perl"; + inherit perl; + }; }; - }; -in env +in +env diff --git a/pkgs/by-name/pi/pixman/default.nix b/pkgs/by-name/pi/pixman/default.nix index 339d9be..1ad08aa 100644 --- a/pkgs/by-name/pi/pixman/default.nix +++ b/pkgs/by-name/pi/pixman/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, fetchurl -, meson -, ninja -, pkg-config -, libpng -, glib /*just passthru*/ +{ + lib, + stdenv, + fetchurl, + meson, + ninja, + pkg-config, + libpng, + glib, # just passthru # for passthru.tests # , cairo @@ -39,7 +40,11 @@ stdenv.mkDerivation (finalAttrs: { separateDebugInfo = !stdenv.hostPlatform.isStatic; - nativeBuildInputs = [ meson ninja pkg-config ]; + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; buildInputs = [ libpng ]; @@ -47,11 +52,10 @@ stdenv.mkDerivation (finalAttrs: { # architectures and requires used to disable them: # https://gitlab.freedesktop.org/pixman/pixman/-/issues/88 mesonAutoFeatures = "auto"; - mesonFlags = [ - "-Diwmmxt=disabled" - ] - # Disable until https://gitlab.freedesktop.org/pixman/pixman/-/issues/46 is resolved - ++ lib.optional (stdenv.isAarch64 && !stdenv.cc.isGNU) "-Da64-neon=disabled"; + mesonFlags = + [ "-Diwmmxt=disabled" ] + # Disable until https://gitlab.freedesktop.org/pixman/pixman/-/issues/46 is resolved + ++ lib.optional (stdenv.isAarch64 && !stdenv.cc.isGNU) "-Da64-neon=disabled"; preConfigure = '' # https://gitlab.freedesktop.org/pixman/pixman/-/issues/62 diff --git a/pkgs/by-name/pk/pkg-config/default.nix b/pkgs/by-name/pk/pkg-config/default.nix index 663f318..7cb00d7 100644 --- a/pkgs/by-name/pk/pkg-config/default.nix +++ b/pkgs/by-name/pk/pkg-config/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, libiconv, vanilla ? false }: +{ + lib, + stdenv, + fetchurl, + libiconv, + vanilla ? false, +}: stdenv.mkDerivation rec { pname = "pkg-config"; @@ -9,37 +15,52 @@ stdenv.mkDerivation rec { sha256 = "14fmwzki1rlz8bs2p810lk6jqdxsk966d8drgsjmi54cd00rrikg"; }; - outputs = [ "out" "man" "doc" ]; + outputs = [ + "out" + "man" + "doc" + ]; strictDeps = true; # Process Requires.private properly, see # http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to # https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/28 - patches = lib.optional (!vanilla) ./requires-private.patch + patches = + lib.optional (!vanilla) ./requires-private.patch ++ lib.optional stdenv.isCygwin ./2.36.3-not-win32.patch; # These three tests fail due to a (desired) behavior change from our ./requires-private.patch - postPatch = if vanilla then null else '' - rm -f check/check-requires-private check/check-gtk check/missing - ''; + postPatch = + if vanilla then + null + else + '' + rm -f check/check-requires-private check/check-gtk check/missing + ''; buildInputs = [ libiconv ]; - configureFlags = [ "--with-internal-glib" ] - ++ lib.optionals (stdenv.isSunOS) [ "--with-libiconv=gnu" "--with-system-library-path" "--with-system-include-path" "CFLAGS=-DENABLE_NLS" ] - # Can't run these tests while cross-compiling - ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) - [ "glib_cv_stack_grows=no" - "glib_cv_uscore=no" - "ac_cv_func_posix_getpwuid_r=yes" - "ac_cv_func_posix_getgrgid_r=yes" - ]; + configureFlags = + [ "--with-internal-glib" ] + ++ lib.optionals (stdenv.isSunOS) [ + "--with-libiconv=gnu" + "--with-system-library-path" + "--with-system-include-path" + "CFLAGS=-DENABLE_NLS" + ] + # Can't run these tests while cross-compiling + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "glib_cv_stack_grows=no" + "glib_cv_uscore=no" + "ac_cv_func_posix_getpwuid_r=yes" + "ac_cv_func_posix_getgrgid_r=yes" + ]; env.NIX_CFLAGS_COMPILE = toString ( # Silence "incompatible integer to pointer conversion passing 'gsize'" when building with Clang. - lib.optionals stdenv.cc.isClang ["-Wno-int-conversion"] + lib.optionals stdenv.cc.isClang [ "-Wno-int-conversion" ] # Silence fprintf format errors when building for Windows. - ++ lib.optionals stdenv.hostPlatform.isWindows ["-Wno-error=format"] + ++ lib.optionals stdenv.hostPlatform.isWindows [ "-Wno-error=format" ] ); enableParallelBuilding = true; diff --git a/pkgs/by-name/pk/pkg-config/packages.nix b/pkgs/by-name/pk/pkg-config/packages.nix index b4f4847..0067fd6 100644 --- a/pkgs/by-name/pk/pkg-config/packages.nix +++ b/pkgs/by-name/pk/pkg-config/packages.nix @@ -1,15 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { pkg-config-unwrapped = callPackage ./. { }; - pkg-configUpstream = lowPrio (pkg-config.override (old: { - pkg-config = old.pkg-config.override { - vanilla = true; - }; - })); + pkg-configUpstream = lowPrio ( + pkg-config.override (old: { + pkg-config = old.pkg-config.override { vanilla = true; }; + }) + ); pkg-config = callPackage (path + "/pkgs/build-support/pkg-config-wrapper") { pkg-config = pkg-config-unwrapped; diff --git a/pkgs/by-name/po/potrace/default.nix b/pkgs/by-name/po/potrace/default.nix index b46c206..d1ba89b 100644 --- a/pkgs/by-name/po/potrace/default.nix +++ b/pkgs/by-name/po/potrace/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, zlib }: +{ + lib, + stdenv, + fetchurl, + zlib, +}: stdenv.mkDerivation rec { pname = "potrace"; diff --git a/pkgs/by-name/pr/procps-ng/default.nix b/pkgs/by-name/pr/procps-ng/default.nix index e4d245f..f2aa2b9 100644 --- a/pkgs/by-name/pr/procps-ng/default.nix +++ b/pkgs/by-name/pr/procps-ng/default.nix @@ -1,20 +1,21 @@ -{ lib -, stdenv -, fetchurl -, ncurses -, pkg-config -, fetchpatch +{ + lib, + stdenv, + fetchurl, + ncurses, + pkg-config, + fetchpatch, # `ps` with systemd support is able to properly report different # attributes like unit name, so we want to have it on linux. -, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd -, systemd + withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, + systemd, # procps is mostly Linux-only. Most commands require a running Linux # system (or very similar like that found in Cygwin). The one # exception is ‘watch’ which is portable enough to run on pretty much # any UNIX-compatible system. -, watchOnly ? !(stdenv.isLinux || stdenv.isCygwin) + watchOnly ? !(stdenv.isLinux || stdenv.isCygwin), }: stdenv.mkDerivation rec { @@ -27,34 +28,41 @@ stdenv.mkDerivation rec { sha256 = "sha256-RRiz56r9NOwH0AY9JQ/UdJmbILIAIYw65W9dIRPxQbQ="; }; - patches = [ - ./v3-CVE-2023-4016.patch - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - # NOTE: Starting from 4.x we will not need a patch anymore, but need to add - # "--disable-w" to configureFlags instead to prevent the utmp errors - (fetchpatch { - name = "musl-fix-includes.patch"; - url = "https://git.alpinelinux.org/aports/plain/main/procps/musl-fixes.patch?id=37cb5b6ef194db66d9ed07c8ecab59bca3b91215"; - sha256 = "sha256-DphAvESmVg1U3bJABU95R++QD34odStCl82EF0vmht0="; - }) - ]; + patches = + [ ./v3-CVE-2023-4016.patch ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + # NOTE: Starting from 4.x we will not need a patch anymore, but need to add + # "--disable-w" to configureFlags instead to prevent the utmp errors + (fetchpatch { + name = "musl-fix-includes.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/procps/musl-fixes.patch?id=37cb5b6ef194db66d9ed07c8ecab59bca3b91215"; + sha256 = "sha256-DphAvESmVg1U3bJABU95R++QD34odStCl82EF0vmht0="; + }) + ]; - buildInputs = [ ncurses ] - ++ lib.optional withSystemd systemd; + buildInputs = [ ncurses ] ++ lib.optional withSystemd systemd; nativeBuildInputs = [ pkg-config ]; - makeFlags = [ "usrbin_execdir=$(out)/bin" ] - ++ lib.optionals watchOnly [ "watch" "PKG_LDFLAGS=" ]; + makeFlags = + [ "usrbin_execdir=$(out)/bin" ] + ++ lib.optionals watchOnly [ + "watch" + "PKG_LDFLAGS=" + ]; enableParallelBuilding = true; # Too red; 8bit support for fixing https://github.com/NixOS/nixpkgs/issues/275220 - configureFlags = [ "--disable-modern-top" "--enable-watch8bit" ] + configureFlags = + [ + "--disable-modern-top" + "--enable-watch8bit" + ] ++ lib.optional withSystemd "--with-systemd" ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_func_malloc_0_nonnull=yes" - "ac_cv_func_realloc_0_nonnull=yes" - ]; + "ac_cv_func_malloc_0_nonnull=yes" + "ac_cv_func_realloc_0_nonnull=yes" + ]; installPhase = lib.optionalString watchOnly '' install -m 0755 -D watch $out/bin/watch diff --git a/pkgs/by-name/pr/procps-ng/packages.nix b/pkgs/by-name/pr/procps-ng/packages.nix index 3716c19..11a46b9 100644 --- a/pkgs/by-name/pr/procps-ng/packages.nix +++ b/pkgs/by-name/pr/procps-ng/packages.nix @@ -1,10 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - procps = - if stdenv.isLinux - then callPackage ./. { } - else unixtools.procps; +with pkgs; { + procps = if stdenv.isLinux then callPackage ./. { } else unixtools.procps; } diff --git a/pkgs/by-name/ps/psutils/default.nix b/pkgs/by-name/ps/psutils/default.nix index 93c7b9f..0bf3cfe 100644 --- a/pkgs/by-name/ps/psutils/default.nix +++ b/pkgs/by-name/ps/psutils/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, perl }: +{ + lib, + stdenv, + fetchurl, + perl, +}: stdenv.mkDerivation rec { pname = "psutils"; diff --git a/pkgs/by-name/pu/publicsuffix-list/default.nix b/pkgs/by-name/pu/publicsuffix-list/default.nix index b2c69df..a84662b 100644 --- a/pkgs/by-name/pu/publicsuffix-list/default.nix +++ b/pkgs/by-name/pu/publicsuffix-list/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenvNoCC, fetchFromGitHub }: +{ + lib, + stdenvNoCC, + fetchFromGitHub, +}: stdenvNoCC.mkDerivation { pname = "publicsuffix-list"; diff --git a/pkgs/by-name/py/python/conda/default.nix b/pkgs/by-name/py/python/conda/default.nix index 77bda13..a3c3cd3 100644 --- a/pkgs/by-name/py/python/conda/default.nix +++ b/pkgs/by-name/py/python/conda/default.nix @@ -1,25 +1,29 @@ -{ pkgs }: { +{ pkgs }: +{ # List of libraries that are needed for conda binary packages. # When installing a conda binary package, just extend # the `buildInputs` with `condaAutopatchLibs`. - condaPatchelfLibs = builtins.map (p: p.lib or p) ([ - pkgs.alsa-lib - pkgs.cups - pkgs.gcc-unwrapped - pkgs.libGL - ] ++ (with pkgs.xorg; [ - libSM - libICE - libX11 - libXau - libXdamage - libXi - libXrender - libXrandr - libXcomposite - libXcursor - libXtst - libXScrnSaver]) + condaPatchelfLibs = builtins.map (p: p.lib or p) ( + [ + pkgs.alsa-lib + pkgs.cups + pkgs.gcc-unwrapped + pkgs.libGL + ] + ++ (with pkgs.xorg; [ + libSM + libICE + libX11 + libXau + libXdamage + libXi + libXrender + libXrandr + libXcomposite + libXcursor + libXtst + libXScrnSaver + ]) ); } diff --git a/pkgs/by-name/py/python/cpython/2.7/default.nix b/pkgs/by-name/py/python/cpython/2.7/default.nix index dda254f..d44d948 100644 --- a/pkgs/by-name/py/python/cpython/2.7/default.nix +++ b/pkgs/by-name/py/python/cpython/2.7/default.nix @@ -1,83 +1,97 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, bzip2 -, expat -, libffi -, gdbm -, db -, ncurses -, openssl -, readline -, sqlite -, tcl ? null, tk ? null, tix ? null, libX11 ? null, x11Support ? false -, zlib -, self -, configd, coreutils -, autoreconfHook -, python-setup-hook -# Some proprietary libs assume UCS2 unicode, especially on darwin :( -, ucsEncoding ? 4 -# For the Python package set -, packageOverrides ? (self: super: {}) -, pkgsBuildBuild -, pkgsBuildHost -, pkgsBuildTarget -, pkgsHostHost -, pkgsTargetTarget -, sourceVersion -, hash -, passthruFun -, static ? stdenv.hostPlatform.isStatic -, stripBytecode ? reproducibleBuild -, rebuildBytecode ? true -, reproducibleBuild ? false -, enableOptimizations ? false -, strip2to3 ? false -, stripConfig ? false -, stripIdlelib ? false -, stripTests ? false -, pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + bzip2, + expat, + libffi, + gdbm, + db, + ncurses, + openssl, + readline, + sqlite, + tcl ? null, + tk ? null, + tix ? null, + libX11 ? null, + x11Support ? false, + zlib, + self, + configd, + coreutils, + autoreconfHook, + python-setup-hook, + # Some proprietary libs assume UCS2 unicode, especially on darwin :( + ucsEncoding ? 4, + # For the Python package set + packageOverrides ? (self: super: { }), + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsTargetTarget, + sourceVersion, + hash, + passthruFun, + static ? stdenv.hostPlatform.isStatic, + stripBytecode ? reproducibleBuild, + rebuildBytecode ? true, + reproducibleBuild ? false, + enableOptimizations ? false, + strip2to3 ? false, + stripConfig ? false, + stripIdlelib ? false, + stripTests ? false, + pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}", }: -assert x11Support -> tcl != null - && tk != null - && libX11 != null; +assert x11Support -> tcl != null && tk != null && libX11 != null; assert lib.assertMsg (enableOptimizations -> (!stdenv.cc.isClang)) "Optimizations with clang are not supported. configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found."; -assert lib.assertMsg (reproducibleBuild -> stripBytecode) - "Deterministic builds require stripping bytecode."; +assert lib.assertMsg ( + reproducibleBuild -> stripBytecode +) "Deterministic builds require stripping bytecode."; -assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations)) - "Deterministic builds are not achieved when optimizations are enabled."; +assert lib.assertMsg ( + reproducibleBuild -> (!enableOptimizations) +) "Deterministic builds are not achieved when optimizations are enabled."; -assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode)) - "Deterministic builds are not achieved when (default unoptimized) bytecode is created."; +assert lib.assertMsg ( + reproducibleBuild -> (!rebuildBytecode) +) "Deterministic builds are not achieved when (default unoptimized) bytecode is created."; let buildPackages = pkgsBuildHost; inherit (passthru) pythonOnBuildForHost; - pythonOnBuildForHostInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then - "$out/bin/python" - else pythonOnBuildForHost.interpreter; + pythonOnBuildForHostInterpreter = + if stdenv.hostPlatform == stdenv.buildPlatform then + "$out/bin/python" + else + pythonOnBuildForHost.interpreter; - passthru = passthruFun rec { - inherit self sourceVersion packageOverrides; - implementation = "cpython"; - libPrefix = "python${pythonVersion}"; - executable = libPrefix; - pythonVersion = with sourceVersion; "${major}.${minor}"; - sitePackages = "lib/${libPrefix}/site-packages"; - inherit hasDistutilsCxxPatch pythonAttr; - pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; - pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; - pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; - pythonOnHostForHost = pkgsHostHost.${pythonAttr}; - pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or {}; - } // { - inherit ucsEncoding; - }; + passthru = + passthruFun rec { + inherit self sourceVersion packageOverrides; + implementation = "cpython"; + libPrefix = "python${pythonVersion}"; + executable = libPrefix; + pythonVersion = with sourceVersion; "${major}.${minor}"; + sitePackages = "lib/${libPrefix}/site-packages"; + inherit hasDistutilsCxxPatch pythonAttr; + pythonOnBuildForBuild = pkgsBuildBuild.${pythonAttr}; + pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; + pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; + pythonOnHostForHost = pkgsHostHost.${pythonAttr}; + pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or { }; + } + // { + inherit ucsEncoding; + }; version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; @@ -92,7 +106,8 @@ let hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); patches = - [ # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff. + [ + # Look in C_INCLUDE_PATH and LIBRARY_PATH for stuff. ./search-path.patch # Python recompiles a Python if the mtime stored *in* the @@ -137,14 +152,17 @@ let revert = true; hash = "sha256-Lp5fGlcfJJ6p6vKmcLckJiAA2AZz4prjFE0aMEJxotw="; }) - ] ++ lib.optionals (x11Support && stdenv.isDarwin) [ + ] + ++ lib.optionals (x11Support && stdenv.isDarwin) [ ./use-correct-tcl-tk-on-darwin.patch - ] ++ lib.optionals stdenv.isDarwin [ + ] + ++ lib.optionals stdenv.isDarwin [ # Fix darwin build https://bugs.python.org/issue34027 ../3.7/darwin-libutil.patch - ] ++ lib.optionals stdenv.isLinux [ + ] + ++ lib.optionals stdenv.isLinux [ # Disable the use of ldconfig in ctypes.util.find_library (since # ldconfig doesn't work on NixOS), and don't use @@ -156,7 +174,8 @@ let # Fix ctypes.util.find_library with gcc10. ./find_library-gcc10.patch - ] ++ lib.optionals stdenv.hostPlatform.isCygwin [ + ] + ++ lib.optionals stdenv.hostPlatform.isCygwin [ ./2.5.2-ctypes-util-find_library.patch ./2.5.2-tkinter-x11.patch ./2.6.2-ssl-threads.patch @@ -167,7 +186,8 @@ let ./2.7.3-dylib.patch ./2.7.3-getpath-exe-extension.patch ./2.7.3-no-libm.patch - ] ++ lib.optionals hasDistutilsCxxPatch [ + ] + ++ lib.optionals hasDistutilsCxxPatch [ # Patch from http://bugs.python.org/issue1222585 adapted to work with # `patch -p1' and with a last hunk removed @@ -175,76 +195,93 @@ let # only works for GCC and Apple Clang. This makes distutils to call C++ # compiler when needed. ./python-2.7-distutils-C++.patch - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - ./cross-compile.patch - ]; + ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ ./cross-compile.patch ]; - preConfigure = '' + preConfigure = + '' # Purity. for i in /usr /sw /opt /pkg; do substituteInPlace ./setup.py --replace $i /no-such-path done - '' + lib.optionalString (stdenv ? cc && stdenv.cc.libc != null) '' + '' + + lib.optionalString (stdenv ? cc && stdenv.cc.libc != null) '' for i in Lib/plat-*/regen; do substituteInPlace $i --replace /usr/include/ ${stdenv.cc.libc}/include/ done - '' + lib.optionalString stdenv.isDarwin '' + '' + + lib.optionalString stdenv.isDarwin '' substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"' substituteInPlace Lib/multiprocessing/__init__.py \ --replace 'os.popen(comm)' 'os.popen("${coreutils}/bin/nproc")' ''; - configureFlags = lib.optionals enableOptimizations [ - "--enable-optimizations" - ] ++ lib.optionals (!static) [ - "--enable-shared" - ] ++ [ - "--with-threads" - "--with-system-ffi" - "--with-system-expat" - "--enable-unicode=ucs${toString ucsEncoding}" - ] ++ lib.optionals stdenv.hostPlatform.isCygwin [ - "ac_cv_func_bind_textdomain_codeset=yes" - ] ++ lib.optionals stdenv.isDarwin [ - "--disable-toolbox-glue" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "PYTHON_FOR_BUILD=${lib.getBin buildPackages.python}/bin/python" - "ac_cv_buggy_getaddrinfo=no" - # Assume little-endian IEEE 754 floating point when cross compiling - "ac_cv_little_endian_double=yes" - "ac_cv_big_endian_double=no" - "ac_cv_mixed_endian_double=no" - "ac_cv_x87_double_rounding=yes" - "ac_cv_tanh_preserves_zero_sign=yes" - # Generally assume that things are present and work - "ac_cv_posix_semaphores_enabled=yes" - "ac_cv_broken_sem_getvalue=no" - "ac_cv_wchar_t_signed=yes" - "ac_cv_rshift_extends_sign=yes" - "ac_cv_broken_nice=no" - "ac_cv_broken_poll=no" - "ac_cv_working_tzset=yes" - "ac_cv_have_long_long_format=yes" - "ac_cv_have_size_t_format=yes" - "ac_cv_computed_gotos=yes" - "ac_cv_file__dev_ptmx=yes" - "ac_cv_file__dev_ptc=yes" - ] + configureFlags = + lib.optionals enableOptimizations [ "--enable-optimizations" ] + ++ lib.optionals (!static) [ "--enable-shared" ] + ++ [ + "--with-threads" + "--with-system-ffi" + "--with-system-expat" + "--enable-unicode=ucs${toString ucsEncoding}" + ] + ++ lib.optionals stdenv.hostPlatform.isCygwin [ "ac_cv_func_bind_textdomain_codeset=yes" ] + ++ lib.optionals stdenv.isDarwin [ "--disable-toolbox-glue" ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "PYTHON_FOR_BUILD=${lib.getBin buildPackages.python}/bin/python" + "ac_cv_buggy_getaddrinfo=no" + # Assume little-endian IEEE 754 floating point when cross compiling + "ac_cv_little_endian_double=yes" + "ac_cv_big_endian_double=no" + "ac_cv_mixed_endian_double=no" + "ac_cv_x87_double_rounding=yes" + "ac_cv_tanh_preserves_zero_sign=yes" + # Generally assume that things are present and work + "ac_cv_posix_semaphores_enabled=yes" + "ac_cv_broken_sem_getvalue=no" + "ac_cv_wchar_t_signed=yes" + "ac_cv_rshift_extends_sign=yes" + "ac_cv_broken_nice=no" + "ac_cv_broken_poll=no" + "ac_cv_working_tzset=yes" + "ac_cv_have_long_long_format=yes" + "ac_cv_have_size_t_format=yes" + "ac_cv_computed_gotos=yes" + "ac_cv_file__dev_ptmx=yes" + "ac_cv_file__dev_ptc=yes" + ] # Never even try to use lchmod on linux, # don't rely on detecting glibc-isms. - ++ lib.optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no" - ++ lib.optional static "LDFLAGS=-static"; + ++ lib.optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no" + ++ lib.optional static "LDFLAGS=-static"; strictDeps = true; buildInputs = - lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc ++ - [ bzip2 openssl zlib libffi expat db gdbm ncurses sqlite readline ] - ++ lib.optionals x11Support [ tcl tk libX11 ] + lib.optional (stdenv ? cc && stdenv.cc.libc != null) stdenv.cc.libc + ++ [ + bzip2 + openssl + zlib + libffi + expat + db + gdbm + ncurses + sqlite + readline + ] + ++ lib.optionals x11Support [ + tcl + tk + libX11 + ] ++ lib.optional (stdenv.isDarwin && configd != null) configd; nativeBuildInputs = [ autoreconfHook ] - ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) - [ buildPackages.stdenv.cc buildPackages.python ]; + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + buildPackages.stdenv.cc + buildPackages.python + ]; mkPaths = paths: { C_INCLUDE_PATH = lib.makeSearchPathOutput "dev" "include" paths; @@ -252,29 +289,41 @@ let }; # Python 2.7 needs this - crossCompileEnv = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) - { _PYTHON_HOST_PLATFORM = stdenv.hostPlatform.config; }; + crossCompileEnv = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) { + _PYTHON_HOST_PLATFORM = stdenv.hostPlatform.config; + }; # Build the basic Python interpreter without modules that have # external dependencies. -in with passthru; stdenv.mkDerivation ({ +in +with passthru; +stdenv.mkDerivation ( + { pname = "python"; inherit version; - inherit src patches buildInputs nativeBuildInputs preConfigure configureFlags; + inherit + src + patches + buildInputs + nativeBuildInputs + preConfigure + configureFlags + ; LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lgcc_s"; inherit (mkPaths buildInputs) C_INCLUDE_PATH LIBRARY_PATH; - env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.targetPlatform.system == "x86_64-darwin") "-msse2" + env.NIX_CFLAGS_COMPILE = + lib.optionalString (stdenv.targetPlatform.system == "x86_64-darwin") "-msse2" + lib.optionalString stdenv.hostPlatform.isMusl " -DTHREAD_STACK_SIZE=0x100000"; DETERMINISTIC_BUILD = 1; setupHook = python-setup-hook sitePackages; postPatch = lib.optionalString (x11Support && (tix != null)) '' - substituteInPlace "Lib/lib-tk/Tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" + substituteInPlace "Lib/lib-tk/Tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" ''; postInstall = @@ -300,37 +349,45 @@ in with passthru; stdenv.mkDerivation ({ # Determinism: Windows installers were not deterministic. # We're also not interested in building Windows installers. find "$out" -name 'wininst*.exe' | xargs -r rm -f - '' + lib.optionalString stripBytecode '' + '' + + lib.optionalString stripBytecode '' # Determinism: deterministic bytecode # First we delete all old bytecode. find $out -name "*.pyc" -delete - '' + lib.optionalString rebuildBytecode '' + '' + + lib.optionalString rebuildBytecode '' # We build 3 levels of optimized bytecode. Note the default level, without optimizations, # is not reproducible yet. https://bugs.python.org/issue29708 # Not creating bytecode will result in a large performance loss however, so we do build it. find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -O -m compileall -q -f -x "lib2to3" -i - find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - - '' + lib.optionalString stdenv.hostPlatform.isCygwin '' + '' + + lib.optionalString stdenv.hostPlatform.isCygwin '' cp libpython2.7.dll.a $out/lib ''; inherit passthru; - postFixup = '' - # Include a sitecustomize.py file. Note it causes an error when it's in postInstall with 2.7. - cp ${../../sitecustomize.py} $out/${sitePackages}/sitecustomize.py - '' + lib.optionalString strip2to3 '' - rm -R $out/bin/2to3 $out/lib/python*/lib2to3 - '' + lib.optionalString stripConfig '' - rm -R $out/bin/python*-config $out/lib/python*/config* - '' + lib.optionalString stripIdlelib '' - # Strip IDLE - rm -R $out/bin/idle* $out/lib/python*/idlelib - '' + lib.optionalString stripTests '' - # Strip tests - rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} - ''; + postFixup = + '' + # Include a sitecustomize.py file. Note it causes an error when it's in postInstall with 2.7. + cp ${../../sitecustomize.py} $out/${sitePackages}/sitecustomize.py + '' + + lib.optionalString strip2to3 '' + rm -R $out/bin/2to3 $out/lib/python*/lib2to3 + '' + + lib.optionalString stripConfig '' + rm -R $out/bin/python*-config $out/lib/python*/config* + '' + + lib.optionalString stripIdlelib '' + # Strip IDLE + rm -R $out/bin/idle* $out/lib/python*/idlelib + '' + + lib.optionalString stripTests '' + # Strip tests + rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} + ''; enableParallelBuilding = true; @@ -361,4 +418,6 @@ in with passthru; stdenv.mkDerivation ({ # sunset till 2020. ]; }; - } // crossCompileEnv) + } + // crossCompileEnv +) diff --git a/pkgs/by-name/py/python/cpython/default.nix b/pkgs/by-name/py/python/cpython/default.nix index 301af7a..c07ea01 100644 --- a/pkgs/by-name/py/python/cpython/default.nix +++ b/pkgs/by-name/py/python/cpython/default.nix @@ -1,112 +1,123 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, fetchgit +{ + lib, + stdenv, + fetchurl, + fetchpatch, + fetchgit, -# build dependencies -, autoconf-archive -, autoreconfHook -, nukeReferences -, pkg-config -, python-setup-hook + # build dependencies + autoconf-archive, + autoreconfHook, + nukeReferences, + pkg-config, + python-setup-hook, -# runtime dependencies -, bzip2 -, expat -, libffi -, libxcrypt -, mpdecimal -, ncurses -, openssl -, sqlite -, xz -, zlib + # runtime dependencies + bzip2, + expat, + libffi, + libxcrypt, + mpdecimal, + ncurses, + openssl, + sqlite, + xz, + zlib, -# platform-specific dependencies -, bash -, configd -, darwin -, windows + # platform-specific dependencies + bash, + configd, + darwin, + windows, -# optional dependencies -, bluezSupport ? false, bluez -, mimetypesSupport ? true, mailcap -, tzdata -, withGdbm ? !stdenv.hostPlatform.isWindows, gdbm -, withReadline ? !stdenv.hostPlatform.isWindows, readline -, x11Support ? false, tcl, tk, tix, libX11, xorgproto + # optional dependencies + bluezSupport ? false, + bluez, + mimetypesSupport ? true, + mailcap, + tzdata, + withGdbm ? !stdenv.hostPlatform.isWindows, + gdbm, + withReadline ? !stdenv.hostPlatform.isWindows, + readline, + x11Support ? false, + tcl, + tk, + tix, + libX11, + xorgproto, -# splicing/cross -, pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" -, self -, pkgsBuildBuild -, pkgsBuildHost -, pkgsBuildTarget -, pkgsHostHost -, pkgsTargetTarget + # splicing/cross + pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}", + self, + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsTargetTarget, -# build customization -, sourceVersion -, hash -, passthruFun -, stripConfig ? false -, stripIdlelib ? false -, stripTests ? false -, stripTkinter ? false -, rebuildBytecode ? true -, stripBytecode ? true -, includeSiteCustomize ? true -, static ? stdenv.hostPlatform.isStatic -, enableFramework ? false -, noldconfigPatch ? ./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch" -, enableGIL ? true + # build customization + sourceVersion, + hash, + passthruFun, + stripConfig ? false, + stripIdlelib ? false, + stripTests ? false, + stripTkinter ? false, + rebuildBytecode ? true, + stripBytecode ? true, + includeSiteCustomize ? true, + static ? stdenv.hostPlatform.isStatic, + enableFramework ? false, + noldconfigPatch ? ./. + "/${sourceVersion.major}.${sourceVersion.minor}/no-ldconfig.patch", + enableGIL ? true, -# pgo (not reproducible) + -fno-semantic-interposition -# https://docs.python.org/3/using/configure.html#cmdoption-enable-optimizations -, enableOptimizations ? false + # pgo (not reproducible) + -fno-semantic-interposition + # https://docs.python.org/3/using/configure.html#cmdoption-enable-optimizations + enableOptimizations ? false, -# improves performance, but remains reproducible -, enableNoSemanticInterposition ? true + # improves performance, but remains reproducible + enableNoSemanticInterposition ? true, -# enabling LTO on 32bit arch causes downstream packages to fail when linking -# enabling LTO on *-darwin causes python3 to fail when linking. -, enableLTO ? stdenv.is64bit && stdenv.isLinux + # enabling LTO on 32bit arch causes downstream packages to fail when linking + # enabling LTO on *-darwin causes python3 to fail when linking. + enableLTO ? stdenv.is64bit && stdenv.isLinux, -# enable asserts to ensure the build remains reproducible -, reproducibleBuild ? false + # enable asserts to ensure the build remains reproducible + reproducibleBuild ? false, -# for the Python package set -, packageOverrides ? (self: super: {}) + # for the Python package set + packageOverrides ? (self: super: { }), -# tests -, testers + # tests + testers, -} @ inputs: +}@inputs: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or # cgit) that are needed here should be included directly in Nixpkgs as # files. -assert x11Support -> tcl != null - && tk != null - && xorgproto != null - && libX11 != null; +assert x11Support -> tcl != null && tk != null && xorgproto != null && libX11 != null; assert bluezSupport -> bluez != null; -assert lib.assertMsg (enableFramework -> stdenv.isDarwin) - "Framework builds are only supported on Darwin."; +assert lib.assertMsg ( + enableFramework -> stdenv.isDarwin +) "Framework builds are only supported on Darwin."; -assert lib.assertMsg (reproducibleBuild -> stripBytecode) - "Deterministic builds require stripping bytecode."; +assert lib.assertMsg ( + reproducibleBuild -> stripBytecode +) "Deterministic builds require stripping bytecode."; -assert lib.assertMsg (reproducibleBuild -> (!enableOptimizations)) - "Deterministic builds are not achieved when optimizations are enabled."; +assert lib.assertMsg ( + reproducibleBuild -> (!enableOptimizations) +) "Deterministic builds are not achieved when optimizations are enabled."; -assert lib.assertMsg (reproducibleBuild -> (!rebuildBytecode)) - "Deterministic builds are not achieved when (default unoptimized) bytecode is created."; +assert lib.assertMsg ( + reproducibleBuild -> (!rebuildBytecode) +) "Deterministic builds are not achieved when (default unoptimized) bytecode is created."; let inherit (lib) @@ -119,88 +130,103 @@ let optionalString replaceStrings versionOlder - ; + ; buildPackages = pkgsBuildHost; inherit (passthru) pythonOnBuildForHost; tzdataSupport = tzdata != null && passthru.pythonAtLeast "3.9"; - passthru = let - # When we override the interpreter we also need to override the spliced versions of the interpreter - inputs' = lib.filterAttrs (n: v: ! lib.isDerivation v && n != "passthruFun") inputs; - override = attr: let python = attr.override (inputs' // { self = python; }); in python; - in passthruFun rec { - inherit self sourceVersion packageOverrides; - implementation = "cpython"; - libPrefix = "python${pythonVersion}"; - executable = libPrefix; - pythonVersion = with sourceVersion; "${major}.${minor}"; - sitePackages = "lib/${libPrefix}/site-packages"; - inherit hasDistutilsCxxPatch pythonAttr; - pythonOnBuildForBuild = override pkgsBuildBuild.${pythonAttr}; - pythonOnBuildForHost = override pkgsBuildHost.${pythonAttr}; - pythonOnBuildForTarget = override pkgsBuildTarget.${pythonAttr}; - pythonOnHostForHost = override pkgsHostHost.${pythonAttr}; - pythonOnTargetForTarget = lib.optionalAttrs (lib.hasAttr pythonAttr pkgsTargetTarget) (override pkgsTargetTarget.${pythonAttr}); - }; + passthru = + let + # When we override the interpreter we also need to override the spliced versions of the interpreter + inputs' = lib.filterAttrs (n: v: !lib.isDerivation v && n != "passthruFun") inputs; + override = + attr: + let + python = attr.override (inputs' // { self = python; }); + in + python; + in + passthruFun rec { + inherit self sourceVersion packageOverrides; + implementation = "cpython"; + libPrefix = "python${pythonVersion}"; + executable = libPrefix; + pythonVersion = with sourceVersion; "${major}.${minor}"; + sitePackages = "lib/${libPrefix}/site-packages"; + inherit hasDistutilsCxxPatch pythonAttr; + pythonOnBuildForBuild = override pkgsBuildBuild.${pythonAttr}; + pythonOnBuildForHost = override pkgsBuildHost.${pythonAttr}; + pythonOnBuildForTarget = override pkgsBuildTarget.${pythonAttr}; + pythonOnHostForHost = override pkgsHostHost.${pythonAttr}; + pythonOnTargetForTarget = lib.optionalAttrs (lib.hasAttr pythonAttr pkgsTargetTarget) ( + override pkgsTargetTarget.${pythonAttr} + ); + }; version = with sourceVersion; "${major}.${minor}.${patch}${suffix}"; - nativeBuildInputs = [ - nukeReferences - ] ++ optionals (!stdenv.isDarwin) [ - autoconf-archive # needed for AX_CHECK_COMPILE_FLAG - autoreconfHook - pkg-config - ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - buildPackages.stdenv.cc - pythonOnBuildForHost - ] ++ optionals (stdenv.cc.isClang && (!stdenv.hostPlatform.useAndroidPrebuilt or false) && (enableLTO || enableOptimizations)) [ - stdenv.cc.cc.libllvm.out - ]; + nativeBuildInputs = + [ nukeReferences ] + ++ optionals (!stdenv.isDarwin) [ + autoconf-archive # needed for AX_CHECK_COMPILE_FLAG + autoreconfHook + pkg-config + ] + ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + buildPackages.stdenv.cc + pythonOnBuildForHost + ] + ++ optionals ( + stdenv.cc.isClang + && (!stdenv.hostPlatform.useAndroidPrebuilt or false) + && (enableLTO || enableOptimizations) + ) [ stdenv.cc.cc.libllvm.out ]; - buildInputs = lib.filter (p: p != null) ([ - bzip2 - expat - libffi - libxcrypt - mpdecimal - ncurses - openssl - sqlite - xz - zlib - ] ++ optionals bluezSupport [ - bluez - ] ++ optionals enableFramework [ - darwin.apple_sdk.frameworks.Cocoa - ] ++ optionals stdenv.hostPlatform.isMinGW [ - windows.dlfcn - windows.mingw_w64_pthreads - ] ++ optionals stdenv.isDarwin [ - configd - ] ++ optionals tzdataSupport [ - tzdata - ] ++ optionals withGdbm [ - gdbm - ] ++ optionals withReadline [ - readline - ] ++ optionals x11Support [ - libX11 - tcl - tk - xorgproto - ]); + buildInputs = lib.filter (p: p != null) ( + [ + bzip2 + expat + libffi + libxcrypt + mpdecimal + ncurses + openssl + sqlite + xz + zlib + ] + ++ optionals bluezSupport [ bluez ] + ++ optionals enableFramework [ darwin.apple_sdk.frameworks.Cocoa ] + ++ optionals stdenv.hostPlatform.isMinGW [ + windows.dlfcn + windows.mingw_w64_pthreads + ] + ++ optionals stdenv.isDarwin [ configd ] + ++ optionals tzdataSupport [ tzdata ] + ++ optionals withGdbm [ gdbm ] + ++ optionals withReadline [ readline ] + ++ optionals x11Support [ + libX11 + tcl + tk + xorgproto + ] + ); hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); - pythonOnBuildForHostInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then - "$out/bin/python" - else pythonOnBuildForHost.interpreter; + pythonOnBuildForHostInterpreter = + if stdenv.hostPlatform == stdenv.buildPlatform then + "$out/bin/python" + else + pythonOnBuildForHost.interpreter; src = fetchurl { - url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; + url = + with sourceVersion; + "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; inherit hash; }; @@ -216,370 +242,415 @@ let # platform suffix on extension modules. The correct values for these variables # are not documented, and must be derived from the configure script (see links # below). - sysconfigdataHook = with stdenv.hostPlatform; with passthru; let - machdep = if isWindows then "win32" else parsed.kernel.name; # win32 is added by Fedora’s patch + sysconfigdataHook = + with stdenv.hostPlatform; + with passthru; + let + machdep = if isWindows then "win32" else parsed.kernel.name; # win32 is added by Fedora’s patch - # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L428 - # The configure script uses "arm" as the CPU name for all 32-bit ARM - # variants when cross-compiling, but native builds include the version - # suffix, so we do the same. - pythonHostPlatform = let - cpu = { - # According to PEP600, Python's name for the Power PC - # architecture is "ppc", not "powerpc". Without the Rosetta - # Stone below, the PEP600 requirement that "${ARCH} matches - # the return value from distutils.util.get_platform()" fails. - # https://peps.python.org/pep-0600/ - powerpc = "ppc"; - powerpcle = "ppcle"; - powerpc64 = "ppc64"; - powerpc64le = "ppc64le"; - }.${parsed.cpu.name} or parsed.cpu.name; - in "${machdep}-${cpu}"; + # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L428 + # The configure script uses "arm" as the CPU name for all 32-bit ARM + # variants when cross-compiling, but native builds include the version + # suffix, so we do the same. + pythonHostPlatform = + let + cpu = + { + # According to PEP600, Python's name for the Power PC + # architecture is "ppc", not "powerpc". Without the Rosetta + # Stone below, the PEP600 requirement that "${ARCH} matches + # the return value from distutils.util.get_platform()" fails. + # https://peps.python.org/pep-0600/ + powerpc = "ppc"; + powerpcle = "ppcle"; + powerpc64 = "ppc64"; + powerpc64le = "ppc64le"; + } + .${parsed.cpu.name} or parsed.cpu.name; + in + "${machdep}-${cpu}"; - # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L724 - multiarchCpu = - if isAarch32 then - if parsed.cpu.significantByte.name == "littleEndian" then "arm" else "armeb" - else if isx86_32 then "i386" - else parsed.cpu.name; - - pythonAbiName = let - # python's build doesn't match the nixpkgs abi in some cases. # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L724 - nixpkgsPythonAbiMappings = { - "gnuabielfv2" = "gnu"; - "muslabielfv2" = "musl"; - }; - pythonAbi = nixpkgsPythonAbiMappings.${parsed.abi.name} or parsed.abi.name; + multiarchCpu = + if isAarch32 then + if parsed.cpu.significantByte.name == "littleEndian" then "arm" else "armeb" + else if isx86_32 then + "i386" + else + parsed.cpu.name; + + pythonAbiName = + let + # python's build doesn't match the nixpkgs abi in some cases. + # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L724 + nixpkgsPythonAbiMappings = { + "gnuabielfv2" = "gnu"; + "muslabielfv2" = "musl"; + }; + pythonAbi = nixpkgsPythonAbiMappings.${parsed.abi.name} or parsed.abi.name; + in + # Python <3.11 doesn't distinguish musl and glibc and always prefixes with "gnu" + if versionOlder version "3.11" then replaceStrings [ "musl" ] [ "gnu" ] pythonAbi else pythonAbi; + + multiarch = + if isDarwin then + "darwin" + else if isWindows then + "" + else + "${multiarchCpu}-${machdep}-${pythonAbiName}"; + + abiFlags = optionalString isPy37 "m"; + + # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L78 + pythonSysconfigdataName = "_sysconfigdata_${abiFlags}_${machdep}_${multiarch}"; in - # Python <3.11 doesn't distinguish musl and glibc and always prefixes with "gnu" - if versionOlder version "3.11" then - replaceStrings [ "musl" ] [ "gnu" ] pythonAbi - else - pythonAbi; + '' + sysconfigdataHook() { + if [ "$1" = '${placeholder "out"}' ]; then + export _PYTHON_HOST_PLATFORM='${pythonHostPlatform}' + export _PYTHON_SYSCONFIGDATA_NAME='${pythonSysconfigdataName}' + fi + } - multiarch = - if isDarwin then "darwin" - else if isWindows then "" - else "${multiarchCpu}-${machdep}-${pythonAbiName}"; - - abiFlags = optionalString isPy37 "m"; - - # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L78 - pythonSysconfigdataName = "_sysconfigdata_${abiFlags}_${machdep}_${multiarch}"; - in '' - sysconfigdataHook() { - if [ "$1" = '${placeholder "out"}' ]; then - export _PYTHON_HOST_PLATFORM='${pythonHostPlatform}' - export _PYTHON_SYSCONFIGDATA_NAME='${pythonSysconfigdataName}' - fi - } - - addEnvHooks "$hostOffset" sysconfigdataHook - ''; + addEnvHooks "$hostOffset" sysconfigdataHook + ''; execSuffix = stdenv.hostPlatform.extensions.executable; -in with passthru; stdenv.mkDerivation (finalAttrs: { +in +with passthru; +stdenv.mkDerivation (finalAttrs: { pname = "python3"; inherit src version; inherit nativeBuildInputs; - buildInputs = lib.optionals (!stdenv.hostPlatform.isWindows) [ - bash # only required for patchShebangs - ] ++ buildInputs; + buildInputs = + lib.optionals (!stdenv.hostPlatform.isWindows) [ + bash # only required for patchShebangs + ] + ++ buildInputs; - prePatch = optionalString stdenv.isDarwin '' - substituteInPlace configure --replace-fail '`/usr/bin/arch`' '"i386"' - '' + optionalString (pythonOlder "3.9" && stdenv.isDarwin && x11Support) '' - # Broken on >= 3.9; replaced with ./3.9/darwin-tcl-tk.patch - substituteInPlace setup.py --replace-fail /Library/Frameworks /no-such-path - ''; + prePatch = + optionalString stdenv.isDarwin '' + substituteInPlace configure --replace-fail '`/usr/bin/arch`' '"i386"' + '' + + optionalString (pythonOlder "3.9" && stdenv.isDarwin && x11Support) '' + # Broken on >= 3.9; replaced with ./3.9/darwin-tcl-tk.patch + substituteInPlace setup.py --replace-fail /Library/Frameworks /no-such-path + ''; - patches = [ - # Disable the use of ldconfig in ctypes.util.find_library (since - # ldconfig doesn't work on NixOS), and don't use - # ctypes.util.find_library during the loading of the uuid module - # (since it will do a futile invocation of gcc (!) to find - # libuuid, slowing down program startup a lot). - noldconfigPatch - # Make sure that the virtualenv activation scripts are - # owner-writable, so venvs can be recreated without permission - # errors. - ] ++ optionals (pythonOlder "3.13") [ - ./virtualenv-permissions.patch - ] ++ optionals (pythonAtLeast "3.13") [ - ./3.13/virtualenv-permissions.patch - ] ++ optionals mimetypesSupport [ - # Make the mimetypes module refer to the right file - ./mimetypes.patch - ] ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.11") [ - # Fix darwin build https://bugs.python.org/issue34027 - ./3.7/darwin-libutil.patch - ] ++ optionals (pythonAtLeast "3.11") [ - ./3.11/darwin-libutil.patch - ] ++ optionals (pythonAtLeast "3.9" && pythonOlder "3.11" && stdenv.isDarwin) [ - # Stop checking for TCL/TK in global macOS locations - ./3.9/darwin-tcl-tk.patch - ] ++ optionals (hasDistutilsCxxPatch && pythonOlder "3.12") [ - # Fix for http://bugs.python.org/issue1222585 - # Upstream distutils is calling C compiler to compile C++ code, which - # only works for GCC and Apple Clang. This makes distutils to call C++ - # compiler when needed. - ( - if pythonAtLeast "3.7" && pythonOlder "3.11" then - ./3.7/python-3.x-distutils-C++.patch - else if pythonAtLeast "3.11" then - ./3.11/python-3.x-distutils-C++.patch - else - fetchpatch { - url = "https://bugs.python.org/file48016/python-3.x-distutils-C++.patch"; - sha256 = "1h18lnpx539h5lfxyk379dxwr8m2raigcjixkf133l4xy3f4bzi2"; - } - ) - ] ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.12") [ - # LDSHARED now uses $CC instead of gcc. Fixes cross-compilation of extension modules. - ./3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch - # Use sysconfigdata to find headers. Fixes cross-compilation of extension modules. - ./3.7/fix-finding-headers-when-cross-compiling.patch - ] ++ optionals (pythonOlder "3.12") [ - # https://github.com/python/cpython/issues/90656 - ./loongarch-support.patch - ] ++ optionals (pythonAtLeast "3.11" && pythonOlder "3.13") [ - # backport fix for https://github.com/python/cpython/issues/95855 - ./platform-triplet-detection.patch - ] ++ optionals (stdenv.hostPlatform.isMinGW) (let - # https://src.fedoraproject.org/rpms/mingw-python3 - mingw-patch = fetchgit { - name = "mingw-python-patches"; - url = "https://src.fedoraproject.org/rpms/mingw-python3.git"; - rev = "45c45833ab9e5480ad0ae00778a05ebf35812ed4"; # for python 3.11.5 at the time of writing. - sha256 = "sha256-KIyNvO6MlYTrmSy9V/DbzXm5OsIuyT/BEpuo7Umm9DI="; - }; - in [ - "${mingw-patch}/*.patch" - ]); + patches = + [ + # Disable the use of ldconfig in ctypes.util.find_library (since + # ldconfig doesn't work on NixOS), and don't use + # ctypes.util.find_library during the loading of the uuid module + # (since it will do a futile invocation of gcc (!) to find + # libuuid, slowing down program startup a lot). + noldconfigPatch + # Make sure that the virtualenv activation scripts are + # owner-writable, so venvs can be recreated without permission + # errors. + ] + ++ optionals (pythonOlder "3.13") [ ./virtualenv-permissions.patch ] + ++ optionals (pythonAtLeast "3.13") [ ./3.13/virtualenv-permissions.patch ] + ++ optionals mimetypesSupport [ + # Make the mimetypes module refer to the right file + ./mimetypes.patch + ] + ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.11") [ + # Fix darwin build https://bugs.python.org/issue34027 + ./3.7/darwin-libutil.patch + ] + ++ optionals (pythonAtLeast "3.11") [ ./3.11/darwin-libutil.patch ] + ++ optionals (pythonAtLeast "3.9" && pythonOlder "3.11" && stdenv.isDarwin) [ + # Stop checking for TCL/TK in global macOS locations + ./3.9/darwin-tcl-tk.patch + ] + ++ optionals (hasDistutilsCxxPatch && pythonOlder "3.12") [ + # Fix for http://bugs.python.org/issue1222585 + # Upstream distutils is calling C compiler to compile C++ code, which + # only works for GCC and Apple Clang. This makes distutils to call C++ + # compiler when needed. + ( + if pythonAtLeast "3.7" && pythonOlder "3.11" then + ./3.7/python-3.x-distutils-C++.patch + else if pythonAtLeast "3.11" then + ./3.11/python-3.x-distutils-C++.patch + else + fetchpatch { + url = "https://bugs.python.org/file48016/python-3.x-distutils-C++.patch"; + sha256 = "1h18lnpx539h5lfxyk379dxwr8m2raigcjixkf133l4xy3f4bzi2"; + } + ) + ] + ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.12") [ + # LDSHARED now uses $CC instead of gcc. Fixes cross-compilation of extension modules. + ./3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch + # Use sysconfigdata to find headers. Fixes cross-compilation of extension modules. + ./3.7/fix-finding-headers-when-cross-compiling.patch + ] + ++ optionals (pythonOlder "3.12") [ + # https://github.com/python/cpython/issues/90656 + ./loongarch-support.patch + ] + ++ optionals (pythonAtLeast "3.11" && pythonOlder "3.13") [ + # backport fix for https://github.com/python/cpython/issues/95855 + ./platform-triplet-detection.patch + ] + ++ optionals (stdenv.hostPlatform.isMinGW) ( + let + # https://src.fedoraproject.org/rpms/mingw-python3 + mingw-patch = fetchgit { + name = "mingw-python-patches"; + url = "https://src.fedoraproject.org/rpms/mingw-python3.git"; + rev = "45c45833ab9e5480ad0ae00778a05ebf35812ed4"; # for python 3.11.5 at the time of writing. + sha256 = "sha256-KIyNvO6MlYTrmSy9V/DbzXm5OsIuyT/BEpuo7Umm9DI="; + }; + in + [ "${mingw-patch}/*.patch" ] + ); - postPatch = optionalString (!stdenv.hostPlatform.isWindows) '' - substituteInPlace Lib/subprocess.py \ - --replace-fail "'/bin/sh'" "'${bash}/bin/sh'" - '' + optionalString mimetypesSupport '' - substituteInPlace Lib/mimetypes.py \ - --replace-fail "@mime-types@" "${mailcap}" - '' + optionalString (pythonOlder "3.13" && x11Support && (tix != null)) '' - substituteInPlace "Lib/tkinter/tix.py" --replace-fail \ - "os.environ.get('TIX_LIBRARY')" \ - "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" - ''; + postPatch = + optionalString (!stdenv.hostPlatform.isWindows) '' + substituteInPlace Lib/subprocess.py \ + --replace-fail "'/bin/sh'" "'${bash}/bin/sh'" + '' + + optionalString mimetypesSupport '' + substituteInPlace Lib/mimetypes.py \ + --replace-fail "@mime-types@" "${mailcap}" + '' + + optionalString (pythonOlder "3.13" && x11Support && (tix != null)) '' + substituteInPlace "Lib/tkinter/tix.py" --replace-fail \ + "os.environ.get('TIX_LIBRARY')" \ + "os.environ.get('TIX_LIBRARY') or '${tix}/lib'" + ''; env = { CPPFLAGS = concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs); LDFLAGS = concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs); LIBS = "${optionalString (!stdenv.isDarwin) "-lcrypt"}"; - NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) ({ - "glibc" = "-lgcc_s"; - "musl" = "-lgcc_eh"; - }."${stdenv.hostPlatform.libc}" or ""); + NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && !stdenv.hostPlatform.isStatic) ( + { + "glibc" = "-lgcc_s"; + "musl" = "-lgcc_eh"; + } + ."${stdenv.hostPlatform.libc}" or "" + ); # Determinism: We fix the hashes of str, bytes and datetime objects. - PYTHONHASHSEED=0; + PYTHONHASHSEED = 0; }; # https://docs.python.org/3/using/configure.html - configureFlags = [ - "--without-ensurepip" - "--with-system-expat" - ] ++ optionals (!(stdenv.isDarwin && pythonAtLeast "3.12")) [ - # ./Modules/_decimal/_decimal.c:4673:6: error: "No valid combination of CONFIG_64, CONFIG_32 and _PyHASH_BITS" - # https://hydra.nixos.org/build/248410479/nixlog/2/tail - "--with-system-libmpdec" - ] ++ optionals (openssl != null) [ - "--with-openssl=${openssl.dev}" - ] ++ optionals tzdataSupport [ - "--with-tzpath=${tzdata}/share/zoneinfo" - ] ++ optionals (execSuffix != "") [ - "--with-suffix=${execSuffix}" - ] ++ optionals enableLTO [ - "--with-lto" - ] ++ optionals (!static && !enableFramework) [ - "--enable-shared" - ] ++ optionals enableFramework [ - "--enable-framework=${placeholder "out"}/Library/Frameworks" - ] ++ optionals (pythonAtLeast "3.13") [ - (enableFeature enableGIL "gil") - ] ++ optionals enableOptimizations [ - "--enable-optimizations" - ] ++ optionals (sqlite != null) [ - "--enable-loadable-sqlite-extensions" - ] ++ optionals (libxcrypt != null) [ - "CFLAGS=-I${libxcrypt}/include" - "LIBS=-L${libxcrypt}/lib" - ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "ac_cv_buggy_getaddrinfo=no" - # Assume little-endian IEEE 754 floating point when cross compiling - "ac_cv_little_endian_double=yes" - "ac_cv_big_endian_double=no" - "ac_cv_mixed_endian_double=no" - "ac_cv_x87_double_rounding=yes" - "ac_cv_tanh_preserves_zero_sign=yes" - # Generally assume that things are present and work - "ac_cv_posix_semaphores_enabled=yes" - "ac_cv_broken_sem_getvalue=no" - "ac_cv_wchar_t_signed=yes" - "ac_cv_rshift_extends_sign=yes" - "ac_cv_broken_nice=no" - "ac_cv_broken_poll=no" - "ac_cv_working_tzset=yes" - "ac_cv_have_long_long_format=yes" - "ac_cv_have_size_t_format=yes" - "ac_cv_computed_gotos=yes" - # Both fail when building for windows, normally configure checks this by itself but on other platforms this is set to yes always. - "ac_cv_file__dev_ptmx=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" - "ac_cv_file__dev_ptc=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" - ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && pythonAtLeast "3.11") [ - "--with-build-python=${pythonOnBuildForHostInterpreter}" - ] ++ optionals stdenv.hostPlatform.isLinux [ - # Never even try to use lchmod on linux, - # don't rely on detecting glibc-isms. - "ac_cv_func_lchmod=no" - ] ++ optionals static [ - "LDFLAGS=-static" - ]; + configureFlags = + [ + "--without-ensurepip" + "--with-system-expat" + ] + ++ optionals (!(stdenv.isDarwin && pythonAtLeast "3.12")) [ + # ./Modules/_decimal/_decimal.c:4673:6: error: "No valid combination of CONFIG_64, CONFIG_32 and _PyHASH_BITS" + # https://hydra.nixos.org/build/248410479/nixlog/2/tail + "--with-system-libmpdec" + ] + ++ optionals (openssl != null) [ "--with-openssl=${openssl.dev}" ] + ++ optionals tzdataSupport [ "--with-tzpath=${tzdata}/share/zoneinfo" ] + ++ optionals (execSuffix != "") [ "--with-suffix=${execSuffix}" ] + ++ optionals enableLTO [ "--with-lto" ] + ++ optionals (!static && !enableFramework) [ "--enable-shared" ] + ++ optionals enableFramework [ "--enable-framework=${placeholder "out"}/Library/Frameworks" ] + ++ optionals (pythonAtLeast "3.13") [ (enableFeature enableGIL "gil") ] + ++ optionals enableOptimizations [ "--enable-optimizations" ] + ++ optionals (sqlite != null) [ "--enable-loadable-sqlite-extensions" ] + ++ optionals (libxcrypt != null) [ + "CFLAGS=-I${libxcrypt}/include" + "LIBS=-L${libxcrypt}/lib" + ] + ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "ac_cv_buggy_getaddrinfo=no" + # Assume little-endian IEEE 754 floating point when cross compiling + "ac_cv_little_endian_double=yes" + "ac_cv_big_endian_double=no" + "ac_cv_mixed_endian_double=no" + "ac_cv_x87_double_rounding=yes" + "ac_cv_tanh_preserves_zero_sign=yes" + # Generally assume that things are present and work + "ac_cv_posix_semaphores_enabled=yes" + "ac_cv_broken_sem_getvalue=no" + "ac_cv_wchar_t_signed=yes" + "ac_cv_rshift_extends_sign=yes" + "ac_cv_broken_nice=no" + "ac_cv_broken_poll=no" + "ac_cv_working_tzset=yes" + "ac_cv_have_long_long_format=yes" + "ac_cv_have_size_t_format=yes" + "ac_cv_computed_gotos=yes" + # Both fail when building for windows, normally configure checks this by itself but on other platforms this is set to yes always. + "ac_cv_file__dev_ptmx=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" + "ac_cv_file__dev_ptc=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" + ] + ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && pythonAtLeast "3.11") [ + "--with-build-python=${pythonOnBuildForHostInterpreter}" + ] + ++ optionals stdenv.hostPlatform.isLinux [ + # Never even try to use lchmod on linux, + # don't rely on detecting glibc-isms. + "ac_cv_func_lchmod=no" + ] + ++ optionals static [ "LDFLAGS=-static" ]; - preConfigure = optionalString (pythonOlder "3.12") '' - # Improve purity - for path in /usr /sw /opt /pkg; do - substituteInPlace ./setup.py --replace-warn $path /no-such-path - done - '' + optionalString stdenv.isDarwin '' - # Override the auto-detection in setup.py, which assumes a universal build - export PYTHON_DECIMAL_WITH_MACHINE=${if stdenv.isAarch64 then "uint128" else "x64"} - '' + optionalString (stdenv.isDarwin && x11Support && pythonAtLeast "3.11") '' - export TCLTK_LIBS="-L${tcl}/lib -L${tk}/lib -l${tcl.libPrefix} -l${tk.libPrefix}" - export TCLTK_CFLAGS="-I${tcl}/include -I${tk}/include" - '' + optionalString stdenv.hostPlatform.isMusl '' - export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000" - '' + + preConfigure = + optionalString (pythonOlder "3.12") '' + # Improve purity + for path in /usr /sw /opt /pkg; do + substituteInPlace ./setup.py --replace-warn $path /no-such-path + done + '' + + optionalString stdenv.isDarwin '' + # Override the auto-detection in setup.py, which assumes a universal build + export PYTHON_DECIMAL_WITH_MACHINE=${if stdenv.isAarch64 then "uint128" else "x64"} + '' + + optionalString (stdenv.isDarwin && x11Support && pythonAtLeast "3.11") '' + export TCLTK_LIBS="-L${tcl}/lib -L${tk}/lib -l${tcl.libPrefix} -l${tk.libPrefix}" + export TCLTK_CFLAGS="-I${tcl}/include -I${tk}/include" + '' + + optionalString stdenv.hostPlatform.isMusl '' + export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000" + '' + + - # enableNoSemanticInterposition essentially sets that CFLAG -fno-semantic-interposition - # which changes how symbols are looked up. This essentially means we can't override - # libpython symbols via LD_PRELOAD anymore. This is common enough as every build - # that uses --enable-optimizations has the same "issue". - # - # The Fedora wiki has a good article about their journey towards enabling this flag: - # https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup - optionalString enableNoSemanticInterposition '' - export CFLAGS_NODIST="-fno-semantic-interposition" - ''; + # enableNoSemanticInterposition essentially sets that CFLAG -fno-semantic-interposition + # which changes how symbols are looked up. This essentially means we can't override + # libpython symbols via LD_PRELOAD anymore. This is common enough as every build + # that uses --enable-optimizations has the same "issue". + # + # The Fedora wiki has a good article about their journey towards enabling this flag: + # https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup + optionalString enableNoSemanticInterposition '' + export CFLAGS_NODIST="-fno-semantic-interposition" + ''; setupHook = python-setup-hook sitePackages; - postInstall = let - # References *not* to nuke from (sys)config files - keep-references = concatMapStringsSep " " (val: "-e ${val}") ([ - (placeholder "out") libxcrypt - ] ++ optionals tzdataSupport [ - tzdata - ]); - in lib.optionalString enableFramework '' - for dir in include lib share; do - ln -s $out/Library/Frameworks/Python.framework/Versions/Current/$dir $out/$dir - done - '' + '' - # needed for some packages, especially packages that backport functionality - # to 2.x from 3.x - for item in $out/lib/${libPrefix}/test/*; do - if [[ "$item" != */test_support.py* - && "$item" != */test/support - && "$item" != */test/libregrtest - && "$item" != */test/regrtest.py* ]]; then - rm -rf "$item" - else - echo $item - fi - done - touch $out/lib/${libPrefix}/test/__init__.py + postInstall = + let + # References *not* to nuke from (sys)config files + keep-references = concatMapStringsSep " " (val: "-e ${val}") ( + [ + (placeholder "out") + libxcrypt + ] + ++ optionals tzdataSupport [ tzdata ] + ); + in + lib.optionalString enableFramework '' + for dir in include lib share; do + ln -s $out/Library/Frameworks/Python.framework/Versions/Current/$dir $out/$dir + done + '' + + '' + # needed for some packages, especially packages that backport functionality + # to 2.x from 3.x + for item in $out/lib/${libPrefix}/test/*; do + if [[ "$item" != */test_support.py* + && "$item" != */test/support + && "$item" != */test/libregrtest + && "$item" != */test/regrtest.py* ]]; then + rm -rf "$item" + else + echo $item + fi + done + touch $out/lib/${libPrefix}/test/__init__.py - # Determinism: Windows installers were not deterministic. - # We're also not interested in building Windows installers. - find "$out" -name 'wininst*.exe' | xargs -r rm -f + # Determinism: Windows installers were not deterministic. + # We're also not interested in building Windows installers. + find "$out" -name 'wininst*.exe' | xargs -r rm -f - # Use Python3 as default python - ln -s "$out/bin/idle3" "$out/bin/idle" - ln -s "$out/bin/pydoc3" "$out/bin/pydoc" - ln -s "$out/bin/python3${execSuffix}" "$out/bin/python${execSuffix}" - ln -s "$out/bin/python3-config" "$out/bin/python-config" - ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc" - ln -sL "$out/share/man/man1/python3.1.gz" "$out/share/man/man1/python.1.gz" + # Use Python3 as default python + ln -s "$out/bin/idle3" "$out/bin/idle" + ln -s "$out/bin/pydoc3" "$out/bin/pydoc" + ln -s "$out/bin/python3${execSuffix}" "$out/bin/python${execSuffix}" + ln -s "$out/bin/python3-config" "$out/bin/python-config" + ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc" + ln -sL "$out/share/man/man1/python3.1.gz" "$out/share/man/man1/python.1.gz" - # Get rid of retained dependencies on -dev packages, and remove - # some $TMPDIR references to improve binary reproducibility. - # Note that the .pyc file of _sysconfigdata.py should be regenerated! - for i in $out/lib/${libPrefix}/_sysconfigdata*.py $out/lib/${libPrefix}/config-${sourceVersion.major}${sourceVersion.minor}*/Makefile; do - sed -i $i -e "s|$TMPDIR|/no-such-path|g" - done + # Get rid of retained dependencies on -dev packages, and remove + # some $TMPDIR references to improve binary reproducibility. + # Note that the .pyc file of _sysconfigdata.py should be regenerated! + for i in $out/lib/${libPrefix}/_sysconfigdata*.py $out/lib/${libPrefix}/config-${sourceVersion.major}${sourceVersion.minor}*/Makefile; do + sed -i $i -e "s|$TMPDIR|/no-such-path|g" + done - # Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668 - find $out/lib/python*/config-* -type f -print -exec nuke-refs ${keep-references} '{}' + - find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs ${keep-references} '{}' + + # Further get rid of references. https://github.com/NixOS/nixpkgs/issues/51668 + find $out/lib/python*/config-* -type f -print -exec nuke-refs ${keep-references} '{}' + + find $out/lib -name '_sysconfigdata*.py*' -print -exec nuke-refs ${keep-references} '{}' + - # Make the sysconfigdata module accessible on PYTHONPATH - # This allows build Python to import host Python's sysconfigdata - mkdir -p "$out/${sitePackages}" - ln -s "$out/lib/${libPrefix}/"_sysconfigdata*.py "$out/${sitePackages}/" - '' + optionalString stripConfig '' - rm -R $out/bin/python*-config $out/lib/python*/config-* - '' + optionalString stripIdlelib '' - # Strip IDLE (and turtledemo, which uses it) - rm -R $out/bin/idle* $out/lib/python*/{idlelib,turtledemo} - '' + optionalString stripTkinter '' - rm -R $out/lib/python*/tkinter - '' + optionalString stripTests '' - # Strip tests - rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} - '' + optionalString includeSiteCustomize '' - # Include a sitecustomize.py file - cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py - '' + optionalString stripBytecode '' - # Determinism: deterministic bytecode - # First we delete all old bytecode. - find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}" - '' + optionalString rebuildBytecode '' - # Python 3.7 implements PEP 552, introducing support for deterministic bytecode. - # compileall uses the therein introduced checked-hash method by default when - # `SOURCE_DATE_EPOCH` is set. - # We exclude lib2to3 because that's Python 2 code which fails - # We build 3 levels of optimized bytecode. Note the default level, without optimizations, - # is not reproducible yet. https://bugs.python.org/issue29708 - # Not creating bytecode will result in a large performance loss however, so we do build it. - find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -O -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - - '' + '' - # *strip* shebang from libpython gdb script - it should be dual-syntax and - # interpretable by whatever python the gdb in question is using, which may - # not even match the major version of this python. doing this after the - # bytecode compilations for the same reason - we don't want bytecode generated. - mkdir -p $out/share/gdb - sed '/^#!/d' Tools/gdb/libpython.py > $out/share/gdb/libpython.py + # Make the sysconfigdata module accessible on PYTHONPATH + # This allows build Python to import host Python's sysconfigdata + mkdir -p "$out/${sitePackages}" + ln -s "$out/lib/${libPrefix}/"_sysconfigdata*.py "$out/${sitePackages}/" + '' + + optionalString stripConfig '' + rm -R $out/bin/python*-config $out/lib/python*/config-* + '' + + optionalString stripIdlelib '' + # Strip IDLE (and turtledemo, which uses it) + rm -R $out/bin/idle* $out/lib/python*/{idlelib,turtledemo} + '' + + optionalString stripTkinter '' + rm -R $out/lib/python*/tkinter + '' + + optionalString stripTests '' + # Strip tests + rm -R $out/lib/python*/test $out/lib/python*/**/test{,s} + '' + + optionalString includeSiteCustomize '' + # Include a sitecustomize.py file + cp ${../sitecustomize.py} $out/${sitePackages}/sitecustomize.py + '' + + optionalString stripBytecode '' + # Determinism: deterministic bytecode + # First we delete all old bytecode. + find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}" + '' + + optionalString rebuildBytecode '' + # Python 3.7 implements PEP 552, introducing support for deterministic bytecode. + # compileall uses the therein introduced checked-hash method by default when + # `SOURCE_DATE_EPOCH` is set. + # We exclude lib2to3 because that's Python 2 code which fails + # We build 3 levels of optimized bytecode. Note the default level, without optimizations, + # is not reproducible yet. https://bugs.python.org/issue29708 + # Not creating bytecode will result in a large performance loss however, so we do build it. + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -O -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - + '' + + '' + # *strip* shebang from libpython gdb script - it should be dual-syntax and + # interpretable by whatever python the gdb in question is using, which may + # not even match the major version of this python. doing this after the + # bytecode compilations for the same reason - we don't want bytecode generated. + mkdir -p $out/share/gdb + sed '/^#!/d' Tools/gdb/libpython.py > $out/share/gdb/libpython.py - # Disable system-wide pip installation. See https://peps.python.org/pep-0668/. - cat <<'EXTERNALLY_MANAGED' > $out/lib/${libPrefix}/EXTERNALLY-MANAGED - [externally-managed] - Error=This command has been disabled as it tries to modify the immutable - `/nix/store` filesystem. + # Disable system-wide pip installation. See https://peps.python.org/pep-0668/. + cat <<'EXTERNALLY_MANAGED' > $out/lib/${libPrefix}/EXTERNALLY-MANAGED + [externally-managed] + Error=This command has been disabled as it tries to modify the immutable + `/nix/store` filesystem. - To use Python with Nix and nixpkgs, have a look at the online documentation: - . - EXTERNALLY_MANAGED - '' + optionalString stdenv.hostPlatform.isWindows '' - # Shebang files that link against the build python. Shebang don’t work on windows - rm $out/bin/2to3* - rm $out/bin/idle* - rm $out/bin/pydoc* + To use Python with Nix and nixpkgs, have a look at the online documentation: + . + EXTERNALLY_MANAGED + '' + + optionalString stdenv.hostPlatform.isWindows '' + # Shebang files that link against the build python. Shebang don’t work on windows + rm $out/bin/2to3* + rm $out/bin/idle* + rm $out/bin/pydoc* - echo linking DLLs for python’s compiled librairies - linkDLLsInfolder $out/lib/python*/lib-dynload/ - ''; + echo linking DLLs for python’s compiled librairies + linkDLLsInfolder $out/lib/python*/lib-dynload/ + ''; preFixup = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' # Ensure patch-shebangs uses shebangs of host interpreter. @@ -596,13 +667,14 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { # Enforce that we don't have references to the OpenSSL -dev package, which we # explicitly specify in our configure flags above. - disallowedReferences = lib.optionals (openssl != null && !static && !enableFramework) [ - openssl.dev - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - # Ensure we don't have references to build-time packages. - # These typically end up in shebangs. - pythonOnBuildForHost buildPackages.bash - ]; + disallowedReferences = + lib.optionals (openssl != null && !static && !enableFramework) [ openssl.dev ] + ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # Ensure we don't have references to build-time packages. + # These typically end up in shebangs. + pythonOnBuildForHost + buildPackages.bash + ]; separateDebugInfo = true; @@ -629,7 +701,10 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { mv $out/share/doc/* $out/share/doc/python${pythonVersion}-${version} ''; - nativeBuildInputs = with pkgsBuildBuild.python3.pkgs; [ sphinxHook python-docs-theme ]; + nativeBuildInputs = with pkgsBuildBuild.python3.pkgs; [ + sphinxHook + python-docs-theme + ]; }; tests = passthru.tests // { @@ -641,10 +716,21 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { meta = with lib; { homepage = "https://www.python.org"; - changelog = let - majorMinor = versions.majorMinor version; - dashedVersion = replaceStrings [ "." "a" ] [ "-" "-alpha-" ] version; - in + changelog = + let + majorMinor = versions.majorMinor version; + dashedVersion = + replaceStrings + [ + "." + "a" + ] + [ + "-" + "-alpha-" + ] + version; + in if sourceVersion.suffix == "" then "https://docs.python.org/release/${version}/whatsnew/changelog.html" else diff --git a/pkgs/by-name/py/python/cpython/docs/2.7-html.nix b/pkgs/by-name/py/python/cpython/docs/2.7-html.nix index a15bca1..7660b3e 100644 --- a/pkgs/by-name/py/python/cpython/docs/2.7-html.nix +++ b/pkgs/by-name/py/python/cpython/docs/2.7-html.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python27-docs-html"; diff --git a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-a4.nix b/pkgs/by-name/py/python/cpython/docs/2.7-pdf-a4.nix index 54b2899..bf52334 100644 --- a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-a4.nix +++ b/pkgs/by-name/py/python/cpython/docs/2.7-pdf-a4.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python27-docs-pdf-a4"; diff --git a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-letter.nix b/pkgs/by-name/py/python/cpython/docs/2.7-pdf-letter.nix index 84cf35f..1985730 100644 --- a/pkgs/by-name/py/python/cpython/docs/2.7-pdf-letter.nix +++ b/pkgs/by-name/py/python/cpython/docs/2.7-pdf-letter.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python27-docs-pdf-letter"; diff --git a/pkgs/by-name/py/python/cpython/docs/2.7-text.nix b/pkgs/by-name/py/python/cpython/docs/2.7-text.nix index 5d25344..2cdaabd 100644 --- a/pkgs/by-name/py/python/cpython/docs/2.7-text.nix +++ b/pkgs/by-name/py/python/cpython/docs/2.7-text.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python27-docs-text"; diff --git a/pkgs/by-name/py/python/cpython/docs/3.10-html.nix b/pkgs/by-name/py/python/cpython/docs/3.10-html.nix index 6efe8d5..b45058e 100644 --- a/pkgs/by-name/py/python/cpython/docs/3.10-html.nix +++ b/pkgs/by-name/py/python/cpython/docs/3.10-html.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python310-docs-html"; diff --git a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-a4.nix b/pkgs/by-name/py/python/cpython/docs/3.10-pdf-a4.nix index 1cbbf17..d10174f 100644 --- a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-a4.nix +++ b/pkgs/by-name/py/python/cpython/docs/3.10-pdf-a4.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python310-docs-pdf-a4"; diff --git a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-letter.nix b/pkgs/by-name/py/python/cpython/docs/3.10-pdf-letter.nix index 6b24450..2c85de3 100644 --- a/pkgs/by-name/py/python/cpython/docs/3.10-pdf-letter.nix +++ b/pkgs/by-name/py/python/cpython/docs/3.10-pdf-letter.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python310-docs-pdf-letter"; diff --git a/pkgs/by-name/py/python/cpython/docs/3.10-texinfo.nix b/pkgs/by-name/py/python/cpython/docs/3.10-texinfo.nix index 694ed0e..3120d96 100644 --- a/pkgs/by-name/py/python/cpython/docs/3.10-texinfo.nix +++ b/pkgs/by-name/py/python/cpython/docs/3.10-texinfo.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python310-docs-texinfo"; diff --git a/pkgs/by-name/py/python/cpython/docs/3.10-text.nix b/pkgs/by-name/py/python/cpython/docs/3.10-text.nix index 4ada4e2..54186d3 100644 --- a/pkgs/by-name/py/python/cpython/docs/3.10-text.nix +++ b/pkgs/by-name/py/python/cpython/docs/3.10-text.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "python310-docs-text"; diff --git a/pkgs/by-name/py/python/cpython/docs/default.nix b/pkgs/by-name/py/python/cpython/docs/default.nix index b632478..0bdf17c 100644 --- a/pkgs/by-name/py/python/cpython/docs/default.nix +++ b/pkgs/by-name/py/python/cpython/docs/default.nix @@ -1,47 +1,35 @@ -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: let -pythonDocs = { - html = { - recurseForDerivations = true; - python27 = import ./2.7-html.nix { - inherit stdenv fetchurl lib; + pythonDocs = { + html = { + recurseForDerivations = true; + python27 = import ./2.7-html.nix { inherit stdenv fetchurl lib; }; + python310 = import ./3.10-html.nix { inherit stdenv fetchurl lib; }; }; - python310 = import ./3.10-html.nix { - inherit stdenv fetchurl lib; + pdf_a4 = { + recurseForDerivations = true; + python27 = import ./2.7-pdf-a4.nix { inherit stdenv fetchurl lib; }; + python310 = import ./3.10-pdf-a4.nix { inherit stdenv fetchurl lib; }; + }; + pdf_letter = { + recurseForDerivations = true; + python27 = import ./2.7-pdf-letter.nix { inherit stdenv fetchurl lib; }; + python310 = import ./3.10-pdf-letter.nix { inherit stdenv fetchurl lib; }; + }; + text = { + recurseForDerivations = true; + python27 = import ./2.7-text.nix { inherit stdenv fetchurl lib; }; + python310 = import ./3.10-text.nix { inherit stdenv fetchurl lib; }; + }; + texinfo = { + recurseForDerivations = true; + python310 = import ./3.10-texinfo.nix { inherit stdenv fetchurl lib; }; }; }; - pdf_a4 = { - recurseForDerivations = true; - python27 = import ./2.7-pdf-a4.nix { - inherit stdenv fetchurl lib; - }; - python310 = import ./3.10-pdf-a4.nix { - inherit stdenv fetchurl lib; - }; - }; - pdf_letter = { - recurseForDerivations = true; - python27 = import ./2.7-pdf-letter.nix { - inherit stdenv fetchurl lib; - }; - python310 = import ./3.10-pdf-letter.nix { - inherit stdenv fetchurl lib; - }; - }; - text = { - recurseForDerivations = true; - python27 = import ./2.7-text.nix { - inherit stdenv fetchurl lib; - }; - python310 = import ./3.10-text.nix { - inherit stdenv fetchurl lib; - }; - }; - texinfo = { - recurseForDerivations = true; - python310 = import ./3.10-texinfo.nix { - inherit stdenv fetchurl lib; - }; - }; -}; in pythonDocs +in +pythonDocs diff --git a/pkgs/by-name/py/python/cpython/docs/template-info.nix b/pkgs/by-name/py/python/cpython/docs/template-info.nix index 4f5d4b3..eb2b48b 100644 --- a/pkgs/by-name/py/python/cpython/docs/template-info.nix +++ b/pkgs/by-name/py/python/cpython/docs/template-info.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "pythonMAJORMINOR-docs-TYPE"; diff --git a/pkgs/by-name/py/python/cpython/docs/template.nix b/pkgs/by-name/py/python/cpython/docs/template.nix index fff6e0b..50ef5be 100644 --- a/pkgs/by-name/py/python/cpython/docs/template.nix +++ b/pkgs/by-name/py/python/cpython/docs/template.nix @@ -1,6 +1,10 @@ # This file was generated and will be overwritten by ./generate.sh -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation { pname = "pythonMAJORMINOR-docs-TYPE"; diff --git a/pkgs/by-name/py/python/default.nix b/pkgs/by-name/py/python/default.nix index 4cc3f6f..6bd1123 100644 --- a/pkgs/by-name/py/python/default.nix +++ b/pkgs/by-name/py/python/default.nix @@ -1,213 +1,229 @@ -{ __splicedPackages -, callPackage -, config -, darwin -, db -, lib -, libffiBoot -, makeScopeWithSplicing' -, pythonPackagesExtensions -, stdenv +{ + __splicedPackages, + callPackage, + config, + darwin, + db, + lib, + libffiBoot, + makeScopeWithSplicing', + pythonPackagesExtensions, + stdenv, }@args: -(let +( + let - # Common passthru for all Python interpreters. - passthruFun = import ./passthrufun.nix args; + # Common passthru for all Python interpreters. + passthruFun = import ./passthrufun.nix args; - sources = { - python311 = { + sources = { + python311 = { + sourceVersion = { + major = "3"; + minor = "11"; + patch = "9"; + suffix = ""; + }; + hash = "sha256-mx6JZSP8UQaREmyGRAbZNgo9Hphqy9pZzaV7Wr2kW4c="; + }; + }; + + in + { + + python27 = callPackage ./cpython/2.7 { + self = __splicedPackages.python27; + sourceVersion = { + major = "2"; + minor = "7"; + patch = "18"; + suffix = ".8"; # ActiveState's Python 2 extended support + }; + hash = "sha256-HUOzu3uJbtd+3GbmGD35KOk/CDlwL4S7hi9jJGRFiqI="; + inherit (darwin) configd; + inherit passthruFun; + }; + + python39 = callPackage ./cpython { + self = __splicedPackages.python39; sourceVersion = { major = "3"; - minor = "11"; - patch = "9"; + minor = "9"; + patch = "19"; suffix = ""; }; - hash = "sha256-mx6JZSP8UQaREmyGRAbZNgo9Hphqy9pZzaV7Wr2kW4c="; - }; - }; - -in { - - python27 = callPackage ./cpython/2.7 { - self = __splicedPackages.python27; - sourceVersion = { - major = "2"; - minor = "7"; - patch = "18"; - suffix = ".8"; # ActiveState's Python 2 extended support - }; - hash = "sha256-HUOzu3uJbtd+3GbmGD35KOk/CDlwL4S7hi9jJGRFiqI="; - inherit (darwin) configd; - inherit passthruFun; - }; - - python39 = callPackage ./cpython { - self = __splicedPackages.python39; - sourceVersion = { - major = "3"; - minor = "9"; - patch = "19"; - suffix = ""; - }; - hash = "sha256-1Iks0WGPZFjLhRIIwDDfFIJ3lgnQ85OZkb04GE+MZ54="; - inherit (darwin) configd; - inherit passthruFun; - }; - - python310 = callPackage ./cpython { - self = __splicedPackages.python310; - sourceVersion = { - major = "3"; - minor = "10"; - patch = "14"; - suffix = ""; - }; - hash = "sha256-nFBIH6qMKDIym6D8iGjQpgamgPxPYOxI0mzo4HZ1H9o="; - inherit (darwin) configd; - inherit passthruFun; - }; - - python311 = callPackage ./cpython ({ - self = __splicedPackages.python311; - inherit (darwin) configd; - inherit passthruFun; - } // sources.python311); - - python312 = callPackage ./cpython { - self = __splicedPackages.python312; - sourceVersion = { - major = "3"; - minor = "12"; - patch = "3"; - suffix = ""; - }; - hash = "sha256-Vr/vH9/BIhzmcg5DpmHj60F4XdkUzplpjYx4lq9L2qE="; - inherit (darwin) configd; - inherit passthruFun; - }; - - python313 = callPackage ./cpython { - self = __splicedPackages.python313; - sourceVersion = { - major = "3"; - minor = "13"; - patch = "0"; - suffix = "a6"; - }; - hash = "sha256-S+85PXKygaz4HTnXRV8AA26GYZPfohpO05cP0PTLoEg="; - inherit (darwin) configd; - inherit passthruFun; - }; - # Minimal versions of Python (built without optional dependencies) - python3Minimal = (callPackage ./cpython ({ - self = __splicedPackages.python3Minimal; - inherit passthruFun; - pythonAttr = "python3Minimal"; - # strip down that python version as much as possible - openssl = null; - readline = null; - ncurses = null; - gdbm = null; - configd = null; - sqlite = null; - tzdata = null; - libffi = libffiBoot; # without test suite - stripConfig = true; - stripIdlelib = true; - stripTests = true; - stripTkinter = true; - rebuildBytecode = false; - stripBytecode = true; - includeSiteCustomize = false; - enableOptimizations = false; - enableLTO = false; - mimetypesSupport = false; - } // sources.python311)).overrideAttrs(old: { - # TODO(@Artturin): Add this to the main cpython expr - strictDeps = true; - pname = "python3-minimal"; - }); - - pypy27 = callPackage ./pypy { - self = __splicedPackages.pypy27; - sourceVersion = { - major = "7"; - minor = "3"; - patch = "12"; + hash = "sha256-1Iks0WGPZFjLhRIIwDDfFIJ3lgnQ85OZkb04GE+MZ54="; + inherit (darwin) configd; + inherit passthruFun; }; - hash = "sha256-3WHYjaJ0ws4s7HdmfUo9+aZSvMUOJvkJkdTdCvZrzPQ="; - pythonVersion = "2.7"; - db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = __splicedPackages.pythonInterpreters.pypy27_prebuilt; - inherit passthruFun; - inherit (darwin) libunwind; - inherit (darwin.apple_sdk.frameworks) Security; - }; - - pypy39 = callPackage ./pypy { - self = __splicedPackages.pypy39; - sourceVersion = { - major = "7"; - minor = "3"; - patch = "12"; + python310 = callPackage ./cpython { + self = __splicedPackages.python310; + sourceVersion = { + major = "3"; + minor = "10"; + patch = "14"; + suffix = ""; + }; + hash = "sha256-nFBIH6qMKDIym6D8iGjQpgamgPxPYOxI0mzo4HZ1H9o="; + inherit (darwin) configd; + inherit passthruFun; }; - hash = "sha256-56IEbH5sJfw4aru1Ey6Sp8wkkeOTVpmpRstdy7NCwqo="; - pythonVersion = "3.9"; - db = db.override { dbmSupport = !stdenv.isDarwin; }; - python = __splicedPackages.pypy27; - inherit passthruFun; - inherit (darwin) libunwind; - inherit (darwin.apple_sdk.frameworks) Security; - }; + python311 = callPackage ./cpython ( + { + self = __splicedPackages.python311; + inherit (darwin) configd; + inherit passthruFun; + } + // sources.python311 + ); - pypy310 = __splicedPackages.pypy39.override { - self = __splicedPackages.pythonInterpreters.pypy310; - pythonVersion = "3.10"; - hash = "sha256-huTk6sw2BGxhgvQwGHllN/4zpg4dKizGuOf5Gl3LPkI="; - }; - - pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { - # Not included at top-level - self = __splicedPackages.pythonInterpreters.pypy27_prebuilt; - sourceVersion = { - major = "7"; - minor = "3"; - patch = "12"; + python312 = callPackage ./cpython { + self = __splicedPackages.python312; + sourceVersion = { + major = "3"; + minor = "12"; + patch = "3"; + suffix = ""; + }; + hash = "sha256-Vr/vH9/BIhzmcg5DpmHj60F4XdkUzplpjYx4lq9L2qE="; + inherit (darwin) configd; + inherit passthruFun; }; - hash = { - aarch64-linux = "sha256-4E3LYoantHJOw/DlDTzBuoWDMB3RZYwG1/N1meQgHFk="; - x86_64-linux = "sha256-GmGiV0t5Rm9gYBDymZormVvZbNCF+Rp46909XCxA6B0="; - aarch64-darwin = "sha256-a3R6oHauhZfklgPF3sTKWTWhoKEy10BKVZvpaiYNm/c="; - x86_64-darwin = "sha256-bon/3RVTfOT/zjFFtl7lfC6clSiSvZW5NAEtLwCfUDs="; - }.${stdenv.system}; - pythonVersion = "2.7"; - inherit passthruFun; - }; - - pypy39_prebuilt = callPackage ./pypy/prebuilt.nix { - # Not included at top-level - self = __splicedPackages.pythonInterpreters.pypy39_prebuilt; - sourceVersion = { - major = "7"; - minor = "3"; - patch = "12"; + python313 = callPackage ./cpython { + self = __splicedPackages.python313; + sourceVersion = { + major = "3"; + minor = "13"; + patch = "0"; + suffix = "a6"; + }; + hash = "sha256-S+85PXKygaz4HTnXRV8AA26GYZPfohpO05cP0PTLoEg="; + inherit (darwin) configd; + inherit passthruFun; }; - hash = { - aarch64-linux = "sha256-6TJ/ue2vKtkZNdW4Vj7F/yQZO92xdcGsqvdywCWvGCQ="; - x86_64-linux = "sha256-hMiblm+rK1j0UaSC7jDKf+wzUENb0LlhRhXGHcbaI5A="; - aarch64-darwin = "sha256-DooaNGi5eQxzSsaY9bAMwD/BaJnMxs6HZGX6wLg5gOM="; - x86_64-darwin = "sha256-ZPAI/6BwxAfl70bIJWsuAU3nGW6l2Fg4WGElTnlZ9Os="; - }.${stdenv.system}; - pythonVersion = "3.9"; - inherit passthruFun; - }; + # Minimal versions of Python (built without optional dependencies) + python3Minimal = + (callPackage ./cpython ( + { + self = __splicedPackages.python3Minimal; + inherit passthruFun; + pythonAttr = "python3Minimal"; + # strip down that python version as much as possible + openssl = null; + readline = null; + ncurses = null; + gdbm = null; + configd = null; + sqlite = null; + tzdata = null; + libffi = libffiBoot; # without test suite + stripConfig = true; + stripIdlelib = true; + stripTests = true; + stripTkinter = true; + rebuildBytecode = false; + stripBytecode = true; + includeSiteCustomize = false; + enableOptimizations = false; + enableLTO = false; + mimetypesSupport = false; + } + // sources.python311 + )).overrideAttrs + (old: { + # TODO(@Artturin): Add this to the main cpython expr + strictDeps = true; + pname = "python3-minimal"; + }); - rustpython = darwin.apple_sdk_11_0.callPackage ./rustpython/default.nix { - inherit (darwin.apple_sdk_11_0.frameworks) SystemConfiguration; - }; + pypy27 = callPackage ./pypy { + self = __splicedPackages.pypy27; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "12"; + }; -}) + hash = "sha256-3WHYjaJ0ws4s7HdmfUo9+aZSvMUOJvkJkdTdCvZrzPQ="; + pythonVersion = "2.7"; + db = db.override { dbmSupport = !stdenv.isDarwin; }; + python = __splicedPackages.pythonInterpreters.pypy27_prebuilt; + inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + pypy39 = callPackage ./pypy { + self = __splicedPackages.pypy39; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "12"; + }; + + hash = "sha256-56IEbH5sJfw4aru1Ey6Sp8wkkeOTVpmpRstdy7NCwqo="; + pythonVersion = "3.9"; + db = db.override { dbmSupport = !stdenv.isDarwin; }; + python = __splicedPackages.pypy27; + inherit passthruFun; + inherit (darwin) libunwind; + inherit (darwin.apple_sdk.frameworks) Security; + }; + + pypy310 = __splicedPackages.pypy39.override { + self = __splicedPackages.pythonInterpreters.pypy310; + pythonVersion = "3.10"; + hash = "sha256-huTk6sw2BGxhgvQwGHllN/4zpg4dKizGuOf5Gl3LPkI="; + }; + + pypy27_prebuilt = callPackage ./pypy/prebuilt_2_7.nix { + # Not included at top-level + self = __splicedPackages.pythonInterpreters.pypy27_prebuilt; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "12"; + }; + + hash = + { + aarch64-linux = "sha256-4E3LYoantHJOw/DlDTzBuoWDMB3RZYwG1/N1meQgHFk="; + x86_64-linux = "sha256-GmGiV0t5Rm9gYBDymZormVvZbNCF+Rp46909XCxA6B0="; + aarch64-darwin = "sha256-a3R6oHauhZfklgPF3sTKWTWhoKEy10BKVZvpaiYNm/c="; + x86_64-darwin = "sha256-bon/3RVTfOT/zjFFtl7lfC6clSiSvZW5NAEtLwCfUDs="; + } + .${stdenv.system}; + pythonVersion = "2.7"; + inherit passthruFun; + }; + + pypy39_prebuilt = callPackage ./pypy/prebuilt.nix { + # Not included at top-level + self = __splicedPackages.pythonInterpreters.pypy39_prebuilt; + sourceVersion = { + major = "7"; + minor = "3"; + patch = "12"; + }; + hash = + { + aarch64-linux = "sha256-6TJ/ue2vKtkZNdW4Vj7F/yQZO92xdcGsqvdywCWvGCQ="; + x86_64-linux = "sha256-hMiblm+rK1j0UaSC7jDKf+wzUENb0LlhRhXGHcbaI5A="; + aarch64-darwin = "sha256-DooaNGi5eQxzSsaY9bAMwD/BaJnMxs6HZGX6wLg5gOM="; + x86_64-darwin = "sha256-ZPAI/6BwxAfl70bIJWsuAU3nGW6l2Fg4WGElTnlZ9Os="; + } + .${stdenv.system}; + pythonVersion = "3.9"; + inherit passthruFun; + }; + + rustpython = darwin.apple_sdk_11_0.callPackage ./rustpython/default.nix { + inherit (darwin.apple_sdk_11_0.frameworks) SystemConfiguration; + }; + + } +) diff --git a/pkgs/by-name/py/python/hooks/default.nix b/pkgs/by-name/py/python/hooks/default.nix index c61cd77..c5767ac 100644 --- a/pkgs/by-name/py/python/hooks/default.nix +++ b/pkgs/by-name/py/python/hooks/default.nix @@ -1,4 +1,5 @@ -self: dontUse: with self; +self: dontUse: +with self; let inherit (python) pythonOnBuildForHost; @@ -7,57 +8,93 @@ let pythonSitePackages = python.sitePackages; pythonCheckInterpreter = python.interpreter; setuppy = ../run_setup.py; -in { - makePythonHook = let - defaultArgs = { passthru.provides.setupHook = true; }; - in args: pkgs.makeSetupHook (lib.recursiveUpdate defaultArgs args); +in +{ + makePythonHook = + let + defaultArgs = { + passthru.provides.setupHook = true; + }; + in + args: pkgs.makeSetupHook (lib.recursiveUpdate defaultArgs args); - condaInstallHook = callPackage ({ makePythonHook, gnutar, lbzip2 }: + condaInstallHook = callPackage ( + { + makePythonHook, + gnutar, + lbzip2, + }: makePythonHook { name = "conda-install-hook"; - propagatedBuildInputs = [ gnutar lbzip2 ]; + propagatedBuildInputs = [ + gnutar + lbzip2 + ]; substitutions = { inherit pythonSitePackages; }; - } ./conda-install-hook.sh) {}; + } ./conda-install-hook.sh + ) { }; - condaUnpackHook = callPackage ({ makePythonHook }: + condaUnpackHook = callPackage ( + { makePythonHook }: makePythonHook { name = "conda-unpack-hook"; - propagatedBuildInputs = []; - } ./conda-unpack-hook.sh) {}; + propagatedBuildInputs = [ ]; + } ./conda-unpack-hook.sh + ) { }; - eggBuildHook = callPackage ({ makePythonHook }: + eggBuildHook = callPackage ( + { makePythonHook }: makePythonHook { name = "egg-build-hook.sh"; propagatedBuildInputs = [ ]; - } ./egg-build-hook.sh) {}; + } ./egg-build-hook.sh + ) { }; - eggInstallHook = callPackage ({ makePythonHook, setuptools }: + eggInstallHook = callPackage ( + { makePythonHook, setuptools }: makePythonHook { name = "egg-install-hook.sh"; propagatedBuildInputs = [ setuptools ]; substitutions = { inherit pythonInterpreter pythonSitePackages; }; - } ./egg-install-hook.sh) {}; + } ./egg-install-hook.sh + ) { }; - eggUnpackHook = callPackage ({ makePythonHook, }: + eggUnpackHook = callPackage ( + { makePythonHook }: makePythonHook { name = "egg-unpack-hook.sh"; propagatedBuildInputs = [ ]; - } ./egg-unpack-hook.sh) {}; + } ./egg-unpack-hook.sh + ) { }; - pipBuildHook = callPackage ({ makePythonHook, pip, wheel }: + pipBuildHook = callPackage ( + { + makePythonHook, + pip, + wheel, + }: makePythonHook { name = "pip-build-hook.sh"; - propagatedBuildInputs = [ pip wheel ]; + propagatedBuildInputs = [ + pip + wheel + ]; substitutions = { inherit pythonInterpreter pythonSitePackages; }; - } ./pip-build-hook.sh) {}; + } ./pip-build-hook.sh + ) { }; - pypaBuildHook = callPackage ({ makePythonHook, build, wheel }: + pypaBuildHook = callPackage ( + { + makePythonHook, + build, + wheel, + }: makePythonHook { name = "pypa-build-hook.sh"; propagatedBuildInputs = [ wheel ]; @@ -70,116 +107,139 @@ in { # Such conflicts don't happen within the standard nixpkgs python package # set, but in downstream projects that build packages depending on other # versions of this hook's dependencies. - passthru.tests = callPackage ./pypa-build-hook-test.nix { - inherit pythonOnBuildForHost; - }; - } ./pypa-build-hook.sh) { - inherit (pythonOnBuildForHost.pkgs) build; - }; + passthru.tests = callPackage ./pypa-build-hook-test.nix { inherit pythonOnBuildForHost; }; + } ./pypa-build-hook.sh + ) { inherit (pythonOnBuildForHost.pkgs) build; }; - pipInstallHook = callPackage ({ makePythonHook, pip }: + pipInstallHook = callPackage ( + { makePythonHook, pip }: makePythonHook { name = "pip-install-hook"; propagatedBuildInputs = [ pip ]; substitutions = { inherit pythonInterpreter pythonSitePackages; }; - } ./pip-install-hook.sh) {}; + } ./pip-install-hook.sh + ) { }; - pypaInstallHook = callPackage ({ makePythonHook, installer }: + pypaInstallHook = callPackage ( + { makePythonHook, installer }: makePythonHook { name = "pypa-install-hook"; propagatedBuildInputs = [ installer ]; substitutions = { inherit pythonInterpreter pythonSitePackages; }; - } ./pypa-install-hook.sh) { - inherit (pythonOnBuildForHost.pkgs) installer; - }; + } ./pypa-install-hook.sh + ) { inherit (pythonOnBuildForHost.pkgs) installer; }; - pytestCheckHook = callPackage ({ makePythonHook, pytest }: + pytestCheckHook = callPackage ( + { makePythonHook, pytest }: makePythonHook { name = "pytest-check-hook"; propagatedBuildInputs = [ pytest ]; substitutions = { inherit pythonCheckInterpreter; }; - } ./pytest-check-hook.sh) {}; + } ./pytest-check-hook.sh + ) { }; - pythonCatchConflictsHook = callPackage ({ makePythonHook, setuptools }: + pythonCatchConflictsHook = callPackage ( + { makePythonHook, setuptools }: makePythonHook { name = "python-catch-conflicts-hook"; - substitutions = let - useLegacyHook = lib.versionOlder python.pythonVersion "3"; - in { - inherit pythonInterpreter pythonSitePackages; - catchConflicts = if useLegacyHook then - ../catch_conflicts/catch_conflicts_py2.py - else - ../catch_conflicts/catch_conflicts.py; - } // lib.optionalAttrs useLegacyHook { - inherit setuptools; - }; + substitutions = + let + useLegacyHook = lib.versionOlder python.pythonVersion "3"; + in + { + inherit pythonInterpreter pythonSitePackages; + catchConflicts = + if useLegacyHook then + ../catch_conflicts/catch_conflicts_py2.py + else + ../catch_conflicts/catch_conflicts.py; + } + // lib.optionalAttrs useLegacyHook { inherit setuptools; }; passthru.tests = import ./python-catch-conflicts-hook-tests.nix { inherit pythonOnBuildForHost runCommand; inherit (pkgs) coreutils gnugrep writeShellScript; }; - } ./python-catch-conflicts-hook.sh) {}; + } ./python-catch-conflicts-hook.sh + ) { }; - pythonImportsCheckHook = callPackage ({ makePythonHook }: + pythonImportsCheckHook = callPackage ( + { makePythonHook }: makePythonHook { name = "python-imports-check-hook.sh"; substitutions = { inherit pythonCheckInterpreter pythonSitePackages; }; - } ./python-imports-check-hook.sh) {}; + } ./python-imports-check-hook.sh + ) { }; - pythonNamespacesHook = callPackage ({ makePythonHook, buildPackages }: + pythonNamespacesHook = callPackage ( + { makePythonHook, buildPackages }: makePythonHook { name = "python-namespaces-hook.sh"; substitutions = { inherit pythonSitePackages; inherit (buildPackages) findutils; }; - } ./python-namespaces-hook.sh) {}; + } ./python-namespaces-hook.sh + ) { }; - pythonOutputDistHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-output-dist-hook"; - } ./python-output-dist-hook.sh ) {}; + pythonOutputDistHook = callPackage ( + { makePythonHook }: + makePythonHook { name = "python-output-dist-hook"; } ./python-output-dist-hook.sh + ) { }; - pythonRecompileBytecodeHook = callPackage ({ makePythonHook }: + pythonRecompileBytecodeHook = callPackage ( + { makePythonHook }: makePythonHook { name = "python-recompile-bytecode-hook"; substitutions = { inherit pythonInterpreter pythonSitePackages; - compileArgs = lib.concatStringsSep " " (["-q" "-f" "-i -"] ++ lib.optionals isPy3k ["-j $NIX_BUILD_CORES"]); + compileArgs = lib.concatStringsSep " " ( + [ + "-q" + "-f" + "-i -" + ] + ++ lib.optionals isPy3k [ "-j $NIX_BUILD_CORES" ] + ); bytecodeName = if isPy3k then "__pycache__" else "*.pyc"; }; - } ./python-recompile-bytecode-hook.sh ) {}; + } ./python-recompile-bytecode-hook.sh + ) { }; - pythonRelaxDepsHook = callPackage ({ makePythonHook, wheel }: + pythonRelaxDepsHook = callPackage ( + { makePythonHook, wheel }: makePythonHook { name = "python-relax-deps-hook"; substitutions = { inherit pythonInterpreter pythonSitePackages wheel; }; - } ./python-relax-deps-hook.sh) {}; + } ./python-relax-deps-hook.sh + ) { }; - pythonRemoveBinBytecodeHook = callPackage ({ makePythonHook }: - makePythonHook { - name = "python-remove-bin-bytecode-hook"; - } ./python-remove-bin-bytecode-hook.sh) {}; + pythonRemoveBinBytecodeHook = callPackage ( + { makePythonHook }: + makePythonHook { name = "python-remove-bin-bytecode-hook"; } ./python-remove-bin-bytecode-hook.sh + ) { }; - pythonRemoveTestsDirHook = callPackage ({ makePythonHook }: + pythonRemoveTestsDirHook = callPackage ( + { makePythonHook }: makePythonHook { name = "python-remove-tests-dir-hook"; substitutions = { inherit pythonSitePackages; }; - } ./python-remove-tests-dir-hook.sh) {}; + } ./python-remove-tests-dir-hook.sh + ) { }; - pythonRuntimeDepsCheckHook = callPackage ({ makePythonHook, packaging }: + pythonRuntimeDepsCheckHook = callPackage ( + { makePythonHook, packaging }: makePythonHook { name = "python-runtime-deps-check-hook.sh"; propagatedBuildInputs = [ packaging ]; @@ -187,73 +247,98 @@ in { inherit pythonInterpreter pythonSitePackages; hook = ./python-runtime-deps-check-hook.py; }; - } ./python-runtime-deps-check-hook.sh) {}; + } ./python-runtime-deps-check-hook.sh + ) { }; - setuptoolsBuildHook = callPackage ({ makePythonHook, setuptools, wheel }: + setuptoolsBuildHook = callPackage ( + { + makePythonHook, + setuptools, + wheel, + }: makePythonHook { name = "setuptools-build-hook"; - propagatedBuildInputs = [ setuptools wheel ]; + propagatedBuildInputs = [ + setuptools + wheel + ]; substitutions = { inherit pythonInterpreter setuppy; # python2.pkgs.setuptools does not support parallelism setuptools_has_parallel = setuptools != null && lib.versionAtLeast setuptools.version "69"; }; - } ./setuptools-build-hook.sh) {}; + } ./setuptools-build-hook.sh + ) { }; - setuptoolsCheckHook = callPackage ({ makePythonHook, setuptools }: + setuptoolsCheckHook = callPackage ( + { makePythonHook, setuptools }: makePythonHook { name = "setuptools-check-hook"; propagatedBuildInputs = [ setuptools ]; substitutions = { inherit pythonCheckInterpreter setuppy; }; - } ./setuptools-check-hook.sh) {}; + } ./setuptools-check-hook.sh + ) { }; - setuptoolsRustBuildHook = callPackage ({ makePythonHook, setuptools-rust }: - makePythonHook { - name = "setuptools-rust-setup-hook"; - propagatedBuildInputs = [ setuptools-rust ]; - substitutions = { - pyLibDir = "${python}/lib/${python.libPrefix}"; - cargoBuildTarget = stdenv.hostPlatform.rust.rustcTargetSpec; - cargoLinkerVar = stdenv.hostPlatform.rust.cargoEnvVarTarget; - targetLinker = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; - }; - } ./setuptools-rust-hook.sh) {}; + setuptoolsRustBuildHook = callPackage ( + { makePythonHook, setuptools-rust }: + makePythonHook { + name = "setuptools-rust-setup-hook"; + propagatedBuildInputs = [ setuptools-rust ]; + substitutions = { + pyLibDir = "${python}/lib/${python.libPrefix}"; + cargoBuildTarget = stdenv.hostPlatform.rust.rustcTargetSpec; + cargoLinkerVar = stdenv.hostPlatform.rust.cargoEnvVarTarget; + targetLinker = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; + }; + } ./setuptools-rust-hook.sh + ) { }; - unittestCheckHook = callPackage ({ makePythonHook }: + unittestCheckHook = callPackage ( + { makePythonHook }: makePythonHook { name = "unittest-check-hook"; substitutions = { inherit pythonCheckInterpreter; }; - } ./unittest-check-hook.sh) {}; + } ./unittest-check-hook.sh + ) { }; - venvShellHook = disabledIf (!isPy3k) (callPackage ({ makePythonHook, ensureNewerSourcesForZipFilesHook }: - makePythonHook { - name = "venv-shell-hook"; - propagatedBuildInputs = [ ensureNewerSourcesForZipFilesHook ]; - substitutions = { - inherit pythonInterpreter; - }; - } ./venv-shell-hook.sh) {}); + venvShellHook = disabledIf (!isPy3k) ( + callPackage ( + { makePythonHook, ensureNewerSourcesForZipFilesHook }: + makePythonHook { + name = "venv-shell-hook"; + propagatedBuildInputs = [ ensureNewerSourcesForZipFilesHook ]; + substitutions = { + inherit pythonInterpreter; + }; + } ./venv-shell-hook.sh + ) { } + ); - wheelUnpackHook = callPackage ({ makePythonHook, wheel }: + wheelUnpackHook = callPackage ( + { makePythonHook, wheel }: makePythonHook { name = "wheel-unpack-hook.sh"; propagatedBuildInputs = [ wheel ]; - } ./wheel-unpack-hook.sh) {}; + } ./wheel-unpack-hook.sh + ) { }; - wrapPython = callPackage ../wrap-python.nix { - inherit (pkgs.buildPackages) makeWrapper; - }; + wrapPython = callPackage ../wrap-python.nix { inherit (pkgs.buildPackages) makeWrapper; }; - sphinxHook = callPackage ({ makePythonHook, installShellFiles }: + sphinxHook = callPackage ( + { makePythonHook, installShellFiles }: makePythonHook { name = "python${python.pythonVersion}-sphinx-hook"; - propagatedBuildInputs = [ pythonOnBuildForHost.pkgs.sphinx installShellFiles ]; + propagatedBuildInputs = [ + pythonOnBuildForHost.pkgs.sphinx + installShellFiles + ]; substitutions = { sphinxBuild = "${pythonOnBuildForHost.pkgs.sphinx}/bin/sphinx-build"; }; - } ./sphinx-hook.sh) {}; + } ./sphinx-hook.sh + ) { }; } diff --git a/pkgs/by-name/py/python/hooks/pypa-build-hook-test.nix b/pkgs/by-name/py/python/hooks/pypa-build-hook-test.nix index 4153c21..8b4085d 100644 --- a/pkgs/by-name/py/python/hooks/pypa-build-hook-test.nix +++ b/pkgs/by-name/py/python/hooks/pypa-build-hook-test.nix @@ -1,19 +1,21 @@ -{ pythonOnBuildForHost, runCommand }: { - dont-propagate-conflicting-deps = let - # customize a package so that its store paths differs - mkConflict = pkg: pkg.overrideAttrs { some_modification = true; }; - # minimal pyproject.toml for the example project - pyprojectToml = builtins.toFile "pyproject.toml" '' - [project] - name = "my-project" - version = "1.0.0" - ''; - # the source of the example project - projectSource = runCommand "my-project-source" {} '' - mkdir -p $out/src - cp ${pyprojectToml} $out/pyproject.toml - touch $out/src/__init__.py - ''; +{ pythonOnBuildForHost, runCommand }: +{ + dont-propagate-conflicting-deps = + let + # customize a package so that its store paths differs + mkConflict = pkg: pkg.overrideAttrs { some_modification = true; }; + # minimal pyproject.toml for the example project + pyprojectToml = builtins.toFile "pyproject.toml" '' + [project] + name = "my-project" + version = "1.0.0" + ''; + # the source of the example project + projectSource = runCommand "my-project-source" { } '' + mkdir -p $out/src + cp ${pyprojectToml} $out/pyproject.toml + touch $out/src/__init__.py + ''; in # this build must never triger conflicts pythonOnBuildForHost.pkgs.buildPythonPackage { diff --git a/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook-tests.nix b/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook-tests.nix index cba1034..4d578b1 100644 --- a/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook-tests.nix +++ b/pkgs/by-name/py/python/hooks/python-catch-conflicts-hook-tests.nix @@ -1,4 +1,11 @@ -{ pythonOnBuildForHost, runCommand, writeShellScript, coreutils, gnugrep }: let +{ + pythonOnBuildForHost, + runCommand, + writeShellScript, + coreutils, + gnugrep, +}: +let pythonPkgs = pythonOnBuildForHost.pkgs; @@ -8,52 +15,61 @@ customize = pkg: pkg.overrideAttrs { some_modification = true; }; # generates minimal pyproject.toml - pyprojectToml = pname: builtins.toFile "pyproject.toml" '' - [project] - name = "${pname}" - version = "1.0.0" - ''; + pyprojectToml = + pname: + builtins.toFile "pyproject.toml" '' + [project] + name = "${pname}" + version = "1.0.0" + ''; # generates source for a python project - projectSource = pname: runCommand "my-project-source" {} '' - mkdir -p $out/src - cp ${pyprojectToml pname} $out/pyproject.toml - touch $out/src/__init__.py - ''; + projectSource = + pname: + runCommand "my-project-source" { } '' + mkdir -p $out/src + cp ${pyprojectToml pname} $out/pyproject.toml + touch $out/src/__init__.py + ''; # helper to reduce boilerplate - generatePythonPackage = args: pythonPkgs.buildPythonPackage ( - { - version = "1.0.0"; - src = runCommand "my-project-source" {} '' - mkdir -p $out/src - cp ${pyprojectToml args.pname} $out/pyproject.toml - touch $out/src/__init__.py - ''; - pyproject = true; - catchConflicts = true; - buildInputs = [ pythonPkgs.setuptools ]; - } - // args - ); + generatePythonPackage = + args: + pythonPkgs.buildPythonPackage ( + { + version = "1.0.0"; + src = runCommand "my-project-source" { } '' + mkdir -p $out/src + cp ${pyprojectToml args.pname} $out/pyproject.toml + touch $out/src/__init__.py + ''; + pyproject = true; + catchConflicts = true; + buildInputs = [ pythonPkgs.setuptools ]; + } + // args + ); # in order to test for a failing build, wrap it in a shell script - expectFailure = build: errorMsg: build.overrideDerivation (old: { - builder = writeShellScript "test-for-failure" '' - export PATH=${coreutils}/bin:${gnugrep}/bin:$PATH - ${old.builder} "$@" > ./log 2>&1 - status=$? - cat ./log - if [ $status -eq 0 ] || ! grep -q "${errorMsg}" ./log; then - echo "The build should have failed with '${errorMsg}', but it didn't" - exit 1 - else - echo "The build failed as expected with: ${errorMsg}" - mkdir -p $out - fi - ''; - }); -in { + expectFailure = + build: errorMsg: + build.overrideDerivation (old: { + builder = writeShellScript "test-for-failure" '' + export PATH=${coreutils}/bin:${gnugrep}/bin:$PATH + ${old.builder} "$@" > ./log 2>&1 + status=$? + cat ./log + if [ $status -eq 0 ] || ! grep -q "${errorMsg}" ./log; then + echo "The build should have failed with '${errorMsg}', but it didn't" + exit 1 + else + echo "The build failed as expected with: ${errorMsg}" + mkdir -p $out + fi + ''; + }); +in +{ ### TEST CASES @@ -61,55 +77,51 @@ in { # This derivation has runtime dependencies on custom versions of multiple build tools. # This scenario is relevant for lang2nix tools which do not override the nixpkgs fix-point. # see https://github.com/NixOS/nixpkgs/issues/283695 - ignores-build-time-deps = - generatePythonPackage { - pname = "ignores-build-time-deps"; - buildInputs = [ - pythonPkgs.build - pythonPkgs.packaging - pythonPkgs.setuptools - pythonPkgs.wheel - ]; - propagatedBuildInputs = [ - # Add customized versions of build tools as runtime deps - (customize pythonPkgs.packaging) - (customize pythonPkgs.setuptools) - (customize pythonPkgs.wheel) - ]; - }; + ignores-build-time-deps = generatePythonPackage { + pname = "ignores-build-time-deps"; + buildInputs = [ + pythonPkgs.build + pythonPkgs.packaging + pythonPkgs.setuptools + pythonPkgs.wheel + ]; + propagatedBuildInputs = [ + # Add customized versions of build tools as runtime deps + (customize pythonPkgs.packaging) + (customize pythonPkgs.setuptools) + (customize pythonPkgs.wheel) + ]; + }; # multi-output derivation with dependency on itself must not crash - cyclic-dependencies = - generatePythonPackage { - pname = "cyclic-dependencies"; - preFixup = '' - propagatedBuildInputs+=("$out") - ''; - }; + cyclic-dependencies = generatePythonPackage { + pname = "cyclic-dependencies"; + preFixup = '' + propagatedBuildInputs+=("$out") + ''; + }; # Simplest test case that should trigger a conflict - catches-simple-conflict = let - # this build must fail due to conflicts - package = pythonPkgs.buildPythonPackage rec { - pname = "catches-simple-conflict"; - version = "0.0.0"; - src = projectSource pname; - pyproject = true; - catchConflicts = true; - buildInputs = [ - pythonPkgs.setuptools - ]; - # depend on two different versions of packaging - # (an actual runtime dependency conflict) - propagatedBuildInputs = [ - pythonPkgs.packaging - (customize pythonPkgs.packaging) - ]; - }; - in + catches-simple-conflict = + let + # this build must fail due to conflicts + package = pythonPkgs.buildPythonPackage rec { + pname = "catches-simple-conflict"; + version = "0.0.0"; + src = projectSource pname; + pyproject = true; + catchConflicts = true; + buildInputs = [ pythonPkgs.setuptools ]; + # depend on two different versions of packaging + # (an actual runtime dependency conflict) + propagatedBuildInputs = [ + pythonPkgs.packaging + (customize pythonPkgs.packaging) + ]; + }; + in expectFailure package "Found duplicated packages in closure for dependency 'packaging'"; - /* More complex test case with a transitive conflict @@ -121,26 +133,28 @@ in { └── dep2 └── leaf (customized version -> conflicting) */ - catches-transitive-conflict = let - # package depending on both dependency1 and dependency2 - toplevel = generatePythonPackage { - pname = "catches-transitive-conflict"; - propagatedBuildInputs = [ dep1 dep2 ]; - }; - # dep1 package depending on leaf - dep1 = generatePythonPackage { - pname = "dependency1"; - propagatedBuildInputs = [ leaf ]; - }; - # dep2 package depending on conflicting version of leaf - dep2 = generatePythonPackage { - pname = "dependency2"; - propagatedBuildInputs = [ (customize leaf) ]; - }; - # some leaf package - leaf = generatePythonPackage { - pname = "leaf"; - }; - in + catches-transitive-conflict = + let + # package depending on both dependency1 and dependency2 + toplevel = generatePythonPackage { + pname = "catches-transitive-conflict"; + propagatedBuildInputs = [ + dep1 + dep2 + ]; + }; + # dep1 package depending on leaf + dep1 = generatePythonPackage { + pname = "dependency1"; + propagatedBuildInputs = [ leaf ]; + }; + # dep2 package depending on conflicting version of leaf + dep2 = generatePythonPackage { + pname = "dependency2"; + propagatedBuildInputs = [ (customize leaf) ]; + }; + # some leaf package + leaf = generatePythonPackage { pname = "leaf"; }; + in expectFailure toplevel "Found duplicated packages in closure for dependency 'leaf'"; } diff --git a/pkgs/by-name/py/python/manylinux/default.nix b/pkgs/by-name/py/python/manylinux/default.nix index ba20c0d..7dc10e7 100644 --- a/pkgs/by-name/py/python/manylinux/default.nix +++ b/pkgs/by-name/py/python/manylinux/default.nix @@ -2,75 +2,83 @@ let # Create a derivation that links all desired manylinux libraries - createManyLinuxPackage = name: libs: let - drvs = lib.unique (lib.attrValues libs); - names = lib.attrNames libs; - in pkgs.runCommand name { - buildInputs = drvs; - } '' - mkdir -p $out/lib - num_found=0 + createManyLinuxPackage = + name: libs: + let + drvs = lib.unique (lib.attrValues libs); + names = lib.attrNames libs; + in + pkgs.runCommand name { buildInputs = drvs; } '' + mkdir -p $out/lib + num_found=0 - IFS=: - export DESIRED_LIBRARIES=${lib.concatStringsSep ":" names} - export LIBRARY_PATH=${lib.makeLibraryPath drvs} - for desired in $DESIRED_LIBRARIES; do - for path in $LIBRARY_PATH; do - if [ -e $path/$desired ]; then - echo "FOUND $path/$desired" - ln -s $path/$desired $out/lib/$desired - num_found=$((num_found+1)) - break - fi + IFS=: + export DESIRED_LIBRARIES=${lib.concatStringsSep ":" names} + export LIBRARY_PATH=${lib.makeLibraryPath drvs} + for desired in $DESIRED_LIBRARIES; do + for path in $LIBRARY_PATH; do + if [ -e $path/$desired ]; then + echo "FOUND $path/$desired" + ln -s $path/$desired $out/lib/$desired + num_found=$((num_found+1)) + break + fi + done done - done - num_desired=${toString (lib.length names)} - echo "Found $num_found of $num_desired libraries" - if [ "$num_found" -ne "$num_desired" ]; then - echo "Error: not all desired libraries were found" - exit 1 - fi - ''; + num_desired=${toString (lib.length names)} + echo "Found $num_found of $num_desired libraries" + if [ "$num_found" -ne "$num_desired" ]; then + echo "Error: not all desired libraries were found" + exit 1 + fi + ''; getLibOutputs = lib.mapAttrs (k: v: lib.getLib v); # https://www.python.org/dev/peps/pep-0599/ - manylinux2014Libs = getLibOutputs(with pkgs; { - "libgcc_s.so.1" = glibc; - "libstdc++.so.6" = stdenv.cc.cc; - "libm.so.6" = glibc; - "libdl.so.2" = glibc; - "librt.so.1" = glibc; - "libc.so.6" = glibc; - "libnsl.so.1" = glibc; - "libutil.so.1" = glibc; - "libpthread.so.0" = glibc; - "libresolv.so.2" = glibc; - "libX11.so.6" = xorg.libX11; - "libXext.so.6" = xorg.libXext; - "libXrender.so.1" = xorg.libXrender; - "libICE.so.6" = xorg.libICE; - "libSM.so.6" = xorg.libSM; - "libGL.so.1" = libGL; - "libgobject-2.0.so.0" = glib; - "libgthread-2.0.so.0" = glib; - "libglib-2.0.so.0" = glib; - "libz.so.1" = zlib; - "libexpat.so.1" = expat; - }); + manylinux2014Libs = getLibOutputs ( + with pkgs; + { + "libgcc_s.so.1" = glibc; + "libstdc++.so.6" = stdenv.cc.cc; + "libm.so.6" = glibc; + "libdl.so.2" = glibc; + "librt.so.1" = glibc; + "libc.so.6" = glibc; + "libnsl.so.1" = glibc; + "libutil.so.1" = glibc; + "libpthread.so.0" = glibc; + "libresolv.so.2" = glibc; + "libX11.so.6" = xorg.libX11; + "libXext.so.6" = xorg.libXext; + "libXrender.so.1" = xorg.libXrender; + "libICE.so.6" = xorg.libICE; + "libSM.so.6" = xorg.libSM; + "libGL.so.1" = libGL; + "libgobject-2.0.so.0" = glib; + "libgthread-2.0.so.0" = glib; + "libglib-2.0.so.0" = glib; + "libz.so.1" = zlib; + "libexpat.so.1" = expat; + } + ); # https://www.python.org/dev/peps/pep-0571/ manylinux2010Libs = manylinux2014Libs; # https://www.python.org/dev/peps/pep-0513/ - manylinux1Libs = getLibOutputs(manylinux2010Libs // (with pkgs; { - "libpanelw.so.5" = ncurses5; - "libncursesw.so.5" = ncurses5; - "libcrypt.so.1" = libxcrypt; - })); + manylinux1Libs = getLibOutputs ( + manylinux2010Libs + // (with pkgs; { + "libpanelw.so.5" = ncurses5; + "libncursesw.so.5" = ncurses5; + "libcrypt.so.1" = libxcrypt; + }) + ); -in { +in +{ # List of libraries that are needed for manylinux compatibility. # When using a wheel that is manylinux1 compatible, just extend # the `buildInputs` with one of these `manylinux` lists. diff --git a/pkgs/by-name/py/python/mk-python-derivation.nix b/pkgs/by-name/py/python/mk-python-derivation.nix index 4c45d96..c6f95dd 100644 --- a/pkgs/by-name/py/python/mk-python-derivation.nix +++ b/pkgs/by-name/py/python/mk-python-derivation.nix @@ -1,45 +1,63 @@ # Generic builder. -{ lib -, config -, python -, wrapPython -, unzip -, ensureNewerSourcesForZipFilesHook -# Whether the derivation provides a Python module or not. -, toPythonModule -, namePrefix -, update-python-libraries -, setuptools -, pypaBuildHook -, pypaInstallHook -, pythonCatchConflictsHook -, pythonImportsCheckHook -, pythonNamespacesHook -, pythonOutputDistHook -, pythonRemoveBinBytecodeHook -, pythonRemoveTestsDirHook -, pythonRuntimeDepsCheckHook -, setuptoolsBuildHook -, setuptoolsCheckHook -, wheelUnpackHook -, eggUnpackHook -, eggBuildHook -, eggInstallHook +{ + lib, + config, + python, + wrapPython, + unzip, + ensureNewerSourcesForZipFilesHook, + # Whether the derivation provides a Python module or not. + toPythonModule, + namePrefix, + update-python-libraries, + setuptools, + pypaBuildHook, + pypaInstallHook, + pythonCatchConflictsHook, + pythonImportsCheckHook, + pythonNamespacesHook, + pythonOutputDistHook, + pythonRemoveBinBytecodeHook, + pythonRemoveTestsDirHook, + pythonRuntimeDepsCheckHook, + setuptoolsBuildHook, + setuptoolsCheckHook, + wheelUnpackHook, + eggUnpackHook, + eggBuildHook, + eggInstallHook, }: let inherit (builtins) unsafeGetAttrPos; inherit (lib) - elem optionalString max stringLength fixedWidthString getName - optional optionals optionalAttrs hasSuffix escapeShellArgs - extendDerivation head splitString isBool; + elem + optionalString + max + stringLength + fixedWidthString + getName + optional + optionals + optionalAttrs + hasSuffix + escapeShellArgs + extendDerivation + head + splitString + isBool + ; - leftPadName = name: against: let + leftPadName = + name: against: + let len = max (stringLength name) (stringLength against); - in fixedWidthString len " " name; + in + fixedWidthString len " " name; - isPythonModule = drv: + isPythonModule = + drv: # all pythonModules have the pythonModule attribute (drv ? "pythonModule") # Some pythonModules are turned in to a pythonApplication by setting the field to false @@ -47,121 +65,147 @@ let isMismatchedPython = drv: drv.pythonModule != python; - withDistOutput' = lib.flip elem ["pyproject" "setuptools" "wheel"]; + withDistOutput' = lib.flip elem [ + "pyproject" + "setuptools" + "wheel" + ]; - isBootstrapInstallPackage' = lib.flip elem [ "flit-core" "installer" ]; + isBootstrapInstallPackage' = lib.flip elem [ + "flit-core" + "installer" + ]; - isBootstrapPackage' = lib.flip elem ([ - "build" "packaging" "pyproject-hooks" "wheel" - ] ++ optionals (python.pythonOlder "3.11") [ - "tomli" - ]); + isBootstrapPackage' = lib.flip elem ( + [ + "build" + "packaging" + "pyproject-hooks" + "wheel" + ] + ++ optionals (python.pythonOlder "3.11") [ "tomli" ] + ); - isSetuptoolsDependency' = lib.flip elem [ "setuptools" "wheel" ]; + isSetuptoolsDependency' = lib.flip elem [ + "setuptools" + "wheel" + ]; cleanAttrs = lib.flip removeAttrs [ - "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "pyproject" "format" - "disabledTestPaths" "outputs" "stdenv" - "dependencies" "optional-dependencies" "build-system" + "disabled" + "checkPhase" + "checkInputs" + "nativeCheckInputs" + "doCheck" + "doInstallCheck" + "dontWrapPythonPrograms" + "catchConflicts" + "pyproject" + "format" + "disabledTestPaths" + "outputs" + "stdenv" + "dependencies" + "optional-dependencies" + "build-system" ]; in -{ name ? "${attrs.pname}-${attrs.version}" +{ + name ? "${attrs.pname}-${attrs.version}", -# Build-time dependencies for the package -, nativeBuildInputs ? [] + # Build-time dependencies for the package + nativeBuildInputs ? [ ], -# Run-time dependencies for the package -, buildInputs ? [] + # Run-time dependencies for the package + buildInputs ? [ ], -# Dependencies needed for running the checkPhase. -# These are added to buildInputs when doCheck = true. -, checkInputs ? [] -, nativeCheckInputs ? [] + # Dependencies needed for running the checkPhase. + # These are added to buildInputs when doCheck = true. + checkInputs ? [ ], + nativeCheckInputs ? [ ], -# propagate build dependencies so in case we have A -> B -> C, -# C can import package A propagated by B -, propagatedBuildInputs ? [] + # propagate build dependencies so in case we have A -> B -> C, + # C can import package A propagated by B + propagatedBuildInputs ? [ ], -# Python module dependencies. -# These are named after PEP-621. -, dependencies ? [] -, optional-dependencies ? {} + # Python module dependencies. + # These are named after PEP-621. + dependencies ? [ ], + optional-dependencies ? { }, -# Python PEP-517 build systems. -, build-system ? [] + # Python PEP-517 build systems. + build-system ? [ ], -# DEPRECATED: use propagatedBuildInputs -, pythonPath ? [] + # DEPRECATED: use propagatedBuildInputs + pythonPath ? [ ], -# Enabled to detect some (native)BuildInputs mistakes -, strictDeps ? true + # Enabled to detect some (native)BuildInputs mistakes + strictDeps ? true, -, outputs ? [ "out" ] + outputs ? [ "out" ], -# used to disable derivation, useful for specific python versions -, disabled ? false + # used to disable derivation, useful for specific python versions + disabled ? false, -# Raise an error if two packages are installed with the same name -# TODO: For cross we probably need a different PYTHONPATH, or not -# add the runtime deps until after buildPhase. -, catchConflicts ? (python.stdenv.hostPlatform == python.stdenv.buildPlatform) + # Raise an error if two packages are installed with the same name + # TODO: For cross we probably need a different PYTHONPATH, or not + # add the runtime deps until after buildPhase. + catchConflicts ? (python.stdenv.hostPlatform == python.stdenv.buildPlatform), -# Additional arguments to pass to the makeWrapper function, which wraps -# generated binaries. -, makeWrapperArgs ? [] + # Additional arguments to pass to the makeWrapper function, which wraps + # generated binaries. + makeWrapperArgs ? [ ], -# Skip wrapping of python programs altogether -, dontWrapPythonPrograms ? false + # Skip wrapping of python programs altogether + dontWrapPythonPrograms ? false, -# Don't use Pip to install a wheel -# Note this is actually a variable for the pipInstallPhase in pip's setupHook. -# It's included here to prevent an infinite recursion. -, dontUsePipInstall ? false + # Don't use Pip to install a wheel + # Note this is actually a variable for the pipInstallPhase in pip's setupHook. + # It's included here to prevent an infinite recursion. + dontUsePipInstall ? false, -# Skip setting the PYTHONNOUSERSITE environment variable in wrapped programs -, permitUserSite ? false + # Skip setting the PYTHONNOUSERSITE environment variable in wrapped programs + permitUserSite ? false, -# Remove bytecode from bin folder. -# When a Python script has the extension `.py`, bytecode is generated -# Typically, executables in bin have no extension, so no bytecode is generated. -# However, some packages do provide executables with extensions, and thus bytecode is generated. -, removeBinBytecode ? true + # Remove bytecode from bin folder. + # When a Python script has the extension `.py`, bytecode is generated + # Typically, executables in bin have no extension, so no bytecode is generated. + # However, some packages do provide executables with extensions, and thus bytecode is generated. + removeBinBytecode ? true, -# pyproject = true <-> format = "pyproject" -# pyproject = false <-> format = "other" -# https://github.com/NixOS/nixpkgs/issues/253154 -, pyproject ? null + # pyproject = true <-> format = "pyproject" + # pyproject = false <-> format = "other" + # https://github.com/NixOS/nixpkgs/issues/253154 + pyproject ? null, -# Several package formats are supported. -# "setuptools" : Install a common setuptools/distutils based package. This builds a wheel. -# "wheel" : Install from a pre-compiled wheel. -# "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel. -# "egg": Install a package from an egg. -# "other" : Provide your own buildPhase and installPhase. -, format ? null + # Several package formats are supported. + # "setuptools" : Install a common setuptools/distutils based package. This builds a wheel. + # "wheel" : Install from a pre-compiled wheel. + # "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel. + # "egg": Install a package from an egg. + # "other" : Provide your own buildPhase and installPhase. + format ? null, -, meta ? {} + meta ? { }, -, doCheck ? config.doCheckByDefault or false + doCheck ? config.doCheckByDefault or false, -, disabledTestPaths ? [] + disabledTestPaths ? [ ], -# Allow passing in a custom stdenv to buildPython* -, stdenv ? python.stdenv + # Allow passing in a custom stdenv to buildPython* + stdenv ? python.stdenv, -, ... } @ attrs: + ... +}@attrs: assert (pyproject != null) -> (format == null); let format' = if pyproject != null then - if pyproject then - "pyproject" - else - "other" + if pyproject then "pyproject" else "other" else if format != null then format else @@ -169,45 +213,52 @@ let withDistOutput = withDistOutput' format'; - validatePythonMatches = let - throwMismatch = attrName: drv: let - myName = "'${namePrefix}${name}'"; - theirName = "'${drv.name}'"; - optionalLocation = let - pos = unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs; - in optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}"; - in throw '' - Python version mismatch in ${myName}: + validatePythonMatches = + let + throwMismatch = + attrName: drv: + let + myName = "'${namePrefix}${name}'"; + theirName = "'${drv.name}'"; + optionalLocation = + let + pos = unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs; + in + optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}"; + in + throw '' + Python version mismatch in ${myName}: - The Python derivation ${myName} depends on a Python derivation - named ${theirName}, but the two derivations use different versions - of Python: + The Python derivation ${myName} depends on a Python derivation + named ${theirName}, but the two derivations use different versions + of Python: - ${leftPadName myName theirName} uses ${python} - ${leftPadName theirName myName} uses ${toString drv.pythonModule} + ${leftPadName myName theirName} uses ${python} + ${leftPadName theirName myName} uses ${toString drv.pythonModule} - Possible solutions: + Possible solutions: - * If ${theirName} is a Python library, change the reference to ${theirName} - in the ${attrName} of ${myName} to use a ${theirName} built from the same - version of Python + * If ${theirName} is a Python library, change the reference to ${theirName} + in the ${attrName} of ${myName} to use a ${theirName} built from the same + version of Python - * If ${theirName} is used as a tool during the build, move the reference to - ${theirName} in ${myName} from ${attrName} to nativeBuildInputs + * If ${theirName} is used as a tool during the build, move the reference to + ${theirName} in ${myName} from ${attrName} to nativeBuildInputs - * If ${theirName} provides executables that are called at run time, pass its - bin path to makeWrapperArgs: + * If ${theirName} provides executables that are called at run time, pass its + bin path to makeWrapperArgs: - makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${getName drv } ] }" ]; + makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${getName drv} ] }" ]; - ${optionalLocation} - ''; + ${optionalLocation} + ''; - checkDrv = attrName: drv: - if (isPythonModule drv) && (isMismatchedPython drv) then throwMismatch attrName drv - else drv; + checkDrv = + attrName: drv: + if (isPythonModule drv) && (isMismatchedPython drv) then throwMismatch attrName drv else drv; - in attrName: inputs: map (checkDrv attrName) inputs; + in + attrName: inputs: map (checkDrv attrName) inputs; isBootstrapInstallPackage = isBootstrapInstallPackage' (attrs.pname or null); @@ -218,132 +269,157 @@ let passthru = attrs.passthru or { } // { - updateScript = let - filename = head (splitString ":" self.meta.position); - in attrs.passthru.updateScript or [ update-python-libraries filename ]; + updateScript = + let + filename = head (splitString ":" self.meta.position); + in + attrs.passthru.updateScript or [ + update-python-libraries + filename + ]; } - // optionalAttrs (dependencies != []) { - inherit dependencies; - } - // optionalAttrs (optional-dependencies != {}) { - inherit optional-dependencies; - } - // optionalAttrs (build-system != []) { - inherit build-system; - }; + // optionalAttrs (dependencies != [ ]) { inherit dependencies; } + // optionalAttrs (optional-dependencies != { }) { inherit optional-dependencies; } + // optionalAttrs (build-system != [ ]) { inherit build-system; }; # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. - self = toPythonModule (stdenv.mkDerivation ((cleanAttrs attrs) // { + self = toPythonModule ( + stdenv.mkDerivation ( + (cleanAttrs attrs) + // { - name = namePrefix + name; + name = namePrefix + name; - nativeBuildInputs = [ - python - wrapPython - ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, flit, ...)? - pythonRemoveTestsDirHook - ] ++ optionals (catchConflicts && !isBootstrapPackage && !isSetuptoolsDependency) [ - # - # 1. When building a package that is also part of the bootstrap chain, we - # must ignore conflicts after installation, because there will be one with - # the package in the bootstrap. - # - # 2. When a package is a dependency of setuptools, we must ignore conflicts - # because the hook that checks for conflicts uses setuptools. - # - pythonCatchConflictsHook - ] ++ optionals removeBinBytecode [ - pythonRemoveBinBytecodeHook - ] ++ optionals (hasSuffix "zip" (attrs.src.name or "")) [ - unzip - ] ++ optionals (format' == "setuptools") [ - setuptoolsBuildHook - ] ++ optionals (format' == "pyproject") [( - if isBootstrapPackage then - pypaBuildHook.override { - inherit (python.pythonOnBuildForHost.pkgs.bootstrap) build; - wheel = null; - } - else - pypaBuildHook - ) ( - if isBootstrapPackage then - pythonRuntimeDepsCheckHook.override { - inherit (python.pythonOnBuildForHost.pkgs.bootstrap) packaging; - } - else - pythonRuntimeDepsCheckHook - )] ++ optionals (format' == "wheel") [ - wheelUnpackHook - ] ++ optionals (format' == "egg") [ - eggUnpackHook eggBuildHook eggInstallHook - ] ++ optionals (format' != "other") [( - if isBootstrapInstallPackage then - pypaInstallHook.override { - inherit (python.pythonOnBuildForHost.pkgs.bootstrap) installer; - } - else - pypaInstallHook - )] ++ optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ - # This is a test, however, it should be ran independent of the checkPhase and checkInputs - pythonImportsCheckHook - ] ++ optionals (python.pythonAtLeast "3.3") [ - # Optionally enforce PEP420 for python3 - pythonNamespacesHook - ] ++ optionals withDistOutput [ - pythonOutputDistHook - ] ++ nativeBuildInputs ++ build-system; + nativeBuildInputs = + [ + python + wrapPython + ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, flit, ...)? + pythonRemoveTestsDirHook + ] + ++ optionals (catchConflicts && !isBootstrapPackage && !isSetuptoolsDependency) [ + # + # 1. When building a package that is also part of the bootstrap chain, we + # must ignore conflicts after installation, because there will be one with + # the package in the bootstrap. + # + # 2. When a package is a dependency of setuptools, we must ignore conflicts + # because the hook that checks for conflicts uses setuptools. + # + pythonCatchConflictsHook + ] + ++ optionals removeBinBytecode [ pythonRemoveBinBytecodeHook ] + ++ optionals (hasSuffix "zip" (attrs.src.name or "")) [ unzip ] + ++ optionals (format' == "setuptools") [ setuptoolsBuildHook ] + ++ optionals (format' == "pyproject") [ + ( + if isBootstrapPackage then + pypaBuildHook.override { + inherit (python.pythonOnBuildForHost.pkgs.bootstrap) build; + wheel = null; + } + else + pypaBuildHook + ) + ( + if isBootstrapPackage then + pythonRuntimeDepsCheckHook.override { + inherit (python.pythonOnBuildForHost.pkgs.bootstrap) packaging; + } + else + pythonRuntimeDepsCheckHook + ) + ] + ++ optionals (format' == "wheel") [ wheelUnpackHook ] + ++ optionals (format' == "egg") [ + eggUnpackHook + eggBuildHook + eggInstallHook + ] + ++ optionals (format' != "other") [ + ( + if isBootstrapInstallPackage then + pypaInstallHook.override { inherit (python.pythonOnBuildForHost.pkgs.bootstrap) installer; } + else + pypaInstallHook + ) + ] + ++ optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ + # This is a test, however, it should be ran independent of the checkPhase and checkInputs + pythonImportsCheckHook + ] + ++ optionals (python.pythonAtLeast "3.3") [ + # Optionally enforce PEP420 for python3 + pythonNamespacesHook + ] + ++ optionals withDistOutput [ pythonOutputDistHook ] + ++ nativeBuildInputs + ++ build-system; - buildInputs = validatePythonMatches "buildInputs" (buildInputs ++ pythonPath); + buildInputs = validatePythonMatches "buildInputs" (buildInputs ++ pythonPath); - propagatedBuildInputs = validatePythonMatches "propagatedBuildInputs" (propagatedBuildInputs ++ dependencies ++ [ - # we propagate python even for packages transformed with 'toPythonApplication' - # this pollutes the PATH but avoids rebuilds - # see https://github.com/NixOS/nixpkgs/issues/170887 for more context - python - ]); + propagatedBuildInputs = validatePythonMatches "propagatedBuildInputs" ( + propagatedBuildInputs + ++ dependencies + ++ [ + # we propagate python even for packages transformed with 'toPythonApplication' + # this pollutes the PATH but avoids rebuilds + # see https://github.com/NixOS/nixpkgs/issues/170887 for more context + python + ] + ); - inherit strictDeps; + inherit strictDeps; - LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8"; + LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8"; - # Python packages don't have a checkPhase, only an installCheckPhase - doCheck = false; - doInstallCheck = attrs.doCheck or true; - nativeInstallCheckInputs = [ - ] ++ optionals (format' == "setuptools") [ - # Longer-term we should get rid of this and require - # users of this function to set the `installCheckPhase` or - # pass in a hook that sets it. - setuptoolsCheckHook - ] ++ nativeCheckInputs; - installCheckInputs = checkInputs; + # Python packages don't have a checkPhase, only an installCheckPhase + doCheck = false; + doInstallCheck = attrs.doCheck or true; + nativeInstallCheckInputs = + [ ] + ++ optionals (format' == "setuptools") [ + # Longer-term we should get rid of this and require + # users of this function to set the `installCheckPhase` or + # pass in a hook that sets it. + setuptoolsCheckHook + ] + ++ nativeCheckInputs; + installCheckInputs = checkInputs; - postFixup = optionalString (!dontWrapPythonPrograms) '' - wrapPythonPrograms - '' + attrs.postFixup or ""; + postFixup = + optionalString (!dontWrapPythonPrograms) '' + wrapPythonPrograms + '' + + attrs.postFixup or ""; - # Python packages built through cross-compilation are always for the host platform. - disallowedReferences = optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ]; + # Python packages built through cross-compilation are always for the host platform. + disallowedReferences = optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ + python.pythonOnBuildForHost + ]; - outputs = outputs ++ optional withDistOutput "dist"; + outputs = outputs ++ optional withDistOutput "dist"; - inherit passthru; + inherit passthru; - meta = { - # default to python's platforms - platforms = python.meta.platforms; - isBuildPythonPackage = python.meta.platforms; - } // meta; - } // optionalAttrs (attrs?checkPhase) { - # If given use the specified checkPhase, otherwise use the setup hook. - # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`. - installCheckPhase = attrs.checkPhase; - } // optionalAttrs (disabledTestPaths != []) { - disabledTestPaths = escapeShellArgs disabledTestPaths; - })); + meta = { + # default to python's platforms + platforms = python.meta.platforms; + isBuildPythonPackage = python.meta.platforms; + } // meta; + } + // optionalAttrs (attrs ? checkPhase) { + # If given use the specified checkPhase, otherwise use the setup hook. + # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`. + installCheckPhase = attrs.checkPhase; + } + // optionalAttrs (disabledTestPaths != [ ]) { + disabledTestPaths = escapeShellArgs disabledTestPaths; + } + ) + ); -in extendDerivation - (disabled -> throw "${name} not supported for interpreter ${python.executable}") - passthru - self +in +extendDerivation ( + disabled -> throw "${name} not supported for interpreter ${python.executable}" +) passthru self diff --git a/pkgs/by-name/py/python/packages.nix b/pkgs/by-name/py/python/packages.nix index c4b3eb1..f8e843f 100644 --- a/pkgs/by-name/py/python/packages.nix +++ b/pkgs/by-name/py/python/packages.nix @@ -1,26 +1,65 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { pythonInterpreters = callPackage ./. { }; - inherit (pythonInterpreters) python27 python39 python310 python311 python312 python313 python3Minimal pypy27 pypy310 pypy39 rustpython; + inherit (pythonInterpreters) + python27 + python39 + python310 + python311 + python312 + python313 + python3Minimal + pypy27 + pypy310 + pypy39 + rustpython + ; # List of extensions with overrides to apply to all Python package sets. pythonPackagesExtensions = [ ]; # Python package sets. - python27Packages = python27.pkgs // { __attrsFailEvaluation = true; }; - python39Packages = python39.pkgs // { __attrsFailEvaluation = true; }; - python310Packages = python310.pkgs // { __attrsFailEvaluation = true; }; - python311Packages = recurseIntoAttrs python311.pkgs // { pythonPackages = python311.pkgs // { __attrsFailEvaluation = true; }; }; - python312Packages = recurseIntoAttrs python312.pkgs // { pythonPackages = python312.pkgs // { __attrsFailEvaluation = true; }; }; - python313Packages = python313.pkgs // { __attrsFailEvaluation = true; }; - pypyPackages = pypy.pkgs // { __attrsFailEvaluation = true; }; - pypy2Packages = pypy2.pkgs // { __attrsFailEvaluation = true; }; - pypy27Packages = pypy27.pkgs // { __attrsFailEvaluation = true; }; - pypy3Packages = pypy3.pkgs // { __attrsFailEvaluation = true; }; - pypy39Packages = pypy39.pkgs // { __attrsFailEvaluation = true; }; - pypy310Packages = pypy310.pkgs // { __attrsFailEvaluation = true; }; + python27Packages = python27.pkgs // { + __attrsFailEvaluation = true; + }; + python39Packages = python39.pkgs // { + __attrsFailEvaluation = true; + }; + python310Packages = python310.pkgs // { + __attrsFailEvaluation = true; + }; + python311Packages = recurseIntoAttrs python311.pkgs // { + pythonPackages = python311.pkgs // { + __attrsFailEvaluation = true; + }; + }; + python312Packages = recurseIntoAttrs python312.pkgs // { + pythonPackages = python312.pkgs // { + __attrsFailEvaluation = true; + }; + }; + python313Packages = python313.pkgs // { + __attrsFailEvaluation = true; + }; + pypyPackages = pypy.pkgs // { + __attrsFailEvaluation = true; + }; + pypy2Packages = pypy2.pkgs // { + __attrsFailEvaluation = true; + }; + pypy27Packages = pypy27.pkgs // { + __attrsFailEvaluation = true; + }; + pypy3Packages = pypy3.pkgs // { + __attrsFailEvaluation = true; + }; + pypy39Packages = pypy39.pkgs // { + __attrsFailEvaluation = true; + }; + pypy310Packages = pypy310.pkgs // { + __attrsFailEvaluation = true; + }; # Python interpreters. All standard library modules are included except for tkinter, which is # available as `pythonPackages.tkinter` and can be used as any other Python package. @@ -32,21 +71,22 @@ with pkgs; python2Packages = dontRecurseIntoAttrs python27Packages; python3Packages = dontRecurseIntoAttrs python311Packages; - # Should eventually be moved inside Python interpreters. python-setup-hook = buildPackages.callPackage ./setup-hook.nix { }; update-python-libraries = callPackage ./update-python-libraries { }; - docutils = with python3Packages; toPythonApplication ( - docutils.overridePythonAttrs (attrs: rec { - version = "0.20.1"; - src = attrs.src.override { - inherit version; - hash = "sha256-8IpOJ2w6FYOobc4+NKuj/gTQK7ot1R7RYQYkToqSPjs="; - }; - }) - ); + docutils = + with python3Packages; + toPythonApplication ( + docutils.overridePythonAttrs (attrs: rec { + version = "0.20.1"; + src = attrs.src.override { + inherit version; + hash = "sha256-8IpOJ2w6FYOobc4+NKuj/gTQK7ot1R7RYQYkToqSPjs="; + }; + }) + ); actdiag = with python3.pkgs; toPythonApplication actdiag; blockdiag = with python3Packages; toPythonApplication blockdiag; diff --git a/pkgs/by-name/py/python/passthrufun.nix b/pkgs/by-name/py/python/passthrufun.nix index 8635841..54d12d5 100644 --- a/pkgs/by-name/py/python/passthrufun.nix +++ b/pkgs/by-name/py/python/passthrufun.nix @@ -1,105 +1,150 @@ -{ lib, stdenv, callPackage, pythonPackagesExtensions, config, makeScopeWithSplicing', ... }: +{ + lib, + stdenv, + callPackage, + pythonPackagesExtensions, + config, + makeScopeWithSplicing', + ... +}: -{ implementation -, libPrefix -, executable -, sourceVersion -, pythonVersion -, packageOverrides -, sitePackages -, hasDistutilsCxxPatch -, pythonOnBuildForBuild -, pythonOnBuildForHost -, pythonOnBuildForTarget -, pythonOnHostForHost -, pythonOnTargetForTarget -, pythonAttr ? null -, self # is pythonOnHostForTarget -}: let - pythonPackages = let - ensurePythonModules = items: let - exceptions = [ - stdenv - ]; - providesSetupHook = lib.attrByPath [ "provides" "setupHook"] false; - valid = value: pythonPackages.hasPythonModule value || providesSetupHook value || lib.elem value exceptions; - func = name: value: - if lib.isDerivation value then - lib.extendDerivation (valid value || throw "${name} should use `buildPythonPackage` or `toPythonModule` if it is to be part of the Python packages set.") {} value - else - value; - in lib.mapAttrs func items; - in ensurePythonModules (callPackage - # Function that when called - # - imports python-packages.nix - # - adds spliced package sets to the package set - # - applies overrides from `packageOverrides` and `pythonPackagesOverlays`. - ({ pkgs, stdenv, python, overrides }: let - pythonPackagesFun = import ./python-packages-base.nix { - inherit stdenv pkgs lib; - python = self; - }; - otherSplices = { - selfBuildBuild = pythonOnBuildForBuild.pkgs; - selfBuildHost = pythonOnBuildForHost.pkgs; - selfBuildTarget = pythonOnBuildForTarget.pkgs; - selfHostHost = pythonOnHostForHost.pkgs; - selfTargetTarget = pythonOnTargetForTarget.pkgs or {}; # There is no Python TargetTarget. - }; - hooks = import ./hooks/default.nix; - keep = self: hooks self {}; - optionalExtensions = cond: as: lib.optionals cond as; - pythonExtension = import ./python-packages.nix; - python2Extension = import ./python2-packages.nix; - extensions = lib.composeManyExtensions ([ - hooks - pythonExtension - ] ++ (optionalExtensions (!self.isPy3k) [ - python2Extension - ]) ++ pythonPackagesExtensions ++ [ - overrides - ]); - aliases = self: super: {}; #lib.optionalAttrs config.allowAliases (import ../../../top-level/python-aliases.nix lib self super); - in makeScopeWithSplicing' { - inherit otherSplices keep; - f = lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun; - }) { - overrides = packageOverrides; - python = self; - }); - pythonOnBuildForHost_overridden = - pythonOnBuildForHost.override { inherit packageOverrides; self = pythonOnBuildForHost_overridden; }; -in rec { - isPy27 = pythonVersion == "2.7"; - isPy37 = pythonVersion == "3.7"; - isPy38 = pythonVersion == "3.8"; - isPy39 = pythonVersion == "3.9"; - isPy310 = pythonVersion == "3.10"; - isPy311 = pythonVersion == "3.11"; - isPy312 = pythonVersion == "3.12"; - isPy2 = lib.strings.substring 0 1 pythonVersion == "2"; - isPy3 = lib.strings.substring 0 1 pythonVersion == "3"; - isPy3k = isPy3; - isPyPy = lib.hasInfix "pypy" interpreter; +{ + implementation, + libPrefix, + executable, + sourceVersion, + pythonVersion, + packageOverrides, + sitePackages, + hasDistutilsCxxPatch, + pythonOnBuildForBuild, + pythonOnBuildForHost, + pythonOnBuildForTarget, + pythonOnHostForHost, + pythonOnTargetForTarget, + pythonAttr ? null, + self, # is pythonOnHostForTarget +}: +let + pythonPackages = + let + ensurePythonModules = + items: + let + exceptions = [ stdenv ]; + providesSetupHook = lib.attrByPath [ + "provides" + "setupHook" + ] false; + valid = + value: pythonPackages.hasPythonModule value || providesSetupHook value || lib.elem value exceptions; + func = + name: value: + if lib.isDerivation value then + lib.extendDerivation ( + valid value + || throw "${name} should use `buildPythonPackage` or `toPythonModule` if it is to be part of the Python packages set." + ) { } value + else + value; + in + lib.mapAttrs func items; + in + ensurePythonModules ( + callPackage + # Function that when called + # - imports python-packages.nix + # - adds spliced package sets to the package set + # - applies overrides from `packageOverrides` and `pythonPackagesOverlays`. + ( + { + pkgs, + stdenv, + python, + overrides, + }: + let + pythonPackagesFun = import ./python-packages-base.nix { + inherit stdenv pkgs lib; + python = self; + }; + otherSplices = { + selfBuildBuild = pythonOnBuildForBuild.pkgs; + selfBuildHost = pythonOnBuildForHost.pkgs; + selfBuildTarget = pythonOnBuildForTarget.pkgs; + selfHostHost = pythonOnHostForHost.pkgs; + selfTargetTarget = pythonOnTargetForTarget.pkgs or { }; # There is no Python TargetTarget. + }; + hooks = import ./hooks/default.nix; + keep = self: hooks self { }; + optionalExtensions = cond: as: lib.optionals cond as; + pythonExtension = import ./python-packages.nix; + python2Extension = import ./python2-packages.nix; + extensions = lib.composeManyExtensions ( + [ + hooks + pythonExtension + ] + ++ (optionalExtensions (!self.isPy3k) [ python2Extension ]) + ++ pythonPackagesExtensions + ++ [ overrides ] + ); + aliases = self: super: { }; # lib.optionalAttrs config.allowAliases (import ../../../top-level/python-aliases.nix lib self super); + in + makeScopeWithSplicing' { + inherit otherSplices keep; + f = lib.extends (lib.composeExtensions aliases extensions) pythonPackagesFun; + } + ) + { + overrides = packageOverrides; + python = self; + } + ); + pythonOnBuildForHost_overridden = pythonOnBuildForHost.override { + inherit packageOverrides; + self = pythonOnBuildForHost_overridden; + }; +in +rec { + isPy27 = pythonVersion == "2.7"; + isPy37 = pythonVersion == "3.7"; + isPy38 = pythonVersion == "3.8"; + isPy39 = pythonVersion == "3.9"; + isPy310 = pythonVersion == "3.10"; + isPy311 = pythonVersion == "3.11"; + isPy312 = pythonVersion == "3.12"; + isPy2 = lib.strings.substring 0 1 pythonVersion == "2"; + isPy3 = lib.strings.substring 0 1 pythonVersion == "3"; + isPy3k = isPy3; + isPyPy = lib.hasInfix "pypy" interpreter; - buildEnv = callPackage ./wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; }; - withPackages = import ./with-packages.nix { inherit buildEnv pythonPackages;}; - pkgs = pythonPackages; - interpreter = "${self}/bin/${executable}"; - inherit executable implementation libPrefix pythonVersion sitePackages; - inherit sourceVersion; - pythonAtLeast = lib.versionAtLeast pythonVersion; - pythonOlder = lib.versionOlder pythonVersion; - inherit hasDistutilsCxxPatch; - # Remove after 24.11 is released. - pythonForBuild = - lib.warnIf (lib.isInOldestRelease 2311) "`pythonForBuild` (from `python*`) has been renamed to `pythonOnBuildForHost`" - pythonOnBuildForHost_overridden; - pythonOnBuildForHost = pythonOnBuildForHost_overridden; + buildEnv = callPackage ./wrapper.nix { + python = self; + inherit (pythonPackages) requiredPythonModules; + }; + withPackages = import ./with-packages.nix { inherit buildEnv pythonPackages; }; + pkgs = pythonPackages; + interpreter = "${self}/bin/${executable}"; + inherit + executable + implementation + libPrefix + pythonVersion + sitePackages + ; + inherit sourceVersion; + pythonAtLeast = lib.versionAtLeast pythonVersion; + pythonOlder = lib.versionOlder pythonVersion; + inherit hasDistutilsCxxPatch; + # Remove after 24.11 is released. + pythonForBuild = + lib.warnIf (lib.isInOldestRelease 2311) + "`pythonForBuild` (from `python*`) has been renamed to `pythonOnBuildForHost`" + pythonOnBuildForHost_overridden; + pythonOnBuildForHost = pythonOnBuildForHost_overridden; - tests = callPackage ./tests.nix { - python = self; - }; + tests = callPackage ./tests.nix { python = self; }; - inherit pythonAttr; + inherit pythonAttr; } diff --git a/pkgs/by-name/py/python/pypy/default.nix b/pkgs/by-name/py/python/pypy/default.nix index 9b41494..48ccdb7 100644 --- a/pkgs/by-name/py/python/pypy/default.nix +++ b/pkgs/by-name/py/python/pypy/default.nix @@ -1,22 +1,43 @@ -{ lib, stdenv, substituteAll, fetchurl -, zlibSupport ? true, zlib -, bzip2, pkg-config, libffi, libunwind, Security -, sqlite, openssl, ncurses, python, expat, tcl, tk, tix, libX11 -, gdbm, db, xz, python-setup-hook -, optimizationLevel ? "jit", boehmgc -# For the Python package set -, hash -, self -, packageOverrides ? (self: super: {}) -, pkgsBuildBuild -, pkgsBuildHost -, pkgsBuildTarget -, pkgsHostHost -, pkgsTargetTarget -, sourceVersion -, pythonVersion -, passthruFun -, pythonAttr ? "pypy${lib.substring 0 1 pythonVersion}${lib.substring 2 3 pythonVersion}" +{ + lib, + stdenv, + substituteAll, + fetchurl, + zlibSupport ? true, + zlib, + bzip2, + pkg-config, + libffi, + libunwind, + Security, + sqlite, + openssl, + ncurses, + python, + expat, + tcl, + tk, + tix, + libX11, + gdbm, + db, + xz, + python-setup-hook, + optimizationLevel ? "jit", + boehmgc, + # For the Python package set + hash, + self, + packageOverrides ? (self: super: { }), + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsTargetTarget, + sourceVersion, + pythonVersion, + passthruFun, + pythonAttr ? "pypy${lib.substring 0 1 pythonVersion}${lib.substring 2 3 pythonVersion}", }: assert zlibSupport -> zlib != null; @@ -26,10 +47,17 @@ let isPy38OrNewer = lib.versionAtLeast pythonVersion "3.8"; isPy39OrNewer = lib.versionAtLeast pythonVersion "3.9"; passthru = passthruFun rec { - inherit self sourceVersion pythonVersion packageOverrides; + inherit + self + sourceVersion + pythonVersion + packageOverrides + ; implementation = "pypy"; libPrefix = "pypy${pythonVersion}"; - executable = "pypy${if isPy39OrNewer then lib.versions.majorMinor pythonVersion else lib.optionalString isPy3k "3"}"; + executable = "pypy${ + if isPy39OrNewer then lib.versions.majorMinor pythonVersion else lib.optionalString isPy3k "3" + }"; sitePackages = "${lib.optionalString isPy38OrNewer "lib/${libPrefix}/"}site-packages"; hasDistutilsCxxPatch = false; inherit pythonAttr; @@ -38,13 +66,15 @@ let pythonOnBuildForHost = pkgsBuildHost.${pythonAttr}; pythonOnBuildForTarget = pkgsBuildTarget.${pythonAttr}; pythonOnHostForHost = pkgsHostHost.${pythonAttr}; - pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or {}; + pythonOnTargetForTarget = pkgsTargetTarget.${pythonAttr} or { }; }; pname = passthru.executable; version = with sourceVersion; "${major}.${minor}.${patch}"; pythonForPypy = python.withPackages (ppkgs: [ ppkgs.pycparser ]); -in with passthru; stdenv.mkDerivation rec { +in +with passthru; +stdenv.mkDerivation rec { inherit pname version; src = fetchurl { @@ -53,19 +83,34 @@ in with passthru; stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - bzip2 openssl pythonForPypy libffi ncurses expat sqlite tk tcl libX11 gdbm db - ] ++ lib.optionals isPy3k [ - xz - ] ++ lib.optionals (stdenv ? cc && stdenv.cc.libc != null) [ - stdenv.cc.libc - ] ++ lib.optionals zlibSupport [ - zlib - ] ++ lib.optionals (lib.any (l: l == optimizationLevel) [ "0" "1" "2" "3"]) [ - boehmgc - ] ++ lib.optionals stdenv.isDarwin [ - libunwind Security - ]; + buildInputs = + [ + bzip2 + openssl + pythonForPypy + libffi + ncurses + expat + sqlite + tk + tcl + libX11 + gdbm + db + ] + ++ lib.optionals isPy3k [ xz ] + ++ lib.optionals (stdenv ? cc && stdenv.cc.libc != null) [ stdenv.cc.libc ] + ++ lib.optionals zlibSupport [ zlib ] + ++ lib.optionals (lib.any (l: l == optimizationLevel) [ + "0" + "1" + "2" + "3" + ]) [ boehmgc ] + ++ lib.optionals stdenv.isDarwin [ + libunwind + Security + ]; # Remove bootstrap python from closure dontPatchShebangs = true; @@ -73,7 +118,9 @@ in with passthru; stdenv.mkDerivation rec { C_INCLUDE_PATH = lib.makeSearchPathOutput "dev" "include" buildInputs; LIBRARY_PATH = lib.makeLibraryPath buildInputs; - LD_LIBRARY_PATH = lib.makeLibraryPath (builtins.filter (x : x.outPath != stdenv.cc.libc.outPath or "") buildInputs); + LD_LIBRARY_PATH = lib.makeLibraryPath ( + builtins.filter (x: x.outPath != stdenv.cc.libc.outPath or "") buildInputs + ); patches = [ ./dont_fetch_vendored_deps.patch @@ -127,83 +174,100 @@ in with passthru; stdenv.mkDerivation rec { ln -s $out/${executable}-c/lib-python/${if isPy3k then "3" else pythonVersion} $out/lib/${libPrefix} # Include a sitecustomize.py file - cp ${../sitecustomize.py} $out/${if isPy38OrNewer then sitePackages else "lib/${libPrefix}/${sitePackages}"}/sitecustomize.py + cp ${../sitecustomize.py} $out/${ + if isPy38OrNewer then sitePackages else "lib/${libPrefix}/${sitePackages}" + }/sitecustomize.py runHook postInstall ''; - preFixup = lib.optionalString (stdenv.isDarwin) '' - install_name_tool -change @rpath/lib${executable}-c.dylib $out/lib/lib${executable}-c.dylib $out/bin/${executable} - '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' - mkdir -p $out/${executable}-c/pypy/bin - mv $out/bin/${executable} $out/${executable}-c/pypy/bin/${executable} - ln -s $out/${executable}-c/pypy/bin/${executable} $out/bin/${executable} - ''; + preFixup = + lib.optionalString (stdenv.isDarwin) '' + install_name_tool -change @rpath/lib${executable}-c.dylib $out/lib/lib${executable}-c.dylib $out/bin/${executable} + '' + + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' + mkdir -p $out/${executable}-c/pypy/bin + mv $out/bin/${executable} $out/${executable}-c/pypy/bin/${executable} + ln -s $out/${executable}-c/pypy/bin/${executable} $out/bin/${executable} + ''; setupHook = python-setup-hook sitePackages; # TODO: A bunch of tests are failing as of 7.1.1, please feel free to # fix and re-enable if you have the patience and tenacity. doCheck = false; - checkPhase = let - disabledTests = [ - # disable shutils because it assumes gid 0 exists - "test_shutil" - # disable socket because it has two actual network tests that fail - "test_socket" - ] ++ lib.optionals (!isPy3k) [ - # disable test_urllib2net, test_urllib2_localnet, and test_urllibnet because they require networking (example.com) - "test_urllib2net" - "test_urllibnet" - "test_urllib2_localnet" - ] ++ lib.optionals isPy3k [ - # disable asyncio due to https://github.com/NixOS/nix/issues/1238 - "test_asyncio" - # disable os due to https://github.com/NixOS/nixpkgs/issues/10496 - "test_os" - # disable pathlib due to https://bitbucket.org/pypy/pypy/pull-requests/594 - "test_pathlib" - # disable tarfile because it assumes gid 0 exists - "test_tarfile" - # disable __all__ because of spurious imp/importlib warning and - # warning-to-error test policy - "test___all__" - ]; - in '' - export TERMINFO="${ncurses.out}/share/terminfo/"; - export TERM="xterm"; - export HOME="$TMPDIR"; + checkPhase = + let + disabledTests = + [ + # disable shutils because it assumes gid 0 exists + "test_shutil" + # disable socket because it has two actual network tests that fail + "test_socket" + ] + ++ lib.optionals (!isPy3k) [ + # disable test_urllib2net, test_urllib2_localnet, and test_urllibnet because they require networking (example.com) + "test_urllib2net" + "test_urllibnet" + "test_urllib2_localnet" + ] + ++ lib.optionals isPy3k [ + # disable asyncio due to https://github.com/NixOS/nix/issues/1238 + "test_asyncio" + # disable os due to https://github.com/NixOS/nixpkgs/issues/10496 + "test_os" + # disable pathlib due to https://bitbucket.org/pypy/pypy/pull-requests/594 + "test_pathlib" + # disable tarfile because it assumes gid 0 exists + "test_tarfile" + # disable __all__ because of spurious imp/importlib warning and + # warning-to-error test policy + "test___all__" + ]; + in + '' + export TERMINFO="${ncurses.out}/share/terminfo/"; + export TERM="xterm"; + export HOME="$TMPDIR"; - ${pythonForPypy.interpreter} ./pypy/test_all.py --pypy=./${executable}-c -k 'not (${lib.concatStringsSep " or " disabledTests})' lib-python - ''; + ${pythonForPypy.interpreter} ./pypy/test_all.py --pypy=./${executable}-c -k 'not (${lib.concatStringsSep " or " disabledTests})' lib-python + ''; # verify cffi modules doInstallCheck = true; - installCheckPhase = let - modules = [ - "curses" - "sqlite3" - ] ++ lib.optionals (!isPy3k) [ - "Tkinter" - ] ++ lib.optionals isPy3k [ - "tkinter" - "lzma" - ]; - imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; - in '' - echo "Testing whether we can import modules" - $out/bin/${executable} -c '${imports}' - ''; + installCheckPhase = + let + modules = + [ + "curses" + "sqlite3" + ] + ++ lib.optionals (!isPy3k) [ "Tkinter" ] + ++ lib.optionals isPy3k [ + "tkinter" + "lzma" + ]; + imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; + in + '' + echo "Testing whether we can import modules" + $out/bin/${executable} -c '${imports}' + ''; inherit passthru; - enableParallelBuilding = true; # almost no parallelization without STM + enableParallelBuilding = true; # almost no parallelization without STM meta = with lib; { homepage = "https://www.pypy.org/"; description = "Fast, compliant alternative implementation of the Python language (${pythonVersion})"; mainProgram = "pypy"; license = licenses.mit; - platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; + platforms = [ + "aarch64-linux" + "x86_64-linux" + "aarch64-darwin" + "x86_64-darwin" + ]; broken = optimizationLevel == "0"; # generates invalid code maintainers = with maintainers; [ andersk ]; }; diff --git a/pkgs/by-name/py/python/pypy/prebuilt.nix b/pkgs/by-name/py/python/pypy/prebuilt.nix index 4b47c64..0f70bc3 100644 --- a/pkgs/by-name/py/python/pypy/prebuilt.nix +++ b/pkgs/by-name/py/python/pypy/prebuilt.nix @@ -1,26 +1,27 @@ -{ lib -, stdenv -, fetchurl -, autoPatchelfHook -, python-setup-hook -, self -# Dependencies -, bzip2 -, expat -, gdbm -, ncurses6 -, sqlite -, tcl-8_5 -, tk-8_5 -, tcl-8_6 -, tk-8_6 -, zlib -# For the Python package set -, packageOverrides ? (self: super: {}) -, sourceVersion -, pythonVersion -, hash -, passthruFun +{ + lib, + stdenv, + fetchurl, + autoPatchelfHook, + python-setup-hook, + self, + # Dependencies + bzip2, + expat, + gdbm, + ncurses6, + sqlite, + tcl-8_5, + tk-8_5, + tcl-8_6, + tk-8_6, + zlib, + # For the Python package set + packageOverrides ? (self: super: { }), + sourceVersion, + pythonVersion, + hash, + passthruFun, }: # This version of PyPy is primarily added to speed-up translation of @@ -29,7 +30,12 @@ let isPy3k = majorVersion == "3"; passthru = passthruFun rec { - inherit self sourceVersion pythonVersion packageOverrides; + inherit + self + sourceVersion + pythonVersion + packageOverrides + ; implementation = "pypy"; libPrefix = "pypy${pythonVersion}"; executable = "pypy${lib.optionalString isPy3k "3"}"; @@ -55,7 +61,9 @@ let x86_64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_x86_64.tar.bz2"; }; -in with passthru; stdenv.mkDerivation { +in +with passthru; +stdenv.mkDerivation { inherit pname version; src = fetchurl { @@ -63,21 +71,24 @@ in with passthru; stdenv.mkDerivation { inherit hash; }; - buildInputs = [ - bzip2 - expat - gdbm - ncurses6 - sqlite - zlib - stdenv.cc.cc.libgcc or null - ] ++ lib.optionals stdenv.isLinux [ - tcl-8_5 - tk-8_5 - ] ++ lib.optionals stdenv.isDarwin [ - tcl-8_6 - tk-8_6 - ]; + buildInputs = + [ + bzip2 + expat + gdbm + ncurses6 + sqlite + zlib + stdenv.cc.cc.libgcc or null + ] + ++ lib.optionals stdenv.isLinux [ + tcl-8_5 + tk-8_5 + ] + ++ lib.optionals stdenv.isDarwin [ + tcl-8_6 + tk-8_6 + ]; nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; @@ -101,52 +112,52 @@ in with passthru; stdenv.mkDerivation { runHook postInstall ''; - preFixup = lib.optionalString stdenv.isLinux '' - find $out/{lib,lib_pypy*} -name "*.so" \ - -exec patchelf \ - --replace-needed libtinfow.so.6 libncursesw.so.6 \ - --replace-needed libgdbm.so.4 libgdbm_compat.so.4 {} \; - '' + lib.optionalString stdenv.isDarwin '' - install_name_tool \ - -change \ - @rpath/lib${libPrefix}-c.dylib \ - $out/lib/lib${libPrefix}-c.dylib \ - $out/bin/${executable} - install_name_tool \ - -change \ - @rpath/lib${libPrefix}-c.dylib \ - $out/lib/lib${libPrefix}-c.dylib \ - $out/bin/${libPrefix} - install_name_tool \ - -change \ - /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtcl8.6.dylib \ - ${tcl-8_6}/lib/libtcl8.6.dylib \ - $out/lib/${libPrefix}/_tkinter/*.so - install_name_tool \ - -change \ - /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtk8.6.dylib \ - ${tk-8_6}/lib/libtk8.6.dylib \ - $out/lib/${libPrefix}/_tkinter/*.so - ''; + preFixup = + lib.optionalString stdenv.isLinux '' + find $out/{lib,lib_pypy*} -name "*.so" \ + -exec patchelf \ + --replace-needed libtinfow.so.6 libncursesw.so.6 \ + --replace-needed libgdbm.so.4 libgdbm_compat.so.4 {} \; + '' + + lib.optionalString stdenv.isDarwin '' + install_name_tool \ + -change \ + @rpath/lib${libPrefix}-c.dylib \ + $out/lib/lib${libPrefix}-c.dylib \ + $out/bin/${executable} + install_name_tool \ + -change \ + @rpath/lib${libPrefix}-c.dylib \ + $out/lib/lib${libPrefix}-c.dylib \ + $out/bin/${libPrefix} + install_name_tool \ + -change \ + /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtcl8.6.dylib \ + ${tcl-8_6}/lib/libtcl8.6.dylib \ + $out/lib/${libPrefix}/_tkinter/*.so + install_name_tool \ + -change \ + /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtk8.6.dylib \ + ${tk-8_6}/lib/libtk8.6.dylib \ + $out/lib/${libPrefix}/_tkinter/*.so + ''; doInstallCheck = true; # Check whether importing of (extension) modules functions - installCheckPhase = let - modules = [ - "ssl" - "sys" - "curses" - ] ++ lib.optionals (!isPy3k) [ - "Tkinter" - ] ++ lib.optionals isPy3k [ - "tkinter" - ]; - imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; - in '' - echo "Testing whether we can import modules" - $out/bin/${executable} -c '${imports}' - ''; + installCheckPhase = + let + modules = [ + "ssl" + "sys" + "curses" + ] ++ lib.optionals (!isPy3k) [ "Tkinter" ] ++ lib.optionals isPy3k [ "tkinter" ]; + imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; + in + '' + echo "Testing whether we can import modules" + $out/bin/${executable} -c '${imports}' + ''; setupHook = python-setup-hook sitePackages; diff --git a/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix b/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix index 37a06f9..66ef1e2 100644 --- a/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix +++ b/pkgs/by-name/py/python/pypy/prebuilt_2_7.nix @@ -1,26 +1,27 @@ -{ lib -, stdenv -, fetchurl -, autoPatchelfHook -, python-setup-hook -, self -# Dependencies -, bzip2 -, expat -, gdbm -, ncurses6 -, sqlite -, tcl-8_5 -, tk-8_5 -, tcl-8_6 -, tk-8_6 -, zlib -# For the Python package set -, packageOverrides ? (self: super: {}) -, sourceVersion -, pythonVersion -, hash -, passthruFun +{ + lib, + stdenv, + fetchurl, + autoPatchelfHook, + python-setup-hook, + self, + # Dependencies + bzip2, + expat, + gdbm, + ncurses6, + sqlite, + tcl-8_5, + tk-8_5, + tcl-8_6, + tk-8_6, + zlib, + # For the Python package set + packageOverrides ? (self: super: { }), + sourceVersion, + pythonVersion, + hash, + passthruFun, }: # This version of PyPy is primarily added to speed-up translation of @@ -29,7 +30,12 @@ let isPy3k = majorVersion == "3"; passthru = passthruFun { - inherit self sourceVersion pythonVersion packageOverrides; + inherit + self + sourceVersion + pythonVersion + packageOverrides + ; implementation = "pypy"; libPrefix = "pypy${pythonVersion}"; executable = "pypy${lib.optionalString isPy3k "3"}"; @@ -55,7 +61,9 @@ let x86_64-darwin = "https://downloads.python.org/pypy/pypy${pythonVersion}-v${version}-macos_x86_64.tar.bz2"; }; -in with passthru; stdenv.mkDerivation { +in +with passthru; +stdenv.mkDerivation { inherit pname version; src = fetchurl { @@ -63,21 +71,24 @@ in with passthru; stdenv.mkDerivation { inherit hash; }; - buildInputs = [ - bzip2 - expat - gdbm - ncurses6 - sqlite - zlib - stdenv.cc.cc.libgcc or null - ] ++ lib.optionals stdenv.isLinux [ - tcl-8_5 - tk-8_5 - ] ++ lib.optionals stdenv.isDarwin [ - tcl-8_6 - tk-8_6 - ]; + buildInputs = + [ + bzip2 + expat + gdbm + ncurses6 + sqlite + zlib + stdenv.cc.cc.libgcc or null + ] + ++ lib.optionals stdenv.isLinux [ + tcl-8_5 + tk-8_5 + ] + ++ lib.optionals stdenv.isDarwin [ + tcl-8_6 + tk-8_6 + ]; nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]; @@ -102,47 +113,47 @@ in with passthru; stdenv.mkDerivation { runHook postInstall ''; - preFixup = lib.optionalString (stdenv.isLinux) '' - find $out/{lib,lib_pypy*} -name "*.so" \ - -exec patchelf \ - --replace-needed libtinfow.so.6 libncursesw.so.6 \ - --replace-needed libgdbm.so.4 libgdbm_compat.so.4 {} \; - '' + lib.optionalString (stdenv.isDarwin) '' - install_name_tool \ - -change \ - @rpath/lib${executable}-c.dylib \ - $out/lib/lib${executable}-c.dylib \ - $out/bin/${executable} - install_name_tool \ - -change \ - /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtcl8.6.dylib \ - ${tcl-8_6}/lib/libtcl8.6.dylib \ - $out/lib_pypy/_tkinter/*.so - install_name_tool \ - -change \ - /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtk8.6.dylib \ - ${tk-8_6}/lib/libtk8.6.dylib \ - $out/lib_pypy/_tkinter/*.so - ''; + preFixup = + lib.optionalString (stdenv.isLinux) '' + find $out/{lib,lib_pypy*} -name "*.so" \ + -exec patchelf \ + --replace-needed libtinfow.so.6 libncursesw.so.6 \ + --replace-needed libgdbm.so.4 libgdbm_compat.so.4 {} \; + '' + + lib.optionalString (stdenv.isDarwin) '' + install_name_tool \ + -change \ + @rpath/lib${executable}-c.dylib \ + $out/lib/lib${executable}-c.dylib \ + $out/bin/${executable} + install_name_tool \ + -change \ + /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtcl8.6.dylib \ + ${tcl-8_6}/lib/libtcl8.6.dylib \ + $out/lib_pypy/_tkinter/*.so + install_name_tool \ + -change \ + /opt/homebrew${lib.optionalString stdenv.isx86_64 "_x86_64"}/opt/tcl-tk/lib/libtk8.6.dylib \ + ${tk-8_6}/lib/libtk8.6.dylib \ + $out/lib_pypy/_tkinter/*.so + ''; doInstallCheck = true; # Check whether importing of (extension) modules functions - installCheckPhase = let - modules = [ - "ssl" - "sys" - "curses" - ] ++ lib.optionals (!isPy3k) [ - "Tkinter" - ] ++ lib.optionals isPy3k [ - "tkinter" - ]; - imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; - in '' - echo "Testing whether we can import modules" - $out/bin/${executable} -c '${imports}' - ''; + installCheckPhase = + let + modules = [ + "ssl" + "sys" + "curses" + ] ++ lib.optionals (!isPy3k) [ "Tkinter" ] ++ lib.optionals isPy3k [ "tkinter" ]; + imports = lib.concatMapStringsSep "; " (x: "import ${x}") modules; + in + '' + echo "Testing whether we can import modules" + $out/bin/${executable} -c '${imports}' + ''; setupHook = python-setup-hook sitePackages; diff --git a/pkgs/by-name/py/python/python-modules/aiohttp/default.nix b/pkgs/by-name/py/python/python-modules/aiohttp/default.nix index e46b598..ddd1710 100644 --- a/pkgs/by-name/py/python/python-modules/aiohttp/default.nix +++ b/pkgs/by-name/py/python/python-modules/aiohttp/default.nix @@ -1,30 +1,31 @@ -{ lib -, stdenv -, buildPythonPackage -, pythonOlder -, fetchFromGitHub -, substituteAll -, llhttp -# build_requires -, cython -, setuptools -# install_requires -, attrs -, multidict -, async-timeout -, yarl -, frozenlist -, aiosignal -, aiodns -, brotli -# tests_require -, freezegun -, gunicorn -, pytest-mock -, pytest7CheckHook -, python-on-whales -, re-assert -, trustme +{ + lib, + stdenv, + buildPythonPackage, + pythonOlder, + fetchFromGitHub, + substituteAll, + llhttp, + # build_requires + cython, + setuptools, + # install_requires + attrs, + multidict, + async-timeout, + yarl, + frozenlist, + aiosignal, + aiodns, + brotli, + # tests_require + freezegun, + gunicorn, + pytest-mock, + pytest7CheckHook, + python-on-whales, + re-assert, + trustme, }: buildPythonPackage rec { @@ -78,40 +79,43 @@ buildPythonPackage rec { ]; # NOTE: pytest-xdist cannot be added because it is flaky. See https://github.com/NixOS/nixpkgs/issues/230597 for more info. - nativeCheckInputs = [ - freezegun - gunicorn - pytest-mock - pytest7CheckHook - python-on-whales - re-assert - ] ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [ - # Optional test dependency. Depends indirectly on pyopenssl, which is - # broken on aarch64-darwin. - trustme - ]; + nativeCheckInputs = + [ + freezegun + gunicorn + pytest-mock + pytest7CheckHook + python-on-whales + re-assert + ] + ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [ + # Optional test dependency. Depends indirectly on pyopenssl, which is + # broken on aarch64-darwin. + trustme + ]; - disabledTests = [ - # Disable tests that require network access - "test_client_session_timeout_zero" - "test_mark_formdata_as_processed" - "test_requote_redirect_url_default" - # Disable tests that trigger deprecation warnings in pytest - "test_async_with_session" - "test_session_close_awaitable" - "test_close_run_until_complete_not_deprecated" - # https://github.com/aio-libs/aiohttp/issues/7130 - "test_static_file_if_none_match" - "test_static_file_if_match" - "test_static_file_if_modified_since_past_date" - # don't run benchmarks - "test_import_time" - ] ++ lib.optionals stdenv.is32bit [ - "test_cookiejar" - ] ++ lib.optionals stdenv.isDarwin [ - "test_addresses" # https://github.com/aio-libs/aiohttp/issues/3572, remove >= v4.0.0 - "test_close" - ]; + disabledTests = + [ + # Disable tests that require network access + "test_client_session_timeout_zero" + "test_mark_formdata_as_processed" + "test_requote_redirect_url_default" + # Disable tests that trigger deprecation warnings in pytest + "test_async_with_session" + "test_session_close_awaitable" + "test_close_run_until_complete_not_deprecated" + # https://github.com/aio-libs/aiohttp/issues/7130 + "test_static_file_if_none_match" + "test_static_file_if_match" + "test_static_file_if_modified_since_past_date" + # don't run benchmarks + "test_import_time" + ] + ++ lib.optionals stdenv.is32bit [ "test_cookiejar" ] + ++ lib.optionals stdenv.isDarwin [ + "test_addresses" # https://github.com/aio-libs/aiohttp/issues/3572, remove >= v4.0.0 + "test_close" + ]; disabledTestPaths = [ "tests/test_proxy_functional.py" # FIXME package proxy.py @@ -120,13 +124,15 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; # aiohttp in current folder shadows installed version - preCheck = '' - rm -r aiohttp - touch tests/data.unknown_mime_type # has to be modified after 1 Jan 1990 - '' + lib.optionalString stdenv.isDarwin '' - # Work around "OSError: AF_UNIX path too long" - export TMPDIR="/tmp" - ''; + preCheck = + '' + rm -r aiohttp + touch tests/data.unknown_mime_type # has to be modified after 1 Jan 1990 + '' + + lib.optionalString stdenv.isDarwin '' + # Work around "OSError: AF_UNIX path too long" + export TMPDIR="/tmp" + ''; meta = with lib; { changelog = "https://github.com/aio-libs/aiohttp/blob/v${version}/CHANGES.rst"; diff --git a/pkgs/by-name/py/python/python-modules/alabaster/default.nix b/pkgs/by-name/py/python/python-modules/alabaster/default.nix index b2b77a3..3d13eae 100644 --- a/pkgs/by-name/py/python/python-modules/alabaster/default.nix +++ b/pkgs/by-name/py/python/python-modules/alabaster/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pygments +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pygments, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/attrs/default.nix b/pkgs/by-name/py/python/python-modules/attrs/default.nix index 8e46432..6a9884b 100644 --- a/pkgs/by-name/py/python/python-modules/attrs/default.nix +++ b/pkgs/by-name/py/python/python-modules/attrs/default.nix @@ -1,9 +1,10 @@ -{ lib -, callPackage -, buildPythonPackage -, fetchPypi -, pythonOlder -, hatchling +{ + lib, + callPackage, + buildPythonPackage, + fetchPypi, + pythonOlder, + hatchling, }: buildPythonPackage rec { @@ -26,9 +27,7 @@ buildPythonPackage rec { substituteAllInPlace pyproject.toml ''; - nativeBuildInputs = [ - hatchling - ]; + nativeBuildInputs = [ hatchling ]; outputs = [ "out" @@ -41,9 +40,7 @@ buildPythonPackage rec { cp -R conftest.py tests $testout ''; - pythonImportsCheck = [ - "attr" - ]; + pythonImportsCheck = [ "attr" ]; # pytest depends on attrs, so we can't do this out-of-the-box. # Instead, we do this as a passthru.tests test. diff --git a/pkgs/by-name/py/python/python-modules/attrs/tests.nix b/pkgs/by-name/py/python/python-modules/attrs/tests.nix index 2614716..d657ba1 100644 --- a/pkgs/by-name/py/python/python-modules/attrs/tests.nix +++ b/pkgs/by-name/py/python/python-modules/attrs/tests.nix @@ -1,7 +1,8 @@ -{ buildPythonPackage -, pytestCheckHook -, attrs -, hypothesis +{ + buildPythonPackage, + pytestCheckHook, + attrs, + hypothesis, }: buildPythonPackage { diff --git a/pkgs/by-name/py/python/python-modules/babel/default.nix b/pkgs/by-name/py/python/python-modules/babel/default.nix index 2e2a1a6..3bd0b83 100644 --- a/pkgs/by-name/py/python/python-modules/babel/default.nix +++ b/pkgs/by-name/py/python/python-modules/babel/default.nix @@ -1,18 +1,19 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy -, pythonAtLeast -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + isPyPy, + pythonAtLeast, + pythonOlder, -# build-system -, setuptools + # build-system + setuptools, -# tests -, freezegun -, pytestCheckHook -, pytz -, tzdata + # tests + freezegun, + pytestCheckHook, + pytz, + tzdata, }: buildPythonPackage rec { @@ -28,13 +29,9 @@ buildPythonPackage rec { hash = "sha256-aRmGfbA2OYuiHrXHoPayirjLw656c6ROvjSudKTn02M="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ - pytz - ]; + propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ pytz ]; # including backports.zoneinfo for python<3.9 yields infinite recursion doCheck = pythonAtLeast "3.9"; @@ -44,9 +41,7 @@ buildPythonPackage rec { pytestCheckHook # https://github.com/python-babel/babel/issues/988#issuecomment-1521765563 pytz - ] ++ lib.optionals isPyPy [ - tzdata - ]; + ] ++ lib.optionals isPyPy [ tzdata ]; disabledTests = [ # fails on days switching from and to daylight saving time in EST diff --git a/pkgs/by-name/py/python/python-modules/backports-zoneinfo/default.nix b/pkgs/by-name/py/python/python-modules/backports-zoneinfo/default.nix index ff51968..a27197d 100644 --- a/pkgs/by-name/py/python/python-modules/backports-zoneinfo/default.nix +++ b/pkgs/by-name/py/python/python-modules/backports-zoneinfo/default.nix @@ -1,13 +1,16 @@ -{ lib, buildPythonPackage, fetchFromGitHub -, pythonAtLeast -, pythonOlder -, python -, substituteAll -, importlib-resources -, tzdata -, hypothesis -, pytestCheckHook -, fetchpatch +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonAtLeast, + pythonOlder, + python, + substituteAll, + importlib-resources, + tzdata, + hypothesis, + pytestCheckHook, + fetchpatch, }: buildPythonPackage rec { @@ -50,11 +53,7 @@ buildPythonPackage rec { }) ]; - propagatedBuildInputs = [ - tzdata - ] ++ lib.optionals (pythonOlder "3.7") [ - importlib-resources - ]; + propagatedBuildInputs = [ tzdata ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ]; pythonImportsCheck = [ "backports.zoneinfo" ]; diff --git a/pkgs/by-name/py/python/python-modules/bootstrap/build/default.nix b/pkgs/by-name/py/python/python-modules/bootstrap/build/default.nix index f4e49bd..2101ee0 100644 --- a/pkgs/by-name/py/python/python-modules/bootstrap/build/default.nix +++ b/pkgs/by-name/py/python/python-modules/bootstrap/build/default.nix @@ -1,46 +1,52 @@ -{ lib -, stdenv -, python -, build -, flit-core -, installer -, packaging -, pyproject-hooks -, tomli -, makeWrapper +{ + lib, + stdenv, + python, + build, + flit-core, + installer, + packaging, + pyproject-hooks, + tomli, + makeWrapper, }: let - buildBootstrapPythonModule = basePackage: attrs: stdenv.mkDerivation ({ - pname = "${python.libPrefix}-bootstrap-${basePackage.pname}"; - inherit (basePackage) version src meta; + buildBootstrapPythonModule = + basePackage: attrs: + stdenv.mkDerivation ( + { + pname = "${python.libPrefix}-bootstrap-${basePackage.pname}"; + inherit (basePackage) version src meta; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper ]; - buildPhase = '' - runHook preBuild + buildPhase = '' + runHook preBuild - PYTHONPATH="${flit-core}/${python.sitePackages}" \ - ${python.interpreter} -m flit_core.wheel + PYTHONPATH="${flit-core}/${python.sitePackages}" \ + ${python.interpreter} -m flit_core.wheel - runHook postBuild - ''; + runHook postBuild + ''; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - PYTHONPATH="${installer}/${python.sitePackages}" \ - ${python.interpreter} -m installer \ - --destdir "$out" --prefix "" dist/*.whl + PYTHONPATH="${installer}/${python.sitePackages}" \ + ${python.interpreter} -m installer \ + --destdir "$out" --prefix "" dist/*.whl - runHook postInstall - ''; - } // attrs); + runHook postInstall + ''; + } + // attrs + ); - bootstrap-packaging = buildBootstrapPythonModule packaging {}; + bootstrap-packaging = buildBootstrapPythonModule packaging { }; - bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks {}; + bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks { }; - bootstrap-tomli = buildBootstrapPythonModule tomli {}; + bootstrap-tomli = buildBootstrapPythonModule tomli { }; sitePkgs = python.sitePackages; in diff --git a/pkgs/by-name/py/python/python-modules/bootstrap/flit-core/default.nix b/pkgs/by-name/py/python/python-modules/bootstrap/flit-core/default.nix index 43fec03..d348b1f 100644 --- a/pkgs/by-name/py/python/python-modules/bootstrap/flit-core/default.nix +++ b/pkgs/by-name/py/python/python-modules/bootstrap/flit-core/default.nix @@ -1,12 +1,18 @@ -{ lib -, stdenv -, python -, flit-core +{ + lib, + stdenv, + python, + flit-core, }: stdenv.mkDerivation rec { pname = "${python.libPrefix}-bootstrap-${flit-core.pname}"; - inherit (flit-core) version src patches meta; + inherit (flit-core) + version + src + patches + meta + ; sourceRoot = "${src.name}/flit_core"; diff --git a/pkgs/by-name/py/python/python-modules/bootstrap/installer/default.nix b/pkgs/by-name/py/python/python-modules/bootstrap/installer/default.nix index a3944ba..454ec2a 100644 --- a/pkgs/by-name/py/python/python-modules/bootstrap/installer/default.nix +++ b/pkgs/by-name/py/python/python-modules/bootstrap/installer/default.nix @@ -1,13 +1,19 @@ -{ lib -, stdenv -, python -, flit-core -, installer +{ + lib, + stdenv, + python, + flit-core, + installer, }: stdenv.mkDerivation { pname = "${python.libPrefix}-bootstrap-${installer.pname}"; - inherit (installer) version src patches meta; + inherit (installer) + version + src + patches + meta + ; buildPhase = '' runHook preBuild diff --git a/pkgs/by-name/py/python/python-modules/bootstrap/packaging/default.nix b/pkgs/by-name/py/python/python-modules/bootstrap/packaging/default.nix index f8a10d4..8f429e5 100644 --- a/pkgs/by-name/py/python/python-modules/bootstrap/packaging/default.nix +++ b/pkgs/by-name/py/python/python-modules/bootstrap/packaging/default.nix @@ -1,8 +1,9 @@ -{ stdenv -, python -, flit-core -, installer -, packaging +{ + stdenv, + python, + flit-core, + installer, + packaging, }: stdenv.mkDerivation { diff --git a/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix b/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix index 9d246d3..53c0280 100644 --- a/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix +++ b/pkgs/by-name/py/python/python-modules/brotlicffi/default.nix @@ -1,9 +1,10 @@ -{ lib -, fetchFromGitHub -, buildPythonPackage -, pythonOlder -, cffi -, brotli +{ + lib, + fetchFromGitHub, + buildPythonPackage, + pythonOlder, + cffi, + brotli, }: buildPythonPackage rec { @@ -19,17 +20,11 @@ buildPythonPackage rec { sha256 = "sha256-oW4y1WBJ7+4XwNwwSSR0qUqN03cZYXUYQ6EAwce9dzI="; }; - buildInputs = [ - brotli - ]; + buildInputs = [ brotli ]; - propagatedNativeBuildInputs = [ - cffi - ]; + propagatedNativeBuildInputs = [ cffi ]; - propagatedBuildInputs = [ - cffi - ]; + propagatedBuildInputs = [ cffi ]; preBuild = '' export USE_SHARED_BROTLI=1 diff --git a/pkgs/by-name/py/python/python-modules/build/default.nix b/pkgs/by-name/py/python/python-modules/build/default.nix index 4eaace8..68bfb69 100644 --- a/pkgs/by-name/py/python/python-modules/build/default.nix +++ b/pkgs/by-name/py/python/python-modules/build/default.nix @@ -1,12 +1,13 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchFromGitHub -, flit-core -, packaging -, pythonOlder -, pyproject-hooks -, tomli +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + flit-core, + packaging, + pythonOlder, + pyproject-hooks, + tomli, # for passthru.tests # , filelock # , pytest-mock @@ -36,16 +37,12 @@ buildPythonPackage rec { sed -i '/importlib-metadata >= 4.6/d' pyproject.toml ''; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; propagatedBuildInputs = [ packaging pyproject-hooks - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; # We need to disable tests because this package is part of the bootstrap chain # and its test dependencies cannot be built yet when this is being built. @@ -94,9 +91,7 @@ buildPythonPackage rec { # }; # }; - pythonImportsCheck = [ - "build" - ]; + pythonImportsCheck = [ "build" ]; meta = with lib; { mainProgram = "pyproject-build"; diff --git a/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix b/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix index 5fc3eab..cc2b5b5 100644 --- a/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix +++ b/pkgs/by-name/py/python/python-modules/buildcatrust/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pytestCheckHook, }: buildPythonPackage rec { @@ -15,13 +16,9 @@ buildPythonPackage rec { hash = "sha256-Ac10CZdihFBmr5LE6xFKx4+zr2n5nyR23px6N4vN05M="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; disabledTestPaths = [ # Non-hermetic, needs internet access (e.g. attempts to retrieve NSS store). diff --git a/pkgs/by-name/py/python/python-modules/calver/default.nix b/pkgs/by-name/py/python/python-modules/calver/default.nix index 4b400f2..5286327 100644 --- a/pkgs/by-name/py/python/python-modules/calver/default.nix +++ b/pkgs/by-name/py/python/python-modules/calver/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchFromGitHub -, pretend -, pytestCheckHook +{ + lib, + buildPythonPackage, + pythonOlder, + fetchFromGitHub, + pretend, + pytestCheckHook, }: let @@ -45,4 +46,4 @@ let }; }; in - self +self diff --git a/pkgs/by-name/py/python/python-modules/certifi/default.nix b/pkgs/by-name/py/python/python-modules/certifi/default.nix index 73492ba..81c0839 100644 --- a/pkgs/by-name/py/python/python-modules/certifi/default.nix +++ b/pkgs/by-name/py/python/python-modules/certifi/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, cacert -, pythonOlder -, fetchFromGitHub -, setuptools -, pytestCheckHook +{ + lib, + buildPythonPackage, + cacert, + pythonOlder, + fetchFromGitHub, + setuptools, + pytestCheckHook, }: buildPythonPackage rec { @@ -32,22 +33,16 @@ buildPythonPackage rec { ln -snvf "${cacert}/etc/ssl/certs/ca-bundle.crt" "certifi/cacert.pem" ''; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; propagatedNativeBuildInputs = [ # propagate cacerts setup-hook to set up `NIX_SSL_CERT_FILE` cacert ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "certifi" - ]; + pythonImportsCheck = [ "certifi" ]; meta = with lib; { homepage = "https://github.com/certifi/python-certifi"; diff --git a/pkgs/by-name/py/python/python-modules/cffi/default.nix b/pkgs/by-name/py/python/python-modules/cffi/default.nix index 7b2547a..7d03ab8 100644 --- a/pkgs/by-name/py/python/python-modules/cffi/default.nix +++ b/pkgs/by-name/py/python/python-modules/cffi/default.nix @@ -1,83 +1,82 @@ -{ lib -, stdenv -, buildPythonPackage -, isPyPy -, fetchPypi -, setuptools -, pytestCheckHook -, libffi -, pkg-config -, pycparser -, pythonAtLeast +{ + lib, + stdenv, + buildPythonPackage, + isPyPy, + fetchPypi, + setuptools, + pytestCheckHook, + libffi, + pkg-config, + pycparser, + pythonAtLeast, }: -if isPyPy then null else buildPythonPackage rec { - pname = "cffi"; - version = "1.16.0"; - pyproject = true; +if isPyPy then + null +else + buildPythonPackage rec { + pname = "cffi"; + version = "1.16.0"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-vLPvQ+WGZbvaL7GYaY/K5ndkg+DEpjGqVkeAbCXgLMA="; - }; + src = fetchPypi { + inherit pname version; + hash = "sha256-vLPvQ+WGZbvaL7GYaY/K5ndkg+DEpjGqVkeAbCXgLMA="; + }; - patches = [ - # - # Trusts the libffi library inside of nixpkgs on Apple devices. - # - # Based on some analysis I did: - # - # https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk - # - # I believe that libffi already contains the code from Apple's fork that is - # deemed safe to trust in cffi. - # - ./darwin-use-libffi-closures.diff - ] ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") [ - # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests - # to run and pass when cffi is built with newer versions of clang: - # - testing/cffi1/test_verify1.py::test_enum_usage - # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument - ./clang-pointer-substraction-warning.diff - ]; + patches = + [ + # + # Trusts the libffi library inside of nixpkgs on Apple devices. + # + # Based on some analysis I did: + # + # https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk + # + # I believe that libffi already contains the code from Apple's fork that is + # deemed safe to trust in cffi. + # + ./darwin-use-libffi-closures.diff + ] + ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") [ + # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests + # to run and pass when cffi is built with newer versions of clang: + # - testing/cffi1/test_verify1.py::test_enum_usage + # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument + ./clang-pointer-substraction-warning.diff + ]; - postPatch = lib.optionalString stdenv.isDarwin '' - # Remove setup.py impurities - substituteInPlace setup.py \ - --replace "'-iwithsysroot/usr/include/ffi'" "" \ - --replace "'/usr/include/ffi'," "" \ - --replace '/usr/include/libffi' '${lib.getDev libffi}/include' - ''; + postPatch = lib.optionalString stdenv.isDarwin '' + # Remove setup.py impurities + substituteInPlace setup.py \ + --replace "'-iwithsysroot/usr/include/ffi'" "" \ + --replace "'/usr/include/ffi'," "" \ + --replace '/usr/include/libffi' '${lib.getDev libffi}/include' + ''; - nativeBuildInputs = [ - pkg-config - setuptools - ]; + nativeBuildInputs = [ + pkg-config + setuptools + ]; - buildInputs = [ - libffi - ]; + buildInputs = [ libffi ]; - propagatedBuildInputs = [ - pycparser - ]; + propagatedBuildInputs = [ pycparser ]; - # The tests use -Werror but with python3.6 clang detects some unreachable code. - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang - "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing"; + # The tests use -Werror but with python3.6 clang detects some unreachable code. + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing"; - doCheck = !stdenv.hostPlatform.isMusl; + doCheck = !stdenv.hostPlatform.isMusl; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - meta = with lib; { - changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}"; - description = "Foreign Function Interface for Python calling C code"; - downloadPage = "https://github.com/python-cffi/cffi"; - homepage = "https://cffi.readthedocs.org/"; - license = licenses.mit; - maintainers = teams.python.members; - }; -} + meta = with lib; { + changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}"; + description = "Foreign Function Interface for Python calling C code"; + downloadPage = "https://github.com/python-cffi/cffi"; + homepage = "https://cffi.readthedocs.org/"; + license = licenses.mit; + maintainers = teams.python.members; + }; + } diff --git a/pkgs/by-name/py/python/python-modules/chardet/default.nix b/pkgs/by-name/py/python/python-modules/chardet/default.nix index f0170eb..c4759f3 100644 --- a/pkgs/by-name/py/python/python-modules/chardet/default.nix +++ b/pkgs/by-name/py/python/python-modules/chardet/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hypothesis -, pythonOlder -, pytestCheckHook -, setuptools +{ + lib, + buildPythonPackage, + fetchPypi, + hypothesis, + pythonOlder, + pytestCheckHook, + setuptools, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-Gztv9HmoxBS8P6LAhSmVaVxKAm3NbQYzst0JLKOcHPc="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; nativeCheckInputs = [ hypothesis diff --git a/pkgs/by-name/py/python/python-modules/charset-normalizer/default.nix b/pkgs/by-name/py/python/python-modules/charset-normalizer/default.nix index 2a6a13d..90abf29 100644 --- a/pkgs/by-name/py/python/python-modules/charset-normalizer/default.nix +++ b/pkgs/by-name/py/python/python-modules/charset-normalizer/default.nix @@ -1,10 +1,11 @@ -{ lib -, aiohttp -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook -, pythonOlder -, requests +{ + lib, + aiohttp, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + pythonOlder, + requests, }: buildPythonPackage rec { @@ -26,15 +27,13 @@ buildPythonPackage rec { --replace " --cov=charset_normalizer --cov-report=term-missing" "" ''; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "charset_normalizer" - ]; + pythonImportsCheck = [ "charset_normalizer" ]; - passthru.tests = { inherit aiohttp requests; }; + passthru.tests = { + inherit aiohttp requests; + }; meta = with lib; { description = "Python module for encoding and language detection"; diff --git a/pkgs/by-name/py/python/python-modules/cython/0.nix b/pkgs/by-name/py/python/python-modules/cython/0.nix index e0b6c02..7c04256 100644 --- a/pkgs/by-name/py/python/python-modules/cython/0.nix +++ b/pkgs/by-name/py/python/python-modules/cython/0.nix @@ -1,29 +1,37 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, fetchpatch -, setuptools -, python -, pkg-config -, gdb -, numpy -, ncurses +{ + lib, + stdenv, + buildPythonPackage, + fetchPypi, + fetchpatch, + setuptools, + python, + pkg-config, + gdb, + numpy, + ncurses, }: let - excludedTests = [ "reimport_from_subinterpreter" ] + excludedTests = + [ "reimport_from_subinterpreter" ] # cython's testsuite is not working very well with libc++ # We are however optimistic about things outside of testsuite still working - ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ] + ++ lib.optionals (stdenv.cc.isClang or false) [ + "cpdef_extern_func" + "libcpp_algo" + ] # Some tests in the test suite isn't working on aarch64. Disable them for # now until upstream finds a workaround. # Upstream issue here: https://github.com/cython/cython/issues/2308 ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ] - ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ] - ; + ++ lib.optionals stdenv.isi686 [ + "future_division" + "overflow_check_longlong" + ]; -in buildPythonPackage rec { +in +buildPythonPackage rec { pname = "cython"; version = "0.29.36"; pyproject = true; @@ -40,7 +48,9 @@ in buildPythonPackage rec { ]; nativeCheckInputs = [ - gdb numpy ncurses + gdb + numpy + ncurses ]; LC_ALL = "en_US.UTF-8"; @@ -68,8 +78,11 @@ in buildPythonPackage rec { export HOME="$NIX_BUILD_TOP" ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \ --no-code-style \ - ${lib.optionalString (builtins.length excludedTests != 0) - ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''} + ${ + lib.optionalString ( + builtins.length excludedTests != 0 + ) ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"'' + } ''; # https://github.com/cython/cython/issues/2785 diff --git a/pkgs/by-name/py/python/python-modules/cython/default.nix b/pkgs/by-name/py/python/python-modules/cython/default.nix index 2062ae0..0c3ca86 100644 --- a/pkgs/by-name/py/python/python-modules/cython/default.nix +++ b/pkgs/by-name/py/python/python-modules/cython/default.nix @@ -1,28 +1,36 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, setuptools -, python -, pkg-config -, gdb -, numpy -, ncurses +{ + lib, + stdenv, + buildPythonPackage, + fetchPypi, + setuptools, + python, + pkg-config, + gdb, + numpy, + ncurses, }: let - excludedTests = [ "reimport_from_subinterpreter" ] + excludedTests = + [ "reimport_from_subinterpreter" ] # cython's testsuite is not working very well with libc++ # We are however optimistic about things outside of testsuite still working - ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ] + ++ lib.optionals (stdenv.cc.isClang or false) [ + "cpdef_extern_func" + "libcpp_algo" + ] # Some tests in the test suite isn't working on aarch64. Disable them for # now until upstream finds a workaround. # Upstream issue here: https://github.com/cython/cython/issues/2308 ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ] - ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ] - ; + ++ lib.optionals stdenv.isi686 [ + "future_division" + "overflow_check_longlong" + ]; -in buildPythonPackage rec { +in +buildPythonPackage rec { pname = "cython"; version = "3.0.9"; pyproject = true; @@ -39,7 +47,9 @@ in buildPythonPackage rec { ]; nativeCheckInputs = [ - gdb numpy ncurses + gdb + numpy + ncurses ]; env.LC_ALL = "en_US.UTF-8"; @@ -48,8 +58,11 @@ in buildPythonPackage rec { export HOME="$NIX_BUILD_TOP" ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \ --no-code-style \ - ${lib.optionalString (builtins.length excludedTests != 0) - ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''} + ${ + lib.optionalString ( + builtins.length excludedTests != 0 + ) ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"'' + } ''; # https://github.com/cython/cython/issues/2785 diff --git a/pkgs/by-name/py/python/python-modules/docutils/default.nix b/pkgs/by-name/py/python/python-modules/docutils/default.nix index 136f679..a3baad0 100644 --- a/pkgs/by-name/py/python/python-modules/docutils/default.nix +++ b/pkgs/by-name/py/python/python-modules/docutils/default.nix @@ -1,9 +1,10 @@ -{ stdenv -, lib -, fetchPypi -, buildPythonPackage -, python -, pythonOlder +{ + stdenv, + lib, + fetchPypi, + buildPythonPackage, + python, + pythonOlder, }: buildPythonPackage rec { @@ -21,9 +22,11 @@ buildPythonPackage rec { # Only Darwin needs LANG, but we could set it in general. # It's done here conditionally to prevent mass-rebuilds. - checkPhase = lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + '' - ${python.interpreter} test/alltests.py - ''; + checkPhase = + lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + + '' + ${python.interpreter} test/alltests.py + ''; # Create symlinks lacking a ".py" suffix, many programs depend on these names postFixup = '' @@ -35,7 +38,12 @@ buildPythonPackage rec { meta = with lib; { description = "Python Documentation Utilities"; homepage = "http://docutils.sourceforge.net/"; - license = with licenses; [ publicDomain bsd2 psfl gpl3Plus ]; + license = with licenses; [ + publicDomain + bsd2 + psfl + gpl3Plus + ]; maintainers = with maintainers; [ AndersonTorres ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/editables/default.nix b/pkgs/by-name/py/python/python-modules/editables/default.nix index f3db3a9..06b9355 100644 --- a/pkgs/by-name/py/python/python-modules/editables/default.nix +++ b/pkgs/by-name/py/python/python-modules/editables/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pytestCheckHook, }: buildPythonPackage rec { @@ -15,13 +16,9 @@ buildPythonPackage rec { hash = "sha256-MJYn2bXErcDmaNjG+nusG6fIxdQVwtJ/YPCB+OgNHeI="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; # Tests not included in archive. doCheck = false; diff --git a/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix b/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix index 2dca56a..cb1577e 100644 --- a/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix +++ b/pkgs/by-name/py/python/python-modules/exceptiongroup/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, flit-scm -, pytestCheckHook -, pythonOlder -, pythonAtLeast +{ + lib, + buildPythonPackage, + fetchFromGitHub, + flit-scm, + pytestCheckHook, + pythonOlder, + pythonAtLeast, }: buildPythonPackage rec { @@ -21,25 +22,23 @@ buildPythonPackage rec { hash = "sha256-iGeaRVJeFAWfJpwr7N4kST7d8YxpX3WgDqQemlR0cLU="; }; - nativeBuildInputs = [ - flit-scm - ]; + nativeBuildInputs = [ flit-scm ]; doCheck = pythonAtLeast "3.11"; # infinite recursion with pytest - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - disabledTests = if pythonAtLeast "3.12" then [ - # https://github.com/agronholm/exceptiongroup/issues/116 - "test_deep_split" - "test_deep_subgroup" - ] else null; + disabledTests = + if pythonAtLeast "3.12" then + [ + # https://github.com/agronholm/exceptiongroup/issues/116 + "test_deep_split" + "test_deep_subgroup" + ] + else + null; - pythonImportsCheck = [ - "exceptiongroup" - ]; + pythonImportsCheck = [ "exceptiongroup" ]; meta = with lib; { description = "Backport of PEP 654 (exception groups)"; diff --git a/pkgs/by-name/py/python/python-modules/execnet/default.nix b/pkgs/by-name/py/python/python-modules/execnet/default.nix index eb184c1..1c08293 100644 --- a/pkgs/by-name/py/python/python-modules/execnet/default.nix +++ b/pkgs/by-name/py/python/python-modules/execnet/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPythonPackage -, isPyPy -, fetchPypi -, hatchling -, hatch-vcs -, gevent -, pytestCheckHook +{ + lib, + buildPythonPackage, + isPyPy, + fetchPypi, + hatchling, + hatch-vcs, + gevent, + pytestCheckHook, }: buildPythonPackage rec { @@ -18,15 +19,17 @@ buildPythonPackage rec { hash = "sha256-zFm8RCN0L9ca0icSLrDdRNtR77PcQJW0WsmgjHcAlq8="; }; - postPatch = '' - # remove vbox tests - rm testing/test_termination.py - rm testing/test_channel.py - rm testing/test_xspec.py - rm testing/test_gateway.py - '' + lib.optionalString isPyPy '' - rm testing/test_multi.py - ''; + postPatch = + '' + # remove vbox tests + rm testing/test_termination.py + rm testing/test_channel.py + rm testing/test_xspec.py + rm testing/test_gateway.py + '' + + lib.optionalString isPyPy '' + rm testing/test_multi.py + ''; nativeBuildInputs = [ hatchling @@ -50,9 +53,7 @@ buildPythonPackage rec { pytestFlagsArray = [ "-vvv" ]; - pythonImportsCheck = [ - "execnet" - ]; + pythonImportsCheck = [ "execnet" ]; __darwinAllowLocalNetworking = true; diff --git a/pkgs/by-name/py/python/python-modules/fb-re2/default.nix b/pkgs/by-name/py/python/python-modules/fb-re2/default.nix index e5f4100..11defaf 100644 --- a/pkgs/by-name/py/python/python-modules/fb-re2/default.nix +++ b/pkgs/by-name/py/python/python-modules/fb-re2/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchpatch -, fetchPypi -, re2 +{ + lib, + buildPythonPackage, + fetchpatch, + fetchPypi, + re2, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/filelock/default.nix b/pkgs/by-name/py/python/python-modules/filelock/default.nix index b32335b..f0711c1 100644 --- a/pkgs/by-name/py/python/python-modules/filelock/default.nix +++ b/pkgs/by-name/py/python/python-modules/filelock/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hatch-vcs -, hatchling -, pytest-mock -, pytestCheckHook -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + hatch-vcs, + hatchling, + pytest-mock, + pytestCheckHook, + pythonOlder, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/flit-core/default.nix b/pkgs/by-name/py/python/python-modules/flit-core/default.nix index 9f728cf..2457768 100644 --- a/pkgs/by-name/py/python/python-modules/flit-core/default.nix +++ b/pkgs/by-name/py/python/python-modules/flit-core/default.nix @@ -1,6 +1,7 @@ -{ lib -, buildPythonPackage -, flit +{ + lib, + buildPythonPackage, + flit, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/flit/default.nix b/pkgs/by-name/py/python/python-modules/flit/default.nix index b623d1e..df53e35 100644 --- a/pkgs/by-name/py/python/python-modules/flit/default.nix +++ b/pkgs/by-name/py/python/python-modules/flit/default.nix @@ -1,13 +1,14 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, docutils -, requests -, pytestCheckHook -, testpath -, responses -, flit-core -, tomli-w +{ + lib, + buildPythonPackage, + fetchFromGitHub, + docutils, + requests, + pytestCheckHook, + testpath, + responses, + flit-core, + tomli-w, }: # Flit is actually an application to build universal wheels. @@ -27,9 +28,7 @@ buildPythonPackage rec { hash = "sha256-yl2+PcKr7xRW4oIBWl+gzh/nKhSNu5GH9fWKRGgaNHU="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; propagatedBuildInputs = [ docutils @@ -38,7 +37,11 @@ buildPythonPackage rec { tomli-w ]; - nativeCheckInputs = [ pytestCheckHook testpath responses ]; + nativeCheckInputs = [ + pytestCheckHook + testpath + responses + ]; disabledTests = [ # needs some ini file. diff --git a/pkgs/by-name/py/python/python-modules/freezegun/default.nix b/pkgs/by-name/py/python/python-modules/freezegun/default.nix index 2279e70..ab170e3 100644 --- a/pkgs/by-name/py/python/python-modules/freezegun/default.nix +++ b/pkgs/by-name/py/python/python-modules/freezegun/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook -, python-dateutil -, pythonOlder -, setuptools +{ + lib, + buildPythonPackage, + fetchPypi, + pytestCheckHook, + python-dateutil, + pythonOlder, + setuptools, }: buildPythonPackage rec { @@ -19,21 +20,13 @@ buildPythonPackage rec { hash = "sha256-EJObC6D/Wtrs87BqXC9zBx2WeOUHxertsjx2HVasd0s="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - propagatedBuildInputs = [ - python-dateutil - ]; + propagatedBuildInputs = [ python-dateutil ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "freezegun" - ]; + pythonImportsCheck = [ "freezegun" ]; meta = with lib; { description = "Library that allows your Python tests to travel through time"; diff --git a/pkgs/by-name/py/python/python-modules/func-timeout/default.nix b/pkgs/by-name/py/python/python-modules/func-timeout/default.nix index 654b950..4c3c342 100644 --- a/pkgs/by-name/py/python/python-modules/func-timeout/default.nix +++ b/pkgs/by-name/py/python/python-modules/func-timeout/default.nix @@ -1,7 +1,8 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + pytestCheckHook, }: buildPythonPackage rec { @@ -15,9 +16,7 @@ buildPythonPackage rec { sha256 = "74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd"; }; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "func_timeout" ]; diff --git a/pkgs/by-name/py/python/python-modules/gevent/default.nix b/pkgs/by-name/py/python/python-modules/gevent/default.nix index fcc67d9..b307d95 100644 --- a/pkgs/by-name/py/python/python-modules/gevent/default.nix +++ b/pkgs/by-name/py/python/python-modules/gevent/default.nix @@ -1,20 +1,21 @@ -{ lib -, fetchPypi -, buildPythonPackage -, isPyPy -, python -, libev -, cffi -, cython -, greenlet -, importlib-metadata -, setuptools -, wheel -, zope-event -, zope-interface -, pythonOlder -, c-ares -, libuv +{ + lib, + fetchPypi, + buildPythonPackage, + isPyPy, + python, + libev, + cffi, + cython, + greenlet, + importlib-metadata, + setuptools, + wheel, + zope-event, + zope-interface, + pythonOlder, + c-ares, + libuv, # for passthru.tests # , dulwich @@ -39,9 +40,7 @@ buildPythonPackage rec { cython setuptools wheel - ] ++ lib.optionals (!isPyPy) [ - cffi - ]; + ] ++ lib.optionals (!isPyPy) [ cffi ]; buildInputs = [ libev @@ -53,9 +52,7 @@ buildPythonPackage rec { importlib-metadata zope-event zope-interface - ] ++ lib.optionals (!isPyPy) [ - greenlet - ]; + ] ++ lib.optionals (!isPyPy) [ greenlet ]; # Bunch of failures. doCheck = false; diff --git a/pkgs/by-name/py/python/python-modules/greenlet/default.nix b/pkgs/by-name/py/python/python-modules/greenlet/default.nix index 6839b23..5c41e88 100644 --- a/pkgs/by-name/py/python/python-modules/greenlet/default.nix +++ b/pkgs/by-name/py/python/python-modules/greenlet/default.nix @@ -1,62 +1,63 @@ -{ lib -, buildPythonPackage -, fetchPypi +{ + lib, + buildPythonPackage, + fetchPypi, -# build-system -, setuptools + # build-system + setuptools, -# tests -, objgraph -, psutil -, python -, unittestCheckHook + # tests + objgraph, + psutil, + python, + unittestCheckHook, }: -let greenlet = buildPythonPackage rec { - pname = "greenlet"; - version = "3.0.3"; - pyproject = true; +let + greenlet = buildPythonPackage rec { + pname = "greenlet"; + version = "3.0.3"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE="; - }; + src = fetchPypi { + inherit pname version; + hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE="; + }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - # tests in passthru, infinite recursion via objgraph/graphviz - doCheck = false; + # tests in passthru, infinite recursion via objgraph/graphviz + doCheck = false; - nativeCheckInputs = [ - objgraph - psutil - unittestCheckHook - ]; - - preCheck = '' - pushd ${placeholder "out"}/${python.sitePackages} - ''; - - unittestFlagsArray = [ - "greenlet.tests" - ]; - - postCheck = '' - popd - ''; - - passthru.tests.pytest = greenlet.overridePythonAttrs (_: { doCheck = true; }); - - meta = with lib; { - changelog = "https://github.com/python-greenlet/greenlet/blob/${version}/CHANGES.rst"; - homepage = "https://github.com/python-greenlet/greenlet"; - description = "Module for lightweight in-process concurrent programming"; - license = with licenses; [ - psfl # src/greenlet/slp_platformselect.h & files in src/greenlet/platform/ directory - mit + nativeCheckInputs = [ + objgraph + psutil + unittestCheckHook ]; + + preCheck = '' + pushd ${placeholder "out"}/${python.sitePackages} + ''; + + unittestFlagsArray = [ "greenlet.tests" ]; + + postCheck = '' + popd + ''; + + passthru.tests.pytest = greenlet.overridePythonAttrs (_: { + doCheck = true; + }); + + meta = with lib; { + changelog = "https://github.com/python-greenlet/greenlet/blob/${version}/CHANGES.rst"; + homepage = "https://github.com/python-greenlet/greenlet"; + description = "Module for lightweight in-process concurrent programming"; + license = with licenses; [ + psfl # src/greenlet/slp_platformselect.h & files in src/greenlet/platform/ directory + mit + ]; + }; }; -}; -in greenlet +in +greenlet diff --git a/pkgs/by-name/py/python/python-modules/hatch-vcs/default.nix b/pkgs/by-name/py/python/python-modules/hatch-vcs/default.nix index 2588482..0a7f422 100644 --- a/pkgs/by-name/py/python/python-modules/hatch-vcs/default.nix +++ b/pkgs/by-name/py/python/python-modules/hatch-vcs/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytestCheckHook -, pythonOlder -, git -, hatchling -, setuptools-scm +{ + lib, + buildPythonPackage, + fetchPypi, + pytestCheckHook, + pythonOlder, + git, + hatchling, + setuptools-scm, }: buildPythonPackage rec { @@ -21,9 +22,7 @@ buildPythonPackage rec { hash = "sha256-CTgQdI/gHbDUUfq88sGsJojK79Iy1O3pZwkLHBsH2fc="; }; - nativeBuildInputs = [ - hatchling - ]; + nativeBuildInputs = [ hatchling ]; propagatedBuildInputs = [ hatchling @@ -41,9 +40,7 @@ buildPythonPackage rec { "test_write" ]; - pythonImportsCheck = [ - "hatch_vcs" - ]; + pythonImportsCheck = [ "hatch_vcs" ]; meta = with lib; { changelog = "https://github.com/ofek/hatch-vcs/releases/tag/v${version}"; diff --git a/pkgs/by-name/py/python/python-modules/hatchling/default.nix b/pkgs/by-name/py/python/python-modules/hatchling/default.nix index 4d5d345..6a062d3 100644 --- a/pkgs/by-name/py/python/python-modules/hatchling/default.nix +++ b/pkgs/by-name/py/python/python-modules/hatchling/default.nix @@ -1,21 +1,22 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, -# runtime -, editables -, packaging -, pathspec -, pluggy -, tomli -, trove-classifiers + # runtime + editables, + packaging, + pathspec, + pluggy, + tomli, + trove-classifiers, -# tests -, build -, python -, requests -, virtualenv + # tests + build, + python, + requests, + virtualenv, }: buildPythonPackage rec { @@ -36,9 +37,7 @@ buildPythonPackage rec { pathspec pluggy trove-classifiers - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; pythonImportsCheck = [ "hatchling" @@ -71,6 +70,9 @@ buildPythonPackage rec { homepage = "https://hatch.pypa.io/latest/"; changelog = "https://github.com/pypa/hatch/releases/tag/hatchling-v${version}"; license = licenses.mit; - maintainers = with maintainers; [ hexa ofek ]; + maintainers = with maintainers; [ + hexa + ofek + ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/html5lib/default.nix b/pkgs/by-name/py/python/python-modules/html5lib/default.nix index b35cfee..0d294f9 100644 --- a/pkgs/by-name/py/python/python-modules/html5lib/default.nix +++ b/pkgs/by-name/py/python/python-modules/html5lib/default.nix @@ -1,12 +1,13 @@ -{ lib -, buildPythonPackage -, fetchPypi -, fetchpatch -, six -, webencodings -, mock -, pytest-expect -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + fetchpatch, + six, + webencodings, + mock, + pytest-expect, + pytestCheckHook, }: buildPythonPackage rec { @@ -51,6 +52,9 @@ buildPythonPackage rec { major web browsers. ''; license = lib.licenses.mit; - maintainers = with lib.maintainers; [ domenkozar prikhi ]; + maintainers = with lib.maintainers; [ + domenkozar + prikhi + ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/hypothesis/default.nix b/pkgs/by-name/py/python/python-modules/hypothesis/default.nix index 5cf3408..9b797ce 100644 --- a/pkgs/by-name/py/python/python-modules/hypothesis/default.nix +++ b/pkgs/by-name/py/python/python-modules/hypothesis/default.nix @@ -1,23 +1,24 @@ -{ lib -, buildPythonPackage -, isPyPy -, fetchFromGitHub -, setuptools -, attrs -, exceptiongroup -, pexpect -, doCheck ? true -, pytestCheckHook -, pytest-xdist -, python -, sortedcontainers -, stdenv -, pythonOlder -, sphinxHook -, sphinx-rtd-theme -, sphinx-hoverxref -, sphinx-codeautolink -, tzdata +{ + lib, + buildPythonPackage, + isPyPy, + fetchFromGitHub, + setuptools, + attrs, + exceptiongroup, + pexpect, + doCheck ? true, + pytestCheckHook, + pytest-xdist, + python, + sortedcontainers, + stdenv, + pythonOlder, + sphinxHook, + sphinx-rtd-theme, + sphinx-hoverxref, + sphinx-codeautolink, + tzdata, }: buildPythonPackage rec { @@ -49,24 +50,18 @@ buildPythonPackage rec { postUnpack = "sourceRoot=$sourceRoot/hypothesis-python"; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ attrs sortedcontainers - ] ++ lib.optionals (pythonOlder "3.11") [ - exceptiongroup - ]; + ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ]; nativeCheckInputs = [ pexpect pytest-xdist pytestCheckHook - ] ++ lib.optionals isPyPy [ - tzdata - ]; + ] ++ lib.optionals isPyPy [ tzdata ]; inherit doCheck; @@ -75,21 +70,21 @@ buildPythonPackage rec { rm tox.ini ''; - pytestFlagsArray = [ - "tests/cover" - ]; + pytestFlagsArray = [ "tests/cover" ]; - disabledTests = if (pythonOlder "3.10") then [ - # not sure why these tests fail with only 3.9 - # FileNotFoundError: [Errno 2] No such file or directory: 'git' - "test_observability" - "test_assume_has_status_reason" - "test_observability_captures_stateful_reprs" - ] else null; + disabledTests = + if (pythonOlder "3.10") then + [ + # not sure why these tests fail with only 3.9 + # FileNotFoundError: [Errno 2] No such file or directory: 'git' + "test_observability" + "test_assume_has_status_reason" + "test_observability_captures_stateful_reprs" + ] + else + null; - pythonImportsCheck = [ - "hypothesis" - ]; + pythonImportsCheck = [ "hypothesis" ]; passthru = { doc = stdenv.mkDerivation { @@ -119,7 +114,9 @@ buildPythonPackage rec { description = "Library for property based testing"; mainProgram = "hypothesis"; homepage = "https://github.com/HypothesisWorks/hypothesis"; - changelog = "https://hypothesis.readthedocs.io/en/latest/changes.html#v${lib.replaceStrings [ "." ] [ "-" ] version}"; + changelog = "https://hypothesis.readthedocs.io/en/latest/changes.html#v${ + lib.replaceStrings [ "." ] [ "-" ] version + }"; license = licenses.mpl20; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/by-name/py/python/python-modules/idna/default.nix b/pkgs/by-name/py/python/python-modules/idna/default.nix index 77aeb44..1839d86 100644 --- a/pkgs/by-name/py/python/python-modules/idna/default.nix +++ b/pkgs/by-name/py/python/python-modules/idna/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pytestCheckHook, }: buildPythonPackage rec { @@ -15,13 +16,9 @@ buildPythonPackage rec { hash = "sha256-ns270IOwZ5iuHoaty/6KsUec+GTk7jD+TkagA9Ekkco="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; meta = { homepage = "https://github.com/kjd/idna/"; diff --git a/pkgs/by-name/py/python/python-modules/imagesize/default.nix b/pkgs/by-name/py/python/python-modules/imagesize/default.nix index ab41410..826f78f 100644 --- a/pkgs/by-name/py/python/python-modules/imagesize/default.nix +++ b/pkgs/by-name/py/python/python-modules/imagesize/default.nix @@ -1,6 +1,7 @@ -{ lib -, buildPythonPackage -, fetchPypi +{ + lib, + buildPythonPackage, + fetchPypi, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/importlib-metadata/default.nix b/pkgs/by-name/py/python/python-modules/importlib-metadata/default.nix index 995d625..74bd8e7 100644 --- a/pkgs/by-name/py/python/python-modules/importlib-metadata/default.nix +++ b/pkgs/by-name/py/python/python-modules/importlib-metadata/default.nix @@ -1,12 +1,13 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, setuptools -, setuptools-scm -, typing-extensions -, toml -, zipp +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + setuptools, + setuptools-scm, + typing-extensions, + toml, + zipp, }: buildPythonPackage rec { @@ -30,21 +31,20 @@ buildPythonPackage rec { propagatedBuildInputs = [ toml zipp - ] ++ lib.optionals (pythonOlder "3.8") [ - typing-extensions - ]; + ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ]; # Cyclic dependencies due to pyflakefs doCheck = false; - pythonImportsCheck = [ - "importlib_metadata" - ]; + pythonImportsCheck = [ "importlib_metadata" ]; meta = with lib; { description = "Read metadata from Python packages"; homepage = "https://importlib-metadata.readthedocs.io/"; license = licenses.asl20; - maintainers = with maintainers; [ fab AndersonTorres ]; + maintainers = with maintainers; [ + fab + AndersonTorres + ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/iniconfig/default.nix b/pkgs/by-name/py/python/python-modules/iniconfig/default.nix index 2089385..8f037e2 100644 --- a/pkgs/by-name/py/python/python-modules/iniconfig/default.nix +++ b/pkgs/by-name/py/python/python-modules/iniconfig/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, substituteAll -, fetchPypi -# , hatch-vcs -, hatchling +{ + lib, + buildPythonPackage, + substituteAll, + fetchPypi, + # , hatch-vcs + hatchling, }: buildPythonPackage rec { @@ -16,9 +17,7 @@ buildPythonPackage rec { hash = "sha256-LZHhNb9y0xpBCxfBbaYQqCy1X2sEd9GpAhNLJKRVuLM="; }; - nativeBuildInputs = [ - hatchling - ]; + nativeBuildInputs = [ hatchling ]; patches = [ # Cannot use hatch-vcs, due to an inifinite recursion @@ -28,9 +27,7 @@ buildPythonPackage rec { }) ]; - pythonImportsCheck = [ - "iniconfig" - ]; + pythonImportsCheck = [ "iniconfig" ]; # Requires pytest, which in turn requires this package - causes infinite # recursion. See also: https://github.com/NixOS/nixpkgs/issues/63168 diff --git a/pkgs/by-name/py/python/python-modules/installer/default.nix b/pkgs/by-name/py/python/python-modules/installer/default.nix index a1d7038..5df37f3 100644 --- a/pkgs/by-name/py/python/python-modules/installer/default.nix +++ b/pkgs/by-name/py/python/python-modules/installer/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, fetchFromGitHub -, flit-core +{ + lib, + buildPythonPackage, + pythonAtLeast, + fetchFromGitHub, + flit-core, # for passthru.tests # , installer # , mock diff --git a/pkgs/by-name/py/python/python-modules/jaraco-itertools/default.nix b/pkgs/by-name/py/python/python-modules/jaraco-itertools/default.nix index 23722cc..07c1cd3 100644 --- a/pkgs/by-name/py/python/python-modules/jaraco-itertools/default.nix +++ b/pkgs/by-name/py/python/python-modules/jaraco-itertools/default.nix @@ -1,5 +1,12 @@ -{ lib, buildPythonPackage, fetchPypi, setuptools-scm -, inflect, more-itertools, six, pytest +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools-scm, + inflect, + more-itertools, + six, + pytest, }: buildPythonPackage rec { @@ -17,7 +24,11 @@ buildPythonPackage rec { nativeBuildInputs = [ setuptools-scm ]; - propagatedBuildInputs = [ inflect more-itertools six ]; + propagatedBuildInputs = [ + inflect + more-itertools + six + ]; nativeCheckInputs = [ pytest ]; # tests no longer available through pypi diff --git a/pkgs/by-name/py/python/python-modules/jinja2/default.nix b/pkgs/by-name/py/python/python-modules/jinja2/default.nix index 1c260e3..55acae1 100644 --- a/pkgs/by-name/py/python/python-modules/jinja2/default.nix +++ b/pkgs/by-name/py/python/python-modules/jinja2/default.nix @@ -1,17 +1,18 @@ -{ lib -, stdenv -, python -, buildPythonPackage -, pythonOlder -, fetchPypi -, babel -, markupsafe -, pytestCheckHook -, sphinxHook -, pallets-sphinx-themes -, setuptools -, sphinxcontrib-log-cabinet -, sphinx-issues +{ + lib, + stdenv, + python, + buildPythonPackage, + pythonOlder, + fetchPypi, + babel, + markupsafe, + pytestCheckHook, + sphinxHook, + pallets-sphinx-themes, + setuptools, + sphinxcontrib-log-cabinet, + sphinx-issues, }: buildPythonPackage rec { @@ -27,27 +28,19 @@ buildPythonPackage rec { hash = "sha256-rIvWVE1Lssl5K/OhWegLuo/afwfoG8Ou1WVDLVklupA="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - propagatedBuildInputs = [ - markupsafe - ]; + propagatedBuildInputs = [ markupsafe ]; passthru.optional-dependencies = { - i18n = [ - babel - ]; + i18n = [ babel ]; }; # Multiple tests run out of stack space on 32bit systems with python2. # See https://github.com/pallets/jinja/issues/1158 doCheck = !stdenv.is32bit; - nativeCheckInputs = [ - pytestCheckHook - ] ++ passthru.optional-dependencies.i18n; + nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.i18n; passthru.doc = stdenv.mkDerivation { # Forge look and feel of multi-output derivation as best as we can. diff --git a/pkgs/by-name/py/python/python-modules/lxml/default.nix b/pkgs/by-name/py/python/python-modules/lxml/default.nix index d1d7036..44078ad 100644 --- a/pkgs/by-name/py/python/python-modules/lxml/default.nix +++ b/pkgs/by-name/py/python/python-modules/lxml/default.nix @@ -1,17 +1,18 @@ -{ stdenv -, lib -, buildPythonPackage -, fetchFromGitHub +{ + stdenv, + lib, + buildPythonPackage, + fetchFromGitHub, -# build-system -, cython -, setuptools + # build-system + cython, + setuptools, -# native dependencies -, libxml2 -, libxslt -, zlib -, xcodebuild + # native dependencies + libxml2, + libxslt, + zlib, + xcodebuild, }: buildPythonPackage rec { @@ -32,9 +33,7 @@ buildPythonPackage rec { libxslt.dev cython setuptools - ] ++ lib.optionals stdenv.isDarwin [ - xcodebuild - ]; + ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ]; buildInputs = [ libxml2 libxslt diff --git a/pkgs/by-name/py/python/python-modules/markupsafe/default.nix b/pkgs/by-name/py/python/python-modules/markupsafe/default.nix index 60d2257..921d279 100644 --- a/pkgs/by-name/py/python/python-modules/markupsafe/default.nix +++ b/pkgs/by-name/py/python/python-modules/markupsafe/default.nix @@ -1,13 +1,14 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, -# build-system -, setuptools + # build-system + setuptools, -# tests -, pytestCheckHook + # tests + pytestCheckHook, # for passthru.tests # , jinja2 @@ -29,17 +30,11 @@ buildPythonPackage rec { hash = "sha256-0oPTeokLpMGuc/+t+ARkNcdue8Ike7tjwAvRpwnGVEs="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "markupsafe" - ]; + pythonImportsCheck = [ "markupsafe" ]; # passthru.tests = { # inherit @@ -51,7 +46,9 @@ buildPythonPackage rec { # }; meta = with lib; { - changelog = "https://markupsafe.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}"; + changelog = "https://markupsafe.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${ + replaceStrings [ "." ] [ "-" ] version + }"; description = "Implements a XML/HTML/XHTML Markup safe string"; homepage = "https://palletsprojects.com/p/markupsafe/"; license = licenses.bsd3; diff --git a/pkgs/by-name/py/python/python-modules/mkdocs/default.nix b/pkgs/by-name/py/python/python-modules/mkdocs/default.nix index a20958d..25005b5 100644 --- a/pkgs/by-name/py/python/python-modules/mkdocs/default.nix +++ b/pkgs/by-name/py/python/python-modules/mkdocs/default.nix @@ -1,36 +1,36 @@ { # eval time deps - lib -, buildPythonPackage -, fetchFromGitHub -, pythonAtLeast -, pythonOlder + lib, + buildPythonPackage, + fetchFromGitHub, + pythonAtLeast, + pythonOlder, -# buildtime -, hatchling + # buildtime + hatchling, -# runtime deps -, click -, ghp-import -, importlib-metadata -, jinja2 -, markdown -, markupsafe -, mergedeep -, packaging -, pathspec -, platformdirs -, pyyaml -, pyyaml-env-tag -, watchdog + # runtime deps + click, + ghp-import, + importlib-metadata, + jinja2, + markdown, + markupsafe, + mergedeep, + packaging, + pathspec, + platformdirs, + pyyaml, + pyyaml-env-tag, + watchdog, -# optional-dependencies -, babel -, setuptools + # optional-dependencies + babel, + setuptools, -# testing deps -, mock -, unittestCheckHook + # testing deps + mock, + unittestCheckHook, }: buildPythonPackage rec { @@ -47,9 +47,7 @@ buildPythonPackage rec { hash = "sha256-axH4AeL+osxoUIVJbW6YjiTfUr6TAXMB4raZ3oO0fyw="; }; - nativeBuildInputs = [ - hatchling - ]; + nativeBuildInputs = [ hatchling ]; propagatedBuildInputs = [ click @@ -64,16 +62,10 @@ buildPythonPackage rec { pyyaml pyyaml-env-tag watchdog - ] ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata - ]; + ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; passthru.optional-dependencies = { - i18n = [ - babel - ] ++ lib.optionals (pythonAtLeast "3.12") [ - setuptools - ]; + i18n = [ babel ] ++ lib.optionals (pythonAtLeast "3.12") [ setuptools ]; }; nativeCheckInputs = [ @@ -81,7 +73,12 @@ buildPythonPackage rec { mock ] ++ passthru.optional-dependencies.i18n; - unittestFlagsArray = [ "-v" "-p" "'*tests.py'" "mkdocs" ]; + unittestFlagsArray = [ + "-v" + "-p" + "'*tests.py'" + "mkdocs" + ]; pythonImportsCheck = [ "mkdocs" ]; diff --git a/pkgs/by-name/py/python/python-modules/mock/default.nix b/pkgs/by-name/py/python/python-modules/mock/default.nix index 7e5a72a..c5b32f6 100644 --- a/pkgs/by-name/py/python/python-modules/mock/default.nix +++ b/pkgs/by-name/py/python/python-modules/mock/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + pytestCheckHook, }: buildPythonPackage rec { @@ -17,13 +18,9 @@ buildPythonPackage rec { sha256 = "sha256-Xpaq1czaRxjgointlLICTfdcwtVVdbpXYtMfV2e4dn0="; }; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "mock" - ]; + pythonImportsCheck = [ "mock" ]; meta = with lib; { description = "Rolling backport of unittest.mock for all Pythons"; diff --git a/pkgs/by-name/py/python/python-modules/nose/default.nix b/pkgs/by-name/py/python/python-modules/nose/default.nix index d59dd0d..6b64173 100644 --- a/pkgs/by-name/py/python/python-modules/nose/default.nix +++ b/pkgs/by-name/py/python/python-modules/nose/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPy3k -, isPyPy -, python - ,pythonAtLeast -, coverage +{ + lib, + buildPythonPackage, + fetchPypi, + isPy3k, + isPyPy, + python, + pythonAtLeast, + coverage, }: buildPythonPackage rec { @@ -37,12 +38,17 @@ buildPythonPackage rec { propagatedBuildInputs = [ coverage ]; doCheck = false; # lot's of transient errors, too much hassle - checkPhase = if isPy3k then '' - ${python.pythonOnBuildForHost.interpreter} setup.py build_tests - '' else "" + '' - rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062 - ${python.pythonOnBuildForHost.interpreter} selftest.py - ''; + checkPhase = + if isPy3k then + '' + ${python.pythonOnBuildForHost.interpreter} setup.py build_tests + '' + else + "" + + '' + rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062 + ${python.pythonOnBuildForHost.interpreter} selftest.py + ''; meta = with lib; { broken = isPyPy; # missing 2to3 conversion utility diff --git a/pkgs/by-name/py/python/python-modules/numpy/default.nix b/pkgs/by-name/py/python/python-modules/numpy/default.nix index 4299c6d..11702f9 100644 --- a/pkgs/by-name/py/python/python-modules/numpy/default.nix +++ b/pkgs/by-name/py/python/python-modules/numpy/default.nix @@ -1,30 +1,31 @@ -{ lib -, stdenv -, fetchPypi -, python -, pythonAtLeast -, pythonOlder -, buildPythonPackage -, writeTextFile +{ + lib, + stdenv, + fetchPypi, + python, + pythonAtLeast, + pythonOlder, + buildPythonPackage, + writeTextFile, -# build-system -, cython -, gfortran -, meson-python -, mesonEmulatorHook -, pkg-config -, xcbuild + # build-system + cython, + gfortran, + meson-python, + mesonEmulatorHook, + pkg-config, + xcbuild, -# native dependencies -, blas -, lapack + # native dependencies + blas, + lapack, -# tests -, hypothesis -, pytest-xdist -, pytestCheckHook -, setuptools -, typing-extensions + # tests + hypothesis, + pytest-xdist, + pytestCheckHook, + setuptools, + typing-extensions, }: assert (!blas.isILP64) && (!lapack.isILP64); @@ -32,7 +33,7 @@ assert (!blas.isILP64) && (!lapack.isILP64); let cfg = writeTextFile { name = "site.cfg"; - text = lib.generators.toINI {} { + text = lib.generators.toINI { } { ${blas.implementation} = { include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include"; library_dirs = "${blas}/lib:${lapack}/lib"; @@ -51,7 +52,8 @@ let }; }; }; -in buildPythonPackage rec { +in +buildPythonPackage rec { pname = "numpy"; version = "1.26.4"; pyproject = true; @@ -63,18 +65,17 @@ in buildPythonPackage rec { hash = "sha256-KgKrqe0S5KxOs+qUIcQgMBoMZGDZgw10qd+H76SRIBA="; }; - patches = [ - # Disable `numpy/core/tests/test_umath.py::TestComplexFunctions::test_loss_of_precision[complex256]` - # on x86_64-darwin because it fails under Rosetta 2 due to issues with trig functions and - # 80-bit long double complex numbers. - ./disable-failing-long-double-test-Rosetta-2.patch - ] - # We patch cpython/distutils to fix https://bugs.python.org/issue1222585 - # Patching of numpy.distutils is needed to prevent it from undoing the - # patch to distutils. - ++ lib.optionals python.hasDistutilsCxxPatch [ - ./numpy-distutils-C++.patch - ]; + patches = + [ + # Disable `numpy/core/tests/test_umath.py::TestComplexFunctions::test_loss_of_precision[complex256]` + # on x86_64-darwin because it fails under Rosetta 2 due to issues with trig functions and + # 80-bit long double complex numbers. + ./disable-failing-long-double-test-Rosetta-2.patch + ] + # We patch cpython/distutils to fix https://bugs.python.org/issue1222585 + # Patching of numpy.distutils is needed to prevent it from undoing the + # patch to distutils. + ++ lib.optionals python.hasDistutilsCxxPatch [ ./numpy-distutils-C++.patch ]; postPatch = '' # fails with multiple errors because we are not using the pinned setuptools version @@ -90,16 +91,15 @@ in buildPythonPackage rec { --replace 'py.full_path()' "'python'" ''; - nativeBuildInputs = [ - cython - gfortran - meson-python - pkg-config - ] ++ lib.optionals (stdenv.isDarwin) [ - xcbuild.xcrun - ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - mesonEmulatorHook - ]; + nativeBuildInputs = + [ + cython + gfortran + meson-python + pkg-config + ] + ++ lib.optionals (stdenv.isDarwin) [ xcbuild.xcrun ] + ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; buildInputs = [ blas @@ -142,32 +142,37 @@ in buildPythonPackage rec { # https://github.com/numpy/numpy/blob/a277f6210739c11028f281b8495faf7da298dbef/numpy/_pytesttester.py#L180 pytestFlagsArray = [ - "-m" "not\\ slow" # fast test suite + "-m" + "not\\ slow" # fast test suite ]; # https://github.com/numpy/numpy/issues/24548 - disabledTests = lib.optionals stdenv.isi686 [ - "test_new_policy" # AssertionError: assert False - "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded - "test_float_remainder_overflow" # AssertionError: FloatingPointError not raised by divmod - "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1 - ] ++ lib.optionals stdenv.isAarch32 [ - "test_impossible_feature_enable" # AssertionError: Failed to generate error - "test_features" # AssertionError: Failure Detection - "test_new_policy" # AssertionError: assert False - "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded - "test_unary_spurious_fpexception"# AssertionError: Got warnings: [] - "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1 - "test_real" # AssertionError: selectedrealkind(16): expected 10 but got -1 - "test_quad_precision" # AssertionError: selectedrealkind(32): expected 16 but got -1 - "test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha... - "test_multinomial_pvals_float32" # Failed: DID NOT RAISE - ] ++ lib.optionals stdenv.isAarch64 [ - "test_big_arrays" # OOM on a 16G machine - ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ - # can fail on virtualized machines confused over their cpu identity - "test_dispatcher" - ]; + disabledTests = + lib.optionals stdenv.isi686 [ + "test_new_policy" # AssertionError: assert False + "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded + "test_float_remainder_overflow" # AssertionError: FloatingPointError not raised by divmod + "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1 + ] + ++ lib.optionals stdenv.isAarch32 [ + "test_impossible_feature_enable" # AssertionError: Failed to generate error + "test_features" # AssertionError: Failure Detection + "test_new_policy" # AssertionError: assert False + "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded + "test_unary_spurious_fpexception" # AssertionError: Got warnings: [] + "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1 + "test_real" # AssertionError: selectedrealkind(16): expected 10 but got -1 + "test_quad_precision" # AssertionError: selectedrealkind(32): expected 16 but got -1 + "test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha... + "test_multinomial_pvals_float32" # Failed: DID NOT RAISE + ] + ++ lib.optionals stdenv.isAarch64 [ + "test_big_arrays" # OOM on a 16G machine + ] + ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ + # can fail on virtualized machines confused over their cpu identity + "test_dispatcher" + ]; passthru = { # just for backwards compatibility diff --git a/pkgs/by-name/py/python/python-modules/packaging/default.nix b/pkgs/by-name/py/python/python-modules/packaging/default.nix index 32ce7fd..58327bc 100644 --- a/pkgs/by-name/py/python/python-modules/packaging/default.nix +++ b/pkgs/by-name/py/python/python-modules/packaging/default.nix @@ -1,14 +1,15 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, -# build-system -, flit-core + # build-system + flit-core, -# tests -, pretend -, pytestCheckHook + # tests + pretend, + pytestCheckHook, }: let @@ -24,9 +25,7 @@ let hash = "sha256-64LF4+ViCQdHZuaIW7BLjDigwBXQowA26+fs40yZiek="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; nativeCheckInputs = [ pytestCheckHook @@ -45,14 +44,19 @@ let # Prevent circular dependency with pytest doCheck = false; - passthru.tests = packaging.overridePythonAttrs (_: { doCheck = true; }); + passthru.tests = packaging.overridePythonAttrs (_: { + doCheck = true; + }); meta = with lib; { changelog = "https://github.com/pypa/packaging/blob/${version}/CHANGELOG.rst"; description = "Core utilities for Python packages"; downloadPage = "https://github.com/pypa/packaging"; homepage = "https://packaging.pypa.io/"; - license = with licenses; [ bsd2 asl20 ]; + license = with licenses; [ + bsd2 + asl20 + ]; maintainers = teams.python.members ++ (with maintainers; [ bennofs ]); }; }; diff --git a/pkgs/by-name/py/python/python-modules/pallets-sphinx-themes/default.nix b/pkgs/by-name/py/python/python-modules/pallets-sphinx-themes/default.nix index 9020e45..a021db9 100644 --- a/pkgs/by-name/py/python/python-modules/pallets-sphinx-themes/default.nix +++ b/pkgs/by-name/py/python/python-modules/pallets-sphinx-themes/default.nix @@ -1,4 +1,10 @@ -{ lib, buildPythonPackage, fetchFromGitHub, sphinx, packaging }: +{ + lib, + buildPythonPackage, + fetchFromGitHub, + sphinx, + packaging, +}: buildPythonPackage rec { pname = "pallets-sphinx-themes"; @@ -12,7 +18,10 @@ buildPythonPackage rec { sha256 = "sha256-Z03rsqkwF2rYaqRZflf5qc5EdHPIEcEcB1ftYIm5DQs="; }; - propagatedBuildInputs = [ packaging sphinx ]; + propagatedBuildInputs = [ + packaging + sphinx + ]; pythonImportsCheck = [ "pallets_sphinx_themes" ]; diff --git a/pkgs/by-name/py/python/python-modules/pathspec/default.nix b/pkgs/by-name/py/python/python-modules/pathspec/default.nix index b23ed50..fdb5263 100644 --- a/pkgs/by-name/py/python/python-modules/pathspec/default.nix +++ b/pkgs/by-name/py/python/python-modules/pathspec/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core -, unittestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, + unittestCheckHook, # for passthru.tests # , awsebcli @@ -22,17 +23,11 @@ buildPythonPackage rec { hash = "sha256-pILVFQOhqzOxxnpsOBOiaVPb3HHDHayu+ag4xOKfVxI="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - pythonImportsCheck = [ - "pathspec" - ]; + pythonImportsCheck = [ "pathspec" ]; - checkInputs = [ - unittestCheckHook - ]; + checkInputs = [ unittestCheckHook ]; # passthru.tests = { # inherit awsebcli black hatchling yamllint; diff --git a/pkgs/by-name/py/python/python-modules/pluggy/default.nix b/pkgs/by-name/py/python/python-modules/pluggy/default.nix index a3b7766..8a80ed6 100644 --- a/pkgs/by-name/py/python/python-modules/pluggy/default.nix +++ b/pkgs/by-name/py/python/python-modules/pluggy/default.nix @@ -1,10 +1,11 @@ -{ buildPythonPackage -, lib -, fetchFromGitHub -, setuptools-scm -, pythonOlder -# , importlib-metadata -, callPackage +{ + buildPythonPackage, + lib, + fetchFromGitHub, + setuptools-scm, + pythonOlder, + # , importlib-metadata + callPackage, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/pluggy/tests.nix b/pkgs/by-name/py/python/python-modules/pluggy/tests.nix index dc6e16e..8eec020 100644 --- a/pkgs/by-name/py/python/python-modules/pluggy/tests.nix +++ b/pkgs/by-name/py/python/python-modules/pluggy/tests.nix @@ -1,6 +1,7 @@ -{ buildPythonPackage -, pluggy -, pytestCheckHook +{ + buildPythonPackage, + pluggy, + pytestCheckHook, }: buildPythonPackage { diff --git a/pkgs/by-name/py/python/python-modules/pretend/default.nix b/pkgs/by-name/py/python/python-modules/pretend/default.nix index 231b953..3e4396a 100644 --- a/pkgs/by-name/py/python/python-modules/pretend/default.nix +++ b/pkgs/by-name/py/python/python-modules/pretend/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook -, pythonOlder +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + pythonOlder, }: buildPythonPackage rec { @@ -19,13 +20,9 @@ buildPythonPackage rec { hash = "sha256-OqMfeIMFNBBLq6ejR3uOCIHZ9aA4zew7iefVlAsy1JQ="; }; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pythonImportsCheck = [ - "pretend" - ]; + pythonImportsCheck = [ "pretend" ]; meta = with lib; { description = "Module for stubbing"; diff --git a/pkgs/by-name/py/python/python-modules/psutil/default.nix b/pkgs/by-name/py/python/python-modules/psutil/default.nix index a27bb42..d6072ce 100644 --- a/pkgs/by-name/py/python/python-modules/psutil/default.nix +++ b/pkgs/by-name/py/python/python-modules/psutil/default.nix @@ -1,12 +1,13 @@ -{ lib -, stdenv -, buildPythonPackage -, CoreFoundation -, fetchPypi -, IOKit -, pytestCheckHook -, python -, pythonOlder +{ + lib, + stdenv, + buildPythonPackage, + CoreFoundation, + fetchPypi, + IOKit, + pytestCheckHook, + python, + pythonOlder, }: buildPythonPackage rec { @@ -33,15 +34,10 @@ buildPythonPackage rec { buildInputs = # workaround for https://github.com/NixOS/nixpkgs/issues/146760 - lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ - CoreFoundation - ] ++ lib.optionals stdenv.isDarwin [ - IOKit - ]; + lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ CoreFoundation ] + ++ lib.optionals stdenv.isDarwin [ IOKit ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; # Segfaults on darwin: # https://github.com/giampaolo/psutil/issues/1715 @@ -69,9 +65,7 @@ buildPythonPackage rec { "test_disk_partitions" # problematic on Hydra's Linux builders, apparently ]; - pythonImportsCheck = [ - "psutil" - ]; + pythonImportsCheck = [ "psutil" ]; meta = with lib; { description = "Process and system utilization information interface"; diff --git a/pkgs/by-name/py/python/python-modules/pycparser/default.nix b/pkgs/by-name/py/python/python-modules/pycparser/default.nix index fa0622d..eedc435 100644 --- a/pkgs/by-name/py/python/python-modules/pycparser/default.nix +++ b/pkgs/by-name/py/python/python-modules/pycparser/default.nix @@ -1,4 +1,9 @@ -{ lib, buildPythonPackage, fetchPypi, unittestCheckHook }: +{ + lib, + buildPythonPackage, + fetchPypi, + unittestCheckHook, +}: buildPythonPackage rec { pname = "pycparser"; @@ -12,7 +17,10 @@ buildPythonPackage rec { nativeCheckInputs = [ unittestCheckHook ]; - unittestFlagsArray = [ "-s" "tests" ]; + unittestFlagsArray = [ + "-s" + "tests" + ]; meta = with lib; { description = "C parser in Python"; diff --git a/pkgs/by-name/py/python/python-modules/pyelftools/default.nix b/pkgs/by-name/py/python/python-modules/pyelftools/default.nix index 84cdda6..3a16514 100644 --- a/pkgs/by-name/py/python/python-modules/pyelftools/default.nix +++ b/pkgs/by-name/py/python/python-modules/pyelftools/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchFromGitHub -, python -, pythonOlder +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + python, + pythonOlder, }: buildPythonPackage rec { @@ -29,9 +30,7 @@ buildPythonPackage rec { ${python.interpreter} test/run_readelf_tests.py --parallel ''; - pythonImportsCheck = [ - "elftools" - ]; + pythonImportsCheck = [ "elftools" ]; meta = with lib; { description = "Python library for analyzing ELF files and DWARF debugging information"; @@ -39,6 +38,9 @@ buildPythonPackage rec { homepage = "https://github.com/eliben/pyelftools"; changelog = "https://github.com/eliben/pyelftools/blob/v${version}/CHANGES"; license = licenses.publicDomain; - maintainers = with maintainers; [ igsha pamplemousse ]; + maintainers = with maintainers; [ + igsha + pamplemousse + ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/pygit2/default.nix b/pkgs/by-name/py/python/python-modules/pygit2/default.nix index 1e17f95..7915a4b 100644 --- a/pkgs/by-name/py/python/python-modules/pygit2/default.nix +++ b/pkgs/by-name/py/python/python-modules/pygit2/default.nix @@ -1,16 +1,17 @@ -{ lib -, stdenv -, buildPythonPackage -, cacert -, cached-property -, cffi -, fetchPypi -, isPyPy -, libgit2 -, pycparser -, pytestCheckHook -, pythonOlder -, setuptools +{ + lib, + stdenv, + buildPythonPackage, + cacert, + cached-property, + cffi, + fetchPypi, + isPyPy, + libgit2, + pycparser, + pytestCheckHook, + pythonOlder, + setuptools, }: buildPythonPackage rec { @@ -29,28 +30,18 @@ buildPythonPackage rec { export DYLD_LIBRARY_PATH="${libgit2}/lib" ''; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - buildInputs = [ - libgit2 - ]; + buildInputs = [ libgit2 ]; propagatedBuildInputs = [ cached-property pycparser - ] ++ lib.optionals (!isPyPy) [ - cffi - ]; + ] ++ lib.optionals (!isPyPy) [ cffi ]; - propagatedNativeBuildInputs = lib.optionals (!isPyPy) [ - cffi - ]; + propagatedNativeBuildInputs = lib.optionals (!isPyPy) [ cffi ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; disabledTestPaths = [ # Disable tests that require networking @@ -63,9 +54,7 @@ buildPythonPackage rec { # https://github.com/NixOS/nixpkgs/pull/72544#issuecomment-582674047 SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt"; - pythonImportsCheck = [ - "pygit2" - ]; + pythonImportsCheck = [ "pygit2" ]; meta = with lib; { description = "A set of Python bindings to the libgit2 shared library"; diff --git a/pkgs/by-name/py/python/python-modules/pygments/default.nix b/pkgs/by-name/py/python/python-modules/pygments/default.nix index 4be48e1..784077e 100644 --- a/pkgs/by-name/py/python/python-modules/pygments/default.nix +++ b/pkgs/by-name/py/python/python-modules/pygments/default.nix @@ -1,17 +1,18 @@ -{ lib -, buildPythonPackage -, fetchPypi +{ + lib, + buildPythonPackage, + fetchPypi, -# build-system -, hatchling + # build-system + hatchling, -# tests -, pytestCheckHook -, wcag-contrast-ratio + # tests + pytestCheckHook, + wcag-contrast-ratio, }: -let pygments = buildPythonPackage - rec { +let + pygments = buildPythonPackage rec { pname = "pygments"; version = "2.17.2"; pyproject = true; @@ -21,9 +22,7 @@ let pygments = buildPythonPackage hash = "sha256-2kbOyf0t5b46inhPQ05MSrZwtP9U1gXEwnF+nUnEw2c="; }; - nativeBuildInputs = [ - hatchling - ]; + nativeBuildInputs = [ hatchling ]; # circular dependencies if enabled by default doCheck = false; @@ -38,12 +37,12 @@ let pygments = buildPythonPackage "tests/examplefiles/bash/ltmain.sh" ]; - pythonImportsCheck = [ - "pygments" - ]; + pythonImportsCheck = [ "pygments" ]; passthru.tests = { - check = pygments.overridePythonAttrs (_: { doCheck = true; }); + check = pygments.overridePythonAttrs (_: { + doCheck = true; + }); }; meta = with lib; { @@ -55,4 +54,5 @@ let pygments = buildPythonPackage maintainers = with maintainers; [ ]; }; }; -in pygments +in +pygments diff --git a/pkgs/by-name/py/python/python-modules/pyproject-hooks/default.nix b/pkgs/by-name/py/python/python-modules/pyproject-hooks/default.nix index 1d98d59..7da4a1c 100644 --- a/pkgs/by-name/py/python/python-modules/pyproject-hooks/default.nix +++ b/pkgs/by-name/py/python/python-modules/pyproject-hooks/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pythonOlder -, tomli +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pythonOlder, + tomli, # for passthru.tests # , pyproject-hooks # , pytestCheckHook @@ -24,13 +25,9 @@ buildPythonPackage rec { hash = "sha256-8nGymLl/WVXVP7ErcsH7GUjCLBprcLMVxUztrKAmTvU="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ - tomli - ]; + propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ tomli ]; # We need to disable tests because this package is part of the bootstrap chain # and its test dependencies cannot be built yet when this is being built. @@ -60,9 +57,7 @@ buildPythonPackage rec { # }; # }; - pythonImportsCheck = [ - "pyproject_hooks" - ]; + pythonImportsCheck = [ "pyproject_hooks" ]; meta = with lib; { description = "Low-level library for calling build-backends in `pyproject.toml`-based project "; diff --git a/pkgs/by-name/py/python/python-modules/pysocks/default.nix b/pkgs/by-name/py/python/python-modules/pysocks/default.nix index b007ef9..a1192b8 100644 --- a/pkgs/by-name/py/python/python-modules/pysocks/default.nix +++ b/pkgs/by-name/py/python/python-modules/pysocks/default.nix @@ -1,6 +1,7 @@ -{ lib -, buildPythonPackage -, fetchPypi +{ + lib, + buildPythonPackage, + fetchPypi, }: buildPythonPackage rec { @@ -18,7 +19,7 @@ buildPythonPackage rec { meta = with lib; { description = "SOCKS module for Python"; - license = licenses.bsd3; + license = licenses.bsd3; maintainers = with maintainers; [ thoughtpolice ]; }; diff --git a/pkgs/by-name/py/python/python-modules/pystemmer/default.nix b/pkgs/by-name/py/python/python-modules/pystemmer/default.nix index 0c29890..bddc42a 100644 --- a/pkgs/by-name/py/python/python-modules/pystemmer/default.nix +++ b/pkgs/by-name/py/python/python-modules/pystemmer/default.nix @@ -1,12 +1,13 @@ -{ lib -, python -, fetchFromGitHub -, fetchpatch2 -, buildPythonPackage -, cython -, setuptools -, libstemmer - }: +{ + lib, + python, + fetchFromGitHub, + fetchpatch2, + buildPythonPackage, + cython, + setuptools, + libstemmer, +}: buildPythonPackage rec { pname = "pystemmer"; @@ -38,17 +39,11 @@ buildPythonPackage rec { export PYSTEMMER_SYSTEM_LIBSTEMMER="${lib.getDev libstemmer}/include" ''; - env.NIX_CFLAGS_COMPILE = toString [ - "-I${lib.getDev libstemmer}/include" - ]; + env.NIX_CFLAGS_COMPILE = toString [ "-I${lib.getDev libstemmer}/include" ]; - NIX_CFLAGS_LINK = [ - "-L${libstemmer}/lib" - ]; + NIX_CFLAGS_LINK = [ "-L${libstemmer}/lib" ]; - pythonImportsCheck = [ - "Stemmer" - ]; + pythonImportsCheck = [ "Stemmer" ]; checkPhase = '' runHook preCheck diff --git a/pkgs/by-name/py/python/python-modules/pytest-asyncio/default.nix b/pkgs/by-name/py/python/python-modules/pytest-asyncio/default.nix index b7762e1..ef42870 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-asyncio/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-asyncio/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, pytest -, pythonOlder -, setuptools-scm +{ + lib, + buildPythonPackage, + callPackage, + fetchFromGitHub, + pytest, + pythonOlder, + setuptools-scm, }: buildPythonPackage rec { @@ -26,13 +27,9 @@ buildPythonPackage rec { "testout" ]; - nativeBuildInputs = [ - setuptools-scm - ]; + nativeBuildInputs = [ setuptools-scm ]; - buildInputs = [ - pytest - ]; + buildInputs = [ pytest ]; postInstall = '' mkdir $testout @@ -40,11 +37,9 @@ buildPythonPackage rec { ''; doCheck = false; - passthru.tests.pytest = callPackage ./tests.nix {}; + passthru.tests.pytest = callPackage ./tests.nix { }; - pythonImportsCheck = [ - "pytest_asyncio" - ]; + pythonImportsCheck = [ "pytest_asyncio" ]; meta = with lib; { description = "Library for testing asyncio code with pytest"; diff --git a/pkgs/by-name/py/python/python-modules/pytest-asyncio/tests.nix b/pkgs/by-name/py/python/python-modules/pytest-asyncio/tests.nix index 7fd26c8..d5f8ead 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-asyncio/tests.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-asyncio/tests.nix @@ -1,9 +1,10 @@ -{ buildPythonPackage -, flaky -, hypothesis -, pytest-asyncio -, pytest-trio -, pytestCheckHook +{ + buildPythonPackage, + flaky, + hypothesis, + pytest-asyncio, + pytest-trio, + pytestCheckHook, }: buildPythonPackage { @@ -17,9 +18,7 @@ buildPythonPackage { dontBuild = true; dontInstall = true; - propagatedBuildInputs = [ - pytest-asyncio - ]; + propagatedBuildInputs = [ pytest-asyncio ]; nativeCheckInputs = [ flaky diff --git a/pkgs/by-name/py/python/python-modules/pytest-expect/default.nix b/pkgs/by-name/py/python/python-modules/pytest-expect/default.nix index df5376e..0a8211c 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-expect/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-expect/default.nix @@ -1,9 +1,10 @@ -{ buildPythonPackage -, lib -, fetchPypi -, pytest -, u-msgpack-python -, six +{ + buildPythonPackage, + lib, + fetchPypi, + pytest, + u-msgpack-python, + six, }: buildPythonPackage rec { @@ -17,7 +18,10 @@ buildPythonPackage rec { }; buildInputs = [ pytest ]; - propagatedBuildInputs = [ u-msgpack-python six ]; + propagatedBuildInputs = [ + u-msgpack-python + six + ]; # Tests in neither the archive nor the repo doCheck = false; diff --git a/pkgs/by-name/py/python/python-modules/pytest-mock/default.nix b/pkgs/by-name/py/python/python-modules/pytest-mock/default.nix index f956a62..1b602fc 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-mock/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-mock/default.nix @@ -1,13 +1,14 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, pythonOlder -, fetchPypi -, pytest -, pytest-asyncio -, pytestCheckHook -, setuptools -, setuptools-scm +{ + lib, + buildPythonPackage, + pythonAtLeast, + pythonOlder, + fetchPypi, + pytest, + pytest-asyncio, + pytestCheckHook, + setuptools, + setuptools-scm, }: buildPythonPackage rec { @@ -27,9 +28,7 @@ buildPythonPackage rec { setuptools-scm ]; - buildInputs = [ - pytest - ]; + buildInputs = [ pytest ]; nativeCheckInputs = [ pytest-asyncio diff --git a/pkgs/by-name/py/python/python-modules/pytest-rerunfailures/default.nix b/pkgs/by-name/py/python/python-modules/pytest-rerunfailures/default.nix index 59d459a..3d28733 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-rerunfailures/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-rerunfailures/default.nix @@ -1,11 +1,12 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchPypi -, setuptools -, packaging -, pytest -, pytestCheckHook +{ + lib, + buildPythonPackage, + pythonOlder, + fetchPypi, + setuptools, + packaging, + pytest, + pytestCheckHook, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/pytest-timeout/default.nix b/pkgs/by-name/py/python/python-modules/pytest-timeout/default.nix index 3ea96b5..d916162 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-timeout/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-timeout/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pytest -, pytestCheckHook -, pexpect +{ + lib, + buildPythonPackage, + fetchPypi, + pytest, + pytestCheckHook, + pexpect, }: buildPythonPackage rec { @@ -16,9 +17,7 @@ buildPythonPackage rec { hash = "sha256-Ejl3KRJcbsvaygEDW55SOdTblzUjIK8VWz9d4bpRZdk="; }; - buildInputs = [ - pytest - ]; + buildInputs = [ pytest ]; nativeCheckInputs = [ pytestCheckHook @@ -31,13 +30,9 @@ buildPythonPackage rec { "test_suppresses_timeout_when_debugger_is_entered" ]; - pytestFlagsArray = [ - "-ra" - ]; + pytestFlagsArray = [ "-ra" ]; - pythonImportsCheck = [ - "pytest_timeout" - ]; + pythonImportsCheck = [ "pytest_timeout" ]; meta = with lib; { description = "Pytest plugin to abort hanging tests"; diff --git a/pkgs/by-name/py/python/python-modules/pytest-xdist/default.nix b/pkgs/by-name/py/python/python-modules/pytest-xdist/default.nix index 947040f..b75a4b7 100644 --- a/pkgs/by-name/py/python/python-modules/pytest-xdist/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest-xdist/default.nix @@ -1,14 +1,15 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, setuptools-scm -, pytestCheckHook -, filelock -, execnet -, pytest -, psutil -, setproctitle +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + setuptools-scm, + pytestCheckHook, + filelock, + execnet, + pytest, + psutil, + setproctitle, }: buildPythonPackage rec { @@ -23,17 +24,11 @@ buildPythonPackage rec { hash = "sha256-y7NvPWfgxHi6pX+k7ciEOIfg9s/ELWd1MKNtdHKzLYo="; }; - nativeBuildInputs = [ - setuptools-scm - ]; + nativeBuildInputs = [ setuptools-scm ]; - buildInputs = [ - pytest - ]; + buildInputs = [ pytest ]; - propagatedBuildInputs = [ - execnet - ]; + propagatedBuildInputs = [ execnet ]; nativeCheckInputs = [ filelock diff --git a/pkgs/by-name/py/python/python-modules/pytest/7.nix b/pkgs/by-name/py/python/python-modules/pytest/7.nix index 835e8ff..8ca33b1 100644 --- a/pkgs/by-name/py/python/python-modules/pytest/7.nix +++ b/pkgs/by-name/py/python/python-modules/pytest/7.nix @@ -1,116 +1,122 @@ -{ lib -, buildPythonPackage -, callPackage -, pythonOlder -, fetchPypi -, writeText +{ + lib, + buildPythonPackage, + callPackage, + pythonOlder, + fetchPypi, + writeText, -# build-system -, setuptools -, setuptools-scm + # build-system + setuptools, + setuptools-scm, -# dependencies -, attrs -, exceptiongroup -, iniconfig -, packaging -, pluggy -, tomli + # dependencies + attrs, + exceptiongroup, + iniconfig, + packaging, + pluggy, + tomli, -# optional-dependencies -, argcomplete -, hypothesis -, mock -, nose -, pygments -, requests -, xmlschema + # optional-dependencies + argcomplete, + hypothesis, + mock, + nose, + pygments, + requests, + xmlschema, }: -let self = buildPythonPackage rec { - pname = "pytest"; - version = "7.4.4"; - pyproject = true; +let + self = buildPythonPackage rec { + pname = "pytest"; + version = "7.4.4"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA="; - }; + src = fetchPypi { + inherit pname version; + hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA="; + }; - outputs = [ - "out" - "testout" - ]; - - nativeBuildInputs = [ - setuptools - setuptools-scm - ]; - - propagatedBuildInputs = [ - iniconfig - packaging - pluggy - ] ++ lib.optionals (pythonOlder "3.11") [ - exceptiongroup - tomli - ]; - - passthru.optional-dependencies = { - testing = [ - argcomplete - attrs - hypothesis - mock - nose - pygments - requests - setuptools - xmlschema + outputs = [ + "out" + "testout" ]; + + nativeBuildInputs = [ + setuptools + setuptools-scm + ]; + + propagatedBuildInputs = + [ + iniconfig + packaging + pluggy + ] + ++ lib.optionals (pythonOlder "3.11") [ + exceptiongroup + tomli + ]; + + passthru.optional-dependencies = { + testing = [ + argcomplete + attrs + hypothesis + mock + nose + pygments + requests + setuptools + xmlschema + ]; + }; + + postInstall = '' + mkdir $testout + cp -R testing $testout/testing + ''; + + doCheck = false; + passthru.tests.pytest = callPackage ./tests.nix { pytest = self; }; + + # Remove .pytest_cache when using py.test in a Nix build + setupHook = writeText "pytest-hook" '' + pytestcachePhase() { + find $out -name .pytest_cache -type d -exec rm -rf {} + + } + preDistPhases+=" pytestcachePhase" + + # pytest generates it's own bytecode files to improve assertion messages. + # These files similar to cpython's bytecode files but are never laoded + # by python interpreter directly. We remove them for a few reasons: + # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292 + # (file headers are generatedt by pytest directly and contain timestamps) + # - files are not needed after tests are finished + pytestRemoveBytecodePhase () { + # suffix is defined at: + # https://github.com/pytest-dev/pytest/blob/7.2.1/src/_pytest/assertion/rewrite.py#L51-L53 + find $out -name "*-pytest-*.py[co]" -delete + } + preDistPhases+=" pytestRemoveBytecodePhase" + ''; + + pythonImportsCheck = [ "pytest" ]; + + meta = with lib; { + description = "Framework for writing tests"; + homepage = "https://docs.pytest.org"; + changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; + maintainers = with maintainers; [ + domenkozar + lovek323 + madjar + lsix + ]; + license = licenses.mit; + }; }; - - postInstall = '' - mkdir $testout - cp -R testing $testout/testing - ''; - - doCheck = false; - passthru.tests.pytest = callPackage ./tests.nix { - pytest = self; - }; - - # Remove .pytest_cache when using py.test in a Nix build - setupHook = writeText "pytest-hook" '' - pytestcachePhase() { - find $out -name .pytest_cache -type d -exec rm -rf {} + - } - preDistPhases+=" pytestcachePhase" - - # pytest generates it's own bytecode files to improve assertion messages. - # These files similar to cpython's bytecode files but are never laoded - # by python interpreter directly. We remove them for a few reasons: - # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292 - # (file headers are generatedt by pytest directly and contain timestamps) - # - files are not needed after tests are finished - pytestRemoveBytecodePhase () { - # suffix is defined at: - # https://github.com/pytest-dev/pytest/blob/7.2.1/src/_pytest/assertion/rewrite.py#L51-L53 - find $out -name "*-pytest-*.py[co]" -delete - } - preDistPhases+=" pytestRemoveBytecodePhase" - ''; - - pythonImportsCheck = [ - "pytest" - ]; - - meta = with lib; { - description = "Framework for writing tests"; - homepage = "https://docs.pytest.org"; - changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; - maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; - license = licenses.mit; - }; -}; -in self +in +self diff --git a/pkgs/by-name/py/python/python-modules/pytest/default.nix b/pkgs/by-name/py/python/python-modules/pytest/default.nix index 9b99112..291f469 100644 --- a/pkgs/by-name/py/python/python-modules/pytest/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytest/default.nix @@ -1,30 +1,31 @@ -{ lib -, buildPythonPackage -, callPackage -, pythonOlder -, fetchPypi -, writeText +{ + lib, + buildPythonPackage, + callPackage, + pythonOlder, + fetchPypi, + writeText, -# build-system -, setuptools -, setuptools-scm + # build-system + setuptools, + setuptools-scm, -# dependencies -, attrs -, exceptiongroup -, iniconfig -, packaging -, pluggy -, tomli + # dependencies + attrs, + exceptiongroup, + iniconfig, + packaging, + pluggy, + tomli, -# optional-dependencies -, argcomplete -, hypothesis -, mock -, nose -, pygments -, requests -, xmlschema + # optional-dependencies + argcomplete, + hypothesis, + mock, + nose, + pygments, + requests, + xmlschema, }: buildPythonPackage rec { @@ -47,14 +48,16 @@ buildPythonPackage rec { setuptools-scm ]; - propagatedBuildInputs = [ - iniconfig - packaging - pluggy - ] ++ lib.optionals (pythonOlder "3.11") [ - exceptiongroup - tomli - ]; + propagatedBuildInputs = + [ + iniconfig + packaging + pluggy + ] + ++ lib.optionals (pythonOlder "3.11") [ + exceptiongroup + tomli + ]; passthru.optional-dependencies = { testing = [ @@ -99,15 +102,18 @@ buildPythonPackage rec { preDistPhases+=" pytestRemoveBytecodePhase" ''; - pythonImportsCheck = [ - "pytest" - ]; + pythonImportsCheck = [ "pytest" ]; meta = with lib; { description = "Framework for writing tests"; homepage = "https://docs.pytest.org"; changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; - maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; + maintainers = with maintainers; [ + domenkozar + lovek323 + madjar + lsix + ]; license = licenses.mit; }; } diff --git a/pkgs/by-name/py/python/python-modules/pytest/tests.nix b/pkgs/by-name/py/python/python-modules/pytest/tests.nix index 8bf8daf..a60e3a0 100644 --- a/pkgs/by-name/py/python/python-modules/pytest/tests.nix +++ b/pkgs/by-name/py/python/python-modules/pytest/tests.nix @@ -1,6 +1,7 @@ -{ buildPythonPackage -, isPyPy -, pytest +{ + buildPythonPackage, + isPyPy, + pytest, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/python-dateutil/default.nix b/pkgs/by-name/py/python/python-modules/python-dateutil/default.nix index dd7cc0f..71def22 100644 --- a/pkgs/by-name/py/python/python-modules/python-dateutil/default.nix +++ b/pkgs/by-name/py/python/python-modules/python-dateutil/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, setuptools-scm -, six +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools-scm, + six, }: buildPythonPackage rec { @@ -41,7 +42,10 @@ buildPythonPackage rec { changelog = "https://github.com/dateutil/dateutil/blob/${version}/NEWS"; description = "Powerful extensions to the standard datetime module"; homepage = "https://github.com/dateutil/dateutil/"; - license = with licenses; [ asl20 bsd3 ]; + license = with licenses; [ + asl20 + bsd3 + ]; maintainers = with maintainers; [ dotlambda ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/pytz/default.nix b/pkgs/by-name/py/python/python-modules/pytz/default.nix index 359c7c1..d99da5d 100644 --- a/pkgs/by-name/py/python/python-modules/pytz/default.nix +++ b/pkgs/by-name/py/python/python-modules/pytz/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, setuptools -, unittestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + unittestCheckHook, }: buildPythonPackage rec { @@ -15,13 +16,14 @@ buildPythonPackage rec { hash = "sha256-KilzXqnBi68UtEiEa95aSAMO0mdXhHLYlVzQ50Q6mBI="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; nativeCheckInputs = [ unittestCheckHook ]; - unittestFlagsArray = [ "-s" "pytz/tests" ]; + unittestFlagsArray = [ + "-s" + "pytz/tests" + ]; pythonImportsCheck = [ "pytz" ]; diff --git a/pkgs/by-name/py/python/python-modules/requests/default.nix b/pkgs/by-name/py/python/python-modules/requests/default.nix index 33749a9..3c4be1f 100644 --- a/pkgs/by-name/py/python/python-modules/requests/default.nix +++ b/pkgs/by-name/py/python/python-modules/requests/default.nix @@ -1,19 +1,20 @@ -{ lib -, stdenv -, brotlicffi -, buildPythonPackage -, certifi -, chardet -, charset-normalizer -, fetchPypi -, fetchpatch -, idna -, pysocks -, pytest-mock -, pytest-xdist -, pytestCheckHook -, pythonOlder -, urllib3 +{ + lib, + stdenv, + brotlicffi, + buildPythonPackage, + certifi, + chardet, + charset-normalizer, + fetchPypi, + fetchpatch, + idna, + pysocks, + pytest-mock, + pytest-xdist, + pytestCheckHook, + pythonOlder, + urllib3, }: buildPythonPackage rec { @@ -39,50 +40,45 @@ buildPythonPackage rec { ]; optional-dependencies = { - security = []; - socks = [ - pysocks - ]; - use_chardet_on_py3 = [ - chardet - ]; + security = [ ]; + socks = [ pysocks ]; + use_chardet_on_py3 = [ chardet ]; }; nativeCheckInputs = [ pytest-mock pytest-xdist pytestCheckHook - ] - ++ optional-dependencies.socks; + ] ++ optional-dependencies.socks; - disabledTests = [ - # Disable tests that require network access and use httpbin - "requests.api.request" - "requests.models.PreparedRequest" - "requests.sessions.Session" - "requests" - "test_redirecting_to_bad_url" - "test_requests_are_updated_each_time" - "test_should_bypass_proxies_pass_only_hostname" - "test_urllib3_pool_connection_closed" - "test_urllib3_retries" - "test_use_proxy_from_environment" - "TestRequests" - "TestTimeout" - ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ - # Fatal Python error: Aborted - "test_basic_response" - "test_text_response" - ]; + disabledTests = + [ + # Disable tests that require network access and use httpbin + "requests.api.request" + "requests.models.PreparedRequest" + "requests.sessions.Session" + "requests" + "test_redirecting_to_bad_url" + "test_requests_are_updated_each_time" + "test_should_bypass_proxies_pass_only_hostname" + "test_urllib3_pool_connection_closed" + "test_urllib3_retries" + "test_use_proxy_from_environment" + "TestRequests" + "TestTimeout" + ] + ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ + # Fatal Python error: Aborted + "test_basic_response" + "test_text_response" + ]; disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ # Fatal Python error: Aborted "tests/test_lowlevel.py" ]; - pythonImportsCheck = [ - "requests" - ]; + pythonImportsCheck = [ "requests" ]; meta = with lib; { description = "HTTP library for Python"; diff --git a/pkgs/by-name/py/python/python-modules/responses/default.nix b/pkgs/by-name/py/python/python-modules/responses/default.nix index 5a9960c..6152344 100644 --- a/pkgs/by-name/py/python/python-modules/responses/default.nix +++ b/pkgs/by-name/py/python/python-modules/responses/default.nix @@ -1,19 +1,20 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, fetchpatch2 -, pytest-asyncio -, pytest-httpserver -, pytestCheckHook -, pythonOlder -, pyyaml -, requests -, setuptools -, tomli -, tomli-w -, types-pyyaml -, types-toml -, urllib3 +{ + lib, + buildPythonPackage, + fetchFromGitHub, + fetchpatch2, + pytest-asyncio, + pytest-httpserver, + pytestCheckHook, + pythonOlder, + pyyaml, + requests, + setuptools, + tomli, + tomli-w, + types-pyyaml, + types-toml, + urllib3, }: buildPythonPackage rec { @@ -40,9 +41,7 @@ buildPythonPackage rec { }) ]; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ pyyaml @@ -57,13 +56,9 @@ buildPythonPackage rec { pytest-httpserver pytestCheckHook tomli-w - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; - pythonImportsCheck = [ - "responses" - ]; + pythonImportsCheck = [ "responses" ]; meta = with lib; { description = "Python module for mocking out the requests Python library"; diff --git a/pkgs/by-name/py/python/python-modules/setproctitle/default.nix b/pkgs/by-name/py/python/python-modules/setproctitle/default.nix index dfbee6e..5f01513 100644 --- a/pkgs/by-name/py/python/python-modules/setproctitle/default.nix +++ b/pkgs/by-name/py/python/python-modules/setproctitle/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, pythonOlder -, fetchPypi -, setuptools -, pytestCheckHook +{ + lib, + buildPythonPackage, + pythonOlder, + fetchPypi, + setuptools, + pytestCheckHook, }: buildPythonPackage rec { @@ -18,22 +19,16 @@ buildPythonPackage rec { hash = "sha256-yRPhUefqAVZ4N/8DeiPKh0AZKIAZi3+7kLFtGBYHyq4="; }; - nativeBuildInputs = [ - setuptools - ]; + nativeBuildInputs = [ setuptools ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; # tries to compile programs with dependencies that aren't available - disabledTestPaths = [ - "tests/setproctitle_test.py" - ]; + disabledTestPaths = [ "tests/setproctitle_test.py" ]; meta = with lib; { description = "Allows a process to change its title (as displayed by system tools such as ps and top)"; - homepage = "https://github.com/dvarrazzo/py-setproctitle"; + homepage = "https://github.com/dvarrazzo/py-setproctitle"; license = licenses.bsdOriginal; maintainers = with maintainers; [ exi ]; }; diff --git a/pkgs/by-name/py/python/python-modules/setuptools-scm/default.nix b/pkgs/by-name/py/python/python-modules/setuptools-scm/default.nix index fb4b83f..7bfc6ff 100644 --- a/pkgs/by-name/py/python/python-modules/setuptools-scm/default.nix +++ b/pkgs/by-name/py/python/python-modules/setuptools-scm/default.nix @@ -1,16 +1,17 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchPypi -, pythonOlder +{ + lib, + buildPythonPackage, + callPackage, + fetchPypi, + pythonOlder, -# build-system -, setuptools + # build-system + setuptools, -# dependencies -, packaging -, typing-extensions -, tomli + # dependencies + packaging, + typing-extensions, + tomli, # optional-dependencies # , rich @@ -26,19 +27,13 @@ buildPythonPackage rec { hash = "sha256-tfQ/9oAGaVlRk/0JiRVk7p0dfcsZbKtLJQbVOi4clcc="; }; - nativeBuildInputs = [ - setuptools - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; + nativeBuildInputs = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; propagatedBuildInputs = [ packaging setuptools typing-extensions - ] ++ lib.optionals (pythonOlder "3.11") [ - tomli - ]; + ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; # passthru.optional-dependencies = { # rich = [ @@ -46,9 +41,7 @@ buildPythonPackage rec { # ]; # }; - pythonImportsCheck = [ - "setuptools_scm" - ]; + pythonImportsCheck = [ "setuptools_scm" ]; # check in passthru.tests.pytest to escape infinite recursion on pytest doCheck = false; diff --git a/pkgs/by-name/py/python/python-modules/setuptools-scm/tests.nix b/pkgs/by-name/py/python/python-modules/setuptools-scm/tests.nix index b679a0f..ad203b2 100644 --- a/pkgs/by-name/py/python/python-modules/setuptools-scm/tests.nix +++ b/pkgs/by-name/py/python/python-modules/setuptools-scm/tests.nix @@ -1,10 +1,11 @@ -{ buildPythonPackage -, setuptools-scm -, pytestCheckHook -, git -, mercurial -, pip -, virtualenv +{ + buildPythonPackage, + setuptools-scm, + pytestCheckHook, + git, + mercurial, + pip, + virtualenv, }: buildPythonPackage { diff --git a/pkgs/by-name/py/python/python-modules/setuptools/default.nix b/pkgs/by-name/py/python/python-modules/setuptools/default.nix index 46a2597..5131911 100644 --- a/pkgs/by-name/py/python/python-modules/setuptools/default.nix +++ b/pkgs/by-name/py/python/python-modules/setuptools/default.nix @@ -1,9 +1,10 @@ -{ stdenv -, lib -, buildPythonPackage -, fetchFromGitHub -, python -, wheel +{ + stdenv, + lib, + buildPythonPackage, + fetchFromGitHub, + python, + wheel, }: buildPythonPackage rec { @@ -23,9 +24,7 @@ buildPythonPackage rec { ./setuptools-distutils-C++.patch ]; - nativeBuildInputs = [ - wheel - ]; + nativeBuildInputs = [ wheel ]; preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 @@ -37,7 +36,9 @@ buildPythonPackage rec { meta = with lib; { description = "Utilities to facilitate the installation of Python packages"; homepage = "https://github.com/pypa/setuptools"; - changelog = "https://setuptools.pypa.io/en/stable/history.html#v${replaceStrings [ "." ] [ "-" ] version}"; + changelog = "https://setuptools.pypa.io/en/stable/history.html#v${ + replaceStrings [ "." ] [ "-" ] version + }"; license = with licenses; [ mit ]; platforms = python.meta.platforms; maintainers = teams.python.members; diff --git a/pkgs/by-name/py/python/python-modules/six/default.nix b/pkgs/by-name/py/python/python-modules/six/default.nix index afaedae..89e7758 100644 --- a/pkgs/by-name/py/python/python-modules/six/default.nix +++ b/pkgs/by-name/py/python/python-modules/six/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + isPyPy, + pytestCheckHook, }: buildPythonPackage rec { @@ -16,14 +17,16 @@ buildPythonPackage rec { sha256 = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"; }; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; - pytestFlagsArray = if isPyPy then [ - # uses ctypes to find native library - "--deselect=test_six.py::test_move_items" - ] else null; + pytestFlagsArray = + if isPyPy then + [ + # uses ctypes to find native library + "--deselect=test_six.py::test_move_items" + ] + else + null; pythonImportsCheck = [ "six" ]; diff --git a/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix b/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix index a1723bd..37a2a51 100644 --- a/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix +++ b/pkgs/by-name/py/python/python-modules/snowballstemmer/default.nix @@ -1,4 +1,9 @@ -{ lib, buildPythonPackage, pystemmer, fetchPypi }: +{ + lib, + buildPythonPackage, + pystemmer, + fetchPypi, +}: buildPythonPackage rec { pname = "snowballstemmer"; diff --git a/pkgs/by-name/py/python/python-modules/sphinx-issues/default.nix b/pkgs/by-name/py/python/python-modules/sphinx-issues/default.nix index 9cf4b68..791cb37 100644 --- a/pkgs/by-name/py/python/python-modules/sphinx-issues/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinx-issues/default.nix @@ -1,10 +1,19 @@ -{ lib, buildPythonPackage, sphinx, fetchFromGitHub, pandoc }: +{ + lib, + buildPythonPackage, + sphinx, + fetchFromGitHub, + pandoc, +}: buildPythonPackage rec { pname = "sphinx-issues"; version = "3.0.1"; format = "setuptools"; - outputs = [ "out" "doc" ]; + outputs = [ + "out" + "doc" + ]; src = fetchFromGitHub { owner = "sloria"; diff --git a/pkgs/by-name/py/python/python-modules/sphinx/default.nix b/pkgs/by-name/py/python/python-modules/sphinx/default.nix index 53f58ed..c814b1b 100644 --- a/pkgs/by-name/py/python/python-modules/sphinx/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinx/default.nix @@ -1,37 +1,38 @@ -{ lib -, buildPythonPackage -, pythonAtLeast -, pythonOlder -, fetchFromGitHub -, isPyPy +{ + lib, + buildPythonPackage, + pythonAtLeast, + pythonOlder, + fetchFromGitHub, + isPyPy, -# nativeBuildInputs -, flit-core + # nativeBuildInputs + flit-core, -# propagatedBuildInputs -, babel -, alabaster -, docutils -, imagesize -, importlib-metadata -, jinja2 -, packaging -, pygments -, requests -, snowballstemmer -, sphinxcontrib-applehelp -, sphinxcontrib-devhelp -, sphinxcontrib-htmlhelp -, sphinxcontrib-jsmath -, sphinxcontrib-qthelp -, sphinxcontrib-serializinghtml -, sphinxcontrib-websupport + # propagatedBuildInputs + babel, + alabaster, + docutils, + imagesize, + importlib-metadata, + jinja2, + packaging, + pygments, + requests, + snowballstemmer, + sphinxcontrib-applehelp, + sphinxcontrib-devhelp, + sphinxcontrib-htmlhelp, + sphinxcontrib-jsmath, + sphinxcontrib-qthelp, + sphinxcontrib-serializinghtml, + sphinxcontrib-websupport, -# check phase -, filelock -, html5lib -, pytestCheckHook -, pytest-xdist + # check phase + filelock, + html5lib, + pytestCheckHook, + pytest-xdist, }: buildPythonPackage rec { @@ -54,9 +55,7 @@ buildPythonPackage rec { hash = "sha256-IjpRGeGpGfzrEvwIKtuu2l1S74w8W+AbqDOGnWwtRck="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; propagatedBuildInputs = [ alabaster @@ -76,9 +75,7 @@ buildPythonPackage rec { sphinxcontrib-serializinghtml # extra[docs] sphinxcontrib-websupport - ] ++ lib.optionals (pythonOlder "3.10") [ - importlib-metadata - ]; + ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]; __darwinAllowLocalNetworking = true; @@ -93,39 +90,42 @@ buildPythonPackage rec { export HOME=$TMPDIR ''; - disabledTests = [ - # requires network access - "test_latex_images" - # racy - "test_defaults" - "test_check_link_response_only" - "test_anchors_ignored_for_url" - "test_autodoc_default_options" - "test_too_many_requests_retry_after_int_delay" - # racy with pytest-xdist - "test_domain_cpp_build_semicolon" - "test_class_alias" - "test_class_alias_having_doccomment" - "test_class_alias_for_imported_object_having_doccomment" - "test_decorators" - # requires cython_0, but fails miserably on 3.11 - "test_cython" - ] ++ lib.optionals isPyPy [ - # PyPy has not __builtins__ which get asserted - # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous - "test_autosummary_generate_content_for_module" - "test_autosummary_generate_content_for_module_skipped" - # internals are asserted which are sightly different in PyPy - "test_autodoc_inherited_members_None" - "test_automethod_for_builtin" - "test_builtin_function" - "test_isattributedescriptor" - "test_methoddescriptor" - "test_partialfunction" - ] ++ lib.optionals (pythonAtLeast "3.12") [ - # https://github.com/sphinx-doc/sphinx/issues/12202 (Fixed in 7.3) - "test_enum_class" - ]; + disabledTests = + [ + # requires network access + "test_latex_images" + # racy + "test_defaults" + "test_check_link_response_only" + "test_anchors_ignored_for_url" + "test_autodoc_default_options" + "test_too_many_requests_retry_after_int_delay" + # racy with pytest-xdist + "test_domain_cpp_build_semicolon" + "test_class_alias" + "test_class_alias_having_doccomment" + "test_class_alias_for_imported_object_having_doccomment" + "test_decorators" + # requires cython_0, but fails miserably on 3.11 + "test_cython" + ] + ++ lib.optionals isPyPy [ + # PyPy has not __builtins__ which get asserted + # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous + "test_autosummary_generate_content_for_module" + "test_autosummary_generate_content_for_module_skipped" + # internals are asserted which are sightly different in PyPy + "test_autodoc_inherited_members_None" + "test_automethod_for_builtin" + "test_builtin_function" + "test_isattributedescriptor" + "test_methoddescriptor" + "test_partialfunction" + ] + ++ lib.optionals (pythonAtLeast "3.12") [ + # https://github.com/sphinx-doc/sphinx/issues/12202 (Fixed in 7.3) + "test_enum_class" + ]; meta = { description = "Python documentation generator"; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-applehelp/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-applehelp/default.nix index 139b206..69b524a 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-applehelp/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-applehelp/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-xApPlvN3bEOT2TNBIFOWL6wrhPTJmnmCukLglXanBhk="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Check is disabled due to circular dependency of sphinx dontCheckRuntimeDeps = true; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-devhelp/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-devhelp/default.nix index 4d9dede..c525da9 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-devhelp/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-devhelp/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-mJP9P5BQa8S5e9uXfOuPvYI5ifQxayjDhB7BKFRDctM="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Check is disabled due to circular dependency of sphinx dontCheckRuntimeDeps = true; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-htmlhelp/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-htmlhelp/default.nix index 127c9a0..82f2a78 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-htmlhelp/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-htmlhelp/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-Dch2N9XeU91e7DpqAXU7HM+ZSUvXVqr+zXS0+p5ykBU="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Check is disabled due to circular dependency of sphinx dontCheckRuntimeDeps = true; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-jsmath/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-jsmath/default.nix index 4e633fb..3198c33 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-jsmath/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-jsmath/default.nix @@ -1,7 +1,8 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPy27 +{ + lib, + buildPythonPackage, + fetchPypi, + isPy27, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-log-cabinet/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-log-cabinet/default.nix index 2dfc743..b9dfabb 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-log-cabinet/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-log-cabinet/default.nix @@ -1,4 +1,9 @@ -{ lib, buildPythonPackage, fetchFromGitHub, sphinx }: +{ + lib, + buildPythonPackage, + fetchFromGitHub, + sphinx, +}: buildPythonPackage rec { pname = "sphinxcontrib-log-cabinet"; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-qthelp/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-qthelp/default.nix index 8293985..29e702e 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-qthelp/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-qthelp/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-BT3tw4gjqApyCagIYLFrci6eAgnjL+qYyQ5OZiRYjtY="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Check is disabled due to circular dependency of sphinx dontCheckRuntimeDeps = true; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-serializinghtml/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-serializinghtml/default.nix index 92bbbe3..a24b2d6 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-serializinghtml/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-serializinghtml/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, pythonOlder -, flit-core +{ + lib, + buildPythonPackage, + fetchPypi, + pythonOlder, + flit-core, }: buildPythonPackage rec { @@ -18,9 +19,7 @@ buildPythonPackage rec { hash = "sha256-k/P13EWLkbGS/hDDl+Mk8mLPFj158ygsFY6ENqLEUR8="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Check is disabled due to circular dependency of sphinx dontCheckRuntimeDeps = true; diff --git a/pkgs/by-name/py/python/python-modules/sphinxcontrib-websupport/default.nix b/pkgs/by-name/py/python/python-modules/sphinxcontrib-websupport/default.nix index 7371d8a..a30a5a9 100644 --- a/pkgs/by-name/py/python/python-modules/sphinxcontrib-websupport/default.nix +++ b/pkgs/by-name/py/python/python-modules/sphinxcontrib-websupport/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, jinja2 -, sphinxcontrib-serializinghtml +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + jinja2, + sphinxcontrib-serializinghtml, }: buildPythonPackage rec { @@ -17,9 +18,7 @@ buildPythonPackage rec { hash = "sha256-4yKALr/V/nk2jv2GSuuHsGNWauYZEdzLJxTiikXtdWE="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; propagatedBuildInputs = [ jinja2 diff --git a/pkgs/by-name/py/python/python-modules/testpath/default.nix b/pkgs/by-name/py/python/python-modules/testpath/default.nix index eb66bea..097b7b6 100644 --- a/pkgs/by-name/py/python/python-modules/testpath/default.nix +++ b/pkgs/by-name/py/python/python-modules/testpath/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, buildPythonPackage -, fetchPypi -, flit-core -, pytestCheckHook +{ + lib, + stdenv, + buildPythonPackage, + fetchPypi, + flit-core, + pytestCheckHook, }: buildPythonPackage rec { @@ -16,13 +17,9 @@ buildPythonPackage rec { hash = "sha256-LxuX5kQsAmgevgG9hPUxAop8rqGvOCUAD1I0XDAoXg8="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; # exe are only required when testpath is used on windows # https://github.com/jupyter/testpath/blob/de8ca59539eb23b9781e55848b7d2646c8c61df9/testpath/commands.py#L128 diff --git a/pkgs/by-name/py/python/python-modules/toml/default.nix b/pkgs/by-name/py/python/python-modules/toml/default.nix index aa12d29..9932db2 100644 --- a/pkgs/by-name/py/python/python-modules/toml/default.nix +++ b/pkgs/by-name/py/python/python-modules/toml/default.nix @@ -1,4 +1,8 @@ -{ lib, buildPythonPackage, fetchPypi }: +{ + lib, + buildPythonPackage, + fetchPypi, +}: buildPythonPackage rec { pname = "toml"; diff --git a/pkgs/by-name/py/python/python-modules/tomli-w/default.nix b/pkgs/by-name/py/python/python-modules/tomli-w/default.nix index 920063f..40b3162 100644 --- a/pkgs/by-name/py/python/python-modules/tomli-w/default.nix +++ b/pkgs/by-name/py/python/python-modules/tomli-w/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, flit-core +{ + lib, + buildPythonPackage, + callPackage, + fetchFromGitHub, + flit-core, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/tomli/default.nix b/pkgs/by-name/py/python/python-modules/tomli/default.nix index e1708a7..375c566 100644 --- a/pkgs/by-name/py/python/python-modules/tomli/default.nix +++ b/pkgs/by-name/py/python/python-modules/tomli/default.nix @@ -1,9 +1,10 @@ -{ lib -, buildPythonPackage -, callPackage -, fetchFromGitHub -, flit-core -, unittestCheckHook +{ + lib, + buildPythonPackage, + callPackage, + fetchFromGitHub, + flit-core, + unittestCheckHook, # important downstream dependencies # for passthru.tests diff --git a/pkgs/by-name/py/python/python-modules/tornado/4.nix b/pkgs/by-name/py/python/python-modules/tornado/4.nix index 7476a22..c534ae8 100644 --- a/pkgs/by-name/py/python/python-modules/tornado/4.nix +++ b/pkgs/by-name/py/python/python-modules/tornado/4.nix @@ -1,10 +1,11 @@ -{ lib -, unittestCheckHook -, buildPythonPackage -, fetchPypi -, fetchpatch -, isPy27 -, pythonAtLeast +{ + lib, + unittestCheckHook, + buildPythonPackage, + fetchPypi, + fetchpatch, + isPy27, + pythonAtLeast, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/tornado/5.nix b/pkgs/by-name/py/python/python-modules/tornado/5.nix index 8ba3a8c..13d5515 100644 --- a/pkgs/by-name/py/python/python-modules/tornado/5.nix +++ b/pkgs/by-name/py/python/python-modules/tornado/5.nix @@ -1,10 +1,11 @@ -{ lib -, unittestCheckHook -, buildPythonPackage -, fetchPypi -, fetchpatch -, isPy27 -, pythonAtLeast +{ + lib, + unittestCheckHook, + buildPythonPackage, + fetchPypi, + fetchpatch, + isPy27, + pythonAtLeast, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/tornado/default.nix b/pkgs/by-name/py/python/python-modules/tornado/default.nix index 75187d1..a986c53 100644 --- a/pkgs/by-name/py/python/python-modules/tornado/default.nix +++ b/pkgs/by-name/py/python/python-modules/tornado/default.nix @@ -1,20 +1,21 @@ -{ lib -, python -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook +{ + lib, + python, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, -# for passthru.tests -, distributed -, jupyter-server -, jupyterlab -, matplotlib -, mitmproxy -, pytest-tornado -, pytest-tornasync -, pyzmq -, sockjs-tornado -, urllib3 + # for passthru.tests + distributed, + jupyter-server, + jupyterlab, + matplotlib, + mitmproxy, + pytest-tornado, + pytest-tornasync, + pyzmq, + sockjs-tornado, + urllib3, }: buildPythonPackage rec { @@ -29,9 +30,7 @@ buildPythonPackage rec { hash = "sha256-l9Ce/c2wDSmsySr9yXu5Fl/+63QkQay46aDSUTJmetA="; }; - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; disabledTestPaths = [ # additional tests that have extra dependencies, run slowly, or produce more output than a simple pass/fail @@ -62,7 +61,8 @@ buildPythonPackage rec { pytest-tornasync pyzmq sockjs-tornado - urllib3; + urllib3 + ; }; meta = with lib; { diff --git a/pkgs/by-name/py/python/python-modules/trove-classifiers/default.nix b/pkgs/by-name/py/python/python-modules/trove-classifiers/default.nix index 6482917..67dd95d 100644 --- a/pkgs/by-name/py/python/python-modules/trove-classifiers/default.nix +++ b/pkgs/by-name/py/python/python-modules/trove-classifiers/default.nix @@ -1,10 +1,11 @@ -{ lib -, buildPythonPackage -, fetchPypi -, calver -, pytestCheckHook -, pythonOlder -, setuptools +{ + lib, + buildPythonPackage, + fetchPypi, + calver, + pytestCheckHook, + pythonOlder, + setuptools, }: let @@ -32,9 +33,7 @@ let doCheck = false; # avoid infinite recursion with hatchling - nativeCheckInputs = [ - pytestCheckHook - ]; + nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "trove_classifiers" ]; @@ -49,4 +48,4 @@ let }; }; in - self +self diff --git a/pkgs/by-name/py/python/python-modules/trustme/default.nix b/pkgs/by-name/py/python/python-modules/trustme/default.nix index 4648dd7..297a666 100644 --- a/pkgs/by-name/py/python/python-modules/trustme/default.nix +++ b/pkgs/by-name/py/python/python-modules/trustme/default.nix @@ -1,12 +1,13 @@ -{ lib -, buildPythonPackage -, cryptography -, fetchPypi -, idna -, pyopenssl -, pytestCheckHook -, pythonOlder -, service-identity +{ + lib, + buildPythonPackage, + cryptography, + fetchPypi, + idna, + pyopenssl, + pytestCheckHook, + pythonOlder, + service-identity, }: buildPythonPackage rec { @@ -35,15 +36,16 @@ buildPythonPackage rec { # Some of the tests use localhost networking. __darwinAllowLocalNetworking = true; - pythonImportsCheck = [ - "trustme" - ]; + pythonImportsCheck = [ "trustme" ]; meta = with lib; { description = "High quality TLS certs while you wait, for the discerning tester"; homepage = "https://github.com/python-trio/trustme"; changelog = "https://trustme.readthedocs.io/en/latest/#change-history"; - license = with licenses; [ mit asl20 ]; + license = with licenses; [ + mit + asl20 + ]; maintainers = with maintainers; [ catern ]; }; } diff --git a/pkgs/by-name/py/python/python-modules/typing-extensions/default.nix b/pkgs/by-name/py/python/python-modules/typing-extensions/default.nix index eb1c9c5..2adeac7 100644 --- a/pkgs/by-name/py/python/python-modules/typing-extensions/default.nix +++ b/pkgs/by-name/py/python/python-modules/typing-extensions/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, flit-core -, pythonOlder +{ + lib, + buildPythonPackage, + fetchPypi, + flit-core, + pythonOlder, }: buildPythonPackage rec { @@ -18,17 +19,13 @@ buildPythonPackage rec { hash = "sha256-sKvXyJ6PuW+Y2xjYYQb/HZCraSAE63Rs9u2iaC+Rs8s="; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # Tests are not part of PyPI releases. GitHub source can't be used # as it ends with an infinite recursion doCheck = false; - pythonImportsCheck = [ - "typing_extensions" - ]; + pythonImportsCheck = [ "typing_extensions" ]; meta = with lib; { description = "Backported and Experimental Type Hints for Python"; diff --git a/pkgs/by-name/py/python/python-modules/urllib3/default.nix b/pkgs/by-name/py/python/python-modules/urllib3/default.nix index 70d8750..77742a5 100644 --- a/pkgs/by-name/py/python/python-modules/urllib3/default.nix +++ b/pkgs/by-name/py/python/python-modules/urllib3/default.nix @@ -1,88 +1,84 @@ -{ lib -, buildPythonPackage -, fetchPypi -, isPyPy +{ + lib, + buildPythonPackage, + fetchPypi, + isPyPy, -# build-system -, hatchling + # build-system + hatchling, -# optional-dependencies -, brotli -, brotlicffi -, pysocks + # optional-dependencies + brotli, + brotlicffi, + pysocks, -# tests -, backports-zoneinfo -, pytestCheckHook -, pytest-timeout -, pythonOlder -, tornado -, trustme + # tests + backports-zoneinfo, + pytestCheckHook, + pytest-timeout, + pythonOlder, + tornado, + trustme, }: -let self = buildPythonPackage rec { - pname = "urllib3"; - version = "2.2.1"; - pyproject = true; +let + self = buildPythonPackage rec { + pname = "urllib3"; + version = "2.2.1"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-0FcIdsYaueUg13bDisu7WwWndtP5/5ilyP1RYqREzxk="; + src = fetchPypi { + inherit pname version; + hash = "sha256-0FcIdsYaueUg13bDisu7WwWndtP5/5ilyP1RYqREzxk="; + }; + + nativeBuildInputs = [ hatchling ]; + + passthru.optional-dependencies = { + brotli = if isPyPy then [ brotlicffi ] else [ brotli ]; + socks = [ pysocks ]; + }; + + nativeCheckInputs = + [ + pytest-timeout + pytestCheckHook + tornado + trustme + ] + ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ] + ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); + + # Tests in urllib3 are mostly timeout-based instead of event-based and + # are therefore inherently flaky. On your own machine, the tests will + # typically build fine, but on a loaded cluster such as Hydra random + # timeouts will occur. + # + # The urllib3 test suite has two different timeouts in their test suite + # (see `test/__init__.py`): + # - SHORT_TIMEOUT + # - LONG_TIMEOUT + # When CI is in the env, LONG_TIMEOUT will be significantly increased. + # Still, failures can occur and for that reason tests are disabled. + doCheck = false; + + passthru.tests.pytest = self.overridePythonAttrs (_: { + doCheck = true; + }); + + preCheck = '' + export CI # Increases LONG_TIMEOUT + ''; + + pythonImportsCheck = [ "urllib3" ]; + + meta = with lib; { + description = "Powerful, user-friendly HTTP client for Python"; + homepage = "https://github.com/urllib3/urllib3"; + changelog = "https://github.com/urllib3/urllib3/blob/${version}/CHANGES.rst"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; }; - - nativeBuildInputs = [ - hatchling - ]; - - passthru.optional-dependencies = { - brotli = if isPyPy then [ - brotlicffi - ] else [ - brotli - ]; - socks = [ - pysocks - ]; - }; - - nativeCheckInputs = [ - pytest-timeout - pytestCheckHook - tornado - trustme - ] ++ lib.optionals (pythonOlder "3.9") [ - backports-zoneinfo - ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); - - # Tests in urllib3 are mostly timeout-based instead of event-based and - # are therefore inherently flaky. On your own machine, the tests will - # typically build fine, but on a loaded cluster such as Hydra random - # timeouts will occur. - # - # The urllib3 test suite has two different timeouts in their test suite - # (see `test/__init__.py`): - # - SHORT_TIMEOUT - # - LONG_TIMEOUT - # When CI is in the env, LONG_TIMEOUT will be significantly increased. - # Still, failures can occur and for that reason tests are disabled. - doCheck = false; - - passthru.tests.pytest = self.overridePythonAttrs (_: { doCheck = true; }); - - preCheck = '' - export CI # Increases LONG_TIMEOUT - ''; - - pythonImportsCheck = [ - "urllib3" - ]; - - meta = with lib; { - description = "Powerful, user-friendly HTTP client for Python"; - homepage = "https://github.com/urllib3/urllib3"; - changelog = "https://github.com/urllib3/urllib3/blob/${version}/CHANGES.rst"; - license = licenses.mit; - maintainers = with maintainers; [ fab ]; - }; -}; -in self +in +self diff --git a/pkgs/by-name/py/python/python-modules/virtualenv/default.nix b/pkgs/by-name/py/python/python-modules/virtualenv/default.nix index 44ca0ff..55653fd 100644 --- a/pkgs/by-name/py/python/python-modules/virtualenv/default.nix +++ b/pkgs/by-name/py/python/python-modules/virtualenv/default.nix @@ -1,22 +1,23 @@ -{ lib -, buildPythonPackage -, pythonOlder -, isPy27 -, isPyPy -, cython -, distlib -, fetchPypi -, filelock -, flaky -, hatch-vcs -, hatchling -, importlib-metadata -, platformdirs -, pytest-freezegun -, pytest-mock -, pytest-timeout -, pytestCheckHook -, time-machine +{ + lib, + buildPythonPackage, + pythonOlder, + isPy27, + isPyPy, + cython, + distlib, + fetchPypi, + filelock, + flaky, + hatch-vcs, + hatchling, + importlib-metadata, + platformdirs, + pytest-freezegun, + pytest-mock, + pytest-timeout, + pytestCheckHook, + time-machine, }: buildPythonPackage rec { @@ -40,9 +41,7 @@ buildPythonPackage rec { distlib filelock platformdirs - ] ++ lib.optionals (pythonOlder "3.8") [ - importlib-metadata - ]; + ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]; nativeCheckInputs = [ cython @@ -51,9 +50,7 @@ buildPythonPackage rec { pytest-mock pytest-timeout pytestCheckHook - ] ++ lib.optionals (!isPyPy) [ - time-machine - ]; + ] ++ lib.optionals (!isPyPy) [ time-machine ]; preCheck = '' export HOME=$(mktemp -d) @@ -65,26 +62,25 @@ buildPythonPackage rec { "tests/unit/seed/embed/test_bootstrap_link_via_app_data.py" ]; - disabledTests = [ - # Network access - "test_create_no_seed" - "test_seed_link_via_app_data" - # Permission Error - "test_bad_exe_py_info_no_raise" - ] ++ lib.optionals (pythonOlder "3.11") [ - "test_help" - ] ++ lib.optionals (isPyPy) [ - # encoding problems - "test_bash" - # permission error - "test_can_build_c_extensions" - # fails to detect pypy version - "test_discover_ok" - ]; + disabledTests = + [ + # Network access + "test_create_no_seed" + "test_seed_link_via_app_data" + # Permission Error + "test_bad_exe_py_info_no_raise" + ] + ++ lib.optionals (pythonOlder "3.11") [ "test_help" ] + ++ lib.optionals (isPyPy) [ + # encoding problems + "test_bash" + # permission error + "test_can_build_c_extensions" + # fails to detect pypy version + "test_discover_ok" + ]; - pythonImportsCheck = [ - "virtualenv" - ]; + pythonImportsCheck = [ "virtualenv" ]; meta = with lib; { description = "A tool to create isolated Python environments"; diff --git a/pkgs/by-name/py/python/python-modules/wcag-contrast-ratio/default.nix b/pkgs/by-name/py/python/python-modules/wcag-contrast-ratio/default.nix index 6a047c2..34383f5 100644 --- a/pkgs/by-name/py/python/python-modules/wcag-contrast-ratio/default.nix +++ b/pkgs/by-name/py/python/python-modules/wcag-contrast-ratio/default.nix @@ -1,8 +1,9 @@ -{ lib -, buildPythonPackage -, fetchPypi -, hypothesis -, pytestCheckHook +{ + lib, + buildPythonPackage, + fetchPypi, + hypothesis, + pytestCheckHook, }: buildPythonPackage rec { @@ -20,9 +21,7 @@ buildPythonPackage rec { pytestCheckHook ]; - pytestFlagsArray = [ - "test.py" - ]; + pytestFlagsArray = [ "test.py" ]; pythonImportsCheck = [ "wcag_contrast_ratio" ]; diff --git a/pkgs/by-name/py/python/python-modules/webencodings/default.nix b/pkgs/by-name/py/python/python-modules/webencodings/default.nix index 8a80588..334ba54 100644 --- a/pkgs/by-name/py/python/python-modules/webencodings/default.nix +++ b/pkgs/by-name/py/python/python-modules/webencodings/default.nix @@ -1,7 +1,8 @@ -{ buildPythonPackage -, lib -, fetchPypi -, pytest +{ + buildPythonPackage, + lib, + fetchPypi, + pytest, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/wheel/default.nix b/pkgs/by-name/py/python/python-modules/wheel/default.nix index 14339d2..3c0e1b4 100644 --- a/pkgs/by-name/py/python/python-modules/wheel/default.nix +++ b/pkgs/by-name/py/python/python-modules/wheel/default.nix @@ -1,7 +1,8 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, flit-core +{ + lib, + buildPythonPackage, + fetchFromGitHub, + flit-core, }: buildPythonPackage rec { @@ -22,9 +23,7 @@ buildPythonPackage rec { ''; }; - nativeBuildInputs = [ - flit-core - ]; + nativeBuildInputs = [ flit-core ]; # No tests in archive doCheck = false; diff --git a/pkgs/by-name/py/python/python-modules/zipp/default.nix b/pkgs/by-name/py/python/python-modules/zipp/default.nix index 6555d17..8019511 100644 --- a/pkgs/by-name/py/python/python-modules/zipp/default.nix +++ b/pkgs/by-name/py/python/python-modules/zipp/default.nix @@ -1,48 +1,50 @@ -{ lib -, buildPythonPackage -, fetchPypi -, func-timeout -, jaraco-itertools -, pythonOlder -, setuptools-scm +{ + lib, + buildPythonPackage, + fetchPypi, + func-timeout, + jaraco-itertools, + pythonOlder, + setuptools-scm, }: -let zipp = buildPythonPackage rec { - pname = "zipp"; - version = "3.17.0"; - format = "pyproject"; +let + zipp = buildPythonPackage rec { + pname = "zipp"; + version = "3.17.0"; + format = "pyproject"; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.7"; - src = fetchPypi { - inherit pname version; - hash = "sha256-hOZKHCjPfpHtIHi7jMjCWcsZt2lCCWyNe4SUdpDKuvA="; + src = fetchPypi { + inherit pname version; + hash = "sha256-hOZKHCjPfpHtIHi7jMjCWcsZt2lCCWyNe4SUdpDKuvA="; + }; + + nativeBuildInputs = [ setuptools-scm ]; + + # Prevent infinite recursion with pytest + doCheck = false; + + nativeCheckInputs = [ + func-timeout + jaraco-itertools + ]; + + pythonImportsCheck = [ "zipp" ]; + + passthru.tests = { + check = zipp.overridePythonAttrs (_: { + doCheck = true; + }); + }; + + meta = with lib; { + description = "Pathlib-compatible object wrapper for zip files"; + homepage = "https://github.com/jaraco/zipp"; + license = licenses.mit; + maintainers = with maintainers; [ ]; + }; }; - - nativeBuildInputs = [ - setuptools-scm - ]; - - # Prevent infinite recursion with pytest - doCheck = false; - - nativeCheckInputs = [ - func-timeout - jaraco-itertools - ]; - - pythonImportsCheck = [ - "zipp" - ]; - - passthru.tests = { - check = zipp.overridePythonAttrs (_: { doCheck = true; }); - }; - - meta = with lib; { - description = "Pathlib-compatible object wrapper for zip files"; - homepage = "https://github.com/jaraco/zipp"; - license = licenses.mit; - maintainers = with maintainers; [ ]; - }; -}; in zipp +in +zipp diff --git a/pkgs/by-name/py/python/python-modules/zope-event/default.nix b/pkgs/by-name/py/python/python-modules/zope-event/default.nix index 93cfc74..304b0fc 100644 --- a/pkgs/by-name/py/python/python-modules/zope-event/default.nix +++ b/pkgs/by-name/py/python/python-modules/zope-event/default.nix @@ -1,6 +1,7 @@ -{ lib -, buildPythonPackage -, fetchPypi +{ + lib, + buildPythonPackage, + fetchPypi, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-modules/zope-interface/default.nix b/pkgs/by-name/py/python/python-modules/zope-interface/default.nix index f834301..3cc2080 100644 --- a/pkgs/by-name/py/python/python-modules/zope-interface/default.nix +++ b/pkgs/by-name/py/python/python-modules/zope-interface/default.nix @@ -1,7 +1,8 @@ -{ lib -, buildPythonPackage -, fetchPypi -, zope-event +{ + lib, + buildPythonPackage, + fetchPypi, + zope-event, }: buildPythonPackage rec { diff --git a/pkgs/by-name/py/python/python-packages-base.nix b/pkgs/by-name/py/python/python-packages-base.nix index e2bd6cd..47f03a0 100644 --- a/pkgs/by-name/py/python/python-packages-base.nix +++ b/pkgs/by-name/py/python/python-packages-base.nix @@ -1,7 +1,8 @@ -{ pkgs -, stdenv -, lib -, python +{ + pkgs, + stdenv, + lib, + python, }: self: @@ -13,47 +14,65 @@ let # Derivations built with `buildPythonPackage` can already be overridden with `override`, `overrideAttrs`, and `overrideDerivation`. # This function introduces `overridePythonAttrs` and it overrides the call to `buildPythonPackage`. - makeOverridablePythonPackage = f: lib.mirrorFunctionArgs f (origArgs: - let - args = lib.fix (lib.extends - (_: previousAttrs: { - passthru = (previousAttrs.passthru or { }) // { - overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); - }; - }) - (_: origArgs)); - result = f args; - overrideWith = newArgs: args // (if pkgs.lib.isFunction newArgs then newArgs args else newArgs); - in - if builtins.isAttrs result then result - else if builtins.isFunction result then { - overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); - __functor = self: result; + makeOverridablePythonPackage = + f: + lib.mirrorFunctionArgs f ( + origArgs: + let + args = lib.fix ( + lib.extends (_: previousAttrs: { + passthru = (previousAttrs.passthru or { }) // { + overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); + }; + }) (_: origArgs) + ); + result = f args; + overrideWith = newArgs: args // (if pkgs.lib.isFunction newArgs then newArgs args else newArgs); + in + if builtins.isAttrs result then + result + else if builtins.isFunction result then + { + overridePythonAttrs = newArgs: makeOverridablePythonPackage f (overrideWith newArgs); + __functor = self: result; + } + else + result + ); + + mkPythonDerivation = + if python.isPy3k then ./mk-python-derivation.nix else ./python2/mk-python-derivation.nix; + + buildPythonPackage = makeOverridablePythonPackage ( + lib.makeOverridable ( + callPackage mkPythonDerivation { + inherit namePrefix; # We want Python libraries to be named like e.g. "python3.6-${name}" + inherit toPythonModule; # Libraries provide modules } - else result); + ) + ); - mkPythonDerivation = if python.isPy3k then - ./mk-python-derivation.nix - else - ./python2/mk-python-derivation.nix; - - buildPythonPackage = makeOverridablePythonPackage (lib.makeOverridable (callPackage mkPythonDerivation { - inherit namePrefix; # We want Python libraries to be named like e.g. "python3.6-${name}" - inherit toPythonModule; # Libraries provide modules - })); - - buildPythonApplication = makeOverridablePythonPackage (lib.makeOverridable (callPackage mkPythonDerivation { - namePrefix = ""; # Python applications should not have any prefix - toPythonModule = x: x; # Application does not provide modules. - })); + buildPythonApplication = makeOverridablePythonPackage ( + lib.makeOverridable ( + callPackage mkPythonDerivation { + namePrefix = ""; # Python applications should not have any prefix + toPythonModule = x: x; # Application does not provide modules. + } + ) + ); # Check whether a derivation provides a Python module. - hasPythonModule = drv: drv?pythonModule && drv.pythonModule == python; + hasPythonModule = drv: drv ? pythonModule && drv.pythonModule == python; # Get list of required Python modules given a list of derivations. - requiredPythonModules = drvs: let - modules = lib.filter hasPythonModule drvs; - in lib.unique ([python] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules)); + requiredPythonModules = + drvs: + let + modules = lib.filter hasPythonModule drvs; + in + lib.unique ( + [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules) + ); # Create a PYTHONPATH from a list of derivations. This function recurses into the items to find derivations # providing Python modules. @@ -62,10 +81,11 @@ let removePythonPrefix = lib.removePrefix namePrefix; # Convert derivation to a Python module. - toPythonModule = drv: - drv.overrideAttrs( oldAttrs: { + toPythonModule = + drv: + drv.overrideAttrs (oldAttrs: { # Use passthru in order to prevent rebuilds when possible. - passthru = (oldAttrs.passthru or {})// { + passthru = (oldAttrs.passthru or { }) // { pythonModule = python; pythonPath = [ ]; # Deprecated, for compatibility. requiredPythonModules = requiredPythonModules drv.propagatedBuildInputs; @@ -73,9 +93,10 @@ let }); # Convert a Python library to an application. - toPythonApplication = drv: - drv.overrideAttrs( oldAttrs: { - passthru = (oldAttrs.passthru or {}) // { + toPythonApplication = + drv: + drv.overrideAttrs (oldAttrs: { + passthru = (oldAttrs.passthru or { }) // { # Remove Python prefix from name so we have a "normal" name. # While the prefix shows up in the store path, it won't be # used by `nix-env`. @@ -84,15 +105,37 @@ let }; }); - disabled = drv: throw "${removePythonPrefix (drv.pname or drv.name)} not supported for interpreter ${python.executable}"; + disabled = + drv: + throw "${ + removePythonPrefix (drv.pname or drv.name) + } not supported for interpreter ${python.executable}"; disabledIf = x: drv: if x then disabled drv else drv; -in { +in +{ inherit lib pkgs stdenv; - inherit (python.passthru) isPy27 isPy37 isPy38 isPy39 isPy310 isPy311 isPy3k isPyPy pythonAtLeast pythonOlder; + inherit (python.passthru) + isPy27 + isPy37 + isPy38 + isPy39 + isPy310 + isPy311 + isPy3k + isPyPy + pythonAtLeast + pythonOlder + ; inherit buildPythonPackage buildPythonApplication; - inherit hasPythonModule requiredPythonModules makePythonPath disabled disabledIf; + inherit + hasPythonModule + requiredPythonModules + makePythonPath + disabled + disabledIf + ; inherit toPythonModule toPythonApplication; python = toPythonModule python; diff --git a/pkgs/by-name/py/python/python-packages.nix b/pkgs/by-name/py/python/python-packages.nix index 286304e..c6844b7 100644 --- a/pkgs/by-name/py/python/python-packages.nix +++ b/pkgs/by-name/py/python/python-packages.nix @@ -10,17356 +10,17354 @@ self: super: with self; { bootstrap = lib.recurseIntoAttrs { flit-core = toPythonModule (callPackage ./python-modules/bootstrap/flit-core { }); - installer = toPythonModule (callPackage ./python-modules/bootstrap/installer { - inherit (bootstrap) flit-core; - }); - build = toPythonModule (callPackage ./python-modules/bootstrap/build { - inherit (bootstrap) flit-core installer; - }); - packaging = toPythonModule (callPackage ./python-modules/bootstrap/packaging { - inherit (bootstrap) flit-core installer; - }); + installer = toPythonModule ( + callPackage ./python-modules/bootstrap/installer { inherit (bootstrap) flit-core; } + ); + build = toPythonModule ( + callPackage ./python-modules/bootstrap/build { inherit (bootstrap) flit-core installer; } + ); + packaging = toPythonModule ( + callPackage ./python-modules/bootstrap/packaging { inherit (bootstrap) flit-core installer; } + ); }; setuptools = callPackage ./python-modules/setuptools { }; -# a2wsgi = callPackage ./python-modules/a2wsgi { }; + # a2wsgi = callPackage ./python-modules/a2wsgi { }; -# aadict = callPackage ./python-modules/aadict { }; + # aadict = callPackage ./python-modules/aadict { }; -# aafigure = callPackage ./python-modules/aafigure { }; + # aafigure = callPackage ./python-modules/aafigure { }; -# aardwolf = callPackage ./python-modules/aardwolf { }; + # aardwolf = callPackage ./python-modules/aardwolf { }; -# abjad = callPackage ./python-modules/abjad { }; + # abjad = callPackage ./python-modules/abjad { }; -# about-time = callPackage ./python-modules/about-time { }; + # about-time = callPackage ./python-modules/about-time { }; -# absl-py = callPackage ./python-modules/absl-py { }; + # absl-py = callPackage ./python-modules/absl-py { }; -# accessible-pygments = callPackage ./python-modules/accessible-pygments { }; + # accessible-pygments = callPackage ./python-modules/accessible-pygments { }; -# accelerate = callPackage ./python-modules/accelerate { }; + # accelerate = callPackage ./python-modules/accelerate { }; -# accuweather = callPackage ./python-modules/accuweather { }; + # accuweather = callPackage ./python-modules/accuweather { }; -# accupy = callPackage ./python-modules/accupy { }; + # accupy = callPackage ./python-modules/accupy { }; -# acme = callPackage ./python-modules/acme { }; + # acme = callPackage ./python-modules/acme { }; -# acme-tiny = callPackage ./python-modules/acme-tiny { }; + # acme-tiny = callPackage ./python-modules/acme-tiny { }; -# acoustics = callPackage ./python-modules/acoustics { }; + # acoustics = callPackage ./python-modules/acoustics { }; -# acquire = callPackage ./python-modules/acquire { }; + # acquire = callPackage ./python-modules/acquire { }; -# actdiag = callPackage ./python-modules/actdiag { }; + # actdiag = callPackage ./python-modules/actdiag { }; -# acunetix = callPackage ./python-modules/acunetix { }; + # acunetix = callPackage ./python-modules/acunetix { }; -# adafruit-io = callPackage ./python-modules/adafruit-io { }; + # adafruit-io = callPackage ./python-modules/adafruit-io { }; -# adafruit-platformdetect = callPackage ./python-modules/adafruit-platformdetect { }; + # adafruit-platformdetect = callPackage ./python-modules/adafruit-platformdetect { }; -# adafruit-pureio = callPackage ./python-modules/adafruit-pureio { }; + # adafruit-pureio = callPackage ./python-modules/adafruit-pureio { }; -# adal = callPackage ./python-modules/adal { }; + # adal = callPackage ./python-modules/adal { }; -# adax = callPackage ./python-modules/adax { }; + # adax = callPackage ./python-modules/adax { }; -# adax-local = callPackage ./python-modules/adax-local { }; + # adax-local = callPackage ./python-modules/adax-local { }; -# adb-enhanced = callPackage ./python-modules/adb-enhanced { }; + # adb-enhanced = callPackage ./python-modules/adb-enhanced { }; -# adb-homeassistant = callPackage ./python-modules/adb-homeassistant { }; + # adb-homeassistant = callPackage ./python-modules/adb-homeassistant { }; -# adb-shell = callPackage ./python-modules/adb-shell { }; + # adb-shell = callPackage ./python-modules/adb-shell { }; -# adblock = callPackage ./python-modules/adblock { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; -# }; + # adblock = callPackage ./python-modules/adblock { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; + # }; -# add-trailing-comma = callPackage ./python-modules/add-trailing-comma { }; + # add-trailing-comma = callPackage ./python-modules/add-trailing-comma { }; -# addict = callPackage ./python-modules/addict { }; + # addict = callPackage ./python-modules/addict { }; -# adext = callPackage ./python-modules/adext { }; + # adext = callPackage ./python-modules/adext { }; -# adguardhome = callPackage ./python-modules/adguardhome { }; + # adguardhome = callPackage ./python-modules/adguardhome { }; -# adjusttext = callPackage ./python-modules/adjusttext { }; + # adjusttext = callPackage ./python-modules/adjusttext { }; -# adlfs = callPackage ./python-modules/adlfs { }; + # adlfs = callPackage ./python-modules/adlfs { }; -# advantage-air = callPackage ./python-modules/advantage-air { }; + # advantage-air = callPackage ./python-modules/advantage-air { }; -# advocate = callPackage ./python-modules/advocate { }; + # advocate = callPackage ./python-modules/advocate { }; -# aemet-opendata = callPackage ./python-modules/aemet-opendata { }; + # aemet-opendata = callPackage ./python-modules/aemet-opendata { }; -# aenum = callPackage ./python-modules/aenum { }; + # aenum = callPackage ./python-modules/aenum { }; -# aeppl = callPackage ./python-modules/aeppl { }; + # aeppl = callPackage ./python-modules/aeppl { }; -# aesara = callPackage ./python-modules/aesara { }; + # aesara = callPackage ./python-modules/aesara { }; -# aesedb = callPackage ./python-modules/aesedb { }; + # aesedb = callPackage ./python-modules/aesedb { }; -# aetcd = callPackage ./python-modules/aetcd { }; + # aetcd = callPackage ./python-modules/aetcd { }; -# afdko = callPackage ./python-modules/afdko { }; + # afdko = callPackage ./python-modules/afdko { }; -# affine = callPackage ./python-modules/affine { }; + # affine = callPackage ./python-modules/affine { }; -# afsapi = callPackage ./python-modules/afsapi { }; + # afsapi = callPackage ./python-modules/afsapi { }; -# agate = callPackage ./python-modules/agate { }; + # agate = callPackage ./python-modules/agate { }; -# agate-dbf = callPackage ./python-modules/agate-dbf { }; + # agate-dbf = callPackage ./python-modules/agate-dbf { }; -# agate-excel = callPackage ./python-modules/agate-excel { }; + # agate-excel = callPackage ./python-modules/agate-excel { }; -# agate-sql = callPackage ./python-modules/agate-sql { }; + # agate-sql = callPackage ./python-modules/agate-sql { }; -# agent-py = callPackage ./python-modules/agent-py { }; + # agent-py = callPackage ./python-modules/agent-py { }; -# ago = callPackage ./python-modules/ago { }; + # ago = callPackage ./python-modules/ago { }; -# aggdraw = callPackage ./python-modules/aggdraw { }; + # aggdraw = callPackage ./python-modules/aggdraw { }; -# aigpy = callPackage ./python-modules/aigpy { }; + # aigpy = callPackage ./python-modules/aigpy { }; -# aio-geojson-client = callPackage ./python-modules/aio-geojson-client { }; + # aio-geojson-client = callPackage ./python-modules/aio-geojson-client { }; -# aio-geojson-generic-client = callPackage ./python-modules/aio-geojson-generic-client { }; + # aio-geojson-generic-client = callPackage ./python-modules/aio-geojson-generic-client { }; -# aio-geojson-geonetnz-quakes = callPackage ./python-modules/aio-geojson-geonetnz-quakes { }; + # aio-geojson-geonetnz-quakes = callPackage ./python-modules/aio-geojson-geonetnz-quakes { }; -# aio-geojson-geonetnz-volcano = callPackage ./python-modules/aio-geojson-geonetnz-volcano { }; + # aio-geojson-geonetnz-volcano = callPackage ./python-modules/aio-geojson-geonetnz-volcano { }; -# aio-geojson-nsw-rfs-incidents = callPackage ./python-modules/aio-geojson-nsw-rfs-incidents { }; + # aio-geojson-nsw-rfs-incidents = callPackage ./python-modules/aio-geojson-nsw-rfs-incidents { }; -# aio-geojson-usgs-earthquakes = callPackage ./python-modules/aio-geojson-usgs-earthquakes { }; + # aio-geojson-usgs-earthquakes = callPackage ./python-modules/aio-geojson-usgs-earthquakes { }; -# aio-georss-client = callPackage ./python-modules/aio-georss-client { }; + # aio-georss-client = callPackage ./python-modules/aio-georss-client { }; -# aio-georss-gdacs = callPackage ./python-modules/aio-georss-gdacs { }; + # aio-georss-gdacs = callPackage ./python-modules/aio-georss-gdacs { }; -# aio-pika = callPackage ./python-modules/aio-pika { }; + # aio-pika = callPackage ./python-modules/aio-pika { }; -# aioairzone = callPackage ./python-modules/aioairzone { }; + # aioairzone = callPackage ./python-modules/aioairzone { }; -# aioairzone-cloud = callPackage ./python-modules/aioairzone-cloud { }; + # aioairzone-cloud = callPackage ./python-modules/aioairzone-cloud { }; -# aioairq = callPackage ./python-modules/aioairq { }; + # aioairq = callPackage ./python-modules/aioairq { }; -# aioaladdinconnect = callPackage ./python-modules/aioaladdinconnect { }; + # aioaladdinconnect = callPackage ./python-modules/aioaladdinconnect { }; -# aioambient = callPackage ./python-modules/aioambient { }; + # aioambient = callPackage ./python-modules/aioambient { }; -# aioapcaccess = callPackage ./python-modules/aioapcaccess { }; + # aioapcaccess = callPackage ./python-modules/aioapcaccess { }; -# aioapns = callPackage ./python-modules/aioapns { }; + # aioapns = callPackage ./python-modules/aioapns { }; -# aiocron = callPackage ./python-modules/aiocron { }; + # aiocron = callPackage ./python-modules/aiocron { }; -# ailment = callPackage ./python-modules/ailment { }; + # ailment = callPackage ./python-modules/ailment { }; -# aioamqp = callPackage ./python-modules/aioamqp { }; + # aioamqp = callPackage ./python-modules/aioamqp { }; -# aioaseko = callPackage ./python-modules/aioaseko { }; + # aioaseko = callPackage ./python-modules/aioaseko { }; -# aioasuswrt = callPackage ./python-modules/aioasuswrt { }; + # aioasuswrt = callPackage ./python-modules/aioasuswrt { }; -# aioautomower = callPackage ./python-modules/aioautomower { }; + # aioautomower = callPackage ./python-modules/aioautomower { }; -# aioazuredevops = callPackage ./python-modules/aioazuredevops { }; + # aioazuredevops = callPackage ./python-modules/aioazuredevops { }; -# aiobafi6 = callPackage ./python-modules/aiobafi6 { }; + # aiobafi6 = callPackage ./python-modules/aiobafi6 { }; -# aioboto3 = callPackage ./python-modules/aioboto3 { }; + # aioboto3 = callPackage ./python-modules/aioboto3 { }; -# aioblescan = callPackage ./python-modules/aioblescan { }; + # aioblescan = callPackage ./python-modules/aioblescan { }; -# aiocache = callPackage ./python-modules/aiocache { }; + # aiocache = callPackage ./python-modules/aiocache { }; -# aiocoap = callPackage ./python-modules/aiocoap { }; + # aiocoap = callPackage ./python-modules/aiocoap { }; -# aiocomelit = callPackage ./python-modules/aiocomelit { }; + # aiocomelit = callPackage ./python-modules/aiocomelit { }; -# aioconsole = callPackage ./python-modules/aioconsole { }; + # aioconsole = callPackage ./python-modules/aioconsole { }; -# aiocontextvars = callPackage ./python-modules/aiocontextvars { }; + # aiocontextvars = callPackage ./python-modules/aiocontextvars { }; -# aiocsv = callPackage ./python-modules/aiocsv { }; + # aiocsv = callPackage ./python-modules/aiocsv { }; -# aiocurrencylayer = callPackage ./python-modules/aiocurrencylayer { }; + # aiocurrencylayer = callPackage ./python-modules/aiocurrencylayer { }; -# aiodhcpwatcher = callPackage ./python-modules/aiodhcpwatcher { }; + # aiodhcpwatcher = callPackage ./python-modules/aiodhcpwatcher { }; -# aiodiscover = callPackage ./python-modules/aiodiscover { }; + # aiodiscover = callPackage ./python-modules/aiodiscover { }; -# aiodns = callPackage ./python-modules/aiodns { }; + # aiodns = callPackage ./python-modules/aiodns { }; -# aiodocker = callPackage ./python-modules/aiodocker { }; + # aiodocker = callPackage ./python-modules/aiodocker { }; -# aioeafm = callPackage ./python-modules/aioeafm { }; + # aioeafm = callPackage ./python-modules/aioeafm { }; -# aioeagle = callPackage ./python-modules/aioeagle { }; + # aioeagle = callPackage ./python-modules/aioeagle { }; -# aioecowitt = callPackage ./python-modules/aioecowitt { }; + # aioecowitt = callPackage ./python-modules/aioecowitt { }; -# aioelectricitymaps = callPackage ./python-modules/aioelectricitymaps { }; + # aioelectricitymaps = callPackage ./python-modules/aioelectricitymaps { }; -# aioemonitor = callPackage ./python-modules/aioemonitor { }; + # aioemonitor = callPackage ./python-modules/aioemonitor { }; -# aioesphomeapi = callPackage ./python-modules/aioesphomeapi { }; + # aioesphomeapi = callPackage ./python-modules/aioesphomeapi { }; -# aioextensions = callPackage ./python-modules/aioextensions { }; + # aioextensions = callPackage ./python-modules/aioextensions { }; -# aiofile = callPackage ./python-modules/aiofile { }; + # aiofile = callPackage ./python-modules/aiofile { }; -# aiofiles = callPackage ./python-modules/aiofiles { }; + # aiofiles = callPackage ./python-modules/aiofiles { }; -# aioflo = callPackage ./python-modules/aioflo { }; + # aioflo = callPackage ./python-modules/aioflo { }; -# aioftp = callPackage ./python-modules/aioftp { }; + # aioftp = callPackage ./python-modules/aioftp { }; -# aioguardian = callPackage ./python-modules/aioguardian { }; + # aioguardian = callPackage ./python-modules/aioguardian { }; -# aiogithubapi = callPackage ./python-modules/aiogithubapi { }; + # aiogithubapi = callPackage ./python-modules/aiogithubapi { }; -# aiogram = callPackage ./python-modules/aiogram { }; + # aiogram = callPackage ./python-modules/aiogram { }; -# aiohappyeyeballs = callPackage ./python-modules/aiohappyeyeballs { }; + # aiohappyeyeballs = callPackage ./python-modules/aiohappyeyeballs { }; -# aioharmony = callPackage ./python-modules/aioharmony { }; + # aioharmony = callPackage ./python-modules/aioharmony { }; -# aiohomekit = callPackage ./python-modules/aiohomekit { }; + # aiohomekit = callPackage ./python-modules/aiohomekit { }; aiohttp = callPackage ./python-modules/aiohttp { }; -# aiohttp-apispec = callPackage ./python-modules/aiohttp-apispec { }; + # aiohttp-apispec = callPackage ./python-modules/aiohttp-apispec { }; -# aiohttp-basicauth = callPackage ./python-modules/aiohttp-basicauth { }; + # aiohttp-basicauth = callPackage ./python-modules/aiohttp-basicauth { }; -# aiohttp-client-cache = callPackage ./python-modules/aiohttp-client-cache { }; + # aiohttp-client-cache = callPackage ./python-modules/aiohttp-client-cache { }; -# aiohttp-cors = callPackage ./python-modules/aiohttp-cors { }; + # aiohttp-cors = callPackage ./python-modules/aiohttp-cors { }; -# aiohttp-fast-url-dispatcher = callPackage ./python-modules/aiohttp-fast-url-dispatcher { }; + # aiohttp-fast-url-dispatcher = callPackage ./python-modules/aiohttp-fast-url-dispatcher { }; -# aiohttp-jinja2 = callPackage ./python-modules/aiohttp-jinja2 { }; + # aiohttp-jinja2 = callPackage ./python-modules/aiohttp-jinja2 { }; -# aiohttp-oauthlib = callPackage ./python-modules/aiohttp-oauthlib { }; + # aiohttp-oauthlib = callPackage ./python-modules/aiohttp-oauthlib { }; -# aiohttp-openmetrics = callPackage ./python-modules/aiohttp-openmetrics { }; + # aiohttp-openmetrics = callPackage ./python-modules/aiohttp-openmetrics { }; -# aiohttp-remotes = callPackage ./python-modules/aiohttp-remotes { }; + # aiohttp-remotes = callPackage ./python-modules/aiohttp-remotes { }; -# aiohttp-retry = callPackage ./python-modules/aiohttp-retry { }; + # aiohttp-retry = callPackage ./python-modules/aiohttp-retry { }; -# aiohttp-socks = callPackage ./python-modules/aiohttp-socks { }; + # aiohttp-socks = callPackage ./python-modules/aiohttp-socks { }; -# aiohttp-swagger = callPackage ./python-modules/aiohttp-swagger { }; + # aiohttp-swagger = callPackage ./python-modules/aiohttp-swagger { }; -# aiohttp-wsgi = callPackage ./python-modules/aiohttp-wsgi { }; + # aiohttp-wsgi = callPackage ./python-modules/aiohttp-wsgi { }; -# aiohttp-zlib-ng = callPackage ./python-modules/aiohttp-zlib-ng { }; + # aiohttp-zlib-ng = callPackage ./python-modules/aiohttp-zlib-ng { }; -# aioitertools = callPackage ./python-modules/aioitertools { }; + # aioitertools = callPackage ./python-modules/aioitertools { }; -# aiobiketrax = callPackage ./python-modules/aiobiketrax { }; + # aiobiketrax = callPackage ./python-modules/aiobiketrax { }; -# aiobotocore = callPackage ./python-modules/aiobotocore { }; + # aiobotocore = callPackage ./python-modules/aiobotocore { }; -# aiobroadlink = callPackage ./python-modules/aiobroadlink { }; + # aiobroadlink = callPackage ./python-modules/aiobroadlink { }; -# aiohue = callPackage ./python-modules/aiohue { }; + # aiohue = callPackage ./python-modules/aiohue { }; -# aiohwenergy = callPackage ./python-modules/aiohwenergy { }; + # aiohwenergy = callPackage ./python-modules/aiohwenergy { }; -# aioimaplib = callPackage ./python-modules/aioimaplib { }; + # aioimaplib = callPackage ./python-modules/aioimaplib { }; -# aioinflux = callPackage ./python-modules/aioinflux { }; + # aioinflux = callPackage ./python-modules/aioinflux { }; -# aiojobs = callPackage ./python-modules/aiojobs { }; + # aiojobs = callPackage ./python-modules/aiojobs { }; -# aiokafka = callPackage ./python-modules/aiokafka { }; + # aiokafka = callPackage ./python-modules/aiokafka { }; -# aiokef = callPackage ./python-modules/aiokef { }; + # aiokef = callPackage ./python-modules/aiokef { }; -# aiolookin = callPackage ./python-modules/aiolookin { }; + # aiolookin = callPackage ./python-modules/aiolookin { }; -# aiolifx = callPackage ./python-modules/aiolifx { }; + # aiolifx = callPackage ./python-modules/aiolifx { }; -# aiolifx-connection = callPackage ./python-modules/aiolifx-connection { }; + # aiolifx-connection = callPackage ./python-modules/aiolifx-connection { }; -# aiolifx-effects = callPackage ./python-modules/aiolifx-effects { }; + # aiolifx-effects = callPackage ./python-modules/aiolifx-effects { }; -# aiolifx-themes = callPackage ./python-modules/aiolifx-themes { }; + # aiolifx-themes = callPackage ./python-modules/aiolifx-themes { }; -# aiolimiter = callPackage ./python-modules/aiolimiter { }; + # aiolimiter = callPackage ./python-modules/aiolimiter { }; -# aiolip = callPackage ./python-modules/aiolip { }; + # aiolip = callPackage ./python-modules/aiolip { }; -# aiolivisi = callPackage ./python-modules/aiolivisi { }; + # aiolivisi = callPackage ./python-modules/aiolivisi { }; -# aiolyric = callPackage ./python-modules/aiolyric { }; + # aiolyric = callPackage ./python-modules/aiolyric { }; -# aiomisc = callPackage ./python-modules/aiomisc { }; + # aiomisc = callPackage ./python-modules/aiomisc { }; -# aiomisc-pytest = callPackage ./python-modules/aiomisc-pytest { }; + # aiomisc-pytest = callPackage ./python-modules/aiomisc-pytest { }; -# aiomodernforms = callPackage ./python-modules/aiomodernforms { }; + # aiomodernforms = callPackage ./python-modules/aiomodernforms { }; -# aiomqtt = callPackage ./python-modules/aiomqtt { }; + # aiomqtt = callPackage ./python-modules/aiomqtt { }; -# aiomultiprocess = callPackage ./python-modules/aiomultiprocess { }; + # aiomultiprocess = callPackage ./python-modules/aiomultiprocess { }; -# aiomusiccast = callPackage ./python-modules/aiomusiccast { }; + # aiomusiccast = callPackage ./python-modules/aiomusiccast { }; -# aiomysensors = callPackage ./python-modules/aiomysensors { }; + # aiomysensors = callPackage ./python-modules/aiomysensors { }; -# aiomysql = callPackage ./python-modules/aiomysql { }; + # aiomysql = callPackage ./python-modules/aiomysql { }; -# aionanoleaf = callPackage ./python-modules/aionanoleaf { }; + # aionanoleaf = callPackage ./python-modules/aionanoleaf { }; -# aionotion = callPackage ./python-modules/aionotion { }; + # aionotion = callPackage ./python-modules/aionotion { }; -# aionut = callPackage ./python-modules/aionut { }; + # aionut = callPackage ./python-modules/aionut { }; -# aiooncue = callPackage ./python-modules/aiooncue { }; + # aiooncue = callPackage ./python-modules/aiooncue { }; -# aioopenexchangerates = callPackage ./python-modules/aioopenexchangerates { }; + # aioopenexchangerates = callPackage ./python-modules/aioopenexchangerates { }; -# aioopenssl = callPackage ./python-modules/aioopenssl { }; + # aioopenssl = callPackage ./python-modules/aioopenssl { }; -# aiooss2 = callPackage ./python-modules/aiooss2 { }; + # aiooss2 = callPackage ./python-modules/aiooss2 { }; -# aiooui = callPackage ./python-modules/aiooui { }; + # aiooui = callPackage ./python-modules/aiooui { }; -# aiopegelonline = callPackage ./python-modules/aiopegelonline { }; + # aiopegelonline = callPackage ./python-modules/aiopegelonline { }; -# aiopg = callPackage ./python-modules/aiopg { }; + # aiopg = callPackage ./python-modules/aiopg { }; -# aiopinboard = callPackage ./python-modules/aiopinboard { }; + # aiopinboard = callPackage ./python-modules/aiopinboard { }; -# aioprocessing = callPackage ./python-modules/aioprocessing { }; + # aioprocessing = callPackage ./python-modules/aioprocessing { }; -# aioprometheus = callPackage ./python-modules/aioprometheus { }; + # aioprometheus = callPackage ./python-modules/aioprometheus { }; -# aiopulse = callPackage ./python-modules/aiopulse { }; + # aiopulse = callPackage ./python-modules/aiopulse { }; -# aiopurpleair = callPackage ./python-modules/aiopurpleair { }; + # aiopurpleair = callPackage ./python-modules/aiopurpleair { }; -# aiopvapi = callPackage ./python-modules/aiopvapi { }; + # aiopvapi = callPackage ./python-modules/aiopvapi { }; -# aiopvpc = callPackage ./python-modules/aiopvpc { }; + # aiopvpc = callPackage ./python-modules/aiopvpc { }; -# aiopyarr = callPackage ./python-modules/aiopyarr { }; + # aiopyarr = callPackage ./python-modules/aiopyarr { }; -# aiopylgtv = callPackage ./python-modules/aiopylgtv { }; + # aiopylgtv = callPackage ./python-modules/aiopylgtv { }; -# aioqsw = callPackage ./python-modules/aioqsw { }; + # aioqsw = callPackage ./python-modules/aioqsw { }; -# aioquic = callPackage ./python-modules/aioquic { }; + # aioquic = callPackage ./python-modules/aioquic { }; -# aioraven = callPackage ./python-modules/aioraven { }; + # aioraven = callPackage ./python-modules/aioraven { }; -# aiorecollect = callPackage ./python-modules/aiorecollect { }; + # aiorecollect = callPackage ./python-modules/aiorecollect { }; -# aioredis = callPackage ./python-modules/aioredis { }; + # aioredis = callPackage ./python-modules/aioredis { }; -# aioresponses = callPackage ./python-modules/aioresponses { }; + # aioresponses = callPackage ./python-modules/aioresponses { }; -# aioridwell = callPackage ./python-modules/aioridwell { }; + # aioridwell = callPackage ./python-modules/aioridwell { }; -# aiormq = callPackage ./python-modules/aiormq { }; + # aiormq = callPackage ./python-modules/aiormq { }; -# aiorpcx = callPackage ./python-modules/aiorpcx { }; + # aiorpcx = callPackage ./python-modules/aiorpcx { }; -# aiortm = callPackage ./python-modules/aiortm { }; + # aiortm = callPackage ./python-modules/aiortm { }; -# aiortsp = callPackage ./python-modules/aiortsp { }; + # aiortsp = callPackage ./python-modules/aiortsp { }; -# aioruckus = callPackage ./python-modules/aioruckus { }; + # aioruckus = callPackage ./python-modules/aioruckus { }; -# aiorun = callPackage ./python-modules/aiorun { }; + # aiorun = callPackage ./python-modules/aiorun { }; -# aioruuvigateway = callPackage ./python-modules/aioruuvigateway { }; + # aioruuvigateway = callPackage ./python-modules/aioruuvigateway { }; -# aiorwlock = callPackage ./python-modules/aiorwlock { }; + # aiorwlock = callPackage ./python-modules/aiorwlock { }; -# aiosasl = callPackage ./python-modules/aiosasl { }; + # aiosasl = callPackage ./python-modules/aiosasl { }; -# aiosql = callPackage ./python-modules/aiosql { }; + # aiosql = callPackage ./python-modules/aiosql { }; -# aiosenz = callPackage ./python-modules/aiosenz { }; + # aiosenz = callPackage ./python-modules/aiosenz { }; -# aioserial = callPackage ./python-modules/aioserial { }; + # aioserial = callPackage ./python-modules/aioserial { }; -# aioshelly = callPackage ./python-modules/aioshelly { }; + # aioshelly = callPackage ./python-modules/aioshelly { }; -# aioshutil = callPackage ./python-modules/aioshutil { }; + # aioshutil = callPackage ./python-modules/aioshutil { }; -# aioskybell = callPackage ./python-modules/aioskybell { }; + # aioskybell = callPackage ./python-modules/aioskybell { }; -# aiosignal = callPackage ./python-modules/aiosignal { }; + # aiosignal = callPackage ./python-modules/aiosignal { }; -# aioslimproto = callPackage ./python-modules/aioslimproto { }; + # aioslimproto = callPackage ./python-modules/aioslimproto { }; -# aiosmb = callPackage ./python-modules/aiosmb { }; + # aiosmb = callPackage ./python-modules/aiosmb { }; -# aiosmtpd = callPackage ./python-modules/aiosmtpd { }; + # aiosmtpd = callPackage ./python-modules/aiosmtpd { }; -# aiosmtplib = callPackage ./python-modules/aiosmtplib { }; + # aiosmtplib = callPackage ./python-modules/aiosmtplib { }; -# aiosomecomfort = callPackage ./python-modules/aiosomecomfort { }; + # aiosomecomfort = callPackage ./python-modules/aiosomecomfort { }; -# aiosqlite = callPackage ./python-modules/aiosqlite { }; + # aiosqlite = callPackage ./python-modules/aiosqlite { }; -# aiosteamist = callPackage ./python-modules/aiosteamist { }; + # aiosteamist = callPackage ./python-modules/aiosteamist { }; -# aiostream = callPackage ./python-modules/aiostream { }; + # aiostream = callPackage ./python-modules/aiostream { }; -# aioswitcher = callPackage ./python-modules/aioswitcher { }; + # aioswitcher = callPackage ./python-modules/aioswitcher { }; -# aiosyncthing = callPackage ./python-modules/aiosyncthing { }; + # aiosyncthing = callPackage ./python-modules/aiosyncthing { }; -# aiotankerkoenig = callPackage ./python-modules/aiotankerkoenig { }; + # aiotankerkoenig = callPackage ./python-modules/aiotankerkoenig { }; -# aiotractive = callPackage ./python-modules/aiotractive { }; + # aiotractive = callPackage ./python-modules/aiotractive { }; -# aiounifi = callPackage ./python-modules/aiounifi { }; + # aiounifi = callPackage ./python-modules/aiounifi { }; -# aiounittest = callPackage ./python-modules/aiounittest { }; + # aiounittest = callPackage ./python-modules/aiounittest { }; -# aiovlc = callPackage ./python-modules/aiovlc { }; + # aiovlc = callPackage ./python-modules/aiovlc { }; -# aiovodafone = callPackage ./python-modules/aiovodafone { }; + # aiovodafone = callPackage ./python-modules/aiovodafone { }; -# aiowatttime = callPackage ./python-modules/aiowatttime { }; + # aiowatttime = callPackage ./python-modules/aiowatttime { }; -# aiowaqi = callPackage ./python-modules/aiowaqi { }; + # aiowaqi = callPackage ./python-modules/aiowaqi { }; -# aioweenect = callPackage ./python-modules/aioweenect { }; + # aioweenect = callPackage ./python-modules/aioweenect { }; -# aiowebostv = callPackage ./python-modules/aiowebostv { }; + # aiowebostv = callPackage ./python-modules/aiowebostv { }; -# aiowinreg = callPackage ./python-modules/aiowinreg { }; + # aiowinreg = callPackage ./python-modules/aiowinreg { }; -# aiowithings = callPackage ./python-modules/aiowithings { }; + # aiowithings = callPackage ./python-modules/aiowithings { }; -# aioxmpp = callPackage ./python-modules/aioxmpp { }; + # aioxmpp = callPackage ./python-modules/aioxmpp { }; -# aioymaps = callPackage ./python-modules/aioymaps { }; + # aioymaps = callPackage ./python-modules/aioymaps { }; -# aiozeroconf = callPackage ./python-modules/aiozeroconf { }; + # aiozeroconf = callPackage ./python-modules/aiozeroconf { }; -# airium = callPackage ./python-modules/airium { }; + # airium = callPackage ./python-modules/airium { }; -# airly = callPackage ./python-modules/airly { }; + # airly = callPackage ./python-modules/airly { }; -# airthings-ble = callPackage ./python-modules/airthings-ble { }; + # airthings-ble = callPackage ./python-modules/airthings-ble { }; -# airthings-cloud = callPackage ./python-modules/airthings-cloud { }; + # airthings-cloud = callPackage ./python-modules/airthings-cloud { }; -# airtouch4pyapi = callPackage ./python-modules/airtouch4pyapi { }; + # airtouch4pyapi = callPackage ./python-modules/airtouch4pyapi { }; -# airtouch5py = callPackage ./python-modules/airtouch5py { }; + # airtouch5py = callPackage ./python-modules/airtouch5py { }; -# ajpy = callPackage ./python-modules/ajpy { }; + # ajpy = callPackage ./python-modules/ajpy { }; -# ajsonrpc = callPackage ./python-modules/ajsonrpc { }; + # ajsonrpc = callPackage ./python-modules/ajsonrpc { }; alabaster = callPackage ./python-modules/alabaster { }; -# aladdin-connect = callPackage ./python-modules/aladdin-connect { }; + # aladdin-connect = callPackage ./python-modules/aladdin-connect { }; -# alarmdecoder = callPackage ./python-modules/alarmdecoder { }; + # alarmdecoder = callPackage ./python-modules/alarmdecoder { }; -# albumentations = callPackage ./python-modules/albumentations { }; + # albumentations = callPackage ./python-modules/albumentations { }; -# ale-py = callPackage ./python-modules/ale-py { }; + # ale-py = callPackage ./python-modules/ale-py { }; -# alectryon = callPackage ./python-modules/alectryon { }; + # alectryon = callPackage ./python-modules/alectryon { }; -# alembic = callPackage ./python-modules/alembic { }; + # alembic = callPackage ./python-modules/alembic { }; -# alexapy = callPackage ./python-modules/alexapy { }; + # alexapy = callPackage ./python-modules/alexapy { }; -# algebraic-data-types = callPackage ./python-modules/algebraic-data-types { }; + # algebraic-data-types = callPackage ./python-modules/algebraic-data-types { }; -# alive-progress = callPackage ./python-modules/alive-progress { }; + # alive-progress = callPackage ./python-modules/alive-progress { }; -# aliyun-python-sdk-cdn = callPackage ./python-modules/aliyun-python-sdk-cdn { }; + # aliyun-python-sdk-cdn = callPackage ./python-modules/aliyun-python-sdk-cdn { }; -# aliyun-python-sdk-config = callPackage ./python-modules/aliyun-python-sdk-config { }; + # aliyun-python-sdk-config = callPackage ./python-modules/aliyun-python-sdk-config { }; -# aliyun-python-sdk-core = callPackage ./python-modules/aliyun-python-sdk-core { }; + # aliyun-python-sdk-core = callPackage ./python-modules/aliyun-python-sdk-core { }; -# aliyun-python-sdk-dbfs = callPackage ./python-modules/aliyun-python-sdk-dbfs { }; + # aliyun-python-sdk-dbfs = callPackage ./python-modules/aliyun-python-sdk-dbfs { }; -# aliyun-python-sdk-iot = callPackage ./python-modules/aliyun-python-sdk-iot { }; + # aliyun-python-sdk-iot = callPackage ./python-modules/aliyun-python-sdk-iot { }; -# aliyun-python-sdk-kms = callPackage ./python-modules/aliyun-python-sdk-kms { }; + # aliyun-python-sdk-kms = callPackage ./python-modules/aliyun-python-sdk-kms { }; -# aliyun-python-sdk-sts = callPackage ./python-modules/aliyun-python-sdk-sts { }; + # aliyun-python-sdk-sts = callPackage ./python-modules/aliyun-python-sdk-sts { }; -# allpairspy = callPackage ./python-modules/allpairspy { }; + # allpairspy = callPackage ./python-modules/allpairspy { }; -# allure-behave = callPackage ./python-modules/allure-behave { }; + # allure-behave = callPackage ./python-modules/allure-behave { }; -# allure-python-commons = callPackage ./python-modules/allure-python-commons { }; + # allure-python-commons = callPackage ./python-modules/allure-python-commons { }; -# allure-python-commons-test = callPackage ./python-modules/allure-python-commons-test { }; + # allure-python-commons-test = callPackage ./python-modules/allure-python-commons-test { }; -# allure-pytest = callPackage ./python-modules/allure-pytest { }; + # allure-pytest = callPackage ./python-modules/allure-pytest { }; -# alpha-vantage = callPackage ./python-modules/alpha-vantage { }; + # alpha-vantage = callPackage ./python-modules/alpha-vantage { }; -# altair = callPackage ./python-modules/altair { }; + # altair = callPackage ./python-modules/altair { }; -# altgraph = callPackage ./python-modules/altgraph { }; + # altgraph = callPackage ./python-modules/altgraph { }; -# amarna = callPackage ./python-modules/amarna { }; + # amarna = callPackage ./python-modules/amarna { }; -# amazon-ion = callPackage ./python-modules/amazon-ion { }; + # amazon-ion = callPackage ./python-modules/amazon-ion { }; -# amazon-kclpy = callPackage ./python-modules/amazon-kclpy { }; + # amazon-kclpy = callPackage ./python-modules/amazon-kclpy { }; -# ambee = callPackage ./python-modules/ambee { }; + # ambee = callPackage ./python-modules/ambee { }; -# amberelectric = callPackage ./python-modules/amberelectric { }; + # amberelectric = callPackage ./python-modules/amberelectric { }; -# ambiclimate = callPackage ./python-modules/ambiclimate { }; + # ambiclimate = callPackage ./python-modules/ambiclimate { }; -# amcrest = callPackage ./python-modules/amcrest { }; + # amcrest = callPackage ./python-modules/amcrest { }; -# amiibo-py = callPackage ./python-modules/amiibo-py { }; + # amiibo-py = callPackage ./python-modules/amiibo-py { }; -# amply = callPackage ./python-modules/amply { }; + # amply = callPackage ./python-modules/amply { }; -# amqp = callPackage ./python-modules/amqp { }; + # amqp = callPackage ./python-modules/amqp { }; -# amqplib = callPackage ./python-modules/amqplib { }; + # amqplib = callPackage ./python-modules/amqplib { }; -# amqtt = callPackage ./python-modules/amqtt { }; + # amqtt = callPackage ./python-modules/amqtt { }; -# anchor-kr = callPackage ./python-modules/anchor-kr { }; + # anchor-kr = callPackage ./python-modules/anchor-kr { }; -# ancp-bids = callPackage ./python-modules/ancp-bids { }; + # ancp-bids = callPackage ./python-modules/ancp-bids { }; -# android-backup = callPackage ./python-modules/android-backup { }; + # android-backup = callPackage ./python-modules/android-backup { }; -# androidtv = callPackage ./python-modules/androidtv { }; + # androidtv = callPackage ./python-modules/androidtv { }; -# androidtvremote2 = callPackage ./python-modules/androidtvremote2 { }; + # androidtvremote2 = callPackage ./python-modules/androidtvremote2 { }; -# androguard = callPackage ./python-modules/androguard { }; + # androguard = callPackage ./python-modules/androguard { }; -# anel-pwrctrl-homeassistant = callPackage ./python-modules/anel-pwrctrl-homeassistant { }; + # anel-pwrctrl-homeassistant = callPackage ./python-modules/anel-pwrctrl-homeassistant { }; -# angr = callPackage ./python-modules/angr { }; + # angr = callPackage ./python-modules/angr { }; -# angrcli = callPackage ./python-modules/angrcli { -# inherit (pkgs) coreutils; -# }; + # angrcli = callPackage ./python-modules/angrcli { + # inherit (pkgs) coreutils; + # }; -# angrop = callPackage ./python-modules/angrop { }; + # angrop = callPackage ./python-modules/angrop { }; -# aniso8601 = callPackage ./python-modules/aniso8601 { }; + # aniso8601 = callPackage ./python-modules/aniso8601 { }; -# anitopy = callPackage ./python-modules/anitopy { }; + # anitopy = callPackage ./python-modules/anitopy { }; -# annexremote = callPackage ./python-modules/annexremote { }; + # annexremote = callPackage ./python-modules/annexremote { }; -# annotated-types = callPackage ./python-modules/annotated-types { }; + # annotated-types = callPackage ./python-modules/annotated-types { }; -# annoy = callPackage ./python-modules/annoy { }; + # annoy = callPackage ./python-modules/annoy { }; -# anonip = callPackage ./python-modules/anonip { }; + # anonip = callPackage ./python-modules/anonip { }; -# anova-wifi = callPackage ./python-modules/anova-wifi { }; + # anova-wifi = callPackage ./python-modules/anova-wifi { }; -# ansi2html = callPackage ./python-modules/ansi2html { }; + # ansi2html = callPackage ./python-modules/ansi2html { }; -# ansi2image = callPackage ./python-modules/ansi2image { }; + # ansi2image = callPackage ./python-modules/ansi2image { }; -# ansible = callPackage ./python-modules/ansible { }; + # ansible = callPackage ./python-modules/ansible { }; -# ansible-builder = callPackage ./python-modules/ansible-builder { }; + # ansible-builder = callPackage ./python-modules/ansible-builder { }; -# ansible-compat = callPackage ./python-modules/ansible-compat { }; + # ansible-compat = callPackage ./python-modules/ansible-compat { }; -# ansible-core = callPackage ./python-modules/ansible/core.nix { }; + # ansible-core = callPackage ./python-modules/ansible/core.nix { }; -# ansible-kernel = callPackage ./python-modules/ansible-kernel { }; + # ansible-kernel = callPackage ./python-modules/ansible-kernel { }; -# ansible-navigator = callPackage ./python-modules/ansible-navigator { }; + # ansible-navigator = callPackage ./python-modules/ansible-navigator { }; -# ansible-pylibssh = callPackage ./python-modules/ansible-pylibssh { }; + # ansible-pylibssh = callPackage ./python-modules/ansible-pylibssh { }; -# ansible-runner = callPackage ./python-modules/ansible-runner { }; + # ansible-runner = callPackage ./python-modules/ansible-runner { }; -# ansible-vault-rw = callPackage ./python-modules/ansible-vault-rw { }; + # ansible-vault-rw = callPackage ./python-modules/ansible-vault-rw { }; -# ansi = callPackage ./python-modules/ansi { }; + # ansi = callPackage ./python-modules/ansi { }; -# ansicolor = callPackage ./python-modules/ansicolor { }; + # ansicolor = callPackage ./python-modules/ansicolor { }; -# ansicolors = callPackage ./python-modules/ansicolors { }; + # ansicolors = callPackage ./python-modules/ansicolors { }; -# ansiconv = callPackage ./python-modules/ansiconv { }; + # ansiconv = callPackage ./python-modules/ansiconv { }; -# ansimarkup = callPackage ./python-modules/ansimarkup { }; + # ansimarkup = callPackage ./python-modules/ansimarkup { }; -# ansiwrap = callPackage ./python-modules/ansiwrap { }; + # ansiwrap = callPackage ./python-modules/ansiwrap { }; -# anthemav = callPackage ./python-modules/anthemav { }; + # anthemav = callPackage ./python-modules/anthemav { }; -# anthropic = callPackage ./python-modules/anthropic { }; + # anthropic = callPackage ./python-modules/anthropic { }; -# antlr4-python3-runtime = callPackage ./python-modules/antlr4-python3-runtime { -# inherit (pkgs) antlr4; -# }; + # antlr4-python3-runtime = callPackage ./python-modules/antlr4-python3-runtime { + # inherit (pkgs) antlr4; + # }; -# anyascii = callPackage ./python-modules/anyascii { }; + # anyascii = callPackage ./python-modules/anyascii { }; -# anybadge = callPackage ./python-modules/anybadge { }; + # anybadge = callPackage ./python-modules/anybadge { }; -# anyconfig = callPackage ./python-modules/anyconfig { }; + # anyconfig = callPackage ./python-modules/anyconfig { }; -# anyio = callPackage ./python-modules/anyio { }; + # anyio = callPackage ./python-modules/anyio { }; -# anyqt = callPackage ./python-modules/anyqt { }; + # anyqt = callPackage ./python-modules/anyqt { }; -# anysqlite = callPackage ./python-modules/anysqlite { }; + # anysqlite = callPackage ./python-modules/anysqlite { }; -# anytree = callPackage ./python-modules/anytree { -# inherit (pkgs) graphviz; -# }; + # anytree = callPackage ./python-modules/anytree { + # inherit (pkgs) graphviz; + # }; -# anywidget = callPackage ./python-modules/anywidget { }; + # anywidget = callPackage ./python-modules/anywidget { }; -# aocd = callPackage ./python-modules/aocd { }; + # aocd = callPackage ./python-modules/aocd { }; -# aocd-example-parser = callPackage ./python-modules/aocd-example-parser { }; + # aocd-example-parser = callPackage ./python-modules/aocd-example-parser { }; -# apache-beam = callPackage ./python-modules/apache-beam { }; + # apache-beam = callPackage ./python-modules/apache-beam { }; -# apcaccess = callPackage ./python-modules/apcaccess { }; + # apcaccess = callPackage ./python-modules/apcaccess { }; -# apipkg = callPackage ./python-modules/apipkg { }; + # apipkg = callPackage ./python-modules/apipkg { }; -# apischema = callPackage ./python-modules/apischema { }; + # apischema = callPackage ./python-modules/apischema { }; -# apispec = callPackage ./python-modules/apispec { }; + # apispec = callPackage ./python-modules/apispec { }; -# apispec-webframeworks = callPackage ./python-modules/apispec-webframeworks { }; + # apispec-webframeworks = callPackage ./python-modules/apispec-webframeworks { }; -# apkinspector = callPackage ./python-modules/apkinspector { }; + # apkinspector = callPackage ./python-modules/apkinspector { }; -# apkit = callPackage ./python-modules/apkit { }; + # apkit = callPackage ./python-modules/apkit { }; -# aplpy = callPackage ./python-modules/aplpy { }; + # aplpy = callPackage ./python-modules/aplpy { }; -# app-model = callPackage ./python-modules/app-model { }; + # app-model = callPackage ./python-modules/app-model { }; -# appdirs = callPackage ./python-modules/appdirs { }; + # appdirs = callPackage ./python-modules/appdirs { }; -# apple-weatherkit = callPackage ./python-modules/apple-weatherkit { }; + # apple-weatherkit = callPackage ./python-modules/apple-weatherkit { }; -# applicationinsights = callPackage ./python-modules/applicationinsights { }; + # applicationinsights = callPackage ./python-modules/applicationinsights { }; -# appnope = callPackage ./python-modules/appnope { }; + # appnope = callPackage ./python-modules/appnope { }; -# apprise = callPackage ./python-modules/apprise { }; + # apprise = callPackage ./python-modules/apprise { }; -# approval-utilities = callPackage ./python-modules/approval-utilities { }; + # approval-utilities = callPackage ./python-modules/approval-utilities { }; -# approvaltests = callPackage ./python-modules/approvaltests { }; + # approvaltests = callPackage ./python-modules/approvaltests { }; -# apptools = callPackage ./python-modules/apptools { }; + # apptools = callPackage ./python-modules/apptools { }; -# appthreat-vulnerability-db = callPackage ./python-modules/appthreat-vulnerability-db { }; + # appthreat-vulnerability-db = callPackage ./python-modules/appthreat-vulnerability-db { }; -# apricot-select = callPackage ./python-modules/apricot-select { }; + # apricot-select = callPackage ./python-modules/apricot-select { }; -# aprslib = callPackage ./python-modules/aprslib { }; + # aprslib = callPackage ./python-modules/aprslib { }; -# apscheduler = callPackage ./python-modules/apscheduler { }; + # apscheduler = callPackage ./python-modules/apscheduler { }; -# apsw = callPackage ./python-modules/apsw { }; + # apsw = callPackage ./python-modules/apsw { }; -# apycula = callPackage ./python-modules/apycula { }; + # apycula = callPackage ./python-modules/apycula { }; -# aqipy-atmotech = callPackage ./python-modules/aqipy-atmotech { }; + # aqipy-atmotech = callPackage ./python-modules/aqipy-atmotech { }; -# aqualogic = callPackage ./python-modules/aqualogic { }; + # aqualogic = callPackage ./python-modules/aqualogic { }; -# arabic-reshaper = callPackage ./python-modules/arabic-reshaper { }; + # arabic-reshaper = callPackage ./python-modules/arabic-reshaper { }; -# aranet4 = callPackage ./python-modules/aranet4 { }; + # aranet4 = callPackage ./python-modules/aranet4 { }; -# arc4 = callPackage ./python-modules/arc4 { }; + # arc4 = callPackage ./python-modules/arc4 { }; -# arcam-fmj = callPackage ./python-modules/arcam-fmj { }; + # arcam-fmj = callPackage ./python-modules/arcam-fmj { }; -# archinfo = callPackage ./python-modules/archinfo { }; + # archinfo = callPackage ./python-modules/archinfo { }; -# archspec = callPackage ./python-modules/archspec { }; + # archspec = callPackage ./python-modules/archspec { }; -# area = callPackage ./python-modules/area { }; + # area = callPackage ./python-modules/area { }; -# arelle = callPackage ./python-modules/arelle { -# gui = true; -# }; + # arelle = callPackage ./python-modules/arelle { + # gui = true; + # }; -# arelle-headless = callPackage ./python-modules/arelle { -# gui = false; -# }; + # arelle-headless = callPackage ./python-modules/arelle { + # gui = false; + # }; -# aresponses = callPackage ./python-modules/aresponses { }; + # aresponses = callPackage ./python-modules/aresponses { }; argcomplete = callPackage ./python-modules/argcomplete { }; -# argh = callPackage ./python-modules/argh { }; + # argh = callPackage ./python-modules/argh { }; -# argilla = callPackage ./python-modules/argilla { }; + # argilla = callPackage ./python-modules/argilla { }; -# argon2-cffi = callPackage ./python-modules/argon2-cffi { }; + # argon2-cffi = callPackage ./python-modules/argon2-cffi { }; -# argon2-cffi-bindings = callPackage ./python-modules/argon2-cffi-bindings { }; + # argon2-cffi-bindings = callPackage ./python-modules/argon2-cffi-bindings { }; -# argostranslate = callPackage ./python-modules/argostranslate { -# ctranslate2-cpp = pkgs.ctranslate2; -# }; + # argostranslate = callPackage ./python-modules/argostranslate { + # ctranslate2-cpp = pkgs.ctranslate2; + # }; -# argos-translate-files = callPackage ./python-modules/argos-translate-files { }; + # argos-translate-files = callPackage ./python-modules/argos-translate-files { }; -# argparse-addons = callPackage ./python-modules/argparse-addons { }; + # argparse-addons = callPackage ./python-modules/argparse-addons { }; -# argparse-dataclass = callPackage ./python-modules/argparse-dataclass { }; + # argparse-dataclass = callPackage ./python-modules/argparse-dataclass { }; -# argparse-manpage = callPackage ./python-modules/argparse-manpage { }; + # argparse-manpage = callPackage ./python-modules/argparse-manpage { }; -# args = callPackage ./python-modules/args { }; + # args = callPackage ./python-modules/args { }; -# aria2p = callPackage ./python-modules/aria2p { }; + # aria2p = callPackage ./python-modules/aria2p { }; -# ariadne = callPackage ./python-modules/ariadne { }; + # ariadne = callPackage ./python-modules/ariadne { }; -# arpy = callPackage ./python-modules/arpy { }; + # arpy = callPackage ./python-modules/arpy { }; -# arnparse = callPackage ./python-modules/arnparse { }; + # arnparse = callPackage ./python-modules/arnparse { }; -# array-record = callPackage ./python-modules/array-record { }; + # array-record = callPackage ./python-modules/array-record { }; -# arrayqueues = callPackage ./python-modules/arrayqueues { }; + # arrayqueues = callPackage ./python-modules/arrayqueues { }; -# arris-tg2492lg = callPackage ./python-modules/arris-tg2492lg { }; + # arris-tg2492lg = callPackage ./python-modules/arris-tg2492lg { }; -# arrow = callPackage ./python-modules/arrow { }; + # arrow = callPackage ./python-modules/arrow { }; -# arsenic = callPackage ./python-modules/arsenic { }; + # arsenic = callPackage ./python-modules/arsenic { }; -# art = callPackage ./python-modules/art { }; + # art = callPackage ./python-modules/art { }; -# arviz = callPackage ./python-modules/arviz { }; + # arviz = callPackage ./python-modules/arviz { }; -# arxiv2bib = callPackage ./python-modules/arxiv2bib { }; + # arxiv2bib = callPackage ./python-modules/arxiv2bib { }; -# asana = callPackage ./python-modules/asana { }; + # asana = callPackage ./python-modules/asana { }; -# ascii-magic = callPackage ./python-modules/ascii-magic { }; + # ascii-magic = callPackage ./python-modules/ascii-magic { }; -# asciimatics = callPackage ./python-modules/asciimatics { }; + # asciimatics = callPackage ./python-modules/asciimatics { }; -# asciitree = callPackage ./python-modules/asciitree { }; + # asciitree = callPackage ./python-modules/asciitree { }; -# asdf = callPackage ./python-modules/asdf { }; + # asdf = callPackage ./python-modules/asdf { }; -# asdf-standard = callPackage ./python-modules/asdf-standard { }; + # asdf-standard = callPackage ./python-modules/asdf-standard { }; -# asdf-transform-schemas = callPackage ./python-modules/asdf-transform-schemas { }; + # asdf-transform-schemas = callPackage ./python-modules/asdf-transform-schemas { }; -# ase = callPackage ./python-modules/ase { }; + # ase = callPackage ./python-modules/ase { }; -# asf-search = callPackage ./python-modules/asf-search { }; + # asf-search = callPackage ./python-modules/asf-search { }; -# asgi-csrf = callPackage ./python-modules/asgi-csrf { }; + # asgi-csrf = callPackage ./python-modules/asgi-csrf { }; -# asgi-lifespan = callPackage ./python-modules/asgi-lifespan { }; + # asgi-lifespan = callPackage ./python-modules/asgi-lifespan { }; -# asgi-logger = callPackage ./python-modules/asgi-logger { }; + # asgi-logger = callPackage ./python-modules/asgi-logger { }; -# asgineer = callPackage ./python-modules/asgineer { }; + # asgineer = callPackage ./python-modules/asgineer { }; -# asgiref = callPackage ./python-modules/asgiref { }; + # asgiref = callPackage ./python-modules/asgiref { }; -# asks = callPackage ./python-modules/asks { }; + # asks = callPackage ./python-modules/asks { }; -# asmog = callPackage ./python-modules/asmog { }; + # asmog = callPackage ./python-modules/asmog { }; -# asn1 = callPackage ./python-modules/asn1 { }; + # asn1 = callPackage ./python-modules/asn1 { }; -# asn1ate = callPackage ./python-modules/asn1ate { }; + # asn1ate = callPackage ./python-modules/asn1ate { }; -# asn1crypto = callPackage ./python-modules/asn1crypto { }; + # asn1crypto = callPackage ./python-modules/asn1crypto { }; -# asn1tools = callPackage ./python-modules/asn1tools { }; + # asn1tools = callPackage ./python-modules/asn1tools { }; -# aspectlib = callPackage ./python-modules/aspectlib { }; + # aspectlib = callPackage ./python-modules/aspectlib { }; -# aspell-python = callPackage ./python-modules/aspell-python { }; + # aspell-python = callPackage ./python-modules/aspell-python { }; -# aspy-refactor-imports = callPackage ./python-modules/aspy-refactor-imports { }; + # aspy-refactor-imports = callPackage ./python-modules/aspy-refactor-imports { }; -# aspy-yaml = callPackage ./python-modules/aspy-yaml { }; + # aspy-yaml = callPackage ./python-modules/aspy-yaml { }; -# assay = callPackage ./python-modules/assay { }; + # assay = callPackage ./python-modules/assay { }; -# assertpy = callPackage ./python-modules/assertpy { }; + # assertpy = callPackage ./python-modules/assertpy { }; -# asterisk-mbox = callPackage ./python-modules/asterisk-mbox { }; + # asterisk-mbox = callPackage ./python-modules/asterisk-mbox { }; -# asteroid-filterbanks = callPackage ./python-modules/asteroid-filterbanks { }; + # asteroid-filterbanks = callPackage ./python-modules/asteroid-filterbanks { }; -# asteval = callPackage ./python-modules/asteval { }; + # asteval = callPackage ./python-modules/asteval { }; -# astor = callPackage ./python-modules/astor { }; + # astor = callPackage ./python-modules/astor { }; -# astral = callPackage ./python-modules/astral { }; + # astral = callPackage ./python-modules/astral { }; -# astroid = callPackage ./python-modules/astroid { }; + # astroid = callPackage ./python-modules/astroid { }; -# astropy = callPackage ./python-modules/astropy { }; + # astropy = callPackage ./python-modules/astropy { }; -# astropy-healpix = callPackage ./python-modules/astropy-healpix { }; + # astropy-healpix = callPackage ./python-modules/astropy-healpix { }; -# astropy-helpers = callPackage ./python-modules/astropy-helpers { }; + # astropy-helpers = callPackage ./python-modules/astropy-helpers { }; -# astropy-iers-data = callPackage ./python-modules/astropy-iers-data { }; + # astropy-iers-data = callPackage ./python-modules/astropy-iers-data { }; -# astropy-extension-helpers = callPackage ./python-modules/astropy-extension-helpers { }; + # astropy-extension-helpers = callPackage ./python-modules/astropy-extension-helpers { }; -# astroquery = callPackage ./python-modules/astroquery { }; + # astroquery = callPackage ./python-modules/astroquery { }; -# asttokens = callPackage ./python-modules/asttokens { }; + # asttokens = callPackage ./python-modules/asttokens { }; -# astunparse = callPackage ./python-modules/astunparse { }; + # astunparse = callPackage ./python-modules/astunparse { }; -# asyauth = callPackage ./python-modules/asyauth { }; + # asyauth = callPackage ./python-modules/asyauth { }; -# async-dns = callPackage ./python-modules/async-dns { }; + # async-dns = callPackage ./python-modules/async-dns { }; -# async-generator = callPackage ./python-modules/async-generator { }; + # async-generator = callPackage ./python-modules/async-generator { }; -# async-interrupt = callPackage ./python-modules/async-interrupt { }; + # async-interrupt = callPackage ./python-modules/async-interrupt { }; -# async-lru = callPackage ./python-modules/async-lru { }; + # async-lru = callPackage ./python-modules/async-lru { }; -# async-modbus = callPackage ./python-modules/async-modbus { }; + # async-modbus = callPackage ./python-modules/async-modbus { }; -# asyncclick = callPackage ./python-modules/asyncclick { }; + # asyncclick = callPackage ./python-modules/asyncclick { }; -# asynccmd = callPackage ./python-modules/asynccmd { }; + # asynccmd = callPackage ./python-modules/asynccmd { }; -# asyncinotify = callPackage ./python-modules/asyncinotify { }; + # asyncinotify = callPackage ./python-modules/asyncinotify { }; -# asyncio-dgram = callPackage ./python-modules/asyncio-dgram { }; + # asyncio-dgram = callPackage ./python-modules/asyncio-dgram { }; -# asyncio-mqtt = callPackage ./python-modules/asyncio-mqtt { }; + # asyncio-mqtt = callPackage ./python-modules/asyncio-mqtt { }; -# asyncio-rlock = callPackage ./python-modules/asyncio-rlock { }; + # asyncio-rlock = callPackage ./python-modules/asyncio-rlock { }; -# asyncmy = callPackage ./python-modules/asyncmy { }; + # asyncmy = callPackage ./python-modules/asyncmy { }; -# asyncio-throttle = callPackage ./python-modules/asyncio-throttle { }; + # asyncio-throttle = callPackage ./python-modules/asyncio-throttle { }; -# asyncpg = callPackage ./python-modules/asyncpg { }; + # asyncpg = callPackage ./python-modules/asyncpg { }; -# asyncserial = callPackage ./python-modules/asyncserial { }; + # asyncserial = callPackage ./python-modules/asyncserial { }; -# asyncsleepiq = callPackage ./python-modules/asyncsleepiq { }; + # asyncsleepiq = callPackage ./python-modules/asyncsleepiq { }; -# asyncssh = callPackage ./python-modules/asyncssh { }; + # asyncssh = callPackage ./python-modules/asyncssh { }; -# asyncstdlib = callPackage ./python-modules/asyncstdlib { }; + # asyncstdlib = callPackage ./python-modules/asyncstdlib { }; -# async-stagger = callPackage ./python-modules/async-stagger { }; + # async-stagger = callPackage ./python-modules/async-stagger { }; -# asynctest = callPackage ./python-modules/asynctest { }; + # asynctest = callPackage ./python-modules/asynctest { }; -# async-timeout = callPackage ./python-modules/async-timeout { }; + # async-timeout = callPackage ./python-modules/async-timeout { }; -# async-tkinter-loop = callPackage ./python-modules/async-tkinter-loop { }; + # async-tkinter-loop = callPackage ./python-modules/async-tkinter-loop { }; -# asyncua = callPackage ./python-modules/asyncua { }; + # asyncua = callPackage ./python-modules/asyncua { }; -# async-upnp-client = callPackage ./python-modules/async-upnp-client { }; + # async-upnp-client = callPackage ./python-modules/async-upnp-client { }; -# asyncwhois = callPackage ./python-modules/asyncwhois { }; + # asyncwhois = callPackage ./python-modules/asyncwhois { }; -# asysocks = callPackage ./python-modules/asysocks { }; + # asysocks = callPackage ./python-modules/asysocks { }; -# atc-ble = callPackage ./python-modules/atc-ble { }; + # atc-ble = callPackage ./python-modules/atc-ble { }; -# atenpdu = callPackage ./python-modules/atenpdu { }; + # atenpdu = callPackage ./python-modules/atenpdu { }; -# atlassian-python-api = callPackage ./python-modules/atlassian-python-api { }; + # atlassian-python-api = callPackage ./python-modules/atlassian-python-api { }; -# atom = callPackage ./python-modules/atom { }; + # atom = callPackage ./python-modules/atom { }; -# atomiclong = callPackage ./python-modules/atomiclong { }; + # atomiclong = callPackage ./python-modules/atomiclong { }; -# atomicwrites = callPackage ./python-modules/atomicwrites { }; + # atomicwrites = callPackage ./python-modules/atomicwrites { }; -# atomicwrites-homeassistant = callPackage ./python-modules/atomicwrites-homeassistant { }; + # atomicwrites-homeassistant = callPackage ./python-modules/atomicwrites-homeassistant { }; -# atomman = callPackage ./python-modules/atomman { }; + # atomman = callPackage ./python-modules/atomman { }; -# atpublic = callPackage ./python-modules/atpublic { }; + # atpublic = callPackage ./python-modules/atpublic { }; -# atsim-potentials = callPackage ./python-modules/atsim-potentials { }; + # atsim-potentials = callPackage ./python-modules/atsim-potentials { }; -# attrdict = callPackage ./python-modules/attrdict { }; + # attrdict = callPackage ./python-modules/attrdict { }; attrs = callPackage ./python-modules/attrs { }; -# aubio = callPackage ./python-modules/aubio { }; + # aubio = callPackage ./python-modules/aubio { }; -# audible = callPackage ./python-modules/audible { }; + # audible = callPackage ./python-modules/audible { }; -# audio-metadata = callPackage ./python-modules/audio-metadata { }; + # audio-metadata = callPackage ./python-modules/audio-metadata { }; -# audioread = callPackage ./python-modules/audioread { }; + # audioread = callPackage ./python-modules/audioread { }; -# audiotools = callPackage ./python-modules/audiotools { -# inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreServices; -# }; + # audiotools = callPackage ./python-modules/audiotools { + # inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreServices; + # }; -# auditok = callPackage ./python-modules/auditok { }; + # auditok = callPackage ./python-modules/auditok { }; -# auditwheel = callPackage ./python-modules/auditwheel { -# inherit (pkgs) bzip2 gnutar patchelf unzip; -# }; + # auditwheel = callPackage ./python-modules/auditwheel { + # inherit (pkgs) bzip2 gnutar patchelf unzip; + # }; -# augeas = callPackage ./python-modules/augeas { -# inherit (pkgs) augeas; -# }; + # augeas = callPackage ./python-modules/augeas { + # inherit (pkgs) augeas; + # }; -# augmax = callPackage ./python-modules/augmax { }; + # augmax = callPackage ./python-modules/augmax { }; -# auroranoaa = callPackage ./python-modules/auroranoaa { }; + # auroranoaa = callPackage ./python-modules/auroranoaa { }; -# aurorapy = callPackage ./python-modules/aurorapy { }; + # aurorapy = callPackage ./python-modules/aurorapy { }; -# autarco = callPackage ./python-modules/autarco { }; + # autarco = callPackage ./python-modules/autarco { }; -# auth0-python = callPackage ./python-modules/auth0-python { }; + # auth0-python = callPackage ./python-modules/auth0-python { }; -# authcaptureproxy = callPackage ./python-modules/authcaptureproxy { }; + # authcaptureproxy = callPackage ./python-modules/authcaptureproxy { }; -# authheaders = callPackage ./python-modules/authheaders { }; + # authheaders = callPackage ./python-modules/authheaders { }; -# authlib = callPackage ./python-modules/authlib { }; + # authlib = callPackage ./python-modules/authlib { }; -# authres = callPackage ./python-modules/authres { }; + # authres = callPackage ./python-modules/authres { }; -# autobahn = callPackage ./python-modules/autobahn { }; + # autobahn = callPackage ./python-modules/autobahn { }; -# autocommand = callPackage ./python-modules/autocommand { }; + # autocommand = callPackage ./python-modules/autocommand { }; -# autofaiss = callPackage ./python-modules/autofaiss { }; + # autofaiss = callPackage ./python-modules/autofaiss { }; -# autoflake = callPackage ./python-modules/autoflake { }; + # autoflake = callPackage ./python-modules/autoflake { }; -# autograd = callPackage ./python-modules/autograd { }; + # autograd = callPackage ./python-modules/autograd { }; -# autograd-gamma = callPackage ./python-modules/autograd-gamma { }; + # autograd-gamma = callPackage ./python-modules/autograd-gamma { }; -# autoit-ripper = callPackage ./python-modules/autoit-ripper { }; + # autoit-ripper = callPackage ./python-modules/autoit-ripper { }; -# autologging = callPackage ./python-modules/autologging { }; + # autologging = callPackage ./python-modules/autologging { }; -# automat = callPackage ./python-modules/automat { }; + # automat = callPackage ./python-modules/automat { }; -# automate-home = callPackage ./python-modules/automate-home { }; + # automate-home = callPackage ./python-modules/automate-home { }; -# automx2 = callPackage ./python-modules/automx2 { }; + # automx2 = callPackage ./python-modules/automx2 { }; -# autopage = callPackage ./python-modules/autopage { }; + # autopage = callPackage ./python-modules/autopage { }; -# autopep8 = callPackage ./python-modules/autopep8 { }; + # autopep8 = callPackage ./python-modules/autopep8 { }; -# autoslot = callPackage ./python-modules/autoslot { }; + # autoslot = callPackage ./python-modules/autoslot { }; -# avahi = toPythonModule (pkgs.avahi.override { -# inherit python; -# withPython = true; -# }); + # avahi = toPythonModule (pkgs.avahi.override { + # inherit python; + # withPython = true; + # }); -# av = callPackage ./python-modules/av { }; + # av = callPackage ./python-modules/av { }; -# avea = callPackage ./python-modules/avea { }; + # avea = callPackage ./python-modules/avea { }; -# avidtools = callPackage ./python-modules/avidtools { }; + # avidtools = callPackage ./python-modules/avidtools { }; -# avion = callPackage ./python-modules/avion { }; + # avion = callPackage ./python-modules/avion { }; -# avro3k = callPackage ./python-modules/avro3k { }; + # avro3k = callPackage ./python-modules/avro3k { }; -# avro = callPackage ./python-modules/avro { }; + # avro = callPackage ./python-modules/avro { }; -# avro-python3 = callPackage ./python-modules/avro-python3 { }; + # avro-python3 = callPackage ./python-modules/avro-python3 { }; -# aw-client = callPackage ./python-modules/aw-client { }; + # aw-client = callPackage ./python-modules/aw-client { }; -# aw-core = callPackage ./python-modules/aw-core { }; + # aw-core = callPackage ./python-modules/aw-core { }; -# awacs = callPackage ./python-modules/awacs { }; + # awacs = callPackage ./python-modules/awacs { }; -# awesome-slugify = callPackage ./python-modules/awesome-slugify { }; + # awesome-slugify = callPackage ./python-modules/awesome-slugify { }; -# awesomeversion = callPackage ./python-modules/awesomeversion { }; + # awesomeversion = callPackage ./python-modules/awesomeversion { }; -# awkward = callPackage ./python-modules/awkward { }; + # awkward = callPackage ./python-modules/awkward { }; -# awkward-cpp = callPackage ./python-modules/awkward-cpp { -# inherit (pkgs) cmake ninja; -# }; + # awkward-cpp = callPackage ./python-modules/awkward-cpp { + # inherit (pkgs) cmake ninja; + # }; -# aws-adfs = callPackage ./python-modules/aws-adfs { }; + # aws-adfs = callPackage ./python-modules/aws-adfs { }; -# aws-encryption-sdk = callPackage ./python-modules/aws-encryption-sdk { }; + # aws-encryption-sdk = callPackage ./python-modules/aws-encryption-sdk { }; -# aws-lambda-builders = callPackage ./python-modules/aws-lambda-builders { }; + # aws-lambda-builders = callPackage ./python-modules/aws-lambda-builders { }; -# aws-sam-translator = callPackage ./python-modules/aws-sam-translator { }; + # aws-sam-translator = callPackage ./python-modules/aws-sam-translator { }; -# aws-secretsmanager-caching = callPackage ./python-modules/aws-secretsmanager-caching { }; + # aws-secretsmanager-caching = callPackage ./python-modules/aws-secretsmanager-caching { }; -# aws-xray-sdk = callPackage ./python-modules/aws-xray-sdk { }; + # aws-xray-sdk = callPackage ./python-modules/aws-xray-sdk { }; -# awscrt = callPackage ./python-modules/awscrt { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; -# }; + # awscrt = callPackage ./python-modules/awscrt { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; + # }; -# awsiotpythonsdk = callPackage ./python-modules/awsiotpythonsdk { }; + # awsiotpythonsdk = callPackage ./python-modules/awsiotpythonsdk { }; -# awsipranges = callPackage ./python-modules/awsipranges { }; + # awsipranges = callPackage ./python-modules/awsipranges { }; -# awslambdaric = callPackage ./python-modules/awslambdaric { }; + # awslambdaric = callPackage ./python-modules/awslambdaric { }; -# awswrangler = callPackage ./python-modules/awswrangler { }; + # awswrangler = callPackage ./python-modules/awswrangler { }; -# ax = callPackage ./python-modules/ax { }; + # ax = callPackage ./python-modules/ax { }; -# axis = callPackage ./python-modules/axis { }; + # axis = callPackage ./python-modules/axis { }; -# axisregistry = callPackage ./python-modules/axisregistry { }; + # axisregistry = callPackage ./python-modules/axisregistry { }; -# azure-appconfiguration = callPackage ./python-modules/azure-appconfiguration { }; + # azure-appconfiguration = callPackage ./python-modules/azure-appconfiguration { }; -# azure-applicationinsights = callPackage ./python-modules/azure-applicationinsights { }; + # azure-applicationinsights = callPackage ./python-modules/azure-applicationinsights { }; -# azure-batch = callPackage ./python-modules/azure-batch { }; + # azure-batch = callPackage ./python-modules/azure-batch { }; -# azure-common = callPackage ./python-modules/azure-common { }; + # azure-common = callPackage ./python-modules/azure-common { }; -# azure-containerregistry = callPackage ./python-modules/azure-containerregistry { }; + # azure-containerregistry = callPackage ./python-modules/azure-containerregistry { }; -# azure-core = callPackage ./python-modules/azure-core { }; + # azure-core = callPackage ./python-modules/azure-core { }; -# azure-cosmos = callPackage ./python-modules/azure-cosmos { }; + # azure-cosmos = callPackage ./python-modules/azure-cosmos { }; -# azure-cosmosdb-nspkg = callPackage ./python-modules/azure-cosmosdb-nspkg { }; + # azure-cosmosdb-nspkg = callPackage ./python-modules/azure-cosmosdb-nspkg { }; -# azure-cosmosdb-table = callPackage ./python-modules/azure-cosmosdb-table { }; + # azure-cosmosdb-table = callPackage ./python-modules/azure-cosmosdb-table { }; -# azure-data-tables = callPackage ./python-modules/azure-data-tables { }; + # azure-data-tables = callPackage ./python-modules/azure-data-tables { }; -# azure-datalake-store = callPackage ./python-modules/azure-datalake-store { }; + # azure-datalake-store = callPackage ./python-modules/azure-datalake-store { }; -# azure-eventgrid = callPackage ./python-modules/azure-eventgrid { }; + # azure-eventgrid = callPackage ./python-modules/azure-eventgrid { }; -# azure-eventhub = callPackage ./python-modules/azure-eventhub { }; + # azure-eventhub = callPackage ./python-modules/azure-eventhub { }; -# azure-functions-devops-build = callPackage ./python-modules/azure-functions-devops-build { }; + # azure-functions-devops-build = callPackage ./python-modules/azure-functions-devops-build { }; -# azure-graphrbac = callPackage ./python-modules/azure-graphrbac { }; + # azure-graphrbac = callPackage ./python-modules/azure-graphrbac { }; -# azure-identity = callPackage ./python-modules/azure-identity { }; + # azure-identity = callPackage ./python-modules/azure-identity { }; -# azure-keyvault = callPackage ./python-modules/azure-keyvault { }; + # azure-keyvault = callPackage ./python-modules/azure-keyvault { }; -# azure-keyvault-administration = callPackage ./python-modules/azure-keyvault-administration { }; + # azure-keyvault-administration = callPackage ./python-modules/azure-keyvault-administration { }; -# azure-keyvault-certificates = callPackage ./python-modules/azure-keyvault-certificates { }; + # azure-keyvault-certificates = callPackage ./python-modules/azure-keyvault-certificates { }; -# azure-keyvault-keys = callPackage ./python-modules/azure-keyvault-keys { }; + # azure-keyvault-keys = callPackage ./python-modules/azure-keyvault-keys { }; -# azure-keyvault-nspkg = callPackage ./python-modules/azure-keyvault-nspkg { }; + # azure-keyvault-nspkg = callPackage ./python-modules/azure-keyvault-nspkg { }; -# azure-keyvault-secrets = callPackage ./python-modules/azure-keyvault-secrets { }; + # azure-keyvault-secrets = callPackage ./python-modules/azure-keyvault-secrets { }; -# azure-loganalytics = callPackage ./python-modules/azure-loganalytics { }; + # azure-loganalytics = callPackage ./python-modules/azure-loganalytics { }; -# azure-mgmt-advisor = callPackage ./python-modules/azure-mgmt-advisor { }; + # azure-mgmt-advisor = callPackage ./python-modules/azure-mgmt-advisor { }; -# azure-mgmt-apimanagement = callPackage ./python-modules/azure-mgmt-apimanagement { }; + # azure-mgmt-apimanagement = callPackage ./python-modules/azure-mgmt-apimanagement { }; -# azure-mgmt-appconfiguration = callPackage ./python-modules/azure-mgmt-appconfiguration { }; + # azure-mgmt-appconfiguration = callPackage ./python-modules/azure-mgmt-appconfiguration { }; -# azure-mgmt-appcontainers = callPackage ./python-modules/azure-mgmt-appcontainers { }; + # azure-mgmt-appcontainers = callPackage ./python-modules/azure-mgmt-appcontainers { }; -# azure-mgmt-applicationinsights = callPackage ./python-modules/azure-mgmt-applicationinsights { }; + # azure-mgmt-applicationinsights = callPackage ./python-modules/azure-mgmt-applicationinsights { }; -# azure-mgmt-authorization = callPackage ./python-modules/azure-mgmt-authorization { }; + # azure-mgmt-authorization = callPackage ./python-modules/azure-mgmt-authorization { }; -# azure-mgmt-batchai = callPackage ./python-modules/azure-mgmt-batchai { }; + # azure-mgmt-batchai = callPackage ./python-modules/azure-mgmt-batchai { }; -# azure-mgmt-batch = callPackage ./python-modules/azure-mgmt-batch { }; + # azure-mgmt-batch = callPackage ./python-modules/azure-mgmt-batch { }; -# azure-mgmt-billing = callPackage ./python-modules/azure-mgmt-billing { }; + # azure-mgmt-billing = callPackage ./python-modules/azure-mgmt-billing { }; -# azure-mgmt-botservice = callPackage ./python-modules/azure-mgmt-botservice { }; + # azure-mgmt-botservice = callPackage ./python-modules/azure-mgmt-botservice { }; -# azure-mgmt-cdn = callPackage ./python-modules/azure-mgmt-cdn { }; + # azure-mgmt-cdn = callPackage ./python-modules/azure-mgmt-cdn { }; -# azure-mgmt-cognitiveservices = callPackage ./python-modules/azure-mgmt-cognitiveservices { }; + # azure-mgmt-cognitiveservices = callPackage ./python-modules/azure-mgmt-cognitiveservices { }; -# azure-mgmt-commerce = callPackage ./python-modules/azure-mgmt-commerce { }; + # azure-mgmt-commerce = callPackage ./python-modules/azure-mgmt-commerce { }; -# azure-mgmt-common = callPackage ./python-modules/azure-mgmt-common { }; + # azure-mgmt-common = callPackage ./python-modules/azure-mgmt-common { }; -# azure-mgmt-compute = callPackage ./python-modules/azure-mgmt-compute { }; + # azure-mgmt-compute = callPackage ./python-modules/azure-mgmt-compute { }; -# azure-mgmt-consumption = callPackage ./python-modules/azure-mgmt-consumption { }; + # azure-mgmt-consumption = callPackage ./python-modules/azure-mgmt-consumption { }; -# azure-mgmt-containerinstance = callPackage ./python-modules/azure-mgmt-containerinstance { }; + # azure-mgmt-containerinstance = callPackage ./python-modules/azure-mgmt-containerinstance { }; -# azure-mgmt-containerregistry = callPackage ./python-modules/azure-mgmt-containerregistry { }; + # azure-mgmt-containerregistry = callPackage ./python-modules/azure-mgmt-containerregistry { }; -# azure-mgmt-containerservice = callPackage ./python-modules/azure-mgmt-containerservice { }; + # azure-mgmt-containerservice = callPackage ./python-modules/azure-mgmt-containerservice { }; -# azure-mgmt-core = callPackage ./python-modules/azure-mgmt-core { }; + # azure-mgmt-core = callPackage ./python-modules/azure-mgmt-core { }; -# azure-mgmt-cosmosdb = callPackage ./python-modules/azure-mgmt-cosmosdb { }; + # azure-mgmt-cosmosdb = callPackage ./python-modules/azure-mgmt-cosmosdb { }; -# azure-mgmt-databoxedge = callPackage ./python-modules/azure-mgmt-databoxedge { }; + # azure-mgmt-databoxedge = callPackage ./python-modules/azure-mgmt-databoxedge { }; -# azure-mgmt-datafactory = callPackage ./python-modules/azure-mgmt-datafactory { }; + # azure-mgmt-datafactory = callPackage ./python-modules/azure-mgmt-datafactory { }; -# azure-mgmt-datalake-analytics = callPackage ./python-modules/azure-mgmt-datalake-analytics { }; + # azure-mgmt-datalake-analytics = callPackage ./python-modules/azure-mgmt-datalake-analytics { }; -# azure-mgmt-datalake-nspkg = callPackage ./python-modules/azure-mgmt-datalake-nspkg { }; + # azure-mgmt-datalake-nspkg = callPackage ./python-modules/azure-mgmt-datalake-nspkg { }; -# azure-mgmt-datalake-store = callPackage ./python-modules/azure-mgmt-datalake-store { }; + # azure-mgmt-datalake-store = callPackage ./python-modules/azure-mgmt-datalake-store { }; -# azure-mgmt-datamigration = callPackage ./python-modules/azure-mgmt-datamigration { }; + # azure-mgmt-datamigration = callPackage ./python-modules/azure-mgmt-datamigration { }; -# azure-mgmt-deploymentmanager = callPackage ./python-modules/azure-mgmt-deploymentmanager { }; + # azure-mgmt-deploymentmanager = callPackage ./python-modules/azure-mgmt-deploymentmanager { }; -# azure-mgmt-devspaces = callPackage ./python-modules/azure-mgmt-devspaces { }; + # azure-mgmt-devspaces = callPackage ./python-modules/azure-mgmt-devspaces { }; -# azure-mgmt-devtestlabs = callPackage ./python-modules/azure-mgmt-devtestlabs { }; + # azure-mgmt-devtestlabs = callPackage ./python-modules/azure-mgmt-devtestlabs { }; -# azure-mgmt-dns = callPackage ./python-modules/azure-mgmt-dns { }; + # azure-mgmt-dns = callPackage ./python-modules/azure-mgmt-dns { }; -# azure-mgmt-eventgrid = callPackage ./python-modules/azure-mgmt-eventgrid { }; + # azure-mgmt-eventgrid = callPackage ./python-modules/azure-mgmt-eventgrid { }; -# azure-mgmt-eventhub = callPackage ./python-modules/azure-mgmt-eventhub { }; + # azure-mgmt-eventhub = callPackage ./python-modules/azure-mgmt-eventhub { }; -# azure-mgmt-extendedlocation = callPackage ./python-modules/azure-mgmt-extendedlocation { }; + # azure-mgmt-extendedlocation = callPackage ./python-modules/azure-mgmt-extendedlocation { }; -# azure-mgmt-frontdoor = callPackage ./python-modules/azure-mgmt-frontdoor { }; + # azure-mgmt-frontdoor = callPackage ./python-modules/azure-mgmt-frontdoor { }; -# azure-mgmt-hanaonazure = callPackage ./python-modules/azure-mgmt-hanaonazure { }; + # azure-mgmt-hanaonazure = callPackage ./python-modules/azure-mgmt-hanaonazure { }; -# azure-mgmt-hdinsight = callPackage ./python-modules/azure-mgmt-hdinsight { }; + # azure-mgmt-hdinsight = callPackage ./python-modules/azure-mgmt-hdinsight { }; -# azure-mgmt-imagebuilder = callPackage ./python-modules/azure-mgmt-imagebuilder { }; + # azure-mgmt-imagebuilder = callPackage ./python-modules/azure-mgmt-imagebuilder { }; -# azure-mgmt-iotcentral = callPackage ./python-modules/azure-mgmt-iotcentral { }; + # azure-mgmt-iotcentral = callPackage ./python-modules/azure-mgmt-iotcentral { }; -# azure-mgmt-iothub = callPackage ./python-modules/azure-mgmt-iothub { }; + # azure-mgmt-iothub = callPackage ./python-modules/azure-mgmt-iothub { }; -# azure-mgmt-iothubprovisioningservices = callPackage ./python-modules/azure-mgmt-iothubprovisioningservices { }; + # azure-mgmt-iothubprovisioningservices = callPackage ./python-modules/azure-mgmt-iothubprovisioningservices { }; -# azure-mgmt-keyvault = callPackage ./python-modules/azure-mgmt-keyvault { }; + # azure-mgmt-keyvault = callPackage ./python-modules/azure-mgmt-keyvault { }; -# azure-mgmt-kusto = callPackage ./python-modules/azure-mgmt-kusto { }; + # azure-mgmt-kusto = callPackage ./python-modules/azure-mgmt-kusto { }; -# azure-mgmt-loganalytics = callPackage ./python-modules/azure-mgmt-loganalytics { }; + # azure-mgmt-loganalytics = callPackage ./python-modules/azure-mgmt-loganalytics { }; -# azure-mgmt-logic = callPackage ./python-modules/azure-mgmt-logic { }; + # azure-mgmt-logic = callPackage ./python-modules/azure-mgmt-logic { }; -# azure-mgmt-machinelearningcompute = callPackage ./python-modules/azure-mgmt-machinelearningcompute { }; + # azure-mgmt-machinelearningcompute = callPackage ./python-modules/azure-mgmt-machinelearningcompute { }; -# azure-mgmt-managedservices = callPackage ./python-modules/azure-mgmt-managedservices { }; + # azure-mgmt-managedservices = callPackage ./python-modules/azure-mgmt-managedservices { }; -# azure-mgmt-managementgroups = callPackage ./python-modules/azure-mgmt-managementgroups { }; + # azure-mgmt-managementgroups = callPackage ./python-modules/azure-mgmt-managementgroups { }; -# azure-mgmt-managementpartner = callPackage ./python-modules/azure-mgmt-managementpartner { }; + # azure-mgmt-managementpartner = callPackage ./python-modules/azure-mgmt-managementpartner { }; -# azure-mgmt-maps = callPackage ./python-modules/azure-mgmt-maps { }; + # azure-mgmt-maps = callPackage ./python-modules/azure-mgmt-maps { }; -# azure-mgmt-marketplaceordering = callPackage ./python-modules/azure-mgmt-marketplaceordering { }; + # azure-mgmt-marketplaceordering = callPackage ./python-modules/azure-mgmt-marketplaceordering { }; -# azure-mgmt-media = callPackage ./python-modules/azure-mgmt-media { }; + # azure-mgmt-media = callPackage ./python-modules/azure-mgmt-media { }; -# azure-mgmt-monitor = callPackage ./python-modules/azure-mgmt-monitor { }; + # azure-mgmt-monitor = callPackage ./python-modules/azure-mgmt-monitor { }; -# azure-mgmt-msi = callPackage ./python-modules/azure-mgmt-msi { }; + # azure-mgmt-msi = callPackage ./python-modules/azure-mgmt-msi { }; -# azure-mgmt-netapp = callPackage ./python-modules/azure-mgmt-netapp { }; + # azure-mgmt-netapp = callPackage ./python-modules/azure-mgmt-netapp { }; -# azure-mgmt-network = callPackage ./python-modules/azure-mgmt-network { }; + # azure-mgmt-network = callPackage ./python-modules/azure-mgmt-network { }; -# azure-mgmt-notificationhubs = callPackage ./python-modules/azure-mgmt-notificationhubs { }; + # azure-mgmt-notificationhubs = callPackage ./python-modules/azure-mgmt-notificationhubs { }; -# azure-mgmt-nspkg = callPackage ./python-modules/azure-mgmt-nspkg { }; + # azure-mgmt-nspkg = callPackage ./python-modules/azure-mgmt-nspkg { }; -# azure-mgmt-policyinsights = callPackage ./python-modules/azure-mgmt-policyinsights { }; + # azure-mgmt-policyinsights = callPackage ./python-modules/azure-mgmt-policyinsights { }; -# azure-mgmt-powerbiembedded = callPackage ./python-modules/azure-mgmt-powerbiembedded { }; + # azure-mgmt-powerbiembedded = callPackage ./python-modules/azure-mgmt-powerbiembedded { }; -# azure-mgmt-privatedns = callPackage ./python-modules/azure-mgmt-privatedns { }; + # azure-mgmt-privatedns = callPackage ./python-modules/azure-mgmt-privatedns { }; -# azure-mgmt-rdbms = callPackage ./python-modules/azure-mgmt-rdbms { }; + # azure-mgmt-rdbms = callPackage ./python-modules/azure-mgmt-rdbms { }; -# azure-mgmt-recoveryservicesbackup = callPackage ./python-modules/azure-mgmt-recoveryservicesbackup { }; + # azure-mgmt-recoveryservicesbackup = callPackage ./python-modules/azure-mgmt-recoveryservicesbackup { }; -# azure-mgmt-recoveryservices = callPackage ./python-modules/azure-mgmt-recoveryservices { }; + # azure-mgmt-recoveryservices = callPackage ./python-modules/azure-mgmt-recoveryservices { }; -# azure-mgmt-redhatopenshift = callPackage ./python-modules/azure-mgmt-redhatopenshift { }; + # azure-mgmt-redhatopenshift = callPackage ./python-modules/azure-mgmt-redhatopenshift { }; -# azure-mgmt-redis = callPackage ./python-modules/azure-mgmt-redis { }; + # azure-mgmt-redis = callPackage ./python-modules/azure-mgmt-redis { }; -# azure-mgmt-relay = callPackage ./python-modules/azure-mgmt-relay { }; + # azure-mgmt-relay = callPackage ./python-modules/azure-mgmt-relay { }; -# azure-mgmt-reservations = callPackage ./python-modules/azure-mgmt-reservations { }; + # azure-mgmt-reservations = callPackage ./python-modules/azure-mgmt-reservations { }; -# azure-mgmt-resource = callPackage ./python-modules/azure-mgmt-resource { }; + # azure-mgmt-resource = callPackage ./python-modules/azure-mgmt-resource { }; -# azure-mgmt-scheduler = callPackage ./python-modules/azure-mgmt-scheduler { }; + # azure-mgmt-scheduler = callPackage ./python-modules/azure-mgmt-scheduler { }; -# azure-mgmt-search = callPackage ./python-modules/azure-mgmt-search { }; + # azure-mgmt-search = callPackage ./python-modules/azure-mgmt-search { }; -# azure-mgmt-security = callPackage ./python-modules/azure-mgmt-security { }; + # azure-mgmt-security = callPackage ./python-modules/azure-mgmt-security { }; -# azure-mgmt-servicebus = callPackage ./python-modules/azure-mgmt-servicebus { }; + # azure-mgmt-servicebus = callPackage ./python-modules/azure-mgmt-servicebus { }; -# azure-mgmt-servicefabric = callPackage ./python-modules/azure-mgmt-servicefabric { }; + # azure-mgmt-servicefabric = callPackage ./python-modules/azure-mgmt-servicefabric { }; -# azure-mgmt-servicefabricmanagedclusters = callPackage ./python-modules/azure-mgmt-servicefabricmanagedclusters { }; + # azure-mgmt-servicefabricmanagedclusters = callPackage ./python-modules/azure-mgmt-servicefabricmanagedclusters { }; -# azure-mgmt-servicelinker = callPackage ./python-modules/azure-mgmt-servicelinker { }; + # azure-mgmt-servicelinker = callPackage ./python-modules/azure-mgmt-servicelinker { }; -# azure-mgmt-signalr = callPackage ./python-modules/azure-mgmt-signalr { }; + # azure-mgmt-signalr = callPackage ./python-modules/azure-mgmt-signalr { }; -# azure-mgmt-sql = callPackage ./python-modules/azure-mgmt-sql { }; + # azure-mgmt-sql = callPackage ./python-modules/azure-mgmt-sql { }; -# azure-mgmt-sqlvirtualmachine = callPackage ./python-modules/azure-mgmt-sqlvirtualmachine { }; + # azure-mgmt-sqlvirtualmachine = callPackage ./python-modules/azure-mgmt-sqlvirtualmachine { }; -# azure-mgmt-storage = callPackage ./python-modules/azure-mgmt-storage { }; + # azure-mgmt-storage = callPackage ./python-modules/azure-mgmt-storage { }; -# azure-mgmt-subscription = callPackage ./python-modules/azure-mgmt-subscription { }; + # azure-mgmt-subscription = callPackage ./python-modules/azure-mgmt-subscription { }; -# azure-mgmt-synapse = callPackage ./python-modules/azure-mgmt-synapse { }; + # azure-mgmt-synapse = callPackage ./python-modules/azure-mgmt-synapse { }; -# azure-mgmt-trafficmanager = callPackage ./python-modules/azure-mgmt-trafficmanager { }; + # azure-mgmt-trafficmanager = callPackage ./python-modules/azure-mgmt-trafficmanager { }; -# azure-mgmt-web = callPackage ./python-modules/azure-mgmt-web { }; + # azure-mgmt-web = callPackage ./python-modules/azure-mgmt-web { }; -# azure-monitor-ingestion = callPackage ./python-modules/azure-monitor-ingestion { }; + # azure-monitor-ingestion = callPackage ./python-modules/azure-monitor-ingestion { }; -# azure-multiapi-storage = callPackage ./python-modules/azure-multiapi-storage { }; + # azure-multiapi-storage = callPackage ./python-modules/azure-multiapi-storage { }; -# azure-nspkg = callPackage ./python-modules/azure-nspkg { }; + # azure-nspkg = callPackage ./python-modules/azure-nspkg { }; -# azure-servicebus = callPackage ./python-modules/azure-servicebus { }; + # azure-servicebus = callPackage ./python-modules/azure-servicebus { }; -# azure-servicefabric = callPackage ./python-modules/azure-servicefabric { }; + # azure-servicefabric = callPackage ./python-modules/azure-servicefabric { }; -# azure-servicemanagement-legacy = callPackage ./python-modules/azure-servicemanagement-legacy { }; + # azure-servicemanagement-legacy = callPackage ./python-modules/azure-servicemanagement-legacy { }; -# azure-storage-blob = callPackage ./python-modules/azure-storage-blob { }; + # azure-storage-blob = callPackage ./python-modules/azure-storage-blob { }; -# azure-storage-common = callPackage ./python-modules/azure-storage-common { }; + # azure-storage-common = callPackage ./python-modules/azure-storage-common { }; -# azure-storage-file = callPackage ./python-modules/azure-storage-file { }; + # azure-storage-file = callPackage ./python-modules/azure-storage-file { }; -# azure-storage-file-share = callPackage ./python-modules/azure-storage-file-share { }; + # azure-storage-file-share = callPackage ./python-modules/azure-storage-file-share { }; -# azure-storage-nspkg = callPackage ./python-modules/azure-storage-nspkg { }; + # azure-storage-nspkg = callPackage ./python-modules/azure-storage-nspkg { }; -# azure-storage-queue = callPackage ./python-modules/azure-storage-queue { }; + # azure-storage-queue = callPackage ./python-modules/azure-storage-queue { }; -# azure-synapse-accesscontrol = callPackage ./python-modules/azure-synapse-accesscontrol { }; + # azure-synapse-accesscontrol = callPackage ./python-modules/azure-synapse-accesscontrol { }; -# azure-synapse-artifacts = callPackage ./python-modules/azure-synapse-artifacts { }; + # azure-synapse-artifacts = callPackage ./python-modules/azure-synapse-artifacts { }; -# azure-synapse-managedprivateendpoints = callPackage ./python-modules/azure-synapse-managedprivateendpoints { }; + # azure-synapse-managedprivateendpoints = callPackage ./python-modules/azure-synapse-managedprivateendpoints { }; -# azure-synapse-spark = callPackage ./python-modules/azure-synapse-spark { }; + # azure-synapse-spark = callPackage ./python-modules/azure-synapse-spark { }; -# b2sdk = callPackage ./python-modules/b2sdk { }; + # b2sdk = callPackage ./python-modules/b2sdk { }; babel = callPackage ./python-modules/babel { }; -# babelfish = callPackage ./python-modules/babelfish { }; + # babelfish = callPackage ./python-modules/babelfish { }; -# babelfont = callPackage ./python-modules/babelfont { }; + # babelfont = callPackage ./python-modules/babelfont { }; -# babelgladeextractor = callPackage ./python-modules/babelgladeextractor { }; + # babelgladeextractor = callPackage ./python-modules/babelgladeextractor { }; -# bambi = callPackage ./python-modules/bambi { }; + # bambi = callPackage ./python-modules/bambi { }; -# pad4pi = callPackage ./python-modules/pad4pi { }; + # pad4pi = callPackage ./python-modules/pad4pi { }; -# paddle-bfloat = callPackage ./python-modules/paddle-bfloat { }; + # paddle-bfloat = callPackage ./python-modules/paddle-bfloat { }; -# paddle2onnx = callPackage ./python-modules/paddle2onnx { }; + # paddle2onnx = callPackage ./python-modules/paddle2onnx { }; -# paddleocr = callPackage ./python-modules/paddleocr { }; + # paddleocr = callPackage ./python-modules/paddleocr { }; -# paddlepaddle = callPackage ./python-modules/paddlepaddle { }; + # paddlepaddle = callPackage ./python-modules/paddlepaddle { }; -# pueblo = callPackage ./python-modules/pueblo { }; + # pueblo = callPackage ./python-modules/pueblo { }; -# pulumi = callPackage ./python-modules/pulumi { inherit (pkgs) pulumi; }; + # pulumi = callPackage ./python-modules/pulumi { inherit (pkgs) pulumi; }; -# pulumi-aws = callPackage ./python-modules/pulumi-aws { }; + # pulumi-aws = callPackage ./python-modules/pulumi-aws { }; -# pulumi-aws-native = pkgs.pulumiPackages.pulumi-aws-native.sdks.python; + # pulumi-aws-native = pkgs.pulumiPackages.pulumi-aws-native.sdks.python; -# pulumi-azure-native = pkgs.pulumiPackages.pulumi-azure-native.sdks.python; + # pulumi-azure-native = pkgs.pulumiPackages.pulumi-azure-native.sdks.python; -# pulumi-command = pkgs.pulumiPackages.pulumi-command.sdks.python; + # pulumi-command = pkgs.pulumiPackages.pulumi-command.sdks.python; -# pulumi-random = pkgs.pulumiPackages.pulumi-random.sdks.python; + # pulumi-random = pkgs.pulumiPackages.pulumi-random.sdks.python; -# backcall = callPackage ./python-modules/backcall { }; + # backcall = callPackage ./python-modules/backcall { }; -# backoff = callPackage ./python-modules/backoff { }; + # backoff = callPackage ./python-modules/backoff { }; -# backports-cached-property = callPackage ./python-modules/backports-cached-property { }; + # backports-cached-property = callPackage ./python-modules/backports-cached-property { }; -# backports-datetime-fromisoformat = callPackage ./python-modules/backports-datetime-fromisoformat { }; + # backports-datetime-fromisoformat = callPackage ./python-modules/backports-datetime-fromisoformat { }; -# backports-entry-points-selectable = callPackage ./python-modules/backports-entry-points-selectable { }; + # backports-entry-points-selectable = callPackage ./python-modules/backports-entry-points-selectable { }; -# backports-shutil-get-terminal-size = callPackage ./python-modules/backports-shutil-get-terminal-size { }; + # backports-shutil-get-terminal-size = callPackage ./python-modules/backports-shutil-get-terminal-size { }; -# backports-shutil-which = callPackage ./python-modules/backports-shutil-which { }; + # backports-shutil-which = callPackage ./python-modules/backports-shutil-which { }; -# backports-strenum = callPackage ./python-modules/backports-strenum { }; + # backports-strenum = callPackage ./python-modules/backports-strenum { }; backports-zoneinfo = callPackage ./python-modules/backports-zoneinfo { }; -# bacpypes = callPackage ./python-modules/bacpypes { }; + # bacpypes = callPackage ./python-modules/bacpypes { }; -# bagit = callPackage ./python-modules/bagit { }; + # bagit = callPackage ./python-modules/bagit { }; -# banal = callPackage ./python-modules/banal { }; + # banal = callPackage ./python-modules/banal { }; -# bandcamp-api = callPackage ./python-modules/bandcamp-api { }; + # bandcamp-api = callPackage ./python-modules/bandcamp-api { }; -# bandit = callPackage ./python-modules/bandit { }; + # bandit = callPackage ./python-modules/bandit { }; -# bangla = callPackage ./python-modules/bangla { }; + # bangla = callPackage ./python-modules/bangla { }; -# bap = callPackage ./python-modules/bap { -# inherit (pkgs.ocaml-ng.ocamlPackages_4_14) bap; -# }; + # bap = callPackage ./python-modules/bap { + # inherit (pkgs.ocaml-ng.ocamlPackages_4_14) bap; + # }; -# barectf = callPackage ./python-modules/barectf { }; + # barectf = callPackage ./python-modules/barectf { }; -# baron = callPackage ./python-modules/baron { }; + # baron = callPackage ./python-modules/baron { }; -# base2048 = callPackage ./python-modules/base2048 { }; + # base2048 = callPackage ./python-modules/base2048 { }; -# base36 = callPackage ./python-modules/base36 { }; + # base36 = callPackage ./python-modules/base36 { }; -# base58 = callPackage ./python-modules/base58 { }; + # base58 = callPackage ./python-modules/base58 { }; -# base58check = callPackage ./python-modules/base58check { }; + # base58check = callPackage ./python-modules/base58check { }; -# base64io = callPackage ./python-modules/base64io { }; + # base64io = callPackage ./python-modules/base64io { }; -# baseline = callPackage ./python-modules/baseline { }; + # baseline = callPackage ./python-modules/baseline { }; -# baselines = callPackage ./python-modules/baselines { }; + # baselines = callPackage ./python-modules/baselines { }; -# basemap = callPackage ./python-modules/basemap { }; + # basemap = callPackage ./python-modules/basemap { }; -# basemap-data = callPackage ./python-modules/basemap-data { }; + # basemap-data = callPackage ./python-modules/basemap-data { }; -# bases = callPackage ./python-modules/bases { }; + # bases = callPackage ./python-modules/bases { }; -# bash-kernel = callPackage ./python-modules/bash-kernel { }; + # bash-kernel = callPackage ./python-modules/bash-kernel { }; -# bashlex = callPackage ./python-modules/bashlex { }; + # bashlex = callPackage ./python-modules/bashlex { }; -# basiciw = callPackage ./python-modules/basiciw { }; + # basiciw = callPackage ./python-modules/basiciw { }; -# batchgenerators = callPackage ./python-modules/batchgenerators { }; + # batchgenerators = callPackage ./python-modules/batchgenerators { }; -# batchspawner = callPackage ./python-modules/batchspawner { }; + # batchspawner = callPackage ./python-modules/batchspawner { }; -# batinfo = callPackage ./python-modules/batinfo { }; + # batinfo = callPackage ./python-modules/batinfo { }; -# baycomp = callPackage ./python-modules/baycomp { }; + # baycomp = callPackage ./python-modules/baycomp { }; -# bayesian-optimization = callPackage ./python-modules/bayesian-optimization { }; + # bayesian-optimization = callPackage ./python-modules/bayesian-optimization { }; -# bayespy = callPackage ./python-modules/bayespy { }; + # bayespy = callPackage ./python-modules/bayespy { }; -# bbox = callPackage ./python-modules/bbox { }; + # bbox = callPackage ./python-modules/bbox { }; -# bc-detect-secrets = callPackage ./python-modules/bc-detect-secrets { }; + # bc-detect-secrets = callPackage ./python-modules/bc-detect-secrets { }; -# bc-jsonpath-ng = callPackage ./python-modules/bc-jsonpath-ng { }; + # bc-jsonpath-ng = callPackage ./python-modules/bc-jsonpath-ng { }; -# bc-python-hcl2 = callPackage ./python-modules/bc-python-hcl2 { }; + # bc-python-hcl2 = callPackage ./python-modules/bc-python-hcl2 { }; -# bcdoc = callPackage ./python-modules/bcdoc { }; + # bcdoc = callPackage ./python-modules/bcdoc { }; -# bcf = callPackage ./python-modules/bcf { }; + # bcf = callPackage ./python-modules/bcf { }; -# bcg = callPackage ./python-modules/bcg { }; + # bcg = callPackage ./python-modules/bcg { }; -# bch = callPackage ./python-modules/bch { }; + # bch = callPackage ./python-modules/bch { }; -# bcrypt = if stdenv.hostPlatform.system == "i686-linux" then -# callPackage ./python-modules/bcrypt/3.nix { } -# else -# callPackage ./python-modules/bcrypt { }; + # bcrypt = if stdenv.hostPlatform.system == "i686-linux" then + # callPackage ./python-modules/bcrypt/3.nix { } + # else + # callPackage ./python-modules/bcrypt { }; -# bdffont = callPackage ./python-modules/bdffont { }; + # bdffont = callPackage ./python-modules/bdffont { }; -# beaker = callPackage ./python-modules/beaker { }; + # beaker = callPackage ./python-modules/beaker { }; -# before-after = callPackage ./python-modules/before-after { }; + # before-after = callPackage ./python-modules/before-after { }; -# beancount = callPackage ./python-modules/beancount { }; + # beancount = callPackage ./python-modules/beancount { }; -# beancount-black = callPackage ./python-modules/beancount-black { }; + # beancount-black = callPackage ./python-modules/beancount-black { }; -# beancount-parser = callPackage ./python-modules/beancount-parser { }; + # beancount-parser = callPackage ./python-modules/beancount-parser { }; -# beancount-docverif = callPackage ./python-modules/beancount-docverif { }; + # beancount-docverif = callPackage ./python-modules/beancount-docverif { }; -# beanstalkc = callPackage ./python-modules/beanstalkc { }; + # beanstalkc = callPackage ./python-modules/beanstalkc { }; -# beartype = callPackage ./python-modules/beartype { }; + # beartype = callPackage ./python-modules/beartype { }; -# beautiful-date = callPackage ./python-modules/beautiful-date { }; + # beautiful-date = callPackage ./python-modules/beautiful-date { }; -# beautifulsoup4 = callPackage ./python-modules/beautifulsoup4 { }; + # beautifulsoup4 = callPackage ./python-modules/beautifulsoup4 { }; -# beautifultable = callPackage ./python-modules/beautifultable { }; + # beautifultable = callPackage ./python-modules/beautifultable { }; -# beautysh = callPackage ./python-modules/beautysh { }; + # beautysh = callPackage ./python-modules/beautysh { }; -# bech32 = callPackage ./python-modules/bech32 { }; + # bech32 = callPackage ./python-modules/bech32 { }; -# behave = callPackage ./python-modules/behave { }; + # behave = callPackage ./python-modules/behave { }; -# bellows = callPackage ./python-modules/bellows { }; + # bellows = callPackage ./python-modules/bellows { }; -# bencode-py = callPackage ./python-modules/bencode-py { }; + # bencode-py = callPackage ./python-modules/bencode-py { }; -# bencoder = callPackage ./python-modules/bencoder { }; + # bencoder = callPackage ./python-modules/bencoder { }; -# beniget = callPackage ./python-modules/beniget { }; + # beniget = callPackage ./python-modules/beniget { }; -# bentoml = callPackage ./python-modules/bentoml { }; + # bentoml = callPackage ./python-modules/bentoml { }; -# bespon = callPackage ./python-modules/bespon { }; + # bespon = callPackage ./python-modules/bespon { }; -# betacode = callPackage ./python-modules/betacode { }; + # betacode = callPackage ./python-modules/betacode { }; -# betamax = callPackage ./python-modules/betamax { }; + # betamax = callPackage ./python-modules/betamax { }; -# betamax-matchers = callPackage ./python-modules/betamax-matchers { }; + # betamax-matchers = callPackage ./python-modules/betamax-matchers { }; -# betamax-serializers = callPackage ./python-modules/betamax-serializers { }; + # betamax-serializers = callPackage ./python-modules/betamax-serializers { }; -# betterproto = callPackage ./python-modules/betterproto { }; + # betterproto = callPackage ./python-modules/betterproto { }; -# beziers = callPackage ./python-modules/beziers { }; + # beziers = callPackage ./python-modules/beziers { }; -# bibtexparser = callPackage ./python-modules/bibtexparser { }; + # bibtexparser = callPackage ./python-modules/bibtexparser { }; -# bidict = callPackage ./python-modules/bidict { }; + # bidict = callPackage ./python-modules/bidict { }; -# bids-validator = callPackage ./python-modules/bids-validator { }; + # bids-validator = callPackage ./python-modules/bids-validator { }; -# biliass = callPackage ./python-modules/biliass { }; + # biliass = callPackage ./python-modules/biliass { }; -# billiard = callPackage ./python-modules/billiard { }; + # billiard = callPackage ./python-modules/billiard { }; -# bimmer-connected = callPackage ./python-modules/bimmer-connected { }; + # bimmer-connected = callPackage ./python-modules/bimmer-connected { }; -# binary = callPackage ./python-modules/binary { }; + # binary = callPackage ./python-modules/binary { }; -# binary2strings = callPackage ./python-modules/binary2strings { }; + # binary2strings = callPackage ./python-modules/binary2strings { }; -# binaryornot = callPackage ./python-modules/binaryornot { }; + # binaryornot = callPackage ./python-modules/binaryornot { }; -# bincopy = callPackage ./python-modules/bincopy { }; + # bincopy = callPackage ./python-modules/bincopy { }; -# bindep = callPackage ./python-modules/bindep { }; + # bindep = callPackage ./python-modules/bindep { }; -# binho-host-adapter = callPackage ./python-modules/binho-host-adapter { }; + # binho-host-adapter = callPackage ./python-modules/binho-host-adapter { }; -# binwalk = callPackage ./python-modules/binwalk { }; + # binwalk = callPackage ./python-modules/binwalk { }; -# binwalk-full = self.binwalk.override { visualizationSupport = true; }; + # binwalk-full = self.binwalk.override { visualizationSupport = true; }; -# biopandas = callPackage ./python-modules/biopandas { }; + # biopandas = callPackage ./python-modules/biopandas { }; -# biopython = callPackage ./python-modules/biopython { }; + # biopython = callPackage ./python-modules/biopython { }; -# biplist = callPackage ./python-modules/biplist { }; + # biplist = callPackage ./python-modules/biplist { }; -# bip-utils = callPackage ./python-modules/bip-utils { }; + # bip-utils = callPackage ./python-modules/bip-utils { }; -# bip32 = callPackage ./python-modules/bip32 { }; + # bip32 = callPackage ./python-modules/bip32 { }; -# birch = callPackage ./python-modules/birch { }; + # birch = callPackage ./python-modules/birch { }; -# bitarray = callPackage ./python-modules/bitarray { }; + # bitarray = callPackage ./python-modules/bitarray { }; -# bitbox02 = callPackage ./python-modules/bitbox02 { }; + # bitbox02 = callPackage ./python-modules/bitbox02 { }; -# bitcoinlib = callPackage ./python-modules/bitcoinlib { }; + # bitcoinlib = callPackage ./python-modules/bitcoinlib { }; -# bitcoin-utils-fork-minimal = callPackage ./python-modules/bitcoin-utils-fork-minimal { }; + # bitcoin-utils-fork-minimal = callPackage ./python-modules/bitcoin-utils-fork-minimal { }; -# bitcoinrpc = callPackage ./python-modules/bitcoinrpc { }; + # bitcoinrpc = callPackage ./python-modules/bitcoinrpc { }; -# bite-parser = callPackage ./python-modules/bite-parser { }; + # bite-parser = callPackage ./python-modules/bite-parser { }; -# bitlist = callPackage ./python-modules/bitlist { }; + # bitlist = callPackage ./python-modules/bitlist { }; -# bitmath = callPackage ./python-modules/bitmath { }; + # bitmath = callPackage ./python-modules/bitmath { }; -# bitsandbytes = callPackage ./python-modules/bitsandbytes { }; + # bitsandbytes = callPackage ./python-modules/bitsandbytes { }; -# bitstring = callPackage ./python-modules/bitstring { }; + # bitstring = callPackage ./python-modules/bitstring { }; -# bitstruct = callPackage ./python-modules/bitstruct { }; + # bitstruct = callPackage ./python-modules/bitstruct { }; -# bitvavo-aio = callPackage ./python-modules/bitvavo-aio { }; + # bitvavo-aio = callPackage ./python-modules/bitvavo-aio { }; -# bizkaibus = callPackage ./python-modules/bizkaibus { }; + # bizkaibus = callPackage ./python-modules/bizkaibus { }; -# bjoern = callPackage ./python-modules/bjoern { }; + # bjoern = callPackage ./python-modules/bjoern { }; -# bkcharts = callPackage ./python-modules/bkcharts { }; + # bkcharts = callPackage ./python-modules/bkcharts { }; -# black = callPackage ./python-modules/black { }; + # black = callPackage ./python-modules/black { }; -# blackjax = callPackage ./python-modules/blackjax { }; + # blackjax = callPackage ./python-modules/blackjax { }; -# black-macchiato = callPackage ./python-modules/black-macchiato { }; + # black-macchiato = callPackage ./python-modules/black-macchiato { }; -# bleach = callPackage ./python-modules/bleach { }; + # bleach = callPackage ./python-modules/bleach { }; -# bleach-allowlist = callPackage ./python-modules/bleach-allowlist { }; + # bleach-allowlist = callPackage ./python-modules/bleach-allowlist { }; -# bleak = callPackage ./python-modules/bleak { }; + # bleak = callPackage ./python-modules/bleak { }; -# bleak-esphome = callPackage ./python-modules/bleak-esphome { }; + # bleak-esphome = callPackage ./python-modules/bleak-esphome { }; -# bleak-retry-connector = callPackage ./python-modules/bleak-retry-connector { }; + # bleak-retry-connector = callPackage ./python-modules/bleak-retry-connector { }; -# blebox-uniapi = callPackage ./python-modules/blebox-uniapi { }; + # blebox-uniapi = callPackage ./python-modules/blebox-uniapi { }; -# bless = callPackage ./python-modules/bless { }; + # bless = callPackage ./python-modules/bless { }; -# blessed = callPackage ./python-modules/blessed { }; + # blessed = callPackage ./python-modules/blessed { }; -# blessings = callPackage ./python-modules/blessings { }; + # blessings = callPackage ./python-modules/blessings { }; -# blinker = callPackage ./python-modules/blinker { }; + # blinker = callPackage ./python-modules/blinker { }; -# blinkpy = callPackage ./python-modules/blinkpy { }; + # blinkpy = callPackage ./python-modules/blinkpy { }; -# blinkstick = callPackage ./python-modules/blinkstick { }; + # blinkstick = callPackage ./python-modules/blinkstick { }; -# blis = callPackage ./python-modules/blis { }; + # blis = callPackage ./python-modules/blis { }; -# blobfile = callPackage ./python-modules/blobfile { }; + # blobfile = callPackage ./python-modules/blobfile { }; -# blockchain = callPackage ./python-modules/blockchain { }; + # blockchain = callPackage ./python-modules/blockchain { }; -# blockdiag = callPackage ./python-modules/blockdiag { }; + # blockdiag = callPackage ./python-modules/blockdiag { }; -# block-io = callPackage ./python-modules/block-io { }; + # block-io = callPackage ./python-modules/block-io { }; -# blockfrost-python = callPackage ./python-modules/blockfrost-python { }; + # blockfrost-python = callPackage ./python-modules/blockfrost-python { }; -# blocksat-cli = callPackage ./python-modules/blocksat-cli { }; + # blocksat-cli = callPackage ./python-modules/blocksat-cli { }; -# bloodhound-py = callPackage ./python-modules/bloodhound-py { }; + # bloodhound-py = callPackage ./python-modules/bloodhound-py { }; -# bloodyad = callPackage ./python-modules/bloodyad { }; + # bloodyad = callPackage ./python-modules/bloodyad { }; -# blosc2 = callPackage ./python-modules/blosc2 { }; + # blosc2 = callPackage ./python-modules/blosc2 { }; -# bluecurrent-api = callPackage ./python-modules/bluecurrent-api { }; + # bluecurrent-api = callPackage ./python-modules/bluecurrent-api { }; -# bluemaestro-ble = callPackage ./python-modules/bluemaestro-ble { }; + # bluemaestro-ble = callPackage ./python-modules/bluemaestro-ble { }; -# bluepy = callPackage ./python-modules/bluepy { }; + # bluepy = callPackage ./python-modules/bluepy { }; -# bluepy-devices = callPackage ./python-modules/bluepy-devices { }; + # bluepy-devices = callPackage ./python-modules/bluepy-devices { }; -# bluetooth-adapters = callPackage ./python-modules/bluetooth-adapters { }; + # bluetooth-adapters = callPackage ./python-modules/bluetooth-adapters { }; -# bluetooth-auto-recovery = callPackage ./python-modules/bluetooth-auto-recovery { }; + # bluetooth-auto-recovery = callPackage ./python-modules/bluetooth-auto-recovery { }; -# bluetooth-data-tools= callPackage ./python-modules/bluetooth-data-tools { }; + # bluetooth-data-tools= callPackage ./python-modules/bluetooth-data-tools { }; -# bluetooth-sensor-state-data = callPackage ./python-modules/bluetooth-sensor-state-data { }; + # bluetooth-sensor-state-data = callPackage ./python-modules/bluetooth-sensor-state-data { }; -# blurhash = callPackage ./python-modules/blurhash { }; + # blurhash = callPackage ./python-modules/blurhash { }; -# blurhash-python = callPackage ./python-modules/blurhash-python { }; + # blurhash-python = callPackage ./python-modules/blurhash-python { }; -# bme280spi = callPackage ./python-modules/bme280spi { }; + # bme280spi = callPackage ./python-modules/bme280spi { }; -# bme680 = callPackage ./python-modules/bme680 { }; + # bme680 = callPackage ./python-modules/bme680 { }; -# bnnumerizer = callPackage ./python-modules/bnnumerizer { }; + # bnnumerizer = callPackage ./python-modules/bnnumerizer { }; -# bnunicodenormalizer = callPackage ./python-modules/bnunicodenormalizer { }; + # bnunicodenormalizer = callPackage ./python-modules/bnunicodenormalizer { }; -# boa-api = callPackage ./python-modules/boa-api { }; + # boa-api = callPackage ./python-modules/boa-api { }; -# boiboite-opener-framework = callPackage ./python-modules/boiboite-opener-framework { }; + # boiboite-opener-framework = callPackage ./python-modules/boiboite-opener-framework { }; -# boilerpy3 = callPackage ./python-modules/boilerpy3 { }; + # boilerpy3 = callPackage ./python-modules/boilerpy3 { }; -# bokeh = callPackage ./python-modules/bokeh { }; + # bokeh = callPackage ./python-modules/bokeh { }; -# boltons = callPackage ./python-modules/boltons { }; + # boltons = callPackage ./python-modules/boltons { }; -# boltztrap2 = callPackage ./python-modules/boltztrap2 { }; + # boltztrap2 = callPackage ./python-modules/boltztrap2 { }; -# bond-api = callPackage ./python-modules/bond-api { }; + # bond-api = callPackage ./python-modules/bond-api { }; -# bond-async = callPackage ./python-modules/bond-async { }; + # bond-async = callPackage ./python-modules/bond-async { }; -# bonsai = callPackage ./python-modules/bonsai { }; + # bonsai = callPackage ./python-modules/bonsai { }; -# booleanoperations = callPackage ./python-modules/booleanoperations { }; + # booleanoperations = callPackage ./python-modules/booleanoperations { }; -# boolean-py = callPackage ./python-modules/boolean-py { }; + # boolean-py = callPackage ./python-modules/boolean-py { }; -# # Build boost for this specific Python version -# # TODO: use separate output for libboost_python.so -# boost = toPythonModule (pkgs.boost.override { -# inherit (self) python numpy; -# enablePython = true; -# }); + # # Build boost for this specific Python version + # # TODO: use separate output for libboost_python.so + # boost = toPythonModule (pkgs.boost.override { + # inherit (self) python numpy; + # enablePython = true; + # }); -# borb = callPackage ./python-modules/borb { }; + # borb = callPackage ./python-modules/borb { }; -# bork = callPackage ./python-modules/bork { }; + # bork = callPackage ./python-modules/bork { }; -# boschshcpy = callPackage ./python-modules/boschshcpy { }; + # boschshcpy = callPackage ./python-modules/boschshcpy { }; -# bottombar = callPackage ./python-modules/bottombar { }; + # bottombar = callPackage ./python-modules/bottombar { }; -# boost-histogram = callPackage ./python-modules/boost-histogram { -# inherit (pkgs) boost; -# }; + # boost-histogram = callPackage ./python-modules/boost-histogram { + # inherit (pkgs) boost; + # }; -# boto3 = callPackage ./python-modules/boto3 { }; + # boto3 = callPackage ./python-modules/boto3 { }; -# boto3-stubs = callPackage ./python-modules/boto3-stubs { }; + # boto3-stubs = callPackage ./python-modules/boto3-stubs { }; -# boto = callPackage ./python-modules/boto { }; + # boto = callPackage ./python-modules/boto { }; -# botocore = callPackage ./python-modules/botocore { }; + # botocore = callPackage ./python-modules/botocore { }; -# botocore-stubs = callPackage ./python-modules/botocore-stubs { }; + # botocore-stubs = callPackage ./python-modules/botocore-stubs { }; -# botorch = callPackage ./python-modules/botorch { }; + # botorch = callPackage ./python-modules/botorch { }; -# bottle = callPackage ./python-modules/bottle { }; + # bottle = callPackage ./python-modules/bottle { }; -# bottleneck = callPackage ./python-modules/bottleneck { }; + # bottleneck = callPackage ./python-modules/bottleneck { }; -# boxx = callPackage ./python-modules/boxx { }; + # boxx = callPackage ./python-modules/boxx { }; -# bpemb = callPackage ./python-modules/bpemb { }; + # bpemb = callPackage ./python-modules/bpemb { }; -# bpycv = callPackage ./python-modules/bpycv {}; + # bpycv = callPackage ./python-modules/bpycv {}; -# bpython = callPackage ./python-modules/bpython { }; + # bpython = callPackage ./python-modules/bpython { }; -# bqplot = callPackage ./python-modules/bqplot { }; + # bqplot = callPackage ./python-modules/bqplot { }; -# bqscales = callPackage ./python-modules/bqscales { }; + # bqscales = callPackage ./python-modules/bqscales { }; -# braceexpand = callPackage ./python-modules/braceexpand { }; + # braceexpand = callPackage ./python-modules/braceexpand { }; -# bracex = callPackage ./python-modules/bracex { }; + # bracex = callPackage ./python-modules/bracex { }; -# braintree = callPackage ./python-modules/braintree { }; + # braintree = callPackage ./python-modules/braintree { }; -# branca = callPackage ./python-modules/branca { }; + # branca = callPackage ./python-modules/branca { }; -# bravado-core = callPackage ./python-modules/bravado-core { }; + # bravado-core = callPackage ./python-modules/bravado-core { }; -# bravia-tv = callPackage ./python-modules/bravia-tv { }; + # bravia-tv = callPackage ./python-modules/bravia-tv { }; -# breathe = callPackage ./python-modules/breathe { }; + # breathe = callPackage ./python-modules/breathe { }; -# breezy = callPackage ./python-modules/breezy { }; + # breezy = callPackage ./python-modules/breezy { }; -# brelpy = callPackage ./python-modules/brelpy { }; + # brelpy = callPackage ./python-modules/brelpy { }; -# brian2 = callPackage ./python-modules/brian2 { }; + # brian2 = callPackage ./python-modules/brian2 { }; -# bring-api = callPackage ./python-modules/bring-api { }; + # bring-api = callPackage ./python-modules/bring-api { }; -# broadbean = callPackage ./python-modules/broadbean { }; + # broadbean = callPackage ./python-modules/broadbean { }; -# broadlink = callPackage ./python-modules/broadlink { }; + # broadlink = callPackage ./python-modules/broadlink { }; -# brother = callPackage ./python-modules/brother { }; + # brother = callPackage ./python-modules/brother { }; -# brother-ql = callPackage ./python-modules/brother-ql { }; + # brother-ql = callPackage ./python-modules/brother-ql { }; -# brotli = callPackage ./python-modules/brotli { }; + # brotli = callPackage ./python-modules/brotli { }; -# brotli-asgi = callPackage ./python-modules/brotli-asgi { }; + # brotli-asgi = callPackage ./python-modules/brotli-asgi { }; - brotlicffi = callPackage ./python-modules/brotlicffi { - inherit (pkgs) brotli; - }; + brotlicffi = callPackage ./python-modules/brotlicffi { inherit (pkgs) brotli; }; -# brotlipy = callPackage ./python-modules/brotlipy { }; + # brotlipy = callPackage ./python-modules/brotlipy { }; -# brottsplatskartan = callPackage ./python-modules/brottsplatskartan { }; + # brottsplatskartan = callPackage ./python-modules/brottsplatskartan { }; -# browser-cookie3 = callPackage ./python-modules/browser-cookie3 { }; + # browser-cookie3 = callPackage ./python-modules/browser-cookie3 { }; -# brunt = callPackage ./python-modules/brunt { }; + # brunt = callPackage ./python-modules/brunt { }; -# bsddb3 = callPackage ./python-modules/bsddb3 { }; + # bsddb3 = callPackage ./python-modules/bsddb3 { }; -# bsdiff4 = callPackage ./python-modules/bsdiff4 { }; + # bsdiff4 = callPackage ./python-modules/bsdiff4 { }; -# bson = callPackage ./python-modules/bson { }; + # bson = callPackage ./python-modules/bson { }; -# bsuite = callPackage ./python-modules/bsuite { }; + # bsuite = callPackage ./python-modules/bsuite { }; -# btchip-python = callPackage ./python-modules/btchip-python { }; + # btchip-python = callPackage ./python-modules/btchip-python { }; -# btest = callPackage ./python-modules/btest { }; + # btest = callPackage ./python-modules/btest { }; -# bthome-ble = callPackage ./python-modules/bthome-ble { }; + # bthome-ble = callPackage ./python-modules/bthome-ble { }; -# bt-proximity = callPackage ./python-modules/bt-proximity { }; + # bt-proximity = callPackage ./python-modules/bt-proximity { }; -# btrees = callPackage ./python-modules/btrees { }; + # btrees = callPackage ./python-modules/btrees { }; -# btrfs = callPackage ./python-modules/btrfs { }; + # btrfs = callPackage ./python-modules/btrfs { }; -# btrfsutil = callPackage ./python-modules/btrfsutil { }; + # btrfsutil = callPackage ./python-modules/btrfsutil { }; -# btsmarthub-devicelist = callPackage ./python-modules/btsmarthub-devicelist { }; + # btsmarthub-devicelist = callPackage ./python-modules/btsmarthub-devicelist { }; -# btsocket = callPackage ./python-modules/btsocket { }; + # btsocket = callPackage ./python-modules/btsocket { }; -# bubop = callPackage ./python-modules/bubop { }; + # bubop = callPackage ./python-modules/bubop { }; -# bucketstore = callPackage ./python-modules/bucketstore { }; + # bucketstore = callPackage ./python-modules/bucketstore { }; -# bugsnag = callPackage ./python-modules/bugsnag { }; + # bugsnag = callPackage ./python-modules/bugsnag { }; -# bugwarrior = callPackage ./python-modules/bugwarrior { }; + # bugwarrior = callPackage ./python-modules/bugwarrior { }; -# bugz = callPackage ./python-modules/bugz { }; + # bugz = callPackage ./python-modules/bugz { }; -# bugzilla = callPackage ./python-modules/bugzilla { }; + # bugzilla = callPackage ./python-modules/bugzilla { }; -# buienradar = callPackage ./python-modules/buienradar { }; + # buienradar = callPackage ./python-modules/buienradar { }; build = callPackage ./python-modules/build { }; buildcatrust = callPackage ./python-modules/buildcatrust { }; -# bumps = callPackage ./python-modules/bumps { }; + # bumps = callPackage ./python-modules/bumps { }; -# bunch = callPackage ./python-modules/bunch { }; + # bunch = callPackage ./python-modules/bunch { }; -# bundlewrap = callPackage ./python-modules/bundlewrap { }; + # bundlewrap = callPackage ./python-modules/bundlewrap { }; -# bundlewrap-keepass = callPackage ./python-modules/bundlewrap-keepass { }; + # bundlewrap-keepass = callPackage ./python-modules/bundlewrap-keepass { }; -# bundlewrap-pass = callPackage ./python-modules/bundlewrap-pass { }; + # bundlewrap-pass = callPackage ./python-modules/bundlewrap-pass { }; -# bundlewrap-teamvault = callPackage ./python-modules/bundlewrap-teamvault { }; + # bundlewrap-teamvault = callPackage ./python-modules/bundlewrap-teamvault { }; -# busypie = callPackage ./python-modules/busypie { }; + # busypie = callPackage ./python-modules/busypie { }; -# bx-py-utils = callPackage ./python-modules/bx-py-utils { }; + # bx-py-utils = callPackage ./python-modules/bx-py-utils { }; -# bx-python = callPackage ./python-modules/bx-python { }; + # bx-python = callPackage ./python-modules/bx-python { }; -# bwapy = callPackage ./python-modules/bwapy { }; + # bwapy = callPackage ./python-modules/bwapy { }; -# bytecode = callPackage ./python-modules/bytecode { }; + # bytecode = callPackage ./python-modules/bytecode { }; -# bytewax = callPackage ./python-modules/bytewax { }; + # bytewax = callPackage ./python-modules/bytewax { }; -# bz2file = callPackage ./python-modules/bz2file { }; + # bz2file = callPackage ./python-modules/bz2file { }; -# cachecontrol = callPackage ./python-modules/cachecontrol { }; + # cachecontrol = callPackage ./python-modules/cachecontrol { }; -# cached-ipaddress = callPackage ./python-modules/cached-ipaddress { }; + # cached-ipaddress = callPackage ./python-modules/cached-ipaddress { }; -# cached-property = callPackage ./python-modules/cached-property { }; + # cached-property = callPackage ./python-modules/cached-property { }; -# cachelib = callPackage ./python-modules/cachelib { }; + # cachelib = callPackage ./python-modules/cachelib { }; -# cachetools = callPackage ./python-modules/cachetools { }; + # cachetools = callPackage ./python-modules/cachetools { }; -# cachey = callPackage ./python-modules/cachey { }; + # cachey = callPackage ./python-modules/cachey { }; -# cachier = callPackage ./python-modules/cachier { }; + # cachier = callPackage ./python-modules/cachier { }; -# cachy = callPackage ./python-modules/cachy { }; + # cachy = callPackage ./python-modules/cachy { }; -# cadquery = callPackage ./python-modules/cadquery { -# inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; -# }; + # cadquery = callPackage ./python-modules/cadquery { + # inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; + # }; -# caffe = toPythonModule (pkgs.caffe.override { -# pythonSupport = true; -# inherit (self) python numpy boost; -# }); + # caffe = toPythonModule (pkgs.caffe.override { + # pythonSupport = true; + # inherit (self) python numpy boost; + # }); -# caffeWithCuda = toPythonModule (pkgs.caffeWithCuda.override { -# pythonSupport = true; -# inherit (self) python numpy boost; -# }); + # caffeWithCuda = toPythonModule (pkgs.caffeWithCuda.override { + # pythonSupport = true; + # inherit (self) python numpy boost; + # }); -# caio = callPackage ./python-modules/caio { }; + # caio = callPackage ./python-modules/caio { }; -# cairocffi = callPackage ./python-modules/cairocffi { }; + # cairocffi = callPackage ./python-modules/cairocffi { }; -# cairosvg = callPackage ./python-modules/cairosvg { }; + # cairosvg = callPackage ./python-modules/cairosvg { }; -# caldav = callPackage ./python-modules/caldav { }; + # caldav = callPackage ./python-modules/caldav { }; calver = callPackage ./python-modules/calver { }; -# callee = callPackage ./python-modules/callee { }; + # callee = callPackage ./python-modules/callee { }; -# calmjs = callPackage ./python-modules/calmjs { }; + # calmjs = callPackage ./python-modules/calmjs { }; -# calmjs-parse = callPackage ./python-modules/calmjs-parse { }; + # calmjs-parse = callPackage ./python-modules/calmjs-parse { }; -# calmjs-types = callPackage ./python-modules/calmjs-types { }; + # calmjs-types = callPackage ./python-modules/calmjs-types { }; -# calysto = callPackage ./python-modules/calysto { }; + # calysto = callPackage ./python-modules/calysto { }; -# calysto-scheme = callPackage ./python-modules/calysto-scheme { }; + # calysto-scheme = callPackage ./python-modules/calysto-scheme { }; -# camel-converter = callPackage ./python-modules/camel-converter { }; + # camel-converter = callPackage ./python-modules/camel-converter { }; -# can = callPackage ./python-modules/can { }; + # can = callPackage ./python-modules/can { }; -# canals = callPackage ./python-modules/canals { }; + # canals = callPackage ./python-modules/canals { }; -# canmatrix = callPackage ./python-modules/canmatrix { }; + # canmatrix = callPackage ./python-modules/canmatrix { }; -# canonicaljson = callPackage ./python-modules/canonicaljson { }; + # canonicaljson = callPackage ./python-modules/canonicaljson { }; -# canopen = callPackage ./python-modules/canopen { }; + # canopen = callPackage ./python-modules/canopen { }; -# cantools = callPackage ./python-modules/cantools { }; + # cantools = callPackage ./python-modules/cantools { }; -# camelot = callPackage ./python-modules/camelot { }; + # camelot = callPackage ./python-modules/camelot { }; -# capstone = callPackage ./python-modules/capstone { -# inherit (pkgs) capstone; -# }; -# capstone_4 = callPackage ./python-modules/capstone/4.nix { -# inherit (pkgs) capstone_4; -# }; + # capstone = callPackage ./python-modules/capstone { + # inherit (pkgs) capstone; + # }; + # capstone_4 = callPackage ./python-modules/capstone/4.nix { + # inherit (pkgs) capstone_4; + # }; -# captcha = callPackage ./python-modules/captcha { }; + # captcha = callPackage ./python-modules/captcha { }; -# capturer = callPackage ./python-modules/capturer { }; + # capturer = callPackage ./python-modules/capturer { }; -# carbon = callPackage ./python-modules/carbon { }; + # carbon = callPackage ./python-modules/carbon { }; -# cart = callPackage ./python-modules/cart { }; + # cart = callPackage ./python-modules/cart { }; -# cartopy = callPackage ./python-modules/cartopy { }; + # cartopy = callPackage ./python-modules/cartopy { }; -# casa-formats-io = callPackage ./python-modules/casa-formats-io { }; + # casa-formats-io = callPackage ./python-modules/casa-formats-io { }; -# casbin = callPackage ./python-modules/casbin { }; + # casbin = callPackage ./python-modules/casbin { }; -# case = callPackage ./python-modules/case { }; + # case = callPackage ./python-modules/case { }; -# cashaddress = callPackage ./python-modules/cashaddress { }; + # cashaddress = callPackage ./python-modules/cashaddress { }; -# cassandra-driver = callPackage ./python-modules/cassandra-driver { }; + # cassandra-driver = callPackage ./python-modules/cassandra-driver { }; -# castepxbin = callPackage ./python-modules/castepxbin { }; + # castepxbin = callPackage ./python-modules/castepxbin { }; -# casttube = callPackage ./python-modules/casttube { }; + # casttube = callPackage ./python-modules/casttube { }; -# catalogue = callPackage ./python-modules/catalogue { }; + # catalogue = callPackage ./python-modules/catalogue { }; -# catboost = callPackage ./python-modules/catboost { -# catboost = pkgs.catboost.override { -# pythonSupport = true; -# python3Packages = self; -# }; -# }; + # catboost = callPackage ./python-modules/catboost { + # catboost = pkgs.catboost.override { + # pythonSupport = true; + # python3Packages = self; + # }; + # }; -# catkin-pkg = callPackage ./python-modules/catkin-pkg { }; + # catkin-pkg = callPackage ./python-modules/catkin-pkg { }; -# catppuccin = callPackage ./python-modules/catppuccin { }; + # catppuccin = callPackage ./python-modules/catppuccin { }; -# cattrs = callPackage ./python-modules/cattrs { }; + # cattrs = callPackage ./python-modules/cattrs { }; -# cbeams = callPackage ../misc/cbeams { }; + # cbeams = callPackage ../misc/cbeams { }; -# cbor2 = callPackage ./python-modules/cbor2 { }; + # cbor2 = callPackage ./python-modules/cbor2 { }; -# cbor = callPackage ./python-modules/cbor { }; + # cbor = callPackage ./python-modules/cbor { }; -# cccolutils = callPackage ./python-modules/cccolutils { }; + # cccolutils = callPackage ./python-modules/cccolutils { }; -# cdcs = callPackage ./python-modules/cdcs { }; + # cdcs = callPackage ./python-modules/cdcs { }; -# celery = callPackage ./python-modules/celery { }; + # celery = callPackage ./python-modules/celery { }; -# celery-redbeat = callPackage ./python-modules/celery-redbeat { }; + # celery-redbeat = callPackage ./python-modules/celery-redbeat { }; -# celery-singleton = callPackage ./python-modules/celery-singleton { }; + # celery-singleton = callPackage ./python-modules/celery-singleton { }; -# celery-types = callPackage ./python-modules/celery-types { }; + # celery-types = callPackage ./python-modules/celery-types { }; -# cement = callPackage ./python-modules/cement { }; + # cement = callPackage ./python-modules/cement { }; -# cemm = callPackage ./python-modules/cemm { }; + # cemm = callPackage ./python-modules/cemm { }; -# censys = callPackage ./python-modules/censys { }; + # censys = callPackage ./python-modules/censys { }; -# cexprtk = callPackage ./python-modules/cexprtk { }; + # cexprtk = callPackage ./python-modules/cexprtk { }; -# coffea = callPackage ./python-modules/coffea { }; + # coffea = callPackage ./python-modules/coffea { }; -# cohere = callPackage ./python-modules/cohere { }; + # cohere = callPackage ./python-modules/cohere { }; -# coincurve = callPackage ./python-modules/coincurve { -# inherit (pkgs) secp256k1; -# }; + # coincurve = callPackage ./python-modules/coincurve { + # inherit (pkgs) secp256k1; + # }; -# comicon = callPackage ./python-modules/comicon { }; + # comicon = callPackage ./python-modules/comicon { }; -# command-runner = callPackage ./python-modules/command-runner { }; + # command-runner = callPackage ./python-modules/command-runner { }; -# connect-box = callPackage ./python-modules/connect-box { }; + # connect-box = callPackage ./python-modules/connect-box { }; -# connection-pool = callPackage ./python-modules/connection-pool { }; + # connection-pool = callPackage ./python-modules/connection-pool { }; -# connio = callPackage ./python-modules/connio { }; + # connio = callPackage ./python-modules/connio { }; -# conway-polynomials = callPackage ./python-modules/conway-polynomials {}; + # conway-polynomials = callPackage ./python-modules/conway-polynomials {}; -# correctionlib = callPackage ./python-modules/correctionlib { }; + # correctionlib = callPackage ./python-modules/correctionlib { }; -# coqpit = callPackage ./python-modules/coqpit { }; + # coqpit = callPackage ./python-modules/coqpit { }; -# cepa = callPackage ./python-modules/cepa { }; + # cepa = callPackage ./python-modules/cepa { }; -# cerberus = callPackage ./python-modules/cerberus { }; + # cerberus = callPackage ./python-modules/cerberus { }; -# cert-chain-resolver = callPackage ./python-modules/cert-chain-resolver { }; + # cert-chain-resolver = callPackage ./python-modules/cert-chain-resolver { }; -# certauth = callPackage ./python-modules/certauth { }; + # certauth = callPackage ./python-modules/certauth { }; -# certbot = callPackage ./python-modules/certbot { }; + # certbot = callPackage ./python-modules/certbot { }; -# certbot-dns-cloudflare = callPackage ./python-modules/certbot-dns-cloudflare { }; + # certbot-dns-cloudflare = callPackage ./python-modules/certbot-dns-cloudflare { }; -# certbot-dns-google = callPackage ./python-modules/certbot-dns-google { }; + # certbot-dns-google = callPackage ./python-modules/certbot-dns-google { }; -# certbot-dns-inwx = callPackage ./python-modules/certbot-dns-inwx { }; + # certbot-dns-inwx = callPackage ./python-modules/certbot-dns-inwx { }; -# certbot-dns-ovh = callPackage ./python-modules/certbot-dns-ovh { }; + # certbot-dns-ovh = callPackage ./python-modules/certbot-dns-ovh { }; -# certbot-dns-rfc2136 = callPackage ./python-modules/certbot-dns-rfc2136 { }; + # certbot-dns-rfc2136 = callPackage ./python-modules/certbot-dns-rfc2136 { }; -# certbot-dns-route53 = callPackage ./python-modules/certbot-dns-route53 { }; + # certbot-dns-route53 = callPackage ./python-modules/certbot-dns-route53 { }; certifi = callPackage ./python-modules/certifi { }; -# certipy = callPackage ./python-modules/certipy { }; + # certipy = callPackage ./python-modules/certipy { }; -# certipy-ad = callPackage ./python-modules/certipy-ad { }; + # certipy-ad = callPackage ./python-modules/certipy-ad { }; -# certomancer = callPackage ./python-modules/certomancer { }; + # certomancer = callPackage ./python-modules/certomancer { }; -# certvalidator = callPackage ./python-modules/certvalidator { }; + # certvalidator = callPackage ./python-modules/certvalidator { }; -# cf-xarray = callPackage ./python-modules/cf-xarray { }; + # cf-xarray = callPackage ./python-modules/cf-xarray { }; -# cffconvert = callPackage ./python-modules/cffconvert { }; + # cffconvert = callPackage ./python-modules/cffconvert { }; cffi = callPackage ./python-modules/cffi { }; -# cffsubr = callPackage ./python-modules/cffsubr { }; + # cffsubr = callPackage ./python-modules/cffsubr { }; -# cfgv = callPackage ./python-modules/cfgv { }; + # cfgv = callPackage ./python-modules/cfgv { }; -# cfn-flip = callPackage ./python-modules/cfn-flip { }; + # cfn-flip = callPackage ./python-modules/cfn-flip { }; -# cfn-lint = callPackage ./python-modules/cfn-lint { }; + # cfn-lint = callPackage ./python-modules/cfn-lint { }; -# cfscrape = callPackage ./python-modules/cfscrape { }; + # cfscrape = callPackage ./python-modules/cfscrape { }; -# cftime = callPackage ./python-modules/cftime { }; + # cftime = callPackage ./python-modules/cftime { }; -# cgen = callPackage ./python-modules/cgen { }; + # cgen = callPackage ./python-modules/cgen { }; -# cgroup-utils = callPackage ./python-modules/cgroup-utils { }; + # cgroup-utils = callPackage ./python-modules/cgroup-utils { }; -# chacha20poly1305 = callPackage ./python-modules/chacha20poly1305 { }; + # chacha20poly1305 = callPackage ./python-modules/chacha20poly1305 { }; -# chacha20poly1305-reuseable = callPackage ./python-modules/chacha20poly1305-reuseable { }; + # chacha20poly1305-reuseable = callPackage ./python-modules/chacha20poly1305-reuseable { }; -# chai = callPackage ./python-modules/chai { }; + # chai = callPackage ./python-modules/chai { }; -# chainer = callPackage ./python-modules/chainer { -# inherit (pkgs.config) cudaSupport; -# }; + # chainer = callPackage ./python-modules/chainer { + # inherit (pkgs.config) cudaSupport; + # }; -# chainmap = callPackage ./python-modules/chainmap { }; + # chainmap = callPackage ./python-modules/chainmap { }; -# chainstream = callPackage ./python-modules/chainstream { }; + # chainstream = callPackage ./python-modules/chainstream { }; -# chalice = callPackage ./python-modules/chalice { }; + # chalice = callPackage ./python-modules/chalice { }; -# chameleon = callPackage ./python-modules/chameleon { }; + # chameleon = callPackage ./python-modules/chameleon { }; -# channels = callPackage ./python-modules/channels { }; + # channels = callPackage ./python-modules/channels { }; -# channels-redis = callPackage ./python-modules/channels-redis { }; + # channels-redis = callPackage ./python-modules/channels-redis { }; -# characteristic = callPackage ./python-modules/characteristic { }; + # characteristic = callPackage ./python-modules/characteristic { }; -# character-encoding-utils = callPackage ./python-modules/character-encoding-utils { }; + # character-encoding-utils = callPackage ./python-modules/character-encoding-utils { }; chardet = callPackage ./python-modules/chardet { }; charset-normalizer = callPackage ./python-modules/charset-normalizer { }; -# chart-studio = callPackage ./python-modules/chart-studio { }; + # chart-studio = callPackage ./python-modules/chart-studio { }; -# chat-downloader = callPackage ./python-modules/chat-downloader { }; + # chat-downloader = callPackage ./python-modules/chat-downloader { }; -# check-manifest = callPackage ./python-modules/check-manifest { }; + # check-manifest = callPackage ./python-modules/check-manifest { }; -# checkdmarc = callPackage ./python-modules/checkdmarc { }; + # checkdmarc = callPackage ./python-modules/checkdmarc { }; -# checksumdir = callPackage ./python-modules/checksumdir { }; + # checksumdir = callPackage ./python-modules/checksumdir { }; -# cheetah3 = callPackage ./python-modules/cheetah3 { }; + # cheetah3 = callPackage ./python-modules/cheetah3 { }; -# cheroot = callPackage ./python-modules/cheroot { }; + # cheroot = callPackage ./python-modules/cheroot { }; -# cherrypy = callPackage ./python-modules/cherrypy { }; + # cherrypy = callPackage ./python-modules/cherrypy { }; -# cherrypy-cors = callPackage ./python-modules/cherrypy-cors { }; + # cherrypy-cors = callPackage ./python-modules/cherrypy-cors { }; -# chess = callPackage ./python-modules/chess { }; + # chess = callPackage ./python-modules/chess { }; -# chevron = callPackage ./python-modules/chevron { }; + # chevron = callPackage ./python-modules/chevron { }; -# chex = callPackage ./python-modules/chex { }; + # chex = callPackage ./python-modules/chex { }; -# chiabip158 = throw "chiabip158 has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # chiabip158 = throw "chiabip158 has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# chiapos = throw "chiapos has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # chiapos = throw "chiapos has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# chiavdf = throw "chiavdf has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # chiavdf = throw "chiavdf has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# chia-rs = throw "chia-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # chia-rs = throw "chia-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# chirpstack-api = callPackage ./python-modules/chirpstack-api { }; + # chirpstack-api = callPackage ./python-modules/chirpstack-api { }; -# chispa = callPackage ./python-modules/chispa { }; + # chispa = callPackage ./python-modules/chispa { }; -# chroma-hnswlib = callPackage ./python-modules/chroma-hnswlib { }; + # chroma-hnswlib = callPackage ./python-modules/chroma-hnswlib { }; -# chromadb = callPackage ./python-modules/chromadb { }; + # chromadb = callPackage ./python-modules/chromadb { }; -# chromaprint = callPackage ./python-modules/chromaprint { }; + # chromaprint = callPackage ./python-modules/chromaprint { }; -# ci-info = callPackage ./python-modules/ci-info { }; + # ci-info = callPackage ./python-modules/ci-info { }; -# ci-py = callPackage ./python-modules/ci-py { }; + # ci-py = callPackage ./python-modules/ci-py { }; -# cinemagoer = callPackage ./python-modules/cinemagoer { }; + # cinemagoer = callPackage ./python-modules/cinemagoer { }; -# circuit-webhook = callPackage ./python-modules/circuit-webhook { }; + # circuit-webhook = callPackage ./python-modules/circuit-webhook { }; -# circuitbreaker = callPackage ./python-modules/circuitbreaker { }; + # circuitbreaker = callPackage ./python-modules/circuitbreaker { }; -# circus = callPackage ./python-modules/circus { }; + # circus = callPackage ./python-modules/circus { }; -# cirq = callPackage ./python-modules/cirq { }; + # cirq = callPackage ./python-modules/cirq { }; -# cirq-aqt = callPackage ./python-modules/cirq-aqt { }; + # cirq-aqt = callPackage ./python-modules/cirq-aqt { }; -# cirq-core = callPackage ./python-modules/cirq-core { }; + # cirq-core = callPackage ./python-modules/cirq-core { }; -# cirq-ft = callPackage ./python-modules/cirq-ft { }; + # cirq-ft = callPackage ./python-modules/cirq-ft { }; -# cirq-ionq = callPackage ./python-modules/cirq-ionq { }; + # cirq-ionq = callPackage ./python-modules/cirq-ionq { }; -# cirq-google = callPackage ./python-modules/cirq-google { }; + # cirq-google = callPackage ./python-modules/cirq-google { }; -# cirq-rigetti = callPackage ./python-modules/cirq-rigetti { }; + # cirq-rigetti = callPackage ./python-modules/cirq-rigetti { }; -# cirq-pasqal = callPackage ./python-modules/cirq-pasqal { }; + # cirq-pasqal = callPackage ./python-modules/cirq-pasqal { }; -# cirq-web = callPackage ./python-modules/cirq-web { }; + # cirq-web = callPackage ./python-modules/cirq-web { }; -# ciscoconfparse = callPackage ./python-modules/ciscoconfparse { }; + # ciscoconfparse = callPackage ./python-modules/ciscoconfparse { }; -# ciscomobilityexpress = callPackage ./python-modules/ciscomobilityexpress { }; + # ciscomobilityexpress = callPackage ./python-modules/ciscomobilityexpress { }; -# ciso8601 = callPackage ./python-modules/ciso8601 { }; + # ciso8601 = callPackage ./python-modules/ciso8601 { }; -# citeproc-py = callPackage ./python-modules/citeproc-py { }; + # citeproc-py = callPackage ./python-modules/citeproc-py { }; -# cjkwrap = callPackage ./python-modules/cjkwrap { }; + # cjkwrap = callPackage ./python-modules/cjkwrap { }; -# ckcc-protocol = callPackage ./python-modules/ckcc-protocol { }; + # ckcc-protocol = callPackage ./python-modules/ckcc-protocol { }; -# clarabel = callPackage ./python-modules/clarabel { }; + # clarabel = callPackage ./python-modules/clarabel { }; -# clarifai = callPackage ./python-modules/clarifai { }; + # clarifai = callPackage ./python-modules/clarifai { }; -# clarifai-grpc = callPackage ./python-modules/clarifai-grpc { }; + # clarifai-grpc = callPackage ./python-modules/clarifai-grpc { }; -# claripy = callPackage ./python-modules/claripy { }; + # claripy = callPackage ./python-modules/claripy { }; -# classify-imports = callPackage ./python-modules/classify-imports { }; + # classify-imports = callPackage ./python-modules/classify-imports { }; -# cld2-cffi = callPackage ./python-modules/cld2-cffi { }; + # cld2-cffi = callPackage ./python-modules/cld2-cffi { }; -# cle = callPackage ./python-modules/cle { }; + # cle = callPackage ./python-modules/cle { }; -# clean-fid = callPackage ./python-modules/clean-fid { }; + # clean-fid = callPackage ./python-modules/clean-fid { }; -# cleanlab = callPackage ./python-modules/cleanlab { }; + # cleanlab = callPackage ./python-modules/cleanlab { }; -# cleo = callPackage ./python-modules/cleo { }; + # cleo = callPackage ./python-modules/cleo { }; -# clevercsv = callPackage ./python-modules/clevercsv { }; + # clevercsv = callPackage ./python-modules/clevercsv { }; -# clf = callPackage ./python-modules/clf { }; + # clf = callPackage ./python-modules/clf { }; -# clip = callPackage ./python-modules/clip { }; + # clip = callPackage ./python-modules/clip { }; -# clip-anytorch = callPackage ./python-modules/clip-anytorch { }; + # clip-anytorch = callPackage ./python-modules/clip-anytorch { }; -# clr-loader = callPackage ./python-modules/clr-loader { }; + # clr-loader = callPackage ./python-modules/clr-loader { }; -# cock = callPackage ./python-modules/cock { }; + # cock = callPackage ./python-modules/cock { }; -# cobs = callPackage ./python-modules/cobs { }; + # cobs = callPackage ./python-modules/cobs { }; -# class-doc = callPackage ./python-modules/class-doc { }; + # class-doc = callPackage ./python-modules/class-doc { }; -# cliche = callPackage ./python-modules/cliche { }; + # cliche = callPackage ./python-modules/cliche { }; -# click = callPackage ./python-modules/click { }; + # click = callPackage ./python-modules/click { }; -# clickclick = callPackage ./python-modules/clickclick { }; + # clickclick = callPackage ./python-modules/clickclick { }; -# click-aliases = callPackage ./python-modules/click-aliases { }; + # click-aliases = callPackage ./python-modules/click-aliases { }; -# click-command-tree = callPackage ./python-modules/click-command-tree { }; + # click-command-tree = callPackage ./python-modules/click-command-tree { }; -# click-completion = callPackage ./python-modules/click-completion { }; + # click-completion = callPackage ./python-modules/click-completion { }; -# click-configfile = callPackage ./python-modules/click-configfile { }; + # click-configfile = callPackage ./python-modules/click-configfile { }; -# click-datetime = callPackage ./python-modules/click-datetime { }; + # click-datetime = callPackage ./python-modules/click-datetime { }; -# click-default-group = callPackage ./python-modules/click-default-group { }; + # click-default-group = callPackage ./python-modules/click-default-group { }; -# click-didyoumean = callPackage ./python-modules/click-didyoumean { }; + # click-didyoumean = callPackage ./python-modules/click-didyoumean { }; -# click-help-colors = callPackage ./python-modules/click-help-colors { }; + # click-help-colors = callPackage ./python-modules/click-help-colors { }; -# click-log = callPackage ./python-modules/click-log { }; + # click-log = callPackage ./python-modules/click-log { }; -# click-odoo = callPackage ./python-modules/click-odoo { }; + # click-odoo = callPackage ./python-modules/click-odoo { }; -# click-odoo-contrib = callPackage ./python-modules/click-odoo-contrib { }; + # click-odoo-contrib = callPackage ./python-modules/click-odoo-contrib { }; -# click-option-group = callPackage ./python-modules/click-option-group { }; + # click-option-group = callPackage ./python-modules/click-option-group { }; -# click-plugins = callPackage ./python-modules/click-plugins { }; + # click-plugins = callPackage ./python-modules/click-plugins { }; -# click-shell = callPackage ./python-modules/click-shell { }; + # click-shell = callPackage ./python-modules/click-shell { }; -# click-spinner = callPackage ./python-modules/click-spinner { }; + # click-spinner = callPackage ./python-modules/click-spinner { }; -# click-repl = callPackage ./python-modules/click-repl { }; + # click-repl = callPackage ./python-modules/click-repl { }; -# click-threading = callPackage ./python-modules/click-threading { }; + # click-threading = callPackage ./python-modules/click-threading { }; -# clickgen = callPackage ./python-modules/clickgen { }; + # clickgen = callPackage ./python-modules/clickgen { }; -# clickhouse-cityhash = callPackage ./python-modules/clickhouse-cityhash { }; + # clickhouse-cityhash = callPackage ./python-modules/clickhouse-cityhash { }; -# clickhouse-cli = callPackage ./python-modules/clickhouse-cli { }; + # clickhouse-cli = callPackage ./python-modules/clickhouse-cli { }; -# clickhouse-connect = callPackage ./python-modules/clickhouse-connect { }; + # clickhouse-connect = callPackage ./python-modules/clickhouse-connect { }; -# clickhouse-driver = callPackage ./python-modules/clickhouse-driver { }; + # clickhouse-driver = callPackage ./python-modules/clickhouse-driver { }; -# cliff = callPackage ./python-modules/cliff { }; + # cliff = callPackage ./python-modules/cliff { }; -# clifford = callPackage ./python-modules/clifford { }; + # clifford = callPackage ./python-modules/clifford { }; -# cligj = callPackage ./python-modules/cligj { }; + # cligj = callPackage ./python-modules/cligj { }; -# cli-helpers = callPackage ./python-modules/cli-helpers { }; + # cli-helpers = callPackage ./python-modules/cli-helpers { }; -# clikit = callPackage ./python-modules/clikit { }; + # clikit = callPackage ./python-modules/clikit { }; -# clint = callPackage ./python-modules/clint { }; + # clint = callPackage ./python-modules/clint { }; -# clintermission = callPackage ./python-modules/clintermission { }; + # clintermission = callPackage ./python-modules/clintermission { }; -# clize = callPackage ./python-modules/clize { }; + # clize = callPackage ./python-modules/clize { }; -# clldutils = callPackage ./python-modules/clldutils { }; + # clldutils = callPackage ./python-modules/clldutils { }; -# cloudevents = callPackage ./python-modules/cloudevents { }; + # cloudevents = callPackage ./python-modules/cloudevents { }; -# cloudflare = callPackage ./python-modules/cloudflare { }; + # cloudflare = callPackage ./python-modules/cloudflare { }; -# cloudpathlib = callPackage ./python-modules/cloudpathlib { }; + # cloudpathlib = callPackage ./python-modules/cloudpathlib { }; -# cloudpickle = callPackage ./python-modules/cloudpickle { }; + # cloudpickle = callPackage ./python-modules/cloudpickle { }; -# cloudscraper = callPackage ./python-modules/cloudscraper { }; + # cloudscraper = callPackage ./python-modules/cloudscraper { }; -# cloudsmith-api = callPackage ./python-modules/cloudsmith-api { }; + # cloudsmith-api = callPackage ./python-modules/cloudsmith-api { }; -# cloudsplaining = callPackage ./python-modules/cloudsplaining { }; + # cloudsplaining = callPackage ./python-modules/cloudsplaining { }; -# cloup = callPackage ./python-modules/cloup { }; + # cloup = callPackage ./python-modules/cloup { }; -# clustershell = callPackage ./python-modules/clustershell { }; + # clustershell = callPackage ./python-modules/clustershell { }; -# clvm = throw "clvm has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # clvm = throw "clvm has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# clvm-rs = throw "clvm-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # clvm-rs = throw "clvm-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# clvm-tools = throw "clvm-tools has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # clvm-tools = throw "clvm-tools has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# clvm-tools-rs = throw "clvm-tools-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; + # clvm-tools-rs = throw "clvm-tools-rs has been removed. see https://github.com/NixOS/nixpkgs/pull/270254"; -# cma = callPackage ./python-modules/cma { }; + # cma = callPackage ./python-modules/cma { }; -# cmaes = callPackage ./python-modules/cmaes { }; + # cmaes = callPackage ./python-modules/cmaes { }; -# cmake = callPackage ./python-modules/cmake { inherit (pkgs) cmake; }; + # cmake = callPackage ./python-modules/cmake { inherit (pkgs) cmake; }; -# cmarkgfm = callPackage ./python-modules/cmarkgfm { }; + # cmarkgfm = callPackage ./python-modules/cmarkgfm { }; -# cmd2 = callPackage ./python-modules/cmd2 { }; + # cmd2 = callPackage ./python-modules/cmd2 { }; -# cmd2-ext-test = callPackage ./python-modules/cmd2-ext-test { }; + # cmd2-ext-test = callPackage ./python-modules/cmd2-ext-test { }; -# cmdline = callPackage ./python-modules/cmdline { }; + # cmdline = callPackage ./python-modules/cmdline { }; -# cmdstanpy = callPackage ./python-modules/cmdstanpy { }; + # cmdstanpy = callPackage ./python-modules/cmdstanpy { }; -# cmigemo = callPackage ./python-modules/cmigemo { -# inherit (pkgs) cmigemo; -# }; + # cmigemo = callPackage ./python-modules/cmigemo { + # inherit (pkgs) cmigemo; + # }; -# cmsis-pack-manager = callPackage ./python-modules/cmsis-pack-manager { }; + # cmsis-pack-manager = callPackage ./python-modules/cmsis-pack-manager { }; -# cmsis-svd = callPackage ./python-modules/cmsis-svd { }; + # cmsis-svd = callPackage ./python-modules/cmsis-svd { }; -# cnvkit = callPackage ./python-modules/cnvkit { }; + # cnvkit = callPackage ./python-modules/cnvkit { }; -# co2signal = callPackage ./python-modules/co2signal { }; + # co2signal = callPackage ./python-modules/co2signal { }; -# coapthon3 = callPackage ./python-modules/coapthon3 { }; + # coapthon3 = callPackage ./python-modules/coapthon3 { }; -# coconut = callPackage ./python-modules/coconut { }; + # coconut = callPackage ./python-modules/coconut { }; -# cocotb = callPackage ./python-modules/cocotb { }; + # cocotb = callPackage ./python-modules/cocotb { }; -# cocotb-bus = callPackage ./python-modules/cocotb-bus { }; + # cocotb-bus = callPackage ./python-modules/cocotb-bus { }; -# codecov = callPackage ./python-modules/codecov { }; + # codecov = callPackage ./python-modules/codecov { }; -# codepy = callPackage ./python-modules/codepy { }; + # codepy = callPackage ./python-modules/codepy { }; -# cogapp = callPackage ./python-modules/cogapp { }; + # cogapp = callPackage ./python-modules/cogapp { }; -# coinmetrics-api-client = callPackage ./python-modules/coinmetrics-api-client { }; + # coinmetrics-api-client = callPackage ./python-modules/coinmetrics-api-client { }; -# colanderalchemy = callPackage ./python-modules/colanderalchemy { }; + # colanderalchemy = callPackage ./python-modules/colanderalchemy { }; -# colander = callPackage ./python-modules/colander { }; + # colander = callPackage ./python-modules/colander { }; -# collections-extended = callPackage ./python-modules/collections-extended { }; + # collections-extended = callPackage ./python-modules/collections-extended { }; -# collidoscope = callPackage ./python-modules/collidoscope { }; + # collidoscope = callPackage ./python-modules/collidoscope { }; -# colorama = callPackage ./python-modules/colorama { }; + # colorama = callPackage ./python-modules/colorama { }; -# colorcet = callPackage ./python-modules/colorcet { }; + # colorcet = callPackage ./python-modules/colorcet { }; -# colorclass = callPackage ./python-modules/colorclass { }; + # colorclass = callPackage ./python-modules/colorclass { }; -# colored = callPackage ./python-modules/colored { }; + # colored = callPackage ./python-modules/colored { }; -# colored-traceback = callPackage ./python-modules/colored-traceback { }; + # colored-traceback = callPackage ./python-modules/colored-traceback { }; -# coloredlogs = callPackage ./python-modules/coloredlogs { }; + # coloredlogs = callPackage ./python-modules/coloredlogs { }; -# colorful = callPackage ./python-modules/colorful { }; + # colorful = callPackage ./python-modules/colorful { }; -# colorlog = callPackage ./python-modules/colorlog { }; + # colorlog = callPackage ./python-modules/colorlog { }; -# colorlover = callPackage ./python-modules/colorlover { }; + # colorlover = callPackage ./python-modules/colorlover { }; -# colormath = callPackage ./python-modules/colormath { }; + # colormath = callPackage ./python-modules/colormath { }; -# colorspacious = callPackage ./python-modules/colorspacious { }; + # colorspacious = callPackage ./python-modules/colorspacious { }; -# colorthief = callPackage ./python-modules/colorthief { }; + # colorthief = callPackage ./python-modules/colorthief { }; -# colorzero = callPackage ./python-modules/colorzero { }; + # colorzero = callPackage ./python-modules/colorzero { }; -# colour = callPackage ./python-modules/colour { }; + # colour = callPackage ./python-modules/colour { }; -# colout = callPackage ./python-modules/colout { }; + # colout = callPackage ./python-modules/colout { }; -# cometblue-lite = callPackage ./python-modules/cometblue-lite { }; + # cometblue-lite = callPackage ./python-modules/cometblue-lite { }; -# comm = callPackage ./python-modules/comm { }; + # comm = callPackage ./python-modules/comm { }; -# commandlines = callPackage ./python-modules/commandlines { }; + # commandlines = callPackage ./python-modules/commandlines { }; -# commandparse = callPackage ./python-modules/commandparse { }; + # commandparse = callPackage ./python-modules/commandparse { }; -# commentjson = callPackage ./python-modules/commentjson { }; + # commentjson = callPackage ./python-modules/commentjson { }; -# commoncode = callPackage ./python-modules/commoncode { }; + # commoncode = callPackage ./python-modules/commoncode { }; -# commonmark = callPackage ./python-modules/commonmark { }; + # commonmark = callPackage ./python-modules/commonmark { }; -# compiledb = callPackage ./python-modules/compiledb { }; + # compiledb = callPackage ./python-modules/compiledb { }; -# complycube = callPackage ./python-modules/complycube { }; + # complycube = callPackage ./python-modules/complycube { }; -# compreffor = callPackage ./python-modules/compreffor { }; + # compreffor = callPackage ./python-modules/compreffor { }; -# compressai = callPackage ./python-modules/compressai { }; + # compressai = callPackage ./python-modules/compressai { }; -# compressed-rtf = callPackage ./python-modules/compressed-rtf { }; + # compressed-rtf = callPackage ./python-modules/compressed-rtf { }; -# concurrent-log-handler = callPackage ./python-modules/concurrent-log-handler { }; + # concurrent-log-handler = callPackage ./python-modules/concurrent-log-handler { }; -# conda = callPackage ./python-modules/conda { }; + # conda = callPackage ./python-modules/conda { }; -# conda-libmamba-solver = callPackage ./python-modules/conda-libmamba-solver { }; + # conda-libmamba-solver = callPackage ./python-modules/conda-libmamba-solver { }; -# conda-package-handling = callPackage ./python-modules/conda-package-handling { }; + # conda-package-handling = callPackage ./python-modules/conda-package-handling { }; -# conda-package-streaming = callPackage ./python-modules/conda-package-streaming { }; + # conda-package-streaming = callPackage ./python-modules/conda-package-streaming { }; -# confection = callPackage ./python-modules/confection { }; + # confection = callPackage ./python-modules/confection { }; -# configargparse = callPackage ./python-modules/configargparse { }; + # configargparse = callPackage ./python-modules/configargparse { }; -# configclass = callPackage ./python-modules/configclass { }; + # configclass = callPackage ./python-modules/configclass { }; -# configobj = callPackage ./python-modules/configobj { }; + # configobj = callPackage ./python-modules/configobj { }; -# configparser = callPackage ./python-modules/configparser { }; + # configparser = callPackage ./python-modules/configparser { }; -# configshell = callPackage ./python-modules/configshell { }; + # configshell = callPackage ./python-modules/configshell { }; -# configupdater = callPackage ./python-modules/configupdater { }; + # configupdater = callPackage ./python-modules/configupdater { }; -# confluent-kafka = callPackage ./python-modules/confluent-kafka { }; + # confluent-kafka = callPackage ./python-modules/confluent-kafka { }; -# confuse = callPackage ./python-modules/confuse { }; + # confuse = callPackage ./python-modules/confuse { }; -# confight = callPackage ./python-modules/confight { }; + # confight = callPackage ./python-modules/confight { }; -# connexion = callPackage ./python-modules/connexion { }; + # connexion = callPackage ./python-modules/connexion { }; -# cons = callPackage ./python-modules/cons { }; + # cons = callPackage ./python-modules/cons { }; -# consonance = callPackage ./python-modules/consonance { }; + # consonance = callPackage ./python-modules/consonance { }; -# constantly = callPackage ./python-modules/constantly { }; + # constantly = callPackage ./python-modules/constantly { }; -# construct = callPackage ./python-modules/construct { }; + # construct = callPackage ./python-modules/construct { }; -# construct-classes = callPackage ./python-modules/construct-classes { }; + # construct-classes = callPackage ./python-modules/construct-classes { }; -# consul = callPackage ./python-modules/consul { }; + # consul = callPackage ./python-modules/consul { }; -# container-inspector = callPackage ./python-modules/container-inspector { }; + # container-inspector = callPackage ./python-modules/container-inspector { }; -# contexter = callPackage ./python-modules/contexter { }; + # contexter = callPackage ./python-modules/contexter { }; -# contextlib2 = callPackage ./python-modules/contextlib2 { }; + # contextlib2 = callPackage ./python-modules/contextlib2 { }; -# contexttimer = callPackage ./python-modules/contexttimer { }; + # contexttimer = callPackage ./python-modules/contexttimer { }; -# contourpy = callPackage ./python-modules/contourpy { }; + # contourpy = callPackage ./python-modules/contourpy { }; -# controku = callPackage ./python-modules/controku { }; + # controku = callPackage ./python-modules/controku { }; -# convertdate = callPackage ./python-modules/convertdate { }; + # convertdate = callPackage ./python-modules/convertdate { }; -# cookiecutter = callPackage ./python-modules/cookiecutter { }; + # cookiecutter = callPackage ./python-modules/cookiecutter { }; -# cookies = callPackage ./python-modules/cookies { }; + # cookies = callPackage ./python-modules/cookies { }; -# coordinates = callPackage ./python-modules/coordinates { }; + # coordinates = callPackage ./python-modules/coordinates { }; -# coreapi = callPackage ./python-modules/coreapi { }; + # coreapi = callPackage ./python-modules/coreapi { }; -# coredis = callPackage ./python-modules/coredis { }; + # coredis = callPackage ./python-modules/coredis { }; -# coreschema = callPackage ./python-modules/coreschema { }; + # coreschema = callPackage ./python-modules/coreschema { }; -# cornice = callPackage ./python-modules/cornice { }; + # cornice = callPackage ./python-modules/cornice { }; -# corsair-scan = callPackage ./python-modules/corsair-scan { }; + # corsair-scan = callPackage ./python-modules/corsair-scan { }; -# cose = callPackage ./python-modules/cose { }; + # cose = callPackage ./python-modules/cose { }; -# cot = callPackage ./python-modules/cot { -# qemu = pkgs.qemu; -# }; + # cot = callPackage ./python-modules/cot { + # qemu = pkgs.qemu; + # }; -# courlan = callPackage ./python-modules/courlan { }; + # courlan = callPackage ./python-modules/courlan { }; -# cov-core = callPackage ./python-modules/cov-core { }; + # cov-core = callPackage ./python-modules/cov-core { }; -# coverage = callPackage ./python-modules/coverage { }; + # coverage = callPackage ./python-modules/coverage { }; -# coveralls = callPackage ./python-modules/coveralls { }; + # coveralls = callPackage ./python-modules/coveralls { }; -# cppe = callPackage ./python-modules/cppe { -# inherit (pkgs) cppe; -# }; + # cppe = callPackage ./python-modules/cppe { + # inherit (pkgs) cppe; + # }; -# cppheaderparser = callPackage ./python-modules/cppheaderparser { }; + # cppheaderparser = callPackage ./python-modules/cppheaderparser { }; -# cppy = callPackage ./python-modules/cppy { }; + # cppy = callPackage ./python-modules/cppy { }; -# cpufeature = callPackage ./python-modules/cpufeature { }; + # cpufeature = callPackage ./python-modules/cpufeature { }; -# cpyparsing = callPackage ./python-modules/cpyparsing { }; + # cpyparsing = callPackage ./python-modules/cpyparsing { }; -# craft-application-1 = callPackage ./python-modules/craft-application-1 { }; + # craft-application-1 = callPackage ./python-modules/craft-application-1 { }; -# craft-application = callPackage ./python-modules/craft-application { }; + # craft-application = callPackage ./python-modules/craft-application { }; -# craft-archives = callPackage ./python-modules/craft-archives { }; + # craft-archives = callPackage ./python-modules/craft-archives { }; -# craft-cli = callPackage ./python-modules/craft-cli { }; + # craft-cli = callPackage ./python-modules/craft-cli { }; -# craft-grammar = callPackage ./python-modules/craft-grammar { }; + # craft-grammar = callPackage ./python-modules/craft-grammar { }; -# craft-parts = callPackage ./python-modules/craft-parts { }; + # craft-parts = callPackage ./python-modules/craft-parts { }; -# craft-providers = callPackage ./python-modules/craft-providers { }; + # craft-providers = callPackage ./python-modules/craft-providers { }; -# craft-store = callPackage ./python-modules/craft-store { }; + # craft-store = callPackage ./python-modules/craft-store { }; -# cram = callPackage ./python-modules/cram { }; + # cram = callPackage ./python-modules/cram { }; -# cramjam = callPackage ./python-modules/cramjam { }; + # cramjam = callPackage ./python-modules/cramjam { }; -# crashtest = callPackage ./python-modules/crashtest { }; + # crashtest = callPackage ./python-modules/crashtest { }; -# crate = callPackage ./python-modules/crate { }; + # crate = callPackage ./python-modules/crate { }; -# crayons = callPackage ./python-modules/crayons { }; + # crayons = callPackage ./python-modules/crayons { }; -# crc = callPackage ./python-modules/crc { }; + # crc = callPackage ./python-modules/crc { }; -# crc16 = callPackage ./python-modules/crc16 { }; + # crc16 = callPackage ./python-modules/crc16 { }; -# crc32c = callPackage ./python-modules/crc32c { }; + # crc32c = callPackage ./python-modules/crc32c { }; -# crccheck = callPackage ./python-modules/crccheck { }; + # crccheck = callPackage ./python-modules/crccheck { }; -# crcmod = callPackage ./python-modules/crcmod { }; + # crcmod = callPackage ./python-modules/crcmod { }; -# credstash = callPackage ./python-modules/credstash { }; + # credstash = callPackage ./python-modules/credstash { }; -# criticality-score = callPackage ./python-modules/criticality-score { }; + # criticality-score = callPackage ./python-modules/criticality-score { }; -# crocoddyl = toPythonModule (callPackage ../development/libraries/crocoddyl { -# pythonSupport = true; -# python3Packages = self; -# }); + # crocoddyl = toPythonModule (callPackage ../development/libraries/crocoddyl { + # pythonSupport = true; + # python3Packages = self; + # }); -# cron-descriptor = callPackage ./python-modules/cron-descriptor { }; + # cron-descriptor = callPackage ./python-modules/cron-descriptor { }; -# croniter = callPackage ./python-modules/croniter { }; + # croniter = callPackage ./python-modules/croniter { }; -# cronsim = callPackage ./python-modules/cronsim { }; + # cronsim = callPackage ./python-modules/cronsim { }; -# crontab = callPackage ./python-modules/crontab { }; + # crontab = callPackage ./python-modules/crontab { }; -# crossplane = callPackage ./python-modules/crossplane { }; + # crossplane = callPackage ./python-modules/crossplane { }; -# crownstone-cloud = callPackage ./python-modules/crownstone-cloud { }; + # crownstone-cloud = callPackage ./python-modules/crownstone-cloud { }; -# crownstone-core = callPackage ./python-modules/crownstone-core { }; + # crownstone-core = callPackage ./python-modules/crownstone-core { }; -# crownstone-sse = callPackage ./python-modules/crownstone-sse { }; + # crownstone-sse = callPackage ./python-modules/crownstone-sse { }; -# crownstone-uart = callPackage ./python-modules/crownstone-uart { }; + # crownstone-uart = callPackage ./python-modules/crownstone-uart { }; -# cryptacular = callPackage ./python-modules/cryptacular { }; + # cryptacular = callPackage ./python-modules/cryptacular { }; -# cryptg = callPackage ./python-modules/cryptg { }; + # cryptg = callPackage ./python-modules/cryptg { }; -# cryptodatahub = callPackage ./python-modules/cryptodatahub { }; + # cryptodatahub = callPackage ./python-modules/cryptodatahub { }; -# cryptography = callPackage ./python-modules/cryptography { -# inherit (pkgs.darwin) libiconv; -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; + # cryptography = callPackage ./python-modules/cryptography { + # inherit (pkgs.darwin) libiconv; + # inherit (pkgs.darwin.apple_sdk.frameworks) Security; + # }; -# cryptolyzer = callPackage ./python-modules/cryptolyzer { }; + # cryptolyzer = callPackage ./python-modules/cryptolyzer { }; -# cryptoparser = callPackage ./python-modules/cryptoparser { }; + # cryptoparser = callPackage ./python-modules/cryptoparser { }; -# crysp = callPackage ./python-modules/crysp { }; + # crysp = callPackage ./python-modules/crysp { }; -# crytic-compile = callPackage ./python-modules/crytic-compile { }; + # crytic-compile = callPackage ./python-modules/crytic-compile { }; -# cson = callPackage ./python-modules/cson { }; + # cson = callPackage ./python-modules/cson { }; -# csrmesh = callPackage ./python-modules/csrmesh { }; + # csrmesh = callPackage ./python-modules/csrmesh { }; -# cssbeautifier = callPackage ./python-modules/cssbeautifier { }; + # cssbeautifier = callPackage ./python-modules/cssbeautifier { }; -# csscompressor = callPackage ./python-modules/csscompressor { }; + # csscompressor = callPackage ./python-modules/csscompressor { }; -# cssmin = callPackage ./python-modules/cssmin { }; + # cssmin = callPackage ./python-modules/cssmin { }; -# css-html-js-minify = callPackage ./python-modules/css-html-js-minify { }; + # css-html-js-minify = callPackage ./python-modules/css-html-js-minify { }; -# css-inline = callPackage ./python-modules/css-inline { -# inherit (pkgs.darwin) libiconv; -# inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; -# }; + # css-inline = callPackage ./python-modules/css-inline { + # inherit (pkgs.darwin) libiconv; + # inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; + # }; -# css-parser = callPackage ./python-modules/css-parser { }; + # css-parser = callPackage ./python-modules/css-parser { }; -# cssselect2 = callPackage ./python-modules/cssselect2 { }; + # cssselect2 = callPackage ./python-modules/cssselect2 { }; -# cssselect = callPackage ./python-modules/cssselect { }; + # cssselect = callPackage ./python-modules/cssselect { }; -# cssutils = callPackage ./python-modules/cssutils { }; + # cssutils = callPackage ./python-modules/cssutils { }; -# cstruct = callPackage ./python-modules/cstruct { }; + # cstruct = callPackage ./python-modules/cstruct { }; -# csvw = callPackage ./python-modules/csvw { }; + # csvw = callPackage ./python-modules/csvw { }; -# ctap-keyring-device = callPackage ./python-modules/ctap-keyring-device { }; + # ctap-keyring-device = callPackage ./python-modules/ctap-keyring-device { }; -# ctranslate2 = callPackage ./python-modules/ctranslate2 { -# ctranslate2-cpp = pkgs.ctranslate2; -# }; + # ctranslate2 = callPackage ./python-modules/ctranslate2 { + # ctranslate2-cpp = pkgs.ctranslate2; + # }; -# cu2qu = callPackage ./python-modules/cu2qu { }; + # cu2qu = callPackage ./python-modules/cu2qu { }; -# cucumber-tag-expressions = callPackage ./python-modules/cucumber-tag-expressions { }; + # cucumber-tag-expressions = callPackage ./python-modules/cucumber-tag-expressions { }; -# cufflinks = callPackage ./python-modules/cufflinks { }; + # cufflinks = callPackage ./python-modules/cufflinks { }; -# # cupy 12.2.0 possibly incompatible with cutensor 2.0 that comes with cudaPackages_12 -# cupy = callPackage ./python-modules/cupy { cudaPackages = pkgs.cudaPackages_11; }; + # # cupy 12.2.0 possibly incompatible with cutensor 2.0 that comes with cudaPackages_12 + # cupy = callPackage ./python-modules/cupy { cudaPackages = pkgs.cudaPackages_11; }; -# curio = callPackage ./python-modules/curio { }; + # curio = callPackage ./python-modules/curio { }; -# curlify = callPackage ./python-modules/curlify { }; + # curlify = callPackage ./python-modules/curlify { }; -# curtsies = callPackage ./python-modules/curtsies { }; + # curtsies = callPackage ./python-modules/curtsies { }; -# curve25519-donna = callPackage ./python-modules/curve25519-donna { }; + # curve25519-donna = callPackage ./python-modules/curve25519-donna { }; -# cvelib = callPackage ./python-modules/cvelib { }; + # cvelib = callPackage ./python-modules/cvelib { }; -# cvss = callPackage ./python-modules/cvss { }; + # cvss = callPackage ./python-modules/cvss { }; -# cvxopt = callPackage ./python-modules/cvxopt { }; + # cvxopt = callPackage ./python-modules/cvxopt { }; -# cvxpy = callPackage ./python-modules/cvxpy { }; + # cvxpy = callPackage ./python-modules/cvxpy { }; -# cwcwidth = callPackage ./python-modules/cwcwidth { }; + # cwcwidth = callPackage ./python-modules/cwcwidth { }; -# cwl-upgrader = callPackage ./python-modules/cwl-upgrader { }; + # cwl-upgrader = callPackage ./python-modules/cwl-upgrader { }; -# cwl-utils = callPackage ./python-modules/cwl-utils { }; + # cwl-utils = callPackage ./python-modules/cwl-utils { }; -# cwlformat = callPackage ./python-modules/cwlformat { }; + # cwlformat = callPackage ./python-modules/cwlformat { }; -# cx-freeze = callPackage ./python-modules/cx-freeze { }; + # cx-freeze = callPackage ./python-modules/cx-freeze { }; -# cx-oracle = callPackage ./python-modules/cx-oracle { }; + # cx-oracle = callPackage ./python-modules/cx-oracle { }; -# cxxfilt = callPackage ./python-modules/cxxfilt { }; + # cxxfilt = callPackage ./python-modules/cxxfilt { }; -# cycler = callPackage ./python-modules/cycler { }; + # cycler = callPackage ./python-modules/cycler { }; -# cyclonedx-python-lib = callPackage ./python-modules/cyclonedx-python-lib { }; + # cyclonedx-python-lib = callPackage ./python-modules/cyclonedx-python-lib { }; -# cymem = callPackage ./python-modules/cymem { }; + # cymem = callPackage ./python-modules/cymem { }; -# cypari2 = callPackage ./python-modules/cypari2 { }; + # cypari2 = callPackage ./python-modules/cypari2 { }; -# cypherpunkpay = callPackage ./python-modules/cypherpunkpay { }; + # cypherpunkpay = callPackage ./python-modules/cypherpunkpay { }; -# cysignals = callPackage ./python-modules/cysignals { }; + # cysignals = callPackage ./python-modules/cysignals { }; cython = callPackage ./python-modules/cython { }; -# cython_0 = callPackage ./python-modules/cython/0.nix { }; + # cython_0 = callPackage ./python-modules/cython/0.nix { }; -# cython-test-exception-raiser = callPackage ./python-modules/cython-test-exception-raiser { }; + # cython-test-exception-raiser = callPackage ./python-modules/cython-test-exception-raiser { }; -# cytoolz = callPackage ./python-modules/cytoolz { }; + # cytoolz = callPackage ./python-modules/cytoolz { }; -# dacite = callPackage ./python-modules/dacite { }; + # dacite = callPackage ./python-modules/dacite { }; -# daemonize = callPackage ./python-modules/daemonize { }; + # daemonize = callPackage ./python-modules/daemonize { }; -# daemonocle = callPackage ./python-modules/daemonocle { }; + # daemonocle = callPackage ./python-modules/daemonocle { }; -# daff = callPackage ./python-modules/daff { }; + # daff = callPackage ./python-modules/daff { }; -# daiquiri = callPackage ./python-modules/daiquiri { }; + # daiquiri = callPackage ./python-modules/daiquiri { }; -# dalle-mini = callPackage ./python-modules/dalle-mini { }; + # dalle-mini = callPackage ./python-modules/dalle-mini { }; -# daphne = callPackage ./python-modules/daphne { }; + # daphne = callPackage ./python-modules/daphne { }; -# daqp = callPackage ./python-modules/daqp { }; + # daqp = callPackage ./python-modules/daqp { }; -# darkdetect = callPackage ./python-modules/darkdetect { }; + # darkdetect = callPackage ./python-modules/darkdetect { }; -# dasbus = callPackage ./python-modules/dasbus { }; + # dasbus = callPackage ./python-modules/dasbus { }; -# dash = callPackage ./python-modules/dash { }; + # dash = callPackage ./python-modules/dash { }; -# dash-core-components = callPackage ./python-modules/dash-core-components { }; + # dash-core-components = callPackage ./python-modules/dash-core-components { }; -# dash-html-components = callPackage ./python-modules/dash-html-components { }; + # dash-html-components = callPackage ./python-modules/dash-html-components { }; -# dash-renderer = callPackage ./python-modules/dash-renderer { }; + # dash-renderer = callPackage ./python-modules/dash-renderer { }; -# dash-table = callPackage ./python-modules/dash-table { }; + # dash-table = callPackage ./python-modules/dash-table { }; -# dashing = callPackage ./python-modules/dashing { }; + # dashing = callPackage ./python-modules/dashing { }; -# dask = callPackage ./python-modules/dask { }; + # dask = callPackage ./python-modules/dask { }; -# dask-awkward = callPackage ./python-modules/dask-awkward { }; + # dask-awkward = callPackage ./python-modules/dask-awkward { }; -# dask-expr = callPackage ./python-modules/dask-expr { }; + # dask-expr = callPackage ./python-modules/dask-expr { }; -# dask-gateway = callPackage ./python-modules/dask-gateway { }; + # dask-gateway = callPackage ./python-modules/dask-gateway { }; -# dask-gateway-server = callPackage ./python-modules/dask-gateway-server { }; + # dask-gateway-server = callPackage ./python-modules/dask-gateway-server { }; -# dask-glm = callPackage ./python-modules/dask-glm { }; + # dask-glm = callPackage ./python-modules/dask-glm { }; -# dask-histogram = callPackage ./python-modules/dask-histogram { }; + # dask-histogram = callPackage ./python-modules/dask-histogram { }; -# dask-image = callPackage ./python-modules/dask-image { }; + # dask-image = callPackage ./python-modules/dask-image { }; -# dask-jobqueue = callPackage ./python-modules/dask-jobqueue { }; + # dask-jobqueue = callPackage ./python-modules/dask-jobqueue { }; -# dask-ml = callPackage ./python-modules/dask-ml { }; + # dask-ml = callPackage ./python-modules/dask-ml { }; -# dask-mpi = callPackage ./python-modules/dask-mpi { }; + # dask-mpi = callPackage ./python-modules/dask-mpi { }; -# dask-yarn = callPackage ./python-modules/dask-yarn { }; + # dask-yarn = callPackage ./python-modules/dask-yarn { }; -# databases = callPackage ./python-modules/databases { }; + # databases = callPackage ./python-modules/databases { }; -# databricks-cli = callPackage ./python-modules/databricks-cli { }; + # databricks-cli = callPackage ./python-modules/databricks-cli { }; -# databricks-connect = callPackage ./python-modules/databricks-connect { }; + # databricks-connect = callPackage ./python-modules/databricks-connect { }; -# databricks-sql-connector = callPackage ./python-modules/databricks-sql-connector { }; + # databricks-sql-connector = callPackage ./python-modules/databricks-sql-connector { }; -# dataclass-factory = callPackage ./python-modules/dataclass-factory { }; + # dataclass-factory = callPackage ./python-modules/dataclass-factory { }; -# dataclass-wizard = callPackage ./python-modules/dataclass-wizard { }; + # dataclass-wizard = callPackage ./python-modules/dataclass-wizard { }; -# dataclasses-json = callPackage ./python-modules/dataclasses-json { }; + # dataclasses-json = callPackage ./python-modules/dataclasses-json { }; -# dataclasses-serialization = callPackage ./python-modules/dataclasses-serialization { }; + # dataclasses-serialization = callPackage ./python-modules/dataclasses-serialization { }; -# datadiff = callPackage ./python-modules/datadiff { }; + # datadiff = callPackage ./python-modules/datadiff { }; -# datadog = callPackage ./python-modules/datadog { }; + # datadog = callPackage ./python-modules/datadog { }; -# datafusion = callPackage ./python-modules/datafusion { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; -# }; + # datafusion = callPackage ./python-modules/datafusion { + # inherit (pkgs.darwin.apple_sdk.frameworks) Security SystemConfiguration; + # }; -# datamodeldict = callPackage ./python-modules/datamodeldict { }; + # datamodeldict = callPackage ./python-modules/datamodeldict { }; -# datapoint = callPackage ./python-modules/datapoint { }; + # datapoint = callPackage ./python-modules/datapoint { }; -# dataprep-ml = callPackage ./python-modules/dataprep-ml { }; + # dataprep-ml = callPackage ./python-modules/dataprep-ml { }; -# dataproperty = callPackage ./python-modules/dataproperty { }; + # dataproperty = callPackage ./python-modules/dataproperty { }; -# dataset = callPackage ./python-modules/dataset { }; + # dataset = callPackage ./python-modules/dataset { }; -# datasets = callPackage ./python-modules/datasets { }; + # datasets = callPackage ./python-modules/datasets { }; -# datasette = callPackage ./python-modules/datasette { }; + # datasette = callPackage ./python-modules/datasette { }; -# datasette-publish-fly = callPackage ./python-modules/datasette-publish-fly { }; + # datasette-publish-fly = callPackage ./python-modules/datasette-publish-fly { }; -# datasette-template-sql = callPackage ./python-modules/datasette-template-sql { }; + # datasette-template-sql = callPackage ./python-modules/datasette-template-sql { }; -# datashader = callPackage ./python-modules/datashader { }; + # datashader = callPackage ./python-modules/datashader { }; -# datashape = callPackage ./python-modules/datashape { }; + # datashape = callPackage ./python-modules/datashape { }; -# datatable = callPackage ./python-modules/datatable { }; + # datatable = callPackage ./python-modules/datatable { }; -# datauri = callPackage ./python-modules/datauri { }; + # datauri = callPackage ./python-modules/datauri { }; -# datefinder = callPackage ./python-modules/datefinder { }; + # datefinder = callPackage ./python-modules/datefinder { }; -# dateparser = callPackage ./python-modules/dateparser { }; + # dateparser = callPackage ./python-modules/dateparser { }; -# datetime = callPackage ./python-modules/datetime { }; + # datetime = callPackage ./python-modules/datetime { }; -# dateutils = callPackage ./python-modules/dateutils { }; + # dateutils = callPackage ./python-modules/dateutils { }; -# datrie = callPackage ./python-modules/datrie { }; + # datrie = callPackage ./python-modules/datrie { }; -# dawg-python = callPackage ./python-modules/dawg-python { }; + # dawg-python = callPackage ./python-modules/dawg-python { }; -# dazl = callPackage ./python-modules/dazl { }; + # dazl = callPackage ./python-modules/dazl { }; -# dbf = callPackage ./python-modules/dbf { }; + # dbf = callPackage ./python-modules/dbf { }; -# dbfread = callPackage ./python-modules/dbfread { }; + # dbfread = callPackage ./python-modules/dbfread { }; -# dbglib = callPackage ./python-modules/dbglib { }; + # dbglib = callPackage ./python-modules/dbglib { }; -# dbt-bigquery = callPackage ./python-modules/dbt-bigquery { }; + # dbt-bigquery = callPackage ./python-modules/dbt-bigquery { }; -# dbt-core = callPackage ./python-modules/dbt-core { }; + # dbt-core = callPackage ./python-modules/dbt-core { }; -# dbt-extractor = callPackage ./python-modules/dbt-extractor { }; + # dbt-extractor = callPackage ./python-modules/dbt-extractor { }; -# dbt-postgres = callPackage ./python-modules/dbt-postgres { }; + # dbt-postgres = callPackage ./python-modules/dbt-postgres { }; -# dbt-redshift = callPackage ./python-modules/dbt-redshift { }; + # dbt-redshift = callPackage ./python-modules/dbt-redshift { }; -# dbt-semantic-interfaces = callPackage ./python-modules/dbt-semantic-interfaces { }; + # dbt-semantic-interfaces = callPackage ./python-modules/dbt-semantic-interfaces { }; -# dbt-snowflake = callPackage ./python-modules/dbt-snowflake { }; + # dbt-snowflake = callPackage ./python-modules/dbt-snowflake { }; -# dbus-client-gen = callPackage ./python-modules/dbus-client-gen { }; + # dbus-client-gen = callPackage ./python-modules/dbus-client-gen { }; -# dbus-deviation = callPackage ./python-modules/dbus-deviation { }; + # dbus-deviation = callPackage ./python-modules/dbus-deviation { }; -# dbus-fast = callPackage ./python-modules/dbus-fast { }; + # dbus-fast = callPackage ./python-modules/dbus-fast { }; -# dbus-next = callPackage ./python-modules/dbus-next { }; + # dbus-next = callPackage ./python-modules/dbus-next { }; -# dbus-python = callPackage ./python-modules/dbus-python { -# inherit (pkgs) dbus; -# }; + # dbus-python = callPackage ./python-modules/dbus-python { + # inherit (pkgs) dbus; + # }; -# dbus-python-client-gen = callPackage ./python-modules/dbus-python-client-gen { }; + # dbus-python-client-gen = callPackage ./python-modules/dbus-python-client-gen { }; -# dbus-signature-pyparsing = callPackage ./python-modules/dbus-signature-pyparsing { }; + # dbus-signature-pyparsing = callPackage ./python-modules/dbus-signature-pyparsing { }; -# dbutils = callPackage ./python-modules/dbutils { }; + # dbutils = callPackage ./python-modules/dbutils { }; -# db-dtypes = callPackage ./python-modules/db-dtypes { }; + # db-dtypes = callPackage ./python-modules/db-dtypes { }; -# dcmstack = callPackage ./python-modules/dcmstack { }; + # dcmstack = callPackage ./python-modules/dcmstack { }; -# dctorch = callPackage ./python-modules/dctorch { }; + # dctorch = callPackage ./python-modules/dctorch { }; -# ddt = callPackage ./python-modules/ddt { }; + # ddt = callPackage ./python-modules/ddt { }; -# deal = callPackage ./python-modules/deal { }; + # deal = callPackage ./python-modules/deal { }; -# deal-solver = callPackage ./python-modules/deal-solver { }; + # deal-solver = callPackage ./python-modules/deal-solver { }; -# deap = callPackage ./python-modules/deap { }; + # deap = callPackage ./python-modules/deap { }; -# debian = callPackage ./python-modules/debian { }; + # debian = callPackage ./python-modules/debian { }; -# debianbts = callPackage ./python-modules/debianbts { }; + # debianbts = callPackage ./python-modules/debianbts { }; -# debian-inspector = callPackage ./python-modules/debian-inspector { }; + # debian-inspector = callPackage ./python-modules/debian-inspector { }; -# debtcollector = callPackage ./python-modules/debtcollector { }; + # debtcollector = callPackage ./python-modules/debtcollector { }; -# debts = callPackage ./python-modules/debts { }; + # debts = callPackage ./python-modules/debts { }; -# debugpy = callPackage ./python-modules/debugpy { }; + # debugpy = callPackage ./python-modules/debugpy { }; -# debuglater = callPackage ./python-modules/debuglater { }; + # debuglater = callPackage ./python-modules/debuglater { }; -# decli = callPackage ./python-modules/decli { }; + # decli = callPackage ./python-modules/decli { }; -# decorator = callPackage ./python-modules/decorator { }; + # decorator = callPackage ./python-modules/decorator { }; -# decopatch = callPackage ./python-modules/decopatch { }; + # decopatch = callPackage ./python-modules/decopatch { }; -# deebot-client = callPackage ./python-modules/deebot-client { }; + # deebot-client = callPackage ./python-modules/deebot-client { }; -# deemix = callPackage ./python-modules/deemix { }; + # deemix = callPackage ./python-modules/deemix { }; -# deep-chainmap = callPackage ./python-modules/deep-chainmap { }; + # deep-chainmap = callPackage ./python-modules/deep-chainmap { }; -# deepdiff = callPackage ./python-modules/deepdiff { }; + # deepdiff = callPackage ./python-modules/deepdiff { }; -# deepdish = callPackage ./python-modules/deepdish { }; + # deepdish = callPackage ./python-modules/deepdish { }; -# deepl = callPackage ./python-modules/deepl { }; + # deepl = callPackage ./python-modules/deepl { }; -# deepmerge = callPackage ./python-modules/deepmerge { }; + # deepmerge = callPackage ./python-modules/deepmerge { }; -# deeptoolsintervals = callPackage ./python-modules/deeptoolsintervals { }; + # deeptoolsintervals = callPackage ./python-modules/deeptoolsintervals { }; -# deepwave = callPackage ./python-modules/deepwave { }; + # deepwave = callPackage ./python-modules/deepwave { }; -# deep-translator = callPackage ./python-modules/deep-translator { }; + # deep-translator = callPackage ./python-modules/deep-translator { }; -# deezer-py = callPackage ./python-modules/deezer-py { }; + # deezer-py = callPackage ./python-modules/deezer-py { }; -# deezer-python = callPackage ./python-modules/deezer-python { }; + # deezer-python = callPackage ./python-modules/deezer-python { }; -# defang = callPackage ./python-modules/defang { }; + # defang = callPackage ./python-modules/defang { }; -# defcon = callPackage ./python-modules/defcon { }; + # defcon = callPackage ./python-modules/defcon { }; -# deform = callPackage ./python-modules/deform { }; + # deform = callPackage ./python-modules/deform { }; -# defusedcsv = callPackage ./python-modules/defusedcsv { }; + # defusedcsv = callPackage ./python-modules/defusedcsv { }; -# defusedxml = callPackage ./python-modules/defusedxml { }; + # defusedxml = callPackage ./python-modules/defusedxml { }; -# dehinter = callPackage ./python-modules/dehinter { }; + # dehinter = callPackage ./python-modules/dehinter { }; -# deid = callPackage ./python-modules/deid { }; + # deid = callPackage ./python-modules/deid { }; -# dek = callPackage ./python-modules/dek { }; + # dek = callPackage ./python-modules/dek { }; -# delegator-py = callPackage ./python-modules/delegator-py { }; + # delegator-py = callPackage ./python-modules/delegator-py { }; -# delorean = callPackage ./python-modules/delorean { }; + # delorean = callPackage ./python-modules/delorean { }; -# deltachat = callPackage ./python-modules/deltachat { }; + # deltachat = callPackage ./python-modules/deltachat { }; -# deluge-client = callPackage ./python-modules/deluge-client { }; + # deluge-client = callPackage ./python-modules/deluge-client { }; -# demes = callPackage ./python-modules/demes { }; + # demes = callPackage ./python-modules/demes { }; -# demesdraw = callPackage ./python-modules/demesdraw { }; + # demesdraw = callPackage ./python-modules/demesdraw { }; -# demetriek = callPackage ./python-modules/demetriek { }; + # demetriek = callPackage ./python-modules/demetriek { }; -# demjson3 = callPackage ./python-modules/demjson3 { }; + # demjson3 = callPackage ./python-modules/demjson3 { }; -# demoji = callPackage ./python-modules/demoji { }; + # demoji = callPackage ./python-modules/demoji { }; -# dendropy = callPackage ./python-modules/dendropy { }; + # dendropy = callPackage ./python-modules/dendropy { }; -# denonavr = callPackage ./python-modules/denonavr { }; + # denonavr = callPackage ./python-modules/denonavr { }; -# dep-logic = callPackage ./python-modules/dep-logic { }; + # dep-logic = callPackage ./python-modules/dep-logic { }; -# dependency-injector = callPackage ./python-modules/dependency-injector { }; + # dependency-injector = callPackage ./python-modules/dependency-injector { }; -# deploykit = callPackage ./python-modules/deploykit { }; + # deploykit = callPackage ./python-modules/deploykit { }; -# deprecat = callPackage ./python-modules/deprecat { }; + # deprecat = callPackage ./python-modules/deprecat { }; -# deprecated = callPackage ./python-modules/deprecated { }; + # deprecated = callPackage ./python-modules/deprecated { }; -# deprecation = callPackage ./python-modules/deprecation { }; + # deprecation = callPackage ./python-modules/deprecation { }; -# derpconf = callPackage ./python-modules/derpconf { }; + # derpconf = callPackage ./python-modules/derpconf { }; -# desktop-entry-lib = callPackage ./python-modules/desktop-entry-lib { }; + # desktop-entry-lib = callPackage ./python-modules/desktop-entry-lib { }; -# desktop-notifier = callPackage ./python-modules/desktop-notifier { }; + # desktop-notifier = callPackage ./python-modules/desktop-notifier { }; -# detect-secrets = callPackage ./python-modules/detect-secrets { }; + # detect-secrets = callPackage ./python-modules/detect-secrets { }; -# detectron2 = callPackage ./python-modules/detectron2 { }; + # detectron2 = callPackage ./python-modules/detectron2 { }; -# devialet = callPackage ./python-modules/devialet { }; + # devialet = callPackage ./python-modules/devialet { }; -# devito = callPackage ./python-modules/devito { }; + # devito = callPackage ./python-modules/devito { }; -# devolo-home-control-api = callPackage ./python-modules/devolo-home-control-api { }; + # devolo-home-control-api = callPackage ./python-modules/devolo-home-control-api { }; -# devolo-plc-api = callPackage ./python-modules/devolo-plc-api { }; + # devolo-plc-api = callPackage ./python-modules/devolo-plc-api { }; -# devpi-common = callPackage ./python-modules/devpi-common { }; + # devpi-common = callPackage ./python-modules/devpi-common { }; -# devtools = callPackage ./python-modules/devtools { }; + # devtools = callPackage ./python-modules/devtools { }; -# dfdiskcache = callPackage ./python-modules/dfdiskcache { }; + # dfdiskcache = callPackage ./python-modules/dfdiskcache { }; -# diagrams = callPackage ./python-modules/diagrams { }; + # diagrams = callPackage ./python-modules/diagrams { }; -# diceware = callPackage ./python-modules/diceware { }; + # diceware = callPackage ./python-modules/diceware { }; -# dicom2nifti = callPackage ./python-modules/dicom2nifti { }; + # dicom2nifti = callPackage ./python-modules/dicom2nifti { }; -# dicom-numpy = callPackage ./python-modules/dicom-numpy { }; + # dicom-numpy = callPackage ./python-modules/dicom-numpy { }; -# dicomweb-client = callPackage ./python-modules/dicomweb-client { }; + # dicomweb-client = callPackage ./python-modules/dicomweb-client { }; -# dict2xml = callPackage ./python-modules/dict2xml { }; + # dict2xml = callPackage ./python-modules/dict2xml { }; -# dictdiffer = callPackage ./python-modules/dictdiffer { }; + # dictdiffer = callPackage ./python-modules/dictdiffer { }; -# dictionaries = callPackage ./python-modules/dictionaries { }; + # dictionaries = callPackage ./python-modules/dictionaries { }; -# dicttoxml = callPackage ./python-modules/dicttoxml { }; + # dicttoxml = callPackage ./python-modules/dicttoxml { }; -# dicttoxml2 = callPackage ./python-modules/dicttoxml2 { }; + # dicttoxml2 = callPackage ./python-modules/dicttoxml2 { }; -# diff-cover = callPackage ./python-modules/diff-cover { }; + # diff-cover = callPackage ./python-modules/diff-cover { }; -# diff-match-patch = callPackage ./python-modules/diff-match-patch { }; + # diff-match-patch = callPackage ./python-modules/diff-match-patch { }; -# diffimg = callPackage ./python-modules/diffimg { }; + # diffimg = callPackage ./python-modules/diffimg { }; -# diffsync = callPackage ./python-modules/diffsync { }; + # diffsync = callPackage ./python-modules/diffsync { }; -# diffusers = callPackage ./python-modules/diffusers { }; + # diffusers = callPackage ./python-modules/diffusers { }; -# digi-xbee = callPackage ./python-modules/digi-xbee { }; + # digi-xbee = callPackage ./python-modules/digi-xbee { }; -# dill = callPackage ./python-modules/dill { }; + # dill = callPackage ./python-modules/dill { }; -# dingz = callPackage ./python-modules/dingz { }; + # dingz = callPackage ./python-modules/dingz { }; -# dinghy = callPackage ./python-modules/dinghy { }; + # dinghy = callPackage ./python-modules/dinghy { }; -# diofant = callPackage ./python-modules/diofant { }; + # diofant = callPackage ./python-modules/diofant { }; -# dipy = callPackage ./python-modules/dipy { }; + # dipy = callPackage ./python-modules/dipy { }; -# directv = callPackage ./python-modules/directv { }; + # directv = callPackage ./python-modules/directv { }; -# dirigera = callPackage ./python-modules/dirigera { }; + # dirigera = callPackage ./python-modules/dirigera { }; -# dirty-equals = callPackage ./python-modules/dirty-equals { }; + # dirty-equals = callPackage ./python-modules/dirty-equals { }; -# dirtyjson = callPackage ./python-modules/dirtyjson { }; + # dirtyjson = callPackage ./python-modules/dirtyjson { }; -# discid = callPackage ./python-modules/discid { }; + # discid = callPackage ./python-modules/discid { }; -# discogs-client = callPackage ./python-modules/discogs-client { }; + # discogs-client = callPackage ./python-modules/discogs-client { }; -# discordpy = callPackage ./python-modules/discordpy { }; + # discordpy = callPackage ./python-modules/discordpy { }; -# discovery30303 = callPackage ./python-modules/discovery30303 { }; + # discovery30303 = callPackage ./python-modules/discovery30303 { }; -# diskcache = callPackage ./python-modules/diskcache { }; + # diskcache = callPackage ./python-modules/diskcache { }; -# dissect = callPackage ./python-modules/dissect { }; + # dissect = callPackage ./python-modules/dissect { }; -# dissect-btrfs = callPackage ./python-modules/dissect-btrfs { }; + # dissect-btrfs = callPackage ./python-modules/dissect-btrfs { }; -# dissect-cim = callPackage ./python-modules/dissect-cim { }; + # dissect-cim = callPackage ./python-modules/dissect-cim { }; -# dissect-clfs = callPackage ./python-modules/dissect-clfs { }; + # dissect-clfs = callPackage ./python-modules/dissect-clfs { }; -# dissect-cobaltstrike = callPackage ./python-modules/dissect-cobaltstrike { }; + # dissect-cobaltstrike = callPackage ./python-modules/dissect-cobaltstrike { }; -# dissect-cstruct = callPackage ./python-modules/dissect-cstruct { }; + # dissect-cstruct = callPackage ./python-modules/dissect-cstruct { }; -# dissect-fat = callPackage ./python-modules/dissect-fat { }; + # dissect-fat = callPackage ./python-modules/dissect-fat { }; -# dissect-ffs = callPackage ./python-modules/dissect-ffs { }; + # dissect-ffs = callPackage ./python-modules/dissect-ffs { }; -# dissect-esedb = callPackage ./python-modules/dissect-esedb { }; + # dissect-esedb = callPackage ./python-modules/dissect-esedb { }; -# dissect-etl = callPackage ./python-modules/dissect-etl { }; + # dissect-etl = callPackage ./python-modules/dissect-etl { }; -# dissect-eventlog = callPackage ./python-modules/dissect-eventlog { }; + # dissect-eventlog = callPackage ./python-modules/dissect-eventlog { }; -# dissect-evidence = callPackage ./python-modules/dissect-evidence { }; + # dissect-evidence = callPackage ./python-modules/dissect-evidence { }; -# dissect-executable = callPackage ./python-modules/dissect-executable { }; + # dissect-executable = callPackage ./python-modules/dissect-executable { }; -# dissect-extfs = callPackage ./python-modules/dissect-extfs { }; + # dissect-extfs = callPackage ./python-modules/dissect-extfs { }; -# dissect-hypervisor = callPackage ./python-modules/dissect-hypervisor { }; + # dissect-hypervisor = callPackage ./python-modules/dissect-hypervisor { }; -# dissect-jffs = callPackage ./python-modules/dissect-jffs { }; + # dissect-jffs = callPackage ./python-modules/dissect-jffs { }; -# dissect-ntfs = callPackage ./python-modules/dissect-ntfs { }; + # dissect-ntfs = callPackage ./python-modules/dissect-ntfs { }; -# dissect-ole = callPackage ./python-modules/dissect-ole { }; + # dissect-ole = callPackage ./python-modules/dissect-ole { }; -# dissect-regf = callPackage ./python-modules/dissect-regf { }; + # dissect-regf = callPackage ./python-modules/dissect-regf { }; -# dissect-shellitem = callPackage ./python-modules/dissect-shellitem { }; + # dissect-shellitem = callPackage ./python-modules/dissect-shellitem { }; -# dissect-squashfs = callPackage ./python-modules/dissect-squashfs { }; + # dissect-squashfs = callPackage ./python-modules/dissect-squashfs { }; -# dissect-sql = callPackage ./python-modules/dissect-sql { }; + # dissect-sql = callPackage ./python-modules/dissect-sql { }; -# dissect-target = callPackage ./python-modules/dissect-target { }; + # dissect-target = callPackage ./python-modules/dissect-target { }; -# dissect-thumbcache = callPackage ./python-modules/dissect-thumbcache { }; + # dissect-thumbcache = callPackage ./python-modules/dissect-thumbcache { }; -# dissect-util = callPackage ./python-modules/dissect-util { }; + # dissect-util = callPackage ./python-modules/dissect-util { }; -# dissect-vmfs = callPackage ./python-modules/dissect-vmfs { }; + # dissect-vmfs = callPackage ./python-modules/dissect-vmfs { }; -# dissect-volume = callPackage ./python-modules/dissect-volume { }; + # dissect-volume = callPackage ./python-modules/dissect-volume { }; -# dissect-xfs = callPackage ./python-modules/dissect-xfs { }; + # dissect-xfs = callPackage ./python-modules/dissect-xfs { }; -# dissononce = callPackage ./python-modules/dissononce { }; + # dissononce = callPackage ./python-modules/dissononce { }; -# distlib = callPackage ./python-modules/distlib { }; + # distlib = callPackage ./python-modules/distlib { }; -# distorm3 = callPackage ./python-modules/distorm3 { }; + # distorm3 = callPackage ./python-modules/distorm3 { }; -# distrax = callPackage ./python-modules/distrax { }; + # distrax = callPackage ./python-modules/distrax { }; -# distributed = callPackage ./python-modules/distributed { }; + # distributed = callPackage ./python-modules/distributed { }; -# distro = callPackage ./python-modules/distro { }; + # distro = callPackage ./python-modules/distro { }; -# distutils-extra = callPackage ./python-modules/distutils-extra { }; + # distutils-extra = callPackage ./python-modules/distutils-extra { }; -# # LTS in extended support phase -# django_3 = callPackage ./python-modules/django/3.nix { }; + # # LTS in extended support phase + # django_3 = callPackage ./python-modules/django/3.nix { }; -# # LTS with mainsteam support -# django = self.django_4; -# django_4 = callPackage ./python-modules/django/4.nix { }; + # # LTS with mainsteam support + # django = self.django_4; + # django_4 = callPackage ./python-modules/django/4.nix { }; -# # Pre-release -# django_5 = callPackage ./python-modules/django/5.nix { }; + # # Pre-release + # django_5 = callPackage ./python-modules/django/5.nix { }; -# django-admin-datta = callPackage ./python-modules/django-admin-datta { }; + # django-admin-datta = callPackage ./python-modules/django-admin-datta { }; -# django-admin-sortable2 = callPackage ./python-modules/django-admin-sortable2 { }; + # django-admin-sortable2 = callPackage ./python-modules/django-admin-sortable2 { }; -# django-allauth = callPackage ./python-modules/django-allauth { }; + # django-allauth = callPackage ./python-modules/django-allauth { }; -# django-allauth-2fa = callPackage ./python-modules/django-allauth-2fa { }; + # django-allauth-2fa = callPackage ./python-modules/django-allauth-2fa { }; -# django-anymail = callPackage ./python-modules/django-anymail { }; + # django-anymail = callPackage ./python-modules/django-anymail { }; -# django-annoying = callPackage ./python-modules/django-annoying { }; + # django-annoying = callPackage ./python-modules/django-annoying { }; -# django-appconf = callPackage ./python-modules/django-appconf { }; + # django-appconf = callPackage ./python-modules/django-appconf { }; -# django-auditlog = callPackage ./python-modules/django-auditlog { }; + # django-auditlog = callPackage ./python-modules/django-auditlog { }; -# django-auth-ldap = callPackage ./python-modules/django-auth-ldap { }; + # django-auth-ldap = callPackage ./python-modules/django-auth-ldap { }; -# django-autocomplete-light = callPackage ./python-modules/django-autocomplete-light { }; + # django-autocomplete-light = callPackage ./python-modules/django-autocomplete-light { }; -# django-bootstrap3 = callPackage ./python-modules/django-bootstrap3 { }; + # django-bootstrap3 = callPackage ./python-modules/django-bootstrap3 { }; -# django-bootstrap4 = callPackage ./python-modules/django-bootstrap4 { }; + # django-bootstrap4 = callPackage ./python-modules/django-bootstrap4 { }; -# django-bootstrap5 = callPackage ./python-modules/django-bootstrap5 { }; + # django-bootstrap5 = callPackage ./python-modules/django-bootstrap5 { }; -# django-cachalot = callPackage ./python-modules/django-cachalot { }; + # django-cachalot = callPackage ./python-modules/django-cachalot { }; -# django-cache-url = callPackage ./python-modules/django-cache-url { }; + # django-cache-url = callPackage ./python-modules/django-cache-url { }; -# django-cacheops = callPackage ./python-modules/django-cacheops { }; + # django-cacheops = callPackage ./python-modules/django-cacheops { }; -# django-celery-beat = callPackage ./python-modules/django-celery-beat { }; + # django-celery-beat = callPackage ./python-modules/django-celery-beat { }; -# django-celery-email = callPackage ./python-modules/django-celery-email { }; + # django-celery-email = callPackage ./python-modules/django-celery-email { }; -# django-celery-results = callPackage ./python-modules/django-celery-results { }; + # django-celery-results = callPackage ./python-modules/django-celery-results { }; -# django-ckeditor = callPackage ./python-modules/django-ckeditor { }; + # django-ckeditor = callPackage ./python-modules/django-ckeditor { }; -# django-classy-tags = callPackage ./python-modules/django-classy-tags { }; + # django-classy-tags = callPackage ./python-modules/django-classy-tags { }; -# django-cleanup = callPackage ./python-modules/django-cleanup { }; + # django-cleanup = callPackage ./python-modules/django-cleanup { }; -# django-colorful = callPackage ./python-modules/django-colorful { }; + # django-colorful = callPackage ./python-modules/django-colorful { }; -# django-compressor = callPackage ./python-modules/django-compressor { }; + # django-compressor = callPackage ./python-modules/django-compressor { }; -# django-compression-middleware = callPackage ./python-modules/django-compression-middleware { }; + # django-compression-middleware = callPackage ./python-modules/django-compression-middleware { }; -# django-configurations = callPackage ./python-modules/django-configurations { }; + # django-configurations = callPackage ./python-modules/django-configurations { }; -# django-context-decorator = callPackage ./python-modules/django-context-decorator { }; + # django-context-decorator = callPackage ./python-modules/django-context-decorator { }; -# django-contrib-comments = callPackage ./python-modules/django-contrib-comments { }; + # django-contrib-comments = callPackage ./python-modules/django-contrib-comments { }; -# django-cors-headers = callPackage ./python-modules/django-cors-headers { }; + # django-cors-headers = callPackage ./python-modules/django-cors-headers { }; -# django-countries = callPackage ./python-modules/django-countries { }; + # django-countries = callPackage ./python-modules/django-countries { }; -# django-crispy-bootstrap4 = callPackage ./python-modules/django-crispy-bootstrap4 { }; + # django-crispy-bootstrap4 = callPackage ./python-modules/django-crispy-bootstrap4 { }; -# django-crispy-bootstrap5 = callPackage ./python-modules/django-crispy-bootstrap5 { }; + # django-crispy-bootstrap5 = callPackage ./python-modules/django-crispy-bootstrap5 { }; -# django-crispy-forms = callPackage ./python-modules/django-crispy-forms { }; + # django-crispy-forms = callPackage ./python-modules/django-crispy-forms { }; -# django-crontab = callPackage ./python-modules/django-crontab { }; + # django-crontab = callPackage ./python-modules/django-crontab { }; -# django-cryptography = callPackage ./python-modules/django-cryptography { }; + # django-cryptography = callPackage ./python-modules/django-cryptography { }; -# django-csp = callPackage ./python-modules/django-csp { }; + # django-csp = callPackage ./python-modules/django-csp { }; -# django-currentuser = callPackage ./python-modules/django-currentuser { }; + # django-currentuser = callPackage ./python-modules/django-currentuser { }; -# django-debug-toolbar = callPackage ./python-modules/django-debug-toolbar { }; + # django-debug-toolbar = callPackage ./python-modules/django-debug-toolbar { }; -# django-dynamic-preferences = callPackage ./python-modules/django-dynamic-preferences { }; + # django-dynamic-preferences = callPackage ./python-modules/django-dynamic-preferences { }; -# django-encrypted-model-fields = callPackage ./python-modules/django-encrypted-model-fields { }; + # django-encrypted-model-fields = callPackage ./python-modules/django-encrypted-model-fields { }; -# django-environ = callPackage ./python-modules/django-environ { }; + # django-environ = callPackage ./python-modules/django-environ { }; -# django-extensions = callPackage ./python-modules/django-extensions { }; + # django-extensions = callPackage ./python-modules/django-extensions { }; -# django-filter = callPackage ./python-modules/django-filter { }; + # django-filter = callPackage ./python-modules/django-filter { }; -# django-formtools = callPackage ./python-modules/django-formtools { }; + # django-formtools = callPackage ./python-modules/django-formtools { }; -# django-formset-js-improved = callPackage ./python-modules/django-formset-js-improved { }; + # django-formset-js-improved = callPackage ./python-modules/django-formset-js-improved { }; -# django-graphiql-debug-toolbar = callPackage ./python-modules/django-graphiql-debug-toolbar { }; + # django-graphiql-debug-toolbar = callPackage ./python-modules/django-graphiql-debug-toolbar { }; -# django-gravatar2 = callPackage ./python-modules/django-gravatar2 { }; + # django-gravatar2 = callPackage ./python-modules/django-gravatar2 { }; -# django-google-analytics-app = callPackage ./python-modules/django-google-analytics-app { }; + # django-google-analytics-app = callPackage ./python-modules/django-google-analytics-app { }; -# django-guardian = callPackage ./python-modules/django-guardian { }; + # django-guardian = callPackage ./python-modules/django-guardian { }; -# django-haystack = callPackage ./python-modules/django-haystack { }; + # django-haystack = callPackage ./python-modules/django-haystack { }; -# django-hcaptcha = callPackage ./python-modules/django-hcaptcha { }; + # django-hcaptcha = callPackage ./python-modules/django-hcaptcha { }; -# django-health-check = callPackage ./python-modules/django-health-check { }; + # django-health-check = callPackage ./python-modules/django-health-check { }; -# django-hierarkey = callPackage ./python-modules/django-hierarkey { }; + # django-hierarkey = callPackage ./python-modules/django-hierarkey { }; -# django-hijack = callPackage ./python-modules/django-hijack { }; + # django-hijack = callPackage ./python-modules/django-hijack { }; -# django-i18nfield = callPackage ./python-modules/django-i18nfield { }; + # django-i18nfield = callPackage ./python-modules/django-i18nfield { }; -# django-import-export = callPackage ./python-modules/django-import-export { }; + # django-import-export = callPackage ./python-modules/django-import-export { }; -# django-ipware = callPackage ./python-modules/django-ipware { }; + # django-ipware = callPackage ./python-modules/django-ipware { }; -# django-jinja = callPackage ./python-modules/django-jinja2 { }; + # django-jinja = callPackage ./python-modules/django-jinja2 { }; -# django-jquery-js = callPackage ./python-modules/django-jquery-js { }; + # django-jquery-js = callPackage ./python-modules/django-jquery-js { }; -# django-js-asset = callPackage ./python-modules/django-js-asset { }; + # django-js-asset = callPackage ./python-modules/django-js-asset { }; -# django-js-reverse = callPackage ./python-modules/django-js-reverse { }; + # django-js-reverse = callPackage ./python-modules/django-js-reverse { }; -# django-libsass = callPackage ./python-modules/django-libsass { }; + # django-libsass = callPackage ./python-modules/django-libsass { }; -# django-leaflet = callPackage ./python-modules/django-leaflet { }; + # django-leaflet = callPackage ./python-modules/django-leaflet { }; -# django-logentry-admin = callPackage ./python-modules/django-logentry-admin { }; + # django-logentry-admin = callPackage ./python-modules/django-logentry-admin { }; -# django-login-required-middleware = callPackage ./python-modules/django-login-required-middleware { }; + # django-login-required-middleware = callPackage ./python-modules/django-login-required-middleware { }; -# django-localflavor = callPackage ./python-modules/django-localflavor { }; + # django-localflavor = callPackage ./python-modules/django-localflavor { }; -# django-mailman3 = callPackage ./python-modules/django-mailman3 { }; + # django-mailman3 = callPackage ./python-modules/django-mailman3 { }; -# django-markup = callPackage ./python-modules/django-markup { }; + # django-markup = callPackage ./python-modules/django-markup { }; -# django-markdownx = callPackage ./python-modules/django-markdownx { }; + # django-markdownx = callPackage ./python-modules/django-markdownx { }; -# django-model-utils = callPackage ./python-modules/django-model-utils { }; + # django-model-utils = callPackage ./python-modules/django-model-utils { }; -# django-modelcluster = callPackage ./python-modules/django-modelcluster { }; + # django-modelcluster = callPackage ./python-modules/django-modelcluster { }; -# django-modeltranslation = callPackage ./python-modules/django-modeltranslation { }; + # django-modeltranslation = callPackage ./python-modules/django-modeltranslation { }; -# django-multiselectfield = callPackage ./python-modules/django-multiselectfield { }; + # django-multiselectfield = callPackage ./python-modules/django-multiselectfield { }; -# django-maintenance-mode = callPackage ./python-modules/django-maintenance-mode { }; + # django-maintenance-mode = callPackage ./python-modules/django-maintenance-mode { }; -# django-mdeditor = callPackage ./python-modules/django-mdeditor { }; + # django-mdeditor = callPackage ./python-modules/django-mdeditor { }; -# django-mptt = callPackage ./python-modules/django-mptt { }; + # django-mptt = callPackage ./python-modules/django-mptt { }; -# django-mysql = callPackage ./python-modules/django-mysql { }; + # django-mysql = callPackage ./python-modules/django-mysql { }; -# django-ninja = callPackage ./python-modules/django-ninja { }; + # django-ninja = callPackage ./python-modules/django-ninja { }; -# django-nose = callPackage ./python-modules/django-nose { }; + # django-nose = callPackage ./python-modules/django-nose { }; -# django-oauth-toolkit = callPackage ./python-modules/django-oauth-toolkit { }; + # django-oauth-toolkit = callPackage ./python-modules/django-oauth-toolkit { }; -# django-otp = callPackage ./python-modules/django-otp { }; + # django-otp = callPackage ./python-modules/django-otp { }; -# django-paintstore = callPackage ./python-modules/django-paintstore { }; + # django-paintstore = callPackage ./python-modules/django-paintstore { }; -# django-parler = callPackage ./python-modules/django-parler { }; + # django-parler = callPackage ./python-modules/django-parler { }; -# django-pattern-library = callPackage ./python-modules/django-pattern-library { }; + # django-pattern-library = callPackage ./python-modules/django-pattern-library { }; -# django-payments = callPackage ./python-modules/django-payments { }; + # django-payments = callPackage ./python-modules/django-payments { }; -# django-pglocks = callPackage ./python-modules/django-pglocks { }; + # django-pglocks = callPackage ./python-modules/django-pglocks { }; -# django-phonenumber-field = callPackage ./python-modules/django-phonenumber-field { }; + # django-phonenumber-field = callPackage ./python-modules/django-phonenumber-field { }; -# django-picklefield = callPackage ./python-modules/django-picklefield { }; + # django-picklefield = callPackage ./python-modules/django-picklefield { }; -# django-polymorphic = callPackage ./python-modules/django-polymorphic { }; + # django-polymorphic = callPackage ./python-modules/django-polymorphic { }; -# django-postgresql-netfields = callPackage ./python-modules/django-postgresql-netfields { }; + # django-postgresql-netfields = callPackage ./python-modules/django-postgresql-netfields { }; -# django-prometheus = callPackage ./python-modules/django-prometheus { }; + # django-prometheus = callPackage ./python-modules/django-prometheus { }; -# django-pwa = callPackage ./python-modules/django-pwa { }; + # django-pwa = callPackage ./python-modules/django-pwa { }; -# django-q = callPackage ./python-modules/django-q { }; + # django-q = callPackage ./python-modules/django-q { }; -# django-scheduler = callPackage ./python-modules/django-scheduler { }; + # django-scheduler = callPackage ./python-modules/django-scheduler { }; -# django-scim2 = callPackage ./python-modules/django-scim2 { }; + # django-scim2 = callPackage ./python-modules/django-scim2 { }; -# django-shortuuidfield = callPackage ./python-modules/django-shortuuidfield { }; + # django-shortuuidfield = callPackage ./python-modules/django-shortuuidfield { }; -# django-scopes = callPackage ./python-modules/django-scopes { }; + # django-scopes = callPackage ./python-modules/django-scopes { }; -# djangoql = callPackage ./python-modules/djangoql { }; + # djangoql = callPackage ./python-modules/djangoql { }; -# django-ranged-response = callPackage ./python-modules/django-ranged-response { }; + # django-ranged-response = callPackage ./python-modules/django-ranged-response { }; -# django-raster = callPackage ./python-modules/django-raster { }; + # django-raster = callPackage ./python-modules/django-raster { }; -# django-redis = callPackage ./python-modules/django-redis { }; + # django-redis = callPackage ./python-modules/django-redis { }; -# django-rest-auth = callPackage ./python-modules/django-rest-auth { }; + # django-rest-auth = callPackage ./python-modules/django-rest-auth { }; -# django-rest-polymorphic = callPackage ./python-modules/django-rest-polymorphic { }; + # django-rest-polymorphic = callPackage ./python-modules/django-rest-polymorphic { }; -# django-rest-registration = callPackage ./python-modules/django-rest-registration { }; + # django-rest-registration = callPackage ./python-modules/django-rest-registration { }; -# django-rosetta = callPackage ./python-modules/django-rosetta { }; + # django-rosetta = callPackage ./python-modules/django-rosetta { }; -# django-rq = callPackage ./python-modules/django-rq { }; + # django-rq = callPackage ./python-modules/django-rq { }; -# djangorestframework = callPackage ./python-modules/djangorestframework { }; + # djangorestframework = callPackage ./python-modules/djangorestframework { }; -# djangorestframework-dataclasses = callPackage ./python-modules/djangorestframework-dataclasses { }; + # djangorestframework-dataclasses = callPackage ./python-modules/djangorestframework-dataclasses { }; -# djangorestframework-camel-case = callPackage ./python-modules/djangorestframework-camel-case { }; + # djangorestframework-camel-case = callPackage ./python-modules/djangorestframework-camel-case { }; -# djangorestframework-guardian = callPackage ./python-modules/djangorestframework-guardian { }; + # djangorestframework-guardian = callPackage ./python-modules/djangorestframework-guardian { }; -# djangorestframework-guardian2 = callPackage ./python-modules/djangorestframework-guardian2 { }; + # djangorestframework-guardian2 = callPackage ./python-modules/djangorestframework-guardian2 { }; -# djangorestframework-recursive = callPackage ./python-modules/djangorestframework-recursive { }; + # djangorestframework-recursive = callPackage ./python-modules/djangorestframework-recursive { }; -# djangorestframework-simplejwt = callPackage ./python-modules/djangorestframework-simplejwt { }; + # djangorestframework-simplejwt = callPackage ./python-modules/djangorestframework-simplejwt { }; -# djangorestframework-stubs = callPackage ./python-modules/djangorestframework-stubs { }; + # djangorestframework-stubs = callPackage ./python-modules/djangorestframework-stubs { }; -# django-reversion = callPackage ./python-modules/django-reversion { }; + # django-reversion = callPackage ./python-modules/django-reversion { }; -# django-sekizai = callPackage ./python-modules/django-sekizai { }; + # django-sekizai = callPackage ./python-modules/django-sekizai { }; -# django-sesame = callPackage ./python-modules/django-sesame { }; + # django-sesame = callPackage ./python-modules/django-sesame { }; -# django-silk = callPackage ./python-modules/django-silk { }; + # django-silk = callPackage ./python-modules/django-silk { }; -# django-simple-captcha = callPackage ./python-modules/django-simple-captcha { }; + # django-simple-captcha = callPackage ./python-modules/django-simple-captcha { }; -# django-simple-history = callPackage ./python-modules/django-simple-history { }; + # django-simple-history = callPackage ./python-modules/django-simple-history { }; -# django-sites = callPackage ./python-modules/django-sites { }; + # django-sites = callPackage ./python-modules/django-sites { }; -# django-sr = callPackage ./python-modules/django-sr { }; + # django-sr = callPackage ./python-modules/django-sr { }; -# django-statici18n = callPackage ./python-modules/django-statici18n { }; + # django-statici18n = callPackage ./python-modules/django-statici18n { }; -# django-storages = callPackage ./python-modules/django-storages { }; + # django-storages = callPackage ./python-modules/django-storages { }; -# django-stubs = callPackage ./python-modules/django-stubs { }; + # django-stubs = callPackage ./python-modules/django-stubs { }; -# django-stubs-ext = callPackage ./python-modules/django-stubs-ext { }; + # django-stubs-ext = callPackage ./python-modules/django-stubs-ext { }; -# django-tables2 = callPackage ./python-modules/django-tables2 { }; + # django-tables2 = callPackage ./python-modules/django-tables2 { }; -# django-tagging = callPackage ./python-modules/django-tagging { }; + # django-tagging = callPackage ./python-modules/django-tagging { }; -# django-taggit = callPackage ./python-modules/django-taggit { }; + # django-taggit = callPackage ./python-modules/django-taggit { }; -# django-tastypie = callPackage ./python-modules/django-tastypie { }; + # django-tastypie = callPackage ./python-modules/django-tastypie { }; -# django-timezone-field = callPackage ./python-modules/django-timezone-field { }; + # django-timezone-field = callPackage ./python-modules/django-timezone-field { }; -# django-treebeard = callPackage ./python-modules/django-treebeard { }; + # django-treebeard = callPackage ./python-modules/django-treebeard { }; -# django-two-factor-auth = callPackage ./python-modules/django-two-factor-auth { }; + # django-two-factor-auth = callPackage ./python-modules/django-two-factor-auth { }; -# django-types = callPackage ./python-modules/django-types { }; + # django-types = callPackage ./python-modules/django-types { }; -# django-versatileimagefield = callPackage ./python-modules/django-versatileimagefield { }; + # django-versatileimagefield = callPackage ./python-modules/django-versatileimagefield { }; -# django-vite = callPackage ./python-modules/django-vite { }; + # django-vite = callPackage ./python-modules/django-vite { }; -# django-webpack-loader = callPackage ./python-modules/django-webpack-loader { }; + # django-webpack-loader = callPackage ./python-modules/django-webpack-loader { }; -# django-webpush = callPackage ./python-modules/django-webpush { }; + # django-webpush = callPackage ./python-modules/django-webpush { }; -# django-widget-tweaks = callPackage ./python-modules/django-widget-tweaks { }; + # django-widget-tweaks = callPackage ./python-modules/django-widget-tweaks { }; -# dj-database-url = callPackage ./python-modules/dj-database-url { }; + # dj-database-url = callPackage ./python-modules/dj-database-url { }; -# dj-email-url = callPackage ./python-modules/dj-email-url { }; + # dj-email-url = callPackage ./python-modules/dj-email-url { }; -# djmail = callPackage ./python-modules/djmail { }; + # djmail = callPackage ./python-modules/djmail { }; -# dj-rest-auth = callPackage ./python-modules/dj-rest-auth { }; + # dj-rest-auth = callPackage ./python-modules/dj-rest-auth { }; -# dj-search-url = callPackage ./python-modules/dj-search-url { }; + # dj-search-url = callPackage ./python-modules/dj-search-url { }; -# dj-static = callPackage ./python-modules/dj-static { }; + # dj-static = callPackage ./python-modules/dj-static { }; -# dkimpy = callPackage ./python-modules/dkimpy { }; + # dkimpy = callPackage ./python-modules/dkimpy { }; -# dlib = callPackage ./python-modules/dlib { -# inherit (pkgs) dlib; -# }; + # dlib = callPackage ./python-modules/dlib { + # inherit (pkgs) dlib; + # }; -# dlinfo = callPackage ./python-modules/dlinfo { }; + # dlinfo = callPackage ./python-modules/dlinfo { }; -# dllogger = callPackage ./python-modules/dllogger { }; + # dllogger = callPackage ./python-modules/dllogger { }; -# dlms-cosem = callPackage ./python-modules/dlms-cosem { }; + # dlms-cosem = callPackage ./python-modules/dlms-cosem { }; -# dlx = callPackage ./python-modules/dlx { }; + # dlx = callPackage ./python-modules/dlx { }; -# dmenu-python = callPackage ./python-modules/dmenu { }; + # dmenu-python = callPackage ./python-modules/dmenu { }; -# dm-env = callPackage ./python-modules/dm-env { }; + # dm-env = callPackage ./python-modules/dm-env { }; -# dm-haiku = callPackage ./python-modules/dm-haiku { }; + # dm-haiku = callPackage ./python-modules/dm-haiku { }; -# dm-sonnet = callPackage ./python-modules/dm-sonnet { }; + # dm-sonnet = callPackage ./python-modules/dm-sonnet { }; -# dm-tree = callPackage ./python-modules/dm-tree { -# abseil-cpp = pkgs.abseil-cpp_202103.override { -# cxxStandard = "14"; -# }; -# }; + # dm-tree = callPackage ./python-modules/dm-tree { + # abseil-cpp = pkgs.abseil-cpp_202103.override { + # cxxStandard = "14"; + # }; + # }; -# dnachisel = callPackage ./python-modules/dnachisel { }; + # dnachisel = callPackage ./python-modules/dnachisel { }; -# dnf-plugins-core = callPackage ./python-modules/dnf-plugins-core { }; + # dnf-plugins-core = callPackage ./python-modules/dnf-plugins-core { }; -# dnf4 = callPackage ./python-modules/dnf4 { }; + # dnf4 = callPackage ./python-modules/dnf4 { }; -# dnfile = callPackage ./python-modules/dnfile { }; + # dnfile = callPackage ./python-modules/dnfile { }; -# dnslib = callPackage ./python-modules/dnslib { }; + # dnslib = callPackage ./python-modules/dnslib { }; -# dnspython = callPackage ./python-modules/dnspython { }; + # dnspython = callPackage ./python-modules/dnspython { }; -# dns-lexicon = callPackage ./python-modules/dns-lexicon { }; + # dns-lexicon = callPackage ./python-modules/dns-lexicon { }; -# doc8 = callPackage ./python-modules/doc8 { }; + # doc8 = callPackage ./python-modules/doc8 { }; -# docformatter = callPackage ./python-modules/docformatter { }; + # docformatter = callPackage ./python-modules/docformatter { }; -# docker = callPackage ./python-modules/docker { }; + # docker = callPackage ./python-modules/docker { }; -# dockerfile-parse = callPackage ./python-modules/dockerfile-parse { }; + # dockerfile-parse = callPackage ./python-modules/dockerfile-parse { }; -# dockerpty = callPackage ./python-modules/dockerpty { }; + # dockerpty = callPackage ./python-modules/dockerpty { }; -# docker-pycreds = callPackage ./python-modules/docker-pycreds { }; + # docker-pycreds = callPackage ./python-modules/docker-pycreds { }; -# docker-py = callPackage ./python-modules/docker-py { }; + # docker-py = callPackage ./python-modules/docker-py { }; -# dockerspawner = callPackage ./python-modules/dockerspawner { }; + # dockerspawner = callPackage ./python-modules/dockerspawner { }; -# docloud = callPackage ./python-modules/docloud { }; + # docloud = callPackage ./python-modules/docloud { }; -# docstr-coverage = callPackage ./python-modules/docstr-coverage { }; + # docstr-coverage = callPackage ./python-modules/docstr-coverage { }; -# docstring-to-markdown = callPackage ./python-modules/docstring-to-markdown { }; + # docstring-to-markdown = callPackage ./python-modules/docstring-to-markdown { }; -# docstring-parser = callPackage ./python-modules/docstring-parser { }; + # docstring-parser = callPackage ./python-modules/docstring-parser { }; -# docopt = callPackage ./python-modules/docopt { }; + # docopt = callPackage ./python-modules/docopt { }; -# docopt-ng = callPackage ./python-modules/docopt-ng { }; + # docopt-ng = callPackage ./python-modules/docopt-ng { }; -# docplex = callPackage ./python-modules/docplex { }; + # docplex = callPackage ./python-modules/docplex { }; -# docrep = callPackage ./python-modules/docrep { }; + # docrep = callPackage ./python-modules/docrep { }; -# doctest-ignore-unicode = callPackage ./python-modules/doctest-ignore-unicode { }; + # doctest-ignore-unicode = callPackage ./python-modules/doctest-ignore-unicode { }; docutils = callPackage ./python-modules/docutils { }; -# docx2python = callPackage ./python-modules/docx2python { }; + # docx2python = callPackage ./python-modules/docx2python { }; -# docx2txt = callPackage ./python-modules/docx2txt { }; + # docx2txt = callPackage ./python-modules/docx2txt { }; -# dodgy = callPackage ./python-modules/dodgy { }; + # dodgy = callPackage ./python-modules/dodgy { }; -# dogpile-cache = callPackage ./python-modules/dogpile-cache { }; + # dogpile-cache = callPackage ./python-modules/dogpile-cache { }; -# dogtag-pki = callPackage ./python-modules/dogtag-pki { }; + # dogtag-pki = callPackage ./python-modules/dogtag-pki { }; -# dogtail = callPackage ./python-modules/dogtail { }; + # dogtail = callPackage ./python-modules/dogtail { }; -# doit = callPackage ./python-modules/doit { }; + # doit = callPackage ./python-modules/doit { }; -# doit-py = callPackage ./python-modules/doit-py { }; + # doit-py = callPackage ./python-modules/doit-py { }; -# dokuwiki = callPackage ./python-modules/dokuwiki { }; + # dokuwiki = callPackage ./python-modules/dokuwiki { }; -# domeneshop = callPackage ./python-modules/domeneshop { }; + # domeneshop = callPackage ./python-modules/domeneshop { }; -# dominate = callPackage ./python-modules/dominate { }; + # dominate = callPackage ./python-modules/dominate { }; -# doorbirdpy = callPackage ./python-modules/doorbirdpy { }; + # doorbirdpy = callPackage ./python-modules/doorbirdpy { }; -# dopy = callPackage ./python-modules/dopy { }; + # dopy = callPackage ./python-modules/dopy { }; -# dotty-dict = callPackage ./python-modules/dotty-dict { }; + # dotty-dict = callPackage ./python-modules/dotty-dict { }; -# dot2tex = callPackage ./python-modules/dot2tex { -# inherit (pkgs) graphviz; -# }; + # dot2tex = callPackage ./python-modules/dot2tex { + # inherit (pkgs) graphviz; + # }; -# dotwiz = callPackage ./python-modules/dotwiz { }; + # dotwiz = callPackage ./python-modules/dotwiz { }; -# dotmap = callPackage ./python-modules/dotmap { }; + # dotmap = callPackage ./python-modules/dotmap { }; -# downloader-cli = callPackage ./python-modules/downloader-cli { }; + # downloader-cli = callPackage ./python-modules/downloader-cli { }; -# dparse = callPackage ./python-modules/dparse { }; + # dparse = callPackage ./python-modules/dparse { }; -# dparse2 = callPackage ./python-modules/dparse2 { }; + # dparse2 = callPackage ./python-modules/dparse2 { }; -# dpath = callPackage ./python-modules/dpath { }; + # dpath = callPackage ./python-modules/dpath { }; -# dpcontracts = callPackage ./python-modules/dpcontracts { }; + # dpcontracts = callPackage ./python-modules/dpcontracts { }; -# dpkt = callPackage ./python-modules/dpkt { }; + # dpkt = callPackage ./python-modules/dpkt { }; -# dploot = callPackage ./python-modules/dploot { }; + # dploot = callPackage ./python-modules/dploot { }; -# draftjs-exporter = callPackage ./python-modules/draftjs-exporter { }; + # draftjs-exporter = callPackage ./python-modules/draftjs-exporter { }; -# dragonfly = callPackage ./python-modules/dragonfly { }; + # dragonfly = callPackage ./python-modules/dragonfly { }; -# dramatiq = callPackage ./python-modules/dramatiq { }; + # dramatiq = callPackage ./python-modules/dramatiq { }; -# drawille = callPackage ./python-modules/drawille { }; + # drawille = callPackage ./python-modules/drawille { }; -# drawilleplot = callPackage ./python-modules/drawilleplot { }; + # drawilleplot = callPackage ./python-modules/drawilleplot { }; -# dremel3dpy = callPackage ./python-modules/dremel3dpy { }; + # dremel3dpy = callPackage ./python-modules/dremel3dpy { }; -# drf-jwt = callPackage ./python-modules/drf-jwt { }; + # drf-jwt = callPackage ./python-modules/drf-jwt { }; -# drf-nested-routers = callPackage ./python-modules/drf-nested-routers { }; + # drf-nested-routers = callPackage ./python-modules/drf-nested-routers { }; -# drf-spectacular = callPackage ./python-modules/drf-spectacular { }; + # drf-spectacular = callPackage ./python-modules/drf-spectacular { }; -# drf-spectacular-sidecar = callPackage ./python-modules/drf-spectacular-sidecar { }; + # drf-spectacular-sidecar = callPackage ./python-modules/drf-spectacular-sidecar { }; -# drf-ujson2 = callPackage ./python-modules/drf-ujson2 { }; + # drf-ujson2 = callPackage ./python-modules/drf-ujson2 { }; -# drf-writable-nested = callPackage ./python-modules/drf-writable-nested { }; + # drf-writable-nested = callPackage ./python-modules/drf-writable-nested { }; -# drf-yasg = callPackage ./python-modules/drf-yasg { }; + # drf-yasg = callPackage ./python-modules/drf-yasg { }; -# drivelib = callPackage ./python-modules/drivelib { }; + # drivelib = callPackage ./python-modules/drivelib { }; -# drms = callPackage ./python-modules/drms { }; + # drms = callPackage ./python-modules/drms { }; -# dronecan = callPackage ./python-modules/dronecan { }; + # dronecan = callPackage ./python-modules/dronecan { }; -# dropbox = callPackage ./python-modules/dropbox { }; + # dropbox = callPackage ./python-modules/dropbox { }; -# dropmqttapi = callPackage ./python-modules/dropmqttapi { }; + # dropmqttapi = callPackage ./python-modules/dropmqttapi { }; -# ds-store = callPackage ./python-modules/ds-store { }; + # ds-store = callPackage ./python-modules/ds-store { }; -# ds4drv = callPackage ./python-modules/ds4drv { }; + # ds4drv = callPackage ./python-modules/ds4drv { }; -# dsinternals = callPackage ./python-modules/dsinternals { }; + # dsinternals = callPackage ./python-modules/dsinternals { }; -# dsmr-parser = callPackage ./python-modules/dsmr-parser { }; + # dsmr-parser = callPackage ./python-modules/dsmr-parser { }; -# dsnap = callPackage ./python-modules/dsnap { }; + # dsnap = callPackage ./python-modules/dsnap { }; -# dtlssocket = callPackage ./python-modules/dtlssocket { }; + # dtlssocket = callPackage ./python-modules/dtlssocket { }; -# dtschema = callPackage ./python-modules/dtschema { }; + # dtschema = callPackage ./python-modules/dtschema { }; -# dtw-python = callPackage ./python-modules/dtw-python { }; + # dtw-python = callPackage ./python-modules/dtw-python { }; -# ducc0 = callPackage ./python-modules/ducc0 { }; + # ducc0 = callPackage ./python-modules/ducc0 { }; -# duckdb = callPackage ./python-modules/duckdb { -# inherit (pkgs) duckdb; -# }; + # duckdb = callPackage ./python-modules/duckdb { + # inherit (pkgs) duckdb; + # }; -# duckdb-engine = callPackage ./python-modules/duckdb-engine { }; + # duckdb-engine = callPackage ./python-modules/duckdb-engine { }; -# duckduckgo-search = callPackage ./python-modules/duckduckgo-search { }; + # duckduckgo-search = callPackage ./python-modules/duckduckgo-search { }; -# duct-py = callPackage ./python-modules/duct-py { }; + # duct-py = callPackage ./python-modules/duct-py { }; -# duden = callPackage ./python-modules/duden { }; + # duden = callPackage ./python-modules/duden { }; -# duecredit = callPackage ./python-modules/duecredit { }; + # duecredit = callPackage ./python-modules/duecredit { }; -# duet = callPackage ./python-modules/duet { }; + # duet = callPackage ./python-modules/duet { }; -# dufte = callPackage ./python-modules/dufte { }; + # dufte = callPackage ./python-modules/dufte { }; -# dugong = callPackage ./python-modules/dugong { }; + # dugong = callPackage ./python-modules/dugong { }; -# dulwich = callPackage ./python-modules/dulwich { -# inherit (pkgs) gnupg; -# }; + # dulwich = callPackage ./python-modules/dulwich { + # inherit (pkgs) gnupg; + # }; -# dunamai = callPackage ./python-modules/dunamai { }; + # dunamai = callPackage ./python-modules/dunamai { }; -# dungeon-eos = callPackage ./python-modules/dungeon-eos { }; + # dungeon-eos = callPackage ./python-modules/dungeon-eos { }; -# duo-client = callPackage ./python-modules/duo-client { }; + # duo-client = callPackage ./python-modules/duo-client { }; -# durus = callPackage ./python-modules/durus { }; + # durus = callPackage ./python-modules/durus { }; -# dvc = callPackage ./python-modules/dvc { }; + # dvc = callPackage ./python-modules/dvc { }; -# dvc-azure = callPackage ./python-modules/dvc-azure { }; + # dvc-azure = callPackage ./python-modules/dvc-azure { }; -# dvc-data = callPackage ./python-modules/dvc-data { }; + # dvc-data = callPackage ./python-modules/dvc-data { }; -# dvc-gdrive = callPackage ./python-modules/dvc-gdrive { }; + # dvc-gdrive = callPackage ./python-modules/dvc-gdrive { }; -# dvc-gs = callPackage ./python-modules/dvc-gs { }; + # dvc-gs = callPackage ./python-modules/dvc-gs { }; -# dvc-hdfs = callPackage ./python-modules/dvc-hdfs { }; + # dvc-hdfs = callPackage ./python-modules/dvc-hdfs { }; -# dvc-http = callPackage ./python-modules/dvc-http { }; + # dvc-http = callPackage ./python-modules/dvc-http { }; -# dvc-objects = callPackage ./python-modules/dvc-objects { }; + # dvc-objects = callPackage ./python-modules/dvc-objects { }; -# dvc-render = callPackage ./python-modules/dvc-render { }; + # dvc-render = callPackage ./python-modules/dvc-render { }; -# dvc-s3 = callPackage ./python-modules/dvc-s3 { }; + # dvc-s3 = callPackage ./python-modules/dvc-s3 { }; -# dvc-ssh = callPackage ./python-modules/dvc-ssh { }; + # dvc-ssh = callPackage ./python-modules/dvc-ssh { }; -# dvc-studio-client = callPackage ./python-modules/dvc-studio-client { }; + # dvc-studio-client = callPackage ./python-modules/dvc-studio-client { }; -# dvc-task = callPackage ./python-modules/dvc-task { }; + # dvc-task = callPackage ./python-modules/dvc-task { }; -# dvclive = callPackage ./python-modules/dvclive { }; + # dvclive = callPackage ./python-modules/dvclive { }; -# dwdwfsapi = callPackage ./python-modules/dwdwfsapi { }; + # dwdwfsapi = callPackage ./python-modules/dwdwfsapi { }; -# dyn = callPackage ./python-modules/dyn { }; + # dyn = callPackage ./python-modules/dyn { }; -# dynalite-devices = callPackage ./python-modules/dynalite-devices { }; + # dynalite-devices = callPackage ./python-modules/dynalite-devices { }; -# dynalite-panel = callPackage ./python-modules/dynalite-panel { }; + # dynalite-panel = callPackage ./python-modules/dynalite-panel { }; -# dynd = callPackage ./python-modules/dynd { }; + # dynd = callPackage ./python-modules/dynd { }; -# dsl2html = callPackage ./python-modules/dsl2html { }; + # dsl2html = callPackage ./python-modules/dsl2html { }; -# e3-core = callPackage ./python-modules/e3-core { }; + # e3-core = callPackage ./python-modules/e3-core { }; -# e3-testsuite = callPackage ./python-modules/e3-testsuite { }; + # e3-testsuite = callPackage ./python-modules/e3-testsuite { }; -# eagle100 = callPackage ./python-modules/eagle100 { }; + # eagle100 = callPackage ./python-modules/eagle100 { }; -# easydict = callPackage ./python-modules/easydict { }; + # easydict = callPackage ./python-modules/easydict { }; -# easyenergy = callPackage ./python-modules/easyenergy { }; + # easyenergy = callPackage ./python-modules/easyenergy { }; -# easygui = callPackage ./python-modules/easygui { }; + # easygui = callPackage ./python-modules/easygui { }; -# easyocr = callPackage ./python-modules/easyocr { }; + # easyocr = callPackage ./python-modules/easyocr { }; -# easyprocess = callPackage ./python-modules/easyprocess { }; + # easyprocess = callPackage ./python-modules/easyprocess { }; -# easy-thumbnails = callPackage ./python-modules/easy-thumbnails { }; + # easy-thumbnails = callPackage ./python-modules/easy-thumbnails { }; -# easywatch = callPackage ./python-modules/easywatch { }; + # easywatch = callPackage ./python-modules/easywatch { }; -# ebaysdk = callPackage ./python-modules/ebaysdk { }; + # ebaysdk = callPackage ./python-modules/ebaysdk { }; -# ebcdic = callPackage ./python-modules/ebcdic { }; + # ebcdic = callPackage ./python-modules/ebcdic { }; -# ebooklib = callPackage ./python-modules/ebooklib { }; + # ebooklib = callPackage ./python-modules/ebooklib { }; -# ec2instanceconnectcli = callPackage ../tools/virtualization/ec2instanceconnectcli { }; + # ec2instanceconnectcli = callPackage ../tools/virtualization/ec2instanceconnectcli { }; -# eccodes = toPythonModule (pkgs.eccodes.override { -# enablePython = true; -# pythonPackages = self; -# }); + # eccodes = toPythonModule (pkgs.eccodes.override { + # enablePython = true; + # pythonPackages = self; + # }); -# ecdsa = callPackage ./python-modules/ecdsa { }; + # ecdsa = callPackage ./python-modules/ecdsa { }; -# echo = callPackage ./python-modules/echo { }; + # echo = callPackage ./python-modules/echo { }; -# ecoaliface = callPackage ./python-modules/ecoaliface { }; + # ecoaliface = callPackage ./python-modules/ecoaliface { }; -# ecos = callPackage ./python-modules/ecos { }; + # ecos = callPackage ./python-modules/ecos { }; -# ecpy = callPackage ./python-modules/ecpy { }; + # ecpy = callPackage ./python-modules/ecpy { }; -# ecs-logging = callPackage ./python-modules/ecs-logging { }; + # ecs-logging = callPackage ./python-modules/ecs-logging { }; -# ed25519 = callPackage ./python-modules/ed25519 { }; + # ed25519 = callPackage ./python-modules/ed25519 { }; -# ed25519-blake2b = callPackage ./python-modules/ed25519-blake2b { }; + # ed25519-blake2b = callPackage ./python-modules/ed25519-blake2b { }; -# edalize = callPackage ./python-modules/edalize { }; + # edalize = callPackage ./python-modules/edalize { }; editables = callPackage ./python-modules/editables { }; -# editdistance = callPackage ./python-modules/editdistance { }; + # editdistance = callPackage ./python-modules/editdistance { }; -# editdistance-s = callPackage ./python-modules/editdistance-s { }; + # editdistance-s = callPackage ./python-modules/editdistance-s { }; -# editdistpy = callPackage ./python-modules/editdistpy { }; + # editdistpy = callPackage ./python-modules/editdistpy { }; -# editor = callPackage ./python-modules/editor { }; + # editor = callPackage ./python-modules/editor { }; -# editorconfig = callPackage ./python-modules/editorconfig { }; + # editorconfig = callPackage ./python-modules/editorconfig { }; -# edk2-pytool-library = callPackage ./python-modules/edk2-pytool-library { }; + # edk2-pytool-library = callPackage ./python-modules/edk2-pytool-library { }; -# edlib = callPackage ./python-modules/edlib { -# inherit (pkgs) edlib; -# }; + # edlib = callPackage ./python-modules/edlib { + # inherit (pkgs) edlib; + # }; -# eduvpn-common = callPackage ./python-modules/eduvpn-common { }; + # eduvpn-common = callPackage ./python-modules/eduvpn-common { }; -# edward = callPackage ./python-modules/edward { }; + # edward = callPackage ./python-modules/edward { }; -# effdet = callPackage ./python-modules/effdet { }; + # effdet = callPackage ./python-modules/effdet { }; -# effect = callPackage ./python-modules/effect { }; + # effect = callPackage ./python-modules/effect { }; -# eggdeps = callPackage ./python-modules/eggdeps { }; + # eggdeps = callPackage ./python-modules/eggdeps { }; -# eigenpy = toPythonModule (callPackage ./python-modules/eigenpy { }); + # eigenpy = toPythonModule (callPackage ./python-modules/eigenpy { }); -# einops = callPackage ./python-modules/einops { }; + # einops = callPackage ./python-modules/einops { }; -# eiswarnung = callPackage ./python-modules/eiswarnung { }; + # eiswarnung = callPackage ./python-modules/eiswarnung { }; -# elgato = callPackage ./python-modules/elgato { }; + # elgato = callPackage ./python-modules/elgato { }; -# elkm1-lib = callPackage ./python-modules/elkm1-lib { }; + # elkm1-lib = callPackage ./python-modules/elkm1-lib { }; -# elastic-apm = callPackage ./python-modules/elastic-apm { }; + # elastic-apm = callPackage ./python-modules/elastic-apm { }; -# elastic-transport = callPackage ./python-modules/elastic-transport { }; + # elastic-transport = callPackage ./python-modules/elastic-transport { }; -# elasticsearch = callPackage ./python-modules/elasticsearch { }; + # elasticsearch = callPackage ./python-modules/elasticsearch { }; -# elasticsearch8 = callPackage ./python-modules/elasticsearch8 { }; + # elasticsearch8 = callPackage ./python-modules/elasticsearch8 { }; -# elasticsearch-dsl = callPackage ./python-modules/elasticsearch-dsl { }; + # elasticsearch-dsl = callPackage ./python-modules/elasticsearch-dsl { }; -# elasticsearchdsl = self.elasticsearch-dsl; + # elasticsearchdsl = self.elasticsearch-dsl; -# elegy = callPackage ./python-modules/elegy { }; + # elegy = callPackage ./python-modules/elegy { }; -# elementpath = callPackage ./python-modules/elementpath { }; + # elementpath = callPackage ./python-modules/elementpath { }; -# elevate = callPackage ./python-modules/elevate { }; + # elevate = callPackage ./python-modules/elevate { }; -# eliot = callPackage ./python-modules/eliot { }; + # eliot = callPackage ./python-modules/eliot { }; -# eliqonline = callPackage ./python-modules/eliqonline { }; + # eliqonline = callPackage ./python-modules/eliqonline { }; -# elmax = callPackage ./python-modules/elmax { }; + # elmax = callPackage ./python-modules/elmax { }; -# elmax-api = callPackage ./python-modules/elmax-api { }; + # elmax-api = callPackage ./python-modules/elmax-api { }; -# emailthreads = callPackage ./python-modules/emailthreads { }; + # emailthreads = callPackage ./python-modules/emailthreads { }; -# email-validator = callPackage ./python-modules/email-validator { }; + # email-validator = callPackage ./python-modules/email-validator { }; -# embedding-reader = callPackage ./python-modules/embedding-reader { }; + # embedding-reader = callPackage ./python-modules/embedding-reader { }; -# embrace = callPackage ./python-modules/embrace { }; + # embrace = callPackage ./python-modules/embrace { }; -# emborg = callPackage ./python-modules/emborg { }; + # emborg = callPackage ./python-modules/emborg { }; -# emcee = callPackage ./python-modules/emcee { }; + # emcee = callPackage ./python-modules/emcee { }; -# emv = callPackage ./python-modules/emv { }; + # emv = callPackage ./python-modules/emv { }; -# emoji = callPackage ./python-modules/emoji { }; + # emoji = callPackage ./python-modules/emoji { }; -# empty-files = callPackage ./python-modules/empty-files { }; + # empty-files = callPackage ./python-modules/empty-files { }; -# empy = callPackage ./python-modules/empy { }; + # empy = callPackage ./python-modules/empy { }; -# emulated-roku = callPackage ./python-modules/emulated-roku { }; + # emulated-roku = callPackage ./python-modules/emulated-roku { }; -# enaml = callPackage ./python-modules/enaml { }; + # enaml = callPackage ./python-modules/enaml { }; -# enamlx = callPackage ./python-modules/enamlx { }; + # enamlx = callPackage ./python-modules/enamlx { }; -# encodec = callPackage ./python-modules/encodec { }; + # encodec = callPackage ./python-modules/encodec { }; -# energyflip-client = callPackage ./python-modules/energyflip-client { }; + # energyflip-client = callPackage ./python-modules/energyflip-client { }; -# energyflow = callPackage ./python-modules/energyflow { }; + # energyflow = callPackage ./python-modules/energyflow { }; -# energyzero = callPackage ./python-modules/energyzero { }; + # energyzero = callPackage ./python-modules/energyzero { }; -# enlighten = callPackage ./python-modules/enlighten { }; + # enlighten = callPackage ./python-modules/enlighten { }; -# enocean = callPackage ./python-modules/enocean { }; + # enocean = callPackage ./python-modules/enocean { }; -# enochecker-core = callPackage ./python-modules/enochecker-core { }; + # enochecker-core = callPackage ./python-modules/enochecker-core { }; -# enrich = callPackage ./python-modules/enrich { }; + # enrich = callPackage ./python-modules/enrich { }; -# enterpriseattack = callPackage ./python-modules/enterpriseattack { }; + # enterpriseattack = callPackage ./python-modules/enterpriseattack { }; -# entrance = callPackage ./python-modules/entrance { -# routerFeatures = false; -# }; + # entrance = callPackage ./python-modules/entrance { + # routerFeatures = false; + # }; -# entrance-with-router-features = callPackage ./python-modules/entrance { -# routerFeatures = true; -# }; + # entrance-with-router-features = callPackage ./python-modules/entrance { + # routerFeatures = true; + # }; -# entry-points-txt = callPackage ./python-modules/entry-points-txt { }; + # entry-points-txt = callPackage ./python-modules/entry-points-txt { }; -# entrypoint2 = callPackage ./python-modules/entrypoint2 { }; + # entrypoint2 = callPackage ./python-modules/entrypoint2 { }; -# entrypoints = callPackage ./python-modules/entrypoints { }; + # entrypoints = callPackage ./python-modules/entrypoints { }; -# enturclient = callPackage ./python-modules/enturclient { }; + # enturclient = callPackage ./python-modules/enturclient { }; -# enum34 = callPackage ./python-modules/enum34 { }; + # enum34 = callPackage ./python-modules/enum34 { }; -# enum-compat = callPackage ./python-modules/enum-compat { }; + # enum-compat = callPackage ./python-modules/enum-compat { }; -# env-canada = callPackage ./python-modules/env-canada { }; + # env-canada = callPackage ./python-modules/env-canada { }; -# environmental-override = callPackage ./python-modules/environmental-override { }; + # environmental-override = callPackage ./python-modules/environmental-override { }; -# environs = callPackage ./python-modules/environs { }; + # environs = callPackage ./python-modules/environs { }; -# envisage = callPackage ./python-modules/envisage { }; + # envisage = callPackage ./python-modules/envisage { }; -# envs = callPackage ./python-modules/envs { }; + # envs = callPackage ./python-modules/envs { }; -# envoy-reader = callPackage ./python-modules/envoy-reader { }; + # envoy-reader = callPackage ./python-modules/envoy-reader { }; -# envoy-utils = callPackage ./python-modules/envoy-utils { }; + # envoy-utils = callPackage ./python-modules/envoy-utils { }; -# enzyme = callPackage ./python-modules/enzyme { }; + # enzyme = callPackage ./python-modules/enzyme { }; -# epc = callPackage ./python-modules/epc { }; + # epc = callPackage ./python-modules/epc { }; -# ephem = callPackage ./python-modules/ephem { }; + # ephem = callPackage ./python-modules/ephem { }; -# ephemeral-port-reserve = callPackage ./python-modules/ephemeral-port-reserve { }; + # ephemeral-port-reserve = callPackage ./python-modules/ephemeral-port-reserve { }; -# epion = callPackage ./python-modules/epion { }; + # epion = callPackage ./python-modules/epion { }; -# epitran = callPackage ./python-modules/epitran { }; + # epitran = callPackage ./python-modules/epitran { }; -# epson-projector = callPackage ./python-modules/epson-projector { }; + # epson-projector = callPackage ./python-modules/epson-projector { }; -# equinox = callPackage ./python-modules/equinox { }; + # equinox = callPackage ./python-modules/equinox { }; -# eradicate = callPackage ./python-modules/eradicate { }; + # eradicate = callPackage ./python-modules/eradicate { }; -# es-client = callPackage ./python-modules/es-client { }; + # es-client = callPackage ./python-modules/es-client { }; -# esig = callPackage ./python-modules/esig { }; + # esig = callPackage ./python-modules/esig { }; -# espeak-phonemizer = callPackage ./python-modules/espeak-phonemizer { }; + # espeak-phonemizer = callPackage ./python-modules/espeak-phonemizer { }; -# esphome-dashboard-api = callPackage ./python-modules/esphome-dashboard-api { }; + # esphome-dashboard-api = callPackage ./python-modules/esphome-dashboard-api { }; -# esprima = callPackage ./python-modules/esprima { }; + # esprima = callPackage ./python-modules/esprima { }; -# escapism = callPackage ./python-modules/escapism { }; + # escapism = callPackage ./python-modules/escapism { }; -# essentials = callPackage ./python-modules/essentials { }; + # essentials = callPackage ./python-modules/essentials { }; -# essentials-openapi = callPackage ./python-modules/essentials-openapi { }; + # essentials-openapi = callPackage ./python-modules/essentials-openapi { }; -# etcd = callPackage ./python-modules/etcd { }; + # etcd = callPackage ./python-modules/etcd { }; -# etcd3 = callPackage ./python-modules/etcd3 { -# inherit (pkgs) etcd; -# }; + # etcd3 = callPackage ./python-modules/etcd3 { + # inherit (pkgs) etcd; + # }; -# ete3 = callPackage ./python-modules/ete3 { }; + # ete3 = callPackage ./python-modules/ete3 { }; -# etelemetry = callPackage ./python-modules/etelemetry { }; + # etelemetry = callPackage ./python-modules/etelemetry { }; -# etebase = callPackage ./python-modules/etebase { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; + # etebase = callPackage ./python-modules/etebase { + # inherit (pkgs.darwin.apple_sdk.frameworks) Security; + # }; -# etebase-server = callPackage ../servers/etebase { }; + # etebase-server = callPackage ../servers/etebase { }; -# eternalegypt = callPackage ./python-modules/eternalegypt { }; + # eternalegypt = callPackage ./python-modules/eternalegypt { }; -# etesync = callPackage ./python-modules/etesync { }; + # etesync = callPackage ./python-modules/etesync { }; -# eth-abi = callPackage ./python-modules/eth-abi { }; + # eth-abi = callPackage ./python-modules/eth-abi { }; -# eth-account = callPackage ./python-modules/eth-account { }; + # eth-account = callPackage ./python-modules/eth-account { }; -# eth-hash = callPackage ./python-modules/eth-hash { }; + # eth-hash = callPackage ./python-modules/eth-hash { }; -# eth-keyfile = callPackage ./python-modules/eth-keyfile { }; + # eth-keyfile = callPackage ./python-modules/eth-keyfile { }; -# eth-keys = callPackage ./python-modules/eth-keys { }; + # eth-keys = callPackage ./python-modules/eth-keys { }; -# eth-rlp = callPackage ./python-modules/eth-rlp { }; + # eth-rlp = callPackage ./python-modules/eth-rlp { }; -# eth-typing = callPackage ./python-modules/eth-typing { }; + # eth-typing = callPackage ./python-modules/eth-typing { }; -# eth-utils = callPackage ./python-modules/eth-utils { }; + # eth-utils = callPackage ./python-modules/eth-utils { }; -# etils = callPackage ./python-modules/etils { }; + # etils = callPackage ./python-modules/etils { }; -# etuples = callPackage ./python-modules/etuples { }; + # etuples = callPackage ./python-modules/etuples { }; -# et-xmlfile = callPackage ./python-modules/et-xmlfile { }; + # et-xmlfile = callPackage ./python-modules/et-xmlfile { }; -# euclid3 = callPackage ./python-modules/euclid3 { }; + # euclid3 = callPackage ./python-modules/euclid3 { }; -# eufylife-ble-client = callPackage ./python-modules/eufylife-ble-client { }; + # eufylife-ble-client = callPackage ./python-modules/eufylife-ble-client { }; -# eval-type-backport = callPackage ./python-modules/eval-type-backport { }; + # eval-type-backport = callPackage ./python-modules/eval-type-backport { }; -# evaluate = callPackage ./python-modules/evaluate { }; + # evaluate = callPackage ./python-modules/evaluate { }; -# evdev = callPackage ./python-modules/evdev { }; + # evdev = callPackage ./python-modules/evdev { }; -# eve = callPackage ./python-modules/eve { }; + # eve = callPackage ./python-modules/eve { }; -# eventkit = callPackage ./python-modules/eventkit { }; + # eventkit = callPackage ./python-modules/eventkit { }; -# eventlet = callPackage ./python-modules/eventlet { }; + # eventlet = callPackage ./python-modules/eventlet { }; -# events = callPackage ./python-modules/events { }; + # events = callPackage ./python-modules/events { }; -# evernote = callPackage ./python-modules/evernote { }; + # evernote = callPackage ./python-modules/evernote { }; -# evohome-async = callPackage ./python-modules/evohome-async { }; + # evohome-async = callPackage ./python-modules/evohome-async { }; -# evtx = callPackage ./python-modules/evtx { }; + # evtx = callPackage ./python-modules/evtx { }; -# ewmh = callPackage ./python-modules/ewmh { }; + # ewmh = callPackage ./python-modules/ewmh { }; -# example-robot-data = toPythonModule (pkgs.example-robot-data.override { -# pythonSupport = true; -# python3Packages = self; -# }); + # example-robot-data = toPythonModule (pkgs.example-robot-data.override { + # pythonSupport = true; + # python3Packages = self; + # }); -# exdown = callPackage ./python-modules/exdown { }; + # exdown = callPackage ./python-modules/exdown { }; exceptiongroup = callPackage ./python-modules/exceptiongroup { }; -# exchangelib = callPackage ./python-modules/exchangelib { }; + # exchangelib = callPackage ./python-modules/exchangelib { }; -# execnb = callPackage ./python-modules/execnb { }; + # execnb = callPackage ./python-modules/execnb { }; execnet = callPackage ./python-modules/execnet { }; -# executing = callPackage ./python-modules/executing { }; + # executing = callPackage ./python-modules/executing { }; -# executor = callPackage ./python-modules/executor { }; + # executor = callPackage ./python-modules/executor { }; -# exif = callPackage ./python-modules/exif { }; + # exif = callPackage ./python-modules/exif { }; -# exifread = callPackage ./python-modules/exifread { }; + # exifread = callPackage ./python-modules/exifread { }; -# expandvars = callPackage ./python-modules/expandvars { }; + # expandvars = callPackage ./python-modules/expandvars { }; -# expects = callPackage ./python-modules/expects { }; + # expects = callPackage ./python-modules/expects { }; -# expecttest = callPackage ./python-modules/expecttest { }; + # expecttest = callPackage ./python-modules/expecttest { }; -# experiment-utilities = callPackage ./python-modules/experiment-utilities { }; + # experiment-utilities = callPackage ./python-modules/experiment-utilities { }; -# expiring-dict = callPackage ./python-modules/expiring-dict { }; + # expiring-dict = callPackage ./python-modules/expiring-dict { }; -# expiringdict = callPackage ./python-modules/expiringdict { }; + # expiringdict = callPackage ./python-modules/expiringdict { }; -# explorerscript = callPackage ./python-modules/explorerscript { }; + # explorerscript = callPackage ./python-modules/explorerscript { }; -# exrex = callPackage ./python-modules/exrex { }; + # exrex = callPackage ./python-modules/exrex { }; -# exitcode = callPackage ./python-modules/exitcode { }; + # exitcode = callPackage ./python-modules/exitcode { }; -# extract-msg = callPackage ./python-modules/extract-msg { }; + # extract-msg = callPackage ./python-modules/extract-msg { }; -# extractcode = callPackage ./python-modules/extractcode { }; + # extractcode = callPackage ./python-modules/extractcode { }; -# extractcode-7z = callPackage ./python-modules/extractcode/7z.nix { -# inherit (pkgs) p7zip; -# }; + # extractcode-7z = callPackage ./python-modules/extractcode/7z.nix { + # inherit (pkgs) p7zip; + # }; -# extractcode-libarchive = callPackage ./python-modules/extractcode/libarchive.nix { -# inherit (pkgs) -# libarchive -# libb2 -# bzip2 -# expat -# lz4 -# xz -# zlib -# zstd; -# }; + # extractcode-libarchive = callPackage ./python-modules/extractcode/libarchive.nix { + # inherit (pkgs) + # libarchive + # libb2 + # bzip2 + # expat + # lz4 + # xz + # zlib + # zstd; + # }; -# extras = callPackage ./python-modules/extras { }; + # extras = callPackage ./python-modules/extras { }; -# extruct = callPackage ./python-modules/extruct { }; + # extruct = callPackage ./python-modules/extruct { }; -# eyed3 = callPackage ./python-modules/eyed3 { }; + # eyed3 = callPackage ./python-modules/eyed3 { }; -# ezdxf = callPackage ./python-modules/ezdxf { }; + # ezdxf = callPackage ./python-modules/ezdxf { }; -# ezyrb = callPackage ./python-modules/ezyrb { }; + # ezyrb = callPackage ./python-modules/ezyrb { }; -# f5-icontrol-rest = callPackage ./python-modules/f5-icontrol-rest { }; + # f5-icontrol-rest = callPackage ./python-modules/f5-icontrol-rest { }; -# f5-sdk = callPackage ./python-modules/f5-sdk { }; + # f5-sdk = callPackage ./python-modules/f5-sdk { }; -# f90nml = callPackage ./python-modules/f90nml { }; + # f90nml = callPackage ./python-modules/f90nml { }; -# fabric = callPackage ./python-modules/fabric { }; + # fabric = callPackage ./python-modules/fabric { }; -# faadelays = callPackage ./python-modules/faadelays { }; + # faadelays = callPackage ./python-modules/faadelays { }; -# fabulous = callPackage ./python-modules/fabulous { }; + # fabulous = callPackage ./python-modules/fabulous { }; -# facebook-sdk = callPackage ./python-modules/facebook-sdk { }; + # facebook-sdk = callPackage ./python-modules/facebook-sdk { }; -# face = callPackage ./python-modules/face { }; + # face = callPackage ./python-modules/face { }; -# facedancer = callPackage ./python-modules/facedancer { }; + # facedancer = callPackage ./python-modules/facedancer { }; -# face-recognition = callPackage ./python-modules/face-recognition { }; + # face-recognition = callPackage ./python-modules/face-recognition { }; -# facenet-pytorch = callPackage ./python-modules/facenet-pytorch { }; + # facenet-pytorch = callPackage ./python-modules/facenet-pytorch { }; -# face-recognition-models = callPackage ./python-modules/face-recognition/models.nix { }; + # face-recognition-models = callPackage ./python-modules/face-recognition/models.nix { }; -# factory-boy = callPackage ./python-modules/factory-boy { }; + # factory-boy = callPackage ./python-modules/factory-boy { }; -# fairscale = callPackage ./python-modules/fairscale { }; + # fairscale = callPackage ./python-modules/fairscale { }; -# fairseq = callPackage ./python-modules/fairseq { }; + # fairseq = callPackage ./python-modules/fairseq { }; -# faiss = toPythonModule (pkgs.faiss.override { -# pythonSupport = true; -# pythonPackages = self; -# }); + # faiss = toPythonModule (pkgs.faiss.override { + # pythonSupport = true; + # pythonPackages = self; + # }); -# fake-useragent = callPackage ./python-modules/fake-useragent { }; + # fake-useragent = callPackage ./python-modules/fake-useragent { }; -# faker = callPackage ./python-modules/faker { }; + # faker = callPackage ./python-modules/faker { }; -# fakeredis = callPackage ./python-modules/fakeredis { }; + # fakeredis = callPackage ./python-modules/fakeredis { }; -# falcon = callPackage ./python-modules/falcon { }; + # falcon = callPackage ./python-modules/falcon { }; -# faraday-agent-parameters-types = callPackage ./python-modules/faraday-agent-parameters-types { }; + # faraday-agent-parameters-types = callPackage ./python-modules/faraday-agent-parameters-types { }; -# faraday-plugins = callPackage ./python-modules/faraday-plugins { }; + # faraday-plugins = callPackage ./python-modules/faraday-plugins { }; -# farama-notifications = callPackage ./python-modules/farama-notifications { }; + # farama-notifications = callPackage ./python-modules/farama-notifications { }; -# farm-haystack = callPackage ./python-modules/farm-haystack { }; + # farm-haystack = callPackage ./python-modules/farm-haystack { }; -# fastai = callPackage ./python-modules/fastai { }; + # fastai = callPackage ./python-modules/fastai { }; -# fastapi = callPackage ./python-modules/fastapi { }; + # fastapi = callPackage ./python-modules/fastapi { }; -# fastapi-mail = callPackage ./python-modules/fastapi-mail { }; + # fastapi-mail = callPackage ./python-modules/fastapi-mail { }; -# fastapi-sso = callPackage ./python-modules/fastapi-sso { }; + # fastapi-sso = callPackage ./python-modules/fastapi-sso { }; -# fast-histogram = callPackage ./python-modules/fast-histogram { }; + # fast-histogram = callPackage ./python-modules/fast-histogram { }; -# fastavro = callPackage ./python-modules/fastavro { }; + # fastavro = callPackage ./python-modules/fastavro { }; -# fastbencode = callPackage ./python-modules/fastbencode { }; + # fastbencode = callPackage ./python-modules/fastbencode { }; -# fastcache = callPackage ./python-modules/fastcache { }; + # fastcache = callPackage ./python-modules/fastcache { }; -# fastcore = callPackage ./python-modules/fastcore { }; + # fastcore = callPackage ./python-modules/fastcore { }; -# fastdiff = callPackage ./python-modules/fastdiff { }; + # fastdiff = callPackage ./python-modules/fastdiff { }; -# fastdownload = callPackage ./python-modules/fastdownload { }; + # fastdownload = callPackage ./python-modules/fastdownload { }; -# fastdtw = callPackage ./python-modules/fastdtw { }; + # fastdtw = callPackage ./python-modules/fastdtw { }; -# fastecdsa = callPackage ./python-modules/fastecdsa { }; + # fastecdsa = callPackage ./python-modules/fastecdsa { }; -# fastembed = callPackage ./python-modules/fastembed { }; + # fastembed = callPackage ./python-modules/fastembed { }; -# fasteners = callPackage ./python-modules/fasteners { }; + # fasteners = callPackage ./python-modules/fasteners { }; -# fastentrypoints = callPackage ./python-modules/fastentrypoints { }; + # fastentrypoints = callPackage ./python-modules/fastentrypoints { }; -# faster-fifo = callPackage ./python-modules/faster-fifo { }; + # faster-fifo = callPackage ./python-modules/faster-fifo { }; -# faster-whisper = callPackage ./python-modules/faster-whisper { }; + # faster-whisper = callPackage ./python-modules/faster-whisper { }; -# fastimport = callPackage ./python-modules/fastimport { }; + # fastimport = callPackage ./python-modules/fastimport { }; -# fastjet = toPythonModule (pkgs.fastjet.override { -# withPython = true; -# inherit (self) python; -# }); + # fastjet = toPythonModule (pkgs.fastjet.override { + # withPython = true; + # inherit (self) python; + # }); -# fastjsonschema = callPackage ./python-modules/fastjsonschema { }; + # fastjsonschema = callPackage ./python-modules/fastjsonschema { }; -# fastnlo-toolkit = toPythonModule (pkgs.fastnlo-toolkit.override { -# withPython = true; -# inherit (self) python; -# }); + # fastnlo-toolkit = toPythonModule (pkgs.fastnlo-toolkit.override { + # withPython = true; + # inherit (self) python; + # }); -# fastnumbers = callPackage ./python-modules/fastnumbers { }; + # fastnumbers = callPackage ./python-modules/fastnumbers { }; -# fastpair = callPackage ./python-modules/fastpair { }; + # fastpair = callPackage ./python-modules/fastpair { }; -# fastparquet = callPackage ./python-modules/fastparquet { }; + # fastparquet = callPackage ./python-modules/fastparquet { }; -# fastpbkdf2 = callPackage ./python-modules/fastpbkdf2 { }; + # fastpbkdf2 = callPackage ./python-modules/fastpbkdf2 { }; -# fastprogress = callPackage ./python-modules/fastprogress { }; + # fastprogress = callPackage ./python-modules/fastprogress { }; -# fastrlock = callPackage ./python-modules/fastrlock { }; + # fastrlock = callPackage ./python-modules/fastrlock { }; -# fasttext = callPackage ./python-modules/fasttext { }; + # fasttext = callPackage ./python-modules/fasttext { }; -# fasttext-predict = callPackage ./python-modules/fasttext-predict { }; + # fasttext-predict = callPackage ./python-modules/fasttext-predict { }; -# faust-cchardet = callPackage ./python-modules/faust-cchardet { }; + # faust-cchardet = callPackage ./python-modules/faust-cchardet { }; -# favicon = callPackage ./python-modules/favicon { }; + # favicon = callPackage ./python-modules/favicon { }; fb-re2 = callPackage ./python-modules/fb-re2 { }; -# fe25519 = callPackage ./python-modules/fe25519 { }; + # fe25519 = callPackage ./python-modules/fe25519 { }; -# feedfinder2 = callPackage ./python-modules/feedfinder2 { }; + # feedfinder2 = callPackage ./python-modules/feedfinder2 { }; -# feedgen = callPackage ./python-modules/feedgen { }; + # feedgen = callPackage ./python-modules/feedgen { }; -# feedgenerator = callPackage ./python-modules/feedgenerator { -# inherit (pkgs) glibcLocales; -# }; + # feedgenerator = callPackage ./python-modules/feedgenerator { + # inherit (pkgs) glibcLocales; + # }; -# feedparser = callPackage ./python-modules/feedparser { }; + # feedparser = callPackage ./python-modules/feedparser { }; -# fenics = callPackage ./python-modules/fenics { -# hdf5 = pkgs.hdf5_1_10; -# }; + # fenics = callPackage ./python-modules/fenics { + # hdf5 = pkgs.hdf5_1_10; + # }; -# ffcv = callPackage ./python-modules/ffcv { }; + # ffcv = callPackage ./python-modules/ffcv { }; -# ffmpeg-python = callPackage ./python-modules/ffmpeg-python { }; + # ffmpeg-python = callPackage ./python-modules/ffmpeg-python { }; -# ffmpeg-progress-yield = callPackage ./python-modules/ffmpeg-progress-yield { }; + # ffmpeg-progress-yield = callPackage ./python-modules/ffmpeg-progress-yield { }; -# ffmpy = callPackage ./python-modules/ffmpy { }; + # ffmpy = callPackage ./python-modules/ffmpy { }; -# fhir-py = callPackage ./python-modules/fhir-py { }; + # fhir-py = callPackage ./python-modules/fhir-py { }; -# fiblary3-fork = callPackage ./python-modules/fiblary3-fork { }; + # fiblary3-fork = callPackage ./python-modules/fiblary3-fork { }; -# fido2 = callPackage ./python-modules/fido2 { }; + # fido2 = callPackage ./python-modules/fido2 { }; -# fields = callPackage ./python-modules/fields { }; + # fields = callPackage ./python-modules/fields { }; -# file-read-backwards = callPackage ./python-modules/file-read-backwards { }; + # file-read-backwards = callPackage ./python-modules/file-read-backwards { }; -# filebrowser-safe = callPackage ./python-modules/filebrowser-safe { }; + # filebrowser-safe = callPackage ./python-modules/filebrowser-safe { }; -# filebytes = callPackage ./python-modules/filebytes { }; + # filebytes = callPackage ./python-modules/filebytes { }; -# filecheck = callPackage ./python-modules/filecheck { }; + # filecheck = callPackage ./python-modules/filecheck { }; -# filedepot = callPackage ./python-modules/filedepot { }; + # filedepot = callPackage ./python-modules/filedepot { }; filelock = callPackage ./python-modules/filelock { }; -# filetype = callPackage ./python-modules/filetype { }; + # filetype = callPackage ./python-modules/filetype { }; -# filterpy = callPackage ./python-modules/filterpy { }; + # filterpy = callPackage ./python-modules/filterpy { }; -# finalfusion = callPackage ./python-modules/finalfusion { }; + # finalfusion = callPackage ./python-modules/finalfusion { }; -# findimports = callPackage ./python-modules/findimports { }; + # findimports = callPackage ./python-modules/findimports { }; -# find-libpython = callPackage ./python-modules/find-libpython { }; + # find-libpython = callPackage ./python-modules/find-libpython { }; -# findpython = callPackage ./python-modules/findpython { }; + # findpython = callPackage ./python-modules/findpython { }; -# fingerprints = callPackage ./python-modules/fingerprints { }; + # fingerprints = callPackage ./python-modules/fingerprints { }; -# finitude = callPackage ./python-modules/finitude { }; + # finitude = callPackage ./python-modules/finitude { }; -# fints = callPackage ./python-modules/fints { }; + # fints = callPackage ./python-modules/fints { }; -# finvizfinance = callPackage ./python-modules/finvizfinance { }; + # finvizfinance = callPackage ./python-modules/finvizfinance { }; -# fiona = callPackage ./python-modules/fiona { }; + # fiona = callPackage ./python-modules/fiona { }; -# fipy = callPackage ./python-modules/fipy { }; + # fipy = callPackage ./python-modules/fipy { }; -# fire = callPackage ./python-modules/fire { }; + # fire = callPackage ./python-modules/fire { }; -# firebase-messaging = callPackage ./python-modules/firebase-messaging { }; + # firebase-messaging = callPackage ./python-modules/firebase-messaging { }; -# fireflyalgorithm = callPackage ./python-modules/fireflyalgorithm { }; + # fireflyalgorithm = callPackage ./python-modules/fireflyalgorithm { }; -# firetv = callPackage ./python-modules/firetv { }; + # firetv = callPackage ./python-modules/firetv { }; -# first = callPackage ./python-modules/first { }; + # first = callPackage ./python-modules/first { }; -# fitbit = callPackage ./python-modules/fitbit { }; + # fitbit = callPackage ./python-modules/fitbit { }; -# fivem-api = callPackage ./python-modules/fivem-api { }; + # fivem-api = callPackage ./python-modules/fivem-api { }; -# fixerio = callPackage ./python-modules/fixerio { }; + # fixerio = callPackage ./python-modules/fixerio { }; -# fixtures = callPackage ./python-modules/fixtures { }; + # fixtures = callPackage ./python-modules/fixtures { }; -# fjaraskupan = callPackage ./python-modules/fjaraskupan { }; + # fjaraskupan = callPackage ./python-modules/fjaraskupan { }; -# flake8-blind-except = callPackage ./python-modules/flake8-blind-except { }; + # flake8-blind-except = callPackage ./python-modules/flake8-blind-except { }; -# flake8-bugbear = callPackage ./python-modules/flake8-bugbear { }; + # flake8-bugbear = callPackage ./python-modules/flake8-bugbear { }; -# flake8 = callPackage ./python-modules/flake8 { }; + # flake8 = callPackage ./python-modules/flake8 { }; -# flake8-length = callPackage ./python-modules/flake8-length { }; + # flake8-length = callPackage ./python-modules/flake8-length { }; -# flake8-debugger = callPackage ./python-modules/flake8-debugger { }; + # flake8-debugger = callPackage ./python-modules/flake8-debugger { }; -# flake8-docstrings = callPackage ./python-modules/flake8-docstrings { }; + # flake8-docstrings = callPackage ./python-modules/flake8-docstrings { }; -# flake8-future-import = callPackage ./python-modules/flake8-future-import { }; + # flake8-future-import = callPackage ./python-modules/flake8-future-import { }; -# flake8-import-order = callPackage ./python-modules/flake8-import-order { }; + # flake8-import-order = callPackage ./python-modules/flake8-import-order { }; -# flake8-polyfill = callPackage ./python-modules/flake8-polyfill { }; + # flake8-polyfill = callPackage ./python-modules/flake8-polyfill { }; -# flaky = callPackage ./python-modules/flaky { }; + # flaky = callPackage ./python-modules/flaky { }; -# flametree = callPackage ./python-modules/flametree { }; + # flametree = callPackage ./python-modules/flametree { }; -# flammkuchen = callPackage ./python-modules/flammkuchen { }; + # flammkuchen = callPackage ./python-modules/flammkuchen { }; -# flasgger = callPackage ./python-modules/flasgger { }; + # flasgger = callPackage ./python-modules/flasgger { }; -# flashtext = callPackage ./python-modules/flashtext { }; + # flashtext = callPackage ./python-modules/flashtext { }; -# flask-admin = callPackage ./python-modules/flask-admin { }; + # flask-admin = callPackage ./python-modules/flask-admin { }; -# flask-api = callPackage ./python-modules/flask-api { }; + # flask-api = callPackage ./python-modules/flask-api { }; -# flask-appbuilder = callPackage ./python-modules/flask-appbuilder { }; + # flask-appbuilder = callPackage ./python-modules/flask-appbuilder { }; -# flask-assets = callPackage ./python-modules/flask-assets { }; + # flask-assets = callPackage ./python-modules/flask-assets { }; -# flask-babel = callPackage ./python-modules/flask-babel { }; + # flask-babel = callPackage ./python-modules/flask-babel { }; -# flask-babelex = callPackage ./python-modules/flask-babelex { }; + # flask-babelex = callPackage ./python-modules/flask-babelex { }; -# flask-bcrypt = callPackage ./python-modules/flask-bcrypt { }; + # flask-bcrypt = callPackage ./python-modules/flask-bcrypt { }; -# flask-bootstrap = callPackage ./python-modules/flask-bootstrap { }; + # flask-bootstrap = callPackage ./python-modules/flask-bootstrap { }; -# flask-caching = callPackage ./python-modules/flask-caching { }; + # flask-caching = callPackage ./python-modules/flask-caching { }; -# flask = callPackage ./python-modules/flask { }; + # flask = callPackage ./python-modules/flask { }; -# flask-common = callPackage ./python-modules/flask-common { }; + # flask-common = callPackage ./python-modules/flask-common { }; -# flask-compress = callPackage ./python-modules/flask-compress { }; + # flask-compress = callPackage ./python-modules/flask-compress { }; -# flask-cors = callPackage ./python-modules/flask-cors { }; + # flask-cors = callPackage ./python-modules/flask-cors { }; -# flask-dramatiq = callPackage ./python-modules/flask-dramatiq { }; + # flask-dramatiq = callPackage ./python-modules/flask-dramatiq { }; -# flask-elastic = callPackage ./python-modules/flask-elastic { }; + # flask-elastic = callPackage ./python-modules/flask-elastic { }; -# flask-expects-json = callPackage ./python-modules/flask-expects-json { }; + # flask-expects-json = callPackage ./python-modules/flask-expects-json { }; -# flask-gravatar = callPackage ./python-modules/flask-gravatar { }; + # flask-gravatar = callPackage ./python-modules/flask-gravatar { }; -# flask-httpauth = callPackage ./python-modules/flask-httpauth { }; + # flask-httpauth = callPackage ./python-modules/flask-httpauth { }; -# flask-jwt-extended = callPackage ./python-modules/flask-jwt-extended { }; + # flask-jwt-extended = callPackage ./python-modules/flask-jwt-extended { }; -# flask-limiter = callPackage ./python-modules/flask-limiter { }; + # flask-limiter = callPackage ./python-modules/flask-limiter { }; -# flask-login = callPackage ./python-modules/flask-login { }; + # flask-login = callPackage ./python-modules/flask-login { }; -# flask-mail = callPackage ./python-modules/flask-mail { }; + # flask-mail = callPackage ./python-modules/flask-mail { }; -# flask-mailman = callPackage ./python-modules/flask-mailman { }; + # flask-mailman = callPackage ./python-modules/flask-mailman { }; -# flask-marshmallow = callPackage ./python-modules/flask-marshmallow { }; + # flask-marshmallow = callPackage ./python-modules/flask-marshmallow { }; -# flask-migrate = callPackage ./python-modules/flask-migrate { }; + # flask-migrate = callPackage ./python-modules/flask-migrate { }; -# flask-mongoengine = callPackage ./python-modules/flask-mongoengine { }; + # flask-mongoengine = callPackage ./python-modules/flask-mongoengine { }; -# flask-mysqldb = callPackage ./python-modules/flask-mysqldb { }; + # flask-mysqldb = callPackage ./python-modules/flask-mysqldb { }; -# flask-openid = callPackage ./python-modules/flask-openid { }; + # flask-openid = callPackage ./python-modules/flask-openid { }; -# flask-paginate = callPackage ./python-modules/flask-paginate { }; + # flask-paginate = callPackage ./python-modules/flask-paginate { }; -# flask-paranoid = callPackage ./python-modules/flask-paranoid { }; + # flask-paranoid = callPackage ./python-modules/flask-paranoid { }; -# flask-principal = callPackage ./python-modules/flask-principal { }; + # flask-principal = callPackage ./python-modules/flask-principal { }; -# flask-pymongo = callPackage ./python-modules/flask-pymongo { }; + # flask-pymongo = callPackage ./python-modules/flask-pymongo { }; -# flask-restful = callPackage ./python-modules/flask-restful { }; + # flask-restful = callPackage ./python-modules/flask-restful { }; -# flask-restx = callPackage ./python-modules/flask-restx { }; + # flask-restx = callPackage ./python-modules/flask-restx { }; -# flask-reverse-proxy-fix = callPackage ./python-modules/flask-reverse-proxy-fix { }; + # flask-reverse-proxy-fix = callPackage ./python-modules/flask-reverse-proxy-fix { }; -# flask-script = callPackage ./python-modules/flask-script { }; + # flask-script = callPackage ./python-modules/flask-script { }; -# flask-seasurf = callPackage ./python-modules/flask-seasurf { }; + # flask-seasurf = callPackage ./python-modules/flask-seasurf { }; -# flask-session = callPackage ./python-modules/flask-session { }; + # flask-session = callPackage ./python-modules/flask-session { }; -# flask-session-captcha = callPackage ./python-modules/flask-session-captcha { }; + # flask-session-captcha = callPackage ./python-modules/flask-session-captcha { }; -# flask-security-too = callPackage ./python-modules/flask-security-too { }; + # flask-security-too = callPackage ./python-modules/flask-security-too { }; -# flask-silk = callPackage ./python-modules/flask-silk { }; + # flask-silk = callPackage ./python-modules/flask-silk { }; -# flask-sock = callPackage ./python-modules/flask-sock { }; + # flask-sock = callPackage ./python-modules/flask-sock { }; -# flask-socketio = callPackage ./python-modules/flask-socketio { }; + # flask-socketio = callPackage ./python-modules/flask-socketio { }; -# flask-sockets = callPackage ./python-modules/flask-sockets { }; + # flask-sockets = callPackage ./python-modules/flask-sockets { }; -# flask-sqlalchemy = callPackage ./python-modules/flask-sqlalchemy { }; + # flask-sqlalchemy = callPackage ./python-modules/flask-sqlalchemy { }; -# flask-sslify = callPackage ./python-modules/flask-sslify { }; + # flask-sslify = callPackage ./python-modules/flask-sslify { }; -# flask-swagger = callPackage ./python-modules/flask-swagger { }; + # flask-swagger = callPackage ./python-modules/flask-swagger { }; -# flask-swagger-ui = callPackage ./python-modules/flask-swagger-ui { }; + # flask-swagger-ui = callPackage ./python-modules/flask-swagger-ui { }; -# flask-talisman = callPackage ./python-modules/flask-talisman { }; + # flask-talisman = callPackage ./python-modules/flask-talisman { }; -# flask-testing = callPackage ./python-modules/flask-testing { }; + # flask-testing = callPackage ./python-modules/flask-testing { }; -# flask-themes2 = callPackage ./python-modules/flask-themes2 { }; + # flask-themes2 = callPackage ./python-modules/flask-themes2 { }; -# flask-versioned = callPackage ./python-modules/flask-versioned { }; + # flask-versioned = callPackage ./python-modules/flask-versioned { }; -# flask-wtf = callPackage ./python-modules/flask-wtf { }; + # flask-wtf = callPackage ./python-modules/flask-wtf { }; -# flatbuffers = callPackage ./python-modules/flatbuffers { -# inherit (pkgs) flatbuffers; -# }; + # flatbuffers = callPackage ./python-modules/flatbuffers { + # inherit (pkgs) flatbuffers; + # }; -# flatdict = callPackage ./python-modules/flatdict { }; + # flatdict = callPackage ./python-modules/flatdict { }; -# flatten-dict = callPackage ./python-modules/flatten-dict { }; + # flatten-dict = callPackage ./python-modules/flatten-dict { }; -# flax = callPackage ./python-modules/flax { }; + # flax = callPackage ./python-modules/flax { }; -# fleep = callPackage ./python-modules/fleep { }; + # fleep = callPackage ./python-modules/fleep { }; -# flet = callPackage ./python-modules/flet { }; + # flet = callPackage ./python-modules/flet { }; -# flet-core = callPackage ./python-modules/flet-core { }; + # flet-core = callPackage ./python-modules/flet-core { }; -# flet-runtime = callPackage ./python-modules/flet-runtime { }; + # flet-runtime = callPackage ./python-modules/flet-runtime { }; -# flexmock = callPackage ./python-modules/flexmock { }; + # flexmock = callPackage ./python-modules/flexmock { }; -# flickrapi = callPackage ./python-modules/flickrapi { }; + # flickrapi = callPackage ./python-modules/flickrapi { }; -# flipr-api = callPackage ./python-modules/flipr-api { }; + # flipr-api = callPackage ./python-modules/flipr-api { }; flit = callPackage ./python-modules/flit { }; flit-core = callPackage ./python-modules/flit-core { }; -# flit-scm = callPackage ./python-modules/flit-scm { }; + # flit-scm = callPackage ./python-modules/flit-scm { }; -# floret = callPackage ./python-modules/floret { }; + # floret = callPackage ./python-modules/floret { }; -# flow-record = callPackage ./python-modules/flow-record { }; + # flow-record = callPackage ./python-modules/flow-record { }; -# flower = callPackage ./python-modules/flower { }; + # flower = callPackage ./python-modules/flower { }; -# flowlogs-reader = callPackage ./python-modules/flowlogs-reader { }; + # flowlogs-reader = callPackage ./python-modules/flowlogs-reader { }; -# fluent-logger = callPackage ./python-modules/fluent-logger { }; + # fluent-logger = callPackage ./python-modules/fluent-logger { }; -# flufl-bounce = callPackage ./python-modules/flufl/bounce.nix { }; + # flufl-bounce = callPackage ./python-modules/flufl/bounce.nix { }; -# flufl-i18n = callPackage ./python-modules/flufl/i18n.nix { }; + # flufl-i18n = callPackage ./python-modules/flufl/i18n.nix { }; -# flufl-lock = callPackage ./python-modules/flufl/lock.nix { }; + # flufl-lock = callPackage ./python-modules/flufl/lock.nix { }; -# flux-led = callPackage ./python-modules/flux-led { }; + # flux-led = callPackage ./python-modules/flux-led { }; -# flyingsquid = callPackage ./python-modules/flyingsquid { }; + # flyingsquid = callPackage ./python-modules/flyingsquid { }; -# flynt = callPackage ./python-modules/flynt { }; + # flynt = callPackage ./python-modules/flynt { }; -# fn = callPackage ./python-modules/fn { }; + # fn = callPackage ./python-modules/fn { }; -# fnv-hash-fast = callPackage ./python-modules/fnv-hash-fast { }; + # fnv-hash-fast = callPackage ./python-modules/fnv-hash-fast { }; -# fnvhash = callPackage ./python-modules/fnvhash { }; + # fnvhash = callPackage ./python-modules/fnvhash { }; -# folium = callPackage ./python-modules/folium { }; + # folium = callPackage ./python-modules/folium { }; -# fontawesomefree = callPackage ./python-modules/fontawesomefree { }; + # fontawesomefree = callPackage ./python-modules/fontawesomefree { }; -# fontbakery = callPackage ./python-modules/fontbakery { }; + # fontbakery = callPackage ./python-modules/fontbakery { }; -# fontfeatures = callPackage ./python-modules/fontfeatures { }; + # fontfeatures = callPackage ./python-modules/fontfeatures { }; -# fontforge = toPythonModule (pkgs.fontforge.override { -# withPython = true; -# inherit python; -# }); + # fontforge = toPythonModule (pkgs.fontforge.override { + # withPython = true; + # inherit python; + # }); -# fontmath = callPackage ./python-modules/fontmath { }; + # fontmath = callPackage ./python-modules/fontmath { }; -# fontparts = callPackage ./python-modules/fontparts { }; + # fontparts = callPackage ./python-modules/fontparts { }; -# fontpens = callPackage ./python-modules/fontpens { }; + # fontpens = callPackage ./python-modules/fontpens { }; -# fonttools = callPackage ./python-modules/fonttools { }; + # fonttools = callPackage ./python-modules/fonttools { }; -# fontmake = callPackage ./python-modules/fontmake { }; + # fontmake = callPackage ./python-modules/fontmake { }; -# font-v = callPackage ./python-modules/font-v { }; + # font-v = callPackage ./python-modules/font-v { }; -# skia-pathops = callPackage ./python-modules/skia-pathops { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL; -# }; + # skia-pathops = callPackage ./python-modules/skia-pathops { + # inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL; + # }; -# oelint-parser = callPackage ./python-modules/oelint-parser { }; + # oelint-parser = callPackage ./python-modules/oelint-parser { }; -# openllm = callPackage ./python-modules/openllm { -# openai-triton = self.openai-triton-cuda; -# }; + # openllm = callPackage ./python-modules/openllm { + # openai-triton = self.openai-triton-cuda; + # }; -# openllm-client = callPackage ./python-modules/openllm-client { }; + # openllm-client = callPackage ./python-modules/openllm-client { }; -# openllm-core = callPackage ./python-modules/openllm-core { }; + # openllm-core = callPackage ./python-modules/openllm-core { }; -# openstep-plist = callPackage ./python-modules/openstep-plist { }; + # openstep-plist = callPackage ./python-modules/openstep-plist { }; -# glyphsets = callPackage ./python-modules/glyphsets { }; + # glyphsets = callPackage ./python-modules/glyphsets { }; -# glyphslib = callPackage ./python-modules/glyphslib { }; + # glyphslib = callPackage ./python-modules/glyphslib { }; -# glyphtools = callPackage ./python-modules/glyphtools { }; + # glyphtools = callPackage ./python-modules/glyphtools { }; -# foobot-async = callPackage ./python-modules/foobot-async { }; + # foobot-async = callPackage ./python-modules/foobot-async { }; -# foolscap = callPackage ./python-modules/foolscap { }; + # foolscap = callPackage ./python-modules/foolscap { }; -# forbiddenfruit = callPackage ./python-modules/forbiddenfruit { }; + # forbiddenfruit = callPackage ./python-modules/forbiddenfruit { }; -# fordpass = callPackage ./python-modules/fordpass { }; + # fordpass = callPackage ./python-modules/fordpass { }; -# forecast-solar = callPackage ./python-modules/forecast-solar { }; + # forecast-solar = callPackage ./python-modules/forecast-solar { }; -# formbox = callPackage ./python-modules/formbox { }; + # formbox = callPackage ./python-modules/formbox { }; -# formulae = callPackage ./python-modules/formulae { }; + # formulae = callPackage ./python-modules/formulae { }; -# fortiosapi = callPackage ./python-modules/fortiosapi { }; + # fortiosapi = callPackage ./python-modules/fortiosapi { }; -# formencode = callPackage ./python-modules/formencode { }; + # formencode = callPackage ./python-modules/formencode { }; -# formulaic = callPackage ./python-modules/formulaic { }; + # formulaic = callPackage ./python-modules/formulaic { }; -# foundationdb71 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb71; }; + # foundationdb71 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb71; }; -# fountains = callPackage ./python-modules/fountains { }; + # fountains = callPackage ./python-modules/fountains { }; -# foxdot = callPackage ./python-modules/foxdot { }; + # foxdot = callPackage ./python-modules/foxdot { }; -# fpdf = callPackage ./python-modules/fpdf { }; + # fpdf = callPackage ./python-modules/fpdf { }; -# fpdf2 = callPackage ./python-modules/fpdf2 { }; + # fpdf2 = callPackage ./python-modules/fpdf2 { }; -# fpylll = callPackage ./python-modules/fpylll { }; + # fpylll = callPackage ./python-modules/fpylll { }; -# fpyutils = callPackage ./python-modules/fpyutils { }; + # fpyutils = callPackage ./python-modules/fpyutils { }; -# fqdn = callPackage ./python-modules/fqdn { }; + # fqdn = callPackage ./python-modules/fqdn { }; -# freebox-api = callPackage ./python-modules/freebox-api { }; + # freebox-api = callPackage ./python-modules/freebox-api { }; -# freetype-py = callPackage ./python-modules/freetype-py { }; + # freetype-py = callPackage ./python-modules/freetype-py { }; freezegun = callPackage ./python-modules/freezegun { }; -# frelatage = callPackage ./python-modules/frelatage { }; + # frelatage = callPackage ./python-modules/frelatage { }; -# frida-python = callPackage ./python-modules/frida-python { }; + # frida-python = callPackage ./python-modules/frida-python { }; -# frigidaire = callPackage ./python-modules/frigidaire { }; + # frigidaire = callPackage ./python-modules/frigidaire { }; -# frilouz = callPackage ./python-modules/frilouz { }; + # frilouz = callPackage ./python-modules/frilouz { }; -# fritzconnection = callPackage ./python-modules/fritzconnection { }; + # fritzconnection = callPackage ./python-modules/fritzconnection { }; -# frozendict = callPackage ./python-modules/frozendict { }; + # frozendict = callPackage ./python-modules/frozendict { }; -# frozenlist = callPackage ./python-modules/frozenlist { }; + # frozenlist = callPackage ./python-modules/frozenlist { }; -# frozenlist2 = callPackage ./python-modules/frozenlist2 { }; + # frozenlist2 = callPackage ./python-modules/frozenlist2 { }; -# fs = callPackage ./python-modules/fs { }; + # fs = callPackage ./python-modules/fs { }; -# fs-s3fs = callPackage ./python-modules/fs-s3fs { }; + # fs-s3fs = callPackage ./python-modules/fs-s3fs { }; -# fschat = callPackage ./python-modules/fschat { }; + # fschat = callPackage ./python-modules/fschat { }; -# fsspec-xrootd = callPackage ./python-modules/fsspec-xrootd { }; + # fsspec-xrootd = callPackage ./python-modules/fsspec-xrootd { }; -# fsspec = callPackage ./python-modules/fsspec { }; + # fsspec = callPackage ./python-modules/fsspec { }; -# fst-pso = callPackage ./python-modules/fst-pso { }; + # fst-pso = callPackage ./python-modules/fst-pso { }; -# ftfy = callPackage ./python-modules/ftfy { }; + # ftfy = callPackage ./python-modules/ftfy { }; -# ftputil = callPackage ./python-modules/ftputil { }; + # ftputil = callPackage ./python-modules/ftputil { }; -# fugashi = callPackage ./python-modules/fugashi { }; + # fugashi = callPackage ./python-modules/fugashi { }; func-timeout = callPackage ./python-modules/func-timeout { }; -# funcparserlib = callPackage ./python-modules/funcparserlib { }; + # funcparserlib = callPackage ./python-modules/funcparserlib { }; -# funcsigs = callPackage ./python-modules/funcsigs { }; + # funcsigs = callPackage ./python-modules/funcsigs { }; -# functiontrace = callPackage ./python-modules/functiontrace { }; + # functiontrace = callPackage ./python-modules/functiontrace { }; -# functools32 = callPackage ./python-modules/functools32 { }; + # functools32 = callPackage ./python-modules/functools32 { }; -# funcy = callPackage ./python-modules/funcy { }; + # funcy = callPackage ./python-modules/funcy { }; -# funsor = callPackage ./python-modules/funsor { }; + # funsor = callPackage ./python-modules/funsor { }; -# furl = callPackage ./python-modules/furl { }; + # furl = callPackage ./python-modules/furl { }; -# furo = callPackage ./python-modules/furo { }; + # furo = callPackage ./python-modules/furo { }; -# fuse = callPackage ./python-modules/fuse-python { -# inherit (pkgs) fuse; -# }; + # fuse = callPackage ./python-modules/fuse-python { + # inherit (pkgs) fuse; + # }; -# fusepy = callPackage ./python-modules/fusepy { }; + # fusepy = callPackage ./python-modules/fusepy { }; -# future = callPackage ./python-modules/future { }; + # future = callPackage ./python-modules/future { }; -# future-fstrings = callPackage ./python-modules/future-fstrings { }; + # future-fstrings = callPackage ./python-modules/future-fstrings { }; -# future-typing = callPackage ./python-modules/future-typing { }; + # future-typing = callPackage ./python-modules/future-typing { }; -# fuzzyfinder = callPackage ./python-modules/fuzzyfinder { }; + # fuzzyfinder = callPackage ./python-modules/fuzzyfinder { }; -# fuzzytm = callPackage ./python-modules/fuzzytm { }; + # fuzzytm = callPackage ./python-modules/fuzzytm { }; -# fuzzywuzzy = callPackage ./python-modules/fuzzywuzzy { }; + # fuzzywuzzy = callPackage ./python-modules/fuzzywuzzy { }; -# fvcore = callPackage ./python-modules/fvcore { }; + # fvcore = callPackage ./python-modules/fvcore { }; -# fvs = callPackage ./python-modules/fvs { }; + # fvs = callPackage ./python-modules/fvs { }; -# fx2 = callPackage ./python-modules/fx2 { }; + # fx2 = callPackage ./python-modules/fx2 { }; -# fyta-cli = callPackage ./python-modules/fyta-cli { }; + # fyta-cli = callPackage ./python-modules/fyta-cli { }; -# g2pkk = callPackage ./python-modules/g2pkk { }; + # g2pkk = callPackage ./python-modules/g2pkk { }; -# galario = toPythonModule (pkgs.galario.override { -# enablePython = true; -# pythonPackages = self; -# }); + # galario = toPythonModule (pkgs.galario.override { + # enablePython = true; + # pythonPackages = self; + # }); -# galois = callPackage ./python-modules/galois { }; + # galois = callPackage ./python-modules/galois { }; -# gamble = callPackage ./python-modules/gamble { }; + # gamble = callPackage ./python-modules/gamble { }; -# gaphas = callPackage ./python-modules/gaphas { }; + # gaphas = callPackage ./python-modules/gaphas { }; -# gardena-bluetooth = callPackage ./python-modules/gardena-bluetooth { }; + # gardena-bluetooth = callPackage ./python-modules/gardena-bluetooth { }; -# garminconnect-aio = callPackage ./python-modules/garminconnect-aio { }; + # garminconnect-aio = callPackage ./python-modules/garminconnect-aio { }; -# garminconnect = callPackage ./python-modules/garminconnect { }; + # garminconnect = callPackage ./python-modules/garminconnect { }; -# garth = callPackage ./python-modules/garth { }; + # garth = callPackage ./python-modules/garth { }; -# gassist-text = callPackage ./python-modules/gassist-text { }; + # gassist-text = callPackage ./python-modules/gassist-text { }; -# gast = callPackage ./python-modules/gast { }; + # gast = callPackage ./python-modules/gast { }; -# gatt = callPackage ./python-modules/gatt { }; + # gatt = callPackage ./python-modules/gatt { }; -# gattlib = callPackage ./python-modules/gattlib { -# inherit (pkgs) bluez glib pkg-config; -# }; + # gattlib = callPackage ./python-modules/gattlib { + # inherit (pkgs) bluez glib pkg-config; + # }; -# gawd = callPackage ./python-modules/gawd { }; + # gawd = callPackage ./python-modules/gawd { }; -# gb-io = callPackage ./python-modules/gb-io { }; + # gb-io = callPackage ./python-modules/gb-io { }; -# gbinder-python = callPackage ./python-modules/gbinder-python { }; + # gbinder-python = callPackage ./python-modules/gbinder-python { }; -# gbulb = callPackage ./python-modules/gbulb { }; + # gbulb = callPackage ./python-modules/gbulb { }; -# gcal-sync = callPackage ./python-modules/gcal-sync { }; + # gcal-sync = callPackage ./python-modules/gcal-sync { }; -# gcodepy = callPackage ./python-modules/gcodepy { }; + # gcodepy = callPackage ./python-modules/gcodepy { }; -# gcovr = callPackage ./python-modules/gcovr { }; + # gcovr = callPackage ./python-modules/gcovr { }; -# gcs-oauth2-boto-plugin = callPackage ./python-modules/gcs-oauth2-boto-plugin { }; + # gcs-oauth2-boto-plugin = callPackage ./python-modules/gcs-oauth2-boto-plugin { }; -# gcsa = callPackage ./python-modules/gcsa { }; + # gcsa = callPackage ./python-modules/gcsa { }; -# gcsfs = callPackage ./python-modules/gcsfs { }; + # gcsfs = callPackage ./python-modules/gcsfs { }; -# gdal = toPythonModule (pkgs.gdal.override { python3 = python; }); + # gdal = toPythonModule (pkgs.gdal.override { python3 = python; }); -# gdata = callPackage ./python-modules/gdata { }; + # gdata = callPackage ./python-modules/gdata { }; -# gdb-pt-dump = callPackage ./python-modules/gdb-pt-dump { }; + # gdb-pt-dump = callPackage ./python-modules/gdb-pt-dump { }; -# gdcm = toPythonModule (pkgs.gdcm.override { -# inherit (self) python; -# enablePython = true; -# }); + # gdcm = toPythonModule (pkgs.gdcm.override { + # inherit (self) python; + # enablePython = true; + # }); -# gdown = callPackage ./python-modules/gdown { }; + # gdown = callPackage ./python-modules/gdown { }; -# ge25519 = callPackage ./python-modules/ge25519 { }; + # ge25519 = callPackage ./python-modules/ge25519 { }; -# geant4 = toPythonModule (pkgs.geant4.override { -# enablePython = true; -# python3 = python; -# }); + # geant4 = toPythonModule (pkgs.geant4.override { + # enablePython = true; + # python3 = python; + # }); -# geeknote = callPackage ./python-modules/geeknote { }; + # geeknote = callPackage ./python-modules/geeknote { }; -# gehomesdk = callPackage ./python-modules/gehomesdk { }; + # gehomesdk = callPackage ./python-modules/gehomesdk { }; -# gekitchen = callPackage ./python-modules/gekitchen { }; + # gekitchen = callPackage ./python-modules/gekitchen { }; -# gekko = callPackage ./python-modules/gekko { }; + # gekko = callPackage ./python-modules/gekko { }; -# gemfileparser = callPackage ./python-modules/gemfileparser { }; + # gemfileparser = callPackage ./python-modules/gemfileparser { }; -# gemfileparser2 = callPackage ./python-modules/gemfileparser2 { }; + # gemfileparser2 = callPackage ./python-modules/gemfileparser2 { }; -# genanki = callPackage ./python-modules/genanki { }; + # genanki = callPackage ./python-modules/genanki { }; -# generic = callPackage ./python-modules/generic { }; + # generic = callPackage ./python-modules/generic { }; -# geniushub-client = callPackage ./python-modules/geniushub-client { }; + # geniushub-client = callPackage ./python-modules/geniushub-client { }; -# genome-collector = callPackage ./python-modules/genome-collector { }; + # genome-collector = callPackage ./python-modules/genome-collector { }; -# genpy = callPackage ./python-modules/genpy { }; + # genpy = callPackage ./python-modules/genpy { }; -# genshi = callPackage ./python-modules/genshi { }; + # genshi = callPackage ./python-modules/genshi { }; -# gensim = callPackage ./python-modules/gensim { }; + # gensim = callPackage ./python-modules/gensim { }; -# gentools = callPackage ./python-modules/gentools { }; + # gentools = callPackage ./python-modules/gentools { }; -# genzshcomp = callPackage ./python-modules/genzshcomp { }; + # genzshcomp = callPackage ./python-modules/genzshcomp { }; -# geoalchemy2 = callPackage ./python-modules/geoalchemy2 { }; + # geoalchemy2 = callPackage ./python-modules/geoalchemy2 { }; -# geocachingapi = callPackage ./python-modules/geocachingapi { }; + # geocachingapi = callPackage ./python-modules/geocachingapi { }; -# geocoder = callPackage ./python-modules/geocoder { }; + # geocoder = callPackage ./python-modules/geocoder { }; -# geographiclib = callPackage ./python-modules/geographiclib { }; + # geographiclib = callPackage ./python-modules/geographiclib { }; -# geoip2 = callPackage ./python-modules/geoip2 { }; + # geoip2 = callPackage ./python-modules/geoip2 { }; -# geoip = callPackage ./python-modules/geoip { -# libgeoip = pkgs.geoip; -# }; + # geoip = callPackage ./python-modules/geoip { + # libgeoip = pkgs.geoip; + # }; -# geojson = callPackage ./python-modules/geojson { }; + # geojson = callPackage ./python-modules/geojson { }; -# geojson-client = callPackage ./python-modules/geojson-client { }; + # geojson-client = callPackage ./python-modules/geojson-client { }; -# geomet = callPackage ./python-modules/geomet { }; + # geomet = callPackage ./python-modules/geomet { }; -# geometric = callPackage ./python-modules/geometric { }; + # geometric = callPackage ./python-modules/geometric { }; -# geopandas = callPackage ./python-modules/geopandas { }; + # geopandas = callPackage ./python-modules/geopandas { }; -# geopy = callPackage ./python-modules/geopy { }; + # geopy = callPackage ./python-modules/geopy { }; -# georss-client = callPackage ./python-modules/georss-client { }; + # georss-client = callPackage ./python-modules/georss-client { }; -# georss-generic-client = callPackage ./python-modules/georss-generic-client { }; + # georss-generic-client = callPackage ./python-modules/georss-generic-client { }; -# georss-ign-sismologia-client = callPackage ./python-modules/georss-ign-sismologia-client { }; + # georss-ign-sismologia-client = callPackage ./python-modules/georss-ign-sismologia-client { }; -# georss-ingv-centro-nazionale-terremoti-client = callPackage ./python-modules/georss-ingv-centro-nazionale-terremoti-client { }; + # georss-ingv-centro-nazionale-terremoti-client = callPackage ./python-modules/georss-ingv-centro-nazionale-terremoti-client { }; -# georss-nrcan-earthquakes-client = callPackage ./python-modules/georss-nrcan-earthquakes-client { }; + # georss-nrcan-earthquakes-client = callPackage ./python-modules/georss-nrcan-earthquakes-client { }; -# georss-qld-bushfire-alert-client = callPackage ./python-modules/georss-qld-bushfire-alert-client { }; + # georss-qld-bushfire-alert-client = callPackage ./python-modules/georss-qld-bushfire-alert-client { }; -# georss-tfs-incidents-client = callPackage ./python-modules/georss-tfs-incidents-client { }; + # georss-tfs-incidents-client = callPackage ./python-modules/georss-tfs-incidents-client { }; -# georss-wa-dfes-client = callPackage ./python-modules/georss-wa-dfes-client { }; + # georss-wa-dfes-client = callPackage ./python-modules/georss-wa-dfes-client { }; -# gerbonara = callPackage ./python-modules/gerbonara { }; + # gerbonara = callPackage ./python-modules/gerbonara { }; -# getjump = callPackage ./python-modules/getjump { }; + # getjump = callPackage ./python-modules/getjump { }; -# getmac = callPackage ./python-modules/getmac { }; + # getmac = callPackage ./python-modules/getmac { }; -# getkey = callPackage ./python-modules/getkey { }; + # getkey = callPackage ./python-modules/getkey { }; -# get-video-properties = callPackage ./python-modules/get-video-properties { }; + # get-video-properties = callPackage ./python-modules/get-video-properties { }; gevent = callPackage ./python-modules/gevent { }; -# geventhttpclient = callPackage ./python-modules/geventhttpclient { }; + # geventhttpclient = callPackage ./python-modules/geventhttpclient { }; -# gevent-socketio = callPackage ./python-modules/gevent-socketio { }; + # gevent-socketio = callPackage ./python-modules/gevent-socketio { }; -# gevent-websocket = callPackage ./python-modules/gevent-websocket { }; + # gevent-websocket = callPackage ./python-modules/gevent-websocket { }; -# gfal2-python = callPackage ./python-modules/gfal2-python { }; + # gfal2-python = callPackage ./python-modules/gfal2-python { }; -# gfal2-util = callPackage ./python-modules/gfal2-util { -# inherit (pkgs) xrootd; -# }; + # gfal2-util = callPackage ./python-modules/gfal2-util { + # inherit (pkgs) xrootd; + # }; -# gflags = callPackage ./python-modules/gflags { }; + # gflags = callPackage ./python-modules/gflags { }; -# gflanguages = callPackage ./python-modules/gflanguages { }; + # gflanguages = callPackage ./python-modules/gflanguages { }; -# gfsubsets = callPackage ./python-modules/gfsubsets { }; + # gfsubsets = callPackage ./python-modules/gfsubsets { }; -# ghapi = callPackage ./python-modules/ghapi { }; + # ghapi = callPackage ./python-modules/ghapi { }; -# ghdiff = callPackage ./python-modules/ghdiff { }; + # ghdiff = callPackage ./python-modules/ghdiff { }; -# ghp-import = callPackage ./python-modules/ghp-import { }; + # ghp-import = callPackage ./python-modules/ghp-import { }; -# ghrepo-stats = callPackage ./python-modules/ghrepo-stats { }; + # ghrepo-stats = callPackage ./python-modules/ghrepo-stats { }; -# gibberish-detector = callPackage ./python-modules/gibberish-detector { }; + # gibberish-detector = callPackage ./python-modules/gibberish-detector { }; -# gidgethub = callPackage ./python-modules/gidgethub { }; + # gidgethub = callPackage ./python-modules/gidgethub { }; -# gin-config = callPackage ./python-modules/gin-config { }; + # gin-config = callPackage ./python-modules/gin-config { }; -# gios = callPackage ./python-modules/gios { }; + # gios = callPackage ./python-modules/gios { }; -# gipc = callPackage ./python-modules/gipc { }; + # gipc = callPackage ./python-modules/gipc { }; -# gistyc = callPackage ./python-modules/gistyc { }; + # gistyc = callPackage ./python-modules/gistyc { }; -# git-annex-adapter = -# callPackage ./python-modules/git-annex-adapter { }; + # git-annex-adapter = + # callPackage ./python-modules/git-annex-adapter { }; -# git-filter-repo = callPackage ./python-modules/git-filter-repo { }; + # git-filter-repo = callPackage ./python-modules/git-filter-repo { }; -# git-revise = callPackage ./python-modules/git-revise { }; + # git-revise = callPackage ./python-modules/git-revise { }; -# git-sweep = callPackage ./python-modules/git-sweep { }; + # git-sweep = callPackage ./python-modules/git-sweep { }; -# git-url-parse = callPackage ./python-modules/git-url-parse { }; + # git-url-parse = callPackage ./python-modules/git-url-parse { }; -# gitdb = callPackage ./python-modules/gitdb { }; + # gitdb = callPackage ./python-modules/gitdb { }; -# githubkit = callPackage ./python-modules/githubkit { }; + # githubkit = callPackage ./python-modules/githubkit { }; -# github-to-sqlite = callPackage ./python-modules/github-to-sqlite { }; + # github-to-sqlite = callPackage ./python-modules/github-to-sqlite { }; -# github-webhook = callPackage ./python-modules/github-webhook { }; + # github-webhook = callPackage ./python-modules/github-webhook { }; -# github3-py = callPackage ./python-modules/github3-py { }; + # github3-py = callPackage ./python-modules/github3-py { }; -# gitignore-parser = callPackage ./python-modules/gitignore-parser { }; + # gitignore-parser = callPackage ./python-modules/gitignore-parser { }; -# gitlike-commands = callPackage ./python-modules/gitlike-commands { }; + # gitlike-commands = callPackage ./python-modules/gitlike-commands { }; -# gitpython = callPackage ./python-modules/gitpython { }; + # gitpython = callPackage ./python-modules/gitpython { }; -# git-versioner = callPackage ./python-modules/git-versioner { }; + # git-versioner = callPackage ./python-modules/git-versioner { }; -# glad = callPackage ./python-modules/glad { }; + # glad = callPackage ./python-modules/glad { }; -# glad2 = callPackage ./python-modules/glad2 { }; + # glad2 = callPackage ./python-modules/glad2 { }; -# glances-api = callPackage ./python-modules/glances-api { }; + # glances-api = callPackage ./python-modules/glances-api { }; -# glcontext = callPackage ./python-modules/glcontext { }; + # glcontext = callPackage ./python-modules/glcontext { }; -# glean-parser = callPackage ./python-modules/glean-parser { }; + # glean-parser = callPackage ./python-modules/glean-parser { }; -# glean-sdk = callPackage ./python-modules/glean-sdk { -# inherit (pkgs) lmdb; -# }; + # glean-sdk = callPackage ./python-modules/glean-sdk { + # inherit (pkgs) lmdb; + # }; -# glfw = callPackage ./python-modules/glfw { }; + # glfw = callPackage ./python-modules/glfw { }; -# glob2 = callPackage ./python-modules/glob2 { }; + # glob2 = callPackage ./python-modules/glob2 { }; -# globre = callPackage ./python-modules/globre { }; + # globre = callPackage ./python-modules/globre { }; -# globus-sdk = callPackage ./python-modules/globus-sdk { }; + # globus-sdk = callPackage ./python-modules/globus-sdk { }; -# glom = callPackage ./python-modules/glom { }; + # glom = callPackage ./python-modules/glom { }; -# glueviz = callPackage ./python-modules/glueviz { }; + # glueviz = callPackage ./python-modules/glueviz { }; -# glymur = callPackage ./python-modules/glymur { }; + # glymur = callPackage ./python-modules/glymur { }; -# gmpy2 = callPackage ./python-modules/gmpy2 { }; + # gmpy2 = callPackage ./python-modules/gmpy2 { }; -# gmpy = callPackage ./python-modules/gmpy { }; + # gmpy = callPackage ./python-modules/gmpy { }; -# gmsh = toPythonModule (callPackage ../applications/science/math/gmsh { -# enablePython = true; -# }); + # gmsh = toPythonModule (callPackage ../applications/science/math/gmsh { + # enablePython = true; + # }); -# gntp = callPackage ./python-modules/gntp { }; + # gntp = callPackage ./python-modules/gntp { }; -# gnureadline = callPackage ./python-modules/gnureadline { }; + # gnureadline = callPackage ./python-modules/gnureadline { }; -# goalzero = callPackage ./python-modules/goalzero { }; + # goalzero = callPackage ./python-modules/goalzero { }; -# gocardless-pro = callPackage ./python-modules/gocardless-pro { }; + # gocardless-pro = callPackage ./python-modules/gocardless-pro { }; -# goobook = callPackage ./python-modules/goobook { }; + # goobook = callPackage ./python-modules/goobook { }; -# goocalendar = callPackage ./python-modules/goocalendar { }; + # goocalendar = callPackage ./python-modules/goocalendar { }; -# goodwe = callPackage ./python-modules/goodwe { }; + # goodwe = callPackage ./python-modules/goodwe { }; -# google = callPackage ./python-modules/google { }; + # google = callPackage ./python-modules/google { }; -# google-ai-generativelanguage = callPackage ./python-modules/google-ai-generativelanguage { }; + # google-ai-generativelanguage = callPackage ./python-modules/google-ai-generativelanguage { }; -# google-api-core = callPackage ./python-modules/google-api-core { }; + # google-api-core = callPackage ./python-modules/google-api-core { }; -# google-api-python-client = callPackage ./python-modules/google-api-python-client { }; + # google-api-python-client = callPackage ./python-modules/google-api-python-client { }; -# googleapis-common-protos = callPackage ./python-modules/googleapis-common-protos { }; + # googleapis-common-protos = callPackage ./python-modules/googleapis-common-protos { }; -# google-auth = callPackage ./python-modules/google-auth { }; + # google-auth = callPackage ./python-modules/google-auth { }; -# google-auth-httplib2 = callPackage ./python-modules/google-auth-httplib2 { }; + # google-auth-httplib2 = callPackage ./python-modules/google-auth-httplib2 { }; -# google-auth-oauthlib = callPackage ./python-modules/google-auth-oauthlib { }; + # google-auth-oauthlib = callPackage ./python-modules/google-auth-oauthlib { }; -# google-cloud-access-context-manager = callPackage ./python-modules/google-cloud-access-context-manager { }; + # google-cloud-access-context-manager = callPackage ./python-modules/google-cloud-access-context-manager { }; -# google-cloud-appengine-logging = callPackage ./python-modules/google-cloud-appengine-logging { }; + # google-cloud-appengine-logging = callPackage ./python-modules/google-cloud-appengine-logging { }; -# google-cloud-artifact-registry = callPackage ./python-modules/google-cloud-artifact-registry { }; + # google-cloud-artifact-registry = callPackage ./python-modules/google-cloud-artifact-registry { }; -# google-cloud-asset = callPackage ./python-modules/google-cloud-asset { }; + # google-cloud-asset = callPackage ./python-modules/google-cloud-asset { }; -# google-cloud-audit-log = callPackage ./python-modules/google-cloud-audit-log { }; + # google-cloud-audit-log = callPackage ./python-modules/google-cloud-audit-log { }; -# google-cloud-automl = callPackage ./python-modules/google-cloud-automl { }; + # google-cloud-automl = callPackage ./python-modules/google-cloud-automl { }; -# google-cloud-bigquery = callPackage ./python-modules/google-cloud-bigquery { }; + # google-cloud-bigquery = callPackage ./python-modules/google-cloud-bigquery { }; -# google-cloud-bigquery-datatransfer = callPackage ./python-modules/google-cloud-bigquery-datatransfer { }; + # google-cloud-bigquery-datatransfer = callPackage ./python-modules/google-cloud-bigquery-datatransfer { }; -# google-cloud-bigquery-logging = callPackage ./python-modules/google-cloud-bigquery-logging { }; + # google-cloud-bigquery-logging = callPackage ./python-modules/google-cloud-bigquery-logging { }; -# google-cloud-bigquery-storage = callPackage ./python-modules/google-cloud-bigquery-storage { }; + # google-cloud-bigquery-storage = callPackage ./python-modules/google-cloud-bigquery-storage { }; -# google-cloud-bigtable = callPackage ./python-modules/google-cloud-bigtable { }; + # google-cloud-bigtable = callPackage ./python-modules/google-cloud-bigtable { }; -# google-cloud-compute = callPackage ./python-modules/google-cloud-compute { }; + # google-cloud-compute = callPackage ./python-modules/google-cloud-compute { }; -# google-cloud-container = callPackage ./python-modules/google-cloud-container { }; + # google-cloud-container = callPackage ./python-modules/google-cloud-container { }; -# google-cloud-core = callPackage ./python-modules/google-cloud-core { }; + # google-cloud-core = callPackage ./python-modules/google-cloud-core { }; -# google-cloud-datacatalog = callPackage ./python-modules/google-cloud-datacatalog { }; + # google-cloud-datacatalog = callPackage ./python-modules/google-cloud-datacatalog { }; -# google-cloud-dataproc = callPackage ./python-modules/google-cloud-dataproc { }; + # google-cloud-dataproc = callPackage ./python-modules/google-cloud-dataproc { }; -# google-cloud-datastore = callPackage ./python-modules/google-cloud-datastore { }; + # google-cloud-datastore = callPackage ./python-modules/google-cloud-datastore { }; -# google-cloud-dlp = callPackage ./python-modules/google-cloud-dlp { }; + # google-cloud-dlp = callPackage ./python-modules/google-cloud-dlp { }; -# google-cloud-dns = callPackage ./python-modules/google-cloud-dns { }; + # google-cloud-dns = callPackage ./python-modules/google-cloud-dns { }; -# google-cloud-error-reporting = callPackage ./python-modules/google-cloud-error-reporting { }; + # google-cloud-error-reporting = callPackage ./python-modules/google-cloud-error-reporting { }; -# google-cloud-firestore = callPackage ./python-modules/google-cloud-firestore { }; + # google-cloud-firestore = callPackage ./python-modules/google-cloud-firestore { }; -# google-cloud-iam = callPackage ./python-modules/google-cloud-iam { }; + # google-cloud-iam = callPackage ./python-modules/google-cloud-iam { }; -# google-cloud-iam-logging = callPackage ./python-modules/google-cloud-iam-logging { }; + # google-cloud-iam-logging = callPackage ./python-modules/google-cloud-iam-logging { }; -# google-cloud-iot = callPackage ./python-modules/google-cloud-iot { }; + # google-cloud-iot = callPackage ./python-modules/google-cloud-iot { }; -# google-cloud-kms = callPackage ./python-modules/google-cloud-kms { }; + # google-cloud-kms = callPackage ./python-modules/google-cloud-kms { }; -# google-cloud-language = callPackage ./python-modules/google-cloud-language { }; + # google-cloud-language = callPackage ./python-modules/google-cloud-language { }; -# google-cloud-logging = callPackage ./python-modules/google-cloud-logging { }; + # google-cloud-logging = callPackage ./python-modules/google-cloud-logging { }; -# google-cloud-monitoring = callPackage ./python-modules/google-cloud-monitoring { }; + # google-cloud-monitoring = callPackage ./python-modules/google-cloud-monitoring { }; -# google-cloud-netapp = callPackage ./python-modules/google-cloud-netapp { }; + # google-cloud-netapp = callPackage ./python-modules/google-cloud-netapp { }; -# google-cloud-org-policy = callPackage ./python-modules/google-cloud-org-policy { }; + # google-cloud-org-policy = callPackage ./python-modules/google-cloud-org-policy { }; -# google-cloud-os-config = callPackage ./python-modules/google-cloud-os-config { }; + # google-cloud-os-config = callPackage ./python-modules/google-cloud-os-config { }; -# google-cloud-pubsub = callPackage ./python-modules/google-cloud-pubsub { }; + # google-cloud-pubsub = callPackage ./python-modules/google-cloud-pubsub { }; -# google-cloud-redis = callPackage ./python-modules/google-cloud-redis { }; + # google-cloud-redis = callPackage ./python-modules/google-cloud-redis { }; -# google-cloud-resource-manager = callPackage ./python-modules/google-cloud-resource-manager { }; + # google-cloud-resource-manager = callPackage ./python-modules/google-cloud-resource-manager { }; -# google-cloud-runtimeconfig = callPackage ./python-modules/google-cloud-runtimeconfig { }; + # google-cloud-runtimeconfig = callPackage ./python-modules/google-cloud-runtimeconfig { }; -# google-cloud-secret-manager = callPackage ./python-modules/google-cloud-secret-manager { }; + # google-cloud-secret-manager = callPackage ./python-modules/google-cloud-secret-manager { }; -# google-cloud-securitycenter = callPackage ./python-modules/google-cloud-securitycenter { }; + # google-cloud-securitycenter = callPackage ./python-modules/google-cloud-securitycenter { }; -# google-cloud-shell = callPackage ./python-modules/google-cloud-shell { }; + # google-cloud-shell = callPackage ./python-modules/google-cloud-shell { }; -# google-cloud-spanner = callPackage ./python-modules/google-cloud-spanner { }; + # google-cloud-spanner = callPackage ./python-modules/google-cloud-spanner { }; -# google-cloud-speech = callPackage ./python-modules/google-cloud-speech { }; + # google-cloud-speech = callPackage ./python-modules/google-cloud-speech { }; -# google-cloud-storage = callPackage ./python-modules/google-cloud-storage { }; + # google-cloud-storage = callPackage ./python-modules/google-cloud-storage { }; -# google-cloud-tasks = callPackage ./python-modules/google-cloud-tasks { }; + # google-cloud-tasks = callPackage ./python-modules/google-cloud-tasks { }; -# google-cloud-testutils = callPackage ./python-modules/google-cloud-testutils { }; + # google-cloud-testutils = callPackage ./python-modules/google-cloud-testutils { }; -# google-cloud-texttospeech = callPackage ./python-modules/google-cloud-texttospeech { }; + # google-cloud-texttospeech = callPackage ./python-modules/google-cloud-texttospeech { }; -# google-cloud-trace = callPackage ./python-modules/google-cloud-trace { }; + # google-cloud-trace = callPackage ./python-modules/google-cloud-trace { }; -# google-cloud-translate = callPackage ./python-modules/google-cloud-translate { }; + # google-cloud-translate = callPackage ./python-modules/google-cloud-translate { }; -# google-cloud-videointelligence = callPackage ./python-modules/google-cloud-videointelligence { }; + # google-cloud-videointelligence = callPackage ./python-modules/google-cloud-videointelligence { }; -# google-cloud-vision = callPackage ./python-modules/google-cloud-vision { }; + # google-cloud-vision = callPackage ./python-modules/google-cloud-vision { }; -# google-cloud-vpc-access = callPackage ./python-modules/google-cloud-vpc-access { }; + # google-cloud-vpc-access = callPackage ./python-modules/google-cloud-vpc-access { }; -# google-cloud-webrisk = callPackage ./python-modules/google-cloud-webrisk { }; + # google-cloud-webrisk = callPackage ./python-modules/google-cloud-webrisk { }; -# google-cloud-websecurityscanner = callPackage ./python-modules/google-cloud-websecurityscanner { }; + # google-cloud-websecurityscanner = callPackage ./python-modules/google-cloud-websecurityscanner { }; -# google-cloud-workflows = callPackage ./python-modules/google-cloud-workflows { }; + # google-cloud-workflows = callPackage ./python-modules/google-cloud-workflows { }; -# google-cloud-workstations = callPackage ./python-modules/google-cloud-workstations { }; + # google-cloud-workstations = callPackage ./python-modules/google-cloud-workstations { }; -# google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { }; + # google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { }; -# google-crc32c = callPackage ./python-modules/google-crc32c { -# inherit (pkgs) crc32c; -# }; + # google-crc32c = callPackage ./python-modules/google-crc32c { + # inherit (pkgs) crc32c; + # }; -# google-generativeai = callPackage ./python-modules/google-generativeai { }; + # google-generativeai = callPackage ./python-modules/google-generativeai { }; -# google-i18n-address = callPackage ./python-modules/google-i18n-address { }; + # google-i18n-address = callPackage ./python-modules/google-i18n-address { }; -# google-nest-sdm = callPackage ./python-modules/google-nest-sdm { }; + # google-nest-sdm = callPackage ./python-modules/google-nest-sdm { }; -# googlemaps = callPackage ./python-modules/googlemaps { }; + # googlemaps = callPackage ./python-modules/googlemaps { }; -# google-pasta = callPackage ./python-modules/google-pasta { }; + # google-pasta = callPackage ./python-modules/google-pasta { }; -# google-re2 = callPackage ./python-modules/google-re2 { }; + # google-re2 = callPackage ./python-modules/google-re2 { }; -# google-reauth = callPackage ./python-modules/google-reauth { }; + # google-reauth = callPackage ./python-modules/google-reauth { }; -# google-resumable-media = callPackage ./python-modules/google-resumable-media { }; + # google-resumable-media = callPackage ./python-modules/google-resumable-media { }; -# google-search-results = callPackage ./python-modules/google-search-results { }; + # google-search-results = callPackage ./python-modules/google-search-results { }; -# googletrans = callPackage ./python-modules/googletrans { }; + # googletrans = callPackage ./python-modules/googletrans { }; -# gotailwind = callPackage ./python-modules/gotailwind { }; + # gotailwind = callPackage ./python-modules/gotailwind { }; -# gotenberg-client = callPackage ./python-modules/gotenberg-client { }; + # gotenberg-client = callPackage ./python-modules/gotenberg-client { }; -# gorilla = callPackage ./python-modules/gorilla { }; + # gorilla = callPackage ./python-modules/gorilla { }; -# govee-ble = callPackage ./python-modules/govee-ble { }; + # govee-ble = callPackage ./python-modules/govee-ble { }; -# govee-led-wez = callPackage ./python-modules/govee-led-wez { }; + # govee-led-wez = callPackage ./python-modules/govee-led-wez { }; -# govee-local-api = callPackage ./python-modules/govee-local-api { }; + # govee-local-api = callPackage ./python-modules/govee-local-api { }; -# goveelights = callPackage ./python-modules/goveelights { }; + # goveelights = callPackage ./python-modules/goveelights { }; -# gpapi = callPackage ./python-modules/gpapi { }; + # gpapi = callPackage ./python-modules/gpapi { }; -# gpaw = callPackage ./python-modules/gpaw { }; + # gpaw = callPackage ./python-modules/gpaw { }; -# gpib-ctypes = callPackage ./python-modules/gpib-ctypes { }; + # gpib-ctypes = callPackage ./python-modules/gpib-ctypes { }; -# gpiozero = callPackage ./python-modules/gpiozero { }; + # gpiozero = callPackage ./python-modules/gpiozero { }; -# gplaycli = callPackage ./python-modules/gplaycli { }; + # gplaycli = callPackage ./python-modules/gplaycli { }; -# gpgme = toPythonModule (pkgs.gpgme.override { -# pythonSupport = true; -# python3 = python; -# }); + # gpgme = toPythonModule (pkgs.gpgme.override { + # pythonSupport = true; + # python3 = python; + # }); -# gphoto2 = callPackage ./python-modules/gphoto2 { }; + # gphoto2 = callPackage ./python-modules/gphoto2 { }; -# gprof2dot = callPackage ./python-modules/gprof2dot { -# inherit (pkgs) graphviz; -# }; + # gprof2dot = callPackage ./python-modules/gprof2dot { + # inherit (pkgs) graphviz; + # }; -# gps3 = callPackage ./python-modules/gps3 { }; + # gps3 = callPackage ./python-modules/gps3 { }; -# gpsoauth = callPackage ./python-modules/gpsoauth { }; + # gpsoauth = callPackage ./python-modules/gpsoauth { }; -# gpuctypes = callPackage ./python-modules/gpuctypes { }; + # gpuctypes = callPackage ./python-modules/gpuctypes { }; -# gpustat = callPackage ./python-modules/gpustat { }; + # gpustat = callPackage ./python-modules/gpustat { }; -# gpxpy = callPackage ./python-modules/gpxpy { }; + # gpxpy = callPackage ./python-modules/gpxpy { }; -# gpy = callPackage ./python-modules/gpy { }; + # gpy = callPackage ./python-modules/gpy { }; -# gpytorch = callPackage ./python-modules/gpytorch { }; + # gpytorch = callPackage ./python-modules/gpytorch { }; -# gpt-2-simple = callPackage ./python-modules/gpt-2-simple { }; + # gpt-2-simple = callPackage ./python-modules/gpt-2-simple { }; -# gptcache = callPackage ./python-modules/gptcache { }; + # gptcache = callPackage ./python-modules/gptcache { }; -# gql = callPackage ./python-modules/gql { }; + # gql = callPackage ./python-modules/gql { }; -# grad-cam = callPackage ./python-modules/grad-cam { }; + # grad-cam = callPackage ./python-modules/grad-cam { }; -# gradient = callPackage ./python-modules/gradient { }; + # gradient = callPackage ./python-modules/gradient { }; -# gradient-utils = callPackage ./python-modules/gradient-utils { }; + # gradient-utils = callPackage ./python-modules/gradient-utils { }; -# gradient-statsd = callPackage ./python-modules/gradient-statsd { }; + # gradient-statsd = callPackage ./python-modules/gradient-statsd { }; -# gradio = callPackage ./python-modules/gradio { }; + # gradio = callPackage ./python-modules/gradio { }; -# gradio-client = callPackage ./python-modules/gradio/client.nix { }; + # gradio-client = callPackage ./python-modules/gradio/client.nix { }; -# gradio-pdf = callPackage ./python-modules/gradio-pdf { }; + # gradio-pdf = callPackage ./python-modules/gradio-pdf { }; -# grafanalib = callPackage ./python-modules/grafanalib/default.nix { }; + # grafanalib = callPackage ./python-modules/grafanalib/default.nix { }; -# grammalecte = callPackage ./python-modules/grammalecte { }; + # grammalecte = callPackage ./python-modules/grammalecte { }; -# grandalf = callPackage ./python-modules/grandalf { }; + # grandalf = callPackage ./python-modules/grandalf { }; -# grapheme = callPackage ./python-modules/grapheme { }; + # grapheme = callPackage ./python-modules/grapheme { }; -# graphite-web = callPackage ./python-modules/graphite-web { }; + # graphite-web = callPackage ./python-modules/graphite-web { }; -# graphene = callPackage ./python-modules/graphene { }; + # graphene = callPackage ./python-modules/graphene { }; -# graphene-django = callPackage ./python-modules/graphene-django { }; + # graphene-django = callPackage ./python-modules/graphene-django { }; -# graphlib-backport = callPackage ./python-modules/graphlib-backport { }; + # graphlib-backport = callPackage ./python-modules/graphlib-backport { }; -# graphqlclient= callPackage ./python-modules/graphqlclient { }; + # graphqlclient= callPackage ./python-modules/graphqlclient { }; -# graphql-core = callPackage ./python-modules/graphql-core { }; + # graphql-core = callPackage ./python-modules/graphql-core { }; -# graphql-relay = callPackage ./python-modules/graphql-relay { }; + # graphql-relay = callPackage ./python-modules/graphql-relay { }; -# graphql-server-core = callPackage ./python-modules/graphql-server-core { }; + # graphql-server-core = callPackage ./python-modules/graphql-server-core { }; -# graphql-subscription-manager = callPackage ./python-modules/graphql-subscription-manager { }; + # graphql-subscription-manager = callPackage ./python-modules/graphql-subscription-manager { }; -# graph-tool = callPackage ./python-modules/graph-tool { }; + # graph-tool = callPackage ./python-modules/graph-tool { }; -# graphtage = callPackage ./python-modules/graphtage { }; + # graphtage = callPackage ./python-modules/graphtage { }; -# graphviz = callPackage ./python-modules/graphviz { }; + # graphviz = callPackage ./python-modules/graphviz { }; -# grappelli-safe = callPackage ./python-modules/grappelli-safe { }; + # grappelli-safe = callPackage ./python-modules/grappelli-safe { }; -# graspologic = callPackage ./python-modules/graspologic { }; + # graspologic = callPackage ./python-modules/graspologic { }; -# greatfet = callPackage ./python-modules/greatfet { }; + # greatfet = callPackage ./python-modules/greatfet { }; -# greeclimate = callPackage ./python-modules/greeclimate { }; + # greeclimate = callPackage ./python-modules/greeclimate { }; -# green = callPackage ./python-modules/green { }; + # green = callPackage ./python-modules/green { }; -# greeneye-monitor = callPackage ./python-modules/greeneye-monitor { }; + # greeneye-monitor = callPackage ./python-modules/greeneye-monitor { }; -# # built-in for pypi + # # built-in for pypi greenlet = if isPyPy then null else callPackage ./python-modules/greenlet { }; -# grequests = callPackage ./python-modules/grequests { }; + # grequests = callPackage ./python-modules/grequests { }; -# gremlinpython = callPackage ./python-modules/gremlinpython { }; + # gremlinpython = callPackage ./python-modules/gremlinpython { }; -# greynoise = callPackage ./python-modules/greynoise { }; + # greynoise = callPackage ./python-modules/greynoise { }; -# growattserver = callPackage ./python-modules/growattserver { }; + # growattserver = callPackage ./python-modules/growattserver { }; -# gridnet = callPackage ./python-modules/gridnet { }; + # gridnet = callPackage ./python-modules/gridnet { }; -# griffe = callPackage ./python-modules/griffe { }; + # griffe = callPackage ./python-modules/griffe { }; -# grip = callPackage ./python-modules/grip { }; + # grip = callPackage ./python-modules/grip { }; -# groestlcoin-hash = callPackage ./python-modules/groestlcoin-hash { }; + # groestlcoin-hash = callPackage ./python-modules/groestlcoin-hash { }; -# grpc-google-iam-v1 = callPackage ./python-modules/grpc-google-iam-v1 { }; + # grpc-google-iam-v1 = callPackage ./python-modules/grpc-google-iam-v1 { }; -# grpc-interceptor = callPackage ./python-modules/grpc-interceptor { }; + # grpc-interceptor = callPackage ./python-modules/grpc-interceptor { }; -# grpcio = callPackage ./python-modules/grpcio { }; + # grpcio = callPackage ./python-modules/grpcio { }; -# grpcio-channelz = callPackage ./python-modules/grpcio-channelz { }; + # grpcio-channelz = callPackage ./python-modules/grpcio-channelz { }; -# grpcio-gcp = callPackage ./python-modules/grpcio-gcp { }; + # grpcio-gcp = callPackage ./python-modules/grpcio-gcp { }; -# grpcio-health-checking = callPackage ./python-modules/grpcio-health-checking { }; + # grpcio-health-checking = callPackage ./python-modules/grpcio-health-checking { }; -# grpcio-reflection = callPackage ./python-modules/grpcio-reflection { }; + # grpcio-reflection = callPackage ./python-modules/grpcio-reflection { }; -# grpcio-status = callPackage ./python-modules/grpcio-status { }; + # grpcio-status = callPackage ./python-modules/grpcio-status { }; -# grpcio-tools = callPackage ./python-modules/grpcio-tools { }; + # grpcio-tools = callPackage ./python-modules/grpcio-tools { }; -# grpcio-testing = callPackage ./python-modules/grpcio-testing { }; + # grpcio-testing = callPackage ./python-modules/grpcio-testing { }; -# grpclib = callPackage ./python-modules/grpclib { }; + # grpclib = callPackage ./python-modules/grpclib { }; -# gruut = callPackage ./python-modules/gruut { }; + # gruut = callPackage ./python-modules/gruut { }; -# gruut-ipa = callPackage ./python-modules/gruut-ipa { -# inherit (pkgs) espeak; -# }; + # gruut-ipa = callPackage ./python-modules/gruut-ipa { + # inherit (pkgs) espeak; + # }; -# gsd = callPackage ./python-modules/gsd { }; + # gsd = callPackage ./python-modules/gsd { }; -# gsm0338 = callPackage ./python-modules/gsm0338 { }; + # gsm0338 = callPackage ./python-modules/gsm0338 { }; -# gspread = callPackage ./python-modules/gspread { }; + # gspread = callPackage ./python-modules/gspread { }; -# gssapi = callPackage ./python-modules/gssapi { -# inherit (pkgs) krb5; -# inherit (pkgs.darwin.apple_sdk.frameworks) GSS; -# }; + # gssapi = callPackage ./python-modules/gssapi { + # inherit (pkgs) krb5; + # inherit (pkgs.darwin.apple_sdk.frameworks) GSS; + # }; -# gst-python = callPackage ./python-modules/gst-python { -# # inherit (pkgs) meson won't work because it won't be spliced -# inherit (pkgs.buildPackages) meson; -# }; + # gst-python = callPackage ./python-modules/gst-python { + # # inherit (pkgs) meson won't work because it won't be spliced + # inherit (pkgs.buildPackages) meson; + # }; -# gtfs-realtime-bindings = callPackage ./python-modules/gtfs-realtime-bindings { }; + # gtfs-realtime-bindings = callPackage ./python-modules/gtfs-realtime-bindings { }; -# gto = callPackage ./python-modules/gto { }; + # gto = callPackage ./python-modules/gto { }; -# gtts = callPackage ./python-modules/gtts { }; + # gtts = callPackage ./python-modules/gtts { }; -# gtts-token = callPackage ./python-modules/gtts-token { }; + # gtts-token = callPackage ./python-modules/gtts-token { }; -# guessit = callPackage ./python-modules/guessit { }; + # guessit = callPackage ./python-modules/guessit { }; -# guestfs = callPackage ./python-modules/guestfs { -# qemu = pkgs.qemu; -# }; + # guestfs = callPackage ./python-modules/guestfs { + # qemu = pkgs.qemu; + # }; -# gudhi = callPackage ./python-modules/gudhi { }; + # gudhi = callPackage ./python-modules/gudhi { }; -# guidance = callPackage ./python-modules/guidance { }; + # guidance = callPackage ./python-modules/guidance { }; -# gumath = callPackage ./python-modules/gumath { }; + # gumath = callPackage ./python-modules/gumath { }; -# gunicorn = callPackage ./python-modules/gunicorn { }; + # gunicorn = callPackage ./python-modules/gunicorn { }; -# guppy3 = callPackage ./python-modules/guppy3 { }; + # guppy3 = callPackage ./python-modules/guppy3 { }; -# gurobipy = callPackage ./python-modules/gurobipy { }; + # gurobipy = callPackage ./python-modules/gurobipy { }; -# guzzle-sphinx-theme = callPackage ./python-modules/guzzle-sphinx-theme { }; + # guzzle-sphinx-theme = callPackage ./python-modules/guzzle-sphinx-theme { }; -# gvm-tools = callPackage ./python-modules/gvm-tools { }; + # gvm-tools = callPackage ./python-modules/gvm-tools { }; -# gviz-api = callPackage ./python-modules/gviz-api { }; + # gviz-api = callPackage ./python-modules/gviz-api { }; -# gym = callPackage ./python-modules/gym { }; + # gym = callPackage ./python-modules/gym { }; -# gym-notices = callPackage ./python-modules/gym-notices { }; + # gym-notices = callPackage ./python-modules/gym-notices { }; -# gymnasium = callPackage ./python-modules/gymnasium { }; + # gymnasium = callPackage ./python-modules/gymnasium { }; -# gyp = callPackage ./python-modules/gyp { }; + # gyp = callPackage ./python-modules/gyp { }; -# h11 = callPackage ./python-modules/h11 { }; + # h11 = callPackage ./python-modules/h11 { }; -# h2 = callPackage ./python-modules/h2 { }; + # h2 = callPackage ./python-modules/h2 { }; -# h3 = callPackage ./python-modules/h3 { -# inherit (pkgs) h3; -# }; + # h3 = callPackage ./python-modules/h3 { + # inherit (pkgs) h3; + # }; -# h5io = callPackage ./python-modules/h5io { }; + # h5io = callPackage ./python-modules/h5io { }; -# h5netcdf = callPackage ./python-modules/h5netcdf { }; + # h5netcdf = callPackage ./python-modules/h5netcdf { }; -# h5py = callPackage ./python-modules/h5py { }; + # h5py = callPackage ./python-modules/h5py { }; -# h5py-mpi = self.h5py.override { -# hdf5 = pkgs.hdf5-mpi; -# }; + # h5py-mpi = self.h5py.override { + # hdf5 = pkgs.hdf5-mpi; + # }; -# habanero = callPackage ./python-modules/habanero { }; + # habanero = callPackage ./python-modules/habanero { }; -# habluetooth = callPackage ./python-modules/habluetooth { }; + # habluetooth = callPackage ./python-modules/habluetooth { }; -# habitipy = callPackage ./python-modules/habitipy { }; + # habitipy = callPackage ./python-modules/habitipy { }; -# hachoir = callPackage ./python-modules/hachoir { }; + # hachoir = callPackage ./python-modules/hachoir { }; -# hacking = callPackage ./python-modules/hacking { }; + # hacking = callPackage ./python-modules/hacking { }; -# hdate = callPackage ./python-modules/hdate { }; + # hdate = callPackage ./python-modules/hdate { }; -# hdf5plugin = callPackage ./python-modules/hdf5plugin { }; + # hdf5plugin = callPackage ./python-modules/hdf5plugin { }; -# ha-ffmpeg = callPackage ./python-modules/ha-ffmpeg { }; + # ha-ffmpeg = callPackage ./python-modules/ha-ffmpeg { }; -# ha-mqtt-discoverable = callPackage ./python-modules/ha-mqtt-discoverable { }; + # ha-mqtt-discoverable = callPackage ./python-modules/ha-mqtt-discoverable { }; -# ha-philipsjs = callPackage ./python-modules/ha-philipsjs{ }; + # ha-philipsjs = callPackage ./python-modules/ha-philipsjs{ }; -# hahomematic = callPackage ./python-modules/hahomematic { }; + # hahomematic = callPackage ./python-modules/hahomematic { }; -# halo = callPackage ./python-modules/halo { }; + # halo = callPackage ./python-modules/halo { }; -# halohome = callPackage ./python-modules/halohome { }; + # halohome = callPackage ./python-modules/halohome { }; -# handout = callPackage ./python-modules/handout { }; + # handout = callPackage ./python-modules/handout { }; -# hap-python = callPackage ./python-modules/hap-python { }; + # hap-python = callPackage ./python-modules/hap-python { }; -# hass-nabucasa = callPackage ./python-modules/hass-nabucasa { }; + # hass-nabucasa = callPackage ./python-modules/hass-nabucasa { }; -# hassil = callPackage ./python-modules/hassil { }; + # hassil = callPackage ./python-modules/hassil { }; -# hatasmota = callPackage ./python-modules/hatasmota { }; + # hatasmota = callPackage ./python-modules/hatasmota { }; hatchling = callPackage ./python-modules/hatchling { }; -# hatch-fancy-pypi-readme = callPackage ./python-modules/hatch-fancy-pypi-readme { }; + # hatch-fancy-pypi-readme = callPackage ./python-modules/hatch-fancy-pypi-readme { }; -# hatch-jupyter-builder = callPackage ./python-modules/hatch-jupyter-builder { }; + # hatch-jupyter-builder = callPackage ./python-modules/hatch-jupyter-builder { }; hatch-vcs = callPackage ./python-modules/hatch-vcs { }; -# hatch-nodejs-version = callPackage ./python-modules/hatch-nodejs-version { }; + # hatch-nodejs-version = callPackage ./python-modules/hatch-nodejs-version { }; -# hatch-requirements-txt = callPackage ./python-modules/hatch-requirements-txt { }; + # hatch-requirements-txt = callPackage ./python-modules/hatch-requirements-txt { }; -# haversine = callPackage ./python-modules/haversine { }; + # haversine = callPackage ./python-modules/haversine { }; -# hawkauthlib = callPackage ./python-modules/hawkauthlib { }; + # hawkauthlib = callPackage ./python-modules/hawkauthlib { }; -# hcloud = callPackage ./python-modules/hcloud { }; + # hcloud = callPackage ./python-modules/hcloud { }; -# hcs-utils = callPackage ./python-modules/hcs-utils { }; + # hcs-utils = callPackage ./python-modules/hcs-utils { }; -# hdbscan = callPackage ./python-modules/hdbscan { }; + # hdbscan = callPackage ./python-modules/hdbscan { }; -# hdfs = callPackage ./python-modules/hdfs { }; + # hdfs = callPackage ./python-modules/hdfs { }; -# hdmedians = callPackage ./python-modules/hdmedians { }; + # hdmedians = callPackage ./python-modules/hdmedians { }; -# headerparser = callPackage ./python-modules/headerparser { }; + # headerparser = callPackage ./python-modules/headerparser { }; -# heapdict = callPackage ./python-modules/heapdict { }; + # heapdict = callPackage ./python-modules/heapdict { }; -# heatshrink2 = callPackage ./python-modules/heatshrink2 { }; + # heatshrink2 = callPackage ./python-modules/heatshrink2 { }; -# heatzypy = callPackage ./python-modules/heatzypy { }; + # heatzypy = callPackage ./python-modules/heatzypy { }; -# help2man = callPackage ./python-modules/help2man { }; + # help2man = callPackage ./python-modules/help2man { }; -# helpdev = callPackage ./python-modules/helpdev { }; + # helpdev = callPackage ./python-modules/helpdev { }; -# helper = callPackage ./python-modules/helper { }; + # helper = callPackage ./python-modules/helper { }; -# hepmc3 = toPythonModule (pkgs.hepmc3.override { -# inherit python; -# }); + # hepmc3 = toPythonModule (pkgs.hepmc3.override { + # inherit python; + # }); -# hepunits = callPackage ./python-modules/hepunits { }; + # hepunits = callPackage ./python-modules/hepunits { }; -# here-routing = callPackage ./python-modules/here-routing { }; + # here-routing = callPackage ./python-modules/here-routing { }; -# here-transit = callPackage ./python-modules/here-transit { }; + # here-transit = callPackage ./python-modules/here-transit { }; -# herepy = callPackage ./python-modules/herepy { }; + # herepy = callPackage ./python-modules/herepy { }; -# hetzner = callPackage ./python-modules/hetzner { }; + # hetzner = callPackage ./python-modules/hetzner { }; -# heudiconv = callPackage ./python-modules/heudiconv { }; + # heudiconv = callPackage ./python-modules/heudiconv { }; -# hexbytes = callPackage ./python-modules/hexbytes { }; + # hexbytes = callPackage ./python-modules/hexbytes { }; -# hexdump = callPackage ./python-modules/hexdump { }; + # hexdump = callPackage ./python-modules/hexdump { }; -# hfst = callPackage ./python-modules/hfst { }; + # hfst = callPackage ./python-modules/hfst { }; -# hg-commitsigs = callPackage ./python-modules/hg-commitsigs { }; + # hg-commitsigs = callPackage ./python-modules/hg-commitsigs { }; -# hg-evolve = callPackage ./python-modules/hg-evolve { }; + # hg-evolve = callPackage ./python-modules/hg-evolve { }; -# hg-git = callPackage ./python-modules/hg-git { }; + # hg-git = callPackage ./python-modules/hg-git { }; -# hickle = callPackage ./python-modules/hickle { }; + # hickle = callPackage ./python-modules/hickle { }; -# highdicom = callPackage ./python-modules/highdicom { }; + # highdicom = callPackage ./python-modules/highdicom { }; -# hid = callPackage ./python-modules/hid { -# inherit (pkgs) hidapi; -# }; + # hid = callPackage ./python-modules/hid { + # inherit (pkgs) hidapi; + # }; -# hidapi = callPackage ./python-modules/hidapi { -# inherit (pkgs) udev libusb1; -# }; + # hidapi = callPackage ./python-modules/hidapi { + # inherit (pkgs) udev libusb1; + # }; -# hid-parser = callPackage ./python-modules/hid-parser { }; + # hid-parser = callPackage ./python-modules/hid-parser { }; -# hieroglyph = callPackage ./python-modules/hieroglyph { }; + # hieroglyph = callPackage ./python-modules/hieroglyph { }; -# hijri-converter = callPackage ./python-modules/hijri-converter { }; + # hijri-converter = callPackage ./python-modules/hijri-converter { }; -# hikari = callPackage ./python-modules/hikari { }; + # hikari = callPackage ./python-modules/hikari { }; -# hikvision = callPackage ./python-modules/hikvision { }; + # hikvision = callPackage ./python-modules/hikvision { }; -# hiredis = callPackage ./python-modules/hiredis { }; + # hiredis = callPackage ./python-modules/hiredis { }; -# hiro = callPackage ./python-modules/hiro { }; + # hiro = callPackage ./python-modules/hiro { }; -# hishel = callPackage ./python-modules/hishel { }; + # hishel = callPackage ./python-modules/hishel { }; -# hist = callPackage ./python-modules/hist { }; + # hist = callPackage ./python-modules/hist { }; -# histoprint = callPackage ./python-modules/histoprint { }; + # histoprint = callPackage ./python-modules/histoprint { }; -# hiyapyco = callPackage ./python-modules/hiyapyco { }; + # hiyapyco = callPackage ./python-modules/hiyapyco { }; -# hjson = callPackage ./python-modules/hjson { }; + # hjson = callPackage ./python-modules/hjson { }; -# hkavr = callPackage ./python-modules/hkavr { }; + # hkavr = callPackage ./python-modules/hkavr { }; -# hkdf = callPackage ./python-modules/hkdf { }; + # hkdf = callPackage ./python-modules/hkdf { }; -# hledger-utils = callPackage ./python-modules/hledger-utils { }; + # hledger-utils = callPackage ./python-modules/hledger-utils { }; -# hlk-sw16 = callPackage ./python-modules/hlk-sw16 { }; + # hlk-sw16 = callPackage ./python-modules/hlk-sw16 { }; -# hnswlib = callPackage ./python-modules/hnswlib { -# inherit (pkgs) hnswlib; -# }; + # hnswlib = callPackage ./python-modules/hnswlib { + # inherit (pkgs) hnswlib; + # }; -# hmmlearn = callPackage ./python-modules/hmmlearn { }; + # hmmlearn = callPackage ./python-modules/hmmlearn { }; -# hocr-tools = callPackage ./python-modules/hocr-tools { }; + # hocr-tools = callPackage ./python-modules/hocr-tools { }; -# hole = callPackage ./python-modules/hole { }; + # hole = callPackage ./python-modules/hole { }; -# holidays = callPackage ./python-modules/holidays { }; + # holidays = callPackage ./python-modules/holidays { }; -# hologram = callPackage ./python-modules/hologram { }; + # hologram = callPackage ./python-modules/hologram { }; -# holoviews = callPackage ./python-modules/holoviews { }; + # holoviews = callPackage ./python-modules/holoviews { }; -# home-assistant-bluetooth = callPackage ./python-modules/home-assistant-bluetooth { }; + # home-assistant-bluetooth = callPackage ./python-modules/home-assistant-bluetooth { }; -# home-assistant-chip-clusters = callPackage ./python-modules/home-assistant-chip-clusters { }; + # home-assistant-chip-clusters = callPackage ./python-modules/home-assistant-chip-clusters { }; -# home-assistant-chip-core = callPackage ./python-modules/home-assistant-chip-core { }; + # home-assistant-chip-core = callPackage ./python-modules/home-assistant-chip-core { }; -# homeassistant-stubs = callPackage ../servers/home-assistant/stubs.nix { }; + # homeassistant-stubs = callPackage ../servers/home-assistant/stubs.nix { }; -# homeconnect = callPackage ./python-modules/homeconnect { }; + # homeconnect = callPackage ./python-modules/homeconnect { }; -# homematicip = callPackage ./python-modules/homematicip { }; + # homematicip = callPackage ./python-modules/homematicip { }; -# homepluscontrol = callPackage ./python-modules/homepluscontrol { }; + # homepluscontrol = callPackage ./python-modules/homepluscontrol { }; -# hoomd-blue = toPythonModule (callPackage ./python-modules/hoomd-blue { -# inherit python; -# }); + # hoomd-blue = toPythonModule (callPackage ./python-modules/hoomd-blue { + # inherit python; + # }); -# hopcroftkarp = callPackage ./python-modules/hopcroftkarp { }; + # hopcroftkarp = callPackage ./python-modules/hopcroftkarp { }; -# horizon-eda = callPackage ./python-modules/horizon-eda { -# inherit (pkgs) horizon-eda mesa; -# }; + # horizon-eda = callPackage ./python-modules/horizon-eda { + # inherit (pkgs) horizon-eda mesa; + # }; -# howdoi = callPackage ./python-modules/howdoi { }; + # howdoi = callPackage ./python-modules/howdoi { }; -# hpack = callPackage ./python-modules/hpack { }; + # hpack = callPackage ./python-modules/hpack { }; -# hpccm = callPackage ./python-modules/hpccm { }; + # hpccm = callPackage ./python-modules/hpccm { }; -# hpp-fcl = toPythonModule (pkgs.hpp-fcl.override { -# pythonSupport = true; -# python3Packages = self; -# }); + # hpp-fcl = toPythonModule (pkgs.hpp-fcl.override { + # pythonSupport = true; + # python3Packages = self; + # }); -# hs-dbus-signature = callPackage ./python-modules/hs-dbus-signature { }; + # hs-dbus-signature = callPackage ./python-modules/hs-dbus-signature { }; -# hsaudiotag3k = callPackage ./python-modules/hsaudiotag3k { }; + # hsaudiotag3k = callPackage ./python-modules/hsaudiotag3k { }; -# hsh = callPackage ./python-modules/hsh { }; + # hsh = callPackage ./python-modules/hsh { }; -# hsluv = callPackage ./python-modules/hsluv { }; + # hsluv = callPackage ./python-modules/hsluv { }; -# hstspreload = callPackage ./python-modules/hstspreload { }; + # hstspreload = callPackage ./python-modules/hstspreload { }; -# html2image = callPackage ./python-modules/html2image { }; + # html2image = callPackage ./python-modules/html2image { }; -# html2text = callPackage ./python-modules/html2text { }; + # html2text = callPackage ./python-modules/html2text { }; html5lib = callPackage ./python-modules/html5lib { }; -# html5tagger = callPackage ./python-modules/html5tagger { }; + # html5tagger = callPackage ./python-modules/html5tagger { }; -# html5-parser = callPackage ./python-modules/html5-parser { }; + # html5-parser = callPackage ./python-modules/html5-parser { }; -# htmldate = callPackage ./python-modules/htmldate { }; + # htmldate = callPackage ./python-modules/htmldate { }; -# htmllaundry = callPackage ./python-modules/htmllaundry { }; + # htmllaundry = callPackage ./python-modules/htmllaundry { }; -# htmllistparse = callPackage ./python-modules/htmllistparse { }; + # htmllistparse = callPackage ./python-modules/htmllistparse { }; -# htmlmin = callPackage ./python-modules/htmlmin { }; + # htmlmin = callPackage ./python-modules/htmlmin { }; -# html-sanitizer = callPackage ./python-modules/html-sanitizer { }; + # html-sanitizer = callPackage ./python-modules/html-sanitizer { }; -# html-tag-names = callPackage ./python-modules/html-tag-names { }; + # html-tag-names = callPackage ./python-modules/html-tag-names { }; -# html-text = callPackage ./python-modules/html-text { }; + # html-text = callPackage ./python-modules/html-text { }; -# html-void-elements = callPackage ./python-modules/html-void-elements { }; + # html-void-elements = callPackage ./python-modules/html-void-elements { }; -# htseq = callPackage ./python-modules/htseq { }; + # htseq = callPackage ./python-modules/htseq { }; -# httmock = callPackage ./python-modules/httmock { }; + # httmock = callPackage ./python-modules/httmock { }; -# httpagentparser = callPackage ./python-modules/httpagentparser { }; + # httpagentparser = callPackage ./python-modules/httpagentparser { }; -# httpauth = callPackage ./python-modules/httpauth { }; + # httpauth = callPackage ./python-modules/httpauth { }; -# httpbin = callPackage ./python-modules/httpbin { }; + # httpbin = callPackage ./python-modules/httpbin { }; -# httpcore = callPackage ./python-modules/httpcore { }; + # httpcore = callPackage ./python-modules/httpcore { }; -# httpie = callPackage ./python-modules/httpie { }; + # httpie = callPackage ./python-modules/httpie { }; -# http-ece = callPackage ./python-modules/http-ece { }; + # http-ece = callPackage ./python-modules/http-ece { }; -# httpie-ntlm = callPackage ./python-modules/httpie-ntlm { }; + # httpie-ntlm = callPackage ./python-modules/httpie-ntlm { }; -# httplib2 = callPackage ./python-modules/httplib2 { }; + # httplib2 = callPackage ./python-modules/httplib2 { }; -# http-message-signatures = callPackage ./python-modules/http-message-signatures { }; + # http-message-signatures = callPackage ./python-modules/http-message-signatures { }; -# http-parser = callPackage ./python-modules/http-parser { }; + # http-parser = callPackage ./python-modules/http-parser { }; -# http-sf = callPackage ./python-modules/http-sf { }; + # http-sf = callPackage ./python-modules/http-sf { }; -# http-sfv = callPackage ./python-modules/http-sfv { }; + # http-sfv = callPackage ./python-modules/http-sfv { }; -# httpretty = callPackage ./python-modules/httpretty { }; + # httpretty = callPackage ./python-modules/httpretty { }; -# httpserver = callPackage ./python-modules/httpserver { }; + # httpserver = callPackage ./python-modules/httpserver { }; -# httpsig = callPackage ./python-modules/httpsig { }; + # httpsig = callPackage ./python-modules/httpsig { }; -# httptools = callPackage ./python-modules/httptools { }; + # httptools = callPackage ./python-modules/httptools { }; -# httpx = callPackage ./python-modules/httpx { }; + # httpx = callPackage ./python-modules/httpx { }; -# httpx-auth = callPackage ./python-modules/httpx-auth { }; + # httpx-auth = callPackage ./python-modules/httpx-auth { }; -# httpx-ntlm = callPackage ./python-modules/httpx-ntlm { }; + # httpx-ntlm = callPackage ./python-modules/httpx-ntlm { }; -# httpx-socks = callPackage ./python-modules/httpx-socks { }; + # httpx-socks = callPackage ./python-modules/httpx-socks { }; -# httpx-sse = callPackage ./python-modules/httpx-sse { }; + # httpx-sse = callPackage ./python-modules/httpx-sse { }; -# huawei-lte-api = callPackage ./python-modules/huawei-lte-api { }; + # huawei-lte-api = callPackage ./python-modules/huawei-lte-api { }; -# huey = callPackage ./python-modules/huey { }; + # huey = callPackage ./python-modules/huey { }; -# hug = callPackage ./python-modules/hug { }; + # hug = callPackage ./python-modules/hug { }; -# huggingface-hub = callPackage ./python-modules/huggingface-hub { }; + # huggingface-hub = callPackage ./python-modules/huggingface-hub { }; -# huisbaasje-client = callPackage ./python-modules/huisbaasje-client { }; + # huisbaasje-client = callPackage ./python-modules/huisbaasje-client { }; -# humanfriendly = callPackage ./python-modules/humanfriendly { }; + # humanfriendly = callPackage ./python-modules/humanfriendly { }; -# humanize = callPackage ./python-modules/humanize { }; + # humanize = callPackage ./python-modules/humanize { }; -# human-readable = callPackage ./python-modules/human-readable { }; + # human-readable = callPackage ./python-modules/human-readable { }; -# humblewx = callPackage ./python-modules/humblewx { }; + # humblewx = callPackage ./python-modules/humblewx { }; -# hupper = callPackage ./python-modules/hupper { }; + # hupper = callPackage ./python-modules/hupper { }; -# hurry-filesize = callPackage ./python-modules/hurry-filesize { }; + # hurry-filesize = callPackage ./python-modules/hurry-filesize { }; -# huum = callPackage ./python-modules/huum { }; + # huum = callPackage ./python-modules/huum { }; -# hvac = callPackage ./python-modules/hvac { }; + # hvac = callPackage ./python-modules/hvac { }; -# hvplot = callPackage ./python-modules/hvplot { }; + # hvplot = callPackage ./python-modules/hvplot { }; -# hwdata = callPackage ./python-modules/hwdata { }; + # hwdata = callPackage ./python-modules/hwdata { }; -# hwi = callPackage ./python-modules/hwi { }; + # hwi = callPackage ./python-modules/hwi { }; -# hy = callPackage ./python-modules/hy { }; + # hy = callPackage ./python-modules/hy { }; -# hydra-core = callPackage ./python-modules/hydra-core { }; + # hydra-core = callPackage ./python-modules/hydra-core { }; -# hydra-check = callPackage ./python-modules/hydra-check { }; + # hydra-check = callPackage ./python-modules/hydra-check { }; -# hydrawiser = callPackage ./python-modules/hydrawiser { }; + # hydrawiser = callPackage ./python-modules/hydrawiser { }; -# hydrus-api = callPackage ./python-modules/hydrus-api { }; + # hydrus-api = callPackage ./python-modules/hydrus-api { }; -# hypchat = callPackage ./python-modules/hypchat { }; + # hypchat = callPackage ./python-modules/hypchat { }; -# hypercorn = callPackage ./python-modules/hypercorn { }; + # hypercorn = callPackage ./python-modules/hypercorn { }; -# hyperframe = callPackage ./python-modules/hyperframe { }; + # hyperframe = callPackage ./python-modules/hyperframe { }; -# hyperscan = callPackage ./python-modules/hyperscan { }; + # hyperscan = callPackage ./python-modules/hyperscan { }; -# hyperion-py = callPackage ./python-modules/hyperion-py { }; + # hyperion-py = callPackage ./python-modules/hyperion-py { }; -# hyperlink = callPackage ./python-modules/hyperlink { }; + # hyperlink = callPackage ./python-modules/hyperlink { }; -# hyperopt = callPackage ./python-modules/hyperopt { }; + # hyperopt = callPackage ./python-modules/hyperopt { }; -# hyperpyyaml = callPackage ./python-modules/hyperpyyaml { }; + # hyperpyyaml = callPackage ./python-modules/hyperpyyaml { }; -# hypothesis-auto = callPackage ./python-modules/hypothesis-auto { }; + # hypothesis-auto = callPackage ./python-modules/hypothesis-auto { }; hypothesis = callPackage ./python-modules/hypothesis { }; -# hypothesmith = callPackage ./python-modules/hypothesmith { }; + # hypothesmith = callPackage ./python-modules/hypothesmith { }; -# hyppo = callPackage ./python-modules/hyppo { }; + # hyppo = callPackage ./python-modules/hyppo { }; -# hyrule = callPackage ./python-modules/hyrule { }; + # hyrule = callPackage ./python-modules/hyrule { }; -# i2c-tools = callPackage ./python-modules/i2c-tools { -# inherit (pkgs) i2c-tools; -# }; + # i2c-tools = callPackage ./python-modules/i2c-tools { + # inherit (pkgs) i2c-tools; + # }; -# i2csense = callPackage ./python-modules/i2csense { }; + # i2csense = callPackage ./python-modules/i2csense { }; -# i3ipc = callPackage ./python-modules/i3ipc { }; + # i3ipc = callPackage ./python-modules/i3ipc { }; -# i3-py = callPackage ./python-modules/i3-py { }; + # i3-py = callPackage ./python-modules/i3-py { }; -# iammeter = callPackage ./python-modules/iammeter { }; + # iammeter = callPackage ./python-modules/iammeter { }; -# iapws = callPackage ./python-modules/iapws { }; + # iapws = callPackage ./python-modules/iapws { }; -# iaqualink = callPackage ./python-modules/iaqualink { }; + # iaqualink = callPackage ./python-modules/iaqualink { }; -# ibeacon-ble = callPackage ./python-modules/ibeacon-ble { }; + # ibeacon-ble = callPackage ./python-modules/ibeacon-ble { }; -# ibis = callPackage ./python-modules/ibis { }; + # ibis = callPackage ./python-modules/ibis { }; -# ibis-framework = callPackage ./python-modules/ibis-framework { }; + # ibis-framework = callPackage ./python-modules/ibis-framework { }; -# ibm-cloud-sdk-core = callPackage ./python-modules/ibm-cloud-sdk-core { }; + # ibm-cloud-sdk-core = callPackage ./python-modules/ibm-cloud-sdk-core { }; -# ibm-watson = callPackage ./python-modules/ibm-watson { }; + # ibm-watson = callPackage ./python-modules/ibm-watson { }; -# ical = callPackage ./python-modules/ical { }; + # ical = callPackage ./python-modules/ical { }; -# icalendar = callPackage ./python-modules/icalendar { }; + # icalendar = callPackage ./python-modules/icalendar { }; -# icalevents = callPackage ./python-modules/icalevents { }; + # icalevents = callPackage ./python-modules/icalevents { }; -# icecream = callPackage ./python-modules/icecream { }; + # icecream = callPackage ./python-modules/icecream { }; -# iceportal = callPackage ./python-modules/iceportal { }; + # iceportal = callPackage ./python-modules/iceportal { }; -# icmplib = callPackage ./python-modules/icmplib { }; + # icmplib = callPackage ./python-modules/icmplib { }; -# icnsutil = callPackage ./python-modules/icnsutil { }; + # icnsutil = callPackage ./python-modules/icnsutil { }; -# ics = callPackage ./python-modules/ics { }; + # ics = callPackage ./python-modules/ics { }; -# idasen = callPackage ./python-modules/idasen { }; + # idasen = callPackage ./python-modules/idasen { }; -# icoextract = callPackage ./python-modules/icoextract { }; + # icoextract = callPackage ./python-modules/icoextract { }; -# icontract = callPackage ./python-modules/icontract { }; + # icontract = callPackage ./python-modules/icontract { }; -# id = callPackage ./python-modules/id { }; + # id = callPackage ./python-modules/id { }; -# identify = callPackage ./python-modules/identify { }; + # identify = callPackage ./python-modules/identify { }; idna = callPackage ./python-modules/idna { }; -# idna-ssl = callPackage ./python-modules/idna-ssl { }; + # idna-ssl = callPackage ./python-modules/idna-ssl { }; -# ifaddr = callPackage ./python-modules/ifaddr { }; + # ifaddr = callPackage ./python-modules/ifaddr { }; -# ifconfig-parser = callPackage ./python-modules/ifconfig-parser { }; + # ifconfig-parser = callPackage ./python-modules/ifconfig-parser { }; -# ifcopenshell = callPackage ./python-modules/ifcopenshell { }; + # ifcopenshell = callPackage ./python-modules/ifcopenshell { }; -# ignite = callPackage ./python-modules/ignite { }; + # ignite = callPackage ./python-modules/ignite { }; -# igraph = callPackage ./python-modules/igraph { -# inherit (pkgs) igraph; -# }; + # igraph = callPackage ./python-modules/igraph { + # inherit (pkgs) igraph; + # }; -# ihm = callPackage ./python-modules/ihm { }; + # ihm = callPackage ./python-modules/ihm { }; -# iisignature = callPackage ./python-modules/iisignature { }; + # iisignature = callPackage ./python-modules/iisignature { }; -# ijson = callPackage ./python-modules/ijson { }; + # ijson = callPackage ./python-modules/ijson { }; -# ilua = callPackage ./python-modules/ilua { }; + # ilua = callPackage ./python-modules/ilua { }; -# imagecodecs-lite = callPackage ./python-modules/imagecodecs-lite { }; + # imagecodecs-lite = callPackage ./python-modules/imagecodecs-lite { }; -# imagecorruptions = callPackage ./python-modules/imagecorruptions { }; + # imagecorruptions = callPackage ./python-modules/imagecorruptions { }; -# imagededup = callPackage ./python-modules/imagededup { }; + # imagededup = callPackage ./python-modules/imagededup { }; -# imagehash = callPackage ./python-modules/imagehash { }; + # imagehash = callPackage ./python-modules/imagehash { }; -# imageio = callPackage ./python-modules/imageio { }; + # imageio = callPackage ./python-modules/imageio { }; -# imageio-ffmpeg = callPackage ./python-modules/imageio-ffmpeg { }; + # imageio-ffmpeg = callPackage ./python-modules/imageio-ffmpeg { }; -# image-diff = callPackage ./python-modules/image-diff { }; + # image-diff = callPackage ./python-modules/image-diff { }; -# image-go-nord = callPackage ./python-modules/image-go-nord { }; + # image-go-nord = callPackage ./python-modules/image-go-nord { }; imagesize = callPackage ./python-modules/imagesize { }; -# imantics = callPackage ./python-modules/imantics { }; + # imantics = callPackage ./python-modules/imantics { }; -# imapclient = callPackage ./python-modules/imapclient { }; + # imapclient = callPackage ./python-modules/imapclient { }; -# imaplib2 = callPackage ./python-modules/imaplib2 { }; + # imaplib2 = callPackage ./python-modules/imaplib2 { }; -# imap-tools = callPackage ./python-modules/imap-tools { }; + # imap-tools = callPackage ./python-modules/imap-tools { }; -# imbalanced-learn = callPackage ./python-modules/imbalanced-learn { }; + # imbalanced-learn = callPackage ./python-modules/imbalanced-learn { }; -# img2pdf = callPackage ./python-modules/img2pdf { }; + # img2pdf = callPackage ./python-modules/img2pdf { }; -# imgcat = callPackage ./python-modules/imgcat { }; + # imgcat = callPackage ./python-modules/imgcat { }; -# imgdiff = callPackage ./python-modules/imgdiff { }; + # imgdiff = callPackage ./python-modules/imgdiff { }; -# imgsize = callPackage ./python-modules/imgsize { }; + # imgsize = callPackage ./python-modules/imgsize { }; -# imgtool = callPackage ./python-modules/imgtool { }; + # imgtool = callPackage ./python-modules/imgtool { }; -# imia = callPackage ./python-modules/imia { }; + # imia = callPackage ./python-modules/imia { }; -# iminuit = callPackage ./python-modules/iminuit { }; + # iminuit = callPackage ./python-modules/iminuit { }; -# immutabledict = callPackage ./python-modules/immutabledict { }; + # immutabledict = callPackage ./python-modules/immutabledict { }; -# immutables = callPackage ./python-modules/immutables { }; + # immutables = callPackage ./python-modules/immutables { }; -# impacket = callPackage ./python-modules/impacket { }; + # impacket = callPackage ./python-modules/impacket { }; -# import-expression = callPackage ./python-modules/import-expression { }; + # import-expression = callPackage ./python-modules/import-expression { }; -# importlab = callPackage ./python-modules/importlab { }; + # importlab = callPackage ./python-modules/importlab { }; importlib-metadata = callPackage ./python-modules/importlib-metadata { }; -# importlib-resources = callPackage ./python-modules/importlib-resources { }; + # importlib-resources = callPackage ./python-modules/importlib-resources { }; -# importmagic = callPackage ./python-modules/importmagic { }; + # importmagic = callPackage ./python-modules/importmagic { }; -# imread = callPackage ./python-modules/imread { -# inherit (pkgs) libjpeg libpng libtiff libwebp; -# }; + # imread = callPackage ./python-modules/imread { + # inherit (pkgs) libjpeg libpng libtiff libwebp; + # }; -# imutils = callPackage ./python-modules/imutils { }; + # imutils = callPackage ./python-modules/imutils { }; -# in-n-out = callPackage ./python-modules/in-n-out { }; + # in-n-out = callPackage ./python-modules/in-n-out { }; -# in-place = callPackage ./python-modules/in-place { }; + # in-place = callPackage ./python-modules/in-place { }; -# incomfort-client = callPackage ./python-modules/incomfort-client { }; + # incomfort-client = callPackage ./python-modules/incomfort-client { }; -# incremental = callPackage ./python-modules/incremental { }; + # incremental = callPackage ./python-modules/incremental { }; -# indexed-bzip2 = callPackage ./python-modules/indexed-bzip2 { }; + # indexed-bzip2 = callPackage ./python-modules/indexed-bzip2 { }; -# indexed-gzip = callPackage ./python-modules/indexed-gzip { inherit (pkgs) zlib; }; + # indexed-gzip = callPackage ./python-modules/indexed-gzip { inherit (pkgs) zlib; }; -# indexed-zstd = callPackage ./python-modules/indexed-zstd { inherit (pkgs) zstd; }; + # indexed-zstd = callPackage ./python-modules/indexed-zstd { inherit (pkgs) zstd; }; -# infinity = callPackage ./python-modules/infinity { }; + # infinity = callPackage ./python-modules/infinity { }; -# inflect = callPackage ./python-modules/inflect { }; + # inflect = callPackage ./python-modules/inflect { }; -# inflection = callPackage ./python-modules/inflection { }; + # inflection = callPackage ./python-modules/inflection { }; -# influxdb = callPackage ./python-modules/influxdb { }; + # influxdb = callPackage ./python-modules/influxdb { }; -# influxdb-client = callPackage ./python-modules/influxdb-client { }; + # influxdb-client = callPackage ./python-modules/influxdb-client { }; -# influxdb3-python = callPackage ./python-modules/influxdb3-python { }; + # influxdb3-python = callPackage ./python-modules/influxdb3-python { }; -# inform = callPackage ./python-modules/inform { }; + # inform = callPackage ./python-modules/inform { }; iniconfig = callPackage ./python-modules/iniconfig { }; -# inifile = callPackage ./python-modules/inifile { }; + # inifile = callPackage ./python-modules/inifile { }; -# iniparse = callPackage ./python-modules/iniparse { }; + # iniparse = callPackage ./python-modules/iniparse { }; -# injector = callPackage ./python-modules/injector { }; + # injector = callPackage ./python-modules/injector { }; -# inkbird-ble = callPackage ./python-modules/inkbird-ble { }; + # inkbird-ble = callPackage ./python-modules/inkbird-ble { }; -# inkex = callPackage ./python-modules/inkex { }; + # inkex = callPackage ./python-modules/inkex { }; -# inlinestyler = callPackage ./python-modules/inlinestyler { }; + # inlinestyler = callPackage ./python-modules/inlinestyler { }; -# inotify = callPackage ./python-modules/inotify { }; + # inotify = callPackage ./python-modules/inotify { }; -# inotify-simple = callPackage ./python-modules/inotify-simple { }; + # inotify-simple = callPackage ./python-modules/inotify-simple { }; -# inotifyrecursive = callPackage ./python-modules/inotifyrecursive { }; + # inotifyrecursive = callPackage ./python-modules/inotifyrecursive { }; -# inquirer = callPackage ./python-modules/inquirer { }; + # inquirer = callPackage ./python-modules/inquirer { }; -# inquirerpy = callPackage ./python-modules/inquirerpy { }; + # inquirerpy = callPackage ./python-modules/inquirerpy { }; -# inscriptis = callPackage ./python-modules/inscriptis { }; + # inscriptis = callPackage ./python-modules/inscriptis { }; -# insegel = callPackage ./python-modules/insegel { }; + # insegel = callPackage ./python-modules/insegel { }; -# insightface = callPackage ./python-modules/insightface { }; + # insightface = callPackage ./python-modules/insightface { }; installer = callPackage ./python-modules/installer { }; -# insteon-frontend-home-assistant = callPackage ./python-modules/insteon-frontend-home-assistant { }; + # insteon-frontend-home-assistant = callPackage ./python-modules/insteon-frontend-home-assistant { }; -# instructor = callPackage ./python-modules/instructor { }; + # instructor = callPackage ./python-modules/instructor { }; -# intake = callPackage ./python-modules/intake { }; + # intake = callPackage ./python-modules/intake { }; -# intake-parquet = callPackage ./python-modules/intake-parquet { }; + # intake-parquet = callPackage ./python-modules/intake-parquet { }; -# intbitset = callPackage ./python-modules/intbitset { }; + # intbitset = callPackage ./python-modules/intbitset { }; -# intelhex = callPackage ./python-modules/intelhex { }; + # intelhex = callPackage ./python-modules/intelhex { }; -# intellifire4py = callPackage ./python-modules/intellifire4py { }; + # intellifire4py = callPackage ./python-modules/intellifire4py { }; -# intensity-normalization = callPackage ./python-modules/intensity-normalization { }; + # intensity-normalization = callPackage ./python-modules/intensity-normalization { }; -# interegular = callPackage ./python-modules/interegular { }; + # interegular = callPackage ./python-modules/interegular { }; -# interface-meta = callPackage ./python-modules/interface-meta { }; + # interface-meta = callPackage ./python-modules/interface-meta { }; -# internetarchive = callPackage ./python-modules/internetarchive { }; + # internetarchive = callPackage ./python-modules/internetarchive { }; -# interruptingcow = callPackage ./python-modules/interruptingcow { }; + # interruptingcow = callPackage ./python-modules/interruptingcow { }; -# intervaltree = callPackage ./python-modules/intervaltree { }; + # intervaltree = callPackage ./python-modules/intervaltree { }; -# into-dbus-python = callPackage ./python-modules/into-dbus-python { }; + # into-dbus-python = callPackage ./python-modules/into-dbus-python { }; -# invisible-watermark = callPackage ./python-modules/invisible-watermark { }; + # invisible-watermark = callPackage ./python-modules/invisible-watermark { }; -# invocations = callPackage ./python-modules/invocations { }; + # invocations = callPackage ./python-modules/invocations { }; -# invoke = callPackage ./python-modules/invoke { }; + # invoke = callPackage ./python-modules/invoke { }; -# iocsearcher = callPackage ./python-modules/iocsearcher { }; + # iocsearcher = callPackage ./python-modules/iocsearcher { }; -# iodata = callPackage ./python-modules/iodata { }; + # iodata = callPackage ./python-modules/iodata { }; -# iocapture = callPackage ./python-modules/iocapture { }; + # iocapture = callPackage ./python-modules/iocapture { }; -# iocextract = callPackage ./python-modules/iocextract { }; + # iocextract = callPackage ./python-modules/iocextract { }; -# ionhash = callPackage ./python-modules/ionhash { }; + # ionhash = callPackage ./python-modules/ionhash { }; -# ionoscloud = callPackage ./python-modules/ionoscloud { }; + # ionoscloud = callPackage ./python-modules/ionoscloud { }; -# iopath = callPackage ./python-modules/iopath { }; + # iopath = callPackage ./python-modules/iopath { }; -# iotawattpy = callPackage ./python-modules/iotawattpy { }; + # iotawattpy = callPackage ./python-modules/iotawattpy { }; -# iowait = callPackage ./python-modules/iowait { }; + # iowait = callPackage ./python-modules/iowait { }; -# ipadic = callPackage ./python-modules/ipadic { }; + # ipadic = callPackage ./python-modules/ipadic { }; -# ipaddr = callPackage ./python-modules/ipaddr { }; + # ipaddr = callPackage ./python-modules/ipaddr { }; -# ipdb = callPackage ./python-modules/ipdb { }; + # ipdb = callPackage ./python-modules/ipdb { }; -# ipdbplugin = callPackage ./python-modules/ipdbplugin { }; + # ipdbplugin = callPackage ./python-modules/ipdbplugin { }; -# ipfshttpclient = callPackage ./python-modules/ipfshttpclient { }; + # ipfshttpclient = callPackage ./python-modules/ipfshttpclient { }; -# i-pi = callPackage ./python-modules/i-pi { }; + # i-pi = callPackage ./python-modules/i-pi { }; -# iptools = callPackage ./python-modules/iptools { }; + # iptools = callPackage ./python-modules/iptools { }; -# ipwhl = callPackage ./python-modules/ipwhl { }; + # ipwhl = callPackage ./python-modules/ipwhl { }; -# ipwhois = callPackage ./python-modules/ipwhois { }; + # ipwhois = callPackage ./python-modules/ipwhois { }; -# ipy = callPackage ./python-modules/ipy { }; + # ipy = callPackage ./python-modules/ipy { }; -# ipycanvas = callPackage ./python-modules/ipycanvas { }; + # ipycanvas = callPackage ./python-modules/ipycanvas { }; -# ipydatawidgets = callPackage ./python-modules/ipydatawidgets { }; + # ipydatawidgets = callPackage ./python-modules/ipydatawidgets { }; -# ipynbname = callPackage ./python-modules/ipynbname { }; + # ipynbname = callPackage ./python-modules/ipynbname { }; -# ipyniivue = callPackage ./python-modules/ipyniivue { }; + # ipyniivue = callPackage ./python-modules/ipyniivue { }; -# ipykernel = callPackage ./python-modules/ipykernel { }; + # ipykernel = callPackage ./python-modules/ipykernel { }; -# ipymarkup = callPackage ./python-modules/ipymarkup { }; + # ipymarkup = callPackage ./python-modules/ipymarkup { }; -# ipympl = callPackage ./python-modules/ipympl { }; + # ipympl = callPackage ./python-modules/ipympl { }; -# ipyparallel = callPackage ./python-modules/ipyparallel { }; + # ipyparallel = callPackage ./python-modules/ipyparallel { }; -# ipytablewidgets = callPackage ./python-modules/ipytablewidgets { }; + # ipytablewidgets = callPackage ./python-modules/ipytablewidgets { }; -# ipython-genutils = callPackage ./python-modules/ipython-genutils { }; + # ipython-genutils = callPackage ./python-modules/ipython-genutils { }; -# ipython = callPackage ./python-modules/ipython { }; + # ipython = callPackage ./python-modules/ipython { }; -# ipython-sql = callPackage ./python-modules/ipython-sql { }; + # ipython-sql = callPackage ./python-modules/ipython-sql { }; -# ipyvue = callPackage ./python-modules/ipyvue { }; + # ipyvue = callPackage ./python-modules/ipyvue { }; -# ipyvuetify = callPackage ./python-modules/ipyvuetify { }; + # ipyvuetify = callPackage ./python-modules/ipyvuetify { }; -# ipywidgets = callPackage ./python-modules/ipywidgets { }; + # ipywidgets = callPackage ./python-modules/ipywidgets { }; -# ipyxact = callPackage ./python-modules/ipyxact { }; + # ipyxact = callPackage ./python-modules/ipyxact { }; -# irc = callPackage ./python-modules/irc { }; + # irc = callPackage ./python-modules/irc { }; -# ircrobots = callPackage ./python-modules/ircrobots { }; + # ircrobots = callPackage ./python-modules/ircrobots { }; -# ircstates = callPackage ./python-modules/ircstates { }; + # ircstates = callPackage ./python-modules/ircstates { }; -# irctokens = callPackage ./python-modules/irctokens { }; + # irctokens = callPackage ./python-modules/irctokens { }; -# isbnlib = callPackage ./python-modules/isbnlib { }; + # isbnlib = callPackage ./python-modules/isbnlib { }; -# islpy = callPackage ./python-modules/islpy { }; + # islpy = callPackage ./python-modules/islpy { }; -# iso3166 = callPackage ./python-modules/iso3166 { }; + # iso3166 = callPackage ./python-modules/iso3166 { }; -# ismartgate = callPackage ./python-modules/ismartgate { }; + # ismartgate = callPackage ./python-modules/ismartgate { }; -# iso-639 = callPackage ./python-modules/iso-639 { }; + # iso-639 = callPackage ./python-modules/iso-639 { }; -# iso4217 = callPackage ./python-modules/iso4217 { }; + # iso4217 = callPackage ./python-modules/iso4217 { }; -# iso8601 = callPackage ./python-modules/iso8601 { }; + # iso8601 = callPackage ./python-modules/iso8601 { }; -# isodate = callPackage ./python-modules/isodate { }; + # isodate = callPackage ./python-modules/isodate { }; -# isoduration = callPackage ./python-modules/isoduration { }; + # isoduration = callPackage ./python-modules/isoduration { }; -# isort = callPackage ./python-modules/isort { }; + # isort = callPackage ./python-modules/isort { }; -# isosurfaces = callPackage ./python-modules/isosurfaces { }; + # isosurfaces = callPackage ./python-modules/isosurfaces { }; -# isounidecode = callPackage ./python-modules/isounidecode { }; + # isounidecode = callPackage ./python-modules/isounidecode { }; -# isoweek = callPackage ./python-modules/isoweek { }; + # isoweek = callPackage ./python-modules/isoweek { }; -# itanium-demangler = callPackage ./python-modules/itanium-demangler { }; + # itanium-demangler = callPackage ./python-modules/itanium-demangler { }; -# item-synchronizer = callPackage ./python-modules/item-synchronizer { }; + # item-synchronizer = callPackage ./python-modules/item-synchronizer { }; -# itemadapter = callPackage ./python-modules/itemadapter { }; + # itemadapter = callPackage ./python-modules/itemadapter { }; -# itemdb = callPackage ./python-modules/itemdb { }; + # itemdb = callPackage ./python-modules/itemdb { }; -# itemloaders = callPackage ./python-modules/itemloaders { }; + # itemloaders = callPackage ./python-modules/itemloaders { }; -# iteration-utilities = callPackage ./python-modules/iteration-utilities { }; + # iteration-utilities = callPackage ./python-modules/iteration-utilities { }; -# iterative-telemetry = callPackage ./python-modules/iterative-telemetry { }; + # iterative-telemetry = callPackage ./python-modules/iterative-telemetry { }; -# iterm2 = callPackage ./python-modules/iterm2 { }; + # iterm2 = callPackage ./python-modules/iterm2 { }; -# itsdangerous = callPackage ./python-modules/itsdangerous { }; + # itsdangerous = callPackage ./python-modules/itsdangerous { }; -# itunespy = callPackage ./python-modules/itunespy { }; + # itunespy = callPackage ./python-modules/itunespy { }; -# itypes = callPackage ./python-modules/itypes { }; + # itypes = callPackage ./python-modules/itypes { }; -# iwlib = callPackage ./python-modules/iwlib { }; + # iwlib = callPackage ./python-modules/iwlib { }; -# j2cli = callPackage ./python-modules/j2cli { }; + # j2cli = callPackage ./python-modules/j2cli { }; -# jaconv = callPackage ./python-modules/jaconv { }; + # jaconv = callPackage ./python-modules/jaconv { }; -# jaeger-client = callPackage ./python-modules/jaeger-client { }; + # jaeger-client = callPackage ./python-modules/jaeger-client { }; -# jamo = callPackage ./python-modules/jamo { }; + # jamo = callPackage ./python-modules/jamo { }; -# janus = callPackage ./python-modules/janus { }; + # janus = callPackage ./python-modules/janus { }; -# jaraco-abode = callPackage ./python-modules/jaraco-abode { }; + # jaraco-abode = callPackage ./python-modules/jaraco-abode { }; -# jaraco-classes = callPackage ./python-modules/jaraco-classes { }; + # jaraco-classes = callPackage ./python-modules/jaraco-classes { }; -# jaraco-collections = callPackage ./python-modules/jaraco-collections { }; + # jaraco-collections = callPackage ./python-modules/jaraco-collections { }; -# jaraco-email = callPackage ./python-modules/jaraco-email { }; + # jaraco-email = callPackage ./python-modules/jaraco-email { }; -# jaraco-context = callPackage ./python-modules/jaraco-context { }; + # jaraco-context = callPackage ./python-modules/jaraco-context { }; -# jaraco-functools = callPackage ./python-modules/jaraco-functools { }; + # jaraco-functools = callPackage ./python-modules/jaraco-functools { }; jaraco-itertools = callPackage ./python-modules/jaraco-itertools { }; -# jaraco-logging = callPackage ./python-modules/jaraco-logging { }; + # jaraco-logging = callPackage ./python-modules/jaraco-logging { }; -# jaraco-net = callPackage ./python-modules/jaraco-net { }; + # jaraco-net = callPackage ./python-modules/jaraco-net { }; -# jaraco-stream = callPackage ./python-modules/jaraco-stream { }; + # jaraco-stream = callPackage ./python-modules/jaraco-stream { }; -# jaraco-test = callPackage ./python-modules/jaraco-test { }; + # jaraco-test = callPackage ./python-modules/jaraco-test { }; -# jaraco-text = callPackage ./python-modules/jaraco-text { }; + # jaraco-text = callPackage ./python-modules/jaraco-text { }; -# jarowinkler = callPackage ./python-modules/jarowinkler { }; + # jarowinkler = callPackage ./python-modules/jarowinkler { }; -# javaobj-py3 = callPackage ./python-modules/javaobj-py3 { }; + # javaobj-py3 = callPackage ./python-modules/javaobj-py3 { }; -# javaproperties = callPackage ./python-modules/javaproperties { }; + # javaproperties = callPackage ./python-modules/javaproperties { }; -# jax = callPackage ./python-modules/jax { }; + # jax = callPackage ./python-modules/jax { }; -# jax-jumpy = callPackage ./python-modules/jax-jumpy { }; + # jax-jumpy = callPackage ./python-modules/jax-jumpy { }; -# jaxlib-bin = callPackage ./python-modules/jaxlib/bin.nix { -# inherit (pkgs.config) cudaSupport; -# }; + # jaxlib-bin = callPackage ./python-modules/jaxlib/bin.nix { + # inherit (pkgs.config) cudaSupport; + # }; -# jaxlib-build = callPackage ./python-modules/jaxlib rec { -# inherit (pkgs.darwin) cctools; -# # Some platforms don't have `cudaSupport` defined, hence the need for 'or false'. -# inherit (pkgs.config) cudaSupport; -# IOKit = pkgs.darwin.apple_sdk_11_0.IOKit; -# }; + # jaxlib-build = callPackage ./python-modules/jaxlib rec { + # inherit (pkgs.darwin) cctools; + # # Some platforms don't have `cudaSupport` defined, hence the need for 'or false'. + # inherit (pkgs.config) cudaSupport; + # IOKit = pkgs.darwin.apple_sdk_11_0.IOKit; + # }; -# jaxlib = self.jaxlib-build; + # jaxlib = self.jaxlib-build; -# jaxlibWithCuda = self.jaxlib-build.override { -# cudaSupport = true; -# }; + # jaxlibWithCuda = self.jaxlib-build.override { + # cudaSupport = true; + # }; -# jaxlibWithoutCuda = self.jaxlib-build.override { -# cudaSupport = false; -# }; + # jaxlibWithoutCuda = self.jaxlib-build.override { + # cudaSupport = false; + # }; -# jaxopt = callPackage ./python-modules/jaxopt { }; + # jaxopt = callPackage ./python-modules/jaxopt { }; -# jaxtyping = callPackage ./python-modules/jaxtyping { }; + # jaxtyping = callPackage ./python-modules/jaxtyping { }; -# jaydebeapi = callPackage ./python-modules/jaydebeapi { }; + # jaydebeapi = callPackage ./python-modules/jaydebeapi { }; -# jc = callPackage ./python-modules/jc { }; + # jc = callPackage ./python-modules/jc { }; -# jdatetime = callPackage ./python-modules/jdatetime { }; + # jdatetime = callPackage ./python-modules/jdatetime { }; -# jdcal = callPackage ./python-modules/jdcal { }; + # jdcal = callPackage ./python-modules/jdcal { }; -# jedi = callPackage ./python-modules/jedi { }; + # jedi = callPackage ./python-modules/jedi { }; -# jedi-language-server = callPackage ./python-modules/jedi-language-server { }; + # jedi-language-server = callPackage ./python-modules/jedi-language-server { }; -# jeepney = callPackage ./python-modules/jeepney { }; + # jeepney = callPackage ./python-modules/jeepney { }; -# jello = callPackage ./python-modules/jello { }; + # jello = callPackage ./python-modules/jello { }; -# jellyfin-apiclient-python = callPackage ./python-modules/jellyfin-apiclient-python { }; + # jellyfin-apiclient-python = callPackage ./python-modules/jellyfin-apiclient-python { }; -# jellyfish = callPackage ./python-modules/jellyfish { }; + # jellyfish = callPackage ./python-modules/jellyfish { }; -# jenkinsapi = callPackage ./python-modules/jenkinsapi { }; + # jenkinsapi = callPackage ./python-modules/jenkinsapi { }; -# jenkins-job-builder = callPackage ./python-modules/jenkins-job-builder { }; + # jenkins-job-builder = callPackage ./python-modules/jenkins-job-builder { }; -# jieba = callPackage ./python-modules/jieba { }; + # jieba = callPackage ./python-modules/jieba { }; jinja2 = callPackage ./python-modules/jinja2 { }; -# jinja2-ansible-filters = callPackage ./python-modules/jinja2-ansible-filters { }; + # jinja2-ansible-filters = callPackage ./python-modules/jinja2-ansible-filters { }; -# jinja2-git = callPackage ./python-modules/jinja2-git { }; + # jinja2-git = callPackage ./python-modules/jinja2-git { }; -# jinja2-pluralize = callPackage ./python-modules/jinja2-pluralize { }; + # jinja2-pluralize = callPackage ./python-modules/jinja2-pluralize { }; -# jinja2-time = callPackage ./python-modules/jinja2-time { }; + # jinja2-time = callPackage ./python-modules/jinja2-time { }; -# jira = callPackage ./python-modules/jira { }; + # jira = callPackage ./python-modules/jira { }; -# jishaku = callPackage ./python-modules/jishaku { }; + # jishaku = callPackage ./python-modules/jishaku { }; -# jiwer = callPackage ./python-modules/jiwer { }; + # jiwer = callPackage ./python-modules/jiwer { }; -# jmespath = callPackage ./python-modules/jmespath { }; + # jmespath = callPackage ./python-modules/jmespath { }; -# jmp = callPackage ./python-modules/jmp { }; + # jmp = callPackage ./python-modules/jmp { }; -# joblib = callPackage ./python-modules/joblib { }; + # joblib = callPackage ./python-modules/joblib { }; -# johnnycanencrypt = callPackage ./python-modules/johnnycanencrypt { -# inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; -# }; + # johnnycanencrypt = callPackage ./python-modules/johnnycanencrypt { + # inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; + # }; -# josepy = callPackage ./python-modules/josepy { }; + # josepy = callPackage ./python-modules/josepy { }; -# joserfc = callPackage ./python-modules/joserfc { }; + # joserfc = callPackage ./python-modules/joserfc { }; -# journalwatch = callPackage ../tools/system/journalwatch { -# inherit (self) systemd pytest; -# }; + # journalwatch = callPackage ../tools/system/journalwatch { + # inherit (self) systemd pytest; + # }; -# jplephem = callPackage ./python-modules/jplephem { }; + # jplephem = callPackage ./python-modules/jplephem { }; -# jproperties = callPackage ./python-modules/jproperties { }; + # jproperties = callPackage ./python-modules/jproperties { }; -# jpylyzer = callPackage ./python-modules/jpylyzer { }; + # jpylyzer = callPackage ./python-modules/jpylyzer { }; -# jpype1 = callPackage ./python-modules/jpype1 { }; + # jpype1 = callPackage ./python-modules/jpype1 { }; -# jq = callPackage ./python-modules/jq { -# inherit (pkgs) jq; -# }; + # jq = callPackage ./python-modules/jq { + # inherit (pkgs) jq; + # }; -# js2py = callPackage ./python-modules/js2py { }; + # js2py = callPackage ./python-modules/js2py { }; -# jsbeautifier = callPackage ./python-modules/jsbeautifier { }; + # jsbeautifier = callPackage ./python-modules/jsbeautifier { }; -# jschema-to-python = callPackage ./python-modules/jschema-to-python { }; + # jschema-to-python = callPackage ./python-modules/jschema-to-python { }; -# jsmin = callPackage ./python-modules/jsmin { }; + # jsmin = callPackage ./python-modules/jsmin { }; -# json5 = callPackage ./python-modules/json5 { }; + # json5 = callPackage ./python-modules/json5 { }; -# jsonargparse = callPackage ./python-modules/jsonargparse { }; + # jsonargparse = callPackage ./python-modules/jsonargparse { }; -# jsonconversion = callPackage ./python-modules/jsonconversion { }; + # jsonconversion = callPackage ./python-modules/jsonconversion { }; -# jsondate = callPackage ./python-modules/jsondate { }; + # jsondate = callPackage ./python-modules/jsondate { }; -# jsondiff = callPackage ./python-modules/jsondiff { }; + # jsondiff = callPackage ./python-modules/jsondiff { }; -# jsonfeed = callPackage ./python-modules/jsonfeed { }; + # jsonfeed = callPackage ./python-modules/jsonfeed { }; -# jsonfield = callPackage ./python-modules/jsonfield { }; + # jsonfield = callPackage ./python-modules/jsonfield { }; -# jsonlines = callPackage ./python-modules/jsonlines { }; + # jsonlines = callPackage ./python-modules/jsonlines { }; -# json-logging = callPackage ./python-modules/json-logging { }; + # json-logging = callPackage ./python-modules/json-logging { }; -# jsonmerge = callPackage ./python-modules/jsonmerge { }; + # jsonmerge = callPackage ./python-modules/jsonmerge { }; -# json-home-client = callPackage ./python-modules/json-home-client { }; + # json-home-client = callPackage ./python-modules/json-home-client { }; -# json-merge-patch = callPackage ./python-modules/json-merge-patch { }; + # json-merge-patch = callPackage ./python-modules/json-merge-patch { }; -# json-schema-for-humans = callPackage ./python-modules/json-schema-for-humans { }; + # json-schema-for-humans = callPackage ./python-modules/json-schema-for-humans { }; -# json-stream = callPackage ./python-modules/json-stream { }; + # json-stream = callPackage ./python-modules/json-stream { }; -# json-stream-rs-tokenizer = callPackage ./python-modules/json-stream-rs-tokenizer { }; + # json-stream-rs-tokenizer = callPackage ./python-modules/json-stream-rs-tokenizer { }; -# jsonable = callPackage ./python-modules/jsonable { }; + # jsonable = callPackage ./python-modules/jsonable { }; -# jsonformatter = callPackage ./python-modules/jsonformatter { }; + # jsonformatter = callPackage ./python-modules/jsonformatter { }; -# jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; }; + # jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; }; -# jsonpatch = callPackage ./python-modules/jsonpatch { }; + # jsonpatch = callPackage ./python-modules/jsonpatch { }; -# jsonpath = callPackage ./python-modules/jsonpath { }; + # jsonpath = callPackage ./python-modules/jsonpath { }; -# jsonpath-rw = callPackage ./python-modules/jsonpath-rw { }; + # jsonpath-rw = callPackage ./python-modules/jsonpath-rw { }; -# jsonpath-ng = callPackage ./python-modules/jsonpath-ng { }; + # jsonpath-ng = callPackage ./python-modules/jsonpath-ng { }; -# jsonpickle = callPackage ./python-modules/jsonpickle { }; + # jsonpickle = callPackage ./python-modules/jsonpickle { }; -# jsonpointer = callPackage ./python-modules/jsonpointer { }; + # jsonpointer = callPackage ./python-modules/jsonpointer { }; -# jsonref = callPackage ./python-modules/jsonref { }; + # jsonref = callPackage ./python-modules/jsonref { }; -# json-rpc = callPackage ./python-modules/json-rpc { }; + # json-rpc = callPackage ./python-modules/json-rpc { }; -# jsonrpc-async = callPackage ./python-modules/jsonrpc-async { }; + # jsonrpc-async = callPackage ./python-modules/jsonrpc-async { }; -# jsonrpc-base = callPackage ./python-modules/jsonrpc-base { }; + # jsonrpc-base = callPackage ./python-modules/jsonrpc-base { }; -# jsonrpclib-pelix = callPackage ./python-modules/jsonrpclib-pelix { }; + # jsonrpclib-pelix = callPackage ./python-modules/jsonrpclib-pelix { }; -# jsonrpc-websocket = callPackage ./python-modules/jsonrpc-websocket { }; + # jsonrpc-websocket = callPackage ./python-modules/jsonrpc-websocket { }; -# jsons = callPackage ./python-modules/jsons { }; + # jsons = callPackage ./python-modules/jsons { }; -# jsonschema = callPackage ./python-modules/jsonschema { }; + # jsonschema = callPackage ./python-modules/jsonschema { }; -# jsonschema-path = callPackage ./python-modules/jsonschema-path { }; + # jsonschema-path = callPackage ./python-modules/jsonschema-path { }; -# jsonschema-spec = callPackage ./python-modules/jsonschema-spec { }; + # jsonschema-spec = callPackage ./python-modules/jsonschema-spec { }; -# jsonschema-specifications = callPackage ./python-modules/jsonschema-specifications { }; + # jsonschema-specifications = callPackage ./python-modules/jsonschema-specifications { }; -# jsonslicer = callPackage ./python-modules/jsonslicer { }; + # jsonslicer = callPackage ./python-modules/jsonslicer { }; -# jsonstreams = callPackage ./python-modules/jsonstreams { }; + # jsonstreams = callPackage ./python-modules/jsonstreams { }; -# json-tricks = callPackage ./python-modules/json-tricks { }; + # json-tricks = callPackage ./python-modules/json-tricks { }; -# jstyleson = callPackage ./python-modules/jstyleson { }; + # jstyleson = callPackage ./python-modules/jstyleson { }; -# jug = callPackage ./python-modules/jug { }; + # jug = callPackage ./python-modules/jug { }; -# julius = callPackage ./python-modules/julius { }; + # julius = callPackage ./python-modules/julius { }; -# junitparser = callPackage ./python-modules/junitparser { }; + # junitparser = callPackage ./python-modules/junitparser { }; -# junit2html = callPackage ./python-modules/junit2html { }; + # junit2html = callPackage ./python-modules/junit2html { }; -# junit-xml = callPackage ./python-modules/junit-xml { }; + # junit-xml = callPackage ./python-modules/junit-xml { }; -# junos-eznc = callPackage ./python-modules/junos-eznc { }; + # junos-eznc = callPackage ./python-modules/junos-eznc { }; -# jupyter = callPackage ./python-modules/jupyter { }; + # jupyter = callPackage ./python-modules/jupyter { }; -# jupyter-book = callPackage ./python-modules/jupyter-book { }; + # jupyter-book = callPackage ./python-modules/jupyter-book { }; -# jupyter-c-kernel = callPackage ./python-modules/jupyter-c-kernel { }; + # jupyter-c-kernel = callPackage ./python-modules/jupyter-c-kernel { }; -# jupyter-cache = callPackage ./python-modules/jupyter-cache { }; + # jupyter-cache = callPackage ./python-modules/jupyter-cache { }; -# jupyter-client = callPackage ./python-modules/jupyter-client { }; + # jupyter-client = callPackage ./python-modules/jupyter-client { }; -# jupyter-collaboration = callPackage ./python-modules/jupyter-collaboration { }; + # jupyter-collaboration = callPackage ./python-modules/jupyter-collaboration { }; -# jupyter-contrib-core = callPackage ./python-modules/jupyter-contrib-core { }; + # jupyter-contrib-core = callPackage ./python-modules/jupyter-contrib-core { }; -# jupyter-contrib-nbextensions = callPackage ./python-modules/jupyter-contrib-nbextensions { }; + # jupyter-contrib-nbextensions = callPackage ./python-modules/jupyter-contrib-nbextensions { }; -# jupyter-console = callPackage ./python-modules/jupyter-console { }; + # jupyter-console = callPackage ./python-modules/jupyter-console { }; -# jupyter-core = callPackage ./python-modules/jupyter-core { }; + # jupyter-core = callPackage ./python-modules/jupyter-core { }; -# jupyter-events = callPackage ./python-modules/jupyter-events { }; + # jupyter-events = callPackage ./python-modules/jupyter-events { }; -# jupyter-highlight-selected-word = callPackage ./python-modules/jupyter-highlight-selected-word { }; + # jupyter-highlight-selected-word = callPackage ./python-modules/jupyter-highlight-selected-word { }; -# jupyter-lsp = callPackage ./python-modules/jupyter-lsp { }; + # jupyter-lsp = callPackage ./python-modules/jupyter-lsp { }; -# jupyter-nbextensions-configurator = callPackage ./python-modules/jupyter-nbextensions-configurator { }; + # jupyter-nbextensions-configurator = callPackage ./python-modules/jupyter-nbextensions-configurator { }; -# jupyter-server = callPackage ./python-modules/jupyter-server { }; + # jupyter-server = callPackage ./python-modules/jupyter-server { }; -# jupyter-server-fileid = callPackage ./python-modules/jupyter-server-fileid { }; + # jupyter-server-fileid = callPackage ./python-modules/jupyter-server-fileid { }; -# jupyter-server-terminals = callPackage ./python-modules/jupyter-server-terminals { }; + # jupyter-server-terminals = callPackage ./python-modules/jupyter-server-terminals { }; -# jupyter-ui-poll = callPackage ./python-modules/jupyter-ui-poll { }; + # jupyter-ui-poll = callPackage ./python-modules/jupyter-ui-poll { }; -# jupyter-ydoc = callPackage ./python-modules/jupyter-ydoc { }; + # jupyter-ydoc = callPackage ./python-modules/jupyter-ydoc { }; -# jupyterhub = callPackage ./python-modules/jupyterhub { }; + # jupyterhub = callPackage ./python-modules/jupyterhub { }; -# jupyterhub-ldapauthenticator = callPackage ./python-modules/jupyterhub-ldapauthenticator { }; + # jupyterhub-ldapauthenticator = callPackage ./python-modules/jupyterhub-ldapauthenticator { }; -# jupyterhub-systemdspawner = callPackage ./python-modules/jupyterhub-systemdspawner { }; + # jupyterhub-systemdspawner = callPackage ./python-modules/jupyterhub-systemdspawner { }; -# jupyterhub-tmpauthenticator = callPackage ./python-modules/jupyterhub-tmpauthenticator { }; + # jupyterhub-tmpauthenticator = callPackage ./python-modules/jupyterhub-tmpauthenticator { }; -# jupyterlab = callPackage ./python-modules/jupyterlab { }; + # jupyterlab = callPackage ./python-modules/jupyterlab { }; -# jupyterlab-git = callPackage ./python-modules/jupyterlab-git { }; + # jupyterlab-git = callPackage ./python-modules/jupyterlab-git { }; -# jupyterlab-pygments = callPackage ./python-modules/jupyterlab-pygments { }; + # jupyterlab-pygments = callPackage ./python-modules/jupyterlab-pygments { }; -# jupyterlab-server = callPackage ./python-modules/jupyterlab-server { }; + # jupyterlab-server = callPackage ./python-modules/jupyterlab-server { }; -# jupyterlab-widgets = callPackage ./python-modules/jupyterlab-widgets { }; + # jupyterlab-widgets = callPackage ./python-modules/jupyterlab-widgets { }; -# jupyterlab-lsp = callPackage ./python-modules/jupyterlab-lsp { }; + # jupyterlab-lsp = callPackage ./python-modules/jupyterlab-lsp { }; -# jupyter-packaging = callPackage ./python-modules/jupyter-packaging { }; + # jupyter-packaging = callPackage ./python-modules/jupyter-packaging { }; -# jupyter-repo2docker = callPackage ./python-modules/jupyter-repo2docker { -# pkgs-docker = pkgs.docker; -# }; + # jupyter-repo2docker = callPackage ./python-modules/jupyter-repo2docker { + # pkgs-docker = pkgs.docker; + # }; -# jupyter-server-mathjax = callPackage ./python-modules/jupyter-server-mathjax { }; + # jupyter-server-mathjax = callPackage ./python-modules/jupyter-server-mathjax { }; -# jupyter-sphinx = callPackage ./python-modules/jupyter-sphinx { }; + # jupyter-sphinx = callPackage ./python-modules/jupyter-sphinx { }; -# jupyter-telemetry = callPackage ./python-modules/jupyter-telemetry { }; + # jupyter-telemetry = callPackage ./python-modules/jupyter-telemetry { }; -# jupytext = callPackage ./python-modules/jupytext { }; + # jupytext = callPackage ./python-modules/jupytext { }; -# justbackoff = callPackage ./python-modules/justbackoff { }; + # justbackoff = callPackage ./python-modules/justbackoff { }; -# justbases = callPackage ./python-modules/justbases { }; + # justbases = callPackage ./python-modules/justbases { }; -# justbytes = callPackage ./python-modules/justbytes { }; + # justbytes = callPackage ./python-modules/justbytes { }; -# justext = callPackage ./python-modules/justext { }; + # justext = callPackage ./python-modules/justext { }; -# justnimbus = callPackage ./python-modules/justnimbus { }; + # justnimbus = callPackage ./python-modules/justnimbus { }; -# jwcrypto = callPackage ./python-modules/jwcrypto { }; + # jwcrypto = callPackage ./python-modules/jwcrypto { }; -# jwt = callPackage ./python-modules/jwt { }; + # jwt = callPackage ./python-modules/jwt { }; -# jxmlease = callPackage ./python-modules/jxmlease { }; + # jxmlease = callPackage ./python-modules/jxmlease { }; -# k-diffusion = callPackage ./python-modules/k-diffusion { }; + # k-diffusion = callPackage ./python-modules/k-diffusion { }; -# k5test = callPackage ./python-modules/k5test { -# inherit (pkgs) krb5 findutils; -# }; + # k5test = callPackage ./python-modules/k5test { + # inherit (pkgs) krb5 findutils; + # }; -# kaa-base = callPackage ./python-modules/kaa-base { }; + # kaa-base = callPackage ./python-modules/kaa-base { }; -# kaa-metadata = callPackage ./python-modules/kaa-metadata { }; + # kaa-metadata = callPackage ./python-modules/kaa-metadata { }; -# kafka-python = callPackage ./python-modules/kafka-python { }; + # kafka-python = callPackage ./python-modules/kafka-python { }; -# kaggle = callPackage ./python-modules/kaggle { }; + # kaggle = callPackage ./python-modules/kaggle { }; -# kaitaistruct = callPackage ./python-modules/kaitaistruct { }; + # kaitaistruct = callPackage ./python-modules/kaitaistruct { }; -# kajiki = callPackage ./python-modules/kajiki { }; + # kajiki = callPackage ./python-modules/kajiki { }; -# kaldi-active-grammar = callPackage ./python-modules/kaldi-active-grammar { }; + # kaldi-active-grammar = callPackage ./python-modules/kaldi-active-grammar { }; -# kanidm = callPackage ./python-modules/kanidm { }; + # kanidm = callPackage ./python-modules/kanidm { }; -# kaptan = callPackage ./python-modules/kaptan { }; + # kaptan = callPackage ./python-modules/kaptan { }; -# karton-asciimagic = callPackage ./python-modules/karton-asciimagic { }; + # karton-asciimagic = callPackage ./python-modules/karton-asciimagic { }; -# karton-autoit-ripper = callPackage ./python-modules/karton-autoit-ripper { }; + # karton-autoit-ripper = callPackage ./python-modules/karton-autoit-ripper { }; -# karton-classifier = callPackage ./python-modules/karton-classifier { }; + # karton-classifier = callPackage ./python-modules/karton-classifier { }; -# karton-config-extractor = callPackage ./python-modules/karton-config-extractor { }; + # karton-config-extractor = callPackage ./python-modules/karton-config-extractor { }; -# karton-core = callPackage ./python-modules/karton-core { }; + # karton-core = callPackage ./python-modules/karton-core { }; -# karton-dashboard = callPackage ./python-modules/karton-dashboard { }; + # karton-dashboard = callPackage ./python-modules/karton-dashboard { }; -# karton-mwdb-reporter = callPackage ./python-modules/karton-mwdb-reporter { }; + # karton-mwdb-reporter = callPackage ./python-modules/karton-mwdb-reporter { }; -# karton-yaramatcher = callPackage ./python-modules/karton-yaramatcher { }; + # karton-yaramatcher = callPackage ./python-modules/karton-yaramatcher { }; -# kasa-crypt = callPackage ./python-modules/kasa-crypt { }; + # kasa-crypt = callPackage ./python-modules/kasa-crypt { }; -# kazoo = callPackage ./python-modules/kazoo { }; + # kazoo = callPackage ./python-modules/kazoo { }; -# kbcstorage = callPackage ./python-modules/kbcstorage { }; + # kbcstorage = callPackage ./python-modules/kbcstorage { }; -# kconfiglib = callPackage ./python-modules/kconfiglib { }; + # kconfiglib = callPackage ./python-modules/kconfiglib { }; -# keba-kecontact = callPackage ./python-modules/keba-kecontact { }; + # keba-kecontact = callPackage ./python-modules/keba-kecontact { }; -# keep = callPackage ./python-modules/keep { }; + # keep = callPackage ./python-modules/keep { }; -# keepalive = callPackage ./python-modules/keepalive { }; + # keepalive = callPackage ./python-modules/keepalive { }; -# keepkey-agent = callPackage ./python-modules/keepkey-agent { }; + # keepkey-agent = callPackage ./python-modules/keepkey-agent { }; -# keepkey = callPackage ./python-modules/keepkey { }; + # keepkey = callPackage ./python-modules/keepkey { }; -# kegtron-ble = callPackage ./python-modules/kegtron-ble { }; + # kegtron-ble = callPackage ./python-modules/kegtron-ble { }; -# keras-applications = callPackage ./python-modules/keras-applications { }; + # keras-applications = callPackage ./python-modules/keras-applications { }; -# keras = callPackage ./python-modules/keras { }; + # keras = callPackage ./python-modules/keras { }; -# keras-preprocessing = callPackage ./python-modules/keras-preprocessing { }; + # keras-preprocessing = callPackage ./python-modules/keras-preprocessing { }; -# kerberos = callPackage ./python-modules/kerberos { }; + # kerberos = callPackage ./python-modules/kerberos { }; -# keyboard = callPackage ./python-modules/keyboard { }; + # keyboard = callPackage ./python-modules/keyboard { }; -# keyring = callPackage ./python-modules/keyring { }; + # keyring = callPackage ./python-modules/keyring { }; -# keyring-pass = callPackage ./python-modules/keyring-pass { }; + # keyring-pass = callPackage ./python-modules/keyring-pass { }; -# keyrings-cryptfile = callPackage ./python-modules/keyrings-cryptfile { }; + # keyrings-cryptfile = callPackage ./python-modules/keyrings-cryptfile { }; -# keyrings-google-artifactregistry-auth = callPackage ./python-modules/keyrings-google-artifactregistry-auth { }; + # keyrings-google-artifactregistry-auth = callPackage ./python-modules/keyrings-google-artifactregistry-auth { }; -# keyrings-alt = callPackage ./python-modules/keyrings-alt { }; + # keyrings-alt = callPackage ./python-modules/keyrings-alt { }; -# keystone-engine = callPackage ./python-modules/keystone-engine { }; + # keystone-engine = callPackage ./python-modules/keystone-engine { }; -# keyrings-passwordstore = callPackage ./python-modules/keyrings-passwordstore { }; + # keyrings-passwordstore = callPackage ./python-modules/keyrings-passwordstore { }; -# keystoneauth1 = callPackage ./python-modules/keystoneauth1 { }; + # keystoneauth1 = callPackage ./python-modules/keystoneauth1 { }; -# keyutils = callPackage ./python-modules/keyutils { -# inherit (pkgs) keyutils; -# }; + # keyutils = callPackage ./python-modules/keyutils { + # inherit (pkgs) keyutils; + # }; -# khanaa = callPackage ./python-modules/khanaa {}; + # khanaa = callPackage ./python-modules/khanaa {}; -# kicad = toPythonModule (pkgs.kicad.override { -# python3 = python; -# }).src; + # kicad = toPythonModule (pkgs.kicad.override { + # python3 = python; + # }).src; -# kinparse = callPackage ./python-modules/kinparse { }; + # kinparse = callPackage ./python-modules/kinparse { }; -# kiss-headers = callPackage ./python-modules/kiss-headers { }; + # kiss-headers = callPackage ./python-modules/kiss-headers { }; -# kitchen = callPackage ./python-modules/kitchen { }; + # kitchen = callPackage ./python-modules/kitchen { }; -# kivy = callPackage ./python-modules/kivy { -# inherit (pkgs) mesa; -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate ApplicationServices AVFoundation; -# }; + # kivy = callPackage ./python-modules/kivy { + # inherit (pkgs) mesa; + # inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate ApplicationServices AVFoundation; + # }; -# kivy-garden = callPackage ./python-modules/kivy-garden { }; + # kivy-garden = callPackage ./python-modules/kivy-garden { }; -# kiwiki-client = callPackage ./python-modules/kiwiki-client { }; + # kiwiki-client = callPackage ./python-modules/kiwiki-client { }; -# kiwisolver = callPackage ./python-modules/kiwisolver { }; + # kiwisolver = callPackage ./python-modules/kiwisolver { }; -# klaus = callPackage ./python-modules/klaus { }; + # klaus = callPackage ./python-modules/klaus { }; -# klein = callPackage ./python-modules/klein { }; + # klein = callPackage ./python-modules/klein { }; -# kmapper = callPackage ./python-modules/kmapper { }; + # kmapper = callPackage ./python-modules/kmapper { }; -# kml2geojson = callPackage ./python-modules/kml2geojson { }; + # kml2geojson = callPackage ./python-modules/kml2geojson { }; -# kmsxx = toPythonModule (pkgs.kmsxx.override { -# withPython = true; -# }); + # kmsxx = toPythonModule (pkgs.kmsxx.override { + # withPython = true; + # }); -# knack = callPackage ./python-modules/knack { }; + # knack = callPackage ./python-modules/knack { }; -# kneed = callPackage ./python-modules/kneed { }; + # kneed = callPackage ./python-modules/kneed { }; -# knx-frontend = callPackage ./python-modules/knx-frontend { }; + # knx-frontend = callPackage ./python-modules/knx-frontend { }; -# kombu = callPackage ./python-modules/kombu { }; + # kombu = callPackage ./python-modules/kombu { }; -# konnected = callPackage ./python-modules/konnected { }; + # konnected = callPackage ./python-modules/konnected { }; -# kotsu = callPackage ./python-modules/kotsu { }; + # kotsu = callPackage ./python-modules/kotsu { }; -# korean-lunar-calendar = callPackage ./python-modules/korean-lunar-calendar { }; + # korean-lunar-calendar = callPackage ./python-modules/korean-lunar-calendar { }; -# kornia = callPackage ./python-modules/kornia { }; + # kornia = callPackage ./python-modules/kornia { }; -# kornia-rs = callPackage ./python-modules/kornia-rs { }; + # kornia-rs = callPackage ./python-modules/kornia-rs { }; -# krakenex = callPackage ./python-modules/krakenex { }; + # krakenex = callPackage ./python-modules/krakenex { }; -# krfzf-py = callPackage ./python-modules/krfzf-py { }; + # krfzf-py = callPackage ./python-modules/krfzf-py { }; -# kserve = callPackage ./python-modules/kserve { }; + # kserve = callPackage ./python-modules/kserve { }; -# kubernetes = callPackage ./python-modules/kubernetes { }; + # kubernetes = callPackage ./python-modules/kubernetes { }; -# kurbopy = callPackage ./python-modules/kurbopy { }; + # kurbopy = callPackage ./python-modules/kurbopy { }; -# l18n = callPackage ./python-modules/l18n { }; + # l18n = callPackage ./python-modules/l18n { }; -# labelbox = callPackage ./python-modules/labelbox { }; + # labelbox = callPackage ./python-modules/labelbox { }; -# labgrid = callPackage ./python-modules/labgrid { }; + # labgrid = callPackage ./python-modules/labgrid { }; -# labmath = callPackage ./python-modules/labmath { }; + # labmath = callPackage ./python-modules/labmath { }; -# laces = callPackage ./python-modules/laces { }; + # laces = callPackage ./python-modules/laces { }; -# lacuscore = callPackage ./python-modules/lacuscore { }; + # lacuscore = callPackage ./python-modules/lacuscore { }; -# lakeside = callPackage ./python-modules/lakeside { }; + # lakeside = callPackage ./python-modules/lakeside { }; -# langchain = callPackage ./python-modules/langchain { }; + # langchain = callPackage ./python-modules/langchain { }; -# langchain-community = callPackage ./python-modules/langchain-community { }; + # langchain-community = callPackage ./python-modules/langchain-community { }; -# langchain-core = callPackage ./python-modules/langchain-core { }; + # langchain-core = callPackage ./python-modules/langchain-core { }; -# langchain-text-splitters = callPackage ./python-modules/langchain-text-splitters { }; + # langchain-text-splitters = callPackage ./python-modules/langchain-text-splitters { }; -# langcodes = callPackage ./python-modules/langcodes { }; + # langcodes = callPackage ./python-modules/langcodes { }; -# langdetect = callPackage ./python-modules/langdetect { }; + # langdetect = callPackage ./python-modules/langdetect { }; -# langid = callPackage ./python-modules/langid { }; + # langid = callPackage ./python-modules/langid { }; -# langsmith = callPackage ./python-modules/langsmith { }; + # langsmith = callPackage ./python-modules/langsmith { }; -# language-data = callPackage ./python-modules/language-data { }; + # language-data = callPackage ./python-modules/language-data { }; -# language-tags = callPackage ./python-modules/language-tags { }; + # language-tags = callPackage ./python-modules/language-tags { }; -# lanms-neo = callPackage ./python-modules/lanms-neo { }; + # lanms-neo = callPackage ./python-modules/lanms-neo { }; -# lark = callPackage ./python-modules/lark { }; + # lark = callPackage ./python-modules/lark { }; -# laspy = callPackage ./python-modules/laspy { }; + # laspy = callPackage ./python-modules/laspy { }; -# laszip = callPackage ./python-modules/laszip { -# inherit (pkgs) cmake ninja; -# }; + # laszip = callPackage ./python-modules/laszip { + # inherit (pkgs) cmake ninja; + # }; -# latex2mathml = callPackage ./python-modules/latex2mathml { }; + # latex2mathml = callPackage ./python-modules/latex2mathml { }; -# latexcodec = callPackage ./python-modules/latexcodec { }; + # latexcodec = callPackage ./python-modules/latexcodec { }; -# latexify-py = callPackage ./python-modules/latexify-py { }; + # latexify-py = callPackage ./python-modules/latexify-py { }; -# launchpadlib = callPackage ./python-modules/launchpadlib { }; + # launchpadlib = callPackage ./python-modules/launchpadlib { }; -# laundrify-aio = callPackage ./python-modules/laundrify-aio { }; + # laundrify-aio = callPackage ./python-modules/laundrify-aio { }; -# layoutparser = callPackage ./python-modules/layoutparser { }; + # layoutparser = callPackage ./python-modules/layoutparser { }; -# lazr-config = callPackage ./python-modules/lazr/config.nix { }; + # lazr-config = callPackage ./python-modules/lazr/config.nix { }; -# lazr-delegates = callPackage ./python-modules/lazr/delegates.nix { }; + # lazr-delegates = callPackage ./python-modules/lazr/delegates.nix { }; -# lazr-restfulclient = callPackage ./python-modules/lazr-restfulclient { }; + # lazr-restfulclient = callPackage ./python-modules/lazr-restfulclient { }; -# lazr-uri = callPackage ./python-modules/lazr-uri { }; + # lazr-uri = callPackage ./python-modules/lazr-uri { }; -# lazy = callPackage ./python-modules/lazy { }; + # lazy = callPackage ./python-modules/lazy { }; -# lazy-import = callPackage ./python-modules/lazy-import { }; + # lazy-import = callPackage ./python-modules/lazy-import { }; -# lazy-imports = callPackage ./python-modules/lazy-imports { }; + # lazy-imports = callPackage ./python-modules/lazy-imports { }; -# lazy-loader = callPackage ./python-modules/lazy-loader { }; + # lazy-loader = callPackage ./python-modules/lazy-loader { }; -# lazy-object-proxy = callPackage ./python-modules/lazy-object-proxy { }; + # lazy-object-proxy = callPackage ./python-modules/lazy-object-proxy { }; -# lc7001 = callPackage ./python-modules/lc7001 { }; + # lc7001 = callPackage ./python-modules/lc7001 { }; -# lcd-i2c = callPackage ./python-modules/lcd-i2c { }; + # lcd-i2c = callPackage ./python-modules/lcd-i2c { }; -# lcgit = callPackage ./python-modules/lcgit { }; + # lcgit = callPackage ./python-modules/lcgit { }; -# lcov-cobertura = callPackage ./python-modules/lcov-cobertura { }; + # lcov-cobertura = callPackage ./python-modules/lcov-cobertura { }; -# ld2410-ble = callPackage ./python-modules/ld2410-ble { }; + # ld2410-ble = callPackage ./python-modules/ld2410-ble { }; -# ldap3 = callPackage ./python-modules/ldap3 { }; + # ldap3 = callPackage ./python-modules/ldap3 { }; -# ldapdomaindump = callPackage ./python-modules/ldapdomaindump { }; + # ldapdomaindump = callPackage ./python-modules/ldapdomaindump { }; -# ldappool = callPackage ./python-modules/ldappool { }; + # ldappool = callPackage ./python-modules/ldappool { }; -# ldaptor = callPackage ./python-modules/ldaptor { }; + # ldaptor = callPackage ./python-modules/ldaptor { }; -# ldfparser = callPackage ./python-modules/ldfparser { }; + # ldfparser = callPackage ./python-modules/ldfparser { }; -# leather = callPackage ./python-modules/leather { }; + # leather = callPackage ./python-modules/leather { }; -# leb128 = callPackage ./python-modules/leb128 { }; + # leb128 = callPackage ./python-modules/leb128 { }; -# led-ble = callPackage ./python-modules/led-ble { }; + # led-ble = callPackage ./python-modules/led-ble { }; -# ledger = (toPythonModule (pkgs.ledger.override { -# usePython = true; -# python3 = python; -# })).py; + # ledger = (toPythonModule (pkgs.ledger.override { + # usePython = true; + # python3 = python; + # })).py; -# ledger-agent = callPackage ./python-modules/ledger-agent { }; + # ledger-agent = callPackage ./python-modules/ledger-agent { }; -# ledger-bitcoin = callPackage ./python-modules/ledger-bitcoin { }; + # ledger-bitcoin = callPackage ./python-modules/ledger-bitcoin { }; -# ledgerblue = callPackage ./python-modules/ledgerblue { }; + # ledgerblue = callPackage ./python-modules/ledgerblue { }; -# ledgercomm = callPackage ./python-modules/ledgercomm { }; + # ledgercomm = callPackage ./python-modules/ledgercomm { }; -# ledgerwallet = callPackage ./python-modules/ledgerwallet { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# }; + # ledgerwallet = callPackage ./python-modules/ledgerwallet { + # inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; + # }; -# leidenalg = callPackage ./python-modules/leidenalg { -# igraph-c = pkgs.igraph; -# }; + # leidenalg = callPackage ./python-modules/leidenalg { + # igraph-c = pkgs.igraph; + # }; -# leveldb = callPackage ./python-modules/leveldb { }; + # leveldb = callPackage ./python-modules/leveldb { }; -# levenshtein = callPackage ./python-modules/levenshtein { }; + # levenshtein = callPackage ./python-modules/levenshtein { }; -# lexid = callPackage ./python-modules/lexid { }; + # lexid = callPackage ./python-modules/lexid { }; -# lexilang = callPackage ./python-modules/lexilang { }; + # lexilang = callPackage ./python-modules/lexilang { }; -# lhapdf = toPythonModule (pkgs.lhapdf.override { -# inherit python; -# }); + # lhapdf = toPythonModule (pkgs.lhapdf.override { + # inherit python; + # }); -# libagent = callPackage ./python-modules/libagent { }; + # libagent = callPackage ./python-modules/libagent { }; -# pa-ringbuffer = callPackage ./python-modules/pa-ringbuffer { }; + # pa-ringbuffer = callPackage ./python-modules/pa-ringbuffer { }; -# libais = callPackage ./python-modules/libais { }; + # libais = callPackage ./python-modules/libais { }; -# libarchive-c = callPackage ./python-modules/libarchive-c { -# inherit (pkgs) libarchive; -# }; + # libarchive-c = callPackage ./python-modules/libarchive-c { + # inherit (pkgs) libarchive; + # }; -# libarcus = callPackage ./python-modules/libarcus { -# protobuf = pkgs.protobuf_21; -# }; + # libarcus = callPackage ./python-modules/libarcus { + # protobuf = pkgs.protobuf_21; + # }; -# libasyncns = callPackage ./python-modules/libasyncns { -# inherit (pkgs) libasyncns; -# }; + # libasyncns = callPackage ./python-modules/libasyncns { + # inherit (pkgs) libasyncns; + # }; -# libclang = callPackage ./python-modules/libclang { }; + # libclang = callPackage ./python-modules/libclang { }; -# libcloud = callPackage ./python-modules/libcloud { }; + # libcloud = callPackage ./python-modules/libcloud { }; -# libcomps = lib.pipe pkgs.libcomps [ -# toPythonModule -# (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) -# (p: p.override { inherit python; }) -# (p: p.py) -# ]; + # libcomps = lib.pipe pkgs.libcomps [ + # toPythonModule + # (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) + # (p: p.override { inherit python; }) + # (p: p.py) + # ]; -# libcst = callPackage ./python-modules/libcst { }; + # libcst = callPackage ./python-modules/libcst { }; -# libdnf = lib.pipe pkgs.libdnf [ -# toPythonModule -# (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) -# (p: p.override { inherit python; }) -# (p: p.py) -# ]; + # libdnf = lib.pipe pkgs.libdnf [ + # toPythonModule + # (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) + # (p: p.override { inherit python; }) + # (p: p.py) + # ]; -# libevdev = callPackage ./python-modules/libevdev { }; + # libevdev = callPackage ./python-modules/libevdev { }; -# libfdt = toPythonModule (pkgs.dtc.override { -# inherit python; -# pythonSupport = true; -# }); + # libfdt = toPythonModule (pkgs.dtc.override { + # inherit python; + # pythonSupport = true; + # }); -# libfive = toPythonModule (pkgs.libfive.override { -# inherit python; -# }); + # libfive = toPythonModule (pkgs.libfive.override { + # inherit python; + # }); -# libgpiod = callPackage ./python-modules/libgpiod { -# inherit (pkgs) libgpiod; -# }; + # libgpiod = callPackage ./python-modules/libgpiod { + # inherit (pkgs) libgpiod; + # }; -# libgpuarray = callPackage ./python-modules/libgpuarray { -# clblas = pkgs.clblas.override { inherit (self) boost; }; -# inherit (pkgs.config) cudaSupport; -# }; + # libgpuarray = callPackage ./python-modules/libgpuarray { + # clblas = pkgs.clblas.override { inherit (self) boost; }; + # inherit (pkgs.config) cudaSupport; + # }; -# libiio = (toPythonModule (pkgs.libiio.override { -# pythonSupport = true; -# inherit python; -# })).python; + # libiio = (toPythonModule (pkgs.libiio.override { + # pythonSupport = true; + # inherit python; + # })).python; -# libkeepass = callPackage ./python-modules/libkeepass { }; + # libkeepass = callPackage ./python-modules/libkeepass { }; -# libknot = callPackage ./python-modules/libknot { }; + # libknot = callPackage ./python-modules/libknot { }; -# liblarch = callPackage ./python-modules/liblarch { }; + # liblarch = callPackage ./python-modules/liblarch { }; -# liblzfse = callPackage ./python-modules/liblzfse { -# inherit (pkgs) lzfse; -# }; + # liblzfse = callPackage ./python-modules/liblzfse { + # inherit (pkgs) lzfse; + # }; -# libmambapy = callPackage ./python-modules/libmambapy { }; + # libmambapy = callPackage ./python-modules/libmambapy { }; -# libmodulemd = lib.pipe pkgs.libmodulemd [ -# toPythonModule -# (p: -# p.overrideAttrs (super: { -# meta = super.meta // { -# outputsToInstall = [ "py" ]; # The package always builds python3 bindings -# broken = (super.meta.broken or false) || !isPy3k; -# }; -# })) -# (p: p.override { python3 = python; }) -# (p: p.py) -# ]; + # libmodulemd = lib.pipe pkgs.libmodulemd [ + # toPythonModule + # (p: + # p.overrideAttrs (super: { + # meta = super.meta // { + # outputsToInstall = [ "py" ]; # The package always builds python3 bindings + # broken = (super.meta.broken or false) || !isPy3k; + # }; + # })) + # (p: p.override { python3 = python; }) + # (p: p.py) + # ]; -# libmr = callPackage ./python-modules/libmr { }; + # libmr = callPackage ./python-modules/libmr { }; -# libnacl = callPackage ./python-modules/libnacl { -# inherit (pkgs) libsodium; -# }; + # libnacl = callPackage ./python-modules/libnacl { + # inherit (pkgs) libsodium; + # }; -# libpcap = callPackage ./python-modules/libpcap { -# pkgsLibpcap = pkgs.libpcap; # Needs the C library -# }; + # libpcap = callPackage ./python-modules/libpcap { + # pkgsLibpcap = pkgs.libpcap; # Needs the C library + # }; -# libpurecool = callPackage ./python-modules/libpurecool { }; + # libpurecool = callPackage ./python-modules/libpurecool { }; -# libpyfoscam = callPackage ./python-modules/libpyfoscam { }; + # libpyfoscam = callPackage ./python-modules/libpyfoscam { }; -# libpyvivotek = callPackage ./python-modules/libpyvivotek { }; + # libpyvivotek = callPackage ./python-modules/libpyvivotek { }; -# libpwquality = lib.pipe pkgs.libpwquality [ -# toPythonModule -# (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) -# (p: p.override { enablePython = true; inherit python; }) -# (p: p.py) -# ]; + # libpwquality = lib.pipe pkgs.libpwquality [ + # toPythonModule + # (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) + # (p: p.override { enablePython = true; inherit python; }) + # (p: p.py) + # ]; -# libredwg = toPythonModule (pkgs.libredwg.override { -# enablePython = true; -# inherit (self) python libxml2; -# }); + # libredwg = toPythonModule (pkgs.libredwg.override { + # enablePython = true; + # inherit (self) python libxml2; + # }); -# librepo = lib.pipe pkgs.librepo [ -# toPythonModule -# (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) -# (p: p.override { inherit python; }) -# (p: p.py) -# ]; + # librepo = lib.pipe pkgs.librepo [ + # toPythonModule + # (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; })) + # (p: p.override { inherit python; }) + # (p: p.py) + # ]; -# librespot = callPackage ./python-modules/librespot { }; + # librespot = callPackage ./python-modules/librespot { }; -# libretranslate = callPackage ./python-modules/libretranslate { }; + # libretranslate = callPackage ./python-modules/libretranslate { }; -# librosa = callPackage ./python-modules/librosa { }; + # librosa = callPackage ./python-modules/librosa { }; -# librouteros = callPackage ./python-modules/librouteros { }; + # librouteros = callPackage ./python-modules/librouteros { }; -# libsass = callPackage ./python-modules/libsass { -# inherit (pkgs) libsass; -# }; + # libsass = callPackage ./python-modules/libsass { + # inherit (pkgs) libsass; + # }; -# libsavitar = callPackage ./python-modules/libsavitar { }; + # libsavitar = callPackage ./python-modules/libsavitar { }; + # libsixel = callPackage ./python-modules/libsixel { + # inherit (pkgs) libsixel; + # }; -# libsixel = callPackage ./python-modules/libsixel { -# inherit (pkgs) libsixel; -# }; + # libselinux = lib.pipe pkgs.libselinux [ + # toPythonModule + # (p: + # p.overrideAttrs (super: { + # meta = super.meta // { + # outputsToInstall = [ "py" ]; + # broken = super.meta.broken or isPy27; + # }; + # })) + # (p: + # p.override { + # enablePython = true; + # python3 = python; + # }) + # (p: p.py) + # ]; -# libselinux = lib.pipe pkgs.libselinux [ -# toPythonModule -# (p: -# p.overrideAttrs (super: { -# meta = super.meta // { -# outputsToInstall = [ "py" ]; -# broken = super.meta.broken or isPy27; -# }; -# })) -# (p: -# p.override { -# enablePython = true; -# python3 = python; -# }) -# (p: p.py) -# ]; + # libsoundtouch = callPackage ./python-modules/libsoundtouch { }; -# libsoundtouch = callPackage ./python-modules/libsoundtouch { }; + # libthumbor = callPackage ./python-modules/libthumbor { }; -# libthumbor = callPackage ./python-modules/libthumbor { }; + # libtmux = callPackage ./python-modules/libtmux { }; -# libtmux = callPackage ./python-modules/libtmux { }; + # libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python; -# libtorrent-rasterbar = (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python; + # libusb1 = callPackage ./python-modules/libusb1 { + # inherit (pkgs) libusb1; + # }; -# libusb1 = callPackage ./python-modules/libusb1 { -# inherit (pkgs) libusb1; -# }; + # libusbsio = callPackage ./python-modules/libusbsio { + # inherit (pkgs) libusbsio; + # }; -# libusbsio = callPackage ./python-modules/libusbsio { -# inherit (pkgs) libusbsio; -# }; + # libversion = callPackage ./python-modules/libversion { + # inherit (pkgs) libversion; + # }; -# libversion = callPackage ./python-modules/libversion { -# inherit (pkgs) libversion; -# }; + # libvirt = callPackage ./python-modules/libvirt { + # inherit (pkgs) libvirt; + # }; -# libvirt = callPackage ./python-modules/libvirt { -# inherit (pkgs) libvirt; -# }; + libxml2 = + (toPythonModule ( + pkgs.libxml2.override { + pythonSupport = true; + inherit python; + } + )).py; - libxml2 = (toPythonModule (pkgs.libxml2.override { - pythonSupport = true; - inherit python; - })).py; + # libxslt = (toPythonModule (pkgs.libxslt.override { + # pythonSupport = true; + # inherit (self) python libxml2; + # })).py; -# libxslt = (toPythonModule (pkgs.libxslt.override { -# pythonSupport = true; -# inherit (self) python libxml2; -# })).py; + # liccheck = callPackage ./python-modules/liccheck { }; -# liccheck = callPackage ./python-modules/liccheck { }; + # license-expression = callPackage ./python-modules/license-expression { }; -# license-expression = callPackage ./python-modules/license-expression { }; + # lief = (toPythonModule (pkgs.lief.override { + # inherit python; + # })).py; -# lief = (toPythonModule (pkgs.lief.override { -# inherit python; -# })).py; + # life360 = callPackage ./python-modules/life360 { }; -# life360 = callPackage ./python-modules/life360 { }; + # lifelines = callPackage ./python-modules/lifelines { }; -# lifelines = callPackage ./python-modules/lifelines { }; + # lightgbm = callPackage ./python-modules/lightgbm { }; -# lightgbm = callPackage ./python-modules/lightgbm { }; + # lightning-utilities = callPackage ./python-modules/lightning-utilities { }; -# lightning-utilities = callPackage ./python-modules/lightning-utilities { }; + # lightparam = callPackage ./python-modules/lightparam { }; -# lightparam = callPackage ./python-modules/lightparam { }; + # lightwave = callPackage ./python-modules/lightwave { }; -# lightwave = callPackage ./python-modules/lightwave { }; + # lightwave2 = callPackage ./python-modules/lightwave2 { }; -# lightwave2 = callPackage ./python-modules/lightwave2 { }; + # lima = callPackage ./python-modules/lima { }; -# lima = callPackage ./python-modules/lima { }; + # lime = callPackage ./python-modules/lime { }; -# lime = callPackage ./python-modules/lime { }; + # limiter= callPackage ./python-modules/limiter { }; -# limiter= callPackage ./python-modules/limiter { }; + # limitlessled = callPackage ./python-modules/limitlessled { }; -# limitlessled = callPackage ./python-modules/limitlessled { }; + # limits = callPackage ./python-modules/limits { }; -# limits = callPackage ./python-modules/limits { }; + # limnoria = callPackage ./python-modules/limnoria { }; -# limnoria = callPackage ./python-modules/limnoria { }; + # linear-garage-door = callPackage ./python-modules/linear-garage-door { }; -# linear-garage-door = callPackage ./python-modules/linear-garage-door { }; + # linear-operator = callPackage ./python-modules/linear-operator { }; -# linear-operator = callPackage ./python-modules/linear-operator { }; + # linecache2 = callPackage ./python-modules/linecache2 { }; -# linecache2 = callPackage ./python-modules/linecache2 { }; + # lineedit = callPackage ./python-modules/lineedit { }; -# lineedit = callPackage ./python-modules/lineedit { }; + # line-profiler = callPackage ./python-modules/line-profiler { }; -# line-profiler = callPackage ./python-modules/line-profiler { }; + # linetable = callPackage ./python-modules/linetable { }; -# linetable = callPackage ./python-modules/linetable { }; + # lingua = callPackage ./python-modules/lingua { }; -# lingua = callPackage ./python-modules/lingua { }; + # lingva = callPackage ./python-modules/lingva { }; -# lingva = callPackage ./python-modules/lingva { }; + # linien-client = callPackage ./python-modules/linien-client { }; -# linien-client = callPackage ./python-modules/linien-client { }; + # linien-common = callPackage ./python-modules/linien-common { }; -# linien-common = callPackage ./python-modules/linien-common { }; + # linkify-it-py = callPackage ./python-modules/linkify-it-py { }; -# linkify-it-py = callPackage ./python-modules/linkify-it-py { }; + # linknlink = callPackage ./python-modules/linknlink { }; -# linknlink = callPackage ./python-modules/linknlink { }; + # linode-api = callPackage ./python-modules/linode-api { }; -# linode-api = callPackage ./python-modules/linode-api { }; + # linode = callPackage ./python-modules/linode { }; -# linode = callPackage ./python-modules/linode { }; + # linuxfd = callPackage ./python-modules/linuxfd { }; -# linuxfd = callPackage ./python-modules/linuxfd { }; + # lion-pytorch = callPackage ./python-modules/lion-pytorch { }; -# lion-pytorch = callPackage ./python-modules/lion-pytorch { }; + # liquidctl = callPackage ./python-modules/liquidctl { }; -# liquidctl = callPackage ./python-modules/liquidctl { }; + # lirc = toPythonModule (pkgs.lirc.override { + # python3 = python; + # }); -# lirc = toPythonModule (pkgs.lirc.override { -# python3 = python; -# }); + # lit = callPackage ./python-modules/lit { }; -# lit = callPackage ./python-modules/lit { }; + # litellm = callPackage ./python-modules/litellm { }; -# litellm = callPackage ./python-modules/litellm { }; + # litemapy = callPackage ./python-modules/litemapy { }; -# litemapy = callPackage ./python-modules/litemapy { }; + # littleutils = callPackage ./python-modules/littleutils { }; -# littleutils = callPackage ./python-modules/littleutils { }; + # livelossplot = callPackage ./python-modules/livelossplot { }; -# livelossplot = callPackage ./python-modules/livelossplot { }; + # livereload = callPackage ./python-modules/livereload { }; -# livereload = callPackage ./python-modules/livereload { }; + # lizard = callPackage ./python-modules/lizard { }; -# lizard = callPackage ./python-modules/lizard { }; + # llama-index = callPackage ./python-modules/llama-index { }; -# llama-index = callPackage ./python-modules/llama-index { }; + # llama-index-agent-openai = callPackage ./python-modules/llama-index-agent-openai { }; -# llama-index-agent-openai = callPackage ./python-modules/llama-index-agent-openai { }; + # llama-index-cli = callPackage ./python-modules/llama-index-cli { }; -# llama-index-cli = callPackage ./python-modules/llama-index-cli { }; + # llama-index-core = callPackage ./python-modules/llama-index-core { }; -# llama-index-core = callPackage ./python-modules/llama-index-core { }; + # llama-index-embeddings-gemini = callPackage ./python-modules/llama-index-embeddings-gemini { }; -# llama-index-embeddings-gemini = callPackage ./python-modules/llama-index-embeddings-gemini { }; + # llama-index-embeddings-google = callPackage ./python-modules/llama-index-embeddings-google { }; -# llama-index-embeddings-google = callPackage ./python-modules/llama-index-embeddings-google { }; + # llama-index-embeddings-huggingface = callPackage ./python-modules/llama-index-embeddings-huggingface { }; -# llama-index-embeddings-huggingface = callPackage ./python-modules/llama-index-embeddings-huggingface { }; + # llama-index-embeddings-ollama = callPackage ./python-modules/llama-index-embeddings-ollama { }; -# llama-index-embeddings-ollama = callPackage ./python-modules/llama-index-embeddings-ollama { }; + # llama-index-embeddings-openai = callPackage ./python-modules/llama-index-embeddings-openai { }; -# llama-index-embeddings-openai = callPackage ./python-modules/llama-index-embeddings-openai { }; + # llama-index-graph-stores-nebula = callPackage ./python-modules/llama-index-graph-stores-nebula { }; -# llama-index-graph-stores-nebula = callPackage ./python-modules/llama-index-graph-stores-nebula { }; + # llama-index-graph-stores-neo4j = callPackage ./python-modules/llama-index-graph-stores-neo4j { }; -# llama-index-graph-stores-neo4j = callPackage ./python-modules/llama-index-graph-stores-neo4j { }; + # llama-index-graph-stores-neptune = callPackage ./python-modules/llama-index-graph-stores-neptune { }; -# llama-index-graph-stores-neptune = callPackage ./python-modules/llama-index-graph-stores-neptune { }; + # llama-index-indices-managed-llama-cloud = callPackage ./python-modules/llama-index-indices-managed-llama-cloud { }; -# llama-index-indices-managed-llama-cloud = callPackage ./python-modules/llama-index-indices-managed-llama-cloud { }; + # llama-index-legacy = callPackage ./python-modules/llama-index-legacy { }; -# llama-index-legacy = callPackage ./python-modules/llama-index-legacy { }; + # llama-index-llms-ollama = callPackage ./python-modules/llama-index-llms-ollama { }; -# llama-index-llms-ollama = callPackage ./python-modules/llama-index-llms-ollama { }; + # llama-index-llms-openai = callPackage ./python-modules/llama-index-llms-openai { }; -# llama-index-llms-openai = callPackage ./python-modules/llama-index-llms-openai { }; + # llama-index-llms-openai-like = callPackage ./python-modules/llama-index-llms-openai-like { }; -# llama-index-llms-openai-like = callPackage ./python-modules/llama-index-llms-openai-like { }; + # llama-index-multi-modal-llms-openai = callPackage ./python-modules/llama-index-multi-modal-llms-openai { }; -# llama-index-multi-modal-llms-openai = callPackage ./python-modules/llama-index-multi-modal-llms-openai { }; + # llama-index-program-openai = callPackage ./python-modules/llama-index-program-openai { }; -# llama-index-program-openai = callPackage ./python-modules/llama-index-program-openai { }; + # llama-index-question-gen-openai = callPackage ./python-modules/llama-index-question-gen-openai { }; -# llama-index-question-gen-openai = callPackage ./python-modules/llama-index-question-gen-openai { }; + # llama-index-readers-database = callPackage ./python-modules/llama-index-readers-database { }; -# llama-index-readers-database = callPackage ./python-modules/llama-index-readers-database { }; + # llama-index-readers-file = callPackage ./python-modules/llama-index-readers-file { }; -# llama-index-readers-file = callPackage ./python-modules/llama-index-readers-file { }; + # llama-index-readers-json = callPackage ./python-modules/llama-index-readers-json { }; -# llama-index-readers-json = callPackage ./python-modules/llama-index-readers-json { }; + # llama-index-readers-llama-parse = callPackage ./python-modules/llama-index-readers-llama-parse { }; -# llama-index-readers-llama-parse = callPackage ./python-modules/llama-index-readers-llama-parse { }; + # llama-index-readers-s3 = callPackage ./python-modules/llama-index-readers-s3 { }; -# llama-index-readers-s3 = callPackage ./python-modules/llama-index-readers-s3 { }; + # llama-index-readers-twitter = callPackage ./python-modules/llama-index-readers-twitter { }; -# llama-index-readers-twitter = callPackage ./python-modules/llama-index-readers-twitter { }; + # llama-index-readers-txtai = callPackage ./python-modules/llama-index-readers-txtai { }; -# llama-index-readers-txtai = callPackage ./python-modules/llama-index-readers-txtai { }; + # llama-index-readers-weather = callPackage ./python-modules/llama-index-readers-weather { }; -# llama-index-readers-weather = callPackage ./python-modules/llama-index-readers-weather { }; + # llama-index-vector-stores-chroma = callPackage ./python-modules/llama-index-vector-stores-chroma { }; -# llama-index-vector-stores-chroma = callPackage ./python-modules/llama-index-vector-stores-chroma { }; + # llama-index-vector-stores-google = callPackage ./python-modules/llama-index-vector-stores-google { }; -# llama-index-vector-stores-google = callPackage ./python-modules/llama-index-vector-stores-google { }; + # llama-index-vector-stores-postgres = callPackage ./python-modules/llama-index-vector-stores-postgres { }; -# llama-index-vector-stores-postgres = callPackage ./python-modules/llama-index-vector-stores-postgres { }; + # llama-index-vector-stores-qdrant = callPackage ./python-modules/llama-index-vector-stores-qdrant { }; -# llama-index-vector-stores-qdrant = callPackage ./python-modules/llama-index-vector-stores-qdrant { }; + # llama-parse = callPackage ./python-modules/llama-parse { }; -# llama-parse = callPackage ./python-modules/llama-parse { }; + # llamaindex-py-client = callPackage ./python-modules/llamaindex-py-client { }; -# llamaindex-py-client = callPackage ./python-modules/llamaindex-py-client { }; + # llfuse = callPackage ./python-modules/llfuse { + # inherit (pkgs) fuse; + # }; -# llfuse = callPackage ./python-modules/llfuse { -# inherit (pkgs) fuse; -# }; + # llm = callPackage ./python-modules/llm { }; -# llm = callPackage ./python-modules/llm { }; + # llvmlite = callPackage ./python-modules/llvmlite { + # # llvmlite always requires a specific version of llvm. + # llvm = pkgs.llvm_14; + # }; -# llvmlite = callPackage ./python-modules/llvmlite { -# # llvmlite always requires a specific version of llvm. -# llvm = pkgs.llvm_14; -# }; + # lmcloud = callPackage ./python-modules/lmcloud { }; -# lmcloud = callPackage ./python-modules/lmcloud { }; + # lmdb = callPackage ./python-modules/lmdb { + # inherit (pkgs) lmdb; + # }; -# lmdb = callPackage ./python-modules/lmdb { -# inherit (pkgs) lmdb; -# }; + # lmfit = callPackage ./python-modules/lmfit { }; -# lmfit = callPackage ./python-modules/lmfit { }; + # lml = callPackage ./python-modules/lml { }; -# lml = callPackage ./python-modules/lml { }; + # lmnotify = callPackage ./python-modules/lmnotify { }; -# lmnotify = callPackage ./python-modules/lmnotify { }; + # lmtpd = callPackage ./python-modules/lmtpd { }; -# lmtpd = callPackage ./python-modules/lmtpd { }; + # lnkparse3 = callPackage ./python-modules/lnkparse3 { }; -# lnkparse3 = callPackage ./python-modules/lnkparse3 { }; + # loca = callPackage ./python-modules/loca { }; -# loca = callPackage ./python-modules/loca { }; + # localimport = callPackage ./python-modules/localimport { }; -# localimport = callPackage ./python-modules/localimport { }; + # localstack = callPackage ./python-modules/localstack { }; -# localstack = callPackage ./python-modules/localstack { }; + # localstack-client = callPackage ./python-modules/localstack-client { }; -# localstack-client = callPackage ./python-modules/localstack-client { }; + # localstack-ext = callPackage ./python-modules/localstack-ext { }; -# localstack-ext = callPackage ./python-modules/localstack-ext { }; + # localzone = callPackage ./python-modules/localzone { }; -# localzone = callPackage ./python-modules/localzone { }; + # locationsharinglib = callPackage ./python-modules/locationsharinglib { }; -# locationsharinglib = callPackage ./python-modules/locationsharinglib { }; + # locket = callPackage ./python-modules/locket { }; -# locket = callPackage ./python-modules/locket { }; + # lockfile = callPackage ./python-modules/lockfile { }; -# lockfile = callPackage ./python-modules/lockfile { }; + # log-symbols = callPackage ./python-modules/log-symbols { }; -# log-symbols = callPackage ./python-modules/log-symbols { }; + # logbook = callPackage ./python-modules/logbook { }; -# logbook = callPackage ./python-modules/logbook { }; + # logfury = callPackage ./python-modules/logfury { }; -# logfury = callPackage ./python-modules/logfury { }; + # logging-journald = callPackage ./python-modules/logging-journald { }; -# logging-journald = callPackage ./python-modules/logging-journald { }; + # logi-circle = callPackage ./python-modules/logi-circle { }; -# logi-circle = callPackage ./python-modules/logi-circle { }; + # logical-unification = callPackage ./python-modules/logical-unification { }; -# logical-unification = callPackage ./python-modules/logical-unification { }; + # logilab-common = callPackage ./python-modules/logilab/common.nix { }; -# logilab-common = callPackage ./python-modules/logilab/common.nix { }; + # logilab-constraint = callPackage ./python-modules/logilab/constraint.nix { }; -# logilab-constraint = callPackage ./python-modules/logilab/constraint.nix { }; + # logmatic-python = callPackage ./python-modules/logmatic-python { }; -# logmatic-python = callPackage ./python-modules/logmatic-python { }; + # logster = callPackage ./python-modules/logster { }; -# logster = callPackage ./python-modules/logster { }; + # loguru = callPackage ./python-modules/loguru { }; -# loguru = callPackage ./python-modules/loguru { }; + # logutils = callPackage ./python-modules/logutils { + # redis-server = pkgs.redis; + # }; -# logutils = callPackage ./python-modules/logutils { -# redis-server = pkgs.redis; -# }; + # logzero = callPackage ./python-modules/logzero { }; -# logzero = callPackage ./python-modules/logzero { }; + # lomond = callPackage ./python-modules/lomond { }; -# lomond = callPackage ./python-modules/lomond { }; + # loopy = callPackage ./python-modules/loopy { }; -# loopy = callPackage ./python-modules/loopy { }; + # looseversion = callPackage ./python-modules/looseversion { }; -# looseversion = callPackage ./python-modules/looseversion { }; + # loqedapi = callPackage ./python-modules/loqedapi { }; -# loqedapi = callPackage ./python-modules/loqedapi { }; + # losant-rest = callPackage ./python-modules/losant-rest { }; -# losant-rest = callPackage ./python-modules/losant-rest { }; + # lpc-checksum = callPackage ./python-modules/lpc-checksum { }; -# lpc-checksum = callPackage ./python-modules/lpc-checksum { }; + # lrcalc-python = callPackage ./python-modules/lrcalc-python { }; -# lrcalc-python = callPackage ./python-modules/lrcalc-python { }; + # lru-dict = callPackage ./python-modules/lru-dict { }; -# lru-dict = callPackage ./python-modules/lru-dict { }; + # lsassy = callPackage ./python-modules/lsassy { }; -# lsassy = callPackage ./python-modules/lsassy { }; + # lsprotocol = callPackage ./python-modules/lsprotocol { }; -# lsprotocol = callPackage ./python-modules/lsprotocol { }; + # ltpycld2 = callPackage ./python-modules/ltpycld2 { }; -# ltpycld2 = callPackage ./python-modules/ltpycld2 { }; + # lttng = callPackage ./python-modules/lttng { }; -# lttng = callPackage ./python-modules/lttng { }; + # luddite = callPackage ./python-modules/luddite { }; -# luddite = callPackage ./python-modules/luddite { }; + # luftdaten = callPackage ./python-modules/luftdaten { }; -# luftdaten = callPackage ./python-modules/luftdaten { }; + # luhn = callPackage ./python-modules/luhn { }; -# luhn = callPackage ./python-modules/luhn { }; + # lunarcalendar = callPackage ./python-modules/lunarcalendar { }; -# lunarcalendar = callPackage ./python-modules/lunarcalendar { }; + # luqum = callPackage ./python-modules/luqum { }; -# luqum = callPackage ./python-modules/luqum { }; + # luxor = callPackage ./python-modules/luxor { }; -# luxor = callPackage ./python-modules/luxor { }; + # luxtronik = callPackage ./python-modules/luxtronik { }; -# luxtronik = callPackage ./python-modules/luxtronik { }; + # lupa = callPackage ./python-modules/lupa { }; -# lupa = callPackage ./python-modules/lupa { }; + # lupupy = callPackage ./python-modules/lupupy { }; -# lupupy = callPackage ./python-modules/lupupy { }; + # lxmf= callPackage ./python-modules/lxmf { }; -# lxmf= callPackage ./python-modules/lxmf { }; + lxml = callPackage ./python-modules/lxml { inherit (pkgs) libxml2 libxslt zlib; }; - lxml = callPackage ./python-modules/lxml { - inherit (pkgs) libxml2 libxslt zlib; - }; + # lxml-html-clean = callPackage ./python-modules/lxml-html-clean { }; -# lxml-html-clean = callPackage ./python-modules/lxml-html-clean { }; + # lxml-stubs = callPackage ./python-modules/lxml-stubs { }; -# lxml-stubs = callPackage ./python-modules/lxml-stubs { }; + # lyricwikia = callPackage ./python-modules/lyricwikia { }; -# lyricwikia = callPackage ./python-modules/lyricwikia { }; + # lz4 = callPackage ./python-modules/lz4 { }; -# lz4 = callPackage ./python-modules/lz4 { }; + # lzallright = callPackage ./python-modules/lzallright { }; -# lzallright = callPackage ./python-modules/lzallright { }; + # lzstring = callPackage ./python-modules/lzstring { }; -# lzstring = callPackage ./python-modules/lzstring { }; + # m2crypto = callPackage ./python-modules/m2crypto { }; -# m2crypto = callPackage ./python-modules/m2crypto { }; + # m2r = callPackage ./python-modules/m2r { }; -# m2r = callPackage ./python-modules/m2r { }; + # m3u8 = callPackage ./python-modules/m3u8 { }; -# m3u8 = callPackage ./python-modules/m3u8 { }; + # mac-alias = callPackage ./python-modules/mac-alias { }; -# mac-alias = callPackage ./python-modules/mac-alias { }; + # mac-vendor-lookup = callPackage ./python-modules/mac-vendor-lookup { }; -# mac-vendor-lookup = callPackage ./python-modules/mac-vendor-lookup { }; + # macaddress = callPackage ./python-modules/macaddress{ }; -# macaddress = callPackage ./python-modules/macaddress{ }; + # macfsevents = callPackage ./python-modules/macfsevents { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices; + # }; -# macfsevents = callPackage ./python-modules/macfsevents { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices; -# }; + # macropy = callPackage ./python-modules/macropy { }; -# macropy = callPackage ./python-modules/macropy { }; + # maestral = callPackage ./python-modules/maestral { }; -# maestral = callPackage ./python-modules/maestral { }; + # magic = callPackage ./python-modules/magic { }; -# magic = callPackage ./python-modules/magic { }; + # magicgui = callPackage ./python-modules/magicgui { }; -# magicgui = callPackage ./python-modules/magicgui { }; + # magic-filter = callPackage ./python-modules/magic-filter { }; -# magic-filter = callPackage ./python-modules/magic-filter { }; + # magic-wormhole = callPackage ./python-modules/magic-wormhole { }; -# magic-wormhole = callPackage ./python-modules/magic-wormhole { }; + # magic-wormhole-mailbox-server = callPackage ./python-modules/magic-wormhole-mailbox-server { }; -# magic-wormhole-mailbox-server = callPackage ./python-modules/magic-wormhole-mailbox-server { }; + # magic-wormhole-transit-relay = callPackage ./python-modules/magic-wormhole-transit-relay { }; -# magic-wormhole-transit-relay = callPackage ./python-modules/magic-wormhole-transit-relay { }; + # magika = callPackage ./python-modules/magika { }; -# magika = callPackage ./python-modules/magika { }; + # mahotas = callPackage ./python-modules/mahotas { }; -# mahotas = callPackage ./python-modules/mahotas { }; + # mailcap-fix = callPackage ./python-modules/mailcap-fix { }; -# mailcap-fix = callPackage ./python-modules/mailcap-fix { }; + # mailchecker = callPackage ./python-modules/mailchecker { }; -# mailchecker = callPackage ./python-modules/mailchecker { }; + # mailchimp = callPackage ./python-modules/mailchimp { }; -# mailchimp = callPackage ./python-modules/mailchimp { }; + # mailmanclient = callPackage ./python-modules/mailmanclient { }; -# mailmanclient = callPackage ./python-modules/mailmanclient { }; + # rtfde = callPackage ./python-modules/rtfde { }; -# rtfde = callPackage ./python-modules/rtfde { }; + # rtfunicode = callPackage ./python-modules/rtfunicode { }; -# rtfunicode = callPackage ./python-modules/rtfunicode { }; + # rtmixer = callPackage ./python-modules/rtmixer { }; -# rtmixer = callPackage ./python-modules/rtmixer { }; + # regress = callPackage ./python-modules/regress { }; -# regress = callPackage ./python-modules/regress { }; + # macaroonbakery = callPackage ./python-modules/macaroonbakery { }; -# macaroonbakery = callPackage ./python-modules/macaroonbakery { }; + # mail-parser = callPackage ./python-modules/mail-parser { }; -# mail-parser = callPackage ./python-modules/mail-parser { }; + # makefun = callPackage ./python-modules/makefun { }; -# makefun = callPackage ./python-modules/makefun { }; + # mailsuite = callPackage ./python-modules/mailsuite { }; -# mailsuite = callPackage ./python-modules/mailsuite { }; + # maison = callPackage ./python-modules/maison { }; -# maison = callPackage ./python-modules/maison { }; + # mako = callPackage ./python-modules/mako { }; -# mako = callPackage ./python-modules/mako { }; + # malduck = callPackage ./python-modules/malduck { }; -# malduck = callPackage ./python-modules/malduck { }; + # managesieve = callPackage ./python-modules/managesieve { }; -# managesieve = callPackage ./python-modules/managesieve { }; + # mando = callPackage ./python-modules/mando { }; -# mando = callPackage ./python-modules/mando { }; + # mandown = callPackage ./python-modules/mandown { }; -# mandown = callPackage ./python-modules/mandown { }; + # manga-ocr = callPackage ./python-modules/manga-ocr { }; -# manga-ocr = callPackage ./python-modules/manga-ocr { }; + # manhole = callPackage ./python-modules/manhole { }; -# manhole = callPackage ./python-modules/manhole { }; + # manim = callPackage ./python-modules/manim { }; -# manim = callPackage ./python-modules/manim { }; + # manimpango = callPackage ./python-modules/manimpango { + # inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; + # }; -# manimpango = callPackage ./python-modules/manimpango { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# }; + # manim-slides = callPackage ./python-modules/manim-slides { }; -# manim-slides = callPackage ./python-modules/manim-slides { }; + # manifest-ml = callPackage ./python-modules/manifest-ml { }; -# manifest-ml = callPackage ./python-modules/manifest-ml { }; + # manifestoo = callPackage ./python-modules/manifestoo { }; -# manifestoo = callPackage ./python-modules/manifestoo { }; + # manifestoo-core = callPackage ./python-modules/manifestoo-core { }; -# manifestoo-core = callPackage ./python-modules/manifestoo-core { }; + # manifestparser = callPackage ./python-modules/marionette-harness/manifestparser.nix { }; -# manifestparser = callPackage ./python-modules/marionette-harness/manifestparser.nix { }; + # manuel = callPackage ./python-modules/manuel { }; -# manuel = callPackage ./python-modules/manuel { }; + # manuf = callPackage ./python-modules/manuf { }; -# manuf = callPackage ./python-modules/manuf { }; + # mapbox = callPackage ./python-modules/mapbox { }; -# mapbox = callPackage ./python-modules/mapbox { }; + # mapbox-earcut = callPackage ./python-modules/mapbox-earcut { }; -# mapbox-earcut = callPackage ./python-modules/mapbox-earcut { }; + # mariadb = callPackage ./python-modules/mariadb { }; -# mariadb = callPackage ./python-modules/mariadb { }; + # marimo = callPackage ./python-modules/marimo { }; -# marimo = callPackage ./python-modules/marimo { }; + # marisa = callPackage ./python-modules/marisa { + # inherit (pkgs) marisa; + # }; -# marisa = callPackage ./python-modules/marisa { -# inherit (pkgs) marisa; -# }; + # marisa-trie = callPackage ./python-modules/marisa-trie { }; -# marisa-trie = callPackage ./python-modules/marisa-trie { }; + # markdown2 = callPackage ./python-modules/markdown2 { }; -# markdown2 = callPackage ./python-modules/markdown2 { }; + # markdown = callPackage ./python-modules/markdown { }; -# markdown = callPackage ./python-modules/markdown { }; + # markdown-include = callPackage ./python-modules/markdown-include { }; -# markdown-include = callPackage ./python-modules/markdown-include { }; + # markdown-it-py = callPackage ./python-modules/markdown-it-py { }; -# markdown-it-py = callPackage ./python-modules/markdown-it-py { }; + # markdown-macros = callPackage ./python-modules/markdown-macros { }; -# markdown-macros = callPackage ./python-modules/markdown-macros { }; - -# markdownify = callPackage ./python-modules/markdownify { }; + # markdownify = callPackage ./python-modules/markdownify { }; markupsafe = callPackage ./python-modules/markupsafe { }; -# markuppy = callPackage ./python-modules/markuppy { }; + # markuppy = callPackage ./python-modules/markuppy { }; -# markups = callPackage ./python-modules/markups { }; + # markups = callPackage ./python-modules/markups { }; -# marshmallow = callPackage ./python-modules/marshmallow { }; + # marshmallow = callPackage ./python-modules/marshmallow { }; -# marshmallow-dataclass = callPackage ./python-modules/marshmallow-dataclass { }; + # marshmallow-dataclass = callPackage ./python-modules/marshmallow-dataclass { }; -# marshmallow-enum = callPackage ./python-modules/marshmallow-enum { }; + # marshmallow-enum = callPackage ./python-modules/marshmallow-enum { }; -# marshmallow-oneofschema = callPackage ./python-modules/marshmallow-oneofschema { }; + # marshmallow-oneofschema = callPackage ./python-modules/marshmallow-oneofschema { }; -# marshmallow-polyfield = callPackage ./python-modules/marshmallow-polyfield { }; + # marshmallow-polyfield = callPackage ./python-modules/marshmallow-polyfield { }; -# marshmallow-sqlalchemy = callPackage ./python-modules/marshmallow-sqlalchemy { }; + # marshmallow-sqlalchemy = callPackage ./python-modules/marshmallow-sqlalchemy { }; -# mashumaro = callPackage ./python-modules/mashumaro { }; + # mashumaro = callPackage ./python-modules/mashumaro { }; -# masky = callPackage ./python-modules/masky { }; + # masky = callPackage ./python-modules/masky { }; -# mastodon-py = callPackage ./python-modules/mastodon-py { }; + # mastodon-py = callPackage ./python-modules/mastodon-py { }; -# mat2 = callPackage ./python-modules/mat2 { }; + # mat2 = callPackage ./python-modules/mat2 { }; -# material-color-utilities = callPackage ./python-modules/material-color-utilities { }; + # material-color-utilities = callPackage ./python-modules/material-color-utilities { }; -# matchpy = callPackage ./python-modules/matchpy { }; + # matchpy = callPackage ./python-modules/matchpy { }; -# mathlibtools = callPackage ./python-modules/mathlibtools { }; + # mathlibtools = callPackage ./python-modules/mathlibtools { }; -# matlink-gpapi = callPackage ./python-modules/matlink-gpapi { }; + # matlink-gpapi = callPackage ./python-modules/matlink-gpapi { }; -# matplotlib = callPackage ./python-modules/matplotlib { -# stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv; -# inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; -# ghostscript = pkgs.ghostscript_headless; -# }; + # matplotlib = callPackage ./python-modules/matplotlib { + # stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv; + # inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; + # ghostscript = pkgs.ghostscript_headless; + # }; -# matplotlib-inline = callPackage ./python-modules/matplotlib-inline { }; + # matplotlib-inline = callPackage ./python-modules/matplotlib-inline { }; -# matplotlib-sixel = callPackage ./python-modules/matplotlib-sixel { }; + # matplotlib-sixel = callPackage ./python-modules/matplotlib-sixel { }; -# matplotx = callPackage ./python-modules/matplotx { }; + # matplotx = callPackage ./python-modules/matplotx { }; -# matrix-api-async = callPackage ./python-modules/matrix-api-async { }; + # matrix-api-async = callPackage ./python-modules/matrix-api-async { }; -# matrix-client = callPackage ./python-modules/matrix-client { }; + # matrix-client = callPackage ./python-modules/matrix-client { }; -# matrix-common = callPackage ./python-modules/matrix-common { }; + # matrix-common = callPackage ./python-modules/matrix-common { }; -# matrix-nio = callPackage ./python-modules/matrix-nio { }; + # matrix-nio = callPackage ./python-modules/matrix-nio { }; -# mattermostdriver = callPackage ./python-modules/mattermostdriver { }; + # mattermostdriver = callPackage ./python-modules/mattermostdriver { }; -# maubot = callPackage ../tools/networking/maubot { }; + # maubot = callPackage ../tools/networking/maubot { }; -# mautrix = callPackage ./python-modules/mautrix { }; + # mautrix = callPackage ./python-modules/mautrix { }; -# mautrix-appservice = self.mautrix; # alias 2019-12-28 + # mautrix-appservice = self.mautrix; # alias 2019-12-28 -# maxcube-api = callPackage ./python-modules/maxcube-api { }; + # maxcube-api = callPackage ./python-modules/maxcube-api { }; -# maxminddb = callPackage ./python-modules/maxminddb { }; + # maxminddb = callPackage ./python-modules/maxminddb { }; -# maya = callPackage ./python-modules/maya { }; + # maya = callPackage ./python-modules/maya { }; -# mayavi = pkgs.libsForQt5.callPackage ./python-modules/mayavi { -# inherit (self) buildPythonPackage pythonOlder pythonAtLeast pyface pygments numpy packaging vtk traitsui envisage apptools pyqt5; -# }; + # mayavi = pkgs.libsForQt5.callPackage ./python-modules/mayavi { + # inherit (self) buildPythonPackage pythonOlder pythonAtLeast pyface pygments numpy packaging vtk traitsui envisage apptools pyqt5; + # }; -# mayim = callPackage ./python-modules/mayim { }; + # mayim = callPackage ./python-modules/mayim { }; -# mbddns = callPackage ./python-modules/mbddns { }; + # mbddns = callPackage ./python-modules/mbddns { }; -# mbstrdecoder = callPackage ./python-modules/mbstrdecoder { }; + # mbstrdecoder = callPackage ./python-modules/mbstrdecoder { }; -# mccabe = callPackage ./python-modules/mccabe { }; + # mccabe = callPackage ./python-modules/mccabe { }; -# mcstatus = callPackage ./python-modules/mcstatus { }; + # mcstatus = callPackage ./python-modules/mcstatus { }; -# mcuuid = callPackage ./python-modules/mcuuid { }; + # mcuuid = callPackage ./python-modules/mcuuid { }; -# md-toc = callPackage ./python-modules/md-toc { }; + # md-toc = callPackage ./python-modules/md-toc { }; -# mdx-truly-sane-lists = callPackage ./python-modules/mdx-truly-sane-lists { }; + # mdx-truly-sane-lists = callPackage ./python-modules/mdx-truly-sane-lists { }; -# md2gemini = callPackage ./python-modules/md2gemini { }; + # md2gemini = callPackage ./python-modules/md2gemini { }; -# mdformat = callPackage ./python-modules/mdformat { }; -# mdformat-admon = callPackage ./python-modules/mdformat-admon { }; -# mdformat-beautysh = callPackage ./python-modules/mdformat-beautysh { }; -# mdformat-footnote = callPackage ./python-modules/mdformat-footnote { }; -# mdformat-frontmatter = callPackage ./python-modules/mdformat-frontmatter { }; -# mdformat-gfm = callPackage ./python-modules/mdformat-gfm { }; -# mdformat-mkdocs = callPackage ./python-modules/mdformat-mkdocs { }; -# mdformat-nix-alejandra = callPackage ./python-modules/mdformat-nix-alejandra { }; -# mdformat-simple-breaks = callPackage ./python-modules/mdformat-simple-breaks { }; -# mdformat-tables = callPackage ./python-modules/mdformat-tables { }; -# mdformat-toc = callPackage ./python-modules/mdformat-toc { }; + # mdformat = callPackage ./python-modules/mdformat { }; + # mdformat-admon = callPackage ./python-modules/mdformat-admon { }; + # mdformat-beautysh = callPackage ./python-modules/mdformat-beautysh { }; + # mdformat-footnote = callPackage ./python-modules/mdformat-footnote { }; + # mdformat-frontmatter = callPackage ./python-modules/mdformat-frontmatter { }; + # mdformat-gfm = callPackage ./python-modules/mdformat-gfm { }; + # mdformat-mkdocs = callPackage ./python-modules/mdformat-mkdocs { }; + # mdformat-nix-alejandra = callPackage ./python-modules/mdformat-nix-alejandra { }; + # mdformat-simple-breaks = callPackage ./python-modules/mdformat-simple-breaks { }; + # mdformat-tables = callPackage ./python-modules/mdformat-tables { }; + # mdformat-toc = callPackage ./python-modules/mdformat-toc { }; -# mdit-py-plugins = callPackage ./python-modules/mdit-py-plugins { }; + # mdit-py-plugins = callPackage ./python-modules/mdit-py-plugins { }; -# mdtraj = callPackage ./python-modules/mdtraj { }; + # mdtraj = callPackage ./python-modules/mdtraj { }; -# mdurl = callPackage ./python-modules/mdurl { }; + # mdurl = callPackage ./python-modules/mdurl { }; -# mdutils = callPackage ./python-modules/mdutils { }; + # mdutils = callPackage ./python-modules/mdutils { }; -# mdp = callPackage ./python-modules/mdp { }; + # mdp = callPackage ./python-modules/mdp { }; -# measurement = callPackage ./python-modules/measurement { }; + # measurement = callPackage ./python-modules/measurement { }; -# meater-python = callPackage ./python-modules/meater-python { }; + # meater-python = callPackage ./python-modules/meater-python { }; -# mecab-python3 = callPackage ./python-modules/mecab-python3 { }; + # mecab-python3 = callPackage ./python-modules/mecab-python3 { }; -# mechanicalsoup = callPackage ./python-modules/mechanicalsoup { }; + # mechanicalsoup = callPackage ./python-modules/mechanicalsoup { }; -# mechanize = callPackage ./python-modules/mechanize { }; + # mechanize = callPackage ./python-modules/mechanize { }; -# mediafile = callPackage ./python-modules/mediafile { }; + # mediafile = callPackage ./python-modules/mediafile { }; -# mediafire-dl = callPackage ./python-modules/mediafire-dl { }; + # mediafire-dl = callPackage ./python-modules/mediafire-dl { }; -# mediapy = callPackage ./python-modules/mediapy { }; + # mediapy = callPackage ./python-modules/mediapy { }; -# medpy = callPackage ./python-modules/medpy { }; + # medpy = callPackage ./python-modules/medpy { }; -# meeko = callPackage ./python-modules/meeko { }; + # meeko = callPackage ./python-modules/meeko { }; -# meep = callPackage ./python-modules/meep { }; + # meep = callPackage ./python-modules/meep { }; -# meilisearch = callPackage ./python-modules/meilisearch { }; + # meilisearch = callPackage ./python-modules/meilisearch { }; -# meinheld = callPackage ./python-modules/meinheld { }; + # meinheld = callPackage ./python-modules/meinheld { }; -# meld3 = callPackage ./python-modules/meld3 { }; + # meld3 = callPackage ./python-modules/meld3 { }; -# memestra = callPackage ./python-modules/memestra { }; + # memestra = callPackage ./python-modules/memestra { }; -# memory-allocator = callPackage ./python-modules/memory-allocator { }; + # memory-allocator = callPackage ./python-modules/memory-allocator { }; -# memory-profiler = callPackage ./python-modules/memory-profiler { }; + # memory-profiler = callPackage ./python-modules/memory-profiler { }; -# meraki = callPackage ./python-modules/meraki { }; + # meraki = callPackage ./python-modules/meraki { }; -# mercadopago = callPackage ./python-modules/mercadopago { }; + # mercadopago = callPackage ./python-modules/mercadopago { }; -# mercantile = callPackage ./python-modules/mercantile { }; + # mercantile = callPackage ./python-modules/mercantile { }; -# mercurial = toPythonModule (pkgs.mercurial.override { -# python3Packages = self; -# }); + # mercurial = toPythonModule (pkgs.mercurial.override { + # python3Packages = self; + # }); -# merge3 = callPackage ./python-modules/merge3 { }; + # merge3 = callPackage ./python-modules/merge3 { }; -# mergedb = callPackage ./python-modules/mergedb { }; + # mergedb = callPackage ./python-modules/mergedb { }; -# mergedeep = callPackage ./python-modules/mergedeep { }; + # mergedeep = callPackage ./python-modules/mergedeep { }; -# mergedict = callPackage ./python-modules/mergedict { }; + # mergedict = callPackage ./python-modules/mergedict { }; -# merkletools = callPackage ./python-modules/merkletools { }; + # merkletools = callPackage ./python-modules/merkletools { }; -# meross-iot = callPackage ./python-modules/meross-iot { }; + # meross-iot = callPackage ./python-modules/meross-iot { }; -# mesa = callPackage ./python-modules/mesa { }; + # mesa = callPackage ./python-modules/mesa { }; -# meshcat = callPackage ./python-modules/meshcat { }; + # meshcat = callPackage ./python-modules/meshcat { }; -# meshio = callPackage ./python-modules/meshio { }; + # meshio = callPackage ./python-modules/meshio { }; -# meshlabxml = callPackage ./python-modules/meshlabxml { }; + # meshlabxml = callPackage ./python-modules/meshlabxml { }; -# meshtastic = callPackage ./python-modules/meshtastic { }; + # meshtastic = callPackage ./python-modules/meshtastic { }; -# meson = toPythonModule ((pkgs.meson.override { python3 = python; }).overridePythonAttrs -# (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently. -# setupHook = null; -# })); + # meson = toPythonModule ((pkgs.meson.override { python3 = python; }).overridePythonAttrs + # (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently. + # setupHook = null; + # })); -# mesonpep517 = callPackage ./python-modules/mesonpep517 { }; + # mesonpep517 = callPackage ./python-modules/mesonpep517 { }; -# meson-python = callPackage ./python-modules/meson-python { -# inherit (pkgs) ninja; -# }; + # meson-python = callPackage ./python-modules/meson-python { + # inherit (pkgs) ninja; + # }; -# messagebird = callPackage ./python-modules/messagebird { }; + # messagebird = callPackage ./python-modules/messagebird { }; -# metakernel = callPackage ./python-modules/metakernel { }; + # metakernel = callPackage ./python-modules/metakernel { }; -# metar = callPackage ./python-modules/metar { }; + # metar = callPackage ./python-modules/metar { }; -# metawear = callPackage ./python-modules/metawear { }; + # metawear = callPackage ./python-modules/metawear { }; -# meteoalertapi = callPackage ./python-modules/meteoalertapi { }; + # meteoalertapi = callPackage ./python-modules/meteoalertapi { }; -# meteocalc = callPackage ./python-modules/meteocalc { }; + # meteocalc = callPackage ./python-modules/meteocalc { }; -# meteofrance-api = callPackage ./python-modules/meteofrance-api { }; + # meteofrance-api = callPackage ./python-modules/meteofrance-api { }; -# mezzanine = callPackage ./python-modules/mezzanine { }; + # mezzanine = callPackage ./python-modules/mezzanine { }; -# mf2py = callPackage ./python-modules/mf2py { }; + # mf2py = callPackage ./python-modules/mf2py { }; -# mhcflurry = callPackage ./python-modules/mhcflurry { }; + # mhcflurry = callPackage ./python-modules/mhcflurry { }; -# mhcgnomes = callPackage ./python-modules/mhcgnomes { }; + # mhcgnomes = callPackage ./python-modules/mhcgnomes { }; -# miauth = callPackage ./python-modules/miauth { }; + # miauth = callPackage ./python-modules/miauth { }; -# micawber = callPackage ./python-modules/micawber { }; + # micawber = callPackage ./python-modules/micawber { }; -# microdata = callPackage ./python-modules/microdata { }; + # microdata = callPackage ./python-modules/microdata { }; -# microsoft-kiota-abstractions = callPackage ./python-modules/microsoft-kiota-abstractions { }; + # microsoft-kiota-abstractions = callPackage ./python-modules/microsoft-kiota-abstractions { }; -# microsoft-kiota-authentication-azure = callPackage ./python-modules/microsoft-kiota-authentication-azure { }; + # microsoft-kiota-authentication-azure = callPackage ./python-modules/microsoft-kiota-authentication-azure { }; -# microsoft-kiota-http = callPackage ./python-modules/microsoft-kiota-http { }; + # microsoft-kiota-http = callPackage ./python-modules/microsoft-kiota-http { }; -# microsoft-kiota-serialization-form = callPackage ./python-modules/microsoft-kiota-serialization-form { }; + # microsoft-kiota-serialization-form = callPackage ./python-modules/microsoft-kiota-serialization-form { }; -# microsoft-kiota-serialization-json = callPackage ./python-modules/microsoft-kiota-serialization-json { }; + # microsoft-kiota-serialization-json = callPackage ./python-modules/microsoft-kiota-serialization-json { }; -# microsoft-kiota-serialization-multipart = callPackage ./python-modules/microsoft-kiota-serialization-multipart { }; + # microsoft-kiota-serialization-multipart = callPackage ./python-modules/microsoft-kiota-serialization-multipart { }; -# microsoft-kiota-serialization-text = callPackage ./python-modules/microsoft-kiota-serialization-text { }; + # microsoft-kiota-serialization-text = callPackage ./python-modules/microsoft-kiota-serialization-text { }; -# midea-beautiful-air = callPackage ./python-modules/midea-beautiful-air { }; + # midea-beautiful-air = callPackage ./python-modules/midea-beautiful-air { }; -# midiutil = callPackage ./python-modules/midiutil { }; + # midiutil = callPackage ./python-modules/midiutil { }; -# mido = callPackage ./python-modules/mido { }; + # mido = callPackage ./python-modules/mido { }; -# migen = callPackage ./python-modules/migen { }; + # migen = callPackage ./python-modules/migen { }; -# mike = callPackage ./python-modules/mike { }; + # mike = callPackage ./python-modules/mike { }; -# milc = callPackage ./python-modules/milc { }; + # milc = callPackage ./python-modules/milc { }; -# milksnake = callPackage ./python-modules/milksnake { }; + # milksnake = callPackage ./python-modules/milksnake { }; -# mill-local = callPackage ./python-modules/mill-local { }; + # mill-local = callPackage ./python-modules/mill-local { }; -# millheater = callPackage ./python-modules/millheater { }; + # millheater = callPackage ./python-modules/millheater { }; -# mindsdb-evaluator = callPackage ./python-modules/mindsdb-evaluator { }; + # mindsdb-evaluator = callPackage ./python-modules/mindsdb-evaluator { }; -# minexr = callPackage ./python-modules/minexr { }; + # minexr = callPackage ./python-modules/minexr { }; -# miniaudio = callPackage ./python-modules/miniaudio { -# inherit (pkgs) miniaudio; -# inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox CoreAudio; -# }; + # miniaudio = callPackage ./python-modules/miniaudio { + # inherit (pkgs) miniaudio; + # inherit (pkgs.darwin.apple_sdk.frameworks) AudioToolbox CoreAudio; + # }; -# minichain = callPackage ./python-modules/minichain { }; + # minichain = callPackage ./python-modules/minichain { }; -# minidb = callPackage ./python-modules/minidb { }; + # minidb = callPackage ./python-modules/minidb { }; -# minidump = callPackage ./python-modules/minidump { }; + # minidump = callPackage ./python-modules/minidump { }; -# miniful = callPackage ./python-modules/miniful { }; + # miniful = callPackage ./python-modules/miniful { }; -# minikanren = callPackage ./python-modules/minikanren { }; + # minikanren = callPackage ./python-modules/minikanren { }; -# minikerberos = callPackage ./python-modules/minikerberos { }; + # minikerberos = callPackage ./python-modules/minikerberos { }; -# minimal-snowplow-tracker = callPackage ./python-modules/minimal-snowplow-tracker { }; + # minimal-snowplow-tracker = callPackage ./python-modules/minimal-snowplow-tracker { }; -# minimock = callPackage ./python-modules/minimock { }; + # minimock = callPackage ./python-modules/minimock { }; -# mininet-python = (toPythonModule (pkgs.mininet.override { -# python3 = python; -# })).py; + # mininet-python = (toPythonModule (pkgs.mininet.override { + # python3 = python; + # })).py; -# minio = callPackage ./python-modules/minio { }; + # minio = callPackage ./python-modules/minio { }; -# miniupnpc = callPackage ./python-modules/miniupnpc { -# inherit (pkgs.darwin) cctools; -# }; + # miniupnpc = callPackage ./python-modules/miniupnpc { + # inherit (pkgs.darwin) cctools; + # }; -# mip = callPackage ./python-modules/mip { }; + # mip = callPackage ./python-modules/mip { }; -# mir-eval = callPackage ./python-modules/mir-eval { }; + # mir-eval = callPackage ./python-modules/mir-eval { }; -# mirakuru = callPackage ./python-modules/mirakuru { }; + # mirakuru = callPackage ./python-modules/mirakuru { }; -# misaka = callPackage ./python-modules/misaka { }; + # misaka = callPackage ./python-modules/misaka { }; -# misoc = callPackage ./python-modules/misoc { }; + # misoc = callPackage ./python-modules/misoc { }; -# mistletoe = callPackage ./python-modules/mistletoe { }; + # mistletoe = callPackage ./python-modules/mistletoe { }; -# mistune = callPackage ./python-modules/mistune { }; + # mistune = callPackage ./python-modules/mistune { }; -# mitmproxy = callPackage ./python-modules/mitmproxy { }; + # mitmproxy = callPackage ./python-modules/mitmproxy { }; -# mitmproxy-macos = callPackage ./python-modules/mitmproxy-macos { }; + # mitmproxy-macos = callPackage ./python-modules/mitmproxy-macos { }; -# mitmproxy-rs = callPackage ./python-modules/mitmproxy-rs { }; + # mitmproxy-rs = callPackage ./python-modules/mitmproxy-rs { }; -# mitogen = callPackage ./python-modules/mitogen { }; + # mitogen = callPackage ./python-modules/mitogen { }; -# mixins = callPackage ./python-modules/mixins { }; + # mixins = callPackage ./python-modules/mixins { }; -# mixpanel = callPackage ./python-modules/mixpanel { }; + # mixpanel = callPackage ./python-modules/mixpanel { }; -# mizani = callPackage ./python-modules/mizani { }; + # mizani = callPackage ./python-modules/mizani { }; mkdocs = callPackage ./python-modules/mkdocs { }; -# mkdocs-autolinks-plugin = callPackage ./python-modules/mkdocs-autolinks-plugin { }; + # mkdocs-autolinks-plugin = callPackage ./python-modules/mkdocs-autolinks-plugin { }; -# mkdocs-autorefs = callPackage ./python-modules/mkdocs-autorefs { }; + # mkdocs-autorefs = callPackage ./python-modules/mkdocs-autorefs { }; -# mkdocs-drawio-exporter = callPackage ./python-modules/mkdocs-drawio-exporter { }; + # mkdocs-drawio-exporter = callPackage ./python-modules/mkdocs-drawio-exporter { }; -# mkdocs-exclude = callPackage ./python-modules/mkdocs-exclude { }; + # mkdocs-exclude = callPackage ./python-modules/mkdocs-exclude { }; -# mkdocs-git-authors-plugin = callPackage ./python-modules/mkdocs-git-authors-plugin { }; + # mkdocs-git-authors-plugin = callPackage ./python-modules/mkdocs-git-authors-plugin { }; -# mkdocs-git-revision-date-localized-plugin = callPackage ./python-modules/mkdocs-git-revision-date-localized-plugin { }; + # mkdocs-git-revision-date-localized-plugin = callPackage ./python-modules/mkdocs-git-revision-date-localized-plugin { }; -# mkdocs-gitlab = callPackage ./python-modules/mkdocs-gitlab-plugin { }; + # mkdocs-gitlab = callPackage ./python-modules/mkdocs-gitlab-plugin { }; -# mkdocs-jupyter = callPackage ./python-modules/mkdocs-jupyter { }; + # mkdocs-jupyter = callPackage ./python-modules/mkdocs-jupyter { }; -# mkdocs-linkcheck = callPackage ./python-modules/mkdocs-linkcheck { }; + # mkdocs-linkcheck = callPackage ./python-modules/mkdocs-linkcheck { }; -# mkdocs-macros = callPackage ./python-modules/mkdocs-macros { }; + # mkdocs-macros = callPackage ./python-modules/mkdocs-macros { }; -# mkdocs-material = callPackage ./python-modules/mkdocs-material { }; + # mkdocs-material = callPackage ./python-modules/mkdocs-material { }; -# mkdocs-material-extensions = callPackage ./python-modules/mkdocs-material/mkdocs-material-extensions.nix { }; + # mkdocs-material-extensions = callPackage ./python-modules/mkdocs-material/mkdocs-material-extensions.nix { }; -# mkdocs-mermaid2-plugin = callPackage ./python-modules/mkdocs-mermaid2-plugin { }; + # mkdocs-mermaid2-plugin = callPackage ./python-modules/mkdocs-mermaid2-plugin { }; -# mkdocs-minify-plugin = callPackage ./python-modules/mkdocs-minify-plugin { }; + # mkdocs-minify-plugin = callPackage ./python-modules/mkdocs-minify-plugin { }; -# mkdocs-redirects = callPackage ./python-modules/mkdocs-redirects { }; + # mkdocs-redirects = callPackage ./python-modules/mkdocs-redirects { }; -# mkdocs-redoc-tag = callPackage ./python-modules/mkdocs-redoc-tag { }; + # mkdocs-redoc-tag = callPackage ./python-modules/mkdocs-redoc-tag { }; -# mkdocs-rss-plugin = callPackage ./python-modules/mkdocs-rss-plugin { }; + # mkdocs-rss-plugin = callPackage ./python-modules/mkdocs-rss-plugin { }; -# mkdocs-swagger-ui-tag = callPackage ./python-modules/mkdocs-swagger-ui-tag { }; + # mkdocs-swagger-ui-tag = callPackage ./python-modules/mkdocs-swagger-ui-tag { }; -# mkdocstrings = callPackage ./python-modules/mkdocstrings { }; + # mkdocstrings = callPackage ./python-modules/mkdocstrings { }; -# mkdocstrings-python = callPackage ./python-modules/mkdocstrings-python { }; + # mkdocstrings-python = callPackage ./python-modules/mkdocstrings-python { }; -# mkl-service = callPackage ./python-modules/mkl-service { }; + # mkl-service = callPackage ./python-modules/mkl-service { }; -# ml-collections = callPackage ./python-modules/ml-collections { }; + # ml-collections = callPackage ./python-modules/ml-collections { }; -# ml-dtypes = callPackage ./python-modules/ml-dtypes { }; + # ml-dtypes = callPackage ./python-modules/ml-dtypes { }; -# mlflow = callPackage ./python-modules/mlflow { }; + # mlflow = callPackage ./python-modules/mlflow { }; -# mlrose = callPackage ./python-modules/mlrose { }; + # mlrose = callPackage ./python-modules/mlrose { }; -# mlx = callPackage ./python-modules/mlx { }; + # mlx = callPackage ./python-modules/mlx { }; -# mlxtend = callPackage ./python-modules/mlxtend { }; + # mlxtend = callPackage ./python-modules/mlxtend { }; -# mlt = toPythonModule (pkgs.mlt.override { -# python3 = python; -# enablePython = true; -# }); + # mlt = toPythonModule (pkgs.mlt.override { + # python3 = python; + # enablePython = true; + # }); -# mmcif-pdbx = callPackage ./python-modules/mmcif-pdbx { }; + # mmcif-pdbx = callPackage ./python-modules/mmcif-pdbx { }; -# mmcv = callPackage ./python-modules/mmcv { }; + # mmcv = callPackage ./python-modules/mmcv { }; -# mmengine = callPackage ./python-modules/mmengine { }; + # mmengine = callPackage ./python-modules/mmengine { }; -# mmh3 = callPackage ./python-modules/mmh3 { }; + # mmh3 = callPackage ./python-modules/mmh3 { }; -# mmpython = callPackage ./python-modules/mmpython { }; + # mmpython = callPackage ./python-modules/mmpython { }; -# mmtf-python = callPackage ./python-modules/mmtf-python { }; + # mmtf-python = callPackage ./python-modules/mmtf-python { }; -# mnemonic = callPackage ./python-modules/mnemonic { }; + # mnemonic = callPackage ./python-modules/mnemonic { }; -# mne-python = callPackage ./python-modules/mne-python { }; + # mne-python = callPackage ./python-modules/mne-python { }; -# mnist = callPackage ./python-modules/mnist { }; + # mnist = callPackage ./python-modules/mnist { }; -# moat-ble = callPackage ./python-modules/moat-ble { }; + # moat-ble = callPackage ./python-modules/moat-ble { }; -# mobi = callPackage ./python-modules/mobi { }; + # mobi = callPackage ./python-modules/mobi { }; -# mobly = callPackage ./python-modules/mobly { }; + # mobly = callPackage ./python-modules/mobly { }; -# mocket = callPackage ./python-modules/mocket { -# redis-server = pkgs.redis; -# }; + # mocket = callPackage ./python-modules/mocket { + # redis-server = pkgs.redis; + # }; mock = callPackage ./python-modules/mock { }; -# mockfs = callPackage ./python-modules/mockfs { }; + # mockfs = callPackage ./python-modules/mockfs { }; -# mockito = callPackage ./python-modules/mockito { }; + # mockito = callPackage ./python-modules/mockito { }; -# mock-open = callPackage ./python-modules/mock-open { }; + # mock-open = callPackage ./python-modules/mock-open { }; -# mock-services = callPackage ./python-modules/mock-services { }; + # mock-services = callPackage ./python-modules/mock-services { }; -# mock-ssh-server = callPackage ./python-modules/mock-ssh-server { }; + # mock-ssh-server = callPackage ./python-modules/mock-ssh-server { }; -# mockupdb = callPackage ./python-modules/mockupdb { }; + # mockupdb = callPackage ./python-modules/mockupdb { }; -# moddb = callPackage ./python-modules/moddb { }; + # moddb = callPackage ./python-modules/moddb { }; -# model-bakery = callPackage ./python-modules/model-bakery { }; + # model-bakery = callPackage ./python-modules/model-bakery { }; -# modelcif = callPackage ./python-modules/modelcif { }; + # modelcif = callPackage ./python-modules/modelcif { }; -# modeled = callPackage ./python-modules/modeled { }; + # modeled = callPackage ./python-modules/modeled { }; -# moderngl = callPackage ./python-modules/moderngl { }; + # moderngl = callPackage ./python-modules/moderngl { }; -# moderngl-window = callPackage ./python-modules/moderngl-window { }; + # moderngl-window = callPackage ./python-modules/moderngl-window { }; -# modestmaps = callPackage ./python-modules/modestmaps { }; + # modestmaps = callPackage ./python-modules/modestmaps { }; -# mohawk = callPackage ./python-modules/mohawk { }; + # mohawk = callPackage ./python-modules/mohawk { }; -# molecule = callPackage ./python-modules/molecule { }; + # molecule = callPackage ./python-modules/molecule { }; -# molecule-plugins = callPackage ./python-modules/molecule/plugins.nix { }; + # molecule-plugins = callPackage ./python-modules/molecule/plugins.nix { }; -# monai = callPackage ./python-modules/monai { }; + # monai = callPackage ./python-modules/monai { }; -# monai-deploy = callPackage ./python-modules/monai-deploy { }; + # monai-deploy = callPackage ./python-modules/monai-deploy { }; -# monero = callPackage ./python-modules/monero { }; + # monero = callPackage ./python-modules/monero { }; -# mongomock = callPackage ./python-modules/mongomock { }; + # mongomock = callPackage ./python-modules/mongomock { }; -# mongodict = callPackage ./python-modules/mongodict { }; + # mongodict = callPackage ./python-modules/mongodict { }; -# mongoengine = callPackage ./python-modules/mongoengine { }; + # mongoengine = callPackage ./python-modules/mongoengine { }; -# mongoquery = callPackage ./python-modules/mongoquery { }; + # mongoquery = callPackage ./python-modules/mongoquery { }; -# monitorcontrol = callPackage ./python-modules/monitorcontrol { }; + # monitorcontrol = callPackage ./python-modules/monitorcontrol { }; -# monkeyhex = callPackage ./python-modules/monkeyhex { }; + # monkeyhex = callPackage ./python-modules/monkeyhex { }; -# monosat = pkgs.monosat.python { -# inherit buildPythonPackage; -# inherit (self) cython pytestCheckHook; -# }; + # monosat = pkgs.monosat.python { + # inherit buildPythonPackage; + # inherit (self) cython pytestCheckHook; + # }; -# monotonic = callPackage ./python-modules/monotonic { }; + # monotonic = callPackage ./python-modules/monotonic { }; -# monty = callPackage ./python-modules/monty { }; + # monty = callPackage ./python-modules/monty { }; -# moonraker-api = callPackage ./python-modules/moonraker-api { }; + # moonraker-api = callPackage ./python-modules/moonraker-api { }; -# mopeka-iot-ble = callPackage ./python-modules/mopeka-iot-ble { }; + # mopeka-iot-ble = callPackage ./python-modules/mopeka-iot-ble { }; -# more-itertools = callPackage ./python-modules/more-itertools { }; + # more-itertools = callPackage ./python-modules/more-itertools { }; -# more-properties = callPackage ./python-modules/more-properties { }; + # more-properties = callPackage ./python-modules/more-properties { }; -# moreorless = callPackage ./python-modules/moreorless { }; + # moreorless = callPackage ./python-modules/moreorless { }; -# moretools = callPackage ./python-modules/moretools { }; + # moretools = callPackage ./python-modules/moretools { }; -# morfessor = callPackage ./python-modules/morfessor { }; + # morfessor = callPackage ./python-modules/morfessor { }; -# morphys = callPackage ./python-modules/morphys { }; + # morphys = callPackage ./python-modules/morphys { }; -# mortgage = callPackage ./python-modules/mortgage { }; + # mortgage = callPackage ./python-modules/mortgage { }; -# motmetrics = callPackage ./python-modules/motmetrics { }; + # motmetrics = callPackage ./python-modules/motmetrics { }; -# motionblinds = callPackage ./python-modules/motionblinds { }; + # motionblinds = callPackage ./python-modules/motionblinds { }; -# motioneye-client = callPackage ./python-modules/motioneye-client { }; + # motioneye-client = callPackage ./python-modules/motioneye-client { }; -# moto = callPackage ./python-modules/moto { }; + # moto = callPackage ./python-modules/moto { }; -# motor = callPackage ./python-modules/motor { }; + # motor = callPackage ./python-modules/motor { }; -# mouseinfo = callPackage ./python-modules/mouseinfo { }; + # mouseinfo = callPackage ./python-modules/mouseinfo { }; -# moviepy = callPackage ./python-modules/moviepy { }; + # moviepy = callPackage ./python-modules/moviepy { }; -# mox3 = callPackage ./python-modules/mox3 { }; + # mox3 = callPackage ./python-modules/mox3 { }; -# mpd2 = callPackage ./python-modules/mpd2 { }; + # mpd2 = callPackage ./python-modules/mpd2 { }; -# mpi4py = callPackage ./python-modules/mpi4py { }; + # mpi4py = callPackage ./python-modules/mpi4py { }; -# mpldatacursor = callPackage ./python-modules/mpldatacursor { }; + # mpldatacursor = callPackage ./python-modules/mpldatacursor { }; -# mplfinance = callPackage ./python-modules/mplfinance { }; + # mplfinance = callPackage ./python-modules/mplfinance { }; -# mplhep = callPackage ./python-modules/mplhep { }; + # mplhep = callPackage ./python-modules/mplhep { }; -# mplhep-data = callPackage ./python-modules/mplhep-data { }; + # mplhep-data = callPackage ./python-modules/mplhep-data { }; -# mplleaflet = callPackage ./python-modules/mplleaflet { }; + # mplleaflet = callPackage ./python-modules/mplleaflet { }; -# mpl-scatter-density = callPackage ./python-modules/mpl-scatter-density { }; + # mpl-scatter-density = callPackage ./python-modules/mpl-scatter-density { }; -# mpmath = callPackage ./python-modules/mpmath { }; + # mpmath = callPackage ./python-modules/mpmath { }; -# mpris-server = callPackage ./python-modules/mpris-server { }; + # mpris-server = callPackage ./python-modules/mpris-server { }; -# mpv = callPackage ./python-modules/mpv { -# inherit (pkgs) mpv; -# }; + # mpv = callPackage ./python-modules/mpv { + # inherit (pkgs) mpv; + # }; -# mpyq = callPackage ./python-modules/mpyq { }; + # mpyq = callPackage ./python-modules/mpyq { }; -# mrjob = callPackage ./python-modules/mrjob { }; + # mrjob = callPackage ./python-modules/mrjob { }; -# mrsqm = callPackage ./python-modules/mrsqm { }; + # mrsqm = callPackage ./python-modules/mrsqm { }; -# ms-active-directory = callPackage ./python-modules/ms-active-directory { }; + # ms-active-directory = callPackage ./python-modules/ms-active-directory { }; -# ms-cv = callPackage ./python-modules/ms-cv { }; + # ms-cv = callPackage ./python-modules/ms-cv { }; -# msal = callPackage ./python-modules/msal { }; + # msal = callPackage ./python-modules/msal { }; -# msal-extensions = callPackage ./python-modules/msal-extensions { }; + # msal-extensions = callPackage ./python-modules/msal-extensions { }; -# mscerts = callPackage ./python-modules/mscerts { }; + # mscerts = callPackage ./python-modules/mscerts { }; -# msgpack = callPackage ./python-modules/msgpack { }; + # msgpack = callPackage ./python-modules/msgpack { }; -# msgpack-numpy = callPackage ./python-modules/msgpack-numpy { }; + # msgpack-numpy = callPackage ./python-modules/msgpack-numpy { }; -# msg-parser = callPackage ./python-modules/msg-parser { }; + # msg-parser = callPackage ./python-modules/msg-parser { }; -# msgspec = callPackage ./python-modules/msgspec { }; + # msgspec = callPackage ./python-modules/msgspec { }; -# msldap = callPackage ./python-modules/msldap { }; + # msldap = callPackage ./python-modules/msldap { }; -# msoffcrypto-tool = callPackage ./python-modules/msoffcrypto-tool { }; + # msoffcrypto-tool = callPackage ./python-modules/msoffcrypto-tool { }; -# msprime = callPackage ./python-modules/msprime { }; + # msprime = callPackage ./python-modules/msprime { }; -# mss = callPackage ./python-modules/mss { }; + # mss = callPackage ./python-modules/mss { }; -# msrestazure = callPackage ./python-modules/msrestazure { }; + # msrestazure = callPackage ./python-modules/msrestazure { }; -# msrest = callPackage ./python-modules/msrest { }; + # msrest = callPackage ./python-modules/msrest { }; -# mt-940 = callPackage ./python-modules/mt-940 { }; + # mt-940 = callPackage ./python-modules/mt-940 { }; -# mullvad-api = callPackage ./python-modules/mullvad-api { }; + # mullvad-api = callPackage ./python-modules/mullvad-api { }; -# mullvad-closest = callPackage ./python-modules/mullvad-closest { }; + # mullvad-closest = callPackage ./python-modules/mullvad-closest { }; -# mulpyplexer = callPackage ./python-modules/mulpyplexer { }; + # mulpyplexer = callPackage ./python-modules/mulpyplexer { }; -# multidict = callPackage ./python-modules/multidict { }; + # multidict = callPackage ./python-modules/multidict { }; -# multi-key-dict = callPackage ./python-modules/multi-key-dict { }; + # multi-key-dict = callPackage ./python-modules/multi-key-dict { }; -# multimethod = callPackage ./python-modules/multimethod { }; + # multimethod = callPackage ./python-modules/multimethod { }; -# multipledispatch = callPackage ./python-modules/multipledispatch { }; + # multipledispatch = callPackage ./python-modules/multipledispatch { }; -# multiprocess = callPackage ./python-modules/multiprocess { }; + # multiprocess = callPackage ./python-modules/multiprocess { }; -# multiset = callPackage ./python-modules/multiset { }; + # multiset = callPackage ./python-modules/multiset { }; -# multitasking = callPackage ./python-modules/multitasking { }; + # multitasking = callPackage ./python-modules/multitasking { }; -# munch = callPackage ./python-modules/munch { }; + # munch = callPackage ./python-modules/munch { }; -# mung = callPackage ./python-modules/mung { }; + # mung = callPackage ./python-modules/mung { }; -# munkres = callPackage ./python-modules/munkres { }; + # munkres = callPackage ./python-modules/munkres { }; -# murmurhash = callPackage ./python-modules/murmurhash { }; + # murmurhash = callPackage ./python-modules/murmurhash { }; -# muscima = callPackage ./python-modules/muscima { }; + # muscima = callPackage ./python-modules/muscima { }; -# musicbrainzngs = callPackage ./python-modules/musicbrainzngs { }; + # musicbrainzngs = callPackage ./python-modules/musicbrainzngs { }; -# music-tag = callPackage ./python-modules/music-tag { }; + # music-tag = callPackage ./python-modules/music-tag { }; -# mutag = callPackage ./python-modules/mutag { }; + # mutag = callPackage ./python-modules/mutag { }; -# mutagen = callPackage ./python-modules/mutagen { }; + # mutagen = callPackage ./python-modules/mutagen { }; -# mutatormath = callPackage ./python-modules/mutatormath { }; + # mutatormath = callPackage ./python-modules/mutatormath { }; -# mutesync = callPackage ./python-modules/mutesync { }; + # mutesync = callPackage ./python-modules/mutesync { }; -# mutf8 = callPackage ./python-modules/mutf8 { }; + # mutf8 = callPackage ./python-modules/mutf8 { }; -# mujoco = callPackage ./python-modules/mujoco { -# inherit (pkgs) mujoco; -# }; + # mujoco = callPackage ./python-modules/mujoco { + # inherit (pkgs) mujoco; + # }; -# mujson = callPackage ./python-modules/mujson { }; + # mujson = callPackage ./python-modules/mujson { }; -# mwcli = callPackage ./python-modules/mwcli { }; + # mwcli = callPackage ./python-modules/mwcli { }; -# mwclient = callPackage ./python-modules/mwclient { }; + # mwclient = callPackage ./python-modules/mwclient { }; -# mwdblib = callPackage ./python-modules/mwdblib { }; + # mwdblib = callPackage ./python-modules/mwdblib { }; -# mwoauth = callPackage ./python-modules/mwoauth { }; + # mwoauth = callPackage ./python-modules/mwoauth { }; -# mwparserfromhell = callPackage ./python-modules/mwparserfromhell { }; + # mwparserfromhell = callPackage ./python-modules/mwparserfromhell { }; -# mwtypes = callPackage ./python-modules/mwtypes { }; + # mwtypes = callPackage ./python-modules/mwtypes { }; -# mwxml = callPackage ./python-modules/mwxml { }; + # mwxml = callPackage ./python-modules/mwxml { }; -# mxnet = callPackage ./python-modules/mxnet { }; + # mxnet = callPackage ./python-modules/mxnet { }; -# myfitnesspal = callPackage ./python-modules/myfitnesspal { }; + # myfitnesspal = callPackage ./python-modules/myfitnesspal { }; -# mygpoclient = callPackage ./python-modules/mygpoclient { }; + # mygpoclient = callPackage ./python-modules/mygpoclient { }; -# myhdl = callPackage ./python-modules/myhdl { -# inherit (pkgs) ghdl verilog; -# }; + # myhdl = callPackage ./python-modules/myhdl { + # inherit (pkgs) ghdl verilog; + # }; -# myhome = callPackage ./python-modules/myhome { }; + # myhome = callPackage ./python-modules/myhome { }; -# myjwt = callPackage ./python-modules/myjwt { }; + # myjwt = callPackage ./python-modules/myjwt { }; -# mypy = callPackage ./python-modules/mypy { }; + # mypy = callPackage ./python-modules/mypy { }; -# mypy-boto3-builder = callPackage ./python-modules/mypy-boto3-builder { }; + # mypy-boto3-builder = callPackage ./python-modules/mypy-boto3-builder { }; -# inherit (callPackage ./python-modules/mypy-boto3 { }) + # inherit (callPackage ./python-modules/mypy-boto3 { }) -# mypy-boto3-accessanalyzer + # mypy-boto3-accessanalyzer -# mypy-boto3-account + # mypy-boto3-account -# mypy-boto3-acm + # mypy-boto3-acm -# mypy-boto3-acm-pca + # mypy-boto3-acm-pca -# mypy-boto3-alexaforbusiness + # mypy-boto3-alexaforbusiness -# mypy-boto3-amp + # mypy-boto3-amp -# mypy-boto3-amplify + # mypy-boto3-amplify -# mypy-boto3-amplifybackend + # mypy-boto3-amplifybackend -# mypy-boto3-amplifyuibuilder + # mypy-boto3-amplifyuibuilder -# mypy-boto3-apigateway + # mypy-boto3-apigateway -# mypy-boto3-apigatewaymanagementapi + # mypy-boto3-apigatewaymanagementapi -# mypy-boto3-apigatewayv2 + # mypy-boto3-apigatewayv2 -# mypy-boto3-appconfig + # mypy-boto3-appconfig -# mypy-boto3-appconfigdata + # mypy-boto3-appconfigdata -# mypy-boto3-appfabric + # mypy-boto3-appfabric -# mypy-boto3-appflow + # mypy-boto3-appflow -# mypy-boto3-appintegrations + # mypy-boto3-appintegrations -# mypy-boto3-application-autoscaling + # mypy-boto3-application-autoscaling -# mypy-boto3-application-insights + # mypy-boto3-application-insights -# mypy-boto3-applicationcostprofiler + # mypy-boto3-applicationcostprofiler -# mypy-boto3-appmesh + # mypy-boto3-appmesh -# mypy-boto3-apprunner + # mypy-boto3-apprunner -# mypy-boto3-appstream + # mypy-boto3-appstream -# mypy-boto3-appsync + # mypy-boto3-appsync -# mypy-boto3-arc-zonal-shift + # mypy-boto3-arc-zonal-shift -# mypy-boto3-athena + # mypy-boto3-athena -# mypy-boto3-auditmanager + # mypy-boto3-auditmanager -# mypy-boto3-autoscaling + # mypy-boto3-autoscaling -# mypy-boto3-autoscaling-plans + # mypy-boto3-autoscaling-plans -# mypy-boto3-backup + # mypy-boto3-backup -# mypy-boto3-backup-gateway + # mypy-boto3-backup-gateway -# mypy-boto3-backupstorage + # mypy-boto3-backupstorage -# mypy-boto3-batch + # mypy-boto3-batch -# mypy-boto3-billingconductor + # mypy-boto3-billingconductor -# mypy-boto3-braket + # mypy-boto3-braket -# mypy-boto3-budgets + # mypy-boto3-budgets -# mypy-boto3-ce + # mypy-boto3-ce -# mypy-boto3-chime + # mypy-boto3-chime -# mypy-boto3-chime-sdk-identity + # mypy-boto3-chime-sdk-identity -# mypy-boto3-chime-sdk-media-pipelines + # mypy-boto3-chime-sdk-media-pipelines -# mypy-boto3-chime-sdk-meetings + # mypy-boto3-chime-sdk-meetings -# mypy-boto3-chime-sdk-messaging + # mypy-boto3-chime-sdk-messaging -# mypy-boto3-chime-sdk-voice + # mypy-boto3-chime-sdk-voice -# mypy-boto3-cleanrooms + # mypy-boto3-cleanrooms -# mypy-boto3-cloud9 + # mypy-boto3-cloud9 -# mypy-boto3-cloudcontrol + # mypy-boto3-cloudcontrol -# mypy-boto3-clouddirectory + # mypy-boto3-clouddirectory -# mypy-boto3-cloudformation + # mypy-boto3-cloudformation -# mypy-boto3-cloudfront + # mypy-boto3-cloudfront -# mypy-boto3-cloudhsm + # mypy-boto3-cloudhsm -# mypy-boto3-cloudhsmv2 + # mypy-boto3-cloudhsmv2 -# mypy-boto3-cloudsearch + # mypy-boto3-cloudsearch -# mypy-boto3-cloudsearchdomain + # mypy-boto3-cloudsearchdomain -# mypy-boto3-cloudtrail + # mypy-boto3-cloudtrail -# mypy-boto3-cloudtrail-data + # mypy-boto3-cloudtrail-data -# mypy-boto3-cloudwatch + # mypy-boto3-cloudwatch -# mypy-boto3-codeartifact + # mypy-boto3-codeartifact -# mypy-boto3-codebuild + # mypy-boto3-codebuild -# mypy-boto3-codecatalyst + # mypy-boto3-codecatalyst -# mypy-boto3-codecommit + # mypy-boto3-codecommit -# mypy-boto3-codedeploy + # mypy-boto3-codedeploy -# mypy-boto3-codeguru-reviewer + # mypy-boto3-codeguru-reviewer -# mypy-boto3-codeguru-security + # mypy-boto3-codeguru-security -# mypy-boto3-codeguruprofiler + # mypy-boto3-codeguruprofiler -# mypy-boto3-codepipeline + # mypy-boto3-codepipeline -# mypy-boto3-codestar + # mypy-boto3-codestar -# mypy-boto3-codestar-connections + # mypy-boto3-codestar-connections -# mypy-boto3-codestar-notifications + # mypy-boto3-codestar-notifications -# mypy-boto3-cognito-identity + # mypy-boto3-cognito-identity -# mypy-boto3-cognito-idp + # mypy-boto3-cognito-idp -# mypy-boto3-cognito-sync + # mypy-boto3-cognito-sync -# mypy-boto3-comprehend + # mypy-boto3-comprehend -# mypy-boto3-comprehendmedical + # mypy-boto3-comprehendmedical -# mypy-boto3-compute-optimizer + # mypy-boto3-compute-optimizer -# mypy-boto3-config + # mypy-boto3-config -# mypy-boto3-connect + # mypy-boto3-connect -# mypy-boto3-connect-contact-lens + # mypy-boto3-connect-contact-lens -# mypy-boto3-connectcampaigns + # mypy-boto3-connectcampaigns -# mypy-boto3-connectcases + # mypy-boto3-connectcases -# mypy-boto3-connectparticipant + # mypy-boto3-connectparticipant -# mypy-boto3-controltower + # mypy-boto3-controltower -# mypy-boto3-cur + # mypy-boto3-cur -# mypy-boto3-customer-profiles + # mypy-boto3-customer-profiles -# mypy-boto3-databrew + # mypy-boto3-databrew -# mypy-boto3-dataexchange + # mypy-boto3-dataexchange -# mypy-boto3-datapipeline + # mypy-boto3-datapipeline -# mypy-boto3-datasync + # mypy-boto3-datasync -# mypy-boto3-dax + # mypy-boto3-dax -# mypy-boto3-detective + # mypy-boto3-detective -# mypy-boto3-devicefarm + # mypy-boto3-devicefarm -# mypy-boto3-devops-guru + # mypy-boto3-devops-guru -# mypy-boto3-directconnect + # mypy-boto3-directconnect -# mypy-boto3-discovery + # mypy-boto3-discovery -# mypy-boto3-dlm + # mypy-boto3-dlm -# mypy-boto3-dms + # mypy-boto3-dms -# mypy-boto3-docdb + # mypy-boto3-docdb -# mypy-boto3-docdb-elastic + # mypy-boto3-docdb-elastic -# mypy-boto3-drs + # mypy-boto3-drs -# mypy-boto3-ds + # mypy-boto3-ds -# mypy-boto3-dynamodb + # mypy-boto3-dynamodb -# mypy-boto3-dynamodbstreams + # mypy-boto3-dynamodbstreams -# mypy-boto3-ebs + # mypy-boto3-ebs -# mypy-boto3-ec2 + # mypy-boto3-ec2 -# mypy-boto3-ec2-instance-connect + # mypy-boto3-ec2-instance-connect -# mypy-boto3-ecr + # mypy-boto3-ecr -# mypy-boto3-ecr-public + # mypy-boto3-ecr-public -# mypy-boto3-ecs + # mypy-boto3-ecs -# mypy-boto3-efs + # mypy-boto3-efs -# mypy-boto3-eks + # mypy-boto3-eks -# mypy-boto3-elastic-inference + # mypy-boto3-elastic-inference -# mypy-boto3-elasticache + # mypy-boto3-elasticache -# mypy-boto3-elasticbeanstalk + # mypy-boto3-elasticbeanstalk -# mypy-boto3-elastictranscoder + # mypy-boto3-elastictranscoder -# mypy-boto3-elb + # mypy-boto3-elb -# mypy-boto3-elbv2 + # mypy-boto3-elbv2 -# mypy-boto3-emr + # mypy-boto3-emr -# mypy-boto3-emr-containers + # mypy-boto3-emr-containers -# mypy-boto3-emr-serverless + # mypy-boto3-emr-serverless -# mypy-boto3-entityresolution + # mypy-boto3-entityresolution -# mypy-boto3-es + # mypy-boto3-es -# mypy-boto3-events + # mypy-boto3-events -# mypy-boto3-evidently + # mypy-boto3-evidently -# mypy-boto3-finspace + # mypy-boto3-finspace -# mypy-boto3-finspace-data + # mypy-boto3-finspace-data -# mypy-boto3-firehose + # mypy-boto3-firehose -# mypy-boto3-fis + # mypy-boto3-fis -# mypy-boto3-fms + # mypy-boto3-fms -# mypy-boto3-forecast + # mypy-boto3-forecast -# mypy-boto3-forecastquery + # mypy-boto3-forecastquery -# mypy-boto3-frauddetector + # mypy-boto3-frauddetector -# mypy-boto3-fsx + # mypy-boto3-fsx -# mypy-boto3-gamelift + # mypy-boto3-gamelift -# mypy-boto3-gamesparks + # mypy-boto3-gamesparks -# mypy-boto3-glacier + # mypy-boto3-glacier -# mypy-boto3-globalaccelerator + # mypy-boto3-globalaccelerator -# mypy-boto3-glue + # mypy-boto3-glue -# mypy-boto3-grafana + # mypy-boto3-grafana -# mypy-boto3-greengrass + # mypy-boto3-greengrass -# mypy-boto3-greengrassv2 + # mypy-boto3-greengrassv2 -# mypy-boto3-groundstation + # mypy-boto3-groundstation -# mypy-boto3-guardduty + # mypy-boto3-guardduty -# mypy-boto3-health + # mypy-boto3-health -# mypy-boto3-healthlake + # mypy-boto3-healthlake -# mypy-boto3-honeycode + # mypy-boto3-honeycode -# mypy-boto3-iam + # mypy-boto3-iam -# mypy-boto3-identitystore + # mypy-boto3-identitystore -# mypy-boto3-imagebuilder + # mypy-boto3-imagebuilder -# mypy-boto3-importexport + # mypy-boto3-importexport -# mypy-boto3-inspector + # mypy-boto3-inspector -# mypy-boto3-inspector2 + # mypy-boto3-inspector2 -# mypy-boto3-internetmonitor + # mypy-boto3-internetmonitor -# mypy-boto3-iot + # mypy-boto3-iot -# mypy-boto3-iot-data + # mypy-boto3-iot-data -# mypy-boto3-iot-jobs-data + # mypy-boto3-iot-jobs-data -# mypy-boto3-iot-roborunner + # mypy-boto3-iot-roborunner -# mypy-boto3-iot1click-devices + # mypy-boto3-iot1click-devices -# mypy-boto3-iot1click-projects + # mypy-boto3-iot1click-projects -# mypy-boto3-iotanalytics + # mypy-boto3-iotanalytics -# mypy-boto3-iotdeviceadvisor + # mypy-boto3-iotdeviceadvisor -# mypy-boto3-iotevents + # mypy-boto3-iotevents -# mypy-boto3-iotevents-data + # mypy-boto3-iotevents-data -# mypy-boto3-iotfleethub + # mypy-boto3-iotfleethub -# mypy-boto3-iotfleetwise + # mypy-boto3-iotfleetwise -# mypy-boto3-iotsecuretunneling + # mypy-boto3-iotsecuretunneling -# mypy-boto3-iotsitewise + # mypy-boto3-iotsitewise -# mypy-boto3-iotthingsgraph + # mypy-boto3-iotthingsgraph -# mypy-boto3-iottwinmaker + # mypy-boto3-iottwinmaker -# mypy-boto3-iotwireless + # mypy-boto3-iotwireless -# mypy-boto3-ivs + # mypy-boto3-ivs -# mypy-boto3-ivs-realtime + # mypy-boto3-ivs-realtime -# mypy-boto3-ivschat + # mypy-boto3-ivschat -# mypy-boto3-kafka + # mypy-boto3-kafka -# mypy-boto3-kafkaconnect + # mypy-boto3-kafkaconnect -# mypy-boto3-kendra + # mypy-boto3-kendra -# mypy-boto3-kendra-ranking + # mypy-boto3-kendra-ranking -# mypy-boto3-keyspaces + # mypy-boto3-keyspaces -# mypy-boto3-kinesis + # mypy-boto3-kinesis -# mypy-boto3-kinesis-video-archived-media + # mypy-boto3-kinesis-video-archived-media -# mypy-boto3-kinesis-video-media + # mypy-boto3-kinesis-video-media -# mypy-boto3-kinesis-video-signaling + # mypy-boto3-kinesis-video-signaling -# mypy-boto3-kinesis-video-webrtc-storage + # mypy-boto3-kinesis-video-webrtc-storage -# mypy-boto3-kinesisanalytics + # mypy-boto3-kinesisanalytics -# mypy-boto3-kinesisanalyticsv2 + # mypy-boto3-kinesisanalyticsv2 -# mypy-boto3-kinesisvideo + # mypy-boto3-kinesisvideo -# mypy-boto3-kms + # mypy-boto3-kms -# mypy-boto3-lakeformation + # mypy-boto3-lakeformation -# mypy-boto3-lambda + # mypy-boto3-lambda -# mypy-boto3-lex-models + # mypy-boto3-lex-models -# mypy-boto3-lex-runtime + # mypy-boto3-lex-runtime -# mypy-boto3-lexv2-models + # mypy-boto3-lexv2-models -# mypy-boto3-lexv2-runtime + # mypy-boto3-lexv2-runtime -# mypy-boto3-license-manager + # mypy-boto3-license-manager -# mypy-boto3-license-manager-linux-subscriptions + # mypy-boto3-license-manager-linux-subscriptions -# mypy-boto3-license-manager-user-subscriptions + # mypy-boto3-license-manager-user-subscriptions -# mypy-boto3-lightsail + # mypy-boto3-lightsail -# mypy-boto3-location + # mypy-boto3-location -# mypy-boto3-logs + # mypy-boto3-logs -# mypy-boto3-lookoutequipment + # mypy-boto3-lookoutequipment -# mypy-boto3-lookoutmetrics + # mypy-boto3-lookoutmetrics -# mypy-boto3-lookoutvision + # mypy-boto3-lookoutvision -# mypy-boto3-m2 + # mypy-boto3-m2 -# mypy-boto3-machinelearning + # mypy-boto3-machinelearning -# mypy-boto3-macie + # mypy-boto3-macie -# mypy-boto3-macie2 + # mypy-boto3-macie2 -# mypy-boto3-managedblockchain + # mypy-boto3-managedblockchain -# mypy-boto3-managedblockchain-query + # mypy-boto3-managedblockchain-query -# mypy-boto3-marketplace-catalog + # mypy-boto3-marketplace-catalog -# mypy-boto3-marketplace-entitlement + # mypy-boto3-marketplace-entitlement -# mypy-boto3-marketplacecommerceanalytics + # mypy-boto3-marketplacecommerceanalytics -# mypy-boto3-mediaconnect + # mypy-boto3-mediaconnect -# mypy-boto3-mediaconvert + # mypy-boto3-mediaconvert -# mypy-boto3-medialive + # mypy-boto3-medialive -# mypy-boto3-mediapackage + # mypy-boto3-mediapackage -# mypy-boto3-mediapackage-vod + # mypy-boto3-mediapackage-vod -# mypy-boto3-mediapackagev2 + # mypy-boto3-mediapackagev2 -# mypy-boto3-mediastore + # mypy-boto3-mediastore -# mypy-boto3-mediastore-data + # mypy-boto3-mediastore-data -# mypy-boto3-mediatailor + # mypy-boto3-mediatailor -# mypy-boto3-medical-imaging + # mypy-boto3-medical-imaging -# mypy-boto3-memorydb + # mypy-boto3-memorydb -# mypy-boto3-meteringmarketplace + # mypy-boto3-meteringmarketplace -# mypy-boto3-mgh + # mypy-boto3-mgh -# mypy-boto3-mgn + # mypy-boto3-mgn -# mypy-boto3-migration-hub-refactor-spaces + # mypy-boto3-migration-hub-refactor-spaces -# mypy-boto3-migrationhub-config + # mypy-boto3-migrationhub-config -# mypy-boto3-migrationhuborchestrator + # mypy-boto3-migrationhuborchestrator -# mypy-boto3-migrationhubstrategy + # mypy-boto3-migrationhubstrategy -# mypy-boto3-mobile + # mypy-boto3-mobile -# mypy-boto3-mq + # mypy-boto3-mq -# mypy-boto3-mturk + # mypy-boto3-mturk -# mypy-boto3-mwaa + # mypy-boto3-mwaa -# mypy-boto3-neptune + # mypy-boto3-neptune -# mypy-boto3-neptunedata + # mypy-boto3-neptunedata -# mypy-boto3-network-firewall + # mypy-boto3-network-firewall -# mypy-boto3-networkmanager + # mypy-boto3-networkmanager -# mypy-boto3-nimble + # mypy-boto3-nimble -# mypy-boto3-oam + # mypy-boto3-oam -# mypy-boto3-omics + # mypy-boto3-omics -# mypy-boto3-opensearch + # mypy-boto3-opensearch -# mypy-boto3-opensearchserverless + # mypy-boto3-opensearchserverless -# mypy-boto3-opsworks + # mypy-boto3-opsworks -# mypy-boto3-opsworkscm + # mypy-boto3-opsworkscm -# mypy-boto3-organizations + # mypy-boto3-organizations -# mypy-boto3-osis + # mypy-boto3-osis -# mypy-boto3-outposts + # mypy-boto3-outposts -# mypy-boto3-panorama + # mypy-boto3-panorama -# mypy-boto3-payment-cryptography + # mypy-boto3-payment-cryptography -# mypy-boto3-payment-cryptography-data + # mypy-boto3-payment-cryptography-data -# mypy-boto3-pca-connector-ad + # mypy-boto3-pca-connector-ad -# mypy-boto3-personalize + # mypy-boto3-personalize -# mypy-boto3-personalize-events + # mypy-boto3-personalize-events -# mypy-boto3-personalize-runtime + # mypy-boto3-personalize-runtime -# mypy-boto3-pi + # mypy-boto3-pi -# mypy-boto3-pinpoint + # mypy-boto3-pinpoint -# mypy-boto3-pinpoint-email + # mypy-boto3-pinpoint-email -# mypy-boto3-pinpoint-sms-voice + # mypy-boto3-pinpoint-sms-voice -# mypy-boto3-pinpoint-sms-voice-v2 + # mypy-boto3-pinpoint-sms-voice-v2 -# mypy-boto3-pipes + # mypy-boto3-pipes -# mypy-boto3-polly + # mypy-boto3-polly -# mypy-boto3-pricing + # mypy-boto3-pricing -# mypy-boto3-privatenetworks + # mypy-boto3-privatenetworks -# mypy-boto3-proton + # mypy-boto3-proton -# mypy-boto3-qldb + # mypy-boto3-qldb -# mypy-boto3-qldb-session + # mypy-boto3-qldb-session -# mypy-boto3-quicksight + # mypy-boto3-quicksight -# mypy-boto3-ram + # mypy-boto3-ram -# mypy-boto3-rbin + # mypy-boto3-rbin -# mypy-boto3-rds + # mypy-boto3-rds -# mypy-boto3-rds-data + # mypy-boto3-rds-data -# mypy-boto3-redshift + # mypy-boto3-redshift -# mypy-boto3-redshift-data + # mypy-boto3-redshift-data -# mypy-boto3-redshift-serverless + # mypy-boto3-redshift-serverless -# mypy-boto3-rekognition + # mypy-boto3-rekognition -# mypy-boto3-resiliencehub + # mypy-boto3-resiliencehub -# mypy-boto3-resource-explorer-2 + # mypy-boto3-resource-explorer-2 -# mypy-boto3-resource-groups + # mypy-boto3-resource-groups -# mypy-boto3-resourcegroupstaggingapi + # mypy-boto3-resourcegroupstaggingapi -# mypy-boto3-robomaker + # mypy-boto3-robomaker -# mypy-boto3-rolesanywhere + # mypy-boto3-rolesanywhere -# mypy-boto3-route53 + # mypy-boto3-route53 -# mypy-boto3-route53-recovery-cluster + # mypy-boto3-route53-recovery-cluster -# mypy-boto3-route53-recovery-control-config + # mypy-boto3-route53-recovery-control-config -# mypy-boto3-route53-recovery-readiness + # mypy-boto3-route53-recovery-readiness -# mypy-boto3-route53domains + # mypy-boto3-route53domains -# mypy-boto3-route53resolver + # mypy-boto3-route53resolver -# mypy-boto3-rum + # mypy-boto3-rum -# mypy-boto3-s3 + # mypy-boto3-s3 -# mypy-boto3-s3control + # mypy-boto3-s3control -# mypy-boto3-s3outposts + # mypy-boto3-s3outposts -# mypy-boto3-sagemaker + # mypy-boto3-sagemaker -# mypy-boto3-sagemaker-a2i-runtime + # mypy-boto3-sagemaker-a2i-runtime -# mypy-boto3-sagemaker-edge + # mypy-boto3-sagemaker-edge -# mypy-boto3-sagemaker-featurestore-runtime + # mypy-boto3-sagemaker-featurestore-runtime -# mypy-boto3-sagemaker-geospatial + # mypy-boto3-sagemaker-geospatial -# mypy-boto3-sagemaker-metrics + # mypy-boto3-sagemaker-metrics -# mypy-boto3-sagemaker-runtime + # mypy-boto3-sagemaker-runtime -# mypy-boto3-savingsplans + # mypy-boto3-savingsplans -# mypy-boto3-scheduler + # mypy-boto3-scheduler -# mypy-boto3-schemas + # mypy-boto3-schemas -# mypy-boto3-sdb + # mypy-boto3-sdb -# mypy-boto3-secretsmanager + # mypy-boto3-secretsmanager -# mypy-boto3-securityhub + # mypy-boto3-securityhub -# mypy-boto3-securitylake + # mypy-boto3-securitylake -# mypy-boto3-serverlessrepo + # mypy-boto3-serverlessrepo -# mypy-boto3-service-quotas + # mypy-boto3-service-quotas -# mypy-boto3-servicecatalog + # mypy-boto3-servicecatalog -# mypy-boto3-servicecatalog-appregistry + # mypy-boto3-servicecatalog-appregistry -# mypy-boto3-servicediscovery + # mypy-boto3-servicediscovery -# mypy-boto3-ses + # mypy-boto3-ses -# mypy-boto3-sesv2 + # mypy-boto3-sesv2 -# mypy-boto3-shield + # mypy-boto3-shield -# mypy-boto3-signer + # mypy-boto3-signer -# mypy-boto3-simspaceweaver + # mypy-boto3-simspaceweaver -# mypy-boto3-sms + # mypy-boto3-sms -# mypy-boto3-sms-voice + # mypy-boto3-sms-voice -# mypy-boto3-snow-device-management + # mypy-boto3-snow-device-management -# mypy-boto3-snowball + # mypy-boto3-snowball -# mypy-boto3-sns + # mypy-boto3-sns -# mypy-boto3-sqs + # mypy-boto3-sqs -# mypy-boto3-ssm + # mypy-boto3-ssm -# mypy-boto3-ssm-contacts + # mypy-boto3-ssm-contacts -# mypy-boto3-ssm-incidents + # mypy-boto3-ssm-incidents -# mypy-boto3-ssm-sap + # mypy-boto3-ssm-sap -# mypy-boto3-sso + # mypy-boto3-sso -# mypy-boto3-sso-admin + # mypy-boto3-sso-admin -# mypy-boto3-sso-oidc + # mypy-boto3-sso-oidc -# mypy-boto3-stepfunctions + # mypy-boto3-stepfunctions -# mypy-boto3-storagegateway + # mypy-boto3-storagegateway -# mypy-boto3-sts + # mypy-boto3-sts -# mypy-boto3-support + # mypy-boto3-support -# mypy-boto3-support-app + # mypy-boto3-support-app -# mypy-boto3-swf + # mypy-boto3-swf -# mypy-boto3-synthetics + # mypy-boto3-synthetics -# mypy-boto3-textract + # mypy-boto3-textract -# mypy-boto3-timestream-query + # mypy-boto3-timestream-query -# mypy-boto3-timestream-write + # mypy-boto3-timestream-write -# mypy-boto3-tnb + # mypy-boto3-tnb -# mypy-boto3-transcribe + # mypy-boto3-transcribe -# mypy-boto3-transfer + # mypy-boto3-transfer -# mypy-boto3-translate + # mypy-boto3-translate -# mypy-boto3-verifiedpermissions + # mypy-boto3-verifiedpermissions -# mypy-boto3-voice-id + # mypy-boto3-voice-id -# mypy-boto3-vpc-lattice + # mypy-boto3-vpc-lattice -# mypy-boto3-waf + # mypy-boto3-waf -# mypy-boto3-waf-regional + # mypy-boto3-waf-regional -# mypy-boto3-wafv2 + # mypy-boto3-wafv2 -# mypy-boto3-wellarchitected + # mypy-boto3-wellarchitected -# mypy-boto3-wisdom + # mypy-boto3-wisdom -# mypy-boto3-workdocs + # mypy-boto3-workdocs -# mypy-boto3-worklink + # mypy-boto3-worklink -# mypy-boto3-workmail + # mypy-boto3-workmail -# mypy-boto3-workmailmessageflow + # mypy-boto3-workmailmessageflow -# mypy-boto3-workspaces + # mypy-boto3-workspaces -# mypy-boto3-workspaces-web + # mypy-boto3-workspaces-web -# mypy-boto3-xray + # mypy-boto3-xray -# ; + # ; -# mypy-extensions = callPackage ./python-modules/mypy/extensions.nix { }; + # mypy-extensions = callPackage ./python-modules/mypy/extensions.nix { }; -# mypy-protobuf = callPackage ./python-modules/mypy-protobuf { }; + # mypy-protobuf = callPackage ./python-modules/mypy-protobuf { }; -# mysqlclient = callPackage ./python-modules/mysqlclient { }; + # mysqlclient = callPackage ./python-modules/mysqlclient { }; -# mysql-connector = callPackage ./python-modules/mysql-connector { }; + # mysql-connector = callPackage ./python-modules/mysql-connector { }; -# myst-docutils = callPackage ./python-modules/myst-docutils { }; + # myst-docutils = callPackage ./python-modules/myst-docutils { }; -# myst-nb = callPackage ./python-modules/myst-nb { }; + # myst-nb = callPackage ./python-modules/myst-nb { }; -# myst-parser = callPackage ./python-modules/myst-parser { }; + # myst-parser = callPackage ./python-modules/myst-parser { }; -# myuplink = callPackage ./python-modules/myuplink { }; + # myuplink = callPackage ./python-modules/myuplink { }; -# n3fit = callPackage ./python-modules/n3fit { }; + # n3fit = callPackage ./python-modules/n3fit { }; -# nad-receiver = callPackage ./python-modules/nad-receiver { }; + # nad-receiver = callPackage ./python-modules/nad-receiver { }; -# nagiosplugin = callPackage ./python-modules/nagiosplugin { }; + # nagiosplugin = callPackage ./python-modules/nagiosplugin { }; -# naked = callPackage ./python-modules/naked { }; + # naked = callPackage ./python-modules/naked { }; -# namedlist = callPackage ./python-modules/namedlist { }; + # namedlist = callPackage ./python-modules/namedlist { }; -# nameparser = callPackage ./python-modules/nameparser { }; + # nameparser = callPackage ./python-modules/nameparser { }; -# names = callPackage ./python-modules/names { }; + # names = callPackage ./python-modules/names { }; -# name-that-hash = callPackage ./python-modules/name-that-hash { }; + # name-that-hash = callPackage ./python-modules/name-that-hash { }; -# nameko = callPackage ./python-modules/nameko { }; + # nameko = callPackage ./python-modules/nameko { }; -# nampa = callPackage ./python-modules/nampa { }; + # nampa = callPackage ./python-modules/nampa { }; -# nanobind = callPackage ./python-modules/nanobind { }; + # nanobind = callPackage ./python-modules/nanobind { }; -# nanoid = callPackage ./python-modules/nanoid { }; + # nanoid = callPackage ./python-modules/nanoid { }; -# nanoleaf = callPackage ./python-modules/nanoleaf { }; + # nanoleaf = callPackage ./python-modules/nanoleaf { }; -# navec = callPackage ./python-modules/navec { }; + # navec = callPackage ./python-modules/navec { }; -# natasha = callPackage ./python-modules/natasha { }; + # natasha = callPackage ./python-modules/natasha { }; -# nomadnet = callPackage ./python-modules/nomadnet { }; + # nomadnet = callPackage ./python-modules/nomadnet { }; -# nox = callPackage ./python-modules/nox { }; + # nox = callPackage ./python-modules/nox { }; -# nanomsg-python = callPackage ./python-modules/nanomsg-python { -# inherit (pkgs) nanomsg; -# }; + # nanomsg-python = callPackage ./python-modules/nanomsg-python { + # inherit (pkgs) nanomsg; + # }; -# nanotime = callPackage ./python-modules/nanotime { }; + # nanotime = callPackage ./python-modules/nanotime { }; -# napalm = callPackage ./python-modules/napalm { }; + # napalm = callPackage ./python-modules/napalm { }; -# napalm-hp-procurve = callPackage ./python-modules/napalm/hp-procurve.nix { }; + # napalm-hp-procurve = callPackage ./python-modules/napalm/hp-procurve.nix { }; -# napari = callPackage ./python-modules/napari { -# inherit (pkgs.libsForQt5) mkDerivationWith wrapQtAppsHook; -# }; + # napari = callPackage ./python-modules/napari { + # inherit (pkgs.libsForQt5) mkDerivationWith wrapQtAppsHook; + # }; -# napari-console = callPackage ./python-modules/napari-console { }; + # napari-console = callPackage ./python-modules/napari-console { }; -# napari-npe2 = callPackage ./python-modules/napari-npe2 { }; + # napari-npe2 = callPackage ./python-modules/napari-npe2 { }; -# napari-plugin-engine = callPackage ./python-modules/napari-plugin-engine { }; + # napari-plugin-engine = callPackage ./python-modules/napari-plugin-engine { }; -# napari-svg = callPackage ./python-modules/napari-svg { }; + # napari-svg = callPackage ./python-modules/napari-svg { }; -# nasdaq-data-link = callPackage ./python-modules/nasdaq-data-link { }; + # nasdaq-data-link = callPackage ./python-modules/nasdaq-data-link { }; -# nats-py = callPackage ./python-modules/nats-py { }; + # nats-py = callPackage ./python-modules/nats-py { }; -# nats-python = callPackage ./python-modules/nats-python { }; + # nats-python = callPackage ./python-modules/nats-python { }; -# natsort = callPackage ./python-modules/natsort { }; + # natsort = callPackage ./python-modules/natsort { }; -# naturalsort = callPackage ./python-modules/naturalsort { }; + # naturalsort = callPackage ./python-modules/naturalsort { }; -# nbclassic = callPackage ./python-modules/nbclassic { }; + # nbclassic = callPackage ./python-modules/nbclassic { }; -# nbclient = callPackage ./python-modules/nbclient { }; + # nbclient = callPackage ./python-modules/nbclient { }; -# nbconflux = callPackage ./python-modules/nbconflux { }; + # nbconflux = callPackage ./python-modules/nbconflux { }; -# nbconvert = callPackage ./python-modules/nbconvert { }; + # nbconvert = callPackage ./python-modules/nbconvert { }; -# nbdev = callPackage ./python-modules/nbdev { }; + # nbdev = callPackage ./python-modules/nbdev { }; -# nbdime = callPackage ./python-modules/nbdime { }; + # nbdime = callPackage ./python-modules/nbdime { }; -# nbexec = callPackage ./python-modules/nbexec { }; + # nbexec = callPackage ./python-modules/nbexec { }; -# nbformat = callPackage ./python-modules/nbformat { }; + # nbformat = callPackage ./python-modules/nbformat { }; -# nbmerge = callPackage ./python-modules/nbmerge { }; + # nbmerge = callPackage ./python-modules/nbmerge { }; -# nbsmoke = callPackage ./python-modules/nbsmoke { }; + # nbsmoke = callPackage ./python-modules/nbsmoke { }; -# nbsphinx = callPackage ./python-modules/nbsphinx { }; + # nbsphinx = callPackage ./python-modules/nbsphinx { }; -# nbtlib = callPackage ./python-modules/nbtlib { }; + # nbtlib = callPackage ./python-modules/nbtlib { }; -# nbval = callPackage ./python-modules/nbval { }; + # nbval = callPackage ./python-modules/nbval { }; -# nbxmpp = callPackage ./python-modules/nbxmpp { }; + # nbxmpp = callPackage ./python-modules/nbxmpp { }; -# nc-dnsapi = callPackage ./python-modules/nc-dnsapi { }; + # nc-dnsapi = callPackage ./python-modules/nc-dnsapi { }; -# ncclient = callPackage ./python-modules/ncclient { }; + # ncclient = callPackage ./python-modules/ncclient { }; -# nclib = callPackage ./python-modules/nclib { }; + # nclib = callPackage ./python-modules/nclib { }; -# ndeflib = callPackage ./python-modules/ndeflib { }; + # ndeflib = callPackage ./python-modules/ndeflib { }; -# ndg-httpsclient = callPackage ./python-modules/ndg-httpsclient { }; + # ndg-httpsclient = callPackage ./python-modules/ndg-httpsclient { }; -# ndindex = callPackage ./python-modules/ndindex { }; + # ndindex = callPackage ./python-modules/ndindex { }; -# ndjson = callPackage ./python-modules/ndjson { }; + # ndjson = callPackage ./python-modules/ndjson { }; -# ndms2-client = callPackage ./python-modules/ndms2-client { }; + # ndms2-client = callPackage ./python-modules/ndms2-client { }; -# ndspy = callPackage ./python-modules/ndspy { }; + # ndspy = callPackage ./python-modules/ndspy { }; -# ndtypes = callPackage ./python-modules/ndtypes { }; + # ndtypes = callPackage ./python-modules/ndtypes { }; -# nebula3-python = callPackage ./python-modules/nebula3-python { }; + # nebula3-python = callPackage ./python-modules/nebula3-python { }; -# nengo = callPackage ./python-modules/nengo { }; + # nengo = callPackage ./python-modules/nengo { }; -# neo = callPackage ./python-modules/neo { }; + # neo = callPackage ./python-modules/neo { }; -# neo4j = callPackage ./python-modules/neo4j { }; + # neo4j = callPackage ./python-modules/neo4j { }; -# neoteroi-mkdocs = callPackage ./python-modules/neoteroi-mkdocs { }; + # neoteroi-mkdocs = callPackage ./python-modules/neoteroi-mkdocs { }; -# nessclient = callPackage ./python-modules/nessclient { }; + # nessclient = callPackage ./python-modules/nessclient { }; -# nest = toPythonModule(pkgs.nest-mpi.override { withPython = true; python3 = python; }); + # nest = toPythonModule(pkgs.nest-mpi.override { withPython = true; python3 = python; }); -# nest-asyncio = callPackage ./python-modules/nest-asyncio { }; + # nest-asyncio = callPackage ./python-modules/nest-asyncio { }; -# nested-lookup = callPackage ./python-modules/nested-lookup { }; + # nested-lookup = callPackage ./python-modules/nested-lookup { }; -# nestedtext = callPackage ./python-modules/nestedtext { }; + # nestedtext = callPackage ./python-modules/nestedtext { }; -# netaddr = callPackage ./python-modules/netaddr { }; + # netaddr = callPackage ./python-modules/netaddr { }; -# netapp-lib = callPackage ./python-modules/netapp-lib { }; + # netapp-lib = callPackage ./python-modules/netapp-lib { }; -# netapp-ontap = callPackage ./python-modules/netapp-ontap { }; + # netapp-ontap = callPackage ./python-modules/netapp-ontap { }; -# netcdf4 = callPackage ./python-modules/netcdf4 { }; + # netcdf4 = callPackage ./python-modules/netcdf4 { }; -# netdata = callPackage ./python-modules/netdata { }; + # netdata = callPackage ./python-modules/netdata { }; -# netdisco = callPackage ./python-modules/netdisco { }; + # netdisco = callPackage ./python-modules/netdisco { }; -# nethsm = callPackage ./python-modules/nethsm { }; + # nethsm = callPackage ./python-modules/nethsm { }; -# netifaces = callPackage ./python-modules/netifaces { }; + # netifaces = callPackage ./python-modules/netifaces { }; -# netmiko = callPackage ./python-modules/netmiko { }; + # netmiko = callPackage ./python-modules/netmiko { }; -# netio = callPackage ./python-modules/netio { }; + # netio = callPackage ./python-modules/netio { }; -# nettigo-air-monitor = callPackage ./python-modules/nettigo-air-monitor { }; + # nettigo-air-monitor = callPackage ./python-modules/nettigo-air-monitor { }; -# netutils = callPackage ./python-modules/netutils { }; + # netutils = callPackage ./python-modules/netutils { }; -# networkx = callPackage ./python-modules/networkx { }; + # networkx = callPackage ./python-modules/networkx { }; -# neuron-full = pkgs.neuron-full.override { python3 = python; }; + # neuron-full = pkgs.neuron-full.override { python3 = python; }; -# neuronpy = python.pkgs.toPythonModule neuron-full; + # neuronpy = python.pkgs.toPythonModule neuron-full; -# nevow = callPackage ./python-modules/nevow { }; + # nevow = callPackage ./python-modules/nevow { }; -# newversion = callPackage ./python-modules/newversion { }; + # newversion = callPackage ./python-modules/newversion { }; -# newick = callPackage ./python-modules/newick { }; + # newick = callPackage ./python-modules/newick { }; -# nexia = callPackage ./python-modules/nexia { }; + # nexia = callPackage ./python-modules/nexia { }; -# nextcloudmonitor = callPackage ./python-modules/nextcloudmonitor { }; + # nextcloudmonitor = callPackage ./python-modules/nextcloudmonitor { }; -# nextcord = callPackage ./python-modules/nextcord { }; + # nextcord = callPackage ./python-modules/nextcord { }; -# nextdns = callPackage ./python-modules/nextdns { }; + # nextdns = callPackage ./python-modules/nextdns { }; -# nfcpy = callPackage ./python-modules/nfcpy { }; + # nfcpy = callPackage ./python-modules/nfcpy { }; -# nftables = toPythonModule (pkgs.nftables.override { -# python3 = python; -# withPython = true; -# }); + # nftables = toPythonModule (pkgs.nftables.override { + # python3 = python; + # withPython = true; + # }); -# nh3 = callPackage ./python-modules/nh3 { }; + # nh3 = callPackage ./python-modules/nh3 { }; -# niaaml = callPackage ./python-modules/niaaml { }; + # niaaml = callPackage ./python-modules/niaaml { }; -# nianet = callPackage ./python-modules/nianet { }; + # nianet = callPackage ./python-modules/nianet { }; -# niaarm = callPackage ./python-modules/niaarm { }; + # niaarm = callPackage ./python-modules/niaarm { }; -# niaclass = callPackage ./python-modules/niaclass { }; + # niaclass = callPackage ./python-modules/niaclass { }; -# niapy = callPackage ./python-modules/niapy { }; + # niapy = callPackage ./python-modules/niapy { }; -# nibabel = callPackage ./python-modules/nibabel { }; + # nibabel = callPackage ./python-modules/nibabel { }; -# nibe = callPackage ./python-modules/nibe { }; + # nibe = callPackage ./python-modules/nibe { }; -# nidaqmx = callPackage ./python-modules/nidaqmx { }; + # nidaqmx = callPackage ./python-modules/nidaqmx { }; -# nikola = callPackage ./python-modules/nikola { }; + # nikola = callPackage ./python-modules/nikola { }; -# niko-home-control = callPackage ./python-modules/niko-home-control { }; + # niko-home-control = callPackage ./python-modules/niko-home-control { }; -# nilearn = callPackage ./python-modules/nilearn { }; + # nilearn = callPackage ./python-modules/nilearn { }; -# niluclient = callPackage ./python-modules/niluclient { }; + # niluclient = callPackage ./python-modules/niluclient { }; -# nimfa = callPackage ./python-modules/nimfa { }; + # nimfa = callPackage ./python-modules/nimfa { }; -# nine = callPackage ./python-modules/nine { }; + # nine = callPackage ./python-modules/nine { }; -# ninebot-ble = callPackage ./python-modules/ninebot-ble { }; + # ninebot-ble = callPackage ./python-modules/ninebot-ble { }; -# ninja = callPackage ./python-modules/ninja { inherit (pkgs) ninja; }; + # ninja = callPackage ./python-modules/ninja { inherit (pkgs) ninja; }; -# nipreps-versions = callPackage ./python-modules/nipreps-versions { }; + # nipreps-versions = callPackage ./python-modules/nipreps-versions { }; -# nipy = callPackage ./python-modules/nipy { }; + # nipy = callPackage ./python-modules/nipy { }; -# nipype = callPackage ./python-modules/nipype { -# inherit (pkgs) which; -# }; + # nipype = callPackage ./python-modules/nipype { + # inherit (pkgs) which; + # }; -# nitime = callPackage ./python-modules/nitime { }; + # nitime = callPackage ./python-modules/nitime { }; -# nitpick = callPackage ../applications/version-management/nitpick { }; + # nitpick = callPackage ../applications/version-management/nitpick { }; -# nitransforms = callPackage ./python-modules/nitransforms { }; + # nitransforms = callPackage ./python-modules/nitransforms { }; -# niworkflows = callPackage ./python-modules/niworkflows { }; + # niworkflows = callPackage ./python-modules/niworkflows { }; -# nix-kernel = callPackage ./python-modules/nix-kernel { -# inherit (pkgs) nix; -# }; + # nix-kernel = callPackage ./python-modules/nix-kernel { + # inherit (pkgs) nix; + # }; -# nixpkgs = callPackage ./python-modules/nixpkgs { }; + # nixpkgs = callPackage ./python-modules/nixpkgs { }; -# nixpkgs-pytools = callPackage ./python-modules/nixpkgs-pytools { }; + # nixpkgs-pytools = callPackage ./python-modules/nixpkgs-pytools { }; -# nix-prefetch-github = callPackage ./python-modules/nix-prefetch-github { }; + # nix-prefetch-github = callPackage ./python-modules/nix-prefetch-github { }; -# nkdfu = callPackage ./python-modules/nkdfu { }; + # nkdfu = callPackage ./python-modules/nkdfu { }; -# nlpcloud = callPackage ./python-modules/nlpcloud { }; + # nlpcloud = callPackage ./python-modules/nlpcloud { }; -# nltk = callPackage ./python-modules/nltk { }; + # nltk = callPackage ./python-modules/nltk { }; -# nnpdf = toPythonModule (pkgs.nnpdf.override { -# python3 = python; -# }); + # nnpdf = toPythonModule (pkgs.nnpdf.override { + # python3 = python; + # }); -# nmapthon2 = callPackage ./python-modules/nmapthon2 { }; + # nmapthon2 = callPackage ./python-modules/nmapthon2 { }; -# amaranth-boards = callPackage ./python-modules/amaranth-boards { }; + # amaranth-boards = callPackage ./python-modules/amaranth-boards { }; -# amaranth = callPackage ./python-modules/amaranth { }; + # amaranth = callPackage ./python-modules/amaranth { }; -# amaranth-soc = callPackage ./python-modules/amaranth-soc { }; + # amaranth-soc = callPackage ./python-modules/amaranth-soc { }; -# nocasedict = callPackage ./python-modules/nocasedict { }; + # nocasedict = callPackage ./python-modules/nocasedict { }; -# nocaselist = callPackage ./python-modules/nocaselist { }; + # nocaselist = callPackage ./python-modules/nocaselist { }; -# nocturne = callPackage ./python-modules/nocturne { }; + # nocturne = callPackage ./python-modules/nocturne { }; -# nodeenv = callPackage ./python-modules/nodeenv { }; + # nodeenv = callPackage ./python-modules/nodeenv { }; -# nodepy-runtime = callPackage ./python-modules/nodepy-runtime { }; + # nodepy-runtime = callPackage ./python-modules/nodepy-runtime { }; -# node-semver = callPackage ./python-modules/node-semver { }; + # node-semver = callPackage ./python-modules/node-semver { }; -# noise = callPackage ./python-modules/noise { }; + # noise = callPackage ./python-modules/noise { }; -# noiseprotocol = callPackage ./python-modules/noiseprotocol { }; + # noiseprotocol = callPackage ./python-modules/noiseprotocol { }; -# norfair = callPackage ./python-modules/norfair { }; + # norfair = callPackage ./python-modules/norfair { }; -# normality = callPackage ./python-modules/normality { }; + # normality = callPackage ./python-modules/normality { }; nose = callPackage ./python-modules/nose { }; -# nose2 = callPackage ./python-modules/nose2 { }; + # nose2 = callPackage ./python-modules/nose2 { }; -# nose3 = callPackage ./python-modules/nose3 { }; + # nose3 = callPackage ./python-modules/nose3 { }; -# nose-cov = callPackage ./python-modules/nose-cov { }; + # nose-cov = callPackage ./python-modules/nose-cov { }; -# nose-cprof = callPackage ./python-modules/nose-cprof { }; + # nose-cprof = callPackage ./python-modules/nose-cprof { }; -# nose-exclude = callPackage ./python-modules/nose-exclude { }; + # nose-exclude = callPackage ./python-modules/nose-exclude { }; -# nose-timer = callPackage ./python-modules/nose-timer { }; + # nose-timer = callPackage ./python-modules/nose-timer { }; -# nosejs = callPackage ./python-modules/nosejs { }; + # nosejs = callPackage ./python-modules/nosejs { }; -# nose-pattern-exclude = callPackage ./python-modules/nose-pattern-exclude { }; + # nose-pattern-exclude = callPackage ./python-modules/nose-pattern-exclude { }; -# nose-randomly = callPackage ./python-modules/nose-randomly { }; + # nose-randomly = callPackage ./python-modules/nose-randomly { }; -# nose-warnings-filters = callPackage ./python-modules/nose-warnings-filters { }; + # nose-warnings-filters = callPackage ./python-modules/nose-warnings-filters { }; -# nosexcover = callPackage ./python-modules/nosexcover { }; + # nosexcover = callPackage ./python-modules/nosexcover { }; -# notebook = callPackage ./python-modules/notebook { }; + # notebook = callPackage ./python-modules/notebook { }; -# notebook-shim = callPackage ./python-modules/notebook-shim { }; + # notebook-shim = callPackage ./python-modules/notebook-shim { }; -# notedown = callPackage ./python-modules/notedown { }; + # notedown = callPackage ./python-modules/notedown { }; -# notifications-android-tv = callPackage ./python-modules/notifications-android-tv { }; + # notifications-android-tv = callPackage ./python-modules/notifications-android-tv { }; -# notifications-python-client = callPackage ./python-modules/notifications-python-client { }; + # notifications-python-client = callPackage ./python-modules/notifications-python-client { }; -# notify-events = callPackage ./python-modules/notify-events { }; + # notify-events = callPackage ./python-modules/notify-events { }; -# notify-py = callPackage ./python-modules/notify-py { }; + # notify-py = callPackage ./python-modules/notify-py { }; -# notify2 = callPackage ./python-modules/notify2 { }; + # notify2 = callPackage ./python-modules/notify2 { }; -# notion-client = callPackage ./python-modules/notion-client { }; + # notion-client = callPackage ./python-modules/notion-client { }; -# notmuch = callPackage ./python-modules/notmuch { -# inherit (pkgs) notmuch; -# }; + # notmuch = callPackage ./python-modules/notmuch { + # inherit (pkgs) notmuch; + # }; -# notmuch2 = callPackage ./python-modules/notmuch2 { -# inherit (pkgs) notmuch; -# }; + # notmuch2 = callPackage ./python-modules/notmuch2 { + # inherit (pkgs) notmuch; + # }; -# nototools = callPackage ./python-modules/nototools { }; + # nototools = callPackage ./python-modules/nototools { }; -# notus-scanner = callPackage ./python-modules/notus-scanner { }; + # notus-scanner = callPackage ./python-modules/notus-scanner { }; -# nplusone = callPackage ./python-modules/nplusone { }; + # nplusone = callPackage ./python-modules/nplusone { }; -# nptyping = callPackage ./python-modules/nptyping { }; + # nptyping = callPackage ./python-modules/nptyping { }; -# npyscreen = callPackage ./python-modules/npyscreen { }; + # npyscreen = callPackage ./python-modules/npyscreen { }; -# nsapi = callPackage ./python-modules/nsapi { }; + # nsapi = callPackage ./python-modules/nsapi { }; -# ntc-templates = callPackage ./python-modules/ntc-templates { }; + # ntc-templates = callPackage ./python-modules/ntc-templates { }; -# ntplib = callPackage ./python-modules/ntplib { }; + # ntplib = callPackage ./python-modules/ntplib { }; -# nuitka = callPackage ./python-modules/nuitka { }; + # nuitka = callPackage ./python-modules/nuitka { }; -# nuheat = callPackage ./python-modules/nuheat { }; + # nuheat = callPackage ./python-modules/nuheat { }; -# nulltype = callPackage ./python-modules/nulltype { }; + # nulltype = callPackage ./python-modules/nulltype { }; -# num2words = callPackage ./python-modules/num2words { }; + # num2words = callPackage ./python-modules/num2words { }; -# numba = callPackage ./python-modules/numba { -# inherit (pkgs.config) cudaSupport; -# }; + # numba = callPackage ./python-modules/numba { + # inherit (pkgs.config) cudaSupport; + # }; -# numbaWithCuda = self.numba.override { -# cudaSupport = true; -# }; + # numbaWithCuda = self.numba.override { + # cudaSupport = true; + # }; -# numba-scipy = callPackage ./python-modules/numba-scipy { }; + # numba-scipy = callPackage ./python-modules/numba-scipy { }; -# numcodecs = callPackage ./python-modules/numcodecs { }; + # numcodecs = callPackage ./python-modules/numcodecs { }; -# numdifftools = callPackage ./python-modules/numdifftools { }; + # numdifftools = callPackage ./python-modules/numdifftools { }; -# numericalunits = callPackage ./python-modules/numericalunits { }; + # numericalunits = callPackage ./python-modules/numericalunits { }; -# numexpr = callPackage ./python-modules/numexpr { }; + # numexpr = callPackage ./python-modules/numexpr { }; -# numpydoc = callPackage ./python-modules/numpydoc { }; + # numpydoc = callPackage ./python-modules/numpydoc { }; numpy = callPackage ./python-modules/numpy { }; -# numpy-stl = callPackage ./python-modules/numpy-stl { }; + # numpy-stl = callPackage ./python-modules/numpy-stl { }; -# numpyro = callPackage ./python-modules/numpyro { }; + # numpyro = callPackage ./python-modules/numpyro { }; -# nunavut = callPackage ./python-modules/nunavut { }; + # nunavut = callPackage ./python-modules/nunavut { }; -# nutils = callPackage ./python-modules/nutils { }; + # nutils = callPackage ./python-modules/nutils { }; -# nvchecker = callPackage ./python-modules/nvchecker { }; + # nvchecker = callPackage ./python-modules/nvchecker { }; -# nvdlib = callPackage ./python-modules/nvdlib { }; + # nvdlib = callPackage ./python-modules/nvdlib { }; -# nvidia-ml-py = callPackage ./python-modules/nvidia-ml-py { }; + # nvidia-ml-py = callPackage ./python-modules/nvidia-ml-py { }; -# nsz = callPackage ./python-modules/nsz { }; + # nsz = callPackage ./python-modules/nsz { }; -# nxt-python = callPackage ./python-modules/nxt-python { }; + # nxt-python = callPackage ./python-modules/nxt-python { }; -# python-ndn = callPackage ./python-modules/python-ndn { }; + # python-ndn = callPackage ./python-modules/python-ndn { }; -# python-nvd3 = callPackage ./python-modules/python-nvd3 { }; + # python-nvd3 = callPackage ./python-modules/python-nvd3 { }; -# python-secp256k1-cardano = callPackage ./python-modules/python-secp256k1-cardano { }; + # python-secp256k1-cardano = callPackage ./python-modules/python-secp256k1-cardano { }; -# python-tds = callPackage ./python-modules/python-tds { }; + # python-tds = callPackage ./python-modules/python-tds { }; -# python-yate = callPackage ./python-modules/python-yate { }; + # python-yate = callPackage ./python-modules/python-yate { }; -# python-youtube = callPackage ./python-modules/python-youtube { }; + # python-youtube = callPackage ./python-modules/python-youtube { }; -# py-aosmith = callPackage ./python-modules/py-aosmith { }; + # py-aosmith = callPackage ./python-modules/py-aosmith { }; -# py-deprecate = callPackage ./python-modules/py-deprecate { }; + # py-deprecate = callPackage ./python-modules/py-deprecate { }; -# py-ecc = callPackage ./python-modules/py-ecc { }; + # py-ecc = callPackage ./python-modules/py-ecc { }; -# py-eth-sig-utils = callPackage ./python-modules/py-eth-sig-utils { }; + # py-eth-sig-utils = callPackage ./python-modules/py-eth-sig-utils { }; -# py-expression-eval = callPackage ./python-modules/py-expression-eval { }; + # py-expression-eval = callPackage ./python-modules/py-expression-eval { }; -# py-radix-sr = callPackage ./python-modules/py-radix-sr { }; + # py-radix-sr = callPackage ./python-modules/py-radix-sr { }; -# nwdiag = callPackage ./python-modules/nwdiag { }; + # nwdiag = callPackage ./python-modules/nwdiag { }; -# oasatelematics = callPackage ./python-modules/oasatelematics { }; + # oasatelematics = callPackage ./python-modules/oasatelematics { }; -# oath = callPackage ./python-modules/oath { }; + # oath = callPackage ./python-modules/oath { }; -# oauth2 = callPackage ./python-modules/oauth2 { }; + # oauth2 = callPackage ./python-modules/oauth2 { }; -# oauth2client = callPackage ./python-modules/oauth2client { }; + # oauth2client = callPackage ./python-modules/oauth2client { }; -# oauth = callPackage ./python-modules/oauth { }; + # oauth = callPackage ./python-modules/oauth { }; -# oauthenticator = callPackage ./python-modules/oauthenticator { }; + # oauthenticator = callPackage ./python-modules/oauthenticator { }; -# oauthlib = callPackage ./python-modules/oauthlib { }; + # oauthlib = callPackage ./python-modules/oauthlib { }; -# obfsproxy = callPackage ./python-modules/obfsproxy { }; + # obfsproxy = callPackage ./python-modules/obfsproxy { }; -# objax = callPackage ./python-modules/objax { }; + # objax = callPackage ./python-modules/objax { }; -# objsize = callPackage ./python-modules/objsize { }; + # objsize = callPackage ./python-modules/objsize { }; objgraph = callPackage ./python-modules/objgraph { # requires both the graphviz package and python package graphvizPkgs = pkgs.graphviz; }; -# obspy = callPackage ./python-modules/obspy { }; + # obspy = callPackage ./python-modules/obspy { }; -# oca-port = callPackage ./python-modules/oca-port { }; + # oca-port = callPackage ./python-modules/oca-port { }; -# ochre = callPackage ./python-modules/ochre { }; + # ochre = callPackage ./python-modules/ochre { }; -# oci = callPackage ./python-modules/oci { }; + # oci = callPackage ./python-modules/oci { }; -# ocifs = callPackage ./python-modules/ocifs { }; + # ocifs = callPackage ./python-modules/ocifs { }; -# ocrmypdf = callPackage ./python-modules/ocrmypdf { -# tesseract = pkgs.tesseract5; -# }; + # ocrmypdf = callPackage ./python-modules/ocrmypdf { + # tesseract = pkgs.tesseract5; + # }; -# od = callPackage ./python-modules/od { }; + # od = callPackage ./python-modules/od { }; -# odfpy = callPackage ./python-modules/odfpy { }; + # odfpy = callPackage ./python-modules/odfpy { }; -# odp-amsterdam = callPackage ./python-modules/odp-amsterdam { }; + # odp-amsterdam = callPackage ./python-modules/odp-amsterdam { }; -# offtrac = callPackage ./python-modules/offtrac { }; + # offtrac = callPackage ./python-modules/offtrac { }; -# ofxclient = callPackage ./python-modules/ofxclient { }; + # ofxclient = callPackage ./python-modules/ofxclient { }; -# ofxhome = callPackage ./python-modules/ofxhome { }; + # ofxhome = callPackage ./python-modules/ofxhome { }; -# ofxparse = callPackage ./python-modules/ofxparse { }; + # ofxparse = callPackage ./python-modules/ofxparse { }; -# ofxtools = callPackage ./python-modules/ofxtools { }; + # ofxtools = callPackage ./python-modules/ofxtools { }; -# oemthermostat = callPackage ./python-modules/oemthermostat { }; + # oemthermostat = callPackage ./python-modules/oemthermostat { }; -# okonomiyaki = callPackage ./python-modules/okonomiyaki { }; + # okonomiyaki = callPackage ./python-modules/okonomiyaki { }; -# okta = callPackage ./python-modules/okta { }; + # okta = callPackage ./python-modules/okta { }; -# oldest-supported-numpy = callPackage ./python-modules/oldest-supported-numpy { }; + # oldest-supported-numpy = callPackage ./python-modules/oldest-supported-numpy { }; -# olefile = callPackage ./python-modules/olefile { }; + # olefile = callPackage ./python-modules/olefile { }; -# oletools = callPackage ./python-modules/oletools { }; + # oletools = callPackage ./python-modules/oletools { }; -# ollama = callPackage ./python-modules/ollama { }; + # ollama = callPackage ./python-modules/ollama { }; -# omegaconf = callPackage ./python-modules/omegaconf { }; + # omegaconf = callPackage ./python-modules/omegaconf { }; -# omemo-dr = callPackage ./python-modules/omemo-dr { }; + # omemo-dr = callPackage ./python-modules/omemo-dr { }; -# ome-zarr = callPackage ./python-modules/ome-zarr { }; + # ome-zarr = callPackage ./python-modules/ome-zarr { }; -# omnikinverter = callPackage ./python-modules/omnikinverter { }; + # omnikinverter = callPackage ./python-modules/omnikinverter { }; -# omnilogic = callPackage ./python-modules/omnilogic { }; + # omnilogic = callPackage ./python-modules/omnilogic { }; -# omorfi = callPackage ./python-modules/omorfi { }; + # omorfi = callPackage ./python-modules/omorfi { }; -# omrdatasettools = callPackage ./python-modules/omrdatasettools { }; + # omrdatasettools = callPackage ./python-modules/omrdatasettools { }; -# oncalendar = callPackage ./python-modules/oncalendar { }; + # oncalendar = callPackage ./python-modules/oncalendar { }; -# ondilo = callPackage ./python-modules/ondilo { }; + # ondilo = callPackage ./python-modules/ondilo { }; -# onetimepass = callPackage ./python-modules/onetimepass { }; + # onetimepass = callPackage ./python-modules/onetimepass { }; -# onigurumacffi = callPackage ./python-modules/onigurumacffi { }; + # onigurumacffi = callPackage ./python-modules/onigurumacffi { }; -# onkyo-eiscp = callPackage ./python-modules/onkyo-eiscp { }; + # onkyo-eiscp = callPackage ./python-modules/onkyo-eiscp { }; -# online-judge-api-client = callPackage ./python-modules/online-judge-api-client { }; + # online-judge-api-client = callPackage ./python-modules/online-judge-api-client { }; -# online-judge-tools = callPackage ./python-modules/online-judge-tools { }; + # online-judge-tools = callPackage ./python-modules/online-judge-tools { }; -# onlykey-solo-python = callPackage ./python-modules/onlykey-solo-python { }; + # onlykey-solo-python = callPackage ./python-modules/onlykey-solo-python { }; -# onnx = callPackage ./python-modules/onnx { -# abseil-cpp = pkgs.abseil-cpp_202301; -# }; + # onnx = callPackage ./python-modules/onnx { + # abseil-cpp = pkgs.abseil-cpp_202301; + # }; -# onnxconverter-common = callPackage ./python-modules/onnxconverter-common { -# inherit (pkgs) protobuf; -# }; + # onnxconverter-common = callPackage ./python-modules/onnxconverter-common { + # inherit (pkgs) protobuf; + # }; -# onnxmltools = callPackage ./python-modules/onnxmltools { }; + # onnxmltools = callPackage ./python-modules/onnxmltools { }; -# onnxruntime = callPackage ./python-modules/onnxruntime { -# onnxruntime = pkgs.onnxruntime.override { -# python3Packages = self; -# pythonSupport = true; -# }; -# }; + # onnxruntime = callPackage ./python-modules/onnxruntime { + # onnxruntime = pkgs.onnxruntime.override { + # python3Packages = self; + # pythonSupport = true; + # }; + # }; -# onnxruntime-tools = callPackage ./python-modules/onnxruntime-tools { }; + # onnxruntime-tools = callPackage ./python-modules/onnxruntime-tools { }; -# onvif-zeep = callPackage ./python-modules/onvif-zeep { }; + # onvif-zeep = callPackage ./python-modules/onvif-zeep { }; -# onvif-zeep-async = callPackage ./python-modules/onvif-zeep-async { }; + # onvif-zeep-async = callPackage ./python-modules/onvif-zeep-async { }; -# oocsi = callPackage ./python-modules/oocsi { }; + # oocsi = callPackage ./python-modules/oocsi { }; -# opcua-widgets = callPackage ./python-modules/opcua-widgets { }; + # opcua-widgets = callPackage ./python-modules/opcua-widgets { }; -# open-clip-torch = callPackage ./python-modules/open-clip-torch { }; + # open-clip-torch = callPackage ./python-modules/open-clip-torch { }; -# open-garage = callPackage ./python-modules/open-garage { }; + # open-garage = callPackage ./python-modules/open-garage { }; -# open-interpreter = callPackage ./python-modules/open-interpreter { }; + # open-interpreter = callPackage ./python-modules/open-interpreter { }; -# open-meteo = callPackage ./python-modules/open-meteo { }; + # open-meteo = callPackage ./python-modules/open-meteo { }; -# openai-triton = callPackage ./python-modules/openai-triton { -# llvm = pkgs.openai-triton-llvm; -# cudaPackages = pkgs.cudaPackages_12_1; -# }; + # openai-triton = callPackage ./python-modules/openai-triton { + # llvm = pkgs.openai-triton-llvm; + # cudaPackages = pkgs.cudaPackages_12_1; + # }; -# openai-triton-cuda = self.openai-triton.override { -# cudaSupport = true; -# }; + # openai-triton-cuda = self.openai-triton.override { + # cudaSupport = true; + # }; -# openai-triton-no-cuda = self.openai-triton.override { -# cudaSupport = false; -# }; + # openai-triton-no-cuda = self.openai-triton.override { + # cudaSupport = false; + # }; -# openai-triton-bin = callPackage ./python-modules/openai-triton/bin.nix { }; + # openai-triton-bin = callPackage ./python-modules/openai-triton/bin.nix { }; -# openai-whisper = callPackage ./python-modules/openai-whisper { }; + # openai-whisper = callPackage ./python-modules/openai-whisper { }; -# openant = callPackage ./python-modules/openant { }; + # openant = callPackage ./python-modules/openant { }; -# openapi-schema-validator = callPackage ./python-modules/openapi-schema-validator { }; + # openapi-schema-validator = callPackage ./python-modules/openapi-schema-validator { }; -# openapi-spec-validator = callPackage ./python-modules/openapi-spec-validator { }; + # openapi-spec-validator = callPackage ./python-modules/openapi-spec-validator { }; -# openapi3 = callPackage ./python-modules/openapi3 { }; + # openapi3 = callPackage ./python-modules/openapi3 { }; -# openbabel-bindings = callPackage ./python-modules/openbabel-bindings { -# openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; }; -# }; + # openbabel-bindings = callPackage ./python-modules/openbabel-bindings { + # openbabel = callPackage ../development/libraries/openbabel { inherit (self) python; }; + # }; -# opencensus = callPackage ./python-modules/opencensus { }; + # opencensus = callPackage ./python-modules/opencensus { }; -# opencensus-context = callPackage ./python-modules/opencensus-context { }; + # opencensus-context = callPackage ./python-modules/opencensus-context { }; -# opencensus-ext-azure = callPackage ./python-modules/opencensus-ext-azure { }; + # opencensus-ext-azure = callPackage ./python-modules/opencensus-ext-azure { }; -# opencontainers = callPackage ./python-modules/opencontainers { }; + # opencontainers = callPackage ./python-modules/opencontainers { }; -# opencv4 = toPythonModule (pkgs.opencv4.override { -# enablePython = true; -# pythonPackages = self; -# }); + # opencv4 = toPythonModule (pkgs.opencv4.override { + # enablePython = true; + # pythonPackages = self; + # }); -# openerz-api = callPackage ./python-modules/openerz-api { }; + # openerz-api = callPackage ./python-modules/openerz-api { }; -# openevsewifi = callPackage ./python-modules/openevsewifi { }; + # openevsewifi = callPackage ./python-modules/openevsewifi { }; -# openhomedevice = callPackage ./python-modules/openhomedevice { }; + # openhomedevice = callPackage ./python-modules/openhomedevice { }; -# openidc-client = callPackage ./python-modules/openidc-client { }; + # openidc-client = callPackage ./python-modules/openidc-client { }; -# openmm = toPythonModule (pkgs.openmm.override { -# python3Packages = self; -# enablePython = true; -# }); + # openmm = toPythonModule (pkgs.openmm.override { + # python3Packages = self; + # enablePython = true; + # }); -# openpyxl = callPackage ./python-modules/openpyxl { }; + # openpyxl = callPackage ./python-modules/openpyxl { }; -# openrazer = callPackage ./python-modules/openrazer/pylib.nix { }; + # openrazer = callPackage ./python-modules/openrazer/pylib.nix { }; -# openrazer-daemon = callPackage ./python-modules/openrazer/daemon.nix { }; + # openrazer-daemon = callPackage ./python-modules/openrazer/daemon.nix { }; -# openrgb-python = callPackage ./python-modules/openrgb-python { }; + # openrgb-python = callPackage ./python-modules/openrgb-python { }; -# openrouteservice = callPackage ./python-modules/openrouteservice { }; + # openrouteservice = callPackage ./python-modules/openrouteservice { }; -# opensearch-py = callPackage ./python-modules/opensearch-py { }; + # opensearch-py = callPackage ./python-modules/opensearch-py { }; -# opensensemap-api = callPackage ./python-modules/opensensemap-api { }; + # opensensemap-api = callPackage ./python-modules/opensensemap-api { }; -# opensfm = callPackage ./python-modules/opensfm { }; + # opensfm = callPackage ./python-modules/opensfm { }; -# openshift = callPackage ./python-modules/openshift { }; + # openshift = callPackage ./python-modules/openshift { }; -# opensimplex = callPackage ./python-modules/opensimplex { }; + # opensimplex = callPackage ./python-modules/opensimplex { }; -# openstackdocstheme = callPackage ./python-modules/openstackdocstheme { }; + # openstackdocstheme = callPackage ./python-modules/openstackdocstheme { }; -# openstacksdk = callPackage ./python-modules/openstacksdk { }; + # openstacksdk = callPackage ./python-modules/openstacksdk { }; -# opentimestamps = callPackage ./python-modules/opentimestamps { }; + # opentimestamps = callPackage ./python-modules/opentimestamps { }; -# opentelemetry-api = callPackage ./python-modules/opentelemetry-api { }; + # opentelemetry-api = callPackage ./python-modules/opentelemetry-api { }; -# opentelemetry-exporter-otlp = callPackage ./python-modules/opentelemetry-exporter-otlp { }; + # opentelemetry-exporter-otlp = callPackage ./python-modules/opentelemetry-exporter-otlp { }; -# opentelemetry-exporter-otlp-proto-common = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-common { }; + # opentelemetry-exporter-otlp-proto-common = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-common { }; -# opentelemetry-exporter-otlp-proto-grpc = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-grpc { }; + # opentelemetry-exporter-otlp-proto-grpc = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-grpc { }; -# opentelemetry-exporter-otlp-proto-http = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-http { }; + # opentelemetry-exporter-otlp-proto-http = callPackage ./python-modules/opentelemetry-exporter-otlp-proto-http { }; -# opentelemetry-exporter-prometheus = callPackage ./python-modules/opentelemetry-exporter-prometheus { }; + # opentelemetry-exporter-prometheus = callPackage ./python-modules/opentelemetry-exporter-prometheus { }; -# opentelemetry-instrumentation = callPackage ./python-modules/opentelemetry-instrumentation { }; + # opentelemetry-instrumentation = callPackage ./python-modules/opentelemetry-instrumentation { }; -# opentelemetry-instrumentation-aiohttp-client = callPackage ./python-modules/opentelemetry-instrumentation-aiohttp-client { }; + # opentelemetry-instrumentation-aiohttp-client = callPackage ./python-modules/opentelemetry-instrumentation-aiohttp-client { }; -# opentelemetry-instrumentation-asgi = callPackage ./python-modules/opentelemetry-instrumentation-asgi { }; + # opentelemetry-instrumentation-asgi = callPackage ./python-modules/opentelemetry-instrumentation-asgi { }; -# opentelemetry-instrumentation-django = callPackage ./python-modules/opentelemetry-instrumentation-django { }; + # opentelemetry-instrumentation-django = callPackage ./python-modules/opentelemetry-instrumentation-django { }; -# opentelemetry-instrumentation-fastapi = callPackage ./python-modules/opentelemetry-instrumentation-fastapi { }; + # opentelemetry-instrumentation-fastapi = callPackage ./python-modules/opentelemetry-instrumentation-fastapi { }; -# opentelemetry-instrumentation-flask = callPackage ./python-modules/opentelemetry-instrumentation-flask { }; + # opentelemetry-instrumentation-flask = callPackage ./python-modules/opentelemetry-instrumentation-flask { }; -# opentelemetry-instrumentation-grpc = callPackage ./python-modules/opentelemetry-instrumentation-grpc { }; + # opentelemetry-instrumentation-grpc = callPackage ./python-modules/opentelemetry-instrumentation-grpc { }; -# opentelemetry-instrumentation-wsgi = callPackage ./python-modules/opentelemetry-instrumentation-wsgi { }; + # opentelemetry-instrumentation-wsgi = callPackage ./python-modules/opentelemetry-instrumentation-wsgi { }; -# opentelemetry-proto = callPackage ./python-modules/opentelemetry-proto { }; + # opentelemetry-proto = callPackage ./python-modules/opentelemetry-proto { }; -# opentelemetry-semantic-conventions = callPackage ./python-modules/opentelemetry-semantic-conventions { }; + # opentelemetry-semantic-conventions = callPackage ./python-modules/opentelemetry-semantic-conventions { }; -# opentelemetry-sdk = callPackage ./python-modules/opentelemetry-sdk { }; + # opentelemetry-sdk = callPackage ./python-modules/opentelemetry-sdk { }; -# opentelemetry-test-utils = callPackage ./python-modules/opentelemetry-test-utils { }; + # opentelemetry-test-utils = callPackage ./python-modules/opentelemetry-test-utils { }; -# opentelemetry-util-http = callPackage ./python-modules/opentelemetry-util-http { }; + # opentelemetry-util-http = callPackage ./python-modules/opentelemetry-util-http { }; -# openturns = toPythonModule (pkgs.openturns.override { -# python3Packages = self; -# enablePython = true; -# }); + # openturns = toPythonModule (pkgs.openturns.override { + # python3Packages = self; + # enablePython = true; + # }); -# opentracing = callPackage ./python-modules/opentracing { }; + # opentracing = callPackage ./python-modules/opentracing { }; -# opentsne = callPackage ./python-modules/opentsne { }; + # opentsne = callPackage ./python-modules/opentsne { }; -# opentypespec = callPackage ./python-modules/opentypespec { }; + # opentypespec = callPackage ./python-modules/opentypespec { }; -# openvino = callPackage ./python-modules/openvino { -# openvino-native = pkgs.openvino.override { -# python3Packages = self; -# }; -# }; + # openvino = callPackage ./python-modules/openvino { + # openvino-native = pkgs.openvino.override { + # python3Packages = self; + # }; + # }; -# openwebifpy = callPackage ./python-modules/openwebifpy { }; + # openwebifpy = callPackage ./python-modules/openwebifpy { }; -# openwrt-luci-rpc = callPackage ./python-modules/openwrt-luci-rpc { }; + # openwrt-luci-rpc = callPackage ./python-modules/openwrt-luci-rpc { }; -# openwrt-ubus-rpc = callPackage ./python-modules/openwrt-ubus-rpc { }; + # openwrt-ubus-rpc = callPackage ./python-modules/openwrt-ubus-rpc { }; -# opower = callPackage ./python-modules/opower { }; + # opower = callPackage ./python-modules/opower { }; -# opsdroid-get-image-size = callPackage ./python-modules/opsdroid-get-image-size { }; + # opsdroid-get-image-size = callPackage ./python-modules/opsdroid-get-image-size { }; -# opt-einsum = callPackage ./python-modules/opt-einsum { }; + # opt-einsum = callPackage ./python-modules/opt-einsum { }; -# optax = callPackage ./python-modules/optax { }; + # optax = callPackage ./python-modules/optax { }; -# optimum = callPackage ./python-modules/optimum { }; + # optimum = callPackage ./python-modules/optimum { }; -# optuna = callPackage ./python-modules/optuna { }; + # optuna = callPackage ./python-modules/optuna { }; -# opuslib = callPackage ./python-modules/opuslib { }; + # opuslib = callPackage ./python-modules/opuslib { }; -# opytimark = callPackage ./python-modules/opytimark { }; + # opytimark = callPackage ./python-modules/opytimark { }; -# oracledb = callPackage ./python-modules/oracledb { }; + # oracledb = callPackage ./python-modules/oracledb { }; -# oralb-ble = callPackage ./python-modules/oralb-ble { }; + # oralb-ble = callPackage ./python-modules/oralb-ble { }; -# orange3 = callPackage ./python-modules/orange3 { }; + # orange3 = callPackage ./python-modules/orange3 { }; -# orange-canvas-core = callPackage ./python-modules/orange-canvas-core { }; + # orange-canvas-core = callPackage ./python-modules/orange-canvas-core { }; -# orange-widget-base = callPackage ./python-modules/orange-widget-base { }; + # orange-widget-base = callPackage ./python-modules/orange-widget-base { }; -# oras = callPackage ./python-modules/oras { }; + # oras = callPackage ./python-modules/oras { }; -# orbax-checkpoint = callPackage ./python-modules/orbax-checkpoint { }; + # orbax-checkpoint = callPackage ./python-modules/orbax-checkpoint { }; -# orderedmultidict = callPackage ./python-modules/orderedmultidict { }; + # orderedmultidict = callPackage ./python-modules/orderedmultidict { }; -# ordered-set = callPackage ./python-modules/ordered-set { }; + # ordered-set = callPackage ./python-modules/ordered-set { }; -# orderedset = callPackage ./python-modules/orderedset { }; + # orderedset = callPackage ./python-modules/orderedset { }; -# orgparse = callPackage ./python-modules/orgparse { }; + # orgparse = callPackage ./python-modules/orgparse { }; -# orjson = callPackage ./python-modules/orjson { }; + # orjson = callPackage ./python-modules/orjson { }; -# orm = callPackage ./python-modules/orm { }; + # orm = callPackage ./python-modules/orm { }; -# ormar = callPackage ./python-modules/ormar { }; + # ormar = callPackage ./python-modules/ormar { }; -# ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python; + # ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python; -# orvibo = callPackage ./python-modules/orvibo { }; + # orvibo = callPackage ./python-modules/orvibo { }; -# os-service-types = callPackage ./python-modules/os-service-types { }; + # os-service-types = callPackage ./python-modules/os-service-types { }; -# osc = callPackage ./python-modules/osc { }; + # osc = callPackage ./python-modules/osc { }; -# osc-diagram = callPackage ./python-modules/osc-diagram { }; + # osc-diagram = callPackage ./python-modules/osc-diagram { }; -# osc-lib = callPackage ./python-modules/osc-lib { }; + # osc-lib = callPackage ./python-modules/osc-lib { }; -# osc-sdk-python = callPackage ./python-modules/osc-sdk-python { }; + # osc-sdk-python = callPackage ./python-modules/osc-sdk-python { }; -# oscpy = callPackage ./python-modules/oscpy { }; + # oscpy = callPackage ./python-modules/oscpy { }; -# oscrypto = callPackage ./python-modules/oscrypto { }; + # oscrypto = callPackage ./python-modules/oscrypto { }; -# oscscreen = callPackage ./python-modules/oscscreen { }; + # oscscreen = callPackage ./python-modules/oscscreen { }; -# oset = callPackage ./python-modules/oset { }; + # oset = callPackage ./python-modules/oset { }; -# osmnx = callPackage ./python-modules/osmnx { }; + # osmnx = callPackage ./python-modules/osmnx { }; -# osmpythontools = callPackage ./python-modules/osmpythontools { }; + # osmpythontools = callPackage ./python-modules/osmpythontools { }; -# oslo-concurrency = callPackage ./python-modules/oslo-concurrency { }; + # oslo-concurrency = callPackage ./python-modules/oslo-concurrency { }; -# oslo-config = callPackage ./python-modules/oslo-config { }; + # oslo-config = callPackage ./python-modules/oslo-config { }; -# oslo-context = callPackage ./python-modules/oslo-context { }; + # oslo-context = callPackage ./python-modules/oslo-context { }; -# oslo-db = callPackage ./python-modules/oslo-db { }; + # oslo-db = callPackage ./python-modules/oslo-db { }; -# oslo-i18n = callPackage ./python-modules/oslo-i18n { }; + # oslo-i18n = callPackage ./python-modules/oslo-i18n { }; -# oslo-log = callPackage ./python-modules/oslo-log { }; + # oslo-log = callPackage ./python-modules/oslo-log { }; -# oslo-serialization = callPackage ./python-modules/oslo-serialization { }; + # oslo-serialization = callPackage ./python-modules/oslo-serialization { }; -# oslo-utils = callPackage ./python-modules/oslo-utils { }; + # oslo-utils = callPackage ./python-modules/oslo-utils { }; -# oslotest = callPackage ./python-modules/oslotest { }; + # oslotest = callPackage ./python-modules/oslotest { }; -# ospd = callPackage ./python-modules/ospd { }; + # ospd = callPackage ./python-modules/ospd { }; -# osqp = callPackage ./python-modules/osqp { }; + # osqp = callPackage ./python-modules/osqp { }; -# oss2 = callPackage ./python-modules/oss2 { }; + # oss2 = callPackage ./python-modules/oss2 { }; -# ossfs = callPackage ./python-modules/ossfs { }; + # ossfs = callPackage ./python-modules/ossfs { }; -# ots-python = callPackage ./python-modules/ots-python { }; + # ots-python = callPackage ./python-modules/ots-python { }; -# outcome = callPackage ./python-modules/outcome { }; + # outcome = callPackage ./python-modules/outcome { }; -# ovh = callPackage ./python-modules/ovh { }; + # ovh = callPackage ./python-modules/ovh { }; -# ovmfvartool = callPackage ./python-modules/ovmfvartool { }; + # ovmfvartool = callPackage ./python-modules/ovmfvartool { }; -# ovoenergy = callPackage ./python-modules/ovoenergy { }; + # ovoenergy = callPackage ./python-modules/ovoenergy { }; -# owslib = callPackage ./python-modules/owslib { }; + # owslib = callPackage ./python-modules/owslib { }; -# oyaml = callPackage ./python-modules/oyaml { }; + # oyaml = callPackage ./python-modules/oyaml { }; -# p1monitor = callPackage ./python-modules/p1monitor { }; + # p1monitor = callPackage ./python-modules/p1monitor { }; -# packageurl-python = callPackage ./python-modules/packageurl-python { }; + # packageurl-python = callPackage ./python-modules/packageurl-python { }; packaging = callPackage ./python-modules/packaging { }; -# packbits = callPackage ./python-modules/packbits { }; + # packbits = callPackage ./python-modules/packbits { }; -# packet-python = callPackage ./python-modules/packet-python { }; + # packet-python = callPackage ./python-modules/packet-python { }; -# packvers = callPackage ./python-modules/packvers { }; + # packvers = callPackage ./python-modules/packvers { }; -# pagelabels = callPackage ./python-modules/pagelabels { }; + # pagelabels = callPackage ./python-modules/pagelabels { }; -# paginate = callPackage ./python-modules/paginate { }; + # paginate = callPackage ./python-modules/paginate { }; -# paho-mqtt = callPackage ./python-modules/paho-mqtt { }; + # paho-mqtt = callPackage ./python-modules/paho-mqtt { }; -# palace = callPackage ./python-modules/palace { }; + # palace = callPackage ./python-modules/palace { }; -# palettable = callPackage ./python-modules/palettable { }; + # palettable = callPackage ./python-modules/palettable { }; pallets-sphinx-themes = callPackage ./python-modules/pallets-sphinx-themes { }; -# python-docs-theme = callPackage ./python-modules/python-docs-theme { }; + # python-docs-theme = callPackage ./python-modules/python-docs-theme { }; -# pamela = callPackage ./python-modules/pamela { }; + # pamela = callPackage ./python-modules/pamela { }; -# pamqp = callPackage ./python-modules/pamqp { }; + # pamqp = callPackage ./python-modules/pamqp { }; -# panacotta = callPackage ./python-modules/panacotta { }; + # panacotta = callPackage ./python-modules/panacotta { }; -# panasonic-viera = callPackage ./python-modules/panasonic-viera { }; + # panasonic-viera = callPackage ./python-modules/panasonic-viera { }; -# pandas = callPackage ./python-modules/pandas { -# inherit (pkgs.darwin) adv_cmds; -# }; + # pandas = callPackage ./python-modules/pandas { + # inherit (pkgs.darwin) adv_cmds; + # }; -# pandas-datareader = callPackage ./python-modules/pandas-datareader { }; + # pandas-datareader = callPackage ./python-modules/pandas-datareader { }; -# pandoc-attributes = callPackage ./python-modules/pandoc-attributes { }; + # pandoc-attributes = callPackage ./python-modules/pandoc-attributes { }; -# pandoc-xnos = callPackage ./python-modules/pandoc-xnos { }; + # pandoc-xnos = callPackage ./python-modules/pandoc-xnos { }; -# pandocfilters = callPackage ./python-modules/pandocfilters { }; + # pandocfilters = callPackage ./python-modules/pandocfilters { }; -# panel = callPackage ./python-modules/panel { }; + # panel = callPackage ./python-modules/panel { }; -# panflute = callPackage ./python-modules/panflute { }; + # panflute = callPackage ./python-modules/panflute { }; -# panphon = callPackage ./python-modules/panphon { }; + # panphon = callPackage ./python-modules/panphon { }; -# papermill = callPackage ./python-modules/papermill { }; + # papermill = callPackage ./python-modules/papermill { }; -# openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { }; -# openpaperwork-gtk = callPackage ../applications/office/paperwork/openpaperwork-gtk.nix { }; -# paperwork-backend = callPackage ../applications/office/paperwork/paperwork-backend.nix { }; -# paperwork-shell = callPackage ../applications/office/paperwork/paperwork-shell.nix { }; + # openpaperwork-core = callPackage ../applications/office/paperwork/openpaperwork-core.nix { }; + # openpaperwork-gtk = callPackage ../applications/office/paperwork/openpaperwork-gtk.nix { }; + # paperwork-backend = callPackage ../applications/office/paperwork/paperwork-backend.nix { }; + # paperwork-shell = callPackage ../applications/office/paperwork/paperwork-shell.nix { }; -# papis = callPackage ./python-modules/papis { }; + # papis = callPackage ./python-modules/papis { }; -# papis-python-rofi = callPackage ./python-modules/papis-python-rofi { }; + # papis-python-rofi = callPackage ./python-modules/papis-python-rofi { }; -# para = callPackage ./python-modules/para { }; + # para = callPackage ./python-modules/para { }; -# param = callPackage ./python-modules/param { }; + # param = callPackage ./python-modules/param { }; -# parameter-expansion-patched = callPackage ./python-modules/parameter-expansion-patched { }; + # parameter-expansion-patched = callPackage ./python-modules/parameter-expansion-patched { }; -# parameterized = callPackage ./python-modules/parameterized { }; + # parameterized = callPackage ./python-modules/parameterized { }; -# parametrize-from-file = callPackage ./python-modules/parametrize-from-file { }; + # parametrize-from-file = callPackage ./python-modules/parametrize-from-file { }; -# paramiko = callPackage ./python-modules/paramiko { }; + # paramiko = callPackage ./python-modules/paramiko { }; -# paramz = callPackage ./python-modules/paramz { }; + # paramz = callPackage ./python-modules/paramz { }; -# paranoid-crypto = callPackage ./python-modules/paranoid-crypto { }; + # paranoid-crypto = callPackage ./python-modules/paranoid-crypto { }; -# parfive = callPackage ./python-modules/parfive { }; + # parfive = callPackage ./python-modules/parfive { }; -# parquet = callPackage ./python-modules/parquet { }; + # parquet = callPackage ./python-modules/parquet { }; -# parse = callPackage ./python-modules/parse { }; + # parse = callPackage ./python-modules/parse { }; -# parsedatetime = callPackage ./python-modules/parsedatetime { }; + # parsedatetime = callPackage ./python-modules/parsedatetime { }; -# parsedmarc = callPackage ./python-modules/parsedmarc { }; + # parsedmarc = callPackage ./python-modules/parsedmarc { }; -# parsel = callPackage ./python-modules/parsel { }; + # parsel = callPackage ./python-modules/parsel { }; -# parse-type = callPackage ./python-modules/parse-type { }; + # parse-type = callPackage ./python-modules/parse-type { }; -# parsimonious = callPackage ./python-modules/parsimonious { }; + # parsimonious = callPackage ./python-modules/parsimonious { }; -# parsley = callPackage ./python-modules/parsley { }; + # parsley = callPackage ./python-modules/parsley { }; -# parso = callPackage ./python-modules/parso { }; + # parso = callPackage ./python-modules/parso { }; -# parsy = callPackage ./python-modules/parsy { }; + # parsy = callPackage ./python-modules/parsy { }; -# partd = callPackage ./python-modules/partd { }; + # partd = callPackage ./python-modules/partd { }; -# parts = callPackage ./python-modules/parts { }; + # parts = callPackage ./python-modules/parts { }; -# particle = callPackage ./python-modules/particle { }; + # particle = callPackage ./python-modules/particle { }; -# parver = callPackage ./python-modules/parver { }; -# arpeggio = callPackage ./python-modules/arpeggio { }; + # parver = callPackage ./python-modules/parver { }; + # arpeggio = callPackage ./python-modules/arpeggio { }; -# pasimple = callPackage ./python-modules/pasimple { }; + # pasimple = callPackage ./python-modules/pasimple { }; -# passlib = callPackage ./python-modules/passlib { }; + # passlib = callPackage ./python-modules/passlib { }; -# paste = callPackage ./python-modules/paste { }; + # paste = callPackage ./python-modules/paste { }; -# pastedeploy = callPackage ./python-modules/pastedeploy { }; + # pastedeploy = callPackage ./python-modules/pastedeploy { }; -# pastel = callPackage ./python-modules/pastel { }; + # pastel = callPackage ./python-modules/pastel { }; -# pastescript = callPackage ./python-modules/pastescript { }; + # pastescript = callPackage ./python-modules/pastescript { }; -# patator = callPackage ./python-modules/patator { }; + # patator = callPackage ./python-modules/patator { }; -# patch = callPackage ./python-modules/patch { }; + # patch = callPackage ./python-modules/patch { }; -# patch-ng = callPackage ./python-modules/patch-ng { }; + # patch-ng = callPackage ./python-modules/patch-ng { }; -# path = callPackage ./python-modules/path { }; + # path = callPackage ./python-modules/path { }; -# path-and-address = callPackage ./python-modules/path-and-address { }; + # path-and-address = callPackage ./python-modules/path-and-address { }; -# pathable = callPackage ./python-modules/pathable { }; + # pathable = callPackage ./python-modules/pathable { }; -# pathlib2 = callPackage ./python-modules/pathlib2 { }; + # pathlib2 = callPackage ./python-modules/pathlib2 { }; -# pathlib = callPackage ./python-modules/pathlib { }; + # pathlib = callPackage ./python-modules/pathlib { }; -# pathlib-abc = callPackage ./python-modules/pathlib-abc { }; + # pathlib-abc = callPackage ./python-modules/pathlib-abc { }; -# pathos = callPackage ./python-modules/pathos { }; + # pathos = callPackage ./python-modules/pathos { }; pathspec = callPackage ./python-modules/pathspec { }; -# pathtools = callPackage ./python-modules/pathtools { }; + # pathtools = callPackage ./python-modules/pathtools { }; -# pathvalidate = callPackage ./python-modules/pathvalidate { }; + # pathvalidate = callPackage ./python-modules/pathvalidate { }; -# pathy = callPackage ./python-modules/pathy { }; + # pathy = callPackage ./python-modules/pathy { }; -# patiencediff = callPackage ./python-modules/patiencediff { }; + # patiencediff = callPackage ./python-modules/patiencediff { }; -# patool = callPackage ./python-modules/patool { }; + # patool = callPackage ./python-modules/patool { }; -# patsy = callPackage ./python-modules/patsy { }; + # patsy = callPackage ./python-modules/patsy { }; -# patrowl4py = callPackage ./python-modules/patrowl4py { }; + # patrowl4py = callPackage ./python-modules/patrowl4py { }; -# paver = callPackage ./python-modules/paver { }; + # paver = callPackage ./python-modules/paver { }; -# paypal-checkout-serversdk = callPackage ./python-modules/paypal-checkout-serversdk { }; + # paypal-checkout-serversdk = callPackage ./python-modules/paypal-checkout-serversdk { }; -# paypalhttp = callPackage ./python-modules/paypalhttp { }; + # paypalhttp = callPackage ./python-modules/paypalhttp { }; -# paypalrestsdk = callPackage ./python-modules/paypalrestsdk { }; + # paypalrestsdk = callPackage ./python-modules/paypalrestsdk { }; -# pbkdf2 = callPackage ./python-modules/pbkdf2 { }; + # pbkdf2 = callPackage ./python-modules/pbkdf2 { }; -# pbr = callPackage ./python-modules/pbr { }; + # pbr = callPackage ./python-modules/pbr { }; -# pbs-installer = callPackage ./python-modules/pbs-installer { }; + # pbs-installer = callPackage ./python-modules/pbs-installer { }; -# pc-ble-driver-py = toPythonModule (callPackage ./python-modules/pc-ble-driver-py { }); + # pc-ble-driver-py = toPythonModule (callPackage ./python-modules/pc-ble-driver-py { }); -# pcapy-ng = callPackage ./python-modules/pcapy-ng { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; + # pcapy-ng = callPackage ./python-modules/pcapy-ng { + # inherit (pkgs) libpcap; # Avoid confusion with python package of the same name + # }; -# pcbnewtransition = callPackage ./python-modules/pcbnewtransition { }; + # pcbnewtransition = callPackage ./python-modules/pcbnewtransition { }; -# pcodedmp = callPackage ./python-modules/pcodedmp { }; + # pcodedmp = callPackage ./python-modules/pcodedmp { }; -# pcpp = callPackage ./python-modules/pcpp { }; + # pcpp = callPackage ./python-modules/pcpp { }; -# pdb2pqr = callPackage ./python-modules/pdb2pqr { }; + # pdb2pqr = callPackage ./python-modules/pdb2pqr { }; -# pdbfixer = callPackage ./python-modules/pdbfixer { }; + # pdbfixer = callPackage ./python-modules/pdbfixer { }; -# pdf2docx = callPackage ./python-modules/pdf2docx { }; + # pdf2docx = callPackage ./python-modules/pdf2docx { }; -# pdf2image = callPackage ./python-modules/pdf2image { }; + # pdf2image = callPackage ./python-modules/pdf2image { }; -# pdfkit = callPackage ./python-modules/pdfkit { }; + # pdfkit = callPackage ./python-modules/pdfkit { }; -# pdfminer-six = callPackage ./python-modules/pdfminer-six { }; + # pdfminer-six = callPackage ./python-modules/pdfminer-six { }; -# pdfplumber = callPackage ./python-modules/pdfplumber { }; + # pdfplumber = callPackage ./python-modules/pdfplumber { }; -# pdfrw = callPackage ./python-modules/pdfrw { }; + # pdfrw = callPackage ./python-modules/pdfrw { }; -# pdfrw2 = callPackage ./python-modules/pdfrw2 { }; + # pdfrw2 = callPackage ./python-modules/pdfrw2 { }; -# pdftotext = callPackage ./python-modules/pdftotext { }; + # pdftotext = callPackage ./python-modules/pdftotext { }; -# pdfx = callPackage ./python-modules/pdfx { }; + # pdfx = callPackage ./python-modules/pdfx { }; -# pdm-backend = callPackage ./python-modules/pdm-backend { }; + # pdm-backend = callPackage ./python-modules/pdm-backend { }; -# pdm-pep517 = callPackage ./python-modules/pdm-pep517 { }; + # pdm-pep517 = callPackage ./python-modules/pdm-pep517 { }; -# pdoc = callPackage ./python-modules/pdoc { }; + # pdoc = callPackage ./python-modules/pdoc { }; -# pdoc-pyo3-sample-library = callPackage ./python-modules/pdoc-pyo3-sample-library { }; + # pdoc-pyo3-sample-library = callPackage ./python-modules/pdoc-pyo3-sample-library { }; -# pdoc3 = callPackage ./python-modules/pdoc3 { }; + # pdoc3 = callPackage ./python-modules/pdoc3 { }; -# peaqevcore = callPackage ./python-modules/peaqevcore { }; + # peaqevcore = callPackage ./python-modules/peaqevcore { }; -# pegen = callPackage ./python-modules/pegen { }; + # pegen = callPackage ./python-modules/pegen { }; -# pebble = callPackage ./python-modules/pebble { }; + # pebble = callPackage ./python-modules/pebble { }; -# pecan = callPackage ./python-modules/pecan { }; + # pecan = callPackage ./python-modules/pecan { }; -# peco = callPackage ./python-modules/peco { }; + # peco = callPackage ./python-modules/peco { }; -# peewee = callPackage ./python-modules/peewee { }; + # peewee = callPackage ./python-modules/peewee { }; -# peewee-migrate = callPackage ./python-modules/peewee-migrate { }; + # peewee-migrate = callPackage ./python-modules/peewee-migrate { }; -# pefile = callPackage ./python-modules/pefile { }; + # pefile = callPackage ./python-modules/pefile { }; -# peft = callPackage ./python-modules/peft { }; + # peft = callPackage ./python-modules/peft { }; -# pelican = callPackage ./python-modules/pelican { -# inherit (pkgs) glibcLocales git; -# }; + # pelican = callPackage ./python-modules/pelican { + # inherit (pkgs) glibcLocales git; + # }; -# pem = callPackage ./python-modules/pem { }; + # pem = callPackage ./python-modules/pem { }; -# pendulum = callPackage ./python-modules/pendulum { }; + # pendulum = callPackage ./python-modules/pendulum { }; -# pep440 = callPackage ./python-modules/pep440 { }; + # pep440 = callPackage ./python-modules/pep440 { }; -# pep517 = callPackage ./python-modules/pep517 { }; + # pep517 = callPackage ./python-modules/pep517 { }; -# pep8 = callPackage ./python-modules/pep8 { }; + # pep8 = callPackage ./python-modules/pep8 { }; -# pep8-naming = callPackage ./python-modules/pep8-naming { }; + # pep8-naming = callPackage ./python-modules/pep8-naming { }; -# peppercorn = callPackage ./python-modules/peppercorn { }; + # peppercorn = callPackage ./python-modules/peppercorn { }; -# percol = callPackage ./python-modules/percol { }; + # percol = callPackage ./python-modules/percol { }; -# perfplot = callPackage ./python-modules/perfplot { }; + # perfplot = callPackage ./python-modules/perfplot { }; -# periodictable = callPackage ./python-modules/periodictable { }; + # periodictable = callPackage ./python-modules/periodictable { }; -# periodiq = callPackage ./python-modules/periodiq { }; + # periodiq = callPackage ./python-modules/periodiq { }; -# permissionedforms = callPackage ./python-modules/permissionedforms { }; + # permissionedforms = callPackage ./python-modules/permissionedforms { }; -# persim = callPackage ./python-modules/persim { }; + # persim = callPackage ./python-modules/persim { }; -# persist-queue = callPackage ./python-modules/persist-queue { }; + # persist-queue = callPackage ./python-modules/persist-queue { }; -# persistent = callPackage ./python-modules/persistent { }; + # persistent = callPackage ./python-modules/persistent { }; -# persisting-theory = callPackage ./python-modules/persisting-theory { }; + # persisting-theory = callPackage ./python-modules/persisting-theory { }; -# pescea = callPackage ./python-modules/pescea { }; + # pescea = callPackage ./python-modules/pescea { }; -# pex = callPackage ./python-modules/pex { }; + # pex = callPackage ./python-modules/pex { }; -# pexif = callPackage ./python-modules/pexif { }; + # pexif = callPackage ./python-modules/pexif { }; -# pexpect = callPackage ./python-modules/pexpect { }; + # pexpect = callPackage ./python-modules/pexpect { }; -# pfzy = callPackage ./python-modules/pfzy { }; + # pfzy = callPackage ./python-modules/pfzy { }; -# ping3 = callPackage ./python-modules/ping3 { }; + # ping3 = callPackage ./python-modules/ping3 { }; -# pins = callPackage ./python-modules/pins { }; + # pins = callPackage ./python-modules/pins { }; -# pg8000 = callPackage ./python-modules/pg8000 { }; + # pg8000 = callPackage ./python-modules/pg8000 { }; -# pgcli = callPackage ./python-modules/pgcli { }; + # pgcli = callPackage ./python-modules/pgcli { }; -# pglast = callPackage ./python-modules/pglast { }; + # pglast = callPackage ./python-modules/pglast { }; -# pgpdump = callPackage ./python-modules/pgpdump { }; + # pgpdump = callPackage ./python-modules/pgpdump { }; -# pgpy = callPackage ./python-modules/pgpy { }; + # pgpy = callPackage ./python-modules/pgpy { }; -# pgsanity = callPackage ./python-modules/pgsanity { }; + # pgsanity = callPackage ./python-modules/pgsanity { }; -# pgspecial = callPackage ./python-modules/pgspecial { }; + # pgspecial = callPackage ./python-modules/pgspecial { }; -# pgvector = callPackage ./python-modules/pgvector { }; + # pgvector = callPackage ./python-modules/pgvector { }; -# phe = callPackage ./python-modules/phe { }; + # phe = callPackage ./python-modules/phe { }; -# phik = callPackage ./python-modules/phik { }; + # phik = callPackage ./python-modules/phik { }; -# phone-modem = callPackage ./python-modules/phone-modem { }; + # phone-modem = callPackage ./python-modules/phone-modem { }; -# phonenumbers = callPackage ./python-modules/phonenumbers { }; + # phonenumbers = callPackage ./python-modules/phonenumbers { }; -# pkgutil-resolve-name = callPackage ./python-modules/pkgutil-resolve-name { }; + # pkgutil-resolve-name = callPackage ./python-modules/pkgutil-resolve-name { }; -# pkg-about = callPackage ./python-modules/pkg-about { }; + # pkg-about = callPackage ./python-modules/pkg-about { }; -# micloud = callPackage ./python-modules/micloud { }; + # micloud = callPackage ./python-modules/micloud { }; -# mqtt2influxdb = callPackage ./python-modules/mqtt2influxdb { }; + # mqtt2influxdb = callPackage ./python-modules/mqtt2influxdb { }; -# msgraph-core = callPackage ./python-modules/msgraph-core { }; + # msgraph-core = callPackage ./python-modules/msgraph-core { }; -# msgraph-sdk = callPackage ./python-modules/msgraph-sdk { }; + # msgraph-sdk = callPackage ./python-modules/msgraph-sdk { }; -# multipart = callPackage ./python-modules/multipart { }; + # multipart = callPackage ./python-modules/multipart { }; -# netmap = callPackage ./python-modules/netmap { }; + # netmap = callPackage ./python-modules/netmap { }; -# onetimepad = callPackage ./python-modules/onetimepad { }; + # onetimepad = callPackage ./python-modules/onetimepad { }; -# openai = callPackage ./python-modules/openai { }; + # openai = callPackage ./python-modules/openai { }; -# openaiauth = callPackage ./python-modules/openaiauth { }; + # openaiauth = callPackage ./python-modules/openaiauth { }; -# openapi-core = callPackage ./python-modules/openapi-core { }; + # openapi-core = callPackage ./python-modules/openapi-core { }; -# openusd = callPackage ./python-modules/openusd { -# alembic = pkgs.alembic; -# }; + # openusd = callPackage ./python-modules/openusd { + # alembic = pkgs.alembic; + # }; -# outlines = callPackage ./python-modules/outlines { }; + # outlines = callPackage ./python-modules/outlines { }; -# overly = callPackage ./python-modules/overly { }; + # overly = callPackage ./python-modules/overly { }; -# overpy = callPackage ./python-modules/overpy { }; + # overpy = callPackage ./python-modules/overpy { }; -# overrides = callPackage ./python-modules/overrides { }; + # overrides = callPackage ./python-modules/overrides { }; -# pandas-stubs = callPackage ./python-modules/pandas-stubs { }; + # pandas-stubs = callPackage ./python-modules/pandas-stubs { }; -# pdunehd = callPackage ./python-modules/pdunehd { }; + # pdunehd = callPackage ./python-modules/pdunehd { }; -# pencompy = callPackage ./python-modules/pencompy { }; + # pencompy = callPackage ./python-modules/pencompy { }; -# pgmpy = callPackage ./python-modules/pgmpy { }; + # pgmpy = callPackage ./python-modules/pgmpy { }; -# phonopy = callPackage ./python-modules/phonopy { }; + # phonopy = callPackage ./python-modules/phonopy { }; -# pixcat = callPackage ./python-modules/pixcat { }; + # pixcat = callPackage ./python-modules/pixcat { }; -# pinecone-client = callPackage ./python-modules/pinecone-client { }; + # pinecone-client = callPackage ./python-modules/pinecone-client { }; -# psrpcore = callPackage ./python-modules/psrpcore { }; + # psrpcore = callPackage ./python-modules/psrpcore { }; -# pybars3 = callPackage ./python-modules/pybars3 { }; + # pybars3 = callPackage ./python-modules/pybars3 { }; -# pymeta3 = callPackage ./python-modules/pymeta3 { }; + # pymeta3 = callPackage ./python-modules/pymeta3 { }; -# pypemicro = callPackage ./python-modules/pypemicro { }; + # pypemicro = callPackage ./python-modules/pypemicro { }; -# pymeshlab = toPythonModule (pkgs.libsForQt5.callPackage ../applications/graphics/pymeshlab { }); + # pymeshlab = toPythonModule (pkgs.libsForQt5.callPackage ../applications/graphics/pymeshlab { }); -# pyprecice = callPackage ./python-modules/pyprecice { }; + # pyprecice = callPackage ./python-modules/pyprecice { }; -# pyprobables = callPackage ./python-modules/pyprobables { }; + # pyprobables = callPackage ./python-modules/pyprobables { }; -# pyproject-api = callPackage ./python-modules/pyproject-api { }; + # pyproject-api = callPackage ./python-modules/pyproject-api { }; pyproject-hooks = callPackage ./python-modules/pyproject-hooks { }; -# pypsrp = callPackage ./python-modules/pypsrp { }; + # pypsrp = callPackage ./python-modules/pypsrp { }; -# phpserialize = callPackage ./python-modules/phpserialize { }; + # phpserialize = callPackage ./python-modules/phpserialize { }; -# phx-class-registry = callPackage ./python-modules/phx-class-registry { }; + # phx-class-registry = callPackage ./python-modules/phx-class-registry { }; -# pi1wire = callPackage ./python-modules/pi1wire { }; + # pi1wire = callPackage ./python-modules/pi1wire { }; -# piano-transcription-inference = callPackage ./python-modules/piano-transcription-inference { }; + # piano-transcription-inference = callPackage ./python-modules/piano-transcription-inference { }; -# piccata = callPackage ./python-modules/piccata { }; + # piccata = callPackage ./python-modules/piccata { }; -# pick = callPackage ./python-modules/pick { }; + # pick = callPackage ./python-modules/pick { }; -# pickleshare = callPackage ./python-modules/pickleshare { }; + # pickleshare = callPackage ./python-modules/pickleshare { }; -# picobox = callPackage ./python-modules/picobox { }; + # picobox = callPackage ./python-modules/picobox { }; -# picos = callPackage ./python-modules/picos { }; + # picos = callPackage ./python-modules/picos { }; -# picosvg = callPackage ./python-modules/picosvg { }; + # picosvg = callPackage ./python-modules/picosvg { }; -# piccolo-theme = callPackage ./python-modules/piccolo-theme { }; + # piccolo-theme = callPackage ./python-modules/piccolo-theme { }; -# pid = callPackage ./python-modules/pid { }; + # pid = callPackage ./python-modules/pid { }; -# piep = callPackage ./python-modules/piep { }; + # piep = callPackage ./python-modules/piep { }; -# piexif = callPackage ./python-modules/piexif { }; + # piexif = callPackage ./python-modules/piexif { }; -# pijuice = callPackage ./python-modules/pijuice { }; + # pijuice = callPackage ./python-modules/pijuice { }; -# pika = callPackage ./python-modules/pika { }; + # pika = callPackage ./python-modules/pika { }; -# pika-pool = callPackage ./python-modules/pika-pool { }; + # pika-pool = callPackage ./python-modules/pika-pool { }; -# pikepdf = callPackage ./python-modules/pikepdf { }; + # pikepdf = callPackage ./python-modules/pikepdf { }; -# pilkit = callPackage ./python-modules/pilkit { }; + # pilkit = callPackage ./python-modules/pilkit { }; -# pillowfight = callPackage ./python-modules/pillowfight { }; + # pillowfight = callPackage ./python-modules/pillowfight { }; -# pillow = callPackage ./python-modules/pillow { -# inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk; -# inherit (pkgs.xorg) libX11 libxcb; -# }; + # pillow = callPackage ./python-modules/pillow { + # inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk; + # inherit (pkgs.xorg) libX11 libxcb; + # }; -# pillow-heif = callPackage ./python-modules/pillow-heif { }; + # pillow-heif = callPackage ./python-modules/pillow-heif { }; -# pillow-jpls = callPackage ./python-modules/pillow-jpls { }; + # pillow-jpls = callPackage ./python-modules/pillow-jpls { }; -# pillow-simd = callPackage ./python-modules/pillow-simd { -# inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk; -# inherit (pkgs.xorg) libX11; -# }; + # pillow-simd = callPackage ./python-modules/pillow-simd { + # inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk; + # inherit (pkgs.xorg) libX11; + # }; -# pims = callPackage ./python-modules/pims { }; + # pims = callPackage ./python-modules/pims { }; -# pinboard = callPackage ./python-modules/pinboard { }; + # pinboard = callPackage ./python-modules/pinboard { }; -# pinocchio = toPythonModule (pkgs.pinocchio.override { -# pythonSupport = true; -# python3Packages = self; -# }); + # pinocchio = toPythonModule (pkgs.pinocchio.override { + # pythonSupport = true; + # python3Packages = self; + # }); -# pint = callPackage ./python-modules/pint { }; + # pint = callPackage ./python-modules/pint { }; -# pint-pandas = callPackage ./python-modules/pint-pandas { }; + # pint-pandas = callPackage ./python-modules/pint-pandas { }; -# pip = callPackage ./python-modules/pip { }; + # pip = callPackage ./python-modules/pip { }; -# pipdate = callPackage ./python-modules/pipdate { }; + # pipdate = callPackage ./python-modules/pipdate { }; -# pipdeptree = callPackage ./python-modules/pipdeptree { }; + # pipdeptree = callPackage ./python-modules/pipdeptree { }; -# pipe = callPackage ./python-modules/pipe { }; + # pipe = callPackage ./python-modules/pipe { }; -# pipenv-poetry-migrate = callPackage ./python-modules/pipenv-poetry-migrate { }; + # pipenv-poetry-migrate = callPackage ./python-modules/pipenv-poetry-migrate { }; -# piper-phonemize = callPackage ./python-modules/piper-phonemize { -# onnxruntime-native = pkgs.onnxruntime; -# piper-phonemize-native = pkgs.piper-phonemize; -# }; + # piper-phonemize = callPackage ./python-modules/piper-phonemize { + # onnxruntime-native = pkgs.onnxruntime; + # piper-phonemize-native = pkgs.piper-phonemize; + # }; -# pip-api = callPackage ./python-modules/pip-api { }; + # pip-api = callPackage ./python-modules/pip-api { }; -# pip-tools = callPackage ./python-modules/pip-tools { }; + # pip-tools = callPackage ./python-modules/pip-tools { }; -# pip-requirements-parser = callPackage ./python-modules/pip-requirements-parser { }; + # pip-requirements-parser = callPackage ./python-modules/pip-requirements-parser { }; -# pip-system-certs = callPackage ./python-modules/pip-system-certs { }; + # pip-system-certs = callPackage ./python-modules/pip-system-certs { }; -# pipx = callPackage ./python-modules/pipx { }; + # pipx = callPackage ./python-modules/pipx { }; -# pivy = callPackage ./python-modules/pivy { -# inherit (pkgs.qt5) qtbase qmake; -# inherit (pkgs.libsForQt5) soqt; -# }; + # pivy = callPackage ./python-modules/pivy { + # inherit (pkgs.qt5) qtbase qmake; + # inherit (pkgs.libsForQt5) soqt; + # }; -# pixelmatch = callPackage ./python-modules/pixelmatch { }; + # pixelmatch = callPackage ./python-modules/pixelmatch { }; -# pixel-font-builder = callPackage ./python-modules/pixel-font-builder { }; + # pixel-font-builder = callPackage ./python-modules/pixel-font-builder { }; -# pixel-ring = callPackage ./python-modules/pixel-ring { }; + # pixel-ring = callPackage ./python-modules/pixel-ring { }; -# pjsua2 = (toPythonModule (pkgs.pjsip.override { -# pythonSupport = true; -# python3 = self.python; -# })).py; + # pjsua2 = (toPythonModule (pkgs.pjsip.override { + # pythonSupport = true; + # python3 = self.python; + # })).py; -# pkce = callPackage ./python-modules/pkce { }; + # pkce = callPackage ./python-modules/pkce { }; -# pkgconfig = callPackage ./python-modules/pkgconfig { }; + # pkgconfig = callPackage ./python-modules/pkgconfig { }; -# pkginfo = callPackage ./python-modules/pkginfo { }; + # pkginfo = callPackage ./python-modules/pkginfo { }; -# pkginfo2 = callPackage ./python-modules/pkginfo2 { }; + # pkginfo2 = callPackage ./python-modules/pkginfo2 { }; -# pkuseg = callPackage ./python-modules/pkuseg { }; + # pkuseg = callPackage ./python-modules/pkuseg { }; -# playwright = callPackage ./python-modules/playwright { }; + # playwright = callPackage ./python-modules/playwright { }; -# playwright-stealth = callPackage ./python-modules/playwright-stealth { }; + # playwright-stealth = callPackage ./python-modules/playwright-stealth { }; -# playwrightcapture = callPackage ./python-modules/playwrightcapture { }; + # playwrightcapture = callPackage ./python-modules/playwrightcapture { }; -# pmsensor = callPackage ./python-modules/pmsensor { }; + # pmsensor = callPackage ./python-modules/pmsensor { }; -# ppdeep = callPackage ./python-modules/ppdeep { }; + # ppdeep = callPackage ./python-modules/ppdeep { }; -# prodict = callPackage ./python-modules/prodict { }; + # prodict = callPackage ./python-modules/prodict { }; -# prometheus-pandas = callPackage ./python-modules/prometheus-pandas { }; + # prometheus-pandas = callPackage ./python-modules/prometheus-pandas { }; -# prophet = callPackage ./python-modules/prophet { }; + # prophet = callPackage ./python-modules/prophet { }; -# propka = callPackage ./python-modules/propka { }; + # propka = callPackage ./python-modules/propka { }; -# proxy-tools = callPackage ./python-modules/proxy-tools { }; + # proxy-tools = callPackage ./python-modules/proxy-tools { }; -# proxy-db = callPackage ./python-modules/proxy-db { }; + # proxy-db = callPackage ./python-modules/proxy-db { }; -# py-nextbusnext = callPackage ./python-modules/py-nextbusnext { }; + # py-nextbusnext = callPackage ./python-modules/py-nextbusnext { }; -# py65 = callPackage ./python-modules/py65 { }; + # py65 = callPackage ./python-modules/py65 { }; -# pyaehw4a1 = callPackage ./python-modules/pyaehw4a1 { }; + # pyaehw4a1 = callPackage ./python-modules/pyaehw4a1 { }; -# pyatag = callPackage ./python-modules/pyatag { }; + # pyatag = callPackage ./python-modules/pyatag { }; -# pyatem = callPackage ./python-modules/pyatem { }; + # pyatem = callPackage ./python-modules/pyatem { }; -# pyatome = callPackage ./python-modules/pyatome { }; + # pyatome = callPackage ./python-modules/pyatome { }; -# pycketcasts = callPackage ./python-modules/pycketcasts { }; + # pycketcasts = callPackage ./python-modules/pycketcasts { }; -# pycomposefile = callPackage ./python-modules/pycomposefile { }; -# pycontrol4 = callPackage ./python-modules/pycontrol4 { }; + # pycomposefile = callPackage ./python-modules/pycomposefile { }; + # pycontrol4 = callPackage ./python-modules/pycontrol4 { }; -# pycookiecheat = callPackage ./python-modules/pycookiecheat { }; + # pycookiecheat = callPackage ./python-modules/pycookiecheat { }; -# pycoolmasternet-async = callPackage ./python-modules/pycoolmasternet-async { }; + # pycoolmasternet-async = callPackage ./python-modules/pycoolmasternet-async { }; -# pycrdt = callPackage ./python-modules/pycrdt { }; + # pycrdt = callPackage ./python-modules/pycrdt { }; -# pycrdt-websocket = callPackage ./python-modules/pycrdt-websocket { }; + # pycrdt-websocket = callPackage ./python-modules/pycrdt-websocket { }; -# pyfibaro = callPackage ./python-modules/pyfibaro { }; + # pyfibaro = callPackage ./python-modules/pyfibaro { }; -# pyfireservicerota = callPackage ./python-modules/pyfireservicerota { }; + # pyfireservicerota = callPackage ./python-modules/pyfireservicerota { }; -# pyflexit = callPackage ./python-modules/pyflexit { }; + # pyflexit = callPackage ./python-modules/pyflexit { }; -# pyflick = callPackage ./python-modules/pyflick { }; + # pyflick = callPackage ./python-modules/pyflick { }; -# pyfluidsynth = callPackage ./python-modules/pyfluidsynth { }; + # pyfluidsynth = callPackage ./python-modules/pyfluidsynth { }; -# pyformlang = callPackage ./python-modules/pyformlang { }; + # pyformlang = callPackage ./python-modules/pyformlang { }; -# pyfreedompro = callPackage ./python-modules/pyfreedompro { }; + # pyfreedompro = callPackage ./python-modules/pyfreedompro { }; -# pygments-style-github = callPackage ./python-modules/pygments-style-github { }; + # pygments-style-github = callPackage ./python-modules/pygments-style-github { }; -# pygnmi = callPackage ./python-modules/pygnmi { }; + # pygnmi = callPackage ./python-modules/pygnmi { }; -# pygount = callPackage ./python-modules/pygount { }; + # pygount = callPackage ./python-modules/pygount { }; -# pygti = callPackage ./python-modules/pygti { }; + # pygti = callPackage ./python-modules/pygti { }; -# pyheck = callPackage ./python-modules/pyheck { }; + # pyheck = callPackage ./python-modules/pyheck { }; -# pyheos = callPackage ./python-modules/pyheos { }; + # pyheos = callPackage ./python-modules/pyheos { }; -# pyhepmc = callPackage ./python-modules/pyhepmc { }; + # pyhepmc = callPackage ./python-modules/pyhepmc { }; -# pyhiveapi = callPackage ./python-modules/pyhiveapi { }; + # pyhiveapi = callPackage ./python-modules/pyhiveapi { }; -# pyhumps = callPackage ./python-modules/pyhumps { }; + # pyhumps = callPackage ./python-modules/pyhumps { }; -# pyindego = callPackage ./python-modules/pyindego { }; + # pyindego = callPackage ./python-modules/pyindego { }; -# pyinstaller-versionfile = callPackage ./python-modules/pyinstaller-versionfile { }; + # pyinstaller-versionfile = callPackage ./python-modules/pyinstaller-versionfile { }; -# pyisemail = callPackage ./python-modules/pyisemail { }; + # pyisemail = callPackage ./python-modules/pyisemail { }; -# pyisy = callPackage ./python-modules/pyisy { }; + # pyisy = callPackage ./python-modules/pyisy { }; -# pyixapi = callPackage ./python-modules/pyixapi { }; + # pyixapi = callPackage ./python-modules/pyixapi { }; -# pykrakenapi = callPackage ./python-modules/pykrakenapi { }; + # pykrakenapi = callPackage ./python-modules/pykrakenapi { }; -# pylddwrap = callPackage ./python-modules/pylddwrap { }; + # pylddwrap = callPackage ./python-modules/pylddwrap { }; -# pyngo = callPackage ./python-modules/pyngo { }; + # pyngo = callPackage ./python-modules/pyngo { }; -# pyngrok = callPackage ./python-modules/pyngrok { }; + # pyngrok = callPackage ./python-modules/pyngrok { }; -# pynitrokey = callPackage ./python-modules/pynitrokey { }; + # pynitrokey = callPackage ./python-modules/pynitrokey { }; -# pynndescent = callPackage ./python-modules/pynndescent { }; + # pynndescent = callPackage ./python-modules/pynndescent { }; -# pynobo = callPackage ./python-modules/pynobo { }; + # pynobo = callPackage ./python-modules/pynobo { }; -# pynose = callPackage ./python-modules/pynose { }; + # pynose = callPackage ./python-modules/pynose { }; -# pynotifier = callPackage ./python-modules/pynotifier { }; + # pynotifier = callPackage ./python-modules/pynotifier { }; -# pynuki = callPackage ./python-modules/pynuki { }; + # pynuki = callPackage ./python-modules/pynuki { }; -# pynut2 = callPackage ./python-modules/pynut2 { }; + # pynut2 = callPackage ./python-modules/pynut2 { }; -# pynws = callPackage ./python-modules/pynws { }; + # pynws = callPackage ./python-modules/pynws { }; -# pynx584 = callPackage ./python-modules/pynx584 { }; + # pynx584 = callPackage ./python-modules/pynx584 { }; -# pyorthanc = callPackage ./python-modules/pyorthanc { }; + # pyorthanc = callPackage ./python-modules/pyorthanc { }; -# pyoutbreaksnearme = callPackage ./python-modules/pyoutbreaksnearme { }; + # pyoutbreaksnearme = callPackage ./python-modules/pyoutbreaksnearme { }; -# pyoverkiz = callPackage ./python-modules/pyoverkiz { }; + # pyoverkiz = callPackage ./python-modules/pyoverkiz { }; -# pyownet = callPackage ./python-modules/pyownet { }; + # pyownet = callPackage ./python-modules/pyownet { }; -# pypoint = callPackage ./python-modules/pypoint { }; + # pypoint = callPackage ./python-modules/pypoint { }; -# pypoolstation = callPackage ./python-modules/pypoolstation { }; + # pypoolstation = callPackage ./python-modules/pypoolstation { }; -# pyrdfa3 = callPackage ./python-modules/pyrdfa3 { }; + # pyrdfa3 = callPackage ./python-modules/pyrdfa3 { }; -# pyre-extensions = callPackage ./python-modules/pyre-extensions { }; + # pyre-extensions = callPackage ./python-modules/pyre-extensions { }; -# pyrender = callPackage ./python-modules/pyrender { }; + # pyrender = callPackage ./python-modules/pyrender { }; -# pyrevolve = callPackage ./python-modules/pyrevolve { }; + # pyrevolve = callPackage ./python-modules/pyrevolve { }; -# pyrfxtrx = callPackage ./python-modules/pyrfxtrx { }; + # pyrfxtrx = callPackage ./python-modules/pyrfxtrx { }; -# pyrogram = callPackage ./python-modules/pyrogram { }; + # pyrogram = callPackage ./python-modules/pyrogram { }; -# pysabnzbd = callPackage ./python-modules/pysabnzbd { }; + # pysabnzbd = callPackage ./python-modules/pysabnzbd { }; -# pysbd = callPackage ./python-modules/pysbd { }; + # pysbd = callPackage ./python-modules/pysbd { }; -# pysequoia = callPackage ./python-modules/pysequoia { }; + # pysequoia = callPackage ./python-modules/pysequoia { }; -# pyschemes = callPackage ./python-modules/pyschemes { }; + # pyschemes = callPackage ./python-modules/pyschemes { }; -# pyschlage = callPackage ./python-modules/pyschlage { }; + # pyschlage = callPackage ./python-modules/pyschlage { }; -# pyshark = callPackage ./python-modules/pyshark { }; + # pyshark = callPackage ./python-modules/pyshark { }; -# pysiaalarm = callPackage ./python-modules/pysiaalarm { }; + # pysiaalarm = callPackage ./python-modules/pysiaalarm { }; -# pysilero-vad = callPackage ./python-modules/pysilero-vad { }; + # pysilero-vad = callPackage ./python-modules/pysilero-vad { }; -# pysimplesoap = callPackage ./python-modules/pysimplesoap { }; + # pysimplesoap = callPackage ./python-modules/pysimplesoap { }; -# pyskyqhub = callPackage ./python-modules/pyskyqhub { }; + # pyskyqhub = callPackage ./python-modules/pyskyqhub { }; -# pyskyqremote = callPackage ./python-modules/pyskyqremote { }; + # pyskyqremote = callPackage ./python-modules/pyskyqremote { }; -# pysolcast = callPackage ./python-modules/pysolcast { }; + # pysolcast = callPackage ./python-modules/pysolcast { }; -# pysubs2 = callPackage ./python-modules/pysubs2 { }; + # pysubs2 = callPackage ./python-modules/pysubs2 { }; -# pysuez = callPackage ./python-modules/pysuez { }; + # pysuez = callPackage ./python-modules/pysuez { }; -# pysqlitecipher = callPackage ./python-modules/pysqlitecipher { }; + # pysqlitecipher = callPackage ./python-modules/pysqlitecipher { }; -# pysyncthru = callPackage ./python-modules/pysyncthru { }; + # pysyncthru = callPackage ./python-modules/pysyncthru { }; -# pytest-mockito = callPackage ./python-modules/pytest-mockito { }; + # pytest-mockito = callPackage ./python-modules/pytest-mockito { }; -# pytest-pudb = callPackage ./python-modules/pytest-pudb { }; + # pytest-pudb = callPackage ./python-modules/pytest-pudb { }; -# pytlv = callPackage ./python-modules/pytlv { }; + # pytlv = callPackage ./python-modules/pytlv { }; -# python-codon-tables = callPackage ./python-modules/python-codon-tables { }; + # python-codon-tables = callPackage ./python-modules/python-codon-tables { }; -# python-creole = callPackage ./python-modules/python-creole { }; + # python-creole = callPackage ./python-modules/python-creole { }; -# python-crfsuite = callPackage ./python-modules/python-crfsuite { }; + # python-crfsuite = callPackage ./python-modules/python-crfsuite { }; -# python-csxcad = callPackage ./python-modules/python-csxcad { }; + # python-csxcad = callPackage ./python-modules/python-csxcad { }; -# python-djvulibre = callPackage ./python-modules/python-djvulibre { }; + # python-djvulibre = callPackage ./python-modules/python-djvulibre { }; -# python-ecobee-api = callPackage ./python-modules/python-ecobee-api { }; + # python-ecobee-api = callPackage ./python-modules/python-ecobee-api { }; -# python-flirt = callPackage ./python-modules/python-flirt { }; + # python-flirt = callPackage ./python-modules/python-flirt { }; -# python-fullykiosk = callPackage ./python-modules/python-fullykiosk { }; + # python-fullykiosk = callPackage ./python-modules/python-fullykiosk { }; -# python-fx = callPackage ./python-modules/python-fx { }; + # python-fx = callPackage ./python-modules/python-fx { }; -# python-glanceclient = callPackage ./python-modules/python-glanceclient { }; + # python-glanceclient = callPackage ./python-modules/python-glanceclient { }; -# python-google-nest = callPackage ./python-modules/python-google-nest { }; + # python-google-nest = callPackage ./python-modules/python-google-nest { }; -# python-heatclient = callPackage ./python-modules/python-heatclient { }; + # python-heatclient = callPackage ./python-modules/python-heatclient { }; -# python-hl7 = callPackage ./python-modules/python-hl7 { }; + # python-hl7 = callPackage ./python-modules/python-hl7 { }; -# python-ipmi = callPackage ./python-modules/python-ipmi { }; + # python-ipmi = callPackage ./python-modules/python-ipmi { }; -# python-ipware = callPackage ./python-modules/python-ipware { }; + # python-ipware = callPackage ./python-modules/python-ipware { }; -# python-ironicclient = callPackage ./python-modules/python-ironicclient { }; + # python-ironicclient = callPackage ./python-modules/python-ironicclient { }; -# python-izone = callPackage ./python-modules/python-izone { }; + # python-izone = callPackage ./python-modules/python-izone { }; -# python-juicenet = callPackage ./python-modules/python-juicenet { }; + # python-juicenet = callPackage ./python-modules/python-juicenet { }; -# python-kasa = callPackage ./python-modules/python-kasa { }; + # python-kasa = callPackage ./python-modules/python-kasa { }; -# python-keycloak = callPackage ./python-modules/python-keycloak { }; + # python-keycloak = callPackage ./python-modules/python-keycloak { }; -# python-keystoneclient = callPackage ./python-modules/python-keystoneclient { }; + # python-keystoneclient = callPackage ./python-modules/python-keystoneclient { }; -# python-lsp-black = callPackage ./python-modules/python-lsp-black { }; + # python-lsp-black = callPackage ./python-modules/python-lsp-black { }; -# python-mbedtls = callPackage ./python-modules/python-mbedtls { }; + # python-mbedtls = callPackage ./python-modules/python-mbedtls { }; -# python-memcached = callPackage ./python-modules/python-memcached { -# inherit (pkgs) memcached; -# }; + # python-memcached = callPackage ./python-modules/python-memcached { + # inherit (pkgs) memcached; + # }; -# python-motionmount = callPackage ./python-modules/python-motionmount { }; + # python-motionmount = callPackage ./python-modules/python-motionmount { }; -# python-otbr-api = callPackage ./python-modules/python-otbr-api { }; + # python-otbr-api = callPackage ./python-modules/python-otbr-api { }; -# python-openems = callPackage ./python-modules/python-openems { }; + # python-openems = callPackage ./python-modules/python-openems { }; -# python-opensky = callPackage ./python-modules/python-opensky { }; + # python-opensky = callPackage ./python-modules/python-opensky { }; -# python-owasp-zap-v2-4 = callPackage ./python-modules/python-owasp-zap-v2-4 { }; + # python-owasp-zap-v2-4 = callPackage ./python-modules/python-owasp-zap-v2-4 { }; -# python-pptx = callPackage ./python-modules/python-pptx { }; + # python-pptx = callPackage ./python-modules/python-pptx { }; -# python-songpal = callPackage ./python-modules/python-songpal { }; + # python-songpal = callPackage ./python-modules/python-songpal { }; -# python-swiftclient = callPackage ./python-modules/python-swiftclient { }; + # python-swiftclient = callPackage ./python-modules/python-swiftclient { }; -# python-tado = callPackage ./python-modules/python-tado { }; + # python-tado = callPackage ./python-modules/python-tado { }; -# python-idzip = callPackage ./python-modules/python-idzip { }; + # python-idzip = callPackage ./python-modules/python-idzip { }; -# pythonfinder = callPackage ./python-modules/pythonfinder { }; + # pythonfinder = callPackage ./python-modules/pythonfinder { }; -# pytomorrowio = callPackage ./python-modules/pytomorrowio { }; + # pytomorrowio = callPackage ./python-modules/pytomorrowio { }; -# pyuca = callPackage ./python-modules/pyuca { }; + # pyuca = callPackage ./python-modules/pyuca { }; -# pyunpack = callPackage ./python-modules/pyunpack { }; + # pyunpack = callPackage ./python-modules/pyunpack { }; -# pyutil = callPackage ./python-modules/pyutil { }; + # pyutil = callPackage ./python-modules/pyutil { }; -# pyzbar = callPackage ./python-modules/pyzbar { }; + # pyzbar = callPackage ./python-modules/pyzbar { }; -# pyzipper = callPackage ./python-modules/pyzipper { }; + # pyzipper = callPackage ./python-modules/pyzipper { }; -# pkutils = callPackage ./python-modules/pkutils { }; + # pkutils = callPackage ./python-modules/pkutils { }; -# plac = callPackage ./python-modules/plac { }; + # plac = callPackage ./python-modules/plac { }; -# plaid-python = callPackage ./python-modules/plaid-python { }; + # plaid-python = callPackage ./python-modules/plaid-python { }; -# plantuml = callPackage ./python-modules/plantuml { }; + # plantuml = callPackage ./python-modules/plantuml { }; -# plantuml-markdown = callPackage ./python-modules/plantuml-markdown { -# inherit (pkgs) plantuml; -# }; + # plantuml-markdown = callPackage ./python-modules/plantuml-markdown { + # inherit (pkgs) plantuml; + # }; -# plaster = callPackage ./python-modules/plaster { }; + # plaster = callPackage ./python-modules/plaster { }; -# plaster-pastedeploy = callPackage ./python-modules/plaster-pastedeploy { }; + # plaster-pastedeploy = callPackage ./python-modules/plaster-pastedeploy { }; -# platformdirs = callPackage ./python-modules/platformdirs { }; + # platformdirs = callPackage ./python-modules/platformdirs { }; -# playsound = callPackage ./python-modules/playsound { }; + # playsound = callPackage ./python-modules/playsound { }; -# plexapi = callPackage ./python-modules/plexapi { }; + # plexapi = callPackage ./python-modules/plexapi { }; -# plexauth = callPackage ./python-modules/plexauth { }; + # plexauth = callPackage ./python-modules/plexauth { }; -# plexwebsocket = callPackage ./python-modules/plexwebsocket { }; + # plexwebsocket = callPackage ./python-modules/plexwebsocket { }; -# plfit = toPythonModule (pkgs.plfit.override { -# inherit (self) python; -# }); + # plfit = toPythonModule (pkgs.plfit.override { + # inherit (self) python; + # }); -# plone-testing = callPackage ./python-modules/plone-testing { }; + # plone-testing = callPackage ./python-modules/plone-testing { }; -# plotext = callPackage ./python-modules/plotext { }; + # plotext = callPackage ./python-modules/plotext { }; -# plotly = callPackage ./python-modules/plotly { }; + # plotly = callPackage ./python-modules/plotly { }; -# plotnine = callPackage ./python-modules/plotnine { }; + # plotnine = callPackage ./python-modules/plotnine { }; pluggy = callPackage ./python-modules/pluggy { }; -# plugincode = callPackage ./python-modules/plugincode { }; + # plugincode = callPackage ./python-modules/plugincode { }; -# pluginbase = callPackage ./python-modules/pluginbase { }; + # pluginbase = callPackage ./python-modules/pluginbase { }; -# plugnplay = callPackage ./python-modules/plugnplay { }; + # plugnplay = callPackage ./python-modules/plugnplay { }; -# plugwise = callPackage ./python-modules/plugwise { }; + # plugwise = callPackage ./python-modules/plugwise { }; -# plum-py = callPackage ./python-modules/plum-py { }; + # plum-py = callPackage ./python-modules/plum-py { }; -# plumbum = callPackage ./python-modules/plumbum { }; + # plumbum = callPackage ./python-modules/plumbum { }; -# pluthon = callPackage ./python-modules/pluthon { }; + # pluthon = callPackage ./python-modules/pluthon { }; -# plux = callPackage ./python-modules/plux { }; + # plux = callPackage ./python-modules/plux { }; -# ply = callPackage ./python-modules/ply { }; + # ply = callPackage ./python-modules/ply { }; -# plyer = callPackage ./python-modules/plyer { }; + # plyer = callPackage ./python-modules/plyer { }; -# plyfile = callPackage ./python-modules/plyfile { }; + # plyfile = callPackage ./python-modules/plyfile { }; -# plyplus = callPackage ./python-modules/plyplus { }; + # plyplus = callPackage ./python-modules/plyplus { }; -# plyvel = callPackage ./python-modules/plyvel { }; + # plyvel = callPackage ./python-modules/plyvel { }; -# pmw = callPackage ./python-modules/pmw { }; + # pmw = callPackage ./python-modules/pmw { }; -# pmdarima = callPackage ./python-modules/pmdarima { }; + # pmdarima = callPackage ./python-modules/pmdarima { }; -# pmdsky-debug-py = callPackage ./python-modules/pmdsky-debug-py { }; + # pmdsky-debug-py = callPackage ./python-modules/pmdsky-debug-py { }; -# pnglatex = callPackage ./python-modules/pnglatex { }; + # pnglatex = callPackage ./python-modules/pnglatex { }; -# pocket = callPackage ./python-modules/pocket { }; + # pocket = callPackage ./python-modules/pocket { }; -# podcastparser = callPackage ./python-modules/podcastparser { }; + # podcastparser = callPackage ./python-modules/podcastparser { }; -# podcats = callPackage ./python-modules/podcats { }; + # podcats = callPackage ./python-modules/podcats { }; -# podman = callPackage ./python-modules/podman { }; + # podman = callPackage ./python-modules/podman { }; -# poetry-core = callPackage ./python-modules/poetry-core { }; + # poetry-core = callPackage ./python-modules/poetry-core { }; -# poetry-dynamic-versioning = callPackage ./python-modules/poetry-dynamic-versioning { }; + # poetry-dynamic-versioning = callPackage ./python-modules/poetry-dynamic-versioning { }; -# poetry-semver = callPackage ./python-modules/poetry-semver { }; + # poetry-semver = callPackage ./python-modules/poetry-semver { }; -# polars = callPackage ./python-modules/polars { }; + # polars = callPackage ./python-modules/polars { }; -# polarizationsolver = callPackage ./python-modules/polarizationsolver { }; + # polarizationsolver = callPackage ./python-modules/polarizationsolver { }; -# polling = callPackage ./python-modules/polling { }; + # polling = callPackage ./python-modules/polling { }; -# polib = callPackage ./python-modules/polib { }; + # polib = callPackage ./python-modules/polib { }; -# policy-sentry = callPackage ./python-modules/policy-sentry { }; + # policy-sentry = callPackage ./python-modules/policy-sentry { }; -# policyuniverse = callPackage ./python-modules/policyuniverse { }; + # policyuniverse = callPackage ./python-modules/policyuniverse { }; -# polyline = callPackage ./python-modules/polyline { }; + # polyline = callPackage ./python-modules/polyline { }; -# polygon3 = callPackage ./python-modules/polygon3 { }; + # polygon3 = callPackage ./python-modules/polygon3 { }; -# polyswarm-api = callPackage ./python-modules/polyswarm-api { }; + # polyswarm-api = callPackage ./python-modules/polyswarm-api { }; -# pomegranate = callPackage ./python-modules/pomegranate { }; + # pomegranate = callPackage ./python-modules/pomegranate { }; -# pontos = callPackage ./python-modules/pontos { }; + # pontos = callPackage ./python-modules/pontos { }; -# pony = callPackage ./python-modules/pony { }; + # pony = callPackage ./python-modules/pony { }; -# ponywhoosh = callPackage ./python-modules/ponywhoosh { }; + # ponywhoosh = callPackage ./python-modules/ponywhoosh { }; -# pooch = callPackage ./python-modules/pooch { }; + # pooch = callPackage ./python-modules/pooch { }; -# pook = callPackage ./python-modules/pook { }; + # pook = callPackage ./python-modules/pook { }; -# poolsense = callPackage ./python-modules/poolsense { }; + # poolsense = callPackage ./python-modules/poolsense { }; -# poppler-qt5 = callPackage ./python-modules/poppler-qt5 { -# inherit (pkgs.qt5) qtbase qmake; -# inherit (pkgs.libsForQt5) poppler; -# }; + # poppler-qt5 = callPackage ./python-modules/poppler-qt5 { + # inherit (pkgs.qt5) qtbase qmake; + # inherit (pkgs.libsForQt5) poppler; + # }; -# portalocker = callPackage ./python-modules/portalocker { }; + # portalocker = callPackage ./python-modules/portalocker { }; -# portend = callPackage ./python-modules/portend { }; + # portend = callPackage ./python-modules/portend { }; -# port-for = callPackage ./python-modules/port-for { }; + # port-for = callPackage ./python-modules/port-for { }; -# portpicker = callPackage ./python-modules/portpicker { }; + # portpicker = callPackage ./python-modules/portpicker { }; -# posix-ipc = callPackage ./python-modules/posix-ipc { }; + # posix-ipc = callPackage ./python-modules/posix-ipc { }; -# posthog = callPackage ./python-modules/posthog { }; + # posthog = callPackage ./python-modules/posthog { }; -# pot = callPackage ./python-modules/pot { }; + # pot = callPackage ./python-modules/pot { }; -# potentials = callPackage ./python-modules/potentials { }; + # potentials = callPackage ./python-modules/potentials { }; -# potr = callPackage ./python-modules/potr { }; + # potr = callPackage ./python-modules/potr { }; -# power = callPackage ./python-modules/power { }; + # power = callPackage ./python-modules/power { }; -# powerline = callPackage ./python-modules/powerline { }; + # powerline = callPackage ./python-modules/powerline { }; -# powerline-mem-segment = callPackage ./python-modules/powerline-mem-segment { }; + # powerline-mem-segment = callPackage ./python-modules/powerline-mem-segment { }; -# pox = callPackage ./python-modules/pox { }; + # pox = callPackage ./python-modules/pox { }; -# poyo = callPackage ./python-modules/poyo { }; + # poyo = callPackage ./python-modules/poyo { }; -# ppft = callPackage ./python-modules/ppft { }; + # ppft = callPackage ./python-modules/ppft { }; -# pplpy = callPackage ./python-modules/pplpy { }; + # pplpy = callPackage ./python-modules/pplpy { }; -# pprintpp = callPackage ./python-modules/pprintpp { }; + # pprintpp = callPackage ./python-modules/pprintpp { }; -# pproxy = callPackage ./python-modules/pproxy { }; + # pproxy = callPackage ./python-modules/pproxy { }; -# ppscore = callPackage ./python-modules/ppscore { }; + # ppscore = callPackage ./python-modules/ppscore { }; -# pq = callPackage ./python-modules/pq { }; + # pq = callPackage ./python-modules/pq { }; -# prance = callPackage ./python-modules/prance { }; + # prance = callPackage ./python-modules/prance { }; -# prawcore = callPackage ./python-modules/prawcore { }; + # prawcore = callPackage ./python-modules/prawcore { }; -# praw = callPackage ./python-modules/praw { }; + # praw = callPackage ./python-modules/praw { }; -# prayer-times-calculator = callPackage ./python-modules/prayer-times-calculator { }; + # prayer-times-calculator = callPackage ./python-modules/prayer-times-calculator { }; -# precis-i18n = callPackage ./python-modules/precis-i18n { }; + # precis-i18n = callPackage ./python-modules/precis-i18n { }; -# prefixed = callPackage ./python-modules/prefixed { }; + # prefixed = callPackage ./python-modules/prefixed { }; -# pre-commit-hooks = callPackage ./python-modules/pre-commit-hooks { }; + # pre-commit-hooks = callPackage ./python-modules/pre-commit-hooks { }; -# preggy = callPackage ./python-modules/preggy { }; + # preggy = callPackage ./python-modules/preggy { }; -# premailer = callPackage ./python-modules/premailer { }; + # premailer = callPackage ./python-modules/premailer { }; -# preprocess-cancellation = callPackage ./python-modules/preprocess-cancellation { }; + # preprocess-cancellation = callPackage ./python-modules/preprocess-cancellation { }; -# preshed = callPackage ./python-modules/preshed { }; + # preshed = callPackage ./python-modules/preshed { }; pretend = callPackage ./python-modules/pretend { }; -# prettytable = callPackage ./python-modules/prettytable { }; + # prettytable = callPackage ./python-modules/prettytable { }; -# primecountpy = callPackage ./python-modules/primecountpy { }; + # primecountpy = callPackage ./python-modules/primecountpy { }; -# primepy = callPackage ./python-modules/primepy { }; + # primepy = callPackage ./python-modules/primepy { }; -# primer3 = callPackage ./python-modules/primer3 { }; + # primer3 = callPackage ./python-modules/primer3 { }; -# priority = callPackage ./python-modules/priority { }; + # priority = callPackage ./python-modules/priority { }; -# prisma = callPackage ./python-modules/prisma { }; + # prisma = callPackage ./python-modules/prisma { }; -# prison = callPackage ./python-modules/prison { }; + # prison = callPackage ./python-modules/prison { }; -# proboscis = callPackage ./python-modules/proboscis { }; + # proboscis = callPackage ./python-modules/proboscis { }; -# process-tests = callPackage ./python-modules/process-tests { }; + # process-tests = callPackage ./python-modules/process-tests { }; -# procmon-parser = callPackage ./python-modules/procmon-parser { }; + # procmon-parser = callPackage ./python-modules/procmon-parser { }; -# proglog = callPackage ./python-modules/proglog { }; + # proglog = callPackage ./python-modules/proglog { }; -# progressbar2 = callPackage ./python-modules/progressbar2 { }; + # progressbar2 = callPackage ./python-modules/progressbar2 { }; -# progressbar33 = callPackage ./python-modules/progressbar33 { }; + # progressbar33 = callPackage ./python-modules/progressbar33 { }; -# progressbar = callPackage ./python-modules/progressbar { }; + # progressbar = callPackage ./python-modules/progressbar { }; -# progress = callPackage ./python-modules/progress { }; + # progress = callPackage ./python-modules/progress { }; -# prometheus-api-client = callPackage ./python-modules/prometheus-api-client { }; + # prometheus-api-client = callPackage ./python-modules/prometheus-api-client { }; -# prometheus-client = callPackage ./python-modules/prometheus-client { }; + # prometheus-client = callPackage ./python-modules/prometheus-client { }; -# prometheus-flask-exporter = callPackage ./python-modules/prometheus-flask-exporter { }; + # prometheus-flask-exporter = callPackage ./python-modules/prometheus-flask-exporter { }; -# prometrix = callPackage ./python-modules/prometrix { }; + # prometrix = callPackage ./python-modules/prometrix { }; -# promise = callPackage ./python-modules/promise { }; + # promise = callPackage ./python-modules/promise { }; -# prompt-toolkit = callPackage ./python-modules/prompt-toolkit { }; + # prompt-toolkit = callPackage ./python-modules/prompt-toolkit { }; -# prompthub-py = callPackage ./python-modules/prompthub-py { }; + # prompthub-py = callPackage ./python-modules/prompthub-py { }; -# property-manager = callPackage ./python-modules/property-manager { }; + # property-manager = callPackage ./python-modules/property-manager { }; -# protego = callPackage ./python-modules/protego { }; + # protego = callPackage ./python-modules/protego { }; -# proto-plus = callPackage ./python-modules/proto-plus { }; + # proto-plus = callPackage ./python-modules/proto-plus { }; -# # Protobuf 4.x -# protobuf = callPackage ./python-modules/protobuf { -# # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version. -# protobuf = pkgs.protobuf; -# }; + # # Protobuf 4.x + # protobuf = callPackage ./python-modules/protobuf { + # # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version. + # protobuf = pkgs.protobuf; + # }; -# # Protobuf 3.x -# protobuf3 = callPackage ./python-modules/protobuf/3.nix { -# protobuf = pkgs.protobuf3_20; -# }; + # # Protobuf 3.x + # protobuf3 = callPackage ./python-modules/protobuf/3.nix { + # protobuf = pkgs.protobuf3_20; + # }; -# protobuf3-to-dict = callPackage ./python-modules/protobuf3-to-dict { }; + # protobuf3-to-dict = callPackage ./python-modules/protobuf3-to-dict { }; -# proton-client = callPackage ./python-modules/proton-client { }; + # proton-client = callPackage ./python-modules/proton-client { }; -# proton-core = callPackage ./python-modules/proton-core { }; + # proton-core = callPackage ./python-modules/proton-core { }; -# proton-keyring-linux = callPackage ./python-modules/proton-keyring-linux { }; + # proton-keyring-linux = callPackage ./python-modules/proton-keyring-linux { }; -# proton-keyring-linux-secretservice = callPackage ./python-modules/proton-keyring-linux-secretservice { }; + # proton-keyring-linux-secretservice = callPackage ./python-modules/proton-keyring-linux-secretservice { }; -# proton-vpn-api-core = callPackage ./python-modules/proton-vpn-api-core { }; + # proton-vpn-api-core = callPackage ./python-modules/proton-vpn-api-core { }; -# proton-vpn-connection = callPackage ./python-modules/proton-vpn-connection { }; + # proton-vpn-connection = callPackage ./python-modules/proton-vpn-connection { }; -# proton-vpn-killswitch = callPackage ./python-modules/proton-vpn-killswitch { }; + # proton-vpn-killswitch = callPackage ./python-modules/proton-vpn-killswitch { }; -# proton-vpn-killswitch-network-manager = callPackage ./python-modules/proton-vpn-killswitch-network-manager { }; + # proton-vpn-killswitch-network-manager = callPackage ./python-modules/proton-vpn-killswitch-network-manager { }; -# proton-vpn-logger = callPackage ./python-modules/proton-vpn-logger { }; + # proton-vpn-logger = callPackage ./python-modules/proton-vpn-logger { }; -# proton-vpn-network-manager = callPackage ./python-modules/proton-vpn-network-manager { }; + # proton-vpn-network-manager = callPackage ./python-modules/proton-vpn-network-manager { }; -# proton-vpn-network-manager-openvpn = callPackage ./python-modules/proton-vpn-network-manager-openvpn { }; + # proton-vpn-network-manager-openvpn = callPackage ./python-modules/proton-vpn-network-manager-openvpn { }; -# proton-vpn-session = callPackage ./python-modules/proton-vpn-session { }; + # proton-vpn-session = callPackage ./python-modules/proton-vpn-session { }; -# protonup-ng = callPackage ./python-modules/protonup-ng { }; + # protonup-ng = callPackage ./python-modules/protonup-ng { }; -# protonvpn-nm-lib = callPackage ./python-modules/protonvpn-nm-lib { -# pkgs-systemd = pkgs.systemd; -# }; + # protonvpn-nm-lib = callPackage ./python-modules/protonvpn-nm-lib { + # pkgs-systemd = pkgs.systemd; + # }; -# prov = callPackage ./python-modules/prov { }; + # prov = callPackage ./python-modules/prov { }; -# prox-tv = callPackage ./python-modules/prox-tv { }; + # prox-tv = callPackage ./python-modules/prox-tv { }; -# proxmoxer = callPackage ./python-modules/proxmoxer { }; + # proxmoxer = callPackage ./python-modules/proxmoxer { }; -# proxy-py = callPackage ./python-modules/proxy-py { }; + # proxy-py = callPackage ./python-modules/proxy-py { }; -# psautohint = callPackage ./python-modules/psautohint { }; + # psautohint = callPackage ./python-modules/psautohint { }; -# pscript = callPackage ./python-modules/pscript { }; + # pscript = callPackage ./python-modules/pscript { }; -# psd-tools = callPackage ./python-modules/psd-tools { }; + # psd-tools = callPackage ./python-modules/psd-tools { }; psutil = callPackage ./python-modules/psutil { stdenv = if pkgs.stdenv.isDarwin then pkgs.overrideSDK pkgs.stdenv "11.0" else pkgs.stdenv; inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation IOKit; }; -# psutil-home-assistant = callPackage ./python-modules/psutil-home-assistant { }; + # psutil-home-assistant = callPackage ./python-modules/psutil-home-assistant { }; -# psychrolib = callPackage ./python-modules/psychrolib { }; + # psychrolib = callPackage ./python-modules/psychrolib { }; -# psycopg = callPackage ./python-modules/psycopg { }; + # psycopg = callPackage ./python-modules/psycopg { }; -# psycopg2 = callPackage ./python-modules/psycopg2 { }; + # psycopg2 = callPackage ./python-modules/psycopg2 { }; -# psycopg2cffi = callPackage ./python-modules/psycopg2cffi { }; + # psycopg2cffi = callPackage ./python-modules/psycopg2cffi { }; -# psygnal = callPackage ./python-modules/psygnal { }; + # psygnal = callPackage ./python-modules/psygnal { }; -# ptable = callPackage ./python-modules/ptable { }; + # ptable = callPackage ./python-modules/ptable { }; -# ptest = callPackage ./python-modules/ptest { }; + # ptest = callPackage ./python-modules/ptest { }; -# ptpython = callPackage ./python-modules/ptpython { }; + # ptpython = callPackage ./python-modules/ptpython { }; -# ptyprocess = callPackage ./python-modules/ptyprocess { }; + # ptyprocess = callPackage ./python-modules/ptyprocess { }; -# publicsuffix2 = callPackage ./python-modules/publicsuffix2 { }; + # publicsuffix2 = callPackage ./python-modules/publicsuffix2 { }; -# publicsuffix = callPackage ./python-modules/publicsuffix { }; + # publicsuffix = callPackage ./python-modules/publicsuffix { }; -# publicsuffixlist = callPackage ./python-modules/publicsuffixlist { }; + # publicsuffixlist = callPackage ./python-modules/publicsuffixlist { }; -# pubnub = callPackage ./python-modules/pubnub { }; + # pubnub = callPackage ./python-modules/pubnub { }; -# pubnubsub-handler = callPackage ./python-modules/pubnubsub-handler { }; + # pubnubsub-handler = callPackage ./python-modules/pubnubsub-handler { }; -# pudb = callPackage ./python-modules/pudb { }; + # pudb = callPackage ./python-modules/pudb { }; -# pulp = callPackage ./python-modules/pulp { }; + # pulp = callPackage ./python-modules/pulp { }; -# pulsar-client = callPackage ./python-modules/pulsar-client { }; + # pulsar-client = callPackage ./python-modules/pulsar-client { }; -# pulsectl-asyncio = callPackage ./python-modules/pulsectl-asyncio { }; + # pulsectl-asyncio = callPackage ./python-modules/pulsectl-asyncio { }; -# pulsar = callPackage ./python-modules/pulsar { }; + # pulsar = callPackage ./python-modules/pulsar { }; -# pulsectl = callPackage ./python-modules/pulsectl { }; + # pulsectl = callPackage ./python-modules/pulsectl { }; -# pure-cdb = callPackage ./python-modules/pure-cdb { }; + # pure-cdb = callPackage ./python-modules/pure-cdb { }; -# pure-eval = callPackage ./python-modules/pure-eval { }; + # pure-eval = callPackage ./python-modules/pure-eval { }; -# pure-pcapy3 = callPackage ./python-modules/pure-pcapy3 { }; + # pure-pcapy3 = callPackage ./python-modules/pure-pcapy3 { }; -# purepng = callPackage ./python-modules/purepng { }; + # purepng = callPackage ./python-modules/purepng { }; -# pure-protobuf = callPackage ./python-modules/pure-protobuf { }; + # pure-protobuf = callPackage ./python-modules/pure-protobuf { }; -# pure-python-adb = callPackage ./python-modules/pure-python-adb { }; + # pure-python-adb = callPackage ./python-modules/pure-python-adb { }; -# pure-python-adb-homeassistant = callPackage ./python-modules/pure-python-adb-homeassistant { }; + # pure-python-adb-homeassistant = callPackage ./python-modules/pure-python-adb-homeassistant { }; -# puremagic = callPackage ./python-modules/puremagic { }; + # puremagic = callPackage ./python-modules/puremagic { }; -# purl = callPackage ./python-modules/purl { }; + # purl = callPackage ./python-modules/purl { }; -# push-receiver = callPackage ./python-modules/push-receiver { }; + # push-receiver = callPackage ./python-modules/push-receiver { }; -# pushbullet-py = callPackage ./python-modules/pushbullet-py { }; + # pushbullet-py = callPackage ./python-modules/pushbullet-py { }; -# pushover-complete = callPackage ./python-modules/pushover-complete { }; + # pushover-complete = callPackage ./python-modules/pushover-complete { }; -# pvextractor = callPackage ./python-modules/pvextractor { }; + # pvextractor = callPackage ./python-modules/pvextractor { }; -# pvlib = callPackage ./python-modules/pvlib { }; + # pvlib = callPackage ./python-modules/pvlib { }; -# pvo = callPackage ./python-modules/pvo { }; + # pvo = callPackage ./python-modules/pvo { }; -# pweave = callPackage ./python-modules/pweave { }; + # pweave = callPackage ./python-modules/pweave { }; -# pwlf = callPackage ./python-modules/pwlf { }; + # pwlf = callPackage ./python-modules/pwlf { }; -# pwndbg = callPackage ./python-modules/pwndbg { }; + # pwndbg = callPackage ./python-modules/pwndbg { }; -# pwntools = callPackage ./python-modules/pwntools { -# debugger = pkgs.gdb; -# }; + # pwntools = callPackage ./python-modules/pwntools { + # debugger = pkgs.gdb; + # }; -# pxml = callPackage ./python-modules/pxml { }; + # pxml = callPackage ./python-modules/pxml { }; -# py-air-control = callPackage ./python-modules/py-air-control { }; + # py-air-control = callPackage ./python-modules/py-air-control { }; -# py-air-control-exporter = callPackage ./python-modules/py-air-control-exporter { }; + # py-air-control-exporter = callPackage ./python-modules/py-air-control-exporter { }; -# py-bip39-bindings = callPackage ./python-modules/py-bip39-bindings { }; + # py-bip39-bindings = callPackage ./python-modules/py-bip39-bindings { }; -# py-dmidecode = callPackage ./python-modules/py-dmidecode { }; + # py-dmidecode = callPackage ./python-modules/py-dmidecode { }; -# py-dormakaba-dkey = callPackage ./python-modules/py-dormakaba-dkey { }; + # py-dormakaba-dkey = callPackage ./python-modules/py-dormakaba-dkey { }; -# py-nightscout = callPackage ./python-modules/py-nightscout { }; + # py-nightscout = callPackage ./python-modules/py-nightscout { }; -# py-partiql-parser = callPackage ./python-modules/py-partiql-parser { }; + # py-partiql-parser = callPackage ./python-modules/py-partiql-parser { }; -# py-pdf-parser = callPackage ./python-modules/py-pdf-parser { }; + # py-pdf-parser = callPackage ./python-modules/py-pdf-parser { }; -# py-serializable = callPackage ./python-modules/py-serializable { }; + # py-serializable = callPackage ./python-modules/py-serializable { }; -# py-synologydsm-api = callPackage ./python-modules/py-synologydsm-api { }; + # py-synologydsm-api = callPackage ./python-modules/py-synologydsm-api { }; -# py-sneakers = callPackage ./python-modules/py-sneakers { }; + # py-sneakers = callPackage ./python-modules/py-sneakers { }; -# py-sr25519-bindings = callPackage ./python-modules/py-sr25519-bindings { }; + # py-sr25519-bindings = callPackage ./python-modules/py-sr25519-bindings { }; -# py-tes = callPackage ./python-modules/py-tes { }; + # py-tes = callPackage ./python-modules/py-tes { }; -# py-ubjson = callPackage ./python-modules/py-ubjson { }; + # py-ubjson = callPackage ./python-modules/py-ubjson { }; -# py-zabbix = callPackage ./python-modules/py-zabbix { }; + # py-zabbix = callPackage ./python-modules/py-zabbix { }; -# py17track = callPackage ./python-modules/py17track { }; + # py17track = callPackage ./python-modules/py17track { }; -# py2bit = callPackage ./python-modules/py2bit { }; + # py2bit = callPackage ./python-modules/py2bit { }; -# py3buddy = toPythonModule (callPackage ./python-modules/py3buddy { }); + # py3buddy = toPythonModule (callPackage ./python-modules/py3buddy { }); -# py3exiv2 = callPackage ./python-modules/py3exiv2 { }; + # py3exiv2 = callPackage ./python-modules/py3exiv2 { }; -# py3langid = callPackage ./python-modules/py3langid { }; + # py3langid = callPackage ./python-modules/py3langid { }; -# py3nvml = callPackage ./python-modules/py3nvml { }; + # py3nvml = callPackage ./python-modules/py3nvml { }; -# py3rijndael = callPackage ./python-modules/py3rijndael { }; + # py3rijndael = callPackage ./python-modules/py3rijndael { }; -# py3status = callPackage ./python-modules/py3status { }; + # py3status = callPackage ./python-modules/py3status { }; -# py3to2 = callPackage ./python-modules/3to2 { }; + # py3to2 = callPackage ./python-modules/3to2 { }; -# py4j = callPackage ./python-modules/py4j { }; + # py4j = callPackage ./python-modules/py4j { }; -# pyacaia-async = callPackage ./python-modules/pyacaia-async { }; + # pyacaia-async = callPackage ./python-modules/pyacaia-async { }; -# pyacoustid = callPackage ./python-modules/pyacoustid { }; + # pyacoustid = callPackage ./python-modules/pyacoustid { }; -# pyads = callPackage ./python-modules/pyads { }; + # pyads = callPackage ./python-modules/pyads { }; -# pyaes = callPackage ./python-modules/pyaes { }; + # pyaes = callPackage ./python-modules/pyaes { }; -# pyaftership = callPackage ./python-modules/pyaftership { }; + # pyaftership = callPackage ./python-modules/pyaftership { }; -# pyahocorasick = callPackage ./python-modules/pyahocorasick { }; + # pyahocorasick = callPackage ./python-modules/pyahocorasick { }; -# pyairnow = callPackage ./python-modules/pyairnow { }; + # pyairnow = callPackage ./python-modules/pyairnow { }; -# pyairvisual = callPackage ./python-modules/pyairvisual { }; + # pyairvisual = callPackage ./python-modules/pyairvisual { }; -# pyalgotrade = callPackage ./python-modules/pyalgotrade { }; + # pyalgotrade = callPackage ./python-modules/pyalgotrade { }; -# pyamg = callPackage ./python-modules/pyamg { }; + # pyamg = callPackage ./python-modules/pyamg { }; -# pyaml = callPackage ./python-modules/pyaml { }; + # pyaml = callPackage ./python-modules/pyaml { }; -# pyannotate = callPackage ./python-modules/pyannotate { }; + # pyannotate = callPackage ./python-modules/pyannotate { }; -# pyannote-audio = callPackage ./python-modules/pyannote-audio { }; + # pyannote-audio = callPackage ./python-modules/pyannote-audio { }; -# pyannote-pipeline = callPackage ./python-modules/pyannote-pipeline { }; + # pyannote-pipeline = callPackage ./python-modules/pyannote-pipeline { }; -# pyannote-metrics = callPackage ./python-modules/pyannote-metrics { }; + # pyannote-metrics = callPackage ./python-modules/pyannote-metrics { }; -# pyannote-database = callPackage ./python-modules/pyannote-database { }; + # pyannote-database = callPackage ./python-modules/pyannote-database { }; -# pyannote-core = callPackage ./python-modules/pyannote-core { }; + # pyannote-core = callPackage ./python-modules/pyannote-core { }; -# pyarlo = callPackage ./python-modules/pyarlo { }; + # pyarlo = callPackage ./python-modules/pyarlo { }; -# pyarr = callPackage ./python-modules/pyarr { }; + # pyarr = callPackage ./python-modules/pyarr { }; -# pyarrow = callPackage ./python-modules/pyarrow { -# inherit (pkgs) arrow-cpp cmake; -# }; + # pyarrow = callPackage ./python-modules/pyarrow { + # inherit (pkgs) arrow-cpp cmake; + # }; -# pyarrow-hotfix = callPackage ./python-modules/pyarrow-hotfix { }; + # pyarrow-hotfix = callPackage ./python-modules/pyarrow-hotfix { }; -# pyasn = callPackage ./python-modules/pyasn { }; + # pyasn = callPackage ./python-modules/pyasn { }; -# pyasn1 = callPackage ./python-modules/pyasn1 { }; + # pyasn1 = callPackage ./python-modules/pyasn1 { }; -# pyasn1-modules = callPackage ./python-modules/pyasn1-modules { }; + # pyasn1-modules = callPackage ./python-modules/pyasn1-modules { }; -# pyasuswrt = callPackage ./python-modules/pyasuswrt { }; + # pyasuswrt = callPackage ./python-modules/pyasuswrt { }; -# pyasyncore = callPackage ./python-modules/pyasyncore { }; + # pyasyncore = callPackage ./python-modules/pyasyncore { }; -# pyathena = callPackage ./python-modules/pyathena { }; + # pyathena = callPackage ./python-modules/pyathena { }; -# pyatmo = callPackage ./python-modules/pyatmo { }; + # pyatmo = callPackage ./python-modules/pyatmo { }; -# pyatspi = callPackage ./python-modules/pyatspi { }; + # pyatspi = callPackage ./python-modules/pyatspi { }; -# pyatv = callPackage ./python-modules/pyatv { }; + # pyatv = callPackage ./python-modules/pyatv { }; -# pyaudio = callPackage ./python-modules/pyaudio { }; + # pyaudio = callPackage ./python-modules/pyaudio { }; -# pyaussiebb = callPackage ./python-modules/pyaussiebb { }; + # pyaussiebb = callPackage ./python-modules/pyaussiebb { }; -# pyautogui = callPackage ./python-modules/pyautogui { }; + # pyautogui = callPackage ./python-modules/pyautogui { }; -# pyavm = callPackage ./python-modules/pyavm { }; + # pyavm = callPackage ./python-modules/pyavm { }; -# pyaxmlparser = callPackage ./python-modules/pyaxmlparser { }; + # pyaxmlparser = callPackage ./python-modules/pyaxmlparser { }; -# pybalboa = callPackage ./python-modules/pybalboa { }; + # pybalboa = callPackage ./python-modules/pybalboa { }; -# pybase64 = callPackage ./python-modules/pybase64 { }; + # pybase64 = callPackage ./python-modules/pybase64 { }; -# pybids = callPackage ./python-modules/pybids { }; + # pybids = callPackage ./python-modules/pybids { }; -# pybigwig = callPackage ./python-modules/pybigwig { }; + # pybigwig = callPackage ./python-modules/pybigwig { }; -# pybind11 = callPackage ./python-modules/pybind11 { }; + # pybind11 = callPackage ./python-modules/pybind11 { }; -# pybindgen = callPackage ./python-modules/pybindgen { }; + # pybindgen = callPackage ./python-modules/pybindgen { }; -# pyblackbird = callPackage ./python-modules/pyblackbird { }; + # pyblackbird = callPackage ./python-modules/pyblackbird { }; -# pybloom-live = callPackage ./python-modules/pybloom-live { }; + # pybloom-live = callPackage ./python-modules/pybloom-live { }; -# pybluez = callPackage ./python-modules/pybluez { -# inherit (pkgs) bluez; -# }; + # pybluez = callPackage ./python-modules/pybluez { + # inherit (pkgs) bluez; + # }; -# pybotvac = callPackage ./python-modules/pybotvac { }; + # pybotvac = callPackage ./python-modules/pybotvac { }; -# pybox2d = callPackage ./python-modules/pybox2d { }; + # pybox2d = callPackage ./python-modules/pybox2d { }; -# pybravia = callPackage ./python-modules/pybravia { }; + # pybravia = callPackage ./python-modules/pybravia { }; -# pybrowsers = callPackage ./python-modules/pybrowsers { }; + # pybrowsers = callPackage ./python-modules/pybrowsers { }; -# pybrowserid = callPackage ./python-modules/pybrowserid { }; + # pybrowserid = callPackage ./python-modules/pybrowserid { }; -# pybtex = callPackage ./python-modules/pybtex { }; + # pybtex = callPackage ./python-modules/pybtex { }; -# pybtex-docutils = callPackage ./python-modules/pybtex-docutils { }; + # pybtex-docutils = callPackage ./python-modules/pybtex-docutils { }; -# pybullet = callPackage ./python-modules/pybullet { }; + # pybullet = callPackage ./python-modules/pybullet { }; -# pycairo = callPackage ./python-modules/pycairo { -# inherit (pkgs.buildPackages) meson; -# }; + # pycairo = callPackage ./python-modules/pycairo { + # inherit (pkgs.buildPackages) meson; + # }; -# py = callPackage ./python-modules/py { }; + # py = callPackage ./python-modules/py { }; -# pycangjie = callPackage ./python-modules/pycangjie { }; + # pycangjie = callPackage ./python-modules/pycangjie { }; -# pycapnp = callPackage ./python-modules/pycapnp { }; + # pycapnp = callPackage ./python-modules/pycapnp { }; -# pycaption = callPackage ./python-modules/pycaption { }; + # pycaption = callPackage ./python-modules/pycaption { }; -# pycares = callPackage ./python-modules/pycares { }; + # pycares = callPackage ./python-modules/pycares { }; -# pycarwings2 = callPackage ./python-modules/pycarwings2 { }; + # pycarwings2 = callPackage ./python-modules/pycarwings2 { }; -# pycatch22 = callPackage ./python-modules/pycatch22 { }; + # pycatch22 = callPackage ./python-modules/pycatch22 { }; -# pycategories = callPackage ./python-modules/pycategories { }; + # pycategories = callPackage ./python-modules/pycategories { }; -# pycddl = callPackage ./python-modules/pycddl { }; + # pycddl = callPackage ./python-modules/pycddl { }; -# pycdio = callPackage ./python-modules/pycdio { }; + # pycdio = callPackage ./python-modules/pycdio { }; -# pycec = callPackage ./python-modules/pycec { }; + # pycec = callPackage ./python-modules/pycec { }; -# pycep-parser = callPackage ./python-modules/pycep-parser { }; + # pycep-parser = callPackage ./python-modules/pycep-parser { }; -# pycfdns = callPackage ./python-modules/pycfdns { }; + # pycfdns = callPackage ./python-modules/pycfdns { }; -# pycflow2dot = callPackage ./python-modules/pycflow2dot { -# inherit (pkgs) graphviz; -# }; + # pycflow2dot = callPackage ./python-modules/pycflow2dot { + # inherit (pkgs) graphviz; + # }; -# pycfmodel = callPackage ./python-modules/pycfmodel { }; + # pycfmodel = callPackage ./python-modules/pycfmodel { }; -# pychannels = callPackage ./python-modules/pychannels { }; + # pychannels = callPackage ./python-modules/pychannels { }; -# pychart = callPackage ./python-modules/pychart { }; + # pychart = callPackage ./python-modules/pychart { }; -# pychm = callPackage ./python-modules/pychm { }; + # pychm = callPackage ./python-modules/pychm { }; -# pychromecast = callPackage ./python-modules/pychromecast { }; + # pychromecast = callPackage ./python-modules/pychromecast { }; -# pyclimacell = callPackage ./python-modules/pyclimacell { }; + # pyclimacell = callPackage ./python-modules/pyclimacell { }; -# pyclip = callPackage ./python-modules/pyclip { }; + # pyclip = callPackage ./python-modules/pyclip { }; -# pyclipper = callPackage ./python-modules/pyclipper { }; + # pyclipper = callPackage ./python-modules/pyclipper { }; -# pycm = callPackage ./python-modules/pycm { }; + # pycm = callPackage ./python-modules/pycm { }; -# pycmarkgfm = callPackage ./python-modules/pycmarkgfm { }; + # pycmarkgfm = callPackage ./python-modules/pycmarkgfm { }; -# pycocotools = callPackage ./python-modules/pycocotools { }; + # pycocotools = callPackage ./python-modules/pycocotools { }; -# pycodestyle = callPackage ./python-modules/pycodestyle { }; + # pycodestyle = callPackage ./python-modules/pycodestyle { }; -# pycognito = callPackage ./python-modules/pycognito { }; + # pycognito = callPackage ./python-modules/pycognito { }; -# pycoin = callPackage ./python-modules/pycoin { }; + # pycoin = callPackage ./python-modules/pycoin { }; -# pycollada = callPackage ./python-modules/pycollada { }; + # pycollada = callPackage ./python-modules/pycollada { }; -# pycomfoconnect = callPackage ./python-modules/pycomfoconnect { }; + # pycomfoconnect = callPackage ./python-modules/pycomfoconnect { }; -# pycontracts = callPackage ./python-modules/pycontracts { }; + # pycontracts = callPackage ./python-modules/pycontracts { }; -# pycosat = callPackage ./python-modules/pycosat { }; + # pycosat = callPackage ./python-modules/pycosat { }; -# pycotap = callPackage ./python-modules/pycotap { }; + # pycotap = callPackage ./python-modules/pycotap { }; -# pycountry = callPackage ./python-modules/pycountry { }; + # pycountry = callPackage ./python-modules/pycountry { }; pycparser = callPackage ./python-modules/pycparser { }; -# py-canary = callPackage ./python-modules/py-canary { }; + # py-canary = callPackage ./python-modules/py-canary { }; -# py-cid = callPackage ./python-modules/py-cid { }; + # py-cid = callPackage ./python-modules/py-cid { }; -# py-cpuinfo = callPackage ./python-modules/py-cpuinfo { }; + # py-cpuinfo = callPackage ./python-modules/py-cpuinfo { }; -# pycardano = callPackage ./python-modules/pycardano { }; + # pycardano = callPackage ./python-modules/pycardano { }; -# pycrc = callPackage ./python-modules/pycrc { }; + # pycrc = callPackage ./python-modules/pycrc { }; -# pycritty = callPackage ./python-modules/pycritty { }; + # pycritty = callPackage ./python-modules/pycritty { }; -# pycron = callPackage ./python-modules/pycron { }; + # pycron = callPackage ./python-modules/pycron { }; -# pycrypto = callPackage ./python-modules/pycrypto { }; + # pycrypto = callPackage ./python-modules/pycrypto { }; -# pycryptodome = callPackage ./python-modules/pycryptodome { }; + # pycryptodome = callPackage ./python-modules/pycryptodome { }; -# pycryptodomex = callPackage ./python-modules/pycryptodomex { }; + # pycryptodomex = callPackage ./python-modules/pycryptodomex { }; -# pycsdr = callPackage ./python-modules/pycsdr { }; + # pycsdr = callPackage ./python-modules/pycsdr { }; -# pyct = callPackage ./python-modules/pyct { }; + # pyct = callPackage ./python-modules/pyct { }; -# pyctr = callPackage ./python-modules/pyctr { }; + # pyctr = callPackage ./python-modules/pyctr { }; -# pycuda = callPackage ./python-modules/pycuda { -# inherit (pkgs.stdenv) mkDerivation; -# }; + # pycuda = callPackage ./python-modules/pycuda { + # inherit (pkgs.stdenv) mkDerivation; + # }; -# pycups = callPackage ./python-modules/pycups { }; + # pycups = callPackage ./python-modules/pycups { }; -# pycurl = callPackage ./python-modules/pycurl { }; + # pycurl = callPackage ./python-modules/pycurl { }; -# pycxx = callPackage ./python-modules/pycxx { }; + # pycxx = callPackage ./python-modules/pycxx { }; -# pycyphal = callPackage ./python-modules/pycyphal { }; + # pycyphal = callPackage ./python-modules/pycyphal { }; -# pydaikin = callPackage ./python-modules/pydaikin { }; + # pydaikin = callPackage ./python-modules/pydaikin { }; -# pydal = callPackage ./python-modules/pydal { }; + # pydal = callPackage ./python-modules/pydal { }; -# pydanfossair = callPackage ./python-modules/pydanfossair { }; + # pydanfossair = callPackage ./python-modules/pydanfossair { }; -# pydantic = callPackage ./python-modules/pydantic { }; + # pydantic = callPackage ./python-modules/pydantic { }; -# pydantic_1 = callPackage ./python-modules/pydantic/1.nix { }; + # pydantic_1 = callPackage ./python-modules/pydantic/1.nix { }; -# pydantic-compat = callPackage ./python-modules/pydantic-compat { }; + # pydantic-compat = callPackage ./python-modules/pydantic-compat { }; -# pydantic-core = callPackage ./python-modules/pydantic-core { }; + # pydantic-core = callPackage ./python-modules/pydantic-core { }; -# pydantic-extra-types = callPackage ./python-modules/pydantic-extra-types { }; + # pydantic-extra-types = callPackage ./python-modules/pydantic-extra-types { }; -# pydantic-scim = callPackage ./python-modules/pydantic-scim { }; + # pydantic-scim = callPackage ./python-modules/pydantic-scim { }; -# pydantic-settings = callPackage ./python-modules/pydantic-settings { }; + # pydantic-settings = callPackage ./python-modules/pydantic-settings { }; -# pydantic-yaml-0 = callPackage ./python-modules/pydantic-yaml-0 { }; + # pydantic-yaml-0 = callPackage ./python-modules/pydantic-yaml-0 { }; -# pydash = callPackage ./python-modules/pydash { }; + # pydash = callPackage ./python-modules/pydash { }; -# pydata-google-auth = callPackage ./python-modules/pydata-google-auth { }; + # pydata-google-auth = callPackage ./python-modules/pydata-google-auth { }; -# pydata-sphinx-theme = callPackage ./python-modules/pydata-sphinx-theme { }; + # pydata-sphinx-theme = callPackage ./python-modules/pydata-sphinx-theme { }; -# pydateinfer = callPackage ./python-modules/pydateinfer { }; + # pydateinfer = callPackage ./python-modules/pydateinfer { }; -# pydbus = callPackage ./python-modules/pydbus { }; + # pydbus = callPackage ./python-modules/pydbus { }; -# pydeck = callPackage ./python-modules/pydeck { }; + # pydeck = callPackage ./python-modules/pydeck { }; -# pydeconz = callPackage ./python-modules/pydeconz { }; + # pydeconz = callPackage ./python-modules/pydeconz { }; -# pydelijn = callPackage ./python-modules/pydelijn { }; + # pydelijn = callPackage ./python-modules/pydelijn { }; -# pydenticon = callPackage ./python-modules/pydenticon { }; + # pydenticon = callPackage ./python-modules/pydenticon { }; -# pydeps = callPackage ./python-modules/pydeps { -# inherit (pkgs) graphviz; -# }; + # pydeps = callPackage ./python-modules/pydeps { + # inherit (pkgs) graphviz; + # }; -# pydes = callPackage ./python-modules/pydes { }; + # pydes = callPackage ./python-modules/pydes { }; -# py-desmume = callPackage ./python-modules/py-desmume { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; + # py-desmume = callPackage ./python-modules/py-desmume { + # inherit (pkgs) libpcap; # Avoid confusion with python package of the same name + # }; -# pydevccu = callPackage ./python-modules/pydevccu { }; + # pydevccu = callPackage ./python-modules/pydevccu { }; -# pydevd = callPackage ./python-modules/pydevd { }; + # pydevd = callPackage ./python-modules/pydevd { }; -# pydevtool = callPackage ./python-modules/pydevtool { }; + # pydevtool = callPackage ./python-modules/pydevtool { }; -# pydexcom = callPackage ./python-modules/pydexcom { }; + # pydexcom = callPackage ./python-modules/pydexcom { }; -# pydicom = callPackage ./python-modules/pydicom { }; + # pydicom = callPackage ./python-modules/pydicom { }; -# pydicom-seg = callPackage ./python-modules/pydicom-seg { }; + # pydicom-seg = callPackage ./python-modules/pydicom-seg { }; -# pydigiham = callPackage ./python-modules/pydigiham { }; + # pydigiham = callPackage ./python-modules/pydigiham { }; -# pydiscourse = callPackage ./python-modules/pydiscourse { }; + # pydiscourse = callPackage ./python-modules/pydiscourse { }; -# pydiscovergy = callPackage ./python-modules/pydiscovergy { }; + # pydiscovergy = callPackage ./python-modules/pydiscovergy { }; -# pydispatcher = callPackage ./python-modules/pydispatcher { }; + # pydispatcher = callPackage ./python-modules/pydispatcher { }; -# pydmd = callPackage ./python-modules/pydmd { }; + # pydmd = callPackage ./python-modules/pydmd { }; -# pydns = callPackage ./python-modules/py3dns { }; + # pydns = callPackage ./python-modules/py3dns { }; -# pydocstyle = callPackage ./python-modules/pydocstyle { }; + # pydocstyle = callPackage ./python-modules/pydocstyle { }; -# pydocumentdb = callPackage ./python-modules/pydocumentdb { }; + # pydocumentdb = callPackage ./python-modules/pydocumentdb { }; -# pydoods = callPackage ./python-modules/pydoods { }; + # pydoods = callPackage ./python-modules/pydoods { }; -# pydoe = callPackage ./python-modules/pydoe { }; + # pydoe = callPackage ./python-modules/pydoe { }; -# pydot = callPackage ./python-modules/pydot { -# inherit (pkgs) graphviz; -# }; + # pydot = callPackage ./python-modules/pydot { + # inherit (pkgs) graphviz; + # }; -# pydrawise = callPackage ./python-modules/pydrawise { }; + # pydrawise = callPackage ./python-modules/pydrawise { }; -# pydrive2 = callPackage ./python-modules/pydrive2 { }; + # pydrive2 = callPackage ./python-modules/pydrive2 { }; -# pydroid-ipcam = callPackage ./python-modules/pydroid-ipcam { }; + # pydroid-ipcam = callPackage ./python-modules/pydroid-ipcam { }; -# pydruid = callPackage ./python-modules/pydruid { }; + # pydruid = callPackage ./python-modules/pydruid { }; -# pydsdl = callPackage ./python-modules/pydsdl { }; + # pydsdl = callPackage ./python-modules/pydsdl { }; -# pydub = callPackage ./python-modules/pydub { }; + # pydub = callPackage ./python-modules/pydub { }; -# pyduke-energy = callPackage ./python-modules/pyduke-energy { }; + # pyduke-energy = callPackage ./python-modules/pyduke-energy { }; -# pyduotecno = callPackage ./python-modules/pyduotecno { }; + # pyduotecno = callPackage ./python-modules/pyduotecno { }; -# pydy = callPackage ./python-modules/pydy { }; + # pydy = callPackage ./python-modules/pydy { }; -# pydyf = callPackage ./python-modules/pydyf { }; + # pydyf = callPackage ./python-modules/pydyf { }; -# pyebus = callPackage ./python-modules/pyebus { }; + # pyebus = callPackage ./python-modules/pyebus { }; -# pyechonest = callPackage ./python-modules/pyechonest { }; + # pyechonest = callPackage ./python-modules/pyechonest { }; -# pyeclib = callPackage ./python-modules/pyeclib { }; + # pyeclib = callPackage ./python-modules/pyeclib { }; -# pyecoforest = callPackage ./python-modules/pyecoforest { }; + # pyecoforest = callPackage ./python-modules/pyecoforest { }; -# pyeconet = callPackage ./python-modules/pyeconet { }; + # pyeconet = callPackage ./python-modules/pyeconet { }; -# pyecowitt = callPackage ./python-modules/pyecowitt { }; + # pyecowitt = callPackage ./python-modules/pyecowitt { }; -# pyedimax = callPackage ./python-modules/pyedimax { }; + # pyedimax = callPackage ./python-modules/pyedimax { }; -# pyee = callPackage ./python-modules/pyee { }; + # pyee = callPackage ./python-modules/pyee { }; -# pyefergy = callPackage ./python-modules/pyefergy { }; + # pyefergy = callPackage ./python-modules/pyefergy { }; -# pyeight = callPackage ./python-modules/pyeight { }; + # pyeight = callPackage ./python-modules/pyeight { }; pyelftools = callPackage ./python-modules/pyelftools { }; -# pyemby = callPackage ./python-modules/pyemby { }; + # pyemby = callPackage ./python-modules/pyemby { }; -# pyemd = callPackage ./python-modules/pyemd { }; + # pyemd = callPackage ./python-modules/pyemd { }; -# pyemvue = callPackage ./python-modules/pyemvue { }; + # pyemvue = callPackage ./python-modules/pyemvue { }; -# pyenchant = callPackage ./python-modules/pyenchant { -# inherit (pkgs) enchant2; -# }; + # pyenchant = callPackage ./python-modules/pyenchant { + # inherit (pkgs) enchant2; + # }; -# pyenphase = callPackage ./python-modules/pyenphase { }; + # pyenphase = callPackage ./python-modules/pyenphase { }; -# pyenvisalink = callPackage ./python-modules/pyenvisalink { }; + # pyenvisalink = callPackage ./python-modules/pyenvisalink { }; -# pyephember = callPackage ./python-modules/pyephember { }; + # pyephember = callPackage ./python-modules/pyephember { }; -# pyepsg = callPackage ./python-modules/pyepsg { }; + # pyepsg = callPackage ./python-modules/pyepsg { }; -# pyerfa = callPackage ./python-modules/pyerfa { }; + # pyerfa = callPackage ./python-modules/pyerfa { }; -# pyevmasm = callPackage ./python-modules/pyevmasm { }; + # pyevmasm = callPackage ./python-modules/pyevmasm { }; -# pyevilgenius = callPackage ./python-modules/pyevilgenius { }; + # pyevilgenius = callPackage ./python-modules/pyevilgenius { }; -# pyexcel = callPackage ./python-modules/pyexcel { }; + # pyexcel = callPackage ./python-modules/pyexcel { }; -# pyexcel-io = callPackage ./python-modules/pyexcel-io { }; + # pyexcel-io = callPackage ./python-modules/pyexcel-io { }; -# pyexcel-ods = callPackage ./python-modules/pyexcel-ods { }; + # pyexcel-ods = callPackage ./python-modules/pyexcel-ods { }; -# pyexcel-xls = callPackage ./python-modules/pyexcel-xls { }; + # pyexcel-xls = callPackage ./python-modules/pyexcel-xls { }; -# pyexiftool = callPackage ./python-modules/pyexiftool { }; + # pyexiftool = callPackage ./python-modules/pyexiftool { }; -# pyexploitdb = callPackage ./python-modules/pyexploitdb { }; + # pyexploitdb = callPackage ./python-modules/pyexploitdb { }; -# pyezviz = callPackage ./python-modules/pyezviz { }; + # pyezviz = callPackage ./python-modules/pyezviz { }; -# pyface = callPackage ./python-modules/pyface { }; + # pyface = callPackage ./python-modules/pyface { }; -# pyfaidx = callPackage ./python-modules/pyfaidx { }; + # pyfaidx = callPackage ./python-modules/pyfaidx { }; -# pyfakefs = callPackage ./python-modules/pyfakefs { }; + # pyfakefs = callPackage ./python-modules/pyfakefs { }; -# pyfakewebcam = callPackage ./python-modules/pyfakewebcam { }; + # pyfakewebcam = callPackage ./python-modules/pyfakewebcam { }; -# pyfantom = callPackage ./python-modules/pyfantom { }; + # pyfantom = callPackage ./python-modules/pyfantom { }; -# pyfcm = callPackage ./python-modules/pyfcm { }; + # pyfcm = callPackage ./python-modules/pyfcm { }; -# pyfftw = callPackage ./python-modules/pyfftw { }; + # pyfftw = callPackage ./python-modules/pyfftw { }; -# pyfido = callPackage ./python-modules/pyfido { }; + # pyfido = callPackage ./python-modules/pyfido { }; -# pyfiglet = callPackage ./python-modules/pyfiglet { }; + # pyfiglet = callPackage ./python-modules/pyfiglet { }; -# pyfnip = callPackage ./python-modules/pyfnip { }; + # pyfnip = callPackage ./python-modules/pyfnip { }; -# pyflakes = callPackage ./python-modules/pyflakes { }; + # pyflakes = callPackage ./python-modules/pyflakes { }; -# pyflic = callPackage ./python-modules/pyflic { }; + # pyflic = callPackage ./python-modules/pyflic { }; -# pyflume = callPackage ./python-modules/pyflume { }; + # pyflume = callPackage ./python-modules/pyflume { }; -# pyfma = callPackage ./python-modules/pyfma { }; + # pyfma = callPackage ./python-modules/pyfma { }; -# pyfribidi = callPackage ./python-modules/pyfribidi { }; + # pyfribidi = callPackage ./python-modules/pyfribidi { }; -# pyfritzhome = callPackage ./python-modules/pyfritzhome { }; + # pyfritzhome = callPackage ./python-modules/pyfritzhome { }; -# pyfronius = callPackage ./python-modules/pyfronius { }; + # pyfronius = callPackage ./python-modules/pyfronius { }; -# pyftdi = callPackage ./python-modules/pyftdi { }; + # pyftdi = callPackage ./python-modules/pyftdi { }; -# pyftgl = callPackage ./python-modules/pyftgl { }; + # pyftgl = callPackage ./python-modules/pyftgl { }; -# pyftpdlib = callPackage ./python-modules/pyftpdlib { }; + # pyftpdlib = callPackage ./python-modules/pyftpdlib { }; -# pyfttt = callPackage ./python-modules/pyfttt { }; + # pyfttt = callPackage ./python-modules/pyfttt { }; -# pyfume = callPackage ./python-modules/pyfume { }; + # pyfume = callPackage ./python-modules/pyfume { }; -# pyfuse3 = callPackage ./python-modules/pyfuse3 { }; + # pyfuse3 = callPackage ./python-modules/pyfuse3 { }; -# pyfxa = callPackage ./python-modules/pyfxa { }; + # pyfxa = callPackage ./python-modules/pyfxa { }; -# pyfzf = callPackage ./python-modules/pyfzf { -# inherit (pkgs) fzf; -# }; + # pyfzf = callPackage ./python-modules/pyfzf { + # inherit (pkgs) fzf; + # }; -# pygal = callPackage ./python-modules/pygal { }; + # pygal = callPackage ./python-modules/pygal { }; -# pygame = callPackage ./python-modules/pygame { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# SDL2_image = pkgs.SDL2_image_2_0; -# }; + # pygame = callPackage ./python-modules/pygame { + # inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; + # SDL2_image = pkgs.SDL2_image_2_0; + # }; -# pygame-ce = callPackage ./python-modules/pygame-ce { -# inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; -# SDL2_image = pkgs.SDL2_image_2_0; -# SDL2_mixer = pkgs.SDL2_mixer_2_0; -# }; + # pygame-ce = callPackage ./python-modules/pygame-ce { + # inherit (pkgs.darwin.apple_sdk.frameworks) AppKit; + # SDL2_image = pkgs.SDL2_image_2_0; + # SDL2_mixer = pkgs.SDL2_mixer_2_0; + # }; -# pygame-sdl2 = callPackage ./python-modules/pygame-sdl2 { }; + # pygame-sdl2 = callPackage ./python-modules/pygame-sdl2 { }; -# pygame-gui = callPackage ./python-modules/pygame-gui { }; + # pygame-gui = callPackage ./python-modules/pygame-gui { }; -# pygatt = callPackage ./python-modules/pygatt { }; + # pygatt = callPackage ./python-modules/pygatt { }; -# pygccxml = callPackage ./python-modules/pygccxml { }; + # pygccxml = callPackage ./python-modules/pygccxml { }; -# pygdbmi = callPackage ./python-modules/pygdbmi { }; + # pygdbmi = callPackage ./python-modules/pygdbmi { }; -# pygeoip = callPackage ./python-modules/pygeoip { }; + # pygeoip = callPackage ./python-modules/pygeoip { }; -# pygeos = callPackage ./python-modules/pygeos { }; + # pygeos = callPackage ./python-modules/pygeos { }; -# pygetwindow = callPackage ./python-modules/pygetwindow { }; + # pygetwindow = callPackage ./python-modules/pygetwindow { }; pygit2 = callPackage ./python-modules/pygit2 { }; -# pygitguardian = callPackage ./python-modules/pygitguardian { }; + # pygitguardian = callPackage ./python-modules/pygitguardian { }; -# pygithub = callPackage ./python-modules/pygithub { }; + # pygithub = callPackage ./python-modules/pygithub { }; -# pyglet = callPackage ./python-modules/pyglet { }; + # pyglet = callPackage ./python-modules/pyglet { }; -# pyglm = callPackage ./python-modules/pyglm { }; + # pyglm = callPackage ./python-modules/pyglm { }; -# pygls = callPackage ./python-modules/pygls { }; + # pygls = callPackage ./python-modules/pygls { }; -# pygltflib = callPackage ./python-modules/pygltflib { }; + # pygltflib = callPackage ./python-modules/pygltflib { }; -# pygmars = callPackage ./python-modules/pygmars { }; + # pygmars = callPackage ./python-modules/pygmars { }; -# pygments-better-html = callPackage ./python-modules/pygments-better-html { }; + # pygments-better-html = callPackage ./python-modules/pygments-better-html { }; pygments = callPackage ./python-modules/pygments { }; -# pygments-markdown-lexer = callPackage ./python-modules/pygments-markdown-lexer { }; + # pygments-markdown-lexer = callPackage ./python-modules/pygments-markdown-lexer { }; -# pygmo = callPackage ./python-modules/pygmo { }; + # pygmo = callPackage ./python-modules/pygmo { }; -# pygmt = callPackage ./python-modules/pygmt { }; + # pygmt = callPackage ./python-modules/pygmt { }; -# pygobject3 = callPackage ./python-modules/pygobject/3.nix { -# # inherit (pkgs) meson won't work because it won't be spliced -# inherit (pkgs.buildPackages) meson; -# }; + # pygobject3 = callPackage ./python-modules/pygobject/3.nix { + # # inherit (pkgs) meson won't work because it won't be spliced + # inherit (pkgs.buildPackages) meson; + # }; -# pygobject-stubs = callPackage ./python-modules/pygobject-stubs { }; + # pygobject-stubs = callPackage ./python-modules/pygobject-stubs { }; -# pygogo = callPackage ./python-modules/pygogo { }; + # pygogo = callPackage ./python-modules/pygogo { }; -# pygpgme = callPackage ./python-modules/pygpgme { }; + # pygpgme = callPackage ./python-modules/pygpgme { }; -# pygraphviz = callPackage ./python-modules/pygraphviz { -# inherit (pkgs) graphviz; -# }; + # pygraphviz = callPackage ./python-modules/pygraphviz { + # inherit (pkgs) graphviz; + # }; -# pygreat = callPackage ./python-modules/pygreat { }; + # pygreat = callPackage ./python-modules/pygreat { }; -# pygrok = callPackage ./python-modules/pygrok { }; + # pygrok = callPackage ./python-modules/pygrok { }; -# pygsl = callPackage ./python-modules/pygsl { -# inherit (pkgs) gsl swig; -# }; + # pygsl = callPackage ./python-modules/pygsl { + # inherit (pkgs) gsl swig; + # }; -# pygtfs = callPackage ./python-modules/pygtfs { }; + # pygtfs = callPackage ./python-modules/pygtfs { }; -# pygtail = callPackage ./python-modules/pygtail { }; + # pygtail = callPackage ./python-modules/pygtail { }; -# pygtkspellcheck = callPackage ./python-modules/pygtkspellcheck { }; + # pygtkspellcheck = callPackage ./python-modules/pygtkspellcheck { }; -# pygtrie = callPackage ./python-modules/pygtrie { }; + # pygtrie = callPackage ./python-modules/pygtrie { }; -# pyhamcrest = callPackage ./python-modules/pyhamcrest { }; + # pyhamcrest = callPackage ./python-modules/pyhamcrest { }; -# pyhanko = callPackage ./python-modules/pyhanko { }; + # pyhanko = callPackage ./python-modules/pyhanko { }; -# pyhanko-certvalidator = callPackage ./python-modules/pyhanko-certvalidator { }; + # pyhanko-certvalidator = callPackage ./python-modules/pyhanko-certvalidator { }; -# pyhaversion = callPackage ./python-modules/pyhaversion { }; + # pyhaversion = callPackage ./python-modules/pyhaversion { }; -# pyhcl = callPackage ./python-modules/pyhcl { }; + # pyhcl = callPackage ./python-modules/pyhcl { }; -# pyhocon = callPackage ./python-modules/pyhocon { }; + # pyhocon = callPackage ./python-modules/pyhocon { }; -# pyhomematic = callPackage ./python-modules/pyhomematic { }; + # pyhomematic = callPackage ./python-modules/pyhomematic { }; -# pyhomepilot = callPackage ./python-modules/pyhomepilot { }; + # pyhomepilot = callPackage ./python-modules/pyhomepilot { }; -# pyhomeworks = callPackage ./python-modules/pyhomeworks { }; + # pyhomeworks = callPackage ./python-modules/pyhomeworks { }; -# pyheif = callPackage ./python-modules/pyheif { }; + # pyheif = callPackage ./python-modules/pyheif { }; -# pyi2cflash = callPackage ./python-modules/pyi2cflash { }; + # pyi2cflash = callPackage ./python-modules/pyi2cflash { }; -# pyialarm = callPackage ./python-modules/pyialarm { }; + # pyialarm = callPackage ./python-modules/pyialarm { }; -# pyicloud = callPackage ./python-modules/pyicloud { }; + # pyicloud = callPackage ./python-modules/pyicloud { }; -# pyicu = callPackage ./python-modules/pyicu { }; + # pyicu = callPackage ./python-modules/pyicu { }; -# pyimpfuzzy = callPackage ./python-modules/pyimpfuzzy { -# inherit (pkgs) ssdeep; -# }; + # pyimpfuzzy = callPackage ./python-modules/pyimpfuzzy { + # inherit (pkgs) ssdeep; + # }; -# pyinotify = callPackage ./python-modules/pyinotify { }; + # pyinotify = callPackage ./python-modules/pyinotify { }; -# pyinputevent = callPackage ./python-modules/pyinputevent { }; + # pyinputevent = callPackage ./python-modules/pyinputevent { }; -# pyinsteon = callPackage ./python-modules/pyinsteon { }; + # pyinsteon = callPackage ./python-modules/pyinsteon { }; -# pyinstrument = callPackage ./python-modules/pyinstrument { }; + # pyinstrument = callPackage ./python-modules/pyinstrument { }; -# pyintesishome = callPackage ./python-modules/pyintesishome { }; + # pyintesishome = callPackage ./python-modules/pyintesishome { }; -# pyipma = callPackage ./python-modules/pyipma { }; + # pyipma = callPackage ./python-modules/pyipma { }; -# pyipp = callPackage ./python-modules/pyipp { }; + # pyipp = callPackage ./python-modules/pyipp { }; -# pyipv8 = callPackage ./python-modules/pyipv8 { }; + # pyipv8 = callPackage ./python-modules/pyipv8 { }; -# pyiqvia = callPackage ./python-modules/pyiqvia { }; + # pyiqvia = callPackage ./python-modules/pyiqvia { }; -# pyisbn = callPackage ./python-modules/pyisbn { }; + # pyisbn = callPackage ./python-modules/pyisbn { }; -# pyjet = callPackage ./python-modules/pyjet { }; + # pyjet = callPackage ./python-modules/pyjet { }; -# pyjks = callPackage ./python-modules/pyjks { }; + # pyjks = callPackage ./python-modules/pyjks { }; -# pyjnius = callPackage ./python-modules/pyjnius { }; + # pyjnius = callPackage ./python-modules/pyjnius { }; -# pyjsparser = callPackage ./python-modules/pyjsparser { }; + # pyjsparser = callPackage ./python-modules/pyjsparser { }; -# pyjwkest = callPackage ./python-modules/pyjwkest { }; + # pyjwkest = callPackage ./python-modules/pyjwkest { }; -# pyjwt = callPackage ./python-modules/pyjwt { }; + # pyjwt = callPackage ./python-modules/pyjwt { }; -# pykakasi = callPackage ./python-modules/pykakasi { }; + # pykakasi = callPackage ./python-modules/pykakasi { }; -# pykaleidescape = callPackage ./python-modules/pykaleidescape { }; + # pykaleidescape = callPackage ./python-modules/pykaleidescape { }; -# pykalman = callPackage ./python-modules/pykalman { }; + # pykalman = callPackage ./python-modules/pykalman { }; -# pykdl = callPackage ./python-modules/pykdl { }; + # pykdl = callPackage ./python-modules/pykdl { }; -# pykdtree = callPackage ./python-modules/pykdtree { -# inherit (pkgs.llvmPackages) openmp; -# }; + # pykdtree = callPackage ./python-modules/pykdtree { + # inherit (pkgs.llvmPackages) openmp; + # }; -# pykeepass = callPackage ./python-modules/pykeepass { }; + # pykeepass = callPackage ./python-modules/pykeepass { }; -# pykerberos = callPackage ./python-modules/pykerberos { }; + # pykerberos = callPackage ./python-modules/pykerberos { }; -# pykeyatome = callPackage ./python-modules/pykeyatome { }; + # pykeyatome = callPackage ./python-modules/pykeyatome { }; -# pykira = callPackage ./python-modules/pykira { }; + # pykira = callPackage ./python-modules/pykira { }; -# pykka = callPackage ./python-modules/pykka { }; + # pykka = callPackage ./python-modules/pykka { }; -# pykmtronic = callPackage ./python-modules/pykmtronic { }; + # pykmtronic = callPackage ./python-modules/pykmtronic { }; -# pykodi = callPackage ./python-modules/pykodi { }; + # pykodi = callPackage ./python-modules/pykodi { }; -# pykoplenti = callPackage ./python-modules/pykoplenti { }; + # pykoplenti = callPackage ./python-modules/pykoplenti { }; -# pykostalpiko = callPackage ./python-modules/pykostalpiko { }; + # pykostalpiko = callPackage ./python-modules/pykostalpiko { }; -# pykulersky = callPackage ./python-modules/pykulersky { }; + # pykulersky = callPackage ./python-modules/pykulersky { }; -# pykwalify = callPackage ./python-modules/pykwalify { }; + # pykwalify = callPackage ./python-modules/pykwalify { }; -# pykwb = callPackage ./python-modules/pykwb { }; + # pykwb = callPackage ./python-modules/pykwb { }; -# pylacrosse = callPackage ./python-modules/pylacrosse { }; + # pylacrosse = callPackage ./python-modules/pylacrosse { }; -# pylacus = callPackage ./python-modules/pylacus { }; + # pylacus = callPackage ./python-modules/pylacus { }; -# pylama = callPackage ./python-modules/pylama { }; + # pylama = callPackage ./python-modules/pylama { }; -# pylast = callPackage ./python-modules/pylast { }; + # pylast = callPackage ./python-modules/pylast { }; -# pylatex = callPackage ./python-modules/pylatex { }; + # pylatex = callPackage ./python-modules/pylatex { }; -# pylatexenc = callPackage ./python-modules/pylatexenc { }; + # pylatexenc = callPackage ./python-modules/pylatexenc { }; -# pylaunches = callPackage ./python-modules/pylaunches { }; + # pylaunches = callPackage ./python-modules/pylaunches { }; -# pyld = callPackage ./python-modules/pyld { }; + # pyld = callPackage ./python-modules/pyld { }; -# pyleri = callPackage ./python-modules/pyleri { }; + # pyleri = callPackage ./python-modules/pyleri { }; -# pylev = callPackage ./python-modules/pylev { }; + # pylev = callPackage ./python-modules/pylev { }; -# pylgnetcast = callPackage ./python-modules/pylgnetcast { }; + # pylgnetcast = callPackage ./python-modules/pylgnetcast { }; -# pylibacl = callPackage ./python-modules/pylibacl { }; + # pylibacl = callPackage ./python-modules/pylibacl { }; -# pylibconfig2 = callPackage ./python-modules/pylibconfig2 { }; + # pylibconfig2 = callPackage ./python-modules/pylibconfig2 { }; -# pylibdmtx = callPackage ./python-modules/pylibdmtx { }; + # pylibdmtx = callPackage ./python-modules/pylibdmtx { }; -# pylibftdi = callPackage ./python-modules/pylibftdi { -# inherit (pkgs) libusb1; -# }; + # pylibftdi = callPackage ./python-modules/pylibftdi { + # inherit (pkgs) libusb1; + # }; -# pylibjpeg = callPackage ./python-modules/pylibjpeg { }; + # pylibjpeg = callPackage ./python-modules/pylibjpeg { }; -# pylibjpeg-libjpeg = callPackage ./python-modules/pylibjpeg-libjpeg { }; + # pylibjpeg-libjpeg = callPackage ./python-modules/pylibjpeg-libjpeg { }; -# pyliblo = callPackage ./python-modules/pyliblo { }; + # pyliblo = callPackage ./python-modules/pyliblo { }; -# pylibmc = callPackage ./python-modules/pylibmc { }; + # pylibmc = callPackage ./python-modules/pylibmc { }; -# pylink-square = callPackage ./python-modules/pylink-square { }; + # pylink-square = callPackage ./python-modules/pylink-square { }; -# pylint = callPackage ./python-modules/pylint { }; + # pylint = callPackage ./python-modules/pylint { }; -# pylint-celery = callPackage ./python-modules/pylint-celery { }; + # pylint-celery = callPackage ./python-modules/pylint-celery { }; -# pylint-django = callPackage ./python-modules/pylint-django { }; + # pylint-django = callPackage ./python-modules/pylint-django { }; -# pylint-flask = callPackage ./python-modules/pylint-flask { }; + # pylint-flask = callPackage ./python-modules/pylint-flask { }; -# pylint-plugin-utils = callPackage ./python-modules/pylint-plugin-utils { }; + # pylint-plugin-utils = callPackage ./python-modules/pylint-plugin-utils { }; -# pylint-venv = callPackage ./python-modules/pylint-venv { }; + # pylint-venv = callPackage ./python-modules/pylint-venv { }; -# pylion = callPackage ./python-modules/pylion { }; + # pylion = callPackage ./python-modules/pylion { }; -# pylitterbot = callPackage ./python-modules/pylitterbot { }; + # pylitterbot = callPackage ./python-modules/pylitterbot { }; -# py-libzfs = callPackage ./python-modules/py-libzfs { }; + # py-libzfs = callPackage ./python-modules/py-libzfs { }; -# py-lru-cache = callPackage ./python-modules/py-lru-cache { }; + # py-lru-cache = callPackage ./python-modules/py-lru-cache { }; -# pylnk3 = callPackage ./python-modules/pylnk3 { }; + # pylnk3 = callPackage ./python-modules/pylnk3 { }; -# pylru = callPackage ./python-modules/pylru { }; + # pylru = callPackage ./python-modules/pylru { }; -# pylsqpack = callPackage ./python-modules/pylsqpack { }; + # pylsqpack = callPackage ./python-modules/pylsqpack { }; -# pyls-flake8 = callPackage ./python-modules/pyls-flake8 { }; + # pyls-flake8 = callPackage ./python-modules/pyls-flake8 { }; -# pyls-isort = callPackage ./python-modules/pyls-isort { }; + # pyls-isort = callPackage ./python-modules/pyls-isort { }; -# pyls-memestra = callPackage ./python-modules/pyls-memestra { }; + # pyls-memestra = callPackage ./python-modules/pyls-memestra { }; -# pyls-spyder = callPackage ./python-modules/pyls-spyder { }; + # pyls-spyder = callPackage ./python-modules/pyls-spyder { }; -# pylsp-mypy = callPackage ./python-modules/pylsp-mypy { }; + # pylsp-mypy = callPackage ./python-modules/pylsp-mypy { }; -# pylsp-rope = callPackage ./python-modules/pylsp-rope { }; + # pylsp-rope = callPackage ./python-modules/pylsp-rope { }; -# pylpsd = callPackage ./python-modules/pylpsd { }; + # pylpsd = callPackage ./python-modules/pylpsd { }; -# pylti = callPackage ./python-modules/pylti { }; + # pylti = callPackage ./python-modules/pylti { }; -# pylutron = callPackage ./python-modules/pylutron { }; + # pylutron = callPackage ./python-modules/pylutron { }; -# pylutron-caseta = callPackage ./python-modules/pylutron-caseta { }; + # pylutron-caseta = callPackage ./python-modules/pylutron-caseta { }; -# pylyrics = callPackage ./python-modules/pylyrics { }; + # pylyrics = callPackage ./python-modules/pylyrics { }; -# pylxd = callPackage ./python-modules/pylxd { }; + # pylxd = callPackage ./python-modules/pylxd { }; -# pylzma = callPackage ./python-modules/pylzma { }; + # pylzma = callPackage ./python-modules/pylzma { }; -# pymacaroons = callPackage ./python-modules/pymacaroons { }; + # pymacaroons = callPackage ./python-modules/pymacaroons { }; -# pymailgunner = callPackage ./python-modules/pymailgunner { }; + # pymailgunner = callPackage ./python-modules/pymailgunner { }; -# pymanopt = callPackage ./python-modules/pymanopt { }; + # pymanopt = callPackage ./python-modules/pymanopt { }; -# pymarshal = callPackage ./python-modules/pymarshal { }; + # pymarshal = callPackage ./python-modules/pymarshal { }; -# pymata-express = callPackage ./python-modules/pymata-express { }; + # pymata-express = callPackage ./python-modules/pymata-express { }; -# pymatgen = callPackage ./python-modules/pymatgen { }; + # pymatgen = callPackage ./python-modules/pymatgen { }; -# pymatreader = callPackage ./python-modules/pymatreader { }; + # pymatreader = callPackage ./python-modules/pymatreader { }; -# pymatting = callPackage ./python-modules/pymatting { }; + # pymatting = callPackage ./python-modules/pymatting { }; -# pymaven-patch = callPackage ./python-modules/pymaven-patch { }; + # pymaven-patch = callPackage ./python-modules/pymaven-patch { }; -# pymavlink = callPackage ./python-modules/pymavlink { }; + # pymavlink = callPackage ./python-modules/pymavlink { }; -# pymbolic = callPackage ./python-modules/pymbolic { }; + # pymbolic = callPackage ./python-modules/pymbolic { }; -# pymc = callPackage ./python-modules/pymc { }; + # pymc = callPackage ./python-modules/pymc { }; -# pymdstat = callPackage ./python-modules/pymdstat { }; + # pymdstat = callPackage ./python-modules/pymdstat { }; -# pymdown-extensions = callPackage ./python-modules/pymdown-extensions { }; + # pymdown-extensions = callPackage ./python-modules/pymdown-extensions { }; -# pymediainfo = callPackage ./python-modules/pymediainfo { }; + # pymediainfo = callPackage ./python-modules/pymediainfo { }; -# pymediaroom = callPackage ./python-modules/pymediaroom { }; + # pymediaroom = callPackage ./python-modules/pymediaroom { }; -# pymedio = callPackage ./python-modules/pymedio { }; + # pymedio = callPackage ./python-modules/pymedio { }; -# pymeeus = callPackage ./python-modules/pymeeus { }; + # pymeeus = callPackage ./python-modules/pymeeus { }; -# pymelcloud = callPackage ./python-modules/pymelcloud { }; + # pymelcloud = callPackage ./python-modules/pymelcloud { }; -# pymemcache = callPackage ./python-modules/pymemcache { }; + # pymemcache = callPackage ./python-modules/pymemcache { }; -# pymemoize = callPackage ./python-modules/pymemoize { }; + # pymemoize = callPackage ./python-modules/pymemoize { }; -# pyment = callPackage ./python-modules/pyment { }; + # pyment = callPackage ./python-modules/pyment { }; -# pymetar = callPackage ./python-modules/pymetar { }; + # pymetar = callPackage ./python-modules/pymetar { }; -# pymeteireann = callPackage ./python-modules/pymeteireann { }; + # pymeteireann = callPackage ./python-modules/pymeteireann { }; -# pymeteoclimatic = callPackage ./python-modules/pymeteoclimatic { }; + # pymeteoclimatic = callPackage ./python-modules/pymeteoclimatic { }; -# pymetno = callPackage ./python-modules/pymetno { }; + # pymetno = callPackage ./python-modules/pymetno { }; -# pymicrobot = callPackage ./python-modules/pymicrobot { }; + # pymicrobot = callPackage ./python-modules/pymicrobot { }; -# pymiele = callPackage ./python-modules/pymiele { }; + # pymiele = callPackage ./python-modules/pymiele { }; -# pymilter = callPackage ./python-modules/pymilter { }; + # pymilter = callPackage ./python-modules/pymilter { }; -# pymilvus = callPackage ./python-modules/pymilvus { }; + # pymilvus = callPackage ./python-modules/pymilvus { }; -# pymitv = callPackage ./python-modules/pymitv { }; + # pymitv = callPackage ./python-modules/pymitv { }; -# pymfy = callPackage ./python-modules/pymfy { }; + # pymfy = callPackage ./python-modules/pymfy { }; -# pymodbus = callPackage ./python-modules/pymodbus { }; + # pymodbus = callPackage ./python-modules/pymodbus { }; -# pymongo = callPackage ./python-modules/pymongo { }; + # pymongo = callPackage ./python-modules/pymongo { }; -# pymongo-inmemory = callPackage ./python-modules/pymongo-inmemory { }; + # pymongo-inmemory = callPackage ./python-modules/pymongo-inmemory { }; -# pymoo = callPackage ./python-modules/pymoo { }; + # pymoo = callPackage ./python-modules/pymoo { }; -# pymorphy2 = callPackage ./python-modules/pymorphy2 { }; + # pymorphy2 = callPackage ./python-modules/pymorphy2 { }; -# pymorphy2-dicts-ru = callPackage ./python-modules/pymorphy2/dicts-ru.nix { }; + # pymorphy2-dicts-ru = callPackage ./python-modules/pymorphy2/dicts-ru.nix { }; -# pymorphy3 = callPackage ./python-modules/pymorphy3 { }; + # pymorphy3 = callPackage ./python-modules/pymorphy3 { }; -# pymorphy3-dicts-ru = callPackage ./python-modules/pymorphy3/dicts-ru.nix { }; + # pymorphy3-dicts-ru = callPackage ./python-modules/pymorphy3/dicts-ru.nix { }; -# pymorphy3-dicts-uk = callPackage ./python-modules/pymorphy3/dicts-uk.nix { }; + # pymorphy3-dicts-uk = callPackage ./python-modules/pymorphy3/dicts-uk.nix { }; -# pympler = callPackage ./python-modules/pympler { }; + # pympler = callPackage ./python-modules/pympler { }; -# pymsgbox = callPackage ./python-modules/pymsgbox { }; + # pymsgbox = callPackage ./python-modules/pymsgbox { }; -# pymsteams = callPackage ./python-modules/pymsteams { }; + # pymsteams = callPackage ./python-modules/pymsteams { }; -# py-multiaddr = callPackage ./python-modules/py-multiaddr { }; + # py-multiaddr = callPackage ./python-modules/py-multiaddr { }; -# py-multibase = callPackage ./python-modules/py-multibase { }; + # py-multibase = callPackage ./python-modules/py-multibase { }; -# py-multicodec = callPackage ./python-modules/py-multicodec { }; + # py-multicodec = callPackage ./python-modules/py-multicodec { }; -# py-multihash = callPackage ./python-modules/py-multihash { }; + # py-multihash = callPackage ./python-modules/py-multihash { }; -# pymumble = callPackage ./python-modules/pymumble { }; + # pymumble = callPackage ./python-modules/pymumble { }; -# pymunk = callPackage ./python-modules/pymunk { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; -# }; + # pymunk = callPackage ./python-modules/pymunk { + # inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; + # }; -# pymupdf = callPackage ./python-modules/pymupdf { }; + # pymupdf = callPackage ./python-modules/pymupdf { }; -# pymvglive = callPackage ./python-modules/pymvglive { }; + # pymvglive = callPackage ./python-modules/pymvglive { }; -# pymysensors = callPackage ./python-modules/pymysensors { }; + # pymysensors = callPackage ./python-modules/pymysensors { }; -# pymysql = callPackage ./python-modules/pymysql { }; + # pymysql = callPackage ./python-modules/pymysql { }; -# pymysqlsa = callPackage ./python-modules/pymysqlsa { }; + # pymysqlsa = callPackage ./python-modules/pymysqlsa { }; -# pymystem3 = callPackage ./python-modules/pymystem3 { }; + # pymystem3 = callPackage ./python-modules/pymystem3 { }; -# pynac = callPackage ./python-modules/pynac { }; + # pynac = callPackage ./python-modules/pynac { }; -# pynacl = callPackage ./python-modules/pynacl { }; + # pynacl = callPackage ./python-modules/pynacl { }; -# pynamecheap = callPackage ./python-modules/pynamecheap { }; + # pynamecheap = callPackage ./python-modules/pynamecheap { }; -# pynamodb = callPackage ./python-modules/pynamodb { }; + # pynamodb = callPackage ./python-modules/pynamodb { }; -# pynanoleaf = callPackage ./python-modules/pynanoleaf { }; + # pynanoleaf = callPackage ./python-modules/pynanoleaf { }; -# pync = callPackage ./python-modules/pync { -# inherit (pkgs) which; -# }; + # pync = callPackage ./python-modules/pync { + # inherit (pkgs) which; + # }; -# pynello = callPackage ./python-modules/pynello { }; + # pynello = callPackage ./python-modules/pynello { }; -# pynest2d = callPackage ./python-modules/pynest2d { }; + # pynest2d = callPackage ./python-modules/pynest2d { }; -# pynetbox = callPackage ./python-modules/pynetbox { }; + # pynetbox = callPackage ./python-modules/pynetbox { }; -# pynetdicom = callPackage ./python-modules/pynetdicom { }; + # pynetdicom = callPackage ./python-modules/pynetdicom { }; -# pynetgear = callPackage ./python-modules/pynetgear { }; + # pynetgear = callPackage ./python-modules/pynetgear { }; -# pynina = callPackage ./python-modules/pynina { }; + # pynina = callPackage ./python-modules/pynina { }; -# pynisher = callPackage ./python-modules/pynisher { }; + # pynisher = callPackage ./python-modules/pynisher { }; -# pynmea2 = callPackage ./python-modules/pynmea2 { }; + # pynmea2 = callPackage ./python-modules/pynmea2 { }; -# pynmeagps = callPackage ./python-modules/pynmeagps { }; + # pynmeagps = callPackage ./python-modules/pynmeagps { }; -# pynput = callPackage ./python-modules/pynput { }; + # pynput = callPackage ./python-modules/pynput { }; -# pynrrd = callPackage ./python-modules/pynrrd { }; + # pynrrd = callPackage ./python-modules/pynrrd { }; -# pynvim = callPackage ./python-modules/pynvim { }; + # pynvim = callPackage ./python-modules/pynvim { }; -# pynvim-pp = callPackage ./python-modules/pynvim-pp { }; + # pynvim-pp = callPackage ./python-modules/pynvim-pp { }; -# pynvml = callPackage ./python-modules/pynvml { }; + # pynvml = callPackage ./python-modules/pynvml { }; -# pynzb = callPackage ./python-modules/pynzb { }; + # pynzb = callPackage ./python-modules/pynzb { }; -# pyobihai = callPackage ./python-modules/pyobihai { }; + # pyobihai = callPackage ./python-modules/pyobihai { }; -# pyocd = callPackage ./python-modules/pyocd { }; + # pyocd = callPackage ./python-modules/pyocd { }; -# pyocd-pemicro = callPackage ./python-modules/pyocd-pemicro { }; + # pyocd-pemicro = callPackage ./python-modules/pyocd-pemicro { }; -# pyocr = callPackage ./python-modules/pyocr { -# tesseract = pkgs.tesseract4; -# }; + # pyocr = callPackage ./python-modules/pyocr { + # tesseract = pkgs.tesseract4; + # }; -# pyoctoprintapi = callPackage ./python-modules/pyoctoprintapi { }; + # pyoctoprintapi = callPackage ./python-modules/pyoctoprintapi { }; -# pyodbc = callPackage ./python-modules/pyodbc { }; + # pyodbc = callPackage ./python-modules/pyodbc { }; -# pyogg = callPackage ./python-modules/pyogg { }; + # pyogg = callPackage ./python-modules/pyogg { }; -# pyombi = callPackage ./python-modules/pyombi { }; + # pyombi = callPackage ./python-modules/pyombi { }; -# pyomo = callPackage ./python-modules/pyomo { }; + # pyomo = callPackage ./python-modules/pyomo { }; -# pypng = callPackage ./python-modules/pypng { }; + # pypng = callPackage ./python-modules/pypng { }; -# phonemizer = callPackage ./python-modules/phonemizer { }; + # phonemizer = callPackage ./python-modules/phonemizer { }; -# pyopencl = callPackage ./python-modules/pyopencl { -# mesa_drivers = pkgs.mesa.drivers; -# }; + # pyopencl = callPackage ./python-modules/pyopencl { + # mesa_drivers = pkgs.mesa.drivers; + # }; -# pyopengl = callPackage ./python-modules/pyopengl { }; + # pyopengl = callPackage ./python-modules/pyopengl { }; -# pyopengl-accelerate = callPackage ./python-modules/pyopengl-accelerate { }; + # pyopengl-accelerate = callPackage ./python-modules/pyopengl-accelerate { }; -# pyopenssl = callPackage ./python-modules/pyopenssl { }; + # pyopenssl = callPackage ./python-modules/pyopenssl { }; -# pyopenuv = callPackage ./python-modules/pyopenuv { }; + # pyopenuv = callPackage ./python-modules/pyopenuv { }; -# pyopnsense = callPackage ./python-modules/pyopnsense { }; + # pyopnsense = callPackage ./python-modules/pyopnsense { }; -# pyoppleio = callPackage ./python-modules/pyoppleio { }; + # pyoppleio = callPackage ./python-modules/pyoppleio { }; -# pyosf = callPackage ./python-modules/pyosf { }; + # pyosf = callPackage ./python-modules/pyosf { }; -# pyosmium = callPackage ./python-modules/pyosmium { -# inherit (pkgs) lz4; -# }; + # pyosmium = callPackage ./python-modules/pyosmium { + # inherit (pkgs) lz4; + # }; -# pyosohotwaterapi = callPackage ./python-modules/pyosohotwaterapi { }; + # pyosohotwaterapi = callPackage ./python-modules/pyosohotwaterapi { }; -# pyotgw = callPackage ./python-modules/pyotgw { }; + # pyotgw = callPackage ./python-modules/pyotgw { }; -# pyotp = callPackage ./python-modules/pyotp { }; + # pyotp = callPackage ./python-modules/pyotp { }; -# pyowm = callPackage ./python-modules/pyowm { }; + # pyowm = callPackage ./python-modules/pyowm { }; -# pypamtest = toPythonModule (pkgs.libpam-wrapper.override { -# enablePython = true; -# inherit python; -# }); + # pypamtest = toPythonModule (pkgs.libpam-wrapper.override { + # enablePython = true; + # inherit python; + # }); -# pypandoc = callPackage ./python-modules/pypandoc { }; + # pypandoc = callPackage ./python-modules/pypandoc { }; -# pyparser = callPackage ./python-modules/pyparser { }; + # pyparser = callPackage ./python-modules/pyparser { }; -# pyparsing = callPackage ./python-modules/pyparsing { }; + # pyparsing = callPackage ./python-modules/pyparsing { }; -# pyparted = callPackage ./python-modules/pyparted { }; + # pyparted = callPackage ./python-modules/pyparted { }; -# pypass = callPackage ./python-modules/pypass { }; + # pypass = callPackage ./python-modules/pypass { }; -# pypblib = callPackage ./python-modules/pypblib { }; + # pypblib = callPackage ./python-modules/pypblib { }; -# pypca = callPackage ./python-modules/pypca { }; + # pypca = callPackage ./python-modules/pypca { }; -# pypcap = callPackage ./python-modules/pypcap { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; + # pypcap = callPackage ./python-modules/pypcap { + # inherit (pkgs) libpcap; # Avoid confusion with python package of the same name + # }; -# pypck = callPackage ./python-modules/pypck { }; + # pypck = callPackage ./python-modules/pypck { }; -# pypdf = callPackage ./python-modules/pypdf { }; + # pypdf = callPackage ./python-modules/pypdf { }; -# pypdf2 = callPackage ./python-modules/pypdf2 { }; + # pypdf2 = callPackage ./python-modules/pypdf2 { }; -# pypdf3 = callPackage ./python-modules/pypdf3 { }; + # pypdf3 = callPackage ./python-modules/pypdf3 { }; -# pypeg2 = callPackage ./python-modules/pypeg2 { }; + # pypeg2 = callPackage ./python-modules/pypeg2 { }; -# pyperclip = callPackage ./python-modules/pyperclip { }; + # pyperclip = callPackage ./python-modules/pyperclip { }; -# pyperscan = callPackage ./python-modules/pyperscan { }; + # pyperscan = callPackage ./python-modules/pyperscan { }; -# pyperf = callPackage ./python-modules/pyperf { }; + # pyperf = callPackage ./python-modules/pyperf { }; -# pyphen = callPackage ./python-modules/pyphen { }; + # pyphen = callPackage ./python-modules/pyphen { }; -# pyphotonfile = callPackage ./python-modules/pyphotonfile { }; + # pyphotonfile = callPackage ./python-modules/pyphotonfile { }; -# pypika = callPackage ./python-modules/pypika { }; + # pypika = callPackage ./python-modules/pypika { }; -# pypillowfight = callPackage ./python-modules/pypillowfight { }; + # pypillowfight = callPackage ./python-modules/pypillowfight { }; -# pypinyin = callPackage ./python-modules/pypinyin { }; + # pypinyin = callPackage ./python-modules/pypinyin { }; -# pypiserver = callPackage ./python-modules/pypiserver { }; + # pypiserver = callPackage ./python-modules/pypiserver { }; -# pypitoken = callPackage ./python-modules/pypitoken { }; + # pypitoken = callPackage ./python-modules/pypitoken { }; -# pyplaato = callPackage ./python-modules/pyplaato { }; + # pyplaato = callPackage ./python-modules/pyplaato { }; -# pyplatec = callPackage ./python-modules/pyplatec { }; + # pyplatec = callPackage ./python-modules/pyplatec { }; -# pyppeteer = callPackage ./python-modules/pyppeteer { }; + # pyppeteer = callPackage ./python-modules/pyppeteer { }; -# pypresence = callPackage ./python-modules/pypresence { }; + # pypresence = callPackage ./python-modules/pypresence { }; -# pyprind = callPackage ./python-modules/pyprind { }; + # pyprind = callPackage ./python-modules/pyprind { }; -# pyprof2calltree = callPackage ./python-modules/pyprof2calltree { }; + # pyprof2calltree = callPackage ./python-modules/pyprof2calltree { }; -# pyproj = callPackage ./python-modules/pyproj { }; + # pyproj = callPackage ./python-modules/pyproj { }; -# pyproject-metadata = callPackage ./python-modules/pyproject-metadata { }; + # pyproject-metadata = callPackage ./python-modules/pyproject-metadata { }; -# pyprosegur = callPackage ./python-modules/pyprosegur { }; + # pyprosegur = callPackage ./python-modules/pyprosegur { }; -# pyprusalink = callPackage ./python-modules/pyprusalink { }; + # pyprusalink = callPackage ./python-modules/pyprusalink { }; -# pyptlib = callPackage ./python-modules/pyptlib { }; + # pyptlib = callPackage ./python-modules/pyptlib { }; -# pypubsub = callPackage ./python-modules/pypubsub { }; + # pypubsub = callPackage ./python-modules/pypubsub { }; -# pypugjs = callPackage ./python-modules/pypugjs { }; + # pypugjs = callPackage ./python-modules/pypugjs { }; -# pypykatz = callPackage ./python-modules/pypykatz { }; + # pypykatz = callPackage ./python-modules/pypykatz { }; -# pypytools = callPackage ./python-modules/pypytools { }; + # pypytools = callPackage ./python-modules/pypytools { }; -# pyqldb = callPackage ./python-modules/pyqldb { }; + # pyqldb = callPackage ./python-modules/pyqldb { }; -# pyqrcode = callPackage ./python-modules/pyqrcode { }; + # pyqrcode = callPackage ./python-modules/pyqrcode { }; -# pyqt-builder = callPackage ./python-modules/pyqt-builder { }; + # pyqt-builder = callPackage ./python-modules/pyqt-builder { }; -# pyqt5 = callPackage ./python-modules/pyqt/5.x.nix { }; + # pyqt5 = callPackage ./python-modules/pyqt/5.x.nix { }; -# pyqt5-stubs = callPackage ./python-modules/pyqt5-stubs { }; + # pyqt5-stubs = callPackage ./python-modules/pyqt5-stubs { }; -# pyqt5-sip = callPackage ./python-modules/pyqt/sip.nix { }; + # pyqt5-sip = callPackage ./python-modules/pyqt/sip.nix { }; -# pyqt5-multimedia = self.pyqt5.override { -# withMultimedia = true; -# }; + # pyqt5-multimedia = self.pyqt5.override { + # withMultimedia = true; + # }; -# /* -# `pyqt5-webkit` should not be used by python libraries in -# pkgs/development/python-modules/*. Putting this attribute in -# `propagatedBuildInputs` may cause collisions. -# */ -# pyqt5-webkit = self.pyqt5.override { -# withWebKit = true; -# }; + # /* + # `pyqt5-webkit` should not be used by python libraries in + # pkgs/development/python-modules/*. Putting this attribute in + # `propagatedBuildInputs` may cause collisions. + # */ + # pyqt5-webkit = self.pyqt5.override { + # withWebKit = true; + # }; -# pyqt6 = callPackage ./python-modules/pyqt/6.x.nix { }; + # pyqt6 = callPackage ./python-modules/pyqt/6.x.nix { }; -# pyqt6-charts = callPackage ./python-modules/pyqt6-charts { }; + # pyqt6-charts = callPackage ./python-modules/pyqt6-charts { }; -# pyqt6-sip = callPackage ./python-modules/pyqt/pyqt6-sip.nix { }; + # pyqt6-sip = callPackage ./python-modules/pyqt/pyqt6-sip.nix { }; -# pyqt6-webengine = callPackage ./python-modules/pyqt6-webengine { }; + # pyqt6-webengine = callPackage ./python-modules/pyqt6-webengine { }; -# pyqt3d = pkgs.libsForQt5.callPackage ./python-modules/pyqt3d { -# inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder -# setuptools sip; -# }; + # pyqt3d = pkgs.libsForQt5.callPackage ./python-modules/pyqt3d { + # inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder + # setuptools sip; + # }; -# pyqtchart = pkgs.libsForQt5.callPackage ./python-modules/pyqtchart { -# inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder -# setuptools sip; -# }; + # pyqtchart = pkgs.libsForQt5.callPackage ./python-modules/pyqtchart { + # inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder + # setuptools sip; + # }; -# pyqtdarktheme = callPackage ./python-modules/pyqtdarktheme { }; + # pyqtdarktheme = callPackage ./python-modules/pyqtdarktheme { }; -# pyqtdatavisualization = pkgs.libsForQt5.callPackage ./python-modules/pyqtdatavisualization { -# inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder -# setuptools sip; -# }; + # pyqtdatavisualization = pkgs.libsForQt5.callPackage ./python-modules/pyqtdatavisualization { + # inherit (self) buildPythonPackage pyqt5 pyqt-builder python pythonOlder + # setuptools sip; + # }; -# pyqtgraph = callPackage ./python-modules/pyqtgraph { }; + # pyqtgraph = callPackage ./python-modules/pyqtgraph { }; -# pyqtwebengine = pkgs.libsForQt5.callPackage ./python-modules/pyqtwebengine { -# pythonPackages = self; -# }; + # pyqtwebengine = pkgs.libsForQt5.callPackage ./python-modules/pyqtwebengine { + # pythonPackages = self; + # }; -# pyquery = callPackage ./python-modules/pyquery { }; + # pyquery = callPackage ./python-modules/pyquery { }; -# pyquaternion = callPackage ./python-modules/pyquaternion { }; + # pyquaternion = callPackage ./python-modules/pyquaternion { }; -# pyquil = callPackage ./python-modules/pyquil { }; + # pyquil = callPackage ./python-modules/pyquil { }; -# pyqvrpro = callPackage ./python-modules/pyqvrpro { }; + # pyqvrpro = callPackage ./python-modules/pyqvrpro { }; -# pyqwikswitch = callPackage ./python-modules/pyqwikswitch { }; + # pyqwikswitch = callPackage ./python-modules/pyqwikswitch { }; -# pyrabbit2 = callPackage ./python-modules/pyrabbit2 { }; + # pyrabbit2 = callPackage ./python-modules/pyrabbit2 { }; -# pyrad = callPackage ./python-modules/pyrad { }; + # pyrad = callPackage ./python-modules/pyrad { }; -# pyradiomics = callPackage ./python-modules/pyradiomics { }; + # pyradiomics = callPackage ./python-modules/pyradiomics { }; -# pyradios = callPackage ./python-modules/pyradios { }; + # pyradios = callPackage ./python-modules/pyradios { }; -# pyrainbird = callPackage ./python-modules/pyrainbird { }; + # pyrainbird = callPackage ./python-modules/pyrainbird { }; -# pyramid-beaker = callPackage ./python-modules/pyramid-beaker { }; + # pyramid-beaker = callPackage ./python-modules/pyramid-beaker { }; -# pyramid = callPackage ./python-modules/pyramid { }; + # pyramid = callPackage ./python-modules/pyramid { }; -# pyramid-chameleon = callPackage ./python-modules/pyramid-chameleon { }; + # pyramid-chameleon = callPackage ./python-modules/pyramid-chameleon { }; -# pyramid-exclog = callPackage ./python-modules/pyramid-exclog { }; + # pyramid-exclog = callPackage ./python-modules/pyramid-exclog { }; -# pyramid-jinja2 = callPackage ./python-modules/pyramid-jinja2 { }; + # pyramid-jinja2 = callPackage ./python-modules/pyramid-jinja2 { }; -# pyramid-mako = callPackage ./python-modules/pyramid-mako { }; + # pyramid-mako = callPackage ./python-modules/pyramid-mako { }; -# pyramid-multiauth = callPackage ./python-modules/pyramid-multiauth { }; + # pyramid-multiauth = callPackage ./python-modules/pyramid-multiauth { }; -# pyrate-limiter = callPackage ./python-modules/pyrate-limiter { }; + # pyrate-limiter = callPackage ./python-modules/pyrate-limiter { }; -# pyreaderwriterlock = callPackage ./python-modules/pyreaderwriterlock { }; + # pyreaderwriterlock = callPackage ./python-modules/pyreaderwriterlock { }; -# pyreadstat = callPackage ./python-modules/pyreadstat { -# inherit (pkgs.darwin) libiconv; -# }; + # pyreadstat = callPackage ./python-modules/pyreadstat { + # inherit (pkgs.darwin) libiconv; + # }; -# pyrealsense2 = toPythonModule (pkgs.librealsense.override { -# enablePython = true; -# pythonPackages = self; -# }); + # pyrealsense2 = toPythonModule (pkgs.librealsense.override { + # enablePython = true; + # pythonPackages = self; + # }); -# pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override { -# cudaSupport = true; -# enablePython = true; -# pythonPackages = self; -# }); + # pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override { + # cudaSupport = true; + # enablePython = true; + # pythonPackages = self; + # }); -# pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override { -# enablePython = true; -# pythonPackages = self; -# }); + # pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override { + # enablePython = true; + # pythonPackages = self; + # }); -# pyrect = callPackage ./python-modules/pyrect { }; + # pyrect = callPackage ./python-modules/pyrect { }; -# pyregion = callPackage ./python-modules/pyregion { }; + # pyregion = callPackage ./python-modules/pyregion { }; -# pyric = callPackage ./python-modules/pyric { }; + # pyric = callPackage ./python-modules/pyric { }; -# pyring-buffer = callPackage ./python-modules/pyring-buffer { }; + # pyring-buffer = callPackage ./python-modules/pyring-buffer { }; -# pyrisco = callPackage ./python-modules/pyrisco { }; + # pyrisco = callPackage ./python-modules/pyrisco { }; -# pyrituals = callPackage ./python-modules/pyrituals { }; + # pyrituals = callPackage ./python-modules/pyrituals { }; -# pyrfc3339 = callPackage ./python-modules/pyrfc3339 { }; + # pyrfc3339 = callPackage ./python-modules/pyrfc3339 { }; -# pyrmvtransport = callPackage ./python-modules/pyrmvtransport { }; + # pyrmvtransport = callPackage ./python-modules/pyrmvtransport { }; -# pyro4 = callPackage ./python-modules/pyro4 { }; + # pyro4 = callPackage ./python-modules/pyro4 { }; -# pyro5 = callPackage ./python-modules/pyro5 { }; + # pyro5 = callPackage ./python-modules/pyro5 { }; -# pyroma = callPackage ./python-modules/pyroma { }; + # pyroma = callPackage ./python-modules/pyroma { }; -# pyro-api = callPackage ./python-modules/pyro-api { }; + # pyro-api = callPackage ./python-modules/pyro-api { }; -# pyro-ppl = callPackage ./python-modules/pyro-ppl { }; + # pyro-ppl = callPackage ./python-modules/pyro-ppl { }; -# pyroute2 = callPackage ./python-modules/pyroute2 { }; + # pyroute2 = callPackage ./python-modules/pyroute2 { }; -# pyrr = callPackage ./python-modules/pyrr { }; + # pyrr = callPackage ./python-modules/pyrr { }; -# pyrsistent = callPackage ./python-modules/pyrsistent { }; + # pyrsistent = callPackage ./python-modules/pyrsistent { }; -# pyrss2gen = callPackage ./python-modules/pyrss2gen { }; + # pyrss2gen = callPackage ./python-modules/pyrss2gen { }; -# pyrtlsdr = callPackage ./python-modules/pyrtlsdr { }; + # pyrtlsdr = callPackage ./python-modules/pyrtlsdr { }; -# pysaj = callPackage ./python-modules/pysaj { }; + # pysaj = callPackage ./python-modules/pysaj { }; -# pysam = callPackage ./python-modules/pysam { }; + # pysam = callPackage ./python-modules/pysam { }; -# pysaml2 = callPackage ./python-modules/pysaml2 { -# inherit (pkgs) xmlsec; -# }; + # pysaml2 = callPackage ./python-modules/pysaml2 { + # inherit (pkgs) xmlsec; + # }; -# pysatochip = callPackage ./python-modules/pysatochip { }; + # pysatochip = callPackage ./python-modules/pysatochip { }; -# pysc2 = callPackage ./python-modules/pysc2 { }; + # pysc2 = callPackage ./python-modules/pysc2 { }; -# pyscard = callPackage ./python-modules/pyscard { -# inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; -# }; + # pyscard = callPackage ./python-modules/pyscard { + # inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; + # }; -# pyscaffold = callPackage ./python-modules/pyscaffold { }; + # pyscaffold = callPackage ./python-modules/pyscaffold { }; -# pyscaffoldext-cookiecutter = callPackage ./python-modules/pyscaffoldext-cookiecutter { }; + # pyscaffoldext-cookiecutter = callPackage ./python-modules/pyscaffoldext-cookiecutter { }; -# pyscaffoldext-custom-extension = callPackage ./python-modules/pyscaffoldext-custom-extension { }; + # pyscaffoldext-custom-extension = callPackage ./python-modules/pyscaffoldext-custom-extension { }; -# pyscaffoldext-django = callPackage ./python-modules/pyscaffoldext-django { }; + # pyscaffoldext-django = callPackage ./python-modules/pyscaffoldext-django { }; -# pyscaffoldext-dsproject = callPackage ./python-modules/pyscaffoldext-dsproject { }; + # pyscaffoldext-dsproject = callPackage ./python-modules/pyscaffoldext-dsproject { }; -# pyscaffoldext-markdown = callPackage ./python-modules/pyscaffoldext-markdown { }; + # pyscaffoldext-markdown = callPackage ./python-modules/pyscaffoldext-markdown { }; -# pyscaffoldext-travis = callPackage ./python-modules/pyscaffoldext-travis { }; + # pyscaffoldext-travis = callPackage ./python-modules/pyscaffoldext-travis { }; -# pyscf = callPackage ./python-modules/pyscf { }; + # pyscf = callPackage ./python-modules/pyscf { }; -# pyschedule = callPackage ./python-modules/pyschedule { }; + # pyschedule = callPackage ./python-modules/pyschedule { }; -# pyscreenshot = callPackage ./python-modules/pyscreenshot { }; + # pyscreenshot = callPackage ./python-modules/pyscreenshot { }; -# pyscreeze = callPackage ./python-modules/pyscreeze { }; + # pyscreeze = callPackage ./python-modules/pyscreeze { }; -# py-scrypt = callPackage ./python-modules/py-scrypt { }; + # py-scrypt = callPackage ./python-modules/py-scrypt { }; -# pyscrypt = callPackage ./python-modules/pyscrypt { }; + # pyscrypt = callPackage ./python-modules/pyscrypt { }; -# pyscss = callPackage ./python-modules/pyscss { }; + # pyscss = callPackage ./python-modules/pyscss { }; -# pysdcp = callPackage ./python-modules/pysdcp { }; + # pysdcp = callPackage ./python-modules/pysdcp { }; -# pysdl2 = callPackage ./python-modules/pysdl2 { }; + # pysdl2 = callPackage ./python-modules/pysdl2 { }; -# pysearpc = toPythonModule (pkgs.libsearpc.override { -# python3 = self.python; -# }); + # pysearpc = toPythonModule (pkgs.libsearpc.override { + # python3 = self.python; + # }); -# pysecuritas = callPackage ./python-modules/pysecuritas { }; + # pysecuritas = callPackage ./python-modules/pysecuritas { }; -# pysendfile = callPackage ./python-modules/pysendfile { }; + # pysendfile = callPackage ./python-modules/pysendfile { }; -# pysensibo = callPackage ./python-modules/pysensibo { }; + # pysensibo = callPackage ./python-modules/pysensibo { }; -# pysensors = callPackage ./python-modules/pysensors { }; + # pysensors = callPackage ./python-modules/pysensors { }; -# pyserial-asyncio = callPackage ./python-modules/pyserial-asyncio { }; + # pyserial-asyncio = callPackage ./python-modules/pyserial-asyncio { }; -# pyserial-asyncio-fast = callPackage ./python-modules/pyserial-asyncio-fast { }; + # pyserial-asyncio-fast = callPackage ./python-modules/pyserial-asyncio-fast { }; -# pyserial = callPackage ./python-modules/pyserial { }; + # pyserial = callPackage ./python-modules/pyserial { }; -# pysftp = callPackage ./python-modules/pysftp { }; + # pysftp = callPackage ./python-modules/pysftp { }; -# pyshp = callPackage ./python-modules/pyshp { }; + # pyshp = callPackage ./python-modules/pyshp { }; -# pyside2-tools = toPythonModule (callPackage ./python-modules/pyside2-tools { -# inherit (pkgs) cmake qt5; -# }); + # pyside2-tools = toPythonModule (callPackage ./python-modules/pyside2-tools { + # inherit (pkgs) cmake qt5; + # }); -# pyside2 = toPythonModule (callPackage ./python-modules/pyside2 { -# inherit (pkgs) cmake ninja qt5; -# }); + # pyside2 = toPythonModule (callPackage ./python-modules/pyside2 { + # inherit (pkgs) cmake ninja qt5; + # }); -# pyside6 = toPythonModule (callPackage ./python-modules/pyside6 { -# inherit (pkgs) cmake ninja; -# }); + # pyside6 = toPythonModule (callPackage ./python-modules/pyside6 { + # inherit (pkgs) cmake ninja; + # }); -# pysigma = callPackage ./python-modules/pysigma { }; + # pysigma = callPackage ./python-modules/pysigma { }; -# pysigma-backend-elasticsearch = callPackage ./python-modules/pysigma-backend-elasticsearch { }; + # pysigma-backend-elasticsearch = callPackage ./python-modules/pysigma-backend-elasticsearch { }; -# pysigma-backend-opensearch = callPackage ./python-modules/pysigma-backend-opensearch { }; + # pysigma-backend-opensearch = callPackage ./python-modules/pysigma-backend-opensearch { }; -# pysigma-backend-qradar = callPackage ./python-modules/pysigma-backend-qradar { }; + # pysigma-backend-qradar = callPackage ./python-modules/pysigma-backend-qradar { }; -# pysigma-backend-splunk = callPackage ./python-modules/pysigma-backend-splunk { }; + # pysigma-backend-splunk = callPackage ./python-modules/pysigma-backend-splunk { }; -# pysigma-backend-sqlite = callPackage ./python-modules/pysigma-backend-sqlite { }; + # pysigma-backend-sqlite = callPackage ./python-modules/pysigma-backend-sqlite { }; -# pysigma-backend-insightidr = callPackage ./python-modules/pysigma-backend-insightidr { }; + # pysigma-backend-insightidr = callPackage ./python-modules/pysigma-backend-insightidr { }; -# pysigma-pipeline-crowdstrike = callPackage ./python-modules/pysigma-pipeline-crowdstrike { }; + # pysigma-pipeline-crowdstrike = callPackage ./python-modules/pysigma-pipeline-crowdstrike { }; -# pysigma-pipeline-sysmon = callPackage ./python-modules/pysigma-pipeline-sysmon { }; + # pysigma-pipeline-sysmon = callPackage ./python-modules/pysigma-pipeline-sysmon { }; -# pysigma-pipeline-windows = callPackage ./python-modules/pysigma-pipeline-windows { }; + # pysigma-pipeline-windows = callPackage ./python-modules/pysigma-pipeline-windows { }; -# pysignalclirestapi = callPackage ./python-modules/pysignalclirestapi { }; + # pysignalclirestapi = callPackage ./python-modules/pysignalclirestapi { }; -# pysigset = callPackage ./python-modules/pysigset { }; + # pysigset = callPackage ./python-modules/pysigset { }; -# pysim = callPackage ./python-modules/pysim { }; + # pysim = callPackage ./python-modules/pysim { }; -# pysimplegui = callPackage ./python-modules/pysimplegui { }; + # pysimplegui = callPackage ./python-modules/pysimplegui { }; -# pysingleton = callPackage ./python-modules/pysingleton { }; + # pysingleton = callPackage ./python-modules/pysingleton { }; -# pyslim = callPackage ./python-modules/pyslim { }; + # pyslim = callPackage ./python-modules/pyslim { }; -# pyslurm = callPackage ./python-modules/pyslurm { -# inherit (pkgs) slurm; -# }; + # pyslurm = callPackage ./python-modules/pyslurm { + # inherit (pkgs) slurm; + # }; -# pysma = callPackage ./python-modules/pysma { }; + # pysma = callPackage ./python-modules/pysma { }; -# pysmappee = callPackage ./python-modules/pysmappee { }; + # pysmappee = callPackage ./python-modules/pysmappee { }; -# pysmart = callPackage ./python-modules/pysmart { }; + # pysmart = callPackage ./python-modules/pysmart { }; -# pysmartapp = callPackage ./python-modules/pysmartapp { }; + # pysmartapp = callPackage ./python-modules/pysmartapp { }; -# pysmartdl = callPackage ./python-modules/pysmartdl { }; + # pysmartdl = callPackage ./python-modules/pysmartdl { }; -# pysmartthings = callPackage ./python-modules/pysmartthings { }; + # pysmartthings = callPackage ./python-modules/pysmartthings { }; -# pysmb = callPackage ./python-modules/pysmb { }; + # pysmb = callPackage ./python-modules/pysmb { }; -# pysmbc = callPackage ./python-modules/pysmbc { }; + # pysmbc = callPackage ./python-modules/pysmbc { }; -# pysmf = callPackage ./python-modules/pysmf { }; + # pysmf = callPackage ./python-modules/pysmf { }; -# pysmi = callPackage ./python-modules/pysmi { }; + # pysmi = callPackage ./python-modules/pysmi { }; -# pysmi-lextudio = callPackage ./python-modules/pysmi-lextudio { }; + # pysmi-lextudio = callPackage ./python-modules/pysmi-lextudio { }; -# pysml = callPackage ./python-modules/pysml { }; + # pysml = callPackage ./python-modules/pysml { }; -# pysmt = callPackage ./python-modules/pysmt { }; + # pysmt = callPackage ./python-modules/pysmt { }; -# pysnmp = callPackage ./python-modules/pysnmp { }; + # pysnmp = callPackage ./python-modules/pysnmp { }; -# pysnmpcrypto = callPackage ./python-modules/pysnmpcrypto { }; + # pysnmpcrypto = callPackage ./python-modules/pysnmpcrypto { }; -# pysnmp-lextudio = callPackage ./python-modules/pysnmp-lextudio { }; + # pysnmp-lextudio = callPackage ./python-modules/pysnmp-lextudio { }; -# pysnmp-pyasn1 = callPackage ./python-modules/pysnmp-pyasn1 { }; + # pysnmp-pyasn1 = callPackage ./python-modules/pysnmp-pyasn1 { }; -# pysnmp-pysmi = callPackage ./python-modules/pysnmp-pysmi { }; + # pysnmp-pysmi = callPackage ./python-modules/pysnmp-pysmi { }; -# pysnmplib = callPackage ./python-modules/pysnmplib { }; + # pysnmplib = callPackage ./python-modules/pysnmplib { }; -# pysnooper = callPackage ./python-modules/pysnooper { }; + # pysnooper = callPackage ./python-modules/pysnooper { }; -# pysnooz = callPackage ./python-modules/pysnooz { }; + # pysnooz = callPackage ./python-modules/pysnooz { }; -# pysnow = callPackage ./python-modules/pysnow { }; + # pysnow = callPackage ./python-modules/pysnow { }; pysocks = callPackage ./python-modules/pysocks { }; -# pysol-cards = callPackage ./python-modules/pysol-cards { }; + # pysol-cards = callPackage ./python-modules/pysol-cards { }; -# pysolr = callPackage ./python-modules/pysolr { }; + # pysolr = callPackage ./python-modules/pysolr { }; -# pysoma = callPackage ./python-modules/pysoma { }; + # pysoma = callPackage ./python-modules/pysoma { }; -# py-sonic = callPackage ./python-modules/py-sonic { }; + # py-sonic = callPackage ./python-modules/py-sonic { }; -# pysonos = callPackage ./python-modules/pysonos { }; + # pysonos = callPackage ./python-modules/pysonos { }; -# pysoundfile = self.soundfile; # Alias added 23-06-2019 + # pysoundfile = self.soundfile; # Alias added 23-06-2019 -# pyspark = callPackage ./python-modules/pyspark { }; + # pyspark = callPackage ./python-modules/pyspark { }; -# pyspcwebgw = callPackage ./python-modules/pyspcwebgw { }; + # pyspcwebgw = callPackage ./python-modules/pyspcwebgw { }; -# pyspellchecker = callPackage ./python-modules/pyspellchecker { }; + # pyspellchecker = callPackage ./python-modules/pyspellchecker { }; -# pyspf = callPackage ./python-modules/pyspf { }; + # pyspf = callPackage ./python-modules/pyspf { }; -# pyspice = callPackage ./python-modules/pyspice { }; + # pyspice = callPackage ./python-modules/pyspice { }; -# pyspiflash = callPackage ./python-modules/pyspiflash { }; + # pyspiflash = callPackage ./python-modules/pyspiflash { }; -# pyspinel = callPackage ./python-modules/pyspinel { }; + # pyspinel = callPackage ./python-modules/pyspinel { }; -# pyspnego = callPackage ./python-modules/pyspnego { }; + # pyspnego = callPackage ./python-modules/pyspnego { }; -# pysptk = callPackage ./python-modules/pysptk { }; + # pysptk = callPackage ./python-modules/pysptk { }; -# pyspx = callPackage ./python-modules/pyspx { }; + # pyspx = callPackage ./python-modules/pyspx { }; -# pysqlcipher3 = callPackage ./python-modules/pysqlcipher3 { -# inherit (pkgs) sqlcipher; -# }; + # pysqlcipher3 = callPackage ./python-modules/pysqlcipher3 { + # inherit (pkgs) sqlcipher; + # }; -# pysqueezebox = callPackage ./python-modules/pysqueezebox { }; + # pysqueezebox = callPackage ./python-modules/pysqueezebox { }; -# pysrim = callPackage ./python-modules/pysrim { }; + # pysrim = callPackage ./python-modules/pysrim { }; -# pysrt = callPackage ./python-modules/pysrt { }; + # pysrt = callPackage ./python-modules/pysrt { }; -# pyssim = callPackage ./python-modules/pyssim { }; + # pyssim = callPackage ./python-modules/pyssim { }; -# pystache = callPackage ./python-modules/pystache { }; + # pystache = callPackage ./python-modules/pystache { }; -# pystardict = callPackage ./python-modules/pystardict { }; + # pystardict = callPackage ./python-modules/pystardict { }; -# pystatgrab = callPackage ./python-modules/pystatgrab { }; + # pystatgrab = callPackage ./python-modules/pystatgrab { }; -# pystemd = callPackage ./python-modules/pystemd { -# inherit (pkgs) systemd; -# }; + # pystemd = callPackage ./python-modules/pystemd { + # inherit (pkgs) systemd; + # }; pystemmer = callPackage ./python-modules/pystemmer { }; -# pystray = callPackage ./python-modules/pystray { }; + # pystray = callPackage ./python-modules/pystray { }; -# py-stringmatching = callPackage ./python-modules/py-stringmatching { }; + # py-stringmatching = callPackage ./python-modules/py-stringmatching { }; -# pysvg-py3 = callPackage ./python-modules/pysvg-py3 { }; + # pysvg-py3 = callPackage ./python-modules/pysvg-py3 { }; -# pysvn = callPackage ./python-modules/pysvn { -# inherit (pkgs) bash subversion apr aprutil expat neon openssl; -# }; + # pysvn = callPackage ./python-modules/pysvn { + # inherit (pkgs) bash subversion apr aprutil expat neon openssl; + # }; -# pyswitchbee = callPackage ./python-modules/pyswitchbee { }; + # pyswitchbee = callPackage ./python-modules/pyswitchbee { }; -# pyswitchbot = callPackage ./python-modules/pyswitchbot { }; + # pyswitchbot = callPackage ./python-modules/pyswitchbot { }; -# pysychonaut = callPackage ./python-modules/pysychonaut { }; + # pysychonaut = callPackage ./python-modules/pysychonaut { }; -# pysyncobj = callPackage ./python-modules/pysyncobj { }; + # pysyncobj = callPackage ./python-modules/pysyncobj { }; -# pytabix = callPackage ./python-modules/pytabix { }; + # pytabix = callPackage ./python-modules/pytabix { }; -# pytablewriter = callPackage ./python-modules/pytablewriter { }; + # pytablewriter = callPackage ./python-modules/pytablewriter { }; -# pytado = callPackage ./python-modules/pytado { }; + # pytado = callPackage ./python-modules/pytado { }; -# pytaglib = callPackage ./python-modules/pytaglib { }; + # pytaglib = callPackage ./python-modules/pytaglib { }; -# pytankerkoenig = callPackage ./python-modules/pytankerkoenig { }; + # pytankerkoenig = callPackage ./python-modules/pytankerkoenig { }; -# pytap2 = callPackage ./python-modules/pytap2 { }; + # pytap2 = callPackage ./python-modules/pytap2 { }; -# pytapo = callPackage ./python-modules/pytapo { }; + # pytapo = callPackage ./python-modules/pytapo { }; -# pytautulli = callPackage ./python-modules/pytautulli { }; + # pytautulli = callPackage ./python-modules/pytautulli { }; -# pyte = callPackage ./python-modules/pyte { }; + # pyte = callPackage ./python-modules/pyte { }; -# pytedee-async = callPackage ./python-modules/pytedee-async { }; + # pytedee-async = callPackage ./python-modules/pytedee-async { }; -# pytenable = callPackage ./python-modules/pytenable { }; + # pytenable = callPackage ./python-modules/pytenable { }; -# pytensor = callPackage ./python-modules/pytensor { }; + # pytensor = callPackage ./python-modules/pytensor { }; -# pytelegrambotapi = callPackage ./python-modules/pyTelegramBotAPI { }; + # pytelegrambotapi = callPackage ./python-modules/pyTelegramBotAPI { }; -# pytesseract = callPackage ./python-modules/pytesseract { }; + # pytesseract = callPackage ./python-modules/pytesseract { }; pytest = callPackage ./python-modules/pytest { }; -# pytest_7 = callPackage ./python-modules/pytest/7.nix { }; + # pytest_7 = callPackage ./python-modules/pytest/7.nix { }; -# pytest7CheckHook = pytestCheckHook.override { pytest = pytest_7; }; + # pytest7CheckHook = pytestCheckHook.override { pytest = pytest_7; }; -# pytest-aio = callPackage ./python-modules/pytest-aio { }; + # pytest-aio = callPackage ./python-modules/pytest-aio { }; -# pytest-aiohttp = callPackage ./python-modules/pytest-aiohttp { }; + # pytest-aiohttp = callPackage ./python-modules/pytest-aiohttp { }; -# pytest-annotate = callPackage ./python-modules/pytest-annotate { }; + # pytest-annotate = callPackage ./python-modules/pytest-annotate { }; -# pytest-ansible = callPackage ./python-modules/pytest-ansible { }; + # pytest-ansible = callPackage ./python-modules/pytest-ansible { }; -# pytest-arraydiff = callPackage ./python-modules/pytest-arraydiff { }; + # pytest-arraydiff = callPackage ./python-modules/pytest-arraydiff { }; -# pytest-astropy = callPackage ./python-modules/pytest-astropy { }; + # pytest-astropy = callPackage ./python-modules/pytest-astropy { }; -# pytest-astropy-header = callPackage ./python-modules/pytest-astropy-header { }; + # pytest-astropy-header = callPackage ./python-modules/pytest-astropy-header { }; pytest-asyncio = callPackage ./python-modules/pytest-asyncio { }; -# pytest-asyncio_0_21 = pytest-asyncio.overridePythonAttrs (old: rec { -# version = "0.21.1"; -# src = pkgs.fetchFromGitHub { -# owner = "pytest-dev"; -# repo = "pytest-asyncio"; -# rev = "refs/tags/v${version}"; -# hash = "sha256-Wpo8MpCPGiXrckT2x5/yBYtGlzso/L2urG7yGc7SPkA="; -# }; -# }); + # pytest-asyncio_0_21 = pytest-asyncio.overridePythonAttrs (old: rec { + # version = "0.21.1"; + # src = pkgs.fetchFromGitHub { + # owner = "pytest-dev"; + # repo = "pytest-asyncio"; + # rev = "refs/tags/v${version}"; + # hash = "sha256-Wpo8MpCPGiXrckT2x5/yBYtGlzso/L2urG7yGc7SPkA="; + # }; + # }); -# pytest-bdd = callPackage ./python-modules/pytest-bdd { }; + # pytest-bdd = callPackage ./python-modules/pytest-bdd { }; -# pytest-benchmark = callPackage ./python-modules/pytest-benchmark { }; + # pytest-benchmark = callPackage ./python-modules/pytest-benchmark { }; -# pytest-black = callPackage ./python-modules/pytest-black { }; + # pytest-black = callPackage ./python-modules/pytest-black { }; -# pytest-cache = self.pytestcache; # added 2021-01-04 -# pytestcache = callPackage ./python-modules/pytestcache { }; + # pytest-cache = self.pytestcache; # added 2021-01-04 + # pytestcache = callPackage ./python-modules/pytestcache { }; -# pytest-base-url = callPackage ./python-modules/pytest-base-url { }; + # pytest-base-url = callPackage ./python-modules/pytest-base-url { }; -# pytest-cases = callPackage ./python-modules/pytest-cases{ }; + # pytest-cases = callPackage ./python-modules/pytest-cases{ }; -# pytest-catchlog = callPackage ./python-modules/pytest-catchlog { }; + # pytest-catchlog = callPackage ./python-modules/pytest-catchlog { }; -# pytest-celery = callPackage ./python-modules/pytest-celery { }; + # pytest-celery = callPackage ./python-modules/pytest-celery { }; -# pytest-check = callPackage ./python-modules/pytest-check { }; + # pytest-check = callPackage ./python-modules/pytest-check { }; -# pytest-cid = callPackage ./python-modules/pytest-cid { }; + # pytest-cid = callPackage ./python-modules/pytest-cid { }; -# pytest-click = callPackage ./python-modules/pytest-click { }; + # pytest-click = callPackage ./python-modules/pytest-click { }; -# pytest-console-scripts = callPackage ./python-modules/pytest-console-scripts { }; + # pytest-console-scripts = callPackage ./python-modules/pytest-console-scripts { }; -# pytest-cov = callPackage ./python-modules/pytest-cov { }; + # pytest-cov = callPackage ./python-modules/pytest-cov { }; -# pytest-cram = callPackage ./python-modules/pytest-cram { }; + # pytest-cram = callPackage ./python-modules/pytest-cram { }; -# pytest-datadir = callPackage ./python-modules/pytest-datadir { }; + # pytest-datadir = callPackage ./python-modules/pytest-datadir { }; -# pytest-datafiles = callPackage ./python-modules/pytest-datafiles { }; + # pytest-datafiles = callPackage ./python-modules/pytest-datafiles { }; -# pytest-dependency = callPackage ./python-modules/pytest-dependency { }; + # pytest-dependency = callPackage ./python-modules/pytest-dependency { }; -# pytest-describe = callPackage ./python-modules/pytest-describe { }; + # pytest-describe = callPackage ./python-modules/pytest-describe { }; -# pytest-django = callPackage ./python-modules/pytest-django { }; + # pytest-django = callPackage ./python-modules/pytest-django { }; -# pytest-doctestplus = callPackage ./python-modules/pytest-doctestplus { }; + # pytest-doctestplus = callPackage ./python-modules/pytest-doctestplus { }; -# pytest-dotenv = callPackage ./python-modules/pytest-dotenv { }; + # pytest-dotenv = callPackage ./python-modules/pytest-dotenv { }; -# pytest-emoji = callPackage ./python-modules/pytest-emoji { }; + # pytest-emoji = callPackage ./python-modules/pytest-emoji { }; -# pytest-env = callPackage ./python-modules/pytest-env { }; + # pytest-env = callPackage ./python-modules/pytest-env { }; -# pytest-error-for-skips = callPackage ./python-modules/pytest-error-for-skips { }; + # pytest-error-for-skips = callPackage ./python-modules/pytest-error-for-skips { }; -# pytest-examples = callPackage ./python-modules/pytest-examples { }; + # pytest-examples = callPackage ./python-modules/pytest-examples { }; pytest-expect = callPackage ./python-modules/pytest-expect { }; -# pytest-factoryboy = callPackage ./python-modules/pytest-factoryboy { }; + # pytest-factoryboy = callPackage ./python-modules/pytest-factoryboy { }; -# pytest-filter-subpackage = callPackage ./python-modules/pytest-filter-subpackage { }; + # pytest-filter-subpackage = callPackage ./python-modules/pytest-filter-subpackage { }; -# pytest-fixture-config = callPackage ./python-modules/pytest-fixture-config { }; + # pytest-fixture-config = callPackage ./python-modules/pytest-fixture-config { }; -# pytest-flake8 = callPackage ./python-modules/pytest-flake8 { }; + # pytest-flake8 = callPackage ./python-modules/pytest-flake8 { }; -# pytest-flakes = callPackage ./python-modules/pytest-flakes { }; + # pytest-flakes = callPackage ./python-modules/pytest-flakes { }; -# pytest-flask = callPackage ./python-modules/pytest-flask { }; + # pytest-flask = callPackage ./python-modules/pytest-flask { }; -# pytest-forked = callPackage ./python-modules/pytest-forked { }; + # pytest-forked = callPackage ./python-modules/pytest-forked { }; -# pytest-freezegun = callPackage ./python-modules/pytest-freezegun { }; + # pytest-freezegun = callPackage ./python-modules/pytest-freezegun { }; -# pytest-freezer = callPackage ./python-modules/pytest-freezer { }; + # pytest-freezer = callPackage ./python-modules/pytest-freezer { }; -# pytest-golden = callPackage ./python-modules/pytest-golden { }; + # pytest-golden = callPackage ./python-modules/pytest-golden { }; -# pytest-grpc = callPackage ./python-modules/pytest-grpc { }; + # pytest-grpc = callPackage ./python-modules/pytest-grpc { }; -# pytest-harvest = callPackage ./python-modules/pytest-harvest { }; + # pytest-harvest = callPackage ./python-modules/pytest-harvest { }; -# pytest-helpers-namespace = callPackage ./python-modules/pytest-helpers-namespace { }; + # pytest-helpers-namespace = callPackage ./python-modules/pytest-helpers-namespace { }; -# pytest-html = callPackage ./python-modules/pytest-html { }; + # pytest-html = callPackage ./python-modules/pytest-html { }; -# pytest-httpbin = callPackage ./python-modules/pytest-httpbin { }; + # pytest-httpbin = callPackage ./python-modules/pytest-httpbin { }; -# pytest-httpserver = callPackage ./python-modules/pytest-httpserver { }; + # pytest-httpserver = callPackage ./python-modules/pytest-httpserver { }; -# pytest-httpx = callPackage ./python-modules/pytest-httpx { }; + # pytest-httpx = callPackage ./python-modules/pytest-httpx { }; -# pytest-image-diff = callPackage ./python-modules/pytest-image-diff { }; + # pytest-image-diff = callPackage ./python-modules/pytest-image-diff { }; -# pytest-instafail = callPackage ./python-modules/pytest-instafail { }; + # pytest-instafail = callPackage ./python-modules/pytest-instafail { }; -# pytest-isort = callPackage ./python-modules/pytest-isort { }; + # pytest-isort = callPackage ./python-modules/pytest-isort { }; -# pytest-json-report = callPackage ./python-modules/pytest-json-report { }; + # pytest-json-report = callPackage ./python-modules/pytest-json-report { }; -# pytest-jupyter = callPackage ./python-modules/pytest-jupyter { }; + # pytest-jupyter = callPackage ./python-modules/pytest-jupyter { }; -# pytest-lazy-fixture = callPackage ./python-modules/pytest-lazy-fixture { }; + # pytest-lazy-fixture = callPackage ./python-modules/pytest-lazy-fixture { }; -# pytest-localserver = callPackage ./python-modules/pytest-localserver { }; + # pytest-localserver = callPackage ./python-modules/pytest-localserver { }; -# pytest-logdog = callPackage ./python-modules/pytest-logdog { }; + # pytest-logdog = callPackage ./python-modules/pytest-logdog { }; -# pytest-md-report = callPackage ./python-modules/pytest-md-report { }; + # pytest-md-report = callPackage ./python-modules/pytest-md-report { }; -# pytest-metadata = callPackage ./python-modules/pytest-metadata { }; + # pytest-metadata = callPackage ./python-modules/pytest-metadata { }; pytest-mock = callPackage ./python-modules/pytest-mock { }; -# pytest-mockservers = callPackage ./python-modules/pytest-mockservers { }; + # pytest-mockservers = callPackage ./python-modules/pytest-mockservers { }; -# pytest-mpl = callPackage ./python-modules/pytest-mpl { }; + # pytest-mpl = callPackage ./python-modules/pytest-mpl { }; -# pytest-mypy = callPackage ./python-modules/pytest-mypy { }; + # pytest-mypy = callPackage ./python-modules/pytest-mypy { }; -# pytest-mypy-plugins = callPackage ./python-modules/pytest-mypy-plugins { }; + # pytest-mypy-plugins = callPackage ./python-modules/pytest-mypy-plugins { }; -# pytest-notebook = callPackage ./python-modules/pytest-notebook { }; + # pytest-notebook = callPackage ./python-modules/pytest-notebook { }; -# pytest-openfiles = callPackage ./python-modules/pytest-openfiles { }; + # pytest-openfiles = callPackage ./python-modules/pytest-openfiles { }; -# pytest-order = callPackage ./python-modules/pytest-order { }; + # pytest-order = callPackage ./python-modules/pytest-order { }; -# pytest-param-files = callPackage ./python-modules/pytest-param-files { }; + # pytest-param-files = callPackage ./python-modules/pytest-param-files { }; -# pytest-parallel = callPackage ./python-modules/pytest-parallel { }; + # pytest-parallel = callPackage ./python-modules/pytest-parallel { }; -# pytest-playwright = callPackage ./python-modules/pytest-playwright {}; + # pytest-playwright = callPackage ./python-modules/pytest-playwright {}; -# pytest-plt = callPackage ./python-modules/pytest-plt { }; + # pytest-plt = callPackage ./python-modules/pytest-plt { }; -# pytest-postgresql = callPackage ./python-modules/pytest-postgresql { }; + # pytest-postgresql = callPackage ./python-modules/pytest-postgresql { }; -# pytest-pylint = callPackage ./python-modules/pytest-pylint { }; + # pytest-pylint = callPackage ./python-modules/pytest-pylint { }; -# pytest-pytestrail = callPackage ./python-modules/pytest-pytestrail { }; + # pytest-pytestrail = callPackage ./python-modules/pytest-pytestrail { }; -# pytest-qt = callPackage ./python-modules/pytest-qt { }; + # pytest-qt = callPackage ./python-modules/pytest-qt { }; -# pytest-quickcheck = callPackage ./python-modules/pytest-quickcheck { }; + # pytest-quickcheck = callPackage ./python-modules/pytest-quickcheck { }; -# pytest-raises = callPackage ./python-modules/pytest-raises { }; + # pytest-raises = callPackage ./python-modules/pytest-raises { }; -# pytest-raisesregexp = callPackage ./python-modules/pytest-raisesregexp { }; + # pytest-raisesregexp = callPackage ./python-modules/pytest-raisesregexp { }; -# pytest-raisin = callPackage ./python-modules/pytest-raisin { }; + # pytest-raisin = callPackage ./python-modules/pytest-raisin { }; -# pytest-randomly = callPackage ./python-modules/pytest-randomly { }; + # pytest-randomly = callPackage ./python-modules/pytest-randomly { }; -# pytest-reverse = callPackage ./python-modules/pytest-reverse { }; + # pytest-reverse = callPackage ./python-modules/pytest-reverse { }; -# pytest-random-order = callPackage ./python-modules/pytest-random-order { }; + # pytest-random-order = callPackage ./python-modules/pytest-random-order { }; -# pytest-recording = callPackage ./python-modules/pytest-recording { }; + # pytest-recording = callPackage ./python-modules/pytest-recording { }; -# pytest-regressions = callPackage ./python-modules/pytest-regressions { }; + # pytest-regressions = callPackage ./python-modules/pytest-regressions { }; -# pytest-relaxed = callPackage ./python-modules/pytest-relaxed { }; + # pytest-relaxed = callPackage ./python-modules/pytest-relaxed { }; -# pytest-remotedata = callPackage ./python-modules/pytest-remotedata { }; + # pytest-remotedata = callPackage ./python-modules/pytest-remotedata { }; -# pytest-repeat = callPackage ./python-modules/pytest-repeat { }; + # pytest-repeat = callPackage ./python-modules/pytest-repeat { }; pytest-rerunfailures = callPackage ./python-modules/pytest-rerunfailures { }; -# pytest-resource-path = callPackage ./python-modules/pytest-resource-path { }; + # pytest-resource-path = callPackage ./python-modules/pytest-resource-path { }; -# pytest-runner = callPackage ./python-modules/pytest-runner { }; + # pytest-runner = callPackage ./python-modules/pytest-runner { }; -# pytest-server-fixtures = callPackage ./python-modules/pytest-server-fixtures { }; + # pytest-server-fixtures = callPackage ./python-modules/pytest-server-fixtures { }; -# pytest-services = callPackage ./python-modules/pytest-services { }; + # pytest-services = callPackage ./python-modules/pytest-services { }; -# pytest-snapshot = callPackage ./python-modules/pytest-snapshot { }; + # pytest-snapshot = callPackage ./python-modules/pytest-snapshot { }; -# pytest-shutil = callPackage ./python-modules/pytest-shutil { }; + # pytest-shutil = callPackage ./python-modules/pytest-shutil { }; -# pytest-spec = callPackage ./python-modules/pytest-spec { }; + # pytest-spec = callPackage ./python-modules/pytest-spec { }; -# python-status = callPackage ./python-modules/python-status { }; + # python-status = callPackage ./python-modules/python-status { }; -# python-string-utils = callPackage ./python-modules/python-string-utils { }; + # python-string-utils = callPackage ./python-modules/python-string-utils { }; -# pytest-socket = callPackage ./python-modules/pytest-socket { }; + # pytest-socket = callPackage ./python-modules/pytest-socket { }; -# pytest-subprocess = callPackage ./python-modules/pytest-subprocess { }; + # pytest-subprocess = callPackage ./python-modules/pytest-subprocess { }; -# pytest-subtesthack = callPackage ./python-modules/pytest-subtesthack { }; + # pytest-subtesthack = callPackage ./python-modules/pytest-subtesthack { }; -# pytest-subtests = callPackage ./python-modules/pytest-subtests { }; + # pytest-subtests = callPackage ./python-modules/pytest-subtests { }; -# pytest-sugar = callPackage ./python-modules/pytest-sugar { }; + # pytest-sugar = callPackage ./python-modules/pytest-sugar { }; -# pytest-tap = callPackage ./python-modules/pytest-tap { }; + # pytest-tap = callPackage ./python-modules/pytest-tap { }; -# pytest-test-utils = callPackage ./python-modules/pytest-test-utils { }; + # pytest-test-utils = callPackage ./python-modules/pytest-test-utils { }; -# pytest-testinfra = callPackage ./python-modules/pytest-testinfra { }; + # pytest-testinfra = callPackage ./python-modules/pytest-testinfra { }; -# pytest-testmon = callPackage ./python-modules/pytest-testmon { }; + # pytest-testmon = callPackage ./python-modules/pytest-testmon { }; -# pytest-textual-snapshot = callPackage ./python-modules/pytest-textual-snapshot { }; + # pytest-textual-snapshot = callPackage ./python-modules/pytest-textual-snapshot { }; pytest-timeout = callPackage ./python-modules/pytest-timeout { }; -# pytest-tornado = callPackage ./python-modules/pytest-tornado { }; + # pytest-tornado = callPackage ./python-modules/pytest-tornado { }; -# pytest-tornasync = callPackage ./python-modules/pytest-tornasync { }; + # pytest-tornasync = callPackage ./python-modules/pytest-tornasync { }; -# pytest-trio = callPackage ./python-modules/pytest-trio { }; + # pytest-trio = callPackage ./python-modules/pytest-trio { }; -# pytest-twisted = callPackage ./python-modules/pytest-twisted { }; + # pytest-twisted = callPackage ./python-modules/pytest-twisted { }; -# pytest-unordered = callPackage ./python-modules/pytest-unordered { }; + # pytest-unordered = callPackage ./python-modules/pytest-unordered { }; -# pytest-vcr = callPackage ./python-modules/pytest-vcr { }; + # pytest-vcr = callPackage ./python-modules/pytest-vcr { }; -# pytest-virtualenv = callPackage ./python-modules/pytest-virtualenv { }; + # pytest-virtualenv = callPackage ./python-modules/pytest-virtualenv { }; -# pytest-voluptuous = callPackage ./python-modules/pytest-voluptuous { }; + # pytest-voluptuous = callPackage ./python-modules/pytest-voluptuous { }; -# pytest-warnings = callPackage ./python-modules/pytest-warnings { }; + # pytest-warnings = callPackage ./python-modules/pytest-warnings { }; -# pytest-watch = callPackage ./python-modules/pytest-watch { }; + # pytest-watch = callPackage ./python-modules/pytest-watch { }; pytest-xdist = callPackage ./python-modules/pytest-xdist { }; -# pytest-xprocess = callPackage ./python-modules/pytest-xprocess { }; + # pytest-xprocess = callPackage ./python-modules/pytest-xprocess { }; -# pytest-xvfb = callPackage ./python-modules/pytest-xvfb { }; + # pytest-xvfb = callPackage ./python-modules/pytest-xvfb { }; -# python3-application = callPackage ./python-modules/python3-application { }; + # python3-application = callPackage ./python-modules/python3-application { }; -# python3-eventlib = callPackage ./python-modules/python3-eventlib { }; + # python3-eventlib = callPackage ./python-modules/python3-eventlib { }; -# python3-gnutls = callPackage ./python-modules/python3-gnutls { }; + # python3-gnutls = callPackage ./python-modules/python3-gnutls { }; -# python3-openid = callPackage ./python-modules/python3-openid { }; + # python3-openid = callPackage ./python-modules/python3-openid { }; -# python-apt = callPackage ./python-modules/python-apt { }; + # python-apt = callPackage ./python-modules/python-apt { }; -# python-arango = callPackage ./python-modules/python-arango { }; + # python-arango = callPackage ./python-modules/python-arango { }; -# python-awair = callPackage ./python-modules/python-awair { }; + # python-awair = callPackage ./python-modules/python-awair { }; -# python3-saml = callPackage ./python-modules/python3-saml { }; + # python3-saml = callPackage ./python-modules/python3-saml { }; -# python-axolotl = callPackage ./python-modules/python-axolotl { }; + # python-axolotl = callPackage ./python-modules/python-axolotl { }; -# python-axolotl-curve25519 = callPackage ./python-modules/python-axolotl-curve25519 { }; + # python-axolotl-curve25519 = callPackage ./python-modules/python-axolotl-curve25519 { }; -# python-barcode = callPackage ./python-modules/python-barcode { }; + # python-barcode = callPackage ./python-modules/python-barcode { }; -# python-baseconv = callPackage ./python-modules/python-baseconv { }; + # python-baseconv = callPackage ./python-modules/python-baseconv { }; -# python-benedict = callPackage ./python-modules/python-benedict { }; + # python-benedict = callPackage ./python-modules/python-benedict { }; -# python-bidi = callPackage ./python-modules/python-bidi { }; + # python-bidi = callPackage ./python-modules/python-bidi { }; -# python-binance = callPackage ./python-modules/python-binance { }; + # python-binance = callPackage ./python-modules/python-binance { }; -# python-box = callPackage ./python-modules/python-box { }; + # python-box = callPackage ./python-modules/python-box { }; -# python-bring-api = callPackage ./python-modules/python-bring-api { }; + # python-bring-api = callPackage ./python-modules/python-bring-api { }; -# python-bsblan = callPackage ./python-modules/python-bsblan { }; + # python-bsblan = callPackage ./python-modules/python-bsblan { }; -# python-cinderclient = callPackage ./python-modules/python-cinderclient { }; + # python-cinderclient = callPackage ./python-modules/python-cinderclient { }; -# python-constraint = callPackage ./python-modules/python-constraint { }; + # python-constraint = callPackage ./python-modules/python-constraint { }; -# python-crontab = callPackage ./python-modules/python-crontab { }; + # python-crontab = callPackage ./python-modules/python-crontab { }; -# python-ctags3 = callPackage ./python-modules/python-ctags3 { }; + # python-ctags3 = callPackage ./python-modules/python-ctags3 { }; -# python-daemon = callPackage ./python-modules/python-daemon { }; + # python-daemon = callPackage ./python-modules/python-daemon { }; -# python-datemath = callPackage ./python-modules/python-datemath { }; + # python-datemath = callPackage ./python-modules/python-datemath { }; python-dateutil = callPackage ./python-modules/python-dateutil { }; -# python-dbusmock = callPackage ./python-modules/python-dbusmock { }; + # python-dbusmock = callPackage ./python-modules/python-dbusmock { }; -# python-decouple = callPackage ./python-modules/python-decouple { }; + # python-decouple = callPackage ./python-modules/python-decouple { }; -# pythondialog = callPackage ./python-modules/pythondialog { }; + # pythondialog = callPackage ./python-modules/pythondialog { }; -# python-didl-lite = callPackage ./python-modules/python-didl-lite { }; + # python-didl-lite = callPackage ./python-modules/python-didl-lite { }; -# python-digitalocean = callPackage ./python-modules/python-digitalocean { }; + # python-digitalocean = callPackage ./python-modules/python-digitalocean { }; -# python-docx = callPackage ./python-modules/python-docx { }; + # python-docx = callPackage ./python-modules/python-docx { }; -# python-doi = callPackage ./python-modules/python-doi { }; + # python-doi = callPackage ./python-modules/python-doi { }; -# python-dotenv = callPackage ./python-modules/python-dotenv { }; + # python-dotenv = callPackage ./python-modules/python-dotenv { }; -# python-editor = callPackage ./python-modules/python-editor { }; + # python-editor = callPackage ./python-modules/python-editor { }; -# python-family-hub-local = callPackage ./python-modules/python-family-hub-local { }; + # python-family-hub-local = callPackage ./python-modules/python-family-hub-local { }; -# python-fsutil = callPackage ./python-modules/python-fsutil { }; + # python-fsutil = callPackage ./python-modules/python-fsutil { }; -# pythonefl = callPackage ./python-modules/python-efl { }; + # pythonefl = callPackage ./python-modules/python-efl { }; -# pythonegardia = callPackage ./python-modules/pythonegardia { }; + # pythonegardia = callPackage ./python-modules/pythonegardia { }; -# python-engineio = callPackage ./python-modules/python-engineio { }; + # python-engineio = callPackage ./python-modules/python-engineio { }; -# python-etcd = callPackage ./python-modules/python-etcd { }; + # python-etcd = callPackage ./python-modules/python-etcd { }; -# python-ethtool = callPackage ./python-modules/python-ethtool { }; + # python-ethtool = callPackage ./python-modules/python-ethtool { }; -# python-ev3dev2 = callPackage ./python-modules/python-ev3dev2 { }; + # python-ev3dev2 = callPackage ./python-modules/python-ev3dev2 { }; -# python-fedora = callPackage ./python-modules/python-fedora { }; + # python-fedora = callPackage ./python-modules/python-fedora { }; -# python-fontconfig = callPackage ./python-modules/python-fontconfig { }; + # python-fontconfig = callPackage ./python-modules/python-fontconfig { }; -# python-frontmatter = callPackage ./python-modules/python-frontmatter { }; + # python-frontmatter = callPackage ./python-modules/python-frontmatter { }; -# python-gammu = callPackage ./python-modules/python-gammu { }; + # python-gammu = callPackage ./python-modules/python-gammu { }; -# python-gitlab = callPackage ./python-modules/python-gitlab { }; + # python-gitlab = callPackage ./python-modules/python-gitlab { }; -# python-gnupg = callPackage ./python-modules/python-gnupg { }; + # python-gnupg = callPackage ./python-modules/python-gnupg { }; -# python-gvm = callPackage ./python-modules/python-gvm { }; + # python-gvm = callPackage ./python-modules/python-gvm { }; -# python-hglib = callPackage ./python-modules/python-hglib { }; + # python-hglib = callPackage ./python-modules/python-hglib { }; -# python-homeassistant-analytics = callPackage ./python-modules/python-homeassistant-analytics { }; + # python-homeassistant-analytics = callPackage ./python-modules/python-homeassistant-analytics { }; -# python-homewizard-energy = callPackage ./python-modules/python-homewizard-energy { }; + # python-homewizard-energy = callPackage ./python-modules/python-homewizard-energy { }; -# python-hosts = callPackage ./python-modules/python-hosts { }; + # python-hosts = callPackage ./python-modules/python-hosts { }; -# python-hpilo = callPackage ./python-modules/python-hpilo { }; + # python-hpilo = callPackage ./python-modules/python-hpilo { }; -# python-http-client = callPackage ./python-modules/python-http-client { }; + # python-http-client = callPackage ./python-modules/python-http-client { }; -# python-i18n = callPackage ./python-modules/python-i18n { }; + # python-i18n = callPackage ./python-modules/python-i18n { }; -# pythonix = callPackage ./python-modules/pythonix { -# nix = pkgs.nixVersions.nix_2_3; -# meson = pkgs.meson.override { python3 = self.python; }; -# }; + # pythonix = callPackage ./python-modules/pythonix { + # nix = pkgs.nixVersions.nix_2_3; + # meson = pkgs.meson.override { python3 = self.python; }; + # }; -# python-jenkins = callPackage ./python-modules/python-jenkins { }; + # python-jenkins = callPackage ./python-modules/python-jenkins { }; -# python-jose = callPackage ./python-modules/python-jose { }; + # python-jose = callPackage ./python-modules/python-jose { }; -# python-json-logger = callPackage ./python-modules/python-json-logger { }; + # python-json-logger = callPackage ./python-modules/python-json-logger { }; -# python-jsonrpc-server = callPackage ./python-modules/python-jsonrpc-server { }; + # python-jsonrpc-server = callPackage ./python-modules/python-jsonrpc-server { }; -# python-ldap = callPackage ./python-modules/python-ldap { -# inherit (pkgs) openldap cyrus_sasl; -# }; + # python-ldap = callPackage ./python-modules/python-ldap { + # inherit (pkgs) openldap cyrus_sasl; + # }; -# python-ldap-test = callPackage ./python-modules/python-ldap-test { }; + # python-ldap-test = callPackage ./python-modules/python-ldap-test { }; -# python-libnmap = callPackage ./python-modules/python-libnmap { }; + # python-libnmap = callPackage ./python-modules/python-libnmap { }; -# python-linux-procfs = callPackage ./python-modules/python-linux-procfs { }; + # python-linux-procfs = callPackage ./python-modules/python-linux-procfs { }; -# python-logstash = callPackage ./python-modules/python-logstash { }; + # python-logstash = callPackage ./python-modules/python-logstash { }; -# python-louvain = callPackage ./python-modules/python-louvain { }; + # python-louvain = callPackage ./python-modules/python-louvain { }; -# python-lsp-jsonrpc = callPackage ./python-modules/python-lsp-jsonrpc { }; + # python-lsp-jsonrpc = callPackage ./python-modules/python-lsp-jsonrpc { }; -# python-lsp-ruff = callPackage ./python-modules/python-lsp-ruff { }; + # python-lsp-ruff = callPackage ./python-modules/python-lsp-ruff { }; -# python-lsp-server = callPackage ./python-modules/python-lsp-server { }; + # python-lsp-server = callPackage ./python-modules/python-lsp-server { }; -# python-ly = callPackage ./python-modules/python-ly { }; + # python-ly = callPackage ./python-modules/python-ly { }; -# python-lzf = callPackage ./python-modules/python-lzf { }; + # python-lzf = callPackage ./python-modules/python-lzf { }; -# python-lzo = callPackage ./python-modules/python-lzo { -# inherit (pkgs) lzo; -# }; + # python-lzo = callPackage ./python-modules/python-lzo { + # inherit (pkgs) lzo; + # }; -# python-magic = callPackage ./python-modules/python-magic { }; + # python-magic = callPackage ./python-modules/python-magic { }; -# python-manilaclient = callPackage ./python-modules/python-manilaclient { }; + # python-manilaclient = callPackage ./python-modules/python-manilaclient { }; -# python-mapnik = callPackage ./python-modules/python-mapnik rec { -# inherit (pkgs) pkg-config cairo icu libjpeg libpng libtiff libwebp proj zlib; -# boost = pkgs.boost182.override { -# enablePython = true; -# inherit python; -# }; -# harfbuzz = pkgs.harfbuzz.override { -# withIcu = true; -# }; -# mapnik = pkgs.mapnik.override { -# inherit boost harfbuzz; -# }; -# }; + # python-mapnik = callPackage ./python-modules/python-mapnik rec { + # inherit (pkgs) pkg-config cairo icu libjpeg libpng libtiff libwebp proj zlib; + # boost = pkgs.boost182.override { + # enablePython = true; + # inherit python; + # }; + # harfbuzz = pkgs.harfbuzz.override { + # withIcu = true; + # }; + # mapnik = pkgs.mapnik.override { + # inherit boost harfbuzz; + # }; + # }; -# python-markdown-math = callPackage ./python-modules/python-markdown-math { }; + # python-markdown-math = callPackage ./python-modules/python-markdown-math { }; -# python-matter-server = callPackage ./python-modules/python-matter-server { }; + # python-matter-server = callPackage ./python-modules/python-matter-server { }; -# python-miio = callPackage ./python-modules/python-miio { }; + # python-miio = callPackage ./python-modules/python-miio { }; -# python-mimeparse = callPackage ./python-modules/python-mimeparse { }; + # python-mimeparse = callPackage ./python-modules/python-mimeparse { }; -# python-mnist = callPackage ./python-modules/python-mnist { }; + # python-mnist = callPackage ./python-modules/python-mnist { }; -# python-mpv-jsonipc = callPackage ./python-modules/python-mpv-jsonipc { }; + # python-mpv-jsonipc = callPackage ./python-modules/python-mpv-jsonipc { }; -# python-multipart = callPackage ./python-modules/python-multipart { }; + # python-multipart = callPackage ./python-modules/python-multipart { }; -# python-musicpd = callPackage ./python-modules/python-musicpd { }; + # python-musicpd = callPackage ./python-modules/python-musicpd { }; -# python-mystrom = callPackage ./python-modules/python-mystrom { }; + # python-mystrom = callPackage ./python-modules/python-mystrom { }; -# python-nest = callPackage ./python-modules/python-nest { }; + # python-nest = callPackage ./python-modules/python-nest { }; -# pythonnet = callPackage ./python-modules/pythonnet { }; + # pythonnet = callPackage ./python-modules/pythonnet { }; -# python-nmap = callPackage ./python-modules/python-nmap { }; + # python-nmap = callPackage ./python-modules/python-nmap { }; -# python-nomad = callPackage ./python-modules/python-nomad { }; + # python-nomad = callPackage ./python-modules/python-nomad { }; -# python-novaclient = callPackage ./python-modules/python-novaclient { }; + # python-novaclient = callPackage ./python-modules/python-novaclient { }; -# python-oauth2 = callPackage ./python-modules/python-oauth2 { }; + # python-oauth2 = callPackage ./python-modules/python-oauth2 { }; -# pythonocc-core = toPythonModule (callPackage ./python-modules/pythonocc-core { -# inherit (pkgs) fontconfig rapidjson; -# inherit (pkgs.xorg) libX11 libXi libXmu libXext; -# inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; -# }); + # pythonocc-core = toPythonModule (callPackage ./python-modules/pythonocc-core { + # inherit (pkgs) fontconfig rapidjson; + # inherit (pkgs.xorg) libX11 libXi libXmu libXext; + # inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; + # }); -# python-olm = callPackage ./python-modules/python-olm { }; + # python-olm = callPackage ./python-modules/python-olm { }; -# python-on-whales = callPackage ./python-modules/python-on-whales { }; + # python-on-whales = callPackage ./python-modules/python-on-whales { }; -# python-opendata-transport = callPackage ./python-modules/python-opendata-transport { }; + # python-opendata-transport = callPackage ./python-modules/python-opendata-transport { }; -# python-openstackclient = callPackage ./python-modules/python-openstackclient { }; + # python-openstackclient = callPackage ./python-modules/python-openstackclient { }; -# python-openzwave = callPackage ./python-modules/python-openzwave { }; + # python-openzwave = callPackage ./python-modules/python-openzwave { }; -# python-osc = callPackage ./python-modules/python-osc { }; + # python-osc = callPackage ./python-modules/python-osc { }; -# python-packer = callPackage ./python-modules/python-packer { }; + # python-packer = callPackage ./python-modules/python-packer { }; -# python-pae = callPackage ./python-modules/python-pae { }; + # python-pae = callPackage ./python-modules/python-pae { }; -# python-pam = callPackage ./python-modules/python-pam { -# inherit (pkgs) pam; -# }; + # python-pam = callPackage ./python-modules/python-pam { + # inherit (pkgs) pam; + # }; -# python-periphery = callPackage ./python-modules/python-periphery { }; + # python-periphery = callPackage ./python-modules/python-periphery { }; -# python-picnic-api = callPackage ./python-modules/python-picnic-api { }; + # python-picnic-api = callPackage ./python-modules/python-picnic-api { }; -# python-pidfile = callPackage ./python-modules/python-pidfile { }; + # python-pidfile = callPackage ./python-modules/python-pidfile { }; -# python-pipedrive = callPackage ./python-modules/python-pipedrive { }; + # python-pipedrive = callPackage ./python-modules/python-pipedrive { }; -# python-pkcs11 = callPackage ./python-modules/python-pkcs11 { }; + # python-pkcs11 = callPackage ./python-modules/python-pkcs11 { }; -# python-prctl = callPackage ./python-modules/python-prctl { }; + # python-prctl = callPackage ./python-modules/python-prctl { }; -# python-ptrace = callPackage ./python-modules/python-ptrace { }; + # python-ptrace = callPackage ./python-modules/python-ptrace { }; -# python-rapidjson = callPackage ./python-modules/python-rapidjson { }; + # python-rapidjson = callPackage ./python-modules/python-rapidjson { }; -# python-rabbitair = callPackage ./python-modules/python-rabbitair { }; + # python-rabbitair = callPackage ./python-modules/python-rabbitair { }; -# python-redis-lock = callPackage ./python-modules/python-redis-lock { }; + # python-redis-lock = callPackage ./python-modules/python-redis-lock { }; -# python-registry = callPackage ./python-modules/python-registry { }; + # python-registry = callPackage ./python-modules/python-registry { }; -# python-roborock = callPackage ./python-modules/python-roborock { }; + # python-roborock = callPackage ./python-modules/python-roborock { }; -# python-rtmidi = callPackage ./python-modules/python-rtmidi { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices Foundation; -# }; + # python-rtmidi = callPackage ./python-modules/python-rtmidi { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices Foundation; + # }; -# python-sat = callPackage ./python-modules/python-sat { }; + # python-sat = callPackage ./python-modules/python-sat { }; -# python-simple-hipchat = callPackage ./python-modules/python-simple-hipchat { }; + # python-simple-hipchat = callPackage ./python-modules/python-simple-hipchat { }; -# python-slugify = callPackage ./python-modules/python-slugify { }; + # python-slugify = callPackage ./python-modules/python-slugify { }; -# python-smarttub = callPackage ./python-modules/python-smarttub { }; + # python-smarttub = callPackage ./python-modules/python-smarttub { }; -# python-snap7 = callPackage ./python-modules/python-snap7 { -# inherit (pkgs) snap7; -# }; + # python-snap7 = callPackage ./python-modules/python-snap7 { + # inherit (pkgs) snap7; + # }; -# python-snappy = callPackage ./python-modules/python-snappy { -# inherit (pkgs) snappy; -# }; + # python-snappy = callPackage ./python-modules/python-snappy { + # inherit (pkgs) snappy; + # }; -# python-socketio = callPackage ./python-modules/python-socketio { }; + # python-socketio = callPackage ./python-modules/python-socketio { }; -# python-socks = callPackage ./python-modules/python-socks { }; + # python-socks = callPackage ./python-modules/python-socks { }; -# python-sql = callPackage ./python-modules/python-sql { }; + # python-sql = callPackage ./python-modules/python-sql { }; -# python-stdnum = callPackage ./python-modules/python-stdnum { }; + # python-stdnum = callPackage ./python-modules/python-stdnum { }; -# python-technove = callPackage ./python-modules/python-technove { }; + # python-technove = callPackage ./python-modules/python-technove { }; -# python-telegram = callPackage ./python-modules/python-telegram { }; + # python-telegram = callPackage ./python-modules/python-telegram { }; -# python-telegram-bot = callPackage ./python-modules/python-telegram-bot { }; + # python-telegram-bot = callPackage ./python-modules/python-telegram-bot { }; -# python-toolbox = callPackage ./python-modules/python-toolbox { }; + # python-toolbox = callPackage ./python-modules/python-toolbox { }; -# python-trovo = callPackage ./python-modules/python-trovo { }; + # python-trovo = callPackage ./python-modules/python-trovo { }; -# python-twitch-client = callPackage ./python-modules/python-twitch-client { }; + # python-twitch-client = callPackage ./python-modules/python-twitch-client { }; -# python-twitter = callPackage ./python-modules/python-twitter { }; + # python-twitter = callPackage ./python-modules/python-twitter { }; -# python-u2flib-host = callPackage ./python-modules/python-u2flib-host { }; + # python-u2flib-host = callPackage ./python-modules/python-u2flib-host { }; -# python-u2flib-server = callPackage ./python-modules/python-u2flib-server { }; + # python-u2flib-server = callPackage ./python-modules/python-u2flib-server { }; -# python-uinput = callPackage ./python-modules/python-uinput { }; + # python-uinput = callPackage ./python-modules/python-uinput { }; -# python-ulid = callPackage ./python-modules/python-ulid { }; + # python-ulid = callPackage ./python-modules/python-ulid { }; -# python-unshare = callPackage ./python-modules/python-unshare { }; + # python-unshare = callPackage ./python-modules/python-unshare { }; -# python-utils = callPackage ./python-modules/python-utils { }; + # python-utils = callPackage ./python-modules/python-utils { }; -# python-vagrant = callPackage ./python-modules/python-vagrant { }; + # python-vagrant = callPackage ./python-modules/python-vagrant { }; -# python-velbus = callPackage ./python-modules/python-velbus { }; + # python-velbus = callPackage ./python-modules/python-velbus { }; -# python-vipaccess = callPackage ./python-modules/python-vipaccess { }; + # python-vipaccess = callPackage ./python-modules/python-vipaccess { }; -# python-vlc = callPackage ./python-modules/python-vlc { }; + # python-vlc = callPackage ./python-modules/python-vlc { }; -# python-whois = callPackage ./python-modules/python-whois { }; + # python-whois = callPackage ./python-modules/python-whois { }; -# python-wifi = callPackage ./python-modules/python-wifi { }; + # python-wifi = callPackage ./python-modules/python-wifi { }; -# python-wink = callPackage ./python-modules/python-wink { }; + # python-wink = callPackage ./python-modules/python-wink { }; -# python-xmp-toolkit = callPackage ./python-modules/python-xmp-toolkit { }; + # python-xmp-toolkit = callPackage ./python-modules/python-xmp-toolkit { }; -# python-xz = callPackage ./python-modules/python-xz { }; + # python-xz = callPackage ./python-modules/python-xz { }; -# python-zbar = callPackage ./python-modules/python-zbar { }; + # python-zbar = callPackage ./python-modules/python-zbar { }; -# pythran = callPackage ./python-modules/pythran { -# inherit (pkgs.llvmPackages) openmp; -# }; + # pythran = callPackage ./python-modules/pythran { + # inherit (pkgs.llvmPackages) openmp; + # }; -# pyeapi = callPackage ./python-modules/pyeapi { }; + # pyeapi = callPackage ./python-modules/pyeapi { }; -# pyeverlights = callPackage ./python-modules/pyeverlights { }; + # pyeverlights = callPackage ./python-modules/pyeverlights { }; -# pyinfra = callPackage ./python-modules/pyinfra { }; + # pyinfra = callPackage ./python-modules/pyinfra { }; -# pytibber = callPackage ./python-modules/pytibber { }; + # pytibber = callPackage ./python-modules/pytibber { }; -# pytile = callPackage ./python-modules/pytile { }; + # pytile = callPackage ./python-modules/pytile { }; -# pytimeparse = callPackage ./python-modules/pytimeparse { }; + # pytimeparse = callPackage ./python-modules/pytimeparse { }; -# pytimeparse2 = callPackage ./python-modules/pytimeparse2 { }; + # pytimeparse2 = callPackage ./python-modules/pytimeparse2 { }; -# pytikz-allefeld = callPackage ./python-modules/pytikz-allefeld { }; + # pytikz-allefeld = callPackage ./python-modules/pytikz-allefeld { }; -# pytm = callPackage ./python-modules/pytm { }; + # pytm = callPackage ./python-modules/pytm { }; -# pytmx = callPackage ./python-modules/pytmx { }; + # pytmx = callPackage ./python-modules/pytmx { }; -# pytomlpp = callPackage ./python-modules/pytomlpp { }; + # pytomlpp = callPackage ./python-modules/pytomlpp { }; -# pytoolconfig = callPackage ./python-modules/pytoolconfig { }; + # pytoolconfig = callPackage ./python-modules/pytoolconfig { }; -# pytools = callPackage ./python-modules/pytools { }; + # pytools = callPackage ./python-modules/pytools { }; -# pytorch-lightning = callPackage ./python-modules/pytorch-lightning { }; + # pytorch-lightning = callPackage ./python-modules/pytorch-lightning { }; -# pytorch-metric-learning = callPackage ./python-modules/pytorch-metric-learning { }; + # pytorch-metric-learning = callPackage ./python-modules/pytorch-metric-learning { }; -# pytorch-msssim = callPackage ./python-modules/pytorch-msssim { }; + # pytorch-msssim = callPackage ./python-modules/pytorch-msssim { }; -# pytorch-pfn-extras = callPackage ./python-modules/pytorch-pfn-extras { }; + # pytorch-pfn-extras = callPackage ./python-modules/pytorch-pfn-extras { }; -# pytraccar = callPackage ./python-modules/pytraccar { }; + # pytraccar = callPackage ./python-modules/pytraccar { }; -# pytradfri = callPackage ./python-modules/pytradfri { }; + # pytradfri = callPackage ./python-modules/pytradfri { }; -# pytrafikverket = callPackage ./python-modules/pytrafikverket { }; + # pytrafikverket = callPackage ./python-modules/pytrafikverket { }; -# pytransportnsw = callPackage ./python-modules/pytransportnsw { }; + # pytransportnsw = callPackage ./python-modules/pytransportnsw { }; -# pytransportnswv2 = callPackage ./python-modules/pytransportnswv2 { }; + # pytransportnswv2 = callPackage ./python-modules/pytransportnswv2 { }; -# pytrends = callPackage ./python-modules/pytrends { }; + # pytrends = callPackage ./python-modules/pytrends { }; -# pytricia = callPackage ./python-modules/pytricia { }; + # pytricia = callPackage ./python-modules/pytricia { }; -# pytrydan = callPackage ./python-modules/pytrydan { }; + # pytrydan = callPackage ./python-modules/pytrydan { }; -# pyttsx3 = callPackage ./python-modules/pyttsx3 { }; + # pyttsx3 = callPackage ./python-modules/pyttsx3 { }; -# pytube = callPackage ./python-modules/pytube { }; + # pytube = callPackage ./python-modules/pytube { }; -# pytun = callPackage ./python-modules/pytun { }; + # pytun = callPackage ./python-modules/pytun { }; -# pyturbojpeg = callPackage ./python-modules/pyturbojpeg { }; + # pyturbojpeg = callPackage ./python-modules/pyturbojpeg { }; -# pytweening = callPackage ./python-modules/pytweening { }; + # pytweening = callPackage ./python-modules/pytweening { }; pytz = callPackage ./python-modules/pytz { }; -# pytz-deprecation-shim = callPackage ./python-modules/pytz-deprecation-shim { }; + # pytz-deprecation-shim = callPackage ./python-modules/pytz-deprecation-shim { }; -# pytzdata = callPackage ./python-modules/pytzdata { }; + # pytzdata = callPackage ./python-modules/pytzdata { }; -# pyu2f = callPackage ./python-modules/pyu2f { }; + # pyu2f = callPackage ./python-modules/pyu2f { }; -# pyudev = callPackage ./python-modules/pyudev { -# inherit (pkgs) udev; -# }; + # pyudev = callPackage ./python-modules/pyudev { + # inherit (pkgs) udev; + # }; -# pyunbound = toPythonModule (callPackage ../tools/networking/unbound/python.nix { }); + # pyunbound = toPythonModule (callPackage ../tools/networking/unbound/python.nix { }); -# pyunifi = callPackage ./python-modules/pyunifi { }; + # pyunifi = callPackage ./python-modules/pyunifi { }; -# pyunifiprotect = callPackage ./python-modules/pyunifiprotect { }; + # pyunifiprotect = callPackage ./python-modules/pyunifiprotect { }; -# pyupdate = callPackage ./python-modules/pyupdate { }; + # pyupdate = callPackage ./python-modules/pyupdate { }; -# pyupgrade = callPackage ./python-modules/pyupgrade { }; + # pyupgrade = callPackage ./python-modules/pyupgrade { }; -# pyuptimerobot = callPackage ./python-modules/pyuptimerobot { }; + # pyuptimerobot = callPackage ./python-modules/pyuptimerobot { }; -# pyusb = callPackage ./python-modules/pyusb { -# inherit (pkgs) libusb1; -# }; + # pyusb = callPackage ./python-modules/pyusb { + # inherit (pkgs) libusb1; + # }; -# pyuseragents = callPackage ./python-modules/pyuseragents { }; + # pyuseragents = callPackage ./python-modules/pyuseragents { }; -# pyutilib = callPackage ./python-modules/pyutilib { }; + # pyutilib = callPackage ./python-modules/pyutilib { }; -# pyuv = callPackage ./python-modules/pyuv { }; + # pyuv = callPackage ./python-modules/pyuv { }; -# py-vapid = callPackage ./python-modules/py-vapid { }; + # py-vapid = callPackage ./python-modules/py-vapid { }; -# pyvcd = callPackage ./python-modules/pyvcd { }; + # pyvcd = callPackage ./python-modules/pyvcd { }; -# pyvera = callPackage ./python-modules/pyvera { }; + # pyvera = callPackage ./python-modules/pyvera { }; -# pyverilog = callPackage ./python-modules/pyverilog { }; + # pyverilog = callPackage ./python-modules/pyverilog { }; -# pyversasense = callPackage ./python-modules/pyversasense { }; + # pyversasense = callPackage ./python-modules/pyversasense { }; -# pyvesync = callPackage ./python-modules/pyvesync { }; + # pyvesync = callPackage ./python-modules/pyvesync { }; -# pyvex = callPackage ./python-modules/pyvex { }; + # pyvex = callPackage ./python-modules/pyvex { }; -# pyvicare = callPackage ./python-modules/pyvicare { }; + # pyvicare = callPackage ./python-modules/pyvicare { }; -# pyvirtualdisplay = callPackage ./python-modules/pyvirtualdisplay { }; + # pyvirtualdisplay = callPackage ./python-modules/pyvirtualdisplay { }; -# pyvis = callPackage ./python-modules/pyvis { }; + # pyvis = callPackage ./python-modules/pyvis { }; -# pyvisa = callPackage ./python-modules/pyvisa { }; + # pyvisa = callPackage ./python-modules/pyvisa { }; -# pyvisa-py = callPackage ./python-modules/pyvisa-py { }; + # pyvisa-py = callPackage ./python-modules/pyvisa-py { }; -# pyvisa-sim = callPackage ./python-modules/pyvisa-sim { }; + # pyvisa-sim = callPackage ./python-modules/pyvisa-sim { }; -# pyvista = callPackage ./python-modules/pyvista { }; + # pyvista = callPackage ./python-modules/pyvista { }; -# pyviz-comms = callPackage ./python-modules/pyviz-comms { }; + # pyviz-comms = callPackage ./python-modules/pyviz-comms { }; -# pyvizio = callPackage ./python-modules/pyvizio { }; + # pyvizio = callPackage ./python-modules/pyvizio { }; -# pyvips = callPackage ./python-modules/pyvips { -# inherit (pkgs) vips glib; -# }; + # pyvips = callPackage ./python-modules/pyvips { + # inherit (pkgs) vips glib; + # }; -# pyvlx = callPackage ./python-modules/pyvlx { }; + # pyvlx = callPackage ./python-modules/pyvlx { }; -# pyvmomi = callPackage ./python-modules/pyvmomi { }; + # pyvmomi = callPackage ./python-modules/pyvmomi { }; -# pyvo = callPackage ./python-modules/pyvo { }; + # pyvo = callPackage ./python-modules/pyvo { }; -# pyvolumio = callPackage ./python-modules/pyvolumio { }; + # pyvolumio = callPackage ./python-modules/pyvolumio { }; -# pyvoro = callPackage ./python-modules/pyvoro { }; + # pyvoro = callPackage ./python-modules/pyvoro { }; -# pywal = callPackage ./python-modules/pywal { }; + # pywal = callPackage ./python-modules/pywal { }; -# pywatchman = callPackage ./python-modules/pywatchman { }; + # pywatchman = callPackage ./python-modules/pywatchman { }; -# pywaterkotte = callPackage ./python-modules/pywaterkotte { }; + # pywaterkotte = callPackage ./python-modules/pywaterkotte { }; -# pywavefront = callPackage ./python-modules/pywavefront { }; + # pywavefront = callPackage ./python-modules/pywavefront { }; -# pywavelets = callPackage ./python-modules/pywavelets { }; + # pywavelets = callPackage ./python-modules/pywavelets { }; -# pywayland = callPackage ./python-modules/pywayland { }; + # pywayland = callPackage ./python-modules/pywayland { }; -# pywaze = callPackage ./python-modules/pywaze { }; + # pywaze = callPackage ./python-modules/pywaze { }; -# pywbem = callPackage ./python-modules/pywbem { -# inherit (pkgs) libxml2; -# }; + # pywbem = callPackage ./python-modules/pywbem { + # inherit (pkgs) libxml2; + # }; -# pyweatherflowrest = callPackage ./python-modules/pyweatherflowrest { }; + # pyweatherflowrest = callPackage ./python-modules/pyweatherflowrest { }; -# pyweatherflowudp = callPackage ./python-modules/pyweatherflowudp { }; + # pyweatherflowudp = callPackage ./python-modules/pyweatherflowudp { }; -# pywebpush = callPackage ./python-modules/pywebpush { }; + # pywebpush = callPackage ./python-modules/pywebpush { }; -# pywebview = callPackage ./python-modules/pywebview { }; + # pywebview = callPackage ./python-modules/pywebview { }; -# pywemo = callPackage ./python-modules/pywemo { }; + # pywemo = callPackage ./python-modules/pywemo { }; -# pywerview = callPackage ./python-modules/pywerview { }; + # pywerview = callPackage ./python-modules/pywerview { }; -# pywfa = callPackage ./python-modules/pywfa { }; + # pywfa = callPackage ./python-modules/pywfa { }; -# pywilight = callPackage ./python-modules/pywilight { }; + # pywilight = callPackage ./python-modules/pywilight { }; -# pywinrm = callPackage ./python-modules/pywinrm { }; + # pywinrm = callPackage ./python-modules/pywinrm { }; -# pywizlight = callPackage ./python-modules/pywizlight { }; + # pywizlight = callPackage ./python-modules/pywizlight { }; -# pywlroots = callPackage ./python-modules/pywlroots { -# wlroots = pkgs.wlroots_0_16; -# }; + # pywlroots = callPackage ./python-modules/pywlroots { + # wlroots = pkgs.wlroots_0_16; + # }; -# pyws66i = callPackage ./python-modules/pyws66i { }; + # pyws66i = callPackage ./python-modules/pyws66i { }; -# pyxattr = callPackage ./python-modules/pyxattr { }; + # pyxattr = callPackage ./python-modules/pyxattr { }; -# pyxlsb = callPackage ./python-modules/pyxlsb { }; + # pyxlsb = callPackage ./python-modules/pyxlsb { }; -# pyworld = callPackage ./python-modules/pyworld { }; + # pyworld = callPackage ./python-modules/pyworld { }; -# pyx = callPackage ./python-modules/pyx { }; + # pyx = callPackage ./python-modules/pyx { }; -# pyxbe = callPackage ./python-modules/pyxbe { }; + # pyxbe = callPackage ./python-modules/pyxbe { }; -# pyxdg = callPackage ./python-modules/pyxdg { }; + # pyxdg = callPackage ./python-modules/pyxdg { }; -# pyxeoma = callPackage ./python-modules/pyxeoma { }; + # pyxeoma = callPackage ./python-modules/pyxeoma { }; -# pyxiaomigateway = callPackage ./python-modules/pyxiaomigateway { }; + # pyxiaomigateway = callPackage ./python-modules/pyxiaomigateway { }; -# pyxl3 = callPackage ./python-modules/pyxl3 { }; + # pyxl3 = callPackage ./python-modules/pyxl3 { }; -# pyxnat = callPackage ./python-modules/pyxnat { }; + # pyxnat = callPackage ./python-modules/pyxnat { }; -# pyyaml = callPackage ./python-modules/pyyaml { }; + # pyyaml = callPackage ./python-modules/pyyaml { }; -# pyyaml-env-tag = callPackage ./python-modules/pyyaml-env-tag { }; + # pyyaml-env-tag = callPackage ./python-modules/pyyaml-env-tag { }; -# pyyaml-include = callPackage ./python-modules/pyyaml-include { }; + # pyyaml-include = callPackage ./python-modules/pyyaml-include { }; -# pyyardian = callPackage ./python-modules/pyyardian { }; + # pyyardian = callPackage ./python-modules/pyyardian { }; -# pyzabbix = callPackage ./python-modules/pyzabbix { }; + # pyzabbix = callPackage ./python-modules/pyzabbix { }; -# pyzerproc = callPackage ./python-modules/pyzerproc { }; + # pyzerproc = callPackage ./python-modules/pyzerproc { }; -# pyzmq = callPackage ./python-modules/pyzmq { }; + # pyzmq = callPackage ./python-modules/pyzmq { }; -# pyzufall = callPackage ./python-modules/pyzufall { }; + # pyzufall = callPackage ./python-modules/pyzufall { }; -# qbittorrent-api = callPackage ./python-modules/qbittorrent-api { }; + # qbittorrent-api = callPackage ./python-modules/qbittorrent-api { }; -# qasync = callPackage ./python-modules/qasync { }; + # qasync = callPackage ./python-modules/qasync { }; -# qcelemental = callPackage ./python-modules/qcelemental { }; + # qcelemental = callPackage ./python-modules/qcelemental { }; -# qcengine = callPackage ./python-modules/qcengine { }; + # qcengine = callPackage ./python-modules/qcengine { }; -# qcodes = callPackage ./python-modules/qcodes { }; + # qcodes = callPackage ./python-modules/qcodes { }; -# qcodes-contrib-drivers = callPackage ./python-modules/qcodes-contrib-drivers { }; + # qcodes-contrib-drivers = callPackage ./python-modules/qcodes-contrib-drivers { }; -# qcs-api-client = callPackage ./python-modules/qcs-api-client { }; + # qcs-api-client = callPackage ./python-modules/qcs-api-client { }; -# qcs-sdk-python = callPackage ./python-modules/qcs-sdk-python { }; + # qcs-sdk-python = callPackage ./python-modules/qcs-sdk-python { }; -# qdarkstyle = callPackage ./python-modules/qdarkstyle { }; + # qdarkstyle = callPackage ./python-modules/qdarkstyle { }; -# qdldl = callPackage ./python-modules/qdldl { }; + # qdldl = callPackage ./python-modules/qdldl { }; -# qdrant-client = callPackage ./python-modules/qdrant-client { }; + # qdrant-client = callPackage ./python-modules/qdrant-client { }; -# qds-sdk = callPackage ./python-modules/qds-sdk { }; + # qds-sdk = callPackage ./python-modules/qds-sdk { }; -# qgrid = callPackage ./python-modules/qgrid { }; + # qgrid = callPackage ./python-modules/qgrid { }; -# qemu = callPackage ./python-modules/qemu { -# qemu = pkgs.qemu; -# }; + # qemu = callPackage ./python-modules/qemu { + # qemu = pkgs.qemu; + # }; -# qiling = callPackage ./python-modules/qiling { }; + # qiling = callPackage ./python-modules/qiling { }; -# qimage2ndarray = callPackage ./python-modules/qimage2ndarray { }; + # qimage2ndarray = callPackage ./python-modules/qimage2ndarray { }; -# qingping-ble = callPackage ./python-modules/qingping-ble { }; + # qingping-ble = callPackage ./python-modules/qingping-ble { }; -# qiskit = callPackage ./python-modules/qiskit { }; + # qiskit = callPackage ./python-modules/qiskit { }; -# qiskit-aer = callPackage ./python-modules/qiskit-aer { }; + # qiskit-aer = callPackage ./python-modules/qiskit-aer { }; -# qiskit-finance = callPackage ./python-modules/qiskit-finance { }; + # qiskit-finance = callPackage ./python-modules/qiskit-finance { }; -# qiskit-ibmq-provider = callPackage ./python-modules/qiskit-ibmq-provider { }; + # qiskit-ibmq-provider = callPackage ./python-modules/qiskit-ibmq-provider { }; -# qiskit-ignis = callPackage ./python-modules/qiskit-ignis { }; + # qiskit-ignis = callPackage ./python-modules/qiskit-ignis { }; -# qiskit-machine-learning = callPackage ./python-modules/qiskit-machine-learning { }; + # qiskit-machine-learning = callPackage ./python-modules/qiskit-machine-learning { }; -# qiskit-nature = callPackage ./python-modules/qiskit-nature { }; + # qiskit-nature = callPackage ./python-modules/qiskit-nature { }; -# qiskit-optimization = callPackage ./python-modules/qiskit-optimization { }; + # qiskit-optimization = callPackage ./python-modules/qiskit-optimization { }; -# qiskit-terra = callPackage ./python-modules/qiskit-terra { }; + # qiskit-terra = callPackage ./python-modules/qiskit-terra { }; -# qnap-qsw = callPackage ./python-modules/qnap-qsw{ }; + # qnap-qsw = callPackage ./python-modules/qnap-qsw{ }; -# qnapstats = callPackage ./python-modules/qnapstats { }; + # qnapstats = callPackage ./python-modules/qnapstats { }; -# qpageview = callPackage ./python-modules/qpageview { }; + # qpageview = callPackage ./python-modules/qpageview { }; -# qpsolvers = callPackage ./python-modules/qpsolvers { }; + # qpsolvers = callPackage ./python-modules/qpsolvers { }; -# qrcode = callPackage ./python-modules/qrcode { }; + # qrcode = callPackage ./python-modules/qrcode { }; -# qreactor = callPackage ./python-modules/qreactor { }; + # qreactor = callPackage ./python-modules/qreactor { }; -# qscintilla-qt5 = pkgs.libsForQt5.callPackage ./python-modules/qscintilla-qt5 { -# pythonPackages = self; -# }; + # qscintilla-qt5 = pkgs.libsForQt5.callPackage ./python-modules/qscintilla-qt5 { + # pythonPackages = self; + # }; -# qscintilla = self.qscintilla-qt5; + # qscintilla = self.qscintilla-qt5; -# qstylizer = callPackage ./python-modules/qstylizer { }; + # qstylizer = callPackage ./python-modules/qstylizer { }; -# qt-material = callPackage ./python-modules/qt-material { }; + # qt-material = callPackage ./python-modules/qt-material { }; -# qt5reactor = callPackage ./python-modules/qt5reactor { }; + # qt5reactor = callPackage ./python-modules/qt5reactor { }; -# qt6 = pkgs.qt6.override { -# python3 = self.python; -# }; + # qt6 = pkgs.qt6.override { + # python3 = self.python; + # }; -# qtawesome = callPackage ./python-modules/qtawesome { }; + # qtawesome = callPackage ./python-modules/qtawesome { }; -# qtconsole = callPackage ./python-modules/qtconsole { }; + # qtconsole = callPackage ./python-modules/qtconsole { }; -# qtile = callPackage ./python-modules/qtile { -# wlroots = pkgs.wlroots_0_16; -# }; -# qtile-extras = callPackage ./python-modules/qtile-extras { }; + # qtile = callPackage ./python-modules/qtile { + # wlroots = pkgs.wlroots_0_16; + # }; + # qtile-extras = callPackage ./python-modules/qtile-extras { }; -# qtpy = callPackage ./python-modules/qtpy { }; + # qtpy = callPackage ./python-modules/qtpy { }; -# quadprog = callPackage ./python-modules/quadprog { }; + # quadprog = callPackage ./python-modules/quadprog { }; -# qualysclient = callPackage ./python-modules/qualysclient { }; + # qualysclient = callPackage ./python-modules/qualysclient { }; -# quamash = callPackage ./python-modules/quamash { }; + # quamash = callPackage ./python-modules/quamash { }; -# quandl = callPackage ./python-modules/quandl { }; + # quandl = callPackage ./python-modules/quandl { }; -# quantile-forest = callPackage ./python-modules/quantile-forest { }; + # quantile-forest = callPackage ./python-modules/quantile-forest { }; -# quantities = callPackage ./python-modules/quantities { }; + # quantities = callPackage ./python-modules/quantities { }; -# quantiphy = callPackage ./python-modules/quantiphy { }; + # quantiphy = callPackage ./python-modules/quantiphy { }; -# quantile-python = callPackage ./python-modules/quantile-python { }; + # quantile-python = callPackage ./python-modules/quantile-python { }; -# quantiphy-eval = callPackage ./python-modules/quantiphy-eval { }; + # quantiphy-eval = callPackage ./python-modules/quantiphy-eval { }; -# quantum-gateway = callPackage ./python-modules/quantum-gateway { }; + # quantum-gateway = callPackage ./python-modules/quantum-gateway { }; -# quantulum3 = callPackage ./python-modules/quantulum3 { }; + # quantulum3 = callPackage ./python-modules/quantulum3 { }; -# quart = callPackage ./python-modules/quart { }; + # quart = callPackage ./python-modules/quart { }; -# quart-cors = callPackage ./python-modules/quart-cors { }; + # quart-cors = callPackage ./python-modules/quart-cors { }; -# quaternion = callPackage ./python-modules/quaternion { }; + # quaternion = callPackage ./python-modules/quaternion { }; -# qudida = callPackage ./python-modules/qudida { }; + # qudida = callPackage ./python-modules/qudida { }; -# querystring-parser = callPackage ./python-modules/querystring-parser { }; + # querystring-parser = callPackage ./python-modules/querystring-parser { }; -# questionary = callPackage ./python-modules/questionary { }; + # questionary = callPackage ./python-modules/questionary { }; -# queuelib = callPackage ./python-modules/queuelib { }; + # queuelib = callPackage ./python-modules/queuelib { }; -# quil = callPackage ./python-modules/quil { }; + # quil = callPackage ./python-modules/quil { }; -# quixote = callPackage ./python-modules/quixote { }; + # quixote = callPackage ./python-modules/quixote { }; -# qutip = callPackage ./python-modules/qutip { }; + # qutip = callPackage ./python-modules/qutip { }; -# qmk-dotty-dict = callPackage ./python-modules/qmk-dotty-dict { }; + # qmk-dotty-dict = callPackage ./python-modules/qmk-dotty-dict { }; -# r2pipe = callPackage ./python-modules/r2pipe { }; + # r2pipe = callPackage ./python-modules/r2pipe { }; -# rachiopy = callPackage ./python-modules/rachiopy { }; + # rachiopy = callPackage ./python-modules/rachiopy { }; -# radicale-infcloud = callPackage ./python-modules/radicale-infcloud { -# radicale = pkgs.radicale.override { python3 = python; }; -# }; + # radicale-infcloud = callPackage ./python-modules/radicale-infcloud { + # radicale = pkgs.radicale.override { python3 = python; }; + # }; -# radian = callPackage ./python-modules/radian { }; + # radian = callPackage ./python-modules/radian { }; -# radio-beam = callPackage ./python-modules/radio-beam { }; + # radio-beam = callPackage ./python-modules/radio-beam { }; -# radios = callPackage ./python-modules/radios { }; + # radios = callPackage ./python-modules/radios { }; -# radiotherm = callPackage ./python-modules/radiotherm { }; + # radiotherm = callPackage ./python-modules/radiotherm { }; -# radish-bdd = callPackage ./python-modules/radish-bdd { }; + # radish-bdd = callPackage ./python-modules/radish-bdd { }; -# radon = callPackage ./python-modules/radon { }; + # radon = callPackage ./python-modules/radon { }; -# railroad-diagrams = callPackage ./python-modules/railroad-diagrams { }; + # railroad-diagrams = callPackage ./python-modules/railroad-diagrams { }; -# rainbowstream = callPackage ./python-modules/rainbowstream { }; + # rainbowstream = callPackage ./python-modules/rainbowstream { }; -# raincloudy = callPackage ./python-modules/raincloudy { }; + # raincloudy = callPackage ./python-modules/raincloudy { }; -# ramlfications = callPackage ./python-modules/ramlfications { }; + # ramlfications = callPackage ./python-modules/ramlfications { }; -# random2 = callPackage ./python-modules/random2 { }; + # random2 = callPackage ./python-modules/random2 { }; -# randomfiletree = callPackage ./python-modules/randomfiletree { }; + # randomfiletree = callPackage ./python-modules/randomfiletree { }; -# range-typed-integers = callPackage ./python-modules/range-typed-integers { }; + # range-typed-integers = callPackage ./python-modules/range-typed-integers { }; -# rangehttpserver = callPackage ./python-modules/rangehttpserver { }; + # rangehttpserver = callPackage ./python-modules/rangehttpserver { }; -# rangeparser = callPackage ./python-modules/rangeparser { }; + # rangeparser = callPackage ./python-modules/rangeparser { }; -# rank-bm25 = callPackage ./python-modules/rank-bm25 { }; + # rank-bm25 = callPackage ./python-modules/rank-bm25 { }; -# rapidfuzz = callPackage ./python-modules/rapidfuzz { }; + # rapidfuzz = callPackage ./python-modules/rapidfuzz { }; -# rapidfuzz-capi = callPackage ./python-modules/rapidfuzz-capi { }; + # rapidfuzz-capi = callPackage ./python-modules/rapidfuzz-capi { }; -# rapidgzip = callPackage ./python-modules/rapidgzip { inherit (pkgs) nasm; }; + # rapidgzip = callPackage ./python-modules/rapidgzip { inherit (pkgs) nasm; }; -# rapt-ble = callPackage ./python-modules/rapt-ble { }; + # rapt-ble = callPackage ./python-modules/rapt-ble { }; -# rarfile = callPackage ./python-modules/rarfile { -# inherit (pkgs) libarchive; -# }; + # rarfile = callPackage ./python-modules/rarfile { + # inherit (pkgs) libarchive; + # }; -# rasterio = callPackage ./python-modules/rasterio { }; + # rasterio = callPackage ./python-modules/rasterio { }; -# ratarmountcore = callPackage ./python-modules/ratarmountcore { inherit (pkgs) zstd; }; + # ratarmountcore = callPackage ./python-modules/ratarmountcore { inherit (pkgs) zstd; }; -# ratarmount = callPackage ./python-modules/ratarmount { }; + # ratarmount = callPackage ./python-modules/ratarmount { }; -# ratelim = callPackage ./python-modules/ratelim { }; + # ratelim = callPackage ./python-modules/ratelim { }; -# ratelimit = callPackage ./python-modules/ratelimit { }; + # ratelimit = callPackage ./python-modules/ratelimit { }; -# rauth = callPackage ./python-modules/rauth { }; + # rauth = callPackage ./python-modules/rauth { }; -# raven = callPackage ./python-modules/raven { }; + # raven = callPackage ./python-modules/raven { }; -# rawkit = callPackage ./python-modules/rawkit { }; + # rawkit = callPackage ./python-modules/rawkit { }; -# ray = callPackage ./python-modules/ray { }; + # ray = callPackage ./python-modules/ray { }; -# razdel = callPackage ./python-modules/razdel { }; + # razdel = callPackage ./python-modules/razdel { }; -# rbtools = callPackage ./python-modules/rbtools { }; + # rbtools = callPackage ./python-modules/rbtools { }; -# rchitect = callPackage ./python-modules/rchitect { }; + # rchitect = callPackage ./python-modules/rchitect { }; -# rcssmin = callPackage ./python-modules/rcssmin { }; + # rcssmin = callPackage ./python-modules/rcssmin { }; -# rdflib = callPackage ./python-modules/rdflib { }; + # rdflib = callPackage ./python-modules/rdflib { }; -# rdkit = callPackage ./python-modules/rdkit { -# boost = pkgs.boost182.override { -# enablePython = true; -# inherit python; -# }; -# }; + # rdkit = callPackage ./python-modules/rdkit { + # boost = pkgs.boost182.override { + # enablePython = true; + # inherit python; + # }; + # }; -# re-assert = callPackage ./python-modules/re-assert { }; + # re-assert = callPackage ./python-modules/re-assert { }; -# readability-lxml = callPackage ./python-modules/readability-lxml { }; + # readability-lxml = callPackage ./python-modules/readability-lxml { }; -# readabilipy = callPackage ./python-modules/readabilipy { }; + # readabilipy = callPackage ./python-modules/readabilipy { }; -# readchar = callPackage ./python-modules/readchar { }; + # readchar = callPackage ./python-modules/readchar { }; -# readlike = callPackage ./python-modules/readlike { }; + # readlike = callPackage ./python-modules/readlike { }; -# readmdict = callPackage ./python-modules/readmdict { }; + # readmdict = callPackage ./python-modules/readmdict { }; -# readme = callPackage ./python-modules/readme { }; + # readme = callPackage ./python-modules/readme { }; -# readme-renderer = callPackage ./python-modules/readme-renderer { }; + # readme-renderer = callPackage ./python-modules/readme-renderer { }; -# readthedocs-sphinx-ext = callPackage ./python-modules/readthedocs-sphinx-ext { }; + # readthedocs-sphinx-ext = callPackage ./python-modules/readthedocs-sphinx-ext { }; -# reactivex = callPackage ./python-modules/reactivex { }; + # reactivex = callPackage ./python-modules/reactivex { }; -# rebulk = callPackage ./python-modules/rebulk { }; + # rebulk = callPackage ./python-modules/rebulk { }; -# recipe-scrapers = callPackage ./python-modules/recipe-scrapers { }; + # recipe-scrapers = callPackage ./python-modules/recipe-scrapers { }; -# recline = callPackage ./python-modules/recline { }; + # recline = callPackage ./python-modules/recline { }; -# recoll = toPythonModule (pkgs.recoll.override { -# python3Packages = self; -# }); + # recoll = toPythonModule (pkgs.recoll.override { + # python3Packages = self; + # }); -# recommonmark = callPackage ./python-modules/recommonmark { }; + # recommonmark = callPackage ./python-modules/recommonmark { }; -# reconplogger = callPackage ./python-modules/reconplogger { }; + # reconplogger = callPackage ./python-modules/reconplogger { }; -# recordlinkage = callPackage ./python-modules/recordlinkage { }; + # recordlinkage = callPackage ./python-modules/recordlinkage { }; -# recurring-ical-events = callPackage ./python-modules/recurring-ical-events { }; + # recurring-ical-events = callPackage ./python-modules/recurring-ical-events { }; -# recursive-pth-loader = toPythonModule (callPackage ./python-modules/recursive-pth-loader { }); + # recursive-pth-loader = toPythonModule (callPackage ./python-modules/recursive-pth-loader { }); -# red-black-tree-mod = callPackage ./python-modules/red-black-tree-mod { }; + # red-black-tree-mod = callPackage ./python-modules/red-black-tree-mod { }; -# redbaron = callPackage ./python-modules/redbaron { }; + # redbaron = callPackage ./python-modules/redbaron { }; -# redis = callPackage ./python-modules/redis { }; + # redis = callPackage ./python-modules/redis { }; -# redis-om = callPackage ./python-modules/redis-om { }; + # redis-om = callPackage ./python-modules/redis-om { }; -# redshift-connector = callPackage ./python-modules/redshift-connector { }; + # redshift-connector = callPackage ./python-modules/redshift-connector { }; -# reedsolo = callPackage ./python-modules/reedsolo { }; + # reedsolo = callPackage ./python-modules/reedsolo { }; -# referencing = callPackage ./python-modules/referencing { }; + # referencing = callPackage ./python-modules/referencing { }; -# refery = callPackage ./python-modules/refery { }; + # refery = callPackage ./python-modules/refery { }; -# reflink = callPackage ./python-modules/reflink { }; + # reflink = callPackage ./python-modules/reflink { }; -# regenmaschine = callPackage ./python-modules/regenmaschine { }; + # regenmaschine = callPackage ./python-modules/regenmaschine { }; -# regex = callPackage ./python-modules/regex { }; + # regex = callPackage ./python-modules/regex { }; -# regional = callPackage ./python-modules/regional { }; + # regional = callPackage ./python-modules/regional { }; -# reikna = callPackage ./python-modules/reikna { }; + # reikna = callPackage ./python-modules/reikna { }; -# related = callPackage ./python-modules/related { }; + # related = callPackage ./python-modules/related { }; -# relatorio = callPackage ./python-modules/relatorio { }; + # relatorio = callPackage ./python-modules/relatorio { }; -# releases = callPackage ./python-modules/releases { }; + # releases = callPackage ./python-modules/releases { }; -# remarshal = callPackage ./python-modules/remarshal { }; + # remarshal = callPackage ./python-modules/remarshal { }; -# remi = callPackage ./python-modules/remi { }; + # remi = callPackage ./python-modules/remi { }; -# remote-pdb = callPackage ./python-modules/remote-pdb { }; + # remote-pdb = callPackage ./python-modules/remote-pdb { }; -# remotezip = callPackage ./python-modules/remotezip { }; + # remotezip = callPackage ./python-modules/remotezip { }; -# renault-api = callPackage ./python-modules/renault-api { }; + # renault-api = callPackage ./python-modules/renault-api { }; -# rencode = callPackage ./python-modules/rencode { }; + # rencode = callPackage ./python-modules/rencode { }; -# renson-endura-delta = callPackage ./python-modules/renson-endura-delta { }; + # renson-endura-delta = callPackage ./python-modules/renson-endura-delta { }; -# reorder-python-imports = callPackage ./python-modules/reorder-python-imports { }; + # reorder-python-imports = callPackage ./python-modules/reorder-python-imports { }; -# reolink = callPackage ./python-modules/reolink { }; + # reolink = callPackage ./python-modules/reolink { }; -# reolink-aio = callPackage ./python-modules/reolink-aio { }; + # reolink-aio = callPackage ./python-modules/reolink-aio { }; -# reparser = callPackage ./python-modules/reparser { }; + # reparser = callPackage ./python-modules/reparser { }; -# repath = callPackage ./python-modules/repath { }; + # repath = callPackage ./python-modules/repath { }; -# repeated-test = callPackage ./python-modules/repeated-test { }; + # repeated-test = callPackage ./python-modules/repeated-test { }; -# repocheck = callPackage ./python-modules/repocheck { }; + # repocheck = callPackage ./python-modules/repocheck { }; -# reportengine = callPackage ./python-modules/reportengine { }; + # reportengine = callPackage ./python-modules/reportengine { }; -# reportlab = callPackage ./python-modules/reportlab { }; + # reportlab = callPackage ./python-modules/reportlab { }; -# repoze-lru = callPackage ./python-modules/repoze-lru { }; + # repoze-lru = callPackage ./python-modules/repoze-lru { }; -# repoze-sphinx-autointerface = callPackage ./python-modules/repoze-sphinx-autointerface { }; + # repoze-sphinx-autointerface = callPackage ./python-modules/repoze-sphinx-autointerface { }; -# repoze-who = callPackage ./python-modules/repoze-who { }; + # repoze-who = callPackage ./python-modules/repoze-who { }; -# reproject = callPackage ./python-modules/reproject { }; + # reproject = callPackage ./python-modules/reproject { }; -# reprshed = callPackage ./python-modules/reprshed { }; + # reprshed = callPackage ./python-modules/reprshed { }; -# reptor = callPackage ./python-modules/reptor { }; + # reptor = callPackage ./python-modules/reptor { }; -# reqif = callPackage ./python-modules/reqif { }; + # reqif = callPackage ./python-modules/reqif { }; -# requests-aws4auth = callPackage ./python-modules/requests-aws4auth { }; + # requests-aws4auth = callPackage ./python-modules/requests-aws4auth { }; -# requests-cache = callPackage ./python-modules/requests-cache { }; + # requests-cache = callPackage ./python-modules/requests-cache { }; -# requests-credssp = callPackage ./python-modules/requests-credssp { }; + # requests-credssp = callPackage ./python-modules/requests-credssp { }; -# requests-gssapi = callPackage ./python-modules/requests-gssapi { }; + # requests-gssapi = callPackage ./python-modules/requests-gssapi { }; -# requests-hawk = callPackage ./python-modules/requests-hawk { }; + # requests-hawk = callPackage ./python-modules/requests-hawk { }; requests = callPackage ./python-modules/requests { }; -# requests-download = callPackage ./python-modules/requests-download { }; + # requests-download = callPackage ./python-modules/requests-download { }; -# requestsexceptions = callPackage ./python-modules/requestsexceptions { }; + # requestsexceptions = callPackage ./python-modules/requestsexceptions { }; -# requests-file = callPackage ./python-modules/requests-file { }; + # requests-file = callPackage ./python-modules/requests-file { }; -# requests-futures = callPackage ./python-modules/requests-futures { }; + # requests-futures = callPackage ./python-modules/requests-futures { }; -# requests-http-signature = callPackage ./python-modules/requests-http-signature { }; + # requests-http-signature = callPackage ./python-modules/requests-http-signature { }; -# requests-kerberos = callPackage ./python-modules/requests-kerberos { }; + # requests-kerberos = callPackage ./python-modules/requests-kerberos { }; -# requests-mock = callPackage ./python-modules/requests-mock { }; + # requests-mock = callPackage ./python-modules/requests-mock { }; -# requests-ntlm = callPackage ./python-modules/requests-ntlm { }; + # requests-ntlm = callPackage ./python-modules/requests-ntlm { }; -# requests-oauthlib = callPackage ./python-modules/requests-oauthlib { }; + # requests-oauthlib = callPackage ./python-modules/requests-oauthlib { }; -# requests-pkcs12 = callPackage ./python-modules/requests-pkcs12 { }; + # requests-pkcs12 = callPackage ./python-modules/requests-pkcs12 { }; -# requests-ratelimiter = callPackage ./python-modules/requests-ratelimiter { }; + # requests-ratelimiter = callPackage ./python-modules/requests-ratelimiter { }; -# requests-toolbelt = callPackage ./python-modules/requests-toolbelt { }; + # requests-toolbelt = callPackage ./python-modules/requests-toolbelt { }; -# requests-unixsocket = callPackage ./python-modules/requests-unixsocket { }; + # requests-unixsocket = callPackage ./python-modules/requests-unixsocket { }; -# requests-wsgi-adapter = callPackage ./python-modules/requests-wsgi-adapter { }; + # requests-wsgi-adapter = callPackage ./python-modules/requests-wsgi-adapter { }; -# requirements-detector = callPackage ./python-modules/requirements-detector { }; + # requirements-detector = callPackage ./python-modules/requirements-detector { }; -# requirements-parser = callPackage ./python-modules/requirements-parser { }; + # requirements-parser = callPackage ./python-modules/requirements-parser { }; -# reretry = callPackage ./python-modules/reretry { }; + # reretry = callPackage ./python-modules/reretry { }; -# rerun-sdk = callPackage ./python-modules/rerun-sdk { }; + # rerun-sdk = callPackage ./python-modules/rerun-sdk { }; -# resampy = callPackage ./python-modules/resampy { }; + # resampy = callPackage ./python-modules/resampy { }; -# resend = callPackage ./python-modules/resend { }; + # resend = callPackage ./python-modules/resend { }; -# resize-right = callPackage ./python-modules/resize-right { }; + # resize-right = callPackage ./python-modules/resize-right { }; -# resolvelib = callPackage ./python-modules/resolvelib { }; + # resolvelib = callPackage ./python-modules/resolvelib { }; responses = callPackage ./python-modules/responses { }; -# respx = callPackage ./python-modules/respx { }; + # respx = callPackage ./python-modules/respx { }; -# restfly = callPackage ./python-modules/restfly { }; + # restfly = callPackage ./python-modules/restfly { }; -# restrictedpython = callPackage ./python-modules/restrictedpython { }; + # restrictedpython = callPackage ./python-modules/restrictedpython { }; -# restructuredtext-lint = callPackage ./python-modules/restructuredtext-lint { }; + # restructuredtext-lint = callPackage ./python-modules/restructuredtext-lint { }; -# restview = callPackage ./python-modules/restview { }; + # restview = callPackage ./python-modules/restview { }; -# result = callPackage ./python-modules/result { }; + # result = callPackage ./python-modules/result { }; -# rethinkdb = callPackage ./python-modules/rethinkdb { }; + # rethinkdb = callPackage ./python-modules/rethinkdb { }; -# retry = callPackage ./python-modules/retry { }; + # retry = callPackage ./python-modules/retry { }; -# retry-decorator = callPackage ./python-modules/retry-decorator { }; + # retry-decorator = callPackage ./python-modules/retry-decorator { }; -# retrying = callPackage ./python-modules/retrying { }; + # retrying = callPackage ./python-modules/retrying { }; -# returns = callPackage ./python-modules/returns { }; + # returns = callPackage ./python-modules/returns { }; -# reuse = callPackage ./python-modules/reuse { }; + # reuse = callPackage ./python-modules/reuse { }; -# rfc3339 = callPackage ./python-modules/rfc3339 { }; + # rfc3339 = callPackage ./python-modules/rfc3339 { }; -# rfc3339-validator = callPackage ./python-modules/rfc3339-validator { }; + # rfc3339-validator = callPackage ./python-modules/rfc3339-validator { }; -# rfc3986 = callPackage ./python-modules/rfc3986 { }; + # rfc3986 = callPackage ./python-modules/rfc3986 { }; -# rfc3986-validator = callPackage ./python-modules/rfc3986-validator { }; + # rfc3986-validator = callPackage ./python-modules/rfc3986-validator { }; -# rfc3987 = callPackage ./python-modules/rfc3987 { }; + # rfc3987 = callPackage ./python-modules/rfc3987 { }; -# rfc6555 = callPackage ./python-modules/rfc6555 { }; + # rfc6555 = callPackage ./python-modules/rfc6555 { }; -# rfc7464 = callPackage ./python-modules/rfc7464 { }; + # rfc7464 = callPackage ./python-modules/rfc7464 { }; -# rfcat = callPackage ./python-modules/rfcat { }; + # rfcat = callPackage ./python-modules/rfcat { }; -# rflink = callPackage ./python-modules/rflink { }; + # rflink = callPackage ./python-modules/rflink { }; -# rich = callPackage ./python-modules/rich { }; + # rich = callPackage ./python-modules/rich { }; -# rich-argparse = callPackage ./python-modules/rich-argparse { }; + # rich-argparse = callPackage ./python-modules/rich-argparse { }; -# rich-argparse-plus = callPackage ./python-modules/rich-argparse-plus { }; + # rich-argparse-plus = callPackage ./python-modules/rich-argparse-plus { }; -# rich-click = callPackage ./python-modules/rich-click { }; + # rich-click = callPackage ./python-modules/rich-click { }; -# rich-pixels = callPackage ./python-modules/rich-pixels { }; + # rich-pixels = callPackage ./python-modules/rich-pixels { }; -# rich-rst = callPackage ./python-modules/rich-rst { }; + # rich-rst = callPackage ./python-modules/rich-rst { }; -# ring-doorbell = callPackage ./python-modules/ring-doorbell { }; + # ring-doorbell = callPackage ./python-modules/ring-doorbell { }; -# ripe-atlas-cousteau = callPackage ./python-modules/ripe-atlas-cousteau { }; + # ripe-atlas-cousteau = callPackage ./python-modules/ripe-atlas-cousteau { }; -# ripe-atlas-sagan = callPackage ./python-modules/ripe-atlas-sagan { }; + # ripe-atlas-sagan = callPackage ./python-modules/ripe-atlas-sagan { }; -# riprova = callPackage ./python-modules/riprova { }; + # riprova = callPackage ./python-modules/riprova { }; -# ripser = callPackage ./python-modules/ripser { }; + # ripser = callPackage ./python-modules/ripser { }; -# riscof = callPackage ./python-modules/riscof { }; + # riscof = callPackage ./python-modules/riscof { }; -# riscv-config = callPackage ./python-modules/riscv-config { }; + # riscv-config = callPackage ./python-modules/riscv-config { }; -# riscv-isac = callPackage ./python-modules/riscv-isac { }; + # riscv-isac = callPackage ./python-modules/riscv-isac { }; -# rising = callPackage ./python-modules/rising { }; + # rising = callPackage ./python-modules/rising { }; -# ritassist = callPackage ./python-modules/ritassist { }; + # ritassist = callPackage ./python-modules/ritassist { }; -# rivet = toPythonModule (pkgs.rivet.override { -# python3 = python; -# }); + # rivet = toPythonModule (pkgs.rivet.override { + # python3 = python; + # }); -# rjpl = callPackage ./python-modules/rjpl { }; + # rjpl = callPackage ./python-modules/rjpl { }; -# rjsmin = callPackage ./python-modules/rjsmin { }; + # rjsmin = callPackage ./python-modules/rjsmin { }; -# rki-covid-parser = callPackage ./python-modules/rki-covid-parser { }; + # rki-covid-parser = callPackage ./python-modules/rki-covid-parser { }; -# rkm-codes = callPackage ./python-modules/rkm-codes { }; + # rkm-codes = callPackage ./python-modules/rkm-codes { }; -# rlax = callPackage ./python-modules/rlax { }; + # rlax = callPackage ./python-modules/rlax { }; -# rlp = callPackage ./python-modules/rlp { }; + # rlp = callPackage ./python-modules/rlp { }; -# rmcl = callPackage ./python-modules/rmcl { }; + # rmcl = callPackage ./python-modules/rmcl { }; -# rmrl = callPackage ./python-modules/rmrl { }; + # rmrl = callPackage ./python-modules/rmrl { }; -# rmscene = callPackage ./python-modules/rmscene { }; + # rmscene = callPackage ./python-modules/rmscene { }; -# rmsd = callPackage ./python-modules/rmsd { }; + # rmsd = callPackage ./python-modules/rmsd { }; -# rnc2rng = callPackage ./python-modules/rnc2rng { }; + # rnc2rng = callPackage ./python-modules/rnc2rng { }; -# rnginline = callPackage ./python-modules/rnginline { }; + # rnginline = callPackage ./python-modules/rnginline { }; -# rns = callPackage ./python-modules/rns { }; + # rns = callPackage ./python-modules/rns { }; -# roadlib = callPackage ./python-modules/roadlib { }; + # roadlib = callPackage ./python-modules/roadlib { }; -# roadrecon = callPackage ./python-modules/roadrecon { }; + # roadrecon = callPackage ./python-modules/roadrecon { }; -# roadtools = callPackage ./python-modules/roadtools { }; + # roadtools = callPackage ./python-modules/roadtools { }; -# roadtx = callPackage ./python-modules/roadtx { }; + # roadtx = callPackage ./python-modules/roadtx { }; -# robomachine = callPackage ./python-modules/robomachine { }; + # robomachine = callPackage ./python-modules/robomachine { }; -# robot-detection = callPackage ./python-modules/robot-detection { }; + # robot-detection = callPackage ./python-modules/robot-detection { }; -# robotframework = callPackage ./python-modules/robotframework { }; + # robotframework = callPackage ./python-modules/robotframework { }; -# robotframework-databaselibrary = callPackage ./python-modules/robotframework-databaselibrary { }; + # robotframework-databaselibrary = callPackage ./python-modules/robotframework-databaselibrary { }; -# robotframework-excellib = callPackage ./python-modules/robotframework-excellib { }; + # robotframework-excellib = callPackage ./python-modules/robotframework-excellib { }; -# robotframework-pythonlibcore = callPackage ./python-modules/robotframework-pythonlibcore { }; + # robotframework-pythonlibcore = callPackage ./python-modules/robotframework-pythonlibcore { }; -# robotframework-requests = callPackage ./python-modules/robotframework-requests { }; + # robotframework-requests = callPackage ./python-modules/robotframework-requests { }; -# robotframework-selenium2library = callPackage ./python-modules/robotframework-selenium2library { }; + # robotframework-selenium2library = callPackage ./python-modules/robotframework-selenium2library { }; -# robotframework-seleniumlibrary = callPackage ./python-modules/robotframework-seleniumlibrary { }; + # robotframework-seleniumlibrary = callPackage ./python-modules/robotframework-seleniumlibrary { }; -# robotframework-sshlibrary = callPackage ./python-modules/robotframework-sshlibrary { }; + # robotframework-sshlibrary = callPackage ./python-modules/robotframework-sshlibrary { }; -# robotframework-tools = callPackage ./python-modules/robotframework-tools { }; + # robotframework-tools = callPackage ./python-modules/robotframework-tools { }; -# robotstatuschecker = callPackage ./python-modules/robotstatuschecker { }; + # robotstatuschecker = callPackage ./python-modules/robotstatuschecker { }; -# robotsuite = callPackage ./python-modules/robotsuite { }; + # robotsuite = callPackage ./python-modules/robotsuite { }; -# rocket-errbot = callPackage ./python-modules/rocket-errbot { }; + # rocket-errbot = callPackage ./python-modules/rocket-errbot { }; -# roku = callPackage ./python-modules/roku { }; + # roku = callPackage ./python-modules/roku { }; -# rokuecp = callPackage ./python-modules/rokuecp { }; + # rokuecp = callPackage ./python-modules/rokuecp { }; -# rollbar = callPackage ./python-modules/rollbar { }; + # rollbar = callPackage ./python-modules/rollbar { }; -# roman = callPackage ./python-modules/roman { }; + # roman = callPackage ./python-modules/roman { }; -# romy = callPackage ./python-modules/romy { }; + # romy = callPackage ./python-modules/romy { }; -# roombapy = callPackage ./python-modules/roombapy { }; + # roombapy = callPackage ./python-modules/roombapy { }; -# roonapi = callPackage ./python-modules/roonapi { }; + # roonapi = callPackage ./python-modules/roonapi { }; -# ronin = callPackage ./python-modules/ronin { }; + # ronin = callPackage ./python-modules/ronin { }; -# rope = callPackage ./python-modules/rope { }; + # rope = callPackage ./python-modules/rope { }; -# ropgadget = callPackage ./python-modules/ropgadget { }; + # ropgadget = callPackage ./python-modules/ropgadget { }; -# ropper = callPackage ./python-modules/ropper { }; + # ropper = callPackage ./python-modules/ropper { }; -# rotary-embedding-torch = callPackage ./python-modules/rotary-embedding-torch { }; + # rotary-embedding-torch = callPackage ./python-modules/rotary-embedding-torch { }; -# rouge-score = callPackage ./python-modules/rouge-score { }; + # rouge-score = callPackage ./python-modules/rouge-score { }; -# routeros-api = callPackage ./python-modules/routeros-api { }; + # routeros-api = callPackage ./python-modules/routeros-api { }; -# routes = callPackage ./python-modules/routes { }; + # routes = callPackage ./python-modules/routes { }; -# rova = callPackage ./python-modules/rova { }; + # rova = callPackage ./python-modules/rova { }; -# rpcq = callPackage ./python-modules/rpcq { }; + # rpcq = callPackage ./python-modules/rpcq { }; -# rpdb = callPackage ./python-modules/rpdb { }; + # rpdb = callPackage ./python-modules/rpdb { }; -# rpds-py = callPackage ./python-modules/rpds-py { }; + # rpds-py = callPackage ./python-modules/rpds-py { }; -# rpi-bad-power = callPackage ./python-modules/rpi-bad-power { }; + # rpi-bad-power = callPackage ./python-modules/rpi-bad-power { }; -# rpi-gpio = callPackage ./python-modules/rpi-gpio { }; + # rpi-gpio = callPackage ./python-modules/rpi-gpio { }; -# rpi-gpio2 = callPackage ./python-modules/rpi-gpio2 { }; + # rpi-gpio2 = callPackage ./python-modules/rpi-gpio2 { }; -# rplcd = callPackage ./python-modules/rplcd { }; + # rplcd = callPackage ./python-modules/rplcd { }; -# rply = callPackage ./python-modules/rply { }; + # rply = callPackage ./python-modules/rply { }; -# rpm = toPythonModule (pkgs.rpm.override { -# inherit python; -# }); + # rpm = toPythonModule (pkgs.rpm.override { + # inherit python; + # }); -# rpmfile = callPackage ./python-modules/rpmfile { }; + # rpmfile = callPackage ./python-modules/rpmfile { }; -# rpmfluff = callPackage ./python-modules/rpmfluff { }; + # rpmfluff = callPackage ./python-modules/rpmfluff { }; -# rpy2 = callPackage ./python-modules/rpy2 { }; + # rpy2 = callPackage ./python-modules/rpy2 { }; -# rpyc = callPackage ./python-modules/rpyc { }; + # rpyc = callPackage ./python-modules/rpyc { }; -# rpyc4 = callPackage ./python-modules/rpyc4 { }; + # rpyc4 = callPackage ./python-modules/rpyc4 { }; -# rq = callPackage ./python-modules/rq { -# redis-server = pkgs.redis; -# }; + # rq = callPackage ./python-modules/rq { + # redis-server = pkgs.redis; + # }; -# rsa = callPackage ./python-modules/rsa { }; + # rsa = callPackage ./python-modules/rsa { }; -# rsskey = callPackage ./python-modules/rsskey { }; + # rsskey = callPackage ./python-modules/rsskey { }; -# rst2ansi = callPackage ./python-modules/rst2ansi { }; + # rst2ansi = callPackage ./python-modules/rst2ansi { }; -# rst2pdf = callPackage ./python-modules/rst2pdf { }; + # rst2pdf = callPackage ./python-modules/rst2pdf { }; -# rstcheck = callPackage ./python-modules/rstcheck { }; + # rstcheck = callPackage ./python-modules/rstcheck { }; -# rstcheck-core = callPackage ./python-modules/rstcheck-core { }; + # rstcheck-core = callPackage ./python-modules/rstcheck-core { }; -# rstr = callPackage ./python-modules/rstr { }; + # rstr = callPackage ./python-modules/rstr { }; -# rtmidi-python = callPackage ./python-modules/rtmidi-python { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices; -# }; + # rtmidi-python = callPackage ./python-modules/rtmidi-python { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices; + # }; -# rtoml = callPackage ./python-modules/rtoml { }; + # rtoml = callPackage ./python-modules/rtoml { }; -# rtp = callPackage ./python-modules/rtp { }; + # rtp = callPackage ./python-modules/rtp { }; -# rtree = callPackage ./python-modules/rtree { -# inherit (pkgs) libspatialindex; -# }; + # rtree = callPackage ./python-modules/rtree { + # inherit (pkgs) libspatialindex; + # }; -# rtslib = callPackage ./python-modules/rtslib { }; + # rtslib = callPackage ./python-modules/rtslib { }; -# rtsp-to-webrtc = callPackage ./python-modules/rtsp-to-webrtc { }; + # rtsp-to-webrtc = callPackage ./python-modules/rtsp-to-webrtc { }; -# ruamel-base = callPackage ./python-modules/ruamel-base { }; + # ruamel-base = callPackage ./python-modules/ruamel-base { }; -# ruamel-yaml = callPackage ./python-modules/ruamel-yaml { }; + # ruamel-yaml = callPackage ./python-modules/ruamel-yaml { }; -# ruamel-yaml-clib = callPackage ./python-modules/ruamel-yaml-clib { }; + # ruamel-yaml-clib = callPackage ./python-modules/ruamel-yaml-clib { }; -# rubicon-objc = callPackage ./python-modules/rubicon-objc { }; + # rubicon-objc = callPackage ./python-modules/rubicon-objc { }; -# rubymarshal = callPackage ./python-modules/rubymarshal { }; + # rubymarshal = callPackage ./python-modules/rubymarshal { }; -# ruffus = callPackage ./python-modules/ruffus { }; + # ruffus = callPackage ./python-modules/ruffus { }; -# rules = callPackage ./python-modules/rules { }; + # rules = callPackage ./python-modules/rules { }; -# runs = callPackage ./python-modules/runs { }; + # runs = callPackage ./python-modules/runs { }; -# ruuvitag-ble = callPackage ./python-modules/ruuvitag-ble { }; + # ruuvitag-ble = callPackage ./python-modules/ruuvitag-ble { }; -# ruyaml = callPackage ./python-modules/ruyaml { }; + # ruyaml = callPackage ./python-modules/ruyaml { }; -# rx = callPackage ./python-modules/rx { }; + # rx = callPackage ./python-modules/rx { }; -# rxv = callPackage ./python-modules/rxv { }; + # rxv = callPackage ./python-modules/rxv { }; -# rzpipe = callPackage ./python-modules/rzpipe { }; + # rzpipe = callPackage ./python-modules/rzpipe { }; -# s2clientprotocol = callPackage ./python-modules/s2clientprotocol { }; + # s2clientprotocol = callPackage ./python-modules/s2clientprotocol { }; -# s3fs = callPackage ./python-modules/s3fs { }; + # s3fs = callPackage ./python-modules/s3fs { }; -# s3transfer = callPackage ./python-modules/s3transfer { }; + # s3transfer = callPackage ./python-modules/s3transfer { }; -# s3-credentials = callPackage ./python-modules/s3-credentials { }; + # s3-credentials = callPackage ./python-modules/s3-credentials { }; -# sabctools = callPackage ./python-modules/sabctools { }; + # sabctools = callPackage ./python-modules/sabctools { }; -# sabyenc3 = callPackage ./python-modules/sabyenc3 { }; + # sabyenc3 = callPackage ./python-modules/sabyenc3 { }; -# sabyenc = callPackage ./python-modules/sabyenc { }; + # sabyenc = callPackage ./python-modules/sabyenc { }; -# sacn = callPackage ./python-modules/sacn { }; + # sacn = callPackage ./python-modules/sacn { }; -# sacrebleu = callPackage ./python-modules/sacrebleu { }; + # sacrebleu = callPackage ./python-modules/sacrebleu { }; -# sacremoses = callPackage ./python-modules/sacremoses { }; + # sacremoses = callPackage ./python-modules/sacremoses { }; -# safe = callPackage ./python-modules/safe { }; + # safe = callPackage ./python-modules/safe { }; -# safe-pysha3 = callPackage ./python-modules/safe-pysha3 { }; + # safe-pysha3 = callPackage ./python-modules/safe-pysha3 { }; -# safeio = callPackage ./python-modules/safeio { }; + # safeio = callPackage ./python-modules/safeio { }; -# safetensors = callPackage ./python-modules/safetensors { }; + # safetensors = callPackage ./python-modules/safetensors { }; -# safety = callPackage ./python-modules/safety { }; + # safety = callPackage ./python-modules/safety { }; -# safety-schemas = callPackage ./python-modules/safety-schemas { }; + # safety-schemas = callPackage ./python-modules/safety-schemas { }; -# sagemaker = callPackage ./python-modules/sagemaker { }; + # sagemaker = callPackage ./python-modules/sagemaker { }; -# salmon-mail = callPackage ./python-modules/salmon-mail { }; + # salmon-mail = callPackage ./python-modules/salmon-mail { }; -# sane = callPackage ./python-modules/sane { -# inherit (pkgs) sane-backends; -# }; + # sane = callPackage ./python-modules/sane { + # inherit (pkgs) sane-backends; + # }; -# saneyaml = callPackage ./python-modules/saneyaml { }; + # saneyaml = callPackage ./python-modules/saneyaml { }; -# sampledata = callPackage ./python-modules/sampledata { }; + # sampledata = callPackage ./python-modules/sampledata { }; -# samplerate = callPackage ./python-modules/samplerate { -# inherit (pkgs) libsamplerate; -# }; + # samplerate = callPackage ./python-modules/samplerate { + # inherit (pkgs) libsamplerate; + # }; -# samsungctl = callPackage ./python-modules/samsungctl { }; + # samsungctl = callPackage ./python-modules/samsungctl { }; -# samsungtvws = callPackage ./python-modules/samsungtvws { }; + # samsungtvws = callPackage ./python-modules/samsungtvws { }; -# sanic = callPackage ./python-modules/sanic { -# # Don't pass any `sanic` to avoid dependency loops. `sanic-testing` -# # has special logic to disable tests when this is the case. -# sanic-testing = self.sanic-testing.override { sanic = null; }; -# }; + # sanic = callPackage ./python-modules/sanic { + # # Don't pass any `sanic` to avoid dependency loops. `sanic-testing` + # # has special logic to disable tests when this is the case. + # sanic-testing = self.sanic-testing.override { sanic = null; }; + # }; -# sanic-auth = callPackage ./python-modules/sanic-auth { }; + # sanic-auth = callPackage ./python-modules/sanic-auth { }; -# sanic-routing = callPackage ./python-modules/sanic-routing { }; + # sanic-routing = callPackage ./python-modules/sanic-routing { }; -# sanic-testing = callPackage ./python-modules/sanic-testing { }; + # sanic-testing = callPackage ./python-modules/sanic-testing { }; -# sanix = callPackage ./python-modules/sanix { }; + # sanix = callPackage ./python-modules/sanix { }; -# sansio-multipart = callPackage ./python-modules/sansio-multipart { }; + # sansio-multipart = callPackage ./python-modules/sansio-multipart { }; -# sarif-om = callPackage ./python-modules/sarif-om { }; + # sarif-om = callPackage ./python-modules/sarif-om { }; -# sarge = callPackage ./python-modules/sarge { }; + # sarge = callPackage ./python-modules/sarge { }; -# sasmodels = callPackage ./python-modules/sasmodels { }; + # sasmodels = callPackage ./python-modules/sasmodels { }; -# scalene = callPackage ./python-modules/scalene { }; + # scalene = callPackage ./python-modules/scalene { }; -# scales = callPackage ./python-modules/scales { }; + # scales = callPackage ./python-modules/scales { }; -# scancode-toolkit = callPackage ./python-modules/scancode-toolkit { }; + # scancode-toolkit = callPackage ./python-modules/scancode-toolkit { }; -# scapy = callPackage ./python-modules/scapy { -# inherit (pkgs) libpcap; # Avoid confusion with python package of the same name -# }; + # scapy = callPackage ./python-modules/scapy { + # inherit (pkgs) libpcap; # Avoid confusion with python package of the same name + # }; -# schedule = callPackage ./python-modules/schedule { }; + # schedule = callPackage ./python-modules/schedule { }; -# schema = callPackage ./python-modules/schema { }; + # schema = callPackage ./python-modules/schema { }; -# schemainspect = callPackage ./python-modules/schemainspect { }; + # schemainspect = callPackage ./python-modules/schemainspect { }; -# schema-salad = callPackage ./python-modules/schema-salad { }; + # schema-salad = callPackage ./python-modules/schema-salad { }; -# schemdraw = callPackage ./python-modules/schemdraw { }; + # schemdraw = callPackage ./python-modules/schemdraw { }; -# schiene = callPackage ./python-modules/schiene { }; + # schiene = callPackage ./python-modules/schiene { }; -# schwifty = callPackage ./python-modules/schwifty { }; + # schwifty = callPackage ./python-modules/schwifty { }; -# scim2-filter-parser = callPackage ./python-modules/scim2-filter-parser { }; + # scim2-filter-parser = callPackage ./python-modules/scim2-filter-parser { }; -# scikit-bio = callPackage ./python-modules/scikit-bio { }; + # scikit-bio = callPackage ./python-modules/scikit-bio { }; -# scikit-build = callPackage ./python-modules/scikit-build { }; + # scikit-build = callPackage ./python-modules/scikit-build { }; -# scikit-build-core = callPackage ./python-modules/scikit-build-core { }; + # scikit-build-core = callPackage ./python-modules/scikit-build-core { }; -# scikit-fmm = callPackage ./python-modules/scikit-fmm { }; + # scikit-fmm = callPackage ./python-modules/scikit-fmm { }; -# scikit-fuzzy = callPackage ./python-modules/scikit-fuzzy { }; + # scikit-fuzzy = callPackage ./python-modules/scikit-fuzzy { }; -# scikit-hep-testdata = callPackage ./python-modules/scikit-hep-testdata { }; + # scikit-hep-testdata = callPackage ./python-modules/scikit-hep-testdata { }; -# scikit-image = callPackage ./python-modules/scikit-image { }; + # scikit-image = callPackage ./python-modules/scikit-image { }; -# scikit-learn = callPackage ./python-modules/scikit-learn { -# inherit (pkgs) gfortran glibcLocales; -# }; + # scikit-learn = callPackage ./python-modules/scikit-learn { + # inherit (pkgs) gfortran glibcLocales; + # }; -# scikit-learn-extra = callPackage ./python-modules/scikit-learn-extra { }; + # scikit-learn-extra = callPackage ./python-modules/scikit-learn-extra { }; -# scikit-misc = callPackage ./python-modules/scikit-misc { }; + # scikit-misc = callPackage ./python-modules/scikit-misc { }; -# scikit-optimize = callPackage ./python-modules/scikit-optimize { }; + # scikit-optimize = callPackage ./python-modules/scikit-optimize { }; -# scikit-posthocs = callPackage ./python-modules/scikit-posthocs { }; + # scikit-posthocs = callPackage ./python-modules/scikit-posthocs { }; -# scikit-rf = callPackage ./python-modules/scikit-rf { }; + # scikit-rf = callPackage ./python-modules/scikit-rf { }; -# scikits-odes = callPackage ./python-modules/scikits-odes { }; + # scikits-odes = callPackage ./python-modules/scikits-odes { }; -# scikits-samplerate = callPackage ./python-modules/scikits-samplerate { -# inherit (pkgs) libsamplerate; -# }; + # scikits-samplerate = callPackage ./python-modules/scikits-samplerate { + # inherit (pkgs) libsamplerate; + # }; -# scikit-tda = callPackage ./python-modules/scikit-tda { }; + # scikit-tda = callPackage ./python-modules/scikit-tda { }; -# scipy = callPackage ./python-modules/scipy { }; + # scipy = callPackage ./python-modules/scipy { }; -# scmrepo = callPackage ./python-modules/scmrepo { }; + # scmrepo = callPackage ./python-modules/scmrepo { }; -# scour = callPackage ./python-modules/scour { }; + # scour = callPackage ./python-modules/scour { }; -# scooby = callPackage ./python-modules/scooby { }; + # scooby = callPackage ./python-modules/scooby { }; -# scp = callPackage ./python-modules/scp { }; + # scp = callPackage ./python-modules/scp { }; -# scramp = callPackage ./python-modules/scramp { }; + # scramp = callPackage ./python-modules/scramp { }; -# scrap-engine = callPackage ./python-modules/scrap-engine { }; + # scrap-engine = callPackage ./python-modules/scrap-engine { }; -# scrapy = callPackage ./python-modules/scrapy { }; + # scrapy = callPackage ./python-modules/scrapy { }; -# scrapy-deltafetch = callPackage ./python-modules/scrapy-deltafetch { }; + # scrapy-deltafetch = callPackage ./python-modules/scrapy-deltafetch { }; -# scrapy-fake-useragent = callPackage ./python-modules/scrapy-fake-useragent { }; + # scrapy-fake-useragent = callPackage ./python-modules/scrapy-fake-useragent { }; -# scrapy-splash = callPackage ./python-modules/scrapy-splash { }; + # scrapy-splash = callPackage ./python-modules/scrapy-splash { }; -# screed = callPackage ./python-modules/screed { }; + # screed = callPackage ./python-modules/screed { }; -# screeninfo = callPackage ./python-modules/screeninfo { }; + # screeninfo = callPackage ./python-modules/screeninfo { }; -# screenlogicpy = callPackage ./python-modules/screenlogicpy { }; + # screenlogicpy = callPackage ./python-modules/screenlogicpy { }; -# scripttest = callPackage ./python-modules/scripttest { }; + # scripttest = callPackage ./python-modules/scripttest { }; -# scikit-survival = callPackage ./python-modules/scikit-survival { }; + # scikit-survival = callPackage ./python-modules/scikit-survival { }; -# scs = callPackage ./python-modules/scs { -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate; -# }; + # scs = callPackage ./python-modules/scs { + # inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate; + # }; -# sdds = callPackage ./python-modules/sdds { }; + # sdds = callPackage ./python-modules/sdds { }; -# sdkmanager = callPackage ./python-modules/sdkmanager { }; + # sdkmanager = callPackage ./python-modules/sdkmanager { }; -# sdnotify = callPackage ./python-modules/sdnotify { }; + # sdnotify = callPackage ./python-modules/sdnotify { }; -# seaborn = callPackage ./python-modules/seaborn { }; + # seaborn = callPackage ./python-modules/seaborn { }; -# seabreeze = callPackage ./python-modules/seabreeze { }; + # seabreeze = callPackage ./python-modules/seabreeze { }; -# seaserv = toPythonModule (pkgs.seafile-server.override { -# python3 = self.python; -# }); + # seaserv = toPythonModule (pkgs.seafile-server.override { + # python3 = self.python; + # }); -# seasonal = callPackage ./python-modules/seasonal { }; + # seasonal = callPackage ./python-modules/seasonal { }; -# seatconnect = callPackage ./python-modules/seatconnect { }; + # seatconnect = callPackage ./python-modules/seatconnect { }; -# seccomp = callPackage ./python-modules/seccomp { }; + # seccomp = callPackage ./python-modules/seccomp { }; -# secp256k1 = callPackage ./python-modules/secp256k1 { -# inherit (pkgs) secp256k1; -# }; + # secp256k1 = callPackage ./python-modules/secp256k1 { + # inherit (pkgs) secp256k1; + # }; -# secretstorage = callPackage ./python-modules/secretstorage { }; + # secretstorage = callPackage ./python-modules/secretstorage { }; -# secure = callPackage ./python-modules/secure { }; + # secure = callPackage ./python-modules/secure { }; -# securesystemslib = callPackage ./python-modules/securesystemslib { }; + # securesystemslib = callPackage ./python-modules/securesystemslib { }; -# securetar = callPackage ./python-modules/securetar { }; + # securetar = callPackage ./python-modules/securetar { }; -# securityreporter = callPackage ./python-modules/securityreporter { }; + # securityreporter = callPackage ./python-modules/securityreporter { }; -# sectools = callPackage ./python-modules/sectools { }; + # sectools = callPackage ./python-modules/sectools { }; -# seedir = callPackage ./python-modules/seedir { }; + # seedir = callPackage ./python-modules/seedir { }; -# seekpath = callPackage ./python-modules/seekpath { }; + # seekpath = callPackage ./python-modules/seekpath { }; -# segments = callPackage ./python-modules/segments { }; + # segments = callPackage ./python-modules/segments { }; -# segno = callPackage ./python-modules/segno { }; + # segno = callPackage ./python-modules/segno { }; -# segyio = toPythonModule (callPackage ./python-modules/segyio { -# inherit (pkgs) cmake ninja; -# }); + # segyio = toPythonModule (callPackage ./python-modules/segyio { + # inherit (pkgs) cmake ninja; + # }); -# selectors2 = callPackage ./python-modules/selectors2 { }; + # selectors2 = callPackage ./python-modules/selectors2 { }; -# selenium = callPackage ./python-modules/selenium { }; + # selenium = callPackage ./python-modules/selenium { }; -# selenium-wire = callPackage ./python-modules/selenium-wire { }; + # selenium-wire = callPackage ./python-modules/selenium-wire { }; -# semantic-version = callPackage ./python-modules/semantic-version { }; + # semantic-version = callPackage ./python-modules/semantic-version { }; -# semaphore-bot = callPackage ./python-modules/semaphore-bot { }; + # semaphore-bot = callPackage ./python-modules/semaphore-bot { }; -# semver = callPackage ./python-modules/semver { }; + # semver = callPackage ./python-modules/semver { }; -# send2trash = callPackage ./python-modules/send2trash { }; + # send2trash = callPackage ./python-modules/send2trash { }; -# sendgrid = callPackage ./python-modules/sendgrid { }; + # sendgrid = callPackage ./python-modules/sendgrid { }; -# sense-energy = callPackage ./python-modules/sense-energy { }; + # sense-energy = callPackage ./python-modules/sense-energy { }; -# sensirion-ble = callPackage ./python-modules/sensirion-ble { }; + # sensirion-ble = callPackage ./python-modules/sensirion-ble { }; -# sensor-state-data = callPackage ./python-modules/sensor-state-data { }; + # sensor-state-data = callPackage ./python-modules/sensor-state-data { }; -# sensorpro-ble = callPackage ./python-modules/sensorpro-ble { }; + # sensorpro-ble = callPackage ./python-modules/sensorpro-ble { }; -# sensorpush-ble = callPackage ./python-modules/sensorpush-ble { }; + # sensorpush-ble = callPackage ./python-modules/sensorpush-ble { }; -# sentencepiece = callPackage ./python-modules/sentencepiece { -# inherit (pkgs) sentencepiece; -# }; + # sentencepiece = callPackage ./python-modules/sentencepiece { + # inherit (pkgs) sentencepiece; + # }; -# sentence-splitter = callPackage ./python-modules/sentence-splitter { }; + # sentence-splitter = callPackage ./python-modules/sentence-splitter { }; -# sentence-transformers = callPackage ./python-modules/sentence-transformers { }; + # sentence-transformers = callPackage ./python-modules/sentence-transformers { }; -# sentinel = callPackage ./python-modules/sentinel { }; + # sentinel = callPackage ./python-modules/sentinel { }; -# sentinels = callPackage ./python-modules/sentinels { }; + # sentinels = callPackage ./python-modules/sentinels { }; -# sentry-sdk = callPackage ./python-modules/sentry-sdk { }; + # sentry-sdk = callPackage ./python-modules/sentry-sdk { }; -# sepaxml = callPackage ./python-modules/sepaxml { }; + # sepaxml = callPackage ./python-modules/sepaxml { }; -# seqdiag = callPackage ./python-modules/seqdiag { }; + # seqdiag = callPackage ./python-modules/seqdiag { }; -# seqeval = callPackage ./python-modules/seqeval { }; + # seqeval = callPackage ./python-modules/seqeval { }; -# serialio = callPackage ./python-modules/serialio { }; + # serialio = callPackage ./python-modules/serialio { }; -# serializable = callPackage ./python-modules/serializable { }; + # serializable = callPackage ./python-modules/serializable { }; -# serpent = callPackage ./python-modules/serpent { }; + # serpent = callPackage ./python-modules/serpent { }; -# serpy = callPackage ./python-modules/serpy { }; + # serpy = callPackage ./python-modules/serpy { }; -# servefile = callPackage ./python-modules/servefile { }; + # servefile = callPackage ./python-modules/servefile { }; -# serverfiles = callPackage ./python-modules/serverfiles { }; + # serverfiles = callPackage ./python-modules/serverfiles { }; -# serverlessrepo = callPackage ./python-modules/serverlessrepo { }; + # serverlessrepo = callPackage ./python-modules/serverlessrepo { }; -# service-identity = callPackage ./python-modules/service-identity { }; + # service-identity = callPackage ./python-modules/service-identity { }; setproctitle = callPackage ./python-modules/setproctitle { }; -# setupmeta = callPackage ./python-modules/setupmeta { }; + # setupmeta = callPackage ./python-modules/setupmeta { }; -# setuptools-changelog-shortener = callPackage ./python-modules/setuptools-changelog-shortener { }; + # setuptools-changelog-shortener = callPackage ./python-modules/setuptools-changelog-shortener { }; -# setuptools-declarative-requirements = callPackage ./python-modules/setuptools-declarative-requirements { }; + # setuptools-declarative-requirements = callPackage ./python-modules/setuptools-declarative-requirements { }; -# setuptools-dso = callPackage ./python-modules/setuptools-dso { }; + # setuptools-dso = callPackage ./python-modules/setuptools-dso { }; -# setuptools-generate = callPackage ./python-modules/setuptools-generate { }; + # setuptools-generate = callPackage ./python-modules/setuptools-generate { }; -# setuptools-gettext = callPackage ./python-modules/setuptools-gettext { }; + # setuptools-gettext = callPackage ./python-modules/setuptools-gettext { }; -# setuptools-git = callPackage ./python-modules/setuptools-git { }; + # setuptools-git = callPackage ./python-modules/setuptools-git { }; -# setuptools-git-versioning = callPackage ./python-modules/setuptools-git-versioning { }; + # setuptools-git-versioning = callPackage ./python-modules/setuptools-git-versioning { }; -# setuptools-lint = callPackage ./python-modules/setuptools-lint { }; + # setuptools-lint = callPackage ./python-modules/setuptools-lint { }; -# setuptools-odoo = callPackage ./python-modules/setuptools-odoo { }; + # setuptools-odoo = callPackage ./python-modules/setuptools-odoo { }; -# setuptools-rust = callPackage ./python-modules/setuptools-rust { }; + # setuptools-rust = callPackage ./python-modules/setuptools-rust { }; setuptools-scm = callPackage ./python-modules/setuptools-scm { }; -# setuptools-scm-git-archive = callPackage ./python-modules/setuptools-scm-git-archive { }; + # setuptools-scm-git-archive = callPackage ./python-modules/setuptools-scm-git-archive { }; -# setuptools-trial = callPackage ./python-modules/setuptools-trial { }; + # setuptools-trial = callPackage ./python-modules/setuptools-trial { }; -# seventeentrack = callPackage ./python-modules/seventeentrack { }; + # seventeentrack = callPackage ./python-modules/seventeentrack { }; -# sev-snp-measure = callPackage ./python-modules/sev-snp-measure { }; + # sev-snp-measure = callPackage ./python-modules/sev-snp-measure { }; -# sexpdata = callPackage ./python-modules/sexpdata { }; + # sexpdata = callPackage ./python-modules/sexpdata { }; -# sfepy = callPackage ./python-modules/sfepy { }; + # sfepy = callPackage ./python-modules/sfepy { }; -# sfrbox-api = callPackage ./python-modules/sfrbox-api { }; + # sfrbox-api = callPackage ./python-modules/sfrbox-api { }; -# sgmllib3k = callPackage ./python-modules/sgmllib3k { }; + # sgmllib3k = callPackage ./python-modules/sgmllib3k { }; -# sgp4 = callPackage ./python-modules/sgp4 { }; + # sgp4 = callPackage ./python-modules/sgp4 { }; -# shamir-mnemonic = callPackage ./python-modules/shamir-mnemonic { }; + # shamir-mnemonic = callPackage ./python-modules/shamir-mnemonic { }; -# shap = callPackage ./python-modules/shap { }; + # shap = callPackage ./python-modules/shap { }; -# shapely = callPackage ./python-modules/shapely { }; + # shapely = callPackage ./python-modules/shapely { }; -# shapely_1_8 = callPackage ./python-modules/shapely/1.8.nix { }; + # shapely_1_8 = callPackage ./python-modules/shapely/1.8.nix { }; -# shaperglot = callPackage ./python-modules/shaperglot { }; + # shaperglot = callPackage ./python-modules/shaperglot { }; -# sharedmem = callPackage ./python-modules/sharedmem { }; + # sharedmem = callPackage ./python-modules/sharedmem { }; -# sharkiq = callPackage ./python-modules/sharkiq { }; + # sharkiq = callPackage ./python-modules/sharkiq { }; -# sharp-aquos-rc = callPackage ./python-modules/sharp-aquos-rc { }; + # sharp-aquos-rc = callPackage ./python-modules/sharp-aquos-rc { }; -# shazamio = callPackage ./python-modules/shazamio { }; + # shazamio = callPackage ./python-modules/shazamio { }; -# sh = callPackage ./python-modules/sh { }; + # sh = callPackage ./python-modules/sh { }; -# shlib = callPackage ./python-modules/shlib { }; + # shlib = callPackage ./python-modules/shlib { }; -# shellescape = callPackage ./python-modules/shellescape { }; + # shellescape = callPackage ./python-modules/shellescape { }; -# shellingham = callPackage ./python-modules/shellingham { }; + # shellingham = callPackage ./python-modules/shellingham { }; -# shiboken2 = toPythonModule (callPackage ./python-modules/shiboken2 { -# inherit (pkgs) cmake llvmPackages_15 qt5; -# }); + # shiboken2 = toPythonModule (callPackage ./python-modules/shiboken2 { + # inherit (pkgs) cmake llvmPackages_15 qt5; + # }); -# shiboken6 = toPythonModule (callPackage ./python-modules/shiboken6 { -# inherit (pkgs) cmake llvmPackages; -# }); + # shiboken6 = toPythonModule (callPackage ./python-modules/shiboken6 { + # inherit (pkgs) cmake llvmPackages; + # }); -# shippai = callPackage ./python-modules/shippai { }; + # shippai = callPackage ./python-modules/shippai { }; -# shiv = callPackage ./python-modules/shiv { }; + # shiv = callPackage ./python-modules/shiv { }; -# shodan = callPackage ./python-modules/shodan { }; + # shodan = callPackage ./python-modules/shodan { }; -# shortuuid = callPackage ./python-modules/shortuuid { }; + # shortuuid = callPackage ./python-modules/shortuuid { }; -# shouldbe = callPackage ./python-modules/shouldbe { }; + # shouldbe = callPackage ./python-modules/shouldbe { }; -# should-dsl = callPackage ./python-modules/should-dsl { }; + # should-dsl = callPackage ./python-modules/should-dsl { }; -# show-in-file-manager = callPackage ./python-modules/show-in-file-manager { }; + # show-in-file-manager = callPackage ./python-modules/show-in-file-manager { }; -# showit = callPackage ./python-modules/showit { }; + # showit = callPackage ./python-modules/showit { }; -# shtab = callPackage ./python-modules/shtab { }; + # shtab = callPackage ./python-modules/shtab { }; -# shutilwhich = callPackage ./python-modules/shutilwhich { }; + # shutilwhich = callPackage ./python-modules/shutilwhich { }; -# sievelib = callPackage ./python-modules/sievelib { }; + # sievelib = callPackage ./python-modules/sievelib { }; -# signalslot = callPackage ./python-modules/signalslot { }; + # signalslot = callPackage ./python-modules/signalslot { }; -# signedjson = callPackage ./python-modules/signedjson { }; + # signedjson = callPackage ./python-modules/signedjson { }; -# signxml = callPackage ./python-modules/signxml { }; + # signxml = callPackage ./python-modules/signxml { }; -# sigrok = callPackage ./python-modules/sigrok { }; + # sigrok = callPackage ./python-modules/sigrok { }; -# sigstore = callPackage ./python-modules/sigstore { }; + # sigstore = callPackage ./python-modules/sigstore { }; -# sigstore-protobuf-specs = callPackage ./python-modules/sigstore-protobuf-specs { }; + # sigstore-protobuf-specs = callPackage ./python-modules/sigstore-protobuf-specs { }; -# sigstore-rekor-types = callPackage ./python-modules/sigstore-rekor-types { }; + # sigstore-rekor-types = callPackage ./python-modules/sigstore-rekor-types { }; -# sigtools = callPackage ./python-modules/sigtools { }; + # sigtools = callPackage ./python-modules/sigtools { }; -# simanneal = callPackage ./python-modules/simanneal { }; + # simanneal = callPackage ./python-modules/simanneal { }; -# simber = callPackage ./python-modules/simber { }; + # simber = callPackage ./python-modules/simber { }; -# simple-term-menu = callPackage ./python-modules/simple-term-menu { }; + # simple-term-menu = callPackage ./python-modules/simple-term-menu { }; -# simpleaudio = callPackage ./python-modules/simpleaudio { }; + # simpleaudio = callPackage ./python-modules/simpleaudio { }; -# simplebayes = callPackage ./python-modules/simplebayes { }; + # simplebayes = callPackage ./python-modules/simplebayes { }; -# simpleeval = callPackage ./python-modules/simpleeval { }; + # simpleeval = callPackage ./python-modules/simpleeval { }; -# simplefix = callPackage ./python-modules/simplefix { }; + # simplefix = callPackage ./python-modules/simplefix { }; -# simplegeneric = callPackage ./python-modules/simplegeneric { }; + # simplegeneric = callPackage ./python-modules/simplegeneric { }; -# simplehound = callPackage ./python-modules/simplehound { }; + # simplehound = callPackage ./python-modules/simplehound { }; -# simpleitk = callPackage ./python-modules/simpleitk { -# inherit (pkgs) simpleitk; -# }; + # simpleitk = callPackage ./python-modules/simpleitk { + # inherit (pkgs) simpleitk; + # }; -# simplejson = callPackage ./python-modules/simplejson { }; + # simplejson = callPackage ./python-modules/simplejson { }; -# simplekml = callPackage ./python-modules/simplekml { }; + # simplekml = callPackage ./python-modules/simplekml { }; -# simplekv = callPackage ./python-modules/simplekv { }; + # simplekv = callPackage ./python-modules/simplekv { }; -# simplemma = callPackage ./python-modules/simplemma { }; + # simplemma = callPackage ./python-modules/simplemma { }; -# simplenote = callPackage ./python-modules/simplenote { }; + # simplenote = callPackage ./python-modules/simplenote { }; -# simplepush = callPackage ./python-modules/simplepush { }; + # simplepush = callPackage ./python-modules/simplepush { }; -# simplesat = callPackage ./python-modules/simplesat { }; + # simplesat = callPackage ./python-modules/simplesat { }; -# simplesqlite = callPackage ./python-modules/simplesqlite { }; + # simplesqlite = callPackage ./python-modules/simplesqlite { }; -# simple-dftd3 = callPackage ../development/libraries/science/chemistry/simple-dftd3/python.nix { -# inherit (pkgs) simple-dftd3; -# }; + # simple-dftd3 = callPackage ../development/libraries/science/chemistry/simple-dftd3/python.nix { + # inherit (pkgs) simple-dftd3; + # }; -# simple-di = callPackage ./python-modules/simple-di { }; + # simple-di = callPackage ./python-modules/simple-di { }; -# simple-rest-client = callPackage ./python-modules/simple-rest-client { }; + # simple-rest-client = callPackage ./python-modules/simple-rest-client { }; -# simple-rlp = callPackage ./python-modules/simple-rlp { }; + # simple-rlp = callPackage ./python-modules/simple-rlp { }; -# simple-salesforce = callPackage ./python-modules/simple-salesforce { }; + # simple-salesforce = callPackage ./python-modules/simple-salesforce { }; -# simple-websocket = callPackage ./python-modules/simple-websocket { }; + # simple-websocket = callPackage ./python-modules/simple-websocket { }; -# simple-websocket-server = callPackage ./python-modules/simple-websocket-server { }; + # simple-websocket-server = callPackage ./python-modules/simple-websocket-server { }; -# simplisafe-python = callPackage ./python-modules/simplisafe-python { }; + # simplisafe-python = callPackage ./python-modules/simplisafe-python { }; -# simpful = callPackage ./python-modules/simpful { }; + # simpful = callPackage ./python-modules/simpful { }; -# simpy = callPackage ./python-modules/simpy { }; + # simpy = callPackage ./python-modules/simpy { }; -# single-source = callPackage ./python-modules/single-source { }; + # single-source = callPackage ./python-modules/single-source { }; -# single-version = callPackage ./python-modules/single-version { }; + # single-version = callPackage ./python-modules/single-version { }; -# signify = callPackage ./python-modules/signify { }; + # signify = callPackage ./python-modules/signify { }; -# siobrultech-protocols = callPackage ./python-modules/siobrultech-protocols { }; + # siobrultech-protocols = callPackage ./python-modules/siobrultech-protocols { }; -# siosocks = callPackage ./python-modules/siosocks { }; + # siosocks = callPackage ./python-modules/siosocks { }; -# sip = callPackage ./python-modules/sip { }; + # sip = callPackage ./python-modules/sip { }; -# sip4 = callPackage ./python-modules/sip/4.x.nix { }; + # sip4 = callPackage ./python-modules/sip/4.x.nix { }; -# sipyco = callPackage ./python-modules/sipyco { }; + # sipyco = callPackage ./python-modules/sipyco { }; -# sisyphus-control = callPackage ./python-modules/sisyphus-control { }; + # sisyphus-control = callPackage ./python-modules/sisyphus-control { }; -# siuba = callPackage ./python-modules/siuba { }; + # siuba = callPackage ./python-modules/siuba { }; six = callPackage ./python-modules/six { }; -# sjcl = callPackage ./python-modules/sjcl { }; + # sjcl = callPackage ./python-modules/sjcl { }; -# skein = callPackage ./python-modules/skein { }; + # skein = callPackage ./python-modules/skein { }; -# skidl = callPackage ./python-modules/skidl { }; + # skidl = callPackage ./python-modules/skidl { }; -# skl2onnx = callPackage ./python-modules/skl2onnx { }; + # skl2onnx = callPackage ./python-modules/skl2onnx { }; -# sklearn-deap = callPackage ./python-modules/sklearn-deap { }; + # sklearn-deap = callPackage ./python-modules/sklearn-deap { }; -# skodaconnect = callPackage ./python-modules/skodaconnect { }; + # skodaconnect = callPackage ./python-modules/skodaconnect { }; -# skorch = callPackage ./python-modules/skorch { }; + # skorch = callPackage ./python-modules/skorch { }; -# skrl = callPackage ./python-modules/skrl { }; + # skrl = callPackage ./python-modules/skrl { }; -# skybellpy = callPackage ./python-modules/skybellpy { }; + # skybellpy = callPackage ./python-modules/skybellpy { }; -# skyfield = callPackage ./python-modules/skyfield { }; + # skyfield = callPackage ./python-modules/skyfield { }; -# skytemple-dtef = callPackage ./python-modules/skytemple-dtef { }; + # skytemple-dtef = callPackage ./python-modules/skytemple-dtef { }; -# skytemple-eventserver = callPackage ./python-modules/skytemple-eventserver { }; + # skytemple-eventserver = callPackage ./python-modules/skytemple-eventserver { }; -# skytemple-files = callPackage ./python-modules/skytemple-files { }; + # skytemple-files = callPackage ./python-modules/skytemple-files { }; -# skytemple-icons = callPackage ./python-modules/skytemple-icons { }; + # skytemple-icons = callPackage ./python-modules/skytemple-icons { }; -# skytemple-rust = callPackage ./python-modules/skytemple-rust { -# inherit (pkgs.darwin.apple_sdk.frameworks) Foundation; -# }; + # skytemple-rust = callPackage ./python-modules/skytemple-rust { + # inherit (pkgs.darwin.apple_sdk.frameworks) Foundation; + # }; -# skytemple-ssb-debugger = callPackage ./python-modules/skytemple-ssb-debugger { }; + # skytemple-ssb-debugger = callPackage ./python-modules/skytemple-ssb-debugger { }; -# skytemple-ssb-emulator = callPackage ./python-modules/skytemple-ssb-emulator { }; + # skytemple-ssb-emulator = callPackage ./python-modules/skytemple-ssb-emulator { }; -# slack-bolt = callPackage ./python-modules/slack-bolt { }; + # slack-bolt = callPackage ./python-modules/slack-bolt { }; -# slack-sdk = callPackage ./python-modules/slack-sdk { }; + # slack-sdk = callPackage ./python-modules/slack-sdk { }; -# slackclient = callPackage ./python-modules/slackclient { }; + # slackclient = callPackage ./python-modules/slackclient { }; -# sleekxmpp = callPackage ./python-modules/sleekxmpp { }; + # sleekxmpp = callPackage ./python-modules/sleekxmpp { }; -# sleepyq = callPackage ./python-modules/sleepyq { }; + # sleepyq = callPackage ./python-modules/sleepyq { }; -# slicedimage = callPackage ./python-modules/slicedimage { }; + # slicedimage = callPackage ./python-modules/slicedimage { }; -# slicer = callPackage ./python-modules/slicer { }; + # slicer = callPackage ./python-modules/slicer { }; -# slicerator = callPackage ./python-modules/slicerator { }; + # slicerator = callPackage ./python-modules/slicerator { }; -# slither-analyzer = callPackage ./python-modules/slither-analyzer { }; + # slither-analyzer = callPackage ./python-modules/slither-analyzer { }; -# slimit = callPackage ./python-modules/slimit { }; + # slimit = callPackage ./python-modules/slimit { }; -# slixmpp = callPackage ./python-modules/slixmpp { -# inherit (pkgs) gnupg; -# }; + # slixmpp = callPackage ./python-modules/slixmpp { + # inherit (pkgs) gnupg; + # }; -# slob = callPackage ./python-modules/slob { }; + # slob = callPackage ./python-modules/slob { }; -# slovnet = callPackage ./python-modules/slovnet { }; + # slovnet = callPackage ./python-modules/slovnet { }; -# slowapi = callPackage ./python-modules/slowapi { }; + # slowapi = callPackage ./python-modules/slowapi { }; -# slpp = callPackage ./python-modules/slpp { }; + # slpp = callPackage ./python-modules/slpp { }; -# slugid = callPackage ./python-modules/slugid { }; + # slugid = callPackage ./python-modules/slugid { }; -# sly = callPackage ./python-modules/sly { }; + # sly = callPackage ./python-modules/sly { }; -# smart-meter-texas = callPackage ./python-modules/smart-meter-texas { }; + # smart-meter-texas = callPackage ./python-modules/smart-meter-texas { }; -# smart-open = callPackage ./python-modules/smart-open { }; + # smart-open = callPackage ./python-modules/smart-open { }; -# smarthab = callPackage ./python-modules/smarthab { }; + # smarthab = callPackage ./python-modules/smarthab { }; -# smartypants = callPackage ./python-modules/smartypants { }; + # smartypants = callPackage ./python-modules/smartypants { }; -# smbprotocol = callPackage ./python-modules/smbprotocol { }; + # smbprotocol = callPackage ./python-modules/smbprotocol { }; -# smbus-cffi = callPackage ./python-modules/smbus-cffi { }; + # smbus-cffi = callPackage ./python-modules/smbus-cffi { }; -# smbus2 = callPackage ./python-modules/smbus2 { }; + # smbus2 = callPackage ./python-modules/smbus2 { }; -# smdebug-rulesconfig = callPackage ./python-modules/smdebug-rulesconfig { }; + # smdebug-rulesconfig = callPackage ./python-modules/smdebug-rulesconfig { }; -# smhi-pkg = callPackage ./python-modules/smhi-pkg { }; + # smhi-pkg = callPackage ./python-modules/smhi-pkg { }; -# smmap = callPackage ./python-modules/smmap { }; + # smmap = callPackage ./python-modules/smmap { }; -# smpplib = callPackage ./python-modules/smpplib { }; + # smpplib = callPackage ./python-modules/smpplib { }; -# smpp-pdu = callPackage ./python-modules/smpp-pdu { }; + # smpp-pdu = callPackage ./python-modules/smpp-pdu { }; -# smtpdfix = callPackage ./python-modules/smtpdfix { }; + # smtpdfix = callPackage ./python-modules/smtpdfix { }; -# snack = toPythonModule (pkgs.newt.override { -# inherit (self) python; -# }); + # snack = toPythonModule (pkgs.newt.override { + # inherit (self) python; + # }); -# snakemake = toPythonModule (pkgs.snakemake.override { -# python3 = python; -# }); + # snakemake = toPythonModule (pkgs.snakemake.override { + # python3 = python; + # }); -# snakemake-executor-plugin-cluster-generic = callPackage ./python-modules/snakemake-executor-plugin-cluster-generic { }; + # snakemake-executor-plugin-cluster-generic = callPackage ./python-modules/snakemake-executor-plugin-cluster-generic { }; -# snakemake-interface-common = callPackage ./python-modules/snakemake-interface-common { }; + # snakemake-interface-common = callPackage ./python-modules/snakemake-interface-common { }; -# snakemake-interface-executor-plugins = callPackage ./python-modules/snakemake-interface-executor-plugins { }; + # snakemake-interface-executor-plugins = callPackage ./python-modules/snakemake-interface-executor-plugins { }; -# snakemake-interface-report-plugins = callPackage ./python-modules/snakemake-interface-report-plugins { }; + # snakemake-interface-report-plugins = callPackage ./python-modules/snakemake-interface-report-plugins { }; -# snakemake-interface-storage-plugins = callPackage ./python-modules/snakemake-interface-storage-plugins { }; + # snakemake-interface-storage-plugins = callPackage ./python-modules/snakemake-interface-storage-plugins { }; -# snakemake-storage-plugin-s3 = callPackage ./python-modules/snakemake-storage-plugin-s3 { }; + # snakemake-storage-plugin-s3 = callPackage ./python-modules/snakemake-storage-plugin-s3 { }; -# snakemake-storage-plugin-xrootd = callPackage ./python-modules/snakemake-storage-plugin-xrootd { }; + # snakemake-storage-plugin-xrootd = callPackage ./python-modules/snakemake-storage-plugin-xrootd { }; -# snakebite = callPackage ./python-modules/snakebite { }; + # snakebite = callPackage ./python-modules/snakebite { }; -# snakeviz = callPackage ./python-modules/snakeviz { }; + # snakeviz = callPackage ./python-modules/snakeviz { }; -# snap-helpers = callPackage ./python-modules/snap-helpers { }; + # snap-helpers = callPackage ./python-modules/snap-helpers { }; -# snapcast = callPackage ./python-modules/snapcast { }; + # snapcast = callPackage ./python-modules/snapcast { }; -# snapshottest = callPackage ./python-modules/snapshottest { }; + # snapshottest = callPackage ./python-modules/snapshottest { }; -# snaptime = callPackage ./python-modules/snaptime { }; + # snaptime = callPackage ./python-modules/snaptime { }; -# sniffio = callPackage ./python-modules/sniffio { }; + # sniffio = callPackage ./python-modules/sniffio { }; -# snitun = callPackage ./python-modules/snitun { }; + # snitun = callPackage ./python-modules/snitun { }; -# snorkel = callPackage ./python-modules/snorkel { }; + # snorkel = callPackage ./python-modules/snorkel { }; snowballstemmer = callPackage ./python-modules/snowballstemmer { }; -# snowflake-connector-python = callPackage ./python-modules/snowflake-connector-python { }; + # snowflake-connector-python = callPackage ./python-modules/snowflake-connector-python { }; -# snowflake-sqlalchemy = callPackage ./python-modules/snowflake-sqlalchemy { }; + # snowflake-sqlalchemy = callPackage ./python-modules/snowflake-sqlalchemy { }; -# snscrape = callPackage ./python-modules/snscrape { }; + # snscrape = callPackage ./python-modules/snscrape { }; -# snuggs = callPackage ./python-modules/snuggs { }; + # snuggs = callPackage ./python-modules/snuggs { }; -# soapysdr = toPythonModule (pkgs.soapysdr.override { -# inherit (self) python; -# usePython = true; -# }); + # soapysdr = toPythonModule (pkgs.soapysdr.override { + # inherit (self) python; + # usePython = true; + # }); -# soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override { -# inherit (self) python; -# usePython = true; -# }); + # soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override { + # inherit (self) python; + # usePython = true; + # }); -# socketio-client = callPackage ./python-modules/socketio-client { }; + # socketio-client = callPackage ./python-modules/socketio-client { }; -# social-auth-app-django = callPackage ./python-modules/social-auth-app-django { }; + # social-auth-app-django = callPackage ./python-modules/social-auth-app-django { }; -# social-auth-core = callPackage ./python-modules/social-auth-core { }; + # social-auth-core = callPackage ./python-modules/social-auth-core { }; -# socialscan = callPackage ./python-modules/socialscan { }; + # socialscan = callPackage ./python-modules/socialscan { }; -# socid-extractor = callPackage ./python-modules/socid-extractor { }; + # socid-extractor = callPackage ./python-modules/socid-extractor { }; -# sockio = callPackage ./python-modules/sockio { }; + # sockio = callPackage ./python-modules/sockio { }; -# sockjs = callPackage ./python-modules/sockjs { }; + # sockjs = callPackage ./python-modules/sockjs { }; -# sockjs-tornado = callPackage ./python-modules/sockjs-tornado { }; + # sockjs-tornado = callPackage ./python-modules/sockjs-tornado { }; -# socksio = callPackage ./python-modules/socksio { }; + # socksio = callPackage ./python-modules/socksio { }; -# socksipy-branch = callPackage ./python-modules/socksipy-branch { }; + # socksipy-branch = callPackage ./python-modules/socksipy-branch { }; -# soco = callPackage ./python-modules/soco { }; + # soco = callPackage ./python-modules/soco { }; -# softlayer = callPackage ./python-modules/softlayer { }; + # softlayer = callPackage ./python-modules/softlayer { }; -# solaredge = callPackage ./python-modules/solaredge { }; + # solaredge = callPackage ./python-modules/solaredge { }; -# solax = callPackage ./python-modules/solax { }; + # solax = callPackage ./python-modules/solax { }; -# solc-select = callPackage ./python-modules/solc-select { }; + # solc-select = callPackage ./python-modules/solc-select { }; -# solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ./python-modules/solo-python { }); + # solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ./python-modules/solo-python { }); -# somajo = callPackage ./python-modules/somajo { }; + # somajo = callPackage ./python-modules/somajo { }; -# somfy-mylink-synergy = callPackage ./python-modules/somfy-mylink-synergy { }; + # somfy-mylink-synergy = callPackage ./python-modules/somfy-mylink-synergy { }; -# sonarr = callPackage ./python-modules/sonarr { }; + # sonarr = callPackage ./python-modules/sonarr { }; -# sonos-websocket = callPackage ./python-modules/sonos-websocket { }; + # sonos-websocket = callPackage ./python-modules/sonos-websocket { }; -# sopel = callPackage ./python-modules/sopel { }; + # sopel = callPackage ./python-modules/sopel { }; -# sorl-thumbnail = callPackage ./python-modules/sorl-thumbnail { }; + # sorl-thumbnail = callPackage ./python-modules/sorl-thumbnail { }; -# sortedcollections = callPackage ./python-modules/sortedcollections { }; + # sortedcollections = callPackage ./python-modules/sortedcollections { }; -# sortedcontainers = callPackage ./python-modules/sortedcontainers { }; + # sortedcontainers = callPackage ./python-modules/sortedcontainers { }; -# soundcloud-v2 = callPackage ./python-modules/soundcloud-v2 { }; + # soundcloud-v2 = callPackage ./python-modules/soundcloud-v2 { }; -# sounddevice = callPackage ./python-modules/sounddevice { }; + # sounddevice = callPackage ./python-modules/sounddevice { }; -# soundfile = callPackage ./python-modules/soundfile { }; + # soundfile = callPackage ./python-modules/soundfile { }; -# soupsieve = callPackage ./python-modules/soupsieve { }; + # soupsieve = callPackage ./python-modules/soupsieve { }; -# sourmash = callPackage ./python-modules/sourmash { }; + # sourmash = callPackage ./python-modules/sourmash { }; -# soxr = callPackage ./python-modules/soxr { -# libsoxr = pkgs.soxr; -# }; + # soxr = callPackage ./python-modules/soxr { + # libsoxr = pkgs.soxr; + # }; -# spacy = callPackage ./python-modules/spacy { }; + # spacy = callPackage ./python-modules/spacy { }; -# spacy-alignments = callPackage ./python-modules/spacy-alignments { }; + # spacy-alignments = callPackage ./python-modules/spacy-alignments { }; -# spacy-legacy = callPackage ./python-modules/spacy/legacy.nix { }; + # spacy-legacy = callPackage ./python-modules/spacy/legacy.nix { }; -# spacy-loggers = callPackage ./python-modules/spacy-loggers { }; + # spacy-loggers = callPackage ./python-modules/spacy-loggers { }; -# spacy-lookups-data = callPackage ./python-modules/spacy/lookups-data.nix { }; + # spacy-lookups-data = callPackage ./python-modules/spacy/lookups-data.nix { }; -# spacy-models = callPackage ./python-modules/spacy/models.nix { -# inherit (pkgs) jq; -# }; + # spacy-models = callPackage ./python-modules/spacy/models.nix { + # inherit (pkgs) jq; + # }; -# spacy-pkuseg = callPackage ./python-modules/spacy-pkuseg { }; + # spacy-pkuseg = callPackage ./python-modules/spacy-pkuseg { }; -# spacy-transformers = callPackage ./python-modules/spacy-transformers { }; + # spacy-transformers = callPackage ./python-modules/spacy-transformers { }; -# spake2 = callPackage ./python-modules/spake2 { }; + # spake2 = callPackage ./python-modules/spake2 { }; -# spark-parser = callPackage ./python-modules/spark-parser { }; + # spark-parser = callPackage ./python-modules/spark-parser { }; -# sparklines = callPackage ./python-modules/sparklines { }; + # sparklines = callPackage ./python-modules/sparklines { }; -# sparqlwrapper = callPackage ./python-modules/sparqlwrapper { }; + # sparqlwrapper = callPackage ./python-modules/sparqlwrapper { }; -# sparse = callPackage ./python-modules/sparse { }; + # sparse = callPackage ./python-modules/sparse { }; -# spatial-image = callPackage ./python-modules/spatial-image { }; + # spatial-image = callPackage ./python-modules/spatial-image { }; -# spdx = callPackage ./python-modules/spdx { }; + # spdx = callPackage ./python-modules/spdx { }; -# spdx-lookup = callPackage ./python-modules/spdx-lookup { }; + # spdx-lookup = callPackage ./python-modules/spdx-lookup { }; -# spdx-tools = callPackage ./python-modules/spdx-tools { }; + # spdx-tools = callPackage ./python-modules/spdx-tools { }; -# speaklater = callPackage ./python-modules/speaklater { }; + # speaklater = callPackage ./python-modules/speaklater { }; -# speaklater3 = callPackage ./python-modules/speaklater3 { }; + # speaklater3 = callPackage ./python-modules/speaklater3 { }; -# spectral-cube = callPackage ./python-modules/spectral-cube { }; + # spectral-cube = callPackage ./python-modules/spectral-cube { }; -# speechbrain = callPackage ./python-modules/speechbrain { }; + # speechbrain = callPackage ./python-modules/speechbrain { }; -# speechrecognition = callPackage ./python-modules/speechrecognition { }; + # speechrecognition = callPackage ./python-modules/speechrecognition { }; -# speedtest-cli = callPackage ./python-modules/speedtest-cli { }; + # speedtest-cli = callPackage ./python-modules/speedtest-cli { }; -# speg = callPackage ./python-modules/speg { }; + # speg = callPackage ./python-modules/speg { }; -# spglib = callPackage ./python-modules/spglib { }; + # spglib = callPackage ./python-modules/spglib { }; -# sphfile = callPackage ./python-modules/sphfile { }; + # sphfile = callPackage ./python-modules/sphfile { }; -# spiderpy = callPackage ./python-modules/spiderpy { }; + # spiderpy = callPackage ./python-modules/spiderpy { }; -# spinners = callPackage ./python-modules/spinners { }; + # spinners = callPackage ./python-modules/spinners { }; -# sphinx-automodapi = callPackage ./python-modules/sphinx-automodapi { -# graphviz = pkgs.graphviz; -# }; + # sphinx-automodapi = callPackage ./python-modules/sphinx-automodapi { + # graphviz = pkgs.graphviz; + # }; -# sphinx-better-theme = callPackage ./python-modules/sphinx-better-theme { }; + # sphinx-better-theme = callPackage ./python-modules/sphinx-better-theme { }; -# sphinx-book-theme = callPackage ./python-modules/sphinx-book-theme { }; + # sphinx-book-theme = callPackage ./python-modules/sphinx-book-theme { }; -# sphinx-codeautolink = callPackage ./python-modules/sphinx-codeautolink { }; + # sphinx-codeautolink = callPackage ./python-modules/sphinx-codeautolink { }; -# sphinx-comments = callPackage ./python-modules/sphinx-comments { }; + # sphinx-comments = callPackage ./python-modules/sphinx-comments { }; -# sphinx-design = callPackage ./python-modules/sphinx-design { }; + # sphinx-design = callPackage ./python-modules/sphinx-design { }; -# sphinx-external-toc = callPackage ./python-modules/sphinx-external-toc { }; + # sphinx-external-toc = callPackage ./python-modules/sphinx-external-toc { }; -# sphinx-fortran = callPackage ./python-modules/sphinx-fortran { }; + # sphinx-fortran = callPackage ./python-modules/sphinx-fortran { }; -# sphinx-hoverxref = callPackage ./python-modules/sphinx-hoverxref { }; + # sphinx-hoverxref = callPackage ./python-modules/sphinx-hoverxref { }; -# sphinx-intl = callPackage ./python-modules/sphinx-intl { }; + # sphinx-intl = callPackage ./python-modules/sphinx-intl { }; -# sphinx-jupyterbook-latex = callPackage ./python-modules/sphinx-jupyterbook-latex { }; + # sphinx-jupyterbook-latex = callPackage ./python-modules/sphinx-jupyterbook-latex { }; -# sphinx-multitoc-numbering = callPackage ./python-modules/sphinx-multitoc-numbering { }; + # sphinx-multitoc-numbering = callPackage ./python-modules/sphinx-multitoc-numbering { }; -# sphinx-notfound-page = callPackage ./python-modules/sphinx-notfound-page { }; + # sphinx-notfound-page = callPackage ./python-modules/sphinx-notfound-page { }; -# sphinx-pytest = callPackage ./python-modules/sphinx-pytest { }; + # sphinx-pytest = callPackage ./python-modules/sphinx-pytest { }; -# sphinx-prompt = callPackage ./python-modules/sphinx-prompt { }; + # sphinx-prompt = callPackage ./python-modules/sphinx-prompt { }; -# sphinx-sitemap = callPackage ./python-modules/sphinx-sitemap { }; + # sphinx-sitemap = callPackage ./python-modules/sphinx-sitemap { }; -# sphinx-thebe = callPackage ./python-modules/sphinx-thebe { }; + # sphinx-thebe = callPackage ./python-modules/sphinx-thebe { }; -# sphinx-tabs = callPackage ./python-modules/sphinx-tabs { }; + # sphinx-tabs = callPackage ./python-modules/sphinx-tabs { }; -# sphinx-togglebutton = callPackage ./python-modules/sphinx-togglebutton { }; + # sphinx-togglebutton = callPackage ./python-modules/sphinx-togglebutton { }; -# sphinxcontrib-actdiag = callPackage ./python-modules/sphinxcontrib-actdiag { }; + # sphinxcontrib-actdiag = callPackage ./python-modules/sphinxcontrib-actdiag { }; -# sphinxcontrib-apidoc = callPackage ./python-modules/sphinxcontrib-apidoc { }; + # sphinxcontrib-apidoc = callPackage ./python-modules/sphinxcontrib-apidoc { }; sphinxcontrib-applehelp = callPackage ./python-modules/sphinxcontrib-applehelp { }; -# sphinxcontrib-asyncio = callPackage ./python-modules/sphinxcontrib-asyncio { }; + # sphinxcontrib-asyncio = callPackage ./python-modules/sphinxcontrib-asyncio { }; -# sphinx-autoapi = callPackage ./python-modules/sphinx-autoapi { }; + # sphinx-autoapi = callPackage ./python-modules/sphinx-autoapi { }; -# sphinxcontrib-bayesnet = callPackage ./python-modules/sphinxcontrib-bayesnet { }; + # sphinxcontrib-bayesnet = callPackage ./python-modules/sphinxcontrib-bayesnet { }; -# sphinxcontrib-bibtex = callPackage ./python-modules/sphinxcontrib-bibtex { }; + # sphinxcontrib-bibtex = callPackage ./python-modules/sphinxcontrib-bibtex { }; -# sphinxcontrib-blockdiag = callPackage ./python-modules/sphinxcontrib-blockdiag { }; + # sphinxcontrib-blockdiag = callPackage ./python-modules/sphinxcontrib-blockdiag { }; -# sphinxcontrib-confluencebuilder = callPackage ./python-modules/sphinxcontrib-confluencebuilder { }; + # sphinxcontrib-confluencebuilder = callPackage ./python-modules/sphinxcontrib-confluencebuilder { }; sphinxcontrib-devhelp = callPackage ./python-modules/sphinxcontrib-devhelp { }; -# sphinxcontrib-excel-table = callPackage ./python-modules/sphinxcontrib-excel-table { }; + # sphinxcontrib-excel-table = callPackage ./python-modules/sphinxcontrib-excel-table { }; -# sphinxcontrib-fulltoc = callPackage ./python-modules/sphinxcontrib-fulltoc { }; + # sphinxcontrib-fulltoc = callPackage ./python-modules/sphinxcontrib-fulltoc { }; sphinxcontrib-htmlhelp = callPackage ./python-modules/sphinxcontrib-htmlhelp { }; -# sphinxcontrib-httpdomain = callPackage ./python-modules/sphinxcontrib-httpdomain { }; + # sphinxcontrib-httpdomain = callPackage ./python-modules/sphinxcontrib-httpdomain { }; -# sphinxcontrib-jquery = callPackage ./python-modules/sphinxcontrib-jquery { }; + # sphinxcontrib-jquery = callPackage ./python-modules/sphinxcontrib-jquery { }; sphinxcontrib-jsmath = callPackage ./python-modules/sphinxcontrib-jsmath { }; -# sphinxcontrib-katex = callPackage ./python-modules/sphinxcontrib-katex { }; + # sphinxcontrib-katex = callPackage ./python-modules/sphinxcontrib-katex { }; -# sphinxcontrib-mscgen = callPackage ./python-modules/sphinxcontrib-mscgen { -# inherit (pkgs) mscgen; -# }; + # sphinxcontrib-mscgen = callPackage ./python-modules/sphinxcontrib-mscgen { + # inherit (pkgs) mscgen; + # }; sphinxcontrib-log-cabinet = callPackage ./python-modules/sphinxcontrib-log-cabinet { }; -# sphinxcontrib-nwdiag = callPackage ./python-modules/sphinxcontrib-nwdiag { }; + # sphinxcontrib-nwdiag = callPackage ./python-modules/sphinxcontrib-nwdiag { }; -# sphinxcontrib-newsfeed = callPackage ./python-modules/sphinxcontrib-newsfeed { }; + # sphinxcontrib-newsfeed = callPackage ./python-modules/sphinxcontrib-newsfeed { }; -# sphinxcontrib-openapi = callPackage ./python-modules/sphinxcontrib-openapi { }; + # sphinxcontrib-openapi = callPackage ./python-modules/sphinxcontrib-openapi { }; -# sphinxcontrib-plantuml = callPackage ./python-modules/sphinxcontrib-plantuml { -# inherit (pkgs) plantuml; -# }; + # sphinxcontrib-plantuml = callPackage ./python-modules/sphinxcontrib-plantuml { + # inherit (pkgs) plantuml; + # }; -# sphinxcontrib-programoutput = callPackage ./python-modules/sphinxcontrib-programoutput { }; + # sphinxcontrib-programoutput = callPackage ./python-modules/sphinxcontrib-programoutput { }; sphinxcontrib-qthelp = callPackage ./python-modules/sphinxcontrib-qthelp { }; sphinxcontrib-serializinghtml = callPackage ./python-modules/sphinxcontrib-serializinghtml { }; -# sphinxcontrib-seqdiag = callPackage ./python-modules/sphinxcontrib-seqdiag { }; + # sphinxcontrib-seqdiag = callPackage ./python-modules/sphinxcontrib-seqdiag { }; -# sphinxcontrib-spelling = callPackage ./python-modules/sphinxcontrib-spelling { }; + # sphinxcontrib-spelling = callPackage ./python-modules/sphinxcontrib-spelling { }; -# sphinxcontrib-tikz = callPackage ./python-modules/sphinxcontrib-tikz { }; + # sphinxcontrib-tikz = callPackage ./python-modules/sphinxcontrib-tikz { }; -# sphinxcontrib-wavedrom = callPackage ./python-modules/sphinxcontrib-wavedrom { }; + # sphinxcontrib-wavedrom = callPackage ./python-modules/sphinxcontrib-wavedrom { }; sphinxcontrib-websupport = callPackage ./python-modules/sphinxcontrib-websupport { }; -# sphinxcontrib-youtube = callPackage ./python-modules/sphinxcontrib-youtube { }; + # sphinxcontrib-youtube = callPackage ./python-modules/sphinxcontrib-youtube { }; sphinx = callPackage ./python-modules/sphinx { }; -# sphinx-argparse = callPackage ./python-modules/sphinx-argparse { }; + # sphinx-argparse = callPackage ./python-modules/sphinx-argparse { }; -# sphinx-autobuild = callPackage ./python-modules/sphinx-autobuild { }; + # sphinx-autobuild = callPackage ./python-modules/sphinx-autobuild { }; -# sphinx-autodoc-typehints = callPackage ./python-modules/sphinx-autodoc-typehints { }; + # sphinx-autodoc-typehints = callPackage ./python-modules/sphinx-autodoc-typehints { }; -# sphinx-basic-ng = callPackage ./python-modules/sphinx-basic-ng { }; + # sphinx-basic-ng = callPackage ./python-modules/sphinx-basic-ng { }; -# sphinx-copybutton = callPackage ./python-modules/sphinx-copybutton { }; + # sphinx-copybutton = callPackage ./python-modules/sphinx-copybutton { }; -# sphinxemoji = callPackage ./python-modules/sphinxemoji { }; + # sphinxemoji = callPackage ./python-modules/sphinxemoji { }; -# sphinx-inline-tabs = callPackage ./python-modules/sphinx-inline-tabs { }; + # sphinx-inline-tabs = callPackage ./python-modules/sphinx-inline-tabs { }; sphinx-issues = callPackage ./python-modules/sphinx-issues { }; -# sphinx-jinja = callPackage ./python-modules/sphinx-jinja { }; + # sphinx-jinja = callPackage ./python-modules/sphinx-jinja { }; -# sphinx-markdown-parser = callPackage ./python-modules/sphinx-markdown-parser { }; + # sphinx-markdown-parser = callPackage ./python-modules/sphinx-markdown-parser { }; -# sphinx-markdown-tables = callPackage ./python-modules/sphinx-markdown-tables { }; + # sphinx-markdown-tables = callPackage ./python-modules/sphinx-markdown-tables { }; -# sphinx-material = callPackage ./python-modules/sphinx-material { }; + # sphinx-material = callPackage ./python-modules/sphinx-material { }; -# sphinx-mdinclude = callPackage ./python-modules/sphinx-mdinclude { }; + # sphinx-mdinclude = callPackage ./python-modules/sphinx-mdinclude { }; -# sphinx-rtd-dark-mode = callPackage ./python-modules/sphinx-rtd-dark-mode { }; + # sphinx-rtd-dark-mode = callPackage ./python-modules/sphinx-rtd-dark-mode { }; -# sphinx-rtd-theme = callPackage ./python-modules/sphinx-rtd-theme { }; + # sphinx-rtd-theme = callPackage ./python-modules/sphinx-rtd-theme { }; -# sphinx-serve = callPackage ./python-modules/sphinx-serve { }; + # sphinx-serve = callPackage ./python-modules/sphinx-serve { }; -# sphinx-testing = callPackage ./python-modules/sphinx-testing { }; + # sphinx-testing = callPackage ./python-modules/sphinx-testing { }; -# sphinx-version-warning = callPackage ./python-modules/sphinx-version-warning { }; + # sphinx-version-warning = callPackage ./python-modules/sphinx-version-warning { }; -# sphinxext-opengraph = callPackage ./python-modules/sphinxext-opengraph { }; + # sphinxext-opengraph = callPackage ./python-modules/sphinxext-opengraph { }; -# spidev = callPackage ./python-modules/spidev { }; + # spidev = callPackage ./python-modules/spidev { }; -# splinter = callPackage ./python-modules/splinter { }; + # splinter = callPackage ./python-modules/splinter { }; -# spotipy = callPackage ./python-modules/spotipy { }; + # spotipy = callPackage ./python-modules/spotipy { }; -# spsdk = callPackage ./python-modules/spsdk { }; + # spsdk = callPackage ./python-modules/spsdk { }; -# spur = callPackage ./python-modules/spur { }; + # spur = callPackage ./python-modules/spur { }; -# spyder = callPackage ./python-modules/spyder { }; + # spyder = callPackage ./python-modules/spyder { }; -# spyder-kernels = callPackage ./python-modules/spyder-kernels { }; + # spyder-kernels = callPackage ./python-modules/spyder-kernels { }; -# spylls = callPackage ./python-modules/spylls { }; + # spylls = callPackage ./python-modules/spylls { }; -# spyse-python = callPackage ./python-modules/spyse-python { }; + # spyse-python = callPackage ./python-modules/spyse-python { }; -# spython = callPackage ./python-modules/spython { }; + # spython = callPackage ./python-modules/spython { }; -# sqids = callPackage ./python-modules/sqids { }; + # sqids = callPackage ./python-modules/sqids { }; -# sqlalchemy = callPackage ./python-modules/sqlalchemy { }; + # sqlalchemy = callPackage ./python-modules/sqlalchemy { }; -# sqlalchemy_1_4 = callPackage ./python-modules/sqlalchemy/1_4.nix { }; + # sqlalchemy_1_4 = callPackage ./python-modules/sqlalchemy/1_4.nix { }; -# sqlalchemy-citext = callPackage ./python-modules/sqlalchemy-citext { }; + # sqlalchemy-citext = callPackage ./python-modules/sqlalchemy-citext { }; -# sqlalchemy-continuum = callPackage ./python-modules/sqlalchemy-continuum { }; + # sqlalchemy-continuum = callPackage ./python-modules/sqlalchemy-continuum { }; -# sqlalchemy-i18n = callPackage ./python-modules/sqlalchemy-i18n { }; + # sqlalchemy-i18n = callPackage ./python-modules/sqlalchemy-i18n { }; -# sqlalchemy-jsonfield = callPackage ./python-modules/sqlalchemy-jsonfield { }; + # sqlalchemy-jsonfield = callPackage ./python-modules/sqlalchemy-jsonfield { }; -# sqlalchemy-migrate = callPackage ./python-modules/sqlalchemy-migrate { }; + # sqlalchemy-migrate = callPackage ./python-modules/sqlalchemy-migrate { }; -# sqlalchemy-mixins = callPackage ./python-modules/sqlalchemy-mixins { }; + # sqlalchemy-mixins = callPackage ./python-modules/sqlalchemy-mixins { }; -# sqlalchemy-utils = callPackage ./python-modules/sqlalchemy-utils { }; + # sqlalchemy-utils = callPackage ./python-modules/sqlalchemy-utils { }; -# sqlalchemy-views = callPackage ./python-modules/sqlalchemy-views { }; + # sqlalchemy-views = callPackage ./python-modules/sqlalchemy-views { }; -# sqlbag = callPackage ./python-modules/sqlbag { }; + # sqlbag = callPackage ./python-modules/sqlbag { }; -# sqlglot = callPackage ./python-modules/sqlglot { }; + # sqlglot = callPackage ./python-modules/sqlglot { }; -# sqlitedict = callPackage ./python-modules/sqlitedict { }; + # sqlitedict = callPackage ./python-modules/sqlitedict { }; -# sqlite-migrate = callPackage ./python-modules/sqlite-migrate { }; + # sqlite-migrate = callPackage ./python-modules/sqlite-migrate { }; -# sqlite-fts4 = callPackage ./python-modules/sqlite-fts4 { }; + # sqlite-fts4 = callPackage ./python-modules/sqlite-fts4 { }; -# sqlite-utils = callPackage ./python-modules/sqlite-utils { }; + # sqlite-utils = callPackage ./python-modules/sqlite-utils { }; -# sqliteschema = callPackage ./python-modules/sqliteschema { }; + # sqliteschema = callPackage ./python-modules/sqliteschema { }; -# sqlmap = callPackage ./python-modules/sqlmap { }; + # sqlmap = callPackage ./python-modules/sqlmap { }; -# sqlmodel = callPackage ./python-modules/sqlmodel { }; + # sqlmodel = callPackage ./python-modules/sqlmodel { }; -# sqlobject = callPackage ./python-modules/sqlobject { }; + # sqlobject = callPackage ./python-modules/sqlobject { }; -# sqlparse = callPackage ./python-modules/sqlparse { }; + # sqlparse = callPackage ./python-modules/sqlparse { }; -# sqlsoup = callPackage ./python-modules/sqlsoup { }; + # sqlsoup = callPackage ./python-modules/sqlsoup { }; -# sqltrie = callPackage ./python-modules/sqltrie { }; + # sqltrie = callPackage ./python-modules/sqltrie { }; -# squarify = callPackage ./python-modules/squarify { }; + # squarify = callPackage ./python-modules/squarify { }; -# sre-yield = callPackage ./python-modules/sre-yield { }; + # sre-yield = callPackage ./python-modules/sre-yield { }; -# srp = callPackage ./python-modules/srp { }; + # srp = callPackage ./python-modules/srp { }; -# srpenergy = callPackage ./python-modules/srpenergy { }; + # srpenergy = callPackage ./python-modules/srpenergy { }; -# srptools = callPackage ./python-modules/srptools { }; + # srptools = callPackage ./python-modules/srptools { }; -# srsly = callPackage ./python-modules/srsly { }; + # srsly = callPackage ./python-modules/srsly { }; -# srt = callPackage ./python-modules/srt { }; + # srt = callPackage ./python-modules/srt { }; -# srvlookup = callPackage ./python-modules/srvlookup { }; + # srvlookup = callPackage ./python-modules/srvlookup { }; -# ssdeep = callPackage ./python-modules/ssdeep { -# inherit (pkgs) ssdeep; -# }; + # ssdeep = callPackage ./python-modules/ssdeep { + # inherit (pkgs) ssdeep; + # }; -# ssdp = callPackage ./python-modules/ssdp { }; + # ssdp = callPackage ./python-modules/ssdp { }; -# ssdpy = callPackage ./python-modules/ssdpy { }; + # ssdpy = callPackage ./python-modules/ssdpy { }; -# sseclient = callPackage ./python-modules/sseclient { }; + # sseclient = callPackage ./python-modules/sseclient { }; -# sseclient-py = callPackage ./python-modules/sseclient-py { }; + # sseclient-py = callPackage ./python-modules/sseclient-py { }; -# sse-starlette = callPackage ./python-modules/sse-starlette { }; + # sse-starlette = callPackage ./python-modules/sse-starlette { }; -# sshfs = callPackage ./python-modules/sshfs { }; + # sshfs = callPackage ./python-modules/sshfs { }; -# sshpubkeys = callPackage ./python-modules/sshpubkeys { }; + # sshpubkeys = callPackage ./python-modules/sshpubkeys { }; -# sshtunnel = callPackage ./python-modules/sshtunnel { }; + # sshtunnel = callPackage ./python-modules/sshtunnel { }; -# sslib = callPackage ./python-modules/sslib { }; + # sslib = callPackage ./python-modules/sslib { }; -# ssg = callPackage ./python-modules/ssg { }; + # ssg = callPackage ./python-modules/ssg { }; -# stack-data = callPackage ./python-modules/stack-data { }; + # stack-data = callPackage ./python-modules/stack-data { }; -# stanio = callPackage ./python-modules/stanio { }; + # stanio = callPackage ./python-modules/stanio { }; -# stanza = callPackage ./python-modules/stanza { }; + # stanza = callPackage ./python-modules/stanza { }; -# starlette = callPackage ./python-modules/starlette { }; + # starlette = callPackage ./python-modules/starlette { }; -# starlette-context = callPackage ./python-modules/starlette-context { }; + # starlette-context = callPackage ./python-modules/starlette-context { }; -# starlette-wtf = callPackage ./python-modules/starlette-wtf { }; + # starlette-wtf = callPackage ./python-modules/starlette-wtf { }; -# starkbank-ecdsa = callPackage ./python-modules/starkbank-ecdsa { }; + # starkbank-ecdsa = callPackage ./python-modules/starkbank-ecdsa { }; -# starline = callPackage ./python-modules/starline { }; + # starline = callPackage ./python-modules/starline { }; -# stashy = callPackage ./python-modules/stashy { }; + # stashy = callPackage ./python-modules/stashy { }; -# static3 = callPackage ./python-modules/static3 { }; + # static3 = callPackage ./python-modules/static3 { }; -# staticmap = callPackage ./python-modules/staticmap { }; + # staticmap = callPackage ./python-modules/staticmap { }; -# staticjinja = callPackage ./python-modules/staticjinja { }; + # staticjinja = callPackage ./python-modules/staticjinja { }; -# statistics = callPackage ./python-modules/statistics { }; + # statistics = callPackage ./python-modules/statistics { }; -# statmake = callPackage ./python-modules/statmake { }; + # statmake = callPackage ./python-modules/statmake { }; -# statsd = callPackage ./python-modules/statsd { }; + # statsd = callPackage ./python-modules/statsd { }; -# statsmodels = callPackage ./python-modules/statsmodels { }; + # statsmodels = callPackage ./python-modules/statsmodels { }; -# std-uritemplate = callPackage ./python-modules/std-uritemplate { }; + # std-uritemplate = callPackage ./python-modules/std-uritemplate { }; -# std2 = callPackage ./python-modules/std2 { }; + # std2 = callPackage ./python-modules/std2 { }; -# stdiomask = callPackage ./python-modules/stdiomask { }; + # stdiomask = callPackage ./python-modules/stdiomask { }; -# stdlib-list = callPackage ./python-modules/stdlib-list { }; + # stdlib-list = callPackage ./python-modules/stdlib-list { }; -# stdlibs = callPackage ./python-modules/stdlibs { }; + # stdlibs = callPackage ./python-modules/stdlibs { }; -# steamodd = callPackage ./python-modules/steamodd { }; + # steamodd = callPackage ./python-modules/steamodd { }; -# steamship = callPackage ./python-modules/steamship { }; + # steamship = callPackage ./python-modules/steamship { }; -# stem = callPackage ./python-modules/stem { }; + # stem = callPackage ./python-modules/stem { }; -# stemming = callPackage ./python-modules/stemming { }; + # stemming = callPackage ./python-modules/stemming { }; -# stestr = callPackage ./python-modules/stestr { }; + # stestr = callPackage ./python-modules/stestr { }; -# stevedore = callPackage ./python-modules/stevedore { }; + # stevedore = callPackage ./python-modules/stevedore { }; -# stickytape = callPackage ./python-modules/stickytape { }; + # stickytape = callPackage ./python-modules/stickytape { }; -# stim = callPackage ./python-modules/stim { }; + # stim = callPackage ./python-modules/stim { }; -# stix2-patterns = callPackage ./python-modules/stix2-patterns { }; + # stix2-patterns = callPackage ./python-modules/stix2-patterns { }; -# stm32loader = callPackage ./python-modules/stm32loader { }; + # stm32loader = callPackage ./python-modules/stm32loader { }; -# stone = callPackage ./python-modules/stone { }; + # stone = callPackage ./python-modules/stone { }; -# stookalert = callPackage ./python-modules/stookalert { }; + # stookalert = callPackage ./python-modules/stookalert { }; -# stopit = callPackage ./python-modules/stopit { }; + # stopit = callPackage ./python-modules/stopit { }; -# stransi = callPackage ./python-modules/stransi { }; + # stransi = callPackage ./python-modules/stransi { }; -# strategies = callPackage ./python-modules/strategies { }; + # strategies = callPackage ./python-modules/strategies { }; -# stravalib = callPackage ./python-modules/stravalib { }; + # stravalib = callPackage ./python-modules/stravalib { }; -# strawberry-graphql = callPackage ./python-modules/strawberry-graphql { }; + # strawberry-graphql = callPackage ./python-modules/strawberry-graphql { }; -# strct = callPackage ./python-modules/strct { }; + # strct = callPackage ./python-modules/strct { }; -# streamdeck = callPackage ./python-modules/streamdeck { }; + # streamdeck = callPackage ./python-modules/streamdeck { }; -# streaming-form-data = callPackage ./python-modules/streaming-form-data { }; + # streaming-form-data = callPackage ./python-modules/streaming-form-data { }; -# streamlabswater = callPackage ./python-modules/streamlabswater { }; + # streamlabswater = callPackage ./python-modules/streamlabswater { }; -# streamlit = callPackage ./python-modules/streamlit { }; + # streamlit = callPackage ./python-modules/streamlit { }; -# streamz = callPackage ./python-modules/streamz { }; + # streamz = callPackage ./python-modules/streamz { }; -# strenum = callPackage ./python-modules/strenum { }; + # strenum = callPackage ./python-modules/strenum { }; -# strict-rfc3339 = callPackage ./python-modules/strict-rfc3339 { }; + # strict-rfc3339 = callPackage ./python-modules/strict-rfc3339 { }; -# strictyaml = callPackage ./python-modules/strictyaml { }; + # strictyaml = callPackage ./python-modules/strictyaml { }; -# stringbrewer = callPackage ./python-modules/stringbrewer { }; + # stringbrewer = callPackage ./python-modules/stringbrewer { }; -# stringcase = callPackage ./python-modules/stringcase { }; + # stringcase = callPackage ./python-modules/stringcase { }; -# stringly = callPackage ./python-modules/stringly { }; + # stringly = callPackage ./python-modules/stringly { }; -# stringparser = callPackage ./python-modules/stringparser { }; + # stringparser = callPackage ./python-modules/stringparser { }; -# stripe = callPackage ./python-modules/stripe { }; + # stripe = callPackage ./python-modules/stripe { }; -# striprtf = callPackage ./python-modules/striprtf { }; + # striprtf = callPackage ./python-modules/striprtf { }; -# structlog = callPackage ./python-modules/structlog { }; + # structlog = callPackage ./python-modules/structlog { }; -# stubserver = callPackage ./python-modules/stubserver { }; + # stubserver = callPackage ./python-modules/stubserver { }; -# stumpy = callPackage ./python-modules/stumpy { }; + # stumpy = callPackage ./python-modules/stumpy { }; -# stupidartnet = callPackage ./python-modules/stupidartnet { }; + # stupidartnet = callPackage ./python-modules/stupidartnet { }; -# stups-cli-support = callPackage ./python-modules/stups-cli-support { }; + # stups-cli-support = callPackage ./python-modules/stups-cli-support { }; -# stups-fullstop = callPackage ./python-modules/stups-fullstop { }; + # stups-fullstop = callPackage ./python-modules/stups-fullstop { }; -# stups-pierone = callPackage ./python-modules/stups-pierone { }; + # stups-pierone = callPackage ./python-modules/stups-pierone { }; -# stups-tokens = callPackage ./python-modules/stups-tokens { }; + # stups-tokens = callPackage ./python-modules/stups-tokens { }; -# stups-zign = callPackage ./python-modules/stups-zign { }; + # stups-zign = callPackage ./python-modules/stups-zign { }; -# stytra = callPackage ./python-modules/stytra { }; + # stytra = callPackage ./python-modules/stytra { }; -# subarulink = callPackage ./python-modules/subarulink { }; + # subarulink = callPackage ./python-modules/subarulink { }; -# subliminal = callPackage ./python-modules/subliminal { }; + # subliminal = callPackage ./python-modules/subliminal { }; -# subprocess-tee = callPackage ./python-modules/subprocess-tee { }; + # subprocess-tee = callPackage ./python-modules/subprocess-tee { }; -# subunit = callPackage ./python-modules/subunit { -# inherit (pkgs) subunit cppunit check; -# }; + # subunit = callPackage ./python-modules/subunit { + # inherit (pkgs) subunit cppunit check; + # }; -# subunit2sql = callPackage ./python-modules/subunit2sql { }; + # subunit2sql = callPackage ./python-modules/subunit2sql { }; -# subzerod = callPackage ./python-modules/subzerod { }; + # subzerod = callPackage ./python-modules/subzerod { }; -# succulent = callPackage ./python-modules/succulent { }; + # succulent = callPackage ./python-modules/succulent { }; -# sudachidict-core = callPackage ./python-modules/sudachidict { }; + # sudachidict-core = callPackage ./python-modules/sudachidict { }; -# sudachidict-full = callPackage ./python-modules/sudachidict { -# sudachidict = pkgs.sudachidict.override { dict-type = "full"; }; -# }; + # sudachidict-full = callPackage ./python-modules/sudachidict { + # sudachidict = pkgs.sudachidict.override { dict-type = "full"; }; + # }; -# sudachidict-small = callPackage ./python-modules/sudachidict { -# sudachidict = pkgs.sudachidict.override { dict-type = "small"; }; -# }; + # sudachidict-small = callPackage ./python-modules/sudachidict { + # sudachidict = pkgs.sudachidict.override { dict-type = "small"; }; + # }; -# sudachipy = callPackage ./python-modules/sudachipy { }; + # sudachipy = callPackage ./python-modules/sudachipy { }; -# sumo = callPackage ./python-modules/sumo { }; + # sumo = callPackage ./python-modules/sumo { }; -# sumtypes = callPackage ./python-modules/sumtypes { }; + # sumtypes = callPackage ./python-modules/sumtypes { }; -# summarytools = callPackage ./python-modules/summarytools { }; + # summarytools = callPackage ./python-modules/summarytools { }; -# sunpy = callPackage ./python-modules/sunpy { }; + # sunpy = callPackage ./python-modules/sunpy { }; -# sunwatcher = callPackage ./python-modules/sunwatcher { }; + # sunwatcher = callPackage ./python-modules/sunwatcher { }; -# sunweg = callPackage ./python-modules/sunweg { }; + # sunweg = callPackage ./python-modules/sunweg { }; -# supervise-api = callPackage ./python-modules/supervise-api { }; + # supervise-api = callPackage ./python-modules/supervise-api { }; -# supervisor = callPackage ./python-modules/supervisor { }; + # supervisor = callPackage ./python-modules/supervisor { }; -# superqt = callPackage ./python-modules/superqt { }; + # superqt = callPackage ./python-modules/superqt { }; -# sure = callPackage ./python-modules/sure { }; + # sure = callPackage ./python-modules/sure { }; -# surepy = callPackage ./python-modules/surepy { }; + # surepy = callPackage ./python-modules/surepy { }; -# surt = callPackage ./python-modules/surt { }; + # surt = callPackage ./python-modules/surt { }; -# survey = callPackage ./python-modules/survey { }; + # survey = callPackage ./python-modules/survey { }; -# svg2tikz = callPackage ./python-modules/svg2tikz { }; + # svg2tikz = callPackage ./python-modules/svg2tikz { }; -# svglib = callPackage ./python-modules/svglib { }; + # svglib = callPackage ./python-modules/svglib { }; -# svg-path = callPackage ./python-modules/svg-path { }; + # svg-path = callPackage ./python-modules/svg-path { }; -# svg-py = callPackage ./python-modules/svg-py { }; + # svg-py = callPackage ./python-modules/svg-py { }; -# svgelements = callPackage ./python-modules/svgelements { }; + # svgelements = callPackage ./python-modules/svgelements { }; -# svgutils = callPackage ./python-modules/svgutils { }; + # svgutils = callPackage ./python-modules/svgutils { }; -# svgwrite = callPackage ./python-modules/svgwrite { }; + # svgwrite = callPackage ./python-modules/svgwrite { }; -# sv-ttk = callPackage ./python-modules/sv-ttk { }; + # sv-ttk = callPackage ./python-modules/sv-ttk { }; -# swagger-spec-validator = callPackage ./python-modules/swagger-spec-validator { }; + # swagger-spec-validator = callPackage ./python-modules/swagger-spec-validator { }; -# swagger-ui-bundle = callPackage ./python-modules/swagger-ui-bundle { }; + # swagger-ui-bundle = callPackage ./python-modules/swagger-ui-bundle { }; -# switchbot-api = callPackage ./python-modules/switchbot-api { }; + # switchbot-api = callPackage ./python-modules/switchbot-api { }; -# swift = callPackage ./python-modules/swift { }; + # swift = callPackage ./python-modules/swift { }; -# swisshydrodata = callPackage ./python-modules/swisshydrodata { }; + # swisshydrodata = callPackage ./python-modules/swisshydrodata { }; -# swspotify = callPackage ./python-modules/swspotify { }; + # swspotify = callPackage ./python-modules/swspotify { }; -# sybil = callPackage ./python-modules/sybil { }; + # sybil = callPackage ./python-modules/sybil { }; -# symengine = callPackage ./python-modules/symengine { -# inherit (pkgs) symengine; -# }; + # symengine = callPackage ./python-modules/symengine { + # inherit (pkgs) symengine; + # }; -# sympy = callPackage ./python-modules/sympy { }; + # sympy = callPackage ./python-modules/sympy { }; -# symspellpy = callPackage ./python-modules/symspellpy { }; + # symspellpy = callPackage ./python-modules/symspellpy { }; -# syncedlyrics = callPackage ./python-modules/syncedlyrics { }; + # syncedlyrics = callPackage ./python-modules/syncedlyrics { }; -# syncer = callPackage ./python-modules/syncer { }; + # syncer = callPackage ./python-modules/syncer { }; -# synergy = callPackage ./python-modules/synergy { }; + # synergy = callPackage ./python-modules/synergy { }; -# synologydsm-api = callPackage ./python-modules/synologydsm-api { }; + # synologydsm-api = callPackage ./python-modules/synologydsm-api { }; -# syslog-rfc5424-formatter = callPackage ./python-modules/syslog-rfc5424-formatter { }; + # syslog-rfc5424-formatter = callPackage ./python-modules/syslog-rfc5424-formatter { }; -# systembridge = callPackage ./python-modules/systembridge { }; + # systembridge = callPackage ./python-modules/systembridge { }; -# systembridgeconnector = callPackage ./python-modules/systembridgeconnector { }; + # systembridgeconnector = callPackage ./python-modules/systembridgeconnector { }; -# systembridgemodels = callPackage ./python-modules/systembridgemodels { }; + # systembridgemodels = callPackage ./python-modules/systembridgemodels { }; -# systemd = callPackage ./python-modules/systemd { -# inherit (pkgs) systemd; -# }; + # systemd = callPackage ./python-modules/systemd { + # inherit (pkgs) systemd; + # }; -# sysv-ipc = callPackage ./python-modules/sysv-ipc { }; + # sysv-ipc = callPackage ./python-modules/sysv-ipc { }; -# syrupy = callPackage ./python-modules/syrupy { }; + # syrupy = callPackage ./python-modules/syrupy { }; -# tabcmd = callPackage ./python-modules/tabcmd { }; + # tabcmd = callPackage ./python-modules/tabcmd { }; -# tableaudocumentapi = callPackage ./python-modules/tableaudocumentapi { }; + # tableaudocumentapi = callPackage ./python-modules/tableaudocumentapi { }; -# tableauserverclient = callPackage ./python-modules/tableauserverclient { }; + # tableauserverclient = callPackage ./python-modules/tableauserverclient { }; -# tabledata = callPackage ./python-modules/tabledata { }; + # tabledata = callPackage ./python-modules/tabledata { }; -# tables = callPackage ./python-modules/tables { }; + # tables = callPackage ./python-modules/tables { }; -# tablib = callPackage ./python-modules/tablib { }; + # tablib = callPackage ./python-modules/tablib { }; -# tabula-py = callPackage ./python-modules/tabula-py { }; + # tabula-py = callPackage ./python-modules/tabula-py { }; -# tabulate = callPackage ./python-modules/tabulate { }; + # tabulate = callPackage ./python-modules/tabulate { }; -# tabview = callPackage ./python-modules/tabview { }; + # tabview = callPackage ./python-modules/tabview { }; -# taco = toPythonModule (pkgs.taco.override { -# inherit (self) python; -# enablePython = true; -# }); + # taco = toPythonModule (pkgs.taco.override { + # inherit (self) python; + # enablePython = true; + # }); -# tadasets = callPackage ./python-modules/tadasets { }; + # tadasets = callPackage ./python-modules/tadasets { }; -# tag-expressions = callPackage ./python-modules/tag-expressions { }; + # tag-expressions = callPackage ./python-modules/tag-expressions { }; -# tago = callPackage ./python-modules/tago { }; + # tago = callPackage ./python-modules/tago { }; -# tagoio-sdk = callPackage ./python-modules/tagoio-sdk { }; + # tagoio-sdk = callPackage ./python-modules/tagoio-sdk { }; -# tahoma-api = callPackage ./python-modules/tahoma-api { }; + # tahoma-api = callPackage ./python-modules/tahoma-api { }; -# tailer = callPackage ./python-modules/tailer { }; + # tailer = callPackage ./python-modules/tailer { }; -# tailscale = callPackage ./python-modules/tailscale { }; + # tailscale = callPackage ./python-modules/tailscale { }; -# takethetime = callPackage ./python-modules/takethetime { }; + # takethetime = callPackage ./python-modules/takethetime { }; -# tank-utility = callPackage ./python-modules/tank-utility { }; + # tank-utility = callPackage ./python-modules/tank-utility { }; -# tappy = callPackage ./python-modules/tappy { }; + # tappy = callPackage ./python-modules/tappy { }; -# tasklib = callPackage ./python-modules/tasklib { }; + # tasklib = callPackage ./python-modules/tasklib { }; -# taskw = callPackage ./python-modules/taskw { }; + # taskw = callPackage ./python-modules/taskw { }; -# taskw-ng = callPackage ./python-modules/taskw-ng { }; + # taskw-ng = callPackage ./python-modules/taskw-ng { }; -# tatsu = callPackage ./python-modules/tatsu { }; + # tatsu = callPackage ./python-modules/tatsu { }; -# taxi = callPackage ./python-modules/taxi { }; + # taxi = callPackage ./python-modules/taxi { }; -# tbats = callPackage ./python-modules/tbats { }; + # tbats = callPackage ./python-modules/tbats { }; -# tblib = callPackage ./python-modules/tblib { }; + # tblib = callPackage ./python-modules/tblib { }; -# tblite = callPackage ../development/libraries/science/chemistry/tblite/python.nix { -# inherit (pkgs) tblite meson simple-dftd3; -# }; + # tblite = callPackage ../development/libraries/science/chemistry/tblite/python.nix { + # inherit (pkgs) tblite meson simple-dftd3; + # }; -# tbm-utils = callPackage ./python-modules/tbm-utils { }; + # tbm-utils = callPackage ./python-modules/tbm-utils { }; -# tcolorpy = callPackage ./python-modules/tcolorpy { }; + # tcolorpy = callPackage ./python-modules/tcolorpy { }; -# tcxparser = callPackage ./python-modules/tcxparser { }; + # tcxparser = callPackage ./python-modules/tcxparser { }; -# tcxreader = callPackage ./python-modules/tcxreader { }; + # tcxreader = callPackage ./python-modules/tcxreader { }; -# tdir = callPackage ./python-modules/tdir { }; + # tdir = callPackage ./python-modules/tdir { }; -# teamcity-messages = callPackage ./python-modules/teamcity-messages { }; + # teamcity-messages = callPackage ./python-modules/teamcity-messages { }; -# telegram = callPackage ./python-modules/telegram { }; + # telegram = callPackage ./python-modules/telegram { }; -# telegraph = callPackage ./python-modules/telegraph { }; + # telegraph = callPackage ./python-modules/telegraph { }; -# telepath = callPackage ./python-modules/telepath { }; + # telepath = callPackage ./python-modules/telepath { }; -# telethon = callPackage ./python-modules/telethon { -# inherit (pkgs) openssl; -# }; + # telethon = callPackage ./python-modules/telethon { + # inherit (pkgs) openssl; + # }; -# telethon-session-sqlalchemy = callPackage ./python-modules/telethon-session-sqlalchemy { }; + # telethon-session-sqlalchemy = callPackage ./python-modules/telethon-session-sqlalchemy { }; -# teletype = callPackage ./python-modules/teletype { }; + # teletype = callPackage ./python-modules/teletype { }; -# telfhash = callPackage ./python-modules/telfhash { }; + # telfhash = callPackage ./python-modules/telfhash { }; -# telegram-text = callPackage ./python-modules/telegram-text { }; + # telegram-text = callPackage ./python-modules/telegram-text { }; -# temescal = callPackage ./python-modules/temescal { }; + # temescal = callPackage ./python-modules/temescal { }; -# temperusb = callPackage ./python-modules/temperusb { }; + # temperusb = callPackage ./python-modules/temperusb { }; -# tempest = callPackage ./python-modules/tempest { }; + # tempest = callPackage ./python-modules/tempest { }; -# tempita = callPackage ./python-modules/tempita { }; + # tempita = callPackage ./python-modules/tempita { }; -# templateflow = callPackage ./python-modules/templateflow { }; + # templateflow = callPackage ./python-modules/templateflow { }; -# tempora = callPackage ./python-modules/tempora { }; + # tempora = callPackage ./python-modules/tempora { }; -# tenacity = callPackage ./python-modules/tenacity { }; + # tenacity = callPackage ./python-modules/tenacity { }; -# tencentcloud-sdk-python = callPackage ./python-modules/tencentcloud-sdk-python { }; + # tencentcloud-sdk-python = callPackage ./python-modules/tencentcloud-sdk-python { }; -# tendo = callPackage ./python-modules/tendo { }; + # tendo = callPackage ./python-modules/tendo { }; -# tensorboard-data-server = callPackage ./python-modules/tensorboard-data-server { }; + # tensorboard-data-server = callPackage ./python-modules/tensorboard-data-server { }; -# tensorboard-plugin-profile = callPackage ./python-modules/tensorboard-plugin-profile { }; + # tensorboard-plugin-profile = callPackage ./python-modules/tensorboard-plugin-profile { }; -# tensorboard-plugin-wit = callPackage ./python-modules/tensorboard-plugin-wit { }; + # tensorboard-plugin-wit = callPackage ./python-modules/tensorboard-plugin-wit { }; -# tensorboard = callPackage ./python-modules/tensorboard { }; + # tensorboard = callPackage ./python-modules/tensorboard { }; -# tensorboardx = callPackage ./python-modules/tensorboardx { }; + # tensorboardx = callPackage ./python-modules/tensorboardx { }; -# tensordict = callPackage ./python-modules/tensordict { }; + # tensordict = callPackage ./python-modules/tensordict { }; -# tensorflow-bin = callPackage ./python-modules/tensorflow/bin.nix { -# inherit (pkgs.config) cudaSupport; -# }; + # tensorflow-bin = callPackage ./python-modules/tensorflow/bin.nix { + # inherit (pkgs.config) cudaSupport; + # }; -# tensorflow-build = let -# compat = rec { -# protobufTF = pkgs.protobuf_21.override { -# abseil-cpp = pkgs.abseil-cpp_202301; -# }; -# grpcTF = (pkgs.grpc.overrideAttrs ( -# oldAttrs: rec { -# # nvcc fails on recent grpc versions, so we use the latest patch level -# # of the grpc version bundled by upstream tensorflow to allow CUDA -# # support -# version = "1.27.3"; -# src = pkgs.fetchFromGitHub { -# owner = "grpc"; -# repo = "grpc"; -# rev = "v${version}"; -# hash = "sha256-PpiOT4ZJe1uMp5j+ReQulC9jpT0xoR2sAl6vRYKA0AA="; -# fetchSubmodules = true; -# }; -# patches = [ ]; -# postPatch = '' -# sed -i "s/-std=c++11/-std=c++17/" CMakeLists.txt -# echo "set(CMAKE_CXX_STANDARD 17)" >> CMakeLists.txt -# ''; -# }) -# ).override { -# protobuf = protobufTF; -# }; -# protobuf-pythonTF = self.protobuf.override { -# protobuf = protobufTF; -# }; -# grpcioTF = self.grpcio.override { -# protobuf = protobufTF; -# grpc = grpcTF; -# }; -# tensorboard-plugin-profileTF = self.tensorboard-plugin-profile.override { -# protobuf = protobuf-pythonTF; -# }; -# tensorboardTF = self.tensorboard.override { -# grpcio = grpcioTF; -# protobuf = protobuf-pythonTF; -# tensorboard-plugin-profile = tensorboard-plugin-profileTF; -# }; -# }; -# in -# callPackage ./python-modules/tensorflow { -# inherit (pkgs.darwin) cctools; -# inherit (pkgs.config) cudaSupport; -# inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security; -# flatbuffers-core = pkgs.flatbuffers; -# flatbuffers-python = self.flatbuffers; -# protobuf-core = compat.protobufTF; -# protobuf-python = compat.protobuf-pythonTF; -# grpc = compat.grpcTF; -# grpcio = compat.grpcioTF; -# tensorboard = compat.tensorboardTF; -# abseil-cpp = pkgs.abseil-cpp_202301; + # tensorflow-build = let + # compat = rec { + # protobufTF = pkgs.protobuf_21.override { + # abseil-cpp = pkgs.abseil-cpp_202301; + # }; + # grpcTF = (pkgs.grpc.overrideAttrs ( + # oldAttrs: rec { + # # nvcc fails on recent grpc versions, so we use the latest patch level + # # of the grpc version bundled by upstream tensorflow to allow CUDA + # # support + # version = "1.27.3"; + # src = pkgs.fetchFromGitHub { + # owner = "grpc"; + # repo = "grpc"; + # rev = "v${version}"; + # hash = "sha256-PpiOT4ZJe1uMp5j+ReQulC9jpT0xoR2sAl6vRYKA0AA="; + # fetchSubmodules = true; + # }; + # patches = [ ]; + # postPatch = '' + # sed -i "s/-std=c++11/-std=c++17/" CMakeLists.txt + # echo "set(CMAKE_CXX_STANDARD 17)" >> CMakeLists.txt + # ''; + # }) + # ).override { + # protobuf = protobufTF; + # }; + # protobuf-pythonTF = self.protobuf.override { + # protobuf = protobufTF; + # }; + # grpcioTF = self.grpcio.override { + # protobuf = protobufTF; + # grpc = grpcTF; + # }; + # tensorboard-plugin-profileTF = self.tensorboard-plugin-profile.override { + # protobuf = protobuf-pythonTF; + # }; + # tensorboardTF = self.tensorboard.override { + # grpcio = grpcioTF; + # protobuf = protobuf-pythonTF; + # tensorboard-plugin-profile = tensorboard-plugin-profileTF; + # }; + # }; + # in + # callPackage ./python-modules/tensorflow { + # inherit (pkgs.darwin) cctools; + # inherit (pkgs.config) cudaSupport; + # inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security; + # flatbuffers-core = pkgs.flatbuffers; + # flatbuffers-python = self.flatbuffers; + # protobuf-core = compat.protobufTF; + # protobuf-python = compat.protobuf-pythonTF; + # grpc = compat.grpcTF; + # grpcio = compat.grpcioTF; + # tensorboard = compat.tensorboardTF; + # abseil-cpp = pkgs.abseil-cpp_202301; -# # Tensorflow 2.13 doesn't support gcc13: -# # https://github.com/tensorflow/tensorflow/issues/61289 -# # -# # We use the nixpkgs' default libstdc++ to stay compatible with other -# # python modules -# stdenv = pkgs.stdenvAdapters.useLibsFrom stdenv pkgs.gcc12Stdenv; -# }; + # # Tensorflow 2.13 doesn't support gcc13: + # # https://github.com/tensorflow/tensorflow/issues/61289 + # # + # # We use the nixpkgs' default libstdc++ to stay compatible with other + # # python modules + # stdenv = pkgs.stdenvAdapters.useLibsFrom stdenv pkgs.gcc12Stdenv; + # }; -# tensorflow-datasets = callPackage ./python-modules/tensorflow-datasets { }; + # tensorflow-datasets = callPackage ./python-modules/tensorflow-datasets { }; -# tensorflow-estimator-bin = callPackage ./python-modules/tensorflow-estimator/bin.nix { }; + # tensorflow-estimator-bin = callPackage ./python-modules/tensorflow-estimator/bin.nix { }; -# tensorflow-metadata = callPackage ./python-modules/tensorflow-metadata { }; + # tensorflow-metadata = callPackage ./python-modules/tensorflow-metadata { }; -# tensorflow-probability = callPackage ./python-modules/tensorflow-probability { -# inherit (pkgs.darwin) cctools; -# }; + # tensorflow-probability = callPackage ./python-modules/tensorflow-probability { + # inherit (pkgs.darwin) cctools; + # }; -# tensorflow = self.tensorflow-build; + # tensorflow = self.tensorflow-build; -# tensorflowWithCuda = self.tensorflow.override { -# cudaSupport = true; -# }; + # tensorflowWithCuda = self.tensorflow.override { + # cudaSupport = true; + # }; -# tensorflowWithoutCuda = self.tensorflow.override { -# cudaSupport = false; -# }; + # tensorflowWithoutCuda = self.tensorflow.override { + # cudaSupport = false; + # }; -# tensorly = callPackage ./python-modules/tensorly { }; + # tensorly = callPackage ./python-modules/tensorly { }; -# tensorrt = callPackage ./python-modules/tensorrt { cudaPackages = pkgs.cudaPackages_11; }; + # tensorrt = callPackage ./python-modules/tensorrt { cudaPackages = pkgs.cudaPackages_11; }; -# tensorstore = callPackage ./python-modules/tensorstore { }; + # tensorstore = callPackage ./python-modules/tensorstore { }; -# tellduslive = callPackage ./python-modules/tellduslive { }; + # tellduslive = callPackage ./python-modules/tellduslive { }; -# termcolor = callPackage ./python-modules/termcolor { }; + # termcolor = callPackage ./python-modules/termcolor { }; -# termgraph = callPackage ./python-modules/termgraph { }; + # termgraph = callPackage ./python-modules/termgraph { }; -# terminado = callPackage ./python-modules/terminado { }; + # terminado = callPackage ./python-modules/terminado { }; -# terminaltables = callPackage ./python-modules/terminaltables { }; + # terminaltables = callPackage ./python-modules/terminaltables { }; -# termplotlib = callPackage ./python-modules/termplotlib { }; + # termplotlib = callPackage ./python-modules/termplotlib { }; -# termstyle = callPackage ./python-modules/termstyle { }; + # termstyle = callPackage ./python-modules/termstyle { }; -# tern = callPackage ./python-modules/tern { }; + # tern = callPackage ./python-modules/tern { }; -# tesla-fleet-api = callPackage ./python-modules/tesla-fleet-api { }; + # tesla-fleet-api = callPackage ./python-modules/tesla-fleet-api { }; -# tesla-powerwall = callPackage ./python-modules/tesla-powerwall { }; + # tesla-powerwall = callPackage ./python-modules/tesla-powerwall { }; -# tesla-wall-connector = callPackage ./python-modules/tesla-wall-connector { }; + # tesla-wall-connector = callPackage ./python-modules/tesla-wall-connector { }; -# teslajsonpy = callPackage ./python-modules/teslajsonpy { }; + # teslajsonpy = callPackage ./python-modules/teslajsonpy { }; -# tess = callPackage ./python-modules/tess { }; + # tess = callPackage ./python-modules/tess { }; -# tesserocr = callPackage ./python-modules/tesserocr { }; + # tesserocr = callPackage ./python-modules/tesserocr { }; -# testcontainers = callPackage ./python-modules/testcontainers { }; + # testcontainers = callPackage ./python-modules/testcontainers { }; -# testfixtures = callPackage ./python-modules/testfixtures { }; + # testfixtures = callPackage ./python-modules/testfixtures { }; -# texsoup = callPackage ./python-modules/texsoup { }; + # texsoup = callPackage ./python-modules/texsoup { }; -# textfsm = callPackage ./python-modules/textfsm { }; + # textfsm = callPackage ./python-modules/textfsm { }; -# textile = callPackage ./python-modules/textile { }; + # textile = callPackage ./python-modules/textile { }; -# textparser = callPackage ./python-modules/textparser { }; + # textparser = callPackage ./python-modules/textparser { }; -# textual = callPackage ./python-modules/textual { }; + # textual = callPackage ./python-modules/textual { }; -# textual-dev = callPackage ./python-modules/textual-dev { }; + # textual-dev = callPackage ./python-modules/textual-dev { }; -# textual-universal-directorytree = callPackage ./python-modules/textual-universal-directorytree { }; + # textual-universal-directorytree = callPackage ./python-modules/textual-universal-directorytree { }; -# testbook = callPackage ./python-modules/testbook { }; + # testbook = callPackage ./python-modules/testbook { }; -# testing-common-database = callPackage ./python-modules/testing-common-database { }; + # testing-common-database = callPackage ./python-modules/testing-common-database { }; -# testing-postgresql = callPackage ./python-modules/testing-postgresql { }; + # testing-postgresql = callPackage ./python-modules/testing-postgresql { }; testpath = callPackage ./python-modules/testpath { }; -# testrail-api = callPackage ./python-modules/testrail-api { }; + # testrail-api = callPackage ./python-modules/testrail-api { }; -# testrepository = callPackage ./python-modules/testrepository { }; + # testrepository = callPackage ./python-modules/testrepository { }; -# testresources = callPackage ./python-modules/testresources { }; + # testresources = callPackage ./python-modules/testresources { }; -# testscenarios = callPackage ./python-modules/testscenarios { }; + # testscenarios = callPackage ./python-modules/testscenarios { }; -# testtools = callPackage ./python-modules/testtools { }; + # testtools = callPackage ./python-modules/testtools { }; -# test-tube = callPackage ./python-modules/test-tube { }; + # test-tube = callPackage ./python-modules/test-tube { }; -# textdistance = callPackage ./python-modules/textdistance { }; + # textdistance = callPackage ./python-modules/textdistance { }; -# textacy = callPackage ./python-modules/textacy { }; + # textacy = callPackage ./python-modules/textacy { }; -# textnets = callPackage ./python-modules/textnets { -# en_core_web_sm = spacy-models.en_core_web_sm; -# }; + # textnets = callPackage ./python-modules/textnets { + # en_core_web_sm = spacy-models.en_core_web_sm; + # }; -# texttable = callPackage ./python-modules/texttable { }; + # texttable = callPackage ./python-modules/texttable { }; -# text-unidecode = callPackage ./python-modules/text-unidecode { }; + # text-unidecode = callPackage ./python-modules/text-unidecode { }; -# textwrap3 = callPackage ./python-modules/textwrap3 { }; + # textwrap3 = callPackage ./python-modules/textwrap3 { }; -# textx = callPackage ./python-modules/textx { }; + # textx = callPackage ./python-modules/textx { }; -# tf2onnx = callPackage ./python-modules/tf2onnx { }; + # tf2onnx = callPackage ./python-modules/tf2onnx { }; -# tflearn = callPackage ./python-modules/tflearn { }; + # tflearn = callPackage ./python-modules/tflearn { }; -# tftpy = callPackage ./python-modules/tftpy { }; + # tftpy = callPackage ./python-modules/tftpy { }; -# tgcrypto = callPackage ./python-modules/tgcrypto { }; + # tgcrypto = callPackage ./python-modules/tgcrypto { }; -# theano-pymc = callPackage ./python-modules/theano-pymc { }; + # theano-pymc = callPackage ./python-modules/theano-pymc { }; -# theano = callPackage ./python-modules/theano rec { -# inherit (pkgs.config) cudaSupport; -# cudnnSupport = cudaSupport; -# }; + # theano = callPackage ./python-modules/theano rec { + # inherit (pkgs.config) cudaSupport; + # cudnnSupport = cudaSupport; + # }; -# theanoWithCuda = self.theano.override { -# cudaSupport = true; -# cudnnSupport = true; -# }; + # theanoWithCuda = self.theano.override { + # cudaSupport = true; + # cudnnSupport = true; + # }; -# theanoWithoutCuda = self.theano.override { -# cudaSupport = false; -# cudnnSupport = false; -# }; + # theanoWithoutCuda = self.theano.override { + # cudaSupport = false; + # cudnnSupport = false; + # }; -# thefuzz = callPackage ./python-modules/thefuzz { }; + # thefuzz = callPackage ./python-modules/thefuzz { }; -# thelogrus = callPackage ./python-modules/thelogrus { }; + # thelogrus = callPackage ./python-modules/thelogrus { }; -# thermobeacon-ble = callPackage ./python-modules/thermobeacon-ble { }; + # thermobeacon-ble = callPackage ./python-modules/thermobeacon-ble { }; -# thermopro-ble = callPackage ./python-modules/thermopro-ble { }; + # thermopro-ble = callPackage ./python-modules/thermopro-ble { }; -# thespian = callPackage ./python-modules/thespian { }; + # thespian = callPackage ./python-modules/thespian { }; -# thinc = callPackage ./python-modules/thinc { -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreFoundation CoreGraphics CoreVideo; -# }; + # thinc = callPackage ./python-modules/thinc { + # inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreFoundation CoreGraphics CoreVideo; + # }; -# thorlabspm100 = callPackage ./python-modules/thorlabspm100 { }; + # thorlabspm100 = callPackage ./python-modules/thorlabspm100 { }; -# threadloop = callPackage ./python-modules/threadloop { }; + # threadloop = callPackage ./python-modules/threadloop { }; -# threadpool = callPackage ./python-modules/threadpool { }; + # threadpool = callPackage ./python-modules/threadpool { }; -# threadpoolctl = callPackage ./python-modules/threadpoolctl { }; + # threadpoolctl = callPackage ./python-modules/threadpoolctl { }; -# threat9-test-bed = callPackage ./python-modules/threat9-test-bed { }; + # threat9-test-bed = callPackage ./python-modules/threat9-test-bed { }; -# three-merge = callPackage ./python-modules/three-merge { }; + # three-merge = callPackage ./python-modules/three-merge { }; -# thrift = callPackage ./python-modules/thrift { }; + # thrift = callPackage ./python-modules/thrift { }; -# thriftpy2 = callPackage ./python-modules/thriftpy2 { }; + # thriftpy2 = callPackage ./python-modules/thriftpy2 { }; -# throttler = callPackage ./python-modules/throttler { }; + # throttler = callPackage ./python-modules/throttler { }; -# thttp = callPackage ./python-modules/thttp { }; + # thttp = callPackage ./python-modules/thttp { }; -# tkinter = callPackage ./python-modules/tkinter { -# py = python.override { x11Support=true; }; -# }; + # tkinter = callPackage ./python-modules/tkinter { + # py = python.override { x11Support=true; }; + # }; -# tidalapi = callPackage ./python-modules/tidalapi { }; + # tidalapi = callPackage ./python-modules/tidalapi { }; -# tidyexc = callPackage ./python-modules/tidyexc { }; + # tidyexc = callPackage ./python-modules/tidyexc { }; -# tidylib = callPackage ./python-modules/pytidylib { }; + # tidylib = callPackage ./python-modules/pytidylib { }; -# tifffile = callPackage ./python-modules/tifffile { }; + # tifffile = callPackage ./python-modules/tifffile { }; -# tika = callPackage ./python-modules/tika { }; + # tika = callPackage ./python-modules/tika { }; -# tika-client = callPackage ./python-modules/tika-client { }; + # tika-client = callPackage ./python-modules/tika-client { }; -# tiktoken = callPackage ./python-modules/tiktoken { }; + # tiktoken = callPackage ./python-modules/tiktoken { }; -# tikzplotlib = callPackage ./python-modules/tikzplotlib { }; + # tikzplotlib = callPackage ./python-modules/tikzplotlib { }; -# tiledb = callPackage ./python-modules/tiledb { -# inherit (pkgs) tiledb; -# }; + # tiledb = callPackage ./python-modules/tiledb { + # inherit (pkgs) tiledb; + # }; -# tilequant = callPackage ./python-modules/tilequant { }; + # tilequant = callPackage ./python-modules/tilequant { }; -# tiler = callPackage ./python-modules/tiler { }; + # tiler = callPackage ./python-modules/tiler { }; -# tilestache = callPackage ./python-modules/tilestache { }; + # tilestache = callPackage ./python-modules/tilestache { }; -# tilt-ble = callPackage ./python-modules/tilt-ble { }; + # tilt-ble = callPackage ./python-modules/tilt-ble { }; -# timeago = callPackage ./python-modules/timeago { }; + # timeago = callPackage ./python-modules/timeago { }; -# timecop = callPackage ./python-modules/timecop { }; + # timecop = callPackage ./python-modules/timecop { }; -# timelib = callPackage ./python-modules/timelib { }; + # timelib = callPackage ./python-modules/timelib { }; -# time-machine = callPackage ./python-modules/time-machine { }; + # time-machine = callPackage ./python-modules/time-machine { }; -# timeout-decorator = callPackage ./python-modules/timeout-decorator { }; + # timeout-decorator = callPackage ./python-modules/timeout-decorator { }; -# timeslot = callPackage ./python-modules/timeslot { }; + # timeslot = callPackage ./python-modules/timeslot { }; -# timetagger = callPackage ./python-modules/timetagger { }; + # timetagger = callPackage ./python-modules/timetagger { }; -# timezonefinder = callPackage ./python-modules/timezonefinder { }; + # timezonefinder = callPackage ./python-modules/timezonefinder { }; -# timing-asgi = callPackage ./python-modules/timing-asgi { }; + # timing-asgi = callPackage ./python-modules/timing-asgi { }; -# timm = callPackage ./python-modules/timm { }; + # timm = callPackage ./python-modules/timm { }; -# tiny-cuda-nn = toPythonModule (pkgs.tiny-cuda-nn.override { -# cudaPackages = self.torch.cudaPackages; -# python3Packages = self; -# pythonSupport = true; -# }); + # tiny-cuda-nn = toPythonModule (pkgs.tiny-cuda-nn.override { + # cudaPackages = self.torch.cudaPackages; + # python3Packages = self; + # pythonSupport = true; + # }); -# tiny-proxy = callPackage ./python-modules/tiny-proxy { }; + # tiny-proxy = callPackage ./python-modules/tiny-proxy { }; -# tinycss2 = callPackage ./python-modules/tinycss2 { }; + # tinycss2 = callPackage ./python-modules/tinycss2 { }; -# tinycss = callPackage ./python-modules/tinycss { }; + # tinycss = callPackage ./python-modules/tinycss { }; -# tinydb = callPackage ./python-modules/tinydb { }; + # tinydb = callPackage ./python-modules/tinydb { }; -# tinygrad = callPackage ./python-modules/tinygrad { }; + # tinygrad = callPackage ./python-modules/tinygrad { }; -# tinyobjloader-py = callPackage ./python-modules/tinyobjloader-py { }; + # tinyobjloader-py = callPackage ./python-modules/tinyobjloader-py { }; -# tinyrecord = callPackage ./python-modules/tinyrecord { }; + # tinyrecord = callPackage ./python-modules/tinyrecord { }; -# tinysegmenter = callPackage ./python-modules/tinysegmenter { }; + # tinysegmenter = callPackage ./python-modules/tinysegmenter { }; -# tissue = callPackage ./python-modules/tissue { }; + # tissue = callPackage ./python-modules/tissue { }; -# titlecase = callPackage ./python-modules/titlecase { }; + # titlecase = callPackage ./python-modules/titlecase { }; -# tld = callPackage ./python-modules/tld { }; + # tld = callPackage ./python-modules/tld { }; -# tlds = callPackage ./python-modules/tlds { }; + # tlds = callPackage ./python-modules/tlds { }; -# tldextract = callPackage ./python-modules/tldextract { }; + # tldextract = callPackage ./python-modules/tldextract { }; -# tlsh = callPackage ./python-modules/tlsh { }; + # tlsh = callPackage ./python-modules/tlsh { }; -# tlslite-ng = callPackage ./python-modules/tlslite-ng { }; + # tlslite-ng = callPackage ./python-modules/tlslite-ng { }; -# tls-client = callPackage ./python-modules/tls-client { }; + # tls-client = callPackage ./python-modules/tls-client { }; -# tls-parser = callPackage ./python-modules/tls-parser { }; + # tls-parser = callPackage ./python-modules/tls-parser { }; -# tlv8 = callPackage ./python-modules/tlv8 { }; + # tlv8 = callPackage ./python-modules/tlv8 { }; -# tmb = callPackage ./python-modules/tmb { }; + # tmb = callPackage ./python-modules/tmb { }; -# todoist = callPackage ./python-modules/todoist { }; + # todoist = callPackage ./python-modules/todoist { }; -# todoist-api-python = callPackage ./python-modules/todoist-api-python { }; + # todoist-api-python = callPackage ./python-modules/todoist-api-python { }; -# toggl-cli = callPackage ./python-modules/toggl-cli { }; + # toggl-cli = callPackage ./python-modules/toggl-cli { }; -# token-bucket = callPackage ./python-modules/token-bucket { }; + # token-bucket = callPackage ./python-modules/token-bucket { }; -# tokenizers = callPackage ./python-modules/tokenizers { -# inherit (pkgs.darwin.apple_sdk.frameworks) Security; -# }; + # tokenizers = callPackage ./python-modules/tokenizers { + # inherit (pkgs.darwin.apple_sdk.frameworks) Security; + # }; -# tokenize-rt = toPythonModule (callPackage ./python-modules/tokenize-rt { }); + # tokenize-rt = toPythonModule (callPackage ./python-modules/tokenize-rt { }); -# tokenlib = callPackage ./python-modules/tokenlib { }; + # tokenlib = callPackage ./python-modules/tokenlib { }; -# tokentrim = callPackage ./python-modules/tokentrim { }; + # tokentrim = callPackage ./python-modules/tokentrim { }; -# tololib = callPackage ./python-modules/tololib { }; + # tololib = callPackage ./python-modules/tololib { }; toml = callPackage ./python-modules/toml { }; -# toml-adapt = callPackage ./python-modules/toml-adapt { }; + # toml-adapt = callPackage ./python-modules/toml-adapt { }; tomli = callPackage ./python-modules/tomli { }; tomli-w = callPackage ./python-modules/tomli-w { }; -# tomlkit = callPackage ./python-modules/tomlkit { }; + # tomlkit = callPackage ./python-modules/tomlkit { }; -# toolz = callPackage ./python-modules/toolz { }; + # toolz = callPackage ./python-modules/toolz { }; -# toonapi = callPackage ./python-modules/toonapi { }; + # toonapi = callPackage ./python-modules/toonapi { }; -# toposort = callPackage ./python-modules/toposort { }; + # toposort = callPackage ./python-modules/toposort { }; -# torch = callPackage ./python-modules/torch { -# inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreServices; -# inherit (pkgs.darwin) libobjc; -# }; + # torch = callPackage ./python-modules/torch { + # inherit (pkgs.darwin.apple_sdk.frameworks) Accelerate CoreServices; + # inherit (pkgs.darwin) libobjc; + # }; -# torch-audiomentations = callPackage ./python-modules/torch-audiomentations { }; + # torch-audiomentations = callPackage ./python-modules/torch-audiomentations { }; -# torch-pitch-shift = callPackage ./python-modules/torch-pitch-shift { }; + # torch-pitch-shift = callPackage ./python-modules/torch-pitch-shift { }; -# torch-bin = callPackage ./python-modules/torch/bin.nix { -# openai-triton = self.openai-triton-bin; -# }; + # torch-bin = callPackage ./python-modules/torch/bin.nix { + # openai-triton = self.openai-triton-bin; + # }; -# torchWithCuda = self.torch.override { -# openai-triton = self.openai-triton-cuda; -# cudaSupport = true; -# rocmSupport = false; -# }; + # torchWithCuda = self.torch.override { + # openai-triton = self.openai-triton-cuda; + # cudaSupport = true; + # rocmSupport = false; + # }; -# torchWithoutCuda = self.torch.override { -# cudaSupport = false; -# }; + # torchWithoutCuda = self.torch.override { + # cudaSupport = false; + # }; -# torchWithRocm = self.torch.override { -# openai-triton = self.openai-triton-no-cuda; -# rocmSupport = true; -# cudaSupport = false; -# }; + # torchWithRocm = self.torch.override { + # openai-triton = self.openai-triton-no-cuda; + # rocmSupport = true; + # cudaSupport = false; + # }; -# torchWithoutRocm = self.torch.override { -# rocmSupport = false; -# }; + # torchWithoutRocm = self.torch.override { + # rocmSupport = false; + # }; -# torch-tb-profiler = callPackage ./python-modules/torch-tb-profiler/default.nix { }; + # torch-tb-profiler = callPackage ./python-modules/torch-tb-profiler/default.nix { }; -# torchaudio = callPackage ./python-modules/torchaudio { }; + # torchaudio = callPackage ./python-modules/torchaudio { }; -# torchaudio-bin = callPackage ./python-modules/torchaudio/bin.nix { -# cudaPackages = pkgs.cudaPackages_12; -# }; + # torchaudio-bin = callPackage ./python-modules/torchaudio/bin.nix { + # cudaPackages = pkgs.cudaPackages_12; + # }; -# torchdiffeq = callPackage ./python-modules/torchdiffeq { }; + # torchdiffeq = callPackage ./python-modules/torchdiffeq { }; -# torchgpipe = callPackage ./python-modules/torchgpipe { }; + # torchgpipe = callPackage ./python-modules/torchgpipe { }; -# torchmetrics = callPackage ./python-modules/torchmetrics { }; + # torchmetrics = callPackage ./python-modules/torchmetrics { }; -# torchio = callPackage ./python-modules/torchio { }; + # torchio = callPackage ./python-modules/torchio { }; -# torchinfo = callPackage ./python-modules/torchinfo { }; + # torchinfo = callPackage ./python-modules/torchinfo { }; -# torchlibrosa = callPackage ./python-modules/torchlibrosa { }; + # torchlibrosa = callPackage ./python-modules/torchlibrosa { }; -# torchrl = callPackage ./python-modules/torchrl { }; + # torchrl = callPackage ./python-modules/torchrl { }; -# torchsde = callPackage ./python-modules/torchsde { }; + # torchsde = callPackage ./python-modules/torchsde { }; -# torchvision = callPackage ./python-modules/torchvision { }; + # torchvision = callPackage ./python-modules/torchvision { }; -# torchvision-bin = callPackage ./python-modules/torchvision/bin.nix { -# cudaPackages = pkgs.cudaPackages_12; -# }; + # torchvision-bin = callPackage ./python-modules/torchvision/bin.nix { + # cudaPackages = pkgs.cudaPackages_12; + # }; tornado = callPackage ./python-modules/tornado { }; -# # Used by circus and grab-site, 2020-08-29 -# tornado_4 = callPackage ./python-modules/tornado/4.nix { }; + # # Used by circus and grab-site, 2020-08-29 + # tornado_4 = callPackage ./python-modules/tornado/4.nix { }; -# # Used by streamlit, 2021-01-29 -# tornado_5 = callPackage ./python-modules/tornado/5.nix { }; + # # Used by streamlit, 2021-01-29 + # tornado_5 = callPackage ./python-modules/tornado/5.nix { }; -# torpy = callPackage ./python-modules/torpy { }; + # torpy = callPackage ./python-modules/torpy { }; -# torrent-parser = callPackage ./python-modules/torrent-parser { }; + # torrent-parser = callPackage ./python-modules/torrent-parser { }; -# torrequest = callPackage ./python-modules/torrequest { }; + # torrequest = callPackage ./python-modules/torrequest { }; -# total-connect-client = callPackage ./python-modules/total-connect-client { }; + # total-connect-client = callPackage ./python-modules/total-connect-client { }; -# towncrier = callPackage ./python-modules/towncrier { -# inherit (pkgs) git; -# }; + # towncrier = callPackage ./python-modules/towncrier { + # inherit (pkgs) git; + # }; -# tox = callPackage ./python-modules/tox { }; + # tox = callPackage ./python-modules/tox { }; -# tplink-omada-client = callPackage ./python-modules/tplink-omada-client { }; + # tplink-omada-client = callPackage ./python-modules/tplink-omada-client { }; -# tpm2-pytss = callPackage ./python-modules/tpm2-pytss { }; + # tpm2-pytss = callPackage ./python-modules/tpm2-pytss { }; -# tqdm = callPackage ./python-modules/tqdm { }; + # tqdm = callPackage ./python-modules/tqdm { }; -# traceback2 = callPackage ./python-modules/traceback2 { }; + # traceback2 = callPackage ./python-modules/traceback2 { }; -# tracerite = callPackage ./python-modules/tracerite { }; + # tracerite = callPackage ./python-modules/tracerite { }; -# tracing = callPackage ./python-modules/tracing { }; + # tracing = callPackage ./python-modules/tracing { }; -# trackpy = callPackage ./python-modules/trackpy { }; + # trackpy = callPackage ./python-modules/trackpy { }; -# trafilatura = callPackage ./python-modules/trafilatura { }; + # trafilatura = callPackage ./python-modules/trafilatura { }; -# trailrunner = callPackage ./python-modules/trailrunner {}; + # trailrunner = callPackage ./python-modules/trailrunner {}; -# trainer = callPackage ./python-modules/trainer {}; + # trainer = callPackage ./python-modules/trainer {}; -# traitlets = callPackage ./python-modules/traitlets { }; + # traitlets = callPackage ./python-modules/traitlets { }; -# traits = callPackage ./python-modules/traits { }; + # traits = callPackage ./python-modules/traits { }; -# traitsui = callPackage ./python-modules/traitsui { }; + # traitsui = callPackage ./python-modules/traitsui { }; -# traittypes = callPackage ./python-modules/traittypes { }; + # traittypes = callPackage ./python-modules/traittypes { }; -# trampoline = callPackage ./python-modules/trampoline { }; + # trampoline = callPackage ./python-modules/trampoline { }; -# transaction = callPackage ./python-modules/transaction { }; + # transaction = callPackage ./python-modules/transaction { }; -# transformers = callPackage ./python-modules/transformers { }; + # transformers = callPackage ./python-modules/transformers { }; -# transforms3d = callPackage ./python-modules/transforms3d { }; + # transforms3d = callPackage ./python-modules/transforms3d { }; -# transitions = callPackage ./python-modules/transitions { }; + # transitions = callPackage ./python-modules/transitions { }; -# translatehtml = callPackage ./python-modules/translatehtml { }; + # translatehtml = callPackage ./python-modules/translatehtml { }; -# translatepy = callPackage ./python-modules/translatepy { }; + # translatepy = callPackage ./python-modules/translatepy { }; -# translationstring = callPackage ./python-modules/translationstring { }; + # translationstring = callPackage ./python-modules/translationstring { }; -# translitcodec = callPackage ./python-modules/translitcodec { }; + # translitcodec = callPackage ./python-modules/translitcodec { }; -# transmission-rpc = callPackage ./python-modules/transmission-rpc { }; + # transmission-rpc = callPackage ./python-modules/transmission-rpc { }; -# transmissionrpc = callPackage ./python-modules/transmissionrpc { }; + # transmissionrpc = callPackage ./python-modules/transmissionrpc { }; -# trectools = callPackage ./python-modules/trectools { }; + # trectools = callPackage ./python-modules/trectools { }; -# tree-sitter = callPackage ./python-modules/tree-sitter { }; + # tree-sitter = callPackage ./python-modules/tree-sitter { }; -# treelib = callPackage ./python-modules/treelib { }; + # treelib = callPackage ./python-modules/treelib { }; -# treelog = callPackage ./python-modules/treelog { }; + # treelog = callPackage ./python-modules/treelog { }; -# treeo = callPackage ./python-modules/treeo { }; + # treeo = callPackage ./python-modules/treeo { }; -# treex = callPackage ./python-modules/treex { }; + # treex = callPackage ./python-modules/treex { }; -# treq = callPackage ./python-modules/treq { }; + # treq = callPackage ./python-modules/treq { }; -# trezor-agent = callPackage ./python-modules/trezor-agent { -# pinentry = pkgs.pinentry-curses; -# }; + # trezor-agent = callPackage ./python-modules/trezor-agent { + # pinentry = pkgs.pinentry-curses; + # }; -# trezor = callPackage ./python-modules/trezor { }; + # trezor = callPackage ./python-modules/trezor { }; -# trfl = callPackage ./python-modules/trfl { }; + # trfl = callPackage ./python-modules/trfl { }; -# trimesh = callPackage ./python-modules/trimesh { }; + # trimesh = callPackage ./python-modules/trimesh { }; -# trino-python-client = callPackage ./python-modules/trino-python-client { }; + # trino-python-client = callPackage ./python-modules/trino-python-client { }; -# trio = callPackage ./python-modules/trio { -# inherit (pkgs) coreutils; -# }; + # trio = callPackage ./python-modules/trio { + # inherit (pkgs) coreutils; + # }; -# trio-asyncio = callPackage ./python-modules/trio-asyncio { }; + # trio-asyncio = callPackage ./python-modules/trio-asyncio { }; -# trio-websocket = callPackage ./python-modules/trio-websocket { }; + # trio-websocket = callPackage ./python-modules/trio-websocket { }; -# tritonclient = callPackage ./python-modules/tritonclient { }; + # tritonclient = callPackage ./python-modules/tritonclient { }; -# troposphere = callPackage ./python-modules/troposphere { }; + # troposphere = callPackage ./python-modules/troposphere { }; trove-classifiers = callPackage ./python-modules/trove-classifiers { }; -# trueskill = callPackage ./python-modules/trueskill { }; + # trueskill = callPackage ./python-modules/trueskill { }; trustme = callPackage ./python-modules/trustme { }; -# truststore = callPackage ./python-modules/truststore { }; + # truststore = callPackage ./python-modules/truststore { }; -# trytond = callPackage ./python-modules/trytond { }; + # trytond = callPackage ./python-modules/trytond { }; -# tsfresh = callPackage ./python-modules/tsfresh { }; + # tsfresh = callPackage ./python-modules/tsfresh { }; -# tskit = callPackage ./python-modules/tskit { }; + # tskit = callPackage ./python-modules/tskit { }; -# ttach = callPackage ./python-modules/ttach { }; + # ttach = callPackage ./python-modules/ttach { }; -# ttls = callPackage ./python-modules/ttls { }; + # ttls = callPackage ./python-modules/ttls { }; -# ttn-client = callPackage ./python-modules/ttn-client { }; + # ttn-client = callPackage ./python-modules/ttn-client { }; -# ttp = callPackage ./python-modules/ttp { }; + # ttp = callPackage ./python-modules/ttp { }; -# ttp-templates = callPackage ./python-modules/ttp-templates { }; + # ttp-templates = callPackage ./python-modules/ttp-templates { }; -# ttstokenizer = callPackage ./python-modules/ttstokenizer { }; + # ttstokenizer = callPackage ./python-modules/ttstokenizer { }; -# tubes = callPackage ./python-modules/tubes { }; + # tubes = callPackage ./python-modules/tubes { }; -# tuf = callPackage ./python-modules/tuf { }; + # tuf = callPackage ./python-modules/tuf { }; -# tunigo = callPackage ./python-modules/tunigo { }; + # tunigo = callPackage ./python-modules/tunigo { }; -# tubeup = callPackage ./python-modules/tubeup { }; + # tubeup = callPackage ./python-modules/tubeup { }; -# turnt = callPackage ./python-modules/turnt { }; + # turnt = callPackage ./python-modules/turnt { }; -# tuya-device-sharing-sdk = callPackage ./python-modules/tuya-device-sharing-sdk { }; + # tuya-device-sharing-sdk = callPackage ./python-modules/tuya-device-sharing-sdk { }; -# tuya-iot-py-sdk = callPackage ./python-modules/tuya-iot-py-sdk { }; + # tuya-iot-py-sdk = callPackage ./python-modules/tuya-iot-py-sdk { }; -# tuyaha = callPackage ./python-modules/tuyaha { }; + # tuyaha = callPackage ./python-modules/tuyaha { }; -# tvdb-api = callPackage ./python-modules/tvdb-api { }; + # tvdb-api = callPackage ./python-modules/tvdb-api { }; -# tweedledum = callPackage ./python-modules/tweedledum { }; + # tweedledum = callPackage ./python-modules/tweedledum { }; -# tweepy = callPackage ./python-modules/tweepy { }; + # tweepy = callPackage ./python-modules/tweepy { }; -# twentemilieu = callPackage ./python-modules/twentemilieu { }; + # twentemilieu = callPackage ./python-modules/twentemilieu { }; -# twiggy = callPackage ./python-modules/twiggy { }; + # twiggy = callPackage ./python-modules/twiggy { }; -# twilio = callPackage ./python-modules/twilio { }; + # twilio = callPackage ./python-modules/twilio { }; -# twill = callPackage ./python-modules/twill { }; + # twill = callPackage ./python-modules/twill { }; -# twine = callPackage ./python-modules/twine { }; + # twine = callPackage ./python-modules/twine { }; -# twinkly-client = callPackage ./python-modules/twinkly-client { }; + # twinkly-client = callPackage ./python-modules/twinkly-client { }; -# twisted = callPackage ./python-modules/twisted { }; + # twisted = callPackage ./python-modules/twisted { }; -# twitch-python = callPackage ./python-modules/twitch-python { }; + # twitch-python = callPackage ./python-modules/twitch-python { }; -# twitchapi = callPackage ./python-modules/twitchapi { }; + # twitchapi = callPackage ./python-modules/twitchapi { }; -# twitter = callPackage ./python-modules/twitter { }; + # twitter = callPackage ./python-modules/twitter { }; -# twitter-common-collections = callPackage ./python-modules/twitter-common-collections { }; + # twitter-common-collections = callPackage ./python-modules/twitter-common-collections { }; -# twitter-common-confluence = callPackage ./python-modules/twitter-common-confluence { }; + # twitter-common-confluence = callPackage ./python-modules/twitter-common-confluence { }; -# twitter-common-dirutil = callPackage ./python-modules/twitter-common-dirutil { }; + # twitter-common-dirutil = callPackage ./python-modules/twitter-common-dirutil { }; -# twitter-common-lang = callPackage ./python-modules/twitter-common-lang { }; + # twitter-common-lang = callPackage ./python-modules/twitter-common-lang { }; -# twitter-common-log = callPackage ./python-modules/twitter-common-log { }; + # twitter-common-log = callPackage ./python-modules/twitter-common-log { }; -# twitter-common-options = callPackage ./python-modules/twitter-common-options { }; + # twitter-common-options = callPackage ./python-modules/twitter-common-options { }; -# twitterapi = callPackage ./python-modules/twitterapi { }; + # twitterapi = callPackage ./python-modules/twitterapi { }; -# twofish = callPackage ./python-modules/twofish { }; + # twofish = callPackage ./python-modules/twofish { }; -# txaio = callPackage ./python-modules/txaio { }; + # txaio = callPackage ./python-modules/txaio { }; -# txamqp = callPackage ./python-modules/txamqp { }; + # txamqp = callPackage ./python-modules/txamqp { }; -# txdbus = callPackage ./python-modules/txdbus { }; + # txdbus = callPackage ./python-modules/txdbus { }; -# txgithub = callPackage ./python-modules/txgithub { }; + # txgithub = callPackage ./python-modules/txgithub { }; -# txi2p-tahoe = callPackage ./python-modules/txi2p-tahoe { }; + # txi2p-tahoe = callPackage ./python-modules/txi2p-tahoe { }; -# txredisapi = callPackage ./python-modules/txredisapi { }; + # txredisapi = callPackage ./python-modules/txredisapi { }; -# txrequests = callPackage ./python-modules/txrequests { }; + # txrequests = callPackage ./python-modules/txrequests { }; -# txtai = callPackage ./python-modules/txtai { }; + # txtai = callPackage ./python-modules/txtai { }; -# txtorcon = callPackage ./python-modules/txtorcon { }; + # txtorcon = callPackage ./python-modules/txtorcon { }; -# txzmq = callPackage ./python-modules/txzmq { }; + # txzmq = callPackage ./python-modules/txzmq { }; -# typechecks = callPackage ./python-modules/typechecks { }; + # typechecks = callPackage ./python-modules/typechecks { }; -# typecode = callPackage ./python-modules/typecode { }; + # typecode = callPackage ./python-modules/typecode { }; -# typecode-libmagic = callPackage ./python-modules/typecode/libmagic.nix { -# inherit (pkgs) file zlib; -# }; + # typecode-libmagic = callPackage ./python-modules/typecode/libmagic.nix { + # inherit (pkgs) file zlib; + # }; -# typed-ast = callPackage ./python-modules/typed-ast { }; + # typed-ast = callPackage ./python-modules/typed-ast { }; -# typed-settings = callPackage ./python-modules/typed-settings { }; + # typed-settings = callPackage ./python-modules/typed-settings { }; -# typeguard = callPackage ./python-modules/typeguard { }; + # typeguard = callPackage ./python-modules/typeguard { }; -# typepy = callPackage ./python-modules/typepy { }; + # typepy = callPackage ./python-modules/typepy { }; -# typer = callPackage ./python-modules/typer { }; + # typer = callPackage ./python-modules/typer { }; -# type-infer = callPackage ./python-modules/type-infer { }; + # type-infer = callPackage ./python-modules/type-infer { }; -# types-aiobotocore = callPackage ./python-modules/types-aiobotocore { }; + # types-aiobotocore = callPackage ./python-modules/types-aiobotocore { }; -# inherit (callPackage ./python-modules/types-aiobotocore-packages { }) + # inherit (callPackage ./python-modules/types-aiobotocore-packages { }) -# types-aiobotocore-accessanalyzer + # types-aiobotocore-accessanalyzer -# types-aiobotocore-account + # types-aiobotocore-account -# types-aiobotocore-acm + # types-aiobotocore-acm -# types-aiobotocore-acm-pca + # types-aiobotocore-acm-pca -# types-aiobotocore-alexaforbusiness + # types-aiobotocore-alexaforbusiness -# types-aiobotocore-amp + # types-aiobotocore-amp -# types-aiobotocore-amplify + # types-aiobotocore-amplify -# types-aiobotocore-amplifybackend + # types-aiobotocore-amplifybackend -# types-aiobotocore-amplifyuibuilder + # types-aiobotocore-amplifyuibuilder -# types-aiobotocore-apigateway + # types-aiobotocore-apigateway -# types-aiobotocore-apigatewaymanagementapi + # types-aiobotocore-apigatewaymanagementapi -# types-aiobotocore-apigatewayv2 + # types-aiobotocore-apigatewayv2 -# types-aiobotocore-appconfig + # types-aiobotocore-appconfig -# types-aiobotocore-appconfigdata + # types-aiobotocore-appconfigdata -# types-aiobotocore-appfabric + # types-aiobotocore-appfabric -# types-aiobotocore-appflow + # types-aiobotocore-appflow -# types-aiobotocore-appintegrations + # types-aiobotocore-appintegrations -# types-aiobotocore-application-autoscaling + # types-aiobotocore-application-autoscaling -# types-aiobotocore-application-insights + # types-aiobotocore-application-insights -# types-aiobotocore-applicationcostprofiler + # types-aiobotocore-applicationcostprofiler -# types-aiobotocore-appmesh + # types-aiobotocore-appmesh -# types-aiobotocore-apprunner + # types-aiobotocore-apprunner -# types-aiobotocore-appstream + # types-aiobotocore-appstream -# types-aiobotocore-appsync + # types-aiobotocore-appsync -# types-aiobotocore-arc-zonal-shift + # types-aiobotocore-arc-zonal-shift -# types-aiobotocore-athena + # types-aiobotocore-athena -# types-aiobotocore-auditmanager + # types-aiobotocore-auditmanager -# types-aiobotocore-autoscaling + # types-aiobotocore-autoscaling -# types-aiobotocore-autoscaling-plans + # types-aiobotocore-autoscaling-plans -# types-aiobotocore-backup + # types-aiobotocore-backup -# types-aiobotocore-backup-gateway + # types-aiobotocore-backup-gateway -# types-aiobotocore-backupstorage + # types-aiobotocore-backupstorage -# types-aiobotocore-batch + # types-aiobotocore-batch -# types-aiobotocore-billingconductor + # types-aiobotocore-billingconductor -# types-aiobotocore-braket + # types-aiobotocore-braket -# types-aiobotocore-budgets + # types-aiobotocore-budgets -# types-aiobotocore-ce + # types-aiobotocore-ce -# types-aiobotocore-chime + # types-aiobotocore-chime -# types-aiobotocore-chime-sdk-identity + # types-aiobotocore-chime-sdk-identity -# types-aiobotocore-chime-sdk-media-pipelines + # types-aiobotocore-chime-sdk-media-pipelines -# types-aiobotocore-chime-sdk-meetings + # types-aiobotocore-chime-sdk-meetings -# types-aiobotocore-chime-sdk-messaging + # types-aiobotocore-chime-sdk-messaging -# types-aiobotocore-chime-sdk-voice + # types-aiobotocore-chime-sdk-voice -# types-aiobotocore-cleanrooms + # types-aiobotocore-cleanrooms -# types-aiobotocore-cloud9 + # types-aiobotocore-cloud9 -# types-aiobotocore-cloudcontrol + # types-aiobotocore-cloudcontrol -# types-aiobotocore-clouddirectory + # types-aiobotocore-clouddirectory -# types-aiobotocore-cloudformation + # types-aiobotocore-cloudformation -# types-aiobotocore-cloudfront + # types-aiobotocore-cloudfront -# types-aiobotocore-cloudhsm + # types-aiobotocore-cloudhsm -# types-aiobotocore-cloudhsmv2 + # types-aiobotocore-cloudhsmv2 -# types-aiobotocore-cloudsearch + # types-aiobotocore-cloudsearch -# types-aiobotocore-cloudsearchdomain + # types-aiobotocore-cloudsearchdomain -# types-aiobotocore-cloudtrail + # types-aiobotocore-cloudtrail -# types-aiobotocore-cloudtrail-data + # types-aiobotocore-cloudtrail-data -# types-aiobotocore-cloudwatch + # types-aiobotocore-cloudwatch -# types-aiobotocore-codeartifact + # types-aiobotocore-codeartifact -# types-aiobotocore-codebuild + # types-aiobotocore-codebuild -# types-aiobotocore-codecatalyst + # types-aiobotocore-codecatalyst -# types-aiobotocore-codecommit + # types-aiobotocore-codecommit -# types-aiobotocore-codedeploy + # types-aiobotocore-codedeploy -# types-aiobotocore-codeguru-reviewer + # types-aiobotocore-codeguru-reviewer -# types-aiobotocore-codeguru-security + # types-aiobotocore-codeguru-security -# types-aiobotocore-codeguruprofiler + # types-aiobotocore-codeguruprofiler -# types-aiobotocore-codepipeline + # types-aiobotocore-codepipeline -# types-aiobotocore-codestar + # types-aiobotocore-codestar -# types-aiobotocore-codestar-connections + # types-aiobotocore-codestar-connections -# types-aiobotocore-codestar-notifications + # types-aiobotocore-codestar-notifications -# types-aiobotocore-cognito-identity + # types-aiobotocore-cognito-identity -# types-aiobotocore-cognito-idp + # types-aiobotocore-cognito-idp -# types-aiobotocore-cognito-sync + # types-aiobotocore-cognito-sync -# types-aiobotocore-comprehend + # types-aiobotocore-comprehend -# types-aiobotocore-comprehendmedical + # types-aiobotocore-comprehendmedical -# types-aiobotocore-compute-optimizer + # types-aiobotocore-compute-optimizer -# types-aiobotocore-config + # types-aiobotocore-config -# types-aiobotocore-connect + # types-aiobotocore-connect -# types-aiobotocore-connect-contact-lens + # types-aiobotocore-connect-contact-lens -# types-aiobotocore-connectcampaigns + # types-aiobotocore-connectcampaigns -# types-aiobotocore-connectcases + # types-aiobotocore-connectcases -# types-aiobotocore-connectparticipant + # types-aiobotocore-connectparticipant -# types-aiobotocore-controltower + # types-aiobotocore-controltower -# types-aiobotocore-cur + # types-aiobotocore-cur -# types-aiobotocore-customer-profiles + # types-aiobotocore-customer-profiles -# types-aiobotocore-databrew + # types-aiobotocore-databrew -# types-aiobotocore-dataexchange + # types-aiobotocore-dataexchange -# types-aiobotocore-datapipeline + # types-aiobotocore-datapipeline -# types-aiobotocore-datasync + # types-aiobotocore-datasync -# types-aiobotocore-dax + # types-aiobotocore-dax -# types-aiobotocore-detective + # types-aiobotocore-detective -# types-aiobotocore-devicefarm + # types-aiobotocore-devicefarm -# types-aiobotocore-devops-guru + # types-aiobotocore-devops-guru -# types-aiobotocore-directconnect + # types-aiobotocore-directconnect -# types-aiobotocore-discovery + # types-aiobotocore-discovery -# types-aiobotocore-dlm + # types-aiobotocore-dlm -# types-aiobotocore-dms + # types-aiobotocore-dms -# types-aiobotocore-docdb + # types-aiobotocore-docdb -# types-aiobotocore-docdb-elastic + # types-aiobotocore-docdb-elastic -# types-aiobotocore-drs + # types-aiobotocore-drs -# types-aiobotocore-ds + # types-aiobotocore-ds -# types-aiobotocore-dynamodb + # types-aiobotocore-dynamodb -# types-aiobotocore-dynamodbstreams + # types-aiobotocore-dynamodbstreams -# types-aiobotocore-ebs + # types-aiobotocore-ebs -# types-aiobotocore-ec2 + # types-aiobotocore-ec2 -# types-aiobotocore-ec2-instance-connect + # types-aiobotocore-ec2-instance-connect -# types-aiobotocore-ecr + # types-aiobotocore-ecr -# types-aiobotocore-ecr-public + # types-aiobotocore-ecr-public -# types-aiobotocore-ecs + # types-aiobotocore-ecs -# types-aiobotocore-efs + # types-aiobotocore-efs -# types-aiobotocore-eks + # types-aiobotocore-eks -# types-aiobotocore-elastic-inference + # types-aiobotocore-elastic-inference -# types-aiobotocore-elasticache + # types-aiobotocore-elasticache -# types-aiobotocore-elasticbeanstalk + # types-aiobotocore-elasticbeanstalk -# types-aiobotocore-elastictranscoder + # types-aiobotocore-elastictranscoder -# types-aiobotocore-elb + # types-aiobotocore-elb -# types-aiobotocore-elbv2 + # types-aiobotocore-elbv2 -# types-aiobotocore-emr + # types-aiobotocore-emr -# types-aiobotocore-emr-containers + # types-aiobotocore-emr-containers -# types-aiobotocore-emr-serverless + # types-aiobotocore-emr-serverless -# types-aiobotocore-entityresolution + # types-aiobotocore-entityresolution -# types-aiobotocore-es + # types-aiobotocore-es -# types-aiobotocore-events + # types-aiobotocore-events -# types-aiobotocore-evidently + # types-aiobotocore-evidently -# types-aiobotocore-finspace + # types-aiobotocore-finspace -# types-aiobotocore-finspace-data + # types-aiobotocore-finspace-data -# types-aiobotocore-firehose + # types-aiobotocore-firehose -# types-aiobotocore-fis + # types-aiobotocore-fis -# types-aiobotocore-fms + # types-aiobotocore-fms -# types-aiobotocore-forecast + # types-aiobotocore-forecast -# types-aiobotocore-forecastquery + # types-aiobotocore-forecastquery -# types-aiobotocore-frauddetector + # types-aiobotocore-frauddetector -# types-aiobotocore-fsx + # types-aiobotocore-fsx -# types-aiobotocore-gamelift + # types-aiobotocore-gamelift -# types-aiobotocore-gamesparks + # types-aiobotocore-gamesparks -# types-aiobotocore-glacier + # types-aiobotocore-glacier -# types-aiobotocore-globalaccelerator + # types-aiobotocore-globalaccelerator -# types-aiobotocore-glue + # types-aiobotocore-glue -# types-aiobotocore-grafana + # types-aiobotocore-grafana -# types-aiobotocore-greengrass + # types-aiobotocore-greengrass -# types-aiobotocore-greengrassv2 + # types-aiobotocore-greengrassv2 -# types-aiobotocore-groundstation + # types-aiobotocore-groundstation -# types-aiobotocore-guardduty + # types-aiobotocore-guardduty -# types-aiobotocore-health + # types-aiobotocore-health -# types-aiobotocore-healthlake + # types-aiobotocore-healthlake -# types-aiobotocore-honeycode + # types-aiobotocore-honeycode -# types-aiobotocore-iam + # types-aiobotocore-iam -# types-aiobotocore-identitystore + # types-aiobotocore-identitystore -# types-aiobotocore-imagebuilder + # types-aiobotocore-imagebuilder -# types-aiobotocore-importexport + # types-aiobotocore-importexport -# types-aiobotocore-inspector + # types-aiobotocore-inspector -# types-aiobotocore-inspector2 + # types-aiobotocore-inspector2 -# types-aiobotocore-internetmonitor + # types-aiobotocore-internetmonitor -# types-aiobotocore-iot + # types-aiobotocore-iot -# types-aiobotocore-iot-data + # types-aiobotocore-iot-data -# types-aiobotocore-iot-jobs-data + # types-aiobotocore-iot-jobs-data -# types-aiobotocore-iot-roborunner + # types-aiobotocore-iot-roborunner -# types-aiobotocore-iot1click-devices + # types-aiobotocore-iot1click-devices -# types-aiobotocore-iot1click-projects + # types-aiobotocore-iot1click-projects -# types-aiobotocore-iotanalytics + # types-aiobotocore-iotanalytics -# types-aiobotocore-iotdeviceadvisor + # types-aiobotocore-iotdeviceadvisor -# types-aiobotocore-iotevents + # types-aiobotocore-iotevents -# types-aiobotocore-iotevents-data + # types-aiobotocore-iotevents-data -# types-aiobotocore-iotfleethub + # types-aiobotocore-iotfleethub -# types-aiobotocore-iotfleetwise + # types-aiobotocore-iotfleetwise -# types-aiobotocore-iotsecuretunneling + # types-aiobotocore-iotsecuretunneling -# types-aiobotocore-iotsitewise + # types-aiobotocore-iotsitewise -# types-aiobotocore-iotthingsgraph + # types-aiobotocore-iotthingsgraph -# types-aiobotocore-iottwinmaker + # types-aiobotocore-iottwinmaker -# types-aiobotocore-iotwireless + # types-aiobotocore-iotwireless -# types-aiobotocore-ivs + # types-aiobotocore-ivs -# types-aiobotocore-ivs-realtime + # types-aiobotocore-ivs-realtime -# types-aiobotocore-ivschat + # types-aiobotocore-ivschat -# types-aiobotocore-kafka + # types-aiobotocore-kafka -# types-aiobotocore-kafkaconnect + # types-aiobotocore-kafkaconnect -# types-aiobotocore-kendra + # types-aiobotocore-kendra -# types-aiobotocore-kendra-ranking + # types-aiobotocore-kendra-ranking -# types-aiobotocore-keyspaces + # types-aiobotocore-keyspaces -# types-aiobotocore-kinesis + # types-aiobotocore-kinesis -# types-aiobotocore-kinesis-video-archived-media + # types-aiobotocore-kinesis-video-archived-media -# types-aiobotocore-kinesis-video-media + # types-aiobotocore-kinesis-video-media -# types-aiobotocore-kinesis-video-signaling + # types-aiobotocore-kinesis-video-signaling -# types-aiobotocore-kinesis-video-webrtc-storage + # types-aiobotocore-kinesis-video-webrtc-storage -# types-aiobotocore-kinesisanalytics + # types-aiobotocore-kinesisanalytics -# types-aiobotocore-kinesisanalyticsv2 + # types-aiobotocore-kinesisanalyticsv2 -# types-aiobotocore-kinesisvideo + # types-aiobotocore-kinesisvideo -# types-aiobotocore-kms + # types-aiobotocore-kms -# types-aiobotocore-lakeformation + # types-aiobotocore-lakeformation -# types-aiobotocore-lambda + # types-aiobotocore-lambda -# types-aiobotocore-lex-models + # types-aiobotocore-lex-models -# types-aiobotocore-lex-runtime + # types-aiobotocore-lex-runtime -# types-aiobotocore-lexv2-models + # types-aiobotocore-lexv2-models -# types-aiobotocore-lexv2-runtime + # types-aiobotocore-lexv2-runtime -# types-aiobotocore-license-manager + # types-aiobotocore-license-manager -# types-aiobotocore-license-manager-linux-subscriptions + # types-aiobotocore-license-manager-linux-subscriptions -# types-aiobotocore-license-manager-user-subscriptions + # types-aiobotocore-license-manager-user-subscriptions -# types-aiobotocore-lightsail + # types-aiobotocore-lightsail -# types-aiobotocore-location + # types-aiobotocore-location -# types-aiobotocore-logs + # types-aiobotocore-logs -# types-aiobotocore-lookoutequipment + # types-aiobotocore-lookoutequipment -# types-aiobotocore-lookoutmetrics + # types-aiobotocore-lookoutmetrics -# types-aiobotocore-lookoutvision + # types-aiobotocore-lookoutvision -# types-aiobotocore-m2 + # types-aiobotocore-m2 -# types-aiobotocore-machinelearning + # types-aiobotocore-machinelearning -# types-aiobotocore-macie + # types-aiobotocore-macie -# types-aiobotocore-macie2 + # types-aiobotocore-macie2 -# types-aiobotocore-managedblockchain + # types-aiobotocore-managedblockchain -# types-aiobotocore-managedblockchain-query + # types-aiobotocore-managedblockchain-query -# types-aiobotocore-marketplace-catalog + # types-aiobotocore-marketplace-catalog -# types-aiobotocore-marketplace-entitlement + # types-aiobotocore-marketplace-entitlement -# types-aiobotocore-marketplacecommerceanalytics + # types-aiobotocore-marketplacecommerceanalytics -# types-aiobotocore-mediaconnect + # types-aiobotocore-mediaconnect -# types-aiobotocore-mediaconvert + # types-aiobotocore-mediaconvert -# types-aiobotocore-medialive + # types-aiobotocore-medialive -# types-aiobotocore-mediapackage + # types-aiobotocore-mediapackage -# types-aiobotocore-mediapackage-vod + # types-aiobotocore-mediapackage-vod -# types-aiobotocore-mediapackagev2 + # types-aiobotocore-mediapackagev2 -# types-aiobotocore-mediastore + # types-aiobotocore-mediastore -# types-aiobotocore-mediastore-data + # types-aiobotocore-mediastore-data -# types-aiobotocore-mediatailor + # types-aiobotocore-mediatailor -# types-aiobotocore-medical-imaging + # types-aiobotocore-medical-imaging -# types-aiobotocore-memorydb + # types-aiobotocore-memorydb -# types-aiobotocore-meteringmarketplace + # types-aiobotocore-meteringmarketplace -# types-aiobotocore-mgh + # types-aiobotocore-mgh -# types-aiobotocore-mgn + # types-aiobotocore-mgn -# types-aiobotocore-migration-hub-refactor-spaces + # types-aiobotocore-migration-hub-refactor-spaces -# types-aiobotocore-migrationhub-config + # types-aiobotocore-migrationhub-config -# types-aiobotocore-migrationhuborchestrator + # types-aiobotocore-migrationhuborchestrator -# types-aiobotocore-migrationhubstrategy + # types-aiobotocore-migrationhubstrategy -# types-aiobotocore-mobile + # types-aiobotocore-mobile -# types-aiobotocore-mq + # types-aiobotocore-mq -# types-aiobotocore-mturk + # types-aiobotocore-mturk -# types-aiobotocore-mwaa + # types-aiobotocore-mwaa -# types-aiobotocore-neptune + # types-aiobotocore-neptune -# types-aiobotocore-network-firewall + # types-aiobotocore-network-firewall -# types-aiobotocore-networkmanager + # types-aiobotocore-networkmanager -# types-aiobotocore-nimble + # types-aiobotocore-nimble -# types-aiobotocore-oam + # types-aiobotocore-oam -# types-aiobotocore-omics + # types-aiobotocore-omics -# types-aiobotocore-opensearch + # types-aiobotocore-opensearch -# types-aiobotocore-opensearchserverless + # types-aiobotocore-opensearchserverless -# types-aiobotocore-opsworks + # types-aiobotocore-opsworks -# types-aiobotocore-opsworkscm + # types-aiobotocore-opsworkscm -# types-aiobotocore-organizations + # types-aiobotocore-organizations -# types-aiobotocore-osis + # types-aiobotocore-osis -# types-aiobotocore-outposts + # types-aiobotocore-outposts -# types-aiobotocore-panorama + # types-aiobotocore-panorama -# types-aiobotocore-payment-cryptography + # types-aiobotocore-payment-cryptography -# types-aiobotocore-payment-cryptography-data + # types-aiobotocore-payment-cryptography-data -# types-aiobotocore-personalize + # types-aiobotocore-personalize -# types-aiobotocore-personalize-events + # types-aiobotocore-personalize-events -# types-aiobotocore-personalize-runtime + # types-aiobotocore-personalize-runtime -# types-aiobotocore-pi + # types-aiobotocore-pi -# types-aiobotocore-pinpoint + # types-aiobotocore-pinpoint -# types-aiobotocore-pinpoint-email + # types-aiobotocore-pinpoint-email -# types-aiobotocore-pinpoint-sms-voice + # types-aiobotocore-pinpoint-sms-voice -# types-aiobotocore-pinpoint-sms-voice-v2 + # types-aiobotocore-pinpoint-sms-voice-v2 -# types-aiobotocore-pipes + # types-aiobotocore-pipes -# types-aiobotocore-polly + # types-aiobotocore-polly -# types-aiobotocore-pricing + # types-aiobotocore-pricing -# types-aiobotocore-privatenetworks + # types-aiobotocore-privatenetworks -# types-aiobotocore-proton + # types-aiobotocore-proton -# types-aiobotocore-qldb + # types-aiobotocore-qldb -# types-aiobotocore-qldb-session + # types-aiobotocore-qldb-session -# types-aiobotocore-quicksight + # types-aiobotocore-quicksight -# types-aiobotocore-ram + # types-aiobotocore-ram -# types-aiobotocore-rbin + # types-aiobotocore-rbin -# types-aiobotocore-rds + # types-aiobotocore-rds -# types-aiobotocore-rds-data + # types-aiobotocore-rds-data -# types-aiobotocore-redshift + # types-aiobotocore-redshift -# types-aiobotocore-redshift-data + # types-aiobotocore-redshift-data -# types-aiobotocore-redshift-serverless + # types-aiobotocore-redshift-serverless -# types-aiobotocore-rekognition + # types-aiobotocore-rekognition -# types-aiobotocore-resiliencehub + # types-aiobotocore-resiliencehub -# types-aiobotocore-resource-explorer-2 + # types-aiobotocore-resource-explorer-2 -# types-aiobotocore-resource-groups + # types-aiobotocore-resource-groups -# types-aiobotocore-resourcegroupstaggingapi + # types-aiobotocore-resourcegroupstaggingapi -# types-aiobotocore-robomaker + # types-aiobotocore-robomaker -# types-aiobotocore-rolesanywhere + # types-aiobotocore-rolesanywhere -# types-aiobotocore-route53 + # types-aiobotocore-route53 -# types-aiobotocore-route53-recovery-cluster + # types-aiobotocore-route53-recovery-cluster -# types-aiobotocore-route53-recovery-control-config + # types-aiobotocore-route53-recovery-control-config -# types-aiobotocore-route53-recovery-readiness + # types-aiobotocore-route53-recovery-readiness -# types-aiobotocore-route53domains + # types-aiobotocore-route53domains -# types-aiobotocore-route53resolver + # types-aiobotocore-route53resolver -# types-aiobotocore-rum + # types-aiobotocore-rum -# types-aiobotocore-s3 + # types-aiobotocore-s3 -# types-aiobotocore-s3control + # types-aiobotocore-s3control -# types-aiobotocore-s3outposts + # types-aiobotocore-s3outposts -# types-aiobotocore-sagemaker + # types-aiobotocore-sagemaker -# types-aiobotocore-sagemaker-a2i-runtime + # types-aiobotocore-sagemaker-a2i-runtime -# types-aiobotocore-sagemaker-edge + # types-aiobotocore-sagemaker-edge -# types-aiobotocore-sagemaker-featurestore-runtime + # types-aiobotocore-sagemaker-featurestore-runtime -# types-aiobotocore-sagemaker-geospatial + # types-aiobotocore-sagemaker-geospatial -# types-aiobotocore-sagemaker-metrics + # types-aiobotocore-sagemaker-metrics -# types-aiobotocore-sagemaker-runtime + # types-aiobotocore-sagemaker-runtime -# types-aiobotocore-savingsplans + # types-aiobotocore-savingsplans -# types-aiobotocore-scheduler + # types-aiobotocore-scheduler -# types-aiobotocore-schemas + # types-aiobotocore-schemas -# types-aiobotocore-sdb + # types-aiobotocore-sdb -# types-aiobotocore-secretsmanager + # types-aiobotocore-secretsmanager -# types-aiobotocore-securityhub + # types-aiobotocore-securityhub -# types-aiobotocore-securitylake + # types-aiobotocore-securitylake -# types-aiobotocore-serverlessrepo + # types-aiobotocore-serverlessrepo -# types-aiobotocore-service-quotas + # types-aiobotocore-service-quotas -# types-aiobotocore-servicecatalog + # types-aiobotocore-servicecatalog -# types-aiobotocore-servicecatalog-appregistry + # types-aiobotocore-servicecatalog-appregistry -# types-aiobotocore-servicediscovery + # types-aiobotocore-servicediscovery -# types-aiobotocore-ses + # types-aiobotocore-ses -# types-aiobotocore-sesv2 + # types-aiobotocore-sesv2 -# types-aiobotocore-shield + # types-aiobotocore-shield -# types-aiobotocore-signer + # types-aiobotocore-signer -# types-aiobotocore-simspaceweaver + # types-aiobotocore-simspaceweaver -# types-aiobotocore-sms + # types-aiobotocore-sms -# types-aiobotocore-sms-voice + # types-aiobotocore-sms-voice -# types-aiobotocore-snow-device-management + # types-aiobotocore-snow-device-management -# types-aiobotocore-snowball + # types-aiobotocore-snowball -# types-aiobotocore-sns + # types-aiobotocore-sns -# types-aiobotocore-sqs + # types-aiobotocore-sqs -# types-aiobotocore-ssm + # types-aiobotocore-ssm -# types-aiobotocore-ssm-contacts + # types-aiobotocore-ssm-contacts -# types-aiobotocore-ssm-incidents + # types-aiobotocore-ssm-incidents -# types-aiobotocore-ssm-sap + # types-aiobotocore-ssm-sap -# types-aiobotocore-sso + # types-aiobotocore-sso -# types-aiobotocore-sso-admin + # types-aiobotocore-sso-admin -# types-aiobotocore-sso-oidc + # types-aiobotocore-sso-oidc -# types-aiobotocore-stepfunctions + # types-aiobotocore-stepfunctions -# types-aiobotocore-storagegateway + # types-aiobotocore-storagegateway -# types-aiobotocore-sts + # types-aiobotocore-sts -# types-aiobotocore-support + # types-aiobotocore-support -# types-aiobotocore-support-app + # types-aiobotocore-support-app -# types-aiobotocore-swf + # types-aiobotocore-swf -# types-aiobotocore-synthetics + # types-aiobotocore-synthetics -# types-aiobotocore-textract + # types-aiobotocore-textract -# types-aiobotocore-timestream-query + # types-aiobotocore-timestream-query -# types-aiobotocore-timestream-write + # types-aiobotocore-timestream-write -# types-aiobotocore-tnb + # types-aiobotocore-tnb -# types-aiobotocore-transcribe + # types-aiobotocore-transcribe -# types-aiobotocore-transfer + # types-aiobotocore-transfer -# types-aiobotocore-translate + # types-aiobotocore-translate -# types-aiobotocore-verifiedpermissions + # types-aiobotocore-verifiedpermissions -# types-aiobotocore-voice-id + # types-aiobotocore-voice-id -# types-aiobotocore-vpc-lattice + # types-aiobotocore-vpc-lattice -# types-aiobotocore-waf + # types-aiobotocore-waf -# types-aiobotocore-waf-regional + # types-aiobotocore-waf-regional -# types-aiobotocore-wafv2 + # types-aiobotocore-wafv2 -# types-aiobotocore-wellarchitected + # types-aiobotocore-wellarchitected -# types-aiobotocore-wisdom + # types-aiobotocore-wisdom -# types-aiobotocore-workdocs + # types-aiobotocore-workdocs -# types-aiobotocore-worklink + # types-aiobotocore-worklink -# types-aiobotocore-workmail + # types-aiobotocore-workmail -# types-aiobotocore-workmailmessageflow + # types-aiobotocore-workmailmessageflow -# types-aiobotocore-workspaces + # types-aiobotocore-workspaces -# types-aiobotocore-workspaces-web + # types-aiobotocore-workspaces-web -# types-aiobotocore-xray + # types-aiobotocore-xray -# ; + # ; -# types-appdirs = callPackage ./python-modules/types-appdirs { }; + # types-appdirs = callPackage ./python-modules/types-appdirs { }; -# types-awscrt = callPackage ./python-modules/types-awscrt { }; + # types-awscrt = callPackage ./python-modules/types-awscrt { }; -# types-beautifulsoup4 = callPackage ./python-modules/types-beautifulsoup4 { }; + # types-beautifulsoup4 = callPackage ./python-modules/types-beautifulsoup4 { }; -# types-click = callPackage ./python-modules/types-click { }; + # types-click = callPackage ./python-modules/types-click { }; -# types-colorama = callPackage ./python-modules/types-colorama { }; + # types-colorama = callPackage ./python-modules/types-colorama { }; -# types-dataclasses = callPackage ./python-modules/types-dataclasses { }; + # types-dataclasses = callPackage ./python-modules/types-dataclasses { }; -# types-dateutil = callPackage ./python-modules/types-dateutil { }; + # types-dateutil = callPackage ./python-modules/types-dateutil { }; -# types-decorator = callPackage ./python-modules/types-decorator { }; + # types-decorator = callPackage ./python-modules/types-decorator { }; -# types-deprecated = callPackage ./python-modules/types-deprecated { }; + # types-deprecated = callPackage ./python-modules/types-deprecated { }; -# types-docopt = callPackage ./python-modules/types-docopt { }; + # types-docopt = callPackage ./python-modules/types-docopt { }; -# types-docutils = callPackage ./python-modules/types-docutils { }; + # types-docutils = callPackage ./python-modules/types-docutils { }; -# types-enum34 = callPackage ./python-modules/types-enum34 { }; + # types-enum34 = callPackage ./python-modules/types-enum34 { }; -# types-freezegun = callPackage ./python-modules/types-freezegun { }; + # types-freezegun = callPackage ./python-modules/types-freezegun { }; -# types-futures = callPackage ./python-modules/types-futures { }; + # types-futures = callPackage ./python-modules/types-futures { }; -# types-html5lib = callPackage ./python-modules/types-html5lib { }; + # types-html5lib = callPackage ./python-modules/types-html5lib { }; -# types-ipaddress = callPackage ./python-modules/types-ipaddress { }; + # types-ipaddress = callPackage ./python-modules/types-ipaddress { }; -# types-lxml = callPackage ./python-modules/types-lxml { }; + # types-lxml = callPackage ./python-modules/types-lxml { }; -# types-markdown = callPackage ./python-modules/types-markdown { }; + # types-markdown = callPackage ./python-modules/types-markdown { }; -# types-mock = callPackage ./python-modules/types-mock { }; + # types-mock = callPackage ./python-modules/types-mock { }; -# types-pillow = callPackage ./python-modules/types-pillow { }; + # types-pillow = callPackage ./python-modules/types-pillow { }; -# types-protobuf = callPackage ./python-modules/types-protobuf { }; + # types-protobuf = callPackage ./python-modules/types-protobuf { }; -# types-psutil = callPackage ./python-modules/types-psutil { }; + # types-psutil = callPackage ./python-modules/types-psutil { }; -# types-psycopg2 = callPackage ./python-modules/types-psycopg2 { }; + # types-psycopg2 = callPackage ./python-modules/types-psycopg2 { }; -# types-pyopenssl = callPackage ./python-modules/types-pyopenssl { }; + # types-pyopenssl = callPackage ./python-modules/types-pyopenssl { }; -# types-python-dateutil = callPackage ./python-modules/types-python-dateutil { }; + # types-python-dateutil = callPackage ./python-modules/types-python-dateutil { }; -# types-pytz = callPackage ./python-modules/types-pytz { }; + # types-pytz = callPackage ./python-modules/types-pytz { }; -# types-pyyaml = callPackage ./python-modules/types-pyyaml { }; + # types-pyyaml = callPackage ./python-modules/types-pyyaml { }; -# types-redis = callPackage ./python-modules/types-redis { }; + # types-redis = callPackage ./python-modules/types-redis { }; -# types-retry = callPackage ./python-modules/types-retry { }; + # types-retry = callPackage ./python-modules/types-retry { }; -# types-requests = callPackage ./python-modules/types-requests { }; + # types-requests = callPackage ./python-modules/types-requests { }; -# types-s3transfer = callPackage ./python-modules/types-s3transfer { }; + # types-s3transfer = callPackage ./python-modules/types-s3transfer { }; -# types-setuptools = callPackage ./python-modules/types-setuptools { }; + # types-setuptools = callPackage ./python-modules/types-setuptools { }; -# types-tabulate = callPackage ./python-modules/types-tabulate { }; + # types-tabulate = callPackage ./python-modules/types-tabulate { }; -# types-toml = callPackage ./python-modules/types-toml { }; + # types-toml = callPackage ./python-modules/types-toml { }; -# types-tqdm = callPackage ./python-modules/types-tqdm { }; + # types-tqdm = callPackage ./python-modules/types-tqdm { }; -# types-typed-ast = callPackage ./python-modules/types-typed-ast { }; + # types-typed-ast = callPackage ./python-modules/types-typed-ast { }; -# types-ujson = callPackage ./python-modules/types-ujson { }; + # types-ujson = callPackage ./python-modules/types-ujson { }; -# types-urllib3 = callPackage ./python-modules/types-urllib3 { }; + # types-urllib3 = callPackage ./python-modules/types-urllib3 { }; -# typesentry = callPackage ./python-modules/typesentry { }; + # typesentry = callPackage ./python-modules/typesentry { }; -# typeshed-client = callPackage ./python-modules/typeshed-client { }; + # typeshed-client = callPackage ./python-modules/typeshed-client { }; -# typesystem = callPackage ./python-modules/typesystem { }; + # typesystem = callPackage ./python-modules/typesystem { }; -# typical = callPackage ./python-modules/typical { }; + # typical = callPackage ./python-modules/typical { }; -# typing = null; + # typing = null; typing-extensions = callPackage ./python-modules/typing-extensions { }; -# typing-inspect = callPackage ./python-modules/typing-inspect { }; + # typing-inspect = callPackage ./python-modules/typing-inspect { }; -# typing-validation = callPackage ./python-modules/typing-validation { }; + # typing-validation = callPackage ./python-modules/typing-validation { }; -# typish = callPackage ./python-modules/typish { }; + # typish = callPackage ./python-modules/typish { }; -# typogrify = callPackage ./python-modules/typogrify { }; + # typogrify = callPackage ./python-modules/typogrify { }; -# tzdata = callPackage ./python-modules/tzdata { }; + # tzdata = callPackage ./python-modules/tzdata { }; -# tzlocal = callPackage ./python-modules/tzlocal { }; + # tzlocal = callPackage ./python-modules/tzlocal { }; -# rustworkx = callPackage ./python-modules/rustworkx { }; + # rustworkx = callPackage ./python-modules/rustworkx { }; -# uamqp = callPackage ./python-modules/uamqp { -# inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork CoreFoundation Security; -# }; + # uamqp = callPackage ./python-modules/uamqp { + # inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork CoreFoundation Security; + # }; -# ua-parser = callPackage ./python-modules/ua-parser { }; + # ua-parser = callPackage ./python-modules/ua-parser { }; -# uarray = callPackage ./python-modules/uarray { }; + # uarray = callPackage ./python-modules/uarray { }; -# uart-devices = callPackage ./python-modules/uart-devices { }; + # uart-devices = callPackage ./python-modules/uart-devices { }; -# uasiren = callPackage ./python-modules/uasiren { }; + # uasiren = callPackage ./python-modules/uasiren { }; -# ubelt = callPackage ./python-modules/ubelt { }; + # ubelt = callPackage ./python-modules/ubelt { }; -# uc-micro-py = callPackage ./python-modules/uc-micro-py { }; + # uc-micro-py = callPackage ./python-modules/uc-micro-py { }; -# ucsmsdk = callPackage ./python-modules/ucsmsdk { }; + # ucsmsdk = callPackage ./python-modules/ucsmsdk { }; -# udatetime = callPackage ./python-modules/udatetime { }; + # udatetime = callPackage ./python-modules/udatetime { }; -# ueberzug = callPackage ./python-modules/ueberzug { -# inherit (pkgs.xorg) libX11 libXext; -# }; + # ueberzug = callPackage ./python-modules/ueberzug { + # inherit (pkgs.xorg) libX11 libXext; + # }; -# ufmt = callPackage ./python-modules/ufmt { }; + # ufmt = callPackage ./python-modules/ufmt { }; -# ufo2ft = callPackage ./python-modules/ufo2ft { }; + # ufo2ft = callPackage ./python-modules/ufo2ft { }; -# ufolib2 = callPackage ./python-modules/ufolib2 { }; + # ufolib2 = callPackage ./python-modules/ufolib2 { }; -# ufolint = callPackage ./python-modules/ufolint { }; + # ufolint = callPackage ./python-modules/ufolint { }; -# ufonormalizer = callPackage ./python-modules/ufonormalizer { }; + # ufonormalizer = callPackage ./python-modules/ufonormalizer { }; -# ufoprocessor = callPackage ./python-modules/ufoprocessor { }; + # ufoprocessor = callPackage ./python-modules/ufoprocessor { }; -# ueagle = callPackage ./python-modules/ueagle { }; + # ueagle = callPackage ./python-modules/ueagle { }; -# uharfbuzz = callPackage ./python-modules/uharfbuzz { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; -# }; + # uharfbuzz = callPackage ./python-modules/uharfbuzz { + # inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices; + # }; -# uhi = callPackage ./python-modules/uhi { }; + # uhi = callPackage ./python-modules/uhi { }; -# ujson = callPackage ./python-modules/ujson { }; + # ujson = callPackage ./python-modules/ujson { }; -# ukkonen = callPackage ./python-modules/ukkonen { }; + # ukkonen = callPackage ./python-modules/ukkonen { }; -# ukpostcodeparser = callPackage ./python-modules/ukpostcodeparser { }; + # ukpostcodeparser = callPackage ./python-modules/ukpostcodeparser { }; -# ulid-transform = callPackage ./python-modules/ulid-transform { }; + # ulid-transform = callPackage ./python-modules/ulid-transform { }; -# ultraheat-api = callPackage ./python-modules/ultraheat-api { }; + # ultraheat-api = callPackage ./python-modules/ultraheat-api { }; -# umalqurra = callPackage ./python-modules/umalqurra { }; + # umalqurra = callPackage ./python-modules/umalqurra { }; -# umap-learn = callPackage ./python-modules/umap-learn { }; + # umap-learn = callPackage ./python-modules/umap-learn { }; -# umodbus = callPackage ./python-modules/umodbus { }; + # umodbus = callPackage ./python-modules/umodbus { }; -# u-msgpack-python = callPackage ./python-modules/u-msgpack-python { }; + # u-msgpack-python = callPackage ./python-modules/u-msgpack-python { }; -# unasync = callPackage ./python-modules/unasync { }; + # unasync = callPackage ./python-modules/unasync { }; -# uncertainties = callPackage ./python-modules/uncertainties { }; + # uncertainties = callPackage ./python-modules/uncertainties { }; -# uncompyle6 = callPackage ./python-modules/uncompyle6 { }; + # uncompyle6 = callPackage ./python-modules/uncompyle6 { }; -# undefined = callPackage ./python-modules/undefined { }; + # undefined = callPackage ./python-modules/undefined { }; -# unearth = callPackage ./python-modules/unearth { }; + # unearth = callPackage ./python-modules/unearth { }; -# unicodecsv = callPackage ./python-modules/unicodecsv { }; + # unicodecsv = callPackage ./python-modules/unicodecsv { }; -# unicodedata2 = callPackage ./python-modules/unicodedata2 { }; + # unicodedata2 = callPackage ./python-modules/unicodedata2 { }; -# unicode-rbnf = callPackage ./python-modules/unicode-rbnf { }; + # unicode-rbnf = callPackage ./python-modules/unicode-rbnf { }; -# unicode-slugify = callPackage ./python-modules/unicode-slugify { }; + # unicode-slugify = callPackage ./python-modules/unicode-slugify { }; -# unicorn = callPackage ./python-modules/unicorn { -# unicorn-emu = pkgs.unicorn; -# }; + # unicorn = callPackage ./python-modules/unicorn { + # unicorn-emu = pkgs.unicorn; + # }; -# unicurses = callPackage ./python-modules/unicurses { }; + # unicurses = callPackage ./python-modules/unicurses { }; -# unicrypto = callPackage ./python-modules/unicrypto { }; + # unicrypto = callPackage ./python-modules/unicrypto { }; -# unidata-blocks = callPackage ./python-modules/unidata-blocks { }; + # unidata-blocks = callPackage ./python-modules/unidata-blocks { }; -# unidecode = callPackage ./python-modules/unidecode { }; + # unidecode = callPackage ./python-modules/unidecode { }; -# unidic = callPackage ./python-modules/unidic { }; + # unidic = callPackage ./python-modules/unidic { }; -# unidic-lite = callPackage ./python-modules/unidic-lite { }; + # unidic-lite = callPackage ./python-modules/unidic-lite { }; -# unidiff = callPackage ./python-modules/unidiff { }; + # unidiff = callPackage ./python-modules/unidiff { }; -# unifi = callPackage ./python-modules/unifi { }; + # unifi = callPackage ./python-modules/unifi { }; -# unifi-discovery = callPackage ./python-modules/unifi-discovery { }; + # unifi-discovery = callPackage ./python-modules/unifi-discovery { }; -# unify = callPackage ./python-modules/unify { }; + # unify = callPackage ./python-modules/unify { }; -# unifiled = callPackage ./python-modules/unifiled { }; + # unifiled = callPackage ./python-modules/unifiled { }; -# unique-log-filter = callPackage ./python-modules/unique-log-filter { }; + # unique-log-filter = callPackage ./python-modules/unique-log-filter { }; -# unittest-data-provider = callPackage ./python-modules/unittest-data-provider { }; + # unittest-data-provider = callPackage ./python-modules/unittest-data-provider { }; -# unittest-xml-reporting = callPackage ./python-modules/unittest-xml-reporting { }; + # unittest-xml-reporting = callPackage ./python-modules/unittest-xml-reporting { }; -# univers = callPackage ./python-modules/univers { }; + # univers = callPackage ./python-modules/univers { }; -# universal-pathlib = callPackage ./python-modules/universal-pathlib { }; + # universal-pathlib = callPackage ./python-modules/universal-pathlib { }; -# universal-silabs-flasher = callPackage ./python-modules/universal-silabs-flasher { }; + # universal-silabs-flasher = callPackage ./python-modules/universal-silabs-flasher { }; -# unix-ar = callPackage ./python-modules/unix-ar { }; + # unix-ar = callPackage ./python-modules/unix-ar { }; -# unpaddedbase64 = callPackage ./python-modules/unpaddedbase64 { }; + # unpaddedbase64 = callPackage ./python-modules/unpaddedbase64 { }; -# unrardll = callPackage ./python-modules/unrardll { }; + # unrardll = callPackage ./python-modules/unrardll { }; -# unrpa = callPackage ./python-modules/unrpa { }; + # unrpa = callPackage ./python-modules/unrpa { }; -# unstructured = callPackage ./python-modules/unstructured { }; + # unstructured = callPackage ./python-modules/unstructured { }; -# unstructured-api-tools = callPackage ./python-modules/unstructured-api-tools { }; + # unstructured-api-tools = callPackage ./python-modules/unstructured-api-tools { }; -# unstructured-inference = callPackage ./python-modules/unstructured-inference { }; + # unstructured-inference = callPackage ./python-modules/unstructured-inference { }; -# untangle = callPackage ./python-modules/untangle { }; + # untangle = callPackage ./python-modules/untangle { }; -# untokenize = callPackage ./python-modules/untokenize { }; + # untokenize = callPackage ./python-modules/untokenize { }; -# uonet-request-signer-hebe = callPackage ./python-modules/uonet-request-signer-hebe { }; + # uonet-request-signer-hebe = callPackage ./python-modules/uonet-request-signer-hebe { }; -# upass = callPackage ./python-modules/upass { }; + # upass = callPackage ./python-modules/upass { }; -# upb-lib = callPackage ./python-modules/upb-lib { }; + # upb-lib = callPackage ./python-modules/upb-lib { }; -# upcloud-api = callPackage ./python-modules/upcloud-api { }; + # upcloud-api = callPackage ./python-modules/upcloud-api { }; -# update-checker = callPackage ./python-modules/update-checker { }; + # update-checker = callPackage ./python-modules/update-checker { }; -# update-copyright = callPackage ./python-modules/update-copyright { }; + # update-copyright = callPackage ./python-modules/update-copyright { }; -# update-dotdee = callPackage ./python-modules/update-dotdee { }; + # update-dotdee = callPackage ./python-modules/update-dotdee { }; -# uplc = callPackage ./python-modules/uplc { }; + # uplc = callPackage ./python-modules/uplc { }; -# upnpy = callPackage ./python-modules/upnpy { }; + # upnpy = callPackage ./python-modules/upnpy { }; -# uproot = callPackage ./python-modules/uproot { }; + # uproot = callPackage ./python-modules/uproot { }; -# uptime = callPackage ./python-modules/uptime { }; + # uptime = callPackage ./python-modules/uptime { }; -# uptime-kuma-api = callPackage ./python-modules/uptime-kuma-api { }; + # uptime-kuma-api = callPackage ./python-modules/uptime-kuma-api { }; -# uptime-kuma-monitor = callPackage ./python-modules/uptime-kuma-monitor { }; + # uptime-kuma-monitor = callPackage ./python-modules/uptime-kuma-monitor { }; -# uqbar = callPackage ./python-modules/uqbar { }; + # uqbar = callPackage ./python-modules/uqbar { }; -# uranium = callPackage ./python-modules/uranium { }; + # uranium = callPackage ./python-modules/uranium { }; -# uritemplate = callPackage ./python-modules/uritemplate { }; + # uritemplate = callPackage ./python-modules/uritemplate { }; -# uri-template = callPackage ./python-modules/uri-template { }; + # uri-template = callPackage ./python-modules/uri-template { }; -# uritools = callPackage ./python-modules/uritools { }; + # uritools = callPackage ./python-modules/uritools { }; -# url-normalize = callPackage ./python-modules/url-normalize { }; + # url-normalize = callPackage ./python-modules/url-normalize { }; -# urlextract = callPackage ./python-modules/urlextract { }; + # urlextract = callPackage ./python-modules/urlextract { }; -# urlgrabber = callPackage ./python-modules/urlgrabber { }; + # urlgrabber = callPackage ./python-modules/urlgrabber { }; urllib3 = callPackage ./python-modules/urllib3 { }; -# urlman = callPackage ./python-modules/urlman { }; + # urlman = callPackage ./python-modules/urlman { }; -# urlpy = callPackage ./python-modules/urlpy { }; + # urlpy = callPackage ./python-modules/urlpy { }; -# urwid = callPackage ./python-modules/urwid { }; + # urwid = callPackage ./python-modules/urwid { }; -# urwidgets = callPackage ./python-modules/urwidgets { }; + # urwidgets = callPackage ./python-modules/urwidgets { }; -# urwidtrees = callPackage ./python-modules/urwidtrees { }; + # urwidtrees = callPackage ./python-modules/urwidtrees { }; -# urwid-readline = callPackage ./python-modules/urwid-readline { }; + # urwid-readline = callPackage ./python-modules/urwid-readline { }; -# urwid-mitmproxy = callPackage ./python-modules/urwid-mitmproxy { }; + # urwid-mitmproxy = callPackage ./python-modules/urwid-mitmproxy { }; -# usb-devices = callPackage ./python-modules/usb-devices { }; + # usb-devices = callPackage ./python-modules/usb-devices { }; -# usbrelay-py = callPackage ../os-specific/linux/usbrelay/python.nix { }; + # usbrelay-py = callPackage ../os-specific/linux/usbrelay/python.nix { }; -# usbtmc = callPackage ./python-modules/usbtmc { }; + # usbtmc = callPackage ./python-modules/usbtmc { }; -# us = callPackage ./python-modules/us { }; + # us = callPackage ./python-modules/us { }; -# user-agents = callPackage ./python-modules/user-agents { }; + # user-agents = callPackage ./python-modules/user-agents { }; -# userpath = callPackage ./python-modules/userpath { }; + # userpath = callPackage ./python-modules/userpath { }; -# ush = callPackage ./python-modules/ush { }; + # ush = callPackage ./python-modules/ush { }; -# usort = callPackage ./python-modules/usort { }; + # usort = callPackage ./python-modules/usort { }; -# utils = callPackage ./python-modules/utils { }; + # utils = callPackage ./python-modules/utils { }; -# uvcclient = callPackage ./python-modules/uvcclient { }; + # uvcclient = callPackage ./python-modules/uvcclient { }; -# uvicorn = callPackage ./python-modules/uvicorn { }; + # uvicorn = callPackage ./python-modules/uvicorn { }; -# uvloop = callPackage ./python-modules/uvloop { -# inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices; -# }; + # uvloop = callPackage ./python-modules/uvloop { + # inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices; + # }; -# vaa = callPackage ./python-modules/vaa { }; + # vaa = callPackage ./python-modules/vaa { }; -# vacuum-map-parser-base = callPackage ./python-modules/vacuum-map-parser-base { }; + # vacuum-map-parser-base = callPackage ./python-modules/vacuum-map-parser-base { }; -# vacuum-map-parser-roborock = callPackage ./python-modules/vacuum-map-parser-roborock { }; + # vacuum-map-parser-roborock = callPackage ./python-modules/vacuum-map-parser-roborock { }; -# validate-email = callPackage ./python-modules/validate-email { }; + # validate-email = callPackage ./python-modules/validate-email { }; -# validator-collection = callPackage ./python-modules/validator-collection { }; + # validator-collection = callPackage ./python-modules/validator-collection { }; -# validators = callPackage ./python-modules/validators { }; + # validators = callPackage ./python-modules/validators { }; -# validobj = callPackage ./python-modules/validobj { }; + # validobj = callPackage ./python-modules/validobj { }; -# validphys2 = callPackage ./python-modules/validphys2 { }; + # validphys2 = callPackage ./python-modules/validphys2 { }; -# vallox-websocket-api = callPackage ./python-modules/vallox-websocket-api { }; + # vallox-websocket-api = callPackage ./python-modules/vallox-websocket-api { }; -# vapoursynth = callPackage ./python-modules/vapoursynth { -# inherit (pkgs) vapoursynth; -# }; + # vapoursynth = callPackage ./python-modules/vapoursynth { + # inherit (pkgs) vapoursynth; + # }; -# variants = callPackage ./python-modules/variants { }; + # variants = callPackage ./python-modules/variants { }; -# varint = callPackage ./python-modules/varint { }; + # varint = callPackage ./python-modules/varint { }; -# vat-moss = callPackage ./python-modules/vat-moss { }; + # vat-moss = callPackage ./python-modules/vat-moss { }; -# vcard = callPackage ./python-modules/vcard { }; + # vcard = callPackage ./python-modules/vcard { }; -# vcrpy = callPackage ./python-modules/vcrpy { }; + # vcrpy = callPackage ./python-modules/vcrpy { }; -# vcver = callPackage ./python-modules/vcver { }; + # vcver = callPackage ./python-modules/vcver { }; -# vcversioner = callPackage ./python-modules/vcversioner { }; + # vcversioner = callPackage ./python-modules/vcversioner { }; -# vdf = callPackage ./python-modules/vdf { }; + # vdf = callPackage ./python-modules/vdf { }; -# vdirsyncer = callPackage ./python-modules/vdirsyncer { }; + # vdirsyncer = callPackage ./python-modules/vdirsyncer { }; -# vector = callPackage ./python-modules/vector { }; + # vector = callPackage ./python-modules/vector { }; -# vehicle = callPackage ./python-modules/vehicle { }; + # vehicle = callPackage ./python-modules/vehicle { }; -# vega = callPackage ./python-modules/vega { }; + # vega = callPackage ./python-modules/vega { }; -# vega-datasets = callPackage ./python-modules/vega-datasets { }; + # vega-datasets = callPackage ./python-modules/vega-datasets { }; -# venstarcolortouch = callPackage ./python-modules/venstarcolortouch { }; + # venstarcolortouch = callPackage ./python-modules/venstarcolortouch { }; -# venusian = callPackage ./python-modules/venusian { }; + # venusian = callPackage ./python-modules/venusian { }; -# velbus-aio = callPackage ./python-modules/velbus-aio { }; + # velbus-aio = callPackage ./python-modules/velbus-aio { }; -# verboselogs = callPackage ./python-modules/verboselogs { }; + # verboselogs = callPackage ./python-modules/verboselogs { }; -# verlib2 = callPackage ./python-modules/verlib2 { }; + # verlib2 = callPackage ./python-modules/verlib2 { }; -# versioneer = callPackage ./python-modules/versioneer { }; + # versioneer = callPackage ./python-modules/versioneer { }; -# versionfinder = callPackage ./python-modules/versionfinder { }; + # versionfinder = callPackage ./python-modules/versionfinder { }; -# versioningit = callPackage ./python-modules/versioningit { }; + # versioningit = callPackage ./python-modules/versioningit { }; -# versiontag = callPackage ./python-modules/versiontag { }; + # versiontag = callPackage ./python-modules/versiontag { }; -# versiontools = callPackage ./python-modules/versiontools { }; + # versiontools = callPackage ./python-modules/versiontools { }; -# verspec = callPackage ./python-modules/verspec { }; + # verspec = callPackage ./python-modules/verspec { }; -# vertica-python = callPackage ./python-modules/vertica-python { }; + # vertica-python = callPackage ./python-modules/vertica-python { }; -# veryprettytable = callPackage ./python-modules/veryprettytable { }; + # veryprettytable = callPackage ./python-modules/veryprettytable { }; -# vg = callPackage ./python-modules/vg { }; + # vg = callPackage ./python-modules/vg { }; -# vharfbuzz = callPackage ./python-modules/vharfbuzz { }; + # vharfbuzz = callPackage ./python-modules/vharfbuzz { }; -# videocr = callPackage ./python-modules/videocr { }; + # videocr = callPackage ./python-modules/videocr { }; -# vidstab = callPackage ./python-modules/vidstab { }; + # vidstab = callPackage ./python-modules/vidstab { }; -# viennarna = toPythonModule pkgs.viennarna; + # viennarna = toPythonModule pkgs.viennarna; -# viewstate = callPackage ./python-modules/viewstate { }; + # viewstate = callPackage ./python-modules/viewstate { }; -# vilfo-api-client = callPackage ./python-modules/vilfo-api-client { }; + # vilfo-api-client = callPackage ./python-modules/vilfo-api-client { }; -# vina = callPackage ../applications/science/chemistry/autodock-vina/python-bindings.nix { }; + # vina = callPackage ../applications/science/chemistry/autodock-vina/python-bindings.nix { }; -# vincenty = callPackage ./python-modules/vincenty { }; + # vincenty = callPackage ./python-modules/vincenty { }; -# vine = callPackage ./python-modules/vine { }; + # vine = callPackage ./python-modules/vine { }; -# virt-firmware = callPackage ./python-modules/virt-firmware { }; + # virt-firmware = callPackage ./python-modules/virt-firmware { }; -# virtkey = callPackage ./python-modules/virtkey { }; + # virtkey = callPackage ./python-modules/virtkey { }; virtualenv = callPackage ./python-modules/virtualenv { }; -# virtualenv-clone = callPackage ./python-modules/virtualenv-clone { }; + # virtualenv-clone = callPackage ./python-modules/virtualenv-clone { }; -# virtualenvwrapper = callPackage ./python-modules/virtualenvwrapper { }; + # virtualenvwrapper = callPackage ./python-modules/virtualenvwrapper { }; -# visitor = callPackage ./python-modules/visitor { }; + # visitor = callPackage ./python-modules/visitor { }; -# vispy = callPackage ./python-modules/vispy { }; + # vispy = callPackage ./python-modules/vispy { }; -# vivisect = callPackage ./python-modules/vivisect { -# inherit (pkgs.libsForQt5) wrapQtAppsHook; -# }; + # vivisect = callPackage ./python-modules/vivisect { + # inherit (pkgs.libsForQt5) wrapQtAppsHook; + # }; -# viv-utils = callPackage ./python-modules/viv-utils { }; + # viv-utils = callPackage ./python-modules/viv-utils { }; -# vllm = callPackage ./python-modules/vllm { }; + # vllm = callPackage ./python-modules/vllm { }; -# vmprof = callPackage ./python-modules/vmprof { }; + # vmprof = callPackage ./python-modules/vmprof { }; -# vncdo = callPackage ./python-modules/vncdo { }; + # vncdo = callPackage ./python-modules/vncdo { }; -# vobject = callPackage ./python-modules/vobject { }; + # vobject = callPackage ./python-modules/vobject { }; -# volatile = callPackage ./python-modules/volatile { }; + # volatile = callPackage ./python-modules/volatile { }; -# volkszaehler = callPackage ./python-modules/volkszaehler { }; + # volkszaehler = callPackage ./python-modules/volkszaehler { }; -# voluptuous = callPackage ./python-modules/voluptuous { }; + # voluptuous = callPackage ./python-modules/voluptuous { }; -# voluptuous-serialize = callPackage ./python-modules/voluptuous-serialize { }; + # voluptuous-serialize = callPackage ./python-modules/voluptuous-serialize { }; -# voluptuous-stubs = callPackage ./python-modules/voluptuous-stubs { }; + # voluptuous-stubs = callPackage ./python-modules/voluptuous-stubs { }; -# volvooncall = callPackage ./python-modules/volvooncall { }; + # volvooncall = callPackage ./python-modules/volvooncall { }; -# vowpalwabbit = callPackage ./python-modules/vowpalwabbit { }; + # vowpalwabbit = callPackage ./python-modules/vowpalwabbit { }; -# vpk = callPackage ./python-modules/vpk { }; + # vpk = callPackage ./python-modules/vpk { }; -# vprof = callPackage ./python-modules/vprof { }; + # vprof = callPackage ./python-modules/vprof { }; -# vqgan-jax = callPackage ./python-modules/vqgan-jax { }; + # vqgan-jax = callPackage ./python-modules/vqgan-jax { }; -# vsts = callPackage ./python-modules/vsts { }; + # vsts = callPackage ./python-modules/vsts { }; -# vsts-cd-manager = callPackage ./python-modules/vsts-cd-manager { }; + # vsts-cd-manager = callPackage ./python-modules/vsts-cd-manager { }; -# vsure = callPackage ./python-modules/vsure { }; + # vsure = callPackage ./python-modules/vsure { }; -# vt-py = callPackage ./python-modules/vt-py { }; + # vt-py = callPackage ./python-modules/vt-py { }; -# vtjp = callPackage ./python-modules/vtjp { }; + # vtjp = callPackage ./python-modules/vtjp { }; -# vtk = toPythonModule (pkgs.vtk_9.override { -# inherit python; -# enablePython = true; -# }); + # vtk = toPythonModule (pkgs.vtk_9.override { + # inherit python; + # enablePython = true; + # }); -# vulcan-api = callPackage ./python-modules/vulcan-api { }; + # vulcan-api = callPackage ./python-modules/vulcan-api { }; -# vultr = callPackage ./python-modules/vultr { }; + # vultr = callPackage ./python-modules/vultr { }; -# vulture = callPackage ./python-modules/vulture { }; + # vulture = callPackage ./python-modules/vulture { }; -# vxi11 = callPackage ./python-modules/vxi11 { }; + # vxi11 = callPackage ./python-modules/vxi11 { }; -# vyper = callPackage ../development/compilers/vyper { }; + # vyper = callPackage ../development/compilers/vyper { }; -# w1thermsensor = callPackage ./python-modules/w1thermsensor { }; + # w1thermsensor = callPackage ./python-modules/w1thermsensor { }; -# w3lib = callPackage ./python-modules/w3lib { }; + # w3lib = callPackage ./python-modules/w3lib { }; -# wadllib = callPackage ./python-modules/wadllib { }; + # wadllib = callPackage ./python-modules/wadllib { }; -# wagtail = callPackage ./python-modules/wagtail { }; + # wagtail = callPackage ./python-modules/wagtail { }; -# wagtail-factories = callPackage ./python-modules/wagtail-factories { }; + # wagtail-factories = callPackage ./python-modules/wagtail-factories { }; -# wagtail-localize = callPackage ./python-modules/wagtail-localize { }; + # wagtail-localize = callPackage ./python-modules/wagtail-localize { }; -# wagtail-modeladmin = callPackage ./python-modules/wagtail-modeladmin { }; + # wagtail-modeladmin = callPackage ./python-modules/wagtail-modeladmin { }; -# waitress = callPackage ./python-modules/waitress { }; + # waitress = callPackage ./python-modules/waitress { }; -# waitress-django = callPackage ./python-modules/waitress-django { }; + # waitress-django = callPackage ./python-modules/waitress-django { }; -# wakeonlan = callPackage ./python-modules/wakeonlan { }; + # wakeonlan = callPackage ./python-modules/wakeonlan { }; -# wallbox = callPackage ./python-modules/wallbox { }; + # wallbox = callPackage ./python-modules/wallbox { }; -# wallet-py3k = callPackage ./python-modules/wallet-py3k { }; + # wallet-py3k = callPackage ./python-modules/wallet-py3k { }; -# walrus = callPackage ./python-modules/walrus { }; + # walrus = callPackage ./python-modules/walrus { }; -# wand = callPackage ./python-modules/wand { }; + # wand = callPackage ./python-modules/wand { }; -# wandb = callPackage ./python-modules/wandb { }; + # wandb = callPackage ./python-modules/wandb { }; -# warble = callPackage ./python-modules/warble { }; + # warble = callPackage ./python-modules/warble { }; -# warcio = callPackage ./python-modules/warcio { }; + # warcio = callPackage ./python-modules/warcio { }; -# ward = callPackage ./python-modules/ward { }; + # ward = callPackage ./python-modules/ward { }; -# warlock = callPackage ./python-modules/warlock { }; + # warlock = callPackage ./python-modules/warlock { }; -# warrant = callPackage ./python-modules/warrant { }; + # warrant = callPackage ./python-modules/warrant { }; -# warrant-lite = callPackage ./python-modules/warrant-lite { }; + # warrant-lite = callPackage ./python-modules/warrant-lite { }; -# waqiasync = callPackage ./python-modules/waqiasync { }; + # waqiasync = callPackage ./python-modules/waqiasync { }; -# wasabi = callPackage ./python-modules/wasabi { }; + # wasabi = callPackage ./python-modules/wasabi { }; -# wasserstein = callPackage ./python-modules/wasserstein { }; + # wasserstein = callPackage ./python-modules/wasserstein { }; -# wasmerPackages = pkgs.recurseIntoAttrs (callPackage ./python-modules/wasmer { }); -# inherit (self.wasmerPackages) wasmer wasmer-compiler-cranelift wasmer-compiler-llvm wasmer-compiler-singlepass; + # wasmerPackages = pkgs.recurseIntoAttrs (callPackage ./python-modules/wasmer { }); + # inherit (self.wasmerPackages) wasmer wasmer-compiler-cranelift wasmer-compiler-llvm wasmer-compiler-singlepass; -# watchdog = callPackage ./python-modules/watchdog { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; -# }; + # watchdog = callPackage ./python-modules/watchdog { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; + # }; -# watchdog-gevent = callPackage ./python-modules/watchdog-gevent { }; + # watchdog-gevent = callPackage ./python-modules/watchdog-gevent { }; -# watchfiles = callPackage ./python-modules/watchfiles { -# inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; -# }; + # watchfiles = callPackage ./python-modules/watchfiles { + # inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; + # }; -# watchgod = callPackage ./python-modules/watchgod { }; + # watchgod = callPackage ./python-modules/watchgod { }; -# waterfurnace = callPackage ./python-modules/waterfurnace { }; + # waterfurnace = callPackage ./python-modules/waterfurnace { }; -# watermark = callPackage ./python-modules/watermark { }; + # watermark = callPackage ./python-modules/watermark { }; -# wavedrom = callPackage ./python-modules/wavedrom { }; + # wavedrom = callPackage ./python-modules/wavedrom { }; -# wavefile = callPackage ./python-modules/wavefile { }; + # wavefile = callPackage ./python-modules/wavefile { }; -# wavinsentio = callPackage ./python-modules/wavinsentio { }; + # wavinsentio = callPackage ./python-modules/wavinsentio { }; -# wazeroutecalculator = callPackage ./python-modules/wazeroutecalculator { }; + # wazeroutecalculator = callPackage ./python-modules/wazeroutecalculator { }; wcag-contrast-ratio = callPackage ./python-modules/wcag-contrast-ratio { }; -# wcmatch = callPackage ./python-modules/wcmatch { }; + # wcmatch = callPackage ./python-modules/wcmatch { }; -# wcwidth = callPackage ./python-modules/wcwidth { }; + # wcwidth = callPackage ./python-modules/wcwidth { }; -# weasel = callPackage ./python-modules/weasel { }; + # weasel = callPackage ./python-modules/weasel { }; -# weasyprint = callPackage ./python-modules/weasyprint { }; + # weasyprint = callPackage ./python-modules/weasyprint { }; -# weaviate-client = callPackage ./python-modules/weaviate-client { }; + # weaviate-client = callPackage ./python-modules/weaviate-client { }; -# web3 = callPackage ./python-modules/web3 { }; + # web3 = callPackage ./python-modules/web3 { }; -# webargs = callPackage ./python-modules/webargs { }; + # webargs = callPackage ./python-modules/webargs { }; -# webassets = callPackage ./python-modules/webassets { }; + # webassets = callPackage ./python-modules/webassets { }; -# webauthn = callPackage ./python-modules/webauthn { }; + # webauthn = callPackage ./python-modules/webauthn { }; -# web = callPackage ./python-modules/web { }; + # web = callPackage ./python-modules/web { }; -# web-cache = callPackage ./python-modules/web-cache { }; + # web-cache = callPackage ./python-modules/web-cache { }; -# webcolors = callPackage ./python-modules/webcolors { }; + # webcolors = callPackage ./python-modules/webcolors { }; -# webdataset = callPackage ./python-modules/webdataset { }; + # webdataset = callPackage ./python-modules/webdataset { }; -# webdav4 = callPackage ./python-modules/webdav4 { }; + # webdav4 = callPackage ./python-modules/webdav4 { }; -# webdavclient3 = callPackage ./python-modules/webdavclient3 { }; + # webdavclient3 = callPackage ./python-modules/webdavclient3 { }; -# webdriver-manager = callPackage ./python-modules/webdriver-manager { }; + # webdriver-manager = callPackage ./python-modules/webdriver-manager { }; webencodings = callPackage ./python-modules/webencodings { }; -# webexteamssdk = callPackage ./python-modules/webexteamssdk { }; + # webexteamssdk = callPackage ./python-modules/webexteamssdk { }; -# webhelpers = callPackage ./python-modules/webhelpers { }; + # webhelpers = callPackage ./python-modules/webhelpers { }; -# webob = callPackage ./python-modules/webob { }; + # webob = callPackage ./python-modules/webob { }; -# weboob = callPackage ./python-modules/weboob { }; + # weboob = callPackage ./python-modules/weboob { }; -# webrtc-noise-gain = callPackage ./python-modules/webrtc-noise-gain { }; + # webrtc-noise-gain = callPackage ./python-modules/webrtc-noise-gain { }; -# webrtcvad = callPackage ./python-modules/webrtcvad { }; + # webrtcvad = callPackage ./python-modules/webrtcvad { }; -# websocket-client = callPackage ./python-modules/websocket-client { }; + # websocket-client = callPackage ./python-modules/websocket-client { }; -# websockets = callPackage ./python-modules/websockets { }; + # websockets = callPackage ./python-modules/websockets { }; -# websockify = callPackage ./python-modules/websockify { }; + # websockify = callPackage ./python-modules/websockify { }; -# webssh = callPackage ./python-modules/webssh { }; + # webssh = callPackage ./python-modules/webssh { }; -# webtest = callPackage ./python-modules/webtest { }; + # webtest = callPackage ./python-modules/webtest { }; -# webtest-aiohttp = callPackage ./python-modules/webtest-aiohttp { }; + # webtest-aiohttp = callPackage ./python-modules/webtest-aiohttp { }; -# webthing = callPackage ./python-modules/webthing { }; + # webthing = callPackage ./python-modules/webthing { }; -# webthing-ws = callPackage ./python-modules/webthing-ws { }; + # webthing-ws = callPackage ./python-modules/webthing-ws { }; -# weconnect = callPackage ./python-modules/weconnect { }; + # weconnect = callPackage ./python-modules/weconnect { }; -# weconnect-mqtt = callPackage ./python-modules/weconnect-mqtt { }; + # weconnect-mqtt = callPackage ./python-modules/weconnect-mqtt { }; -# werkzeug = callPackage ./python-modules/werkzeug { }; + # werkzeug = callPackage ./python-modules/werkzeug { }; -# west = callPackage ./python-modules/west { }; + # west = callPackage ./python-modules/west { }; -# wfuzz = callPackage ./python-modules/wfuzz { }; + # wfuzz = callPackage ./python-modules/wfuzz { }; -# wget = callPackage ./python-modules/wget { }; + # wget = callPackage ./python-modules/wget { }; -# whatthepatch = callPackage ./python-modules/whatthepatch { }; + # whatthepatch = callPackage ./python-modules/whatthepatch { }; wheel = callPackage ./python-modules/wheel { }; -# wheel-filename = callPackage ./python-modules/wheel-filename { }; + # wheel-filename = callPackage ./python-modules/wheel-filename { }; -# wheel-inspect = callPackage ./python-modules/wheel-inspect { }; + # wheel-inspect = callPackage ./python-modules/wheel-inspect { }; -# wheezy-captcha = callPackage ./python-modules/wheezy-captcha { }; + # wheezy-captcha = callPackage ./python-modules/wheezy-captcha { }; -# wheezy-template = callPackage ./python-modules/wheezy-template { }; + # wheezy-template = callPackage ./python-modules/wheezy-template { }; -# whenever = callPackage ./python-modules/whenever { }; + # whenever = callPackage ./python-modules/whenever { }; -# whichcraft = callPackage ./python-modules/whichcraft { }; + # whichcraft = callPackage ./python-modules/whichcraft { }; -# whirlpool-sixth-sense = callPackage ./python-modules/whirlpool-sixth-sense { }; + # whirlpool-sixth-sense = callPackage ./python-modules/whirlpool-sixth-sense { }; -# whisper = callPackage ./python-modules/whisper { }; + # whisper = callPackage ./python-modules/whisper { }; -# whispers = callPackage ./python-modules/whispers { }; + # whispers = callPackage ./python-modules/whispers { }; -# whitenoise = callPackage ./python-modules/whitenoise { }; + # whitenoise = callPackage ./python-modules/whitenoise { }; -# whodap = callPackage ./python-modules/whodap { }; + # whodap = callPackage ./python-modules/whodap { }; -# whois = callPackage ./python-modules/whois { }; + # whois = callPackage ./python-modules/whois { }; -# whois-api = callPackage ./python-modules/whois-api { }; + # whois-api = callPackage ./python-modules/whois-api { }; -# whoisdomain = callPackage ./python-modules/whoisdomain { }; + # whoisdomain = callPackage ./python-modules/whoisdomain { }; -# whoosh = callPackage ./python-modules/whoosh { }; + # whoosh = callPackage ./python-modules/whoosh { }; -# widgetsnbextension = callPackage ./python-modules/widgetsnbextension { }; + # widgetsnbextension = callPackage ./python-modules/widgetsnbextension { }; -# widlparser = callPackage ./python-modules/widlparser { }; + # widlparser = callPackage ./python-modules/widlparser { }; -# wiffi = callPackage ./python-modules/wiffi { }; + # wiffi = callPackage ./python-modules/wiffi { }; -# wifi = callPackage ./python-modules/wifi { }; + # wifi = callPackage ./python-modules/wifi { }; -# wikipedia = callPackage ./python-modules/wikipedia { }; + # wikipedia = callPackage ./python-modules/wikipedia { }; -# wikipedia2vec = callPackage ./python-modules/wikipedia2vec { }; + # wikipedia2vec = callPackage ./python-modules/wikipedia2vec { }; -# wikipedia-api = callPackage ./python-modules/wikipedia-api { }; + # wikipedia-api = callPackage ./python-modules/wikipedia-api { }; -# wikitextparser = callPackage ./python-modules/wikitextparser { }; + # wikitextparser = callPackage ./python-modules/wikitextparser { }; -# willow = callPackage ./python-modules/willow { }; + # willow = callPackage ./python-modules/willow { }; -# winacl = callPackage ./python-modules/winacl { }; + # winacl = callPackage ./python-modules/winacl { }; -# winsspi = callPackage ./python-modules/winsspi { }; + # winsspi = callPackage ./python-modules/winsspi { }; -# withings-api = callPackage ./python-modules/withings-api { }; + # withings-api = callPackage ./python-modules/withings-api { }; -# withings-sync = callPackage ./python-modules/withings-sync { }; + # withings-sync = callPackage ./python-modules/withings-sync { }; -# wktutils = callPackage ./python-modules/wktutils { }; + # wktutils = callPackage ./python-modules/wktutils { }; -# wled = callPackage ./python-modules/wled { }; + # wled = callPackage ./python-modules/wled { }; -# wn = callPackage ./python-modules/wn { }; + # wn = callPackage ./python-modules/wn { }; -# woob = callPackage ./python-modules/woob { }; + # woob = callPackage ./python-modules/woob { }; -# woodblock = callPackage ./python-modules/woodblock { }; + # woodblock = callPackage ./python-modules/woodblock { }; -# wordcloud = callPackage ./python-modules/wordcloud { }; + # wordcloud = callPackage ./python-modules/wordcloud { }; -# wordfreq = callPackage ./python-modules/wordfreq { }; + # wordfreq = callPackage ./python-modules/wordfreq { }; -# worldengine = callPackage ./python-modules/worldengine { }; + # worldengine = callPackage ./python-modules/worldengine { }; -# wrapio = callPackage ./python-modules/wrapio { }; + # wrapio = callPackage ./python-modules/wrapio { }; -# wrapt = callPackage ./python-modules/wrapt { }; + # wrapt = callPackage ./python-modules/wrapt { }; -# wrf-python = callPackage ./python-modules/wrf-python { }; + # wrf-python = callPackage ./python-modules/wrf-python { }; -# ws4py = callPackage ./python-modules/ws4py { }; + # ws4py = callPackage ./python-modules/ws4py { }; -# wsdiscovery = callPackage ./python-modules/wsdiscovery { }; + # wsdiscovery = callPackage ./python-modules/wsdiscovery { }; -# wsgi-intercept = callPackage ./python-modules/wsgi-intercept { }; + # wsgi-intercept = callPackage ./python-modules/wsgi-intercept { }; -# wsgidav = callPackage ./python-modules/wsgidav { }; + # wsgidav = callPackage ./python-modules/wsgidav { }; -# wsgiprox = callPackage ./python-modules/wsgiprox { }; + # wsgiprox = callPackage ./python-modules/wsgiprox { }; -# wsgiproxy2 = callPackage ./python-modules/wsgiproxy2 { }; + # wsgiproxy2 = callPackage ./python-modules/wsgiproxy2 { }; -# wsgitools = callPackage ./python-modules/wsgitools { }; + # wsgitools = callPackage ./python-modules/wsgitools { }; -# wsme = callPackage ./python-modules/wsme { }; + # wsme = callPackage ./python-modules/wsme { }; -# wsnsimpy = callPackage ./python-modules/wsnsimpy { }; + # wsnsimpy = callPackage ./python-modules/wsnsimpy { }; -# wsproto = callPackage ./python-modules/wsproto { }; + # wsproto = callPackage ./python-modules/wsproto { }; -# wtforms = callPackage ./python-modules/wtforms { }; + # wtforms = callPackage ./python-modules/wtforms { }; -# wtforms-bootstrap5 = callPackage ./python-modules/wtforms-bootstrap5 { }; + # wtforms-bootstrap5 = callPackage ./python-modules/wtforms-bootstrap5 { }; -# wunsen = callPackage ./python-modules/wunsen { }; + # wunsen = callPackage ./python-modules/wunsen { }; -# wtf-peewee = callPackage ./python-modules/wtf-peewee { }; + # wtf-peewee = callPackage ./python-modules/wtf-peewee { }; -# wurlitzer = callPackage ./python-modules/wurlitzer { }; + # wurlitzer = callPackage ./python-modules/wurlitzer { }; -# wxpython = callPackage ./python-modules/wxpython/4.2.nix { -# wxGTK = pkgs.wxGTK32.override { -# withWebKit = true; -# }; -# inherit (pkgs) mesa; -# }; + # wxpython = callPackage ./python-modules/wxpython/4.2.nix { + # wxGTK = pkgs.wxGTK32.override { + # withWebKit = true; + # }; + # inherit (pkgs) mesa; + # }; -# wyoming = callPackage ./python-modules/wyoming { }; + # wyoming = callPackage ./python-modules/wyoming { }; -# x-wr-timezone = callPackage ./python-modules/x-wr-timezone { }; + # x-wr-timezone = callPackage ./python-modules/x-wr-timezone { }; -# x11-hash = callPackage ./python-modules/x11-hash { }; + # x11-hash = callPackage ./python-modules/x11-hash { }; -# x256 = callPackage ./python-modules/x256 { }; + # x256 = callPackage ./python-modules/x256 { }; -# xapian = callPackage ./python-modules/xapian { -# inherit (pkgs) xapian; -# }; + # xapian = callPackage ./python-modules/xapian { + # inherit (pkgs) xapian; + # }; -# xapp = callPackage ./python-modules/xapp { -# inherit (pkgs.buildPackages) meson; -# inherit (pkgs) gtk3 gobject-introspection polkit; -# inherit (pkgs.cinnamon) xapp; -# }; + # xapp = callPackage ./python-modules/xapp { + # inherit (pkgs.buildPackages) meson; + # inherit (pkgs) gtk3 gobject-introspection polkit; + # inherit (pkgs.cinnamon) xapp; + # }; -# xarray = callPackage ./python-modules/xarray { }; + # xarray = callPackage ./python-modules/xarray { }; -# xarray-dataclasses = callPackage ./python-modules/xarray-dataclasses { }; + # xarray-dataclasses = callPackage ./python-modules/xarray-dataclasses { }; -# xarray-einstats = callPackage ./python-modules/xarray-einstats { }; + # xarray-einstats = callPackage ./python-modules/xarray-einstats { }; -# xattr = callPackage ./python-modules/xattr { }; + # xattr = callPackage ./python-modules/xattr { }; -# xbox-webapi = callPackage ./python-modules/xbox-webapi { }; + # xbox-webapi = callPackage ./python-modules/xbox-webapi { }; -# xboxapi = callPackage ./python-modules/xboxapi { }; + # xboxapi = callPackage ./python-modules/xboxapi { }; -# xcffib = callPackage ./python-modules/xcffib { }; + # xcffib = callPackage ./python-modules/xcffib { }; -# xdg = callPackage ./python-modules/xdg { }; + # xdg = callPackage ./python-modules/xdg { }; -# xdg-base-dirs = callPackage ./python-modules/xdg-base-dirs { }; + # xdg-base-dirs = callPackage ./python-modules/xdg-base-dirs { }; -# xdis = callPackage ./python-modules/xdis { }; + # xdis = callPackage ./python-modules/xdis { }; -# xdoctest = callPackage ./python-modules/xdoctest { }; + # xdoctest = callPackage ./python-modules/xdoctest { }; -# xdot = callPackage ./python-modules/xdot { -# inherit (pkgs) graphviz; -# }; + # xdot = callPackage ./python-modules/xdot { + # inherit (pkgs) graphviz; + # }; -# xformers = callPackage ./python-modules/xformers { }; + # xformers = callPackage ./python-modules/xformers { }; -# xgboost = callPackage ./python-modules/xgboost { -# inherit (pkgs) xgboost; -# }; + # xgboost = callPackage ./python-modules/xgboost { + # inherit (pkgs) xgboost; + # }; -# xhtml2pdf = callPackage ./python-modules/xhtml2pdf { }; + # xhtml2pdf = callPackage ./python-modules/xhtml2pdf { }; -# xiaomi-ble = callPackage ./python-modules/xiaomi-ble { }; + # xiaomi-ble = callPackage ./python-modules/xiaomi-ble { }; -# xkbcommon = callPackage ./python-modules/xkbcommon { }; + # xkbcommon = callPackage ./python-modules/xkbcommon { }; -# xkcdpass = callPackage ./python-modules/xkcdpass { }; + # xkcdpass = callPackage ./python-modules/xkcdpass { }; -# xknx = callPackage ./python-modules/xknx { }; + # xknx = callPackage ./python-modules/xknx { }; -# xknxproject = callPackage ./python-modules/xknxproject { }; + # xknxproject = callPackage ./python-modules/xknxproject { }; -# xlib = callPackage ./python-modules/xlib { }; + # xlib = callPackage ./python-modules/xlib { }; -# xlrd = callPackage ./python-modules/xlrd { }; + # xlrd = callPackage ./python-modules/xlrd { }; -# xlsx2csv = callPackage ./python-modules/xlsx2csv { }; + # xlsx2csv = callPackage ./python-modules/xlsx2csv { }; -# xlsxwriter = callPackage ./python-modules/xlsxwriter { }; + # xlsxwriter = callPackage ./python-modules/xlsxwriter { }; -# xlwt = callPackage ./python-modules/xlwt { }; + # xlwt = callPackage ./python-modules/xlwt { }; -# xmind = callPackage ./python-modules/xmind { }; + # xmind = callPackage ./python-modules/xmind { }; -# xml2rfc = callPackage ./python-modules/xml2rfc { }; + # xml2rfc = callPackage ./python-modules/xml2rfc { }; -# xmldiff = callPackage ./python-modules/xmldiff { }; + # xmldiff = callPackage ./python-modules/xmldiff { }; -# xmljson = callPackage ./python-modules/xmljson { }; + # xmljson = callPackage ./python-modules/xmljson { }; xmlschema = callPackage ./python-modules/xmlschema { }; -# xmlsec = callPackage ./python-modules/xmlsec { -# inherit (pkgs) libxslt libxml2 libtool pkg-config xmlsec; -# }; + # xmlsec = callPackage ./python-modules/xmlsec { + # inherit (pkgs) libxslt libxml2 libtool pkg-config xmlsec; + # }; -# xmltodict = callPackage ./python-modules/xmltodict { }; + # xmltodict = callPackage ./python-modules/xmltodict { }; -# xml-marshaller = callPackage ./python-modules/xml-marshaller { }; + # xml-marshaller = callPackage ./python-modules/xml-marshaller { }; -# xmod = callPackage ./python-modules/xmod { }; + # xmod = callPackage ./python-modules/xmod { }; -# xmodem = callPackage ./python-modules/xmodem { }; + # xmodem = callPackage ./python-modules/xmodem { }; -# xnatpy = callPackage ./python-modules/xnatpy { }; + # xnatpy = callPackage ./python-modules/xnatpy { }; -# xnd = callPackage ./python-modules/xnd { }; + # xnd = callPackage ./python-modules/xnd { }; -# xpath-expressions = callPackage ./python-modules/xpath-expressions { }; + # xpath-expressions = callPackage ./python-modules/xpath-expressions { }; -# xpybutil = callPackage ./python-modules/xpybutil { }; + # xpybutil = callPackage ./python-modules/xpybutil { }; -# xrootd = callPackage ./python-modules/xrootd { -# inherit (pkgs) xrootd; -# }; + # xrootd = callPackage ./python-modules/xrootd { + # inherit (pkgs) xrootd; + # }; -# xsdata = callPackage ./python-modules/xsdata { }; + # xsdata = callPackage ./python-modules/xsdata { }; -# xstatic-asciinema-player = callPackage ./python-modules/xstatic-asciinema-player { }; + # xstatic-asciinema-player = callPackage ./python-modules/xstatic-asciinema-player { }; -# xstatic-bootbox = callPackage ./python-modules/xstatic-bootbox { }; + # xstatic-bootbox = callPackage ./python-modules/xstatic-bootbox { }; -# xstatic-bootstrap = callPackage ./python-modules/xstatic-bootstrap { }; + # xstatic-bootstrap = callPackage ./python-modules/xstatic-bootstrap { }; -# xstatic = callPackage ./python-modules/xstatic { }; + # xstatic = callPackage ./python-modules/xstatic { }; -# xstatic-font-awesome = callPackage ./python-modules/xstatic-font-awesome { }; + # xstatic-font-awesome = callPackage ./python-modules/xstatic-font-awesome { }; -# xstatic-jquery = callPackage ./python-modules/xstatic-jquery { }; + # xstatic-jquery = callPackage ./python-modules/xstatic-jquery { }; -# xstatic-jquery-file-upload = callPackage ./python-modules/xstatic-jquery-file-upload { }; + # xstatic-jquery-file-upload = callPackage ./python-modules/xstatic-jquery-file-upload { }; -# xstatic-jquery-ui = callPackage ./python-modules/xstatic-jquery-ui { }; + # xstatic-jquery-ui = callPackage ./python-modules/xstatic-jquery-ui { }; -# xstatic-pygments = callPackage ./python-modules/xstatic-pygments { }; + # xstatic-pygments = callPackage ./python-modules/xstatic-pygments { }; -# xtensor-python = callPackage ./python-modules/xtensor-python { }; + # xtensor-python = callPackage ./python-modules/xtensor-python { }; -# xvfbwrapper = callPackage ./python-modules/xvfbwrapper { -# inherit (pkgs.xorg) xorgserver; -# }; + # xvfbwrapper = callPackage ./python-modules/xvfbwrapper { + # inherit (pkgs.xorg) xorgserver; + # }; -# xxhash = callPackage ./python-modules/xxhash { }; + # xxhash = callPackage ./python-modules/xxhash { }; -# xdxf2html = callPackage ./python-modules/xdxf2html { }; + # xdxf2html = callPackage ./python-modules/xdxf2html { }; -# xyzservices = callPackage ./python-modules/xyzservices { }; + # xyzservices = callPackage ./python-modules/xyzservices { }; -# y-py = callPackage ./python-modules/y-py { }; + # y-py = callPackage ./python-modules/y-py { }; -# yabadaba = callPackage ./python-modules/yabadaba { }; + # yabadaba = callPackage ./python-modules/yabadaba { }; -# yahooweather = callPackage ./python-modules/yahooweather { }; + # yahooweather = callPackage ./python-modules/yahooweather { }; -# yalesmartalarmclient = callPackage ./python-modules/yalesmartalarmclient { }; + # yalesmartalarmclient = callPackage ./python-modules/yalesmartalarmclient { }; -# yalexs = callPackage ./python-modules/yalexs { }; + # yalexs = callPackage ./python-modules/yalexs { }; -# yalexs-ble = callPackage ./python-modules/yalexs-ble { }; + # yalexs-ble = callPackage ./python-modules/yalexs-ble { }; -# yamale = callPackage ./python-modules/yamale { }; + # yamale = callPackage ./python-modules/yamale { }; -# yamlfix = callPackage ./python-modules/yamlfix { }; + # yamlfix = callPackage ./python-modules/yamlfix { }; -# yamllint = callPackage ./python-modules/yamllint { }; + # yamllint = callPackage ./python-modules/yamllint { }; -# yamlloader = callPackage ./python-modules/yamlloader { }; + # yamlloader = callPackage ./python-modules/yamlloader { }; -# yamlordereddictloader = callPackage ./python-modules/yamlordereddictloader { }; + # yamlordereddictloader = callPackage ./python-modules/yamlordereddictloader { }; -# yanc = callPackage ./python-modules/yanc { }; + # yanc = callPackage ./python-modules/yanc { }; -# yangson = callPackage ./python-modules/yangson { }; + # yangson = callPackage ./python-modules/yangson { }; -# yapf = callPackage ./python-modules/yapf { }; + # yapf = callPackage ./python-modules/yapf { }; -# yappi = callPackage ./python-modules/yappi { }; + # yappi = callPackage ./python-modules/yappi { }; -# yapsy = callPackage ./python-modules/yapsy { }; + # yapsy = callPackage ./python-modules/yapsy { }; -# yara-python = callPackage ./python-modules/yara-python { }; + # yara-python = callPackage ./python-modules/yara-python { }; -# yaramod = callPackage ./python-modules/yaramod { }; + # yaramod = callPackage ./python-modules/yaramod { }; -# yarg = callPackage ./python-modules/yarg { }; + # yarg = callPackage ./python-modules/yarg { }; -# yargy = callPackage ./python-modules/yargy { }; + # yargy = callPackage ./python-modules/yargy { }; -# yark = callPackage ./python-modules/yark { }; + # yark = callPackage ./python-modules/yark { }; -# yarl = callPackage ./python-modules/yarl { }; + # yarl = callPackage ./python-modules/yarl { }; -# yasi = callPackage ./python-modules/yasi { }; + # yasi = callPackage ./python-modules/yasi { }; -# yaspin = callPackage ./python-modules/yaspin { }; + # yaspin = callPackage ./python-modules/yaspin { }; -# yaswfp = callPackage ./python-modules/yaswfp { }; + # yaswfp = callPackage ./python-modules/yaswfp { }; -# yattag = callPackage ./python-modules/yattag { }; + # yattag = callPackage ./python-modules/yattag { }; -# yacs = callPackage ./python-modules/yacs { }; + # yacs = callPackage ./python-modules/yacs { }; -# ydiff = callPackage ./python-modules/ydiff { }; + # ydiff = callPackage ./python-modules/ydiff { }; -# yeelight = callPackage ./python-modules/yeelight { }; + # yeelight = callPackage ./python-modules/yeelight { }; -# yfinance = callPackage ./python-modules/yfinance { }; + # yfinance = callPackage ./python-modules/yfinance { }; -# yoda = toPythonModule (pkgs.yoda.override { inherit python; }); + # yoda = toPythonModule (pkgs.yoda.override { inherit python; }); -# yolink-api = callPackage ./python-modules/yolink-api { }; + # yolink-api = callPackage ./python-modules/yolink-api { }; -# yosys = toPythonModule (pkgs.yosys.override { -# python3 = python; -# }); + # yosys = toPythonModule (pkgs.yosys.override { + # python3 = python; + # }); -# youless-api = callPackage ./python-modules/youless-api { }; + # youless-api = callPackage ./python-modules/youless-api { }; -# youseedee = callPackage ./python-modules/youseedee { }; + # youseedee = callPackage ./python-modules/youseedee { }; -# youtokentome = callPackage ./python-modules/youtokentome { }; + # youtokentome = callPackage ./python-modules/youtokentome { }; -# youtube-dl = callPackage ../tools/misc/youtube-dl { }; + # youtube-dl = callPackage ../tools/misc/youtube-dl { }; -# youtube-dl-light = callPackage ../tools/misc/youtube-dl { -# ffmpegSupport = false; -# }; + # youtube-dl-light = callPackage ../tools/misc/youtube-dl { + # ffmpegSupport = false; + # }; -# youtubeaio = callPackage ./python-modules/youtubeaio { }; + # youtubeaio = callPackage ./python-modules/youtubeaio { }; -# yoyo-migrations = callPackage ./python-modules/yoyo-migrations { }; + # yoyo-migrations = callPackage ./python-modules/yoyo-migrations { }; -# yt-dlp = callPackage ../tools/misc/yt-dlp { -# ffmpeg = pkgs.ffmpeg-headless; -# }; + # yt-dlp = callPackage ../tools/misc/yt-dlp { + # ffmpeg = pkgs.ffmpeg-headless; + # }; -# yt-dlp-light = callPackage ../tools/misc/yt-dlp { -# atomicparsleySupport = false; -# ffmpegSupport = false; -# rtmpSupport = false; -# }; + # yt-dlp-light = callPackage ../tools/misc/yt-dlp { + # atomicparsleySupport = false; + # ffmpegSupport = false; + # rtmpSupport = false; + # }; -# youtube-search = callPackage ./python-modules/youtube-search { }; + # youtube-search = callPackage ./python-modules/youtube-search { }; -# youtube-search-python = callPackage ./python-modules/youtube-search-python { }; + # youtube-search-python = callPackage ./python-modules/youtube-search-python { }; -# youtube-transcript-api = callPackage ./python-modules/youtube-transcript-api { }; + # youtube-transcript-api = callPackage ./python-modules/youtube-transcript-api { }; -# yowsup = callPackage ./python-modules/yowsup { }; + # yowsup = callPackage ./python-modules/yowsup { }; -# ypy-websocket = callPackage ./python-modules/ypy-websocket { }; + # ypy-websocket = callPackage ./python-modules/ypy-websocket { }; -# yq = callPackage ./python-modules/yq { -# inherit (pkgs) jq; -# }; + # yq = callPackage ./python-modules/yq { + # inherit (pkgs) jq; + # }; -# yte = callPackage ./python-modules/yte { }; + # yte = callPackage ./python-modules/yte { }; -# ytmusicapi = callPackage ./python-modules/ytmusicapi { }; + # ytmusicapi = callPackage ./python-modules/ytmusicapi { }; -# yubico = callPackage ./python-modules/yubico { }; + # yubico = callPackage ./python-modules/yubico { }; -# yubico-client = callPackage ./python-modules/yubico-client { }; + # yubico-client = callPackage ./python-modules/yubico-client { }; -# z3c-checkversions = callPackage ./python-modules/z3c-checkversions { }; + # z3c-checkversions = callPackage ./python-modules/z3c-checkversions { }; -# z3-solver = (toPythonModule ((pkgs.z3.override { -# inherit python; -# }).overrideAttrs (_: { -# pname = "z3-solver"; -# }))).python; + # z3-solver = (toPythonModule ((pkgs.z3.override { + # inherit python; + # }).overrideAttrs (_: { + # pname = "z3-solver"; + # }))).python; -# zadnegoale = callPackage ./python-modules/zadnegoale { }; + # zadnegoale = callPackage ./python-modules/zadnegoale { }; -# zamg = callPackage ./python-modules/zamg { }; + # zamg = callPackage ./python-modules/zamg { }; -# zarr = callPackage ./python-modules/zarr { }; + # zarr = callPackage ./python-modules/zarr { }; -# zc-buildout = callPackage ./python-modules/buildout { }; + # zc-buildout = callPackage ./python-modules/buildout { }; -# zc-lockfile = callPackage ./python-modules/zc-lockfile { }; + # zc-lockfile = callPackage ./python-modules/zc-lockfile { }; -# zcbor = callPackage ./python-modules/zcbor { }; + # zcbor = callPackage ./python-modules/zcbor { }; -# zconfig = callPackage ./python-modules/zconfig { }; + # zconfig = callPackage ./python-modules/zconfig { }; -# zcs = callPackage ./python-modules/zcs { }; + # zcs = callPackage ./python-modules/zcs { }; -# zdaemon = callPackage ./python-modules/zdaemon { }; + # zdaemon = callPackage ./python-modules/zdaemon { }; -# zeek = (toPythonModule (pkgs.zeek.broker.override { -# python3 = python; -# })).py; + # zeek = (toPythonModule (pkgs.zeek.broker.override { + # python3 = python; + # })).py; -# zeep = callPackage ./python-modules/zeep { }; + # zeep = callPackage ./python-modules/zeep { }; -# zeitgeist = (toPythonModule (pkgs.zeitgeist.override { -# python3 = python; -# })).py; + # zeitgeist = (toPythonModule (pkgs.zeitgeist.override { + # python3 = python; + # })).py; -# zephyr-python-api = callPackage ./python-modules/zephyr-python-api { }; + # zephyr-python-api = callPackage ./python-modules/zephyr-python-api { }; -# zeroc-ice = callPackage ./python-modules/zeroc-ice { }; + # zeroc-ice = callPackage ./python-modules/zeroc-ice { }; -# zeroconf = callPackage ./python-modules/zeroconf { }; + # zeroconf = callPackage ./python-modules/zeroconf { }; -# zerorpc = callPackage ./python-modules/zerorpc { }; + # zerorpc = callPackage ./python-modules/zerorpc { }; -# zetup = callPackage ./python-modules/zetup { }; + # zetup = callPackage ./python-modules/zetup { }; -# zeversolarlocal = callPackage ./python-modules/zeversolarlocal { }; + # zeversolarlocal = callPackage ./python-modules/zeversolarlocal { }; -# zfec = callPackage ./python-modules/zfec { }; + # zfec = callPackage ./python-modules/zfec { }; -# zha = callPackage ./python-modules/zha { }; + # zha = callPackage ./python-modules/zha { }; -# zha-quirks = callPackage ./python-modules/zha-quirks { }; + # zha-quirks = callPackage ./python-modules/zha-quirks { }; -# ziafont = callPackage ./python-modules/ziafont { }; + # ziafont = callPackage ./python-modules/ziafont { }; -# ziamath = callPackage ./python-modules/ziamath { }; + # ziamath = callPackage ./python-modules/ziamath { }; -# zict = callPackage ./python-modules/zict { }; + # zict = callPackage ./python-modules/zict { }; -# zigpy = callPackage ./python-modules/zigpy { }; + # zigpy = callPackage ./python-modules/zigpy { }; -# zigpy-cc = callPackage ./python-modules/zigpy-cc { }; + # zigpy-cc = callPackage ./python-modules/zigpy-cc { }; -# zigpy-deconz = callPackage ./python-modules/zigpy-deconz { }; + # zigpy-deconz = callPackage ./python-modules/zigpy-deconz { }; -# zigpy-xbee = callPackage ./python-modules/zigpy-xbee { }; + # zigpy-xbee = callPackage ./python-modules/zigpy-xbee { }; -# zigpy-zigate = callPackage ./python-modules/zigpy-zigate { }; + # zigpy-zigate = callPackage ./python-modules/zigpy-zigate { }; -# zigpy-znp = callPackage ./python-modules/zigpy-znp { }; + # zigpy-znp = callPackage ./python-modules/zigpy-znp { }; -# zimports = callPackage ./python-modules/zimports { }; + # zimports = callPackage ./python-modules/zimports { }; -# zipfile2 = callPackage ./python-modules/zipfile2 { }; + # zipfile2 = callPackage ./python-modules/zipfile2 { }; zipp = callPackage ./python-modules/zipp { }; -# zipstream = callPackage ./python-modules/zipstream { }; + # zipstream = callPackage ./python-modules/zipstream { }; -# zipstream-ng = callPackage ./python-modules/zipstream-ng { }; + # zipstream-ng = callPackage ./python-modules/zipstream-ng { }; -# zlib-ng = callPackage ./python-modules/zlib-ng { -# inherit (pkgs) zlib-ng; -# }; + # zlib-ng = callPackage ./python-modules/zlib-ng { + # inherit (pkgs) zlib-ng; + # }; -# zm-py = callPackage ./python-modules/zm-py { }; + # zm-py = callPackage ./python-modules/zm-py { }; -# zodb = callPackage ./python-modules/zodb { }; + # zodb = callPackage ./python-modules/zodb { }; -# zodbpickle = callPackage ./python-modules/zodbpickle { }; + # zodbpickle = callPackage ./python-modules/zodbpickle { }; -# zope-cachedescriptors = callPackage ./python-modules/zope-cachedescriptors { }; + # zope-cachedescriptors = callPackage ./python-modules/zope-cachedescriptors { }; -# zope-component = callPackage ./python-modules/zope-component { }; + # zope-component = callPackage ./python-modules/zope-component { }; -# zope-configuration = callPackage ./python-modules/zope-configuration { }; + # zope-configuration = callPackage ./python-modules/zope-configuration { }; -# zope-contenttype = callPackage ./python-modules/zope-contenttype { }; + # zope-contenttype = callPackage ./python-modules/zope-contenttype { }; -# zope-copy = callPackage ./python-modules/zope-copy { }; + # zope-copy = callPackage ./python-modules/zope-copy { }; -# zope-deferredimport = callPackage ./python-modules/zope-deferredimport { }; + # zope-deferredimport = callPackage ./python-modules/zope-deferredimport { }; -# zope-deprecation = callPackage ./python-modules/zope-deprecation { }; + # zope-deprecation = callPackage ./python-modules/zope-deprecation { }; -# zope-dottedname = callPackage ./python-modules/zope-dottedname { }; + # zope-dottedname = callPackage ./python-modules/zope-dottedname { }; zope-event = callPackage ./python-modules/zope-event { }; -# zope-exceptions = callPackage ./python-modules/zope-exceptions { }; + # zope-exceptions = callPackage ./python-modules/zope-exceptions { }; -# zope-filerepresentation = callPackage ./python-modules/zope-filerepresentation { }; + # zope-filerepresentation = callPackage ./python-modules/zope-filerepresentation { }; -# zope-hookable = callPackage ./python-modules/zope-hookable { }; + # zope-hookable = callPackage ./python-modules/zope-hookable { }; -# zope-i18nmessageid = callPackage ./python-modules/zope-i18nmessageid { }; + # zope-i18nmessageid = callPackage ./python-modules/zope-i18nmessageid { }; zope-interface = callPackage ./python-modules/zope-interface { }; -# zope-lifecycleevent = callPackage ./python-modules/zope-lifecycleevent { }; + # zope-lifecycleevent = callPackage ./python-modules/zope-lifecycleevent { }; -# zope-location = callPackage ./python-modules/zope-location { }; + # zope-location = callPackage ./python-modules/zope-location { }; -# zope-proxy = callPackage ./python-modules/zope-proxy { }; + # zope-proxy = callPackage ./python-modules/zope-proxy { }; -# zope-schema = callPackage ./python-modules/zope-schema { }; + # zope-schema = callPackage ./python-modules/zope-schema { }; -# zope-size = callPackage ./python-modules/zope-size { }; + # zope-size = callPackage ./python-modules/zope-size { }; -# zope-testbrowser = callPackage ./python-modules/zope-testbrowser { }; + # zope-testbrowser = callPackage ./python-modules/zope-testbrowser { }; -# zope-testing = callPackage ./python-modules/zope-testing { }; + # zope-testing = callPackage ./python-modules/zope-testing { }; -# zope-testrunner = callPackage ./python-modules/zope-testrunner { }; + # zope-testrunner = callPackage ./python-modules/zope-testrunner { }; -# zopfli = callPackage ./python-modules/zopfli { -# inherit (pkgs) zopfli; -# }; + # zopfli = callPackage ./python-modules/zopfli { + # inherit (pkgs) zopfli; + # }; -# zstandard = callPackage ./python-modules/zstandard { }; + # zstandard = callPackage ./python-modules/zstandard { }; -# zstd = callPackage ./python-modules/zstd { -# inherit (pkgs) zstd; -# }; + # zstd = callPackage ./python-modules/zstd { + # inherit (pkgs) zstd; + # }; -# zulip = callPackage ./python-modules/zulip { }; + # zulip = callPackage ./python-modules/zulip { }; -# zwave-me-ws = callPackage ./python-modules/zwave-me-ws { }; + # zwave-me-ws = callPackage ./python-modules/zwave-me-ws { }; -# zwave-js-server-python = callPackage ./python-modules/zwave-js-server-python { }; + # zwave-js-server-python = callPackage ./python-modules/zwave-js-server-python { }; -# zxcvbn = callPackage ./python-modules/zxcvbn { }; + # zxcvbn = callPackage ./python-modules/zxcvbn { }; -# zxing-cpp = callPackage ./python-modules/zxing-cpp { -# libzxing-cpp = pkgs.zxing-cpp; -# }; + # zxing-cpp = callPackage ./python-modules/zxing-cpp { + # libzxing-cpp = pkgs.zxing-cpp; + # }; } diff --git a/pkgs/by-name/py/python/python2-packages.nix b/pkgs/by-name/py/python/python2-packages.nix index fbf63a3..10f8ca4 100644 --- a/pkgs/by-name/py/python/python2-packages.nix +++ b/pkgs/by-name/py/python/python2-packages.nix @@ -4,7 +4,9 @@ self: super: -with self; with super; { +with self; +with super; +{ # attrs = callPackage ./python2-modules/attrs { }; # backports-functools-lru-cache = callPackage ./python2-modules/backports-functools-lru-cache { }; diff --git a/pkgs/by-name/py/python/python2/mk-python-derivation.nix b/pkgs/by-name/py/python/python2/mk-python-derivation.nix index 1a6f9c7..3830b83 100644 --- a/pkgs/by-name/py/python/python2/mk-python-derivation.nix +++ b/pkgs/by-name/py/python/python2/mk-python-derivation.nix @@ -1,250 +1,294 @@ # Generic builder only used for EOL and deprecated Python 2. -{ lib -, config -, python -, wrapPython -, unzip -, ensureNewerSourcesForZipFilesHook -# Whether the derivation provides a Python module or not. -, toPythonModule -, namePrefix -, update-python-libraries -, setuptools -, pipBuildHook -, pipInstallHook -, pythonCatchConflictsHook -, pythonImportsCheckHook -, pythonOutputDistHook -, pythonRemoveBinBytecodeHook -, pythonRemoveTestsDirHook -, setuptoolsBuildHook -, setuptoolsCheckHook -, wheelUnpackHook -, eggUnpackHook -, eggBuildHook -, eggInstallHook +{ + lib, + config, + python, + wrapPython, + unzip, + ensureNewerSourcesForZipFilesHook, + # Whether the derivation provides a Python module or not. + toPythonModule, + namePrefix, + update-python-libraries, + setuptools, + pipBuildHook, + pipInstallHook, + pythonCatchConflictsHook, + pythonImportsCheckHook, + pythonOutputDistHook, + pythonRemoveBinBytecodeHook, + pythonRemoveTestsDirHook, + setuptoolsBuildHook, + setuptoolsCheckHook, + wheelUnpackHook, + eggUnpackHook, + eggBuildHook, + eggInstallHook, }: -{ name ? "${attrs.pname}-${attrs.version}" +{ + name ? "${attrs.pname}-${attrs.version}", -# Build-time dependencies for the package -, nativeBuildInputs ? [] + # Build-time dependencies for the package + nativeBuildInputs ? [ ], -# Run-time dependencies for the package -, buildInputs ? [] + # Run-time dependencies for the package + buildInputs ? [ ], -# Dependencies needed for running the checkPhase. -# These are added to buildInputs when doCheck = true. -, checkInputs ? [] -, nativeCheckInputs ? [] + # Dependencies needed for running the checkPhase. + # These are added to buildInputs when doCheck = true. + checkInputs ? [ ], + nativeCheckInputs ? [ ], -# propagate build dependencies so in case we have A -> B -> C, -# C can import package A propagated by B -, propagatedBuildInputs ? [] + # propagate build dependencies so in case we have A -> B -> C, + # C can import package A propagated by B + propagatedBuildInputs ? [ ], -# DEPRECATED: use propagatedBuildInputs -, pythonPath ? [] + # DEPRECATED: use propagatedBuildInputs + pythonPath ? [ ], -# Enabled to detect some (native)BuildInputs mistakes -, strictDeps ? true + # Enabled to detect some (native)BuildInputs mistakes + strictDeps ? true, -, outputs ? [ "out" ] + outputs ? [ "out" ], -# used to disable derivation, useful for specific python versions -, disabled ? false + # used to disable derivation, useful for specific python versions + disabled ? false, -# Raise an error if two packages are installed with the same name -# TODO: For cross we probably need a different PYTHONPATH, or not -# add the runtime deps until after buildPhase. -, catchConflicts ? (python.stdenv.hostPlatform == python.stdenv.buildPlatform) + # Raise an error if two packages are installed with the same name + # TODO: For cross we probably need a different PYTHONPATH, or not + # add the runtime deps until after buildPhase. + catchConflicts ? (python.stdenv.hostPlatform == python.stdenv.buildPlatform), -# Additional arguments to pass to the makeWrapper function, which wraps -# generated binaries. -, makeWrapperArgs ? [] + # Additional arguments to pass to the makeWrapper function, which wraps + # generated binaries. + makeWrapperArgs ? [ ], -# Skip wrapping of python programs altogether -, dontWrapPythonPrograms ? false + # Skip wrapping of python programs altogether + dontWrapPythonPrograms ? false, -# Don't use Pip to install a wheel -# Note this is actually a variable for the pipInstallPhase in pip's setupHook. -# It's included here to prevent an infinite recursion. -, dontUsePipInstall ? false + # Don't use Pip to install a wheel + # Note this is actually a variable for the pipInstallPhase in pip's setupHook. + # It's included here to prevent an infinite recursion. + dontUsePipInstall ? false, -# Skip setting the PYTHONNOUSERSITE environment variable in wrapped programs -, permitUserSite ? false + # Skip setting the PYTHONNOUSERSITE environment variable in wrapped programs + permitUserSite ? false, -# Remove bytecode from bin folder. -# When a Python script has the extension `.py`, bytecode is generated -# Typically, executables in bin have no extension, so no bytecode is generated. -# However, some packages do provide executables with extensions, and thus bytecode is generated. -, removeBinBytecode ? true + # Remove bytecode from bin folder. + # When a Python script has the extension `.py`, bytecode is generated + # Typically, executables in bin have no extension, so no bytecode is generated. + # However, some packages do provide executables with extensions, and thus bytecode is generated. + removeBinBytecode ? true, -# Several package formats are supported. -# "setuptools" : Install a common setuptools/distutils based package. This builds a wheel. -# "wheel" : Install from a pre-compiled wheel. -# "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel. -# "egg": Install a package from an egg. -# "other" : Provide your own buildPhase and installPhase. -, format ? "setuptools" + # Several package formats are supported. + # "setuptools" : Install a common setuptools/distutils based package. This builds a wheel. + # "wheel" : Install from a pre-compiled wheel. + # "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel. + # "egg": Install a package from an egg. + # "other" : Provide your own buildPhase and installPhase. + format ? "setuptools", -, meta ? {} + meta ? { }, -, passthru ? {} + passthru ? { }, -, doCheck ? config.doCheckByDefault or false + doCheck ? config.doCheckByDefault or false, -, disabledTestPaths ? [] + disabledTestPaths ? [ ], -, ... } @ attrs: + ... +}@attrs: let inherit (python) stdenv; - withDistOutput = lib.elem format ["pyproject" "setuptools" "wheel"]; + withDistOutput = lib.elem format [ + "pyproject" + "setuptools" + "wheel" + ]; name_ = name; - validatePythonMatches = attrName: let - isPythonModule = drv: - # all pythonModules have the pythonModule attribute - (drv ? "pythonModule") - # Some pythonModules are turned in to a pythonApplication by setting the field to false - && (!builtins.isBool drv.pythonModule); - isMismatchedPython = drv: drv.pythonModule != python; + validatePythonMatches = + attrName: + let + isPythonModule = + drv: + # all pythonModules have the pythonModule attribute + (drv ? "pythonModule") + # Some pythonModules are turned in to a pythonApplication by setting the field to false + && (!builtins.isBool drv.pythonModule); + isMismatchedPython = drv: drv.pythonModule != python; - optionalLocation = let - pos = builtins.unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs; - in lib.optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}"; + optionalLocation = + let + pos = builtins.unsafeGetAttrPos (if attrs ? "pname" then "pname" else "name") attrs; + in + lib.optionalString (pos != null) " at ${pos.file}:${toString pos.line}:${toString pos.column}"; - leftPadName = name: against: let - len = lib.max (lib.stringLength name) (lib.stringLength against); - in lib.strings.fixedWidthString len " " name; + leftPadName = + name: against: + let + len = lib.max (lib.stringLength name) (lib.stringLength against); + in + lib.strings.fixedWidthString len " " name; - throwMismatch = drv: let - myName = "'${namePrefix}${name}'"; - theirName = "'${drv.name}'"; - in throw '' - Python version mismatch in ${myName}: + throwMismatch = + drv: + let + myName = "'${namePrefix}${name}'"; + theirName = "'${drv.name}'"; + in + throw '' + Python version mismatch in ${myName}: - The Python derivation ${myName} depends on a Python derivation - named ${theirName}, but the two derivations use different versions - of Python: + The Python derivation ${myName} depends on a Python derivation + named ${theirName}, but the two derivations use different versions + of Python: - ${leftPadName myName theirName} uses ${python} - ${leftPadName theirName myName} uses ${toString drv.pythonModule} + ${leftPadName myName theirName} uses ${python} + ${leftPadName theirName myName} uses ${toString drv.pythonModule} - Possible solutions: + Possible solutions: - * If ${theirName} is a Python library, change the reference to ${theirName} - in the ${attrName} of ${myName} to use a ${theirName} built from the same - version of Python + * If ${theirName} is a Python library, change the reference to ${theirName} + in the ${attrName} of ${myName} to use a ${theirName} built from the same + version of Python - * If ${theirName} is used as a tool during the build, move the reference to - ${theirName} in ${myName} from ${attrName} to nativeBuildInputs + * If ${theirName} is used as a tool during the build, move the reference to + ${theirName} in ${myName} from ${attrName} to nativeBuildInputs - * If ${theirName} provides executables that are called at run time, pass its - bin path to makeWrapperArgs: + * If ${theirName} provides executables that are called at run time, pass its + bin path to makeWrapperArgs: - makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${lib.getName drv } ] }" ]; + makeWrapperArgs = [ "--prefix PATH : ''${lib.makeBinPath [ ${lib.getName drv} ] }" ]; - ${optionalLocation} - ''; + ${optionalLocation} + ''; - checkDrv = drv: - if (isPythonModule drv) && (isMismatchedPython drv) - then throwMismatch drv - else drv; + checkDrv = drv: if (isPythonModule drv) && (isMismatchedPython drv) then throwMismatch drv else drv; - in inputs: builtins.map (checkDrv) inputs; + in + inputs: builtins.map (checkDrv) inputs; # Keep extra attributes from `attrs`, e.g., `patchPhase', etc. - self = toPythonModule (stdenv.mkDerivation ((builtins.removeAttrs attrs [ - "disabled" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format" - "disabledTestPaths" "outputs" - ]) // { + self = toPythonModule ( + stdenv.mkDerivation ( + (builtins.removeAttrs attrs [ + "disabled" + "checkPhase" + "checkInputs" + "nativeCheckInputs" + "doCheck" + "doInstallCheck" + "dontWrapPythonPrograms" + "catchConflicts" + "format" + "disabledTestPaths" + "outputs" + ]) + // { - name = namePrefix + name_; + name = namePrefix + name_; - nativeBuildInputs = [ - python - wrapPython - ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, ...)? - pythonRemoveTestsDirHook - ] ++ lib.optionals catchConflicts [ - pythonCatchConflictsHook - ] ++ lib.optionals removeBinBytecode [ - pythonRemoveBinBytecodeHook - ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [ - unzip - ] ++ lib.optionals (format == "setuptools") [ - setuptoolsBuildHook - ] ++ lib.optionals (format == "pyproject") [( - pipBuildHook - )] ++ lib.optionals (format == "wheel") [ - wheelUnpackHook - ] ++ lib.optionals (format == "egg") [ - eggUnpackHook eggBuildHook eggInstallHook - ] ++ lib.optionals (format != "other") [( - pipInstallHook - )] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ - # This is a test, however, it should be ran independent of the checkPhase and checkInputs - pythonImportsCheckHook - ] ++ lib.optionals withDistOutput [ - pythonOutputDistHook - ] ++ nativeBuildInputs; + nativeBuildInputs = + [ + python + wrapPython + ensureNewerSourcesForZipFilesHook # move to wheel installer (pip) or builder (setuptools, ...)? + pythonRemoveTestsDirHook + ] + ++ lib.optionals catchConflicts [ pythonCatchConflictsHook ] + ++ lib.optionals removeBinBytecode [ pythonRemoveBinBytecodeHook ] + ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [ unzip ] + ++ lib.optionals (format == "setuptools") [ setuptoolsBuildHook ] + ++ lib.optionals (format == "pyproject") [ (pipBuildHook) ] + ++ lib.optionals (format == "wheel") [ wheelUnpackHook ] + ++ lib.optionals (format == "egg") [ + eggUnpackHook + eggBuildHook + eggInstallHook + ] + ++ lib.optionals (format != "other") [ (pipInstallHook) ] + ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ + # This is a test, however, it should be ran independent of the checkPhase and checkInputs + pythonImportsCheckHook + ] + ++ lib.optionals withDistOutput [ pythonOutputDistHook ] + ++ nativeBuildInputs; - buildInputs = validatePythonMatches "buildInputs" (buildInputs ++ pythonPath); + buildInputs = validatePythonMatches "buildInputs" (buildInputs ++ pythonPath); - propagatedBuildInputs = validatePythonMatches "propagatedBuildInputs" (propagatedBuildInputs ++ [ - # we propagate python even for packages transformed with 'toPythonApplication' - # this pollutes the PATH but avoids rebuilds - # see https://github.com/NixOS/nixpkgs/issues/170887 for more context - python - ]); + propagatedBuildInputs = validatePythonMatches "propagatedBuildInputs" ( + propagatedBuildInputs + ++ [ + # we propagate python even for packages transformed with 'toPythonApplication' + # this pollutes the PATH but avoids rebuilds + # see https://github.com/NixOS/nixpkgs/issues/170887 for more context + python + ] + ); - inherit strictDeps; + inherit strictDeps; - LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8"; + LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8"; - # Python packages don't have a checkPhase, only an installCheckPhase - doCheck = false; - doInstallCheck = attrs.doCheck or true; - nativeInstallCheckInputs = [ - ] ++ lib.optionals (format == "setuptools") [ - # Longer-term we should get rid of this and require - # users of this function to set the `installCheckPhase` or - # pass in a hook that sets it. - setuptoolsCheckHook - ] ++ nativeCheckInputs; - installCheckInputs = checkInputs; + # Python packages don't have a checkPhase, only an installCheckPhase + doCheck = false; + doInstallCheck = attrs.doCheck or true; + nativeInstallCheckInputs = + [ ] + ++ lib.optionals (format == "setuptools") [ + # Longer-term we should get rid of this and require + # users of this function to set the `installCheckPhase` or + # pass in a hook that sets it. + setuptoolsCheckHook + ] + ++ nativeCheckInputs; + installCheckInputs = checkInputs; - postFixup = lib.optionalString (!dontWrapPythonPrograms) '' - wrapPythonPrograms - '' + attrs.postFixup or ""; + postFixup = + lib.optionalString (!dontWrapPythonPrograms) '' + wrapPythonPrograms + '' + + attrs.postFixup or ""; - # Python packages built through cross-compilation are always for the host platform. - disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ]; + # Python packages built through cross-compilation are always for the host platform. + disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ + python.pythonOnBuildForHost + ]; - outputs = outputs ++ lib.optional withDistOutput "dist"; + outputs = outputs ++ lib.optional withDistOutput "dist"; - meta = { - # default to python's platforms - platforms = python.meta.platforms; - isBuildPythonPackage = python.meta.platforms; - } // meta; - } // lib.optionalAttrs (attrs?checkPhase) { - # If given use the specified checkPhase, otherwise use the setup hook. - # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`. - installCheckPhase = attrs.checkPhase; - } // lib.optionalAttrs (disabledTestPaths != []) { - disabledTestPaths = lib.escapeShellArgs disabledTestPaths; - })); + meta = { + # default to python's platforms + platforms = python.meta.platforms; + isBuildPythonPackage = python.meta.platforms; + } // meta; + } + // lib.optionalAttrs (attrs ? checkPhase) { + # If given use the specified checkPhase, otherwise use the setup hook. + # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`. + installCheckPhase = attrs.checkPhase; + } + // lib.optionalAttrs (disabledTestPaths != [ ]) { + disabledTestPaths = lib.escapeShellArgs disabledTestPaths; + } + ) + ); - passthru.updateScript = let + passthru.updateScript = + let filename = builtins.head (lib.splitString ":" self.meta.position); - in attrs.passthru.updateScript or [ update-python-libraries filename ]; -in lib.extendDerivation - (disabled -> throw "${name} not supported for interpreter ${python.executable}") - passthru - self + in + attrs.passthru.updateScript or [ + update-python-libraries + filename + ]; +in +lib.extendDerivation ( + disabled -> throw "${name} not supported for interpreter ${python.executable}" +) passthru self diff --git a/pkgs/by-name/py/python/rustpython/default.nix b/pkgs/by-name/py/python/rustpython/default.nix index 3d10ab3..ac1d5fd 100644 --- a/pkgs/by-name/py/python/rustpython/default.nix +++ b/pkgs/by-name/py/python/rustpython/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, rustPlatform -, fetchFromGitHub -, SystemConfiguration -, python3 +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + SystemConfiguration, + python3, }: rustPlatform.buildRustPackage rec { diff --git a/pkgs/by-name/py/python/setup-hook.nix b/pkgs/by-name/py/python/setup-hook.nix index 8cfb9dd..3640484 100644 --- a/pkgs/by-name/py/python/setup-hook.nix +++ b/pkgs/by-name/py/python/setup-hook.nix @@ -4,13 +4,16 @@ sitePackages: let hook = ./setup-hook.sh; -in runCommand "python-setup-hook.sh" { - strictDeps = true; - env = { - inherit sitePackages; - }; -} '' - cp ${hook} hook.sh - substituteAllInPlace hook.sh - mv hook.sh $out -'' +in +runCommand "python-setup-hook.sh" + { + strictDeps = true; + env = { + inherit sitePackages; + }; + } + '' + cp ${hook} hook.sh + substituteAllInPlace hook.sh + mv hook.sh $out + '' diff --git a/pkgs/by-name/py/python/tests.nix b/pkgs/by-name/py/python/tests.nix index 2cd29ca..44ef821 100644 --- a/pkgs/by-name/py/python/tests.nix +++ b/pkgs/by-name/py/python/tests.nix @@ -5,191 +5,215 @@ # # $ nix-build -A python3.tests # -{ stdenv -, python -, runCommand -, lib -, callPackage -, pkgs +{ + stdenv, + python, + runCommand, + lib, + callPackage, + pkgs, }: let # Test whether the interpreter behaves in the different types of environments # we aim to support. - environmentTests = let - envs = let - inherit python; - pythonEnv = python.withPackages(ps: with ps; [ ]); - pythonVirtualEnv = if python.isPy3k - then - python.withPackages(ps: with ps; [ virtualenv ]) - else - python.buildEnv.override { - extraLibs = with python.pkgs; [ virtualenv ]; - # Collisions because of namespaces __init__.py - ignoreCollisions = true; + environmentTests = + let + envs = + let + inherit python; + pythonEnv = python.withPackages (ps: with ps; [ ]); + pythonVirtualEnv = + if python.isPy3k then + python.withPackages (ps: with ps; [ virtualenv ]) + else + python.buildEnv.override { + extraLibs = with python.pkgs; [ virtualenv ]; + # Collisions because of namespaces __init__.py + ignoreCollisions = true; + }; + in + { + # Plain Python interpreter + plain = rec { + env = python; + interpreter = env.interpreter; + is_venv = "False"; + is_nixenv = "False"; + is_virtualenv = "False"; + }; + } + // lib.optionalAttrs (!python.isPyPy && !stdenv.isDarwin) { + # Use virtualenv from a Nix env. + # Fails on darwin with + # virtualenv: error: argument dest: the destination . is not write-able at /nix/store + nixenv-virtualenv = rec { + env = runCommand "${python.name}-virtualenv" { } '' + ${pythonVirtualEnv.interpreter} -m virtualenv venv + mv venv $out + ''; + interpreter = "${env}/bin/${python.executable}"; + is_venv = "False"; + is_nixenv = "True"; + is_virtualenv = "True"; + }; + } + // lib.optionalAttrs (python.implementation != "graal") { + # Python Nix environment (python.buildEnv) + nixenv = rec { + env = pythonEnv; + interpreter = env.interpreter; + is_venv = "False"; + is_nixenv = "True"; + is_virtualenv = "False"; + }; + } + // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) { + # Venv built using plain Python + # Python 2 does not support venv + # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3. + plain-venv = rec { + env = runCommand "${python.name}-venv" { } '' + ${python.interpreter} -m venv $out + ''; + interpreter = "${env}/bin/${python.executable}"; + is_venv = "True"; + is_nixenv = "False"; + is_virtualenv = "False"; }; - in { - # Plain Python interpreter - plain = rec { - env = python; - interpreter = env.interpreter; - is_venv = "False"; - is_nixenv = "False"; - is_virtualenv = "False"; - }; - } // lib.optionalAttrs (!python.isPyPy && !stdenv.isDarwin) { - # Use virtualenv from a Nix env. - # Fails on darwin with - # virtualenv: error: argument dest: the destination . is not write-able at /nix/store - nixenv-virtualenv = rec { - env = runCommand "${python.name}-virtualenv" {} '' - ${pythonVirtualEnv.interpreter} -m virtualenv venv - mv venv $out - ''; - interpreter = "${env}/bin/${python.executable}"; - is_venv = "False"; - is_nixenv = "True"; - is_virtualenv = "True"; - }; - } // lib.optionalAttrs (python.implementation != "graal") { - # Python Nix environment (python.buildEnv) - nixenv = rec { - env = pythonEnv; - interpreter = env.interpreter; - is_venv = "False"; - is_nixenv = "True"; - is_virtualenv = "False"; - }; - } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) { - # Venv built using plain Python - # Python 2 does not support venv - # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3. - plain-venv = rec { - env = runCommand "${python.name}-venv" {} '' - ${python.interpreter} -m venv $out - ''; - interpreter = "${env}/bin/${python.executable}"; - is_venv = "True"; - is_nixenv = "False"; - is_virtualenv = "False"; - }; - } // lib.optionalAttrs (python.pythonAtLeast "3.8") { - # Venv built using Python Nix environment (python.buildEnv) - # TODO: Cannot create venv from a nix env - # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. - nixenv-venv = rec { - env = runCommand "${python.name}-venv" {} '' - ${pythonEnv.interpreter} -m venv $out + } + // lib.optionalAttrs (python.pythonAtLeast "3.8") { + # Venv built using Python Nix environment (python.buildEnv) + # TODO: Cannot create venv from a nix env + # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. + nixenv-venv = rec { + env = runCommand "${python.name}-venv" { } '' + ${pythonEnv.interpreter} -m venv $out + ''; + interpreter = "${env}/bin/${pythonEnv.executable}"; + is_venv = "True"; + is_nixenv = "True"; + is_virtualenv = "False"; + }; + }; + + testfun = + name: attrs: + runCommand "${python.name}-tests-${name}" ({ inherit (python) pythonVersion; } // attrs) '' + cp -r ${./tests/test_environments} tests + chmod -R +w tests + substituteAllInPlace tests/test_python.py + ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py + mkdir $out + touch $out/success ''; - interpreter = "${env}/bin/${pythonEnv.executable}"; - is_venv = "True"; - is_nixenv = "True"; - is_virtualenv = "False"; - }; - }; - testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({ - inherit (python) pythonVersion; - } // attrs) '' - cp -r ${./tests/test_environments} tests - chmod -R +w tests - substituteAllInPlace tests/test_python.py - ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py - mkdir $out - touch $out/success - ''; - - in lib.mapAttrs testfun envs; + in + lib.mapAttrs testfun envs; # Integration tests involving the package set. # All PyPy package builds are broken at the moment integrationTests = lib.optionalAttrs (!python.isPyPy) ( - lib.optionalAttrs (python.isPy3k && !stdenv.isDarwin) { # darwin has no split-debug - cpython-gdb = callPackage ./tests/test_cpython_gdb { - interpreter = python; - }; - } // lib.optionalAttrs (python.pythonAtLeast "3.7") { + lib.optionalAttrs (python.isPy3k && !stdenv.isDarwin) { + # darwin has no split-debug + cpython-gdb = callPackage ./tests/test_cpython_gdb { interpreter = python; }; + } + // lib.optionalAttrs (python.pythonAtLeast "3.7") { # Before the addition of NIX_PYTHONPREFIX mypy was broken with typed packages - nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix { - interpreter = python; - }; + nix-pythonprefix-mypy = callPackage ./tests/test_nix_pythonprefix { interpreter = python; }; # Make sure tkinter is importable. See https://github.com/NixOS/nixpkgs/issues/238990 - tkinter = callPackage ./tests/test_tkinter { - interpreter = python; - }; + tkinter = callPackage ./tests/test_tkinter { interpreter = python; }; } ); # Tests to ensure overriding works as expected. - overrideTests = let - extension = self: super: { - foobar = super.numpy; - }; - # `pythonInterpreters.pypy39_prebuilt` does not expose an attribute - # name (is not present in top-level `pkgs`). - is_prebuilt = python: python.pythonAttr == null; - in lib.optionalAttrs (python.isPy3k) ({ - test-packageOverrides = let - myPython = let - self = python.override { - packageOverrides = extension; - inherit self; - }; - in self; - in assert myPython.pkgs.foobar == myPython.pkgs.numpy; myPython.withPackages(ps: with ps; [ foobar ]); - # overrideScope is broken currently - # test-overrideScope = let - # myPackages = python.pkgs.overrideScope extension; - # in assert myPackages.foobar == myPackages.numpy; myPackages.python.withPackages(ps: with ps; [ foobar ]); - # - # Have to skip prebuilt python as it's not present in top-level - # `pkgs` as an attribute. - } // lib.optionalAttrs (python ? pythonAttr && !is_prebuilt python) { - # Test applying overrides using pythonPackagesOverlays. - test-pythonPackagesExtensions = let - pkgs_ = pkgs.extend(final: prev: { - pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ - (python-final: python-prev: { - foo = python-prev.setuptools; - }) - ]; - }); - in pkgs_.${python.pythonAttr}.pkgs.foo; - }); - - condaTests = let - requests = callPackage ({ - autoPatchelfHook, - fetchurl, - pythonCondaPackages, - }: - python.pkgs.buildPythonPackage { - pname = "requests"; - version = "2.24.0"; - format = "other"; - src = fetchurl { - url = "https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.tar.bz2"; - sha256 = "02qzaf6gwsqbcs69pix1fnjxzgnngwzvrsy65h1d521g750mjvvp"; - }; - nativeBuildInputs = [ autoPatchelfHook ] ++ (with python.pkgs; [ - condaUnpackHook condaInstallHook - ]); - buildInputs = [ - pythonCondaPackages.condaPatchelfLibs - ]; - propagatedBuildInputs = with python.pkgs; [ - chardet idna urllib3 certifi - ]; + overrideTests = + let + extension = self: super: { foobar = super.numpy; }; + # `pythonInterpreters.pypy39_prebuilt` does not expose an attribute + # name (is not present in top-level `pkgs`). + is_prebuilt = python: python.pythonAttr == null; + in + lib.optionalAttrs (python.isPy3k) ( + { + test-packageOverrides = + let + myPython = + let + self = python.override { + packageOverrides = extension; + inherit self; + }; + in + self; + in + assert myPython.pkgs.foobar == myPython.pkgs.numpy; + myPython.withPackages (ps: with ps; [ foobar ]); + # overrideScope is broken currently + # test-overrideScope = let + # myPackages = python.pkgs.overrideScope extension; + # in assert myPackages.foobar == myPackages.numpy; myPackages.python.withPackages(ps: with ps; [ foobar ]); + # + # Have to skip prebuilt python as it's not present in top-level + # `pkgs` as an attribute. } - ) {}; - pythonWithRequests = requests.pythonModule.withPackages (ps: [ requests ]); - in lib.optionalAttrs (python.isPy3k && stdenv.isLinux) - { - condaExamplePackage = runCommand "import-requests" {} '' + // lib.optionalAttrs (python ? pythonAttr && !is_prebuilt python) { + # Test applying overrides using pythonPackagesOverlays. + test-pythonPackagesExtensions = + let + pkgs_ = pkgs.extend ( + final: prev: { + pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ + (python-final: python-prev: { foo = python-prev.setuptools; }) + ]; + } + ); + in + pkgs_.${python.pythonAttr}.pkgs.foo; + } + ); + + condaTests = + let + requests = callPackage ( + { + autoPatchelfHook, + fetchurl, + pythonCondaPackages, + }: + python.pkgs.buildPythonPackage { + pname = "requests"; + version = "2.24.0"; + format = "other"; + src = fetchurl { + url = "https://repo.anaconda.com/pkgs/main/noarch/requests-2.24.0-py_0.tar.bz2"; + sha256 = "02qzaf6gwsqbcs69pix1fnjxzgnngwzvrsy65h1d521g750mjvvp"; + }; + nativeBuildInputs = + [ autoPatchelfHook ] + ++ (with python.pkgs; [ + condaUnpackHook + condaInstallHook + ]); + buildInputs = [ pythonCondaPackages.condaPatchelfLibs ]; + propagatedBuildInputs = with python.pkgs; [ + chardet + idna + urllib3 + certifi + ]; + } + ) { }; + pythonWithRequests = requests.pythonModule.withPackages (ps: [ requests ]); + in + lib.optionalAttrs (python.isPy3k && stdenv.isLinux) { + condaExamplePackage = runCommand "import-requests" { } '' ${pythonWithRequests.interpreter} -c "import requests" > $out ''; }; -in lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform ) (environmentTests // integrationTests // overrideTests // condaTests) +in +lib.optionalAttrs (stdenv.hostPlatform == stdenv.buildPlatform) ( + environmentTests // integrationTests // overrideTests // condaTests +) diff --git a/pkgs/by-name/py/python/tests/test_cpython_gdb/default.nix b/pkgs/by-name/py/python/tests/test_cpython_gdb/default.nix index 0254d84..5c2d3a7 100644 --- a/pkgs/by-name/py/python/tests/test_cpython_gdb/default.nix +++ b/pkgs/by-name/py/python/tests/test_cpython_gdb/default.nix @@ -1,4 +1,10 @@ -{ interpreter, lib, gdb, writeText, runCommand }: +{ + interpreter, + lib, + gdb, + writeText, + runCommand, +}: let crashme-py = writeText "crashme.py" '' @@ -9,7 +15,8 @@ let sentinel_foo_bar() ''; -in runCommand "python-gdb" {} '' +in +runCommand "python-gdb" { } '' # test that gdb is able to recover the python stack frame of this segfault ${gdb}/bin/gdb -batch -ex 'set debug-file-directory ${interpreter.debug}/lib/debug' \ -ex 'source ${interpreter}/share/gdb/libpython.py' \ diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/default.nix b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/default.nix index 2030fab..02c6d6b 100644 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/default.nix +++ b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/default.nix @@ -1,14 +1,21 @@ -{ interpreter, writeText, runCommand }: +{ + interpreter, + writeText, + runCommand, +}: let - python = let - packageOverrides = self: super: { - typeddep = self.callPackage ./typeddep {}; + python = + let + packageOverrides = self: super: { typeddep = self.callPackage ./typeddep { }; }; + in + interpreter.override { + inherit packageOverrides; + self = python; }; - in interpreter.override {inherit packageOverrides; self = python;}; - pythonEnv = python.withPackages(ps: [ + pythonEnv = python.withPackages (ps: [ ps.typeddep ps.mypy ]); @@ -19,7 +26,8 @@ let print(s) ''; -in runCommand "${interpreter.name}-site-prefix-mypy-test" {} '' +in +runCommand "${interpreter.name}-site-prefix-mypy-test" { } '' ${pythonEnv}/bin/mypy ${pythonScript} touch $out '' diff --git a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/default.nix b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/default.nix index 8d330fc..5bba9b3 100644 --- a/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/default.nix +++ b/pkgs/by-name/py/python/tests/test_nix_pythonprefix/typeddep/default.nix @@ -1,6 +1,5 @@ { buildPythonPackage, pythonOlder }: - buildPythonPackage { pname = "typeddep"; diff --git a/pkgs/by-name/py/python/tests/test_tkinter/default.nix b/pkgs/by-name/py/python/tests/test_tkinter/default.nix index 67e67d2..f82cd99 100644 --- a/pkgs/by-name/py/python/tests/test_tkinter/default.nix +++ b/pkgs/by-name/py/python/tests/test_tkinter/default.nix @@ -1,17 +1,20 @@ -{ interpreter, writeText, runCommand }: +{ + interpreter, + writeText, + runCommand, +}: let - pythonEnv = interpreter.withPackages(ps: [ - ps.tkinter - ]); + pythonEnv = interpreter.withPackages (ps: [ ps.tkinter ]); pythonScript = writeText "myscript.py" '' import tkinter print(tkinter) ''; -in runCommand "${interpreter.name}-tkinter-test" {} '' +in +runCommand "${interpreter.name}-tkinter-test" { } '' ${pythonEnv}/bin/python ${pythonScript} touch $out '' diff --git a/pkgs/by-name/py/python/update-python-libraries/default.nix b/pkgs/by-name/py/python/update-python-libraries/default.nix index f7dfdf0..46e0e3b 100644 --- a/pkgs/by-name/py/python/update-python-libraries/default.nix +++ b/pkgs/by-name/py/python/update-python-libraries/default.nix @@ -1,14 +1,28 @@ -{ python3, runCommand, git, nix, nix-prefetch-git }: +{ + python3, + runCommand, + git, + nix, + nix-prefetch-git, +}: -runCommand "update-python-libraries" { - buildInputs = [ - nix - nix-prefetch-git - (python3.withPackages(ps: with ps; [ packaging requests toolz ])) - git - ]; -} '' - cp ${./update-python-libraries.py} $out - patchShebangs $out - substituteInPlace $out --replace 'GIT = "git"' 'GIT = "${git}/bin/git"' -'' +runCommand "update-python-libraries" + { + buildInputs = [ + nix + nix-prefetch-git + (python3.withPackages ( + ps: with ps; [ + packaging + requests + toolz + ] + )) + git + ]; + } + '' + cp ${./update-python-libraries.py} $out + patchShebangs $out + substituteInPlace $out --replace 'GIT = "git"' 'GIT = "${git}/bin/git"' + '' diff --git a/pkgs/by-name/py/python/with-packages.nix b/pkgs/by-name/py/python/with-packages.nix index e1de0b2..cd745ef 100644 --- a/pkgs/by-name/py/python/with-packages.nix +++ b/pkgs/by-name/py/python/with-packages.nix @@ -1,3 +1,7 @@ { buildEnv, pythonPackages }: -f: let packages = f pythonPackages; in buildEnv.override { extraLibs = packages; } +f: +let + packages = f pythonPackages; +in +buildEnv.override { extraLibs = packages; } diff --git a/pkgs/by-name/py/python/wrap-python.nix b/pkgs/by-name/py/python/wrap-python.nix index 8817d09..0bc93d6 100644 --- a/pkgs/by-name/py/python/wrap-python.nix +++ b/pkgs/by-name/py/python/wrap-python.nix @@ -1,51 +1,66 @@ -{ lib -, python -, makePythonHook -, makeWrapper }: +{ + lib, + python, + makePythonHook, + makeWrapper, +}: makePythonHook { - name = "wrap-python-hook"; - propagatedBuildInputs = [ makeWrapper ]; - substitutions.sitePackages = python.sitePackages; - substitutions.executable = python.interpreter; - substitutions.python = python.pythonOnBuildForHost; - substitutions.pythonHost = python; - substitutions.magicalSedExpression = let - # Looks weird? Of course, it's between single quoted shell strings. - # NOTE: Order DOES matter here, so single character quotes need to be - # at the last position. - quoteVariants = [ "'\"'''\"'" "\"\"\"" "\"" "'\"'\"'" ]; # hey Vim: '' + name = "wrap-python-hook"; + propagatedBuildInputs = [ makeWrapper ]; + substitutions.sitePackages = python.sitePackages; + substitutions.executable = python.interpreter; + substitutions.python = python.pythonOnBuildForHost; + substitutions.pythonHost = python; + substitutions.magicalSedExpression = + let + # Looks weird? Of course, it's between single quoted shell strings. + # NOTE: Order DOES matter here, so single character quotes need to be + # at the last position. + quoteVariants = [ + "'\"'''\"'" + "\"\"\"" + "\"" + "'\"'\"'" + ]; # hey Vim: '' - mkStringSkipper = labelNum: quote: let + mkStringSkipper = + labelNum: quote: + let label = "q${toString labelNum}"; - isSingle = lib.elem quote [ "\"" "'\"'\"'" ]; + isSingle = lib.elem quote [ + "\"" + "'\"'\"'" + ]; endQuote = if isSingle then "[^\\\\]${quote}" else quote; - in '' + in + '' /^[a-z]?${quote}/ { /${quote}${quote}|${quote}.*${endQuote}/{n;br} :${label}; n; /^${quote}/{n;br}; /${endQuote}/{n;br}; b${label} } ''; - # This preamble does two things: - # * Sets argv[0] to the original application's name; otherwise it would be .foo-wrapped. - # Python doesn't support `exec -a`. - # * Adds all required libraries to sys.path via `site.addsitedir`. It also handles *.pth files. - preamble = '' - import sys - import site - import functools - sys.argv[0] = '"'$(readlink -f "$f")'"' - functools.reduce(lambda k, p: site.addsitedir(p, k), ['"$([ -n "$program_PYTHONPATH" ] && (echo "'$program_PYTHONPATH'" | sed "s|:|','|g") || true)"'], site._init_pathinfo()) - ''; - - in '' - 1 { - :r - /\\$|,$/{N;br} - /__future__|^ |^ *(#.*)?$/{n;br} - ${lib.concatImapStrings mkStringSkipper quoteVariants} - /^[^# ]/i ${lib.replaceStrings ["\n"] [";"] preamble} - } + # This preamble does two things: + # * Sets argv[0] to the original application's name; otherwise it would be .foo-wrapped. + # Python doesn't support `exec -a`. + # * Adds all required libraries to sys.path via `site.addsitedir`. It also handles *.pth files. + preamble = '' + import sys + import site + import functools + sys.argv[0] = '"'$(readlink -f "$f")'"' + functools.reduce(lambda k, p: site.addsitedir(p, k), ['"$([ -n "$program_PYTHONPATH" ] && (echo "'$program_PYTHONPATH'" | sed "s|:|','|g") || true)"'], site._init_pathinfo()) ''; + + in + '' + 1 { + :r + /\\$|,$/{N;br} + /__future__|^ |^ *(#.*)?$/{n;br} + ${lib.concatImapStrings mkStringSkipper quoteVariants} + /^[^# ]/i ${lib.replaceStrings [ "\n" ] [ ";" ] preamble} + } + ''; } ./wrap.sh diff --git a/pkgs/by-name/py/python/wrapper.nix b/pkgs/by-name/py/python/wrapper.nix index f5f9b03..ec6fb71 100644 --- a/pkgs/by-name/py/python/wrapper.nix +++ b/pkgs/by-name/py/python/wrapper.nix @@ -1,71 +1,82 @@ -{ lib, stdenv, buildEnv, makeBinaryWrapper +{ + lib, + stdenv, + buildEnv, + makeBinaryWrapper, -# manually pased -, python -, requiredPythonModules + # manually pased + python, + requiredPythonModules, -# extra opts -, extraLibs ? [] -, extraOutputsToInstall ? [] -, postBuild ? "" -, ignoreCollisions ? false -, permitUserSite ? false -# Wrap executables with the given argument. -, makeWrapperArgs ? [] -, }: + # extra opts + extraLibs ? [ ], + extraOutputsToInstall ? [ ], + postBuild ? "", + ignoreCollisions ? false, + permitUserSite ? false, + # Wrap executables with the given argument. + makeWrapperArgs ? [ ], +}: # Create a python executable that knows about additional packages. let - env = let - paths = requiredPythonModules (extraLibs ++ [ python ] ) ; - pythonPath = "${placeholder "out"}/${python.sitePackages}"; - pythonExecutable = "${placeholder "out"}/bin/${python.executable}"; - in buildEnv { - name = "${python.name}-env"; + env = + let + paths = requiredPythonModules (extraLibs ++ [ python ]); + pythonPath = "${placeholder "out"}/${python.sitePackages}"; + pythonExecutable = "${placeholder "out"}/bin/${python.executable}"; + in + buildEnv { + name = "${python.name}-env"; - inherit paths; - inherit ignoreCollisions; - extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; + inherit paths; + inherit ignoreCollisions; + extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; - nativeBuildInputs = [ makeBinaryWrapper ]; + nativeBuildInputs = [ makeBinaryWrapper ]; - postBuild = '' - if [ -L "$out/bin" ]; then - unlink "$out/bin" - fi - mkdir -p "$out/bin" + postBuild = + '' + if [ -L "$out/bin" ]; then + unlink "$out/bin" + fi + mkdir -p "$out/bin" - for path in ${lib.concatStringsSep " " paths}; do - if [ -d "$path/bin" ]; then - cd "$path/bin" - for prg in *; do - if [ -f "$prg" ]; then - rm -f "$out/bin/$prg" - if [ -x "$prg" ]; then - makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set NIX_PYTHONPREFIX "$out" --set NIX_PYTHONEXECUTABLE ${pythonExecutable} --set NIX_PYTHONPATH ${pythonPath} ${lib.optionalString (!permitUserSite) ''--set PYTHONNOUSERSITE "true"''} ${lib.concatStringsSep " " makeWrapperArgs} - fi + for path in ${lib.concatStringsSep " " paths}; do + if [ -d "$path/bin" ]; then + cd "$path/bin" + for prg in *; do + if [ -f "$prg" ]; then + rm -f "$out/bin/$prg" + if [ -x "$prg" ]; then + makeWrapper "$path/bin/$prg" "$out/bin/$prg" --set NIX_PYTHONPREFIX "$out" --set NIX_PYTHONEXECUTABLE ${pythonExecutable} --set NIX_PYTHONPATH ${pythonPath} ${ + lib.optionalString (!permitUserSite) ''--set PYTHONNOUSERSITE "true"'' + } ${lib.concatStringsSep " " makeWrapperArgs} + fi + fi + done fi done - fi - done - '' + postBuild; + '' + + postBuild; - inherit (python) meta; + inherit (python) meta; - passthru = python.passthru // { - interpreter = "${env}/bin/${python.executable}"; - inherit python; - env = stdenv.mkDerivation { - name = "interactive-${python.name}-environment"; - nativeBuildInputs = [ env ]; + passthru = python.passthru // { + interpreter = "${env}/bin/${python.executable}"; + inherit python; + env = stdenv.mkDerivation { + name = "interactive-${python.name}-environment"; + nativeBuildInputs = [ env ]; - buildCommand = '' - echo >&2 "" - echo >&2 "*** Python 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" - echo >&2 "" - exit 1 - ''; + buildCommand = '' + echo >&2 "" + echo >&2 "*** Python 'env' attributes are intended for interactive nix-shell sessions, not for building! ***" + echo >&2 "" + exit 1 + ''; + }; + }; }; - }; - }; -in env +in +env diff --git a/pkgs/by-name/qr/qrencode/default.nix b/pkgs/by-name/qr/qrencode/default.nix index 83c20fc..ee8feba 100644 --- a/pkgs/by-name/qr/qrencode/default.nix +++ b/pkgs/by-name/qr/qrencode/default.nix @@ -1,10 +1,24 @@ -{ lib, stdenv, fetchurl, pkg-config, SDL2, libpng, libiconv, libobjc }: +{ + lib, + stdenv, + fetchurl, + pkg-config, + SDL2, + libpng, + libiconv, + libobjc, +}: stdenv.mkDerivation (finalAttrs: rec { pname = "qrencode"; version = "4.1.1"; - outputs = [ "bin" "out" "man" "dev" ]; + outputs = [ + "bin" + "out" + "man" + "dev" + ]; src = fetchurl { url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz"; @@ -13,8 +27,10 @@ stdenv.mkDerivation (finalAttrs: rec { nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libiconv libpng ] - ++ lib.optionals stdenv.isDarwin [ libobjc ]; + buildInputs = [ + libiconv + libpng + ] ++ lib.optionals stdenv.isDarwin [ libobjc ]; nativeCheckInputs = [ SDL2 ]; @@ -44,7 +60,10 @@ stdenv.mkDerivation (finalAttrs: rec { such as a mobile phone with CCD. ''; license = licenses.lgpl21Plus; - maintainers = with maintainers; [ adolfogc yana ]; + maintainers = with maintainers; [ + adolfogc + yana + ]; platforms = platforms.all; mainProgram = "qrencode"; }; diff --git a/pkgs/by-name/qr/qrencode/packages.nix b/pkgs/by-name/qr/qrencode/packages.nix index d0483a6..c751416 100644 --- a/pkgs/by-name/qr/qrencode/packages.nix +++ b/pkgs/by-name/qr/qrencode/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - qrencode = callPackage ./. { - inherit (darwin) libobjc; - }; +with pkgs; { + qrencode = callPackage ./. { inherit (darwin) libobjc; }; } diff --git a/pkgs/by-name/qu/quictls/default.nix b/pkgs/by-name/qu/quictls/default.nix index 49dfc94..9765ffc 100644 --- a/pkgs/by-name/qu/quictls/default.nix +++ b/pkgs/by-name/qu/quictls/default.nix @@ -1,16 +1,16 @@ { - buildPackages -, cryptodev -, enableSSL2 ? false -, enableSSL3 ? false -, fetchFromGitHub -, lib -, makeWrapper -, perl -, removeReferencesTo -, static ? stdenv.hostPlatform.isStatic -, stdenv -, withCryptodev ? false + buildPackages, + cryptodev, + enableSSL2 ? false, + enableSSL3 ? false, + fetchFromGitHub, + lib, + makeWrapper, + perl, + removeReferencesTo, + static ? stdenv.hostPlatform.isStatic, + stdenv, + withCryptodev ? false, }: stdenv.mkDerivation (finalAttrs: { @@ -31,22 +31,27 @@ stdenv.mkDerivation (finalAttrs: { # This patch disables build-time detection. ../openssl/3.0/openssl-disable-kernel-detection.patch - (if stdenv.hostPlatform.isDarwin - then ../openssl/use-etc-ssl-certs-darwin.patch - else ../openssl/use-etc-ssl-certs.patch) + ( + if stdenv.hostPlatform.isDarwin then + ../openssl/use-etc-ssl-certs-darwin.patch + else + ../openssl/use-etc-ssl-certs.patch + ) ]; - postPatch = '' - patchShebangs Configure - '' - # config is a configure script which is not installed. - + '' - substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' - '' + lib.optionalString stdenv.hostPlatform.isMusl '' - substituteInPlace crypto/async/arch/async_posix.h \ - --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \ - '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0' - ''; + postPatch = + '' + patchShebangs Configure + '' + # config is a configure script which is not installed. + + '' + substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env' + '' + + lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace crypto/async/arch/async_posix.h \ + --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \ + '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0' + ''; nativeBuildInputs = [ makeWrapper @@ -54,80 +59,90 @@ stdenv.mkDerivation (finalAttrs: { removeReferencesTo ]; - buildInputs = lib.optionals withCryptodev [ - cryptodev - ]; + buildInputs = lib.optionals withCryptodev [ cryptodev ]; - outputs = [ "bin" "dev" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "doc" + ]; setOutputFlags = false; separateDebugInfo = - !stdenv.hostPlatform.isDarwin && - !(stdenv.hostPlatform.useLLVM or false) && - stdenv.cc.isGNU; + !stdenv.hostPlatform.isDarwin && !(stdenv.hostPlatform.useLLVM or false) && stdenv.cc.isGNU; # TODO(@Ericson2314): Improve with mass rebuild configurePlatforms = [ ]; - configureScript = { - armv5tel-linux = "./Configure linux-armv4 -march=armv5te"; - armv6l-linux = "./Configure linux-armv4 -march=armv6"; - armv7l-linux = "./Configure linux-armv4 -march=armv7-a"; - x86_64-darwin = "./Configure darwin64-x86_64-cc"; - aarch64-darwin = "./Configure darwin64-arm64-cc"; - x86_64-linux = "./Configure linux-x86_64"; - x86_64-solaris = "./Configure solaris64-x86_64-gcc"; - riscv64-linux = "./Configure linux64-riscv64"; - mips64el-linux = - if stdenv.hostPlatform.isMips64n64 - then "./Configure linux64-mips64" - else if stdenv.hostPlatform.isMips64n32 - then "./Configure linux-mips64" - else throw "unsupported ABI for ${stdenv.hostPlatform.system}"; - }.${stdenv.hostPlatform.system} or ( - if stdenv.hostPlatform == stdenv.buildPlatform - then "./config" - else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_64 - then "./Configure BSD-x86_64" - else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_32 - then "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf" - else if stdenv.hostPlatform.isBSD - then "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" - else if stdenv.hostPlatform.isMinGW - then "./Configure mingw${lib.optionalString - (stdenv.hostPlatform.parsed.cpu.bits != 32) - (toString stdenv.hostPlatform.parsed.cpu.bits)}" - else if stdenv.hostPlatform.isLinux - then "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" - else if stdenv.hostPlatform.isiOS - then "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross" - else - throw "Not sure what configuration to use for ${stdenv.hostPlatform.config}" - ); + configureScript = + { + armv5tel-linux = "./Configure linux-armv4 -march=armv5te"; + armv6l-linux = "./Configure linux-armv4 -march=armv6"; + armv7l-linux = "./Configure linux-armv4 -march=armv7-a"; + x86_64-darwin = "./Configure darwin64-x86_64-cc"; + aarch64-darwin = "./Configure darwin64-arm64-cc"; + x86_64-linux = "./Configure linux-x86_64"; + x86_64-solaris = "./Configure solaris64-x86_64-gcc"; + riscv64-linux = "./Configure linux64-riscv64"; + mips64el-linux = + if stdenv.hostPlatform.isMips64n64 then + "./Configure linux64-mips64" + else if stdenv.hostPlatform.isMips64n32 then + "./Configure linux-mips64" + else + throw "unsupported ABI for ${stdenv.hostPlatform.system}"; + } + .${stdenv.hostPlatform.system} or ( + if stdenv.hostPlatform == stdenv.buildPlatform then + "./config" + else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_64 then + "./Configure BSD-x86_64" + else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_32 then + "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf" + else if stdenv.hostPlatform.isBSD then + "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" + else if stdenv.hostPlatform.isMinGW then + "./Configure mingw${ + lib.optionalString (stdenv.hostPlatform.parsed.cpu.bits != 32) ( + toString stdenv.hostPlatform.parsed.cpu.bits + ) + }" + else if stdenv.hostPlatform.isLinux then + "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}" + else if stdenv.hostPlatform.isiOS then + "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross" + else + throw "Not sure what configuration to use for ${stdenv.hostPlatform.config}" + ); # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags. dontAddStaticConfigureFlags = true; - configureFlags = [ - "shared" # "shared" builds both shared and static libraries - "--libdir=lib" - "--openssldir=etc/ssl" - ] ++ lib.optionals withCryptodev [ - "-DHAVE_CRYPTODEV" - "-DUSE_CRYPTODEV_DIGESTS" - ] ++ lib.optional enableSSL2 "enable-ssl2" - ++ lib.optional enableSSL3 "enable-ssl3" - # We select KTLS here instead of the configure-time detection (which we patch out). - # KTLS should work on FreeBSD 13+ as well, so we could enable it if someone tests it. - ++ lib.optional (stdenv.isLinux && lib.versionAtLeast finalAttrs.version "3.0.0") "enable-ktls" - ++ lib.optional stdenv.hostPlatform.isAarch64 "no-afalgeng" - # OpenSSL needs a specific `no-shared` configure flag. - # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options - # for a comprehensive list of configuration options. - ++ lib.optional static "no-shared" - # This introduces a reference to the CTLOG_FILE which is undesired when - # trying to build binaries statically. - ++ lib.optional static "no-ct"; + configureFlags = + [ + "shared" # "shared" builds both shared and static libraries + "--libdir=lib" + "--openssldir=etc/ssl" + ] + ++ lib.optionals withCryptodev [ + "-DHAVE_CRYPTODEV" + "-DUSE_CRYPTODEV_DIGESTS" + ] + ++ lib.optional enableSSL2 "enable-ssl2" + ++ lib.optional enableSSL3 "enable-ssl3" + # We select KTLS here instead of the configure-time detection (which we patch out). + # KTLS should work on FreeBSD 13+ as well, so we could enable it if someone tests it. + ++ lib.optional (stdenv.isLinux && lib.versionAtLeast finalAttrs.version "3.0.0") "enable-ktls" + ++ lib.optional stdenv.hostPlatform.isAarch64 "no-afalgeng" + # OpenSSL needs a specific `no-shared` configure flag. + # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options + # for a comprehensive list of configuration options. + ++ lib.optional static "no-shared" + # This introduces a reference to the CTLOG_FILE which is undesired when + # trying to build binaries statically. + ++ lib.optional static "no-ct"; makeFlags = [ "MANDIR=$(man)/share/man" @@ -140,32 +155,39 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; - postInstall = (if static then '' - # OPENSSLDIR has a reference to self - ${removeReferencesTo}/bin/remove-references-to -t $out $out/lib/*.a - '' else '' - # If we're building dynamic libraries, then don't install static - # libraries. - if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then - rm "$out/lib/"*.a - fi - '') + '' - mkdir -p $bin - mv $out/bin $bin/bin + postInstall = + ( + if static then + '' + # OPENSSLDIR has a reference to self + ${removeReferencesTo}/bin/remove-references-to -t $out $out/lib/*.a + '' + else + '' + # If we're building dynamic libraries, then don't install static + # libraries. + if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then + rm "$out/lib/"*.a + fi + '' + ) + + '' + mkdir -p $bin + mv $out/bin $bin/bin - # c_rehash is a legacy perl script with the same functionality - # as `openssl rehash` - # this wrapper script is created to maintain backwards compatibility without - # depending on perl - makeWrapper $bin/bin/openssl $bin/bin/c_rehash \ - --add-flags "rehash" + # c_rehash is a legacy perl script with the same functionality + # as `openssl rehash` + # this wrapper script is created to maintain backwards compatibility without + # depending on perl + makeWrapper $bin/bin/openssl $bin/bin/c_rehash \ + --add-flags "rehash" - mkdir $dev - mv $out/include $dev/ - # remove dependency on Perl at runtime - rm -r $out/etc/ssl/misc - rmdir $out/etc/ssl/{certs,private} - ''; + mkdir $dev + mv $out/include $dev/ + # remove dependency on Perl at runtime + rm -r $out/etc/ssl/misc + rmdir $out/etc/ssl/{certs,private} + ''; postFixup = lib.optionalString (!stdenv.hostPlatform.isWindows) '' # Check to make sure the main output doesn't depend on perl diff --git a/pkgs/by-name/ra/rapidcheck/default.nix b/pkgs/by-name/ra/rapidcheck/default.nix index 68f2e5e..323cfd5 100644 --- a/pkgs/by-name/ra/rapidcheck/default.nix +++ b/pkgs/by-name/ra/rapidcheck/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, unstableGitUpdater -, testers +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + unstableGitUpdater, + testers, }: stdenv.mkDerivation (finalAttrs: { @@ -12,12 +13,15 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "emil-e"; - repo = "rapidcheck"; - rev = "ff6af6fc683159deb51c543b065eba14dfcf329b"; + repo = "rapidcheck"; + rev = "ff6af6fc683159deb51c543b065eba14dfcf329b"; hash = "sha256-Ixz5RpY0n8Un/Pv4XoTfbs40+70iyMbkQUjDqoLaWOg="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/re/re2/default.nix b/pkgs/by-name/re/re2/default.nix index bfed016..1c0d4fb 100644 --- a/pkgs/by-name/re/re2/default.nix +++ b/pkgs/by-name/re/re2/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, ninja -, abseil-cpp +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + ninja, + abseil-cpp, # for passthru.tests # , chromium # , grpc @@ -23,9 +24,15 @@ stdenv.mkDerivation rec { hash = "sha256-VuI9OsfGTdVywdyVfBrSzXSjbSfevne+YQ2oOz4R3DM="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; - nativeBuildInputs = [ cmake ninja ]; + nativeBuildInputs = [ + cmake + ninja + ]; propagatedBuildInputs = [ abseil-cpp ]; @@ -69,7 +76,10 @@ stdenv.mkDerivation rec { ''; license = licenses.bsd3; homepage = "https://github.com/google/re2"; - maintainers = with maintainers; [ azahi networkexception ]; + maintainers = with maintainers; [ + azahi + networkexception + ]; platforms = platforms.all; }; } diff --git a/pkgs/by-name/re/re2c/default.nix b/pkgs/by-name/re/re2c/default.nix index 759a734..1972e2e 100644 --- a/pkgs/by-name/re/re2c/default.nix +++ b/pkgs/by-name/re/re2c/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook -, nix-update-script -, python3 +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + nix-update-script, + python3, # for passthru.tests # , ninja @@ -16,9 +17,9 @@ stdenv.mkDerivation rec { version = "3.1"; src = fetchFromGitHub { - owner = "skvadrik"; - repo = "re2c"; - rev = version; + owner = "skvadrik"; + repo = "re2c"; + rev = version; sha256 = "sha256-7zZdLby7HdNoURgdkg+xnlp6VDCACcyGCTtjM43OLd4="; }; @@ -43,9 +44,9 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Tool for writing very fast and very flexible scanners"; - homepage = "https://re2c.org"; - license = licenses.publicDomain; - platforms = platforms.all; + homepage = "https://re2c.org"; + license = licenses.publicDomain; + platforms = platforms.all; maintainers = with maintainers; [ thoughtpolice ]; }; } diff --git a/pkgs/by-name/re/readline/7.0.nix b/pkgs/by-name/re/readline/7.0.nix index 3b643a9..273f8fd 100644 --- a/pkgs/by-name/re/readline/7.0.nix +++ b/pkgs/by-name/re/readline/7.0.nix @@ -1,4 +1,8 @@ -{ fetchurl, lib, stdenv, ncurses +{ + fetchurl, + lib, + stdenv, + ncurses, }: stdenv.mkDerivation rec { @@ -10,28 +14,35 @@ stdenv.mkDerivation rec { sha256 = "0d13sg9ksf982rrrmv5mb6a2p4ys9rvg9r71d6il0vr8hmql63bm"; }; - outputs = [ "out" "dev" "man" "doc" "info" ]; + outputs = [ + "out" + "dev" + "man" + "doc" + "info" + ]; strictDeps = true; propagatedBuildInputs = [ ncurses ]; patchFlags = [ "-p0" ]; - upstreamPatches = - (let - patch = nr: sha256: - fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline70-${nr}"; - inherit sha256; - }; - in - import ./readline-7.0-patches.nix patch); + upstreamPatches = ( + let + patch = + nr: sha256: + fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline70-${nr}"; + inherit sha256; + }; + in + import ./readline-7.0-patches.nix patch + ); - patches = - [ ./link-against-ncurses.patch - ./no-arch_only-6.3.patch - ] - ++ upstreamPatches; + patches = [ + ./link-against-ncurses.patch + ./no-arch_only-6.3.patch + ] ++ upstreamPatches; meta = with lib; { description = "Library for interactive line editing"; diff --git a/pkgs/by-name/re/readline/8.2.nix b/pkgs/by-name/re/readline/8.2.nix index 72e3370..a945e28 100644 --- a/pkgs/by-name/re/readline/8.2.nix +++ b/pkgs/by-name/re/readline/8.2.nix @@ -1,10 +1,11 @@ -{ lib, stdenv -, fetchpatch, fetchurl -, ncurses, termcap -, curses-library ? - if stdenv.hostPlatform.isWindows - then termcap - else ncurses +{ + lib, + stdenv, + fetchpatch, + fetchurl, + ncurses, + termcap, + curses-library ? if stdenv.hostPlatform.isWindows then termcap else ncurses, }: stdenv.mkDerivation rec { @@ -16,55 +17,61 @@ stdenv.mkDerivation rec { sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU="; }; - outputs = [ "out" "dev" "man" "doc" "info" ]; + outputs = [ + "out" + "dev" + "man" + "doc" + "info" + ]; strictDeps = true; propagatedBuildInputs = [ curses-library ]; patchFlags = [ "-p0" ]; - upstreamPatches = - (let - patch = nr: sha256: - fetchurl { - url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline82-${nr}"; - inherit sha256; - }; - in - import ./readline-8.2-patches.nix patch); + upstreamPatches = ( + let + patch = + nr: sha256: + fetchurl { + url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline82-${nr}"; + inherit sha256; + }; + in + import ./readline-8.2-patches.nix patch + ); - patches = lib.optionals (curses-library.pname == "ncurses") [ - ./link-against-ncurses.patch - ] ++ [ - ./no-arch_only-8.2.patch - ] - ++ upstreamPatches - ++ lib.optionals stdenv.hostPlatform.isWindows [ - (fetchpatch { - name = "0001-sigwinch.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch"; - stripLen = 1; - hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA="; - }) - (fetchpatch { - name = "0002-event-hook.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch"; - stripLen = 1; - hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo="; - }) - (fetchpatch { - name = "0003-fd_set.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch"; - stripLen = 1; - hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4="; - }) - (fetchpatch { - name = "0004-locale.patch"; - url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch"; - stripLen = 1; - hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc="; - }) - ]; + patches = + lib.optionals (curses-library.pname == "ncurses") [ ./link-against-ncurses.patch ] + ++ [ ./no-arch_only-8.2.patch ] + ++ upstreamPatches + ++ lib.optionals stdenv.hostPlatform.isWindows [ + (fetchpatch { + name = "0001-sigwinch.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch"; + stripLen = 1; + hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA="; + }) + (fetchpatch { + name = "0002-event-hook.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch"; + stripLen = 1; + hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo="; + }) + (fetchpatch { + name = "0003-fd_set.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch"; + stripLen = 1; + hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4="; + }) + (fetchpatch { + name = "0004-locale.patch"; + url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch"; + stripLen = 1; + hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc="; + }) + ]; meta = with lib; { description = "Library for interactive line editing"; diff --git a/pkgs/by-name/re/readline/packages.nix b/pkgs/by-name/re/readline/packages.nix index df19280..20f1eea 100644 --- a/pkgs/by-name/re/readline/packages.nix +++ b/pkgs/by-name/re/readline/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { readline = readline82; readline70 = callPackage ./7.0.nix { }; readline82 = callPackage ./8.2.nix { }; diff --git a/pkgs/by-name/re/readline/readline-7.0-patches.nix b/pkgs/by-name/re/readline/readline-7.0-patches.nix index c34ef2b..c4c95d9 100644 --- a/pkgs/by-name/re/readline/readline-7.0-patches.nix +++ b/pkgs/by-name/re/readline/readline-7.0-patches.nix @@ -1,9 +1,9 @@ # Automatically generated by `update-patch-set.sh'; do not edit. patch: [ -(patch "001" "0xm3sxvwmss7ddyfb11n6pgcqd1aglnpy15g143vzcf75snb7hcs") -(patch "002" "0n1dxmqsbjgrfxb1hgk5c6lsraw4ncbnzxlsx7m35nym6lncjiw7") -(patch "003" "1027kmymniizcy0zbdlrczxfx3clxcdln5yq05q9yzlc6y9slhwy") -(patch "004" "0r3bbaf12iz8m02z6p3fzww2m365fhn71xmzab2p62gj54s6h9gr") -(patch "005" "0lxpa4f72y2nsgj6fgrhjk2nmmxvccys6aciwfxwchb5f21rq5fa") + (patch "001" "0xm3sxvwmss7ddyfb11n6pgcqd1aglnpy15g143vzcf75snb7hcs") + (patch "002" "0n1dxmqsbjgrfxb1hgk5c6lsraw4ncbnzxlsx7m35nym6lncjiw7") + (patch "003" "1027kmymniizcy0zbdlrczxfx3clxcdln5yq05q9yzlc6y9slhwy") + (patch "004" "0r3bbaf12iz8m02z6p3fzww2m365fhn71xmzab2p62gj54s6h9gr") + (patch "005" "0lxpa4f72y2nsgj6fgrhjk2nmmxvccys6aciwfxwchb5f21rq5fa") ] diff --git a/pkgs/by-name/re/readline/readline-8.2-patches.nix b/pkgs/by-name/re/readline/readline-8.2-patches.nix index 77d5c49..08a0ae6 100644 --- a/pkgs/by-name/re/readline/readline-8.2-patches.nix +++ b/pkgs/by-name/re/readline/readline-8.2-patches.nix @@ -1,14 +1,14 @@ # Automatically generated by `update-patch-set.sh'; do not edit. patch: [ -(patch "001" "1xxgfgr6hn3ads8m8xsrdi1kbx1f3s69k0danpd9x4haqhg7zydv") -(patch "002" "0ly0siy6qy3l7hv12847adpfa34yq1w4qz9qkw6vrxv25j106rg0") -(patch "003" "1c5cwvvkx9mfmpaapymq9cavmzh4fnagkjlchsqx4vml8sx8gx94") -(patch "004" "1b15sndx9v5vj3x1f3h73099nlagknx4rbfpd5ldrbw2xgm2wmvr") -(patch "005" "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2") -(patch "006" "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67") -(patch "007" "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar") -(patch "008" "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1") -(patch "009" "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x") -(patch "010" "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km") + (patch "001" "1xxgfgr6hn3ads8m8xsrdi1kbx1f3s69k0danpd9x4haqhg7zydv") + (patch "002" "0ly0siy6qy3l7hv12847adpfa34yq1w4qz9qkw6vrxv25j106rg0") + (patch "003" "1c5cwvvkx9mfmpaapymq9cavmzh4fnagkjlchsqx4vml8sx8gx94") + (patch "004" "1b15sndx9v5vj3x1f3h73099nlagknx4rbfpd5ldrbw2xgm2wmvr") + (patch "005" "16ac25jz1a1mgkpfp1sydqf6qpsfh0s0dcmrnjpqbhg5va3s6av2") + (patch "006" "18gmh6y3klh0vv28cyqz4is3rlb32pl7f1kf5r482kfjq3w5zd67") + (patch "007" "1xmnpahs983n4w0gn3j0wr8nh1dpva33yj7fvfmhm46ph2wsa4ar") + (patch "008" "0smjjzhwxi2ibpdisnk53lh1pzgka6rhlqyh3662xy69v34ysxx1") + (patch "009" "05m1fwbs7mbs3pz3pg87gbbayandrrcgaqawzliqb6g1jbk8b61x") + (patch "010" "0k3vyrjs2g6y2cfs03l2gp37fhxgqpiwvxb1c7z4q88cbb32x3km") ] diff --git a/pkgs/by-name/rh/rhash/default.nix b/pkgs/by-name/rh/rhash/default.nix index e789eeb..29a041a 100644 --- a/pkgs/by-name/rh/rhash/default.nix +++ b/pkgs/by-name/rh/rhash/default.nix @@ -1,8 +1,9 @@ -{ lib -, stdenv -, fetchFromGitHub -, which -, enableStatic ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + which, + enableStatic ? stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation rec { @@ -37,9 +38,7 @@ stdenv.mkDerivation rec { installTargets = [ "install" "install-lib-headers" - ] ++ lib.optionals (!enableStatic) [ - "install-lib-so-link" - ]; + ] ++ lib.optionals (!enableStatic) [ "install-lib-so-link" ]; meta = with lib; { homepage = "https://rhash.sourceforge.net/"; diff --git a/pkgs/by-name/rs/rsync/default.nix b/pkgs/by-name/rs/rsync/default.nix index f2d59c9..963fc81 100644 --- a/pkgs/by-name/rs/rsync/default.nix +++ b/pkgs/by-name/rs/rsync/default.nix @@ -1,20 +1,21 @@ -{ lib -, stdenv -, fetchurl -, perl -, libiconv -, zlib -, popt -, enableACLs ? lib.meta.availableOn stdenv.hostPlatform acl -, acl -, enableLZ4 ? true -, lz4 -, enableOpenSSL ? true -, openssl -, enableXXHash ? true -, xxHash -, enableZstd ? true -, zstd +{ + lib, + stdenv, + fetchurl, + perl, + libiconv, + zlib, + popt, + enableACLs ? lib.meta.availableOn stdenv.hostPlatform acl, + acl, + enableLZ4 ? true, + lz4, + enableOpenSSL ? true, + openssl, + enableXXHash ? true, + xxHash, + enableZstd ? true, + zstd, # for passthru.tests # , nixosTests }: @@ -39,27 +40,32 @@ stdenv.mkDerivation rec { ./configure.ac-fix-failing-IPv6-check.patch ]; - buildInputs = [ libiconv zlib popt ] + buildInputs = + [ + libiconv + zlib + popt + ] ++ lib.optional enableACLs acl ++ lib.optional enableZstd zstd ++ lib.optional enableLZ4 lz4 ++ lib.optional enableOpenSSL openssl ++ lib.optional enableXXHash xxHash; - configureFlags = [ - "--with-nobody-group=nogroup" + configureFlags = + [ + "--with-nobody-group=nogroup" - # disable the included zlib explicitly as it otherwise still compiles and - # links them even. - "--with-included-zlib=no" - ] ++ lib.optionals (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_64) [ - # fix `multiversioning needs 'ifunc' which is not supported on this target` error - "--disable-roll-simd" - ] ++ lib.optionals (!enableZstd) [ - "--disable-zstd" - ] ++ lib.optionals (!enableXXHash) [ - "--disable-xxhash" - ]; + # disable the included zlib explicitly as it otherwise still compiles and + # links them even. + "--with-included-zlib=no" + ] + ++ lib.optionals (stdenv.hostPlatform.isMusl && stdenv.hostPlatform.isx86_64) [ + # fix `multiversioning needs 'ifunc' which is not supported on this target` error + "--disable-roll-simd" + ] + ++ lib.optionals (!enableZstd) [ "--disable-zstd" ] + ++ lib.optionals (!enableXXHash) [ "--disable-xxhash" ]; enableParallelBuilding = true; @@ -70,7 +76,11 @@ stdenv.mkDerivation rec { homepage = "https://rsync.samba.org/"; license = licenses.gpl3Plus; mainProgram = "rsync"; - maintainers = with lib.maintainers; [ ehmry kampfschlaefer ivan ]; + maintainers = with lib.maintainers; [ + ehmry + kampfschlaefer + ivan + ]; platforms = platforms.unix; }; } diff --git a/pkgs/by-name/rs/rsync/packages.nix b/pkgs/by-name/rs/rsync/packages.nix index 895efbe..c25b504 100644 --- a/pkgs/by-name/rs/rsync/packages.nix +++ b/pkgs/by-name/rs/rsync/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { rsync = callPackage ./. (config.rsync or { }); rrsync = callPackage ./rrsync.nix { }; } diff --git a/pkgs/by-name/rs/rsync/rrsync.nix b/pkgs/by-name/rs/rsync/rrsync.nix index 09f9ab2..53c6b0e 100644 --- a/pkgs/by-name/rs/rsync/rrsync.nix +++ b/pkgs/by-name/rs/rsync/rrsync.nix @@ -1,4 +1,8 @@ -{ stdenv, python3, rsync }: +{ + stdenv, + python3, + rsync, +}: stdenv.mkDerivation { pname = "rrsync"; diff --git a/pkgs/by-name/rt/rtmpdump/default.nix b/pkgs/by-name/rt/rtmpdump/default.nix index b6293ff..0a4d89e 100644 --- a/pkgs/by-name/rt/rtmpdump/default.nix +++ b/pkgs/by-name/rt/rtmpdump/default.nix @@ -1,13 +1,14 @@ -{ lib -, stdenv -, fetchgit -, fetchpatch -, zlib -, gnutlsSupport ? false -, gnutls -, nettle -, opensslSupport ? true -, openssl +{ + lib, + stdenv, + fetchgit, + fetchpatch, + zlib, + gnutlsSupport ? false, + gnutls, + nettle, + opensslSupport ? true, + openssl, }: assert (gnutlsSupport || opensslSupport); @@ -31,20 +32,28 @@ stdenv.mkDerivation { }) ]; - makeFlags = [ - "prefix=$(out)" - "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ] + makeFlags = + [ + "prefix=$(out)" + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" + ] ++ lib.optional gnutlsSupport "CRYPTO=GNUTLS" ++ lib.optional opensslSupport "CRYPTO=OPENSSL" ++ lib.optional stdenv.isDarwin "SYS=darwin" ++ lib.optional stdenv.cc.isClang "CC=clang"; - propagatedBuildInputs = [ zlib ] - ++ lib.optionals gnutlsSupport [ gnutls nettle ] + propagatedBuildInputs = + [ zlib ] + ++ lib.optionals gnutlsSupport [ + gnutls + nettle + ] ++ lib.optional opensslSupport openssl; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; separateDebugInfo = true; diff --git a/pkgs/by-name/rt/rtmpdump/packages.nix b/pkgs/by-name/rt/rtmpdump/packages.nix index 4a568bc..a20e5dd 100644 --- a/pkgs/by-name/rt/rtmpdump/packages.nix +++ b/pkgs/by-name/rt/rtmpdump/packages.nix @@ -1,8 +1,10 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { rtmpdump = callPackage ./. { }; - rtmpdump_gnutls = rtmpdump.override { gnutlsSupport = true; opensslSupport = false; }; + rtmpdump_gnutls = rtmpdump.override { + gnutlsSupport = true; + opensslSupport = false; + }; } diff --git a/pkgs/by-name/ru/rust-audit-info/default.nix b/pkgs/by-name/ru/rust-audit-info/default.nix index afd53df..19fa33b 100644 --- a/pkgs/by-name/ru/rust-audit-info/default.nix +++ b/pkgs/by-name/ru/rust-audit-info/default.nix @@ -1,4 +1,8 @@ -{ lib, rustPlatform, fetchCrate }: +{ + lib, + rustPlatform, + fetchCrate, +}: rustPlatform.buildRustPackage rec { pname = "rust-audit-info"; @@ -15,7 +19,10 @@ rustPlatform.buildRustPackage rec { description = "A command-line tool to extract the dependency trees embedded in binaries by cargo-auditable"; mainProgram = "rust-audit-info"; homepage = "https://github.com/rust-secure-code/cargo-auditable/tree/master/rust-audit-info"; - license = with licenses; [ mit /* or */ asl20 ]; + license = with licenses; [ + mit # or + asl20 + ]; maintainers = with maintainers; [ figsoda ]; }; } diff --git a/pkgs/by-name/ru/rust/1_77.nix b/pkgs/by-name/ru/rust/1_77.nix index ec65c85..68bf27c 100644 --- a/pkgs/by-name/ru/rust/1_77.nix +++ b/pkgs/by-name/ru/rust/1_77.nix @@ -9,52 +9,73 @@ # https://github.com/rust-lang/rust/blob//.gitmodules # 3. Firefox and Thunderbird should still build on x86_64-linux. -{ stdenv, lib -, newScope, callPackage -, CoreFoundation, Security, SystemConfiguration -, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost, pkgsTargetTarget -, makeRustPlatform -, wrapRustcWith -, llvmPackages_17, llvm_17 -, path -} @ args: +{ + stdenv, + lib, + newScope, + callPackage, + CoreFoundation, + Security, + SystemConfiguration, + pkgsBuildTarget, + pkgsBuildBuild, + pkgsBuildHost, + pkgsTargetTarget, + makeRustPlatform, + wrapRustcWith, + llvmPackages_17, + llvm_17, + path, +}@args: -import ./default.nix { - rustcVersion = "1.77.1"; - rustcSha256 = "7hBuTFafUtujtbKCsQWCD4a9j2s9CcBrjc6C+xuzpKE="; +import ./default.nix + { + rustcVersion = "1.77.1"; + rustcSha256 = "7hBuTFafUtujtbKCsQWCD4a9j2s9CcBrjc6C+xuzpKE="; - llvmSharedForBuild = pkgsBuildBuild.llvmPackages_17.libllvm.override { enableSharedLibraries = true; }; - llvmSharedForHost = pkgsBuildHost.llvmPackages_17.libllvm.override { enableSharedLibraries = true; }; - llvmSharedForTarget = pkgsBuildTarget.llvmPackages_17.libllvm.override { enableSharedLibraries = true; }; + llvmSharedForBuild = pkgsBuildBuild.llvmPackages_17.libllvm.override { + enableSharedLibraries = true; + }; + llvmSharedForHost = pkgsBuildHost.llvmPackages_17.libllvm.override { + enableSharedLibraries = true; + }; + llvmSharedForTarget = pkgsBuildTarget.llvmPackages_17.libllvm.override { + enableSharedLibraries = true; + }; - # For use at runtime - llvmShared = llvm_17.override { enableSharedLibraries = true; }; + # For use at runtime + llvmShared = llvm_17.override { enableSharedLibraries = true; }; - # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox - llvmPackages = llvmPackages_17; + # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox + llvmPackages = llvmPackages_17; - # Note: the version MUST be one version prior to the version we're - # building - bootstrapVersion = "1.76.0"; + # Note: the version MUST be one version prior to the version we're + # building + bootstrapVersion = "1.76.0"; - # fetch hashes by running `print-hashes.sh ${bootstrapVersion}` - bootstrapHashes = { - i686-unknown-linux-gnu = "4c3eefc9341b8809235e6c4fbcbc19ab52a5cbe771292c400df068c12984fa3e"; - x86_64-unknown-linux-gnu = "9d589d2036b503cc45ecc94992d616fb3deec074deb36cacc2f5c212408f7399"; - x86_64-unknown-linux-musl = "aa8568f4d262468aaf4f622bd421c5435b24454d8fbcdae48da1162962205384"; - arm-unknown-linux-gnueabihf = "7d1da067362fc64bcad198d90a61e024d5712aed76e17b28e1cd7e8ba263cc6f"; - armv7-unknown-linux-gnueabihf = "c03346d56d4a860cd3a8d2d2a7ea75c510b68204e3ad97b3770076595261c913"; - aarch64-unknown-linux-gnu = "2e8313421e8fb673efdf356cdfdd4bc16516f2610d4f6faa01327983104c05a0"; - aarch64-unknown-linux-musl = "a1d1c8ccb8ea00cfa2b79d80411b8eb22b2bef5214f86536825361e98d7c617a"; - x86_64-apple-darwin = "7bdbe085695df8e46389115e99eda7beed37a9494f6b961b45554c658e53b8e7"; - aarch64-apple-darwin = "17496f15c3cb6ff73d5c36f5b54cc110f1ac31fa09521a7991c0d7ddd890dceb"; - powerpc64le-unknown-linux-gnu = "44b3494675284d26b04747a824dc974e32fd8fd46fc0aa06a7c8ebe851332d2c"; - riscv64gc-unknown-linux-gnu = "4a9db321874fc441235b71eb8aa295fc50251305e461540b25b4eef89fb56255"; - }; + # fetch hashes by running `print-hashes.sh ${bootstrapVersion}` + bootstrapHashes = { + i686-unknown-linux-gnu = "4c3eefc9341b8809235e6c4fbcbc19ab52a5cbe771292c400df068c12984fa3e"; + x86_64-unknown-linux-gnu = "9d589d2036b503cc45ecc94992d616fb3deec074deb36cacc2f5c212408f7399"; + x86_64-unknown-linux-musl = "aa8568f4d262468aaf4f622bd421c5435b24454d8fbcdae48da1162962205384"; + arm-unknown-linux-gnueabihf = "7d1da067362fc64bcad198d90a61e024d5712aed76e17b28e1cd7e8ba263cc6f"; + armv7-unknown-linux-gnueabihf = "c03346d56d4a860cd3a8d2d2a7ea75c510b68204e3ad97b3770076595261c913"; + aarch64-unknown-linux-gnu = "2e8313421e8fb673efdf356cdfdd4bc16516f2610d4f6faa01327983104c05a0"; + aarch64-unknown-linux-musl = "a1d1c8ccb8ea00cfa2b79d80411b8eb22b2bef5214f86536825361e98d7c617a"; + x86_64-apple-darwin = "7bdbe085695df8e46389115e99eda7beed37a9494f6b961b45554c658e53b8e7"; + aarch64-apple-darwin = "17496f15c3cb6ff73d5c36f5b54cc110f1ac31fa09521a7991c0d7ddd890dceb"; + powerpc64le-unknown-linux-gnu = "44b3494675284d26b04747a824dc974e32fd8fd46fc0aa06a7c8ebe851332d2c"; + riscv64gc-unknown-linux-gnu = "4a9db321874fc441235b71eb8aa295fc50251305e461540b25b4eef89fb56255"; + }; - selectRustPackage = pkgs: pkgs.rust_1_77; + selectRustPackage = pkgs: pkgs.rust_1_77; - rustcPatches = [ ]; -} + rustcPatches = [ ]; + } -(builtins.removeAttrs args [ "llvmPackages_17" "llvm_17"]) + ( + builtins.removeAttrs args [ + "llvmPackages_17" + "llvm_17" + ] + ) diff --git a/pkgs/by-name/ru/rust/binary.nix b/pkgs/by-name/ru/rust/binary.nix index c546e27..de743e5 100644 --- a/pkgs/by-name/ru/rust/binary.nix +++ b/pkgs/by-name/ru/rust/binary.nix @@ -1,9 +1,18 @@ -{ lib, stdenv, makeWrapper, wrapRustc, bash, curl, darwin, zlib -, autoPatchelfHook, gcc -, version -, src -, platform -, versionType +{ + lib, + stdenv, + makeWrapper, + wrapRustc, + bash, + curl, + darwin, + zlib, + autoPatchelfHook, + gcc, + version, + src, + platform, + versionType, }: let @@ -12,10 +21,7 @@ let bootstrapping = versionType == "bootstrap"; - installComponents - = "rustc,rust-std-${platform}" - + (optionalString bootstrapping ",cargo") - ; + installComponents = "rustc,rust-std-${platform}" + (optionalString bootstrapping ",cargo"); in rec { @@ -30,12 +36,19 @@ rec { sourceProvenance = with sourceTypes; [ binaryNativeCode ]; description = "A safe, concurrent, practical language"; maintainers = with maintainers; [ qknight ]; - license = [ licenses.mit licenses.asl20 ]; + license = [ + licenses.mit + licenses.asl20 + ]; }; nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook; - buildInputs = [ bash ] - ++ lib.optionals (!stdenv.isDarwin) [ gcc.cc.lib zlib ] + buildInputs = + [ bash ] + ++ lib.optionals (!stdenv.isDarwin) [ + gcc.cc.lib + zlib + ] ++ lib.optional stdenv.isDarwin Security; postPatch = '' @@ -75,14 +88,16 @@ rec { sourceProvenance = with sourceTypes; [ binaryNativeCode ]; description = "The Rust package manager"; maintainers = with maintainers; [ qknight ]; - license = [ licenses.mit licenses.asl20 ]; + license = [ + licenses.mit + licenses.asl20 + ]; }; - nativeBuildInputs = [ makeWrapper ] - ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook; - buildInputs = [ bash ] - ++ lib.optional (!stdenv.isDarwin) gcc.cc.lib - ++ lib.optional stdenv.isDarwin Security; + nativeBuildInputs = [ makeWrapper ] ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook; + buildInputs = [ + bash + ] ++ lib.optional (!stdenv.isDarwin) gcc.cc.lib ++ lib.optional stdenv.isDarwin Security; postPatch = '' patchShebangs . diff --git a/pkgs/by-name/ru/rust/bootstrap.nix b/pkgs/by-name/ru/rust/bootstrap.nix index 97ac692..e01dac1 100644 --- a/pkgs/by-name/ru/rust/bootstrap.nix +++ b/pkgs/by-name/ru/rust/bootstrap.nix @@ -1,14 +1,21 @@ -{ stdenv, fetchurl, callPackage, version, hashes }: +{ + stdenv, + fetchurl, + callPackage, + version, + hashes, +}: let platform = stdenv.hostPlatform.rust.rustcTarget; src = fetchurl { - url = "https://static.rust-lang.org/dist/rust-${version}-${platform}.tar.gz"; - sha256 = hashes.${platform} or (throw "missing bootstrap url for platform ${platform}"); + url = "https://static.rust-lang.org/dist/rust-${version}-${platform}.tar.gz"; + sha256 = hashes.${platform} or (throw "missing bootstrap url for platform ${platform}"); }; -in callPackage ./binary.nix - { inherit version src platform; - versionType = "bootstrap"; - } +in +callPackage ./binary.nix { + inherit version src platform; + versionType = "bootstrap"; +} diff --git a/pkgs/by-name/ru/rust/cargo-auditable-cargo-wrapper.nix b/pkgs/by-name/ru/rust/cargo-auditable-cargo-wrapper.nix index 6e982ae..526bdaf 100644 --- a/pkgs/by-name/ru/rust/cargo-auditable-cargo-wrapper.nix +++ b/pkgs/by-name/ru/rust/cargo-auditable-cargo-wrapper.nix @@ -1,24 +1,36 @@ -{ lib, runCommand, makeBinaryWrapper, rust-audit-info, cargo, cargo-auditable }: +{ + lib, + runCommand, + makeBinaryWrapper, + rust-audit-info, + cargo, + cargo-auditable, +}: if cargo-auditable.meta.broken then cargo else -runCommand "auditable-${cargo.name}" { - nativeBuildInputs = [ makeBinaryWrapper ]; + runCommand "auditable-${cargo.name}" + { + nativeBuildInputs = [ makeBinaryWrapper ]; - passthru.tests = runCommand "rust-audit-info-test" { - nativeBuildInputs = [ rust-audit-info ]; - } '' - rust-audit-info ${lib.getBin rust-audit-info}/bin/rust-audit-info > $out - ''; + passthru.tests = runCommand "rust-audit-info-test" { nativeBuildInputs = [ rust-audit-info ]; } '' + rust-audit-info ${lib.getBin rust-audit-info}/bin/rust-audit-info > $out + ''; - meta = cargo-auditable.meta // { - mainProgram = "cargo"; - }; -} '' - mkdir -p $out/bin - makeWrapper ${cargo}/bin/cargo $out/bin/cargo \ - --set CARGO_AUDITABLE_IGNORE_UNSUPPORTED 1 \ - --prefix PATH : ${lib.makeBinPath [ cargo cargo-auditable ]} \ - --add-flags auditable -'' + meta = cargo-auditable.meta // { + mainProgram = "cargo"; + }; + } + '' + mkdir -p $out/bin + makeWrapper ${cargo}/bin/cargo $out/bin/cargo \ + --set CARGO_AUDITABLE_IGNORE_UNSUPPORTED 1 \ + --prefix PATH : ${ + lib.makeBinPath [ + cargo + cargo-auditable + ] + } \ + --add-flags auditable + '' diff --git a/pkgs/by-name/ru/rust/cargo-auditable.nix b/pkgs/by-name/ru/rust/cargo-auditable.nix index 1cf765b..6694b60 100644 --- a/pkgs/by-name/ru/rust/cargo-auditable.nix +++ b/pkgs/by-name/ru/rust/cargo-auditable.nix @@ -1,4 +1,12 @@ -{ lib, buildPackages, fetchFromGitHub, fetchpatch, makeRustPlatform, installShellFiles, stdenv }: +{ + lib, + buildPackages, + fetchFromGitHub, + fetchpatch, + makeRustPlatform, + installShellFiles, + stdenv, +}: let args = rec { @@ -32,7 +40,10 @@ let mainProgram = "cargo-auditable"; homepage = "https://github.com/rust-secure-code/cargo-auditable"; changelog = "https://github.com/rust-secure-code/cargo-auditable/blob/v${version}/cargo-auditable/CHANGELOG.md"; - license = with licenses; [ mit /* or */ asl20 ]; + license = with licenses; [ + mit # or + asl20 + ]; maintainers = with maintainers; [ figsoda ]; broken = stdenv.hostPlatform != stdenv.buildPlatform; }; @@ -40,26 +51,23 @@ let rustPlatform = makeRustPlatform { inherit (buildPackages) rustc; - cargo = buildPackages.cargo.override { - auditable = false; - }; + cargo = buildPackages.cargo.override { auditable = false; }; }; - bootstrap = rustPlatform.buildRustPackage (args // { - auditable = false; - }); + bootstrap = rustPlatform.buildRustPackage (args // { auditable = false; }); in -rustPlatform.buildRustPackage.override { cargo-auditable = bootstrap; } (args // { - nativeBuildInputs = [ - installShellFiles - ]; +rustPlatform.buildRustPackage.override { cargo-auditable = bootstrap; } ( + args + // { + nativeBuildInputs = [ installShellFiles ]; - postInstall = '' - installManPage cargo-auditable/cargo-auditable.1 - ''; + postInstall = '' + installManPage cargo-auditable/cargo-auditable.1 + ''; - passthru = { - inherit bootstrap; - }; -}) + passthru = { + inherit bootstrap; + }; + } +) diff --git a/pkgs/by-name/ru/rust/cargo.nix b/pkgs/by-name/ru/rust/cargo.nix index b0c40c5..c80a9b7 100644 --- a/pkgs/by-name/ru/rust/cargo.nix +++ b/pkgs/by-name/ru/rust/cargo.nix @@ -1,85 +1,115 @@ -{ lib, stdenv, pkgsBuildHost, pkgsHostHost -, file, curl, pkg-config, python3, openssl, cmake, zlib -, installShellFiles, makeWrapper, rustPlatform, rustc -, CoreFoundation, Security -, auditable ? !cargo-auditable.meta.broken -, cargo-auditable -, pkgsBuildBuild +{ + lib, + stdenv, + pkgsBuildHost, + pkgsHostHost, + file, + curl, + pkg-config, + python3, + openssl, + cmake, + zlib, + installShellFiles, + makeWrapper, + rustPlatform, + rustc, + CoreFoundation, + Security, + auditable ? !cargo-auditable.meta.broken, + cargo-auditable, + pkgsBuildBuild, }: -rustPlatform.buildRustPackage.override { - cargo-auditable = cargo-auditable.bootstrap; -} ({ - pname = "cargo"; - inherit (rustc.unwrapped) version src; +rustPlatform.buildRustPackage.override { cargo-auditable = cargo-auditable.bootstrap; } ( + { + pname = "cargo"; + inherit (rustc.unwrapped) version src; - # the rust source tarball already has all the dependencies vendored, no need to fetch them again - cargoVendorDir = "vendor"; - buildAndTestSubdir = "src/tools/cargo"; + # the rust source tarball already has all the dependencies vendored, no need to fetch them again + cargoVendorDir = "vendor"; + buildAndTestSubdir = "src/tools/cargo"; - inherit auditable; + inherit auditable; - passthru = { - rustc = rustc; - inherit (rustc.unwrapped) tests; - }; + passthru = { + rustc = rustc; + inherit (rustc.unwrapped) tests; + }; - # changes hash of vendor directory otherwise - dontUpdateAutotoolsGnuConfigScripts = true; + # changes hash of vendor directory otherwise + dontUpdateAutotoolsGnuConfigScripts = true; - nativeBuildInputs = [ - pkg-config cmake installShellFiles makeWrapper - (lib.getDev pkgsHostHost.curl) - zlib - ]; - buildInputs = [ file curl python3 openssl zlib ] - ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ]; + nativeBuildInputs = [ + pkg-config + cmake + installShellFiles + makeWrapper + (lib.getDev pkgsHostHost.curl) + zlib + ]; + buildInputs = + [ + file + curl + python3 + openssl + zlib + ] + ++ lib.optionals stdenv.isDarwin [ + CoreFoundation + Security + ]; - # cargo uses git-rs which is made for a version of libgit2 from recent master that - # is not compatible with the current version in nixpkgs. - #LIBGIT2_SYS_USE_PKG_CONFIG = 1; + # cargo uses git-rs which is made for a version of libgit2 from recent master that + # is not compatible with the current version in nixpkgs. + #LIBGIT2_SYS_USE_PKG_CONFIG = 1; - # fixes: the cargo feature `edition` requires a nightly version of Cargo, but this is the `stable` channel - RUSTC_BOOTSTRAP = 1; + # fixes: the cargo feature `edition` requires a nightly version of Cargo, but this is the `stable` channel + RUSTC_BOOTSTRAP = 1; - postInstall = '' - wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" + postInstall = '' + wrapProgram "$out/bin/cargo" --suffix PATH : "${rustc}/bin" - installManPage src/tools/cargo/src/etc/man/* + installManPage src/tools/cargo/src/etc/man/* - installShellCompletion --bash --name cargo \ - src/tools/cargo/src/etc/cargo.bashcomp.sh + installShellCompletion --bash --name cargo \ + src/tools/cargo/src/etc/cargo.bashcomp.sh - installShellCompletion --zsh src/tools/cargo/src/etc/_cargo - ''; + installShellCompletion --zsh src/tools/cargo/src/etc/_cargo + ''; - checkPhase = '' - # Disable cross compilation tests - export CFG_DISABLE_CROSS_TESTS=1 - cargo test - ''; + checkPhase = '' + # Disable cross compilation tests + export CFG_DISABLE_CROSS_TESTS=1 + cargo test + ''; - # Disable check phase as there are failures (4 tests fail) - doCheck = false; + # Disable check phase as there are failures (4 tests fail) + doCheck = false; - doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf; - installCheckPhase = '' - runHook preInstallCheck - readelf -a $out/bin/.cargo-wrapped | grep -F 'Shared library: [libcurl.so' - runHook postInstallCheck - ''; + doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf; + installCheckPhase = '' + runHook preInstallCheck + readelf -a $out/bin/.cargo-wrapped | grep -F 'Shared library: [libcurl.so' + runHook postInstallCheck + ''; - meta = with lib; { - homepage = "https://crates.io"; - description = "Downloads your Rust project's dependencies and builds your project"; - mainProgram = "cargo"; - maintainers = teams.rust.members; - license = [ licenses.mit licenses.asl20 ]; - platforms = platforms.unix; - # https://github.com/alexcrichton/nghttp2-rs/issues/2 - broken = stdenv.hostPlatform.isx86 && stdenv.buildPlatform != stdenv.hostPlatform; - }; -} -// lib.optionalAttrs (stdenv.buildPlatform.rust.rustcTarget != stdenv.hostPlatform.rust.rustcTarget) { - HOST_PKG_CONFIG_PATH="${pkgsBuildBuild.pkg-config}/bin/pkg-config"; -}) + meta = with lib; { + homepage = "https://crates.io"; + description = "Downloads your Rust project's dependencies and builds your project"; + mainProgram = "cargo"; + maintainers = teams.rust.members; + license = [ + licenses.mit + licenses.asl20 + ]; + platforms = platforms.unix; + # https://github.com/alexcrichton/nghttp2-rs/issues/2 + broken = stdenv.hostPlatform.isx86 && stdenv.buildPlatform != stdenv.hostPlatform; + }; + } + // lib.optionalAttrs ( + stdenv.buildPlatform.rust.rustcTarget != stdenv.hostPlatform.rust.rustcTarget + ) { HOST_PKG_CONFIG_PATH = "${pkgsBuildBuild.pkg-config}/bin/pkg-config"; } +) diff --git a/pkgs/by-name/ru/rust/cargo_cross.nix b/pkgs/by-name/ru/rust/cargo_cross.nix index ba7651e..241fb84 100644 --- a/pkgs/by-name/ru/rust/cargo_cross.nix +++ b/pkgs/by-name/ru/rust/cargo_cross.nix @@ -1,14 +1,24 @@ -{ runCommand, stdenv, lib, pkgsBuildBuild, makeShellWrapper, rustc, ... }: +{ + runCommand, + stdenv, + lib, + pkgsBuildBuild, + makeShellWrapper, + rustc, + ... +}: -runCommand "${stdenv.targetPlatform.config}-cargo-${lib.getVersion pkgsBuildBuild.cargo}" { - # Use depsBuildBuild or it tries to use target-runtimeShell - depsBuildBuild = [ makeShellWrapper ]; +runCommand "${stdenv.targetPlatform.config}-cargo-${lib.getVersion pkgsBuildBuild.cargo}" + { + # Use depsBuildBuild or it tries to use target-runtimeShell + depsBuildBuild = [ makeShellWrapper ]; - inherit (pkgsBuildBuild.cargo) meta; -} '' - mkdir -p $out/bin - ln -s ${pkgsBuildBuild.cargo}/share $out/share + inherit (pkgsBuildBuild.cargo) meta; + } + '' + mkdir -p $out/bin + ln -s ${pkgsBuildBuild.cargo}/share $out/share - makeWrapper "${pkgsBuildBuild.cargo}/bin/cargo" "$out/bin/cargo" \ - --prefix PATH : "${rustc}/bin" - '' + makeWrapper "${pkgsBuildBuild.cargo}/bin/cargo" "$out/bin/cargo" \ + --prefix PATH : "${rustc}/bin" + '' diff --git a/pkgs/by-name/ru/rust/clippy.nix b/pkgs/by-name/ru/rust/clippy.nix index d9506a4..ba73b1c 100644 --- a/pkgs/by-name/ru/rust/clippy.nix +++ b/pkgs/by-name/ru/rust/clippy.nix @@ -1,4 +1,11 @@ -{ stdenv, lib, rustPlatform, rustc, Security, patchelf }: +{ + stdenv, + lib, + rustPlatform, + rustc, + Security, + patchelf, +}: rustPlatform.buildRustPackage { pname = "clippy"; @@ -13,8 +20,7 @@ rustPlatform.buildRustPackage { # changes hash of vendor directory otherwise dontUpdateAutotoolsGnuConfigScripts = true; - buildInputs = [ rustc.llvm ] - ++ lib.optionals stdenv.isDarwin [ Security ]; + buildInputs = [ rustc.llvm ] ++ lib.optionals stdenv.isDarwin [ Security ]; # fixes: error: the option `Z` is only accepted on the nightly compiler RUSTC_BOOTSTRAP = 1; @@ -40,7 +46,10 @@ rustPlatform.buildRustPackage { description = "A bunch of lints to catch common mistakes and improve your Rust code"; mainProgram = "cargo-clippy"; maintainers = with maintainers; [ basvandijk ] ++ teams.rust.members; - license = with licenses; [ mit asl20 ]; + license = with licenses; [ + mit + asl20 + ]; platforms = platforms.unix; }; } diff --git a/pkgs/by-name/ru/rust/default.nix b/pkgs/by-name/ru/rust/default.nix index 77f1cd9..6c9cb10 100644 --- a/pkgs/by-name/ru/rust/default.nix +++ b/pkgs/by-name/ru/rust/default.nix @@ -1,41 +1,62 @@ -{ rustcVersion -, rustcSha256 -, enableRustcDev ? true -, bootstrapVersion -, bootstrapHashes -, selectRustPackage -, rustcPatches ? [] -, llvmShared -, llvmSharedForBuild -, llvmSharedForHost -, llvmSharedForTarget -, llvmPackages # Exposed through rustc for LTO in Firefox +{ + rustcVersion, + rustcSha256, + enableRustcDev ? true, + bootstrapVersion, + bootstrapHashes, + selectRustPackage, + rustcPatches ? [ ], + llvmShared, + llvmSharedForBuild, + llvmSharedForHost, + llvmSharedForTarget, + llvmPackages, # Exposed through rustc for LTO in Firefox }: -{ stdenv, lib -, newScope, callPackage -, CoreFoundation, Security, SystemConfiguration -, pkgsBuildBuild -, pkgsBuildHost -, pkgsBuildTarget -, pkgsTargetTarget -, makeRustPlatform -, wrapRustcWith -, path +{ + stdenv, + lib, + newScope, + callPackage, + CoreFoundation, + Security, + SystemConfiguration, + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsTargetTarget, + makeRustPlatform, + wrapRustcWith, + path, }: let # Use `import` to make sure no packages sneak in here. lib' = import (path + /pkgs/build-support/rust/lib) { - inherit lib stdenv pkgsBuildHost pkgsBuildTarget pkgsTargetTarget; + inherit + lib + stdenv + pkgsBuildHost + pkgsBuildTarget + pkgsTargetTarget + ; }; # Allow faster cross compiler generation by reusing Build artifacts - fastCross = (stdenv.buildPlatform == stdenv.hostPlatform) && (stdenv.hostPlatform != stdenv.targetPlatform); + fastCross = + (stdenv.buildPlatform == stdenv.hostPlatform) && (stdenv.hostPlatform != stdenv.targetPlatform); in { lib = lib'; # Backwards compat before `lib` was factored out. - inherit (lib') toTargetArch toTargetOs toRustTarget toRustTargetSpec IsNoStdTarget toRustTargetForUseInEnvVars envVars; + inherit (lib') + toTargetArch + toTargetOs + toRustTarget + toRustTargetSpec + IsNoStdTarget + toRustTargetForUseInEnvVars + envVars + ; # This just contains tools for now. But it would conceivably contain # libraries too, say if we picked some default/recommended versions to build @@ -53,55 +74,75 @@ in version = bootstrapVersion; hashes = bootstrapHashes; }; - stable = lib.makeScope newScope (self: let - # Like `buildRustPackages`, but may also contain prebuilt binaries to - # break cycle. Just like `bootstrapTools` for nixpkgs as a whole, - # nothing in the final package set should refer to this. - bootstrapRustPackages = if fastCross - then pkgsBuildBuild.rustPackages - else - self.buildRustPackages.overrideScope (_: _: - lib.optionalAttrs (stdenv.buildPlatform == stdenv.hostPlatform) - (selectRustPackage pkgsBuildHost).packages.prebuilt); - bootRustPlatform = makeRustPlatform bootstrapRustPackages; - in { - # Packages suitable for build-time, e.g. `build.rs`-type stuff. - buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // { __attrsFailEvaluation = true; }; - # Analogous to stdenv - rustPlatform = makeRustPlatform self.buildRustPackages; - rustc-unwrapped = self.callPackage ./rustc.nix ({ - version = rustcVersion; - sha256 = rustcSha256; - inherit enableRustcDev; - inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackages fastCross; + stable = lib.makeScope newScope ( + self: + let + # Like `buildRustPackages`, but may also contain prebuilt binaries to + # break cycle. Just like `bootstrapTools` for nixpkgs as a whole, + # nothing in the final package set should refer to this. + bootstrapRustPackages = + if fastCross then + pkgsBuildBuild.rustPackages + else + self.buildRustPackages.overrideScope ( + _: _: + lib.optionalAttrs (stdenv.buildPlatform == stdenv.hostPlatform) + (selectRustPackage pkgsBuildHost).packages.prebuilt + ); + bootRustPlatform = makeRustPlatform bootstrapRustPackages; + in + { + # Packages suitable for build-time, e.g. `build.rs`-type stuff. + buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // { + __attrsFailEvaluation = true; + }; + # Analogous to stdenv + rustPlatform = makeRustPlatform self.buildRustPackages; + rustc-unwrapped = self.callPackage ./rustc.nix ({ + version = rustcVersion; + sha256 = rustcSha256; + inherit enableRustcDev; + inherit + llvmShared + llvmSharedForBuild + llvmSharedForHost + llvmSharedForTarget + llvmPackages + fastCross + ; - patches = rustcPatches; + patches = rustcPatches; - # Use boot package set to break cycle - inherit (bootstrapRustPackages) cargo rustc rustfmt; - }); - rustc = wrapRustcWith { - inherit (self) rustc-unwrapped; - sysroot = if fastCross then self.rustc-unwrapped else null; - }; - rustfmt = self.callPackage ./rustfmt.nix { - inherit Security; - inherit (self.buildRustPackages) rustc; - }; - cargo = if (!fastCross) then self.callPackage ./cargo.nix { - # Use boot package set to break cycle - rustPlatform = bootRustPlatform; - inherit CoreFoundation Security; - } else self.callPackage ./cargo_cross.nix {}; - cargo-auditable = self.callPackage ./cargo-auditable.nix { }; - cargo-auditable-cargo-wrapper = self.callPackage ./cargo-auditable-cargo-wrapper.nix { }; - clippy = self.callPackage ./clippy.nix { - # We want to use self, not buildRustPackages, so that - # buildPackages.clippy uses the cross compiler and supports - # linting for the target platform. - rustPlatform = makeRustPlatform self; - inherit Security; - }; - }); + # Use boot package set to break cycle + inherit (bootstrapRustPackages) cargo rustc rustfmt; + }); + rustc = wrapRustcWith { + inherit (self) rustc-unwrapped; + sysroot = if fastCross then self.rustc-unwrapped else null; + }; + rustfmt = self.callPackage ./rustfmt.nix { + inherit Security; + inherit (self.buildRustPackages) rustc; + }; + cargo = + if (!fastCross) then + self.callPackage ./cargo.nix { + # Use boot package set to break cycle + rustPlatform = bootRustPlatform; + inherit CoreFoundation Security; + } + else + self.callPackage ./cargo_cross.nix { }; + cargo-auditable = self.callPackage ./cargo-auditable.nix { }; + cargo-auditable-cargo-wrapper = self.callPackage ./cargo-auditable-cargo-wrapper.nix { }; + clippy = self.callPackage ./clippy.nix { + # We want to use self, not buildRustPackages, so that + # buildPackages.clippy uses the cross compiler and supports + # linting for the target platform. + rustPlatform = makeRustPlatform self; + inherit Security; + }; + } + ); }; } diff --git a/pkgs/by-name/ru/rust/make-rust-platform.nix b/pkgs/by-name/ru/rust/make-rust-platform.nix index 3e5dfbd..b37d83d 100644 --- a/pkgs/by-name/ru/rust/make-rust-platform.nix +++ b/pkgs/by-name/ru/rust/make-rust-platform.nix @@ -1,10 +1,20 @@ -{ lib, buildPackages, callPackage, callPackages, cargo-auditable, stdenv, runCommand, path }@prev: +{ + lib, + buildPackages, + callPackage, + callPackages, + cargo-auditable, + stdenv, + runCommand, + path, +}@prev: -{ rustc -, cargo -, cargo-auditable ? prev.cargo-auditable -, stdenv ? prev.stdenv -, ... +{ + rustc, + cargo, + cargo-auditable ? prev.cargo-auditable, + stdenv ? prev.stdenv, + ... }: rec { @@ -13,28 +23,45 @@ rec { cargo = lib.warn "rustPlatform.rust.cargo is deprecated. Use cargo instead." cargo; }; - fetchCargoTarball = buildPackages.callPackage (path + "/pkgs/build-support/rust/fetch-cargo-tarball") { - git = buildPackages.gitMinimal; - inherit cargo; - }; + fetchCargoTarball = + buildPackages.callPackage (path + "/pkgs/build-support/rust/fetch-cargo-tarball") + { + git = buildPackages.gitMinimal; + inherit cargo; + }; buildRustPackage = callPackage (path + "/pkgs/build-support/rust/build-rust-package") { - inherit stdenv cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook - fetchCargoTarball importCargoLock rustc cargo cargo-auditable; + inherit + stdenv + cargoBuildHook + cargoCheckHook + cargoInstallHook + cargoNextestHook + cargoSetupHook + fetchCargoTarball + importCargoLock + rustc + cargo + cargo-auditable + ; }; - importCargoLock = buildPackages.callPackage (path + "/pkgs/build-support/rust/import-cargo-lock.nix") { inherit cargo; }; + importCargoLock = buildPackages.callPackage ( + path + "/pkgs/build-support/rust/import-cargo-lock.nix" + ) { inherit cargo; }; - rustcSrc = callPackage ./rust-src.nix { - inherit runCommand rustc; - }; + rustcSrc = callPackage ./rust-src.nix { inherit runCommand rustc; }; - rustLibSrc = callPackage ./rust-lib-src.nix { - inherit runCommand rustc; - }; + rustLibSrc = callPackage ./rust-lib-src.nix { inherit runCommand rustc; }; # Hooks - inherit (callPackages (path + "/pkgs/build-support/rust/hooks") { - inherit stdenv cargo rustc; - }) cargoBuildHook cargoCheckHook cargoInstallHook cargoNextestHook cargoSetupHook maturinBuildHook bindgenHook; + inherit (callPackages (path + "/pkgs/build-support/rust/hooks") { inherit stdenv cargo rustc; }) + cargoBuildHook + cargoCheckHook + cargoInstallHook + cargoNextestHook + cargoSetupHook + maturinBuildHook + bindgenHook + ; } diff --git a/pkgs/by-name/ru/rust/packages.nix b/pkgs/by-name/ru/rust/packages.nix index 1f27823..ab6fc9c 100644 --- a/pkgs/by-name/ru/rust/packages.nix +++ b/pkgs/by-name/ru/rust/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { rust_1_77 = callPackage ./1_77.nix { inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration; llvm_17 = llvmPackages_17.libllvm; @@ -12,7 +11,14 @@ with pkgs; rustPackages_1_77 = rust_1_77.packages.stable; rustPackages = rustPackages_1_77; - inherit (rustPackages) cargo cargo-auditable cargo-auditable-cargo-wrapper clippy rustc rustPlatform; + inherit (rustPackages) + cargo + cargo-auditable + cargo-auditable-cargo-wrapper + clippy + rustc + rustPlatform + ; makeRustPlatform = callPackage ./make-rust-platform.nix { }; } diff --git a/pkgs/by-name/ru/rust/rust-src.nix b/pkgs/by-name/ru/rust/rust-src.nix index 69bdb37..dfc82e3 100644 --- a/pkgs/by-name/ru/rust/rust-src.nix +++ b/pkgs/by-name/ru/rust/rust-src.nix @@ -1,21 +1,31 @@ -{ lib, runCommand, rustc, minimalContent ? true }: +{ + lib, + runCommand, + rustc, + minimalContent ? true, +}: runCommand "rust-src" { } '' tar -xzf ${rustc.src} mv rustc-${rustc.version}-src $out - rm -rf $out/{${lib.concatStringsSep "," ([ - "ci" - "doc" - "etc" - "grammar" - "llvm-project" - "llvm-emscripten" - "rtstartup" - "rustllvm" - "test" - "vendor" - ] ++ lib.optionals minimalContent [ - "tools" - "stdarch" - ])}} + rm -rf $out/{${ + lib.concatStringsSep "," ( + [ + "ci" + "doc" + "etc" + "grammar" + "llvm-project" + "llvm-emscripten" + "rtstartup" + "rustllvm" + "test" + "vendor" + ] + ++ lib.optionals minimalContent [ + "tools" + "stdarch" + ] + ) + }} '' diff --git a/pkgs/by-name/ru/rust/rustc.nix b/pkgs/by-name/ru/rust/rustc.nix index 6c84dde..247b139 100644 --- a/pkgs/by-name/ru/rust/rustc.nix +++ b/pkgs/by-name/ru/rust/rustc.nix @@ -1,30 +1,56 @@ -{ lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget, targetPackages -, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackages -, fetchurl, file, python3 -, darwin, cargo, cmake, rustc, rustfmt -, pkg-config, openssl, xz -, libiconv -, which, libffi -, withBundledLLVM ? false -, enableRustcDev ? true -, version -, sha256 -, patches ? [] -# , fd -# , ripgrep -# , wezterm -# , firefox -# , thunderbird -# This only builds std for target and reuses the rustc from build. -, fastCross -, lndir -, makeWrapper +{ + lib, + stdenv, + removeReferencesTo, + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + targetPackages, + llvmShared, + llvmSharedForBuild, + llvmSharedForHost, + llvmSharedForTarget, + llvmPackages, + fetchurl, + file, + python3, + darwin, + cargo, + cmake, + rustc, + rustfmt, + pkg-config, + openssl, + xz, + libiconv, + which, + libffi, + withBundledLLVM ? false, + enableRustcDev ? true, + version, + sha256, + patches ? [ ], + # , fd + # , ripgrep + # , wezterm + # , firefox + # , thunderbird + # This only builds std for target and reuses the rustc from build. + fastCross, + lndir, + makeWrapper, }: let - inherit (lib) optionals optional optionalString concatStringsSep; + inherit (lib) + optionals + optional + optionalString + concatStringsSep + ; inherit (darwin.apple_sdk.frameworks) Security; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "${targetPackages.stdenv.cc.targetPrefix}rustc"; inherit version; @@ -53,14 +79,16 @@ in stdenv.mkDerivation (finalAttrs: { # but it does support checking these idiosyncratic PKG_CONFIG_${TRIPLE} # environment variables. # [1]: https://github.com/rust-lang/pkg-config-rs/issues/53 - "PKG_CONFIG_${builtins.replaceStrings ["-"] ["_"] stdenv.buildPlatform.rust.rustcTarget}" = - "${pkgsBuildHost.stdenv.cc.targetPrefix}pkg-config"; + "PKG_CONFIG_${ + builtins.replaceStrings [ "-" ] [ "_" ] stdenv.buildPlatform.rust.rustcTarget + }" = "${pkgsBuildHost.stdenv.cc.targetPrefix}pkg-config"; NIX_LDFLAGS = toString ( - # when linking stage1 libstd: cc: undefined reference to `__cxa_begin_catch' - optional (stdenv.isLinux && !withBundledLLVM) "--push-state --as-needed -lstdc++ --pop-state" + # when linking stage1 libstd: cc: undefined reference to `__cxa_begin_catch' + optional (stdenv.isLinux && !withBundledLLVM) "--push-state --as-needed -lstdc++ --pop-state" ++ optional (stdenv.isDarwin && !withBundledLLVM) "-lc++ -lc++abi" - ++ optional stdenv.isDarwin "-rpath ${llvmSharedForHost}/lib"); + ++ optional stdenv.isDarwin "-rpath ${llvmSharedForHost}/lib" + ); # Increase codegen units to introduce parallelism within the compiler. RUSTFLAGS = "-Ccodegen-units=10"; @@ -69,94 +97,114 @@ in stdenv.mkDerivation (finalAttrs: { # We need rust to build rust. If we don't provide it, configure will try to download it. # Reference: https://github.com/rust-lang/rust/blob/master/src/bootstrap/configure.py - configureFlags = let - prefixForStdenv = stdenv: "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}"; - ccPrefixForStdenv = stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang" else "cc"}"; - cxxPrefixForStdenv = stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang++" else "c++"}"; - setBuild = "--set=target.${stdenv.buildPlatform.rust.rustcTarget}"; - setHost = "--set=target.${stdenv.hostPlatform.rust.rustcTarget}"; - setTarget = "--set=target.${stdenv.targetPlatform.rust.rustcTarget}"; - ccForBuild = ccPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv; - cxxForBuild = cxxPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv; - ccForHost = ccPrefixForStdenv pkgsBuildHost.targetPackages.stdenv; - cxxForHost = cxxPrefixForStdenv pkgsBuildHost.targetPackages.stdenv; - ccForTarget = ccPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv; - cxxForTarget = cxxPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv; - in [ - "--sysconfdir=${placeholder "out"}/etc" - "--release-channel=stable" - "--set=build.rustc=${rustc}/bin/rustc" - "--set=build.cargo=${cargo}/bin/cargo" - ] ++ lib.optionals (!(finalAttrs.src.passthru.isReleaseTarball or false)) [ - # release tarballs vendor the rustfmt source; when - # git-bisect'ing from upstream's git repo we must prevent - # attempts to download the missing source tarball - "--set=build.rustfmt=${rustfmt}/bin/rustfmt" - ] ++ [ - "--tools=rustc,rustdoc,rust-analyzer-proc-macro-srv" - "--enable-rpath" - "--enable-vendor" - "--build=${stdenv.buildPlatform.rust.rustcTargetSpec}" - "--host=${stdenv.hostPlatform.rust.rustcTargetSpec}" - # std is built for all platforms in --target. - "--target=${concatStringsSep "," ([ - stdenv.targetPlatform.rust.rustcTargetSpec + configureFlags = + let + prefixForStdenv = stdenv: "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}"; + ccPrefixForStdenv = + stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang" else "cc"}"; + cxxPrefixForStdenv = + stdenv: "${prefixForStdenv stdenv}${if (stdenv.cc.isClang or false) then "clang++" else "c++"}"; + setBuild = "--set=target.${stdenv.buildPlatform.rust.rustcTarget}"; + setHost = "--set=target.${stdenv.hostPlatform.rust.rustcTarget}"; + setTarget = "--set=target.${stdenv.targetPlatform.rust.rustcTarget}"; + ccForBuild = ccPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv; + cxxForBuild = cxxPrefixForStdenv pkgsBuildBuild.targetPackages.stdenv; + ccForHost = ccPrefixForStdenv pkgsBuildHost.targetPackages.stdenv; + cxxForHost = cxxPrefixForStdenv pkgsBuildHost.targetPackages.stdenv; + ccForTarget = ccPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv; + cxxForTarget = cxxPrefixForStdenv pkgsBuildTarget.targetPackages.stdenv; + in + [ + "--sysconfdir=${placeholder "out"}/etc" + "--release-channel=stable" + "--set=build.rustc=${rustc}/bin/rustc" + "--set=build.cargo=${cargo}/bin/cargo" + ] + ++ lib.optionals (!(finalAttrs.src.passthru.isReleaseTarball or false)) [ + # release tarballs vendor the rustfmt source; when + # git-bisect'ing from upstream's git repo we must prevent + # attempts to download the missing source tarball + "--set=build.rustfmt=${rustfmt}/bin/rustfmt" + ] + ++ [ + "--tools=rustc,rustdoc,rust-analyzer-proc-macro-srv" + "--enable-rpath" + "--enable-vendor" + "--build=${stdenv.buildPlatform.rust.rustcTargetSpec}" + "--host=${stdenv.hostPlatform.rust.rustcTargetSpec}" + # std is built for all platforms in --target. + "--target=${ + concatStringsSep "," ( + [ + stdenv.targetPlatform.rust.rustcTargetSpec - # Other targets that don't need any extra dependencies to build. - ] ++ optionals (!fastCross) [ - "wasm32-unknown-unknown" + # Other targets that don't need any extra dependencies to build. + ] + ++ optionals (!fastCross) [ + "wasm32-unknown-unknown" - # (build!=target): When cross-building a compiler we need to add - # the build platform as well so rustc can compile build.rs - # scripts. - ] ++ optionals (stdenv.buildPlatform != stdenv.targetPlatform && !fastCross) [ - stdenv.buildPlatform.rust.rustcTargetSpec + # (build!=target): When cross-building a compiler we need to add + # the build platform as well so rustc can compile build.rs + # scripts. + ] + ++ optionals (stdenv.buildPlatform != stdenv.targetPlatform && !fastCross) [ + stdenv.buildPlatform.rust.rustcTargetSpec - # (host!=target): When building a cross-targeting compiler we - # need to add the host platform as well so rustc can compile - # build.rs scripts. - ] ++ optionals (stdenv.hostPlatform != stdenv.targetPlatform && !fastCross) [ - stdenv.hostPlatform.rust.rustcTargetSpec - ])}" + # (host!=target): When building a cross-targeting compiler we + # need to add the host platform as well so rustc can compile + # build.rs scripts. + ] + ++ optionals (stdenv.hostPlatform != stdenv.targetPlatform && !fastCross) [ + stdenv.hostPlatform.rust.rustcTargetSpec + ] + ) + }" - "${setBuild}.cc=${ccForBuild}" - "${setHost}.cc=${ccForHost}" - "${setTarget}.cc=${ccForTarget}" + "${setBuild}.cc=${ccForBuild}" + "${setHost}.cc=${ccForHost}" + "${setTarget}.cc=${ccForTarget}" - "${setBuild}.linker=${ccForBuild}" - "${setHost}.linker=${ccForHost}" - "${setTarget}.linker=${ccForTarget}" + "${setBuild}.linker=${ccForBuild}" + "${setHost}.linker=${ccForHost}" + "${setTarget}.linker=${ccForTarget}" - "${setBuild}.cxx=${cxxForBuild}" - "${setHost}.cxx=${cxxForHost}" - "${setTarget}.cxx=${cxxForTarget}" + "${setBuild}.cxx=${cxxForBuild}" + "${setHost}.cxx=${cxxForHost}" + "${setTarget}.cxx=${cxxForTarget}" - "${setBuild}.crt-static=${lib.boolToString stdenv.buildPlatform.isStatic}" - "${setHost}.crt-static=${lib.boolToString stdenv.hostPlatform.isStatic}" - "${setTarget}.crt-static=${lib.boolToString stdenv.targetPlatform.isStatic}" - ] ++ optionals (!withBundledLLVM) [ - "--enable-llvm-link-shared" - "${setBuild}.llvm-config=${llvmSharedForBuild.dev}/bin/llvm-config" - "${setHost}.llvm-config=${llvmSharedForHost.dev}/bin/llvm-config" - "${setTarget}.llvm-config=${llvmSharedForTarget.dev}/bin/llvm-config" - ] ++ optionals (stdenv.isLinux && !stdenv.targetPlatform.isRedox) [ - "--enable-profiler" # build libprofiler_builtins - ] ++ optionals stdenv.buildPlatform.isMusl [ - "${setBuild}.musl-root=${pkgsBuildBuild.targetPackages.stdenv.cc.libc}" - ] ++ optionals stdenv.hostPlatform.isMusl [ - "${setHost}.musl-root=${pkgsBuildHost.targetPackages.stdenv.cc.libc}" - ] ++ optionals stdenv.targetPlatform.isMusl [ - "${setTarget}.musl-root=${pkgsBuildTarget.targetPackages.stdenv.cc.libc}" - ] ++ optionals stdenv.targetPlatform.rust.isNoStdTarget [ - "--disable-docs" - ] ++ optionals (stdenv.isDarwin && stdenv.isx86_64) [ - # https://github.com/rust-lang/rust/issues/92173 - "--set rust.jemalloc" - ]; + "${setBuild}.crt-static=${lib.boolToString stdenv.buildPlatform.isStatic}" + "${setHost}.crt-static=${lib.boolToString stdenv.hostPlatform.isStatic}" + "${setTarget}.crt-static=${lib.boolToString stdenv.targetPlatform.isStatic}" + ] + ++ optionals (!withBundledLLVM) [ + "--enable-llvm-link-shared" + "${setBuild}.llvm-config=${llvmSharedForBuild.dev}/bin/llvm-config" + "${setHost}.llvm-config=${llvmSharedForHost.dev}/bin/llvm-config" + "${setTarget}.llvm-config=${llvmSharedForTarget.dev}/bin/llvm-config" + ] + ++ optionals (stdenv.isLinux && !stdenv.targetPlatform.isRedox) [ + "--enable-profiler" # build libprofiler_builtins + ] + ++ optionals stdenv.buildPlatform.isMusl [ + "${setBuild}.musl-root=${pkgsBuildBuild.targetPackages.stdenv.cc.libc}" + ] + ++ optionals stdenv.hostPlatform.isMusl [ + "${setHost}.musl-root=${pkgsBuildHost.targetPackages.stdenv.cc.libc}" + ] + ++ optionals stdenv.targetPlatform.isMusl [ + "${setTarget}.musl-root=${pkgsBuildTarget.targetPackages.stdenv.cc.libc}" + ] + ++ optionals stdenv.targetPlatform.rust.isNoStdTarget [ "--disable-docs" ] + ++ optionals (stdenv.isDarwin && stdenv.isx86_64) [ + # https://github.com/rust-lang/rust/issues/92173 + "--set rust.jemalloc" + ]; # if we already have a rust compiler for build just compile the target std # library and reuse compiler - buildPhase = if fastCross then " + buildPhase = + if fastCross then + " runHook preBuild mkdir -p build/${stdenv.hostPlatform.rust.rustcTargetSpec}/stage0-{std,rustc}/${stdenv.hostPlatform.rust.rustcTargetSpec}/release/ @@ -168,88 +216,121 @@ in stdenv.mkDerivation (finalAttrs: { python ./x.py --keep-stage=0 --stage=1 build library runHook postBuild - " else null; + " + else + null; - installPhase = if fastCross then '' - runHook preInstall + installPhase = + if fastCross then + '' + runHook preInstall - python ./x.py --keep-stage=0 --stage=1 install library/std - mkdir -v $out/bin $doc $man - ln -s ${rustc.unwrapped}/bin/{rustc,rustdoc} $out/bin - ln -s ${rustc.unwrapped}/lib/rustlib/{manifest-rust-std-,}${stdenv.hostPlatform.rust.rustcTargetSpec} $out/lib/rustlib/ - echo rust-std-${stdenv.hostPlatform.rust.rustcTargetSpec} >> $out/lib/rustlib/components - lndir ${rustc.doc} $doc - lndir ${rustc.man} $man + python ./x.py --keep-stage=0 --stage=1 install library/std + mkdir -v $out/bin $doc $man + ln -s ${rustc.unwrapped}/bin/{rustc,rustdoc} $out/bin + ln -s ${rustc.unwrapped}/lib/rustlib/{manifest-rust-std-,}${stdenv.hostPlatform.rust.rustcTargetSpec} $out/lib/rustlib/ + echo rust-std-${stdenv.hostPlatform.rust.rustcTargetSpec} >> $out/lib/rustlib/components + lndir ${rustc.doc} $doc + lndir ${rustc.man} $man - runHook postInstall - '' else null; + runHook postInstall + '' + else + null; # the rust build system complains that nix alters the checksums dontFixLibtool = true; inherit patches; - postPatch = '' - patchShebangs src/etc + postPatch = + '' + patchShebangs src/etc - ${optionalString (!withBundledLLVM) "rm -rf src/llvm"} + ${optionalString (!withBundledLLVM) "rm -rf src/llvm"} - # Useful debugging parameter - # export VERBOSE=1 - '' + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' - # See https://github.com/jemalloc/jemalloc/issues/1997 - # Using a value of 48 should work on both emulated and native x86_64-darwin. - export JEMALLOC_SYS_WITH_LG_VADDR=48 - '' + lib.optionalString (!(finalAttrs.src.passthru.isReleaseTarball or false)) '' - mkdir .cargo - cat > .cargo/config <<\EOF - [source.crates-io] - replace-with = "vendored-sources" - [source.vendored-sources] - directory = "vendor" - EOF - ''; + # Useful debugging parameter + # export VERBOSE=1 + '' + + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) '' + # See https://github.com/jemalloc/jemalloc/issues/1997 + # Using a value of 48 should work on both emulated and native x86_64-darwin. + export JEMALLOC_SYS_WITH_LG_VADDR=48 + '' + + lib.optionalString (!(finalAttrs.src.passthru.isReleaseTarball or false)) '' + mkdir .cargo + cat > .cargo/config <<\EOF + [source.crates-io] + replace-with = "vendored-sources" + [source.vendored-sources] + directory = "vendor" + EOF + ''; # rustc unfortunately needs cmake to compile llvm-rt but doesn't # use it for the normal build. This disables cmake in Nix. dontUseCmakeConfigure = true; - depsBuildBuild = [ pkgsBuildHost.stdenv.cc pkg-config ]; + depsBuildBuild = [ + pkgsBuildHost.stdenv.cc + pkg-config + ]; - nativeBuildInputs = [ - file python3 rustc cmake - which libffi removeReferencesTo pkg-config xz - ] - ++ optionals fastCross [ lndir makeWrapper ]; + nativeBuildInputs = + [ + file + python3 + rustc + cmake + which + libffi + removeReferencesTo + pkg-config + xz + ] + ++ optionals fastCross [ + lndir + makeWrapper + ]; - buildInputs = [ openssl ] - ++ optionals stdenv.isDarwin [ libiconv Security ] + buildInputs = + [ openssl ] + ++ optionals stdenv.isDarwin [ + libiconv + Security + ] ++ optional (!withBundledLLVM) llvmShared; - outputs = [ "out" "man" "doc" ]; + outputs = [ + "out" + "man" + "doc" + ]; setOutputFlags = false; - postInstall = lib.optionalString (enableRustcDev && !fastCross) '' - # install rustc-dev components. Necessary to build rls, clippy... - python x.py dist rustc-dev - tar xf build/dist/rustc-dev*tar.gz - cp -r rustc-dev*/rustc-dev*/lib/* $out/lib/ - rm $out/lib/rustlib/install.log - for m in $out/lib/rustlib/manifest-rust* - do - sort --output=$m < $m - done + postInstall = + lib.optionalString (enableRustcDev && !fastCross) '' + # install rustc-dev components. Necessary to build rls, clippy... + python x.py dist rustc-dev + tar xf build/dist/rustc-dev*tar.gz + cp -r rustc-dev*/rustc-dev*/lib/* $out/lib/ + rm $out/lib/rustlib/install.log + for m in $out/lib/rustlib/manifest-rust* + do + sort --output=$m < $m + done - '' + '' - # remove references to llvm-config in lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so - # and thus a transitive dependency on ncurses - find $out/lib -name "*.so" -type f -exec remove-references-to -t ${llvmShared} '{}' '+' + '' + + '' + # remove references to llvm-config in lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so + # and thus a transitive dependency on ncurses + find $out/lib -name "*.so" -type f -exec remove-references-to -t ${llvmShared} '{}' '+' - # remove uninstall script that doesn't really make sense for Nix. - rm $out/lib/rustlib/uninstall.sh - ''; + # remove uninstall script that doesn't really make sense for Nix. + rm $out/lib/rustlib/uninstall.sh + ''; - configurePlatforms = []; + configurePlatforms = [ ]; enableParallelBuilding = true; @@ -269,20 +350,38 @@ in stdenv.mkDerivation (finalAttrs: { homepage = "https://www.rust-lang.org/"; description = "A safe, concurrent, practical language"; maintainers = with maintainers; [ havvy ] ++ teams.rust.members; - license = [ licenses.mit licenses.asl20 ]; + license = [ + licenses.mit + licenses.asl20 + ]; platforms = [ # Platforms with host tools from # https://doc.rust-lang.org/nightly/rustc/platform-support.html - "x86_64-darwin" "i686-darwin" "aarch64-darwin" - "i686-freebsd" "x86_64-freebsd" + "x86_64-darwin" + "i686-darwin" + "aarch64-darwin" + "i686-freebsd" + "x86_64-freebsd" "x86_64-solaris" - "aarch64-linux" "armv6l-linux" "armv7l-linux" "i686-linux" - "loongarch64-linux" "powerpc64-linux" "powerpc64le-linux" - "riscv64-linux" "s390x-linux" "x86_64-linux" - "aarch64-netbsd" "armv7l-netbsd" "i686-netbsd" "powerpc-netbsd" + "aarch64-linux" + "armv6l-linux" + "armv7l-linux" + "i686-linux" + "loongarch64-linux" + "powerpc64-linux" + "powerpc64le-linux" + "riscv64-linux" + "s390x-linux" + "x86_64-linux" + "aarch64-netbsd" + "armv7l-netbsd" + "i686-netbsd" + "powerpc-netbsd" "x86_64-netbsd" - "i686-openbsd" "x86_64-openbsd" - "i686-windows" "x86_64-windows" + "i686-openbsd" + "x86_64-openbsd" + "i686-windows" + "x86_64-windows" ]; }; }) diff --git a/pkgs/by-name/ru/rust/rustfmt.nix b/pkgs/by-name/ru/rust/rustfmt.nix index 9cc8df5..c29d16c 100644 --- a/pkgs/by-name/ru/rust/rustfmt.nix +++ b/pkgs/by-name/ru/rust/rustfmt.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, rustPlatform, rustc, Security, asNightly ? false }: +{ + lib, + stdenv, + rustPlatform, + rustc, + Security, + asNightly ? false, +}: rustPlatform.buildRustPackage rec { pname = "rustfmt" + lib.optionalString asNightly "-nightly"; @@ -11,9 +18,7 @@ rustPlatform.buildRustPackage rec { # changes hash of vendor directory otherwise dontUpdateAutotoolsGnuConfigScripts = true; - buildInputs = [ - rustc.llvm - ] ++ lib.optional stdenv.isDarwin Security; + buildInputs = [ rustc.llvm ] ++ lib.optional stdenv.isDarwin Security; # rustfmt uses the rustc_driver and std private libraries, and Rust's build process forces them to have # an install name of `@rpath/...` [0] [1] instead of the standard on macOS, which is an absolute path @@ -37,8 +42,14 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A tool for formatting Rust code according to style guidelines"; homepage = "https://github.com/rust-lang-nursery/rustfmt"; - license = with licenses; [ mit asl20 ]; + license = with licenses; [ + mit + asl20 + ]; mainProgram = "rustfmt"; - maintainers = with maintainers; [ globin basvandijk ]; + maintainers = with maintainers; [ + globin + basvandijk + ]; }; } diff --git a/pkgs/by-name/ru/rustls-ffi/default.nix b/pkgs/by-name/ru/rustls-ffi/default.nix index 9949620..90f9664 100644 --- a/pkgs/by-name/ru/rustls-ffi/default.nix +++ b/pkgs/by-name/ru/rustls-ffi/default.nix @@ -1,11 +1,12 @@ -{ lib -, stdenv -, fetchFromGitHub -, rustPlatform -, Security -# for passthru.tests -, apacheHttpd -, curl +{ + lib, + stdenv, + fetchFromGitHub, + rustPlatform, + Security, + # for passthru.tests + apacheHttpd, + curl, }: rustPlatform.buildRustPackage rec { @@ -43,7 +44,11 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "C-to-rustls bindings"; homepage = "https://github.com/rustls/rustls-ffi/"; - license = with lib.licenses; [ mit asl20 isc ]; + license = with lib.licenses; [ + mit + asl20 + isc + ]; maintainers = [ maintainers.lesuisse ]; }; } diff --git a/pkgs/by-name/ru/rustls-ffi/packages.nix b/pkgs/by-name/ru/rustls-ffi/packages.nix index c0ef5c5..7173cfa 100644 --- a/pkgs/by-name/ru/rustls-ffi/packages.nix +++ b/pkgs/by-name/ru/rustls-ffi/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - rustls-ffi = callPackage ./. { - inherit (darwin.apple_sdk.frameworks) Security; - }; +with pkgs; { + rustls-ffi = callPackage ./. { inherit (darwin.apple_sdk.frameworks) Security; }; } diff --git a/pkgs/by-name/s2/s2n-tls/default.nix b/pkgs/by-name/s2/s2n-tls/default.nix index 8ef3df4..6eb4207 100644 --- a/pkgs/by-name/s2/s2n-tls/default.nix +++ b/pkgs/by-name/s2/s2n-tls/default.nix @@ -1,9 +1,10 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, openssl -, nix +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + openssl, + nix, }: stdenv.mkDerivation rec { @@ -19,17 +20,22 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; buildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto). - cmakeFlags = [ - "-DBUILD_SHARED_LIBS=ON" - "-DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF" # disable -Werror - ] ++ lib.optionals stdenv.hostPlatform.isMips64 [ - # See https://github.com/aws/s2n-tls/issues/1592 and https://github.com/aws/s2n-tls/pull/1609 - "-DS2N_NO_PQ=ON" - ]; + cmakeFlags = + [ + "-DBUILD_SHARED_LIBS=ON" + "-DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF" # disable -Werror + ] + ++ lib.optionals stdenv.hostPlatform.isMips64 [ + # See https://github.com/aws/s2n-tls/issues/1592 and https://github.com/aws/s2n-tls/pull/1609 + "-DS2N_NO_PQ=ON" + ]; propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto). diff --git a/pkgs/by-name/sc/scons/3.1.2.nix b/pkgs/by-name/sc/scons/3.1.2.nix index 0bac068..a305d5e 100644 --- a/pkgs/by-name/sc/scons/3.1.2.nix +++ b/pkgs/by-name/sc/scons/3.1.2.nix @@ -1,4 +1,8 @@ -{ lib, fetchFromGitHub, python3 }: +{ + lib, + fetchFromGitHub, + python3, +}: let pname = "scons"; @@ -13,7 +17,10 @@ in python3.pkgs.buildPythonApplication { inherit pname version src; - outputs = [ "out" "man" ]; + outputs = [ + "out" + "man" + ]; preConfigure = '' python bootstrap.py diff --git a/pkgs/by-name/sc/scons/4.1.0.nix b/pkgs/by-name/sc/scons/4.1.0.nix index f2edf51..a623e90 100644 --- a/pkgs/by-name/sc/scons/4.1.0.nix +++ b/pkgs/by-name/sc/scons/4.1.0.nix @@ -1,4 +1,8 @@ -{ lib, fetchFromGitHub, python3 }: +{ + lib, + fetchFromGitHub, + python3, +}: let pname = "scons"; @@ -13,7 +17,10 @@ in python3.pkgs.buildPythonApplication { inherit pname version src; - outputs = [ "out" "man" ]; + outputs = [ + "out" + "man" + ]; postPatch = '' substituteInPlace setup.cfg \ diff --git a/pkgs/by-name/sc/scons/4.5.2.nix b/pkgs/by-name/sc/scons/4.5.2.nix index f63702c..f37c353 100644 --- a/pkgs/by-name/sc/scons/4.5.2.nix +++ b/pkgs/by-name/sc/scons/4.5.2.nix @@ -1,4 +1,8 @@ -{ lib, fetchFromGitHub, python3 }: +{ + lib, + fetchFromGitHub, + python3, +}: let pname = "scons"; @@ -13,12 +17,13 @@ in python3.pkgs.buildPythonApplication { inherit pname version src; - outputs = [ "out" "man" ]; - - patches = [ - ./env.patch + outputs = [ + "out" + "man" ]; + patches = [ ./env.patch ]; + postPatch = '' substituteInPlace setup.cfg \ --replace "build/dist" "dist" \ diff --git a/pkgs/by-name/sc/scons/packages.nix b/pkgs/by-name/sc/scons/packages.nix index 76cf482..aba6feb 100644 --- a/pkgs/by-name/sc/scons/packages.nix +++ b/pkgs/by-name/sc/scons/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { scons = scons_4_5_2; scons_3_1_2 = callPackage ./3.1.2.nix { }; scons_4_1_0 = callPackage ./4.1.0.nix { }; diff --git a/pkgs/by-name/se/serf/default.nix b/pkgs/by-name/se/serf/default.nix index 1a2f407..efc433b 100644 --- a/pkgs/by-name/se/serf/default.nix +++ b/pkgs/by-name/se/serf/default.nix @@ -1,15 +1,16 @@ -{ lib -, stdenv -, fetchurl -, apr -, scons -, openssl -, aprutil -, zlib -, libkrb5 -, pkg-config -, libiconv -, fetchpatch +{ + lib, + stdenv, + fetchurl, + apr, + scons, + openssl, + aprutil, + zlib, + libkrb5, + pkg-config, + libiconv, + fetchpatch, }: stdenv.mkDerivation rec { @@ -21,9 +22,17 @@ stdenv.mkDerivation rec { hash = "sha256-voHvCLqiUW7Np2p3rffe97wyJ+61eLmjO0X3tB3AZOY="; }; - nativeBuildInputs = [ pkg-config scons ]; - buildInputs = [ apr openssl aprutil zlib libiconv ] - ++ lib.optional (!stdenv.isCygwin) libkrb5; + nativeBuildInputs = [ + pkg-config + scons + ]; + buildInputs = [ + apr + openssl + aprutil + zlib + libiconv + ] ++ lib.optional (!stdenv.isCygwin) libkrb5; patches = [ ./scons.patch @@ -36,15 +45,17 @@ stdenv.mkDerivation rec { prefixKey = "PREFIX="; - preConfigure = '' - sconsFlags+=" APR=$(echo ${apr.dev}/bin/*-config)" - sconsFlags+=" APU=$(echo ${aprutil.dev}/bin/*-config)" - sconsFlags+=" CC=$CC" - sconsFlags+=" OPENSSL=${openssl}" - sconsFlags+=" ZLIB=${zlib}" - '' + lib.optionalString (!stdenv.isCygwin) '' - sconsFlags+=" GSSAPI=${libkrb5.dev}" - ''; + preConfigure = + '' + sconsFlags+=" APR=$(echo ${apr.dev}/bin/*-config)" + sconsFlags+=" APU=$(echo ${aprutil.dev}/bin/*-config)" + sconsFlags+=" CC=$CC" + sconsFlags+=" OPENSSL=${openssl}" + sconsFlags+=" ZLIB=${zlib}" + '' + + lib.optionalString (!stdenv.isCygwin) '' + sconsFlags+=" GSSAPI=${libkrb5.dev}" + ''; enableParallelBuilding = true; @@ -52,7 +63,10 @@ stdenv.mkDerivation rec { description = "HTTP client library based on APR"; homepage = "https://serf.apache.org/"; license = licenses.asl20; - maintainers = with maintainers; [ orivej raskin ]; + maintainers = with maintainers; [ + orivej + raskin + ]; platforms = platforms.linux ++ platforms.darwin; }; } diff --git a/pkgs/by-name/sh/shadow/default.nix b/pkgs/by-name/sh/shadow/default.nix index 604f4fb..0dfd38b 100644 --- a/pkgs/by-name/sh/shadow/default.nix +++ b/pkgs/by-name/sh/shadow/default.nix @@ -1,19 +1,34 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, runtimeShell -, autoreconfHook, bison, flex -, docbook_xml_dtd_45, docbook_xsl -, itstool, libbsd, libxml2, libxslt -, libxcrypt, pkg-config -, glibcCross ? null -, pam ? null -, withTcb ? lib.meta.availableOn stdenv.hostPlatform tcb, tcb +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + runtimeShell, + autoreconfHook, + bison, + flex, + docbook_xml_dtd_45, + docbook_xsl, + itstool, + libbsd, + libxml2, + libxslt, + libxcrypt, + pkg-config, + glibcCross ? null, + pam ? null, + withTcb ? lib.meta.availableOn stdenv.hostPlatform tcb, + tcb, # for passthru.tests # , nixosTests }: let glibc = - if stdenv.hostPlatform != stdenv.buildPlatform then glibcCross - else assert stdenv.hostPlatform.libc == "glibc"; stdenv.cc.libc; + if stdenv.hostPlatform != stdenv.buildPlatform then + glibcCross + else + assert stdenv.hostPlatform.libc == "glibc"; + stdenv.cc.libc; in @@ -28,20 +43,31 @@ stdenv.mkDerivation rec { hash = "sha256-+klU1a0cSgHPwZkDnbCSjKnBUKIm2Z3OGUvR/zrqQxo="; }; - outputs = [ "out" "su" "dev" "man" ]; + outputs = [ + "out" + "su" + "dev" + "man" + ]; RUNTIME_SHELL = runtimeShell; nativeBuildInputs = [ - autoreconfHook bison flex - docbook_xml_dtd_45 docbook_xsl - itstool libxml2 libxslt + autoreconfHook + bison + flex + docbook_xml_dtd_45 + docbook_xsl + itstool + libxml2 + libxslt pkg-config ]; - buildInputs = [ libbsd libxcrypt ] - ++ lib.optional (pam != null && stdenv.isLinux) pam - ++ lib.optional withTcb tcb; + buildInputs = [ + libbsd + libxcrypt + ] ++ lib.optional (pam != null && stdenv.isLinux) pam ++ lib.optional withTcb tcb; patches = [ ./keep-path.patch @@ -70,12 +96,14 @@ stdenv.mkDerivation rec { export shadow_cv_logdir=/var/log ''; - configureFlags = [ - "--enable-man" - "--with-group-name-max-length=32" - "--with-bcrypt" - "--with-yescrypt" - ] ++ lib.optional (stdenv.hostPlatform.libc != "glibc") "--disable-nscd" + configureFlags = + [ + "--enable-man" + "--with-group-name-max-length=32" + "--with-bcrypt" + "--with-yescrypt" + ] + ++ lib.optional (stdenv.hostPlatform.libc != "glibc") "--disable-nscd" ++ lib.optional withTcb "--with-tcb"; preBuild = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' @@ -94,7 +122,9 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - disallowedReferences = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) stdenv.shellPackage; + disallowedReferences = lib.optional ( + stdenv.buildPlatform != stdenv.hostPlatform + ) stdenv.shellPackage; meta = with lib; { homepage = "https://github.com/shadow-maint"; diff --git a/pkgs/by-name/sh/sharutils/default.nix b/pkgs/by-name/sh/sharutils/default.nix index 5c84e59..26017a6 100644 --- a/pkgs/by-name/sh/sharutils/default.nix +++ b/pkgs/by-name/sh/sharutils/default.nix @@ -1,4 +1,11 @@ -{ lib, stdenv, fetchurl, fetchpatch, gettext, coreutils }: +{ + lib, + stdenv, + fetchurl, + fetchpatch, + gettext, + coreutils, +}: stdenv.mkDerivation rec { pname = "sharutils"; @@ -12,7 +19,10 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; # GNU Gettext is needed on non-GNU platforms. - buildInputs = [ coreutils gettext ]; + buildInputs = [ + coreutils + gettext + ]; # These tests try to hit /etc/passwd to find out your username if pass in a submitter # name on the command line. Since we block access to /etc/passwd on the Darwin sandbox @@ -45,13 +55,15 @@ stdenv.mkDerivation rec { }) ]; - postPatch = let + postPatch = + let # This evaluates to a string containing: # # substituteInPlace tests/shar-2 --replace '${SHAR}' '${SHAR} -s submitter' # substituteInPlace tests/shar-2 --replace '${SHAR}' '${SHAR} -s submitter' shar_sub = "\${SHAR}"; - in '' + in + '' substituteInPlace tests/shar-1 --replace '${shar_sub}' '${shar_sub} -s submitter' substituteInPlace tests/shar-2 --replace '${shar_sub}' '${shar_sub} -s submitter' @@ -65,25 +77,25 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Tools for remote synchronization and `shell archives'"; - longDescription = - '' GNU shar makes so-called shell archives out of many files, preparing - them for transmission by electronic mail services. A shell archive - is a collection of files that can be unpacked by /bin/sh. A wide - range of features provide extensive flexibility in manufacturing - shars and in specifying shar smartness. For example, shar may - compress files, uuencode binary files, split long files and - construct multi-part mailings, ensure correct unsharing order, and - provide simplistic checksums. + longDescription = '' + GNU shar makes so-called shell archives out of many files, preparing + them for transmission by electronic mail services. A shell archive + is a collection of files that can be unpacked by /bin/sh. A wide + range of features provide extensive flexibility in manufacturing + shars and in specifying shar smartness. For example, shar may + compress files, uuencode binary files, split long files and + construct multi-part mailings, ensure correct unsharing order, and + provide simplistic checksums. - GNU unshar scans a set of mail messages looking for the start of - shell archives. It will automatically strip off the mail headers - and other introductory text. The archive bodies are then unpacked - by a copy of the shell. unshar may also process files containing - concatenated shell archives. - ''; + GNU unshar scans a set of mail messages looking for the start of + shell archives. It will automatically strip off the mail headers + and other introductory text. The archive bodies are then unpacked + by a copy of the shell. unshar may also process files containing + concatenated shell archives. + ''; homepage = "https://www.gnu.org/software/sharutils/"; license = licenses.gpl3Plus; - maintainers = []; + maintainers = [ ]; platforms = platforms.all; }; } diff --git a/pkgs/by-name/so/sourceHighlight/default.nix b/pkgs/by-name/so/sourceHighlight/default.nix index d20b369..08a0f36 100644 --- a/pkgs/by-name/so/sourceHighlight/default.nix +++ b/pkgs/by-name/so/sourceHighlight/default.nix @@ -1,39 +1,51 @@ -{ lib, stdenv, fetchpatch, fetchurl, boost }: +{ + lib, + stdenv, + fetchpatch, + fetchurl, + boost, +}: stdenv.mkDerivation rec { pname = "source-highlight"; version = "3.1.9"; - outputs = [ "out" "doc" "dev" ]; + outputs = [ + "out" + "doc" + "dev" + ]; src = fetchurl { url = "mirror://gnu/src-highlite/${pname}-${version}.tar.gz"; sha256 = "148w47k3zswbxvhg83z38ifi85f9dqcpg7icvvw1cm6bg21x4zrs"; }; - patches = [ - # gcc-11 compat upstream patch - (fetchpatch { - url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=904949c9026cb772dc93fbe0947a252ef47127f4"; - hash = "sha256-h9DyD+pmlQT5dmKjWI9t0gCIYHe7pYkP55LnOqsE0vI="; - excludes = [ "ChangeLog" ]; - }) + patches = + [ + # gcc-11 compat upstream patch + (fetchpatch { + url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=904949c9026cb772dc93fbe0947a252ef47127f4"; + hash = "sha256-h9DyD+pmlQT5dmKjWI9t0gCIYHe7pYkP55LnOqsE0vI="; + excludes = [ "ChangeLog" ]; + }) - # Upstream fix for clang-13 and gcc-12 test support - (fetchpatch { - name = "gcc-12.patch"; - url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9"; - hash = "sha256-wmSLgLnLuFE+IC6AjxzZp/HEnaOCS1VfY2cac0T7Y+w="; - }) - ] ++ lib.optionals stdenv.cc.isClang [ - # Adds compatibility with C++17 by removing the `register` storage class specifier. - (fetchpatch { - name = "remove-register-keyword"; - url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=416b39758dba2c74515584514a959ad1b0ad50d1"; - hash = "sha256-R5A7IGHhU82EqceMCsuNBanhRz4dFVqiaH8637dr7jw="; - includes = [ "lib/*" ]; - }) - ]; + # Upstream fix for clang-13 and gcc-12 test support + (fetchpatch { + name = "gcc-12.patch"; + url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9"; + hash = "sha256-wmSLgLnLuFE+IC6AjxzZp/HEnaOCS1VfY2cac0T7Y+w="; + }) + ] + ++ lib.optionals stdenv.cc.isClang [ + # Adds compatibility with C++17 by removing the `register` storage class specifier. + (fetchpatch { + name = "remove-register-keyword"; + url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=416b39758dba2c74515584514a959ad1b0ad50d1"; + hash = "sha256-R5A7IGHhU82EqceMCsuNBanhRz4dFVqiaH8637dr7jw="; + includes = [ "lib/*" ]; + }) + ]; # source-highlight uses it's own binary to generate documentation. # During cross-compilation, that binary was built for the target diff --git a/pkgs/by-name/sp/spdlog/default.nix b/pkgs/by-name/sp/spdlog/default.nix index 51691a7..8b1de28 100644 --- a/pkgs/by-name/sp/spdlog/default.nix +++ b/pkgs/by-name/sp/spdlog/default.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, fmt -, catch2_3 -, staticBuild ? stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + fmt, + catch2_3, + staticBuild ? stdenv.hostPlatform.isStatic, # for passthru.tests # , bear @@ -17,9 +18,9 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "gabime"; - repo = "spdlog"; - rev = "v${version}"; - hash = "sha256-3n8BnjZ7uMH8quoiT60yTU7poyOtoEmzNMOLa1+r7X0="; + repo = "spdlog"; + rev = "v${version}"; + hash = "sha256-3n8BnjZ7uMH8quoiT60yTU7poyOtoEmzNMOLa1+r7X0="; }; nativeBuildInputs = [ cmake ]; @@ -36,7 +37,11 @@ stdenv.mkDerivation rec { "-DSPDLOG_FMT_EXTERNAL=ON" ]; - outputs = [ "out" "doc" "dev" ] ; + outputs = [ + "out" + "doc" + "dev" + ]; postInstall = '' mkdir -p $out/share/doc/spdlog @@ -50,10 +55,10 @@ stdenv.mkDerivation rec { # }; meta = with lib; { - description = "Very fast, header only, C++ logging library"; - homepage = "https://github.com/gabime/spdlog"; - license = licenses.mit; - maintainers = with maintainers; [ obadz ]; - platforms = platforms.all; + description = "Very fast, header only, C++ logging library"; + homepage = "https://github.com/gabime/spdlog"; + license = licenses.mit; + maintainers = with maintainers; [ obadz ]; + platforms = platforms.all; }; } diff --git a/pkgs/by-name/sp/sphinx/packages.nix b/pkgs/by-name/sp/sphinx/packages.nix index 795d4c0..8b92e92 100644 --- a/pkgs/by-name/sp/sphinx/packages.nix +++ b/pkgs/by-name/sp/sphinx/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { sphinx = with python3Packages; toPythonApplication sphinx; sphinx-autobuild = with python3Packages; toPythonApplication sphinx-autobuild; diff --git a/pkgs/by-name/sp/spice-protocol/default.nix b/pkgs/by-name/sp/spice-protocol/default.nix index d780085..a249a4c 100644 --- a/pkgs/by-name/sp/spice-protocol/default.nix +++ b/pkgs/by-name/sp/spice-protocol/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, meson, ninja }: +{ + lib, + stdenv, + fetchurl, + meson, + ninja, +}: stdenv.mkDerivation rec { pname = "spice-protocol"; @@ -9,7 +15,10 @@ stdenv.mkDerivation rec { sha256 = "sha256-BP+6YQ2f1EHPxH36oTXXAJbmCxBG0hGdjbL46g0X2RI="; }; - nativeBuildInputs = [ meson ninja ]; + nativeBuildInputs = [ + meson + ninja + ]; postInstall = '' mkdir -p $out/lib diff --git a/pkgs/by-name/sq/sqlite/default.nix b/pkgs/by-name/sq/sqlite/default.nix index d172d75..d40a357 100644 --- a/pkgs/by-name/sq/sqlite/default.nix +++ b/pkgs/by-name/sq/sqlite/default.nix @@ -1,12 +1,21 @@ -{ lib, stdenv, fetchurl, zlib, readline, ncurses +{ + lib, + stdenv, + fetchurl, + zlib, + readline, + ncurses, -# for tests -, python3Packages, sqldiff, sqlite-analyzer, tracker + # for tests + python3Packages, + sqldiff, + sqlite-analyzer, + tracker, -# uses readline & ncurses for a better interactive experience if set to true -, interactive ? false + # uses readline & ncurses for a better interactive experience if set to true + interactive ? false, -, gitUpdater + gitUpdater, }: let @@ -24,10 +33,19 @@ stdenv.mkDerivation rec { hash = "sha256-vJBnRC7t8905mJtcXPv/83rmbMnJknTgwwUtxNSo9q4="; }; - outputs = [ "bin" "dev" "out" ]; + outputs = [ + "bin" + "dev" + "out" + ]; separateDebugInfo = stdenv.isLinux; - buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ]; + buildInputs = + [ zlib ] + ++ lib.optionals interactive [ + readline + ncurses + ]; # required for aarch64 but applied for all arches for simplicity preConfigure = '' @@ -105,7 +123,10 @@ stdenv.mkDerivation rec { homepage = "https://www.sqlite.org/"; license = licenses.publicDomain; mainProgram = "sqlite3"; - maintainers = with maintainers; [ eelco np ]; + maintainers = with maintainers; [ + eelco + np + ]; platforms = platforms.unix ++ platforms.windows; pkgConfigModules = [ "sqlite3" ]; }; diff --git a/pkgs/by-name/sq/sqlite/packages.nix b/pkgs/by-name/sq/sqlite/packages.nix index e6b8877..1be39d4 100644 --- a/pkgs/by-name/sq/sqlite/packages.nix +++ b/pkgs/by-name/sq/sqlite/packages.nix @@ -1,13 +1,13 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { sqlite = lowPrio (callPackage ./. { }); - inherit (callPackage ./tools.nix { - inherit (darwin.apple_sdk.frameworks) Foundation; - }) sqlite-analyzer sqldiff; + inherit (callPackage ./tools.nix { inherit (darwin.apple_sdk.frameworks) Foundation; }) + sqlite-analyzer + sqldiff + ; sqlar = callPackage ./sqlar.nix { }; diff --git a/pkgs/by-name/sq/sqlite/sqlar.nix b/pkgs/by-name/sq/sqlite/sqlar.nix index 9063879..7b6b41c 100644 --- a/pkgs/by-name/sq/sqlite/sqlar.nix +++ b/pkgs/by-name/sq/sqlite/sqlar.nix @@ -1,5 +1,11 @@ -{ lib, stdenv, fetchurl, fuse, zlib -, withFuse ? true }: +{ + lib, + stdenv, + fetchurl, + fuse, + zlib, + withFuse ? true, +}: stdenv.mkDerivation { pname = "sqlar"; @@ -15,17 +21,20 @@ stdenv.mkDerivation { --replace 'gcc' '${stdenv.cc.targetPrefix}cc' ''; - buildInputs = [ zlib ] - ++ lib.optional withFuse fuse; + buildInputs = [ zlib ] ++ lib.optional withFuse fuse; - buildFlags = [ "CFLAGS=-Wno-error" "sqlar" ] - ++ lib.optional withFuse "sqlarfs"; + buildFlags = [ + "CFLAGS=-Wno-error" + "sqlar" + ] ++ lib.optional withFuse "sqlarfs"; - installPhase = '' - install -D -t $out/bin sqlar - '' + lib.optionalString withFuse '' - install -D -t $out/bin sqlarfs - ''; + installPhase = + '' + install -D -t $out/bin sqlar + '' + + lib.optionalString withFuse '' + install -D -t $out/bin sqlarfs + ''; meta = with lib; { homepage = "https://sqlite.org/sqlar"; diff --git a/pkgs/by-name/sq/sqlite/tools.nix b/pkgs/by-name/sq/sqlite/tools.nix index 94ac07d..439428e 100644 --- a/pkgs/by-name/sq/sqlite/tools.nix +++ b/pkgs/by-name/sq/sqlite/tools.nix @@ -1,32 +1,50 @@ -{ lib, stdenv, fetchurl, unzip, sqlite, tcl, Foundation }: +{ + lib, + stdenv, + fetchurl, + unzip, + sqlite, + tcl, + Foundation, +}: let archiveVersion = import ./archive-version.nix lib; - mkTool = { pname, makeTarget, description, homepage, mainProgram }: stdenv.mkDerivation rec { - inherit pname; - version = "3.45.2"; + mkTool = + { + pname, + makeTarget, + description, + homepage, + mainProgram, + }: + stdenv.mkDerivation rec { + inherit pname; + version = "3.45.2"; - # nixpkgs-update: no auto update - src = assert version == sqlite.version; fetchurl { - url = "https://sqlite.org/2024/sqlite-src-${archiveVersion version}.zip"; - hash = "sha256-SkWjV3zIr2g8S9TG6Bp8eCxbfV2qBhdeosuXHKcWkbE="; + # nixpkgs-update: no auto update + src = + assert version == sqlite.version; + fetchurl { + url = "https://sqlite.org/2024/sqlite-src-${archiveVersion version}.zip"; + hash = "sha256-SkWjV3zIr2g8S9TG6Bp8eCxbfV2qBhdeosuXHKcWkbE="; + }; + + nativeBuildInputs = [ unzip ]; + buildInputs = [ tcl ] ++ lib.optional stdenv.isDarwin Foundation; + + makeFlags = [ makeTarget ]; + + installPhase = "install -Dt $out/bin ${makeTarget}"; + + meta = with lib; { + inherit description homepage mainProgram; + downloadPage = "http://sqlite.org/download.html"; + license = licenses.publicDomain; + maintainers = with maintainers; [ johnazoidberg ]; + platforms = platforms.unix; + }; }; - - nativeBuildInputs = [ unzip ]; - buildInputs = [ tcl ] ++ lib.optional stdenv.isDarwin Foundation; - - makeFlags = [ makeTarget ]; - - installPhase = "install -Dt $out/bin ${makeTarget}"; - - meta = with lib; { - inherit description homepage mainProgram; - downloadPage = "http://sqlite.org/download.html"; - license = licenses.publicDomain; - maintainers = with maintainers; [ johnazoidberg ]; - platforms = platforms.unix; - }; - }; in { sqldiff = mkTool { diff --git a/pkgs/by-name/su/subversion/default.nix b/pkgs/by-name/su/subversion/default.nix index 0c83d08..2821061 100644 --- a/pkgs/by-name/su/subversion/default.nix +++ b/pkgs/by-name/su/subversion/default.nix @@ -1,15 +1,34 @@ -{ bdbSupport ? true # build support for Berkeley DB repositories -, httpServer ? false # build Apache DAV module -, httpSupport ? true # client must support http -, pythonBindings ? false -, perlBindings ? false -, javahlBindings ? false -, saslSupport ? false -, lib, stdenv, fetchurl, apr, aprutil, zlib, sqlite, openssl, lz4, utf8proc -, CoreServices, Security -, autoconf, libtool -, apacheHttpd ? null, expat, swig ? null, jdk ? null, python3 ? null, py3c ? null, perl ? null -, sasl ? null, serf ? null +{ + bdbSupport ? true, # build support for Berkeley DB repositories + httpServer ? false, # build Apache DAV module + httpSupport ? true, # client must support http + pythonBindings ? false, + perlBindings ? false, + javahlBindings ? false, + saslSupport ? false, + lib, + stdenv, + fetchurl, + apr, + aprutil, + zlib, + sqlite, + openssl, + lz4, + utf8proc, + CoreServices, + Security, + autoconf, + libtool, + apacheHttpd ? null, + expat, + swig ? null, + jdk ? null, + python3 ? null, + py3c ? null, + perl ? null, + sasl ? null, + serf ? null, }: assert bdbSupport -> aprutil.bdbSupport; @@ -19,114 +38,153 @@ assert javahlBindings -> jdk != null && perl != null; let # Update libtool for macOS 11 support - needsAutogen = stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11"; + needsAutogen = + stdenv.hostPlatform.isDarwin && lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11"; - common = { version, sha256, extraPatches ? [ ] }: stdenv.mkDerivation (rec { - inherit version; - pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}"; + common = + { + version, + sha256, + extraPatches ? [ ], + }: + stdenv.mkDerivation ( + rec { + inherit version; + pname = "subversion${lib.optionalString (!bdbSupport && perlBindings && pythonBindings) "-client"}"; - src = fetchurl { - url = "mirror://apache/subversion/subversion-${version}.tar.bz2"; - inherit sha256; - }; + src = fetchurl { + url = "mirror://apache/subversion/subversion-${version}.tar.bz2"; + inherit sha256; + }; - # Can't do separate $lib and $bin, as libs reference bins - outputs = [ "out" "dev" "man" ]; + # Can't do separate $lib and $bin, as libs reference bins + outputs = [ + "out" + "dev" + "man" + ]; - nativeBuildInputs = lib.optionals needsAutogen [ autoconf libtool python3 ]; + nativeBuildInputs = lib.optionals needsAutogen [ + autoconf + libtool + python3 + ]; - buildInputs = [ zlib apr aprutil sqlite openssl lz4 utf8proc ] - ++ lib.optional httpSupport serf - ++ lib.optionals pythonBindings [ python3 py3c ] - ++ lib.optional perlBindings perl - ++ lib.optional saslSupport sasl - ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices Security ]; + buildInputs = + [ + zlib + apr + aprutil + sqlite + openssl + lz4 + utf8proc + ] + ++ lib.optional httpSupport serf + ++ lib.optionals pythonBindings [ + python3 + py3c + ] + ++ lib.optional perlBindings perl + ++ lib.optional saslSupport sasl + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + CoreServices + Security + ]; - patches = [ ./apr-1.patch ] ++ extraPatches; + patches = [ ./apr-1.patch ] ++ extraPatches; - # We are hitting the following issue even with APR 1.6.x - # -> https://issues.apache.org/jira/browse/SVN-4813 - # "-P" CPPFLAG is needed to build Python bindings and subversionClient - CPPFLAGS = [ "-P" ]; + # We are hitting the following issue even with APR 1.6.x + # -> https://issues.apache.org/jira/browse/SVN-4813 + # "-P" CPPFLAG is needed to build Python bindings and subversionClient + CPPFLAGS = [ "-P" ]; - preConfigure = lib.optionalString needsAutogen '' - ./autogen.sh - ''; + preConfigure = lib.optionalString needsAutogen '' + ./autogen.sh + ''; - configureFlags = [ - (lib.withFeature bdbSupport "berkeley-db") - (lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs") - (lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig) - (lib.withFeatureAs saslSupport "sasl" sasl) - (lib.withFeatureAs httpSupport "serf" serf) - "--with-zlib=${zlib.dev}" - "--with-sqlite=${sqlite.dev}" - "--with-apr=${apr.dev}" - "--with-apr-util=${aprutil.dev}" - ] ++ lib.optionals javahlBindings [ - "--enable-javahl" - "--with-jdk=${jdk}" - ]; + configureFlags = + [ + (lib.withFeature bdbSupport "berkeley-db") + (lib.withFeatureAs httpServer "apxs" "${apacheHttpd.dev}/bin/apxs") + (lib.withFeatureAs (pythonBindings || perlBindings) "swig" swig) + (lib.withFeatureAs saslSupport "sasl" sasl) + (lib.withFeatureAs httpSupport "serf" serf) + "--with-zlib=${zlib.dev}" + "--with-sqlite=${sqlite.dev}" + "--with-apr=${apr.dev}" + "--with-apr-util=${aprutil.dev}" + ] + ++ lib.optionals javahlBindings [ + "--enable-javahl" + "--with-jdk=${jdk}" + ]; - preBuild = '' - makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) - ''; + preBuild = '' + makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules) + ''; - postInstall = '' - if test -n "$pythonBindings"; then - make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn - make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn - fi + postInstall = '' + if test -n "$pythonBindings"; then + make swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + make install-swig-py swig_pydir=$(toPythonPath $out)/libsvn swig_pydir_extra=$(toPythonPath $out)/svn + fi - if test -n "$perlBindings"; then - make swig-pl-lib - make install-swig-pl-lib - cd subversion/bindings/swig/perl/native - perl Makefile.PL PREFIX=$out - make install - cd - - fi + if test -n "$perlBindings"; then + make swig-pl-lib + make install-swig-pl-lib + cd subversion/bindings/swig/perl/native + perl Makefile.PL PREFIX=$out + make install + cd - + fi - mkdir -p $out/share/bash-completion/completions - cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion + mkdir -p $out/share/bash-completion/completions + cp tools/client-side/bash_completion $out/share/bash-completion/completions/subversion - for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do - substituteInPlace $f \ - --replace "${expat.dev}/lib" "${expat.out}/lib" \ - --replace "${zlib.dev}/lib" "${zlib.out}/lib" \ - --replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \ - --replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib" - done - ''; + for f in $out/lib/*.la $out/lib/python*/site-packages/*/*.la; do + substituteInPlace $f \ + --replace "${expat.dev}/lib" "${expat.out}/lib" \ + --replace "${zlib.dev}/lib" "${zlib.out}/lib" \ + --replace "${sqlite.dev}/lib" "${sqlite.out}/lib" \ + --replace "${openssl.dev}/lib" "${lib.getLib openssl}/lib" + done + ''; - inherit perlBindings pythonBindings; + inherit perlBindings pythonBindings; - enableParallelBuilding = true; - # Missing install dependencies: - # libtool: error: error: relink 'libsvn_ra_serf-1.la' with the above command before installing it - # make: *** [build-outputs.mk:1316: install-serf-lib] Error 1 - enableParallelInstalling = false; + enableParallelBuilding = true; + # Missing install dependencies: + # libtool: error: error: relink 'libsvn_ra_serf-1.la' with the above command before installing it + # make: *** [build-outputs.mk:1316: install-serf-lib] Error 1 + enableParallelInstalling = false; - nativeCheckInputs = [ python3 ]; - doCheck = false; # fails 10 out of ~2300 tests + nativeCheckInputs = [ python3 ]; + doCheck = false; # fails 10 out of ~2300 tests - meta = with lib; { - description = "A version control system intended to be a compelling replacement for CVS in the open source community"; - license = licenses.asl20; - homepage = "https://subversion.apache.org/"; - mainProgram = "svn"; - maintainers = with maintainers; [ eelco lovek323 ]; - platforms = platforms.linux ++ platforms.darwin; - }; + meta = with lib; { + description = "A version control system intended to be a compelling replacement for CVS in the open source community"; + license = licenses.asl20; + homepage = "https://subversion.apache.org/"; + mainProgram = "svn"; + maintainers = with maintainers; [ + eelco + lovek323 + ]; + platforms = platforms.linux ++ platforms.darwin; + }; - } // lib.optionalAttrs stdenv.isDarwin { - CXX = "clang++"; - CC = "clang"; - CPP = "clang -E"; - CXXCPP = "clang++ -E"; - }); + } + // lib.optionalAttrs stdenv.isDarwin { + CXX = "clang++"; + CC = "clang"; + CPP = "clang -E"; + CXXCPP = "clang++ -E"; + } + ); -in { +in +{ subversion = common { version = "1.14.3"; sha256 = "sha256-lJ79RRoJQ19+hXNXTHHHtxsZTYRIkPpJzWHSJi6hpEA="; diff --git a/pkgs/by-name/su/subversion/packages.nix b/pkgs/by-name/su/subversion/packages.nix index 5c7df2f..5902d5d 100644 --- a/pkgs/by-name/su/subversion/packages.nix +++ b/pkgs/by-name/su/subversion/packages.nix @@ -1,12 +1,14 @@ { ... }: res: pkgs: super: -with pkgs; -{ - inherit (callPackages ./. { - sasl = cyrus_sasl; - inherit (darwin.apple_sdk.frameworks) CoreServices Security; - }) subversion; +with pkgs; { + inherit + (callPackages ./. { + sasl = cyrus_sasl; + inherit (darwin.apple_sdk.frameworks) CoreServices Security; + }) + subversion + ; subversionClient = subversion.override { bdbSupport = false; diff --git a/pkgs/by-name/sw/swig/2.x.nix b/pkgs/by-name/sw/swig/2.x.nix index ac03372..9b36a61 100644 --- a/pkgs/by-name/sw/swig/2.x.nix +++ b/pkgs/by-name/sw/swig/2.x.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libtool, + bison, + pcre, +}: stdenv.mkDerivation rec { pname = "swig"; @@ -11,7 +20,12 @@ stdenv.mkDerivation rec { sha256 = "0khm9gh5pczfcihr0pbicaicc4v9kjm5ip2alvkhmbb3ga6njkcm"; }; - nativeBuildInputs = [ autoconf automake libtool bison ]; + nativeBuildInputs = [ + autoconf + automake + libtool + bison + ]; buildInputs = [ pcre ]; configureFlags = [ "--without-tcl" ]; diff --git a/pkgs/by-name/sw/swig/3.x.nix b/pkgs/by-name/sw/swig/3.x.nix index f50c02d..c633d91 100644 --- a/pkgs/by-name/sw/swig/3.x.nix +++ b/pkgs/by-name/sw/swig/3.x.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libtool, + bison, + pcre, +}: stdenv.mkDerivation rec { pname = "swig"; @@ -12,7 +21,12 @@ stdenv.mkDerivation rec { }; PCRE_CONFIG = "${pcre.dev}/bin/pcre-config"; - nativeBuildInputs = [ autoconf automake libtool bison ]; + nativeBuildInputs = [ + autoconf + automake + libtool + bison + ]; buildInputs = [ pcre ]; configureFlags = [ "--without-tcl" ]; diff --git a/pkgs/by-name/sw/swig/4.nix b/pkgs/by-name/sw/swig/4.nix index 6b6d1bc..bfbeb92 100644 --- a/pkgs/by-name/sw/swig/4.nix +++ b/pkgs/by-name/sw/swig/4.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }: +{ + lib, + stdenv, + fetchFromGitHub, + autoconf, + automake, + libtool, + bison, + pcre, +}: stdenv.mkDerivation rec { pname = "swig"; @@ -12,7 +21,12 @@ stdenv.mkDerivation rec { }; PCRE_CONFIG = "${pcre.dev}/bin/pcre-config"; - nativeBuildInputs = [ autoconf automake libtool bison ]; + nativeBuildInputs = [ + autoconf + automake + libtool + bison + ]; buildInputs = [ pcre ]; configureFlags = [ "--without-tcl" ]; diff --git a/pkgs/by-name/sw/swig/default.nix b/pkgs/by-name/sw/swig/default.nix index ad7b64c..2b2c2c8 100644 --- a/pkgs/by-name/sw/swig/default.nix +++ b/pkgs/by-name/sw/swig/default.nix @@ -1,4 +1,10 @@ -{ lib, stdenv, fetchurl, boost, tcl }: +{ + lib, + stdenv, + fetchurl, + boost, + tcl, +}: stdenv.mkDerivation rec { pname = "swig"; @@ -11,11 +17,13 @@ stdenv.mkDerivation rec { doCheck = !stdenv.isCygwin; # 'make check' uses boost and tcl - buildInputs = lib.optionals doCheck [ boost tcl ]; + buildInputs = lib.optionals doCheck [ + boost + tcl + ]; configureFlags = [ "--disable-ccache" ]; - meta = with lib; { description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages"; mainProgram = "swig"; diff --git a/pkgs/by-name/sw/swig/packages.nix b/pkgs/by-name/sw/swig/packages.nix index 4467e7c..898cada 100644 --- a/pkgs/by-name/sw/swig/packages.nix +++ b/pkgs/by-name/sw/swig/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { swig1 = callPackage ./. { }; swig2 = callPackage ./2.x.nix { }; swig3 = callPackage ./3.x.nix { }; diff --git a/pkgs/by-name/sy/systemd/default.nix b/pkgs/by-name/sy/systemd/default.nix index 9cdc5dc..f819682 100644 --- a/pkgs/by-name/sy/systemd/default.nix +++ b/pkgs/by-name/sy/systemd/default.nix @@ -1,73 +1,74 @@ # NOTE: Make sure to (re-)format this file on changes with `nixpkgs-fmt`! -{ stdenv -, lib -, nixosTests -, pkgsCross -, fetchFromGitHub -, fetchpatch -, fetchzip -, buildPackages -, makeBinaryWrapper -, ninja -, meson -, m4 -, pkg-config -, coreutils -, gperf -, getent -, glibcLocales +{ + stdenv, + lib, + nixosTests, + pkgsCross, + fetchFromGitHub, + fetchpatch, + fetchzip, + buildPackages, + makeBinaryWrapper, + ninja, + meson, + m4, + pkg-config, + coreutils, + gperf, + getent, + glibcLocales, # glib is only used during tests (test-bus-gvariant, test-bus-marshal) -, glib -, gettext -, python3Packages + glib, + gettext, + python3Packages, # Mandatory dependencies -, libcap -, util-linux -, kbd -, kmod -, libxcrypt + libcap, + util-linux, + kbd, + kmod, + libxcrypt, # Optional dependencies -, pam -, cryptsetup -, audit -, acl -, lz4 -, libgcrypt -, libgpg-error -, libidn2 -, curl -, gnutar -, gnupg -, zlib -, xz -, zstd -, tpm2-tss -, libuuid -, libapparmor -, intltool -, bzip2 -, pcre2 -, elfutils -, linuxHeaders ? stdenv.cc.libc.linuxHeaders -, gnutls -, iptables -, withSelinux ? false -, libselinux -, withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp -, libseccomp -, withKexectools ? lib.meta.availableOn stdenv.hostPlatform kexec-tools -, kexec-tools -, bashInteractive -, bash -, libmicrohttpd -, libfido2 -, p11-kit -, libpwquality -, qrencode + pam, + cryptsetup, + audit, + acl, + lz4, + libgcrypt, + libgpg-error, + libidn2, + curl, + gnutar, + gnupg, + zlib, + xz, + zstd, + tpm2-tss, + libuuid, + libapparmor, + intltool, + bzip2, + pcre2, + elfutils, + linuxHeaders ? stdenv.cc.libc.linuxHeaders, + gnutls, + iptables, + withSelinux ? false, + libselinux, + withLibseccomp ? lib.meta.availableOn stdenv.hostPlatform libseccomp, + libseccomp, + withKexectools ? lib.meta.availableOn stdenv.hostPlatform kexec-tools, + kexec-tools, + bashInteractive, + bash, + libmicrohttpd, + libfido2, + p11-kit, + libpwquality, + qrencode, # the (optional) BPF feature requires bpftool, libbpf, clang and llvm-strip to # be available during build time. @@ -80,38 +81,40 @@ # `buildPackages.targetPackages.stdenv.cc == stdenv.cc` relative to # us. Working around this is important, because systemd is in the dependency # closure of GHC via emscripten and jdk. -, bpftools -, libbpf + bpftools, + libbpf, # Needed to produce a ukify that works for cross compiling UKIs. -, targetPackages + targetPackages, -, withAcl ? true -, withAnalyze ? true -, withApparmor ? true -, withAudit ? true + withAcl ? true, + withAnalyze ? true, + withApparmor ? true, + withAudit ? true, # compiles systemd-boot, assumes EFI is available. -, withBootloader ? withEfi + withBootloader ? + withEfi && !stdenv.hostPlatform.isMusl # "Unknown 64-bit data model" - && !stdenv.hostPlatform.isRiscV32 + && !stdenv.hostPlatform.isRiscV32, # adds bzip2, lz4, xz and zstd -, withCompression ? true -, withCoredump ? true -, withCryptsetup ? true -, withRepart ? true -, withDocumentation ? true -, withEfi ? stdenv.hostPlatform.isEfi -, withFido2 ? true + withCompression ? true, + withCoredump ? true, + withCryptsetup ? true, + withRepart ? true, + withDocumentation ? true, + withEfi ? stdenv.hostPlatform.isEfi, + withFido2 ? true, # conflicts with the NixOS /etc management -, withFirstboot ? false -, withHomed ? !stdenv.hostPlatform.isMusl -, withHostnamed ? true -, withHwdb ? true -, withImportd ? !stdenv.hostPlatform.isMusl -, withIptables ? true -, withKmod ? true -, withLibBPF ? lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0" + withFirstboot ? false, + withHomed ? !stdenv.hostPlatform.isMusl, + withHostnamed ? true, + withHwdb ? true, + withImportd ? !stdenv.hostPlatform.isMusl, + withIptables ? true, + withKmod ? true, + withLibBPF ? + lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0" # assumes hard floats && (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") # see https://github.com/NixOS/nixpkgs/pull/194149#issuecomment-1266642211 @@ -123,50 +126,50 @@ # buildPackages.targetPackages.llvmPackages is the same as llvmPackages, # but we do it this way to avoid taking llvmPackages as an input, and # risking making it too easy to ignore the above comment about llvmPackages. - && lib.meta.availableOn stdenv.hostPlatform buildPackages.targetPackages.llvmPackages.compiler-rt -, withLibidn2 ? true -, withLocaled ? true -, withLogind ? true -, withMachined ? true -, withNetworkd ? true -, withNss ? !stdenv.hostPlatform.isMusl -, withOomd ? true -, withPam ? true -, withPasswordQuality ? true -, withPCRE2 ? true -, withPolkit ? true -, withPortabled ? !stdenv.hostPlatform.isMusl -, withQrencode ? true -, withRemote ? !stdenv.hostPlatform.isMusl -, withResolved ? true -, withShellCompletions ? true -, withSysusers ? true -, withSysupdate ? true -, withTimedated ? true -, withTimesyncd ? true -, withTpm2Tss ? true + && lib.meta.availableOn stdenv.hostPlatform buildPackages.targetPackages.llvmPackages.compiler-rt, + withLibidn2 ? true, + withLocaled ? true, + withLogind ? true, + withMachined ? true, + withNetworkd ? true, + withNss ? !stdenv.hostPlatform.isMusl, + withOomd ? true, + withPam ? true, + withPasswordQuality ? true, + withPCRE2 ? true, + withPolkit ? true, + withPortabled ? !stdenv.hostPlatform.isMusl, + withQrencode ? true, + withRemote ? !stdenv.hostPlatform.isMusl, + withResolved ? true, + withShellCompletions ? true, + withSysusers ? true, + withSysupdate ? true, + withTimedated ? true, + withTimesyncd ? true, + withTpm2Tss ? true, # adds python to closure which is too much by default -, withUkify ? false -, withUserDb ? true -, withUtmp ? !stdenv.hostPlatform.isMusl -, withVmspawn ? true + withUkify ? false, + withUserDb ? true, + withUtmp ? !stdenv.hostPlatform.isMusl, + withVmspawn ? true, # kernel-install shouldn't usually be used on NixOS, but can be useful, e.g. for # building disk images for non-NixOS systems. To save users from trying to use it # on their live NixOS system, we disable it by default. -, withKernelInstall ? false + withKernelInstall ? false, # tests assume too much system access for them to be feasible for us right now -, withTests ? false + withTests ? false, # build only libudev and libsystemd -, buildLibsOnly ? false + buildLibsOnly ? false, # yes, pname is an argument here -, pname ? "systemd" + pname ? "systemd", -, libxslt -, docbook_xsl -, docbook_xml_dtd_42 -, docbook_xml_dtd_45 -, withLogTrace ? false + libxslt, + docbook_xsl, + docbook_xml_dtd_42, + docbook_xml_dtd_45, + withLogTrace ? false, }: assert withImportd -> withCompression; @@ -209,214 +212,295 @@ stdenv.mkDerivation (finalAttrs: { # `git -c format.signoff=false format-patch v${version} --no-numbered --zero-commit --no-signature`. # Use `find . -name "*.patch" | sort` to get an up-to-date listing of all # patches - patches = [ - ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch - ./0002-Don-t-try-to-unmount-nix-or-nix-store.patch - ./0003-Fix-NixOS-containers.patch - ./0004-Add-some-NixOS-specific-unit-directories.patch - ./0005-Get-rid-of-a-useless-message-in-user-sessions.patch - ./0006-hostnamed-localed-timedated-disable-methods-that-cha.patch - ./0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch - ./0008-localectl-use-etc-X11-xkb-for-list-x11.patch - ./0009-add-rootprefix-to-lookup-dir-paths.patch - ./0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch - ./0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch - ./0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch - ./0013-inherit-systemd-environment-when-calling-generators.patch - ./0014-core-don-t-taint-on-unmerged-usr.patch - ./0015-tpm2_context_init-fix-driver-name-checking.patch - ./0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch - ./0017-meson.build-do-not-create-systemdstatedir.patch - ] ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) [ - ./0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch - ] ++ lib.optional (stdenv.hostPlatform.isPower || stdenv.hostPlatform.isRiscV || stdenv.hostPlatform.isMips) [ - # Fixed upstream and included in the main and stable branches. Can be dropped - # when bumping to >= v255.5. - # https://github.com/systemd/systemd/issues/30448 - # https://github.com/NixOS/nixpkgs/pull/282607 - (fetchpatch { - url = "https://github.com/systemd/systemd/commit/8040fa55a1cbc34dede3205a902095ecd26c21e3.patch"; - sha256 = "0c6z7bsndbkb8m130jnjpsl138sfv3q171726n5vkyl2n9ihnavk"; - }) - ] ++ lib.optional stdenv.hostPlatform.isMusl ( - let - oe-core = fetchzip { - url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-6fdf03bd950e55ef7881041606f6e76141033716.tar.gz"; - sha256 = "/+9aJdOxBY8Y4vJPftOCxmyK8L2nvR82KmJxil1a2aY="; - }; - musl-patches = oe-core + "/meta/recipes-core/systemd/systemd"; - in + patches = [ - (musl-patches + "/0017-Adjust-for-musl-headers.patch") - (musl-patches + "/0016-pass-correct-parameters-to-getdents64.patch") - (musl-patches + "/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch") - (musl-patches + "/0001-missing_type.h-add-comparison_fn_t.patch") - (musl-patches + "/0002-add-fallback-parse_printf_format-implementation.patch") - (musl-patches + "/0003-src-basic-missing.h-check-for-missing-strndupa.patch") - (musl-patches + "/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch") - (musl-patches + "/0005-add-missing-FTW_-macros-for-musl.patch") - (musl-patches + "/0006-Use-uintmax_t-for-handling-rlim_t.patch") - (musl-patches + "/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch") - (musl-patches + "/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch") - (musl-patches + "/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch") - (musl-patches + "/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch") - (musl-patches + "/0011-avoid-redefinition-of-prctl_mm_map-structure.patch") - (musl-patches + "/0012-do-not-disable-buffer-in-writing-files.patch") - (musl-patches + "/0013-Handle-__cpu_mask-usage.patch") - (musl-patches + "/0014-Handle-missing-gshadow.patch") - (musl-patches + "/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch") - (musl-patches + "/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch") - (musl-patches + "/0021-shared-Do-not-use-malloc_info-on-musl.patch") - (musl-patches + "/0022-avoid-missing-LOCK_EX-declaration.patch") + ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch + ./0002-Don-t-try-to-unmount-nix-or-nix-store.patch + ./0003-Fix-NixOS-containers.patch + ./0004-Add-some-NixOS-specific-unit-directories.patch + ./0005-Get-rid-of-a-useless-message-in-user-sessions.patch + ./0006-hostnamed-localed-timedated-disable-methods-that-cha.patch + ./0007-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch + ./0008-localectl-use-etc-X11-xkb-for-list-x11.patch + ./0009-add-rootprefix-to-lookup-dir-paths.patch + ./0010-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch + ./0011-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch + ./0012-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch + ./0013-inherit-systemd-environment-when-calling-generators.patch + ./0014-core-don-t-taint-on-unmerged-usr.patch + ./0015-tpm2_context_init-fix-driver-name-checking.patch + ./0016-systemctl-edit-suggest-systemdctl-edit-runtime-on-sy.patch + ./0017-meson.build-do-not-create-systemdstatedir.patch ] - ); - - postPatch = '' - substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/" - '' + lib.optionalString withLibBPF '' - substituteInPlace meson.build \ - --replace "find_program('clang'" "find_program('${stdenv.cc.targetPrefix}clang'" - '' + lib.optionalString withUkify '' - substituteInPlace src/ukify/ukify.py \ - --replace \ - "'readelf'" \ - "'${targetPackages.stdenv.cc.bintools.targetPrefix}readelf'" \ - --replace \ - "/usr/lib/systemd/boot/efi" \ - "$out/lib/systemd/boot/efi" - '' + ( - let - # The following patches references to dynamic libraries to ensure that all - # the features that are implemented via dlopen(3) are available (or - # explicitly deactivated) by pointing dlopen to the absolute store path - # instead of relying on the linkers runtime lookup code. - # - # All of the shared library references have to be handled. When new ones - # are introduced by upstream (or one of our patches) they must be - # explicitly declared, otherwise the build will fail. - # - # As of systemd version 247 we've seen a few errors like `libpcre2.… not - # found` when using e.g. --grep with journalctl. Those errors should - # become less unexpected now. - # - # There are generally two classes of dlopen(3) calls. Those that we want - # to support and those that should be deactivated / unsupported. This - # change enforces that we handle all dlopen calls explicitly. Meaning: - # There is not a single dlopen call in the source code tree that we did - # not explicitly handle. - # - # In order to do this we introduced a list of attributes that maps from - # shared object name to the package that contains them. The package can be - # null meaning the reference should be nuked and the shared object will - # never be loadable during runtime (because it points at an invalid store - # path location). - # - # To get a list of dynamically loaded libraries issue something like - # `grep -ri '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"'' $src` - # and update the list below. - dlopenLibs = - let - opt = condition: pkg: if condition then pkg else null; - in + ++ lib.optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) [ + ./0018-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch + ] + ++ + lib.optional + (stdenv.hostPlatform.isPower || stdenv.hostPlatform.isRiscV || stdenv.hostPlatform.isMips) [ - # bpf compilation support. We use libbpf 1 now. - { name = "libbpf.so.1"; pkg = opt withLibBPF libbpf; } - { name = "libbpf.so.0"; pkg = null; } + # Fixed upstream and included in the main and stable branches. Can be dropped + # when bumping to >= v255.5. + # https://github.com/systemd/systemd/issues/30448 + # https://github.com/NixOS/nixpkgs/pull/282607 + (fetchpatch { + url = "https://github.com/systemd/systemd/commit/8040fa55a1cbc34dede3205a902095ecd26c21e3.patch"; + sha256 = "0c6z7bsndbkb8m130jnjpsl138sfv3q171726n5vkyl2n9ihnavk"; + }) + ] + ++ lib.optional stdenv.hostPlatform.isMusl ( + let + oe-core = fetchzip { + url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-6fdf03bd950e55ef7881041606f6e76141033716.tar.gz"; + sha256 = "/+9aJdOxBY8Y4vJPftOCxmyK8L2nvR82KmJxil1a2aY="; + }; + musl-patches = oe-core + "/meta/recipes-core/systemd/systemd"; + in + [ + (musl-patches + "/0017-Adjust-for-musl-headers.patch") + (musl-patches + "/0016-pass-correct-parameters-to-getdents64.patch") + (musl-patches + "/0018-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch") + (musl-patches + "/0001-missing_type.h-add-comparison_fn_t.patch") + (musl-patches + "/0002-add-fallback-parse_printf_format-implementation.patch") + (musl-patches + "/0003-src-basic-missing.h-check-for-missing-strndupa.patch") + (musl-patches + "/0004-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch") + (musl-patches + "/0005-add-missing-FTW_-macros-for-musl.patch") + (musl-patches + "/0006-Use-uintmax_t-for-handling-rlim_t.patch") + (musl-patches + "/0007-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch") + (musl-patches + "/0008-Define-glibc-compatible-basename-for-non-glibc-syste.patch") + (musl-patches + "/0009-Do-not-disable-buffering-when-writing-to-oom_score_a.patch") + (musl-patches + "/0010-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch") + (musl-patches + "/0011-avoid-redefinition-of-prctl_mm_map-structure.patch") + (musl-patches + "/0012-do-not-disable-buffer-in-writing-files.patch") + (musl-patches + "/0013-Handle-__cpu_mask-usage.patch") + (musl-patches + "/0014-Handle-missing-gshadow.patch") + (musl-patches + "/0015-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch") + (musl-patches + "/0020-sd-event-Make-malloc_trim-conditional-on-glibc.patch") + (musl-patches + "/0021-shared-Do-not-use-malloc_info-on-musl.patch") + (musl-patches + "/0022-avoid-missing-LOCK_EX-declaration.patch") + ] + ); - # We did never provide support for libxkbcommon - { name = "libxkbcommon.so.0"; pkg = null; } + postPatch = + '' + substituteInPlace src/basic/path-util.h --replace "@defaultPathNormal@" "${placeholder "out"}/bin/" + '' + + lib.optionalString withLibBPF '' + substituteInPlace meson.build \ + --replace "find_program('clang'" "find_program('${stdenv.cc.targetPrefix}clang'" + '' + + lib.optionalString withUkify '' + substituteInPlace src/ukify/ukify.py \ + --replace \ + "'readelf'" \ + "'${targetPackages.stdenv.cc.bintools.targetPrefix}readelf'" \ + --replace \ + "/usr/lib/systemd/boot/efi" \ + "$out/lib/systemd/boot/efi" + '' + + ( + let + # The following patches references to dynamic libraries to ensure that all + # the features that are implemented via dlopen(3) are available (or + # explicitly deactivated) by pointing dlopen to the absolute store path + # instead of relying on the linkers runtime lookup code. + # + # All of the shared library references have to be handled. When new ones + # are introduced by upstream (or one of our patches) they must be + # explicitly declared, otherwise the build will fail. + # + # As of systemd version 247 we've seen a few errors like `libpcre2.… not + # found` when using e.g. --grep with journalctl. Those errors should + # become less unexpected now. + # + # There are generally two classes of dlopen(3) calls. Those that we want + # to support and those that should be deactivated / unsupported. This + # change enforces that we handle all dlopen calls explicitly. Meaning: + # There is not a single dlopen call in the source code tree that we did + # not explicitly handle. + # + # In order to do this we introduced a list of attributes that maps from + # shared object name to the package that contains them. The package can be + # null meaning the reference should be nuked and the shared object will + # never be loadable during runtime (because it points at an invalid store + # path location). + # + # To get a list of dynamically loaded libraries issue something like + # `grep -ri '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"'' $src` + # and update the list below. + dlopenLibs = + let + opt = condition: pkg: if condition then pkg else null; + in + [ + # bpf compilation support. We use libbpf 1 now. + { + name = "libbpf.so.1"; + pkg = opt withLibBPF libbpf; + } + { + name = "libbpf.so.0"; + pkg = null; + } - # qrencode - { name = "libqrencode.so.4"; pkg = opt withQrencode qrencode; } - { name = "libqrencode.so.3"; pkg = null; } + # We did never provide support for libxkbcommon + { + name = "libxkbcommon.so.0"; + pkg = null; + } - # Password quality - # We currently do not package passwdqc, only libpwquality. - { name = "libpwquality.so.1"; pkg = opt withPasswordQuality libpwquality; } - { name = "libpasswdqc.so.1"; pkg = null; } + # qrencode + { + name = "libqrencode.so.4"; + pkg = opt withQrencode qrencode; + } + { + name = "libqrencode.so.3"; + pkg = null; + } - # Only include cryptsetup if it is enabled. We might not be able to - # provide it during "bootstrap" in e.g. the minimal systemd build as - # cryptsetup has udev (aka systemd) in it's dependencies. - { name = "libcryptsetup.so.12"; pkg = opt withCryptsetup cryptsetup; } + # Password quality + # We currently do not package passwdqc, only libpwquality. + { + name = "libpwquality.so.1"; + pkg = opt withPasswordQuality libpwquality; + } + { + name = "libpasswdqc.so.1"; + pkg = null; + } - # We are using libidn2 so we only provide that and ignore the others. - # Systemd does this decision during configure time and uses ifdef's to - # enable specific branches. We can safely ignore (nuke) the libidn "v1" - # libraries. - { name = "libidn2.so.0"; pkg = opt withLibidn2 libidn2; } - { name = "libidn.so.12"; pkg = null; } - { name = "libidn.so.11"; pkg = null; } + # Only include cryptsetup if it is enabled. We might not be able to + # provide it during "bootstrap" in e.g. the minimal systemd build as + # cryptsetup has udev (aka systemd) in it's dependencies. + { + name = "libcryptsetup.so.12"; + pkg = opt withCryptsetup cryptsetup; + } - # journalctl --grep requires libpcre so let's provide it - { name = "libpcre2-8.so.0"; pkg = pcre2; } + # We are using libidn2 so we only provide that and ignore the others. + # Systemd does this decision during configure time and uses ifdef's to + # enable specific branches. We can safely ignore (nuke) the libidn "v1" + # libraries. + { + name = "libidn2.so.0"; + pkg = opt withLibidn2 libidn2; + } + { + name = "libidn.so.12"; + pkg = null; + } + { + name = "libidn.so.11"; + pkg = null; + } - # Support for TPM2 in systemd-cryptsetup, systemd-repart and systemd-cryptenroll - { name = "libtss2-esys.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-rc.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-mu.so.0"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libtss2-tcti-"; pkg = opt withTpm2Tss tpm2-tss; } - { name = "libfido2.so.1"; pkg = opt withFido2 libfido2; } + # journalctl --grep requires libpcre so let's provide it + { + name = "libpcre2-8.so.0"; + pkg = pcre2; + } - # inspect-elf support - { name = "libelf.so.1"; pkg = opt withCoredump elfutils; } - { name = "libdw.so.1"; pkg = opt withCoredump elfutils; } + # Support for TPM2 in systemd-cryptsetup, systemd-repart and systemd-cryptenroll + { + name = "libtss2-esys.so.0"; + pkg = opt withTpm2Tss tpm2-tss; + } + { + name = "libtss2-rc.so.0"; + pkg = opt withTpm2Tss tpm2-tss; + } + { + name = "libtss2-mu.so.0"; + pkg = opt withTpm2Tss tpm2-tss; + } + { + name = "libtss2-tcti-"; + pkg = opt withTpm2Tss tpm2-tss; + } + { + name = "libfido2.so.1"; + pkg = opt withFido2 libfido2; + } - # Support for PKCS#11 in systemd-cryptsetup, systemd-cryptenroll and systemd-homed - { name = "libp11-kit.so.0"; pkg = opt (withHomed || withCryptsetup) p11-kit; } + # inspect-elf support + { + name = "libelf.so.1"; + pkg = opt withCoredump elfutils; + } + { + name = "libdw.so.1"; + pkg = opt withCoredump elfutils; + } - { name = "libip4tc.so.2"; pkg = opt withIptables iptables; } - ]; + # Support for PKCS#11 in systemd-cryptsetup, systemd-cryptenroll and systemd-homed + { + name = "libp11-kit.so.0"; + pkg = opt (withHomed || withCryptsetup) p11-kit; + } - patchDlOpen = dl: - let - library = "${lib.makeLibraryPath [ dl.pkg ]}/${dl.name}"; - in - if dl.pkg == null then '' - # remove the dependency on the library by replacing it with an invalid path - for file in $(grep -lr '"${dl.name}"' src); do - echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…" - substituteInPlace "$file" --replace '"${dl.name}"' '"${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"' - done - '' else '' - # ensure that the library we provide actually exists - if ! [ -e ${library} ]; then - # exceptional case, details: - # https://github.com/systemd/systemd-stable/blob/v249-stable/src/shared/tpm2-util.c#L157 - if ! [[ "${library}" =~ .*libtss2-tcti-$ ]]; then - echo 'The shared library `${library}` does not exist but was given as substitute for `${dl.name}`' - exit 1 - fi - fi - # make the path to the dependency explicit - for file in $(grep -lr '"${dl.name}"' src); do - echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…" - substituteInPlace "$file" --replace '"${dl.name}"' '"${library}"' - done + { + name = "libip4tc.so.2"; + pkg = opt withIptables iptables; + } + ]; - ''; - in - # patch all the dlopen calls to contain absolute paths to the libraries - lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs - ) - # finally ensure that there are no left-over dlopen calls (or rather strings - # pointing to shared libraries) that we didn't handle - + '' - if grep -qr '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src; then - echo "Found unhandled dynamic library calls: " - grep -r '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src - exit 1 - fi - '' - # Finally, patch shebangs in scripts used at build time. This must not patch - # scripts that will end up in the output, to avoid build platform references - # when cross-compiling. - + '' - shopt -s extglob - patchShebangs tools test src/!(rpm|kernel-install|ukify) src/kernel-install/test-kernel-install.sh - ''; + patchDlOpen = + dl: + let + library = "${lib.makeLibraryPath [ dl.pkg ]}/${dl.name}"; + in + if dl.pkg == null then + '' + # remove the dependency on the library by replacing it with an invalid path + for file in $(grep -lr '"${dl.name}"' src); do + echo "patching dlopen(\"${dl.name}\", …) in $file to an invalid store path ("${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}")…" + substituteInPlace "$file" --replace '"${dl.name}"' '"${builtins.storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-not-implemented/${dl.name}"' + done + '' + else + '' + # ensure that the library we provide actually exists + if ! [ -e ${library} ]; then + # exceptional case, details: + # https://github.com/systemd/systemd-stable/blob/v249-stable/src/shared/tpm2-util.c#L157 + if ! [[ "${library}" =~ .*libtss2-tcti-$ ]]; then + echo 'The shared library `${library}` does not exist but was given as substitute for `${dl.name}`' + exit 1 + fi + fi + # make the path to the dependency explicit + for file in $(grep -lr '"${dl.name}"' src); do + echo "patching dlopen(\"${dl.name}\", …) in $file to ${library}…" + substituteInPlace "$file" --replace '"${dl.name}"' '"${library}"' + done - outputs = [ "out" "dev" ] ++ (lib.optional (!buildLibsOnly) "man"); + ''; + in + # patch all the dlopen calls to contain absolute paths to the libraries + lib.concatMapStringsSep "\n" patchDlOpen dlopenLibs + ) + # finally ensure that there are no left-over dlopen calls (or rather strings + # pointing to shared libraries) that we didn't handle + + '' + if grep -qr '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src; then + echo "Found unhandled dynamic library calls: " + grep -r '"lib[a-zA-Z0-9-]*\.so[\.0-9a-zA-z]*"' src + exit 1 + fi + '' + # Finally, patch shebangs in scripts used at build time. This must not patch + # scripts that will end up in the output, to avoid build platform references + # when cross-compiling. + + '' + shopt -s extglob + patchShebangs tools test src/!(rpm|kernel-install|ukify) src/kernel-install/test-kernel-install.sh + ''; + + outputs = [ + "out" + "dev" + ] ++ (lib.optional (!buildLibsOnly) "man"); hardeningDisable = [ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111523 @@ -442,14 +526,21 @@ stdenv.mkDerivation (finalAttrs: { docbook_xml_dtd_42 docbook_xml_dtd_45 bash - (buildPackages.python3Packages.python.withPackages (ps: with ps; [ lxml jinja2 ] ++ lib.optional withEfi ps.pyelftools)) + (buildPackages.python3Packages.python.withPackages ( + ps: + with ps; + [ + lxml + jinja2 + ] + ++ lib.optional withEfi ps.pyelftools + )) ] ++ lib.optionals withLibBPF [ bpftools buildPackages.llvmPackages.clang buildPackages.llvmPackages.libllvm - ] - ; + ]; buildInputs = [ @@ -460,13 +551,22 @@ stdenv.mkDerivation (finalAttrs: { bashInteractive # for patch shebangs ] - ++ lib.optionals wantGcrypt [ libgcrypt libgpg-error ] + ++ lib.optionals wantGcrypt [ + libgcrypt + libgpg-error + ] ++ lib.optional withTests glib ++ lib.optional withAcl acl ++ lib.optional withApparmor libapparmor ++ lib.optional withAudit audit ++ lib.optional wantCurl (lib.getDev curl) - ++ lib.optionals withCompression [ zlib bzip2 lz4 xz zstd ] + ++ lib.optionals withCompression [ + zlib + bzip2 + lz4 + xz + zstd + ] ++ lib.optional withCoredump elfutils ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev) ++ lib.optional withKexectools kexec-tools @@ -477,176 +577,180 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional withPam pam ++ lib.optional withPCRE2 pcre2 ++ lib.optional withSelinux libselinux - ++ lib.optionals withRemote [ libmicrohttpd gnutls ] + ++ lib.optionals withRemote [ + libmicrohttpd + gnutls + ] ++ lib.optionals (withHomed || withCryptsetup) [ p11-kit ] ++ lib.optionals (withHomed || withCryptsetup) [ libfido2 ] ++ lib.optionals withLibBPF [ libbpf ] ++ lib.optional withTpm2Tss tpm2-tss ++ lib.optional withUkify (python3Packages.python.withPackages (ps: with ps; [ pefile ])) ++ lib.optionals withPasswordQuality [ libpwquality ] - ++ lib.optionals withQrencode [ qrencode ] - ; + ++ lib.optionals withQrencode [ qrencode ]; mesonBuildType = "release"; - mesonFlags = [ - # Options + mesonFlags = + [ + # Options - # We bump this attribute on every (major) version change to ensure that we - # have known-good value for a timestamp that is in the (not so distant) - # past. This serves as a lower bound for valid system timestamps during - # startup. Systemd will reset the system timestamp if this date is +- 15 - # years from the system time. - # See the systemd v250 release notes for further details: - # https://github.com/systemd/systemd/blob/60e930fc3e6eb8a36fbc184773119eb8d2f30364/NEWS#L258-L266 - (lib.mesonOption "time-epoch" releaseTimestamp) + # We bump this attribute on every (major) version change to ensure that we + # have known-good value for a timestamp that is in the (not so distant) + # past. This serves as a lower bound for valid system timestamps during + # startup. Systemd will reset the system timestamp if this date is +- 15 + # years from the system time. + # See the systemd v250 release notes for further details: + # https://github.com/systemd/systemd/blob/60e930fc3e6eb8a36fbc184773119eb8d2f30364/NEWS#L258-L266 + (lib.mesonOption "time-epoch" releaseTimestamp) - (lib.mesonOption "version-tag" version) - (lib.mesonOption "mode" "release") - (lib.mesonOption "tty-gid" "3") # tty in NixOS has gid 3 - (lib.mesonOption "debug-shell" "${bashInteractive}/bin/bash") - (lib.mesonOption "pamconfdir" "${placeholder "out"}/etc/pam.d") - # Use cgroupsv2. This is already the upstream default, but better be explicit. - (lib.mesonOption "default-hierarchy" "unified") - (lib.mesonOption "kmod-path" "${kmod}/bin/kmod") + (lib.mesonOption "version-tag" version) + (lib.mesonOption "mode" "release") + (lib.mesonOption "tty-gid" "3") # tty in NixOS has gid 3 + (lib.mesonOption "debug-shell" "${bashInteractive}/bin/bash") + (lib.mesonOption "pamconfdir" "${placeholder "out"}/etc/pam.d") + # Use cgroupsv2. This is already the upstream default, but better be explicit. + (lib.mesonOption "default-hierarchy" "unified") + (lib.mesonOption "kmod-path" "${kmod}/bin/kmod") - # D-Bus - (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d") - (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services") - (lib.mesonOption "dbussystemservicedir" "${placeholder "out"}/share/dbus-1/system-services") + # D-Bus + (lib.mesonOption "dbuspolicydir" "${placeholder "out"}/share/dbus-1/system.d") + (lib.mesonOption "dbussessionservicedir" "${placeholder "out"}/share/dbus-1/services") + (lib.mesonOption "dbussystemservicedir" "${placeholder "out"}/share/dbus-1/system-services") - # pkgconfig - (lib.mesonOption "pkgconfiglibdir" "${placeholder "dev"}/lib/pkgconfig") - (lib.mesonOption "pkgconfigdatadir" "${placeholder "dev"}/share/pkgconfig") + # pkgconfig + (lib.mesonOption "pkgconfiglibdir" "${placeholder "dev"}/lib/pkgconfig") + (lib.mesonOption "pkgconfigdatadir" "${placeholder "dev"}/share/pkgconfig") - # Keyboard - (lib.mesonOption "loadkeys-path" "${kbd}/bin/loadkeys") - (lib.mesonOption "setfont-path" "${kbd}/bin/setfont") + # Keyboard + (lib.mesonOption "loadkeys-path" "${kbd}/bin/loadkeys") + (lib.mesonOption "setfont-path" "${kbd}/bin/setfont") - # SBAT - (lib.mesonOption "sbat-distro" "nixos") - (lib.mesonOption "sbat-distro-summary" "NixOS") - (lib.mesonOption "sbat-distro-url" "https://nixos.org/") - (lib.mesonOption "sbat-distro-pkgname" pname) - (lib.mesonOption "sbat-distro-version" version) + # SBAT + (lib.mesonOption "sbat-distro" "nixos") + (lib.mesonOption "sbat-distro-summary" "NixOS") + (lib.mesonOption "sbat-distro-url" "https://nixos.org/") + (lib.mesonOption "sbat-distro-pkgname" pname) + (lib.mesonOption "sbat-distro-version" version) - # Users - (lib.mesonOption "system-uid-max" "999") - (lib.mesonOption "system-gid-max" "999") + # Users + (lib.mesonOption "system-uid-max" "999") + (lib.mesonOption "system-gid-max" "999") - # SysVinit - (lib.mesonOption "sysvinit-path" "") - (lib.mesonOption "sysvrcnd-path" "") + # SysVinit + (lib.mesonOption "sysvinit-path" "") + (lib.mesonOption "sysvrcnd-path" "") - # Login - (lib.mesonOption "sulogin-path" "${util-linux.login}/bin/sulogin") - (lib.mesonOption "nologin-path" "${util-linux.login}/bin/nologin") + # Login + (lib.mesonOption "sulogin-path" "${util-linux.login}/bin/sulogin") + (lib.mesonOption "nologin-path" "${util-linux.login}/bin/nologin") - # Mount - (lib.mesonOption "mount-path" "${lib.getOutput "mount" util-linux}/bin/mount") - (lib.mesonOption "umount-path" "${lib.getOutput "mount" util-linux}/bin/umount") + # Mount + (lib.mesonOption "mount-path" "${lib.getOutput "mount" util-linux}/bin/mount") + (lib.mesonOption "umount-path" "${lib.getOutput "mount" util-linux}/bin/umount") + # Features - # Features + # Tests + (lib.mesonBool "tests" withTests) + (lib.mesonEnable "glib" withTests) + (lib.mesonEnable "dbus" withTests) - # Tests - (lib.mesonBool "tests" withTests) - (lib.mesonEnable "glib" withTests) - (lib.mesonEnable "dbus" withTests) + # Compression + (lib.mesonEnable "bzip2" withCompression) + (lib.mesonEnable "lz4" withCompression) + (lib.mesonEnable "xz" withCompression) + (lib.mesonEnable "zstd" withCompression) + (lib.mesonEnable "zlib" withCompression) - # Compression - (lib.mesonEnable "bzip2" withCompression) - (lib.mesonEnable "lz4" withCompression) - (lib.mesonEnable "xz" withCompression) - (lib.mesonEnable "zstd" withCompression) - (lib.mesonEnable "zlib" withCompression) + # NSS + (lib.mesonEnable "nss-mymachines" withNss) + (lib.mesonEnable "nss-resolve" withNss) + (lib.mesonBool "nss-myhostname" withNss) + (lib.mesonBool "nss-systemd" withNss) - # NSS - (lib.mesonEnable "nss-mymachines" withNss) - (lib.mesonEnable "nss-resolve" withNss) - (lib.mesonBool "nss-myhostname" withNss) - (lib.mesonBool "nss-systemd" withNss) + # Cryptsetup + (lib.mesonEnable "libcryptsetup" withCryptsetup) + (lib.mesonEnable "libcryptsetup-plugins" withCryptsetup) + (lib.mesonEnable "p11kit" (withHomed || withCryptsetup)) - # Cryptsetup - (lib.mesonEnable "libcryptsetup" withCryptsetup) - (lib.mesonEnable "libcryptsetup-plugins" withCryptsetup) - (lib.mesonEnable "p11kit" (withHomed || withCryptsetup)) + # FIDO2 + (lib.mesonEnable "libfido2" withFido2) + (lib.mesonEnable "openssl" withFido2) - # FIDO2 - (lib.mesonEnable "libfido2" withFido2) - (lib.mesonEnable "openssl" withFido2) + # Password Quality + (lib.mesonEnable "pwquality" withPasswordQuality) + (lib.mesonEnable "passwdqc" false) - # Password Quality - (lib.mesonEnable "pwquality" withPasswordQuality) - (lib.mesonEnable "passwdqc" false) + # Remote + (lib.mesonEnable "remote" withRemote) + (lib.mesonEnable "microhttpd" withRemote) - # Remote - (lib.mesonEnable "remote" withRemote) - (lib.mesonEnable "microhttpd" withRemote) + (lib.mesonEnable "pam" withPam) + (lib.mesonEnable "acl" withAcl) + (lib.mesonEnable "audit" withAudit) + (lib.mesonEnable "apparmor" withApparmor) + (lib.mesonEnable "gcrypt" wantGcrypt) + (lib.mesonEnable "importd" withImportd) + (lib.mesonEnable "homed" withHomed) + (lib.mesonEnable "polkit" withPolkit) + (lib.mesonEnable "elfutils" withCoredump) + (lib.mesonEnable "libcurl" wantCurl) + (lib.mesonEnable "libidn" false) + (lib.mesonEnable "libidn2" withLibidn2) + (lib.mesonEnable "libiptc" withIptables) + (lib.mesonEnable "repart" withRepart) + (lib.mesonEnable "sysupdate" withSysupdate) + (lib.mesonEnable "selinux" withSelinux) + (lib.mesonEnable "tpm2" withTpm2Tss) + (lib.mesonEnable "pcre2" withPCRE2) + (lib.mesonEnable "bpf-framework" withLibBPF) + (lib.mesonEnable "bootloader" withBootloader) + (lib.mesonEnable "ukify" withUkify) + (lib.mesonEnable "kmod" withKmod) + (lib.mesonEnable "qrencode" withQrencode) + (lib.mesonEnable "vmspawn" withVmspawn) + (lib.mesonEnable "xenctrl" false) + (lib.mesonEnable "gnutls" false) + (lib.mesonEnable "xkbcommon" false) + (lib.mesonEnable "man" true) - (lib.mesonEnable "pam" withPam) - (lib.mesonEnable "acl" withAcl) - (lib.mesonEnable "audit" withAudit) - (lib.mesonEnable "apparmor" withApparmor) - (lib.mesonEnable "gcrypt" wantGcrypt) - (lib.mesonEnable "importd" withImportd) - (lib.mesonEnable "homed" withHomed) - (lib.mesonEnable "polkit" withPolkit) - (lib.mesonEnable "elfutils" withCoredump) - (lib.mesonEnable "libcurl" wantCurl) - (lib.mesonEnable "libidn" false) - (lib.mesonEnable "libidn2" withLibidn2) - (lib.mesonEnable "libiptc" withIptables) - (lib.mesonEnable "repart" withRepart) - (lib.mesonEnable "sysupdate" withSysupdate) - (lib.mesonEnable "selinux" withSelinux) - (lib.mesonEnable "tpm2" withTpm2Tss) - (lib.mesonEnable "pcre2" withPCRE2) - (lib.mesonEnable "bpf-framework" withLibBPF) - (lib.mesonEnable "bootloader" withBootloader) - (lib.mesonEnable "ukify" withUkify) - (lib.mesonEnable "kmod" withKmod) - (lib.mesonEnable "qrencode" withQrencode) - (lib.mesonEnable "vmspawn" withVmspawn) - (lib.mesonEnable "xenctrl" false) - (lib.mesonEnable "gnutls" false) - (lib.mesonEnable "xkbcommon" false) - (lib.mesonEnable "man" true) + (lib.mesonBool "analyze" withAnalyze) + (lib.mesonBool "logind" withLogind) + (lib.mesonBool "localed" withLocaled) + (lib.mesonBool "hostnamed" withHostnamed) + (lib.mesonBool "machined" withMachined) + (lib.mesonBool "networkd" withNetworkd) + (lib.mesonBool "oomd" withOomd) + (lib.mesonBool "portabled" withPortabled) + (lib.mesonBool "hwdb" withHwdb) + (lib.mesonBool "timedated" withTimedated) + (lib.mesonBool "timesyncd" withTimesyncd) + (lib.mesonBool "userdb" withUserDb) + (lib.mesonBool "coredump" withCoredump) + (lib.mesonBool "firstboot" withFirstboot) + (lib.mesonBool "resolve" withResolved) + (lib.mesonBool "sysusers" withSysusers) + (lib.mesonBool "efi" withEfi) + (lib.mesonBool "utmp" withUtmp) + (lib.mesonBool "log-trace" withLogTrace) + (lib.mesonBool "kernel-install" withKernelInstall) + (lib.mesonBool "quotacheck" false) + (lib.mesonBool "ldconfig" false) + (lib.mesonBool "install-sysconfdir" false) + (lib.mesonBool "create-log-dirs" false) + (lib.mesonBool "smack" true) + (lib.mesonBool "b_pie" true) - (lib.mesonBool "analyze" withAnalyze) - (lib.mesonBool "logind" withLogind) - (lib.mesonBool "localed" withLocaled) - (lib.mesonBool "hostnamed" withHostnamed) - (lib.mesonBool "machined" withMachined) - (lib.mesonBool "networkd" withNetworkd) - (lib.mesonBool "oomd" withOomd) - (lib.mesonBool "portabled" withPortabled) - (lib.mesonBool "hwdb" withHwdb) - (lib.mesonBool "timedated" withTimedated) - (lib.mesonBool "timesyncd" withTimesyncd) - (lib.mesonBool "userdb" withUserDb) - (lib.mesonBool "coredump" withCoredump) - (lib.mesonBool "firstboot" withFirstboot) - (lib.mesonBool "resolve" withResolved) - (lib.mesonBool "sysusers" withSysusers) - (lib.mesonBool "efi" withEfi) - (lib.mesonBool "utmp" withUtmp) - (lib.mesonBool "log-trace" withLogTrace) - (lib.mesonBool "kernel-install" withKernelInstall) - (lib.mesonBool "quotacheck" false) - (lib.mesonBool "ldconfig" false) - (lib.mesonBool "install-sysconfdir" false) - (lib.mesonBool "create-log-dirs" false) - (lib.mesonBool "smack" true) - (lib.mesonBool "b_pie" true) - - ] ++ lib.optionals (withShellCompletions == false) [ - (lib.mesonOption "bashcompletiondir" "no") - (lib.mesonOption "zshcompletiondir" "no") - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - (lib.mesonBool "gshadow" false) - (lib.mesonBool "idn" false) - ]; + ] + ++ lib.optionals (withShellCompletions == false) [ + (lib.mesonOption "bashcompletiondir" "no") + (lib.mesonOption "zshcompletiondir" "no") + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + (lib.mesonBool "gshadow" false) + (lib.mesonBool "idn" false) + ]; preConfigure = let # A list of all the runtime binaries referenced by the source code (plus @@ -656,98 +760,117 @@ stdenv.mkDerivation (finalAttrs: { # The `where` attribute for each of the replacement patterns must be # exhaustive. If another (unhandled) case is found in the source code the # build fails with an error message. - binaryReplacements = [ - { - search = "/usr/bin/getent"; - replacement = "${getent}/bin/getent"; - where = [ "src/nspawn/nspawn-setuid.c" ]; - } - { - search = "/sbin/mkswap"; - replacement = "${lib.getBin util-linux}/sbin/mkswap"; - where = [ - "man/systemd-makefs@.service.xml" - ]; - } - { - search = "/sbin/swapon"; - replacement = "${lib.getOutput "swap" util-linux}/sbin/swapon"; - where = [ - "src/core/swap.c" - "src/basic/unit-def.h" - ]; - } - { - search = "/sbin/swapoff"; - replacement = "${lib.getOutput "swap" util-linux}/sbin/swapoff"; - where = [ "src/core/swap.c" ]; - } - { - search = "/bin/echo"; - replacement = "${coreutils}/bin/echo"; - where = [ - "man/systemd-analyze.xml" - "man/systemd.service.xml" - "man/systemd-run.xml" - "src/analyze/test-verify.c" - "src/test/test-env-file.c" - "src/test/test-fileio.c" - "src/test/test-load-fragment.c" - ]; - } - { - search = "/bin/cat"; - replacement = "${coreutils}/bin/cat"; - where = [ - "test/test-execute/exec-noexecpaths-simple.service" - "src/journal/cat.c" - ]; - } - { - search = "/usr/lib/systemd/systemd-fsck"; - replacement = "$out/lib/systemd/systemd-fsck"; - where = [ "man/systemd-fsck@.service.xml" ]; - } - ] ++ lib.optionals withImportd [ - { - search = "\"gpg\""; - replacement = "\\\"${gnupg}/bin/gpg\\\""; - where = [ "src/import/pull-common.c" ]; - } - { - search = "\"tar\""; - replacement = "\\\"${gnutar}/bin/tar\\\""; - where = [ - "src/import/export-tar.c" - "src/import/import-common.c" - "src/import/import-tar.c" - ]; - ignore = [ - # occurrences here refer to the tar sub command - "src/sysupdate/sysupdate-resource.c" - "src/sysupdate/sysupdate-transfer.c" - "src/import/pull.c" - "src/import/export.c" - "src/import/import.c" - "src/import/importd.c" - # runs `tar` but also also creates a temporary directory with the string - "src/import/pull-tar.c" - ]; - } - ] ++ lib.optionals withKmod [ - { - search = "/sbin/modprobe"; - replacement = "${lib.getBin kmod}/sbin/modprobe"; - where = [ "units/modprobe@.service" ]; - } - ]; + binaryReplacements = + [ + { + search = "/usr/bin/getent"; + replacement = "${getent}/bin/getent"; + where = [ "src/nspawn/nspawn-setuid.c" ]; + } + { + search = "/sbin/mkswap"; + replacement = "${lib.getBin util-linux}/sbin/mkswap"; + where = [ "man/systemd-makefs@.service.xml" ]; + } + { + search = "/sbin/swapon"; + replacement = "${lib.getOutput "swap" util-linux}/sbin/swapon"; + where = [ + "src/core/swap.c" + "src/basic/unit-def.h" + ]; + } + { + search = "/sbin/swapoff"; + replacement = "${lib.getOutput "swap" util-linux}/sbin/swapoff"; + where = [ "src/core/swap.c" ]; + } + { + search = "/bin/echo"; + replacement = "${coreutils}/bin/echo"; + where = [ + "man/systemd-analyze.xml" + "man/systemd.service.xml" + "man/systemd-run.xml" + "src/analyze/test-verify.c" + "src/test/test-env-file.c" + "src/test/test-fileio.c" + "src/test/test-load-fragment.c" + ]; + } + { + search = "/bin/cat"; + replacement = "${coreutils}/bin/cat"; + where = [ + "test/test-execute/exec-noexecpaths-simple.service" + "src/journal/cat.c" + ]; + } + { + search = "/usr/lib/systemd/systemd-fsck"; + replacement = "$out/lib/systemd/systemd-fsck"; + where = [ "man/systemd-fsck@.service.xml" ]; + } + ] + ++ lib.optionals withImportd [ + { + search = "\"gpg\""; + replacement = "\\\"${gnupg}/bin/gpg\\\""; + where = [ "src/import/pull-common.c" ]; + } + { + search = "\"tar\""; + replacement = "\\\"${gnutar}/bin/tar\\\""; + where = [ + "src/import/export-tar.c" + "src/import/import-common.c" + "src/import/import-tar.c" + ]; + ignore = [ + # occurrences here refer to the tar sub command + "src/sysupdate/sysupdate-resource.c" + "src/sysupdate/sysupdate-transfer.c" + "src/import/pull.c" + "src/import/export.c" + "src/import/import.c" + "src/import/importd.c" + # runs `tar` but also also creates a temporary directory with the string + "src/import/pull-tar.c" + ]; + } + ] + ++ lib.optionals withKmod [ + { + search = "/sbin/modprobe"; + replacement = "${lib.getBin kmod}/sbin/modprobe"; + where = [ "units/modprobe@.service" ]; + } + ]; # { replacement, search, where, ignore } -> List[str] - mkSubstitute = { replacement, search, where, ignore ? [ ] }: + mkSubstitute = + { + replacement, + search, + where, + ignore ? [ ], + }: map (path: "substituteInPlace ${path} --replace '${search}' \"${replacement}\"") where; - mkEnsureSubstituted = { replacement, search, where, ignore ? [ ] }: + mkEnsureSubstituted = + { + replacement, + search, + where, + ignore ? [ ], + }: let - ignore' = lib.concatStringsSep "|" (ignore ++ [ "^test" "NEWS" ]); + ignore' = lib.concatStringsSep "|" ( + ignore + ++ [ + "^test" + "NEWS" + ] + ); in '' set +e @@ -783,24 +906,25 @@ stdenv.mkDerivation (finalAttrs: { --replace "SYSTEMD_CGROUP_AGENTS_PATH" "_SYSTEMD_CGROUP_AGENT_PATH" ''; - env.NIX_CFLAGS_COMPILE = toString ([ - # Can't say ${polkit.bin}/bin/pkttyagent here because that would - # lead to a cyclic dependency. - "-UPOLKIT_AGENT_BINARY_PATH" - "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\"" + env.NIX_CFLAGS_COMPILE = toString ( + [ + # Can't say ${polkit.bin}/bin/pkttyagent here because that would + # lead to a cyclic dependency. + "-UPOLKIT_AGENT_BINARY_PATH" + "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\"" - # Set the release_agent on /sys/fs/cgroup/systemd to the - # currently running systemd (/run/current-system/systemd) so - # that we don't use an obsolete/garbage-collected release agent. - "-USYSTEMD_CGROUP_AGENTS_PATH" - "-DSYSTEMD_CGROUP_AGENTS_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\"" + # Set the release_agent on /sys/fs/cgroup/systemd to the + # currently running systemd (/run/current-system/systemd) so + # that we don't use an obsolete/garbage-collected release agent. + "-USYSTEMD_CGROUP_AGENTS_PATH" + "-DSYSTEMD_CGROUP_AGENTS_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\"" - "-USYSTEMD_BINARY_PATH" - "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\"" + "-USYSTEMD_BINARY_PATH" + "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\"" - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - "-D__UAPI_DEF_ETHHDR=0" - ]); + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ "-D__UAPI_DEF_ETHHDR=0" ] + ); doCheck = false; # fails a bunch of tests @@ -809,31 +933,40 @@ stdenv.mkDerivation (finalAttrs: { export DESTDIR=/ ''; - mesonInstallTags = lib.optionals buildLibsOnly [ "devel" "libudev" "libsystemd" ]; + mesonInstallTags = lib.optionals buildLibsOnly [ + "devel" + "libudev" + "libsystemd" + ]; - postInstall = lib.optionalString (!buildLibsOnly) '' - mkdir -p $out/example/systemd - mv $out/lib/{binfmt.d,sysctl.d,tmpfiles.d} $out/example - mv $out/lib/systemd/{system,user} $out/example/systemd + postInstall = + lib.optionalString (!buildLibsOnly) '' + mkdir -p $out/example/systemd + mv $out/lib/{binfmt.d,sysctl.d,tmpfiles.d} $out/example + mv $out/lib/systemd/{system,user} $out/example/systemd - rm -rf $out/etc/systemd/system + rm -rf $out/etc/systemd/system - # Fix reference to /bin/false in the D-Bus services. - for i in $out/share/dbus-1/system-services/*.service; do - substituteInPlace $i --replace /bin/false ${coreutils}/bin/false - done + # Fix reference to /bin/false in the D-Bus services. + for i in $out/share/dbus-1/system-services/*.service; do + substituteInPlace $i --replace /bin/false ${coreutils}/bin/false + done - rm -rf $out/etc/rpm - '' + lib.optionalString (!withKernelInstall) '' - # "kernel-install" shouldn't be used on NixOS. - find $out -name "*kernel-install*" -exec rm {} \; - '' + lib.optionalString (!withDocumentation) '' - rm -rf $out/share/doc - '' + lib.optionalString (withKmod && !buildLibsOnly) '' - mv $out/lib/modules-load.d $out/example - '' + lib.optionalString withSysusers '' - mv $out/lib/sysusers.d $out/example - ''; + rm -rf $out/etc/rpm + '' + + lib.optionalString (!withKernelInstall) '' + # "kernel-install" shouldn't be used on NixOS. + find $out -name "*kernel-install*" -exec rm {} \; + '' + + lib.optionalString (!withDocumentation) '' + rm -rf $out/share/doc + '' + + lib.optionalString (withKmod && !buildLibsOnly) '' + mv $out/lib/modules-load.d $out/example + '' + + lib.optionalString withSysusers '' + mv $out/lib/sysusers.d $out/example + ''; # Avoid *.EFI binary stripping. # At least on aarch64-linux strip removes too much from PE32+ files: @@ -845,23 +978,29 @@ stdenv.mkDerivation (finalAttrs: { ''; # Wrap in the correct path for LUKS2 tokens. - postFixup = lib.optionalString withCryptsetup '' - for f in bin/systemd-cryptsetup bin/systemd-cryptenroll; do - # This needs to be in LD_LIBRARY_PATH because rpath on a binary is not propagated to libraries using dlopen, in this case `libcryptsetup.so` - wrapProgram $out/$f --prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib/cryptsetup - done - '' + lib.optionalString withBootloader '' - mv $out/dont-strip-me $out/lib/systemd/boot/efi - '' + lib.optionalString withUkify '' - # To cross compile a derivation that builds a UKI with ukify, we need to wrap - # ukify with the correct binutils. When wrapping, no splicing happens so we - # have to explicitly pull binutils from targetPackages. - wrapProgram $out/bin/ukify --prefix PATH : ${lib.makeBinPath [ targetPackages.stdenv.cc.bintools ] }:${placeholder "out"}/lib/systemd - ''; + postFixup = + lib.optionalString withCryptsetup '' + for f in bin/systemd-cryptsetup bin/systemd-cryptenroll; do + # This needs to be in LD_LIBRARY_PATH because rpath on a binary is not propagated to libraries using dlopen, in this case `libcryptsetup.so` + wrapProgram $out/$f --prefix LD_LIBRARY_PATH : ${placeholder "out"}/lib/cryptsetup + done + '' + + lib.optionalString withBootloader '' + mv $out/dont-strip-me $out/lib/systemd/boot/efi + '' + + lib.optionalString withUkify '' + # To cross compile a derivation that builds a UKI with ukify, we need to wrap + # ukify with the correct binutils. When wrapping, no splicing happens so we + # have to explicitly pull binutils from targetPackages. + wrapProgram $out/bin/ukify --prefix PATH : ${ + lib.makeBinPath [ targetPackages.stdenv.cc.bintools ] + }:${placeholder "out"}/lib/systemd + ''; - disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) - # 'or p' is for manually specified buildPackages as they dont have __spliced - (builtins.map (p: p.__spliced.buildHost or p) finalAttrs.nativeBuildInputs); + disallowedReferences = + lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) + # 'or p' is for manually specified buildPackages as they dont have __spliced + (builtins.map (p: p.__spliced.buildHost or p) finalAttrs.nativeBuildInputs); passthru = { # The `interfaceVersion` attribute below points out the incompatibilities @@ -871,21 +1010,33 @@ stdenv.mkDerivation (finalAttrs: { # needed - and therefore `interfaceVersion` should be incremented. interfaceVersion = 2; - inherit withBootloader withCryptsetup withEfi withHostnamed withImportd withKmod - withLocaled withMachined withPortabled withTimedated withUtmp util-linux kmod kbd; + inherit + withBootloader + withCryptsetup + withEfi + withHostnamed + withImportd + withKmod + withLocaled + withMachined + withPortabled + withTimedated + withUtmp + util-linux + kmod + kbd + ; tests = { inherit (nixosTests) switchTest systemd-journal systemd-journal-gateway - systemd-journal-upload; + systemd-journal-upload + ; cross = let - systemString = - if stdenv.buildPlatform.isAarch64 - then "gnu64" - else "aarch64-multiplatform"; + systemString = if stdenv.buildPlatform.isAarch64 then "gnu64" else "aarch64-multiplatform"; in pkgsCross.${systemString}.systemd; }; @@ -922,7 +1073,10 @@ stdenv.mkDerivation (finalAttrs: { ofl publicDomain ]; - maintainers = with lib.maintainers; [ flokli kloenk ]; + maintainers = with lib.maintainers; [ + flokli + kloenk + ]; platforms = lib.platforms.linux; priority = 10; badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ]; diff --git a/pkgs/by-name/sy/systemd/packages.nix b/pkgs/by-name/sy/systemd/packages.nix index a8fc6ca..df45055 100644 --- a/pkgs/by-name/sy/systemd/packages.nix +++ b/pkgs/by-name/sy/systemd/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { systemd = callPackage ./. { # break some cyclic dependencies util-linux = util-linuxMinimal; @@ -63,11 +62,7 @@ with pkgs; }; # We do not want to include ukify in the normal systemd attribute as it # relies on Python at runtime. - systemdUkify = systemd.override { - withUkify = true; - }; + systemdUkify = systemd.override { withUkify = true; }; - udev = - if (with stdenv.hostPlatform; isLinux && isStatic) then libudev-zero - else systemdLibs; + udev = if (with stdenv.hostPlatform; isLinux && isStatic) then libudev-zero else systemdLibs; } diff --git a/pkgs/by-name/tc/tcb/default.nix b/pkgs/by-name/tc/tcb/default.nix index 6a1f5b5..ca4e2b4 100644 --- a/pkgs/by-name/tc/tcb/default.nix +++ b/pkgs/by-name/tc/tcb/default.nix @@ -1,5 +1,10 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config -, linux-pam, libxcrypt +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + linux-pam, + libxcrypt, }: stdenv.mkDerivation rec { @@ -13,11 +18,19 @@ stdenv.mkDerivation rec { sha256 = "sha256-Sp5u7iTEZZnAqKQXoPO8eWpSkZeBzQqZI82wRQmgU9A="; }; - outputs = [ "out" "bin" "dev" "man" ]; + outputs = [ + "out" + "bin" + "dev" + "man" + ]; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ linux-pam libxcrypt ]; + buildInputs = [ + linux-pam + libxcrypt + ]; patches = [ ./fix-makefiles.patch ]; diff --git a/pkgs/by-name/tc/tcl/8.5.nix b/pkgs/by-name/tc/tcl/8.5.nix index 7676fbf..6a8e239 100644 --- a/pkgs/by-name/tc/tcl/8.5.nix +++ b/pkgs/by-name/tc/tcl/8.5.nix @@ -1,13 +1,16 @@ -{ callPackage, fetchurl, ... } @ args: +{ callPackage, fetchurl, ... }@args: -callPackage ./generic.nix (args // rec { - release = "8.5"; - version = "${release}.19"; +callPackage ./generic.nix ( + args + // rec { + release = "8.5"; + version = "${release}.19"; - # Note: when updating, the hash in pkgs/development/libraries/tk/8.5.nix must also be updated! + # Note: when updating, the hash in pkgs/development/libraries/tk/8.5.nix must also be updated! - src = fetchurl { - url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz"; - sha256 = "066vlr9k5f44w9gl9382hlxnryq00d5p6c7w5vq1fgc7v9b49w6k"; - }; -}) + src = fetchurl { + url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz"; + sha256 = "066vlr9k5f44w9gl9382hlxnryq00d5p6c7w5vq1fgc7v9b49w6k"; + }; + } +) diff --git a/pkgs/by-name/tc/tcl/8.6.nix b/pkgs/by-name/tc/tcl/8.6.nix index 0edd47e..a9dddf8 100644 --- a/pkgs/by-name/tc/tcl/8.6.nix +++ b/pkgs/by-name/tc/tcl/8.6.nix @@ -1,13 +1,16 @@ -{ callPackage, fetchurl, ... } @ args: +{ callPackage, fetchurl, ... }@args: -callPackage ./generic.nix (args // rec { - release = "8.6"; - version = "${release}.13"; +callPackage ./generic.nix ( + args + // rec { + release = "8.6"; + version = "${release}.13"; - # Note: when updating, the hash in pkgs/development/libraries/tk/8.6.nix must also be updated! + # Note: when updating, the hash in pkgs/development/libraries/tk/8.6.nix must also be updated! - src = fetchurl { - url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz"; - sha256 = "sha256-Q6H650EvYf8R3iz9BdKM/Dpzdi81SkF8YjcKVOLK8GY="; - }; -}) + src = fetchurl { + url = "mirror://sourceforge/tcl/tcl${version}-src.tar.gz"; + sha256 = "sha256-Q6H650EvYf8R3iz9BdKM/Dpzdi81SkF8YjcKVOLK8GY="; + }; + } +) diff --git a/pkgs/by-name/tc/tcl/generic.nix b/pkgs/by-name/tc/tcl/generic.nix index 5ee9671..a632fd3 100644 --- a/pkgs/by-name/tc/tcl/generic.nix +++ b/pkgs/by-name/tc/tcl/generic.nix @@ -1,85 +1,100 @@ -{ lib, stdenv, callPackage, makeSetupHook, runCommand -, tzdata +{ + lib, + stdenv, + callPackage, + makeSetupHook, + runCommand, + tzdata, -# Version specific stuff -, release, version, src -, ... + # Version specific stuff + release, + version, + src, + ... }: let - baseInterp = - stdenv.mkDerivation rec { - pname = "tcl"; - inherit version src; + baseInterp = stdenv.mkDerivation rec { + pname = "tcl"; + inherit version src; - outputs = [ "out" "man" ]; + outputs = [ + "out" + "man" + ]; - setOutputFlags = false; + setOutputFlags = false; - postPatch = '' - substituteInPlace library/clock.tcl \ - --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" \ - --replace "/usr/share/lib/zoneinfo" "" \ - --replace "/usr/lib/zoneinfo" "" \ - --replace "/usr/local/etc/zoneinfo" "" - ''; + postPatch = '' + substituteInPlace library/clock.tcl \ + --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" \ + --replace "/usr/share/lib/zoneinfo" "" \ + --replace "/usr/lib/zoneinfo" "" \ + --replace "/usr/local/etc/zoneinfo" "" + ''; - preConfigure = '' - cd unix - ''; + preConfigure = '' + cd unix + ''; - configureFlags = [ - "--enable-threads" - # Note: using $out instead of $man to prevent a runtime dependency on $man. - "--mandir=${placeholder "out"}/share/man" - "--enable-man-symlinks" - # Don't install tzdata because NixOS already has a more up-to-date copy. - "--with-tzdata=no" - "tcl_cv_strtod_unbroken=ok" - ] ++ lib.optional stdenv.is64bit "--enable-64bit"; + configureFlags = [ + "--enable-threads" + # Note: using $out instead of $man to prevent a runtime dependency on $man. + "--mandir=${placeholder "out"}/share/man" + "--enable-man-symlinks" + # Don't install tzdata because NixOS already has a more up-to-date copy. + "--with-tzdata=no" + "tcl_cv_strtod_unbroken=ok" + ] ++ lib.optional stdenv.is64bit "--enable-64bit"; - enableParallelBuilding = true; + enableParallelBuilding = true; - postInstall = let + postInstall = + let dllExtension = stdenv.hostPlatform.extensions.sharedLibrary; - in '' + in + '' make install-private-headers ln -s $out/bin/tclsh${release} $out/bin/tclsh ln -s $out/lib/libtcl${release}${dllExtension} $out/lib/libtcl${dllExtension} ''; - meta = with lib; { - description = "The Tcl scripting language"; - homepage = "https://www.tcl.tk/"; - license = licenses.tcltk; - platforms = platforms.all; - maintainers = with maintainers; [ agbrooks ]; - }; + meta = with lib; { + description = "The Tcl scripting language"; + homepage = "https://www.tcl.tk/"; + license = licenses.tcltk; + platforms = platforms.all; + maintainers = with maintainers; [ agbrooks ]; + }; - passthru = rec { - inherit release version; - libPrefix = "tcl${release}"; - libdir = "lib/${libPrefix}"; - tclPackageHook = callPackage ({ buildPackages }: makeSetupHook { + passthru = rec { + inherit release version; + libPrefix = "tcl${release}"; + libdir = "lib/${libPrefix}"; + tclPackageHook = callPackage ( + { buildPackages }: + makeSetupHook { name = "tcl-package-hook"; propagatedBuildInputs = [ buildPackages.makeBinaryWrapper ]; meta = { inherit (meta) maintainers platforms; }; - } ./tcl-package-hook.sh) {}; - # verify that Tcl's clock library can access tzdata - tests.tzdata = runCommand "${pname}-test-tzdata" {} '' - ${baseInterp}/bin/tclsh <(echo "set t [clock scan {2004-10-30 05:00:00} \ - -format {%Y-%m-%d %H:%M:%S} \ - -timezone :America/New_York]") > $out - ''; - }; + } ./tcl-package-hook.sh + ) { }; + # verify that Tcl's clock library can access tzdata + tests.tzdata = runCommand "${pname}-test-tzdata" { } '' + ${baseInterp}/bin/tclsh <(echo "set t [clock scan {2004-10-30 05:00:00} \ + -format {%Y-%m-%d %H:%M:%S} \ + -timezone :America/New_York]") > $out + ''; }; + }; mkTclDerivation = callPackage ./mk-tcl-derivation.nix { tcl = baseInterp; }; -in baseInterp.overrideAttrs (self: { - passthru = self.passthru // { - inherit mkTclDerivation; - }; +in +baseInterp.overrideAttrs (self: { + passthru = self.passthru // { + inherit mkTclDerivation; + }; }) diff --git a/pkgs/by-name/tc/tcl/mk-tcl-derivation.nix b/pkgs/by-name/tc/tcl/mk-tcl-derivation.nix index 57d60f0..09278c8 100644 --- a/pkgs/by-name/tc/tcl/mk-tcl-derivation.nix +++ b/pkgs/by-name/tc/tcl/mk-tcl-derivation.nix @@ -1,30 +1,33 @@ # Generic builder for tcl packages/applications, generally based on mk-python-derivation.nix -{ tcl -, lib -, makeWrapper -, runCommand -, writeScript +{ + tcl, + lib, + makeWrapper, + runCommand, + writeScript, }: -{ buildInputs ? [] -, nativeBuildInputs ? [] -, propagatedBuildInputs ? [] -, checkInputs ? [] -, nativeCheckInputs ? [] +{ + buildInputs ? [ ], + nativeBuildInputs ? [ ], + propagatedBuildInputs ? [ ], + checkInputs ? [ ], + nativeCheckInputs ? [ ], -# true if we should skip the configuration phase altogether -, dontConfigure ? false + # true if we should skip the configuration phase altogether + dontConfigure ? false, -# Extra flags passed to configure step -, configureFlags ? [] + # Extra flags passed to configure step + configureFlags ? [ ], -# Whether or not we should add common Tcl-related configure flags -, addTclConfigureFlags ? true + # Whether or not we should add common Tcl-related configure flags + addTclConfigureFlags ? true, -, meta ? {} -, passthru ? {} -, doCheck ? true -, ... } @ attrs: + meta ? { }, + passthru ? { }, + doCheck ? true, + ... +}@attrs: let inherit (tcl) stdenv; @@ -36,36 +39,47 @@ let "--exec-prefix=${placeholder "out"}" ]; - self = (stdenv.mkDerivation ((builtins.removeAttrs attrs [ - "addTclConfigureFlags" "checkPhase" "checkInputs" "nativeCheckInputs" "doCheck" - ]) // { + self = ( + stdenv.mkDerivation ( + (builtins.removeAttrs attrs [ + "addTclConfigureFlags" + "checkPhase" + "checkInputs" + "nativeCheckInputs" + "doCheck" + ]) + // { - buildInputs = buildInputs ++ [ tcl.tclPackageHook ]; - nativeBuildInputs = nativeBuildInputs ++ [ makeWrapper tcl ]; - propagatedBuildInputs = propagatedBuildInputs ++ [ tcl ]; + buildInputs = buildInputs ++ [ tcl.tclPackageHook ]; + nativeBuildInputs = nativeBuildInputs ++ [ + makeWrapper + tcl + ]; + propagatedBuildInputs = propagatedBuildInputs ++ [ tcl ]; - TCLSH = "${getBin tcl}/bin/tclsh"; + TCLSH = "${getBin tcl}/bin/tclsh"; - # Run tests after install, at which point we've done all TCLLIBPATH setup - doCheck = false; - doInstallCheck = attrs.doCheck or (attrs.doInstallCheck or false); - installCheckInputs = checkInputs ++ (attrs.installCheckInputs or []); - nativeInstallCheckInputs = nativeCheckInputs ++ (attrs.nativeInstallCheckInputs or []); + # Run tests after install, at which point we've done all TCLLIBPATH setup + doCheck = false; + doInstallCheck = attrs.doCheck or (attrs.doInstallCheck or false); + installCheckInputs = checkInputs ++ (attrs.installCheckInputs or [ ]); + nativeInstallCheckInputs = nativeCheckInputs ++ (attrs.nativeInstallCheckInputs or [ ]); - # Add typical values expected by TEA for configureFlags - configureFlags = - if (!dontConfigure && addTclConfigureFlags) - then (configureFlags ++ defaultTclPkgConfigureFlags) - else configureFlags; + # Add typical values expected by TEA for configureFlags + configureFlags = + if (!dontConfigure && addTclConfigureFlags) then + (configureFlags ++ defaultTclPkgConfigureFlags) + else + configureFlags; - meta = { - platforms = tcl.meta.platforms; - } // meta; + meta = { + platforms = tcl.meta.platforms; + } // meta; + } + // optionalAttrs (attrs ? checkPhase) { installCheckPhase = attrs.checkPhase; } + ) + ); - } // optionalAttrs (attrs?checkPhase) { - installCheckPhase = attrs.checkPhase; - } - )); - -in lib.extendDerivation true passthru self +in +lib.extendDerivation true passthru self diff --git a/pkgs/by-name/tc/tcl/packages.nix b/pkgs/by-name/tc/tcl/packages.nix index 58598c7..1072925 100644 --- a/pkgs/by-name/tc/tcl/packages.nix +++ b/pkgs/by-name/tc/tcl/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { tcl = tcl-8_6; tcl-8_5 = callPackage ./8.5.nix { }; tcl-8_6 = callPackage ./8.6.nix { }; diff --git a/pkgs/by-name/te/termcap/default.nix b/pkgs/by-name/te/termcap/default.nix index 6382ade..de05ef7 100644 --- a/pkgs/by-name/te/termcap/default.nix +++ b/pkgs/by-name/te/termcap/default.nix @@ -1,10 +1,11 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, autoreconfHook -, enableStatic ? stdenv.hostPlatform.isStatic -, enableShared ? !stdenv.hostPlatform.isStatic +{ + lib, + stdenv, + fetchurl, + fetchpatch, + autoreconfHook, + enableStatic ? stdenv.hostPlatform.isStatic, + enableShared ? !stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation rec { @@ -24,7 +25,10 @@ stdenv.mkDerivation rec { }) ]; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; enableParallelBuilding = true; @@ -32,30 +36,31 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; - makeFlags = [ - "AR=${stdenv.cc.targetPrefix}ar" - ]; + makeFlags = [ "AR=${stdenv.cc.targetPrefix}ar" ]; - env.NIX_CFLAGS_COMPILE = toString ([ - "-DSTDC_HEADERS" - ] ++ lib.optionals stdenv.cc.isClang [ - "-Wno-implicit-function-declaration" - ]); + env.NIX_CFLAGS_COMPILE = toString ( + [ "-DSTDC_HEADERS" ] ++ lib.optionals stdenv.cc.isClang [ "-Wno-implicit-function-declaration" ] + ); # Library only statically links by default - postInstall = lib.optionalString (!enableStatic) '' - rm $out/lib/libtermcap.a - '' + lib.optionalString enableShared (let - libName = "lib${pname}${stdenv.hostPlatform.extensions.sharedLibrary}"; - impLibName = "lib${pname}.dll.a"; - winImpLib = lib.optionalString stdenv.hostPlatform.isWindows - "-Wl,--out-implib,${impLibName}"; - in '' - ${stdenv.cc.targetPrefix}cc -shared -o ${libName} termcap.o tparam.o version.o ${winImpLib} - install -Dm644 ${libName} $out/lib - '' + lib.optionalString stdenv.hostPlatform.isWindows '' - install -Dm644 ${impLibName} $out/lib - ''); + postInstall = + lib.optionalString (!enableStatic) '' + rm $out/lib/libtermcap.a + '' + + lib.optionalString enableShared ( + let + libName = "lib${pname}${stdenv.hostPlatform.extensions.sharedLibrary}"; + impLibName = "lib${pname}.dll.a"; + winImpLib = lib.optionalString stdenv.hostPlatform.isWindows "-Wl,--out-implib,${impLibName}"; + in + '' + ${stdenv.cc.targetPrefix}cc -shared -o ${libName} termcap.o tparam.o version.o ${winImpLib} + install -Dm644 ${libName} $out/lib + '' + + lib.optionalString stdenv.hostPlatform.isWindows '' + install -Dm644 ${impLibName} $out/lib + '' + ); meta = { description = "Terminal feature database"; diff --git a/pkgs/by-name/te/texinfo/4.13a.nix b/pkgs/by-name/te/texinfo/4.13a.nix index b8da38a..400219f 100644 --- a/pkgs/by-name/te/texinfo/4.13a.nix +++ b/pkgs/by-name/te/texinfo/4.13a.nix @@ -1,4 +1,10 @@ -{ stdenv, fetchurl, texinfo, ncurses, xz }: +{ + stdenv, + fetchurl, + texinfo, + ncurses, + xz, +}: stdenv.mkDerivation rec { pname = "texinfo"; @@ -15,5 +21,7 @@ stdenv.mkDerivation rec { # Disabled because we don't have zdiff in the stdenv bootstrap. #doCheck = true; - meta = texinfo.meta // { branch = version; }; + meta = texinfo.meta // { + branch = version; + }; } diff --git a/pkgs/by-name/te/texinfo/common.nix b/pkgs/by-name/te/texinfo/common.nix index d8d6308..7a260b3 100644 --- a/pkgs/by-name/te/texinfo/common.nix +++ b/pkgs/by-name/te/texinfo/common.nix @@ -1,10 +1,25 @@ -{ version, sha256, patches ? [] }: +{ + version, + sha256, + patches ? [ ], +}: -{ lib, stdenv, buildPackages, fetchurl, perl, xz, libintl, bash -, gnulib, gawk +{ + lib, + stdenv, + buildPackages, + fetchurl, + perl, + xz, + libintl, + bash, + gnulib, + gawk, -# we are a dependency of gcc, this simplifies bootstraping -, interactive ? false, ncurses, procps + # we are a dependency of gcc, this simplifies bootstraping + interactive ? false, + ncurses, + procps, }: # Note: this package is used for bootstrapping fetchurl, and thus @@ -29,15 +44,16 @@ stdenv.mkDerivation { patches = patches ++ optional crossBuildTools ./cross-tools-flags.patch; - postPatch = '' - patchShebangs tp/maintain - '' - # This patch is needed for IEEE-standard long doubles on - # powerpc64; it does not apply cleanly to texinfo 5.x or - # earlier. It is merged upstream in texinfo 6.8. - + lib.optionalString (version == "6.7") '' - patch -p1 -d gnulib < ${gnulib.passthru.longdouble-redirect-patch} - ''; + postPatch = + '' + patchShebangs tp/maintain + '' + # This patch is needed for IEEE-standard long doubles on + # powerpc64; it does not apply cleanly to texinfo 5.x or + # earlier. It is merged upstream in texinfo 6.8. + + lib.optionalString (version == "6.7") '' + patch -p1 -d gnulib < ${gnulib.passthru.longdouble-redirect-patch} + ''; # ncurses is required to build `makedoc' # this feature is introduced by the ./cross-tools-flags.patch @@ -48,27 +64,43 @@ stdenv.mkDerivation { enableParallelBuilding = true; # A native compiler is needed to build tools needed at build time - depsBuildBuild = [ buildPackages.stdenv.cc perl ]; + depsBuildBuild = [ + buildPackages.stdenv.cc + perl + ]; - buildInputs = [ xz.bin bash libintl ] - ++ optionals stdenv.isSunOS [ libiconv gawk ] + buildInputs = + [ + xz.bin + bash + libintl + ] + ++ optionals stdenv.isSunOS [ + libiconv + gawk + ] ++ optional interactive ncurses; - configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ] + configureFlags = + [ "PERL=${buildPackages.perl}/bin/perl" ] # Perl XS modules are difficult to cross-compile and texinfo has pure Perl # fallbacks. # Also prevent the buildPlatform's awk being used in the texindex script - ++ optionals crossBuildTools [ "--enable-perl-xs=no" "TI_AWK=${gawk}/bin/awk" ] + ++ optionals crossBuildTools [ + "--enable-perl-xs=no" + "TI_AWK=${gawk}/bin/awk" + ] ++ lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk"; installFlags = [ "TEXMF=$(out)/texmf-dist" ]; - installTargets = [ "install" "install-tex" ]; + installTargets = [ + "install" + "install-tex" + ]; nativeCheckInputs = [ procps ]; - doCheck = interactive - && !stdenv.isDarwin - && !stdenv.isSunOS; # flaky + doCheck = interactive && !stdenv.isDarwin && !stdenv.isSunOS; # flaky checkFlags = lib.optionals (!stdenv.hostPlatform.isMusl && lib.versionOlder version "7") [ # Test is known to fail on various locales on texinfo-6.8: @@ -89,7 +121,10 @@ stdenv.mkDerivation { changelog = "https://git.savannah.gnu.org/cgit/texinfo.git/plain/NEWS"; license = licenses.gpl3Plus; platforms = platforms.all; - maintainers = with maintainers; [ vrthra oxij ]; + maintainers = with maintainers; [ + vrthra + oxij + ]; # see comment above in patches section broken = stdenv.hostPlatform.isPower64 && lib.strings.versionOlder version "6.0"; diff --git a/pkgs/by-name/te/texinfo/packages.nix b/pkgs/by-name/te/texinfo/packages.nix index 2017044..03bf55c 100644 --- a/pkgs/by-name/te/texinfo/packages.nix +++ b/pkgs/by-name/te/texinfo/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { texinfo413 = callPackage ./4.13a.nix { }; texinfo4 = texinfo413; texinfo5 = callPackage ./5.2.nix { }; diff --git a/pkgs/by-name/te/texlive/bin.nix b/pkgs/by-name/te/texlive/bin.nix index ece8a36..439d119 100644 --- a/pkgs/by-name/te/texlive/bin.nix +++ b/pkgs/by-name/te/texlive/bin.nix @@ -1,13 +1,50 @@ -{ lib, stdenv, fetchurl, fetchpatch, buildPackages -, texlive -, zlib, libiconv, libpng, libX11 -, freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext -, perl, perlPackages, python3Packages, pkg-config, cmake, ninja -, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr, mupdf-headless -, brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash -, makeWrapper, shortenPerlShebang, useFixedHashes, asymptote -, biber-ms -, tlpdb +{ + lib, + stdenv, + fetchurl, + fetchpatch, + buildPackages, + texlive, + zlib, + libiconv, + libpng, + libX11, + freetype, + gd, + libXaw, + icu, + ghostscript, + libXpm, + libXmu, + libXext, + perl, + perlPackages, + python3Packages, + pkg-config, + cmake, + ninja, + libpaper, + graphite2, + zziplib, + harfbuzz, + potrace, + gmp, + mpfr, + mupdf-headless, + brotli, + cairo, + pixman, + xorg, + clisp, + biber, + woff2, + xxHash, + makeWrapper, + shortenPerlShebang, + useFixedHashes, + asymptote, + biber-ms, + tlpdb, }@args: # Useful resource covering build options: @@ -20,75 +57,151 @@ let version = year; # keep names simple for now # detect and stop redundant rebuilds that may occur when building new fixed hashes - assertFixedHash = name: src: - if ! useFixedHashes || src ? outputHash then src else throw "The TeX Live package '${src.pname}' must have a fixed hash before building '${name}'."; + assertFixedHash = + name: src: + if !useFixedHashes || src ? outputHash then + src + else + throw "The TeX Live package '${src.pname}' must have a fixed hash before building '${name}'."; # list of packages whose binaries are built in core, core-big # generated manually by inspecting ${core}/bin - corePackages = [ "afm2pl" "aleph" "autosp" "axodraw2" "bibtex" "cjkutils" - "ctie" "cweb" "detex" "dtl" "dvi2tty" "dvicopy" "dvidvi" "dviljk" - "dviout-util" "dvipdfmx" "dvipos" "dvips" "fontware" "gregoriotex" - "gsftopk" "hitex" "kpathsea" "lacheck" "lcdftypetools" "m-tx" "makeindex" - "mfware" "musixtnt" "omegaware" "patgen" "pdftex" "pdftosrc" "pmx" - "ps2eps" "ps2pk" "psutils" "ptex" "seetexk" "synctex" "t1utils" "tex" - "tex4ht" "texlive-scripts-extra" "texware" "tie" "tpic2pdftex" "ttfutils" - "uptex" "velthuis" "vlna" "web" "xml2pmx" ]; - coreBigPackages = [ "metafont" "mflua" "metapost" "luatex" "luahbtex" - "upmendex" "xetex" ] ++ lib.optional withLuaJIT "luajittex"; + corePackages = [ + "afm2pl" + "aleph" + "autosp" + "axodraw2" + "bibtex" + "cjkutils" + "ctie" + "cweb" + "detex" + "dtl" + "dvi2tty" + "dvicopy" + "dvidvi" + "dviljk" + "dviout-util" + "dvipdfmx" + "dvipos" + "dvips" + "fontware" + "gregoriotex" + "gsftopk" + "hitex" + "kpathsea" + "lacheck" + "lcdftypetools" + "m-tx" + "makeindex" + "mfware" + "musixtnt" + "omegaware" + "patgen" + "pdftex" + "pdftosrc" + "pmx" + "ps2eps" + "ps2pk" + "psutils" + "ptex" + "seetexk" + "synctex" + "t1utils" + "tex" + "tex4ht" + "texlive-scripts-extra" + "texware" + "tie" + "tpic2pdftex" + "ttfutils" + "uptex" + "velthuis" + "vlna" + "web" + "xml2pmx" + ]; + coreBigPackages = [ + "metafont" + "mflua" + "metapost" + "luatex" + "luahbtex" + "upmendex" + "xetex" + ] ++ lib.optional withLuaJIT "luajittex"; binPackages = lib.getAttrs (corePackages ++ coreBigPackages) tlpdb; common = { src = fetchurl { urls = [ "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz" - "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz" + "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0313-source.tar.xz" ]; hash = "sha256-OHiqDh7QMBwFOw4u5OmtmZxEE0X0iC55vdHI9M6eebk="; }; - prePatch = '' - for i in texk/kpathsea/mktex*; do - sed -i '/^mydir=/d' "$i" - done + prePatch = + '' + for i in texk/kpathsea/mktex*; do + sed -i '/^mydir=/d' "$i" + done - # ST_NLINK_TRICK causes kpathsea to treat folders with no real subfolders - # as leaves, even if they contain symlinks to other folders; must be - # disabled to work correctly with the nix store", see section 5.3.6 - # “Subdirectory expansion” of the kpathsea manual - # http://mirrors.ctan.org/systems/doc/kpathsea/kpathsea.pdf for more - # details - sed -i '/^#define ST_NLINK_TRICK/d' texk/kpathsea/config.h - '' + - # when cross compiling, we must use himktables from PATH - # (i.e. from buildPackages.texlive.bin.core.dev) - lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - sed -i 's|\./himktables|himktables|' texk/web2c/Makefile.in - '' -; + # ST_NLINK_TRICK causes kpathsea to treat folders with no real subfolders + # as leaves, even if they contain symlinks to other folders; must be + # disabled to work correctly with the nix store", see section 5.3.6 + # “Subdirectory expansion” of the kpathsea manual + # http://mirrors.ctan.org/systems/doc/kpathsea/kpathsea.pdf for more + # details + sed -i '/^#define ST_NLINK_TRICK/d' texk/kpathsea/config.h + '' + + + # when cross compiling, we must use himktables from PATH + # (i.e. from buildPackages.texlive.bin.core.dev) + lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + sed -i 's|\./himktables|himktables|' texk/web2c/Makefile.in + ''; - configureFlags = [ - "--with-banner-add=/nixos.org" - "--disable-missing" # terminate if a requested program or feature must be - # disabled, e.g., due to missing libraries - "--disable-native-texlive-build" # do not build for the TeX Live binary distribution - "--enable-shared" # "--enable-cxx-runtime-hack" # static runtime - "--enable-tex-synctex" - "--disable-texlive" # do not build the texlive (TeX Live scripts) package - "--disable-linked-scripts" # do not install the linked scripts - "-C" # use configure cache to speed up - ] + configureFlags = + [ + "--with-banner-add=/nixos.org" + "--disable-missing" + # terminate if a requested program or feature must be + # disabled, e.g., due to missing libraries + "--disable-native-texlive-build" # do not build for the TeX Live binary distribution + "--enable-shared" # "--enable-cxx-runtime-hack" # static runtime + "--enable-tex-synctex" + "--disable-texlive" # do not build the texlive (TeX Live scripts) package + "--disable-linked-scripts" # do not install the linked scripts + "-C" # use configure cache to speed up + ] ++ withSystemLibs [ - # see "from TL tree" vs. "Using installed" in configure output - "zziplib" "mpfr" "gmp" - "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib" - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "BUILDCC=${buildPackages.stdenv.cc.targetPrefix}cc"; + # see "from TL tree" vs. "Using installed" in configure output + "zziplib" + "mpfr" + "gmp" + "pixman" + "potrace" + "gd" + "freetype2" + "libpng" + "libpaper" + "zlib" + ] + ++ lib.optional ( + stdenv.hostPlatform != stdenv.buildPlatform + ) "BUILDCC=${buildPackages.stdenv.cc.targetPrefix}cc"; # move binaries to corresponding split outputs, based on content of texlive.tlpdb - binToOutput = lib.listToAttrs - (lib.concatMap - (n: map (v: { name = v; value = builtins.replaceStrings [ "-" ] [ "_" ] n; }) binPackages.${n}.binfiles or [ ]) - (builtins.attrNames binPackages)); + binToOutput = lib.listToAttrs ( + lib.concatMap ( + n: + map (v: { + name = v; + value = builtins.replaceStrings [ "-" ] [ "_" ] n; + }) binPackages.${n}.binfiles or [ ] + ) (builtins.attrNames binPackages) + ); moveBins = '' for bin in "$out/bin"/* ; do @@ -109,435 +222,608 @@ let }; # RISC-V: https://github.com/LuaJIT/LuaJIT/issues/628 - withLuaJIT = !(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV; -in rec { # un-indented + withLuaJIT = + !(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV; +in +rec { + # un-indented -texliveYear = year; + texliveYear = year; + core = stdenv.mkDerivation rec { + pname = "texlive-bin"; + inherit version; -core = stdenv.mkDerivation rec { - pname = "texlive-bin"; - inherit version; + __structuredAttrs = true; - __structuredAttrs = true; + inherit (common) binToOutput src prePatch; - inherit (common) binToOutput src prePatch; - - patches = [ - (fetchpatch { - name = "ttfdump-CVE-2024-25262.patch"; - url = "https://tug.org/svn/texlive/trunk/Build/source/texk/ttfdump/libttf/hdmx.c?r1=57915&r2=69520&view=patch"; - stripLen = 2; - hash = "sha256-WH2kioqFAs3jaFmu4DdEUdrTf6eiymtiWTZi3vWwU7k="; - }) - ]; - - outputs = [ "out" "dev" "man" "info" ] - ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) corePackages); - - nativeBuildInputs = [ - pkg-config - ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) (with texlive.bin.core; [ - # configure: error: tangle was not found but is required when cross-compiling. - # dev (himktables) is used when building hitex to generate the additional source file hitables.c - web/*tangle*/ cweb/*ctangle*/ omegaware/*otangle*/ tie/*tie*/ # see "Building TeX Live" 6.4.2 Cross problems - dev/*himktables*/ - ]); - - buildInputs = [ - /*teckit*/ zziplib mpfr gmp - pixman gd freetype libpng libpaper zlib - perl - ]; - - hardeningDisable = [ "format" ]; - - preConfigure = '' - rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ - libs/{lua53,luajit,mpfr,pixman,pplib,teckit,zlib,zziplib} \ - texk/{bibtex-x,chktex,dvipng,dvisvgm,upmendex,xdvik} \ - utils/{asymptote,texdoctk,xindy,xpdfopen} - mkdir WorkDir - cd WorkDir - ''; - configureScript = "../configure"; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - configureFlags = common.configureFlags - ++ [ "--without-x" ] # disable xdvik and xpdfopen - ++ map (what: "--disable-${what}") [ - "chktex" - "dvisvgm" "dvipng" # ghostscript dependency - "luatex" "luajittex" "luahbtex" "luajithbtex" - "mp" "pmp" "upmp" "mf" "mflua" "mfluajit" # cairo would bring in X and more - "xetex" "bibtexu" "bibtex8" "bibtex-x" "upmendex" # ICU isn't small + patches = [ + (fetchpatch { + name = "ttfdump-CVE-2024-25262.patch"; + url = "https://tug.org/svn/texlive/trunk/Build/source/texk/ttfdump/libttf/hdmx.c?r1=57915&r2=69520&view=patch"; + stripLen = 2; + hash = "sha256-WH2kioqFAs3jaFmu4DdEUdrTf6eiymtiWTZi3vWwU7k="; + }) ]; - enableParallelBuilding = true; + outputs = [ + "out" + "dev" + "man" + "info" + ] ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) corePackages); - doCheck = false; # triptest fails, likely due to missing TEXMF tree - preCheck = "patchShebangs ../texk/web2c"; + nativeBuildInputs = + [ pkg-config ] + ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ( + with texlive.bin.core; + [ + # configure: error: tangle was not found but is required when cross-compiling. + # dev (himktables) is used when building hitex to generate the additional source file hitables.c + web # tangle + cweb # ctangle + omegaware # otangle + tie # tie see "Building TeX Live" 6.4.2 Cross problems + dev # himktables + ] + ); - installTargets = [ "install" ]; + buildInputs = [ + # teckit + zziplib + mpfr + gmp + pixman + gd + freetype + libpng + libpaper + zlib + perl + ]; - # TODO: perhaps improve texmf.cnf search locations - postInstall = - /* remove redundant texmf-dist (content provided by TeX Live packages) */ - '' - rm -fr "$out"/share/texmf-dist - '' + /* install himktables in separate output for use in cross compilation */ '' - mkdir -p $dev/bin - cp texk/web2c/.libs/himktables $dev/bin/himktables - '' + common.moveBins; + hardeningDisable = [ "format" ]; - passthru = { inherit version buildInputs; }; - - meta = with lib; { - description = "Basic binaries for TeX Live"; - homepage = "http://www.tug.org/texlive"; - license = lib.licenses.gpl2Plus; - maintainers = with maintainers; [ veprbl lovek323 raskin jwiegley ]; - platforms = platforms.all; - }; -}; - - -inherit (core-big) metafont mflua metapost luatex luahbtex xetex; -luajittex = core.big.luajittex or null; -core-big = stdenv.mkDerivation { - pname = "texlive-bin-big"; - inherit version; - - __structuredAttrs = true; - - inherit (common) binToOutput src prePatch; - - patches = [ - # improves reproducibility of fmt files - # see discussion at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009196 - (fetchpatch { - name = "lua_fixed_hash.patch"; - url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45"; - sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4="; - }) - # update to LuaTeX 1.16.1 to prepare for 1.17.0 below - (fetchpatch { - name = "luatex-1.16.1.patch"; - url = "https://github.com/TeX-Live/texlive-source/commit/ad8702a45e317fa9d396ef4d50467c37964a9543.patch"; - hash = "sha256-qfzUfkJUfW285w+fnbpO8JLArM7/uj3yb9PONgZrJLE="; - }) - # fixes security issues in luatex that allows arbitrary code execution even with shell-escape disabled and network requests, see https://tug.org/~mseven/luatex.html - # fixed in LuaTeX 1.17.0, shipped as a rare binary update in TL 2023 - (fetchpatch { - name = "luatex-1.17.0.patch"; - url = "https://github.com/TeX-Live/texlive-source/commit/6ace460233115bd42b36e63c7ddce11cc92a1ebd.patch"; - hash = "sha256-2fbIdwnw/XQXci9OqRrb6B5tHiSR0co08NyFgMyXCvc="; - }) - # Fixes texluajitc crashes on aarch64, backport of the upstream fix - # https://github.com/LuaJIT/LuaJIT/commit/e9af1abec542e6f9851ff2368e7f196b6382a44c - # to the version vendored by texlive (2.1.0-beta3) - (fetchpatch { - name = "luajit-fix-aarch64-linux.patch"; - url = "https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/LuaJIT/patches/e9af1abec542e6f9851ff2368e7f196b6382a44c.patch"; - hash = "sha256-ysSZmfpfCFMukfHmIqwofAZux1e2kEq/37lfqp7HoWo="; - stripLen = 1; - extraPrefix = "libs/luajit/LuaJIT-src/"; - }) - ]; - - hardeningDisable = [ "format" ]; - - inherit (core) nativeBuildInputs depsBuildBuild; - buildInputs = core.buildInputs ++ [ core cairo harfbuzz icu graphite2 libX11 potrace ]; - - /* deleting the unused packages speeds up configure by a considerable margin - and ensures we do not rebuild existing libraries by mistake */ - preConfigure = '' - rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ - libs/{mpfr,pixman,xpdf,zlib,zziplib} \ - texk/{afm2pl,bibtex-x,chktex,cjkutils,detex,dtl,dvi2tty,dvidvi,dviljk,dviout-util} \ - texk/{dvipdfm-x,dvipng,dvipos,dvipsk,dvisvgm,gregorio,gsftopk,kpathsea} \ - texk/{lcdf-typetools,makeindexk,makejvf,mendexk,musixtnt,ps2pk,psutils,ptexenc} \ - texk/{seetexk,tex4htk,texlive,ttf2pk2,ttfdump,xdvik} \ - utils/{asymptote,autosp,axodraw2,devnag,lacheck,m-tx,pmx,ps2eps,t1utils,texdoctk} \ - utils/{tpic2pdftex,vlna,xindy,xml2pmx,xpdfopen} - mkdir WorkDir - cd WorkDir - ''; - - configureFlags = common.configureFlags - ++ withSystemLibs [ "kpathsea" "ptexenc" "cairo" "harfbuzz" "icu" "graphite2" ] - ++ map (prog: "--disable-${prog}") # don't build things we already have - # list from texk/web2c/configure - ([ "tex" "ptex" "eptex" "uptex" "euptex" "aleph" "hitex" "pdftex" - "web-progs" "synctex" - ] ++ lib.optionals (!withLuaJIT) [ "luajittex" "luajithbtex" "mfluajit" ]) - /* disable all packages, re-enable upmendex, web2c packages */ - ++ [ "--disable-all-pkgs" "--enable-upmendex" "--enable-web2c" ] - /* kpathsea requires specifying the kpathsea location manually */ - ++ [ "--with-kpathsea-includes=${core.dev}/include" ]; - - configureScript = "../configure"; - - enableParallelBuilding = true; - - doCheck = false; # fails - - outputs = [ "out" "dev" "man" "info" ] - ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) coreBigPackages) - # some outputs of metapost, omegaware are for ptex/uptex - ++ [ "ptex" "uptex" ] - # unavoidable duplicates from core - ++ [ "ctie" "cweb" "omegaware" "texlive_scripts_extra" "tie" "web" ]; - postInstall = common.moveBins; -}; - - -chktex = stdenv.mkDerivation { - pname = "chktex"; - inherit (texlive.pkgs.chktex) version; - - inherit (common) src; - - nativeBuildInputs = [ pkg-config ]; - # perl used in shebang of script bin/deweb - buildInputs = [ core/*kpathsea*/ perl ]; - - preConfigure = "cd texk/chktex"; - - configureFlags = common.configureFlags - ++ [ "--with-system-kpathsea" ]; - - enableParallelBuilding = true; -}; - -# the LuaMetaTeX engine (distributed since TeX Live 2023) must be built separately -# the sources used by TL are stored in the source TL repo -# for details see https://wiki.contextgarden.net/Building_LuaMetaTeX_for_TeX_Live -context = stdenv.mkDerivation rec { - pname = "luametatex"; - version = "2.10.08"; - - src = fetchurl { - url = "https://tug.org/svn/texlive/trunk/Master/source/luametatex-${version}.tar.xz?revision=67034&view=co"; - hash = "sha256-3JeOUQ63jJOZWTxFCoyWjfcrspmdmC/yqgS1JaLfTWk="; - }; - - enableParallelBuilding = true; - nativeBuildInputs = [ cmake ninja ]; - - meta = with lib; { - description = "The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development"; - homepage = "https://www.pragma-ade.nl/luametatex-1.htm"; - license = licenses.gpl2Plus; - maintainers = with lib.maintainers; [ apfelkuchen6 xworld21 ]; - }; -}; - -dvisvgm = stdenv.mkDerivation rec { - pname = "dvisvgm"; - version = "3.2.2"; - - src = assert lib.assertMsg (version == texlive.pkgs.dvisvgm.version) "dvisvgm: TeX Live version (${texlive.pkgs.dvisvgm.version}) different from source (${version}), please update dvisvgm"; fetchurl { - url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz"; - hash = "sha256-8GKL6lqjMUXXWwpqbdGPrYibdSc4y8AcGUGPNUc6HQA="; - }; - - configureFlags = [ - "--disable-manpage" # man pages are provided by the doc container - ]; - - # PDF handling requires mutool (from mupdf) since Ghostscript 10.01 - postPatch = '' - substituteInPlace src/PDFHandler.cpp \ - --replace-fail 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\"" - ''; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash mupdf-headless ]; - - enableParallelBuilding = true; -}; - - -dvipng = stdenv.mkDerivation { - pname = "dvipng"; - inherit (texlive.pkgs.dvipng) version; - - inherit (common) src; - - nativeBuildInputs = [ perl pkg-config makeWrapper ]; - buildInputs = [ core/*kpathsea*/ zlib libpng freetype gd ghostscript ]; - - preConfigure = '' - cd texk/dvipng - patchShebangs doc/texi2pod.pl - ''; - - configureFlags = common.configureFlags - ++ [ "--with-system-kpathsea" "--with-gs=yes" "--disable-debug" ]; - - GS="${ghostscript}/bin/gs"; - - enableParallelBuilding = true; -}; - -pygmentex = python3Packages.buildPythonApplication rec { - pname = "pygmentex"; - inherit (src) version; - format = "other"; - - src = assertFixedHash pname texlive.pkgs.pygmentex.tex; - - propagatedBuildInputs = with python3Packages; [ pygments chardet ]; - - dontBuild = true; - - doCheck = false; - - installPhase = '' - runHook preInstall - - install -D ./scripts/pygmentex/pygmentex.py "$out"/bin/pygmentex - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://www.ctan.org/pkg/pygmentex"; - description = "Auxiliary tool for typesetting code listings in LaTeX documents using Pygments"; - longDescription = '' - PygmenTeX is a Python-based LaTeX package that can be used for - typesetting code listings in a LaTeX document using Pygments. - - Pygments is a generic syntax highlighter for general use in all kinds of - software such as forum systems, wikis or other applications that need to - prettify source code. + preConfigure = '' + rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ + libs/{lua53,luajit,mpfr,pixman,pplib,teckit,zlib,zziplib} \ + texk/{bibtex-x,chktex,dvipng,dvisvgm,upmendex,xdvik} \ + utils/{asymptote,texdoctk,xindy,xpdfopen} + mkdir WorkDir + cd WorkDir ''; - license = licenses.lppl13c; - maintainers = with maintainers; [ romildo ]; - }; -}; + configureScript = "../configure"; -asymptote = args.asymptote.overrideAttrs (finalAttrs: prevAttrs: { - version = texlive.pkgs.asymptote.version; + depsBuildBuild = [ buildPackages.stdenv.cc ]; - # keep local src and patches even if duplicated in the top level asymptote - # so that top level updates do not break texlive - src = fetchurl { - url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz"; - hash = "sha256-DecadD+m7pORuH3Sdcs/5M3vUbN6rhSkFoNN0Soq9bs="; + configureFlags = + common.configureFlags + ++ [ "--without-x" ] # disable xdvik and xpdfopen + ++ map (what: "--disable-${what}") [ + "chktex" + "dvisvgm" + "dvipng" # ghostscript dependency + "luatex" + "luajittex" + "luahbtex" + "luajithbtex" + "mp" + "pmp" + "upmp" + "mf" + "mflua" + "mfluajit" # cairo would bring in X and more + "xetex" + "bibtexu" + "bibtex8" + "bibtex-x" + "upmendex" # ICU isn't small + ]; + + enableParallelBuilding = true; + + doCheck = false; # triptest fails, likely due to missing TEXMF tree + preCheck = "patchShebangs ../texk/web2c"; + + installTargets = [ "install" ]; + + # TODO: perhaps improve texmf.cnf search locations + postInstall = + # remove redundant texmf-dist (content provided by TeX Live packages) + '' + rm -fr "$out"/share/texmf-dist + '' + # install himktables in separate output for use in cross compilation + + '' + mkdir -p $dev/bin + cp texk/web2c/.libs/himktables $dev/bin/himktables + '' + + common.moveBins; + + passthru = { + inherit version buildInputs; + }; + + meta = with lib; { + description = "Basic binaries for TeX Live"; + homepage = "http://www.tug.org/texlive"; + license = lib.licenses.gpl2Plus; + maintainers = with maintainers; [ + veprbl + lovek323 + raskin + jwiegley + ]; + platforms = platforms.all; + }; }; - texContainer = texlive.pkgs.asymptote.tex; - texdocContainer = texlive.pkgs.asymptote.texdoc; + inherit (core-big) + metafont + mflua + metapost + luatex + luahbtex + xetex + ; + luajittex = core.big.luajittex or null; + core-big = stdenv.mkDerivation { + pname = "texlive-bin-big"; + inherit version; - patches = [ - (fetchpatch { - # partial fix for macOS XDR/V3D support (LDFLAGS change seems like an unrelated bugfix) - name = "restore-LDFLAGS-dont-look-for-tirpc-under-MacOS.patch"; - url = "https://github.com/vectorgraphics/asymptote/commit/7e17096b22d18d133d1bc5916b6e32c0cb24ad10.patch"; - hash = "sha256-olCFzqfZwWOAjqlB5lDPXYRHU9i3VQNgoR0cO5TmW98="; - }) - ]; -}); + __structuredAttrs = true; -inherit biber; -inherit biber-ms; -bibtexu = bibtex8; -bibtex8 = stdenv.mkDerivation { - pname = "bibtex-x"; - inherit (texlive.pkgs.bibtexu) version; + inherit (common) binToOutput src prePatch; - inherit (common) src; + patches = [ + # improves reproducibility of fmt files + # see discussion at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009196 + (fetchpatch { + name = "lua_fixed_hash.patch"; + url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45"; + sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4="; + }) + # update to LuaTeX 1.16.1 to prepare for 1.17.0 below + (fetchpatch { + name = "luatex-1.16.1.patch"; + url = "https://github.com/TeX-Live/texlive-source/commit/ad8702a45e317fa9d396ef4d50467c37964a9543.patch"; + hash = "sha256-qfzUfkJUfW285w+fnbpO8JLArM7/uj3yb9PONgZrJLE="; + }) + # fixes security issues in luatex that allows arbitrary code execution even with shell-escape disabled and network requests, see https://tug.org/~mseven/luatex.html + # fixed in LuaTeX 1.17.0, shipped as a rare binary update in TL 2023 + (fetchpatch { + name = "luatex-1.17.0.patch"; + url = "https://github.com/TeX-Live/texlive-source/commit/6ace460233115bd42b36e63c7ddce11cc92a1ebd.patch"; + hash = "sha256-2fbIdwnw/XQXci9OqRrb6B5tHiSR0co08NyFgMyXCvc="; + }) + # Fixes texluajitc crashes on aarch64, backport of the upstream fix + # https://github.com/LuaJIT/LuaJIT/commit/e9af1abec542e6f9851ff2368e7f196b6382a44c + # to the version vendored by texlive (2.1.0-beta3) + (fetchpatch { + name = "luajit-fix-aarch64-linux.patch"; + url = "https://raw.githubusercontent.com/void-linux/void-packages/master/srcpkgs/LuaJIT/patches/e9af1abec542e6f9851ff2368e7f196b6382a44c.patch"; + hash = "sha256-ysSZmfpfCFMukfHmIqwofAZux1e2kEq/37lfqp7HoWo="; + stripLen = 1; + extraPrefix = "libs/luajit/LuaJIT-src/"; + }) + ]; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ core/*kpathsea*/ icu ]; + hardeningDisable = [ "format" ]; - preConfigure = "cd texk/bibtex-x"; + inherit (core) nativeBuildInputs depsBuildBuild; + buildInputs = core.buildInputs ++ [ + core + cairo + harfbuzz + icu + graphite2 + libX11 + potrace + ]; - configureFlags = common.configureFlags - ++ [ "--with-system-kpathsea" "--with-system-icu" ]; + /* + deleting the unused packages speeds up configure by a considerable margin + and ensures we do not rebuild existing libraries by mistake + */ + preConfigure = '' + rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ + libs/{mpfr,pixman,xpdf,zlib,zziplib} \ + texk/{afm2pl,bibtex-x,chktex,cjkutils,detex,dtl,dvi2tty,dvidvi,dviljk,dviout-util} \ + texk/{dvipdfm-x,dvipng,dvipos,dvipsk,dvisvgm,gregorio,gsftopk,kpathsea} \ + texk/{lcdf-typetools,makeindexk,makejvf,mendexk,musixtnt,ps2pk,psutils,ptexenc} \ + texk/{seetexk,tex4htk,texlive,ttf2pk2,ttfdump,xdvik} \ + utils/{asymptote,autosp,axodraw2,devnag,lacheck,m-tx,pmx,ps2eps,t1utils,texdoctk} \ + utils/{tpic2pdftex,vlna,xindy,xml2pmx,xpdfopen} + mkdir WorkDir + cd WorkDir + ''; - enableParallelBuilding = true; -}; + configureFlags = + common.configureFlags + ++ withSystemLibs [ + "kpathsea" + "ptexenc" + "cairo" + "harfbuzz" + "icu" + "graphite2" + ] + ++ + map (prog: "--disable-${prog}") # don't build things we already have + # list from texk/web2c/configure + ( + [ + "tex" + "ptex" + "eptex" + "uptex" + "euptex" + "aleph" + "hitex" + "pdftex" + "web-progs" + "synctex" + ] + ++ lib.optionals (!withLuaJIT) [ + "luajittex" + "luajithbtex" + "mfluajit" + ] + ) + # disable all packages, re-enable upmendex, web2c packages + ++ [ + "--disable-all-pkgs" + "--enable-upmendex" + "--enable-web2c" + ] + # kpathsea requires specifying the kpathsea location manually + ++ [ "--with-kpathsea-includes=${core.dev}/include" ]; + configureScript = "../configure"; -xdvi = stdenv.mkDerivation { - pname = "xdvi"; - inherit (texlive.pkgs.xdvi) version; + enableParallelBuilding = true; - inherit (common) src; + doCheck = false; # fails - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ core/*kpathsea*/ freetype ghostscript ] - ++ (with xorg; [ libX11 libXaw libXi libXpm libXmu libXaw libXext libXfixes ]); + outputs = + [ + "out" + "dev" + "man" + "info" + ] + ++ (builtins.map (builtins.replaceStrings [ "-" ] [ "_" ]) coreBigPackages) + # some outputs of metapost, omegaware are for ptex/uptex + ++ [ + "ptex" + "uptex" + ] + # unavoidable duplicates from core + ++ [ + "ctie" + "cweb" + "omegaware" + "texlive_scripts_extra" + "tie" + "web" + ]; + postInstall = common.moveBins; + }; - preConfigure = "cd texk/xdvik"; + chktex = stdenv.mkDerivation { + pname = "chktex"; + inherit (texlive.pkgs.chktex) version; - configureFlags = common.configureFlags - ++ [ "--with-system-kpathsea" "--with-system-libgs" ]; + inherit (common) src; - enableParallelBuilding = true; + nativeBuildInputs = [ pkg-config ]; + # perl used in shebang of script bin/deweb + buildInputs = [ + core # kpathsea + perl + ]; - postInstall = '' - substituteInPlace "$out/bin/xdvi" \ - --replace-fail "exec xdvi-xaw" "exec '$out/bin/xdvi-xaw'" - ''; - # TODO: it's suspicious that mktexpk generates fonts into ~/.texlive2014 -}; + preConfigure = "cd texk/chktex"; -xpdfopen = stdenv.mkDerivation { - pname = "xpdfopen"; - inherit (texlive.pkgs.xpdfopen) version; + configureFlags = common.configureFlags ++ [ "--with-system-kpathsea" ]; - inherit (common) src; + enableParallelBuilding = true; + }; - buildInputs = [ libX11 ]; + # the LuaMetaTeX engine (distributed since TeX Live 2023) must be built separately + # the sources used by TL are stored in the source TL repo + # for details see https://wiki.contextgarden.net/Building_LuaMetaTeX_for_TeX_Live + context = stdenv.mkDerivation rec { + pname = "luametatex"; + version = "2.10.08"; - preConfigure = "cd utils/xpdfopen"; + src = fetchurl { + url = "https://tug.org/svn/texlive/trunk/Master/source/luametatex-${version}.tar.xz?revision=67034&view=co"; + hash = "sha256-3JeOUQ63jJOZWTxFCoyWjfcrspmdmC/yqgS1JaLfTWk="; + }; - enableParallelBuilding = true; -}; + enableParallelBuilding = true; + nativeBuildInputs = [ + cmake + ninja + ]; + + meta = with lib; { + description = "The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development"; + homepage = "https://www.pragma-ade.nl/luametatex-1.htm"; + license = licenses.gpl2Plus; + maintainers = with lib.maintainers; [ + apfelkuchen6 + xworld21 + ]; + }; + }; + + dvisvgm = stdenv.mkDerivation rec { + pname = "dvisvgm"; + version = "3.2.2"; + + src = + assert lib.assertMsg (version == texlive.pkgs.dvisvgm.version) + "dvisvgm: TeX Live version (${texlive.pkgs.dvisvgm.version}) different from source (${version}), please update dvisvgm"; + fetchurl { + url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz"; + hash = "sha256-8GKL6lqjMUXXWwpqbdGPrYibdSc4y8AcGUGPNUc6HQA="; + }; + + configureFlags = [ + "--disable-manpage" # man pages are provided by the doc container + ]; + + # PDF handling requires mutool (from mupdf) since Ghostscript 10.01 + postPatch = '' + substituteInPlace src/PDFHandler.cpp \ + --replace-fail 'Process("mutool"' "Process(\"$(PATH="$HOST_PATH" command -v mutool)\"" + ''; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + core + brotli + ghostscript + zlib + freetype + woff2 + potrace + xxHash + mupdf-headless + ]; + + enableParallelBuilding = true; + }; + + dvipng = stdenv.mkDerivation { + pname = "dvipng"; + inherit (texlive.pkgs.dvipng) version; + + inherit (common) src; + + nativeBuildInputs = [ + perl + pkg-config + makeWrapper + ]; + buildInputs = [ + core # kpathsea + zlib + libpng + freetype + gd + ghostscript + ]; + + preConfigure = '' + cd texk/dvipng + patchShebangs doc/texi2pod.pl + ''; + + configureFlags = common.configureFlags ++ [ + "--with-system-kpathsea" + "--with-gs=yes" + "--disable-debug" + ]; + + GS = "${ghostscript}/bin/gs"; + + enableParallelBuilding = true; + }; + + pygmentex = python3Packages.buildPythonApplication rec { + pname = "pygmentex"; + inherit (src) version; + format = "other"; + + src = assertFixedHash pname texlive.pkgs.pygmentex.tex; + + propagatedBuildInputs = with python3Packages; [ + pygments + chardet + ]; + + dontBuild = true; + + doCheck = false; + + installPhase = '' + runHook preInstall + + install -D ./scripts/pygmentex/pygmentex.py "$out"/bin/pygmentex + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://www.ctan.org/pkg/pygmentex"; + description = "Auxiliary tool for typesetting code listings in LaTeX documents using Pygments"; + longDescription = '' + PygmenTeX is a Python-based LaTeX package that can be used for + typesetting code listings in a LaTeX document using Pygments. + + Pygments is a generic syntax highlighter for general use in all kinds of + software such as forum systems, wikis or other applications that need to + prettify source code. + ''; + license = licenses.lppl13c; + maintainers = with maintainers; [ romildo ]; + }; + }; + + asymptote = args.asymptote.overrideAttrs ( + finalAttrs: prevAttrs: { + version = texlive.pkgs.asymptote.version; + + # keep local src and patches even if duplicated in the top level asymptote + # so that top level updates do not break texlive + src = fetchurl { + url = "mirror://sourceforge/asymptote/${finalAttrs.version}/asymptote-${finalAttrs.version}.src.tgz"; + hash = "sha256-DecadD+m7pORuH3Sdcs/5M3vUbN6rhSkFoNN0Soq9bs="; + }; + + texContainer = texlive.pkgs.asymptote.tex; + texdocContainer = texlive.pkgs.asymptote.texdoc; + + patches = [ + (fetchpatch { + # partial fix for macOS XDR/V3D support (LDFLAGS change seems like an unrelated bugfix) + name = "restore-LDFLAGS-dont-look-for-tirpc-under-MacOS.patch"; + url = "https://github.com/vectorgraphics/asymptote/commit/7e17096b22d18d133d1bc5916b6e32c0cb24ad10.patch"; + hash = "sha256-olCFzqfZwWOAjqlB5lDPXYRHU9i3VQNgoR0cO5TmW98="; + }) + ]; + } + ); + + inherit biber; + inherit biber-ms; + bibtexu = bibtex8; + bibtex8 = stdenv.mkDerivation { + pname = "bibtex-x"; + inherit (texlive.pkgs.bibtexu) version; + + inherit (common) src; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + core # kpathsea + icu + ]; + + preConfigure = "cd texk/bibtex-x"; + + configureFlags = common.configureFlags ++ [ + "--with-system-kpathsea" + "--with-system-icu" + ]; + + enableParallelBuilding = true; + }; + + xdvi = stdenv.mkDerivation { + pname = "xdvi"; + inherit (texlive.pkgs.xdvi) version; + + inherit (common) src; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = + [ + core # kpathsea + freetype + ghostscript + ] + ++ (with xorg; [ + libX11 + libXaw + libXi + libXpm + libXmu + libXaw + libXext + libXfixes + ]); + + preConfigure = "cd texk/xdvik"; + + configureFlags = common.configureFlags ++ [ + "--with-system-kpathsea" + "--with-system-libgs" + ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace "$out/bin/xdvi" \ + --replace-fail "exec xdvi-xaw" "exec '$out/bin/xdvi-xaw'" + ''; + # TODO: it's suspicious that mktexpk generates fonts into ~/.texlive2014 + }; + + xpdfopen = stdenv.mkDerivation { + pname = "xpdfopen"; + inherit (texlive.pkgs.xpdfopen) version; + + inherit (common) src; + + buildInputs = [ libX11 ]; + + preConfigure = "cd utils/xpdfopen"; + + enableParallelBuilding = true; + }; } # un-indented -// lib.optionalAttrs (!clisp.meta.broken) # broken on aarch64 and darwin (#20062) -{ +// + lib.optionalAttrs (!clisp.meta.broken) # broken on aarch64 and darwin (#20062) + { -xindy = stdenv.mkDerivation { - pname = "xindy"; - inherit (texlive.pkgs.xindy) version; + xindy = stdenv.mkDerivation { + pname = "xindy"; + inherit (texlive.pkgs.xindy) version; - inherit (common) src; + inherit (common) src; - # If unset, xindy will try to mkdir /homeless-shelter - HOME = "."; + # If unset, xindy will try to mkdir /homeless-shelter + HOME = "."; - prePatch = "cd utils/xindy"; - # hardcode clisp location - postPatch = '' - substituteInPlace xindy-*/user-commands/xindy.in \ - --replace-fail "our \$clisp = ( \$is_windows ? 'clisp.exe' : 'clisp' ) ;" \ - "our \$clisp = '$(type -P clisp)';" \ - --replace-fail 'die "$cmd: Cannot locate xindy modules directory";' \ - '$modules_dir = "${texlive.pkgs.xindy.tex}/xindy/modules"; die "$cmd: Cannot locate xindy modules directory" unless -d $modules_dir;' - ''; + prePatch = "cd utils/xindy"; + # hardcode clisp location + postPatch = '' + substituteInPlace xindy-*/user-commands/xindy.in \ + --replace-fail "our \$clisp = ( \$is_windows ? 'clisp.exe' : 'clisp' ) ;" \ + "our \$clisp = '$(type -P clisp)';" \ + --replace-fail 'die "$cmd: Cannot locate xindy modules directory";' \ + '$modules_dir = "${texlive.pkgs.xindy.tex}/xindy/modules"; die "$cmd: Cannot locate xindy modules directory" unless -d $modules_dir;' + ''; - nativeBuildInputs = [ - pkg-config perl - ]; - buildInputs = [ clisp libiconv perl ]; + nativeBuildInputs = [ + pkg-config + perl + ]; + buildInputs = [ + clisp + libiconv + perl + ]; - configureFlags = [ "--with-clisp-runtime=system" "--disable-xindy-docs" "--disable-xindy-rules" ]; + configureFlags = [ + "--with-clisp-runtime=system" + "--disable-xindy-docs" + "--disable-xindy-rules" + ]; - preInstall = ''mkdir -p "$out/bin" ''; - # fixup various file-location errors of: lib/xindy/{xindy.mem,modules/} - postInstall = '' - mkdir -p "$out/lib/xindy" - mv "$out"/{bin/xindy.mem,lib/xindy/} - ''; -}; + preInstall = ''mkdir -p "$out/bin" ''; + # fixup various file-location errors of: lib/xindy/{xindy.mem,modules/} + postInstall = '' + mkdir -p "$out/lib/xindy" + mv "$out"/{bin/xindy.mem,lib/xindy/} + ''; + }; -} + } diff --git a/pkgs/by-name/te/texlive/build-tex-env.nix b/pkgs/by-name/te/texlive/build-tex-env.nix index 5497e6b..ed4f2ba 100644 --- a/pkgs/by-name/te/texlive/build-tex-env.nix +++ b/pkgs/by-name/te/texlive/build-tex-env.nix @@ -1,309 +1,453 @@ { # texlive package set - tl -, bin + tl, + bin, -, lib -, buildEnv -, libfaketime -, makeFontsConf -, makeWrapper -, runCommand -, writeShellScript -, writeText -, toTLPkgSets -, bash -, perl + lib, + buildEnv, + libfaketime, + makeFontsConf, + makeWrapper, + runCommand, + writeShellScript, + writeText, + toTLPkgSets, + bash, + perl, # common runtime dependencies -, coreutils -, gawk -, gnugrep -, gnused -, ghostscript + coreutils, + gawk, + gnugrep, + gnused, + ghostscript, }: -lib.fix (self: { - withDocs ? false -, withSources ? false -, requiredTeXPackages ? ps: [ ps.scheme-infraonly ] +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: + ### 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 - ### buildEnv with custom attributes - buildEnv' = args: (buildEnv - ({ inherit (args) name paths; }) - // lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; }) - .overrideAttrs (removeAttrs args [ "extraOutputsToInstall" "name" "paths" "pkgs" ]); + let + ### buildEnv with custom attributes + buildEnv' = + args: + ( + buildEnv ({ inherit (args) name paths; }) + // lib.optionalAttrs (args ? extraOutputsToInstall) { inherit (args) extraOutputsToInstall; } + ).overrideAttrs + ( + removeAttrs args [ + "extraOutputsToInstall" + "name" + "paths" + "pkgs" + ] + ); - ### texlive.combine backward compatibility - # if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets - isOldPkgList = p: ! p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs; - ensurePkgSets = ps: if ! __fromCombineWrapper && builtins.any isOldPkgList ps - then let oldPkgLists = builtins.partition isOldPkgList ps; - in oldPkgLists.wrong ++ lib.concatMap toTLPkgSets oldPkgLists.right - else ps; + ### texlive.combine backward compatibility + # if necessary, convert old style { pkgs = [ ... ]; } packages to attribute sets + isOldPkgList = p: !p.outputSpecified or false && p ? pkgs && builtins.all (p: p ? tlType) p.pkgs; + ensurePkgSets = + ps: + if !__fromCombineWrapper && builtins.any isOldPkgList ps then + let + oldPkgLists = builtins.partition isOldPkgList ps; + in + oldPkgLists.wrong ++ lib.concatMap toTLPkgSets oldPkgLists.right + else + ps; - pkgList = rec { - # resolve dependencies of the packages that affect the runtime - all = - let - # order of packages is irrelevant - packages = builtins.sort (a: b: a.pname < b.pname) (ensurePkgSets (requiredTeXPackages tl)); - 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 = if p ? tlDeps then ensurePkgSets p.tlDeps else (p.requiredTeXPackages or (_: [ ]) tl); - }; - 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; + pkgList = rec { + # resolve dependencies of the packages that affect the runtime + all = + let + # order of packages is irrelevant + packages = builtins.sort (a: b: a.pname < b.pname) (ensurePkgSets (requiredTeXPackages tl)); + 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 = if p ? tlDeps then ensurePkgSets p.tlDeps else (p.requiredTeXPackages or (_: [ ]) tl); + }; + 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 = lib.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 (otherOutputs ? man) "man" - ++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong))); - operator = _: [ ]; - }); + # group the specified outputs + specified = builtins.partition (p: p.outputSpecified or false) all; + specifiedOutputs = lib.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 (otherOutputs ? man) "man" + ++ lib.concatLists (builtins.catAttrs "outputsToInstall" (builtins.catAttrs "meta" specified.wrong)) + ); + operator = _: [ ]; + } + ); - # split binary and tlpkg from tex, texdoc, texsource - bin = if __fromCombineWrapper - then builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter - else otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ]; - tlpkg = if __fromCombineWrapper - then builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter - else otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ]; + # split binary and tlpkg from tex, texdoc, texsource + bin = + if __fromCombineWrapper then + builtins.filter (p: p.tlType == "bin") all # texlive.combine: legacy filter + else + otherOutputs.out or [ ] ++ specifiedOutputs.out or [ ]; + tlpkg = + if __fromCombineWrapper then + builtins.filter (p: p.tlType == "tlpkg") all # texlive.combine: legacy filter + else + otherOutputs.tlpkg or [ ] ++ specifiedOutputs.tlpkg or [ ]; - 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 [ ]; + 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; + # outputs that do not become part of the environment + nonEnvOutputs = lib.subtractLists [ + "out" + "tex" + "texdoc" + "texsource" + "tlpkg" + ] otherOutputNames; - # packages that contribute to config files and formats - fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin; - sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps; - hyphenPatterns = lib.filter (p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex")) nonbin; - sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns; - formatPkgs = lib.filter (p: p ? formats && (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex") && builtins.any (f: f.enabled or true) p.formats) all; - sortedFormatPkgs = builtins.sort (a: b: a.pname < b.pname) formatPkgs; - }; + # packages that contribute to config files and formats + fontMaps = lib.filter (p: p ? fontMaps && (p.tlOutputName or p.outputName == "tex")) nonbin; + sortedFontMaps = builtins.sort (a: b: a.pname < b.pname) fontMaps; + hyphenPatterns = lib.filter ( + p: p ? hyphenPatterns && (p.tlOutputName or p.outputName == "tex") + ) nonbin; + sortedHyphenPatterns = builtins.sort (a: b: a.pname < b.pname) hyphenPatterns; + formatPkgs = lib.filter ( + p: + p ? formats + && (p.outputSpecified or false -> p.tlOutputName or p.outputName == "tex") + && builtins.any (f: f.enabled or true) p.formats + ) all; + sortedFormatPkgs = builtins.sort (a: b: a.pname < b.pname) formatPkgs; + }; - # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts` - # and `grep -IR rungs "$TEXMFDIST"` - # 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; + # list generated by inspecting `grep -IR '\([^a-zA-Z]\|^\)gs\( \|$\|"\)' "$TEXMFDIST"/scripts` + # and `grep -IR rungs "$TEXMFDIST"` + # 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; - name = if __combine then "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name - else "texlive-${bin.texliveYear}-env"; + name = + if __combine then + "texlive-${__extraName}-${bin.texliveYear}${__extraVersion}" # texlive.combine: old name name + else + "texlive-${bin.texliveYear}-env"; - texmfdist = buildEnv' { - name = "${name}-texmfdist"; + texmfdist = buildEnv' { + name = "${name}-texmfdist"; - # remove fake derivations (without 'outPath') to avoid undesired build dependencies - paths = builtins.catAttrs "outPath" pkgList.nonbin; + # remove fake derivations (without 'outPath') to avoid undesired build dependencies + paths = builtins.catAttrs "outPath" pkgList.nonbin; - # mktexlsr - nativeBuildInputs = [ tl."texlive.infra" ]; + # mktexlsr + nativeBuildInputs = [ tl."texlive.infra" ]; - postBuild = # generate ls-R database - '' - mktexlsr "$out" + postBuild = # generate ls-R database + '' + mktexlsr "$out" + ''; + }; + + tlpkg = buildEnv { + name = "${name}-tlpkg"; + + # remove fake derivations (without 'outPath') to avoid undesired build dependencies + paths = builtins.catAttrs "outPath" pkgList.tlpkg; + }; + + # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist + # and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both) + texmfroot = runCommand "${name}-texmfroot" { inherit texmfdist tlpkg; } '' + mkdir -p "$out" + ln -s "$texmfdist" "$out"/texmf-dist + ln -s "$tlpkg" "$out"/tlpkg ''; - }; - tlpkg = buildEnv { - name = "${name}-tlpkg"; + # texlive.combine: expose info and man pages in usual /share/{info,man} location + doc = buildEnv { + name = "${name}-doc"; - # remove fake derivations (without 'outPath') to avoid undesired build dependencies - paths = builtins.catAttrs "outPath" pkgList.tlpkg; - }; + paths = [ (texmfdist.outPath + "/doc") ]; + extraPrefix = "/share"; - # the 'non-relocated' packages must live in $TEXMFROOT/texmf-dist - # and sometimes look into $TEXMFROOT/tlpkg (notably fmtutil, updmap look for perl modules in both) - texmfroot = runCommand "${name}-texmfroot" { - inherit texmfdist tlpkg; - } '' - mkdir -p "$out" - ln -s "$texmfdist" "$out"/texmf-dist - ln -s "$tlpkg" "$out"/tlpkg - ''; + pathsToLink = [ + "/info" + "/man" + ]; + }; - # texlive.combine: expose info and man pages in usual /share/{info,man} location - doc = buildEnv { - name = "${name}-doc"; + 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); + }; - paths = [ (texmfdist.outPath + "/doc") ]; - extraPrefix = "/share"; + # other outputs + nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs ( + outName: + buildEnv' { + inherit name; + outputs = [ outName ]; + 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; + } + ); - pathsToLink = [ - "/info" - "/man" - ]; - }; - - 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); - }; - - # other outputs - nonEnvOutputs = lib.genAttrs pkgList.nonEnvOutputs (outName: buildEnv' { - inherit name; - outputs = [ outName ]; - 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; - }); - - passthru = { - # 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 + passthru = { + # 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; }); - }; + withPackages = + reqs: + self ( + args + // { + requiredTeXPackages = ps: requiredTeXPackages ps ++ reqs ps; + __fromCombineWrapper = false; + } + ); + }; - # TeXLive::TLOBJ::fmtutil_cnf_lines - fmtutilLine = { name, engine, enabled ? true, patterns ? [ "-" ], options ? "", ... }: - lib.optionalString (! enabled) "#! " + "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}"; - fmtutilLines = { pname, formats, ...}: - [ "#" "# from ${pname}:" ] ++ map fmtutilLine formats; + # TeXLive::TLOBJ::fmtutil_cnf_lines + fmtutilLine = + { + name, + engine, + enabled ? true, + patterns ? [ "-" ], + options ? "", + ... + }: + lib.optionalString (!enabled) "#! " + + "${name} ${engine} ${lib.concatStringsSep "," patterns} ${options}"; + fmtutilLines = + { pname, formats, ... }: + [ + "#" + "# from ${pname}:" + ] + ++ map fmtutilLine formats; - # TeXLive::TLOBJ::language_dat_lines - langDatLine = { name, file, synonyms ? [ ], ... }: - [ "${name} ${file}" ] ++ map (s: "=" + s) synonyms; - langDatLines = { pname, hyphenPatterns, ... }: - [ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns; + # TeXLive::TLOBJ::language_dat_lines + langDatLine = + { + name, + file, + synonyms ? [ ], + ... + }: + [ "${name} ${file}" ] ++ map (s: "=" + s) synonyms; + langDatLines = + { pname, hyphenPatterns, ... }: + [ "% from ${pname}:" ] ++ builtins.concatMap langDatLine hyphenPatterns; - # TeXLive::TLOBJ::language_def_lines - # see TeXLive::TLUtils::parse_AddHyphen_line for default values - langDefLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }: - map (n: "\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${if righthyphenmin == "" then "3" else righthyphenmin}}") - ([ name ] ++ synonyms); - langDefLines = { pname, hyphenPatterns, ... }: - [ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns; + # TeXLive::TLOBJ::language_def_lines + # see TeXLive::TLUtils::parse_AddHyphen_line for default values + langDefLine = + { + name, + file, + lefthyphenmin ? "", + righthyphenmin ? "", + synonyms ? [ ], + ... + }: + map ( + n: + "\\addlanguage{${n}}{${file}}{}{${if lefthyphenmin == "" then "2" else lefthyphenmin}}{${ + if righthyphenmin == "" then "3" else righthyphenmin + }}" + ) ([ name ] ++ synonyms); + langDefLines = + { pname, hyphenPatterns, ... }: + [ "% from ${pname}:" ] ++ builtins.concatMap langDefLine hyphenPatterns; - # TeXLive::TLOBJ::language_lua_lines - # see TeXLive::TLUtils::parse_AddHyphen_line for default values - langLuaLine = { name, file, lefthyphenmin ? "", righthyphenmin ? "", synonyms ? [ ], ... }@args: '' - ''\t['${name}'] = { - ''\t''\tloader = '${file}', - ''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin}, - ''\t''\trighthyphenmin = ${if righthyphenmin == "" then "3" else righthyphenmin}, - ''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} }, - '' - + lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n" - + lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n" - + lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n" - + "\t},"; - langLuaLines = { pname, hyphenPatterns, ... }: - [ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns; + # TeXLive::TLOBJ::language_lua_lines + # see TeXLive::TLUtils::parse_AddHyphen_line for default values + langLuaLine = + { + name, + file, + lefthyphenmin ? "", + righthyphenmin ? "", + synonyms ? [ ], + ... + }@args: + '' + ''\t['${name}'] = { + ''\t''\tloader = '${file}', + ''\t''\tlefthyphenmin = ${if lefthyphenmin == "" then "2" else lefthyphenmin}, + ''\t''\trighthyphenmin = ${if righthyphenmin == "" then "3" else righthyphenmin}, + ''\t''\tsynonyms = { ${lib.concatStringsSep ", " (map (s: "'${s}'") synonyms)} }, + '' + + lib.optionalString (args ? file_patterns) "\t\tpatterns = '${args.file_patterns}',\n" + + lib.optionalString (args ? file_exceptions) "\t\thyphenation = '${args.file_exceptions}',\n" + + lib.optionalString (args ? luaspecial) "\t\tspecial = '${args.luaspecial}',\n" + + "\t},"; + langLuaLines = + { pname, hyphenPatterns, ... }: [ "-- from ${pname}:" ] ++ map langLuaLine hyphenPatterns; - assembleConfigLines = f: packages: - builtins.concatStringsSep "\n" (builtins.concatMap f packages); + assembleConfigLines = f: packages: builtins.concatStringsSep "\n" (builtins.concatMap f packages); - updmapLines = { pname, fontMaps, ...}: - [ "# from ${pname}:" ] ++ fontMaps; + updmapLines = { pname, fontMaps, ... }: [ "# from ${pname}:" ] ++ fontMaps; - out = -# no indent for git diff purposes -buildEnv' { + out = + # no indent for git diff purposes + buildEnv' { - inherit name; + inherit name; - # use attrNames, attrValues to ensure the two lists are sorted in the same way - outputs = [ "out" ] ++ lib.optionals (! __combine) (builtins.attrNames nonEnvOutputs); - otherOutputs = lib.optionals (! __combine) (builtins.attrValues nonEnvOutputs); + # use attrNames, attrValues to ensure the two lists are sorted in the same way + outputs = [ "out" ] ++ lib.optionals (!__combine) (builtins.attrNames nonEnvOutputs); + otherOutputs = lib.optionals (!__combine) (builtins.attrValues nonEnvOutputs); - # remove fake derivations (without 'outPath') to avoid undesired build dependencies - paths = builtins.catAttrs "outPath" pkgList.bin - ++ lib.optional __combine doc; - pathsToLink = [ - "/" - "/share/texmf-var/scripts" - "/share/texmf-var/tex/generic/config" - "/share/texmf-var/web2c" - "/share/texmf-config" - "/bin" # ensure these are writeable directories - ]; + # remove fake derivations (without 'outPath') to avoid undesired build dependencies + paths = builtins.catAttrs "outPath" pkgList.bin ++ lib.optional __combine doc; + pathsToLink = [ + "/" + "/share/texmf-var/scripts" + "/share/texmf-var/tex/generic/config" + "/share/texmf-var/web2c" + "/share/texmf-config" + "/bin" # ensure these are writeable directories + ]; - nativeBuildInputs = [ - makeWrapper - libfaketime - tl."texlive.infra" # mktexlsr - tl.texlive-scripts # fmtutil, updmap - tl.texlive-scripts-extra # texlinks - perl - ]; + nativeBuildInputs = [ + makeWrapper + libfaketime + tl."texlive.infra" # mktexlsr + tl.texlive-scripts # fmtutil, updmap + tl.texlive-scripts-extra # texlinks + perl + ]; - buildInputs = [ coreutils gawk gnugrep gnused ] ++ lib.optional needsGhostscript ghostscript; + buildInputs = [ + coreutils + gawk + gnugrep + gnused + ] ++ lib.optional needsGhostscript ghostscript; - inherit meta passthru; + inherit meta passthru; - inherit texmfdist texmfroot; + inherit texmfdist texmfroot; - fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; }; + fontconfigFile = makeFontsConf { fontDirectories = [ "${texmfroot}/texmf-dist/fonts" ]; }; - fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs; - updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps; + fmtutilCnf = assembleConfigLines fmtutilLines pkgList.sortedFormatPkgs; + updmapCfg = assembleConfigLines updmapLines pkgList.sortedFontMaps; - languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns; - languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns; - languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns; + languageDat = assembleConfigLines langDatLines pkgList.sortedHyphenPatterns; + languageDef = assembleConfigLines langDefLines pkgList.sortedHyphenPatterns; + languageLua = assembleConfigLines langLuaLines pkgList.sortedHyphenPatterns; - postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg; + postactionScripts = builtins.catAttrs "postactionScript" pkgList.tlpkg; - postBuild = '' - . "${./build-tex-env.sh}" - ''; -}; + postBuild = '' + . "${./build-tex-env.sh}" + ''; + }; + in # outputsToInstall must be set *after* overrideAttrs (used in buildEnv') or it fails the checkMeta tests -in if __combine then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out) + if __combine then out else lib.addMetaAttrs { inherit (pkgList) outputsToInstall; } out +) diff --git a/pkgs/by-name/te/texlive/build-texlive-package.nix b/pkgs/by-name/te/texlive/build-texlive-package.nix index c5a55cf..8ea4ead 100644 --- a/pkgs/by-name/te/texlive/build-texlive-package.nix +++ b/pkgs/by-name/te/texlive/build-texlive-package.nix @@ -1,22 +1,24 @@ -{ lib -, fetchurl -, runCommand -, writeShellScript +{ + lib, + fetchurl, + runCommand, + writeShellScript, # script interpreters -, bash -, jdk -, perl -, python3 -, ruby -, snobol4 -, tk + bash, + jdk, + perl, + python3, + ruby, + snobol4, + tk, # TeX Live prerequisites -, texliveBinaries + texliveBinaries, }: -/* Convert an attribute set extracted from tlpdb.nix (with the deps attribute +/* + 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" ] @@ -33,25 +35,26 @@ # TODO stabilise a generic interface decoupled from the finer details of the # translation from texlive.tlpdb to tlpdb.nix -{ pname -, revision -, version ? toString revision -, extraRevision ? "" -, extraVersion ? "" -, sha512 -, mirrors -, fixedHashes ? { } -, postUnpack ? "" -, postFixup ? "" -, stripPrefix ? 1 -, license ? [ ] -, hasHyphens ? false -, hasInfo ? false -, hasManpages ? false -, hasRunfiles ? false -, hasTlpkg ? false -, extraNativeBuildInputs ? [ ] -, ... +{ + pname, + revision, + version ? toString revision, + extraRevision ? "", + extraVersion ? "", + sha512, + mirrors, + fixedHashes ? { }, + postUnpack ? "", + postFixup ? "", + stripPrefix ? 1, + license ? [ ], + hasHyphens ? false, + hasInfo ? false, + hasManpages ? false, + hasRunfiles ? false, + hasTlpkg ? false, + extraNativeBuildInputs ? [ ], + ... }@args: let @@ -66,77 +69,86 @@ let ''; # discourage nix-env from matching this package priority = 10; - } // lib.optionalAttrs (args ? shortdesc) { - description = args.shortdesc; - }; + } // lib.optionalAttrs (args ? shortdesc) { description = args.shortdesc; }; hasBinfiles = args ? binfiles && args.binfiles != [ ]; hasDocfiles = sha512 ? doc; hasSource = sha512 ? source; # containers that will be built by Hydra - outputs = lib.optional hasBinfiles "out" ++ - lib.optional hasRunfiles "tex" ++ - lib.optional hasDocfiles "texdoc" ++ - # omit building sources, since as far as we know, installing them is not common - # the sources will still be available under drv.texsource - # lib.optional hasSource "texsource" ++ - lib.optional hasTlpkg "tlpkg" ++ - lib.optional hasManpages "man" ++ - lib.optional hasInfo "info"; + outputs = + lib.optional hasBinfiles "out" + ++ lib.optional hasRunfiles "tex" + ++ lib.optional hasDocfiles "texdoc" + ++ + # omit building sources, since as far as we know, installing them is not common + # the sources will still be available under drv.texsource + # lib.optional hasSource "texsource" ++ + lib.optional hasTlpkg "tlpkg" + ++ lib.optional hasManpages "man" + ++ lib.optional hasInfo "info"; outputDrvs = lib.getAttrs outputs containers; - passthru = { - # metadata - inherit pname; - revision = toString revision + extraRevision; - version = version + extraVersion; - # containers behave like specified outputs - outputSpecified = true; - } // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; } - // lib.optionalAttrs (args ? fontMaps) { inherit (args) fontMaps; } - // lib.optionalAttrs (args ? formats) { inherit (args) formats; } - // lib.optionalAttrs (args ? hyphenPatterns) { inherit (args) hyphenPatterns; } - // lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; } - // lib.optionalAttrs hasSource { inherit (containers) texsource; } - // lib.optionalAttrs (! hasRunfiles) { tex = fakeTeX; }; + passthru = + { + # metadata + inherit pname; + revision = toString revision + extraRevision; + version = version + extraVersion; + # containers behave like specified outputs + outputSpecified = true; + } + // lib.optionalAttrs (args ? deps) { tlDeps = args.deps; } + // lib.optionalAttrs (args ? fontMaps) { inherit (args) fontMaps; } + // lib.optionalAttrs (args ? formats) { inherit (args) formats; } + // lib.optionalAttrs (args ? hyphenPatterns) { inherit (args) hyphenPatterns; } + // lib.optionalAttrs (args ? postactionScript) { inherit (args) postactionScript; } + // lib.optionalAttrs hasSource { inherit (containers) texsource; } + // lib.optionalAttrs (!hasRunfiles) { tex = fakeTeX; }; # build run, doc, source, tlpkg containers - mkContainer = tlType: tlOutputName: sha512: + mkContainer = + tlType: tlOutputName: sha512: let fixedHash = fixedHashes.${tlType} or null; # be graceful about missing hashes # the basename used by upstream (without ".tar.xz" suffix) # tlpkg is not a true container but a subfolder of the run container urlName = pname + (lib.optionalString (tlType != "run" && tlType != "tlpkg") ".${tlType}"); urls = map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") mirrors; - container = runCommand "${name}-${tlOutputName}" - ({ - src = fetchurl { inherit urls sha512; }; - inherit passthru; - # save outputName, since fixed output derivations cannot change nor override outputName - inherit meta stripPrefix tlOutputName; - } // lib.optionalAttrs (fixedHash != null) { - outputHash = fixedHash; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - }) - ('' - mkdir "$out" - if [[ "$tlOutputName" == "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); + container = + runCommand "${name}-${tlOutputName}" + ( + { + src = fetchurl { inherit urls sha512; }; + inherit passthru; + # save outputName, since fixed output derivations cannot change nor override outputName + inherit meta stripPrefix tlOutputName; + } + // lib.optionalAttrs (fixedHash != null) { + outputHash = fixedHash; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + } + ) + ( + '' + mkdir "$out" + if [[ "$tlOutputName" == "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 # remove drv.out to avoid confusing texlive.withPackages - removeAttrs container [ "out" ] - // outputDrvs; + removeAttrs container [ "out" ] // outputDrvs; # find interpreters for the script extensions found in tlpdb extToInput = { @@ -151,8 +163,12 @@ let }; # fake derivation for resolving dependencies in the absence of a "tex" containers - fakeTeX = passthru - // { inherit meta; tlOutputName = "tex"; } + fakeTeX = + passthru + // { + inherit meta; + tlOutputName = "tex"; + } // outputDrvs; containers = rec { @@ -162,74 +178,99 @@ let tlpkg = mkContainer "tlpkg" "tlpkg" sha512.run; # bin container - out = runCommand "${name}" - { - inherit meta; - passthru = passthru // { tlOutputName = "out"; }; - # shebang interpreters - buildInputs = let outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; in - [ - texliveBinaries.core.${outName} or null - texliveBinaries.${pname} or null - texliveBinaries.core-big.${outName} or null - ] - ++ (args.extraBuildInputs or [ ]) ++ [ bash perl ] - ++ (lib.attrVals (args.scriptExts or [ ]) extToInput); - nativeBuildInputs = extraNativeBuildInputs; - # absolute scripts folder - scriptsFolder = lib.optionals (hasRunfiles && tex ? outPath) (map (f: tex.outPath + "/scripts/" + f) (lib.toList args.scriptsFolder or pname)); - # binaries info - inherit (args) binfiles; - binlinks = builtins.attrNames (args.binlinks or { }); - bintargets = builtins.attrValues (args.binlinks or { }); - # build scripts - patchScripts = ./patch-scripts.sed; - makeBinContainers = ./make-bin-containers.sh; - } - '' - . "$makeBinContainers" - ${args.postFixup or ""} - '' // outputDrvs; + out = + runCommand "${name}" + { + inherit meta; + passthru = passthru // { + tlOutputName = "out"; + }; + # shebang interpreters + buildInputs = + let + outName = builtins.replaceStrings [ "-" ] [ "_" ] pname; + in + [ + texliveBinaries.core.${outName} or null + texliveBinaries.${pname} or null + texliveBinaries.core-big.${outName} or null + ] + ++ (args.extraBuildInputs or [ ]) + ++ [ + bash + perl + ] + ++ (lib.attrVals (args.scriptExts or [ ]) extToInput); + nativeBuildInputs = extraNativeBuildInputs; + # absolute scripts folder + scriptsFolder = lib.optionals (hasRunfiles && tex ? outPath) ( + map (f: tex.outPath + "/scripts/" + f) (lib.toList args.scriptsFolder or pname) + ); + # binaries info + inherit (args) binfiles; + binlinks = builtins.attrNames (args.binlinks or { }); + bintargets = builtins.attrValues (args.binlinks or { }); + # build scripts + patchScripts = ./patch-scripts.sed; + makeBinContainers = ./make-bin-containers.sh; + } + '' + . "$makeBinContainers" + ${args.postFixup or ""} + '' + // outputDrvs; # build man, info containers - man = removeAttrs - (runCommand "${name}-man" + man = + removeAttrs (runCommand "${name}-man" { inherit meta texdoc; - passthru = passthru // { tlOutputName = "man"; }; + passthru = passthru // { + tlOutputName = "man"; + }; } '' mkdir -p "$out"/share ln -s {"$texdoc"/doc,"$out"/share}/man - '') [ "out" ] // outputDrvs; + '' + ) [ "out" ] + // outputDrvs; - info = removeAttrs - (runCommand "${name}-info" + info = + removeAttrs (runCommand "${name}-info" { inherit meta texdoc; - passthru = passthru // { tlOutputName = "info"; }; + passthru = passthru // { + tlOutputName = "info"; + }; } '' mkdir -p "$out"/share ln -s {"$texdoc"/doc,"$out"/share}/info - '') [ "out" ] // outputDrvs; + '' + ) [ "out" ] + // outputDrvs; }; in -if outputs == [ ] then removeAttrs fakeTeX [ "outputSpecified" ] else -runCommand name - { - __structuredAttrs = true; - inherit meta outputDrvs outputs; - passthru = removeAttrs passthru [ "outputSpecified" ]; +if outputs == [ ] then + removeAttrs fakeTeX [ "outputSpecified" ] +else + runCommand name + { + __structuredAttrs = true; + inherit meta outputDrvs outputs; + passthru = removeAttrs passthru [ "outputSpecified" ]; - # force output name in case "out" is missing - nativeBuildInputs = lib.optional (! hasBinfiles) - (writeShellScript "force-output.sh" '' - export out="''${${builtins.head outputs}-}" - ''); - } - '' - for outputName in ''${!outputs[@]} ; do - ln -s "''${outputDrvs[$outputName]}" "''${outputs[$outputName]}" - done - '' // outputDrvs + # force output name in case "out" is missing + nativeBuildInputs = lib.optional (!hasBinfiles) ( + writeShellScript "force-output.sh" '' + export out="''${${builtins.head outputs}-}" + '' + ); + } + '' + for outputName in ''${!outputs[@]} ; do + ln -s "''${outputDrvs[$outputName]}" "''${outputs[$outputName]}" + done + '' + // outputDrvs diff --git a/pkgs/by-name/te/texlive/combine-wrapper.nix b/pkgs/by-name/te/texlive/combine-wrapper.nix index 165e7a2..8401de2 100644 --- a/pkgs/by-name/te/texlive/combine-wrapper.nix +++ b/pkgs/by-name/te/texlive/combine-wrapper.nix @@ -1,35 +1,71 @@ # legacy texlive.combine wrapper -{ lib, toTLPkgList, toTLPkgSets, buildTeXEnv }: +{ + lib, + toTLPkgList, + toTLPkgSets, + buildTeXEnv, +}: args@{ - pkgFilter ? (pkg: pkg.tlType == "run" || pkg.tlType == "bin" || pkg.pname == "core" - || pkg.hasManpages or false) -, extraName ? "combined" -, extraVersion ? "" -, ... + 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" ]; + 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 []); - }); + 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}; }; + 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 diff --git a/pkgs/by-name/te/texlive/default.nix b/pkgs/by-name/te/texlive/default.nix index e84f89c..ca0aea8 100644 --- a/pkgs/by-name/te/texlive/default.nix +++ b/pkgs/by-name/te/texlive/default.nix @@ -1,26 +1,58 @@ -/* TeX Live user docs +/* + TeX Live user docs - source: ../../../../../doc/languages-frameworks/texlive.xml - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive */ -{ lib -#, stdenv -, gcc12Stdenv -, fetchurl, runCommand, writeShellScript, writeText, buildEnv -, callPackage, ghostscript_headless, harfbuzz -, makeWrapper, installShellFiles -, python3, ruby, perl, tk, jdk, bash, snobol4 -, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnupg, gnused, gzip, html-tidy, ncurses, zip -, libfaketime, asymptote, biber-ms, makeFontsConf -, useFixedHashes ? true -, recurseIntoAttrs +{ + lib, + #, stdenv + gcc12Stdenv, + fetchurl, + runCommand, + writeShellScript, + writeText, + buildEnv, + callPackage, + ghostscript_headless, + harfbuzz, + makeWrapper, + installShellFiles, + python3, + ruby, + perl, + tk, + jdk, + bash, + snobol4, + coreutils, + findutils, + gawk, + getopt, + gnugrep, + gnumake, + gnupg, + gnused, + gzip, + html-tidy, + ncurses, + zip, + libfaketime, + asymptote, + biber-ms, + makeFontsConf, + useFixedHashes ? true, + recurseIntoAttrs, }: -let stdenv = gcc12Stdenv; in +let + stdenv = gcc12Stdenv; +in let # various binaries (compiled) bin = callPackage ./bin.nix { ghostscript = ghostscript_headless; harfbuzz = harfbuzz.override { - withIcu = true; withGraphite2 = true; + withIcu = true; + withGraphite2 = true; }; inherit useFixedHashes; tlpdb = overriddenTlpdb; @@ -31,15 +63,37 @@ let tlpdbVersion = tlpdb."00texlive.config"; # the set of TeX Live packages, collections, and schemes; using upstream naming - overriddenTlpdb = let - overrides = import ./tlpdb-overrides.nix { - inherit - stdenv lib bin tlpdb tlpdbxz tl - installShellFiles - coreutils findutils gawk getopt ghostscript_headless gnugrep - gnumake gnupg gnused gzip html-tidy ncurses perl python3 ruby zip; - }; - in overrides tlpdb; + overriddenTlpdb = + let + overrides = import ./tlpdb-overrides.nix { + inherit + stdenv + lib + bin + tlpdb + tlpdbxz + tl + installShellFiles + coreutils + findutils + gawk + getopt + ghostscript_headless + gnugrep + gnumake + gnupg + gnused + gzip + html-tidy + ncurses + perl + python3 + ruby + zip + ; + }; + in + overrides tlpdb; version = { # day of the snapshot being taken @@ -57,100 +111,179 @@ let # need to be used instead. Ideally, for the release branches of NixOS we # should be switching to the tlnet-final versions # (https://tug.org/historic/). - mirrors = with version; lib.optionals final [ - # tlnet-final snapshot; used when texlive.tlpdb is frozen - # the TeX Live yearly freeze typically happens in mid-March - "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${toString texliveYear}/tlnet-final" - "ftp://tug.org/texlive/historic/${toString texliveYear}/tlnet-final" - ] ++ [ - # CTAN mirrors - "https://mirror.ctan.org/systems/texlive/tlnet" - # daily snapshots hosted by one of the texlive release managers; - # used for packages that in the meanwhile have been updated or removed from CTAN - # and for packages that have not reached yet the historic mirrors - # please note that this server is not meant for large scale deployment - # https://tug.org/pipermail/tex-live/2019-November/044456.html - # https://texlive.info/ MUST appear last (see tlpdbxz) - "https://texlive.info/tlnet-archive/${year}/${month}/${day}/tlnet" - ]; + mirrors = + with version; + lib.optionals final [ + # tlnet-final snapshot; used when texlive.tlpdb is frozen + # the TeX Live yearly freeze typically happens in mid-March + "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${toString texliveYear}/tlnet-final" + "ftp://tug.org/texlive/historic/${toString texliveYear}/tlnet-final" + ] + ++ [ + # CTAN mirrors + "https://mirror.ctan.org/systems/texlive/tlnet" + # daily snapshots hosted by one of the texlive release managers; + # used for packages that in the meanwhile have been updated or removed from CTAN + # and for packages that have not reached yet the historic mirrors + # please note that this server is not meant for large scale deployment + # https://tug.org/pipermail/tex-live/2019-November/044456.html + # https://texlive.info/ MUST appear last (see tlpdbxz) + "https://texlive.info/tlnet-archive/${year}/${month}/${day}/tlnet" + ]; tlpdbxz = fetchurl { - urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz") - # use last mirror for daily snapshots as texlive.tlpdb.xz changes every day - # TODO make this less hacky - (if version.final then mirrors else [ (lib.last mirrors) ]); + urls = + map (up: "${up}/tlpkg/texlive.tlpdb.xz") + # use last mirror for daily snapshots as texlive.tlpdb.xz changes every day + # TODO make this less hacky + (if version.final then mirrors else [ (lib.last mirrors) ]); hash = "sha256-w+04GBFDk/P/XvW7T9PotGD0nQslMkV9codca2urNK4="; }; - tlpdbNix = runCommand "tlpdb.nix" { - inherit tlpdbxz; - tl2nix = ./tl2nix.sed; - } - '' - xzcat "$tlpdbxz" | sed -rn -f "$tl2nix" | uniq > "$out" - ''; + tlpdbNix = + runCommand "tlpdb.nix" + { + inherit tlpdbxz; + tl2nix = ./tl2nix.sed; + } + '' + xzcat "$tlpdbxz" | sed -rn -f "$tl2nix" | uniq > "$out" + ''; # map: name -> fixed-output hash fixedHashes = lib.optionalAttrs useFixedHashes (import ./fixed-hashes.nix); buildTeXLivePackage = import ./build-texlive-package.nix { - inherit lib fetchurl runCommand writeShellScript bash jdk perl python3 ruby snobol4 tk; + inherit + lib + fetchurl + runCommand + writeShellScript + bash + jdk + perl + python3 + ruby + snobol4 + tk + ; texliveBinaries = bin; }; - tl = lib.mapAttrs (pname: { revision, extraRevision ? "", ... }@args: - buildTeXLivePackage (args + tl = lib.mapAttrs ( + pname: + { + revision, + extraRevision ? "", + ... + }@args: + buildTeXLivePackage ( + args # NOTE: the fixed naming scheme must match generate-fixed-hashes.nix - // { inherit mirrors pname; fixedHashes = fixedHashes."${pname}-${toString revision}${extraRevision}" or { }; } - // lib.optionalAttrs (args ? deps) { deps = map (n: tl.${n}) (args.deps or [ ]); }) + // { + inherit mirrors pname; + fixedHashes = fixedHashes."${pname}-${toString revision}${extraRevision}" or { }; + } + // lib.optionalAttrs (args ? deps) { deps = map (n: tl.${n}) (args.deps or [ ]); } + ) ) 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; + 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 + 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"; }; + 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"; }; + 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}; }; + 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 + 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); + 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; }; + combine = import ./combine-wrapper.nix { + inherit + buildTeXEnv + lib + toTLPkgList + toTLPkgSets + ; + }; - assertions = with lib; - 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"; + assertions = + with lib; + 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"; # Pre-defined evironment packages for TeX Live schemes, # to make nix-env usage more comfortable and build selected on Hydra. @@ -158,78 +291,329 @@ let # 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 gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ]; - scheme-bookpub = [ artistic2 asl20 bsd3 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus knuth lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain ]; - scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 - lppl1 lppl13c mit ofl publicDomain x11 ]; - scheme-full = [ artistic1-cl8 artistic2 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-20 cc-by-30 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 gpl2Only gpl2Plus gpl3Only 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 gpl2Only - gpl2Plus gpl3Only gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ]; - scheme-infraonly = [ 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 gpl2Only gpl2Plus gpl3Only gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl - publicDomain x11 ]; - scheme-minimal = [ free gpl1Only gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ]; - scheme-small = [ asl20 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only gpl2Only gpl2Plus gpl3Only gpl3Plus knuth - lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ]; - scheme-tetex = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-30 cc-by-40 cc-by-sa-10 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gpl1Only - gpl2Only gpl2Plus gpl3Only gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ]; + scheme-basic = [ + free + gfl + gpl1Only + gpl2Only + gpl2Plus + knuth + lgpl21 + lppl1 + lppl13c + mit + ofl + publicDomain + ]; + scheme-bookpub = [ + artistic2 + asl20 + bsd3 + fdl13Only + free + gfl + gpl1Only + gpl2Only + gpl2Plus + knuth + lgpl21 + lppl1 + lppl12 + lppl13a + lppl13c + mit + ofl + publicDomain + ]; + scheme-context = [ + bsd2 + bsd3 + cc-by-sa-40 + free + gfl + gfsl + gpl1Only + gpl2Only + gpl2Plus + gpl3Only + gpl3Plus + knuth + lgpl2 + lgpl21 + lppl1 + lppl13c + mit + ofl + publicDomain + x11 + ]; + scheme-full = [ + artistic1-cl8 + artistic2 + asl20 + bsd2 + bsd3 + bsdOriginal + cc-by-10 + cc-by-20 + cc-by-30 + 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 + gpl2Only + gpl2Plus + gpl3Only + 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 + gpl2Only + gpl2Plus + gpl3Only + gpl3Plus + knuth + lgpl2 + lgpl21 + lppl1 + lppl12 + lppl13a + lppl13c + mit + ofl + publicDomain + x11 + ]; + scheme-infraonly = [ + 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 + gpl2Only + gpl2Plus + gpl3Only + gpl3Plus + isc + knuth + lgpl2 + lgpl21 + lgpl3 + lppl1 + lppl12 + lppl13a + lppl13c + mit + ofl + publicDomain + x11 + ]; + scheme-minimal = [ + free + gpl1Only + gpl2Plus + knuth + lgpl21 + lppl1 + lppl13c + mit + ofl + publicDomain + ]; + scheme-small = [ + asl20 + cc-by-40 + cc-by-sa-40 + cc0 + fdl13Only + free + gfl + gpl1Only + gpl2Only + gpl2Plus + gpl3Only + gpl3Plus + knuth + lgpl2 + lgpl21 + lppl1 + lppl12 + lppl13a + lppl13c + mit + ofl + publicDomain + x11 + ]; + scheme-tetex = [ + artistic1-cl8 + asl20 + bsd2 + bsd3 + cc-by-30 + cc-by-40 + cc-by-sa-10 + cc-by-sa-20 + cc-by-sa-30 + cc-by-sa-40 + cc0 + fdl13Only + free + gfl + gpl1Only + gpl2Only + gpl2Plus + gpl3Only + 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 ]; + maintainers = with lib.maintainers; [ veprbl ]; license = licenses.scheme-infraonly; }; combined = recurseIntoAttrs ( - lib.genAttrs [ "scheme-basic" "scheme-bookpub" "scheme-context" "scheme-full" "scheme-gust" "scheme-infraonly" - "scheme-medium" "scheme-minimal" "scheme-small" "scheme-tetex" ] - (pname: + lib.genAttrs + [ + "scheme-basic" + "scheme-bookpub" + "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}; - }; - } + }).overrideAttrs + { + meta = meta // { + description = "TeX Live environment for ${pname}"; + license = licenses.${pname}; + }; + } ) ); - schemes = lib.listToAttrs (map (s: { - name = "texlive" + s; - value = lib.addMetaAttrs { license = licenses.${"scheme-" + (lib.toLower s)}; } (buildTeXEnv { requiredTeXPackages = ps: [ ps.${"scheme-" + (lib.toLower s)} ]; }); - }) [ "Basic" "BookPub" "ConTeXt" "Full" "GUST" "InfraOnly" "Medium" "Minimal" "Small" "TeTeX" ]); + schemes = lib.listToAttrs ( + map + (s: { + name = "texlive" + s; + value = lib.addMetaAttrs { license = licenses.${"scheme-" + (lib.toLower s)}; } (buildTeXEnv { + requiredTeXPackages = ps: [ ps.${"scheme-" + (lib.toLower s)} ]; + }); + }) + [ + "Basic" + "BookPub" + "ConTeXt" + "Full" + "GUST" + "InfraOnly" + "Medium" + "Minimal" + "Small" + "TeTeX" + ] + ); in - allPkgLists // { - pkgs = tl; +allPkgLists +// { + pkgs = tl; - tlpdb = { - # nested in an attribute set to prevent them from appearing in search - nix = tlpdbNix; - xz = tlpdbxz; - }; + tlpdb = { + # nested in an attribute set to prevent them from appearing in search + nix = tlpdbNix; + xz = tlpdbxz; + }; - bin = assert assertions; bin // { + bin = + assert assertions; + bin + // { # for backward compatibility latexindent = tl.latexindent; }; - combine = assert assertions; combine; + combine = + assert assertions; + combine; - combined = assert assertions; combined; + combined = + assert assertions; + combined; - inherit schemes; + inherit schemes; - # convenience alias - withPackages = (buildTeXEnv { }).withPackages; - } + # convenience alias + withPackages = (buildTeXEnv { }).withPackages; +} diff --git a/pkgs/by-name/te/texlive/fixed-hashes.nix b/pkgs/by-name/te/texlive/fixed-hashes.nix index 33f4bf9..81c2964 100644 --- a/pkgs/by-name/te/texlive/fixed-hashes.nix +++ b/pkgs/by-name/te/texlive/fixed-hashes.nix @@ -1,4395 +1,19033 @@ { -"12many-15878"={run="1lh034gihn9gmpzf5sz9anrxqlb7qifaasa98dira5vccizs4axd";doc="10f5f3xf2bmrf794ipj5xjsv73j7gqmhgg2fjrdmmsvqij7ljjk4";source="01nldk50shy8ynkcjz0176rzkrjhxssi7x37bd7x1gbw6pd32m3a";}; -"2up-55076"={run="1phamhfskhhyg5s3ab00mv3wsz3wg18j1dskq3x1mpkc5ys9a022";doc="0ijr2gsi7ywp72ydpyj0cyxwv06vc612cpm1inkx8rhnn6hjxbw6";}; -a0poster-54071={run="026ia95qflhgfbd9c32yagm1f08lnr9iyh1l2sd2b0hf5z27z4g8";doc="029mw747qln0xcnwalw2mw8iz5zzarv9qghcwsx9jzhqijmcspg5";}; -a2ping-52964={run="1h9i49m7v83ppifkcr4cncjfkrpx0hs8b11qyjn9s9y4mi8ra0w0";doc="0yxs2va1v4s6picfqkq2k9l7295np46lc35yx1dcmddy2667k3kl";}; -a4wide-20943={run="0jw1d021vrr4f2sv94mw1jk7ma72m84idmq62imwqy23x8nfccy1";doc="03g0vwfdcczgkpbrri3wfhfbrq6r6iljpz5j9rllr2z5svlrjf4d";}; -a5comb-17020={run="00801lhrnv2qkg6ly949csp4ign89cpsbd70fcyb7r7zkd8lxczi";doc="0bz9x4297mpvv082d0qjfvynflrcgj6rn9jikwikpvq8wlhz0fph";}; -aaai-named-52470={run="1xs2iki0v1mh0kbqjxnv9r24bcfmgj6myfw7h368h8g0s1n8d5v6";}; -aalok-61719={run="0mvfl7llr57ykdv81y4c4h0fflig2msvxka08axsjwp91yn8dpmp";doc="1sz26qrydb5dl3z0g3p824f6yzs473p2a50q1kpk4zqgh4ghwigk";source="1crpql5mypbyycxzkckfy4nwn7shq1dkzlbn44lhnj7jyi4qkg3p";}; -aastex-58057={run="0w077r2lsir646ix8n40wy5vy0lnw8vdlw1nmc6fvw2hmrf3w4vi";doc="1rdpiv6rlcbd06flc3rk7a1y3xi899h53r6binbjd0krvrss48s3";}; -abbr-15878={run="1irhcs2zkam6sdl92wk07v5ckg56r6n10hgcjn5im2jpsinsad5k";doc="1z45fraywqqnc0v28jxk3bzv9cndwgs7nmlgbf3b8frr4x18mza6";}; -abc-41157={run="0fxnxavk76gayahflpa8f61j63x9y6aym7gqnmn6xfgggyab4qmd";doc="0ipxihm9jkb5dvlrk217275p7r6amnkbh352k07s7k7i7rjg9pmd";source="0461ci1zg2wq3f9qypwkxmyi0rciv8p2zk9rcajs0591fwz3drj5";}; -abnt-55471={run="0zw8vdmqcb5qddc0rf8qd67fwprwjagzy8s9ildgisb7arqmbj5w";doc="00m174q9gxsm23j3fla7m7lj5fbr7iqfw02dz9s6481nfsjh1wgy";}; -abntex2-49248={run="1q7r2j7c5p1f0gbrc3sjd5gjq2mhljf1nj5n5760snhwj3qblr66";doc="1id5yj5kh0qgjywbiajaf5hf9ix9jq8178fv2kvp1yslra7r20s2";}; -abntexto-68837={run="1yzmq0rkpmg946zpbcmphn70fpjv8a6n29n66q4x164ay3im089w";doc="03n3b9mk9nyxplaj8vhb43i9fnxvcqr4q30jfbgax50qji7lghdy";}; -aboensis-62977={run="171586kjnfg1qb4wi50mrc9jd8h2ybg6r68kwyhgc5y0gyhyg08c";doc="0qc74wvq6ibxgil36wp0b5s66d7m7axbn0y1qpzy9hyrh8v8jpav";}; -abraces-64967={run="0s1aclk85fcda4nf4i8pl3gvr65vghgcmphpwyi8n7im7kia25y2";doc="0h7nyss6gy8r79ny9klpskbh6bf10rp5f67p1x5wklvpmyaz270i";}; -abspos-64465={run="0qzx59dz7x8pn9jr8g15jsmf4hs27v8qc30phi1g5h39i9c6pmg6";doc="1a3li91yvvw2r62dvp87zzzxni3xllrzp38zg6qxfsn6xbwry9zf";source="10dx92msh53z7sn603vsg740wvbhz8hr6bcn1sjs60snl47f4yf5";}; -abstract-15878={run="173bimxd0923191xfjjk7x29j8xs5kxy7ih55l1k6dbj0iwlb9g7";doc="166lhh2vi36qbhc5gm3xx96sigksslzb17bpzncycf0zgkh7j0gi";source="14f2s393nd8q5kb909rj8r15apf48rg6na8yc45z2hl9ksfwx172";}; -abstyles-15878={run="0v4wwf9w542scqx298gcvvngl0ncal0wds5m8h96x9cz7p9wjlph";doc="0zxygi2wfrwlgv9dj69m3v5ily0av65f3qiy9vfpbjlradak48yy";}; -academicons-62622={run="1x8aahfd4ai0a9wgqz1wrj4casmda07xryci0gnmyspha5r8x151";doc="1a3vlc8cxh35vka08q8qz1hc1l2hfk4lkmkrdlnd040im2h6v3wk";}; -accanthis-64844={run="05194iwavl83dqivxahrsb4a952knr7ih0rbzd4d34a6qqf20w62";doc="0jibkv1gv94xzciidm5h7hrslj8qfikjihw3rfzzk6n42a6xbp5a";}; -accents-51497={run="1xl7fkm5gc36mm0bhx7rm9v4g2d9j22gr5fjxjbzmr6byjfgw71k";doc="0il1ccxa2ndnfxn2caz9d4mv39y21rh360lynra7q2v5j1cyqrw5";}; -accessibility-55777={run="0d7xrsdanx7wnnmc983rfy00r4290rigwx5ils6pfm0br2g5kfsr";doc="17gxz1lm39wh2a235wk0s03jc7jxd4bl0iqj04v02m994gz43y3x";source="14av24zcjqxq8v92yni6aj66cblnfzb1f07hbcd3ljbycw14ii44";}; -accfonts-18835={run="10z7c7cgwm62dyzxfnj0jiy328zj3wccqjick37lz641vqifrd4v";doc="17mbr2ydbkc4md6zd34km3d4s2vjmqzfwb2l01n4y30vjz2lzsn1";}; -accsupp-53052={run="156yax2q84naj394xzr8m7hfyl1j7pziw8d6rzkrjjgxs9p9az1j";doc="1ak7xv0hhghgbwmcviirhh1x5y9pb4is8h0a32kdd4hdxjdm7c92";source="0spz8640bdzmirlnc3rwynzvgy5fi58vfs802jzbqxb0ypdg14s7";}; -achemso-69638={run="16si3krcn64nz383y2cpv77fka9xlc5bb568inr3xi0sckwnvd6f";doc="1n7kznrriac60pn7wnlnpm82fxj07gbnrxf7zfv4f8b9vj2x706v";source="1h07bjmbnkk0sr60qd5ml6j78g5hbzvw0pwin2npsd2fxx8q8hfa";}; -acmart-69721={run="1b47751cahm4cphlxa0vnvax69zrxcj1c5i8bmx61s183l7gvw18";doc="0757g2yzqikgfb997m8wd0w9rcqaar872qi7gz3j3sp0dayg6c3w";source="09ly6vm7kjqqqqqk00n843h6pns8bv57za7g95yz0x9s4jqdk774";}; -acmconf-15878={run="17l1kcwv6wk5p752lmanlx0bmh2py4hfxranapgbdrhjpis4jm9i";doc="1vyhkwqg0v3pxjnlwzwnmiffh6b3d9nrwnpaqjm24j9d2sc6cxcx";source="1n8cf6n2fdb88xmnj2m5r3cjz3jlp9n7bn1yr717fsp2ks81pr3f";}; -acro-62925={run="1hzavaicandq6sqz3sy8hj5n3kvkbic34p8id2mslizcw3rmlhhz";doc="05iwf21y45l61fsask04pphxzzjn7h1al8n2wv59jkxyh8vy8dbv";}; -acronym-54758={run="1gq7j83gjzlfbnrnz1cl0lihpdalsn6ww6hqxdfxikm28vynk88g";doc="0zscjwg22s81awq27lhqs14davwbhf5y4zsl9dsq2135rppmmyvv";source="16dds23mj3ha1b64fxz2dnxk7wsrcmhpmpz0zgqda46vaab9qiw9";}; -acroterm-61719={run="0snnpamdf0qqqf3nabl2f4pnabpjxjn949s44lb8wb4lifndyj8d";doc="1ybgfy3x0a3dz5p2gac2w4ai2yc84i28vi6x0bq61ff3v74iqdhc";source="1gja9j0a0v22qqdqy5f3ivrwablrz550gp7nf20054cirjzgr6f2";}; -active-conf-15878={run="1chi30gbr7xjcs7y3p2y8vfg6hany4wbacdm4drha9pa9m5sxqgw";doc="1css89hbdg8zgl7zf2x7vfgbl90x7bjvf0c0m0akjk8fzx936g7k";source="0anxqifjlf96z4vvr031v26s73d1a1sgjp8xv9xxv0kia4l7048n";}; -actuarialangle-67201={run="1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd";doc="0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1";source="169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7";}; -actuarialsymbol-67201={run="0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r";doc="1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172";source="02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2";}; -addfont-58559={run="05a413mb0ksviwbl0y1a14j8y3np5ra5sgjcnbrslrvavf4q2spw";doc="069vk1d1ig38r6a5a87fblq4m429crp79xqccrsk48ixswxafj95";}; -addliga-50912={run="1w9wv0wbv8acc7qvcc5pb5kjxmy2nz95cb990mmgc2lxvvsaw2rl";doc="0q41i3cd16ahpklr1ddmzmfs741x5k30vaz7gz7k8jrf0579nv7w";}; -addlines-49326={run="1rkcpk1c8in0g6dgyc1m6pyz01jbx19gv98jmaiybxgvsa3z11jc";doc="1gaf9ljzkdhwjg460hl79hlwdwi0mrvgs51si8k8gvialng8b1fv";source="1m3l2s1l671n9j7jdsxfljjhrsvh81bayw40v81dm0f68g5hslnf";}; -addtoluatexpath-67821={run="1wzryl229yq1irxpj58qn32l5adhp9sc132y6m46ps283qq6wrin";doc="0xw2bvqdcr761b1i3gh5gg8gfj67sx539hv8jpcdf2scln8zx9bl";}; -adfathesis-26048={run="0j60iq9nzk5kbs12dqx5jk84n14kdlx93mcypwi9b2gn7kyqzn5i";doc="0c6k4xsy0jg95qg45bqk9527kb3k3azyxwpl2zrkw0ld6k47sswz";source="17irbcz9wjnc6rj9f736i2hw4qrjwa1gz5z6w7gvq26b68pkxrw4";}; -adforn-54512={run="1cb6w50xb9wkl6x384dhldrhpjbk5l73x5gzpbm8za4gmh1pc94v";doc="0a1f1rrii1zvd58h2slk2zj032vjqpi480d38rgi2k2j9wlbbyyg";}; -adfsymbols-54512={run="19rr3zdgqlmnrvd61g9bjiqiyn2gpn82fhj4219gqb1l06nqa0ka";doc="059fjvdmd1jgr1flv5181ac3wvby93hyykfshcmr1j06zs8j9kyx";}; -adhocfilelist-29349={run="08fnrvnbrp7534b56hn8w0nm8pbgjli62v34mkalp4qkfb559kh7";doc="1n7nah8vr691k56z0jkgyav4lc8w45rlg8k9shhqhnnpqi8zxv1m";source="1xl0f33yhmbsrnmy9pby092js83vxcdaq2gfny08pjlq57arphr4";}; -adigraph-70427={run="19wzsa84y7a5jbgbyj69frfqd0ahi9ha7sszppsr5bmh88gbnfby";doc="0rr6sbb34d9nd1ni86s5mll5bjx0hinwm52gqiqrwqwkr068djcn";}; -adjmulticol-63320={run="0wjqjg46gbf44f2x0xf58b3f9bxfkrh21m85mh1xsd5pxdy116fl";doc="01r00mf8skd54xgzqjicl4djjzgnf5fdw5hcbf9p5ixx1zw1jq7l";source="1zyq1r0y3amkqch1lif0dygif0sgwhypscqdsqml6ik2ziv2alzi";}; -adjustbox-64967={run="03fqxxhpc41zkj8g7dwd4p3vs9c0qg95c6bdwwgvn3xkaqn6amjm";doc="11mldsmmp1mcd5kya8bh2zmkgl01ysswcia1lips3vjfiqjp8vp8";source="0qzjxslq3bni6iancxix471sl6455syp1pglnn7xa5lxlfl43ccs";}; -adobemapping-66552={run="1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98";}; -adrconv-46817={run="1wx9a00jky9v8xmjhrjlhbl3kcdxh1n9yybpsr74g2vw4bwdyr70";doc="1ny594a3dvx3jba0lf72kjny60ix6hnnw8gj479ccfj3gw2wv0mp";source="1cndbrbw5hss1qi7z9mgymqrcmvlhj8hxw16qjjzch85xw1nrwzg";}; -adtrees-51618={run="1j38apxxk3klabxrm9kpdf6zbmiqb17is5yqgg1a4576n8paqg4y";doc="1851rqb9gs1wf8wl8f7pqbnxgpikzxzw1n5mg5w0kcwd889g17yc";}; -advdate-20538={run="0wgr84y3k10g6622sm11c4m4wxj73vpklf5i5gnp14yamwi19cn8";doc="0hyq7kn10ajqabmz2r363wfpdi71a9zkv6yr30s9lda0vy5vz4k8";}; -advice-69283={run="0p76w2fj14908vfajmsjjv4kh7d77vyd7x24zylgil07p2s1i86d";doc="13hngcgkihzmam4fc4clkb49a4mzy0ip6vxx06b4gykzq8pdvkkh";source="06bfcx1pv400zk5lyz9i8pg4i8kax370jby6s9p10p91wym2p67d";}; -ae-15878={run="1nbhlv1qp7z8j9bhfrljmpjlcrl346z1r7f4hdxijdql0wxs6a8z";doc="1qgq32xw5micjri99zmznmq8gsli6y9fqdi2l7sv530ri9i7kgxk";source="1ljkgb4qj0wa6yxddx4w8w15z0nw5vnyh0cpzc4vwkc0m03xbrm4";}; -aeguill-15878={run="1klri7b3isxwa9lpc2j857y8r9n9x1av865jm93ha6nrwlzqk7a3";doc="09lcp9in9v7vxck9kaql008qmcvba3g8glbm6rr5iag7nn2vbvj6";}; -aesupp-58253={run="10yd16v85zbkzkxb17gr4kf4li28ims33i1zrkpygbdf10nclxcm";doc="1dydcjdz57kn3gwb3pfm4yp6hr69pyqhy5lhm9pnlcrycvqsn8qr";source="1s41gd7ansh80z6mmwwha7pypaxwxxvrz3sdfj24pa5b2agprq68";}; -affilauthor-68996={run="0xrnjg386xpa34l3n26myqkx2cjk06hmj4wnm2yz29kyj4n8fjsh";doc="1d0fss9fniwwn1d8cmvwyjj6fvl5s9jvmgclh6da7pywdw5xgi3q";}; -afm2pl-66186={run="1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck";doc="0akl6by43kha3rr9dwnr3hhnnfqg4lqnxv5pqf64cnp17ih47wx0";}; -afparticle-35900={run="0516hjm1v88vk70ggagkj0s00n465y08fr2ys3f2gychrax425a5";doc="1ajpc55z02q8wgriwzzm4f96dmn5bpi9n81zad6kay7c7vwfa9g5";source="03cx2ak956rdwdd5ya49fh81vdwrzq9y813r1h8qcp618sr3h14n";}; -afthesis-15878={run="16jyz1skb9l78dwphggq23jm14zwhycmkx3kn0sm13dcfifrkxpd";doc="091f4flclyahjlxwa640l7vmrfiyb4wqgkh19caq8fld96zkbjir";}; -aguplus-17156={run="0z7mgsm9pa33gykhwzlmpa3shg7ragrz3jdp8qfakp5ck2mbjysh";doc="1105vsng0yramk84pfcg9pvzjbm3cbyp84m6sxr9wadw02z5kj8j";}; -aiaa-15878={run="1z91l7lhi5pnh2ignmskd24asaalhyhdywkl9j6a7dp6cplswhy5";doc="1sz6inilvyaqhnj1z88rws7xwkhhpw35il4ppxw9kn9pwvnrn0vf";source="1lsbfp2zvhpyf1vb1ia9hdz1i796dbfqpndcfy8lay48f89n3njg";}; -aichej-15878={run="1pr92pq3yjsrbax6ah01cqg7131fp2rkqqjnxwcrm4119z2ic0gf";}; -ajl-34016={run="1xkrvy06lw4ngj94zybs14ysal2pg7g71h864gq9bjw0zwq2yjzs";}; -akktex-26055={run="1npcfjjg9nwrb392g8pa4yq6i76aq4ys67zil4qgkf4jyzrixln9";doc="10ma4ic5bazlmizxvwks6w3qqxbbir0rrhzj1yw2j68p0600nmvn";}; -akletter-15878={run="0gigzlxkqmiqz4nwpxj98rcrxmi6yfipf5bifg1mywchnw7a1f2h";doc="0ngj7d4vdnvh99inw2vggqdgx6h2hv5z77glxjcpx8kmxf8h47sv";}; -akshar-56277={run="0g1pbihbpl3b7k7c19qiq7lcgx3zrfn15065dyan85bs8h85c2cw";doc="11a18b7a592sx3wha1lpy659hgh1wnka16zf8m0cbc99f867xfln";source="0g8j0015dm3mhphg06ma9dkgc28ywlihr6pcbi254qaxgk7kdn9g";}; -albatross-69879={run="1qmhrbw7vq1gwd0xg50v384r3bkic4xy32i7sqv1lwrs4fw8aj8x";doc="10wamhwcfh0smmw6q8yf0fh6xms52ckrd45axb56dc4jchdhnpdy";source="11winakpjawrifjxkyfsxa9i1d0k0h4jcchnp61isvl7hy2n2fw5";}; -alchemist-66924={run="14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr";doc="0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1";}; -alegreya-64384={run="06hrvi0dssva2r253k9ma1vd6ij3bi2d0wsrk2n6fnxvxbl5xc02";doc="04wx39xdvhq0rfl4mz8k70kfv74w6kpyhja5879g0hp3pjfzxbcl";}; -aleph-66203={doc="0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb";}; -alertmessage-38055={run="1mj3wiz4fff3ry5q4dk3k0kcx4bcqfwdvgaa9x3vczs746q57dcg";doc="1ga46r20zyb1bq7pvhq4348d2prdshy5m3yx6d00v5zzis1dmx1r";source="0n36cfjgh1byik8zn997lmyz2w4wmz48f5bzqrhcps7bg3kmp4zz";}; -alfaslabone-57452={run="11va28ww6qk97wx8fh0iqbm8b5s14vf923ydpglx4gann4w9bkiz";doc="0wfhd5pi1p5xnkq8lgpp3fhqn8y76h5jp3h5qhlaqygal70fw9kw";}; -alg-15878={run="0lrzrij15s989hy2j9wi1fzkpzvqjfhmgj6ryry0gy7nk3azhhrq";doc="1lgi63jx57arpz688i22razcrzarl96id8xf45vznh8iraba3sja";source="0mjrh4mnx8q9x40vr4csj3h3w7wh3hs8hidbklym29d0scd5rkx6";}; -algobox-67201={run="0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d";doc="1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01";source="13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5";}; -algolrevived-56864={run="0qsxy2az8d0sr07mz7yxca17gl1y3kaqmvlckjdckvwq1idh7h0v";doc="10m3rgczhnkalf2f945jwrpwvv9szxh3v4wggl1rdxj12ng0svlq";}; -algorithm2e-44846={run="1iw3yhdk9nk1y41hw1qcpqiqaxadjc0nf6cgb23kd75ah2cpd53n";doc="19xsi1dgxfi06wxls70pvnys20i2na2y7m2hq8y6v947pc5kbb1b";}; -algorithmicx-15878={run="111iyi2j8qnzha97r1grxpcbnfkpvcwndczx043c4gw5wqmrknbj";doc="1rb46zi4islfbykhr68rnrkj4q966papin0c5m752gh6kzx5r57p";}; -algorithms-42428={run="1va2ic75nf0dfh0dr576lpgqhzqv5203frr37079q648871zqav5";doc="0fqif0nb9ypd4sw2i9qsxl81h3g4h0gm0yqq67d5n9wrpic8dnjg";source="14jgc7vnww5xhnd76cwix5c599sfdjil2i916cfpmsd5yn5qqdx3";}; -algpseudocodex-66924={run="0mpnwm97q1i40phy61wiisf4pn71hn0hwc0x0gscn0jalvfx9g5l";doc="112p7zg5rdf0y7iqs74xwblfwxfflg22nb87bdgkbizmsmy2gg2f";}; -algxpar-67495={run="16pbjpr8nnm4s2fz2sdnrlx7mn3bnzhwrijk721gzx81qbq27cw3";doc="0l69rr17b7njp3ywf5xcrnxvixmkswgaydj2bwrvkrazam1gnkdk";}; -aligned-overset-47290={run="04gjl08y9wbv5qls9z2plxx5n4abi4nzd8qik88via4xghhqiy7i";doc="0il97kycqgqqimqjvjhnhc2mxy2nja20vlspsqrl9zaah71p1b3d";source="0zbaa3m06kfkj7kkv6iy71d20n0kqq1dwy63dwfj4l49wv427z08";}; -alkalami-44497={run="1llldpmc485zxlw1k996g3gfffb0ixx72afz3zkj83i78dpx180j";doc="1315idl4yricb06bh689hhdf9jkc0ckmdygacsx3ywzxj1zcrcch";}; -allrunes-42221={run="0xgh3y7h57lkzxrhddn5wll339b4zih4nb6a36ymx38a6md7b8ph";doc="0dki14g1607a432549kly1wcy1p6j63lrxfd3m5nyz868kg3hjmc";source="1d49w7lybkn7sfig7i27mfwaccr9vjs7ab2ds27jmhp5wjl7w02w";}; -almendra-64539={run="1zij84q0ml0zf0dig3hqlmznwygcp8vbmwl3xc5qii7hs94hnjr5";doc="19j6vi1z04j2zbab39934mflx5qnqdjl4gz9n8hbjwlhiq0wb82y";}; -almfixed-35065={run="0qrai75pdkf4py7nhggvwzaarv4jlh04dqsy1b593jabq7ngaap1";doc="0arhvv7z8yf8kcikzybhbsgsj6m9zy4is5ryr6hcf6a6incnkp1d";}; -alnumsec-15878={run="08i891g4b3k1qqicbsgd3h3sy98cpk6g1cfn17g9ysws8k20a0sy";doc="0fanq66cm0r2dgpdrblrhqkchxpy2dxykq1g8zrk5ddx27v6r9pd";source="1ssw0pi7hn3s7pqcqkm36jjgmd5g2x5rqyf2khhdscfwrsjh07a7";}; -alpha-persian-66115={run="0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr";doc="0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg";}; -alphalph-53087={run="10gkh6nnhsrlqx8b6k3dylings3q97ky4qsv03nk7hn41zkqsyq0";doc="0v36l765s4lc5r2xfi8a3i7vxf79yxy29xy52cbhx4ps0av4dxpi";source="08yagdxgqvhvq50cc7rvb2629g4n2qjga86dpa43x2vjnmmz08vm";}; -alterqcm-59265={run="1mffpja47m40875i3vk3ha4vdgkxha6zh7q7fic7jfddxcdmlf11";doc="0nh7861513mpdspnkd6k6kaydplmimkzh0a19svbblqwxwga78c9";}; -altfont-15878={run="1nrcjmf59r672gmqks8spqwz3vn4jrwc272zvx7ncylphsjmip70";doc="0c5hz0zjcar69w489zz2a04rbnc3j2lp8yccw9zv41ninzl94ifv";source="144m2ph835fl9x3ypc7wfc444719rv4clfdar3bk73gvf53rmjr6";}; -altsubsup-62738={run="00yva44w281zlba1c1m1jz0c1j5bwynfxf37k4sw5am7asxzizvs";doc="0nzc10vbf16bk8v60d97nw02ryl7bd5b6dv26g6rjwfpfdic08pn";source="0kdsv62j78ypa6z9098d60rilk9p0n72628cwihzyp8kv1g05049";}; -amiri-65191={run="1r5zic8x2iny7g2qam8wv640hmxdjyb8694zck5xv65mg1aq2ckx";doc="0sfxafi6qvihr70vspyfqqcdzpfjb8i0m43rlfkgnwfwcgschpxc";}; -amiweb2c-guide-56878={doc="0cxwsx49p3c162ysv0ydyxdncfg8ij9sx2x7c4pvzb0yidvad01c";}; -amnestyreport-69439={run="0hfjwmhhs1whc9i7vr8i1nxqdxvh6bqsylq9sd3cvk4jbbqzbgdr";doc="0p0jmg2mdkc5ada3wsnkbm15an20lgfh27g205q2acr08c0d2zwz";source="0plydqkmzdjyjid35az71baym73zhkyj14514p7n1jh3hmpkvbif";}; -amsaddr-64357={run="1mbbs7r8yf7fnaaizccff12k8valncym1plwik07ajj78vhgfy5h";doc="15abzspjcy683xgmplnr5yxl20phr6176i5hcz0lmnk8d9i5fmza";source="1rcid86j4vjmm54bn6yj09kjyz3v6kfaxv27w0ajndrl60fm826q";}; -amscdx-51532={run="0ncbf7ss4iwyjzp6lgzgzn3azy5iasl03565kgsm1pcbgprqibgy";doc="0nfpbma3cawyy7gw6v0w81maz1jgicb2r4cm5gmlipzxwzl747if";source="0jg2qk0a9y15hl4w753yhjff28w9wc2vbmd564lkikvg60b9yiqi";}; -amscls-55378={run="0k3di45cn0g6v5j7ccgl0nys6ni1h17dkhmkz5b5lsz4zzbi05fi";doc="1lb1q967zwgqn21ix4gxbzw8a8649p9hky4ckd61l0bxxil3mhjd";source="0g1i4nj0y32sihf7hnb8jwyh3d3qmff394xgw8v8x5jp8q0rh2bh";}; -amscls-doc-46110={doc="0allim05cp20zhn480df2mivd3p9gnc069d7hbjlzv660bw7mapx";}; -amsfonts-61937={run="0l3ypclhv5qdpcpy29xwda2m3cjfn5l996agas6yhpdr2m58q211";doc="1v7chx5rvvqmcf7j35qi55wxwxkbfkbv34b15yrgn6bflniziicm";source="064gndy9lnmsq2srw5hh97sbdk8gk0qv9zzki00ms3c6rzhd9sjl";}; -amslatex-primer-28980={doc="1kzayyh1bycmq43s2xn81jf05r18azidbk3gv6igf2vaq37fmxil";}; -amsldoc-it-45662={doc="0d4hwb7hywy56d6934448lcr6fdx7qchkfzs806dr7wfzfy36yix";}; -amsldoc-vn-21855={doc="1iz0zjn1v7izwbsq0zb6cvpnkbvk0nxw1b24j7dzqwk3m9j43i6x";}; -amsmath-68720={run="1igdsg0i32hi2db8ymdgvyd3fk4iiihspvcc5azw11fak9wvh7mi";doc="1kv670h72jl64cjfidk0h82whf24xhcl8vsrpppw6w5rx252zzfz";source="1k3lwg72h4z0gyj9azr2b7b78x1q5h85675mfam2qdl3iljnaryh";}; -amsmath-it-22930={doc="0xcwsk8q9q3nsz8wbklgpbw0vzjw7iw0chffzcbp2zsk6rypqf7w";}; -amsrefs-61937={run="015spycf9ycxav8r046yn7lrc892nhkkrf1say1yy9karsji6dnw";doc="11fc87kbdm440v4qyhxnv654mh0m6rpz42zji38qspcqj19rck71";source="02q2x8zpwxkyrh9v7xqw35vdjx0b4fzz95xcv6vfjmynm8cpklxf";}; -amstex-67930={run="0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb";doc="0j6gfbkx8vfalsxq3c4fyjs0fj43a2n8biwainfdmxrhixapwc0w";}; -amsthdoc-it-45662={doc="0ic88gs89m3d9ys40c4k7sgx6wy82c8isg2qkmd4snw5yms6fpaz";}; -andika-64540={run="1bbqdw8r2l53q9870mnsyaiq0gfy1ac808qqmyrzqqz4ai41zzgg";doc="0ajjaqdfxlvsmpr9bjmdkzwbdbz6ahxfw1sj1sw26r33npy0c5bs";}; -animate-67401={run="19rq0pca3q8kv1f3qf02n75326ngjxjhk4hcllzsl5p1ngh4vw8b";doc="0x991qbaf5n8bv95yc1k67rjas896ci0iki62yl7icfbmcbz5hd2";source="04bblj8wxx9xg8zr6b8jzll5v69vdiz3yzxcdcm93j6zsxvw7bai";}; -annee-scolaire-55988={run="0lwc36v09a4ji5fz3pq9939jm39729k0k7hha4kkk20jc3j4jnds";doc="1f0qc5qvsrnjddp1kyrcigd8is2y9nsxc9x8a215p5xds2z5gc30";source="01mga2nif61mpkf7ifzhsj5pq7wzm2imlljap4c6wcrzb9zlhfx1";}; -annotate-52824={run="12q3xk08ycz57vsrcr2glk7y48w8sbc4n8lrqaicd46cxfd4jdqm";}; -annotate-equations-67044={run="0lqi4b3fkx9bijs2ddq479bkdf147rr7j4zwinygs2k1fh07yjma";doc="10b54pcdjl4ca36wrqc1pcxa7vp02f1v5i05a40iawfc884wpcvq";}; -anonchap-17049={run="0nz53v74sigvlb4dhgk5qcalw7nrc1vafbjx754j3gfyp2ilaf1j";doc="06khbq6p3drxsbjwgkm1sd163f7nl8hc52pjsm55g2vknib5caa9";}; -anonymous-acm-55121={run="0blyv8pj41qa3fvhwsk9kq8qwp8x0b1iz7vyc3lxcpcv626aqr2h";doc="1j0fhwv26ziw6rvg1s2x0ry5yq2sfa8a55xvpyrzl6pjmzrj3czm";}; -anonymouspro-51631={run="1qk10w52722yzlyvk2k733sp1h2vic3rjcswkhx8j21a2g9xgmjh";doc="0ijsn9cbkg1f29x0pj6a4p5d4q14rqrh2mjid57cb9qjhvgvqrm8";source="0fl9sd9adhjx49hja3k4iy9pcx3hal0wjzxg10kjmi4j6qvz829s";}; -answers-35032={run="18s0c7hdk5qnj3svni93m9lpj81dhla9v7nsmcgh0jabhwy8n3v2";doc="02pfg28dz10w21ap4pi2csvy32pcvmp0baiciavp354ky4avjbdd";source="0mcczai8da24jvmakc7glr2c56yhq2jv58y1xqv6ny9hg4ph8v61";}; -antanilipsum-55250={run="0xz42icnw36dvkxlh31g8hvy37mrbafgihm7l3ivh1z4hg6gabrh";doc="1rfx3aqdvl4gvcrpsqzjh9dglk34ll6qc1a889yz0np93psnwmkh";source="02qpjks29b4fmma6qm43p3w1k8h28wv1blpwjnnsfq4ii6xrkn5s";}; -antiqua-24266={run="16pb6v297iqx09lb6w6zfcyzhwidd1cln14rqc3fblbmdaggpays";doc="0pwyp1j02zh51crp46rlhbdnwc2m0blcrg0yk43yfc687q3jx91y";}; -antique-spanish-units-69568={doc="09w95jv60qy5fc8b121f69b2bj8gj9cqz77x4rgp68xpnm125y0z";}; -antomega-21933={run="08if5plzpj7g8m1afhq8ci6m4yba4nnsgglngq94ka3ga8czfk6g";doc="1mrr1vqkyic5nyzyxkw7zq67yz4njx9x68cqr3vjd9d77qv85i00";source="0s0dzmb00hqbp71nhl94w0ns1dqj5fmfqw63z789iihqznyxkii0";}; -antt-18651={run="1clzmvpglsirsvm8nsc3m4dkz2va90877gmsrm7jfkhm62xv9mpi";doc="0kpiba7awkrjr2rdgxilni1yi8p4ycmqyy09c1p9j1ld82idsjcm";}; -anufinalexam-26053={doc="1v1k74vxidgxn5zzqz6v9zga468kcf7hwdrnvw44cd318221y396";}; -anyfontsize-17050={run="08dnpzjajn0k6hrf12l1p3ncsqjiwafzssa205k2zgsz61m3sis6";doc="0zmiklc2adbx5klyyjdivicd5j19i35b51ddm3nhfrcqrfvjrxwg";}; -anysize-15878={run="0kkjzsk03bvnap54gdf0i797zqq6bdz39yh4dn810l5hyfqxbhwc";doc="15z3sa1zj1hbi7cy9q9wn4mcrf0pb3n39q2lhkx0ijhzaxn0rmvy";}; -aobs-tikz-32662={run="0fiq64szq6243gy7vg99gi9zhz5c0svrwjwj92qnv131zj71lcg8";doc="0yy2nlq6d6q5cijdswkn3b1f2a3j5sbl3fdv599vxna5pgywsw6s";source="1dj665gs9cbx3mf3nqr0944kg59gwg43ll1dz9ci3jra0nsr8w5q";}; -aomart-63442={run="1x69rs1k0zxkqwqsyjmzkwrxiy1hdsd32dvx7ha668l9wbq7582q";doc="0nhj05cm7fsi6fpp2wq2p119y0wyk2ag070lnjj3ri1zjahx5yj2";source="1d6mpqd07fayx5g8kz8937jyj6c6rbw1g8w1amq5sb32215c7q2r";}; -apa-54080={run="0g7y5l9908l4aikm0mqgwfcdg19dbllcgdp94cl1aha7h4jq0971";doc="0bzicm0x6sf78jbrqp66mgfjmcd7kw0rgkv0c6ah9945b9lh4ly5";}; -apa6-67848={run="1zhm599xqx1j8yqjp20xgafm5xdnsjdh8pz1xndjhlqdxnv60044";doc="01iv078nfv3ilh8yjkf2r9c9kyn7lxxad8vl0lb4gvi706p3npnr";source="1g987ikxqvl0b1zkf5kvwg9dzy7c4k1rv9cl4r8ssdfm9bq7fvwl";}; -apa6e-23350={run="1da46dhvpwmjvm3ma4zbnfgsc2yiqg9d6rdrw3bd5h2ibs3vnlmg";doc="17m97m9v0pcs58i3k7sdj9h1vifv3f0cxxyn4fzi8pxvzljwl5qm";source="1155ic0k6f6gw6zmqq8pv74hcn45skjzyarf9vpkcksj96qr07ba";}; -apa7-63974={run="1y286f7vyvgnyspp0vzagf8xc81b02029zn40ggh5bhhysq06wzf";doc="0z8jfr76r9rvqanljhq0fnx5z2w59lxk2mc9if6z7kkid1m8qx8m";source="0xx3yvjknqsk36mb336hlvvsldhmp21vblgzl2zccp347g5530z1";}; -apacite-54080={run="013769hi9alyizx08a0v1hbl03h5vkwi6a6ar3ghw8m6l445xb8m";doc="0d49bmdiiriklmh99kavvm48zh29bgiw7zr5jbcwk5bw42qarlqa";source="0hsrhw50sb8lphxib4jmjgplfrmy95m56a1phiac4kwxphlj9di2";}; -apalike-ejor-59667={run="1498dg6dcb5d5vndc794427740i6n1s68kwj9vzcpfpgb67khpfz";doc="0x6gm4djf2bfs92zsjzmj41dvv7pa2lawycjlmazsr55dd3assdd";}; -apalike-german-65403={run="0cv9dqn4nrsdx2cl7r6xrg3j8h16ni938q6xdl7s80cpff79m7vg";doc="0pbx2ghz7f67c3cbpk5c11nv9pkx9paq2hgadnlz1j68g71b07fv";}; -apalike2-54080={run="0mn84ahwjg8gvw5lifvcrnch11q79d4bgw3nmhrh4v8slwgip5l7";}; -apnum-47510={run="0qqm8np0jr2q3dyxapd49g35vk6ch3k9ar43yq740cfa7gs23ss7";doc="1jjk8a2aif4f7gmbj5laph0q60xpb0yv26j22z4ay2p6yf6a4fy5";}; -appendix-53718={run="1xcnin7414mb1jvgs7f1x27zkl73sabmqb31i79n88gi245bp5lz";doc="144hblxkrfp8g040yiw1k7nr3anqb80pd9c2g15m88gbb1xzyay7";source="10gnkpwvm08zqwi83s4xiqshp93v5ai0qg22n7zcwgaq86mzs44w";}; -appendixnumberbeamer-46317={run="198sc0fmnx7b31j2mgzjbjyjjfsn0imw2j8pkg8m0r2rlphqx72x";doc="1b1rwcxrs8cm3zfadi9jpxgzcgai36rlnfragc9l5wcbdsaw1qp2";}; -apprendre-a-programmer-en-tex-57179={doc="05779lk9v849k712wfjv0mhyzahwpl4n892ydamfdc5yg05bsnyv";}; -apprends-latex-19306={doc="1xzy7svb2xz6bdfg0f1r3whwda118pl7qdwygx1l7h4d1vqm2rcq";}; -apptools-28400={run="0b6yzpk2d79qg2irgfhns0w05i54z5z22ik5yyx4w6wg45v0j389";doc="1n8ak9cw66780zkk384vpjkxm9j8f9dzlqzshy48q7hhprsg4p9a";source="1ba08rixibjcpi420blw8a0v4c4zi2byll7dqlvwb7azqr6dz720";}; -apxproof-64715={run="1v42g8hr93afz1lr1hbvycgws92vg6pzig1qqjmrpff11irwfa0h";doc="1043sl948r89fzgzxwn6n4sjs1jl7mxr12hq9y4ljgm6264kw0d9";source="0wr9vjn9vmljsx5gyccjzcqwx86hza7idrq84f7b9jl1miwgddbn";}; -arabi-44662={run="0jmx0xsb3hz5i25mmqnxgg3bikyr1w26i3364cqrp50x9sqvkgfm";doc="1yipdaiai9fbmrxkacqwnbibdiaa5vskzj40d1hxv6wnkxvj2qkw";}; -arabi-add-67573={run="1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh";doc="1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j";}; -arabic-book-59594={run="0s7hnmz67hzfmfzc0mniiqfi6i8c8qzslbm92z1wc3a2hr38ihk2";doc="1j5h788vsmrcag9bighp6kz6zx40ppjzwfa070ic140lqzz2b024";}; -arabicfront-51474={run="16426cyvrk461z9jb728w6glfm0ahss82kkq6fqkhajjc0cflhwi";doc="0ck7nl7v6kvibiahh3szf3nbibwajg2pjwrbcz06frpfwhizsnp4";}; -arabluatex-67201={run="1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj";doc="1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa";source="1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg";}; -arabtex-64260={run="0xd2apd35zn1c4narj2gyla154nzd9ghhgc3fkk6y06d8dzgawv3";doc="1zyyk778384mhma5q7ra75fwykk23i63q4jzamq4zard0y7gp4k0";}; -arabxetex-38299={run="15c8nmmv87x87dbjwm1q0acf7pbbh8w9gpiw77fs2i51gab592xy";doc="1ns1y2lf87gspaablh4lm3kj33ggpfp7hcxbdv4vxf8hhfc4pp7d";source="077r71723zlzfjmc471a8hbxs1v2g6j2xpiim3g2klxsj589bxfn";}; -aramaic-serto-30042={run="0j1i5snrgj579zx3cn7z7dhi9rrq0ssl392r2vxykcxalcc8cmg2";doc="025nkiqh91laaj3yx2qkl5z0jcm2w0qwgqm545dd98i5y1a78lfx";}; -arara-69878={run="1vcvhpb6wd8k9fzyq2pxxyd23p15w6n57rmw09f745l0kg9gcd48";doc="1ln5z77slqmlks5507n5cg5d6pw1vnghapjwagw1bsc8cirw9z3a";source="0109zb2h6r00d9849sdm1k138j2a6z81s4bcap0llz7qq7qs8swd";}; -archaeologie-68476={run="0r2j9n7vbdj7virnmasqi9md81wbc5b53h0xwf4d6azh0isy0505";doc="1xhlp6x1ixqn5xj0k9xz5149jwf9zgp3nlv0ncyjn5nzqkky0jyr";source="13wmghwrc89g8kmsdsqjfcklbindkrc63by2zlgig29rvidzn4lj";}; -archaic-38005={run="030a281kl48ixl4vh378bf0341lrrpvh73ws5pjxyhvs6cvyxp7i";doc="0m64lsmx3sryzdmbsmz7biwmndpn66x9is8apqn7w64y4b1jjcpk";source="1231mqascj96yi4jj11p4zcxgkpzxi3p0zxnjq8x5fpajz386kq5";}; -archivo-57283={run="19hr6vc7x9csjjd3i6mz9z27cyq4pz1qvhmiwbql2xhvmbcd871q";doc="00cs206zp27vpw06wqg7adwj73124zbp8zwfvgqsh9n544npvfmg";}; -arcs-15878={run="0qahab6a041wn6s6isnjn93yrs6zk82g90x5aqpv742b2y8cj5ix";doc="05wgq5pkzxg3vj9anlzjq1jvwj7b6wvsp7a02syca6n4qvy1v5a7";source="0jnvkhhcqv7qgs4knwx1kz38x305a19kh13wn47zqlqn65991bpp";}; -arev-15878={run="1nx33blp0nfqfmv2akj7w79qg1rhds40k7b58v5yvyrkx0hpn0hm";doc="1vscwahxzdcb6879pbrxdlfpgapc0bia2fl3jwilrm1has0ffjz3";source="1k524nfr5zb0nmhhq8dfaha4kv9f2ika192scllnn1bywhbpn2x5";}; -argumentation-69023={run="0pnr7z8by62zi1d8qbjmmddlykrkhhisqx4n8lhwbvi3qcrj48gi";doc="0mms537p669wa0v301g51sgigzxdg49rj3kg8i3rva22hm3b7fj1";}; -arimo-68950={run="0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm";doc="1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4";}; -armtex-69418={run="0cj112jisym4zyrjb1g4y9ryyiaj6smsglmmq8zj9xkr2hfpw46g";doc="1xdl1alazbmma8sddkfl1vcm1qpk0agg1dbkimnbniiw2xdx5swp";}; -around-the-bend-15878={doc="00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f";}; -arphic-15878={run="04a15kip51zp4bhrbpiv4m5pm587xbia792ckj17gj281ysd4817";doc="1z1z7nnncp4dpb91bajxf3li47k011jn5jbxzgdaspa5mjvw32k8";}; -arphic-ttf-42675={run="1z8fa90baasp8j8539a4kzilah602lik012az7i3pc0dnm4m2w1h";doc="0nfbjnprd71dwp2dxmkmdggfipa36w4qbps82czn506xpzh07lav";}; -arraycols-68277={run="1dgqrznjh5irbcic6dscq1xl3gyfvg3dnrps0ki1ypq24cm2cqyx";doc="122iwnlyci7mkvzglzrbl5xycm8rl9zp8yrhb3ky92hqqv1ywi88";source="18kzw3c2gja12808d4k7vr55p39rjs960fv9mmmpld4azw2f7c0q";}; -arrayjobx-18125={run="1ry1gix4nz11kyrfpbhy160c8dir2y68jbmnds64qcdafhfv4b9m";doc="1hqjhkjh5ryhjpi98hyi92raffmish9n9193ry75mgfx1p2b2w0g";}; -arraysort-31576={run="00wbmciwdnafwknxxrnprxj4xvs24xxwdwmn5y5xh1c8c3q8rn09";doc="1yn9kbq8icd5gxix4kzp0qszhg1xy59s4m8p66a88h3cwcs7fjba";source="08gbn5s8c7a8klg605kalr2mdpijy73pxvfsndaw9jdnr9ipc5my";}; -arsclassica-45656={run="13fql9q89zkdhid841hwxyrdbj6bd692lnc52d0yiibrd9gd9f4a";doc="13cqb49296wzph7msrhpzswlyknvhrjaa81509l4j4mx1snxyk4b";}; -arsenal-68191={run="1pc8k3zslxla2ngz29389l4n9ahcbp2m4blydpg2bz0qhs0zqapb";doc="1y86inslxi4y33qc5p7x3gbx3n4d99n3dpzq0ap9ikrdcxgwd0ds";source="07i8ynjbr0w8kp1f3pm65hnx766kxp2bqdps1ln0qyzhk2iidppg";}; -articleingud-38741={run="1ydj9dysf2qgk36ssp8pdr4c6dh5iw27kcw4ykzkx22ih5an0n01";doc="0mkv9fq0hixkjf40la5na4dh0yqi3adgr8fyi1x74sbyi78gmfhn";source="1h1w0fxa1cyw5d943mg8na7hxwyq2ki40gql9y0f7fdx31faiavv";}; -arvo-57213={run="0i9x668hjr2b6brdysl35rxgjji1zdsn6wbf21ql0xmn53frk4ic";doc="0g4lpx8mra2qk9c1qwijilscq48n5n252m6s0hxfraj5rshrhc1j";}; -arydshln-50084={run="1f2y02l7fkhrc005ib1s94z0yxgql2m515zy3mlx6ba4mqadh9c8";doc="0xw13bdw67n2nsahi85bvh5p1xrd8fpb1aj79vss9zgdslzb6j4s";source="1xhnh7jw0sxy6vkw31gcxyxg06dm7bgw0njsfkailbxgndwcp6zs";}; -asaetr-15878={run="05ff3l9qhk7bc2k2kk0acpyy4fxdfh3crngj7lgnvwbxa5wh8dn2";doc="0whp9d9pas44j775i4vn7zh5ss0yr4q5vbx51kz768zwgs5x8222";}; -asana-math-59629={run="1776yxdxk83540gwr0qxk3qs7yfv4vysxyvcwx1djhd1vrwhkzh6";doc="17bb9m4fsmrhbk1hbqyynkvlzgcq45lkg68kf56zs2c00dxcdhp1";}; -asapsym-40201={run="1m4ky7x5pavf8kpyqrjqa5ara2iwzqc3aglvbsjblny7n2az3dr4";doc="07n000aa7yjvx74vspqq1rrqw444z3f9pkwk3hdmmqm3p1rrw912";source="0cacvd85rh2j0j6d1zjrisffwyzh0pphzsgb5bxfq3dzycsww0iw";}; -ascelike-29129={run="039w1lm3bpfrrb5inrmzklmr9yic7x1fs0lpjl8z49mijvqsv1df";doc="1hb732idc36m86qgss7wwsyqj6zgirh9qvf7ybpmqz6arwsml46j";}; -ascii-chart-20536={doc="1m2x7iwz80plq6hbhp9xia6bp8wbi03iifs0pkr7ji3gn8hqgh1r";}; -ascii-font-29989={run="190ma5qhshn71vhsjzjb2gxb54qjabili5m9v98vwj173sdj9cjv";doc="0nrnfvrcgwmv46x8f9ybk1gv6vgv8jgzhc8480fl7y17dii3jl9a";source="0xcv04inym8230k2ljb16g4ajj73gggg13w6zkxxq8a1fa9lwrw7";}; -asciilist-49060={run="0ni7182xwr3ns1dk8i75kf1cw9wpfagrf1y7w20hk8fpfymx2669";doc="11gyi8mcqvfpn07f4cypv05f77vhzr44zn6y1idlbz4mgzjw3kp6";source="07k13s9y5nvbp7w1ylyj3mlpn80682yhxgf27hz9aayk3hs77d58";}; -ascmac-53411={run="18hw5yyqbr8ji39y39293z7a70czipzw00fzfsqcrhgdlid79sc0";doc="0xzwc7kw7hqpcmisw5wm3n508n4zr4s207pizdhfm2q9mjij0jvr";source="1rd5qmy9miximwv1n96h6djjmd3mdgn4b0955marf2k457bb71d2";}; -askinclude-54725={run="0s1938harm9sgna3cggllpa1g85yl9jv2wy4b4c5v6fksiivxzs1";doc="0gkbk6j2wv05kgfbjd4mqx5k7rc22bmqn47vk7pvr5z60dr4nay5";source="067dpl3v0ipspfm5f2fmcmg5cb6lhqg6n8216id9j1blir1ys3mg";}; -askmaps-56730={run="1r6lk9szs7jm57b4hl9w4ngb9dqcsi6pvp37rcnwnznj5m2daj50";doc="1ryw8yy59mfi13rrwgrfg5y5dy3cafz2a3f8zmq5fbl7zhbylq6p";}; -asmeconf-69742={run="155l5aw8lg2krmpvhb0vl7y8lf7n1mgd2x4vpbx8dhji5laxdxl8";doc="16dwxl3ay2p1vnqh9z946aypapb2r984p5g861rhxm511wm3h2hk";}; -asmejour-69722={run="0km4df99jkm270frhsf11zwrsv2h0c7sbfkyikfvjvr5pxvsdhga";doc="1br007g5m7wsrrk6xn2b03kfpmlcxzazyijghsnqx1sfn4hxf84l";}; -aspectratio-25243={run="17y22131b9nzzq1skfdyr7cfcq823nqn3ssqrbc3bglggdfibf2p";doc="0mw7v1m9afyk462rjcimvwwikdpj0f4gjw5pbw2g9c60vbjhz61j";}; -assignment-20431={run="1nxgpadadzf3d30ydc9rndwm4v53s4v10a6sbqf6yfqds7ry13vz";doc="1wyyvay22r68hfspaqv0a43s9icg8a3pj8wii3snn90svbsjfajn";}; -assoccnt-38497={run="0im3x8im6kkjmvibh57hkn8nljcfc4mzp0hpimiqn29ys1yrhj98";doc="11p081b0b6mcigqsmvgf6kc9ik2480c74madjli19rw9i5nzf0vf";}; -association-matrix-64845={run="0pa2js62lrqvh9ghhv5gylaz7jxbh6qwkfymr3z99w1isl2iazlz";doc="00va77pg2xzf59757sdq7ql7lkik3ifhf1l74lljmimqvql6zj0i";}; -asternote-63838={run="0a3a5jjhsbvi7kdkp98kwa0q8j9chrq5azfg9vbb4m9kfkbafafh";doc="1xz9p6g5bl3qa957icsyjknni7bvglfhvxfvxg83x8bd7hvh7ylh";}; -astro-15878={run="0cjf53gbin9z10g63x2kingsclgnwr6idc4x0m473hf4fvakk34x";doc="07kad1fzv7p6inh7nkrq6b34c1792h4v49rxaaxqyldmf4pwjr84";}; -asyfig-17512={run="0zy0vxxmzg7nzwzw8z84sym5wdfbs7kyf06r6vnn05ga06wwn603";doc="03nby6d7cjczj3irqql5wpxs4fx9z77bb03lys5j1kg63ccq5msp";source="1rzicq0w7byrxqvv8pympxkwq575zqs01s02z205azaqdgrzdhss";}; -asymptote-70583={run="0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca";doc="0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg";}; -asymptote-by-example-zh-cn-15878={doc="0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff";}; -asymptote-faq-zh-cn-15878={doc="0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb";}; -asymptote-manual-zh-cn-15878={doc="047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb";}; -asypictureb-33490={run="1ls5ryz8c68liyyyqkjvmzyyblh9m8c5b62igz8frrj4m5vhi3aa";doc="03d4l74m9qwjvl71xfkhspf0d2xaafl9d2kcqhmil5yg85hsq069";source="1jzpagmnv21k761r52m2f708275k4pwa9sqlp88l6pgv6s6p4pab";}; -atbegshi-53051={run="00r3ayn5qa2p2j4hyxbp2mm1aqhbkjpwk15gan1b4szmm2wk54h5";doc="1pjfmnrssaw20sdq801x9jb9qh7s8l2mnhcvla4bxglckgwz2na9";source="0b0sxs3jpc6a9pw1z44iv2bwvyxm02yfl8j0mc5qw0asdp773vrg";}; -atenddvi-56922={run="1lw42kgkviwh5gl0fnc4kp8x578bss6fj4d3jqp3jh0iqj53wwf4";doc="1f4210s4llsbgnnf6s91j7gpdajclscnqlkrmrsmiphhvgjihcws";source="11sxy0c5vmbf17w1h46dc033lisp4aa8sjqfi1zdzlp7ha4c6rr3";}; -atendofenv-62164={run="0r5y45wzyhynl6f1bsk11ha50rhzidjgqynpz0qqx55pwj1lvqg8";doc="15s783gvnj5vd7vhgvzvvxpszsy065x20ag5i3kmhd20rdm8sy6y";source="1j1z580b9v2w8b1zqjan8fi5smnyyagnhak262cx5fi212dzivnl";}; -atkinson-64385={run="1gcvnnj9f7vrf96lb6yyv8036xjd52099h4sbs3lhprbdb8gznrf";doc="1k994x0xmc4kl69qabrwh3x5rwipz77c730834bnv98annnbjrwq";}; -attachfile-42099={run="0akvm9al5rz67b81bsl0k92gjqwxjrd6dwxj9qmwrb9c6pd311n8";doc="169kh9zrf5ykal633zn8n3i41dqbyv7jdrm905a7q47icvd4ar03";source="1b9s69vvclpvdm02gi9x7zv5mf77q68xv7zd784cldns8h1a553l";}; -attachfile2-69505={run="0gljjngawrnb2825490clcvj84gx0vlxk3g7i6qxnrafbzx4b8g3";doc="0kcn77x16pa0kchcygviy3if7qqzqx5w6qq3p91b3zz39cxcxn09";source="0rhh83mjva074c3q2rqjc67r6z1any4ffxkd1y0mbhx879j9wn78";}; -atveryend-53108={run="06q5b28q5m9i29yqqx1l1y0vjc20i0n6p2k47z66jf3s6abrqnrj";doc="1nn08cfh3n63xd45rkmzvdmf5580lm7kfd08z9gawgaibh6nii80";source="0fgzxwc6jlijf0mzjh7pm2afd85np1rwy4xziz26s0gi6i5pdmvp";}; -aucklandthesis-51323={run="1zlsa80vbby0jp46jicygq2fn64f1mgppbw6bq4qm9ncsapdz92j";doc="09n2pdviw6xvh9ymka32pyscn16vgcxbij79nq0hxn6b6msxnlq1";}; -augie-61719={run="08m2n7wqqj1pvvrw6q8j514mgr1168brckm1dl44yp78afgm6vra";doc="0ygmvlk1h6n071lq8jnlpdqaxhcxvwrzf1kgvacj78kijaqd0lix";}; -auncial-new-62977={run="0nqz71wdm0w34xdg5p34ph6na12jlvxz7v1bfigjm2v87pbn5lwz";doc="1dw0gbhk3hwfapdzysf12kz5g3dfsr5pxpnga9s1ksqicck26b5w";source="1gyilj1ldx6c5lfn8vrzsbss4gl77grr2mw4v6xhimv2vsyp29a1";}; -aurical-15878={run="1ffl7fji5r74k80hl3d62qj7f0h439jb7zmsv4f21w7b6cfyj74i";doc="0l19hfh5g2dc3digkbjvrh90h3vwx6zsbadjl7zzzlnhsaq44nlf";}; -aurl-41853={run="0dxsldgnijrjrm97a0k33cliqpl09b70xf2dccigyzyyps82h0d9";doc="0rw2vhp4r9sb6pliqc3xxjc5hsznz4j7i2w3qk227ibg92qx4a8z";}; -authoraftertitle-55889={run="1gikfjhxkz21qb32hrhyrdymkn29x7bjcsml5clsw4cgi4b67fcq";doc="105sk016n6sh7llhk3fjcz63hbwms50l7906qxdddjq67qpgrvgn";}; -authorarchive-65777={run="0f9x0nx0n3k3hj33089np465jpikrxn689zgp0rdq54gh9cr5wvm";doc="0w54vg8rfpb8c9cc5aaq0zgz6vs7qahzjfq495bw551b3rm7cia5";}; -authordate-52564={run="0caz9s2ra7qqlzdnahhv50z050iyp62ypyrfpbj1p9ih7zmcdg23";doc="14wxjyrighkhg51m9jpdyjdwz2ipz4zr1rfgmdnxbpg31rbg2x7s";}; -authorindex-51757={run="0dhdd84hdf4iz67acyarzf0asb7c8dmp09s286rq0ylgn7lb9xx6";doc="0hhffkmldhhm46xi8d1bvjp5v15cg5kid383g7s1dbjxqyd9vbvd";}; -auto-pst-pdf-56596={run="0f212m856rdfzflq1bw3vfpy38d8qylaa3vqnfs595h3x5r0dsx3";doc="1f7kj4rga7x14w8v3cjn7lh95inliy2ms0q9vnfnv95jvp5a7kh8";source="10l3ld4jvpg1982f2a80ssl4hkdzi9szxv3y8l1i13pdfdhirv91";}; -auto-pst-pdf-lua-66637={run="0h17431shl7g0hza9vf20v86vfpy7w9wdyc09ir3s0mi5izhh4hq";doc="07bpl01v2f14csvqqvyvjja79z3x34q6mkb6qck44s66ii5dld0h";}; -autoaligne-66655={run="1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1";doc="0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv";}; -autoarea-59552={run="07fi6gdnl9srrhmj5v28kfvjs3skf8g693hbdrfzjkyw76iji46x";doc="1nyrgpvkj2bplf0psd66mcrhz5j4bggvdmr93p77ix4vb2fgh239";}; -autobreak-43337={run="0dzr4wbwy018f97kzmfvza9i7m9mbpn97mjzi336sgq440v01hrd";doc="099vqvdh2djk7fm6y4x5m7cma71b2anpqkc3lfzjazpv15kpnlq6";source="03kqdrwznx3k65nf5z3p2z6d80rki7w4v5lhdfk8rin3112gn68r";}; -autofancyhdr-54049={run="091dwnql2fy1zfkr92ww01hjylx6in8ay56gq7ywjlwb84r6sbm2";doc="04fjrbsa9nqf5rj0gqgm96c8wg3dl8cpfzyilqrfqmim26rviskp";}; -automata-19717={run="0jqsvxn561fwz44gd0rwxyjwh1nanpmfsvd3kslw87h54hzlizf0";doc="1w428b0wyxf0v7bf1yr9dfm4x8q3xas9fgv1q9sxbhgri8daj8px";}; -autonum-36084={run="0y1x4j7fyssmhlqf9974yprqxvplxihbs879qiwa13x0zmwhnp55";doc="1a73xg2csfq051lnjnxkplnpfvl9vhfm05qvgxz4i79qmgs7a3b6";source="1q58d514bdm0mbqkmyngxh0nzzg7kxxc0z7bllnlkqb99h3x3xb4";}; -autopdf-32377={run="0fd1dw6h409ffn2prcsmq4rsgjshhs9if0igsz3ibxb6wkngbphv";doc="1rf0l15pp475f41si7qkx9rw7n6938jj2k1wybx4ck7pf6hs7i9l";source="1vw58d9g41ra5j2av1vdkzqhh7g5nrprr27qgdrn8nlirvwzbx9m";}; -autopuncitems-63045={run="0wqvm6yyja51j7yjyavjn0p9i8y2a8aqrywpvrlaybw2g5s2k3gc";doc="16hk972a108wh8qsk9lg3ai4cimwlfadmxy0xi2aa2wq8darhsqn";}; -autosp-58211={doc="16szmbffp9pwzv7zq3l4yvnsfk4m7w57wib7pqpgv1v5fzhlaahs";}; -autotype-69309={run="1mvy4szbj2bms7wsbxk5abaw41zi97lk21k8j59z1dkrrbzzq69z";doc="1s3c3zpl88rlcxrlmbmpgl4f6dyyryfs7gy9pkm3q2ayva3d4bwr";}; -auxhook-53173={run="0c92za082vzi47m5dlwq8bss4jjgfzmbbaaz5j1yb4ngli9qj08y";doc="0l6xga3hr1lvhgli259ma78rq394jplnkn5j8fgrfapvzrhsh2kp";source="18q0lawz00fbv9mgcbp21zk6fm1hsprmrkvhnl34ac1qj1rx6x3p";}; -avantgar-61983={run="1200x40k7wprm4n7srxvgrax2l52vn6d5ri2x0q7zbzzsfxfzkym";}; -avremu-35373={run="1j7mg5in2jhpb07jpky76qriyb4m0qq0rlkacs6amrhh57299prx";doc="1p7z2vj25fnx23rl6m76h82q8kli8nfl2vail4mpkx0brimn4j7l";source="1zz9b5d08i3sjj74q609k5kyi9nr7yyczk00i3dqfz5x3rlyljsm";}; -awesomebox-57349={run="0bjnvgqj4g1i6djzzzdjdrnlvli3dm1v2w2mi59s5s8pyc5pag60";doc="1m1cjic1dqf2zvym1ma83xy66b5irqma2fb6fy0qnl31f9bfg6x2";}; -axessibility-57105={run="001z3ra1zgsrvhlnvg9lmvc56s72b3kip71c1cnpl6qzqcc2y6s1";doc="0s77mr42dli8vfc9h6gslq5g103rp5vk94hx9cw3w3shxazib73r";source="1bh92wig3grw2bkkdd3fxwlky7rrfabzis1rwwdzgk3bmmrl9554";}; -axodraw2-58155={run="0dcls4qqm7pl0iyg7mkflqa2rd86wsafshx41xlg62din6fmybwa";doc="1l1kwxd8zq5xxhw7zyig0b8nna4fwr6615h4jjwpywcaqsnms6if";source="00nq53ahf63lazavijry572yii3jix1df9c604xnqpga9z22bbq2";}; -b1encoding-21271={run="104n1g3qnx2dj91zylj5byz7yaai6dw6v0pl9240mgk1h8i0xr2p";doc="0sdr25vv9svm3r6yqyalqza4awr8k26g7fmh8078bbxkddycchkm";source="0mbzrasvppl17965dmkp2f9cbi03539p83989d40kl5p11ih6dgy";}; -babel-69742={run="140xr7w35pgsd7sgj3sg7ar2dpdn2nsqg0idkz30psxp1j6h4k71";doc="0z6798rpjhxnxzh4756flb50m1q5431gl26q94szmav83pipgn61";source="04cqlnixmvnhz22lsn7f5jfpr2r1vhw1m27sda02q3nswhzxvxxw";}; -babel-albanian-57005={run="170mxpwnnsc1g9s7qnlhjcryw79cy72d8c4m8bhr36i5c78my0zg";doc="0x5z4gfi6m9h5gml6wxq3531i1k0sfqrd4hxrzbz68ijzyjnzk5j";source="1w8bassqn35bxyhpw6cg65ya64x1dn9h35p4fxclcjjhmv53xgg8";}; -babel-azerbaijani-44197={run="15siklcjg7wmpzgy059d8r6ivg6cib5by9a4l6n31c9pxncj7xka";doc="0dncpgvjqqa41rk80n6wif8nzdqw7vkxp2056l6sblzxgh87fvz0";source="176r483598gd2dfmfc2qhmknj913n3k6rk58mpfq69af72jq5rjw";}; -babel-basque-30256={run="11a26db60bwfhbx6zj42yrzzvf8nn8a96nq5mpw29xhxlpbhrcp0";doc="04jf1brw3ljipdyxv3d001slc0iggjmq6hkr4b5jsa3z8gcivzvw";source="17mz3bqi50ayia4nb2ikf60vgpnwl3i90gfbaq4692y354yvlnfy";}; -babel-belarusian-49022={run="1jad77cas2x8nlkh72rkxi3bqdlqzichqkxd3bdxk9bsqfhvj80s";doc="08lb1909wm2r4psppcbn1sf3zg4a8qp5y4i0b6kksfp0n7v1nckn";source="018jayyq2mzb89l60h7f9vzx2zgy2skklbqqx9zs3krg23xy2i6g";}; -babel-bosnian-38174={run="1q9nplgxfyv877y5q5hm4g6i5dla5c3a9s5cax27pr1riccgh5dh";doc="127g44ww87gaizsak6lbmbr9yhjhy8k32zkah3189yi21w7ncs4q";source="0mlllv7k35vyqpa9r4yz6y23cgfarqbyk47blfc5b3dill1imx6b";}; -babel-breton-30257={run="1qqayklpx89qmva8j6l6rhwinr0jik9lq1sgr6av9w0qzy9y1ifd";doc="1q5xlc5cm91wa5lpg5wysqyhiq71ghf6sb8b3syxsqzxdicqwqrl";source="19rafbvhd4fp6vb1pbgvaxrmiw1miw4j2n0dsi8fnmn1554zb25f";}; -babel-bulgarian-31902={run="1lflnrgn8si78aj9ms8lh9lb07maghvqlnrc7i3lmgn1qjrlvzqx";doc="1lb0kxx7bxrllyb7sqs1gjkqv7414jvs2kl06cnrdwsrfbr1g0kz";source="1wck40na2vczwni0kk1a8c1naczrcwx8sql7j0la1b4c5dcikgxd";}; -babel-catalan-30259={run="0brmmav2iwsw46p9bhbq5nc09w8wxfbsnpb6nrbx7zx76h599fwl";doc="06lb6gkmidlps7vs7ihqg94jqnpxyih2dkypbr0j46whs5nb80cv";source="0l4c6wxszawd0a7dd7fpljkngmmh1p7i7imyhgfsjyli6fpxmah0";}; -babel-croatian-35198={run="1d6xi12v3qr7gsknkfcb77q0wx5hyqpp0cyqq1spq44yf507nnlk";doc="1h15dzgmm5230ypaznk44607naj611n0mrhp9mjabjdqbsb71qdb";source="05zhbrvq0iwg7vbccq59rx2yfbaznixgr5nfh37k3584iwaqipwi";}; -babel-czech-30261={run="1qk6k4y1rkay2fcn39i99pxsip4k68xac4axznl07pbgx46v3h64";doc="1hvp785ly718fd1f0ig092rldcqglpb3mrygarww5bnl6fpp2ffm";source="1274pzgdya7gkvxjmdm3v5rb7hc0sj6mqn9pd8y9418yx5449spg";}; -babel-danish-57642={run="1q5gl9dxl5qky0g263yfa4gwb992ngd7vwsb24cw9fd513j50b9h";doc="1xmp93khcz4my2i1wrnzcb13bnxd9mnjm50s2jhbh8qaiywls7m7";source="00dryb078fqckqjnxa2riq478j6d5i28j5cclv4bw7dn5naa3lz7";}; -babel-dutch-60362={run="195d71rs9raadkqb0c1v3i5pm8aw37gxfnk7c6ic59ib0fvgs9j0";doc="193gln8qydvjwsj8pwayfv87zyg3wja99izbf4l7gvhh3b54jwjg";source="1mvmis59s94j1p98nqp07paxzviq6sgnqjwda7w63j4fnhhsqc3k";}; -babel-english-44495={run="1nb3c0yikcfhlpfsqgx2c6549ra7wcbcjs614d7gvk5fyh0cds8y";doc="0jfjdsiqkg0sfy326nz6rncq9sk1ssjzb0w2frybkp348gif3rv4";source="1q9bgs6mdgjlg3pv2ddrwbnfb628dr6rhdsgkf7rnwm5m6ncxkxh";}; -babel-esperanto-30265={run="0p11qa0d496xb6hpj6qc2lisr3xk3k1rbnj7b88wcivfjwf5ypmp";doc="0ra2iyai9vyjksfsdcv5b9ifvqmhlc4aikyzf3wq073sh9crhxh7";source="0i1hzj701rii0hbp05h25633vs2cbmqgyc113m3g78i24vh2rkbx";}; -babel-estonian-38064={run="0j7z04mcvjk72cad5l3np0x862nvgh7jxha8mll55cf18k9aj64j";doc="1nmjvvms0zijpc15rs0fkzli3pmidc4v4kzfp9sswvh43622p1b1";source="0x2a379m1b1ll16dr62dg5ai353p362dw9js4n0dn3x2wjbndmzg";}; -babel-finnish-57643={run="1z49ix8w96walkq5p915amii7n73ahzhy4ijxa1b2bb0wzz4b1l7";doc="00aij1bdybgcg69995mjrdddzlr3hqbhmg8q9nq86cd29y1gx029";source="1930zxk4l6k5q4wcbvpvijv4s0gxp2mkxvblczn4gcbar10vfd4x";}; -babel-french-70261={run="0pqcsbcndlvjvgzafnbcf01qk4vs2yj01lz18wj54g6bv2wfkpkb";doc="1by7z9c91zisvznivmsw1n5xiqm4373kjzjhvg8jyf6w4ispx0xh";source="042nk3n8pjbinp3i167zdqjf623ln6pnyafn8czyg9xyman90c74";}; -babel-friulan-39861={run="0gfq4gyi720kp45vcbial0yrn9i2jyx1lzh39lci0ga77y01j3mp";doc="0hnj5scfsvisf9k6iwh4awzqccm96apxrbwzlknpxn7x3zv93l0k";source="09bzwmc1jnal4ikxciwas8y342rix0xksd7qcp39nwajyg8njdmc";}; -babel-galician-30270={run="0mk67w9lhp4nfbhrzyb1ngm3rmdknvv8nlqb8601hrglj4hzmrda";doc="0pzpk8d8hhvgsjssy67hpgvjb6sh3lfbn6f5cbpqbhxrgllhpgva";source="1awy39dlr086hc807zc57l7xk6zqbkwrayvzfv8ch1mqnl0d3a6c";}; -babel-georgian-45864={run="1mdsi9mq6ka6ahrgnasik0sxkhq97qa223q5iy4fkfccan30kb07";doc="1iw1hbn5i0c7xhvcmap4hgiaar9rznr76h2mrgya8xj0czppxwv0";}; -babel-german-69506={run="0k82lr91vdc5kfq7wbhl9sw5sl78mg4kpql81ga048rwf5plhj4b";doc="08ghl1hgndjh6pj2c0j78ypd055hjn0mkqdw29727qmbxs14irwq";source="1l0qqnmajg4v1zkmc3gvyhbpvzcmwbx6lr8j8pbmhh6g9fdnmbli";}; -babel-greek-68532={run="1gii2nbgnixdysn2li0xw5acsvimq2r04rpkyhy16hnz50cm4shz";doc="07l23ycdm79ci76zkfijpdz5mlcgd8qcbq5s4rl041c8d4nnfi5n";source="17n58ldkgsqadbd1agsaf0bwv0pg73ybfql5bkw3ky9k9ck9z24c";}; -babel-hebrew-68016={run="112c7lk1xihspknd146hgp9nbc7wfxz36d3b887f6q0mq6hf03qq";doc="0w80r70w90szg4rlzzj2132yfx8wbhxranq8zk49far863sn658i";source="1srid6v4s1r5w02148wgfzhs9jmmwzj23fhx9zn606rxxkgakajf";}; -babel-hungarian-49701={run="18hc7z7gki6jyglywmljlf37aff3cndszywa32kmprbn2qlfc87k";doc="1imn8zlk18fcs2nsy4ml20xzkhpmv5lzzh28i2c2zv6klm1kmfba";}; -babel-icelandic-51551={run="12v78k2l9vmc07mx0wy8g0mjwryp1jf6ij06502h7jr55my6y5s5";doc="1mbgan8gv7hld0jym7qks13yph9lz0clkgpb199x3cdxmbvawpb7";source="09wz6pfk3vb4c0az1lgq35vmzf8v49iz9cd1ys7rhdssbcz6flv3";}; -babel-indonesian-43235={run="1nmz2vl80cs7d58hl22y9m2hlf4xzdw2brl2z9k56w2mk6rg510k";doc="1bd7v0wrp85bchni7sbn4b7manybq1by8sb4bhzcmbw4b9dnc3yz";source="0p89lrfyqfhmnvijf9mdhmjsr8wzb4hxr40rf33wn50ak3m8gm7l";}; -babel-interlingua-30276={run="0zbyfhfs222i1wdsfbik33m1asdaa71rg700s9vfbvfdvjcikciv";doc="1z7j47zmp5y3406da831kwxqq30mgxh2wwxsrkdjycnsswsywgv7";source="1y3xsscz9zxaih3752sk6jhh77ljnllmikiwgqb3xsvzj7b5fs8v";}; -babel-irish-30277={run="0ih96jfa66jn1s8c3dpr0631pa17r9sch1lv1qqwpmsridp8dl8q";doc="19k6gps25d8i28vcpbp59k47mxdzjn9d89amccr5si5hvg1c2qnp";source="043ias6pyv22g8ywv5krlzj5ma98wpi0r44lmi4gfpqllkay5g1a";}; -babel-italian-69298={run="1vwps1b50swsx1ww2znwzjizc6gn26j6mx470dws76w1njjfgp83";doc="0d21yk97jakmq0pan6q0cx53bl6945y5mxckzqch285fy8w3s0ba";source="0b15934yvmk7r94c9cqjhlsdpd8c9jp2gyc51cxksh26sw81w5xf";}; -babel-japanese-57733={run="079bhnmpcgaml555dgrmiigack6qfqx20fy85c75p4fsn2c93bmw";doc="0a479m8rq8l02q1w73d6lpfpi0gs5qdqfbl132483f2wwzznvnrl";source="0kjv78h69422dj1jh7s74pkdr3qrdxxbzk3czzfsc5rax71x9jhm";}; -babel-kurmanji-30279={run="0jp1aivn0pzn8yq1q79gvzwdlcz871apjg6yxx9x4wf8yqr8q1g8";doc="054b2pj4iv2mnaffw1a6zqihp18765rdx6d56k6vj9kxf2gqrz1n";source="0v6nh14816ai72rqc7nxd8k16bi75dvx2kbvnaavknxyr53pjwb3";}; -babel-latin-59800={run="0k092q6cdpd5qp7kl0qcaf4idbsfrbyb12flq61k4xk8yyp6ip1f";doc="1p0xrbmknfffm95zmnldcwrrpc3ngrlvlnfzppjql1va8vk04s3i";source="1sa59mvbjspmdc5sc3cdix59y575nx6pgc878lvlcrfl70a7hvw5";}; -babel-latvian-46681={run="127649mzw9jp35mq1yqpavlvkvcvxvp61sn0yl4nvhn30d0dws68";doc="1dvcwyqvx5xw4fl58accykkmd9ksbg5a3yqalb6x86hdv2fgsnq8";source="1w8w1ayk1ixwsixlsar5nmhv70fqahx06ydraiyz543gm3vrk6br";}; -babel-lithuanian-66513={run="1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii";doc="1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds";source="1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy";}; -babel-macedonian-39587={run="11wiv5aw0k77rvqwcgh4xdiwcr67q42rwq0mq5vcpfz2hb0v8i6n";doc="0nsvnmjx8397xb02h2l00nd7ynz11f9qiqrpim2f18r55qmr0hb3";source="08z4ca7kja5kb2azf3whgh0w7fabxs3jcijihm0vnzhb1809napi";}; -babel-malay-43234={run="1h4n9m38s560iw86cr88xzflizkd37nhgyl51xvniyvkz6nkhrxr";doc="0c0jriwwkrll6sknd1c90bhipcjr3inc7vdn6cd2szlbx72ir12a";source="0r1gzyi40yx8ikxkrdqa1hg33vciz1qbvibd8dv3qbia7mm11hqv";}; -babel-norsk-69603={run="0v660l9s3nc6h2mc8mlhz6jhvzf85s3qva7nldmnv9fw90f64s10";doc="0i4938n2ax9p78glxrsam2fbqfgsxk87ywhs9kci51ph6n70irds";source="0rz3rvib2rbbmwar474f0n20ywpn6hl50h2w4np0djx2kyn5hlls";}; -babel-occitan-39608={run="0s13mw7w48zq91kcx3pk5rzfg7d9dcjr8n8bvqsk5dvs0k4hk1dk";doc="132kk66ya2j6d7cwzd3p21qvjqm96dvb83ny4yj5q7vjqiflkn0z";source="1slny81jf77g32nxkvbwr429yi51gfpia6d1qllni978ivc9lagx";}; -babel-piedmontese-30282={run="0kcb4h1xsm8qcgqmqpgkqqxii5xvzpa2dvx6l41g3025ybbp558w";doc="0c6ql4g2i43zxx2ffnvg2rwac5hshvwngj7999g371fndhfzs31n";source="1xqfd8s659plyijsc13014zjhd9ndpi82jwgd597lw5d9jzwxf6a";}; -babel-polish-62680={run="1n1cz0jixlyw2zbcgz2ik03s5qarsh4bl12krsqjk2knqk1r456n";doc="1yydj18aiaa90n7g7c6widczi5kpslhcy3l1bxnq1dpx0g8wi94p";source="0wjkcbs2ghwg8x6mp6blihfrygc4ssy7nb1adj4vz3wx63li5j04";}; -babel-portuges-59883={run="0n4sz1mdwrwq5864dca367w15mzln7my995sm57pps1b0r8l21jb";doc="1is448ri7d5qgypmphqvvnrgf1q17cqa81j0qqbyqy3zdfqlzi7v";source="0279qlf36ji8qyagkmbrisfw7fz519ybgh2di42iqv2mwkwzrdad";}; -babel-romanian-58776={run="0pmjpy2p30299a10njvnpl954kdazir149b3aggcljaq0j4zdnzz";doc="1wgimmy2vwg66kjm0kx0lcx3zvvhdczxc19nnwqfbwchbpfhflyb";source="1qq1j0hb6vp8cdiigc425m6k8wpf7rxzdcgq14p064xlxnmqrbp1";}; -babel-romansh-30286={run="1hh4ashx2fban828gj37y46rm0q7w2j18785in1fwpir3cjcab8b";doc="0w4x7c9vws6k799ilw2w1p5d4qv2z9wb3bkaixb0p4gxmp6khamb";source="08v3db9g43pviw7fi87gcgj5xb5b2f07sll1slcvy94ffnmwlpww";}; -babel-russian-57376={run="02zvg65m1g15a1fbin635gvx2mxw2ljv4srd0wjjfcpdyfg53sl6";doc="1bs2q9xxqyjvpqxr3zfbmk0lkf58jg1ksi5a9mp07vznzplz01i2";source="12ik2dwkih2g0gqpbg83j0kcfwsb5grccx27grgi0wjazk0nicq6";}; -babel-samin-69604={run="0sm3288n25a5fvz05h5n39vvbpfp3kzwsw23qc3ijxj68y6xfbyq";doc="15v9732002svqd2s63wxf00wsn390xh683v0kzi7fyw5xnh8s9yv";source="16i3icn2kbkpyhij67mqdnqrx64jcjg75gkyrjgqj8kdg9kysx6q";}; -babel-scottish-69610={run="17xqq3526a7f0xkzdyp8phvf3a39b0pxzsxvxjm84b4yh28yfhyg";doc="07krdfp181jhc7vn3w15qny38vnhhbkkmygdkh0kv6xdycd9096d";source="0i26k9qlpv0qgzkxjs87k9ph91gbkqnm2w2wiyqaai77adp15dlp";}; -babel-serbian-64571={run="18vr5230h0x8hz9zizpsnaj56v6aciaa34p2jb2ykp59r709iwiz";doc="0daab33jd26smid0m38fh1m5yarl1vnc7qi64am6x3rl9zy55a2h";source="0jqj3bjip522w7swsqnpqls1mgrx304xrz91kz4dlqzvqw72f2l7";}; -babel-serbianc-64588={run="0pqy5s7pgbanlgcw9sgbig57mcs4i2yfydlbwz8xrrd6ysc160by";doc="0pw76idmc004nbzb2ax3shv35fzy44fiw7j1jp4cgaw64adr1a5k";source="1b4yc7y7d6asrx7lsmgg7wsdx6wfw1kvfdnc2xls7q6naja8xcws";}; -babel-slovak-30292={run="0724h8hnc4z0l0kkafjczzc69rh6h825wn0srfpy1zmqimybvaff";doc="15v2hdmpbivcdwrm3mlyb3bb3p1298swq7vwxqb9b5ylv8907sd9";source="1k4w34wq8n06ck9z81wa490fy52a1dcgi98pcvdmfggkalwr7ml2";}; -babel-slovenian-69742={run="1zpw0zp4f5wggaqb5wb9r3hjsxx8b4f892z5w7wirazqwgmxzn2j";doc="1lmjr0cs0j48d0l2qflg8hxcaqfbqfxlqsl5fj4g5icpha4nji96";source="1brwg8sr19048wgn0fdbi2y1rn5ls99kij8i71i789qf32hb1jvh";}; -babel-sorbian-60975={run="1g2m2ydy6rlb6bv1p3myfwnyr8kk1l7jpq60m655x8hqk32119fv";doc="010v5sxqjx15nvgsycacx0lwf4py7frqppr897a89wzmj0fv4svd";source="06vyg6dh3yxqmvy02ps4b5kgxlcg1225llc6mqbrnwm54548xwrr";}; -babel-spanish-59367={run="1d38lmr5wiv03w6hzpfzyq2pdl845mcx0db5wcvwm6132vmnh6dp";doc="1wphssp001lg7blrv6wh11ppv5c18pan2kb49s8s94w2jh4jmwy6";source="0vgyqldgji8fraj5c7na6zplip4c6bc41x346rvzjj3l76q6xzvd";}; -babel-swedish-57647={run="0h6p32rjvsqzy8kdhr0f1zi301xnrsvb8l9k7g6gfwv26fpdcnzr";doc="11kshqcqn2187q8h1hc7ifjnf8cz774wdnd9m2ncfvhf52h2l6mj";source="03rp4n9wkqyckman765r8v8j2pg5fg9frbfxsnhq0i2mr0yhbr6v";}; -babel-thai-30564={run="02n0zl8xa4y7r2n8zb1870b95inclcdmwq0llcspl54vjgds2yig";doc="157r19z20gn3fy9si8mn0c4zhgf1kpkz6jv8ag6y26qjp1c5g4kc";source="04x6d8q4glkb4w8ic5qcywxi009zy0f7dcczp2fibs0prhw1kmi4";}; -babel-turkish-51560={run="013k4sv2xj0ky344frgbkl2h836dzjl72hacgb6rcdlkzwyh5sqa";doc="0qdcg64lykk0g0gr3y4sc9zml58spq2y4yvlhc3md20mp6l3ji8b";source="0xk8c1l61vs547x7586m60x2hfqil8zq3ikpsj9733ykayfclifl";}; -babel-ukrainian-56674={run="0fm0sbr6i1lx2zg90w3mlwlyg0j0f11ya6as2n1w4gbm1inmc62w";doc="1h3ag9pybhzysb65xg3m217jll1h02ks04icrlhkp97sx3gs9wqn";source="1v7w99b86iclp16qxdjfqsxnh2p9zg669pwdlman1467y2z13p8s";}; -babel-vietnamese-39246={run="0xb8w1dm525xrvpsxy6y4n6m8rr6g895hysxbjcvv5x8bjvl2vx6";doc="12cj6335qj5igap6hff1qrfz4ms4s94xv7vlwdcv1hs5gabqylaw";source="1xdkjigwmmkbihczgd0hawszzmnn3j7fypsv3sx634ham8j02zzx";}; -babel-welsh-38372={run="1778pckqmd6fwd3xh3yk1dzhxbaqnffbk9arhm9qy9qxass1nnf4";doc="1p27zrk4dacj67lfim236mpv2s08j1n5w1wdpyziz60hxv5phmaw";source="1gkryz7dng4919w9wn73bvc5cfcly4g7dcwh1ilci0pbr55k1x4b";}; -babelbib-57349={run="1ka976ag8w02yrbbgldzlqa5852ag04i39w9wv9bhprn84xy5cl8";doc="16iznzd8hk1hxxp08zcifn9v5bvh3dy70nyas804z8av306s1h0z";}; -background-42428={run="0rxb5vdfgxxadgd3isbghsmycdh4ia9yjx66mc48n396b4psbrcy";doc="0a1zxpw8wjq1mc87glp7kwdvkrg618ybwyagdkg7xnp8r7wisnjr";source="1mb6radqhhaw7k0ay4i0mrj4bm4n0v4lj6dwbk8h898ypnmdirx1";}; -backnaur-54080={run="1sj9a62s7mqms6i2gv52dls1jncc478ki51wlnp6j5hq34g8sw8s";doc="0mzpammz9ic3d56ylxl40b3m8rc0s0ilhzx25h1y781kya0n6wb5";source="06aw2vvmkl1jprdznc5cwmyaw890csjsbkqmy814ddx6py7pxni8";}; -baekmuk-56915={run="0gfj79zhyg7p300bw27akxzgimvqmagk7y6b4nd7jq5wvrv4g5y0";doc="00y0iglv170b8pz79xjc0kz3yjphbb6a9alk5gg6hsdwvc6gf1by";}; -bagpipe-34393={run="0i3f9f7a38vcsypmf0yv2cdsb1c8n3qin4n8ac73gwdknhhibxjd";doc="0fagwknqzl3k6vc2x9axng5zljhc4jhlqd1x59cjkbrwp8xvf8kf";}; -bangla-65786={run="1fl4ljyh4ypqwvkhq7df1m85hp0vmy0xmdy2km4wwgxva55h0d1i";doc="13iprzx8j84ac6ink12arqw5c5jy82wlc2nymlfr8d226s37nac8";}; -bangorcsthesis-61770={run="1814fspfg988qg7ihx3rwfxk7c79avd2fxwyxcs8pp0pk38lg15f";doc="0lv6iq40wcd9zanvs51c7k251qnxz59470pidr0gy3swwpa8aqwq";source="1q0kdk6m143d9niwa59lcihifgfhl4j603x53dzwaj68hil5h3g2";}; -bangorexam-65140={run="1w44hvqiaibma89s72svgcb48sh2afhycfffj6dynnfzfps2an3i";doc="1xmjcf27x3qaqzavfcaa3b2731zbimq3zl74sbfgp9z93x5xb8m6";source="074136x5ybszfwfsd92cmxbli3b9f62rv6vdf1qb3yb2qnxhqlb5";}; -bangtex-55475={run="0gbjmkkidm8xk6hpkd0i0b778my5xf7hfwq3fdq2v7ca39bii0d5";doc="1xizgjqmwafjvcf0j25xh2gzcqzcipymhmhh0r56lwv02fd34b4b";}; -bankstatement-38857={run="0r9yfjq0m55bd973gqvjpy3qfdhwglwm8zki37ppj1dvca7rzrbc";doc="1qyrb00m7rlqkn77hw6sb3r9b8aap2qj13ni3bwy4qv2s12sfmyy";}; -barcodes-15878={run="12gzzkj2nkkzw4q6jw0nvzil67f83myhwas37s71dnpqm5n1yqdp";doc="0yzqllbvdmymqv61mc740hwjz76m7sncw4mkvpld1i9kv48f0nvn";source="1m9mifdmxc07rmlg9pav8mx856jg1g2jk48hyxkd1zs6b8za6ani";}; -bardiag-22013={run="1lwa55zrl4pqyvl754j4wz076gn9rbl0kfchad5pzhckm27vvp6n";doc="1q3ng4j9g4bp3vvbs9d4md4296vi2xhzxji8nbvq1ibkzbplgd01";}; -barr-38479={run="09pzipw0qmsh0p5y7m63gwvca92g09r8pq6zhq25k62x3s8y6a4z";doc="0w4kvjv2zbsg5jppqky6yx0wr7xq61xj2gk5yqi1mbbagnra72rh";}; -barracuda-63708={run="0qil0n2f1qcz2yrnb6g6w0g6ankwpb76hjybsn12ij75ihbiy9m7";doc="0sknnb78wbiysvz537i8cay2la499y6xnvn5q5xb5my5pxadjwdq";}; -bartel-chess-fonts-20619={run="0xd51ighrn01kwb4n20dsvrjhh7a0y31py2mfl1dq34v8l6yvn9l";doc="1sjwli00iffizzwaiszwyd42aya7c4vz5as8k21lmk054x9afjpc";}; -bashful-25597={run="0cp0lvqb88myspsbp7s3xd0rrkr1jlqcqq846mk8p7r6r4apl1ca";doc="19dbyg9njh2lwckmqnmy52gllsdwv2nvcp20marsjv5hps80946r";}; -basicarith-35460={run="10cjfm3v6b7rkzc0wngg635xbyfmrnzs5y6f3sn0akdfxj0d3x28";doc="0qm4qnxp3n42zvkxyzanl4psiph9z9dxz5b2i32fpn7p3jhn2qh4";source="1my6sp0mvbmpn2bakr93qwasqh7rwmzy8lhl608lssnxk33h8x8j";}; -baskervald-19490={run="1wvdsq2qngbrm2nibvmssk62kqvjkk50cxi2d7lx3nb6jgmj33c0";doc="0zj9xj7y1srb58lr9brmi2m7nw63n798m7mmzibjvn50kfw3qc8i";source="185jgbk6rg6vkdwhwb8i0inb32qr3rgsdi3xhgj4vj0iah9mdkbn";}; -baskervaldx-69273={run="1iwqw0d6wx9zl5p9f92gw6zqshflshw4isk35542wncwm1w8fbzx";doc="1xzprri9n8rmnyj5cxbhix05cs3bfgvia34h5qkql8ykfrfxpk1z";}; -baskervillef-55475={run="108yndp9v2awi5vw29zbin82bcvx2fzkkhypg7f4dcl9lziwdbg1";doc="0divl9d4bgpjvc6yy2yawcrigkvv7pwdnxy1gvf8mypwhkp17anc";}; -basque-book-32924={run="03jh24rrjczpgj9d4w5fy9fv8w29wbqylx5s9n14jwdsf6f588ip";doc="0sza7d2qx89saj6rx591ys15b8gvrnalrbrkk2wcjln1x2cb95jn";source="15lgh24zyqlmqkw7wdigwvvkv6qwlpv4zrm2zqwgxj93bffa4fs6";}; -basque-date-26477={run="1hikrfz1z6y294zg00arnnc6any1iyn0gkhmv9j9wsnlvylcbnxk";doc="0gifh2wlhxl5s2p816w06w5h51pg6gn2mdskhpgkq16shaj4xqcq";source="1vjq5pqkan433wisv0d437m6hbmfqyds27dzwkyd233zq73fpjxb";}; -bath-bst-63398={run="1i3mmivvw3wdqphw14dfhscjrximi8wi0n9q1cqxkf89saqml070";doc="0yn148yhz3as5xzgyhk6j3wckxpzn7vw6r2mzv10ncsf8a7knycw";source="1md11iz13bbbn2i2p0s9pmqkimc8wb6k7d8wz2sgwj48c2rdsd80";}; -bbcard-19440={run="0snfsyslxnz84a6lgwi21rg0f5vbs6h8yfyywih18vmlbjpba3zx";doc="0rbx7mpns7pgidx3g5pi0r7d638lwykjw0inpldb5g3dz1ipnpvc";}; -bbding-17186={run="17na9lw0yaqn7i5dnlvbfg2yn74j8kr4w526z10bzp4kpynnpnlp";doc="0pg135sdbs1zbsyv1cp69akk7kazr5937ysik38dyhhc8f7vj49d";source="1kgz94yy0gm19x59vh24f9zv95gy53ayc1906r28s067mknmc46q";}; -bbm-15878={run="1l1yyiqy3izbzbrpz55dgd46szkj55g8wkjr5xh7g3jc59y5kq13";doc="053jc17hvq8vphm6jqr929hf45xkb3rk7yplq4i55x57vkf8bvdq";}; -bbm-macros-17224={run="0h1qqr82ihqn7i8r6pk2mrxkpf4cnil1dj1a0y4y3ydph174v4l9";doc="0pxrzpbwpfzk9jhb544zmya41vzdzyn0s5dcyynajnf8lii3kivr";source="0wc6wf1qi6kxbd5a30n926gkagyjsk7mji9g9nzv3jwrshqihspw";}; -bbold-17187={run="14dz70qh8kawzlb1h8lrm0a4dpqkn9b03czd51s74z01a3cdmn7z";doc="0pfrhps4yirpg244lcpf10ilz53714ic1fvpk3nkp2ihjbaxbzy1";source="0qhfqg6kynfq6jzx93mili9kpgikq39wmlhgiav3bdzqhp6v0q3a";}; -bbold-type1-33143={run="0zvkzp43awkf5vbnrvhibkw185zg7h1rcfqav38z720cls2vgd7w";doc="1dj0vqnhmk8n383y426ma1y89r8y69y1lc2vkg58gaffjfrpxwxs";}; -bboldx-65424={run="0r6ds8wkf1qrv4mank08pzkwz4qk2pfyb6pvqazbf4jn4a46bjcl";doc="1b79xnpss9s1c7lmqlpznk4vvxzgp7dd248ipkq6n4dlpv0s2y4n";}; -bchart-43928={run="0knv4byfxfalyhmsqiq4wjcin0q0hyj9gs7f167cddjyzcg4z23i";doc="0zyiw3f37i3shf8ihhzxagvzwnsdaymbkpcizdm2ryziglahh1jy";}; -bclogo-69578={run="1rx0z4f23l22vs9lk246kff3cqznp7rzc2k6xn0nwphqxfap6965";doc="0xcq3ypmsjzbkxivak1j48mzmiixxfgf6v5fnwk22z09c5x67j6i";}; -beamer-69316={run="1igp0jcs2w20k94fr84s1af5q8mw0mrvraslaxsxcnxmh65dk9kz";doc="0y07zc3zvawaph7pwk8z9429463i99y9b6lzv9v8cacnhqk48426";}; -beamer-fuberlin-63161={run="0w4asfzmjrzqqc8dsan461fvmkjn21181lij46rhissz273d9vph";doc="0hw0cp32k2gqv9y1ai733sj8f08hdn3pj60qh2ykmcqg818q4clv";}; -beamer-rl-69254={run="0dq7p1zpgv3sdbncric180slinfxk1vdskzvfzsivxzhh2z1adkz";doc="0qq209gc6ssz3kz180dnd6kl2zv3qj9iwq5nzcbd50ypmm483dg9";}; -beamer-tut-pt-15878={doc="0ayh3kbh11l4nyyzp2kcwzn0phqhzawppy044iyl1wwwc2v3zx5b";}; -beamer-verona-39180={run="018ckad1q7ffkixvf6q9a5d4fzgpkpf9qv06cfv0rjwp80k7psyg";doc="11vv18n971pcmn8lf2cya7jf55x8zw1d9s4sg2l3q76rdj7l53ra";}; -beamer2thesis-27539={run="1rz02mxmvrq0x06xbrdqvfgs21nhkcislcnpdwx9gvrdmwpcyccq";doc="1ialsnm6qc9bwry5575b8l9ifgymidrsvy2dc786ixndc0fzn84h";}; -beamerappendixnote-55732={run="1mqx0wwb38h1aaxc4xzzq6430xhrxb70qcdqs5yj1sa7k9638ags";doc="0nvf6m7d6v8mbpnpz8bdam9bz4h9d84nsf17s1k13zv846rsp34w";source="01lkwbk5vpnpbrmjdarnz137n5sbaxw0xaich2jvcjlin46vfly0";}; -beameraudience-23427={run="1p3bpgkdbm3dlh7pj5w6yvgr0iqjshn6kchdpx86zicywwd2hqpg";doc="1qs882ypjg9cp19mrpr3nl54h1zry3pawjfwx8si2b6bsngz3wk9";}; -beamerauxtheme-56087={run="1a8q3a0z2wckyr3694nnkry0waqzqsgp3cmaf8ijcrfs42khxjcf";doc="19r7vjma15p3vw0nr3w51ghy7hq4pv6x92iway5rxmlx97dw4piw";}; -beamercolorthemeowl-40105={run="0kb2pvj9caszn40njgq99779ynp5kdq8ynqa0q6vhrh9l0r7d1i0";doc="1crml0lvdyk56zf1ylk8d4441237kfpnn7v9sah98w8s7rlk37r1";source="0l171ahdzizwpq8lq4rai2naj0h66q16p69nwhlwabynjkmfhhzv";}; -beamerdarkthemes-55117={run="07zg346brdpckcfr1vnmvqcahjmp87cb2sizvyx4jvxv19qqwpkb";doc="08zkfvjvrjh8wffv7qjqmv6p0997kriz6lxz06dnsp7l5j3p675j";}; -beamerposter-54512={run="19h0zh583chawpzm59xv7243vzkz597df68yy0zmn3r6ha8k0qz7";doc="0xspyywk813ndrd5xps7fxwggkmdl078fmn1cvxfx3cxpnmdf822";}; -beamersubframe-23510={run="06csqdbh272jbh3zpi0f8zblbmi0sp5iiz1r1qa9qc0lw81mdh7m";doc="1g29xay21yr8aap2fzklkg8q3ybz0xmz22xx5cd9md93c8k9kg7l";source="1zb42dsisab4234s79xvva74rlicd1gg4pbh867rxd15ajgy14k5";}; -beamerswitch-64182={run="0hl3c2ircmxp8bywx871w9b7rdblzn28f0mqfr0pdaz3gijbw7ms";doc="00gxw3mdrpdziixnjam8swq1gm01nw5hg6yzs4ijdpxh5d911c49";source="1pnr2hrvz58c5i0848hcdjw85jybz4q7lpb3xwfkmx84wjx99945";}; -beamertheme-arguelles-70209={run="147ldkcd2iyf9xs6g5vcbgdj7dh4iib6d8r2k5mmb8bgcgj0fg9f";doc="0p8bg89v8spv6lzlp4wl29jw2k6jxjbc65sxml8bzvlqba0asq9j";}; -beamertheme-cuerna-42161={run="1r6c3ar29s06b0yfn85wssxccayxn2706y9jxdx2pxsr85ndc4js";doc="0a8mmg184chg2lljv1k7ffydg4sgcjpjbnfjzqcg43cqd01v5dmx";source="1avywir51zks1hygqypsfi6lkrba9ld6x5mkr8lln7b2s4ijnysw";}; -beamertheme-detlevcm-39048={run="149ya5raar4xfkb910lk85pqpm6mrc5n5ghh6350knbmaa6bdwg3";doc="1wfq3wc7b3516s81sbp6md6mx9szbzq5ycqvsr50y3s2wfvvj2lv";}; -beamertheme-epyt-41404={run="07pjgzgkjmr4hdf16m7kx2cf1448253jwgc522akfvvnmx9fi26p";doc="1a987h1cg48bw05zjh79ga23qb37s82dkqhhgvp7gsnwz10pax2j";}; -beamertheme-focus-69742={run="0jsjj0rq8267yj70398bcn4yziyi6kmm406q1wjklydnclj8pi7r";doc="19qn37248i97z2pdxksm4z9a1zdkqi5p3fn8rk52y6v35w2xkgyr";}; -beamertheme-light-49867={run="133mvm4cayp49l8xvh33q0jp4qzhmvd3q2kq2aij3sh6i0bzh5aj";doc="15s2s3b10w0czq513mm2y7qrczm7y91qhghd0zsfvmy129mwfarv";}; -beamertheme-metropolis-43031={run="1pmvcyjn04pgcmvanj369hxqjha0s7lh1z4b6fbhaj2aj32l52r7";doc="195jhmhzr4gbi04zmss5nl0lm9rkg8spynwz5vqlgbci1xc2cw15";source="1smxiqwdvz4bj5rk9cmsqmy3kwa722ab5fhns67jllvzrkzy8zcd";}; -beamertheme-npbt-54512={run="0m1mpavq8p4pswibgfhsbnvg59kn4sxz0m4p2w6zjkmy80s3naq2";doc="15kc24d21d1r34hd07zr65rp1k55fwrxr59h0ayiiwgc9fkjjsd9";}; -beamertheme-phnompenh-39100={run="1smqwy1f7jz012x5hmsknvarykalz58iysnwf3px7kwg83fr8mb3";doc="1pg8242n3z6x1n4kp8my2nfllriijxwmwfn7d9hccfnsvjj25gdl";}; -beamertheme-pure-minimalistic-56934={run="1z283v6ipp7c7h1qhm043g0sdfcq2dwzk9l0lyy5951y1kj965bc";doc="1chzf3lgd4sx26nbmacb7dadpk1m1rm913dj01648vbd2bz9y4zb";}; -beamertheme-rainbow-67542={run="1zv8vrifblbhw6zfbx9mrfk1vklr83rwd6gly42jyg7fh5awag73";doc="0wy5cc1ca6byjw39rhj3xhynifg06ijqab5l1pavpcahyq6abq7w";}; -beamertheme-saintpetersburg-45877={run="1d48158ladllzj6a1np20irl0r0syksb3wnisxbbwv3kwzr7fgj3";doc="1qkzpbc29587lmckjkl3lx08f2j0q3aaidqz22r6bg896j8q8pr4";source="1r4cw99zffqsvppc9l7z9k8l93sfk1nk8pzj50nm2bmkrdbfk32x";}; -beamertheme-simpledarkblue-60061={run="11m8p3n45qf697sjzszjpkdwqfgy92pzxh9k7dx72ikpdah7ba9h";doc="1ifbh5r0sxk8nsf8cd1g0d1w26ypb5hhsylc7pni6wn9n70799jy";}; -beamertheme-simpleplus-64770={run="0ip3imjc2gz4d04k8lx9vpd4an9sqmw3gbb25rmfpyy0qfxbj0ax";doc="00lj81r295zh9lrbffq0ja1skpg8l8l3waj3d34sq6i9sf8rbg40";}; -beamertheme-tcolorbox-67000={run="06yri18aw8bb6l69njavl3mj38rmiy9aabjyfvy3nam2mc7ivhk0";doc="0v1h8smnlfic4r5j8dlixn03ihxy8ciwgc839zy739908g8wix58";}; -beamertheme-trigon-65985={run="1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0";doc="1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q";source="1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv";}; -beamertheme-upenn-bc-29937={run="09a7da5ghgf5q4qp0djp3pya35zsm45wkiy5srz8p9q8pwg04bdx";doc="1m1bc9mxdwfdm0v2lb0i3pfxgf5as1lpm8a05icrm7bdvii0vsiv";}; -beamerthemeamurmaple-69742={run="1ghhmr1b5riskhqyr7x8kqjg76kqshmykw4iji95ibhnz2ywj43w";doc="1s4zb71fp3lss2wj72f92w1gzj4wlb1161cp7s1cc76nzacl00ya";}; -beamerthemeconcrete-69528={run="0661r339w4473i6d1dj1wyg2pc6b0539pqpq5zwqq7sk2c1y5dmi";doc="0g8xbg6ln71im7a6yp3hg8xpa1k0wy813zwvyha9yxj2fbqfrys4";}; -beamerthemejltree-21977={run="02ccd8qqyjkvqqyxr94p1gc6qjryl83vpa72wcm5ywr8gmxci0pi";}; -beamerthemelalic-58777={run="10wv3820avgviic0mcxn38yycyxqfvmf7qhb5ybz1x84jrw8k9hm";doc="1wz984il1z42ck69xn6rnxww3x4xx127syyx37wdy246i1ji75vw";}; -beamerthemenirma-20765={run="0ivhbhybc99hacnrfw1fb9412f6614an1955rglkcbwxwkji6nyn";doc="04155wbw6ix7an8sblw4a8q9hbn7vzwffady4vc23vzccc2i2f4a";}; -beamerthemenord-56180={run="1kb3485dv7kcj04bkgz8cv15kv7jmdjy0jcilvi5zc1vn690cyba";doc="0ls5ivdcgayz9pqm6j1wd5f45s063kfknzxf594rdipz1jnmvj4q";}; -bearwear-54826={run="1xaq0bmv8jv1zss6lwx2ccx8inrmyw1r9bjv3sbqfhp2x4d5xjrl";doc="0vm9lm6389jnmcgzx0ffmay2bw4d0h1wfmsfbj3x1s1vrfl62r8j";source="0dzmlcrc4izb63862dcafshzsaglq5m88z3cxmwivmwpikhh0gb5";}; -beaulivre-70050={run="1246j8vf4s1sa718g5y1rqigkh06j589f5sgkg3qvascsbacv9n4";doc="15dzb9slhisin5mm020jvaj02dz4hw2frm9zywv74lyx31akra50";}; -beautybook-68438={run="1s0snxw87d8f1chj6ghbl2x8byq11piw5s95v5pla9k60559qnvh";doc="1ddqd3k2mdj0psqlbgkjpdy0ayjcxh54bqgih71lwsw73hc6gd6i";}; -beautynote-70166={run="1xg2y2x69ghz8dy5mr1wqpdbjv7hsg2801ln9yr17zd7wgcip5lz";doc="13b2bblzg7bfyxv7agc31ijgaifjxn1hx2jhfg9gzg8d2qk5h1pm";}; -beebe-70064={run="1w6n6112mq82gz8mmyfjs1wgqfpy1dln2s49r8dmxzqjakws1486";}; -begingreek-63255={run="0dl4ap6r3xdwi0kypp6mq171jp4hl9hrjlhfrw9i6pd31qh2bp85";doc="1lmrl3iqgspi6hd86mwssr2bjqg59dykgwl4kzjfrbqa1637df9s";source="0nyd2kqsmkz6rvsfcymbbl2kvs220rk2fi2wajv46w0px81bxch7";}; -begriff-15878={run="1hl6jb8gg3acsj6rs1z0w5v0i6ivvas87hij4n64jdwgf1lf02ja";doc="0bd8gwf3ifqkjpr8wnrp0xx78169b8yc1ppdnyg9v6n4l1b0x0s9";}; -beilstein-56193={run="1xh2955zfnss2n9g8rsa0m1kad4b4xpsdrjj891kj97hhgd9hpdf";doc="0k78mwjqqib6hx7c6lcxkzrbg3gfw64a68fj32g0wpvdyj406ssf";source="120gcmpz53l2pzagh40nsji9g86fq4xvahzhwqqw7p01r03wc0cl";}; -belleek-66115={run="16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b";doc="064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f";source="1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8";}; -bengali-55475={run="1rqwjn1vim77r30nmdmw5v50phpsfzdcx8nlxhxlvqsca3yqzsvz";doc="1zxczyil1izzj9pnz9c6my76mggg8maxdign07qn4kzf8c0fq8jp";source="0b4v7jrngga8znbfiafazxq6z333wa98prp7hwzzhpv3nxj6kbl8";}; -bera-20031={run="1i3mahkkb858i6a3wyrilcbswdp8mhclvixdxgc0wpkqvxa6qwya";doc="0llhr464l0akf2dx1avnm3d7adzcz7ml3x95glafpk0nfgb98qgd";}; -berenisadf-32215={run="05ibwmiklbdkffb1d85w9097sv215afgbr63fka2iqzcnm5lzbk4";doc="18awb9xgra9qmrsrm9l090c5lsx14xp7dh034k1fq1g1767w68ms";}; -besjournals-45662={run="1jpp3ayblhwwqzndss91rcns3axr60b8zzxdd6f4qqifhaqczk3l";doc="02s7qd7vvdr6wf00cm7026984s6vphp88iaqhnhk0iiafpr3lk3i";}; -bestpapers-38708={run="00ig29wqb4fn6qw7szmwmv92s19nc2wpapv4pgv8nwsby8nplyrm";doc="08yv29s2cx89nq0lvykx8z6szs72d2ph97g75bqni3l7b4n0wng7";}; -betababel-15878={run="0m2m3m59a2ma30zkyqjc3h076dp74m4igks0dvrlpgx4sfqg90zb";doc="1zi2yxvxhyazjncfjv6dv8c733hb0g5sxr9x7wqqrkxlxgp549wz";}; -beton-15878={run="1rjj64wnd9xvh940rl9scidhv9ridqz38n8ndzs35hyjm8n2lx5f";doc="0i8lg2iyjkzpxjzz9ym61v4zkqczkhvs6qjb7zf5xw557l2i55gw";source="1l82y1fz86qsnv58gjq9rm58zf3ki80xmcqkwlmgfp334j9jqz8y";}; -beuron-46374={run="0zfkx9iiiz7h501ls3z1fxk2ga8kjhi21vpmlng6vvw4v3dd1xhy";doc="0d0mll620s40695kikaykj4w3ngm6rcb4xzrgk3apl43pcf7mss5";}; -bewerbung-61632={run="1grnipw9vjrqy657wkrg656wmh1553wzd1x84jc6zf9gp3v1440p";doc="0ny8ps46wxkbsd5g5yxyrh2jd74b204r35lggy9r7ckk4jab2wj9";source="0y79pmsbjzpykldic1a41l188wmkmn9izhvg5p77i7phx35s9qjz";}; -bez123-15878={run="13l8qvnhfq575pg1nvcpbrwyv5wvq3bhpkmh2306mds784hvcib2";doc="0qrskibmq7sv07g60gzd5cp34p21ragr6yn9g6384gib8vx60nqf";source="0ab153h8i8nmc6v5g9xwvpymjvpp605mbj9dmxdyl3ic49cpnl08";}; -bezierplot-51398={run="0iz8zsifxrwbv35jlgq3qb4hdf2sqgj7smcc3bfll655zq0hqmab";doc="070nxd9n0i9r7h195lkm45zfpdbaqz4lf0k69qg6qj5adwrdqbvr";}; -bfh-ci-68828={run="0z8ymg5d5ifmhp28nm9cn9ascfl8m59bdhjgwq4wp3i4a05c8ais";doc="17pr0ydkh13h7wx15wi9xzmqpg3xdi2m34z6cb6ql1g5fi0dbgqs";}; -bgteubner-54080={run="0a8zhnl1nxzg5r525sn8sz44crjdm5fmy09glp8cjj7nic5xj32g";doc="04nh6c3q2w984x7kmgj023dbpjq9mqciyg4xrypgc4zv8wvcgv1w";source="11g65q55cv4s72cpraxw7yj4qskkhqhc0mz0sfy6c8jrq7255ils";}; -bguq-27401={run="1spl6qnixrb6vcdgaaxx0fk740kkxv7y73xamlkprdnrsmqrswwm";doc="10za9hbwigcbxyjwyy5cd760hqabyyj3g74w355akhfpyd20m55v";source="1vaw8sa12c94ia6fknnpbj7xxng3q3lj3h61akm590riffklw2kv";}; -bhcexam-64093={run="13r8z9wj4v07zjfv7fxy4kq26jflywbvj8p61g7r6rgj5v4pqay4";doc="0gvf2hr60iyymwq8alkyyya4vilsczqc5zhg3j7ydsz9hpvbkdp7";}; -bib-fr-15878={run="0csd9a4j3hvgyczgnfnhp8n49j4baym7nw8sck38m86r3kn8n7ar";doc="1inpqvmf6c5zb091q5fxg0r2w87kacvg1yy1lyai7wq3ll0axvp7";}; -bib2gls-69635={run="0aakzv28qlygmn39xs1r432m1yx6rpwgqdpfw4yi8b3c1gyr1592";doc="0v1q2xx6i5fpfcbqqy905n6mab55f6nicgfkkc89dgyqb1pdfgds";source="0apw4dajid7cpgnnsa8c96370mrra73vm0pzb1kk9h49d3zcb2g1";}; -bibarts-67407={run="0yqpdj8fnh5lafc9amvmnam50sgxhwsaw6fr49k2bzxcz5bx1qv6";doc="0di7fqxkaddpq3iqxf9nplz0vy4qzspala5hyh6l8zc9wdcjr0db";source="07664c9cgf85k2c096r2aahkl1ddawhcdqgf7wfrr806qi67mbz1";}; -bibcop-69467={run="0scvb7s5j4if7vviyvgr3sqkbksq7k62n4sri837jnri2d27cdhr";doc="15jszlsxckl9mfzhvjghipkirv9fa2fa81am8hla0g5b5k0b3kwh";source="0y87681xvr8a3m3l7a16qaxir2s3afm4lhy5rw9yvn3bdr96nfrr";}; -biber-68188={doc="1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32";source="12jl5fyb802yrfj0fdajksrli1yyi2apf5kckgh6k0cri265bmxa";}; -biber-ms-66478={doc="0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4";source="1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7";}; -bibexport-50677={run="1zbsilzaz68zvmbf2xw7jqw4l66clcplz3l46ggxw95gns8mgqlg";doc="17a5w095vkpp7j54h8m7f74l7vycsqbv6zzschdb3dd34scq1s5w";source="1pqs7j4xdhx3pqsc8i0wqnz9jkyg891dzl7g3cv19a6wv82k0xjv";}; -bibhtml-31607={run="1sg9x0jrgh2jng9b1pd08i0f8kzhy94sq0mf33as91gr43dzws88";doc="0is3q2m1xg52h5s9n9403c85yfmpjaqqbh8lgyfqfwhl5qqmgrf9";}; -biblatex-66403={run="0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v";doc="130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g";}; -biblatex-abnt-49179={run="1dn2929wlyzwb96iq5lj8x9zr2fi1c4qk1rldc0vrr5s3cxfn3x7";doc="000akwyh992yxzn51jlvnc20g12ypq2zmffvnbwxjy3cyq0aggq8";}; -biblatex-ajc2020unofficial-54401={run="1csx7vad5svflb76ssdkvd8y3r2n9agqqynw88wvzhzj61fkd2cr";doc="03wzlpr5v6y67syy0bx87z123ark524fm6kqjw83v0sa4y4kwq7l";}; -biblatex-anonymous-48548={run="02fssl0l50s94y6x7rv2rm0227ivgr7kfnim435j4k1l0av4gb3n";doc="0dffdxp04shrh7fsl4dilqcsnnxbjpbayy9r87hxmq3yk605lvki";}; -biblatex-apa-66605={run="1hlh14lg9cay5962z9pwzslqs3mbqfd70i055r3xbgd19a8hw5fb";doc="0mqg66qiiqnffiarwi6fs3cmyyssiifv5kbjg9579lsh3f4dag4m";}; -biblatex-apa6-56209={run="1a1kynyy1gdmsfnwlnxws74hwyqc6sq29wv6ybalpipdzn7dg73i";doc="1qvn9bnzvx88qbmbdgds53q08v7ml42mbqbcn7bzzq6mnz9ra2mx";}; -biblatex-archaeology-53281={run="1kf5aqc8mv28k0aiipwm6yc1vkgzyikp0bsmpmgdhy5acz3whfxc";doc="022l37hplzmvkcpnr06n4fz509w8wm24py0c05qljs6jz7smyhh6";source="0shn0bacflcaayajxpdiv9ik994aizpdmlc010shm3fzjdlay79c";}; -biblatex-arthistory-bonn-46637={run="1j0wy272dkzcb96i74qh54ap2hs5wdhmln8akh749fyydsazr43h";doc="094s5c55lfc7ssmz3mzj61zkxpnn1haj2vh582apzffppgd3fd0m";}; -biblatex-bath-63401={run="1v5hbvaxcqc8ccg3ydpzj5979nf7aqm6r6ax82b9v27sf9zmr2cw";doc="1h0ws1gmi9qf5kj4czkva3kqa6fbgq88dw3lrv6rn31fxyjjalcx";source="1haww89x8x5rwb77g7qfdxr9gaw08067pm45nfgpai8kgr9p92a1";}; -biblatex-bookinarticle-40323={run="1gas58hi5ycchbpamm0z9mn5jc2hbry682i4wmba242wm55digyq";doc="1s39gixpryiqf44riq5bk3hnp6nc8pdqbdylh594k9xk3770p77z";}; -biblatex-bookinother-54015={run="1vb9m88z3cck9gi8d41lsv4ckqli4wjdgwkklfds2z189vbncc4k";doc="0zzmlsikzv5zxvd5xh12fzynmkl0bzzvl2s2y2r4kfn6s08xncja";}; -biblatex-bwl-26556={run="1ii8jacddlj15sm45g5rnk7yqbsd7i8c6a1pxy34vpb6bgsfb69m";doc="11cspr9i8q1da0x23bplsy88nfmn1x87zvrqdc28gbk4ybi6fc4s";}; -biblatex-caspervector-70496={run="0y7ad07hs9ywkaz4i7m9vkka9c16sm6fgzjjlpk7hx7j2dvlifrj";doc="01cdlyq8an235qrvqazni1rgxw6dsgpnc8xnj4mwdlb5ajwcnphk";}; -biblatex-cheatsheet-44685={doc="0y2ry2q1kvpy8dqglqdfq3rc849hmbni0k78wr1xnjbpd102l3k9";}; -biblatex-chem-57904={run="0kv44yng5wff1xkgw8nya64jizfcf1ipxrgnf46pd1dak5vlsiq0";doc="0amx09qlk78kw6iam8b83xx0kw12k5p7q6wn267imr2rsibbs3l7";}; -biblatex-chicago-65037={run="1ik86b38bc59qyj68fajcbskbmlz6vsg6nzwv6pm1fxnmhnnfd0l";doc="19sy3fi70kmvqknbfa0wxvn563l4s3m59f3jx75n29vxrdljscp4";}; -biblatex-claves-43723={run="0saj8s7q9lzjnydjh3x2hcnhj0wfm2p4rvxk5n6hi2ccfw78d3c1";doc="0g4x5jblj664ngppqpbks3d0ahn818ck871q2aqir6jgkrd13cpw";}; -biblatex-cv-59433={run="0k3bbbjvykc52y4557nm7kqna89mjq6g5j5hpblrcdlmvd5anq2l";doc="1xbd71vpm6vfyjaszn7jlxr084mqxw558rqyqr8x848hbyh6f888";}; -biblatex-dw-66579={run="1kjvqx9yqqzhwin4zwkp9qcgh6nk7bad5nlhx63mkwp37izwlcrc";doc="0a91cra76s2134anv2jinwcpp0jkd0pn7vybbin3pgyamhr469lk";}; -biblatex-enc-44627={run="0kvya1xzxpcmvwgacb726jqzmgr944y9ljai45f0gdkw855ylmb8";doc="0mmc5sd1jjnj42aa2q1g1zaps1hla6yayl769i4bya6i1w9r99yf";}; -biblatex-ext-66641={run="15fq6q1rxx8ca8p8g84m21v0l5pnibzsvlrw7abl8v3zs9bbncqv";doc="1pl04di1qmkf03i3l7ccszf1xab5bjpg6vjrfxj4n5gaw71k3jmz";}; -biblatex-fiwi-45876={run="16grb6hqmrhvzryijg6p4q4vf47a0lxa8bw59avlib5j7mqpg0wc";doc="10skq20bmpqymbgxs47z8ac0q5nckyph7s4xwqmpfd7pi2sksb4a";}; -biblatex-gb7714-2015-69775={run="12rpbsjr66wjxi8ncng5wir59j7mmc2j905ikgi3p81ld11401r1";doc="1j3phn1l9xi4xawd964w2828i2jwapn7qc53a0r4lrkw5r830vsd";}; -biblatex-german-legal-66461={run="05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569";doc="04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z";}; -biblatex-gost-66935={run="0d7fcvjv4100ws9p14qvp4dvv5wzp6xc8qhaqrxnrzkrzd6w7x81";doc="1zzxb2hqi4gc42jcf21pw79h56yxwq0c0wv7z45lq0m6vc45lzic";}; -biblatex-historian-19787={run="14p27qb8rdx479pj7zdvl00ir1zg8f0bzp107zfwv61ypq8zrvbl";doc="0hcghqxbjah4lyjzlrkixs6iqbkjx4d8r3hv16lgnddkndbgq663";}; -biblatex-ieee-61243={run="0iwj8jp5q16g0waci3wqc7hb1qmn35b6gw0x0c2v7444rs2id242";doc="0mnpgdamgf0f3nr0lbzkhl0ncnf5qvd3g3q4qnw45h30y69cpmsq";}; -biblatex-ijsra-41634={run="0gnm3h0918lvbqwnzk9wkdcafpzz5q3cln2z1sjaylr3mgypykdw";doc="0jl8mr3ai1ybc3lmp7x477znv59az94hlbzaqmvix54rxf6k8f4k";}; -biblatex-iso690-62866={run="1nkq6fa443dpxxm1w7fkj04169a50d61zwsvijg2z80ivlfqpn8m";doc="0y139zpq2xzdwj7ak46wdii3jsnjdywdxvnw5qwh58vvwwliz2cc";}; -biblatex-jura2-64762={run="0lq0dllah3drjijlscwy3nvzmimh9zc0in10vld516lmd88i7vdq";doc="14l5sf5xmfi27izkds3cv933397s4fn1ah4k7jgkj7vw424bwh55";}; -biblatex-juradiss-56502={run="0zi9b67y0p9zdz2n4j1lr5qgd54p3l13c132wjz749mlrv6njfx3";doc="0a6d7awx49cy86ndwfkfq280dwh846ssjkkkrgbq4vxlbmbh2zpx";}; -biblatex-license-58437={run="1fg16xc32kbg493y91sjxjnxpi6jb7kki7yvy3d796w7vy86ljfn";doc="0iy8ad7k9j5x5wnnk196dwsyc5hhz8fl88wq56x80cgfdkg20jrh";}; -biblatex-lncs-67053={run="021b8002cdb3h8yvqdfvidmzbdjqpybbgq14vya746hnnnas501a";doc="0fvy4ailfz2pqg09j6cqydsl9s5x36y0cdhhpvvyjfbvzbz2cc19";}; -biblatex-lni-68755={run="1z6zpq15kx0dsq035yqwal9p3q6ph6fvrax9ckjz28c31x668agq";doc="1pkjza70w9lzcn7r3kn8l5pg89dasj66c8wm8ixvahzvwgjfx9ax";}; -biblatex-luh-ipw-32180={run="13hh4x8p8hxnyz6cr22lb3djl5advrl5c9dyx6f491d2mjz7vibs";doc="0xb2wmg5psd0wi21j1vmn1y8sy8gw78350fqbmpgd6l4xw7bb4gn";}; -biblatex-manuscripts-philology-66977={run="1095qakmlkx81frnzanzdszk7isp92k4cgpqlgvwz9r5gk34mx2d";doc="06vg1il1cp3j525jxisdzbbd4v3504h4yyp733prh9s0q5s39yai";}; -biblatex-mla-62138={run="1fdznq1hvym9wgrxd2gsxdi534n5pbx95i8hzkz95zbxfvjpf4rk";doc="0i4716ascvd17l0nlf1wn4vddkjkzc85545wgb4cdzj847azm1yj";}; -biblatex-morenames-43049={run="1imryzaywyvdr67qcspys9r3mhl5k94vhqjsl16pmz86klq1bs1w";doc="03p7154s44ga7rlf8ya69qvbwkb6gsiwz8j2wycgzljj0z3plnjh";}; -biblatex-ms-66480={run="06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49";doc="1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1";}; -biblatex-multiple-dm-37081={run="11rl82yv0bfy69cmij15np3wc15jss82ghf965r0b1py37vsj0s4";doc="1jypgpaid18g09xxryriaj4n1ql0759jfv4jshjbkbk5fgf4c2yi";}; -biblatex-musuos-24097={run="0zs2dwsid3xhcl01a2hqrr0mdfr1q9j0zga4rjlarfzkgznkqrwc";doc="172kvn0rpmk331yvpf3zbyisv1qlykz8icxgr1xkq5z9bxn9qmkc";}; -biblatex-nature-57262={run="0pfpm5am4dwj04fwdjrw30dx8qrmfx56s7gkl9h9qyj2qadsx533";doc="1mga7yx3radxwqhfmxzh2hmsyvx9qmal394cv31mlb3yd5ww1sv4";}; -biblatex-nejm-49839={run="02v8bfdxslcgilfsnw0g516zl2rfqx0d87hjb0dbm4md5qbry0km";doc="1znfnxizc22dgpp3bkl1iim2ksi3w9klw4jam84103bpbl3vwxgr";source="02q97wss9bm6xj9lvr8vx8jvp8bszkxgk4ayxk5zc4lrnjzw2i51";}; -biblatex-nottsclassic-41596={run="00valazq56srfggfw1mq8h7285lrx8iyk44kb8bhqr1q7nhl6pzi";doc="1c5634p7knwv8zrpqh39zlpglbdbx9a5y5gw54gj37x3r1ij769x";}; -biblatex-opcit-booktitle-48983={run="1xciw0zxkp2034lccvhr6irkr333s0qqqacxqx20v51vjjg8ywkg";doc="1rbswdipirzv68ckh69cc29k908ifpkzp3vxgd2j0bjl3qvbwcyq";}; -biblatex-oxref-68950={run="0c5ijpv8r0wwk8pnd8q0zg3xmkfdn1dkqncdzqjzqql8vm0hh8x7";doc="054anh0z6z0yvxxqd4gsy2sk8yqwvsxgclazgpmqvfhr7xvjjl1r";source="083wrmqr3j28756z4f235kjyq739hnkg0qnjnxs9vdw3hzwijry1";}; -biblatex-philosophy-64414={run="1fdqbfia3k8zldsyy7bf6rhkscf97v84m5c0xjnk0s0xb134d7hc";doc="11pxds41wzdsfgikcyx84d98pp3sz5625kzim7bxp58vn5rkrd95";source="0fhp5lh4g7m07cfpr03ca0vrn12lks8lsq3w4vbvkhh2in5w7z43";}; -biblatex-phys-55643={run="1vj1rrhzh7ncvi2dap2cjk88vdj0dmlpakjiz953rvb7szx0h40r";doc="0z3y7gmcmp2p5g25jha6kwkd7ma4pzgqybxra4402p6aid823fws";}; -biblatex-publist-70515={run="0l6kwaqkj94ycmk2nb9vq61cv471ibrifhpv099x9qg4cx8g68n8";doc="18x8yxillm7kjpwy7v16lwy1fz3m50ypwr756an83bv9ppay4ymm";}; -biblatex-readbbl-61549={run="0byz95nahaassfx1gpl80p4vgc2bhs9wfw9w7xxwan6b1kkkz9p2";doc="1cp3r5j8b7zrl0k7zzhyjcrw9nypmr6gd7mn1q5whn7n1dn5js5c";}; -biblatex-realauthor-45865={run="1xv65ic8ywf18fdb246sr8pvq60hv4wmg7ris1glr5104g5yhg7p";doc="06nvybm142cd1shgpcabddbrfyvzcc3yxk9zyq9hr3rfhzcqf05q";}; -biblatex-sbl-63639={run="0947b4lszjbhs0k2p6a31mzc4bci9pvh4awq6k6d4qzvpr51yz9g";doc="06rqhkxpmlql5hvw31yx0mwkdjwnrh9jk4xazqq9bxilgx4y7q85";}; -biblatex-science-48945={run="0llhz0jmncjp8c2r255mxh09rvff1s0kx1lacxvy7svwj7fl6qgq";doc="0daq39wcjryhcapsx7n216yr591scjcwg7z4cihpb10igx15kbkb";}; -biblatex-shortfields-45858={run="1766zipaps96ks920y5zggc0zhk8vkclqh2c3zc2y8x7jdbah1vj";doc="1fs56vf86wwpaz1ik846r83zd9bpidrzzwv4l6jhxss8hgww6y0w";}; -biblatex-socialscienceshuberlin-47839={run="0fj2l2wxawps79v81s74jr4d8wz4pf45mmpry1pflm2zcica3ajd";doc="09sf6k9qghwll84bj6m7v0xw6zm040y6n878x0ywiq64jc33h0np";}; -biblatex-software-64030={run="0d2g21gn89dnl6ldxdssg7aj9jigmlh66z8s2q8qvn7jg26gxv6y";doc="1z3izka82kncwx3hqq2rh6482faw7rs11j1pfnj7lncacab2b41m";source="0rzqm6csbmk3xrqnncd58ajhwiv7v881idzvcv5z48169s737j7b";}; -biblatex-source-division-45379={run="09wsi1nj7hcf5nswkd6syn63xhk2ghaxikz5xb5sfyci0lmnqgxc";doc="1mfz2bxfwx24a2652n4jrdw1mhrm1y7i5vq54rs7sp5a1xfg2d9q";}; -biblatex-spbasic-61439={run="1pw2925wakr0wgcm33vbmqgfqnglzn8g04fapnzrd6s0h5155zc1";doc="1p0fbxqyxiw3ihiw69z6zbv2g8pbrpdiad98iwxx5j12sm6g5v1m";}; -biblatex-subseries-43330={run="1c92azsgrp1cmq82ga3cvnca5s4j902hcncp64g9psgl9fm74nwx";doc="0ri6vvzcpcm2hz73dkam0fgbnfm7i650x983qcngkr0jqa43xr41";}; -biblatex-swiss-legal-64491={run="1sqskc93a3vdxvycmdz494kddxvzpf6rgw6l184lizwnrz9mr8v0";doc="1k0xgd5gi421zvh8bvyvq5naapb6v7216k2sn5aqhca93sifgvqm";}; -biblatex-trad-58169={run="1000rdnm9jqk89snffsf4ldl47wry8k5akm75aqhd9r7qbn73car";doc="1m32xykdgms8i4aqny35w0happr6vbkkra9m4nasxp1vzykf0n63";}; -biblatex-true-citepages-omit-44653={run="1lqs1swmdmnhard0589k0r8gz3hp9bd88dz5z0kd0586vl7z2l82";doc="0madnjxwjlz9hs6jzgaady4sv0878v7fyjs3sn1bcnzyw4krfxgx";}; -biblatex-unified-64975={run="06pq753prhncs0sk87dqlapm455jlyfvnx16q2c850cdipi33rdb";doc="1rshsmqfjl3ajaxvcdiqr01hbm4dh5qxpbyp5k0a233s254j4ypa";}; -biblatex-vancouver-55339={run="19ymkk94c4l5sav1lb66f2lxjyfzzi1s78qd2a8drjp9q1c6i0j8";doc="0wn26kl4nli220lfs663rdqmv49xgi76kjgnlwh99yljx7v47n09";}; -biblatex2bibitem-67201={run="1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k";doc="0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h";}; -bibleref-55626={run="0ds1a91dm11y93dy46gflzgdx5rgzzm8j50q2aghbhfiqmb4vx83";doc="18zif1ciynp47z8hbhc2p6r8jiqisj46as052scb5q6p49fc1ibb";source="11brqv3pgzzk3j09z6ps6ggwsqm89y82s3cl6xldnyvx2ngc5ym8";}; -bibleref-french-53138={run="1r12767ayfh073559p6pdrfs9fs9g2dxcliyx06j7r8lyfab8d83";doc="0kiijl5jhd024znr80g3xqdhz3jyg4vm4kyf1rcpa7dis4ffazpn";source="17xih976gi8my8mdr8n1nfvq6hacicdk8a01s23a0sarj4qwxz0q";}; -bibleref-german-21923={run="1vki9hg39xhn8xzbd4wq6vn6zk3x9gl9bm9n3wr214c5n5mpxkq2";doc="0q69vfak1yrv564qcw3nrklhq4sf62hi6l7z8w2hcj3c325kii56";}; -bibleref-lds-25526={run="18x44jyar9dnfmw4a5ijhfipscydqj2hybl79ngw1b88k9iq2wxb";doc="0yr2kwzbfbak1c5x202w8jpgr3y6fq63vkjngb0k2y5ivmjs636p";source="008hvab2f0xw9bg4ry74g19bfsrhp5ync4ilpya2h79smrwp5xra";}; -bibleref-mouth-25527={run="11x3ldyg77xzpx8yl27sxn6x5gb3jdngd5hgm42p8ac0x57x7ymz";doc="0vrpyl0s13sw0hi9s14qamzk69c2vxwjy0zzafzmlfd0pzxhmx28";source="1mdhq4qchr8gvdalf3rgns43b2lhniyp9d5lm3c9dnnlaim59hsv";}; -bibleref-parse-22054={run="0xa6nkbydiczmhphdi3rpipiva94x2pwmqgqcwmr6a66y1gk0d1x";doc="1mn4hyfyialzmzm0syizq1vps07z4zxd853v3aljn6zwqcwfpkxs";}; -bibletext-45196={run="1p2cz95815vkvvc9fsa1qm3sc5grkxzdsyw30qkilff1nivb3cd9";doc="0czz3l0m314a25i242kixy9f9spcj72h3bibfdib55gg05iw102c";}; -biblist-17116={run="0z69a5x3czy0hb59c93jrkmmg6i66vc7rw6szvchsbsj1c6gwjfb";doc="0wp7x8qj7bh1pgcy01jmq35r2i1f8yvrv6bcr8p68d70sr1jqspn";}; -bibtex-66186={run="1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51";doc="1zsqknlbs7d1zzp1gld8wd2sh0iccwq9vqb15xka9gs9wh30gc6d";}; -bibtex8-66186={run="1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk";doc="0l50jqs0dljlaspb5q6arvimvraf9iv6sch1hr5w5yw1m22qdqs2";}; -bibtexperllibs-68910={run="0wm7lrg1rdhl0b6i8blfs1vkslvsdjksjdhc9bafqrrz3wx9yx27";doc="1r4bwlsggd4wyadclw06sj2akd04cy1v8j41g8wqp2j0x8j1jq7q";source="1i1cavfmgd8kiz0mr1sh75p7rhnrma0gg0b6xypzkxzkgwp1kb8c";}; -bibtexu-66186={doc="19bp8wn0ssz7gczxp0imbpgi1zwz9x3ya67f072rjzg2zmfpphqg";}; -bibtools-67386={run="0s0mz84w97854gwsz843gvlqlgk4bs5bpd195m8xv8g9qljpwfvc";source="0s69lggqnppqlyfc5r2k9jix7zpjy0nvljjimqhks250rjbgg0hi";}; -bibtopic-15878={run="0rzz1c1c6vgjm2r0gv65rwvbcv0asc5049agv75yyvqihvn51018";doc="0hzy6353n1rzirfdjd8dgjhnp496i14b0z0n2x7gnisf3qksr0wx";source="0abpdz3ir7l9dvc6vy5zi9ay103ga7i92vg3z69agd758xnz0v3y";}; -bibtopicprefix-15878={run="0vy9cah5mmr1vf4sm16212h36wz4623s07cagjqnmyprgm44sz66";doc="070shh1cg3hdk097v9jr37f06q0qaaxji3vjdv8v24a1rg3rrpdr";source="1v35hawmsgm12sv80wq2ld0rzz5l4shvky44l8wkxxh7i7vy43sx";}; -bibunits-15878={run="0znv09kqrwvmsjsw3lx9d3mp6fm8444zbn317q5yn5hzg2dyj61f";doc="1zgj4jpl0fpmsrcp3h4qlkilflmy8zqhjamghidwzkkg1i9jsfz1";source="04lswyalfivh01hp1wj3fq1q8960dmsvnbi8k856v3dhz0pv0whz";}; -bidi-67798={run="0iisr0ac3l2hrfja1vmihrf08fnly01dcfg0665x7yfck54qyjxq";doc="11x4y6rkk5g9ah7gmbwhppwk7i6q3j7wydjvbhfdz27wz4azcv1z";source="0nhkwk2r4fj5x94w9fq5db9nh051hxzb1j88q2bfhlf9zfwgiirj";}; -bidi-atbegshi-62009={run="0wpwp2fr233f0pac6llb5gmhz2ca41yjcmkqdil6qhpxscfpqizg";doc="1nzg4cgdhjjsalwml50xl7ac25w0qfd5q18cs8viicj7bbjp13wr";}; -bidicontour-34631={run="1yj7vl5z4xh8i420y1ycz21rw0yy83z0v9nlvi8k3ph2qis7lp8m";doc="085xfi5w350vbp4vnq8kgbilnz3jxwf4g0incvziy5hxh4isqirz";}; -bidihl-37795={run="09wrzqlldxy3lcxp21rdqi9bnjzza9wvdgssqynynjdmfggahd34";doc="1k67d2zd16ash4krnkwvmwx4wl668r0pdg720vr9xq6q3b139y9d";}; -bidipagegrid-34632={run="1nh14lla3xv9zikqqpnw7nb26kshjd186ijlz9snz19nkgddq28x";doc="0jgd9mfwar486gl7imm1m87a167c06cdhxg9qqp8m8nk6xdys8f9";}; -bidipresentation-35267={run="0kpwhs3dvmjhpv2n6kjly5cpj56gnwv3iyhiiwffd4bphzyrnyjb";doc="0hp0zbr5mpwsrd4rh3rc8qmy4srp93838k38phmsm6dwgqkda2z3";}; -bidishadowtext-34633={run="0jpz5a5q9c9c569ssyzk48y77msvfkd5csdvv0cd0r62ivrai5jh";doc="1bcbz6fiydj6dx8xzkrdsrm2vgcvn1jj4fk2jh1333la6rygvvav";}; -bigfoot-38248={run="1md91jivqvgf5kvwizc30wns9y9krk5pzvaihxkn9qs41j907wx8";doc="1lj6lv7iizbsaj00hvrcrdk9w0iak3wmx6mdpfb77jkzgp9dgg1d";source="112kj1669xl7qd2vrpgbi19cw00rkhj64ik6rrr885qr7bq5w79v";}; -bigintcalc-53172={run="01vz3qrhxb28v86np3a0spq9yxxc7faav32m136nax2vkm5ff8f3";doc="1wa6750qyggvx7nlwq9n7s1rfdm1h6i5hv91y1aq6mn26sw68l1s";source="00gnanfnw66bfrd5gk072z9rn6nhmqnjwf2dwnamvy3dpxgg86jn";}; -bigints-29803={run="10lsfqfzg0klg59s9zkrrxv4qjhnk74x90rkk2w5pi8zn83k6xac";doc="0xj6vnqfd5rb8ahxbjaqz7jd5kpvihr4dx88avrfvdfr0qhg3zlm";}; -bilingualpages-59643={run="1yawm29kn5ghjcncvfllv7iaj6a105xg52r3bz1m74xhnxif5z1j";doc="1bha7ixvvw04a3gj5lhpyw4pcarxzf16vkkl0d378bypa3lq5212";}; -binarytree-41777={run="04q8h54dl0fmczrv6fqvvisim1mz9lnvkdmij6b3jcn60z722k84";doc="0j8gn6mqaf1zfi9y5ahfzmywa64kzl9jxpdcdz1fl98ailbzywf3";source="17nc2whi2nh2r17gi9jn0qya8nyfjnn6d5r10klkp42b75jff993";}; -binomexp-15878={run="1mx2g0s4y5y9abmj2b7smz0xc2nzyvnx4x3f4h5v3w1x1kp5y0hz";doc="1yi68q48p39v20rzny1603j20n8k6ddpjqi773955wmh1p4mqsb7";source="00rmdk466a4kc1492b947q1f97d7cwd2svvc9wr6w1agzz8w890r";}; -biochemistry-colors-54512={run="0d4bbm1p3j6q28ckkl7ilkywrjx6iqvmx0qb27rpldw3jabf1lp4";doc="10pa8jwpxr37hs0wcywzsq14x1jgjx1cqg94lpghi505mlrikcg1";}; -biocon-15878={run="0g6r8rh12pbnbhddcv6sz9h8wnv31q6jqs2xbj5fjj7vcb46z694";doc="15wd9arkdxsh8aral3zgl83627yl4f0wdx2r8b6xb5ivvrbwaslj";}; -biolett-bst-66115={run="1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1";doc="03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj";}; -bitelist-25779={run="1vbz2c27jjc94i23s1dzl9j0zf0n2935sgxgc5hq3bpaz1qxvm7h";doc="19p9f9bzn60nf5163rdlw166zpk7qlfwhnc51bpkppb0w4rni2ai";source="0r3lccpampra8dardrr7sb0swbx72aasaras43q4nx4jv6z2561k";}; -bithesis-70136={run="1jj98myh3x52w6r7wyv605r97jybid91yyx5ix5p9iycrqhq61x8";doc="09c7jsipdrl7jv6jx55s750la39gwdj8fcprphvbxaf2bx16600w";source="043bw2harjb5cddrkd7rcw66xg7lmiyhwpwdmh8i7jnjh0nf2b64";}; -bitpattern-39073={run="1j01vh1jy41714k3hms4nkk8j5c5d4nizgrm5syi20n8pcn3l9pi";doc="0a9120z9rsq8pqi33iv7f4j79gimjgxfqf5jhnrnmz0hgqdpl2mi";source="16bjmxm11kh0ww6ymk82qs947zgavm100nsfnjl60hxwjl3yknzn";}; -bitset-53837={run="0ynyw8fyb5cidlz00f42cf21gakm2ir9ilddaaz12s7qq99lhj65";doc="135dcx0b51br6lf9dxd66jq2xa21bpb1mi4y4kk5z6ngsd1imdag";source="0yds3rhgq52sxvwn5kc32iizapbs5g21cw6avbppiip0s5x0b538";}; -bitter-67598={run="0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q";doc="1x8zzl2890c44jqk69ncsgj7xhchysbwkf66nnw0dsk2qfahc6xx";}; -bizcard-15878={run="0s6c3s99hid9pkilskd8ssc4hv5d5yg5lvw6kqz9szyii4rb6a18";doc="0ic6c43nng4lxsznkpj7w86ampdzjrqqcsdsm1f758rfds7wbnf3";source="0ywip83r43a721yfzrfnkfms0saly4p2ihagyp6259h2kji3vdjs";}; -bjfuthesis-59809={run="1gmd1fjwl49h98mh1bqhlxw63bcpy3p6ri33642p49aypj9iyk80";doc="056iczn516aqi3n04qn4q86w06q5xb3cz07sdb9lr4yp35gxmfzh";}; -blacklettert1-15878={run="1gvdw5gwjzgxa332ih2rp4whdcx1rdn5mig5q9cyiy28zvm1zrp2";doc="1m6qp3bkwl77khvanw498bfrydmyvf1qx5a9sp66x7l7xgjnndlc";source="1c38hmva1ffzani4mjg7zad0mr6lphncspn57m55n28hwfq7x8i5";}; -blindtext-25039={run="0nwxq33ffivn2ywxwx2w4y7ny5nv4af9p5cwn6c21jadrdj1rysp";doc="0gg45ayj3bibxvlghnz3vs0yj29zyr50bf6la0m26ma8ff0pw40c";source="09ppqs9mdkmax1s20m43hdi6yfcnpy0ylwdi9h9lw676gr65cn0m";}; -blkarray-36406={run="096mlldfyi6hxsnp3flkr1gfqhvhxm2vzk81zw6dl64xihkvl6aa";doc="1km35jnmh1iwya05s3ilhikzvz5yspxf18jh3f4v6iv5g8rxf9gd";}; -blochsphere-38388={run="0lifkhwl8rigg1w2k915yv1r9xylsj0qnj48cx58likwanvl8s2k";doc="0dbh11c3fjrdypam15gjlqwf3n9wxwhjqdd1h01f2f8yams42xfl";source="17bkqf64qvjhbids04bm3qhghqrrwf4m2bsl3gjxxc4h6sfih259";}; -block-17209={run="146ava8k2z6mlr2aq5vydax1i2sy6spn4avshcblgr5ph49iirp4";doc="1nwb1z6df3y0anzrl6b45fs2k069i42bcmx0i4p9z9fsbgqqfw1j";}; -blockdraw_mp-15878={run="11977c2f4100xfbrs5vcwz3vbijdvybq80zmfansdmxc0w3w6sq6";doc="1qb23f08wxmw3miys4sn89h48imzcqz720xfs3ihnbk2v75q3rd0";}; -blopentype-69080={run="1c87lxkmscs3v89s2pfy4r0cymgcbrdjg0vyhhcjh2ip29dv4kj3";doc="0v0yijfjyf1l2lxpmkg4w1ij7gj0mdmxd51y33qnwgh02g18yrjm";}; -bloques-22490={run="1gr3521mxmabcwvkqxn7f0wcpcmzy5jdpypyafyklmnhc2ij6zqj";doc="1jmvan6ja2zf01lm0dmh3dg4rf1cagfniqjfrmzpxc062khf97w3";}; -blowup-67640={run="0ijgwims5gklp37j8zlc0vdr6y2l0gf3nv2jnjhbbc49yv4n8gim";doc="01an3fbg94bg3wspadjil9npbx108g5x7kg8ga7c1nza0wygsdd9";source="1b53khyhzjy9mww925crpjmfgk9cjsmcz5hxjpl8wghrc4qqahjl";}; -blox-57949={run="0p3ci3xf1vndbdf147r9l1s68x72g7r2np6znizj3qqxd22h3wxx";doc="0hskpi2wnlrrqmv0s8i4g4bh03ka18w3czvnjjvhvmf7im9wq2ha";source="06zimj2liix2y0f6a35kb8q9d9asp48c58mhc3pssa185bcc7bv4";}; -bmstu-65897={run="1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll";doc="00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn";}; -bmstu-iu8-61937={run="0xvxli6na2nc03qwn4x68sq4jdr2x830yvfb507j1990pni1y01v";doc="0kimc29vl79ib5xmrlb1ipfslq2y4i3hnabxcaisrb54z0y3rp1p";}; -bnumexpr-59244={run="06achk9z1waxr6ndcfplnvhvd7k4z1l9mw9plh92qpj1dn48ncbj";doc="1abhn0hyps7azg4fipnyxihhzmk5fdnklb4gxxsjvnnr1grka38y";source="0arhv81y8993498qkrnlnsa8fiw88s389q6ybvndrmf85js5nwlb";}; -bodegraph-68785={run="11y62cwwjkxpr7xnpc20aw37lwcs83177w2gnxz7f3lr8192b28z";doc="1k428jlknm973v64wj1ljw470q3939kxns7xkxcfn5r3hjnqhmry";}; -bodeplot-69742={run="0fril19wxykb3mqq26mzmbqhdsh81qfnprkx7dyd4d2s3alf8fm9";doc="0czy2qkj6ss5m5flz3bj6j9b5k5gaxgz64xaq93al446sjr5cymq";source="1r1glsjb3kpi95lprz3d8vqlbhx6l22nf7arczqh169rz3v8y5xb";}; -bohr-62977={run="1fbrgfp1xnxa5cf5yqk9735wp0qwkjkpf8sv8gdjg6a06mpixn6m";doc="1jbmck8ld3rg0nw5rs9lbnr0i34gi2sxncri2fmcdpl8pp3xnw55";}; -boisik-15878={run="0xqr3sgmzklqsvd26f2800ifs674lf0a4kgr44na2l0lf5msww2c";doc="0l0hi4n5cfm1zdkr68c6ks3gxkda5bgwlnf62y7x96q5jkscdyxg";}; -boites-32235={run="1176j9ikh36s0cgvsflayik1xp0zycbp8m9hg0c7jmzkm5haqw41";doc="0visqy0qg18sa4mxszdl601yy0ilfgglv872dhzy8bnqqs8x7zzp";source="1zirqghkw8kk8fa3xahd27dh60phxg3blp98iavh6bdhj0rm7iar";}; -bold-extra-17076={run="0samckbdgi91y5ay98h6jcaywcqfbmzcdb90kksjxv160nsvf5ca";doc="1101922s78y5d9rjf5immfir46vf0i1ig20wp360zcal571csgjl";}; -boldtensors-15878={run="0nywpj03fzn31fffyfy9plxgq9008hhs2v1d3nsy3ggas5kvrm5c";doc="1vdj6217qwal5005zsmj0jm32s7scii7nmawljqi1j1a7lzlv86b";}; -bondgraph-21670={run="0ryp004w9bbphqwddprw8c3v1vndl0r34gx7ag36hlqipl6r79pm";doc="1hk7lp72x6skzvknhndz6f4lppamd3frl2f4dbs4hlvi4wfwjgc0";}; -bondgraphs-36605={run="0dhm5g508wi8r8hsk753bqflc4rvm4zi8iv0564pfsfz40fh3xnn";doc="1wnjhyr6r7jkmxzry9my2mw8i7q2nwq26zqyfi9mh6cv3x2p8siy";source="0qqs868saap9zsl70bwzfpmq8rnyvq2k45nc31ddzq3563djhfi7";}; -book-of-common-prayer-62240={run="1i6dk9ibp6al8jxhk6f6a8vsgpy40cr7m5k8zl1wq8fnm4wp13nr";doc="0ija5x2rgs8qxz3p4i81c3b9sznj749hasznxnlgn7anlv3s84rq";}; -bookcover-65394={run="0mg4zvi6wc2g80pszcf6a9ahqp2aphw46i59xjda5rjhq1xrnk7p";doc="1gppgwjs303i6f0zl23xa35w6ycfif8f081azbmak19f3vafzqbd";source="1xfn03hcrkidd4nbki6qqvk29gdh1kkd1idjqsdwfx7bb3ydgi7m";}; -bookdb-37536={run="1qky1ccqyni9x3dgjn6s36qyqdqzkj65m2glzzqdc4qs2h1hqr0q";doc="00fr2fid8yg3ww2gmgadxx90y032vrgicjh23ia41r159clg7fqp";}; -bookest-15878={run="1n6n322vb157fz11djcnfz07ykarin7n8mdr7v04wlsj2gfvv5hi";doc="1n94n8pv5s0w12w7yiws7sv8vwg06r245b7lka3g1j74p3xyc5g0";}; -bookhands-46480={run="08nsfgwhlyv9whaipx74hr4w6dhpdlvwcd6kxzcznxc66mlrnpk5";doc="1z0rir98r4fm8vhx26hw7l22p2z7swj5b2i3jdfy3c6cj0pi4g0g";source="17clfn8g2f48v944jlvwl3jsz9ixkw7x1xjxqkpaqnng0wsm6fyj";}; -booklet-15878={run="093kp4ryfp8q1hg8ddmvaxxsw75wplgz4rrmmwmzcj3hcgyynr1f";doc="0cd1mvkv29r2aqdy4bs02m3ck90rdv0nz01cq2x5xvqk0i8j5dhx";source="1c67lj35yh0w9bfgiba9ank6wk9zqq3l3vvgwn8f3v6kygyqha63";}; -bookman-61719={run="12wkjwpzxn1a1k3bb41gpnky1jjsh7gzj4xahsjd087fpmrsj9p9";}; -bookmark-69084={run="0wax84d0wyy1z4a78j62nnmkgn7f9ww6703qmnhyj9x9206dlh31";doc="0adm4hcf92xqxsb4cl01mnf5f6mvpblr3b8phxaz02xwxx3203vk";source="1w48rx66n77l7fpqpqcn8337qylp09v2pnxphhnl36sws5yw6nqq";}; -bookshelf-55475={run="10sjmi94cc4ix3a2c0qpavs1sc0mqfqfbbw4qygf9w1wdivrijfz";doc="0j0lqi7bjlivivvrvswlw89vav6fx8wg95bn18amlwy5l8d7kyiw";source="0jx8dfl4j4k2av1syngad6narkdjksqcr71q92h3090rf58njgj3";}; -booktabs-53402={run="04bfbj0v47hiww6z8xlzphm2yh4vidf9gcp3rvh81j66s7wybffj";doc="1hp3fbvg2v2hk1bns9b28hdjb2bcvn5d83apkr503ahln6rigf8a";source="0p0hym0xn4zcmq8q5v93z1zi8n7hxz9kg58fq53y96hf6isigdb5";}; -booktabs-de-21907={doc="1ld7zdr88xjhnnl2x734rxr7h0fz84awapmv50p1kzn6fczrwyam";}; -booktabs-fr-21948={doc="1xkqh6r2q835xaa92b24fzf61jsm85280570hivvwnch96i4fnh3";}; -boolexpr-17830={run="1jd298qazp3q0r9dwn7m35yrzvkl988c41l0r0vdq4g3nv4ppv79";doc="1cwj9473nazkz0acz4x7j1xp50139xs1ifqck40f2vb1gvhasly1";source="03kaz41353m40rbmars31pkbrrj6zwiajbv6fkabq0gsd9gy7bq0";}; -boondox-54512={run="1x8xd0q0yg1w1y06gx9fq25jakf7s3nz5lf2vryh5zlan2fz0ic9";doc="1sc5bwpvgz28q2ym65vccyr5pdg8fn680kd83zgcbcwd85n8nhrf";}; -bophook-17062={run="02wgw8462aaqknrnfsv1y8l6q7b9qvscnarysg2hw51l9g349idb";doc="1j5xyh11h3wsidfjnpw2wr8pc5xazf5wbbzi04r3wkw3v0haar2p";source="0mansjz0a6g02k9n7ijyami0gppkha80mnyaf9sqqzl6ppqygvn0";}; -borceux-21047={run="0hx755ghdd697fdc48hlvr21la4s9wvsn4v9c0n6sirlansba8ca";doc="0fcsjy8yi8zhrl75zb2wb17v1ilpgipdr85vhi4dsjmw18whp03h";}; -bosisio-16989={run="10dbj6gzv7z1na2bynrdz9971k5fr2vr4njcnsm16nlhyjzypfhh";doc="1a0vyxnhbbdm2hi8gydz0vyasvzzh3k2scyv2kxx4qbwvv4liyk4";source="12f99cgcf4mphvbqi2ffh7nwj627c5cxc9v8xrcg8nwfxr81h7hv";}; -boxedminipage-54827={run="1sn8liypm113jvmxsb0bl07cprrvdgq4rhbnp85lb5671djr63gr";doc="06wan6b11z6g2nbw73z5l27mb42cd417bq2vmmmxla2fyksjqqa3";source="17lk6ns0zl83nhdi8g6sgij4ajghksblqx2aac1gx6fmq60p7pn6";}; -boxhandler-28031={run="0ab7kp5xpsvn0i796xbsvnz8lc1ka1wqayva54sfbsv9bg9n0xg9";doc="0wsl8ivnyxf38rj2xv11jzyiqd5pgcpjnb3nnabl8a3ijdynzsci";source="1l875jplpql2bq0h55nl9ddmia31069chxc4w86pzh4acqn2c60k";}; -bpchem-45120={run="13l29qi6w99d47cv0ky9hsm6356vk7n88xkxjx5v5pb6vrg8zblw";doc="0n8w0dvfqal6k8syw9inaykdj2ndmkjqgg0fi7himam2q5qa36y6";source="1fbbs8lfzr3nih6m623r1wxdm8vgzfli2q97kp5jl998pz0ipwin";}; -bpolynomial-15878={run="16rzvfjwc5lrr6fvxjwp383ayi4pwhqk4x6k9blqzn0c0cakqmvc";doc="08d7was7ly4wgy04np72f9pn4kz20hgfsprvzlpyp2rfxvixphfc";}; -br-lex-44939={run="0pdhzadajg5vx5da6ildn9k2nfvf1ks4pxjgm32ajpcpfxbjpwk3";doc="001822zh0f18zvf6b51qdh4ykkv6ywqa5pm8q2vsmjv8rayjralg";}; -bracketkey-17129={run="03mq7rfgkgv06m25hkvlhaw1mqw3xr0ghfjj2jb4nlpkwn6945nq";doc="0kr9il6ac79kvqdds4rn4g98qxy7nvas62364sv75zv0hb6wl0kw";}; -braids-69398={run="0q4zrqx1ynlv8br0my5cm3j61wrizzq4s2wal010yx0lxlzm1gjg";doc="1yzazlfb6f5xr0s21yavcgw48x011rq1783n1cnhqcl9y7c2qirw";source="0f7a18z19z09jkrxcqr30rvnp7179fcsmc5n8fyp77y0j48kf06q";}; -braille-20655={run="0cy4bxpg284blfpmpgh1v9vyh5bczdyz9zdsc1almc51nv6c6zgf";doc="1ygyzvyz4am70n57hs8xhrkdd8hpn2mvg7hg3rdr5b6dvis2ibj7";}; -braket-17127={run="1ml5xz6pyj66kc2jby0bg02m79vfv9z3r91da808n1zb22mmnjkf";doc="09vqvl0v1qkrhv65bh9ym1zm254iigl21d4c98df8ayvffjf6bx8";}; -brandeis-dissertation-67935={run="0wz3k1yyxi9qdfqkj7h0bag1d1dj2yg63h0p30ydaxid9qbg4viy";doc="1vqzl7fkphkk6rqpg2rjdmd2a88x0dc96ff7hqrmcr085x7vyy7b";source="1rw5qxzc9ksy4v1z8r0xh5sa0s63l1dvr5lh83vjs6qgw7sc2yz4";}; -brandeis-problemset-50991={run="155al8iph3949h9859w32q6v885f0p6wd18m53rkliqvzc6d9f71";doc="168ywrm0cnk1l5fmqzpk9mxf4732mjb488gnqiz128dbsshh37yr";}; -brandeis-thesis-68092={run="0ng8xi2cn146fzafk4p8n651v4n7pqjhmq1y3dl52xphbh03syrc";doc="19acaxmg5r46kjk54z6gm59rf3pcbc7wlgqr7j5rbbp390c7kchj";source="0j85pasvrblbvsi9npnfmx9mc6gnxj9128d3zc6iym9fx3vfcqra";}; -breakcites-21014={run="0f3zhwrk0wapckz83304anlp2ssii7nvzjdakbxfdj51cd6schpg";doc="1f8x16qy5v27asch2jhbgh080vmv7mza4z5w63h31gdglbkwdp11";}; -breakurl-29901={run="0a3np519c1knm8i60z1d6rmmzdhfl340gkf6c4m1yss68didq0cn";doc="0dk4hgl3411q0k9dz9f9p5f7r5a59rpjcicz9h7ynpc4g3nhn019";source="1hx73iw3n5wgvaz2niqargiw36p068pjl8x65cajn081831syzfc";}; -bredzenie-44371={run="1mcl52mlbbw0yxbs53x9a7kh3xlaka9c7nszfajlhpvj4s3jr1pd";doc="1zgmhhyqf2bwlf0mi509nrnzqqa5g4qxr3zj46rsa8jz0giaig44";}; -breqn-60881={run="0dm9r7zjdwcdv8hq0l08k49lq4pvvf78hrlib16rk9s03rz2v4g6";doc="131y7g7hia9dgzf890xd5g4wfw23zr753kk78ajrdyn0jq1ipshs";source="1hja619zcayr2gxsxhsfpv3gp9x0bx8y56mjcpb9ykwlxax4zfpz";}; -bropd-35383={run="0l7ifzaqvqhk2dr31757ias4w4vzpdz15kma0bj2fm7k4sjx7d5y";doc="080g65q0v34rbfl67mpvqfcwfvr5znwv0rys8m3fys1s9d4yyryw";source="1kk38an662s7blxrnk4nhfvr49aymanj3qcm288ca6kfabg84w8a";}; -brushscr-28363={run="04vpb4yvbazm9lb7k2rbv4wr372k3l6brx37fx5283fpzj3wvhxv";doc="0dv19f5hfzwnw6fd32glqc71rbjwi1y66p5fl1r17pxsj16nlyc4";}; -bubblesort-56070={run="1qs3y6vs5z5m988cj6dl9n74m0j5d4hsmnrz6xfbpw2cs9g86jj5";doc="0pcbzg1p1wpw00h7h1va4j6iivz1ky31k8aq1jw4z9s5rwz64p9h";source="11g2brc46977w61sk0q9j2wmn5q9x9s3mv6fcgj8ywql3g4r85pv";}; -buctthesis-67818={run="1z7svjpf73ziy7iyd03x4g17k4y8cbqqdzi2ar0rpg48n2sxpmfa";doc="0lqvvf1bma1r5n8pawqqjb78jjgknf19j0810dmxzzzrl7mvxscw";source="1wspjl3bjpv3dgxakrb78w1kmb8i4hivq3wj2mkrwh84ahzj4hby";}; -bullcntr-15878={run="0djfn002j12nb84svd414zng3rnjp79ssrdhfb6j62mx0p9j2hk7";doc="0c88in90fy65pd9shbf09bl5dm6yd3z7g535ni5js251bqa9wijh";source="00pdz4i2pkn1fbihaz16vbhsnwaybpcavvmndg7nj47jlcfplhfq";}; -bundledoc-64620={run="06haydgwqfhzpwir9qbcc72y0x1xl0jhvyfh4gx37cpfvxz514qq";doc="1yqsh1kz5hm6rfh4vrl658y50ncypwb1mdw2p4qfffvp0w5yk2kq";}; -burmese-25185={run="109492p6k58bdgs4y0nb1hfnk63pdpf0x4b7az8frfff4wg2jvb1";doc="1lwgifmixkyxscy6ichwmc8lv26dwmcvy2nm68z2wq0cz7cihjli";source="1iwnsjnacafq1w3n6asj93n7nfxxyslf69jj0rfrl05fai0iq458";}; -businesscard-qrcode-61719={run="0xv56yqqj8y4270955srbiw7qy8bm9r3ih0zazlkrxnrxyh82jlk";doc="0nfvak5730q4ci88dyqln97ljhjbwxn3gk34rq2b5rk5cy2inabi";}; -bussproofs-54080={run="0d783i6srwanhm806hk0y5igbw99rf5x9anl7ib29pijrqvg8kjx";doc="10mn4g6dap1rksl5jnsp8pv3n0hhfrb9imldjyrmiika2d0prfp9";}; -bussproofs-extra-51299={run="0ndqiz033c8dxkdknf7hy1d42y0g2hgdb091wxrvpla7ryawcb8v";doc="1bg3sh0r7kqkb0hljc5m3x9gn3wkfyjr9b0d8myjwwyf4g9hzi0d";source="0p1imkwz82zwzp0p49a2vj7gdywv7mxr3b6nbmvkpz1n2qxs2hsg";}; -bxbase-66115={run="1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l";doc="0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7";}; -bxcalc-56431={run="1lgk3zfraip1jx7hpkkxwzril5sqc1hn00km3ybicsvi53z1q19f";doc="09x2b2cdxgf7lil1vlw4bmmjn2kl84cgxd75w2js2y1znsfgsivz";}; -bxcjkjatype-67705={run="1awhcn56jiwym35gxlhw4m32y4va9qh1skjjhk455plfmbydk71p";doc="1d9v4al9hyimw0bbndd7d8jjc8pngj5xrds1a8j7mgcjhkyyjin7";}; -bxdpx-beamer-41813={run="05zpcwq6syy612w8jw10fqym4w4b4qxrd2i4n4hqwxv2sqgsw4n2";doc="0g0ld901kdq3558ngzy6mf2f2vgjjcngiig2pbjb8xakcq933jj6";}; -bxdvidriver-43219={run="06rw5wwp5ky30s31f23gl4hpyzakn5b3vvgna8iw2iyy6rw5cl7a";doc="1qwxy88fnfsx9na6c8r56n6zhs13d8apkjq7hhydsfs7qy54q4vn";}; -bxeepic-30559={run="18by54j2rg04n19whsb2zjkksrdh6f6i54fq257i2mvcp0qpxwr5";doc="0117dzkqs1sy8si4dbal9p5p6csskcby2swmf2911c0vbpdl51zm";}; -bxenclose-40213={run="1mii9n7x232y5398zl9xysg81hflamrj3dflrngs94mm4akmcv2d";doc="19nmr2ripjifpjw8xrr5dhll392llqbfqjd2vj2zdgkvqj4bar4j";}; -bxghost-66147={run="1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf";doc="1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8";}; -bxjaholiday-60636={run="0qxc2s07rqnyi0a8a050h2qri4kaqfcwc26c2dz0x8ypg18s6nhq";doc="09a5q2cra7by0q4zxl9nfa672ryz0cdv3xkw730cq3qyyxgc06ls";}; -bxjalipsum-67620={run="11gg3r67rs7j3f4by1irz3sfnwlz88i8w3kzf0bdxb52sfrh57hr";doc="0wxw7dlm8rwgz321cdfpx14vcx3hf2skg61ngr5bbmcmc389apk3";}; -bxjaprnind-59641={run="16rdpkqlsx301zvrr2nyykpjqf0wj1xhqqk72a5jajyjpcqsvki4";doc="1x3wh73nga2l8f7l24pyabpz0b8g2k6hkszwl5dijrppicl875ym";}; -bxjatoucs-52509={run="19n1wr7i1mfrabmrsgnmvk5wgdqhbc9lfpz3s5qhnsqsz69rzi00";doc="0icd5zj0cabkvwjgncsjmqwx79d2rqsm7ddp54ahczfl6mfg7fwj";}; -bxjscls-69637={run="1dzcq6mx0agsflkbpmhna8yz8r0qkzvxsav2l8syk5v0dfr7jzih";doc="16v08rhy39bf4p8r23va2xsfyvjwqzjf0v711hbg558nyxgdjaxv";source="101larbrpv6lgynlj28amqv7wlk0m5ydzkbwq7cxgcqqnmrlwviv";}; -bxnewfont-44173={run="0mc8akfajlyl6vfh620h8rcyfv02gdg4ycqx18lhb9vfivi3j4py";doc="18na6f8nqlagfszk9miy5bbx2bylgspck3pgglbkqb9cgkdf4qq7";}; -bxorigcapt-64072={run="12bc2pv884wi9z97ih1sm5r8x67vrlqhd19f6m1naz9rs7jcdxxv";doc="13gp6632pn7kvl12rpbz99n5imcsnwf43xx4iq9wq6xj4qnlf7cw";}; -bxpapersize-63174={run="01gv55dv9676m7rkfrmz31aql5xb69drl1wvwh7k1s3xrywik35j";doc="1xsg1nvr7i1smrg94110pz4my0vvi1imqkhksc9daki52iv1jyx2";}; -bxpdfver-63185={run="1hhl848f4m77abkwa3wz7zm3slnp2k9qbmaj2sfdr0hvyx05jwpl";doc="16919nxavpplbzwxl10rsbhhqcx7pdydcmf1v5z7hmkmw29a1d4v";}; -bxtexlogo-63231={run="1g8iy5a2cnfsxggzl49vbjw2fzk16jcy17vx10qp8qdzdzw29gs3";doc="19zq1rssw0sin3gz6a689g2khfc6rxhyckqxg0k0kj3gr32058kd";}; -bxwareki-67594={run="1ax779x1zf3b68a46pa3d65wdna3c3vhbz0r8kj8kavak044p1qv";doc="09q919sqr675q3iklh3yid7z6hn0d6pvk2a2zchi8rd3xdqpv06y";}; -byo-twemojis-58917={run="1c43vgcnkdvag1wdhivl49qm3c9pf29w89xgy0m02jrxryrjy6i5";doc="0bva1q3zxzkkrz2cc2zrin955p4r251hlb0w0gyfm156dss0iqrb";source="1msy8ja579nysqd0rmbw1xsh6hksm44ddi5q3x0i5p68k2pk1i8x";}; -byrne-61943={run="1bzlyhysyiwfxgjzdsz0ax8mkdvf3ln9fnwb33px92p167s1mdx1";doc="1wn4gqvaym5gjdnxa1pjbvnk77xzk6dzvpjil59nagibp0ap48pg";}; -bytefield-68366={run="0ygrxp4il760rrm6zakij3h6v6a61bgwjjbsy2nd816yv5a325ga";doc="0gdz5scdzh64p4pbw8f2vmwvs7hl012d9m3k492718shcfzs1y79";source="034azk9zmy6zpwi7a5jchwnigg2vzcbh998a1izgb79fdlw5hpyb";}; -c-pascal-18337={run="1gbijcvhkfc9jhdjs07l1mz4p8lchrhnrl1yj2gmzkskp4v2pkbw";doc="17ddnb3k2q279xrrsy3y5n8qyk7r8hlrw8vd446a11qiwypjvxy7";}; -c90-60830={run="0h4y0ydp0vx0hk5s46lj4j0vji6yslc0gn02rmpbpgs6ic34cm50";doc="0bwbqi9kg39rm63vzngrswsg7vnibrfxlz8fhsqb947j20mrj6l5";source="1pif2g8ihgxf3qznhhc52gi9bih5ai8a986c6l1zxlmgrh678wxh";}; -cabin-68373={run="0wlhsfhi6f5wvnvi0k0h9j8xiqy5dp7fxks2ipw2ap9yv3r34pfr";doc="0h57p06mh7drx3klgkgj6w6k7x4kc8h2yi0sya1ygi94kwp5x1lr";}; -cachepic-26313={run="1j93lljbpwca363sjk5qmljrfq4f671kg4qrnfyv9zqcxcpyfmmg";doc="00j7j75zq3wa6z1liy0y6wzxjv96sq5r4dh7kp9f9icmxzs0x8xy";}; -cahierprof-68148={run="15cimc5inid5zyb221k75dc42gdkvzdvxzh2n6wdw0gj12m9y2di";doc="0qd8mlngn6p5pzwkhkfhk8p26d9dgac2mn2har0pwvkrppg7vsj0";}; -caladea-64549={run="1xvpf4ly47vn8askincn7wl8k5skhn5ir2wj1nba6mgf84z106v9";doc="13j961b3q42vpa7xlyzlsrl6f7ndnlw1m1zqi39j5qsb7nhpy7cw";}; -calcage-27725={run="18rp330i29cw8pkfv4gzlr4lz5rlcvc4k0l8mvsvs0xa767fd3h3";doc="01xp6i814bnzgbcghdpyzb9f0zx3fwmqd3p97rk4qlf3g378l8y8";source="05lcg7mix6z6cw85bpzcqgxlgb1vzb3irhljlfcvq08lrdfjy71x";}; -calcfrac-68684={run="1rvsgszxg0dj2j3p58m26rqwl2qfinkvfiw54nq6zzzqxqqi03l0";doc="0r4in3rrzhs001bgck0y0h484ziqs90026fmyxnnfv9dhcxdp11c";}; -calctab-15878={run="0rs028w20fcg5jmmnhwhvasb701j763pk4bwv09lj3g78769k25l";doc="07fxrnpnzn23lb3lrlvil6a8624vcvam1lq6sf8nrgs52fzl2grh";}; -calculation-35973={run="0v7f5qx319zrwhy85lvk354a7x2vcainiq90y1jkm5cscs23xqjx";doc="1bk9yqx607vp65ifdawaldcsxm065hmyrgzwyy90wkn4kmyq1snq";source="1y5a2n2asfhwm8jylfg5zm5dy4v5s8gjl5ndizwk1ywwl0am2dxx";}; -calculator-64424={run="0ha62j2mdg6f0h9rc03xaniq3kgfccihwjh8lbf6r6v609kqncwd";doc="0ilnsnlzxh8zd51h7lj0rr6c4fz9yb8dff87yjnm73ndkvia0ky7";source="1k5vbywm427cx1xvvh2fv2g79nikspwrp7sk9qcvaf69g8acs93h";}; -calligra-15878={run="0x3wvp6crh6rg2sxzwil3jr13h73sjgbf7ar4y35na5ksgz1z2j7";doc="0pp4i750ga99x72kzy818062jvldylyfanjaf8nxgkglbyiw3l7r";}; -calligra-type1-24302={run="0liaz2jv1ad3xvmaxdp3vd2b3wvyg0wm1jlrrhxljzazsxzs5d3p";doc="085bcvvz7269v68r8a153cgwgs18bgpqrd40k5xy7k7f5wy7d0c5";}; -callouts-44899={run="19khsdal0siv0vvj56bxgkrj7bk1yyd3lw8iz6zijchp0by6gbbr";doc="18zy2yzjlgn9g2wzlc9i52x8g3dv32hvbybjkm9fmklsgnw8fang";}; -calrsfs-17125={run="12b13dhwdxr5dc37l7imlhn4sparyrnz0d3vagjxlsiinm7hakf9";doc="1295qb7s41y2abs2ip87ipcvq15pzza0bwvj6pwpwxkxq5yrr83q";}; -cals-43003={run="03100nskddcxi7z48iwm7vnwlrdkxj7xh8wgbb8bx3vfcrz731jr";doc="08y10p0i7y0jndknkwrwdws6ja78sz1qf8vxvhhhcpivxc7a5gl5";source="19sh899dbk4z728h9v72xrf54cij8jhnb4k4a035xfb7ijc0jcrq";}; -calxxxx-yyyy-69266={run="0hv01h4j0jc34z42x0j13bd80vkvaqdyp59jds1jf0yv2mshiwpy";doc="037nh1j9q4gspazcmlagqmxjfi45xbmh0pifbpmv9iflyvnzj6hp";}; -cancel-32508={run="18bkqkdf888nd6j187kd39g0vgfhfh118bky8r5wwzy2aq843061";doc="1x6dhr2xyx66i8qwk98li3vp40rlalfrf5lk8ah4gq03ndhmygfk";}; -canoniclayout-64889={run="0x9r0xjdv3vfbm68w0cydnjgfiaydlyg71cil2l3rf1p4awk1kkp";doc="03vn4k8yp4l195k2716a110b8lad3zympsphp3cp8xx0cbfb86ab";source="134arh3nmd39zr1b0ybmz3y0jfyvwzwcrzd59iik6bzbp601nk8k";}; -cantarell-54512={run="1p5idl8vqp84g7vw3q6ybwnddv8q7a0ijy6vny8jfd6583bjx6pb";doc="1r6mlr4qq61cclliz4h86bc86zkb5kr5r9bixwnj88pbvbalayff";}; -capt-of-29803={run="1b89cznanql6vmcn1jyr1nqkva40i61lsgjswsqjgdqnlbmvsm43";doc="091qchrgwikiissyrbb5i14634130vn08rkj2v7cnqzsb9c44f2k";source="0dlgrkl1vcvf8qck0pn20ic7cmsvxqkmvgp04f9hn3dmk0yrzc3r";}; -captcont-15878={run="00zp59ypp753b17wcn9212gxk0w11g2a7rn9gi2mn4k5c3djc10w";doc="02n200ziiq4lbfa3mc8yk7icayl7l5ci3kpl8mlkdyg9r0a14j1d";source="04wilkx7vd5bn05cww36lywb10xq6b2nbhlxnjq5xbmdrdf9ckyv";}; -captdef-17353={run="0gjbxdn70qskb3xl6gmags3gjq4pks44k8c48lxljx3avpvxnfp5";doc="1wl56hjc0204d6xrpvypgra7md18db4bz7657m49893m2pmc2x7x";}; -caption-68425={run="0d7z8vb5d26n6n8yan37820qsq46capr41vasvi4pcb2g2smkzlm";doc="1zkscfajy1biv61vcgh7gka33dm7z6zqf0ypps49kpgx4q01ppwg";source="1k8llr5bm3pi7bd6224a0nzc7d6d63wrwabm8wygdxj2slcixw5p";}; -carbohydrates-39000={run="08fsn3xp2bmkkhhqq0l8808j92vibkc27mi8frhzb7g253fnmbwc";doc="1ygfgsik471prmbnv7cwak72w8daj7zgvdw50hjn4c6mqsi6g3xa";}; -carlisle-59577={run="149m5a5mb0c2r3rk87yvsiw50mp3armc0mw3jfrca8p82cyjwkaj";doc="04l137nyh94qrli4qzsan6i1ag4j5j1s0qp8mb1m8a8aj0bw0i7i";source="1b1ikyj585mpg7wkijlb2ppai4shcz6xad9ks52lnkdjd0h7r9lm";}; -carlito-64624={run="1xcq8y0psxyh2dw9wqybb67q9ihqp2p0klf98rni24x0xn7c2l8q";doc="0sv5kmnkvpj60xnrldkp3gnhhslk9ksf6qpnzj12v00gcyxfs7gi";}; -carolmin-ps-15878={run="1wq22k55696jbawhlcqxj839vx1kla2xsik32pv5i2371dsn7211";doc="1kai31i0pvrvp44y06hl3mj20hwjzj2mav6zs36afz81b491aw79";}; -cartonaugh-59938={run="1s10sc37kg3m9hvjcicgc9i3wkk40wxi4ncswspn9a599kkhf829";doc="1y287gshxvdy4chshpwa328gfh36i3cs1g0giwga12afmkaif63h";source="16clmcddxp9a7ybvgpx7w6mf45lcqq1vzjb4r4ndggbpwawkhvlh";}; -cascade-65757={run="13xf7135hjf363d9n1gx41m7awbr62pp6y1j77qmc7x6xi7vg85g";doc="0d2fkdrrbh5lj6jmvixgj7v4g3adg6s6rrrj8wxilr65vd1d8p6k";source="1vh912sp0ngr4mq391m8cdggxwpjdm42d2qwv5m4mlqhsadald7w";}; -cascadia-code-68485={run="1gdy5rx4dk2722xhnl1f8p0y5xhvpscfaycks217g1j7k4yyk41p";doc="0yadwjksqxia4k6f8w0ng7rxzp1lggqxk8q6n1gmnwqqph08y4i7";}; -cascadilla-25144={run="013x6his54n8q3qp2xx12c0s2fbjca1ffmcb1kjy0yr0qy0y698z";doc="1l8xpfmdp2sc54qxx0ywh7im342nd3kbmgkx2pfzwmqz3xhpybfd";}; -cases-54682={run="15f3mngrmvd0h6yy3jiifyzfrgi014g4dsqz9c5g1mw65yyssl8s";doc="1vq4x3lc7zrxsh3b7dy6w53aikx5vfzx26fi288b44g99f3h37jy";}; -casyl-15878={run="1cmz40n2h7nckjw9x8wjrj0kkig4xhjslqjachsdgidd151m65c8";doc="1y1gc2a1fw8fmrs4milnqvn0i099khhjq8pmsycj4bxpbsbpwqva";}; -catchfile-53084={run="0dx2smqpw2jmzbsfl1g1zpa790qaxas4cz1xb5r905pvpca4q9h7";doc="1xhzw6ahzn8fgv2rxn30xszzpdjqgr97njvx7fz9bs9z7xr8f3si";source="1gbcl7bfr1zdvn69zzhsbfa808qdfq10c11qc3qgihpzz8s99fr9";}; -catchfilebetweentags-21476={run="0xvk581zl6wk04amq4q6s4mhpb4d3f239ihk16m9fglabhq34xwx";doc="1bd9dgjp2rvsv6mn40m7i2s5s84wj7hbk8rka2a5djb00fv4fgzq";source="0lvxhx6id5ka9r3zp8h0xgrs05jax4r5rcyqcs1f77zfc2s6s8iy";}; -catcodes-38859={run="0sqwy110bqmy1npqqp6m7x4m632zmg4n52snrbzzz87jp59k6kwm";doc="19drsfj7f4lfmjhpmivyyzaps3yhxsy5xppgbm67vk4368sgsmpg";source="1c9269586s85v3swr33s28wb74xxaxy3mzp4153by2y5hpj250xs";}; -catechis-59998={run="0i0bhpal6yjhama3l9q9w8ljviiljqjcxixlcx39h6qq2dh5a4sx";doc="1c11g2nbf5nk7pfmg3dqyidm83xwbcqnshpwhbbnz3vi8lb2ycw1";source="1vq6nbis9cgrsch7w0yfm1s7y8ymydhbhzvllpx2ml6qks6vhy7i";}; -catoptions-68982={run="1zixqpgln7yqpdg37l4dilbqsf86bbl64z0rqg9mjcs150vp0vcp";doc="04k68w710rvkx7zp10w9a1imwxv0qvanj1x3kjbyk0d7jvh3w20f";}; -causets-66359={run="1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1";doc="0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac";}; -cbcoptic-16666={run="0y4y76b69ila35ak85wkakk6w1idjy92jhbnj01i82xpjnq9qrss";doc="08c3v6rppp3qfmg4nz0abwn2ka60wc6zrdx6qh1b591xgfwcm4jr";}; -cbfonts-54080={run="06641hiw3yahh28yq3bnz3dc6d25als1d8kbjh1ldab55gb3vz6i";doc="1vlhqfx3y85ym7xaqzr7bxkzm3am8806s6bkp50mv58r914xmlz3";}; -cbfonts-fd-54080={run="0gaw2v82im1k7addx320xhwwq28mcm2xkz4z90pw09r848s9fsyx";doc="1arnjpk1n9mkva1f9gsh5834kjb7m9rd49kgn3jf6acmdac67rv7";source="056b2x1fv2gvy7ldi9v1kgsla7jzhvl3lsd5wl1v0sb2rqr2jngv";}; -cc-pl-58602={run="0cvyi72p74qx82qqw6cwn6kdrrsfw83ngwwkjrgywqr08q65v1an";doc="07s3lnrl1n7pjbm81bqg6n6q6lnv5r04df0xjc6v6dqbdq08s51d";}; -ccaption-23443={run="06xbcnwyh6s417dc5kdf9h2qhi557fp0w5ikjdwkzsdq8q3ybd00";doc="1319qx3dz57f9hs21lxicwr8ql8131yk97zdps9rpnr5c6b0pgdy";source="0is0wzbqijcyi703k3va7icjxmf3v2rmrlhdlbhs1wzfyz1cmd2h";}; -ccfonts-61431={run="1rwzpbv0vaf4p77k4hf9ac14l9sw8hsvvqx5diq9dirsfq2js0rb";doc="1pbc945s3xjhccjm83y721xx1zrpqjbrirbf469anq9r892g33av";source="0avnik79dw3p1wvrg5rlqcaxr3w06mr5jvyms54ha18l2d63yw7q";}; -ccicons-54512={run="0xqq8dk5czaazzjlf601fs4d2z81yn02ama07js7wrxb21vvjz2r";doc="15hlqk9rir37m45ajfwfpw2w2ngsc6nfyh8g76vmbc6j48zmc4mg";source="091ayhgprp5w5g59c0zfy51lhas4gf3spya77k9fbr9gxp3phl4c";}; -cclicenses-15878={run="1rsj1gknw2ib42h1jn5zdhwv1n5hg2fdny08wpkwyyn14r5n52r7";doc="0vdr7nw2w4mqh3hiinywmrcszav7b0nc6jgrky1l3pgja9h78cj7";source="090smmkqiaam8k5jfk30xk6jrzdz6y75bcawm94x5l4sc8mqihir";}; -ccool-60600={run="1snafp7x6mvnmnkc2k2sp8kkj3lxm13x1nkwvyvbmylrh7zvjw6i";doc="11lkm79n0d713dmg4l4fwb0vk8k3pyf9icdyvbaj2v7zy6w028gg";source="1iy0jm88hvhprn70b9cg5bbh21z9mziyqcil6arq67r9a389npx8";}; -cd-34452={run="1h6x7mm7bvvd9za8vsr0dnbll2m404hbp7g3bwh6z5dr15y0hw8q";doc="1ws4qpknk8zz7cm0mfi9g9viy1f6r14y8hfi7dw2fl1lzi56j4d9";source="00mi6aazb16bq9b68n0jh2vs9n5kv7mizgp61n7r9mpk90hcaws8";}; -cd-cover-17121={run="1x1z64h0473bf4dvyiraym65h15n0jkqbc24kr0xw4i0fk0q4l2i";doc="0lsxmkaldpc89sm9pq4zi8j3fd2aszglx06mqn3y81qjil9h7xvp";source="1060k65sxs323zkjv8pvx6b98v6bq3h51r84dmn960v9xaw8pp3y";}; -cdcmd-60742={run="1vs7lxaz2pnc93926245p6sylv6z38a10flrsfzp317qpkvvrqyb";doc="17xflbkibs98pdgs79yxwasr2xfwh1i54y5b53314n9nsr0w539d";source="10c1rjy2y5f772qn69lmx9wknzj0mydj80jywklckp4g4xif2hqz";}; -cdpbundl-61719={run="1f3375jl826gm4arxsv0saigl8230d35dmkzvqyg2kldz5ig24s0";doc="1yhc82i1n44fp375vqyzrq47qdzwxc3x3zg10a791s4p25frzcn8";source="14aw67ah211c1simgsz0i3j6jxmnsj4arjfy5g20i05l892sb2xw";}; -cell-42428={run="1y2bxxx73r1h9rhsyar81r4s9nhgqjlvs5rwnkpk148rwwar7l56";doc="1ri21dk1wgfaay1hblmn8akmq8ccxpbp5lrfnprkqqrvkxnmaylg";}; -cellprops-67201={run="05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy";doc="15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c";source="0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym";}; -cellspace-61501={run="0s0f11xrs670zhynqq43sbrx9b290jph8r6fp6s7damrp9wnz9fx";doc="14znyc212pydxgnyzqwxd6vlvd72b64qjllmsjpcsxqi0f7am0ak";}; -celtic-39797={run="1vg75zj6p9bhp9qg4c7nvgncs7iiki5jizx27ld26yni9m2cd0sb";doc="1llinw15fnpjshks9yzlmbi04pkn6s87jfwgpnh5vb9hfws1ira5";source="1w3wm5ci6kzpnvlaxbpqndclhxlbs4xiwq90iig98wf97b85lfi9";}; -censor-67293={run="0nili9g4i8dly7gri3b1k4z1n5gnlrkj1dz4si3gf2b6gpll993i";doc="1kzi4glg1gpwx37ck2gys2dz072n43af5awa8x1a2036hpz6s5az";}; -centeredline-64672={run="1xrh8r00wrr29wiijpal0n6k48zzl5493zbfzfgwq115lxsvhp37";doc="07jvl42qmwlm2qv895f66cin58xzin21czdd0xpa13lgmpsccv2f";}; -centerlastline-56644={run="0wc1pwppiwycm5w3hp5ysnv3wgsw9s8m9p9ra3xbmlkqxd6zjwnz";doc="0f1x3wzxvgjxsgqparyjq4x32zbqjm88v5xdxm5qkiasai68r7q3";source="0ngxhlawj8igq7d2mhijpfcybfr6lv1jl82vs9kk7j8xrdf2nyr2";}; -cesenaexam-44960={run="15n0abwviaz213q00nv6faxc67fyqz44mvp28zcyysrhmrcxw159";doc="0vqxkqgyg79kzfcxh40knxh5a3d2j6q3f778k2npfz70d2kaizj9";source="069n1sk2g5n9cqq9rchk9w5y40igh620a1j5miscgykcczv2y0jw";}; -cfr-initials-61719={run="1wf5lcqh3jysn0fbzpmh429gmicqhh1kvz26jfl37f1z53g07shs";doc="1akblgsix6a59as4z5z6hhsncnsfxqh78s8gw0m3xqv6wrbv417k";}; -cfr-lm-36195={run="1inzb3q94b42n1g3hchqld687qhs33m2zxvxvgyciwqnwfn3h968";doc="1ska7y1xg6qq86kccplwxjd70bdbiw492d9y9n17d7hryg2nxw66";source="10layppddcanvyzjbgn6grgba9ff47kn7fqdxmwfkwnpw0qlw5k4";}; -changebar-69367={run="0q3z0187y2fynbp9zkhvfvcqrxyn8l03xrj4wm6zrzkz70yq0z3h";doc="0yvkcx0gws3m0jq15qnqbxm169f36qfr2wpbl4hp963z1az2dqnq";source="1zdljd9j7xdly3wlaqhic8v1d2j3mr7mz10vp03navlysd6b0ycw";}; -changelayout-16094={run="08bapli8zvv8p15bv3sj7l646fagzbj44dbq81apb8lhqanvlf0i";doc="1s304gpjg30kpygvg4r8r2j4bk9fg8vlb331lypd3dfd6slphm60";}; -changelog-65861={run="0zd7i9kh2rybh0d3zv7pxkjk3iddm03vkizpdxyy3sjblqa2kz3g";doc="1m65zxnlazb9jdqp4y0n4lzj6mcyhv4ng7nfg63zj7zpsx0kcvgv";}; -changepage-15878={run="070rd3drhaaw6z386v9z5rs7dmf15ci05lmlxsaay3s1ry1425bc";doc="1149csn0iphkxj7p1bhkza8v6xj39k49rylp84d1ilckf1q4imng";source="1slacsdfrjyy7hmhj4ssjkh0ln846b2ds11g446hmdvckyvz4363";}; -changes-67201={run="1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1";doc="1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63";source="1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1";}; -chappg-15878={run="1lx2yw7xyvbhvmcaj5qk2bjfmgyr4dn7q0v8q3xfkrnbzbzmcajm";doc="1c9qkc2m4rcixnif8y1zvcc0mzwjhzsbrbmy1cqv598cysc2yaig";source="0fzy53whj61n52k1ashphabpa076244dqjy1v7icrb27gd1y86mg";}; -chapterfolder-15878={run="1lphi7j367ga43j95vlph7ywzj93lppnn4n83xhbvwp56azryqm1";doc="1ns01x1y3dq3r37q783ha7xsnlg50vfw5knh2saw1rv40wf9vf1j";source="0zc9fa6xgs0s6g3rfzq3p32dlr3ay4k6y443z4zslkpmnv0hprjc";}; -charissil-64998={run="05ysp0l1v2azbr1gjjkh8mh1qmd7rq2znns60p2ic7dsfvfr9kpp";doc="14pq31xhrwa9v57dlwayysx16sw1kabwh4m9wjlpq9xdgbq9d38y";}; -charter-15878={run="1z9145ri2g732bs4fb8i74gc0ymak33k7sclahln2bhdpxi286fm";doc="0gm9pwanxvzv0zmxq6pf54ygxaxvg56kh1ym6f5ij9akwvhf6nwb";}; -chbibref-17120={run="01gyfwsfrjy7fs160zxvzhr517wwbsgh381hk626kvf87wssz2nv";doc="0h5vlzfw5lfg7chqfmbisqydmjn513rjrvw8pax4xlm75c0p6drv";}; -cheatsheet-45069={run="1cqv885i4crrramly68wamd9fcx0lj96vzys39aplars3pjv0glz";doc="1ykadvnpwkyj701xwfpnlnqr313d33r0yigmsscshgr1dd52jjf0";source="01hd52i399c9nsk68ymr8hmllxq1vl6v01fvs1gpm90pgvgdc9gy";}; -checkcites-70398={run="1yysb7nhlkk260jsbslcqjxax78q3lwjkqrh8spfz2sjp97256m3";doc="10hy8ib9y7adld85w62nyi6im15frvi3ym9alk7bpqrm7853wazh";}; -checkend-51475={run="1g4kx83kkpdd4fbd70b29hv82gbf19avd04b3bcxy8d0r7zyyyad";doc="1hzllxf7pnp7kg2623i5yhl2xq6phifc4jc57f2zfgfvvw0hqihy";}; -checklistings-38300={run="0hs740rpar4jckxc2p8wwd8x39v8bghgc2jjrbca9m5zbr0prvpg";doc="1riyj6x57jb28sjswnnfyqf80jnkvyr2cvckav29j9ni8l970qp5";source="1ghb0pv2zmznyg12zqgljwd2pc5lbajgdnzr6zf2rrmvlrsgr38w";}; -chem-journal-15878={run="01s4sbmc4g96cmnbhx9a6bqjskkrr6saq91cly2pfy5gr256vmnq";}; -chemarrow-17146={run="0vy1y1f8czyp36ssicmn1w2px76x47afrfqjfn024jmbs54fwfxq";doc="059c8r7vhs6765h0x0ycqhkd65nxb6sqq7xhi7y8jyb7i6q3rbbw";source="1ds3yx6mbwjvhzj6ximgglgccndqjbimprf7iszhkz3w5vxq6qz6";}; -chembst-15878={run="1dg8dasw0r96rnv4pnmm2k96rxmsdfhvkbxc5m358x3i5i4pcpm0";doc="1zmqlm8vr2f1mga0b33wikv1wn9lx3lpx4y7pjhgdqk84lhfqyh2";source="11qxmd7b1h7fwam9sclazzjhmzf5fiw5ykw6ry553xm1jp7vhvhb";}; -chemcompounds-15878={run="05rqpsyf12yrhpnzip0ywzflrvsjfdqhpi74iwpwb98d3q82ckai";doc="11264rxfhbf36jfkqdfyl2dyqal86bhjbm1zsy9ps8w4fsgdw94a";source="044gavw3i9xsa073bwpg11xy75dip172ih6h2p1mbpp8i7bzsrg0";}; -chemcono-17119={run="08cch2gr35wclm1l0j05lfbjskqw43jzz3aj4wi1dhpm31b855q4";doc="1kcgfx2clh4x59h4scw5mg035wqr2cp5kidn7f6p2aaf5607xid5";}; -chemexec-21632={run="0yj6sygdzs247fpajjl8gk3c6yhk52npbjahgngchqmblhmhlkc0";doc="0pqksv69yk7vf622x2p2ah735p0a93agfnfyg8hm2jadwjmhzikj";}; -chemfig-69227={run="06jp9cd9x404pz3fss77vhal0d3rlnwx1q6bnz6l5zcr7dg3n19q";doc="0g85rqfahdvb6xp56qgh8b9la2xjhsi1cv3q85dabxgbsqwq4m0i";}; -chemformula-61719={run="0q0vrz2agxw3g7cy5clya5hfsdv8s8qf18szhway3inzg5mfr895";doc="0h1nbyhj463zxj4d15cx88h9pwb2wxpq3r9dsbzdi63fb1mnr4bz";}; -chemformula-ru-70357={run="05b8rv1prv5fmwp0hssbr127vgxm02vm5d7s2x61yq0bl018x9jq";doc="1ia37z188y0i8dnah2fzg5pzgwd1an16zzmdfjaq4d1kf7qbsjjv";}; -chemgreek-53437={run="0di3w4yqnjs49im28g2a2qk31d6cqhrbwpq1jcxykk8am7g2sn1c";doc="065mwb7ah9h4qwqp36n0sdlkjv435bwrljz3yzsgym7a4xqvhfwh";}; -chemmacros-62655={run="1phw4kgp7h5mcrr66vb4kazzi3kw6abmxqhybn3amd4ishgbzd8q";doc="1rz1a7nc2c0cf78axch98zsaxah84hzr7h8rpvz3zz1vfa4bmk5s";}; -chemnum-57490={run="05z6i3cva4cq45z280ls3y5hrqk9m3a1v5yq51rdj1ilk3yh1a4g";doc="0g0q6a845xgpfwkhi31dg6w2rrza8cgxj925rm5m6mg026rd7v03";}; -chemobabel-64778={run="1s5pjj815ppa2glr9k7fzmmfcjpkz7a8fha66rfwkzf4rad3474g";doc="1p3a14q4qjpn1sr4j00x7x5pfp00h58riknbjjw0mcld0a1fiaki";source="1z904ymdpdynx4gplryxlqhras8l6zddfvrvh8iyiraydb8z470q";}; -chemplants-60606={run="1q7pvkkr4i4a1v8519a2ysrhya7zgri84is4c4hljqiqqv8sx4ir";doc="14gpajgpclgs3xzxd9mmyi1y3ciyxngqvxyzn651yn9i08h91f9w";}; -chemschemex-46723={run="1xs0vmk03pmlw7hcnm0llgq7gpg1wlack2k3cry0fnw8jqi6ls8r";doc="1gz7sdykvl3s6c5l1vhx2zyjljqrcs2h02s15nly8kjfcmvcncq0";source="0wkrpfipgl4yx3d5a5pvfrsxbp3dh9wwm0i34z2y6cra8xd4m58v";}; -chemsec-46972={run="0rl9aqh35pr0pr82vaq605ii09cxk73mjf3qs1dwcb51hjz51f35";doc="1fh5fplxlkzcly15kwzji7ym1ri8q33rs9k6wpbszyr2przn52sy";source="053j5riyl07jxzm2l44ns7wyck2y0680p9p73054szd859q86v8h";}; -chemstyle-31096={run="0a0sd2sv9g68alicfvm28b13kdipyrlck9ipdb3ybjjsi8fn99fg";doc="0gdvvkfjbzf0kdbl5f4j30cvddfbwiashz520g7kpkv460swvz0x";source="06ws8xqy1y609hzfc90l9zn2i1h3a6yq2hxcg1bfsbsqagh11rnz";}; -cherokee-21046={run="1h8q9ysfnwdc29kfc6yj4545xk8cyncl9ns5a465kh6li01zw5i0";doc="0ijq61im5wsv64qibwcllc2mi69d72915c5qjk0dcnsn7k823si5";}; -chess-20582={run="0r1danvrc979bbpcka5fdbnmxwiv54inxyd4rcsjkz6z03srbwvg";doc="0h6zcs8g6gg4fq0sp2s6gihbyrs9kkvrbqr6pdpb7j3fkb2jr9m2";}; -chess-problem-diagrams-63708={run="1hlbyxnx8cpsxv4zy9rb3f9z5c84szf1szxr6qm312p4vr7r0mjx";doc="148l2hjlifq04wc0cn04cx819gfi2zjmw8k03i98k6y1rbgi8bkm";source="0ma0nqvgkn7a9hvzqv1i03m2m02b1gdhy534jdsa6l7mqlbzw70x";}; -chessboard-56833={run="119dsa2mjv5kjw15349bjjz2xacnd82szwdb4m1hjqb3pkc8053c";doc="0gny7vq5cm7ibvw8fjnpbysqs81bf2s8nvjhs56qq3j7yg7ljapk";source="05wcy7c9arj8w9zsflr3byy31p0nl8g6i78bbkvw38rl9azpj20l";}; -chessfss-19440={run="1bi0lzxr3lr8nbrxj8189ycadm16l66isgslqjh1mfqyggz65gkz";doc="1xrdlw5z6dal81pdkhx8lwg18fzyfy1v4agq93bw09i94045cvih";source="0ryd536x30rv71pqvji805f9fm8ix6g6b5jravshrrksk9q8qw9j";}; -chet-45081={run="1ngh07j5kjp5v1pmymckqnj9knjadqzs8ia4h4vdyxp4zprgyqv3";doc="0l628j4b4m7a5p3vvzz8rwc236wqqs7vrf698gfj8gjdbbv0c9cz";}; -chextras-27118={run="0jb9dl29m57hby3hi2cfwks99xhrnf74d3fpan64852gvk0shb4j";doc="1ijm0ymdd4hh8sh4m5kxmny9nfn704prawr1c8x7445k9j1m2d82";source="0kkbsx2rqakaxq00nkvws7lpilzysxkmsijfxp1vyh73fz9cb8jk";}; -chhaya-61719={run="13x83hzrqriwcsc1q1yl93jpmgy83fq44jq890q2vfqjl22afmbm";doc="032qz2d0zflyj8aslhpq4n7mzr7rpl8kpdzrp9ahl3dxqzcrnwj5";source="0ld5zwwzznvc8a8n9l01i0236a9zw9n5jbiinxkhf8fk0gis1kb2";}; -chicago-15878={run="0mwrphf2g7v5yc0qij76dkzalgm3fhcm8zs7akgaypyk98cvxw8k";}; -chicago-annote-15878={run="1fz95s0d48qb1pzmwy7cdnccvadwsqj3pyvx02bkip5l0mg54kgg";doc="1lwrlb5axxqzrj1azyw6bsy9f3lq2n5acwnzmx8z7aw5sj19ls07";}; -chicagoa-52567={run="1za4fqlpirbr3qs894abnlwmrhsqbahniyyimy1dxal0cp61cfil";}; -chicagolinks-70566={run="1c7jy4z231rz2b2p76kp3v127vxdkv110ah06cn59mcwyjx8ncad";doc="0za32nk2wgj3x2vyx762wkq5yscbbjydi6iwdmx2gqybpcr10b7b";}; -chickenize-57325={run="08qxlyxghdzsbrqk9zhj6wr2ffbzd3nq7299z3q7s39z9azrr1z7";doc="1k4pqd8paq4zqygws1ihpsklxrmsxlqvi3y60zvaghq0r3iiqqqs";source="1j4sgh23sai4qzhpxibz2zl4a82nfiq7asgcz42ab5qdlz5vnh8n";}; -chifoot-57312={run="05p6x3l0vpzgxqw4pkl5b8hhkfg4jqv83435z8db140gsk2sz2p0";doc="02x1z9dbnzvbvwfyqk8axkqhzchd1dfjdqsf4xkajxvjc13dhcwy";}; -childdoc-49543={run="0vvf825w9081qcibwgyjdm57rs6083axqnr3lz9g8hd5s1h26s78";doc="0hh51g80vlr0malbfqbfb0m5nln84bvnqa2d847khncxh0azlr2f";source="1gaisc49xfpk37nrnm33wazihv61b61yhi40wwyblmhvwimmx6qy";}; -chinese-jfm-57758={run="0lgpg27qnc59i1lkbis5jr3z4fy2cl86x1dm320q5kfjm6z06vla";doc="0bpl9vkjvn3bq1dmrgm4f0kgmbvxrxxhd1alfd4yw30xib24aq31";}; -chinesechess-63276={run="09ylm4dnn4ag7yd0ck66wbibm8m782fb4bmfmf34wyrnif66sbzv";doc="0m1q0bw1a4kf2jdm8kcp3xg0y448d407awwaf5r0lazycy64ycqk";}; -chivo-65029={run="0vb828v2pi72zxxpjqcnij3a9900kdshp6xf1aah4s62ws82razw";doc="127l1ll89b61yczjkm36jly09y72xli8lybfjf8fq5pm621hzsj3";source="1b9gval665vsjghj9yy0lb15v4h0ysjc3l47jln55qxfd56vxiir";}; -chkfloat-27473={run="1bv0gfqa1bhrwq7vmjn0ih49lzb5g3sxv1fdnp25lxp5fxck31k5";doc="02s4m1ngjcw8w0ywyqislxs6cb5vj5zgczg3dnfpqsypvxg2xr12";}; -chklref-52649={run="1045jsyhp39js54xmyr1wxh7qp3z5hzasyqi33nvrc4g7rb9126j";doc="0pmgdkdn930lzyn8j3diwwam8c7ikm4fga3fh1vpigqddykj7hqy";}; -chktex-64797={run="0ij96wg5j3grphp71f3casa8nlkfia7hz34njvi007pzy00kgvr8";doc="0ln3in6f2j0bbk1n2lha7s6mv31cqjchbg1ck0cq10aabhvx9fz9";}; -chletter-20060={run="01gvs00kjr313a09y65hif15vqvxidi6ri11ypsbnsc0man6dhwd";doc="0mc8nlph24bh90l4x5bfc9dyldd4jjn46y08xgf194482dz2q8gy";source="03s40qmlbnlslcv8na5vwz67fad1chagal1pjq6lk0glhn5211dq";}; -chngcntr-47577={run="1a61sdmfbbryqd2gj87bm4qsva0xjmf9mkxhxnjixpqmr4gixq8r";doc="1rrkyvwbgfxxrnsdjybjqxqg15xyzr4s7qydx1ky2k7d2yxhiy41";}; -chordbars-70402={run="1l8m2yxqrscsnwp6cgny978l4qz4gg08bicfs386rgsfyz43qhcv";doc="1y0zr4hxcqbdm1r6yrsnkx2gsbcjagacpp119gg98h9y80y5ipp5";}; -chordbox-51000={run="09sghgyq6mv3w0m1vlcf82vjbdkb00gpiqr6iwlimpqjrv09bp3l";doc="1fykwcz8d0ja7f5px60qf7pfzfcw447mrfpbq8awymr1ilwgmz05";}; -chronology-67973={run="0jbczd5y58a6bjlk812ncb1ckcsq1d7j8ghmivx4pr5pfcx5lsqk";doc="0g5r3by58srdydm0gps4ybsmihayir3qf2lra569ywgxy06hqpn4";}; -chronosys-26700={run="0ii3r31dii1252bg0xfh4818az1snrzfx7h4ibr6rd5q3a83yisx";doc="1c120hcadb7xpkspmixhfrdlcmhl79jrf1wc0vsjqbq3wxjq1p55";}; -chs-physics-report-54512={run="19ci498mf3yy0xhmq4ghy8yh138dzs8953ki2mqn9hj6jjx71yfm";doc="1nfmbhp3gqmf2pdallpnrx9hqlb8cwkndfri8i0mh411hrh72jp1";}; -chscite-28552={run="0db7nrmm5r4b2cvcyjfra1fmskjaspbgymjsl4vvif9j3kwaa0ba";doc="1q5s4qj508nqy74cdcg8380vjbhs4v70a4jkr9wdirqcxjxs6yfn";source="009a8y3lxpxjhkd05fcf308k3fihl95pcn7r2bgy57jr4nalmixx";}; -churchslavonic-67474={run="1x3b3l8b0gbariw3c48pfr6ywfxh304vfbsi10f99i3rhl8janac";doc="0pjb7dpxp0nnvh47vrqydd5gs4ld11lgf9m45nrzs1x8qzlx53ah";}; -cidarticle-68976={run="17a2cqb6d3n5g3jhk1l5hybmpjhqpf7w0cr8f0w8kqwm2h7ciknc";doc="01r547l09fjhzrm19gi7xwrvhfglf9a0cl2v1ikncfhciy6dvjcs";source="1v9qsmqhb96b8p27bim3s71ybarygksifanwgl55vha0408s3zd0";}; -cinzel-64550={run="1v29lilvh6l5iynf1810p67qx2znxbm04wavj31w5q7rvnar81xs";doc="1j7i2bdbrfadw25ajkgkygkii3prybhp4qh5k8azbn7zpxl78q5s";}; -circ-62977={run="1m6siikjprch991sqbchbrmhvh2knjh3895w48wjp9par050cbgr";doc="1zmyxc0iz7ljrkklqdmpiax9alk56pf1i4dm6ljpyisd95blcys2";source="1vdj8qzym1ihkhm628zz99w6xwzhav8ci0vlckqpz3y91nkkpxaz";}; -circledsteps-67889={run="0ybaz7hl9v8g0kx8v7j8llgxvvhaj40afk5fi9733iv8m0w3mz47";doc="03426fkcxcjszpm852qv1y4kb581gdkk109cyfy7bjyx8ihrxq0g";}; -circledtext-63166={run="0c4gas41ddivlam1hsfzxlyqzicclfd91arpa0s8kinlnz27bnq5";doc="0ia4m8ss2idvzhgp88cbaybrzld0cg5gijl7nzd9fc5xsmybdjsi";}; -circuit-macros-69263={run="07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b";doc="183785rmygpffw0gb7mddjvswy3dbgp5yimd5ckxn193429il7p3";}; -circuitikz-69757={run="0k28z89mdl40q9q4x07p9m9w744yfbc3ylpj5khbz7w9l8s232p5";doc="03fsxa3q22mhwzdz5sh06l5glhvfql9304c9pm7kzwah6xryj9r4";}; -circularglyphs-68476={run="0d8hr1lns0973y61qmmz1hg9pc99j3w4x3iaqi0f0jlyzxc5j1m8";doc="12s7fkjlbbiica7svrha74zh3va390ay87bajjs0lgx6smqfx85n";}; -citation-style-language-70583={run="0baaznwvbml9ymvibfdmzwcyaf0rjkfa5zp0nyr7fr9zc7gvdig7";doc="1lpjflagpgbilcljcwwnbkq0xw56vjblnnlznsaprdiqivlfqhbm";}; -cite-36428={run="07nw7axvgir19ayi3zy0b2sp8bb9pq1nl36x0wv3nrqjilvgrwr5";doc="0pg5fc41iwqc1y9m9b47nh48fqp5dpnjbx14ny7ch9irxblg5d31";}; -citeall-45975={run="05nb6pywcrhqi1c9xfzkv46j2fq9y1lqmqawi75v3z56h2v6c136";doc="1p54cr0khq72z396r3vl0p9qqn2k82pmx4pjaszlzhni5v54hbdr";}; -citeref-47407={run="05bxlkylmilyzvbl99nsw16saqjsqb4bcaa68qkz8m59wz1ji4rj";doc="064c9zg2rhnym0wy2kxj0617mwb3mxpc1rr13lqpwb1f1qhghm6f";}; -cje-68656={run="0v0pya3nyj3phrgy0vrh9psbgawp823li0gvhw84pp9jg0lss6vc";doc="0w5lrlwzff9vcb0l44f5cj5763x8qb17j11kmbxy5p7zxz0j3i9a";}; -cjhebrew-43444={run="0my3jp6pi5lbbhn24jn07gx95laq2p7fqk88pwic7wwyji097vxw";doc="09ldma056ipsamrd558z24k63p187ziw2bh8qgy4na20pp22wj0g";}; -cjk-60865={run="0qdvr0sq8v0vi1vy8aybhrk7fnvlyxz9x9m63npa3nfcffypdv0n";doc="0liy56875383hjdada5bc1ni6w6ikmzkf5k8qg91l0hbkxxnqfiz";source="02bnfl8hydbb8wn2d54nrd6v4p9yrr4f6hkinyil5jnfkq9mryyc";}; -cjk-gs-integrate-59705={run="0w396gn4s8jlaz95cc3dzh9xsjiywsxjf87qwaniyaihssssl4pn";doc="0a4m7r52czkxp7j2zd389f5illw18dngdj3rkd8b9qlp9c4bq907";source="1h788aq405c44alpj85lyhmlnvdslc21n6h89vx5dggdfypbq18r";}; -cjk-ko-70332={run="15rl516bdcr5b60564f5sz3ab77hvx7yb1m56fkz5ap17j02d2ra";doc="03kirb8bdh693r6r421psa580an6hwdmf8lkvascgf2iwd6rayn9";}; -cjkpunct-41119={run="0wvqmf60gjm5m7fcc2qqz14lfzxcrqci3lrla96hxkqnqraiyb84";doc="1ja16xaqfg5158155flfvayr39k7grij13r1r89g59va53mpsgrk";source="1pn85n7n4fp2p5pq3w66kb5zlnjk1bdz7fz4xsa6z31d5216j39b";}; -cjkutils-60833={run="0wl33vh7pcrbyvxy6bfcjfv0xnawp4gb76cmq2304n9mp2w8dg2h";doc="1kkb1lkni0d7mb5hcnwkpwbyz7y9w5iy0z6rgm38lnkkm2wjhf7b";}; -cjs-rcs-article-69006={run="0lg0d2igpd1dbm2cd9irrb5702mvpscqf12bmxn68y778wym6gnr";doc="1vvm9nzrw9gidvzg1ab7riyxs98nxwm50kd0ih2zls8q6xxzy6bf";source="06wqrj29gf376mxpknzb6j7aqnnx9b9gacdq1bgd462spz7p8za0";}; -clara-54512={run="19g2vpxwjjc3y88ghw8yv0abkm69x6lnjj4p1cqbdjiyy4n83677";doc="0dkqqps72wws7dhynan243wf86gxn4chn1v5iiishkar33xvvlzp";}; -classics-53671={run="1l5p09agmrik9dkhwghjg8qh407bjw5q9hviykq7kf3y006dpzky";doc="0xp87xj7328ipwq0l8xgxn2baqm9zmp8dqyhv1iy68k9wgqr2f5w";}; -classicthesis-48041={run="181s8s8yk6y9haxz66ks1v6wwhpff2vs7lxrc8kshg1mn26bya4q";doc="1nxj2qflzs40mwnpd02bnbnh0ndm8rx12mr1vyyy6v3sc6g28yn2";}; -classpack-55218={run="045fl18pbqs3rxjp05mcmzhrqs94xgqnim96g8mij5v82fc7c99r";doc="1875ak0yjxlvsn1gs97np1vhy2jr2yymjxgr72p25g548sgi64q4";source="06r1kpanvp3y43jc8vrskba6qrsi115akw7yjal528fxn1lypq8n";}; -cleanthesis-51472={run="0wsib3c130m19r4z3ghipvgqvmfhi1cx86670ad3ama3rdmc3zpn";doc="0hhvak1l5zc4bj874rd0i6v15v70i3aq2dlv736csvd2b764g6y8";}; -clearsans-64400={run="0wd2lhl02svzxl099zfflqk94nhs84qb3b7wzb8adh2b8z9489c3";doc="1nrlrx6chgk1ysxcpvd1hb1qpagl3n7x9h0gzfjf0431bc3fxc83";}; -clefval-55985={run="1wdxl93z0svgg6h7vdhzqp74clcldxqh95yimqb190cbm6v5ll05";doc="1d1pw87hszspsfrl5c14q3c2iy1fkbh77dzldhajx71iqjfza634";source="1x7dvg6q0hy6pg05qpi2qaxw7y7a2dcfa4khddvbfcngp1dirrzi";}; -cleveref-61719={run="1d4qp3jl9mgv4afgdgcns5rr7agn5smiwqkmrasqchj4hqzwxhwd";doc="10wy2zndm51fy3d80cqnwsjxyczqjjffx61ir6ky3nkmiikiyypn";source="1qyyvn226dj4yq25cf5f7yzc3gx9qmxmnlnjijydgmmwam71s3xl";}; -cleveref-forward-70181={run="1wphc3dm1kbn9fw5svsxggplg9bf22qfjcf7k08r39fwk6s50pfk";doc="1548hwvsbwyhb9sx2xj4kqali3sfb6imr5c9dp9n4lvw8p395ksy";}; -cleveref-usedon-70496={run="0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa";doc="0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x";source="093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y";}; -clicks-64602={run="15v0yjrsnf4hqvmriffdq7x24cxk9l54a5s967nl4pqn1iavsqd7";doc="1givgqvm29fa1kvj556hfda3z1hhfzba2b7jfj46f8zsifi17s3q";source="18dpkhvhc2i7m2r5q0sp5m0zhzn1706zlknybcv3zxsnpcs1rar9";}; -clipboard-47747={run="1i9facsdigll3rzl8xv1i85cqyvlc54xhia69cv5cv0gly00p1dl";doc="1b6wvadihwglj0653bn8fnnq18whx2hymigvyknw00fyn3xjgvgk";}; -clistmap-61811={run="0xl0310x3wrk9lhwhbqnzi3gsvmbvk5smd4wq50wj691vmag9ivh";doc="116n1w0zfc6ad3nnq2wvjibpl4ywcfbgffax43vml5aixkpdlcq7";source="1cr6hbvln8mvrs6g8831153l62b4h1k5731s2d0xdm46wwmq4m3q";}; -clock-15878={run="0w5z1ffi25nabsaqh91glby7ifn40c9rhzxlz2kbyvbrdg6a3and";doc="1wp9hglx1vw8zfa182m2103xb0rhg9hmp51rc7bzm6fh3iyz52is";}; -clojure-pamphlet-67201={run="15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x";doc="1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn";source="096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5";}; -cloze-55763={run="1w0wydk9kimnihll4r8nx1kp6fccgmhybxl3qzrqxk58x4imp3sk";doc="1pprx0mdxfn8gwdsi03ifscinnvj7p3w8nwir20z5q5121clss95";source="1ijnnfq0xrcnysc9sf54nc9a2xg42jqfiqawb8a5jnc62dx9zwyf";}; -clrdblpg-47511={run="0p38c8p426dn4i40wwhi5hisx3yc8bqdi7vwxdbya02smixkpp5f";doc="1l0avfhvabq1mm9yqrpr29ps9iks84j7mbfgrbrd6kfgpdpqqhx1";source="0iphx9hbs4ld49d24f2i8dcyjxaqgvxznq3i34ik2ywampr2a5k1";}; -clrscode-51136={run="0kk8hsrd8rr5vadvh58fdlzpz29cnpr5nhcl5il8fj466dw0igv0";doc="08wps3rkrx4isg7abr6icfj9pcnhpnpylnk3wvwb42pqah8975xd";}; -clrscode3e-51137={run="1f7p04gaccyynqm0wzfz8jinsrrwn6i4amc51s835gxkjv2d8gwv";doc="1kryc0ay3bx1maydfha6wm4qw2l9xprnhs3901qbz904l21yawhg";}; -clrstrip-60363={run="18ln2mlc8bhhf96kqawba5dqi38f5j5s23qmp5dmpgdm7fdanlqn";doc="1mf6bcc17ivcdvy36ash33bmhh9fcry0w30bfi96swjq17740cla";source="1dc29n1m6bq5rbpf66q07nss8iw9mcav8s1gzc56j12ik1r2sa9y";}; -cluttex-68912={run="0kzc9xs7rn8x4zh3z4fh45d370k5526mr81sxb95jabsry82vn7x";doc="1ii7hmn88h4s0va8f4xsndvhkl03csz13nrnn6jlzl8rj02lz45j";}; -cm-57963={run="1i70pxbx7bp7lzpd4skdymv1a7h8njsr42v8l8jvh4bs3gkmlbgi";doc="1s5jagrajx29zmpdbqc6qpbcpwgp7g4c3d59ilg4sgcqgd9n5v1j";}; -cm-lgc-28250={run="126k3nr39xvgbzjws9x9xs01rj738lvgpy9r2wjvalxqvd2sahw5";doc="1xffcgb60kvbg07hsw3dc6kzjqh907fj97qrrj2586b66asna5il";}; -cm-mf-extra-bold-54512={run="1l1cm32z8wcpj0cl7czqkhnwil3ail7a2bbzn70dnswpj0ka8k9n";}; -cm-super-15878={run="0vpxkin8zvanasm0n6zzgmy7wssca6bm5yia2mjdi7nxzqyawlwr";doc="1ygbv3gwijyaaj8yzwxzsjqsfjdf52m3lm3f7rp1503d2wvq2qzx";}; -cm-unicode-58661={run="1y71gdk369hs2yzbfnj5i6yy2xjzv4n65vcfb8z7x596kpjm5jz7";doc="0zc7fv9p1m7dgi3vwkra2d8x18c4gkqzkd06gp9c18jgf0m6ahm5";}; -cmap-57640={run="11ki3gqlk6hjbpffmi2zdlj0rg5z5drcx8zw9nc480mxz931h273";doc="1ykxc5bg6s1c2p52fyl2dkmkg25ylngsfrhsw05yzskj1l8v32yh";}; -cmarrows-24378={run="19r3r86vdlkjgx98dsf8c3crq14p8ljdfq6cijqqsvj6p4p6nfy6";doc="0svllk1cvjn1mw68yfhbd1na6grp4hlqbybqnmw7igw8ilpshl1b";}; -cmathbb-56414={run="03da7ak8q3qyvwnk52mn2a79q2mfbfk0bfrkvmjpqnlagw35qmbi";doc="1i54xpnvygfmwbvdnj5wwd2fwfl1y4f99afvs283lz1ki2857aj0";}; -cmbright-21107={run="1ypjv6wfj1nm6wj6laniv304zri75q9gaik95sxbz0wh5cxzwgr8";doc="05cwyxmh6mqj0xf4awhif1vvms0j1lmadd1fgil7b14l46mcd99c";source="1y5is2678czhhkw4y5nrg05qqfi3n7fbric9m6pszfkh4iw0ml6c";}; -cmcyr-68681={run="1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h";doc="0f2i6yzqy4lfh42y47mwqb9r4ni67bwgrrb7i7mfajnkcb6mi7rm";}; -cmdstring-15878={run="08wyaqfyjp482gwkwfq2xw3skazfzlv0nn59qri9728rmgykd3wn";doc="0236d4ngq70xrgsaxg0b0yqgcnq55blkq7d4hgw3sx6s6hkxfkn5";}; -cmdtrack-28910={run="0ygl30hj8rczxj8sxis9cfq419rscvndj5fwyrls3c1d2mnscizd";doc="03gp5n28lg10h6amf4vxamvnsr7hvrkhmscfcdf4jyp3kkkvnv4w";source="1m8kfxys9nh3xml6inyn4qyhqmw3h572lvlbh7g4z0zzqgiah3qx";}; -cmexb-54074={run="1hfslkscqr01dkgnckfcr8c04s053s6f8z5xk35lcgbqj1l7ygag";doc="1f6nrlnnq3c8mwsxz58pk05ginjkdjpgpnnw2alky20s78cc5kyq";}; -cmextra-57866={run="00my52lh3cn8bn211fpn7373b7khaylx4fgkrd2m72xgaymil308";}; -cmll-17964={run="1mv2npq85fmm8ff3n2czs1mfjqcqpy5rx6dwy9c5ra1nybx0a5ak";doc="0ps62xbzac6k9hk0s7wlk14iq70h922sxgagy5m8an9vqp94mjzi";source="1vhh0ds96n1yy3nby8np7v4i747cana8acvcnik1zz9h4xnf4brj";}; -cmpica-15878={run="1j8jsl3g76wxdpzsj8w68ln2i386cjzclcvvj1nl7z9k5bxf4s34";doc="1rj4g0kzy0ci440bjkh7b7lyh52xx6v737chzhps9w8q1b07wvca";}; -cmpj-58506={run="0hn69a35zkfrgy2gndhqlrclhx13c7515wqw28j4fk6ffpmn6arh";doc="06yhinxa4s8hswzzh7d9x8v768fzk171fgi6kxgm76hfi4ydlw9w";}; -cmsd-18787={run="0zykh9s50cgsxsv2958qyvwck5lw9s2a6fdx7yb14b95wkryqssd";doc="1mp1lxxhb489appwqsbg2g3lym4xvffg047lg7rpyw4msw3m87ak";}; -cmsrb-54706={run="077f185vcrklhnchlw694113fpgaxy8paxms37rp2br8mbhczy00";doc="13nd3vhxim71kcl2n02fcrm5vwakkrn0f5nfw8irl9i9r9bgy6ll";}; -cmtiup-39728={run="16wg8nw15f1pfcrm49xnna6finbvl0jr0wyapqg9i2jh39c1gizw";doc="0rr69cqg5pblx5h8xyw1zkap1fj3pmdznycplxx0kd4wqzbdd47z";}; -cmupint-54735={run="0y3pf2mbhxhn67skzy89850fhn17xr0b0ghcxn1ayq19qr66yrj7";doc="0v180y0j3md4iyx54fvjr7g00mavmkw6b99bsm07nncfq0anajms";}; -cnbwp-69931={run="02anv8g5zcsvxi3yqf5jl8061awszqh3gv7br7gjg4c9c8brj8y3";doc="035zm4hk84vn98fgxji8vrmpq7qih5771j6l54ij7ff4gxdal0nq";}; -cnltx-55265={run="09czgnx6jqn856sr0hg5j9azaxc4i22yp1dz95nn4s331khl3z2a";doc="1ly2cl3srazzynhikk6myzsfhffz3k63ddw2x9sbnvw6j7syd545";}; -cns-45677={run="1b9hs7svh6zm22vw5zv6nqmdnmw453xv15gl5bgm4n3f1pz757wv";doc="0zdjgg2njgcf35jvbhkfgiv3b9cccf7ds8d50ga3v1ia9i4h9xq3";}; -cntformats-34668={run="0mx4rgzk4av74s906andw0h9ga5zl2c3ip0vi4q9349yj643k2q1";doc="0015ynn7mw1y8v14qckbqkvb1fn5xqaz7rcs6gid1n19f1qsbh6f";}; -cntperchap-37572={run="0g7211nljimm9a5fvry89ch4nf49xhad9ka7prdmlpj87h9ygas4";doc="1fmq2r8ssvp99ykil3aak8w301qvh4nldsph389m7qar2pviy1sk";}; -cochineal-70537={run="09bhgl11ps6zw62y0jvh2pfddxcgdc92scv9irpxf2nvjlyy3wg4";doc="1lg1z4nlw3w5hw1ivhbbk44qg42m8s9470d64pgzgbgfsalyx4fp";}; -codeanatomy-65648={run="0pi4w20k4qcm3sbzpd2dsdpq6r0nblgjm2s3m2gclpmsybzmflp2";doc="1z9w6llgjnlmiwkz6ghv1cf2ilrfvj0r1k2c6kilsz4jcc457y3z";source="1vag4qaphfw0xrdl7b082iwj4z89x77sh62y05xs0f2bib9qlcn7";}; -codebox-61771={run="0s0145rdpqbbagc2klx2w5h6mlx4ns0qlllws31qbvy6byh65ngk";doc="1pj5qnzfa7725v6cixkznrs7yybc2v0ik9q2pxa4d25rpfxap524";}; -codedescribe-69944={run="06pvhd7v4p58hdi9x0ipmwjy84x70c65phvcbayfr0d5n0hrjvi9";doc="1ybanfz0zrbflrwdpzrpxk61g2j4zwimfvjlkkh2xrjvsmb95x6r";}; -codedoc-17630={run="1zz70vp8ssblnacrqdsq9nwvf1lw69mlk9d94cfjc818szcgi9v6";doc="1f3i3vw1cmdvgp05xckr748kzbairhvdpfvr844y7wnmxzr4rfzg";}; -codehigh-65787={run="0nls47d5md0b46xi1nxydzwf79xrqh6ijj06h5n5mb4sw7w5qylp";doc="08d7vyn1s4gqhnbz7f935n96ay9hk7k41w8msg8j9s937qh7fb64";}; -codepage-51502={run="0kxf5zr3mhn5pd8pzmzslgnngk8gms27ax6cqn1z0n35zvh0p17h";doc="1sd01q8lzrzgk9v1dyhf4m7a4fspjll3w8wwkbzp7gc693xg3lm6";source="0b38lcswx2x1jl6ydmvs6yr1y0kiv6gdicnbrx5qs8xhwd93bcag";}; -codesection-34481={run="0qp4k2z442idg0mjnancfskj0j0k75w327fixjgdq1kl9q6jm9p5";doc="1fs5qhcm1cil5cqi8dh04zxcnv2imq4m77287amq0mbh3j5h9i77";source="1qfnls0g4z3xsmh89wjcw31gm09c7yh1g99ksf0x9ml6yx1j8f3l";}; -codicefiscaleitaliano-29803={run="0im75yz3sw89ky5lcrcjhg6k6j4sgkjfn6v4srmqzcfdmn2qyx7m";doc="068234c0shvblzkcgl67a9s9whcbyjy3mjw60i8ljhs5z5wjrnc2";source="1vsb7dk4mlaacl9ls17lm4xdw27xzdgvng02gkfjvja1ja3cq4zr";}; -coelacanth-64558={run="07y3hgw3apkkncch9qcl71l5xaff8zqpgcwf8is7wz1wx173hafs";doc="0ylnvl6ya87aivb10z8sq2rw02q3kljdiddjfarx70mr1jzr2hma";}; -coffeestains-59703={run="1sfxi8zimkp76nc3fg7r3qyf628sh9p8rh2b8l0wq5aga20951n5";doc="097c2xgrgy95w7v5xb9lkgih65ji5jlxzdm6szdyqnf659bmibm6";}; -collargs-69284={run="1hiqc0gwligaalxacv7si4g7qnn06aq7c4kqf2gma01xw8mi61gk";doc="141glrca5d5dsi6azni6valbgvkdywh6isian3av7gm2wridi3js";source="0qxdlmf1yvjlisizpcpmxclbs1wxap1zqivvsxnycyf4vwf2wxj9";}; -collcell-64967={run="0f0dzdnmmi4cpyg2qfdxkdl83qrcsddpqm7z9g9mxfnx4lf86y3i";doc="0wyvhcw36arrgnwq7zc8vck3m37qrn7my4r6959p4i7zhpvsazzz";source="1k7s9rkbp829wlby7h1hwlv48bzxwwghcsnmlxrs7qnh374dwb02";}; -collectbox-64967={run="17bz2nh141yw4cffv1w6cdnxkgi6ilsr5fkzkp6h5glfibmzhi62";doc="0j9hs1q8bzm4p7rwiikc805khkar23722ylf00yb7mp5mvky8996";source="12llsyfksri5hlncmj3bba779jhwxxdr9zcck02jmrvx61d1znvh";}; -collref-46358={run="0q1g0x0bm0qjh568fp45b1ljy3w3jgy6s09ji1d1m5yrbs4dm7qn";doc="0vcfrdg9mqrfv2jlxh88g0nhpsrfwgdg9wjdn0l9b4c5h8zq030c";source="156gdfrd09kyxjiplcm38s3zj8v6bygwlpr9g952m0r72q7cq54v";}; -colophon-47913={run="0v8q22qxjrbc1mpsmfvdp13iwkjxp11cxs86h2b7b9rjs0cjxy6s";doc="0s2kz7q6nkwc19jyl32rzcbbcm7ykhkglanx010xfz08vgirk1pz";source="1z2dihgwd4vbk87n0hzpipm2359fwl1z13fjs4g9r5ys7iv36wsq";}; -color-edits-56707={run="0p465bc127rlm53xngrynmrxswzmp1xsivkfy3mj22h4ij6db03c";doc="04zfa0jryyw79rz9s1c0yzr1i8zla7ivvfw701f8la1rab7z6q94";source="0279n81xyiz4ipjbr1jdl0wipfy1lkl18jx8mbqcbwczw8k4fbn1";}; -colordoc-18270={run="1hay7bb0xh2n2j9clvbn5ayz3jq0yjaixi35isdsf9ysvj81rx0m";doc="14bw1g3dna2ykyv4fl32gvqjs0n75vlfpc9icdk09l7zhdspsvfn";source="1bssn8rjrp34nm6qhmzcrcn6a0ah9lv5n94d1jxqhhaj4pmimd2j";}; -coloredbelts-68747={run="1y4ds4n6b6avqaqbnj5yh369bnp1f0w4mhnzkjvibhipis7n11sg";doc="0svl3fr6df2mvqpf8gfcb2byj16hbf2szdnbi8scbvrww68jmldr";}; -colorframed-64551={run="1kys1kcq1j3c4d8mv22fgdw5l2c9ar3il8cc65w0lx4avbldw28r";doc="1xg0gbyh0ay38yk00in78q7mysnmlr4maxzv5lw3s88l0adykr8h";}; -colorinfo-15878={run="0ip7py03xrsrn40cgkl4dnj3q9g0f9fbw71c9rsg9j7vl82fdn46";doc="1185m34382n9rk6w81ppb414vl77kikkhwvn78aahlyli4il51l8";}; -coloring-41042={run="1ld6gknb8a59pkz50wlil5p11mnv6ss0zsjbajbw63dg0zlwaglb";doc="18y8apbkh7yqzxrzpraqhd76k93xnvgq5rana8lq4xh5z3f7skjq";}; -colorist-70101={run="1j4fpnxpi081ar0732dqgg2lyn7dic1lfs7nxhfg1xbhkxnv2ms4";doc="1zrx4vlp4w4k58rrnpvi7m4l0llwmml844yvj26wzap7l7zj2pn5";}; -colorprofiles-49086={run="05nf7y425f8ric57c3afq7ymc7ndxcdahbx9n32jnaz9j3qq2ypl";doc="152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz";}; -colorsep-13293={run="0nf72pf2bjn8pcps45sn5dcjf1dkrww9wlpp1xbzl1h9i68p3h3h";}; -colorspace-50585={run="17pahq2wh9vqwpkaqkzc3ypcz90i9qpmw7867qz4k8a87sp7wgji";doc="0g766c50w7xpfvqpp6lxjc6lm2cyr8yl28g7n357j1d1lxgnv0x7";}; -colortab-22155={run="0hiq8wgqiwxnw1gsrymshkldspdnizcci56ihn22h0hcwz76hgzv";doc="1cj84k7cl6cww25yy2lynjrbicn0qy4y09rh6dx2zq19972fggi3";}; -colortbl-70034={run="1dv46n3r700khx38d9xxx0i4fj07zgvf5lkhr6jfihw9sjxda4jy";doc="1gmbqf9mignz5qprv94qh9rn4ywqx0kpwi1aagqp4h1wdvqr0h7d";source="01w0n3hl5m7gymcvf0w5ph2vla2k9b8z7y9k9xfnchc1xn4kid4k";}; -colorwav-67012={run="1dlh3ipf98nq5m34rj7naafnw9hhrbljij721mw57rbhbpcyazgr";doc="05f91rmf1kpdkfl0dgjag5cq5xvcflihfi9xj5y49nh65mq01w99";source="0rxiqp1q49l1dlr2npbb45jygp487zhhzjx850f68bw5vq8wz9j9";}; -colorweb-31490={run="1rz9ay86z5bf8m4j5w5prvvk1nmlaakj3g0qfsrl0cdqk7hwsfsf";doc="0vzcwhbq1a6pczvrv21z0q3y1akfwm45fclf0857c8jvpikkzb1m";source="1z0h3l9gdxsg6lbw7j6nqhafxq8b8smcn4nmq7ywdzryp8b6fbw2";}; -colourchange-21741={run="0y8r7789xaj16cdmsz4q0zyq9l09ihgzzgk4alnggsyx1ny45ybv";doc="0zj9b8xcnjlvadams6a2z3pvnzjci5l10kran8mg79ncvzq386cj";}; -combelow-18462={run="0s14rmmv44js6vc2l8h7gb9f8h5w4as71qgxbadaxw641xfs0ys3";doc="0pwrqhd8m7c2444czsllk4sqai3i2scll94y6qy7m51jvjycyf26";}; -combine-19361={run="0rk76f508pwhq4crcimw6mvqw40j31g2nsrxj17pld7ygxf9a5ah";doc="1kbvk5wdpjxw9slhz63pgz65kkxcn0lkr6i5gv8gcjh2w61xizq7";source="13z1yd5mb4jdsa3kjl49412zj2g0nkprmmv8d6ibnjg6zdf9s0xn";}; -combinedgraphics-27198={run="12569y2i0q2lbmnwlwjfc02x0drpa3vcy58wbch4j2xzv1cih69s";doc="1jn4vdnlz0mwjv09ry0phbisf5zv5valwd3779cqbh1dzpnpl7lq";source="0xacdk2xsdlzgrxh0sa8sgjkwhwasvahgdgjjxa9p82bfjhr1f4d";}; -combofont-51348={run="051xpkjszw281gcpacc5s6wpbvwx66hkbr5fpg72205raa454bjf";doc="076niz8w1i6zwq1938iplhcv41qfasqhw8darlr84fr08d3hjwl9";}; -comfortaa-54512={run="1kfxl806y2g6axx8csnd7njyd0skxx1gpw7fm3paz8yrzvyyw89g";doc="0irfhf9qw81m9x03nybk7br1nrsk4gx1dccd8ay7wd3sgw00kg0a";}; -comicneue-54891={run="0w2jbwfzfhbm5375852zv9rqih3p7grvi0s79sxr6gpzh7iyvlxr";doc="0wr71zjk337h9p38nm67ga8js60vqyqfslwn7dqvzg06p0741bfk";}; -comma-18259={run="1xaq59fm295wwnpls4qfw364qf9iyg97xhsvglgnnx8w7ydhr68a";doc="0g8jpwf1ilkbk59p4l372is00qwhfbsf8f3db1mxysmlxyf0m535";}; -commado-38875={run="00by3sskyr1hfc9wqazn2rii739bhl2fhlwwp83h6wx98h51rfx3";doc="0mk7k9gyv2xxd3l7m58dsirk32cn7wbmdy9c0nc6i1jyfpsfhmq4";source="0719a7bp07vf5jgx00cjdgvzfnv7wbxrxna2bdjjsfyvipyr4z8a";}; -commath-15878={run="0k3s00r4l8bypv1166p8jkdj1wrx4ar4w0y1fggmpzivqicc02g3";doc="1n2929g5jhkrrp7fs237h80571m31dd9x0n2dhnqfgynnc9vasrd";}; -commedit-50116={run="00anqgix8vydq5ssblg5w5i8pziy8fvlva2kpwy5cjjiqgpprcd3";doc="0vvnkp8r0xbsyvzps4a20fr43cj2559cs6mq7jhja6jzvqqc6mic";source="1kzc8i6nmvw7xwz9fbfanabypissbm7hnmmgp2m8r462ywzpa79c";}; -comment-41927={run="14k4y4abv5mlhn1i8f90bxfymp9vz0aha4p2gql148wj2hh7h96m";doc="1589g0dah13lw4p18cqprhfnh1184m79ddrgvc2l22bq6vb1dsb6";}; -commonunicode-62901={run="0mx8nsyiy7jbdqsjc19sghifigg06is99sys3xg0rr451rxa1kyv";doc="1c3xabrgpmff2b3yfrxj7sbdwn9jq71xi2s0v6329rwjd6vifwd3";}; -commutative-diagrams-68044={run="0vkcb6gbzfa42kxdz3g77phqi6j614zpdp0aiyxqxvxs2jk7ncpi";doc="0hbb7xcki43274s3ssjqw976cv8lmyn1gd4rlx5gnvc347r2clrv";}; -compactbib-15878={run="077l73vb0rcxy1n51r3wmcb7gma6nn3xrl543a67n96lpp5xvnnk";}; -compare-54265={run="0isr7gmskv55cr4f1fa7s478v6fh65q9ijxkmbpxj0448g9817w4";}; -competences-47573={run="0hijar81j2jpwk5j2hrgaxb1fnbk6qh2qb0qbbmhsqrdrfcl6xdl";doc="0ywq9f2a1fb584kpvzwg8b16qc7bpcn3dzsscs6ndqbgcy0zc2yf";source="01dccp2wqdy52kp79n099v9lh1vfambg0b63amq37ac68pwn3qp9";}; -complexity-45322={run="062xi5wlg3axhrzc9a6nj068z7nskb7qwwk2wr0fzvsflqa9cp0i";doc="0yzdyn9j1jk0nsw0l4r06cr4brhz1f3lfxc918zalx6h9wnkxi2b";}; -components-63184={doc="04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m";}; -comprehensive-69619={doc="0cmw36bn6pjb6ajlrg2yz5imkrxihzzdkh56xwdk2abwzaqn09q6";}; -computational-complexity-44847={run="10as8msnqa06dp3hp945m42rgbaqsja8z4sc79x7n77z6qzmznvl";doc="0dq56zzw1xzzpm1rdjkqwhr6v93xiv00c1g2rmlmfj5dnbzng7wq";source="02mapvsz8j1979gy7pmwkdr6wq55v0al71ffl9bi2bl7f5nsz0vc";}; -concepts-29020={run="18vjncdrbp7m7m08dnfmk6sgv79jx83bc4yvvcqb0j9mn9niy1f0";doc="1bq82dgsl6gqnrs88dzg07dn4rmc4y5by8122zqaqpdrpjxhnvax";}; -concmath-17219={run="0m98kyji3v4gg1a30phmn7fwssnnbdvyjxvfpl36lnljnicpg28l";doc="1392wq35zidk71vxybrwjq79p2gf4spcv0qqb07dsgapbhr2g0aw";source="1zn35da4jlplqg7fb5ibzaah2yh1cwjqvzmx45jxg0hnsc7xmlfd";}; -concmath-fonts-17218={run="061kfzds7clbxyq62ilxwcrdkfghi2lx8afik7vi9gg0hysbki7y";doc="1x6wb92k4da01sv8b35p3bly9hj46hh8k9wr22m7lj3rxnndnpcq";}; -concmath-otf-70337={run="0qb0j7rxb0h8ym7iflmdhlnncbjkck2b13h2zwanik593npgjgg6";doc="0sysisasrln5lx9783bp0aa8vq5b3crlr40lpnm4hgvcwrr0007p";}; -concprog-18791={run="08yr8yk9gp35d0nvh54ysgv61s062vj446fyb87n8jipfm49mj2x";doc="197p2bdn1rqmxva56sagvb1z7kc8gwxr9zf612r6g8yb07xg5riq";}; -concrete-57963={run="06m8d6z5z3dpj9i0nvp50g6pn9j0m4n0n1j3w94nml137qghawyg";doc="06z5hh9ksr9jpkfchyh2zp8b827klb4v282ipizrm1dvlv2r1603";}; -conditext-55387={run="0g6clck3v75yvg7gv42w24zv18vi5jcg1q9k663cxldix77lkgbc";doc="1qc7w7xfpxarb82hf66f3i63v7ypdybqwg5g3j8qswj1a39cy1wm";}; -confproc-29349={run="1s4mv0g2x5mfxnkp0i29wa3ncbx9fa05qqf734fjppdzsgic079i";doc="021kbis3c73gnavrjhqa34fsbq5c94lmjym2d4ny2wpk9xagh994";source="0dpghxh9mq2sr7aqgcj15h6b4xh7x5hvdzph6606izpff8ac7h8c";}; -constants-15878={run="11naj0z8ppb6h07r7cff0lcmr8zgc29kp3x7spi60zi6cq2546gk";doc="1wgvq0x1kjgd0bs0024fkh7wis9aw9qryd7y0igrbgdgc722pjnp";source="01skagh044v62vw12kmibgd6y42z5r1glrsvi9y0h76vs52jz7hr";}; -conteq-37868={run="1h7b98qw9hl73gh4zidy59z4rly9afnvmah75jgvh0k1v1hm09df";doc="0kgdggc8gpd1h7kdbh3ala5kz8rs56bgmwgv9wvxsqx4sn19q2fy";source="1y0g7sj696d6qhcw8vrpxr8gwik54slp7lijbxz64ksqbw5xjqv8";}; -context-69665={run="1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh";doc="1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60";}; -context-calendar-examples-66947={run="0asc49mn24ql4fk73089viy3s6wff865xk8af7h67ffsb5qjnld8";doc="0wza057wz18yf2zl1j77hddzimwnraw5wg1579ncksywvhnmx3rp";}; -context-collating-marks-68696={run="12vqvbp7ns9r5nc7p7nrlsll3jp3hc4xi9wjyjq8lrmd8ly3v26w";doc="0nawd3x4rl73s4mhpq2wd1sqa8i6k2n0a39sqcaf21zx99mpiqp0";}; -context-cyrillicnumbers-47085={run="1gk4ncbfzilj98s7k7s43k6vb3il511k434aj34fsvqh5x9x4aw2";doc="0f7r9qgfc8h92jprjqa24q4vpz4bqrrns3glhmwh3qmk1f2gyw73";}; -context-filter-62070={run="1vj8kimqsmn9xhkh22pywqbn4sal5gxpxjbcbv8xmxcrby02gsfn";doc="1f6phdqxgvdg9c6f37m654ha6i226d88i81147h9x6sh01i7qd0b";}; -context-gnuplot-47085={run="1pahxhbliz6fsj2va5pgwcs55b3rhsmfnjb9qjxkz3gqzrzdkfdp";doc="0l0qp9c0yvdrf8398wyac98ghrdc86lxgzr5l327gmgnk8572gxn";}; -context-handlecsv-70074={run="17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7";doc="1fgi9sg2392syill14msv8hib1k349pcvbldiq1a8g72giqkf5w8";}; -context-legacy-69173={run="0j18agzfhwwzbdnqavphvrp0lpji2bv21qh28kcvzl269mgjgbc2";doc="17wsgg5zfx0s96wm2l9zca060z6p3mj88hcrw07vy44imxv3gyiy";}; -context-letter-60787={run="0bnd56v120h3c235n9v2h6mzvmd6fy1g837gjim5fkkqd7jyzp2q";doc="0l4vgrpha5kx2990kdk4pdfljznlczlji0fxqsxs292yb3yy5a4m";}; -context-mathsets-47085={run="11r30c6lpcvkx7awgm70cb5darl90fvpnf37hj2mb7h69d281hv6";doc="16qckniq5v52m36m05bpnqypfz2jn4430n5x5zazx54j8makv827";}; -context-notes-zh-cn-66725={doc="0pdizaybvxvzh19451x90mj81ql98q91f6cj8mfxwxa0mci1b9p4";}; -context-pocketdiary-66953={run="1pm8zaypfm575ryq0jzpnwf5p9zjg7hzb6lnc636cf16y97a1vkw";doc="1yy38pa4m7bqfb0r1wxj1g3zdmwzgdil35g2lw63ww15y03k7w0j";}; -context-simpleslides-67070={run="0dgmix9w576vxmffbm4digcp00vvdgmdxmxwjzrrkici4rq31w79";doc="17djxi04rhg61fjcmsz4yjp7mnc7g1fbfb9mmkcf7gk8dwzrvigf";}; -context-squares-70141={run="0l56p7zf7f9ywb66v6cppnqh4k6zlsvwj37vxcwshwjwl9z3cfmj";doc="1qxcy1qhk77p63h97qad3jvvfcmsgjm6b81cn10aakvl3sniy7g3";}; -context-sudoku-67289={run="0fnzvzpn2d24hdi5g18f1mpaqkyrcf8kvkprqdz1jvlkqld82kd7";doc="0dqzxcljl1mn7qs7hk2pahvc5791m4c911j5dv85fwaladhjv9xb";}; -context-texlive-66924={run="1fg95ihx4wbm38j4rm4p6vdaiib6n7lcf43m444r4nb5flbrbv8q";}; -context-transliterator-61127={run="137wjy0whfbwp95h4grypwxld7kxlx9h6l3bkd5bpfnqhg70j05d";doc="1snnrk0h6pwg83qzsv6mk3n5fmirk6rxjih43rcs290amkx8i49z";}; -context-typescripts-60422={run="1vvhd18qd6vka9rg048arpwn61rqw3za116k2yqfy4lnp2rypk0g";doc="0pll9scpcsxzwgsy77mbpw4s0yv432h5p0av70kr81zzskfxabxd";}; -context-vim-62071={run="1jinagfnv3aghjn8gsack6zl9d3rcycwqmxir5jdjhbw4r66yp0y";doc="0gc1m894ad0y8l1vis5bc9n6avg8npzlqa4xr20z401nxhxmbv6h";}; -context-visualcounter-47085={run="0n20r8315py52ghivwy9kh7g7yj4ixakmkn97phw1fxgz21jk6qg";doc="18ncq5d4chmnmxmhazbjh9ypsm4c3577vgcmnx0y1pmzgb2g8pn9";source="18yyv9974cxzpw45rzw6ia2jamrb07bzw6gqchdprdjs0xmhz308";}; -continue-49449={run="0vwz01gmbid6b2aj32qnz1xrlk9h0nicjv9ix1rvqdad20m1i4wa";doc="1mzsj70v9f6srmc8ja62pph9j67p644hl54fx6nyahvr2h9vdik2";source="1q835904qai3r49yi8hrfxkh4bjf6913qs5fd2dv7myp1w93j5ir";}; -contour-18950={run="0xb8a0y3jazrq5gxfnxjl7qkyaqjnmyhjshgngqcsrw2sq4j4li5";doc="03rxkl9vhhqa7gpigar8w2h78qvx4k68chhf0881ws3bm6lg15sy";source="17sfl4npipzgc7jwqx740nny7fnd8bv8k4vav9ds765ky1xcs521";}; -contracard-67201={run="1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm";doc="1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50";source="1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4";}; -contract-69759={run="1z0rp9xb9xpxjrdq2ww4ggai4lvfag28s3cmsk1c5w2kb5jqdjc2";doc="1piy96g4vplzqrsvczhm7fp4wmq7wb15l4hplqlgnis3k9a4aj6j";source="1dg8zqbbpdaawwa1dh3vbh1q0qlgid6ib13cbynan4sxf4h8f386";}; -conv-xkv-43558={run="13clac7dhg2p69ccv2yjzdh64yjx02y0fb0imx9lsd0knnb1j3aa";doc="12dln1r2qyadxr4cy3xbwn18s5y8yxgxid22wpb2i42n5qc8j1fy";source="02hz64vbcy7vg363vb86vydaa29g5cgji2mfpn640dgmqq0s91vb";}; -convbkmk-49252={run="1hb4ahbgihnzqmcszxlq67bsiqprrxa9vf25q8yz31j70sg7s18r";doc="1h1iqcc1rjcvwg9p7xg5zq6sj5bi68s2cknsbwr6dbkx25ihwi4i";}; -cooking-15878={run="053wbmf3xrhwjxp77f1myfvz3f474kpk626p8gds939yx50jqzvs";doc="1db5wxixparr81vanwkvg097ll58fqpp3qkh0wz7mbqjkansp6km";source="1gka18njp7ipa0jp1527mhig43hhvz5bcdpvs95c61cvjrmwcdm3";}; -cooking-units-65241={run="1ainyz58nk9zyfg4isfgjk3g8gjw08ri8d1x9kqnymdyplxqankj";doc="1r21szkygn46i5263k6qryb1fhg9va71f3dcqxw1dh3f8f2bpcpw";source="0cvfhbr7zjcc8d5r453wkgmvnqwmx3qj0gl606sgrz87zhzra842";}; -cookingsymbols-35929={run="0kz8aaf7bp0y2ph0iia5lkrxnxch9r63iy7y4zpqcawh1ajl10ji";doc="0dws0sdcg13jpz23zvkw6vfnc34qc1s464nm2nbdybhjwc9gdbdl";source="1l1jkd6mcxdldvjyk9myig4jsi89mg6n4ab6ymq5lqf25d260h0j";}; -cool-67013={run="0sz3n82js8fq7fiffyb53ib1y49k0pg6bkbzgnzsk698y5w34v13";doc="1gpa5im88apgfqyv1l9g4mcmw6fmryksbx4nbldwlwxdvkwfwdf5";source="0ds25c0k113w365f0nylliiq1h76i753lfkccbbibs41rp2kg4p7";}; -coolfn-69007={run="0y25dmrbax6wxzlrqmp1j3h6xnvvk0ls4f4rl5a4a3hi167yqrkn";doc="07xjbc9bj6chvjqv03p1c37bbqr1fjpkq468sx6cp0q6p45z17n9";}; -coollist-67048={run="174l3x19lajwfghixzxjizxwqj8z2q9rys9wcly79gs8r3pmbxwv";doc="11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx";source="08196xxbx6fvhic3a9p8bwrr3ir4v9ikl2vj8z97m9zryrzjv1i3";}; -coolstr-67015={run="1ky8l5g09cj6731i1x7fc8chp7qhpc35xcinjrajjbzfjr637pk3";doc="1aj48ym4rykbz4z5rhfch5cfkyj14x8wngsvwrhzw0m58hpfpn4a";source="0sxdiic0xcr148841ngzdmda4bgk9ningsf91ar517r2hfh1178s";}; -coolthms-29062={run="1z62gl39f9cvmwap70q05jml1657jxg7lvq81rgqh878z63d0rzi";doc="0zqpx1c0lcrkp1zpwl776hd8gln7i5f5m5k5kjhcwxwngd8w8df0";source="1bir9kbsvayk3xkchg7kjbwqkhda81vay9d70hmqxgwpa0l38j6x";}; -cooltooltips-60201={run="1apf2qvfs606nqnnps2rny9ly6y0hs7yv8injrbbk64x3nxk86xr";doc="11qjqqicakybmnqz4vx5jb0cqsj8gw86rywj7ycvg96s93zkh12i";source="1spsydk6mn3qzclav2g2al20sdnaabz9b0f01gq95w2qygl26hy6";}; -coop-writing-61607={run="123rbingcrgjg5dyafciwz8wm2bpl9bz9w54pi2jim87lgibnf92";doc="0jqrf8pnpsq8d432s7b3qva93ydf8gng18fn3drfbzsvb4sqaf97";source="0yhynaxvvhfhnx97p5p12xf66zng989kddlfw9pp6sv5alxfnvaf";}; -cooperhewitt-64967={run="1a9jq9mfw37qavbqynyqpsc1i0hnbxwy9z58ipqqaffblqfj5xvd";doc="1i3wmhs3y0qr8g5srknbhk2fwbw4lxa732f1fch4qpsqqp20hy7y";}; -coordsys-15878={run="12vpxh6ll7q2jpsv85j68ij0m3b0335hflpqahk40dagybjkp426";doc="1jcjvd577886q8sqzcsqil81b2lm31vjxhbdrgs38fw8n6q9g0sq";source="0npd3qqigvp0i5zdgizm68sr1g5xcplgwfahrkak0kq4g882qmdd";}; -copyedit-37928={run="1rl23bq3fbn4rajc744ra2prvm4rmh0wvhc7jjsiw7sw2hzv467a";doc="1ihvynh96vgl8ik237pf2pdfzclslrn0i7lc64skx3q7pmyv11in";source="0i2pwjj4bdfsykwv6bchp2p7x0gpdbnyx37ri1d27vl72yi72pw8";}; -copyrightbox-24829={run="0n9z6dngf0z98bnzn6nl8yvy7dh1jmcdbqfxnzxarxzqq16f99ch";doc="1clg6jq9cja76j5x9laykndfqp0i5a4bfmqrxaa8rp6y2gnvpign";}; -cormorantgaramond-64411={run="1jdqzw1jd0r0qc4wnhm85kg0nb92dgvwnjyqlxz67lb9wgwddlk1";doc="0j6gq9xk9p2m8kwqvzjsh0s5z9x4q6v8klxygdahwgahvd0n8dl3";}; -correctmathalign-44131={run="0dvgaqy8pkk3plhqlxgkxkiwyhfzwcyn391grbqv764mvh4iar69";doc="1fd32yzxj3l4sp5cp9rnwv3175jz5m5hxwlfm10x282g44l7mjid";}; -coseoul-23862={run="0wqxvh5mnrl59ry0qahxzlfajgpp0yj27h0falxnr4m5iygv7699";doc="0l3z0fxsdlln0hjwkxf9ka9hw8zmmixml9lfy4kbrn88xq6z62yw";}; -couleurs-fr-67901={run="1479gy549yj0xla35f7ryvh7vkxppisvi4kz7ji9v2219hx4vkg6";doc="09fh8d9bgh0gmabiq0d9l7flkk46w8yzqksnfygmbprib15b65ck";}; -counterz-67335={run="1rad8irarp20xah97ppzipns4i2v3smd44sbfi2jy5dc0qibw0y9";doc="102axl32lgrdlav3fyzsahkcikmapivydbfwm3wkib624i1f1h95";source="0f8gspf0m2b78fr0jq7n4s3y0f80l1pc3qr1rzjfs6xdrg1nv633";}; -countriesofeurope-54512={run="0387czqiyawxcjqh22czyd8f7y55kcrscxmp28rcm8wqqdh2ra0z";doc="0h06f5rpizsdqddqdvvvh5p3nhm4y5aixjnxl8s0b90wpcldwrpg";}; -counttexruns-27576={run="0qmm8902apb9ks1ik1dxmzb3ivkivpj7a8f8mkn5xdyxbnqvm5pq";doc="0kpasflvbal7x4r1ni3jf30fh7w6wi68109m5ajcjqrjzxkpgmdm";source="0840fyw71mw3l5k5g01wd6hn41a079f83wmbyg64f4yhgjdjxjnf";}; -courier-61719={run="08g6lm12b0k6333pxcaqdf67v87fz5mrqp3jgal8qhrls5ym8q6r";}; -courier-scaled-24940={run="0gfqc90fq1nk7w5rvy3fqd5799aaxh48ia4wxcf01bhs4l7nrl1i";doc="17zr8bdv5dv8hybbjfvkrn1skn6xpl41yfrb4q1nq491nwbppb14";}; -courierten-55436={run="1maxj7wsjqh2ni75pjpzsbwh1f9abndka1ilaiwik1c21kgb44g6";doc="1lq4clwd38f8l4722khgnldjfk11mn1m4m82ppb1qk04qyh1v8sp";}; -courseoutline-15878={run="0mwv6bslzgm5ys4gl32mxcw42gkpzwkzrvxk6934682v85qi6f4k";doc="1k135zma8aacd0mf6l5v4zac2blqzf6z5xa40094by61455x48ha";}; -coursepaper-15878={run="0n8gikcli14inz5q85n6k63yg6dczlpi837mbxrv5552hqzpivwv";doc="1d8k6yj45x0wx790y46b46nhjb3zvv2ncbkhlzckq71fsi5ayp32";}; -coverpage-63509={run="1739rmdrj07q8s9xpxarwwds13hciyv3q41p18cm7md8qrdd74xk";doc="19hw1mx7ghigybh23b8v65y0zx28p9armynkw9s7mgpbsq0wld32";source="0spllq6j5rxqc6a96x0dx3n7skm4gqpp6fgas9vflywiw6i5vk75";}; -covington-69091={run="0imdahq466zkhjnxgnygyq8s3g2k8qanm8v9k2z2fcp0hjwz2rkx";doc="1qlxm07hw1fbch6acl9rslqsl1vh1h5sf41qpmnfkwy654h3iqv4";}; -cprotect-21209={run="016z5zz8njkk2cra768jlh2s9l3r4wmn50nk3psmk3v0i0cy0197";doc="1wjyrb0z85yighkw9a1pxxwilp31c5fjra7y07y0v1z20q6g3rlm";source="0lrf75hvlp6jpwfppkj0dwv7a9q51n897bwrf3gzwswb7icvqnf2";}; -cprotectinside-63833={run="021581zdl2c4j6crp9cnrnvxpwdx0jhhx5ab2ax7016hzsxff8la";doc="0m7hhy2wlagymkq0ckr6yhiav02y7b623gd47wkk75f48rm0lbdc";}; -cqubeamer-54512={run="1r63ahd6m6ll0phqaxc02hnbrf3f6xjdghrhn7wdqxnf8n9k34ff";doc="0rgfjw69is9i06blv1dr2ki6d8lgfwg3w57r3620r7yffj7z9hpy";}; -cquthesis-55643={run="143w42d3xw31dy8wdpqx01r8q9vs2an1ixnyil8n0q0af29j49bs";doc="1b7k2s3ils5s5yb3fdd6h0is494pss7s76awfn3dj6yxiaps5zvn";source="05gypg8zsdpfhp11rk7nii2vdw4rand5lw6ijkm23lbq2b5nwvwj";}; -crbox-29803={run="0ni16ldwni2gyzlivd5ii2fdq15h6np4mv73raa5g76i5rw42sbb";doc="1yk96bajna3ihvyhx482jrwiccbmqdr9852w11x00xkcvvc6azfp";}; -create-theorem-70180={run="0lrky9yb0y301w5m2qc67x8adrkd6p9l5wwjamwdslb59cy8qn05";doc="0p3xkfxnvmn4l6fwp1nmzix5vvqjwbskpdncd19s1grymhyxay2x";}; -creationboites-68087={run="1mmj4xavpaqrim5w3cqs0nkrfvg23578nas2ndnfvy3zgjywwxxw";doc="0xsr0nvs95awhdjbhfd9baj7cchf3fx83f4cv5r6sb0l4lcwg14p";}; -crefthe-70165={run="1kwl01gnfr8xwk2zra14faqq4in4wijc03g5sdvgh2c7a9j3zm00";doc="02ddnb2399bps1qm8m63laixbrx6jmjnw7x2ivnjwlm2jg7zvhj1";}; -crimson-64559={run="1k6ff9fb5isv2mfm7zvnqziw1rlbs8qmqrlbixq33nrab24kb1zi";doc="1fmfghyxbihw6ggf4x2scx2g7464bwqy0yql38m4r0vmmjmzi34s";}; -crimsonpro-64565={run="16jz8i749gk7s87h2b78nz6cclmgvfn35kh3869rsf299y4dbkx2";doc="1y8qngb1v6paqr643kh8sdipnp57lkbqwbk62r8nrxps2cvw06g0";}; -crop-55424={run="1hnf65q6mg5fq75l4g81zvp4qqdb092zb41m6nl3zw2cvp8gal23";doc="1w6ql3bnghj633ar1zwbv580py4f1fmdm4vk7pa3q7vpnrwrgh5n";source="15fxivp8d1xww6j5nbfkmsb0b2c2ldmkdy3ikw3m6jjk269nwy4h";}; -crossrefenum-66014={run="04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f";doc="1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k";}; -crossreference-15878={run="0xc8d3g8j86dzpfxzfcildiyk8zi2apc9af88v2zg6zjra6vra1x";doc="1iahzjwns9zapa5y7z6yy2wjdcy6qiqrqvp9q9v4ky2zgsf7n5pi";source="0yajk2dxnsfy74r6a50zs4lc064aha0lzfqp26gpgnsx2h0bvpix";}; -crossreftools-55879={run="0pdhi9yij4n6bwcwbk077sdvwi1v8ww51g2r9ssfnmvmxs4zjw27";doc="0q80k648b967q9gcy7c3lb8ywk257zbsw04kc2gazlc61scviy49";}; -crossrefware-69700={run="1gjqw69rlyk85qi3hj9gdd94gx7vfb307i4bjkp1p3mqlx17vkas";doc="0iq9cjlv29990vjwgravv7bw28fxs5sz0krpa3ffwh2hmk76yh63";}; -crossword-64375={run="1jx01w062yn2bpnpmq29rwgxll00x05rb2i0prz7gnhfv7g4iwj6";doc="012h0rf49rlx7kjjv5i86jz5v36ln437ifmzv0hh1ww6lg60phpz";source="02sbn4clwrccqkr41azpzng7ck4q74lhbqzcd75zdv59gll9z3r9";}; -crosswrd-16896={run="1c85733q3x56s1fvag4kw39r6lnx4hr1wmhsrjs0jnyf5j6lf38w";doc="1abqbdfk7c7cx1ij56q8dhz87bc8ppb3hkfmc2z5r6zv94l34n2i";source="16didvmnjfbd103skc6i9qbim4kav9vw76954yfqijz1q74c880s";}; -crumbs-64602={run="0cka3j6aaxbgxvv3z7010myr7kdiva7jv7m1l4b7svq6j4md38vi";doc="0rxkzcmgvbm4mk26fwiw1wzng5bkf7byh43zdp4dh0mx82zn8qq6";source="0z88phhr4a0gdd3i4b5mvhcfxc1cy5sqpx7nvf1plmz34amiwcz4";}; -cryptocode-60249={run="09jivxl23sxqpa16m6mla6zb584607ssr46vfg97c828s25n4rz2";doc="1ksjx6zcksrsligx58vg3pihylj22qqwan4r4bk7zqdwxwww88l1";source="072cqf7dhjyhgw31l8im95h2m601j1bhm4zfl0f2q7yzznk4jr54";}; -cryst-15878={run="1jd8ny0a0mlhjdbigkkkkz1xn51s3l8w3dpcx5kwg10m29b3vwc6";doc="1rdclk91d2hps0xiqj4p0i4najjz9llq0nr9qvlj57h7ipyrahcj";}; -cs-41553={run="0nzzcg1yvbslhqm5lsfcpqh6sbzkmnmmgyakg9l8855qpa8g9bf3";}; -csassignments-63992={run="1mwaaf1ap05mp0lalyk89lyhqs26x4w1sx91vfsjxf697lndadda";doc="1w2mhq1yg24xz9a5ar92sky0b9j51nbb8k2k2ql114wafrkzzrnh";source="1k1iynw5nnnffx26ba5ydaay2qcz492yppcl8ws98xwhrqpjhx66";}; -csbulletin-65250={run="1fw2v0z3a9lskwgbh1kcwv9jnmaz6pf3w2hg2b93zd8mz7wifvab";doc="13zdp3fqbmqil5scgdcy0ngd6gxvdxs3k8ngm6xq1bnq7wy1284k";}; -cslatex-67494={run="1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf";source="0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546";}; -csplain-67934={run="14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r";}; -csquotes-64389={run="1zsh8z36capzkg695h2h7h8359fiyyafqa6p5m916pmz3vv7sfaw";doc="02f0l0w8k33sgqi6ml47vpqxlpssi9md0z2dm25y0q1ghhyyl86p";}; -csquotes-de-23371={doc="087c08c44811vd8p00l1xrkg5w6fsl8as64jq83m6gf1hfan9w4c";}; -css-colors-54512={run="1q3vmcppk86v2y72g47ifp129fj4rgdq3rvzgkzdzwhs1q06ipfr";doc="0rjqim8zdmgrz5dff8bjkz9kk456l699k5nplhc8bxa6dn7yrfdx";}; -cstex-64149={doc="1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj";}; -cstypo-41986={run="0lfg2c985h1xlnx1fa3kx1jjrhw7kmgwvalqh5127w20r0lrh8c5";doc="18yx6l49qk1ayaz13qqw72r8l8z348d20yqdm305nalhqyksv1bb";}; -csvmerge-51857={run="0fyrqx85mklws5zny7gmmyscnsivjfvwmgwi52k3jk2c97nvsy8z";doc="18pmc5h44jmlh583cg0hjr24k2pj369l6ya4hqm9kwka0bhg29nm";source="0mggp5xankhif93firc5g01c6b160bkwqwbhc04wcm4ndlamvip1";}; -csvsimple-69494={run="0yc6lr52yhrha4f70g6g4dmx0gb9hb6xrnj971xms29rbs2azpdg";doc="0l6k9r646qs87ps0fd6hpy3xj4kv1442gmm50b1sqcg5w1hm0sbx";}; -ctable-38672={run="1xqhq2ww64h8vpqqzg3zbhh0z7xpjbcqcvxxm4a6kyasyhc9iyr2";doc="1nfdrjjb3j1n8w3x4v92v9l1k0smnygwj47ry717qgf2sq7f2b8n";source="0smcvvlq8n9ahx0z1kmf37p8zi5bjsh5q4x5mk7npay96s87z9s8";}; -ctablestack-38514={run="0b739h1ndkisr49d8y4q0vnbl9j3diqwl9r1ah8wk2za1ww2mi54";doc="0qmshnvbyfjhi8bb989hbffwn3447r91jp46z1yhhmcbjpr7clk9";source="0133xxb7470lyfssi1kp81yr1zsz4d8ai3qjy72wki0p7ijkypw9";}; -ctan-o-mat-51578={run="1iya9r04n18i8jdzqkn2i1rxfxxmpzcpga03rp0i6ykjj65v4q4r";doc="1j053gvvcznrk0fhg21ddyx1b1m1xj743b3w8z01lpjihihzq0l8";}; -ctan_chk-36304={doc="09ngqgs08q8bld334jrzhnd558lv7fajfppmfrkp4kv9hc5iyz9a";}; -ctanbib-68650={run="02iany03amlszi53svfv1mj6iwjv5lak7drgxcccai2bdvc8lazg";doc="0p9w2w064i5ykydkayv5wbdxziws998y8algms6gyz38rbmphv2c";}; -ctanify-44129={run="159jchim2b5idpzj5fxxc9hvrbddm6n00rpqsqffzdiijvp9jbif";doc="0wnyp4rl4cg2wgaq83xwm0vzm1b5xlgbrjchg4s3glh2zzl4mpg5";}; -ctanupload-26313={run="1dvqr96ir3gakxrf4fk0dka80inl6aj3kydcf0128vlq168zgvsg";doc="1gzfib72lfbgzcp5r8130k1n2d00v2kds0x8zdkqnikn22fq4jxm";}; -ctex-66115={run="0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd";doc="19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq";source="09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v";}; -ctex-faq-15878={doc="15c0g0x8w7vm3hyn6lk60jf66akyfcq6x8jc2lnbjx8ydwgb26br";}; -ctib-15878={run="0vm3aw2havsabkrr8sx4m6px9hi189vgsmqy0s922dlm479d8bcy";doc="0q7jss1ai1jjr66yk5927psyvvmp1dwbr54llvwyc4z131g7qrnb";source="1im0zhrw1lvzp9j26d9nh4m1mjhs5by6nai0dh2mrmdjw1i2222k";}; -ctie-66186={doc="1avhvyv70jds5xzwp7p1km6d8yha84ckqdw1r1vkgfb959wd3yi1";}; -cuisine-34453={run="16kvfkx5sj6xp5dz0gqlbp5079vh6snkpixmphvz2gzyaqnmafi0";doc="1mbsgn7mvy39pwq5gn7l3h6l3lc53vjyqyvc50xj8h9gs1gpdrb3";source="1r14f44bjdry108f6iy7byzms4dybc0wi936dwkg5ahwyq07pmck";}; -culmus-68495={run="0pj51p0pf4lr9997ilrb8hkz4ncdpml0k7zg9lmw4phdy2bh86ns";doc="18a8h3lgdldazj4mslszmqzpglf0vqpa617pfqa1ga1yf7qnh1fh";source="1mzijc30dcymm2lnzzfci1f99rsxwb8a50p6fd2qnynm3ixrvw6s";}; -cuprum-49909={run="0gqrwdh2gpxgc74zq97zm728ykadkrl066v77hjllmw7x6cjxrng";doc="1126yz6ks0rk92jcsbg2m3ibvv64xznrii9kxf6ss36hm1qwkgbi";}; -currency-48990={run="0673ji0kw0j0a764kjvla157mf5lcxa02wd0ypj82gfz617sn0r9";doc="0v8sfvj7g65r7iyjijimbg855rbbg5d1zdkp7vc58q14y8f34a8c";source="00p52nbdv0x1v71fb0ln63wb9mxdhy7zgagbpmcn2ca3xb83m16k";}; -currfile-64673={run="1mh6dcnzhfsd12ail2wjd5gm79rzz8kcr26x8wya4lvjmdzbw2sa";doc="17bfg4h6pvwhr589pq7j21yawxv7c04q06gw1yf1xsi94gg1mwv0";source="14sk7mh2p25zjl6sxinly5zhj882y035h662vf3qxs7garijqsfk";}; -curriculum-vitae-68211={run="0khwnk2mddfrvmn41y2d7p8704iidyaqzk7zri9gxkrhhhpqb4fk";doc="1zdlq51qv0vds2l9011bmwyvcb1a2lxjffai3vsjhrqvxj6aljj8";}; -currvita-15878={run="0xrcc3pash4g8mkmnzqi0llhix63hqk12vlwn98ipww68qnhfbky";doc="16v8r2vhvb9ssmnyj4zzgv2b2m10d3zg7wm2v6cn0p65hn5i76f1";source="0xrsqmaan5h60970d12bwm7k9nlf7h0flzmqhl0j3kbnclm0x8w0";}; -cursolatex-24139={doc="048s5fg8c19s3zbl2dkmh8ffkicb8fd9n46m0iqrc39i0wrh7p12";}; -curve-20745={run="1h1mfx67i3d2jr6l8qlfys9m6bqzn4x1wb74cjbrkdclyqn3lmd7";doc="1jv8f3izp9pvzh5qs3sh33c95v0z3wn88f278qxi0f1bc1k8990m";source="0l9cq8aji7z8qh0p45af8rnz0iw9m1hgc118482x699iqrvg96y2";}; -curve2e-67599={run="0cd0w4gkcaqswhwz8w011pn2g0yl96h8wm5m92jp646xsbq4a1r8";doc="18gcvpdckrsx42286xcdjlpmlq9s0541xkc8gx9f7s2gvjia8lr0";source="0wdqd75fsrihrdyg0h8hl99xlxgphwn723zx1rm73vzh4c5mhrqc";}; -curves-45255={run="150iv654y4x5lb3njd7dfjf8i0axlpf7zz6gx4wqgq06kddjr7w7";doc="1ddgy7gzw2871qsh99m0k90lgh8kf5883skcqxww0bl7b335qc8y";source="1r9c0rpi7q6ishzaaw7qnil0lzqgdvc0ybmr3j083af17snkq0v6";}; -custom-bib-24729={run="1m25bdq11g8jin9qfib12h77sg8lb87p5680d5dkqzsf5y3iq7vl";doc="1ydbi1r0jvl936ziypnjqw4fsr7gvc1gksaqr05wj1bchh28cyaj";source="0sjpwz9zhr0kd4qn454nm1s4rw4a6n4qnackkrq4qkriwzv9asha";}; -customdice-64089={run="11c6gzpmwh7q8dy334i2mz4g42ly0iqz6vh3zal4hi005js8n0i8";doc="1pq06p85kcki6rb5pvijly7h135mh0kwaxq8zz23l9c3lssjpj45";source="1ah7iacvkvf9hmkdysyfm83fzypi4j6myg2a215hajda1fxir3np";}; -customenvs-68637={run="0z3rgjsw4qdpr028yv4y0yscci9611c32rl3y7y6v0n0jvv43lvg";doc="1cg551725icls2x4in84g1zr8ydbyz2g5al4w17dk225k2f8vgfc";}; -cutwin-60901={run="0camjay52m2fbg4df7rrswfn30an4s40bvyvssdcmhmqlbvsh46f";doc="16wmnp2p3hnl8aanm29sxflqcz03qc5vlk9ziq38qxsksisxkl5d";source="0lqjiqlfndqmjmhj5p4flhly69cyg175s8wg2gah1fcfv0dayrn9";}; -cv-15878={run="1w9gx9mhg9wp47rhb6kf1w03mypydp01rxmypv6yvcrk551b5jm0";doc="1b16zaypfphbn9x2fwh2v0i212jx3pn84vj513lkxzzfh0if78iz";}; -cv4tw-34577={run="0nli9s73cns9x44vr2npb7zgfinnywgwajlr1k2hf9jldzm09dm0";doc="1b9zd0ky6h8mlcigfwj49c4chsznvbycsphs9lkpdhxv8mx9wgyq";}; -cvss-65169={run="1ja7j01vbzm16ms6hj0013q9f4wymzmn5fwdmly2mipgnfir79dg";doc="0a664wp1c11sdyhjgz5l561ngsnws5bgr78smswf2akj89637lnw";source="0ig8igf03vsi6mqb9a6cikqqipm7ja3ipm30c1gfinqvkmdsz0jh";}; -cweb-69586={run="1frjx2vsa7sdz6kvczkq6wkpvq8i59l66i3s8w2b3ikp76cmqnkx";doc="1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm";}; -cweb-latex-28878={run="0cd2rgn25s02p2ga3509pnbc70iad936qznr2yl5q6wnlvd78lbr";doc="0vc5f0h9mq7p9040ksql4clcb9y1dxq7s1a4gzgpsjyla05ps3qd";}; -cweb-old-49271={run="0vx235zpflqpnrfa9kqq7wmc1rylg5bw1r26knfzvh3w1swbp4ai";}; -cyber-46776={run="0vlx0r57ay6jpybs6wlc1w1qpbd62cjq3snaqplaj6dkah98kcbq";doc="007g12qa9v04z3b11cdrd9z7pc7iba0aa2g7z460i0hi2fg4gv3l";source="1kivc83wjpm2rf2myk4079f1l8pyw1pm9a2j0iqbwshic2qfm86q";}; -cybercic-37659={run="1g7iv7xyl0a30kjmrwvcz2kg6y7q3r51344nf53r6ln1asagm68r";doc="1nman70rpgd0wqhgw84qg8acm243y45nhxd32dmh9y8ywabynvc1";source="12pbrk2bmgv25fa0llpk6pfgmz5jljmy1w5b6j0md0ni46ldjxpb";}; -cyklop-18651={run="1krjgk4a920bpgb7c6qw6jx5b7gv97raxpaby1vx1lh5zvbybfn0";doc="1fnsd0p8wp58imrn22zbswk8bdjgp0w9v4hcv8f7x5ks1czcas8x";}; -cyrillic-63613={run="1bbmw2lcr5ndbpkdy78y6fd30c52g4md6j5n6kq23fxxxisgyw3f";doc="1822d2kbik1h0ma6vignick4b4vwihbk153rwwgik82h57nhbr74";source="0h65281fcjzx3avppwxhr2y8w5kbnrqp9mmyijq1jdlbmnn7jwzp";}; -cyrillic-bin-62517={run="1m8ci739229igk1mgx2n5dqywijfs2dxafjxsmlpdyafj2vbryaw";doc="1nz4mvic87h8iarm83lckj7hx44ywq556y01apx9biq7632mfpjh";}; -cyrplain-45692={run="1wdcibxs0g53warxs6vz39s3chldzh05p7v1ksskppghg5qzgh8z";}; -dad-54191={run="1sj53bp0fp8d2d3qnwvl0lm7c6pzbvv8ds9ww3x6qhrna630iwaw";doc="1yykrywq662s311l9daq9wpxdcr8l6qifi5bzbnv0vx2372hhhw9";}; -dancers-13293={run="0nni21f6y9gynx1lsymb3pmh6w761q21idq60fib90hvv9jjd85q";}; -dantelogo-38599={run="03a5l0hdlr69knnp6q464x9610mwjkcl3cw3i2q10nfm5ywr7nsx";doc="19y2vbi5wwia1lg16rbwzkfd2chi9vw3m3xig48h0bsyy5y9pgbh";}; -darkmode-64271={run="0pdfdc1mf1mircrydvjlanb61mlwpv8l256g4yr4jix83373hzzn";doc="0as8lm21znzpfdhf7880fsvna1ivprd5q7jc5mlyva6gny6zf3vq";source="0yy8i2qxk7ms53mw05lk8lq1wal1rx3431wqfw4w2v74xy3jpmcx";}; -dashbox-23425={run="034nwqqbd4q99mzdd6958w6a3jcvvpvamdycda5blh7in1gwm1b5";doc="01zb6bc407282xhfc6ccrm38jjz2vyl96h552435b6cap68jv48m";source="1lgpiyfizg0vgfgz51wk3mhhc344gwra79k1xp95c2p6w32bgf5y";}; -dashrule-29579={run="050scy57rjz5pvwd8bbl4h32w1paigyyy7dazr33v28061yap9b2";doc="1ryclmf2l90n20qf516p4qz02znnp5rgjx6pfw4p3wrkamnh6xwr";source="1f05m420qbbk25pc5snh3nb4dx7bd38nwfix1p8ndngn7l9dfkcs";}; -dashundergaps-58150={run="000fzv5a00nap8ybzyijz7kx1ky4qx418jmkmyz5nm2rpnz8ckg9";doc="0zj18ikjshyd9jdrn4a8h1l8d9kypr38kx2cfsd9gllppp27m4c4";source="0n43mz7bnf05j31p99dmxr26rl6xzkc4maxra1aavg8s19x9pmd8";}; -dataref-62942={run="1jcbplf8f5952gzd0p1nq9bsi9iw5ix2mzrn4z3xjaazggm9im0g";doc="1pczh1h8k8apmi1kfdj03i5yhhpncg1v9w0wb3dhzfx81fi29xc7";}; -datatool-52663={run="0c4f0byqwfkldxc1430qixy52xsidzw8s78igrxxrqhvvls4ywh1";doc="07gg85s1sv5zq1n766av958fc1qqlc9ifmyz8kd99b27yf9im4l1";source="1w5rdaqnx1mrf0vagxq5gvpxskwm5m4mbj2h4xhz78p3varn2i6i";}; -datax-61772={run="0sqyx1waaw57v6qfh9q5mcf5bwz3j4v4c52x7dcnh7zh37cq6dmj";doc="1kd6qjkvdi3bnkibihzfhcabs3f6ik2bsqhg609qnk6c5cyz08i4";source="19va3a8b7f1l93b6ky1b3li4y6fhxiycg6gjpv9i3vyjhc0cr0sg";}; -dateiliste-27974={run="0vzq9y9ilc6pnhg60psvwsand6sd4w5238rq3xhwnj2nq80yi38s";doc="1gxjc45zim6vykmskmhrhnkviw9i7la56d2zfyi89c5nyjbry5a2";source="0ks8aka4km6z6xcn6sihsff935z8kg74cyf3czk31wmr9qay4yq0";}; -datenumber-61761={run="0jcpzz01g8n8gxl12pahhbl0wi91in08vmpwf3lnwz9cdsm2n53s";doc="1h7nm009as764cwkdxy64zh27qwwsqlchzfd2qd4wx9gpvg3dg20";source="0qsbqqh4lm075gfv9bjmb795z2awf78nr66lrsj72p6z8wa01scv";}; -datestamp-61719={run="0gwmg94562bfc3apjqkf4bb2g0diczdc9ik0dp2i7ha5kqxvczpr";doc="03a24ssl9x33jw5vqg2as0cvrjq9llpdr0qncyxl7i03mfpiwyy4";source="1byhi7ka2qkzcph85ba5kzqfqakqpw8abxzvf50cddppfcr2gc52";}; -datetime-36650={run="0xwh0sl6x8fqvaxahh8356dfwqkzk8g9dkxyaax5gz8ar9p3xb6b";doc="1j8zlxbyqpdrwm3z4pgdv3gz2firffk8wwr3ih1vcgn7nqxkcd78";source="0f644wc3c6zx6dgdam4wh6ap4gzzf5qn02krp90hkqmbrg080zxz";}; -datetime2-63102={run="12854by3m3pr6j7s6zm8inj2panr7c9h3ngm19gzybwy7cdb34nq";doc="1pk1k3rsd9h5csnmnhlwi73i6dbwhlpqmf5z7kxgy9czmarbfg56";source="1n60n0i9iwh8qyhv78z4d2afsfk04k912ixjciblgnik1gnd4xjh";}; -datetime2-bahasai-46287={run="13xslpv73cvxfs9m010qnnqsrz9ncgci65ha89y1zsi87fld4xfw";doc="080zpliqc8wb85gqx86klrq9rj7p73m5vnka5qmxzj60kvicwlk3";source="1jhxyrxl2f7qnld898b1hhga80wl6b6xfhi9vd9ka3w373qgqfjg";}; -datetime2-basque-47064={run="0m9sf0ghni3c2qmr6byjjy88f6bjj4hhpiy9c5bgisc0ccb11jn2";doc="0krgk4krb8yglk1a0fvzhgrj6b2n38gn8kxin23p98b9928wmcl3";source="1q9h4jli6fcsd0vqlh88khv10gd6gz0vxd4gx9ikbrvgsx9wx25y";}; -datetime2-breton-52647={run="11hd7fq61g7j7nxsgrw94hdrrn54dnjvh10rfwcn0x6ck1vxawfg";doc="1h50bi7q6gvv3c2qchrx81ybly1svzyirhdcyy2swzqda2w1x7xs";source="03ppqjw69xbkvqnjfkqj0zlxsg4m5q0cx2magq88f3wmjp7kw2l4";}; -datetime2-bulgarian-47031={run="1vx3n6n46kzcspc10fwysq7xij5dnlrv2wn6b7pkfbl4yh1001yz";doc="1yfgdcr1l6qji2x0i9gs17zb5scc9p91cgyk1w6brhy5sk4syns4";source="00za8skfwr1mhjpizgslppnlg05rwab3nbak4kbsqglcv0nivm93";}; -datetime2-catalan-47032={run="1lj6407mzspkhh18yxxmvk3srgdpf8c5r06sycy128dqjkix4ma8";doc="103nx5macgfrj8hkvyyra24378g5n1x4vnxi30pjkawapwjwk982";source="0pc165ql0aa2wdwkz8wyk4yafxr0j3vnp98vxybq1x3fwfqvipv5";}; -datetime2-croatian-36682={run="1h8nxr5n9k278pngb36sswi6655p0vq442x6ixlw8h4mirlrq9jk";doc="1lma00vhrjkvldgc6iq5p9k2ky4cfjywxdzy897308yxrbahm0rv";source="1xcdaz38mm09i8zc8jpfxpbs3l2n5hhv8nk5xxw108x5k8vb8fnw";}; -datetime2-czech-47033={run="0q8f1ksl8lhkfxb2si8l84l94w4nfgav1ybfryd596kmcbpf6iga";doc="1wz7sznkpk9rik6612vibk2zc832qxrq4yq09rqwp6y2nar0p3vj";source="1bism4aqd05cjjrxmsqxxpq10sw72855fk5v2wjkij62yawklp15";}; -datetime2-danish-47034={run="18shs9bi583590a50jszym2pwcwgbz39p75j4nj5g32bwap262hd";doc="0dr9jv99c51na0b4ds6ac4rc26na0v0rbjybna25fiy4b0k7dgli";source="1h71ibvmhsxi1j5h2sq1zs29d466hylm7w9pl5xb491d091nxfl9";}; -datetime2-dutch-47355={run="1s5ff3wc9lgvz8md4kwwlqc792s4dqr2mcf0sif0dv0z8ssi079p";doc="1562fdf0c1w556mwr5gfbc5qqnrbw0f8i7dc4lwh8gfnp7skirc8";source="0i1kv624yr4zc184vy2y42qnycsqq57349d49glxc9lh0bpc9fgd";}; -datetime2-en-fulltext-36705={run="1bnmzpll7s2pv62hafbwxcj9i0c4s7vk1090xg2zvf80d0k0biyi";doc="1szzn4jcgchf1h8bg507lmb4mzdqx60k94v84z2g8h2pv7d5ip9z";source="1vrhcgsjhb6vfh44lqh2hx22zaw5qiwiwms7lnzwism5zghdkaxs";}; -datetime2-english-52479={run="1xjjv46vk4s3drlzvs7iprw3zhn1zk30bwi2dgczjqzk0fxyiql9";doc="0iyq0385pj2lqmd5rwyanry6brbwrii4zg2jjnhp2ib404jwjqf7";source="00sjzcpsp9jjfn9fnc1fmq19448qm0p0ggi2yy7qmz426mqb3g7x";}; -datetime2-esperanto-47356={run="05691xa25qp015w0cm5mzi3qrb88hlaq5jxjrxqgid1ni9rpgwh8";doc="1c0dhq8ll04pl3ics7d3p8r73mdawnyridapfr9540cs2a1xjjbb";source="11xg3v8dk7aiv9ms4nggsm1xs898m0zzi7lszi7jx8pcmxqnz851";}; -datetime2-estonian-47565={run="0vdnvfswgm92ncrkh11p523s6vczz1vdxyjqjl9cpm1nfj7wp14j";doc="010i5rcy8pc5y16rwhpzzywlyna031g6s9xsdpgg0avci1yvw20h";source="0xsgj8l6hipdb0f75ckqw1h2lmdkjxxgz0mw38pc1kg6sr4r3sdf";}; -datetime2-finnish-47047={run="01hjh5lmd2461n0g2a67z31h80wcfj14b9y9amxkx4k01b1268li";doc="1cihjhhm37f38rknm45ndli3kmgrb1waxfncl1fg9l95hn929cnh";source="0zi9ydsj0zjrg3c7618fxxabas6zhvdimbsd42n8fc5acvddhi36";}; -datetime2-french-56393={run="0iznh6qv41xcaryyh70lk26rmrk2j0j3239hib8g924zqgyi83p7";doc="0f1j72g2xqaq64wi1jkllhkpxbjm1j3d7wraq42x13giv72g95w8";source="018a641mqcpj1maqhpcrp09msf9rbr8a5nd16hk8c375sh2lqpap";}; -datetime2-galician-47631={run="1g5qmiy094yrid6jh3xvy783kq331bzk0lqzci7jsb2izymz0lqm";doc="0im51qyxg5dbc6p1w3k4vs63d7nyyipd2ad7z9czlfid0n4ywksf";source="0j4i3b3mp1bpqir7imsfw2y1098ak0j8zs7gjhm16xdrb4n1xhcl";}; -datetime2-german-67201={run="1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr";doc="057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd";source="07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1";}; -datetime2-greek-47533={run="13a1lpvg680881xpgphzni3hcdymvph56mhgy0jbsri14fw0mdyi";doc="1kkl386rd0h5psr1z4aw32r7m55in62hql8x9c8njzajm5frhf44";source="0kmwn8mawmxvrgx5d39j92p3r1nlk1z378z1h2lx129yz4qbsv56";}; -datetime2-hebrew-47534={run="1b04g9lm0g5128phix3mnx9yphg07ig7p9d149rw0b1imly7f6mv";doc="1lslls4q5j1l9a5m0gzv351jfc93ii0zzcb62p3icq2qjig3rz37";source="11q13hms2mnqyxg6hc3279a8hs88j2d7v7wl90v5avwgh8923q55";}; -datetime2-icelandic-65213={run="1ws2mn3gf57b8gc1q7fp32li36mvmcxf5i8p3ikap2swvd9y3a39";doc="1dm4vg1jvsq94sn9nxxcasxmrs5i878z9bbrcf88yzfx5bm6wbfs";source="0vss8vq4kzzj243ha6gdvd9g5r85ar09v7y2yff2vj41gwp5zmjb";}; -datetime2-irish-47632={run="0k40sibvdqhg333l0iyhg3zs0fkhfbkqhs64ch9hs0kpw1mah48g";doc="18yd4icn0vmmizims17lsailn0gjqnhx4c7yy5jgrycammbjns03";source="1hs18kcmzgif8jcfp3v87h6rvrhskcvi5jzzspp7zgpq73izb1nj";}; -datetime2-it-fulltext-54779={run="03nr1l5gzwzdg4simif6wrwzg9716vfy1nbp8xfl98hs3sznhdhi";doc="1rqkdp81zg5sq5klz10v00c9xzb162dsmqgic2y3v4mxi482iy89";source="0y50s2mnyyx5kxb0bjbbr4pr7ywnfq3aqhqybqhd5x6rqpwagnd9";}; -datetime2-italian-37146={run="1if93khnpiwn2qpk66i431aw55y43qr603kdfdfq76v4sq4zrcys";doc="1r7gbm3ik84ny6nk3fb36g337imfq7w53cmk47qg1cpmff6c800c";source="1ckrmbv22dm7998r9p3b730zyk7ldzzbf1ds8ac5syqibh8wh0dl";}; -datetime2-latin-47748={run="1xgjcby4kyr6pb7zmwvwyhcq5y468vvja64l8bfivhv0n1s6q2cs";doc="07lvgcnpi7z36l21dwbs1s19f3afg55i18wdjcc9d02566g2fjv3";source="1gi5n1sf6v965hd4p0c6d8v92myhh218ql6bgaarsba1axp2c1as";}; -datetime2-lsorbian-47749={run="0vpqvd3fcmd8kqs2cj6ix5g3ci9zjr7i9ym31whryras2cm6r24m";doc="1ysrjnw655p1jplcxajrjgd48sndqssm8j7gv869nf0ngx4mx1rc";source="0875nzp676qv8vi3f37k2cbf7vszsrws6clyldqqayxkr7gnin63";}; -datetime2-magyar-48266={run="06y57br6g9clfscqma0lqp38fzp6rrxja3sz5x6jgi0acyljxzxx";doc="1mcw5rzb573qav00jz611576lvy8nkfl3g92wj02szb6fxq66g60";source="1697h8jh2gx1ybcfhz8cqzvk70h83qa3028hqi3c1rhkcbxbrabb";}; -datetime2-norsk-48267={run="1kcdkppmc5h3w09bwcrvlsxcbcawksmdam0x5w6zbqibvhlhvh78";doc="1vrip0mq47w2qn8i14ckazpzhzrl79dpyj7zv01b43xw5zkyqg4q";source="0rkjhbqppncaw67pfiihy2grzlcsaszi8jnxhhvb2sf4i3dpqlr9";}; -datetime2-polish-48456={run="1mndpf6vnb7lbziaj64aa3q796bv17mh4r9s3p0y2k8yjrllql3m";doc="1cn5qrcl4jxcnn90llhn6x7rd5zdnzz9h5szv4hhzbn9i4k1ci0f";source="1c42vallyqmpjzivcfvaxidhi2rs05sw6xbkb319dznl1jmdby6c";}; -datetime2-portuges-48457={run="0ikj36y2n7zlxgvwxd8z8vmkm4gwdan3si8bz98ajc1z5yncb7ha";doc="1m4ij8xjshi23hrm723m6vsbijd9cbd49b29fr2466sbxmnkyv22";source="1r0nw953bwgdz3w150s78s0rpd9c88djygwc68sr3dkfd6iih05k";}; -datetime2-romanian-56394={run="04jypimj3pcvnalkgzwzxvgav8s0g6c7br1w5hk769k7aqjf7qx7";doc="0nv47vpf5gcnj86f1m24xbmlvhf7iciyjaz2kxbbsn4yz55zmbmv";source="14324lrmh75g4jigcbcgx9zyxn0318k6my6ndvymamldwln7gmmv";}; -datetime2-russian-49345={run="0m3cmm2ikili85z44mmsnaxhv3x2s6xyk6kkfr3kaczn3w8srqim";doc="01rfdj3wf69j976mkv2yxw0ns4pzf852miykknni4zw7lbcki00g";source="1x931h6rnzm11ipfa747x306iwn3381ahcf7bfzhg75p8707glgs";}; -datetime2-samin-49346={run="0wqnsvx33d68j18lm0fmvjrdg8g5hv0xwzv6wqnb8wwz1l5zmqvj";doc="1wfij9j00pqs8bapbjpmg8xzah9509vrsb9h8sqc2abdjnqgkmdc";source="037gm3s8rxk4chj2q9yilbkvg46dxnd2jpr886ibydfp1ndnqcp1";}; -datetime2-scottish-52101={run="18c3y6968css1zm1pryn3cfbdqfn9px0n62bq6mapmgbd7fi2plh";doc="04dy9syy4qmn36mfy1agxjzd41prwqzlx5f8vpyq3148w51kpp1j";source="0nhfk8b19dqa08lb10sbfwp3c2f4rn493dgp4sm254bk00nil1gh";}; -datetime2-serbian-67201={run="1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7";doc="1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95";source="0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v";}; -datetime2-slovak-52281={run="004s60h3zi0a947ayc7kk2slxwl6bmpba8lxm8000f6yaf00wyk8";doc="1wblf0fd2lb6b05vvb31a33lz7dxakd5k6y5pcvs6iwjjb755n52";source="17hwr9yzpdkcvqvm1fa4qvacgica9mm29npmcl7xc3c503h4z6wi";}; -datetime2-slovene-52282={run="1lcpx7nz5lqb6pdw2j0dybkilavp535pxijs13nfl043xizh4brq";doc="0i6p83lixs6maiww4fdsm09nql3xx8xvs2qz38r5md4r5zzikyb0";source="0grv3gcm8wjdcx9smsq3dzd916pg8kcvgmh6s47xh83wz00qqi36";}; -datetime2-spanish-45785={run="0ggb24w3sljmmydnjdkbg34n9mszjwrqny8vl70fcin1dj69njcj";doc="1iglnacrcwwmc43shhsaamwajlb3mzj9dgqnd5qg3v7ynlp5zblq";source="0fjkhxqgw1yb1nzfiymwv8bsv6zlnwvdjl7crd78n3yx1fgv9wd8";}; -datetime2-swedish-36700={run="1srl9lm3hbsg3bwdkdw4bz7rhhnkkl6pihjky5p2h0jr9mribczm";doc="15ya3082by696ysi8gj7d0x5n5g93przna74r0g8yv3qpqkv52j6";source="0yswvrgh6xg34iryy0anhb4jac8q0iyvdfw9bsbhaz1xbldn7xw9";}; -datetime2-turkish-52331={run="158prpx4ma56qvq6ivq7ffwp0llll5x34af194qygxs0ldsgjlwy";doc="0n47wgnw5kvcn85s1983dg3fbixh7i4p3lxrfnd7qvaxyrph6lw5";source="1hnwws0y43d9hpdgb63y5pxr6d0ahis2q40z705b199051lg2qfw";}; -datetime2-ukrainian-47552={run="08ba6xbivl8gv2a3g0p4ch969zq1lid4zq3vqqvgzkhkdsvc2zkg";doc="0biih09p6a90qbjck5w0qs4k8lnqdha0xd3f6kdjmlljqxk24g5j";source="0mrysl74pfbs533h08jv5wld57s30nsq6mar2n07668nmplqj0ss";}; -datetime2-usorbian-52375={run="1dynq4qqi7mpckzcmwvfc17hvnfjlv3n93dwypp2sxl1596vili4";doc="0pvf7lx3g09jy5nxlzvgsixmaz9bkcq0zlhq8r3ijd743sq4y048";source="0888x4b0wjqwfrg96rcpxfj6mycdpwwyk9fjavj3j535nxb5hjxr";}; -datetime2-welsh-52553={run="01p4mxn78ynyan6pb9598qmi000alyaiw3bh83w0l5682v2fi7ip";doc="0rkibaqirq4xgy6r7a1aws6awyamllg5z5zixb3imapj3x6c8p1h";source="0d21jimjq8sipg1qh4fxwb9cmq3sga0wjlrcqapjpy559bnfgmrx";}; -dblfloatfix-28983={run="1r8s36il4bmqvvvlrsdbhdp4nanbyd1lh71dac4f774bf5pkhzi3";doc="0znp5j2v20q7bsic5j7cjqxmbi1dannffl0b14g2w0jp3p6hpfxn";}; -dbshow-61634={run="0cfp89n7r5jn6rsg8qrjmwfzi1i9qrvxh4aiz4r33sgi8qy5iljx";doc="00nksa78l2hi8dwp72wcz7b4sx1z5p88c9pyha975xr4l5lbli4q";source="0pgyjb07flhfr0dy1rqk4j237wjskxfsldrl58hzdanipqn0jyyi";}; -dccpaper-67890={run="0pihvkqcb9qpkq5c8n1n1wlfip87zql1dzxrai1dlln0rrrxhycp";doc="1762lsfk6jg13rkkiwr1y8kc6xlf5y714jjfiz74zlv9w8ixgxln";source="1pjjhcbbx609rgrbaqdp1xkn7cafwax93jpn8m7wlzy3acl31lng";}; -dcpic-30206={run="0yfjhpn8hr3yk4dyjfzbc8g7cki64039lb96naacyv8mjhqdpgyd";doc="0vxqvnkxm00k0xqpllcnq01si33wyg2mkhpb7l8jxxxizn3wf5vi";}; -ddphonism-52009={run="09s324nj6g8nlib9wilpy01prixrw1ilwlvl638hgv5rxsspza5y";doc="0iirifr55s86nm5512ii0qm8lm4zy3jbrbk333hw27y8m4v9qd4i";}; -de-macro-66746={run="0pw8b3v4yy4frxa8q3xbljx7m1vd3952w01ra77g2x8b02msd9xl";doc="02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4";}; -debate-64846={run="1v3wapccyxk2fnhm93padrmrarzdxljlqznw96h735086pgsni94";doc="1kivk2f6k1ifmh9w8qg698wvsbb21rfwwmr10bbvlsbl8xw22p7f";source="1yia0rhkwq65a9ggn6pkmr20vrvlcjkai30j1hm0jav7rdq9pqbi";}; -decimal-23374={run="00byxbhi2pqccd1vd6hsh4ri0vzvq1mwjnvqmqqlrbr3qfv05zla";doc="15v078s3d3aawihdmd0l1ndqinlsqz11xxbvbw0dyh0arw6d1rc3";source="1k88s0r82livblqfb140npf2p7lvmsqkpasbr93ihwjj9vp54xb5";}; -decimalcomma-69251={run="1gsmjqw7sws2r5vzm1vdp3mbwvxpally5vb7pn64d28bcmkvs28m";doc="197pqxv9sny07vfznzx55skwl3gj36wsqi89j24jvj7gfrm2a0kf";source="0bgiq61d31rzzkcib6z1lszydzcjwh3waxwhhfxf5mbwinlmwwga";}; -decision-table-60673={run="0v1654g69lsvcvky0yh977kz7s1b5bjihh6bfc4lqrzbpg92qijn";doc="1gpz0g8s61aryz5y8f2v35v0p8cbwpvsq1x4f45hrhd3hpk96hbj";source="1d40h7vcyaxdf8yrvbx2lns0hg3d0xy9mv9rmqpy8hkqxavzd389";}; -decorule-55230={run="0r5pxcpx29l8x1bw4hj4xp66zgkjgm0qn2ryvxy1d30dyjgp34zb";doc="0a3qvnknhcx0jx8x9gk7bh4sbnzv1mnqvdr8l03nzjcbmysvc3hy";source="1lj47s4k44pjnr0n06xdcb37625hkjclrsj4ccmkgcr61d85vkwk";}; -defoldfonts-68234={run="00h2hk4vhqn54sczns7nlgsiymccwikdpl702y9m9hvhdw2misak";doc="1xl8nw3p9jhb530m7sxkrsg3qpd497q4678al524b3gz85ps1m0w";source="0ssc58p013kjdh0p56jhw7cx734ngnkm9mvf1cslcar5pyh6s88r";}; -dehyph-48599={run="0fkqlsknrlxk8zazcqy4q3nisxr3a4x21aiwqhz8s237rdf3w39g";}; -dehyph-exptl-70496={run="1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig";doc="160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz";}; -dejavu-31771={run="1pxcrv98xgy9hkqhclyp0q5dgpgc80bvjzs378f0dqzc1037lghn";doc="1f42z94n6dpdq481n5wmsx5hx000klmbklghz77x8pc9shgvlka8";}; -dejavu-otf-45991={run="06cdqjqj0vcxrr2nlqs2qszssiibzr0pbimhvqjpqfdv2hhdxd0d";doc="0x9j42zm6dagn4wv8hz34x7cgybi6bb86whxvmmwx5slsbb6yqfy";}; -delim-23974={run="0k5h5wk4fn4qzhjcgraqjzf6ggq7rvr8d4c1j2vwxi37fa83642b";doc="167hklrsm9dh68nvl6inqck07zfg8w4gr9p5c2n8i6y6v9xlj3q5";source="1xh63b78kxngcc3qgzmcfrf4pw2saipw054pzq47vp2ajppp1sq3";}; -delimseasy-39589={run="013r0cgz7ivrjfhmpcf5rdfl2573q35qmw0bhprnamij2jpvggzr";doc="02s406bh59qy6g8ckpxhgl0b4xxyr4zf91a6prhzlmbbhf96xbp1";}; -delimset-49544={run="126ax3z4c36z83479zk56jcvdj5r95y182rv42wkm4lm6sy8v24j";doc="1mb85h29fp7nxrkfylfg59jbvjva7lmr7vvgd8nz7k09w1gf4x0b";source="00hp5f5pfad36n4lkmra8mc2n0ynnq9ynnspqfb9378cx3m81cxq";}; -delimtxt-16549={run="0s2bbxhbfvq0jm4i90sh6krcik8yk2nl0c39lzr1nrakal0k5lkh";doc="1wswrw94n5l1azs2aczv6vf56ksbagniry4rwq9b16bmvdy7slyz";source="0sfwmd0mj359qkchqgm8zc80ayqp0p8ppdgfn3cmayhf2pml6gyj";}; -democodetools-64314={run="0ih11kxlvnskrdbvxrakbljh1n08n1mb6hbmf08475557bp0nchg";doc="0kcn368yzx0jf04srh2lzbxj9n76ph0idfjcqs2am3cjp2mjis17";}; -denisbdoc-70611={run="04y9dwkap94nyfn4cfcpm9jk2y0891dg7jg21c0ca9b3kckrcgjg";doc="11m50x8lc0694wjx06p9raj871gr9hmssblm3gnx3phl0vfrmyd7";source="0gipwjskg2p78r2z4j839yxfar227mvv294bjnl0j16w33d8k4cy";}; -derivative-69746={run="0n29fjh59wkpigk1759b0m231zcmli6rcsplj0zhhaf4jwxk2apj";doc="09mv84hz56l3ihccl5cln8avw4137c8kwykh9s0j3y1r19iw7x1v";}; -detex-66186={doc="08d017wn7a67pmp9b5yhnfg1x2q6f48qaa5ma4bplz9a782icwjy";}; -dhua-24035={run="16gq48zlsfk9llafs8379797v908khv954q8lw2dvzk0v69d0qki";doc="16l76rvba4fz3vfw8mzkmks7b7206h2dva5dgw3m0j30ds8d6vm2";source="06vws91qfar1h87d57c9f9cw04isjk0szhg2aiw7sc8ligs0v907";}; -diabetes-logbook-54810={run="0rmahxnjnjd677z42ra1mcp86na41sz9ir4chkpmaikhdvnbi4qa";doc="0qb2nyjc7fpc7yc632bblbjryxdx39xr64c4kxncdisi34am82z9";}; -diadia-37656={run="0gygfg9vs4gbp3r0h9v6dqc18np331c0hjfmc5rbh29i74jcm8jh";doc="0bm0sb3fjj73mcdmrsvan9pdla2ki7j1wwpjpc4kpfc116a9lzy2";}; -diagbox-54080={run="1p7wfkhdcgdc1gifr4im390w039609j6mg99sixgpq8f0mqqnlsf";doc="04i03qdy9gfzf14w1vz8nqqgw4hn191w423jf2ck5ibljwlwa214";source="1x1ixmmixi2sal1iajwnf0wvg97kj08hi5vv4swdiwqpd14g1i53";}; -diagmac2-15878={run="00jzm6pdzxbg33fbj19ih813j9wvb1g9hr01g9xjc0d6nprq9mcs";doc="0vpm9lc33x5xyip25kay38fhld0a0z4l6g3nvhbdh65apb4j4wfs";}; -diagnose-19387={run="16pikxgaf40vm6l5r0wk5jxbfyzy1jgpq2qhpl859srxrygdar4q";doc="0k6vxzd3biyrfwnfr3p2zvj5j10r4xsda65qf6ppdrjr8cvmjx6l";}; -dialogl-28946={run="0vdx7qnpp5s6j5c96207px2fdhylj2kv3ph9mr3jcb6jyrsiyi0q";doc="15082p9pi47vdwrdqz4kdcl59ymsgnanrrnil9p97c1wbmc9saqb";source="1g9c68a7pqpk5vfcnr95zi11km3bhjll06zminw2knk2naxlykhh";}; -dice-28501={run="12j86mgn8zph5w1gd1lmmz0dcka36b187vld6r2srnj9f398h7ac";doc="068pzhi6a4mnq8bj5xvg4pdgqb4kvdggybs16hpk8jla03ny18zp";}; -dichokey-17192={run="0bvv3893jxpblddqi75hppb9s0rxaiqbq70jns2x7d79afl7xkwj";doc="0m5zc521shp00wld4kyhp9xipsqfq00q1dqd3qp9ki1b2kmr5w7j";}; -dickimaw-32925={doc="1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k";}; -dictsym-69720={run="1n55cpkm687y6p6fs98d81ivvryr06fahh9nf5bvg3vvmd3rq0v7";doc="00l1ivnslfhlvyyd070d4vk2s7h9qn3vp6z49rm6g05zrx52954q";}; -didec-70237={run="1fqcc7jb45w4x13689llhm2rcqfjclrw5inp770q4sj2xsdgfsnb";doc="1vldv0j555zyk27n37y8p8n9l4xzp0fv060xbnq1hjsy8sjjwm57";}; -diffcoeff-68838={run="19rrh9zzjxyd7hxfawi65y0cnr1ps5vzypk60jfki8s1bbk8l2jv";doc="1ximrhl7m5in95mxlmk7dpvja39sjvxz4awzr3vwn9w11qkhw0p9";}; -digestif-65223={run="01hym4d6vqja4hwnjyvs0zs0l2fzhdap0pir7cz7wxqnlcip6hl2";doc="0220wkv0w6zp4ggnqkcfcq388f42scywzn2ah0h9yhccgdikd52h";}; -digiconfigs-15878={run="1irv3jc87bpnc289r5zh7pgfdgk4bvfwbyv6666kyq8f8yl7m1kh";doc="0fnibq45xgwrha5vfav8lylnb6p2i0brd2k1yp8jm8id6xdsxmq8";}; -dijkstra-64580={run="134qfpb0sqyazfjyc7mid1rydyszc6gpqms787vq2fd2157zksz9";doc="0qmzrdzh0704s97wqwxj3wyg33rbbpq0mmq7hdqf8fy0vq2v8hh4";}; -dimnum-58774={run="0mrcnz3s214a4yxljlbrzpqyrsjlh8gd0llj96wsirlc1kpsb3jq";doc="13j2pbbpsnd70gmn3ap4sad4bvbwg3r00ix9s1m2kvx4k7j3zwii";source="0sx3y3g7jn0dbbfw3a8sga2fs9pz9710jlckmc464a5zlxmcyldh";}; -din1505-19441={run="1ki5xzdxgvy34pg345f1577cj93ps4mgcakjgqra8jshnnfrfqs6";doc="0wh1zkzzm3d9s5gvff6j847jsqpr436sw7ysvrlv0r5s3fb10xl9";}; -dinat-15878={run="0m040ib86lk9ccd4m2r33k8rgdi7dgga80skv2qif43ssws330r2";doc="1hvc4f56mi0drmdqr7qlab68b9dqkmczhj28d3lpyn2l2hx4dncx";}; -dinbrief-15878={run="1msbw91lljb18c10bia4zclgb1klhmnck6kf23dgpv5ihpdmzla0";doc="1m3dvm2d0s7xbnvywwwcnjcl3hr8sczp1lmpcdx8m6gyjspllbfn";source="13dcia7rzw0djajb71b9gq2isgys63zs6g89rnwxfvn41a0nkgh3";}; -dingbat-27918={run="18yzigyd9s0c7qs34x1km0am9ii7xywvyd9miicbdr6s4bjrjdz2";doc="0fxbmx6nz2ib6qfka1qsb9ky9r3xw5hvss532hn89yx40gb6qx5r";source="130qj3fs12j3sj93xlnqxch9lgywgwk3qchlil72dgmh24kg6ij8";}; -directory-15878={run="0z2kczyvd4h3751ndfywzfvxl16xrjl3alvqxpscjsplrrrq53l4";doc="0w5rhczldn9p28dys7pjn3lgs0a6dq4yr59n1969qbffbcyv2m5q";}; -dirtree-42428={run="1j91nhdnf4zvqpn6a3jqrcvfpfb0ml18n2g474n5d2k1017mdz4n";doc="05yd1fkkgyspqxi2ddmq3s0nwnyh1xk55lbzzk6pwxjx1s1cd5k5";source="1pl4s67bwf5vbf0ccfhd05yrmfss59kng0ys871yq74rxm4abing";}; -dirtytalk-20520={run="10msaqhpb66l95vk8l172mpglilhdrqc4qcvmq3v58ssj19kksjp";doc="13yv6x3v4is4l0z5b7a83r173jq7mkyqc8nn52sfdkr168saxylz";source="1jw485pgqr0l60rnd39jfn4gmac5n9k67q8ykn2fk3s38nklyzib";}; -disser-43417={run="0kksdx0m0lgb7f45g21yzfh90id3pzq17bhff8x7az0djb6n7zk1";doc="1pb4gzw1yx3kx6yxabm4wj99gmnwmx9vw30m3l21304axdxgk7w4";source="02awlfmhyi2cahd0dkhxkfiqqg6jwmkksv6134lyms798j0akv0z";}; -ditaa-48932={run="00ym9qcrzq9g72r5dkvqwsxig9gryizzznjfzarq9x9dvd7x1r48";doc="13cw5a4wvv5fyknckvm6qzhl2lvaqvqvlwi711ix6zq6db3ghfsw";}; -dithesis-34295={run="0spbmfqf2i12sp0qvh6875vp2zrgpkrhvbmjzwyxj6mjn1yr7r9b";doc="0w9xgl8y2w1f7ns2nn9j5rs7hd39w6as2drcjmw4dc0vdbklkayd";}; -dk-bib-15878={run="0b0ypkq5c3bvbz6633csljj2zqibcm0nqj4dkskikzv0dzqkilh7";doc="034zpjn14wia2zl5flgndr1p89b8jg0w91wzqhw5zfzmdh4k3pn5";source="1aj8d2r3myp74x71jkgi8ckzcr6ngsqfqqpv5id43awrffxicsjw";}; -dlfltxb-17337={run="0yql8krlb6cbi5vhds9s8qwy4010vlsi3szbiqlzrby82bnfpxnz";doc="0c4nvwlf5k1q34gsn3z0pb00b0yhprhp3a1mcrg9i53yw7chwsy3";}; -dnaseq-17194={run="0vsifiirz1mwmjnav8k6m27mm5qsn3iw01a9c056p4g4ji8w2v2y";doc="1n05sb0yvq1hm2wa5vdnkhr54fgdkxv2s4kd8dhzk2zqx6sdv4jb";source="07vdyylb7j94sphfz6c2szxhx7l5swvyzly3afky69lm356988zd";}; -dnp-54074={run="0jlvb0nps1ij4sgbg3clgbk34p80la1fhh9zihn9fhl9nrqk637r";}; -doc-pictex-24927={doc="0fdvqhkgi5j33rx0r4fifj69f4smn5w0n99vx90a3fw15qzxsg5y";}; -docbytex-34294={run="19f8kxa8pb7ai7npxxavcw8hbsskmnchi7vynzkbd0imcjvay476";doc="0q3by29jmymrf4pirwmfqxr6bdglh936yb1phficxlpm07ibp8mz";}; -doclicense-68441={run="1qb8r4lwjqzwv46fsqjff8l5zb1scjkq34pwnsxbymz1sl3iw1ls";doc="0isk98wcs93labxiygbf6hg2794l7m2wr8ck71jafd6by8x7l1mb";source="04sq9wrsfgg3s51k853yy7vn5yp292d2ii0ww3msrqnlpknvim7j";}; -docmfp-15878={run="13cxjhbafm0xvnng6gc9g03p4j79sia7jvygxmphgnf7wfndv4sz";doc="1j2b530wcpr8252lcpmy0c5w83kqbi9xzsrfbdngi1jmkfy4nlgv";source="1w8g6m2whza3w62ngsaslv7h2x7asijznwb9glx6g2vjv456sgf8";}; -docmute-25741={run="15ad8274dwgzk7fzs7i5g3ss02ld8in8f86339rb314zmraj5kv3";doc="1mrwispvif8nwjbq12jgzpwjn9xf7mr91pwg5bfdcnpwwy8l1bh3";source="1nfv31h23mp7alrm9saz5abakjsvs7rqva3q9zvxlczix7yn63qw";}; -docshots-69676={run="02wcsd0ccyh9lmv6mi5g7igk42xcdmzwvp0j10128yw71znmwr29";doc="0ff6hklr8g0497p81bir02z837y3iiicd7g3cjws75sm88isxxj7";source="0qjcc0vkz7vpylh7cqlkyxh8fx2gyjjkm1w6q62bi97j0mnnb58g";}; -docsurvey-70449={doc="1pf5h9fy9akgc2cznvx32nzhxfx5c22dzr4ki23h4w7v7iivsw68";}; -doctools-34474={run="1rdwmdah8rb2yiicd9mbqz0mmf56rpgnp5vwyjhax7m0zqjgqkgm";doc="02jrr4wbkdx8r44dpfn4g83j03n6yrska79ljnwigs77p5jqlyl8";source="03y13bijva11hqil84l2p4cap7fcm8wk6ds53nx1qizh66h8g9vr";}; -documentation-34521={run="088imchmqchi1ilwfzlhk8d4am2xjjgacnyw5w4mb6sirbckhi3d";doc="103rpywyl1h30c7jamp3cfi1rg89y48krdjbxc0calz8iq5n0460";source="1fzk62clv9ij07cfjcrwn94cqvz2piysij09y2wlkcs06lgk2m69";}; -docutils-56594={run="1pxswkjs901clnd8l3n13ghqypv6l8gxr3pnwn9i0zakvxz6gdh3";doc="11fzx9kyxgxr20hnyqy9nvl5rczdfyb43j1bjwxnim68kmy5bjyz";}; -doi-48634={run="0rxsgmqmkpabw1qw7k0ssxjmzkia323dl0p73zw7qbwdpgs4xx5v";doc="0h6k3bg9wg4wa4shyijr0xsx935s8s8igad0zzyk57q5g7lhhka4";}; -doipubmed-15878={run="05zcv1db1bbxp6qnw4ni3qjx6yhflad1syqabqbdccrfk5xim20n";doc="07pd08qaggy6q58as1aqfnbk77mc2b4kavbzqk4v11f5vp5v0bdq";source="1hzv0iaj8rxblqxiak3n855yw8gqmxz7l8jwf98qnbpb9cm01f0i";}; -domitian-55286={run="0rcyfp46ar0qd2jiir3vmwqmkcj8zrhnrivr0xsi7nf9xbl0xj1v";doc="0q7lbpc0lh2i6jw6dwr26d9kxpwqxcrv6szsqfk73h8bpv123ghz";}; -dosepsbin-29752={run="0qknrackr7m0s431vrygphzrk99wkrgdp6kl04q7f4lsffq12k9r";doc="1lhrlgyn9sg88052ib0jkwd88zvjpzqnz0ac5whl5gpr5zw2y2c3";source="0lqmcndd5m4hxslvpq4r9g1bal12vfdsncfcii71glv45c2hl2x2";}; -dot2texi-26237={run="0hb9mv8ai85smn9viig88f5hprj3dyj574amy9nzdr8f52lrbg2z";doc="0wa63gs8h9a5d94chiq1gr4lam8p0338lyqbw3bmf3ix3v1bzyvm";}; -dotarrow-15878={run="0wjan8m1171m5bl5x6pygfn0lm3pyq87vmjjgzl1zd337l3wz45w";doc="18d9y7mzfwsmy9c14ihj2blmikiwcwp2y462wjnmm8hb6gm58cpc";source="0f8dmgsrd2wbcmxipj0p40d09sgcl8i5indbzsmkfz7fxvnpr15d";}; -dotlessi-51476={run="1ii8ilc2hqdwck9z1lpbyjsgh47pkfh62r1yv6kdkafqqrxzpxxb";doc="1vc8bpzzad2k222ghdcqmkbd7541b88wccc108avzj9v85wfpjbk";}; -dotseqn-17195={run="0n0hgp5saipf42kwx4hxxgx66irmy91pdzcznc8vmnnlayly8s61";doc="1an4s3v47f08z7v5gmz49g4bbz26xcvadn74052nhrbmj8xm8fav";source="05zxrzpm7mcms2skh9mpv4nga9ysqwin8qjc7yy9prcaban00y33";}; -dottex-15878={run="1ykjw55qzv5vk1wk90qddswvj3ai1s5xx674vkf5r07nw07dca76";doc="0vk0qgwvmny4fpa9d0gwg4s8z68aaiw1bn135d5msgikbkhbbmw7";source="1ph52wyv7fqri6pxsi289s7svy4p4zap1bdzbwqpbsrp6v4ngjqa";}; -doublestroke-15878={run="1nfbbh7kid345jkcqdhh72q3fg2fh39fzchcbhfkvisvqmqs3cgp";doc="1vs6gkv9bzya3hnclqbwx44nf5s8vir0hs499dsya2q64qrmcp2p";}; -doulossil-63255={run="1lajwxs0i5971bvc2jmdi1ljpp3545hq9ckyrr93lrk0ghdv65qy";doc="1wv1718k51wpbzrlxy8qm169q7brbx0gy7x0mil18a8ik53r7c6c";}; -dowith-38860={run="1ffadlm7fzm72svbpln7lms9dl5pbrv6xjzhwbcsjbwy4smx8s6x";doc="12sis4raxlfwzdl5jqg6x7fa7wsd9phaawm9ydf91wf7d8md6z2j";source="1qm2v2lw05jk4nnfns9l1hldamjka6plg2zyly6vi0jlns741hpx";}; -download-52257={run="0dwivfcjvg12gsf4zikyvlyb0p1pks6a2fxdqgji2x79ashxsm24";doc="00p9cjzqqh95nlda8193111aa5kjagszbf65wfm3jfy4dahqxfwz";source="15shcpxz2h0i34pnm2nz47h37gy4xdws87p8yrxbfi4j10qr8c62";}; -dox-46011={run="1vv1arqah132cns24s99s18ixcrjqfkbq551d94pjs8di7fiik2p";doc="08x3h0750nbh20wsnlkfz59na5kvi9jsm63l8dh3l7b0szzq88cb";source="1p5xmacd5phv5ig0ga1wj32fqpji9fl21lbygb39qdjr6v3g7vs2";}; -dozenal-47680={run="10ghknq4nnyvly55mwcisb64cadb0afmsqjh8z026izs684rbsjr";doc="01m1ljwbzmzq0hcj6p95rl4rrgnjrxlxnf72f49f725xhfsn57pb";source="016lxqwf1cm7a7ny5znkgibpna1r13zw0cmzs3wk49zhqhkqmzvp";}; -dpcircling-54994={run="11qhxh5pgjyc98hnlbq8hfsb77bavs0z3yjx4809z6aypah5cd92";doc="1qrx0pnk1p046mx6nzjwgrfxaq1hmdgalqsp3cr6d6zgqwzsnms1";}; -dpfloat-17196={run="00agcljhzafzhbcfk1jbxaxyc3znwxd1j1sdhr982m3s1nd8733g";doc="1nydmlbk1p4gywq0hh7jnvd9hs9lxl73khbpi4zn5j4blzkb31x9";}; -dprogress-15878={run="1sz7msvh7wyf5k8ag857lr11dqwf12p1wzi6kdkwma05i8wwni88";doc="1s356ffii215bybc5cqg91gril5am5zzh5w4s1nf875yl4yjxbji";source="1f7ym5lr0gn24jaca509hbhg9xr5mhbr5wgncvvf937jmq6w2jxp";}; -drac-15878={run="0p8li8cln7674zd40w8x6izn2kf63wsxpwg3dpbjnp5jccifvsnr";doc="1lhibs5s6h0a97ggjkp1i8j02ry9p0zdq6pzjxm4ijx3fqj1p3rq";source="1478yizwfvzrpi50k3fxbs9vq7g39170jdh7l3ynkbq0fkbssxhd";}; -draftcopy-15878={run="0fxh7h37akz0s33vjmnzxjp04m7ynb0z6650p5wd399lfg5bi11k";doc="1z7cjzk75d3gwcb4dgvg7a8jl9bvzqnc7zn0ginqcl0aih37yg5j";source="11gswnpz0azxb2d1clmpk9bis9cijsd1hajll7jxm5fhnk6vigfn";}; -draftfigure-44854={run="0dhjlykc6p6jm6p0s0h0d74097ny29w84ns1pxbb7f8iwr8hhkvf";doc="0gnazf3bmbgnygn3pv0lzrlrcic3j2yfqxq1kaijkkhsr9w57jy9";}; -draftwatermark-70401={run="1v0100dlj6y6kbcyvnslsi7a688jdm813w6752bxbv6xsxrgrvkg";doc="040xj41s6xgbxz1gnd11m58dv7q30qdki4sn88vjg00n2i0afxqj";source="10lm27jk24p2d5pg964l9mwj4gkn1xfqxw301lyyibq6wz921qcx";}; -dramatist-35866={run="0zrkdhvx7f1261r5b2d08bd6a3pzldvpi69iym5k6f79ziz0602q";doc="0vwk6zfvf89773bwcxnpsd8crbkmq4lr6hksp4dn0hn6rf4smyyf";source="1xy8fm9h9qgjna6z5gz28rj0cq65wpxpxcs4vsfr4vr1p3vmig05";}; -dratex-15878={run="02nyg30awmpp2yi4m6r9gbgz04irjzpbjhpp72j0qxzly8c8frqn";doc="1a5knp5hylpb1i7hkd9160bah7pps9b0hm00zgn9fk33g5xrvhbz";}; -drawing-with-metapost-66846={doc="0r1fqikx9iix0xm2w78s80knfwc7w0kf2k7fb3k25l1cj3ym14mq";}; -drawmatrix-44471={run="1806y5cdgnj61fy0lilm424x936dz2q5f2j2s3w71kzl5ivyf569";doc="16pql717cz27sic494xvmsw2mw9jxn71xka0k8fjys8j52pklqnk";source="1x8lc07xccf73vcvywmrqk8ivg5xb1g75gqhff12zgrp2vqzh6g7";}; -drawstack-28582={run="1lirkdnsp35l4dwsir1xyf4a2s608ymfc3r0hmgg9phiy9i1664z";doc="127c98z547disxksvhabrpnddrp5ax5dwbgy7nmyja2dg65yax9i";}; -drm-38157={run="0j0r5b2b6js88gy04d12w8wp14g7z9xcgc43y0ysn2xglcsja3fj";doc="04i8mw2lsirvzf3n8xgddd2jr2s45fbg6m6wiwjdz4d2i1pi98cs";source="0l3j52ypvsc8ma06a2z2dkqsa3vd7afqkmyrd6b3z6w3dgjlnz3v";}; -droid-54512={run="1fmm1k3sxdn2h6v56hqdn0l84rz1cgxmj586wd4ff41vfzbdnn5z";doc="14inm79ljwnr36dz97356iz4257vbvkwmbbaq7wdza1yf07gijs6";}; -droit-fr-39802={run="1wz883z4a7g4na18z50vd0156gj6zpkkl49h4k0dhxwgqibh13mk";doc="1ss2j5jsr4h96rqcqmm89mprnr6w98zbsxy87jlmqavjjc8k8jq8";}; -drs-19232={run="17jp9fvj86sp4ywgc6j1dp3pnvgllilbq75298qamnnj3f403vlr";doc="158wkgnrgwfg2ikbj98hmcaaymrwpmnmaxillksv1b7gxmdrphk5";}; -drv-29349={run="10dqig3wmp340m9h3n4yl6scg1p2a7ccazsqp7p8a4fkfw0cziiz";doc="04kgfqhilxpcc0h6rhpw55s1j14wsb5v8b6ykq7ajmacrpmyi50h";}; -dsptricks-68753={run="13hvyb7qapfby45z2cikqwaj4bcf6lvhaf3b6gq7d9831gxfwjhk";doc="0jjwa6rh39qp2659ijb3fg3cqz0lbpjpwmvj6zpxv0xhnjzrnidm";}; -dsserif-60898={run="0w1kihzrmk48hpl36a20fkz4nwp9z27in9xsi0fc3d6mhgdx35db";doc="0bwnnxypyc97jfcam0vdvpyxphd1zn31mc6lvl661jy10cpqf6b4";source="00hf5icf1n0rwxr2ms34z7r62g98dqkx5v26m3k7w1wd1jfnjzi6";}; -dtk-70117={run="0mzd39bczl4xllw2asnwrzjp0jnvldd5ldh940qcrkp9rgj9nrg0";doc="0bm35iwckkx93shilww367pr34h4wdkr1zwb3c9xsnjz66nj1iig";}; -dtk-bibliography-70517={run="1j395ffwbmps5al16rqfn4r1mm3m4pm21jy74czr26cmfd75d6jy";doc="0zcc3mr1p5c1nd1dl4hqdr8m6d6lccgx6zyxjf2569x805qs4mrd";}; -dtl-62387={doc="0kvnsr8nxrys99rp74wlxnisfripx6jpjjkqy38d3d4gw13cvb5g";}; -dtxdescribe-69507={run="1k73gikms6ymcjprphzzrw6nlhm8sdg62w5ngb2g38p0hyxi0r86";doc="0fsl1kp8ls9dkzqjs5gd3s4f6cvi3dqd5mcz46dns3v6qfsn39my";source="1vdvvgf7knmqhz1qbqgs17a0m0dljnx2lwz4d9j5q8dds2i48jk5";}; -dtxgallery-49504={doc="07c403zbx7sxkhhrwrfw3np20xlqhdk893b4bd6r8lqb0zipp5b5";}; -dtxgen-51663={run="19c9w97wjyrq6g1j8n8qgaclx141lv2j6z6l5h13gmkmyw08vwhh";doc="04z9dy0aada8zsp8ckz3agqcsm29dnlx770xyl51rsvk2qwsxgka";}; -dtxtut-69587={doc="0zk09qdz661g1lnn2qr1s23h3x4mi7q8mdcl13p19k7qmnlc8v5d";}; -ducksay-64655={run="17ihjvzz7rx5zra8lwb72vyq5i27psvmlg22sihy2lxkxzy3krx0";doc="0ydhgp11hc7hl3ikwf9pgfwf5p7q5g6m1rmfcy2h6svv398zcg67";source="124lwhv0bfc6h34q93hjxpa5ypdiibmibx1ksn9x8892blg7dxnp";}; -duckuments-52271={run="17fz5mkr812ig337m2q40dcsj98qpczw53vjrsqk1skmknk0q4g8";doc="1pbq66k699v3b6c02qx89dvzsh45knr4y9s6a45gkm4a7mkk5nkx";source="0xcdlvm247d3hl7bvb981fv07nb5g24c0n0171vsk3hacxpshcsk";}; -duerer-20741={run="1v6ja2q8bi0w0jkyl3j960gkvv2m5b7n9lg6ql9rxz7sfjcxa3ih";doc="020q5ln31smf228xx27gbbw0xdcx9f5zh6qjriakxa9mhixksjjb";}; -duerer-latex-15878={run="1f23mz3nd7icknkz4dircn38y1k2k0pwq3r79ja4h85si6i13ynx";doc="1arjf6dzzkvql0jhxg09f4yq9vgx7ag9l69csrindj8sksvj18f2";}; -duotenzor-18728={run="0p9gq8i6xcfg4pxdnqfswjcnc17x7pzsp4iya9b3fjq4kplqv28s";doc="1bc1pycds7r45c2bzmjhxs2wv0f2wqyxbycfrl6g4fycr341h8gi";}; -dutchcal-54080={run="0j49mha6lif07hnfn2wdfl949kfal4hbmzg6zal4w5rgw366szrm";doc="110rbvidl53naa31ndgh6nx19i3rkawbipz9rpxyasqk61kvv6mi";}; -dvdcoll-15878={run="1b07xplza4b3ngh50czq8vwmhpr2qvkl5xbgd93a9acvsf5pyg6b";doc="0fhkdwyvlizlb66bd24pfncbg58a31ygnfg0f9dw5z9ccfrf50hd";}; -dvgloss-29103={run="0fgc0i7cn0kd4f682xny0968l220ypam3z33mwac6ifqaaqbiy9d";doc="0l467jcanablvj95l0sbdib6dblc6ns2jcbg41kv0nxpah2i5ms8";source="0b106p2a8xr3c0vxwx3j0qmxh2z842h5x1z22509jabry3sf1y98";}; -dvi2tty-66186={doc="108y0qxh13x0iivgsvkk4370f471p03nyl4x9nn7lng1wrsafp6h";}; -dviasm-68043={run="02dxk56b63kqiin2ad80hh4xrvbhbkidyi0pxi8c2n5zqdiq81sd";doc="1hp4vrd6aj2qy9mzb9cr8l641cvxx4aw1ra0v6yr16lkzcls7s4a";}; -dvicopy-66186={doc="010bs4iyaja7mq5wy9mz6fzxlxf9472c2zdm93x9i474dzgnh2vl";}; -dvidvi-65952={doc="1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj";}; -dviincl-29349={run="1qb2cl5jbgzjfgwqnvnfbbrbzxi4m64lajvz6pyybnrwv4bax0km";doc="046c2cl9azgfg7y2022lj8x7yw8kg2pgjdixxk5989ai850k2j9n";}; -dviinfox-59216={run="0bcq55p894m5hw3zdjz7q7ns21vpzjyihg5x19lkn9k05nxrs2d8";doc="0v2sy294w0m3kniwky24lpi4ic5d8qrm5722gd7vw6ddwkwc1x61";}; -dviljk-66186={doc="03pi78c8ghy2gghzk1ffrvf5x7h8c1r0pv5pcspwxz365x2rsbjw";}; -dviout-util-66186={doc="098pksgf2iamq96rmzg5fw7i9dlpvdksficsz1bf8k8z4djnbk8n";}; -dvipdfmx-69127={run="0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv";doc="0wid2ydcjf5jq34k8hsg62ndgishbg6f14p728dnyrbh6k4iqvwv";tlpkg="0mlhxv77q5nanqg2dcbd51wpbcrys9xhr22bvx3hpfzwykb5lh69";}; -dvipng-66203={doc="0r001q4p5569dagayds1c56y10ls6f6v7mmywiw81l995q16apxi";}; -dvipos-66186={doc="0dmaas4m9y4px53vlg0jr73xviki338fm2n176l8ldwqj0vvq1b8";}; -dvips-66203={run="0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw";doc="0acfsqbpnws8m5y66fkgcgxf4sdr9sjha067735scn75wmwi9y01";}; -dvipsconfig-13293={run="02vgk91y80ch4pkj83vbiz1b2ccigf152hm83p607y4n4qn2xzsf";}; -dvisvgm-70496={doc="1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb";}; -dynamicnumber-38726={run="0y779azvla68n692x0gybg74cp3dk32219v67qfamfzz389nbs7s";doc="1appm3ddbv9ll0mbnid4xa459w9q89swmdlvdzy1fxdps4y0vpz9";source="0ydmlz697c46fx0xpnvcdcfm9sm0j3jmk47xz8znd2ghzg395fgk";}; -dynblocks-35193={run="1zb7vk34k3z0cvw6kz74s7831fz17mg3j9hw60diabc0q47pwyr0";doc="1m69hys2b7fvwn9h6q3whkpcnvi04hnhx7811s5fqhdfi76v4zk4";}; -dynkin-diagrams-67267={run="0iprylvg36fs9rk44a4yj6xn2q5vy6jy2104m3j9jkyfafy2qsy4";doc="1f54q909b3qgbgqgbxpi4xr4f06dkq7z0wh49q29b1gh2zvvdxms";}; -dyntree-67016={run="19kzb4j7q7dz993znni7pixv2qljzydag3jywcsgdpqvlnk1aq0y";doc="0fa2imzfskl72fvdm1pbhsr33qpwm41dzsfdipdlgww6116rlwjc";source="0hlx970ym3zxln15pm4c2qxliaj4yhv7cnak03hhbb0dx916k3mw";}; -e-french-52027={run="1pm1k7qb1a3h2b8kay9jwby382jxp3866b9m890rj9gfqdmwbfd2";doc="14719qp1qjcx4wjwcarirj7iz6qmjgwb95b308zqdr197y1cvymc";}; -ean-20851={run="19w54ch23s75mhn94hxf4nphl5dcz2w1jx138kr0phfzpc6fri36";doc="1rylr9m7jrv0qq6pzigpm73z34p9n80fg5rf7andmvv0fcpmggk7";}; -ean13isbn-57514={run="0bzvkzpi10d9sjlsc4df5v3y7qycbz1qkn7ngy97prq58wg047gc";doc="1gf076ybmni0wzhh0fsf5w4sj4pv3c3w7g7m09k9607y4havv20a";}; -easing-59975={run="0zdyvkqydl713p61izpcp2yz6n2rfsf853pblh6xgsjj1vlhrr0b";doc="1f8151jb5nzd8hj3sii4ca274iaxscv5w8fxp758ncshr3bv0avy";source="1hha1qs4wy6s2162w61gpik2hrx73r83gja1llbq80gyvyfgdssj";}; -easy-19440={run="0jrza9lf3yf4d1wm6nzwv5iyfia6625fjvflfmxsscbmwqickjhx";doc="0f72bawmxrxqk60xb61y079bqpxj8kmvn167plbq5whq5b1fsxfl";}; -easy-todo-32677={run="0fkwlzgx20lj44cvwv8hqv79v528k1gghx30lvqhg44wqirkmy86";doc="1yj3c25mhkp16n49riza4qchr2pqycqmb2k80syn5w3dzrj021s2";}; -easybook-70236={run="1kdx1wkmcpwyyrgrhjadwnncal469b2i5f3drh78i2gk9b6ajy97";doc="1cal6qmb16xpq16gs9xnprf8yaa6xhhqvd9n40gbwv28nz1wdh8n";source="1w9bhy6rzn0yfb4xi3mprzggm1fm0x0l5pc4c9ajnncnix1vzly7";}; -easydtx-68514={run="0pfd66n156hw6g2s2p8v35gjykacci9kpyx75zcl1sw95ry9407g";doc="01qw09bkafjmkmhg3wqqgw8javrar7zxrf9hr3c8xy14rc36qkyx";}; -easyfig-64967={run="164ncaq1l6hdrjp0zinynf825hwsky1xam2yqxphhk90438n5hzk";doc="0hc63z5456f00a2x70ckvf3r54zld4d3r63a8d4ra7502kk8s9n6";source="18f4bb9yf3f7q96w79rhx8h4svlxnv0xc6xwcawav63zsk40mk7q";}; -easyfloats-57204={run="0vbg5dz6wxzk20rn51xv7v526qg8m0ih3wikabdf1bfb4n093k2k";doc="1ncmmmf2w313cpsc9s4w0c3gzvx09r26gwlxhr9rszksvd4y7fay";source="1ih161wrkxf8sfm0zyl2m9xgmff4qs6qvsz7mzxbjl1j2zxzhhf3";}; -easyformat-44543={run="181x0sycxhwcfna2wblvijjs32zvqs6xl2am4hz8204mk321rjsb";doc="0fg7y02717rk6ikw32qxn6iw7l59h5vc22aif6hs9xjnbm3nhhfr";}; -easylist-32661={run="1ghjps30fa1jvfkxrzaxqvy5ilacdyms6dl8bf2qg6195w2sgm33";doc="13wgq2pz9jw761p2yipf23k6lrx66bp25l50446rp1xz47yk386g";}; -easyreview-38352={run="10wl0aihr4c55b08mxafr0jd1xaz640p2kj7n63w3wqxzxlpq42i";doc="0nnnr4l1b6qhp75n646pd446s7c3pc4fxsxw84gvfqgankfsx3zz";source="0p7xrqivvb685d0xcljyi4whh5vr6yahskdl63ynw836bmin1b3z";}; -ebezier-15878={run="1zmsrs7dpw5gwh6h0707gxcpsnbb8qklsqnyr0q30mziz1wqhdvb";doc="03afnc0nw7yzv03n4gq38js3y6x5v0kaxi5psmnzpf2lj0kfa7l5";source="0492q2l7yrv1h51x4swqzfp74k9kb989m0lxbgvgffh4gl7zhi5w";}; -ebgaramond-66604={run="067amcvp0bifrxyxsbkwj98g1j4m4mis3dyfm5faa6k53fpwzrgg";doc="1sbi8vm5c1hlf65kh30r21vmy817y8i8i9l3h17ys7dfwi0d4f85";}; -ebgaramond-maths-52168={run="1n8xfa9qmxsrpy78h98x95wks24fck3mykq5n8x0qasi4fabclnx";doc="1x4l9mi2cc1fx3qbis2ibshh5wlfn3sypxcrbcr9cwwhpkg07sqb";}; -ebong-67933={run="1skwh2sly6bckgc05b44cvl2pvn42y3970rvmnlh9xm2x5ql015g";doc="0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27";}; -ebook-29466={run="1jy79jrf8cd1rljg9f3g0hzkihxkpybvbgjnkzd5y6cfz7zaynp4";doc="13cj8a88qqgi6kl1d7kb0cizl4i2pjm51hqnz9q03249av3z377q";}; -ebproof-57544={run="12dqzyi84jlzm75d77crxbwv2nzyw8raypdj60bjrn6kifav7v0m";doc="1d6g3v3hskgd9wrddkhf7qxg160n6qrfgzxfswajswk0kg2w3675";source="130d3af0n0gjvnm0ad3g6pm8dy1w8zp0q7im3gv1kqbm7k5h0hny";}; -ebsthesis-15878={run="0vg8n4xrlxyjx88yzlsr82drlrigdnb870p0rxd1nv2ik2i1jzri";doc="0gqh1zxb1w050a9dqnc5vhx1jgmk9kqk9k591s05xckidhnpp2v2";source="0rg2bs23051ravdqv14k6yrrc993xpxf61zi8b94f0rjm3mg8f89";}; -ec-25033={run="0l9zf4zs8yw84x5rnyzaggz4idl4kmvj40c03jyxbsxsx6bi8jks";doc="013w8hdsln91k13c3ilv36p4vp1263knkxf4m3hh6vaaqcr55aw9";}; -ecc-15878={run="0sa6f5dbq3p0nskxwy8namy7hckd9ihz4j440v06fyfk6wd2dxn8";doc="0v95nvyv5ygfrwwr2mnaja7vxng3d5byglikkirympgqpkc59rv4";}; -ecclesiastic-38172={run="008agcka4wj694snynfgak1ycm49rbkwn3z58470adc4rwi99klf";doc="1xmbxkmia5pcr2l5m3rd12qzpq92f75rcbipgpvck6sqpp7psc8j";source="0c32d6fzzn090hi9nxdj3qbbhp4q11siziwr7m6lp2l285n91wj6";}; -ecgdraw-41617={run="09affkfqlsrjgn546h6fkbzi4y7dy9zgf4i5a8kw6lbgl631gvid";doc="1m42ngbia5ilcx6hjd0xid07vdvxmrb2vd4qmzr8bzzflj2janhf";source="0825jfxsmicfqv1amnjx69wmfw893pcdqihqx7vv6yd9xs4bqciy";}; -ecltree-15878={run="170bf0i0g2fnmmv9qh0jrdv7xn2xd5xmsw8dpvw8rbxfmn94l52b";doc="016hlxjhfzn2pgcpxi7hw0wnfd25idp70jvig7p8614pvkv3bsby";}; -eco-29349={run="0vp39dva31kjs4ckqdy49smhicq4599mqly7y9d9xfz6gly6z9zh";doc="1wb866ilp8hmxndqys1lpw6zb3l1nyl583z06vh8nfys1hp0x0m7";source="1j3ik11vjxc1dahd0p7jdcjjqq9i89fnd9514s1lq5499h8jg159";}; -ecobiblatex-39233={run="0mrrb3bm54d6rpwg8i534wmwkh7v6qzysvd020pi5pph967lqp54";doc="0mhwspy6k7ixjjxk5frwklasm0xzwbwk2lx684ikv195nrpb6y8b";}; -econ-bst-68761={run="1jhvw59f913d35dx6zxr42bcms0i0d12kxd832km50kqi08wb50m";doc="1akyhlnd9g3rnw6kqi6cm4h0mrr1f3rbjii36z4qydl4gri4rvp0";}; -econlipsum-58390={run="0xca6dhbz49zxn58g5bc2yis2zci9v5iypfh3h53rxhlkbfbcqln";doc="1pb6z051r40wp8rv5makhaxbf23aq5j5gm6pw1khvhk806rdig4w";source="0j26l888qx5q5j39875iab4106fkn3ign9fmbcmcvf42yzx7mav9";}; -econometrics-39396={run="09zlc6943vf9r2n096x6s0xwbyl4lnpcv8a1hmn81s5czawkrqbs";doc="1bv3m38gp92cdwhvpwrhs4p34hrmr8800js6myif4r52gnd1q4mb";}; -economic-32639={run="0jyw807d23b22md2ib7xkgi2jh4mr50pczjbsylh2gdgsplxgaw9";doc="18jn833w1chbi0qamdxbrrp39945drslxd2jkzi2g8wcca7l5b71";}; -ecothesis-48007={doc="1avnq2y5l2bc2lkf2g16p2vh77dabv52jr6jrm4jfm1wdapc6fmq";}; -ecv-24928={run="1rvj3rf5vrjhqsz070id4i3l9svwsgclfhkjzxlb42va1bqxkcdk";doc="0cp3h8pagsxpr0i28v8x9dh9j6imbprd2hxrl6ln2m75c9ki2wmk";source="149jwhqpmfn6gwzkcqpilxp7hqnidjlvhi1khqxnvq3k947x33js";}; -eczar-57716={run="1hpwjxsr5n7f6zdc3ap00d9l4346yvavsy4wjicj41b1g7wl46v5";doc="1hvw36i6szhia91xq2y2jzkngy0aawxw5azpa77026byqm8mrs2i";}; -ed-25231={run="0wb34cch7jfgvfql5jy6vvfalj9bv6pjyd9dg2i9msq1azvrjjv4";doc="09kn8cykfsyk14g428v72l2ppwffcdrrycnyl65kixv8hj0vsdy6";source="0ldjyl7gpa5fswzabzmklkwmz94z8al7pm97hh0yjzdqgjxfsdbx";}; -edfnotes-21540={run="0aljhm0wiks5v2s9qkwbp0ma8p6230ahsyr38w9akwy4j9ziiq75";doc="1260dir3aba5wv12a4xidx6ld0vizl7n9m7agwrkmbanpzcqscf4";source="0wm2hynpa4xk464rl5ikxdh5p71mp2cwzac2xl582q8fik7vjx0s";}; -edichokey-56223={run="0c4hwpvassgrlycrjygwywp6ws91vhhb2wq1jwdla8x3sk7hkdr4";doc="1b79022plz2a6gbf1grrcg4j6794fd0a45lmq68lci64mz33b66n";}; -edmac-61719={run="0cvxirrcf7qxa1a6r4fzklqrmala7pdj9i8wywapy0anak8lpd9d";doc="1s33bml7f2lsfrj3fprpazjgjiyiblfcjr554fwq8aadsvgz2xxy";source="0hywrvvxaqb52hd29r0dkixj9fcczhr8b1rj6wxj3wcgdcbfhlm0";}; -edmargin-27599={run="19dmfw76l03v87igfhmh81kbfsp5zbznk62vqpanpppspchlx7p8";doc="0v9lbfynw840xampn4sgxmq413357wjwjr5slzrlpv9mh1f8z0jr";source="00b7b5c4n7baw4c973d0b3d4gzkr5k7m4xj258sw2bhfgaqnrjd0";}; -eemeir-15878={run="0hxnd2rxrm56vblrkvg01c1pf5gccbmvd9lvrwlch89flxp3fiyd";doc="1s576bk99sw867ywkq1qhk31yycc19zqr34ry2zix25cs3hk4pia";source="01z6p0ndp3nc3pbbwchchfn9nlk86kp35qvb5hkqb3ha59wlfyzs";}; -eepic-15878={run="07hg546cp5ab7x4zq25m7z184mvg7hyql7dsbwvgpq6hyz5pqzyq";doc="13v8n27iw1b7qvs3baqqyls9cp2mqbycrbax7jnr8mfvp83jmpkz";}; -efbox-33236={run="1jss3bkgyl365rkgzil7xp4pab8k00w57p60s2sh8wrdy10qjsda";doc="051s9yc05ai0yipwm5f5kdqxgiyiyzmzyxf8rbfwl9ir90k84fq8";source="0fcrnrfk6yrdhj25xmchlaimc5qqyhri287b9pwdwsxlr58wgx9c";}; -egameps-15878={run="0y6naagmi9qii1k4qcp4svczxy5vbramd9wg1ixr8xckp806kn58";doc="0i36znlwls01ch6kns5ikw90nbq68pn71gpvfizf0x9ipymqwisl";}; -egpeirce-66924={run="1ld3k182k7m17pixv2acn4dzlcrkj973y2xjbw653xhs2g3mr1va";doc="1mldpazfnldk4q0r0ddd9rdg9ar6fvabqfb3r2g5c0aff5v2p30h";}; -egplot-20617={run="06i2jh1srww8111c2axcwn2lcs7lwdgp7npn2qpi2x7g38i2kkzv";doc="1silqbylbkxfyzacmyvc3kf8g3md8931ax1s877p5x5zi0vpwbz5";source="0qsyqhmx0gcl13hlhbia9rq82kkkhc6mhmzp56g9b62qy2wl1ss8";}; -ehhline-54676={run="11db4dh948g744bynf1ydlg6jk562picrzfbh5pszxvfdag91kar";doc="18jr25hnp8hg3dbjgf16cskdhm6kx9nxliiggqixb7c1ii6mmn2v";}; -eiad-15878={run="15l4wi5hfbx8lp91jddxwg073z0r42qf93kvrqv7bwhqisk36x2g";doc="074iirkf7fzdxik5yq4jjk2p8c5k9jj8a6n178aw767j18h4n2n1";}; -eiad-ltx-15878={run="1ifiigww9nk6hw342qj1rxzl2b94f54cm4vvrpffxy9qggwkd2zx";doc="1h4cm5b0mllqflsgfcjdh97zn3nn3d9gwa55w5kyimmxgz516mng";source="1bpy6f6d81n95x81rgpz2r1vzg9gw04309shnx8a9jsx17fnm4nk";}; -eijkhout-15878={run="00y3y01jpgzww1x6zjh748hpvizlrbgrv04p8aq3cm2pzs0g17qk";}; -einfart-70318={run="0nkp5ixkdcl46mnr4kny7cnwrpy3zi1hmiaqymcgxgg368dx88cd";doc="0bvfhvxy4jlx2f4nzy5a7civ8qkbk57h3fskhnczyyxq4ricvhin";}; -ejpecp-60950={run="111sr2lnp3b8hh0hyvdf3zv6nr3m2ghl8j2zklq0fdimm7ndmqcw";doc="14ww6ilq1l8f8i4fcafl4v0im39gajkr5189180lbrim6wk8gys9";source="14223kfrwhi1hby3lqadp70pn9ykagf1cwgqhapm5856iai4ravi";}; -ekaia-49594={run="009wk5qyv26rdi9gjbaqxcpsyzz6l5w8b0wrg9avspq81hrjkg9h";doc="1rbcnilarzap8kdsvypjwin1d13xskqq33wg6p0p02b8gaxzf3a8";source="15fl2jhhv01vl7ggwmddpldkmwdj6gj99851aczv47lj24w093bc";}; -ekdosis-69568={run="0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d";doc="1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v";source="1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd";}; -ektype-tanka-63255={run="0qnkc2i6zxhx0i5mqx57qf7792ffg246yxcm14g1fa1nlryhdqwd";doc="1cmsd75pzv0bfr9y868cbpxx39ixs64pc2i8dsi6k90wfzq2bq55";}; -elbioimp-21758={run="1vfg29q8b20zi9lhn9nsr55hgx710ysk0dvfqpipqjf53fjsp0gs";doc="066g7g84fna6wy1slyh2sp9hmwjhp57hc3qf59gj5mwqvaaym8bc";source="1ysvjlmik0kclmcdf738vhl7xigsq8c6lqpgl3z2daarlqx6b8c1";}; -electrum-19705={run="0ckfb8xq10bx44zfdjy1p1hfcw18mlfli8zgjks81kfsgv7hzfxj";doc="12mq0mn56xi4h8dwnfnlhg0bn7qn6b6wxx20nqd73qgm0p1h945s";source="12ys4fdn1kyml62rcwpb424l86kspnzb5xq850ppbb82ng4146js";}; -eledform-38114={run="04sd6m6ay9iav3scf72i6id726gn12qgv19hbaav7dvbkx73s10c";doc="0f8inf12l7f8cg51adr269qs9zc0imsk9g08zh793aarvrpfh4gm";source="13phf594kj5a9ql14wvd7pzi3vcrwg61lmc4fb7079j2xpx7drmk";}; -eledmac-45418={run="01is22hyay4xl1bp58g08kn99478fz5l22xdlbaqyr5yg0k4rgmc";doc="0x2h38mlixff4yacqrvz7k4q57cwigal3x10f3k4qdr91q9frd24";source="00pkybywz4j1qcki9gv9mfxqvm6q3m60b4lj2ms44c4mric77wk7";}; -elements-61792={run="0a3dzg3d1wz1zni57k8gibrxczjg0k16vqqkbwcd509blwxgps4r";doc="174467pvz1q4d72z215pni50084ywddfvf8c36ibagijpdvrym08";}; -ellipse-39025={run="0hp6gm0na1gjxdjivxgakbkrq48mp9zblbfxxw68l2aa4jm1x1a6";doc="0invkczwak9b89n6w8ny9bh1mg7amk418cf6b0552pb5rpkbby8m";source="0143mncfyss0cyzq0aim8lvzxhq5q8a0cpsh92llqjl19s30d3fd";}; -ellipsis-55418={run="1zbasvm792cghiji6gkg27ixjx7ms46rgqbi3wphpm9dix9296ap";doc="1w9hp2k4qvhg5275iq5kq79ws5z6i7jb1536h0qrznm0lkw33c4y";source="1z8f3x734nc364gybhslxzvvv4502a29dmb4nlz39hm0kzgqq3h9";}; -elmath-15878={run="04vacr9c71nmrbq6hnhpcgk8g75jzdvwf6z513mqabr9d0gf84l5";doc="1da0lrbzy598yy9jisjq0yk2qfjfiqpj32l1v63l3x7dff6yi4dn";source="19q44k909mkxrwsqx4zvraa8cv8jbq8z46xnm53agk0jr94bpiqk";}; -elocalloc-42712={run="0jj85nyrq2y7w7pm9pq8qdj3xszg5s3a1j8zx2dvsy6a1s7mzd8i";doc="0rgf8vijb0dl48x4rwbzg7gd1apjs7vwl8rj7zyv60vx53zzkp5i";source="100hs4drnz5jy657crs8g62281sbgza7k78pvk1qfds2y8la2968";}; -elpres-60209={run="0k8jcp6bgzphlg6kh0krlm95d2rq9z90hscsncq1m236hrzfad3b";doc="0k6ygcd10q78h9f28y091l171bmaw7ibk9npi3kpx33vmass118a";}; -els-cas-templates-62931={run="0lk027m6s6z877lilqv8sq3s5xcmmqqhlhrh8p1kaalw01g53hy2";doc="080sa0kls4w4p8lgvahk5an8p6lmkf5kywbzj1wx4n5mqsj5mpcn";}; -elsarticle-56999={run="1jjayypcaczxw69dk3v69fj31apics2356l934kmag49rwfzxail";doc="0z7iywirs24112fmdl8fm818320s3ilqlgc7xi6nl4idjakhfmi7";source="03pw09cw4hd0ixfa88mj7bijj9r3b6a6kg53q4hzzzl97bf6v5yc";}; -elteiktdk-66821={run="010vxx6ddmbcj004a9f17wq6a9myx7hfvnmas1b6qsch6ln99wdn";doc="0d9fq58svc80kx557kmqa7dfz787zbzhpaifswkh2f0a327f47is";}; -elteikthesis-66820={run="1xrilac7n04s28ww54pdl6zn2dwnwl1lqc7xzhqkrinbfxgchg03";doc="1pkkwbb4ialcmjbcyv82psq6g5qyzxg8hgvgp2n0xybvvxh4z7mn";}; -eltex-15878={run="0k782lxa85dsmqbcw5q8gdny1lygfsv5h2d1d70f6y0df17r57ad";doc="1hshzr96sn318b7ssv6f5md23v997xahm2232c3kns3rzpfssy21";}; -elvish-15878={run="0hz3cfydpm0sq6s2xp8q44k81xxhqm5mmrx5aqn5wzm0kr52pmsy";doc="1zzzqgs30gbhy8ja13zq9b2s6mf1m47ms5rp33jc5xp70w5cjp45";}; -elzcards-51894={run="14vd8vnnss12flbszsg8357831r986pk7hhpcwqln53r6x5kd543";doc="084zcf7dqig379cqc6ahiqkm8f5jwqgiizd6h5ki28pcbshi49rr";source="1ipavy4km50d8larywyb63dldmawawzfw3x6m5nzvi70zkx1f6rw";}; -emarks-24504={run="1qf1qrbw2fsxc137g8dfsx1c202ylvg2ijdwcmxq1fv1pd2zjjwz";doc="00fkdarm7i16vlmjzvjpkyp5v4mbdc6isv12g07shx3nz5v4zgp5";source="1lznlfqhcwd3r8dp4cix5jav3dq63v4wspr1ks3pm0bkycy8wr5a";}; -embedall-51177={run="1078qszq99jdcy2vsaxmg1fbnr9fdbd32y5lyxl4bwl0ja62m459";doc="1c17d4bpzxws6j9z5p7x97zfggyzyadfjygbhi7ykfiy55qywhdd";source="02vdmjb6vqvqmfq7fhn5gb09x2lzpmrfhx6dspv33wmwzv99kzr0";}; -embedfile-65528={run="179a168b71h8zkdcfr7krcm2addbin9chckaczj8a8ayy6xr294l";doc="0iqg1lbr1fb6ckdqbzyml5qwpdnr606fmhfgvxvzb71kn239cg8i";source="1kc65i68h4nd9q1fj2sl094n6q0js47h6bh00677a89kgjxvpzr3";}; -embrac-57814={run="0n2ll7mxgw228qb3j0x111yyiaa4ikq4797g5k8xyakjmv0w3sv0";doc="1lqapcz7iv8z7df7cyddg6ylh2b61ndgbfhnfa8abzgsqz1h8sjy";}; -emf-42023={run="1w7whsff28cf3p0i8hii1lklb8i541di3g4z5iv2rfm4xa5m6i2s";doc="04qq6ljidaqs2i4lxp3m1varm232rhd026qirvr8q10vpkd6grad";}; -emisa-60068={run="120aa7a4m1psqx3wclwzghq0fcyxs8djlf79mp2ds56y0mpsqx5m";doc="132h5m80s24w51px615di388r7wkkqp8ihwapdz770p5pywk3c2r";source="1pspisyb3pxj2nfkpzzxc7pghackbl1p9dwbr5iqzwwv37bxjgli";}; -emo-66944={run="07df21ziq1ajpmff74w5vcsvh0kd2dx7vc7q61syqr2yqvj635cq";doc="130zqvzv94hi0h5m742kn7vc8110cwjd3b59dxdpihm76gqpa9zh";source="0hy6pvyxg0k478lpdfirb92mx28w27dxzms5al3pjq1mhr04bmf7";}; -emoji-59961={run="1pzx221zrczj26pdw6ijai6m73zgbz6z14d5wlhv7albrh4ppxgs";doc="1531y2a3dfmv2y2xa7xi0dpdkh61skk5makiyzs8mz3zl19n8nkg";}; -emojicite-55131={run="08y8qg37m8b3qf2wkbg802kmx359i6ki445ljjnxybs7apvxjpn5";doc="1iwlxc5ygq7l4qag7yxxas0rpcywmjcv5pcayrk5mz34xr06x5f8";}; -emotion-69881={run="14rnlr65ilyf9mirbddf9vkm30333yyyyd53fjynpq9h0hqrlgxy";doc="026yggkjkkvsq04k232a6p31wvj2zxravn13l5ijxs5z66hh3svp";}; -emp-23483={run="13iaipg8n1njzbnd8s622irizd4cc1cbkyc735mplvwq10q2jxqq";doc="148l1xq42avnf5gz1sqjcdprnkcbgsii3fm1jiamx18175zygsdc";source="023jc6v2l580x2d480x11z6rlknjjvx8g3qkcrvdi778h5m5bb94";}; -emptypage-18064={run="10h1mlhk0841wgc70hp51jnah14si7rf2mwpkp8lfc1xr7jwwvi8";doc="00l43lhrr246hiwa717b72rc4ignqd3kljkw6ka3l8z1nzbcbni6";source="16nzgkvl9gqsnhx38dp71c3cz5rrgm73n99g2vg7rapg0vb623xi";}; -emulateapj-28469={run="11yv57sv6ys3g8h2ix5xjnjrbnyfvcma4i7vzdsj160rzi12n06v";doc="15zm7jqpk917l1r2qfkqdkbsxa2q7w4640h9115v4jis0zwgj0s9";}; -enctex-34957={run="02a26lzlkkw3dabxci7w77117n2bagsdk5rlcn4cps45xdbjqikj";doc="068qh474lirr3yzh8ggpavqsmzdv5yvlc1i93f5cx49cd9j7dm0w";}; -encxvlna-34087={run="165xjggnbpc9baj9xbdkxzxsb9gdsxffmakffw0gzp82acxgfwsv";doc="0jc0wlhmc7f1vrabzk6ql62iian2n8s32r2crq34w2cjglmf69xj";}; -endfloat-57090={run="1vqy4ii3dz79ffpjc5n234z9v0lqpkq93vla0lbq0791h71gv53d";doc="0y3hkihs6pc0g835nk21qj8v3g27f6rrvadwmvqkhchvgh02bwnl";source="0mdr1ga2p1ikbcs0zzznb1c89n8shrha87qm49sgzbj4d0f2gdbx";}; -endheads-43750={run="15dkd3ky14phrc9cndisa88vbmcp48wly8l27k4wvbbd0221rxwr";doc="0yp1rm4ly2005mw488yscrgc0y8awsis83wwcfh3qh8rcgm8jzhy";source="0578fyav3h5wz40c12r3rqzbsba7vqvk0r5jlw6wymk2m9n9n5np";}; -endiagram-34486={run="0vgyl6rbgrq0jslb5k1796hlnzxjpavl5ab6vj6zizinr2rvh0dc";doc="1gz8ri82sx9nn2adb7sv434im46cb0ld9r4j9fz07kqn6gxzzr2j";}; -endnotes-53319={run="0hm5mwxdvxhj9v51y88g6mm5fs9p2kaksmhps032cbc1inn5asj6";doc="0354v4klgz5yn1v9hkk3zpvv3x1l4b6jzla7iwxpnk9qb0bvfh4g";}; -endnotes-hy-54758={run="194n7n7xcjpsxijzsjpgsxrpshilki0ixkwlbn6hxd92jjq7amz7";doc="1mj4lfvn86676s3sv0v3hx07cjb4mm3j3i3swwzxg0i48acpch52";source="1qhf4zzhk7kf0wcpacl82przkcf7g8z6jwirrzlwd39876jmhbwk";}; -endnotesj-47703={run="1rjraz5m7zqyj1j7c640ngxv7i73d03xh5wsmcaakc10h36n3pyr";doc="1sss0shcnz2knzghjqw41s17v0bs7dfcmg6x566fdwdm4mdg4dkv";}; -endofproofwd-55643={run="1dz3kfsjalq9419l9sdjws5bjisy8pmy93my8m8acdf3d4ryr11x";doc="1m5wq64v14cz4i29smnw742ak6sraxq9rzwcqkg40vgzsss73lxc";}; -engpron-16558={run="1jxk1j23v2c2ffqp9x948gkjkqvifp9lhd1wlp2nhmr4k0k3pgmq";doc="1j580xz1jgw088xah57zv8mrn3wgm6xipj1jf3c0rxyd3fkkk29v";source="0gg46lfqprs6jr2dgpa1c882wz9k8jjzrs281npy8hk4hhqgrg0y";}; -engrec-15878={run="18qzqg4i4f2dcpqdw4zs9lk8cxlxxn01wbh8a275wiaqj5fi7hzn";doc="038a925h1047a8wnwm54mmyq12332waxx8nbrg9m3pacr45hwmgy";source="0x32a3cgh7pidln750qbwxl7bkzcjwj4brxbqmhyfydnhzw1xzar";}; -engtlc-28571={run="14lz7dw8wgksbihdvga2yyqa3qxbs382s5pzrfycx9z7503dfy0w";doc="04lv0x4psfpivxfx5asf40pn0d80cwfwc1pwl21jxihdvc6jhihf";}; -enigma-29802={run="0cl7a0xh9y1lg55wdkj03n3ayyb0853nad04fpgjla6z9c9l1lrm";doc="1cnbi0n8pw2m8xvxk51j4rlyvj112cdz5zjhc9n8znj25iva8in1";}; -enotez-61490={run="1nxn52jbgxp2r1zlyp3hmr0k5kwilmf8fkr46scnh9w1ijxxmmp8";doc="1jw2mbyz3xnshrb031b6xzycqckpn422rc1ddrdj7r2j5lzy7l2n";}; -enumitem-51423={run="0hp6sk3i0a1jwwvlr0lk4w75fc57c2fvqw9x5ir8db049380ixyp";doc="1byxv6d9g38fhd83f4g23yqha8nvr5iv6lv97w40jn58i492dyrq";}; -enumitem-zref-21472={run="1isvqbp7wvib81r0yn7sngxa2dygkfm4jn4rdvw0kp8rknam91qh";doc="12ffsw4mzwg8gnw264kvc9gpxcmrhda5pwfyml2ih50g1dj6fwv0";source="02y3rlxcsdmafy4n4iiaz2j3syg5x7bzwzfvfk87xxg0n3bvahl6";}; -envbig-15878={run="1szn3ngy2iwzbc9y5fpchr5vpx5alr908q8bfg94lylmb8lx2kb2";doc="1y778gc6wl11afjjv2szypc8jf1g7gg2s0lvhv2skl1n3wpb3x7a";}; -environ-56615={run="0in2a7ar0c6ji7qhrbgp4bglcr2cmb9imxch8fcrwkims4g3vjp3";doc="1pb6nmprhz3j9dx2h7sw0y66y1qlvhkjl3ip28bxa133fgqab148";source="1jkbi2g2s13rngwqvr435i9n94ycnzp9xa8szik0nnmj482ah2hn";}; -envlab-61937={run="0q84vy7zbjqrrvy0r2j2hpbg9b5vwbwk860q24azms2zxy50a8vd";doc="16fnyfvvixp6lfgvz32w92q35s21c92556qxbgpcd94fd1pw2bki";source="1fygp7wpyzhzh070sa61qk17h05rqr4m1wqp78vpp0awgkmdji56";}; -eolang-69868={run="0hwp6yq1zw4hilh8zygcm8dc74mnr5hhn2x4gi6q2b6p43pqkip1";doc="193rv7lfnmfhbfpaw8ayz0di2iq83i5479wgca12zdcin54hhi97";source="1gqsl2b3aw485d2g7sblr9wi28sfq7by3y0kcj0pf9rpzzw6m7nn";}; -epigrafica-17210={run="1kawqgy9kbr535q1v84kk29q2fwhg6yzmgjd5i7dyg06cy0g6rci";doc="06ichmfivx1v2y67f5nxx02v75wzci6m3hhg87kc4qik61yp8lgw";}; -epigram-20513={run="1zps5067mgi7xq3fpjvjln8i0rz53j7qn660khraq8ribv4glnpf";}; -epigraph-54857={run="1lb4wzjcag59dcfvizvng9s47v3x2af6v62hc1x3ck3fqzx9haa4";doc="1h13sgi2bxknx2m5kxxlv9p4fxf1pxh1zdwm98h3kamzb4a4gm81";source="0kqfrmx732m0a6k21iiq1ar47ff50ri3f5wy8ib6ssbbvd9agx4l";}; -epigraph-keys-61719={run="0p4m2z9v0ckjncy5mpfs85nzpzzi9lx30a4dh6rjkhgmnk574n6m";doc="0gd3mcw13r3245dmd3fsgyww30f4anwff6vj14xsy75zcs9k0ywy";}; -epiolmec-15878={run="0wn2pi3n9ls945i4v3x36kgg34sqhi1x4az5gq6lbvviin4lnrvf";doc="1j9n7g9z2wbbq04wh2x0cxx7m4zggh1scblwrx9g69sd8r0b7582";source="0qairwq1jfl5jrkrwlblmsc9gb34wpanz61zmsawz94yf3plwxxs";}; -eplain-64721={run="1nix31pjj4licp1145dk4vpbz5zsfiwabmj5jzgxvx883wbkwrnm";doc="1b9w6gj4656bj0q622w75ar7a40qf6s8bsr4nfjb6a53nh8ga6n3";source="1kncsw127i87d7cq1wz3nhsghq9nf0h3dwxhmdbki96wskgw8bgl";}; -epsdice-15878={run="02i2fv7c0kxg9d96k8gwcvm56vd4rjkndc68k1x2wa19f1ymsmi4";doc="1cxrwbnrfg161ddc707msjya678fvvmvgsrrigdzmqrngpi7vh61";source="0nj3d8nqc8x41lmqmicqf67wc4wirg0q0djzi0nbk77g2m1qjs0l";}; -epsf-21461={run="1i973a2hp5ms1lzgf3g2b73j34xymak9f8wz88fqczcvdfnnag2g";doc="0d6jhhvw882kq9l2a4vrfrnxxvkidfjkmp3zm7kj1ir8mk9qvva2";}; -epsf-dvipdfmx-35575={run="1p0syahj7liknn447lb83p2rdv8xazpgabk39rjxga05pfn3csh5";doc="192x6cg0dh0j9dknwb320g73hid9px635p79idr33x2zq3gaaw4r";}; -epsincl-29349={run="0cmjwns5hnlqi1rk6py4s07kbgflm046pycpr1lr5c1dacmiycxj";doc="06cyyhnphdxigpq4bkg28rx8h9kgmb3ywpbdak6v6ivvlksxgnaa";}; -epslatex-fr-19440={doc="1xs9977g9g3i6sipkf7i9jdl8sdm69ci3161a4p7k66qbizi7zvb";}; -epspdf-66115={run="1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm";doc="038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z";}; -epspdfconversion-18703={run="0arf6kmziarh1sgani0bnp2jm8psxj937hrkaslfj8fm2s46gcmz";doc="1xpj5lymdh9w2ary36sx66ib0hwbjfbbhhcipdq4nkikq7a8zmpg";}; -epstopdf-68301={run="0rqfnd8x45m923lr4fwysxk3icgnpmzrdj2w0gif0dg4m1d8sggs";doc="1kjqzi001nxbrikxvc9l3fpc0pz7zhmknqghwd8423flym610vv9";}; -epstopdf-pkg-53546={run="1bd7bkkk5hbp0bfzrvjpmfrrvil9i2pzmzl7aaa324q7w4f1w67k";doc="1lwv6av0b4v4vzzk3i27diw42hcdqzgvis1fk4fclkyqz7w0ai4d";source="1qmvc299bzgfrf31sa4027rgkq3yjg57318mbx4gl4cwznxr7zh0";}; -eq-pin2corr-59477={run="10wrhqr55r45azk4z840wphwsfcm6mamzafijqgldi2g90cp0hsf";doc="0ii5dnaw1lplccp18gjkixxsygacz44r834r0vaxfkjmcbx858yw";source="0l6p9bwaszyzj794vvyw3xq8nfaypxb04ixf25wniyg3kr54a9nv";}; -eqell-22931={run="0i0n1vb43vq2axghik3sbs2cja2fi78jl0q5xcrkbn5gr6vi49md";doc="044bm3jyll74jrxh8va8g38shjn3b7wzchjq39n4rjp3238wirsm";}; -eqexpl-63629={run="0d97dysvgyk2cr2w9xaq5ipgkx3i33jq5x4mak8pq65bgbpl5dhx";doc="1nkg2qp7lg282rpf1ds5gm43gnnylwf4df3ziikssjf9pnamp7pw";}; -eqlist-32257={run="1cxas8g683y4i22rdakgji1r282mivmnap2l0b80rv3adg3ccvrl";doc="11lbz2s5v35w13vvcf2bs4y59hsdd0haai1244jqswyfxgamybgg";source="1lw20i1iqb0lxqpv2g7dw62ff4xd8w8k4y2ccpqmsb987sk223d0";}; -eqnalign-43278={run="0214pwf689rj7ycjzrafkhpj1rrn74h043vryihyscci03lf46fs";doc="128yh629nnxn2ca799s9zxbvbp0zam1lrz8nciinfbb10m8igwv9";source="0pdzvs4hyyxr229jlcw7766qd4npasc676hf74nx0msxwm5iq2yr";}; -eqname-20678={run="1qryjgmn2cw2indmmybgzrcrakqi6a3crvdcyvj769mciz8lsdwy";}; -eqnarray-20641={run="13vm2xqfm36a1fpljchnmjnl6m4fia8x5bia0h0yxh7yw740vbzv";doc="05vh8d0yyqhn7d45ykrql4dbn07f8yh4jmr6qmx1mkhyiz44c9x6";source="109ds6zn3nl17kb4z6m1xpa5ds2iwqaxqbf5jmw54547wv34havy";}; -eqnnumwarn-45511={run="1mv50r9g43si8kmdmf3kgcjmw10kzipq67ssd3vllja4pn9yzmz6";doc="1ypvd357npccz8vbbq8ss92cmxphq16isvw4ax0ppgxp2bh7cr4g";}; -eqparbox-45215={run="1bg49m7nzw20g2g51g07d7sgq0sjiisrbaq4ca31qbybr2rxcp12";doc="0z86nwj06zn55gk32wwlxbqfb12a1fcgqizrpagm7yp0xr99b8wm";source="1ny9mcnb76yds4l7q35wdm0x2vzia80aaqr12idybkzi75a7b2yp";}; -erdc-15878={run="02sf80cadhv7if8arbjcsgqkb0hhdrlpq6izqgcai6vb7xsc6niy";doc="0nv1yqxjmp4mfksmxm373pmy3zzbfcfvi683dalpslzq2qyz20yv";source="1vpghcpm9a2pvi3plh7pjki7sna3hkzvq2xj9gzmhqxcpw3jskwx";}; -erewhon-63312={run="1nw8y88z39wm0f312a8r0hwmdy85nynrpq8k78l1iabq9i03316h";doc="0wp19ficxpgay4bbs1hg3yrxmy2hlslgyawa03naaxpy1jysx8pw";}; -erewhon-math-70336={run="15yd3rjhv52kplikvmp6fax8im2250lb15s9hh61c4f4a7i79pia";doc="1yxzf17irczchn6chiyp0hkllq849ivlb7b7g17g61b6gwz0jd1j";}; -errata-42428={run="0hp8pls350swslim7m3cpnw23v94vnqj9avfvx9hq0bgl99szc5c";doc="0h30iip57km31074cya5fyhlmyamix8anpk19rqbsfb43h3988g8";source="00bdq20dwwmq0nw3c271ah0bclzkzkwbr5ak4y9asnab1g6fl5yw";}; -erw-l3-61799={run="0klwkq6x58bhqgc849yv68vg7w8ivvzib8rl84ipf3gl1hk42761";doc="0qkg31gi4jhgvc3i42cbj00ccavwrxfmygngn8qxfgmsphx3a41z";source="08lh56xzj3wjh1dp72ky8ckga8k73d3alf0vxjkwb6b6krzz4gm9";}; -es-tex-faq-15878={doc="0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd";}; -esami-67707={run="143pdgx8lscxhpbh87pwg57m01pcmax0h46g6f3cqixcdvfh0qp9";doc="146jgm694cvw7wn15q1p2ghzspb1hlr5hxv1ddb89mgkgviqx3iy";}; -esdiff-21385={run="0p5d89r6pzsf0hzaky89843pa4z2n4dgq3yg8li4gb5m2b4fjfkg";doc="0jw4rhkshni47zdk18b3gd4amyhh6v9a1mgja58wmp2vrwv1nn2f";source="0iwkbkmkl31wmdrd1wapd94p70mwd45lqld3b7pfb0j287nzkzl6";}; -esieecv-59638={run="19vmccxpv3dp1ysicrj5sr6xrsqgaaz9109q3gf79gdvcfp0g7lm";doc="0ji6pf8b2c3ka17n4qgnykfwhy7nh3zp87cg913j3rah0zk6fqzw";source="0r10sipb7hd5dpzsh97qiqb5adx5j6iw2aly49f1w0l8pxi0fyyn";}; -esindex-52342={run="1vxdlbqc3j33gdvy04pifd0cdfvnjwmpqbmz305g79733hvlbw55";doc="059y8wnnzqn1kfy5jhbpk8zi4lgx7r5s6xg6b7x3iih1ccdyhwma";}; -esint-52240={run="1i9bmx7sk3fzzdb1ny4a9b3sq9mjjk2x78gk18y77rxq16d2bjnr";doc="1sdklwvw46yj8xbli4yl6qqp5jdm9a32fkspk72p5186swwkwnc9";source="0j4ms51a3qzk7mrc9vh5psk83jxnlh5xa8vq36y9iihha0d6rz6x";}; -esint-type1-15878={run="0nfvka430084h72w0gdlvbxxlay9lp5z76bckmr5vd1vqi4jz8kn";doc="0lp2hc76adxdl44nn4g8hb19cflndzg9ir004di3wggh6s2yx40a";}; -esk-18115={run="007jcqvxp41h0ky25mgn2k3qdvyiyr3vj9mn6ml1zsvy1ymxq4dj";doc="075wb7q7z5idhqh39isvkacpgacfcv966af904yk9ralin5fwbr0";source="022n8rh8rwn9y4yx1rqpdynw2lpm8npwd45y88r2q29qcd9f62qb";}; -eskd-15878={run="0cpaix3x3qw5mgaim5574pc39hypi42kmk7yvnbvf3qj5bv7jkyz";doc="1zwpxmr721b3ij4b4zvkncddy85d9s9ma7llajp36qh4vl0bc0cf";source="1kfyrzs1swin4ph70ifm1mnsm77dprd96rsw228liq1cybn5bgii";}; -eskdx-29235={run="0h11378qh1y4c4ac3vd9pcl93a09kpsh0vyqcg7mfn01dgmqfam1";doc="19bcl4szagigbd2jrlz60vhhphm86667chciwlk05k6hkflg595w";}; -eso-pic-67001={run="1j340mj5ccfb5z28dcgs76jv05yv2vkfqxszzkd2xg4jkzpy0479";doc="11qlj80gnfqw496r5xa6fg34cmp6sf33k1drg4cpq23y9slrwd24";source="1gh64sql402fcg5k6w19pkx4n3g1aviw006yp1zdaa3wqnl1skly";}; -esrelation-37236={run="1gjwrnd63bb66vy7f74alxshcr5pqz8g8q178wkgyrm37xql6kni";doc="1nnwpgjy0mzc2h7sp2igqwain2nz6374qn4mjvj6g8x02lkc1hsa";source="0aqb63mzvx5hl178kmy6aawyv5ri8favficfjjmkpq3d4hgnrwl8";}; -esstix-22426={run="1qqs88wpabdx0y92md1w8klmk7ncbpm2jqmi0j5sj1c2cn82mp1a";doc="1zzbwvv8lbd27cxafj6qc5sml4r44ymrdvaqn2h966alzga9ify2";}; -estcpmm-17335={run="1v027r6j4vxxvdccq83irjdj1gf6kzy5i9jb1bhsv7c2gdf3ihyx";doc="03q3z9if5hswrr086zi907xmjaijh266l5g9a140q0fivjai4hcx";source="1qb1v30ijky1xhh5dahgprp3fhxfm6kvlxgb059429idvm5ap90g";}; -esvect-32098={run="0fgcy91ypllj3i706znwwzri36ja2ca2inx838q08zbs8gqq4zah";doc="00xpfzzhyrh5p563faa7ks0vrrc08ndcpn72a72jmlhk8y8bn7sb";source="1han75c642d3qmr47ppn11f7q1lnz8lcwj3q39nh1f81vi2w6li8";}; -etaremune-15878={run="1l3xz9zh5f3wj3v3mvq9xk4q6vc7k01pq3ivsvm0qlkni4bffyja";doc="16v4vsd7dzihnx72bdz99994kpw6r5im659hm51w5wyh8gf8mp29";source="18rcvjpyks01d6qkq61rmngmwwyxksh4i5dmnvq8ihx4vj3zlgqx";}; -etbb-69098={run="14rrzb8c1i58iypi7f1wsj9xp2x93s37s030zbl7xj8aw9j5w4mf";doc="0vqrl9i8mr02qb12czy09x9vrch6nbng04618h9ampxs1m40sha3";}; -etdipa-36354={doc="1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz";}; -etex-70496={run="1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8";doc="1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn";}; -etex-pkg-41784={run="01aa6bn8d46ql8aw8kg9k2c3x611jpd5hx3h6g2fqb2lvjqnr1zp";doc="1hcir648vyypvqa8r710mj9qldir9yp2lq7biv3s9w1vl2ssw18d";}; -etexcmds-53171={run="0m0kf57wcmy50qcca2v5jb8z4h7z82pja82igmf6gsm7fksm3wrb";doc="0grl3svqzjh5bdg4jwzmqaxz7chkqka0vn0hnjwpyvm52ngmckyk";source="1s7avnnlr4g8xjdfmkm82aanz0k0cnhv2dyar30439x2indyw68c";}; -etextools-20694={run="04x0a0wy3avac8cgjgq7npiy06b0vrkxa0hizpn4vkzv7xbq79yd";doc="0z04a5f4c1xygqsgkss4bh0s41aqv0i61sh6x9h0isrqlhbvrzs5";source="1f0jr38lbsrdjxhihxks57y6xw37ghgmydcq48ll14nywx07qa2l";}; -ethiop-15878={run="0h1h286nq6f2bplxxkpdg8mr70ip92c7mkj9lakxzcwacsj849xy";doc="1aqgl8hvapg3p0f3knpirlgnifpkpw4jb22zncp1s26jqjc9wdcr";source="1cc66b7ad2kfs4whzbnqdzfswn32y8h19bj3ad20ia24dggir5mv";}; -ethiop-t1-15878={run="1xbkh7xx71d19ghwfq8bhjnf7jmapm13hp2gr6ggzavcmzf12ffz";doc="1lafizx606kv455bhf125hl2xqhndd5mblkd0zyvqgyir9bawcd9";}; -etl-60998={run="0cg7ppbc7nlgmcnri2iz2is8c5kj03jn0crw4m5wmxvqkkcg2217";doc="0jqpybirslqyk7g9g27qbbvz3k02m2k352fxl2w1p0h7hhgk12a2";source="1z244p46j7hkzry4n1xdbzcszjgwrlxd2jmjblbrldj2ba9sq9nd";}; -etoc-69343={run="1kvwyy0wxwwfkbmsh7v5kdvcb9sx7ywzcv5cx5nmv0sh92ah5dgh";doc="1lh8pfcj2iixm9r31cawfs7vpg8gd4kgjcj9yyqx0i2fksd1gs0g";source="0clv4cllb4nfchvc4zb8k25wzlhl4k5hnijl3071sq8aldiaqj7b";}; -etoolbox-56554={run="1g944zizyl05qz6lq1k13hv9952r97gc1i7is9s5fckz664075jl";doc="05c3kvfwvbg4bxf3wza5rdvh98mnxadf818rsklxa5g2lz44jm76";}; -etoolbox-de-21906={doc="1vchha7ymvj51jfnvl76rxv466lzfpxr6xcvwafxhi78w4bk9yry";}; -etoolbox-generic-68513={run="0w0mmw2f2lry84jfx617saj29nkc620vkrkg1kmnnxvvxqi7jd9a";doc="0l7kbicibm8c6p5yspyr1y8aqh5d3bswa9h58787r4hcj4pr2hc1";}; -etsvthor-48186={run="19iza3bimr7xxbajmq50iqd6cc1h82kz2lixwphn9568d5k5vjm1";doc="13cijd5cx7sks5jdy67hp1a08f4y223l0hxd3w7ljnvd5azzyc1f";}; -euclideangeometry-67608={run="1pa69p2p6a4v8wz3m32xd7vy1km9zksszj7zjyqw36gfcpk5sxlb";doc="1d6340xmamzrcsi31i0vifjxhy42ml7v3s6r1r9v6vzimh1iz5bi";source="1l8xc044kcac6344v21dfysc6la90vv822mvik984zcnkbhxy4jc";}; -euenc-19795={run="0lh0k5g6icbbzl1xzzcj4sw7vjhqpn59y9xbc6cn58klpww8ywdh";doc="0likhzn8afsq302aiyjk6adhjimz0naqffjrj2s06c6681z2inh1";source="0bwr4cabh3w4jbx476ygxv6afxj6sblszr47awr2nixx0m018ndj";}; -euflag-55265={run="168c6y6rivahj6cw377l54jsykpxaxvv3nbmr80w19d90h4sqa5l";doc="1a65rasxx88bkz3bg51bmzdbq67yphljaa8mgkp2b69fjsifm229";source="09g2gn9ci11dca9s8bgdrjaprzb66vb47ssfnj6n061glz9a244z";}; -eukdate-15878={run="17r61096angayvbdi9r3d7ljb1a5z9q9r093kpgdsi11ahcgsr26";doc="0071bi5m6v5ak6g5pxjxzq5y5353mpdjx4f2dbznkmfd23wp8j7d";source="1p6vg8nj8qipj59jwvp4izf2dv0l8490773h6j87wlclnnnlh2gq";}; -euler-42428={run="0f63sy9zs0myb76wqgzww48g7clq6ni9kwnrfjkyyc4lacvd36in";doc="1rl4bxzlmw95pgcf7va9gsrgz89602a9pqvhiym15b5hdwc5cb07";source="0fy3dx3bf8idddxsj29yqd7bsv7cyyg8q9njmb3p0mw7laqrkjxl";}; -euler-math-70335={run="0iyn5pmk031v5z21l2mmrl2c6fs4g2dcp5zrs5h3cv285jrpa1dn";doc="12w9inmaxw5skyw2jmhhxqfxvzsf6z7dfajifj5lj9388890pdgk";}; -eulerpx-63967={run="1ls9b076rc73cbc160ms7df3w5m0x840y7s2mg3wk22vgc461ail";doc="0qwhb6wxm8fviqi5kdy1lcplarijhca0ymrqnxfnrz38z3v4xycs";}; -eulervm-15878={run="1x0zgqw15r5z9mf4pcpnf1bdbwbpwbc49ij7gjrhf9jzzlkwraf8";doc="1bbd7f4dz3xp7ylgpi2wh9jf8nz4z6i2cvphfx53xvg555ln5v1m";source="1if22m5h8ma3bvrlp4jzzhjm410r5r7r2ij17prycj3cpj4r2nl7";}; -euro-22191={run="02kkwf4psrmp7n5mqyrc3745kj82p3nxswad9x8rw1hd7a278y3n";doc="1ajqx7axgqpmbq4kl2gmk97ibwbijqsq6z8ln71qla61j0mkgj32";source="1hkzjy4vmvh06pk8bhkpz09ln5jygvyhwzyznqkrzffay3i89cll";}; -euro-ce-25714={run="00ypq57ri9vkmc85c5l5qzq098has90qllm9lnv4jd73l1my7pmc";doc="03pcwrjrjp74s2xl7pahpr76dls17x76xvhck9izgsr29j6kny4d";}; -europasscv-56829={run="06vqrnfzcq04mjk38q75n1k1dw3ap7z5xnzpjmgss8rl6mjn4v3d";doc="032298ir415l36gakqalg5n1nk70c47xbm2svvg1ygb32sgn4afp";}; -europecv-69661={run="1d6p38swfpphw04zzf6a0rdr6xmz3rrc2gsy2gbd06hjmcymc7jb";doc="0s133vzwnp6jxbpmk0mdiaycr4q8x0xh6ismm38qhfb2zy62pp9a";}; -eurosym-17265={run="1bf4vwygyakr999k95ki53fykknizakz9npz2i1h3r5ci805l7z4";doc="0vmh23f3ksc3b3hym7iv7m8rsddk8vdbqr5ib49bjqylppvxrsnz";}; -euxm-54074={run="10dqknqlqrga9m2lgd74zx5hk4qcbkfvlzjgr304p94w3k7pclqc";}; -evangelion-jfm-69751={run="1gp0j3ysa05fhlfblaf1fznmirfvkbzdy9wc158vs1lsbs0dc1lc";doc="050bczdbp45i4qv0wp1qjvl53q10zwdz6av2v518mmg2qxrcvmwq";source="1fdq93a124am4l6bl35zb8804fhi7p263fwsd73lpyfvvh95rz7y";}; -everyhook-35675={run="11r4932kly5zmksmicapqxndqw4cdq1sg2x9hgffms6v8m5cwkfs";doc="1g9p36ki26vqdfiwnr77jxk1bna7733dml5k4s8nxq1drsklwqwn";source="0hv04cn2j7sf6032jxv18py368zbpp4ya15wv18qymbk6yv5najs";}; -everypage-56694={run="1i8fjcbk3flywzd55y0cbsdmzymvkynvgc5cvv6yh5y6nr514rjd";doc="13drphjv7gzgdzzwd6fxlngm2rprhls60gj4lz1v69sqifymnn4h";source="0vdi8yd0r33ajnym0f3j42ajkc2xs8b5yn3kmklmgx19kpc93ln5";}; -everysel-57489={run="090nizak865w2mgrflmz91kc0b2zmc6fq0xxrlpz68xwb214lzwx";doc="0bhqpzw5dpgq3842jbba9y21yj1808nxrg50339lx7b8vc5d2i8y";source="0aibvqmg2n26dici3adi849a5k20ck68v25vx1bz2f15q4gggd6g";}; -everyshi-57001={run="0y738zcqy85ww3mhwgrj1qh0vgpwfh2ib676wlr514xglvmp9l3n";doc="0ynjq4ibx6rr0qh5lajb5n9skqa3j4zyi533mxc10axp5zpxsjkx";source="0iqxf73n3l1jf32x571rw5wqwvz7nj3bvyqzgizvfpbnavqhrxfb";}; -exam-67600={run="027v4pscys8rmrrrz7m2plc9blf0bif3rjykfhw597rmnmgmhxcz";doc="1cwcz5c0lcil552ryqnwsm9p278nd172p7d8s4jwg3xdzbbgmni6";}; -exam-lite-65754={run="092wb5wjk452i252g4chnjzxysmbhy30q4cxir32mx54z41yf0dj";doc="197mlnayyzgr9v4yf3w6m72k8fqavdy4k2q1c0v7slsvqad320f6";}; -exam-n-64674={run="0j4bi7j167fkaz57wfav9ybv5b5f18ql0gscvdxyf9vh1czk83n9";doc="17jj5s75fs0sxpak8ywd6lmss3iq290316mr5gyxm3v7r26ji8ii";source="1lvcxbdwy7xxjwzbxzrykym96j1qa7caqkdqhhx4qxdry9czpl43";}; -exam-randomizechoices-61719={run="13dqgkh1isrg0z97z7bfd2b952sc2xr7w7ykllhvmzicr9gcml1y";doc="078cryxhlnwk0k01pwypmdkkjlna0fn70kj1xia17jq2xvc2fpcd";}; -exam-zh-69920={run="0a2w0swarm2lav45w9v72bv7gakqnz2h5fp8895sg7jmbm53bzvr";doc="1ia5nrldj26rcjhypvyqmqqz9fs9bni3birx24qdng652s11k48l";}; -examdesign-15878={run="0y9kqiihidv24553zlijr6fspbayvram1mqgy9kmd1wwskvbza3w";doc="0ddgn0f086qdsyssg4gm6ynlcnnsd16qpvn2g3wzija7ai5sqkig";source="0z5539hv1li9vw0d3jx7q9s844f29wi9xr5z30hvzl3721rnkvzg";}; -example-33398={run="06ld0b9gi8s7y6igijylfvj2qvj3d45z2ml9wd1zfzkpf32pghmy";}; -examplep-55265={run="1a3pdaqzc9jx2yf66vmjg9r4w07b8afyqijl21np6sf7rrsn7zg8";doc="06jqa848zzswd5pbfrvr9lh3i4l5h8wf3v9g179g3q2yb4dmvjwv";}; -examz-67303={run="1vhk3kvmlsj2kcz0ccf3g3a9z5h6ds41dpwhjd1k3iyy6mrb69r5";doc="0vqm75k7xqi40gy116h3rjhlyjybzsmrpnlgmsx8qykll04y4vql";source="0lnr2s33z95gzyw4vjz6jgyhqcgbwyq1lz8rz5wzafbf87mdkigx";}; -exceltex-26313={run="1075b0wm708wj537pgki1hvj58l0pfrdiglalbjnk3gmf18rk22d";doc="1s48mcj49j9jm8vs5nhvljb972vhfng09xvd6kiw01a7i4zpw3h1";}; -excludeonly-17262={run="0zfml40br991mijcmplxlff2lzkn8fdgwgxcam7vnr23kag7lzxm";doc="0argzz7nwadm11qp642r454w8p0swyhvscic71fhwi47n69cfbgz";}; -exercise-35417={run="18f7mgc2lmm1lg13dm858nqsqzga52sw0r6zlz7f0pv5hpc0mgak";doc="1y50izz1z2s52knqn9a1jianq36isyafviv0yxqqx6zdfckqca0p";source="0lpslsk9a7dx5xzr5iif1prvrn399j70wfcqhgbypz970zzpril7";}; -exercisebank-50448={run="1algypm3nhkbccd9k1w5qr6y75hqiinw5dj1h4fbmripmhdwircs";doc="0szpxkmx8qi3zpcrjzd1nzn7jcp30wf9nv8rp77x7rd2yd0sw0dy";}; -exercisepoints-49590={run="0vr2yxqx2ng1f9qybapz61146lvsniv6mjwl1yfxk10qyvdw3pnv";doc="17kz9fyd7cc4pa4j6dsm8h5zpwfr68wg3ndbswgh2pgwwvf63777";}; -exercises-55188={run="1yvdj03hr40732swfsg2br9f4wx9855n7a3whlqjdnczp6545lvi";doc="137g1gvwfxm3gid5xvikrqk0iw75csrkqgrwmh0hda28dd4zbdwg";source="1lryxm36phhp7p269zzf9a200k9k0v8zw8qyqvyk784vmvyilv7z";}; -exesheet-69885={run="1fsavlg9j9xi2j81djhg77k10a1ag7aq8k3ykv53v8yn4s8n2gym";doc="0awa3sb3wxspvd3mvyvva92iwgrsb1qydh3sdafmnd5b4m0nncys";source="09zhns0ndza7jgmjgzmr4a3h3rrh5wshi2ssb8sfkr10bf1xl2v1";}; -exframe-53911={run="0sc11jk94l0nmjjd69k6nl7j68szdkihim194pdxlyiybwqf9bbh";doc="02s61k5lpjw121cyxkkhlbm5d6wv0gl009abkjbidpgxbnd5yl4z";source="19y20l5g814cvn9z0axpkynxp0vwkay782dmn05g6a6qzjb49i0j";}; -exp-testopt-15878={run="0g7q4ccfamsd7sr7wb0qsw74dnwiyz0rjrniaxm5jvgaadiinc7q";doc="18i2ym0da8vp3xxy5q2gaykvja3dga4l64q9zjxknkm50vj6dj23";source="1xfp15q94icdq773ivdvk4n47i2k3g3y9smdvmxw5m9f35nayypl";}; -expdlist-15878={run="09yhcdbx3n7gj3g2v2yh4navgdf5ik4x281h51kd1lzdzbbnf3aa";doc="1qgwn2ignri6wh67wwjsqpbk28jch01m8fn0nw6lpc6kfa4a9g6v";source="1m8dww4i5w0hivs904v8ls1dhs35vp3qpbb44ihwha0zsbvghabk";}; -expex-44499={run="1vdbsxn85gkg24rx3qhkwcc658zjyhkymfspysxkxmmb8rn42y8n";doc="1mgq1knfx1lf0vr32wa2r6v0sr49m0xjnsdy0y42zngfi1mizp20";}; -expex-acro-68046={run="0hdbjdkqsi6nw99g3rqvpd242mag8k7ggl6bb0wj99nzfq9f43sl";doc="0ilsi8ddsn7crc19qf22vwff2xc4lhpqhxpk6mb7id5fd7xpp0pm";source="03addcn3axfzl3i502clngi1bc5b4l5ndq335xh6x5h2566kjclc";}; -expex-glossonly-69923={run="1505m6spzvhxmyg5hv7wncd1izl1qzkn5sysfjpdykwwg2prjp4s";doc="138yihm7vp0m25l00i9q9gn85cpssnfn2n53v876bvlkss7kz765";}; -expkv-bundle-65623={run="1mw1cdl4phkm29yxb747whkkd81g9a3sbbnkhzgskbna2zcjj0l4";doc="0cwydrq8k5z6j62wizgg6n1n8r0h0vi4ijky59vvz8f7b95j2xz0";source="0cv1r3daz5lscdqyjgmy6xj00b4i280bg1c93b2kd9x3svv179mg";}; -export-27206={run="0la9v2m3n15hgds8mmp1c56dz0a7iqygjk2qnd99n5924n187wyd";doc="0ipbs7rdwjp6jrr4drgcs73mc8fy6bav24qfda1an7byglgcf2nm";source="1q3xbj3zicbizadihwb6b75c4d95b6wq0adi45wbqf6hzj05bd5x";}; -expose-expl3-dunkerque-2019-54451={doc="0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y";}; -expressg-29349={run="1hcrzh5xhvzhf7d9gfqfxj7bi89ds5rxa8m6al12mdr5qpffzzkb";doc="0kla1swvhd43xcvns17wlcvq33wvjidhkqnd4i587x9mdn69s8bv";source="07w45g2nbldwnbrbrmdq9pwi3xbi6cl2mqxaiyk78jfgr033rmqf";}; -exsheets-67300={run="1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa";doc="1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q";}; -exsol-69343={run="0w51rxp4lw5v1xmhp26bqalarp05x1ynpskbgb2ci7b3g1xcnm0g";doc="1hjvmd9rjd5vb4d7794iii26yl394plf3ajihp7mpmwbzjz14w6b";source="1837xcdlwxnw8944c787b4yqlb2bi2sijx0nnr3vfvidpwsa7ys4";}; -extarrows-54400={run="151qmfsqqj516ky9j4wbzh1618r769b1bqn4rc5fh51p1s28k8f7";doc="1iw3750iikf6dc6kyid86r7kdzkpi1z4la4zlj63z26fczivif91";}; -exteps-19859={run="1pmipr1444l1yai8d9hhrncvimzb5scn80pqij2g90lz160962r0";doc="0ymkwhbl6r64pxhr95wdw10dvn6q95mkz1pwa1nb42sdcljizrsg";}; -extpfeil-16243={run="0n2j976a2607zsgf2cda5vljl497c1562rn7cih11h6vpx76jx9k";doc="0irjpxz1zk30myk0h1wjhzcxdpyqjfzxj0lx1nz56v4f157myn50";source="1yf2kcx73zp24wrjb59zd1f35809k52cdwym9xlf5fy32rh69y08";}; -extract-52117={run="0yfxyzmicqczvn6pc7ykakpm2hjsrsb243n1bs0crjsvacw29hb2";doc="0lkljkwf22vq88nj21ca023ysa0hmgcsh7a0xhk210ba01a9433f";source="1h06ji378l32a18nbf2plhk4q3vzihc541d0wkw80ik53m0frn0k";}; -extsizes-17263={run="1249x8lklry9ibil9crfvy2x3hk5afnc3g3khixqf54jcb29zpg8";doc="06a01bmilk7hqr2k9237i6x53f6wz4z4vhr8n0qc0i3j09n5i0ps";}; -facsimile-21328={run="0mfzqrn76b2nhz60rqjdr55s6i9fzw96ya74nncvdjjcvaqpjrjk";doc="1i3vv6a8r1mmkmpjwr66r0isha7s5ksp5cwgx3rj9sl3wfnywsfz";source="0icxnmiwmrjsp1lhhdkcgsjif1s396lkdxp73vz59afzhwdm6l0b";}; -factura-61697={run="18p09q5r4n04r3pr636zxbq2jp027knlzphd4zpns3d2szgw2j05";doc="19d5nsjxzghmk56l1v9ppr237ykdrgk7bql4cdr4d2rdvqbk4r19";source="0l77127yc8r4n0iyv4q3ilcs9hrfjn0y56rc805av4gdrgil9xgq";}; -facture-67538={run="1vfaj6hsjnd1cmgwrlj08bn9zr52zc1z9h1dpjq742gf8n2f9qfb";doc="1my5nlwdik253073yhcjbvqkgwcw5kvmg2fm2wladlgcq8qav96d";source="11nr4df4dywqaq1bk3vzjc6s9gd5kxdksicij2fmiqx4a5309ijc";}; -facture-belge-simple-sans-tva-67573={run="0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm";doc="10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq";}; -fadingimage-70610={run="0hyprvgg3f1bdm747v2c9aa7j1vcaxvawazs4srvmxqabyi05jbs";doc="1x8bgam221vspx8ikdmnx5qvfwv0jgfda05b5r16jajxirhbnvxq";}; -fail-fast-67543={run="069rv6yv525b9f0igkaax17kr3qyy1n82v018yidc57ig75h4vlh";doc="15qydfbhbdvkzrys4x3g3k2zpzjzah8yx7q1xxnc9p90rmlj6ch8";source="0ybn1365n7mkaf73sc667pw826n1pndrizn5svnx89ckzhni6s3h";}; -faktor-15878={run="078fxihxiy9bnszy2nj5ca8ys9hhhazkawwi7x2hzwfh3n4dyqz0";doc="1hj13l2g7za8n3bkxmg04npi5fnp4jv8viyym1076wify7hrwc73";source="1r8wksjr0q1nm118fzkn527lak31j3sjrbsahpdmvxfir7936njx";}; -familytree-63739={run="1a6hvncnjzrjb3bpikkjlmamnrsas5221hhxmlvfb8x05qxjxx7x";doc="05m6n4lzz0fc2hm011kyvnxnv93gl39jd1lx404xz0kjs0l94cp8";source="0g6i47agywjpqi2if893jpm045kwda3bhlm2afd6gpjynybpmhmp";}; -fancybox-18304={run="077xd75n1lpy5a4gdgk88p0ai2is5aj4lf2cfxn7nsyhdvc1y6gv";doc="1giimlw8zfksar2hwarpnhy2sd0jsdlxzfw6gz1lmdb8xmwkx2nz";}; -fancyhandout-46411={run="0fgyvrww1h79bvwf77h83p2lwff5b564gk8cjjnkp26zjpphah22";doc="0r5wzyw7z8gsm2k1y06h9gj5cfxnclawicxdjpq50dnb6233ac08";}; -fancyhdr-64977={run="0sh8j11p8za9rsskamad5av81827n8x1bdknfq2xzza5k15x8r1d";doc="034gij44l188s6cvmjn3gl6y7bz83ifqyz6cwyhd7pms6pajr41h";source="0mwa9c6a1rq84j522q18c1hg7j8x1h14aaqrjx7c92aw8r15c5r8";}; -fancyhdr-it-21912={doc="117826hd9zl15i8qf6d1pz2qz57l68a9nxqldxyk21acc29ifalr";}; -fancylabel-46736={run="0fyrhiknwb658rg4lkdkfb221yrvzfs5g2rmxfas69p6aambyv36";doc="0fpxag39xa2piybkb19fldg3ykwb26sg700jp8hy6kgb8afp4hrw";source="13hx2k4i8ji3a9kxd8j2j177l4d5asz79r9v707d8i8vkxcm1ild";}; -fancynum-15878={run="0vfis38yawys70hv4vrrnyy820dj89dqp38jbg199pbb8y0qf1kc";doc="01f7d3him9gcm7p8567ljamwrg2jl25xs7w6jm05l89dkcb34fdh";source="0cfm5da0gk4y8plad5khzhf9gjyayxmca67qpvdj296p86xxdi32";}; -fancypar-58895={run="1znfj0zw15g4n7rf3za61ixfy7k8vyv9nikkran9bvd0jmx6v4js";doc="1qdqw4283qv1i8njlvnds87pd1ssx239ycd985rbkkxyd0brrqa8";source="1y35cm7q0qa2szmkldv46203gagzxwz4cam7yzm13s78wyig6mcd";}; -fancyqr-64182={run="0r5f2cq5p2x2nrhgamcl4h7jc01z8lr0kpbvkalgnp4bkr2js42a";doc="0gl8kkf5bvls46hmcwpm3klnzc0rp7mp6cgn4fv33l60yi4vpwxk";}; -fancyref-15878={run="1ns9b3viqg45w3pmnh69fdrjc9p39pfnqwwsfl9nnx04pf8b0p8i";doc="07g7ynr4qjv5l8v71ymbhx3vf000g5qq63c4i8q0iq35gird9yac";source="1p5xd5a6lwv71hp1sx490qwqbjn720gc1fpkk2inmmq6h6vwgpdy";}; -fancyslides-36263={run="0hfa5jklvybgx9rji032rdmyh2qr63fkyanvvs0jmg1bkpqw7s03";doc="0nqqvkv9gsl3jp22rjkxrzklpz6dfmm3wy3mc9f15jv9iy2zlrr9";}; -fancytabs-41549={run="0yxr24fnjabfzhyvfj7nhn26cc7hi08byw7zzmky3nnynxnxc2p6";doc="0f9b7rvnz5syq5dghj426k9ypppjg4q9wzs8v3jl8af94xy7zrig";source="10p8hb18qrwp2dxsjybrawnlryl97k854l11c0327r39qiya61ns";}; -fancytooltips-68931={run="03b31bifjnl75hscp908x58r90zrp9hy8r4kf3lkygqvikh8f5bm";doc="1l6mp725xjmy6azgx2zwcqlp3vfvk7gvyhr0wwrnnklfcscyr1rz";source="0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0";}; -fancyvrb-69536={run="1xsazrr8rw8rwxq2bra6ypsv217r5rrzxhqrblncm5g2blp8x815";doc="025sy2x32w7h2dih36iza9v0lrbwpr9q2idiifdxjhs1clwx01rm";}; -fandol-37889={run="1l6h2brl2d6bnam6p6j0p1d2s13jnva5zkr1xr4sarzzxj6zlz2r";doc="01ax7za7wcr644ncpv3rpfvl2ndqlppqnjzbjp8y2d0hawc3k5m0";}; -fascicules-54080={run="0zlkjn8kg6vb58xp2xh7jwjk6dmk6knzqh8v7lrdbmzhw9j28vwb";doc="1jkhj04gpwcckp9zqanaa9zhplgs2a5xqnn2xf6ir6qifiv3403y";source="0d7crimrdcxlh8hd24qfwqnadxfjsfrfnjr4hx5rrj75mm946zmj";}; -fast-diagram-29264={run="13c2r5prb7dg05j0r4lkdz36v51zj6v5p2c7q22gfkbz1lj1s6s2";doc="1f3ghs0l6mj2q3iw74rjjb12y8151cccvhww13h4kzc30vacr3r2";}; -fbb-55728={run="101yfs3np0mlwgfhiz74jh2jngxnb395wkcm9fvpmrs4rp7wxx4l";doc="0b48vqwyhmygv70gsbiknmmysd8pz8m27pfj52zqzzb0kphibynl";}; -fbithesis-21340={run="0qzf6ch5b25qrhzflh8rwrljhlj87i6xaldnpj8j9iq83y1xh4jr";doc="0wvnm716qi0y54h95zlqr7m1q9dgmjnl9f0ghvjgm886hljq752z";source="02zmk6yx4v47ngd6ba6mjn1rnhm2w6p330rfz6nkq8shcky7sy72";}; -fbox-69041={run="1v7ycqbqlk80lbf5wag8vmyhwr1v4jjs8j7bzni4pm8yp4m0yjis";doc="075mws8pivd2nc045przgf5lmf5mpaw8gdyjlj3haqvpq0rf5mk9";}; -fbs-15878={run="18h6n8azrnk2qabv30kpa8gmj2ljkvx0nqs8qb9r8dxxnhng78ch";}; -fc-32796={run="0bw8ifh6sxgii5s3vx9d87m4rdfmifdvw70wmj2kwqzrij1ri568";doc="19p5r28fzw0i7kmvvv93hiw7cm3lkcsn2hdn90k8m7jwy758qrdd";}; -fcavtex-38074={run="1rnfrvbm4baslmmakf3s1n37razfzbc6d11b5yfhhdhskq2aci5c";doc="05ixrg17jwd315q5c52c4b8smcihj4rzrxjparrgfimivd85i3h6";}; -fcltxdoc-24500={run="0bnz5b9ibr3lh5qazdanlvvpp8d1h2apzkw61qxr6kg9ymmk2w68";doc="0dvr57jz38v5wflcjjp19rwjbisbzkdc91fji9s1yrv27drawijp";source="0k54q30f7qp40fh3clxyaa40xhsa28qyavn13km65s1hwvg4hg9g";}; -fcolumn-67729={run="11bqaca189j79cszypwmijw166v3j9pkm60y2c2wyraj4ss4d1k0";doc="034crw2fxf9m7a7zvsi2c7fafkqkhn8vfxc97dc7k74wrd5g3kwl";source="0dqcm83g989lkgjkb5q9s4d4284g5c2y36y75iyq4jhdh2ca972z";}; -fdsymbol-61719={run="19kqkmjsi5kw5s6kkgf4y7nrwjhyd9pgq02y3f43wfdml9jwlvx1";doc="0ddy5d074fjmkvl3pm4akqfq7d3f57y09cfmrs5wfgvvb51gfcvp";source="18hiwralhdsp8sj8yr0c5pj4xmjaiyyha1y36sgca2xlacpw8ah3";}; -fduthesis-67231={run="1cysdwj1gl9zpxqqcb563x7ssvc4y6g96cn3afbjk5hhw8381h1x";doc="0w1dyxcyxjpdbmxrv23xlrhg21kq2wf1r85dkdaw3hs76800baqb";source="0spm9cz58xa2fi86zcbs4qp4zxcdvaq1ll41bmp7mkykr369j2k7";}; -featpost-35346={run="1p8xb6kmfhhqvxcmgf4bkw60p1py2s1pyn54700zs8vlkbxlqy6f";doc="1hy7n0jfdidj3an25j0m5bbv2ks40iviwzwijlk6qqdll0k26z33";}; -fei-65352={run="02zypphy3s8z531zmvrdz2df0c6viyfnzfmn5hgc8js557z8iw3f";doc="1nimda4g0gsf7521ibmqmh5a9hfyyhdp28dpiqs0wq50ysl8phc8";source="0k5y72pwziakribc9m9yzm860pg1q222qarvrqxyjqchhlikcrhd";}; -fenetrecas-68779={run="1fx9kfgiiqkkfgj12x3yph2218az86h99r9idg7q5rkx9h04lzg0";doc="1qcg04kcvfmrgsza06fd2aam27ixwydis86f430cfli4x3c4c7ap";}; -fenixpar-24730={run="1l79py58dih05c4kjb8cngzs3bzpbhc72f4hnz2r7nfwmjp86c56";doc="0fbx9wms2n0ff1cdpfavqhjg56przd7hr515vh81g8jgnz68s24l";}; -fetamont-43812={run="08c8xjgam1fx3aa4ikx62jfh3f4bws0ngk428bqzbrd8q445c3jz";doc="1zlhg0wgchgkk6j8v23wd29hklpzb8q4p690pfswg3zakc0dcbgp";source="024bwgb36iz2ylwsfzz4wfgsyr9djdd0p23phadzmc8qzxqsslph";}; -fetchcls-45245={run="1pccfz68chmnbfi9qnrmdnyq5kvkq6ir5dl09jqbjlcw7hw82ka0";doc="0if19dgb2k75qhyka4jiijnl3msk8y8kj0fzhriarsicivwd47ds";source="1qb9ymkvbxmxlpcs3drcyk02bc372s0vhw6wwpig2bchb1hwdl44";}; -feupphdteses-30962={run="0sgg5wi5iylsz0y2495cajqdp8nzlsps3x7lzalx0qpjid91lij3";doc="0ish03jv00i0crfzhjh2l32cspk2r5ifysz5prd6fwhdrmwmvm93";}; -fewerfloatpages-58058={run="04903zr0lk50i88vywpbzpg908zkmy0w8vcfks55cmbfb2ja37qd";doc="16hb3xm2aszwlagzq9w3bi2hyanbss3s4f09sypg07dkilifdnv8";source="17rcaydy16vqnlgn76ijhjlv2jcnw962wrsssca8z8y6dfvy0aqs";}; -feyn-63945={run="1pd608v8wl7007rjmsykwabr1h8jjk1s78nbmq4a0541rj06yd0p";doc="1dkfi17i6lz464bwmr5r5295y1avvsn5rpdw4cv80rd20lvhnyyp";source="1vh6kz22gpmch2rdlvhplvqqd03vd0mn5m0a123i3xfbka1myza7";}; -feynmf-17259={run="14bl9c8yz1z596281kysyyjbf727pi6mdnwag6gfqs1nsinq0a2i";doc="1ql099wrlddb4fyfrsirx0vnhcbh0wgwp9yixhvgxfk5pbah8v8n";source="0f9ghmp0hcmzadsfljfq7pinn69251dwhcdk4n62jrd07qdgqsyl";}; -feynmp-auto-30223={run="1yhvcxiq6ajjmlsvnznzvp35sap1qsnj54zv70dwpl29rkrgrmsp";doc="1y1pwlplkz2z7lqz84ay7ch1lw4plh4n69isqzsvhilnr31fkf0a";source="0ja5yqs9szyk4s2mk9cbjf6p98dagwk7pycma84y48kinkl96s0s";}; -ffcode-69706={run="1i06si85nn49yj64nkcja4r2zfnli29wi3z6rm4cd2j6zaljj41m";doc="1rcjnxrzmg3vpdwg3fxf7r6w8cagh2v7ll49r0y3i0jxaiyyv10r";source="1cxg43iaaz6czqf4wmfxh3hdbpl8v2v94c2wggbfx993v6awil7r";}; -ffslides-38895={run="1mpfpawdhh16rl6pnvxnkj95gf9hjs49gj7cwfyngmqkjc2idi8j";doc="0z5kpim798zxj20p70dpcgmwg4vx9mb0zrmq620sprxxdr2gd059";}; -fge-68353={run="1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f";doc="1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3";source="119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8";}; -fgruler-63721={run="1x0pqrwwbwf7qi64wlcg8d73sf5r59jcqhhm3l30qk1ymfwirzvm";doc="0mva3jv63prks2la2g9sqza2ng59bg9g5xkgg4flamk0409bmd4p";source="1if9sbrln3jsc965xn9njllnn56dl5y4v2krn76hyxsk1vyza45k";}; -fifinddo-info-29349={doc="15zp4xvszy07cy1b5r3k5x256lbalr5acrrdj1gx33llfmvm469a";source="02pmj7a9hx4xnfjbhwg273a3wx4449542rs7rxkii4hk78xs5lwr";}; -fifo-stack-33288={run="14d714q6mzpag5rcn2b2454pad3mpvdz6ii8k7jdvx74ay24zphv";doc="0pgvcyss7h1mynawdhpm8xid0albf5cajhz423ygz3ifi2dfrasx";source="03hkqd4s9dm2h10i8pw3a6qgrjskiyhnkp4wh9r55l60wnqm80bc";}; -fig4latex-26313={run="1bq3hj1gnc1g70jvrrvxsg1lkxrdnj81h08qr7hqwlwll37qlha6";doc="0ddaikx7qphb98xc3nswyv01d0xh5g4vf95fqsnbhg811c83jpk4";}; -figbas-28943={run="1bgpchwgj10609ld6i4my2b6ynzlhqrfqi10g7pbqjaypyzbjs6h";doc="0ncmqsdvhssd1v77m0jhx48fk6ssxq5yggd29dd7k3jrypaf3bck";}; -figbib-19388={run="1lxg05j9c56rrinl5gc4y7sc4r9gc5gyq59d3yxq4ggmq9q9l3dw";doc="16qbipciqc6vv5hg1fm9rda4kk7x827nlmzha8c9i3dz7gy0cnan";}; -figchild-62945={run="0k72116mhd9z9psbnrncmn8x4svhyaf8b4738qxb808i81ba97kv";doc="02xr6kq4mrs9cacn2sczf6ys2mhwy5lpzz3lbklx1na3fbkm6aaz";}; -figflow-21462={run="1w2wccxfjbas2yyp8sscxfb875kz3mwqjlma46v4328sd9vw4pwc";doc="0nkdz047vypv0b47wbin7nz3cbcriv89w05d6yn26wvq5svlxgw9";}; -figput-63957={run="1hvxp65c2y7852fj2v5b4m3bq4197m564y6gzin2hddbd1w003vf";doc="129jyybg92ddy5i6gg0f28ij0qxx59p8h2l4y9gb154rdmqa2bld";}; -figsize-18784={run="1hb2fck0pz1gz6vm0ffpzn3vcm7lclagsi599bi2f2bc9ly2372p";doc="1zdncnl8nmkazvqjyamzgj1x1f5fm3kyw5m5fi669rk9dqhsiq69";}; -filecontents-66740={run="051s23ymbjkv8z2d7sv8jsjljy5w2sh1mgvynlbkib390gpgybh3";doc="13fwkv2fvdfl1jgyfg4pn9il6w6pn3islc9zsaqs3bwzj25y16rs";source="1x5ahz0fsmnjx7bvbr83316r6w80gnp83yznnhxnj0zg42s2gfxa";}; -filecontentsdef-52208={run="0lrdmz5fnmrlzga1w2hr3ksydnz52lmqlnnmix7xrcp81qv9xmx0";doc="1nxb4wm4wd223f9wn7x8j805ybximrk0v6n1l56xysz4k30jxcba";source="0n7zq8plqn1yki6azmncgdlg2lxcprfpdq5dv0qnxvpvw5dawdvp";}; -filedate-29529={run="03fwpi529pp6bqwr37ns8nas236nhh7nm592rpjyrvlyv1w30ifp";doc="1dywknjhl2p9590nvcpg1vi8r0iaj52dv7sn8c2y8337w37c6ny9";source="0fwqs6wqw93ih2icg9b5zxgya1zbaj2sn0jd3dc8b8dm59cwggk1";}; -filehook-64822={run="0h0k0fgdwzm50jz0ibj7zsv1sk355q13x1djc3pk4fg1f3czhfh2";doc="00l8hx1sn4sn1mqpyiz9isl5a25a4a64nifq6q2jlw09df9gmf9m";source="0bd6fhrzy6bh42yb44y4bh01zpx92crca8zia4lyjmc95rlv6gfa";}; -fileinfo-28421={run="0x922migfx9y1nqqs9lv4ygk3cvqj88a92cj1kb9xkgykp8c6cqx";doc="0rw1pdrqghgdwzyfrc0y44cj1989lrvpab4n42qxbbb9srhmary4";source="0kssla41sryd278w12syrhsi5aalld94vjcmddldcc0l8l71sz5f";}; -filemod-64967={run="05lipahmxgd7cy76rz1j3p2z4k31gj4q7ihvb0zbi44g4n26hz6v";doc="138481q84a436a9ns587qcmmsv7p9fb5wzz1gwla25jigx8fb4fr";}; -finbib-15878={run="1dr1ivhfb83ky3q82dzzv5vvc8bl84iq7am0p1rc8fjlbj95i4wm";}; -findhyph-47444={run="0b7qqz0p0l70r6dl4jhx086dxywb0vlln3r166pj0yl5jfjzhpna";doc="0n7cpjxz3adj4bcmc1vd548lggcchhqfahdcvn4w9invw296hhlc";}; -fink-24329={run="1pk9qp2cbc1yagrgnjz6rnldn6zgcb6bw3vi452ks4fwic4pgwz8";doc="19fnaw32vgjpj991n5nlb0hwac92kmny3zc483wffbhbca1nkdck";source="1dm06hhp311xjfjjjpw66hmm52yivjhgkpwpif25cvq1z8dfgw2h";}; -finstrut-21719={run="148pca47nggxv9dyg5n0p40ri1mqz5chj4ir49472w62c8zh83fk";doc="1jrxyksw0bldvf5faykbpcngjfx06y83q81rs3k3m6vldm3rw23d";source="179640qn5swml0wrc1glvbf94ia5y6s1qlyf3hf2vmr3vih7k2mh";}; -fira-64422={run="182wpm6dkhs41y6kr4bjc4rpy0b62d17r0j60a23znfgglpriy3f";doc="07wm5kca97r39shhymnwiarsxn0i5ykycyd28shqyqmmmk6f2j33";}; -firamath-56672={run="1d9l5nsx0qswn1hcalzsrxkvc7mvpdqk3h72bfk50h91lfm2i567";doc="1w6zlskvs54x192nyxa83qnlqhvq98g64k5fv6ch406nkivifmgz";}; -firamath-otf-68233={run="0680qh4drixmrvhv3klkflz0jml06x8k9inl2c8ym6a8adqx43nj";doc="10ynw2ckqc7vsv5hq9kv78cvn6yd23qfbyv5060sjxl91w6qxs63";}; -first-latex-doc-15878={doc="13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss";}; -firstaid-70324={run="0sfar5v1pflaazw7yl9i43f6cd9bz8manmgynlww5wnw2chh2yxj";doc="0fmigcz19xazkxkqii0lghfy8clp8m880gg7lgm6bv6kfn5hsz4q";source="0kaf6555c3f9cy1fb5clm1ziw0kwgjqcysxnbmbzfhq23j41c370";}; -fistrum-66461={run="1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f";doc="1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng";source="048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl";}; -fitbox-50088={run="0jk46rrq01bbqkwfqf1rdrzwv475mdmz4hqvbffkivnbwj1vz18g";doc="0gb5gpdrdagilxsklq1aijr5zfl5n82nwal1h9qls0iqzjvgizka";source="039q5as7939zc5nby6m6piz5h0zphm19hqjkdyrgzw1q4r9ypzc6";}; -fitch-69160={run="1c6myhpv9ix6cr6snn5f9ky2z5caam1sqjgg0bq1bj8df3acdv80";doc="1gdgmviy8pqqwwsvinrb8qsgsd4gw6bx6xci56w4nmfal729r6g4";}; -fithesis-70536={run="0giyqhz2r2dnxxnvliwcj2mlm53ll452zqg18hisyq8z9yv7v0as";doc="10i2mp1ijf8q3dzgpva0b6b3h8025i2h5hl0vv6rmvv4yn7hnpay";source="1bazgc6p24ahsiv68g104qglahivx5s42gva0xhqnzcmimnazk7b";}; -fix2col-38770={run="14n020dmfn2s54h5xvc9lrynijcwnj3d2w4kg2w52v0kf037hmln";doc="089pdfpk0bi23yb7grjv4w1agkssfczwvv2vhk3piy43qpk9h09v";source="0wi711gb3bc5pc2kb7q2hz8y09g4phjxggrqjbl6i432z42fc061";}; -fixcmex-51825={run="063a2mwh75mdbh8syvrdldb7cj4iyvqkbkda4jm6cq3nwbq9kly0";doc="1c9q5srhfil0wnk84k072ridssgwbmzpskk6pwpaq8id36dydvlm";source="1h3xrdz9anb2cxr8p175rrcjvaawv80cj3bp9l6bcpli6yb6fdfr";}; -fixdif-66606={run="1gxz7bv0h2485pwrs7b0zhjcafkgzd1r0ikpjjw0gh4iqc3bcqd0";doc="06f5mkpp6aar6c569pwd9952xgzjdy3zx8n8y6y9a6wfflyh3cis";source="166zj8nmapwqkd06ksvjbjajq649amjrfji9z9j9mbcg865pgwa2";}; -fixfoot-17131={run="1zszczpwcggczq428ha84g71rvgml2zrx2v74nmk1damcp35pzlv";doc="07zdbq43l9yddc9gi4i2qqpvz0xxmkhxgg3wl329j25p4h58amra";}; -fixjfm-63967={run="1v4gn6bwlb294sxrqgy6j9vx2dp7plbagkvmw7vbvp6wk8dkza72";doc="0wiihlpjzvmh8dynf0nbhmn8raxflqxmzpk97s1qv7kkvpc79sy9";}; -fixlatvian-21631={run="1qm1jj803a7zgqbjn4q4sg4mn3pvd600pfkqabjvp0ck24r1pw1p";doc="160bb2khxfhl4g48a5cbj8xdxslgxvav1c0wiq3w1ajla278qj28";source="1zfdr8kahxgkhxzg925lgls50prcgyp6hz1vhis1241f9rd6r3qs";}; -fixltxhyph-25832={run="1lvr7r5adw566q0hbvmmvmh7igcm8asl0ispd3lflik886ycmmlr";doc="0yfa6a6dvzx2jjy1jcw7phps4wxz3ysfhk5mxc65qss9kmc94mwq";source="0ksb42pc0bm64pgszgph6g0rnksd9fhb48z97bnd9jcsg5rhzi12";}; -fixmath-64648={run="1513gzvwpddwhbaiaw2jw4qs0c4bbiym0dmcc88vzypqsbnjs13l";doc="17y6wwiq3b8l2p3nsfwm50g7lzip8aqls5ysgr4gvz1l8aydl26z";source="0pzyg8k41rlj5gvqq86i9jnys9plqbxb3qvas8fv7k5kvqc43riq";}; -fixme-63708={run="167003w7a4xhy35fj6xm7mx1hvqn1bh1b563sih3adrwyrdnqjbd";doc="03qddrr56q77h8qhrx9kryx1d0cab6lzcngsbmyzaj1g81hvwsxl";source="01rpq9xd8rhy4fz8g1l6354pyibjsl90h591w7l7cz7v0yxldy17";}; -fixmetodonotes-30168={run="1pca7qpkqfd8506jcjgr1kwcymbcljzvsq47xlvvly3qzac374vv";doc="0icin53y7xj0dddsi90n3hkd2wrcpymlyhfllyqfz7ac8y4xn8r2";source="0aphhsamc6x1k891ybxhnqmhiwh0my9sj90x3w22gp7zhavgrww1";}; -fixpdfmag-15878={run="0s5ilsmnhvi57x9cqwp7nwpagfribmgkbl0z1ci55aw2a6bff9hn";}; -fiziko-61944={run="16r25wagw155fnz5lngc3jqxaf5sy1f2mbyzdklnizaazh2vbfdf";doc="0pdnd0h3hkdw32m4yjmqj14ijg3qix8ajjxkhvi88h3pbwd0wjiy";}; -fjodor-53207={run="0gnmdc2i49529hniklcyqrfyrkfh83wbv9zmiqngw8hqmdw3zv68";doc="0dag2ial9cx9hnrhxc40nb31jvkv618jklwahgj6ckqfl89410i8";}; -flabels-17272={run="1aawdjmk8rinhjwnkjz67bq7rcp15i15dsbb9xll59nij849ppjg";doc="1yzlhd6c5b9y1r1gy7kvbrxygrkia0cz98p496nj1kdg1wr1xzbl";source="1vyjgbn2kihvzf85fg4fdg0v46nh0flic1amk7k3sdcxirn0fzvb";}; -flacards-19440={run="1k1h06a22jc8wdcxf1066rn4sfgy4m3wh479f4by1zrp773gykzl";doc="11hadqdf0s7zaidaxfhd6lqhl3qf7zkalf9wimi3j3plp8ln5499";}; -flagderiv-15878={run="1rnnj84vl29061hnbayz5sxp6h1civl9c9w2n3b0s56i9kxv3dd6";doc="0djwrp2rjyyd0wk0sg55w2l75fwj3gabd6bim1smpvjwsps0fcd0";source="1q0g5127vyhkjb1g0v20kd0x3p0b67a9haich1a6yp71iikl1s8p";}; -flashcards-62104={run="1xih8g4znfwgd5cim1z63q4syg9jk8nz99q7fgc9mahzq7xym2mf";doc="17as1mkgllva5q92qddwzffl7dsirx22wlnxn12yvv6a0h8hx57l";source="162r74jij0b8yf22xyvrakbrzfh7vjpfl1800ahljas7n8g3h1wi";}; -flashmovie-25768={run="01rmqf1rg5vbxzs9wap7m8d19fw73mh3k7min4msbipvg1vqhgi5";doc="1lza6mv55da69v8jwjlcd08v5y2gs2s87z5h1hrsp3p3mx3chya1";}; -flexipage-66614={run="1296cbg5kszwrq6ixkpzz4w4x0a7k77kf641v292awpf9sd0mzl3";doc="11s6ldawl1w8vpv6cvw05d9krjxv9921ilryh9ffwrrpzf4vgjmv";source="14ajajbl0xhjxl5zggjpip1b4grszdc2g63csgdy79bpiffpkl51";}; -flipbook-25584={run="15b2nzhpgj6018769ggajya6qmhq9rnyzha0sic9fff24jwdq62x";doc="0lf04giwsgjq0fsk6wrms4c3dg53v1lq3n0q1ij5pw4390llsqd3";}; -flippdf-56782={run="114xvv7sv9fhqxgfz5ckydn95mrg4049ml3kg6vjjiwbilmszr2h";doc="1fgk3g74arazrmw6swfyq38s5gdw8knnwwf5ij0dl566cwmcfvmj";source="0hbw3wgdva8vkic4sz0349mdyx8dpz3k5kk0fn80m0yqpldwgkid";}; -float-15878={run="08jb0v6lsyff09hid3whah0i0fk5znsik5rigl4l7vflnvc6km8y";doc="0pqj9qq5yprg0xfxga8ck1s2wyjzz4ymhpqgzhzbxbdslh475vg4";source="0774d7gmb8c7fc3f8yzarlx1m8nld1vg4gpd3dfyw5b39ra4aq4h";}; -floatbytocbasic-67945={run="0vykm4w2a4gjhjhrxr2x3vaan81yhnylpjx3z48cwspxixlnmf67";doc="12yyyc456v4i5dj7g3cnv03zgvwvsv6c24vfz7wn9jk5gv90vrwf";source="1gkq5v8z77cncqqz5cvzi78jf66v1kcni3yphzhykvd2mgpb917v";}; -floatflt-25540={run="15v2m2mchki2gcz0fcp3myyr806fqyy77nv9g6rqm11aqp6212bw";doc="1d7v1m23p47rl9lln02c6bsi5mkqi7c03dhmnjhg8bqp6xfkfmaj";source="1j53lkr1j3fp5wlb41x2vimncv2l1pc8qm7qy74i0r1xf7kfibzz";}; -floatrow-15878={run="177knmgpv583xajihdd5q5spaainn8h35kgydq2sfi6ch6cadirh";doc="0py5a36gdbsd91679k4chfxy6ykj2wkjqlg4zkp5xsww6fxglskx";source="1mpskdqhghmgh7i3425xb985pwrcqcbfw3hlfhbyx3bhwwx5pnqx";}; -floatrowbytocbasic-67946={run="1bxvfl7qk36znp2i8a704r5jsm2kljaiqyff6nsfji6v69wfgwwg";doc="01qaaddanpvl7v41v499r61m7b739qjjkwj5k9d08h28v5lrny0l";source="1jy49cv9kvcmhkyv8pi45fr1991dxfn7jqvq1i06v0adyprvw01m";}; -flowchart-36572={run="1b6gwbnd9xjcvjxgnl6xjq6lja1a0p2xnrdlbrhs6ka6f6pnrbl2";doc="06i32gmsqgvqgy0l0qbdjybnp4rmz2cn1c7zw76w3mhd9z220d77";source="14ikpr9fga193y2vgr5sisvzc5scf04b1xc9hcv6zmkcph8dvnnk";}; -flowfram-35291={run="1ccmry6f8danw6jqdsck7pzwjsrh5vcfy99f8kzyqcbbrzl5rn8h";doc="19rrav68s3wlwgaa4mhgqsdlr1syfpvp4jzc80cygi0fhv2hn7yi";source="1hrs58xhwawxqd96jb5hjywbfra6az2qkap0p5zap9zkck8ixz81";}; -fltpoint-56594={run="13zin0r1hcfihji2h33q039mpcf86lw2q017ss8848xpqs41fb0p";doc="1yr5d1hs3bdd20df25c1jyb0hcizwq7bxjbcn804b97sjk2fk8gp";source="19qy8da4ppsd1agh1c3xs9fxsl6z8c60lcyw4dd88mymk7yk4ysd";}; -fmp-15878={run="07ml6i8lqcz737fm33g95nx1hz1p0z251h7pgxvvvdmn5dml1l94";doc="13i7axi1s8qqgdvdky20dckmsa95q2q54z7cf6zgd0znzjy6d4mp";source="1fd8h6dndrc7hphs87y1lfplmkrwgn1pxgmvf00gfhgkg1zf127b";}; -fmtcount-53912={run="11d9pq2cqd1qv20wr5789bzmk0a82j4rf8y9xh4l6nf2nk9p5c3g";doc="09ikawga4sg27ch8rvdf9ni0k8b3nk3k84mgydlv4lrg5gb2hv12";source="0ijsl21nsx2kkgbcc00bzs637rq3x92ax0xbrdagkfvnrna0bg69";}; -fn2end-15878={run="0cj26s7555q49fi382pbvy65xa0yp0wbihk3y0magblyxjn72wdx";doc="1kafhgr4c9d4pjpydd27ha1pdbxk364qv8dmcr7k3l7xlv31jv4f";}; -fnbreak-66615={run="143wpqpcqaamjvg466cwpggcayxfqnf2vjvfvy7xwgky9sfql05q";doc="07h1xr1xgih5j8mmqvv6v5kavnb9yzrh94g0m42rjqdzg5c25fb6";source="0rxbjgb758x82gvjrmap30q4jsfq0424r3xszbm1f9b4wb48xqxd";}; -fncychap-20710={run="0x3sjslvz1gsrr8607q9r6k8683p9zcz7p0kxvr92j9ls1prl5c4";doc="0is37brbbdqb1szx3rwgmaqbl8vlqr82sy8svam39yrbnzd9v1k3";}; -fncylab-52090={run="13l9jmcwabifc7m9klgwl2gqypwlizy1mb7glsvp3jslpkhfj267";doc="11w7z5q433lnzfm4c72697f82yb7rljk9zq41dl5bdb7l9wd7325";}; -fnpara-25607={run="0rn4yk1zd4h2r5xhghv7v0ph0raspq4r6mw812hn80bn8rhjjrlq";doc="1w0pkqqgkq379nnqk0wx419z961l3g81ldkh8ivfhn9q5vk04p0s";}; -fnpct-62248={run="127n7966vy4rdwypbsczi1aksrf6pxl8xdywssviivkk3npmhwvs";doc="0qixawqmjn2b1yy0fs140a5wfq0py5bi58gpz8c8564vx29yva5q";}; -fnspe-45360={run="1w5ibha9cxychlvqrbj2v49kizc7hg14lhn1smky2m9ijqrrdwyn";doc="1ix8midc7hy8443fh3vkrl875h1v9hqfwmgjw750gdy9x7y06fmv";}; -fntproof-20638={run="1gq483namx453zg5yv7acvhy9hb93z68fyfb54ayqkka2n35q80h";doc="1qzxky8jjvnlznm11rjzgxmhib0psv7lfk3nfb8ys2wl0zjcrg2w";}; -fnumprint-29173={run="1i04c2j1jnw9qkbv92nd4rr0zzvwwdwwk0ya5f4g4rarvw9h4z5q";doc="1cwc4jv9jxxinradairp45rlr97h52vxghfxin6dwszw51ac8p7n";source="15d3jpxs8zgsj40xipg3mfgir41p46c3ppwh4629a1dv4skxg2nj";}; -foekfont-15878={run="1vb2j10j6ra47gyp5a7fpv3868b1rgk2w54w0cd8iczvshbzva88";doc="0yr9xzq9pxgaw14r6494162acj4yavyd7r123fabwf4dgj1xf46c";}; -foilhtml-61937={run="1qnh70h01ys26spbjcq71zdhq8j7lszinv26v6ikpccsaaxnfdl8";doc="09b3lmxzhfa1h7nwjvidq2pd11dkz4aq3l4ciz0xh7gyslfdwvgd";source="0zhva600hf43h01n9ycjcjair84y0wzpn00z6ihyh8s6g199g428";}; -foliono-58877={run="1k91x2yyxp7n1akm8wm4kgynl977gq7z6pf439aaij9r0zzic2pm";doc="0f92kpv6jvvmr9fh24c7iki37y8ph53n3ixi3qjk8bb55yldyz46";}; -fonetika-21326={run="0fmhazwrjh427g0hz8br5b05ccxv523n1ar5ib9hp3ndqh6svpgs";doc="06mbkp04rwpb2jg6kbq2bxdsagbwl3vajzh0nbq5bfg9lgdv14l0";}; -font-change-40403={run="0955bj8r9jzzyyzn3shs3y7iyaxjzs9m3b9l2b33hpd4qxzzp03r";doc="0khs319ifwl7gfkmv7y27ysqkadz04l7zvcjxn08qzmhsxhjpz6w";}; -font-change-xetex-40404={run="1xjxrpqfxll7wfkgm5ksjfavk7zr5a36qfjm5aw5a92wgqzpmbrp";doc="00ikhz2nafa2ck1j6vb564ij61lnqa64l9xnl4h7v12g11j0h2k1";}; -fontawesome-48145={run="1s1lkmpmb9fj4qmdhll2mn1hz8xk89z9rwga5zqpjb9was4vrg1y";doc="19xjkzn9vgx2sgv5sypwcmwyx9f7rg4q58f913rjwrh8gvncv07m";}; -fontawesome5-63207={run="02ip5czslh9120nrby3k9qn0niy8bryr4190yyhibnwkr9yaqj4k";doc="0mbqzjfdm9hpds1fragbhds1zzyk91xzfy4azzn8bmb6xr3ix3ai";}; -fontaxes-55920={run="1xm9a33imgfsj1r6ky6c02ir857ccv5llqgjyfh2rlvk9xprmcjx";doc="135xhw9vda8l3cc76ja8akfj33wfmmys9wf2f1j5n1p742zj0g3s";source="0mq9rmi02p8lnkg0a8s1bi7rn34dg82n9cqr14sjrhqfvpl3hzr3";}; -fontbook-23608={run="12dcha7gkyl4ycizd2469i628l8qvh1xzacg7bv7b55q0dip2hlb";doc="1ywxxp2ygc6xjrjsmq1ax4p9v0z3hpmbcgsnqm3vdnnda1c0gn33";source="04ny0n1wgs27ky6fpf0i8ivhkj6ypad537mlx7rz39kkjpl6mz96";}; -fontch-17859={run="09jpw4fc3kk2w1rxs0lm5sfvl8v12y9gch4viy6hva3sh3w8yzin";doc="18si3pz2crkyx075cfnz3ddwbgyccgvyxfzqd70njxqspz8xwf23";}; -fontinst-62517={run="1jqhfib1ml33wq292x9ff03shyjrn2b3grw44cxzxndg4vq7mn1l";doc="1138mrjd4lbwn05kksw1249ffjkdpxi88m8551wdmh6q2bnqmw6h";source="133myqzr4xlp4a3pw8ld815mpl7l9y6rhz620ja77sv4fmci76v0";}; -fontinstallationguide-59755={doc="1i6im0nckcr9fzs0kc54dvcj3jvjz2j8jd55xgjm0r569qjj1hi5";}; -fontmfizz-43546={run="1ccfywcywrrim1hk7g0kg0bljq034fh27qrr8w8ypcyjdnafkhxg";doc="1fcsrwbn8kiyw4032kkjg2668ax0kfcb6g4kzgp6bjcmqzy6q1zc";}; -fontname-64477={run="0ylpryn5wnjnf6acjl6kp67i0vl1dz59xk2xbxb0fqhx5ib1gdgy";doc="08vfa7n2bzjsay7b7zaigkq7imlfmq92f4firwc3rx9hfm7hjbn6";}; -fontools-69241={run="0smka2cr5al8f00hfcwpbwkddl7g2zcgg2jrak2j8p2ycibvfgaa";doc="1avxm73plf2p0xk0gh11311bfqbwlxdyvgx9hpg623ngyw90wkaq";}; -fonts-churchslavonic-67473={run="1s8y5kri1sjhsbz2mdszwy12vz8k0b5ad0rp383jrgcd710n3949";doc="05kgbvjj4w3sblsjprgq1gg0inrgrx0hpim8pmbgqj6w8xc1n9kq";}; -fonts-tlwg-60817={run="03fs5l62fbkz9rinnraz9zfz1byjd74xwvlfqcv4cvbxg02dpgmm";doc="0l4p30am56bblp120lcs81idahw3wrgmbrvi0jzfnvzsyd7xh068";source="06zw6amxdkmb9cdjvkvwgah5x33ksa9iigb4dcw6b9d3a0q8c8ya";}; -fontscale-70541={run="1cq9xb7gpg43cjcz4cnwg7ggj08rnfrkbz8w3gfsg4ayp6rjasgz";doc="1vbsymgcvq8qhf1dhk864zwaszv3ai1hqmyiwfcl832m86cd2w5z";}; -fontsetup-70135={run="0f9173hyb427v4dvimfs450rav3383c6s5v4gr3jfkmz9l5nxla9";doc="1lkw61hfd435dqcv44rczacci3fmmwbvkg99lhihbxjx51y4pbrn";}; -fontsize-60161={run="0614lcl1cxc7a6irrjinp5x1rx2cbzns0al7d9f3njyyayp13qhq";doc="1c6p4yz000rdcmjkn7pgz3ckw3p42xkz4clk5dz01fnxifmmlf1l";source="0lvywzrc56rfkkwipwhqahkm8a70cnff0r01rpl92d6n6znl278d";}; -fontspec-69880={run="175j2zf33y5lh44x87mgp2hhpw609131k99df4fqzq9qn2zxfmr9";doc="1qysx336dixj5m4wvjdjn196jmdp6ll1r2hp2kc7jfqwzi4qpjkl";source="0b5yambwga3fqlhbfjv6jk3lkxxj9c9fyxm3hxm8nzywhwlrncd8";}; -fonttable-44799={run="1vz99pfw4akid9hjf7dcqf1fx5h30sr25i1f9q6a9frk0wpwff72";doc="1inb0ai6q8rjsrcwgv8ns6as60ifdidqzqb8x9ygaw3j5ykzr02q";source="1qjilvy77072jpbdc4p4qfy5d4n2ww2wcm5drwvai6p2aclqf29x";}; -fontware-66186={doc="0ng27m6cz92aa52z99gnw5i8s8fbkxq4354mygwnchchgxndcba0";}; -fontwrap-15878={run="185mzghp8xckdq7z6cdwznrg1pswflvfy61bhsnpaxx8wagny1zk";doc="01knmxqj88g87ljvxmf8rr72i2gh9qdmx7zsbwyjmibiw71l6pcm";}; -footbib-17115={run="1vr72sl8q1ccql2p42v3a9qw01a50v1c1rxpgmz39pp65w4z8s1n";doc="1xyq88jcg6p7lc44n2ky7538r23d4n0nhfkq25q7xg0dh8whbm34";source="0ps56l6ah0i398f38bxy4yg2i1p0ajcwczxq222hl5176g2z28jb";}; -footmisc-69729={run="1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn";doc="0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1";source="193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf";}; -footmisx-42621={run="0f6csxzkwbf4nlw6z9rfyys1f7fc0vpdi2m36g7y3k9l3j6wb3mq";doc="1962sivh4jipsxd0z0cpzpd0jdw8v4afbpzfinklivnla2c9hp4g";source="09w5bfx94533q36z3k0a1sf9jx6acz85qgqypgn6b0b5mkhjsmar";}; -footnotebackref-27034={run="12vxch1i8x0k8d760vgq61i7j3kkylgbcxj6ggdv8wzd20h4izyc";doc="09dvvnjvika3617zx438ca8z3fmdkqbxx9y73pdhn6gaggfmzr72";}; -footnotehyper-60374={run="088mh736125609bliars0scv7v7bx315ajk801yj28vskg0ki5d0";doc="1dj6kpqar8bh0qk0qma2ckp68cll2ncllqfda4ffmc5ljmjp98m9";source="11dg59x87a8yjq8j413gk4p0bmpq8awwh50c6vs9rrcgv67mbycs";}; -footnoterange-66149={run="0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx";doc="0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2";source="09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3";}; -footnpag-15878={run="1qdl7lpfy5nn6qx026b9aqz8nfs958grh443lkqyxnrnws0n2nww";doc="006w2w6aga9zazlk8sv8maqi4s1rdzqyphp0lpa8qv5q23vcdhl6";source="1hh2754as2yrmfz4hiyyl8nlshsfdhpgpg3ifhs6h5s0xz947rw0";}; -forarray-15878={run="0cn062f805lgy5m45q6flxj5w6gjfa4w1ip7zmhxd2z09s962jf8";doc="1d6m425lfg1g8arjyz4j3q9253rdmfaabaasbpd2ynhjr1abfh3c";source="0dpqr0hff33ddfw6vs0pnk8yhaa4gxkxgn43qgx06mx1srv6rz1i";}; -foreign-27819={run="1hqmhy3l2hsjf2hkxhrsdc3z1mn3zx8718w90g8152x9k84bf7jw";doc="1gnaazl1ds76sqdpbj773k80isyf5hmjxh22p3hs9zxcpnvdhng7";source="1ziafjxcncsba0gbn1qjf2w2gn2g9z55bpcff71hr9axhp8xgpgf";}; -forest-57398={run="0q1xd07z1ccqrrfl3x0fg35sdv2kcyl6vgps7f6gpk5yp8j7d392";doc="1s9i1kxd5zhdqv5xx29kh8i5fis642hcw76ya5bh94qffhwwg7j3";source="1i6r6i8zh70zxz6sk0c9b07345vcfr9aapw8q5kzd3k76fzcqfdl";}; -forest-quickstart-55688={doc="1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk";}; -forloop-67017={run="0mqlc65g0khj1izxpgm7yya2klazsqggz2xx61ni38z7kqhqs58s";doc="11y7afy69dkp9rabj1186aw1d8vfwk3vp9raj0brknka6wlgcijc";source="0k0skv10m7z44d20v17yfdvg6vpn6m9ajn973d6da9cshxvszyiz";}; -formal-grammar-61955={run="044fz33qawb2s81c8walxiz0qjam7vsvsnsvqchmf4izd0svw998";doc="11rj5pbampim79ffipm7asn8q7nf8yy7l96j0j8xjyfxcqqld6ca";source="0xy21vgswxjr80q1qcx633g09qivgkd3i9gf0fwjmykva23q603z";}; -formation-latex-ul-70516={doc="1jpw01lsl5lialhk0n46v47ddb66wn6h8s3crrp06m0fldaaq84x";source="1vcchlg0dv2cmkjx16hbbzkvppva3mqxn03h6m38gg7q9w092bc9";}; -formlett-21480={run="1gjdgl26ma0sh15yrgi8kpy4sq268jkz9jmyw66iy3d4k9ybggsm";doc="1mm2m4qgiz0aplbyf3rwzhpfzhyg3mfmzc00z35kv6s5phcmlnf1";}; -forms16be-51305={run="140xh5578cpjn6mfwnghy38alz4av25gha09gl7c7qxljgpc2a7i";doc="0wa6pyn8l8d14d47kqvwvsnkv2s9mxfhmzan7jgzfrmkb74h7xlx";source="1l3ci86wl6an48a68vfh4ynajq6j3br8wbafm8w8c0x810hb141w";}; -formular-15878={run="16h5hf50ngqarcxk4gjs9x9mcycmj5cqwy5pb6ffpj9xbsxn4r8i";doc="19aq7sbghvrif72x7vzvabrhwj7lgsddsbdqbkv9vhmp82452vyy";source="1s8ngbw6s163dzj9mi629yd4fisxr1gl8w8i618my426szc1vrcx";}; -forum-64566={run="1jvw5w58v5npajvhs7dq0srgdqha9yqs6xy56fbk3lm8y0cgsx22";doc="0cihnv5c2if9dr5mz9iw12g1bfh118ib2an0sgigqcq6f4zp4nxh";}; -fouridx-32214={run="033f2yhslmm70byg4pkw64g976vgssc6yiizmh2f1chlfhsz1qhz";doc="1k6zirff9bqbz7assfrlq0r83bjqgzblgxix7697lmp6ww2rj4l8";source="0il905sqxqvqk0fgsns3yb9hjh740h69imykxd84p92fndaha5mn";}; -fourier-61937={run="183dsh8z5dh1q45qrpkas40ga2m4mbrgl727v0khqsxxim5vlzi8";doc="1zcr023w2hdk6y3x1d69nrwzsv3qd8ip63rwcksh69k4q35r9xkz";}; -fouriernc-29646={run="1vv4whd3axfacbmm8nksdc37d5zras4gwa6ykgw1svplqgg3zjk3";doc="128n1cnv9h1hr4s6bp3xs1v9p7skhxlfy8afslpay2bm0ixf0cs3";}; -fp-49719={run="07qzdfrk2y499cz9jbpnj024r43japqdngbxg4mbapw9cp8066d3";doc="1y1xwqf6mskg10h31ws2pvn5y6g9asflc7l9r24fp2fi4254mvhq";}; -fpl-54512={run="1jpbgs674zkjayx5xbg4ymnmygxcc15ysvr4cpz3abp333cqzjb4";doc="1860bzvxbajy3r5gpz6hwy0vib632fkdig2zcb51yy2qgg3vbal8";source="1fr7ydvn8ql0jhplkwxzrl5cppxbklg97nqb2rjigvmqqidjk0i3";}; -fragmaster-26313={run="1d59sjzlvygwq9b02gbrfra4cnvmygza80b5rkghhhpa0n3xnx9p";doc="0j1a2d4ssj3y42f0rsyhd7yl3pak9cz12fy16k2h8v02cvc96529";}; -fragments-15878={run="02m23bx1p090m6w1frb2k6m0cv6jk8d9fdbmjscwa7c9c55qh5gd";doc="11kj5gczbhb0imfsf30hc74s50iwq4zfs79j6kv62ib6v3p32mm5";}; -frame-18312={run="17r35x914f3h72drsszy74ir5phcxmkrcvwlrfd11li0lsmiyj62";doc="0888jcccsnlpzkynpg8mvxy2mnb2d3xz41bi341q9fdbbzs5lmnn";}; -framed-26789={run="0fp0zbq3bjfqx87zb01m5ffn8kw8044vkz8b9cfndz1ki64d9x4r";doc="1pjnqy8zl5zkadpkvwa35khwjk1nxg9pq0h1wqwgrdvqk6gj0cbi";}; -francais-bst-69866={run="13zc3d8ppb9p53gfdssqcswz5bp3pfacxdk0w3jznfznkwpz40pi";doc="07ya7r02x7vj1n7q5d9z520vdnlrq2384p0rk826g3mhi9372jna";source="0zbk98667mz8lpv89c31q8cblsqs54cjn8i3kg49pi9avb92848f";}; -frankenstein-15878={run="0zj1gcl4gab78qcs2rv5i9y4q234iz731x2hnab169ygql4d95i8";doc="0x1fp5xc2qlx0pac2vqm8567fdh8i97k25ixr28w7fzwl9xnm91x";source="0ag37z3klcy0jvcvvj7v14clx2dvv6q43lh6gw83rpsx51v9wza4";}; -frcursive-24559={run="063909r7iga0cirxq8qx538407qly4p2a440xq7c603fmgcb8n6k";doc="147sa2wcixanwrhdh3ns8fg447zh5f42z8x0aw41xhk7pxncqrml";}; -frederika2016-42157={run="1pi2bhbxw9xg78w6d6k4l6p1qnm4nh6m8k3bn76kv4ascydc9hfg";doc="1vyy278j376swl2sjwxygqm6mi6s51aa6qypgpw3w2g5kpsqqxqb";}; -freealign-69267={run="0b1b3laxjjjr45cagwakv8c50c3cmw5iycd76k94d9nxhgm346vf";doc="0pz47rbacyyqyh075fz6pfvjpi32fl859mckpi4v0kwr9yk6k5aa";}; -frege-27417={run="1n0qak8xsi8wlg7r2daszdvi3hv9gmp7i04phcnx4hnlr68842d9";doc="0hb7a6c0i0jk8cvv2vfr743ysqn2vh1y6amy7arc4zafi097nwly";}; -frenchmath-70163={run="03a7mq7qb0sv27ly8qaxm1fjmrc1z646las5f85rzp3hdzam6vvs";doc="1d1j2wq15kv8bsjbm5p4im6ixbdj3f24vh1a3b3a8419bsqq60hc";source="0vdh3g4dm3za19wjfbgy84pz3i33k3h17028nwa1wsgpnlnxn8i7";}; -frimurer-56704={run="0d2534172sqpzg4zj2fz0k1qa2m627jzqdnpgcak4fxighvx1733";doc="15g0293xz99w400l3rj99849va3swi2j8hcj522qiyzfcx5j7k74";source="0qxpdybwz0rp748rqfs026jvps026sffq3c7zi7bdy8a34mqmgsb";}; -frletter-15878={run="11gxmdwwzwwdlrmycdxi0y123hfikhp9jv1jjmhgsmsmmxsx13ly";doc="1pzpz0q1hplni18m6wkwrhknw15h555qfdxfnnfrnrmsa7n2q2bl";}; -frontespizio-24054={run="1rdgh6wvxk0rhkadcrb1f3ymgxn81vbx489z16k88wkk1p0r4749";doc="0mwdqry0h2f65vrki3kvqpjnf1nm5n9v3ljmn77nlvkarqp2kb57";source="1p2c8sdrm0ay9nz0dqrcjigzsjki15fry6mmhqcm3gqrcscsk5x2";}; -froufrou-67201={run="0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs";doc="1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh";source="0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i";}; -frpseudocode-56088={run="0ypiw6sfap27hpflbk0drnd412ylv9r307jbkkbhnm5lsmwaax2l";doc="1cf6424l655rykyfvca2yl0lwdifgj5kgvl0fvw9ikayf02wh3qg";}; -ftc-notebook-50043={run="07ng7dgbr1swsx0zwm831wijqjq4x6hnr02354jdy9z59k6d4lyg";doc="0w9jxcfvkpif1fyd4xgwbfba9b2sf77mqr9symwby31lxqwrbys6";}; -ftcap-17275={run="0dbrhynslppw5nrdvikzdkfvilzr909ypc9v8nxpa3yh4zln182d";doc="0iq7lq25gzyc85wpmr93a8ivgc9038rs80mvhm46zdrrixh5ry21";}; -ftnxtra-29652={run="07fazshsyqng62sfbnjhxglscw707jmn5lz1ws6avq8c5chs70pb";doc="0a100iy3imy2x6rgv8pgkid75ah21684ddm6vda58gv8yzfz9fyd";source="1ips0zm2cka9wh4474sc283102s6r9hvr4if7lhd04c92f40r3my";}; -fullblck-25434={run="1bxnzkidpszq5l2kfilrn8ny1gw680gcx9gz9975vylh5kissrmh";doc="0zj229qkv3zdf2gz6qkgblj33zdhf8zixy59gqm4v69ld491wvh1";source="0arshfc79aljbpfnnq5rhi7gc9sqhlx002xqg46wrq125cgdj13q";}; -fullminipage-34545={run="0zy9vk5a0bljq3my17fw4jl8rhd7vdzcmw550ps8zbjbhxphssrc";doc="1n9lzacq920lmc18rhavz17xnm92lm964pglf6j8i7yyj5aib61c";source="16q6f9nss1jx3pw1xq0j82y4gn70hdjaj9m7pq3947m6bkyz92vd";}; -fullwidth-24684={run="1kis1p158phkwxdfhpb4ihfs2w7wywj1lighc44sfkpima9c4nmx";doc="056k7w66rh0z1kxf1m91sbjhg8kdy9jvfkwm3jmi5mkclil5ihi9";}; -functan-15878={run="0vxwabhbnw3dlxzlqz4yi4l4iw17a0w7lj3gh2q4l3p9lhzr9qmp";doc="1jxx1inlzrbzm784zwkz55ykdqhn9ncz6cixs2wqh2sx1dih7cwn";source="1a2x71qhjdr2ayii65qivjmwmxzw6id3vljd8nv3l04xnp6p5dnq";}; -functional-69929={run="08j53y7lbrimnydmh5svmd3v4qs4sh7ir9ng8g7rzpl0rakzy2bd";doc="1wsqln5346ivbcpwzjhfilsgc90la1is2r159bqipg51jnlicg1b";}; -fundus-calligra-26018={run="1rnrqblg06qkwcy7f460pd1hnh4bwl47zyswa1iv4iknx00rd8a2";doc="0jvbvalqyj0kyf6cwr6zf18ylckh3fwpshwhmnv7ldg5r1ylia9j";source="14a0d7d8mlsw7qwpspqc2rmcdyhnfy6l7f57bk9v9jc8pg9fxb6m";}; -fundus-cyr-26019={run="02zz37h71nqq0f4sf00fiw80pq1q3yadnhqm2j3niz13gms9ydl2";}; -fundus-sueterlin-26030={run="1zpcss3lzhc9zkh8b91138ycwj8pihch318zr9pc6bl3ifq37wq1";doc="1pjka7j1378bqa32h0b2dcinf6ayjmzcbm4c1sdw6dsvrzbnda3f";source="1y4bg8r2hmpa38hdgkrk99v87cphikdb7sq5x9aczbmwwgmgw8fp";}; -fvextra-69001={run="1dxzwabx3zifcidp1hv56h0kd234jixjnblym2r4sqfw7lsdyjv6";doc="1wwpl4y3qcgg1k6ahg0w4rwxzr3qw0nv505dric5qpsvi1944fj5";source="1jh9y4w5c05vsqv1yvrbra9pkcz2j3bxqnqqxlnyv5m825k738bm";}; -fwlw-29803={run="1qwlknaljj8f1cpnln328az913cdwypr7w8m8iqbqiqhsl49siap";doc="1cib3id21xblai43gkn78ypz6n99vwzhzmpdifdm8wv001x7wb82";}; -g-brief-50415={run="0w0i9mqc5wg9za3n99i3fkn4bw78l8kf6glh0k6rvrzss0sg79cj";doc="1ikasv5w1xr5ms6836q1bnk7b87s24m15mnwsbdyf7cnsh267x6k";source="01j6zxs8vpiiimc10hhl93xcixwlzsih5k56n7v9a1a3czgymad6";}; -gaceta-15878={run="1yimj3mxyjj36ib4lfdh65sz5w71rlp41hhnzz84kgb5y103wpaj";doc="0vvadcqjj3hvjll9nqn3mam9ycas0zs810qi2jnq6smpm300c3l9";}; -galois-15878={run="1knks42bg72lj8nqdy2iyaqkq5a76yf4zxql24mwxq5fq5xv1vmx";doc="1nqhf3si1kljbr0s1sb22kq6nfrp9ycvm6smiyxbw5lyl3spqkxv";source="1rlgf9bv4rjkyifz3xvvkv6xnqxl0pl973mq0zqxaiqfkh0i5xwk";}; -gamebook-24714={run="0ccsyi63paf40lxphmb60k5xciw8v7vd1hqllgq84mry7igzb9np";doc="1c2m4009fralq8ahhczwfxhh1cmsdh0c5072yrirda46khd5wy91";source="1dk3fpg5038jv5bs7c2f82vll0bdd7c1jrajwhlfk1v16p2f5i1c";}; -gamebooklib-67772={run="1qk51f0a4z1frby7bv553rxrhg8xgfkxfnr4dbq3dg7mydzrl444";doc="1cix1yzasbqpghvp5smban4l16fc48zc8a8d9jjqgpb10l21a2rl";source="137a2hgcvmkgsd8kyzxlprr3d6v08xvdv3s049cg9lxazizm5g7k";}; -gammas-56403={run="1wcvzihv3xh52s3ydni4gs3lcp9icmxinqj6znwyy680izmw67ba";doc="1al5rvpfavkc1p7ayknxnrs4r7jzx7f7dbm3hayqwg0d7jdanp8r";}; -garamond-libre-64412={run="0cj6sla634vcp3ih7x4fg4iirckiizdggw8y5ddxyhszf1ygkz5q";doc="1q1iy0xifacs7w76x4pgcjx13hvj0wc5l42xzac2srbmx6x2n4sc";}; -garamond-math-61481={run="1bjskvaqq4glba1vmcksfx69p6r025sl8aynlbk46kh7x5fa6vj8";doc="1jb0kcy715fmxhbzg95qwilwnmp45znh37iisiny1dzy8919nlbh";}; -garrigues-15878={run="0qr2ak20416p5zlavcbihxkjvifzwj3cf03ipsnxlp4a0r3m0hgy";doc="03cx077kcvny07dkg9dpgvdb5vh4z7v0c80rn82vqj1l3i0qrxkn";}; -garuda-c90-60832={run="1yz7zpwdvvhzcsfcz4dc40nnaagwrsxvskc5bymmdxv1zf6m3npf";source="0palvrkdf8c8xhx9d2sxvch0lgycvn10bfszzwlbxw6qrbnpspr3";}; -gastex-69877={run="02mz7znvwjsxf6n1q1lfx1wgqvl0zlfq32a4xkcad7gjr87v16bl";doc="02ihbradpmzz8h7mm21nqvmma0qqsa4sp3yzf4ll09pp19i9zhh6";}; -gates-29803={run="1vxn3j957za9j6ryf3nhy5r744gr63m78xzvlh0z10sr0bpw46v9";doc="0igxfdxyiz280ryivffq6c7y84c16ip1av8wn11j6x62dcsrm58x";}; -gatherenum-67201={run="1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1";doc="0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx";source="05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06";}; -gauss-32934={run="0jsbvm7sh7bhs5yfl17fj1gbdqgpm7qchf07y3p7k0rxxg0f482z";doc="1f6ycdq3lpylkdwja4f89plz7wpnz73wzgjz74far6r9wr026443";}; -gb4e-19216={run="1mi8nwxa418wqp9w64ya1i0ag0pdm4cx08fkmaa302bkhym92bal";doc="0nzmhjqdhl0x29c70iqb8b96pjnx2vm94nk3xgid942pmx44skxb";}; -gbt7714-64633={run="1i9a732px7rrgq69czdqrvnchwwxzl7cmxm1pdnbkv6s2yaakgdl";doc="1ay59q9s8vq7bqvif314xjr34k9b9g4gk30w3wsy7k44ijs481k2";source="00qbmnsyv87q81m01lgflnypwvff7xbqfkf750pfdyd18g2r0x2d";}; -gcard-15878={run="1pcxw9mg6hadr5c6m4z3pdzs0b9jw22injdlk46xxhqy5gsafa7v";doc="03686fg2fw1k1j5rrskxpb0yjn2n5l697l66gww90jysq9546iag";}; -gchords-29803={run="130b2svqilpj14jl5slw11b9dqhq1nvdph6y3qcq71pgng5lhjjy";doc="10mbr14bjxcl4p42r0zsqag5sg8yzp1mpi0s7fq7i9197kg8i77b";}; -gcite-15878={run="0dl1plmbn4i5hzmjz48hyfl5wj819pg6k1kjsdycx4wi0d9ff2pr";doc="175151qpcykxsf1a6g9v6mkhr6m9cm5miw3ys6j5csrqm3vsl604";source="08h5kxah5q9105n1awlrmiy0zrl3rafb8v3nwp4qfakr83q3vf3k";}; -gckanbun-61719={run="0bf42j8ismm450431pqvqgwzd04xsr7qlhb9di867qdyiy6hbrpv";doc="1rpgm6jclifxzs4k5ybkn9pxsl60vl167jjhffg6d319g3miy7al";}; -gelasio-66805={run="05rr0vdiw9jd2qzasq22zfpg901l9jvighlhsgcpl2n3cfwa96i9";doc="1n8jyjs056m85h2n602h4gys6556k4h2lwyhck5wp4g7a27ri189";}; -gender-36464={run="0skwbiclrpl1n55dr3lkw86dvqy3f1n0b271ygsz6rr3qa43478r";doc="1gamaakkqqf37cwwzxjbyfhz25gdzayzdkqk60xls9flp7227hbr";source="1l5p8ib5lbvq2b8pizpwpbcv8aslmi8dd554win7ssd6vhgb68j1";}; -gene-logic-15878={run="0fxddiswkvfzbmcckl6mhyipxjlr0yf0579i792c6rvrqs5avyak";doc="1nd4bxrq1g1gxcrs9lvnakaivla37p218pa4ns6jyjmimfl31gxi";}; -genealogy-25112={run="0w15jrd6aycdjh8qznvm549kzwl15v2zvs7awgk96380nzcsmhqf";doc="08fxhib7wydjbd3bf24kw6zbbz2sv6fhgmg4q2c1lgxddmm8mpzy";}; -genealogy-profiles-69580={run="13371cbcx7lg3lkzzybp7vdlrkw5nd9v052d749jygsplqby8f9m";doc="1pvh2s76kpxs98l4yv59clijinjg5agmniaibl8srpwpgcdx5ni8";}; -genealogytree-66513={run="0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b";doc="0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60";}; -genmpage-15878={run="0fr4m2y3vfymlwk7ik7rymifyam2jhbxn3qr2sj40zbcr9wbah6n";doc="12fxwrz5gpswyf523wm1pg99zilkgrpq8z3ls5gw9j7bdb71nj1l";source="0q7acjs7g1xh5kcmrg20k9jayaf5vxz5p5amjjd4xj4rnb1wdlj1";}; -gensymb-64740={run="0rsck4ysx86d4gfr5a1w9kam98zzclb78v5hgdmhag74a0qs1n0l";doc="0826rq87q35knzmwkhz6ipigx3s3hkzcypy977qa0r3ibcbdr7ap";source="1na3aqqjfp9p9zb7hyzz6wdd0biiigih9fq6bxygcwflbwbhks6z";}; -gentium-tug-63470={run="05m3qcb12n143sxy12zm0bvj9zvkdi4sqsriprfkkfg6xlvk396r";doc="1yw6xs5dpmvk1brwry30ak368xddbmz5z2k79fpnyrx9a9z57j37";source="062g0b8bn41aynm3sk02ciapiiwl55whynvnz3gfzvlja3fn3xxp";}; -gentle-15878={doc="1l5fyfdbkpqlgpgi1hrnn2sz8hchlnp7z5s5584czafvs10jg6vx";}; -gentombow-64333={run="0r3aziqnq1pm2pfangv4238rpihaarndi3xhvpvfj7mc31b3mygr";doc="0vqfamrsy4r1wqly1196cq2w69wydzzw09y3jg5llvyh95a6dp0i";}; -geometry-61719={run="0wv4c77fvaz8qg1ffjg3y06r3q4xjfxkh3m7a5s9ynwmfchcirgi";doc="1npbvp9g9b4mp8w768gzx1vxsdsi9zlrlfgc65xmb0rqx7z19zvy";source="0dm5zakrp71rxfa8xgj7ks0gfvmrm93sqi6f8m4hw7ls7yqm3y9f";}; -geradwp-63134={run="0dkn2p0hbsx7f6nzyvvg55qcy6n3c48m7cf88r68hw4l5kcm2fk4";doc="04hj6j7zpbhsc4gzs6lb7vnmsqzbhfwirp8pzlsrjp8m7388y3ii";source="1xxmhqiivybsk9kqmmjzcxdx6iqcpbwiq5dph1l4jkgkpyfkmmpa";}; -german-42428={run="0w1s582hpvmri7im4jsi75xjz8iij7yxs3n6nad2png1xaxxq3ic";doc="0hclzvfgrc4ii80ywgjb8z1byn2ccqckvgk26fzdvcgg5j7v9x9a";source="1a5svzkxqqnqzva8nb1r3z1rfhjyl5w4sgkfwj7by83df7fwgnhh";}; -germbib-15878={run="1nrmmmq9j52yjasjjsxx40gjdbz617j66kwsiv7qzpkh9p2jy9sc";doc="1sbvvjxls934s1rxk0aq46glzvrn46cdznh26mhpa3i28c8xv3hy";}; -germkorr-15878={run="1bqzh9zklr0y1fj7lh6izbzsswsx00wlwgkg9wl8dxvxmzhrj6y2";doc="0fx39c00hmwv2wvngf3agz3gl1qs5jhcbfc377nxd0v44kbl6wga";}; -geschichtsfrkl-42121={run="0vnxskd0vlslm3jhvpvb4ihzlssdrz5bywrxxysk6c391vyq3w0q";doc="182m0m7lfz5wz017kb6kk2jn5vkmsll3js0sd4pqmr6gb8av44m9";source="0hdq1lkgmcpjk7f8pl2q3c6rin97hdzwhfwacc43m1l3c8zbmqfr";}; -getfiledate-16189={run="1bhqqsvykrmqlgd8whfwxm8bkcqdfzm182ryngq8s6yl9vx39ck5";doc="1jdsnf020iyiyxaabyaxp0nzf02s4kqmm8qf02vaclmbqhciicf2";}; -getitems-39365={run="1n02xiwch25vv9qk3rqddsm54nhp4fkwi3i5a7r3285md2b4vsiw";doc="1m2wfxyqkbfk7zk1czmqp8wwmqd091zijqxvanjxf7azxfmlnvwz";source="0njzl590bsmdnvm1gfqfjf5xpj9mj5ijjxjjxiya0741ylhwv6p1";}; -getmap-50589={run="158fwravmqda1zwzw6qzvq7lrd1xsjm9cdw3qgif2jjq6zsrnjqd";doc="0s9djdlchnp6w7wr7w2b4jj6iq3v6f8r1ri5kbp5q3hfshjgah22";}; -getoptk-23567={run="0rh7b66fn37nkcy2y6q8h3j7i8njwdmizn68iy1bg2l080ns1nw4";doc="0dmjwgv0qghhs7fa0a9jvk2mqbg4m3br1dk2x7q5mxyjzk9878da";}; -gettitlestring-53170={run="0kg2p7ys50ms0li3vnrabywnrjjgllpyr8sf9cz3rnv8zsab4b68";doc="0xkk16ncsyv2s3klv316fprld0d5aqaldh3g10p5gcicmccd9061";source="153bkg899ikkg5zhfw1nc48nzk3c0x5iycxspxcrrj52dpgq22kx";}; -gfdl-65415={run="0mdvjf5xgjk0gbz5x32pgavxw7s8inf5ahmg25zs3ffj1s5nmand";doc="1ybyixpc8k73jv7dl6gmanc7k2n4j09z85a9sx1a2fmfmijngspr";source="0wz586ljmff9j1irwqzvb6lqadzr6q382j2wxahnlymm7a4q4k6r";}; -gfnotation-37156={run="0n2g1kjig7rg9bkry1hyq9jap95jb9crzxh4yd9jylgrygva6wr4";doc="0lfdm66xrvkphqnzmymym0s79bwap5x4h57q6ndb7h97p5pxhfby";}; -gfsartemisia-19469={run="0b200snkvdkrywgn3j613zxyx16prqczw106hfh7pzpr7w717lyr";doc="03gi2v0vfcdar6qsp7xff9s5pd023i3kh4b8asxh9lah998qm3z7";}; -gfsbaskerville-19440={run="0n68mfx7026ymxlyhdyg9ppylh5g4bkwj95c9bfmp5bmym0q6dfi";doc="0v0widjs2w65ppvzm04wzinrcyp8hcicgxp6brydjmx9d32yrzcq";}; -gfsbodoni-28484={run="00r9b46m6h4vac788vfz6jixrd4wbmscblhqi1pxhg76id33xdgd";doc="1s0lq3ac01zcaqyvswn12fxhvqarq2b3lni1xza3yyk2p6y95g1s";}; -gfscomplutum-19469={run="02c0zs2xl2hy5wrrj25w22q1fj6q8w4qjbvlpx05pzzh3y63n3ip";doc="0h9i4v3sag4fmvlnkk0wjxmgsq4kbiikzv0rzfrhzfwaifpznkcf";}; -gfsdidot-69112={run="0m75xf0x7y3mxhhnvs22f1fz4gr8m86g8z9nfqxvwijjzm6xgm1l";doc="1jaxayp4z0ih0cr795as9bmp87h24z41ijhrfwwrbpbmjkkm77qx";}; -gfsdidotclassic-52778={run="03p2w06s9kca35jdby74q4x8if5gs39gb387rjgqbv3vdn7zxi4s";doc="0qnkxqr8r9spg3xl2ifr2sb32hbvmka979c4f8aw4z1i810bs0kx";}; -gfsneohellenic-63944={run="0ycqh6fn1y4czslajdwnj8fga6f2riw0pd4az10qmrxayi5hil23";doc="0zp7rba0mhbhjsnjwm3ldy1frz75grxgnkfl1gvzm4psxm3c9yjy";}; -gfsneohellenicmath-63928={run="1caa8w1jzwk77djhycahr3dd6n8823vc513gl7sgx2jid4gidz6j";doc="1fk5rn7jxqlwhzv7v9fvpadhlr07fr4pfjlqh7zx5wl720xb3yif";}; -gfsporson-18651={run="0h2zy85jalpx2vyjszw0kkrav82zv549c82qik9iylgfwfk1amx8";doc="1zy50pqr9bzfncs03fg98ws41v0v5c9y36rnjm5d9i7q2zljapy9";}; -gfssolomos-18651={run="1hn8k9majggqcis32nw2krnqpqdgy3y0dk777i8fqn28517ygxcx";doc="01cw6sq180cjjzwgi7p2qr9pf6rq0r5zmnb39bch2g0n0rjxqwgl";}; -ghab-29803={run="0skiyyxr8l6a6n34lic42lf0rnv4jm5rpmzm08gv0qqq4ha67zki";doc="15vpkpbpnj1w3nlc5wzy2k4fh8jw1a21asc24lj0j6dpb4mzja1n";}; -ghsystem-53822={run="02hvpf3idwmm4hjkbvcz0w9n6sb6iy1xcj0iiqa51fzg8kimpkzj";doc="1lld29kqvfgl4fmj70z52l1b5sqcb3fr8d2aim5l88grnypn9gb5";}; -gillcm-19878={run="11aph8kbrsjl4ax5hbpirsgc4aznj0nkk76v1ax6d52f8bxjsgjx";doc="1qbhq72bip77lsa5pk05g676c08wc0y1ix3c2iw1h5g5fk20i5y9";}; -gillius-64865={run="1z49x03rvpdgx7k3ry6wkz4vm707ms7mf0c120gr5dl0ggk16x8z";doc="01vidppjs8nwsf0pnj5b6g7ky95ayjiklkr2fybi4arvc4lhswgp";}; -gincltex-64967={run="0w1pk80idhws2yva3zvlbnwy2xbrqa0dckhwj8d9sdqxn5j2va4a";doc="0zdv33r7r6x39p80jwjxk4k2yi4rqyv9w3nzkn7si5ckw223gz4a";source="0m1yd9b6qlbmrxqnyk7kgxx7227zy6v10sf1vw856gpx1r6xbc22";}; -gindex-52311={run="0llk0aaa43n4in5am3ziqvkl1c35q27am5xk1naszwlqxcn4lx42";doc="0fpy0kvkj84vg1jz80jaz26k73rijrldy4m1p1xl3ccc7dxvr299";}; -ginpenc-24980={run="1brakvxxrm1gahl609psp4na8ylkggfs534nysnrijq6vf4r1ryc";doc="0d4q0n0wh45ndqgd2zk254791lcvzrxz4alr2bnm9akcfbv03jz2";source="0jw7qa8wrb20wf8dsaxinkrvfyjdsndd9izxs549dj19whf1jmfy";}; -git-latexdiff-54732={run="0b7hafll82widr8vibaqqavwwzi7m488ypm5wx14y6jncfl8py9y";doc="1cbny4qkr8dg8vnxjnjawq9cjb0h3816ad66q8b5652rpxn3zqcl";}; -gitfile-info-51928={run="0qk6r9fiv44hamlqvsgpm75nd68sgj81sgy93zsylypp15283z2b";doc="053x23sq6657lddjyk9bzadwydfh4zxl78gxl1payxmbl9pj925i";source="0fnrwcjfji5pbkh4kdsishfy85gqcvcmfqxwr5s1n3bm3prgfc8b";}; -gitinfo-34049={run="1n8mm4g7bmiawd7l7xhx9fcxv7z3l629bj21i6j9s0rfd6c7mzz2";doc="1ip59qxlqzrn8y211691cv4bg8d0yxkyvbpxw8xpzg99fpp3isqx";}; -gitinfo-lua-70117={run="1qn7f0fnbgawhm037x1lrc36mgmq43mlcsx9rb3nl9ga4jlk0mqg";doc="02my81hc89i32gsvxp9zfqs2gzbkjqn2cbijwjwa578p45cz6a4z";}; -gitinfo2-38913={run="0k3vw12yh13q1v21bz7i3m32s1w49pk13rg3c0d0l1pcx0wwz20i";doc="0586h9c1kp5cg7gk67xhy5fbshpskrmfb81m4xncaxg6ajaljk7n";}; -gitlog-38932={run="1v0zpfry2rz6xvm92gzhabc9sa157kylvp6jg298kdsbr2limn3k";doc="0pd1f42qmka0wh9b8m15nk69p6isqp74b5qkjg6ymwbabqxbcbl0";}; -gitstatus-64662={run="0kn4q6c6379qs34hmvzixvwkzhwbn3bnrn1pjwsp8lp66fv1wpv2";doc="192g75hfxg3nkaf0x8b142jzgmjzv97mpiravxfwpgfv25fayz0f";source="03kz49szcrpa6ij859a44ham0gbr1w2bd7z7p68vhwg2pcg8gq5r";}; -gitver-63920={run="10ji9cimi9plka0gk5f1yk9kybdfkld470x75204dnk82pcsad91";doc="0gywkwrlgv8wnj4y1qmwk4k09s06h56r7qvcnk194ix5srvbyr4b";}; -globalvals-49962={run="1kgzrymfd5lzvb9dqlb4cgxfszpzhvad859r7sl0dl282596apgl";doc="0c2qf5fqn4n8lhifvi4731r3vifwxp7h9sfd4c26d2nm1w42hv7d";}; -glosmathtools-55920={run="07s9jh24m9d9y01kk6z5lw9acri8g8vjmfw0mgdw3mwpffmba5mx";doc="1ya15q1nb7xzjxq7cgnl9q8pwfr1xbih6shd89krijr2l3rrycws";}; -gloss-15878={run="09d8r16dwl26a76a2gky152bafjip3r3hf41bxxcb60sjvnz2qva";doc="10vgsm0cvcbfxwi7ly38lsvvg139y6abmdsv91qxq3s1pn1qxg6d";}; -gloss-occitan-52593={doc="1q00j5r6d2y3gf8rbh7f7rdfjg3mg1c3rrfqd69rxyam9n92h41r";source="1cb92fpzv7cqqxxa0img0la6hrgxw6azb6j2rslszk9hjghbcjdg";}; -glossaries-68437={run="1d85ifx1q3cx9y1mx1qlv434l3858mk8xl6g8azh806258ks2lp5";doc="139jcnfcqqdsq5wvbj83dkrhjgs1fwslbgp16nfnkdnibv6p3rl7";source="1kly0q8gvlgr8fd933dyfkqribrpx51zaf10v0ii1d7s8rp4a07l";}; -glossaries-danish-35665={run="0qdyvkx33a9jgfa7y1pbm1lg5v1ba4xrxxg0hyfqi0pmpkajqb87";doc="0gvpcl8881g9xfcxhpa3h3c5zc3467ak8mhmr4szgjrsi4nsrnv6";source="1823i0b0firwzz9038wag2qg2h39az1xsj8484w36kbij8q7ygld";}; -glossaries-dutch-35685={run="1ipxgp919h2jh5jajq72dwaf6v5qi7xjplcihjy8j88zakd9iacs";doc="10k1xh64rzgcddzaz7qawb2qd353j79xn3754byhn4d1kz6nihxw";source="0g2kfnxmnnqz8y095b125d7ira54s5dpb5shfqld7m52cranscy8";}; -glossaries-english-35665={run="15nm7bz90ijx674p16d596jssi5915iy43wc1qb6gbbk4s8y9h3c";doc="1dckvl8g0visp5j8ip9kvmis7qw1n81xpjw136bnbm28y7a5m4sn";source="0x2iw6g9a6dzw22p05n3v7vbif8svhnw9sjqfmxn020jqnajza0d";}; -glossaries-estonian-49928={run="1p2d21rx6vs8gcsalbf5kjyhmz71gbbn10c4j4lsy7rqcb97zi99";doc="0q8rsf08snd2p4nkfz2ry7rmsbdpixgn14n1mk4wkjclrbnjszgs";source="15xi0xl53jxfqsz7dwbmcrnlshvs2zbdq38v3izlyz47aaf6ajdx";}; -glossaries-extra-68409={run="1k23qj3hmimg9yc25chxlg2bkznb730c897ly9hy9bm1cvwgbfwc";doc="0fx3jqn01nxn6slb78ilwkgwn2na2snihynjmirp4r17xx858dqp";source="1gg4341smvw2qd6wglywpaa7kziz92mj2x9vwmz28h6pnsvr0x7f";}; -glossaries-finnish-54080={run="18la9s6gblpqdqa1vcvsddzfxadssnd1mrg6iwl4aarq57605cql";doc="0zjwasnxi1fzc3xq8xjmgyrfcxpf3sbfgh6nzz60zdxd8sz1wvfz";source="0jfvjka4i94vh88jfpyysm6r1q9wwg7q29s5ik8d3da9g3n1bhyj";}; -glossaries-french-42873={run="03i8xx80d740c5yv3i83zbxpm9kckzj2kbdsakxa3sp9b0j0jk0b";doc="1k5gkdj5madigzvs138r360nrg6d3fn145xf8g708bk43r92100r";source="0fhi17x6kk73mismll255b9nsr8hm147zd0n3rcndbih9ray6c6a";}; -glossaries-german-35665={run="0h30icsisgk45ghhmngda0nqsjzsm23hay0sxch00ix5qcd19s27";doc="0jmkcq9h2kfjzfwysfps7nqjl7f0zmh5s60ww9kll8ypdd4a1n0s";source="085xarcnj5cvkljz70m27c7390jpj8kwndpyb762pr26dxvgspqh";}; -glossaries-irish-35665={run="0xyijjl1mffhmwlx7b7rprzl4rvhb2h8jdsx2jq86qg5gxd6c4r6";doc="0kic0jhmwiik3y2gipncii6j4348qkxbvkzs3sp9678xjl6j5zl8";source="12qdj6wfgrw6j4vdlkv0bcknnamb09vsyxdmyd094hwgi4cs7wi1";}; -glossaries-italian-35665={run="1dwvjb91jn93jbvh0idvn3nxm6s7frxyvc5a7yszyisfbaxx917v";doc="0sb6kzw87nh2vznwhky087017c6338jhqahgh4ljmzan9h3imk84";source="0hj3wdzdrjv9aciqgj68ihaalvarimi85vff0hf6isnmja5pwg28";}; -glossaries-magyar-35665={run="0y1540a4f531mc8fqpxv50d25a78waipkhhjvgnilbh7p1l3cf04";doc="1sgndhgxlbhfjg22hpqazyd4zrqmkiahjfwhhwv1nk4dnn1rflcp";source="08m0srsv9nspqfzab0g276rimzw64hg9i6dddi7fy9pc55iikfky";}; -glossaries-norsk-67141={run="1qa56xzfnhbb9m5aaz2sxqqj21dbsdmm6yhkskdb45j5ac8b0nyc";doc="15z45ib96inz7y68rfghas87zbjw9g2mv9r4a63xkf371d4g6xsy";source="1jgwc8x3xia56g5xqplasjr2c1cll1fdizfhzszrz1fc1jfjvyzw";}; -glossaries-nynorsk-67201={run="19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43";doc="18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb";source="1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm";}; -glossaries-polish-35665={run="1pm5c1i0zfzj32p75cj014n2kdlfhfp6zlh09y5y8a7cfdsbcjdj";doc="1r0igixgkwcp7h3aslj7kmchxz32qp09vdan6w2garkgj1nspnv8";source="0zg3pfjg03kcrqm4b3s2bb9z3jhlga85hzd1n83pbrvf7fph4ld2";}; -glossaries-portuges-36064={run="1gjadmklh6lsx5drjqgph31z3x0g4xy11g074hm4y2zgziidkbyd";doc="1cbzpx932chvxrf4myhy6bg4jrj05nkr2l2g893k6k7xgm2i1m7y";source="0cz40x5s9whyr7r7w8gmw9gm119xmbb1qkhz19zfijg6nnq2yig2";}; -glossaries-serbian-35665={run="1nbpnq50kki9i2i2dlj2x9ldy6g0in0mz54ii107m8fc66g90vi8";doc="1cx33aqm3qcj94rl6n71wm0sq2kc29r1wny3bwwpqg5mp3bw2g8g";source="1vgihxf778vvf86rka345qmnbv5s2ma1b5h47s2f15x8bjx4xy9r";}; -glossaries-slovene-51211={run="0i74cn88m4llskd371z5xakw0s1gdgfmc01i55xqmc3j1n5cayh6";doc="1bfw6dnj6vcz0v6i8dhy2ffd6vbjqihqshkzhnwrrc858rzgahiv";source="02c4gvv1qvhbznxlxff6kx976whcv80c15k2jxsgd6bira50414r";}; -glossaries-spanish-35665={run="1wg894gdkqkm2mpzixgpnsd5hzbvvviba7izbshiihhldsijs60d";doc="0zkfg3zk204q8a4xj00ibixqi0j3ll4531vrbavafm8b9qjl93xr";source="01hnx7zkqlb4r549252y3nsqrj8ywi30ci27r5n1p846jv366lxc";}; -glyphlist-54074={run="12nmmyh77vr2622lzi11nm1z1k2bxs7jz018yl4rwjlpg0sxg1ja";}; -gmdoc-21292={run="07hf9413bmj1iv1g13wnngfb07fjb11162pz1769dz5si4av5nmm";doc="1p3zpf3rmmmvaam534vyw2n8r3klfxlk36jk19pk5akqwxwv754r";}; -gmdoc-enhance-15878={run="15c1bah1lxa4ap43287qm24nmcml5g8a62plq0wsdhbd07w51h34";doc="1fy3y1f53frsv09vz74n7v8gv1wscga6h4di9wfspwan1x3kdp76";source="067ind9qmah7w93bhwg9vfj8nyps60gsvbxmx7qhkr6c1cxqa8wr";}; -gmiflink-15878={run="1b7gbvkhscb2p4yhcwd8mlh3fsvgfq8g6876s1brygnp9lsz7cxn";doc="189srmaykk4pmm3p65p0i00ycisr2bdvb51r6ddn4rjbliv6i9gd";}; -gmp-21691={run="1c98y5fhnq5w9b6kkpnrag364269s90kccgbqwr33bn9ixhsf0dq";doc="0wir24czbym76b9fcbzd29m0749lbh26n44yfl48k5pxy6pkqjcb";source="1qg01aaf4s939ixzl7wdariaxxg1d5z4s76cz50rpw0p7rgdqbay";}; -gmutils-24287={run="1yf7r1bqv7kid7v65bv56w4an5nx22fhxzh67fh7r9y8msrz86lh";doc="1xplwkdjdcz76rmmmnv8zfp3fj104b1vag6rzrxj7ap9k8zzc40f";}; -gmverb-24288={run="1mqmi97imyr63ff0qyv797sipncqizbx9cvlg49wxnf3bjyk2ki2";doc="0r9sygczigi52piyk4zgw807zjr0jl4babj3qmnnsg0qclhvaqnq";}; -gmverse-29803={run="06v5fxz15byps13vm1afrpx365nfmq57200gspqpdch2sji2n4k2";doc="1f8hccasv9f1wbjn7cjkwa2z9rwn8lwkv657i8n533ccjk6s5xvy";}; -gnu-freefont-68624={run="1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi";doc="0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb";source="1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2";}; -gnuplottex-54758={run="1ck4r4inr8ac82p0r8062z3hwf9187sv43ym9586sk3ip6kqb3yj";doc="198g23i6k5f353w2aa9f9cw6cj8b4f93nsk7iq2hvhvk6ia876vx";source="0iz43zdvzfs7spc6zvgclyh0vjnzkwcixgk5mg2a3wrig8r4q6fq";}; -go-28628={run="0lqgz9r0vxjbq1nyg77zjfsglwbd44zdpwz56smalb6lp2ra3r5z";doc="1mf49wywa32chr8q4c0s4fdkmzd88a1fj3hxcf3zx7bnsi5r4gl9";source="0vslzmpj94qlh5g2jirwj8b4w93vx33j8xdadyc32s6b9rrdwnyl";}; -gobble-64967={run="0f4dk6xg7b5ij3w2za5mspv96xrlksyi8gy5h2ri29khb58cw5h2";doc="0a2rd4m38mgyfpjaf9na75w5cmn32lxbbqhqyfr145hf2nf08c1x";source="0k42x8ni36gq51aw55ywy36jl89brhsc0177kn56zpvv2zmghqiw";}; -gofonts-64358={run="1283jyz641bxsq6vxgaaa3hjrjw101p84nqv2jb7vixpd0yw6qwx";doc="1bq0db6xak2mj6m5q2z85f7j7iw29hh2ch4767lyi5s496csbysp";}; -gost-57616={run="0b495h3wwvwzn7dilj2am4h934y7b4fm3g3j85bb6i8fpqxbpikp";doc="1as0a9pc9bv0aya47ir77vlwv2hqaapl1ks70gslfqj57082whwa";source="07jn8ji4fa68mlq381lcmvk5qcamiczain2jlmpqcc9cfxd31s3z";}; -gothic-49869={run="0kgzx9qh17hcm33bx8r6wh3c9j6d8v0xs4fhi3w5vwmmlmyv9dni";doc="111pz7iz7zckzsdjaxz6p7chp98144727vh9b3y8v2yqfz06vzid";source="1r61rnird0n9iz9kg5ky4b602wmvsyg1y94h6az314ax7zdccm23";}; -gotoh-44764={run="1k3z1b1nyyk4jr2aj60d9p3fvx9ijpi21780wbbzmn5gydmivvm2";doc="0kcx815006v0azrn7vvbldplg7z4bgsibz921k20pdz2fqy88lnw";source="04frszj42vxnn5mf0mi5izwqw7mh57w0npp6n77kciyk84qjca7b";}; -grabbox-65223={run="1w9gmzwzy8dmk5rymwhn75rlciszk2wyx9yiiqn3npz872b55sf2";doc="1h4fzi0199gfzdsx3f4pz76q14lv90sgad8ixfixn4kq6zywg4cs";source="0sg5ahgxmm6vwa2ng0w8dmgxb4d3x14929i8apkm21bainhaxg4d";}; -gradient-text-65567={run="16ry27061szxa7krcpi739r57vj00ryv94ja3xa7j1dcvj6fn5sl";doc="1fdf06z2n7jcbj1rby47ylrxq516nwa4qa67iphxhdn5maf1d884";}; -gradientframe-21387={run="0c77ymahnfqix4h3i5q8fyzra5vr1fc2rygycwsz9zrf332ca5qw";doc="15lf5hlw760cqwqjf91wjzfbplp5npv586k967bpzm17pkmw6pqq";source="022x1whvyd9gqw2kj3m8pncn0m0c839bdwysw4sq5xx9nw6ixib2";}; -grading-scheme-62505={run="1cbprwzwz019nscz0j3j0cdxkrmkqs9r220qvfms1vfmjs1j9dg4";doc="1fc3i5h4xs40z3ndcipyjl7vz36vbaqd9zcw8nlvw746whf4g2lw";source="0kidqf4l7gy9qg1i01ghvb9rqm9ygjk0ii22sff3n1jpbc2vdvh2";}; -gradstudentresume-38832={run="1i3rbv9ixnr60yrjzbj31aaq758638k5xvlarkaqsjvacc3wx88f";doc="0nvih6lkbgc7jkkj303119fyxnajl4iha2baz2yhy62h4mq8lhd0";}; -grafcet-22509={run="0yz1f2p8dn3a1ws5skmznbd4ih9bri6r7vr6rx3zcspmad1fjg4d";doc="0inzw5cw5759c4l3ikzgn0zx47b0l575yjpz2613fh9l5ys800nl";}; -grant-56852={run="1whd5f3fc72balvgifnb37583v0882xq51qa0fbb92b0a0c71nid";doc="0zfz8gj8di6sx9k48zdn5hv5x2fj5rd8dm7x4h2k6xssrj4aw7bx";source="0pmg6kjzy6wahhz3lk742qzx8m5afz8lqsl05zpkcmi7ris9m9ah";}; -graph35-66772={run="1bjdw1kvds8iahl1chrzmzaxm5ad7bb5c99yyw3rd390pqbh8y92";doc="02kx45b2c9d3f0f5h8xw2mnqn1mrp7v8975y2gqx1ln2x61xmjpm";source="1lm6531f5s5j1l2fasz0fk0adask83b2w1plkqmk3zxrn4rcchw8";}; -graphbox-46360={run="1hvhadbpd988nvrlcppvv3bnm5lzmlnxgwmfp6r4mgsr1q7xgg6j";doc="1gls7j4753s16q6lgdsaa3yg8fc4vzxh74z7qr2ykz9b8ij0sdr5";source="0nfmfn7y1qqbm4yifqxfpxn9yw2xb9yj4smv9fmxrs57ism8d9dp";}; -graphics-66204={run="0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy";doc="0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl";source="11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz";}; -graphics-cfg-41448={run="09yifx2ww4jjjhl5k8b5vz78711289755mw0r1rcshk596qvn9r5";doc="0rfjgc83ryg3s5q01xnkk8bzw7rx7m96hfxq85xjjn5qxsgy8yqy";}; -graphics-def-64487={run="1jicdjf7bd30khgfkn6ilm7y7rnkqvms909wqj3ixc3mr3fz8j16";doc="0k6fapbyi9bidgwr67m4l2qfqyg0rjwnyznfi4fy9q9f6w61fmv6";}; -graphics-pln-68760={run="1z2vgvlf3xpxidfs0g4hmq990lpxvird2pc6a59l2cm1s9nvsz10";doc="0zjm566qqqk8blsdri7jxbhynlf98fk7w93fdxf5wvq4lzkwks38";}; -graphicscache-65318={run="0gmp7wldnc7l3768fs3wximhnc02ijlsajsfbg1iypihak6m2ym1";doc="006yyxyga6n3hissz8i8nmydwyin4ag00j9b3g7dg4263hl8yakw";source="1nk212cwla2y2dv6cysvk1vzk6kjyfgs03ngh3ry4gyz6ql844qi";}; -graphicx-psmin-56931={run="1sz53s8j6rn37xz1kkw0zr85625qki05zfvj6zpyw1yxay86r89w";doc="1fjg0pwh8qxk79mmrpgnwps50r8hvw6hqsjd2cp021wkqcyk5zb1";source="1rjl35jhy6dwja782xwh0qp3bxyw6ziha6fw5qbaq16jfy8hs95q";}; -graphicxbox-32630={run="1pl1x7n7yv7grkplpx7fflfi4cwzmkmh8nnd77i2n5wdlylyabxd";doc="0f1w22m5r1xz6n70yb1p21qq3fi2rfj9mdcyqq8s40km1i40yxkd";source="163isaz9zh1jr5wbhsw3ppicxsq4v92d6516dqgiwjhf6hdgay94";}; -graphicxpsd-57341={run="1fganh87hpkac141i4c8f5bw06sfhy3qs14blx466h1nmc6308az";doc="12d820bdrnlq0v6rzd72icvac73vq7b7sq2kq0nab05xsdi2418c";}; -graphpaper-63116={run="1bba2x75pd679qd6jcm5dd2br5d3gr7s3r8fwwid8mmq30vy72lg";doc="0a8l3wz3xrxnwp5s7gjr8qgmdbkrnwc0gki6i9xymvys385c6q87";source="1343djcm9sh6g5v8yfbrrwzg8x68rjgwpicq79md4f4gnsmz6lvv";}; -graphviz-31517={run="1gpl57lb4wkysxdhvqajzxjb4w0m5nxdxi841dzg0sg2igchfab6";doc="09aa9yl3zmcc5vlvjvgaxfmhj83qk4wgp4fx90bgn28kxnzhicxx";source="1w878b21va1y0mz08wr7mgdxl09hmbmxbzfnpv2mdqyy01lwpzks";}; -grayhints-49052={run="0p65f12y0v9s13gkmd0limdcsz36lnbf0975c4pxcsc42i8smvqk";doc="07qpkj60rrl1pc651qa8kpym3bzcc0qkfwaggcyin9a65a5snnhf";source="1g32xq2f1ncq124j2j8xm3vdkhv4sxynxc3wzx7x6s9i91p5l59y";}; -greek-fontenc-68877={run="1lsyx2g792b2m7rjlihqj26dkz9kaskbrbwzvkjd0x0rzvf9g3a8";doc="1qrn41ly963nnpwchs1s1l3mfsi49af1x0q9vk4zms4wcd9w34wh";}; -greek-inputenc-66634={run="0bg3frdqlja36j7l4y1m41nslqy7bisbyqyax581arrl9hv9p0yh";doc="02wghx50h2x7p9kl6j7kkg185jra9pijcjrf3bkx6c7d1spvszcv";}; -greekdates-15878={run="0g8cgyrw6lacr9cjig3q1g7rvjdwb0p40b41rsqg6lj6y7m25ya8";doc="1sh4dgxfn55gg9vp163qj9nd6kbp03cb3nkg3hqlf6b1az486nh5";source="0k8vyyxvi1i6kqnanfm1nfhbwllgn22ik57r2p357y69hfj3bs4f";}; -greektex-28327={run="1v39z550xynw4kkqjqcj7izj2cghkk1g2swsy9x9c71sz95r2bw6";doc="0g4m7sb6ppjj0nxgv7pwwvc5p07jdkablcqasdmj8p44ikg9vp59";}; -greektonoi-39419={run="1dhbslqclyk5d8a9v9s4af4gxdy39b35zbbr3k5m53gsd0kcs5w9";doc="0hmxx4pcirm2v5xpl3zyij8r1zm45f373dv18vxj4xr3sn6b7p14";}; -greenpoint-15878={run="0l27vvxzyiar7y1x1a3hk0sswfazi356wsbnx86dp8l766qcc3d6";doc="0zlrfv2y5ixhyqyr5hxycalg6bygvw1f6bfaxqdpakwiz7k3zabd";}; -gregoriotex-58331={run="1z3az5in2izkai2bf627zj5966ypv1z9z9510ynallfi5q6yah49";doc="15qh7jfz42bj450zngw556z57dzq99cfsna5008yymgqsyvy5jxl";source="0p6xm22hr6ka4jm9zrg4yifsc4125g22n4x9zjvmarbxixj04573";}; -grfext-53024={run="03ff5n3yc3fxrayhyapm9qhd665r15v57vri6ajb5xb4m18rkfqw";doc="1f5kvnnv604qllqim8qv40cfpx0xaxanigqnqwmjfwf0n44akcfp";source="0i5pkqrc4jm3cgwzyhw1r3kh6b0b7sb352bnzid7h8msiwx32y8k";}; -grffile-52756={run="02cmm9q14h87dv5h5ci7ny7v4plrry54mz15jddx1zkfx4myykww";doc="119xqz1n57mghhp7db19ffrv1cdk1fgpznlyrn3qgvg2926mx104";source="0pmg9140plqv27mp936ca0193ihggd243mmprj3l0d6rf5dajm8j";}; -grfpaste-17354={run="0y1zw0l245chmlgmi7cmg2yp7s30z8055wnrbm6f45aizcvgdya9";doc="152b029w1203lgfmxdmhq3nh9h2hcdx4xanklv59rih9ha5l8j5v";}; -grid-61719={run="17yxgnwlxi16vkhhy0mij2f07cib589305iz3kzf0gfha2x1fnxg";doc="0h3pfv1hilyn9c9mlqm9nbfd0l0s1n8w7hgaa6cab43y8n60z8gy";source="1ah419141p76qjl1q82l2v6i5z34mj19rvsbwldp8fawfkl093k1";}; -grid-system-32981={run="11l07viwfi88i7c05yjb39wxzdgvg6xvxlcgbmqpvc4fbwmr45bi";doc="1a72i4af612w28wkbsvqvss5462ar8g27y83w2h7y65nqv42wi9d";}; -gridpapers-58723={run="1nshsbv4qf8vxsvrqidwr4rqny5lp0cxijx018bcskhh3xra7r6n";doc="0z3vns6jk1ihiqf12i46n8yhfyjmnkb4l5wyc18phbh9l6879b7q";source="1bnb38mgi6pzm6gvxf0k60z1dal3kgi2rjgwfrcg2h5vmb5rpdk0";}; -gridset-53762={run="1hg92rhf2jl3yp9y85pm0hrbc2a43ysxkhdakfv51a3bynd7ym51";doc="19aq6g6dnbmgz6a4pgxm2c2vbwc0m3hicg7qcbjpchahj8278w5y";source="1gmgaql1wyd6kbhhv0ssyhg5dz9jls0y895h7yg8pyjqg4d0i2rh";}; -gridslides-54512={run="1y5bngrqi46yii7807nw2y6vr7xavmbnk7x3bpfj5fjm8vpnw4aj";doc="0ringj34cl8lqdfa3qwfcq4jdfzsghw4haw7c9dq9acqnpc6sh3f";}; -grotesq-35859={run="0f3nmf0flj20xaxz8g73zp0qcm78yvqx1idyawrarpz3q7zdvqfq";doc="05fy8hg21wq7z2zfsbyjszamif7ixk8aj5bbjsjinyxzfkdack3m";}; -grundgesetze-58997={run="06zf794hhf5w79d3i5wh4lw97i0j98kfkrnn8nppy3p4yrij864b";doc="0rjb4lbc541w8lfy3504j40fvynq49dbaa7bpn7wk77k4m8f9nsr";source="0khbksa9yy82zqd71ls8gh9xcl0h12h7542bi10hwf7zp4nhqs7b";}; -gs1-59620={run="0j8hsdifd75wm4viqwxxk7s654bb7yxs5ccqwl0hxw7kxrxybxmr";doc="03yw4cfa1ixhf34ak42qjwnb1pbw1lzljxg371v1gcwbba9x9svb";source="1my4p6xgpghz0fqq1i5wmqx0nx27xn0vbpl4gbczwi1xnakmvv4v";}; -gsemthesis-56291={run="1y9wj43qpcgp82sfi5s7izyf284hzkn5py0v145jx03l2kxhv90c";doc="0fyadx4x8d64h75fq3xgmfxympcbfjhwwmwg4bpj20d3dbf0rh32";source="1i5w77zwb9c4qc90hxz7sna8g2c11mkf3vnkkm3scm6pkbg9z0av";}; -gsftopk-52851={run="0n6nnfn3fwi5dz9vdqk4mv97hwnyybj3wsv3bipqfsxl31yjp51j";doc="0xdb0h557sgi56gik24izsr5xlbmlfya1w93yih61a5422rv198c";}; -gtl-69297={run="07d5wf242l52y43ranq4l147755gl8r83429706yjj01a71mjlh9";doc="16qpbiy2q9bmnj545ni2pv0w63djsqyjba32irmhq61xc04fkym8";source="11nnmbgr3b9nww4w337320rjkyc6l007s97l3kh2m2xaw6danmdk";}; -gtrcrd-32484={run="095v007lhv0yyni3cqvc14iv9jqi0aqfmlr0zgxh45xfpqbsglnv";doc="1ivw62rpgfyxmlrzvjvmhf4hxfrlgskzq3qr0p6g48ilv3is7sb5";}; -gtrlib-largetrees-49062={run="0l0fqpw6sd1gg3da8s7wz324q5bdd9l80zxg835gfw0vvrn912im";doc="1mq4pbmsfvm4y7g4ar3a438469yy6x4ciksrns05dnkk54adyyj8";source="02x48sgx6vfwbdvgj0f5b9sc0kmkwcl6jyqzv0ascc77av9w41na";}; -gu-15878={run="0h37ilpkqlb6z4fdjldnbwpz2j15izz0wb70n4zmmp2162qqbjni";doc="1gx36ngw3mbbw9i2xdi2glx80xfvj6pv5frh6fmsqlnvhgni13nf";}; -gudea-57359={run="00565sv65b64h18cib0hbxh73ylg07lk7wxl9l9gvdczdz7a4xk6";doc="0rk9g6kcb8wjhf6is5wcbrr95hv7ahwl9xa9vqnfq6m1yy1bah13";}; -guide-to-latex-45712={doc="1wc5pclv27af2zr6kjjahjzxxlab31d8970jvxr9lxiqllvkxyab";}; -guitar-32258={run="1cjrmz39cpwj6kfq3r9868prd5bx0ppsxdydc7327247n4f270qg";doc="0gqck2vifa7r4wb9q63kw7mp8b33hza1jjyn3kighk2rrjbrg3ah";source="1pfcf4r1vwv80zc1p8fjvf8nqadiijsl8fjaxjanjgzl3zyy25i1";}; -guitarchordschemes-54512={run="0jhqamb3lmpzplvxwy7aydg6sv81b4xl81ss5q1nk66lxki714a1";doc="0939llps22ir6bfxqjcbr22kvb6qxid7dzfqjxigl86y8amvv7lf";}; -guitartabs-48102={run="1akm3sbrwnbg9mzlm98zpgh187w61g74zdyq6lb21w7bw30jkxbk";doc="1mrifbwkv0vh4cl1jg92v7006bh3rfrgy7gqpz0byd5nc0vfrm5n";}; -guitlogo-55741={run="1zjlfd49hkq9qc1l3g974wxzw200qyiy9vbiai0v9gs627hxckwj";doc="0awpik3x75rky5w6rk9zg3cy83dgxs2l57wfg8sq9h35zmni875w";source="1hi4rb31mc3820fafyhk2158y67b90xp5wl6xxd0b5fqz2z28qnj";}; -gustlib-54074={run="1kqlqxwlx12hyyhsxyn470rgpzg6xw25ix1v5j4sski6nwspvn9c";doc="13yx3bzmbm1b1p5rbjdfsdlwxdpzdhhmm2xd05hi79wdfxbbby7p";}; -gustprog-54074={doc="07qx4xvyqb4p0cx0macjgyg0pcxgcmdxmzfsx9ah5s0dqvminwrc";}; -gzt-70535={run="0z5n3ybgd2bwz3d0i6bl20bgyzjhfsfpl5b72y4g3mbap2d7yk41";doc="0jahxyvmgzzpxqr6lil6ll47biyipw402scn8agppqsyqrbjm3lz";source="0rkk1i5kx75gjrqsdrxljkv9bs7kc1wadl2kpr9krrmyz4wbq5l5";}; -h2020proposal-38428={run="1yz8bz4nmccv0v700zz7x11fjdqhs4hgkz8cd6bnqr3v0n8k4xrf";doc="0yd0iffrvahaci04bmnd20bszgshx28apsij1i35l1wjr1hlnfcz";}; -ha-prosper-59651={run="030zapbv83x0x1vh9px6klqnivygjhzi48fz40jb2cl17b38xnx1";doc="0i9714nqgv3ywxfybg3m9lcrng6v7ydxgfvxva7zpjpmsm3mjfvl";source="0ljl3szba1p1jj7fyw6qzm5h673d63hqwpsn1jzapk013rnxsfmp";}; -hackthefootline-46494={run="1l2iq2k1bil4l5nzxrfi4pg831kxn22ld7402y285hlhv7cj6qfc";doc="0w10yipva3ixyp91iy2y15n312gk5fw90960p3adla2w1p4qhs4c";}; -hacm-27671={run="05layzjb8ngwmqvg49abdi55j9gl1l74sm5baipm0yi0k1kr8xy0";doc="1d1znq8r384b4xpc9f81023asq6yrkbvyif70wjn7h64x1wpnnn0";}; -hagenberg-thesis-65819={run="1sz41ng6wpr0zk0bdhfp6iqnsis2bpnr4k27hw5c94384vxa1w9f";doc="0czc359n4h5v83idvvn7nzl7azzwcdndbinssdvh35ygy68v04jy";}; -halloweenmath-52602={run="0sfcggpqhai8xzpnbyz1vlvh7cfl3n2m7z0av4drd7wqzas0mcw2";doc="0k7qfv036aa691902chj1rgcf3z2xd58xfb2r0b5z80g6944xjrk";source="0ir0xr3aiyjiashy6jl39f401ccgx3dhlyiqx4h2myiwq45ay2ka";}; -hamnosys-61941={run="126amkwf4aapxk26n1h7vyv08hgyj6gac4sz6v76qilwpp6m6sga";doc="1n2bk2yp8c4bvqcjq0hahfs14zlrgrgj9jwvrp903c46zb83lfc0";source="1jxdiqbvbkmhv5p3fs3vl728wb6izfx9wbjqyylzxc9fr7b4qpmf";}; -handin-48255={run="0xcsmfa4jjhrl3xkglqwbgvi844q1f9zjgpyix5akx058qjvwl7g";doc="1k3ar5yzyndnfqkv3bhl7q8aczfbaaghv9mkhzpfri4za5ks6fnn";}; -handout-43962={run="1563x16fgw29vzw9bzjrc8maj1r8337p288y7v066qjaq886x3xz";doc="1y1wpkpjwhq7aya9b98ym4xsv15zavmv8k1i6q0vx302awi2r5yr";}; -handoutwithnotes-62140={run="1wxy2a01jvxhw1pna1bfljigabfw9i66m346n0yshhk6rf3zabgd";doc="0i1viv2wkn2afvkcm1z7vxz98aj2yyn63cilnhm5kzn7ngdrkxcj";source="1jiz406v43khg1p9kpaz96bwd7iscl078315xjfsirlbk33c4y2c";}; -hands-13293={run="0x0vdn7hq6k7wr7yxn8pnkvjhjq3mfl781ijrs2mpvjqygqffzag";}; -hang-43280={run="097qbqwbib8gj53qlydflff7sqp5ghcg5812hjnav9a0rgklpw8y";doc="19falj7rm7diwr24q5rpab3rp39awnyg0hdxfhhalkpdmjwqk2iy";}; -hanging-15878={run="0s86yaxyfv9zxf4svwg9s13by9vrw38apfg0hsfchsimsdd6gsbb";doc="086lzvx4g6bj04xdqnadmb8832klmq362k9lqh4pz7ym34mzh5c7";source="0wwfnkb66m7r77723kkkdp7yxkl789g310m5lhllwx33fbhm8vhj";}; -hanoi-25019={run="09a7cv76naxzdach5507wdqnjp12amvlia7kw0jh224ydmkzfx9x";}; -hanzibox-63062={run="0pww3xzi9r52cr0bggpw7wlddm6gzf5vs5xi7v03ynlpn45wz3x2";doc="0x18yvhnywhdl68jz4v5llkqqpiz1l48nv77g0x2x2svzwrxrw3w";source="0dblzzg2gkg1blx8rh3rs3jb5pq1qjcn9nq0n0rz7a7dph5f10j9";}; -happy4th-25020={doc="1x950scxbvcgwycpakflpklc775pknjab620g099dnsfrpb76f4a";}; -har2nat-54080={run="0zaqsnvg46pdf98gzlxa8l6z8v9l3fd7jmf60nbrfba7jrzpy1bh";doc="00n5qcljlpw2rq8x921vhsk7xvz8z43gxiq41qfzin696ysn7xj5";}; -haranoaji-68501={run="0lpghfxqr1kh4s6vk5zjqkzm4ryz47qa3dkrxfiyclv4crsqlf16";doc="0v31a7kz4bxp4ay7bh63w5hn53iljq62vkkq0nad7jf0cyhdm5sv";tlpkg="0s4wnm8lh0sbblz47j7q48rlndqxjiyn332061iadd5gh1x9ialh";}; -haranoaji-extra-68500={run="17j0nf9f0l2202d0b6yba9dbkwp7y97kxh4lnv4chvx7f07l5grr";doc="14w5x12q0d4z5h0skp4lvicwrcksl9wfc8lrsv8lc3dmhijv0f48";}; -hardwrap-21396={run="1kwsns5vg5pkplcl5nhmvpm2ccdv0f9431qxjxq1k6zfsknpy60v";doc="0h1n80c9l34isgyzl36hf4nigxcsykfgqv6i9jjdf6dqpp23bpw9";source="0hiqsj0vpfkmi8z048ymlnxrxaam8raq2f48wlyk67x4w2gv72k8";}; -harmony-15878={run="11vh6dy95n049bfr46yyb6a5ziawmh3n8dr8l7cqhj4pqmkpgad8";doc="00kf7kbrfr2cqv7izx1v90mpa81ncsn0r9jkxkhz8df8fsizaigl";}; -harnon-cv-26543={run="125885fg7frl37pmxxj51i7d22xydj5wsva9i27126903y3qdm8m";doc="07i4qv95fcfnlfj18qljwbkv1cm5r00mzmq570ra3bgjc301gk9a";}; -harpoon-21327={run="18p0xqjxix4ka9a9ja513il0wrpqrqh8v9v13cc89kh8qfjlf9m7";doc="0l2y9l8wn55dg06fbxjnv16bkhgbg9rpfclawfh4p7m2cf2h1k44";}; -harvard-15878={run="0jpxqyrw9skg7jpw2d46f8nrh7jaa3r9lviv848nfnn6h35vs61n";doc="10vxj1cna040i520wj7c0flbk0d4hr22jyxqrv88616xqqkg3b6g";source="1j754jjwdil45pr032xjmwhf1i2phspv2swnjbyxgnssl6i370r7";}; -harveyballs-32003={run="0d3wc82qamnc2pivkr23njai42vbn7xip2rlsj4kc8p75zh9da3h";doc="1792wp7zx6a9f19lplca1b7pdyf8zjvqndl26s84sfv3w4fmbr8z";}; -harvmac-15878={run="1ky0vc92z3i7l64hkdm4jrlaz3acna747lfd2w3b0ybdsz8514wl";doc="19sfcgshwcvn4z3cih6ha2kgdbb5282zgf244678rl1gkmqjblj3";}; -hatching-23818={run="11sdpa2fbxqz8diiwyjvx5fwfycby0rdav6941pgfbzsbqd3ys62";doc="1fq1wkq7q5f8jbhx7p49jnpnfprb4z2wmawyjbvcnrnmr8jbrdny";}; -hausarbeit-jura-56070={run="09nf6pz7xqhzs0n7nafmmkpsy5ksvqvnwha80yv6rxasnazd940b";doc="1na417f6avcar3dmgk5wrggj99mpskc1j7fj4qkh33rii7yw6f4g";source="05f4qr5cz06k7hnjranx6sbqniv4h77dy0rrm6bg4dd6hrk474q6";}; -havannah-36348={run="0zdbwl36d8a374yhaqfb4f3561ncch10v0vh7nxj22f267lgl2n3";doc="1pkkslz2f66j606j44rq32dp9qhfqcr959wrp8j9xgkw76i9lprh";source="0gyndaw2g2j2j22njn32839mihqx3pl7sij35vhsyahyamnipk2h";}; -hc-15878={run="04qricj1nmmmhxwsam901cr43h96ymc7qdb1m52byniv51i8g0yn";doc="06q64drrpgm7lzp45hrl33cs2dj4mx1mjpsd3paqgsn2xxqls2yj";source="0knqx9smbx7lyr1r6vn50x3x9zldv14gb3484jqk28jvm92njnij";}; -he-she-41359={run="1rr8pdpizasdcb1sfg74nsqs67xh2lcwd8w2rjaf719bpx9372yb";doc="1lmahrp33iv7bbnkbiwpkagy3rm7j0wric7m1fbzdvkgkzv274na";}; -hebrew-fonts-68038={run="0024bhlbj59gq22gafanns4gi8mii8fcd6xkwaa85czgm5yqmazc";doc="1kv46s1x86gs2b7h9934hqlpp4siidnarb1shj427vijfg68asnp";source="1m4kd4r1i3sj4x0liyrpxckdp4v6xvy79xwmkf3glzrmzq79vdz3";}; -hecthese-68584={run="121l6nj57aivlyw2gzmyqyi90ql3bsrdjw0qa6gy7i7ifhw81s8v";doc="10pl8k15r835rac4ihng85ayp2k4w7idlf3ss1ywb3appayf8r9g";source="1cnnif8c2n34hlpm26bpdvbrvzil09rdfbqcyn5nbfxd66k83vah";}; -helmholtz-ellis-ji-notation-55213={run="19szfdy3r6i0ayfr4qjv99dy6h97pqcfr08xhy3v9kzqm4d2b5nb";doc="15d4dil3r44v5xds0n1lnqml7cyncpyr92prb56rfaav669hflbr";source="01zdhy1p6idpksjh1ak1lyw9j536bzr130bjgay471k9d76n38dr";}; -helvetic-61719={run="0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl";}; -hep-15878={run="016jjvmmc679sk23dy0g09a0s0n176a5pyq18snvi9xajh2c4xw5";doc="0czpwbhpgpbij9b97dlb3qq0aa9vyh12p81sdm0hwkj3i16yawav";}; -hep-acronym-67632={run="1y2s0fmrm4z5laq55xyhs1h85pjk48y92g0rzl1hmrdhqk6l0ikg";doc="0mbhbyv9bbm0k856nbi6f46fn5a7z2s2ixq435gvka8r713ns5s8";source="1nqv1qvqrxz6fd5lxrfsmxmgkkz005hymxk8s3xdwhla982nx56c";}; -hep-bibliography-67632={run="1qqidgnyi30zgmcfp0jj361l5sga8ds1b9wqhxad3hfzysa8bacx";doc="1x1bgw7sqgnlqzqxx2zbvcxdpl304vbn8wx26rdjf389r0rw3yzy";source="14wng879zmwzmacx2w8m2v1l4ha169xaaalmzmwc0lbj5rxhy44v";}; -hep-float-67632={run="1fv5bga9nf341iij2s8llh6rwvxf85h8hnilhlk0jc5s105whj1i";doc="0y69ymqj9lxwr4v3lxsvz17lms045k2wdvc9dszvlrjg2q3ac81y";source="1xmfqk8q0q0xmwsc4hgmvvajij88vszqimcfw0ddf7bylxchxjjs";}; -hep-font-67632={run="0z92gscinj92pypc6hnvdlyd0n1hdkh1kbnlgliv6cv2swyddmv8";doc="18nn2rxq07xxv14ds95q5rwlqfskd6gl96gya02s4fi2lz6ys55b";source="1fzx346kva3lxk4hx9pkxnj7j7jmx287gylpddb2pdpwkkc8spci";}; -hep-graphic-67641={run="0dwnbl9xm12v3hdpki7nzbq53l29rhy762rxbxvq7hjbjdm5zni0";doc="13f1g76vqqm5c3ivdy41gix2bzmd6z73bqlj9cyij15jzwix9dan";source="0y9d01kwnnlgx0cbr4ifi97la7cz56l30z65spbq2ilm4xlx7yqp";}; -hep-math-67632={run="155by362r43igwgyyq6fqd4j0r3qs12fx3gfrlcdpqlxnjg9j20j";doc="0xhkrd51y4br7qsldynnfhvy38ilngb3l022hpddid9yg5s49k5s";source="1zdrlvia3yyibmbypz519bx764jy62f7sia9qk6pb0wvwxbqmc0c";}; -hep-math-font-67632={run="096y39y8fkqhd7p43kv8fairn6q85bapca1ir8v2mvspr9h2c752";doc="12inm8vwlwnwzr6hngjpixzf6b2ckcy5l4a9dgqgvrh543vwvzjr";source="0p3365139k77y4kmwg09x67n67vyfzzvy43s1jn8yda91xnn02sv";}; -hep-paper-67632={run="1zgyzl3pyb0ygfxgn6pb9wcg75iysxqbpr6awa57aiah0hmynmm9";doc="10fwbgz97cifhx1pr0li91h312ni0g130jg97d2vfpxrn2drq697";source="061dap6lcrbif2rlkk7206aha72h31af4ab6wif5xriz9bj11cjn";}; -hep-reference-67632={run="046vf4p8nn661w3ag3l0z55zv4nw42n2376b1ab2p6sb6sb7l86m";doc="0ahdg40hpb17lask2bswsc0qqh1fdalvjgc64scqb1ppfiq62sif";source="1z80z7sr8ipsc15rns83141m3rw01s0pmc3da8d2vl7ymf4v8wwn";}; -hep-text-67632={run="0kmjlzjq8qwhka31nyyvdgvycyb4nlxrdp1fnwf1kgarr656rpky";doc="1fsjsx0h1wws4z1vbhc4ynaznbf0lwxnw34i98n3cyqx805fg1dg";source="0wa27j0xyi76nagz2yh240yhghd72gq2b4078yvnfs1bkjf00127";}; -hep-title-67632={run="1mihii4ndrrk9wxvwh6kzg1dh55xfgcww26plsnn390yqqfan8fy";doc="0iranpsi295spbqpm8r9zv4gq3gn2231pjksp6qkmkwma9xl4af9";source="0ldf8yjqqxdkpyxxm51q40y5w2zhpwv19s0770nmazzchv7hs23y";}; -hepnames-35722={run="0almnyzzdf0q50r6qi7i6c4pp9aakyzdzj2jxkj1y0h5smi602ii";doc="144wikhsm6mm6f459r4paf0chas0crzvd2rylpynhsmkp9sk3fck";}; -hepparticles-35723={run="076w3wmdywai4pc02k8nk0qyc4vmvn9x6lvidmp4z6as0jir7ydh";doc="027pgn4i7n6b2zk8ikyqj4wlkkw1njq4qcfkmy0bgqz3al08zr0b";}; -hepthesis-46054={run="165n2pwn04vsln5xy6lkg61c1bp65zyqsd37fmmd3xs7yhv7xc2d";doc="1cql3rp42bb5c33sdfip69g9rd06107zg6wmsmzkv8c019xwg4y7";}; -hepunits-54758={run="11szf1jiralk8jdp45bzksgd76bxcf8xgdk707spbyqf6fzafrz9";doc="071xs04zgnw5ir33qzfn0wxxfsk75d9di0ssl394ksmrm14ny3vi";}; -here-16135={run="1l6xh4jl2nipnswdn78378vhr41ikj7qk07j7iaqkyigk5ndl0vx";doc="0i454862gik3jy1g3v21laf8qag2cadvapqz0mn68hl9ymly4b13";}; -hereapplies-68638={run="0h43apcwi4mdag2kpv9js9g8a6x83chskli7lxqzr8zqcwj97905";doc="08v044j2h3w5yyzh330q5bfsip55zx9s0ywpn2f0b8x3nd5vgk5w";}; -heria-69058={run="0kqvcx9b3bg661i3mqdjxf8m8wx5cz223ifdniwkclr6h7nwrx9x";doc="0rn3ng7c8jyg438yl8i4l2zl1cwf62izfyis889py9axz4kc4i66";source="0dwcnmnlh5xp6rlhhgc70p8p6saz59chh2k7w0hvnr2p7768hfdq";}; -heros-otf-64695={run="10q1g30vma4fnqyga8279hqy2aq5wq6fv8d8nw22i9mm8ms2wwga";doc="07k4k2rrkj4wx8i018jfccs4gf2pvx8grcmz88lmw52im9ga002q";}; -hershey-mp-64878={run="1mnqsqsc99by1r80b6y4rfb3kzb0r10jsfpfgy7yragr8rr9xzjj";doc="0xh4a41lfds3yrj1am613c4629kvgvd9dfdfzmss9li3j5pa6jwp";}; -heuristica-69649={run="0k2ii054dq1hh8xj3n28mn0lg54r3xxcyzq7s3g782c11dg9l5kg";doc="1ccivk54m07h744dzl2162x82bbvz0vjvrnbxmmvrc3sk26fh2s5";}; -hexboard-62102={run="1rbyaspfnvcms41rakzrchjrkggd0m5nshpzyhcf36gv6vxcz8ix";doc="18fmqz39xwns749klira00vlm779gxja0i8g0rrpy6f1pfch93by";source="0c6a9q1yj2dam3892m6105r737fn9ygiksd4fhmbmqpz9rxlm5zg";}; -hexgame-15878={run="0s68961p0dsaila2a3symqswvgdhh4ah08aphqjfs7licn50yy4d";doc="1bfrm8mz98l8nrxgnvp8q54pr09ixm81wy1ds1ww4syczpw7jypm";}; -hf-tikz-34733={run="13232m6hybqv16f6v0bmgiyfqdfj407mn0h4m9wgh9pzwy3g1rmz";doc="070h5rdgfffjs8sb2gaximsqjzby2vcf9ffvpljkd3jzc8rznlbm";source="1df36m347jl9640jig0qrk445s0gxyk6rl74i19xxv567bxh9n69";}; -hfbright-29349={run="0qwwr02q170q29rlq7fw61888k1pm867vgj70ijckivibl0j2snp";doc="19zdznha8bfwqfyrhq18ad7ri8nd240hjs9kslswg70xfrync877";}; -hfoldsty-29349={run="0ar4swzfczqafanfzhwyw7kx765w743r1davbypc7lglcxwjw5y4";doc="0f9gcdi8wqq5g3camccbdzfyjppyqbvvv0z10grazq463lv83jq7";source="1prpbq8833njsmqanxzf25136g46i2yb4bqpvlps52294pjh0l0s";}; -hfutexam-68829={run="0v74nqzv0v03rxkfk8iyvj93rnrjj3dmwj6kmbihnvc55qbn20xb";doc="1nq3c4r083hdhgi99n35p691b2djys238dylwva6zw9j80i6vvnz";}; -hfutthesis-64025={run="1wr9qa2zhx1py23q9r7wigiwy2ik4gicaqb30mc6m095flk5ms6i";doc="00fvnydr7bcyf9ij674whpgxizcn2fpwizqdnh0srxm03znw8cfi";}; -hhtensor-54080={run="13mx7mg5jqrlyxnx19n0rs2crpxx2gp6m7l41m6l2ig5vlgc0x1r";doc="0k5fg9ad5avnsg84xwlcbzffrzf6y8l8a2m0dqw3clg7zjmq4prp";source="1pay0c1z6avkb44h0iibfn6xskiglym0fckfqrdv0bablk3cghjn";}; -hideanswer-63852={run="18v4sis4yn8b1zwcvrjadj7qzjya52wljvxhajxsnl4pgslkjcqv";doc="1rr5sy7l21r4ffdcm7bmlcs1al5bn4gsy6p2ig92f921f21gar4y";}; -highlightlatex-58392={run="1pmhvjxp5038nnxd9bnk3s30wgzxvbzq6z8cfmvz0k8h1nzkc1a1";doc="0q4v0dvr50wd0qbk8xvn7bayyq00kj8b8wwyn6axia3mpjmr7a41";}; -highlightx-68756={run="0vrcvnr23qg3ma2wllqyy1xbl3j7ggril4ah27ilwgad1i6nwjci";doc="00a5y0xlcdrw1x2gkrhcr44dyrmc2gnd7gv34r3vig8pfbrgwdwr";}; -hindawi-latex-template-57757={doc="0q35drybrlcfcrhrd5691m66nd17b0m6hkcsqazpb1ck227zih61";}; -hindmadurai-57360={run="1z3590pi02n90hwsjmihxk957hcqgc3kry3cdwpwaci43hxcvp2m";doc="0zws4bzz6fkhxnpsjxj15wwnvbd6rhxqilabzzvm43lv0y21hvlx";}; -histogr-15878={run="11zbm3d05j6nrzwb3hpahli54lf06aly60arh4fi9k52qcbsylv3";doc="046gw7h51w5s8p3rh6kwwi22xxj8bspbh7anf2cdzg4w88dardl4";source="153lhmgh0n224xkg7dmcajj7bydnv21spihh371hj5a461d4h9k7";}; -historische-zeitschrift-42635={run="1zh8jhsmn4klaqn18zxbk3ajxvr99djavz4cww5wjm8lh5sv473g";doc="1gfymz7b2khfnn94qkd3dawb7ppqll9qg7nsx3qac8pqba539pv8";}; -hitec-15878={run="1rzv2baizqa6fj063knxhac39slaaxk5lbgpl6zwk60nbp1lxq3l";doc="1p6vcgy1l1avz05h6r7bqwr7hl3jrnyryl3vn1i0qad25jryf7qn";}; -hitex-66924={run="0agmnskf8hjvkjbkj5m05q30v020m5vaj5nqwj8cpnxzjhq1hf7v";doc="1d1mnnq733c8ihhb490inch97r71vwrvsj8n61dqmalj89yn2n84";}; -hithesis-64005={run="0j0fsblj5k3jpxqgjxh7abynjqiz09hgvywrvqi0b4vv2fm8ccpa";doc="0rf5bffmz4158yqa05l4vi08nf1cl115y0ff9rkvdzjn249n3mgv";source="0mix1q6wf5723c54dsc7xx7kcwi0qz1kvmzs9yfx39295cvg9hzh";}; -hitreport-58357={run="01xxw91175ffcix6s7ji2600j966dbm6zl8fbnfwabb1rvn39nq5";doc="1wpscl97hpc3s1s34bskz088ph3x83qq7m6qgjj0xa2hbm2g77ci";source="1hxcw8n5aa4jfpd8r8f3442diww9zhnywd6kbbqjs7928bb51vk4";}; -hitszbeamer-54381={run="0nw7ch41rjp0wz0k508x2kkg4yqfpy6yfcl7n3rb88ps8fiqd786";doc="15kkzvgn1n09i7nnfd9mll1l6xqwrbpc252k54gi791nc30acaip";source="1ysr0z079l5k61v5r77hy2r150did3a1a29k1xppxrjr5ry3f4nk";}; -hitszthesis-61073={run="0dr4ifga9v5w7kdx2iban28ajvw24b9ayzs9rqa3hkkir460hhhf";doc="1v839wq8vrswximiabnz3vzfirq7q34zzqvxxyi8791x1z7a4hph";source="1w1b1cml2k1fvvq00lrga4k5sbifycxf0g1hb33wm05wwz0wihaj";}; -hletter-30002={run="02v906vgbidc2s1mgz1k3666riwb27vsl7dp24rd8q2m167xjd29";doc="1x8q4jkrbw6ddkqqlaz6mxj4q105vjs8k8ifphvkvhawl9iikki3";}; -hlist-44983={run="0ac4n38nnimrs14k1s2yizbqvqky905qcv0kgs0aq043kkmpi0v4";doc="1fnqm6kxr79y6bpymafr2s3m8sx5mviys06hcs8sfn2gzagg88bl";}; -hmtrump-54512={run="13pq5h9pwnp8hynsc35ib8wzblh3y4gx2lmrrvd0big80wwsdhsm";doc="1bzgqgrjlpskqydqdj26lsn55pkznmbbiq0w4ybr9r0djdmqbn1a";}; -hobby-68137={run="0ndhwgldn1na83jzdk1ab03asbbp090a2czyxipm5s82zmfa7bm7";doc="1yz23fn3zdixc5xxprl0jrly8pqm1n0dzrv4032802l4bysxj7sy";source="1nmgzxkxsq78q35zf2xpzwp3lw7s3i2gya18y4xkdq78673s11pg";}; -hobete-27036={run="0825ng1xcpdmjihiffzjrvcvx2fqdz9mryq2bwffas22kf0zlx46";doc="0il6kl26r8wmm6jzii7gmr61af84bl9dn4szlnw34dgsdg0an5hh";}; -hobsub-52810={run="11j0fxsxmyd93px9j5fdarz1231nczdkfpf1qf33kcdpyb44jrs3";doc="0hdidvz42acsgy021c1dzlvshcmw6fz3pkqrwpk66qk2nnh30dal";}; -hologo-61719={run="1jhzw2bxl0nvspr0blkglm6zbmrab13fs601h54gnrhcw10mxqwi";doc="1af7406hbdvb2fb735i6y7wi4bhnq7x7sijf63zl0klpf9pii8l3";source="04d83z1pw6scg4cd1616ix291zi9dz5nnvw9xc8hd4lfxf15nx1c";}; -homework-70050={run="1iqf2x1sl8cd58174gr6ksj2p7nj1pw5478j5aaszwsc3lg5kbm8";doc="0bc5yqhd1qj0jn17ciz44xxihwkp7xh6qjjq133y7ijmik1blli6";}; -hook-pre-commit-pkg-41378={doc="0mikg4p9wxb28vgwh1acgdhwa2fqnc8rw3jg355d6s137m40awc6";}; -hopatch-65491={run="0r294p098z0qykrh9r4yxmc0w72mz1nmxqbv418pmbn15wgj031v";doc="0qxa6maigbzx7hc3nss3wmvcpyc9wvhq0pbzni7j0hqyzzsz3vv9";source="1kbk80432fpq30zgix8waxq87kjd2bpcv72idaly8yjbj4pa1l1x";}; -horoscop-56021={run="02kazmk5sa40x0a4zb30gk9lkky0ak825gczbr5z8wchwpy4i1ac";doc="0w9sgk2j1fzkcfzn76zpygrlyi9fnimp92mygsq2z6rpblzd1qyv";source="0c6zkcb2057y9x7mz4q3nwin8h8ax71yaam21m91gk6ad9k8l4ij";}; -hpsdiss-15878={run="1l7mbnhds4c6y1w5vylsx8j7b4syl2j785l3xzvk89nc5g6ck2qh";doc="1cxdd1340b1gkn915id7xcdac2zp79r1yi5g3wjwmj4kbn7z6sbp";source="1dar4y0ajqz93znww0fkf36li50b82hbxixi30hi8fm8y2hc3j2j";}; -href-ul-69359={run="1gf2kcqh60ilzkd2i1fc782db4nxqgrizz6h2p0i2lvc4qplj95i";doc="092gjbvcda2xacj0a3b8y6zlizkkyzqcbr6qfhdsqyds1sdrzpjj";source="06paqsz9is5ksj8lnny4d4g7z3wkfgv8lnyl3nzckj8ap0f80g34";}; -hrefhide-66189={run="1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c";doc="1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0";source="0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q";}; -hrlatex-18020={run="0klc0pb2b2dcixaqhgxinhy18rp0lwck7129zi5qnpygzfslpdws";doc="1dlxj4rv9gaxd6i4ns4zmhykhxwsacw6m3m2jmk2lkc3sw68hsyh";source="14cw35brx8mqv05zbgrvfmmjhxyryx7dmj8dk0fkimqbyvhvv9sj";}; -hu-berlin-bundle-67128={run="109hjfg6p3g54pz7n6i64ggqjmvjqzmjp6ipddji0mnhkhjfww6b";doc="1j2vjhk6rnsj86a59cd081vfcqnb93lz6szis05cs53k8pa7yh52";source="05x8cwvh5xkjjw069lpw7pbsnb5swvf9k2c6l2s1v0w1wrpwg7b9";}; -huawei-69871={run="129xaknawlcr97mfw5dz0ipy7hnhgifl6xkb0fcf558s7gbpaxpp";doc="0cy8wfqpbl4cryndsah2l6bp50l5qzgvgwh8fm3543q1v9s4z0rg";source="04k4an9bsf58jkwzwis4blc4dmphgqb9fg9mx5pj4hj8y5gaijhy";}; -huaz-64723={run="1vjfx3c2hdv2jzqz09v3ki59dlmgnw0ff6m394nq6gx0qqk7xl6m";doc="05xsh7jvy9y5v9vl25br8ixxbyfd754p0hihflrymkv97f1b0nlf";}; -huffman-67071={run="17pgzpbhah5m0gljhkqymv5lxpl5bxxgif9m7rnad20x4nmyzz68";doc="1r6a1i3j8s4843gdvii740dl5rbilgahcrs2xw1zcqpq8z4xbfnp";}; -hulipsum-56848={run="1wfcsaff7rja3n0151ddzbfl9b3gkfkwq0vp35zcrd80xsqlw935";doc="0994kin6fvbk4j9rp53vjp6ci050zxsf6z3qi7zdfxifd269fhx5";source="1a5mkkl36dk60baffj3an2sa382p39j2sdrgadczj5r9pm9q0am2";}; -hustthesis-42547={run="0c5akc97v3fh3skxpgmffywca8kyswmaypkyxdzwrqb1k2z4xknp";doc="1llsyhbgdz9k6swry84q539yjsvcxj6hgirqcw4vbvsdxxxsbyn1";source="0nqs1ifkhhzspdwg5nbqgpd2309aw9r65cav51vxpn2abss1q6a1";}; -hvarabic-59423={run="1cagm9zxkhrck5svckh7i0c3zx48vy0h6f2nhishm40g9q9r5qay";doc="06g6wmxqgfj9zz2ph7gwgndgkm2kzpd4ci7pkwl5qm41ik96l7a3";}; -hvextern-69651={run="03wma227maj0j0f38l03vnm9hvqavs70i17nczsi1bj9kyfbm7a7";doc="1qh92gavgygisd02hvbnp675mpv75mb3w98zhb67q37dy80v7s4c";}; -hvfloat-70400={run="1xs6y5cryvsqbwc1cv43lk5jslmi03xi4z24658w09yxbi99lzhq";doc="1ahmy559jzha5jack3h1hnafq27lp7zl5wsd67m9vj1gny7zcsqb";}; -hvindex-46051={run="1wk4q29iyqrk83kafwhah5gvvj2ywpnqzvnza6cwrkb85fd1q2i8";doc="0vcdmn3xc4cm3rkdkzi0qvqakgkc3hrgy8nycr5c8vcb6xaiw0gr";}; -hvlogos-69581={run="0g53pwri6xrqa4a1x277iqivhy7gsb2khj87b3r3vgxkbrpn5aqj";doc="17iph0xsl5snqp9xmnylwr3cp5z0f1f9bh6m91scw79p5nl6rlyb";}; -hvpygmentex-62405={run="1rnra0v65wmz8yqwfa6zqqswx0m7j54z6wpzvbrp2d5gx8azsdv8";doc="16r1sqsaw8ij5jxf0ygm2kgdhxpzsq5g61jhj9rq0zhpjma7fhdx";}; -hvqrurl-69723={run="0kyzp9m2spgzyz5swrrm8xizim2mbjpi8w8xax0c1llj34k1m7vp";doc="14939z9p5f3h54n0kn34p29fz2smbqdchxakqx7g52gf7gqmx25d";}; -hwemoji-65001={run="1vkflwxx8c0ckx7kz9mkh2qkpyxjjx9zmp940p9w93x4c09bs6l2";doc="0i18fcfbvyv4k578bn00w7ngk5lxp29n1j1i52vjwc4cp25lfgys";}; -hycolor-53584={run="1dfd149g2k8cq3lw95z6r4knyq1mgirdqnk9c4lmd7ip4rcs0vi5";doc="1pc12vbn1yak6l6c1fgpnj0s88fg94nagj4b95mvclad6b546g71";source="1f5jv91vsib5vk4byr0481a8j5pvbwmhfqz2qd14ck2vw8laz4ap";}; -hypdestopt-56253={run="1753c7vjx3smnhl1iylg4x0sdcqfg6gb0wdbwqmlass4qdn494w1";doc="07a2dpvvyj2r2691v8izjnqjksna1nm00za4sva1npcrhkc2qq1q";}; -hypdoc-68661={run="0xbsmzlj9hf5y349r4mvvnzc4k183fzr8lp1f07r1dc0nbff1qvq";doc="03bcsfydm4yzm1g9ijz1r2r0f5llc0i3pf318aa5rfy6j896nvvw";source="10yvzay1g3nk2kpv2l41vd2dqxqh5x03dd23xcpd4lk09rbddcpx";}; -hypdvips-53197={run="0ax6n7ki47jyzp5g8781c7rv54hwrl0fg7d1bwzbj9bmqi39df4v";doc="15vnypyl6g50d4mycz3s41h8ccpmknr0vh9bwacr6nxbzlyyykrk";}; -hyper-17357={run="12737gd2nmnalkgl4d2sh45r4d621zl6g2zcih98m7dw8qr38w2v";doc="0hzl3fzgmn6kyl6p4d98l9ycisfhb9v50a1m6n8q1k6jpvr10z9f";source="09m0kdcs4kqksqwxf29yq4l52kb2mj5pxkry010ibwqw64cs5p74";}; -hyperbar-48147={run="1bj0v54k85isn3p48vmiygcvd3n06r4mqcp75hf96mmp0wvmczg5";doc="0fmrz4hlzd8clxx150fk4zbkdgbnhg3b7ck10225b0n1lqgnlh0h";source="19x81f6bki5mnx1nblrl0ji663q0pzkacy5lbjsqyr7krdc33fyh";}; -hypernat-17358={run="09lnsw7ycwkk71fyjk8zwgzdjv8ff3k028q7hr27dqsiyg4hjg7a";doc="150ayv12ym9h68a09h1xakdfzccpix1pff9blkzjq6iz5imzzpr1";}; -hyperref-69523={run="05yj1g5g4dr53i1v95x95pk6q70p7nr92k4iqcm948km567q2ar4";doc="1kbcilml3wbw2rpmvn85hmr3wss907n0h521d20kgbjvpancg0p0";source="0vm5ma9xz5bi59g92dxwn7aahwdkcprx0kb346s3l15pw9qhm1i0";}; -hyperxmp-68251={run="1bgizrwr5wpr8qprjwyf9z3f8jw0m1sq8qzw886j6lwxlfg6fp9k";doc="0srwvld1grn4smw2pnr0fp2082vvz3x2bj4lycvx036991mmnr6h";source="10ll53lhsqz20cp80mvwy1z9qna1sswappy2ifz71m6v304a1q9v";}; -hyph-utf8-61719={run="14jj24fr6v74vj8wi2a9k9zk9vnrvmy1ni4zn24dl5fdfw75n5ik";doc="11n1blnx9i7q2dlhyhf1dxs2vnldc9r8f3k6diix0i1np8hpz05q";source="1cff5ijmpxc752n6cmpfzn1a10ihrkz7n9l55gz2k2q0a00m2ssh";}; -hyphen-afrikaans-58609={run="1kn57mzrbk0qhz69b1ysdqjv8xirsb40yz61jx146kqc4p1y96lf";}; -hyphen-ancientgreek-58652={run="0lhy1zrg27748mrx8yz5qxpxl3nl460l5l6impiz3lbrgnld487n";}; -hyphen-armenian-58652={run="02x9p12zc78w1x7k2kz019as42d5kn6gxfl4s72rd6dyrqii7bc1";source="0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9c";}; -hyphen-base-68321={run="1xganah7l607qg0hyridxx08sfjc8qakykbc0c97pad677mr4zw5";}; -hyphen-basque-58652={run="1dy9fgbh4i3d9ar8wazwjvhhwzyhbys68icz3zjvk7gk9nvbm9aj";source="1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v51l";}; -hyphen-belarusian-58652={run="1n5md9kf7iiwqm236bkdsl4fb4vd6a03b6q1arvfa4l4yh8jvr13";}; -hyphen-bulgarian-58685={run="19h61n6ip8ja8kn8p1fb79lfv15pfzdhhzih0hg15cp1891nzlql";}; -hyphen-catalan-58609={run="1aqn66448bbiycmjyhbxikr4l5pvjvl5vm8gpzjinngiw82v9j98";}; -hyphen-chinese-58652={run="08sbasjp9b4wl15zmx0diayqfa9i7pf65nnsa98lbc9rpyydvhn3";}; -hyphen-churchslavonic-58609={run="0yh63znzx0bqqqr6x70c7laikxx82ph85jw48i0jh9ziv0n5gq8s";}; -hyphen-coptic-58652={run="1ry5srs6qr7z1xj1km0jsc3z278iylrfq79ji31kxmf1qs7rwpnd";}; -hyphen-croatian-58652={run="0fqwf7val8hfdcqww828cfq3706wi0w0ypmvwkkllsx1nv2mqiia";}; -hyphen-czech-58609={run="050b4vmp8n9nwqzagpw7mq1ciin9rwgdicmbk1ajl9gvci7q1q8b";}; -hyphen-danish-58652={run="142jxvssj44xh1p8d0b298l0ri33blvac5syvqgx71cvsbwpc6lb";}; -hyphen-dutch-58609={run="1hxwpb67c2hzzfk6jchhzbj2mfxzywz4zqm3z1hz9r2ywahram59";}; -hyphen-english-58609={run="13h2gli0pfjg797i4i86dihmnrpp52fjr1apj71fgjiq2453zsdq";}; -hyphen-esperanto-58652={run="1vfrf4wby1gmw5gm8h4qkyqa3hsx00nwj2qs05m1kn119k0sg70m";}; -hyphen-estonian-58652={run="1x8by00sb45acj1rkd5az408i0i2wjdabd992p4d599sf8b9dk05";}; -hyphen-ethiopic-58652={run="08dyf72ygqh24h15na2ssl2f4w9jlffh4vhy6lvrw2y6kss1xr8r";source="0j55k0sh4dc53wbngadz4wy86k046bsi4l5a329044hk24v4ydm0";}; -hyphen-finnish-58652={run="06c9r6dfihycr4vb4bvnf08d3p94h5n5g0ayjpha6gl08ab6wmv6";}; -hyphen-french-58652={run="0j41s8jl6449lys7zvjy9psynxlxlbcf23qh9sxf81rk5srzwkdq";}; -hyphen-friulan-58652={run="102sxp8901hln47nj7wng556bmrn0hqsljlf0v0ll8lsngf85h33";}; -hyphen-galician-58652={run="1l0z14m9j9w1c9kkm61r1s4q9fvbblhdbrqhg8gcddfh0b85qllq";source="1979y5x7b1x8j9v4ifc7k24zb6pxd00z0c6j9knndcaj428mf135";}; -hyphen-georgian-58652={run="1ja7skdhwwdy3idgjf508dbhbpyl3a7cj9mx8x1rswywy924liqf";}; -hyphen-german-59807={run="12x6z459lmns56s7h15lhz0fvz4dw1v51l1a4akynlbs3wh1adiv";}; -hyphen-greek-58652={run="0yknyhys5j5d34hlzw5wqdm1gw74p6bvx4dfx5kylvwjahj6ys5x";doc="16ikyzvd161hn95mi1swg0a390liwz1cq9534i5nvzh1vkyy4wrx";}; -hyphen-hungarian-58652={run="0d0bg0h78ij9b9anmdlwrlddd1xg09c2k5ganwnydbpj81c4z425";doc="1r10gjxyk8bkqjiiz7pij7zy4cvspvhnimkszl2sv0zgrkgayw68";}; -hyphen-icelandic-58652={run="00lnbm193g0zv7c1m47yz90gik1bd80718y8cmz5jhxz9ny1l271";}; -hyphen-indic-58652={run="02xnj4lrkvy7gs4vlnsvili90p6p6byh659mzci1ad4x36z4362k";}; -hyphen-indonesian-58609={run="047j1835ny6l0ris6j5haw41m9id38r854mx384kfm48sa70bs9x";}; -hyphen-interlingua-58609={run="1gc3c86zbjv6j1kw353xwhzrqrmq41rbw2ah1xrl7rxvksmzmsnr";}; -hyphen-irish-58609={run="0kaf1as4jrs8kc7rr2jg3cjkxr0x4fxn88gqjxdjdac6xhlvg0w1";}; -hyphen-italian-58652={run="0xxlpfvcy4frkvxjgx85nz86z0n9cwhgsdfmhgzi66w8c9c2r9fs";}; -hyphen-kurmanji-58652={run="164q51fkcfslh1vdz19ilwjbrs0v96a4pn45d6n0cvv9vw6gi791";}; -hyphen-latin-58652={run="0l7lsp9igylrk4cvjff8lx8jk5biisss3wkcil26cca4hb1612aj";}; -hyphen-latvian-58652={run="1p5kaf7pb5qxj6h3bglgnsqx9rys35i02piswwvayf4bdmv9sqx7";}; -hyphen-lithuanian-58652={run="09a4636b77fc2rmgc2b4jxl174bjc4ji69xply0yls4b69727i1x";}; -hyphen-macedonian-58652={run="006fg0snc4h98fzdzwdhk6ibhyrvqhs502wn2c1dnizlry05fdv6";}; -hyphen-mongolian-58652={run="1mdgs6gcvzly6y2i5rlxajk2qxjac0m91ayqb079mz8yxwvmq6xp";}; -hyphen-norwegian-58609={run="1sp47h5syhcb12nik26iy6xs5dyxrj5a53vzr0scbc0s746qi4gw";}; -hyphen-occitan-58652={run="0v0yivzx0xl48isjlnxfzvlrx9gslg6srids1aywfqmybffmfw95";}; -hyphen-piedmontese-58652={run="04sva2d6dxaick0j30izd7z71vpw8q7xx0xvihcvcgb62gb5bc7a";}; -hyphen-polish-58609={run="121aayyqidlz8kprwkb4ydzqakw1m7a5ysz9zvw7clb65z5yd69i";}; -hyphen-portuguese-58609={run="06dxp3qddbh26wv1wpwml41vpbm4y6386vgd4xn2107shhbvhqpy";}; -hyphen-romanian-58652={run="1720vcpvmm086k0ndlbp0rkzmz7f7mnmb4wn67jm53357iamkchr";}; -hyphen-romansh-58652={run="0dxcw56bkl7ddqj9fahmghwsdkmi7ncr5j319hgcgnlbp1717rkc";}; -hyphen-russian-58609={run="0vlnw1xn92ncl31yh6i7k386n0hp6vx90lgb1kxs0a3zrxcds0wa";}; -hyphen-sanskrit-58652={run="1svx84qj9vr2s6pyxn8zz587ph37g615hi3g1m4q6glw9hgzsmkr";doc="1k6vsa9xakzwmjma4f2vm685cyb28rjjj5qmpb7l0fpqpmvndp1d";}; -hyphen-serbian-58609={run="1v0v281ws9dyivqd1nrb5ms106vlvmsrvka5jmnzl1wnpw34z92c";}; -hyphen-slovak-58609={run="1vn6i784fdz35dcbxdcv85886mbg8vbjvx0w6sx230gjjxs1s571";}; -hyphen-slovenian-58652={run="0fyzw8r6v07p04m44ky3n4vkkq1dmfkl58xyx65pcpj9399bdjy3";}; -hyphen-spanish-58652={run="17gq675kb397kqd87qg4x03wj2b5zkjy8ynzpq2h1flh1lf2zfwp";doc="13kmgf0lwxm54gs39lm8vgg2hhajvqwviql1chhv2l7d66mxrcrm";source="05r3c2m5xfs6yl52ms6kc95v3x82zbs4py9ip6xznshfs5xakb85";}; -hyphen-swedish-58652={run="19rdzs7w80gf7q2xdkp1z2zc2hgq7mklfkrfdwzch2i50zzfxy6l";}; -hyphen-thai-58652={run="0k35mjibmsrahiv71dbl82r9v978gwkm42xjnp3zb4kgc0h79kc8";}; -hyphen-turkish-58652={run="0zqizvrri9r9bldqds768bslyipqrs06hx96b0nn9k6wm1y8pvsf";source="0rjwv5b0jwnwhlp6ifzd6p8iid59zylp2wbfk5crfjnknrl48qn9";}; -hyphen-turkmen-58652={run="17bhr58r8sl4fw8w3gqsb8lvpw48vdijr16bdk7n6ma0183vd1bv";source="1wlqx8wb0wsqhdv823brc3i8w1vf4m4bkb2vg917j5dq8p8p71aw";}; -hyphen-ukrainian-58652={run="1jpi7argypmrx4yvc23dx777r157c7kxgwpsix7cjjihakmx1s6k";}; -hyphen-uppersorbian-58609={run="0rvb1k16rs9hvb9xgf3yv79mh2gkndvk85blmjjsq49awwgkd8y5";}; -hyphen-welsh-58652={run="1klj6ir4b918cx96jd772ps9fl2fljh8kwkakdwaqqi8szzr65d5";}; -hyphenat-15878={run="0ckfvjxdv4rb8156x2vmwl15mk9057i2lyg9xhqkmvqh1ani4lc4";doc="1lzpdz05dw5m8ljxf5f846m1x4nv5yrqbg3sixf7dgyhsmpfxnls";source="1ddwv26nfl4jwz8vxs4fwc9qw8gds1sg275g2bg9ci8dfflk16k7";}; -hyphenex-57387={run="08f915yqpx6qhc2dzbicbv9cijzpgcl4jpifydqcc0x68y51qrzi";source="0lqn354bskaa6g0bn9g1r3lbb1hj9si5n1ki38awayzp1yj8a3q0";}; -hyplain-15878={run="1kpaxdya6m7x4dmrxqzrs6k6agxsg8lcg5yqqdlips887lf609cl";doc="1q5dh42gpv4n9ps0yqyhcscjn47qz4zf35jlg56xgq2w5229k742";}; -ibarra-66892={run="1ichmsdkjs71f5yx5cphh08dk07gmr7mg7n0v2p4sg4fh3dbxjv9";doc="168k2sx4shkx8h4l5jp3i940sp2bd9f4if2pjk6ilmc832dbh25v";}; -ibrackets-67736={run="1cd32hk5wl2xzahk9xsrnmv8l5r05hqi9gz64d6k0lzard4p494c";doc="06ifqb5k7z08mzd8kkrkj3r37yfwgy5fw4zygd0an5470pk13zam";source="1axxyjfhkany1k2c6rzsyqilrq15809fd73r9hv0qmpbgca7m3m3";}; -ibycus-babel-15878={run="0az75laq5fxnvn12348c3985148isz4n7nv6hd0d8amanm80h779";doc="1256n1qa6zpq509rk02llcixw3qh3sgi9f649pv1hjk6xdy7nxfl";source="08x3knpkwifgi2zxv78bnfn10ix7l6rf5nhfqi6w5xck09l7fiaj";}; -ibygrk-15878={run="0krpzjn96r70z8rwsq52j0v1x7ppd766ngvf6xhny2kd7mshl9ka";doc="0prn5b6cjc9ljxdnd1ckfgzqwlc5vv4w435zvyz75r3f1dvbhh9m";}; -icite-67201={run="1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr";doc="0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i";source="0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739";}; -icsv-15878={run="0gv7wrghqivfm8yb3nkm6r8jnvx7klbhr1nbp27cjaliz70aapa4";doc="0dlsqkdmx4nhgs15hhn0nw6vk6h3q3hhhwdymy8nnxraph2mvyl4";source="1fh1znhlacpci7v23aj9zdczhc87sg3l0s1gsvrbgznpadgbzbim";}; -identkey-61719={run="1vs6sr25ybmrfkg5v3m021hlhw9x3gpynh89q12a5pl2ka094hn1";doc="0r33gzfwrj4j8a2i8kdddbhgljf3hz1b7cjfxgmv5gdqmmjywnx2";}; -idxcmds-54554={run="179mvb95a1cxkn7ncgs7xwhh04d36s9nb5jjxvaszcfkp9rnlkcg";doc="1ym6yi4cpw9flz4si6blg5bfj85sf0p3y6nipc886ixkwiyvsgm7";}; -idxlayout-25821={run="1y1vzyb1l5b8q3qqs62zfiw7vfd9c1pdha9z4nm5xpsar1nk69qx";doc="11qiyzcj4zi8kd9h2k2jhg8i8rzfwdam9rhr7cmvbxqsqirf0fp2";source="0fkpj4gn06wkq3saprsb3gm7myj04yll4spz3j7yi28yniv4cr5c";}; -ieeeconf-59665={run="1qmpb96jx5zxql57bh5ppzfzfrgamnxn1nsqpq1bsr0xf21zr6xl";doc="1jhsfs770lhq34xxdx6ak9mbpmamfz696kxy6dhvfadzkn3v1ls5";source="1r7a5wd0hqhjh7dkbvm0z1fiih4f9pxbx6y7qmcy1qdvlm819jmd";}; -ieeepes-17359={run="0nipchw9hdlc7am3n052bszilwj192pfcnc9p5alqnffrd8c4rdj";doc="0ff8xa7w5dmp356klm3lfr9dnfplxjqpq7aiczp6xj092vmjrhdi";}; -ieeetran-59672={run="09j24j6kpgjx58yghh902bdpkns025v9av6ym2xwslmv1ya31pka";doc="0y3bw20f1sa7dacqwrwc43masap5sz23vna8bbkf4p74rdgl3bkn";}; -ieejtran-65641={run="07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly";doc="1l5cyqlsamkn3yjdia1zbv7lianq8jcjl83pkywimxnybw0kvdbl";}; -ietfbibs-41332={doc="18ypa96z1gclq4amka28sv26pm7lycak68zf4b3sf1bx4ldnzmxq";}; -iexec-69420={run="1fn85bszr8ryaykafms3y0yfgm469vmikfg2mpajyn5bc7pmhnb8";doc="11j9lf6akvgsqjb9h9i69qxxkwa8h2092v4znf8yjrdcasd4fwbs";source="0254awws0vimn7vlx4gjxn03dfahdzwzvmxrj6x5mmmw32xvfhhh";}; -ifallfalse-60027={run="0pn37mzlkpswyykciwgfkw981098gccqmp7wllffr39qxhcj6gdl";doc="1583p9f3lv7kkjygqv368ag70jq2b184j47v32aqpgnwlmyn55jr";source="11636chvmy2icfq6f7mvdq0fpcn36yl15g9ffpp0flqdq7c8nd14";}; -iffont-38823={run="1a4zx0mysk6i7awvcjv2y1yid1k160icrkqkvw34qsgs35qnqbbq";doc="1iqchl5nra5ldmv5ddpwjcm84whpsxym34vphj2zxvzl0hqwrc2n";source="1x187pafzgg7h2vvy5dfc44y37q45lkzqfkxh8b52pysxxl23014";}; -ifmslide-20727={run="1n4dmmslpsx9fv9wqiipcg04lasym2fbgsqkvvffqmx5rszgdpha";doc="0n7hsymjs1zfjc5gbn26z2wdl5qicc7pd251s0h4qnfigq3nhr08";}; -ifmtarg-47544={run="0wxhdmd2h7rs3fck9yq1g48kyd33m7xzz3g7ixg046azai8f90m0";doc="0h8li5c5lxccf2a325p4vg7xgalzwryk8czdzcf637sbbkfhd53d";source="1yh0c42glrw5cgqk22h8lrc12lriz436wz9vrc4145gjcxm6p09s";}; -ifnextok-23379={run="0sf9dmz303pbxfi24z6fb1wxia89qaf4svgp4sbpi1yl3gkxwrmj";doc="11r5zrs467h3rv5j8c7b5iav19v9hbcxbspgfdbd061g871xxd5y";source="047pc422qhh9d80rjgmjgmn5xsapf9azvqrl0cjn28qw4m5ccs12";}; -ifoddpage-64967={run="14gi24l4m9zmyhckjq3j1svr9858rm2idr1wwjwmp561wp7vr6yz";doc="0gv1j0swzc4imahk9s96nga1l42qzc0xkznas0jzkbi27s2lik4x";source="0wz7iaxf26qz1v8sc0kbrz1wy0kzd4zbd0qiscdhmhmw2xr077zf";}; -ifplatform-45533={run="0abhpfw3w1mvpg52xaw3cngl55sszk5ji9a38yab8vhknh3d3jby";doc="1b41nzn666askfc1kkm1lwf05ggf2ml8gz3rrki4yw6ch52sl2sc";source="0g0qvbvv4j87rxps9yypair00z6il5hfjczkrmf4fkycw714sdqa";}; -ifptex-66803={run="0yw0dphc2pdx2jrm5khzrnp6rg3fbcfc8z6ppwmyid8iqxszpdg3";doc="1mbdhxl2fgbwjbsk8jqk3709bv8k3whqagls1vqm5386lbcycvkv";}; -ifsym-24868={run="1bs3974l1jdv0b2wwa94861hnb05kb69bsyhvsgh6k9xgmgwfrla";doc="11k9jfqrfmshwpmni6bm0324zj7c939k6shvi2l69k4w0kx6phlb";}; -iftex-61910={run="0dzpfyc2ld4kbdwj457fzmf733792gz1z7n7hpbn6z7npnkg6i8s";doc="07wvwfxwv641lmk0p1gplv7rsvab87v9fgzamizqvihf2ys506q2";}; -ifthenx-25819={run="0bp087nfq5hb3a60ayprbz621nmk0acisizkw5i25n4kryi6vc63";doc="1hzz8s2xlz2pij81cfgjad8yaamv8l4iaripj7bbifkq7gy38afj";}; -ifxptex-46153={run="1wb1laq1nn02klvjgwvjgansi4anmjaik04fl0lylr7x5996qa9k";doc="0bh8bqly3zzzzgs21cb51a06023l9xfig5qjfzrlyvfqms7wj19z";}; -iitem-29613={run="1sdsc28fw1lrr72s4wwgwk0zxk9720ll5xbvap2na4i3lp4vjghf";doc="0grgh5bslsl67ygvz2cd3xb9adn3w4amhpkkxnh035vkld91fxh8";source="1fk3c5rc8ylf9jg5id4jnm1gjnrvafiivhr0lpfws4ddr2pmir06";}; -ijmart-30958={run="1j4i7f745nk80nghnpajkib2y6ddrzg16h0gn5cd215pibjaml6c";doc="01ds6p3byc9j5sgjhh7yhbpv36idlp5g9afsqryvhfrwy3r9900g";source="18saabw9v60rly8qp8vcgj84rjz88gbz4g2sda4i15lsjpmz4dis";}; -ijqc-15878={run="0h67131gbqr971hln3imf3dljh5jaqmdp23hb60zxnlxllf6msjs";doc="0l0pvaiqgyxk5fv2carjhvp6f45clrnah5sla7rdslf134d8ciza";}; -ijsra-44886={run="09dszs5ha929aws50zq2k7kia529bxfczs6j8bi0fvjnmf6kx3yy";doc="0lb3rlqsscmnqn65l1aq5x5ismsplgbm1ks1pn6cs2sxdjy2s0ly";}; -imac-17347={run="1v7zpbzgxz42b6zv0y3d2cmzzsal5mmzd3lb1nk779i82dhs6pi1";doc="0s64w9wkfmrbvkd8mij3y0asrkzcg2k58xjl36vfvcf07aw5wcr6";}; -image-gallery-15878={run="097brbh3xf2xi4s151iy8g6abnf0ba4yar78jz607f9dfni95i8c";doc="0f8a7jzj6w25al9c13mxd04bg2c701s0ynsd1rvnqdik6d98s0l0";}; -imakeidx-42287={run="0w0q18bxpbsqrj97309b9lyfcf4has5ldjvs0dwn45lciav8a7rr";doc="0h2wqdg6navbpzjq38ks2b9lz3hkmgi7v1y8ihbbv3aisyvp5r93";source="0l7q94z5a3lsy4kh7vxyr6mmywc43p681p1vjry1f9vi0s6ljwpy";}; -imfellenglish-64568={run="0rvdfcyy2f4w5dnxp396gr5516q76lyq5vshwlai26pf8f9ffd9v";doc="0mycayxx0yi5xrkgp48dfcd0vp8cw5jhqgdhwm4kkbpqckbq6kpy";}; -impatient-54080={doc="03cjl3lg7k7p4h8drw7vcbw6ymgmm2clv6sgfs3hdixs8dmab1b2";}; -impatient-cn-54080={doc="1pc20pb0las3slam1d9hmqigipmr6r98wwif12m33mm750vmq65i";}; -impatient-fr-54080={doc="1qwdllmi0ci304smf4yl6g8ah083jrch9clkyav7r5qsxnhwxbxh";}; -impnattypo-50227={run="0kmyjdasybcvr77jrirp3s1i8jwvhk7j04wz6blawihidz55myvq";doc="1cgk3wk3flpmlw3wa4sg1s9ry6bz9vjanzw8kpyhj3d8yl7cnzbn";source="0qc5wz5a4rgvrzv361gq3i6h4hp3v176klgn6fhiwshk84zqccn4";}; -import-54683={run="0if5vrbx6456ydarw57p1jpkcj2d7csmiffgll6fgxf2kllqga6v";doc="11hi1yk9xhqks4i3rhc4s8bbaakxbbmddb7j5sym780y45qm79c3";}; -imsproc-29803={run="0pkhmc596xrmfwp90w7brrzbjn5rzn70kdpnjlxbyf2j85dr7gz3";doc="04qasn12qqg69k6isnv2qjpcnfs1nd27vvdpqqdb23z97k38x2xn";}; -imtekda-17667={run="1hhxwaykslzmf70lvmrmpnn2kq3xa114lyvazgfg9sccc990gnlf";doc="0lzkiirxgvl2m0vnqpspr25qk1wyq1bs2sl3zi6704q3fvp6sqbq";source="19h57cyxs47awil222i5svqgwdmw9mrm16wja9f1j980nzzaq7wn";}; -incgraph-60810={run="04kzj381v6lj9a2hjgkrsjvs4h5hw6mn80cfmcp6y8d753ibaail";doc="0vi27zvbw8pwh9krr8zwh90m1fsx6wqsqkch8c9ggjy03518b5zs";}; -includernw-47557={run="1w51v1v8x7wzibcy40ss7ldra83wbil8w1p978yvs5kzbky3vw2f";doc="1zl5fsgzb7nm1wi6ddc3cngqj3apmjwn1wkmsz785nss56vk9f7w";}; -inconsolata-54512={run="1mbf4m3ll3r4nhxnmd3ridq7kdqlcjcm3g2q2s6qxgn4b6j9ikvn";doc="1rh7kisvs33v91r19lnqgma705dc3gari0g153ws8bd1px3ivsdm";}; -inconsolata-nerd-font-69061={run="1778fg0vpaf7ccqs38x9k8d4fsnawqvqpchcjb5bqjzg8mk0mvs0";doc="0ydzsljbbajpi08dy4lyqld82sqpyv17vh1pp1nwp6hrn6cml3q7";source="1jndmhsr8y15b630wi7qshn1kjq9q2nfkvrn9gk0awqzjwl56m6d";}; -index-24099={run="0lx5jl7nckbn0brsijlq78mm0gjshf8m1dqjhgl0l59qi56x5f4x";doc="117h2g30zbw5g6x3xlmpgq0k4fqixh0l8ah7350q1sxvddxfcc24";source="06acw1yb5z4f887p44l9afk78kpnjv9djmbwj55bac23ml2k3ddr";}; -indextools-68555={run="1f1r8k0psa7g9pk6kkgvyi9dnywsc4n34svfq2pj8b1gmp9918kr";doc="1xrlfkg43x4g66ip24spnq7vr915z0q7zdkqmi8g5zls8y81jg1c";source="056vrs54jnjnn3c2kvxfhhxf5ms8cpb004bhd8f9whb6c1hdjqpy";}; -infwarerr-53023={run="19nlrbfmqbkjrrx9x75s9nd6crg1lzimb2fr3hfblaivj6lx8p4r";doc="0p1s0v6p7ygkvz5f3vgarcrl85clfrj3ivzrka62djqyzn4bb3yb";source="1x2mkqyx7gz0bz31na6mcdyrlj11mxpjlzc6gb9pk51sdqjj0bbv";}; -initials-54080={run="13d5pvc2q6xc0i8nbjpifn5xyn7wzln7gng98nnpjxhk5y67bcz9";doc="0676gq5dx4pqs6c0z7i48gi53mlapplmms8s66qwpdq1aksswdcq";}; -inkpaper-54080={run="10989ja1vy9ca451gc0v0mrkqi25dwv4fdvw9y4k6z26g7902hap";doc="1dmvkq44kyxd5y4l2kc9wvgrhgk4kkfw0qfqzi2faf9xd6jssrhk";}; -inline-images-61719={run="1nq64ymrmfiw19bcbb25gmll36xbv58ynzvv140089pw7xn5x7bm";doc="1rjppia3m0kvf433ansxhmwvii70i4k53iqk9jphhk2xv2gfd16v";}; -inlinebib-22018={run="0v37ifnjpvsrcbrjd57yk3qqq195jqvr1cgvfz2fsrjrd2ima822";doc="0w4j64dxh11fysqpkldksv2qg816shz0dj16jqgbksxkjsig1i16";}; -inlinedef-15878={run="0k6190v8lv2l96qpmh3pkblhwn6camcq83w75rz09517bnysm4yz";doc="0gz9m7fwcdxs6q5a33v7n32x5jr4hbxsy4j2shwv39j1j2amr1vl";source="007648wrb4ar04g0851yw663cvlmdyifidp854y87yzh536hfwi1";}; -inlinelabel-63853={run="05qv0j8gvdqsdc0bg51n7mskbx88gv2yny1zffr409x8pvccnhlj";doc="09jnbnyc5sy1grvyjxnlrr3pg91ispqd18mfdk9zj8m6lwy4gh1l";}; -innerscript-68776={run="074xa8nfa50sdz3hqvvlrmambjnfg9yai73xx9bmzc7mrxsdkxc3";doc="11nli4g0q319k4whryc4g9mzqjsqz43ryx796kvhb3kw8v7z0rcc";source="1zam1pw4jjx2kcps4rdvi0rdrwz37xb29wjcbm5ir4z0lx4qq4fa";}; -inputenx-52986={run="0jjf29lj8ha99r2x0vz85swkr2aq6v2jwis27irsi79syfq8bpbc";doc="1kkblvi4dhfxsij5lmbdvmnapskvd5yahha5im2nlllh8crypwv5";source="1681djxj8c43i93ip864bi1p1fpn2dngkvh18zs0234ls0gkwiy1";}; -inputnormalization-59850={run="017dxyy2lykvcsigpq5vfklb2gqg1aprk0xk21sxa8bdsn3hd2gg";doc="13yvyh5g4a1k6bcqwgmgspp8gkgzvgcx5f0wy5ajp577cxsk5ir5";source="0wz9hw5qs3i3iah63fqhkdcijhv30k828a2a19268am4803m1pxh";}; -inputtrc-28019={run="1qy90zwai5ciajsiph6sgmzmfi16qgvx389hvxsfi28wccpm5bh3";doc="0fcxac4jsvhnc85p9nwpp44ij0yq4q1lxlw42dzhg88fdkl57srg";source="0b6kl9a6ilv0i5xnlcfjgia40ynl28dbz1rvcvak3637fva07ghk";}; -inriafonts-54512={run="0kbf9rvrml10qk5pckz21ag217wimqhdxjfk35ll0a17hc9yzj68";doc="1hbhfhmnjya1cmj1wzhvbny7maw9m2dr7sv74g2ka6gnl1n4rx1x";}; -insbox-34299={run="0ylnp3l21zx4y1bwrr33v8d79vlgz5frna9dkg62gz1bhjbw7f7i";doc="07iw7py0p0jfq5np89dx9fdvia3yk5mi0py77xrgb8v4gx7k5g3k";}; -install-latex-guide-zh-cn-69264={doc="0hs9pqhbf5pkdk3a29xnicj7i8zxgf3vazf2mmm4z6fc4b0kfpjk";}; -installfont-31205={run="0lszqj128c3f4wbcrvzzlvj25jl5rm0n5qfj8rsn65ycxvymbf91";doc="15x8jzcd7bwvbjid0hr56h7dw39n2rg6wbfz4b02y7shp1pn7hgp";}; -intcalc-53168={run="0llrnayqwdqxi91yh7panbbiljina3bynv2hxhi6sssaw3pyd92l";doc="1vav25plm639410p59bi7bsihsyys9yaddz0bcawxn72zi9b96r4";source="059pqs3f821javya7brxvl9v2mifdyw1vg18hr1zgzhj7bmlxh14";}; -inter-68966={run="0f7s4mfj1phliv0dddkhsf4gpzi6xmyxhwv26bsvgvs8saf7qsha";doc="1i12ppl2fmjv4nxvslqqrn4ygrvmf9aa1lf5wlsrwn238343nkps";}; -interactiveworkbook-15878={run="0dibc16gdam4yxil37y2zsz4cnfiq2grm6qqj512nng4zqnwcdj0";doc="0nh4zm37xipvmv5h6yxy1ir2gkjy23h22j8dnz7m04w021sgx7i2";}; -interchar-36312={run="040zhi6rq7l8s04zcq2vfxricbvakkxnx0bzihbj1ss21pmyrv82";doc="18lpyq26zc9b2ypcb98k578wyg2fp1fllsfyrp67b4v9lnz1m7q6";}; -interfaces-21474={run="1d2sg377lxrwv0w0zdhxdjsnb8sbkzadpp29h4jcm7v6qpirs1wj";doc="00dmb0jq7vvf7xfppwmw1pps6453rv438qkpv5qhlamqlvx2b28h";source="0s5gfwv1izv3y3z3lmfbxdw06830lzy85f7vza4i8zcdwf775pl3";}; -interpreter-27232={run="1an61a9gdja2h19m13i4024d4x4f741x4yxk983phl97nfadv900";doc="1vgdgriiwv3lbdwp72pdc7yz5f702xxykqdp4ih1ssx1sl9pcw05";}; -interval-50265={run="04rj730lnkgj4xfm3mldyyf6bb6rr1f3dhms0rnaiq2pzv77cqyw";doc="01ngbaw0lbh4dn8kk1vnv49isd7wk8gjh2qvzw6x9yk9nl46gzla";}; -intopdf-63987={run="0nfjwarkzi972vqn20wz5ava3hq87bpl2kvfig91ybz3chd1111c";doc="1sjlbdrn9ajbkl18lqx8lmxdlb0dyh7cjvj0vizhnsjgpwp5f0dp";source="1cz2y4x17smkjp6b7g6r3qg3whdgcj4cla315wfp2z9nzpgmy7fs";}; -intro-scientific-15878={doc="0bzgi3zg0lm6zwjnac90ihaqwcvhindfdphjijv7mh11ii0qxlmf";}; -inversepath-15878={run="08xivnvbyhaihb24w14b908927fr73kbk66x82nv9j332lpmfgmd";doc="097fyhn6dj9d8hq26xads2s7vz7hvixwl27psqrqqvhdlq3bvj7n";source="09d3dzckxrg9vdxh84nx3xzwj3rfarvf0bpda4qib179bgnqrf7d";}; -invoice-48359={run="0z2ixjxicphaya7244mi0gdnxnv3qawyxpa1kwv6s0r8li4604k0";doc="0ki54z1rlb9xwvsgd2bxv2sb135cc6zh44kpww0mx76vcky4az1r";}; -invoice-class-49749={run="05vbh1iclf9gj6nzradfvnqa7yp7r5c3ccahg3j7qrdkkb0xj8ig";doc="0myl8pvvfzd5jrlva1cxkps9g6jr0lpfw79wr3ghv2idz8ba85x0";}; -invoice2-67327={run="0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1";doc="057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz";source="1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l";}; -iodhbwm-57773={run="1d18fjqgingshxvsawkz9idybfz5fdzcd41qxk5hpqms7zcjymi1";doc="0iqw7insxma8pmj5v12zjgs72j60z99g7w5kfkb1h6biwlx33s5c";}; -ionumbers-33457={run="0pfs5064cya5i6h3bcypsm8fy1bas542kpy742gmbd4rdw8cbxgr";doc="1sks9qdrl5kivcgn9mgrv3f2gfifmp3icc4wjha4n1va1fqcqcma";source="1nimrr8b242h11nfxi9si1pg0wc6c0aaa0dl23hjjci89n8y89aq";}; -iopart-num-15878={run="1fx5sw6xzsamlrnm7nl965xrgmgffq85kkxr7ayka1w578p6f8jz";doc="06hrw0c3arhssabm3l6fhb1kh8bg4vp5hpafqlbyz064a60m1p9y";}; -ipaex-61719={run="12rd8b6kbnn2hvsimmfirfq3nj436h2ckg5129qxnfnqfqr9pkl6";doc="1g2z2ichh3wdjmn9jjd48jic1b2xw5sb8sksqv0hm043hk5makaw";}; -ipaex-type1-47700={run="094z08ygcklbk7nzklfmdz3lfmicrr40i0wzxmia93v1vpsjb4gh";doc="0946rj1bh2hi0779ss6d003wi4xcb79i9p432jkry07xkr3fpy7d";}; -ipsum-68861={run="02df1xdzvxv5g83bw493kh01vqbq1nf2ls5f1z6j53f116k8k154";doc="0dsq0h7hgm90lf5a2mmqgf9m002vng1cgfz6y21c85ld70ds0vpk";}; -iran-bibtex-69347={run="0b6janv0n9shyg7plykvb1dncxkfynrq6hzn6bgai2n1565c10dv";doc="0pwf352y5yz01y21w2vgz2z3j1k9jkssmk88gf4mcji8hkj8xrkn";}; -is-bst-52623={run="1acvwcg568iv9lskld9hjnyvqvlsmgnbg2akrd59kmh8mmbkydk9";doc="1hlprbjkamq1w3f1n2dzayy9v14kxj8f1nr6d3z99c7v7kg19m75";}; -iscram-45801={run="0h6pciksfrabg7wgxsgzciw22cp6gmz9cb3ifdsqb4n4qk9fga6m";doc="1p0p4w7pkyc9xp5af1afmsibbbrylcfrdcbn16adscw8y6wmds05";}; -iso-15878={run="04ifwh4vn074cnibyafzq59zjlnlmdfyq03mqwk44r1mgmizizdi";doc="1bnh34708psjpbhcddv87axjhxiyfjic0mamlpn3z58qcm0jb2pz";source="0gaxih730r70xgy84vbqz1fqbdr1w9fg9d1hszp0kqvqaypfmcyg";}; -iso10303-15878={run="14wjjp2iwb7l8m01cinmpm3g9hk1rpjx4a0rc41y614ah5bmi4ry";doc="12m0rri6l538iyphsh2abcvllckg566aj1487sa9jc4m56armvj7";source="1nnfz5r5hk0rf1gvwrgp4m7jb5lln1cf9pnb46x9l9hyiagq5din";}; -isodate-16613={run="0xw8356im72iqi67nspwkhafrwl46gb3i41yapnj0hqb672gk4lj";doc="06m8ic0nsiy5bsymzfhpia9i47kbpwqmnbrvmsp44mw5g2ccjk41";source="14b1ymqd6qbcksnim642py5qs5n6g2sy207apkx9mnhhbqa15an8";}; -isodoc-59709={run="17fqpqlh12khnxyknah5dqc1xhbz2bk3m6jw8jwhpxxzb20njd4m";doc="1x6k1rs9k27x9xsb9i5a9m1cpx3xfwiyf4iq8wxybvgr5pli7f63";source="0wmwfqhrn2nsj5r9n0bvb2cl863777g7dsqf0ciyqq8l5lngx8wl";}; -isomath-27654={run="1bzw4l364z6avihhihiprbaslnn49v1rrllf5cj0cg35r3jppz3c";doc="1d77wksfk5pidb24cjgak0mv1k09dqmszksrv4q997iwxkwckkna";}; -isonums-17362={run="0nqzapahfvqg59zxrgjiyywkh8zb8mz9gdc2733r78rxnz81m1ba";doc="1axq0acxk6qhq42ayr0zjs3356ww3ryidvj2wii2c00isw0qip1w";}; -isopt-45509={run="03skmw4hmib197p3cfbhf3mbhq5hrjavwinwc22drqmca370v305";doc="0jxwzfysw4qsfd1694grnzs2jfqcbhm40w1xlgcsrq2ylgcjhr8q";}; -isorot-15878={run="19x89d5fvjpn66y8ma1h24dwapw2x6a4nxbw4ixp7xqkycyhy0wg";doc="0jrglpxxks1fbwgvmx0w3fjcnsfbf805jv95kawvgz1ix3mm71v3";source="0rfc2jdd4f5yds516lr9m28izg3lbf6wwvpsh9hrl466dakgdayz";}; -isosafety-68801={run="01csapgs6danbh1lr2k1pbz2sbmnj5fwllvb17jnddsjnv6xs4nw";doc="0li7197m1pqgv309fv6nii6sl4ppkcnxqnzgghrv1vkvb5ps4n41";source="05sc88xg477z50rcvg4pjh2p4jnfi4zkjkyv1w6phk7jjqh0hvpx";}; -isotope-23711={run="066b5jw98ynyc15jigxc1idp79i89hwrq19rdizzx90s6xfnxlgn";doc="00w5bxh4dkph9d4z0x8h6akcv1i2a3b5vfr4xbvq1n8k4i8ss7jb";source="0x8vrmprpgpgbxp3n886yajdd9mv27r9shkyz9mp1bd4zakdgc8f";}; -isphysicalmath-69343={run="0550hx1ybxh8196q51zc1966jpdbrb0zprrzg4ss8x9yxkan13j9";doc="039miqrgiymmsc561mnycda229l8r3g4cz629xkndv0rxz3civb5";source="00l19fbwvpv0xrzjh0chqp73k6cvgj2bidalr3c1n1g21zai6c22";}; -issuulinks-25742={run="07rpm9kcfj3dxsax8kp5r5mvrgg1c5yrpbiirsk44ybjjkhhjscy";doc="0qlz8y0sszp1jsnbbgaj9h2zcz1yqk827pwzccfi4wdj4rcpvvam";source="051b05k40zs5amjxnqav6ibdvj64wfhcf16a2hlkaf5kpmpkmh54";}; -istgame-62946={run="0ym2l6nf8prgwg6sqfjlr6mmhv53q3aksfznvgy7ypiggg18rq5m";doc="0ggkbzc4xnmx5h18af4h7zhzp1kcgfiqdl28qhrhhcm1d6vc1x2z";}; -itnumpar-15878={run="09cv6x74vs8m10fhk5ka6i1c6gzbs5qaqbk7i7mf2zsdg5w447r4";doc="14273y8zl42gkqm915271n15pc6srsjvfbnc3jhp5xcjcqnq3yfk";source="1wg714a0ipv9g81wgmjdrm4l4yar0z2nqxr5khiwihk9nrg26yc2";}; -iwona-19611={run="1gf8kmpmp2cjz5sg0lx8j0kr67a5xshjkghpiy70jnaz7k8fbrgb";doc="1skk4p2pblh8h37rz2pjx18h8pgbagvr9w8h9d83299byvjggpi3";}; -iwonamath-68144={run="10nr9phqmjvbg9hg7fz11dap8ncnxx0pbpbz56pna5kj37znmh7a";doc="0550vjbv8b0z4v0zwgkiw68fg02aj8nznfsf0qpf3isqyl9d94cy";source="11f6m9969lcvp3cw2gbdv4gg4ggisb3c9p090v7nzzyadx4i2kcy";}; -jablantile-16364={run="07f298cfha42q2d12xihaqkga2iv1id2wa5ph8a61z6ckhchzz69";doc="1lp90rbrji8nld0wzry2nn0m2zb2nrqnqyy85p9sh9rmrplhj8f5";}; -jacow-63060={run="1gqjsdzfspnpps2p5qmxbgrkc8bxihmag0w2xrvm26afmh376djf";doc="0p6xpz5n961hyfzjf7crgciig5rl95wkylikmr6gb95bskdcybkg";}; -jadetex-69742={run="0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf";doc="18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb";source="0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj";}; -jamtimes-20408={run="1sn588j6v6gxfgk31r861s7cpfk2ir7ip75hm31rxi8s8hv8s7s7";doc="1n91f0b0bjwbkm1rq5w2vwy6wlaizlp7qb8pxm2wn08b5a825hvs";}; -japanese-mathformulas-64678={run="0x9k23g95j4wqf02ibj4zpfgxa3vlhgckax80lwm5flvr34bbgdv";doc="1iy8q3906bl7j2ciw8l3162pjw067qkbkdadj9v727x3lg29aay2";}; -japanese-otf-68492={run="1zwjissgwzkjrmh82xixax57wf1ycz239yl9wmcsnn3wcz04jg89";doc="1xzwpyzw3f13ij6xnhdhmxxafiwqmbjbyvv6c6cfbzdw5cpkvayy";source="1cs0daf9dyx5z397lak5qmanwvkbh49nflfaq6ikiqhm22hg3w1r";}; -jbact-52717={run="0z0x6jrxaayp3w441r1zwlqirvv23g0b8h9xgy6r3ppi71glzqvp";}; -jeuxcartes-68266={run="1d7izhik03gs35xl4vran8adv5xr4vasc7nh55h9ya559v59xm2v";doc="02jvs63xi0qhcdnrm1m93cjj29i0cp07hw52m3143iadvargpmv6";}; -jfmutil-60987={run="0ygrcnm9d0dkrcz5cx86j80rdqwi1j9zs28b1bjnfb4vkd5r0fs0";doc="1vz9wav5ggsz9gkkyflywsnzjsw0p5paiw9wfx7x3ha2lgwv7agk";}; -jieeetran-65642={run="07b126wich0dkvc7f581566rpn17qbnzx02hfgbw1rjkqnq3svsd";doc="0r8fsqx2nqi1jw9r30h6w3dqafl8mwhih9vxpibgfnp2lfy01a5m";}; -jigsaw-66009={run="0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407";doc="0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51";}; -jkmath-47109={run="00nh8cf002lysvn6qiyy5mcs2n2z5ppr0x5vp1akbz0wwhkhw9h8";doc="07n2xxfwk0krbiaphfkkfnc8mgc8iqmmmdiz0cj6s7688rlwij0h";}; -jknapltx-19440={run="1jw24izfsw3l8bn27qci3mblmhpkal9wcldhjll7h84fgjb9q396";doc="0m3blfj4ninra6zn501x17q6b2qzckzcavgihgqmk9q51yibd5aw";}; -jlabels-24858={run="03fpym9q84g1b0pns6sdsb4jx78aq7sclr5fkm05ckvkk4v3wmsj";doc="09qa8y6axg9pvma507b9w63dwd2jrxnmd64f5rfd7wpznamhbc0w";}; -jlreq-69932={run="1inm5smaynfsdqbcv8xiva8krsz7q37g832qmj93pqfpm1yjxw4y";doc="0m4mf81dd38l6lxff46lxjizlif1lhs8pxr30r67f27drvyb5r89";source="1hv7xsrkikimbcmd9qbhs963fbl3xi0syw6mr82mg1hnl72fkps8";}; -jlreq-deluxe-69971={run="0sshiy8iqhmsjp9srg24lkqpzyy49wglacy1qjg1czq7al27p8hp";doc="0bp2yh9996dr289azjhyj16syjp3h1p47cb57qdgqmig0s4xiwyj";}; -jmb-52718={run="1a5nz825jppq3pl1263w2sbm0a48kmmndppfpp7vi69n5j2248dy";}; -jmlr-61957={run="1vliagbbyy5nzfs8pkl71gy0zvjzgqibrh7c480aampwf5qi1gq8";doc="0mv7yxa1rn0qaz3qkzxh705ia27gqrjzpcqi5gpp340hvi8hm09g";source="15p4dsbn25gpsm7avswx8vw3ljfvwmwbp91qlzm4cabsb54kbnhs";}; -jmn-45751={run="0iq5ky3llx50smw80lpylv11jmqc51m5yrhlslz3sakmgdqgg1yi";}; -jmsdelim-62630={run="1087jag55rnf02r9s5v7brfqhqncibq1xr0xjq680lvb62f65ln1";doc="12k6m7i81d6sblgqijpizssnpkghq5snf6bq44lkxv1l39flzjrr";source="06kp4zsdzi2m26h9m99x6kqc0lfic96cidzb63mvmdfqcf2plba9";}; -jneurosci-17346={run="0ywl1nlysc5fk7v5cdmy5g5hylz4ll20nnqxsvymsxnayjm4civ7";doc="0a8almw0x4b7v3dsdi9cjv8vzg518fl90zyyxn24p614w3zr01sj";}; -jnuexam-70117={run="0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j";doc="0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2";}; -jobname-suffix-64797={run="095881x3s3hyj6kzhymnzp8xcw89c94qrz5654kzs9mqc2iy28ss";doc="0ng9dzmx53p525c0kppl33i13xwdsamv0d6k1j8plfvjy86z3ay3";}; -joinbox-68003={run="0xbbbpw0yvm0hrll0yxcg46bd8gl77nb63lljk1pfak64b055clw";doc="1mr5h8ydiv0rh3a9s61ksmbvq9kd3wjaa4zx2hbg501dwmyx42li";}; -josefin-64569={run="1f93l4f6gvsnnzr0f3gpvl9y9i034rhxcdz8c282bn5jdzg93j7r";doc="04sva62hzfphzcmk4jhmp4yiahg7kzjcskviq31lhy83d3600aa2";}; -jourcl-65290={run="0skrm2rsr2y7q3mgzy8wcia8n0r2ixhdd222i0vc2figi9ynbd99";doc="0x6jxx8ckf9rmg6qidypqjy7kpi0l30npb96py62imyx4cfypr8x";}; -jourrr-68556={run="1gbbnv6x903hibi2gw17armhvdg9kg884wip6a64nbvsr6g4rgn4";doc="0385yzr1rrq5rv0rm6wz4ik7f9s8zkkfdhxq8yibnkil5k1psrfr";}; -jpneduenumerate-63893={run="0an70r9y0vklglyms7n2n40qz8jd2ig9m5i48xa81z615403bf90";doc="1kb6g5hbsdi4qxcqd7ginmkg4q1flqjbi1v2d8ss6vjsamd360q4";}; -jpnedumathsymbols-63864={run="1x9jdzl2hljcm8ia7w6b2rb8zbb41y7vyi88rvlvy3y6i5v3wkcr";doc="1i9f6llx61c9lcy1lidgmidn7k870pbl2m27yvdi40kcqs39zkbd";}; -jpsj-66115={run="0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4";doc="1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81";}; -js-misc-16211={run="1b26v330702mbd9bviq6sr7pg0338hddzc84z55fsqjd85fp7zcz";doc="0bs30a1m8cbv2824xhj6k3jiv6dmdp6jjzsinhfdwiizc2kzriwv";}; -jsclasses-66093={run="0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16";doc="0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00";source="0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj";}; -jslectureplanner-70448={run="1wz5kd7q9735qc47ga89f47f4c2g5lf34pm05ck4y1yqlazzl11b";doc="0gbd35lgbv4z4s64sxqnwfk09c1pf69qh1839lwn4j5nayd5aavs";}; -jumplines-37553={run="1d5w5nh0pkmhjjjq9x2n4r72ygjh2mrbdr23vsrh8cyvj3xym4w1";doc="1q0mzjyfj8vfp42f8m11g6fyx60mb33g5n4i7pw9r0dfx8y4jvpd";}; -junicode-69355={run="1vxnwzvcikwrvx9wpvrvwn4k7jh3ndamri0y5a4wjc8m74l30f7h";doc="14w0dcn43s9mdgpcz0vhwh2w56n90saljnvkg4wad7aq7pxvnbln";}; -junicodevf-69374={run="0cch871h5l90pfjfqw6x27dslwh60yg95y2g1hyi9q8y36cjrs73";doc="14xl1837jbawj2lj16ym7yi4z8mp8zvzdz6rbkcyd1rbsfkbvfm3";}; -jupynotex-56715={run="0dir4hbh5sviw5spsh80cms12rppv3wfqp8cyg5fxkj65mr3akni";doc="0xar0qf1czdpzbjn13x2hwrby18qh6s1909nv2q24rl3nrrpzpcc";}; -jura-15878={run="1mmdx5zjrsrvh90kkdgigddvb4ih3cflygv70al0jy0mpm6iwha5";doc="0zy4rafc7lhdb4gig1y53fsmk6faa2zh3s7b1la7z7qdw7s2gyai";source="036ac5chvg67hdj8g82nra7p5jickwq041jixbprf080i0mywvdp";}; -juraabbrev-15878={run="1rla1p46nb04flc2grrh1j0wvwk84cd2h1v767xzg2rdsinaxw68";doc="1708lfrryhlj2d3in4gvhfl8c6yvhhgi0lb3yz63h0n7flsb4a6m";source="0i5xhmx4j6ry4plcgdn8sc9vvbai9vzk9jr0mc54dhqaby2slyxa";}; -jurabib-15878={run="18s5jsi5wp0cac968ysqajwrway4sv1scf6m1g2l86jkp8gl6jm8";doc="0klv7f8rbcw9qlqgpylyh64ir0zayf5ralpjd26g85w1pyi1c8m6";source="07s3z6lxhkizgv0wrz0iiv1443dfyz29x9wssxa6y5lg72w279fj";}; -juramisc-15878={run="00dkagnyz7xrkn1kdzb7612qsdc00h2mkkhfv2xnw1fhrcsy11gf";doc="02prrfg5vvy5d9y45hjx877438r8syymjj9q8465c3y3jn4ka9fc";}; -jurarsp-15878={run="0ylww99b12splqpkci2hps4zzi4myfy0agxzz4m3s8q74h4bqj32";doc="08bvr93ax4p00lmjkhy09bfm403lmzhq729gjjw6skla4wbvkmci";source="0fdxnj42qk4cywsxj8x40bfrkp0yqm7qh54jp3qf79gkj4hj6yp7";}; -jvlisting-24638={run="0ry7gnzgl2d6id7xgpbdhg8pj920105fd9qyx1a0riagp0pgyryb";doc="16z6amx6czmipal3sbqmdsc1v5x1p4nyy5wxalicy1dki1f4zpyn";source="13al33s01bw43sa2ffz5zlxgaqvhj8lrcz8y7x9xx43wvvxjmdz9";}; -jwjournal-69162={run="12lsm5r6a7gqpi48ddf5p3ifisq38j5xb6jsbfpj1zbwhx7820y1";doc="0v9x97k1cw3xca3na737nbf6g37diqs10p084013ab5j83n8wgsg";}; -kalendarium-48744={run="11f8zkjfxbk5w4y49vy712ivfqx66m86jdddygfjskp47gxcxby2";doc="0rbac32h90cnp318a0chj1wfzfrvz2y140siqv5slld90f7d5546";source="0virfajl7xr8yiksxzmr68dm11m4240drg7xn72gxbs7jfh48wqy";}; -kanaparser-48052={run="1cwik91vx5bzq5jn8xjgr4ffz7n9d2qpx9v9xr298afmadg65h0x";doc="0y7j8qp9j33hw80dypc10nr28x2zn174sq1rbbbr8gc7vsvz5pyw";}; -kanbun-62026={run="046zvhsmw56a30s01pr50bv1m3s4q1fnv8hbays3v56xbj8rk7ka";doc="1qsz9krhmgav37k0386il90h91c0sxk1q2zvma272fnpbw5rbq75";}; -kantlipsum-68983={run="0aa0nz2a357fggcd44wkh1fkc6cwx6kqhm7aj4jhb8p4j2ch5mhx";doc="04nlyjfmqrvm0q64hdrrx81jc0f17p3l25v22q6kgsm29nlgxi22";source="0akpmgj54cipxl3yg4afq0bdws3m3100i1hm9nc4xrzipw8cdvx5";}; -karnaugh-21338={run="0a8bbdd8khib2bfk4n6527d5ggx31gva1fkqbfw2jwc5194rk360";doc="0n9jqsfn3v78flgqc6ir3w0lymh1j2kl2pcjxq4wnhzgjy8blbq7";}; -karnaugh-map-61614={run="1q4xrsxjmzvfhivg2xycfpfsbcb51nq1cq255slpc06q4ycyxbnm";doc="1mnwkmkf4lx3cd11rzgqq2rlfc42728zi6xj67x38wqqpi9ak15x";source="0vphzrj1y5r6zmlqg4wxykqqww0ihgh6rw3z59c23f1v3j83jj4r";}; -karnaughmap-36989={run="01b0ndcd6vcg4y6v4zbi6cymfprv0s4vhh20hwlghh3wy5aknwvl";doc="1xk80qqqpxagvwp1vfh9vgrqihakp7bkd89alb3j9bqaikgdiqdf";source="11b5bjdccy4p3w65268c8im3c6bam9ql60mik8pifwfbn36bhpqd";}; -kastrup-15878={run="139ynj6jr5iniwg4ry57b61bpalchwmk2lvxpzi6rzhp42ifv1j1";doc="1bzjky4plcl24fg5rwbjizixwfn7nkbzb6wwydxd7s2053zba07a";source="1c4ijjifc4lwimzrhp7ym5804fz5afmccn4bnfayypmjqpc8x6jw";}; -kaytannollista-latexia-69876={doc="0w45gqrvbjfzqsx84flyf150zj8jw1wcd1zfhd361nzazqz7b0xw";}; -kblocks-57617={run="001mn33pf532iwp3d8likhbc5a4nsgq72dirbilbdgaxqxndmx12";doc="14qyg0sqrr5b04j2ramw9zcfhbgmc9qfyy5im9la4id4b4zxrk25";}; -kdgdocs-24498={run="1p1rcb0lzcsmgyqz5750pl2r73fd18k76gry45zfsr7750kwx7x9";doc="0b2j3mw8z0f3d4pffqw2r9zxpmyvykd36sskkhfg7wa4q521nf3d";source="0sipsvbi9254zpg0bmcfin60szx9q0vnx07a9bdm9ma11qb1djpb";}; -kdpcover-65150={run="1a4w58r6krjg4aqpkg9r0pk7553nd6fqx22jqk37vd08scgh72ls";doc="0lvzbr63skkx12d6nwci537zvqcpp563qlf29id2mki80gqsx29w";source="0crbr3xrv0yfd64qjx72yz55py9h7by4rkl09l06sfwpn5ysdzgk";}; -kerkis-56271={run="0hcaw35viqpsbpy82knib5lbf3ngvmmkga96d48v5s1zd6m7fwdk";doc="079i5x6liqgnkc3ii65ka44r9pfpf7k2gxhkbklsb3hm51zs06ld";}; -kerntest-15878={run="15695a4q6ikdy6f9149rblfc4fx25hmpyczgr1z1q8x4s5ar7dr4";doc="1fmpngs3q7pwf4z284gg9b4cfw55afdsnzg6qpanlryk6czbch16";source="0gwz65xgxii7vriw5sf1zi4r97prf2c3dwawr3ghhgchmblimf8l";}; -ketcindy-58661={run="0v3sz01qwd2pnnqbf4v8g0xwhs3zqxc9qihfa13df43rw644m65v";doc="0ch1zjmg04pdz96dhyl2iy380hyjqcscxn0kafj94aldin20256w";}; -keycommand-18042={run="062i4fr9h2sc1zy3ybyqrq5hw4g3g54gx708rrznkl4zmpf93ppr";doc="0ls9fbm0815aar19hg40p91n1iyyfhn68ndhvapmwfsxhi6f2d9j";source="11blfbqdn1a00bfdv3nwd7501pd5qrkk7pqn2ffir1461xivz26f";}; -keyfloat-69399={run="0qwdi5gvv3fmhp2j9mwgbfrbr8awf6bj3fpajhrznfk8fy5zflnp";doc="02cv38dpq0jh1iyp67ybd8kxq0aiy6sxkz2jg9jy7vs1ksjkx74q";source="1dq8w5vsnl7kcv6q62ik2d0vy5bkbxaqn679ifbffgxiqihbpb3g";}; -keyindex-50828={run="0fsszjcw1r3kws565pgc5j7chifbkf3dh1hnlclwwsjpxbji4n6c";doc="02n7lxz8pd49q9nf6pavhs01410zj9pbszqqbmk5c1ld077276x7";source="0k3img6kb6v853wzmhsrrhx7lrh275ssx57b83vk3yx9m831qwmb";}; -keyparse-60277={run="1jfxrymww3qh4bwgc74dn6v5xwsqc29y835k4rpwglkb14ncibxd";doc="1i1sklid586igkcbhx1mjljxpq2yl7sd8rqagygqgqsxjzg91jm7";source="180fkwkm01cspp48a8msmws9bq1pif3i80yzjxs7md9k01hqzniv";}; -keyreader-28195={run="17cfxcn374q0pgf7bbqwc0yrk6r15d79h39hzbvf7yrgj4r3880y";doc="0fp2hv3azi287gz129gqlsirw4dr1d5lqhzxliyzfy8dd9b2cqb7";}; -keystroke-17992={run="0h0ci8pslybspsnpmv73qml22592vp5lr50qqppyhw8qkng22gsg";doc="1ig565mxjnji3ng8vsc2wa3jyp6mrhma4hnb3shwnrj9g2kvj84w";}; -keyval2e-23698={run="05ssgrl08d55in1wkam99bfdfkjhjrda6j96b6nmj61sp97yg3ig";doc="02ajr27zgfjk5hwmqm05gdapkg3d3rk1k9k3nqm4nbvwhx5sahg5";}; -keyvaltable-65416={run="0r8y69sbis65hdalck66n5hxww7nk5z2psb5qzx13dx6qhnqknz8";doc="1lhk840aj1sxj6pwybrpg9gd3lm9gs06q1dhz399my6cds1b9bk9";source="1k749a0smf6wdcsb6cswm0adq98ylg7cq9yir410wkxyxdfwj413";}; -kfupm-math-exam-63977={run="0r5zqf6qxzbgyhg13xrr8qwqb5cjrik670fclh089qsz2kihqb6n";doc="1lxab23k08wrnpgjc68lcn1r41c793cncxfd8mnqxml4lyylfcwc";source="0c4fpj08y2ixf9c8kqzyl0j4hrjg9mrim4fg6y4s7mb4kcw0138a";}; -khatalmaqala-68280={run="10hkgjbi16d8y7wz3l4z0xzi112f124vzwq1g4kri7xlarcha0d4";doc="1jfqkbmj6lvfg0a3dnznlldb9aslmj1g2cc2yni0ramz4kpf0jf0";}; -kinematikz-61392={run="12h8j42d7m2z1sms9gl3jj0qclvqnximmbj9fnmr270lk59xlc8y";doc="13qa25hh33jqaxscc464j1xd778x36f4d2wvb6b318iq21s2qhh9";}; -kix-21606={run="0w5qaq50wki5b3s3j7p11akx7mb8z1khchhy6093pzzrny0hd5c0";doc="1jblprmz9vfriqdmi9ihh3ihi7pc9wf9cp8qfli89iir2xy7lv3d";}; -kixfont-18488={run="02zwdm6zja38n41pvzay09f38cam28rr9ag6yy1m5kmw8421xp11";doc="1dvv4hdgkzmdn7waq4djsgdd8p1cwq3j0bddgxq2y94pq64maq0q";}; -kluwer-54074={run="15av38sb3pzffxvrxlbwxzgvhnxhsjhkr3qwrlqswwq1sy4a2ssc";doc="1cx0xya0s27mybl37gw3yx1rmcyvrxnrp8c4012gvmqiyqyx4sjx";source="17w0ybfzs9x8yixzl8cfldqi42sq2jpkyap8i08mvp8krqgviz1n";}; -knitting-50782={run="10x5yxlrnj67gzd5kz7fvnz0nykvvi26sdm7i3n3d0si1vjzvczs";doc="1zm6s0rd3zkir9vxvbc37big9ygnyhcqpr4p306vqavvmf5g7p57";}; -knittingpattern-17205={run="1ydq16bmviqkbf9zkrlxsh33bfn8nmyzbbi1xwfd7nsg1bhdf6d1";doc="1x1bswn2sd1w19g1szc573zayk43zi3718a9yqfzqnxa0qxvxsqd";}; -knowledge-70609={run="1s4flnxixjw6z9w7sdhpfnpfj7lvzmjycnpzb2j3rxfafvzw8029";doc="151gvwqzkl2yxdzx2b2mcvfwb7w13s9m3c2y5vv4yrfy7wfkx0py";source="0r95p5vqxd6x9hbcflfq8d00kjvwk41r9harslzh9i3i5lfimalp";}; -knuth-errata-58682={doc="0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9";}; -knuth-hint-67373={doc="1fl3nyzsf9jifccw75grhdgyh5qhj4akkkyaa7mp6kpfznipqbmc";}; -knuth-lib-57963={run="0dl8z340n6m6xn7wari4hir0syxqi0kl2fhnf0bvnmkqhqwyzpca";}; -knuth-local-57963={run="02cf32f57fr6bngiv9xiw8bh4sq53p9br034ap74s80h3bgcmn1f";}; -knuth-pdf-67332={doc="0ig3ml88gqks5j9ly73qsx0kdii5m2i46f9d9bnh7nr9bjbpmd38";}; -koma-moderncvclassic-25025={run="0kgsbg4is158j1ssjwabicw38mh2cd4n1ggxinflb8i18xsmlgh0";doc="0f070dxww75g36il70gmrx9bn0f0d3mmh26fmzqb5zmf93hyhcsf";}; -koma-script-69755={run="1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif";}; -koma-script-examples-63833={doc="1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1";}; -koma-script-sfs-26137={run="14qhq2h6pfjy878nkglbif7yjc12g6q32kl4xfc7kk3kf9syp0kf";doc="1cjraqcc13bcq451a36i5x2sbwj97zy4srrpaxybmlisvnza7vz9";}; -komacv-57721={run="06df0hx1rm87vgsb1g8b00ak77n6zs34c7mb76k22fis41qmm3a2";doc="07sxwgrrik3vadlp9a4lk3jmcqnvfzz5ir8l33zi7sjrapr7mxxa";source="0vd6ha60dz9ddmf3rkbbw5h602fkch3zifcjip9nyfs7wgnkg3r2";}; -komacv-rg-49064={run="0hcf3aw9r3hr01f9109rid9c1c36gmg9z0258zlqgq9l8qs0bryz";doc="1g985pnkhlhyf1285w9g1zx86vldyg45r4dyp1dq02pka5nf33fs";source="15v5y47jj0393vkikpv5mqdrrygs66b20gsmp03j6v6iih52w7fk";}; -korigamik-68204={run="0napq587a4j4z0fw0ddhal0h02aymjj92cbxmqrrw19j8k8g0b2f";doc="1lxkyaqcan6jxbvi1zavbavlycp8amz6qmah258y87yl08m8c475";}; -kotex-oblivoir-70496={run="16fs5k3n326amyf1i1bnk6bai8m9nhg8n22ij3rbpa69q0639r0b";doc="0nphzrlnya0mcqx878v8zmqaq0cw9ky2qi8ci37nx3rrzmxlv0qr";}; -kotex-plain-63689={run="0nri3fagwj6mgkcx97750khsyqf94dx5kxkf5ny0jiswnv192v0j";doc="16376wpncchxpsl57g7rgzl96w9hl3qyn3i4qw901y00smr450hk";}; -kotex-utf-63690={run="0gpdg9c7dqcg0jfq05i5gkvycskipzyk4cmfrncd8mm7axv9qd23";doc="0x0y67bn28fy32awnjyq2zy4gqnafyvbjkhs7hipghxf87p6snrz";}; -kotex-utils-38727={run="021hgi7iw47b3c637mk0g4v52h5ygx5w1060bpcknjlbg0qb09aw";doc="0l7dby446xxjwk7vl1h3w4xsid4dqd8zdspj1f457jy4qwjaqf88";}; -kpathsea-69121={run="15dldviayvv84gmc25nwnpc99d7z28yarzzwcbrqm9w9w7v68v24";doc="0gfnyniykcdvyn20fbwfvkx7i7lwf7kdn6117rkcjsw9qrspfc3q";}; -kpfonts-65583={run="0i8c7agc9zs1vzjq8w0ghkwk81hrc2qghzn7hs1wq3vdbc3wk4r5";doc="1q8h8208z0k19nw7idq45hmzhvsrnf7g3708ch3kjwaj7r9y5lij";}; -kpfonts-otf-69636={run="017zn7m936190pyzqnpwjzp3miw53ksrncdj4ib2d8czxi15491a";doc="1rmhcdb26i2nsbsj3r2v75ispg9w6hkfcnbvkg946d5wjy1x46jn";}; -ksfh_nat-24825={run="1qzn0n19lslf2qg8fvm844xx5k7s8a275a77z2ynbb0vs1w4prpw";}; -ksp-thesis-39080={run="0hcsni8p92pm3l7mi56jj7mlcv5rvdpzwbv1jv5f1hb6xyx2pn4i";doc="01pbmmwwjzd5cq4xxmx3fknk8d4q3fda3680g344g5s6ra5i45nj";}; -ktv-texdata-27369={run="1md2iv0csmr5f2mcdlb3lacccwifd6iv7yp6123gra5xcp06k4y0";doc="14sk7x2va8ja65a65fpksj2nd16v6rc1f0828gmm8j81d13cci6y";source="1ws256l59plnhmw1rycfznwpndni5i47liqhazddwbg2hragfahh";}; -ku-template-45935={run="1f45rknbzb3d3h72vznfzspg7vx9im59w5s5lwv4z0b4sk7n1d18";doc="04gpy6a0mpjhbl9h2rnflvhxsj5b7x7fwll8z211fl10cnvalcxv";}; -kurdishlipsum-47518={run="0b5x438l4m396pmd427zcnl7jyy5ag5c004gyn0n1zzwbz5lcnfk";doc="0kw9664fm4gzv7cspj2psczyn7m09qz95agn4j953q39l0qyz6ls";}; -kurier-19612={run="0x9270xgsk28i5dxp29r0awf72l5p0786mbx7gb5d4vppkf0v9gx";doc="1d3lfxixhcrkk94m7ljfcb90yvdwjbp2axjnpr2bbh32xv9zzsnk";}; -kvdefinekeys-53193={run="12nn74skhwiszbdhawqds31caz6d59a5pjmwar0r8lmk4f1jr3xh";doc="0x3h28xqgsmngs51m666mvxb8jg9vwk0wyhijcw84v1szyd0m7d6";source="13cb0xvqhz5w1hv6hamr7rh1q1cp6abqfsdqzd0xw0my9mxvwk97";}; -kvmap-67201={run="0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40";doc="0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a";source="0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3";}; -kvoptions-63622={run="19sj7pds5km2y284vhsvdddvchr2zcnzkki0h48ymd258afcvswk";doc="0yym68kqbmhkw15rvmz6bc96h17yiabx3lip4lq2qjq254j7ql0w";source="0ngbpkryyjf8l2gq0p750z96id32hl8gir9cxz7hybzk2vnpyxln";}; -kvsetkeys-64632={run="1gnc2b1fiapk6fjmgh1rfrwd04k6s30qgdfn2ppyf6fw440sx4b8";doc="0qhncqjx310clasz23bx9mq8p3kdmpz5cicx84a3afh008qylgsj";source="0l0g3v7n7sqfhpbf3289k9nh98cfz4w5xn0hbkr4i056yqj8dcmw";}; -l2picfaq-19601={doc="0mk8d082gcqlxw2x7d2w85sm6i51928pijybzbsh9fy2rfcv99xz";}; -l2tabu-63708={doc="1jl0n43bqbys0c9v0xb4sjql0gvk4r14ldzp2rbwzjsk8a39q8v8";}; -l2tabu-english-15878={doc="0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm";}; -l2tabu-french-31315={doc="0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj";}; -l2tabu-italian-25218={doc="0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22";}; -l2tabu-spanish-15878={doc="1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk";}; -l3backend-70027={run="0nbamj2m9ahk3y1j1a8p4n153fzczi82cw8i9kg45ki9gnmq91xp";doc="19s2pdih2pn41hrq51g6dhsds25w4vpynjr3bb4gb1ay2gp7c0hd";source="0cm1n5xqv2rlvr74fhnim8q70sfwqx8r930w3i8nrpaiivgnq38w";}; -l3build-69748={run="13sx0gjgdrnznd8h3gr3r28rmhvwgrmzpfl821p68sw91jphqdp9";doc="0miw9dxmd9d6j1w267ibxsf8k954aq8qsbfmyay1434s36aydgql";source="012grp1nkysm6i87y31zl2m0w01j85hb9c12059phjdrmmnp9x5x";}; -l3experimental-70027={run="1bh5xj7fxb89nizm2j1bb924p0ki7dsp3kx8h8wfzsdp1xr2b5k5";doc="110vv5yflnh873rcm75fbz3cy3p2arq162665h0vm07any65xwsq";source="183n75j6hk8kvj1xs0dy9br8ysvg457q1pxlhwvwjswykmf3arj5";}; -l3kernel-70027={run="1z4l5yvl59m3jpjgnpfn8vg7phpv49wy8mfy3z0jaq7la3c920ng";doc="0mzhz15fpdn7li11fpvyjxqi16kp07f5slmj6anpf0qrzp910zq1";source="1f02ay226bivygx4l01r8xz8ws2cn84fnlmgk2gf9l4irhd5dhg1";}; -l3packages-69992={run="045z2abw3333gcr4kxdg65s3fg4dyazc3spfhwbgsif8kzgzcl40";doc="11nkrl9iafxlwz9jriq16z75rwbhpyd69gmx5j8b79vc5vy0w6pm";source="0xirdyjf3cl30mr4kizxd9sl80cdfjrqww420hc4c5qaamcdq7dg";}; -labbook-15878={run="1qh16jjmpyqdfndfs91nmbfhwxif5ygk35zlsailngpgnp1r2x7s";doc="0za4mp2zq9s1z90sgqcvf6zac7w0wqbf8y5w1qrwmlv6r6kg3s1s";source="0w7nff8c2ffrn2ywz1dahd8n4cb959b6zf3ka0s913nv04ifdkgi";}; -labels-15878={run="1d1lxzif4f3qxkall0qzsn4lh55ljr45zba0xwzyvfbwighp1vvm";doc="0fl3as2lwdga814fdlg2pwyw600cvrii9hd0f4vscfzq7lmw01k9";source="0y6mkg18jqsbqj14h52317d1vvzvn3mv89q2gl4i3i89ka3dfajh";}; -labels4easylist-51124={run="10pfzxw0d856ki2krsdpidnfsk27mg4k0vj3jx7pry5cfirx6m0m";doc="145n7vy3d0vk3cq3qd44l3a6hjmazipm7wmr4aa2knxvs4nyvw2l";}; -labelschanged-69400={run="1fhmxc85w0jgcvbf3kbn6hpkyfl70q6kx7d06laxzafizga069pr";doc="1fbkiz4rqch0sa7xpw0i3x9dwm7vpvfyax9jvp520xh66sn46wh5";source="0ppwzy9p9zh0hyzh9kgvjav9h7pk3c7dp44aqj87vaq33bwkss38";}; -labyrinth-33454={run="1r5za0nrvcpmx7bbnvvxf4l78pv4ciq83ck9k9qh32pawv5jn8sp";doc="14405x5dcm2k4m74jjhwd3f1836d79qz3w9m1zfj3gnvzx2kij9w";}; -lacheck-66186={doc="1hhx65yd800bl3y2sq20lix60wd2b2j3k7n9s788mlsn8b0p7yq3";}; -ladder-44394={run="0a2sxy3rvc4w4a625wa000g4mjm00d8fpjff49v08kw1ddadv6fh";doc="16dg0nz4k3491mj7ccvw32r71vyjz2hdgdh4xgs7p3n9jg4jdp95";}; -lambda-45756={run="1ajx5g5cd5s9jqr4b196689k7zmlxmhhksly88qps31s7lzaprvn";}; -lambda-lists-31402={run="17srvv0v10mczvvmxr6sfhlr8zks589c86v472g4rnmf4bl4my88";doc="1yq4kn0nfcgy0qh33qakv7c12lcdzbj4x9xj357yn8c0ijqkx789";}; -lambdax-60278={run="0sr5im1ag7lzz0rkvnj0biik9z5ww6yr03ykn2w64dg1nf42chf4";doc="07fgh2x639fj8wb21rygj7yc0c7bcq4sm1bhdrsxzgrwjxn9rbw0";source="0sarj3dsqm18zx176p6hq3xv717fzdpvipvdlv8l5y5pcvasz73x";}; -langcode-27764={run="1hj7zyjxh64fax5rv32558sp2ss986fxx0fqd5xb9c07s189cs3d";doc="06bygnvh4sdv7mp17c94wx9v1lj4zgih1db6mknc3wiifi5jcx8m";source="1bi25gqx2yi8f6g8hpnqp9f52qnfpyafi0r16scap8w0sbnwrib1";}; -langnames-69101={run="1rg0hn4addzi72qgrx303skf35c03lslrlf8ry790kwr27i7lna4";doc="0ix2gk1gzvsk1w0r1whr2imdml3a6f9avw6yfkf54n5hnaxm7i6n";source="002rmwkvm5b4ay1cbxc51ibcb27sg571l2r5czfilbavh0000piz";}; -langsci-70028={run="1va10za9qfhdmb9c652rh2n3qyp1v6pyjc8aia7hndik3j3p22f5";doc="1imd2wlkd8k4wfjangq43mvr4m3xj295vrwmqjya4p0jhilh13ya";}; -langsci-avm-66016={run="0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx";doc="1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l";source="0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr";}; -lapdf-23806={run="1lfmn6axzbfk03j6f12yqa0vy3gzvw1ylpq7k2ki4prb3zwhx9sx";doc="0h9wy3amir9wdqv0b8678mfmcd172zll9p5v7sf1l0w3zlbw5msy";}; -lastbib-70377={run="0ml8h5s22lp4bbf9prjjdgrvsahwaksv1kpnln696gj1g3hqh63q";doc="125h4563c5rny3rbizb6imdp1r8mc1203jkdzzw0p9113lmwliq6";}; -lastpackage-34481={run="0wjpjd3b48fj4mqqdx38sqalbaa9ab3c6rywyjqhvrd1pxfap2g0";doc="1123lz0ki4kww93952wqrhrw9l2cnk4wrrwyi0dxc5w1yfn2gg87";source="176fk84mbb6w5ql94381kz05lh8q8im7ri6rfjff7f4ymfjnh2jk";}; -lastpage-68557={run="0xds81j9i3dqbsfw9084f0cqmscyapcndd6ssk0njgj2isjxb43s";doc="1agaxsy82b8nq5kn6kpjc4g59xzvalxpim6rqzl8j13ywvxv6vhr";source="17zk90069n9nc2j4jhqwzkm9kfhvp7wlq7akvwsny9fk9vrgp62v";}; -latex-69443={run="0l26rd0xasdx0lyzzkigpzv9i786fk2xysa1y9jv3k62lv7g7xy0";doc="1hylcd91igvaf4h9z9djlmfy87r8mkgs75slh3clay0fhhyjdmyx";source="1jb6is6qh5q3pd0shizizn0czk48ggrw7n27ddpakxcmi1s73aa4";}; -latex-amsmath-dev-68730={run="173gm8vkn4dgwys9h7yq3zv0pcazxvgrj40ax8msmmffq2r8cgzc";doc="1ch147w7ak3al37ivkq46capg7zpc5c10inwkcmqxhk1bqa0cgis";source="1ffzh866cdx9r8b5z8vyiccxvramahskv7an1jpi6flg0b9vv4i9";}; -latex-base-dev-69872={run="1sflchwpbx8g410b4jpb5i8x7ca0x5kgsa9h910ljfaivwwxs82y";doc="1l0sam4iqndyycsbim6lii8cj9mx465vk4f0jc698c5lrb9y57vi";source="1h579yskldcwyxp0r4xdh8k3s99qhy141gblrw1lracfyj8f44rm";}; -latex-bin-66186={doc="1mhdc8a37b9j64kc8c8171s8p7ixklbf1ijr4vfh7af2k416qf8d";}; -latex-bin-dev-66186={doc="0dwjlwaf8pxfjgby6dwr8ijnhm85rvprapm8m85avq7mnfmrp4kr";}; -latex-brochure-40612={doc="0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy";}; -latex-context-ppchtex-66687={run="0ai8w4r3lagkgval65hxnb8fqg8lq0j5kailyb4dzv2fjs9x0sl1";doc="1wbgxydjicb10mnzjixnz1hhqy4xzxv6k92wf7fb2w486mh89k5s";}; -latex-course-68681={doc="00s521wrc5gqqs5jvd1ljl04nighy8q79r0ama783ic27a3k0qhi";}; -latex-doc-ptr-57311={doc="0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2";}; -latex-firstaid-dev-68730={run="04rcdqd7461r54qhn3v13517clirbim4lnghli6yn31zzyf83zif";doc="0m4jx0qiscxszpk3c6i4r7pcr9x8xdq30q1ixj4b3l2jn88mvhlx";source="0m7xdjy67arisi0l2wgjvc9i89g2xdp5gk5cjqshb8hwxjw21mg0";}; -latex-fonts-28888={run="0dh4kgy4mfarlsrgqw4dm5zgfhcfg9qzh8s2wjk6w2g0jfc8rf3v";doc="0243qbrs2w7qh17nh8m4ivj35gfgxsnqxza281cvhh7g2fv47f5l";}; -latex-for-undergraduates-70210={doc="03s686vbzpjv71vlp5931vxyx8lckvl5819agh4688h9m98w54s9";}; -latex-git-log-54010={run="015f1jrfnwr7i7jn6g0cfl3zs73xw30h14fr2pyjhn9pr8kd3mgi";doc="0pj2834ax404f0nnlfbg75f2h80wvnz23s8nr9vxr24vr745xpf6";}; -latex-graphics-companion-29235={doc="01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc";}; -latex-graphics-dev-68730={run="0gh26h6lpv14ywhpcbw9zkzn00jqrxbfwsq61cpvb6in1f7q95bh";doc="1cyx9l48nc60qdaqny9mi076cch9cc4f3qpnp9hxr1rm7x712vp2";source="0ng5gd50c7rg7pv09ry62j8plpn4vigc0rjy0xg4bzfyqhpax86d";}; -latex-lab-68720={run="0hdzvh1affhjy4r80x53gbhi1pqsjikvyxrr985pl1slzfrlhjbg";doc="1aqwxllsrwijw6rc98cplkxw46s61dj8gz2q07djjmx137irvkcm";source="0zj723bpg0ik95sjm97kmvjp3ygsf29lshpzgljyqnzz6z8ppb0l";}; -latex-lab-dev-69872={run="0pqamivil6qcl3sxp7zr4h2m4sdk92mwri5jvz5ab0l8w89i6xjl";doc="0vrfpsm359zfmqini6s4m9cj97d30xl5vnj63nkzxk6nz3pzgk9s";source="11fdf8f71mdwx1lrj8j5vj2ha4xjmi8mpw0aa2ii0rad5iwr8wyr";}; -latex-make-60874={run="1dgw31znxh3ch6xyg7y0ngnkjmpny7fbq9nhapd3am4l6qb0598j";doc="0jmms953klgv8z4k5d8rj2l5barwxx02pmzk6ihpp1wdggfjxrfy";source="0a5jqry52x11iga5ky89b57l1ww0hbl8z0mkkv6nvvc7bg5gg6w4";}; -latex-mr-55475={doc="1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w";}; -latex-notes-zh-cn-15878={doc="0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd";}; -latex-papersize-53131={run="0axx2lkwi1xq3qdaazhb6i7dssx8q2k0nm5vf4b9p5ldl1ky0dzl";doc="1dkra9b0wv8s4f7xn36j1x1p849ziwlm4chf5mrayp0wmx8qshc0";}; -latex-refsheet-45076={doc="169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m";}; -latex-tools-dev-69872={run="14jwblfzdf6wp3gncild8qxw6nfdx5a44nb7ngbwnkxr43kq2cx4";doc="05gwzix6l3mgwm9qwjkk8slrjbvnbzpllv75kxbnrf768jjy35px";source="0s2bh7shlafm3fq608gggfxm9ma48bkcq6kamqfii7iizw3wsyb2";}; -latex-uni8-49729={run="1sv4n2v0m3lck7x320cwbay23k7r9fh4wm1vxg9m4grphc72n2b0";doc="1y3p08mni1ng6dyp0g98in7hh3mbzqq42249idy90vjhc177rjc1";}; -latex-veryshortguide-55228={doc="17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4";}; -latex-via-exemplos-68627={doc="11nhv72ixwr0g19nr7dir5awgdapxq0l295hm1pcggr62wqh67l1";}; -latex-web-companion-29349={doc="0v018lwf88z3qmzyqpyvfql7dbwk5a9r0wj3jfjc9cp2ksl8zf8f";}; -latex2e-help-texinfo-65552={doc="0rk69n89hl67qfbi5mmb4msaibychsk9a83dx593170ayiir6s6g";}; -latex2e-help-texinfo-fr-64228={doc="13s0zjwk3m95kbx4qrz2xwp8kifzc2zmasp1ks9l2acf1nqfac9p";}; -latex2e-help-texinfo-spanish-65614={doc="1v3wa99phdmsiajbq0ad4h939cpwjwzpq88h6s0796h5fr34hrvq";}; -latex2man-64477={run="04m5ccx6z8nvp6z8dm7dqhqyf8h9snmaz4cvd8i8fcwfba9znf9c";doc="11nl9ldkw3f90iz8r23jbgxaa6yq5p61f1db344nfhy0wimx15si";}; -latex2nemeth-65269={run="16fd74x6bz4zfj2zlvbfw160684ff1fn1rkpx4y34avkp0ivs9bq";doc="0f50qxbwcas2gpazlq0ja4m6lcbwkkwlp19qb2v1lflfgian39c6";}; -latex2pydata-68919={run="1zn2qmivr0daldqnrrkh8jcb0gncg3cnikkrrn609jp5sb1xd1hp";doc="04rp8hycz6r4gl1llvxq5z4ks9iy4j47wxg6lkx39hdphh2q561v";source="19nsm6sn099cm2g8bvks0d14fdqfvs43cmphgl48rhzgaxb6l408";}; -latex4musicians-49759={doc="1zvy2pa93kyn056d5n0irzdq5xmzki6d35zxacxfy19r0g9rwq6f";}; -latex4wp-68096={doc="1a569y6vss3glz1il4hg2f6718mj24spp4ahdj6v7k6y7ppa1zii";}; -latex4wp-it-36000={doc="14r86fwhb9zafmyv05pqfi9962dpxj7wq94acm43gv8m2rsjp52k";}; -latexbangla-55475={run="0jh2x97r6j8lrl5kq5m4bvk139229fwf7r8g8xq7n0qywnfdr9zh";doc="0hgcqd8vqq67zzdn7mq4bps3q56ad3nmaq71mkcyricgrkn5xxmb";}; -latexbug-63596={run="1rv43swr1nqnf50y7rxbqw2w6402rlksddk5prcl7618vs4yiag0";doc="1sdmjzl81f0hkmj9k0m57fiw7529ym3430k5sd1q6sbz096wwdph";source="0a9012p4c07g15ysgf2hfqzcll6h5riajylxga326p65k2zv062m";}; -latexcheat-15878={doc="1383rsi21ma0291asi779bjr33m7fii019di8gv8kxwgci692fz0";}; -latexcheat-de-35702={doc="1cpqcvqkkyb2bf87yjvc2migxawnacx5mva8dapma7hmwx0z7rhm";}; -latexcheat-esmx-36866={doc="1d6nk9p9adlhgr28mnnizrxzzqlk20zw2clcddqlaa8pn73dqhcm";}; -latexcheat-ptbr-15878={doc="0m636j9gdfpm4j1b679z5qw5ygbm6jp8xl9dzy6v5zzy695fcgaf";}; -latexcolors-49888={run="1wpa7vw8vphdghdv1ap5ilcgzj5n6vyvn4a6lfvswg2d47s5y1a9";doc="10bbk7bs1km97hpzqzzfasxzp0w202y8w7pwyd465ygr4y19wj6l";source="1j7vfvyj2k4q9drmkmh3mfk1g3vs7czn1x16fx9jyinbdxnwblnh";}; -latexconfig-68923={run="1lq89ycfsv3bl6kb1lq4s4808pvld02qmjmyz3npaqkwjrxhyy3g";}; -latexcourse-rug-39026={doc="027siznmshk60flxgra7dgzvwbmgwvckwb6r257b91x3rm77anv5";}; -latexdemo-67201={run="1w95ji58dylfa3j2crcxswx058brjx31x6n76wlj9hjv5dkarqj8";doc="1jsszarq2lydblwkwgachhhr2fqmabw870w3msgrllyardp7ycrw";source="0vi6b642k5qjnwa3igll67w0h4r3p7bxxjlajfiqwp06pxzjl7in";}; -latexdiff-64980={run="1z0x59j9g2cmbfwfmc87fpbjy4hp827ic7y9z8q3j7kfh2s3j8dp";doc="1r461j9m6rs38kim7isvi66z176fv1nnd1q8p1zza9b1j1qhfr97";}; -latexfileinfo-pkgs-26760={run="0lf6pkxjqdilg10i3fwmlb1nvvag6c5bm6pbcd50jjbd1q39iih0";doc="0qh84r86pszscg96gri652y6p5xx245lfzvx50qvzw77xn4iv6ra";source="1x1sj91sd5bb0jihvp0qg52q8ybak4flvijj5hdq84jf0bw3gryi";}; -latexfileversion-29349={run="1yy159skv29hp0qxpghmq5zmay9yi0ndkgz7lbllj1ymkgxs5138";doc="0k20c2kw0xarjlkdhjyx9h9kvjm2f3rd98lz097xj8xvk0fs0zp6";}; -latexgit-54811={run="1kg9cbz6h70496snqqa2h9xfknm70qf96xyvnc829k5v34jskmi1";doc="09rlc9nprx6590snfg7gakycsam37wmmscybvm48vdn271vvla9l";source="1pn4gv4prwsnnr377xg2x3kf3kmi8pxgczbi9knzavkd53653akx";}; -latexindent-69472={run="0s5idc6p7agbmhm3qq86lb4p357vacp4js6fbqszyfwd1wqp86sf";doc="0y102g945jyr2cg145wkpmz68m62cjdpv8r7356lr2pvmp4pbqky";}; -latexmk-69657={run="0dcbl9bay800kvbp3jl88d6y6w0cxlqrvx0y8qq8dqznd082dh3d";doc="1aljwadz6jhi42axj5ma467pihz5xdp1w3s86r2wdqc1n8l0rm6x";}; -latexmp-55643={run="03rgabck8mcxnbg1avl638nhxdk6smvyd21v2ns61hx3jn09cpv5";doc="1ad9axqv8h2s2xckrdxcnl8kazpgijrgpxmbwsb3h0hqb3liznsg";}; -latexpand-66226={run="1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk";doc="1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939";}; -latino-sine-flexione-69568={run="1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78";doc="1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi";}; -lato-54512={run="1w70dgmvcwm9jff2ap7s78qgqs9ip4a6dx5wz8iyd7hn2mwf1v80";doc="1fj4n1y16x7hxyd63myk902iwm6lr074rkdybv03qwxl12p9ykxs";}; -layaureo-19087={run="0ggab1drpspvqwkijlj2d7k1iwacd8bihgrj9qvrmsvdlswdjsd1";doc="0vxa87pk0fq67zlnbzbpnig221isp1fy6qp30fphk7igvnjw8v70";source="0mdibdz7hawfmc6bzvk3qfhs22pnmsnvkvvag31p3b4n25zshmry";}; -layouts-42428={run="1ab9azs06k1p0s3n5zjhrykpqac9fi3kr3w31xmh698zpsg3jq4c";doc="0ydpj4mbjyg6qy2wmj90rqfpkcq30pws5d11kdr1gcwbzqqkgbbh";source="10mfwi1wv5v0qdwqj1mh5q8izgavlhclnz2aj8h02ijy4kzgfg5w";}; -lazylist-17691={run="06p4r8q0a0m7pmbbcddxn5xc22f9zhvl2a9q0iv7ibkvgyy6pqja";doc="04x6ai73z7cqs7k9vgicxfcnvslr5812dlzqrspafy8w8qfx37jy";}; -lccaps-46432={run="1iy7ijsfpxcfr3d824j66ahcvmc3p21nl0k94x8bhfrq98qzxmrp";doc="168yq8y5c31d9h31x081wh7aifsq0bs66cvk464wciy91sxyf34y";source="0q3jn7h2b1dhdshdj3gxwwdg3gfrz6n5c5sflacgpzc16pn9gbca";}; -lcd-16549={run="1r911gvxiwwh7vvjhgi034j3x49n2dxxvf38zsldmqaj4sccfky9";doc="08id9jhafkmhypjy72d79v2yr2jgm6pjf4yhaw5279a4063a4f1r";source="0vkgnhkc1774d3g7r6sv7km81dvdrbvzdlk7jca6q40nnqw4zbw6";}; -lcdftypetools-52851={doc="0yjbc6rsf8c62qa1lyi9kjyjy2p0xlps19llnvly3xyhla08j76f";}; -lcg-31474={run="1zgpbj9zim5dcc5c2lf6hy33hzzk8cmirqh8kv60bsvha4hwvzi6";doc="0fnpj3mdxd0v1lrkp2ywb184bay0j6vc5m50jlnipjfjhry68n15";source="1al9wmw475g30jw8lwx709r0p4lq6p2p9n1ky69ncyy42zp79ld7";}; -lcyw-15878={run="1c0js52z8mgfbr3lgbvnhc646ggvsvgr7w1mq83lyx0pvnlqm3aq";doc="02h21pl11ax04q5psazgxpm6xpb8lljm4b08bbmivpwbm0z1namn";source="0zf06l74fzlici5dzm3ggvz3h66dx3yjxmb7qz8xlsk5fppyhcb4";}; -leading-15878={run="1ky6c51dcx0gsj8f6zrwb242d940cjml0gb258ags5xi5iaq40yk";doc="1l31zpglr1bz0gif3w7kqzhd37zpcgjig2ly84fcyk805sf7nncd";source="0f4ayaz2m0y87ifddl4622rpf858zmh13xafp53nh96b8pyvcip0";}; -leadsheets-61504={run="07w8h1wv322dy0b69d13b9k59m6iid53rlpn20ps5ss2j20b62z3";doc="17xbqxhmxc39gxd5ckvzsmhiabsi2afh2r2jv91im8inqfqi8j1l";}; -leaflet-56878={run="04fvi31wwpsnkpsni3r6f9m3vr8b6h71f2znb79aban9g1qvnyh6";doc="0f82hm37i7w547jpmxkl8a2k4f92bw29vdzq4ywwllk2hdcq3sv6";source="0igkl1rjl14raf3xv631c7sn0mc1smyc44mldwgzgnzxxkv5kzzf";}; -lebhart-70050={run="0y9lrkscmfjsg3rbcwbfvzj3g40nyb6a297myyzmm2n0lpq11j6b";doc="0nypg814pxlcpkd0y3vdhjk6vpj4j1ka08kkkk00nmdyyy714f3q";}; -lecturer-23916={run="0alcmds4ds3m0rpq6r46ff56x78kv0nbdnfn80s9q638pf1vvnvb";doc="0ksqm6ibcakjf2dir19hr066gg2dxa5blfiikr1j8x966lfdjb09";}; -lectures-53642={run="0qdhkf7z1rnxm2ql0ywfk11y3aqp8yr1p9202d4ha6729n5pyima";doc="1xakcm4mmhl4ahnvcpn7k748v4j2m8p6d4p455claqhf7xg4jz15";}; -lectureslides-62292={run="1x61bpgp5ddgld0v05qb5sg2lwb7lzqn6r65imshvcjz1xbwpvdb";doc="1awy6zgj393q0lm195hh8ky51fczm5s19d46fc7mivxyh03w3wk6";}; -ledmac-41811={run="0ipf7h58bylrfwg8yzarqvpkl0kr4k3z9hl6cjzxwlh16s5fs76i";doc="0pgkv08nsq0rmcpck9vq1hfb4gnfqh274hclq4grk182fpn4ggiv";source="07fl3lypnxz7sa4kjf3xllwqakhrwgx8z8r7l6x8id96n48zri9n";}; -leftidx-15878={run="05fi4rp3s0s9ank7pphdwxnlnanc2r88dxhyxbz64fb26sja25gy";doc="047a5clwf0r43r1j87k2zfv0pa3nrii213y0zhv5r3zkmwvm1qky";source="0a8rzkycppx8qayqw3s7ndzz2xp4zqgx3qd8dp9s5ynlm10020nv";}; -leftindex-69660={run="1hc88b88fs7247n9q36idpdsh1jb39d92sp5qr2dky27fgvnz2mr";doc="13lfzvsai75nyb1xykvd8bd0q7dpwb5na4afb7bikqw6iz3dyhwa";}; -leipzig-52450={run="0wml5k749fgx3vq10v4vc970h6nqm6qflg2z4jajph1h38kj2ryf";doc="0znm18pkrf592jfgshmr0d7vk4d4yq4wvj9hqsfg9nrjd4l6a66x";source="1sxqsgahdr0srk52iqdacsqn7sc73iv0n70nsnpvgfsczmxa2djj";}; -lengthconvert-55064={run="0zjyynjlq48sywr5gyi6nhryrp8hcl41q1djjp73ingi2h2svz47";doc="1id32l1ipcilhkk4w9w2q8rfjlk99f5jphvq1hjvqdnhz4q1rk69";source="1zy9bnibswz834k24fk5srl0ahx4i4hlrqv6vnvwb3h8z71izc3b";}; -letgut-70496={run="1xf5ac4vmmfrqgla5ap33fr24f38wiyppi3388zwzbn0rlky7s1r";doc="15z5g69vwdlk77hbkh8vsk07zazapjr17dicmz2wkhgrlcs5r296";source="003213728r08bl0nh5yplm02sp6671zb7l54al8bqqq7hyjybnlv";}; -letltxmacro-53022={run="0p16zmxngzzp9hbg7bxrh087gxj7hg4avf4a9akjkg56834hna5h";doc="1gxldiflxvhy6ca87f8z3a3zzisrwz6f9vrx2r9gsfw72jyfa99y";source="00ykjx412119jxwf1zaz5bismfr0i52psf5fagdiybbshs5ac88x";}; -letterspacing-54266={run="0ry7rri76dgbrkzr6na2kkh7bn0jpwkhh9b5qw0cl5xwyp81rddg";}; -letterswitharrows-59993={run="1b7d512g9gma07n7np7f92qqxijxs2df4h0izq5xffd5jf438m56";doc="04hrchgbm25b8g8d6ywchyijngk42lh7z5gq2g2hnddl7wp79kv3";source="1jabbydsy0xn79p2c9dg605kfrc6g3c25jz72hnq1ilpny9zbihv";}; -lettre-54722={run="13h1jsgjp5k82cq4rpx8gd114l49m1pzplksrwjylx0bzimlzgwn";doc="1w82fhhcdgsxwsnprx2p61ygsyh525im8j1zalcw0bji3i6pm06i";}; -lettrine-69508={run="0lmnac32n8ip27yvwxk072k1wk9v768gsm6v06bfjhr2kdpd52v8";doc="04369v85mznfrfqv6mkcfa7vp9s4m2953qb6zdv5flfp8paj3fx8";source="0zr1csklrxxs26641g5jnhshj10igxyf79qrq5qky7cvlli8v6xq";}; -levy-21750={run="184jkjwm17ms75j86njpkr17ipcamca3r5l1fcg8vfv00ffj9fp0";doc="1wbxdyfxm80w3h8bq8z5yavdwdbgccvhf4hm697ss5yshp7l8gfs";}; -lewis-15878={run="0ws9vk38j3m0sprl9lak2sjlq13nalcysk95gv68h90x04jj5zdl";doc="043kmzddal693kl6fds0xl2wwmyzvd9cqs8dmy1jzp0mdi6qw6vn";}; -lexend-57564={run="1lqqn007dpp24jcgpn9fdf7ysb99lgrz9zxjw27qm2439wrzhc1w";doc="1h7s17x7grhdb1hxxg6wql3pwy1w08iywpynymrqn8748s93yy4m";}; -lexikon-17364={run="0ql4hzzf94v0pxr0jma4bnkgh73napz4np2zd1jhfsf55sm3axzd";doc="0fbz7v6a5pw20p22vyx1mjdr4z39wgf902ph9f9nwawxwsl24v9a";}; -lexref-36026={run="1whic6s54279zypip228xyw7da5iq8p7lw090z71d8nywjsgllqm";doc="1vqygg7hqn64d3dxj1sj4nj37k3w7y8r23d8l8x0lb909y285jpl";}; -lfb-15878={run="080305sym5mppkmgvpxw3ddn51c7gh07b5b9vs2qsikv616077ml";doc="1a5y79xx9fw1mcinbkj7wv4gmvb2gmlm7sbnxc07603dc0lrhjww";}; -lgreek-21818={run="0ry70b47s9bn8ixcjzsj0qvyvlbava2dn2jpmp5nrqqycihb6jvp";doc="0r86kjbayji1cha84dg37ajn1hnlidyw3cf4byq3x63vyvx0ag3c";}; -lgrmath-65038={run="0i1mag3077fs18xyznbgh3mc87sz35ihz4n5yp243h3c2qg9kyax";doc="1w9y3pqfm8df2a20n6n5421hhjavg14y60lq97bib2py6drprcpm";source="1d3ssx38hjg7376fi34rllpzkj8mr54nw8p5ss0la8fc2j1ac4ra";}; -lh-15878={run="1k2nn4zpxdgj3b10xdqzldcdbw56ws9735wp0yajkhxl72ms0705";doc="0zvcl1zfbn7qv9069hff2a2r2d33xmqr31l4di24y4p33y3ylprf";source="040n2hbkaypam4fhyb82ncy1sfyvg7fdhykw9fnvy42mlzxv1p3y";}; -lhcyr-31795={run="0civwbn156gky4k51189s9lpqcs06wjr32pviwb1gzsfr6rc7vws";source="1pwlcsilza9f2f73qsvbr2xxxbs2dcms08jxjlnpk8fxcpiy8j6z";}; -lhelp-23638={run="0j55ilp7wn1w8vs60k6iangc9h637f2jrnpshh9glryxj9jjgxqn";doc="1is5s8iqyb41fr2hr1kxf68xrlb8hqw3v1fifl8645dcgp8lac33";source="0iyp664cy3n04nn4499ryzx00sr1iip1qmdlpvjx010r7hq4dyb7";}; -libertine-68981={run="19f8pki8i0g10z2sbwahyixcmwixcri3i5wrq3bx1zwbc28fwih6";doc="1mz4lgajz9ij54sgn0x9w2y1ng49hdc9v967ybgjivdidjsfqkhh";}; -libertinegc-44616={run="14fdpxgsmq9dhgl2065rdsp0fnh9h0xcr0jzg4k5gka9irazxrzx";doc="0isvl0ghjji427p1fd1w0yy04c6zjmp058k5gkpsa3xkhq3ijvv0";}; -libertinus-61719={run="00f4wjqqz4hqh2ic8g162mnn95s0p2v1qshbm0zrnzjy2gr51hi6";doc="0zkv3fgkirq6jcz7ywb1sjnnw8vfwfgd3y41lm4ds547ra8zp2q6";}; -libertinus-fonts-57948={run="0izp1qihx1arqkgbdp18ks0xz7jlyd5cc4r3d5nhdnpph1nry9r7";doc="1zn6nlpr95syxmijr7w0cljq21qfv09b2rp8j6n0rvyzm50gc4fg";}; -libertinus-otf-68333={run="1gxgz9lgiyw9n00ss64bb5zghzb5hzli6s8znkaq6fcgnvaf5ra5";doc="08xig7pz9322x5kz8l4dgqc74hsdzrhnxp8kz577gbkg8mi5rsf9";}; -libertinus-type1-67450={run="1brcmv3j109909q5975zaaf7slnzqcflfqzfmxvbaxychwm56nds";doc="0v352ny2961inklzfc2jn797f443dmp7hk0wn7s9dzqnim8rsr60";}; -libertinust1math-69440={run="1hq3fidq0yl8ahr80alj0r66zw1ampgxs3j963jmhcdh1jby7ih8";doc="1vlpfnmv0d8bafmh0b4szmrcyrcjdx527ik6n0lvqvqh768jwlxh";}; -libgreek-65004={run="1wazhir2i0bwh8744867akraid5cz629yjj6aiipxm6gjj913gy3";doc="19wbh1vjycvplflzkb79dr3ha2115jc8lf0vjrxx7qvnjprygs8q";source="0d8x32jq6fcni0g5qa0hcd3vyxj5fcqa9yg3m2bfb049p5ms7s40";}; -librarian-19880={run="1rri0fb9ssj413w1g8c7p79hn72gqzncihhhg3ws3ldl9s3nm54d";doc="1i4m0gp38f64y59zcsyg2j7bb6zycyf9z5yr5wf86l6kh40cc2fq";}; -librebaskerville-64421={run="1d98h5gyymci1vny8877pdq7nr0vvv8878kcbahvkijyn5gwwdx3";doc="08rds9g231kqmka2dzv03sj9dwnrh89rhsbfqffpzrwsfc4fqld8";}; -librebodoni-64431={run="0w630a8xgw6qs0d8gw8g13slxcslyizi0mmk3phyvhiiw9km40jp";doc="16ncr4c7w0hjkrss4y23qd2rmd9c1zv1pyqgqqc1rdi7w1kjhinq";}; -librecaslon-64432={run="0jwxqjic9p2k55g7f8j75s78rf5bfpcgbjsmg36qk7m9zig2v9im";doc="0rj21fkpajmc4gyr5bixf4v644kiw2iq1fzxs6fn91fcfkwdd2dh";}; -librefranklin-64441={run="0g6vlivwlwb56mm9a509xfssp11ir60cvrd9cp2hv9ym93yqkcgs";doc="1gvsanhdlbn3wnx2yq7brvzh7wj4nwyvdjybkmazlb6ih8ribab3";}; -libris-19409={run="0nprmwx67zbq7xhjbb4xiw5da3i0k958zvb3z32s71jdd6psnphr";doc="1vg5jgllfxh3rdqjvgmzn6ak887ar7a4kc1k5cwwwgmgdsfam1zl";source="1dfm4q73p8q8bgn33z025sgna1jq428d5dvmfagjjwc7sjd93ncb";}; -lie-hasse-61719={run="1bqc4gpk1f5b7afsqii6ny1xyh4zpc5347v0xv618svjh7dpyzpx";doc="1jfrig40w3ac4j6y8aiwjyvsv9q8lvgvn1977f2yg12lsjdzcpyg";}; -liftarm-62981={run="1g1v61iahjd67fjdgr6d6lag9yjqvix0b7m2aw1gc9bjzlcvpd8d";doc="1pxhbcg880vnnmaz53ifpiv17jsr66i81nzhnb80d4cn5jlxklwn";}; -light-latex-make-66473={run="1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja";doc="1mjmsg5mgz3fyn6v65iy75jz9jvdv4bxy8lqsgiifv1c5660lgzb";}; -ligtype-67601={run="1xsdzgcbmn1djpvsjak0bav7vvaa94rc5byhvhajfb5npqrz2rn2";doc="1yjsbj3m44cj1lzzgxkzl1wsapqfcjh6dfyaqi971k79zh9420vk";}; -lilyglyphs-56473={run="11mb49rcsi051k7yd7s02k9ca5g4mmifdjx1nqkvs6rl922wcyki";doc="1wl5ppgazb27s3wxgmz1xw8cwwmnnn0s582k5swx8qy91qdl08r0";source="0657barhxkzh3jj3b8rk5rl9i47k2h0p1wa2vxj00fdfqfdjn161";}; -limap-44863={run="1hdv2rlvxbqm2wnn3x2xrmwxpwbs03qnlfj7k1s8mfpp5smmhd2i";doc="1qj9ddllgvm9zqjvfdgg2sfdyfzpp8raf8n1l0zrg9vpiy2imdn3";source="0l41pd8xl969ax257lrcnkxs0pzb3q1fmiy8ijz9jfrval3rqqbw";}; -limecv-61199={run="1j1j3n86gvvv8jc8wycmjmnx9ci9w41w38fkxjsmx2mvc8frsi2z";doc="0d9gg2gf16pynh395sfqyr1bzj664snv54x9bb5a3zck3b9kbga1";source="0m0li0wa9pk2p5m3gqzr7n78qglz68akw7f5nq69iddqwh5r827b";}; -lineara-63169={run="05g4pmwnwmlh9zlcn3g2v5cpxr0pa07xr5kqnx0gb3ij32348kz7";doc="10bl6r0sa41hnyf8c6hgwgji33jvj9zy1k39lk168xv2wzkarml8";source="1fgdbxkgph3x16axccx29llckvankl51izxk825jswbgsxgj52j4";}; -linebreaker-66639={run="1v23krvl4nf8pz1p2hl7d9pj23c6c8zw7hgcacyjvzd8sc22jsi4";doc="0prq9r6acl95w8cjrmzxlg3hxiq1qmivl0sgdcva6992smmls68p";}; -linegoal-21523={run="1arnfkijq4324jzyq2sn681rk9ncbgv6zqfrvlbs3vic8wxj5c20";doc="0mjpbkf6vw0n4ddd9abrah7rxf51gmgayspy6jpnai1wrzv0aby5";source="18v5r4hj2jpqay98njcyijwvrbc067c49jrhja6i52ddj6h9q4wz";}; -lineno-67171={run="0qgm0wlsq04w8cq435px8fxp6p9k064i7j42dgi9xx40fzar0k7c";doc="0clfrg91m97ija67d7ykd3yp8r2zng0rl8hrhdi5hay3b0wfcs4z";}; -ling-macros-42268={run="1qr7bpa2wcp1hqx3ckid8h41lp8idhqqnnbdv42j2nhcy6f409wf";doc="0lk4whkamzsf9mriiz06ynpp962w5473ppf4n36q3bb13amyp5vk";}; -linguex-30815={run="16rqzqipzng4xd7yz3i6416231cfphqbwq8n6pfal83awzd660jk";doc="1l0m6k9adq0zr88zbqrj4jl286mwarr6fiy4181bwxm9w9kkxs04";}; -linguisticspro-64858={run="1aq5sz202hipjbimm2n8krb78q54ybjyxbymmv1nxdpjxk0hixz7";doc="08pbwqz6rqqmw814c54g124h6ni6bpb39gpd2ibp5gxn21agqa2y";}; -linop-41304={run="1dff205vbsayq2jfyk0vvbz5yks6gy2bm4ylwwk28wmi55fqjycp";doc="134jxv5bqklpdhd3wfbqibsp21jspmq9iv3fik2igwsbn20dzw4c";}; -lion-msc-55415={run="02xxyl35xl6c48x0fdlfkcv4bfhz4hghp1v3ff6pf9yl3cvqlh15";doc="0nycprcfi6769r47llwma71hzdb9a6sprdkkk6p898pmk367wbnf";}; -lipsum-60561={run="1rfz9f6gaha6ccx1s5kij2zkwdkm6i2laxv5r9jyjvsawqwr0lam";doc="07wwbyj7i8cdnq8g364c8pjfkc0l739932n3jcmkj6vs7qbmkikq";source="0349nqaglq7cnwi54p35anv7ycsd7a92jd86l6l2n9pmvh7z6py6";}; -lisp-on-tex-38722={run="0g33w5hwgpw7hd62lij0h5n89n9r9ynlxswb34j0aqf3x7nsdh8m";doc="0rgjcldb2rg330cp8m5vxbi380xla73jb36nn94b2awl4g34bpvd";}; -listbib-29349={run="09rs3zkymlnn9fgsclnfpn1mrmxnqy8kd5pmdiphlga1iwfj5z11";doc="1nz6p8z4yvh91hvk02y184xl6fd8pyjlpjmlv5zpmcjillv176yj";source="14jrkykx2myp5fghh9qj66i5g291azm6cihi12c53bv1ijcyl1ik";}; -listing-17373={run="0kpf5svycd71r8p61y83wx1k99fwxm95qz5fbnqkfrq3c0113h3p";doc="1zd0mxh0gxlvqrwxvycqr5yzs5fns0hrkn6g6b4m1v6njv2f9lna";}; -listings-70052={run="1khzz7im183pyynl8mhk8by91p06p1xy7nrlpq2g457zp02svxx3";doc="13aw7xcra3r9p35iwhjh6wbkf7n615bz0wffxi0sjxcqcsrcqvc8";source="0l0s0i1kvb37n1wgahz1q2261npbs112f6jxc031r41rhyzmgqfh";}; -listings-ext-29349={run="1r5nq62k8rwllcpxwpkh2z0gcb1rlydp9nry8wx7r0h93hbmm2z7";doc="0jyk8z0nsdx2yljly8nd4g8wnw7ggi6mdjw0wb7y0mb5wq47sbpp";source="0hd117168f5s1cb2iim6y198lnh05ph4ib7p666yxvv48wr0mfpc";}; -listingsutf8-53097={run="0scs9dnkl2hj95zgjiggn2ikq2nf62q97nnml3hbvmwdargassmh";doc="1s7k2gr69xlxln2yi5wyvd69l2qa8v33d92b6ahgxxpid3437prz";source="1bq197100f74sal26w0r4iv6ys2qa1ylbwbyw3hm9dlpb6kmdmgq";}; -listlbls-67215={run="0r5ns594dxmq7r9pkk2hk482caapfdar1gwbdi6fw396pcnpw8p7";doc="0gnc00jv99rvf892q0sncr7l5pxpndrmw6qsxfbnyb38yr675fk7";source="0s77rh3480i9w06a0nnc7l8gm3w1s6bik4nl15idb27h5a5fq302";}; -listliketab-15878={run="088f2lm5lfbns7hd1m06f3zn1cjcbaw427z7zl5n47ahrvcz9p94";doc="1llrdgxp9mghs51sz4jjhbdllzlr1xgnfskask532zwn1cm6f4vd";source="04xfgaqpcskx5m8byysvd2rji31km9c6cbkfzf3ybj4a5bmbnq58";}; -listofitems-70583={run="0kpq0ac0v5yk4gvwrzdkp262npralqbdvsx0ln3zqgis025z4kzb";doc="0dgmc69d5wxj5dx7liq08vkw58fm3vg41j261xxw49hlacjl43z0";}; -listofsymbols-16134={run="1qp5y4rbnlpaa3nghlxjn5yzhskvan9rg0g45wqmg6yk9sdll5b2";doc="15sr2n0bsvwz6jqgyspj6kxg511jy3fr18705pyp815hg4maxizp";source="1sjg64imcxxqq8bsqm98954g47nfambr6vsyizkz8zqzmnr5vd80";}; -litebook-70583={run="0xz899hy8yhwsphzz8kz6h41ck1p649lqhzcjsag839j9fwflvpd";doc="00cqvwhvl2r884j0nm1gb02agsz8yss2shn8bjkm3gpb1gic4wy1";}; -litesolution-70608={run="1bc1wd867a88axcf2ydm8alxw9pkd3ycwqgvwy7fbs70v5wzccz2";doc="0yrqa5qs4zh6vscb5xagmich4hgjsfm8xj9f7wzklb5vaphcgm3m";}; -litetable-70355={run="1m8c9gp8lsbf4i0ng62fvc1f490dg2fhhlm7gyh3b6bpfysxcdlb";doc="17gm57g2n5i0s2apldjs2z9xib8cdwz7zmlyr6g763d5aibs7bz1";}; -lithuanian-66461={run="1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf";doc="01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax";}; -liturg-15878={run="11l8ccpq2mcnpsfxry6zzjihj3s7s76p9plh7afprd7j2nnq1a79";doc="0rhyz3162nzh43nrxwkynr45i4w5pqb5ip53x5j2k2a4cb4k1z86";source="1hn89rf3xi66bfc3kzwbvllfzrxr62gx60ywbh8gkrw813n18lll";}; -lkproof-20021={run="12bj60lfqlqvyk020lv1l6iinvqx4cvd6lfz4vhblfx3gs3xmcqf";doc="05sppy6q0c2iangbzmxv5qxla8slc2k0fx62f6n2fg1ncgvfl7qh";}; -llncs-69629={run="0x86jmqa7rni1bj43vg6rjr6vnffwz8l0pyrq571s0506jf10y3k";doc="09dg7g9mk7fhp7l81572xxa5b12fb27bbsmvmrj48j7jic9qxvnh";}; -llncsconf-63136={run="17x1sjs86vl03dxcz3qbwm7r21hmzvsvsr9qa0xii8fvp1yb5pxz";doc="1dq0v5wczbhk1ir8fl97c53sinpqnvv9v1hff1hzc3rhbwh5smh2";}; -lm-67718={run="1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y";doc="0wdnpnsbg4gvahqq8lv8ny36xwxgph04sjn64pl34srn2pk1jsxd";}; -lm-math-67718={run="0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn";doc="1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3";}; -lmake-25552={run="1fk98049965cqqyzdl3yl9iblk87gwwrfccr5jqpdm5v6m8mcwrj";doc="19yqngjn320sng4pg835rffk6d2g3c5wyma46x1jr0bccv8s1990";source="1p002ywz3pxip5v4cd346nmpg0gi7wamlcl7bc6f4zvzqp0cg41g";}; -lni-69361={run="1slm6l0jjv9ps8qzs5ld774iibsqm4bi916pyypi668vpf03dp1m";doc="15125l53k3v5g8gg4x8i7izx2y060r2mpqs9k60jxn4ljlmh0cpd";source="1wlvrxfj254ap9vh0wnzana3i1wryqiqxwff2gh8lrh4nh3yiq01";}; -lobster2-64442={run="11kx0xhhklgrj3rhc5q3c5hi61444vr4936fpq1nma1yxn7mbyfz";doc="0l51mwqiq34v22pa4rjj4c6q7w2x9acdfy02hb8gmn80i91fijpw";}; -locality-20422={run="1b6xi8zzc9x8bc54bs2s6ryn7g2zfpy1zsdddlx3j8kvmbmgv6j9";doc="0z0vrx1dy5qqgb2kx08qc2r06ljqnfsgiz58hpy6ylnlyay39ipl";source="16xp8pc62jzgcmdhqpmfi54y5aaf7mx6bqgwslpwixgwym0i69qy";}; -localloc-56496={run="0ynzcib8hsflpjhykfl348pmc508g4i3ig38wjsb3gfm97mlhq24";doc="08aiqc04rwinqr510r1wkzz43qq4nks1varmxyjbnw9acndn94ak";source="1wcl06i82xkp6m5m311pn1ax42avlp6n54ad1j450apgygdszmik";}; -logbox-24499={run="17qbkfkbz35c1a2v3agrpbkk1bxifacj4ccn3mh2w4kv8z8zvww3";doc="0kc0gldcfy4bshfkl7vprg80ywwsqhac4f81f2f0i6ql4jmlqwsj";source="1cj2gb5apapmhxc9vkypnq17w5fhnwdpp0qhi595gm5j5q1wqcq0";}; -logical-markup-utils-15878={run="0nc8kgyplffng9429h0g4hynlwwxpcvnirxg7rj62zcjcg5ijqvv";doc="0x3j3fy8zd2vydzfa47ra9w8bqvklr2im8aq725nwpxbyyg3m8v5";}; -logicproof-33254={run="10b55lwrrq1aqmp9njiabqg59xdrd5g8skbcrlhs621s1999dq2g";doc="119zgxwx0q6c4ghpb30mvpdwrpr0xvk54hmj6qfpih0kxj0zp1az";source="19j00a28pz5dp29sx61dnrpqyl24sx9apf2ck334ap5sw7awnc70";}; -logicpuzzle-34491={run="0zsg11lw5x28sik6ifj2v1zjvm3pcv4vf7w2pfxcr395vmw33qm9";doc="08vgi2s2cy09dhqdmvmq1ijlw83dgjd7xjfdhj28vm9ny16zmydz";}; -logix-63688={run="0syvhp2zn6rpmg1v92k9df0q4kv79flvj93m7761675fb8jcki0h";doc="1l7kyw1pjr4bpj33sy2dvkb1fvl39pb1mbvwz29w6k4038hg50hx";}; -logoetalab-68916={run="1qmw240mqsh2s7l2r8nvw9xh3zwa99g01szjaxn94d92hnqmb4r0";doc="0rkj5gcp01xcw6d3vascvp3nw2ng5gxi9znj81yasgw09w2qyb43";}; -logpap-15878={run="0xrv4x46m54b4gfa805naab6fgpd72fwqnyjjxw0idy9kb3s3x5v";doc="1zb6qyxrqy07m65i18dcli30gb42y6c3ffr22cpxa7r8xmaprcg4";source="07cm2gcnv6d7pzc9d2v3bdvsmykqf00bbw177mqyjaq1chc0xpna";}; -logreq-53003={run="1zj1vn0yfklngvfvcr0p8hchar220lwfrznsq73jbw9zzjx47v4f";doc="143b5bb1jkc9j1gd46c28q4zq8jlh9wrngjw8q4prw5dkfnf1s8m";}; -lollipop-69742={run="170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr";doc="1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq";}; -longdivision-68609={run="1rnbw3y9vzs0nqyjw1qdj7mbiy1mk9l3ccygnn65495smgg7h7b2";doc="091b1v1hwbifv426w1gglg273c9ck0n3bzj3xl9hhl27x1qzxjcy";}; -longfbox-39028={run="1cm2zp8sina312n72bd1xza75yi38n1s2ach2f9sjxdx0m5c3ywx";doc="1wd6hdarh4nm6x4qn789flnq69gq5p2r2pgybsynbna7ywar0l5x";}; -longfigure-34302={run="09pnqp0jfhsg7i8z241ggnx04j452zsg1zqmwy0i40fp2s36a61c";doc="08y2a2922zk61iirlw24kdsf473sx0b44pjzxihmpcrf19vg2c12";source="1p10y4nwz9wj321mf36avl3w6zwvspnb9cc92h9jf4iawnqyp8p8";}; -longnamefilelist-27889={run="1nz5n1g65fs7xxd4l0c9xdr2z46mxhb0fkmf5id4hrifrbl3jxbw";doc="1v8i6ax2qwz7d7mi0bnpyllbqyksdd749s8pr95jfw1fhi07i5fj";source="1615gzf3rjfr1nlmpgcrvmlzhif13g3kn210xq8p0vsv20irnqa3";}; -loops-30704={run="0hml4j8l5gdz1c2qfpsqdpha5dqjqx545am8x4vzs57ga7j2va4h";doc="1jf63snh8bnyi1j16mjs14nyqr4bj4rjbwd3bs1xd30i54d5584s";}; -lparse-65693={run="19zvsmv6p650qrblallq9krwajdabwrkhl45723226nvrszsw0r1";doc="19j769yldcx498ycy0q8vkgpmaj8zyn9inhix6cpsrg42fz3ijjx";}; -lpform-36918={run="033w5cd8z7r02h4r2p8lha6z81qqvky69a7aiahjpd15smss4wjp";doc="0vnz4simqdsznciymkqyy0cpbnxfpkd54wdrcn5ra257a37x1f4z";}; -lpic-20843={run="0axszk7cpnc58rs7w7pwy3vpj39l6zc27g8lfxjzkzlnc8hbnycd";doc="0hyg9v30h6n38j8a4pbqfjxkqfc9ls3hcp1cf8n8dwr3ajyhvins";}; -lplfitch-31077={run="1qjj043c943pj0pvzyhs152795zyskcrxkkmp49jxxm0hi8ww51g";doc="1nq554c0vjmcdb9xyprjvvvcwrkbbh8s1x0ypkzi0gqds4m4a38p";source="0cc04s2ndbs8j2xg4afxxyi2l8mmnxvgfaflak64v6i92n9icfg1";}; -lps-21322={run="146a42clkjyrg046bz43b2rpvz3i2dvhcsd132bzc76d3x0sqps6";doc="1nwn4dff3szxlvw7ydqp1ylw818maj0ij1g08zlz2i1gclizwpa1";source="0hzmjvgd9y746d9983y73jnc7pl4y85lk37h5d6j3jznnrdgk7b8";}; -lroundrect-39804={run="0s44pbvm6iwl2jyffnxriqlmpp6zs1y70z4aix8wwfasx86gq131";doc="01ncbhr1x995763d1dnarhy56d7mq3r8k1b56whqs6kq55115w2w";source="1sh8ypnfq4pwaqd934vdh77svs9d3a4114vghg6m4sz5fxh11i39";}; -lsc-15878={run="129vlr2gnirf47vs1drcsml3w4jcwg78hmya4r3nspaqm00b17gd";doc="09faqnv9k96nwjcvgmml9f02vdj5hadbmb1lp59xk6jikvybv436";}; -lshort-bulgarian-15878={doc="0qg23asq2i5mqhp9xblv5hm3qxmd5886d5x0gq1fkdbyy9gsawi3";}; -lshort-chinese-67025={doc="05b9fq4jhh9xifn2lj58fs17fc0prx915gwfz47s92spvv9fwbi6";}; -lshort-czech-55643={doc="0ar9qa0cg0mjv6ydgx1phaa1qpiy25s3jciznbylgi5xprvnnfa9";}; -lshort-dutch-15878={doc="160r060gmw6f6lgbnyvfxafjpqvyr4jwd56ddkjfm3ir2bfl973d";}; -lshort-english-58309={doc="0pzqdbzynlwvpamd69cmfpa8jdcvq96qjr9k1fy3dxpzi2mapvhd";}; -lshort-estonian-39323={doc="0dfwp7kkynpskb345i3yz7h5pvc8iljqg3q6l546vrwla0bmb95c";}; -lshort-finnish-15878={doc="06madlm869kmwxprmy2c78ma4s8zk8mclzmd4xdl0r4mlhk4vdsl";}; -lshort-french-23332={doc="1hdl0w7b1ablx7qfcvgniz7dcbgazb49b8wfw7c08hlb38gxfqh7";}; -lshort-german-55643={doc="073v7zvk8xri0f05mr0ad770p81akl9b9cnia1q4hcma9fk89k10";}; -lshort-italian-57038={doc="085ydria5q7s648r7frl54sa1y4kyr569zvqjjkancfd83h873cg";}; -lshort-japanese-36207={doc="0mfxig980jyzhay1i83d69p294hgbr92v3kk2a4z8ca3fwzy8w74";}; -lshort-korean-58468={doc="07660lrss97hswmis7rgc419h05mgrvsfrrwmnrwk5yn97flhhqd";}; -lshort-mongol-15878={doc="153k4dzia30fpx847wli7i5p407a808gmj3p7jifq5bpx479qg1g";}; -lshort-persian-31296={doc="0b1b45nh2d3d3zv735dymgyllj6m8i57icbihjkl1im0nghrzklk";}; -lshort-polish-63289={doc="121y638k4f4pbjpa4q0n9qj2w57624q2d1v4jz09qh399fl5yk81";}; -lshort-portuguese-55643={doc="0wg51rjcayiizkz0vvjkirrx19q8fbnfrwilgh13prlbpams1hsh";}; -lshort-russian-55643={doc="02abh69xl43p56fcciyan4j0z4mqq2j7ynwazq1nywhz37d6zn7y";}; -lshort-slovak-15878={doc="0b5gn95i32dyn8r7v2cdcz759fllp3b0zwx17adjs282n06vfymq";}; -lshort-slovenian-68204={doc="0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0";}; -lshort-spanish-35050={doc="0ls50syrg3dl5dl5a3fi33cr9j990l2xr6pribn1vqglsqrh191l";}; -lshort-thai-55643={doc="16r9gx902a342q2mj570y269yw97yaj6hrbqrk4h49ihm695z30i";}; -lshort-turkish-15878={doc="00r6pv4z4933jw072djdasd2wp5j05wghln62ga4g6y6jblf6zks";}; -lshort-ukr-55643={doc="1nsah1h3z3sy96a9x0mfdwby7pvvjwq7zxfv2s8nvsbvnn1al17s";}; -lshort-vietnamese-55643={doc="094lfry6cqvpk02c3acss6581mgb7j30fnja1b3qwzxmyxjdblwa";}; -lstaddons-64967={run="1yyfgn2bdlb5gjb2qicx837wl03djpi2cwxzds3bp3n37h52k48c";doc="1lxcah5zmmgv25hm6a3yfls7ysgg9dfzdbc3whdvw11mh3pwkiw4";source="0bbppx159q28sak5i6hj6zm1kqdgcn61a6kw4gcvhj536vnd947h";}; -lstbayes-48160={run="1kpkr8xd1k1iinrp1ljj1wjphn0c58l8f6hci0axvxdklr02s3h3";doc="0x288aij80j9vy6bscj3w257nj0y3z1hf0rf9yncs13jsxr8rz05";source="1hcgcvnki1xkh4ni6jqcazl0rjbhfmm6gbgsp9n5qavdgnv7qzmk";}; -lstfiracode-49503={run="07fdzwb4k0dv2mf6yl31h58i61hmw0gfpgrjdnz3v2rnw1ip8kgq";doc="17a8sg0srw7096r3h7qa23msi6pq0dagap3a0rcpclp73z3gh3wh";}; -lt3graph-45913={run="1w5n9y7pqy5zmn6w9bx58nnawvhp5467d150qxnj3c92gh0qbj5i";doc="157y7a7gpgm6dc7hawdhxr0v3ns5kibykhkg3wfb5r5fay47jj4n";}; -lt3luabridge-69867={run="10ip1css2g1qn9p26xzc9gkdjicd35m6jzdyxd7675zl0h9prvbm";doc="12gch4b6x7mfia5mgglld7zaad2f7w1bybxl689vjc0gfb46v55x";source="0n54m4pawnmpqrbb7m7182d8wbjs150rad4kqqx9h8w9ymwwjrc7";}; -lt3rawobjects-66619={run="1k65hvwwqqw26mqm248fd23xk4bgm864bqnyc759faya84ib8n0q";doc="00l496344la7q8jz0nr895cxir6zn5pcjsn16mc3cd7lpiclxs69";source="005iwxrraxmirspq3881mc2pb8iikc71p4g0dwxbqp38c8v8djb0";}; -ltablex-34923={run="11gazci0c064iav6124v4szdbj38anqwnfgh8pfpdq9zff0h9g5n";doc="0jjd5f3r67lrbl4vyxjakm8l8pdrw9vm1dzhl5305ga8vvwb7gn2";}; -ltabptch-17533={run="06ww90fh24s6lmzyvmqjh5gcr7vp3lq6cg9q6k6194g4kay6yx5i";doc="0yb41cgqpgcxk27259gfz14v9bpndjg51i9nmwr1qwyvaqd6jvjw";}; -ltb2bib-43746={run="0glj7g6zyvm08paszjk45kp65aac6i3f8spf6zn12idf1h0b76j2";doc="0j1p6bcwwgz00n3wyv3vm02z295sj9xf93v946k1xrv5jc6pg6lf";source="0g05r6b662jx2s2kal26b3lv0dd6r54fb8m09yv5d021y1fm2nqg";}; -ltxcmds-69032={run="05wvxr5bsrfgyy5aa0mrxqw0vi8m1ks5ma6fzlf8ngnbpihr2ggh";doc="0jnqvpc40mazy5ka1451w5rdcsl5q6rza3dqkhqpf79lgiswxgc5";source="1p7gzrhyiaiid1mpqfqlm6jfamdd8bvxx149lsnvhnxh3mbxlydm";}; -ltxdockit-21869={run="1krcr5qlz0648ibj5c1jd0y4rf6rg33r0clyvdjm70kq26y1lqww";doc="19jc49p978z0hrx7p19h33nc65a7vjhlrfszwvr6mln01la3ivmq";}; -ltxfileinfo-38663={run="0f11qjq1a3s5nxd7z9k19yhbl5219nn4fr1vfcqq1zs8pwnsgqzx";doc="1qjs959a28cqjigdml0jgyhllyxd5kj276akz93hdbcd6gzs9ss5";}; -ltxguidex-50992={run="0qv1p01y18ia4w53dvlfhdrgy1xsicaigcas33xs6yqipr8cwgkp";doc="0j4h20bblkwgdjvr2ihfy32mzyb9parbjgiijqf9sfg2k2p7xpib";}; -ltximg-59335={run="0w53yx4bsj5c9djqp82fy3yvfaf7sl08d2698bq1bzl13rlnvlxc";doc="1rni1hl6i91dw0fdynkajr27gir1a7qyagmpmypnpcdbqv0rq0hw";}; -ltxkeys-28332={run="0yc0c6hh8aiqm695by6229qqhv7ym1ssz6gpysy6hb10qrqbywkx";doc="10v6gw41aa4ndw2x4rwyq9x66hsdl4l4j0682dcfm4cpc903caga";}; -ltxmisc-21927={run="14llkpla8gpx7q6a53sd8a0a42wgk93fg4mbl6pc0v7v1kjblr5m";}; -ltxnew-21586={run="1sidvpbqn5b8szbgysi1afbw5lw1cm8ivhq12sig0z4z4ljp3qf5";doc="1f69xq5753iszfa2yr6dfmz1agic26j4qx7kkw9j23nhm7f0lvva";source="000dh3d8i57vsa46np49ml0sb4j1n3gnpcfi1ghj7pz5bn9br8w5";}; -ltxtools-24897={run="0ldvvkvyw1khfvg80ana7wj20917sjzf0lsp4699hf4jvw71w6x9";doc="1j51wpw06jz7xb6qf6nc52r5fl31q6zhsdm3v2ngc1hd03dcxpic";}; -lua-alt-getopt-56414={run="17czrz46xlbj3xkh4jwdq269mqaq7165kpkhhqa498hrkcgdgaak";doc="1zfwvs979c7s16vpv2k9l81mcmm9y4qdjk46l8ik3123dalchv6f";}; -lua-check-hyphen-47527={run="01q4j9bb19lf838pd7l26rkz1xr7mxcx4fsgf5xd4sdif18h56qk";doc="0iaihbrppn1ap7bqvn37rk8b6m4lwdi8w4zkshiqya1mphhsfjg2";}; -lua-physical-59138={run="1rkf3cgzw6lyld82p8crv8h3swk4acq7b0i9c20q5dksrxcr7vmh";doc="10kzyj9k5fqi0jjkah3xx2cgn1ssvc3byihvs66qpavd2gz25vg3";}; -lua-placeholders-70055={run="1i2x0vv8xaadh7klx1airmfshk49a2ldyknn1xzn7iz882lwwrh6";doc="15qvirq2kidifkgd5pi6cdpaafj8z76qjx7n3x6v9bvpp3ybwqi5";}; -lua-tinyyaml-66776={run="0wm23v7rm1mr2l10cariiyzv8f64aq0ms154md2ww9ad4qmsf3km";doc="16990nj13x5452c5mb8ha4hy6n1iyv2xsjqgipv27dhz2g176qy6";}; -lua-typo-69403={run="11g42k7431rh9ih81sl6q331k09l8cy1qw2w5n687736hvv65wak";doc="14rs9ds0mw796rawi4vwq73apyswvy6zlml36866pzy2w8mdcfv5";source="0kcjlddqjvfpjqrj690dwkzjf6b2qqjc7ccix96hzhb37sxmm2qf";}; -lua-uca-61023={run="1klxyb2iw6mccm2dlnpk947kim6ysvkykz69z7crf6lyzcy6lmvb";doc="1605lw450b64xx1a6lxjh9w4jda0n3d0b3sfvxl4wngd5y2jckzg";source="0z7fgyp7dh4zkz48mkh49pngaiyd58ckm0ipd3z626alz4k2jspq";}; -lua-ul-70206={run="1w4prgdq4xmx85gq3hgklxhsxq69spvsqnl4g51wxs2l1pi3dk4w";doc="08kjlrjicm93cp32kssvcjp2j23k0wgcly88xxpkzl6x67nw8qw4";source="1hfld2d2qppvbk0w7cjj9ng888jwi3jqlak4cbnngcijvwaw3hj4";}; -lua-uni-algos-62204={run="0msiywf33b5jpdzc66wyvnklvmvs4cpfq3f6bsplgi22x8nvdrvp";doc="1sfswdkhbjrjd4cjj95lbc1sq30j9y5xi35lg3mjfpdinq43wfr9";}; -lua-visual-debug-65464={run="1yby9rmhq63md8cb58qvi4dzlvw7hnfqicmkrap0c4qamva1aal7";doc="1g48dm1is12zj2ncp5lxf9cv9anq31wm3n99kjw9m1fsygjfsz1k";}; -lua-widow-control-70602={run="1qagxphvc273asxvg77sxrcfv51kzcc6dkz1bszbzzy9sv2f3xs6";doc="1zr31yn7xrxgzj2lnvw8f3sb784xcis63ggd1wylxfnar62mawr7";source="0w7b34afjik8ka9njdh7lfjn565gs8ns9n90phgyj8xpafy09jdk";}; -luaaddplot-62842={run="024k6k9iyqiw29l614n0rj0k32y50fgisd2g1abfis7lihc1nlv0";doc="044yp2522hns6hshlph91c990lh43bwvf40cgkfid47mi4zr79l8";source="0x09ac3qlz7p27nm478lcawdrj98622527ba4rz7004b5p2d8w8v";}; -luabibentry-55777={run="19rvhs12gw5vdq2vvcdzbz4qd3y87qjvl9x4bcqbncqcvwg82cyk";doc="1raq564ad633c0xbwx6r9hhwmx1r7vis283rfh67lixq3prl0nfl";source="0gqbmg1c4wm57ga8gx9g00dfbczfvhqsyl13q0ba451d3kmh6klg";}; -luabidi-68432={run="1kfyazn8v1ks5yvac4x5cvd42i8li0sgv00plj92c2m31hfxw2gl";doc="02387g70qsxs7km8dlgibyx080jwwjg668j0w12v3hz67jvg5ymk";}; -luacas-67247={run="04507iwzcyc2xgy6sfawzj6l4zrjq4iaqnb4946hdfc4nbx177mn";doc="16h9v145l1kv00ipghfdjdqyh8giq7y418664806h6gv812af7yy";}; -luacensor-62167={run="1n1dgnamm5l3hqpbrm4dwgsayqmr99m41iy4038s7mfzz6dkf0g7";doc="038838s5p5ynvxycdhassvkq1vhpv823bfr5ppir00zd7mv8c7b5";}; -luacode-25193={run="0qk8vadwymhcm7yw3sffdh9i171hl8vg07j1b5gbsl1sa70cpam1";doc="11d6ak1dvdx64k0i12k4c5kh24f5vqy0ihvj9a5lxa9gqypflrga";source="1fafh2nq66cz01jsbkb0mk907sppahlswsbb35pa3q5j7iqjzyav";}; -luacolor-67987={run="1mbiwswai0sq8wi4vmyrracygdd3a1g45m3qanpams683ik1syal";doc="0aqwjckc7cq8z80bjyl6fz2gqzrwwdvrlilpcf710wlrqc5c023r";source="07dwvksaxidr4b7z7fx68q2kcclhmpilvy1xk1xjjp07s5vgqkkh";}; -luacomplex-68883={run="0hd7g5fg9dbacbkk94zpjk7yjwx3jp70l2ia6wnzx8zqajs4hc7v";doc="1hsr4308z3b2g3g94hcn2cwin3awhhxb1hzy2c0nx77d0byx5kkc";}; -luafindfont-67468={run="0aajmgjbh77mj4qv6d1765bn66qjfk3m1b0bg286lp77c0vsjrpy";doc="0bhr19q4j9fqy7y8mjiz49vjd13s1wpdg91bqfdyx674l5sp72zw";}; -luagcd-68893={run="17nh27fkwjrfpvf0fpfbqcqi00bgchw0zf3iznp3iqmjyvrdwn8j";doc="0lihscgrlrjrc3djqr3v0zwdzwhmlk7r33rg0agasdhcndw5hb3q";}; -luahbtex-66186={doc="1hfawh7vig7jsmd1y0qlbn80x6770q56sqd9rx638js4p5a4di3l";}; -luahttp-67348={run="0nrk066mdzlw8z55qy8w3clpfdiy411mqni3kmn17adp5iswc9sn";doc="1xinhsfcl4xz3xziv0ch0rhgrqqzmrr3hs5h23hdyadayxk4wxhl";}; -luahyphenrules-56200={run="0msfn7s35xhpacx745w0zbr6g5pbhhm4pccd5cmqdhq6dh0fjw2w";doc="0y2rxs5mqyw6cyrmgsqqibsw45qjlzsrcwpd74m9l9d4731nyn37";}; -luaimageembed-50788={run="14xmb1cjqvpqwl33qx7376ndsbkql48v6094r66ksr7vlyap5hgp";doc="0r0w2lzxf4avfsv5s6fx64bw300vnmympfdfzz1k05c5c2kjy9x9";}; -luaindex-25882={run="08kckg0129ksr8pdm0a2yawwb3fa5js3mkp6jd8f90y0w7acrvis";doc="02w8s71qdkxznkmqv7c62dhar2x6ia9zsiwd29qxjf51dpwj3mg2";source="1v09zszin9f4k3gczrfs86zv019l42d6khacjdb3qjp2gg8w9qn6";}; -luainputenc-20491={run="1wsz8aw4dyhiw5p7gyf26lcixk1a8czr06akd1h6dwj6s5vq4vka";doc="0h6wjb0kjdqfrmzikvbddq4w31d55mxlcl5n3phr56fa9i49qmgm";source="1yps04v6fvqspq3rip0c6pw5a5y3annwfaij7w27i53419h83lbd";}; -luajittex-66186={doc="1qfbg0r6gsncgymh00yc83kcayd4m7bvryap8f63sm9s9bzfl6yv";}; -luakeys-65533={run="1p4hysck00vgpdnba5jnhaslcbq5cpyw89f1mdn2201dr0nj46sc";doc="1s46w0knvc5k7d5nqvycqschsf60p0qdgswwf3bs987m5vi7jmzi";}; -lualatex-doc-de-30474={doc="0vnmgs475bzbqi14m9sm45cwjfsbvbk45wkb8m73j1bnk7wg7hh4";}; -lualatex-math-61464={run="18m4jab4yy3fvwkn6fyb1qajsq4nl45v06l1kdjimcws5vj0wbv4";doc="0di41c5rk5raf88hpz59syhg330can3gb5s25n2y5c47qj0aph1w";source="0v470ky6shgcfy44b6a1b987cylqiz6rk0dk9qfhiqd6b93p3axd";}; -lualatex-truncate-67201={run="02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb";doc="0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn";source="159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf";}; -lualibs-67994={run="0h9v05ax34iir2i1qjzqi27qqnw4szch42mfa8mfxvxcmgcjyqpf";doc="1wn6j8fhprq0i1k301p5k1rw5dyavwn1lwvrydf461nwfvahavfl";source="0rchl8c2dn0f5bq94h56ncy4rp2iisr3j9wmp78c1bm22k9xa1f0";}; -lualinalg-68918={run="0ma2na0ms6k07aavahnpfz1wddrjw2zqq0znxfmib50m3nqh3r5y";doc="05lpj7b9bg6w6d3hc20cnqd50m4g0lfbgj65lywnk52klkggiyd8";}; -luamathalign-63226={run="00j2vngg8sqbagyhmjv8lr8kzfsllllmm2gijhxbm8xgf8r7f01y";doc="0b2zkyzy0rq2cfbk205nixvflqcxgc1sfxiqbiqhz2yhai5y87i7";source="1svawaz0lj4zilykjg46av8sky18pwzqfnyli8qldpby4zmnqgvi";}; -luamaths-68883={run="0gcri65p0y9rmq19rgf79jw98i855cl30al9cpq3znp3jjyikfrr";doc="1sv4ygd6ypf0hhcbhydcr1ap7ig26z476i8z0gs5mzfs08rdq5mm";}; -luamesh-63875={run="09ldwjfa0dfhgqv2clyqzd8nzq596h9fz72b1jh7vqjwkn5774y7";doc="0xnk2mcw24v6002v523m7amj6qc4w3h655l1ss4rpwvv6virp3kj";}; -luamodulartables-68893={run="1f250s8836j4kgdzii56c0248j5sp64f5wbqkpd6p69wjz7pbrmx";doc="0pdk7x09gmdv0lnwkvdv3scmbgfgpyv069fa4s5hbyvwskbj7fmy";}; -luamplib-70583={run="014y8nq1za0f0x0hv0cf1s3dq8937a3vv277p66spaa6qaj813hz";doc="13z4pdlydnxswna8qh6ywbqi6k7c2bgxspwgghz3n6xc5nr9g95x";source="11fbzlvs6ra67ywpbq1qxlk26wk0fncphcl1nrdw6f3l8v9m4dml";}; -luanumint-68918={run="14z8vvxxivi2i61r1ydq1csbxlm3621y4j9hx3p0m9s1ngcy4ryv";doc="1iss948y9rhg7j6am6vyc5y0s1cmn43k1g8vgcjlzbp8x88mwlwx";}; -luaoptions-64870={run="1lkx7ynl6xci7klgi2h7qbyxny65nca74xz2bhnhch6zm38rgsa5";doc="02w3623ix7g67bz21262i95gn1m4gzvlvn08f7v0x0q5lm7x1f3x";}; -luaotfload-70234={run="0zkj8hshfxxs9yq5gjmznafr88gz4vd551lh3pz8xskw0s1qh2cr";doc="15z1anhc699fb0k7v14s9xl9bgv0w0114zzz3ibwr37nj8hy6xdq";source="1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c";}; -luapackageloader-54779={run="1ynqy88drl04ld2lycrpvjj3cxddmbycznfamhl1bmn01c1q9784";doc="1fn9kqab5hyvscjqmd34vxjkdcr7bapgw7w3ckwvlsslxrv22rfs";}; -luaplot-68918={run="1lsc02qnqw6p2qamx2754ywk95yilq8jvn3vzra425iy675gl7kg";doc="11xl1j11p52zxncgcmg1b8x7isixz4vissfxzppc6ndv5dvqk3aa";}; -luaprogtable-56113={run="16jmy3cvn7rmzf5i03x51yp5l90kmrdy0iqg8ji4z3xwrf0iq79x";doc="1d0k83dyiml9abnfc3b9l4n6w18lgm37bijr8xj3chyv04v85392";}; -luapstricks-67207={run="1pzhv15ins6km9kmlmfn6qwypncjdsnvrv0qfqnp4zkbdy0hjxmy";doc="0kpnnpq7njva8lrk9wdj0l27iwkq4vhg2w3crxvnfymnq094gklz";}; -luaquotes-65652={run="0cjikz6739jiqadp28zll72i58s20dm1i0q9kbd3q2y69l3l727r";doc="19597kvgz6ggjfzbdkg9f5rg9qag9mrq83v0xk2w6f2k0n179d5f";}; -luarandom-68847={run="1qg41y50fmqq623wdc7rj17az8k2x0fwgjynq0f6213swx3nz3hd";doc="0lzrcg3vywprj6jksnwr2abd9qj1vcqqqk0fz9nrsrg3hphn6v0x";}; -luaset-68883={run="1cnc3pdysh2xa8jrjn6kx7lx1avpr6x11kcgyhbbzizraara656z";doc="0ynaizxiqh3lj1nnp8wcvd88z5jwpym2zcfvcp28nzwzhvvagccf";}; -luasseq-65511={run="1cxp3x3d346k7j6kh1bch4d83xb5ihb6h9jv8l98jcg0fp6zvy74";doc="1pxx09mvdn6pymsv7959bs5xm4568nzx78g8ikyj6hm00zqphaph";source="0h5zqaz5cvqgy5nghvazncwdxg6cmbv6sjlvp6f6mkgy2plpvbxg";}; -luatex-69182={run="0z08r0hjkcp51qzffqgf80df9445xiagi08cs3lyjfjn578z813b";doc="0cgml9jqd905jnwml4bwaqawplqp9ga0qnc4swkcvjmq3fkij8nf";}; -luatex85-41456={run="0ss7c5x0x7sx6lsn1iq6lyyp6w0xb1iy01s1f7zf7mlb9n1yzffi";doc="126y3priwz6anp8sj0296bnxd53lz20nchpxw74zphfpwrv4hzih";source="15bc8g0pgrkqpb8q2dhb6zml2d4jwrripih9898mmalsjixy62x7";}; -luatexbase-52663={run="1zrwz661gilr4iizcfsxwmfr9dgx7v28lypaslmvp3zaf52zl2q1";doc="118azb2x20gyaj42r5w0749dx8rzhhri1nz3szy9vv64h0fig603";source="0vsg8q5k8l66sy3d0bskr6cv1f95lnhap3b9yl754x7ynv272xcd";}; -luatexja-69988={run="1d61fqb07flldrnzmdcbnqd6nia163qajahbmhcxqshcj86da4ah";doc="1xp8xnqxm7mw6zcqkzjhrad255bsql92q665b0nmhw03h5xvyy25";source="0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9";}; -luatexko-68243={run="0kr9i78a3dw18rfws0xxc7kjd4n61xgzjkdlzb83yls4fyxncz1h";doc="0k69i41pjfqifqjcjw4962yvvgwb07a46igvwb70xsrm8cxgkm20";}; -luatextra-20747={run="1dx2hc1md8csvb37lckxj4987zaldfd73c86y0ni8fzd4zg55s7z";doc="02dl0skcr30hh9wgm7bkdv5zvx3czcdkxv3zdqnasdk0b7r7mqh7";source="1yq5i4v2dxayhfzn1yw987i3zjm6gy4fqckx5kybzh8f6jr9167b";}; -luatodonotes-53825={run="15syf4k00shgi159j6ja182k24xhfw71zk167wwmy57y7kwm5cam";doc="1jcybpcd500lzkwa33zdmsq3svb9hrh8f56j4qgwm9cq4wb721f3";source="01km6y8ajgaaab9j1bdp4s8gj3iw5b7cfdl1yngp41ph22888aw2";}; -luatruthtable-68893={run="0pkw1q5jw8id57mcz2sr1mb1lwafara5kzvq3yrkmqp8s9ml5ns4";doc="1i6nplzr640dik1rg668pai86vip0qgsfgizgbd7v4v7sjs24s76";}; -luavlna-67442={run="1hwbf0l2ydi2a5x05gcffw3p9yw8gvk4srihz7rsp6g7yf6qhzds";doc="0wirwf96b50m5wnhfiami8xiw9rr12mx20kp4wqc1bnihxg8l2si";}; -luaxml-70117={run="1cdrh3mhnclxb140x6xlggvwwzd5rwvdr7655zkvrbdq8byp3wxp";doc="1zv85256la5d98wklpgc27djazd4zpv5b7drd3zrf3a0l4mslvp1";}; -lutabulartools-67714={run="1vly69bgzq9pxapl7w1f7cppkx5yr5yyi1gxv0488m2z75522i8k";doc="0iyg0vqm675ak5j1ax46zwq9gcl58vr2r861085zzxicw4a1fh5i";}; -lwarp-70072={run="0bfvsw734380l5g7y0m6phyd99x28ib4s26mim5smwlx13sgzvh6";doc="00ix9xb95k3qqdaf5mcvkj99vz2p5mj76fg83hiw5pwbdv6p83j3";source="009jifl4fkx89157h5dmfa658wj0pvzhgxff4krpj16mlik3xarv";}; -lxfonts-32354={run="1hl703cxwldq4ams7044m02bmnvm8vkym7xyz9cb8xkaqfyqp8cp";doc="1lfrcfpn9a260bx47nw6msvksjzqjqms5d31nprc800wk2vb8sf6";source="17j1kys5hrvkymba91kp8f1kq5vshc8blv5pm0m6yk6p4kdnfkyh";}; -ly1-63565={run="04g9labqzn9c10asy6nn5s6clqq2cnbhps9jf683qx5di1pabgp1";doc="0l2dqyxd005y9k8xpca04vyzbjxx6vzr7by1yz4qm1dkccnjprh1";}; -lyluatex-66880={run="0zj0n5bgawhkw0c04crlkb2m8yabb0r49bysphgzabyl3rvd3i2s";doc="01x3xkqv2f8gvrsl0qj3d2y6bkzmzbphzxcqy6s0f4rp5yj3dw35";}; -m-tx-64182={run="1znv3xc5462jmm3ydrcnfj1nj7dld9f617xw3fl2gdwn083ivawh";doc="0svgf4a6rgisj614py6l9hm4ij7b4x75jn84s2ydbxzyv61bmmrd";}; -macrolist-60139={run="0yrgy9q7bjclww9crxzh3zhnbsmkjwncvvdm9nld2qfmg4spsis8";doc="1161aanidazgapb9vl3mm9j0j0jfiny9fx6il3gbyprw6j7k61ad";source="0b3hc75lwzk9l5nq804qbpmaxd9zlrybqdfyg9cavsvyjrjh87i8";}; -macros2e-64967={run="186qfgd6p825fjnwivvzvvpx1ydiiw4k4lkvs9gqvm5gmas7kcv1";doc="0faj1gxhrc1fsqniy56c35jjzmxbpgyc27ai6xipbdp8sjdqm6pa";}; -macroswap-31498={run="0p35inib3yiblfhiy1cpvwahiqrr309fks7r515s21ybmw409v05";doc="0w03lydl6vwslr17h4px8ddjld0dqs5zd15sysv0hvqajw2fs0kh";source="02zfswma4h70swyy6znvhr54a38wq1px3f5ypz7zy1k26nqi25r7";}; -mafr-15878={run="117qd3a06lpiqimizj12lxd0vba82lsc211b46ags0mwgrqhcyz9";doc="1m6y9mpsp4w9cnbln8pv1pn86vqj9piki4kg2q2rq5m9q0g57vsd";}; -magaz-24694={run="0ah5blj8qfjqgnmygn35r38nj20sjyi6yjci4j9b90d8pz9w7d6n";doc="041cb5rqk5ldvbcqr8w7jnfi4krlc7g72ygq5j7pi9gy04d98mm0";}; -magicnum-52983={run="1bl7lhjk9glvbcn4lqanb3zprqigvxj07f5nm8zn9vpja90fyn6n";doc="1as8l73v9bamajin552xb4xqs08ik8sq22kqdc3psisv4f874kk6";source="1kp0d8wgphbh4mkv1qf9h2c1f2nkzqn9q8fln4v35yx2cay679qs";}; -magicwatermark-63656={run="0g5m44fcrx7c2c009wx3zzqyzdlygsj5mnznw2wmmkvqk13zy0n4";doc="118zaz7brzg0jswbn0bcxd9w5rngqdj2qg46w5ac7c7m6fsi4izg";source="0073lah6madc8cm5dmz2lgc11bnyfsmrhfz8wis7zlck9y9hk6as";}; -magra-57373={run="02zwkxc94lzi5wf29wws8ia863ljq9bq9swkh8k8318v5z4dv5ig";doc="0q6ss5ff86ckqyv8l2iy6mrrigzz7yavizqcy3w5s6jhjadz5v69";}; -mahjong-58896={run="02dkqs06dgp74963awkyj7w3in66h91hx5rycix61d0qz4qwrvqw";doc="0cxzzcngiz7796xzf0k1njchhw2p2m47kpw2fhrf1cqijwhw3jxb";source="0ygvmg8c6yp2mwlffr52jf5shl0qh26p0xlfkj39zzabd8jv2ay3";}; -mailing-15878={run="0x2mgcmfmppzqlwkg5jd1zfyvfdjnrvnk8glby93s5nvp6i6g8c1";doc="1aif16654381jcczmfn44k8v8x60clq94z4hcwjsqhai6s441hbr";source="1cx0pq1qmkn6k09x1r8mx7dmpwvdvprmvwj45p1k7mmfcvq2834d";}; -mailmerge-15878={run="06z9cb353sl9q6a7jbvwwdd0zk3kw5xmww0r3sjiqampxib19i9j";doc="1dk2a71x04nbc0rcmd3axhz8yikzlw9ab1nd5k1ki7pmclwkscdr";source="1qkmlfc2dvjhrh2xcypnp9wansxrb9wzvniwfb7sll2bxjcfbs8c";}; -make4ht-70117={run="1akzga489x8acbb8hrjmc1i6v9wmbmi30rqjmgj32pcqqlgkp9r3";doc="18kqpslbz18hbai5rl6nbwhgf7mb39nhhmpdzfnmi9nc3k5ff51b";}; -makebarcode-15878={run="1ixhl4k89mng2dqfc0wa0fq52xpafp15gghnyx28d9j1163wxr7d";doc="088wkffs4b8y0clgcx1impzbxck8klm32dbf6p1jyc2vpi848irk";}; -makebase-41012={run="1nmlgv76zy1ajfzbdv7hizby3hhciw41s10hbnlbrfdl27w14dpp";doc="1vxwgjk3dj853qbvy2fyqzni2qkkjhslf17xvxskq97w8fcqr13j";source="1f8aliax01b9ir5wzk0bjhqzicl26xa63khx84s9haplh183qk2m";}; -makebox-15878={run="1v2xpiabjcgyi1d0ifpvzcll8y01lzs48bs19nalv37jw7hkrr4m";doc="078bz2pism9harcyb9lq8kkrkq984zx2ya47yhpqxnrd85kgcxfb";source="11gjpqmc6dzccv3yc539ki64hzpn8ns0zzjvanw7afbn5bkyrs91";}; -makecell-15878={run="0238il37zzshzl3qn50hav3wa6rd25k7rp5l93lb9g7r476sgvrj";doc="0mf4jc9rv66qjnm3ldrpx5lbfw1yfqy0jsvg8d3wdcwvlxpcrvwf";source="1vkfkfgjnhx5byipkrzb202w9jvmnjc2z3zjih6y61yizccwm543";}; -makecirc-15878={run="17y2hm6p280azgjvskyig34jyj90zngswcgxc7xa2h8pljh1fqka";doc="035l3s20mvy61rnmsxy62k6iid8lxzwhbkyxa1hblfnmya7rs0xf";}; -makecmds-15878={run="1z4m1kg7zy5q8l0a5d0fr7jl46wrw0rbwkxq1d0lm2s13xdn71dm";doc="1hqwvilvx61w47schnchlbgrj5snlp0lahsq5a1g2c1grmzpirnc";source="17c66isk18ch47syhsihj96yzi1jpr84946gck7r8ivpmk3cmmza";}; -makecookbook-49311={doc="1abzwzsm2jh11qj2qr31bznfc344ynjrdagqayrcgifg4725fa0f";}; -makedtx-46702={run="0yir2j268vdaa44flps15l739ngv97lws6n6yk3w4pz4jn5gylyd";doc="02ir7wf6v6znly9c36z8k0djrzpkd74ssphkggmp8fj338fk41cj";source="0jwdsfx2l8sz8y90bz3gfi51vswyzmwdvfmnlaa2gplhcjjbv4yy";}; -makeglos-15878={run="0jp0207q1p0znw1w86g6m8ifkpgh3hi1yhkzq117kwl5ybswq8w9";doc="18zl45jdpsvvldxvfx79ijldh3g03acw254m6i8a3dxgxj2p76hb";}; -makeindex-62517={run="0lpqnw6nr19p08pf52rcx1xvvsywkpf1rqrkjdsgrv55d1afsd36";doc="0ixvak7xisfnfqsgr3j5idzja5bynrx747g2w0my9fl85bjfjbj0";}; -makelabels-60255={run="18gjnhjvhaa6bdsangr8fb9yms3kq27wa7n0pb1rnqd8l00kp0aa";doc="113dyl3k5c32r9k13bm9kndmbvq0pm9v7k94d9y1ba7xiljh0aph";source="16dcm1mrjxdxby7szqf4h534w9g7z5klx15jyx9s568c4arnvfyj";}; -makeplot-15878={run="0qp0qgcli40hd2dxgbd8fv9s03r81dlhh48pb8la9sh28qrb9i51";doc="112chsx5wxrc7k4w3qzf23pjgr0np1ip1ylqs2igdcihchz6syyd";source="1zksg7iqb9g6my9zyyrmwkhx04qy0118lxf60cm00njwmsi8w1pq";}; -maker-44823={run="1fymg22y0w2kghmqh5pgxkrncdcbbmhhxappc72g5q337hcky0xa";doc="1yz72c1ghqjs06nagngpp2q62gh67c3klwm73bcbc090vdfkw7mf";}; -makerobust-52811={run="0nm751w11p7cqg8ihckn338i6908kcn513644c6a1qc9rg847hlp";doc="0bidk4f0q6486vgwqvifzchkn0xi1l9j65yqwgcdnl3yg6vamqzw";}; -makeshape-28973={run="1fy1ccz3707f8wxilh95k8sc3a93gl93qcpvpxl833mbkamkx3kj";doc="17dnkldg0v2qp3hdy4bw1k48p8xx3v566pm088g8qb0df6kx4217";source="1yd3ssh3cpy54gm0nkp2ah0nqarbnk9hqw2kkwdf96dj8vjlsgwd";}; -mandi-70235={run="1v4npbn35qw9rs404d6s8ajyc9fn3blypr45bbp282wlgfdmg0vc";doc="0cvk0sx0dy4pnyh8r8rz83v95jkjx141kxmspkdyy9nxf9jixn6c";source="0nz6nmlrgwj99qsshcblx4rjb64gwdn4anjp85gvk5hc07vf2q9b";}; -manfnt-54684={run="1fzfcvifh013xs6dm6xq2gpvmf3v0qn8scrbjj3yak2ba98bcy18";doc="15rs74sfnyq2k27bs3dvjiachwamima3q4vp0dp0ic95as2n61gp";source="1v3j47xa7k66dadz8dyy9gm3k4s6465zgqpzb320isjpb77p7r48";}; -manfnt-font-45777={run="1cdd2a3xj00bwsby9z5iz5f2iy2iwsjl35gcack9q83hacbf3ssb";}; -manuscript-36110={run="12r1b0hqs1kqdxvyg8lv8yrsdycfxs03j0lwfmlhbg6lmgz32pss";doc="10dczs60ncdk5z76w5jxgis9m9qilxp8xi53gixki4i82yd4l9va";source="08fpv1i9vz6fbf9vy48k6y45xz67kbqb5f30c8pxbvyzlicixdjk";}; -manyind-49874={run="0c5badlrh2321958z75wi4ggb289hnyy0i17bpf4qw9sjym08pz4";doc="1x65nnkmqp2x04n9rg2n8yh324vdbcsbv68xfbb3ppx2462wrls3";}; -marathi-61719={run="04nf43i9z0s8hndjwhfdyysjxz8k1jargsrx03k19i9lihdjfjs4";doc="0ybafny55hvpv4kia7jybybjn4vq8f2g7h770xzq2b1mimyn7dkc";source="1ja8kbhsbhkcm0ig6954l6k5absdfppikzwawifp33dwpjkk6w0h";}; -marcellus-64451={run="13blr2k1vk0kwac3chplddaplsjacablkky68yq0wccdrxhbxvdr";doc="0sgcjmkgailx7nvav1gs370ywi61ysmm1snz1f976ppdbmhh1v3s";}; -margbib-15878={run="114ifix2wa74ix9zz1ml9bpyd0pqzj2983h29n3h425yq98aiqs8";doc="01zam8vg63igvhdzf3gwgm3gjrnd23i8ra2cwdj4w44lcvapdlss";source="0qjpbhs7g4qdhna3kmlv4pg5fk0b3xwpwagyvnl91gn3q4aml4s6";}; -marginfit-48281={run="0x8ias8bv1zaavin929782cjvp7aw94r18lqvv10v3vgq20n7kjw";doc="1cj1fidjvvhhzn9fxbvyh75dfb78wxi83bdxnwbpc6rf3ax5bl03";source="0rrn2lrqg3a1yz6l88qkh8sljr18p1wx1vxyrzg04pzj21lw8kkh";}; -marginfix-55064={run="0arldbc20d1sncwanx3szam53yv1d5wxgihj8lm4jmda1858bmgy";doc="0kk9cghi0y1zfk6ya3pfs08npdy7v95i4db5a89v2177cd6z7a78";source="1k1384nxhiywlvyndnvhj6a35q433ddc019ckf8al2b1ngg13y0w";}; -marginnote-68204={run="1jg3f25jhdywqaxy4qimxr7x0kxjs279m7a3kf9lvyj6igcijml3";doc="1n1kswzhxdx7b47l4gf4cbihvzy54z24gg0sz4syvpy6nq23fs0b";source="15cl27n5q30i70ad91ajflrrcqb5wya1cb400jh82b9k7a6y8ych";}; -markdown-70583={run="1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a";doc="1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x";source="18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz";}; -marvosym-29349={run="14i2alqxpz0imgdlx03gyg2nn56wrhlc0rziyx93h4ya9nz6xzbl";doc="0qyfyz8qfcchnf78r71fp5p16hmsrq6xf54g5mnwjb4p5ipbd9np";source="0vbiq807pazw2c1ck799w8sy3q8wcpb6smmq5qqw4nqcxzwsxk78";}; -matapli-62632={run="0r6xibqz726d68cli8izl20r4x2ncvrmlrjb711jz82qxbgs9kvg";doc="1cmyrnrijghjm15lhi2isza0dishbll3k4hpzq84jjjbcbs4gvyp";}; -matc3-29845={run="1mp6k50lm020xqrq2vwl9xyzr5jwp9p85c6ng3k22g4rqsxhrb3c";doc="17xh063gahp5m83vj6x8waqwvf4hrvg3wi80z70r94bag0nqqf2v";source="0pq4l1ays56ry5v3ig76h49kn7hdk1gi0wqx9b29vkdvzmzrmq02";}; -matc3mem-35773={run="1asybbjj93wpbcn577cqkbfi2bkiq2hzv5b2lqs31igawaa0vdhg";doc="1fgngv22falzvrsynzzj51jaf4gfcw88jwbljywixqb9xcg9igcm";source="03x6cm78yhgfljhcfrvn49favgf6h11w96s9agr96xmngzh4z40m";}; -match_parens-66681={run="1cp1qidfxnrhq5hia9z3nm4ij2g0v1rxs4g5fb8srmjpik10ss16";doc="0c5lcbkp4f7c8dx2nan6bv6cwicgk1520grbxs5k3r21sa2m9p8i";}; -math-into-latex-4-44131={doc="0k11j92h9hpxnyciczknhl83b05avc0rqdnwn82ssqi1k3qixibd";}; -mathabx-15878={run="0x0amwdxr6mh6j1m1q6wawljzjf1683xp1fxfqyxmsk0spx032mn";doc="107fimmxvfmdjdi1rlk0h0m88q1dbc9q1qwqhx1fwfjwdn62kvsi";}; -mathabx-type1-21129={run="026pnrn2y7zrl8qfhjv504bjk114z6kd6ich2ic97l5f3lhl9nj2";doc="172dhvsqql6fk2hfqcw19bxsqwqjfd7376a5wwzcvdgvx44s294v";}; -mathalpha-61089={run="12fsn6wsgixbpnay1szkmv16a2wfsl60nkcbyjksy1j06gr0yf5p";doc="0ryvikvngpgnqbcf5mp4g99cg0r72x53p7q6h333vd3s2qjah7x2";}; -mathastext-69237={run="02zjad6562mfi1lvdv6ha0var1p4shgfq325c8x7dsrnl12v788m";doc="0r7f9m237crb9lw5yg5gq1d20113fq8zpcf0lpr9s4dix84lyvf4";source="1ghh502n227kwap1ij89xj0i6jc518dvdg2cbsi5zmqwz7m1snxk";}; -mathcommand-59512={run="1mp9g6q271ymx59rq9lkdaadi7dwz3p1d0qi1495rrn5d9fpccgy";doc="1bjky5x3bgrfmfripn3dmabg0bg02h6xpl3s6qncqgxs0bnfz2vs";source="08l3gbrxw3aa028820iv2l1r5alnvzd2wjx5fylxs9lhrwhbmq2b";}; -mathcomp-15878={run="0ciipbbi89n9aakg86czfmasfnx0k6rq7f8v0wkxk3zk2m441cb9";doc="16q0b81y748qnyc2gycrb3jhw1i5yphmf6rpivwikzpk2nrg3ndv";source="0xdivrbkhn1fh75ws54i2vxgx3xqaqkpfjir5q84vwxgmxfv4cja";}; -mathdesign-31639={run="0jd7xfwavfn4dsss35splcxrqj6qwk18jw7qgkwshpifp7m79l2v";doc="02fsi2hinjfcf4pb0r1d0r82s50734srpkk0i9c566zx3m52v2vf";}; -mathdots-34301={run="1wbxvraw5lp77chgzslrrz022zgqn2fhmzk85cn7ggafip1hr9s1";doc="1ldl9l92y893dg2ksqn6n82w43a2l8pylz3iq4glcphalhggydcb";source="0dkpj8cychzl7gg4bp41qqi3y50x0dyz2pxanfli4a2anh2dy06q";}; -mathexam-15878={run="11rn665k5vg9w9rfgcp602v6cg659d4c22gikkgjpslc7bzrlrkh";doc="1lv8zdp1fajq1nms16v3nk7f0bc8az525nnjjjzags4rpl8wkzh8";source="1p0lalc0ny1zb8gc4bbg7z9pm6airbg63l1k0qqmwg10wvxpsjn9";}; -mathfam256-53519={run="0s97k46ysqvgs6a8aq5q8iwab390s90drd3g0ixd8zmv9a4hy1z2";doc="1zk42fsknkbzyx4m7xn3yjw9lrdvf6m7crnqsp1q7qb2nv3hn1br";}; -mathfixs-49547={run="1vvyka8kilv92hfsx8ahb200cl50kp1r4qdiaqgzkjag5kfxy1ka";doc="0gbh6yicv1mf0llfipqymy930zpq9jqc2ix2gfbjdh909l1y34rw";source="1k49pdi4kivk707i7fb2banj0qaqc5qx8zl2l8b41i6q2ir90a4i";}; -mathfont-68241={run="1yh9rlhg8lk4a4haaxlyaa76ij0i6rb4zbk6kryp71ks6hyq7vny";doc="0wsmsimscrkxbyx1mkjlhkiv3xj66q8r2fiwk8bspx6zbdr7fwyq";source="1z7k0x9gcyls65mfgn30dhipqwfhn78hwx51gxvrn7z45w4h52di";}; -mathlig-54244={run="0pyaqwr2h9knxf1axi55vm6wr9xj15d5j5pagb2011k3b830f91b";}; -mathpartir-39864={run="1a934cglbiahnmqxjg2695rmp8fxlg3m19zka8ayc743ckv92prd";doc="1aw9sbhgca7hnshkd2vyzf5lrq2xql25mwp9qyishkzq9ayv7p13";source="0bn3zragwja3hh32fbrsdsswlf07a8i6qrpnv2c1c47m86xk3764";}; -mathpazo-52663={run="05j5qgq8fralghp5wkx6bha1cm59vha29ppq96nllq2k2nqhpi3d";doc="1z76cb473nb6r0vjjxjwiymnk9wsf7pnycc3ad3ba4vd3yl1827g";source="0lmyc1q7jswlhlzz4fd6ia407jj4pzi7wvmrcgfyw20j2nghfcgp";}; -mathpunctspace-46754={run="1vlbw77bqi0qlm6i6hk0kz1syjzjk41mmj9nhnsbm3l8f5fy44bp";doc="09m2w7pzcahncazlw16c0bh6v3xgnm7rqf71lpvl8p33krasaj9z";}; -maths-symbols-37763={doc="0z83qf1rz84cr0b1zvwlacf24pc5r8dn1cxiiyl0xrqncl3279ka";}; -mathsemantics-63241={run="0vw14g42f9jhnb4k75qlighsngdl9kkwp921iblafs39zlx0fh7w";doc="1lkm8gysyim4kjggwm1dqc9158agxng3nd9kdksyxlna89xrgq96";}; -mathspec-42773={run="0gspy6kjnx7bs5dxap8ym8s0k9i8hczi6s4s97y7av7vc8j1fb5w";doc="07mmfcd0fvhrhafsfk4sb4dvs5x8x1rjk1a2xl20kwpfpp8l1rb6";}; -mathspic-31957={run="104vf0cbxhfbgabxjpypyx16fbpyi05k14dhw5ynmlh4rv3ck7li";doc="10j7z7yb5fjqlldf8w5sm5kic6v842dijd7f4v0b2q5h1gbhwyim";}; -mathtools-70607={run="0qkjy4a44z63igdp5gvnb7y3kb22l1x6v70frcbiwmhyagyqa5ns";doc="1q4bnkpyhf050cwla2ns0scwxjnbfxdf5jy5z8l5s2dxm5qrhg99";source="1lrxhggn7k6hma49rpq8zkfqvd86m1c45mdh1n3cn5nk8b76lg7i";}; -matlab-prettifier-34323={run="1q7i44n15pvpc65k41nw6z8gxj0nwk39mhafnmsibxh41yyxz9ns";doc="15x6lbj54597f8wm0vgf0yy0iwh7g7xv7cnllnay651zwg3z7h9l";source="0vr8cll1v3hgikrng1rilqb5d3kbggcmdy92hsdnip7dr0hxc39y";}; -matrix-skeleton-65013={run="1ihjvzsxaj5282xc15a4fw6cqj159m9hpj4hblfmjgjra5p597gs";doc="0109ify7qqbdrgrw0a8svdaqk1amm0njvawgh1ch8z7qszlpg4c4";}; -mattens-62326={run="1az5ld75djha5949bl1wiqbm5mzff77cvcyyk11qjvg7pjwa3h1z";doc="0mqsr5a2bhgrllvcqp03aacvsp7wymqnvsk1zswwscsrjl9dh5ka";source="15ww1gl01yfaw7gcm66z8zd2yhhnj15pw53crj6ma6j94akn1zff";}; -maybemath-15878={run="0qb9nr6m819axi9qn8i32fynlmkjvyvc45gyp6pckwj54kxzx06q";doc="078s9v2bly2q802wdidzpvwaqfdkz00wkgyhn6867bkbq89g4aa8";}; -maze-65508={run="139hjw2asv21p0m7qrpi5liikgf68kmk9v214njh107gi3cjl59w";doc="0h1lcq6xipzsw15cycraqjf4vckzqprv7kccls640y4jd38g3g4d";}; -mcaption-15878={run="0bfcl1swwgz83y4f80a1kydmxhdyqxld0d5cjfgxfhnn9dxp3wc9";doc="1afldwg6dghvkwd8gik8dmag4g2pb6ag3aks26qi0ygph05j9cwz";source="0i6sd9vm1pn9h570am4lkr2br81bhmqqwwvymb8r37xpmmp9yvsk";}; -mceinleger-15878={run="1a16g83g9wd5vdx70bq8zbr4hwm8fk46dpsna97r9fgh44n85pv9";doc="09z7srskh57mz055ywyxwg4zcx07vq36jdy8z9w6w74af4icpll9";}; -mcexam-60481={run="0ixgrxw0fzaqbkif05lvd3z6zlwhdlyhfb372b98ypyfp7f7v1mf";doc="0wi7zjiw93hv74scwz4w4prmy00x6n3ncwfrxjyxn2p7i2hkws6x";}; -mcf2graph-70167={doc="15pcw5zy9ghrpw1q9b6sck9zvjdr6py8j822zvdq4ca9qg05rlml";}; -mcite-18173={run="18did9achsp32k7wq4q75a9q43jxdm8k40q41j242gndnkn8axw1";doc="1gdsa91a4snk3f22mh06mr811b1kb0vpi30ss84d3mrnsvd1p0ha";source="0q1bv5nx9xf6r1fvgnxb1x720dm0xqrqg3kya0504q8qb0kgxqfj";}; -mciteplus-31648={run="0xbk5zrd9mbk4xid03j7a0c96s311rb1vjawhvk5waqw9y6dn476";doc="15aldir7viryb2f8vi0a83vgbdwbp5gcdg0slhp6j6ka6xv7ayhs";}; -mcmthesis-69538={run="1pz460nrypf05knd6lbk6sggpwsn6cssv71x7mpaz4557na9xg1j";doc="1mzfhkpahw0gc1q3b9yr4p4ya82y0y57ij3n12i1sqk7h4m3m1vq";source="1g7i751plyf1v4561z827xkk586zn8f364xapcfvky54lyw7v9ny";}; -mdframed-31075={run="073gcxy2s8mskf4mvvs1jr8fkijci1ayg0b5r5xzcjw0s5azny1m";doc="0m8k7h5c0h1fdrpdf2a4vhgr8saqspk81c0cdjm2cmbsfm8zlc3s";source="0p96sl69p5342yy9fgw5cnkfi2xabdwb74mw7i1gbxvj0vx1f2q6";}; -mdputu-20298={run="1ihwhdcmk3gd081yn4wimg7yadvxkygybr3bypqrvllwa92lay3j";doc="1hsd74svpxxmjps3fng679hq7dm35mz9glcwwhk1carzafmm2ppm";}; -mdsymbol-28399={run="1rckczggrdd977n7dr223zfvp7dl683p7d6wfija8ln4d1ll3lz8";doc="0v8d92kpka138yzy4a8hg5yf6zrz267hhsakpm2f0bamdzqkp4kc";source="0xh9d4xpdyacmb3kxmqh71qfx0b5qbrgxrw3fj2nh2rzh35smsy8";}; -mdwtools-15878={run="0l40ydzljgydp8qfq1lm9v8nz0mrz4zxpjxicypn2hx7bxs2b9rq";doc="09d2ahrpksnjd4x7gqfx7yw51ivfpv4pwi6ms5c394c3v30xak94";source="1w3sjwa0n3pyn33k4lwnzcswm86zj9givshk0raq2qdb4znvxsk4";}; -mecaso-60346={run="1hsgs52844fv3yfzhylb47hpgjdfkx5wvgx1ihslkg9xm432z18c";doc="066zg20m9hnm2h0bdbzfbxcjsgpbm52l6xwrszbl2ycinqf4rwdx";}; -media4svg-64686={run="1l8ncn14k3khzq4pvy0var7j7nr78vll42bfz1m3cxi5i144ygn9";doc="1ws9j415nkj68ypgmvsc3384dqzjrfab0bb8khz2rqq98sv6129l";}; -media9-64047={run="0891l6dfz89fqy35svnk1rl6vjwhza86km8vk85n9wp322vqnrha";doc="1v0fxv93qc6nj7rskf7gd8ra8i7sll2aznrgs7q2bml9xnggvq39";source="1h3p9v4p4kr35ixpwwv7g8fwgy3ky3haa2ypjlpzbci7jcb0ix5f";}; -medmath-69510={run="17i7sanjgagb303q608b86a77k1p6zc393mrvkcyrr8cjwviy9wx";doc="1306k93xy0sky7lkysikiz2zvd7a4lkpv99spifyi31y4jxzlqrp";}; -medstarbeamer-38828={run="1cndcpdvkdvjx07rfan5dd7yg6sv532b6vvd97cm7ag2g1aqcilq";doc="0i995yaqv91h4iv3h7r5m73vb7xvpjkzrh6nddcjjcsv2gvpjcxi";}; -meetingmins-31878={run="0za2aqj7gbmxxdm3hqkq2sqkhl3c1q8a3s778hw164dfpi8jx85r";doc="13kqp3561k9pcz7lmh7izmxw8iqq0s1jlhvq12dh00wvr7vwr8dr";source="0fkgaqldjdry08wl8al8d0kppbsqqhig83mgwfk20rzpji298b5x";}; -membranecomputing-64627={run="0k8kgr6rlrgpmmylf3vjjjiyis49lm1r1hnvb2m2k3481gfj7zfz";doc="14hk6rw8fj040vwpqhqajlbzlp7g3c7szprssxx148j816fgi95c";}; -memdesign-48664={doc="0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7";}; -memexsupp-15878={run="0h3n1bnvyxr0ylg05fm819lzhzd7kbip5p5mr9kc5af8pd6yci9k";doc="04zwmw6varldbg5cxzk4bv8mbh80i9gdysfxpn1i4xb1la38b0bf";}; -memoir-69600={run="0zfab6dc435zy8cad1zi3f6d29vv02ns9cpgl3z14cx7qcm62c3g";doc="1bz0x9ph9l665rsmbhdwzgvfm1y1nxwm2mqbxlz4gjaqz7wf2k0l";source="09c78l1akvc3x98v47hwsky52wrx81y3dd6v765s14jjr1qahsx3";}; -memoirchapterstyles-59766={doc="0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a";}; -memoize-69522={run="1qdq26cms38kjzws2712skwdxajc3qa9sw3zin0h5776lbbz6q7x";doc="192jsgypxlhldfn5if2zjs4gp2a4b4p3hwg80c0hpz3qlvxvi05q";source="0xw8207wn9h7yr6q378631695c5m2qars2adw23n6v0fxcm95izx";}; -memory-30452={run="1zgfjz995jbji8hycizbp614dn0g13rimh9csgrga86f1ivgcpmx";doc="164nnsi25jk25p3kh54w2l8zk0rri50p0s9g4r5f50c3wzxi1g4h";source="0mhxxhiqq5miqskb6c4hmjdjki280yyin2dh0md59ai1aprgd4p7";}; -memorygraphs-49631={run="1ph43wp3h3pz5hh6dp3n6dzmmbn0fw11w3v2fjf6d07a73jqh97j";doc="1k8gppgv5kkx7i799mwc9iclp2rv9hgdk2bwnqcyc3j3rmnpyiwa";}; -mendex-doc-62914={run="0ab3hrln124gwvgsszd4l4jjrc705x3wbnmrrf27rx8p6fcwwrmw";doc="00m35j5wkcsyrgp0h8mf6cx30bjlhv23szmclpls70af2shcmzba";source="0sqp5s98lzdjnvpvw3hkvclrz98xzx6v7zrlag9m1im7k2ljlcvy";}; -mensa-tex-45997={run="0gg38ls6fil67d0ln2yfjbpi2r6cbrnavfl926jbpxjfh4qxvqcq";doc="05krm8b1ylr8wjr0xy361whm0kn6mj4y6yrycjj47927xnij5qfz";}; -mentis-15878={run="1pjpgn0lmyd7y7qbri8f7s01a1akgdif0s9v56ia2rsimn5fgbzr";doc="1r6799zz3y0iw020wwwl8a7az2j5b894i7w0pqqvsq05g4g00fcs";source="1ajy89hkvcika3aybpz93myylwlgfilg1d432my0jvmsa40ikcdc";}; -menu-15878={run="09mnnssvb83l1jhjbb4rb6lbzhwf4y4y0mq5h36dj4h2hp4qfi55";doc="1g0ihkjlnf9v90x39mm2jn2ziijildyiqfda5bkm441pjh40x0pc";source="091a0akja0y153lhhplb4v0n4z77qvxh9nchlr0v5sm9bbpvpiyd";}; -menucard-55643={run="13dirr45ysvi196wgsrdrcxspynzvrk88rdacrfq84l4imbsh683";doc="0sbgrk1l2b9mdhiymwvp6zci4nb86rn2r06chdbhgy9lzija4wdv";source="1pg4c26pij7p218a0r6mcwbmnsgdj7i63z8z7gq71i8jqpfcmlrg";}; -menukeys-64314={run="0039xx0qilmji8ch0i488hx5rnhf1brk6n5k0c7vg7jjs4xylq7v";doc="0a6fnclh6gd1n0f11dg23gykhsr399qmplq3a43wqqgichsn2k2l";source="1na3y08blykp1bs4bqrjx1lmmbiykfly00n5in8x6h0282q031i6";}; -mercatormap-56060={run="1gw28rgsdllh8h9cg70nayj12aqw356svv34lhvfj5b52y7ykabs";doc="0v9v54qz9m9hnfid2k9xl7fwgwhjxnk0g7wndxypd73b63mvfhpi";}; -merriweather-64452={run="00sy3iyqigbmjz7v6lf47f88mpjwgkbhrnp59x9xpaqwming9fp7";doc="0z3k1w905vlawv5lrmc55q637bfz17cjndlk4gh868gqv5j288v5";}; -messagepassing-69123={run="0r8qfwyip83mbvmfgvwrlypms90g4da0qf2ka26pki9r3cn9syvj";doc="0vicxdrd51gmk8627k7a1n83ldj0kgrzaxmwmg5y99n619pagxr3";source="1im9h7n2dpqdc8hlwf65m4ss8y9k28iaw29nf0pnlh6qabzqgl7x";}; -metafont-66186={run="1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35";doc="14fwpwp4kf7x7amhxwjng2b5qgqarhrg1dhd7zds2xxmbipcnxga";}; -metafont-beginners-29803={doc="12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm";}; -metago-15878={run="0km18bf69rf3rs42b0azc7i8bypy14201vk13yf5ahsypcjcgqns";doc="1bx240q75pq9v23gz82i26vrp7z4cb00f9nb3cvvknbndk8y7hy2";}; -metalogo-18611={run="03crm3sswv7mz5akghqvkq1zpiy9jdpy32ivwwmf14sfrrri2cz7";doc="08vgbmjhynb4ramaj68i27hpgijg51j80lm0qf1jrfpapz7lrzij";source="1ak8qbcbqgirljfwhq7ylxk1w2frxfkjvadjq00cclj007idr3x8";}; -metalogox-70496={run="11q1i8cmfjw521xzqgw27vn8bds5var36nacik8ffflgb3f6j36g";doc="0d5zsshzj575y5ry0zvm39dhigcjf8mfh4ficj084ss5xgmf2qyr";source="0pkbi2f6zsx4c0wv501kkia2mz6cgbcnln9zbvlnrq9lk21jsd1d";}; -metanorma-55010={run="17vg55m4yj3xcfgvmm2kw8a81fblwykgnbcn65drll10b89wx6xp";doc="0z3mr4aw6gqdj4621dlghb4bsc5i44mlg81w81by98783fn4xdyl";}; -metaobj-15878={run="07p2r8975ps1ricqralyw2qz1zq5lmaaf50xqd68qwxmgrs3541z";doc="17kqa3h13p9vba6sa5s29v29gkm0zbm5wngb0zx1lxwkpkgqaqv5";}; -metaplot-15878={run="01blkf01b89a2f1c7fw6dbp49iw9qw94krv1hiqg7ckkj8j06sp8";doc="1fm27sy0zz3ppzz95bngipkq4m498g409igx4xcbkmqaghci1pin";}; -metapost-66815={run="03ryd794cm4srjmq6x0vly4jav0w0j5p4yhvlqvsnkk1qil74nrv";doc="1ihf0m9p73k247mj90hns4afdqxz25yvfbmpxrbzi4w08q5rdxxk";}; -metapost-colorbrewer-48753={run="154yj9pmwlmdq91kw5xllqah7pkccayv8r1zgvlqgk472x66zrzf";doc="1y0ml5ldridhcg8k811dqq2dh4xsx48cwfkliygq0q1kkl34vdag";}; -metapost-examples-15878={doc="1rslyjnw27b5br17cbf6mjjkcgyr49yav4kw12spm3vdwyzb7gxr";}; -metastr-56246={run="0ci2qs1iyyn55zl6n12yn20xsff42dim744sjkxml7xad38vpnkz";doc="1jhvf4xngi5mjycbrbijn72p8anx15r1n6vh5hrjai95xp9jn88a";source="12rv9fayml2kjy7rmdh6d7g4xr2yg3r5ngky467y663p893nxk0w";}; -metatex-15878={run="14s2my2zs3sx3hy0vapi8zvxb6d15fl7wqsnis58w11a3kni4f1d";doc="0z0s4ys1zsa2s2m4slpjdikzbkw8k8m780gb5mh2j2azc7yxlsdq";}; -metatype1-37105={source="1nhbsn33w6zbzbvi3a32ng6ib5dbh0vll9g2c5ssiv1ysxqrg6yq";}; -metauml-49923={run="064cyc53izb7fqc6xfk7pygr2k7wqivx29rkxzrb7sakafwmnkq4";doc="10n2xhjfysqihmkrzgcg96vsh0mh76h1jjcxx2nghydihjdggzjr";}; -method-17485={run="1aafzyca2l34p8jxgdhwm54yw16znd1085lx58wrm2fjw727946k";doc="18sjh2kvy1f3c72w6k2m60jf60zbz7bz91xgq20wjigfagdmsqkd";source="0ckvvf1h80mlzyqbd12yagfl8hph9l7k35mghr1ri4k317sm3ls1";}; -metre-18489={run="0vfb01vwb6x5wf4sq5j1rrl3jpzw0mwfqy1jkkirxkhbim5gln25";doc="0zkr3wymlzxnk2n9h6nz65a1gsg0k4pfabdrkc15wfdn0yczicj1";source="15cvprv3zg5nfsd5l5sj2s2hgx5gljn1jqzgcr4lpadpans14pkx";}; -metrix-52323={run="11hcw66f3r4rvxy8h0znwgrdvlfvibc6j73pcdb3bvyywb3774gz";doc="0hx74wi8vf57ly8yrzdq6x5qm8l5gi9km4v0ma66i5v40i9jwgcf";source="0i0xzmhqbs91qpznbanlhrnqvgxc45llk0wwb4mfcvmj622d47bp";}; -metsymb-68175={run="0b306z77z64wzk5smm506xsv6jbr3y6ajwia12i06fdynx4jajp9";doc="01x1qms8mh1523vpc8ky87x2zc05m0gr31qwni60k3byx9zi9blw";source="1g4kviik4qg9scjp7mxaf3n6kzdm7z666iqpbyz6dmkgsrsph99n";}; -mex-58661={run="1azsp6n01qhph2my75r05sby7r3lsafydsxv8f5532dkb9r86p5a";doc="1nkr92d761c7yfb9aysni3ihidzw334w4180d6r15k1iwinrn2al";source="1nd7p7ssh79rrpv5i0z4246cv4wmjgy3by66bbrv7w2xhmh5819k";}; -mf2pt1-61217={run="17kjgjbjvwnh3cn4cky3qj4kaskiis4h2zxd0mmq5h87qs24zj9y";doc="0iwnr02wbh36q9nfj8jxc5d5kfc1wzap5gspix8n5rl3yzi9xgk4";}; -mfirstuc-64743={run="0bxy961jghqcyf4pkd3pvgri2dq56s0nnk42ar3vyha4lj0pp5cl";doc="03nfbjsk5yvjzn5p58rq2s8bn4a982vq7riqdj9glr480cmzbkq4";source="0i8wfvdjw1vmvngfj7mqpahx1c8gjigr4y51yhz2xsrxhlpih5jh";}; -mflogo-42428={run="0swy70pm0pyqzy1i5wf5hc6cbzn91ihw8hwh9kavdfawb4qzjxxw";doc="1xqk3nwpi3drkzrnr172i660yx541lxxw3wps0jqbqficqn4fiw4";source="145hmbxr5x5pj2whra9yify9lyx0ak1az31gvwr3gp5klcmna8p0";}; -mflogo-font-54512={run="1dx834zwbrwgp2v61fagf5m4zmxf2qkhib4mkpw6iadcgfqv6x7f";doc="03b3qg42axqhs1lvm3pz69m4jmhd1385gzg1sw8bqyajlrdnydyh";}; -mflua-62774={run="0ngbhdh8hgpjfqnrjlnp27x3qziks3yf2zp1qq7r4bjfa5jx9gr6";}; -mfnfss-46036={run="1m0yza8nw5r3ph8k5nihgf93vf54cb0cnw4c5gkqy0rsd23hk4dd";doc="1ppjjma5dc5i9ly5y7h91647nw9c2y9w65k0dn1ks92xsvnzf1mv";source="0qjz8dz76abwqspab89z3a50nndh6gflanr8hn31z5fra3kzfp90";}; -mfpic-28444={run="1r8xq6npgnlvcyimi0xlqmqa140p94m5x832x0nfm9d550l1zrgi";doc="07h8j6afl5sd7hz4gw0rkix1c39vdkg8376jgi7ypwvk1xr0wgp0";source="0ynnc1p2xihrwzfyg46dljbc2f28l152la8f2z2y5zfvd08ir49k";}; -mfpic4ode-17745={run="0jdqbdi2gqb1v4cqahwss1rj44iw0753cq262j8zmaarski351a0";doc="0sbsb9lysz6hysrpf9dfgm2zn5qcsv7aaf5llmy9kan0m4h84afm";source="0iya4y3msmyq468zj2msq93xpa01044kmnv4dspz1fmh0324iklm";}; -mftinc-15878={run="0yhw7zpmbc3780qm46p5sc2qq71s2vhmfmi3kqscck876h4935fy";doc="0yxpbp501d6vwsxpm83zjhypvz3xz51f91q414zxjvsy1cvvprr1";source="1zamx3658d8vaik5w30hvia5y0hp119vhvqhj4h5kkwnwmz8hs45";}; -mfware-66186={run="0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n";doc="0z3djvzs8l0w1j7h22hc19r2i49panw7m2lpp22lshxybsibr47y";}; -mgltex-63255={run="11xl6nw76hana2mdcq7m4h6kx6zx91apxcqkgjczcw9f7ip6m3cl";doc="1939pnggbc2vcvavilcssf6i9j36ysv8k93f0bz1rgn2krja2d22";source="1pdlxf2qfyzm3pjjpl0wir4sr255lqnspbsvxfy7wz78aii2ik5y";}; -mhchem-69639={run="1mvml2z30q09rw24laybbkacf57jav8459nb6qfj4z068r9bpifq";doc="1f4nmg09mg2nykrrynaaijkn7xjlk3szccw375kam6b7ps37srgv";}; -mhequ-64978={run="0zyp8x8qxjq3z6b8dm3pgls4z9cr03qiqxlf6d55ylnqmdd68w68";doc="081mavy3495k4ciqvxd3hzkb2bs7m0s5jm8lx01z85p568bw5268";}; -mi-solns-49651={run="1bv7gr2wa11cbsznz414x35n5yy5jw7q9kngnb2h5y73v8bnzvc6";doc="1byfb723572whq315zwybwm1bcvcn49km80gn5bi081gy81r75hw";source="12xrddxlrngjnk0yk35spk886yd9p3nnz6jrp51dfzw1xz6pkivr";}; -miama-54512={run="0138r1yrv1880nmcpgcgb80nzd29xchm09s8wxb53j71q0vvdswh";doc="0dd32q8clxgkd7cdk0699fzplnib4waydx9y9i33lxxwjkfnfsbl";source="14d7ryxz6q17jn94wlj5vf2hzif6i08yjbxh5z7pdcgrnl035gxj";}; -microtype-66587={run="0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5";doc="1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8";source="17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0";}; -microtype-de-54080={doc="069d2f0jcg9m4fv8dli2dr9ags9gz6mkwy6fzz37ns4jzrqfsvwi";}; -midnight-15878={run="05hzxlzr19snz16sddzpyh5f7vvs6jcdsqyqvqga17rr8y04sdwz";doc="1ky8k2ys88n6hn2q9v9gr71g772gm5zvxlbzmibvajq0hhqm41l8";}; -midpage-17484={run="0hh4r2sgdgzm0nryzqymd66a7hr74rvcsn58y7dc7di6mhikrysn";doc="0jfw5wd6qbxhf90mpi8fmv0nbazkbg9h65z91613j1ynqqf0087y";}; -miller-18789={run="1nk31l9g231c3dk70fqph444z9x5rdjy6g7wazy4ygl3q4gfh6fj";doc="1vvxnbbjn325y9s5h7qp6v2z1xy6wwppwqv6iwdak7mf47gww2gf";source="0jpyvjpaqz1x5avqy1dzf22qwss7ksbp917ncmgjdxhj82jhy2d7";}; -milog-41610={run="0v5rxsa182n28dzd3l3y4qdsz6rinv3r6p94iy73r26j7jgsqd5d";doc="04z8ya5gba7f5q86ch57zqbiz81s62hpdbn7b8jmkyy953g5l8vb";}; -milsymb-66697={run="0m2rgn3am1idrpmjply52v2s8frxgbdr80gxiy69fdk2psqh6lcf";doc="0cvy530713p15r8kd8rb34rvmryk5mkz7f519b9jzgl2i5kcsadx";}; -mindflow-65236={run="1i5a3jnyi07sp6zz3cyyyyp8gbimy7ypvxsg9220cyws2z65d7zm";doc="13qpcy8bwywvn0yv8qsi1wmwzlhw3yawg5dnb97mkj607cj7bzhz";source="02amv0fn4jk7k4x7ammi1n5y8c7b18hjs93mm6zs1pxsvxzc0j6f";}; -minibox-30914={run="0r94l5sy4n97p895xk33ir3dli1ngy3p67w2d3i7f6hi6czvykm2";doc="0bzd55wkdxw8spw4706nj0sk478zbnvq9cnkpid638cwb6csb21c";source="1dm8p6rjivm0xxa7px5dvsnrqs48zwn2kiq3vr6gdqmiy0ld1v93";}; -minidocument-43752={run="1mrzcxa59kpmrkhnnv08z7h48bj74gk2b0q3bvhmvddd6047yxwy";doc="0dl4l8skhz7fm23mpmgmy593f34w78mm5qwab5bc41sg0xc0lyy3";source="1n0qf2r1mjp8vx3s750fw5h2q51pp3qxf90gds8bzq2cv6mi61sv";}; -minifp-32559={run="1vpq8mh443hhmnf5cgj37jm362m90zdhm55jzqh1x84dadqpmivf";doc="08f3hp3knyc37a2fy87i11q62dlb35ri197gxm3ghl5h28zvzpfb";source="1l837v8c70s8x1xn4xhag6nkfpayamgzk95fb23qw23xpf6zp2wv";}; -minim-70320={run="0219g17q9nd7ga9lbg96wk5jqhw3i3cfxjv44b116gbnkrf57z9s";doc="082yk82nlcjq2cp5v692g4ph1q4p9ry51sfcdjpjx7874g03wvax";}; -minim-hatching-62395={run="0raih3zsaxpas4myf4m0bmdxqm1av62cldjs4z768nndkv6xl1iw";doc="0bngn9d24w77dxi1s7ad87gi27m48d4jr2j51cpmmagfdvlqnfsi";}; -minim-math-69352={run="1fa8a3jq51wm23ivmb5n6hrcbyxcmhb95x08n4lmhw6x6qsr0hj7";doc="1dpilbyr9hdik1lp5lm860hjk7ni9adwn3dw82pasiipqvy8qzcf";}; -minim-mp-70322={run="0qjrp9xj5cra1v0j98ibsi0icr5if6267ipw43ff56q1haf774x6";doc="0rqf8mdhbz4yrka98n3swz3p3q96czjmndj4n3n68klzlpl45v1c";}; -minim-pdf-70321={run="14zl2sxajxs3qgb5bv7lrraww3ci4kdvnflhlnmgi4dca5vnfh61";doc="11wd9vir4ph5hlj2hfr49qf3w77piv7dccwnqm6w7c5w661b9i7z";}; -minim-xmp-69352={run="1pyf6qisnkh1600ha6605if690715qprhwrakygq71gl0ak9xl00";doc="0vyhvy71ajr2d4dii4kp2inyihra85xvmqjs1fzz1am5hbqqmc7l";}; -minimalist-70329={run="15zd2zj5v97mpsczk7qw8nnk7fbnxscjwii1bf2ry0f7707n8if5";doc="0870smwh2sqs7qfkxpmwrbl2ahq916kq3cl0qfmjqlcsjmy2plmd";}; -minipage-marginpar-15878={run="1qpymibkrwdbyf2rlvfjj0g8agxisd2ym3xi7lzx3g953g5whg5r";doc="06rivjd4x8mdpzv9h1yzkjbs317jvxa78zbv1kzyia7fps74wi1b";source="13k27b7avz3v2jadjh84w74rsyh4gz2x22b8j5lv6yvrjnwv09f6";}; -miniplot-17483={run="1hl5nd6p9c1xhm1kpw9sh1s81ymdy8lxfn7wh1sdvildcvclvd4q";doc="068s76gnva6rsnd7gfwswxfam56dbiw9s9ymqr2hcqx7i4dl87x4";}; -minitoc-61719={run="0v80ga66rg4cgifmyfa5vq52v5wz48lj4js0ym9197x2w98ra6ry";doc="07dah8lz54ccvrgigrvgcmbj76ppxaismbllfwyxcgkrkvqzxqkj";}; -minorrevision-32165={run="1mcgql832xmgpcwha6l0d282mhyva6xmyf75gbb6inwbgg6qkv9m";doc="0x9lw8xzmnn015n9hyzajnl9gicafj06gr2msk6vxwk136ayqfiy";}; -minted-69163={run="0ksd9lcaqvpncs236vczpsxq1ymx7xxhwpqix4n7yidzyypxnbix";doc="03305wk872gh9c3pish93spfxnvpawcbfjb1gbpbrnjvnkcq92jq";source="177whv7b60pmz0a2r178dw76s4bqixn0zpmr8g3c91gd3q07amdc";}; -mintspirit-64461={run="19jvqcydiwwq3kv5bq6524wsynj52b8mqm3j3wn108z7rhnampg5";doc="0mwrnf6q3h82qnxk9gy9ns12k9lr61z92vmlyx2x745i8ra7b551";}; -minutes-42186={run="0yc7dkvbn0g7gm07h9r62ma3aagbgparrlamh462a9ckdc7jzivp";doc="1m8blswmxhcm2ya966ajknx9arz3yh1sn62wnyxls220af3401ss";source="12qvfyiscs3y1wk3r2mdq7vgkmz1ldsbg3wz4agib97lc30qqmif";}; -mismath-70260={run="0as70q31730lzyhwvmlk3g8rdri3lv17vhqk4sc1g035yi18xxpc";doc="1f6qnin00xqlx4q85n7r9sq75w3d1q9q8p7kgvxpcvis3b3w1q1i";source="0fjmmpcr76fcwdf5g2pbg72hjf42cx64pdkw6gj0ncs461llpify";}; -missaali-61719={run="13y2dm6phd9c77j3rajvz4qma2h2k4nwhb520j3mm98bgmbkphf7";doc="16487s0ijkk6va22rhhyhxdqik863n1i25p0f67gcb8xp1s5l1wk";}; -mitthesis-68732={run="15z072l5qzmnn09awr9gazikc60h9f3z061qh0fy3j15gr3sw81d";doc="02b0bi0kycfm5x7z2xnbphamzm0xrlfvqsk0c01ni0gjf65j9f9m";}; -mkgrkindex-26313={run="01db35xmg9583hkr9bpflr6rj8bmvidaqahpvkr38bks21466sxz";doc="04p2xaycwszq5dp8s2h6gdm36l800ipvigblkm8m58bgycm553fw";}; -mkjobtexmf-29725={run="19nxq3k9jf4bypk2al38n6igpca369lxqcn3da8cm8c3m511nsmm";doc="042a29h6sq9mpy6chfkl6893zcpb3gd3gsl60xfwglivib706qwz";source="0q2i2xgpnjcx8qdkk47q7v0lmjdv88jjvl7zcybnhcaa9km8f9na";}; -mkpattern-15878={run="061y05sa0a12x23f68g7rinllkggjfghgmrq2qnan34f1ind1g36";doc="0b3ahrhxmm6lwijc7kgvn0k17fm9rkp7i754zrhfj7w4xgq6i50f";}; -mkpic-33700={run="0sib2pckayb4i7lxga35rkxvy05ix6idifcqrlcbmddfix3djrzp";doc="11pj8q1zvblsc2dyd68a0nri9zpqzrp9a6lha5dk91a2aygzaf87";}; -mla-paper-54080={run="0yzfqb3x58qzw5lcyw3f6c3xyd98zx7zmz9j2rmv42r5wj1g668p";doc="0kzi1gnla04shaiysrgyz4ak3l96h11shkrxcj0hbav43ndj2xhl";}; -mlacls-67201={run="1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6";doc="1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8";source="03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa";}; -mlawriter-67558={run="188kwakrn0ca1njpkgyq6z1x97ky8imxqgpyy9axcsm2wmzhmf4v";doc="0h1302wyl24ilvba68f8pjwhndmqn9n0h3nxr5ifhk01m8359nr1";}; -mleftright-53021={run="14lvlhhjj50v31lgf7ywk5dx7d5gbnivssl15qzpa6s619q2h6l7";doc="13vvfx4wxvf5liv641lwdm3hdba31rfrwsmirl36qwbrqsrl8xic";source="004ficd5chakwcklbdx83qp3985s1imlz5knc7f3m51zxgr4lmw5";}; -mlist-15878={run="044pjvbyabzqashbzag37ymqa9mr0c1qg3p7rb1j91r0y5s8ra8d";doc="1vlxzzg6f3jmcmp8fjn58gciywc2qgw9v1kxpm7qr3vlv40pdb13";source="0jim2g5qc9cdks4r3yi67hhszx3kkh26hhc0zgm2kx9syhdjv057";}; -mlmodern-57458={run="16f5cpczawzx4p44svpzy205l9m9g06w8r0554cgdpqdbwr139fx";doc="1rqb0g16wj7jg65xm0rk68cfz9r00zwy4r73wbkn0fqrchg08yn8";}; -mltex-62145={run="0j5282big4df396xvk2xaasl7cwnjn2sa14xj22xgzvrz3hr4dvj";doc="13c7a99jl0y75nkciir5zqdiz8dgjl8znbyrb485xrwlkzm6ygq2";}; -mluexercise-56927={run="1yhgp5cidpkh4ihz20d1p445q370bh25jwc8ikqdq6g1qnf8sdv8";doc="0xcifm779nln96bmx0kvkmnzc9yk2314yc6nn98wm7gqdw2bf21s";source="0mq8fa0vd762q2h981mj6is4d5vry2qgggbbmffvmfb4h76z5gh2";}; -mmap-15878={run="19hnkczxhxcr7pa7880mfgjfhjwiyl2yxhfz67dsrljqsfpi19nl";doc="1f861w6clfn3k8gc6piil6bq6admbyr4kxqnkw8hh29s63rdn76j";}; -mnhyphn-69727={run="16bwf5x7kzzqk7b8jm5p1pfsimgqk30drp918pnhpa6v2y2ssls4";doc="1ymja8ffh9310m41ibgahll7ry9jx6c1aqin0frxks43a0sqf1bv";}; -mnotes-63406={run="1jmkh3bpgqc1lw4q7s57n9p10wjhflck0lqrjxjni4qaqxhg02d0";doc="05kgkxjhizwpnz60r9kjlwqzv66lxc4fj1wh0199fkn1pyyjdrcg";source="1xpdyv0l87mb3af5iw06823iajk2dgv2dg0298nvzm8jj3ip6851";}; -mnras-68878={run="003pbz6wg81ymv082vxd7dzf37c08ym2s63c91yxvldn93p795n6";doc="19mgjg8yisia0jdgvwq0jdg0hj8qpzl393x0w0vkls8s82j2jc7y";}; -mnsymbol-18651={run="08b0ypa29zkbch5isk39bbakg76yp5g7w4caahphdljkqy4k27zd";doc="0pv7717qcjd5ps6vnlmxk1bqvkhi9lx6j92i6ggnak8i1izd75fw";source="15ksx2lxxyklg4dcckm82hysin9r2v7pa3v8gjns4wabj4hx7v4m";}; -modeles-factures-belges-assocs-67840={run="06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn";doc="1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248";}; -moderncv-62128={run="1icns5fym56yp1wymsf50cl1wh1vc9vdix7lxapp18prx3y3kf0s";doc="1sj75g51dx8yd13ywyyhs8r135pgg5jv1h0zshxsdpj7b7hbdxf1";}; -modernposter-47269={run="1qc422hbqiyy6b539r7kyrshcja58mifdvs3bva1ikdxanxhnaq1";doc="1z9b3fanm97c3ik1q6v06qfwrgqcqwyi79h5dlhcnpwsm5dxqj0s";}; -moderntimeline-55518={run="10alhs944akmqfslqzi09436mmnjz8nm85r8jpjwpfcx28vfdwnh";doc="1bnz01q5rib9gr724gq6saxvzpg3lfmimh14rw5fn0fcn9bxlwsl";source="0y2kfxcpacslpn1ly6anv0hlil2x6wlsi37w9b8hj7xfx95qh51r";}; -modes-69113={run="05xf7g14jgs8whl3jirb2aww93mq7l64vddx68kl8wqc43j87v89";doc="0xpl3y1na7ldb3yjp808nywpg7fqf0v2mwc8rlv3jzpq6lnqyjb6";}; -modiagram-56886={run="1d3sz2yxc1n3xk6haja2yz14jgcl15pp21y985h7dflk2yjflabx";doc="1a42ylnkigyvvkk0yrxcpypz1qlki9r4jzpy6lpky0fa6bfbl4yc";}; -modref-15878={run="0pd0qd9yjhvdl3icrgl40lgyjsgahjw1jgc2ah75bfcwj02qm4v1";doc="0caqpnyg5gbv3b6336w59nn0w9ic4p12f5ig2n7r6kg8ydhp53d8";source="0n28d6x8w9rh3hah7p1imairyyywssajg7zwssp03dla0xlgxrql";}; -modroman-29803={run="17ijrx7f87pbkwbyjwigz3jr85fwzq6rr0pz1591fk9i36jhjaal";doc="044v0nkz0h1c7xsb66kmpqvr5gg4lg1qkx1x2qm9ijdpsbc4zsng";source="15xy8jpp2ac07qq0nl3nskpv62c59xb8qkl51irvpb0m01d97y39";}; -modular-44142={run="0khqcm28cq8cr51wmyv954zy85k9dxvmiszz5w4izxvyk14d56sq";doc="08qhmna1mbra9395gvaqbaqi3rmyhhckx781x4zw5439z2bpmg39";}; -modulus-47599={run="03sssw7yg7pa7i3l29l049qavwxphih5jvc86nysdzzng4a4dd7n";doc="1ylrs9705mgb8ijj9fq5w1yyd2fi4ykx8gpf4ckdr78h6rvzkr1h";source="0gm8vwidnls0z31zxcd348xyc4rrvcffncnwmazi9p1zplhg9ggk";}; -moloch-70496={run="13fgpqq3l0qazx8mz2rdagz9mbz9q2rnllw6zcv4v582m7g3lyb4";doc="0jma5jbzz6zw3pzyp0p45m45i2y1b0cmxyk0k9pasma0ic0x8y1i";source="05wdka0qqp6g4n8r5f94m6yffx8pzvn5j272ybpzknvkqfscbzmh";}; -mongolian-babel-15878={run="0qv413sx05pz5ri4p9znb020nhb8m2ybapcdgnxvkdamgbfvi17s";doc="1zprq4x55rbd667ll7a1rcscbqvg3i4wafmxnv4bksdm8p512w5z";source="0qf83v7iphfavxh7kh1zav95r6q3k0aiilzwnc0mm607bkjzc2x5";}; -monofill-28140={run="0kpzszxph3bx34flvhz746xkdpcc9mj0srifki9y8fa6vgsk2rz1";doc="0czdlvrwav8n3p9afa40icddh37md6g39kmy02vcnwmn9k3izp4p";source="1x5raychfhcjibln59x01fay8r25fwxba4lwi0bnd51drvzs76pn";}; -montex-29349={run="0rgf1rflrf98jayyhj1gxz0mkw74qhd88b4i2ccf3mm0kzwlvw0a";doc="0w9izkjmb90d4x5j1azhlskhgfmxh67jq1awsdv2s52psgscpfm9";}; -montserrat-54512={run="1blgdkfjjjhzk41myfp7bb7x5wf3arwapas4mm1770d46nab1wwr";doc="0blk6jxz1xrascrdalssqd9pdrvpai3k9bqbvgkyngqhp4rzndv9";}; -moodle-65672={run="1yr7laz12x1z76aik10dsl6rpqgwbfvy65k5yhbik5iq9z7wrv1q";doc="166489dmj7ysl0z7f6whnkk8ndv5bmb9hh7pjmp6lprvr9vvqxm6";source="00n02k6hskbj8rb6krcv7b681lx24sfyxy8i28rf4c78x4ds0420";}; -moreenum-24479={run="0cjq1a222c813l93yzf9757dcai55vh24r17cv6awv0d1xf6jggf";doc="1g71dcnbcjb2x8ilhyfbkbb55x8740pz6n9gzdd8h6kyxm879zvl";}; -morefloats-37927={run="0zdlkd53zl0y69d3manicnd8ch8qls6jxgr4mncqg5r57lqp10kd";doc="09xmhl2zaxzyvys63n6r71g6qp281f6y69gy4zbkjwb1n68js1i1";source="109wx7axxf1pgpxq34pz9i1cg357il0rbz8h0xqacn2yykh9q565";}; -morehype-38815={run="1yssb0c3l0sqyv775mjnbba3wv1h6497x125li68q8iwjc529wdr";doc="14s0bvxj2fjrkcrdp576c0ka1appg9g4ri4mc2isfb73yc6bmgh0";source="1sljhzy05akipng9lfajapvdm8jf2jf50v1awl38ld0wfkdqvcdq";}; -moresize-17513={run="07vq0wf250ixhrg70vdvaz7zh33zaq5sm32ka8qh1ab590c8w7h8";doc="1qa9y7q1wi7f9klziwgj6dw9c7bh453srljsx9m106nbyd1cvnpr";source="1gzj5bh16afgl8dg5z44h7d4m79i5naj4wl09m17x6snvfz7ifah";}; -moreverb-22126={run="14srw73gbfr0c3miizzs1rml2ms504hkv970p4dhp1wpk8ywc5f3";doc="0bp2lmzbd3zxqhijfqc7im10476xc50yc8amh0vf017ll7prcmjh";source="1snpyn7bc4qbmamxybv1j1h407fp597m26v2jq6yzijszfanh3rq";}; -morewrites-69679={run="18r8ja3xw77kn4jhhyyrcrfqhqwa7bzbsvmkllvlfpmrfziaxq3j";doc="08syrckx97a9y4ybmk85pn98ign1smqifj1p348s8rlam52r9sin";source="1vdnzzvxg13m1kpz08l3npsp68b0rjjy8w4y1d7laj1qxq69ph88";}; -morisawa-46946={run="19b8nzkwdnqk61p1fc7yygjlrdimawmbam18akphcm70qx2h01dj";doc="1y218bablhn06njs5zqmsl6jvvsgyihm4il1x9722pqvvyxxf9q0";source="1flrf2c2jxpq33g26i0m2h63yd5jfy9bdh80idpx1m6bi6hhq7ac";}; -movement-arrows-67270={run="01kbaxy2wyzxla01gbxlwj5i28ahak3xgm7f8myv5d6p0s6by0cz";doc="00v14fnh2crcmnnkdj7dxjidlxl16iq3nfygx8igas1nbyni7xfj";}; -movie15-26473={run="1x48h56mw1pzllzz5b8fx5ikhp08gx9jybdn7qk3jvfy13a4r5yr";doc="0bhyfgsjwmvvl7lnam0k254w2rzn01wf5gzn38ymmlcbw4ajkkxl";}; -mp3d-29349={run="18wgwwvh2vj1adbvbl1q6lh0wy0cynfvrx6cgq0m5nqps7b3idra";doc="032ywwjrv21ypnlidvn95dcnq179pdiail86s4nxxllkjrryc2db";}; -mparhack-59066={run="068wp9vk6ablq8mhj165k2r6lg1llk1i8gyj71ha2kcsq62v4a0x";doc="1cs2ypwz4wkb3rs71wichmd8zc89vj4r58srqzmriwkjplhaw3p3";source="17c1pq9mqn0gaffawg66wwd2n9cd31gghlvmrpn9m9z6xcdm0ipa";}; -mparrows-39729={run="1hmbpfw1wn13zp8dksnlc86vb19zs0dbwx9hy0sbiyfmb7hidznc";doc="0ly0sw1c6i3k5nh26a260qw27x6rmv5p2zs11yh5076ziwdxnnlj";}; -mpattern-15878={run="045sji1qqwalvmiinqkfm3x4rk2jc7m9nya48brcc0rc5icq7xqn";doc="05b9pr86yy3hl14jymk4g4mf6f5v85b4nv2bc68m02dflvm4wnsj";}; -mpchess-67704={run="16wykynx5m3xdjnr9mfdqhq4yn4rw8cf7314cd05hf87i4r5vzwh";doc="08c4kwznib00895wwsv8npfjxvwhxv7hk58vh189b49jjbcddds6";}; -mpcolornames-23252={run="0bg59x762rfsl3whzqdpajakjnnx5jbh55m73dw23id1g7cs5rsx";doc="1n78abrsj5xj1gd2psgph7x4dm8nscvwmlp6ijz5p6xgphgqs5bf";source="0q74zsx3ni8bzl0k1iwrr19k7f9vkwqfm0bp24m91wlzvh4vlk7r";}; -mpfonts-54512={run="1z5ws1kr5s07xwcs39w049yvhfwadybjxb32kf9qd8818pgd4zkc";doc="1hjy2jqm8mlrwiipl4f1rp10nya3zcy2vsyibhs7f280h4zhdwxz";}; -mpgraphics-29776={run="0ymwcn16n44y47ngdsyb0vvfp9vjnwixhxk67z6ni5d19f23jqli";doc="0q04yj9j9f9j9rndqn9k95jwjm41g1rf5raqlrr1cn14bax0lr4p";source="1hacfhb2dbflvmg0c1lif1hmhxkj3g6j1mdlb3wm43zczgaavnmm";}; -mpman-ru-15878={doc="1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396";}; -mpostinl-49559={run="01p16dzg5izjgd64l4qgrhx0dm99hp5lrn9v2rlghs8m249fwmv8";doc="1a1rhz5q1i69bi1blvwzz404h7mgjkjcp9c07dd8w6xri304gi1s";source="18rfna80lz3zrf7wynr8zdbiv36k2n6a8wd430r81ybr9233dhxp";}; -mptopdf-69363={run="1l2182idlbzci9kjpii0zg3c7fpmzf02dz5kg2zcv529mjwwv91f";doc="0q9jlvall8mf9j2zky41bhpz09yi061rfpkpd0arj346ah5w9nni";}; -mptrees-70117={run="1lrhpf67d0y42mh127ifv9z8xkfjhxn4mfzm5j4gbzz068864rkf";doc="1rjykadxwyqa78kpivdzncr9p156d01w79ygp095wwi7w0a3ll2c";}; -ms-57473={run="0km07va23z5vzx87ndrv9mj0fq4yw0kv7qygd59smhm4q71yspkl";doc="122xwapvjzv9qyh3p1884bzdpalvqzzkmzd18gqr3q3r4cmk2q20";source="1myxaybppzkdl14h4g12xcp57zqjzkzijryv9nd6hy6ggl9y8i99";}; -msc-67718={run="08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1";doc="1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5";}; -msg-49578={run="1g418z3slb3cjf0wzgwgv0zkq0jnj647zqh6iqvlv42r7bil9001";doc="0miycfpf7s74jz831kqbh6qlkkzq31l1x0fkf9d04b8zp26mzilp";source="18djwd3g50ys4ckgzc3dp0y344qy86ni327jmyz3lpnqai8w1c8w";}; -mslapa-54080={run="0ayfh1yv1a8wsq9qldgcmvq9d12sxwaa7df5p3bhsp0klbqf7pzz";doc="1hiag2x2br0c0qpmm347cyxmi58mwg2x0lyqfakm87f68lbbxdq5";}; -msu-thesis-68480={run="1g6xxc39rvqbypd1njgcx0zxzrncsvrfnk3jqlbcaqxkym9qdvhi";doc="0b2dbp162hg610jcag8cg88ykckl4xj9gsmpzsrxxh8hmqv36g7p";}; -mtgreek-17967={run="17k0lvghiw4milj4cnf6wjhsj7c1banw550dvlw9spv60lccvqqz";doc="1qkl09lkdl9z6lm5hkn5c2xry7xd0f0ijx6xnyq3l6q99cnbafzq";source="13h8knsfbl91g20gxjw3c0m6j33wh4zkmm32ybfvzlm8q7nf2lhh";}; -mucproc-43445={run="06x3hqdp6d6nm3n296wnj4j4w93cwgjpz0nlw5qj0z44zlghs483";doc="0y33jak5lzhjp4v5d4pzfj7jlrr87dl6wdnkqcc0p9fr4fd2h1z1";source="0xzv1m01rj74gg188snznshir510lj5myckfjx7am6sxwlfni63i";}; -mugsthesis-64259={run="19bsplm3qclalplvsybvrgyk9wikr06cgr9zv1av6dp8djmz60mg";doc="0md9p75r8m677pgfiqm30y7nkixa77a244l58fcmj87i3j8jhx3r";source="0zx4npm8qzw4vxxi2fr7ylazga1mmsaq5r0kj9v614iybjg31733";}; -muling-66741={run="05bhyl75w3qmji5s8n6mv85yjhq5nrgncnqshdv9fbzbgcnk7a97";doc="1fpsblzyxy0kf5vs4lnxdq11nkj7d9vw6a3vzyas6dqrlb370vzx";source="1m1yawp0wm3zafjwlpv6m010ih0gb24q8v2h94d5l2w2ymkyx2sb";}; -multenum-21775={run="1jn6xqrc31zzaj9yk244g3sbi8fj2klswbg24fkclgj0cjr1xi5j";doc="1pnjjbfwgy6ksdl76n9iiqla2wl0qa4370n49h4xy3rmrnbjmdqs";}; -multiaudience-60688={run="1pc03jhvlq35zzjsx6sq6bgzsp2mh861wqbazrgp7ilni1bqhqsx";doc="1ja9zphh154n7wwhqgl4xj4as17ag8mnr65k0wf2npjrir7rfqgf";source="04hpd3zsf24vwas726jq231p462dlb9fq01gx4z8wg3zcczn0agd";}; -multibbl-15878={run="1aj6j8rp94mh210pdwd9d4a5s5z9v5f36wpylwjv4v2ghmyrgyap";doc="0r4hnp4sgpx9x0hmrl3qlw55xlchav3r8sym2vnv4sqjnx4dc740";source="1c7cvjabssssy8wq6x6lr909zq4f0bkhdzx1x37n3rxm2ngdqpbs";}; -multibib-15878={run="0ma2fwy3p9b6ijf727iw2xqsadk1jvh1g27snqvyrzhz7702b6xd";doc="1mwl9yziadzflq29nwv7bnbdb07d8bsxl16agj7ydmiw59ykv1xg";source="1g4d3hf8s1df57yhpw04j6bgc8n7hc16dc6qz8jcyj264vfv6fgp";}; -multibibliography-30939={run="1pmvlk1rvr98ig2zj2mgq91a61l0hib9aaly2irfzl28m092r3fg";doc="067wp2cmmrcgwkaxy2ngmhkfbiykr1lr0zii3i6xyyd6z2aidrfg";source="1p25yixvajkyksrbl8zax1jrb292prpjm97b6vh74v478bk21kgv";}; -multicap-15878={run="0ky6hrdsc7wl65zk9krv5bf5z5lbiv1xfn4g9q8b3pp6ri874hzc";doc="15zkw0sh0lf5vdi219h32nw0icq88cj0vnz9g9j7zb7xqq31f5g9";source="0d3gyjr7kwx25gzsl4j5z887c952zxrsh3qk2j0cbs6yahzscxim";}; -multicolrule-56366={run="01k425dsahhikw9n03dfarnlqc1irz33rm9am6w3gx8pd2d2q6zx";doc="0h5is5lmqqybyp9c8kr0d12x27lgm761dcjhi63i7pv37hk0kylj";source="0blj75rh7vqy8s8c87dqpbz7d279hngzl99272cyskmj8m4y6jpa";}; -multidef-40637={run="13rv808x0bz97cm45r2rjxy0yhmjycswcf89pl7z182acrbs30zq";doc="1jcm11pjx3d8105k12r120nqjjyk0ncmbry8pvkcpwf8kpxcqgp7";source="14y2vk3y8f35wxka65fmj1i235hbb4sviq8g0j300d24nlp32xsz";}; -multido-18302={run="0rb320bxzg83nq66dx4d2jy3cmz83zdmv7xfw5n1chcswpi6l39p";doc="1s8jhzznsqq8kjw19l6gdr12x1p63v3fyzfdrgmd9z66a45d6hsa";source="1ypcg93f9n9cv3y6rj92l46b61zaj8wm9cfps1c86w675xs76zaf";}; -multienv-64967={run="0j0s86c6xqpww1x46l2vn66l0wflqjsl5q4jqa4089xhzaxzhdy0";doc="02j3gripplimgh9qj3mjy9nlifdi6frj6cawxnjsm35r19m9ia5q";source="1s28zxxvbi5yg6iigdixc5kmn5w7h4hss3xrv04hr2838xpma3wc";}; -multiexpand-45943={run="04v8qz91w4fayy3llr20dqwvdx835wl9fmxpcg45sd3yrik2s4nf";doc="0pw7kqc1r0mvnb03fp5l3gpy5m5zvrynaqkg4xsdrhw4gqxlpfy9";source="1n1bngipr1sjjqnzsdgyyy08hnk53f81j0fqffjlr5siy4by1p6b";}; -multifootnote-63456={run="0a3xwpcyg1kkdbvfinpq15p2v2mnynvk08p8b393px051ags017h";doc="08j63v16pdpiwbcy2hv63frhpc6i3lw5lmnizqn3bpj43qkyig7x";}; -multilang-49065={run="0zkkfvkybq5hxbdwkwy5n7gal1ir7ixg8342wynk3ga9z6lb9shw";doc="026d5yxli87f2svfyqmfzbhydwd4c929n2v11wk5prg4zc3vp08k";source="1v4ql5jxlmpc6458qcqvbsrb9pf3dss60z3i3ylmyp6mx0kjmchr";}; -multiobjective-15878={run="072zpfc1achwj0b1dv8yskdcbg92a2imnmn9z492l7xxyz889n5x";doc="161nkl1q2kc91is8y6h2j71hnbly6hv1fjfmlhb50xypjgrv1ibs";source="1nps6rl8di10mr5r1hd71svlj0dxd51bk0plszk094a3r3l6z4z4";}; -multiple-choice-63722={run="17w8sc4gki7zlwkg1vqrmqrd9id6hdjf3kcvyavbmnrisri95hl5";doc="1cjvs2zwcgj7w34p3w9cvv4dln0q0468cz0j4vdchqjdmhqkwxhp";}; -multirow-58396={run="0bsn4xzliq9gllmac4wqqsnws9slywc0d94abh81awpzv6vy8jwj";doc="070q5s39pfdq5wiq7crhdqhcyjalpd8kydig4djgji975b0xn0bk";source="08q074bixnkvn7hsi1n8vx0r6pqwwkdjsjnxz0n3lam30x4j1jib";}; -munich-15878={run="1dns8n2xybkf1m3j82adid2nr8ngvg5nnlxr5ky8ha706bmz1lra";doc="0dzwmrv636nca34b39mpxyhh99sr3s5k2rkj7jwms2knlfn81djm";}; -musical-54758={run="0rn4b1m1c58phyj9zzvyxdxbilma1bnncscwmxc8sdgb9iiwmlzm";doc="022s1z7d5ins4gpklg9hadlp1gqxpr6862i1g4wp036db0457l78";}; -musicography-68220={run="04vwhhd6mlk79bk5nblrdb6vlv2n2r1s9dfx752p3vj584w2mdmr";doc="1144kbjzybzfcxqbwlcfnk4wvqm7kw01slf9pzpb5jqagwrq12sv";}; -musikui-47472={run="0z2ya761bf0n7l45dqkc626s9d66qwr810fnwf34lr1876y3sfyi";doc="09sdb98m3j5wkl4p7hdpdrnrr0l25ni46nlhkhg1g54hdggcpjb9";}; -musixguit-21649={run="02cz225x5s3spj0wf9c51ka0i1ysmcrvlpa2b8vxd59f4pwz36am";doc="1g8hay5rdkpa4pjj0lj5gfs7xmqwzmzxnc8k023ahlz38gdczgnz";}; -musixtex-69742={run="06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha";doc="1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r";source="0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l";}; -musixtex-fonts-65517={run="1bq3nw6zig0grmmgnz7n84cvxasq61h2mmvm1j6mnyv69yhssm2s";doc="1pqr7h0r7cr2clzn5x74r2z78rlbczxmdwc7bkpb5a0k002cc9ga";}; -musixtnt-69742={run="0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq";doc="1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7";}; -musuos-24857={run="0hfrgx3lk7mf9kzf6n8hswzh116pmllx0k3djbfinvvvhnqy972s";doc="0zxdnzd8x42z5fpvkarhsvdw3x4bz6qppn0iyjff1fjzwl8q8dzh";source="0igksc3i5ydqps0g172i2hkb854bnkf7xh4jqvwlimrlnhs7nnkk";}; -muthesis-23861={run="0bbv49nnngkpnzq7kq15spn4x67yigpyfk8ymcgv647z0bvbladf";doc="1nx1qbgp67n73k54ppyi4li4flnsyi8jmy1lil0gaza38m5y8aak";}; -mversion-29370={run="12mvnkij2q08j50ka3nngmcz0p07lmvqg3jl8fxrfdzyy0h7zhdd";doc="1z9d4bcylv4sk79hfzgy36bza0r9lkzw93mis2m6ypgdbsaa3n2a";source="01dbma0p4lhygs64aym66j3vp3c0hpbci4x42mpr0yvjnglymbj6";}; -mwcls-44352={run="13a1vldimwdjq9lna63gy6gcc9gnwirb2zrm8m4g170q9r2b01rw";doc="10nc7ai9brm36hqhf1czs1vvhp9nqvbk4h8r9l02jsdjbf4rrml3";source="1fdg5j1jrsdaavg20sai9ffrq4qyffkkpkij5czab5zkbmiz8kv9";}; -mwe-64967={run="1rk5530j3cnmf46i3gb6wc198ay99pwlbb80ynj33dypfiwsvhcb";doc="0bnw57l8bb6x4k8i4icc8g215bxrccmn39vyhj888ijygdw2hgmv";source="1fl2xlmqdas5rijzrail9yqlqz1s75z9fzkip5zjb8s0gfnbg3qa";}; -mweights-53520={run="1i4jp9yy9yy1miyzcq25nwm4zqd3936v4mi2acv4g1rgzvai86vs";doc="11114i98f0qscg9796df1vwkf2m6ycbaimk4qfwv47mrxhvwq5qg";}; -mxedruli-30021={run="0xyp3zxzd55h0m201a189rj9h7js6ky3vzikb4yaa7z8hwsad7hz";doc="0ydh0292i72lb9vcglwq0pl734qgrh9sqdy7qvdds6a84jwc5w7a";}; -mycv-26807={run="1nnm6ns6qx6ny4xb7z61pajysfb0nfl7gs5dw292bwi7daxs98xx";doc="1d3rra14k69l5pfmcw4fwbkn257935zdiyd2p9gzx0bc28ivsajm";source="02ailkp9jr5r70aphfzp6kjm83ni6gigyqn2nr0zlsa098frpxg9";}; -mylatex-56751={run="1zihhgy4xaj04qr6rfv73050rvb8a77zglaqgjby5b4a1j5vyw7x";doc="1bdigldcdk3rz4p58w7g4qssbx13jbhqxbavf3x38r71r1pys5x9";}; -mylatexformat-21392={run="0nns88lk6wdq053aljg9k17d3g9fvi75n82swglq3jxmxx2k7r89";doc="09dnsxwdhdnpwf0y7cfj6xh8gws32xn12fc1rh1xiy3ivlynj8c4";source="14rd6zn88zaaznnqh577zgbbmmdmbkzn03201i459v3jzcvijfp7";}; -mynsfc-60280={run="1zc7lgr1i0g5rszh9gzcv7fs98mk06ms5flb3iv2zww0w9r7iy0i";doc="01ig210x2wrdkp5k7mzshhm26958zmvvlclyk81i5wb0i11z9p77";source="0qsacpapa5vhpcwhm44dj13zpx9a3kv2j3hp3848zhq6rpc4981f";}; -na-box-45130={run="08xixk2hl5w876x6hmp6h044spi0qw1qbgrqklwrmkxkgpa27i3s";doc="0i1p5f2nchl9hyrkc6s3hsqcvmyxsi4dbwyr0mph8slhw2rzl711";}; -na-position-55559={run="1amvifgadhq73avh1dq9mj2v4s5r3hlr6a3z4wcbhw32jd31ncbx";doc="0pcn0r0p0z7lxyfsvcnl9skm5aa5xi6362vydpx9kv8m11gl7pjb";}; -nag-24741={run="1l31y7mr00s6md7a68cz51yv0qfd26xaj04ax1ph6dqc97r3fv1w";doc="0gc56zgva7kziny3ridswnp8rscqi1mg51d8x580pidb11mp7dw2";source="1fh9nfjbkvw907ra1crqfhm7hl4k703g80w3c8qvd18r86wmn2i4";}; -naive-ebnf-67892={run="0hw3ra8cmmr79ii1l57z68kqxqjfwq1szl4fg1wykrh9cnca1bn3";doc="1i3h4328sczm3hv5claypc0qfymdmbygr4w6zankb3x0nzrgk9sm";source="0z2df8frslvvaqjsl6js5pwwnhjqkj52dnrvgbygvdhnkpkp5yix";}; -nameauth-69758={run="18p1ca2g164942p15znda23kgxsbfqpvwh8yb8g13m2sv2jr3nwh";doc="141c0575mm1hdik8xw9gzwswv4agj97rwvinpck9a9x2g6kxbwr8";source="1xq9hh74485ck93ifsyg3ci62j5cw89if3wqcd4bcvx2qqxw9lbd";}; -namedef-55881={run="06nr8bwymbc3ps7whpxnsnbnl1fayz36hlgcy5isg0gcx8bdspfh";doc="080m0d24cish4an6p4q7rcrqpr2r1yvwvzk431nszhm39h7d8z80";source="03kg4zv07ch01n0nc7qwk99n32ifwf89z2976wg5k12yq51prplh";}; -namedtensor-65346={run="0jvcqdqnvnjm9z1jcdsa86cvv4f4hq94yi6r688j2sny2700q7a4";doc="0cjbz9g2b8cg2wm97vdgwpqby0jbc5l2d7j2cwx0j571hchlijim";}; -namespc-15878={run="10sbvwc0r3lm90qdxds13iyfcddq1vjx2p8vvs4g3sav4fk8p02k";doc="1z34xb5s5fgl4rag0fmc5i5j3jb810f543096mxpq46j98rcp5mz";source="0xjcnrrrrw4032sd6wscxvar9y3kd4547rsd79dpkbb0ksmqbqrx";}; -nanicolle-56224={run="1sk2frvlsxzrl5cv1c1azqpxbpfr4b06ssli54j0p5aikf0rls1f";doc="14zsfxcyw2ckdsi3fg5qwxfy6d0yja310ycxsi3xrdyxyia9nrd5";}; -nanumtype1-29558={run="1izx9cjsd46ydhrl0ixsjz23nbk7mfv3swfk5ada0d4adcm7b73h";doc="1sxap924dzf17vslp3n71r4mj4f98m9cmchq603c7ara1cyjk2mp";}; -nar-38100={run="1nwk71qirapkg3h6jwlv53fm6zwb2vq0fvmc4xcanf19sm3331mk";}; -natbib-20668={run="1wxpcyr1b6k1rzizbz2g452klrmr6xh98csqr6pawlnx2zy3sx5x";doc="1hai95c7ah61rqrsvzvn0ppvr7pn10830dp7wn7fc0j678z9r3js";source="1qaxwivq95pf014w39igh070cnbs7n0k5am4waxvdwkzql1fafpy";}; -natded-32693={run="1vxqyyfrmrkwyzil0a3xvlrmfzyfxdkfl10rlfzgwdwd63bb99kk";doc="1anh6k76h573yci4lcw5wyf552zfqdrf75vpg19vrr3nijhj9k8v";}; -nath-15878={run="13j02zq77fv4c5f45qn3hgb7v20xi0d0dpj0m2pfdc7fj74k8ib3";doc="1ppyrz9y2hkv6pq18w4chm90f9x9d3qscw679281si2phmnkl1mn";}; -nature-21819={run="0b1ra8babjwpn7v22rjc22pjrjczh1wflhq9ihbj5ag3d10sil6s";doc="053m69fwgcfpa5gcp3dnf7k37175jcsclfkh87lb0zwcymjghlw5";}; -navigator-41413={run="0ank98y3a7b5dpc6gxqpgshi5qvkbys4nyx41gf6hkinmi094097";doc="15370abnfjvql6gkcamgq8q3p4kycgzlgdla57w2swzwn1bd6x2h";}; -navydocs-41643={run="0isw46fzvk85i3mimwsc3x7wg8g7ifbi23i0d4v676nd92j1i72n";doc="1aiyz3z489bdsx4rh79gxbdb986hff75qik97fq0xrpk3w6x6cjq";source="0x1n44brcy38fnfp03j9xl1awfawwa8d0c5cg739yr404qbq8dp4";}; -ncclatex-15878={run="00w3g79rn2xa33al7cma09b8l9na6xd5b7w40j8z9day31i2p89p";doc="14fvmjnnw8n22c3j2mc44bqrdlsxn28dasfk9zmajvmxgic4w12m";}; -ncctools-51810={run="14wam15z6jdl97dxibf789ji0mk59mn96fn5x0vns63d8y65fh6y";doc="1j5j6zsawp9i62kwb8xxzxsvh0qczx6qd1ppq38nlha3cj8k2rfw";source="15anl5wwds08h2msz7m0a11xlcqdqgqpihvcrmy41kdzgnzgc56b";}; -nchairx-60196={run="0nv33zq3gyda9cxf4q7ixw0q73aabjm47mjxqipl9cyp1wv3r0kz";doc="1pjnazl84w4bz7lydhy6lklh3kjxri12gswwffw18a92jff88acl";source="1gva51szjww2qr33mizyxsgd262xcw4116nn1dm9z0dg278hwy8l";}; -ncntrsbk-61719={run="0i6a48zbn9lg4pwbw8ya2wjjgppwac816fnbpmahm67kknx4d7ij";}; -nddiss-45107={run="0d1maznv4yqpjzxm90vdl68h6h7zr7m0k24dirq2nc1cky6l0j1z";doc="1apqd332kj67rpa09md0gb025kx4d7arvqj7f4l8krgsizxfxcck";source="0x2abanmpp7sv4qbwl6in3yp9k99fx453f2fn8xw9b0z053ivvp3";}; -ndsu-thesis-46639={run="1bjrvsdmv68zlm2xd9v4jpkg39zvjhcrd7435r0jh0sffai4pdlc";doc="01jfadx1dcmm3q8pdwpxmxfmmp94xm9y0r77220ffrlf1iczadkg";}; -ndsu-thesis-2022-63881={run="0zirxqals86gkjm4429m672a7k9n9nl2hx264javqhmhngcybhcx";doc="0jf3gdjfm1ycbnkp775b7hzr4rqd0alciqjaignrfqhwgdr96gh1";}; -needspace-29601={run="0abcqdcykpq4wa5a95c8w1bn6cz90zlsy146186v0s54njc5g3mb";doc="1r9mn0flqdnaca1w2g4lsy0pk5a9l2sjnkpzzg72qgll9dsqqkmq";source="02j2f9wl2ljyi82dxk7qk71dmjvgl17vp1d3hgvlc54gl5qcwqi0";}; -nestquot-27323={run="0l2glc6aykd492rspxphgscx0ykc8cakvqkm8z99jq7xxi80l1x8";}; -neuralnetwork-31500={run="0rhvhk46z3wgz5w7xrbmlmgk2px8mvajbrrj4ygpqa58g37wl0v7";doc="1apv7bhss9ilqcm5fxwg83gxm9i8563671jcsmhkl13gcii1lpv8";}; -nevelok-39029={run="0c4zij8ihx3mz615jr4z150d61mj4ln88zrdbsjx9hlnandqkij1";doc="1x7jwmp32f1wph9k03q6ly9nbmdpsrkhyvn5j83n1fj6nj6hmzqf";source="15di74y4h7qgjh7gmmaingbg71jrlaiz1qxf960589k2xshslbi4";}; -newcastle-bst-62856={run="1qzr66mjmdkvrgy5lcv0yv82vx4vygxwa7m8lj6crsffwyaxaxkw";doc="0crwyc9r5zqz412j45c7qh43wkdj2z7rfrmmc510746b9nm31l13";}; -newcommand-18704={doc="1vlxm26393psl4kjfh533q03sb4klnfq84nld9ggs8l5x08dks58";}; -newcomputermodern-69379={run="1p35sffk1hnffhqfpb13n0qam0f002yp2g987vqm9p4970fzgs0y";doc="1n2hamvbjgjnqw03vrml6k5rw2njf31fz219h20j82k29k42mmsb";}; -newenviron-29331={run="0vij59qibxvl81r367yxfl4mgp8fjzd99x3aq008hwh3g1d8ciaq";doc="1nvra7lh4zvxy70hf4ndj4nl3ij3ar8g2fxrc0951qvixz9jx7mm";}; -newfile-15878={run="0gah9qbkpib651rjfrakzldi4wd7gv74y8j455n1yi6wnr0yq570";doc="0vqlij71kfjzbl08sh38rzs9k714xigjc1cdvvpj2m6bhimazp76";source="0sw9cqids994lscbjif8h7npp4cmzrhrcvccspag2aa78gsvz04i";}; -newfloat-68434={run="1jhaccf7ppi5m5jycz77s5nldbmscydzbd2db8bmb0qx3z858m48";doc="11712zqy292xs7i4xvrrv948i6l1bwjxsgax7hph9hjfqs086rmq";source="018msda5vgamyn1lmq63rwv58h9z49q4rd09l7slij14djxwgdb6";}; -newlfm-15878={run="12mryj5w7dpn0mdv91grkrd24n2pn68p54bl70bg3pddvz5ab6gy";doc="0afpxw78vijnhx2rwv94ar6x4ivcrgz7873vdc5n4dafgg18z78s";source="0z081mn0zf92ana2v99sdyyqjz4lqnm2ymndp76xwih9p1z8233s";}; -newpax-68762={run="0dn36fqqwwa6jzcpznrjd7fk2mkzd37mpvyicif0dc7g125whndc";doc="0jcx3lvc1ay9b2dmj9f1kd7kxmyql95dn4xw4syp45ivqsag3p0a";source="0i7ilsx73lcifvzcffjp3n1swwv1af6l3qwn46mykxyv8c1ygjsr";}; -newpx-69777={run="1n7374jxqmrhnjzbmqlx18l6yazn3n9b9phndfg40va5ig9q6fwl";doc="1ihz42aasyx306kwkfmidi0yhr8cxmfaz3sl42b1g36fyabp5h99";source="0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj";}; -newsletr-15878={run="0hl73l6cv94g9k4qnldxad6nl56n9c1r9rkwh2c38sr31d6fn8z5";doc="15bd97zlny5p212naaig42li7ki3f9bfr9b5pqk0vhbf17pik9za";}; -newspaper-15878={run="1afj267dlvgcw8028b4c0v9rdj77w47zjgpk0grbapy7wjgpyjb2";doc="12hlji06sd7bvw7r664cg8ijxabc2q1rb7z516ph18ayjl5vca82";source="1h8abnmiai3c66cjndm6xawz00z1pfmgwlp6w43amjrk1rm4r5vm";}; -newtx-70496={run="1kqzr0z7vd930x3jyna531jp8qkbsvfjsgh8429ams8qqqjidah7";doc="0hdn9l5dl5jlqgylk7wxpdk200agvdmkl8yyj16ngvi6ljsgh6x1";}; -newtxsf-69597={run="0nwsbpmw7c96797bxvlmfrqibgnjsy9m8b8mzrbvasj3nlhfdxwf";doc="0zxkhsf5r9kffk2vz1n1nklk48i6x445dzs4swdz9hv6xkhrbmnq";}; -newtxtt-70403={run="1adxrl214c7gbqnpqx58j3myddf9qx2dm6kfzh83k2zs3h2wbv7z";doc="01s3qcqygqn941frsfyrkh2bs9ghz9db08khbg5gl9imkrjcmh6j";}; -newunicodechar-47382={run="1zr5w047xqg9bi6drl2rw414m9bzpa5r7n5270zr8k8jj74xcv7x";doc="11vk77c83xy40i9vclw4v1h5wnr03mb77fa8s2lhi0p4sq0c3vgr";source="060kbd07al8cwns5877ap7irpf3r3bkw0w62cwvl67y03gcmgr70";}; -newvbtm-23996={run="0d9q6mvczacdxykp381181mnra49qa0y0mngr0dnqp24hfw9j9l6";doc="0k6j4xpvjwwvz8cipgrqvrs2dj66n7yzlr9mcfsgd5w6rm1p1h4i";source="1p3g9qyq4x0ffv68501zlpf1w0ffm816pa0wqjpqf8pz2jmgcg5y";}; -newverbs-64833={run="06m58n02lx0cw6f9689863yqvlmzpaiarzhpslnywhvgfnks7aks";doc="1wny3zhid4981rlxm684p4pn315jdjmkwc002dbj9aq7lhax0dg7";source="15qivriqxgk1cfff6li172lxghcpgy9i1vjskki96pn68q2p0nw9";}; -nextpage-15878={run="1p9dvw7fqspkg6hk6rdmsb5k5m9mkj0kz5a47wg5dgfqgrqpixf8";}; -nfssext-cfr-43640={run="1qp85vnmzsn967iqvzsf7yzsq1a4zxvyim7r0xb8pncak805fs61";doc="1jac2k7nldxq11rcf53glb5y3haqdsxzzxmgmvyzhbrzmnx0bsms";}; -nicefilelist-65842={run="1pjpffkhwfrayh6a5l57j0szaz63cn83mw53v17ibxk8dj4ls0d4";doc="0dqpx0kkgj4vcfvlyl96mllpn3kqz8qh2476kpfw0imrp8klsq7b";source="0q740bd8igcdy11nmpn61sb1yy1kfypvif2s62ym80p89qf8v74c";}; -niceframe-36086={run="047y9dh0p51lyrrq5fkvp4dpiszvf2nmx53hccl8hzgr2bs3kbwi";doc="14fapa38pffkj1hs58b7r1zkjn3dql9d98jzh13cybyfynd5crjp";source="095frb90nryk4m2iia4sq3kfrcfg2k3nq079770xlp720zqy07rc";}; -niceframe-type1-68091={run="0p219ccyqcpf51q71185manybxsxc89d1crxxwqs96n9ppn7xb0z";doc="0a3xh5akhxcrk440wa6zwm7cf4yd1smis4pf4gd3cjv3rlkli79s";}; -nicematrix-69991={run="0639lzcv4xjhrc0y8a31v5q5apb1vqhmvasmrsq6cb41iwpg0zfk";doc="0ang6dibjjf0j6jnhnk9hqczhv8dyjva5fds3rkansndxbvh9viz";source="09sjwlnavchysygfm2c9ds349q42ybhydd7hcf9hbsgm2bn7jjmn";}; -nicetext-38914={run="0aqfg8phvhlgvyy71flqsaqwmmc6lsl9vsxpxd61v69hp2qhvggh";doc="0c078pfiw1nz11krcgwbdlp2brdy2xmq6rda9yahfjjg54xgdbg5";source="112ji0zwy54nqswil8lvvcrq0ai7jsmdagvf2786zg9n14h5kr75";}; -nidanfloat-48295={run="15l4rdj7bk1279xjjkgh9a7scfmm6w88civ48shh7gwx8gsvcscb";doc="06ccf5yhrqvshj3d8ic3pbnvmdpjxq54i57y3141wgqcj5h062dp";source="04q480lddynb2gqz8azmyik8170vl056fhfjsnq8ydqj0rchnnqi";}; -nih-15878={run="1rlhnhdz58qqjv563wjpp11ppyqa5smjpzjdzfcra0wd6cxv9384";doc="16klyjxzxj4mipql71admicnzlnasnv9hb5pl52wyk4ic8ggdgwh";}; -nihbiosketch-54191={run="17gggbkag8y4fjvj248wc8kqiklsqmilcyisx9lwcf5irngql646";doc="17lfnfkgjdhj8i5zv08v6lgxrrjg8hzbbq9ihnpcbhj2scn96g7s";}; -nimbus15-58839={run="06bir9vnihawgmc8v4cxjfcgk2fahhh9c603b7d9wzl7mi40prl9";doc="1fr7k4vh7726xh03qz5116winps1dkalnskdywvcvbwk18a2m07q";}; -nimsticks-64118={run="0h87j3i80slsi5nc5299jvslhr1m3hb8hvs9mwz400b76k4x3ig0";doc="0s2v4941bmgxcsmcwz7x3mybzaydj9qshcxwj42fd855sf1rmis6";source="0lkfhdq9iq9lr3aw5dxs21j5vl9w8xjjjxph79imdx6lcs9cbs9n";}; -ninecolors-62006={run="0qvjykxzl9154wbiybwpv4j9da5vyvw2r14hkg9cvyqqd0fn7g3p";doc="14dmp0cm8hbjrd14szkcvkrff3l7shk4k9zlzx6hzkpmjc9qkl0w";}; -njurepo-50492={run="070jmqsm9caidgc0n1cmcj2v0x8dlxxwv54hcqkrisaf4nlkyyk1";doc="04hg7gxg0nplqpmmagqynnddxv12qadamjy3rj1sxhwxgjma9c5f";source="08fan5igmdc43s82s1adq7ymxpvahnp08f90p3p4qlqanj41yh65";}; -njustthesis-62451={run="1ar359ssgan8pk72bbvd4lp2yg63ww6g2ymbjlxbv63qh6czvqrr";doc="0s7dwmmhpb4qr2nnzr7jjh1zfk5fcvk51nxrf7i7ikq8jss0ic7s";source="12lq39rhj0z6msdpshagqylknn31dd2pl6ymk1lfagm2bq8mvx30";}; -njuthesis-69051={run="07lvgl75ynq4fljq8h1pkd3jq4v6zaigqga3mwrhnd880igzk961";doc="02npr4q5ywrvzp8a20mvligfpd0w5wb5w24lx64i9qviid1vrdi3";source="10ggn8dvk6ldsbjqvvixslrzlhg95hfmqjd9ybb890xq3zmc7zca";}; -njuvisual-65261={run="0qgifkahh13dkc07dx32i3hn03rd14pkajg0yw7wx8l0la6nxsy1";doc="15nyzfqsrsvmqg39vidycw3agdy9yhgj7wlfjw649lykbwbqqlif";source="03ywgbapxldv05azn0s5xh9c7a7imq9qwxg90969as3fy5cjbl98";}; -nkarta-16437={run="0mhi640hsr7dy7jbvkqq2yl224i9ialf01jkcma0cq527nvrnm3f";doc="0bqix170zf7lgiv11v4mqyq3iva707zv91z154bi71cvnlknbkns";source="0f6m2wz1cd99s4nxppzdq9jm1hg02xzswgm85dmi18jffgrd2chp";}; -nl-interval-58328={run="1lrj178yhmd4ajwvpdlbsr97sg39k39b8n30wib0ww2lagyw6rgq";doc="0b439r5r8zzhgd5k0n1bzag3naxs2bjd6hlm3sw60viq8fs5wgy0";}; -nlctdoc-68448={run="0rqlbsfwhan0hnxvadw5m77ny65fn0i12mrhwmvr83fm9ybp9q7p";doc="1yh4il6lq6hawxy00v3bfz6piryawsf7aia101knls0nb1ifrjan";}; -nmbib-37984={run="0kmrgd4w63x0f5j5l624j53mhivc7wllzi346c3ny7by6h7mh8in";doc="0fzg9jm7hd3zx5naf487xxfyg2yg0w9wmc60265av5v97qkghirx";source="1m3pnml7wdk0p6vqiyxssqi7rz0vkcvbd2z63wqy28r78w9js34x";}; -nndraw-59674={run="0gffz4kfyz81yg1cv7sgs5zr5a5kaay1pmac5q6v7v89w0bf8089";doc="12yj7gym7kzacwxjx5df3ssf97wrrnsm75z2c1j20srr30sz1cwg";source="1y29n03z9gxwy0gjzm6b5da0cqwg0bzm26cxlrz9551qk8nis9sb";}; -nnext-56575={run="0vf53wnrjday1q3hrplqklfp5kg57ibyjiijqw0jc074gzhyw0z7";doc="1rxxrnm8vb274c9l6lki1bxd6pij92klryigd40wwwwxzh8fc10r";source="1w3p9ig1jivwyy9rlbzfgcy82h3wlj2ig3rdlaq9k9fx8vd6znah";}; -noconflict-30140={run="1flkwyz36xycq4aidj9v6ga29ghbww8ss5dkz4lzsr96nv38q78r";doc="1v3q7xbss5ra1dizg2mz66zq97cfsv5lgnd136xqbbmn5vphl0dj";}; -nodetree-68244={run="1d02cgh8vy6nq90ndx6yy907x8kispwxjcxy1smdjd35308hhxjw";doc="173jz2ihpnwp7bdhq2j6nxkmsabrg9mib185pyz5v55cyh45whlw";source="150iq6m7yvb94qzgj9c290s5wkc0sp06zbmc8kn42wdqz2b5wqh8";}; -noindentafter-59195={run="1gp4zyqwq07f85qp703iwsa0351yp49zyjrzrhfidw456whhl3a7";doc="0is88wpryqdd179fvhjkvq6qy4inz0sp8a7j1i90iziadkf4rchx";source="145bfg8qz8m64x6p2kzkz6skzkdi9jc82q77zr50xms9565bhf4l";}; -noitcrul-15878={run="1whs120vlg4cdjmb1x363g92ira9nc8j2h65qnvwv8qrmh2hrwnp";doc="0y3j12rb8ks8sjs1ikw3sccq7p7zmixc10nhdy9yg9rzwcgmicva";source="1dsjxs73xf79sjq9xynnv78jws1j39l240lvcvpir1k8vnzwfa13";}; -nolbreaks-26786={run="15qa4nf5c9gl3ha4prajqxl2p1ks6fpql03d52prm9vqkwphzgyy";doc="1h9n7ki3iznbzq519cliw03fcn2k40f2rldjkhnp5vlzma81inh3";}; -nomencl-61029={run="14225s3b27dmdgkjqyh4fqcwyyaahva0sk3k6nvffl6jjqdwsgkp";doc="0vqxxjlvgaa31mjfl6jv0azfh7qv0g341i27s6k9zz35a7dwqaq3";source="0fxfan0s0y1i30rg2mwxl21ymfknh4cnw8za13mx34wvaxmc4l9l";}; -nomentbl-16549={run="08jvfyn4vd8qwlnbsqhlxnwnl4qv5b8r32slcbfwshc4kyi2hn9a";doc="0g48qyrrj6npsjcnnzn3mgsmd5fq4v5vzzsgxvvx9x15446987cm";source="10b41ax3ynpdbn9bawkp43whqjkygh8f2p6qdjiwa47w1acca8zh";}; -non-decimal-units-69742={run="133cvqh4vxdsx35dr6vi0sqil75zv3dlrf977dwy5r1fvf14br2k";doc="0qwqzl7p6j9mynlqj2zvwdqrcr75ms4bn3v58jikvywqc0y61aib";}; -nonfloat-17598={run="1ay9s9xrf27sgan2gan86g68i91rwa8spmmj2l13pb3zl5qikw66";doc="0jjil5rbxzcpkyid8y5dahab2ca9r77sw2scgrc4mf2h4nhrjfyz";source="0vyvpxyrqjqmlw2fj4b9avy7sn79m4q8gcbgzdkzzp8d0rng5i8s";}; -nonumonpart-22114={run="0dyf0nl16j7vp955g64rbvvjyqq31x5iv7dbkh8cikwvgn9g85s5";doc="06j6sc8q18mnnnpbj57ykays69n78z0iz1r3vink7qaw4a8fbyba";source="0p3gicf0fzmk0f7lblydf31pi9x0f6x0k5rvdd2ia8hrjdaqv1dz";}; -nopageno-18128={run="098q0visa9g5lh3vp6bp484fglrq8g21v4cb71cnc30f7avkg1v7";doc="0n7p2f039vmd060ncc81yi2hnn7qyk6b7z2hpxh9pp78dwklgx98";}; -norasi-c90-60831={run="1bsx31al77ci58p1zavp5q9dl8msdjqilb19fglnkhgg8bjbqh7d";source="1bsivm5im913x336v6qrv31b926lfr8821pzqshq600k4fgk3rj3";}; -normalcolor-40125={run="1yvbqc6px76phjgy9cwpqwy035nb61nvcxy32v9xa9wfcp36nw7g";doc="0919aan1qxp5lfqm902ijn6sflkzv1dgxi12hjfixd8d1d7rlfgs";source="13lqp3zjnhm1wmf5id1bbr86l5qi13xgij455l38l55is468sv8j";}; -nostarch-67683={run="10gkz055a6j0hnpya1a49ysqqsnf9f85fdnxm1aacjnng5wpshzv";doc="0s06svy9gjvvpjqni59qfzzlwplx12dbgcvpkdi4zj7r9wyh4v3v";source="1vd8r7viglzi00vfxq4wnjdciamhl9yprham3mg0mmrvmp30l52f";}; -notebeamer-68871={run="1glrwrk760xh657ipslz8vp41qwp1qhmb7cwq2p3kgzczprkj8zk";doc="1yb2ml5mc1mr19di0zc168v63n0vl7hb6vq3fggiw9ppl0rzsasz";}; -notes-42428={run="058316ialcra7m56ww7imzqqhk318abwscw5g60hr73x3x7d9dgq";doc="1zq11rygqkbx85cf79ixwcv1w971w4hx8zfsv7z16am4mlxcdz5j";source="1ycxa3m2l13z6a3a4a88wpznvwdb78qyxkh879cvg85apb11rffq";}; -notes2bib-52231={run="02iwnpiq918izkssa8j7fiz2jbfjn87xdjh9spwys98q2cvvxd53";doc="1md7zvcnlb2sf8zw0vlnsnia1l22gr69jgksy5yg30jis3zm2gjp";source="1fb70w9y6gj1a0y4w3zd7yfmk5gygx10y8xjmdj06ky7k0r87qlx";}; -notespages-41906={run="1zn3ygkiyqax88azc7vcrkfw5hfzbbq3jkacnv50c8z5xllk2nwz";doc="0556azchy0yc8757wcy687vn82q0jmyf7n38vyx3admpawyk1pxk";source="052p17fbdpbdpzaai5xn8r0v6lamv7ps78svd27216p71djsfr66";}; -notestex-45396={run="08b59wvl0n718vbzj6azwmj5cn4jk57yzzzzgxkgkjj3kq2926ig";doc="1n7qdz9sf7jdvrrcvixbvk1yjjqdwsr8c4vlw0glwabjyzj9hi3v";}; -notex-bst-42361={run="14r3q4z35k5n0rl2igjs4lj5ic4yd14xksg1qam5klb6raaf1jkh";}; -noto-64351={run="1bq1ysvd9bxcbfql6lwcbx2878n3bjwb3akawm7z025igi7hnml8";doc="1pz1flyv3js1wfw9p57cz9qb10dd64i978z76ngmfg5k1hp0w7l2";}; -noto-emoji-62950={run="1d1mxl32brfyn3a8jpkby0kwv69gimj9wcl8y61jd2qdlfd0mx9z";doc="05rch3ybas6gds53g35gda10gia61v49kgxi3gzcxvn92595zv9a";}; -notoccite-18129={run="0cbvwvgh3rkms6akamnrmzwm6796ly5fa93qsb30bqafgmx56il9";doc="1h14fkdn5kvxagkjx8h6f6a06v7y9z48s87x52cblwykgfm70qxz";}; -notomath-68014={run="04ik99znmf5a97q474p8fj4rhmggzggn9kbdyxhpwxcd1s15w629";doc="0bwcf8s46i3gb79yns1y7crfhjsv32np496rhqq197cjd1c4lml9";}; -novel-69945={run="0q600v03yrs5by11c63idvsmfiaz3jpwkz778b7xydbnqbshvxzl";doc="0z0j6q4ssxfxlgdfs3vva5ahr93bbnryaqrbqn1p137pp6lamsw7";}; -nowidow-24066={run="1w18i36ynsyldb9gs0yhv6plyrjs4762y7bglncv7bhqjmyy7y3g";doc="1l2zq2ain8nhkaa8aagpm22nvg8p1vk2cdgs6pmrydk0hhmjh01h";source="01qjfpps7ahmrwvg142mspj8gsyx21l3nr75g0v7qsqxbfjjy6gk";}; -nox-30991={run="06036p9059x0lzliq9b2pqahnbp8jlkd1gnq300rq0syj37mjk5f";doc="1qfjlzczcnmf3pgqf4qr5v9c6ws6qba9hm28h3xwf2s3099drxjd";}; -nrc-29027={run="01pczvyzfc2vnrfsab180fg0nz13cmry0dvdxmq3lxzp75ji5aqj";doc="0l6lpvddg25k8dynqr26gj7fnaq7k6zbzp5p62684sz9351pvz6c";source="0lzfw45m3mw7yd9sx6lya6cvan696p74wrxgvmqa73prc2lhmbv8";}; -ntgclass-65522={run="0dlm313f7m0cj0fsqv884xi16kq9imrkkiaxg8lszy8idp9vvmhf";doc="1c8kc3q9xqxl28xdyzlnlzwdfixbfra6vi32p6iy353mdhvhx2r5";source="0fhs6v9zkfxfxp2g17h4cxa4k9dm4dfgk2dl76w61ad41wd629d8";}; -nth-54252={run="0716sd99xjdkplm7jdmg4lx8lpfnnx6mxjp1l1sp2bfqcg73p4hm";}; -ntheorem-27609={run="1mbrpw822ibb7wpzbl3fhnxg4djwy32knn9hqcvw1kpahgfbks66";doc="1f1cridxgv2rwv3f305hsd5pm59im1ik8qmpqhq4rpvwph8ny140";source="1pkrhkl9iq0giyvk6lqjxx5x681rjl9zmc0kmcypwgbqww59hp0i";}; -ntheorem-vn-15878={doc="13lkgb4qjiblbfm4jcxgkxsf08zk90lqz02bxrmim1n8gvyihwcc";}; -nuc-22256={run="1918fk7bh6pz1grm1655fag16i0ir67ywcx28jsggsly6641nkm9";doc="0r4345bpjdb9f5gmcdjf6zav64gab5f9i4nfql01yg7b7mhk487x";}; -nucleardata-47307={run="0rrxpz66rf6g9cp6ix4rrbjqj9s357qsbv87dhri62iy3alw5bv9";doc="0kfi9c6isdlf188zsk2yx38z43zjzxf8fhvl3hm2y87di2kihdax";source="1lai682rycff3hm954x482hzn1mq1lrik3g1fwkbm73s99nljyj1";}; -numberedblock-33109={run="11v5n8s9glczglmqm4bfykg5v0qdqr2wfnymb15aichqqvbfcgsd";doc="0rh954i5167pmwmisn3v26zqqgdrk5bcn2pc16m3wyrdgvq02kzw";}; -numberpt-51640={run="1f4hmqlkfzqm8c4q9cbcqsh9pkchnylfv6gfzafgn9v3rdksg2dj";doc="04hdl6zrzw4zm8cihvfidlnjirfj7zlmh9mb7nzzq68cyxn30256";source="0ha3v5lgn8sycfxs6hlbdf7n0b8mcl2mny2kx37s1bib0h8i0bxg";}; -numerica-68021={run="0x4nx06ppb1blp4012pb6l3fkp3ikw94xy9g3653cam3p6pwlviv";doc="0dhsfbysxrm91hxhgs842yv6cxx0agsj486sibzwsxajbmwxc36g";}; -numerica-plus-68019={run="1x4dmzxb4m11kdscmp8n7jd1ihd21h0nh6dx3gx8nmxghzq20160";doc="0h3y8nxw4zdbxzwkfkffkc8p0pjmxd0lh8zcn5cisdjzk2dsjjyq";}; -numerica-tables-68193={run="16zsxbdydwzh460qc69zs54w666qmim5rn0lgf5b9kx2l0x8mvbm";doc="0b1v2a44lzys1qq2c98c22v0i920j07k2ayi8l4kb0z95gzq4y29";}; -numericplots-31729={run="1c127aalh7jcx9rxhsyhi2k1qdz6fg8d6qj0kvf564s9c0npgar6";doc="045z6l4dmn3bzfsn7gi6bdhwvp3cbf9nj8fcs6q07vi4by71bk98";}; -numname-18130={run="0sj8plvx36i2azwnk9zhxd16x7dxk2419rdzc93pl3f68kxdmy5y";doc="18iarxgxxi5dj0cj1bf0il74ndn5lng3axf7zz0jwqpl5d84pz6b";}; -numnameru-44895={run="151c13r8arj094jw3zaymz6i7invgpyqr95p0qnwhj22z418pj1m";doc="1rrargznsmgq1h6a2ixxr9bg57zcrs9zwhxgz0ssbscdyvjqik8n";}; -numprint-27498={run="0wkijyxl1zzay8vqvsyhk6kf5247qr8k55rz91dn1ph7b597d952";doc="1jra448iyyvc8qgc9z49brb6j9c89fzf5zhgz48k9959bv8izs8r";source="1svwh456nbswkrmj98s91vr2x05fvs58chkr5d5slq14wg1cpa0q";}; -numspell-61132={run="10rqraqmnd3pybpih3fhk0068g448252hwcckxzd9vd33n7gfw1a";doc="1hlfb7b3hq9ps7l6z0qzymc8mg67kdipcshb1bpkindasx6dnkl3";}; -nunito-57429={run="08hnxivx7ixmvp7l6kxfr0vxy7c78i9jqkam0xxg5mkxs9ip481k";doc="0xhv3rws4kp5s4q4c10ykkf3yyl9i9ndxjavjx9xxxwm1iap9m3f";}; -nwafuthesis-66895={run="0vicfc3gnxf7cvj7lqa8sd5maxlkfqazc3wi8il553fw88dxvkcq";doc="10sln765phsv6rpxjhn6z431nwwkch3qbq0s3wjk0mc34302qykx";source="1xk78d8zaqbn82lsw0fi428ac9ybs0xnnva2lkb9k8zyijz5w04r";}; -nwejm-70606={run="1x96p32bb8xpcjr4831fc3217cr0is3lm81fpyhjp23kcdzjk56r";doc="02ii5nrj00mv7wvkn2bgzy9w2f5l11bxs9cllxz0wvbz17xflb6i";source="0rwm5c34ycklp031w42kbwjf75nibv7y1wa0vcl9av1xwi017nnq";}; -oberdiek-69038={run="1gp308z3xisg8qmg6bggddmmjdpcg074vv15jwhb6z8xfwyj3jvp";doc="1cxl8d26mclv7054s92c11s301gk9kv11zicx8ikv7mpa605ylrf";source="0xcdyy5v1a28zqyip8n8j8szj0bdircciww0a98w5wfxgl1d0dym";}; -objectz-61719={run="0s93jjwcmyjd126wmf2rw3776jgq0ldk40f269cp29968q00sfn3";doc="1qxqphnsgh412lizx6jij6qhnlx1d558bzd3klqf950bp2hy3cm6";source="1l8afdawrrcnbpqdhjls28ncksg8lzs7g59viqygwixwplha0fb9";}; -obnov-33355={run="14cz2rqp4sf4f880d49yhvqjkzm5aw91cdijmqwf283cqgzhdmlf";doc="0k20zh42vcm449dh662frdmspmycx0mi81ml8qkvnncy8h40jxr8";}; -ocg-p-28803={run="1cfg5253i7rb0ng65fwm6v0yhs2l91gv0a3d8bra1bkwz2f1mfmj";doc="185fgw41dbw1hsbv5lr84spv1qcfglm0xhrgwk92g0dgh20d0kfd";}; -ocgx-54512={run="0a1mvlgn1vql9w8ziks677ysir9fc904ihxhn2hy5qsk9j8wc5w9";doc="06d3hdgvwymvxq7vv7ccjiyay6vf2v6c8wznqxyjjb8sv64mzlgd";source="0z2jgksb5pccxs2bf94vbzb04b1k6a2ssrx3fxc3fwl3z8afqq9q";}; -ocgx2-65292={run="050cz13qibfz6q92qah8l1ji1c5g8r3p1bvd6wbl8lqwhzfkc203";doc="0jkzkssihk8gsk90liydqpk3rr10mlja376p4rd7kpyswdc6j7q0";}; -ocherokee-25689={run="1xhb9y2m6sahkqlng98f9rqi94hrj66594zqdd2sv82902vfgl9p";doc="1fqjs1zwf9rgdzzc0wk39y3jcn150ssh6yvda4jfyqg3sv17wwgg";}; -ocr-b-20852={run="0y62xmxbw7573fwvfr69r7bhfcywvhcb4mg7am5c3j96ipq5vqzh";doc="13r2chskacbnfawlc9xwskrl8lqj3dx8gzzpyjjk09rx1g5q9gc1";}; -ocr-b-outline-20969={run="11lv3dba2g8mrnfh1y6agg8ipivhnppd3s7gqljlpdbdbk40zbyn";doc="0017l87j9g42cjy1ki2xksh6xq0hl3rsxcrdyrddvvxp520p02x4";source="0yn2mcwj73mazk503f13qmfy2bqkq0gz264ckr33bc88f1i1518b";}; -ocr-latex-15878={run="1l5s8wlqk4fc9i3fizhbm3c7nafq36w39693xm1x07giqqw8q8cl";doc="0ai4kr65ls66ywxncb63jr6gy6lcw6zjvlgsbp4wd6kfjxs27bh7";}; -octave-66115={run="0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0";doc="1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5";}; -octavo-15878={run="16pwz513a39630p51n84761asli9kba5z3pmbgfkcz7yfk9iiq22";doc="0rdb58jnyyp12i7ndd6qibs2jc1f0zcw42jh9j48aid6nwslvrbr";source="1f13rhvd2l3v7fdivk1ybw0gnacv9y2pzwnbw8ykmaq3x7m3x2j6";}; -odesandpdes-69485={run="0015ldwqcn6vwayrdljikhcrwif0dsfpj3hbkk47j3pbz38i42xz";doc="0l5fbi2r9g0nbs36bgh3c8fnc54qa24xy44yyw1bzdsnxgq80glk";source="17ffq9wg976f5dmny63zxzic58sldmnv2hvf4zm33lb3jgf67crc";}; -odsfile-68204={run="1k1rhixcwaqyzawpajbi3ljnmawc5l582vb0vzsnmq5dkry7ccsd";doc="1jrq1mp70vj3cncv1l4f8km7yrn2lbhjlcrk0qa716r5isqhawfq";}; -ofs-16991={run="0g2rxji8g1nafyg1nzpy18vzk20p4p6r754m89naygs1qn5n4h01";doc="1v1z08m2ha071kb8zia1wlgkflkzj4hjws8rqnq7asvhi1s2p1rj";}; -ogham-24876={run="0hl3xjmd2bagcn2wnmr2rs1hzmgvm421rkdaimplzdnwj0r64j49";doc="0phm6xdxl1a6nh6g17nyz6p7f2ymll39k42588dzw45z7zwan40i";}; -oinuit-28668={run="1wr3r06hbxrc0v9cwyp7ad6jimw05x3yn6vqpnzchk5l0ixnlkaf";doc="1919kmp5sxd9q49m6dd8zrnjx0cqgav1i87gag1rffd5hz9w4fys";source="1mymvxv4721nhmfdlbl9bgc76dainzykggf93jx6xfwlld0krgis";}; -old-arrows-42872={run="1immbai327l7vkq67nz6mcnyqmx3ajg3blrhbmffkbl92482bv4d";doc="01kdfgiqp5n74lipiviv2alzallba37gyzfp1sqrvwwvrp3a3z63";}; -oldlatin-17932={run="0cxpm5qvbn0a643x2h4dc0pf00kqqk1z540j6dp7mbiwv48qqzdb";doc="1my5h8wq241dm3d6czb1spznrxmrclwgn8i391pwmc11z2ijqgjk";}; -oldstandard-70428={run="0zpj2g8skx2c4k4qwp45dv995zn2qf738jvwwa62zmlknpwm8laq";doc="0fqa1g80ipsbpbj77n9g1djs0prikfs4xi0f1m1vw1cp12bcbiv5";}; -oldstyle-15878={run="14lm3ghfgfqafqivam1dqf3gqgkchnbnc84z5i0whg2p18x9zns5";doc="1qj8nbcx1krpha49k4yzyix13vs9s41g96r7kpdmv52vlpfgs4lx";source="13c4dxvikdxx7qv7y9rfpgj4fgzp21q71xpmq1jzx7phwrsn6wcw";}; -olsak-misc-65631={run="1gm01jvlj8vcl9a3v53bcmg604dzf4immd39dj6n6c692r38hhzr";doc="1afxiazmp8pvgfym1i2bj8k5slfqi81d915d7lax59ib0p05w4mi";}; -omega-33046={run="047w29bij6g9k9fl7ymap4arhdmm9kvjfsikvjkf9nd7shd6k4kl";doc="0r686ck7z6vxcajrjihp4a4mh3z23xr8ic34dv9yp039dh0kbm71";}; -omegaware-66186={doc="06kzz0342h6vvc32ydrzgpqsdqv5l0jbd5finr43fmzqi5jnswil";}; -onedown-69067={run="1hzj2cyyp3zqa2wnw576cjqg6nqziahdn3vijg9y7jr0gc3372ch";doc="0a4hvgsy9i6a26k6n51dv1pdx92d4vk6p3vdrbx8mqwigwa3rijq";source="0kbilw165090a925g1p6z6ayfynv0z7zjzw2c8sca3v0ncyy3cdj";}; -onlyamsmath-42927={run="158p92zgnmicfwibiyr5qbkwwkxhvfpvngkbpbw6grbdhlwsn63g";doc="1d2znlhbz509rqzlwqnbz9b64mpbhckh8pv23fqr8058xlbazkh6";source="08znvq2bzapn0dfa7f4sd08gm5k7m3sh6hkwy17zwkc0987wx487";}; -onrannual-17474={run="0bj29lk2nlsmky82ablxl0r6k6wl627zrsv9g97hydgdmi5nxasz";doc="08c3xmyiz91623lnps3iahi5ga9941nc6bvxmdihadxhm2lk769z";}; -opbible-68465={run="0njr5kkp6a0xfd010w3n8g65bv88zx26yd4nslajsip2nzad14n9";doc="0lyghd30v6wx5cmv7sidyy39qjkng3xlazgg50s6iaydld8hk608";}; -opcit-15878={run="1g54f5sv05rg1xxpydsakjrlckmh1wq0p15w4q0935iw0aq7rn8g";doc="1rx3ap93f4570d006qci6j6qi88zwxc8504gg554aak1lffazw5m";source="0242ajp415h3y20dyvi2lrp38saq10dgb6hpnmadzs7wrwxhma55";}; -opencolor-66363={run="18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy";doc="0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3";}; -opensans-54512={run="0xj7v9lv1ni7mq175l29a039a2ifmdsy1wnv1h0gfni5c34knm1w";doc="178pa2kjvp15la857iblh9qc195z3byd1wxxyn7c5bzmndvypgxn";}; -oplotsymbl-44951={run="1x5wqngjdmc4751ci5qaivzgqynmmg00kg2clngxjqf48n4fakdd";doc="0bj6w6h4g991rfddmrxgc02090vay2h2qjx36cb0hfx55gwkmh3b";}; -opteng-27331={run="07a6dja6s7c1759i9afgacx4v0fli98s6mcq5zig689hpkw841fg";doc="1125aj55p7n6b03mn6p6845yvx2jbjkwwldgwiixypklndqsf6cm";}; -optex-69864={run="0p4gx46w18n6zkpligmd0ya9mam67rqkpdny8spiqfz423jdsnmf";doc="1wa2ypz7xza926fzc8lczrvqzx3b1kr1idxiqb5fakxwd0zyc7c3";}; -optexcount-59817={run="15i48ly8mbhhk0mq4gxwpwbvhpgvk1pb8bfbmfk83sp1liq7xijc";doc="1cvhzkl2lbz939y417ipi22n9alh9j7f06d2r1s0h294692m7bpv";source="0s51426ib070x23d92rgpj247qni42hzaw569z64i7zr3nyx16dh";}; -optidef-50941={run="1jvalzi2gid20wn253swvhil05m273x6685n0b5wbrz5kbvzk212";doc="0sdd6rsdfx1fcw1493b12ww5llww6mv0rij3f1ik290c6qbmyr3w";}; -optional-18131={run="1mv65cqcrjhykpl565z96s57z05635q513qr440crbh61rp93chs";doc="1ks001q2b1yw87q0frhqq6yv77mskng6v1sm6kd8r22cv5g49xbx";}; -options-39030={run="1v2j59zcv5cplh3czd6r7cs4n79yvw3448492bxk446j4lx2mfcx";doc="1za038prpjb3s74ryr25q7hmz881gr8abmf68h7xdjq6bdk73da5";}; -orcidlink-69253={run="0gjgjwgc05iavwwx6s3zrmb3ac4nv5y533bgap14wwx6x50i2hf6";doc="1ajspvsx9ginyh1j0k1q88081dh0jxrsyr0c249wlnkbdkpcf6gx";source="0nlhscyjkg5lgi0y7sddwkdr5v5wcs4ilxxcpap75a9hdk4ckiph";}; -ordinalpt-15878={run="0nia32ms50727kn080xm2v0kjzws5sj6jdy7kglp8wkipvc6nw82";doc="1nwfz0q6csg7rg3hqgddjbiz8f1nfcgghiqvj2wxqf0cfjh8zb95";source="0rzlbngvszl1sjrigpn55i7a8rwnj9sy76c7gwb43d4im1ybd14d";}; -orientation-57390={run="0qcqyr76wiks50i1zr3skp7bsnjzi6snsyvsm2za3l08kbdi3ixx";doc="02cmfz42sdd1gr4yaha603rppdh4c4wjj0jbcrmwlfgl9a47rj11";}; -orkhun-15878={run="0x78b5d70cxy7binl5iq2jwgsjh9rzs87wc8ib18jxscqick5jgk";doc="0q9hwwf80hq6wffyvd26kq2053vs5czly9zlsclh93hsmzg3vj9g";}; -oscola-54328={run="06jgk12q9hmbqcmwb837n8l96f3bafc7mgnv4v9amnh4ajlg6i5x";doc="0qzn7d70vl0lxyql152pzzhi72ivdslmxvfwr70186lh6fjxr4nb";}; -oststud-67217={run="1yzsibisphck9a6dlbvcs84qz3lhnj6amj6vfzh8rgy40s7vvz3x";doc="1sj2lk6fhx9bdgpxnmw6m25yrjmka6m2ygiapj42jp81n51pvyzn";source="0phykgmzds9bvsblfazg82arwdhzssjc6b9faazi5h57jcmvbss8";}; -oswald-60784={run="1dkv4javwj8zfk987grjx00p0p3hnzajm4mgddm1g4z1zfjfdd4n";doc="16pgbws7vf93dwaw8cm4laz09hywp1xigrbdbaq9ngg9g97sn0l0";}; -ot-tableau-67813={run="0wrxkvi28a19kdgsms38wgxgygib0iypz0y830gizq339vj72v2l";doc="143rx32hnxnbw61n8w6skcqs8ix411dwcwgn43xzw238almmhidx";}; -othello-15878={run="17y68qzxifgnh8k1q6qfn97ka7703ac8nqk62ridn1wbxc6fb80r";doc="022pv02lvlphl8168rrcdzk6w7d9wd52riybfvvy537ifwp7kqr9";}; -othelloboard-23714={run="00cybd6dg10bwl2k87i2lj9jq1nmq4jc9v4qhjwqij5zv0l5yz4v";doc="0g5k2q33r726xyj1mp08qmyb4xdihiyzsm52mgbdn95iz08b2989";}; -otibet-45777={run="0fg3gc7614r1b304g78ipq6d84bml2q4mvl2yc49jjnz13nr05js";doc="07l6475b8z98pkmn5labv4i4q6g92lh5bdsdqcwd28v5y1jizhmy";source="0lfwadx3a1ni2k91dpzsdh297j3viq5dazaz78acb879lgz61ik5";}; -oubraces-21833={run="1rhavggv1c50krafvh7lwnvarh7lh59x7lwkipw24qakq7l2a6mg";doc="1bw3b54cn5dk0j4diq8qxfba0w3p0f78h4kycb2bqd2gq7258vyq";}; -oup-authoring-template-64491={run="0cqhrwpylpj0z5gcgx9lyhsh85vam3nfbzzsz9x9laf2rdi0v1qa";doc="118916mwp8zbjdqdwmxzwaf09a16rc2zrll9qmig33q48xszdf1r";}; -outerhbox-54254={run="1867xhxlbskiysifmwlr10lay8khragzi36fm552cwc4vjz2ybcz";}; -outilsgeomtikz-69124={run="0a0g6fnvxzh942n5lg71y2ry39ra9b01y8ngjb05sdvka9a9vwmv";doc="12msajfyvrqawq4j9d9pcqfsirsyiw57pna9zadkj8mizikfdv75";}; -outline-18360={run="1q5dr9xlsn3fz7bcv08biv5cv71qf8brzgg4468mksh8lc8r2kli";doc="103sijg9ib5qfwaxkdgf11zsdg2c46dv00hn08sspl56a08j54sl";}; -outliner-21095={run="03j0mshhrchrgpa2z7j7q6n783va5v0w16gp401rzbvvdn0l2qni";doc="0vi80qhq10yy051sfzh6pmn34laghhvx6plnggrwvcmpp4fcw14h";}; -outlines-25192={run="0wzrf2fkf9kh0d3jjbc3kxvsmkynwzg622ghwcabaps097r9z45i";doc="1avkpx77sis4hrrs9dqizq2sz4vjzvn19ks8q7l32qyz6lnxwk2b";}; -outlining-45601={run="0kc3x4zq24f2dzwzypdi4ysgsfi40l54zxpaxdfgd662wxangrsp";doc="177xwyzq3mha4061dxxshszsyysmb6nl5b2grg4m55mn19qlw2f0";source="029wnd1px0wdgffblxcbs33r1ffv761sgma7bap9g2d1n3dwja2c";}; -overarrows-65853={run="176w37bvjjc8hi2a48138gj77sj1ibfnc71355lpk3vh2whhrx4y";doc="06v0v79kcqakhkyjnp6c9rvqryiy8rrim82p0d9m98dib48h7h3h";source="0nmh0rrsbbcl842lc1zl2dhj5r403phamfbfxmn0qs0f1kqd2awn";}; -overlays-57866={run="1xfbb4953ab25dbccfsp9ban67vrq79j443mlglnzqmg1njrckk9";doc="1nm0d47vclan46q0zvigxri5zqmfpv0qkk0arsg836vnv7l53q0g";}; -overlock-64495={run="01h1fcgplfbfbkb1wp0gnf6xrqn8l8y1hxrd8gxpjqbg53wr278p";doc="0gl3n6h41fbzi4lcsdra5z3vafh7drm6g04ilmbb5cbkpnsyl3nz";}; -overpic-69343={run="17bbk29v6pkrk9igzx4by586jfc997mj07srhgy401mnmxls2jyk";doc="067rq6plcan44h87adj9jlhnnlkk2f4slsid4v6x80423q4gfqll";source="1wi69kgglry5r8wg944x87scqsqx49ynj372y0qfa7n4dajxgzwz";}; -pacioli-24947={run="1fc15ygzkdbv5mykgrmzb6filkl3aipk7i9k1syh2ssr37ldxcjz";doc="0pknnd02q244pxyc2vapdx04adz7gwf41swda2xi3039x82pm8fd";source="0zl6l5yc7v5w1xjd83prvfmy8jf3jyblallphyglgb4vkqq6mxxr";}; -padauk-42617={run="1yjqxzqsvk2mdsk837bgwqf3nfm9gh873bnir19wj5kj622zfh4d";doc="0331w1z1b5x15yb3xyxv008l95idv5yq9xb87da5r9p5fzfh1z0y";}; -padcount-47621={run="15p8g5hjwlm80xnm9py3ss6afl6c8rdq8f92z7518hp0yp7d3zfw";doc="1crpv27a9rfmh4dcliqvi7aa4h4lvkv48k5zk0kx6ahhxa2zkzaa";source="0vkk0c7gvzihlmw3f8ni4awj9r6xrysj9rrsbqk6dkngrg02x4xz";}; -pagecolor-66885={run="0ycmswy7jghmnpkdv6b519yx7ga56aw7yxq6671nlg1iq1k045kx";doc="18xnh0588b95h7fmqwqzb0p2n9fclqy0hxv3a1cci8anpcr6xz0q";source="0qc662yig96f53wdbawgvsg4wx0dikcnf85b2cffwlkr8qzrwlsg";}; -pagecont-15878={run="1fh6bplg468dandbyvmwf13sh27r6x4dmrwslldlc9580h8jv02k";doc="1vrcr5l1facyyf9p8977q0i5m7cn7y40dbmiv99314iyawa3rr1g";source="1qc105f5v0jiahk8gpgr77lqfaladba4hmqnfizbblzbjhhgg05p";}; -pagegrid-64470={run="054yaxr2q8x82dii8bpy3y1nhc1drvwm98cd3asaddh4lzrpl9vl";doc="10rsrkdl9bp04kxxl2g3rfscf0hcw122py25x2jbq6lgz76780jm";source="0fbzd20z106cgzknj98ryzmwiixmbpvnx5p8v3ns6yjrwrcng3lj";}; -pagelayout-69486={run="15k0gbynhgg56h48lwm14mchksj1hs1jd9l70g9b47sl8w8qv1w4";doc="0bxr4apcms8bjmz4zk7y0r7yqnvd5kx8wmg32fypds07hs7075vv";}; -pagella-otf-64705={run="1vrzz63la6i270bjqb1nd4rsqqgl13nrqrbmr0l58bmjj7qh95d1";doc="1dffy7z3cfyq2kzyvbarlqivfv4rs70qa7drii2arv2m1609ylz4";}; -pagenote-63708={run="0jd80dz0jl2gmfr74lw6jy1x2hj6zlji9az956gkj8bxxc6zir54";doc="1s7imj4fi08487xmcsicsa4cknpsgd10dbcyn6vkggm95qn6119w";source="07ngnfinv2mki203in54l4gx7r4qx9rm8k4x7856gr7jy1wkw16f";}; -pagerange-16915={run="1nixc1dn9cbdi3pa5yxajii6c9ljgc2jrnknsa7wb66kj5j1lqch";doc="1vy3c498j95miksm254a1sh7d8bp3g5p7lvncc1xad4g388q6hak";}; -pagesel-56105={run="1j6rg25mhaiamlff4j4lw8pbp6x3mcg00biqz2apsbi6kmbiljw8";doc="09s7r6dzv95689ysdw442gyqsd2jpdyr8hkrigmn9c4sx32alq5n";source="177j2s6chsdhhw63q9g6ryc06vn6rsi29n4prrn2w14fgr3wnhcc";}; -pageslts-39164={run="1lm8707bl8a9kxrbbr6sap3p66zwjklqv13invm4gcsg92yf7yhi";doc="163h2h9n4cvap2c369f2yxv3idij6wzjqwf0wd7w5024h1vvj683";source="01nwizj0vlnwzbqyl5dn02vg5xl2aw60wyvp4plm0agg8kxmsi3a";}; -palatino-61719={run="12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22";}; -palette-60119={run="0wabk4pw6gr9y309dsh11w6gygayzglh0jabqi0zsvy0ikr7wri0";doc="1dp867fydnxdw82z4gxp1sbz5w5q9jfnls6r9izylrzy242rd52l";source="0iic125v6j1ljgnm7d0qicckxwmgdg7cz568556257js942ldyxx";}; -pangram-66300={run="1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg";doc="1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z";source="0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382";}; -panneauxroute-67951={run="015w3jivsfxcb0gjrlpz796p50wchmb34w3ad0dk73qhn2jrx6p2";doc="17c6bnyxs6szybqb1ihv0q8pn3wb950s64z639vhdwhaqvppd2f4";}; -paper-34521={run="1d8w8aicx5drrgqdcrsb7vdy39xh6xmnnpympy1db5i2mc2nkjca";doc="1r03wy4harxplfhqp0dsqfpp0s4j5gn6k2p43fpw7wndna8lnhyc";source="0c1iv6aynpfi37bg30q235zdpbyhj83rkir4kdg4vl8q27c8gpwg";}; -papercdcase-15878={run="0gfkn87avjnfjx2k6hz5k2s9iy2lxwx9x4r0cp1lcwjgjsavf2y3";doc="1hm0i4vvxhxn0wvsrbxd2lkqspqkq7ik3sxxm1nd575p5l3zgl69";source="0mkadgjk395z280220zndpbbks331d5hcsxqnarpjmh00mkhdj7f";}; -papermas-66835={run="19i4m31q8jji3chanrbqqxni9x2c4mk0qp1scf0brjaznrcv4dvv";doc="1an36yvg7z1yhb6gn9ppxp24qgdjmpndwy8nwn87cyr4fqmrmgr7";source="1r3cw66snl1dspbr9i6pz8v83x15ylhm2k5nbksrf7f24jrvvxn9";}; -papertex-19230={run="144zirbvdpq1q8an6i5rngycmlrgicf9skh6mnwyz45n4zyyzyg1";doc="1aip8lhazpmmvdib6yqivbgjagyyhmava29q9hrlx833385vvnhj";source="0bfkh8vwqh6jx34fmqfqf2qz5wjpmq9bpzbppf0cphs5frbwg10b";}; -papiergurvan-68239={run="1gyf1liq3lv8dbfdpv2ilbwks4k88m2ywnv3qxpbrg3v2l010c75";doc="1mw0sc6svi8rci96wl2273bgn2f3w44gdczaldfflxc7az4mhmvb";}; -paracol-49560={run="0lbdk9wbs6c6kq0iyf6amc72m1njdf3h8yvcnka9dkhjp228ldf0";doc="0fnby29nnrasv32p9xwwwax57ijzscpnsv43rwajlqwcdhi3s2nj";source="0q9izjw8lrwcbx0cpq66pr33cn02wl4daxsjvlkrjzw8zzrijl64";}; -parades-40042={run="1vmjda4cvajsqai47wvl0byi552gdcy0j4m36p58gjn3d9bc8818";doc="1lz9dsy94x5cvv55nk975fw7dlg4bm6d8ls0p6gy5b58sjd6vcp8";}; -paralist-43021={run="19m0ddw80vjzm8p0z5rrd3jf9kqzq653h3jdqlnjw4g81r0z730p";doc="03kv1n9m1b6r0r5drp81hv2i8dgnlcsz81rhi4h6a3xyxnyhw6bj";source="069mn3mk34rxxhl1c1878zs61pk7asa21iwwk6r2v88yziczkhlm";}; -parallel-15878={run="0hja3k53n8v8qzj1vym1j2b4pj7hqszda82s83kw1v5av6kcy4da";doc="1i0ls71ib0l3igd52cgn5z0cjz0j17hsj0qc5y4sqg2nvivvw7gy";source="1slmdxldvxrvf61aa1b7m09cxpv6jsaw5lvbgqsby6jvgfp4r4g8";}; -paratype-68624={run="1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr";doc="0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi";}; -paresse-59228={run="0mbxnc8c7iiwcmh17n4yhl1imvsq2q7wng98k6h9r15nqf5ivk1x";doc="1qmqki6fm316bixxjispq92dc1b3zhrnh4ad64wdlsr3fpja6g1q";source="0dc0hblq764q23xnz7yj1nawdr5m55526l0dw7b49p5rdb0zhcg3";}; -parnotes-51720={run="0d8600ssj90rwl9rxd27i23f58lmxyf5r1sn8yrl8fjnq42q447b";doc="089i9fwzjcv98pnqmhca26wpvn71zcgb79y3jg5w8szagli38839";}; -parrun-15878={run="08cbzlfy5cfkxpgr4igv3282k1dx9bsvsjfdi8b5dhl2gacg4i7a";doc="0wvbmjzi8jwx5gdg8zgb4p3gz8v8rfp2hw67q0rm5f9rkza1a3ds";source="0d79vvc4j1sysbpy1qdqwd27fai14820z0hqkkd6hrxzq39x6xza";}; -parsa-54840={run="1n2yh9v3d8s32ylicq5vn76m91s6648zgvys6vg8m63pafzl8rlm";doc="0i3d87kajjcw9mallswncp113jz9jn35jkj2y10dmx6z5sv3x3qx";}; -parselines-21475={run="0ymcapxlfyb6xi4k0z1y42cyzan67yg5v4nnc2f1ac35yw4z57pz";doc="0396j4dscv2pqk9vxmz0p4xm4l3v9ln98cwv32r615l1k68vafsg";source="0cg77iddyvl6p818j74ci2zg4zdddp82wddhxqh57qg8vcvi9g5c";}; -parsimatn-69090={run="0dd3jhkv5vqijlkzwf4fd6sb1b8shjzkfydxx6ddbx6a0digxrpn";doc="00aa6asx9banp3v7mjp1axicfnfs1g3l6pf3ifq3n0vwjaxrpaw5";}; -parsinevis-68395={run="0g9ypx3ai49sfcr09q2q231p77z0glwwd0zwwfzxlhkyx4vp6vsp";doc="1mqhdyz9jlipjl74k5blpdizk79f5m876mgn6z39n1p0b4pc8724";}; -parskip-58358={run="037404fa7flsznyidn6vpp5r5rw6wpzrg6sc8zppj9hqciqlbd52";doc="1pw9mgg04lxmrin7vplqyfhxa2bb73yf7qj8l3bwc9yiw78v5h4m";source="1ysz2jfdi49qjyrfkx5k1vjcykk4774i581d7kynw7q9r25lyq9g";}; -pas-cours-55859={run="0gyw81drxs56dwqh6v1gqgs4xcwq78v9isgg38djxq17km075y3g";doc="1zn71815y5pkp24l0cd4283zb3i85mqqzbxmhxj19v5s4jx3ywsn";}; -pas-crosswords-32313={run="0nq8wqxrsgpdnmi2yqcs45mb93gp2lad6p0b6ifqr744hycq4njm";doc="154ifvbrx2z4ig8k00agjsgpsplrjlf8glcxipbgai9wqf82i2k5";}; -pas-cv-32263={run="01aqcqyw0h459xq18gc0y00z2j13zwdn72qpfmajps7ppadlcbxw";doc="0mwgvj4hbq9b6ih6l6hg6gl5qrxyyf0mimwv50vpy1z7bhdq2l6a";}; -pas-tableur-66860={run="0i91nszaymzzwijjlw0f865qx6j7x7rzrxbrc51i02qlfgpaq9zm";doc="0199rpla518gv3rdbchfinfan826z5qs8zxfkgh7rgd7i0cid29s";}; -pascaltriangle-61774={run="06gbr5jgfbms6p7ghdkq2cs9d6p8yr3mvhb0h811y5rphrfzh36g";doc="0fch8y78vd7ykwn9qdgl6m787m89ff3h1fpj0vvzj5vbxmvw6cli";}; -passivetex-69742={run="1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn";}; -patch-42428={source="02xfy1fs30nha0l03lqwl8xrpd81855kb5nb660ks83aj187dghy";}; -patchcmd-41379={run="0v0033zpp4w75lbxk8w2byhgy3s6qvm9281xc2c75bryp0ar5pfq";doc="0vw698r5q5ai4lx4vrb24x8j9dc7iwaml8scsh9c22cpqn2sn26s";source="1cb90y0i5k9s4jj3f9vnj6rhxphjc14p5nm6hllibww3h1khnrxr";}; -patgen-66186={doc="03y05mv0n04hyj0lcq54grx7w5wv95h61j6xlx2jc9v0ib9akq4y";}; -patgen2-tutorial-58841={doc="016bx1rp8kpvlywg0yafhbbhlzw4zxdcbdrd5525vffn6fyp9fi3";}; -path-22045={run="14k9dqvcc2nazjysff0s1jrass14d2r9i9cgfx46ss09cw53h71s";doc="0kacibdjhmz39klvxr244n42c5vlaz1z71a8vnssmwmdzzwfzs5x";}; -pauldoc-16005={run="14p0lnn5hvn6szhgr0ngdc31dbjrfk7r8m8n2jn5n8nirsrdzjxf";doc="16ls36m6c8v4x46bz26ysl0ndi9jmby2gl8b9wglw9ba2gf97xjw";source="17440237dyqhxpszm6rcpdhb8dib6l9qfqj5ls2m0bk3vqm7xv8q";}; -pawpict-21629={run="0sx3lwgm3d3cm4s5408x5dhf45kngls8izzkqjrqjy074736968d";doc="17zf7acasv8h9crzg6jw3d2grmhi689476z9x6872h7kzkn3whj1";source="1vxmq9s2q6sq6qza6lhkd6lmj6pg4bw8qvcpqr8zr12nqcfy4z3g";}; -pax-63509={run="07mgly5jbvxav3k5z6li0z7vwq7fqrj6cq0ky41v7alddjpa4bg7";doc="0pii0k53c0np8d4yc61axasnr8aknknfm36px3xh9sl1a475bwmn";source="07jzn5k45pxslamrak05iykqng5rg1b4kh8p6zbadgxb8gxrqx3m";}; -pb-diagram-15878={run="07l8172hqnv9dq6qg1ipbjjbmkpv7s589gci6q82zb8a0y6kyqvy";doc="05h5i0b1y03j5y0nf8iv8hb5qnq1lh5a55nn8xggx2rknnq0d1b9";}; -pbalance-67201={run="1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c";doc="1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv";source="1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f";}; -pbibtex-base-66085={run="046k2l3v0vzxa73n15999lamllkz18is3di7gh8k4jd7y61gv51d";doc="099z6wqv969yw705dwyykfshx025vdbb2azzmdwp7vdsrfjhzir2";}; -pbibtex-manual-66181={doc="030rhhb4xcijvjc0x1ylyk6xz5mn90wrlp5ss4yr6qlpzmq21b50";}; -pbox-24807={run="1b6xli52wbqlhxf2sk4ryighd6jaj6znvpfv6n9s1iq40ag943dc";doc="1qa0h3ahh8q990wbwyrp4glwhdhbcgzz9yp436083w8c9ang0lg4";source="15gqbvrsigqqyzcf8rda0z0kcw5h6cnk1l9pxjh7apz7i3k00i5c";}; -pbsheet-24830={run="04z9iszj9hx7la9zqqqxrsfq3b6asld4zxvrszyjqw7z3fj7pyz3";doc="02an134idar5ndk2kk2d446bxawv0xkrwg8xvgxgpp8s1pqdzai5";source="0ad7zs28d47p3swvl6kz2v1p2nskrcf8fjwy0igwy8d8qalk0dix";}; -pdf-trans-32809={run="0dr8d6szds3hlrnrw0rb7il23rxw5haz37dg3iacgcdkffnglkis";doc="1dcmcd57zv90jafx3whd0nn9hm5x7aynb5npassjqbglb9lfml87";}; -pdf14-17583={run="0gpbf1jxfjl56pn3sj50b6x0z3fqhb7d1dl8dhf31vgcj8sn9n08";doc="15rgv0fw23c4zbwlx149hhbq711hq39v1nka52mjpl7lgvvzny98";source="1wm9nlqws9g02zkk3rgrpaic293vfskfrxsn3s2jb3iz0f12bp2w";}; -pdfannotations-68958={run="1j63vhy9iwbcfd00i6gsgvrn0q2r25az38221m4758a5x0mggf9m";doc="1l8ddc4vwqnr65b81z8yr0al50p1pjdk3zq4yacqi6qf6kmwibf7";}; -pdfarticle-51127={run="123b9f0nl8wyyxfnbs5krr5ayrgl02hg9z8w87lj6g0lxch7dfhf";doc="1pg4iix7i0m3smy27xk5p03x8m6rq737kyhpf5qzckm276n88fzf";}; -pdfbook2-53521={run="027mgmbd3gnnc6gqk8vjnz8j52cvx71z5y6flrc4zd7g0syivdad";doc="0al7sc4rxwd7g1cmyh8v4qhmlngz19f0f08x8n3wbfnvk2f8n33x";}; -pdfcol-64469={run="1b5rzfx5lf0v3k1kb75j364jfdv4wg910qhv0218dp4mxwn985z3";doc="1qrd28c9z0x2jcvcp5041s6qbkcvham8m06xmjsd31kwnpr4f4df";source="1bgpg70150ifvrviwwbhzr1fa03fhnfa4agnhyfyp6y393i6dcc6";}; -pdfcolfoot-65512={run="0i99z6niw3ryb7akzxxwhh0nkrajlfig6a2ixwsr8k5l4ga037cs";doc="06y6bcm8kfvfkrnvwn0s14hvp6ad3785fs9cc70w85v2lnk5qfm7";source="0ws6hwnfybvl0g7kpb7qj0akpnwsq9s5ddq27l9c05564lmgxcph";}; -pdfcolmk-52912={run="09rqw5csr4c63w5z5c019rm8h4plqzwy0icxbzgap048a7x02kqh";doc="1nslm2frwxqcrm3spr601p2r6ga2b91d7v1v0rbi7h06h14mvxa6";}; -pdfcomment-49047={run="13cknk58kksg605m2jjkvmkfm47sdk56irj8xa3p0alx8c4cn67m";doc="011l19b3lhc8zn3dn071gnlg2300174xaqkdn83r631zz45yriv7";}; -pdfcprot-18735={run="0m4lf1rb2j81ry7v2g9lfqs42rizifd64q7xw9dzhnixp900ldfk";doc="0b9ac68snrs7fs8g8nqrs62h8jjfyjsa07psk8qc20nvpya3hjq9";source="00nmdx6l66w895fjir6r2pwrnh0vpn706i9wi5qxx143h75rgifl";}; -pdfcrop-66862={run="099j54qmjd40q9mws11sadhzdmi70y27mjy8rpkw2ijhqgfhbiml";doc="1wnx4ci4p77cz7l6yihdbx62w65zd18smqqkb3vniqwr11232nqx";}; -pdfescape-53082={run="1vbdjmm9bi9ngzz2z1b8jnf6nzf9xsaj5pvyswg13y4dr00mnz6n";doc="1v81nw121acyv6mvpykgrcdvsgqmby8acpby5lj75ih4zya9gs4d";source="0jk7rnf3z1hlrqlrcx0bzic46v57d8vpm4w5fn4c37q1f4v5zmpi";}; -pdfextra-65184={run="11r5ifc28fhngzj6ygzfjk4j03xwri683498gf6zhwq0j3km70jf";doc="1cam2f5byw6l7rk8hb1zsw2l7qk52sv83wkx6qzgkhmzqbsh6wck";}; -pdfjam-68597={run="1bjq9nax4i940y43b2iw2i7xjzd1q87h58sp4y1dh1x1n5a7fw8k";doc="1kh8xlzcbhnkrwz3yryg8ai7m315yw52k1ydapy218zbvjzrai5r";}; -pdflatexpicscale-46617={run="1z19y34c0x05yp49jqn0z8i3ghv0sz8zm0arb576rz7mskpivjqz";doc="0d1zzym0mgsbicp92qf60fq8l2sdbdx47517k9pj3v8g91svxlpw";}; -pdflscape-64851={run="07bmajz9ggwkq7pz49qipy3nmaqd6ypwhpxilsj9qw4bk5asxclw";doc="0s7bv2v7hcs90fvgk12ff3q89nhxp0v8zjv38wc5inhvhk77jvbd";source="1cx870l68mch1hg0va4g3vdjw4d508bw1kw9f3x9b4wfi7dqfwrh";}; -pdfmanagement-testphase-70328={run="0qmdvdick06p7p8g9w40vwkgz7ls4kywq3paw362h86z0xz4adpb";doc="0vicksagmf2h5l2rz28wwwzny9wiirnqavwg16apycfcwayfays6";source="16rsxnrbs26q9s2qh7m3aapwxhjv122swhv2lmv5w4zgz275mjqc";}; -pdfmarginpar-23492={run="0mhf21dcz4ndhbh1g0h3kcqza4ni6iigrkif0iryyzg1zcx60d19";doc="0arfch7gb07grg0n8ij0wfzbfzc8bv5izvhp3vjz8hl8ha3wyzgd";}; -pdfmsym-66618={run="056w6dq5ymm0x71bcya5nq4iiflcmgw4fh6zv3yb8ihpjj3h00y5";doc="1vrgfpg21bzg8xcw6cf43bjc3gh0m3r0s0y8lqh2nmdl00pmybad";}; -pdfoverlay-64210={run="03cc0088b0iwjmx5wkcs48nnmygsg7w1xlvbi0pawgmhfvfivis9";doc="0702k1ckh9akj21xvbvn5s18x8s4nwk0m7jybkcl8f481qyhhv26";source="1z8n2a0kwp13iyja45l014jyl8aaw1hhnxgxfib6q8i0qd97xw73";}; -pdfpagediff-37946={run="1a4qmaypz1indb2pw4vz0hv8ihanhf9z0azs3zkv2ya6qkc0kphp";doc="12di5a3976bkilcyfg0imx3w8771ky0acgrag7xp9rpcggbi3r08";}; -pdfpages-69524={run="02c11a7bvw5g9gq2xvgjk0i7mrfl14c7d7490nh1lajxhll81f4p";doc="1vwxmhffq7zlgmvh2x3pbg68x0dw3zwmqsa642r7kp57wc4ldad3";source="18p9wm6wnw6qjzxn77ibh33zwcpqhbz3zc2l4gwza1gpdsirqlcz";}; -pdfpc-68610={run="00zab5xlcqqvvwfxf1py7m6gslgv4drx8d419wl3zjmc6ww8156a";doc="1fm43d3q5gl8fg9p9n3z1nvcp6cykm271waphnjdkj29nbg7n9wv";}; -pdfpc-movie-67201={run="07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn";doc="1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d";source="07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv";}; -pdfprivacy-45985={run="1l1nqf4ihwfycnb1x44l1dl2h9f3iy1ppvr0l4zb8qcjqhl4j63y";doc="15w8jwhksfiv0h2iixk07xvvmk1g2j322xqid753bcyks48xffjz";source="1nqjj51h0pcrjnybj3cqb8zwi0r1ipzzw8ic2clnf3in88pjzjhs";}; -pdfrender-69058={run="02zipdaymsrrryfn1cqmj5hmcg9r62mzrjil6fm8d4jgk8ihykm6";doc="0m1cdx7gh5w5a5g9n27a2amlkmy0ixi06w2a4b145sxy41acai50";source="11y3vy8709m5cz5r6zh3lnw451mn6l0674p63fcgqlircs0j7vr6";}; -pdfreview-50100={run="0saxaxhma5gdn150l934y0q8x0nigbcn9r7ixr8rwz4d85g05m9a";doc="1kdyc7h2dpr4gjzf9g0rx66gsxaiwran9k7vj8942pr3x2d2jbaa";}; -pdfscreen-42428={run="0kkdnwgwc9z1rqsz8cjsmfjdi3ycwi7n7pl2929yvvwixp10rr6f";doc="1zhg4vqfjjmg4z4blrr2zl6jp7m2c24m5diifgn5j3m8nwxp6m2j";}; -pdfslide-15878={run="1za0jp9dbrv0c875zddgcvddlk7gm47crmn97k4zx2s7glx24wj7";doc="1rv7wbzrlgj55n7r6i9bm1vxjvjr38v67lizmbdcxz1lfqbv0rw1";}; -pdfsync-20373={run="1wwndjn0058hflw73y8xfsmnspvaz61r55k96fmsdfb7xfncv1vn";doc="1dz826gclpf2knrgks0lhvm6rs1xjxqpzgbz4nkv1f8li7379y2q";}; -pdftex-66243={run="048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g";doc="0mszix35nlx7ba9plfdb26wclh33qzv11qd3b243ys0rkv9lbklf";}; -pdftex-quiet-49169={run="00df842vapzylgavkk2c0j8yg562n2jawwznvyf3qq6dznwf1chn";doc="0sa2gs440h3jd5i51hhbfvpqjpfwvzz5m32x3ld5q9k6zi88b395";}; -pdftexcmds-55777={run="1fpijk36lx5czl6bpbawlm8f34zp264l1fli095wha41fil25hks";doc="00xzyvl66fds400dm5zryrv3m5s42mv6658zx7fnx2wbd0jxs738";source="11516wkglckyrz41pz9cqj0xa2bd6v2l234k28ynnmfjsg56vph9";}; -pdftosrc-66186={doc="0mnz5id6fywhlay6r38nvii0a2ks5gdb15i7s7wkq1ay9k5k6fq3";}; -pdftricks-15878={run="0vji4gmlg9b67yj8gb3aj2291ll1xg9p5vq2kvclj3xpy1vnna8k";doc="1hzd05l4yyz5giw9kqxaw410na7k85wj0cyw0bbwzxynpzxqllfa";}; -pdftricks2-31016={run="1dlzm7ivhxvz404nm61kxjn5arqgfw5z184qaxwn28yk6ri07s8a";doc="0k0zr8mv3xq6ibc7s016qnk78b1d22jgyq35jwimj3rm2aykdmww";}; -pdfwin-68667={run="1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j";doc="14i9y2p683d9rgw599yjllgyy5gdb5z560pbb4l5hlfj0mxzj2ja";}; -pdfx-50338={run="1pim1kiilydijs57zcsd1cnhzvcq5y621fb15hwg9y69s624wjwk";doc="1rb38sw6lyvy24hkdyw7xrbm99bplvcp4cfcdr80pdwf51g10faq";source="1y55s7h2cc39vp36ickpkc8dl42rmq77l1d47h1dxximyihl96x9";}; -pdfxup-59001={run="1vvddbdg2l1s2m47w9whvjd1pfp28l6mnyk1m52wnspm3mi476fx";doc="0mbqq0rx1k1hrwbazfkxf72n1wrkngp45gssgb9z2pfw6k3sv3vm";}; -pecha-15878={run="1ia3q7gygbg4scgja2qf5p7wbgd429cj78b8ffjcz68vgdg86jjy";doc="07b7kmf1if59nrqnsws5hklv0idjjxwp37a16dbjpcfdirb4s2m0";}; -pedigree-perl-64227={run="0a99nbm95pagcnww7wyxqwdycl1ags7arjnd9spahj1zn7xg1413";doc="0d13qx3al4qa7v9i4frii3vv3n52bln12d2dhp7wyjla3jz6673a";source="1xb778agh5vqbm6r14aff42wvipykjsw9yk3i0hj7ibz4ipcslr2";}; -penlight-67716={run="10lzsbz2ia477khfm43sx2qli46isf2z8pvsz23yvip32lmqznrb";doc="1hxj4i1zfbwbyl633wn9m4xvbagv7ljjjgil3cjfmdapxgr06n1m";}; -penlightplus-70319={run="0na807958mkb1if5s5yfw5ml8gqb7ss1mi0r6dpm543ndypnhj2m";doc="094gn0avaaphzkrn6i6c8xdwkhr47bld57vgrpc2mvcp6pnr6jns";}; -perception-48861={run="1dqr68wkf70aj11g4ywr56si8g82bxi2xc9zdnw0nm0wbimy5zv3";doc="00g96wswsnpd0smv1s23hqiq4lg407m80nybmig4ibcrafjkrqrf";}; -perfectcut-67201={run="1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393";doc="1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark";}; -perltex-52162={run="09vc7pbfjl0zjmbra41p5lmr6l6r4gh2x5h9h5hg1i76n4mfkd8d";doc="0sndaglhb92b4jvp0jzpvdiwzc49ijh309aysahrw0pwkdl2lv5d";source="14rv37h9qwgba7dqq8zzvm0dc9y4hmyr6yvvkfbh2il5zs7m8nrn";}; -permute-15878={run="17ky79fz5pb9xr4gwrfpnpxj16mzj6f3wnh9dfhddzlmbllw1djs";doc="0m83nafyxbixsyg37ia535h3axvf2vp6ky0yg1xcv8ppsl72fd8m";source="0k1h40himliydiqssvmzl18g28w0hfsxc6kv7wn1q41sm54knhay";}; -persian-bib-37297={run="1yzbap8fwmlz46ngqcy6hwjw98z1cxlprpzk6vg2qw7wvs57b143";doc="1rn6p3zbfx6vxdjzxavvbf9405cxk1kv56971n6i2bysb5h22w0y";}; -petiteannonce-25915={run="0xvpw8lh1zlkc89chbyjsfszr7ix06afh1fajp5iiqiyxb021v7y";doc="0nnf9bw4jdm3w28957bdfsl9z94a3dxz5kvmjrg0jkrp3r3cyrgv";}; -petri-nets-39165={run="1hi46pzd5cjvpakya2bl52w7m84xm8h03m01jfrry3vnp9hqbc11";doc="0ixpads25k51rlb2kapxgv75w5igbnv5isn61c29qpm51dpaq012";}; -pfarrei-68950={run="0zp4msdpi4w1fhmp7n2s6cdzxss5a87k0dw7z9iw6csnnwaa40z9";doc="0v54c02fmsxzwc8i3050mlll9z1qgmk6vvkdgjmph735q2bmlfsj";source="0inlfabzb1q94bq2zw2416vaxbgwr4nw2yfax491dg5hqpglyl6x";}; -pfdicons-60089={run="1pxw1mhm2lmggs67ql176f6csajabhylmlxaxp47irk6mlihiavk";doc="1czd4z8rfnfp241lq3v6ri4hnij4b8pg2h9lcs3qa31r7zmx4hkk";}; -pgf-65553={run="1xai2x91jf241w03lndpa478dijfm52kyin1ci4s3pwvvqvwvcib";doc="059fvzbpq3nggjc3yddzgj1ci4xs5qrwkqvqshcnk0agn80zpcx2";}; -pgf-blur-54512={run="1w9p9l2nw9bf0rhn70y70h6lqqqx3qravgarmmz1z86ara26k49w";doc="0fq1w85wqqrml9jzi7s2n888165pg4ds8ysvgh56kbkd2zzahnw3";source="1pc8x23l6qcq356s843si16yc6yfrvdxg7v821271dndkg7d2vvh";}; -pgf-interference-61562={run="1l3gryb96av9zwxn4naxz5vy0y2245fv5zlm1dg31p88lflh2s5d";doc="09vvbnmcv8d6y75hxdln9gqspm35fada4g66w6z4kv1bg7z3vrlj";}; -pgf-periodictable-69924={run="0kicajyb144r2srizm2zmsf5a7bv8zx67xbgs3bjpiwpazz3pj3s";doc="18cxvb1prlcd398h3wvfd79iccb1sxv1j05llp17jas5q52y1is2";}; -pgf-pie-63603={run="0wr3r2997p8as08d172sr2hxspmi5bgsgvgwvkm27hg6kpi74zsi";doc="13xvia0zbgsrsy50rp3fr07hb1zfj7jfs95ai6cvy9522cw1zb0a";}; -pgf-soroban-32269={run="1y1c70a9v9zy8i58j19g5c8nc7f00zcdrdjmdcbm19r8vi2r09fr";doc="1r1rgd313fijmjqy468j25d55p76vxmcrgkp968riknych16y1pl";}; -pgf-spectra-66961={run="1zl4cmkd153yk99sm6cki1a0g5z1pfv5c1d8jskcxzrfxzzrd75b";doc="1iyny475v6h54crlfjm32lq37f2dg8mirgghs57cqrrcl2nv4qdg";}; -pgf-umlcd-63386={run="1qsnmhb0jdn5qnq81zx7gr1a1l93a3f2z12lfz9i2c0cqbjnpxl5";doc="1v2p1xq7y5a0mpd067ragvnw21hsvl9irwaszc6sdb9sqgqf2qh6";}; -pgf-umlsd-55342={run="0rs0iskzhmlgydk4i9idql66sk9dyiqrglp429b2sjaw0mbjyxvz";doc="0vl7wjrgnfz0y0pfp4izqi1528i81fssak85w1sl2n97lhyq8mkk";}; -pgfgantt-52662={run="18snhw1hvff64xq6jaq6wjdxcrkjwjv39hif31zj2r0ghsajqaqs";doc="1xhls9kyhf314rrmd8r3065qaffbm48mc746lwhsrh6vmq548baq";source="0hgjiy1gs8nx0211ar38qr3ql5yx32mcdvms0yibpglr2ncv4x39";}; -pgfkeysearch-69385={run="1map2bxnwlj2v6w4h36jfszz858a1zgdlamdjj0jc21xjsfsjvbk";doc="0h5zhzh4k0hbz9gnh6ygzsr8jm5lrhdx0qsm5z55xm18q7gp2ri7";}; -pgfkeyx-26093={run="0gh229dsrbxw6brfz5m2zz6x3zfsa03iqps5bgcr4bz0qfjl0a2s";doc="1cbldr5x9n649sk9dfcp143jrzxh6l4ibzndx4yr8f7id5nx3nag";}; -pgfmath-xfp-59268={run="1lfnqkws7gjjbzh0p5i0l94p1fjjsybwf7mzl5d7xzcap9db4x71";doc="07d6kybw6q6igfpn1cgjxdi3n5zz6ic2gazy71gb2mjqbzmhzp88";source="0jvy1qy47r0p3fx5329wqg4fnqlwlqsqs49j58qvz6k7l0n6i82g";}; -pgfmolbio-35152={run="1arhxgwpsw9ifj3yy36mv52r8843bm3v1lrda17r44zjf4fhimfk";doc="0kxp1gqd09q5h4ixjlfmda9jm25wd3s7dsxcqc32sw3qay4d84cp";source="0lxbszlky3q27cyzfnnvglmzim4lfjh14p62j43sj5w2arv9w3v7";}; -pgfmorepages-54770={run="0xarflkdk2xvfmmsafv1hhpdrfyddjxlqjjwps9yzzcwblpjnali";doc="1wsa6iqyrcjq7zyanjgaq6a1i5d7lm1bk9y07mz0bjwc2yv359zi";}; -pgfopts-56615={run="0g7a22d0ppdzcazrif8yjic19lvz143p6vwflz16p6zh88yhcdm7";doc="17q1mlaql7f510pz86n64sm4m97nii72jghf75qs5yr9h9lqrq6v";source="1mz5nzbhmbgzjkpkglz2w3s9s8kzrigg3wrd91dmdhjsm4d4kczi";}; -pgfornament-55326={run="0hvr6cbp4mzajmqz6fyd3x7qr9b2vlwdhkpc62axgm2sww8igp70";doc="0i1fncv9saflkvib43jp02mh94cv0nnq6k8psrf4l1yx95sdxnky";}; -pgfornament-han-68704={run="17ldl3a7gp2pi010hp1fh15haddjgni6f7bkgqyl1xk4yx0gjcck";doc="0v37qkx8j0ijgr22bya5m6ka0mvnymkyqsdg3q4bzhcfydspsvwy";}; -pgfplots-61719={run="1g3q8yr4i5h5jqj8w5yh1jix2ia37la59y0dcmrj5bnsr8zbmbx5";doc="0fd0azswmcghgpajgvxh82752j4mp5avslaicp2x7hjddh54j357";source="1h9js7l4vygn230svbmby09k966gkbgjxykk5vig45qdr7mqg3fr";}; -phaistos-18651={run="064gh7pwrsp37dxvjfiar9bl1i30a1kngirgywndss8xmrvqin9m";doc="01wd0636h2xs465rypc5q7saxhind14krmk9dp9rqc9129k7rc0q";source="0l6nmd3v9x3j8if5aryak2kh42zza0g73plwv6im6hpxkhhb21jf";}; -phfcc-60731={run="1w2la7mmj0a3sbd3k938bnq8fbl6sdy1w6bxmdfgiywj6wiib6ca";doc="1y4y0gx858gida7hnfngar6damk1gfvpzx70zbjsl2v7x6qkvkm1";source="0n7l6q9f2i4n6lc05ky9vgm0ms2hdwxwynfcqz216pshd1k0b2m5";}; -phfextendedabstract-60732={run="159s3ncwdb79chlffvp9awiyd9gx9sxacsa8596bgdq02i46q3ck";doc="1851hbjavdxlan8c480in5j4wyxrl4kmgqgc86f9xwd9k7f1gp3r";source="1psff7l4917izgx0id3ccl4fk0zb3s090db4a8dcm56lrrpxzq3d";}; -phffullpagefigure-41857={run="10vdd225whr0y166xbfc8qbm39vmw3ksvcjm7ylkafyp670ckc3a";doc="008q8mf85s4dfbjxbc0k9zpwazbvhbfcc0hqvn679v23kxgfphnx";source="1xwiygkhf3ggmgl21dsqmpq6238whn20wzhwn8znhh9sxwa58pyl";}; -phfnote-60733={run="101mhf3pwshakfnl298yl6fsyaa7xqw44j2g5z4vjvvvl53i7ksj";doc="1y5vnm9y3lxkl58gzhphscffzirxv608qg6bjk6xf82hz8835nac";source="1vjb4irvrh1nn4gc858zsbjybshr9ky7h1var6yr1ys2p7fdyy6c";}; -phfparen-41859={run="00is93n463f5iv4gxd18sc3w338h6a38xahrd1r5j8mv2d419wq2";doc="10ninpjl9ij19kw8y8pvbma34b1y462qdigpslid2g3gyagkrs8v";source="00bd1j7zn84d0lfkw08mc93q2ayg7j7bq9klcvvcd5m189spj30h";}; -phfqit-60734={run="1mabnz0dz0m098dxinlmx0whkw2ph2rbjc52iy1xj64aiik9v737";doc="0882ddy6cpg6ca1y6csxw19j7ipm482mfqlp2ldsiwpcgnzx8vkz";source="1ac8wpm1mmpwc50cyswv7hkkpi9b2fnhhjkzvsxx2arvdpz07k9w";}; -phfquotetext-41869={run="01na6w8kspl4i0i1s4cgnl4r5fdcybqxx7mzdd6mwbd24mh971a2";doc="091rcqssy0snh6m0z2pwpflfvvf7fsrriyb9lq0f5pnpqqhya8ds";source="07q96xkawcsiipr87nbwfawkcqmgch8h695gg8wlq091q2wrp452";}; -phfsvnwatermark-41870={run="1jmq6l0hb895bfqh2qycxpimwdgp44c64cyxs3vnfzxsb4ii4sz8";doc="0bcj2m5x107sswwg54zhyfdfdhxn14klnxkvb1hc56qi4wc4vkwy";source="1q2l9w8lll3i4bjna6csx4kdpai58i25gn1yn0z4p0pbzqvi08xp";}; -phfthm-60735={run="1hk4wxxw7l7snclkwikk0n90y6h8g1y05ikkz0dwpzxwswn9fjnd";doc="025hl2lz0avbrbv341cgvq5jar40vrgr2rsrp817mxrbwlc53qfn";source="0gajcnby3vwmgsgyginhi7fcjssayfc73mhg6mhhdkxi0n2gfnxi";}; -philex-36396={run="01m80gaawlxnga76rkqwwrg9bg0szyd3qi0d3zyvk1n41h6inijx";doc="12s81zvlsddzscvlwqm080y6iv1wm5vrffp9aqdlkpcf0fwlriva";}; -philokalia-45356={run="08z5hrp8a0551s0qfj02l79cpkdnsll5k60di132addymsl2p0lw";doc="0pgy5y3b6ramrkr8r7bvw5byviy50fprjsj4cj5h3l888inj8kkx";source="168r0ygbvwbwxlqvjqqma0q3w4172jpif1sr8p54h70crqx2310j";}; -philosophersimprint-56954={run="1cdnlyf9cf591bqp1dqdxl10i3im014vhxv77m8mviklayjyq1lw";doc="17j2zh4p8xhf619slqpm6bzycwd9zpr8qj066c4wm63la6fy7lyx";source="1zdcwyknfjxw3vmlipklrvfadw5ahh4i4ns95kyqs1x57c7wgamp";}; -phonenumbers-63774={run="11f7cnv7kh2pry242nxgq72kcjcaxg45714i5rg5w7q5nri4fkf6";doc="08hzmb5m515ri5l27gr0mi8i1kwz6sf5f1rzhdif433knyhfm34j";}; -phonetic-56468={run="1cd8x4qajx3896a1bzyhnrhkg8j73lffri0fzks5h8s27jlnl6al";doc="01hnb97dwbd7g4lflb9kz3w0vhnk5nzni31sfiqbg35lypa0pbwl";}; -phonrule-43963={run="0xv49vfvlfjad65gngbk5022vcdi0w86mzqk60nbz3i8npvncplf";doc="15bgpzfxjm22f4vqq9nbjhldvxzflrpayv51g383nr41j3k4m3xx";}; -photo-18739={run="0d9mkavi2x4wha1c9zi2fswv7vsi4hr0588gj82vwmwlrb6v8gsa";doc="0xnxkv1rkz4c7wh7dm8rna2g2zf9i97aaajlfqsr6ls1d9by4zn2";source="0vxja102ajrygarqfg0y7bmmhx2my66dlnfp7rsc4kldi1g2fs3j";}; -photobook-68313={run="19538cm7z4sw742y03ih5avr6bhxwnpymmppp8w8ah2p4ixrwqsx";doc="0bwb0mw20iz32cw6rcagpdc247n00pnql4nby8vrkjhbyj8l3hp2";}; -physconst-58727={run="0078ggfyyr2vh5ni05la8jaxnyxaz2jn0rlahwkw05ng1h5nwl0s";doc="0d10kzi278b6yf7dvm3j2nsks43jm6jfjql5jyv51l8bq5grkmr8";source="1qvhif2amxfqvwj6vd82f9mjgrk79crnz4sw5v19v02xzxv66fsj";}; -physics-28590={run="06nwz84201w9vky4s877fsiw4pk1kf6iq9yp1jcap7j57nb4l23j";doc="09zmpxkrrv9j2ip034vqwblazl4kyprvp24k0f2k0xgc4fja2pqn";}; -physics2-69369={run="17br2lisl7qyqvjsgyaa7c2fx3hvblj9cx27zfax7v32aly423af";doc="0lwn61jdpzljwlgy1yzllflziwqchq3fwanj6c2yy02rfyi0lxp9";source="1g1psidas3yjknj8nlhrvgjiy6b1b6z42d8260szq8wmmmybi13c";}; -physunits-58728={run="0fzx8c7sgd6incgwdbzyd3pb9dmdajb3qdfd3mj8sascilr0c2h4";doc="0ha1zp0lzx2q10m0wp492sf45pw5cfd98s9pnzn2wxx3k970agf8";source="00p7p4hh49i9xwnfd8y7nsgxajjcpdlxw1asyxb8q20x1w1wy2cs";}; -piano-21574={run="10gfxklfwf60p54wcbs4l1jpwasxvvbnkjhjpiygnk6mvzjx7dyl";doc="0czqrjlfx1i6k02aa1r1crvkw7k2fl17vzqzrkc97msprrymxwgk";}; -picinpar-65097={run="162119bh7hx30742k0f6ygaa0w9hssl2nmp63rmvdnpjlazfiizp";doc="11v1aynkvc6m7484h2pmcm24405v5pdgkvmjg4jabgfkz5q71g7h";}; -pict2e-56504={run="02rhm6a26vgpscasrbz25vjimlnkh9s18pq6a9025k65iwp5f08z";doc="15k5w2l4c9mxay416bgj745g45pqyaw749mn69dchg2pqh77yz1j";source="007yb70j4ay0qdls8kqb4wxf1g3672yasjjlqc10zsywc005f0nw";}; -pictex-59551={run="0yz4dfnmakv78bc7rlabh8582knr131mrx0rxjai640bdax8as2a";doc="037ljjsnmllkxgp800dj1k9pvabwg4gjsqci84jdmayjcwsjibl1";}; -pictex2-15878={run="1qqf08yharknq6csk01jdff62mg011bryqlq5mbmjwqwh7wxs0wy";}; -pictexsum-24965={doc="00yd0945qiss5jizkxncg8a9bdsld7mkhaipi92bbn1ghqicsw5a";}; -pictochrono-69865={run="136apjhvd031j0a1jaxwkdm6lhg4vi173wgcdkd61phahc4xzss1";doc="0sybhyczmjjhi47fxqz88y98qq7w8nibxij6ai6k3wzkhg9iy9hp";}; -picture-54867={run="1i2775x39n5vxspy555rwn86384yyapl70kcfir96prp1846rfjd";doc="09gid4bb2wbmaqday94qj4r44cpk57rxpzg6grdcjg4y1dkjph0b";source="150wv3jb6hspwhkjnbxff5izskvqfvhvqxbw773qikjjxsaidqgb";}; -piechartmp-19440={run="1sl8mz26cglbsqmpd8qz0l9yycxgcimi0yhkgnc04n2iik1xc6b3";doc="0g8sh91ki495mqv7zxxz2q40bk9dl150a9hi7yv0kbpiy45h3af4";}; -piff-21894={run="1q0xdl6ip1706wxprpd85vycyksbnn1ws091gvmpdhn6as4fxg9i";doc="1sa2l82yndb9pl8bfmnna20ackv9rxp7y6ljjyix3bpksqp20rwq";}; -pigpen-69687={run="1mij57v2cfj9v1mfhxlpb857ipydzffbdbzfw00qmh6iqc36cfn3";doc="0db3m9vv02d261kinx2hj70cqw7gpywr662amrmxznhhq3990wwk";}; -pinlabel-24769={run="0dlg15b6cjykp481xn03kg3p1zqwccwnm2la710xdwf87p1k4bp6";doc="0jw94fl3awpyla0flmw9f72j3ssrqh1scfrbx34mxlbmnl4z3pfc";}; -pinoutikz-55966={run="1kj24i32ql4jfhzfxyrcj0nmyyhf4ipic7zdzcz71za6njqv3gql";doc="15farzmd27gp8ms5vck6xcjs0cx7rp47nww0shs6r0b0l99946m1";}; -pitex-24731={run="1g91l1z71481hlwz8vmdac0g4vm5d6940gy1ly44qny626k9j079";doc="070qn9b6bq4szqa9wqfmb3qbfxcgif79dzbb3qqhvs7fh9bivqdv";}; -piton-70446={run="09dcrv4ss2zw3vnpqrpbx5v6gizw0zg05qbc6f1rk4l0vk5m5zad";doc="1gaxv75wbv8j1nxpg2gp30gnzk6vp7226nchs7hi1686xqngaa0v";source="1nf5lq7mcycj3nqc1bxbfc3gsk95f0k6xnyh4dsxma1kx3y2s0c6";}; -pittetd-15878={run="1s8865g4fv04ha7vls9frkkmx8dyn0l7z1rqvh3dkyy7fdgq4vff";doc="1jkdny3kqljfjnf9ywpz7xqvfka8kwi33jy3z2yiq1fvp8k60ar5";source="07k0ilmwkg3wvgfpqyqc60hn5mlsj8z5lsx8mq8h3igwm4j8krzi";}; -pixelart-66012={run="0d41qzn2gsqbgvgaxk9a7cj5r285ayn8amplzv57j5c5azyi6qlz";doc="05mcmy25mdl42wfdd3l64bkkxrvmcj6lw9zb9jypaf2rrdfnpq6l";}; -pixelarttikz-68520={run="1zn0cpmmdfvydizw1q9lhxdj185gyq2hpzl6rpjfxvx5wsm9piag";doc="1p5aa3mjv4g5qa3vi988v583d8h6237lq9bncnjaa5c1sd1l727l";}; -pkfix-26032={run="1sgss755cf1zrpv3x74x5qnqc6w81cvr1x0w7875ijh4c1xxkn9v";doc="0bxijxbbj9v4c5p1rg4gkqnm75rq516vxln6s6174ph7abqrhvys";}; -pkfix-helper-56061={run="0hf9hnjw7ws0mx9w5s6ik17zlq27fyc3p9bgya1wxbh8lcvrygn2";doc="0fh59nzzl58fgpkkfzvi603sfsfnqrj8s39k4nn97567gpv4a22a";}; -pkgloader-47486={run="1vmpxv6x2dq9b4ddj3xxqzkxz213bvz7qn24jlx04svdrq0cnpjn";doc="064qsri65nyy25sz8y9avpxyg3rzcspjr1cfc5jp0vfd07905zix";}; -pkuthss-70496={run="06xj3isz2c7pgw4czi5yj8i1v8ydwwvfwrrszvdfd9wrcpkds7qs";doc="07k7xssd23as7ck2068wv7gxcrvijq459fr5sya8g040pv65cq1k";}; -pl-58661={run="1j2a3vz3wabv3ai0k9xvf8brwljr5r2bi57nk0bba476vkvxbrbd";doc="08qkn286bx6akfrxrlbj52xylbvv00bvmmpin1sbpy342ij57lrq";}; -placeat-45145={run="0vmvw0k1s023siwsrl4hr32wyla5xmkvz449p7vlfv1n63383c1g";doc="0j9xm75xv0lqkqzm4g8aqxy6cs8vxydmm50vsjj4g4aah7n8jygk";source="0118s2p8vfam65fwynf3vabqj4kz0kkw9kbq49k7akwwj1wpyd7f";}; -placeins-19848={run="1mlx2wlm5j7qhhz8q1fvxd4zvjmjpzhk2aajql3wqvamrawba6k4";doc="0libqvl13md069fjbx3gl17fyzpn6v4jk4vk5086szbi93dr692m";}; -placeins-plain-15878={run="1lhc72zdm2cjynx6lf6kafmf00nw17z3mnfhagh41h76cnm338g9";}; -plain-57963={run="1mn5cfiaj7wrjij4y0g2mipc6v8dk7l7nc25s1gmgvvyfqwd3byv";}; -plain-doc-28424={doc="062d6hg4npy57307avvyd2sdxnmyrh5ia2rdb17p6cx555k8zxwq";}; -plainpkg-27765={run="0dq20a8nyyyy1342s8sc1z1i1gdfz49dmv2w9fl5dbnligzxgdfl";doc="145249b9w3jpf9swgc4293r05p7r5ylmxvx1a5qlv3fgni945vms";source="040m08y54xr4966f8b6z38spdhjh197l56am3wpza5qff4nbcj6a";}; -plainyr-52783={run="09py8psdqqnxmq2nkczxz092668zscvf9hbr6fcvrnj0blvz3wxy";}; -plantslabels-29803={run="16hzr9zavc26mqddsq4yzb2y60r2lh1yjlna1qyaxqrq7fr76g1z";doc="0pvy9gaarrwr4f0bzdhj3xgisfmpd73rfcv9mlw87k3l9y2vly0f";}; -plantuml-67097={run="00n393r717v82g1g70qs1b5isw4x5bwvlmajy1ahqrapwxrh7jfx";doc="00gihdh9lvs2y95imsmsjx4qqmqr9maavbvv974s2k82bg24bkkl";}; -plari-15878={run="0jybi5dvl6ksjpgfqfrdnx5q25gl5xgqhwax4dk1shf6rbafkgyg";doc="1js29imppwx2jny1hcvjbkz7cc9qrafgniy9qd11bvjyp3n1vly8";source="0br0vm2ncrdyqgazdr2p1kvgl6lq124b8h82245jc8yz7mnrz2nw";}; -plates-15878={run="1238w5267spw6liidzxd550hjdjxsg3d1231l9vf5fmcifllsnmg";doc="0w1jn22gd938zqifhbiikgggbly2fjhiwjdh2jq66yax7p76pjc3";}; -platex-67315={run="1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk";doc="055pc891zbkjxdzl1wbkxrxs3flw79zms9ghnqjz2jhw6axh2khn";source="1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab";}; -platex-tools-66185={run="1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p";doc="0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj";}; -platexcheat-49557={doc="04hvm19x4z7vq2md3p3r2wwa7iqkgkxnvvj1xx3s9145m6fjib5a";}; -plautopatch-64072={run="16m2dsqws4z0i04wfman4m7d5p9y5dij8rl6bs0vphq4n0hcqhh1";doc="04npb7xbhibvjjxh32m1g2c0r3q5j5jhjgc7hn1nyzj2hzz415sr";}; -play-15878={run="0gs6iibb9jkmynhvwldwrh8rvalayv8vk8ziyx9qyqsdsgh53bz1";doc="1dvi29x0fdnb83bkqfsv6l2jp9rvvnqpf1paznx9pli8gvgwa1rz";source="0nlyi6ra8v3pgk5lhhvar848mcd5zqbnc6mbqnbxsj409jczd0rw";}; -playcards-67342={run="1bqk76g9mg86rkhjl12g41dph95zrdby9pddp7lac6bjwvyjg6rg";doc="0m9yvn6bxz3w6l0vfn9ycllj50az3631v5xabk3cjrnlhdq97qcz";}; -playfair-64857={run="1yy8c8aks9c37a18ynilrag254ffcx8fj1xydsi1a58gnifmhi0f";doc="18axmajlbgll8cdjw7v13n0rq9dsbpnm4sa13mf46dq4fhy1i8s0";}; -plex-69154={run="0q8x2358prmrlh3zyqymiyq7i2rpzdhv2gw7zvnzjzx7s3kwdjq5";doc="1bpj5qh46d4n6ymfx500p44vj0qn5bqkz8379x3pn5dcy7ia8kja";}; -plex-otf-68238={run="1vzscj27j18km0cjjbfjnls4ylr1b067cynxi71f7wv99s29fw0b";doc="1nyhqvwax36xkcvwd68yb7y5mlainwdw0czyyvl2yd0f0r7m15g0";}; -plimsoll-56605={run="0x39p7fhfyxnz95g44ci8xdiwiq0w2n7z3vq2vm26l9ia9q9m6d6";doc="0rjjk5l0zvqmj32m1xcyrawzzllbs11bzb4i4cvzmnakzlwkwcrr";source="1b703r0ssg8q021z9dc8n7p1w7hk5b548icc269gjrpad622acmk";}; -plipsum-30353={run="1byjqmx68gb2xcb4nw429z7wnagv5l0pi3v13dlwp57sgfkxrz0j";doc="0gmq7rc2r3r50b7w5kqglaqmrqnxv6wav8gz09a2skkir6v1mpgl";}; -plnfss-15878={run="0l4kjidsxzp14ii850m23q3yz1z8my9svqrpd5hi6v7qnv73vdnw";doc="0iw938rnvcfly3z5v5gikd3svx4mxwfhw0gsyv26m37l5slqvf1w";}; -plstmary-31088={run="0cda8irxd0gxa18x47v6d1wiwwwh6w30fl9ipxdz112h67l342k0";doc="02ql0pxjkp5a803f9ayvr9splfchzk6yhzjfrmh2nxzwgczy9s50";}; -plweb-15878={run="0yimmz965gsb0ddvq3ck28x73p9fn08c42f4331088130l43dkx5";doc="0ad3z41r1a3wkwr7lr9hf7n4bcas10fdjky7f9ykam0244r5q4pw";source="1zpnyzxf125qqz6j3m2182yn71nkrlaan1qfwl98v020iia6vyv1";}; -pm-isomath-60368={run="0kl56njrcs2qklkr49bnkx17qd8csa5bcanc4ypxxv883895qg66";doc="0glkk1l2gkqzkjg4vwi9qd3yfv3xsm4ssi03jizy9dxrxbgl60z7";source="1ly3bh0b1xl5wf3gxvzrwwg2kglvqmaj3mb7alq5x8q2wn1sxyrz";}; -pmboxdraw-53046={run="0a1mp38f2562yq3nzv39ffwhnzwpamy74pvqnigg7hv2v7blkijh";doc="07f1n2wpfqrd62agh0ddw67fnl5qczw16640h3v5x7yw31dx4n29";source="0mqg8xkhqy18m2sbp2i2sv58n2hxf05qr215kbmh0b53lbp16pzc";}; -pmdraw-69366={run="0mxjnrrbmwy6bs8jnm6zk568kx07shz4m3zccp7ppxcrr4b0y3fy";doc="01cxqlfnbqzn6cd3jcm01bxnmas86lpipcihaxk13w0zwaqvyxzw";}; -pmgraph-15878={run="0mrvf2r4bv4qa9pzv90ardy5ncq2kgy3y89pgr1acsm5cspgryr5";doc="1pizlqyb0n20apwb6rvh6yfncyxnh6vfhnvc10il9j4894rii6mw";}; -pmhanguljamo-66361={run="0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf";doc="0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz";}; -pmx-65926={run="0brg4xinn6sg8c9jvh3cvznqhlg0l8hfqv5whsh3yaajc5pn40rc";doc="0pd78a36zwhbn7054fgknpa56jli5hqssbhz0qh8fmqxn6kvs8r7";}; -pmxchords-39249={run="0yv1c0s3zjy5w65cpv9gmdr13wkfg04jc0g7b1f0mh8ychhdab1a";doc="0n6g5f4szxsr6zqqp2czi29m1dncfgib1pd90mbrjprvwh0filf2";}; -pnas2009-16287={run="0yl475rlfhlnd9d0pyzm1gj2gixrdzyn6858j1ndvkhr8vc055ns";}; -poemscol-56082={run="1k1vq2hki8jq70d0lmw9sbzwhp7mi5sx735wkrz9046xd0qmhq7w";doc="1cdbv1ls20p764vkllgw710fm4v8nbkw8ryw2546lqa21v9ki4sx";source="1l6zsi6x6akb4z37iyllg99schd90bny8r3pz8vddqjyacnf1j7q";}; -poetry-53129={run="1z36zzm75zidsb8zixmsdgngvg1gyasxdz4lcw4ikdwvjmswqzqr";doc="03cal4780m1r6i1g86d2gil5h6n0h8dkiv8phfjcp890y9vdw2y3";source="0y93c9fvjhfs70qvnk9ff7hwq7zyq8hw8h65bwgr3f26b6skfxyj";}; -poetrytex-68353={run="06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz";doc="07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w";source="02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd";}; -poiretone-64856={run="0dc8ll3xk7yrf3irrgl5bh4dwvi6mvgp3iqvzfi26jv12m3fwr8f";doc="0l1ndiwxpva5r7zdgcmn4hghi31w2v6vd0bvmvmywhx82ra8spsx";}; -polexpr-63337={run="1dml5b7zb2w4cawqgvqld63wlny45vnz7p8y2pc7b5h86p51a0cr";doc="198dhv2wlclrs5sqdiqk26llyhjk4l4zr0hlcr1cw56dnhdh2j75";}; -polski-60322={run="0y66zqxb87i8wymryd19hjws7y9snks73030r287lbifb77kyx4c";doc="169z3y419d3afhmhk22d0h045pysdrkhyvsgrs951ah3vgf8n5cv";source="1m8pysaiynxb64n81b8zj3cly6g81w2fa1nrknqnxm27bjzn2jrf";}; -poltawski-67718={run="018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn";doc="1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc";}; -polyglossia-70496={run="0rwdpn2q7h2kcdnal03zj2km1rw5pvj08qvw90y27m3ps1bj6w0h";doc="0wycqg4g2xyakabgsd5a44p693g96r551nrzfb1v49m9hb9qswji";source="03s1is2254s34xipffbriiyd6gfwwqib83msbrwj5z95vv3ibazj";}; -polyhedra-68770={run="034zv3j4ga0xqkqn504fdwrcbzjh63v8zzfchjwcsbb2qn1x2rix";doc="1a01r85nliax7zll3qz212pkz2yix2xzh15hlbpqgqslh564fkxr";}; -polynom-44832={run="0vn9k3vci15lq0f6r2354ag4bs55jcq6571wvz3k4daym5ka57s1";doc="1cxsw0b5vxy191xy5clf15hb2cpyyqj5ipvgcw9n0hm8ka3g9l1i";source="0qh4w6q9qch3r41ps38yzlv850wcqvf6b0b6vqirk9lq978k387i";}; -polynomial-15878={run="10w1vq7101hnp2ifaa0j9mfccg9y4s3cyms4m63sx54lbpj6rc1r";doc="1vn0i77hzr72xkj6ka4r8n0g0nbz382z729v269x6p5j9qqmiz21";source="0hsb8yyk6ssih7fpc6qiwaf40cwn8xx4jgwqgpmfgkc0x1qkpri2";}; -polytable-55837={run="02gsan2wakxsw1niq6l82ag2rkkasi1nclf5yad2kl6c5654gp47";doc="03k3qz08bfqjyw4ymmibabbaciqz3srd2hll9np7xdphjhf4d2i2";source="1sh5wsb5i1f60sqdych0b3zjcli2h4g46znb0q6n68r4ma7xqixm";}; -poormanlog-63400={run="134qh7xsn7yxa9zx98gpd2hqx3lkd6sqc4rzcandvzi6prsjkip8";doc="0gsd83g26cafmd2alc2acqxcd79zyxkmpyiq2bw3qsasndkyfrl5";}; -postage-55920={run="10s3lcypskq2qmlyqcgldkg4i4a4qbbqn27v6cr6h3j4z93zir3x";doc="1zy7hrrwmdlr3vib8i8vliznri4p8dhfgkz0fx5qgc3ji15ks095";source="0h89r91diqwc1z9wzvbsynazv5k9spg2rfvg39kzb83lipxiqwjf";}; -postcards-21641={run="1glfwj94drccwmmsx6icc9vyzq7w8kvq6flkkbg1bp0rrkjf448j";doc="0cvhgz34mplpjzzdpy2bxblmz6qxxlshadj8in810g3y22v39khl";}; -poster-mac-18305={run="1b1zq9ay8fxqn9593f8n10zlkirw2b0piic71b9fx6s9a7x82w7a";doc="0wc0194ixbrl722a0djm704fmbf49p7vxk5fyv6d3gyznja54fxz";}; -postit-67344={run="032zhdciqwyfng7ll8bpnyl0wndwpm3q4alh7qmsgj978ga97q4s";doc="13j5ygc86v2nkcv5g18j4nacpckciyr641qknpb9mw3i4k39rly4";}; -postnotes-69102={run="0m9izldvlngj81c6nx9ig5civvvxkf9mh3cjj8xh0r70pf3i35yq";doc="1qs6z2rj9k9dmz14r0g1n2iz7hfssr5ysvk7k33y35c6pwc3vvx0";source="137f66097fqzqbzwfwzyqgmdax8z2a835y8ixrna1490zvakbriv";}; -powerdot-59272={run="18ii2qxz7c0wal5xqddyzd2j933lg4z7xglxsxn3vgp8ffq5kr3n";doc="0zpwjmvlckp46ycdldf049s7qvgbpx8cx5zlvzh81qhgdlgximhl";source="1v7pxr134kndndk542f7bs34c5kj85xy0cwvwlhnav89ff2mh5hg";}; -powerdot-fuberlin-52922={run="1gx04y9ysvwzghy38k6izhs9gm1hzssnb5zh8qjjh8v99mk6cqwa";doc="03ci0lcgw777kfmnzas13q75n03z8v2im1wzrd8hpbcwq18mmn2v";}; -powerdot-tuliplab-47963={run="08f25qa5fdacsd8i0bs8y0p3k0zjgja0qp4ak0x3bixz7yivg5nx";doc="04b546i32k1cs6armmnvr8aqbfvs0ysarlsjmsci9xdrz3clm5w5";}; -ppmcheckpdf-69527={run="04xr6c4niy53s63d7dw7fvd00j9i6k0fjfg19knai2l9bnqji5nf";doc="0l0q4qswcijs94pk8qgb74b96df1l8l980bvrrqhp8d071b19xdw";}; -ppr-prv-15878={run="05xs41xfm5hjpx9dzrngaj824rr8cpwcpvzxsyp1xpzlsv3gk1m4";doc="0rfrxzfm34kn4sgj1dzvdyjx7s7nkyjc785j7pgb609svld6jvyk";source="0miijdgcsn709kpp0zjyqxyxfgk0f798v748brmqshb6mfxbryzn";}; -ppt-slides-69568={run="1zbfmwmzq53dm8pr8kzhhgrx0i83s67vgkyb2krlssjsrmycyrjw";doc="058pg4005wb84iv6rr3pjyqfrabl29110rkq8vgq42dqcyr66c99";source="04b7ysvrxyg5x7m7x87gw6fn06h582xqk6gab69mwn24za9286ay";}; -pracjourn-61719={run="1idcncspb2dcmrfsr8bf1ar413mc51lliq9xgpv0ybsiv91yd4lj";doc="1hks8p9vksn88daqyn7rnsaza4i05dgfb3ngd5yrvvw0v40s3acj";source="1jbicfqvvyi4nnmpqafzlzlx459v5cyv62wmq67c2692am8a04v8";}; -practicalreports-52312={run="0rv5rsba1xdwcv89fl640yyqqk8c8vf2w647yqz8xawm358la42n";doc="1a7p22pkmb365haizgg3ainxlr2626mg6p9962cy0933hb59llcv";}; -precattl-63967={run="1lq5f5fx93a79q144980balnmnkvcn92gi85df14iyj96c1zpiij";doc="12gmnd4fafkgrffh9smd8grv2bsq1dajajh3s6rqnf2l8xr1wqkx";}; -prelim2e-57000={run="0fws0ssw09yzmzlvkz4sl571yi6yvynnr91s76vsfxk9xrzvkb98";doc="0madkchnll3aymjfk002ika9awnxqwglwa30mrvbdd3rvghqnm53";source="1bbcnrlhvqldvacxms4jclk5khh618wqkkyyib1fz2c93maxmz6g";}; -preprint-30447={run="0qs03jsxjp1cl48lxnvzh7p3pnpxfv8143979pknr06r24g25csd";doc="0zkaw9x3ziwddsv03acbmc02isp74ikpdva2azzsl1nzk0c3qs3d";source="0y0mk3118yrm95bn22hdwn9qay3j7j1ijkr30hpysf9l11z5ck2c";}; -prerex-54512={run="0nri97arzym6z3pjzidlr6svyk1dpr4yrlgqzh2jcsrqhwliifwl";doc="1wcf96nc4zvmydn9d628s9bffq3lnhnllci0v9pci03cs5p1zscz";}; -present-50048={run="0irxkzfg19h5pn0drgl5dlpz34j1p5jpyii05b2xjz4810gnl79h";doc="0c7pmcjhc3p4ilx3fr6pxc4708kl7iw1lds5ngh8mlrwz0hhsd96";}; -pressrelease-35147={run="0hrx80i1nfwyhhda415v67qxkgj6fqbg4bicirdn749bwc0anhar";doc="05spvrh6dfq16z9jlswzqrwnscnywp482cv3bhak4vavbxs8bf35";source="1c7nhvaxs4xlycsx2n6bkyy6rhnzc9ddcnw6cccpgilds546ns4v";}; -prettyref-15878={run="0akbp6wsxn4swk0kwxw27x3lpf5anwk49bb8pvssaj4xy68hyq1h";doc="1wmvvsz7y0idwfki553qkfhg8j7k5h79nlhmaz6ln448x8gym8y8";source="1w9qckaw403a8nyqyx8qyqdn3zfkxzgfzj1hdw5vwi2805bbfy1f";}; -prettytok-66884={run="09lrfza86v4haac2h4pg68vqjdx60h79f3p7my59mwdk67sgbxwj";doc="0n6w3d8fbm7pidh7iga8vmlvx8qvql90k14hahy4q0i2b8dpg2bv";}; -preview-69470={run="026s7kb0adrr1nf6lvy5l511xb47j51pf1vgpm7gvn4sk9hnm3fs";doc="1hcvagf9gv18695d3pxh4a3dyb7ykv2ib7jaicmvr9whzvhlqx46";source="0fhn4fprb3w34kvbwymxdjj8arqchalg90idzzgarika4mlpxa4h";}; -prftree-54080={run="1sdb56cvlfrys3f884hg6qpv1nwd6ywfyiq8168bs78g4q2ah4by";doc="137f5nbcm6p428an3v20j5cx5djvdri12ph07czj13877pjy9ccf";}; -principia-66625={run="17vkriwbkwjb2ksxbv9glz11i3dczj8hh4a4mfb3signj2dwyaf8";doc="1d7fbkmjbi6ym7kik631219fa4c1cs80k7f3kzzzsrwkmnhrq6qv";}; -printlen-19847={run="1h6q95dvpldmrfbpdv9v19p34iwq3jzz7vs0z7b6fnijyybjxnpm";doc="08p9zwkgjpkh7ip3i54qjdazgnwq79v15hvz4j4y2dvh294nmrgn";}; -proba-15878={run="15d8n2ik6m5sc4vlp3k2w3h5h8h5s4agijgcnlkmklw3qv172vii";doc="1m2mbbn1fa616dfxkb7x8azqsvczyifygjmbblsyfkd5kl6f8dwp";source="0wbnfa1i6vbpbq2a4yhsvpyifiw1pirz72qasxm1nwmgfg5dndx7";}; -probsoln-44783={run="15zsh16v5rs0baqvy9jwn59d95qj6glvc5h054ldb8sy5nwkl3sk";doc="1l5mq047bpdg21mjdjwfs6ghdh1cb19bf9y5939nlw1wyy1flcfk";source="1lzai2ynjnfinf38jdqb0bdccrh58jbhnwnpm9ikskxpzy7v262d";}; -prociagssymp-63242={run="1vs5xs701gkm4zl6x1qkzbqssffdhg4i3cabqx3s8hp07nw8h7fb";doc="009kqv5n4m5ci39bck5s3h5kwcim5dfjpa6y0xad46syj9mgjgvq";}; -prodint-21893={run="06s9qbfy0rkfby9ff3dylykl81yb3fxpwxrwa8hn1aa2gd9bj2n9";doc="0z8ibz668zjjjypcn0kiy488wzgwzxqackz5z996r3sq5x5zzgh5";}; -productbox-20886={run="1idarj7sxqkqzlnwaqv9f192r228fclilz01fjy444ly765k0cbk";doc="1pzba2ymna70gflrnw6hs35dgkv17qfjs8gh4g6van44wjykhfvg";source="1fnqp2sx0wmyd9130j5zbqw2dk1nkajp4qs46qm47b90wga8pkkj";}; -profcollege-69539={run="0xkbjg54jkxplz5jgrhs2vdxb6rn9idwzzknjw4wgf0ps5c8b4zh";doc="0h52b9p6gag9ss7h9jr8c0b0hjym7jlan1n28s10lhhf3l6rdpwz";}; -proflabo-63147={run="0rj7x6s9afn5yid3pqd2vz9qn21z6n6m5cahq92ygn1ix5xbw3dg";doc="0z56g41bw3lwi32z0imja6a4nls406ck3ic4pibyi5ajcb8317w4";}; -proflycee-70513={run="0qcl9dh1433kgkamvr08mdxpfzs56jbppll784fyzhlpfbbqay1v";doc="10vyp8jqi7mwmvk71x3jnkl9nrxajip9cmsqb62v56ry00jy8cc1";}; -profmaquette-70496={run="0jz4cpln3lh5mv23igg9rk837kd53ms7s7mvy4m51y35hal27dmv";doc="1kpjw4vm8wlq2d35wfy3cs08gvhadgl2lxq6z4qhwzkpdp24dar9";}; -profsio-70211={run="1gqjdmsigddwmv3vfafabxqfnbcb437q9glsy6fa6a5f7kmia060";doc="1wyw0lvpggp0ryhzvi3z7ygjlfpb0kp0fi92yfq8ww6sjjr06x3a";}; -program-44214={run="0ay2z8ga10zr5p453ss0w5qqqyknsgqd2hifa7lq0gih4rml14pa";doc="102c9fir3hn0m7y3lkj9j0vwf0srbv6inq87lcxwfkvc7yw0rr2m";}; -progress-19519={run="0wgkyvyf24666kg79h7wq1piq6yq2nkw6k5g0ydk3y4gwzzkfhlz";doc="0r303dr6yf1r5kk38c1njjra7vgvp9qrblxj7zd8fw1vlq2sc7fg";}; -progressbar-33822={run="1d0d6dy9ssiij19s259d2ns2k5v2ccc45anhz1qm7iqli12ij0m3";doc="0bxsgvql8hqv4qw1pv18vdxcshphdpbb29mqp3pbbsd4crp4qb5z";}; -projlib-70327={run="0ld45nn6sal1fyrfdahadvsb3jyrb5ylglva3rh5fcxr6fl1ywih";doc="1l2dbwqhpc18nq8xkwg5f8l9mcg59f9isvqd53kx3avr903wggf7";source="1667xlm00573al2aqrfmfhlksw4hvdcfzr5qa0mz17ci5fcy47rm";}; -proof-at-the-end-69602={run="0nxba2ck41yhjl5cfjhjj34l5srkh1y47h0byx61wqzphdr2y9zg";doc="0k1zfg59sdknh6az19821n5qvpcxvlr1wr4qz0wrghah8h6zjggg";source="0y5r6vzzvi7my8qs90kg8pvb267z6ly3nf4ski14yxa2fgr6ab1l";}; -proofread-61719={run="0gnn7zkzrszglcqcwz8c4i13apildg7s93rkp1z3h5m2gr9w9v42";doc="05g3k77vczdqk19gigs9b6w8rccvcr0d382ysqn0yg6cgd70bi43";source="1mggrm4cfji364ylra3ffdhwbx6phcxwfzw2mwls00msk7jdzpsg";}; -prooftrees-67399={run="0sk49q7vavqlcn6rgpzzjjwldss4rlqkvds78jyfm79ky9vdgiz0";doc="0jajcbq3mv8lmixygc7i4nhwiywq5qp9w8hbiqxi16kpqql37n52";}; -properties-15878={run="1pxl101mc318ivzszyycwb79rqghx4x8xr9fvq216ambs7gq4sji";doc="1arkdafwmhg0hm11as4mb75pjz2mnah1l5msy5xnlk4asbwfc4sb";}; -proposal-40538={run="1y5i7xl1z706fcv82s5dyx1ksfvp9dq2m0shwy3an2r94qszcwmg";doc="1haa55hhz11j9m3lxp84yzlpyalrc3hlb7wxvmngqhn2j2mi0b3c";source="1n3z0rvhnc76grih3jy5h5ax7rffxjwmafd92fnp10jinr9riapx";}; -prosper-33033={run="1vsjb2r4xnlwwdjbnkpvl42c86rkzs2imsq762n2w6x41i591ics";doc="1f5w1vb4d7z990mz6iicjakqhszcwirphwv966c66j2jc3yvalfn";}; -protex-41633={run="0i3dvmvyxfwjrp6fy5bl1kx2c9vapj19vs97jg3rkfrkdbk0mhdc";doc="0wpkhhp2asi3761nvl5gp53j3vr4iakfy4rhciv5l1z4gw7d4j29";}; -protocol-25562={run="0kv4ndgdfmwah88sspp4maca6z1l39fg41bf803kapp34nfxqggr";doc="0mz77awxgv9jk97xnl16rs34b1zdqldfi3m2qgdi9y3synrn25x7";source="0q0vxm79xpxkgr7yf12mqkpj69b75smyr9kl5jw2c1j1wqxzxh16";}; -prtec-51919={run="09izjx2g6gyckmgzrvg9bzlwz1yvwr0nc40s6wsbb898wa6cswxx";doc="1cv2knhl8xrsyzcywypr6dqgdxqss0r9mxl6wv4clpzpsyvmfzbg";}; -przechlewski-book-23552={run="0qn5agid0s57a8bdlha8y9m99xpcvlqknq473r6995qkdsrrdxl6";doc="1bp9yqs9y28nbzwb183yf8h5862pm3iw1jsi8c6qzhsrcwr2b2jn";}; -ps2eps-62856={run="08zr0qc8p22wr40vgwd9idp75x6cwbb3acnqcqafh73a66vdvbzn";doc="1jmygd0cbja55sdfynfqr73f54lg3vkmc9hylyw0zj1sdw20wmz5";}; -ps2pk-66186={doc="14xq9x5rf15ibzr41cm5rm4v3rpmj50rfsqp4zzvyhmpmyw4dsx3";}; -psbao-55013={run="0il4qhmc00ny1syfhid0mvmcz42sqp58zi8gf5hm6p3dsf5jy0z9";doc="0zrmprbhrbj3m0q0swlnk581ka3mws13dsha60izi7bfqxc6crqc";}; -pseudo-66638={run="0h59v2akfr00vax3hr90ph8p7znbi0n0lnzl99f65pg3k46xpgg6";doc="165i1gg6pfg1bcwxqlg2nx2crn8vblnqm0zxb9kl6jd820wjd9ix";}; -pseudocode-54080={run="0x2p2bq7cqajrn8s03dgikxg2nb94hk7mzmi7l911xdgdprlg6qb";doc="1qzvdp0qmmlljahg6hqn7c67sszvjvp3v8zvg7nwam58by39l3k1";}; -psfrag-15878={run="0m5dlnjf7gmikg4nyxzzfz999gphkg41qm2sksq9ly2rspbdcs8s";doc="135c7sr4i8617vwr4nnz8vcy5qv8icr0r0cmqsj6r1hpkm67zqhk";source="0d68rzpxax5n0da8sg1nh50li7rc0m7syz0kvpsgzqbdp1clbcjn";}; -psfrag-italian-15878={doc="0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf";}; -psfragx-26243={run="1kb769ai57d7zg3bp0r0mspz0a2l87qiyg04a87iqk7vxrwv0bd7";doc="110n7a7jgfmzps5ng4gibxigmm3dpkqlz6jpbnphrw1pnlskwjsv";source="180yrq0rnsb9cd8j70jym06k543q211fzzswzg0dq8fzn3hk2wwh";}; -psgo-15878={run="18h614dasdg19jnwwl5swih2dxp4wis66fkscq8jjmpvjnckpck2";doc="0naza2kxcgm9wdcyibs36qnwwgwpsbj2m9qkk3l9d54kml3wiznp";}; -psizzl-69742={run="0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8";doc="03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v";source="1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a";}; -pslatex-67469={run="1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp";source="11gykawqw4fi453s1bp2r0pfm0az2k8gr3rcrygzfqqzgrhxvi8f";}; -psnfss-54694={run="0ng5pkk6m2l8yqd58wggbakbs4hp4400r4ihyi9akf8j4kmq2s5y";doc="0vfv9x1qsivwi6c6hi23vw0jcjz9dclx0vxnifslyzlrh7592dzc";source="0cqpzra8jwdn9d6w4mhmfrfw2zia2nbpyxjfrcz8m1disd10lhsf";}; -pspicture-15878={run="0i41lg0nw9xya0gfiwjd3xgbk0w723g90gnsvnfg764s2dl371b8";doc="1p27zx0svlcm4p12xjq35g2lgj1j485c3x363gciqb4aswmlsl65";source="1f8lhyhfcywn5y78354r37bgalyq57bm1fill5vzny3l7cyqxxn4";}; -pst-2dplot-15878={run="00y967mflrd0y38mqyv8r7h489jrl38rgaiq871wf9k3cbmf0f1g";doc="0j1c2kxc63nf33gi1f146pa6hw7fm5x9h4yc30dqg8hsd2v0bni6";}; -pst-3d-17257={run="0mh6xbrvwxx7nxp4yqm71hhpqjb41g4kinxkj2vmspw9wrwclbj4";doc="1dp9l6vwhb306j998hydb07c6ig10ibn7h0wwiaisgabn0s69xqh";source="0m9lvgmjzzc2lmp63vnly30j9886qabgbhqwpbbyl035cy6k684n";}; -pst-3dplot-68727={run="0pdzz4gqvq0h0d13f6464ldz78x4gzn24bxb76lcjj73xpjsxir4";doc="0agrpqkm3zs497b4rrday4cbxy0l1l3rqpiindx7v57fzqh0i34w";}; -pst-abspos-15878={run="0pjh72cjpim4v0ri92b7nbjdmilpfa7d49vsvhfqddq68k02m0yc";doc="1nwjynxlpxgqld6slhhrzlsalp9296nbnj2kzr6a9c9b4sjxxbp1";source="1p9i5bg4jx8s6bb6ilbaa702l2mn911g09pjdmk6mnb405d908fy";}; -pst-am-19591={run="1vk1dpvm5bcnxc6k7kpqq5xb6a227bwhlrwd6mdbdapk58jh876f";doc="10acmb6wm7z9bpgh76hlsjks9v2rzp0qqbcklrjx3iw0jqdk53vf";source="06xvv8fh818ldzqccf911hw4wr6nyzxdmghynlsg4hjn54ff3x0l";}; -pst-antiprism-46643={run="1b8yxfyc4cac5992a3cc4xkj0ip35z63rqxdw2jx748qs7c3gyxf";doc="0d4v65fsk28hyiljr6fpk6yw7sac7n9jmx4bmdfgpkagspb7ygpf";}; -pst-arrow-61069={run="1x1b083p4k1qz178zr06rfjirn7l2sh37qxyjd8n5z849cp17rqc";doc="0643rfi4b4jhmzs0zy6pkrf36m9zc4dilp33mx3lis2yrra3if9d";}; -pst-asr-22138={run="0sk8hchv1p7vrpyjslpc45mhjg7l2r66mlmmvhc0s89q1khm08rf";doc="1a6d4g9gqjslnfr8fp0dpw72pp7c14qzq5l5i80kv36w5axks7pd";}; -pst-bar-64331={run="0w3h9xpikkl4ilvgp398m78f7k5b0j0w8z1zsmv57mkwf8fisk6x";doc="0v7cqj05haz0gfjrvy0ppcfphwizxavznbqakkr7b51krh2c9grv";}; -pst-barcode-64182={run="0lmdhzcfqg3cxjpj0f80r8dfd2qp0nq125rgxf5d1rjp1xl82psc";doc="1mm04sndnrqcm1z5axhydyfvnd2i49hz55gnrs17v022y2vfwwml";}; -pst-bezier-41981={run="13w3hqzfim53nrh5bn82fb4gxx32gfayiaqjk5dx49xc4l3rvq6z";doc="0xjs89hfkf7ak8izf59sl5gh5lawv04nxlajn7sskh187qwbqkgw";}; -pst-blur-15878={run="09fl784hqyvbvs2w9ymd4rda1dfykc1l8g5dpac00da1788ypzim";doc="1x881z1z4ra5bcms1yn2p7svs82h5ckwwvlw30jfdwxp4bgs5y28";source="17f9k4vqqk6mrh3dny6qfhb6b45g6sg7w50i3c7d9k0djz2wi5jk";}; -pst-bspline-40685={run="05ys29amaikrm31avlz0kcra9j48nwvqwr5fwl75ljydjf6drdaw";doc="1czq6932fmx76c82ylrbh92qs2nnipll8piah0c7f35xl9y5xgls";}; -pst-calculate-49817={run="1knbqbysc6f3csy1y2vf413cw2jpf722l0hhs20yzm8mi8x279yw";doc="1jyxfqc18whihn8jkp041bvpp1b4f7jwi2zdj8abnmx45d16i6jc";}; -pst-calendar-60480={run="13f9hgbldy8cn7si1p52lcv58d6c8slsly5k6ykm4c7vh3461ckk";doc="0zly3qhwv20da2g3asbpmgjps7zjidd3hclq6znpyh58a5cdbiyf";}; -pst-cie-60959={run="0rqn44hmz4gdi0n1pcb4gq7yv1mg9r8gzfqbz8za76jpsbkybi28";doc="19fib4p6zcgrkbml49vwd833lxj1a0brw9wabqlsj0jnh9g5gk78";}; -pst-circ-60464={run="12hsni412nfjk0b5blbi7slc4pa0c1lnkkbrdhkd84yqm12gwf0s";doc="1p21a1qwn8zhx8nqzr2brxq53xh2scmr7gb8jcdfjgw8rx998s5x";}; -pst-coil-62977={run="019hda59xplvwvc2jrk6zjlvx26y2m8l7j42sr8w6ydgs49y1m7x";doc="1rlp43hi4fs3gkfaic8r49774g7rgg97mkyxzqmi8qak8fz1v3v8";}; -pst-contourplot-48230={run="1cav44hw38rnyi1yjj5z0yqw2ilbrq328xrj4fdipkfd0km0bf1i";doc="15p3znj8z0s3d336ib264c3w0m200igsq1aq2bbcj92v43rzffrz";}; -pst-cox-15878={run="07662sjbviwbplb7mjvvb18v8lf67v997hn78q6gz262z41daf3n";doc="0iwvk4db5girx2fn6fhgx6irx288jw2jnd28j4zh8x3f5hf3xfg9";}; -pst-dart-60476={run="0q1ck6pz7f84mcv6hrjh82h1hpy7f8l08810iwmp9551djf4pz7z";doc="1ccwpmicgsv3lpg2kgbgmvy0mwyjcn6gvwrhmzlxhabxxaafrvp6";}; -pst-dbicons-17556={run="1mq523ngyxlds1jaq1cnwkp6hynlz72imc1sh1f2fch0v91a3kc1";doc="0j4p340dxlyj53s18xqp81cqwy6awpnw6k4q68yk4zx915v24l0p";source="1c071qx2ira6hd9mkh07k4kaqhy0a3cbhr6k1b4wkmlfswjynppd";}; -pst-diffraction-62977={run="0ccy05jagh7kpra07bai1j8drwn2701qdfgki925mcifsa74r3y4";doc="12xx19vaygrby5475la4nzygcbf6cf1mq3g14sxyhg997x9q4ha9";source="0wf4kpdn7vyaf9cy7dq6qf3lq37fgkcg91njfbqy9n9v8k87fv1x";}; -pst-electricfield-29803={run="0kk0jjlcfyvz5dws08wnm3qlhvgifrby88idssjhgvqgg8zpz3yq";doc="0zx7x15p6vxj1f9v8id7ba49878xjmbqzh762v1sy1bxygj9yb21";source="0n1rxq6jx331b0qlnpjy7mh84m9vdlrs8ckr2b3slwcwp63cs0sz";}; -pst-eps-15878={run="14grlhaxxhwmpw3xi3xv7n3bq3zx3qwd9rh707wfgz87iaj7jzvw";doc="0dz6543q5g4wsqcwcwablr7w7w5l6dk19m9qpgrhb1w8sg7hgc31";source="1cn9yl1prwzjvxwgyzs5jdywyirg9hy8g76cnl62gkk9ndmcpryq";}; -pst-eucl-66924={run="0fr742cx9fcllwzmh4w9690h2yq2ch6zkf8m39iksdsfx82x6sah";doc="0jxn56qsma852nvb3m9qipxyhl39r3wslwwbiggax0jwqzrnbbia";}; -pst-eucl-translation-bg-19296={doc="06c9ajnfl01sl81z5r8a5lzmaygq9rdmgym2v40y7xp7z033gwwv";}; -pst-exa-45289={run="1s94fbqpgv58zks5jfq3dbzhpw4p3gchhm32498m6bsp52kzzl7w";doc="1m7gwxbhnii3s7aqi8v09sq49010yasx6k4p7bx43rhir08v1zjv";}; -pst-feyn-48781={run="0qi5zll29rfc7jkmz4hs0y22if5qjn13whaf7a62rdfvbdp1l87x";doc="184d371rhqn549a9vgvdh92ikzphmdsbskny0dnh0pcgxzwdabzz";}; -pst-fill-60671={run="0h748amhh9mhpg1m3l5maq75k22jhk2xnml0ncm2dl2fay06mlin";doc="0p3c86vmlx8h504vb603yg321dcf1lwfyfvlc7qmlzmh1c2flqvl";}; -pst-fit-45109={run="1sqdysxpzdlaph42725hvdgy672mzdmhz7scizb0jr5wnq3rn9x6";doc="0lvvy353s1py998a7vr01pgvkl29qp60w2gyrxxwjig7j7ihn5lw";}; -pst-flags-65501={run="0p89whiwccbsx15jv7krji6fz8br7d4k3ag788dv2cyjids8v25g";doc="082hffz14vjvrz3pgc6pb4xj8ljyj1igvwlk9q1gw48sd0rgrib0";}; -pst-fr3d-15878={run="1m0zz9bqdqw1hzwp06s4hma68wwm5mmswrp9jj3xc9r5xjyq7fk8";doc="1gpijw1iv0pg30kws1vclsy5yjd7rk0j3qspcjlmkj1bhq3fjrgh";source="1zvssd11fg4hf53rz4c6imsgi77kfcc7l9hh0ni8jnznlgmdjkf9";}; -pst-fractal-64714={run="142i9wf39v31wzvalh41v5bjf1l91x6kib1rpk6fqyhfxx44ibn0";doc="0hkvmraf88w54kgqax7q6lg9zmcliqczyrw4prlivgjkmshy64nx";}; -pst-fun-17909={run="1r1zvnyg5m16fifi5xbzn5iypr4n4d9vbnqi42h6a4m4y1wb3qdh";doc="1gb9rz3kz13xzflr7r00dalqri10lbn830v3xcpmb4n29a2bf0qv";source="07kpm9irvp7dn0hd1wh08p7lfbgn78jj63yqzzxn1jb4wrb4qkx3";}; -pst-func-66845={run="05c7166sms46md8nzkm9gzp5s373vqgpkr7c146ywxanix66b0cb";doc="0wlikp18sc8lq2jn7zxh619r2d54p425a5k0cgm669apz7c0vws2";}; -pst-gantt-35832={run="1hkrmdwg7kc4xiif4fvhjwbj2ryxlrbyqb7h2n3rk2jmmky4hv7p";doc="1fqkwzsliv1mg3lyidgcsy652l5d2qy7x1rjix9swvk4vblx4fjs";}; -pst-geo-60387={run="09br33z2vdr2dlsfyqf8rya3qj7bila8r2xwqbc6g96yhn1c3r19";doc="1xxyazg51s4nj8hz8adzv3lvpr2dc1ji0sfm46xr763srwxpjjd8";}; -pst-geometrictools-61430={run="0i80r2n3vsnf4sczqkh9ri4dfb7dfxg9jcyhrrx2az552q1mr33h";doc="1ff7302f5ik2a367c81hgk3d88kkapm1jp5nd2mlybywa2nj5s0f";}; -pst-gr3d-15878={run="10jn2wdc908z2imnpcv03ffm83228fam0cqgmgmcss1774r2nc18";doc="0985ydi7jfsvlynjs5ddjhyhbh11nficfphy6qnvbv0jj367rabq";source="1z981d54aclpbq9ggy28qgnsspgwkavalm0j68pj69jxbcfxrpby";}; -pst-grad-15878={run="0bzq77vj333dsgilfw9k7lslhpmk67id6p1z14aw7nfrhyc80082";doc="03v585i28dc65xrydsp5jj9nd6kfpmhrjkwm3w89dv0p32xyzh11";}; -pst-graphicx-21717={run="1d7zvrnhch7vj1l9xscg4ynj5alml7pb38zwqns403wvcdnmb1an";doc="1mly0nr5yc5rdghy04sarhrwlxiwnndk644s4czf862n92ammh5d";}; -pst-hsb-66739={run="0x0yzrsp6pwr5yk4s9rjkdgmxs5g93gmli5k50g8lwfgcz1kyfky";doc="13z67asnaj83yzn6qa9c6q4313klc1aln84hwsb8qjf3qg6w2556";}; -pst-infixplot-15878={run="133806cabfd6c44b0sdhchcmqjqswy2q2j2ry5kr78dzdna40y23";doc="1cd3i5ishy7pawv3ah6486kb63351p1g2d7iwx9zh5vwywi1ymqm";}; -pst-intersect-33210={run="1wbipiav79g5cal64bny5ba872rr4848i32w64bhrl7awsddyq0f";doc="1y45r9pdddh4pbb3bfp6mzss7whapf4bv7zbkrx7wmyjaal73s5y";source="09pbicmzmx0nraf5s8b19grra8p2vvdl903kc582dwn7xvqrk3rn";}; -pst-jtree-20946={run="0082prldszninnbksndf6y5mklvp4zgdyk31v78axp5fl3mq437n";doc="1hgy8iavrhzw6w8r0avf3h9x52fdl3lqshf6mxqpffaq1b0s6xqc";}; -pst-knot-16033={run="1m1bzq66jan3miyp6r9j1pkk7mim9xjn28ldd1nni06v65hdcz48";doc="0gfxyryyf75p89y2l1ar5yfy5c6qawbz503bnpnw7n575rhsz36d";}; -pst-labo-67147={run="0wyvxb8xs4qvibgz2nz9fayp9fv6r2jlqxrr7svr43gnzjdsq28m";doc="1ayqgrs4y8cpws9bla26s7b82xg04p4f1y86p1gcl5f6816whq4g";}; -pst-layout-29803={run="0199jrw7b58x6qby4k48n8sd2rffxlkhrp334q2dmalqsi701l89";doc="1346ww24d9c64h03zgz7m7xdsnvkjy27cq4nbjn56bqcrl88982d";}; -pst-lens-15878={run="0220idbrzzslcmlyxxzj52mj9iai0p2ya10ykgkssyd8nfbl2jin";doc="02hbbhdnaz6cc5zkp2zmm92kbk0ppzwljivr1grx4g0jqqw8c2h4";source="1pwn8wx5w65xdz46qf5mzjkg74q296bkmzwsxw2aml406iksy890";}; -pst-light3d-15878={run="0glqibq1h8ynfkgn9r2p0yvgplydsigg5chj5gl2vq2hsb38sqg3";doc="1njiml3v4vb7jxpnai69b08pdikasjk30g3xp31vixqrzr56i4am";source="0rrgfxsbvfbyc1g1xsakmiiy7f8skmv2bkgq6vbji9y1f5s3b4zl";}; -pst-lsystem-49556={run="02m2g6kjs8fxifsdxld6ivjxch7vj137828xpax8s7abr9f4dyiq";doc="1apcp1ms40xhypxr4fq6xrh91ff15gplzllh3zs5b1w153xq3w8l";}; -pst-magneticfield-69493={run="0zpzn1ci4bkisy4v5mng3ywl0601ppfmky8il3ji1fw3l6g6i183";doc="0pbhh33238l79zk2fz2a87yhxk8ax81kgk2xh60rdq5vb8md3z0k";}; -pst-marble-50925={run="0d7xlygws5f1hipyc2ba7spr2y8h3rprigbrryny3mw2ycdh1yqv";doc="18jzc9fpjcrhya1knqsxxmaix8sglfbcsiszxc949pf4zdpm50ym";}; -pst-math-67535={run="070vvvcynfaa7mmfmqkkn7va3jvpmwxphm2w8j4k74indii282ry";doc="1w5rhcaggrjn9hmkx4h2h31470fpj8d3v3gk4w8ph35zhds5vl9c";}; -pst-mirror-60506={run="06qvndipn0i69b5jk8fxhp465sqjz79vlwr0j01ria3m91vygyqc";doc="0bfzs55sj49y3lznll477bag80yf06pcv0hh0xfg3zzvhmpcpiky";}; -pst-moire-60411={run="16zhb6gqrpdn56cggm80q67yp175dkbvyj5iy6zr5bxwj6qj8px3";doc="05g9hsxfcm5yl6afrlpba7hc7hd1kr0k00m9zj0jcqp1ggsqnb6a";}; -pst-node-61838={run="0a8bijpghvf5zx9zsd5m4bcwzl526f4r9vqa4dbqdxww0zxwk6gr";doc="0w0wr8xc237qjsz14yf4aq56d6jm8a4gmzp790rsphqaavab677a";}; -pst-ob3d-54514={run="0pglxl2prdi347qqrjpyk6hr3arhfc4rrcz1mnyz7q5jyamlskp5";doc="0s0jyb1s21pkmdnz4wdz793lbvidl9qdfh9cfqa0bwx9mmjvhpnb";source="0v9kih4gxk7aqwynihipm1595iswwkv5y6qj262aikhr6bz8v0sa";}; -pst-ode-69296={run="1ga14sfia3w8pr8shxwf5231l0s2wd91yzn8lqvb6k9i5g5qcc5r";doc="15pyk4ahpccaxkwrg2kygnlsxryw7x9y74d0hgq234618jdc9fib";}; -pst-optexp-62977={run="194g5i604i33bvnprfyjab50smag094lv4gx2skd2h16zfzmg9lg";doc="1dgcb3fax1n15hz15fr0pzihyn3yyzvidw6nacysc4qxq2l6b56d";source="1cw69vk791rr15dc3z6ivv5lbcziab0bwiar8cr767fpm0w4rrfb";}; -pst-optic-67052={run="0f3ml0lw1yl9c9hvvx648m0psq9xd912z325mj2a5vqih5vxssyz";doc="1wznc3x2cmysbj67dc6pd8rxjp9hdh7gpkjxmq1vdc2n85vgznv9";}; -pst-osci-68781={run="1frp9pmwngklkwyicr04aph29ljjpgcgagnk5r6dxb0c8bp3209k";doc="1669300lfawksl65nx7x7g3kzzhf8qpj08isxcba40ac6lwkfkp8";}; -pst-ovl-54963={run="0p4yyrvagfjamwd1f81qyfhz6wwjpqi6nfazyl8ml1fd7qjv1g18";doc="0pqh9sz0l0j0bzvsva6kba6gm7cssy36i17px2zrr3lc9k6yajf4";}; -pst-pad-15878={run="09z2dkb2h8hmf46b0h1b235d1yjv42dgx55pj5s4dbpxzgam7ljz";doc="1c597riwdggb0fli4w4ay2iwkqhaiwxy3mcl9diz8lijy0h4fpk8";source="0b2w0pgp8njbndx6x3hq0rwxsr1gwf848l6gk3vrkksq419j2506";}; -pst-pdf-56622={run="1klgwqpc3m5k5ciiqb070h48r9mp4hmssp4s82k79n6kq45ar33m";doc="06b1kpazsfn7gv2npfrnrmxlky5mhw6dfyzip2lwd243m08jdagq";source="04b0kpxmzi42116pxmkdjl87bm6j22wr62w7bka9qww2ifj18na8";}; -pst-pdgr-45875={run="0k7i88srnysbkk62mr3w0fgv3dz8hlz96nlxbrfm4arhxs6ah2pb";doc="08lj4bd028bzwi25j21h98ma5zw72hiarpcn0nbxwhbbqz865q2m";source="0q2cadndr14x2sjjdsc07xizrb9cv8i5q8w14lrwr4xkamagav19";}; -pst-perspective-39585={run="0g88w41dpz9607g286ahba11af2a1x9zya4saxhjd75j9il0h4k7";doc="04gim8i8fmy3ysyl1y237cn0xfdsiii2pwkl6y79abz1gscn0pfj";}; -pst-platon-16538={run="1crl7q5r89vl99jj5f6ki8vnz5f5i15x631ra811033xmi32z4yh";doc="08d0g6mwkqrc81g5dhk016bi2dvr3jz389f32kx89w6n11iw5pqr";source="1c4pmwrfk9yxg8jshhy5y4bwvlwwm6xn39lgr3xdvsl9bn5pfz2b";}; -pst-plot-65346={run="1xq4l3psjh3vb5ilhjwrwyjil0i4bdy4pc0k0kqkpbab76p9i0wi";doc="1h016y4gfy9kpd33ahwlqvi93c3z5gsxg1b2jayiazzd6fi376gb";}; -pst-poker-65818={run="1h7piafybws9clj0gn4cbsm5z9gxcmcv07xswx1njfkl319yj0hi";doc="05gbabajcli6p3k5m4hkq2dxl6lf8wij96dczxalisrr3p9ddkhr";}; -pst-poly-35062={run="168ydw08wgqsy642w7nf8nyzlmxccpcbdvyc5h8vqc6i8xwrlzyz";doc="0ls2nf4h4p1dc00mmplc73bv5vanddvxkmxv5kix9b471xx0y696";}; -pst-pulley-62977={run="12w7rcb0z564xlf17258dx1q290i3p79bv4vhqpq5pp3wxf46c5p";doc="1x3c2n8js6kvnmdrhnm5ng6amkwxmdlbnz4wsh807q5agqmq8q6k";}; -pst-qtree-15878={run="1bv3xxysk2jw5n41i0c0zm2kx2r6qpyfqmpaf6dqzm08rn7ax1lw";doc="1kkcrdm930lr128ffzcqd3qvh11mrikiar3kqszzscpyfkhi8vc1";}; -pst-rputover-44724={run="0ahx2fjnwgamdb4r6v6q3bg72xpgvpfan3ivvbi0gvvnah98l4zv";doc="18gaman0znqzxdqw0r2czb30l18wh5740skvsclvn28b5wfa0i2k";}; -pst-rubans-23464={run="09lmil6ishwjaybj5nqabxm20xwx8nw1l9dj9bbjxg42h1wz26mi";doc="0l6w0hssg5qmi93inh3n7wk7hps44l8w5xvj4x4rblh3fdlrrb26";source="0phh3kkxrr74y6fim8ak28sdxd5fn11c1nyn3pksd7ddq0qy5gva";}; -pst-shell-56070={run="1j97kcw8w52q1ispkpbwblxza7q8v25288pzxkyc4yf7802a3zj1";doc="1i5dbbnzadhc47mg7bdv6vas7ynkx2c4qpz0khcvrz393kszjkdm";source="0rc6j6cy5kwh9sq2gp5scxpb58ycjqdycnmnqpy67xha62fnhcsp";}; -pst-sigsys-21667={run="1v3yz2vhazp04xjd0bp4pyyiz0v4yq7hbr9mq0m2s8pg3hisfbwr";doc="08m72w1jxrafcbr19fp0yvii9aama1rfl9czys6gr3sii9ks6qxa";}; -pst-slpe-24391={run="18f99ravk128r2cg84yxv3cjx2df8fgzq1f054z5g5ig1s5ginws";doc="0g8dhw27n2vf73289y8rah5xakb60cy23993vl3ygz1cgrn356i5";source="1mxninpgycpbakvmc9qc6032mncz890k5ggsfm507jzyfxrdp5lg";}; -pst-solarsystem-69675={run="0wyascz2z4ydqpmgmy23l95b388qp6z4p589dy3f0sz7v5cbjxx1";doc="1z8kbqvi0c0pk3hc85xd03alqwghgnqqn11k5f2wqhgv6vbrif5h";}; -pst-solides3d-68786={run="0miw5r3sp58x5q9rdcaa2qp7kvsv6f8pnkjklljm8gy171ddvvav";doc="09ymz8vb5hinmcnnc8x92qkaq6zjhy3gyj0m5rgljrs15ks38vx4";}; -pst-soroban-15878={run="0fygllzq9gp37nkffgk3am2vygl5d5dwyr4avf1gvh0s698jj8by";doc="16a1w9ci7ivqf30hvr23fv6j6clqjb4y7nmjgcbfz20xzxk3aa1c";source="1h6srvvl3s1prswlj608y7pj5l4zzn13yqrhdv41956ikd1wbb14";}; -pst-spectra-15878={run="0nd87bnxf8giakadg457p10idbnn0m982l0pgyx23495qfxywax5";doc="1y40d08nwnpkmrm0jdj69drpip1gwkd8n9hqmairl1wccs6r6dhk";}; -pst-spinner-66115={run="1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d";doc="1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0";}; -pst-stru-38613={run="16i39r6vivs0z1l5l48c3vky9bac22n5k7gddfj7vlllfg6llgzs";doc="1cl5sq39pfvwhww488kq0cgnlihf63jkhqdd4rciaa8vf55mc6wm";}; -pst-support-15878={doc="1470n03zanpw35dnfzyjqm7d5lgddrimypz28x0zsk9nqpamnqnv";}; -pst-text-49542={run="1s0dqi2mpzlk8069piv4z7jg370navi4r5z8aysy9vx8n0vm27zf";doc="0ia6h49lfi9394sfr29wmafbhvgdm5zj7q13zll4d1agakn48j27";}; -pst-thick-16369={run="107cprs3hg9jmkdq00w9wc6bbkqmrdi91zm7bjhih461jmqax88c";doc="1irf2v4yg0w5v40m2przdcbhr51qjcrbj0s0i53rq4w4v3gl03hm";source="1qwxccyqzhl6mikl6jp9s2asz1aj96l86yq9s8nfacjg14vk5n4c";}; -pst-tools-60621={run="1ip2cm5wa8m9b7mb44lphkdjbqascchw8c1s7yxd5zc81xnapjwk";doc="1c5z1jxs720aczn7mjn9lz8kw37k32qrngaa9d8338ls2q47g88p";}; -pst-tree-60421={run="1hvjna16bncizkja6hac8q4snirlrkm0c5ybi9c8b8zjb4i6gynd";doc="1fp2wx2xwhrmimq5axmpswnw62f39q4rqqi8zxklhkr75ccnxrfp";}; -pst-turtle-52261={run="1b5948sqlh4yaf4j3id2zq9r43v6s3azhbjkww7vmxc53rfcqfpa";doc="1wfka7rwysdd4pyb4nhp1fy4f1lnqg32l6rjmqfd17fzpkmb3035";}; -pst-tvz-23451={run="0ly1mqlv7fx1xjivacx5dwwb1fjhqfplps9n0wzypvbwyd4nbaia";doc="18pcvx7rlvad0a6hp0q8sq5pf1y1rfydyqd11bqn94d56nqw6api";source="00i2akla1ibrk6hc0rby5q9n3ji4zlrs52d77y9iyazj0v3fab5i";}; -pst-uml-15878={run="06bll6q06szfsaib7jf09915qvz0rzf0gp5c9crwb139gbpzvxwq";doc="1c0pna78alfhi8i7bqr9zwcxx7sksi3idin5wyqa9dr95a2pwd80";source="0q5x7m84qdv8sy7x2nqfbhwp1lryr5vkji4hf74a0ialc617nfvd";}; -pst-vectorian-60488={run="0q4yzrn6rk488awv2g7qlba08w6807p12dlk1pydp42sba3a3sll";doc="0wws88bwd9zmlhqv4xw6v31cl5dj64hzvqgw944gpjcgxpz19215";}; -pst-vehicle-61438={run="0a8809rs553n79zvpi8vcg92lly643n1ss53pfkvk2jki5nszzwl";doc="0adwpcxnmn8nabc2nsw1d5rj6p0rxhdidcpyhmkdw0rxf17604s2";}; -pst-venn-49316={run="1i9frqc6b4wg3pb0ks4v0xxsfzs348ddhncr31mhfs39nbj6029d";doc="1y2pz45hlm2gd1lvj8p40ldnl04pzccgbsa3asnbpcifkx3gj4s7";}; -pst-vowel-25228={run="1p1adlrg62jsqzkjkl8avb79w26kkd5jdssmkcsd65dg5qfa9x50";doc="0wyl0mvx2d0zd8q0sdmyrqgr72i2igv0669ajv0gz8miv04vr41k";}; -pst2pdf-56172={run="1rm0frzi52i3irfy5703kw38d3f1grby27nryjpb4ziiw6n5yizb";doc="1sll10kps82b47npv2g2r1l3kkm5y75mp2p2pzqsnxxivgl5kp2l";}; -pstool-46393={run="1g8pmd13f73v8bsrcpf4a6hh00pww6isz00gj8cxnj0xnd4p9xwf";doc="0vwxrcm29w8fiw4mmr5jcxrlc122k4s1wg1sqvmzqypwpvyls59c";}; -pstricks-69674={run="10ihzmpabwnc8y6h391ic8hcijb7nlwcay73z17d11pdy5c0wl3k";doc="0hss51yw2ahaicyv0xdbqyxqqhc74hd2f28pj2sgn6c4yr00v6xw";}; -pstricks-add-66887={run="1h1y2r0y3vypygcczkqi8xpxc0mdcgqm1xfscspqw9ifndx0rwrm";doc="0bd3rwcdmxnazq86c6wwbjkajzd75knja1fc7s3svhn0hxy4jcza";}; -pstricks_calcnotes-34363={doc="00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3";}; -pstring-42857={run="1f7a26xxxzwfgprhzxq4ay597sln18hjk8cmlzjy342jy45g6dpj";doc="0ngxd95s8lzpsgirgrq4dg0p1dwh4l0gs99nhich12v6l19jd29b";}; -psutils-61719={run="04xwjilc64d5zpbngcsr6c6gvm3857wf2hsyag32v8bk1pjag97f";doc="0hb0bjnk53i2q5wkkcn4rkjbpvyv90d41ynxbgsk8hp2gli8b0zj";}; -ptex-66186={doc="1dk8rvadr1q00bjizj567lzjp5l47pr7miyk0ghkajbiiwbqi0kn";}; -ptex-base-64072={run="1h14n8hj9xh97y2g8fnz7q3vrzmm7nkk1yj9194v0y6kjggf732h";doc="12nxgvrinkd95hiwczd8nykiyldjyvh8sk49m2j8hl9g4g6slkg6";}; -ptex-fontmaps-65953={run="0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg";doc="00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am";source="046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n";tlpkg="02z3c5jkwmrr61b6ivw0dx45jjgg7larkrhjzg4mr2dha2667hmg";}; -ptex-fonts-64330={run="1qp1linlsyyx2v4v5l2vjvynw9gpvd4c1klszamp2fcy1wpkgw49";doc="0iqy6k6x96qqg2c8p9cn58jpkqq8hhnb20852a39whgvcnk8awhp";}; -ptex-manual-68147={doc="0kvq5wx7rz6lz9a5f2fjk1y3l8sbqm10jc80s9irbkhv8rhkg8ar";}; -ptex2pdf-65953={run="0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl";doc="0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4";tlpkg="1rikx19qn1av7hrihjviqi1jgla1ncw3fyv7mjav490813nk92ah";}; -ptext-30171={run="137amhihk598rhaf0qmbahd9spqivzqrmi53y6q3mlzhlrxg0p1r";doc="12crg85znvmpr5yhvr4yr6riw037zwcpwpavp1vb1nnd9zy99ya5";}; -ptlatexcommands-67125={run="0srsgh0a8hzy23xd4a3fa168qx81fixakjpryd3db55ygrvqlvcs";doc="02k3c7nzrsgb86zkhc8mxl06wdalw9cdrp5grm0kaw0q5yzifp9f";source="1wd4k71xrlgdxbix3m2dr5isj0am8skdr1di00bji1vj8fvmdczp";}; -ptolemaicastronomy-50810={run="13zs1n17jsiaavw98g2ggfrmb4pbd48qscqb918shai2ffkpx8lw";doc="1r0c5rixwam85wchqhf405h7mwim88616ycy1i4zv03hby18156a";source="1aacl5pvqww0j2kvk7k5ikn43qhj2pqsxh47kid443g56hclkzwf";}; -ptptex-19440={run="1p3bahmdkxbdgczvx52qhyn2w0wmdzr8061idf0kpbwvl0nkw75p";doc="1ldg6ljwf0iivd0cxb22sld2q2afwfb83ac5r6jxjcfr5ac7dv0q";}; -punk-27388={run="0jywh76pckajz8m9c9li6vvybjwljyzhk7hsn437mswbfdd5f2yz";doc="0lbly72hl8a5996dkjr5ssnzklbshbypxymp4zgdvb0i033pd0r0";}; -punk-latex-27389={run="1wfs3li3h0fv6dmpvfjvf0bhq72iy82gpjbxhp3ssm7sj41y07cf";doc="1agngq3shcszz054gmikza54ny6zki30rsww8mp7h9ab5nmm6wsf";}; -punknova-24649={run="19qc4ypax7jlr0hw7aim6p0afy9a2qz1ifasx9dh5rnqhjf0q5hl";doc="1x432js1hj43nrxg2bvp4wrrmgpi6p44ckrfic1gk7ki8wzcx4s4";}; -purifyeps-29725={run="125dn66xsrnv4acvk2mbwfl26sy42jw7fngm3p8qmzya93sp0vwl";doc="0lzw7ajxkx78v5dhlsddb0ahq6a9975f4mzmsgp23qczmz28878w";}; -puyotikz-57254={run="04s6878wblhz3m7xc7zgqv0ziwx76r22c4sa974ismfqjbdh6xdc";doc="0wikdmv19kj62vc5bd0n2dl91cqg44lwlfs41nw808hnk96a02q3";}; -pwebmac-69027={run="1162s28w7mlmp724a72blvphq21vrzydh5fv5hr38a7dgfi9ydyf";doc="1sbri1kw2hgdgw59ahadbysv481zz79lh67z3mvq6frx566vcb2m";}; -pxbase-66187={run="0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf";doc="1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf";}; -pxchfon-68103={run="1n78m5685q0w9k2v0iyxra2cj57gh11wnsifkvb04z956r1xvxik";doc="1jm9f934a360jw3v1yr9ca9a4qyrifqa05x5m1a19klf53rn3ghx";}; -pxcjkcat-63967={run="0pg6rh8yf6mnd047br0rwiyjyzb7g8qknwzx7v9r77rxgpvy4baq";doc="0jfm9ln4k0iwvk1ddxma3yjvfrzkhxv63nn76d6xi8gqj1vm1kl8";}; -pxfonts-15878={run="0vkhx82ywv17rflmq119jxs3ib08rfw6lkjgr3mp9vf6vplgqzki";doc="1afcy7c1n63zi5czbpnajrrgwfp9xdymkgwf5h9865adjbb3lm82";}; -pxgreeks-21838={run="1j93gwgk66k3fwkhraapis7ddj8a4bliqh783psdv1054j5fspqi";doc="1md7q2q0b2lhffjm39cxzxf86rw8759zxwj5sbgavzdhyc70ssli";source="04vdi4wf7lw15v05jqycm66j1iiy6g13qrc1ynrnq0df8b0zfs1g";}; -pxjahyper-66272={run="1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp";doc="05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6";}; -pxjodel-64072={run="0gywpypmv9c6bqyygyz336v7dn6bnx5ibz2p6f38paamk6bqbyf4";doc="16nf7za81mq77irbdqkxw2iwxgi3jpy5vh1fijp67bq3lx0az7is";}; -pxpgfmark-30212={run="0mkcc99fwi8n63fghw3mz2alhgpakc3hqyd40s2fpwisvh15rbbr";doc="16sapygswd6mr0pr04c86jzngw6gdf62bgv2xlrfzfpq7cnjafxb";}; -pxpic-67955={run="0zy1f7584bmmn00nwzl8w17hwrc4c5i798763p81sl784hm2vpw4";doc="0yw22zb82scd1c4n0niyc69n7xhjgadabxgbh7jjkxrjbzp6j18y";source="053yqnrc5xfj2gifnn94lxhawbnlfw3dhlzz3jnn4pvry7vnqhvc";}; -pxrubrica-66298={run="1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd";doc="0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb";source="0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l";}; -pxtatescale-63967={run="15swkjxfxznb101hvlqcxpplxngfaf0nbpkw7j2fgccyqjs5fhfn";doc="1j6yrpyfhn75qkv03bnwj9i3s4lmsh47sw696y13cflvdmsgs8n6";}; -pxtxalfa-60847={run="0fanfh1gb1fmp7binmhks4l90s6925pki6gwyzlaa7vy7za1l3ck";doc="0jc51zsbqbjnp7zqbbl1cpqjf7rwvsxvfzfzm9wsbkfzd16c9817";}; -pxufont-67573={run="0vvnhghcdlyqhl8244c76wd411cd9cjmjsrhic47rjs9sis1ilci";doc="088a02dfk2n6lgyfri74p2lnbp7mp4vn96qqkby0qjfnj6956hb7";}; -pygmentex-64131={run="1kd9jqmbxhkd7gijghd8wi0q5sxqf5dpf22z96wwr29kvv7jxm64";doc="1ppayblsdpmrd9sxfpf0kqhbsxfd1fgq69g48zj9jzbhncwx0lhp";}; -pyluatex-69372={run="171ahvh5ii2gimcx0a2g0dn7s87a58yff7g2dwbw5hi8vyqksfi5";doc="14sxmfsk3lrzcv0k8rkrq7d5dirxmy58i3km6bkahigk5iryq38p";}; -pynotebook-69990={run="1k0sazzzab5a12lf7dl25f8a2fbqjyz56l0pcjwplki53f9x3isr";doc="117lnmjqnw23j187sdyyxcb6422ilbkxrv3axq66apf1ip4jrp2a";}; -python-60162={run="0brs0hydf9vqwlvxipfrfxqjblazgb8ziy4brp2bi16bnsz59ykm";doc="0x1nfbv7fmyhzhgy6xsndhd9nja8xbip436kg7ygscjxml6gibgh";}; -pythonhighlight-43191={run="1bf3jf05zyggcbz5c6hr06wd8dhf0q5m1i4i7p026s1b7dxxq1qk";doc="0qw1rnyg5pawmp7hd3b0dyjzmbrlxa0hzg7bxnmvrz1akn1cas3q";}; -pythonimmediate-69487={run="0qml1nlmkqq4gj4cmhx2bpy3105wv56r5z4an1dvxkh6xpi8xbz9";doc="184lkbmyfm3rw0zhl79pk62sdnaashihvbhkar1pbnjv5jsl7646";}; -pythontex-59514={run="0hgbhdrzxvkc8szvkq2vi8v4xxn9k05zpa95vrmdlgw76ms33wvi";doc="0pxafbrr7mclvn2zdwirqbfa0b03cm4l4wbcgh1ag75skghmh745";source="03a3qj72hzczf4dz282vqq6w263zk1zhgm69h1rk5ibdyasmv8xh";}; -q-and-a-69164={run="15gmr65sq78id1l8nljgppbv85q3pjswwfgylc2msa7pk7vyiwzp";doc="0c8wbw0ia433sg8j9py7ivd1libjx43ys2fqi14m0m766sfrdigp";}; -qcircuit-48400={run="0vxsppwbmhh03mq9k3zb2hgl3628q4i51dz98j2s73z19693266a";doc="0571vlvpvmpjhjbbrd1ybzckhfy7ymralr017d09kf9p5gk0y677";}; -qcm-63833={run="17pryjm0r6w559lgkf03aws720zsap95azfbixm7p8lr1gy5nwlq";doc="0wx14xsj4sy6xpcs87bji6xfarfhlzqdzgyyx2p8439m6ay3cpx1";source="1gsfa9bby33a5qgi4p2awr91gn8p4d2qylz32xmzhp0x6fpqhig3";}; -qobitree-15878={run="0irdc2w96ad7mkgm6jqwia7lk1x4557fm60l98mc6kpd3a9djzgc";doc="001w9a4kxbrx11298gnvjamx8c6plag1gp5b7x9vq35s25kdy0i8";}; -qpxqtx-45797={run="123dfaqzpl8h5ia08swjmj4h05ncz3ishsh6rbcm5px35ccrgjld";doc="0ng1h0yhclki35v1w08r2di3dvf9rp78r43dfa752zr8agrfd713";}; -qrbill-67724={run="19wl8p36crfgyzad9v20n3j8ad33r7yww9gn3z3yvvggdqpsda0k";doc="14hfgxl7rl026cmbh2cxnj51fslm1zzfnc5pv33gqzd3nzmbs1mr";source="0g3aii3fdjp3ps788b108jj7ggks4ndzhg071jqca0q5xhydnvph";}; -qrcode-36065={run="0vs5sg5hch0c2rxy27yiy1c543l2fnqinr8nvsyr288fja0pfrig";doc="1rmwz89yxlgrypmki8xanqc3xxm10m9zc2shh5r0fzwmsfssri9r";source="115wlgvpxx0vkb9d4gfwbqamk7sfmcfd11hxbfr8khd5hv8asvpi";}; -qsharp-49722={run="1lrnzvlalznyxmkwrn9nh3x2zz74bakiq09dg374js5yni36igf5";doc="091kiiicfinn5cxpfhhb66j3hkmv80gsqd1b66xcz4ghxan43ywk";source="13923qlhbx52x7h3v0iv6y8q0dz8g2ikvfz9m0lh9zwjcwv4mpxy";}; -qstest-15878={run="1xk4vqqics2iwzxck416za70cksx836qrsm4v8idyg9kscvjr1jp";doc="19ddnrz4wjd51h8g0z40db53wh0zlr6m1nfczghc5b26vvcj14y0";source="198xvadvk9fb36kxzv1wpis5qb38dqaxsqva6l7l23kz3sb6k849";}; -qsymbols-15878={run="11jlwr2pwrxck0xcw2szql0rdynjr2pk4jgzlqkpcardibfr385x";doc="078qxbmv1zgg73a923sbfqnwmdwg1qkfxra5r8dzi8wlq1cv29ii";source="01lmlclv9rlkga19mw4ikngdpkxhmhq77kylln8kjhcpa1cylk5c";}; -qtree-15878={run="10a9v90yspc1pq3ja9bzixdq6wxl6q4jxz5na7x9yw9g44z3xaf3";doc="0ja3xpng871h96q220nrlq2iypk2spjs4qr5vpmri89b5nvngf6m";}; -qualitype-54512={run="1r59cbk6rmdy0zhljcfqxksf101rkzib8ll20ak0sshc3f1jj64y";doc="1jxcqd48v11b74drv0lh2gv65aqsjv5zziph2s9g5ldd1733fgl5";}; -quantikz-67206={run="0g7zjkgfw814wn1ddsw2yxvcv5y8ca66cz13hmfa61p4kd8y0x2q";doc="1rla8zwpmvf5wwd6bp74dimm49aa6m8xw6ix0ahcnvx03vs1yibi";}; -quantumarticle-65242={run="01w948cabqlnwyv0n1wzs97hhfknspx2596w79ipjy1aka4w6304";doc="1k2xwacvm6sks0qj1psskcfm002haa734fqysr4cggckwhf6n7wk";}; -quattrocento-64372={run="1jn29sl616p97vf81krg8g94zqsgvw40p1mh664i3sfkglxlag2v";doc="1v63bbn4yd799cy55w7j6isl53ngzngq9jlzi63nd5bmk4lqcq3m";}; -quickreaction-66867={run="1jcqsgvsa886hw3ldf2xx915jll8glfdd7vmc04plgvvvfavghjj";doc="1xgwv5d2wpp5jan4c347kxmjqfa9qk9396vpz1djsa27h0naj4f9";}; -quicktype-42183={run="16qy6rxxkdkkli1knibhbm28jg80l0qjsn9lsb36b7z5xwxj9f21";doc="0ic0lkhj3rdpwfsrysm5qidw0gby11kmfnzbh5k2fpkfarwfhxxb";}; -quiver-67779={run="1nakig6vyj6fmzpxr7xv79wx75f2dq42k5q80fg90krxm65bmbn0";doc="1jbxdisyxla5s8qkn19ayj0iyqdym7n6xlspr0vjmbz0nmh0nxd7";}; -quiz2socrative-52276={run="1s6g0svlkg503r5mqn3iw90qyw5lwpv7dj92yck7ymziv9p59qkz";doc="0v9x0jxrgiscblh8w9wip07di78glgzd0rn2fp1hpzabi8x94dvc";}; -quizztex-68823={run="1yrari2lhzd6rmkqzhng49vmcbglnb8zn1mw5f4a0np4mw5dhmdw";doc="1qii1rajgh8fba2ck8l1p5dzviiji2i4nppivmgllrvs78cnfk60";}; -quotchap-56926={run="1284ldj6pfqq6mz2a62pi81k1jca8xkc6wa1wbrv3kqwfdcc8cwa";doc="1bnhvp91adi4bhzwddzl16qw6d74in94jq2h16lk06aakcwr72hd";source="1g2cfb5j1qjqads2m9ad9a8n0j7ihrvd55q9b56jd141a23layb6";}; -quoting-32818={run="1sghajwgfdc1p0gifii8wz1rvzsiy38f4jpfmh5pys9w6nr9a8bj";doc="0aknicilv5rn3claf77l5br5mr21yg1dhdc1j1yxigz9k8pljzm6";source="1h01p11ahr4ykqnhgl0kwc5i68mw9wznswrxy9ab5rpma1agjkzp";}; -quotmark-15878={run="1v48482b57w6f1cx0b5av9cq26zhgcqkwi8yllnl9p8pnrjngc9x";doc="1jmdv5i67hsbmybjr8j2sv7f7z8bm3a30yy0ycyp6b5c3ycqx04n";source="02bg50nj945gycxf8kb7s9c87xwszprq3zynrxxpzixrxqd06pf3";}; -quran-67791={run="0gp028w9q30wx5vfjvj53b6brrac6wdkybai4fij2kk2vz0ck9lh";doc="12wphp5nz23svjj06s8xdrfghfqqx85hmyqd4rg7kxyky009i6kk";}; -quran-bn-68345={run="0rfg0vi7297gdilra0lg6z40hxp22y3rk3fxw82j0hh5dj0f5gl7";doc="0lk1xjf1n42v5mkg2sr3mykvgrhi9m53gxndifc7pmm8anivfklh";}; -quran-de-54191={run="1a9dqgrdh6vw6zpygslfq9d9z8qws9n614b5adr7pkjcdwm8zsaf";doc="0fq3yd3grj31wyjvac4qkvs38hjjnlsygiihrxw22ddhsa4cl2jv";}; -quran-en-68790={run="193b22vcvbrhy12rjzxzgjhlfiyzp0fq97g2sbna45s7358r4n2b";doc="0jgqpcl84dgf0bc5zlzsbif5nqw5kyhi4ngdd4kcj6z5lpafj6k0";}; -quran-id-68747={run="1pc6hnvi1xdfislik6rq2f121q9r8mjy48prmfj51zv061f367bs";doc="1zsf40xn4xfy8wiyqznsa2y7b2rzffak995yrkllkbcny5q20ilw";}; -quran-ur-68314={run="1l2hsql1q8yhicqxdz3jnhhc9cjlwq4951xsyfz5ayzrcckw83n1";doc="05xcidnphnidr1pa4rhiimqlqnfjqkwx4hsl6ppmpiywws904g3j";}; -qyxf-book-56319={run="08v4n8lc3qcxjzfvwqypnky9zhia7ylwq5f31arxgdf0wq4gyhia";doc="0i6g7v0xdy26rdy1kap0b4pnsz8xjm1h90dwby8y0bqlxjhd509w";}; -r_und_s-15878={run="04icw2n2vz98bk48kbqybb6x3wgzz8fr045133vinybx49nk8xxa";doc="16ksw9wid0sr9gjhjkxk3696fcy19gky3cp9ia6rsfh20f9f2yw2";}; -ragged2e-67441={run="0wvvlhbmj1j4gp66l9p1hq526r3izywyf8ddggj316q2pg4db53d";doc="048f04kd8rzi3cnqwa8gw4cvx2q5k5qpnph2idvkvjy3lw3jr9nj";source="0zj8nphii46xwc4gp6h6l65zz9lx3s0741x9gkz9ghq2x8m7qphz";}; -raleway-42629={run="1d8zv0x1j2c996ql8g7zc38s7fpc61ibk5zdixhj7kbfrz5cbc1b";doc="1i8hja5817kzy894j25hy5cjnw31y4kcahcymx5hrbi0aplhizx0";}; -ran_toks-59515={run="1k31qcvbdfx5xknykv9zlsijgzxcw53amb03avwbqm3kly5d30r4";doc="1jri3cb862m8984awdshlqc9wwcq0hbjw6cf2yqgb9wn186gjfyd";source="04ix834glql0yprygm5s2354q62cwsz39lfk871n8s9mxjd2f1c2";}; -randbild-15878={run="07ix44c2zm185byn868bmm6fcbwq9q37h31brfa4839hpklg41pp";doc="1cpyzrmswxawxk6x2vfjy7y8qj3mjrxgmr9lgjvz11f5fvvdb0i0";source="0yzz5awhhw52zg877nl76410a4q6gy7mrri0hccicj529kk0d1x5";}; -randexam-69965={run="179wji9ss598rx7hsagj76jsm57v9cqladxjc4r690mzvadv1irm";doc="023y72ya8b6vcnkizsnx83d9d3z5y7lgmkbbn6saffj3ln671xdx";}; -random-54723={run="1y4dn1i3kmd99b5br7a2j6ppf0ikzp744si5p6m5rmvg4vh1jh69";doc="1gfcswp2krrfswyjbyhck4pb0lq03jh2mfwzm2iwvd3zlndvccbz";}; -randomlist-45281={run="1kwbg73d8hk4wh69fajl1zqyvkfyfxzyv5xykknpa5s67pxkh9c5";doc="0r8i0ywq21c1h317b3yx5ixr4b1fllgwams4yy5z13alda4wxqdx";source="1s86m5hcncfqkwlr8mwdyh3fsnyzisiw5dlg52r499wr77r5z56j";}; -randomwalk-49513={run="10ivivbyrxm50svqdhv9lm623pvmnifpwpnbhpmx2nvf4crxxbcm";doc="1lvff00h8c2fxyf7if1d2xqkk87lb6396w6mb4yfxwsk0j8j2jhf";source="169x0wy0k91kmfbisqh4ciz8n4knhkxmz2d227gzwbf80sr2a80y";}; -randtext-15878={run="11a4j40zaixjklf4rkzb17cxnfmm6lp9kph3kkp2kalz41qamc0k";doc="1g8nwiz06w4a1sdvdfch5yavar11mj5xpk631n5ym2d5g7hp0dm9";}; -rank-2-roots-68161={run="132sfajpxnl82pz9g76h4xv7fpirqgxrivz2g3mccgvb5ykiv0cd";doc="0y1rva3xz08xkw8s46xxhn6kl58dh1v9i190ffqjd1g2xxix10f2";}; -rbt-mathnotes-61193={run="0mrk5p7h2y1kaaj45fcr56smzi7ny6808k53s5442gf538id9jmb";doc="1ysaqvli3gy777a5g1d7q5brc245qqfr1fhzj0a4dwrj1gcnw4x1";}; -rccol-15878={run="04nw4h7z4k4rnvqh5s602l8h05n85iri3p3cpic4ss71ccn8c2dw";doc="0q3qb0sbhnbqwgc0i9bw27s317rbz05k6pmvhad3m8mvlsbgh285";source="0ss2436k5fbd25cynhw13lq4ns4payl8fi8lc96vi0kvn6jmkwrq";}; -rcs-15878={run="1kri1q5b36d00k1pmpkpa0dmbv7qqprycxzmlmqvp7fx82s5awwk";doc="1x6m7v28p3lslral4wk595clg3kjf2nwk2mi1sva2fl56mny7mzx";source="176fvqs3r8wysrqlqwjdnm0xqgqdyjq7wfwnfb2iv3c3rmpr7ab0";}; -rcs-multi-64967={run="1n60pzx6qrbabksj2aqqf1j4i1b298ldsyjg8z6pmhladq2r3ia2";doc="06lqyy8igbiyl86b8fsl968sv94xcnl1amppyf8hmr52dhdqcysc";source="1pdds0kh3p3rkdn2nrpyfrw224q3rfnahypif8n0aijkcxdlw3w0";}; -rcsinfo-15878={run="04j1sq20960w5yyf37pnzvwaknl8f18mx6rmj2s2vch8bcncdzjh";doc="02zyrgcd0m77xp5p95v63b58mv0h0miqlziagwv1rz3ywvmgwhk7";source="1fgmppgp0n4arrilxmrjn7h7pf5jq7gm6drdz6njq8w1l1qxlxg7";}; -readablecv-67986={run="0z8shn1l3hghkxrmaiyxsv25n9ar59j0nscj1331yf9dwh9cd31d";doc="02zjf16y49lyi9wy3w7k2q1sl3j37k3575nm1hi77bmj4i57rp4z";}; -readarray-60540={run="1hx39j04h7y14qrp75q9f5x3nnii62pvi43ww48nk02glxs9y5kq";doc="1v0f93nhylqs5rz2bxrkfpzlvwajsz6znlyvdnc0gxcbwg330j1q";}; -realboxes-64967={run="0xyp6w8kbycaqmrkkrl8701c7shvd9i16vvgs28cvr61nkv3mv4s";doc="0xd95j7wgv3yzrzq9lvdxpzvvvki2an8kg0zm29yz01m397vmys1";source="0r0phiq8v15ra9a429j63kyjv3w2p96myr8czijfcb9g4920jvmm";}; -realhats-66924={run="0v8pc4b8ls0xyfbji9m7dw728dni8bsggq2pjf9bi2vzmq8825m6";doc="085nfwsfvmbwv7zlfg849ywyqswi011278gmws01sv3q5y6ypfxq";source="0rp15pryn8zyq668pxapwg0imbn76m9fclwh6qd2jj48bqrlsq06";}; -realscripts-56594={run="0ph678nf5k03xl63z66gkmg5f8agxy201y6bvabhdnb1zhvfrfmm";doc="1kmlaym3vxb9mx0jp7wvmsk13i30wyyazhny5zzk14bwx8rk3kf4";source="1qzqr2q2bkq4pchin1xivg8gwx5qkgip4kq74rswfz5a5iimyh0n";}; -realtranspose-56623={run="1m3gmj9bay3a1b7fidjs6rs2077m7csaszz11g6y5i2sjpjyx2aa";doc="08w4ad33pycaaiwhrnmx3sfx2c6kv417ijhqgxdsja1mrhcp0nxw";source="0s4lbg2jg5fa4x8f9cnp5zcb4yi92g4981dwdksqsilcd0in4ksh";}; -rec-thy-63982={run="0pr0k26k66dqaq4rppgqx27f6km6a7r4zk6cj4yjl5l2ac19vvim";doc="0rljkcq2vgppc1lhc8mms0qxbqiq7yxhp19xbshscga86hxd0l5q";}; -recipe-54080={run="1pnyia45nx32r1ng711k2l3g2h4r6n67nfxvg193z4mz1i20hq85";doc="0hhm5l89naj8vzjnvf2ambpawq7scp9bgpfjzszgb6069c486bvp";}; -recipebook-37026={run="0ianmda3ji60acckagmlsmrsvi4sxp3prznvzqkkkvv88w1xbm8n";doc="0fmc59fddgfs4v6lsba04g334xlkhsl1liph7v3yx4qj6l9dxlkp";}; -recipecard-15878={run="195lg2kvww7amwls014s21l2pnyp24c8cfyb3glrxphcvcdhhr6q";doc="1h13vn2zw880gvzi1pc8j41wa21ygja43hrjmyav4zxziiisrnwq";source="0fkwvjxjhaywk61j750a05x0s5fgb96q5n3afcq056yf01jbvsxi";}; -recorder-fingering-68595={run="02wxkvcwh8j3iv6dm9ms3nn09kb8lz97xx0jq7p0w2i95is472bc";doc="0nh52w97xi8p2wgqrpz4svipi8fcam815a340zlsphxsx31c8lg5";}; -rectopma-19980={run="1ivjyfhl4g3j1j0xnq31rcnl66z3xwaixyzs8wwmbf1y18lgzyb9";doc="0gfvsjszqrn2r1cm7blk0xnrnv94l1a7ialwhvf733vm1m699lja";}; -recycle-15878={run="0pj6xvdd30b4y1fa01vmhczinw48d6psfd8iy0rpzpaq89rbjrvq";doc="0sylgv7viy4qgl0krhsf8q1gkxiz91wpn0l5jyq5y1zg92x8jk1b";}; -refcheck-29128={run="0v82jjddvis01n2ngw7yngv4kh2impw77s1yq360sxqjym2m34ng";doc="0ckmd4wnjl0zbyqr5q18whb927sjbz1xgdg1hg5w4ih0g36sra63";}; -refcount-53164={run="1r4lv6yhybqb8wkqyaysimb79kbdgvv393kn7dkjqr46b5w4fzcf";doc="10vn481rkdwv63z4n67gch55w8x44v125kf3v7299j92fm8fdznk";source="1rf8yk9xc1qhiiq30jhvjqmg5773g5d33fpcpih4i9c1l7kad3sy";}; -refenums-44131={run="1dlfd5dx3mqfhn73y04lafcbiprqicv9kfz2ylnd4fhhm62svb7a";doc="03d3p9d1f0pr6gk918qiq7p5p6k0cf1zh209akl6a35042a6nms9";}; -reflectgraphics-40612={run="11kcq0dijnwwxf6d3s0fhk7nfhvn3v36lly2wf21vgsl387dkkaf";doc="0iwcljjlk1741kw6cayrbjhqalv74apppw612gh3nhh242nn9bwi";source="0hy76c57w4lw0v77qaf064j7xz327fprdijljd7myy02idlszbmv";}; -refman-15878={run="1adim1622bngp214hsdzjgjkjcv7b24a6aaqzihlms76vfq0hklj";doc="1jpx3yka29lpssvhjl12h1bxj0k996x7a7rf1742wph6w1n5ymmy";source="134hq9c9kdr7rgzmp5jkjccqgfw10zwv33zmj25b91xljn5afc6w";}; -refstyle-69680={run="1jfnb5vcsdj5wxbl8cpiv0bym8n62pqhqz96vy6hd7cnib85k3c5";doc="077h83hngpdv7bk5cvbw9w351dfkiwbbinalp7xgw2x0p240d9lh";source="0c4ip2pri9y5hziwr3p7xlrv6dnj6g2h7cjnlff77zq1bvyzj70y";}; -regcount-19979={run="19n0gwvh87pb2fanw52rc5j540v9yw10h2r8svczim9sdginy56r";doc="0qnxcyh2vhkylaav056lc2vg24y5h11svzy6hrk6rr3sza9k6z2k";source="1xfk7qs4x302lfi93a1n8nzpsmzmypyb34d8hd7h8y6nm7q2g4y3";}; -regexpatch-58668={run="0i8dfsr32f4w3lfh88z45sdhvwzqgh52xqfqgj53fvynblpz9msw";doc="0qh2g9sdj971a75dv3jfxi3ga3mf6fmb4azphkdgxmm690dblx35";source="1iq45q093v1n421r37w42815yxjb7iby426a48mvgzyc1c82rd37";}; -register-54485={run="0i084dij80m292c9f57hb0y3gs870520l8awl3wb21ss76vs5501";doc="0zi950xii9qbscbv5030aw02arc77c8inwxmzkslcmapdqxq5wr4";source="1jz02c2c5xpinxninb1a2bkgan21gijs48rks4xv17y7k6z9h00v";}; -regstats-66795={run="022l63bc3g31479byh1350fl4wpfw9pq9jbqy3xzhrrl35psvqpm";doc="1l54lb8g97gib5al38k98gnahrpl4sc0kr6wrabagq70cbbpnc50";source="1px681bkciakl41cyblk72v5kh83hyqf7bn3s0hjax9alszk29pa";}; -regulatory-69611={run="0daspgycq6ghpv0kr75ww3axijfy21694pn1alic75fn61nhpxcw";doc="1z6hh4rgkzh01yprsc2a2xshbayy5qfdh7198jwwkbn6kvhcxmf5";}; -reledmac-70207={run="0xxzyrsrk3bq9pjx4iv0bh1k3li0rbwbdz1g3gdyir15kz9dwz3d";doc="10lzmpibqa3l8wh4hhl306ry6wi39a6y0hzzj9xanr9iaz2c2gbr";source="0m29yfjvi4x7klhr4p9rx8f4i8h250gzrwb3iy6ykrx7qhffwgrg";}; -relenc-22050={run="13ym795q37rmxhmr0d8834y272si11f0qh7lmhffrpsf4d3bhf74";doc="1hb2sdm9lgzfkj2kkbrlb3alnfjq4rw3islgdzkqbcgqp9s06f67";source="1gk7nbczw9b897idmsgqx6i8xdmi7wizhb3dyc0hir7qmivaqv6s";}; -relsize-30707={run="06sy6v0jscrj2qs7axm770xv8fkiivvj5lwb8mkf58gd5jwc5bgb";doc="1sgv3x3dky3i7xivh6pzqh3lrqjhb62g0ji0hdgmy9blfrdf3api";}; -reotex-34924={run="113nfw6md0v4522n54q63smd2g2iwm89qsqld237f32r3rdkbcl0";doc="0lapzgfp019a7qihfhf1cp2szwq98j8kmcy80c3gf1fa1x0c3x1q";}; -repeatindex-24305={run="1z4z6bpfjmgn8mkpcl1rsd9m1jxdx6lx2kz83r43d1ks5zjc6wn7";doc="1vcq9vbfw4dwif9q5ki0bq378yd4sg5g2yxr24bjav97shd9iaxk";}; -repere-66998={run="0kjpf1ywcphgmkxsr70mzqlx3mid4af7699hz3fqgs307iswj0di";doc="1fhx74lsy7wsh84p2g9chdqy94vh6sq4wi1rny9pr9cmnfxb09m8";}; -repltext-56433={run="19h9qfzz9idywv1bi4qpl8yqv73lwj6s6aqxqhb8jlh3b2scp4y7";doc="0nhr1lpbb5nvi7mfzrjxfq7ii2kib8klzcsqg99b4pj3hcwhv93v";source="1phbwgyvdm6a616wzvlc24jm40k4hbyjsnim5g5jr15phlsa6r2f";}; -rerunfilecheck-63869={run="0i06ypv9hgdgmsv2idx8bfpi9xfrl1m17ly6cg8a1x0v6ns50fwr";doc="16ryk4k490pxdli58j36bgrbmfi4gfc5jm8y0pnv9fcj07da7wpy";source="17m0dig8vddgga28j5raavq8aysy3kdgzapyrciajj0j90q14sss";}; -rescansync-63856={run="1qdcw7zi965khz3n3xrwg9x84hi58iv8sg9b3dwn36cjdrxvvx83";doc="0szxkc0bpj0in2mlms1m381hhrajvwhp4yk17daihnyyxx6m78i9";}; -resmes-65375={run="1g0gqmx21s3y5h8ll5ymgd2k78mdhw3nrzc3xnpihdvh4gjqg9zv";doc="1qpmlhw6rxc8jmp44349x428f7mrs6dr07l5q20v2qj3xnnicjzx";source="0s5w0cf3a3106v029yndv5hmx5nrdk27dwbw18wb5q8m49gn6pz2";}; -resolsysteme-66192={run="179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj";doc="0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb";}; -resphilosophica-50935={run="00qqwp5n5a8hpz4zpcmh3avbm0wh2csdwdf450hmqnhpv2hn2z18";doc="1s5r4s8ja16vsz3ssqk0klfm1vfxrxbcj45mlszq5r3k5gsa1y5b";source="0nkxh1yc6nnjlh5bmf9w5k6hzg62f4i7x7nbf2019vlwvqn7r4yp";}; -responsive-69147={run="1ymdbw5gq79i5gd75dcnc484cjgrp7ckh8163a9n8rlghpn0pqqq";doc="1kzw8r28invf2p4xcqfws50w5i38rr7wwzf7jx2x147n8b91zr7v";}; -rest-api-57068={run="04y8xai39hlhj6y78cxq2fqy7fis7mbpwzyk4jmgqd3365738615";doc="1w33inmwr66p81g66zxqiqccks965060034sx8rmjnjfgwqqgcgn";source="06c06pbqa8m58r0lcr2xc6zahf6gjdc1r2zfgs3q1b6czy6rns34";}; -resumecls-54815={run="19cw19c4a3zn5gvsngcxj6xvh2qq5n5am0sdmg9zajy9lqqp5nnf";doc="17z14r8yj33mjjkydzaad1bm5nhvrv5154n5n6snjszd13vgdyh5";source="1mm53893g9nqp3wdks6qa22k4pk71v09rg98nm1i1bz5ppn6kj18";}; -resumemac-15878={run="0nixlk46dpyay8zsxrfkcng23rdyx48mnq8s84xs5whlrg369s3d";doc="1yln2mz6awzafpmrlzi3s12zj9m7qfj4laqgjpy4783rxdxy8w57";}; -returntogrid-48485={run="0cfik8imjgrhgilc7005cgy31h1azjk15jrcvd4vpf3g5ml1hpsg";doc="1plnz793nhiq9y89x7i51bgp9d18kbi0bpwslg982hf65yklmiwr";}; -reverxii-63753={run="140f6n41kdkbg6fivz7rjlc86fvcxv2nizzfb511s21waj3lljdd";doc="0n67pqjal4nv02viyshdznqwd5xzc3s8v3w1zxykrphccic73nlh";source="1asb5s8xvns7l54cdp6gshcirdj0wcwhkl791jxb4c93qmb3pyx1";}; -revquantum-43505={run="00mcqs4zd33larynscqza6p18a8payrgarwbgdsnnvaqf3c2rjnf";doc="1nbs15bl80yl7hrav0awm43q4brdfqm83bpyf2zg00yz5pjm1497";source="0dqxvcd5yinnsal4wydb5ybsldsax18zp016p2yzk212rk61rikd";}; -revtex-67271={run="1l5kvnpz3ravhdlzshhgjw19mwm6jggpsplgmdwzbn6pmwnk0wzw";doc="03pyr8hd55dl40wf50f7vaxkwbqcsmajl9hqaxwq878pgbxb1zmr";source="19ij6z0zal8321q616pk62mcyj12cwb12lw6cgpbqf70g61jgfwl";}; -revtex4-56589={run="1v1km5grdg72mqf7sha1laprwhhwplrklax9mabhg13q4c9k8dlk";doc="1709bsjlka0d8x405fyac8vpmklf92qhw0qgmzvbhynhq4sc85b7";source="031vqkbg38iwi92yhvd5xdmmkbjhrr9lm7ncmlwgizf1y0ib7wpa";}; -revtex4-1-56590={run="13azycwjj9ihirfkcgmjrpvjha4wngmgkm6irh3388zwjs2sh7sj";doc="057yf32dsx1j3b89wl9jqrafvib8p0x6l3w3zk1c98p9vp8c0lm8";source="03dy16s50bkgj2l2zkm3z6mzf9qwhrax7cxll2p0rxxwfgvpgh8a";}; -rgltxdoc-53858={run="10wpra4vdjvjsq8n6iz33mnl69b13jbslp6ccf5b61va4v66z78l";doc="0xsz70p88ij6djhlf7n1718fxqcngfxnyl60h3ia0xi1gjzrbk1c";source="1vzldzdqyiqfaims3a8w378k4bfwxyznmw6028xvwrk7abq1nr4f";}; -ribbonproofs-31137={run="1f7j2v5233fvjzlrlfliy18gy890mlr2n2fbqfhh88f2w3z4nw2b";doc="0gqbakw5jdamy0q4rx8y19xkdnb7v5arpkjmmsxhvv12pk2kb3d3";}; -rit-fonts-67659={run="0gsghvmn1va4idw2p62r0a4vr5pdy67kk75f73xpkhsg4i716w49";doc="047lhzb7h0sq1bwrh0a04ank09apii7rh9cdrx77ngrnrk2fz1a6";}; -rjlparshap-15878={run="1af2a5fmzx1mmk0vprx8w18rqgab0dcm1c7sfvnh7v59lgvkh6rv";doc="1is0ny6a5ndhgl441vrv7ik4i0br90nlcddiabgmshwyn87kiciz";source="19kvfg03r3nr99a9ylk3yr6nnq8r7cvfp3rsi2vi10m19jz60ssl";}; -rlepsf-19082={run="0ycf0md4d2bz8003s0q4xi6qdjspi8z1dp5040cm3qm25p7jsrf4";doc="1asi443gvl34m648ap9j5an6fx5x94s3v4dp8bqvygn615jhd0na";}; -rmathbr-57173={run="1jlafpdjryj0sic2zpn5f90754ydnfbb74x8b3q19klm3n20bsr2";doc="1nfcd9ypyscqv3ghlaljrnj4rm2md5h5k6yl173n15zrr56sxkfd";source="08mzgxkwk6frzgd2hq8fz30dliwrkrk23xmqy9p0qjmq9vi7vbf9";}; -rmpage-54080={run="0y292gcfkj0nk8090iqnlrx9mhvh545im2xms080kz0l1847frpc";doc="0rq7xjizq8nwg9zk60gjd9vcjvxyc0xaldc4304nyihfjxfyd00b";}; -robotarm-63116={run="10xlswn7bkad45fyv9j70pd77319mynldwk530y23lc2874s3yn2";doc="00qwsv5vxidjzkm31v21sbzd6rp1pvz2vrs66gmlm1xbfsv4kd0p";source="18zffnyyhc3mp8xpw7bc52q29z3skqfxg6h6x4b18mi9jpyd2x6q";}; -roboto-64350={run="05ynyzlrnhn7q95ld1midxdccc7kv209p4x53bi2n8rsjmp9sp39";doc="13aqrvxs9vhy8bpm42fx1i47m0q80pc4zm5gh2bllrpgpqn9hbry";}; -robust-externalize-70605={run="0qyx3acc98kwwff531xf0d763zc41x1r716cnf9j3h8mcbm0wvmb";doc="1qgxnwfjfm18ss4lf3lhsvg1yql6mgvcjlzmdyq7nr8cgzp3mkxn";}; -robustcommand-15878={run="1vxsxdg6122psbplm22l7f193fv7rd3dadcg6ys4ngzy957acvig";doc="13d5rsj95yx81bfbansh964dig4hjp5raxagzws58f24l8imvfzn";source="1zgnyglhz8i6hgzxlj19kdw31z9kx44zj2vziwkhcpr9clxl8as8";}; -robustindex-49877={run="1fl9vr5mynjg8w74sk2jh8vgj5yjpmyhyr107iblmcicgwv1sd9y";doc="0xf592xvmh6xmw08zwwcsn9xyadd9637vicnz95fbfpp03p9qjnq";}; -roex-45818={run="06mry55hqrakkc7yb7b174cx45n0frk3isxw96p4v77n9pyvlffk";source="0fwcb1fgz4kxbgcqm34s5glswj43wzg5j56ak5an39lsw0wirs94";}; -rojud-56895={run="1cmpg4w2pqwvr624kc4rv7kvnf45c2ffqrryh0i7kbqgc22xly08";doc="12y4cph62b8rag4dxajpzy7y29kvnb3n0z99s2vcq1hfscyijn12";}; -romanbar-25005={run="0p4a1g1s22s7jq4ahvpqspx5gkd6nhwifbf1shjp53f38myy0bm5";doc="157glkgzh4c5zv15akrlvfl2m03i99hfrm952x919137jkvjbpkd";source="0w70p08k9k1bwf9ls4wgnclp4iqj4hzn132ny4s11lzcaj4v8p5l";}; -romanbarpagenumber-36236={run="0m2772qfl5862l6m81rrx4xcbj1s7vhk9x0ywsqnr8qxl1kmv3h3";doc="0mj7kh8jvhscc4clf2199594994xdx557q0nnsk95srwmncq8f50";source="0hq151qq6wb0q1xhbq6jqzxfh3zss9iyya5wxv883a8pd79rancj";}; -romande-19537={run="1bmqvxmlv2065ifn6bdy8i3mj1g6pkg44dhjrfr4sj5g8dihhqq0";doc="0fgbq36nzkvfw56rvqajvz8krfd84msx8iykkjizn1m5zkqb4iv5";source="1v8360kqvxidzkq8sgcg8k2cqhl59q7bmrk3gvf9vg0shrbvdr39";}; -romanneg-20087={run="0y9nlxbjyiwivw9jkc0vz0lj3b0nvj9dcd4sj0gxgxa1dg853rlp";doc="0bi3b9991x1pvh8s8yrw5031jkvvwkrwah78qfd5rlywh2ylnrr4";}; -romannum-15878={run="15zjf8wbjif83vnib3y6vqxc138aplb93nfkh95wl2rmahaigmw5";doc="0a8zsbh28jl761ir6is1l05n9jyvzr31y86qwaa714yxwpzak0s4";source="1gnvnj1l88l66mrhvd50cx44wws4a45708jmrncb5mnf0i6v7ci5";}; -rorlink-67461={run="16w0lixzj403qgj8yjwn7v5dg8114h91kbyad27y26z7c6q31dq0";doc="13z72aidbrlgyplr8zhjwhsyk4q1hja60jcw8d2l6275j03ykls6";source="18r6gjh78qfjqp1bczcrsdpzddhyfyj152z2r2i5pjcmdjp1806r";}; -rosario-51688={run="1jqgz4cxiq3md1dldlil6pslxxrp7brr9hl28qcf6akymnfxx37f";doc="050yna9vb9cz026cyi44f1qc596svxvf6fgyxlby2isl1jqy89zx";source="1bzcpxygwsmcg91nxx8lxc9skm5cr8hbz47qmydwznkkzldkdbh6";}; -rotfloat-18292={run="01ycgag2ip0kxdsaymfcndmbhfcc95ppkmwhm3imryibm9112bv3";doc="17x7jdnrnm333cq706cdkgzcyscq1k162l0rg3qgvknig6991v64";source="0ymb6xbsqqj91b9vkfzdab1ip0xqqj72zm1kd812gjgkpgxc3jfv";}; -rotpages-18740={run="1pqfkyqs8ymfqsvq35cpv438g8a3az6sajh2bszxncl7m3rqa10d";doc="069jlj27xa7vnl83bx5m4k79lky0ayvcl13gqxlk8an5kdwmdr3j";}; -rouequestions-67670={run="15265sdg56vrc9i7jl55rqwmhjzg27x46qinmzr51jws1wls9l5v";doc="0gj9w2yv7nvjjr50jwaagp6ccqr537h268sakms9fvd3hx8awmd2";}; -roundbox-29675={run="0607rknc69dnzwajmgaq1n8ixv884bqp5n9m1g6n2d9frmmh057i";doc="1vyna8wndg79vman54sv24hbdlv2jnrdkiwyxgzcwc2zv29asxs9";}; -roundrect-39796={run="1xjfigxkgcszkcja58jd2w1rhhnccsl665p0k20lssb97wmdzjxg";doc="0sg1ck97k8pbg2fjf99mhpvd251plphr5pk1dywmjniy9vmhv1ih";source="02kk3h77drvkqanc04bjlfzg0scprcs78z3m2zf8gs6q8w95k7pv";}; -rrgtrees-27322={run="0jihs23929pzbgpgnb2v9i16fcil9kxkggdv1dvg6xq9f2fh21md";doc="1skw79hvvh0xkjff4bfl0nqdd8znwhhwpdx33v8ns43xxamzmnwy";source="1q7y5mbvnrykrp87kljcxw7zdglh08cqz92iahdsaac4xffnz6bc";}; -rsc-41923={run="1ljdc1qyy9ziqsq2z6p13jlspjpalbkk9i5xmqrjwhbqz88fa1d9";doc="0ckvfgw88jhfr91ii6zahrziigwsxfaz4f9rmc7ca2a5vk5yqc90";source="01v5zc947vqa8xpsam5pyg8vxm4yygphyv5hji0r5dmplak0q5gx";}; -rsfs-15878={run="0q1iqlkq6swy905jh73y42ya9zb55xvg9w991x7lsmdxc0bzdf8z";doc="069cpd747d6bk7jmmn1im7jvfb00bd597l34p87vdjcwbk3bzfvh";}; -rsfso-60849={run="1h1hzsf74jll793qs51pq03b2l9szbqagn2p03bcg0f3lgx0cxx2";doc="11vjx0l2dx6cflvypgv4vnaavnmkgznkkw9zizic879vihdzrzf2";}; -rterface-30084={run="0wlscg6lhqar791sz1d63mnprxvaqvjx0mfk1pi1c2zsk0lnpghs";doc="1ghwg489y801j2c1s5c7qpv9yyh4g6higapzjw95nmmyf32aka0h";}; -rtkinenc-20003={run="0q024qcai2slxd0ral92pzzl4apqn5gr8gj3vw7whz7432m4z7gj";doc="0kr27a2294bj80f3qria15bjpsvgifgaj27zv9wj11rqr5g4zm7g";source="1kwg3qbk2ldq5mirpvg0cmhd3nyz79jfdbw7y37s2c86g3c5j0i1";}; -rtklage-15878={run="0wrvj1d1dmdff3kqph59jbyg22gvz3bhpnyvjd7ih7vzfi4b8861";doc="0nc926q2arbszwsq88dd96spaj5xzkrfng34m84x0l8wbiidbvlh";}; -rubik-46791={run="03qnnbqas5qrf6jmj90kgdn9kkliq8ap70z2b9jyr4rzq8m19ryw";doc="16jzhkbh8m8v8cb0jyifhz6dcdn0sxzi898dcyjrvf245zfwk618";source="1cnkay6vn88p5l5jzhf5lzzfd39p7pbmz9psc814jvlpqlzx90fy";}; -ruhyphen-21081={run="0pizl8szphgyq12sbpgsw25x88svj6vmf8j7ry23hvc9bvjibck7";source="1s0wscvjg6hj9f8arjsp7b9m7nqszqxh2wyjrx9i2qb60n2kaaac";}; -ruler-54251={run="1ikap9dkdw9lzpda0f2krizqbfkyjxvyddils7clim9nhg77aq71";}; -rulerbox-50984={run="0srxrij0sxvm04n6zk4vq4qqmxbjz3v425nx191z96fpjcssx2cn";doc="030wrw1ry800yixlgb11xbm5834njv3ad9gl4jv08x1pxkj29vcp";}; -rulercompass-32392={run="0ky611n65rvaii9b5ic498p7divfm71h843bv9h70v363mki9a0q";doc="0wqgnb9czbmymzmv7j48lgdv8s280id5sh8mwv6p0jqn69zcpdd8";source="19943zfp2rm3gdm6w5db01w6r1nl0kn4zkrnnxg4ic4n3gvv76px";}; -runcode-69471={run="14kg5vn2a3p75fqdz0qm1xjg1nyvhmyab6zp0dw57qxxnzbpf1sx";doc="1s421jdwwvpbi7qkgdv7y6y697d7wfg8d95y78113z2p2582zhrd";}; -runtexshebang-68882={run="0c4rsadkk9vxcax1r0c0mz30krw387da9ildvjnh88ll7zgxv7xx";doc="1j72plplkdlazbqhpnykwl5fbszr3lil3zg9a91aih9nzr662vrk";}; -russ-25209={run="0jr0x81xc1zi9vhgvqy0hcga48nhkj9z2n4rd5303b8h68n92yfd";doc="02dl5mh45z9n2b59clcqnaj9fsv79jw46ph3303mlx7plyvdqj8z";}; -rutitlepage-62143={run="0gslb7lkinbhlqdgp8pb60h9x6ajypb5991z17p4d0jwifz063jk";doc="11h7ppnimbf6znqla0r1vq8six0ri5ihzd82dj66hhh6ic5pq9bx";source="10k8l66sjzdfrg6cbslx19a8nrvw7w5xaicn78rkkf095pyh1qpy";}; -rviewport-23739={run="06nc81iapfymbp0kxfk0srpxilfhk94xwhslv6az8n5a3bvp2mq5";doc="1m4xvkafdf2skhclg60fjgvyd6vd5y9jrn3186q0hdi66pa7dl66";source="1hijca49b0cvh3w8dqwng6wdssmg2fjjj7ga9ifmziznb2k4qng6";}; -rvwrite-19614={run="0gb5j3hn1s28ar9d30g158xfc2vaavhm8cbmivr1ba32njdmmqcq";doc="09n9p9q4pjil70ydk9cjh2gqxdslnhrg9avfhj0vvfacknbmh312";}; -ryersonsgsthesis-50119={run="0zn3hp9ipjq3624h1kdz1r55wxhawylxkmh6fi7v6cz37cnn36wx";doc="08bylz7p9ygmzy6m8h7w33l4lch9iqnaqnb3nxw30d5gp0rsb3j9";}; -ryethesis-33945={run="18d9lw5inr4fxxk4x4xjxnnvbp2agz25c9h328gi1c3afsmi4lsr";doc="1jy3vsin13lpd8q5piia1klc08nfmhnx0hp9hl8gnz86h53mc5xa";source="0chmpps2q20bkwf7p0yxwp1y6mak5hga459vpji5sl754nzbvxb6";}; -sa-tikz-32815={run="1hmxifd6zkq4scfwybz0j4za911r76v56pczgym1shx8lqadsjcx";doc="16yjn7zpfwsnwg0mpqzwqrlz6v2bf1gf7qd9hhj28kzp0qgdnka6";}; -sacsymb-65768={run="0s1w8975ihjffw4mi44x91m8z5cmv7vpwvbai0n5sm9f21mwgvmq";doc="14mnvqqpac30qwjld1vsa6ky1qni968a9kxlvi8nqhn2n12ng3bf";}; -sageep-15878={run="0yavixnkhy1y69l38xj6pbihzm83ncvnsl6pyr3l310hif6r0wcg";doc="0z2n1511lr2m39vn4bdamw8xbxlw92p5hrsxzrnjlrg39ysymsyd";source="19547avrh6yv2v86w8f7b0pbvh8xvwa5z8q69bxcvhwj0jqjicps";}; -sanitize-umlaut-67126={run="1hif269aigbfg3j1f579c6ipvlqqgs0swlzamxdmplbdxc55i9b9";doc="0nh23n1yhjyf21l9sr8y6yw7v1mil403idqa08prvrmnqhp1d215";}; -sankey-61874={run="0njrbv0wghzsyhhxlahy6gc4jbgyz4q43qzqc3jb8lln6s6yn6bj";doc="0v7pfxj823fxl8w8v8khgnd64g0wr7198071ai7s6bpd9byq3pkj";source="1qr7nfgh8zigjj2hhwsvhnd3dl6933dfaqjidbraid3l93af8ynz";}; -sanskrit-64502={run="1w2qni1pgzj2mafglzyvwfk11csfwz83gbcq1ihqabxsy3wqvpqw";doc="1ss9shgz8q2mdhs2q5128pjgcl9ldw0bz97xwf74346625n4wgxf";source="1sg4dzb24q477cp83wn3wb0w5srj373llhx3fnqc9cmxfb0rs7ag";}; -sanskrit-t1-55475={run="17mqm0iapkf04z5wlj3qpk9qlz8nnq50bfbibikacdanv3852m8i";doc="14g53969gw2azpn7z81kdwc1m1hz8mafrz15kzrfiw9w6hh7s6jk";}; -sansmath-17997={run="09zi9xps6pv6pjwp8pjiz6w4zqa9d3rwqn38167k2dlwnc3ij6g8";doc="103h78a075lh094slfwlh2yk4dbl0wryzmsksvbp80gbv8w7llpv";}; -sansmathaccent-53628={run="0653qd7c2lb63lbgjrbac7kwl2lzygz694li1clwxlkrf0bnv1q7";doc="1r7dqwn7vxgg51jlsgx82kv79fxskcdz6cyhkdbwgd2f3rmkcm5x";}; -sansmathfonts-68777={run="0bs5n1j7gm87a3dcczjmkld4h4ql9q0kbaa07l62vdvsv0zhfb1x";doc="1lnkknp1axxj0aighhj3cmv2y1bcka9f2a0678g1wqc87kh796j1";}; -sapthesis-63810={run="18dfh9msd4w3gml1h187sdzirm8g44dzvdgsnh4d21nnvbbxzhnk";doc="0cy0rhr5lc4k9jz744jy4s9pf8508vqj25xx16qabfi28rqqps3d";}; -sasnrdisplay-63255={run="0qhvx1nc7v6l2gq8c3av4sqsjlzm1raw6cmrf2lls7dg4dpz60pm";doc="10f3cr5vfdgb7g0yw3pjqdfiaciwb81m2gssn0in1hv8izy09krn";}; -sauerj-15878={run="1bd9cvx40skqlx71hnfrnc87b2p1wrw3587fjxlp6a22yhzghhvq";doc="1swlcqm2z289ijbxnv7aib0v0aisqdn4l2bfymvn268siz58l4cg";source="0l5p9c0fl1p7gy815l5064x93msfgb6z2lnvm2x24mwfnfpykrqg";}; -sauter-13293={run="037skfr46198y0vczwcy6dzq9ry8w5imj1ih9nfy9mrb0hmj8caq";}; -sauterfonts-15878={run="0x2j4rz8n2v5qw1j71h2yasjv2yh5g503svjrcy70n27njcic2dy";doc="0r3xc4128x9nz9wqqs9y7a45lfgll99l7n6k87cb2zkyckr0kk6f";source="1k5fix44afwcx3rihmipji2zalc2zhz8m0rcpybpz76mzqsrc1fi";}; -saveenv-65346={run="0j100cr2w7qii9q1inmmsyf5xbk729qypnyrin0kwf12cvbj2b3x";doc="1j5zi0qvkwx4a1099ydx0hwb93cdmf7y2q6sa28p3gpsh0fph8wq";}; -savefnmark-15878={run="09i4rxdm2agj06fwggg9jznjwdgvqlafhmf8krncc6vsj8h4ih8n";doc="07w3im9nz2s72p502gzryyrccj4g980axvihrk5b5b3w0qzlpn4b";source="0wdb9xsrfddi3sw3g4gppv7vn70f3czjplgbr7pj1hna8grig5p8";}; -savesym-31565={run="18z0xwarbkb6cm7n29wasa04d92g2pirlzsr0icnzfip2f4j7524";}; -savetrees-40525={run="0bzr06y314xa1r105vrc9nd37akqcsq58j0qxzlyhc8jvbji9ajc";doc="0c00z409by0qp0if8ccrah81601w8njlsdylj42achqr1f9q8rvg";source="101p1q1in7qp2nrkz48c7wqfdrg6mj7iqxwg44aqaib1wb27g5ak";}; -scale-15878={run="0al9axcipchrzc9a3dscmv3yvzwz2388w8knr4vw51mn72ws12jj";doc="1fbbdksmcrd91sixwkkgljnbk08i9jfhc751vzggrj87l38ym67c";source="19nfy1dcq5bd23dnl9aa8jimyif5sil9lf8b4hspyq7cvzcjcplm";}; -scalebar-15878={run="1q9jqf46j12f9rav2j4ngr52pqfyrc4h9xj66cgb3mcc7nqgmc4w";doc="042xgbjlibp1273400sg7p6fzdzbnv344dgnrs3y93gk6g7vf8k6";source="088k5a86279b7iwci0wzxv5wnqifqiwc5kc85701987x5qiaajhm";}; -scalerel-42809={run="0b4ppffs7zcg3y6i3c6dnjb2rl1xm5rz7k5mxm08qj4dpdhyjfpi";doc="1js1z2fkxy7ixh069hmg5cxm33xjwwg002y64m32wj4ldb7shfk8";}; -scanpages-42633={run="15q22kfwbw6scnx8q9dj3p0hr0m86lj2asy9fp9s0a15xsbhq1is";doc="03lpz3836rwk5nk2sbbyv9s0kvjbw5ld9cvw1n40b5hggivc2sgf";}; -schedule-51805={run="1p36glmixr7qadjj91j9rlzph03rp8hfrrfdqcg1ayyzkinr9a6i";doc="198yxgq4255q9bqjj141d5rvzjxq4rw1363gcwy40yagqs4xhxs1";source="1gc4zpw7ylnnv9k9kbqjf8r83srxbiqmqyy10xnp8gx7xrnbmnyx";}; -schemabloc-68445={run="0vc9hfg5gn0xs9gjv3c4dlrxpsqwp370y1b9v9iqlncglmjcglfy";doc="1l9hqsa743lanyxp4y2p6ifgwrdaxycwnmvdjzdl6ylzv3n4qm6c";}; -schemata-58020={run="1idrxgfzwcy31cdw07f1axv9qxiy2m2j039rj7m6gqqjwnzpdyfw";doc="0wc4vcn0gbwwgf5c7cxcb66w66yl4s815d6m1cj3dv2mcm83cjyd";source="1qblgn5msrnnaap7w1r6szdzphf7dgij48g0h7cyj12dxy8gm9a3";}; -schola-otf-64734={run="01i19k0xhha76zz34ccpq83lgnjw4x7p511ssrbdqmfgrx5q0gbq";doc="1znflqa3myy4x0m7ayg3sk4z7pja5df1jm7lkashrcrr1gjqcdbf";}; -scholax-61836={run="0is3py7zig7whp0hzga4d4a7kfs4h32w1irw4gmrjb3cqndg8w8s";doc="0m73qqh86cpgrrxw8v2nz5al0x850danniqyw8359bl26r8cj6wl";}; -schooldocs-69659={run="0b5cr9r7wsd00xih7ldgif98qxgw73swis6m4k8a7mx7xa94qll9";doc="0qk4iv7jd5ww6dk2n4wnwp7jg9s1ka0xfi3g9qc6y52f9h4blnkd";source="00w72nbz74plnbfkmhw08xwfxnkdxazr5vdrp61phh5vrk9lg9gw";}; -schule-68483={run="0ki63lqw2m5f4q5aal8qz6v8ldvlpbgc72pzw2rb58l56m1lc66i";doc="0xm09ndnhf93vyp3mwgns973dd4pff0jrkffjm2sfqfasc0lvk9y";}; -schulmathematik-69244={run="1dw6six3530vyb4ym05yzx1f7mh14kk9pd7187rlqzn9n28vzqy6";doc="04y8fyn8plnq1q01qg3l2i5hw1rdycsfhr6i170kxdishq7zavy1";}; -schulschriften-59388={run="08dsnba3p8nz3hnzh1sd5cd09ngg73vl8yq1h5l8qcnynwwbrcdc";doc="0vaqj4m0yxbbmqf51s107k28l2wms68w3km801lph4nfz8khaybs";}; -schwalbe-chess-63708={run="08aym55g3r9nn20xrc4m576q03lgdfxdwhgaac6j29b9jzac5wxz";doc="1s36x2mnj4ijn2785jvgk7mby9xpamh5ar5kz4ghpw64czsx85a7";source="0ls4xpj78311d2q1vacg4h5257wdf11as6x4k83g3m4dx30hxcvx";}; -scientific-thesis-cover-47923={run="1ggghh7w9grb1l1r7xg1igdw79jswcanyn49rpnwiq5rj4a09r2j";doc="1slsn30sbhxlvr73fk9infwjkw66p5sgv0ydkmarkp1ncybqzr6s";source="1qlxpsy3rdb10xxv1nsn817srdfywq6z1zgb4vb0hy3qnbd2rjwv";}; -scikgtex-66764={run="1hxldpgmp0k6ygry8pni0sz1bkz2mpcifnr7zrsabsx899np0rps";doc="0x73pwz3mwa7gpq9gmmdw6j7mksyknwbaihqfar5hidcg7n45k4b";}; -sciposter-15878={run="1pihppjlynvdlsin8brrhl2mg2jif3fa1mvsard686m4ar6id25f";doc="0cpyz5n70hsp5hjdja3pl1lal1i2akn7xawwcp983mqfgnp8jm7c";}; -sclang-prettifier-35087={run="164sdqd7msilg6jk1ivjzvv49amji4hb5r6wg51vcxmg069apcr5";doc="07s0y5dfmp26j0ayz2bhksdybpqb4cn439cvyifxillkq277dqk2";source="1y67y73f2whg663hw56fwrn6jhhpdpm81w32kzwc7r6sk79bnq3a";}; -scontents-62902={run="0hl8sr63b1z8slq47z4spl0sikxdyr0im7zf0vllspaxqfb4nh6a";doc="1gapcq60n48byiv81czq8h93jhhmhx41iddynl1mq5j2icq5g6wr";source="09n4i1jqp8pjdr9qrk956vr335cc54kr5fjlcdavxxkrwdbzclhr";}; -scrabble-69599={run="1r5nb64rsc0fp0l0x813f5d1b88f3jm2n8mf0f5scxpgmqg5d5qr";doc="1ixmz4z7h2lin80yr2f8kdq3c7y40amflwbydy8459yk25m70pxj";}; -scrambledenvs-60615={run="1r6a2k4n1h8n8svp40yraxjxy8xbrrj8d5srgz081n2fb7g6qdqx";doc="0ql4avpcccx92n4mqb6cn8g6zbq73238c4ilr4jj5x18afsg5f98";source="04xrips1nk27apwgfgr0qzn29h5nzs1810q66vlfk1qlmka2gszy";}; -scratch-66655={run="1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9";doc="0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb";}; -scratch3-61921={run="1in71jxpq9mljn7gvaslsnaji21d43yj6ckzim42fyd9zk48waz5";doc="0yr18cyzdfrdz6vs0slbgzgp82gklrmxh34k1p135g7255gw8k0w";}; -scratchx-44906={run="1rhqiix6dmdf9i8wan5xh0sw9ynawzb080b4izlp06d8vkfzx6rb";doc="1p263dcjk8mjfxzgppkbkh7l2p89kavdk6llkffkj0z8gvg8xaiy";}; -screenplay-27223={run="14p99gph5jvm0h9x8irh0c4mxb7q4208j5q0d8pd1dpmlvxvzsh8";doc="18i460n3p05mx325nh7br1fl3i1lfviy7jgl24yc5hwqyx3wwdpk";source="1fdw0bpf4q294yqnc4svbpyiza9bq7x2m0x5rc0x709c1wylqsyr";}; -screenplay-pkg-44965={run="1xzwvnf16djzsif7ff8b51dq98h2844nzkj2f9y6c75g6rhnyls1";doc="0hkxa7gz3sammjdvglvafwczn54m6vcywz6rwqng8qa2hlvb2c3k";}; -scripture-69232={run="098jk1s4xdvyh5pr90rysmxjhvk26135xfaxq985sazaz6lhm5yh";doc="02q96z886ijc0ipz2gi3dxnr14a67lhffajiqxq1s203m5rbrard";source="1pbdxbmar62z4drqyr31d703lg9yv5rscg2sw493bkym3lw1v2cf";}; -scrjrnl-27810={run="1p858dfbqas8x4ddpw81mf59p47iqj30yban2g70rims1wqy4f45";doc="1rfx2x3kir9qxp74halcwrn9zg8c4lm72jljspw040gpvjpiydm0";source="0b48zv36kn7bg2n94yl2dzwh9ba1fx7phpzljqpn44ybj1ng966w";}; -scrlayer-fancyhdr-63844={run="04cq94rm8jkkncb4g3dy5d0b7c3h8bahby4rsd028i0iiimaqnf6";doc="15xy198pn5illwsphn7x2hdh2x3d3ydqa3rqkiwjj4srq5japbw3";source="1b60i58229yc8mv07fls6an4br8p897sdg18lz6b4a56z73020x6";}; -scrlttr2copy-56733={run="1as8ipxhssfx4hqa4s246gfim09nl35dx1wanfc6p0yk79nm5lz1";doc="0hsyiicb359blk6m4kj5gddlzwphxr12hbrwbp34cjfzkbh5ib5m";}; -scrwfile-66872={run="0mvrg5vqhswmvnpf74ifld6fk2dyczknjf21hwmy7lyca6vn9fak";doc="0jhagc6ab9rfnb3shkn17dhfgklwmz6lg2ln77vskngxia5g9wzr";source="08dv79i1cm699rxpv2h2acnq53ghngc3cf98r7rcgmxvszgqlm8f";}; -scsnowman-66115={run="0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap";doc="1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln";}; -sdaps-65345={run="1s9vs9ffjl5i8lax4i5ij7zjv28d75sm7z8frssm1cj0fb0wdq01";doc="18096xagndh28fkiy4sd6nw23vik781w4pybqnwjfy9hfm3h6c9l";source="1l3m01pggyxpnr2nvqnvzwl12lsv7m3lqh7h27l77wnwip7sjhz4";}; -sdrt-15878={run="15p0i40aa82f9lgdiy7wn5vbkbb4z5hzmmr4g52w6jisx8c1w45v";doc="0y1gxcyms3wprp47y2mlfcc68gijyvyc6h10ivif1yydmxq1b2ki";}; -sduthesis-41401={run="1i8rdk8m8bc5lk35p7qd4pqddi3knpq1ylbxv67ij7g8sgrl9xwg";doc="0i7f9zjxs297hx3hd6cm70hkkc50wb1pcr83xk54cy72yqiq119p";source="1j6asblirf0x4f5zp8zbmpm7ak5nsilqf4ksxr4bgrca70vfava3";}; -se2thesis-70117={run="0qzdj8j9x2gplxjjdn6pwhrn0rrgxnr53pfmnjif76sfpcvb89x0";doc="0kzbyfaplwkbfnbizw2frsnpalkhzch2pm8m89d56fm4pgdxmrch";source="0jnfsjnhp0mf7q4w47ndr27qf9hn4v0djc7yy01vs6vybq9gjzag";}; -secdot-20208={run="0pnimi0vfgp5zsp0iwak0r0j562w59cl1fn3pnp1gwjz65q2229i";doc="1v8j3l2bh055b18zxl3287ardn0ns5qjgbqkj08qxz5ls912y2br";}; -secnum-61813={run="1zpxz6j5is9f2iaj53bqq2m73040lmzn60h9rwp9kzvlafciss7x";doc="0dabcwh85mvq73sqyi9zkbslzbhhns1sqrmvddvy1yjww0lf2q3k";source="1f8dfi9vrlh71bfb1mi2ll0gqcd6jbv5k96jpmvrpqy0pv1i2ckx";}; -section-20180={run="0rqlczfl443z7mjmnmndclbjy6qnqvla89s8yqwngzyms4z1h3v8";doc="14d7576idcbpxlw7hy3hsdd41gpiyksb9ajwnn0jm1mk2snzb51b";}; -sectionbox-37749={run="178z63iys35al6g5lavqgdd1lcadha9rp25bzm41gyg84f2hpljk";doc="0mk0ijbrvmvky4awh03y2q14ks4x9hr2pa84ia0380xfx56849kp";}; -sectionbreak-50339={run="097mwp2iqg6rk1xxlppqnks0j1k45b0hlrg84x12y0cgrkd7cdbn";doc="0kmfpgcga24kpzm9kwc066a6m4kzw2sfkhr815yc0y2a1agj3zfw";}; -sectsty-15878={run="03ixlxxs2ss5lrmkcwilrzi7r46krh21rli07y2j79p8l23n7vrh";doc="12xkczxiw3spyljn1ay9z0xrxdg9ziidnyryri4pkmsh5k60wxw8";source="0h94wh43pf8bphafhcmpsjzj26592c30pih0x3p7csv8dwbv6js4";}; -seealso-43595={run="1mqy9br1fz73q2l6czmhly8j6dnw51d50dkfh9622793z0a2cl71";doc="13sg11r8d8bd9gmscprqai5lbjwfvr17ida17836zagz83b6y16k";source="1yv4zwq6aic2wb5wiz2564mh531i34r9sl87y07yk1ad89kgjbv0";}; -seetexk-57972={doc="1bhv5xgv8jpam5apdybd0cggnvcizk2r6zs7lim1hmhzafpqqlcx";}; -selectp-20185={run="16kcbpvjsdc1ndhhflfmnz0igjyjc5k62gcfly447w7d13qsg2s6";doc="1frpv5dbxfg708xp03hs4vkgqsxjihn3yk3qvcpns6awjlfi2n9d";}; -selinput-53098={run="13pxqr1mzkblniv9rcrr5aslx887xjahjj9f27h7hpx6r4g7hk17";doc="0pbqch586hfwfjbm68g7i56d0jcgg6w26k6g2qlfdbk8mjpc4r4v";source="0na8byym8s2y2jyi1691cnw46izri0y6ybf3g0pmil2hpxy544ry";}; -selnolig-68747={run="1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y";doc="14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc";}; -semantex-65679={run="0hzp5i2zdnw30s5kn797bwz0hi8ldz6x10x6bgp157n9hvipqaj3";doc="1kd48bj4w4rjk8zswgxgjxj470zxnicr7mbq9lb7crra6ldprp15";}; -semantic-15878={run="1vf341vlmgc00d6srdwjm0a2spad674439ml9k6ir24pll39ia73";doc="0rr5kbn1yzil4h0j42v48m4mkqk8rzwcn05rkn8vs2s13az6djna";source="0x2qal3q0m886lw5xd9w200fkq4hn34qs2kqsr7i7dcq9xwl57qp";}; -semantic-markup-53607={run="10ahkdiwm4h5mwigkzgjiq2xmy1lzgjdif11zajwckv2xng5ckgc";doc="14gv3pgdyjjjj8l8vfa2pgzafyqlq0666hbk0cz6497g99z4ga15";}; -semaphor-18651={run="1fk3qdnkpv28zc8q172w9yn1aq8ff9ag6ql2ghh8aa64j9gygdsc";doc="1bq53xa67jshwlynsbqhf73jgy6pcd8hhdc5dbh83cgma804fyyh";}; -semesterplanner-56841={run="1d69y3s4hhv0lpf4ljxg7r5zg0g1fhjw9b30hhpkxvsbfdbl030p";doc="1a7a927gwspc21drqqb72rymyncip4b15w4q9cy654zdp16b5i10";source="0v66xizbjvlzvxdwamny8rggwb0ivwmhlzpjkmm7p26s5l9kd5m1";}; -seminar-59801={run="0a9sg439ahhhbyb3gp83hvnj4ap0f67xhnfj3p2i3k5ch7chkdd2";doc="1jlrrqasp1rf1kb2bjqlhs61l81h89y7bhi7x2liiwa0vyfva7s7";}; -semioneside-15878={run="0lmr3fxahcln1sf6fg4mkrg8dl3k3670wmz14kpyzd131g73l1iv";doc="1n7iy5qvd0f1hxp025w9x51llx8cwly4lc107iq5yz9njdwn1g30";source="0vshjv6nzbp29yza2vj4g8hfx0sbbgnd1s7ck8ms68zcv23534j6";}; -semproc-37568={run="0yvs0kqk3jwq5yw7b8wwycfrg1v5q47mdq3bprx7rb1yh83ip53s";doc="1ycq0qdrhxk9x9gbhigz3vpldc0dfhb3nwmz5v9i45v0l2m5l3bc";source="19v3w2y9406r5bhjchc6rsfb2brrw7f7sb8ikmr8586gdsnwykk4";}; -semtex-56530={run="151sfla597g5n0nv676sbv5m4kfpmjli7ddhd1yzsiqa3axw7vhm";doc="1mm9ya9ls0ryfxzkss3lfmslw9wrbcq9d5abf022ifbs5184rgnr";}; -sepfootnotes-41732={run="028x18s5c1jxsw97idpj8fmlzs6h46nsgd8zg0awikhdmypl9ac0";doc="0mb7fidrjns48c06pk7yfq3csac74a13i3d2cgfdvn7lxz6lp419";}; -sepnum-20186={run="1gawca8sqgvkgc92hrv0mjhdhh9nqiafxg2ssk7m1r5dqc091qg7";doc="19skfqlaz82ji5fzqzgnfaz642ms71hqhv2pavm6a8ifish8wcj6";}; -seqsplit-15878={run="0m1vlslfac4n7fwhrmcl0swx1rf80ks2p3psrszwd8rz79q6xlc8";doc="1wbmr7hayx3kzwmbr1w1hlhyyzz84skbahd03bw0akbgk0qziz1p";source="1ibiys9lfj92mklzf4lvdzn192wv843zxkv91grjjba8cvn12w5d";}; -serbian-apostrophe-23799={run="0anhf0xj3pm516sxiby2j3pbh0cp50ipch2s5dh037h8bfmjgsbv";doc="1r7fsgsggbr8gf973a8nzpq4rjjpmzbcqnwc8qrlynfiscwc2mjf";}; -serbian-date-lat-23446={run="1766dw6c8skacjbbcd0d2lvy1s57vjl84c12xf1w2q8kh6p4lqk2";doc="1k8lnnhb010rq872yc9d4m8s3vd1my93qydv7x8l80xyp64sq203";}; -serbian-def-cyr-23734={run="1zxl15y1j964sp4iys1rl4gyaqs13hi5ms9rhc7944p36rdf32p4";doc="0nwfxr85nf19ddk9b7hhin84jpimsx2hm45nzh136qr5jnr1g3hz";}; -serbian-lig-53127={run="004bfyajczp11w6bpb7zfyjwfpqwlwzian0m68qhmb3j95vrs3nv";doc="1yrwmr8mjhqnizsgvar8s4xaaw1f70x6zij5z394a86ygx1gx06r";}; -sesamanuel-36613={run="1a6673xpr0q8v7wr1rrq3n6acydsfsc3q6kmj0qg6hm7lzqc1f2r";doc="164hkrwdgpq5azhr9z2ganiwhzqxfaljm89igzprgcg23cy0l3vh";source="0n1akz8757l5k2rv188rnqd90dkmy3xppzcfwahiy22p4bzaw2aq";}; -sesstime-49750={run="0nrwgky0rh7lazd41h3jxlb0kgpk5q7hhbgkfdab41zrawjp9y86";doc="1a353bn7z135bnk2a8q57x4z8d03aimyjfqx3w9x0r81rwzns605";source="0vrwbbmfwfqpvsfz31yid9rxzdc19749fwhlpimx30arqpd88jhg";}; -setdeck-40613={run="149m9s33isx98vkl3498ywjy6f9q31jkw8schc16hxxm1z0jadnh";doc="1rp64i0nrrxn7l2g6dlcmfvwbq3rg62h2ifxrzfp3k5ifnlkhpz1";}; -setspace-65206={run="1h2cwbh7kb2hf3s399x78ij2mxj4b9pjyxrc7jjsr4ldx8hvf2by";doc="01v5nwbkap93zf90vx4a2whwxa0hbnscqqgcd8r865xfnzgc8a49";}; -setspaceenhanced-68493={run="0jqlpgv868qvcl5v3kgzi9dl2r99fx7k8frbzd3fj1yfmjvzb1vh";doc="15ln2969hhaic7zk6g7j66b5iqpw1css0qgwnppwfvydyx1ln6yj";source="068z20knb02jccvh3qm9a3rzpaki5r41is38v6ax9a2mxmv36y4y";}; -seu-ml-assign-62933={run="1cz01iy83gvgg3mk54vkc373smz4r47i8084jgcnr24c0gwr4h3v";doc="0f780ydm3ww7q2rar32lxadzda4mz8bccgman9j5ibwfsdnc1jch";}; -seuthesis-33042={run="0yfan3cpx7h7hrnqncn152ccawlrsaccj0c53kzza0wnkr3hc9rc";doc="1hnrl455lz61y9ybhmrvxjb66y5816sq3yqb76zszrscxh5a8h5f";source="0dw7ipk6l0mwgrwrj9sxg8vidwmmy22vmpwm6j2ksnznz0238yf7";}; -seuthesix-40088={run="07vjbiycd00r1daqg8m0b6g9k97ja0wn3s4zx7774av6p2hdhllj";doc="0j1vphdi9z6anvw7d3a20nasrdfgg8vrn9jh9wi787f9vy2xzdlz";source="09qpilk53k37c8dzc3q3pgvm6yf7i7a09ln0yn586wslvm2dmmhr";}; -sexam-46628={run="007lxpvam03cvldnq9q8l2p60iymfijs2yc30cgj7i1lx44630va";doc="17rn2wf68f16zsr8p1dk3klqapw251zpqc2a7z3b7lgl4164q57w";}; -sf298-41653={run="05px7n24nn9rlrc02mgsndzxc5a397m6c0n3sbsihq0qy9zl6nqg";doc="0d3fh5dglipskc7cjcdg2n836qnhfcdfkzpalkck7b85kgq0zrbg";source="0afcavg1zs5ldi9fjhsnvsph4xqwy8jkhil8jlcqcqbq39z73pq6";}; -sffms-15878={run="0av956vbxjwf0pywp4hrxag1ypaj59314i3xqinq7xhwwxlr7g6b";doc="1aq8bs7bsbrzzl2bp7mg2ckccazk107ckjl7118m5d2rk0mf09pi";source="0fl3z3f3pm7060cfxn218ycnf1y7id8kcll960h9jvpqkq3dhx26";}; -sfg-20209={run="0ldw6c8aqqd7m4ahziqv857zkjk3ap12xnnl5k43dcg8n7apb3ix";doc="1d627ks3av63b142f8kd7g0fi1f4xzq0yg219fj8qxja4mm5jrv6";}; -sfmath-15878={run="05m3whw5xkml48yx93j9h46qmspnr5hwsfszb59l4wy4jfj66zk4";}; -sgame-30959={run="1axbv7ss7nh6nj6dzs4v0g6lqccm8vyvpc4qfv2aqij37qlyv23y";doc="0nj8n049lmin4j90an75p9bqillwx7wgpvxdm0jb1janfip4r5qj";}; -shade-22212={run="1dcpvvk5216znr2i0nn302da6vjixkih5nwix9m3hlmrd69z6hcm";doc="0xs86yjd9f6wlgz0dlc89iryh4rba3752blz07zrxzrm89fdq22c";}; -shadethm-53350={run="1miq7szfh1nya53vcn9kv3m8jb1sx8p1v7z5m3829ynbyiwr7z9v";doc="1gbjisy9miqp0mrciz793vvhj0a04vaai1ixi6vzplhlx9gknv6i";}; -shadow-20312={run="1avy8291hmmvbrqdn4yza9w8w7a7hbwlh38sl7288c6gh1hkyibr";doc="0rjfdi2hm07j418q3fvrf5pxflh1nfkhrk58nsa23fixxzaw5nlk";}; -shadowtext-26522={run="1pnnskcw1nq6m3rlvsa69dxq828dx0bgggg8n2p2bxnr9gmnba3c";doc="0lfvn68d48yh8smf4w8c1is67chsfnipxc82fx6mal1czlyn73hf";}; -shapepar-69343={run="0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b";doc="08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph";}; -shapes-42428={run="0ww9akd1cf6nr9jk00qrjc8j0d9ryf7f8hc5ywmnz1q1z6mk1fqd";doc="0qh721vhyny3xmkwiaif3gdmk2bhy67mvyfkc4hxrba8lddnkfqm";source="0g3xfni1lmwdkl2jmprnhl3yxdrmilr6nb59kvznwph10h1c7iqd";}; -shdoc-41991={run="0casdf6vn89la2vgqy5zcc04nlsrqpiz0zj7mwlf6w2zqcpmr1x6";doc="1vzz7q88xq2dg3r1xf4idgvdqs4q4w5lplg9rvi867qa8qcf3ly2";source="0wxd21fs45f9d5y2ml3w50d7z8ig25gv34iy3mldarnqi2v64p7z";}; -shipunov-52334={run="01mckfm6ikchmld5r8mdy5x472avh473bfc7lk4rqan8p4wivjrl";doc="0k6x9nxsqcg74z9i462qix58qycf3wjii5ld13xajn04g52bwvpy";}; -shobhika-50555={run="128p64d6bc0m65nwdrjr35b7rxlx21c025vj8bk6n1frfg4k4lzx";doc="1zxg9rxsdf15jn0hn81p20j0dbq1095vqrmh7d5mzhlhnybkr1kg";}; -short-math-guide-46126={doc="1wjcjgw0xk4zx57f364cpl57qpxj3lq4lahlkbk6iiin1h9v2prf";}; -shortmathj-67201={run="19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06";doc="1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx";}; -shorttoc-15878={run="0y1sa1l5g19arc5wdnqp0jzvqn51m4gb07acpcp3ajqq7n7yaf3y";doc="13nlpmb1asrx8vi08kb6kcqg6szhnzb6667crj9xchbk3zm9iyil";source="0a3hl98rl5qadx1mqqla9hw6i1s3324i4la2kwdazhxhvi6nxm0q";}; -show2e-15878={run="0mhpxhvgfnzwwzd9ahyzdhqxzqz9sj6vldrnbjy4n0r4fv6c67pi";doc="0zfir9yzh3mgpkldcak7hzal0mwls90h1m5vxiax6h2izfkrixfm";source="1lnhqxazyz2gfgkgbj7l2140x81bgsxb71y8dagcqazjzdmqgcdl";}; -showcharinbox-29803={run="013an5sq2kxrfs04k51ldc9vkixag1lbicl614sbj3n3ixgk15db";doc="1zdxvlj1jspgkws4xmwa8yy7aaxqwr33lmzkicg6ayy465jmfk9b";source="0b8hq68lbd0xjyd1cj3qsw1rd4rvjsihd6s9ab5v3a0q1sm5kaw3";}; -showdim-28918={run="1pb5qddnvv4kl79fcp20zkcfgxm8p4zix82g9431db3bbavvmkri";doc="1hc208xi8c4ihxb9nsk6y5p6p43yyylqh7jgy8lai2a526xm2hgw";}; -showexpl-57414={run="0gg8bp3pddkp3z79z8wkh9263gnxhcn6vxhgp2mq7w8i166rrsyc";doc="0dv60pc2p19bzr1fj2hqkgyjry9j8ykcgsi0v3xpvzh91ic9v5q9";source="002v6m0gzzx4kr8vnw75czn58cmzjnyyfyzi2hvfx9ykh7nmibng";}; -showhyphenation-67602={run="1qbgbs9jc2i2r572187p925wjyw6zi1h3pgpyr1ixz84ykdjc2n1";doc="0qrvpapyby3bbaxh84529fvhgpsvsd8xv1020q832ad5fay6rm10";}; -showkerning-67603={run="05jfqr88hcx4mq1fq9hv47921d54947qqa3jdgvk529d0487lcqf";doc="0ggkfgf7zb4jn6icnn43w4jzlklkdw7f0pqyksf00mgxcx041fh6";}; -showlabels-63940={run="0v3azvk9minc28bs6n7g75c0bimnf2ilw1379fd8hic59h1vgqja";doc="1l46xsay07ysg4d63x7mxkavvd9cnjwmfcmgnsh1pg4icpyhs055";source="0vmh36ia7s85bx51hddga0mxb4lcfrmxk31zidqk4kkpqmf20mj9";}; -showtags-20336={run="04m7f6i3992p93xz9rlfa0vnil6h9dyk7gy1v7ih47f1m2awjak8";doc="0i0iaz4hlgf52g68znl5a3q366hd8ygad2khjs3y7hk1fwqpz45h";}; -shtthesis-62441={run="09g79h7dwc0v06h06svj3h43q1xf31fli33xxlqnckz28i1a4y95";doc="14fqspd33n3r642mvmiamswjl4qjda2g7p62amxs69s64cqfliv2";}; -shuffle-15878={run="0laiw8v6izp53c8y0jf4k1nb8brvs36gd937nz2i2cvnpghz98if";doc="1wd46l86h8vlxpasvhnvjimsfrhrbs56i767v2h7bdl8yp751ycl";source="13qz2jc0f084acxdsf99fj22kbsjkr6i3y7pqzh1g2jd4d8bbw8m";}; -sidecap-65618={run="0g6j4mh0nxvdvqyaz0b0756y1xx55zxwrn761xz39mmw3sca3yzz";doc="0yynp2qmq6df47fzns8jq5hkbhkj8p3il3prq4l7pg1129278my0";source="0h0s7hpmx4ha318zkz6caxq2ckvwxxv2fbkjy7a3pfs7q2x9fal4";}; -sidenotes-54524={run="1ip6ybhfihbbzflafcqfhspr1d1x44285msahf7f9ilmhd4536x5";doc="0f4nqbw2y36ymgcj7ywy9gf94pcg09aqk4kjpankksgwmvyjbsxg";source="15kz5d5038vi03siq6lbbf97nng1024hx8zzgrasm304sf2c0ggl";}; -sidenotesplus-69176={run="147si778pbc8vj4jmclsp1qkjn68qli97b2jz8c5ij3znjaxk42v";doc="0vb5r7bxj9xn1nkzmqnxh32ar87fy385rf2zpggahld9v6l7phbg";source="056mv9jqp9lgysgk89hh9wwbnwi4q477zc3cw6c7hkm5wn0xcx7w";}; -sides-15878={run="11anl2mfkzkdv5qb0rfw7940z7hy5i43d8hh9nsvzgwfsw0x1qkr";doc="0gsqb1hzhy1qk29lhq57arzivkwxw1achz08ms1q8q9vxwcsf0sz";}; -signchart-39707={run="1qg1r76v1llj68iqk5imp7f63774ky68sv64xa6j4w52jkkswn1v";doc="0scpaw7l26fcqylcqspd0g5va331yf88a8wc69diw78haywwgp4f";source="1lx77qldn3d23dvs11giircs2pafm54094h6ipxlc4g39g7xc0zl";}; -silence-27028={run="1zixww8d87jymdvxjzjhvhjjr5f8fxhbjwqyzivki2rhw6dpsp2v";doc="01qb2z62da0ji751i3wbhq10rfin23q20r7wr0fzvqv163niy93v";source="1m5xiy5j8l0xy9731mf0jvk4f6bh7d22vbsgpjpvy5r0vxafgxwv";}; -sillypage-66349={run="11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x";doc="1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6";source="0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w";}; -sim-os-menus-68843={run="02gnf1js2x3l3y01hj10yy1b1ymkmpf2x8pl9qrhsx63v55chm3k";doc="16bgnhiqxmk5z1ifgci7pp0lm9sg3xh18irvrgbwmdvd088cxm4a";}; -simple-resume-cv-43057={run="09xsryzpnq33wja6fkrxy4ajrci6xcn0bx0mbsw37h0q0h65rp9z";doc="0gbf0rg3v1ivw631yl133iamh7kadclr089rby72al50xwnbi559";}; -simple-thesis-dissertation-43058={run="16byfnhfd1j14911xs1448yampvvplxy8l54by4qwq01wp7pjjmf";doc="1wrxjkgbvps1wyicwlhkx59xwb3vcy1n0wf7r7dllw11r7hdg6f4";}; -simplebnf-68959={run="1bcg213dww4ngpafy873ralbhp901c6xrsnvryzpgk5jrqw2d2bj";doc="1450ri57ci113csq9z54zj6284s8bn8rsl5y2xidl76rz9hdidgv";}; -simplecd-29260={run="0d6gw59xd1mqc991yy6k5jva88j66pd69k5sl5jrysl4rw1mxxng";doc="11fzk8p911v1myphghzpmkj7k62vk4sdicirys1jh8rd2cpnnwcl";source="16g6fcsr0nw7isqimjq29g0zyf72z11qx9xz36zq8z4khxsl09ln";}; -simplecv-35537={run="0b7p6d8y7xa8xs9i2qyljk2s992gprsr3a5pjalkkssa5kiz3371";doc="02x3nwmxdk9spx5crlaw1xdqlwah04m88zrrw4wdg0qjnhvv4mvr";source="05ikxmvflqz5m3qallwgyncda49dzq4fibllgc1j77pdh99cy3vq";}; -simpleicons-70519={run="0cb898rxxv36nlycmc5njnkpf98mk05vimnhiq69bc30k43jjap0";doc="1z2alswv6c1qykmgbnbz5754sv99q7kf17i2m4z3djmf9mqb9j48";}; -simpleinvoice-45673={run="1mdc6aij1id1jxlbkwfdvdv87yh55v5qyazfciffpbf91qm87z0s";doc="0lvk87l3xafl4s303rhmksfajnw77qd90yvzhdk126dp1prh7i6p";}; -simplekv-68439={run="0cw7n0skxgxgar8ks5nlcn70pyi60zi7n2crdbamfw3kgzdqhqsl";doc="1hqyfflwjdxmq289ngc25gbjm2mcvwxzm9sbfp06xszk2vhbjd4i";}; -simplenodes-62888={run="0rdmcmj583i81349m2hwdf0wl4glsfkg5vkmhlvzndh0n55ivj3a";doc="0sg5xs96agly3r917fvbs8mxii7b3l9hsqf2cpfpx5gwdlmwf0d3";}; -simpleoptics-62977={run="051635sr8yp7n44hw9wza6hw0b4av87yp42wkxwq0rshxldqgsq6";doc="1lwk3qq1rgkgi7qd8qxdjjfrnk44c1gj4vl01m1jl181dxjs7lp2";}; -simpler-wick-39074={run="0lm22wdxiwasv4igfsyjfi338qc7m985da7a9a6q8cm63hks2alm";doc="18hmx8b6zpsc98mmjvimdayqpkffwjjch4sjajbz4csjpza7nl98";}; -simples-matrices-63802={run="09kmqq2si98yg3ddnlkddn5gjlvmwd8w78r9d2xvd7g28wm1hjbj";doc="0zbg9ppqj6af49braf4hd9b0fklxjmsr7yjgbla6ckbkwihkqssc";source="059wa3qyaxx7ha1xw98rwa9w7v5nyhq5rfmajhba1crnp155x73p";}; -simplewick-15878={run="07rzphj6ffla4qz9pa31xnn25d420lvsnmgj7l78ryxai5amdfvw";doc="1ch7yqh3bv2y6282cgvqzm4pf5hgpfvlmpg66zcp44wnkq1sw67d";source="070f0zrnrf2sh0dx5dlbz6072b76f8iw03pvywhyryfgghfdfv7d";}; -simplified-latex-20620={doc="1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d";}; -simplivre-70317={run="0wqzc5ab1pcv7vvs7n3ch5bcbpmgi791hr11axc94daglmjbprgw";doc="0isjnr5xqf5phv9ysqnr4mxc983k4vhgikb7gl1c6084b7kcnbc1";}; -simurgh-31719={run="1nhdmdi6qbvx1nd92hxl8vkly82a9nxi7ghj0zpm31c15z5pb7rq";doc="1cw434sxnbgq5dbaidn3zn8i9az4q35blcx9lr6yf3m0yy2rl8by";}; -sistyle-59682={run="146493bgh2ghbscq69bxsngjfkl3k8g68cy5j28v07lxi3ywr6n0";doc="05hs1wd3wj8szj16wnmjfiy0g0hxgy2cc9ai7q6ys77kgjb0dpfp";source="0sb6vbhnqlixrfy9484d8im3vmgk58y7nqad9hm2gkd4p560cxj9";}; -sitem-22136={run="19z6zmwriwrlcpgdgn5yl2bzbz0fkn3p8g5hrwd368bq7wyfc8mi";doc="1wwnqhl3ffqnp5qxddicqwsr7515g6j53rx1rgi9b5z3cv42f5qj";source="0y249krv2h241wy8xbi5xjrxypa56zipi8fbmqbziw9cjjnz993v";}; -siunits-59702={run="06x797504p5lzb3xlkri1sc9whyjjz6a95gk8kvpympglm8fmpxz";doc="06saapj9rh5gbrj0npb9rm60xrww8rl1y5brvx97gj4qvc3i2pic";source="1clhfsmydg2xjajak0ssa9v5sd3id957si5zvyq3njgl9cpjwi9r";}; -siunitx-69922={run="0mv6ysgfhbjsn7zghm742jxxpc29q3zq6j1wnziq8mv6zgzcgyl7";doc="1wyw34vvbxmp4b54ld50kxhcgvs3my0j478kajr1x9swyr852s67";source="0y91wm6lykalibx10jcn4zm112f815ma3pxm8dz53mgrd8gbnb81";}; -sjtutex-69967={run="1l72xn9ylbv0syxbn53ymifb6m7h7bifh1s5bq654knxpqhql9dh";doc="1wbf0akvfzz8xi8g96bpf17b7xyjlbr61dwiwh5q127885gwlq03";source="12fw7j3h3fpn5x9cbr9aivldlgizqhkvwm2r995wlw6gsh8way66";}; -skak-61719={run="1lh97kc1hmz3ybb67zr7vr74z1zngwl2cppkhmp9cagm48j24am1";doc="0abiardppn7hx6l5h4zh92b9m2yf3w16y15rcvsspv1cb9sf4lfw";}; -skaknew-20031={run="14j42hifh60p6glfp24c2f5k9k34vcm0l3alqfqhvv68l31i05rx";doc="0i144akq7sgs6kwayl8c2yir0kc7czjs49vj6l5lwdcwbyryhh21";}; -skb-22781={run="0k441znw2bn13aiyc6b5hskl76hbhcpilc1xg4jw837dbj2v6qiv";doc="0qi7l9ky0y65cmcp32j93lhwlvflvz8didq9c77faq7ffgzz51s8";source="1rnraidwhkxlhk09ppa5k0ndqhrra4asbpjwv2j5dgf70wfm5vmh";}; -skdoc-56950={run="1bqgnqqv5806f375xjny7vjd831ymdnhra2rbgh5hwls7v9hwp4j";doc="08g7qrmasrl302pxq94dk13y2bdbg6ipxg4f774kzbp8zwqa2xwv";source="1qnyh8gqbk6dhkga2v9gg97q0cbbv8hpcc7nwjskwckc4jxplqwy";}; -skeldoc-57922={run="0fnkq85bidvd6m14m90w428ndx54fj2855sxsajfzyid63jrfa9h";doc="1jgg6h4cdz6ir7ks61lyq9ixczmhdcs34mi4llh767baffvb8340";}; -skeycommand-24652={run="0z5jpznmx09vc5klsvp4hldmlgyp4bwz25gp775kbmad8azad1x2";doc="09gmmakvxhvrh7k06vjh6ly1hmax1z5x7vqxyqdwi90ajh2zkmgc";}; -skeyval-30560={run="1an6ghhsq5nibwas1csypz9vmrmsj7jviamig1r9zzjrb5kzs65a";doc="107higin87d7kca6753f8f61yk3ypk5hkidrbckm1vzn2ci515w9";}; -skills-56734={run="15ra36iiz7i9qb4669j32b26hzmjyx0hann3kd12769f2khb3ial";doc="03j6cj9xg2fhab2a048hb2cs2ddqac6x7zfcf7p9s8zgzyqqi8s5";}; -skmath-52411={run="144iwn9hv4d71420878y7dzygmyyyr2l12gsqrbb44mdal68q58p";doc="0an8w64z7dvbxgagga33zar0m2l44327q4lpz59n75g7c6qswnv5";source="0finxgy2sj5wpzmjh5zfcq9l3dzka1mlffbgmhzp7yk57rrz9lr4";}; -skrapport-52412={run="03y0arbbj95jnicmz9d89vsyw178hw1410vy3ydvf8j88j8z57sy";doc="03b3zp8w0m5kffx10j7qnikdfy6yznvvzlg5hj30nxam4za51n91";source="0vwhckxi676ygxc18rhcsfnr5kp1j5697zyn7ir5qxhm8vdmqf33";}; -skull-51907={run="0v3kvrk5aqsfna30z920k237jql1byy12qkb5i8zlr73z4cy1ll3";source="17iby2rcnqakykglv9k1q5zmcj0h4gj4h2vadihvyyz6m6bvcx0c";}; -slantsc-25007={run="1a05zrd8bqiqgh2bwlll2wspmd4xnvl7p8mz3g4j7nkvx8bp4844";doc="196sqfqgxc7pfyi75d0nqy151if55k3wlvpq8ai7647rmapn17np";source="1jw70y8052qvjkr796sz9w0c6kdyammi3gy5v8iq0wwmf38jl8qf";}; -slideshow-15878={run="1v39pb9qdivrj26hpjbysg3hbdxfd247a346s5gdffraymiy9lcl";doc="1s40c102kkaa24w05lmlg1kw8fwlfnd5vwbfqlrf4y8807izbj4s";}; -smalltableof-20333={run="1g0kh262h9xv5zr2yix9as4ghfsrqnhj8y9gzb66xk90i82pri0j";doc="1q96blk44d3nv5bihz81a25a43vbf9b86d9w00cl9kkin1zzkf6w";}; -smart-eqn-61719={run="0bjkvgyd67v876dgzp6zwifal9dy6mlhqvjn2rzrigrddvvn3j87";doc="0m3ilj749zh2apxr0748dhhm6bfs0a6gnc02azjsv8wqj32bdz11";source="0jxbyx3fsgqmydrzjymqa3zi21xigqpnid46y1izam8vc1m78w23";}; -smartdiagram-42781={run="0b9rq06c0xm9dpd6yljvgay0p7xpglpddw10vlf5c50wma4xqjda";doc="1gkgpgnsyxv9nmhnpalshf23g0iz7bcp4agkh7l368j2h48d5xmm";source="0chpnchdqvljj7h44ybpkln3b7kjzr7b18cj2qhj66ng9cwpywwd";}; -smartref-20311={run="0g8dy72b8q65pw2zmcs2yipclpx3g445v9snjnyxbb3q82asqy5v";doc="1nwl85jj0d97djdqkczdw3544vhazy57fx8psdcvfdncbvpk84jy";}; -smartunits-39592={run="0jiz4mhyf4zaikq0fi4jvan27ngksrv7z5gmch88qj7fapg4xhna";doc="1cw6k8bvj5xakh909jq3x527jnmma8wa7dwp1za8hsajwmmfzxgp";}; -smflatex-58910={run="1w55jqw3m1a3s28hkv68vmqmbh14c7wnsv88z5qhmyqav1nbb13z";doc="17pffyp6d7blwz0a2yjdwa84lim9b7jbg54q5gknmwi02sqdqsb0";source="0xd02c6zzvx9av0xjmv8navff8ik9ibanmid9kls10jancp47waz";}; -snapshot-56735={run="0598yminjxp01imxrbzydqjli0i2ws1f9hw6f3qhs7xykfacbaml";doc="0j614bp2fydpzr2lx9xamn36fn4x0wwi5a58013ds2a8iiha6k1l";source="0bh7gy9inl30h8y9v072fh2malc07cjwizgxc6wvm07n2x3vidfh";}; -snaptodo-61155={run="0wxnac52wv3aknjs8vsw17ghxn77xiqffn6badyp0scyr7gvmkbc";doc="0036gs7ybs2ilhp4lhzc489r5ai6ffx0ha7fn674qzk3qn5j7zkl";}; -snotez-61992={run="1nq3ggbdpkpydaqzpfawvvny8azgbmnbwpl00wsl4rhi7jbqsfwc";doc="1v82nn2y2kk8h34j8gidrzlx8nwah5wmdk3qigw8aa1q7vrkj5h6";}; -songbook-18136={run="1qknajn3s4vpw68hwn0mjf9zllhba035gjgiwj807nifhgm2bvpv";doc="08p61v1jgw0s2bdfwgmb1zw5pyldfsy61d09n6qq93wclgaim7lk";source="1xzx3jxp4791imxw6h7gs1ach94k1w33f4p8pd4rvlcnwglnv9s4";}; -songproj-66704={run="04jnj92nva8agg4k8qgfqcd7rvwhvhwx3836464z66fdv6v4q92x";doc="1qyw11czqdhkpyf190asx8yi4wmcyxc71n052f5481p3xbblz1bd";source="16qcb0k59kkxmqavywdmxy373ck923xn8pjfzp6qssgjvssnbnar";}; -songs-51494={run="1q2fddi3z3d6f03y110ah1lc5j64cgg16w4hcxdd1q6sc6ccc61r";doc="06y36cnx42yms6b3mnpkvbwrl1rrpjy1jlafycy33ijx0sbpizql";source="0airs4wvpv2wmm2398sfy5sh40q0r2skha33999fkk2s9jc99jbb";}; -sort-by-letters-27128={run="0gjmbx6bk2c3nygcbvwn3wfsdj1lscpnqzfl6w8li26hws1ravii";doc="1p0dfvh0l4z4bd86wcvph1fcjip2rvsm22j890y607lfbqhc72kv";}; -soton-16215={run="03vldli7z2bsvznmqw5y6gi81ln5v54jbiqm53z464v76kp9w29f";doc="1i7b5i8vv88cjxvcm1adlxikqwvbzpzkiiksdn36in8msj23vjkm";}; -soul-67365={run="0hkxhwqmss7lsh600ggs8q7qx0dlgw63q482m8piwx0jmh4p29xy";doc="146ji413205b7igjscv9wfybs60wyn47d9q6gkzn8l23wamrzxwm";source="0lplpmk05y85r2rjzjh24p6slmq8319kn7ixxb3zjbzjp1lc44j7";}; -soulpos-60772={run="033c0arpqhrypwy5grpc8c6dnlc7k86iq5wglm6r02bdk4mcw7hk";doc="1g99lgnl1m7nffwdfhmmb4zgjwpaiq3pggbgmi19p24z7qc1sjlz";}; -soup-50815={run="00glliinyi7m5m6gkr0szzsp5drgnqww4k50yfb6p3qv1mlkqgvi";doc="0470i396sk8a6lnx189zcazns280qgyw3yvwiyxc1gs2wd812qr1";source="09db050wsnmpqxmba7w23h3g92xyzg0sqv57yhns5nwxb2cmbr2g";}; -sourcecodepro-54512={run="0vzs79a6bhvxap9xw9nm4csqm8x6m83nmsxffqckihkrbcbwnkz5";doc="04g53xmi3afzv76dn4pg9vjsd903rl0hbzqw32gr7hhgh60xwb8d";}; -sourcesanspro-54892={run="0j0qgb04yvwf265hwiiv581fy39cpr6i9f21k38xdgdi0dl7ghzl";doc="1lg7jxxcymnvbrhgdf6ddj0nahbr6g5vnz7ahav8v8zfyfw87z6z";}; -sourceserifpro-54512={run="1zwvz4yqvs5pcqwsig4sjkp4chsc089j0dl9mn8ah047nhr2d7z1";doc="11q4ppkw8m56bpn8s08w0zkiilfz6s5jv0rkqjnqbzn47nm3dqij";}; -spacekern-67604={run="0jf5rv2kqzfr2ji8w4x3cgli028rhnndz5xm7l54q5m5rqczb1ag";doc="0z9dyms40vh95wslx7xack5qys02hdwxr451d19k3jvx4jyxsl7f";}; -spacingtricks-69048={run="0ahyb2skb6bl3m37ppzb569y539bi0njkq26wkvf0qw1g51irvz6";doc="122xkp4s2wqqza5nxlibxyfsxs21n20xn3y5i9lym0hakpj7112m";source="1mbb835yyrzpk1qlqci0zbvwd64amxqav0z3vnwaxxi14hqr9laf";}; -spalign-42225={run="0wy2kliv3mrcqvandk3qbbqjbri6xq69d5jsi80l7qdiij86z3g2";doc="0jp34h19q4588rli6k0v5kg47j6i1gjpjgk772fkb7l0f5wln7k3";source="02qzd21qzb8s2jsip2fr1jgf11xd7xmiyi7fv0s9ylyfr259c5b1";}; -spark-otf-62481={run="1z9k0dnahkq2nfqs3plpyb3fdj48x8vcav0ahykd554fygv5h4x3";doc="07pq90xx911rdjdyr0sxg4zqfg1yb5kn43xc5l6hn0y81m9j151d";}; -sparklines-42821={run="1mb6c3mial9ashhvmjhynczjpb462j18qyy2an4ckgwgc46pwhp3";doc="03j6xdkvsv5p71bifmggf69w3s1n7758yii1caz9p9bcqmqbnrk9";}; -spath3-64818={run="1w91n8mq9bzf7fwfwwhpqn8j5w7plc4366a5pw56x2212n75pzh5";doc="1gy8n6rhxbqf64gh4xbjvy0dz484vm53ld3i6graly3qzdrwkhdq";source="1gy5p59n76lh0k961cysc3qpnnhppbcd7dmspjijca4fx2v3ckkl";}; -spbmark-69927={run="1izn0xfdc8gc3apn2z3f0593p036mrpcdq7vb53ygavx9qdyzfaj";doc="0mx9ggr9zirkb0ddqsb9xak32vyg987ddhkbkzhk7xjg2q62v0lf";}; -spectral-64528={run="1qjvxyjxm81j3cyajki6jv59k6y2m8nv9kzhj45d7i56za9klkf2";doc="1x6sixvjk4sk5r6x3pgppynsgp139jm3cc7bv83bk55757jjd8j5";}; -spectralsequences-65667={run="06v0sb1xa28biv5ak6nprdcjzjdm0106rmlgm4if0jgmax0hiqpb";doc="10limf15cp1bv933m45s3vdvxwzbpd5hard4lqff2x8ay1h0n1wd";}; -spelling-30715={run="08zkbw4fdfmfz1pxcr96xjhrs8lfbf6sydp8crp8110fikksjv9i";doc="1wm6r4rhkmxmc66zx9nvvdmjaarx789c33vzm26mbd6ylv5qs1is";}; -sphack-20842={run="18vav5d5846hzn6ry7ypnbj9vmxxxxjxm8wpxah9mlml6kjy5hc0";doc="0caz10cwphajhni7rq8klh7x9m46hynbrgyr0c7fjqs8jfdva4k7";}; -sphdthesis-34374={run="1a0a4mwf14f4076gwiqhgdq436l5fxw588rigif0mcpnmmmlkxwz";doc="0b6cgkwb4v4v78nvwg2n1zgc3ww9fnkh43s4qb3g3pdjc399dj3s";}; -spie-15878={run="11s8phbfna7wwx1gji1mpl93arvxlgfpxif4c46xia5spn4i44ji";doc="05myxi72wcagb55fk8p8461vag4yl79ilyhfri8il4i72419ip22";}; -spix-65050={run="16cw2sv43nh6qsrc1681cw1035gj78fvgpwj79jb91sph80wd4kf";doc="0z5b25wv1pcyjc97w1qd1lx1l1rj471nm9yxx0rkd7qyabqflyj7";}; -splines-15878={run="1dynq4y6crzmnn7wcana8klczvzzd2gkya41qpy9w6nxwa2b6kk5";doc="0lyg56rnhrq620f083bayssdm36h6wl05d8wld67lf42056kxy8j";source="05b9dwykc91q4d7xmvq5hg6vznsy4axpi4w6awr6l6qrrqh6wz71";}; -splitbib-15878={run="0z2vnb51ksqp3i11903mvgaknvxl1azwqsch5aaq14y7fp9kcrah";doc="1vb7snjy518hcv3x0cvr40bzlxr0nqb1ssqagqncyzzpg55nv9gl";source="1sgl95vwqrp6k4y355d9mwkqm6zpw0g69p87hnsmdbd9bqkjvsv4";}; -splitindex-39766={run="03x58nb9bqd1fn3k9fqq5rdafsna9rbxjhp44dwzig8kp81f0g0i";doc="1v2wwls8fgb1rhk91hrjsabxj6plx2bq7h07fyqxvl3982am9wm5";source="06ksmac3dxacfq7j4ad7vy9kls2rnay1hww3kgbp2sgadqvwmz0z";}; -spot-22408={run="18ich1w6d68xa2p65lh22yfwdkvgbl9zz9qmd4yx84ljzby49zhg";doc="1flizmkafy77g30ffsispr2m4yaqyfw5hvynf7ppph1q07jqdy0v";source="01sx1j1sxr1bgi5h48ij02nwawg2wgg1c7mx22q9r4sbn9mprlbr";}; -spotcolor-15878={run="19xicma97v309pbwgdyizrjwwnlas95wq0d2qlyw7m9wrq295lpb";doc="1qsdgagx45z4gha0y7z37687jxrc121pr592b1xcy8bhf86nimhm";}; -spreadtab-68256={run="1jkc9h4a3cn5k7p87hdib2jk8kkmcn98cx7b8p7p9fm3pjac807r";doc="1xgy9b81am6pl835sf04hf0srpdpd7bwvxdl5cd4pr784xgfvdb8";}; -spverbatim-15878={run="0s7042ln9l7jvb0vyrmg4h4fdgzy6vaabr62n7zlkr8pf7zd8nvh";doc="1rb6gyq7j5m14d8707gkqv1n5ifk1y497mwflhigqgyi9lgcvgxc";source="0f3spbpb6icwm84v4lq0skkx53nw3i0b90ik0svd9dhg31y24c43";}; -sr-vorl-59333={run="0a87b640qdc7bysxlgr0y63znls4ryjgibi3ablnw9q3rhzbbr7c";doc="05zpxq3qjhziidiq8i30hj295yh2qa3g79lx9ywlldbkyhq928cy";source="1ddwga4af9k70c05v2a8frn3q779d2pw43h5bpfks5w889ss6rr2";}; -srbook-mem-45818={run="0znvycl1land17f2c9cq09hhhg4b677rixzjc0hsq34c91s3xdq5";doc="1nf53sq2ic8y70z0n28kz27lji35slwkxrn8rz0dsaas73ga5k2y";}; -srbtiks-63308={run="0bghfl9fix95nxb8zvsylb8040msfwk0vazqkwvc75v08idigijx";doc="1z9fyz7kjqis1rblrdb2hmj2507bifg07yrigqkn2cgm4wsg0cfg";}; -srcltx-15878={run="054b8g0vvhbzazxs8913dzir7qb6x5q5pfsiwdp1z1awkpafwkmv";doc="0fidv12pgqck21fffgrrz2a0pfsb01fsyld8qhf5r00915aai6h3";source="1sj23lc6k8kwd11q3sq6wbslwl4fsc3wzp45w4by3mw5k1q5xqcf";}; -srcredact-38710={run="1rqmgpxcvvcmzxdj6k15v8z4i4iq4wv95whddpi93l3n0zv2ihmq";doc="082ff60lfnapb570ps3g6vjy2xn0gjjih6y4nm3ry9i0k1isbk0w";}; -srdp-mathematik-69288={run="09pxklmnmdwiaf0dgi94aq33v5v3ml7ap0xs9s422wswhxx8378d";doc="1143sfcqclgsqkcd0ypcyp37hna4apbg16kvi2146xkz3gh3agqy";}; -sseq-31585={run="01vqjmi5vpd2s00sqqj6nlwgqvz9c43igg09w282khlca471253l";doc="08xq5fjn951hdpbrvzx6p09a173radfh8a4wzhmifd5rca9l7asy";source="0a1rh7s1fjxn3bblqz4lzhd9812d9p71wwww5hg9nnpn3gjvdr6n";}; -sslides-32293={run="12vg8fdv0di8vgnw8wj1y6rad6izmczfqzy5pr6gpflzmn14fbq4";doc="1dssqc7f6260hl527hhqq8zbiyszb13z3bny3rwjblscl9ia29yf";}; -stack-15878={run="1wadfhja3yji011aawrp3jgiqdxil7lzvkd1pzy9c9y63lzknfg5";source="1qv2bvjs01lk9b86rzb7n0lk2a4gr870qsnahyrd9dqdnvvz4n9n";}; -stackengine-60019={run="0m0c3sgajlzb7y598y0rpm29mrlsxmks6a0hi1b56vpafsi906n4";doc="1ga71wrnd8ykhw9x3a3yxqicqaarzxncass1lmyrh1kndim79pyi";}; -stage-62929={run="1wdvq1izp0y8b7mzbqql3fc9q8j7jkrmm4ynnk3h2zlg24lgi3gv";doc="1jamw0i9nwmk50j5xiq4pznyjiqc2px2s5993gyjs6hwxb28c423";source="18mw8338ls16klvx7zbdr1qc0z64xgnilr79zfldvsw10fp73apg";}; -standalone-64677={run="13bp2iyfnpyflps370mzrxk1vkrybamam1f47ws4cafpz99nvvyr";doc="0waw4vqxh6nclh6kp17nhb4i1hpckwraf5clksxvzgiv25cxkada";source="0a4k7lx74w035fvj5q6mnzpx18jzlghz3lavhsl9ssqjb3zqmar2";}; -stanli-54512={run="05mq6zhs6x5qjqk58gwws9lw3p876bd1f8a5c2jvb2azjl7d9r4f";doc="091knxhx7jsjiv4ip0z2jbazvv3xmbvandbraxbipp4zqqakb8bj";}; -starfont-19982={run="1bf89j0qqyzih5w9ban03k85v8ih0d16sil1sf7smzmqk3nhmrz8";doc="0rjx4wj021ri26zxdlhkh71q3d0ygf3hvcqghq9fwkbi0gnig1r1";}; -starray-70604={run="1gkqrf8k701pin6si2lmri0a0jml7hmkh2fhnpkn9vq54wkyjbwl";doc="10xza2ljipqp5cq8nv26dg5y5xw9g56s9r51ljpsxk0yxpi2pxwr";}; -startex-69742={run="1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk";doc="0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73";source="0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n";}; -statex-20306={run="11qpdrcszbsrasbasmk6h9wg5r2a11pm116i16h7mvw73vjaq76f";doc="0dkb7c7wavn3qgndl0g8jpkx1qr00c3iwp6d0r72znggl4cznhsd";}; -statex2-23961={run="1949zszdv000dw1dx1jjznbd79q73fjiqnkq2axdbxffh47ls1dp";doc="0fkzbs76yfyygscazn4dgphs8g1byzg9n3fbdg6pizzncirbgh6c";}; -statistics-67201={run="11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f";doc="0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16";source="1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m";}; -statistik-20334={run="1c0469cxfvyg5jl9q1pyzras6fk3f6zbgigaby0iav34imhg7zy6";doc="0fih9k7mpzg25h56x6zzdbdnhybd25b7hlv0pdbnlfb73s7h4mcv";source="0i68y5ynymx339zgxc9r8dgcflm5468gd6cwn9ngpnjvqqbas3kf";}; -statmath-46925={run="0imcx9nx9h5fi53nwg82n2d9s21vlngdab7znyg1z5pdll0df043";doc="10mxwgvjjnk2ci05ikml35q64c82c7dv7rjwajhk03gq8ljq939j";source="1himjc8cn3j5jr073qpp4mfyi2cpr0czf7iykr0w6b7722kkqdh1";}; -staves-15878={run="0pb7cghd2p1f7y5x19x3zyvaz63k3nmrwd04g0yqrl3774fvnh1r";doc="11i1rcc30lnm8fqmnpmk1hgz2fmm54hgf23ich279aqfsk2pm8iq";source="1y87sw1qrmvgvayzwz2i6qjzvx952h68123fhhv67ga0kpxf9fwi";}; -stdclsdv-15878={run="1130sj024qfsszjx4adr3bmmr6594d21bcv3ixmw75y85djha1iz";doc="01li1x0cc820y0m6dmivjabnbhz6v1j696cwx3d08fiw4x7n4jiz";source="1ypihjm5r0v2isrrv8152fp59ynjn9wmhp0ffx508n7kih9yisbn";}; -stdpage-15878={run="13q3jc6snrscq7bl22myd8rb04q9q5b0a3xvr609j1lxczbs1xnc";doc="1kr7851lc6lp4aq78xc61nw495qnhnrbsz0w2yyldwfh07h4byzb";source="0ygk73pk79wgn4qpg0niv3d0a4l8bdhrdvv1a9s8g6ayngfr0nsd";}; -stealcaps-64967={run="1n6922kmdf5ahc8i3jyps6w5r5k1yhnp2x1p2bd259mjd5ivplyx";doc="0djb508nm3l88p33736kwv7z309nalblb1zfijib7ksqq03515di";source="12krgi4wm37q2jcag29mflql1fpry8zhzxn3bfbmwh6cna8i6042";}; -steinmetz-15878={run="0g9ll1hsf82wll1ng5lc2v6il3l6pdy3dppz7k7piqqmifzc8ifz";doc="0gyyqmllgp6dg2g4nh5q5ycnixlyzc6xfmi3szypmr1rai1dvx2s";source="07fj431nraf7f9qcmm5bvk03cblmj15xcsbnhgish4rxqbf7clsj";}; -stellenbosch-68039={run="07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m";doc="0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz";source="16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn";}; -stellenbosch-2-68183={run="1mp3sskmlxmr5jc00rh5i1vyikipmgvc266djbx8f47adkgqxfl0";doc="1v7drgjgiyjp4q714lanybp34pkxjn73w4s20lch49mpq0qfnfqn";source="1ha1ps4cdf6kr6dix9wnhf2672ic31n04vhzqjal12lcrf00pzi3";}; -step-57307={run="1r2mf2qlcksllpaakrycmcrpxfq9c4g7n18ip13ykp92fmrbcz4h";doc="0f0hph5cjwhwdn2yyfzvn1jbkh8xm71jw10zagbncapfqfgx5h62";}; -stepgreek-57074={run="04xldk3dzcr1vg1xld4hhwx5xzi2pr0v7gn526xr8ca3m3x5mwnd";doc="179zz295nxpp21p6xhrn1r9ka68i3l9l8bphrb2833a2x6qgmil3";}; -stex-68569={run="0qpc9nqi6gkkwc8rg00rkvli3kgdfvxn2h23paxmsf8jsf74c4lv";doc="1b855d0n3m2glxf22j7ifn8sf7yi9z4s55jnb1dk0pfy3i8a5zf7";source="0xm55wcxd47z57pmmls2nx6f310nbjzmn05crynfj4rw4310vq00";}; -stickstoo-60793={run="1vil4pran5vkgzrks8wp2nnwddily3pkfw9vap1l72c5rcxsvii8";doc="02h21jbb19cl24ds2r1gz3js8fgxhi4dq4acw6fvq5kv8izqr9mz";}; -stix-54512={run="1jqrvkx444hvfh7246g22k02jm00m2cnc6ffj36k8qdi1s5m9dkj";doc="0vmiariam5zd37zq2ni9560kjgia89p52cm1phxqp6gp7avfyl7q";source="0jjxifyrkdwgbv6xvgpk9ji6qwn4wr91lkdprcdjpmw9b2mwflj2";}; -stix2-otf-58735={run="03ilzmkskp2fj3jwyvlwz8b2ryvb1rfj08ciqhkhi9ddygzjk8xx";doc="18cqnpabka16kfq09rspzgwmyh0fva77i8676myf4wg805953zgh";}; -stix2-type1-57448={run="0xrpb3y7wbpxdc627gn9h6s3sjymczbhxqqi0dbicrcrd4065kp7";doc="0kqh52jkqgsfdwj83wks80h9v326hxz1zqh2ls346kc6gz0r2p9n";source="0ajs9ri4v4jw3hp64hflxwqd9sw75sk2a56lv57qjzzjzkc51243";}; -stmaryrd-22027={run="1vvnhyk7fq6kh1jb2zd19r6qq1j8zzp14gyrqvw7yqm5amjff7fp";doc="0dvcn4yw7qlb7gh3b3z9vk4rx12b1086glkk0x21cks87kphdxib";source="1wmn7bwahn28lwipkpsla74wn3a018808rmh7yvxdkbxfbzcwqcz";}; -storebox-64967={run="0vy7iavq6qqxpmwhm9cz4gxp67nriq230kcf1mr1gq2w0ncy7kjc";doc="1crb1bkra0y2gjzf9wndr5c3nvc83v57lkdglxb8v1pzpy7halmx";source="1ybpjfrria57fwvr9kriiw6y76ivwvsyb6ayp0bi750smsv8k5n1";}; -storecmd-24431={run="00xk8l8l99qpsmkdxcpccf8g7av2asa26qrh3bi0kkmapm7agk8x";doc="1n5vw689y9y2kakhkyqv47d5cin7f3xqfz8bc3yncdrmgh4kq82j";}; -strands-59906={run="0i2k3b3kb570k5h7yag83gchk9ss971v8w1xqr2kb448f1yqkjr3";doc="1clpm1i4a0477zbrixscwpg6qyli0y5vp61lblgn4iqgw0sndhlz";source="0ckf9ipirn8m795df5za2qd5w96cxzxmmv1kcn0gl4aj3ypia6b9";}; -stricttex-56320={run="0igsjl8gsdld0way8nry9r50ibvm0aj8g46ki547c1jhdgmw67fn";doc="11pyyvsxi2d4dfzv4pmapa2ffyp5fky32823fklcffd2i6jnvsbh";}; -string-diagrams-67363={run="1r1xww9h5vvvhar2nvkmjlkv1s57qv53cz582mh6vwg6v6w41nj8";doc="1nccy5d95ada03lh1sfk7rv2r3qba8rd2g61wavw1p9cq40r97lx";source="02mzpys2xw7hd7mfn4z5z7cdlcafkwhiibxnkwya9h578g20ji1a";}; -stringenc-52982={run="01xnfg0mcp94dh33rfzphk50kjb68bw76kf7jnbsnjwlqf2cr5pq";doc="00hbmjwhas4fpcx1yg016ggqv324hdc2aklr2nx5m5x0i68xq6qa";source="1ir6041286fiz8c5zpsbl4cq62gzdrdpj50aqv5p6b1lqd8bsfp6";}; -stringstrings-57097={run="178qqf3ii5kaw5rpjazvf78mjb0aw4vnqzxpsv9ahbqfxpa16894";doc="0x6hcdp3hlfnd0vn3inq92nja4hirvhg9m37zmsh9ilnnz7dk8lp";source="1aryr9b5d4jrj6mc9cmbpc11l2mqxlxsc16c5h68ql0i6z0bpsz1";}; -structmech-66724={run="1l28ljkgzxirg31ai7gb3m71kcdzn3gif8w9ssiawaifrz15wi50";doc="1rnmrjpmzzidykm3al7sqb2q7m435lpjppv7xyl9a8zlkjgvwnlc";}; -struktex-47931={run="0qkfh53rhy29zapn4zr6n14nmximfyv8rbgxm16qq3l6mid5jnyc";doc="1nbbqh3g42qvrk478q2v6snl1lbmfjnb07jhx6z53yk87pna8gmb";source="0j3bprncnkp7iar2dh46bqr3v9zdvkk9c2w9kgj523bcyzw48zyx";}; -sttools-60736={run="1sxdf55j0g6gm2h486i023axk2m5ik37ndayjs5zxxkj6i3sh4vw";doc="1l1js9bpslrqih0c5cjdw3d5nkcx96d4idfxw861yx4lhxwzdq08";source="1c74wjq7r3jqq10mf1d87v6fi14b37i90qavwcx6s5bhhrpl871z";}; -stubs-69128={run="1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb";doc="03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a";}; -studenthandouts-43516={run="1007rr5m0lbfib30bkb21nvpq1h7didqijg6jsbprmkgsz1xfdkm";doc="0sqfqxypkrcyp8fc60xsb1v9nbw7h1xrdai626dlpknhnm00kzmj";}; -sty2dtx-64967={run="1nrn2xv4r39qa2glfw4kalzdh5w2zlx4vaw0hplnrnxj8lwmpb9m";doc="16jpjskvsk51sz0j503z4dljwzd1ymi2b06z9lag8ab5iiyhm80j";}; -styledcmd-70496={run="1a3k6nxxdq1k2y5q60rq34iys8yf64c112gr9knl1yd7rza24cpm";doc="12z3l8psjbyraz0phjylnjl9ghdngnbid7427nffm9har6ppg0hr";source="1gwrrwfs80ssi9r2b39js9fnfy0kqsi1xs1mjjx7rj94zj014bb1";}; -suanpan-15878={run="18nzb8qbs7q233f68983q6988inwc0fm79clnpfpr37z2p7im95v";doc="0xria0g6qzx528dgwb2q23l5iqjzj8xix1215ciz5kmrp2h4fh7n";}; -subdepth-15878={run="1l79nf05yrvpzsbsjyrvyhsc4kx7dfbvx57qc1ymzk2zphnfw4fl";doc="0g8apcawmna380iwys0dvshrdi51k50gavh8wgwybcvfjib82h4w";source="0ac0l63sisx6ry7m3qlf0f98dn7gml3pfxlyiab8664cv43df2s7";}; -subdocs-51480={run="1mc1zqvqpw5ln494c6afx88gigkby4zlb5i4gbizs75irgyrs01y";doc="05m9pcg8dhk8rayald2mnzl0wa7z3w8znwzw2b9ifbxz3cp5k4d8";}; -subeqn-15878={run="17jhiyzv75q79mdkpn6vj60j61wr8yf8qxz63g16dl4xf1xvlqpv";doc="107jnszs764j7zr9hywn7dhjdyqd9mb6mwyqcilhgyz8ggpqpz68";source="1gwz9pp8jzb7fsj4dg797rsqynjbk8q69m8xjzz4pbmsysi01ijq";}; -subeqnarray-15878={run="1bj51jrpvid2k3pd8sgrg85aq4iqachah22izpn949zvjvhrk81s";doc="08aaqv3ca0b6pnj3f6h7c0l2z7spg0hmzaflxrgxbnndn1zh0yhj";source="1slm6rfgf599d1mkww44kcd3lj88z43dr8i15imamxr0dz05jiav";}; -subfig-15878={run="16fs6ax4rjnv446x56jydx59ahw9ylkpq22a1dfnnyf8s4jm7a08";doc="0jm594akhy2b1w8i7ccv23z4z94lbd6rwpmr62mg1h80af806biq";source="1aprv7xqcwnl6076w71x5x8kspa1sb5hlpbcdrws3slfzm40skcw";}; -subfigmat-20308={run="1vx7qh6na1il98gla65c42j8r00ihy277l3s79jab917b3xmrr85";doc="09n91ami9skfmrrrl6j7p7wy62ds64zrr0m66c2wn0pnm6lanmxc";}; -subfigure-15878={run="02b2y8isk2irxdm7bcmx22v5lbkbhc15jqpx0dhs61dnzb5x7ag6";doc="0lhpw3ayq5p15blz7pwkg2z44g300fd2k42lvyf7zii67x2rgjh9";source="1mvp7i150kxin5819cvyfwwzgwmiq1r89m2ywjhv87rgg1v31kx3";}; -subfiles-56977={run="10nslhm56kp5bmzr2nlbm40rlp3i02zj4z6vxj8w6cj1vv7jrd9j";doc="08r52aci5ab4cv70kbrqq1ak4ny627ks43nhqk6kn649pcahjqlw";source="1hmli1qvgpnn2bmllf1w53wjh63zk92dv2wvvi6fzjpq0q6lqhwg";}; -subfloat-29349={run="1ibpaj98ibx67x4kff1p0cnzpxmhs4yyqs2y4vj6as5jx43qnwj9";doc="18ps2xbqdf7pgyhj848zw1sbk36drwkpa0g1s9mw882ynz16gl9g";source="01c11mbfyynpa1yi0arlqcaklikr4sr83j69piznabj5jhb45nci";}; -substances-40989={run="13nl4xc0spsg4bq3ld0fv0612kac2z017zp8hwck2d8413jwkj8y";doc="0xbrs7qpbs5314j79nzcv408ghhayqxj2n0nfify6isxh85r1ks5";}; -substr-16117={run="1qialx52sccay00z85z001xsm62ajvbfxqxc9ps0bpmjkcvvgad4";doc="0zfcggj17bf26dxihkmqwn80pdir4n216x0nhkb3v17q889q903n";}; -subsupscripts-16080={run="14v5a89iwm2ykjsm3jxgbqsm5nba444yh8mzqf23s23z7fmcmsqb";doc="10swcywyb0jdsjhm0cybvmyc9g2ksxq60bqaqnp23kfxp39g9rq2";}; -subtext-51273={run="030f7sq37qjn99l1z6nx7qbivhczpzhjm7drxhhhsssw4n3mci7k";doc="1m6zyy09a3193w0p91y8g66n8bnm80awzg2g8l195n4p41l8vnkw";}; -sudoku-67189={run="1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi";doc="0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys";source="1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p";}; -sudokubundle-15878={run="18y4x1g050ircqh3nd95m45scb8zgjzi03cj3n7whn207dvapsdw";doc="17mdxysiwjp3ii1qhknrxw07dcds57qbm986583xh69bhq08c4sr";source="17g96rhis66gvgbm1857ck4ri8nz3isdlqshfx9rdbpgs8x58i0h";}; -suftesi-68204={run="12cis5ynr5ddhqis0i5501sbxznpcv7i4rh172c7jm5dww2vank8";doc="1bmnzdnmzn4j3fpbfax4m9xd8gpk2vd1xqf5z3ypza46vh7nggxw";source="1x001l06wnfkky2vng3vpkj0cwv0z9f29h09jpf4yc5i1nn2s9rh";}; -sugconf-58752={run="1x2nrvqnl65jk3amclgwrk2x1dscncxajdf074a2d410w1vikrck";doc="16w8nfyixsr7l2dn1lbwcscbs6m4mczql9gmg9wi16nr8d7pm8si";}; -superiors-69387={run="1kj12xhd0psdz08mx7k2kz2maaaam29s3lway19gcawr156jp60m";doc="0vg6sk9ad181y4g53shj1j0mdrcqny4hjdfv3kdn5csm7h5kqq72";}; -supertabular-53658={run="10r18kzg7p8s2wp1nydvn5f5vfbailcypqb7hkhxyjzpkdfrp12w";doc="0cw3vfh4mxd39n2w1yk0nxjq67pb8s0kzv6syr2s4x3p3nrml822";source="06r03i93j8rxw6ddiwmshb88q3h1dc3srlh4djwwycjbgp66xx87";}; -suppose-59281={run="1157v4laxbdllf5vqlnsf4cyk535xdq968q33gla769r1vv4yyhx";doc="1cigx59dypmjyv11lbf9fyfh4krl9gyp8jiwirhb9hrr9jzy7263";}; -susy-19440={run="06q7nw6bh9dkknj1jzvy1wljh9vn49z7mbhr5d0ydv10mp9y9zlv";doc="0dsr3yd5v6i240f7fgpbdlp0dig4dl0376ssd7nbg86scl63k9iy";}; -svg-57010={run="0h7ciy6qc3awr2317npp2xi958s4rz8kfr137s2rwpabmkriypsg";doc="0c2ibjsnjffp6rr4fk6b74j1vm6vfi0awvhbpz4yc5cvgjw733nc";source="1dh1857r254hiyi0sjdm3271h26wah74b67fvhmkwwr0wxz7w7vr";}; -svg-inkscape-32199={doc="1gw3jp7wph0ys6372z2rgjwlpmmawdax7xpgrp4hzg5hxz748pn5";}; -svgcolor-15878={run="1jjsjh5qsra0pi57k4430j5fcjdsdb9gwrzgf9bhkfrwr1gfsmvs";doc="12q998m0irshvh46ndv4zzpxamg6jwaxx8c054av5zgpvb9g5x1d";}; -svn-15878={run="1yvgad3kgly04sm9cwjmp1g1sbnsa8rqqb6wvsip285x9kc6lfjz";doc="06qfqmcdgdaf9ghlpc2x8w43w2f0sbaylyzcwyb3krw1d8p0zixl";source="1f37y92ikznxblq6nyy2nkhl88d818z6wbkf901cpw8sjf79a35j";}; -svn-multi-64967={run="1c1gq7li7p3m16xv5ad3s08k5wvzjij72yl8gdpjxlc8z3hxxarw";doc="1fwagcrmfhz8qwajrpj3bh4r64hm1637kxsqrwfxjnxfrk95v9d9";source="1799jhirlv8gvnnfdh4mwsclcsrr8919wl7wn8y88xwdamiib282";}; -svn-prov-64967={run="0r4s76i89wh1fjrmf9imf6y2sf96xznznyjfcivi3sp8dvf5ln5v";doc="1al7qiwd5ajjpvs2f90p7frlkd389p1ama019yl0nnxc1l45m067";source="0cg7qwgv20jvvw6bibkskj3p8jc5l2mhgzwq6x0wzy1ds7x1f6b7";}; -svninfo-62157={run="1npqdiwj6lnwgfnzb4iiyjl6bl55pjc8mml3gyrvd36j2f6cl1z2";doc="0728psfyzblwp3nciax4hncbf7sw4ww4rmrlz4jyrpmnv80qjp37";source="18rcrh0kkqfz1k84my8adn2a8y7ppjprcy77pfqayix4lyzw6syn";}; -svrsymbols-50019={run="00wr6lyncnpvw806ff8s49w239sqpc8c5zg1776qyhjcpypkfgym";doc="03jdqja9hm58w65vp6mf2q4dd2i1n6gq7yr9p2qrzjm33dxycjx8";source="1dsw2z368hj4sixfy733r19yvnx0mi2qzff8647i6faj70lrj6ry";}; -swebib-15878={run="1y5rrhrhcvjzz17lsl2y9h5qz0zl9gn34xwwprnns7503d1d2nfy";doc="1w3fl5qg5hng8gsnykb9q86ddz48jdbyghizf5x31rjwiim53q6l";}; -swfigure-63255={run="1i21rks6l9vb71hxv5ysn2q9qdz7hy8h8ljjxia64qsxjd4p5k7r";doc="14d47ga8bacw373w7myvrw92rs5jbpzdqcsbm834bv26av4vqyfn";source="1fbqwdasg56sbhs6hlw95x7zw6annykddc6cc7scm8267z83r1jg";}; -swimgraf-25446={run="065y4xxg85kdcv3gwp4xiqd1xdxjkng9xkdyvlk61zfjv5pks03r";doc="17qxnzimwb828pby8mx2xlmjd2lnnpd60rdn45455x8zfxdll3s1";}; -swrule-54267={run="075mshpyi9gxbi3n0hbh3ygidzw1daxy697lhc7cc99i39y8scpi";}; -swungdash-64204={run="1mr1x0g86qdh5nw39b56da3pyw7p4cq1x783rcqqw2rmvszp6zqd";doc="0g11z4zjm10yfpbs5876xsxh2xhlid6c45r5bzn58h2zn1d7fnmi";}; -syllogism-15878={run="01x5kjyfm5ksqig5h2b8sgmn05ws0a65idv1xh5l709yp2i35120";doc="1zqljwv03f755lzc9fhps5xh2dy6r0jdsvp6a21ka11kqq696vjw";}; -symbats3-63833={run="1rkc00q12f8ysw3vcn15hk626wzmy5j6gisvyzss924482pp54dv";doc="1cs9vdddpv7ymgicx005r50ilwjharqvszykf35lram9d2n7f40v";}; -symbol-61719={run="1pdkpr86bhia5hcmf7q3nhvklnsga4mqqrrirgl8a7al7x6q3ivs";}; -sympycalc-67087={run="0nr281r9f5d68kqsg2psvhdzgy24sdghyd9h395q666mp05z787f";doc="1ik7h5bwvnbv8zqq4pppprqwkrb2fjd68l5fhj10yznx38hh5x47";}; -sympytexpackage-57090={run="0d77xd1xl9wc6qbd335kvhq8gbvvqzgqxblhcmyd5khhg3azk6sk";doc="1y743lffzk65wl5nwi490wnmf4xaxcnkpicmhadcvjcadvhrnlxn";source="0q3cl06b2mcpn5an1m7c68c4c0swmgacj3afqb38984dcvap5abv";}; -synctex-66203={doc="1a2nlmbib8723jjhf6xxh5rpmnd5jv3cd69br4ihchbq5ipzircp";}; -synproof-15878={run="01bx52ckyg4abigyzfcxi83jqdkczvsj9b80rznqz8vm9yrbv951";doc="1kvd3vvj6yx1bfqbi858qglc31dx03ish49q0lai0mp1814n6fqh";}; -syntax-15878={run="1gd38myk5lf5fxlx1j8cvjv6pcpcr15r0370ikxf7fczv8s4ab2l";doc="0l6rkyidqvvhkrjxs8y316rssayihqimbyqwvmdzqpnfd16rdxpv";}; -syntaxdi-56685={run="11l8609xj9gz2zkd6b0ah41lgw4qhrvdjj47vwpzb4sb1sirsfgw";doc="04hnwc8hc4z88wxrp81balza27xjj56ymv4wb8lvl7kg0087ldw2";}; -syntrace-15878={run="19vx1iz2zxv49znddhcsl7aw4i267fmxhxpszzg2i9z0klm9b3nq";doc="1dzy8pazcp3lfc009g0n1h0a6q3v99ii43pza3m2gkjvbrb5sk00";source="0hb5iklz2c7zqrl8zrhkn8k7dj1zgk5gvf4wpr7h32sa83ajqrdr";}; -synttree-16252={run="1n2n1q2pwx3fi0dhh3h5dj7s5wrz2r5zpx77fmxjk0c3d45c8wan";doc="0rnghg1459nlliwbcy8r60rc9si3ya35c7sl5zqh67sfwla2ixps";source="022b2sn42mfdnska1cvqjsafakah9a908rvyw0d326d7lxx8wrx3";}; -systeme-66655={run="0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2";doc="1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z";}; -t-angles-15878={run="1p1h0gz1k4lr7rmadhdgb7l3gp55w12m3p88hy9d4d0ryzld299q";doc="1n01pg82p0yz0b7ph82k5ha7a9j0a4hc0489xq9pf4kbizh7ap4d";}; -t1utils-57972={doc="0hdk57179nn57wnmvr3jasjavkvmrn6ryph6jvjhsfqprn7bhf1y";}; -t2-47870={run="0s6zn41dp7vzilfyk92yy5mbb74lcrpnmhrwl9xcj1dbadi97nm6";doc="0wfm1gy3dyhfv2xzjfsky2fvdhki5r2ndgvzliq2n0kvfxf1sgna";}; -tabbing-59715={run="19w1lnal4dw6aw6f27z7zf97f78s23z87s1d3hx845mm3j77xyhq";doc="1fl0schhxy4njd70dssi0bprd2p3hzpq4m5v9zmm0mbi4jlh653d";source="0d50zs145vd9rjqv0mljg50q1bb6j3hsixr9x3r6b2yf39jjyraz";}; -tabfigures-25202={run="0fgdwqd2qqqg8k077p6cjdv2ag5z0953jh0d69gjxfn0bc11yyjq";doc="1j1klsqcig3gdb4jvcqvm4kzb5zj3fm0mkliflkgm7sla99zw564";source="1zkisnxdfdvx7gwgqjddp27sgj3a2qy6mc9vzfx75qf4c6y3q7za";}; -table-fct-41849={run="1kpmd1qynxq29aanvaanq35ihiv0d55k6wamxdz3lssicrn3f2vr";doc="06jr9wmjppzd9m0d8hgmchnf78k8r7cxiqlyf3i6apdhjf6hcxiz";}; -tableaux-42413={run="09pi8sm17m1v4h362al448ayhj1h5n0krdaa7zsys00l0w55qm3h";doc="06173sm4yx2a3mfadax16nqj6ggn6yak85l63jiaqdczwyb09kxi";}; -tablefootnote-32804={run="0i1mj9bq2hj4d7y7za2zj64p5dfdvsfi51147as5kfb6ci90rc56";doc="071xk16ck9r0jip847ikb2qjyv3ghf1m73w4s619zilvm752c0ak";source="14vrh8c322skk3rpjpr03fgzbm03khmhf3ifh2fm72yb5cqgbbqr";}; -tableof-59837={run="1n9faa8pcnls7n1ghqywvzri484j37nwmhhday1wa0rzxqhs5vl1";doc="1aa9frbqj6676w0v4s2n3h9nz922qsiafh7rxnmw83bmv93sdydz";source="0as1hwba4vski9vby84j48s88ha76vl2h3yqvn6qkrzyh6cg7g3p";}; -tablists-15878={run="02sffbb22hirw8mdijf7scxbivipmqw828qzdbc49vaxq7ggmzib";doc="1fwhps6a0j8r5zqcksdqw8gwa55rh2r2la3iz7wc451zk3ddbxpr";source="1wpir71xwq7xhg41l6sigp55n93v94lashgi6lgr0g9ad8hh3y4j";}; -tablor-31855={run="15xinskbqjj1dmi1fpvb6slg8kk3g66dm70z9f7dx8bzb1v65zwz";doc="0lmi8mn5k7b5i0n7bqhagjkkzs2niy9852r8r0vv2c8qfbpm4hpm";}; -tabls-17255={run="17bg083653km6v92hifll78vs0p9zwfnj5rbw1pcl2siizf3pfj6";doc="1gnk4blwfikqshqjv4zd4cykp1k6k025h7vnbjrvia11l6kcnavn";}; -tablvar-69212={run="11xcbpdcl39r8lacnvqyd8j3qzbpzd6q15ivjwh9ndrznkxbpjpz";doc="06gh6a1qsbgbncl13jybpprmdbyfddwyyfwz1m9fs5b6y5dr2sck";source="09ixxr26sw9507my98p6dmnqgk0xw14h1gfbav6f02yxk3f6glp3";}; -tabriz-thesis-51729={run="1jrxxmd38369qrhg2a8w4j9m3ldp08wrblbpmc08f35zwlrackbs";doc="1rzl7y6p7n46r7ljcycr4k40qxbih06bli90mdjwn96vn60m1jym";}; -tabstackengine-46848={run="0zd7gp1k40wg6b5aln30qxbk84ks3ys0d31vlw3wijvh31qbw6xz";doc="1n26fdj1lxwwx1abslxl3vkcvhk6lbnbi0wqi5mhx2n6g6ir8b89";}; -tabto-generic-15878={run="0i65jflbnhqpqf1w7pkagicic1s39gcl319z7g9zr1g80f9532dv";}; -tabto-ltx-54080={run="1ayysa2dfm6q6wli0ldk45mfw9jvj79mdx5kcpiay69xjl96j89v";doc="0rgk0znx33lk2gafzjbwwvl61xl4kw36h9f66kay0y91cy9ra9n8";}; -tabu-61719={run="1x22myjp1rpg0in3jgjj4wy0xyva8xd5hsy5c1rqqpy67wy83k0a";doc="076ivdvaac2snb4dgkf4hzpnbjqli28hll6s4r6z609c5v34mf1j";source="1pb4kibjcmwn8snfhcm49jjp38i979dac06p471w9bjnsp0khs85";}; -tabularborder-17885={run="1p7iwpalamif71mrznbmsig5g9lxs3l16dcpwj2kzhiixsh78vfv";doc="0rd6k4b00aj398hy247x84jj9c3d0dm00xnaw69p7wvlprzricwc";source="1lrvp6128j70fzwqr61nnwiivgllbbkw7pd53l11sqzqwzxppgi5";}; -tabularcalc-15878={run="057720z8l7ss0kpkg7l16fc2v82xr0wqlxzxbcak5m3hl5k03g7a";doc="0539rar83mprammyilmclcbjxr657z6q2xmmwmlik990imf78lqc";}; -tabularew-15878={run="0g9pbr0vhhjj2lz9bbgwvm49wl8bdwvv1jjggq2dnwwqbr4vc4p8";doc="1ff62dxvnhi4q1gy8f7qhc0zz1jiayl6f8j96dp0rz38l2is7m86";source="0sfpx5w61xrmmgip0c746mghhj06r2mn2jmj56zingymm2djiad1";}; -tabularray-69926={run="1mh0f8klal4i4wcj2gq4zg7kfq61q3hhnd6myw1wfm4ig5gmx4sd";doc="1xz171qjrsb4dld25haa8l8phxv9rxfjplr8gbdi2ypch8v86g58";}; -tabulary-34368={run="0z57030pg4pfvghjii8bgqba589cabnj8qsr9w1abpwp3pfy4zbs";doc="08r21q2h7sjrk875x84lngcqgiy5ijik56ly7g7wyzhq3jyxds0f";source="0lsdypidawyhzj73c3yjs8k4xy2sds7gz8gazxfy460zndsz675m";}; -tabvar-63921={run="09pbsqa0a492j6ijvi25zdv4ic69wc8ngdxll2gr7wgh6m9hsrq8";doc="0iv8w8jvq05f6a1z7n29c9cldk499fd9igryv3c93g6bgq2hkzks";source="0bw2a9rgij2xvz3lhz6gya4vfsjn41cn7mg9mkg728q4vbhg19ms";}; -tagging-52064={run="0sws4x1h52cd313apfzydqpj6c8xrb8x5881cfhwir000n48crb6";doc="1pv7savkzm6jhaliw5ilb7qmhlj3iyiz2w6kxchanwrg4pnqabx7";}; -tagpair-42138={run="08qjcwyjs90sg8agmpmm3122h20898hy6dwkm0lk3dba1j3w5drj";doc="1dkn4gq6zxfqw9h64h7ggkbyrk9vzyax8gmnk9qk8dccdvf5n2sv";}; -tagpdf-70259={run="1zf0py07f5zi85k9i5l2ac6j5igqzg304byvskcvx5qsmnz0xrjy";doc="0j0yvyp7djxiscq9x1kvlapgw399lcq17c45r3rpqy9xna2x3rxf";source="0xr5jjr7r650fvf4rahibr83h0ylnnmx04gpjq8z3xwk312cpqz8";}; -talk-42428={run="0i9whk49bahsm2kbj53pjdh3fpg1ixfyxmfvcp563ylr8j2ibimb";doc="0rgil00i39p2agz9fybg0h3xmpq0wxcpjcqpbpzjw5lcf4mpcni5";source="0kdrknwwivyxiyn8xqappf3k5l1brkwkkhjqa0l5n0abzafkjcy9";}; -talos-61820={run="0pffvqdkhmc0adl7g1sfckgwwjsfgbnf03jfry3yfq6za6mk05d0";doc="1narnqgf3221fpf66w2vlw95cr17swbap35lvb7dzviyad0ailcf";}; -tamefloats-27345={run="0mhiz5lxz0szi8ygmajjmldz1bjf6f1lpyxj3b9zb17h9aw8gr4x";doc="0s5cy9m8jpxh81c10fgdvn8wy7pnv7sa25hy8wbv6qkr1qwz8dss";}; -tamethebeast-15878={doc="13shw7hcimckn7pp8pj0cr1zsi1wq6r400x1v6akpmwwjxkw09g5";}; -tangocolors-66733={run="1i0a42sdqgm7sraxaq246fk1w8ql4hn00y2r1rndyd9v3828x8yq";doc="16x99xbhwnibsbw364kb9yxzfcws3d65n0sdj2wflz2v7qbyk986";source="03kpykm57favngm16669ylkh7jh1q92c2zhb9sx1qy1wd5li7ix2";}; -tangramtikz-66183={run="1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24";doc="15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr";}; -tap-31731={run="1ci65i2k6n0h9lklgk41sdq4acp5655mps77j9gcb65yk4mdl6c5";doc="0r8y4jzri83qypvnmgchnhrd0yi7j0k753zmnwhzxqg4bvki10gp";}; -tapir-20484={run="0ad1qkbvvswq7msx9889sz8n7wf8iszigd0vmk2yycykbf0axzii";doc="1m5g6bsijqris8r7z2dw3cj74ajcny2wjysq8ql26531z61hj9ss";}; -tasks-61541={run="1gwl8g4a2x3sbvqg91ry577hmpxdc4dgcj9ixhsla25h23jl414b";doc="1pavbpzm6z6najh72z52j089mdg6gqzsa8sb9qyfsql7mndnxznz";}; -tblr-extras-69776={run="0b7vfyzbgzgq961grf1gklpi5jdl24nzmnccvhryjg7jqm8pyyiq";doc="12gzcs7scxb3dg86nq38an5h86hhv9k5bbv65ixp5kkxl7rbjdn7";}; -tcldoc-22018={run="0gz5v5hi7r6wr8qas79lakwr7gnf8d5kypf7cp62qvrybp0ljgqs";doc="1vy7k0f6ri4kbjrhby0napsas9wwlq5by2q1dakbz7r80zr7dc3k";source="150p69vd9465icda6p0wp37gg9vl8y3c2ys3b8f9ij9a88x5775j";}; -tcolorbox-69370={run="16k26jwbhk466h8a09syzskljyg0x2h5fm5f6fmy65bcjgc8ai51";doc="0dal9wv4aryz1l20hbbg6njgy534540vqmyd2q9366a9ydgx1km1";}; -tdclock-33043={run="05w49l1kvs73sxchbwrlfs9n6mn7qshx102gkjk4jslhnw9lc48z";doc="1n0ir0l10p9fai1cssri11bpzpjabpsrpfji6w826l8i3xlqkdkg";}; -tds-64477={doc="04lhavbayyisxxqfm1vpfq38xx1xwkn136hdnjaa3szky2xyn3yh";}; -tdsfrmath-15878={run="18qqjmdh4hgzar37imn811i7nbk93zx5w7f7agwnzbxgy1kx2plb";doc="1vvbsq5aql1f5q0q6v5z1xm16bmb20w2jnn0d0rc64dw4dxnwpxw";source="03r9f335gb31zb2frpv6hk50c01sz6rwlqw9vdxf4ch2np90fd9z";}; -technics-29349={run="1fr932788zvxhvkvmq4m9kzc834w4xzdjq4p80kda3fsk7a7iv2v";doc="172pqpm2i2wfv3qgvz9hvg8wqz8q7kqy5afmms4xvxhrd0xyaf2l";}; -technion-thesis-template-49889={run="1w004bdgaag02kqhsdksw7qy93lyjihhlbxiccavp7m2aj1h9xly";doc="1fa280wcainx6z15w199fbvzn8ya3zplgfw41mmvp8cv3y2njnq6";}; -ted-15878={run="0m9dv66nl6q4kq8jq08ayx4hrkh9r2i7hmr290s5d7bkyicdkgpw";doc="08yjlfrblhralk4b9ji4g47cr9r1zj8dp6sjha0169395wn4820l";source="1cifrswbfk6714m63kvmrsyvz3q29wd1bgl48f5d9ay7pz07wjyq";}; -templates-fenn-15878={doc="1s91swqsysva49cjrb9khgik5mvhxcb3wr2wz4l2683gdgxlbgkf";}; -templates-sommer-15878={doc="0z75xhawsmcxv4f24cqcvfi0r22gavjpg4si6nwrgc8sg82x24m6";}; -templatetools-67201={run="1hbpn6aqp5zq2dm8dd2cm0zmnib6rasrn8a8rpjphvhfkr1ydmck";doc="0irpqbcf51dx4rcsa0y3r4x00y7p0fanspyhia6vhk2wsipbgk0x";source="0z1nm6jp8za0dlrj8s7zfcy099c7zr6lsxa48v7gppabh7i96gqq";}; -tempora-39596={run="025smp68d941hqdxqsd4qpaxvk4z8ybg14xwc47i36k04244rarh";doc="14k350dyiqjcfg5fx09i2i9cqsdw4mh1qcrv8cglf1gf2d0b3jl8";}; -tengwarscript-34594={run="0v6mpqkyp7fr1nb5myjs4alz8f7y56rnd1vlsgvp0m2shvnvhy2f";doc="0225gpdqbbmcpgxmpjcj2blbpzxcnr7vmm38jkkpyan3gfw52n2w";source="0jzzn01c5gwkc8n6naaddm793sm8vs67vsjd30lj4ls7djpnixkc";}; -tensind-51481={run="05vgqn5wcynyp8gy80icnkrdrgb0wsr3h0db033yx4yk3c8lhwaf";doc="1vns4k813ffccps5vrrpfmb7rm4fmfs8zgs7cnw2hqg08dmzijfn";}; -tensor-67667={run="0712frfli31jnxndk2fac6fln2538pmb7k16jlvskkifgzwrsf99";doc="0cgwilixdvg1ak90m1bv50rvzhlyd17d3h28mw5bj1myqxr8ybbj";source="1g03dgvnj7j8n7z482fyxpa40daj6rllvz4vnli78i8kyp2b3m3v";}; -termcal-22514={run="1sxzpnrgc7f325w0ww0b92y8ih6jrzpvgp6b5ilvcpyriym89j8d";doc="0nv2s95n2h67j4zd5i2iiz5ygkc1s0xp5wjnnvbb27cxqw1h4sic";source="078bs0l7615z66h5fr1fcd1ydyjbc3lddl1z7j80dngnx5j0vf28";}; -termcal-de-47111={run="13a79lp2lp0r1r1j5nc94adbir463rhprdlc9p6rk3qa7lh445pf";doc="0krnv111d82razivjks8ip9m6z1bllqhx47yzjw6b5af9ps1k6a5";source="0nn9vgxv5awzqx1zndl7zvgd5nhllw7kp8zj7snd1nqvz3wgc5n6";}; -termes-otf-64733={run="0vwm8qrbp9r3bbz2a5sbkkpmkmhb4zh4hbxd37hngx1pd576lasj";doc="0pxck3jbnw7wk7j0p18as2i7cffwj2bf4zjx258dqxg2yjg82i7y";}; -termlist-18923={run="00dw7p9623kxpsvqs1yqk6n95hfl0b166l09djibybxx43fbk6dw";doc="05rbr62rvl0shhdxvscsgqci6b6n60pfzbsmikan6v2bh31d8mbn";source="0dl6bl28wvg9fcdlfqhchcxg98s3d668pm0sp7rmxzz97nf4fi9k";}; -termmenu-37700={run="0rw7a9ydsckjv6lc8q8yc5c4lq45bwczy98c6g6mzdcdl2dnhh81";doc="1r4901slsjhg0kzcy07qkm730g1bax1p2410mhh9ly8cix0hcxr4";source="0fvv10j1s49swvif5prjiqvk699l82js29n09scv0x1ixcy40h14";}; -termsim-61414={run="1b263hwbplgxw8ca03dx11vp3ar4dh1avf5r1r02qa8b1zax4b20";doc="0qzqwdc7wiwir2lzrsig76v0j8766hszzsh2y51bk2b7vns4psgm";source="0jidnimy5imwzcz0wl45v2p0wpi0xijqzsy94j517q00sgpnz0pp";}; -testhyphens-38928={run="1sqq2rf8amsn6zdp8l1vg5v5jxcn7ipp78qbzzkikiamlxv89nkv";doc="1nzimg7bz6h9dm7hb9r9fzs130dw5y7cjzmb4rc5dp5a5xhiliv5";source="0s92imbkb4p70fd629bbg2cma72ys853qby1nwk6rvdw8gp47pgg";}; -testidx-60966={run="02zkg2kffwh95nxn602ara915jihj59af4hrgv6cb6916m9fv0r1";doc="1pz2p3fdzdv4n1dabh81yl3b3iaywmbjvgxi6zklli6jbbx5h708";source="0h88x6mmid6nmhl4pw9p4p9nlh90p86g1k44a6bbcyzdlxc8n6ac";}; -tetragonos-49732={run="0l8b3kjk0jk70mmmv37zrdb16id6yrjvgsgsmji7pzdqiixy7jh5";doc="1g2zcx3b1pfc9dh76p5iprdgsxp0yndp7rn5ksbq4s9k4m7ikpzp";}; -teubner-68074={run="06xxypkdzmxs0m6bl99p9hggic3zaxqgfxg8ljq2wad0k7mwn0i6";doc="05vj8877g8ndya6p2kvhipxa61504sa6p80j1zwjdr732n7bg218";source="1nqs8cxfi1rgiab8kvzdi9fcwbpgaw51fjy1kzzpszydf6qxgqjg";}; -tex-66186={doc="1n4jybv4qghg74anpj7n7kj4l908f476q597vyvvq59fd9k5m7mm";}; -tex-ewd-15878={run="1pmf17bxw6i4a9pfi32fjk0hd3p44kw2scwmr7p38320r6dv7srk";doc="0ss7nljpn8k3cz3av5qanc966q90v3qj9qy0akmdzbiy7q8ml7na";}; -tex-font-errors-cheatsheet-18314={doc="0pfd5qphmizhxb2p4gg6809xcx1rlfkwqa6vs4f74457chcwljwn";}; -tex-gyre-68624={run="08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0";doc="115gb3afrys7ww3p29lm9bkwvkqk9gjdfcj457yazbk53ah2yff8";source="0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3";}; -tex-gyre-math-41264={run="0vqg04im4s6k1sjfclrn855liilgayh5kca774aicifzjgsigs1d";doc="0s6s2bs6q2ar4y53fyckz104y8rbvz3msjvyb4sv2p4j6x0kwz4g";source="0vl9ggi62bn1cpnjmqanx62b6an5294375jg68gskg8fwi8j6gir";}; -tex-ini-files-68920={run="1dzfn0v8v8pdg6lmgfs0q2c0695zndkf4rpl6dckn51gp2i1bgl5";doc="1l1yizfq9srfjxirdwb3hvlj31a72mnw4spwyjk58xwcsjxx3y00";}; -tex-label-16372={run="0flvmmh0lzkwvwksmnb8m4ix6pzw6f18flybkgidkyf9mf0gg8xc";doc="1ppvdq0cj62zk3b0i76lc35r9pizzli7mm4j2zvdabysn0prlyyb";source="0ysjsk73ksninqk2dyrw06arl692x66rsrr8vb4l2ri3m0lyivlf";}; -tex-locale-48500={run="05l4frsxpdmsrbn50q87db878bwpi076wagj5r8kdnmdwmcanr6l";doc="0j9m67n83f4h5yhfh3a51s9yhqh6kpjz8y5vlxhyabyf7rcpybd3";source="1x0wmqsrbgdgy67gln4jd0518cbd2cxp36gqrjrqgn574qsl5cx9";}; -tex-nutshell-70378={doc="01nmw2lj7dvylfypgyr7lsw1i2b4vlmhd56jyy1grv8hx1rfl0yh";}; -tex-overview-41403={doc="1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd";}; -tex-ps-15878={run="0i35b4pp38d1l5rac059znlkazrcqa62qm8brhdmx7zzkbhyysi7";doc="0kgf7y3nxkw8x42wpc1g5mmmbz28n73vgwd9d6rf6fjpzrycc2zx";}; -tex-refs-57349={doc="1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l";}; -tex-virtual-academy-pl-67718={doc="1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv";}; -tex-vpat-66758={doc="1y7f87prympxg8av128npsa43cri71jjl9gxq1p04pjlpdjjm0fv";}; -tex4ebook-70117={run="1c6bynhvlhil4a9kfqx1rwhh42rdcphi0jl8f6qj0k98xk5g6sjz";doc="0q3la7n6jmry2aw9a5hpi00f40r0i235zgk90qyw66h8qd1pnsf4";}; -tex4ht-69739={run="1al3sj190rcijhkvmrizrac5wy67v3n3fwjkq6lhm64nfc8j255m";doc="04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv";source="1hvbqk1q6b0qvqvwr5fbvcfh5fklyjgw1yl0nmgar3ysrzz443h1";}; -texaccents-64447={run="0xai85qn9isnrvijw9shhljlkcnvmygni18kw02gsmij0dp9c1jp";doc="02185jla4hffra1wf3mgiaq8lyxh4gxgcjrb5dv3mkrw709iidcz";source="1wqbdmfly54sb8q1y6ms2wg8n62w34xpbfvxvwmg5i4as4a1ycmy";}; -texapi-54080={run="09cnhqn4gxf0alkx0276jkpcsd0myypbn94jzsavnjq8jknp6850";doc="0529cncxbw53km02pymj57iphgziri3d9cj54pqmjqjx9qmgwfmm";}; -texblend-68961={run="12lfkp9qykcvmrafwilyz2vj0yk0ghvkxmmnkhlac57q3hjy12k2";doc="1sahpz1bh883crlr4qicgmx96ncij5zz1dqrm23q4qlg88yn8y3k";}; -texbytopic-68950={doc="0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx";}; -texcount-49013={run="1bi484kbrcfx3hyflr4f2w0plhz58p2206rz4r1wjllhhhwzc7pl";doc="12a3j0sk7nysd3bd7mwnbifyrcvjjkfjy3b8f1caf6k0pf1mz8b0";}; -texdate-49362={run="06bqyfl1vnj4gadqsx94lj8cm1ia3w3bmlsfjwwfaad0al3ncxdp";doc="0kks8hswbwhp8dpjdbwr4nm55md4wgabl5ypzpx5arj41x8halhl";source="0mbcap5nfj5ap8gxn4pyv8w37hcfnq4bm5m6jx43cwkzf2hiwar5";}; -texdef-64967={run="0wi60appvgs0h5690h8qqvcmsq2r6fcxais2jqps92ryy41s2v68";doc="124azfh1332lq18g40d291gczx2agh2b1cxq07ldmizi8pmvjaza";source="0hanvqdj2dgpgl3wa6sz3qa542882h3mv9709spl8q2glmyip5b1";}; -texdiff-29752={run="1jjzd4grr3ip6gd8xmhlawhdcjfj1sqfsa06rxrpziklwirw6bq4";doc="0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr";}; -texdimens-61070={run="0fny36zd88qkcz7k3hdxq2qr41dmk9j88skihls4vwf350fy8j98";doc="1qls1hqs6ypmsg4rqa26dp98m6h7zq18wdg9n6g6895jrmj10qdz";}; -texdirflatten-55064={run="0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m";doc="19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7";}; -texdoc-70583-tlpdb70616={run="1fjaccq12gsax9ka0bkisrbwnflf91lrjfkw7l0j46gwwy5cfabn";doc="1xrh0kcwfflhbq206acljpcbla04pps01igdvqmzzfl6dyybgjgq";}; -texdoctk-62186={run="13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h";doc="1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq";}; -texdraw-64477={run="14vg45kci5pffvwdqnnb0dv3fznfaay3rg0fjiwfill24ifms14s";doc="0lw37yi82ir8zn2ii2x88f871843y2was3xwp7p06wjanr1jwc6h";}; -texfindpkg-67027={run="04igpv1y8gw945z4abb0wi959wq9y0xwzk7ymlr09qs8zcm0xv6q";doc="0gddmzndg4cc69173ssp4ncz0mmcw575fffanmdxp7y5w7ggrxb7";source="1vjbmin6jqv4k7qc0l8gd27z8gk6p87pw35rgqp0f3h0pf3r62b5";}; -texfot-68110={run="1yk59iwj4wylhagrlpasy5s8x24lvfab9xg8xz2hz8d3khai1qzd";doc="0rqhyyp6da4fkdfqa1c81jaryy29mdgm2rzml2hklp1mkxkw7k19";}; -texilikechaps-28553={run="1z9nvv2y2nzpkpxyf18p426wcl0g6gbg7qppq70b285kdbczbijd";}; -texilikecover-15878={run="04bljvhvmrxh1a4sfqw57yysaw03c5ldi1bq63mlqqvd9p3hmyck";}; -texinfo-69818={run="1ds5vf98gzfqxafil4gsfqwyrxaha0cd1fx5mg76bw9y9xjzpzsl";}; -texlive-common-68510={doc="0l4yicbx7n787xczpg0lwsxlq2cavhswb0w469gc21va59lki3z5";}; -texlive-cz-62854={doc="0wkf0g47wj7yqngxmy5cvjic2gcgy31pry4810cgklljn7pqffxp";}; -texlive-de-67108={doc="13k76mqf535l8y0pk5vvzirnicxajnq5kpgywp2f35vks362a8pl";}; -texlive-en-67184={doc="17fqvsdnil7chg6a33sy7sxmdh23jyy944qznlfllbnzdpqc9cxx";}; -texlive-es-66059={doc="0crlg0madfm3gp54rh4jm0q1x1l7mvn3l82swhdxab3pl7zwmq34";}; -texlive-fr-66571={doc="1d48jxvrz3dxrbfzj5pygi2gd9bzjvrch8728pbc7fk7xbimkafx";}; -texlive-it-58653={doc="0vmwn6n8bxpzcfrzic5qg5k2vklbm6rhl9861zxsli0rd9396qn6";}; -texlive-ja-66482={doc="1sbv761vh7a25lpk1h4b2ar6w7cqjmafv1kbl8dwd47hnsjd7xk0";}; -texlive-msg-translations-69796={tlpkg="1v4s3zgxs1k0qsip474vv16vwcmqn5d99iw94jc5rf4cm6av2j81";}; -texlive-pl-66576={doc="1id4kngpwqs53zn3pqj0hp85yf6rvha17dyb4s0m8l66cj2rzyn0";}; -texlive-ru-58426={doc="0c77yyfj87fajran8jppj0x8krk6b5195iscpn8z2n94spz2fcc9";}; -texlive-scripts-70585={run="0mgdiqqw47ydvyj47s4mb3bg5drm1x6ax47dk7hdc3ykgs1vz911";doc="12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp";tlpkg="16gyyx868k5qa2ymiyvb2gf94wxpnswymfbn1jd6y6wngwqfr3wx";}; -texlive-scripts-extra-62517={run="193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj";doc="1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl";}; -texlive-sr-54594={doc="0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj";}; -texlive-zh-cn-54490={doc="1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll";}; -"texlive.infra-69740.tlpdb70616"={run="1kg4k7g1gq51yv9h93jgpdlckfw4qgrxq9xgv4cwzjrf5sj58awp";doc="1w71146z54i79bhgz02m7z3gjg5zyrqhc1hmz9pvk5mynqpjwrji";tlpkg="1azilfqqz4wq82yjx8aqah1fvgmksw1v3v9pgbya2gqgdnr5i1c5";}; -texliveonfly-55777={run="03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3";doc="1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx";}; -texloganalyser-54526={run="0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r";doc="1s7952n2brrz3s1qca9r5qk8fnjlmrmrn8b06dhjxdb7wdqis6g0";}; -texlogfilter-69919={run="0qyhmdvzly2y1xbgmi8i9fl50djv3apqmc2wiqgh5q8cn44z3gnb";doc="0khv1pcz0h75inldnmg91qx0pxmkfcz9dbdxljrvmw5b8ql8nv6v";}; -texlogos-19083={run="0rp4l8da3dn6djdjajavxqr5mmi3fsyadcqrpmd9cfggdvb9i8qz";}; -texlogsieve-69436={run="0sn9p9l89867mvwc5n9z4i3rxybm3dy5xws47q99563j1hvc1bnk";doc="0a87y350dxx22ll41i7y7wsdgabvdf0f6pgs08vr583jhzd6ks7r";}; -texmate-15878={run="06hnwj11ify60gx92zqky28spdhppgai5v08l73kiabrryzdn8w5";doc="13d6rlazx3qx9zwbb60z1f6dk64n6rph610s97hha5kpc0v2vkm9";source="0faabcm8lyfvzn5jb7vbpkpa31gjb1czkr0g391vbdmx9lrllxar";}; -texments-15878={run="0vhwraxncqx74akzmjcww4akisn3zjgi5b6ac8c350flhl0nsh5p";doc="0xn17gjnb7n3ryc28p8vg2hshcwa660482pzm9byq8k6s3a78yny";source="1kq5zw31sv0i87h30ahyasqy1qh4m36f0j37f8532s20n5llcq0z";}; -texnegar-57692={run="0qrnysss751vsbgd794gwh8lwrq6gq09p55qkkfngc5ly29icx9c";doc="0jidhqlklr8yd48san5iyy3i5pxg8lygf4xi0gcp3ps7xcb0m5g1";source="1bayaa5vffnkmvdmg64q5rsnh69grr8qirwd41mlfi9symh9gm2j";}; -texonly-50985={doc="0h40f8hj03ha0ilpj2fx5kzzvdv0yplmr4528s2rmmy62l9kgdkd";}; -texosquery-53676={run="0jszy2f076hrc29kk8qcr9616hyk2cvys3kg2qfhvblxf07ziw62";doc="11rz21m720pp97vb457pxaq5yxf3j4v8vfcd77w0bjpc632lh1xx";source="1q7spgr1xk2lnx2xqksjh979n7r2v1n1441fkrc479zyi69ncn33";}; -texplate-67201={run="0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl";doc="0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp";source="02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8";}; -texpower-29349={run="1w1yn4is019rjnj137ckmkas48xblmhpn0gvp8dac2hmsvqfl06f";doc="16j3xy98k9hb3p7bg9inzqmsl07csa6lx1lgym4h6rcjh247llqn";source="0nkbapkzq4knxhs63fiqg0rcxyp72vmd35jz46dha87s2v5w2km5";}; -texproposal-43151={doc="1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy";}; -texshade-69371={run="0d5panq1z0fpi7rvwp9p2pahd7vlb3skgsw9zq4rhb9pirawv3v7";doc="0bvxfpc2v8hph04kn8a8rf5995awp8c3zc5r3ddnghcidn83xsny";source="0ib9fs5391pjxh8p0c6bzvxmgv03y73qgdpjdzyadbhkqj4kkdxw";}; -texsis-69742={run="08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m";doc="1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj";}; -texsurgery-59885={run="1f2m8b4xjq38j6q86pfa4m8f7z4sqyfblxpkkljppiz66cq9gnpy";doc="1zpilg11flz7z6pk7zhpm5ck39avh24na2jpl4asnnznaf5bzfjz";}; -textcase-67755={run="0rkhw4rai08n52ak4acix224cwj9fzpl1m4qcxzql9cq0h51rn2f";doc="0hw7q77pn8nx80qqvfz333sn1dpx4srf5xsv8vpl6q1akhrk5f84";source="1bxkagbkl6pnlnf9ibs0ics3p5nm9dghyfq97bn32fv38jywlswl";}; -textcsc-67193={run="1zx7890vdwghxl7g9rm9fcj0v4h06sdbhsscwyp7wjmf35k6awm6";doc="04gh3w1a7pnw1zja7gg01xda0f15s1918v5m289ax22j4x9g472a";}; -textfit-20591={run="0vmffs1a9zspg3hcnd7p0mffa0cw4nnbx8s4vari3n8npmdxrf26";doc="0dcb63v0yhlhvjmcbsfnw3px6qizmq95rq67i64dgks85d4dhi6m";source="1h2yql1gy6hvwv0rirm9v996j3clrywsg9dzgnvrkrvnkf1b6dqi";}; -textglos-30788={run="08932gszahdc5q6pckg9q8bdxs39gacjw9cljjlvghs8vn7jjwjj";doc="1c88my4j07b7ihn07bcii9xxckdv04g3c6jycm0ffhjffw4p7609";source="19hc7lalmbr85pbz3pd3dm696fsbdl7y8v9g1c4l2k7b0i5mc8zf";}; -textgreek-44192={run="0r7jcv38749xndr6sigy8zw96kwqw63k4m33c09hikawf2728jzd";doc="12pwr5b8269hrwgpr9g4chw273wv81cfa52wvp3nhkd2cvbhfcp4";source="0wq69l55462snrkpbpnlg03mrn2yxvibw38lkplgfc65gzaa07sw";}; -textmerg-20677={run="1bwlcaggagg811sbsi2wrfsz31rd6x92m47aszikmkzfzx4ina7k";doc="00p7r1y0npb8xfq1mcw5apccb6xznww3ya8q0qgg5irqyxs7d9fc";source="1972gkv933fmy32ys96qg6p1yp7551mc4cilvnaasnrwyr776f8p";}; -textopo-23796={run="10g5i5mg9898q091w9svm7gk4hgd6dja3dwy5dwc7s78pv0qcd68";doc="0r94ivbqmvs9lyw1ipwzcb4f0v9npvyfll7r8c9g627ikk9fmpa4";source="19p7sgz34dkvjqkld38x8li539kx140w1nj9l3ai5chilxz4lvy1";}; -textpath-15878={run="12f8qn2ncw0drx5r48ddb0xcc6fdm7jpmv5i1n0ihfcqaqa1l8xb";doc="0qhyflskr978qp01apai5r3qjhsj5q4mrvwck60jr79yasxa109k";}; -textpos-63967={run="1mhbsyil3ldw4xq40739pm7995d7fcv050ra4xjnaqdf93cqr2gm";doc="06ya6i8qkp823pnh1jzq30wi3pnww00jw48lbk6rzvxzyhwxrzdh";source="0vhyr1ljhi5dxyj90zhpr8x7h8rjn84pddaa09al69awlgkihclf";}; -textualicomma-67201={run="06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc";doc="157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch";source="1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h";}; -texvc-46844={run="12knhsx5y5n6wlzlmzvym6bza5dry1z8qlszka0f93wx8hpvk7cg";doc="1852x7zd684h6jjhq3f465z4q7d75871hh5gc8abvdk9p6srnwsz";source="05532lckvznsv4slyvsn4jrv93y4gxbcy3q3r8c7g0lgya255s9q";}; -texware-66186={doc="122r0aq02vwx6irsnapnfbvhgy5d09x90rc8zc7a0bi7b25bxnd1";}; -texworks-65952={doc="0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y";}; -tfrupee-20770={run="1q0z0as8gd9qb3p10rf5kwzljg5z790cgmxi5dbz1piy0lcnj4hn";doc="04zmcfp1xqq53wl41rw199yj47nf7l396qcnsp8dsrvf7d0n0pfc";source="19bgxgg9cdgfdvdr4kzmp4na0n6p28dq0iq4nqi849j4ij5lwmnj";}; -thaienum-44140={run="16awnv395nhgm8s3n7w1x7x0h32033258bb0jp81v5nrnmn344wi";doc="0jvggbnxinc81bn8glmyli746asqcpclgmvyl8gzbdarrnabij3b";}; -thaispec-58019={run="1inic6cpbf1kf1hi6brhq5fj3fkwn95cvgjqwh7bxk9dxk1rzsh8";doc="0ki2jl9spv70f5hkzr762nkcylplb9z70c8gdp97whqg9l9mb8bs";source="0j69dwrn3qk82xgnwabq30ab1pf4xs3sfnxgnrksgmhd0ly4lpjv";}; -thalie-65249={run="03lb6fscsbisqa8r4wyqdlsfsf0g53k3zavgqbhih0rn1w588dzx";doc="1wl6h539d9ygkix1d4fbz04q20262811glpy7mjbbhr9wzacbdjv";}; -theanodidot-64518={run="1f1ixiqb6mn875rahrcl157y3bc6dv2i7vks7vbnchppjbfgk757";doc="04n1cp79d229rqks9vkj1byz9r1zi323v4r68g6srcbr4v7n3nhj";}; -theanomodern-64520={run="0w1ybshhj3y22ysymxg27apmblqxwwp193q81vkykxjrf4qn357p";doc="1a99wqmfr3adqm7rhq58kjg10q9bvf0gj44ly21nvmdl7wa0qjjl";}; -theanooldstyle-64519={run="1v5hkpspzjizpbcgbr5wjikwpvslq02fahqbdjpycrpl2q3zlc4m";doc="1wfqvav0k9vz7bs7wdh6fppijq904r76r6cwg8x5ffcv029l75ir";}; -theatre-45363={doc="1nhm56spqvryhmhwmzly939mzv5yv3398lh2lyfhf40rr02mzgi5";}; -thematicpuzzle-69356={run="0cxgvzld08bmyl89qvnkqf285qfgyhdmkq6aq8sk19acr9lljrzj";doc="1c693zjh4n4gjpkbrvw5s29r55b350mchby88l7pakhzzk81xxfx";}; -theoremref-54512={run="1dfv3pz7pjkazp0czzpzhga9j201gwvx785v3qvqasrvpa0vwyyq";doc="0zs8q0xzinp2ih68c75yj9mbjh1pmpqc77xg9hmj8n3gpf1kmmi5";}; -thermodynamics-69086={run="1m7lhcbn6ynxm34y44j4hwb0y644n2vlm0r1yc08j1p9h27s6zym";doc="0knza3s977z4vs2cdp7ykk80104k487gbs2f7aa3qsbxqfln3jrr";source="1c1xs99a599l8km9x0ckcif32gg78j8pgva2axdrllws36wpn2j1";}; -thesis-ekf-60228={run="1r2fgq9ralrcm00gz0lrxm1f413pik1hill8x8nqfm9wzif2dd9s";doc="122vzng8dhsrpixwn40r9ddczqk9igmzi300hmbymy2b4ydhzc3a";source="1nizsqbj6nbf5qk54vvldhb6flppyn29i058jngldqp43r3xq8hy";}; -thesis-gwu-54287={run="16vb94z3svvnsxmv43d3xy6rz8ki3dmk01iz553q949f4dfig1l7";doc="0xfl7s0i4ni5lwxlsmlldl96jnhfxjyay99w3qc3vc4az9vdqfmc";}; -thesis-qom-63524={run="0lsi7xy3grxmwcj55s2m0cnkqr6544qn40k5jrj6himi7l1p82b9";doc="1sppdlgr859hnfjhjlsdv8shwzi5gkgmv10s8f9vh646cnqp50rx";}; -thesis-titlepage-fhac-15878={run="1s9g6h020ahv404mxsfvqic2im68qnvb425cyvz0bj2rwn1fwnc8";doc="0pjvm3d2l9715q50nbbza5l6vzhj6zaf9payimk1lr6k94357v1s";source="0bhf68pc8c41ih92sajva48m9fq7a05x4y9qqanbidvmb6jmvhbn";}; -thinsp-39669={run="19d23nm17nybk0dda4l05dsbs1695fk0kl86vc713l19mzw4l7fw";doc="139v4dmnbhsd3nqlp9qknml0glfmh1f9dg0nnixggf19lsayn27p";}; -thmbox-15878={run="16c6p3n4zc2726adj8z131h03gbzyhmh5bj8hzc286p96131swdw";doc="15mkfzmy0141k5wgspngbwnnldf0i1rvbmq2bkzcpb72v9vcj8fd";source="0lv5mr23wwhig6r9fyy7rlv2cqxlr35y3g89i938w35s9q25xx08";}; -thmtools-67018={run="0msngnpdpqpw0skchd629v72wnd9pn8s1jijcyvqzwy88k8i8f2m";doc="1lyc17i46x1v7xhxl7qf8hpjn3y9r7da4lycpsfijmlscp9q3c3y";source="13zd5sx1nh9f61jwr2raxkli2y42w2dr23j5yjjfwfk65pd8bfq9";}; -threadcol-28754={run="1whvgb3901wciijafawy5pgnr4adpix2a6ph2v52kwglg68s2ixa";doc="0dky94vqbqrba5hsvgs1sllwy6cxmr6mlr6zv6qgn1yrrmjxs0by";source="1qd96xl0h8bnp5mqbh8mprdfbw1bhvp60dhj46hqyl4w7f61jj20";}; -threeddice-20675={run="1r5cssaj6qxv17n04pgvib12a7b7fnxfk3qbf87mhs1xpxsh6v1s";doc="0w7f2dfy6sbircp8dbw8s28s4bxbqnmz469c71v3qcaw6hgw3y2y";}; -threeparttable-17383={run="043vgdllz4k8fcclyw49515rcwl03albnmszbqi7sbsskmxnzck4";doc="1mlhxgv9q1gnkp383vinybzh95fd49dgz4x14jnjilhjabvhgyid";}; -threeparttablex-34206={run="0ipmhy0jpx38sy1jyyw3ab953cyh95ix4qwrz1ywhi54dn6ahygs";doc="19mk0y6nn6bn7gmn7vvlbijqdcjp2br0s632lmhnyhwz0d4xz6mi";}; -thuaslogos-51347={run="0p5xs731fjvd413rg4lcp289ijk1lxa5f0c9arj949f6s0pgdqfj";doc="03a24gn5zzr6ma9q391s0vsg7qqn53kbmpw86a3wlyycsrz9ipl7";}; -thubeamer-61071={run="1y0qangc89pla53dkhxx1xm9n3bk4ngslns6lzdgygyqk6cslfdg";doc="166kd79lyqb7vbgwf1aqhv9jxmjspdfx7malgdq1nizari9lndc9";source="18p9zh00g56kxxj38djjiwhy4a6mfgmjhak962ph9d6k34gfxa6n";}; -thucoursework-56435={run="18f3gbydg1z6hiaidqw3j9yqybzvcp9ykq5a7frbd3ww051rz9xq";doc="0pq5i3kd19ng122nf1gd97xsc8gd58l5gplg7iswfjykdk5zv562";source="016r76nsk9lnr2zkkwz27r2i35j154rlnk5izd11rlmsyw3ix7l0";}; -thumb-16549={run="1khi4j0as028c7fhzkdc6dmbgdyj45lbasbv4ksnxmf2kylmbhxz";doc="1h4b21mmp2bx1vp8n3556lxm16x7acy3srs9khgq24nrfkagwrp9";source="0f2z9w9mxfj0b3s9mvch95cv49bkyv6mxmdzmkyc1zr8bwwqdahy";}; -thumbpdf-62518={run="1zj2733wnq4zydf22qhza9j0nywh6fmn8xd3dc6nwfzm68pdn9ic";doc="1fpbfz855cgs9gdvwqbg9pb3i3yl2xagmxbf25mra08ii17v3pf3";}; -thumbs-33134={run="15k7rn5fygvsrjln614jndldmq47zq75zqlv71f2gvr8nqgil93n";doc="0c70k96v2m6nbx9b8qx09pky9g0s0ipqsxy3fsn8spjjrqkwk0v9";source="1ns05c3ji4svj4x9y2qy9hn0f2bvlllbvg98xsr2xv7gylr2pkmw";}; -thumby-16736={run="0q3h6cwbw90adw3c8ggyb707l23qvsfl3dl8zrzhg78dm9l8q3gi";doc="1v1934z064ar7zgjpnpxvmc7bkaq080h0hka0snkj7kwqm6sfry7";}; -thuthesis-67127={run="1wnnl59l063ykjlzl2ln781w56w6s5wwz6nxs3wsx9inzn4dn966";doc="13a5vrnfnhhwl9kdjry50rs67kmcpdz7yh0qvfvwddv5kndjr0py";source="06ys99v2865pyc5xfrszvj1jc6l4kxgi37nih3v5s2a4k0sp3hnw";}; -ticket-42280={run="0qpqzff2hj01g2k8nq9vc91l4zvg7kx4p7nf0gd6ji9lf0q5caaw";doc="07xa7nf2qgvjq5pzaj7k75wzg2ldcpxb47ypx53swssz277ixvp7";}; -ticollege-36306={run="1mivwaf3ngmdr1zdkl9xif1rl4fy0b062r43064645idpkk4120d";doc="0xy35cggk34ziagi1m60ymckknls2wwil0wdzlswn0aw2zca9lc7";}; -tidyres-67738={run="1lnymwa3hbfabxigxfqkhmczigswqn84wdw8jdzj7khsv4zm47rk";doc="0gb1aayki8i14i9zl450jmy4ybbcdnv54l5s1b34ma7vw9nbng5g";}; -tie-66186={doc="17z5ik7bbf0v5ylq2v1rda6z64iz386vp56z7yrr6h1dl488kr93";}; -tikz-3dplot-25087={run="06ij3bk1aham4iv0wm14z9dhcq1v60qiv9n6idfcmjqz6m05cdf8";doc="1mq9drqg2z9khxfylsgpz32binla5abq88938jcjk9y21d46r31h";}; -tikz-among-us-60880={run="047mfp3z4m63wc4f7psrsi77qpc55drl1wdrk2dlzfykkh4mna3p";doc="1f817bi1m745c7cgl7r0yx5jx22qi6h2xwg8kb246lkfsvwlynnz";}; -tikz-bagua-64103={run="14cycyq0lshr61n83jdzdyjhr20b26fsrp1ximyh1phk958yxmbj";doc="167pi758hdi7chys2rbs1v1lqd5gi2nb1fq244igjr77v1775ifb";}; -tikz-bayesnet-38295={run="1sdal5mq1s3xkklj09hy0j41xymprmh78z3923f55bg0kzdc2i0v";doc="0kwlqx1bys43hzwpwj8snrn5693grfih18fcw3d74a6x7s5k0h8m";}; -tikz-bbox-57444={run="023xrf65s1c4g63ggpmsdyckp6zspgjz1ad7pk7jf56zdnhqaxb1";doc="0ilj988mh0w1ws8ancnxsz0ig4s5k0yi3ywihn6vsk3z94k51yfm";}; -tikz-cd-59133={run="0xv75gvwlhax08mp1nlyy2kgi0br7wy7aahbaf9rfbj0idpcl5ip";doc="0dxsixn2n0irfqrgcp63h74fss1ldqlcvfv6d9v61asxsjdrzf0v";}; -tikz-dependency-54512={run="0v471rprwnqlhwvx0lqxvpsgh8ph16lbvrpcrynx2hx71n9daqla";doc="0h3mnxwcb1k1ilw9pi1xcwmryjpci0kwlaqfxx2i8lcggsdrxfxi";}; -tikz-dimline-35805={run="0mp6xg317m0dkrw73609xdn7r9hbf8bdmyp0bdj2xzpynpvxisxd";doc="05rikgrm1f0f0rx7ir1nn4cy3a93bwrck2xqnms26dg4dqddnrbk";}; -tikz-ext-66737={run="04ar5xpvxsihcv50n8z49dd76s4vlw401y106yi37x3fsbgfzshl";doc="0aigvf2a0b9lh6gj66gp75iag3ipd1kjf6wv5safpn2v1jfhadcg";}; -tikz-feynhand-51915={run="16bb4h6wbmyv9mz68sywgw18h2dcyxkmkcyjjshkbagimf3ikb58";doc="15h182ywc8ihahv76khphah6awpahbsrdi0hin578jmg1582rzp4";}; -tikz-feynman-56615={run="1kh3riwk5iksldsg6ljk27lhh6fka473k958q9781m65isdzhwa9";doc="0cjl1zvn2q39khh4afzvh6nh8dlhrkd6vn3i8n2ywv4xldpb2k0b";}; -tikz-imagelabels-51490={run="1xg2malb3ybgcvmr1gksgg93i4d8fvr7pqjky1b98n0abfxybxv9";doc="1fqkzfbbm4ckbjpgjrg5fa9ggam2lcy5gzvnhc4njyjxwx1hjcsd";source="0cqcbwccfq65zsbnkcdjfqwj9h8ndjhan1ghnzp9by8z41qj2fvv";}; -tikz-inet-15878={run="02xbywhzzkiica13d2dzingz9qm2v1w3fjrj9kbjn9q9fmw2xw64";doc="15mvq4gpd22nah4p84dazld4ncdshygmffz7sx42s2zqyjwrm6wi";}; -tikz-kalender-52890={run="0lkvvwzfilmhcamy00jdfrwhxr75d3jzppyhvvb26ymnzm6v1inv";doc="1pxc1wii1hqmhr42yskil16ahjslkn7y6q8qj8hbq85y7ymm3lxi";}; -tikz-karnaugh-62040={run="0bhnh37ydzfrkvjwfyzih59sadfzw9y02y337wym3gqaa0m6w7gh";doc="1p7rrg2jrpg4hqlvnzbniiwpcfxyfxbqq29izbsijlwlwfhm2zaq";}; -tikz-ladder-62992={run="0b39723rfs3d8npxnkk96x3fcsk51w5vnh3mfmn9dnh07xclr92b";doc="1j5v3vj0w8yzydf1qxl2smcf5llwzq4zj86rjgrcqirp86z0jgqj";}; -tikz-lake-fig-55288={run="0miw1aws614ffb4q8szr6zh5rb0216hz1scl50ambx1qv97azsgm";doc="14yb48ylr5rv4n6ikqh704vvzxx8k68l8ww2vnv9lx5nl2nhybp7";}; -tikz-layers-46660={run="1ym859l9bzzd2rack9kcbckzbpmqxyglaa0jggpf3hlbsgzy33h6";doc="1lnlfl8k4czvxz1vyfmnqk3k1arc7jpw7cbgrnh5xbanhvyjfzl0";}; -tikz-mirror-lens-65500={run="0lpb87kidq5lrl79hzjss78qy5hvag2maddvwkh8idnccr06awbi";doc="0q4rp929pq600xi78yp0siagzxbrhx0cksqplr0h7xgn74yldrs3";}; -tikz-nef-55920={run="1i1l0rk7k6kc9vyx9jbpj25bkl77ml5ay1wvwff7a51rr8c87s99";doc="1nsbycqfai72xbrzy6vz7lzpywdavbcyz7x3h1kfhby10s2h136k";}; -tikz-network-51884={run="1mf196mmkg097slc5aslpjlpih2kdq5wkmcpznsyhg7s20mf11yy";doc="05dzfw2x5j1i3534qmhp6wcymba5mwilv2vf7vrw5fmrgd4h1gy2";}; -tikz-nfold-67718={run="03q6hj8p7p4f5sa6ipsw456q5g3326kidkmsiil0sjprklsm3w9i";doc="0xpc9nik5m90kqrpmg254mcpa7qca0fl4n4832pax0j59g9f9z1f";}; -tikz-opm-32769={run="04ch55a4jvvif7c74s8bbsq0bkw3v3zjh6wdlmij30cfyxn114jg";doc="0ajrvamsj1is4lh0xf25wjylnjg8kd02b7kwj40nq1kawnp0hlxb";}; -tikz-optics-62977={run="0r5z7vp05s92hk87m01vcxfa0kkvfmzxyzfx397b3lwmlavzws8q";doc="1zjlpblczvr9390fmz0vh8zf0pbf1zc4d01l4ykhdpvljf7ndrmd";}; -tikz-osci-68636={run="1rxkdljz3lq6lnmpr56wyb7zkxrcjzkg6pi3qwrgqcz0njd5d7xl";doc="0sn7qhv2kdkiivigbkhqqpgj2kki8xydnkagmrbk47s3bnvzmhqz";}; -tikz-page-42039={run="0971kcdlavr24lkf9wdzgwb97cf952iw1d5ls6zz7fsfj6pigqjn";doc="19g4b944wzahnabpw2kighd1vr63c7im3xgcjz3l53yrz89nhjmk";source="10v67pn2zvpxl3817h1rvn0y4wb7dj07p4nv6wf1jhchgvmb8bdz";}; -tikz-palattice-43442={run="0pfp30l373li523l0skr52fa397h2wkizvggsls3kv3p087j16an";doc="0krdfwivibibgpxsjnlsl11yppmsynanj2lgf892izxj2m3hld7d";}; -tikz-planets-55002={run="0gjkapcls19839jrjimshd3cqdl9x0ld27i2d51s7k8f0rcakkmh";doc="0xx18gdj4r9jj7qvwlrd237nhcbazprhqgzn6m6cy8m36xy6yc09";}; -tikz-qtree-26108={run="1x638b7a71mwlcrn50w86j649qlzjm121ap6jgccr5vck6q9wcms";doc="0khnzjc78v1p8ahyii5rsqx29797jv3ycdan2d55bvw87p4iyrra";}; -tikz-relay-64072={run="0rwpsh2y902b93p1kjb8hwhxjvfiglfkzma5alghcdw0r538r4fx";doc="0h5pkr67anks09f8fii186sfwhh3l137k7kp2xdwk1sz4zfcqw66";}; -tikz-sfc-49424={run="0kkfds07qskfbd7yxfyc6spylnd0nnhjyfa8s7i44y4d2x1skik5";doc="0b5cf8kcchp8h33x5ih1wvwdrgdhbkz589d55454i1470b3h4f79";}; -tikz-swigs-59889={run="0cpmk783m9qf4wq1qsw4hy3azjlx0r47ya5ijw4ss3l4nr8i710x";doc="02carafyvhv0nv29n9x0k8ij8adiwf2xqr8bw43k4imj690360li";}; -tikz-timing-64967={run="145r878hxqfx1sdn4hdagmcnfx8xqcihfz775zabn5sbzki87ywq";doc="0na0rjgnala2lyww8chnkqyp26c1y2siaj7gqh6h8fjpi5bpamdf";source="17wzwm58194p5jlwb74z30864q7nzg9fi4q4dbcp26b3p6kn5cxs";}; -tikz-trackschematic-63480={run="1jbji8zkqjwpf1bn25p415n7cwz0a5q2606imyj8bbxdzp0r8y23";doc="1pvp3a9pgszgb2013gkh1z1fm8hpxa4z6ssmr1hwvwj7y48399bv";}; -tikz-truchet-50020={run="00yf9044lpsazd8wnmcz39lnazrxpqd7lpyr8ss24gk9gm33b563";doc="1vlsyyh7xj1fn6wkafh7ps4ys439n1lmvmgk63pya18laxkphxxk";source="1zbp1xb9sbbnr4iiqgg352ymn9ybfmkwmwd49r1ws3w7iy3qdvrz";}; -tikz2d-fr-67239={run="13mzq1azxi34lrkm4rycsfhbcm8cap8pzam8gwc3vfa5sygkczhd";doc="10lv2v9j65bq9fj3yin86hbbj4bvlygqc1b2sszjabsdnmzbw0yd";}; -tikz3d-fr-67774={run="19js2ypl2xlzqb2rspvrx1a73w6wl9jcf6pcm2b0i19rwfp93d39";doc="0kbil2rvy07rdva18kb7krd49mqcrrsbmh2mbflqxagycpy3vf7a";}; -tikzbricks-63952={run="0k15zgfckasxf9zbnh3m4bhwa22pc1rmx930in2k9qskqx41rlrz";doc="1dmnx38k0b1ivs8ay74yhh3pmqi3m9s12cxakfhnw57ipkpp6af3";}; -tikzcodeblocks-54758={run="0q10q8gfbdw20ysv40pj9c1ks4mnb4dqvvz39fvyji3f4s4xd60n";doc="1imd5qf95ykqs89zqb32yg7p61in242vkjx5wv6r2xh2dkjpvv9h";}; -tikzdotncross-69382={run="0vwxdha9gpmdv4l61wdfk5j3mi2facrv3a3azkgrfn5s2pyf4m5k";doc="14xwxm1ckicip2dwc7925sfdnlxdwry7h12fixs1g4l0vmh4bcim";}; -tikzducks-66773={run="1mlj8h6wk80pi8vi8ggj30mg1gcdwdfncif53p0mkyvmvjfin3px";doc="17c88srkb48y49icbqv85kih5qd2r222559a6g6xgbqvwa3yx1gq";}; -tikzfill-67847={run="1igbzzpx6rwqklhnalzpsb1rpj7l4mkrhwblp8k732nfqvj1fn0x";doc="1dl033xf2waf0j40c4whci5qsyxk4346353j43vsrqy7lgsh557b";}; -tikzinclude-28715={run="0s0mhfshfzl28z6lgwn7f540pbmdxl51gqf7nw1s88738mx3m4z1";doc="11jj75nnzw9m3i6nndbfscllfxzn5bd636s85q17gds03jbqkhfc";source="1v1bvpfqhvn3hp3zjx3sqv4kg288aviy1b9zl3s8r64zmai86bfy";}; -tikzlings-63628={run="17wgali1pawsb6kz2w41a27i7gj1sm4h8ay8i8q967s8s07kxv5p";doc="043sia2hyynbwpgh10dfca9gyih97z8hlxpi1390a28wnmyvcbwb";}; -tikzmark-64819={run="1p73c3ivn3aamrzzzw5y4fmkfy7s9qnvw4q64jn01qxzzs1vbhdl";doc="10fwszi7wsqrh6kql40s6w4y0jji8v0q41bd684cravhgg0yjc1p";source="0mbk2xvqjpn44skvdgjq43s1j4814sfn57xc1ishcwrrmidy5pra";}; -tikzmarmots-54080={run="1m33y48cs82f2z19gwhr89qyaa9n5qlrps9ash5ijjgra9dkfj8q";doc="1jp10kd7vpx68z9i1j1pk904yjb078yr60hkfk0vxhwhnpychlgz";}; -tikzorbital-36439={run="17g4bd556kkhrxir4c2q6f7qxa8rigkf41dj979nb5k3a7w4k3b4";doc="0h1s5dnyv8n4hv608c5rspdgy2h10ilqknddai779h9biwhfzh3m";}; -tikzpackets-55827={run="1kidqyd1d7wvs1f3cp6ixp397ipaj7jd19djhy3q4dvbnzq1xm4b";doc="0rlpz3m4vsyin6ckyjkxjp9a40gxhhi44z18hrw2blmp0mg011v5";}; -tikzpagenodes-64967={run="197sijaabaa3sf5syasf4ciwz8hkgy2pyr7lp78gzhlv950drghh";doc="0y9ik1r203inp74hx4xznkypw0p88zhg9fq6b9205i053vvla239";source="01bjvk944nlld4zbrld35n45dzljqf1rng83y14ipn3wcdxa0plx";}; -tikzpeople-67840={run="12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp";doc="1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq";}; -tikzpfeile-25777={run="1rwv1i6yb0jd5gw16db3kqar4ykzbwcyw51hv781iz358hgww5mc";doc="1530vkp14lpv0hnv8qcxalibsi1pkcj9xp1pa87lisrillxs7kwb";source="180cp8vp26shmnjxg9qs9n28v4xy0qhqgm1bvbkqrpagykzzhsrf";}; -tikzpingus-68310={run="058v2b6scnz31p0jzk4i1i8v6a1vb10fd4kgi0izd4pw58cjj31f";doc="08fi2mlzwvdx8i4r2hf8l2lx7j6b4phpm8ihwklfi49ha5i0z2n8";}; -tikzposter-32732={run="1r6pia3sjl9xcixnsr5pk8cma4f18mvpn60dxmpzpn2nn1sk4p26";doc="06vy5vmzrqhl6zk6z9a4kyqfvjqc4s9pslvl9zfl17cdqsfvbdf6";source="1idiz8izn9m9h7kyiavw836v9x1vzg58vap42wpj7yd74izwvf1d";}; -tikzquads-69409={run="1a55w1apikxg33n35wwi3ffafnlhgsnl5w6fxq9qin77qi5rq8l5";doc="090fyhby42m0zlx28vm9ix5pjgkmv7ml0ja6w1kgn0vd63q02i4c";}; -tikzquests-69388={run="1l1d23ky7pvcj6j1g52p5qsdy060qbjws4fp4i7j38k6dvyrw2pl";doc="1bvjy5ghc0arx48gxc3sz7z1fz02vigg5cxc1g75b6pcn1l5x9lf";}; -tikzscale-30637={run="0h8hpk0nv712vydxrzyhvqxrrqb34hw5qjgq9baagqj42ka06qfg";doc="02sz63v9zxr58417jn00ypm3myga7x29q31xbnz7p7mmq5q1r94h";source="0rf6rsrcpapmhz3q5wkgcivhvswy1kb3mql94xs372qc08bxsi3h";}; -tikzsymbols-61300={run="05a3szm1xgsqj766cwwf8ssg1s2jd0kbvgzv6m0hlkvnpig13y7k";doc="06wkvldkiym2xlz47rr4f0nhlbygdqisczn66d41lsf59v8036lx";source="19jcl91qn62hr4j6fcw6a6dc0qhpqqfpzqb1d8mwibn91dzad00z";}; -tikztosvg-60289={run="1gpkypg9j6iz0i0f77drk0p373x2vx8z5v6j9wsb3bggnf00f0yi";doc="03f324pxiwyxgnsvw83wi8sh5ya633a1d6833kq2zl8z1f51vvfd";}; -tikzviolinplots-66659={run="185hmygifmnydjfsg01mwshzjx6d80r92j7bh3djpkslxwp8pdyz";doc="0asisvkbf7gfwqn6wzyjl574kysjz4z088ph4pqggy4znd0yqljr";}; -tile-graphic-55325={run="1l87pqfzgyr8apcs9f2gssf5rh1mvknkr5jim98zj5f93ca5mjpq";doc="0rq35cpk9l7rc30l1hk55r7x07f96ishr3dzdi7x4d50gv7675ah";source="01xqc704g5pqwmlfifzvv61nypgvnabxv6xw7ljgv9vvpyvfh0ni";}; -tilings-67292={run="124gj42waa50pv8qm4zkal8xxr5d0kvi9wf9qlrz0chhm1xk4v15";doc="02bz0wpvzwf4f97g14rkv25x0ifxxfwdkgi3nbv6x2djbm79xjd0";source="03zb3sfygc8bbdl5z4hz7gy7wfnl54sbka9b8w7ywkx9wgymvkz9";}; -timbreicmc-49740={run="0inffnb824kv9lswj46b8p0zb36f4s3pfix4m7x7v0d216xa75pw";doc="05x699cyrkfnygbwfifzz4ih0g5nm7pzlj6ygkh6pysyzxkb5w94";source="0hznll8725wbjmayxilg0hvjw2vf63wj4cxmznvfly9lk8z5zh5m";}; -times-61719={run="13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0";}; -timetable-15878={run="1lnl8gi2rrzcy688qb8b1ff9yivwxdqmbcfx2ph49aymkxfym97b";}; -timing-diagrams-31491={run="04yal5fdbwwdq5i7frmvxm0z7zy379gpwbc5383xn0nfdyzrq91b";doc="1w3qzl1j3viaj6qi50qcyx51w2ms23j27p17h526iz11x39w0gw7";}; -tinos-68950={run="0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5";doc="0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d";}; -tipa-29349={run="1vax0padc42ks1b4rvl0ikfqmb5i04ii27k1711vfdbzmg87j217";doc="0wwnbarpvjcq8ibbn8sr0zqrlg3clplc9nyh46r5gsr06qgd1prf";}; -tipa-de-22005={doc="16gwc0dpdls6s2vdl3hmd6307d88gfzsa3kbw3vhl0z5iawvwj4h";}; -tipauni-65817={run="0qzwx1rd5wqrqwlqrgd7c8czsvr9hy5bb2dljf2xqnm0c1c05496";doc="19azyp11a949kqkwph7b47128fdh7k80lf9ia34ik7a9qw1gri73";source="0m5kfcjk6c0mm40mqbsfnp1ddha617d4sl44dv62nj3rkj3shqvl";}; -tipfr-38646={run="1a9vj3r5b15chzyrpfd7rn0f19qkq9lqklzxvzm4xc5b5n802zbw";doc="02x8fikl1vnirfcrw42xq2cbkf6wpciary55xyk6xwnnhh3abbgb";}; -tiscreen-62602={run="143c2w00f4s24qli3wbnhps6b5pbrvrhaddpgpgn52pmy20f5z85";doc="0l0qs27bm0hy835zljyapyhs7iwvkpn85vnd0z02wy8l0nb11ly8";}; -titlecaps-63020={run="08cy0cmrp27iqa081q1y3ibif6lv2c83lmvn9d7r920f13dpmy7k";doc="0gmajngp9cgi10b9kgc4ra020drmm58f00vh1yv5qj3x8bx5hihf";}; -titlefoot-15878={run="0c0nhhxhb3hmvg3a64lr5npbqsmrmprqqj9pic91j007k4s1in4y";}; -titlepages-19457={doc="17ib7rpb2dhb2m724x66fdzddv8cqd808wxy5kkvx0vb3rl27hyh";}; -titlepic-43497={run="1pj4mavc06r5ghcvyjjhvn7x2xrccgdfjr3961al7420ymaqb726";doc="06s1r8xy54129y7fvzaym2vkfbyw2x31r91i8cyxyra0chzh8ngl";}; -titleref-18729={run="1y2aw2m7jg7l9vcr35nd2qpbafyff1bc8acy2cm9k7fcjm4rcr17";doc="0rv9hsx5p460pa3ry50fnrcb0kf08rzdl7bq47n5nhm8frpmczad";}; -titlesec-68677={run="0y27npwraxaryl2z7mv0fzkdci8whq8jz7b2xlk2n31slbfvksb8";doc="1yz5s63bbpkiziwggqcal266444nm03fnr7kwan14gswmqqbkav5";}; -titling-15878={run="15iw3giwxg658pzb6basjkp4v92m3qvzk1fcarnzikc649bjcbch";doc="1r75nwakbkwf32qva6icp3pq3y8bgfl6cqw304lcw8p6bih74y5j";source="1jdgyn9zyf5rwbaz004g85rr2jpd5gi5iyn111s0r22ml41ci3hk";}; -tkz-base-69460={run="0zp2020wa30yqk0b5iyzyjpm09kndnw7ng3lr547qcfgqr2q6iym";doc="0218bq4ma7dxshk4mvh3i40qdhh4b3i0i9yp034jjnn366wxk039";}; -tkz-berge-57485={run="1c9kgzsagh5ww0zlwywpddwn3mx0wrf8yc627gjap3f7nyyvixn4";doc="07bsfmh9qyn8q9z4brd4si1clmw7sn2vh2nr8idqnm1z1jqdnq40";}; -tkz-bernoulli-68780={run="0ifjig10clmd3402y9kdpyw1vlwk9vjakanjzkzablm5zzdr0qgs";doc="1iv94xglrk07kg3jkdci5nixrz96gwasgg5h0fl345ph9rdalwx1";}; -tkz-doc-68665={run="0gf3zjnqng90kn9341xdchm1diav93qlv2910mrl1cc7vqfp47wf";doc="10p4i3xnbpyhzj32j3mi59pzaisjhj066m9np4ankzizgwv9x5in";}; -tkz-elements-69715={run="1aas8q4kjf26ch0wpf1vvml8dawnwpw1gl6p9wy32f6jim3pckmh";doc="17jard6dv6qagrziafv29339ira4w53zd6p5gvl6mdpylj96bhab";}; -tkz-euclide-69702={run="0yfnc4zqf9nznim015qw335h8l8p8chhyl3ir85zaa2hblwc9ma4";doc="1xlyzr8sd86zrp48v1q54j8y9iw77wx13qf2rxlkjcklwn6zvs0q";}; -tkz-fct-61949={run="0hlcxnllmkhmxl5dwap1sb2jg822bz4glllqcv59dx7jqab5bv8k";doc="1bjkya9ssr6m4aw6rd64nniwffgz57ikz16ciba2x149f39pkcx3";}; -tkz-graph-57484={run="08kfjaniwrlw23vmz24yq9gbdks9fwcf0g4jyy98ikfqh9phhhs9";doc="1drk9va3bgq62qfkcvp5z30gvnscl7mbjz66m27wmgagb2ki2f0q";}; -tkz-orm-61719={run="020bi7dgjipd2ancqji6fa1zcf9lh9d8n4zbacy5l5nclxfiphcl";doc="1zgmsl11cf4fgkfilflw8c4wrcfwnvk1f88l90hwgclfj5q0ashr";}; -tkz-tab-66115={run="142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1";doc="1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw";}; -tkzexample-63908={run="1cs6x5v0f4dbwrsmdq6wjcggc87hc132bp0faxd1fqfhgapd00mc";doc="03cn9q2qq04ni6f6kvrcyy0js718bpc3di37znr47vhh419vpc5h";}; -tlc-article-51431={run="1kzizgzmi7swzhjq9dasz392wga0w1qdb4x3x812lbshzg235vyh";doc="0w07p4rv12ila4ix4pymysbig3yl1apb6cxmb2cp9ziwv9c2184j";}; -tlc2-26096={doc="1ysb233rjb8gpl9s35qql1dny5rj6fn8ssy2dqdqsn5xj9pdasyy";}; -tlc3-examples-65496={doc="01ny6r3ycji0af0cdywn2fmxd0fyz3y7afdnn983a5gy1j9rza7v";}; -tlcockpit-54857={run="0sm882jxczx8q4dvqaxnyb2wzlpxd249ayv77gj9vgq4lx9v0l27";doc="0zd8hx3f6jhm5rklhr5dxb84y17p4rbgwa7wh95ab5f6n8i5pgwb";source="0kldzbbyjvj0n60jgff8y6y27nxnzihjyq10gnx2gi62qn9bia7i";}; -tlmgr-intro-zh-cn-59100={doc="127fad3aq66rnn4jkccyw7qc8pdcwapyjb6lj9kn49nqcy3jm6nk";}; -tlmgrbasics-68999={doc="0yz7d8dw071nawgn2s38da6sp8zbrd03zzsgisfx7yx9jp0zzbpz";}; -tlshell-66771={run="17nrf6cwxapdkdccqr2sp5v7fayd00qcdczzznl7ppm98rsz9p36";doc="1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz";tlpkg="1dvb7jjnmdh0k4dfkm4f89zapkjb31z2364m0vapmvfq4z84vpyq";}; -to-be-determined-64882={run="0yrs04ik67wj1wyn4cl3wfabczvz3ga3h7sfbhni9x4438br48gh";doc="1acxz8nala57gnc78r5aswiwhfvdckmvkv4xiwgcznb0c217wpl3";source="1fizh0inczp818vdwlvyawzvw8s0i48mkpgjydfcmwpsbf8rdm8c";}; -tocbibind-20085={run="1swxyai6gqlz8zjah2qnz9c5dkd1smpk163b56rba0kx7zcmvzc5";doc="189qi2qyp1nasg9w902ydk7rlzxl2qww9w3p5s3p9ywchvm1l9cf";source="08sr335sgs7hrhd6cbdc4dh3f8m9fpplv72fk54y57rx59l8wxbs";}; -tocdata-69512={run="0vj012pdzwbss6h96l8a539vdwihm9f58d6yazsfc74ia4k0x3yk";doc="14hy1z419gb6n4zw27xv1qi3gc3krg83xpnr5lw40yd92i99i8q2";source="0wg9d1nay4cr52g4ird3cgb7lndlyvmx6hcf6d29j5hfdaafkdg2";}; -tocloft-53364={run="1vp3s7q0fcyfj2ksk61gxdjjnwhd62dzfd94yp7y3qfy7x8hyqxq";doc="0zjs0ldib6hm3b9msb5x7r64ddknqwf6kkc9cc82hbla9wshq4qq";source="1764cq3d9ad5gy3qag6f6wxgnna0dhk3rx186jqjpqyqli8b4lgh";}; -tocvsec2-33146={run="157m17r777cfqjn5p4j1rbj10ysbyms87jrhk0wjkahag9rgny1b";doc="0dvzcynpfn9fvfkks5idncgbdqbhxj0vp1d3mfzymhiw4sds31xk";source="0gjpdjkl73ip3jkhr9sx94mwxz3rvxaacn553xwa9gvk3xh5rav9";}; -todo-17746={run="0chmi45gcs8y2zh24072y37g3z62ixpv8cg7ck7knmkzwfzv5i13";doc="0n6dy738cj08laf4cg4y0sadzzzrz9wa9m87hwkya6c95znl0091";source="06xpbraybhf1wbl979653waznvgq697jq61xcpz29gn159li0pdb";}; -todonotes-69319={run="130szqdm8xx7bqqqlx01wgrj6x2wfqzynmf7pjsn953rvyd2da4d";doc="0920zvilbcjsl707vyvvdcw27qg1hjlrmjfbr3229rv9n4zd4fqy";source="1xx14nww9nh8iv0nxvnj2iwj1wm70iqfclgg39q7jlywdzpp7h0y";}; -tokcycle-60320={run="0cl2m00pl40pi6ycw1c1kndaqinrqml5gl88kh5d00dr7g9p50rd";doc="0yy8m10q7pzwqbf371w7r2x1x872idjlrh842vkxk51ijb1441a7";}; -tokenizer-15878={run="04b3jy76qdvbq9c6yc0lmq99jqcprmcfd602zm6xsr0lwmxrp1cd";doc="0lpbfdvmib9ykdcwrcd5inpibgkm99avqyn94zadbasr54k62gna";}; -tonevalue-60058={run="12jvvfppr9zqaqkqm1g1nqvxikqqg493a1p10z0k123cw11877xq";doc="04gvjaxqhqixs13x9y805dgsxr62zb4i1xmcgwr42n2a5qa4dv2y";}; -toolbox-32260={run="1qpbidjji1rj056700iyrbhgmqvw8is5kp2mmm5r9f455dmgm390";doc="17n7dxi0j8razw5s12s4drz22wd63xffx1x6w0a4jhiq87na4jq0";source="0l9w43kp3h1mbas4pab9qk6b18ny5r1k8vmm9nq2j95gm7z5p77f";}; -tools-68941={run="0hhib64h3l94c98v7x505gvc0rd1z8cqawypkbnvlycmw57804jw";doc="0r1c6gr5qcrxyy3xnxj1rrwnzfsqna9qzs45gka09i23r6x7ip8y";source="15an5rw7ciq2lji49afy28z0dyjid3sbf66pc0lfs1dxrln2ijrz";}; -topfloat-19084={run="0md1db8a7ifx2vg269y2dhcf4l07qa35jg57x4q9nsn8ac9gy4v0";doc="1q7fssdrg5r2i51b722mw6wydd17qd8b41iv9rqa7s8r9brf8f8i";}; -topiclongtable-54758={run="1p71kg4882rjzlbq9rfgvppz532s227xs2jmg8zbgplfd3j96mnj";doc="1q12jsaxs9d15qc19wjca7xhq6qajdp7573lv9dc6y9il84r1izs";}; -topletter-48182={run="13ggrw7s7k476sp8fzbj5if20wa1x75m68ip17f1srihnfks3903";doc="0f45rz9n6fsg2c429n3hmzqx4cqv9jvrhwgmbfhznn6zrlip3qy8";source="0p6gvk4xj7bsazb7ipfgp6by60br9lyha53lj0z7rz16f7f2ar0w";}; -toptesi-56276={run="00qd8ap3dgrj16g831458m2kp0jivvbvmya2xzcyp560njsvqqca";doc="09hnbj0g7x76m9lnn47z3cjjnlbbfmapmln3hi6ykb6lh534c4wa";source="1nr54n7hsij9rjn54wgnij16xgay0dda2h6vl2qc44s8yz892jc2";}; -totalcount-67201={run="0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7";doc="1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9";source="1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f";}; -totcount-21178={run="1mj04hqxi81i1pwjrn10ipm6b0xwv2081paa4kvq7yma8g2kmi9p";doc="1c1941vfi2pf0wsbfhhzpahyxjzb4jx4lr85k7g6r8vk64qahy9i";source="1f6r2ci4dqri4fxd5mwmfmqmw2k5jfr5vzf2mazynixxp809mjwq";}; -totpages-15878={run="1z6brrn4kb6w6an8iz6das0yykwj2cbaswa9wy2p3rfc0w95x0ms";doc="0nm7x3rv5rxg40k0xls5d3s5dqrpc8vw9g93sa3jkdn18xkxh2zs";source="1b0glns220jsmn1607d5f44k2lijjp95cd0dkxabdc3p576ipmmv";}; -tpic2pdftex-52851={doc="02nf2fg4xzh8lbbddvm44qyvcvfn5b7kzcyg729a58l29gd88pbs";}; -tpslifonts-42428={run="14cpw6n2j16mq1742lyjb09zynyjhq1wcljhpbb4c6brwnqvb05q";doc="1wwmxwb2y6zyp1h5hskl7b6bb58ydasv3gq2bj0jcnqhdphgii9l";source="158innbi79r298sj1r4qk9c0g4gv1wzdkcmxf511sdb8ipar6xk5";}; -tqft-44455={run="0v14gsk9nwyppdyvcd4ngx6mavd4sa1y8zzmjbb8gcf5dlnz2vg9";doc="1wwvklsd7aqn36vym38m3q6gqf8fgf16axy627vdfqgg30jsml3m";source="155kv0h90zkymc6b3r1iambxsfx3y3rci6nrk01yd185ml21dvdy";}; -tracklang-65263={run="125bpgp39bvp1g3601y3lbwzvq7s64c6zghva1m7yqv2jfkx2rmc";doc="0qncvbpqc693iy5id0fa175jqwyyfvj4bjpn6zwsy5njlh4dixzn";source="1gpp2kpj9lckbc33ldv91svq9snsyk92praghhfn7lhjn897mv5n";}; -trajan-15878={run="1hnk1qb46hihc3ga6klxghqf7yvn6zschp6w36a08mz1hfsdb8sj";doc="017v3bmngyh8wydjl7hmxqh2rz61dg2imcl0gabsfs98l8fnwsfb";source="01qgax96y0sklbbb8mdfv5yc0i2k90i23yg75vhjmb7xlwx60q7k";}; -tram-29803={run="1bk233y9pin9r76vsbkg5j2wadp3c6p2x3mgqchnmlz2ip54x336";doc="17b0vw6r2ijgxs3dix1ff9r342vkz1gsa603mxixxxik62j5crk5";}; -tramlines-65692={run="1x4mgl4rpfijka8bww4qhv3ascqn4plm0qlzpyhz43frmnfwip6s";doc="13zwximglba27mr2cxs2srcb6hwh9jcz3na1jgqh6z6wf2s5x7m8";}; -translation-array-fr-24344={doc="128k8isyn4s0v496sykn22fqn0gfwyyk19kcrmxnc6clgxxfbdy6";}; -translation-arsclassica-de-23803={doc="1ix5lafy3ay2bc9zkkbqw2rrw6ng3izb8d9p6rki6h2j7n0qj47s";}; -translation-biblatex-de-59382={doc="1ygbz7prjg6pdiqm7lknnk8a9ar05xvpdam38piivif3d3yk5bg1";}; -translation-chemsym-de-23804={doc="01liazqafs3lh9ppipw6i6sljcjzr31nq70r83qgknqmb9j0yfl0";}; -translation-dcolumn-fr-24345={doc="0xakssrkxb2wc6xyy1yvx4mm398x3yq032b7vapqxl82h992fjll";}; -translation-ecv-de-24754={doc="06b4vhsgdphi6kdh5x4a2kl74b64z3y5qzxcpkn0hj40038z1av7";}; -translation-enumitem-de-24196={doc="121raikamd33gabvbgwygrc8hyi3qhvx4hhv4h8wq2chrglj37dq";}; -translation-europecv-de-23840={doc="0n3x8g6k3qq3f4drkhzygz4khxyw6isgxmz963xqp91s0y667gws";}; -translation-filecontents-de-24010={doc="0d2ds8kc98yd1can0gzcngm7gsn2gwhriaxnnds5kz3z3al71gkc";}; -translation-moreverb-de-23957={doc="1jbpmvcm9q73kh09mhrbsb2wlycwwm4n8il342hz4jd15gwhmy8f";}; -translation-natbib-fr-25105={doc="0f0r1n8q3jkxsdcddabsgz9h9ndq4yffdpxdqxvqjmhfafhzwgkg";}; -translation-tabbing-fr-24228={doc="1cih442gp6zf8nwb2lbgjn7a64aglyrcw3aciqy5pkdw09pwn0an";}; -translations-61896={run="0cs8wvvcgmzsnx2bv1qhmcmcswpj6kbk79573yr9vmiws43djng2";doc="02z9ggyi83hiqmvc53wgvkxw7q3jn8sb5vd1pzxmw5kvhdgkzy2p";}; -translator-59412={run="1cpr6znw0nkavqxr6bv8fkb72ygnjhl1ap0wbim75f1gmwn7k4ki";doc="0yk617bp6c4wcr6mqmyfsh9lirjjzlg6fiay3fp3g9146p567w4s";}; -transparent-64852={run="0rq67j8rxjcxp8kwzfzb3ppxbb74sybl58yzq318b8663g65jws5";doc="19gpcw9z3jn9mfmb4ixijyh4xv420is978s7d15crmn3vsk6cygn";source="161qwg68f5nslk49sdibmxvgbsn8qmq0ivmyknq2ghhffr7g40pb";}; -transparent-io-64113={doc="04zfmk25qw2cnja1zqhafabsy26zalxiawf6pm5zqx4x1jl47i6j";}; -tree-dvips-21751={run="1l7vgcgbh31hdaaqb9kqi9jmvbyr5429wchyjg5pjjgpffj599qv";doc="17l7mmvb03zi7am3nnp60ychx224kn5i3bdl2yv2v1dywbsnl7yw";}; -treetex-28176={run="1gl79r8h5brqmkw5paf26vm6s5ipa0f7g7cxxh3v68qg5cm2dink";doc="1prh07qqn92il09fbam3c66czcgi3ssa6kd02mb62mczzf5k594f";}; -trfsigns-15878={run="0g1xdyhin39sqbgi7x5m5r5786x2822sf49271arhnv58md7ns76";doc="1nr4pypsglxi17kpxh6y9xh0b1ky0w41f2i6h5fi7y63h9gjl87z";source="0v1yc2zq5kqcbx8dp12nzfipw2cd7f6z2p9wxxydgjd4xp6s8cny";}; -trigonometry-43006={run="1z4sk50nzdplwarbv7ha3gi5v6g2sh2nf85ipdz2rbj3cnz0j53n";doc="12pm2720vyk1c79qbgk935nridg3z48cbzmzbx9ak66araz9y901";}; -trimspaces-15878={run="10rx6pcvwn1lzyivn312j76lsrw3lb40jgzyj861gl3r3pcls0nw";doc="13zf5bz4pp0lwp44kxdj1zw44h978bdpaiskbma752603jlznaqs";source="0nfwqm4a7c1ks5sqypkwmffqasjaw008pxjb5spr49h3sv7sp04w";}; -trivfloat-15878={run="0s74sisq1bg9n593az435chspj55ysx9b0vqywl30mk60hray6zm";doc="09szjgdcy2fc4ddkw09vsa2am5m98mgm606i6s2nrkjgldm0x4ap";source="067ab9d2vc3m950587iqcfismjnl8fp0jxw0ssdsz3gqxys6vgz8";}; -trivialpursuit-68971={run="0rs7bf0wba9i85sgnxms4sng83y1ckpz89ibs93wqh3fappy4w0i";doc="1zci9nn24r51fcbz6sqd81zk8zad5v45xyi6mminq0h3c9c6lysz";}; -trsym-18732={run="0crl9ik3bd9jwvy6x9sl102bvp5pgj2rq9mywlrcpbxrvvffw1ab";doc="1pd0r5j26xj63qvj7mrifcxjrzazdi702ang8k6npq0cc8v29iar";source="06aavqqczg63yc0s1mwry4nd2ml94424a2qxswcz60y57m68yq61";}; -truncate-18921={run="13hzrndx2myazl7f30i736zs8vk12203hv9rskwncl77hxrqqqpm";doc="0l5hgx3207h54s4n5193zc6ssj6l49xwx2hd9jfpqh1f73kpn6hf";}; -truthtable-68300={run="0cas4lh1n7y9z7b0bvi3yv6xhm3klp4bqdmqz42gh0n2vz9clrvd";doc="1s3ff2pjyls5z1ll8m3x5m0h6gf2is4pnlagiv3y87nbs9sx359d";}; -tsemlines-23440={run="1c7sjdrgqbjw6f2s3185k5rlkig643pkkahjisx16h0akbbdm4k3";}; -tsvtemplate-65333={run="02v9b1jvkynz0gl4czzizs3kj68bkwx7m5xfh5abffcy74f9b96r";doc="06ph8853hvm6xmn6zcycim7qrmr2a4vk702sicg6bh1bzcw14cvj";}; -ttfutils-66186={run="188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1";doc="0yabxx9pq8rj2ibzqa19ix7vz5haydbdp3ylinanzqgafrjd5pfq";}; -tucv-20680={run="08m364pqd2imqfi5jalxjrwbjnphjihnmlpnpqg8vaz2rsmddlh7";doc="0rfpmrlh7wbpmpqp5j6iai3g9x1zkhqvwfnwjfskknx5an1ad79c";source="1s0shpwhb7q4zhn6kq2010a4d3jwck3liir5jn5h0gzqbsafai11";}; -tuda-ci-69351={run="0cblzjymh2012wrkxyh09wwax25cysiz5ph6k2pg5qjspx1a98cm";doc="0q4lj07kd9h1cqsyvb4y1amdyrabck16a9r0pwi4mkl1qnlv8dmg";}; -tudscr-64085={run="0l7m9n8n6ikd9f47jc1xp8b1ik2vq58samd3g1v0m7f48jvf36f9";doc="06g1h7l2bbabg87y97zifxn6401hf0j7ia86scgjkpjbx7p2dj2w";source="1s4y8cvn1iw77b2qklbbnpm1jkjc0sjnkvsa3savvcb7zhw4asa0";}; -tufte-latex-37649={run="1azsqa3qa1w2k0r4sp83xp9b7g1xjw47wv9l0sk065zq0bdjr9yy";doc="10h41jbfmjg7p8k3m98l2jyhl7365qym844y8f38g0f9sr1pyxvn";}; -tugboat-68694={run="0yj3a32shn70svaq3pjmilw9ah55rg4z3ffd47dz263qqrp5kxm3";doc="1skr54zc5z1vmmv6c9yx1c7q69z5y6a956m917ckb67shqrvsgiv";source="0af24yivq0dym98zzpz1y2xy1l4k59j627fiiz4ny3lzmgwjszg1";}; -tugboat-plain-68695={run="0nk6ycvi05lfbmr2grhdfrgp3d3w8d5di1alc7gpsqfimxh8d89k";doc="0bzv0zl27vjz4fk3nl117jjvcj7ay9dpwnvlwblq27mhj0b3z3j3";}; -tui-27253={run="0liczx2jcdks6r5040r7dqcyrcj225xq0035ccdb9kjmp0rmc90b";doc="1m73fc2nj7qsy144fmbqhld3hx431ry64jv5p7h0r4p0giadwxgc";}; -turabian-36298={run="0fjqr88a51699p57d9mpkpf2hn9rrmdchsxhpjng8hkx3yjl647g";doc="193qbhcgh63kfnrivzjyyk8vp66wb5k4791qdii7brp59xsy6l7a";}; -turabian-formatting-58561={run="0bfl9fgj0adpcm405a9b1819463nrzqplzzdlvwy6yanyqfqcp3i";doc="1dam5fm94hdyzi4ai0wq03pkarb6lbrykych3ixcsz8r2z04g7nx";}; -turkmen-17748={run="0jhg6nd47y8igsn10m3bcsn61zydlwk3g1qfqpy8snz80rkyn9d7";doc="1rs4jmqy5zrgk2awvvw8lsvdkzjwbfq65bm3m9c02158q63bw2i9";source="1kz5qhyjax82mv74qxhsiwj83jijnfhgijdl2w8ic8lwc31q5ihl";}; -turnstile-64967={run="1br0ny72qsv5fpfw4x0v7q3dqy2jgicyd97ibzpxc04mp967njjr";doc="1iv8ysamcqzc7lavhskf8kwi29jn9xcda0am0ak9s1c7nz7pb3ly";source="0aadq0w193hl3rlb1d8xv60yy0fam4aprz4j96dphnanbb9g27ll";}; -turnthepage-29803={run="0zsgmi4akjkhwqas45r7ppbx5c8i5fyvpmk6a8wmpk99ib58pipq";doc="0jkv2zs1m6bggjhf3g71g9cyvrnmgmr549fqsvc4lf8fp9kp3ayn";}; -tutodoc-69343={run="1a2q792dv19y03sv7fcdlb60vkld9z6vkkv4ad10w9frgq3ghhwg";doc="0i9h32l6smr7k1ra54ds8gh2fjaiwpgnqvgwq9m890l9f9f322cn";}; -twemoji-colr-64854={run="10k7gl7jp9l41mj6jamz26wndf3casx1qyy1dz1rscgqyvgjgh9w";doc="1d0kaq2k3svm7609x3nfm8lcd1d41rzp8vcr3wxwrl1dadjv180c";}; -twemojis-62930={run="1k58rnl12pj54g5r9rc7dcf1n33p0hw233wckrpn0dh287gf5ffy";doc="022i152bp2r8fnkwb0mpz1nhs54qxpy57f51j1mkb5rc1dqgcxqh";source="08jxkcjb95yb7pc7jlf2rcz9b2yibpi5ygi48d2ni79i5382mizh";}; -twoinone-17024={run="02na16ki3n7gcbzi45dk6nwna3dqzgxwc73aha1zncm05bnj3n4q";doc="15ldj27nb6pp90abilsybzg7hn0z8xfv7mmwrmwdq20qw8ss75ay";}; -twoup-15878={run="11zxz1wlnqia071kg3d70glp167k2c210gc4r2755sh6m23wp8p7";doc="02zg1rq2ylm9qvgwh530d5l0pq9a377z943s66apyf3jz8z55sj6";source="0lmqla1wrsrzq900c4fhjzbvg7iwbd3y05g40j0lmfrj8w8lqvng";}; -twoxtwogame-70426={run="1gr6wgvpzb9d07a416fngf499hk4pxvqpnq040jspnz9lsfnyd7v";doc="0d55npjzwpjm2bgsm6dc44n2mkycqglqy4nvkd9jqfajddk6l9nx";}; -txfonts-15878={run="1dfrd8dzrzj9y5qnz9c554xn2g9931slhj9ylan2i71k5asxmkiv";doc="13v5hhk0nzj38nfgyz9ijmz9gb9703izrgb617z274d744qwqx73";}; -txfontsb-54512={run="0g2hjxcqhgynzmvj44q9d1wpxwpwy52a6rbl3nhnq06w2v1lh637";doc="1yls8kb1bglfqa7yiqidanyjgj3xb1isc7z99ybw2j2kbmvvcjbn";source="07bapd1i9rwf3946pj54s0m0841ximmj60ic266mcmj5gipw2q1q";}; -txgreeks-21839={run="1872zrdb80wfkjh2bdblv31k6cm83cmsnqns8f3hwf3vr0ymvb62";doc="1gswhcdlf8n4wpnzy0fx4maxvy3n4dcbag9r0igrcvcbqnp9sfcm";source="0n4r3zn19z62qkd2njxqj74k60jr59704mnhrlvmmxi9x3b5g5sv";}; -txuprcal-43327={run="1l1khap1kpgjsjrbsa3d9hgd61lw4x7pi771mchszkaklqx8qarn";doc="1j2y6scl5pa25yk00zf64nqgngrvvb4hbig3qi50rzf5kpq56pxp";}; -type1cm-21820={run="0xdbj0yivyb7advckx6k2iwbn8xqkxrlapjrqrx51jcqhzqshknp";doc="1zw172nb8jym439sz8fb2nnfxmazbnr5mjpmffwkfnasi2f7b4in";source="114wlrzzvlnd1la16mgdp88f7a6h6v8l5ddq72is0hcddw80g2g8";}; -typed-checklist-63445={run="0yrl1vlsly2k71svaziblbnd3jl9jpnpvpg942gg31dsj9vvsb2q";doc="165h7yh2w6n64g2165wbxhpyghwgxww7lasy1qi2qmzkxyf3zi4n";source="0f942k6pjy821851sxhff7idp8w9n8wgf8v9dfrx7mgyb2yqwwqb";}; -typeface-27046={run="06i3zhnc42zbzb5lk0pqgiwq0y7wgds4hs27jybizw9y3yhv9nf6";doc="0z9q8q87iybb4b6g1xnnryr5aihic0vdsjq5xv55i3gbgrd15kr2";source="15igfb6xy0g7jykb50086as2drjr76jcprj3kafcf347427026dv";}; -typehtml-17134={run="1lv5bl9bq1413bbbsjvh8gz1p3qd075y7asi9x0nja36rmcags11";doc="1cgx2prk9ggw3wkbabrm0sbsfb4ablglzh2ckvg5s0chgkilcnyf";source="1ihc1dq38rklrmw8h4k4i6pq3qy9dlwn7nwzmjblpsghszfivxqb";}; -typeoutfileinfo-67526={run="1006mxdn6gdmm0ssmnqnw1ay8wi0549qs7a6vyv1nrvis4v7nys7";doc="0dvglz9jw5ig3xy61syy6yghf3xjnynvkxnwqdmkfz7fgy74hb15";}; -typewriter-46641={run="1cgyi8q0w8j6xywby39g4nprg7p7p2dpgfdb58qr5nsppa2i31m8";doc="0lz81r7jv8frdgb1aglxlr98cngacacjvsa4wjzwr9cvahc1q5r0";}; -typicons-37623={run="0acmp2zpg1734c6719jpmcccyq4325h2023bc87xmj7jxqq0xlp6";doc="1r9wabmkqvzdj6dcxl9syymp0rzz8kj0lfmqn9j4njghclndkfdf";}; -typoaid-44238={run="0m7nvdni7nsmbmlbpf51cb3s4s5qaszbn7mw62dfvvawgd2d1y0j";doc="1b24irgw2779j43pc15cwpazx0mdjy2zla9n6lqvmwyhl5xnaswz";}; -typogrid-24994={run="1p3if64qmyhflwlf4gy59wl3xajaza5xpllxy5f3a7n1pzca46rx";doc="1v9az7ln7z1w3d2bcfn02kxqcwwl4kg4zjri2pmvicc7skzkplr9";source="147flz7xlwjxbq7wkaw83mxr8qbcqvjknr27a0aaq5zs81jcyy8f";}; -tzplot-64537={run="166wxyqcd55y55ql1p7wvrb2x4mhavz7byax2sq43bqsz2h6689y";doc="027pg77h4p7vavy1s25awa355id6i2ngsb9spmj3bapr6bknsajw";}; -uaclasses-15878={run="015wxmrjfykv7j2bvmb42491i137h513q826f5czmcf1c8gk8bl9";doc="0x6krd94wrdwc1zkyvqzznwvnvxx4agwinr5fhshav6r8jfsn4rg";source="06nsdpmp8qqsrcbbcdpm82gcc3z8y5dlhv2lgwr4i01srwkd91r6";}; -uafthesis-57349={run="0fj2rfdzldav8m1ac7wv8n1k8pcgj4yy4zxx0g8sg1mb5i7if0k6";doc="0g096y6dvxfzbjrvvwpb92z4hrxp1p9jvbgkap5gra61msacqawq";}; -uantwerpendocs-66819={run="1dx140fk30ppk96h4n751mds1m6d521d3br94ixbqybya5bc1y64";doc="1f57n9v9pbwgw7j0i0gvv3y976a58lrf4w55gd7pqgwi88fdwy9a";source="0sq29h4il7zmxksqhdnxyszmz4d5rgd8qyzhi1y7bjp8c4sny2dk";}; -uassign-38459={run="1xwinmh3a8scfgxm40505zn85r0052pcykcs0lcvazn91007dl8i";doc="1b89rvsspkgs60rkmqjad7n2pwwmviiizpqr2si02kwnsqfspqdw";}; -ucalgmthesis-66602={run="1n8g3blw71qrrkrjjq867qimn58w5a2l4lnfyqdw77wa67qzxb08";doc="0jkxxfnc9npmvvxyqk3zw5csapmhgfqhzm0rssijw4d46b7w1lcp";}; -ucbthesis-51690={run="19g7wv3iypbkcxhlybizkis6yivgn6z0mvz4rgsi72zaahpxmg7y";doc="0nlpc0vm12h7pni3lw3jqq7fsh273nc63abw8yzw69crh3fspyqg";}; -ucdavisthesis-40772={run="0kdrwdk7mg3yd7hm2xmq63kgikr2p2izibfgw1whai921za4wlm4";doc="1chajx1i2zmfh4ypnf8jspwr8kjwbfv7z07qrfasrf73r775yxnh";source="08525i86hrv1387jn9ayz3mpwnh4z8kvjvb590y7gqv3cdvrsa2b";}; -ucharcat-38907={run="0xiryrx3pjx2nq01f4f0x3anx3zvkdarp87103z9zvpf6aa27slw";doc="0k1aqic1ljafdk8xralygdyjapkqa0qiainrbf982233kjqclpvd";source="08xxmm2rrpyi9a601bzxka226fnhmyqfv8cfbc1qdivn8658785y";}; -ucharclasses-64782={run="0d5rr5w322pr4bsmcp09vsldydxxm69mcpvpaf9j7z5rwhic9biv";doc="1l6pv743lzdhnxpd8bv1y40xhfg82421jyri2c5h7j4ahlcnnvic";}; -ucph-revy-69750={run="1pp8cqrvhwqc16nd60bd6kb76xxnsn671icsph6byx8xr7fc3hl8";doc="0rqj0b2a73wil9iy4sd83831nvbd0x3lqi5480ig2i01rq3lkpvs";source="0kr0k411gpnzvgjgiqnkbdw8nq3djp8107886igcw26s46ipwics";}; -ucs-68759={run="07xgqkjhks344r0d9c8rvw2gvy0kwhx5kvyzkf2ymw1hiix8w48s";doc="0icaq9irpb67mipfpv55kfbdy5m7dw83h5qqq98f5d1x14h3gxbn";source="07pasmgx62jjdq8wgqgk10wkykzljj7v52xhl1ncma4idmd7l97q";}; -ucsmonograph-52698={run="1jkcyhrh5zf8p205xgs10azhp69vrz613ln9ssrb4485b7a25b3d";doc="1hhr0z3sy8vn6cv2i7g8nfpnsdpyrsbqrclc8j8g6qidh83x2y5q";source="0x465kyz3chdcj705v9gc8s0w3pmawaza93pcm8nxy3k7dwx920j";}; -ucthesis-15878={run="1mqj65aps995issvi1vgn7f7pvxq39pwxaqqwh7pxnki26k8czrv";doc="1hv02nxak4laz9az2kr5lvd97l4mcnixdmpysiz6xqvc13ivkjl7";}; -udepcolor-69701={run="1i8vmd208l17r0w6lpzjymi73n6ci3p5izqqhbl2wgyxsq4090zr";doc="1zm3znyvkjpz5ilbbmkk0lq6qaavk9p55g5b67mqm9z1qh423gjd";}; -udes-genie-these-68141={run="1fj7qy5cbcs03pkpcv8ii539val5ps57pk0836srwgmgh418csiw";doc="0ikgr4zdxfi06ply66kp8v8h1p51m8fmzv87hlg490qaj8wmng5i";source="1rz05n7bvf0c8h8b278m9q4pj8vdc29i5xncr2374lyhkcx4r3xp";}; -udesoftec-57866={run="1lq0n05v6q0p78jnq1wf67pgzh214lllcas4jxlpz8hrwk9n9v1h";doc="1gd4qhdr4wxgjalxgqp0d404w65x7r3ipdkdq82lfcyclqyab8fh";source="16fgvdzlxrcaxbbk9m9yxviv8v3qhki2s5kq8j065xx88zd181aw";}; -uebungsblatt-15878={run="198bz1875qhh366ddvdxj72jpcdinfxsrb2mzirr17fq6liwbwhq";doc="0814xqw1iglvwn5y29fsvgbrm5clhgiz6ivbh8a8rayscbjwixmj";}; -uestcthesis-36371={run="0dsdzhf9pp2x4xbprii9rvl0h0jwwwd03va8mg7c3cjgr2nvy1dl";doc="11z3ac2pnxg8qqy4shmdks7h33257nbkgj4h1rq49gc2ssqmp8pc";}; -ufrgscca-70603={run="0vnibzq6ib2kdf3kdgk72aznshsnj1izq648l8f8l7sdzw9v0pm8";doc="13mil74klrh23af2as7s077ly4nc6v31qcxyp3v8rppff3jxml9m";}; -uhc-16791={run="1xvkp384p0xcba1lbi3b2najk6d2w1s78yi6vgppmcjrd5limif2";doc="0q1wxcn2zclpj4bsn47jgd78xmp82a6x8w068j4ihza9pfvbqacm";}; -uhhassignment-44026={run="0pb7hw9krpri3ky7hfshjkkbk36cilf31iv00l5iynsnrw70lwyy";doc="1106wbx02mbnkgzwwiypfz7fg1a3rmwyhlgnsxf4z081q891p3fm";source="1ck8c7jx3qkxnm0a82qfql92s05bg5p352fw1yv3y7v86z2kh6ad";}; -uhrzeit-39570={run="11ysijqpnm3b4z7pnyg7m7kpzp6fiw42dc36gxk1aq55wsv7kk7g";doc="0rln5amx6vkny0pm4yhgvnmmr9akwcrd93db7bifxdp07hjbvj83";}; -uiucredborder-29974={run="1zklnahb3inyf5qnavccqvkc02iwqw8mz7w1iam0lz2jmzgc1c41";doc="1lxyssdc3sxsfhizm3f74lxcgpkaskljqpybwl1zw8m347p1qf85";source="1rbxxliaaggn4rk6093lhmndas1xy111z9bjrgjrhjhxw19lc0ib";}; -uiucthesis-15878={run="19fif7a2xb3qrmkg8yfjg1hpisif4znc64765d6jrqgb9fqqzlnz";doc="1w20kjwdgppl39axgwks373j3dsnidamhvqy1wn3yilzfb9vjjxj";source="185mzcsh598dxnf2sb4mmvc3qy4pi43qrlim5jhn3n90qvwp62cw";}; -ukbill-69362={run="0k3wwd9snv9w8mif0snbxbgaykmrj2d25kakllqc9f3gdpjfqy7h";doc="0c54c4zaznbpskycspfihpla4928w5g9w095lr6djnqb0spk8138";}; -ukrhyph-21081={run="1fnh98jcbn9l09mi952qrdw0dq0pjykwgwi35zz2lz8h8r750ihw";doc="0bbj125zb494g9x160n3lsivims28w0drhfmp0c2920cwhk4m0xh";}; -ulem-53365={run="0v6p4hj3hij0qvq7vpsbnk11rhwwlx80p3g575jy4sn2vfw5zzsm";doc="18ny9kfv3w2ag97czcj2gaqqy1gj2f7rd8r72vd7wsdihgqd5wzb";}; -ulqda-26313={run="1mpjwq43dj2am9llszy1yzz2jbhdskf14ki881j6q6h5zfwwacdv";doc="0kkxa9sv2xg6d31bj00wszkchkk6raj2pvqji930098jray3zdc7";source="1gb2r4zzr3q2kfigrb4j528jmr5paj38swhnp1dlb2dqr8y1szfc";}; -ulthese-60217={run="158n0yiqrb8x387b76c181ps3m66f8rvl8paanqnfbb257jn3hjl";doc="1sasf73ax5nrk89a9ry87w8yf4czr7r7jwbg4cpwxry4rffkz636";source="0rli542fgz8hbjcl4ag3vgkj2s44b6w3is62ai2zj1h38jm4ybh6";}; -umbclegislation-41348={run="1lsvsxjhjlfxlqvlmy4pqbgsr2jv3imzgv7zfa2p3gj382hj1qlb";doc="1a3cjb20ycjs1nsghc9fsiz4kc8f6awah0bksqyh2ik4fnkydxb2";}; -umich-thesis-15878={run="0k1jl1v6nqyg4ld1f470x96pjm68hs5fnl3kab383363mly5ypy0";doc="182vclnb9yja2jgh6j2b2f7421w0xi567s0jrzaqvbnaik5sk5x6";}; -uml-17476={run="0gl1063pjxrif7qpq9wxwajpsp32idmnlsq27y668lwpkpm0vmzn";doc="0n3flbps3s8lhr9pimdw41kmyrfvn51pddm4d3yc08v96sgg65bn";source="0ylzxyl44p0574qvga9arjl84ip8nsafpgabbwjrk2kcbs47jsi2";}; -umlaute-15878={run="0k1pjakg7x49lyvpabjaspwa73z659gj4qvgysm3rd1smkar6vy5";doc="1x9l84zk5jnfasgqc4d35g10a5la79z5q6q55f364chc7bibyzis";source="0ajdnhbdw7b0d8qxnbalv3867p5lrk4mk6xl9skmvmkzpbf4s9an";}; -umoline-19085={run="0xx4v6w2sw43nqrzdpww561511dcaigsz5blywqg72giw0x2v3la";doc="0zpn7ii50w0bfh3cr84w6nk5zj0g8y55r577wnkdmzpm51qxznxc";source="00nb73pq0s7xychc84438aa9472mp1h7drafg27wm916f10832cs";}; -umthesis-15878={run="0iby3d7f8mm4p5z4jgnxzqnfmwhsws6hg3yb2l0mrknlj98ww4yx";doc="0vf8ikxi8706hc0sv1h53wzpd4mfiz607hzbhwq607k4hc71iz8f";}; -umtypewriter-64443={run="1xn06vz5lxr58xi6y2qv5wa5h2r0g1xnba43x5qh5ag6bz5ym1wh";doc="1sgsj3d153nyylqz5q1mvjfh2mnll783863wsmh9n6zajkfxhv0c";}; -unam-thesis-51207={run="05lb63wclgxqr7jn7c38plhg3r806b7888zyifcivv85q143j191";doc="0kxdr723xvg0lzhmzwpyik9vxy584y41pmwy8bi7197gz1hgdlzz";}; -unamth-template-68681={doc="1ydaxzcwxq1rjkawlapnfipjzlyzvbvijrx98pi9yd4zk2nnqjfv";}; -unamthesis-43639={run="0wqi46mdjsl06q7hyvy4wpihvrr040f5g23bgc6lm6lq11jadj6l";doc="1l71n80psc2hzjs1lnfgpfpg13355sk9ld86104dkyrl645qx07r";}; -unbtex-70325={run="1djrj3ywcp9r9w3gj037vz2rw502j9vdz4pnb10zzsfc6v9wy55d";doc="1r202y3fh8bg9r39vfa0b565jlpxqfilwwfjh5w60ywh32ps5pqa";}; -undar-digitacion-69742={run="1bvfr0zb2jh0q75sr6lrkyxqkh15r15lrdsapy73vxcm1s34i96x";doc="100h0pzwawnv2c2f2q9f2incb8arl3jxrhaj5vra700c6i6lva1z";source="0z40wjd915w64zyazfj2bpykq6x6sq6c3xmfh4wc5m91qp45wd25";}; -undergradmath-57286={doc="1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7";}; -underlin-15878={run="0gm9cikysz83sdkhhwd6x9zbs278gwfw8mxh7z22l3c0nvfkxbfa";doc="1rvryx13hyif7hw2wgb88n95qycip95xh92jdy1jm2l6pl3c5q3i";source="1mczvxrhlipisffdi9jv5m3d2i7h34jpm6vi4dbl58cg9sasc4a4";}; -underoverlap-29019={run="14cknh021b4qsymflf0mnv8q2vvhgsf2088s1g6pm8ckpx7diq0r";doc="1h1qvk9m04sp0nm4acj7kfib5cfpch1mkpvs55mnqqsgasgnymjn";}; -underscore-18261={run="0a93sgddm7xy8iby50yficparkr6hnzj46w70madbwpjkpnfya78";doc="1lqg7j0hnnhqnfzdv0zzgpnmbysypdind3fmr6axkw0czix1pz5n";}; -undolabl-65846={run="0arfny56vh389m89jz17mr0xbdlmf3mf0wiilmkdia4sbnbv3g7z";doc="0802sqkxir6gdkxkaxh867wjc12m8apvlhycl19fmlbivg6pfla6";source="16ymhmx7by5pi36z6l4l27z1x8pkpz314jfibpc5azjmcphqhjq5";}; -unfonts-core-56291={run="0pyrnydswlqhxacwqpbc1m3bzm8v4gcl3ka7w2mppp77l8a70drl";doc="0225vsqaj8l0g1igc4h8m94cfk6wv17vlnappdgxwws1fknz0x5m";}; -unfonts-extra-56291={run="1i7skyjqlprf6m1pnz5l2hn67f1cix4n3pai6v1a8adrrx7vcfdx";doc="0d3cxfm110lg12n3c9hc88lqmx77rcsil1s6yph384scxadlg3bn";}; -uni-titlepage-68917={run="18s5vidaarmpppdw12ynb6fjc52sn5i5zr5lglvgfqmxnwx5i3d7";doc="0djb52kfbp3nn4prj7x613g58qqjf1lnmcxg1rq2y3kam4g63r37";source="1jhvh4aj2z3qzf85wq3isfvkwlf5cghrkhqq82q371zxaks2fd0c";}; -uni-wtal-ger-31541={run="1jyba7g6qmngn4lx7mrmk0j190zkjv8lw775w13hxr2yky31cf1z";doc="0kncfbrs663qcpc0nsfhf0asjri8103laj9zpaayk3by612lfgj4";}; -uni-wtal-lin-31409={run="1rc0dc1g1fwhz8qa550ykc8azzc4i748jh37a8ppgrf4x2lgxzjq";doc="1ja9a6fjrlh1lbjkcsal7ahw24w1gs1mzma6jiiw5p5kbmc4zpz1";}; -unicode-alphabets-66225={run="10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4";doc="18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8";}; -unicode-bidi-42482={run="1prl0i2a9dg5yc2yl1x1k0zmz9lww051w1zwy8cbyvk3rd765a72";doc="0ab0gym9sjllmqdclkjfbc4fh9n20999mv7z2gylfybirm0n7i7c";}; -unicode-data-68311={run="1ra75819cglkd1gdv96wzflx65bc73v46k2hmn1bxjachz3cd7fr";doc="1b8zpwd0vr238may4wv68xj77w7fiq757jv3i45yz0gir1as9piz";}; -unicode-math-67919={run="12xc969s6x742a3aay28354cpvam2x9ack1396q2hk1wdhg846fl";doc="0y0sacc4rd4ilzjfw10v058wv626wlva1kzrbrbqxsclq3xcm2fy";source="1wr1hrxd63z5iisdw6k95qjknl3i917y2dmnrflyn0afvl2pxjg8";}; -unicode-math-input-69591={run="1bz4f905r178kkdbbx9c56d0l63a3gzaqia20qj0q0zhqvakln18";doc="1lh4qx0lz50j2j69m62330snq5wsg7vw5847z3jk4kpliqa9ybm9";}; -unicodefonttable-70354={run="0yvn44xyf0lh8p7r2kmdw15gwyjc9zcv46bc7bai5623shbk5xkf";doc="09al70k7rigadasi2i0rhza88wxnasd6j4b8mlyaz9pzyqc1dxsg";source="0wagy5wdim81c8yp9ssgbx8hgf5322hc2jwg3zwd5jsffvlv5jab";}; -unifith-60698={run="0plwq53cp9rsdsjd6db1g8b39k5czzdsmmrfki7ckbgiw317k7w4";doc="17q97073nni7x2d1zlplrwfvnxw9pkjgk79jwcvbgfjq09cq374z";}; -unifront-67054={run="04rm3pia1x68qm5kabay70fr1szrzvg4bzk674din4babl3nblal";doc="1d2kmwfa7cz009wfc713my93v3pgh1jcqz13jcy65f7py86qf2xp";}; -unigrazpub-64797={run="1rg5b9f3679qn8jaaqn29bfw3qgyxgx3p3zxi7vsr6kn6ada3j82";doc="0hpjzkdhrl64g00x7jb55wf5mz57gab432vxq3hd4igffrxvk88m";source="0mdcp3f8by29abbclsy9ndydgslpybcs5wqbiz5aiy5blp8d8abx";}; -unimath-plain-xetex-66394={run="0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5";doc="178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn";}; -uninormalize-57257={run="0ai1w8n010sq2fmwvp7625dfmmlvzx9d67ji34zwxdl2cyjlgsw3";doc="1dksyk07zjmwbzgc7c2d5lz7fkvrllbj1nrpb34vd54yxl4azgip";}; -uniquecounter-53162={run="1g7ix0pnd52dsykq5na5d4kfi49zm8gmampf5yn281mn901p3wjc";doc="099clvqs76hiwl8i2gqj2hdmj2m77v03pc82sls2xpwvrs1dqd4s";source="0cgpfgv4yybrq1ryhjrzwfwf97805dw6if2s1qivhry94lb96vn2";}; -unisc-63178={run="16drn07j24q41a99w7cgf69d9j21if2csf4lplbkrvjnv5rnpdda";doc="1s0xqq03ccx4rrmds2l9sz7qphnh9wsimxmghmy7d1slmfwg2g1a";source="1mxjq2s5ns2lhrrqy3xwxlnn3fcb206gvbdvr75kagzqb61rz5mq";}; -unisugar-22357={run="1dx088b21apj2rpij4pxa9srx29irzsfmlp9vn8fjpm1ag60md98";doc="1mnpbd68i0112hhcgiwc2j5jkwffrfdqlrdl896ybd0cpwq5d8sp";}; -unitconv-55060={run="07nmxxclxvx28w8w7gmgfs5vqgbkxxavw8c31nk54dvskd6l6zlk";doc="0yfcqw1fx38kbc4kcw1620h6mydzzxi1y67x1yr6wa0aiwsd6il0";}; -unitn-bimrep-45581={run="0vv9vc9cvw3bjfndlfyr69kpziymlgalyvc11av9kq2x5b4jlc5b";doc="1wyiar6xjhsjcfnxhlz8y1l9xvlcpgmkh360am85llfqlnar5w5f";}; -units-42428={run="0rblvdf1cgsm4fda44vvldy6my58dnars88wv2blgnzny8s00jhn";doc="0nn5y3w25sjxq0bxq07d6453awgm4m4gih5678lfxf9yvnmvigq8";source="0mmqp3vhly9v02fv4q4d3bq7zzx8nmm33nlvbn7137jgc7p5vlbd";}; -unitsdef-15878={run="1ck9awf9mzjhq0x4c3cpan79imh7ijpffii90955jc78h3bhcwkg";doc="15svjszg72axskaa3yg91gvh9y01s1nh5x6nhwqbr9mz3bn3npck";source="07v6xpwkag6fp8p331gcfbb0p1ca36rvrs9kbkayc986k6nds688";}; -universa-51984={run="1r8rh4jbx3lxciszf93klg3zwv06qqgnzikhp11c2qmrjrk9gznh";doc="0acfyvdbqagda11730d5bmr5qlfq7hiqw7dajq143i54k9ln8mvi";source="1ydba7wjiqnjc8drv5j8skv5q8hjrliwd38s6xj2jd12i0zp3gyc";}; -universalis-64505={run="19v4kl6xbqj5lpxlpjghnnhs2dnljzzr71pvw90z71n6wncza5gh";doc="0nw6c17jvpyp5lvarj2hf1ir2hwc54ns9nflw4zpgz2ifr5kr1ci";}; -univie-ling-66728={run="1aqh4gpxg8ryx6lvqwiz1m82hsjf1g1206vqfl3kml3vbkylv21i";doc="1p9i4gy6wimgfwcwffqf5hkpxhj2knn7ljfdx818rscrjrrf592m";}; -unizgklasa-51647={run="0clwxzngdy6n7iwk9zrn21i1frmahdf0s9qq2nqlhk4h6rxwb8jb";doc="1q7q2fpgpjdsmbfj9zijccqpl2m6n0dch72wl05a64hxg117jbl4";}; -unravel-69308={run="0n440qrni1qnbhjajj2kd7zwgv8sk73bv4arasha05xfic0g3arf";doc="1smf996jz3iy82p34b0qjmjnpipxdakp0b9yk5qxv0rbkiwkhymc";source="0hb343svdnjx8czl4x1wlhpmzhrzsslykpnx9aywpsgn2xabncnd";}; -unswcover-66115={run="05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6";doc="1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw";}; -uol-physics-report-65761={run="008iix41i3zxghxmxiyky0cyfn2rzy8q64f49dsj6nvixp6zlf9d";doc="0pbl7vx7xvmvi7fx7l0mn98hff9d838n19zx7izg3xgrqalygpgp";source="05rd3ss59gcfa9i3lpzfb6f8rhnmx50868si3hys13pqhwb7xkn0";}; -uothesis-25355={run="1wgs3fxg01cxcpnhk43ik12sjdip77fkxdaik6w4w926i8z0np7s";doc="1zmpx6biaxlm7fys5a3qahglpbqgn6ml07z6q8vplyqgn213hd6d";source="137c9av6i6b6hg97wmqd2iwqzd1dq6lvg2992wnbm2bp2m9r20zl";}; -uowthesis-19700={run="0iv9s5dfmbrhxbx4kqbhxjf23rln4ymcx4kkk5fmc67qi51i8jnq";doc="1xcqs2h6qs2lca74mg1jvqza77xrph53bk9dwkk0bprhkxn1all1";}; -uowthesistitlepage-54512={run="17xh2myc3xj2zwbc7jjdmnfqhmhzkqj3dwwn2q04hcyr4bm7vnfz";doc="1gm1clfvd0g45fpgf6h4nmyy2vrc0d9lqfy9h3nn2pnh0ki2z0ir";}; -upca-22511={run="1px88kyvr7jkzzcbd32pi7zlak9wwzf3b55yhnh9bi03pk0il33s";doc="07gsza0vhs52qjj8im4i1fg2v2lch9iwk424ik9c1xak1v7s9d23";}; -updatemarks-69989={run="10shcyaanjg9dm3pb08li46q6hbksfd4kkkmj83fivqrm3f69l88";doc="1k4gkav2afnrwhg1469xhyypmrzkdq1zhvvwa4zmavky9lvwzghq";}; -uplatex-66186={run="0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61";doc="15b338kzdd0xbglihc5hf92mv3jwmyxp2pf1nb9l75cxnqfglzjl";source="01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w";}; -upmendex-66381={doc="0mj8nmqr3z7b802kvjmnkckq89l694an7s639yghf3b9b5v7xihx";}; -upmethodology-64613={run="0r7k223ypavdbywq5fwffyysn68pg12dgp842jd22b866ffm13pj";doc="1vw9azpz8vwanfg60vr1a9bbx39k8v6jhvn505pvmf8fqgkqd9ch";}; -uppunctlm-42334={run="1a71nsc5dnaa8gb4xmnlhvdsvid2h9gwmxr0xa8blh4xd0vwi2d9";doc="0d1qs7krblmnf9r2afvzx5ir94aqgxv8p2d9sf9p18nlz9f5h06q";}; -upquote-26059={run="1zglh6pb1fq0ipsivhj0knhcwcg04mjkxca5s2adbbfk2xs1iqgy";doc="125756iaikya3v0wk9a712klp39ndw7i68bybnrif2klm4c695lm";source="137lbzacpmkm1fdmp548m6r83mnhclsrcyqk1s0rkp558fpnqpp1";}; -uptex-66381={doc="14hn2n6jbibbqbdr72j74z5bz003jnlabi3kja0f0waxhas680gd";}; -uptex-base-68298={run="0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m";doc="0sadkwyprlv4i2mh0mxcf2paslskqg400xzwnndycx99yi9bvrvk";}; -uptex-fonts-68297={run="1306b0nq975iskifmbj0ah66dh969sbwydblhv2gywy0yddkg8x9";doc="14m7l415n7ywh0k4k6pnq1kf9iw7x0xv11qvi2n1azs5r9nyw302";}; -upzhkinsoku-47354={run="13fm9r3s01003n8ykbq8plx3xzj7p9bz958ylkl9f10kd9favr57";doc="0hd55x231kpcl1rmds601a2k1yzvhvfks7sg0424gzw7wirhns75";}; -urcls-49903={run="15hnqy2fxqblr9db4h2r38v1h4iwhk5kcm8qm9war1c1pgwg2a6l";doc="0axb3cpbqbksrixhksdhbjyqyic0176lyxxk5di268jbr58203xp";}; -uri-48602={run="1mmxhxm4y7qsvq4kgdnq2vhid360gcgq0yxbcgw46k56hxd61kln";doc="1zadcddyfrgfbrsyl4461zwz8g3rjwypixvmi5ny8f80z4igal6a";source="1w5hbpzc5xka2z834hnzx16ky0kdx3x4y0xxs61l9gx0ygqkzbpa";}; -url-32528={run="189lixyamvrcpds2i7nlh4w83mk5lnk73158kcw3qjanpncnnn1f";doc="1xragd7gak0vzj14f7dcx5hxg8plh47ncqdb1m5liaibrdlhgpql";}; -urlbst-65694={run="0kq36hv6hmj82784c1cf815xgvpcdzgrv5ppniy921yxqxdxn4yv";doc="0c7i74iybjra6mmra82ny1bs09j3qrvqri485p4h1cz6195v3wln";source="14v0wynzshm4qcical4q1vnvmx34ds00fq1733ivl6hr0sj833mb";}; -urwchancal-21701={run="0hlaimb12imiv0h7khcaar4xi5dma11bqcrb2b6imd4srgg9b50g";doc="1mzfmfwny5mzag8wf1h3k4xbmbzphwqv6r74sql8wyqw53s337jf";}; -usebib-25969={run="1q38qzz87nh2hbmml3b0a4919dgk6d5rn0z5bhrc4ip27dscvw07";doc="0byl3xhiz3b4hqqmq2wi5fdbshh5prvqfnhjcgjk619bn99cijxm";source="0asby43xsd35aazh2sncg639x91f91shs25f6f1127rskx5fd7vp";}; -useclass-70447={run="0cdxhh52643g3p5rszasqrkmvbbvjj211qkhlhmb5xdq4jsvkmry";doc="017x003x7cqq2bmhwp426l5lqm1bp95sl9mz6l4izk94y5jsyi97";source="1cr238jqdamc4pyq4jrmsdzbihqkdgzlb5k8g12d72hywk1brlid";}; -ushort-32261={run="0235a399vqry1vdyfyva9anav8axs1pxwf9v4hhhazsf85m23qqn";doc="0r0jib3fclxjaczcbzkb8ywmnz0xkrj02blg0f5i065h2s1qa10b";source="1sp8z5jnb5qlihv2hz0j2gs4rfqpy0ka3npph1dvvjvi5520c94c";}; -uspace-63123={run="11kmx5y9kdklgpfwzzh8mq3r9ycn5zv0a1pkl6yxy2vsyg6wkfjz";doc="1bxvpm8j88cawv0cxl8h65q33bnid5sqv8gqia9z13h00jcgkjcg";}; -uspatent-27744={run="043az1c7bs194w7frr768pwaliiaikfibxh6zqiznc85ax6q3d94";doc="1q04i3q9693ykpgsx1fl11w0y0kxffqyljns1qy04935s5b8vskv";}; -ut-thesis-65767={run="157rirfa3bi7pg1x6641r0j22ycb4vq1pv6b1pf0cadcfflh07dy";doc="06pkxz4kyyxm6pf34jdwm21z72l4ry7891508yc0hic89fgjlcl5";source="12xprwfmjxwcf4mpghcg0hsxsa8bd5jkg7pvp485da3k4pgslx0m";}; -utexasthesis-48648={run="0j8jjy8i5i9lgy7m9wnvj36ms597amnvb9a0ac2a2wh7vqf3dxgd";doc="0131pn2531bwmsv3ak1kf9nc4v86icxjg19d28sqfmlnfvl73v4y";}; -utf8add-61074={run="1xgp93wcvb2jiaggidznmbp173w0kfhwcw2bg7829hl60vhqnsjh";doc="1wy2h2a7a36b41i5ya268bhb6fiq9q7wqvzv3ncl1ll6wvvg0c3q";}; -utf8mex-15878={run="0inwvyrizq3mr4c78l036ib15d6v2bnrakm08hvxx6ck753kn1hj";doc="1nj94nn4s662jh2wykvrwkiiv2xzg6v8q4iax18d20p75yfcn3v6";}; -utfsym-63076={run="0w72bcx656rdkbgndmshzd6ackh1r6x6m2f6bjrc3rxkmhvf2awc";doc="17m89pxzhfrcg8b3pai9bpivypmzfm0ck0pbcp38nabbnwk7bmbl";}; -utopia-15878={run="1hsvl3la37nbb0b2q9995w1hlgvrc0gkyjkgqbsp99rk0ry392v6";doc="0yyxzyg38z6kip43gxlj3j55rdabqjrzl33yp1z043rblfw5b9mc";}; -uvaletter-66712={run="0qp48wng88fqkp1x0c3brzkr9f7p08pvbfws46dzrddxg5w4nwvm";doc="00g32zdkyv5x3hzhdph754f5mcqicgzqvcwigxf2dz9shb0phgk8";}; -uwa-colours-60443={run="0j3yywmr4rb011062gwaz4q56jcizblah0a4s3xi2gh0jycdfd1v";doc="0pa7a1ic7am0w1chl6cx778gv86pf38m12s0xdpz3hp2krkrjxwx";source="0h59r1sxqsgsl79jvm8q015mck28z89c595lkpilymahfn3aqi88";}; -uwa-letterhead-64491={run="0y59djz26f6br8gpdaxbzx0sm6p4gjyvfdi3g5w2rhvzv92w81is";doc="1kj991b6w3f6svzf130g4zb58k1n1fq18jvvradrqygvgrj8lg0w";source="1ysgg1idxm0h3rslw94ih10jmb85n445rr2cfzx9x1fhl2zclj3n";}; -uwa-pcf-64491={run="0bgg42n0sbp1hslwrrc8xclxpj87sggicxhmcijiijfdb88g5cl8";doc="0r8cmhy9laq7j40vkgp9v35xsq27xn5akkj97qysi844n4dia9kb";source="0sm6zx16yyi4p3wwfsyzgp4w7p53mqi5gbl4qcjj7iz373mmy3lj";}; -uwa-pif-64491={run="1ia1yv0mfxqrd61jy5qqf8cgpk3jxq7simpd74m7zy27sx2ywyg7";doc="1kl9scqzc4yyvi4b1rghr6lvpvq5587bfjl207675jps4gwcqhny";source="04zs8241iaslw7a43d9pk6scb9gd65dcjmv2cd29jf98ybimy1m2";}; -uwmslide-27354={run="1kpbdd8q3q0qkz6alvlnl24jjx6shc8z8p36d9grd3idyx0h18r6";doc="1m41j80x7cj8h87fkyw4mwhvqhxvxx5dql596s7xay8lcwlxq5i6";}; -uwthesis-15878={run="0x6j9savd25v7s1nxzs0yqv10i1bbd89pnb0ldjmwilrfr78yw9c";doc="1plbn6dkqwl4bdvsyskzylww9j8akxh120yrnkfamk56ij9dd0py";}; -vak-23431={run="122crp1ipxwmxp6pd0x04dxnaf3hb822znbx8v9gh93x8db4khf2";doc="1jxbijc1kn7mx1p167zd5rdczayz5xxxfdd2pwbsmav8zql32aqp";}; -vancouver-59192={run="0rlxr8q68lrv4zshsbzdwzh70kfmqxzcn0siy2x770riyfj3f3z3";doc="07jwrms24pa30bspmaljs447cphp1jaqjpdnm1j3qvi0svjr112h";}; -variablelm-60014={run="0apdyspg0q8x1j6ryzbibij9hn0gfqdlhjj6nz9q8w45bfywclvf";doc="0bcz4sbq33iwpg9r2vq5g3zpxb90xljjqbis9srk83z4rj7jyp22";}; -variations-15878={run="0cij0zdvlv3icymqxsfn6mfzdmb3jrxnfa3lz2kz0xx3x8yn0sx7";doc="0dwsw8j2bhk5cdw61xlcvlg152z6k6306zpbap2gjlfhf0z57syj";}; -varindex-32262={run="1s3ff9i7w7dga61hrkd7m2rfjq7wrkx1b7alx68kxkjcnl92rb9p";doc="1567hz8fpjbjsra7fxg8dlqkd39d0p0a6lj9kpglv31chws6w2sl";source="0gdrsb0n4sr7a4n4wxrvnxh34a6b1wzpqcp2m39rvw9my3h07vhy";}; -varisize-15878={run="0sd1znd4c2254fsj6i2snj3ys1h5vss2wzylqcp2pv31kbgpfh0r";doc="19w6h5w08iyc2kg61h5q4j4djwwm2x0bhhp6k60kfxnk4glccrmy";}; -varsfromjobname-44154={run="19j2avb7jqb9ndnfskwqfm508maqa6kd9qmqydflcb9hgjkz47xc";doc="0mcv48nbly7ihd8q8652v2gm6drvpjv42h0jrw9dpzraljzvpgff";}; -varwidth-24104={run="032izb0vpcwiydg7lli6hnawij95s5ygkwdp4bfk1c9j17d749cr";doc="1ysrbpv2mmi8fcyhdabvs2jiqj2mkajapjvsf10c8rw6i3yaplnx";}; -vaucanson-g-15878={run="10dk1ff3swbnx6l6c30s1ryn2dbyx9harmrcg7whmqdys1mahsbq";doc="1dlf50f0hpislqkcbr685y5xg7iz2y6zvlzjdkjq3af4qv7ncf5n";}; -vcell-59039={run="0m9r0wldir0g8y32aikm2il8qsygsc3zyv2zkg4wn7jqlidk6f2i";doc="1zrhf70s70zxm5ck22vbi88vpdjn6ba6iay88f41x21f11l536q5";}; -vdmlisting-56905={run="10fzab1jn6hk6ah7h9kyv9cyrv2l0gvlmask1c90njhvgqi2526s";doc="0b0vrxv5mlf721mfdvw46ixidgzh0bq88sgrvxb10y05wjcjqiwc";}; -vectorlogos-69010={run="1sibmv30czwrvp850d6zgw30daxjlz95wm3ck0rb4bshjy92rg9a";doc="08hkajc2hffhkn7zg7sqqcjc3gisqmkx3fgy43vf7vn33wa42n28";}; -velthuis-66186={run="1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf";doc="0af9p3rq7d6g0549sj74vl3scww6ia88vwzfv84fmkysa6ph9n2g";}; -venn-15878={run="0kfq2wnjsbvk0ciwrm4923fpr7whmzyv240r4zps41vzpc4mykiy";doc="0izj8qsnxj9jgslwzz37xwr9n812y3cxmfs52yd7p4638qid50im";}; -venndiagram-47952={run="1v4hbkc214fjh5wc2myqxa6jcvr6sa31c7nz9avzj2kf40kp3ip0";doc="0as35w7fd9xjqhrr3v3nzld9bnhz6xg7rqgs2hyzx150xndy6cb9";source="0ci3ajx316b6iin315z1xkdfmxbbflnj8sf2ww7gkxf853qakwlc";}; -venturisadf-19444={run="0a80pz2ng6grjj97hgk277d25ijgc7swjjsr4rjbd1ljnfjdvf51";doc="1b50h04xl2nwlpclfxl7m1wnyl1ysf9d7p8jbahglnxaxxn8ib3r";source="07isrwhzw538w4asc5baw6wbfydzdrflrp3pk1qilq3a5wcj1n00";}; -verbasef-21922={run="1bb1ddwlix4v6knmz68yy7i2jsismqdz189p1664q78h12rxcpx3";doc="1rd4mhi7w3nsvvx0zxv43nd4ldw7if1zadh0xxbzbjaljypmshi4";}; -verbatimbox-67865={run="0pgim93ifd9mnrx7fkl9fprgf33wp7m5anms8qgzny0lxsm1fafz";doc="1v32x3j5zc8yl7rgxn3j40p53x4f1y8abr9w5fj0bwhs8qawv2xh";}; -verbatimcopy-15878={run="07syldn58zwnwxwdsmq63qgr2nb0bkl9di09knska9jk0c50ql1j";doc="06awpisb1y773xsijrifh0121pq6fdzp2ai0snxny5vrpmyp412n";}; -verbdef-17177={run="1dy1h0vcknnizm2f3zggga85slga5p77aw3ll5ca3kx5qxp1xqhl";doc="06zh9v72ywrg84wlb96p0y28sn9919pn2xjgqhaii6irdf3hmlma";}; -verbments-23670={run="1iv716hb41cy7bc7bk2420lwdykpccyg6wxvbxb8vk904fsgdk2a";doc="0hzrzb6m8iakip93in80x6k15b08z9xwjrbki12d28xdadqkpqcc";}; -verifica-56625={run="0i5bh8j5yjvql6mywfs617mh3pywnqd7z1m6158r3jpwyn6ki25g";doc="0sinc5ha8k3nk307q0piqwj56r2bh4pbxxyww29ygalfqjr755bb";source="1zn10fr9kv131w4id0djycy7492ch7gis27gbr5r02ydwm7nny1c";}; -verifiche-69726={run="0c706gskzpr0a379a3liwad2d1bavpj2zpacdkdm5vw6vxnb2y4s";doc="0rahx5d5gkfq8vyshhknvfb410wc8kbmphmnm0h7b46c0f1r8x8h";source="0sgxdki79pm9933gp8zd8gbklfqa4574g1if48b3y4jh2ayb03g7";}; -verifycommand-69389={run="125r3ncvllap1vmnj1wz11ir10223fvbgsy233qmg0kdclnh4v54";doc="12j8v0r2jay5f1w20f7yi1kl4jdfqrv2ga5748xksds7jj0x7im3";source="179642vhwmgrmlvavl5naxnj1a3279clgjyc090gqw8vg8hbnccq";}; -verse-69882={run="108qi1600f5q9im9vdbhnh0yalpjcx7qy90x7xqxnjyqh7116c3m";doc="0zqw1zrpm3hzv21gmscm9b3bfyxadw9svd6hxp0gf1virb5nlyhv";source="09rj2vkc7l4l79w97iycyw31lqwr946rdcrvwzv8nargpp0ynw8m";}; -version-21920={run="19b4h22lqvgzqqm0pivjjhmpxmijrr5rfy0xc9g9y7czsrp810hb";doc="17bsgyjvnna790nz3x94wbwslxkkz3958vj2l3jbyphm5vv92fxz";}; -versions-21921={run="07bxhbpsqgdbpwph2w7gam699605m181xmj8jhpcsf4rwcpnjik7";doc="0pjz8nk7dnf2jp6yixhi55zbrlmhv477qsx6p52dwkf74vxgv5ki";}; -versonotes-69249={run="0kcfa9j99jpw521sz1q0w9qfjs76138l1rdy9ha4gb61m5r95008";doc="0z0mpqrz3n8lp3wf1kfzfmm39n7rwv2xxfvy4x76a67qdjg2glbk";source="1h0qkcpps65a8qcbzskbghsdnqvhgg62yk7ihmv487a8lid68js0";}; -vertbars-49429={run="0a5fc0a4z482fcxx27wrn20fsdvx9xclsy36623h80pxnfw49aji";doc="0y8vfa23ld199r45pqd56rv7b0iskskpaqc08lix2zss6a082iy1";}; -vgrid-32457={run="0yb2hr83xvy19j43kmjrx9kf2cadyairjr45vg5a0pbr9nwpzdsr";doc="0ymfdbqws78n3mm9cbf7zrcdbn4hb9pzzjsw77hlg023h4hkddh0";source="0rwsi6lmd4yhgpa6605631ld2bn8pzij7radk8vhwsa1sn19326g";}; -vhistory-61719={run="1m3k7qhrkxa52hky57jp1p23sa2binjfkywv51hjfkz5cyhcqi3r";doc="0f8agd4p659ncqx66yam1q30jaxx20qcmg649w3vy7fwf6crjiyp";}; -visualfaq-61719={doc="0fjx5y95n8bhsnwsw34sazbgygznvw76z01rrxmn1bp8za7751n0";}; -visualfaq-fr-67718={doc="0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga";}; -visualpstricks-39799={doc="1wfri908smlw1ngqq1mjll2b80b29piicqmv67x0xs1v3kc2sz3s";}; -visualtikz-54080={doc="1q0a1mhc330z8cnhghp2p46bxsmzz8cdba8hcvssglz0gsq5z5fc";}; -vlna-66186={doc="0nfb7mj6y9d4n89z59ppi96grfylwky97mxcv9rjflr5kpqlpga2";}; -vmargin-15878={run="0k0qp68wnfr13i2prx64n463g9xa4cf6y656m2bc735pvsa5ln78";doc="0l1lv0szznc9l5jz261nkcpq6dq28869s6h616rama40kqpdm0bh";source="1vwydnpsd5ha4g86dg2q5s012d6l3yrksc580m41q3i67npb8chb";}; -vntex-62837={run="1857xywsc16rgarwhj30jk9mfdw62483g31gsir9rgibpxdjchsh";doc="040364kv9mizvb2bw22in4z6smzplx7jg9wac7h3wl7739qcfwgl";source="0f7il38l3yp8v6yxgg5mszgiki9z0as1s1i99ky50bvvb049x8zg";}; -vocaltract-25629={run="0af79zsabml28hwhf2nq19s1sf7p6kljyvz6c2zlbx96a5k9mjs6";doc="1sjvklf54r6znggylk2wyf1fw806v8msc2g24ibv4p1ia3da2giq";}; -volumes-15878={run="0jl7n29bdwi7m74zb6alp0c4aamic3776n5bd9xcnf5ihfmh9ssv";doc="0052j7zhnbi20x6hsxv68ls2byqci2n4crssb243diid8yc763ac";source="1lvc7fhdblb5ys2blbm0fdib5y311nz4l6xll1zzpsvbwpcc8imp";}; -voss-mathcol-32954={doc="1c7kzk2m2i8f6vqywnzfvcmv11ckanhcjxf72p4rgivw8f0lbwjm";}; -vpe-26039={run="1w2pxz5dg3q42cdydj10fzf9hmwbc1xy8655s7ngzhnj0vljrj1l";doc="00n8almyx5g71gwxcn05vpfvvisqpr4k1lp123ys810p5n25s31z";}; -vruler-21598={run="1di4a3czay9gj5dbps78iik9r5p0n5vxk9dagc2ak6gdbc3rz1ls";doc="1885iaxgfbc08ldwrzv50jpmczhnjjvhq460vspdp33f3z5i7ifq";}; -vtable-51126={run="1bdf5h2nsw76y2w4gw1ap0ncg9ibydaqdhlpynj4qyy2c9qkb55q";doc="1w144as1s1kfd9a8z92kl8v2qm6il09k5myz9siq5dqxdfs3k9hk";}; -vwcol-36254={run="1wfqcin8xmxrby5mxn9s5j32zmr4ka4k0h9ps4kdddpq238db89n";doc="1zyndap37lq6jk9pafpzd3q5bib2x7yrnz6wk7wlgmgiyb6smj1b";source="17apnly4vihdn7dzh6hibgairrnvzadxlv724cgb5lqaci74gnqh";}; -wadalab-42428={run="01lf8nlga2nycr23xpzl6xas2nlgajjmia4lk4zvjdgcxqnipfrq";doc="0m8x6plkry0p3jabvhgkccb2rvlsz941di4ihfc8schkq7iyjlxq";}; -wallcalendar-45568={run="04rck2mzvzpm2f934iz4nni9s5w9g7a0qcp3kvp3bsqa6nhhcf6v";doc="1b2nn4cwsb6vi29a49cnnazpzffwbpyw48wffklv11frbmk74dnj";}; -wallpaper-15878={run="00cixdnwr4vpfpqfdcbra4gwz0i36kddak8ywv8l4q4d4yd567c9";doc="0ngsn8an7gqzkw96sdxb4q24h7bvbjw0gsqk6dzrdphclvsjy8w4";}; -wargame-69692={run="0v7mc3hfzjissd16f4l5fmv0gx5dsba9rmgmbsmn5ny0y0b5jkgl";doc="10nh98h13fip08k15wc1105cw7zi0ihb614nz12aynhligi667c2";source="0n6gg94s02c026ca13lmg36f5djdnn88xnf8yvv9k4h4v73qaxl3";}; -warning-66616={run="1rsqy10fghs5n2zb3g378csxykrlympd40g74wsz9v4aqb5a9xf1";doc="1fsqznifd2fj3czhhhii1j1z79f3vdkjhf46sdhc67y2izqmg8rj";}; -warpcol-15878={run="1dr0ic0pskvw6397q1yy1ibbpl1c1kndqaw5y72zzzy52x4l4j71";doc="1jc7rilhf61irh8kgc437mp45ryz0yr63z11r9ixbsj04dmfk2xr";source="1lnd9b42xyzfnrz94x10vxrmfy6r2l4wlxbfc1c02fmnchj2wq6c";}; -was-64691={run="18yszyvcv57im6qk8kyck21mzyzwmlzn4s64jlzz0pdzpjhn7sxa";doc="1dv6d27zlvpb1kc8qlj1jxbq08czxqrfq9l0ahqdcrl3fawdgiv2";source="0ylf9h95ig7vy64hai9skl7dxvkf0rj85syhcpf9a2p301hchs35";}; -wasy-53533={run="1gvk9gdx32sm4q2f2k4i6yj45c6zyf0hjkq7r6ysygmd2zsvf9lh";doc="1ah93bb5gr4di1jbq316cm4d5iaijj4f06vcjj4x44jajirlaq6m";}; -wasy-type1-53534={run="1zkhqyh72q1w6lr94a7164myp5qfmj119qim58cal1h48n3wypcw";doc="0rhkbkmn7xg044aw1cm44vbwiqfpcixpdpcdvz8yq6in8kmgs0lv";}; -wasysym-54080={run="1i8pvf5yfw5j0rkcpy6v8czvr85p1yk18c8h18iljgsdvfj786h7";doc="07lhw9ss609gjlhv9f0bbyv3z327v3jqblfwhcspwg2sjvazzx8l";source="1i7y0si6mbd6kxbbyvcfak46hrcf95xv8x6nc29nc6adqjbygkiw";}; -web-66186={doc="0iiyzzrgwakw7ipdnwmjwcrqayzq4yn4786zlr9zirmmj34hpamz";}; -webguide-25813={doc="0wid2sxrif3mm3lrs0s6pil949byviq4d7924yzvmf9hkrs5f03v";}; -webquiz-58808={run="1bl334im0jvsyx78g6jq9m8623xyr4xz0avzfaymhs39dv17wsyr";doc="0lwc3r3w2d7lzz39ilncbckmvx536z3wvz84jlnv3flm2dll2z7s";}; -weiqi-70179={run="0rwysz41acvsw8hjsxa5rb3nhq9cd096kgc05rf3zk6rdiy0smhr";doc="0s3g2ymfqz8acrqgb1d375bvxmb21sxw16j9a25xaap7wz27xry4";source="0fzj1cyxj505vf82kzjg7jy6ifk3m5pwsvmh5m6jvr2s7d2m079d";}; -wheelchart-70518={run="0z59dvngsyabg6ycmvj73nj23xaf2zkailm9p718mj8sp8nr72rj";doc="08zncid0bxyh5i1xigdk5kdnaplpa0jf90wlnd6srxfrshy4b7rw";}; -widetable-53409={run="1k1jnl3jbrbcc55cl34wj3znfay2wnf8k8sgdslicvnan2j717zm";doc="1giy0gvhngsmfwc87j9k2p820j6bm2mc2r1kbcl4ci0c3383mify";source="0krkcnxzjrn7lqd0qh8lgjixfpd3c5glvj1ilqhak9ifd3lq8r4s";}; -widows-and-orphans-66753={run="189ch6wprsw4xsyk79pm03kkn19h5rkqpfs0g0p6kj5jg39x78xv";doc="0vzcyzcf8fh83llravv0iz739ilr15qpjkgyjmb95r0a9zwx044i";source="0sf8picg17x58baw36s0z41p7ck26439wjra4mbc6kl6gh11jqmz";}; -williams-15878={run="0pbij6hwk82pmddl199sxin34fk22wzvgfj0dpjsg0i5qrsg0qcl";doc="0vvz6fsh4vlhwirz27gyni6xnqinhl6iymgmfhlcc808y7fawcvq";}; -willowtreebook-60638={run="1g8v5am9pzabiq5l5306q0s3a9zmyrdx5s7pjbpph08bhqfhxvvj";doc="1368jr8d6444bnalx4p0by1133liv7fl4zpvafdm0a6gz8b5n5pa";}; -windycity-67011={run="1r395672jacizgwyk2jlf1af1np4p8i54vf4g6lii5yv0yhx6pmb";doc="0f6c5pnm31bdanbcjn5p7icq9qbk7j07sam6g7daj670z385lx5f";}; -withargs-52641={run="1b49fag0ivb5srlsxcbmy8ssqsrcbgadkvcxd6xn9l9bk28wpfwr";doc="12n87c9181kskqvx7bzvqjimg7agcm8n2z7rxnh1g4kh9bjr57ms";}; -witharrows-69996={run="1mjy1hjy0piy7j3px4gnkvh0hfky837njlnsgr92f6nfp2fx8w6r";doc="1fjlnw4z9g9mkf3086nnh1jycclxb3xfhrnd1dyg03ncrwvx9wwc";source="1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz";}; -wnri-22459={run="16hcapjdb5dx48gbcvk2bkpnp1w9knswni2vs8v1l9shxz03nnxa";doc="0wpf06is1vkaw4ivhrz4hfii3qrgs71cawgn1fnm8fdzalgb2frc";}; -wnri-latex-22338={run="06m6xwvm1pxz2bjf2xa7k3x6m70p1f5866wn5imipmhw4wjs2jp2";doc="15d9mcvdhs1jd574gm6a9ppxyy7avclvq54ikcmlf4vn20lygidx";source="02x8fdavhkxfnxhvr891adpn93yhqccs31w05h8f9hyg34jlnb30";}; -wordcloud-68209={run="1s3fpbd182zqi94kg59mpssdp51rh7gw5371xrp235g8ih50054a";doc="187ap98yaffx8nf935chvvgjalx0g8xk4gnaqbblxkz26qi8z3f0";}; -wordcount-46165={run="16vxb87jyj7006akcd7fdvnqihz9rjyw2pl43mdvr5lxp22fpxdx";doc="1yv9lj7k7m446knp2ghsj0dj95splsc6071w2iarh8cq1xlbj3kz";}; -wordle-68170={run="1kz3xxwls671vv1czi7fy6k0cpzrw39afqmakq8apnxazi96lp3l";doc="1jjfsviijxk6n3qymsa7v7rn7slfq30k2arsz3xrgvri2c22z3yl";}; -wordlike-15878={run="1mdgcdiwnqcsrqrzbl27v56xpnzvxb7gg7a8vass31srk8n10ssq";doc="0i9k22hwjkq3pb6z8hiff6zz8l3yjp4vh8x89z5mcbg8iw5gjacd";source="1azirdir33aixw7zh9ps9npxy1v8ckgsdjb96ri1ma0cy2z5d1ij";}; -worksheet-48423={run="1rsh38fx4ayai0mlakqgpzxpnwp6ckzjcpiwy7aqlpia0504jgpc";doc="1hagdjrf472ip4jjkrjv6mgycwjlhbggval7kkk449i0xd9kiz39";}; -worldflags-68827={run="170wypqn7mmfj4s8gbm363l4hqmmjhsziv22z9hyfhrdh0lprip6";doc="165ny43vh389qqi7rzw7mhfyn04awr397i67kkc20jiqxl6v64r9";}; -wrapfig-61719={run="1axad52pzzsx9d32rivasl5d49dj51adk5kcnb1rr8mz59421rk3";doc="1c3xd0ja4063qzag0v07mxkk52yczlcwdbwn84gsfp5hdmd5cibr";}; -wrapfig2-69513={run="0b34ppncrnrm4pd75l7gjpc1ci0q8r2667fwyfqggskkvlwmnm0s";doc="0v08c237ydmg9ss7vrwsb9sbzbp3acqv4ldfzrk63zc1mbp8qs7j";source="0avc8afvv3mmmxfkz3kq9lxgl5frny5z7w7zi9c9wblx2qagqb6x";}; -wrapstuff-64058={run="1w5bnl5w2shar2qg2lm7768n8h4qvgzhxaacphjhqbx9zb1r20w3";doc="14npfsqr8wp1bgq9az4x23rmkkgpn37w4cr6c43wyqs7cvizz0yl";source="1x34kkbv8n8c89x21ikv2lyzlk24qbwcpcxwgv13lqqlcqxfz2ix";}; -writeongrid-68863={run="0vkm3hfgc8a3a6x5sxyszbmhprqckpxy0ibz75g6dhf8wr30jrf6";doc="1dvxx2gqvip9wf80m67hb6w76bbwcy2nzk5rm4m8dj9fvpzfv2jr";}; -wsemclassic-31532={run="0zpqx8gi2yf8cm5rmvchz0jprfwcc0gjkwcrygrvlqhqqn7qmc07";doc="0h7vz6pza8bv8y8ihfplbsq8ip9ds2z63s7j7qh84vf325ci5chm";source="1522cvwkw0ryvhgdqqd7k8lrbrayrmm3h31c77v7x8a81cry2bj9";}; -wsuipa-25469={run="1grz4s0zi7dlgbks7rx0h0rkjvchilhjabs59h81f92f835lafm4";doc="1zw7ibbqc75k4hplbvqpdmnqg5ks9bw75mrwcg14q1rb1807sp8w";}; -wtref-69214={run="05zfj6b59m0ic977w31fi4i86l7214xixws7yidvnr35fa7wm75z";doc="0g4fsbhhsvszvpnf1vn701c8kr8lpq01lcd2g8nnmknvrpd56v5z";}; -xargs-15878={run="1r4giz5gp4pcnxw12lr8hnsa45yv1lm1ddq6g33rkgs1qjzkhv02";doc="06kfclbfr2kc95c431hn54g0c6vcv7vscsskg9myrp94ilq1qglk";source="0k58hqv0jmk3v2jmx212idnfrs9rxqz93zq34f5kqx8dwhnss9pp";}; -xassoccnt-61112={run="1z25b0dps2qf1lsvmbq462ljyyakkicg92d3l1pz254n2mqzvwjb";doc="0057kfclqs5n04ghsz6ad0pvgzwp4hlpk21c66922nscyl4qrfnv";}; -xbmks-53448={run="0pv35b38frgwbi4ijn1x8w5mx48fcy709adlrkzhy641bw4isv86";doc="1nr1m8mhqwkjl9l9pw72ls8xrvg8w2gi8rar4chk3xmh6kphi7ra";source="0waizijqrvg7qigh317vr56bi2b795p5k3h779p0kbl53k3f9f6i";}; -xcharter-67742={run="07c71gkxryhr6a1yjqyqypsmr4ns986g00nqi0ij823bz6q34hk2";doc="0mkgx4daalf59qrh0afd025r0p8nq2908f4fs1am0sy6svc1m16x";}; -xcharter-math-70333={run="0gf3qz3wk6fg6p27wdkspg7saq8b8ji2dh0r66pjffkvj7vmj178";doc="1h9dsdyl225syhihzwkcj3v7lb55m4fhlbxwv5jq14wa46hsrafw";}; -xcite-53486={run="0zsfyaxs0w2xy6fa1s6hlrcnzw1q9n4n676bv6j80cwp5cw7nnhg";doc="1sfziwn05dii3gviiahvmg67kb04hzhz4cd1cwjsrrvnjii0dqb5";source="0j5blcycs86vgmi54z0b06il06zzyjp4v15lmdwfnx0amb9y8jr9";}; -xcjk2uni-54958={run="1x77gmg738r2zbyd0mc7q079hz5wbvabyszmwizfdj6vflm86w3y";doc="0xig1w251dsn2qd9iywcdc20plibadiw8hl1iwygpzfa3187djjf";source="12hbjjdypk0s5k5iaac80n2n4z1zlkg5lp59y58dwnn4y1dx6m6z";}; -xcntperchap-54080={run="0hqagjlxphvfqmslg91fpxngbm15i3kmawglszj8z585i0j570di";doc="0yf5ak4xr07jzlh8s087c7g8rfa71isziy1z13qy8ifv2882p9qa";}; -xcolor-68864={run="1s4iv57w90ckapbaplzj5p837k7a0gvx8k33cici0sqi115iqvxc";doc="194q54ls577n7cv6hwz6b5al98lh3v8za989cmrqg7gn1ahr5pqr";source="12lki4jl45c4jiwncfkcbypghqq8i61m0ams9jljfpgs66421kkn";}; -xcolor-material-42289={run="0sa38kjyy4iywgd9lwhd1aqw48laqj9h2crcarvjd8hr4xwhrbcw";doc="00jfvs4r7hsclvy49r6waanq1q9vszdi5fhlnbg5arhkf53lzii6";source="1jiyl9vry12fl3y2c6l8z5ic8jaahshbvaha8c98h1h2d8mqk6vx";}; -xcolor-solarized-61719={run="0ggm9s8vqw80jfsmw5jn143xcbrx226rwkarjkfqhnlzx85k2d36";doc="1vmr5y6c5mi7hgkb33daamag2y4j6vpiyxnh0cpya824l6miichq";source="06f2x0w9k87wd75vm6gjxg2pdrcv3g6406nraq2mnlf9sial9mnh";}; -xcomment-20031={run="0hxbf6hid76d1gm7ngjbrrcb0x7faxsqa44560f93n6arhj1nmwm";doc="11zcprsby27n8dh78658r6xmmkpqzmx28f6sqc7jhg403jq0j27f";}; -xcookybooky-36435={run="0hx5n7rz2aw460m9cqk2f2p4d3v7fhr02cjf8wk471fp8jwn5bx9";doc="0x9aa92w7b43n49d6m0rlac86f3hsgsrhvq82g3zixvffypyvm1i";source="1z951i4sad1i8bjmw7bgbkanzg04icjj0qfjrshr3m8a67wlxgjz";}; -xcpdftips-50449={run="02g4rm81gf314ds6yzrgasj1ighbyvka7p0vb8mrl78m1ybqjab0";doc="0wcbx6qx288448h2rffv87xgzfj8i30z1v2j6qcp8nlqq21lmw38";source="1h60va01gkm2m9jz521wx93libahh9fi3a8pyb67l6zgjd8dllxi";}; -xdoc-15878={run="18nqhig2kiwa1yzk06v65hzriq6la8c31j6f7caxzjrhjkzx0rvm";doc="09i5zcp7qisgf5rj6ys4rqvj8v8lxcxr16ddmzzvibgdc8kpc3za";source="0vxkqg2jl0qfnahfs82764z7npvsyc0ys3qlz6xk61ylhyqvycns";}; -xduthesis-63116={run="08cxhw5lhklv7vxl30fhwmlgq4kmv53a8qppcmsap1v8jc8vjrdk";doc="1j8pqz4l85qiziry85w7a23i6s577nb2cpbq4v5jgvp5l8x8lhzk";source="0zdlq46z2l3y5zydal9nsawv7nhhp113hdia15d9fd23j8gq4jdp";}; -xduts-66661={run="0l0p1xmnphgsfqq0q4si38zbrzxgmwzw3mqq7lyd48vwq8m8sqad";doc="0l1v9a1c6bhd3k9r272y64lyqpgn1vi6hflz8cg90ybxqxwrgb3d";source="0zaxm3rv20ijh6pmcas69hc3m2x3355gn8g1z06ihn8fnz77wl68";}; -xdvi-62387={run="10aldzxy02d9phqr9qwpxxwci7vf5q9z7sgxcz50kf44asa28fcm";doc="0n4v45wnzba23qpv5nmx87rdd09wl74jjfgpy6z66xp9jsdlja4w";}; -xebaposter-63513={run="1kdrjvdzsn9jwb6awcj2g2cr5csrhzds4w0anb8wm9q3532hcw58";doc="1k2cv0b1l4bn229rjvwcfjivkvgdifjgs5mlp5s27jpq9m5jvpph";}; -xechangebar-54080={run="03d1wmvldpfk6y52sd2pvw3ipglbl8cc851rqlz5jgk82c2frxg0";doc="0cnc62nff1vljwkk6gb6r0cwxq17b2yl4v9ilb7kxapaa6apbp14";}; -xecjk-64059={run="0m93s5m9m9xy8wjjm03wajcwi05as0y5bv305dzryh5qcfv1ncri";doc="0ghbgk2a89davasn3si5jbszafknrg4gpvkgnq9hmndsfzfaihsx";source="120zadcyidw8cbybb8gz9qbf7r1h8m5cadqxnn8xs5a84czgriry";}; -xecolor-29660={run="0ws34zr158nkpghiwlvigb44zzi5qymfqxzsnayw78i6zpqal55x";doc="0hz9kk36ap7szbsd0jp6a59lnaxgnmwl0jg8gmz8s1pjf77jf5ww";}; -xecyr-54308={run="1qqfdi6pxlkx6pxi2q61i0diwmsy9n95x4bvj9r3pgaf851p7cjx";doc="08b2xahg1agfczvqpdkvi3641g3pd2w2yc245bnyk0nccfcnf3k1";}; -xecyrmongolian-53160={run="1m20p5x1s92cwhsixaz3s0y00r8n0j6172bi8vpyzcpf8mc886br";doc="0kiyjcqlajmpj80n8wkk0ziri83811ivl380i3cyz7rxmsh1hqhg";source="0dj2191iqcm9qpi45h45r3cp4nz5gdviw6xf9iz261b3pn515prp";}; -xeindex-35756={run="06ipq7m9mnal497j3awdspqim3fs7v695pf2x7v4l92vqz3hh1sa";doc="1pa1fa8vjgbzmgphx3fmm93dd5wr3adxrrld5xibk2qrp7fgkbsr";}; -xellipsis-47546={run="1slakkdjh4c88caxcdznir5gkw0v7aahfpqksp4l9as9bsl52980";doc="1jlndanic0xc16ba1hg1lswcxa2b20hibd25bs65wyag04rbh8lb";source="0768vqhmxgra190g0k3k4hhzgkhkxwwnvwmdpymphsqm9lvxbl95";}; -xepersian-68117={run="1i461pl3hdqd2p02d1xnmzpxfc8bxcip3c61bfjf30cnsa184zvc";doc="0b04na4c83ly2r8jv5d1mpjvhnc7i46kzhbgkh5kxzvjrpmqwnws";source="1409w2mfp50mihwn7vg3krhg7mrijxjc09sgqhxa1fgv1c3yqisq";}; -xepersian-hm-56272={run="0qj98xrbnh9bam0a6c6vy7ffaia3iqsx5s71bjlmbnyl6y2h8lwp";doc="16f5x8jv8mqf5a32gvrzqwh1xz4s5nxwqsq4q8sg1za6micqniyg";source="0zcq75xzkr0bgpf1xdsphrkcv70q17vs8jkhzxvjrfzilh9h3iqr";}; -xesearch-51908={run="1rszh3svj87vw5lskxv8bvnkzzj6k9rbikl6rr87ry9apmymsklg";doc="0cb73d981aa0s0hg2ynrg3zybsaw28f5b29zmqgvzqidi8vxfbhl";}; -xespotcolor-58212={run="0w7nns136gfz1dvq6iplk0jbza85lpzlpvsxf1bzjhqw5sk6v4p9";doc="1fai2v8x4g9cmda5m6nvf6g8w6qg64qfdq1rvjlz1qiqmy71c8jy";source="14yachqawnmpldkwc3f3q4krj2sr1kad7wzy1lfxwqggvpbdcjkh";}; -xetex-66203={run="09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly";doc="10x15yqxsfb6xsl8z75i1hnh6dcff6ivl036945cfqsycyi9sq72";tlpkg="1ai1pw2hqv01z24x9s7vjva5v487rrr6al7rqpa001k7in2ijff4";}; -xetex-devanagari-34296={run="0i6hkzl2jbiixzrw2gvngnyzqkz0lfdilj1zz5xi6ypffi4vyihx";doc="0ahcawr9872lipz33jrv870lj2601j593fwfqcn5x0jhas93ch6c";}; -xetex-itrans-55475={run="17476frf0r4w50bfbk6g6ic40kv3x3i6qpl642glb3vyzyjd5dbg";doc="0bs67djfa9pi1k2900y2ybnv6lgjd031cyczks0jjzfnav2g4df6";}; -xetex-pstricks-17055={run="0i37r4lk1l36cch6kjz12mfzgpg6hd7n903fzbj9h7mwmjwnrylk";doc="17kiv64h94hf83ailbw29wf15r7gv9yq06h3l53c38rn0n20vdz9";}; -xetex-tibetan-28847={run="0r8xgnagsqrkxr0ij0mcv30vhf7c3amyf9lk895lgwsvz6cysmma";doc="0p5l36zb8l3h4x8sjk8cwxj5psvfa4j0kg6jb93sj1ln3yfrwfr2";}; -xetexconfig-45845={run="1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm";}; -xetexfontinfo-15878={run="1sc0lm5w94320f5abv2hw2bzqprhk73fjv2lkv380fgkpdfi7pdv";doc="14mc9snykdwzcmq013bs8vzn5w80lblpg05jk57g7fl2z9x6xl38";}; -xetexko-70316={run="0h689k5qdggf82pm3ccwpypgh25q7nk74m40h4cl3iywlqnixvy7";doc="1x5wc5sgf56j3cm825avjr2bwp54ncingq7qxc95x4w0qpxwwwvw";}; -xetexref-68072={doc="1gq31fz879pjzn1r0ksy9prhvh70wil785p5nsj2n5pa67hd1h5g";}; -xevlna-43864={run="16ayk70kxk2s23r6nxva1hkb1z7aw7zz1zhmcis1bsijx657kw25";doc="09aaf3mpbh07mix5xvr20zybbbrbgbwcmkd5q0rfsd0ac8cm72fh";}; -xfakebold-68929={run="1xmw5mm5r2r0bvqga95lvcyf5y0jf7hc40sgzdnc2dx9n8sizwgf";doc="06a3znvv53c3ymfh53f37anlgj8878n5mzcw0mdjszlg8q4bl914";}; -xfor-15878={run="0m4y0caa22fps0r6735kb9pr2f89z5a8wflzrvpbms4nh3a61zgc";doc="0c0qg60h631d3m9rqr0nwj9772zjv3ch0d2p1ksnqnjf30idydl1";source="16xp7hziirlnd507g9bjvszm90wk9iv6ankq8bx27qkyk1shhjfq";}; -xfrac-69888={run="0pijfl77dmcxcjr52h3zg31qz4b7w43js0ydqp8glfakp27z7ibs";doc="1n2d59iii4in5nzayizcsj00f65jqla1v88sx4zxh0fba1fhwrpy";source="15gwlijdlsk85harpy40vd31zz613cd20rcx54xrkq5c15rm3pdd";}; -xgreek-69652={run="0gbhvh3rk466d81g9zw984bfx6mflzgd1wai8i0j2rgkghzm611g";doc="1507kgwd7509m5lyd9mzaj94rk6fcbi6cnngcndwynbrdmkd9l3p";source="1cpkh63qfk4m8766x8p6rq0bkc9nz7d7rldwynf8wzd6lkzyn9hl";}; -xhfill-22575={run="00lb01b27h1bg8h37rcm7wmqh5pc3gz7rkw0l6xrfai0mb8ypq2k";doc="0alaqaiz2dfk4sh4xgrxfrwxgisv2p0bfdz7ppiqmli10al1h2gd";}; -xifthen-38929={run="0ys8yq13vhval5jg9a4n4pv7b3v11w1yh63ssvyx3pnr767ay5r8";doc="1miqc1bfwi2ssl6yp9aqw7ygnars27vks0grpyfns494yimy8nc0";}; -xii-45804={doc="19jhzv5hqzj59wrfcr1dsj6z56qfckax694idgf8arri5lnbkdd8";}; -xii-lat-45805={doc="1nn54xv71kcmn9jbkcslz6a64cvjcay9x96rrxnakdj9qcqd27r5";}; -xindex-67771={run="1scp2bj9jlp71wji8fa90m9jmjm2075cjand9schs8551and42r4";doc="0yddkhqk43d7hnaxfh3afqqcfqadgcx26f77gj2bs4xl9qa0c755";}; -xindy-65958={run="1jm8gi2pq4rw60p8bh7hp5xw1kyhy9r02zy5s2p2xyqh5c6di7jn";doc="119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n";}; -xindy-persian-59013={doc="04w3h65215slnakk5w19m94xmj9cjx01izbk9xijifv5l6dqh447";}; -xint-63562={run="1nhf2g00742yzjzl6hnc52cbp1y97l60grgjhjc7j80w91g7vv35";doc="1340cagm5hxif3qmfwvhy6izkhg1awazg971a9ww8xlnxk70gmp9";source="183llw3pmalq4ylndhnvbfc74h57xl9q6pcbr9bnrazlxkjmfpq8";}; -xintsession-60926={run="0p28r81qa93r9hwsaib9jbg252q76xz1hxlaf6q0r2bs3i8a4hbr";doc="1fzyqf14fdk6mjvgfxg43mx2gncj1c7m0h4fid88z7ffsa6rq1g5";}; -xistercian-61366={run="1bkwcw3n5kkygz0d5ihikxp5hx2mcj3hvbqpggfv8wz8y820fkjv";doc="18q40xjmzd51hnh4ga6g7yx3ra8lmcysavf5r2wv8chqfa6jcxji";source="1vzkm5p56h4rbsj36nnc2c45p6fchqdmym1hh8fblxdy311vjrhh";}; -xits-55730={run="0hnjyncrb0r9ssp6aj9lih23b0z031fjhc7fjjsjc89igbxb8v58";doc="0iv1bs2i1fn0pr3gkz07xaqsdfw9idcyfdd6bzqjryynas25aia2";}; -xkcdcolors-67895={run="0nhg0b4zv1xszx2sl61nyhfc5z5caw5bhi16ia119j3kb2lwr26h";doc="0sqv3kwbhh8ay0igpfal2gx22sbgay3wkwd2kzbs6rgsp6xyvj0k";}; -xkeymask-69223={run="14ll2mzc3sa1271yvq417a03g4ky4fvmb8zhmb9bqvw15vz7v53l";doc="0a9n4l2ffd358cvyc2xqvvmrd3zjq6nz7d99b490ap2734y21q1k";}; -xkeyval-63616={run="03m4skbhpv0l8cg3v50650k3h75x8rzk873hnqry0frb3qphjycs";doc="00xayhdwcwb6nq093v65pp1vzx2icn1xpkrbl7vllls4viq861s9";source="00ljf3z3017jdyifxhvls0j4l4jvdg8wi7sh56ij9qlx5jmjjzdm";}; -xlop-56910={run="1clpl22vxgqjpzs0ypgak0d6z0sr6hw3gj18r7sgs2q0jf5m6715";doc="1acnr4yfcakpnr8pb8g26qh7z9xr4dms4nfy50ig7r7azmdpz9py";}; -xltabular-56855={run="12skn3ld5cjd8jvh32l1h86mcqmx03v2w04189rkxh2q90kyjmfw";doc="1lps5w6p2j0c1bszyrbwdfn9r7mii9k9k6ap9s2ssb2rrfzf291f";}; -xltxtra-56594={run="0zpvlsdsrn6pnlfd3aa23hcrjfnnrjivi7r61g25j9sqcx7cmkym";doc="12wp6zwqa5mi5i5ridd2amnr48xrkqmi92xdhh95ydijpzyslhli";source="0vwlj6f7z7fh1vx257v0gnxj29rp3xqjpxlnn156xp9i8i29v0hn";}; -xml2pmx-57972={doc="1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah";}; -xmltex-69742={run="06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql";doc="0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2";}; -xmpincl-60593={run="17p97mqcmy10hql3fvdkkjbmlnylhz852ckai0s45birpk6bvi8p";doc="1k532g5b8fm6ly9whah5133g6yngadb9w6cvf2apwm9hwx1pmnxj";source="14xwxsxfa8m8p2idzbkcjznh46np2fikn511bqw54k4k6991vmx1";}; -xmuthesis-56614={run="05z3pbc9gqfnzp4y4a5p6bmprsr1r63w9l442hgk3pshswc2dflp";doc="0dqmbdz0ydlq1hkz0s3lr12sia1qj7p912carwq4pjg9rrw98z7s";source="1c3a90gpb2siww65yc2l3kf91bf5xvxk9iq1s9cnx1ngxjbs7835";}; -xnewcommand-15878={run="1hqpc8p8bl56gzcmar6m670l6yq5arlh382s3m649lya35yydmms";doc="1r4wlg8368ax3p492qyh0nzxkfgkgvm5bzrbm0jhh9ayk9sp7ryf";}; -xoptarg-15878={run="1ykc3mdg45hhyk5x8lv06zggfv88kyrr1zqnv8s9j8cb5c4r71jj";doc="1g42s8mgr7yqdziwza1g241vjgygzddk6ly8md6c22kj8g0sq9jg";}; -xpatch-54563={run="1almf1wif49mi3yqr4qsdffd6m3q8xcma8x9v737ffczsffhs923";doc="1lxsqxzajkcfw4b9i89bk0gmhrsprkmgqqbj5v34bgvkvh0n5pm0";source="1cf161h6g6m3q8bq38imvmja7ral7lpyb26byb8nn26lgixkprad";}; -xpdfopen-65952={doc="130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1";}; -xpeek-61719={run="185jan9h82hrc8bai9h0k09dj2q8p2klqvz042h7xrh2napk060m";doc="0sag912jjxpiwbsgmp0l4p0kw4jfhp1j3sy0lb4kdxcqrzf3m1aj";source="144glnmckvjm24smk4d2xmnkfz8n3r4k7zjmsd0iwa004n28il5h";}; -xpiano-61719={run="11vk7k3n3np2wxx7gv9rvlgfmipmh1x0bjq5b2yvgsfxii65kwz3";doc="0hq4v45nacdxygxpjby6s8smlfkkp63yg83zfmwcl3dgxzayb2s3";source="00xnkxm6ijk1i0h3q0yadklc7f2np19bx3yzq4dzrfavdkxjz8f0";}; -xpicture-28770={run="1z3hbmqlamcm9wgwan834hggks2b73s73h3r2pppp00a1sz3g343";doc="0ymdwdspdhrhgyxw7h7f8nal6h0kjw6i8zicmll5vj8vbmi44dv6";source="1yjvqrpp7a0d3nldqidqrk2xk1lp5vbla865l3lxw1xd5b08y40r";}; -xpinyin-66115={run="1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh";doc="0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3";source="0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5";}; -xprintlen-35928={run="0ywzhbp0b40cq395x5bv348f5dbbv29cqvlh6gkznr6qkjm6ai3b";doc="0dslr7n1mfbclyxic7pl1i425hbcb925jfbag0sfaal03pbczq7z";}; -xpunctuate-67918={run="06lcrbk2q0vy6myjc1qs94p6746acawj7z38ldp3vvc4xynrarnw";doc="02vzwbrqj1dzd46xj49mldkw6rqppvq917bj8216argr5dc4dfk4";source="0lrgdnfv9zlnlyyyybr76a458sp8bayrbl0vw6jzzs0psy1lskq0";}; -xq-35211={run="165zyviwxybpgfx9ycngv9nml482faz766q1skgmligx05qzkhyl";doc="01yhk07lrcbl7ppkqvks5j7wjpwyy0zc69q46wh42gbp65vp24a4";}; -xsavebox-64049={run="1zsv2yf8hp3yfdz2hwlqdzhk40xbcm8bhxwq0dzzkdqi73pfay6d";doc="0ad4gm6mxayrsvbc38nmn20jiv72g177r8vdnv04f8z8i02h7im5";source="1x3rm695vs3nh01nal4qyk164kfjx7pjx3sfmv90cj2jkyi4clwf";}; -xsim-61988={run="1ajmvlrmx97f94k7aci6bni5bhhlrf07c7vb8vnjgyq2iik12ys7";doc="0ppqjy9sgkrwcycfj5z1igi6w56rvcb5a12p22spa56fpsh94910";}; -xskak-51432={run="1hirv11b76xl7jx4swpa7imhjncfn81i9qc118qfrn26n890dgr4";doc="0hzyv8gy91avmpf2fgjwpqfkkbi8255gy86xzn5cz3y948l3m5vl";source="1gw6xqbpcsgdi5s7d239j0ds18w674z4zfibsvbgqjb70lixnyv6";}; -xstring-68015={run="131y1vly79iga9yi9lva4bizxs00p4gyx44f7gcgqnd35biqpy00";doc="0sn9djwkb06n917f1zly6gy81j1gixvp0w28a0f4i3whk3va0yac";}; -xtab-23347={run="1cpcs7k8liapv68cghfwj5fw80rz71qrld7l9lsnli50h7ph42sz";doc="1z3wp3hqy98a4l34kgm604zajdyv0b2vq0jipywmdc12115cw63f";source="1im5cv88g6n88rxzx8lqcxfmhkihywrv2h9gclmv0jx2mmwvwafv";}; -xtuthesis-47049={run="1d68hx38gwwscshdm07rcg75zjbsvk5kyliy5rx6z5jp75k0fra4";doc="1fdr5k60zxjb75vv4m6mj1kalka1kg7cw3k5j9a53n01m2w7q6r5";}; -xunicode-30466={run="1h8ixz9zy9izv5j7555094jiwfp5js5y8mp4bh993gn9xn1rb6b2";doc="0jrxnpas07np9a30cybk6jqv4ng96vjqpyyadbl55szkiylzwwfi";}; -xurl-61553={run="1qbys9b3zd3rlabdmbpndf65fzmvkz24d6v3k7cml2bmdzzqv2cc";doc="1q6npbv8iy1bgl2fjs3ngjw6wb78y51nmjbc2pndas7klbvdixc1";}; -xwatermark-61719={run="013zwh6gz8npgyvdj8daa6y9pb8554lqvbskchsc366k0m6xrwd8";doc="01x4rkl6h9afsbfis3ixbqi9inb1sgvavd0wld9jbwcrmv4qxc76";}; -xyling-15878={run="0gixafnkq15xgkqm2y8qxljfpy1n5nq4ll0lq19sb9635czak427";doc="0s38yqc0xfhf6ap8jc60s24vvmsqhn6f4dsslsdk8i4nq1dmsw92";}; -xymtex-32182={run="01432q9vnzbxzli9bdkdsd7ccvw3ksc76cs3568lsr35bkq1yy1n";doc="0bx00qsgnndw8kq59nbihlzlnwvdf6gncdl3ljckcdn07i4mhl7i";source="0gxi985kgkfyybg90f14y2w068ysy5vk4irc8lfvdgil3y8jwi4l";}; -xypic-61719={run="1srvrq5biqczvyi7k0ilbray7ilzi6gsmvk3b2hmf5qmv8hk0cs1";doc="1js0fkhn60fnxgbgviri58c4q63a0ycq37r4hynxhyix17h51kff";}; -xypic-tut-pt-15878={doc="0d9ivdz5jnhnh3pg8qb2jn7qfxad06hxff65scyhdd6wbsfaizi9";}; -xytree-15878={run="14f3vxkfmv2s944qpdhxpvbrpxq2p259bnk5sxlcv8lbsk2fvvcx";doc="1aq5lbx0x5v2f4fmhp0bcvasy5569mrbf75xk6m6vjpnls49zjfv";}; -yafoot-48568={run="05b2niwqs6c43gl4ag811ljdd0nasmbdinz6dx2d488nl4jiifaj";doc="0mbg6y7qsdsq5nwgdh32kd9x3ghvf8qlbrm84rg6269ff0b5achv";source="1p3zwyg1pf3ad35w25ahlk1r4c18k6vvllcv8ccm952mjg79mj83";}; -yagusylo-29803={run="12p2kxrqa4479wrwcbbxsn5hknr1ai9rf1x76psfs43k9fh1pnn7";doc="0g0vx5zjrfxrf595c0kz378n2h9hrlaf9sx1ypw3iv90zns1sp35";source="1js0slg00sr0bc0gysxvlp3jwlfa57lldi6q7a8fvqjfg9bkclvm";}; -yaletter-42830={run="13xizdiq8dj7iyjw7a9srhr24c1z6g50r44a7hjz0909z3b58j65";doc="1jgv50mssx6g94fh5fcysi884w1iah2qdwb0vrkg6952266gdkvw";source="0byfxy8h76m0jwgd4q0s1ar08sr9ys9jhvsz2l44id321w5276dj";}; -yamlvars-69071={run="05fjkphk70cqkgkd0gg3abnxdnnr4yyr6sd2pbkyh8jkc1pwadfx";doc="04cjg932c22v40fmka7baj17bs99awilgvmakdbcz4mqiaw9zmzb";}; -yannisgr-22613={run="0h61qn97l6k97zbgk0ghqgr4bf8fhbrb037gdskg2sgxb7zsl5wl";doc="1vw8p9xk3aj3lfsq8a2qv7qd00aqx22fs3427j31wnl1iymwycag";}; -yathesis-70512={run="010vlialskv4wsjx76d0z9d36g3qj185zs6raw0j8mgh3npqbr6n";doc="0hgs94kzl83h0c5971ga2iw30gkr6jhnv4p92lmcz7lp8wvjd12b";source="1zl69x9gy36ac5b73vrrdp084v7m3j8dqs8018grxq3jha6m03nz";}; -yax-54080={run="058i478l85ilq0asix6mkdn1kfzh2abqn9ngar6s339db4h81lxy";doc="06i376649jszpwgvb0bq8wxchjmhwjfvc78pl5q6q1ic2jpkq5pj";}; -yazd-thesis-61719={run="1bhjqd6k4lqk4sypssmrsjl9lqrbha9d0n42qbaq1mg5whpl2b8x";doc="0krsm9s3ym6f3d323scvxn8cf1wjqppglhmzbxwn0cpjq5nl01pg";}; -yb-book-67188={run="01ha50044ph7f19jrpkdlfa4idk71k21l28hwm67l4y1q6fyzrll";doc="0ckn24i29cqnlmvml5w77ws9rx9k380c470kv2b2d88709yzzqgf";source="1j29rgbdnlmi4a2px1y3xmq2lsdrwlmi9l3dqsac1lx45hpqmhby";}; -ycbook-46201={run="1ajhl8vkd94yajib69s3jw6v2jbbn7h6g92m0yc86gfri3qcff2r";doc="0zf71gmxj1hwywlw5h8klgyrn9mww12hc4bic0l0gmwixvn6k56k";}; -ydoc-64887={run="19njcgsdhz094w6c7hxp20kcj8b9kvcx4y6zg0rzsxs3h4fr2f21";doc="1dpjwv7m10413dxvhqgxsw2rp9n2gw8s0jghshgmbfm6x46a4db6";source="0y7cc2sl9yia5ldp2la1wy4d53jgxgcpi0v5wkc4m554jl9am4z9";}; -yet-another-guide-latex2e-68564={doc="1a4z4ni7327jd1r4n0w2lh7bb8ag7dfdgr6xwl4q5hf2jbdv8mmy";}; -yfonts-50755={run="1k7b78fr6x8kp6354viqfni3k77d96qmx9r76249m5j140hi6fk1";doc="0a7fy4z790fr6q4z5qnzv578x48kqs128wl5znd5bn3mbg0n0cq0";source="1ph8vc09vg0zxc9x1xydrm9wn6q5vml2bc3wln15v69p8nm52d7z";}; -yfonts-otf-65030={run="0rhym2lw9jk2aj73ndyvr32ryz58krmmfbm28cpgaia06crjl4jp";doc="02ghwiqnws03wfhg3sim6xm1ifdpmi4x5yz5azssxnxfwbndp62n";}; -yfonts-t1-36013={run="08fbdd97n2h649kvks6q03zrsjvb1f7qwys3955g6iznf4y8pyv6";doc="0h0gi1j5fcn1nkvf0abf2aimj2q3h6bw4rx7kzg5xra735fqpl4n";}; -yhmath-54377={run="02p5rzh9n92pjznrqia9b6jnlwmn14189m7fiabvinjakaxmwxwn";doc="024p61b5i55m6n8fmk4j9r3q7dprp3lcyzkhag0wch6vgjkrajzq";source="0y74zwc1pkw3dp56jnzzy4zx1ilw5qx9msm1bf55mvdfc045a17s";}; -yinit-otf-40207={run="1yjz72nixv6di0ifsimbnc34wlw6s8nqkwflkag2p75q0jw52qrg";doc="15yjqa1s4zrpz8cj199ak9dgriys76q8iccspw3909g2ci4xyyfv";}; -york-thesis-23348={run="04c8g1wkl795caadm8kqfy6kdqqgwlk46lijpmyiiykbb8z54wq7";doc="0zp6pfr3giqm4nbsidg06q0c3x9gr4bk3g8qq7wxl9a2pgk3z45p";source="0105amrybkm78pwb9hrd7n8r69sj6lkh1zm7c9sskibb13lqrk9p";}; -youngtab-56500={run="18h6a4b4psbm0hjxq2xnk4bkmsa1wd2fvarrzfkhcj01hgn8bz17";doc="00jkdw02iary6s5szh7hf4qjlr7r8y9lfmvlnrpqkhh6pdhsy3jh";source="1hjqkj12jx9imfqm7y1mqdvp1knhf69kbixr88varbh09d6r9p66";}; -yplan-34398={run="1f2kxbb32hxwgin5bn7b78r8sqdj4v1q80sh1c87425zw8jyd73z";doc="1ls02mng1jwihz8s505brmaqcjn4abqys6bwl22dy855bw5rgr5k";}; -yquant-68997={run="0xlwjgc0lwls7zpgbd0v85cij3a66vsv2vwlr6a73s0bjyjy9akh";doc="043yq765f23rdhn3pmdwzy0q3x91hwaawfwakq93acwbx4mqjz8h";}; -ysabeau-69663={run="0gvy4jpi6p62fqa6hdqci7lwghv6a0lm0min20g9jp9h28kmlcwk";doc="04zmbl5vwgjq7w2189yxnad6cfnb5b6z2pkddd3bx8blg8g954vh";}; -ytableau-59580={run="0gfpxbvar3m21pj74j19qnj8qakbknhvssyvfyw61jwdd8ygdxkd";doc="00k10759qihk3330bwfpzmrm9bfb8513w3sak9jlfy5inay59rbd";source="05pxlbj3rdgr15cqfdxviyp2698b7l44rzgssx18yv2a8qnaxylh";}; -zapfchan-61719={run="1753lvv2bq29g43s4chc884n742695agvgal0b99gsrvlkyfp8gn";}; -zapfding-61719={run="17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn";}; -zbmath-review-template-59693={run="1zyll0lpd3d2cjizq6f2zxnb1pmdl2qkhd1fcm9f9l6i5fqmjk15";doc="0ymvngll5znvw0i4y65imidy21fzfzsdcz22i2i8369k1n15x6yh";}; -zebra-goodies-66630={run="03m5npbrbcmxw9csl2hg1jgzjg96rr2r3yix3sajkxzmf2bcm3my";doc="107wr1pjqc9yswd52gflan10007p7i072gysnwdpcxk880f1n29l";source="15sw808cqfjvwmdnnkds9n1m29c7dzdm3id4hkm2cl92jxiygb0f";}; -zed-csp-17258={run="0wr6dxb5ks34x8rzr7s2cnanxc5jawqcq0zhkmxrh8cjqcfkk1w9";doc="05gm4s4svqa4wds0ichfm6lk39i0y54y33b96bnycrabggqfw77g";}; -zennote-65549={run="0sawds55l9cc15b3lvr5zswg5ybsj8v22kx8h5gn65g4j0zj79aq";doc="0qwl9f1c777iim45xcl00b3zidzs4192hyv6vv14a8c57h28j7zr";}; -zhlineskip-51142={run="1j3wkvd57kdwhhny0dzw0hqqnv2ghx1mdjgyzrhfj8gf3fifdaym";doc="0hy14njxpzffcnyciyc4zbil6372b640bshfw9jq4wyskwk3i45h";}; -zhlipsum-54994={run="0rvwbnqzgbdihdavscn8mcc7hy6yjdzj2fc2h3xs3i77lfa5140d";doc="177l81c3zbgdvjgr861jn917ps174zg8bab824f7dx2gj5mhdzgf";source="098fqbcr9fdv6f6hjaczm3q28dpx0g8xqjykg5hyx7nfp7nh6yjk";}; -zhmetrics-22207={run="094afdf0mwb6f5jvg7z7cs5xinia71cnlaixcihliai37kdn1qss";doc="0achyp4i8dfhrkr9jddp7qzdifcqsf28qaqdnyb76525mvgkip5y";source="0hic8n6kq4sx2dc8vb34fhyjrbbxp50lllyj5sh2ld9s5fwgm3yk";}; -zhmetrics-uptex-40728={run="06g61qm3ryy6mvvaq4whk7084hjp544dig57mwcxlgp6cfs0fq8l";doc="0ybijj2hjm4byli3yh8q9lgb40bdpq16d9273nrmiyy8szxa20qc";}; -zhnumber-66115={run="1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz";doc="07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq";source="01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw";}; -zhspacing-41145={run="0h588z408lggk7370l9kcssz2hn9lz19bnakadygrklsyhqh9pzh";doc="0s5qyrsi5nw0vppgx90lzz3ra121jgm9hgzg3z791imlxgjn8pzr";}; -ziffer-32279={run="0nalr6i8yqd1iq713gigafnh1k0h8kgiml1zwpk8rjyya606capw";doc="1cr63lkqi9kpkbpnrwmbppipsmw6wy732wsaha0y9y5ia2934nck";}; -zitie-60676={run="131kiycj7q9javr3xs7maa2qjczmva7vj98bw36pv7znwchspcca";doc="00daf6p699y5204lrdg7hfcnmqh3ah764fpjymblvm8hy5f1w5g2";}; -zlmtt-64076={run="1krv8frabpvnx00xwdx058f9y2mip3bblpix05yxpfspx6aarhcw";doc="1xiirzbgh1x34zih8xbf7whl5f994lx9bc4qrirc58rlccnqgbgr";}; -zootaxa-bst-50619={run="0lwin7dfd3nk0r3drznmhkqd7fhfvizxqy3z2xv616spg1jh9sgj";doc="1s4v9azi1pvvh1fizp2azkbwh35xvqh8qcnnn1xwi0g1xhcp38pa";}; -zref-68278={run="1292p3hmhlngwnhl9lnppbvn4fqblphxmpmbh1vij23v64acv3lk";doc="1xnyvhrhcnganvdzilljdn6x5yh7srijhdd63fc0p5d7zn5hccc1";source="1dbzxl0rc3xwcn2bwaghywsry8q2q34npax5zrv9xak24gplv72y";}; -zref-check-68846={run="13syzhmzvd537gdvwkzvlnbrf9as2yl0id3z7fmj35vjwf9z12al";doc="17f344gzq68c9v2glz24pwxal72aa7mmyi5lvgqx9dkkpzlmghfc";source="1lnnx5fb23pkkzwdl82j765canbm9bbnmmpwwxh9yg9dcz4gwhkp";}; -zref-clever-68846={run="0dgpx323gw46qi45wqvlyhsyw5d60i18bg7vk9ndkb6isvs9pdx4";doc="19dfpz5185m5gi4828vc1hg6njc4jkb2n6hah1hvyg10izbxamgr";source="0bk2irrrbmyh7w6p9z5b2bmfcmnb8sb97zszsq54hg2rc7r1h1vx";}; -zref-vario-68846={run="0p7b9pqldlliwshm2xfm6c69is878nj52dgchx26dqhi8lx8l8dy";doc="0ck4h0wdm7rkhcb7bp0cksy2krpziyjykp15p0l02180c79mnp3z";source="12qsz4fn6d3gpxhi5ppfvzqcj04r9f88a5hj9691kqjwh0507zn4";}; -zwgetfdate-15878={run="1fgz3z1f9ifcbrwiq166hnff23gmlgp5vn0djm2znci26bcip4s9";doc="0gda7xd1sbiaaspb253xgl47jm6bcn8hj101m6ih69mxrka6sz60";}; -zwpagelayout-63074={run="0xl2qyq9037fjxwc6v9hz9gbb5fggqb2x93bibvhdb0bik6iw5md";doc="010120lcnx9d9jj116y6vskch3025jfi4v7xh6nyqlvirsjr4hk1";}; -zx-calculus-70612={run="18yzx4q26yavj68j3v3iws35byqmsbc42w4awb0dbsg7cgdg5mk5";doc="1vc1sydsvn5vfra7d26c51kv81kkaqdgrk4fbq32gl5vj6ap2w0n";}; -zxjafbfont-28539={run="1zcyvwsqn2w9x9w79lvi736r2zwrsk2xdk6nrrmkiaq3cakd81p9";doc="0dfh592niw8s6zxmxj1sf8h02s2vz8s2ywd291946bb72xidb4gq";}; -zxjafont-62864={run="0p1zmf0bwd5fpyyz8cwdwc8pnxcqk31570p4722lzwqiplm0azfc";doc="16w7iqlb5zwz8qqyyscmyd0zdzb55n38gf10qd5cra6c161fi7b3";}; -zxjatype-53500={run="1ap4f0yq4cmkz5djy7mpgp32l24jr7xbxd9zc0nv1fvnywxpxfcq";doc="005rr69f433bllggj997rhbwlbmsglaywi55az5j02x0036aj2dd";}; -zztex-55862={run="0qh6a0jgrf1b2363dw66m8v8r0yq2sab2qm3wk008pvvlajdj45w";doc="1agivqj1mqnhv3w70a292pypm2w5xcbf67wwfz3ywaaaq5amjbwq";}; + "12many-15878" = { + run = "1lh034gihn9gmpzf5sz9anrxqlb7qifaasa98dira5vccizs4axd"; + doc = "10f5f3xf2bmrf794ipj5xjsv73j7gqmhgg2fjrdmmsvqij7ljjk4"; + source = "01nldk50shy8ynkcjz0176rzkrjhxssi7x37bd7x1gbw6pd32m3a"; + }; + "2up-55076" = { + run = "1phamhfskhhyg5s3ab00mv3wsz3wg18j1dskq3x1mpkc5ys9a022"; + doc = "0ijr2gsi7ywp72ydpyj0cyxwv06vc612cpm1inkx8rhnn6hjxbw6"; + }; + a0poster-54071 = { + run = "026ia95qflhgfbd9c32yagm1f08lnr9iyh1l2sd2b0hf5z27z4g8"; + doc = "029mw747qln0xcnwalw2mw8iz5zzarv9qghcwsx9jzhqijmcspg5"; + }; + a2ping-52964 = { + run = "1h9i49m7v83ppifkcr4cncjfkrpx0hs8b11qyjn9s9y4mi8ra0w0"; + doc = "0yxs2va1v4s6picfqkq2k9l7295np46lc35yx1dcmddy2667k3kl"; + }; + a4wide-20943 = { + run = "0jw1d021vrr4f2sv94mw1jk7ma72m84idmq62imwqy23x8nfccy1"; + doc = "03g0vwfdcczgkpbrri3wfhfbrq6r6iljpz5j9rllr2z5svlrjf4d"; + }; + a5comb-17020 = { + run = "00801lhrnv2qkg6ly949csp4ign89cpsbd70fcyb7r7zkd8lxczi"; + doc = "0bz9x4297mpvv082d0qjfvynflrcgj6rn9jikwikpvq8wlhz0fph"; + }; + aaai-named-52470 = { + run = "1xs2iki0v1mh0kbqjxnv9r24bcfmgj6myfw7h368h8g0s1n8d5v6"; + }; + aalok-61719 = { + run = "0mvfl7llr57ykdv81y4c4h0fflig2msvxka08axsjwp91yn8dpmp"; + doc = "1sz26qrydb5dl3z0g3p824f6yzs473p2a50q1kpk4zqgh4ghwigk"; + source = "1crpql5mypbyycxzkckfy4nwn7shq1dkzlbn44lhnj7jyi4qkg3p"; + }; + aastex-58057 = { + run = "0w077r2lsir646ix8n40wy5vy0lnw8vdlw1nmc6fvw2hmrf3w4vi"; + doc = "1rdpiv6rlcbd06flc3rk7a1y3xi899h53r6binbjd0krvrss48s3"; + }; + abbr-15878 = { + run = "1irhcs2zkam6sdl92wk07v5ckg56r6n10hgcjn5im2jpsinsad5k"; + doc = "1z45fraywqqnc0v28jxk3bzv9cndwgs7nmlgbf3b8frr4x18mza6"; + }; + abc-41157 = { + run = "0fxnxavk76gayahflpa8f61j63x9y6aym7gqnmn6xfgggyab4qmd"; + doc = "0ipxihm9jkb5dvlrk217275p7r6amnkbh352k07s7k7i7rjg9pmd"; + source = "0461ci1zg2wq3f9qypwkxmyi0rciv8p2zk9rcajs0591fwz3drj5"; + }; + abnt-55471 = { + run = "0zw8vdmqcb5qddc0rf8qd67fwprwjagzy8s9ildgisb7arqmbj5w"; + doc = "00m174q9gxsm23j3fla7m7lj5fbr7iqfw02dz9s6481nfsjh1wgy"; + }; + abntex2-49248 = { + run = "1q7r2j7c5p1f0gbrc3sjd5gjq2mhljf1nj5n5760snhwj3qblr66"; + doc = "1id5yj5kh0qgjywbiajaf5hf9ix9jq8178fv2kvp1yslra7r20s2"; + }; + abntexto-68837 = { + run = "1yzmq0rkpmg946zpbcmphn70fpjv8a6n29n66q4x164ay3im089w"; + doc = "03n3b9mk9nyxplaj8vhb43i9fnxvcqr4q30jfbgax50qji7lghdy"; + }; + aboensis-62977 = { + run = "171586kjnfg1qb4wi50mrc9jd8h2ybg6r68kwyhgc5y0gyhyg08c"; + doc = "0qc74wvq6ibxgil36wp0b5s66d7m7axbn0y1qpzy9hyrh8v8jpav"; + }; + abraces-64967 = { + run = "0s1aclk85fcda4nf4i8pl3gvr65vghgcmphpwyi8n7im7kia25y2"; + doc = "0h7nyss6gy8r79ny9klpskbh6bf10rp5f67p1x5wklvpmyaz270i"; + }; + abspos-64465 = { + run = "0qzx59dz7x8pn9jr8g15jsmf4hs27v8qc30phi1g5h39i9c6pmg6"; + doc = "1a3li91yvvw2r62dvp87zzzxni3xllrzp38zg6qxfsn6xbwry9zf"; + source = "10dx92msh53z7sn603vsg740wvbhz8hr6bcn1sjs60snl47f4yf5"; + }; + abstract-15878 = { + run = "173bimxd0923191xfjjk7x29j8xs5kxy7ih55l1k6dbj0iwlb9g7"; + doc = "166lhh2vi36qbhc5gm3xx96sigksslzb17bpzncycf0zgkh7j0gi"; + source = "14f2s393nd8q5kb909rj8r15apf48rg6na8yc45z2hl9ksfwx172"; + }; + abstyles-15878 = { + run = "0v4wwf9w542scqx298gcvvngl0ncal0wds5m8h96x9cz7p9wjlph"; + doc = "0zxygi2wfrwlgv9dj69m3v5ily0av65f3qiy9vfpbjlradak48yy"; + }; + academicons-62622 = { + run = "1x8aahfd4ai0a9wgqz1wrj4casmda07xryci0gnmyspha5r8x151"; + doc = "1a3vlc8cxh35vka08q8qz1hc1l2hfk4lkmkrdlnd040im2h6v3wk"; + }; + accanthis-64844 = { + run = "05194iwavl83dqivxahrsb4a952knr7ih0rbzd4d34a6qqf20w62"; + doc = "0jibkv1gv94xzciidm5h7hrslj8qfikjihw3rfzzk6n42a6xbp5a"; + }; + accents-51497 = { + run = "1xl7fkm5gc36mm0bhx7rm9v4g2d9j22gr5fjxjbzmr6byjfgw71k"; + doc = "0il1ccxa2ndnfxn2caz9d4mv39y21rh360lynra7q2v5j1cyqrw5"; + }; + accessibility-55777 = { + run = "0d7xrsdanx7wnnmc983rfy00r4290rigwx5ils6pfm0br2g5kfsr"; + doc = "17gxz1lm39wh2a235wk0s03jc7jxd4bl0iqj04v02m994gz43y3x"; + source = "14av24zcjqxq8v92yni6aj66cblnfzb1f07hbcd3ljbycw14ii44"; + }; + accfonts-18835 = { + run = "10z7c7cgwm62dyzxfnj0jiy328zj3wccqjick37lz641vqifrd4v"; + doc = "17mbr2ydbkc4md6zd34km3d4s2vjmqzfwb2l01n4y30vjz2lzsn1"; + }; + accsupp-53052 = { + run = "156yax2q84naj394xzr8m7hfyl1j7pziw8d6rzkrjjgxs9p9az1j"; + doc = "1ak7xv0hhghgbwmcviirhh1x5y9pb4is8h0a32kdd4hdxjdm7c92"; + source = "0spz8640bdzmirlnc3rwynzvgy5fi58vfs802jzbqxb0ypdg14s7"; + }; + achemso-69638 = { + run = "16si3krcn64nz383y2cpv77fka9xlc5bb568inr3xi0sckwnvd6f"; + doc = "1n7kznrriac60pn7wnlnpm82fxj07gbnrxf7zfv4f8b9vj2x706v"; + source = "1h07bjmbnkk0sr60qd5ml6j78g5hbzvw0pwin2npsd2fxx8q8hfa"; + }; + acmart-69721 = { + run = "1b47751cahm4cphlxa0vnvax69zrxcj1c5i8bmx61s183l7gvw18"; + doc = "0757g2yzqikgfb997m8wd0w9rcqaar872qi7gz3j3sp0dayg6c3w"; + source = "09ly6vm7kjqqqqqk00n843h6pns8bv57za7g95yz0x9s4jqdk774"; + }; + acmconf-15878 = { + run = "17l1kcwv6wk5p752lmanlx0bmh2py4hfxranapgbdrhjpis4jm9i"; + doc = "1vyhkwqg0v3pxjnlwzwnmiffh6b3d9nrwnpaqjm24j9d2sc6cxcx"; + source = "1n8cf6n2fdb88xmnj2m5r3cjz3jlp9n7bn1yr717fsp2ks81pr3f"; + }; + acro-62925 = { + run = "1hzavaicandq6sqz3sy8hj5n3kvkbic34p8id2mslizcw3rmlhhz"; + doc = "05iwf21y45l61fsask04pphxzzjn7h1al8n2wv59jkxyh8vy8dbv"; + }; + acronym-54758 = { + run = "1gq7j83gjzlfbnrnz1cl0lihpdalsn6ww6hqxdfxikm28vynk88g"; + doc = "0zscjwg22s81awq27lhqs14davwbhf5y4zsl9dsq2135rppmmyvv"; + source = "16dds23mj3ha1b64fxz2dnxk7wsrcmhpmpz0zgqda46vaab9qiw9"; + }; + acroterm-61719 = { + run = "0snnpamdf0qqqf3nabl2f4pnabpjxjn949s44lb8wb4lifndyj8d"; + doc = "1ybgfy3x0a3dz5p2gac2w4ai2yc84i28vi6x0bq61ff3v74iqdhc"; + source = "1gja9j0a0v22qqdqy5f3ivrwablrz550gp7nf20054cirjzgr6f2"; + }; + active-conf-15878 = { + run = "1chi30gbr7xjcs7y3p2y8vfg6hany4wbacdm4drha9pa9m5sxqgw"; + doc = "1css89hbdg8zgl7zf2x7vfgbl90x7bjvf0c0m0akjk8fzx936g7k"; + source = "0anxqifjlf96z4vvr031v26s73d1a1sgjp8xv9xxv0kia4l7048n"; + }; + actuarialangle-67201 = { + run = "1cb333pky7vq83gfriza8afy17ag9lm81zr2f3nbjz4vrk7sidqd"; + doc = "0bwyj15r2bf3bqc7y0dbz03bwccwlh9ygcv1frnq6bc758rfksb1"; + source = "169m5msyy0braf61jz721isba94fx5wxinzfsr2yz9hs6ic62dg7"; + }; + actuarialsymbol-67201 = { + run = "0g8vm5wynrlj0764w7l9wfx2zw6ir0hik8nv8djlc96qlp8cm80r"; + doc = "1kqfn2c7rws75yk01962nx2ra94vfh2j8rnfqk7qkip45x7ya172"; + source = "02s6fiv0i0a1jzx4jkbv18rbmnld4gzhv2dfa1gijvzwzr1rpvp2"; + }; + addfont-58559 = { + run = "05a413mb0ksviwbl0y1a14j8y3np5ra5sgjcnbrslrvavf4q2spw"; + doc = "069vk1d1ig38r6a5a87fblq4m429crp79xqccrsk48ixswxafj95"; + }; + addliga-50912 = { + run = "1w9wv0wbv8acc7qvcc5pb5kjxmy2nz95cb990mmgc2lxvvsaw2rl"; + doc = "0q41i3cd16ahpklr1ddmzmfs741x5k30vaz7gz7k8jrf0579nv7w"; + }; + addlines-49326 = { + run = "1rkcpk1c8in0g6dgyc1m6pyz01jbx19gv98jmaiybxgvsa3z11jc"; + doc = "1gaf9ljzkdhwjg460hl79hlwdwi0mrvgs51si8k8gvialng8b1fv"; + source = "1m3l2s1l671n9j7jdsxfljjhrsvh81bayw40v81dm0f68g5hslnf"; + }; + addtoluatexpath-67821 = { + run = "1wzryl229yq1irxpj58qn32l5adhp9sc132y6m46ps283qq6wrin"; + doc = "0xw2bvqdcr761b1i3gh5gg8gfj67sx539hv8jpcdf2scln8zx9bl"; + }; + adfathesis-26048 = { + run = "0j60iq9nzk5kbs12dqx5jk84n14kdlx93mcypwi9b2gn7kyqzn5i"; + doc = "0c6k4xsy0jg95qg45bqk9527kb3k3azyxwpl2zrkw0ld6k47sswz"; + source = "17irbcz9wjnc6rj9f736i2hw4qrjwa1gz5z6w7gvq26b68pkxrw4"; + }; + adforn-54512 = { + run = "1cb6w50xb9wkl6x384dhldrhpjbk5l73x5gzpbm8za4gmh1pc94v"; + doc = "0a1f1rrii1zvd58h2slk2zj032vjqpi480d38rgi2k2j9wlbbyyg"; + }; + adfsymbols-54512 = { + run = "19rr3zdgqlmnrvd61g9bjiqiyn2gpn82fhj4219gqb1l06nqa0ka"; + doc = "059fjvdmd1jgr1flv5181ac3wvby93hyykfshcmr1j06zs8j9kyx"; + }; + adhocfilelist-29349 = { + run = "08fnrvnbrp7534b56hn8w0nm8pbgjli62v34mkalp4qkfb559kh7"; + doc = "1n7nah8vr691k56z0jkgyav4lc8w45rlg8k9shhqhnnpqi8zxv1m"; + source = "1xl0f33yhmbsrnmy9pby092js83vxcdaq2gfny08pjlq57arphr4"; + }; + adigraph-70427 = { + run = "19wzsa84y7a5jbgbyj69frfqd0ahi9ha7sszppsr5bmh88gbnfby"; + doc = "0rr6sbb34d9nd1ni86s5mll5bjx0hinwm52gqiqrwqwkr068djcn"; + }; + adjmulticol-63320 = { + run = "0wjqjg46gbf44f2x0xf58b3f9bxfkrh21m85mh1xsd5pxdy116fl"; + doc = "01r00mf8skd54xgzqjicl4djjzgnf5fdw5hcbf9p5ixx1zw1jq7l"; + source = "1zyq1r0y3amkqch1lif0dygif0sgwhypscqdsqml6ik2ziv2alzi"; + }; + adjustbox-64967 = { + run = "03fqxxhpc41zkj8g7dwd4p3vs9c0qg95c6bdwwgvn3xkaqn6amjm"; + doc = "11mldsmmp1mcd5kya8bh2zmkgl01ysswcia1lips3vjfiqjp8vp8"; + source = "0qzjxslq3bni6iancxix471sl6455syp1pglnn7xa5lxlfl43ccs"; + }; + adobemapping-66552 = { + run = "1yvf74mlmxmnq9m0wvda9xcna8xnn382bbrzizzjm5w7bk8c4g98"; + }; + adrconv-46817 = { + run = "1wx9a00jky9v8xmjhrjlhbl3kcdxh1n9yybpsr74g2vw4bwdyr70"; + doc = "1ny594a3dvx3jba0lf72kjny60ix6hnnw8gj479ccfj3gw2wv0mp"; + source = "1cndbrbw5hss1qi7z9mgymqrcmvlhj8hxw16qjjzch85xw1nrwzg"; + }; + adtrees-51618 = { + run = "1j38apxxk3klabxrm9kpdf6zbmiqb17is5yqgg1a4576n8paqg4y"; + doc = "1851rqb9gs1wf8wl8f7pqbnxgpikzxzw1n5mg5w0kcwd889g17yc"; + }; + advdate-20538 = { + run = "0wgr84y3k10g6622sm11c4m4wxj73vpklf5i5gnp14yamwi19cn8"; + doc = "0hyq7kn10ajqabmz2r363wfpdi71a9zkv6yr30s9lda0vy5vz4k8"; + }; + advice-69283 = { + run = "0p76w2fj14908vfajmsjjv4kh7d77vyd7x24zylgil07p2s1i86d"; + doc = "13hngcgkihzmam4fc4clkb49a4mzy0ip6vxx06b4gykzq8pdvkkh"; + source = "06bfcx1pv400zk5lyz9i8pg4i8kax370jby6s9p10p91wym2p67d"; + }; + ae-15878 = { + run = "1nbhlv1qp7z8j9bhfrljmpjlcrl346z1r7f4hdxijdql0wxs6a8z"; + doc = "1qgq32xw5micjri99zmznmq8gsli6y9fqdi2l7sv530ri9i7kgxk"; + source = "1ljkgb4qj0wa6yxddx4w8w15z0nw5vnyh0cpzc4vwkc0m03xbrm4"; + }; + aeguill-15878 = { + run = "1klri7b3isxwa9lpc2j857y8r9n9x1av865jm93ha6nrwlzqk7a3"; + doc = "09lcp9in9v7vxck9kaql008qmcvba3g8glbm6rr5iag7nn2vbvj6"; + }; + aesupp-58253 = { + run = "10yd16v85zbkzkxb17gr4kf4li28ims33i1zrkpygbdf10nclxcm"; + doc = "1dydcjdz57kn3gwb3pfm4yp6hr69pyqhy5lhm9pnlcrycvqsn8qr"; + source = "1s41gd7ansh80z6mmwwha7pypaxwxxvrz3sdfj24pa5b2agprq68"; + }; + affilauthor-68996 = { + run = "0xrnjg386xpa34l3n26myqkx2cjk06hmj4wnm2yz29kyj4n8fjsh"; + doc = "1d0fss9fniwwn1d8cmvwyjj6fvl5s9jvmgclh6da7pywdw5xgi3q"; + }; + afm2pl-66186 = { + run = "1nbb9lcxqxj2aary7a65fai3hgj4nwzm690iy0xv62v580krdbck"; + doc = "0akl6by43kha3rr9dwnr3hhnnfqg4lqnxv5pqf64cnp17ih47wx0"; + }; + afparticle-35900 = { + run = "0516hjm1v88vk70ggagkj0s00n465y08fr2ys3f2gychrax425a5"; + doc = "1ajpc55z02q8wgriwzzm4f96dmn5bpi9n81zad6kay7c7vwfa9g5"; + source = "03cx2ak956rdwdd5ya49fh81vdwrzq9y813r1h8qcp618sr3h14n"; + }; + afthesis-15878 = { + run = "16jyz1skb9l78dwphggq23jm14zwhycmkx3kn0sm13dcfifrkxpd"; + doc = "091f4flclyahjlxwa640l7vmrfiyb4wqgkh19caq8fld96zkbjir"; + }; + aguplus-17156 = { + run = "0z7mgsm9pa33gykhwzlmpa3shg7ragrz3jdp8qfakp5ck2mbjysh"; + doc = "1105vsng0yramk84pfcg9pvzjbm3cbyp84m6sxr9wadw02z5kj8j"; + }; + aiaa-15878 = { + run = "1z91l7lhi5pnh2ignmskd24asaalhyhdywkl9j6a7dp6cplswhy5"; + doc = "1sz6inilvyaqhnj1z88rws7xwkhhpw35il4ppxw9kn9pwvnrn0vf"; + source = "1lsbfp2zvhpyf1vb1ia9hdz1i796dbfqpndcfy8lay48f89n3njg"; + }; + aichej-15878 = { + run = "1pr92pq3yjsrbax6ah01cqg7131fp2rkqqjnxwcrm4119z2ic0gf"; + }; + ajl-34016 = { + run = "1xkrvy06lw4ngj94zybs14ysal2pg7g71h864gq9bjw0zwq2yjzs"; + }; + akktex-26055 = { + run = "1npcfjjg9nwrb392g8pa4yq6i76aq4ys67zil4qgkf4jyzrixln9"; + doc = "10ma4ic5bazlmizxvwks6w3qqxbbir0rrhzj1yw2j68p0600nmvn"; + }; + akletter-15878 = { + run = "0gigzlxkqmiqz4nwpxj98rcrxmi6yfipf5bifg1mywchnw7a1f2h"; + doc = "0ngj7d4vdnvh99inw2vggqdgx6h2hv5z77glxjcpx8kmxf8h47sv"; + }; + akshar-56277 = { + run = "0g1pbihbpl3b7k7c19qiq7lcgx3zrfn15065dyan85bs8h85c2cw"; + doc = "11a18b7a592sx3wha1lpy659hgh1wnka16zf8m0cbc99f867xfln"; + source = "0g8j0015dm3mhphg06ma9dkgc28ywlihr6pcbi254qaxgk7kdn9g"; + }; + albatross-69879 = { + run = "1qmhrbw7vq1gwd0xg50v384r3bkic4xy32i7sqv1lwrs4fw8aj8x"; + doc = "10wamhwcfh0smmw6q8yf0fh6xms52ckrd45axb56dc4jchdhnpdy"; + source = "11winakpjawrifjxkyfsxa9i1d0k0h4jcchnp61isvl7hy2n2fw5"; + }; + alchemist-66924 = { + run = "14gd0gb86p247bz2x2kcqqj2b0r2lz12gpssfz84kgvrwx5nxkvr"; + doc = "0d8kirmkd1shkbckv32i8yxdrpwzss7qgdn2i06b6mwakisy93v1"; + }; + alegreya-64384 = { + run = "06hrvi0dssva2r253k9ma1vd6ij3bi2d0wsrk2n6fnxvxbl5xc02"; + doc = "04wx39xdvhq0rfl4mz8k70kfv74w6kpyhja5879g0hp3pjfzxbcl"; + }; + aleph-66203 = { + doc = "0b7dihilh2v8qcp4m8fblyc10jc5i4fhpj3pspzinag0pk66b7nb"; + }; + alertmessage-38055 = { + run = "1mj3wiz4fff3ry5q4dk3k0kcx4bcqfwdvgaa9x3vczs746q57dcg"; + doc = "1ga46r20zyb1bq7pvhq4348d2prdshy5m3yx6d00v5zzis1dmx1r"; + source = "0n36cfjgh1byik8zn997lmyz2w4wmz48f5bzqrhcps7bg3kmp4zz"; + }; + alfaslabone-57452 = { + run = "11va28ww6qk97wx8fh0iqbm8b5s14vf923ydpglx4gann4w9bkiz"; + doc = "0wfhd5pi1p5xnkq8lgpp3fhqn8y76h5jp3h5qhlaqygal70fw9kw"; + }; + alg-15878 = { + run = "0lrzrij15s989hy2j9wi1fzkpzvqjfhmgj6ryry0gy7nk3azhhrq"; + doc = "1lgi63jx57arpz688i22razcrzarl96id8xf45vznh8iraba3sja"; + source = "0mjrh4mnx8q9x40vr4csj3h3w7wh3hs8hidbklym29d0scd5rkx6"; + }; + algobox-67201 = { + run = "0xplb7wlbizzy95s4pk1nhl2w1b3g80frkd8p4na2rv7awp0da3d"; + doc = "1bp5b0zr6shhaifkqdliw9qa18ym4s68xfk6k2njjnwdqyrxyd01"; + source = "13cwnl7nxxrs0jsvfrvcy7a5pg8a92qnhxjsbarcx3jmg43d4zp5"; + }; + algolrevived-56864 = { + run = "0qsxy2az8d0sr07mz7yxca17gl1y3kaqmvlckjdckvwq1idh7h0v"; + doc = "10m3rgczhnkalf2f945jwrpwvv9szxh3v4wggl1rdxj12ng0svlq"; + }; + algorithm2e-44846 = { + run = "1iw3yhdk9nk1y41hw1qcpqiqaxadjc0nf6cgb23kd75ah2cpd53n"; + doc = "19xsi1dgxfi06wxls70pvnys20i2na2y7m2hq8y6v947pc5kbb1b"; + }; + algorithmicx-15878 = { + run = "111iyi2j8qnzha97r1grxpcbnfkpvcwndczx043c4gw5wqmrknbj"; + doc = "1rb46zi4islfbykhr68rnrkj4q966papin0c5m752gh6kzx5r57p"; + }; + algorithms-42428 = { + run = "1va2ic75nf0dfh0dr576lpgqhzqv5203frr37079q648871zqav5"; + doc = "0fqif0nb9ypd4sw2i9qsxl81h3g4h0gm0yqq67d5n9wrpic8dnjg"; + source = "14jgc7vnww5xhnd76cwix5c599sfdjil2i916cfpmsd5yn5qqdx3"; + }; + algpseudocodex-66924 = { + run = "0mpnwm97q1i40phy61wiisf4pn71hn0hwc0x0gscn0jalvfx9g5l"; + doc = "112p7zg5rdf0y7iqs74xwblfwxfflg22nb87bdgkbizmsmy2gg2f"; + }; + algxpar-67495 = { + run = "16pbjpr8nnm4s2fz2sdnrlx7mn3bnzhwrijk721gzx81qbq27cw3"; + doc = "0l69rr17b7njp3ywf5xcrnxvixmkswgaydj2bwrvkrazam1gnkdk"; + }; + aligned-overset-47290 = { + run = "04gjl08y9wbv5qls9z2plxx5n4abi4nzd8qik88via4xghhqiy7i"; + doc = "0il97kycqgqqimqjvjhnhc2mxy2nja20vlspsqrl9zaah71p1b3d"; + source = "0zbaa3m06kfkj7kkv6iy71d20n0kqq1dwy63dwfj4l49wv427z08"; + }; + alkalami-44497 = { + run = "1llldpmc485zxlw1k996g3gfffb0ixx72afz3zkj83i78dpx180j"; + doc = "1315idl4yricb06bh689hhdf9jkc0ckmdygacsx3ywzxj1zcrcch"; + }; + allrunes-42221 = { + run = "0xgh3y7h57lkzxrhddn5wll339b4zih4nb6a36ymx38a6md7b8ph"; + doc = "0dki14g1607a432549kly1wcy1p6j63lrxfd3m5nyz868kg3hjmc"; + source = "1d49w7lybkn7sfig7i27mfwaccr9vjs7ab2ds27jmhp5wjl7w02w"; + }; + almendra-64539 = { + run = "1zij84q0ml0zf0dig3hqlmznwygcp8vbmwl3xc5qii7hs94hnjr5"; + doc = "19j6vi1z04j2zbab39934mflx5qnqdjl4gz9n8hbjwlhiq0wb82y"; + }; + almfixed-35065 = { + run = "0qrai75pdkf4py7nhggvwzaarv4jlh04dqsy1b593jabq7ngaap1"; + doc = "0arhvv7z8yf8kcikzybhbsgsj6m9zy4is5ryr6hcf6a6incnkp1d"; + }; + alnumsec-15878 = { + run = "08i891g4b3k1qqicbsgd3h3sy98cpk6g1cfn17g9ysws8k20a0sy"; + doc = "0fanq66cm0r2dgpdrblrhqkchxpy2dxykq1g8zrk5ddx27v6r9pd"; + source = "1ssw0pi7hn3s7pqcqkm36jjgmd5g2x5rqyf2khhdscfwrsjh07a7"; + }; + alpha-persian-66115 = { + run = "0673i0l6vq1h37g9jqcp7am5kl4dfbcrfqp42c7cr6a10zhvfqyr"; + doc = "0cfl47cqpwxn1k87h19a0ggayf6c52sl60sdrmpa7sfydhg9w4qg"; + }; + alphalph-53087 = { + run = "10gkh6nnhsrlqx8b6k3dylings3q97ky4qsv03nk7hn41zkqsyq0"; + doc = "0v36l765s4lc5r2xfi8a3i7vxf79yxy29xy52cbhx4ps0av4dxpi"; + source = "08yagdxgqvhvq50cc7rvb2629g4n2qjga86dpa43x2vjnmmz08vm"; + }; + alterqcm-59265 = { + run = "1mffpja47m40875i3vk3ha4vdgkxha6zh7q7fic7jfddxcdmlf11"; + doc = "0nh7861513mpdspnkd6k6kaydplmimkzh0a19svbblqwxwga78c9"; + }; + altfont-15878 = { + run = "1nrcjmf59r672gmqks8spqwz3vn4jrwc272zvx7ncylphsjmip70"; + doc = "0c5hz0zjcar69w489zz2a04rbnc3j2lp8yccw9zv41ninzl94ifv"; + source = "144m2ph835fl9x3ypc7wfc444719rv4clfdar3bk73gvf53rmjr6"; + }; + altsubsup-62738 = { + run = "00yva44w281zlba1c1m1jz0c1j5bwynfxf37k4sw5am7asxzizvs"; + doc = "0nzc10vbf16bk8v60d97nw02ryl7bd5b6dv26g6rjwfpfdic08pn"; + source = "0kdsv62j78ypa6z9098d60rilk9p0n72628cwihzyp8kv1g05049"; + }; + amiri-65191 = { + run = "1r5zic8x2iny7g2qam8wv640hmxdjyb8694zck5xv65mg1aq2ckx"; + doc = "0sfxafi6qvihr70vspyfqqcdzpfjb8i0m43rlfkgnwfwcgschpxc"; + }; + amiweb2c-guide-56878 = { + doc = "0cxwsx49p3c162ysv0ydyxdncfg8ij9sx2x7c4pvzb0yidvad01c"; + }; + amnestyreport-69439 = { + run = "0hfjwmhhs1whc9i7vr8i1nxqdxvh6bqsylq9sd3cvk4jbbqzbgdr"; + doc = "0p0jmg2mdkc5ada3wsnkbm15an20lgfh27g205q2acr08c0d2zwz"; + source = "0plydqkmzdjyjid35az71baym73zhkyj14514p7n1jh3hmpkvbif"; + }; + amsaddr-64357 = { + run = "1mbbs7r8yf7fnaaizccff12k8valncym1plwik07ajj78vhgfy5h"; + doc = "15abzspjcy683xgmplnr5yxl20phr6176i5hcz0lmnk8d9i5fmza"; + source = "1rcid86j4vjmm54bn6yj09kjyz3v6kfaxv27w0ajndrl60fm826q"; + }; + amscdx-51532 = { + run = "0ncbf7ss4iwyjzp6lgzgzn3azy5iasl03565kgsm1pcbgprqibgy"; + doc = "0nfpbma3cawyy7gw6v0w81maz1jgicb2r4cm5gmlipzxwzl747if"; + source = "0jg2qk0a9y15hl4w753yhjff28w9wc2vbmd564lkikvg60b9yiqi"; + }; + amscls-55378 = { + run = "0k3di45cn0g6v5j7ccgl0nys6ni1h17dkhmkz5b5lsz4zzbi05fi"; + doc = "1lb1q967zwgqn21ix4gxbzw8a8649p9hky4ckd61l0bxxil3mhjd"; + source = "0g1i4nj0y32sihf7hnb8jwyh3d3qmff394xgw8v8x5jp8q0rh2bh"; + }; + amscls-doc-46110 = { + doc = "0allim05cp20zhn480df2mivd3p9gnc069d7hbjlzv660bw7mapx"; + }; + amsfonts-61937 = { + run = "0l3ypclhv5qdpcpy29xwda2m3cjfn5l996agas6yhpdr2m58q211"; + doc = "1v7chx5rvvqmcf7j35qi55wxwxkbfkbv34b15yrgn6bflniziicm"; + source = "064gndy9lnmsq2srw5hh97sbdk8gk0qv9zzki00ms3c6rzhd9sjl"; + }; + amslatex-primer-28980 = { + doc = "1kzayyh1bycmq43s2xn81jf05r18azidbk3gv6igf2vaq37fmxil"; + }; + amsldoc-it-45662 = { + doc = "0d4hwb7hywy56d6934448lcr6fdx7qchkfzs806dr7wfzfy36yix"; + }; + amsldoc-vn-21855 = { + doc = "1iz0zjn1v7izwbsq0zb6cvpnkbvk0nxw1b24j7dzqwk3m9j43i6x"; + }; + amsmath-68720 = { + run = "1igdsg0i32hi2db8ymdgvyd3fk4iiihspvcc5azw11fak9wvh7mi"; + doc = "1kv670h72jl64cjfidk0h82whf24xhcl8vsrpppw6w5rx252zzfz"; + source = "1k3lwg72h4z0gyj9azr2b7b78x1q5h85675mfam2qdl3iljnaryh"; + }; + amsmath-it-22930 = { + doc = "0xcwsk8q9q3nsz8wbklgpbw0vzjw7iw0chffzcbp2zsk6rypqf7w"; + }; + amsrefs-61937 = { + run = "015spycf9ycxav8r046yn7lrc892nhkkrf1say1yy9karsji6dnw"; + doc = "11fc87kbdm440v4qyhxnv654mh0m6rpz42zji38qspcqj19rck71"; + source = "02q2x8zpwxkyrh9v7xqw35vdjx0b4fzz95xcv6vfjmynm8cpklxf"; + }; + amstex-67930 = { + run = "0l078b9fkaai7kn2szn5hblqp3amlafr7ha0hjcn48657wsjq4jb"; + doc = "0j6gfbkx8vfalsxq3c4fyjs0fj43a2n8biwainfdmxrhixapwc0w"; + }; + amsthdoc-it-45662 = { + doc = "0ic88gs89m3d9ys40c4k7sgx6wy82c8isg2qkmd4snw5yms6fpaz"; + }; + andika-64540 = { + run = "1bbqdw8r2l53q9870mnsyaiq0gfy1ac808qqmyrzqqz4ai41zzgg"; + doc = "0ajjaqdfxlvsmpr9bjmdkzwbdbz6ahxfw1sj1sw26r33npy0c5bs"; + }; + animate-67401 = { + run = "19rq0pca3q8kv1f3qf02n75326ngjxjhk4hcllzsl5p1ngh4vw8b"; + doc = "0x991qbaf5n8bv95yc1k67rjas896ci0iki62yl7icfbmcbz5hd2"; + source = "04bblj8wxx9xg8zr6b8jzll5v69vdiz3yzxcdcm93j6zsxvw7bai"; + }; + annee-scolaire-55988 = { + run = "0lwc36v09a4ji5fz3pq9939jm39729k0k7hha4kkk20jc3j4jnds"; + doc = "1f0qc5qvsrnjddp1kyrcigd8is2y9nsxc9x8a215p5xds2z5gc30"; + source = "01mga2nif61mpkf7ifzhsj5pq7wzm2imlljap4c6wcrzb9zlhfx1"; + }; + annotate-52824 = { + run = "12q3xk08ycz57vsrcr2glk7y48w8sbc4n8lrqaicd46cxfd4jdqm"; + }; + annotate-equations-67044 = { + run = "0lqi4b3fkx9bijs2ddq479bkdf147rr7j4zwinygs2k1fh07yjma"; + doc = "10b54pcdjl4ca36wrqc1pcxa7vp02f1v5i05a40iawfc884wpcvq"; + }; + anonchap-17049 = { + run = "0nz53v74sigvlb4dhgk5qcalw7nrc1vafbjx754j3gfyp2ilaf1j"; + doc = "06khbq6p3drxsbjwgkm1sd163f7nl8hc52pjsm55g2vknib5caa9"; + }; + anonymous-acm-55121 = { + run = "0blyv8pj41qa3fvhwsk9kq8qwp8x0b1iz7vyc3lxcpcv626aqr2h"; + doc = "1j0fhwv26ziw6rvg1s2x0ry5yq2sfa8a55xvpyrzl6pjmzrj3czm"; + }; + anonymouspro-51631 = { + run = "1qk10w52722yzlyvk2k733sp1h2vic3rjcswkhx8j21a2g9xgmjh"; + doc = "0ijsn9cbkg1f29x0pj6a4p5d4q14rqrh2mjid57cb9qjhvgvqrm8"; + source = "0fl9sd9adhjx49hja3k4iy9pcx3hal0wjzxg10kjmi4j6qvz829s"; + }; + answers-35032 = { + run = "18s0c7hdk5qnj3svni93m9lpj81dhla9v7nsmcgh0jabhwy8n3v2"; + doc = "02pfg28dz10w21ap4pi2csvy32pcvmp0baiciavp354ky4avjbdd"; + source = "0mcczai8da24jvmakc7glr2c56yhq2jv58y1xqv6ny9hg4ph8v61"; + }; + antanilipsum-55250 = { + run = "0xz42icnw36dvkxlh31g8hvy37mrbafgihm7l3ivh1z4hg6gabrh"; + doc = "1rfx3aqdvl4gvcrpsqzjh9dglk34ll6qc1a889yz0np93psnwmkh"; + source = "02qpjks29b4fmma6qm43p3w1k8h28wv1blpwjnnsfq4ii6xrkn5s"; + }; + antiqua-24266 = { + run = "16pb6v297iqx09lb6w6zfcyzhwidd1cln14rqc3fblbmdaggpays"; + doc = "0pwyp1j02zh51crp46rlhbdnwc2m0blcrg0yk43yfc687q3jx91y"; + }; + antique-spanish-units-69568 = { + doc = "09w95jv60qy5fc8b121f69b2bj8gj9cqz77x4rgp68xpnm125y0z"; + }; + antomega-21933 = { + run = "08if5plzpj7g8m1afhq8ci6m4yba4nnsgglngq94ka3ga8czfk6g"; + doc = "1mrr1vqkyic5nyzyxkw7zq67yz4njx9x68cqr3vjd9d77qv85i00"; + source = "0s0dzmb00hqbp71nhl94w0ns1dqj5fmfqw63z789iihqznyxkii0"; + }; + antt-18651 = { + run = "1clzmvpglsirsvm8nsc3m4dkz2va90877gmsrm7jfkhm62xv9mpi"; + doc = "0kpiba7awkrjr2rdgxilni1yi8p4ycmqyy09c1p9j1ld82idsjcm"; + }; + anufinalexam-26053 = { + doc = "1v1k74vxidgxn5zzqz6v9zga468kcf7hwdrnvw44cd318221y396"; + }; + anyfontsize-17050 = { + run = "08dnpzjajn0k6hrf12l1p3ncsqjiwafzssa205k2zgsz61m3sis6"; + doc = "0zmiklc2adbx5klyyjdivicd5j19i35b51ddm3nhfrcqrfvjrxwg"; + }; + anysize-15878 = { + run = "0kkjzsk03bvnap54gdf0i797zqq6bdz39yh4dn810l5hyfqxbhwc"; + doc = "15z3sa1zj1hbi7cy9q9wn4mcrf0pb3n39q2lhkx0ijhzaxn0rmvy"; + }; + aobs-tikz-32662 = { + run = "0fiq64szq6243gy7vg99gi9zhz5c0svrwjwj92qnv131zj71lcg8"; + doc = "0yy2nlq6d6q5cijdswkn3b1f2a3j5sbl3fdv599vxna5pgywsw6s"; + source = "1dj665gs9cbx3mf3nqr0944kg59gwg43ll1dz9ci3jra0nsr8w5q"; + }; + aomart-63442 = { + run = "1x69rs1k0zxkqwqsyjmzkwrxiy1hdsd32dvx7ha668l9wbq7582q"; + doc = "0nhj05cm7fsi6fpp2wq2p119y0wyk2ag070lnjj3ri1zjahx5yj2"; + source = "1d6mpqd07fayx5g8kz8937jyj6c6rbw1g8w1amq5sb32215c7q2r"; + }; + apa-54080 = { + run = "0g7y5l9908l4aikm0mqgwfcdg19dbllcgdp94cl1aha7h4jq0971"; + doc = "0bzicm0x6sf78jbrqp66mgfjmcd7kw0rgkv0c6ah9945b9lh4ly5"; + }; + apa6-67848 = { + run = "1zhm599xqx1j8yqjp20xgafm5xdnsjdh8pz1xndjhlqdxnv60044"; + doc = "01iv078nfv3ilh8yjkf2r9c9kyn7lxxad8vl0lb4gvi706p3npnr"; + source = "1g987ikxqvl0b1zkf5kvwg9dzy7c4k1rv9cl4r8ssdfm9bq7fvwl"; + }; + apa6e-23350 = { + run = "1da46dhvpwmjvm3ma4zbnfgsc2yiqg9d6rdrw3bd5h2ibs3vnlmg"; + doc = "17m97m9v0pcs58i3k7sdj9h1vifv3f0cxxyn4fzi8pxvzljwl5qm"; + source = "1155ic0k6f6gw6zmqq8pv74hcn45skjzyarf9vpkcksj96qr07ba"; + }; + apa7-63974 = { + run = "1y286f7vyvgnyspp0vzagf8xc81b02029zn40ggh5bhhysq06wzf"; + doc = "0z8jfr76r9rvqanljhq0fnx5z2w59lxk2mc9if6z7kkid1m8qx8m"; + source = "0xx3yvjknqsk36mb336hlvvsldhmp21vblgzl2zccp347g5530z1"; + }; + apacite-54080 = { + run = "013769hi9alyizx08a0v1hbl03h5vkwi6a6ar3ghw8m6l445xb8m"; + doc = "0d49bmdiiriklmh99kavvm48zh29bgiw7zr5jbcwk5bw42qarlqa"; + source = "0hsrhw50sb8lphxib4jmjgplfrmy95m56a1phiac4kwxphlj9di2"; + }; + apalike-ejor-59667 = { + run = "1498dg6dcb5d5vndc794427740i6n1s68kwj9vzcpfpgb67khpfz"; + doc = "0x6gm4djf2bfs92zsjzmj41dvv7pa2lawycjlmazsr55dd3assdd"; + }; + apalike-german-65403 = { + run = "0cv9dqn4nrsdx2cl7r6xrg3j8h16ni938q6xdl7s80cpff79m7vg"; + doc = "0pbx2ghz7f67c3cbpk5c11nv9pkx9paq2hgadnlz1j68g71b07fv"; + }; + apalike2-54080 = { + run = "0mn84ahwjg8gvw5lifvcrnch11q79d4bgw3nmhrh4v8slwgip5l7"; + }; + apnum-47510 = { + run = "0qqm8np0jr2q3dyxapd49g35vk6ch3k9ar43yq740cfa7gs23ss7"; + doc = "1jjk8a2aif4f7gmbj5laph0q60xpb0yv26j22z4ay2p6yf6a4fy5"; + }; + appendix-53718 = { + run = "1xcnin7414mb1jvgs7f1x27zkl73sabmqb31i79n88gi245bp5lz"; + doc = "144hblxkrfp8g040yiw1k7nr3anqb80pd9c2g15m88gbb1xzyay7"; + source = "10gnkpwvm08zqwi83s4xiqshp93v5ai0qg22n7zcwgaq86mzs44w"; + }; + appendixnumberbeamer-46317 = { + run = "198sc0fmnx7b31j2mgzjbjyjjfsn0imw2j8pkg8m0r2rlphqx72x"; + doc = "1b1rwcxrs8cm3zfadi9jpxgzcgai36rlnfragc9l5wcbdsaw1qp2"; + }; + apprendre-a-programmer-en-tex-57179 = { + doc = "05779lk9v849k712wfjv0mhyzahwpl4n892ydamfdc5yg05bsnyv"; + }; + apprends-latex-19306 = { + doc = "1xzy7svb2xz6bdfg0f1r3whwda118pl7qdwygx1l7h4d1vqm2rcq"; + }; + apptools-28400 = { + run = "0b6yzpk2d79qg2irgfhns0w05i54z5z22ik5yyx4w6wg45v0j389"; + doc = "1n8ak9cw66780zkk384vpjkxm9j8f9dzlqzshy48q7hhprsg4p9a"; + source = "1ba08rixibjcpi420blw8a0v4c4zi2byll7dqlvwb7azqr6dz720"; + }; + apxproof-64715 = { + run = "1v42g8hr93afz1lr1hbvycgws92vg6pzig1qqjmrpff11irwfa0h"; + doc = "1043sl948r89fzgzxwn6n4sjs1jl7mxr12hq9y4ljgm6264kw0d9"; + source = "0wr9vjn9vmljsx5gyccjzcqwx86hza7idrq84f7b9jl1miwgddbn"; + }; + arabi-44662 = { + run = "0jmx0xsb3hz5i25mmqnxgg3bikyr1w26i3364cqrp50x9sqvkgfm"; + doc = "1yipdaiai9fbmrxkacqwnbibdiaa5vskzj40d1hxv6wnkxvj2qkw"; + }; + arabi-add-67573 = { + run = "1ylvj2w98dly6blpk2aicz206rfg5xzqbcjx00j3jnmw7g847kxh"; + doc = "1d1wngc0179p7ij7ibnyvq3cxb954sqywxyv5k7a3dg5np9zlg7j"; + }; + arabic-book-59594 = { + run = "0s7hnmz67hzfmfzc0mniiqfi6i8c8qzslbm92z1wc3a2hr38ihk2"; + doc = "1j5h788vsmrcag9bighp6kz6zx40ppjzwfa070ic140lqzz2b024"; + }; + arabicfront-51474 = { + run = "16426cyvrk461z9jb728w6glfm0ahss82kkq6fqkhajjc0cflhwi"; + doc = "0ck7nl7v6kvibiahh3szf3nbibwajg2pjwrbcz06frpfwhizsnp4"; + }; + arabluatex-67201 = { + run = "1s66v0qns84vhpwvb9if07b9s7957jmxxd643g1mddg36z6pkqfj"; + doc = "1rfwl55la33ag9plqwssjvgq47mab2h7ljrw5w6l96vq965c2csa"; + source = "1g84xxm5fvp6dzdrkyxcjn4wlih0iydrdyxn93dffx1a9n1c3yyg"; + }; + arabtex-64260 = { + run = "0xd2apd35zn1c4narj2gyla154nzd9ghhgc3fkk6y06d8dzgawv3"; + doc = "1zyyk778384mhma5q7ra75fwykk23i63q4jzamq4zard0y7gp4k0"; + }; + arabxetex-38299 = { + run = "15c8nmmv87x87dbjwm1q0acf7pbbh8w9gpiw77fs2i51gab592xy"; + doc = "1ns1y2lf87gspaablh4lm3kj33ggpfp7hcxbdv4vxf8hhfc4pp7d"; + source = "077r71723zlzfjmc471a8hbxs1v2g6j2xpiim3g2klxsj589bxfn"; + }; + aramaic-serto-30042 = { + run = "0j1i5snrgj579zx3cn7z7dhi9rrq0ssl392r2vxykcxalcc8cmg2"; + doc = "025nkiqh91laaj3yx2qkl5z0jcm2w0qwgqm545dd98i5y1a78lfx"; + }; + arara-69878 = { + run = "1vcvhpb6wd8k9fzyq2pxxyd23p15w6n57rmw09f745l0kg9gcd48"; + doc = "1ln5z77slqmlks5507n5cg5d6pw1vnghapjwagw1bsc8cirw9z3a"; + source = "0109zb2h6r00d9849sdm1k138j2a6z81s4bcap0llz7qq7qs8swd"; + }; + archaeologie-68476 = { + run = "0r2j9n7vbdj7virnmasqi9md81wbc5b53h0xwf4d6azh0isy0505"; + doc = "1xhlp6x1ixqn5xj0k9xz5149jwf9zgp3nlv0ncyjn5nzqkky0jyr"; + source = "13wmghwrc89g8kmsdsqjfcklbindkrc63by2zlgig29rvidzn4lj"; + }; + archaic-38005 = { + run = "030a281kl48ixl4vh378bf0341lrrpvh73ws5pjxyhvs6cvyxp7i"; + doc = "0m64lsmx3sryzdmbsmz7biwmndpn66x9is8apqn7w64y4b1jjcpk"; + source = "1231mqascj96yi4jj11p4zcxgkpzxi3p0zxnjq8x5fpajz386kq5"; + }; + archivo-57283 = { + run = "19hr6vc7x9csjjd3i6mz9z27cyq4pz1qvhmiwbql2xhvmbcd871q"; + doc = "00cs206zp27vpw06wqg7adwj73124zbp8zwfvgqsh9n544npvfmg"; + }; + arcs-15878 = { + run = "0qahab6a041wn6s6isnjn93yrs6zk82g90x5aqpv742b2y8cj5ix"; + doc = "05wgq5pkzxg3vj9anlzjq1jvwj7b6wvsp7a02syca6n4qvy1v5a7"; + source = "0jnvkhhcqv7qgs4knwx1kz38x305a19kh13wn47zqlqn65991bpp"; + }; + arev-15878 = { + run = "1nx33blp0nfqfmv2akj7w79qg1rhds40k7b58v5yvyrkx0hpn0hm"; + doc = "1vscwahxzdcb6879pbrxdlfpgapc0bia2fl3jwilrm1has0ffjz3"; + source = "1k524nfr5zb0nmhhq8dfaha4kv9f2ika192scllnn1bywhbpn2x5"; + }; + argumentation-69023 = { + run = "0pnr7z8by62zi1d8qbjmmddlykrkhhisqx4n8lhwbvi3qcrj48gi"; + doc = "0mms537p669wa0v301g51sgigzxdg49rj3kg8i3rva22hm3b7fj1"; + }; + arimo-68950 = { + run = "0idfg33qcggv0cmh1hzpvzz690yikpmi76xpfh19py168my01mnm"; + doc = "1yx6lp3w6s6zz31cd8hvhk4vdg2whzh62cdlhyglnb90a8hjyis4"; + }; + armtex-69418 = { + run = "0cj112jisym4zyrjb1g4y9ryyiaj6smsglmmq8zj9xkr2hfpw46g"; + doc = "1xdl1alazbmma8sddkfl1vcm1qpk0agg1dbkimnbniiw2xdx5swp"; + }; + around-the-bend-15878 = { + doc = "00nc6kx4ylz9g6vmjlgyjvmy1ls86pjblbcpm5z40wh5xl7l184f"; + }; + arphic-15878 = { + run = "04a15kip51zp4bhrbpiv4m5pm587xbia792ckj17gj281ysd4817"; + doc = "1z1z7nnncp4dpb91bajxf3li47k011jn5jbxzgdaspa5mjvw32k8"; + }; + arphic-ttf-42675 = { + run = "1z8fa90baasp8j8539a4kzilah602lik012az7i3pc0dnm4m2w1h"; + doc = "0nfbjnprd71dwp2dxmkmdggfipa36w4qbps82czn506xpzh07lav"; + }; + arraycols-68277 = { + run = "1dgqrznjh5irbcic6dscq1xl3gyfvg3dnrps0ki1ypq24cm2cqyx"; + doc = "122iwnlyci7mkvzglzrbl5xycm8rl9zp8yrhb3ky92hqqv1ywi88"; + source = "18kzw3c2gja12808d4k7vr55p39rjs960fv9mmmpld4azw2f7c0q"; + }; + arrayjobx-18125 = { + run = "1ry1gix4nz11kyrfpbhy160c8dir2y68jbmnds64qcdafhfv4b9m"; + doc = "1hqjhkjh5ryhjpi98hyi92raffmish9n9193ry75mgfx1p2b2w0g"; + }; + arraysort-31576 = { + run = "00wbmciwdnafwknxxrnprxj4xvs24xxwdwmn5y5xh1c8c3q8rn09"; + doc = "1yn9kbq8icd5gxix4kzp0qszhg1xy59s4m8p66a88h3cwcs7fjba"; + source = "08gbn5s8c7a8klg605kalr2mdpijy73pxvfsndaw9jdnr9ipc5my"; + }; + arsclassica-45656 = { + run = "13fql9q89zkdhid841hwxyrdbj6bd692lnc52d0yiibrd9gd9f4a"; + doc = "13cqb49296wzph7msrhpzswlyknvhrjaa81509l4j4mx1snxyk4b"; + }; + arsenal-68191 = { + run = "1pc8k3zslxla2ngz29389l4n9ahcbp2m4blydpg2bz0qhs0zqapb"; + doc = "1y86inslxi4y33qc5p7x3gbx3n4d99n3dpzq0ap9ikrdcxgwd0ds"; + source = "07i8ynjbr0w8kp1f3pm65hnx766kxp2bqdps1ln0qyzhk2iidppg"; + }; + articleingud-38741 = { + run = "1ydj9dysf2qgk36ssp8pdr4c6dh5iw27kcw4ykzkx22ih5an0n01"; + doc = "0mkv9fq0hixkjf40la5na4dh0yqi3adgr8fyi1x74sbyi78gmfhn"; + source = "1h1w0fxa1cyw5d943mg8na7hxwyq2ki40gql9y0f7fdx31faiavv"; + }; + arvo-57213 = { + run = "0i9x668hjr2b6brdysl35rxgjji1zdsn6wbf21ql0xmn53frk4ic"; + doc = "0g4lpx8mra2qk9c1qwijilscq48n5n252m6s0hxfraj5rshrhc1j"; + }; + arydshln-50084 = { + run = "1f2y02l7fkhrc005ib1s94z0yxgql2m515zy3mlx6ba4mqadh9c8"; + doc = "0xw13bdw67n2nsahi85bvh5p1xrd8fpb1aj79vss9zgdslzb6j4s"; + source = "1xhnh7jw0sxy6vkw31gcxyxg06dm7bgw0njsfkailbxgndwcp6zs"; + }; + asaetr-15878 = { + run = "05ff3l9qhk7bc2k2kk0acpyy4fxdfh3crngj7lgnvwbxa5wh8dn2"; + doc = "0whp9d9pas44j775i4vn7zh5ss0yr4q5vbx51kz768zwgs5x8222"; + }; + asana-math-59629 = { + run = "1776yxdxk83540gwr0qxk3qs7yfv4vysxyvcwx1djhd1vrwhkzh6"; + doc = "17bb9m4fsmrhbk1hbqyynkvlzgcq45lkg68kf56zs2c00dxcdhp1"; + }; + asapsym-40201 = { + run = "1m4ky7x5pavf8kpyqrjqa5ara2iwzqc3aglvbsjblny7n2az3dr4"; + doc = "07n000aa7yjvx74vspqq1rrqw444z3f9pkwk3hdmmqm3p1rrw912"; + source = "0cacvd85rh2j0j6d1zjrisffwyzh0pphzsgb5bxfq3dzycsww0iw"; + }; + ascelike-29129 = { + run = "039w1lm3bpfrrb5inrmzklmr9yic7x1fs0lpjl8z49mijvqsv1df"; + doc = "1hb732idc36m86qgss7wwsyqj6zgirh9qvf7ybpmqz6arwsml46j"; + }; + ascii-chart-20536 = { + doc = "1m2x7iwz80plq6hbhp9xia6bp8wbi03iifs0pkr7ji3gn8hqgh1r"; + }; + ascii-font-29989 = { + run = "190ma5qhshn71vhsjzjb2gxb54qjabili5m9v98vwj173sdj9cjv"; + doc = "0nrnfvrcgwmv46x8f9ybk1gv6vgv8jgzhc8480fl7y17dii3jl9a"; + source = "0xcv04inym8230k2ljb16g4ajj73gggg13w6zkxxq8a1fa9lwrw7"; + }; + asciilist-49060 = { + run = "0ni7182xwr3ns1dk8i75kf1cw9wpfagrf1y7w20hk8fpfymx2669"; + doc = "11gyi8mcqvfpn07f4cypv05f77vhzr44zn6y1idlbz4mgzjw3kp6"; + source = "07k13s9y5nvbp7w1ylyj3mlpn80682yhxgf27hz9aayk3hs77d58"; + }; + ascmac-53411 = { + run = "18hw5yyqbr8ji39y39293z7a70czipzw00fzfsqcrhgdlid79sc0"; + doc = "0xzwc7kw7hqpcmisw5wm3n508n4zr4s207pizdhfm2q9mjij0jvr"; + source = "1rd5qmy9miximwv1n96h6djjmd3mdgn4b0955marf2k457bb71d2"; + }; + askinclude-54725 = { + run = "0s1938harm9sgna3cggllpa1g85yl9jv2wy4b4c5v6fksiivxzs1"; + doc = "0gkbk6j2wv05kgfbjd4mqx5k7rc22bmqn47vk7pvr5z60dr4nay5"; + source = "067dpl3v0ipspfm5f2fmcmg5cb6lhqg6n8216id9j1blir1ys3mg"; + }; + askmaps-56730 = { + run = "1r6lk9szs7jm57b4hl9w4ngb9dqcsi6pvp37rcnwnznj5m2daj50"; + doc = "1ryw8yy59mfi13rrwgrfg5y5dy3cafz2a3f8zmq5fbl7zhbylq6p"; + }; + asmeconf-69742 = { + run = "155l5aw8lg2krmpvhb0vl7y8lf7n1mgd2x4vpbx8dhji5laxdxl8"; + doc = "16dwxl3ay2p1vnqh9z946aypapb2r984p5g861rhxm511wm3h2hk"; + }; + asmejour-69722 = { + run = "0km4df99jkm270frhsf11zwrsv2h0c7sbfkyikfvjvr5pxvsdhga"; + doc = "1br007g5m7wsrrk6xn2b03kfpmlcxzazyijghsnqx1sfn4hxf84l"; + }; + aspectratio-25243 = { + run = "17y22131b9nzzq1skfdyr7cfcq823nqn3ssqrbc3bglggdfibf2p"; + doc = "0mw7v1m9afyk462rjcimvwwikdpj0f4gjw5pbw2g9c60vbjhz61j"; + }; + assignment-20431 = { + run = "1nxgpadadzf3d30ydc9rndwm4v53s4v10a6sbqf6yfqds7ry13vz"; + doc = "1wyyvay22r68hfspaqv0a43s9icg8a3pj8wii3snn90svbsjfajn"; + }; + assoccnt-38497 = { + run = "0im3x8im6kkjmvibh57hkn8nljcfc4mzp0hpimiqn29ys1yrhj98"; + doc = "11p081b0b6mcigqsmvgf6kc9ik2480c74madjli19rw9i5nzf0vf"; + }; + association-matrix-64845 = { + run = "0pa2js62lrqvh9ghhv5gylaz7jxbh6qwkfymr3z99w1isl2iazlz"; + doc = "00va77pg2xzf59757sdq7ql7lkik3ifhf1l74lljmimqvql6zj0i"; + }; + asternote-63838 = { + run = "0a3a5jjhsbvi7kdkp98kwa0q8j9chrq5azfg9vbb4m9kfkbafafh"; + doc = "1xz9p6g5bl3qa957icsyjknni7bvglfhvxfvxg83x8bd7hvh7ylh"; + }; + astro-15878 = { + run = "0cjf53gbin9z10g63x2kingsclgnwr6idc4x0m473hf4fvakk34x"; + doc = "07kad1fzv7p6inh7nkrq6b34c1792h4v49rxaaxqyldmf4pwjr84"; + }; + asyfig-17512 = { + run = "0zy0vxxmzg7nzwzw8z84sym5wdfbs7kyf06r6vnn05ga06wwn603"; + doc = "03nby6d7cjczj3irqql5wpxs4fx9z77bb03lys5j1kg63ccq5msp"; + source = "1rzicq0w7byrxqvv8pympxkwq575zqs01s02z205azaqdgrzdhss"; + }; + asymptote-70583 = { + run = "0x9zb9jgxc31xj5a5gb3s2ba7348zni3p1pwwd1lp7ldilq76lca"; + doc = "0hcv17l67pv91fc3nrhx06s7z2g0imrljx0lxi4k6lgnj47dmnhg"; + }; + asymptote-by-example-zh-cn-15878 = { + doc = "0854pbh3rm21rzzbhai7xijzw26qawffj4wd3mrwbva1406106ff"; + }; + asymptote-faq-zh-cn-15878 = { + doc = "0z09f5as68dz66dlj370xfx593bv50ihxx10zxmm9lk27ymr52hb"; + }; + asymptote-manual-zh-cn-15878 = { + doc = "047l3bh8vvk185wkazyfw4dm6893xpa2ksn5vfc57r5rv4x16wmb"; + }; + asypictureb-33490 = { + run = "1ls5ryz8c68liyyyqkjvmzyyblh9m8c5b62igz8frrj4m5vhi3aa"; + doc = "03d4l74m9qwjvl71xfkhspf0d2xaafl9d2kcqhmil5yg85hsq069"; + source = "1jzpagmnv21k761r52m2f708275k4pwa9sqlp88l6pgv6s6p4pab"; + }; + atbegshi-53051 = { + run = "00r3ayn5qa2p2j4hyxbp2mm1aqhbkjpwk15gan1b4szmm2wk54h5"; + doc = "1pjfmnrssaw20sdq801x9jb9qh7s8l2mnhcvla4bxglckgwz2na9"; + source = "0b0sxs3jpc6a9pw1z44iv2bwvyxm02yfl8j0mc5qw0asdp773vrg"; + }; + atenddvi-56922 = { + run = "1lw42kgkviwh5gl0fnc4kp8x578bss6fj4d3jqp3jh0iqj53wwf4"; + doc = "1f4210s4llsbgnnf6s91j7gpdajclscnqlkrmrsmiphhvgjihcws"; + source = "11sxy0c5vmbf17w1h46dc033lisp4aa8sjqfi1zdzlp7ha4c6rr3"; + }; + atendofenv-62164 = { + run = "0r5y45wzyhynl6f1bsk11ha50rhzidjgqynpz0qqx55pwj1lvqg8"; + doc = "15s783gvnj5vd7vhgvzvvxpszsy065x20ag5i3kmhd20rdm8sy6y"; + source = "1j1z580b9v2w8b1zqjan8fi5smnyyagnhak262cx5fi212dzivnl"; + }; + atkinson-64385 = { + run = "1gcvnnj9f7vrf96lb6yyv8036xjd52099h4sbs3lhprbdb8gznrf"; + doc = "1k994x0xmc4kl69qabrwh3x5rwipz77c730834bnv98annnbjrwq"; + }; + attachfile-42099 = { + run = "0akvm9al5rz67b81bsl0k92gjqwxjrd6dwxj9qmwrb9c6pd311n8"; + doc = "169kh9zrf5ykal633zn8n3i41dqbyv7jdrm905a7q47icvd4ar03"; + source = "1b9s69vvclpvdm02gi9x7zv5mf77q68xv7zd784cldns8h1a553l"; + }; + attachfile2-69505 = { + run = "0gljjngawrnb2825490clcvj84gx0vlxk3g7i6qxnrafbzx4b8g3"; + doc = "0kcn77x16pa0kchcygviy3if7qqzqx5w6qq3p91b3zz39cxcxn09"; + source = "0rhh83mjva074c3q2rqjc67r6z1any4ffxkd1y0mbhx879j9wn78"; + }; + atveryend-53108 = { + run = "06q5b28q5m9i29yqqx1l1y0vjc20i0n6p2k47z66jf3s6abrqnrj"; + doc = "1nn08cfh3n63xd45rkmzvdmf5580lm7kfd08z9gawgaibh6nii80"; + source = "0fgzxwc6jlijf0mzjh7pm2afd85np1rwy4xziz26s0gi6i5pdmvp"; + }; + aucklandthesis-51323 = { + run = "1zlsa80vbby0jp46jicygq2fn64f1mgppbw6bq4qm9ncsapdz92j"; + doc = "09n2pdviw6xvh9ymka32pyscn16vgcxbij79nq0hxn6b6msxnlq1"; + }; + augie-61719 = { + run = "08m2n7wqqj1pvvrw6q8j514mgr1168brckm1dl44yp78afgm6vra"; + doc = "0ygmvlk1h6n071lq8jnlpdqaxhcxvwrzf1kgvacj78kijaqd0lix"; + }; + auncial-new-62977 = { + run = "0nqz71wdm0w34xdg5p34ph6na12jlvxz7v1bfigjm2v87pbn5lwz"; + doc = "1dw0gbhk3hwfapdzysf12kz5g3dfsr5pxpnga9s1ksqicck26b5w"; + source = "1gyilj1ldx6c5lfn8vrzsbss4gl77grr2mw4v6xhimv2vsyp29a1"; + }; + aurical-15878 = { + run = "1ffl7fji5r74k80hl3d62qj7f0h439jb7zmsv4f21w7b6cfyj74i"; + doc = "0l19hfh5g2dc3digkbjvrh90h3vwx6zsbadjl7zzzlnhsaq44nlf"; + }; + aurl-41853 = { + run = "0dxsldgnijrjrm97a0k33cliqpl09b70xf2dccigyzyyps82h0d9"; + doc = "0rw2vhp4r9sb6pliqc3xxjc5hsznz4j7i2w3qk227ibg92qx4a8z"; + }; + authoraftertitle-55889 = { + run = "1gikfjhxkz21qb32hrhyrdymkn29x7bjcsml5clsw4cgi4b67fcq"; + doc = "105sk016n6sh7llhk3fjcz63hbwms50l7906qxdddjq67qpgrvgn"; + }; + authorarchive-65777 = { + run = "0f9x0nx0n3k3hj33089np465jpikrxn689zgp0rdq54gh9cr5wvm"; + doc = "0w54vg8rfpb8c9cc5aaq0zgz6vs7qahzjfq495bw551b3rm7cia5"; + }; + authordate-52564 = { + run = "0caz9s2ra7qqlzdnahhv50z050iyp62ypyrfpbj1p9ih7zmcdg23"; + doc = "14wxjyrighkhg51m9jpdyjdwz2ipz4zr1rfgmdnxbpg31rbg2x7s"; + }; + authorindex-51757 = { + run = "0dhdd84hdf4iz67acyarzf0asb7c8dmp09s286rq0ylgn7lb9xx6"; + doc = "0hhffkmldhhm46xi8d1bvjp5v15cg5kid383g7s1dbjxqyd9vbvd"; + }; + auto-pst-pdf-56596 = { + run = "0f212m856rdfzflq1bw3vfpy38d8qylaa3vqnfs595h3x5r0dsx3"; + doc = "1f7kj4rga7x14w8v3cjn7lh95inliy2ms0q9vnfnv95jvp5a7kh8"; + source = "10l3ld4jvpg1982f2a80ssl4hkdzi9szxv3y8l1i13pdfdhirv91"; + }; + auto-pst-pdf-lua-66637 = { + run = "0h17431shl7g0hza9vf20v86vfpy7w9wdyc09ir3s0mi5izhh4hq"; + doc = "07bpl01v2f14csvqqvyvjja79z3x34q6mkb6qck44s66ii5dld0h"; + }; + autoaligne-66655 = { + run = "1y4xlxgcj82g3cvy23wyacm91kx1fnc8b9y0r8vhf6pwvj4fk6h1"; + doc = "0srhzzycrh9awp39cgfqzc3z12vxj33qgbnpprx06y6bx94956wv"; + }; + autoarea-59552 = { + run = "07fi6gdnl9srrhmj5v28kfvjs3skf8g693hbdrfzjkyw76iji46x"; + doc = "1nyrgpvkj2bplf0psd66mcrhz5j4bggvdmr93p77ix4vb2fgh239"; + }; + autobreak-43337 = { + run = "0dzr4wbwy018f97kzmfvza9i7m9mbpn97mjzi336sgq440v01hrd"; + doc = "099vqvdh2djk7fm6y4x5m7cma71b2anpqkc3lfzjazpv15kpnlq6"; + source = "03kqdrwznx3k65nf5z3p2z6d80rki7w4v5lhdfk8rin3112gn68r"; + }; + autofancyhdr-54049 = { + run = "091dwnql2fy1zfkr92ww01hjylx6in8ay56gq7ywjlwb84r6sbm2"; + doc = "04fjrbsa9nqf5rj0gqgm96c8wg3dl8cpfzyilqrfqmim26rviskp"; + }; + automata-19717 = { + run = "0jqsvxn561fwz44gd0rwxyjwh1nanpmfsvd3kslw87h54hzlizf0"; + doc = "1w428b0wyxf0v7bf1yr9dfm4x8q3xas9fgv1q9sxbhgri8daj8px"; + }; + autonum-36084 = { + run = "0y1x4j7fyssmhlqf9974yprqxvplxihbs879qiwa13x0zmwhnp55"; + doc = "1a73xg2csfq051lnjnxkplnpfvl9vhfm05qvgxz4i79qmgs7a3b6"; + source = "1q58d514bdm0mbqkmyngxh0nzzg7kxxc0z7bllnlkqb99h3x3xb4"; + }; + autopdf-32377 = { + run = "0fd1dw6h409ffn2prcsmq4rsgjshhs9if0igsz3ibxb6wkngbphv"; + doc = "1rf0l15pp475f41si7qkx9rw7n6938jj2k1wybx4ck7pf6hs7i9l"; + source = "1vw58d9g41ra5j2av1vdkzqhh7g5nrprr27qgdrn8nlirvwzbx9m"; + }; + autopuncitems-63045 = { + run = "0wqvm6yyja51j7yjyavjn0p9i8y2a8aqrywpvrlaybw2g5s2k3gc"; + doc = "16hk972a108wh8qsk9lg3ai4cimwlfadmxy0xi2aa2wq8darhsqn"; + }; + autosp-58211 = { + doc = "16szmbffp9pwzv7zq3l4yvnsfk4m7w57wib7pqpgv1v5fzhlaahs"; + }; + autotype-69309 = { + run = "1mvy4szbj2bms7wsbxk5abaw41zi97lk21k8j59z1dkrrbzzq69z"; + doc = "1s3c3zpl88rlcxrlmbmpgl4f6dyyryfs7gy9pkm3q2ayva3d4bwr"; + }; + auxhook-53173 = { + run = "0c92za082vzi47m5dlwq8bss4jjgfzmbbaaz5j1yb4ngli9qj08y"; + doc = "0l6xga3hr1lvhgli259ma78rq394jplnkn5j8fgrfapvzrhsh2kp"; + source = "18q0lawz00fbv9mgcbp21zk6fm1hsprmrkvhnl34ac1qj1rx6x3p"; + }; + avantgar-61983 = { + run = "1200x40k7wprm4n7srxvgrax2l52vn6d5ri2x0q7zbzzsfxfzkym"; + }; + avremu-35373 = { + run = "1j7mg5in2jhpb07jpky76qriyb4m0qq0rlkacs6amrhh57299prx"; + doc = "1p7z2vj25fnx23rl6m76h82q8kli8nfl2vail4mpkx0brimn4j7l"; + source = "1zz9b5d08i3sjj74q609k5kyi9nr7yyczk00i3dqfz5x3rlyljsm"; + }; + awesomebox-57349 = { + run = "0bjnvgqj4g1i6djzzzdjdrnlvli3dm1v2w2mi59s5s8pyc5pag60"; + doc = "1m1cjic1dqf2zvym1ma83xy66b5irqma2fb6fy0qnl31f9bfg6x2"; + }; + axessibility-57105 = { + run = "001z3ra1zgsrvhlnvg9lmvc56s72b3kip71c1cnpl6qzqcc2y6s1"; + doc = "0s77mr42dli8vfc9h6gslq5g103rp5vk94hx9cw3w3shxazib73r"; + source = "1bh92wig3grw2bkkdd3fxwlky7rrfabzis1rwwdzgk3bmmrl9554"; + }; + axodraw2-58155 = { + run = "0dcls4qqm7pl0iyg7mkflqa2rd86wsafshx41xlg62din6fmybwa"; + doc = "1l1kwxd8zq5xxhw7zyig0b8nna4fwr6615h4jjwpywcaqsnms6if"; + source = "00nq53ahf63lazavijry572yii3jix1df9c604xnqpga9z22bbq2"; + }; + b1encoding-21271 = { + run = "104n1g3qnx2dj91zylj5byz7yaai6dw6v0pl9240mgk1h8i0xr2p"; + doc = "0sdr25vv9svm3r6yqyalqza4awr8k26g7fmh8078bbxkddycchkm"; + source = "0mbzrasvppl17965dmkp2f9cbi03539p83989d40kl5p11ih6dgy"; + }; + babel-69742 = { + run = "140xr7w35pgsd7sgj3sg7ar2dpdn2nsqg0idkz30psxp1j6h4k71"; + doc = "0z6798rpjhxnxzh4756flb50m1q5431gl26q94szmav83pipgn61"; + source = "04cqlnixmvnhz22lsn7f5jfpr2r1vhw1m27sda02q3nswhzxvxxw"; + }; + babel-albanian-57005 = { + run = "170mxpwnnsc1g9s7qnlhjcryw79cy72d8c4m8bhr36i5c78my0zg"; + doc = "0x5z4gfi6m9h5gml6wxq3531i1k0sfqrd4hxrzbz68ijzyjnzk5j"; + source = "1w8bassqn35bxyhpw6cg65ya64x1dn9h35p4fxclcjjhmv53xgg8"; + }; + babel-azerbaijani-44197 = { + run = "15siklcjg7wmpzgy059d8r6ivg6cib5by9a4l6n31c9pxncj7xka"; + doc = "0dncpgvjqqa41rk80n6wif8nzdqw7vkxp2056l6sblzxgh87fvz0"; + source = "176r483598gd2dfmfc2qhmknj913n3k6rk58mpfq69af72jq5rjw"; + }; + babel-basque-30256 = { + run = "11a26db60bwfhbx6zj42yrzzvf8nn8a96nq5mpw29xhxlpbhrcp0"; + doc = "04jf1brw3ljipdyxv3d001slc0iggjmq6hkr4b5jsa3z8gcivzvw"; + source = "17mz3bqi50ayia4nb2ikf60vgpnwl3i90gfbaq4692y354yvlnfy"; + }; + babel-belarusian-49022 = { + run = "1jad77cas2x8nlkh72rkxi3bqdlqzichqkxd3bdxk9bsqfhvj80s"; + doc = "08lb1909wm2r4psppcbn1sf3zg4a8qp5y4i0b6kksfp0n7v1nckn"; + source = "018jayyq2mzb89l60h7f9vzx2zgy2skklbqqx9zs3krg23xy2i6g"; + }; + babel-bosnian-38174 = { + run = "1q9nplgxfyv877y5q5hm4g6i5dla5c3a9s5cax27pr1riccgh5dh"; + doc = "127g44ww87gaizsak6lbmbr9yhjhy8k32zkah3189yi21w7ncs4q"; + source = "0mlllv7k35vyqpa9r4yz6y23cgfarqbyk47blfc5b3dill1imx6b"; + }; + babel-breton-30257 = { + run = "1qqayklpx89qmva8j6l6rhwinr0jik9lq1sgr6av9w0qzy9y1ifd"; + doc = "1q5xlc5cm91wa5lpg5wysqyhiq71ghf6sb8b3syxsqzxdicqwqrl"; + source = "19rafbvhd4fp6vb1pbgvaxrmiw1miw4j2n0dsi8fnmn1554zb25f"; + }; + babel-bulgarian-31902 = { + run = "1lflnrgn8si78aj9ms8lh9lb07maghvqlnrc7i3lmgn1qjrlvzqx"; + doc = "1lb0kxx7bxrllyb7sqs1gjkqv7414jvs2kl06cnrdwsrfbr1g0kz"; + source = "1wck40na2vczwni0kk1a8c1naczrcwx8sql7j0la1b4c5dcikgxd"; + }; + babel-catalan-30259 = { + run = "0brmmav2iwsw46p9bhbq5nc09w8wxfbsnpb6nrbx7zx76h599fwl"; + doc = "06lb6gkmidlps7vs7ihqg94jqnpxyih2dkypbr0j46whs5nb80cv"; + source = "0l4c6wxszawd0a7dd7fpljkngmmh1p7i7imyhgfsjyli6fpxmah0"; + }; + babel-croatian-35198 = { + run = "1d6xi12v3qr7gsknkfcb77q0wx5hyqpp0cyqq1spq44yf507nnlk"; + doc = "1h15dzgmm5230ypaznk44607naj611n0mrhp9mjabjdqbsb71qdb"; + source = "05zhbrvq0iwg7vbccq59rx2yfbaznixgr5nfh37k3584iwaqipwi"; + }; + babel-czech-30261 = { + run = "1qk6k4y1rkay2fcn39i99pxsip4k68xac4axznl07pbgx46v3h64"; + doc = "1hvp785ly718fd1f0ig092rldcqglpb3mrygarww5bnl6fpp2ffm"; + source = "1274pzgdya7gkvxjmdm3v5rb7hc0sj6mqn9pd8y9418yx5449spg"; + }; + babel-danish-57642 = { + run = "1q5gl9dxl5qky0g263yfa4gwb992ngd7vwsb24cw9fd513j50b9h"; + doc = "1xmp93khcz4my2i1wrnzcb13bnxd9mnjm50s2jhbh8qaiywls7m7"; + source = "00dryb078fqckqjnxa2riq478j6d5i28j5cclv4bw7dn5naa3lz7"; + }; + babel-dutch-60362 = { + run = "195d71rs9raadkqb0c1v3i5pm8aw37gxfnk7c6ic59ib0fvgs9j0"; + doc = "193gln8qydvjwsj8pwayfv87zyg3wja99izbf4l7gvhh3b54jwjg"; + source = "1mvmis59s94j1p98nqp07paxzviq6sgnqjwda7w63j4fnhhsqc3k"; + }; + babel-english-44495 = { + run = "1nb3c0yikcfhlpfsqgx2c6549ra7wcbcjs614d7gvk5fyh0cds8y"; + doc = "0jfjdsiqkg0sfy326nz6rncq9sk1ssjzb0w2frybkp348gif3rv4"; + source = "1q9bgs6mdgjlg3pv2ddrwbnfb628dr6rhdsgkf7rnwm5m6ncxkxh"; + }; + babel-esperanto-30265 = { + run = "0p11qa0d496xb6hpj6qc2lisr3xk3k1rbnj7b88wcivfjwf5ypmp"; + doc = "0ra2iyai9vyjksfsdcv5b9ifvqmhlc4aikyzf3wq073sh9crhxh7"; + source = "0i1hzj701rii0hbp05h25633vs2cbmqgyc113m3g78i24vh2rkbx"; + }; + babel-estonian-38064 = { + run = "0j7z04mcvjk72cad5l3np0x862nvgh7jxha8mll55cf18k9aj64j"; + doc = "1nmjvvms0zijpc15rs0fkzli3pmidc4v4kzfp9sswvh43622p1b1"; + source = "0x2a379m1b1ll16dr62dg5ai353p362dw9js4n0dn3x2wjbndmzg"; + }; + babel-finnish-57643 = { + run = "1z49ix8w96walkq5p915amii7n73ahzhy4ijxa1b2bb0wzz4b1l7"; + doc = "00aij1bdybgcg69995mjrdddzlr3hqbhmg8q9nq86cd29y1gx029"; + source = "1930zxk4l6k5q4wcbvpvijv4s0gxp2mkxvblczn4gcbar10vfd4x"; + }; + babel-french-70261 = { + run = "0pqcsbcndlvjvgzafnbcf01qk4vs2yj01lz18wj54g6bv2wfkpkb"; + doc = "1by7z9c91zisvznivmsw1n5xiqm4373kjzjhvg8jyf6w4ispx0xh"; + source = "042nk3n8pjbinp3i167zdqjf623ln6pnyafn8czyg9xyman90c74"; + }; + babel-friulan-39861 = { + run = "0gfq4gyi720kp45vcbial0yrn9i2jyx1lzh39lci0ga77y01j3mp"; + doc = "0hnj5scfsvisf9k6iwh4awzqccm96apxrbwzlknpxn7x3zv93l0k"; + source = "09bzwmc1jnal4ikxciwas8y342rix0xksd7qcp39nwajyg8njdmc"; + }; + babel-galician-30270 = { + run = "0mk67w9lhp4nfbhrzyb1ngm3rmdknvv8nlqb8601hrglj4hzmrda"; + doc = "0pzpk8d8hhvgsjssy67hpgvjb6sh3lfbn6f5cbpqbhxrgllhpgva"; + source = "1awy39dlr086hc807zc57l7xk6zqbkwrayvzfv8ch1mqnl0d3a6c"; + }; + babel-georgian-45864 = { + run = "1mdsi9mq6ka6ahrgnasik0sxkhq97qa223q5iy4fkfccan30kb07"; + doc = "1iw1hbn5i0c7xhvcmap4hgiaar9rznr76h2mrgya8xj0czppxwv0"; + }; + babel-german-69506 = { + run = "0k82lr91vdc5kfq7wbhl9sw5sl78mg4kpql81ga048rwf5plhj4b"; + doc = "08ghl1hgndjh6pj2c0j78ypd055hjn0mkqdw29727qmbxs14irwq"; + source = "1l0qqnmajg4v1zkmc3gvyhbpvzcmwbx6lr8j8pbmhh6g9fdnmbli"; + }; + babel-greek-68532 = { + run = "1gii2nbgnixdysn2li0xw5acsvimq2r04rpkyhy16hnz50cm4shz"; + doc = "07l23ycdm79ci76zkfijpdz5mlcgd8qcbq5s4rl041c8d4nnfi5n"; + source = "17n58ldkgsqadbd1agsaf0bwv0pg73ybfql5bkw3ky9k9ck9z24c"; + }; + babel-hebrew-68016 = { + run = "112c7lk1xihspknd146hgp9nbc7wfxz36d3b887f6q0mq6hf03qq"; + doc = "0w80r70w90szg4rlzzj2132yfx8wbhxranq8zk49far863sn658i"; + source = "1srid6v4s1r5w02148wgfzhs9jmmwzj23fhx9zn606rxxkgakajf"; + }; + babel-hungarian-49701 = { + run = "18hc7z7gki6jyglywmljlf37aff3cndszywa32kmprbn2qlfc87k"; + doc = "1imn8zlk18fcs2nsy4ml20xzkhpmv5lzzh28i2c2zv6klm1kmfba"; + }; + babel-icelandic-51551 = { + run = "12v78k2l9vmc07mx0wy8g0mjwryp1jf6ij06502h7jr55my6y5s5"; + doc = "1mbgan8gv7hld0jym7qks13yph9lz0clkgpb199x3cdxmbvawpb7"; + source = "09wz6pfk3vb4c0az1lgq35vmzf8v49iz9cd1ys7rhdssbcz6flv3"; + }; + babel-indonesian-43235 = { + run = "1nmz2vl80cs7d58hl22y9m2hlf4xzdw2brl2z9k56w2mk6rg510k"; + doc = "1bd7v0wrp85bchni7sbn4b7manybq1by8sb4bhzcmbw4b9dnc3yz"; + source = "0p89lrfyqfhmnvijf9mdhmjsr8wzb4hxr40rf33wn50ak3m8gm7l"; + }; + babel-interlingua-30276 = { + run = "0zbyfhfs222i1wdsfbik33m1asdaa71rg700s9vfbvfdvjcikciv"; + doc = "1z7j47zmp5y3406da831kwxqq30mgxh2wwxsrkdjycnsswsywgv7"; + source = "1y3xsscz9zxaih3752sk6jhh77ljnllmikiwgqb3xsvzj7b5fs8v"; + }; + babel-irish-30277 = { + run = "0ih96jfa66jn1s8c3dpr0631pa17r9sch1lv1qqwpmsridp8dl8q"; + doc = "19k6gps25d8i28vcpbp59k47mxdzjn9d89amccr5si5hvg1c2qnp"; + source = "043ias6pyv22g8ywv5krlzj5ma98wpi0r44lmi4gfpqllkay5g1a"; + }; + babel-italian-69298 = { + run = "1vwps1b50swsx1ww2znwzjizc6gn26j6mx470dws76w1njjfgp83"; + doc = "0d21yk97jakmq0pan6q0cx53bl6945y5mxckzqch285fy8w3s0ba"; + source = "0b15934yvmk7r94c9cqjhlsdpd8c9jp2gyc51cxksh26sw81w5xf"; + }; + babel-japanese-57733 = { + run = "079bhnmpcgaml555dgrmiigack6qfqx20fy85c75p4fsn2c93bmw"; + doc = "0a479m8rq8l02q1w73d6lpfpi0gs5qdqfbl132483f2wwzznvnrl"; + source = "0kjv78h69422dj1jh7s74pkdr3qrdxxbzk3czzfsc5rax71x9jhm"; + }; + babel-kurmanji-30279 = { + run = "0jp1aivn0pzn8yq1q79gvzwdlcz871apjg6yxx9x4wf8yqr8q1g8"; + doc = "054b2pj4iv2mnaffw1a6zqihp18765rdx6d56k6vj9kxf2gqrz1n"; + source = "0v6nh14816ai72rqc7nxd8k16bi75dvx2kbvnaavknxyr53pjwb3"; + }; + babel-latin-59800 = { + run = "0k092q6cdpd5qp7kl0qcaf4idbsfrbyb12flq61k4xk8yyp6ip1f"; + doc = "1p0xrbmknfffm95zmnldcwrrpc3ngrlvlnfzppjql1va8vk04s3i"; + source = "1sa59mvbjspmdc5sc3cdix59y575nx6pgc878lvlcrfl70a7hvw5"; + }; + babel-latvian-46681 = { + run = "127649mzw9jp35mq1yqpavlvkvcvxvp61sn0yl4nvhn30d0dws68"; + doc = "1dvcwyqvx5xw4fl58accykkmd9ksbg5a3yqalb6x86hdv2fgsnq8"; + source = "1w8w1ayk1ixwsixlsar5nmhv70fqahx06ydraiyz543gm3vrk6br"; + }; + babel-lithuanian-66513 = { + run = "1akp69n8i19kyx0x247i4nw66wmlj3d3lkm0pmqz6c4zv34r9fii"; + doc = "1fr3m5b0dcrnrqdb0sm184czgkya8xbx0zbj9wlsnlh5y2pnvyds"; + source = "1dchvyy3zwa18x2dsz4ww9hjnkhca0cg65q85jw09l5cz5v005jy"; + }; + babel-macedonian-39587 = { + run = "11wiv5aw0k77rvqwcgh4xdiwcr67q42rwq0mq5vcpfz2hb0v8i6n"; + doc = "0nsvnmjx8397xb02h2l00nd7ynz11f9qiqrpim2f18r55qmr0hb3"; + source = "08z4ca7kja5kb2azf3whgh0w7fabxs3jcijihm0vnzhb1809napi"; + }; + babel-malay-43234 = { + run = "1h4n9m38s560iw86cr88xzflizkd37nhgyl51xvniyvkz6nkhrxr"; + doc = "0c0jriwwkrll6sknd1c90bhipcjr3inc7vdn6cd2szlbx72ir12a"; + source = "0r1gzyi40yx8ikxkrdqa1hg33vciz1qbvibd8dv3qbia7mm11hqv"; + }; + babel-norsk-69603 = { + run = "0v660l9s3nc6h2mc8mlhz6jhvzf85s3qva7nldmnv9fw90f64s10"; + doc = "0i4938n2ax9p78glxrsam2fbqfgsxk87ywhs9kci51ph6n70irds"; + source = "0rz3rvib2rbbmwar474f0n20ywpn6hl50h2w4np0djx2kyn5hlls"; + }; + babel-occitan-39608 = { + run = "0s13mw7w48zq91kcx3pk5rzfg7d9dcjr8n8bvqsk5dvs0k4hk1dk"; + doc = "132kk66ya2j6d7cwzd3p21qvjqm96dvb83ny4yj5q7vjqiflkn0z"; + source = "1slny81jf77g32nxkvbwr429yi51gfpia6d1qllni978ivc9lagx"; + }; + babel-piedmontese-30282 = { + run = "0kcb4h1xsm8qcgqmqpgkqqxii5xvzpa2dvx6l41g3025ybbp558w"; + doc = "0c6ql4g2i43zxx2ffnvg2rwac5hshvwngj7999g371fndhfzs31n"; + source = "1xqfd8s659plyijsc13014zjhd9ndpi82jwgd597lw5d9jzwxf6a"; + }; + babel-polish-62680 = { + run = "1n1cz0jixlyw2zbcgz2ik03s5qarsh4bl12krsqjk2knqk1r456n"; + doc = "1yydj18aiaa90n7g7c6widczi5kpslhcy3l1bxnq1dpx0g8wi94p"; + source = "0wjkcbs2ghwg8x6mp6blihfrygc4ssy7nb1adj4vz3wx63li5j04"; + }; + babel-portuges-59883 = { + run = "0n4sz1mdwrwq5864dca367w15mzln7my995sm57pps1b0r8l21jb"; + doc = "1is448ri7d5qgypmphqvvnrgf1q17cqa81j0qqbyqy3zdfqlzi7v"; + source = "0279qlf36ji8qyagkmbrisfw7fz519ybgh2di42iqv2mwkwzrdad"; + }; + babel-romanian-58776 = { + run = "0pmjpy2p30299a10njvnpl954kdazir149b3aggcljaq0j4zdnzz"; + doc = "1wgimmy2vwg66kjm0kx0lcx3zvvhdczxc19nnwqfbwchbpfhflyb"; + source = "1qq1j0hb6vp8cdiigc425m6k8wpf7rxzdcgq14p064xlxnmqrbp1"; + }; + babel-romansh-30286 = { + run = "1hh4ashx2fban828gj37y46rm0q7w2j18785in1fwpir3cjcab8b"; + doc = "0w4x7c9vws6k799ilw2w1p5d4qv2z9wb3bkaixb0p4gxmp6khamb"; + source = "08v3db9g43pviw7fi87gcgj5xb5b2f07sll1slcvy94ffnmwlpww"; + }; + babel-russian-57376 = { + run = "02zvg65m1g15a1fbin635gvx2mxw2ljv4srd0wjjfcpdyfg53sl6"; + doc = "1bs2q9xxqyjvpqxr3zfbmk0lkf58jg1ksi5a9mp07vznzplz01i2"; + source = "12ik2dwkih2g0gqpbg83j0kcfwsb5grccx27grgi0wjazk0nicq6"; + }; + babel-samin-69604 = { + run = "0sm3288n25a5fvz05h5n39vvbpfp3kzwsw23qc3ijxj68y6xfbyq"; + doc = "15v9732002svqd2s63wxf00wsn390xh683v0kzi7fyw5xnh8s9yv"; + source = "16i3icn2kbkpyhij67mqdnqrx64jcjg75gkyrjgqj8kdg9kysx6q"; + }; + babel-scottish-69610 = { + run = "17xqq3526a7f0xkzdyp8phvf3a39b0pxzsxvxjm84b4yh28yfhyg"; + doc = "07krdfp181jhc7vn3w15qny38vnhhbkkmygdkh0kv6xdycd9096d"; + source = "0i26k9qlpv0qgzkxjs87k9ph91gbkqnm2w2wiyqaai77adp15dlp"; + }; + babel-serbian-64571 = { + run = "18vr5230h0x8hz9zizpsnaj56v6aciaa34p2jb2ykp59r709iwiz"; + doc = "0daab33jd26smid0m38fh1m5yarl1vnc7qi64am6x3rl9zy55a2h"; + source = "0jqj3bjip522w7swsqnpqls1mgrx304xrz91kz4dlqzvqw72f2l7"; + }; + babel-serbianc-64588 = { + run = "0pqy5s7pgbanlgcw9sgbig57mcs4i2yfydlbwz8xrrd6ysc160by"; + doc = "0pw76idmc004nbzb2ax3shv35fzy44fiw7j1jp4cgaw64adr1a5k"; + source = "1b4yc7y7d6asrx7lsmgg7wsdx6wfw1kvfdnc2xls7q6naja8xcws"; + }; + babel-slovak-30292 = { + run = "0724h8hnc4z0l0kkafjczzc69rh6h825wn0srfpy1zmqimybvaff"; + doc = "15v2hdmpbivcdwrm3mlyb3bb3p1298swq7vwxqb9b5ylv8907sd9"; + source = "1k4w34wq8n06ck9z81wa490fy52a1dcgi98pcvdmfggkalwr7ml2"; + }; + babel-slovenian-69742 = { + run = "1zpw0zp4f5wggaqb5wb9r3hjsxx8b4f892z5w7wirazqwgmxzn2j"; + doc = "1lmjr0cs0j48d0l2qflg8hxcaqfbqfxlqsl5fj4g5icpha4nji96"; + source = "1brwg8sr19048wgn0fdbi2y1rn5ls99kij8i71i789qf32hb1jvh"; + }; + babel-sorbian-60975 = { + run = "1g2m2ydy6rlb6bv1p3myfwnyr8kk1l7jpq60m655x8hqk32119fv"; + doc = "010v5sxqjx15nvgsycacx0lwf4py7frqppr897a89wzmj0fv4svd"; + source = "06vyg6dh3yxqmvy02ps4b5kgxlcg1225llc6mqbrnwm54548xwrr"; + }; + babel-spanish-59367 = { + run = "1d38lmr5wiv03w6hzpfzyq2pdl845mcx0db5wcvwm6132vmnh6dp"; + doc = "1wphssp001lg7blrv6wh11ppv5c18pan2kb49s8s94w2jh4jmwy6"; + source = "0vgyqldgji8fraj5c7na6zplip4c6bc41x346rvzjj3l76q6xzvd"; + }; + babel-swedish-57647 = { + run = "0h6p32rjvsqzy8kdhr0f1zi301xnrsvb8l9k7g6gfwv26fpdcnzr"; + doc = "11kshqcqn2187q8h1hc7ifjnf8cz774wdnd9m2ncfvhf52h2l6mj"; + source = "03rp4n9wkqyckman765r8v8j2pg5fg9frbfxsnhq0i2mr0yhbr6v"; + }; + babel-thai-30564 = { + run = "02n0zl8xa4y7r2n8zb1870b95inclcdmwq0llcspl54vjgds2yig"; + doc = "157r19z20gn3fy9si8mn0c4zhgf1kpkz6jv8ag6y26qjp1c5g4kc"; + source = "04x6d8q4glkb4w8ic5qcywxi009zy0f7dcczp2fibs0prhw1kmi4"; + }; + babel-turkish-51560 = { + run = "013k4sv2xj0ky344frgbkl2h836dzjl72hacgb6rcdlkzwyh5sqa"; + doc = "0qdcg64lykk0g0gr3y4sc9zml58spq2y4yvlhc3md20mp6l3ji8b"; + source = "0xk8c1l61vs547x7586m60x2hfqil8zq3ikpsj9733ykayfclifl"; + }; + babel-ukrainian-56674 = { + run = "0fm0sbr6i1lx2zg90w3mlwlyg0j0f11ya6as2n1w4gbm1inmc62w"; + doc = "1h3ag9pybhzysb65xg3m217jll1h02ks04icrlhkp97sx3gs9wqn"; + source = "1v7w99b86iclp16qxdjfqsxnh2p9zg669pwdlman1467y2z13p8s"; + }; + babel-vietnamese-39246 = { + run = "0xb8w1dm525xrvpsxy6y4n6m8rr6g895hysxbjcvv5x8bjvl2vx6"; + doc = "12cj6335qj5igap6hff1qrfz4ms4s94xv7vlwdcv1hs5gabqylaw"; + source = "1xdkjigwmmkbihczgd0hawszzmnn3j7fypsv3sx634ham8j02zzx"; + }; + babel-welsh-38372 = { + run = "1778pckqmd6fwd3xh3yk1dzhxbaqnffbk9arhm9qy9qxass1nnf4"; + doc = "1p27zrk4dacj67lfim236mpv2s08j1n5w1wdpyziz60hxv5phmaw"; + source = "1gkryz7dng4919w9wn73bvc5cfcly4g7dcwh1ilci0pbr55k1x4b"; + }; + babelbib-57349 = { + run = "1ka976ag8w02yrbbgldzlqa5852ag04i39w9wv9bhprn84xy5cl8"; + doc = "16iznzd8hk1hxxp08zcifn9v5bvh3dy70nyas804z8av306s1h0z"; + }; + background-42428 = { + run = "0rxb5vdfgxxadgd3isbghsmycdh4ia9yjx66mc48n396b4psbrcy"; + doc = "0a1zxpw8wjq1mc87glp7kwdvkrg618ybwyagdkg7xnp8r7wisnjr"; + source = "1mb6radqhhaw7k0ay4i0mrj4bm4n0v4lj6dwbk8h898ypnmdirx1"; + }; + backnaur-54080 = { + run = "1sj9a62s7mqms6i2gv52dls1jncc478ki51wlnp6j5hq34g8sw8s"; + doc = "0mzpammz9ic3d56ylxl40b3m8rc0s0ilhzx25h1y781kya0n6wb5"; + source = "06aw2vvmkl1jprdznc5cwmyaw890csjsbkqmy814ddx6py7pxni8"; + }; + baekmuk-56915 = { + run = "0gfj79zhyg7p300bw27akxzgimvqmagk7y6b4nd7jq5wvrv4g5y0"; + doc = "00y0iglv170b8pz79xjc0kz3yjphbb6a9alk5gg6hsdwvc6gf1by"; + }; + bagpipe-34393 = { + run = "0i3f9f7a38vcsypmf0yv2cdsb1c8n3qin4n8ac73gwdknhhibxjd"; + doc = "0fagwknqzl3k6vc2x9axng5zljhc4jhlqd1x59cjkbrwp8xvf8kf"; + }; + bangla-65786 = { + run = "1fl4ljyh4ypqwvkhq7df1m85hp0vmy0xmdy2km4wwgxva55h0d1i"; + doc = "13iprzx8j84ac6ink12arqw5c5jy82wlc2nymlfr8d226s37nac8"; + }; + bangorcsthesis-61770 = { + run = "1814fspfg988qg7ihx3rwfxk7c79avd2fxwyxcs8pp0pk38lg15f"; + doc = "0lv6iq40wcd9zanvs51c7k251qnxz59470pidr0gy3swwpa8aqwq"; + source = "1q0kdk6m143d9niwa59lcihifgfhl4j603x53dzwaj68hil5h3g2"; + }; + bangorexam-65140 = { + run = "1w44hvqiaibma89s72svgcb48sh2afhycfffj6dynnfzfps2an3i"; + doc = "1xmjcf27x3qaqzavfcaa3b2731zbimq3zl74sbfgp9z93x5xb8m6"; + source = "074136x5ybszfwfsd92cmxbli3b9f62rv6vdf1qb3yb2qnxhqlb5"; + }; + bangtex-55475 = { + run = "0gbjmkkidm8xk6hpkd0i0b778my5xf7hfwq3fdq2v7ca39bii0d5"; + doc = "1xizgjqmwafjvcf0j25xh2gzcqzcipymhmhh0r56lwv02fd34b4b"; + }; + bankstatement-38857 = { + run = "0r9yfjq0m55bd973gqvjpy3qfdhwglwm8zki37ppj1dvca7rzrbc"; + doc = "1qyrb00m7rlqkn77hw6sb3r9b8aap2qj13ni3bwy4qv2s12sfmyy"; + }; + barcodes-15878 = { + run = "12gzzkj2nkkzw4q6jw0nvzil67f83myhwas37s71dnpqm5n1yqdp"; + doc = "0yzqllbvdmymqv61mc740hwjz76m7sncw4mkvpld1i9kv48f0nvn"; + source = "1m9mifdmxc07rmlg9pav8mx856jg1g2jk48hyxkd1zs6b8za6ani"; + }; + bardiag-22013 = { + run = "1lwa55zrl4pqyvl754j4wz076gn9rbl0kfchad5pzhckm27vvp6n"; + doc = "1q3ng4j9g4bp3vvbs9d4md4296vi2xhzxji8nbvq1ibkzbplgd01"; + }; + barr-38479 = { + run = "09pzipw0qmsh0p5y7m63gwvca92g09r8pq6zhq25k62x3s8y6a4z"; + doc = "0w4kvjv2zbsg5jppqky6yx0wr7xq61xj2gk5yqi1mbbagnra72rh"; + }; + barracuda-63708 = { + run = "0qil0n2f1qcz2yrnb6g6w0g6ankwpb76hjybsn12ij75ihbiy9m7"; + doc = "0sknnb78wbiysvz537i8cay2la499y6xnvn5q5xb5my5pxadjwdq"; + }; + bartel-chess-fonts-20619 = { + run = "0xd51ighrn01kwb4n20dsvrjhh7a0y31py2mfl1dq34v8l6yvn9l"; + doc = "1sjwli00iffizzwaiszwyd42aya7c4vz5as8k21lmk054x9afjpc"; + }; + bashful-25597 = { + run = "0cp0lvqb88myspsbp7s3xd0rrkr1jlqcqq846mk8p7r6r4apl1ca"; + doc = "19dbyg9njh2lwckmqnmy52gllsdwv2nvcp20marsjv5hps80946r"; + }; + basicarith-35460 = { + run = "10cjfm3v6b7rkzc0wngg635xbyfmrnzs5y6f3sn0akdfxj0d3x28"; + doc = "0qm4qnxp3n42zvkxyzanl4psiph9z9dxz5b2i32fpn7p3jhn2qh4"; + source = "1my6sp0mvbmpn2bakr93qwasqh7rwmzy8lhl608lssnxk33h8x8j"; + }; + baskervald-19490 = { + run = "1wvdsq2qngbrm2nibvmssk62kqvjkk50cxi2d7lx3nb6jgmj33c0"; + doc = "0zj9xj7y1srb58lr9brmi2m7nw63n798m7mmzibjvn50kfw3qc8i"; + source = "185jgbk6rg6vkdwhwb8i0inb32qr3rgsdi3xhgj4vj0iah9mdkbn"; + }; + baskervaldx-69273 = { + run = "1iwqw0d6wx9zl5p9f92gw6zqshflshw4isk35542wncwm1w8fbzx"; + doc = "1xzprri9n8rmnyj5cxbhix05cs3bfgvia34h5qkql8ykfrfxpk1z"; + }; + baskervillef-55475 = { + run = "108yndp9v2awi5vw29zbin82bcvx2fzkkhypg7f4dcl9lziwdbg1"; + doc = "0divl9d4bgpjvc6yy2yawcrigkvv7pwdnxy1gvf8mypwhkp17anc"; + }; + basque-book-32924 = { + run = "03jh24rrjczpgj9d4w5fy9fv8w29wbqylx5s9n14jwdsf6f588ip"; + doc = "0sza7d2qx89saj6rx591ys15b8gvrnalrbrkk2wcjln1x2cb95jn"; + source = "15lgh24zyqlmqkw7wdigwvvkv6qwlpv4zrm2zqwgxj93bffa4fs6"; + }; + basque-date-26477 = { + run = "1hikrfz1z6y294zg00arnnc6any1iyn0gkhmv9j9wsnlvylcbnxk"; + doc = "0gifh2wlhxl5s2p816w06w5h51pg6gn2mdskhpgkq16shaj4xqcq"; + source = "1vjq5pqkan433wisv0d437m6hbmfqyds27dzwkyd233zq73fpjxb"; + }; + bath-bst-63398 = { + run = "1i3mmivvw3wdqphw14dfhscjrximi8wi0n9q1cqxkf89saqml070"; + doc = "0yn148yhz3as5xzgyhk6j3wckxpzn7vw6r2mzv10ncsf8a7knycw"; + source = "1md11iz13bbbn2i2p0s9pmqkimc8wb6k7d8wz2sgwj48c2rdsd80"; + }; + bbcard-19440 = { + run = "0snfsyslxnz84a6lgwi21rg0f5vbs6h8yfyywih18vmlbjpba3zx"; + doc = "0rbx7mpns7pgidx3g5pi0r7d638lwykjw0inpldb5g3dz1ipnpvc"; + }; + bbding-17186 = { + run = "17na9lw0yaqn7i5dnlvbfg2yn74j8kr4w526z10bzp4kpynnpnlp"; + doc = "0pg135sdbs1zbsyv1cp69akk7kazr5937ysik38dyhhc8f7vj49d"; + source = "1kgz94yy0gm19x59vh24f9zv95gy53ayc1906r28s067mknmc46q"; + }; + bbm-15878 = { + run = "1l1yyiqy3izbzbrpz55dgd46szkj55g8wkjr5xh7g3jc59y5kq13"; + doc = "053jc17hvq8vphm6jqr929hf45xkb3rk7yplq4i55x57vkf8bvdq"; + }; + bbm-macros-17224 = { + run = "0h1qqr82ihqn7i8r6pk2mrxkpf4cnil1dj1a0y4y3ydph174v4l9"; + doc = "0pxrzpbwpfzk9jhb544zmya41vzdzyn0s5dcyynajnf8lii3kivr"; + source = "0wc6wf1qi6kxbd5a30n926gkagyjsk7mji9g9nzv3jwrshqihspw"; + }; + bbold-17187 = { + run = "14dz70qh8kawzlb1h8lrm0a4dpqkn9b03czd51s74z01a3cdmn7z"; + doc = "0pfrhps4yirpg244lcpf10ilz53714ic1fvpk3nkp2ihjbaxbzy1"; + source = "0qhfqg6kynfq6jzx93mili9kpgikq39wmlhgiav3bdzqhp6v0q3a"; + }; + bbold-type1-33143 = { + run = "0zvkzp43awkf5vbnrvhibkw185zg7h1rcfqav38z720cls2vgd7w"; + doc = "1dj0vqnhmk8n383y426ma1y89r8y69y1lc2vkg58gaffjfrpxwxs"; + }; + bboldx-65424 = { + run = "0r6ds8wkf1qrv4mank08pzkwz4qk2pfyb6pvqazbf4jn4a46bjcl"; + doc = "1b79xnpss9s1c7lmqlpznk4vvxzgp7dd248ipkq6n4dlpv0s2y4n"; + }; + bchart-43928 = { + run = "0knv4byfxfalyhmsqiq4wjcin0q0hyj9gs7f167cddjyzcg4z23i"; + doc = "0zyiw3f37i3shf8ihhzxagvzwnsdaymbkpcizdm2ryziglahh1jy"; + }; + bclogo-69578 = { + run = "1rx0z4f23l22vs9lk246kff3cqznp7rzc2k6xn0nwphqxfap6965"; + doc = "0xcq3ypmsjzbkxivak1j48mzmiixxfgf6v5fnwk22z09c5x67j6i"; + }; + beamer-69316 = { + run = "1igp0jcs2w20k94fr84s1af5q8mw0mrvraslaxsxcnxmh65dk9kz"; + doc = "0y07zc3zvawaph7pwk8z9429463i99y9b6lzv9v8cacnhqk48426"; + }; + beamer-fuberlin-63161 = { + run = "0w4asfzmjrzqqc8dsan461fvmkjn21181lij46rhissz273d9vph"; + doc = "0hw0cp32k2gqv9y1ai733sj8f08hdn3pj60qh2ykmcqg818q4clv"; + }; + beamer-rl-69254 = { + run = "0dq7p1zpgv3sdbncric180slinfxk1vdskzvfzsivxzhh2z1adkz"; + doc = "0qq209gc6ssz3kz180dnd6kl2zv3qj9iwq5nzcbd50ypmm483dg9"; + }; + beamer-tut-pt-15878 = { + doc = "0ayh3kbh11l4nyyzp2kcwzn0phqhzawppy044iyl1wwwc2v3zx5b"; + }; + beamer-verona-39180 = { + run = "018ckad1q7ffkixvf6q9a5d4fzgpkpf9qv06cfv0rjwp80k7psyg"; + doc = "11vv18n971pcmn8lf2cya7jf55x8zw1d9s4sg2l3q76rdj7l53ra"; + }; + beamer2thesis-27539 = { + run = "1rz02mxmvrq0x06xbrdqvfgs21nhkcislcnpdwx9gvrdmwpcyccq"; + doc = "1ialsnm6qc9bwry5575b8l9ifgymidrsvy2dc786ixndc0fzn84h"; + }; + beamerappendixnote-55732 = { + run = "1mqx0wwb38h1aaxc4xzzq6430xhrxb70qcdqs5yj1sa7k9638ags"; + doc = "0nvf6m7d6v8mbpnpz8bdam9bz4h9d84nsf17s1k13zv846rsp34w"; + source = "01lkwbk5vpnpbrmjdarnz137n5sbaxw0xaich2jvcjlin46vfly0"; + }; + beameraudience-23427 = { + run = "1p3bpgkdbm3dlh7pj5w6yvgr0iqjshn6kchdpx86zicywwd2hqpg"; + doc = "1qs882ypjg9cp19mrpr3nl54h1zry3pawjfwx8si2b6bsngz3wk9"; + }; + beamerauxtheme-56087 = { + run = "1a8q3a0z2wckyr3694nnkry0waqzqsgp3cmaf8ijcrfs42khxjcf"; + doc = "19r7vjma15p3vw0nr3w51ghy7hq4pv6x92iway5rxmlx97dw4piw"; + }; + beamercolorthemeowl-40105 = { + run = "0kb2pvj9caszn40njgq99779ynp5kdq8ynqa0q6vhrh9l0r7d1i0"; + doc = "1crml0lvdyk56zf1ylk8d4441237kfpnn7v9sah98w8s7rlk37r1"; + source = "0l171ahdzizwpq8lq4rai2naj0h66q16p69nwhlwabynjkmfhhzv"; + }; + beamerdarkthemes-55117 = { + run = "07zg346brdpckcfr1vnmvqcahjmp87cb2sizvyx4jvxv19qqwpkb"; + doc = "08zkfvjvrjh8wffv7qjqmv6p0997kriz6lxz06dnsp7l5j3p675j"; + }; + beamerposter-54512 = { + run = "19h0zh583chawpzm59xv7243vzkz597df68yy0zmn3r6ha8k0qz7"; + doc = "0xspyywk813ndrd5xps7fxwggkmdl078fmn1cvxfx3cxpnmdf822"; + }; + beamersubframe-23510 = { + run = "06csqdbh272jbh3zpi0f8zblbmi0sp5iiz1r1qa9qc0lw81mdh7m"; + doc = "1g29xay21yr8aap2fzklkg8q3ybz0xmz22xx5cd9md93c8k9kg7l"; + source = "1zb42dsisab4234s79xvva74rlicd1gg4pbh867rxd15ajgy14k5"; + }; + beamerswitch-64182 = { + run = "0hl3c2ircmxp8bywx871w9b7rdblzn28f0mqfr0pdaz3gijbw7ms"; + doc = "00gxw3mdrpdziixnjam8swq1gm01nw5hg6yzs4ijdpxh5d911c49"; + source = "1pnr2hrvz58c5i0848hcdjw85jybz4q7lpb3xwfkmx84wjx99945"; + }; + beamertheme-arguelles-70209 = { + run = "147ldkcd2iyf9xs6g5vcbgdj7dh4iib6d8r2k5mmb8bgcgj0fg9f"; + doc = "0p8bg89v8spv6lzlp4wl29jw2k6jxjbc65sxml8bzvlqba0asq9j"; + }; + beamertheme-cuerna-42161 = { + run = "1r6c3ar29s06b0yfn85wssxccayxn2706y9jxdx2pxsr85ndc4js"; + doc = "0a8mmg184chg2lljv1k7ffydg4sgcjpjbnfjzqcg43cqd01v5dmx"; + source = "1avywir51zks1hygqypsfi6lkrba9ld6x5mkr8lln7b2s4ijnysw"; + }; + beamertheme-detlevcm-39048 = { + run = "149ya5raar4xfkb910lk85pqpm6mrc5n5ghh6350knbmaa6bdwg3"; + doc = "1wfq3wc7b3516s81sbp6md6mx9szbzq5ycqvsr50y3s2wfvvj2lv"; + }; + beamertheme-epyt-41404 = { + run = "07pjgzgkjmr4hdf16m7kx2cf1448253jwgc522akfvvnmx9fi26p"; + doc = "1a987h1cg48bw05zjh79ga23qb37s82dkqhhgvp7gsnwz10pax2j"; + }; + beamertheme-focus-69742 = { + run = "0jsjj0rq8267yj70398bcn4yziyi6kmm406q1wjklydnclj8pi7r"; + doc = "19qn37248i97z2pdxksm4z9a1zdkqi5p3fn8rk52y6v35w2xkgyr"; + }; + beamertheme-light-49867 = { + run = "133mvm4cayp49l8xvh33q0jp4qzhmvd3q2kq2aij3sh6i0bzh5aj"; + doc = "15s2s3b10w0czq513mm2y7qrczm7y91qhghd0zsfvmy129mwfarv"; + }; + beamertheme-metropolis-43031 = { + run = "1pmvcyjn04pgcmvanj369hxqjha0s7lh1z4b6fbhaj2aj32l52r7"; + doc = "195jhmhzr4gbi04zmss5nl0lm9rkg8spynwz5vqlgbci1xc2cw15"; + source = "1smxiqwdvz4bj5rk9cmsqmy3kwa722ab5fhns67jllvzrkzy8zcd"; + }; + beamertheme-npbt-54512 = { + run = "0m1mpavq8p4pswibgfhsbnvg59kn4sxz0m4p2w6zjkmy80s3naq2"; + doc = "15kc24d21d1r34hd07zr65rp1k55fwrxr59h0ayiiwgc9fkjjsd9"; + }; + beamertheme-phnompenh-39100 = { + run = "1smqwy1f7jz012x5hmsknvarykalz58iysnwf3px7kwg83fr8mb3"; + doc = "1pg8242n3z6x1n4kp8my2nfllriijxwmwfn7d9hccfnsvjj25gdl"; + }; + beamertheme-pure-minimalistic-56934 = { + run = "1z283v6ipp7c7h1qhm043g0sdfcq2dwzk9l0lyy5951y1kj965bc"; + doc = "1chzf3lgd4sx26nbmacb7dadpk1m1rm913dj01648vbd2bz9y4zb"; + }; + beamertheme-rainbow-67542 = { + run = "1zv8vrifblbhw6zfbx9mrfk1vklr83rwd6gly42jyg7fh5awag73"; + doc = "0wy5cc1ca6byjw39rhj3xhynifg06ijqab5l1pavpcahyq6abq7w"; + }; + beamertheme-saintpetersburg-45877 = { + run = "1d48158ladllzj6a1np20irl0r0syksb3wnisxbbwv3kwzr7fgj3"; + doc = "1qkzpbc29587lmckjkl3lx08f2j0q3aaidqz22r6bg896j8q8pr4"; + source = "1r4cw99zffqsvppc9l7z9k8l93sfk1nk8pzj50nm2bmkrdbfk32x"; + }; + beamertheme-simpledarkblue-60061 = { + run = "11m8p3n45qf697sjzszjpkdwqfgy92pzxh9k7dx72ikpdah7ba9h"; + doc = "1ifbh5r0sxk8nsf8cd1g0d1w26ypb5hhsylc7pni6wn9n70799jy"; + }; + beamertheme-simpleplus-64770 = { + run = "0ip3imjc2gz4d04k8lx9vpd4an9sqmw3gbb25rmfpyy0qfxbj0ax"; + doc = "00lj81r295zh9lrbffq0ja1skpg8l8l3waj3d34sq6i9sf8rbg40"; + }; + beamertheme-tcolorbox-67000 = { + run = "06yri18aw8bb6l69njavl3mj38rmiy9aabjyfvy3nam2mc7ivhk0"; + doc = "0v1h8smnlfic4r5j8dlixn03ihxy8ciwgc839zy739908g8wix58"; + }; + beamertheme-trigon-65985 = { + run = "1fdray7kncwsb166awwr4jwnk27jxnp3824yf298pp4ikg7iw6b0"; + doc = "1l8iqyq8ib1v0d4k7bd35hb9lpdmpzplnv0fqb1ngzdn0jfx6c6q"; + source = "1s3da6z3sshhndpaxmi3rh7zphh7g1qn4b3cxbzkifx2xqmz8xvv"; + }; + beamertheme-upenn-bc-29937 = { + run = "09a7da5ghgf5q4qp0djp3pya35zsm45wkiy5srz8p9q8pwg04bdx"; + doc = "1m1bc9mxdwfdm0v2lb0i3pfxgf5as1lpm8a05icrm7bdvii0vsiv"; + }; + beamerthemeamurmaple-69742 = { + run = "1ghhmr1b5riskhqyr7x8kqjg76kqshmykw4iji95ibhnz2ywj43w"; + doc = "1s4zb71fp3lss2wj72f92w1gzj4wlb1161cp7s1cc76nzacl00ya"; + }; + beamerthemeconcrete-69528 = { + run = "0661r339w4473i6d1dj1wyg2pc6b0539pqpq5zwqq7sk2c1y5dmi"; + doc = "0g8xbg6ln71im7a6yp3hg8xpa1k0wy813zwvyha9yxj2fbqfrys4"; + }; + beamerthemejltree-21977 = { + run = "02ccd8qqyjkvqqyxr94p1gc6qjryl83vpa72wcm5ywr8gmxci0pi"; + }; + beamerthemelalic-58777 = { + run = "10wv3820avgviic0mcxn38yycyxqfvmf7qhb5ybz1x84jrw8k9hm"; + doc = "1wz984il1z42ck69xn6rnxww3x4xx127syyx37wdy246i1ji75vw"; + }; + beamerthemenirma-20765 = { + run = "0ivhbhybc99hacnrfw1fb9412f6614an1955rglkcbwxwkji6nyn"; + doc = "04155wbw6ix7an8sblw4a8q9hbn7vzwffady4vc23vzccc2i2f4a"; + }; + beamerthemenord-56180 = { + run = "1kb3485dv7kcj04bkgz8cv15kv7jmdjy0jcilvi5zc1vn690cyba"; + doc = "0ls5ivdcgayz9pqm6j1wd5f45s063kfknzxf594rdipz1jnmvj4q"; + }; + bearwear-54826 = { + run = "1xaq0bmv8jv1zss6lwx2ccx8inrmyw1r9bjv3sbqfhp2x4d5xjrl"; + doc = "0vm9lm6389jnmcgzx0ffmay2bw4d0h1wfmsfbj3x1s1vrfl62r8j"; + source = "0dzmlcrc4izb63862dcafshzsaglq5m88z3cxmwivmwpikhh0gb5"; + }; + beaulivre-70050 = { + run = "1246j8vf4s1sa718g5y1rqigkh06j589f5sgkg3qvascsbacv9n4"; + doc = "15dzb9slhisin5mm020jvaj02dz4hw2frm9zywv74lyx31akra50"; + }; + beautybook-68438 = { + run = "1s0snxw87d8f1chj6ghbl2x8byq11piw5s95v5pla9k60559qnvh"; + doc = "1ddqd3k2mdj0psqlbgkjpdy0ayjcxh54bqgih71lwsw73hc6gd6i"; + }; + beautynote-70166 = { + run = "1xg2y2x69ghz8dy5mr1wqpdbjv7hsg2801ln9yr17zd7wgcip5lz"; + doc = "13b2bblzg7bfyxv7agc31ijgaifjxn1hx2jhfg9gzg8d2qk5h1pm"; + }; + beebe-70064 = { + run = "1w6n6112mq82gz8mmyfjs1wgqfpy1dln2s49r8dmxzqjakws1486"; + }; + begingreek-63255 = { + run = "0dl4ap6r3xdwi0kypp6mq171jp4hl9hrjlhfrw9i6pd31qh2bp85"; + doc = "1lmrl3iqgspi6hd86mwssr2bjqg59dykgwl4kzjfrbqa1637df9s"; + source = "0nyd2kqsmkz6rvsfcymbbl2kvs220rk2fi2wajv46w0px81bxch7"; + }; + begriff-15878 = { + run = "1hl6jb8gg3acsj6rs1z0w5v0i6ivvas87hij4n64jdwgf1lf02ja"; + doc = "0bd8gwf3ifqkjpr8wnrp0xx78169b8yc1ppdnyg9v6n4l1b0x0s9"; + }; + beilstein-56193 = { + run = "1xh2955zfnss2n9g8rsa0m1kad4b4xpsdrjj891kj97hhgd9hpdf"; + doc = "0k78mwjqqib6hx7c6lcxkzrbg3gfw64a68fj32g0wpvdyj406ssf"; + source = "120gcmpz53l2pzagh40nsji9g86fq4xvahzhwqqw7p01r03wc0cl"; + }; + belleek-66115 = { + run = "16vq207gnh24axsmh2nnh8lgy1lz2dn2kfn1sx51cbl28qv3wy2b"; + doc = "064l5x679az55jb808yq36n28qhf0gv0xm21iz8rnz4qxymwsx0f"; + source = "1w1jbq0l49qd2wwc0xmravrid4rfba52yw29z5ki7p46j51dw7i8"; + }; + bengali-55475 = { + run = "1rqwjn1vim77r30nmdmw5v50phpsfzdcx8nlxhxlvqsca3yqzsvz"; + doc = "1zxczyil1izzj9pnz9c6my76mggg8maxdign07qn4kzf8c0fq8jp"; + source = "0b4v7jrngga8znbfiafazxq6z333wa98prp7hwzzhpv3nxj6kbl8"; + }; + bera-20031 = { + run = "1i3mahkkb858i6a3wyrilcbswdp8mhclvixdxgc0wpkqvxa6qwya"; + doc = "0llhr464l0akf2dx1avnm3d7adzcz7ml3x95glafpk0nfgb98qgd"; + }; + berenisadf-32215 = { + run = "05ibwmiklbdkffb1d85w9097sv215afgbr63fka2iqzcnm5lzbk4"; + doc = "18awb9xgra9qmrsrm9l090c5lsx14xp7dh034k1fq1g1767w68ms"; + }; + besjournals-45662 = { + run = "1jpp3ayblhwwqzndss91rcns3axr60b8zzxdd6f4qqifhaqczk3l"; + doc = "02s7qd7vvdr6wf00cm7026984s6vphp88iaqhnhk0iiafpr3lk3i"; + }; + bestpapers-38708 = { + run = "00ig29wqb4fn6qw7szmwmv92s19nc2wpapv4pgv8nwsby8nplyrm"; + doc = "08yv29s2cx89nq0lvykx8z6szs72d2ph97g75bqni3l7b4n0wng7"; + }; + betababel-15878 = { + run = "0m2m3m59a2ma30zkyqjc3h076dp74m4igks0dvrlpgx4sfqg90zb"; + doc = "1zi2yxvxhyazjncfjv6dv8c733hb0g5sxr9x7wqqrkxlxgp549wz"; + }; + beton-15878 = { + run = "1rjj64wnd9xvh940rl9scidhv9ridqz38n8ndzs35hyjm8n2lx5f"; + doc = "0i8lg2iyjkzpxjzz9ym61v4zkqczkhvs6qjb7zf5xw557l2i55gw"; + source = "1l82y1fz86qsnv58gjq9rm58zf3ki80xmcqkwlmgfp334j9jqz8y"; + }; + beuron-46374 = { + run = "0zfkx9iiiz7h501ls3z1fxk2ga8kjhi21vpmlng6vvw4v3dd1xhy"; + doc = "0d0mll620s40695kikaykj4w3ngm6rcb4xzrgk3apl43pcf7mss5"; + }; + bewerbung-61632 = { + run = "1grnipw9vjrqy657wkrg656wmh1553wzd1x84jc6zf9gp3v1440p"; + doc = "0ny8ps46wxkbsd5g5yxyrh2jd74b204r35lggy9r7ckk4jab2wj9"; + source = "0y79pmsbjzpykldic1a41l188wmkmn9izhvg5p77i7phx35s9qjz"; + }; + bez123-15878 = { + run = "13l8qvnhfq575pg1nvcpbrwyv5wvq3bhpkmh2306mds784hvcib2"; + doc = "0qrskibmq7sv07g60gzd5cp34p21ragr6yn9g6384gib8vx60nqf"; + source = "0ab153h8i8nmc6v5g9xwvpymjvpp605mbj9dmxdyl3ic49cpnl08"; + }; + bezierplot-51398 = { + run = "0iz8zsifxrwbv35jlgq3qb4hdf2sqgj7smcc3bfll655zq0hqmab"; + doc = "070nxd9n0i9r7h195lkm45zfpdbaqz4lf0k69qg6qj5adwrdqbvr"; + }; + bfh-ci-68828 = { + run = "0z8ymg5d5ifmhp28nm9cn9ascfl8m59bdhjgwq4wp3i4a05c8ais"; + doc = "17pr0ydkh13h7wx15wi9xzmqpg3xdi2m34z6cb6ql1g5fi0dbgqs"; + }; + bgteubner-54080 = { + run = "0a8zhnl1nxzg5r525sn8sz44crjdm5fmy09glp8cjj7nic5xj32g"; + doc = "04nh6c3q2w984x7kmgj023dbpjq9mqciyg4xrypgc4zv8wvcgv1w"; + source = "11g65q55cv4s72cpraxw7yj4qskkhqhc0mz0sfy6c8jrq7255ils"; + }; + bguq-27401 = { + run = "1spl6qnixrb6vcdgaaxx0fk740kkxv7y73xamlkprdnrsmqrswwm"; + doc = "10za9hbwigcbxyjwyy5cd760hqabyyj3g74w355akhfpyd20m55v"; + source = "1vaw8sa12c94ia6fknnpbj7xxng3q3lj3h61akm590riffklw2kv"; + }; + bhcexam-64093 = { + run = "13r8z9wj4v07zjfv7fxy4kq26jflywbvj8p61g7r6rgj5v4pqay4"; + doc = "0gvf2hr60iyymwq8alkyyya4vilsczqc5zhg3j7ydsz9hpvbkdp7"; + }; + bib-fr-15878 = { + run = "0csd9a4j3hvgyczgnfnhp8n49j4baym7nw8sck38m86r3kn8n7ar"; + doc = "1inpqvmf6c5zb091q5fxg0r2w87kacvg1yy1lyai7wq3ll0axvp7"; + }; + bib2gls-69635 = { + run = "0aakzv28qlygmn39xs1r432m1yx6rpwgqdpfw4yi8b3c1gyr1592"; + doc = "0v1q2xx6i5fpfcbqqy905n6mab55f6nicgfkkc89dgyqb1pdfgds"; + source = "0apw4dajid7cpgnnsa8c96370mrra73vm0pzb1kk9h49d3zcb2g1"; + }; + bibarts-67407 = { + run = "0yqpdj8fnh5lafc9amvmnam50sgxhwsaw6fr49k2bzxcz5bx1qv6"; + doc = "0di7fqxkaddpq3iqxf9nplz0vy4qzspala5hyh6l8zc9wdcjr0db"; + source = "07664c9cgf85k2c096r2aahkl1ddawhcdqgf7wfrr806qi67mbz1"; + }; + bibcop-69467 = { + run = "0scvb7s5j4if7vviyvgr3sqkbksq7k62n4sri837jnri2d27cdhr"; + doc = "15jszlsxckl9mfzhvjghipkirv9fa2fa81am8hla0g5b5k0b3kwh"; + source = "0y87681xvr8a3m3l7a16qaxir2s3afm4lhy5rw9yvn3bdr96nfrr"; + }; + biber-68188 = { + doc = "1kwhxk6kzfjg62ygsyvxqj12pgw4bippxq7qdlgi2961n61jaj32"; + source = "12jl5fyb802yrfj0fdajksrli1yyi2apf5kckgh6k0cri265bmxa"; + }; + biber-ms-66478 = { + doc = "0h0hxs4a7r8sr5w573d6m002zdpzgs0gghwbasdi9j2hfb2wv6b4"; + source = "1mw39ra48y7gqhh8860544wvzxpciaka5c38873vvnbdnng44mh7"; + }; + bibexport-50677 = { + run = "1zbsilzaz68zvmbf2xw7jqw4l66clcplz3l46ggxw95gns8mgqlg"; + doc = "17a5w095vkpp7j54h8m7f74l7vycsqbv6zzschdb3dd34scq1s5w"; + source = "1pqs7j4xdhx3pqsc8i0wqnz9jkyg891dzl7g3cv19a6wv82k0xjv"; + }; + bibhtml-31607 = { + run = "1sg9x0jrgh2jng9b1pd08i0f8kzhy94sq0mf33as91gr43dzws88"; + doc = "0is3q2m1xg52h5s9n9403c85yfmpjaqqbh8lgyfqfwhl5qqmgrf9"; + }; + biblatex-66403 = { + run = "0zzyi1sclgnrfqvi6bbcymwg8g076br964f40x25l5bvn6r5hx1v"; + doc = "130p4vbg7c86ac7kyb2briwy4v82qbfhpxhplzlxhd4xa2p3j72g"; + }; + biblatex-abnt-49179 = { + run = "1dn2929wlyzwb96iq5lj8x9zr2fi1c4qk1rldc0vrr5s3cxfn3x7"; + doc = "000akwyh992yxzn51jlvnc20g12ypq2zmffvnbwxjy3cyq0aggq8"; + }; + biblatex-ajc2020unofficial-54401 = { + run = "1csx7vad5svflb76ssdkvd8y3r2n9agqqynw88wvzhzj61fkd2cr"; + doc = "03wzlpr5v6y67syy0bx87z123ark524fm6kqjw83v0sa4y4kwq7l"; + }; + biblatex-anonymous-48548 = { + run = "02fssl0l50s94y6x7rv2rm0227ivgr7kfnim435j4k1l0av4gb3n"; + doc = "0dffdxp04shrh7fsl4dilqcsnnxbjpbayy9r87hxmq3yk605lvki"; + }; + biblatex-apa-66605 = { + run = "1hlh14lg9cay5962z9pwzslqs3mbqfd70i055r3xbgd19a8hw5fb"; + doc = "0mqg66qiiqnffiarwi6fs3cmyyssiifv5kbjg9579lsh3f4dag4m"; + }; + biblatex-apa6-56209 = { + run = "1a1kynyy1gdmsfnwlnxws74hwyqc6sq29wv6ybalpipdzn7dg73i"; + doc = "1qvn9bnzvx88qbmbdgds53q08v7ml42mbqbcn7bzzq6mnz9ra2mx"; + }; + biblatex-archaeology-53281 = { + run = "1kf5aqc8mv28k0aiipwm6yc1vkgzyikp0bsmpmgdhy5acz3whfxc"; + doc = "022l37hplzmvkcpnr06n4fz509w8wm24py0c05qljs6jz7smyhh6"; + source = "0shn0bacflcaayajxpdiv9ik994aizpdmlc010shm3fzjdlay79c"; + }; + biblatex-arthistory-bonn-46637 = { + run = "1j0wy272dkzcb96i74qh54ap2hs5wdhmln8akh749fyydsazr43h"; + doc = "094s5c55lfc7ssmz3mzj61zkxpnn1haj2vh582apzffppgd3fd0m"; + }; + biblatex-bath-63401 = { + run = "1v5hbvaxcqc8ccg3ydpzj5979nf7aqm6r6ax82b9v27sf9zmr2cw"; + doc = "1h0ws1gmi9qf5kj4czkva3kqa6fbgq88dw3lrv6rn31fxyjjalcx"; + source = "1haww89x8x5rwb77g7qfdxr9gaw08067pm45nfgpai8kgr9p92a1"; + }; + biblatex-bookinarticle-40323 = { + run = "1gas58hi5ycchbpamm0z9mn5jc2hbry682i4wmba242wm55digyq"; + doc = "1s39gixpryiqf44riq5bk3hnp6nc8pdqbdylh594k9xk3770p77z"; + }; + biblatex-bookinother-54015 = { + run = "1vb9m88z3cck9gi8d41lsv4ckqli4wjdgwkklfds2z189vbncc4k"; + doc = "0zzmlsikzv5zxvd5xh12fzynmkl0bzzvl2s2y2r4kfn6s08xncja"; + }; + biblatex-bwl-26556 = { + run = "1ii8jacddlj15sm45g5rnk7yqbsd7i8c6a1pxy34vpb6bgsfb69m"; + doc = "11cspr9i8q1da0x23bplsy88nfmn1x87zvrqdc28gbk4ybi6fc4s"; + }; + biblatex-caspervector-70496 = { + run = "0y7ad07hs9ywkaz4i7m9vkka9c16sm6fgzjjlpk7hx7j2dvlifrj"; + doc = "01cdlyq8an235qrvqazni1rgxw6dsgpnc8xnj4mwdlb5ajwcnphk"; + }; + biblatex-cheatsheet-44685 = { + doc = "0y2ry2q1kvpy8dqglqdfq3rc849hmbni0k78wr1xnjbpd102l3k9"; + }; + biblatex-chem-57904 = { + run = "0kv44yng5wff1xkgw8nya64jizfcf1ipxrgnf46pd1dak5vlsiq0"; + doc = "0amx09qlk78kw6iam8b83xx0kw12k5p7q6wn267imr2rsibbs3l7"; + }; + biblatex-chicago-65037 = { + run = "1ik86b38bc59qyj68fajcbskbmlz6vsg6nzwv6pm1fxnmhnnfd0l"; + doc = "19sy3fi70kmvqknbfa0wxvn563l4s3m59f3jx75n29vxrdljscp4"; + }; + biblatex-claves-43723 = { + run = "0saj8s7q9lzjnydjh3x2hcnhj0wfm2p4rvxk5n6hi2ccfw78d3c1"; + doc = "0g4x5jblj664ngppqpbks3d0ahn818ck871q2aqir6jgkrd13cpw"; + }; + biblatex-cv-59433 = { + run = "0k3bbbjvykc52y4557nm7kqna89mjq6g5j5hpblrcdlmvd5anq2l"; + doc = "1xbd71vpm6vfyjaszn7jlxr084mqxw558rqyqr8x848hbyh6f888"; + }; + biblatex-dw-66579 = { + run = "1kjvqx9yqqzhwin4zwkp9qcgh6nk7bad5nlhx63mkwp37izwlcrc"; + doc = "0a91cra76s2134anv2jinwcpp0jkd0pn7vybbin3pgyamhr469lk"; + }; + biblatex-enc-44627 = { + run = "0kvya1xzxpcmvwgacb726jqzmgr944y9ljai45f0gdkw855ylmb8"; + doc = "0mmc5sd1jjnj42aa2q1g1zaps1hla6yayl769i4bya6i1w9r99yf"; + }; + biblatex-ext-66641 = { + run = "15fq6q1rxx8ca8p8g84m21v0l5pnibzsvlrw7abl8v3zs9bbncqv"; + doc = "1pl04di1qmkf03i3l7ccszf1xab5bjpg6vjrfxj4n5gaw71k3jmz"; + }; + biblatex-fiwi-45876 = { + run = "16grb6hqmrhvzryijg6p4q4vf47a0lxa8bw59avlib5j7mqpg0wc"; + doc = "10skq20bmpqymbgxs47z8ac0q5nckyph7s4xwqmpfd7pi2sksb4a"; + }; + biblatex-gb7714-2015-69775 = { + run = "12rpbsjr66wjxi8ncng5wir59j7mmc2j905ikgi3p81ld11401r1"; + doc = "1j3phn1l9xi4xawd964w2828i2jwapn7qc53a0r4lrkw5r830vsd"; + }; + biblatex-german-legal-66461 = { + run = "05wf0z91b7yhw73xz70nfznic6x4iy0ir5savldd1ai67iv6h569"; + doc = "04xrqwnsai24xh1apw4vl5gqhjd06vri33cxp0z96sp806s6hb4z"; + }; + biblatex-gost-66935 = { + run = "0d7fcvjv4100ws9p14qvp4dvv5wzp6xc8qhaqrxnrzkrzd6w7x81"; + doc = "1zzxb2hqi4gc42jcf21pw79h56yxwq0c0wv7z45lq0m6vc45lzic"; + }; + biblatex-historian-19787 = { + run = "14p27qb8rdx479pj7zdvl00ir1zg8f0bzp107zfwv61ypq8zrvbl"; + doc = "0hcghqxbjah4lyjzlrkixs6iqbkjx4d8r3hv16lgnddkndbgq663"; + }; + biblatex-ieee-61243 = { + run = "0iwj8jp5q16g0waci3wqc7hb1qmn35b6gw0x0c2v7444rs2id242"; + doc = "0mnpgdamgf0f3nr0lbzkhl0ncnf5qvd3g3q4qnw45h30y69cpmsq"; + }; + biblatex-ijsra-41634 = { + run = "0gnm3h0918lvbqwnzk9wkdcafpzz5q3cln2z1sjaylr3mgypykdw"; + doc = "0jl8mr3ai1ybc3lmp7x477znv59az94hlbzaqmvix54rxf6k8f4k"; + }; + biblatex-iso690-62866 = { + run = "1nkq6fa443dpxxm1w7fkj04169a50d61zwsvijg2z80ivlfqpn8m"; + doc = "0y139zpq2xzdwj7ak46wdii3jsnjdywdxvnw5qwh58vvwwliz2cc"; + }; + biblatex-jura2-64762 = { + run = "0lq0dllah3drjijlscwy3nvzmimh9zc0in10vld516lmd88i7vdq"; + doc = "14l5sf5xmfi27izkds3cv933397s4fn1ah4k7jgkj7vw424bwh55"; + }; + biblatex-juradiss-56502 = { + run = "0zi9b67y0p9zdz2n4j1lr5qgd54p3l13c132wjz749mlrv6njfx3"; + doc = "0a6d7awx49cy86ndwfkfq280dwh846ssjkkkrgbq4vxlbmbh2zpx"; + }; + biblatex-license-58437 = { + run = "1fg16xc32kbg493y91sjxjnxpi6jb7kki7yvy3d796w7vy86ljfn"; + doc = "0iy8ad7k9j5x5wnnk196dwsyc5hhz8fl88wq56x80cgfdkg20jrh"; + }; + biblatex-lncs-67053 = { + run = "021b8002cdb3h8yvqdfvidmzbdjqpybbgq14vya746hnnnas501a"; + doc = "0fvy4ailfz2pqg09j6cqydsl9s5x36y0cdhhpvvyjfbvzbz2cc19"; + }; + biblatex-lni-68755 = { + run = "1z6zpq15kx0dsq035yqwal9p3q6ph6fvrax9ckjz28c31x668agq"; + doc = "1pkjza70w9lzcn7r3kn8l5pg89dasj66c8wm8ixvahzvwgjfx9ax"; + }; + biblatex-luh-ipw-32180 = { + run = "13hh4x8p8hxnyz6cr22lb3djl5advrl5c9dyx6f491d2mjz7vibs"; + doc = "0xb2wmg5psd0wi21j1vmn1y8sy8gw78350fqbmpgd6l4xw7bb4gn"; + }; + biblatex-manuscripts-philology-66977 = { + run = "1095qakmlkx81frnzanzdszk7isp92k4cgpqlgvwz9r5gk34mx2d"; + doc = "06vg1il1cp3j525jxisdzbbd4v3504h4yyp733prh9s0q5s39yai"; + }; + biblatex-mla-62138 = { + run = "1fdznq1hvym9wgrxd2gsxdi534n5pbx95i8hzkz95zbxfvjpf4rk"; + doc = "0i4716ascvd17l0nlf1wn4vddkjkzc85545wgb4cdzj847azm1yj"; + }; + biblatex-morenames-43049 = { + run = "1imryzaywyvdr67qcspys9r3mhl5k94vhqjsl16pmz86klq1bs1w"; + doc = "03p7154s44ga7rlf8ya69qvbwkb6gsiwz8j2wycgzljj0z3plnjh"; + }; + biblatex-ms-66480 = { + run = "06adhhqd36ahjax1hn0ahpzmdnj5rxrs3yj6h7iyxc46s6d5cx49"; + doc = "1slizjqc40mqai0686q8jghnsbvdy78kc5kpk5v71pc484dk5hg1"; + }; + biblatex-multiple-dm-37081 = { + run = "11rl82yv0bfy69cmij15np3wc15jss82ghf965r0b1py37vsj0s4"; + doc = "1jypgpaid18g09xxryriaj4n1ql0759jfv4jshjbkbk5fgf4c2yi"; + }; + biblatex-musuos-24097 = { + run = "0zs2dwsid3xhcl01a2hqrr0mdfr1q9j0zga4rjlarfzkgznkqrwc"; + doc = "172kvn0rpmk331yvpf3zbyisv1qlykz8icxgr1xkq5z9bxn9qmkc"; + }; + biblatex-nature-57262 = { + run = "0pfpm5am4dwj04fwdjrw30dx8qrmfx56s7gkl9h9qyj2qadsx533"; + doc = "1mga7yx3radxwqhfmxzh2hmsyvx9qmal394cv31mlb3yd5ww1sv4"; + }; + biblatex-nejm-49839 = { + run = "02v8bfdxslcgilfsnw0g516zl2rfqx0d87hjb0dbm4md5qbry0km"; + doc = "1znfnxizc22dgpp3bkl1iim2ksi3w9klw4jam84103bpbl3vwxgr"; + source = "02q97wss9bm6xj9lvr8vx8jvp8bszkxgk4ayxk5zc4lrnjzw2i51"; + }; + biblatex-nottsclassic-41596 = { + run = "00valazq56srfggfw1mq8h7285lrx8iyk44kb8bhqr1q7nhl6pzi"; + doc = "1c5634p7knwv8zrpqh39zlpglbdbx9a5y5gw54gj37x3r1ij769x"; + }; + biblatex-opcit-booktitle-48983 = { + run = "1xciw0zxkp2034lccvhr6irkr333s0qqqacxqx20v51vjjg8ywkg"; + doc = "1rbswdipirzv68ckh69cc29k908ifpkzp3vxgd2j0bjl3qvbwcyq"; + }; + biblatex-oxref-68950 = { + run = "0c5ijpv8r0wwk8pnd8q0zg3xmkfdn1dkqncdzqjzqql8vm0hh8x7"; + doc = "054anh0z6z0yvxxqd4gsy2sk8yqwvsxgclazgpmqvfhr7xvjjl1r"; + source = "083wrmqr3j28756z4f235kjyq739hnkg0qnjnxs9vdw3hzwijry1"; + }; + biblatex-philosophy-64414 = { + run = "1fdqbfia3k8zldsyy7bf6rhkscf97v84m5c0xjnk0s0xb134d7hc"; + doc = "11pxds41wzdsfgikcyx84d98pp3sz5625kzim7bxp58vn5rkrd95"; + source = "0fhp5lh4g7m07cfpr03ca0vrn12lks8lsq3w4vbvkhh2in5w7z43"; + }; + biblatex-phys-55643 = { + run = "1vj1rrhzh7ncvi2dap2cjk88vdj0dmlpakjiz953rvb7szx0h40r"; + doc = "0z3y7gmcmp2p5g25jha6kwkd7ma4pzgqybxra4402p6aid823fws"; + }; + biblatex-publist-70515 = { + run = "0l6kwaqkj94ycmk2nb9vq61cv471ibrifhpv099x9qg4cx8g68n8"; + doc = "18x8yxillm7kjpwy7v16lwy1fz3m50ypwr756an83bv9ppay4ymm"; + }; + biblatex-readbbl-61549 = { + run = "0byz95nahaassfx1gpl80p4vgc2bhs9wfw9w7xxwan6b1kkkz9p2"; + doc = "1cp3r5j8b7zrl0k7zzhyjcrw9nypmr6gd7mn1q5whn7n1dn5js5c"; + }; + biblatex-realauthor-45865 = { + run = "1xv65ic8ywf18fdb246sr8pvq60hv4wmg7ris1glr5104g5yhg7p"; + doc = "06nvybm142cd1shgpcabddbrfyvzcc3yxk9zyq9hr3rfhzcqf05q"; + }; + biblatex-sbl-63639 = { + run = "0947b4lszjbhs0k2p6a31mzc4bci9pvh4awq6k6d4qzvpr51yz9g"; + doc = "06rqhkxpmlql5hvw31yx0mwkdjwnrh9jk4xazqq9bxilgx4y7q85"; + }; + biblatex-science-48945 = { + run = "0llhz0jmncjp8c2r255mxh09rvff1s0kx1lacxvy7svwj7fl6qgq"; + doc = "0daq39wcjryhcapsx7n216yr591scjcwg7z4cihpb10igx15kbkb"; + }; + biblatex-shortfields-45858 = { + run = "1766zipaps96ks920y5zggc0zhk8vkclqh2c3zc2y8x7jdbah1vj"; + doc = "1fs56vf86wwpaz1ik846r83zd9bpidrzzwv4l6jhxss8hgww6y0w"; + }; + biblatex-socialscienceshuberlin-47839 = { + run = "0fj2l2wxawps79v81s74jr4d8wz4pf45mmpry1pflm2zcica3ajd"; + doc = "09sf6k9qghwll84bj6m7v0xw6zm040y6n878x0ywiq64jc33h0np"; + }; + biblatex-software-64030 = { + run = "0d2g21gn89dnl6ldxdssg7aj9jigmlh66z8s2q8qvn7jg26gxv6y"; + doc = "1z3izka82kncwx3hqq2rh6482faw7rs11j1pfnj7lncacab2b41m"; + source = "0rzqm6csbmk3xrqnncd58ajhwiv7v881idzvcv5z48169s737j7b"; + }; + biblatex-source-division-45379 = { + run = "09wsi1nj7hcf5nswkd6syn63xhk2ghaxikz5xb5sfyci0lmnqgxc"; + doc = "1mfz2bxfwx24a2652n4jrdw1mhrm1y7i5vq54rs7sp5a1xfg2d9q"; + }; + biblatex-spbasic-61439 = { + run = "1pw2925wakr0wgcm33vbmqgfqnglzn8g04fapnzrd6s0h5155zc1"; + doc = "1p0fbxqyxiw3ihiw69z6zbv2g8pbrpdiad98iwxx5j12sm6g5v1m"; + }; + biblatex-subseries-43330 = { + run = "1c92azsgrp1cmq82ga3cvnca5s4j902hcncp64g9psgl9fm74nwx"; + doc = "0ri6vvzcpcm2hz73dkam0fgbnfm7i650x983qcngkr0jqa43xr41"; + }; + biblatex-swiss-legal-64491 = { + run = "1sqskc93a3vdxvycmdz494kddxvzpf6rgw6l184lizwnrz9mr8v0"; + doc = "1k0xgd5gi421zvh8bvyvq5naapb6v7216k2sn5aqhca93sifgvqm"; + }; + biblatex-trad-58169 = { + run = "1000rdnm9jqk89snffsf4ldl47wry8k5akm75aqhd9r7qbn73car"; + doc = "1m32xykdgms8i4aqny35w0happr6vbkkra9m4nasxp1vzykf0n63"; + }; + biblatex-true-citepages-omit-44653 = { + run = "1lqs1swmdmnhard0589k0r8gz3hp9bd88dz5z0kd0586vl7z2l82"; + doc = "0madnjxwjlz9hs6jzgaady4sv0878v7fyjs3sn1bcnzyw4krfxgx"; + }; + biblatex-unified-64975 = { + run = "06pq753prhncs0sk87dqlapm455jlyfvnx16q2c850cdipi33rdb"; + doc = "1rshsmqfjl3ajaxvcdiqr01hbm4dh5qxpbyp5k0a233s254j4ypa"; + }; + biblatex-vancouver-55339 = { + run = "19ymkk94c4l5sav1lb66f2lxjyfzzi1s78qd2a8drjp9q1c6i0j8"; + doc = "0wn26kl4nli220lfs663rdqmv49xgi76kjgnlwh99yljx7v47n09"; + }; + biblatex2bibitem-67201 = { + run = "1l3j9v225f9g2zmishkfvimd08di89p39g0sqffdwx0psj99dw5k"; + doc = "0bpbsaasi6kq5ggs3cpkmwlakdlymd99rfr028q5xj42ir8cba3h"; + }; + bibleref-55626 = { + run = "0ds1a91dm11y93dy46gflzgdx5rgzzm8j50q2aghbhfiqmb4vx83"; + doc = "18zif1ciynp47z8hbhc2p6r8jiqisj46as052scb5q6p49fc1ibb"; + source = "11brqv3pgzzk3j09z6ps6ggwsqm89y82s3cl6xldnyvx2ngc5ym8"; + }; + bibleref-french-53138 = { + run = "1r12767ayfh073559p6pdrfs9fs9g2dxcliyx06j7r8lyfab8d83"; + doc = "0kiijl5jhd024znr80g3xqdhz3jyg4vm4kyf1rcpa7dis4ffazpn"; + source = "17xih976gi8my8mdr8n1nfvq6hacicdk8a01s23a0sarj4qwxz0q"; + }; + bibleref-german-21923 = { + run = "1vki9hg39xhn8xzbd4wq6vn6zk3x9gl9bm9n3wr214c5n5mpxkq2"; + doc = "0q69vfak1yrv564qcw3nrklhq4sf62hi6l7z8w2hcj3c325kii56"; + }; + bibleref-lds-25526 = { + run = "18x44jyar9dnfmw4a5ijhfipscydqj2hybl79ngw1b88k9iq2wxb"; + doc = "0yr2kwzbfbak1c5x202w8jpgr3y6fq63vkjngb0k2y5ivmjs636p"; + source = "008hvab2f0xw9bg4ry74g19bfsrhp5ync4ilpya2h79smrwp5xra"; + }; + bibleref-mouth-25527 = { + run = "11x3ldyg77xzpx8yl27sxn6x5gb3jdngd5hgm42p8ac0x57x7ymz"; + doc = "0vrpyl0s13sw0hi9s14qamzk69c2vxwjy0zzafzmlfd0pzxhmx28"; + source = "1mdhq4qchr8gvdalf3rgns43b2lhniyp9d5lm3c9dnnlaim59hsv"; + }; + bibleref-parse-22054 = { + run = "0xa6nkbydiczmhphdi3rpipiva94x2pwmqgqcwmr6a66y1gk0d1x"; + doc = "1mn4hyfyialzmzm0syizq1vps07z4zxd853v3aljn6zwqcwfpkxs"; + }; + bibletext-45196 = { + run = "1p2cz95815vkvvc9fsa1qm3sc5grkxzdsyw30qkilff1nivb3cd9"; + doc = "0czz3l0m314a25i242kixy9f9spcj72h3bibfdib55gg05iw102c"; + }; + biblist-17116 = { + run = "0z69a5x3czy0hb59c93jrkmmg6i66vc7rw6szvchsbsj1c6gwjfb"; + doc = "0wp7x8qj7bh1pgcy01jmq35r2i1f8yvrv6bcr8p68d70sr1jqspn"; + }; + bibtex-66186 = { + run = "1w7vpf0kw6vi3hgmlmk0dpzk82kns7a77appx8yg76xcip2xid51"; + doc = "1zsqknlbs7d1zzp1gld8wd2sh0iccwq9vqb15xka9gs9wh30gc6d"; + }; + bibtex8-66186 = { + run = "1hi24b8mmpnz17cfj0p40ipyvzqhgkkhhgh7qkcgr1bz9k82q7sk"; + doc = "0l50jqs0dljlaspb5q6arvimvraf9iv6sch1hr5w5yw1m22qdqs2"; + }; + bibtexperllibs-68910 = { + run = "0wm7lrg1rdhl0b6i8blfs1vkslvsdjksjdhc9bafqrrz3wx9yx27"; + doc = "1r4bwlsggd4wyadclw06sj2akd04cy1v8j41g8wqp2j0x8j1jq7q"; + source = "1i1cavfmgd8kiz0mr1sh75p7rhnrma0gg0b6xypzkxzkgwp1kb8c"; + }; + bibtexu-66186 = { + doc = "19bp8wn0ssz7gczxp0imbpgi1zwz9x3ya67f072rjzg2zmfpphqg"; + }; + bibtools-67386 = { + run = "0s0mz84w97854gwsz843gvlqlgk4bs5bpd195m8xv8g9qljpwfvc"; + source = "0s69lggqnppqlyfc5r2k9jix7zpjy0nvljjimqhks250rjbgg0hi"; + }; + bibtopic-15878 = { + run = "0rzz1c1c6vgjm2r0gv65rwvbcv0asc5049agv75yyvqihvn51018"; + doc = "0hzy6353n1rzirfdjd8dgjhnp496i14b0z0n2x7gnisf3qksr0wx"; + source = "0abpdz3ir7l9dvc6vy5zi9ay103ga7i92vg3z69agd758xnz0v3y"; + }; + bibtopicprefix-15878 = { + run = "0vy9cah5mmr1vf4sm16212h36wz4623s07cagjqnmyprgm44sz66"; + doc = "070shh1cg3hdk097v9jr37f06q0qaaxji3vjdv8v24a1rg3rrpdr"; + source = "1v35hawmsgm12sv80wq2ld0rzz5l4shvky44l8wkxxh7i7vy43sx"; + }; + bibunits-15878 = { + run = "0znv09kqrwvmsjsw3lx9d3mp6fm8444zbn317q5yn5hzg2dyj61f"; + doc = "1zgj4jpl0fpmsrcp3h4qlkilflmy8zqhjamghidwzkkg1i9jsfz1"; + source = "04lswyalfivh01hp1wj3fq1q8960dmsvnbi8k856v3dhz0pv0whz"; + }; + bidi-67798 = { + run = "0iisr0ac3l2hrfja1vmihrf08fnly01dcfg0665x7yfck54qyjxq"; + doc = "11x4y6rkk5g9ah7gmbwhppwk7i6q3j7wydjvbhfdz27wz4azcv1z"; + source = "0nhkwk2r4fj5x94w9fq5db9nh051hxzb1j88q2bfhlf9zfwgiirj"; + }; + bidi-atbegshi-62009 = { + run = "0wpwp2fr233f0pac6llb5gmhz2ca41yjcmkqdil6qhpxscfpqizg"; + doc = "1nzg4cgdhjjsalwml50xl7ac25w0qfd5q18cs8viicj7bbjp13wr"; + }; + bidicontour-34631 = { + run = "1yj7vl5z4xh8i420y1ycz21rw0yy83z0v9nlvi8k3ph2qis7lp8m"; + doc = "085xfi5w350vbp4vnq8kgbilnz3jxwf4g0incvziy5hxh4isqirz"; + }; + bidihl-37795 = { + run = "09wrzqlldxy3lcxp21rdqi9bnjzza9wvdgssqynynjdmfggahd34"; + doc = "1k67d2zd16ash4krnkwvmwx4wl668r0pdg720vr9xq6q3b139y9d"; + }; + bidipagegrid-34632 = { + run = "1nh14lla3xv9zikqqpnw7nb26kshjd186ijlz9snz19nkgddq28x"; + doc = "0jgd9mfwar486gl7imm1m87a167c06cdhxg9qqp8m8nk6xdys8f9"; + }; + bidipresentation-35267 = { + run = "0kpwhs3dvmjhpv2n6kjly5cpj56gnwv3iyhiiwffd4bphzyrnyjb"; + doc = "0hp0zbr5mpwsrd4rh3rc8qmy4srp93838k38phmsm6dwgqkda2z3"; + }; + bidishadowtext-34633 = { + run = "0jpz5a5q9c9c569ssyzk48y77msvfkd5csdvv0cd0r62ivrai5jh"; + doc = "1bcbz6fiydj6dx8xzkrdsrm2vgcvn1jj4fk2jh1333la6rygvvav"; + }; + bigfoot-38248 = { + run = "1md91jivqvgf5kvwizc30wns9y9krk5pzvaihxkn9qs41j907wx8"; + doc = "1lj6lv7iizbsaj00hvrcrdk9w0iak3wmx6mdpfb77jkzgp9dgg1d"; + source = "112kj1669xl7qd2vrpgbi19cw00rkhj64ik6rrr885qr7bq5w79v"; + }; + bigintcalc-53172 = { + run = "01vz3qrhxb28v86np3a0spq9yxxc7faav32m136nax2vkm5ff8f3"; + doc = "1wa6750qyggvx7nlwq9n7s1rfdm1h6i5hv91y1aq6mn26sw68l1s"; + source = "00gnanfnw66bfrd5gk072z9rn6nhmqnjwf2dwnamvy3dpxgg86jn"; + }; + bigints-29803 = { + run = "10lsfqfzg0klg59s9zkrrxv4qjhnk74x90rkk2w5pi8zn83k6xac"; + doc = "0xj6vnqfd5rb8ahxbjaqz7jd5kpvihr4dx88avrfvdfr0qhg3zlm"; + }; + bilingualpages-59643 = { + run = "1yawm29kn5ghjcncvfllv7iaj6a105xg52r3bz1m74xhnxif5z1j"; + doc = "1bha7ixvvw04a3gj5lhpyw4pcarxzf16vkkl0d378bypa3lq5212"; + }; + binarytree-41777 = { + run = "04q8h54dl0fmczrv6fqvvisim1mz9lnvkdmij6b3jcn60z722k84"; + doc = "0j8gn6mqaf1zfi9y5ahfzmywa64kzl9jxpdcdz1fl98ailbzywf3"; + source = "17nc2whi2nh2r17gi9jn0qya8nyfjnn6d5r10klkp42b75jff993"; + }; + binomexp-15878 = { + run = "1mx2g0s4y5y9abmj2b7smz0xc2nzyvnx4x3f4h5v3w1x1kp5y0hz"; + doc = "1yi68q48p39v20rzny1603j20n8k6ddpjqi773955wmh1p4mqsb7"; + source = "00rmdk466a4kc1492b947q1f97d7cwd2svvc9wr6w1agzz8w890r"; + }; + biochemistry-colors-54512 = { + run = "0d4bbm1p3j6q28ckkl7ilkywrjx6iqvmx0qb27rpldw3jabf1lp4"; + doc = "10pa8jwpxr37hs0wcywzsq14x1jgjx1cqg94lpghi505mlrikcg1"; + }; + biocon-15878 = { + run = "0g6r8rh12pbnbhddcv6sz9h8wnv31q6jqs2xbj5fjj7vcb46z694"; + doc = "15wd9arkdxsh8aral3zgl83627yl4f0wdx2r8b6xb5ivvrbwaslj"; + }; + biolett-bst-66115 = { + run = "1ap5arz0s65bqqfllzwxisp3wa327kgivw1jh1gkc4wljq7v4jq1"; + doc = "03hj647j6b7y43djqvb28rkjixpr0y7i02420piskp3cg90hn5dj"; + }; + bitelist-25779 = { + run = "1vbz2c27jjc94i23s1dzl9j0zf0n2935sgxgc5hq3bpaz1qxvm7h"; + doc = "19p9f9bzn60nf5163rdlw166zpk7qlfwhnc51bpkppb0w4rni2ai"; + source = "0r3lccpampra8dardrr7sb0swbx72aasaras43q4nx4jv6z2561k"; + }; + bithesis-70136 = { + run = "1jj98myh3x52w6r7wyv605r97jybid91yyx5ix5p9iycrqhq61x8"; + doc = "09c7jsipdrl7jv6jx55s750la39gwdj8fcprphvbxaf2bx16600w"; + source = "043bw2harjb5cddrkd7rcw66xg7lmiyhwpwdmh8i7jnjh0nf2b64"; + }; + bitpattern-39073 = { + run = "1j01vh1jy41714k3hms4nkk8j5c5d4nizgrm5syi20n8pcn3l9pi"; + doc = "0a9120z9rsq8pqi33iv7f4j79gimjgxfqf5jhnrnmz0hgqdpl2mi"; + source = "16bjmxm11kh0ww6ymk82qs947zgavm100nsfnjl60hxwjl3yknzn"; + }; + bitset-53837 = { + run = "0ynyw8fyb5cidlz00f42cf21gakm2ir9ilddaaz12s7qq99lhj65"; + doc = "135dcx0b51br6lf9dxd66jq2xa21bpb1mi4y4kk5z6ngsd1imdag"; + source = "0yds3rhgq52sxvwn5kc32iizapbs5g21cw6avbppiip0s5x0b538"; + }; + bitter-67598 = { + run = "0x3xnz8fvhwhixabr05rmxw8j0l03v2j5ylj7jq4gni519n3g60q"; + doc = "1x8zzl2890c44jqk69ncsgj7xhchysbwkf66nnw0dsk2qfahc6xx"; + }; + bizcard-15878 = { + run = "0s6c3s99hid9pkilskd8ssc4hv5d5yg5lvw6kqz9szyii4rb6a18"; + doc = "0ic6c43nng4lxsznkpj7w86ampdzjrqqcsdsm1f758rfds7wbnf3"; + source = "0ywip83r43a721yfzrfnkfms0saly4p2ihagyp6259h2kji3vdjs"; + }; + bjfuthesis-59809 = { + run = "1gmd1fjwl49h98mh1bqhlxw63bcpy3p6ri33642p49aypj9iyk80"; + doc = "056iczn516aqi3n04qn4q86w06q5xb3cz07sdb9lr4yp35gxmfzh"; + }; + blacklettert1-15878 = { + run = "1gvdw5gwjzgxa332ih2rp4whdcx1rdn5mig5q9cyiy28zvm1zrp2"; + doc = "1m6qp3bkwl77khvanw498bfrydmyvf1qx5a9sp66x7l7xgjnndlc"; + source = "1c38hmva1ffzani4mjg7zad0mr6lphncspn57m55n28hwfq7x8i5"; + }; + blindtext-25039 = { + run = "0nwxq33ffivn2ywxwx2w4y7ny5nv4af9p5cwn6c21jadrdj1rysp"; + doc = "0gg45ayj3bibxvlghnz3vs0yj29zyr50bf6la0m26ma8ff0pw40c"; + source = "09ppqs9mdkmax1s20m43hdi6yfcnpy0ylwdi9h9lw676gr65cn0m"; + }; + blkarray-36406 = { + run = "096mlldfyi6hxsnp3flkr1gfqhvhxm2vzk81zw6dl64xihkvl6aa"; + doc = "1km35jnmh1iwya05s3ilhikzvz5yspxf18jh3f4v6iv5g8rxf9gd"; + }; + blochsphere-38388 = { + run = "0lifkhwl8rigg1w2k915yv1r9xylsj0qnj48cx58likwanvl8s2k"; + doc = "0dbh11c3fjrdypam15gjlqwf3n9wxwhjqdd1h01f2f8yams42xfl"; + source = "17bkqf64qvjhbids04bm3qhghqrrwf4m2bsl3gjxxc4h6sfih259"; + }; + block-17209 = { + run = "146ava8k2z6mlr2aq5vydax1i2sy6spn4avshcblgr5ph49iirp4"; + doc = "1nwb1z6df3y0anzrl6b45fs2k069i42bcmx0i4p9z9fsbgqqfw1j"; + }; + blockdraw_mp-15878 = { + run = "11977c2f4100xfbrs5vcwz3vbijdvybq80zmfansdmxc0w3w6sq6"; + doc = "1qb23f08wxmw3miys4sn89h48imzcqz720xfs3ihnbk2v75q3rd0"; + }; + blopentype-69080 = { + run = "1c87lxkmscs3v89s2pfy4r0cymgcbrdjg0vyhhcjh2ip29dv4kj3"; + doc = "0v0yijfjyf1l2lxpmkg4w1ij7gj0mdmxd51y33qnwgh02g18yrjm"; + }; + bloques-22490 = { + run = "1gr3521mxmabcwvkqxn7f0wcpcmzy5jdpypyafyklmnhc2ij6zqj"; + doc = "1jmvan6ja2zf01lm0dmh3dg4rf1cagfniqjfrmzpxc062khf97w3"; + }; + blowup-67640 = { + run = "0ijgwims5gklp37j8zlc0vdr6y2l0gf3nv2jnjhbbc49yv4n8gim"; + doc = "01an3fbg94bg3wspadjil9npbx108g5x7kg8ga7c1nza0wygsdd9"; + source = "1b53khyhzjy9mww925crpjmfgk9cjsmcz5hxjpl8wghrc4qqahjl"; + }; + blox-57949 = { + run = "0p3ci3xf1vndbdf147r9l1s68x72g7r2np6znizj3qqxd22h3wxx"; + doc = "0hskpi2wnlrrqmv0s8i4g4bh03ka18w3czvnjjvhvmf7im9wq2ha"; + source = "06zimj2liix2y0f6a35kb8q9d9asp48c58mhc3pssa185bcc7bv4"; + }; + bmstu-65897 = { + run = "1x89sc4grkk3b9mhi4y1gkxm9pcbhg54j8v11mq2bx4nyl0bgrll"; + doc = "00950rlqysn7faapvg9z3knb61f8l5hyy9kjxisbs80z99mxh5rn"; + }; + bmstu-iu8-61937 = { + run = "0xvxli6na2nc03qwn4x68sq4jdr2x830yvfb507j1990pni1y01v"; + doc = "0kimc29vl79ib5xmrlb1ipfslq2y4i3hnabxcaisrb54z0y3rp1p"; + }; + bnumexpr-59244 = { + run = "06achk9z1waxr6ndcfplnvhvd7k4z1l9mw9plh92qpj1dn48ncbj"; + doc = "1abhn0hyps7azg4fipnyxihhzmk5fdnklb4gxxsjvnnr1grka38y"; + source = "0arhv81y8993498qkrnlnsa8fiw88s389q6ybvndrmf85js5nwlb"; + }; + bodegraph-68785 = { + run = "11y62cwwjkxpr7xnpc20aw37lwcs83177w2gnxz7f3lr8192b28z"; + doc = "1k428jlknm973v64wj1ljw470q3939kxns7xkxcfn5r3hjnqhmry"; + }; + bodeplot-69742 = { + run = "0fril19wxykb3mqq26mzmbqhdsh81qfnprkx7dyd4d2s3alf8fm9"; + doc = "0czy2qkj6ss5m5flz3bj6j9b5k5gaxgz64xaq93al446sjr5cymq"; + source = "1r1glsjb3kpi95lprz3d8vqlbhx6l22nf7arczqh169rz3v8y5xb"; + }; + bohr-62977 = { + run = "1fbrgfp1xnxa5cf5yqk9735wp0qwkjkpf8sv8gdjg6a06mpixn6m"; + doc = "1jbmck8ld3rg0nw5rs9lbnr0i34gi2sxncri2fmcdpl8pp3xnw55"; + }; + boisik-15878 = { + run = "0xqr3sgmzklqsvd26f2800ifs674lf0a4kgr44na2l0lf5msww2c"; + doc = "0l0hi4n5cfm1zdkr68c6ks3gxkda5bgwlnf62y7x96q5jkscdyxg"; + }; + boites-32235 = { + run = "1176j9ikh36s0cgvsflayik1xp0zycbp8m9hg0c7jmzkm5haqw41"; + doc = "0visqy0qg18sa4mxszdl601yy0ilfgglv872dhzy8bnqqs8x7zzp"; + source = "1zirqghkw8kk8fa3xahd27dh60phxg3blp98iavh6bdhj0rm7iar"; + }; + bold-extra-17076 = { + run = "0samckbdgi91y5ay98h6jcaywcqfbmzcdb90kksjxv160nsvf5ca"; + doc = "1101922s78y5d9rjf5immfir46vf0i1ig20wp360zcal571csgjl"; + }; + boldtensors-15878 = { + run = "0nywpj03fzn31fffyfy9plxgq9008hhs2v1d3nsy3ggas5kvrm5c"; + doc = "1vdj6217qwal5005zsmj0jm32s7scii7nmawljqi1j1a7lzlv86b"; + }; + bondgraph-21670 = { + run = "0ryp004w9bbphqwddprw8c3v1vndl0r34gx7ag36hlqipl6r79pm"; + doc = "1hk7lp72x6skzvknhndz6f4lppamd3frl2f4dbs4hlvi4wfwjgc0"; + }; + bondgraphs-36605 = { + run = "0dhm5g508wi8r8hsk753bqflc4rvm4zi8iv0564pfsfz40fh3xnn"; + doc = "1wnjhyr6r7jkmxzry9my2mw8i7q2nwq26zqyfi9mh6cv3x2p8siy"; + source = "0qqs868saap9zsl70bwzfpmq8rnyvq2k45nc31ddzq3563djhfi7"; + }; + book-of-common-prayer-62240 = { + run = "1i6dk9ibp6al8jxhk6f6a8vsgpy40cr7m5k8zl1wq8fnm4wp13nr"; + doc = "0ija5x2rgs8qxz3p4i81c3b9sznj749hasznxnlgn7anlv3s84rq"; + }; + bookcover-65394 = { + run = "0mg4zvi6wc2g80pszcf6a9ahqp2aphw46i59xjda5rjhq1xrnk7p"; + doc = "1gppgwjs303i6f0zl23xa35w6ycfif8f081azbmak19f3vafzqbd"; + source = "1xfn03hcrkidd4nbki6qqvk29gdh1kkd1idjqsdwfx7bb3ydgi7m"; + }; + bookdb-37536 = { + run = "1qky1ccqyni9x3dgjn6s36qyqdqzkj65m2glzzqdc4qs2h1hqr0q"; + doc = "00fr2fid8yg3ww2gmgadxx90y032vrgicjh23ia41r159clg7fqp"; + }; + bookest-15878 = { + run = "1n6n322vb157fz11djcnfz07ykarin7n8mdr7v04wlsj2gfvv5hi"; + doc = "1n94n8pv5s0w12w7yiws7sv8vwg06r245b7lka3g1j74p3xyc5g0"; + }; + bookhands-46480 = { + run = "08nsfgwhlyv9whaipx74hr4w6dhpdlvwcd6kxzcznxc66mlrnpk5"; + doc = "1z0rir98r4fm8vhx26hw7l22p2z7swj5b2i3jdfy3c6cj0pi4g0g"; + source = "17clfn8g2f48v944jlvwl3jsz9ixkw7x1xjxqkpaqnng0wsm6fyj"; + }; + booklet-15878 = { + run = "093kp4ryfp8q1hg8ddmvaxxsw75wplgz4rrmmwmzcj3hcgyynr1f"; + doc = "0cd1mvkv29r2aqdy4bs02m3ck90rdv0nz01cq2x5xvqk0i8j5dhx"; + source = "1c67lj35yh0w9bfgiba9ank6wk9zqq3l3vvgwn8f3v6kygyqha63"; + }; + bookman-61719 = { + run = "12wkjwpzxn1a1k3bb41gpnky1jjsh7gzj4xahsjd087fpmrsj9p9"; + }; + bookmark-69084 = { + run = "0wax84d0wyy1z4a78j62nnmkgn7f9ww6703qmnhyj9x9206dlh31"; + doc = "0adm4hcf92xqxsb4cl01mnf5f6mvpblr3b8phxaz02xwxx3203vk"; + source = "1w48rx66n77l7fpqpqcn8337qylp09v2pnxphhnl36sws5yw6nqq"; + }; + bookshelf-55475 = { + run = "10sjmi94cc4ix3a2c0qpavs1sc0mqfqfbbw4qygf9w1wdivrijfz"; + doc = "0j0lqi7bjlivivvrvswlw89vav6fx8wg95bn18amlwy5l8d7kyiw"; + source = "0jx8dfl4j4k2av1syngad6narkdjksqcr71q92h3090rf58njgj3"; + }; + booktabs-53402 = { + run = "04bfbj0v47hiww6z8xlzphm2yh4vidf9gcp3rvh81j66s7wybffj"; + doc = "1hp3fbvg2v2hk1bns9b28hdjb2bcvn5d83apkr503ahln6rigf8a"; + source = "0p0hym0xn4zcmq8q5v93z1zi8n7hxz9kg58fq53y96hf6isigdb5"; + }; + booktabs-de-21907 = { + doc = "1ld7zdr88xjhnnl2x734rxr7h0fz84awapmv50p1kzn6fczrwyam"; + }; + booktabs-fr-21948 = { + doc = "1xkqh6r2q835xaa92b24fzf61jsm85280570hivvwnch96i4fnh3"; + }; + boolexpr-17830 = { + run = "1jd298qazp3q0r9dwn7m35yrzvkl988c41l0r0vdq4g3nv4ppv79"; + doc = "1cwj9473nazkz0acz4x7j1xp50139xs1ifqck40f2vb1gvhasly1"; + source = "03kaz41353m40rbmars31pkbrrj6zwiajbv6fkabq0gsd9gy7bq0"; + }; + boondox-54512 = { + run = "1x8xd0q0yg1w1y06gx9fq25jakf7s3nz5lf2vryh5zlan2fz0ic9"; + doc = "1sc5bwpvgz28q2ym65vccyr5pdg8fn680kd83zgcbcwd85n8nhrf"; + }; + bophook-17062 = { + run = "02wgw8462aaqknrnfsv1y8l6q7b9qvscnarysg2hw51l9g349idb"; + doc = "1j5xyh11h3wsidfjnpw2wr8pc5xazf5wbbzi04r3wkw3v0haar2p"; + source = "0mansjz0a6g02k9n7ijyami0gppkha80mnyaf9sqqzl6ppqygvn0"; + }; + borceux-21047 = { + run = "0hx755ghdd697fdc48hlvr21la4s9wvsn4v9c0n6sirlansba8ca"; + doc = "0fcsjy8yi8zhrl75zb2wb17v1ilpgipdr85vhi4dsjmw18whp03h"; + }; + bosisio-16989 = { + run = "10dbj6gzv7z1na2bynrdz9971k5fr2vr4njcnsm16nlhyjzypfhh"; + doc = "1a0vyxnhbbdm2hi8gydz0vyasvzzh3k2scyv2kxx4qbwvv4liyk4"; + source = "12f99cgcf4mphvbqi2ffh7nwj627c5cxc9v8xrcg8nwfxr81h7hv"; + }; + boxedminipage-54827 = { + run = "1sn8liypm113jvmxsb0bl07cprrvdgq4rhbnp85lb5671djr63gr"; + doc = "06wan6b11z6g2nbw73z5l27mb42cd417bq2vmmmxla2fyksjqqa3"; + source = "17lk6ns0zl83nhdi8g6sgij4ajghksblqx2aac1gx6fmq60p7pn6"; + }; + boxhandler-28031 = { + run = "0ab7kp5xpsvn0i796xbsvnz8lc1ka1wqayva54sfbsv9bg9n0xg9"; + doc = "0wsl8ivnyxf38rj2xv11jzyiqd5pgcpjnb3nnabl8a3ijdynzsci"; + source = "1l875jplpql2bq0h55nl9ddmia31069chxc4w86pzh4acqn2c60k"; + }; + bpchem-45120 = { + run = "13l29qi6w99d47cv0ky9hsm6356vk7n88xkxjx5v5pb6vrg8zblw"; + doc = "0n8w0dvfqal6k8syw9inaykdj2ndmkjqgg0fi7himam2q5qa36y6"; + source = "1fbbs8lfzr3nih6m623r1wxdm8vgzfli2q97kp5jl998pz0ipwin"; + }; + bpolynomial-15878 = { + run = "16rzvfjwc5lrr6fvxjwp383ayi4pwhqk4x6k9blqzn0c0cakqmvc"; + doc = "08d7was7ly4wgy04np72f9pn4kz20hgfsprvzlpyp2rfxvixphfc"; + }; + br-lex-44939 = { + run = "0pdhzadajg5vx5da6ildn9k2nfvf1ks4pxjgm32ajpcpfxbjpwk3"; + doc = "001822zh0f18zvf6b51qdh4ykkv6ywqa5pm8q2vsmjv8rayjralg"; + }; + bracketkey-17129 = { + run = "03mq7rfgkgv06m25hkvlhaw1mqw3xr0ghfjj2jb4nlpkwn6945nq"; + doc = "0kr9il6ac79kvqdds4rn4g98qxy7nvas62364sv75zv0hb6wl0kw"; + }; + braids-69398 = { + run = "0q4zrqx1ynlv8br0my5cm3j61wrizzq4s2wal010yx0lxlzm1gjg"; + doc = "1yzazlfb6f5xr0s21yavcgw48x011rq1783n1cnhqcl9y7c2qirw"; + source = "0f7a18z19z09jkrxcqr30rvnp7179fcsmc5n8fyp77y0j48kf06q"; + }; + braille-20655 = { + run = "0cy4bxpg284blfpmpgh1v9vyh5bczdyz9zdsc1almc51nv6c6zgf"; + doc = "1ygyzvyz4am70n57hs8xhrkdd8hpn2mvg7hg3rdr5b6dvis2ibj7"; + }; + braket-17127 = { + run = "1ml5xz6pyj66kc2jby0bg02m79vfv9z3r91da808n1zb22mmnjkf"; + doc = "09vqvl0v1qkrhv65bh9ym1zm254iigl21d4c98df8ayvffjf6bx8"; + }; + brandeis-dissertation-67935 = { + run = "0wz3k1yyxi9qdfqkj7h0bag1d1dj2yg63h0p30ydaxid9qbg4viy"; + doc = "1vqzl7fkphkk6rqpg2rjdmd2a88x0dc96ff7hqrmcr085x7vyy7b"; + source = "1rw5qxzc9ksy4v1z8r0xh5sa0s63l1dvr5lh83vjs6qgw7sc2yz4"; + }; + brandeis-problemset-50991 = { + run = "155al8iph3949h9859w32q6v885f0p6wd18m53rkliqvzc6d9f71"; + doc = "168ywrm0cnk1l5fmqzpk9mxf4732mjb488gnqiz128dbsshh37yr"; + }; + brandeis-thesis-68092 = { + run = "0ng8xi2cn146fzafk4p8n651v4n7pqjhmq1y3dl52xphbh03syrc"; + doc = "19acaxmg5r46kjk54z6gm59rf3pcbc7wlgqr7j5rbbp390c7kchj"; + source = "0j85pasvrblbvsi9npnfmx9mc6gnxj9128d3zc6iym9fx3vfcqra"; + }; + breakcites-21014 = { + run = "0f3zhwrk0wapckz83304anlp2ssii7nvzjdakbxfdj51cd6schpg"; + doc = "1f8x16qy5v27asch2jhbgh080vmv7mza4z5w63h31gdglbkwdp11"; + }; + breakurl-29901 = { + run = "0a3np519c1knm8i60z1d6rmmzdhfl340gkf6c4m1yss68didq0cn"; + doc = "0dk4hgl3411q0k9dz9f9p5f7r5a59rpjcicz9h7ynpc4g3nhn019"; + source = "1hx73iw3n5wgvaz2niqargiw36p068pjl8x65cajn081831syzfc"; + }; + bredzenie-44371 = { + run = "1mcl52mlbbw0yxbs53x9a7kh3xlaka9c7nszfajlhpvj4s3jr1pd"; + doc = "1zgmhhyqf2bwlf0mi509nrnzqqa5g4qxr3zj46rsa8jz0giaig44"; + }; + breqn-60881 = { + run = "0dm9r7zjdwcdv8hq0l08k49lq4pvvf78hrlib16rk9s03rz2v4g6"; + doc = "131y7g7hia9dgzf890xd5g4wfw23zr753kk78ajrdyn0jq1ipshs"; + source = "1hja619zcayr2gxsxhsfpv3gp9x0bx8y56mjcpb9ykwlxax4zfpz"; + }; + bropd-35383 = { + run = "0l7ifzaqvqhk2dr31757ias4w4vzpdz15kma0bj2fm7k4sjx7d5y"; + doc = "080g65q0v34rbfl67mpvqfcwfvr5znwv0rys8m3fys1s9d4yyryw"; + source = "1kk38an662s7blxrnk4nhfvr49aymanj3qcm288ca6kfabg84w8a"; + }; + brushscr-28363 = { + run = "04vpb4yvbazm9lb7k2rbv4wr372k3l6brx37fx5283fpzj3wvhxv"; + doc = "0dv19f5hfzwnw6fd32glqc71rbjwi1y66p5fl1r17pxsj16nlyc4"; + }; + bubblesort-56070 = { + run = "1qs3y6vs5z5m988cj6dl9n74m0j5d4hsmnrz6xfbpw2cs9g86jj5"; + doc = "0pcbzg1p1wpw00h7h1va4j6iivz1ky31k8aq1jw4z9s5rwz64p9h"; + source = "11g2brc46977w61sk0q9j2wmn5q9x9s3mv6fcgj8ywql3g4r85pv"; + }; + buctthesis-67818 = { + run = "1z7svjpf73ziy7iyd03x4g17k4y8cbqqdzi2ar0rpg48n2sxpmfa"; + doc = "0lqvvf1bma1r5n8pawqqjb78jjgknf19j0810dmxzzzrl7mvxscw"; + source = "1wspjl3bjpv3dgxakrb78w1kmb8i4hivq3wj2mkrwh84ahzj4hby"; + }; + bullcntr-15878 = { + run = "0djfn002j12nb84svd414zng3rnjp79ssrdhfb6j62mx0p9j2hk7"; + doc = "0c88in90fy65pd9shbf09bl5dm6yd3z7g535ni5js251bqa9wijh"; + source = "00pdz4i2pkn1fbihaz16vbhsnwaybpcavvmndg7nj47jlcfplhfq"; + }; + bundledoc-64620 = { + run = "06haydgwqfhzpwir9qbcc72y0x1xl0jhvyfh4gx37cpfvxz514qq"; + doc = "1yqsh1kz5hm6rfh4vrl658y50ncypwb1mdw2p4qfffvp0w5yk2kq"; + }; + burmese-25185 = { + run = "109492p6k58bdgs4y0nb1hfnk63pdpf0x4b7az8frfff4wg2jvb1"; + doc = "1lwgifmixkyxscy6ichwmc8lv26dwmcvy2nm68z2wq0cz7cihjli"; + source = "1iwnsjnacafq1w3n6asj93n7nfxxyslf69jj0rfrl05fai0iq458"; + }; + businesscard-qrcode-61719 = { + run = "0xv56yqqj8y4270955srbiw7qy8bm9r3ih0zazlkrxnrxyh82jlk"; + doc = "0nfvak5730q4ci88dyqln97ljhjbwxn3gk34rq2b5rk5cy2inabi"; + }; + bussproofs-54080 = { + run = "0d783i6srwanhm806hk0y5igbw99rf5x9anl7ib29pijrqvg8kjx"; + doc = "10mn4g6dap1rksl5jnsp8pv3n0hhfrb9imldjyrmiika2d0prfp9"; + }; + bussproofs-extra-51299 = { + run = "0ndqiz033c8dxkdknf7hy1d42y0g2hgdb091wxrvpla7ryawcb8v"; + doc = "1bg3sh0r7kqkb0hljc5m3x9gn3wkfyjr9b0d8myjwwyf4g9hzi0d"; + source = "0p1imkwz82zwzp0p49a2vj7gdywv7mxr3b6nbmvkpz1n2qxs2hsg"; + }; + bxbase-66115 = { + run = "1ijrq63y54ahv7r5f75ssx2xjb2mfbgxk9pq53sfjk8cww1m9k0l"; + doc = "0b6k87rxc8sxdqgbr61qmkrfdrzllc54svbm5qdxvknimgsbaiv7"; + }; + bxcalc-56431 = { + run = "1lgk3zfraip1jx7hpkkxwzril5sqc1hn00km3ybicsvi53z1q19f"; + doc = "09x2b2cdxgf7lil1vlw4bmmjn2kl84cgxd75w2js2y1znsfgsivz"; + }; + bxcjkjatype-67705 = { + run = "1awhcn56jiwym35gxlhw4m32y4va9qh1skjjhk455plfmbydk71p"; + doc = "1d9v4al9hyimw0bbndd7d8jjc8pngj5xrds1a8j7mgcjhkyyjin7"; + }; + bxdpx-beamer-41813 = { + run = "05zpcwq6syy612w8jw10fqym4w4b4qxrd2i4n4hqwxv2sqgsw4n2"; + doc = "0g0ld901kdq3558ngzy6mf2f2vgjjcngiig2pbjb8xakcq933jj6"; + }; + bxdvidriver-43219 = { + run = "06rw5wwp5ky30s31f23gl4hpyzakn5b3vvgna8iw2iyy6rw5cl7a"; + doc = "1qwxy88fnfsx9na6c8r56n6zhs13d8apkjq7hhydsfs7qy54q4vn"; + }; + bxeepic-30559 = { + run = "18by54j2rg04n19whsb2zjkksrdh6f6i54fq257i2mvcp0qpxwr5"; + doc = "0117dzkqs1sy8si4dbal9p5p6csskcby2swmf2911c0vbpdl51zm"; + }; + bxenclose-40213 = { + run = "1mii9n7x232y5398zl9xysg81hflamrj3dflrngs94mm4akmcv2d"; + doc = "19nmr2ripjifpjw8xrr5dhll392llqbfqjd2vj2zdgkvqj4bar4j"; + }; + bxghost-66147 = { + run = "1dydfivb39ly87sprrqc42s5rmwgpqx10chmxa7p3x3r25dmrnzf"; + doc = "1gi4jj5xrs4wp194r4w8ycjvk3m18a499lckzpqgmb9r2n5ab8a8"; + }; + bxjaholiday-60636 = { + run = "0qxc2s07rqnyi0a8a050h2qri4kaqfcwc26c2dz0x8ypg18s6nhq"; + doc = "09a5q2cra7by0q4zxl9nfa672ryz0cdv3xkw730cq3qyyxgc06ls"; + }; + bxjalipsum-67620 = { + run = "11gg3r67rs7j3f4by1irz3sfnwlz88i8w3kzf0bdxb52sfrh57hr"; + doc = "0wxw7dlm8rwgz321cdfpx14vcx3hf2skg61ngr5bbmcmc389apk3"; + }; + bxjaprnind-59641 = { + run = "16rdpkqlsx301zvrr2nyykpjqf0wj1xhqqk72a5jajyjpcqsvki4"; + doc = "1x3wh73nga2l8f7l24pyabpz0b8g2k6hkszwl5dijrppicl875ym"; + }; + bxjatoucs-52509 = { + run = "19n1wr7i1mfrabmrsgnmvk5wgdqhbc9lfpz3s5qhnsqsz69rzi00"; + doc = "0icd5zj0cabkvwjgncsjmqwx79d2rqsm7ddp54ahczfl6mfg7fwj"; + }; + bxjscls-69637 = { + run = "1dzcq6mx0agsflkbpmhna8yz8r0qkzvxsav2l8syk5v0dfr7jzih"; + doc = "16v08rhy39bf4p8r23va2xsfyvjwqzjf0v711hbg558nyxgdjaxv"; + source = "101larbrpv6lgynlj28amqv7wlk0m5ydzkbwq7cxgcqqnmrlwviv"; + }; + bxnewfont-44173 = { + run = "0mc8akfajlyl6vfh620h8rcyfv02gdg4ycqx18lhb9vfivi3j4py"; + doc = "18na6f8nqlagfszk9miy5bbx2bylgspck3pgglbkqb9cgkdf4qq7"; + }; + bxorigcapt-64072 = { + run = "12bc2pv884wi9z97ih1sm5r8x67vrlqhd19f6m1naz9rs7jcdxxv"; + doc = "13gp6632pn7kvl12rpbz99n5imcsnwf43xx4iq9wq6xj4qnlf7cw"; + }; + bxpapersize-63174 = { + run = "01gv55dv9676m7rkfrmz31aql5xb69drl1wvwh7k1s3xrywik35j"; + doc = "1xsg1nvr7i1smrg94110pz4my0vvi1imqkhksc9daki52iv1jyx2"; + }; + bxpdfver-63185 = { + run = "1hhl848f4m77abkwa3wz7zm3slnp2k9qbmaj2sfdr0hvyx05jwpl"; + doc = "16919nxavpplbzwxl10rsbhhqcx7pdydcmf1v5z7hmkmw29a1d4v"; + }; + bxtexlogo-63231 = { + run = "1g8iy5a2cnfsxggzl49vbjw2fzk16jcy17vx10qp8qdzdzw29gs3"; + doc = "19zq1rssw0sin3gz6a689g2khfc6rxhyckqxg0k0kj3gr32058kd"; + }; + bxwareki-67594 = { + run = "1ax779x1zf3b68a46pa3d65wdna3c3vhbz0r8kj8kavak044p1qv"; + doc = "09q919sqr675q3iklh3yid7z6hn0d6pvk2a2zchi8rd3xdqpv06y"; + }; + byo-twemojis-58917 = { + run = "1c43vgcnkdvag1wdhivl49qm3c9pf29w89xgy0m02jrxryrjy6i5"; + doc = "0bva1q3zxzkkrz2cc2zrin955p4r251hlb0w0gyfm156dss0iqrb"; + source = "1msy8ja579nysqd0rmbw1xsh6hksm44ddi5q3x0i5p68k2pk1i8x"; + }; + byrne-61943 = { + run = "1bzlyhysyiwfxgjzdsz0ax8mkdvf3ln9fnwb33px92p167s1mdx1"; + doc = "1wn4gqvaym5gjdnxa1pjbvnk77xzk6dzvpjil59nagibp0ap48pg"; + }; + bytefield-68366 = { + run = "0ygrxp4il760rrm6zakij3h6v6a61bgwjjbsy2nd816yv5a325ga"; + doc = "0gdz5scdzh64p4pbw8f2vmwvs7hl012d9m3k492718shcfzs1y79"; + source = "034azk9zmy6zpwi7a5jchwnigg2vzcbh998a1izgb79fdlw5hpyb"; + }; + c-pascal-18337 = { + run = "1gbijcvhkfc9jhdjs07l1mz4p8lchrhnrl1yj2gmzkskp4v2pkbw"; + doc = "17ddnb3k2q279xrrsy3y5n8qyk7r8hlrw8vd446a11qiwypjvxy7"; + }; + c90-60830 = { + run = "0h4y0ydp0vx0hk5s46lj4j0vji6yslc0gn02rmpbpgs6ic34cm50"; + doc = "0bwbqi9kg39rm63vzngrswsg7vnibrfxlz8fhsqb947j20mrj6l5"; + source = "1pif2g8ihgxf3qznhhc52gi9bih5ai8a986c6l1zxlmgrh678wxh"; + }; + cabin-68373 = { + run = "0wlhsfhi6f5wvnvi0k0h9j8xiqy5dp7fxks2ipw2ap9yv3r34pfr"; + doc = "0h57p06mh7drx3klgkgj6w6k7x4kc8h2yi0sya1ygi94kwp5x1lr"; + }; + cachepic-26313 = { + run = "1j93lljbpwca363sjk5qmljrfq4f671kg4qrnfyv9zqcxcpyfmmg"; + doc = "00j7j75zq3wa6z1liy0y6wzxjv96sq5r4dh7kp9f9icmxzs0x8xy"; + }; + cahierprof-68148 = { + run = "15cimc5inid5zyb221k75dc42gdkvzdvxzh2n6wdw0gj12m9y2di"; + doc = "0qd8mlngn6p5pzwkhkfhk8p26d9dgac2mn2har0pwvkrppg7vsj0"; + }; + caladea-64549 = { + run = "1xvpf4ly47vn8askincn7wl8k5skhn5ir2wj1nba6mgf84z106v9"; + doc = "13j961b3q42vpa7xlyzlsrl6f7ndnlw1m1zqi39j5qsb7nhpy7cw"; + }; + calcage-27725 = { + run = "18rp330i29cw8pkfv4gzlr4lz5rlcvc4k0l8mvsvs0xa767fd3h3"; + doc = "01xp6i814bnzgbcghdpyzb9f0zx3fwmqd3p97rk4qlf3g378l8y8"; + source = "05lcg7mix6z6cw85bpzcqgxlgb1vzb3irhljlfcvq08lrdfjy71x"; + }; + calcfrac-68684 = { + run = "1rvsgszxg0dj2j3p58m26rqwl2qfinkvfiw54nq6zzzqxqqi03l0"; + doc = "0r4in3rrzhs001bgck0y0h484ziqs90026fmyxnnfv9dhcxdp11c"; + }; + calctab-15878 = { + run = "0rs028w20fcg5jmmnhwhvasb701j763pk4bwv09lj3g78769k25l"; + doc = "07fxrnpnzn23lb3lrlvil6a8624vcvam1lq6sf8nrgs52fzl2grh"; + }; + calculation-35973 = { + run = "0v7f5qx319zrwhy85lvk354a7x2vcainiq90y1jkm5cscs23xqjx"; + doc = "1bk9yqx607vp65ifdawaldcsxm065hmyrgzwyy90wkn4kmyq1snq"; + source = "1y5a2n2asfhwm8jylfg5zm5dy4v5s8gjl5ndizwk1ywwl0am2dxx"; + }; + calculator-64424 = { + run = "0ha62j2mdg6f0h9rc03xaniq3kgfccihwjh8lbf6r6v609kqncwd"; + doc = "0ilnsnlzxh8zd51h7lj0rr6c4fz9yb8dff87yjnm73ndkvia0ky7"; + source = "1k5vbywm427cx1xvvh2fv2g79nikspwrp7sk9qcvaf69g8acs93h"; + }; + calligra-15878 = { + run = "0x3wvp6crh6rg2sxzwil3jr13h73sjgbf7ar4y35na5ksgz1z2j7"; + doc = "0pp4i750ga99x72kzy818062jvldylyfanjaf8nxgkglbyiw3l7r"; + }; + calligra-type1-24302 = { + run = "0liaz2jv1ad3xvmaxdp3vd2b3wvyg0wm1jlrrhxljzazsxzs5d3p"; + doc = "085bcvvz7269v68r8a153cgwgs18bgpqrd40k5xy7k7f5wy7d0c5"; + }; + callouts-44899 = { + run = "19khsdal0siv0vvj56bxgkrj7bk1yyd3lw8iz6zijchp0by6gbbr"; + doc = "18zy2yzjlgn9g2wzlc9i52x8g3dv32hvbybjkm9fmklsgnw8fang"; + }; + calrsfs-17125 = { + run = "12b13dhwdxr5dc37l7imlhn4sparyrnz0d3vagjxlsiinm7hakf9"; + doc = "1295qb7s41y2abs2ip87ipcvq15pzza0bwvj6pwpwxkxq5yrr83q"; + }; + cals-43003 = { + run = "03100nskddcxi7z48iwm7vnwlrdkxj7xh8wgbb8bx3vfcrz731jr"; + doc = "08y10p0i7y0jndknkwrwdws6ja78sz1qf8vxvhhhcpivxc7a5gl5"; + source = "19sh899dbk4z728h9v72xrf54cij8jhnb4k4a035xfb7ijc0jcrq"; + }; + calxxxx-yyyy-69266 = { + run = "0hv01h4j0jc34z42x0j13bd80vkvaqdyp59jds1jf0yv2mshiwpy"; + doc = "037nh1j9q4gspazcmlagqmxjfi45xbmh0pifbpmv9iflyvnzj6hp"; + }; + cancel-32508 = { + run = "18bkqkdf888nd6j187kd39g0vgfhfh118bky8r5wwzy2aq843061"; + doc = "1x6dhr2xyx66i8qwk98li3vp40rlalfrf5lk8ah4gq03ndhmygfk"; + }; + canoniclayout-64889 = { + run = "0x9r0xjdv3vfbm68w0cydnjgfiaydlyg71cil2l3rf1p4awk1kkp"; + doc = "03vn4k8yp4l195k2716a110b8lad3zympsphp3cp8xx0cbfb86ab"; + source = "134arh3nmd39zr1b0ybmz3y0jfyvwzwcrzd59iik6bzbp601nk8k"; + }; + cantarell-54512 = { + run = "1p5idl8vqp84g7vw3q6ybwnddv8q7a0ijy6vny8jfd6583bjx6pb"; + doc = "1r6mlr4qq61cclliz4h86bc86zkb5kr5r9bixwnj88pbvbalayff"; + }; + capt-of-29803 = { + run = "1b89cznanql6vmcn1jyr1nqkva40i61lsgjswsqjgdqnlbmvsm43"; + doc = "091qchrgwikiissyrbb5i14634130vn08rkj2v7cnqzsb9c44f2k"; + source = "0dlgrkl1vcvf8qck0pn20ic7cmsvxqkmvgp04f9hn3dmk0yrzc3r"; + }; + captcont-15878 = { + run = "00zp59ypp753b17wcn9212gxk0w11g2a7rn9gi2mn4k5c3djc10w"; + doc = "02n200ziiq4lbfa3mc8yk7icayl7l5ci3kpl8mlkdyg9r0a14j1d"; + source = "04wilkx7vd5bn05cww36lywb10xq6b2nbhlxnjq5xbmdrdf9ckyv"; + }; + captdef-17353 = { + run = "0gjbxdn70qskb3xl6gmags3gjq4pks44k8c48lxljx3avpvxnfp5"; + doc = "1wl56hjc0204d6xrpvypgra7md18db4bz7657m49893m2pmc2x7x"; + }; + caption-68425 = { + run = "0d7z8vb5d26n6n8yan37820qsq46capr41vasvi4pcb2g2smkzlm"; + doc = "1zkscfajy1biv61vcgh7gka33dm7z6zqf0ypps49kpgx4q01ppwg"; + source = "1k8llr5bm3pi7bd6224a0nzc7d6d63wrwabm8wygdxj2slcixw5p"; + }; + carbohydrates-39000 = { + run = "08fsn3xp2bmkkhhqq0l8808j92vibkc27mi8frhzb7g253fnmbwc"; + doc = "1ygfgsik471prmbnv7cwak72w8daj7zgvdw50hjn4c6mqsi6g3xa"; + }; + carlisle-59577 = { + run = "149m5a5mb0c2r3rk87yvsiw50mp3armc0mw3jfrca8p82cyjwkaj"; + doc = "04l137nyh94qrli4qzsan6i1ag4j5j1s0qp8mb1m8a8aj0bw0i7i"; + source = "1b1ikyj585mpg7wkijlb2ppai4shcz6xad9ks52lnkdjd0h7r9lm"; + }; + carlito-64624 = { + run = "1xcq8y0psxyh2dw9wqybb67q9ihqp2p0klf98rni24x0xn7c2l8q"; + doc = "0sv5kmnkvpj60xnrldkp3gnhhslk9ksf6qpnzj12v00gcyxfs7gi"; + }; + carolmin-ps-15878 = { + run = "1wq22k55696jbawhlcqxj839vx1kla2xsik32pv5i2371dsn7211"; + doc = "1kai31i0pvrvp44y06hl3mj20hwjzj2mav6zs36afz81b491aw79"; + }; + cartonaugh-59938 = { + run = "1s10sc37kg3m9hvjcicgc9i3wkk40wxi4ncswspn9a599kkhf829"; + doc = "1y287gshxvdy4chshpwa328gfh36i3cs1g0giwga12afmkaif63h"; + source = "16clmcddxp9a7ybvgpx7w6mf45lcqq1vzjb4r4ndggbpwawkhvlh"; + }; + cascade-65757 = { + run = "13xf7135hjf363d9n1gx41m7awbr62pp6y1j77qmc7x6xi7vg85g"; + doc = "0d2fkdrrbh5lj6jmvixgj7v4g3adg6s6rrrj8wxilr65vd1d8p6k"; + source = "1vh912sp0ngr4mq391m8cdggxwpjdm42d2qwv5m4mlqhsadald7w"; + }; + cascadia-code-68485 = { + run = "1gdy5rx4dk2722xhnl1f8p0y5xhvpscfaycks217g1j7k4yyk41p"; + doc = "0yadwjksqxia4k6f8w0ng7rxzp1lggqxk8q6n1gmnwqqph08y4i7"; + }; + cascadilla-25144 = { + run = "013x6his54n8q3qp2xx12c0s2fbjca1ffmcb1kjy0yr0qy0y698z"; + doc = "1l8xpfmdp2sc54qxx0ywh7im342nd3kbmgkx2pfzwmqz3xhpybfd"; + }; + cases-54682 = { + run = "15f3mngrmvd0h6yy3jiifyzfrgi014g4dsqz9c5g1mw65yyssl8s"; + doc = "1vq4x3lc7zrxsh3b7dy6w53aikx5vfzx26fi288b44g99f3h37jy"; + }; + casyl-15878 = { + run = "1cmz40n2h7nckjw9x8wjrj0kkig4xhjslqjachsdgidd151m65c8"; + doc = "1y1gc2a1fw8fmrs4milnqvn0i099khhjq8pmsycj4bxpbsbpwqva"; + }; + catchfile-53084 = { + run = "0dx2smqpw2jmzbsfl1g1zpa790qaxas4cz1xb5r905pvpca4q9h7"; + doc = "1xhzw6ahzn8fgv2rxn30xszzpdjqgr97njvx7fz9bs9z7xr8f3si"; + source = "1gbcl7bfr1zdvn69zzhsbfa808qdfq10c11qc3qgihpzz8s99fr9"; + }; + catchfilebetweentags-21476 = { + run = "0xvk581zl6wk04amq4q6s4mhpb4d3f239ihk16m9fglabhq34xwx"; + doc = "1bd9dgjp2rvsv6mn40m7i2s5s84wj7hbk8rka2a5djb00fv4fgzq"; + source = "0lvxhx6id5ka9r3zp8h0xgrs05jax4r5rcyqcs1f77zfc2s6s8iy"; + }; + catcodes-38859 = { + run = "0sqwy110bqmy1npqqp6m7x4m632zmg4n52snrbzzz87jp59k6kwm"; + doc = "19drsfj7f4lfmjhpmivyyzaps3yhxsy5xppgbm67vk4368sgsmpg"; + source = "1c9269586s85v3swr33s28wb74xxaxy3mzp4153by2y5hpj250xs"; + }; + catechis-59998 = { + run = "0i0bhpal6yjhama3l9q9w8ljviiljqjcxixlcx39h6qq2dh5a4sx"; + doc = "1c11g2nbf5nk7pfmg3dqyidm83xwbcqnshpwhbbnz3vi8lb2ycw1"; + source = "1vq6nbis9cgrsch7w0yfm1s7y8ymydhbhzvllpx2ml6qks6vhy7i"; + }; + catoptions-68982 = { + run = "1zixqpgln7yqpdg37l4dilbqsf86bbl64z0rqg9mjcs150vp0vcp"; + doc = "04k68w710rvkx7zp10w9a1imwxv0qvanj1x3kjbyk0d7jvh3w20f"; + }; + causets-66359 = { + run = "1m2gjhs1v7kaagqqzppdf9frhlfshy74j39n8r4phhpxjpjflar1"; + doc = "0zw9imm84dph6dnajj8ap50kr5h18j6sd12xfd1d2asb35h5lvac"; + }; + cbcoptic-16666 = { + run = "0y4y76b69ila35ak85wkakk6w1idjy92jhbnj01i82xpjnq9qrss"; + doc = "08c3v6rppp3qfmg4nz0abwn2ka60wc6zrdx6qh1b591xgfwcm4jr"; + }; + cbfonts-54080 = { + run = "06641hiw3yahh28yq3bnz3dc6d25als1d8kbjh1ldab55gb3vz6i"; + doc = "1vlhqfx3y85ym7xaqzr7bxkzm3am8806s6bkp50mv58r914xmlz3"; + }; + cbfonts-fd-54080 = { + run = "0gaw2v82im1k7addx320xhwwq28mcm2xkz4z90pw09r848s9fsyx"; + doc = "1arnjpk1n9mkva1f9gsh5834kjb7m9rd49kgn3jf6acmdac67rv7"; + source = "056b2x1fv2gvy7ldi9v1kgsla7jzhvl3lsd5wl1v0sb2rqr2jngv"; + }; + cc-pl-58602 = { + run = "0cvyi72p74qx82qqw6cwn6kdrrsfw83ngwwkjrgywqr08q65v1an"; + doc = "07s3lnrl1n7pjbm81bqg6n6q6lnv5r04df0xjc6v6dqbdq08s51d"; + }; + ccaption-23443 = { + run = "06xbcnwyh6s417dc5kdf9h2qhi557fp0w5ikjdwkzsdq8q3ybd00"; + doc = "1319qx3dz57f9hs21lxicwr8ql8131yk97zdps9rpnr5c6b0pgdy"; + source = "0is0wzbqijcyi703k3va7icjxmf3v2rmrlhdlbhs1wzfyz1cmd2h"; + }; + ccfonts-61431 = { + run = "1rwzpbv0vaf4p77k4hf9ac14l9sw8hsvvqx5diq9dirsfq2js0rb"; + doc = "1pbc945s3xjhccjm83y721xx1zrpqjbrirbf469anq9r892g33av"; + source = "0avnik79dw3p1wvrg5rlqcaxr3w06mr5jvyms54ha18l2d63yw7q"; + }; + ccicons-54512 = { + run = "0xqq8dk5czaazzjlf601fs4d2z81yn02ama07js7wrxb21vvjz2r"; + doc = "15hlqk9rir37m45ajfwfpw2w2ngsc6nfyh8g76vmbc6j48zmc4mg"; + source = "091ayhgprp5w5g59c0zfy51lhas4gf3spya77k9fbr9gxp3phl4c"; + }; + cclicenses-15878 = { + run = "1rsj1gknw2ib42h1jn5zdhwv1n5hg2fdny08wpkwyyn14r5n52r7"; + doc = "0vdr7nw2w4mqh3hiinywmrcszav7b0nc6jgrky1l3pgja9h78cj7"; + source = "090smmkqiaam8k5jfk30xk6jrzdz6y75bcawm94x5l4sc8mqihir"; + }; + ccool-60600 = { + run = "1snafp7x6mvnmnkc2k2sp8kkj3lxm13x1nkwvyvbmylrh7zvjw6i"; + doc = "11lkm79n0d713dmg4l4fwb0vk8k3pyf9icdyvbaj2v7zy6w028gg"; + source = "1iy0jm88hvhprn70b9cg5bbh21z9mziyqcil6arq67r9a389npx8"; + }; + cd-34452 = { + run = "1h6x7mm7bvvd9za8vsr0dnbll2m404hbp7g3bwh6z5dr15y0hw8q"; + doc = "1ws4qpknk8zz7cm0mfi9g9viy1f6r14y8hfi7dw2fl1lzi56j4d9"; + source = "00mi6aazb16bq9b68n0jh2vs9n5kv7mizgp61n7r9mpk90hcaws8"; + }; + cd-cover-17121 = { + run = "1x1z64h0473bf4dvyiraym65h15n0jkqbc24kr0xw4i0fk0q4l2i"; + doc = "0lsxmkaldpc89sm9pq4zi8j3fd2aszglx06mqn3y81qjil9h7xvp"; + source = "1060k65sxs323zkjv8pvx6b98v6bq3h51r84dmn960v9xaw8pp3y"; + }; + cdcmd-60742 = { + run = "1vs7lxaz2pnc93926245p6sylv6z38a10flrsfzp317qpkvvrqyb"; + doc = "17xflbkibs98pdgs79yxwasr2xfwh1i54y5b53314n9nsr0w539d"; + source = "10c1rjy2y5f772qn69lmx9wknzj0mydj80jywklckp4g4xif2hqz"; + }; + cdpbundl-61719 = { + run = "1f3375jl826gm4arxsv0saigl8230d35dmkzvqyg2kldz5ig24s0"; + doc = "1yhc82i1n44fp375vqyzrq47qdzwxc3x3zg10a791s4p25frzcn8"; + source = "14aw67ah211c1simgsz0i3j6jxmnsj4arjfy5g20i05l892sb2xw"; + }; + cell-42428 = { + run = "1y2bxxx73r1h9rhsyar81r4s9nhgqjlvs5rwnkpk148rwwar7l56"; + doc = "1ri21dk1wgfaay1hblmn8akmq8ccxpbp5lrfnprkqqrvkxnmaylg"; + }; + cellprops-67201 = { + run = "05gr1jgr9m7yfrl1d8pgnh0z8xm7rk8522vl5wck2s2slmk8schy"; + doc = "15f1mbagh41qvzkqf1bdzlvchfn4dibsa2qj7zwaqszc6smscl1c"; + source = "0yb9gjglaqfivifxi6n1al6w1nm0ah3r4d9y8bc7xnfxikhx3sym"; + }; + cellspace-61501 = { + run = "0s0f11xrs670zhynqq43sbrx9b290jph8r6fp6s7damrp9wnz9fx"; + doc = "14znyc212pydxgnyzqwxd6vlvd72b64qjllmsjpcsxqi0f7am0ak"; + }; + celtic-39797 = { + run = "1vg75zj6p9bhp9qg4c7nvgncs7iiki5jizx27ld26yni9m2cd0sb"; + doc = "1llinw15fnpjshks9yzlmbi04pkn6s87jfwgpnh5vb9hfws1ira5"; + source = "1w3wm5ci6kzpnvlaxbpqndclhxlbs4xiwq90iig98wf97b85lfi9"; + }; + censor-67293 = { + run = "0nili9g4i8dly7gri3b1k4z1n5gnlrkj1dz4si3gf2b6gpll993i"; + doc = "1kzi4glg1gpwx37ck2gys2dz072n43af5awa8x1a2036hpz6s5az"; + }; + centeredline-64672 = { + run = "1xrh8r00wrr29wiijpal0n6k48zzl5493zbfzfgwq115lxsvhp37"; + doc = "07jvl42qmwlm2qv895f66cin58xzin21czdd0xpa13lgmpsccv2f"; + }; + centerlastline-56644 = { + run = "0wc1pwppiwycm5w3hp5ysnv3wgsw9s8m9p9ra3xbmlkqxd6zjwnz"; + doc = "0f1x3wzxvgjxsgqparyjq4x32zbqjm88v5xdxm5qkiasai68r7q3"; + source = "0ngxhlawj8igq7d2mhijpfcybfr6lv1jl82vs9kk7j8xrdf2nyr2"; + }; + cesenaexam-44960 = { + run = "15n0abwviaz213q00nv6faxc67fyqz44mvp28zcyysrhmrcxw159"; + doc = "0vqxkqgyg79kzfcxh40knxh5a3d2j6q3f778k2npfz70d2kaizj9"; + source = "069n1sk2g5n9cqq9rchk9w5y40igh620a1j5miscgykcczv2y0jw"; + }; + cfr-initials-61719 = { + run = "1wf5lcqh3jysn0fbzpmh429gmicqhh1kvz26jfl37f1z53g07shs"; + doc = "1akblgsix6a59as4z5z6hhsncnsfxqh78s8gw0m3xqv6wrbv417k"; + }; + cfr-lm-36195 = { + run = "1inzb3q94b42n1g3hchqld687qhs33m2zxvxvgyciwqnwfn3h968"; + doc = "1ska7y1xg6qq86kccplwxjd70bdbiw492d9y9n17d7hryg2nxw66"; + source = "10layppddcanvyzjbgn6grgba9ff47kn7fqdxmwfkwnpw0qlw5k4"; + }; + changebar-69367 = { + run = "0q3z0187y2fynbp9zkhvfvcqrxyn8l03xrj4wm6zrzkz70yq0z3h"; + doc = "0yvkcx0gws3m0jq15qnqbxm169f36qfr2wpbl4hp963z1az2dqnq"; + source = "1zdljd9j7xdly3wlaqhic8v1d2j3mr7mz10vp03navlysd6b0ycw"; + }; + changelayout-16094 = { + run = "08bapli8zvv8p15bv3sj7l646fagzbj44dbq81apb8lhqanvlf0i"; + doc = "1s304gpjg30kpygvg4r8r2j4bk9fg8vlb331lypd3dfd6slphm60"; + }; + changelog-65861 = { + run = "0zd7i9kh2rybh0d3zv7pxkjk3iddm03vkizpdxyy3sjblqa2kz3g"; + doc = "1m65zxnlazb9jdqp4y0n4lzj6mcyhv4ng7nfg63zj7zpsx0kcvgv"; + }; + changepage-15878 = { + run = "070rd3drhaaw6z386v9z5rs7dmf15ci05lmlxsaay3s1ry1425bc"; + doc = "1149csn0iphkxj7p1bhkza8v6xj39k49rylp84d1ilckf1q4imng"; + source = "1slacsdfrjyy7hmhj4ssjkh0ln846b2ds11g446hmdvckyvz4363"; + }; + changes-67201 = { + run = "1cqdis0b9k20nvfc912xm99h6l36jzssszqrgcshl6m2kd722if1"; + doc = "1r03j3g11nh23misg9prjrbl3jvf45761jzbxjjn4pajynfdpm63"; + source = "1dzmdnwh8bbg3ysfxqq9x9nw44bz55f4gl79nn2z2c80f99sqvx1"; + }; + chappg-15878 = { + run = "1lx2yw7xyvbhvmcaj5qk2bjfmgyr4dn7q0v8q3xfkrnbzbzmcajm"; + doc = "1c9qkc2m4rcixnif8y1zvcc0mzwjhzsbrbmy1cqv598cysc2yaig"; + source = "0fzy53whj61n52k1ashphabpa076244dqjy1v7icrb27gd1y86mg"; + }; + chapterfolder-15878 = { + run = "1lphi7j367ga43j95vlph7ywzj93lppnn4n83xhbvwp56azryqm1"; + doc = "1ns01x1y3dq3r37q783ha7xsnlg50vfw5knh2saw1rv40wf9vf1j"; + source = "0zc9fa6xgs0s6g3rfzq3p32dlr3ay4k6y443z4zslkpmnv0hprjc"; + }; + charissil-64998 = { + run = "05ysp0l1v2azbr1gjjkh8mh1qmd7rq2znns60p2ic7dsfvfr9kpp"; + doc = "14pq31xhrwa9v57dlwayysx16sw1kabwh4m9wjlpq9xdgbq9d38y"; + }; + charter-15878 = { + run = "1z9145ri2g732bs4fb8i74gc0ymak33k7sclahln2bhdpxi286fm"; + doc = "0gm9pwanxvzv0zmxq6pf54ygxaxvg56kh1ym6f5ij9akwvhf6nwb"; + }; + chbibref-17120 = { + run = "01gyfwsfrjy7fs160zxvzhr517wwbsgh381hk626kvf87wssz2nv"; + doc = "0h5vlzfw5lfg7chqfmbisqydmjn513rjrvw8pax4xlm75c0p6drv"; + }; + cheatsheet-45069 = { + run = "1cqv885i4crrramly68wamd9fcx0lj96vzys39aplars3pjv0glz"; + doc = "1ykadvnpwkyj701xwfpnlnqr313d33r0yigmsscshgr1dd52jjf0"; + source = "01hd52i399c9nsk68ymr8hmllxq1vl6v01fvs1gpm90pgvgdc9gy"; + }; + checkcites-70398 = { + run = "1yysb7nhlkk260jsbslcqjxax78q3lwjkqrh8spfz2sjp97256m3"; + doc = "10hy8ib9y7adld85w62nyi6im15frvi3ym9alk7bpqrm7853wazh"; + }; + checkend-51475 = { + run = "1g4kx83kkpdd4fbd70b29hv82gbf19avd04b3bcxy8d0r7zyyyad"; + doc = "1hzllxf7pnp7kg2623i5yhl2xq6phifc4jc57f2zfgfvvw0hqihy"; + }; + checklistings-38300 = { + run = "0hs740rpar4jckxc2p8wwd8x39v8bghgc2jjrbca9m5zbr0prvpg"; + doc = "1riyj6x57jb28sjswnnfyqf80jnkvyr2cvckav29j9ni8l970qp5"; + source = "1ghb0pv2zmznyg12zqgljwd2pc5lbajgdnzr6zf2rrmvlrsgr38w"; + }; + chem-journal-15878 = { + run = "01s4sbmc4g96cmnbhx9a6bqjskkrr6saq91cly2pfy5gr256vmnq"; + }; + chemarrow-17146 = { + run = "0vy1y1f8czyp36ssicmn1w2px76x47afrfqjfn024jmbs54fwfxq"; + doc = "059c8r7vhs6765h0x0ycqhkd65nxb6sqq7xhi7y8jyb7i6q3rbbw"; + source = "1ds3yx6mbwjvhzj6ximgglgccndqjbimprf7iszhkz3w5vxq6qz6"; + }; + chembst-15878 = { + run = "1dg8dasw0r96rnv4pnmm2k96rxmsdfhvkbxc5m358x3i5i4pcpm0"; + doc = "1zmqlm8vr2f1mga0b33wikv1wn9lx3lpx4y7pjhgdqk84lhfqyh2"; + source = "11qxmd7b1h7fwam9sclazzjhmzf5fiw5ykw6ry553xm1jp7vhvhb"; + }; + chemcompounds-15878 = { + run = "05rqpsyf12yrhpnzip0ywzflrvsjfdqhpi74iwpwb98d3q82ckai"; + doc = "11264rxfhbf36jfkqdfyl2dyqal86bhjbm1zsy9ps8w4fsgdw94a"; + source = "044gavw3i9xsa073bwpg11xy75dip172ih6h2p1mbpp8i7bzsrg0"; + }; + chemcono-17119 = { + run = "08cch2gr35wclm1l0j05lfbjskqw43jzz3aj4wi1dhpm31b855q4"; + doc = "1kcgfx2clh4x59h4scw5mg035wqr2cp5kidn7f6p2aaf5607xid5"; + }; + chemexec-21632 = { + run = "0yj6sygdzs247fpajjl8gk3c6yhk52npbjahgngchqmblhmhlkc0"; + doc = "0pqksv69yk7vf622x2p2ah735p0a93agfnfyg8hm2jadwjmhzikj"; + }; + chemfig-69227 = { + run = "06jp9cd9x404pz3fss77vhal0d3rlnwx1q6bnz6l5zcr7dg3n19q"; + doc = "0g85rqfahdvb6xp56qgh8b9la2xjhsi1cv3q85dabxgbsqwq4m0i"; + }; + chemformula-61719 = { + run = "0q0vrz2agxw3g7cy5clya5hfsdv8s8qf18szhway3inzg5mfr895"; + doc = "0h1nbyhj463zxj4d15cx88h9pwb2wxpq3r9dsbzdi63fb1mnr4bz"; + }; + chemformula-ru-70357 = { + run = "05b8rv1prv5fmwp0hssbr127vgxm02vm5d7s2x61yq0bl018x9jq"; + doc = "1ia37z188y0i8dnah2fzg5pzgwd1an16zzmdfjaq4d1kf7qbsjjv"; + }; + chemgreek-53437 = { + run = "0di3w4yqnjs49im28g2a2qk31d6cqhrbwpq1jcxykk8am7g2sn1c"; + doc = "065mwb7ah9h4qwqp36n0sdlkjv435bwrljz3yzsgym7a4xqvhfwh"; + }; + chemmacros-62655 = { + run = "1phw4kgp7h5mcrr66vb4kazzi3kw6abmxqhybn3amd4ishgbzd8q"; + doc = "1rz1a7nc2c0cf78axch98zsaxah84hzr7h8rpvz3zz1vfa4bmk5s"; + }; + chemnum-57490 = { + run = "05z6i3cva4cq45z280ls3y5hrqk9m3a1v5yq51rdj1ilk3yh1a4g"; + doc = "0g0q6a845xgpfwkhi31dg6w2rrza8cgxj925rm5m6mg026rd7v03"; + }; + chemobabel-64778 = { + run = "1s5pjj815ppa2glr9k7fzmmfcjpkz7a8fha66rfwkzf4rad3474g"; + doc = "1p3a14q4qjpn1sr4j00x7x5pfp00h58riknbjjw0mcld0a1fiaki"; + source = "1z904ymdpdynx4gplryxlqhras8l6zddfvrvh8iyiraydb8z470q"; + }; + chemplants-60606 = { + run = "1q7pvkkr4i4a1v8519a2ysrhya7zgri84is4c4hljqiqqv8sx4ir"; + doc = "14gpajgpclgs3xzxd9mmyi1y3ciyxngqvxyzn651yn9i08h91f9w"; + }; + chemschemex-46723 = { + run = "1xs0vmk03pmlw7hcnm0llgq7gpg1wlack2k3cry0fnw8jqi6ls8r"; + doc = "1gz7sdykvl3s6c5l1vhx2zyjljqrcs2h02s15nly8kjfcmvcncq0"; + source = "0wkrpfipgl4yx3d5a5pvfrsxbp3dh9wwm0i34z2y6cra8xd4m58v"; + }; + chemsec-46972 = { + run = "0rl9aqh35pr0pr82vaq605ii09cxk73mjf3qs1dwcb51hjz51f35"; + doc = "1fh5fplxlkzcly15kwzji7ym1ri8q33rs9k6wpbszyr2przn52sy"; + source = "053j5riyl07jxzm2l44ns7wyck2y0680p9p73054szd859q86v8h"; + }; + chemstyle-31096 = { + run = "0a0sd2sv9g68alicfvm28b13kdipyrlck9ipdb3ybjjsi8fn99fg"; + doc = "0gdvvkfjbzf0kdbl5f4j30cvddfbwiashz520g7kpkv460swvz0x"; + source = "06ws8xqy1y609hzfc90l9zn2i1h3a6yq2hxcg1bfsbsqagh11rnz"; + }; + cherokee-21046 = { + run = "1h8q9ysfnwdc29kfc6yj4545xk8cyncl9ns5a465kh6li01zw5i0"; + doc = "0ijq61im5wsv64qibwcllc2mi69d72915c5qjk0dcnsn7k823si5"; + }; + chess-20582 = { + run = "0r1danvrc979bbpcka5fdbnmxwiv54inxyd4rcsjkz6z03srbwvg"; + doc = "0h6zcs8g6gg4fq0sp2s6gihbyrs9kkvrbqr6pdpb7j3fkb2jr9m2"; + }; + chess-problem-diagrams-63708 = { + run = "1hlbyxnx8cpsxv4zy9rb3f9z5c84szf1szxr6qm312p4vr7r0mjx"; + doc = "148l2hjlifq04wc0cn04cx819gfi2zjmw8k03i98k6y1rbgi8bkm"; + source = "0ma0nqvgkn7a9hvzqv1i03m2m02b1gdhy534jdsa6l7mqlbzw70x"; + }; + chessboard-56833 = { + run = "119dsa2mjv5kjw15349bjjz2xacnd82szwdb4m1hjqb3pkc8053c"; + doc = "0gny7vq5cm7ibvw8fjnpbysqs81bf2s8nvjhs56qq3j7yg7ljapk"; + source = "05wcy7c9arj8w9zsflr3byy31p0nl8g6i78bbkvw38rl9azpj20l"; + }; + chessfss-19440 = { + run = "1bi0lzxr3lr8nbrxj8189ycadm16l66isgslqjh1mfqyggz65gkz"; + doc = "1xrdlw5z6dal81pdkhx8lwg18fzyfy1v4agq93bw09i94045cvih"; + source = "0ryd536x30rv71pqvji805f9fm8ix6g6b5jravshrrksk9q8qw9j"; + }; + chet-45081 = { + run = "1ngh07j5kjp5v1pmymckqnj9knjadqzs8ia4h4vdyxp4zprgyqv3"; + doc = "0l628j4b4m7a5p3vvzz8rwc236wqqs7vrf698gfj8gjdbbv0c9cz"; + }; + chextras-27118 = { + run = "0jb9dl29m57hby3hi2cfwks99xhrnf74d3fpan64852gvk0shb4j"; + doc = "1ijm0ymdd4hh8sh4m5kxmny9nfn704prawr1c8x7445k9j1m2d82"; + source = "0kkbsx2rqakaxq00nkvws7lpilzysxkmsijfxp1vyh73fz9cb8jk"; + }; + chhaya-61719 = { + run = "13x83hzrqriwcsc1q1yl93jpmgy83fq44jq890q2vfqjl22afmbm"; + doc = "032qz2d0zflyj8aslhpq4n7mzr7rpl8kpdzrp9ahl3dxqzcrnwj5"; + source = "0ld5zwwzznvc8a8n9l01i0236a9zw9n5jbiinxkhf8fk0gis1kb2"; + }; + chicago-15878 = { + run = "0mwrphf2g7v5yc0qij76dkzalgm3fhcm8zs7akgaypyk98cvxw8k"; + }; + chicago-annote-15878 = { + run = "1fz95s0d48qb1pzmwy7cdnccvadwsqj3pyvx02bkip5l0mg54kgg"; + doc = "1lwrlb5axxqzrj1azyw6bsy9f3lq2n5acwnzmx8z7aw5sj19ls07"; + }; + chicagoa-52567 = { + run = "1za4fqlpirbr3qs894abnlwmrhsqbahniyyimy1dxal0cp61cfil"; + }; + chicagolinks-70566 = { + run = "1c7jy4z231rz2b2p76kp3v127vxdkv110ah06cn59mcwyjx8ncad"; + doc = "0za32nk2wgj3x2vyx762wkq5yscbbjydi6iwdmx2gqybpcr10b7b"; + }; + chickenize-57325 = { + run = "08qxlyxghdzsbrqk9zhj6wr2ffbzd3nq7299z3q7s39z9azrr1z7"; + doc = "1k4pqd8paq4zqygws1ihpsklxrmsxlqvi3y60zvaghq0r3iiqqqs"; + source = "1j4sgh23sai4qzhpxibz2zl4a82nfiq7asgcz42ab5qdlz5vnh8n"; + }; + chifoot-57312 = { + run = "05p6x3l0vpzgxqw4pkl5b8hhkfg4jqv83435z8db140gsk2sz2p0"; + doc = "02x1z9dbnzvbvwfyqk8axkqhzchd1dfjdqsf4xkajxvjc13dhcwy"; + }; + childdoc-49543 = { + run = "0vvf825w9081qcibwgyjdm57rs6083axqnr3lz9g8hd5s1h26s78"; + doc = "0hh51g80vlr0malbfqbfb0m5nln84bvnqa2d847khncxh0azlr2f"; + source = "1gaisc49xfpk37nrnm33wazihv61b61yhi40wwyblmhvwimmx6qy"; + }; + chinese-jfm-57758 = { + run = "0lgpg27qnc59i1lkbis5jr3z4fy2cl86x1dm320q5kfjm6z06vla"; + doc = "0bpl9vkjvn3bq1dmrgm4f0kgmbvxrxxhd1alfd4yw30xib24aq31"; + }; + chinesechess-63276 = { + run = "09ylm4dnn4ag7yd0ck66wbibm8m782fb4bmfmf34wyrnif66sbzv"; + doc = "0m1q0bw1a4kf2jdm8kcp3xg0y448d407awwaf5r0lazycy64ycqk"; + }; + chivo-65029 = { + run = "0vb828v2pi72zxxpjqcnij3a9900kdshp6xf1aah4s62ws82razw"; + doc = "127l1ll89b61yczjkm36jly09y72xli8lybfjf8fq5pm621hzsj3"; + source = "1b9gval665vsjghj9yy0lb15v4h0ysjc3l47jln55qxfd56vxiir"; + }; + chkfloat-27473 = { + run = "1bv0gfqa1bhrwq7vmjn0ih49lzb5g3sxv1fdnp25lxp5fxck31k5"; + doc = "02s4m1ngjcw8w0ywyqislxs6cb5vj5zgczg3dnfpqsypvxg2xr12"; + }; + chklref-52649 = { + run = "1045jsyhp39js54xmyr1wxh7qp3z5hzasyqi33nvrc4g7rb9126j"; + doc = "0pmgdkdn930lzyn8j3diwwam8c7ikm4fga3fh1vpigqddykj7hqy"; + }; + chktex-64797 = { + run = "0ij96wg5j3grphp71f3casa8nlkfia7hz34njvi007pzy00kgvr8"; + doc = "0ln3in6f2j0bbk1n2lha7s6mv31cqjchbg1ck0cq10aabhvx9fz9"; + }; + chletter-20060 = { + run = "01gvs00kjr313a09y65hif15vqvxidi6ri11ypsbnsc0man6dhwd"; + doc = "0mc8nlph24bh90l4x5bfc9dyldd4jjn46y08xgf194482dz2q8gy"; + source = "03s40qmlbnlslcv8na5vwz67fad1chagal1pjq6lk0glhn5211dq"; + }; + chngcntr-47577 = { + run = "1a61sdmfbbryqd2gj87bm4qsva0xjmf9mkxhxnjixpqmr4gixq8r"; + doc = "1rrkyvwbgfxxrnsdjybjqxqg15xyzr4s7qydx1ky2k7d2yxhiy41"; + }; + chordbars-70402 = { + run = "1l8m2yxqrscsnwp6cgny978l4qz4gg08bicfs386rgsfyz43qhcv"; + doc = "1y0zr4hxcqbdm1r6yrsnkx2gsbcjagacpp119gg98h9y80y5ipp5"; + }; + chordbox-51000 = { + run = "09sghgyq6mv3w0m1vlcf82vjbdkb00gpiqr6iwlimpqjrv09bp3l"; + doc = "1fykwcz8d0ja7f5px60qf7pfzfcw447mrfpbq8awymr1ilwgmz05"; + }; + chronology-67973 = { + run = "0jbczd5y58a6bjlk812ncb1ckcsq1d7j8ghmivx4pr5pfcx5lsqk"; + doc = "0g5r3by58srdydm0gps4ybsmihayir3qf2lra569ywgxy06hqpn4"; + }; + chronosys-26700 = { + run = "0ii3r31dii1252bg0xfh4818az1snrzfx7h4ibr6rd5q3a83yisx"; + doc = "1c120hcadb7xpkspmixhfrdlcmhl79jrf1wc0vsjqbq3wxjq1p55"; + }; + chs-physics-report-54512 = { + run = "19ci498mf3yy0xhmq4ghy8yh138dzs8953ki2mqn9hj6jjx71yfm"; + doc = "1nfmbhp3gqmf2pdallpnrx9hqlb8cwkndfri8i0mh411hrh72jp1"; + }; + chscite-28552 = { + run = "0db7nrmm5r4b2cvcyjfra1fmskjaspbgymjsl4vvif9j3kwaa0ba"; + doc = "1q5s4qj508nqy74cdcg8380vjbhs4v70a4jkr9wdirqcxjxs6yfn"; + source = "009a8y3lxpxjhkd05fcf308k3fihl95pcn7r2bgy57jr4nalmixx"; + }; + churchslavonic-67474 = { + run = "1x3b3l8b0gbariw3c48pfr6ywfxh304vfbsi10f99i3rhl8janac"; + doc = "0pjb7dpxp0nnvh47vrqydd5gs4ld11lgf9m45nrzs1x8qzlx53ah"; + }; + cidarticle-68976 = { + run = "17a2cqb6d3n5g3jhk1l5hybmpjhqpf7w0cr8f0w8kqwm2h7ciknc"; + doc = "01r547l09fjhzrm19gi7xwrvhfglf9a0cl2v1ikncfhciy6dvjcs"; + source = "1v9qsmqhb96b8p27bim3s71ybarygksifanwgl55vha0408s3zd0"; + }; + cinzel-64550 = { + run = "1v29lilvh6l5iynf1810p67qx2znxbm04wavj31w5q7rvnar81xs"; + doc = "1j7i2bdbrfadw25ajkgkygkii3prybhp4qh5k8azbn7zpxl78q5s"; + }; + circ-62977 = { + run = "1m6siikjprch991sqbchbrmhvh2knjh3895w48wjp9par050cbgr"; + doc = "1zmyxc0iz7ljrkklqdmpiax9alk56pf1i4dm6ljpyisd95blcys2"; + source = "1vdj8qzym1ihkhm628zz99w6xwzhav8ci0vlckqpz3y91nkkpxaz"; + }; + circledsteps-67889 = { + run = "0ybaz7hl9v8g0kx8v7j8llgxvvhaj40afk5fi9733iv8m0w3mz47"; + doc = "03426fkcxcjszpm852qv1y4kb581gdkk109cyfy7bjyx8ihrxq0g"; + }; + circledtext-63166 = { + run = "0c4gas41ddivlam1hsfzxlyqzicclfd91arpa0s8kinlnz27bnq5"; + doc = "0ia4m8ss2idvzhgp88cbaybrzld0cg5gijl7nzd9fc5xsmybdjsi"; + }; + circuit-macros-69263 = { + run = "07cbpxyawy44ds1vy6kpp9cxgv2mlh78i1wakzw30q0bj4rksw7b"; + doc = "183785rmygpffw0gb7mddjvswy3dbgp5yimd5ckxn193429il7p3"; + }; + circuitikz-69757 = { + run = "0k28z89mdl40q9q4x07p9m9w744yfbc3ylpj5khbz7w9l8s232p5"; + doc = "03fsxa3q22mhwzdz5sh06l5glhvfql9304c9pm7kzwah6xryj9r4"; + }; + circularglyphs-68476 = { + run = "0d8hr1lns0973y61qmmz1hg9pc99j3w4x3iaqi0f0jlyzxc5j1m8"; + doc = "12s7fkjlbbiica7svrha74zh3va390ay87bajjs0lgx6smqfx85n"; + }; + citation-style-language-70583 = { + run = "0baaznwvbml9ymvibfdmzwcyaf0rjkfa5zp0nyr7fr9zc7gvdig7"; + doc = "1lpjflagpgbilcljcwwnbkq0xw56vjblnnlznsaprdiqivlfqhbm"; + }; + cite-36428 = { + run = "07nw7axvgir19ayi3zy0b2sp8bb9pq1nl36x0wv3nrqjilvgrwr5"; + doc = "0pg5fc41iwqc1y9m9b47nh48fqp5dpnjbx14ny7ch9irxblg5d31"; + }; + citeall-45975 = { + run = "05nb6pywcrhqi1c9xfzkv46j2fq9y1lqmqawi75v3z56h2v6c136"; + doc = "1p54cr0khq72z396r3vl0p9qqn2k82pmx4pjaszlzhni5v54hbdr"; + }; + citeref-47407 = { + run = "05bxlkylmilyzvbl99nsw16saqjsqb4bcaa68qkz8m59wz1ji4rj"; + doc = "064c9zg2rhnym0wy2kxj0617mwb3mxpc1rr13lqpwb1f1qhghm6f"; + }; + cje-68656 = { + run = "0v0pya3nyj3phrgy0vrh9psbgawp823li0gvhw84pp9jg0lss6vc"; + doc = "0w5lrlwzff9vcb0l44f5cj5763x8qb17j11kmbxy5p7zxz0j3i9a"; + }; + cjhebrew-43444 = { + run = "0my3jp6pi5lbbhn24jn07gx95laq2p7fqk88pwic7wwyji097vxw"; + doc = "09ldma056ipsamrd558z24k63p187ziw2bh8qgy4na20pp22wj0g"; + }; + cjk-60865 = { + run = "0qdvr0sq8v0vi1vy8aybhrk7fnvlyxz9x9m63npa3nfcffypdv0n"; + doc = "0liy56875383hjdada5bc1ni6w6ikmzkf5k8qg91l0hbkxxnqfiz"; + source = "02bnfl8hydbb8wn2d54nrd6v4p9yrr4f6hkinyil5jnfkq9mryyc"; + }; + cjk-gs-integrate-59705 = { + run = "0w396gn4s8jlaz95cc3dzh9xsjiywsxjf87qwaniyaihssssl4pn"; + doc = "0a4m7r52czkxp7j2zd389f5illw18dngdj3rkd8b9qlp9c4bq907"; + source = "1h788aq405c44alpj85lyhmlnvdslc21n6h89vx5dggdfypbq18r"; + }; + cjk-ko-70332 = { + run = "15rl516bdcr5b60564f5sz3ab77hvx7yb1m56fkz5ap17j02d2ra"; + doc = "03kirb8bdh693r6r421psa580an6hwdmf8lkvascgf2iwd6rayn9"; + }; + cjkpunct-41119 = { + run = "0wvqmf60gjm5m7fcc2qqz14lfzxcrqci3lrla96hxkqnqraiyb84"; + doc = "1ja16xaqfg5158155flfvayr39k7grij13r1r89g59va53mpsgrk"; + source = "1pn85n7n4fp2p5pq3w66kb5zlnjk1bdz7fz4xsa6z31d5216j39b"; + }; + cjkutils-60833 = { + run = "0wl33vh7pcrbyvxy6bfcjfv0xnawp4gb76cmq2304n9mp2w8dg2h"; + doc = "1kkb1lkni0d7mb5hcnwkpwbyz7y9w5iy0z6rgm38lnkkm2wjhf7b"; + }; + cjs-rcs-article-69006 = { + run = "0lg0d2igpd1dbm2cd9irrb5702mvpscqf12bmxn68y778wym6gnr"; + doc = "1vvm9nzrw9gidvzg1ab7riyxs98nxwm50kd0ih2zls8q6xxzy6bf"; + source = "06wqrj29gf376mxpknzb6j7aqnnx9b9gacdq1bgd462spz7p8za0"; + }; + clara-54512 = { + run = "19g2vpxwjjc3y88ghw8yv0abkm69x6lnjj4p1cqbdjiyy4n83677"; + doc = "0dkqqps72wws7dhynan243wf86gxn4chn1v5iiishkar33xvvlzp"; + }; + classics-53671 = { + run = "1l5p09agmrik9dkhwghjg8qh407bjw5q9hviykq7kf3y006dpzky"; + doc = "0xp87xj7328ipwq0l8xgxn2baqm9zmp8dqyhv1iy68k9wgqr2f5w"; + }; + classicthesis-48041 = { + run = "181s8s8yk6y9haxz66ks1v6wwhpff2vs7lxrc8kshg1mn26bya4q"; + doc = "1nxj2qflzs40mwnpd02bnbnh0ndm8rx12mr1vyyy6v3sc6g28yn2"; + }; + classpack-55218 = { + run = "045fl18pbqs3rxjp05mcmzhrqs94xgqnim96g8mij5v82fc7c99r"; + doc = "1875ak0yjxlvsn1gs97np1vhy2jr2yymjxgr72p25g548sgi64q4"; + source = "06r1kpanvp3y43jc8vrskba6qrsi115akw7yjal528fxn1lypq8n"; + }; + cleanthesis-51472 = { + run = "0wsib3c130m19r4z3ghipvgqvmfhi1cx86670ad3ama3rdmc3zpn"; + doc = "0hhvak1l5zc4bj874rd0i6v15v70i3aq2dlv736csvd2b764g6y8"; + }; + clearsans-64400 = { + run = "0wd2lhl02svzxl099zfflqk94nhs84qb3b7wzb8adh2b8z9489c3"; + doc = "1nrlrx6chgk1ysxcpvd1hb1qpagl3n7x9h0gzfjf0431bc3fxc83"; + }; + clefval-55985 = { + run = "1wdxl93z0svgg6h7vdhzqp74clcldxqh95yimqb190cbm6v5ll05"; + doc = "1d1pw87hszspsfrl5c14q3c2iy1fkbh77dzldhajx71iqjfza634"; + source = "1x7dvg6q0hy6pg05qpi2qaxw7y7a2dcfa4khddvbfcngp1dirrzi"; + }; + cleveref-61719 = { + run = "1d4qp3jl9mgv4afgdgcns5rr7agn5smiwqkmrasqchj4hqzwxhwd"; + doc = "10wy2zndm51fy3d80cqnwsjxyczqjjffx61ir6ky3nkmiikiyypn"; + source = "1qyyvn226dj4yq25cf5f7yzc3gx9qmxmnlnjijydgmmwam71s3xl"; + }; + cleveref-forward-70181 = { + run = "1wphc3dm1kbn9fw5svsxggplg9bf22qfjcf7k08r39fwk6s50pfk"; + doc = "1548hwvsbwyhb9sx2xj4kqali3sfb6imr5c9dp9n4lvw8p395ksy"; + }; + cleveref-usedon-70496 = { + run = "0j2i293c13knmpv82g2b85a1y9003dxvizk073617qf312jb8bpa"; + doc = "0kprww9mxfr45y311zky7gfhxvg5lrkxfg0mdkfgway0j2ljyw9x"; + source = "093ydvc1mzkz0dds9fl107bj5mghdfjwb9kcfx8hw9ss9yg6bv9y"; + }; + clicks-64602 = { + run = "15v0yjrsnf4hqvmriffdq7x24cxk9l54a5s967nl4pqn1iavsqd7"; + doc = "1givgqvm29fa1kvj556hfda3z1hhfzba2b7jfj46f8zsifi17s3q"; + source = "18dpkhvhc2i7m2r5q0sp5m0zhzn1706zlknybcv3zxsnpcs1rar9"; + }; + clipboard-47747 = { + run = "1i9facsdigll3rzl8xv1i85cqyvlc54xhia69cv5cv0gly00p1dl"; + doc = "1b6wvadihwglj0653bn8fnnq18whx2hymigvyknw00fyn3xjgvgk"; + }; + clistmap-61811 = { + run = "0xl0310x3wrk9lhwhbqnzi3gsvmbvk5smd4wq50wj691vmag9ivh"; + doc = "116n1w0zfc6ad3nnq2wvjibpl4ywcfbgffax43vml5aixkpdlcq7"; + source = "1cr6hbvln8mvrs6g8831153l62b4h1k5731s2d0xdm46wwmq4m3q"; + }; + clock-15878 = { + run = "0w5z1ffi25nabsaqh91glby7ifn40c9rhzxlz2kbyvbrdg6a3and"; + doc = "1wp9hglx1vw8zfa182m2103xb0rhg9hmp51rc7bzm6fh3iyz52is"; + }; + clojure-pamphlet-67201 = { + run = "15q1hx198bxr5ip9ssfyf9wbccqrgwknijcbnqsm9mp082d0vc1x"; + doc = "1fi2yxxnqlwsq3m66b75a16hpx4vs3imij175dwvjq1nvfg5y8cn"; + source = "096whv58b2g15m6mzg689d0mp6p9yvj8z83w431zbg204h0kx0w5"; + }; + cloze-55763 = { + run = "1w0wydk9kimnihll4r8nx1kp6fccgmhybxl3qzrqxk58x4imp3sk"; + doc = "1pprx0mdxfn8gwdsi03ifscinnvj7p3w8nwir20z5q5121clss95"; + source = "1ijnnfq0xrcnysc9sf54nc9a2xg42jqfiqawb8a5jnc62dx9zwyf"; + }; + clrdblpg-47511 = { + run = "0p38c8p426dn4i40wwhi5hisx3yc8bqdi7vwxdbya02smixkpp5f"; + doc = "1l0avfhvabq1mm9yqrpr29ps9iks84j7mbfgrbrd6kfgpdpqqhx1"; + source = "0iphx9hbs4ld49d24f2i8dcyjxaqgvxznq3i34ik2ywampr2a5k1"; + }; + clrscode-51136 = { + run = "0kk8hsrd8rr5vadvh58fdlzpz29cnpr5nhcl5il8fj466dw0igv0"; + doc = "08wps3rkrx4isg7abr6icfj9pcnhpnpylnk3wvwb42pqah8975xd"; + }; + clrscode3e-51137 = { + run = "1f7p04gaccyynqm0wzfz8jinsrrwn6i4amc51s835gxkjv2d8gwv"; + doc = "1kryc0ay3bx1maydfha6wm4qw2l9xprnhs3901qbz904l21yawhg"; + }; + clrstrip-60363 = { + run = "18ln2mlc8bhhf96kqawba5dqi38f5j5s23qmp5dmpgdm7fdanlqn"; + doc = "1mf6bcc17ivcdvy36ash33bmhh9fcry0w30bfi96swjq17740cla"; + source = "1dc29n1m6bq5rbpf66q07nss8iw9mcav8s1gzc56j12ik1r2sa9y"; + }; + cluttex-68912 = { + run = "0kzc9xs7rn8x4zh3z4fh45d370k5526mr81sxb95jabsry82vn7x"; + doc = "1ii7hmn88h4s0va8f4xsndvhkl03csz13nrnn6jlzl8rj02lz45j"; + }; + cm-57963 = { + run = "1i70pxbx7bp7lzpd4skdymv1a7h8njsr42v8l8jvh4bs3gkmlbgi"; + doc = "1s5jagrajx29zmpdbqc6qpbcpwgp7g4c3d59ilg4sgcqgd9n5v1j"; + }; + cm-lgc-28250 = { + run = "126k3nr39xvgbzjws9x9xs01rj738lvgpy9r2wjvalxqvd2sahw5"; + doc = "1xffcgb60kvbg07hsw3dc6kzjqh907fj97qrrj2586b66asna5il"; + }; + cm-mf-extra-bold-54512 = { + run = "1l1cm32z8wcpj0cl7czqkhnwil3ail7a2bbzn70dnswpj0ka8k9n"; + }; + cm-super-15878 = { + run = "0vpxkin8zvanasm0n6zzgmy7wssca6bm5yia2mjdi7nxzqyawlwr"; + doc = "1ygbv3gwijyaaj8yzwxzsjqsfjdf52m3lm3f7rp1503d2wvq2qzx"; + }; + cm-unicode-58661 = { + run = "1y71gdk369hs2yzbfnj5i6yy2xjzv4n65vcfb8z7x596kpjm5jz7"; + doc = "0zc7fv9p1m7dgi3vwkra2d8x18c4gkqzkd06gp9c18jgf0m6ahm5"; + }; + cmap-57640 = { + run = "11ki3gqlk6hjbpffmi2zdlj0rg5z5drcx8zw9nc480mxz931h273"; + doc = "1ykxc5bg6s1c2p52fyl2dkmkg25ylngsfrhsw05yzskj1l8v32yh"; + }; + cmarrows-24378 = { + run = "19r3r86vdlkjgx98dsf8c3crq14p8ljdfq6cijqqsvj6p4p6nfy6"; + doc = "0svllk1cvjn1mw68yfhbd1na6grp4hlqbybqnmw7igw8ilpshl1b"; + }; + cmathbb-56414 = { + run = "03da7ak8q3qyvwnk52mn2a79q2mfbfk0bfrkvmjpqnlagw35qmbi"; + doc = "1i54xpnvygfmwbvdnj5wwd2fwfl1y4f99afvs283lz1ki2857aj0"; + }; + cmbright-21107 = { + run = "1ypjv6wfj1nm6wj6laniv304zri75q9gaik95sxbz0wh5cxzwgr8"; + doc = "05cwyxmh6mqj0xf4awhif1vvms0j1lmadd1fgil7b14l46mcd99c"; + source = "1y5is2678czhhkw4y5nrg05qqfi3n7fbric9m6pszfkh4iw0ml6c"; + }; + cmcyr-68681 = { + run = "1fdsd6ks48rvbvg44ac01z89rbd4w887lg2f9wqca1byx142jg3h"; + doc = "0f2i6yzqy4lfh42y47mwqb9r4ni67bwgrrb7i7mfajnkcb6mi7rm"; + }; + cmdstring-15878 = { + run = "08wyaqfyjp482gwkwfq2xw3skazfzlv0nn59qri9728rmgykd3wn"; + doc = "0236d4ngq70xrgsaxg0b0yqgcnq55blkq7d4hgw3sx6s6hkxfkn5"; + }; + cmdtrack-28910 = { + run = "0ygl30hj8rczxj8sxis9cfq419rscvndj5fwyrls3c1d2mnscizd"; + doc = "03gp5n28lg10h6amf4vxamvnsr7hvrkhmscfcdf4jyp3kkkvnv4w"; + source = "1m8kfxys9nh3xml6inyn4qyhqmw3h572lvlbh7g4z0zzqgiah3qx"; + }; + cmexb-54074 = { + run = "1hfslkscqr01dkgnckfcr8c04s053s6f8z5xk35lcgbqj1l7ygag"; + doc = "1f6nrlnnq3c8mwsxz58pk05ginjkdjpgpnnw2alky20s78cc5kyq"; + }; + cmextra-57866 = { + run = "00my52lh3cn8bn211fpn7373b7khaylx4fgkrd2m72xgaymil308"; + }; + cmll-17964 = { + run = "1mv2npq85fmm8ff3n2czs1mfjqcqpy5rx6dwy9c5ra1nybx0a5ak"; + doc = "0ps62xbzac6k9hk0s7wlk14iq70h922sxgagy5m8an9vqp94mjzi"; + source = "1vhh0ds96n1yy3nby8np7v4i747cana8acvcnik1zz9h4xnf4brj"; + }; + cmpica-15878 = { + run = "1j8jsl3g76wxdpzsj8w68ln2i386cjzclcvvj1nl7z9k5bxf4s34"; + doc = "1rj4g0kzy0ci440bjkh7b7lyh52xx6v737chzhps9w8q1b07wvca"; + }; + cmpj-58506 = { + run = "0hn69a35zkfrgy2gndhqlrclhx13c7515wqw28j4fk6ffpmn6arh"; + doc = "06yhinxa4s8hswzzh7d9x8v768fzk171fgi6kxgm76hfi4ydlw9w"; + }; + cmsd-18787 = { + run = "0zykh9s50cgsxsv2958qyvwck5lw9s2a6fdx7yb14b95wkryqssd"; + doc = "1mp1lxxhb489appwqsbg2g3lym4xvffg047lg7rpyw4msw3m87ak"; + }; + cmsrb-54706 = { + run = "077f185vcrklhnchlw694113fpgaxy8paxms37rp2br8mbhczy00"; + doc = "13nd3vhxim71kcl2n02fcrm5vwakkrn0f5nfw8irl9i9r9bgy6ll"; + }; + cmtiup-39728 = { + run = "16wg8nw15f1pfcrm49xnna6finbvl0jr0wyapqg9i2jh39c1gizw"; + doc = "0rr69cqg5pblx5h8xyw1zkap1fj3pmdznycplxx0kd4wqzbdd47z"; + }; + cmupint-54735 = { + run = "0y3pf2mbhxhn67skzy89850fhn17xr0b0ghcxn1ayq19qr66yrj7"; + doc = "0v180y0j3md4iyx54fvjr7g00mavmkw6b99bsm07nncfq0anajms"; + }; + cnbwp-69931 = { + run = "02anv8g5zcsvxi3yqf5jl8061awszqh3gv7br7gjg4c9c8brj8y3"; + doc = "035zm4hk84vn98fgxji8vrmpq7qih5771j6l54ij7ff4gxdal0nq"; + }; + cnltx-55265 = { + run = "09czgnx6jqn856sr0hg5j9azaxc4i22yp1dz95nn4s331khl3z2a"; + doc = "1ly2cl3srazzynhikk6myzsfhffz3k63ddw2x9sbnvw6j7syd545"; + }; + cns-45677 = { + run = "1b9hs7svh6zm22vw5zv6nqmdnmw453xv15gl5bgm4n3f1pz757wv"; + doc = "0zdjgg2njgcf35jvbhkfgiv3b9cccf7ds8d50ga3v1ia9i4h9xq3"; + }; + cntformats-34668 = { + run = "0mx4rgzk4av74s906andw0h9ga5zl2c3ip0vi4q9349yj643k2q1"; + doc = "0015ynn7mw1y8v14qckbqkvb1fn5xqaz7rcs6gid1n19f1qsbh6f"; + }; + cntperchap-37572 = { + run = "0g7211nljimm9a5fvry89ch4nf49xhad9ka7prdmlpj87h9ygas4"; + doc = "1fmq2r8ssvp99ykil3aak8w301qvh4nldsph389m7qar2pviy1sk"; + }; + cochineal-70537 = { + run = "09bhgl11ps6zw62y0jvh2pfddxcgdc92scv9irpxf2nvjlyy3wg4"; + doc = "1lg1z4nlw3w5hw1ivhbbk44qg42m8s9470d64pgzgbgfsalyx4fp"; + }; + codeanatomy-65648 = { + run = "0pi4w20k4qcm3sbzpd2dsdpq6r0nblgjm2s3m2gclpmsybzmflp2"; + doc = "1z9w6llgjnlmiwkz6ghv1cf2ilrfvj0r1k2c6kilsz4jcc457y3z"; + source = "1vag4qaphfw0xrdl7b082iwj4z89x77sh62y05xs0f2bib9qlcn7"; + }; + codebox-61771 = { + run = "0s0145rdpqbbagc2klx2w5h6mlx4ns0qlllws31qbvy6byh65ngk"; + doc = "1pj5qnzfa7725v6cixkznrs7yybc2v0ik9q2pxa4d25rpfxap524"; + }; + codedescribe-69944 = { + run = "06pvhd7v4p58hdi9x0ipmwjy84x70c65phvcbayfr0d5n0hrjvi9"; + doc = "1ybanfz0zrbflrwdpzrpxk61g2j4zwimfvjlkkh2xrjvsmb95x6r"; + }; + codedoc-17630 = { + run = "1zz70vp8ssblnacrqdsq9nwvf1lw69mlk9d94cfjc818szcgi9v6"; + doc = "1f3i3vw1cmdvgp05xckr748kzbairhvdpfvr844y7wnmxzr4rfzg"; + }; + codehigh-65787 = { + run = "0nls47d5md0b46xi1nxydzwf79xrqh6ijj06h5n5mb4sw7w5qylp"; + doc = "08d7vyn1s4gqhnbz7f935n96ay9hk7k41w8msg8j9s937qh7fb64"; + }; + codepage-51502 = { + run = "0kxf5zr3mhn5pd8pzmzslgnngk8gms27ax6cqn1z0n35zvh0p17h"; + doc = "1sd01q8lzrzgk9v1dyhf4m7a4fspjll3w8wwkbzp7gc693xg3lm6"; + source = "0b38lcswx2x1jl6ydmvs6yr1y0kiv6gdicnbrx5qs8xhwd93bcag"; + }; + codesection-34481 = { + run = "0qp4k2z442idg0mjnancfskj0j0k75w327fixjgdq1kl9q6jm9p5"; + doc = "1fs5qhcm1cil5cqi8dh04zxcnv2imq4m77287amq0mbh3j5h9i77"; + source = "1qfnls0g4z3xsmh89wjcw31gm09c7yh1g99ksf0x9ml6yx1j8f3l"; + }; + codicefiscaleitaliano-29803 = { + run = "0im75yz3sw89ky5lcrcjhg6k6j4sgkjfn6v4srmqzcfdmn2qyx7m"; + doc = "068234c0shvblzkcgl67a9s9whcbyjy3mjw60i8ljhs5z5wjrnc2"; + source = "1vsb7dk4mlaacl9ls17lm4xdw27xzdgvng02gkfjvja1ja3cq4zr"; + }; + coelacanth-64558 = { + run = "07y3hgw3apkkncch9qcl71l5xaff8zqpgcwf8is7wz1wx173hafs"; + doc = "0ylnvl6ya87aivb10z8sq2rw02q3kljdiddjfarx70mr1jzr2hma"; + }; + coffeestains-59703 = { + run = "1sfxi8zimkp76nc3fg7r3qyf628sh9p8rh2b8l0wq5aga20951n5"; + doc = "097c2xgrgy95w7v5xb9lkgih65ji5jlxzdm6szdyqnf659bmibm6"; + }; + collargs-69284 = { + run = "1hiqc0gwligaalxacv7si4g7qnn06aq7c4kqf2gma01xw8mi61gk"; + doc = "141glrca5d5dsi6azni6valbgvkdywh6isian3av7gm2wridi3js"; + source = "0qxdlmf1yvjlisizpcpmxclbs1wxap1zqivvsxnycyf4vwf2wxj9"; + }; + collcell-64967 = { + run = "0f0dzdnmmi4cpyg2qfdxkdl83qrcsddpqm7z9g9mxfnx4lf86y3i"; + doc = "0wyvhcw36arrgnwq7zc8vck3m37qrn7my4r6959p4i7zhpvsazzz"; + source = "1k7s9rkbp829wlby7h1hwlv48bzxwwghcsnmlxrs7qnh374dwb02"; + }; + collectbox-64967 = { + run = "17bz2nh141yw4cffv1w6cdnxkgi6ilsr5fkzkp6h5glfibmzhi62"; + doc = "0j9hs1q8bzm4p7rwiikc805khkar23722ylf00yb7mp5mvky8996"; + source = "12llsyfksri5hlncmj3bba779jhwxxdr9zcck02jmrvx61d1znvh"; + }; + collref-46358 = { + run = "0q1g0x0bm0qjh568fp45b1ljy3w3jgy6s09ji1d1m5yrbs4dm7qn"; + doc = "0vcfrdg9mqrfv2jlxh88g0nhpsrfwgdg9wjdn0l9b4c5h8zq030c"; + source = "156gdfrd09kyxjiplcm38s3zj8v6bygwlpr9g952m0r72q7cq54v"; + }; + colophon-47913 = { + run = "0v8q22qxjrbc1mpsmfvdp13iwkjxp11cxs86h2b7b9rjs0cjxy6s"; + doc = "0s2kz7q6nkwc19jyl32rzcbbcm7ykhkglanx010xfz08vgirk1pz"; + source = "1z2dihgwd4vbk87n0hzpipm2359fwl1z13fjs4g9r5ys7iv36wsq"; + }; + color-edits-56707 = { + run = "0p465bc127rlm53xngrynmrxswzmp1xsivkfy3mj22h4ij6db03c"; + doc = "04zfa0jryyw79rz9s1c0yzr1i8zla7ivvfw701f8la1rab7z6q94"; + source = "0279n81xyiz4ipjbr1jdl0wipfy1lkl18jx8mbqcbwczw8k4fbn1"; + }; + colordoc-18270 = { + run = "1hay7bb0xh2n2j9clvbn5ayz3jq0yjaixi35isdsf9ysvj81rx0m"; + doc = "14bw1g3dna2ykyv4fl32gvqjs0n75vlfpc9icdk09l7zhdspsvfn"; + source = "1bssn8rjrp34nm6qhmzcrcn6a0ah9lv5n94d1jxqhhaj4pmimd2j"; + }; + coloredbelts-68747 = { + run = "1y4ds4n6b6avqaqbnj5yh369bnp1f0w4mhnzkjvibhipis7n11sg"; + doc = "0svl3fr6df2mvqpf8gfcb2byj16hbf2szdnbi8scbvrww68jmldr"; + }; + colorframed-64551 = { + run = "1kys1kcq1j3c4d8mv22fgdw5l2c9ar3il8cc65w0lx4avbldw28r"; + doc = "1xg0gbyh0ay38yk00in78q7mysnmlr4maxzv5lw3s88l0adykr8h"; + }; + colorinfo-15878 = { + run = "0ip7py03xrsrn40cgkl4dnj3q9g0f9fbw71c9rsg9j7vl82fdn46"; + doc = "1185m34382n9rk6w81ppb414vl77kikkhwvn78aahlyli4il51l8"; + }; + coloring-41042 = { + run = "1ld6gknb8a59pkz50wlil5p11mnv6ss0zsjbajbw63dg0zlwaglb"; + doc = "18y8apbkh7yqzxrzpraqhd76k93xnvgq5rana8lq4xh5z3f7skjq"; + }; + colorist-70101 = { + run = "1j4fpnxpi081ar0732dqgg2lyn7dic1lfs7nxhfg1xbhkxnv2ms4"; + doc = "1zrx4vlp4w4k58rrnpvi7m4l0llwmml844yvj26wzap7l7zj2pn5"; + }; + colorprofiles-49086 = { + run = "05nf7y425f8ric57c3afq7ymc7ndxcdahbx9n32jnaz9j3qq2ypl"; + doc = "152vrbm5km4ymj5h41x8cjyypj06g4xq3vyvmgakai9qz270dvyz"; + }; + colorsep-13293 = { + run = "0nf72pf2bjn8pcps45sn5dcjf1dkrww9wlpp1xbzl1h9i68p3h3h"; + }; + colorspace-50585 = { + run = "17pahq2wh9vqwpkaqkzc3ypcz90i9qpmw7867qz4k8a87sp7wgji"; + doc = "0g766c50w7xpfvqpp6lxjc6lm2cyr8yl28g7n357j1d1lxgnv0x7"; + }; + colortab-22155 = { + run = "0hiq8wgqiwxnw1gsrymshkldspdnizcci56ihn22h0hcwz76hgzv"; + doc = "1cj84k7cl6cww25yy2lynjrbicn0qy4y09rh6dx2zq19972fggi3"; + }; + colortbl-70034 = { + run = "1dv46n3r700khx38d9xxx0i4fj07zgvf5lkhr6jfihw9sjxda4jy"; + doc = "1gmbqf9mignz5qprv94qh9rn4ywqx0kpwi1aagqp4h1wdvqr0h7d"; + source = "01w0n3hl5m7gymcvf0w5ph2vla2k9b8z7y9k9xfnchc1xn4kid4k"; + }; + colorwav-67012 = { + run = "1dlh3ipf98nq5m34rj7naafnw9hhrbljij721mw57rbhbpcyazgr"; + doc = "05f91rmf1kpdkfl0dgjag5cq5xvcflihfi9xj5y49nh65mq01w99"; + source = "0rxiqp1q49l1dlr2npbb45jygp487zhhzjx850f68bw5vq8wz9j9"; + }; + colorweb-31490 = { + run = "1rz9ay86z5bf8m4j5w5prvvk1nmlaakj3g0qfsrl0cdqk7hwsfsf"; + doc = "0vzcwhbq1a6pczvrv21z0q3y1akfwm45fclf0857c8jvpikkzb1m"; + source = "1z0h3l9gdxsg6lbw7j6nqhafxq8b8smcn4nmq7ywdzryp8b6fbw2"; + }; + colourchange-21741 = { + run = "0y8r7789xaj16cdmsz4q0zyq9l09ihgzzgk4alnggsyx1ny45ybv"; + doc = "0zj9b8xcnjlvadams6a2z3pvnzjci5l10kran8mg79ncvzq386cj"; + }; + combelow-18462 = { + run = "0s14rmmv44js6vc2l8h7gb9f8h5w4as71qgxbadaxw641xfs0ys3"; + doc = "0pwrqhd8m7c2444czsllk4sqai3i2scll94y6qy7m51jvjycyf26"; + }; + combine-19361 = { + run = "0rk76f508pwhq4crcimw6mvqw40j31g2nsrxj17pld7ygxf9a5ah"; + doc = "1kbvk5wdpjxw9slhz63pgz65kkxcn0lkr6i5gv8gcjh2w61xizq7"; + source = "13z1yd5mb4jdsa3kjl49412zj2g0nkprmmv8d6ibnjg6zdf9s0xn"; + }; + combinedgraphics-27198 = { + run = "12569y2i0q2lbmnwlwjfc02x0drpa3vcy58wbch4j2xzv1cih69s"; + doc = "1jn4vdnlz0mwjv09ry0phbisf5zv5valwd3779cqbh1dzpnpl7lq"; + source = "0xacdk2xsdlzgrxh0sa8sgjkwhwasvahgdgjjxa9p82bfjhr1f4d"; + }; + combofont-51348 = { + run = "051xpkjszw281gcpacc5s6wpbvwx66hkbr5fpg72205raa454bjf"; + doc = "076niz8w1i6zwq1938iplhcv41qfasqhw8darlr84fr08d3hjwl9"; + }; + comfortaa-54512 = { + run = "1kfxl806y2g6axx8csnd7njyd0skxx1gpw7fm3paz8yrzvyyw89g"; + doc = "0irfhf9qw81m9x03nybk7br1nrsk4gx1dccd8ay7wd3sgw00kg0a"; + }; + comicneue-54891 = { + run = "0w2jbwfzfhbm5375852zv9rqih3p7grvi0s79sxr6gpzh7iyvlxr"; + doc = "0wr71zjk337h9p38nm67ga8js60vqyqfslwn7dqvzg06p0741bfk"; + }; + comma-18259 = { + run = "1xaq59fm295wwnpls4qfw364qf9iyg97xhsvglgnnx8w7ydhr68a"; + doc = "0g8jpwf1ilkbk59p4l372is00qwhfbsf8f3db1mxysmlxyf0m535"; + }; + commado-38875 = { + run = "00by3sskyr1hfc9wqazn2rii739bhl2fhlwwp83h6wx98h51rfx3"; + doc = "0mk7k9gyv2xxd3l7m58dsirk32cn7wbmdy9c0nc6i1jyfpsfhmq4"; + source = "0719a7bp07vf5jgx00cjdgvzfnv7wbxrxna2bdjjsfyvipyr4z8a"; + }; + commath-15878 = { + run = "0k3s00r4l8bypv1166p8jkdj1wrx4ar4w0y1fggmpzivqicc02g3"; + doc = "1n2929g5jhkrrp7fs237h80571m31dd9x0n2dhnqfgynnc9vasrd"; + }; + commedit-50116 = { + run = "00anqgix8vydq5ssblg5w5i8pziy8fvlva2kpwy5cjjiqgpprcd3"; + doc = "0vvnkp8r0xbsyvzps4a20fr43cj2559cs6mq7jhja6jzvqqc6mic"; + source = "1kzc8i6nmvw7xwz9fbfanabypissbm7hnmmgp2m8r462ywzpa79c"; + }; + comment-41927 = { + run = "14k4y4abv5mlhn1i8f90bxfymp9vz0aha4p2gql148wj2hh7h96m"; + doc = "1589g0dah13lw4p18cqprhfnh1184m79ddrgvc2l22bq6vb1dsb6"; + }; + commonunicode-62901 = { + run = "0mx8nsyiy7jbdqsjc19sghifigg06is99sys3xg0rr451rxa1kyv"; + doc = "1c3xabrgpmff2b3yfrxj7sbdwn9jq71xi2s0v6329rwjd6vifwd3"; + }; + commutative-diagrams-68044 = { + run = "0vkcb6gbzfa42kxdz3g77phqi6j614zpdp0aiyxqxvxs2jk7ncpi"; + doc = "0hbb7xcki43274s3ssjqw976cv8lmyn1gd4rlx5gnvc347r2clrv"; + }; + compactbib-15878 = { + run = "077l73vb0rcxy1n51r3wmcb7gma6nn3xrl543a67n96lpp5xvnnk"; + }; + compare-54265 = { + run = "0isr7gmskv55cr4f1fa7s478v6fh65q9ijxkmbpxj0448g9817w4"; + }; + competences-47573 = { + run = "0hijar81j2jpwk5j2hrgaxb1fnbk6qh2qb0qbbmhsqrdrfcl6xdl"; + doc = "0ywq9f2a1fb584kpvzwg8b16qc7bpcn3dzsscs6ndqbgcy0zc2yf"; + source = "01dccp2wqdy52kp79n099v9lh1vfambg0b63amq37ac68pwn3qp9"; + }; + complexity-45322 = { + run = "062xi5wlg3axhrzc9a6nj068z7nskb7qwwk2wr0fzvsflqa9cp0i"; + doc = "0yzdyn9j1jk0nsw0l4r06cr4brhz1f3lfxc918zalx6h9wnkxi2b"; + }; + components-63184 = { + doc = "04yg9hq0wcyi1ag9y9m2fnf5h3n4fdykiwljgpw0kyc73bfyhq1m"; + }; + comprehensive-69619 = { + doc = "0cmw36bn6pjb6ajlrg2yz5imkrxihzzdkh56xwdk2abwzaqn09q6"; + }; + computational-complexity-44847 = { + run = "10as8msnqa06dp3hp945m42rgbaqsja8z4sc79x7n77z6qzmznvl"; + doc = "0dq56zzw1xzzpm1rdjkqwhr6v93xiv00c1g2rmlmfj5dnbzng7wq"; + source = "02mapvsz8j1979gy7pmwkdr6wq55v0al71ffl9bi2bl7f5nsz0vc"; + }; + concepts-29020 = { + run = "18vjncdrbp7m7m08dnfmk6sgv79jx83bc4yvvcqb0j9mn9niy1f0"; + doc = "1bq82dgsl6gqnrs88dzg07dn4rmc4y5by8122zqaqpdrpjxhnvax"; + }; + concmath-17219 = { + run = "0m98kyji3v4gg1a30phmn7fwssnnbdvyjxvfpl36lnljnicpg28l"; + doc = "1392wq35zidk71vxybrwjq79p2gf4spcv0qqb07dsgapbhr2g0aw"; + source = "1zn35da4jlplqg7fb5ibzaah2yh1cwjqvzmx45jxg0hnsc7xmlfd"; + }; + concmath-fonts-17218 = { + run = "061kfzds7clbxyq62ilxwcrdkfghi2lx8afik7vi9gg0hysbki7y"; + doc = "1x6wb92k4da01sv8b35p3bly9hj46hh8k9wr22m7lj3rxnndnpcq"; + }; + concmath-otf-70337 = { + run = "0qb0j7rxb0h8ym7iflmdhlnncbjkck2b13h2zwanik593npgjgg6"; + doc = "0sysisasrln5lx9783bp0aa8vq5b3crlr40lpnm4hgvcwrr0007p"; + }; + concprog-18791 = { + run = "08yr8yk9gp35d0nvh54ysgv61s062vj446fyb87n8jipfm49mj2x"; + doc = "197p2bdn1rqmxva56sagvb1z7kc8gwxr9zf612r6g8yb07xg5riq"; + }; + concrete-57963 = { + run = "06m8d6z5z3dpj9i0nvp50g6pn9j0m4n0n1j3w94nml137qghawyg"; + doc = "06z5hh9ksr9jpkfchyh2zp8b827klb4v282ipizrm1dvlv2r1603"; + }; + conditext-55387 = { + run = "0g6clck3v75yvg7gv42w24zv18vi5jcg1q9k663cxldix77lkgbc"; + doc = "1qc7w7xfpxarb82hf66f3i63v7ypdybqwg5g3j8qswj1a39cy1wm"; + }; + confproc-29349 = { + run = "1s4mv0g2x5mfxnkp0i29wa3ncbx9fa05qqf734fjppdzsgic079i"; + doc = "021kbis3c73gnavrjhqa34fsbq5c94lmjym2d4ny2wpk9xagh994"; + source = "0dpghxh9mq2sr7aqgcj15h6b4xh7x5hvdzph6606izpff8ac7h8c"; + }; + constants-15878 = { + run = "11naj0z8ppb6h07r7cff0lcmr8zgc29kp3x7spi60zi6cq2546gk"; + doc = "1wgvq0x1kjgd0bs0024fkh7wis9aw9qryd7y0igrbgdgc722pjnp"; + source = "01skagh044v62vw12kmibgd6y42z5r1glrsvi9y0h76vs52jz7hr"; + }; + conteq-37868 = { + run = "1h7b98qw9hl73gh4zidy59z4rly9afnvmah75jgvh0k1v1hm09df"; + doc = "0kgdggc8gpd1h7kdbh3ala5kz8rs56bgmwgv9wvxsqx4sn19q2fy"; + source = "1y0g7sj696d6qhcw8vrpxr8gwik54slp7lijbxz64ksqbw5xjqv8"; + }; + context-69665 = { + run = "1r8gkrrrq1ps1cp058m1jv8922zsx3hw6c5vsmxpbwckrp5sirwh"; + doc = "1nh2yf7vb800cnnmzic5hmy4w5kxd38y1py1xjg7madphb9zdc60"; + }; + context-calendar-examples-66947 = { + run = "0asc49mn24ql4fk73089viy3s6wff865xk8af7h67ffsb5qjnld8"; + doc = "0wza057wz18yf2zl1j77hddzimwnraw5wg1579ncksywvhnmx3rp"; + }; + context-collating-marks-68696 = { + run = "12vqvbp7ns9r5nc7p7nrlsll3jp3hc4xi9wjyjq8lrmd8ly3v26w"; + doc = "0nawd3x4rl73s4mhpq2wd1sqa8i6k2n0a39sqcaf21zx99mpiqp0"; + }; + context-cyrillicnumbers-47085 = { + run = "1gk4ncbfzilj98s7k7s43k6vb3il511k434aj34fsvqh5x9x4aw2"; + doc = "0f7r9qgfc8h92jprjqa24q4vpz4bqrrns3glhmwh3qmk1f2gyw73"; + }; + context-filter-62070 = { + run = "1vj8kimqsmn9xhkh22pywqbn4sal5gxpxjbcbv8xmxcrby02gsfn"; + doc = "1f6phdqxgvdg9c6f37m654ha6i226d88i81147h9x6sh01i7qd0b"; + }; + context-gnuplot-47085 = { + run = "1pahxhbliz6fsj2va5pgwcs55b3rhsmfnjb9qjxkz3gqzrzdkfdp"; + doc = "0l0qp9c0yvdrf8398wyac98ghrdc86lxgzr5l327gmgnk8572gxn"; + }; + context-handlecsv-70074 = { + run = "17sn4nq1fn3868xwnlg71fqx8cjfq92dsiar091635cl72f4fra7"; + doc = "1fgi9sg2392syill14msv8hib1k349pcvbldiq1a8g72giqkf5w8"; + }; + context-legacy-69173 = { + run = "0j18agzfhwwzbdnqavphvrp0lpji2bv21qh28kcvzl269mgjgbc2"; + doc = "17wsgg5zfx0s96wm2l9zca060z6p3mj88hcrw07vy44imxv3gyiy"; + }; + context-letter-60787 = { + run = "0bnd56v120h3c235n9v2h6mzvmd6fy1g837gjim5fkkqd7jyzp2q"; + doc = "0l4vgrpha5kx2990kdk4pdfljznlczlji0fxqsxs292yb3yy5a4m"; + }; + context-mathsets-47085 = { + run = "11r30c6lpcvkx7awgm70cb5darl90fvpnf37hj2mb7h69d281hv6"; + doc = "16qckniq5v52m36m05bpnqypfz2jn4430n5x5zazx54j8makv827"; + }; + context-notes-zh-cn-66725 = { + doc = "0pdizaybvxvzh19451x90mj81ql98q91f6cj8mfxwxa0mci1b9p4"; + }; + context-pocketdiary-66953 = { + run = "1pm8zaypfm575ryq0jzpnwf5p9zjg7hzb6lnc636cf16y97a1vkw"; + doc = "1yy38pa4m7bqfb0r1wxj1g3zdmwzgdil35g2lw63ww15y03k7w0j"; + }; + context-simpleslides-67070 = { + run = "0dgmix9w576vxmffbm4digcp00vvdgmdxmxwjzrrkici4rq31w79"; + doc = "17djxi04rhg61fjcmsz4yjp7mnc7g1fbfb9mmkcf7gk8dwzrvigf"; + }; + context-squares-70141 = { + run = "0l56p7zf7f9ywb66v6cppnqh4k6zlsvwj37vxcwshwjwl9z3cfmj"; + doc = "1qxcy1qhk77p63h97qad3jvvfcmsgjm6b81cn10aakvl3sniy7g3"; + }; + context-sudoku-67289 = { + run = "0fnzvzpn2d24hdi5g18f1mpaqkyrcf8kvkprqdz1jvlkqld82kd7"; + doc = "0dqzxcljl1mn7qs7hk2pahvc5791m4c911j5dv85fwaladhjv9xb"; + }; + context-texlive-66924 = { + run = "1fg95ihx4wbm38j4rm4p6vdaiib6n7lcf43m444r4nb5flbrbv8q"; + }; + context-transliterator-61127 = { + run = "137wjy0whfbwp95h4grypwxld7kxlx9h6l3bkd5bpfnqhg70j05d"; + doc = "1snnrk0h6pwg83qzsv6mk3n5fmirk6rxjih43rcs290amkx8i49z"; + }; + context-typescripts-60422 = { + run = "1vvhd18qd6vka9rg048arpwn61rqw3za116k2yqfy4lnp2rypk0g"; + doc = "0pll9scpcsxzwgsy77mbpw4s0yv432h5p0av70kr81zzskfxabxd"; + }; + context-vim-62071 = { + run = "1jinagfnv3aghjn8gsack6zl9d3rcycwqmxir5jdjhbw4r66yp0y"; + doc = "0gc1m894ad0y8l1vis5bc9n6avg8npzlqa4xr20z401nxhxmbv6h"; + }; + context-visualcounter-47085 = { + run = "0n20r8315py52ghivwy9kh7g7yj4ixakmkn97phw1fxgz21jk6qg"; + doc = "18ncq5d4chmnmxmhazbjh9ypsm4c3577vgcmnx0y1pmzgb2g8pn9"; + source = "18yyv9974cxzpw45rzw6ia2jamrb07bzw6gqchdprdjs0xmhz308"; + }; + continue-49449 = { + run = "0vwz01gmbid6b2aj32qnz1xrlk9h0nicjv9ix1rvqdad20m1i4wa"; + doc = "1mzsj70v9f6srmc8ja62pph9j67p644hl54fx6nyahvr2h9vdik2"; + source = "1q835904qai3r49yi8hrfxkh4bjf6913qs5fd2dv7myp1w93j5ir"; + }; + contour-18950 = { + run = "0xb8a0y3jazrq5gxfnxjl7qkyaqjnmyhjshgngqcsrw2sq4j4li5"; + doc = "03rxkl9vhhqa7gpigar8w2h78qvx4k68chhf0881ws3bm6lg15sy"; + source = "17sfl4npipzgc7jwqx740nny7fnd8bv8k4vav9ds765ky1xcs521"; + }; + contracard-67201 = { + run = "1qvpz8ybjc7yx8zx4kzcpjchvxrb949rqb3905rhl61shpqv22hm"; + doc = "1jg8kgp9wvxksjz9kxyh3qqxhgjmalkpj8y004qvrxna2r2idj50"; + source = "1v6ffg84czajnl6p6a1j8khnfmzssjkhbndz5ajkww64iiw060i4"; + }; + contract-69759 = { + run = "1z0rp9xb9xpxjrdq2ww4ggai4lvfag28s3cmsk1c5w2kb5jqdjc2"; + doc = "1piy96g4vplzqrsvczhm7fp4wmq7wb15l4hplqlgnis3k9a4aj6j"; + source = "1dg8zqbbpdaawwa1dh3vbh1q0qlgid6ib13cbynan4sxf4h8f386"; + }; + conv-xkv-43558 = { + run = "13clac7dhg2p69ccv2yjzdh64yjx02y0fb0imx9lsd0knnb1j3aa"; + doc = "12dln1r2qyadxr4cy3xbwn18s5y8yxgxid22wpb2i42n5qc8j1fy"; + source = "02hz64vbcy7vg363vb86vydaa29g5cgji2mfpn640dgmqq0s91vb"; + }; + convbkmk-49252 = { + run = "1hb4ahbgihnzqmcszxlq67bsiqprrxa9vf25q8yz31j70sg7s18r"; + doc = "1h1iqcc1rjcvwg9p7xg5zq6sj5bi68s2cknsbwr6dbkx25ihwi4i"; + }; + cooking-15878 = { + run = "053wbmf3xrhwjxp77f1myfvz3f474kpk626p8gds939yx50jqzvs"; + doc = "1db5wxixparr81vanwkvg097ll58fqpp3qkh0wz7mbqjkansp6km"; + source = "1gka18njp7ipa0jp1527mhig43hhvz5bcdpvs95c61cvjrmwcdm3"; + }; + cooking-units-65241 = { + run = "1ainyz58nk9zyfg4isfgjk3g8gjw08ri8d1x9kqnymdyplxqankj"; + doc = "1r21szkygn46i5263k6qryb1fhg9va71f3dcqxw1dh3f8f2bpcpw"; + source = "0cvfhbr7zjcc8d5r453wkgmvnqwmx3qj0gl606sgrz87zhzra842"; + }; + cookingsymbols-35929 = { + run = "0kz8aaf7bp0y2ph0iia5lkrxnxch9r63iy7y4zpqcawh1ajl10ji"; + doc = "0dws0sdcg13jpz23zvkw6vfnc34qc1s464nm2nbdybhjwc9gdbdl"; + source = "1l1jkd6mcxdldvjyk9myig4jsi89mg6n4ab6ymq5lqf25d260h0j"; + }; + cool-67013 = { + run = "0sz3n82js8fq7fiffyb53ib1y49k0pg6bkbzgnzsk698y5w34v13"; + doc = "1gpa5im88apgfqyv1l9g4mcmw6fmryksbx4nbldwlwxdvkwfwdf5"; + source = "0ds25c0k113w365f0nylliiq1h76i753lfkccbbibs41rp2kg4p7"; + }; + coolfn-69007 = { + run = "0y25dmrbax6wxzlrqmp1j3h6xnvvk0ls4f4rl5a4a3hi167yqrkn"; + doc = "07xjbc9bj6chvjqv03p1c37bbqr1fjpkq468sx6cp0q6p45z17n9"; + }; + coollist-67048 = { + run = "174l3x19lajwfghixzxjizxwqj8z2q9rys9wcly79gs8r3pmbxwv"; + doc = "11p2s7wjrjdpzpgyhn4jnx4d98nbmbccbn6q1b8g3gr8h4mqvdnx"; + source = "08196xxbx6fvhic3a9p8bwrr3ir4v9ikl2vj8z97m9zryrzjv1i3"; + }; + coolstr-67015 = { + run = "1ky8l5g09cj6731i1x7fc8chp7qhpc35xcinjrajjbzfjr637pk3"; + doc = "1aj48ym4rykbz4z5rhfch5cfkyj14x8wngsvwrhzw0m58hpfpn4a"; + source = "0sxdiic0xcr148841ngzdmda4bgk9ningsf91ar517r2hfh1178s"; + }; + coolthms-29062 = { + run = "1z62gl39f9cvmwap70q05jml1657jxg7lvq81rgqh878z63d0rzi"; + doc = "0zqpx1c0lcrkp1zpwl776hd8gln7i5f5m5k5kjhcwxwngd8w8df0"; + source = "1bir9kbsvayk3xkchg7kjbwqkhda81vay9d70hmqxgwpa0l38j6x"; + }; + cooltooltips-60201 = { + run = "1apf2qvfs606nqnnps2rny9ly6y0hs7yv8injrbbk64x3nxk86xr"; + doc = "11qjqqicakybmnqz4vx5jb0cqsj8gw86rywj7ycvg96s93zkh12i"; + source = "1spsydk6mn3qzclav2g2al20sdnaabz9b0f01gq95w2qygl26hy6"; + }; + coop-writing-61607 = { + run = "123rbingcrgjg5dyafciwz8wm2bpl9bz9w54pi2jim87lgibnf92"; + doc = "0jqrf8pnpsq8d432s7b3qva93ydf8gng18fn3drfbzsvb4sqaf97"; + source = "0yhynaxvvhfhnx97p5p12xf66zng989kddlfw9pp6sv5alxfnvaf"; + }; + cooperhewitt-64967 = { + run = "1a9jq9mfw37qavbqynyqpsc1i0hnbxwy9z58ipqqaffblqfj5xvd"; + doc = "1i3wmhs3y0qr8g5srknbhk2fwbw4lxa732f1fch4qpsqqp20hy7y"; + }; + coordsys-15878 = { + run = "12vpxh6ll7q2jpsv85j68ij0m3b0335hflpqahk40dagybjkp426"; + doc = "1jcjvd577886q8sqzcsqil81b2lm31vjxhbdrgs38fw8n6q9g0sq"; + source = "0npd3qqigvp0i5zdgizm68sr1g5xcplgwfahrkak0kq4g882qmdd"; + }; + copyedit-37928 = { + run = "1rl23bq3fbn4rajc744ra2prvm4rmh0wvhc7jjsiw7sw2hzv467a"; + doc = "1ihvynh96vgl8ik237pf2pdfzclslrn0i7lc64skx3q7pmyv11in"; + source = "0i2pwjj4bdfsykwv6bchp2p7x0gpdbnyx37ri1d27vl72yi72pw8"; + }; + copyrightbox-24829 = { + run = "0n9z6dngf0z98bnzn6nl8yvy7dh1jmcdbqfxnzxarxzqq16f99ch"; + doc = "1clg6jq9cja76j5x9laykndfqp0i5a4bfmqrxaa8rp6y2gnvpign"; + }; + cormorantgaramond-64411 = { + run = "1jdqzw1jd0r0qc4wnhm85kg0nb92dgvwnjyqlxz67lb9wgwddlk1"; + doc = "0j6gq9xk9p2m8kwqvzjsh0s5z9x4q6v8klxygdahwgahvd0n8dl3"; + }; + correctmathalign-44131 = { + run = "0dvgaqy8pkk3plhqlxgkxkiwyhfzwcyn391grbqv764mvh4iar69"; + doc = "1fd32yzxj3l4sp5cp9rnwv3175jz5m5hxwlfm10x282g44l7mjid"; + }; + coseoul-23862 = { + run = "0wqxvh5mnrl59ry0qahxzlfajgpp0yj27h0falxnr4m5iygv7699"; + doc = "0l3z0fxsdlln0hjwkxf9ka9hw8zmmixml9lfy4kbrn88xq6z62yw"; + }; + couleurs-fr-67901 = { + run = "1479gy549yj0xla35f7ryvh7vkxppisvi4kz7ji9v2219hx4vkg6"; + doc = "09fh8d9bgh0gmabiq0d9l7flkk46w8yzqksnfygmbprib15b65ck"; + }; + counterz-67335 = { + run = "1rad8irarp20xah97ppzipns4i2v3smd44sbfi2jy5dc0qibw0y9"; + doc = "102axl32lgrdlav3fyzsahkcikmapivydbfwm3wkib624i1f1h95"; + source = "0f8gspf0m2b78fr0jq7n4s3y0f80l1pc3qr1rzjfs6xdrg1nv633"; + }; + countriesofeurope-54512 = { + run = "0387czqiyawxcjqh22czyd8f7y55kcrscxmp28rcm8wqqdh2ra0z"; + doc = "0h06f5rpizsdqddqdvvvh5p3nhm4y5aixjnxl8s0b90wpcldwrpg"; + }; + counttexruns-27576 = { + run = "0qmm8902apb9ks1ik1dxmzb3ivkivpj7a8f8mkn5xdyxbnqvm5pq"; + doc = "0kpasflvbal7x4r1ni3jf30fh7w6wi68109m5ajcjqrjzxkpgmdm"; + source = "0840fyw71mw3l5k5g01wd6hn41a079f83wmbyg64f4yhgjdjxjnf"; + }; + courier-61719 = { + run = "08g6lm12b0k6333pxcaqdf67v87fz5mrqp3jgal8qhrls5ym8q6r"; + }; + courier-scaled-24940 = { + run = "0gfqc90fq1nk7w5rvy3fqd5799aaxh48ia4wxcf01bhs4l7nrl1i"; + doc = "17zr8bdv5dv8hybbjfvkrn1skn6xpl41yfrb4q1nq491nwbppb14"; + }; + courierten-55436 = { + run = "1maxj7wsjqh2ni75pjpzsbwh1f9abndka1ilaiwik1c21kgb44g6"; + doc = "1lq4clwd38f8l4722khgnldjfk11mn1m4m82ppb1qk04qyh1v8sp"; + }; + courseoutline-15878 = { + run = "0mwv6bslzgm5ys4gl32mxcw42gkpzwkzrvxk6934682v85qi6f4k"; + doc = "1k135zma8aacd0mf6l5v4zac2blqzf6z5xa40094by61455x48ha"; + }; + coursepaper-15878 = { + run = "0n8gikcli14inz5q85n6k63yg6dczlpi837mbxrv5552hqzpivwv"; + doc = "1d8k6yj45x0wx790y46b46nhjb3zvv2ncbkhlzckq71fsi5ayp32"; + }; + coverpage-63509 = { + run = "1739rmdrj07q8s9xpxarwwds13hciyv3q41p18cm7md8qrdd74xk"; + doc = "19hw1mx7ghigybh23b8v65y0zx28p9armynkw9s7mgpbsq0wld32"; + source = "0spllq6j5rxqc6a96x0dx3n7skm4gqpp6fgas9vflywiw6i5vk75"; + }; + covington-69091 = { + run = "0imdahq466zkhjnxgnygyq8s3g2k8qanm8v9k2z2fcp0hjwz2rkx"; + doc = "1qlxm07hw1fbch6acl9rslqsl1vh1h5sf41qpmnfkwy654h3iqv4"; + }; + cprotect-21209 = { + run = "016z5zz8njkk2cra768jlh2s9l3r4wmn50nk3psmk3v0i0cy0197"; + doc = "1wjyrb0z85yighkw9a1pxxwilp31c5fjra7y07y0v1z20q6g3rlm"; + source = "0lrf75hvlp6jpwfppkj0dwv7a9q51n897bwrf3gzwswb7icvqnf2"; + }; + cprotectinside-63833 = { + run = "021581zdl2c4j6crp9cnrnvxpwdx0jhhx5ab2ax7016hzsxff8la"; + doc = "0m7hhy2wlagymkq0ckr6yhiav02y7b623gd47wkk75f48rm0lbdc"; + }; + cqubeamer-54512 = { + run = "1r63ahd6m6ll0phqaxc02hnbrf3f6xjdghrhn7wdqxnf8n9k34ff"; + doc = "0rgfjw69is9i06blv1dr2ki6d8lgfwg3w57r3620r7yffj7z9hpy"; + }; + cquthesis-55643 = { + run = "143w42d3xw31dy8wdpqx01r8q9vs2an1ixnyil8n0q0af29j49bs"; + doc = "1b7k2s3ils5s5yb3fdd6h0is494pss7s76awfn3dj6yxiaps5zvn"; + source = "05gypg8zsdpfhp11rk7nii2vdw4rand5lw6ijkm23lbq2b5nwvwj"; + }; + crbox-29803 = { + run = "0ni16ldwni2gyzlivd5ii2fdq15h6np4mv73raa5g76i5rw42sbb"; + doc = "1yk96bajna3ihvyhx482jrwiccbmqdr9852w11x00xkcvvc6azfp"; + }; + create-theorem-70180 = { + run = "0lrky9yb0y301w5m2qc67x8adrkd6p9l5wwjamwdslb59cy8qn05"; + doc = "0p3xkfxnvmn4l6fwp1nmzix5vvqjwbskpdncd19s1grymhyxay2x"; + }; + creationboites-68087 = { + run = "1mmj4xavpaqrim5w3cqs0nkrfvg23578nas2ndnfvy3zgjywwxxw"; + doc = "0xsr0nvs95awhdjbhfd9baj7cchf3fx83f4cv5r6sb0l4lcwg14p"; + }; + crefthe-70165 = { + run = "1kwl01gnfr8xwk2zra14faqq4in4wijc03g5sdvgh2c7a9j3zm00"; + doc = "02ddnb2399bps1qm8m63laixbrx6jmjnw7x2ivnjwlm2jg7zvhj1"; + }; + crimson-64559 = { + run = "1k6ff9fb5isv2mfm7zvnqziw1rlbs8qmqrlbixq33nrab24kb1zi"; + doc = "1fmfghyxbihw6ggf4x2scx2g7464bwqy0yql38m4r0vmmjmzi34s"; + }; + crimsonpro-64565 = { + run = "16jz8i749gk7s87h2b78nz6cclmgvfn35kh3869rsf299y4dbkx2"; + doc = "1y8qngb1v6paqr643kh8sdipnp57lkbqwbk62r8nrxps2cvw06g0"; + }; + crop-55424 = { + run = "1hnf65q6mg5fq75l4g81zvp4qqdb092zb41m6nl3zw2cvp8gal23"; + doc = "1w6ql3bnghj633ar1zwbv580py4f1fmdm4vk7pa3q7vpnrwrgh5n"; + source = "15fxivp8d1xww6j5nbfkmsb0b2c2ldmkdy3ikw3m6jjk269nwy4h"; + }; + crossrefenum-66014 = { + run = "04zx8gwgzc76fsq6kmqy08gak2fqjl5h7d0d80lr5yvmq6aj5a4f"; + doc = "1lsymlry86jnzjifjsnwz0swmksbv9hfdvjhy2i476i2ayvpdv7k"; + }; + crossreference-15878 = { + run = "0xc8d3g8j86dzpfxzfcildiyk8zi2apc9af88v2zg6zjra6vra1x"; + doc = "1iahzjwns9zapa5y7z6yy2wjdcy6qiqrqvp9q9v4ky2zgsf7n5pi"; + source = "0yajk2dxnsfy74r6a50zs4lc064aha0lzfqp26gpgnsx2h0bvpix"; + }; + crossreftools-55879 = { + run = "0pdhi9yij4n6bwcwbk077sdvwi1v8ww51g2r9ssfnmvmxs4zjw27"; + doc = "0q80k648b967q9gcy7c3lb8ywk257zbsw04kc2gazlc61scviy49"; + }; + crossrefware-69700 = { + run = "1gjqw69rlyk85qi3hj9gdd94gx7vfb307i4bjkp1p3mqlx17vkas"; + doc = "0iq9cjlv29990vjwgravv7bw28fxs5sz0krpa3ffwh2hmk76yh63"; + }; + crossword-64375 = { + run = "1jx01w062yn2bpnpmq29rwgxll00x05rb2i0prz7gnhfv7g4iwj6"; + doc = "012h0rf49rlx7kjjv5i86jz5v36ln437ifmzv0hh1ww6lg60phpz"; + source = "02sbn4clwrccqkr41azpzng7ck4q74lhbqzcd75zdv59gll9z3r9"; + }; + crosswrd-16896 = { + run = "1c85733q3x56s1fvag4kw39r6lnx4hr1wmhsrjs0jnyf5j6lf38w"; + doc = "1abqbdfk7c7cx1ij56q8dhz87bc8ppb3hkfmc2z5r6zv94l34n2i"; + source = "16didvmnjfbd103skc6i9qbim4kav9vw76954yfqijz1q74c880s"; + }; + crumbs-64602 = { + run = "0cka3j6aaxbgxvv3z7010myr7kdiva7jv7m1l4b7svq6j4md38vi"; + doc = "0rxkzcmgvbm4mk26fwiw1wzng5bkf7byh43zdp4dh0mx82zn8qq6"; + source = "0z88phhr4a0gdd3i4b5mvhcfxc1cy5sqpx7nvf1plmz34amiwcz4"; + }; + cryptocode-60249 = { + run = "09jivxl23sxqpa16m6mla6zb584607ssr46vfg97c828s25n4rz2"; + doc = "1ksjx6zcksrsligx58vg3pihylj22qqwan4r4bk7zqdwxwww88l1"; + source = "072cqf7dhjyhgw31l8im95h2m601j1bhm4zfl0f2q7yzznk4jr54"; + }; + cryst-15878 = { + run = "1jd8ny0a0mlhjdbigkkkkz1xn51s3l8w3dpcx5kwg10m29b3vwc6"; + doc = "1rdclk91d2hps0xiqj4p0i4najjz9llq0nr9qvlj57h7ipyrahcj"; + }; + cs-41553 = { + run = "0nzzcg1yvbslhqm5lsfcpqh6sbzkmnmmgyakg9l8855qpa8g9bf3"; + }; + csassignments-63992 = { + run = "1mwaaf1ap05mp0lalyk89lyhqs26x4w1sx91vfsjxf697lndadda"; + doc = "1w2mhq1yg24xz9a5ar92sky0b9j51nbb8k2k2ql114wafrkzzrnh"; + source = "1k1iynw5nnnffx26ba5ydaay2qcz492yppcl8ws98xwhrqpjhx66"; + }; + csbulletin-65250 = { + run = "1fw2v0z3a9lskwgbh1kcwv9jnmaz6pf3w2hg2b93zd8mz7wifvab"; + doc = "13zdp3fqbmqil5scgdcy0ngd6gxvdxs3k8ngm6xq1bnq7wy1284k"; + }; + cslatex-67494 = { + run = "1qdcnf755fak3kppl02yi2q9ghb17kxr2cyxc2y80idaafqgr9sf"; + source = "0ig4a8nksmsm7pb1hxfy6gksfv27bgayqx60ygiaphcz0ir73546"; + }; + csplain-67934 = { + run = "14z479gkiwgw17pdghrxh5q0rlxnij7ccj49kgf3macwgmh5lm0r"; + }; + csquotes-64389 = { + run = "1zsh8z36capzkg695h2h7h8359fiyyafqa6p5m916pmz3vv7sfaw"; + doc = "02f0l0w8k33sgqi6ml47vpqxlpssi9md0z2dm25y0q1ghhyyl86p"; + }; + csquotes-de-23371 = { + doc = "087c08c44811vd8p00l1xrkg5w6fsl8as64jq83m6gf1hfan9w4c"; + }; + css-colors-54512 = { + run = "1q3vmcppk86v2y72g47ifp129fj4rgdq3rvzgkzdzwhs1q06ipfr"; + doc = "0rjqim8zdmgrz5dff8bjkz9kk456l699k5nplhc8bxa6dn7yrfdx"; + }; + cstex-64149 = { + doc = "1vsbq9a31ymvrj0bx48n93chyqmma3q7b49k7dmhb0hkic6h73aj"; + }; + cstypo-41986 = { + run = "0lfg2c985h1xlnx1fa3kx1jjrhw7kmgwvalqh5127w20r0lrh8c5"; + doc = "18yx6l49qk1ayaz13qqw72r8l8z348d20yqdm305nalhqyksv1bb"; + }; + csvmerge-51857 = { + run = "0fyrqx85mklws5zny7gmmyscnsivjfvwmgwi52k3jk2c97nvsy8z"; + doc = "18pmc5h44jmlh583cg0hjr24k2pj369l6ya4hqm9kwka0bhg29nm"; + source = "0mggp5xankhif93firc5g01c6b160bkwqwbhc04wcm4ndlamvip1"; + }; + csvsimple-69494 = { + run = "0yc6lr52yhrha4f70g6g4dmx0gb9hb6xrnj971xms29rbs2azpdg"; + doc = "0l6k9r646qs87ps0fd6hpy3xj4kv1442gmm50b1sqcg5w1hm0sbx"; + }; + ctable-38672 = { + run = "1xqhq2ww64h8vpqqzg3zbhh0z7xpjbcqcvxxm4a6kyasyhc9iyr2"; + doc = "1nfdrjjb3j1n8w3x4v92v9l1k0smnygwj47ry717qgf2sq7f2b8n"; + source = "0smcvvlq8n9ahx0z1kmf37p8zi5bjsh5q4x5mk7npay96s87z9s8"; + }; + ctablestack-38514 = { + run = "0b739h1ndkisr49d8y4q0vnbl9j3diqwl9r1ah8wk2za1ww2mi54"; + doc = "0qmshnvbyfjhi8bb989hbffwn3447r91jp46z1yhhmcbjpr7clk9"; + source = "0133xxb7470lyfssi1kp81yr1zsz4d8ai3qjy72wki0p7ijkypw9"; + }; + ctan-o-mat-51578 = { + run = "1iya9r04n18i8jdzqkn2i1rxfxxmpzcpga03rp0i6ykjj65v4q4r"; + doc = "1j053gvvcznrk0fhg21ddyx1b1m1xj743b3w8z01lpjihihzq0l8"; + }; + ctan_chk-36304 = { + doc = "09ngqgs08q8bld334jrzhnd558lv7fajfppmfrkp4kv9hc5iyz9a"; + }; + ctanbib-68650 = { + run = "02iany03amlszi53svfv1mj6iwjv5lak7drgxcccai2bdvc8lazg"; + doc = "0p9w2w064i5ykydkayv5wbdxziws998y8algms6gyz38rbmphv2c"; + }; + ctanify-44129 = { + run = "159jchim2b5idpzj5fxxc9hvrbddm6n00rpqsqffzdiijvp9jbif"; + doc = "0wnyp4rl4cg2wgaq83xwm0vzm1b5xlgbrjchg4s3glh2zzl4mpg5"; + }; + ctanupload-26313 = { + run = "1dvqr96ir3gakxrf4fk0dka80inl6aj3kydcf0128vlq168zgvsg"; + doc = "1gzfib72lfbgzcp5r8130k1n2d00v2kds0x8zdkqnikn22fq4jxm"; + }; + ctex-66115 = { + run = "0mk0iix0wygznqhzqd1wzi7hiabr751i0q5xrr3k1nmns68y98vd"; + doc = "19z979xk8mylch56d2gxvln0w7vrwfizcf4apy4kpbm1nhb90gaq"; + source = "09y03idznj0qw2ik0hq3xy1v87sl3xzgqfln1cnvk3c6mmfz9j7v"; + }; + ctex-faq-15878 = { + doc = "15c0g0x8w7vm3hyn6lk60jf66akyfcq6x8jc2lnbjx8ydwgb26br"; + }; + ctib-15878 = { + run = "0vm3aw2havsabkrr8sx4m6px9hi189vgsmqy0s922dlm479d8bcy"; + doc = "0q7jss1ai1jjr66yk5927psyvvmp1dwbr54llvwyc4z131g7qrnb"; + source = "1im0zhrw1lvzp9j26d9nh4m1mjhs5by6nai0dh2mrmdjw1i2222k"; + }; + ctie-66186 = { + doc = "1avhvyv70jds5xzwp7p1km6d8yha84ckqdw1r1vkgfb959wd3yi1"; + }; + cuisine-34453 = { + run = "16kvfkx5sj6xp5dz0gqlbp5079vh6snkpixmphvz2gzyaqnmafi0"; + doc = "1mbsgn7mvy39pwq5gn7l3h6l3lc53vjyqyvc50xj8h9gs1gpdrb3"; + source = "1r14f44bjdry108f6iy7byzms4dybc0wi936dwkg5ahwyq07pmck"; + }; + culmus-68495 = { + run = "0pj51p0pf4lr9997ilrb8hkz4ncdpml0k7zg9lmw4phdy2bh86ns"; + doc = "18a8h3lgdldazj4mslszmqzpglf0vqpa617pfqa1ga1yf7qnh1fh"; + source = "1mzijc30dcymm2lnzzfci1f99rsxwb8a50p6fd2qnynm3ixrvw6s"; + }; + cuprum-49909 = { + run = "0gqrwdh2gpxgc74zq97zm728ykadkrl066v77hjllmw7x6cjxrng"; + doc = "1126yz6ks0rk92jcsbg2m3ibvv64xznrii9kxf6ss36hm1qwkgbi"; + }; + currency-48990 = { + run = "0673ji0kw0j0a764kjvla157mf5lcxa02wd0ypj82gfz617sn0r9"; + doc = "0v8sfvj7g65r7iyjijimbg855rbbg5d1zdkp7vc58q14y8f34a8c"; + source = "00p52nbdv0x1v71fb0ln63wb9mxdhy7zgagbpmcn2ca3xb83m16k"; + }; + currfile-64673 = { + run = "1mh6dcnzhfsd12ail2wjd5gm79rzz8kcr26x8wya4lvjmdzbw2sa"; + doc = "17bfg4h6pvwhr589pq7j21yawxv7c04q06gw1yf1xsi94gg1mwv0"; + source = "14sk7mh2p25zjl6sxinly5zhj882y035h662vf3qxs7garijqsfk"; + }; + curriculum-vitae-68211 = { + run = "0khwnk2mddfrvmn41y2d7p8704iidyaqzk7zri9gxkrhhhpqb4fk"; + doc = "1zdlq51qv0vds2l9011bmwyvcb1a2lxjffai3vsjhrqvxj6aljj8"; + }; + currvita-15878 = { + run = "0xrcc3pash4g8mkmnzqi0llhix63hqk12vlwn98ipww68qnhfbky"; + doc = "16v8r2vhvb9ssmnyj4zzgv2b2m10d3zg7wm2v6cn0p65hn5i76f1"; + source = "0xrsqmaan5h60970d12bwm7k9nlf7h0flzmqhl0j3kbnclm0x8w0"; + }; + cursolatex-24139 = { + doc = "048s5fg8c19s3zbl2dkmh8ffkicb8fd9n46m0iqrc39i0wrh7p12"; + }; + curve-20745 = { + run = "1h1mfx67i3d2jr6l8qlfys9m6bqzn4x1wb74cjbrkdclyqn3lmd7"; + doc = "1jv8f3izp9pvzh5qs3sh33c95v0z3wn88f278qxi0f1bc1k8990m"; + source = "0l9cq8aji7z8qh0p45af8rnz0iw9m1hgc118482x699iqrvg96y2"; + }; + curve2e-67599 = { + run = "0cd0w4gkcaqswhwz8w011pn2g0yl96h8wm5m92jp646xsbq4a1r8"; + doc = "18gcvpdckrsx42286xcdjlpmlq9s0541xkc8gx9f7s2gvjia8lr0"; + source = "0wdqd75fsrihrdyg0h8hl99xlxgphwn723zx1rm73vzh4c5mhrqc"; + }; + curves-45255 = { + run = "150iv654y4x5lb3njd7dfjf8i0axlpf7zz6gx4wqgq06kddjr7w7"; + doc = "1ddgy7gzw2871qsh99m0k90lgh8kf5883skcqxww0bl7b335qc8y"; + source = "1r9c0rpi7q6ishzaaw7qnil0lzqgdvc0ybmr3j083af17snkq0v6"; + }; + custom-bib-24729 = { + run = "1m25bdq11g8jin9qfib12h77sg8lb87p5680d5dkqzsf5y3iq7vl"; + doc = "1ydbi1r0jvl936ziypnjqw4fsr7gvc1gksaqr05wj1bchh28cyaj"; + source = "0sjpwz9zhr0kd4qn454nm1s4rw4a6n4qnackkrq4qkriwzv9asha"; + }; + customdice-64089 = { + run = "11c6gzpmwh7q8dy334i2mz4g42ly0iqz6vh3zal4hi005js8n0i8"; + doc = "1pq06p85kcki6rb5pvijly7h135mh0kwaxq8zz23l9c3lssjpj45"; + source = "1ah7iacvkvf9hmkdysyfm83fzypi4j6myg2a215hajda1fxir3np"; + }; + customenvs-68637 = { + run = "0z3rgjsw4qdpr028yv4y0yscci9611c32rl3y7y6v0n0jvv43lvg"; + doc = "1cg551725icls2x4in84g1zr8ydbyz2g5al4w17dk225k2f8vgfc"; + }; + cutwin-60901 = { + run = "0camjay52m2fbg4df7rrswfn30an4s40bvyvssdcmhmqlbvsh46f"; + doc = "16wmnp2p3hnl8aanm29sxflqcz03qc5vlk9ziq38qxsksisxkl5d"; + source = "0lqjiqlfndqmjmhj5p4flhly69cyg175s8wg2gah1fcfv0dayrn9"; + }; + cv-15878 = { + run = "1w9gx9mhg9wp47rhb6kf1w03mypydp01rxmypv6yvcrk551b5jm0"; + doc = "1b16zaypfphbn9x2fwh2v0i212jx3pn84vj513lkxzzfh0if78iz"; + }; + cv4tw-34577 = { + run = "0nli9s73cns9x44vr2npb7zgfinnywgwajlr1k2hf9jldzm09dm0"; + doc = "1b9zd0ky6h8mlcigfwj49c4chsznvbycsphs9lkpdhxv8mx9wgyq"; + }; + cvss-65169 = { + run = "1ja7j01vbzm16ms6hj0013q9f4wymzmn5fwdmly2mipgnfir79dg"; + doc = "0a664wp1c11sdyhjgz5l561ngsnws5bgr78smswf2akj89637lnw"; + source = "0ig8igf03vsi6mqb9a6cikqqipm7ja3ipm30c1gfinqvkmdsz0jh"; + }; + cweb-69586 = { + run = "1frjx2vsa7sdz6kvczkq6wkpvq8i59l66i3s8w2b3ikp76cmqnkx"; + doc = "1bqzd57l1kw91dwl2l85760578jqpynicx2qly92a8xp92w5y9vm"; + }; + cweb-latex-28878 = { + run = "0cd2rgn25s02p2ga3509pnbc70iad936qznr2yl5q6wnlvd78lbr"; + doc = "0vc5f0h9mq7p9040ksql4clcb9y1dxq7s1a4gzgpsjyla05ps3qd"; + }; + cweb-old-49271 = { + run = "0vx235zpflqpnrfa9kqq7wmc1rylg5bw1r26knfzvh3w1swbp4ai"; + }; + cyber-46776 = { + run = "0vlx0r57ay6jpybs6wlc1w1qpbd62cjq3snaqplaj6dkah98kcbq"; + doc = "007g12qa9v04z3b11cdrd9z7pc7iba0aa2g7z460i0hi2fg4gv3l"; + source = "1kivc83wjpm2rf2myk4079f1l8pyw1pm9a2j0iqbwshic2qfm86q"; + }; + cybercic-37659 = { + run = "1g7iv7xyl0a30kjmrwvcz2kg6y7q3r51344nf53r6ln1asagm68r"; + doc = "1nman70rpgd0wqhgw84qg8acm243y45nhxd32dmh9y8ywabynvc1"; + source = "12pbrk2bmgv25fa0llpk6pfgmz5jljmy1w5b6j0md0ni46ldjxpb"; + }; + cyklop-18651 = { + run = "1krjgk4a920bpgb7c6qw6jx5b7gv97raxpaby1vx1lh5zvbybfn0"; + doc = "1fnsd0p8wp58imrn22zbswk8bdjgp0w9v4hcv8f7x5ks1czcas8x"; + }; + cyrillic-63613 = { + run = "1bbmw2lcr5ndbpkdy78y6fd30c52g4md6j5n6kq23fxxxisgyw3f"; + doc = "1822d2kbik1h0ma6vignick4b4vwihbk153rwwgik82h57nhbr74"; + source = "0h65281fcjzx3avppwxhr2y8w5kbnrqp9mmyijq1jdlbmnn7jwzp"; + }; + cyrillic-bin-62517 = { + run = "1m8ci739229igk1mgx2n5dqywijfs2dxafjxsmlpdyafj2vbryaw"; + doc = "1nz4mvic87h8iarm83lckj7hx44ywq556y01apx9biq7632mfpjh"; + }; + cyrplain-45692 = { + run = "1wdcibxs0g53warxs6vz39s3chldzh05p7v1ksskppghg5qzgh8z"; + }; + dad-54191 = { + run = "1sj53bp0fp8d2d3qnwvl0lm7c6pzbvv8ds9ww3x6qhrna630iwaw"; + doc = "1yykrywq662s311l9daq9wpxdcr8l6qifi5bzbnv0vx2372hhhw9"; + }; + dancers-13293 = { + run = "0nni21f6y9gynx1lsymb3pmh6w761q21idq60fib90hvv9jjd85q"; + }; + dantelogo-38599 = { + run = "03a5l0hdlr69knnp6q464x9610mwjkcl3cw3i2q10nfm5ywr7nsx"; + doc = "19y2vbi5wwia1lg16rbwzkfd2chi9vw3m3xig48h0bsyy5y9pgbh"; + }; + darkmode-64271 = { + run = "0pdfdc1mf1mircrydvjlanb61mlwpv8l256g4yr4jix83373hzzn"; + doc = "0as8lm21znzpfdhf7880fsvna1ivprd5q7jc5mlyva6gny6zf3vq"; + source = "0yy8i2qxk7ms53mw05lk8lq1wal1rx3431wqfw4w2v74xy3jpmcx"; + }; + dashbox-23425 = { + run = "034nwqqbd4q99mzdd6958w6a3jcvvpvamdycda5blh7in1gwm1b5"; + doc = "01zb6bc407282xhfc6ccrm38jjz2vyl96h552435b6cap68jv48m"; + source = "1lgpiyfizg0vgfgz51wk3mhhc344gwra79k1xp95c2p6w32bgf5y"; + }; + dashrule-29579 = { + run = "050scy57rjz5pvwd8bbl4h32w1paigyyy7dazr33v28061yap9b2"; + doc = "1ryclmf2l90n20qf516p4qz02znnp5rgjx6pfw4p3wrkamnh6xwr"; + source = "1f05m420qbbk25pc5snh3nb4dx7bd38nwfix1p8ndngn7l9dfkcs"; + }; + dashundergaps-58150 = { + run = "000fzv5a00nap8ybzyijz7kx1ky4qx418jmkmyz5nm2rpnz8ckg9"; + doc = "0zj18ikjshyd9jdrn4a8h1l8d9kypr38kx2cfsd9gllppp27m4c4"; + source = "0n43mz7bnf05j31p99dmxr26rl6xzkc4maxra1aavg8s19x9pmd8"; + }; + dataref-62942 = { + run = "1jcbplf8f5952gzd0p1nq9bsi9iw5ix2mzrn4z3xjaazggm9im0g"; + doc = "1pczh1h8k8apmi1kfdj03i5yhhpncg1v9w0wb3dhzfx81fi29xc7"; + }; + datatool-52663 = { + run = "0c4f0byqwfkldxc1430qixy52xsidzw8s78igrxxrqhvvls4ywh1"; + doc = "07gg85s1sv5zq1n766av958fc1qqlc9ifmyz8kd99b27yf9im4l1"; + source = "1w5rdaqnx1mrf0vagxq5gvpxskwm5m4mbj2h4xhz78p3varn2i6i"; + }; + datax-61772 = { + run = "0sqyx1waaw57v6qfh9q5mcf5bwz3j4v4c52x7dcnh7zh37cq6dmj"; + doc = "1kd6qjkvdi3bnkibihzfhcabs3f6ik2bsqhg609qnk6c5cyz08i4"; + source = "19va3a8b7f1l93b6ky1b3li4y6fhxiycg6gjpv9i3vyjhc0cr0sg"; + }; + dateiliste-27974 = { + run = "0vzq9y9ilc6pnhg60psvwsand6sd4w5238rq3xhwnj2nq80yi38s"; + doc = "1gxjc45zim6vykmskmhrhnkviw9i7la56d2zfyi89c5nyjbry5a2"; + source = "0ks8aka4km6z6xcn6sihsff935z8kg74cyf3czk31wmr9qay4yq0"; + }; + datenumber-61761 = { + run = "0jcpzz01g8n8gxl12pahhbl0wi91in08vmpwf3lnwz9cdsm2n53s"; + doc = "1h7nm009as764cwkdxy64zh27qwwsqlchzfd2qd4wx9gpvg3dg20"; + source = "0qsbqqh4lm075gfv9bjmb795z2awf78nr66lrsj72p6z8wa01scv"; + }; + datestamp-61719 = { + run = "0gwmg94562bfc3apjqkf4bb2g0diczdc9ik0dp2i7ha5kqxvczpr"; + doc = "03a24ssl9x33jw5vqg2as0cvrjq9llpdr0qncyxl7i03mfpiwyy4"; + source = "1byhi7ka2qkzcph85ba5kzqfqakqpw8abxzvf50cddppfcr2gc52"; + }; + datetime-36650 = { + run = "0xwh0sl6x8fqvaxahh8356dfwqkzk8g9dkxyaax5gz8ar9p3xb6b"; + doc = "1j8zlxbyqpdrwm3z4pgdv3gz2firffk8wwr3ih1vcgn7nqxkcd78"; + source = "0f644wc3c6zx6dgdam4wh6ap4gzzf5qn02krp90hkqmbrg080zxz"; + }; + datetime2-63102 = { + run = "12854by3m3pr6j7s6zm8inj2panr7c9h3ngm19gzybwy7cdb34nq"; + doc = "1pk1k3rsd9h5csnmnhlwi73i6dbwhlpqmf5z7kxgy9czmarbfg56"; + source = "1n60n0i9iwh8qyhv78z4d2afsfk04k912ixjciblgnik1gnd4xjh"; + }; + datetime2-bahasai-46287 = { + run = "13xslpv73cvxfs9m010qnnqsrz9ncgci65ha89y1zsi87fld4xfw"; + doc = "080zpliqc8wb85gqx86klrq9rj7p73m5vnka5qmxzj60kvicwlk3"; + source = "1jhxyrxl2f7qnld898b1hhga80wl6b6xfhi9vd9ka3w373qgqfjg"; + }; + datetime2-basque-47064 = { + run = "0m9sf0ghni3c2qmr6byjjy88f6bjj4hhpiy9c5bgisc0ccb11jn2"; + doc = "0krgk4krb8yglk1a0fvzhgrj6b2n38gn8kxin23p98b9928wmcl3"; + source = "1q9h4jli6fcsd0vqlh88khv10gd6gz0vxd4gx9ikbrvgsx9wx25y"; + }; + datetime2-breton-52647 = { + run = "11hd7fq61g7j7nxsgrw94hdrrn54dnjvh10rfwcn0x6ck1vxawfg"; + doc = "1h50bi7q6gvv3c2qchrx81ybly1svzyirhdcyy2swzqda2w1x7xs"; + source = "03ppqjw69xbkvqnjfkqj0zlxsg4m5q0cx2magq88f3wmjp7kw2l4"; + }; + datetime2-bulgarian-47031 = { + run = "1vx3n6n46kzcspc10fwysq7xij5dnlrv2wn6b7pkfbl4yh1001yz"; + doc = "1yfgdcr1l6qji2x0i9gs17zb5scc9p91cgyk1w6brhy5sk4syns4"; + source = "00za8skfwr1mhjpizgslppnlg05rwab3nbak4kbsqglcv0nivm93"; + }; + datetime2-catalan-47032 = { + run = "1lj6407mzspkhh18yxxmvk3srgdpf8c5r06sycy128dqjkix4ma8"; + doc = "103nx5macgfrj8hkvyyra24378g5n1x4vnxi30pjkawapwjwk982"; + source = "0pc165ql0aa2wdwkz8wyk4yafxr0j3vnp98vxybq1x3fwfqvipv5"; + }; + datetime2-croatian-36682 = { + run = "1h8nxr5n9k278pngb36sswi6655p0vq442x6ixlw8h4mirlrq9jk"; + doc = "1lma00vhrjkvldgc6iq5p9k2ky4cfjywxdzy897308yxrbahm0rv"; + source = "1xcdaz38mm09i8zc8jpfxpbs3l2n5hhv8nk5xxw108x5k8vb8fnw"; + }; + datetime2-czech-47033 = { + run = "0q8f1ksl8lhkfxb2si8l84l94w4nfgav1ybfryd596kmcbpf6iga"; + doc = "1wz7sznkpk9rik6612vibk2zc832qxrq4yq09rqwp6y2nar0p3vj"; + source = "1bism4aqd05cjjrxmsqxxpq10sw72855fk5v2wjkij62yawklp15"; + }; + datetime2-danish-47034 = { + run = "18shs9bi583590a50jszym2pwcwgbz39p75j4nj5g32bwap262hd"; + doc = "0dr9jv99c51na0b4ds6ac4rc26na0v0rbjybna25fiy4b0k7dgli"; + source = "1h71ibvmhsxi1j5h2sq1zs29d466hylm7w9pl5xb491d091nxfl9"; + }; + datetime2-dutch-47355 = { + run = "1s5ff3wc9lgvz8md4kwwlqc792s4dqr2mcf0sif0dv0z8ssi079p"; + doc = "1562fdf0c1w556mwr5gfbc5qqnrbw0f8i7dc4lwh8gfnp7skirc8"; + source = "0i1kv624yr4zc184vy2y42qnycsqq57349d49glxc9lh0bpc9fgd"; + }; + datetime2-en-fulltext-36705 = { + run = "1bnmzpll7s2pv62hafbwxcj9i0c4s7vk1090xg2zvf80d0k0biyi"; + doc = "1szzn4jcgchf1h8bg507lmb4mzdqx60k94v84z2g8h2pv7d5ip9z"; + source = "1vrhcgsjhb6vfh44lqh2hx22zaw5qiwiwms7lnzwism5zghdkaxs"; + }; + datetime2-english-52479 = { + run = "1xjjv46vk4s3drlzvs7iprw3zhn1zk30bwi2dgczjqzk0fxyiql9"; + doc = "0iyq0385pj2lqmd5rwyanry6brbwrii4zg2jjnhp2ib404jwjqf7"; + source = "00sjzcpsp9jjfn9fnc1fmq19448qm0p0ggi2yy7qmz426mqb3g7x"; + }; + datetime2-esperanto-47356 = { + run = "05691xa25qp015w0cm5mzi3qrb88hlaq5jxjrxqgid1ni9rpgwh8"; + doc = "1c0dhq8ll04pl3ics7d3p8r73mdawnyridapfr9540cs2a1xjjbb"; + source = "11xg3v8dk7aiv9ms4nggsm1xs898m0zzi7lszi7jx8pcmxqnz851"; + }; + datetime2-estonian-47565 = { + run = "0vdnvfswgm92ncrkh11p523s6vczz1vdxyjqjl9cpm1nfj7wp14j"; + doc = "010i5rcy8pc5y16rwhpzzywlyna031g6s9xsdpgg0avci1yvw20h"; + source = "0xsgj8l6hipdb0f75ckqw1h2lmdkjxxgz0mw38pc1kg6sr4r3sdf"; + }; + datetime2-finnish-47047 = { + run = "01hjh5lmd2461n0g2a67z31h80wcfj14b9y9amxkx4k01b1268li"; + doc = "1cihjhhm37f38rknm45ndli3kmgrb1waxfncl1fg9l95hn929cnh"; + source = "0zi9ydsj0zjrg3c7618fxxabas6zhvdimbsd42n8fc5acvddhi36"; + }; + datetime2-french-56393 = { + run = "0iznh6qv41xcaryyh70lk26rmrk2j0j3239hib8g924zqgyi83p7"; + doc = "0f1j72g2xqaq64wi1jkllhkpxbjm1j3d7wraq42x13giv72g95w8"; + source = "018a641mqcpj1maqhpcrp09msf9rbr8a5nd16hk8c375sh2lqpap"; + }; + datetime2-galician-47631 = { + run = "1g5qmiy094yrid6jh3xvy783kq331bzk0lqzci7jsb2izymz0lqm"; + doc = "0im51qyxg5dbc6p1w3k4vs63d7nyyipd2ad7z9czlfid0n4ywksf"; + source = "0j4i3b3mp1bpqir7imsfw2y1098ak0j8zs7gjhm16xdrb4n1xhcl"; + }; + datetime2-german-67201 = { + run = "1n7s5fj27rlz61r63s1mwbkxm62ddb2izz7ip4fb165d0bbba8xr"; + doc = "057p9xgdbxq31ff43qi7lr4wy17nk625dnpczrinfd80xn92dhsd"; + source = "07dv92w3rfg0xi6d8n6ykp0rn4pj6k8knp9sx8an9bhzmwqw2yw1"; + }; + datetime2-greek-47533 = { + run = "13a1lpvg680881xpgphzni3hcdymvph56mhgy0jbsri14fw0mdyi"; + doc = "1kkl386rd0h5psr1z4aw32r7m55in62hql8x9c8njzajm5frhf44"; + source = "0kmwn8mawmxvrgx5d39j92p3r1nlk1z378z1h2lx129yz4qbsv56"; + }; + datetime2-hebrew-47534 = { + run = "1b04g9lm0g5128phix3mnx9yphg07ig7p9d149rw0b1imly7f6mv"; + doc = "1lslls4q5j1l9a5m0gzv351jfc93ii0zzcb62p3icq2qjig3rz37"; + source = "11q13hms2mnqyxg6hc3279a8hs88j2d7v7wl90v5avwgh8923q55"; + }; + datetime2-icelandic-65213 = { + run = "1ws2mn3gf57b8gc1q7fp32li36mvmcxf5i8p3ikap2swvd9y3a39"; + doc = "1dm4vg1jvsq94sn9nxxcasxmrs5i878z9bbrcf88yzfx5bm6wbfs"; + source = "0vss8vq4kzzj243ha6gdvd9g5r85ar09v7y2yff2vj41gwp5zmjb"; + }; + datetime2-irish-47632 = { + run = "0k40sibvdqhg333l0iyhg3zs0fkhfbkqhs64ch9hs0kpw1mah48g"; + doc = "18yd4icn0vmmizims17lsailn0gjqnhx4c7yy5jgrycammbjns03"; + source = "1hs18kcmzgif8jcfp3v87h6rvrhskcvi5jzzspp7zgpq73izb1nj"; + }; + datetime2-it-fulltext-54779 = { + run = "03nr1l5gzwzdg4simif6wrwzg9716vfy1nbp8xfl98hs3sznhdhi"; + doc = "1rqkdp81zg5sq5klz10v00c9xzb162dsmqgic2y3v4mxi482iy89"; + source = "0y50s2mnyyx5kxb0bjbbr4pr7ywnfq3aqhqybqhd5x6rqpwagnd9"; + }; + datetime2-italian-37146 = { + run = "1if93khnpiwn2qpk66i431aw55y43qr603kdfdfq76v4sq4zrcys"; + doc = "1r7gbm3ik84ny6nk3fb36g337imfq7w53cmk47qg1cpmff6c800c"; + source = "1ckrmbv22dm7998r9p3b730zyk7ldzzbf1ds8ac5syqibh8wh0dl"; + }; + datetime2-latin-47748 = { + run = "1xgjcby4kyr6pb7zmwvwyhcq5y468vvja64l8bfivhv0n1s6q2cs"; + doc = "07lvgcnpi7z36l21dwbs1s19f3afg55i18wdjcc9d02566g2fjv3"; + source = "1gi5n1sf6v965hd4p0c6d8v92myhh218ql6bgaarsba1axp2c1as"; + }; + datetime2-lsorbian-47749 = { + run = "0vpqvd3fcmd8kqs2cj6ix5g3ci9zjr7i9ym31whryras2cm6r24m"; + doc = "1ysrjnw655p1jplcxajrjgd48sndqssm8j7gv869nf0ngx4mx1rc"; + source = "0875nzp676qv8vi3f37k2cbf7vszsrws6clyldqqayxkr7gnin63"; + }; + datetime2-magyar-48266 = { + run = "06y57br6g9clfscqma0lqp38fzp6rrxja3sz5x6jgi0acyljxzxx"; + doc = "1mcw5rzb573qav00jz611576lvy8nkfl3g92wj02szb6fxq66g60"; + source = "1697h8jh2gx1ybcfhz8cqzvk70h83qa3028hqi3c1rhkcbxbrabb"; + }; + datetime2-norsk-48267 = { + run = "1kcdkppmc5h3w09bwcrvlsxcbcawksmdam0x5w6zbqibvhlhvh78"; + doc = "1vrip0mq47w2qn8i14ckazpzhzrl79dpyj7zv01b43xw5zkyqg4q"; + source = "0rkjhbqppncaw67pfiihy2grzlcsaszi8jnxhhvb2sf4i3dpqlr9"; + }; + datetime2-polish-48456 = { + run = "1mndpf6vnb7lbziaj64aa3q796bv17mh4r9s3p0y2k8yjrllql3m"; + doc = "1cn5qrcl4jxcnn90llhn6x7rd5zdnzz9h5szv4hhzbn9i4k1ci0f"; + source = "1c42vallyqmpjzivcfvaxidhi2rs05sw6xbkb319dznl1jmdby6c"; + }; + datetime2-portuges-48457 = { + run = "0ikj36y2n7zlxgvwxd8z8vmkm4gwdan3si8bz98ajc1z5yncb7ha"; + doc = "1m4ij8xjshi23hrm723m6vsbijd9cbd49b29fr2466sbxmnkyv22"; + source = "1r0nw953bwgdz3w150s78s0rpd9c88djygwc68sr3dkfd6iih05k"; + }; + datetime2-romanian-56394 = { + run = "04jypimj3pcvnalkgzwzxvgav8s0g6c7br1w5hk769k7aqjf7qx7"; + doc = "0nv47vpf5gcnj86f1m24xbmlvhf7iciyjaz2kxbbsn4yz55zmbmv"; + source = "14324lrmh75g4jigcbcgx9zyxn0318k6my6ndvymamldwln7gmmv"; + }; + datetime2-russian-49345 = { + run = "0m3cmm2ikili85z44mmsnaxhv3x2s6xyk6kkfr3kaczn3w8srqim"; + doc = "01rfdj3wf69j976mkv2yxw0ns4pzf852miykknni4zw7lbcki00g"; + source = "1x931h6rnzm11ipfa747x306iwn3381ahcf7bfzhg75p8707glgs"; + }; + datetime2-samin-49346 = { + run = "0wqnsvx33d68j18lm0fmvjrdg8g5hv0xwzv6wqnb8wwz1l5zmqvj"; + doc = "1wfij9j00pqs8bapbjpmg8xzah9509vrsb9h8sqc2abdjnqgkmdc"; + source = "037gm3s8rxk4chj2q9yilbkvg46dxnd2jpr886ibydfp1ndnqcp1"; + }; + datetime2-scottish-52101 = { + run = "18c3y6968css1zm1pryn3cfbdqfn9px0n62bq6mapmgbd7fi2plh"; + doc = "04dy9syy4qmn36mfy1agxjzd41prwqzlx5f8vpyq3148w51kpp1j"; + source = "0nhfk8b19dqa08lb10sbfwp3c2f4rn493dgp4sm254bk00nil1gh"; + }; + datetime2-serbian-67201 = { + run = "1akyl3r70rwdyjjqvpsmh5m9g7xsdmdmx7l9qyh54x8c7gir7wd7"; + doc = "1kgkpfgfqj99m0262zcc6b7fnik83vr45973720dbf9f5gvyin95"; + source = "0hn4w3rw6mqzcj14a55m2hch3ra1ax0kb3l254pfgk4x9l3x028v"; + }; + datetime2-slovak-52281 = { + run = "004s60h3zi0a947ayc7kk2slxwl6bmpba8lxm8000f6yaf00wyk8"; + doc = "1wblf0fd2lb6b05vvb31a33lz7dxakd5k6y5pcvs6iwjjb755n52"; + source = "17hwr9yzpdkcvqvm1fa4qvacgica9mm29npmcl7xc3c503h4z6wi"; + }; + datetime2-slovene-52282 = { + run = "1lcpx7nz5lqb6pdw2j0dybkilavp535pxijs13nfl043xizh4brq"; + doc = "0i6p83lixs6maiww4fdsm09nql3xx8xvs2qz38r5md4r5zzikyb0"; + source = "0grv3gcm8wjdcx9smsq3dzd916pg8kcvgmh6s47xh83wz00qqi36"; + }; + datetime2-spanish-45785 = { + run = "0ggb24w3sljmmydnjdkbg34n9mszjwrqny8vl70fcin1dj69njcj"; + doc = "1iglnacrcwwmc43shhsaamwajlb3mzj9dgqnd5qg3v7ynlp5zblq"; + source = "0fjkhxqgw1yb1nzfiymwv8bsv6zlnwvdjl7crd78n3yx1fgv9wd8"; + }; + datetime2-swedish-36700 = { + run = "1srl9lm3hbsg3bwdkdw4bz7rhhnkkl6pihjky5p2h0jr9mribczm"; + doc = "15ya3082by696ysi8gj7d0x5n5g93przna74r0g8yv3qpqkv52j6"; + source = "0yswvrgh6xg34iryy0anhb4jac8q0iyvdfw9bsbhaz1xbldn7xw9"; + }; + datetime2-turkish-52331 = { + run = "158prpx4ma56qvq6ivq7ffwp0llll5x34af194qygxs0ldsgjlwy"; + doc = "0n47wgnw5kvcn85s1983dg3fbixh7i4p3lxrfnd7qvaxyrph6lw5"; + source = "1hnwws0y43d9hpdgb63y5pxr6d0ahis2q40z705b199051lg2qfw"; + }; + datetime2-ukrainian-47552 = { + run = "08ba6xbivl8gv2a3g0p4ch969zq1lid4zq3vqqvgzkhkdsvc2zkg"; + doc = "0biih09p6a90qbjck5w0qs4k8lnqdha0xd3f6kdjmlljqxk24g5j"; + source = "0mrysl74pfbs533h08jv5wld57s30nsq6mar2n07668nmplqj0ss"; + }; + datetime2-usorbian-52375 = { + run = "1dynq4qqi7mpckzcmwvfc17hvnfjlv3n93dwypp2sxl1596vili4"; + doc = "0pvf7lx3g09jy5nxlzvgsixmaz9bkcq0zlhq8r3ijd743sq4y048"; + source = "0888x4b0wjqwfrg96rcpxfj6mycdpwwyk9fjavj3j535nxb5hjxr"; + }; + datetime2-welsh-52553 = { + run = "01p4mxn78ynyan6pb9598qmi000alyaiw3bh83w0l5682v2fi7ip"; + doc = "0rkibaqirq4xgy6r7a1aws6awyamllg5z5zixb3imapj3x6c8p1h"; + source = "0d21jimjq8sipg1qh4fxwb9cmq3sga0wjlrcqapjpy559bnfgmrx"; + }; + dblfloatfix-28983 = { + run = "1r8s36il4bmqvvvlrsdbhdp4nanbyd1lh71dac4f774bf5pkhzi3"; + doc = "0znp5j2v20q7bsic5j7cjqxmbi1dannffl0b14g2w0jp3p6hpfxn"; + }; + dbshow-61634 = { + run = "0cfp89n7r5jn6rsg8qrjmwfzi1i9qrvxh4aiz4r33sgi8qy5iljx"; + doc = "00nksa78l2hi8dwp72wcz7b4sx1z5p88c9pyha975xr4l5lbli4q"; + source = "0pgyjb07flhfr0dy1rqk4j237wjskxfsldrl58hzdanipqn0jyyi"; + }; + dccpaper-67890 = { + run = "0pihvkqcb9qpkq5c8n1n1wlfip87zql1dzxrai1dlln0rrrxhycp"; + doc = "1762lsfk6jg13rkkiwr1y8kc6xlf5y714jjfiz74zlv9w8ixgxln"; + source = "1pjjhcbbx609rgrbaqdp1xkn7cafwax93jpn8m7wlzy3acl31lng"; + }; + dcpic-30206 = { + run = "0yfjhpn8hr3yk4dyjfzbc8g7cki64039lb96naacyv8mjhqdpgyd"; + doc = "0vxqvnkxm00k0xqpllcnq01si33wyg2mkhpb7l8jxxxizn3wf5vi"; + }; + ddphonism-52009 = { + run = "09s324nj6g8nlib9wilpy01prixrw1ilwlvl638hgv5rxsspza5y"; + doc = "0iirifr55s86nm5512ii0qm8lm4zy3jbrbk333hw27y8m4v9qd4i"; + }; + de-macro-66746 = { + run = "0pw8b3v4yy4frxa8q3xbljx7m1vd3952w01ra77g2x8b02msd9xl"; + doc = "02zxl4xpbyjs5vwg5cskgfh3w2ls2bxlyn50smh0kcqas46vn9a4"; + }; + debate-64846 = { + run = "1v3wapccyxk2fnhm93padrmrarzdxljlqznw96h735086pgsni94"; + doc = "1kivk2f6k1ifmh9w8qg698wvsbb21rfwwmr10bbvlsbl8xw22p7f"; + source = "1yia0rhkwq65a9ggn6pkmr20vrvlcjkai30j1hm0jav7rdq9pqbi"; + }; + decimal-23374 = { + run = "00byxbhi2pqccd1vd6hsh4ri0vzvq1mwjnvqmqqlrbr3qfv05zla"; + doc = "15v078s3d3aawihdmd0l1ndqinlsqz11xxbvbw0dyh0arw6d1rc3"; + source = "1k88s0r82livblqfb140npf2p7lvmsqkpasbr93ihwjj9vp54xb5"; + }; + decimalcomma-69251 = { + run = "1gsmjqw7sws2r5vzm1vdp3mbwvxpally5vb7pn64d28bcmkvs28m"; + doc = "197pqxv9sny07vfznzx55skwl3gj36wsqi89j24jvj7gfrm2a0kf"; + source = "0bgiq61d31rzzkcib6z1lszydzcjwh3waxwhhfxf5mbwinlmwwga"; + }; + decision-table-60673 = { + run = "0v1654g69lsvcvky0yh977kz7s1b5bjihh6bfc4lqrzbpg92qijn"; + doc = "1gpz0g8s61aryz5y8f2v35v0p8cbwpvsq1x4f45hrhd3hpk96hbj"; + source = "1d40h7vcyaxdf8yrvbx2lns0hg3d0xy9mv9rmqpy8hkqxavzd389"; + }; + decorule-55230 = { + run = "0r5pxcpx29l8x1bw4hj4xp66zgkjgm0qn2ryvxy1d30dyjgp34zb"; + doc = "0a3qvnknhcx0jx8x9gk7bh4sbnzv1mnqvdr8l03nzjcbmysvc3hy"; + source = "1lj47s4k44pjnr0n06xdcb37625hkjclrsj4ccmkgcr61d85vkwk"; + }; + defoldfonts-68234 = { + run = "00h2hk4vhqn54sczns7nlgsiymccwikdpl702y9m9hvhdw2misak"; + doc = "1xl8nw3p9jhb530m7sxkrsg3qpd497q4678al524b3gz85ps1m0w"; + source = "0ssc58p013kjdh0p56jhw7cx734ngnkm9mvf1cslcar5pyh6s88r"; + }; + dehyph-48599 = { + run = "0fkqlsknrlxk8zazcqy4q3nisxr3a4x21aiwqhz8s237rdf3w39g"; + }; + dehyph-exptl-70496 = { + run = "1lk9jl0h46xi2bg724j8jg6i54jqdch7ncz1a3yk6xwfpjgmj9ig"; + doc = "160z9xiqdi9x3wmmipnlarrhlj8r6885541vl23hlj61xd17y9xz"; + }; + dejavu-31771 = { + run = "1pxcrv98xgy9hkqhclyp0q5dgpgc80bvjzs378f0dqzc1037lghn"; + doc = "1f42z94n6dpdq481n5wmsx5hx000klmbklghz77x8pc9shgvlka8"; + }; + dejavu-otf-45991 = { + run = "06cdqjqj0vcxrr2nlqs2qszssiibzr0pbimhvqjpqfdv2hhdxd0d"; + doc = "0x9j42zm6dagn4wv8hz34x7cgybi6bb86whxvmmwx5slsbb6yqfy"; + }; + delim-23974 = { + run = "0k5h5wk4fn4qzhjcgraqjzf6ggq7rvr8d4c1j2vwxi37fa83642b"; + doc = "167hklrsm9dh68nvl6inqck07zfg8w4gr9p5c2n8i6y6v9xlj3q5"; + source = "1xh63b78kxngcc3qgzmcfrf4pw2saipw054pzq47vp2ajppp1sq3"; + }; + delimseasy-39589 = { + run = "013r0cgz7ivrjfhmpcf5rdfl2573q35qmw0bhprnamij2jpvggzr"; + doc = "02s406bh59qy6g8ckpxhgl0b4xxyr4zf91a6prhzlmbbhf96xbp1"; + }; + delimset-49544 = { + run = "126ax3z4c36z83479zk56jcvdj5r95y182rv42wkm4lm6sy8v24j"; + doc = "1mb85h29fp7nxrkfylfg59jbvjva7lmr7vvgd8nz7k09w1gf4x0b"; + source = "00hp5f5pfad36n4lkmra8mc2n0ynnq9ynnspqfb9378cx3m81cxq"; + }; + delimtxt-16549 = { + run = "0s2bbxhbfvq0jm4i90sh6krcik8yk2nl0c39lzr1nrakal0k5lkh"; + doc = "1wswrw94n5l1azs2aczv6vf56ksbagniry4rwq9b16bmvdy7slyz"; + source = "0sfwmd0mj359qkchqgm8zc80ayqp0p8ppdgfn3cmayhf2pml6gyj"; + }; + democodetools-64314 = { + run = "0ih11kxlvnskrdbvxrakbljh1n08n1mb6hbmf08475557bp0nchg"; + doc = "0kcn368yzx0jf04srh2lzbxj9n76ph0idfjcqs2am3cjp2mjis17"; + }; + denisbdoc-70611 = { + run = "04y9dwkap94nyfn4cfcpm9jk2y0891dg7jg21c0ca9b3kckrcgjg"; + doc = "11m50x8lc0694wjx06p9raj871gr9hmssblm3gnx3phl0vfrmyd7"; + source = "0gipwjskg2p78r2z4j839yxfar227mvv294bjnl0j16w33d8k4cy"; + }; + derivative-69746 = { + run = "0n29fjh59wkpigk1759b0m231zcmli6rcsplj0zhhaf4jwxk2apj"; + doc = "09mv84hz56l3ihccl5cln8avw4137c8kwykh9s0j3y1r19iw7x1v"; + }; + detex-66186 = { + doc = "08d017wn7a67pmp9b5yhnfg1x2q6f48qaa5ma4bplz9a782icwjy"; + }; + dhua-24035 = { + run = "16gq48zlsfk9llafs8379797v908khv954q8lw2dvzk0v69d0qki"; + doc = "16l76rvba4fz3vfw8mzkmks7b7206h2dva5dgw3m0j30ds8d6vm2"; + source = "06vws91qfar1h87d57c9f9cw04isjk0szhg2aiw7sc8ligs0v907"; + }; + diabetes-logbook-54810 = { + run = "0rmahxnjnjd677z42ra1mcp86na41sz9ir4chkpmaikhdvnbi4qa"; + doc = "0qb2nyjc7fpc7yc632bblbjryxdx39xr64c4kxncdisi34am82z9"; + }; + diadia-37656 = { + run = "0gygfg9vs4gbp3r0h9v6dqc18np331c0hjfmc5rbh29i74jcm8jh"; + doc = "0bm0sb3fjj73mcdmrsvan9pdla2ki7j1wwpjpc4kpfc116a9lzy2"; + }; + diagbox-54080 = { + run = "1p7wfkhdcgdc1gifr4im390w039609j6mg99sixgpq8f0mqqnlsf"; + doc = "04i03qdy9gfzf14w1vz8nqqgw4hn191w423jf2ck5ibljwlwa214"; + source = "1x1ixmmixi2sal1iajwnf0wvg97kj08hi5vv4swdiwqpd14g1i53"; + }; + diagmac2-15878 = { + run = "00jzm6pdzxbg33fbj19ih813j9wvb1g9hr01g9xjc0d6nprq9mcs"; + doc = "0vpm9lc33x5xyip25kay38fhld0a0z4l6g3nvhbdh65apb4j4wfs"; + }; + diagnose-19387 = { + run = "16pikxgaf40vm6l5r0wk5jxbfyzy1jgpq2qhpl859srxrygdar4q"; + doc = "0k6vxzd3biyrfwnfr3p2zvj5j10r4xsda65qf6ppdrjr8cvmjx6l"; + }; + dialogl-28946 = { + run = "0vdx7qnpp5s6j5c96207px2fdhylj2kv3ph9mr3jcb6jyrsiyi0q"; + doc = "15082p9pi47vdwrdqz4kdcl59ymsgnanrrnil9p97c1wbmc9saqb"; + source = "1g9c68a7pqpk5vfcnr95zi11km3bhjll06zminw2knk2naxlykhh"; + }; + dice-28501 = { + run = "12j86mgn8zph5w1gd1lmmz0dcka36b187vld6r2srnj9f398h7ac"; + doc = "068pzhi6a4mnq8bj5xvg4pdgqb4kvdggybs16hpk8jla03ny18zp"; + }; + dichokey-17192 = { + run = "0bvv3893jxpblddqi75hppb9s0rxaiqbq70jns2x7d79afl7xkwj"; + doc = "0m5zc521shp00wld4kyhp9xipsqfq00q1dqd3qp9ki1b2kmr5w7j"; + }; + dickimaw-32925 = { + doc = "1mxjqn4lblnpbmad3jk453lyx1qzcmrddis59j3jsgc5sp929w4k"; + }; + dictsym-69720 = { + run = "1n55cpkm687y6p6fs98d81ivvryr06fahh9nf5bvg3vvmd3rq0v7"; + doc = "00l1ivnslfhlvyyd070d4vk2s7h9qn3vp6z49rm6g05zrx52954q"; + }; + didec-70237 = { + run = "1fqcc7jb45w4x13689llhm2rcqfjclrw5inp770q4sj2xsdgfsnb"; + doc = "1vldv0j555zyk27n37y8p8n9l4xzp0fv060xbnq1hjsy8sjjwm57"; + }; + diffcoeff-68838 = { + run = "19rrh9zzjxyd7hxfawi65y0cnr1ps5vzypk60jfki8s1bbk8l2jv"; + doc = "1ximrhl7m5in95mxlmk7dpvja39sjvxz4awzr3vwn9w11qkhw0p9"; + }; + digestif-65223 = { + run = "01hym4d6vqja4hwnjyvs0zs0l2fzhdap0pir7cz7wxqnlcip6hl2"; + doc = "0220wkv0w6zp4ggnqkcfcq388f42scywzn2ah0h9yhccgdikd52h"; + }; + digiconfigs-15878 = { + run = "1irv3jc87bpnc289r5zh7pgfdgk4bvfwbyv6666kyq8f8yl7m1kh"; + doc = "0fnibq45xgwrha5vfav8lylnb6p2i0brd2k1yp8jm8id6xdsxmq8"; + }; + dijkstra-64580 = { + run = "134qfpb0sqyazfjyc7mid1rydyszc6gpqms787vq2fd2157zksz9"; + doc = "0qmzrdzh0704s97wqwxj3wyg33rbbpq0mmq7hdqf8fy0vq2v8hh4"; + }; + dimnum-58774 = { + run = "0mrcnz3s214a4yxljlbrzpqyrsjlh8gd0llj96wsirlc1kpsb3jq"; + doc = "13j2pbbpsnd70gmn3ap4sad4bvbwg3r00ix9s1m2kvx4k7j3zwii"; + source = "0sx3y3g7jn0dbbfw3a8sga2fs9pz9710jlckmc464a5zlxmcyldh"; + }; + din1505-19441 = { + run = "1ki5xzdxgvy34pg345f1577cj93ps4mgcakjgqra8jshnnfrfqs6"; + doc = "0wh1zkzzm3d9s5gvff6j847jsqpr436sw7ysvrlv0r5s3fb10xl9"; + }; + dinat-15878 = { + run = "0m040ib86lk9ccd4m2r33k8rgdi7dgga80skv2qif43ssws330r2"; + doc = "1hvc4f56mi0drmdqr7qlab68b9dqkmczhj28d3lpyn2l2hx4dncx"; + }; + dinbrief-15878 = { + run = "1msbw91lljb18c10bia4zclgb1klhmnck6kf23dgpv5ihpdmzla0"; + doc = "1m3dvm2d0s7xbnvywwwcnjcl3hr8sczp1lmpcdx8m6gyjspllbfn"; + source = "13dcia7rzw0djajb71b9gq2isgys63zs6g89rnwxfvn41a0nkgh3"; + }; + dingbat-27918 = { + run = "18yzigyd9s0c7qs34x1km0am9ii7xywvyd9miicbdr6s4bjrjdz2"; + doc = "0fxbmx6nz2ib6qfka1qsb9ky9r3xw5hvss532hn89yx40gb6qx5r"; + source = "130qj3fs12j3sj93xlnqxch9lgywgwk3qchlil72dgmh24kg6ij8"; + }; + directory-15878 = { + run = "0z2kczyvd4h3751ndfywzfvxl16xrjl3alvqxpscjsplrrrq53l4"; + doc = "0w5rhczldn9p28dys7pjn3lgs0a6dq4yr59n1969qbffbcyv2m5q"; + }; + dirtree-42428 = { + run = "1j91nhdnf4zvqpn6a3jqrcvfpfb0ml18n2g474n5d2k1017mdz4n"; + doc = "05yd1fkkgyspqxi2ddmq3s0nwnyh1xk55lbzzk6pwxjx1s1cd5k5"; + source = "1pl4s67bwf5vbf0ccfhd05yrmfss59kng0ys871yq74rxm4abing"; + }; + dirtytalk-20520 = { + run = "10msaqhpb66l95vk8l172mpglilhdrqc4qcvmq3v58ssj19kksjp"; + doc = "13yv6x3v4is4l0z5b7a83r173jq7mkyqc8nn52sfdkr168saxylz"; + source = "1jw485pgqr0l60rnd39jfn4gmac5n9k67q8ykn2fk3s38nklyzib"; + }; + disser-43417 = { + run = "0kksdx0m0lgb7f45g21yzfh90id3pzq17bhff8x7az0djb6n7zk1"; + doc = "1pb4gzw1yx3kx6yxabm4wj99gmnwmx9vw30m3l21304axdxgk7w4"; + source = "02awlfmhyi2cahd0dkhxkfiqqg6jwmkksv6134lyms798j0akv0z"; + }; + ditaa-48932 = { + run = "00ym9qcrzq9g72r5dkvqwsxig9gryizzznjfzarq9x9dvd7x1r48"; + doc = "13cw5a4wvv5fyknckvm6qzhl2lvaqvqvlwi711ix6zq6db3ghfsw"; + }; + dithesis-34295 = { + run = "0spbmfqf2i12sp0qvh6875vp2zrgpkrhvbmjzwyxj6mjn1yr7r9b"; + doc = "0w9xgl8y2w1f7ns2nn9j5rs7hd39w6as2drcjmw4dc0vdbklkayd"; + }; + dk-bib-15878 = { + run = "0b0ypkq5c3bvbz6633csljj2zqibcm0nqj4dkskikzv0dzqkilh7"; + doc = "034zpjn14wia2zl5flgndr1p89b8jg0w91wzqhw5zfzmdh4k3pn5"; + source = "1aj8d2r3myp74x71jkgi8ckzcr6ngsqfqqpv5id43awrffxicsjw"; + }; + dlfltxb-17337 = { + run = "0yql8krlb6cbi5vhds9s8qwy4010vlsi3szbiqlzrby82bnfpxnz"; + doc = "0c4nvwlf5k1q34gsn3z0pb00b0yhprhp3a1mcrg9i53yw7chwsy3"; + }; + dnaseq-17194 = { + run = "0vsifiirz1mwmjnav8k6m27mm5qsn3iw01a9c056p4g4ji8w2v2y"; + doc = "1n05sb0yvq1hm2wa5vdnkhr54fgdkxv2s4kd8dhzk2zqx6sdv4jb"; + source = "07vdyylb7j94sphfz6c2szxhx7l5swvyzly3afky69lm356988zd"; + }; + dnp-54074 = { + run = "0jlvb0nps1ij4sgbg3clgbk34p80la1fhh9zihn9fhl9nrqk637r"; + }; + doc-pictex-24927 = { + doc = "0fdvqhkgi5j33rx0r4fifj69f4smn5w0n99vx90a3fw15qzxsg5y"; + }; + docbytex-34294 = { + run = "19f8kxa8pb7ai7npxxavcw8hbsskmnchi7vynzkbd0imcjvay476"; + doc = "0q3by29jmymrf4pirwmfqxr6bdglh936yb1phficxlpm07ibp8mz"; + }; + doclicense-68441 = { + run = "1qb8r4lwjqzwv46fsqjff8l5zb1scjkq34pwnsxbymz1sl3iw1ls"; + doc = "0isk98wcs93labxiygbf6hg2794l7m2wr8ck71jafd6by8x7l1mb"; + source = "04sq9wrsfgg3s51k853yy7vn5yp292d2ii0ww3msrqnlpknvim7j"; + }; + docmfp-15878 = { + run = "13cxjhbafm0xvnng6gc9g03p4j79sia7jvygxmphgnf7wfndv4sz"; + doc = "1j2b530wcpr8252lcpmy0c5w83kqbi9xzsrfbdngi1jmkfy4nlgv"; + source = "1w8g6m2whza3w62ngsaslv7h2x7asijznwb9glx6g2vjv456sgf8"; + }; + docmute-25741 = { + run = "15ad8274dwgzk7fzs7i5g3ss02ld8in8f86339rb314zmraj5kv3"; + doc = "1mrwispvif8nwjbq12jgzpwjn9xf7mr91pwg5bfdcnpwwy8l1bh3"; + source = "1nfv31h23mp7alrm9saz5abakjsvs7rqva3q9zvxlczix7yn63qw"; + }; + docshots-69676 = { + run = "02wcsd0ccyh9lmv6mi5g7igk42xcdmzwvp0j10128yw71znmwr29"; + doc = "0ff6hklr8g0497p81bir02z837y3iiicd7g3cjws75sm88isxxj7"; + source = "0qjcc0vkz7vpylh7cqlkyxh8fx2gyjjkm1w6q62bi97j0mnnb58g"; + }; + docsurvey-70449 = { + doc = "1pf5h9fy9akgc2cznvx32nzhxfx5c22dzr4ki23h4w7v7iivsw68"; + }; + doctools-34474 = { + run = "1rdwmdah8rb2yiicd9mbqz0mmf56rpgnp5vwyjhax7m0zqjgqkgm"; + doc = "02jrr4wbkdx8r44dpfn4g83j03n6yrska79ljnwigs77p5jqlyl8"; + source = "03y13bijva11hqil84l2p4cap7fcm8wk6ds53nx1qizh66h8g9vr"; + }; + documentation-34521 = { + run = "088imchmqchi1ilwfzlhk8d4am2xjjgacnyw5w4mb6sirbckhi3d"; + doc = "103rpywyl1h30c7jamp3cfi1rg89y48krdjbxc0calz8iq5n0460"; + source = "1fzk62clv9ij07cfjcrwn94cqvz2piysij09y2wlkcs06lgk2m69"; + }; + docutils-56594 = { + run = "1pxswkjs901clnd8l3n13ghqypv6l8gxr3pnwn9i0zakvxz6gdh3"; + doc = "11fzx9kyxgxr20hnyqy9nvl5rczdfyb43j1bjwxnim68kmy5bjyz"; + }; + doi-48634 = { + run = "0rxsgmqmkpabw1qw7k0ssxjmzkia323dl0p73zw7qbwdpgs4xx5v"; + doc = "0h6k3bg9wg4wa4shyijr0xsx935s8s8igad0zzyk57q5g7lhhka4"; + }; + doipubmed-15878 = { + run = "05zcv1db1bbxp6qnw4ni3qjx6yhflad1syqabqbdccrfk5xim20n"; + doc = "07pd08qaggy6q58as1aqfnbk77mc2b4kavbzqk4v11f5vp5v0bdq"; + source = "1hzv0iaj8rxblqxiak3n855yw8gqmxz7l8jwf98qnbpb9cm01f0i"; + }; + domitian-55286 = { + run = "0rcyfp46ar0qd2jiir3vmwqmkcj8zrhnrivr0xsi7nf9xbl0xj1v"; + doc = "0q7lbpc0lh2i6jw6dwr26d9kxpwqxcrv6szsqfk73h8bpv123ghz"; + }; + dosepsbin-29752 = { + run = "0qknrackr7m0s431vrygphzrk99wkrgdp6kl04q7f4lsffq12k9r"; + doc = "1lhrlgyn9sg88052ib0jkwd88zvjpzqnz0ac5whl5gpr5zw2y2c3"; + source = "0lqmcndd5m4hxslvpq4r9g1bal12vfdsncfcii71glv45c2hl2x2"; + }; + dot2texi-26237 = { + run = "0hb9mv8ai85smn9viig88f5hprj3dyj574amy9nzdr8f52lrbg2z"; + doc = "0wa63gs8h9a5d94chiq1gr4lam8p0338lyqbw3bmf3ix3v1bzyvm"; + }; + dotarrow-15878 = { + run = "0wjan8m1171m5bl5x6pygfn0lm3pyq87vmjjgzl1zd337l3wz45w"; + doc = "18d9y7mzfwsmy9c14ihj2blmikiwcwp2y462wjnmm8hb6gm58cpc"; + source = "0f8dmgsrd2wbcmxipj0p40d09sgcl8i5indbzsmkfz7fxvnpr15d"; + }; + dotlessi-51476 = { + run = "1ii8ilc2hqdwck9z1lpbyjsgh47pkfh62r1yv6kdkafqqrxzpxxb"; + doc = "1vc8bpzzad2k222ghdcqmkbd7541b88wccc108avzj9v85wfpjbk"; + }; + dotseqn-17195 = { + run = "0n0hgp5saipf42kwx4hxxgx66irmy91pdzcznc8vmnnlayly8s61"; + doc = "1an4s3v47f08z7v5gmz49g4bbz26xcvadn74052nhrbmj8xm8fav"; + source = "05zxrzpm7mcms2skh9mpv4nga9ysqwin8qjc7yy9prcaban00y33"; + }; + dottex-15878 = { + run = "1ykjw55qzv5vk1wk90qddswvj3ai1s5xx674vkf5r07nw07dca76"; + doc = "0vk0qgwvmny4fpa9d0gwg4s8z68aaiw1bn135d5msgikbkhbbmw7"; + source = "1ph52wyv7fqri6pxsi289s7svy4p4zap1bdzbwqpbsrp6v4ngjqa"; + }; + doublestroke-15878 = { + run = "1nfbbh7kid345jkcqdhh72q3fg2fh39fzchcbhfkvisvqmqs3cgp"; + doc = "1vs6gkv9bzya3hnclqbwx44nf5s8vir0hs499dsya2q64qrmcp2p"; + }; + doulossil-63255 = { + run = "1lajwxs0i5971bvc2jmdi1ljpp3545hq9ckyrr93lrk0ghdv65qy"; + doc = "1wv1718k51wpbzrlxy8qm169q7brbx0gy7x0mil18a8ik53r7c6c"; + }; + dowith-38860 = { + run = "1ffadlm7fzm72svbpln7lms9dl5pbrv6xjzhwbcsjbwy4smx8s6x"; + doc = "12sis4raxlfwzdl5jqg6x7fa7wsd9phaawm9ydf91wf7d8md6z2j"; + source = "1qm2v2lw05jk4nnfns9l1hldamjka6plg2zyly6vi0jlns741hpx"; + }; + download-52257 = { + run = "0dwivfcjvg12gsf4zikyvlyb0p1pks6a2fxdqgji2x79ashxsm24"; + doc = "00p9cjzqqh95nlda8193111aa5kjagszbf65wfm3jfy4dahqxfwz"; + source = "15shcpxz2h0i34pnm2nz47h37gy4xdws87p8yrxbfi4j10qr8c62"; + }; + dox-46011 = { + run = "1vv1arqah132cns24s99s18ixcrjqfkbq551d94pjs8di7fiik2p"; + doc = "08x3h0750nbh20wsnlkfz59na5kvi9jsm63l8dh3l7b0szzq88cb"; + source = "1p5xmacd5phv5ig0ga1wj32fqpji9fl21lbygb39qdjr6v3g7vs2"; + }; + dozenal-47680 = { + run = "10ghknq4nnyvly55mwcisb64cadb0afmsqjh8z026izs684rbsjr"; + doc = "01m1ljwbzmzq0hcj6p95rl4rrgnjrxlxnf72f49f725xhfsn57pb"; + source = "016lxqwf1cm7a7ny5znkgibpna1r13zw0cmzs3wk49zhqhkqmzvp"; + }; + dpcircling-54994 = { + run = "11qhxh5pgjyc98hnlbq8hfsb77bavs0z3yjx4809z6aypah5cd92"; + doc = "1qrx0pnk1p046mx6nzjwgrfxaq1hmdgalqsp3cr6d6zgqwzsnms1"; + }; + dpfloat-17196 = { + run = "00agcljhzafzhbcfk1jbxaxyc3znwxd1j1sdhr982m3s1nd8733g"; + doc = "1nydmlbk1p4gywq0hh7jnvd9hs9lxl73khbpi4zn5j4blzkb31x9"; + }; + dprogress-15878 = { + run = "1sz7msvh7wyf5k8ag857lr11dqwf12p1wzi6kdkwma05i8wwni88"; + doc = "1s356ffii215bybc5cqg91gril5am5zzh5w4s1nf875yl4yjxbji"; + source = "1f7ym5lr0gn24jaca509hbhg9xr5mhbr5wgncvvf937jmq6w2jxp"; + }; + drac-15878 = { + run = "0p8li8cln7674zd40w8x6izn2kf63wsxpwg3dpbjnp5jccifvsnr"; + doc = "1lhibs5s6h0a97ggjkp1i8j02ry9p0zdq6pzjxm4ijx3fqj1p3rq"; + source = "1478yizwfvzrpi50k3fxbs9vq7g39170jdh7l3ynkbq0fkbssxhd"; + }; + draftcopy-15878 = { + run = "0fxh7h37akz0s33vjmnzxjp04m7ynb0z6650p5wd399lfg5bi11k"; + doc = "1z7cjzk75d3gwcb4dgvg7a8jl9bvzqnc7zn0ginqcl0aih37yg5j"; + source = "11gswnpz0azxb2d1clmpk9bis9cijsd1hajll7jxm5fhnk6vigfn"; + }; + draftfigure-44854 = { + run = "0dhjlykc6p6jm6p0s0h0d74097ny29w84ns1pxbb7f8iwr8hhkvf"; + doc = "0gnazf3bmbgnygn3pv0lzrlrcic3j2yfqxq1kaijkkhsr9w57jy9"; + }; + draftwatermark-70401 = { + run = "1v0100dlj6y6kbcyvnslsi7a688jdm813w6752bxbv6xsxrgrvkg"; + doc = "040xj41s6xgbxz1gnd11m58dv7q30qdki4sn88vjg00n2i0afxqj"; + source = "10lm27jk24p2d5pg964l9mwj4gkn1xfqxw301lyyibq6wz921qcx"; + }; + dramatist-35866 = { + run = "0zrkdhvx7f1261r5b2d08bd6a3pzldvpi69iym5k6f79ziz0602q"; + doc = "0vwk6zfvf89773bwcxnpsd8crbkmq4lr6hksp4dn0hn6rf4smyyf"; + source = "1xy8fm9h9qgjna6z5gz28rj0cq65wpxpxcs4vsfr4vr1p3vmig05"; + }; + dratex-15878 = { + run = "02nyg30awmpp2yi4m6r9gbgz04irjzpbjhpp72j0qxzly8c8frqn"; + doc = "1a5knp5hylpb1i7hkd9160bah7pps9b0hm00zgn9fk33g5xrvhbz"; + }; + drawing-with-metapost-66846 = { + doc = "0r1fqikx9iix0xm2w78s80knfwc7w0kf2k7fb3k25l1cj3ym14mq"; + }; + drawmatrix-44471 = { + run = "1806y5cdgnj61fy0lilm424x936dz2q5f2j2s3w71kzl5ivyf569"; + doc = "16pql717cz27sic494xvmsw2mw9jxn71xka0k8fjys8j52pklqnk"; + source = "1x8lc07xccf73vcvywmrqk8ivg5xb1g75gqhff12zgrp2vqzh6g7"; + }; + drawstack-28582 = { + run = "1lirkdnsp35l4dwsir1xyf4a2s608ymfc3r0hmgg9phiy9i1664z"; + doc = "127c98z547disxksvhabrpnddrp5ax5dwbgy7nmyja2dg65yax9i"; + }; + drm-38157 = { + run = "0j0r5b2b6js88gy04d12w8wp14g7z9xcgc43y0ysn2xglcsja3fj"; + doc = "04i8mw2lsirvzf3n8xgddd2jr2s45fbg6m6wiwjdz4d2i1pi98cs"; + source = "0l3j52ypvsc8ma06a2z2dkqsa3vd7afqkmyrd6b3z6w3dgjlnz3v"; + }; + droid-54512 = { + run = "1fmm1k3sxdn2h6v56hqdn0l84rz1cgxmj586wd4ff41vfzbdnn5z"; + doc = "14inm79ljwnr36dz97356iz4257vbvkwmbbaq7wdza1yf07gijs6"; + }; + droit-fr-39802 = { + run = "1wz883z4a7g4na18z50vd0156gj6zpkkl49h4k0dhxwgqibh13mk"; + doc = "1ss2j5jsr4h96rqcqmm89mprnr6w98zbsxy87jlmqavjjc8k8jq8"; + }; + drs-19232 = { + run = "17jp9fvj86sp4ywgc6j1dp3pnvgllilbq75298qamnnj3f403vlr"; + doc = "158wkgnrgwfg2ikbj98hmcaaymrwpmnmaxillksv1b7gxmdrphk5"; + }; + drv-29349 = { + run = "10dqig3wmp340m9h3n4yl6scg1p2a7ccazsqp7p8a4fkfw0cziiz"; + doc = "04kgfqhilxpcc0h6rhpw55s1j14wsb5v8b6ykq7ajmacrpmyi50h"; + }; + dsptricks-68753 = { + run = "13hvyb7qapfby45z2cikqwaj4bcf6lvhaf3b6gq7d9831gxfwjhk"; + doc = "0jjwa6rh39qp2659ijb3fg3cqz0lbpjpwmvj6zpxv0xhnjzrnidm"; + }; + dsserif-60898 = { + run = "0w1kihzrmk48hpl36a20fkz4nwp9z27in9xsi0fc3d6mhgdx35db"; + doc = "0bwnnxypyc97jfcam0vdvpyxphd1zn31mc6lvl661jy10cpqf6b4"; + source = "00hf5icf1n0rwxr2ms34z7r62g98dqkx5v26m3k7w1wd1jfnjzi6"; + }; + dtk-70117 = { + run = "0mzd39bczl4xllw2asnwrzjp0jnvldd5ldh940qcrkp9rgj9nrg0"; + doc = "0bm35iwckkx93shilww367pr34h4wdkr1zwb3c9xsnjz66nj1iig"; + }; + dtk-bibliography-70517 = { + run = "1j395ffwbmps5al16rqfn4r1mm3m4pm21jy74czr26cmfd75d6jy"; + doc = "0zcc3mr1p5c1nd1dl4hqdr8m6d6lccgx6zyxjf2569x805qs4mrd"; + }; + dtl-62387 = { + doc = "0kvnsr8nxrys99rp74wlxnisfripx6jpjjkqy38d3d4gw13cvb5g"; + }; + dtxdescribe-69507 = { + run = "1k73gikms6ymcjprphzzrw6nlhm8sdg62w5ngb2g38p0hyxi0r86"; + doc = "0fsl1kp8ls9dkzqjs5gd3s4f6cvi3dqd5mcz46dns3v6qfsn39my"; + source = "1vdvvgf7knmqhz1qbqgs17a0m0dljnx2lwz4d9j5q8dds2i48jk5"; + }; + dtxgallery-49504 = { + doc = "07c403zbx7sxkhhrwrfw3np20xlqhdk893b4bd6r8lqb0zipp5b5"; + }; + dtxgen-51663 = { + run = "19c9w97wjyrq6g1j8n8qgaclx141lv2j6z6l5h13gmkmyw08vwhh"; + doc = "04z9dy0aada8zsp8ckz3agqcsm29dnlx770xyl51rsvk2qwsxgka"; + }; + dtxtut-69587 = { + doc = "0zk09qdz661g1lnn2qr1s23h3x4mi7q8mdcl13p19k7qmnlc8v5d"; + }; + ducksay-64655 = { + run = "17ihjvzz7rx5zra8lwb72vyq5i27psvmlg22sihy2lxkxzy3krx0"; + doc = "0ydhgp11hc7hl3ikwf9pgfwf5p7q5g6m1rmfcy2h6svv398zcg67"; + source = "124lwhv0bfc6h34q93hjxpa5ypdiibmibx1ksn9x8892blg7dxnp"; + }; + duckuments-52271 = { + run = "17fz5mkr812ig337m2q40dcsj98qpczw53vjrsqk1skmknk0q4g8"; + doc = "1pbq66k699v3b6c02qx89dvzsh45knr4y9s6a45gkm4a7mkk5nkx"; + source = "0xcdlvm247d3hl7bvb981fv07nb5g24c0n0171vsk3hacxpshcsk"; + }; + duerer-20741 = { + run = "1v6ja2q8bi0w0jkyl3j960gkvv2m5b7n9lg6ql9rxz7sfjcxa3ih"; + doc = "020q5ln31smf228xx27gbbw0xdcx9f5zh6qjriakxa9mhixksjjb"; + }; + duerer-latex-15878 = { + run = "1f23mz3nd7icknkz4dircn38y1k2k0pwq3r79ja4h85si6i13ynx"; + doc = "1arjf6dzzkvql0jhxg09f4yq9vgx7ag9l69csrindj8sksvj18f2"; + }; + duotenzor-18728 = { + run = "0p9gq8i6xcfg4pxdnqfswjcnc17x7pzsp4iya9b3fjq4kplqv28s"; + doc = "1bc1pycds7r45c2bzmjhxs2wv0f2wqyxbycfrl6g4fycr341h8gi"; + }; + dutchcal-54080 = { + run = "0j49mha6lif07hnfn2wdfl949kfal4hbmzg6zal4w5rgw366szrm"; + doc = "110rbvidl53naa31ndgh6nx19i3rkawbipz9rpxyasqk61kvv6mi"; + }; + dvdcoll-15878 = { + run = "1b07xplza4b3ngh50czq8vwmhpr2qvkl5xbgd93a9acvsf5pyg6b"; + doc = "0fhkdwyvlizlb66bd24pfncbg58a31ygnfg0f9dw5z9ccfrf50hd"; + }; + dvgloss-29103 = { + run = "0fgc0i7cn0kd4f682xny0968l220ypam3z33mwac6ifqaaqbiy9d"; + doc = "0l467jcanablvj95l0sbdib6dblc6ns2jcbg41kv0nxpah2i5ms8"; + source = "0b106p2a8xr3c0vxwx3j0qmxh2z842h5x1z22509jabry3sf1y98"; + }; + dvi2tty-66186 = { + doc = "108y0qxh13x0iivgsvkk4370f471p03nyl4x9nn7lng1wrsafp6h"; + }; + dviasm-68043 = { + run = "02dxk56b63kqiin2ad80hh4xrvbhbkidyi0pxi8c2n5zqdiq81sd"; + doc = "1hp4vrd6aj2qy9mzb9cr8l641cvxx4aw1ra0v6yr16lkzcls7s4a"; + }; + dvicopy-66186 = { + doc = "010bs4iyaja7mq5wy9mz6fzxlxf9472c2zdm93x9i474dzgnh2vl"; + }; + dvidvi-65952 = { + doc = "1w153rqm7nlmcf6162glxz282nbb6b6hjf5h0p7mbzr0j1357sxj"; + }; + dviincl-29349 = { + run = "1qb2cl5jbgzjfgwqnvnfbbrbzxi4m64lajvz6pyybnrwv4bax0km"; + doc = "046c2cl9azgfg7y2022lj8x7yw8kg2pgjdixxk5989ai850k2j9n"; + }; + dviinfox-59216 = { + run = "0bcq55p894m5hw3zdjz7q7ns21vpzjyihg5x19lkn9k05nxrs2d8"; + doc = "0v2sy294w0m3kniwky24lpi4ic5d8qrm5722gd7vw6ddwkwc1x61"; + }; + dviljk-66186 = { + doc = "03pi78c8ghy2gghzk1ffrvf5x7h8c1r0pv5pcspwxz365x2rsbjw"; + }; + dviout-util-66186 = { + doc = "098pksgf2iamq96rmzg5fw7i9dlpvdksficsz1bf8k8z4djnbk8n"; + }; + dvipdfmx-69127 = { + run = "0i83g2476bp3zfgdvg11kmls969ip36z1d4w592946547ar2akmv"; + doc = "0wid2ydcjf5jq34k8hsg62ndgishbg6f14p728dnyrbh6k4iqvwv"; + tlpkg = "0mlhxv77q5nanqg2dcbd51wpbcrys9xhr22bvx3hpfzwykb5lh69"; + }; + dvipng-66203 = { + doc = "0r001q4p5569dagayds1c56y10ls6f6v7mmywiw81l995q16apxi"; + }; + dvipos-66186 = { + doc = "0dmaas4m9y4px53vlg0jr73xviki338fm2n176l8ldwqj0vvq1b8"; + }; + dvips-66203 = { + run = "0k89qqz9zx5zh13azpjndfzszgl85hq4513kaayf4k3spy9fn5yw"; + doc = "0acfsqbpnws8m5y66fkgcgxf4sdr9sjha067735scn75wmwi9y01"; + }; + dvipsconfig-13293 = { + run = "02vgk91y80ch4pkj83vbiz1b2ccigf152hm83p607y4n4qn2xzsf"; + }; + dvisvgm-70496 = { + doc = "1fz3sa7p9wk2g1v0bpy87vz7nxwrh5bsfl4m734n6lhsh1bkj6fb"; + }; + dynamicnumber-38726 = { + run = "0y779azvla68n692x0gybg74cp3dk32219v67qfamfzz389nbs7s"; + doc = "1appm3ddbv9ll0mbnid4xa459w9q89swmdlvdzy1fxdps4y0vpz9"; + source = "0ydmlz697c46fx0xpnvcdcfm9sm0j3jmk47xz8znd2ghzg395fgk"; + }; + dynblocks-35193 = { + run = "1zb7vk34k3z0cvw6kz74s7831fz17mg3j9hw60diabc0q47pwyr0"; + doc = "1m69hys2b7fvwn9h6q3whkpcnvi04hnhx7811s5fqhdfi76v4zk4"; + }; + dynkin-diagrams-67267 = { + run = "0iprylvg36fs9rk44a4yj6xn2q5vy6jy2104m3j9jkyfafy2qsy4"; + doc = "1f54q909b3qgbgqgbxpi4xr4f06dkq7z0wh49q29b1gh2zvvdxms"; + }; + dyntree-67016 = { + run = "19kzb4j7q7dz993znni7pixv2qljzydag3jywcsgdpqvlnk1aq0y"; + doc = "0fa2imzfskl72fvdm1pbhsr33qpwm41dzsfdipdlgww6116rlwjc"; + source = "0hlx970ym3zxln15pm4c2qxliaj4yhv7cnak03hhbb0dx916k3mw"; + }; + e-french-52027 = { + run = "1pm1k7qb1a3h2b8kay9jwby382jxp3866b9m890rj9gfqdmwbfd2"; + doc = "14719qp1qjcx4wjwcarirj7iz6qmjgwb95b308zqdr197y1cvymc"; + }; + ean-20851 = { + run = "19w54ch23s75mhn94hxf4nphl5dcz2w1jx138kr0phfzpc6fri36"; + doc = "1rylr9m7jrv0qq6pzigpm73z34p9n80fg5rf7andmvv0fcpmggk7"; + }; + ean13isbn-57514 = { + run = "0bzvkzpi10d9sjlsc4df5v3y7qycbz1qkn7ngy97prq58wg047gc"; + doc = "1gf076ybmni0wzhh0fsf5w4sj4pv3c3w7g7m09k9607y4havv20a"; + }; + easing-59975 = { + run = "0zdyvkqydl713p61izpcp2yz6n2rfsf853pblh6xgsjj1vlhrr0b"; + doc = "1f8151jb5nzd8hj3sii4ca274iaxscv5w8fxp758ncshr3bv0avy"; + source = "1hha1qs4wy6s2162w61gpik2hrx73r83gja1llbq80gyvyfgdssj"; + }; + easy-19440 = { + run = "0jrza9lf3yf4d1wm6nzwv5iyfia6625fjvflfmxsscbmwqickjhx"; + doc = "0f72bawmxrxqk60xb61y079bqpxj8kmvn167plbq5whq5b1fsxfl"; + }; + easy-todo-32677 = { + run = "0fkwlzgx20lj44cvwv8hqv79v528k1gghx30lvqhg44wqirkmy86"; + doc = "1yj3c25mhkp16n49riza4qchr2pqycqmb2k80syn5w3dzrj021s2"; + }; + easybook-70236 = { + run = "1kdx1wkmcpwyyrgrhjadwnncal469b2i5f3drh78i2gk9b6ajy97"; + doc = "1cal6qmb16xpq16gs9xnprf8yaa6xhhqvd9n40gbwv28nz1wdh8n"; + source = "1w9bhy6rzn0yfb4xi3mprzggm1fm0x0l5pc4c9ajnncnix1vzly7"; + }; + easydtx-68514 = { + run = "0pfd66n156hw6g2s2p8v35gjykacci9kpyx75zcl1sw95ry9407g"; + doc = "01qw09bkafjmkmhg3wqqgw8javrar7zxrf9hr3c8xy14rc36qkyx"; + }; + easyfig-64967 = { + run = "164ncaq1l6hdrjp0zinynf825hwsky1xam2yqxphhk90438n5hzk"; + doc = "0hc63z5456f00a2x70ckvf3r54zld4d3r63a8d4ra7502kk8s9n6"; + source = "18f4bb9yf3f7q96w79rhx8h4svlxnv0xc6xwcawav63zsk40mk7q"; + }; + easyfloats-57204 = { + run = "0vbg5dz6wxzk20rn51xv7v526qg8m0ih3wikabdf1bfb4n093k2k"; + doc = "1ncmmmf2w313cpsc9s4w0c3gzvx09r26gwlxhr9rszksvd4y7fay"; + source = "1ih161wrkxf8sfm0zyl2m9xgmff4qs6qvsz7mzxbjl1j2zxzhhf3"; + }; + easyformat-44543 = { + run = "181x0sycxhwcfna2wblvijjs32zvqs6xl2am4hz8204mk321rjsb"; + doc = "0fg7y02717rk6ikw32qxn6iw7l59h5vc22aif6hs9xjnbm3nhhfr"; + }; + easylist-32661 = { + run = "1ghjps30fa1jvfkxrzaxqvy5ilacdyms6dl8bf2qg6195w2sgm33"; + doc = "13wgq2pz9jw761p2yipf23k6lrx66bp25l50446rp1xz47yk386g"; + }; + easyreview-38352 = { + run = "10wl0aihr4c55b08mxafr0jd1xaz640p2kj7n63w3wqxzxlpq42i"; + doc = "0nnnr4l1b6qhp75n646pd446s7c3pc4fxsxw84gvfqgankfsx3zz"; + source = "0p7xrqivvb685d0xcljyi4whh5vr6yahskdl63ynw836bmin1b3z"; + }; + ebezier-15878 = { + run = "1zmsrs7dpw5gwh6h0707gxcpsnbb8qklsqnyr0q30mziz1wqhdvb"; + doc = "03afnc0nw7yzv03n4gq38js3y6x5v0kaxi5psmnzpf2lj0kfa7l5"; + source = "0492q2l7yrv1h51x4swqzfp74k9kb989m0lxbgvgffh4gl7zhi5w"; + }; + ebgaramond-66604 = { + run = "067amcvp0bifrxyxsbkwj98g1j4m4mis3dyfm5faa6k53fpwzrgg"; + doc = "1sbi8vm5c1hlf65kh30r21vmy817y8i8i9l3h17ys7dfwi0d4f85"; + }; + ebgaramond-maths-52168 = { + run = "1n8xfa9qmxsrpy78h98x95wks24fck3mykq5n8x0qasi4fabclnx"; + doc = "1x4l9mi2cc1fx3qbis2ibshh5wlfn3sypxcrbcr9cwwhpkg07sqb"; + }; + ebong-67933 = { + run = "1skwh2sly6bckgc05b44cvl2pvn42y3970rvmnlh9xm2x5ql015g"; + doc = "0fa0kdipnn5hgfpjh8rz3l9zz97i94v45xmsxjgjn40xqnai3v27"; + }; + ebook-29466 = { + run = "1jy79jrf8cd1rljg9f3g0hzkihxkpybvbgjnkzd5y6cfz7zaynp4"; + doc = "13cj8a88qqgi6kl1d7kb0cizl4i2pjm51hqnz9q03249av3z377q"; + }; + ebproof-57544 = { + run = "12dqzyi84jlzm75d77crxbwv2nzyw8raypdj60bjrn6kifav7v0m"; + doc = "1d6g3v3hskgd9wrddkhf7qxg160n6qrfgzxfswajswk0kg2w3675"; + source = "130d3af0n0gjvnm0ad3g6pm8dy1w8zp0q7im3gv1kqbm7k5h0hny"; + }; + ebsthesis-15878 = { + run = "0vg8n4xrlxyjx88yzlsr82drlrigdnb870p0rxd1nv2ik2i1jzri"; + doc = "0gqh1zxb1w050a9dqnc5vhx1jgmk9kqk9k591s05xckidhnpp2v2"; + source = "0rg2bs23051ravdqv14k6yrrc993xpxf61zi8b94f0rjm3mg8f89"; + }; + ec-25033 = { + run = "0l9zf4zs8yw84x5rnyzaggz4idl4kmvj40c03jyxbsxsx6bi8jks"; + doc = "013w8hdsln91k13c3ilv36p4vp1263knkxf4m3hh6vaaqcr55aw9"; + }; + ecc-15878 = { + run = "0sa6f5dbq3p0nskxwy8namy7hckd9ihz4j440v06fyfk6wd2dxn8"; + doc = "0v95nvyv5ygfrwwr2mnaja7vxng3d5byglikkirympgqpkc59rv4"; + }; + ecclesiastic-38172 = { + run = "008agcka4wj694snynfgak1ycm49rbkwn3z58470adc4rwi99klf"; + doc = "1xmbxkmia5pcr2l5m3rd12qzpq92f75rcbipgpvck6sqpp7psc8j"; + source = "0c32d6fzzn090hi9nxdj3qbbhp4q11siziwr7m6lp2l285n91wj6"; + }; + ecgdraw-41617 = { + run = "09affkfqlsrjgn546h6fkbzi4y7dy9zgf4i5a8kw6lbgl631gvid"; + doc = "1m42ngbia5ilcx6hjd0xid07vdvxmrb2vd4qmzr8bzzflj2janhf"; + source = "0825jfxsmicfqv1amnjx69wmfw893pcdqihqx7vv6yd9xs4bqciy"; + }; + ecltree-15878 = { + run = "170bf0i0g2fnmmv9qh0jrdv7xn2xd5xmsw8dpvw8rbxfmn94l52b"; + doc = "016hlxjhfzn2pgcpxi7hw0wnfd25idp70jvig7p8614pvkv3bsby"; + }; + eco-29349 = { + run = "0vp39dva31kjs4ckqdy49smhicq4599mqly7y9d9xfz6gly6z9zh"; + doc = "1wb866ilp8hmxndqys1lpw6zb3l1nyl583z06vh8nfys1hp0x0m7"; + source = "1j3ik11vjxc1dahd0p7jdcjjqq9i89fnd9514s1lq5499h8jg159"; + }; + ecobiblatex-39233 = { + run = "0mrrb3bm54d6rpwg8i534wmwkh7v6qzysvd020pi5pph967lqp54"; + doc = "0mhwspy6k7ixjjxk5frwklasm0xzwbwk2lx684ikv195nrpb6y8b"; + }; + econ-bst-68761 = { + run = "1jhvw59f913d35dx6zxr42bcms0i0d12kxd832km50kqi08wb50m"; + doc = "1akyhlnd9g3rnw6kqi6cm4h0mrr1f3rbjii36z4qydl4gri4rvp0"; + }; + econlipsum-58390 = { + run = "0xca6dhbz49zxn58g5bc2yis2zci9v5iypfh3h53rxhlkbfbcqln"; + doc = "1pb6z051r40wp8rv5makhaxbf23aq5j5gm6pw1khvhk806rdig4w"; + source = "0j26l888qx5q5j39875iab4106fkn3ign9fmbcmcvf42yzx7mav9"; + }; + econometrics-39396 = { + run = "09zlc6943vf9r2n096x6s0xwbyl4lnpcv8a1hmn81s5czawkrqbs"; + doc = "1bv3m38gp92cdwhvpwrhs4p34hrmr8800js6myif4r52gnd1q4mb"; + }; + economic-32639 = { + run = "0jyw807d23b22md2ib7xkgi2jh4mr50pczjbsylh2gdgsplxgaw9"; + doc = "18jn833w1chbi0qamdxbrrp39945drslxd2jkzi2g8wcca7l5b71"; + }; + ecothesis-48007 = { + doc = "1avnq2y5l2bc2lkf2g16p2vh77dabv52jr6jrm4jfm1wdapc6fmq"; + }; + ecv-24928 = { + run = "1rvj3rf5vrjhqsz070id4i3l9svwsgclfhkjzxlb42va1bqxkcdk"; + doc = "0cp3h8pagsxpr0i28v8x9dh9j6imbprd2hxrl6ln2m75c9ki2wmk"; + source = "149jwhqpmfn6gwzkcqpilxp7hqnidjlvhi1khqxnvq3k947x33js"; + }; + eczar-57716 = { + run = "1hpwjxsr5n7f6zdc3ap00d9l4346yvavsy4wjicj41b1g7wl46v5"; + doc = "1hvw36i6szhia91xq2y2jzkngy0aawxw5azpa77026byqm8mrs2i"; + }; + ed-25231 = { + run = "0wb34cch7jfgvfql5jy6vvfalj9bv6pjyd9dg2i9msq1azvrjjv4"; + doc = "09kn8cykfsyk14g428v72l2ppwffcdrrycnyl65kixv8hj0vsdy6"; + source = "0ldjyl7gpa5fswzabzmklkwmz94z8al7pm97hh0yjzdqgjxfsdbx"; + }; + edfnotes-21540 = { + run = "0aljhm0wiks5v2s9qkwbp0ma8p6230ahsyr38w9akwy4j9ziiq75"; + doc = "1260dir3aba5wv12a4xidx6ld0vizl7n9m7agwrkmbanpzcqscf4"; + source = "0wm2hynpa4xk464rl5ikxdh5p71mp2cwzac2xl582q8fik7vjx0s"; + }; + edichokey-56223 = { + run = "0c4hwpvassgrlycrjygwywp6ws91vhhb2wq1jwdla8x3sk7hkdr4"; + doc = "1b79022plz2a6gbf1grrcg4j6794fd0a45lmq68lci64mz33b66n"; + }; + edmac-61719 = { + run = "0cvxirrcf7qxa1a6r4fzklqrmala7pdj9i8wywapy0anak8lpd9d"; + doc = "1s33bml7f2lsfrj3fprpazjgjiyiblfcjr554fwq8aadsvgz2xxy"; + source = "0hywrvvxaqb52hd29r0dkixj9fcczhr8b1rj6wxj3wcgdcbfhlm0"; + }; + edmargin-27599 = { + run = "19dmfw76l03v87igfhmh81kbfsp5zbznk62vqpanpppspchlx7p8"; + doc = "0v9lbfynw840xampn4sgxmq413357wjwjr5slzrlpv9mh1f8z0jr"; + source = "00b7b5c4n7baw4c973d0b3d4gzkr5k7m4xj258sw2bhfgaqnrjd0"; + }; + eemeir-15878 = { + run = "0hxnd2rxrm56vblrkvg01c1pf5gccbmvd9lvrwlch89flxp3fiyd"; + doc = "1s576bk99sw867ywkq1qhk31yycc19zqr34ry2zix25cs3hk4pia"; + source = "01z6p0ndp3nc3pbbwchchfn9nlk86kp35qvb5hkqb3ha59wlfyzs"; + }; + eepic-15878 = { + run = "07hg546cp5ab7x4zq25m7z184mvg7hyql7dsbwvgpq6hyz5pqzyq"; + doc = "13v8n27iw1b7qvs3baqqyls9cp2mqbycrbax7jnr8mfvp83jmpkz"; + }; + efbox-33236 = { + run = "1jss3bkgyl365rkgzil7xp4pab8k00w57p60s2sh8wrdy10qjsda"; + doc = "051s9yc05ai0yipwm5f5kdqxgiyiyzmzyxf8rbfwl9ir90k84fq8"; + source = "0fcrnrfk6yrdhj25xmchlaimc5qqyhri287b9pwdwsxlr58wgx9c"; + }; + egameps-15878 = { + run = "0y6naagmi9qii1k4qcp4svczxy5vbramd9wg1ixr8xckp806kn58"; + doc = "0i36znlwls01ch6kns5ikw90nbq68pn71gpvfizf0x9ipymqwisl"; + }; + egpeirce-66924 = { + run = "1ld3k182k7m17pixv2acn4dzlcrkj973y2xjbw653xhs2g3mr1va"; + doc = "1mldpazfnldk4q0r0ddd9rdg9ar6fvabqfb3r2g5c0aff5v2p30h"; + }; + egplot-20617 = { + run = "06i2jh1srww8111c2axcwn2lcs7lwdgp7npn2qpi2x7g38i2kkzv"; + doc = "1silqbylbkxfyzacmyvc3kf8g3md8931ax1s877p5x5zi0vpwbz5"; + source = "0qsyqhmx0gcl13hlhbia9rq82kkkhc6mhmzp56g9b62qy2wl1ss8"; + }; + ehhline-54676 = { + run = "11db4dh948g744bynf1ydlg6jk562picrzfbh5pszxvfdag91kar"; + doc = "18jr25hnp8hg3dbjgf16cskdhm6kx9nxliiggqixb7c1ii6mmn2v"; + }; + eiad-15878 = { + run = "15l4wi5hfbx8lp91jddxwg073z0r42qf93kvrqv7bwhqisk36x2g"; + doc = "074iirkf7fzdxik5yq4jjk2p8c5k9jj8a6n178aw767j18h4n2n1"; + }; + eiad-ltx-15878 = { + run = "1ifiigww9nk6hw342qj1rxzl2b94f54cm4vvrpffxy9qggwkd2zx"; + doc = "1h4cm5b0mllqflsgfcjdh97zn3nn3d9gwa55w5kyimmxgz516mng"; + source = "1bpy6f6d81n95x81rgpz2r1vzg9gw04309shnx8a9jsx17fnm4nk"; + }; + eijkhout-15878 = { + run = "00y3y01jpgzww1x6zjh748hpvizlrbgrv04p8aq3cm2pzs0g17qk"; + }; + einfart-70318 = { + run = "0nkp5ixkdcl46mnr4kny7cnwrpy3zi1hmiaqymcgxgg368dx88cd"; + doc = "0bvfhvxy4jlx2f4nzy5a7civ8qkbk57h3fskhnczyyxq4ricvhin"; + }; + ejpecp-60950 = { + run = "111sr2lnp3b8hh0hyvdf3zv6nr3m2ghl8j2zklq0fdimm7ndmqcw"; + doc = "14ww6ilq1l8f8i4fcafl4v0im39gajkr5189180lbrim6wk8gys9"; + source = "14223kfrwhi1hby3lqadp70pn9ykagf1cwgqhapm5856iai4ravi"; + }; + ekaia-49594 = { + run = "009wk5qyv26rdi9gjbaqxcpsyzz6l5w8b0wrg9avspq81hrjkg9h"; + doc = "1rbcnilarzap8kdsvypjwin1d13xskqq33wg6p0p02b8gaxzf3a8"; + source = "15fl2jhhv01vl7ggwmddpldkmwdj6gj99851aczv47lj24w093bc"; + }; + ekdosis-69568 = { + run = "0drs97iqw8018m15hls6kg222r0jiyqg4n9ksrgrl9g2sd25h65d"; + doc = "1x177sag8ki0pqsbvs6vjk07zf45wg8fmq9s50v8y4qc0pn5xa4v"; + source = "1l6d4a4smjmily8mf6rlx4j5354jrpax15iggzqm1ncspygj0mfd"; + }; + ektype-tanka-63255 = { + run = "0qnkc2i6zxhx0i5mqx57qf7792ffg246yxcm14g1fa1nlryhdqwd"; + doc = "1cmsd75pzv0bfr9y868cbpxx39ixs64pc2i8dsi6k90wfzq2bq55"; + }; + elbioimp-21758 = { + run = "1vfg29q8b20zi9lhn9nsr55hgx710ysk0dvfqpipqjf53fjsp0gs"; + doc = "066g7g84fna6wy1slyh2sp9hmwjhp57hc3qf59gj5mwqvaaym8bc"; + source = "1ysvjlmik0kclmcdf738vhl7xigsq8c6lqpgl3z2daarlqx6b8c1"; + }; + electrum-19705 = { + run = "0ckfb8xq10bx44zfdjy1p1hfcw18mlfli8zgjks81kfsgv7hzfxj"; + doc = "12mq0mn56xi4h8dwnfnlhg0bn7qn6b6wxx20nqd73qgm0p1h945s"; + source = "12ys4fdn1kyml62rcwpb424l86kspnzb5xq850ppbb82ng4146js"; + }; + eledform-38114 = { + run = "04sd6m6ay9iav3scf72i6id726gn12qgv19hbaav7dvbkx73s10c"; + doc = "0f8inf12l7f8cg51adr269qs9zc0imsk9g08zh793aarvrpfh4gm"; + source = "13phf594kj5a9ql14wvd7pzi3vcrwg61lmc4fb7079j2xpx7drmk"; + }; + eledmac-45418 = { + run = "01is22hyay4xl1bp58g08kn99478fz5l22xdlbaqyr5yg0k4rgmc"; + doc = "0x2h38mlixff4yacqrvz7k4q57cwigal3x10f3k4qdr91q9frd24"; + source = "00pkybywz4j1qcki9gv9mfxqvm6q3m60b4lj2ms44c4mric77wk7"; + }; + elements-61792 = { + run = "0a3dzg3d1wz1zni57k8gibrxczjg0k16vqqkbwcd509blwxgps4r"; + doc = "174467pvz1q4d72z215pni50084ywddfvf8c36ibagijpdvrym08"; + }; + ellipse-39025 = { + run = "0hp6gm0na1gjxdjivxgakbkrq48mp9zblbfxxw68l2aa4jm1x1a6"; + doc = "0invkczwak9b89n6w8ny9bh1mg7amk418cf6b0552pb5rpkbby8m"; + source = "0143mncfyss0cyzq0aim8lvzxhq5q8a0cpsh92llqjl19s30d3fd"; + }; + ellipsis-55418 = { + run = "1zbasvm792cghiji6gkg27ixjx7ms46rgqbi3wphpm9dix9296ap"; + doc = "1w9hp2k4qvhg5275iq5kq79ws5z6i7jb1536h0qrznm0lkw33c4y"; + source = "1z8f3x734nc364gybhslxzvvv4502a29dmb4nlz39hm0kzgqq3h9"; + }; + elmath-15878 = { + run = "04vacr9c71nmrbq6hnhpcgk8g75jzdvwf6z513mqabr9d0gf84l5"; + doc = "1da0lrbzy598yy9jisjq0yk2qfjfiqpj32l1v63l3x7dff6yi4dn"; + source = "19q44k909mkxrwsqx4zvraa8cv8jbq8z46xnm53agk0jr94bpiqk"; + }; + elocalloc-42712 = { + run = "0jj85nyrq2y7w7pm9pq8qdj3xszg5s3a1j8zx2dvsy6a1s7mzd8i"; + doc = "0rgf8vijb0dl48x4rwbzg7gd1apjs7vwl8rj7zyv60vx53zzkp5i"; + source = "100hs4drnz5jy657crs8g62281sbgza7k78pvk1qfds2y8la2968"; + }; + elpres-60209 = { + run = "0k8jcp6bgzphlg6kh0krlm95d2rq9z90hscsncq1m236hrzfad3b"; + doc = "0k6ygcd10q78h9f28y091l171bmaw7ibk9npi3kpx33vmass118a"; + }; + els-cas-templates-62931 = { + run = "0lk027m6s6z877lilqv8sq3s5xcmmqqhlhrh8p1kaalw01g53hy2"; + doc = "080sa0kls4w4p8lgvahk5an8p6lmkf5kywbzj1wx4n5mqsj5mpcn"; + }; + elsarticle-56999 = { + run = "1jjayypcaczxw69dk3v69fj31apics2356l934kmag49rwfzxail"; + doc = "0z7iywirs24112fmdl8fm818320s3ilqlgc7xi6nl4idjakhfmi7"; + source = "03pw09cw4hd0ixfa88mj7bijj9r3b6a6kg53q4hzzzl97bf6v5yc"; + }; + elteiktdk-66821 = { + run = "010vxx6ddmbcj004a9f17wq6a9myx7hfvnmas1b6qsch6ln99wdn"; + doc = "0d9fq58svc80kx557kmqa7dfz787zbzhpaifswkh2f0a327f47is"; + }; + elteikthesis-66820 = { + run = "1xrilac7n04s28ww54pdl6zn2dwnwl1lqc7xzhqkrinbfxgchg03"; + doc = "1pkkwbb4ialcmjbcyv82psq6g5qyzxg8hgvgp2n0xybvvxh4z7mn"; + }; + eltex-15878 = { + run = "0k782lxa85dsmqbcw5q8gdny1lygfsv5h2d1d70f6y0df17r57ad"; + doc = "1hshzr96sn318b7ssv6f5md23v997xahm2232c3kns3rzpfssy21"; + }; + elvish-15878 = { + run = "0hz3cfydpm0sq6s2xp8q44k81xxhqm5mmrx5aqn5wzm0kr52pmsy"; + doc = "1zzzqgs30gbhy8ja13zq9b2s6mf1m47ms5rp33jc5xp70w5cjp45"; + }; + elzcards-51894 = { + run = "14vd8vnnss12flbszsg8357831r986pk7hhpcwqln53r6x5kd543"; + doc = "084zcf7dqig379cqc6ahiqkm8f5jwqgiizd6h5ki28pcbshi49rr"; + source = "1ipavy4km50d8larywyb63dldmawawzfw3x6m5nzvi70zkx1f6rw"; + }; + emarks-24504 = { + run = "1qf1qrbw2fsxc137g8dfsx1c202ylvg2ijdwcmxq1fv1pd2zjjwz"; + doc = "00fkdarm7i16vlmjzvjpkyp5v4mbdc6isv12g07shx3nz5v4zgp5"; + source = "1lznlfqhcwd3r8dp4cix5jav3dq63v4wspr1ks3pm0bkycy8wr5a"; + }; + embedall-51177 = { + run = "1078qszq99jdcy2vsaxmg1fbnr9fdbd32y5lyxl4bwl0ja62m459"; + doc = "1c17d4bpzxws6j9z5p7x97zfggyzyadfjygbhi7ykfiy55qywhdd"; + source = "02vdmjb6vqvqmfq7fhn5gb09x2lzpmrfhx6dspv33wmwzv99kzr0"; + }; + embedfile-65528 = { + run = "179a168b71h8zkdcfr7krcm2addbin9chckaczj8a8ayy6xr294l"; + doc = "0iqg1lbr1fb6ckdqbzyml5qwpdnr606fmhfgvxvzb71kn239cg8i"; + source = "1kc65i68h4nd9q1fj2sl094n6q0js47h6bh00677a89kgjxvpzr3"; + }; + embrac-57814 = { + run = "0n2ll7mxgw228qb3j0x111yyiaa4ikq4797g5k8xyakjmv0w3sv0"; + doc = "1lqapcz7iv8z7df7cyddg6ylh2b61ndgbfhnfa8abzgsqz1h8sjy"; + }; + emf-42023 = { + run = "1w7whsff28cf3p0i8hii1lklb8i541di3g4z5iv2rfm4xa5m6i2s"; + doc = "04qq6ljidaqs2i4lxp3m1varm232rhd026qirvr8q10vpkd6grad"; + }; + emisa-60068 = { + run = "120aa7a4m1psqx3wclwzghq0fcyxs8djlf79mp2ds56y0mpsqx5m"; + doc = "132h5m80s24w51px615di388r7wkkqp8ihwapdz770p5pywk3c2r"; + source = "1pspisyb3pxj2nfkpzzxc7pghackbl1p9dwbr5iqzwwv37bxjgli"; + }; + emo-66944 = { + run = "07df21ziq1ajpmff74w5vcsvh0kd2dx7vc7q61syqr2yqvj635cq"; + doc = "130zqvzv94hi0h5m742kn7vc8110cwjd3b59dxdpihm76gqpa9zh"; + source = "0hy6pvyxg0k478lpdfirb92mx28w27dxzms5al3pjq1mhr04bmf7"; + }; + emoji-59961 = { + run = "1pzx221zrczj26pdw6ijai6m73zgbz6z14d5wlhv7albrh4ppxgs"; + doc = "1531y2a3dfmv2y2xa7xi0dpdkh61skk5makiyzs8mz3zl19n8nkg"; + }; + emojicite-55131 = { + run = "08y8qg37m8b3qf2wkbg802kmx359i6ki445ljjnxybs7apvxjpn5"; + doc = "1iwlxc5ygq7l4qag7yxxas0rpcywmjcv5pcayrk5mz34xr06x5f8"; + }; + emotion-69881 = { + run = "14rnlr65ilyf9mirbddf9vkm30333yyyyd53fjynpq9h0hqrlgxy"; + doc = "026yggkjkkvsq04k232a6p31wvj2zxravn13l5ijxs5z66hh3svp"; + }; + emp-23483 = { + run = "13iaipg8n1njzbnd8s622irizd4cc1cbkyc735mplvwq10q2jxqq"; + doc = "148l1xq42avnf5gz1sqjcdprnkcbgsii3fm1jiamx18175zygsdc"; + source = "023jc6v2l580x2d480x11z6rlknjjvx8g3qkcrvdi778h5m5bb94"; + }; + emptypage-18064 = { + run = "10h1mlhk0841wgc70hp51jnah14si7rf2mwpkp8lfc1xr7jwwvi8"; + doc = "00l43lhrr246hiwa717b72rc4ignqd3kljkw6ka3l8z1nzbcbni6"; + source = "16nzgkvl9gqsnhx38dp71c3cz5rrgm73n99g2vg7rapg0vb623xi"; + }; + emulateapj-28469 = { + run = "11yv57sv6ys3g8h2ix5xjnjrbnyfvcma4i7vzdsj160rzi12n06v"; + doc = "15zm7jqpk917l1r2qfkqdkbsxa2q7w4640h9115v4jis0zwgj0s9"; + }; + enctex-34957 = { + run = "02a26lzlkkw3dabxci7w77117n2bagsdk5rlcn4cps45xdbjqikj"; + doc = "068qh474lirr3yzh8ggpavqsmzdv5yvlc1i93f5cx49cd9j7dm0w"; + }; + encxvlna-34087 = { + run = "165xjggnbpc9baj9xbdkxzxsb9gdsxffmakffw0gzp82acxgfwsv"; + doc = "0jc0wlhmc7f1vrabzk6ql62iian2n8s32r2crq34w2cjglmf69xj"; + }; + endfloat-57090 = { + run = "1vqy4ii3dz79ffpjc5n234z9v0lqpkq93vla0lbq0791h71gv53d"; + doc = "0y3hkihs6pc0g835nk21qj8v3g27f6rrvadwmvqkhchvgh02bwnl"; + source = "0mdr1ga2p1ikbcs0zzznb1c89n8shrha87qm49sgzbj4d0f2gdbx"; + }; + endheads-43750 = { + run = "15dkd3ky14phrc9cndisa88vbmcp48wly8l27k4wvbbd0221rxwr"; + doc = "0yp1rm4ly2005mw488yscrgc0y8awsis83wwcfh3qh8rcgm8jzhy"; + source = "0578fyav3h5wz40c12r3rqzbsba7vqvk0r5jlw6wymk2m9n9n5np"; + }; + endiagram-34486 = { + run = "0vgyl6rbgrq0jslb5k1796hlnzxjpavl5ab6vj6zizinr2rvh0dc"; + doc = "1gz8ri82sx9nn2adb7sv434im46cb0ld9r4j9fz07kqn6gxzzr2j"; + }; + endnotes-53319 = { + run = "0hm5mwxdvxhj9v51y88g6mm5fs9p2kaksmhps032cbc1inn5asj6"; + doc = "0354v4klgz5yn1v9hkk3zpvv3x1l4b6jzla7iwxpnk9qb0bvfh4g"; + }; + endnotes-hy-54758 = { + run = "194n7n7xcjpsxijzsjpgsxrpshilki0ixkwlbn6hxd92jjq7amz7"; + doc = "1mj4lfvn86676s3sv0v3hx07cjb4mm3j3i3swwzxg0i48acpch52"; + source = "1qhf4zzhk7kf0wcpacl82przkcf7g8z6jwirrzlwd39876jmhbwk"; + }; + endnotesj-47703 = { + run = "1rjraz5m7zqyj1j7c640ngxv7i73d03xh5wsmcaakc10h36n3pyr"; + doc = "1sss0shcnz2knzghjqw41s17v0bs7dfcmg6x566fdwdm4mdg4dkv"; + }; + endofproofwd-55643 = { + run = "1dz3kfsjalq9419l9sdjws5bjisy8pmy93my8m8acdf3d4ryr11x"; + doc = "1m5wq64v14cz4i29smnw742ak6sraxq9rzwcqkg40vgzsss73lxc"; + }; + engpron-16558 = { + run = "1jxk1j23v2c2ffqp9x948gkjkqvifp9lhd1wlp2nhmr4k0k3pgmq"; + doc = "1j580xz1jgw088xah57zv8mrn3wgm6xipj1jf3c0rxyd3fkkk29v"; + source = "0gg46lfqprs6jr2dgpa1c882wz9k8jjzrs281npy8hk4hhqgrg0y"; + }; + engrec-15878 = { + run = "18qzqg4i4f2dcpqdw4zs9lk8cxlxxn01wbh8a275wiaqj5fi7hzn"; + doc = "038a925h1047a8wnwm54mmyq12332waxx8nbrg9m3pacr45hwmgy"; + source = "0x32a3cgh7pidln750qbwxl7bkzcjwj4brxbqmhyfydnhzw1xzar"; + }; + engtlc-28571 = { + run = "14lz7dw8wgksbihdvga2yyqa3qxbs382s5pzrfycx9z7503dfy0w"; + doc = "04lv0x4psfpivxfx5asf40pn0d80cwfwc1pwl21jxihdvc6jhihf"; + }; + enigma-29802 = { + run = "0cl7a0xh9y1lg55wdkj03n3ayyb0853nad04fpgjla6z9c9l1lrm"; + doc = "1cnbi0n8pw2m8xvxk51j4rlyvj112cdz5zjhc9n8znj25iva8in1"; + }; + enotez-61490 = { + run = "1nxn52jbgxp2r1zlyp3hmr0k5kwilmf8fkr46scnh9w1ijxxmmp8"; + doc = "1jw2mbyz3xnshrb031b6xzycqckpn422rc1ddrdj7r2j5lzy7l2n"; + }; + enumitem-51423 = { + run = "0hp6sk3i0a1jwwvlr0lk4w75fc57c2fvqw9x5ir8db049380ixyp"; + doc = "1byxv6d9g38fhd83f4g23yqha8nvr5iv6lv97w40jn58i492dyrq"; + }; + enumitem-zref-21472 = { + run = "1isvqbp7wvib81r0yn7sngxa2dygkfm4jn4rdvw0kp8rknam91qh"; + doc = "12ffsw4mzwg8gnw264kvc9gpxcmrhda5pwfyml2ih50g1dj6fwv0"; + source = "02y3rlxcsdmafy4n4iiaz2j3syg5x7bzwzfvfk87xxg0n3bvahl6"; + }; + envbig-15878 = { + run = "1szn3ngy2iwzbc9y5fpchr5vpx5alr908q8bfg94lylmb8lx2kb2"; + doc = "1y778gc6wl11afjjv2szypc8jf1g7gg2s0lvhv2skl1n3wpb3x7a"; + }; + environ-56615 = { + run = "0in2a7ar0c6ji7qhrbgp4bglcr2cmb9imxch8fcrwkims4g3vjp3"; + doc = "1pb6nmprhz3j9dx2h7sw0y66y1qlvhkjl3ip28bxa133fgqab148"; + source = "1jkbi2g2s13rngwqvr435i9n94ycnzp9xa8szik0nnmj482ah2hn"; + }; + envlab-61937 = { + run = "0q84vy7zbjqrrvy0r2j2hpbg9b5vwbwk860q24azms2zxy50a8vd"; + doc = "16fnyfvvixp6lfgvz32w92q35s21c92556qxbgpcd94fd1pw2bki"; + source = "1fygp7wpyzhzh070sa61qk17h05rqr4m1wqp78vpp0awgkmdji56"; + }; + eolang-69868 = { + run = "0hwp6yq1zw4hilh8zygcm8dc74mnr5hhn2x4gi6q2b6p43pqkip1"; + doc = "193rv7lfnmfhbfpaw8ayz0di2iq83i5479wgca12zdcin54hhi97"; + source = "1gqsl2b3aw485d2g7sblr9wi28sfq7by3y0kcj0pf9rpzzw6m7nn"; + }; + epigrafica-17210 = { + run = "1kawqgy9kbr535q1v84kk29q2fwhg6yzmgjd5i7dyg06cy0g6rci"; + doc = "06ichmfivx1v2y67f5nxx02v75wzci6m3hhg87kc4qik61yp8lgw"; + }; + epigram-20513 = { + run = "1zps5067mgi7xq3fpjvjln8i0rz53j7qn660khraq8ribv4glnpf"; + }; + epigraph-54857 = { + run = "1lb4wzjcag59dcfvizvng9s47v3x2af6v62hc1x3ck3fqzx9haa4"; + doc = "1h13sgi2bxknx2m5kxxlv9p4fxf1pxh1zdwm98h3kamzb4a4gm81"; + source = "0kqfrmx732m0a6k21iiq1ar47ff50ri3f5wy8ib6ssbbvd9agx4l"; + }; + epigraph-keys-61719 = { + run = "0p4m2z9v0ckjncy5mpfs85nzpzzi9lx30a4dh6rjkhgmnk574n6m"; + doc = "0gd3mcw13r3245dmd3fsgyww30f4anwff6vj14xsy75zcs9k0ywy"; + }; + epiolmec-15878 = { + run = "0wn2pi3n9ls945i4v3x36kgg34sqhi1x4az5gq6lbvviin4lnrvf"; + doc = "1j9n7g9z2wbbq04wh2x0cxx7m4zggh1scblwrx9g69sd8r0b7582"; + source = "0qairwq1jfl5jrkrwlblmsc9gb34wpanz61zmsawz94yf3plwxxs"; + }; + eplain-64721 = { + run = "1nix31pjj4licp1145dk4vpbz5zsfiwabmj5jzgxvx883wbkwrnm"; + doc = "1b9w6gj4656bj0q622w75ar7a40qf6s8bsr4nfjb6a53nh8ga6n3"; + source = "1kncsw127i87d7cq1wz3nhsghq9nf0h3dwxhmdbki96wskgw8bgl"; + }; + epsdice-15878 = { + run = "02i2fv7c0kxg9d96k8gwcvm56vd4rjkndc68k1x2wa19f1ymsmi4"; + doc = "1cxrwbnrfg161ddc707msjya678fvvmvgsrrigdzmqrngpi7vh61"; + source = "0nj3d8nqc8x41lmqmicqf67wc4wirg0q0djzi0nbk77g2m1qjs0l"; + }; + epsf-21461 = { + run = "1i973a2hp5ms1lzgf3g2b73j34xymak9f8wz88fqczcvdfnnag2g"; + doc = "0d6jhhvw882kq9l2a4vrfrnxxvkidfjkmp3zm7kj1ir8mk9qvva2"; + }; + epsf-dvipdfmx-35575 = { + run = "1p0syahj7liknn447lb83p2rdv8xazpgabk39rjxga05pfn3csh5"; + doc = "192x6cg0dh0j9dknwb320g73hid9px635p79idr33x2zq3gaaw4r"; + }; + epsincl-29349 = { + run = "0cmjwns5hnlqi1rk6py4s07kbgflm046pycpr1lr5c1dacmiycxj"; + doc = "06cyyhnphdxigpq4bkg28rx8h9kgmb3ywpbdak6v6ivvlksxgnaa"; + }; + epslatex-fr-19440 = { + doc = "1xs9977g9g3i6sipkf7i9jdl8sdm69ci3161a4p7k66qbizi7zvb"; + }; + epspdf-66115 = { + run = "1yjga00imbdfjqdqnfl9k4dhyacqq7c3i814pn5a5fz5bbyv66qm"; + doc = "038fw9ycr0wpaq2z2cwid80lizl6vvj5q0i4bnx4lgxkfa82i92z"; + }; + epspdfconversion-18703 = { + run = "0arf6kmziarh1sgani0bnp2jm8psxj937hrkaslfj8fm2s46gcmz"; + doc = "1xpj5lymdh9w2ary36sx66ib0hwbjfbbhhcipdq4nkikq7a8zmpg"; + }; + epstopdf-68301 = { + run = "0rqfnd8x45m923lr4fwysxk3icgnpmzrdj2w0gif0dg4m1d8sggs"; + doc = "1kjqzi001nxbrikxvc9l3fpc0pz7zhmknqghwd8423flym610vv9"; + }; + epstopdf-pkg-53546 = { + run = "1bd7bkkk5hbp0bfzrvjpmfrrvil9i2pzmzl7aaa324q7w4f1w67k"; + doc = "1lwv6av0b4v4vzzk3i27diw42hcdqzgvis1fk4fclkyqz7w0ai4d"; + source = "1qmvc299bzgfrf31sa4027rgkq3yjg57318mbx4gl4cwznxr7zh0"; + }; + eq-pin2corr-59477 = { + run = "10wrhqr55r45azk4z840wphwsfcm6mamzafijqgldi2g90cp0hsf"; + doc = "0ii5dnaw1lplccp18gjkixxsygacz44r834r0vaxfkjmcbx858yw"; + source = "0l6p9bwaszyzj794vvyw3xq8nfaypxb04ixf25wniyg3kr54a9nv"; + }; + eqell-22931 = { + run = "0i0n1vb43vq2axghik3sbs2cja2fi78jl0q5xcrkbn5gr6vi49md"; + doc = "044bm3jyll74jrxh8va8g38shjn3b7wzchjq39n4rjp3238wirsm"; + }; + eqexpl-63629 = { + run = "0d97dysvgyk2cr2w9xaq5ipgkx3i33jq5x4mak8pq65bgbpl5dhx"; + doc = "1nkg2qp7lg282rpf1ds5gm43gnnylwf4df3ziikssjf9pnamp7pw"; + }; + eqlist-32257 = { + run = "1cxas8g683y4i22rdakgji1r282mivmnap2l0b80rv3adg3ccvrl"; + doc = "11lbz2s5v35w13vvcf2bs4y59hsdd0haai1244jqswyfxgamybgg"; + source = "1lw20i1iqb0lxqpv2g7dw62ff4xd8w8k4y2ccpqmsb987sk223d0"; + }; + eqnalign-43278 = { + run = "0214pwf689rj7ycjzrafkhpj1rrn74h043vryihyscci03lf46fs"; + doc = "128yh629nnxn2ca799s9zxbvbp0zam1lrz8nciinfbb10m8igwv9"; + source = "0pdzvs4hyyxr229jlcw7766qd4npasc676hf74nx0msxwm5iq2yr"; + }; + eqname-20678 = { + run = "1qryjgmn2cw2indmmybgzrcrakqi6a3crvdcyvj769mciz8lsdwy"; + }; + eqnarray-20641 = { + run = "13vm2xqfm36a1fpljchnmjnl6m4fia8x5bia0h0yxh7yw740vbzv"; + doc = "05vh8d0yyqhn7d45ykrql4dbn07f8yh4jmr6qmx1mkhyiz44c9x6"; + source = "109ds6zn3nl17kb4z6m1xpa5ds2iwqaxqbf5jmw54547wv34havy"; + }; + eqnnumwarn-45511 = { + run = "1mv50r9g43si8kmdmf3kgcjmw10kzipq67ssd3vllja4pn9yzmz6"; + doc = "1ypvd357npccz8vbbq8ss92cmxphq16isvw4ax0ppgxp2bh7cr4g"; + }; + eqparbox-45215 = { + run = "1bg49m7nzw20g2g51g07d7sgq0sjiisrbaq4ca31qbybr2rxcp12"; + doc = "0z86nwj06zn55gk32wwlxbqfb12a1fcgqizrpagm7yp0xr99b8wm"; + source = "1ny9mcnb76yds4l7q35wdm0x2vzia80aaqr12idybkzi75a7b2yp"; + }; + erdc-15878 = { + run = "02sf80cadhv7if8arbjcsgqkb0hhdrlpq6izqgcai6vb7xsc6niy"; + doc = "0nv1yqxjmp4mfksmxm373pmy3zzbfcfvi683dalpslzq2qyz20yv"; + source = "1vpghcpm9a2pvi3plh7pjki7sna3hkzvq2xj9gzmhqxcpw3jskwx"; + }; + erewhon-63312 = { + run = "1nw8y88z39wm0f312a8r0hwmdy85nynrpq8k78l1iabq9i03316h"; + doc = "0wp19ficxpgay4bbs1hg3yrxmy2hlslgyawa03naaxpy1jysx8pw"; + }; + erewhon-math-70336 = { + run = "15yd3rjhv52kplikvmp6fax8im2250lb15s9hh61c4f4a7i79pia"; + doc = "1yxzf17irczchn6chiyp0hkllq849ivlb7b7g17g61b6gwz0jd1j"; + }; + errata-42428 = { + run = "0hp8pls350swslim7m3cpnw23v94vnqj9avfvx9hq0bgl99szc5c"; + doc = "0h30iip57km31074cya5fyhlmyamix8anpk19rqbsfb43h3988g8"; + source = "00bdq20dwwmq0nw3c271ah0bclzkzkwbr5ak4y9asnab1g6fl5yw"; + }; + erw-l3-61799 = { + run = "0klwkq6x58bhqgc849yv68vg7w8ivvzib8rl84ipf3gl1hk42761"; + doc = "0qkg31gi4jhgvc3i42cbj00ccavwrxfmygngn8qxfgmsphx3a41z"; + source = "08lh56xzj3wjh1dp72ky8ckga8k73d3alf0vxjkwb6b6krzz4gm9"; + }; + es-tex-faq-15878 = { + doc = "0wp5jx1qs4yp3y4qpwqhpw7rnilw3vb2z5xb4lzwph6zw27jf6sd"; + }; + esami-67707 = { + run = "143pdgx8lscxhpbh87pwg57m01pcmax0h46g6f3cqixcdvfh0qp9"; + doc = "146jgm694cvw7wn15q1p2ghzspb1hlr5hxv1ddb89mgkgviqx3iy"; + }; + esdiff-21385 = { + run = "0p5d89r6pzsf0hzaky89843pa4z2n4dgq3yg8li4gb5m2b4fjfkg"; + doc = "0jw4rhkshni47zdk18b3gd4amyhh6v9a1mgja58wmp2vrwv1nn2f"; + source = "0iwkbkmkl31wmdrd1wapd94p70mwd45lqld3b7pfb0j287nzkzl6"; + }; + esieecv-59638 = { + run = "19vmccxpv3dp1ysicrj5sr6xrsqgaaz9109q3gf79gdvcfp0g7lm"; + doc = "0ji6pf8b2c3ka17n4qgnykfwhy7nh3zp87cg913j3rah0zk6fqzw"; + source = "0r10sipb7hd5dpzsh97qiqb5adx5j6iw2aly49f1w0l8pxi0fyyn"; + }; + esindex-52342 = { + run = "1vxdlbqc3j33gdvy04pifd0cdfvnjwmpqbmz305g79733hvlbw55"; + doc = "059y8wnnzqn1kfy5jhbpk8zi4lgx7r5s6xg6b7x3iih1ccdyhwma"; + }; + esint-52240 = { + run = "1i9bmx7sk3fzzdb1ny4a9b3sq9mjjk2x78gk18y77rxq16d2bjnr"; + doc = "1sdklwvw46yj8xbli4yl6qqp5jdm9a32fkspk72p5186swwkwnc9"; + source = "0j4ms51a3qzk7mrc9vh5psk83jxnlh5xa8vq36y9iihha0d6rz6x"; + }; + esint-type1-15878 = { + run = "0nfvka430084h72w0gdlvbxxlay9lp5z76bckmr5vd1vqi4jz8kn"; + doc = "0lp2hc76adxdl44nn4g8hb19cflndzg9ir004di3wggh6s2yx40a"; + }; + esk-18115 = { + run = "007jcqvxp41h0ky25mgn2k3qdvyiyr3vj9mn6ml1zsvy1ymxq4dj"; + doc = "075wb7q7z5idhqh39isvkacpgacfcv966af904yk9ralin5fwbr0"; + source = "022n8rh8rwn9y4yx1rqpdynw2lpm8npwd45y88r2q29qcd9f62qb"; + }; + eskd-15878 = { + run = "0cpaix3x3qw5mgaim5574pc39hypi42kmk7yvnbvf3qj5bv7jkyz"; + doc = "1zwpxmr721b3ij4b4zvkncddy85d9s9ma7llajp36qh4vl0bc0cf"; + source = "1kfyrzs1swin4ph70ifm1mnsm77dprd96rsw228liq1cybn5bgii"; + }; + eskdx-29235 = { + run = "0h11378qh1y4c4ac3vd9pcl93a09kpsh0vyqcg7mfn01dgmqfam1"; + doc = "19bcl4szagigbd2jrlz60vhhphm86667chciwlk05k6hkflg595w"; + }; + eso-pic-67001 = { + run = "1j340mj5ccfb5z28dcgs76jv05yv2vkfqxszzkd2xg4jkzpy0479"; + doc = "11qlj80gnfqw496r5xa6fg34cmp6sf33k1drg4cpq23y9slrwd24"; + source = "1gh64sql402fcg5k6w19pkx4n3g1aviw006yp1zdaa3wqnl1skly"; + }; + esrelation-37236 = { + run = "1gjwrnd63bb66vy7f74alxshcr5pqz8g8q178wkgyrm37xql6kni"; + doc = "1nnwpgjy0mzc2h7sp2igqwain2nz6374qn4mjvj6g8x02lkc1hsa"; + source = "0aqb63mzvx5hl178kmy6aawyv5ri8favficfjjmkpq3d4hgnrwl8"; + }; + esstix-22426 = { + run = "1qqs88wpabdx0y92md1w8klmk7ncbpm2jqmi0j5sj1c2cn82mp1a"; + doc = "1zzbwvv8lbd27cxafj6qc5sml4r44ymrdvaqn2h966alzga9ify2"; + }; + estcpmm-17335 = { + run = "1v027r6j4vxxvdccq83irjdj1gf6kzy5i9jb1bhsv7c2gdf3ihyx"; + doc = "03q3z9if5hswrr086zi907xmjaijh266l5g9a140q0fivjai4hcx"; + source = "1qb1v30ijky1xhh5dahgprp3fhxfm6kvlxgb059429idvm5ap90g"; + }; + esvect-32098 = { + run = "0fgcy91ypllj3i706znwwzri36ja2ca2inx838q08zbs8gqq4zah"; + doc = "00xpfzzhyrh5p563faa7ks0vrrc08ndcpn72a72jmlhk8y8bn7sb"; + source = "1han75c642d3qmr47ppn11f7q1lnz8lcwj3q39nh1f81vi2w6li8"; + }; + etaremune-15878 = { + run = "1l3xz9zh5f3wj3v3mvq9xk4q6vc7k01pq3ivsvm0qlkni4bffyja"; + doc = "16v4vsd7dzihnx72bdz99994kpw6r5im659hm51w5wyh8gf8mp29"; + source = "18rcvjpyks01d6qkq61rmngmwwyxksh4i5dmnvq8ihx4vj3zlgqx"; + }; + etbb-69098 = { + run = "14rrzb8c1i58iypi7f1wsj9xp2x93s37s030zbl7xj8aw9j5w4mf"; + doc = "0vqrl9i8mr02qb12czy09x9vrch6nbng04618h9ampxs1m40sha3"; + }; + etdipa-36354 = { + doc = "1jp35apalaa1lh44dbn1zayavv1n3wkm0v69hgy8vdz73yp5yvhz"; + }; + etex-70496 = { + run = "1zk4dp55r1yjwy1bpigyzbfm9nh3np544hfmzzfhdg4i4yps87k8"; + doc = "1377j3czf6s21f7dr4qswzqvsh7xzzqcyjw771cswzgg7z8k66nn"; + }; + etex-pkg-41784 = { + run = "01aa6bn8d46ql8aw8kg9k2c3x611jpd5hx3h6g2fqb2lvjqnr1zp"; + doc = "1hcir648vyypvqa8r710mj9qldir9yp2lq7biv3s9w1vl2ssw18d"; + }; + etexcmds-53171 = { + run = "0m0kf57wcmy50qcca2v5jb8z4h7z82pja82igmf6gsm7fksm3wrb"; + doc = "0grl3svqzjh5bdg4jwzmqaxz7chkqka0vn0hnjwpyvm52ngmckyk"; + source = "1s7avnnlr4g8xjdfmkm82aanz0k0cnhv2dyar30439x2indyw68c"; + }; + etextools-20694 = { + run = "04x0a0wy3avac8cgjgq7npiy06b0vrkxa0hizpn4vkzv7xbq79yd"; + doc = "0z04a5f4c1xygqsgkss4bh0s41aqv0i61sh6x9h0isrqlhbvrzs5"; + source = "1f0jr38lbsrdjxhihxks57y6xw37ghgmydcq48ll14nywx07qa2l"; + }; + ethiop-15878 = { + run = "0h1h286nq6f2bplxxkpdg8mr70ip92c7mkj9lakxzcwacsj849xy"; + doc = "1aqgl8hvapg3p0f3knpirlgnifpkpw4jb22zncp1s26jqjc9wdcr"; + source = "1cc66b7ad2kfs4whzbnqdzfswn32y8h19bj3ad20ia24dggir5mv"; + }; + ethiop-t1-15878 = { + run = "1xbkh7xx71d19ghwfq8bhjnf7jmapm13hp2gr6ggzavcmzf12ffz"; + doc = "1lafizx606kv455bhf125hl2xqhndd5mblkd0zyvqgyir9bawcd9"; + }; + etl-60998 = { + run = "0cg7ppbc7nlgmcnri2iz2is8c5kj03jn0crw4m5wmxvqkkcg2217"; + doc = "0jqpybirslqyk7g9g27qbbvz3k02m2k352fxl2w1p0h7hhgk12a2"; + source = "1z244p46j7hkzry4n1xdbzcszjgwrlxd2jmjblbrldj2ba9sq9nd"; + }; + etoc-69343 = { + run = "1kvwyy0wxwwfkbmsh7v5kdvcb9sx7ywzcv5cx5nmv0sh92ah5dgh"; + doc = "1lh8pfcj2iixm9r31cawfs7vpg8gd4kgjcj9yyqx0i2fksd1gs0g"; + source = "0clv4cllb4nfchvc4zb8k25wzlhl4k5hnijl3071sq8aldiaqj7b"; + }; + etoolbox-56554 = { + run = "1g944zizyl05qz6lq1k13hv9952r97gc1i7is9s5fckz664075jl"; + doc = "05c3kvfwvbg4bxf3wza5rdvh98mnxadf818rsklxa5g2lz44jm76"; + }; + etoolbox-de-21906 = { + doc = "1vchha7ymvj51jfnvl76rxv466lzfpxr6xcvwafxhi78w4bk9yry"; + }; + etoolbox-generic-68513 = { + run = "0w0mmw2f2lry84jfx617saj29nkc620vkrkg1kmnnxvvxqi7jd9a"; + doc = "0l7kbicibm8c6p5yspyr1y8aqh5d3bswa9h58787r4hcj4pr2hc1"; + }; + etsvthor-48186 = { + run = "19iza3bimr7xxbajmq50iqd6cc1h82kz2lixwphn9568d5k5vjm1"; + doc = "13cijd5cx7sks5jdy67hp1a08f4y223l0hxd3w7ljnvd5azzyc1f"; + }; + euclideangeometry-67608 = { + run = "1pa69p2p6a4v8wz3m32xd7vy1km9zksszj7zjyqw36gfcpk5sxlb"; + doc = "1d6340xmamzrcsi31i0vifjxhy42ml7v3s6r1r9v6vzimh1iz5bi"; + source = "1l8xc044kcac6344v21dfysc6la90vv822mvik984zcnkbhxy4jc"; + }; + euenc-19795 = { + run = "0lh0k5g6icbbzl1xzzcj4sw7vjhqpn59y9xbc6cn58klpww8ywdh"; + doc = "0likhzn8afsq302aiyjk6adhjimz0naqffjrj2s06c6681z2inh1"; + source = "0bwr4cabh3w4jbx476ygxv6afxj6sblszr47awr2nixx0m018ndj"; + }; + euflag-55265 = { + run = "168c6y6rivahj6cw377l54jsykpxaxvv3nbmr80w19d90h4sqa5l"; + doc = "1a65rasxx88bkz3bg51bmzdbq67yphljaa8mgkp2b69fjsifm229"; + source = "09g2gn9ci11dca9s8bgdrjaprzb66vb47ssfnj6n061glz9a244z"; + }; + eukdate-15878 = { + run = "17r61096angayvbdi9r3d7ljb1a5z9q9r093kpgdsi11ahcgsr26"; + doc = "0071bi5m6v5ak6g5pxjxzq5y5353mpdjx4f2dbznkmfd23wp8j7d"; + source = "1p6vg8nj8qipj59jwvp4izf2dv0l8490773h6j87wlclnnnlh2gq"; + }; + euler-42428 = { + run = "0f63sy9zs0myb76wqgzww48g7clq6ni9kwnrfjkyyc4lacvd36in"; + doc = "1rl4bxzlmw95pgcf7va9gsrgz89602a9pqvhiym15b5hdwc5cb07"; + source = "0fy3dx3bf8idddxsj29yqd7bsv7cyyg8q9njmb3p0mw7laqrkjxl"; + }; + euler-math-70335 = { + run = "0iyn5pmk031v5z21l2mmrl2c6fs4g2dcp5zrs5h3cv285jrpa1dn"; + doc = "12w9inmaxw5skyw2jmhhxqfxvzsf6z7dfajifj5lj9388890pdgk"; + }; + eulerpx-63967 = { + run = "1ls9b076rc73cbc160ms7df3w5m0x840y7s2mg3wk22vgc461ail"; + doc = "0qwhb6wxm8fviqi5kdy1lcplarijhca0ymrqnxfnrz38z3v4xycs"; + }; + eulervm-15878 = { + run = "1x0zgqw15r5z9mf4pcpnf1bdbwbpwbc49ij7gjrhf9jzzlkwraf8"; + doc = "1bbd7f4dz3xp7ylgpi2wh9jf8nz4z6i2cvphfx53xvg555ln5v1m"; + source = "1if22m5h8ma3bvrlp4jzzhjm410r5r7r2ij17prycj3cpj4r2nl7"; + }; + euro-22191 = { + run = "02kkwf4psrmp7n5mqyrc3745kj82p3nxswad9x8rw1hd7a278y3n"; + doc = "1ajqx7axgqpmbq4kl2gmk97ibwbijqsq6z8ln71qla61j0mkgj32"; + source = "1hkzjy4vmvh06pk8bhkpz09ln5jygvyhwzyznqkrzffay3i89cll"; + }; + euro-ce-25714 = { + run = "00ypq57ri9vkmc85c5l5qzq098has90qllm9lnv4jd73l1my7pmc"; + doc = "03pcwrjrjp74s2xl7pahpr76dls17x76xvhck9izgsr29j6kny4d"; + }; + europasscv-56829 = { + run = "06vqrnfzcq04mjk38q75n1k1dw3ap7z5xnzpjmgss8rl6mjn4v3d"; + doc = "032298ir415l36gakqalg5n1nk70c47xbm2svvg1ygb32sgn4afp"; + }; + europecv-69661 = { + run = "1d6p38swfpphw04zzf6a0rdr6xmz3rrc2gsy2gbd06hjmcymc7jb"; + doc = "0s133vzwnp6jxbpmk0mdiaycr4q8x0xh6ismm38qhfb2zy62pp9a"; + }; + eurosym-17265 = { + run = "1bf4vwygyakr999k95ki53fykknizakz9npz2i1h3r5ci805l7z4"; + doc = "0vmh23f3ksc3b3hym7iv7m8rsddk8vdbqr5ib49bjqylppvxrsnz"; + }; + euxm-54074 = { + run = "10dqknqlqrga9m2lgd74zx5hk4qcbkfvlzjgr304p94w3k7pclqc"; + }; + evangelion-jfm-69751 = { + run = "1gp0j3ysa05fhlfblaf1fznmirfvkbzdy9wc158vs1lsbs0dc1lc"; + doc = "050bczdbp45i4qv0wp1qjvl53q10zwdz6av2v518mmg2qxrcvmwq"; + source = "1fdq93a124am4l6bl35zb8804fhi7p263fwsd73lpyfvvh95rz7y"; + }; + everyhook-35675 = { + run = "11r4932kly5zmksmicapqxndqw4cdq1sg2x9hgffms6v8m5cwkfs"; + doc = "1g9p36ki26vqdfiwnr77jxk1bna7733dml5k4s8nxq1drsklwqwn"; + source = "0hv04cn2j7sf6032jxv18py368zbpp4ya15wv18qymbk6yv5najs"; + }; + everypage-56694 = { + run = "1i8fjcbk3flywzd55y0cbsdmzymvkynvgc5cvv6yh5y6nr514rjd"; + doc = "13drphjv7gzgdzzwd6fxlngm2rprhls60gj4lz1v69sqifymnn4h"; + source = "0vdi8yd0r33ajnym0f3j42ajkc2xs8b5yn3kmklmgx19kpc93ln5"; + }; + everysel-57489 = { + run = "090nizak865w2mgrflmz91kc0b2zmc6fq0xxrlpz68xwb214lzwx"; + doc = "0bhqpzw5dpgq3842jbba9y21yj1808nxrg50339lx7b8vc5d2i8y"; + source = "0aibvqmg2n26dici3adi849a5k20ck68v25vx1bz2f15q4gggd6g"; + }; + everyshi-57001 = { + run = "0y738zcqy85ww3mhwgrj1qh0vgpwfh2ib676wlr514xglvmp9l3n"; + doc = "0ynjq4ibx6rr0qh5lajb5n9skqa3j4zyi533mxc10axp5zpxsjkx"; + source = "0iqxf73n3l1jf32x571rw5wqwvz7nj3bvyqzgizvfpbnavqhrxfb"; + }; + exam-67600 = { + run = "027v4pscys8rmrrrz7m2plc9blf0bif3rjykfhw597rmnmgmhxcz"; + doc = "1cwcz5c0lcil552ryqnwsm9p278nd172p7d8s4jwg3xdzbbgmni6"; + }; + exam-lite-65754 = { + run = "092wb5wjk452i252g4chnjzxysmbhy30q4cxir32mx54z41yf0dj"; + doc = "197mlnayyzgr9v4yf3w6m72k8fqavdy4k2q1c0v7slsvqad320f6"; + }; + exam-n-64674 = { + run = "0j4bi7j167fkaz57wfav9ybv5b5f18ql0gscvdxyf9vh1czk83n9"; + doc = "17jj5s75fs0sxpak8ywd6lmss3iq290316mr5gyxm3v7r26ji8ii"; + source = "1lvcxbdwy7xxjwzbxzrykym96j1qa7caqkdqhhx4qxdry9czpl43"; + }; + exam-randomizechoices-61719 = { + run = "13dqgkh1isrg0z97z7bfd2b952sc2xr7w7ykllhvmzicr9gcml1y"; + doc = "078cryxhlnwk0k01pwypmdkkjlna0fn70kj1xia17jq2xvc2fpcd"; + }; + exam-zh-69920 = { + run = "0a2w0swarm2lav45w9v72bv7gakqnz2h5fp8895sg7jmbm53bzvr"; + doc = "1ia5nrldj26rcjhypvyqmqqz9fs9bni3birx24qdng652s11k48l"; + }; + examdesign-15878 = { + run = "0y9kqiihidv24553zlijr6fspbayvram1mqgy9kmd1wwskvbza3w"; + doc = "0ddgn0f086qdsyssg4gm6ynlcnnsd16qpvn2g3wzija7ai5sqkig"; + source = "0z5539hv1li9vw0d3jx7q9s844f29wi9xr5z30hvzl3721rnkvzg"; + }; + example-33398 = { + run = "06ld0b9gi8s7y6igijylfvj2qvj3d45z2ml9wd1zfzkpf32pghmy"; + }; + examplep-55265 = { + run = "1a3pdaqzc9jx2yf66vmjg9r4w07b8afyqijl21np6sf7rrsn7zg8"; + doc = "06jqa848zzswd5pbfrvr9lh3i4l5h8wf3v9g179g3q2yb4dmvjwv"; + }; + examz-67303 = { + run = "1vhk3kvmlsj2kcz0ccf3g3a9z5h6ds41dpwhjd1k3iyy6mrb69r5"; + doc = "0vqm75k7xqi40gy116h3rjhlyjybzsmrpnlgmsx8qykll04y4vql"; + source = "0lnr2s33z95gzyw4vjz6jgyhqcgbwyq1lz8rz5wzafbf87mdkigx"; + }; + exceltex-26313 = { + run = "1075b0wm708wj537pgki1hvj58l0pfrdiglalbjnk3gmf18rk22d"; + doc = "1s48mcj49j9jm8vs5nhvljb972vhfng09xvd6kiw01a7i4zpw3h1"; + }; + excludeonly-17262 = { + run = "0zfml40br991mijcmplxlff2lzkn8fdgwgxcam7vnr23kag7lzxm"; + doc = "0argzz7nwadm11qp642r454w8p0swyhvscic71fhwi47n69cfbgz"; + }; + exercise-35417 = { + run = "18f7mgc2lmm1lg13dm858nqsqzga52sw0r6zlz7f0pv5hpc0mgak"; + doc = "1y50izz1z2s52knqn9a1jianq36isyafviv0yxqqx6zdfckqca0p"; + source = "0lpslsk9a7dx5xzr5iif1prvrn399j70wfcqhgbypz970zzpril7"; + }; + exercisebank-50448 = { + run = "1algypm3nhkbccd9k1w5qr6y75hqiinw5dj1h4fbmripmhdwircs"; + doc = "0szpxkmx8qi3zpcrjzd1nzn7jcp30wf9nv8rp77x7rd2yd0sw0dy"; + }; + exercisepoints-49590 = { + run = "0vr2yxqx2ng1f9qybapz61146lvsniv6mjwl1yfxk10qyvdw3pnv"; + doc = "17kz9fyd7cc4pa4j6dsm8h5zpwfr68wg3ndbswgh2pgwwvf63777"; + }; + exercises-55188 = { + run = "1yvdj03hr40732swfsg2br9f4wx9855n7a3whlqjdnczp6545lvi"; + doc = "137g1gvwfxm3gid5xvikrqk0iw75csrkqgrwmh0hda28dd4zbdwg"; + source = "1lryxm36phhp7p269zzf9a200k9k0v8zw8qyqvyk784vmvyilv7z"; + }; + exesheet-69885 = { + run = "1fsavlg9j9xi2j81djhg77k10a1ag7aq8k3ykv53v8yn4s8n2gym"; + doc = "0awa3sb3wxspvd3mvyvva92iwgrsb1qydh3sdafmnd5b4m0nncys"; + source = "09zhns0ndza7jgmjgzmr4a3h3rrh5wshi2ssb8sfkr10bf1xl2v1"; + }; + exframe-53911 = { + run = "0sc11jk94l0nmjjd69k6nl7j68szdkihim194pdxlyiybwqf9bbh"; + doc = "02s61k5lpjw121cyxkkhlbm5d6wv0gl009abkjbidpgxbnd5yl4z"; + source = "19y20l5g814cvn9z0axpkynxp0vwkay782dmn05g6a6qzjb49i0j"; + }; + exp-testopt-15878 = { + run = "0g7q4ccfamsd7sr7wb0qsw74dnwiyz0rjrniaxm5jvgaadiinc7q"; + doc = "18i2ym0da8vp3xxy5q2gaykvja3dga4l64q9zjxknkm50vj6dj23"; + source = "1xfp15q94icdq773ivdvk4n47i2k3g3y9smdvmxw5m9f35nayypl"; + }; + expdlist-15878 = { + run = "09yhcdbx3n7gj3g2v2yh4navgdf5ik4x281h51kd1lzdzbbnf3aa"; + doc = "1qgwn2ignri6wh67wwjsqpbk28jch01m8fn0nw6lpc6kfa4a9g6v"; + source = "1m8dww4i5w0hivs904v8ls1dhs35vp3qpbb44ihwha0zsbvghabk"; + }; + expex-44499 = { + run = "1vdbsxn85gkg24rx3qhkwcc658zjyhkymfspysxkxmmb8rn42y8n"; + doc = "1mgq1knfx1lf0vr32wa2r6v0sr49m0xjnsdy0y42zngfi1mizp20"; + }; + expex-acro-68046 = { + run = "0hdbjdkqsi6nw99g3rqvpd242mag8k7ggl6bb0wj99nzfq9f43sl"; + doc = "0ilsi8ddsn7crc19qf22vwff2xc4lhpqhxpk6mb7id5fd7xpp0pm"; + source = "03addcn3axfzl3i502clngi1bc5b4l5ndq335xh6x5h2566kjclc"; + }; + expex-glossonly-69923 = { + run = "1505m6spzvhxmyg5hv7wncd1izl1qzkn5sysfjpdykwwg2prjp4s"; + doc = "138yihm7vp0m25l00i9q9gn85cpssnfn2n53v876bvlkss7kz765"; + }; + expkv-bundle-65623 = { + run = "1mw1cdl4phkm29yxb747whkkd81g9a3sbbnkhzgskbna2zcjj0l4"; + doc = "0cwydrq8k5z6j62wizgg6n1n8r0h0vi4ijky59vvz8f7b95j2xz0"; + source = "0cv1r3daz5lscdqyjgmy6xj00b4i280bg1c93b2kd9x3svv179mg"; + }; + export-27206 = { + run = "0la9v2m3n15hgds8mmp1c56dz0a7iqygjk2qnd99n5924n187wyd"; + doc = "0ipbs7rdwjp6jrr4drgcs73mc8fy6bav24qfda1an7byglgcf2nm"; + source = "1q3xbj3zicbizadihwb6b75c4d95b6wq0adi45wbqf6hzj05bd5x"; + }; + expose-expl3-dunkerque-2019-54451 = { + doc = "0xij1ycxnc3hfzkl0bfs03s0zzzv6xsj3myvykb6n836j1g66g2y"; + }; + expressg-29349 = { + run = "1hcrzh5xhvzhf7d9gfqfxj7bi89ds5rxa8m6al12mdr5qpffzzkb"; + doc = "0kla1swvhd43xcvns17wlcvq33wvjidhkqnd4i587x9mdn69s8bv"; + source = "07w45g2nbldwnbrbrmdq9pwi3xbi6cl2mqxaiyk78jfgr033rmqf"; + }; + exsheets-67300 = { + run = "1ymcfy9i2ll048sc0gyljcbwa06m9q0g6nxp3csvk4a367wv9cxa"; + doc = "1l3ln3xkniyfgmhrs37rixszacsvalwq78fyh72v8ca61krxd35q"; + }; + exsol-69343 = { + run = "0w51rxp4lw5v1xmhp26bqalarp05x1ynpskbgb2ci7b3g1xcnm0g"; + doc = "1hjvmd9rjd5vb4d7794iii26yl394plf3ajihp7mpmwbzjz14w6b"; + source = "1837xcdlwxnw8944c787b4yqlb2bi2sijx0nnr3vfvidpwsa7ys4"; + }; + extarrows-54400 = { + run = "151qmfsqqj516ky9j4wbzh1618r769b1bqn4rc5fh51p1s28k8f7"; + doc = "1iw3750iikf6dc6kyid86r7kdzkpi1z4la4zlj63z26fczivif91"; + }; + exteps-19859 = { + run = "1pmipr1444l1yai8d9hhrncvimzb5scn80pqij2g90lz160962r0"; + doc = "0ymkwhbl6r64pxhr95wdw10dvn6q95mkz1pwa1nb42sdcljizrsg"; + }; + extpfeil-16243 = { + run = "0n2j976a2607zsgf2cda5vljl497c1562rn7cih11h6vpx76jx9k"; + doc = "0irjpxz1zk30myk0h1wjhzcxdpyqjfzxj0lx1nz56v4f157myn50"; + source = "1yf2kcx73zp24wrjb59zd1f35809k52cdwym9xlf5fy32rh69y08"; + }; + extract-52117 = { + run = "0yfxyzmicqczvn6pc7ykakpm2hjsrsb243n1bs0crjsvacw29hb2"; + doc = "0lkljkwf22vq88nj21ca023ysa0hmgcsh7a0xhk210ba01a9433f"; + source = "1h06ji378l32a18nbf2plhk4q3vzihc541d0wkw80ik53m0frn0k"; + }; + extsizes-17263 = { + run = "1249x8lklry9ibil9crfvy2x3hk5afnc3g3khixqf54jcb29zpg8"; + doc = "06a01bmilk7hqr2k9237i6x53f6wz4z4vhr8n0qc0i3j09n5i0ps"; + }; + facsimile-21328 = { + run = "0mfzqrn76b2nhz60rqjdr55s6i9fzw96ya74nncvdjjcvaqpjrjk"; + doc = "1i3vv6a8r1mmkmpjwr66r0isha7s5ksp5cwgx3rj9sl3wfnywsfz"; + source = "0icxnmiwmrjsp1lhhdkcgsjif1s396lkdxp73vz59afzhwdm6l0b"; + }; + factura-61697 = { + run = "18p09q5r4n04r3pr636zxbq2jp027knlzphd4zpns3d2szgw2j05"; + doc = "19d5nsjxzghmk56l1v9ppr237ykdrgk7bql4cdr4d2rdvqbk4r19"; + source = "0l77127yc8r4n0iyv4q3ilcs9hrfjn0y56rc805av4gdrgil9xgq"; + }; + facture-67538 = { + run = "1vfaj6hsjnd1cmgwrlj08bn9zr52zc1z9h1dpjq742gf8n2f9qfb"; + doc = "1my5nlwdik253073yhcjbvqkgwcw5kvmg2fm2wladlgcq8qav96d"; + source = "11nr4df4dywqaq1bk3vzjc6s9gd5kxdksicij2fmiqx4a5309ijc"; + }; + facture-belge-simple-sans-tva-67573 = { + run = "0n8wwl82w7hn11l3c3fg7nr088v2mv4s2d3ynwahgy18k6953pxm"; + doc = "10yh7528nms60ypc2zh9viamk9cihi0a67jcvwzb2i8f88sx4cfq"; + }; + fadingimage-70610 = { + run = "0hyprvgg3f1bdm747v2c9aa7j1vcaxvawazs4srvmxqabyi05jbs"; + doc = "1x8bgam221vspx8ikdmnx5qvfwv0jgfda05b5r16jajxirhbnvxq"; + }; + fail-fast-67543 = { + run = "069rv6yv525b9f0igkaax17kr3qyy1n82v018yidc57ig75h4vlh"; + doc = "15qydfbhbdvkzrys4x3g3k2zpzjzah8yx7q1xxnc9p90rmlj6ch8"; + source = "0ybn1365n7mkaf73sc667pw826n1pndrizn5svnx89ckzhni6s3h"; + }; + faktor-15878 = { + run = "078fxihxiy9bnszy2nj5ca8ys9hhhazkawwi7x2hzwfh3n4dyqz0"; + doc = "1hj13l2g7za8n3bkxmg04npi5fnp4jv8viyym1076wify7hrwc73"; + source = "1r8wksjr0q1nm118fzkn527lak31j3sjrbsahpdmvxfir7936njx"; + }; + familytree-63739 = { + run = "1a6hvncnjzrjb3bpikkjlmamnrsas5221hhxmlvfb8x05qxjxx7x"; + doc = "05m6n4lzz0fc2hm011kyvnxnv93gl39jd1lx404xz0kjs0l94cp8"; + source = "0g6i47agywjpqi2if893jpm045kwda3bhlm2afd6gpjynybpmhmp"; + }; + fancybox-18304 = { + run = "077xd75n1lpy5a4gdgk88p0ai2is5aj4lf2cfxn7nsyhdvc1y6gv"; + doc = "1giimlw8zfksar2hwarpnhy2sd0jsdlxzfw6gz1lmdb8xmwkx2nz"; + }; + fancyhandout-46411 = { + run = "0fgyvrww1h79bvwf77h83p2lwff5b564gk8cjjnkp26zjpphah22"; + doc = "0r5wzyw7z8gsm2k1y06h9gj5cfxnclawicxdjpq50dnb6233ac08"; + }; + fancyhdr-64977 = { + run = "0sh8j11p8za9rsskamad5av81827n8x1bdknfq2xzza5k15x8r1d"; + doc = "034gij44l188s6cvmjn3gl6y7bz83ifqyz6cwyhd7pms6pajr41h"; + source = "0mwa9c6a1rq84j522q18c1hg7j8x1h14aaqrjx7c92aw8r15c5r8"; + }; + fancyhdr-it-21912 = { + doc = "117826hd9zl15i8qf6d1pz2qz57l68a9nxqldxyk21acc29ifalr"; + }; + fancylabel-46736 = { + run = "0fyrhiknwb658rg4lkdkfb221yrvzfs5g2rmxfas69p6aambyv36"; + doc = "0fpxag39xa2piybkb19fldg3ykwb26sg700jp8hy6kgb8afp4hrw"; + source = "13hx2k4i8ji3a9kxd8j2j177l4d5asz79r9v707d8i8vkxcm1ild"; + }; + fancynum-15878 = { + run = "0vfis38yawys70hv4vrrnyy820dj89dqp38jbg199pbb8y0qf1kc"; + doc = "01f7d3him9gcm7p8567ljamwrg2jl25xs7w6jm05l89dkcb34fdh"; + source = "0cfm5da0gk4y8plad5khzhf9gjyayxmca67qpvdj296p86xxdi32"; + }; + fancypar-58895 = { + run = "1znfj0zw15g4n7rf3za61ixfy7k8vyv9nikkran9bvd0jmx6v4js"; + doc = "1qdqw4283qv1i8njlvnds87pd1ssx239ycd985rbkkxyd0brrqa8"; + source = "1y35cm7q0qa2szmkldv46203gagzxwz4cam7yzm13s78wyig6mcd"; + }; + fancyqr-64182 = { + run = "0r5f2cq5p2x2nrhgamcl4h7jc01z8lr0kpbvkalgnp4bkr2js42a"; + doc = "0gl8kkf5bvls46hmcwpm3klnzc0rp7mp6cgn4fv33l60yi4vpwxk"; + }; + fancyref-15878 = { + run = "1ns9b3viqg45w3pmnh69fdrjc9p39pfnqwwsfl9nnx04pf8b0p8i"; + doc = "07g7ynr4qjv5l8v71ymbhx3vf000g5qq63c4i8q0iq35gird9yac"; + source = "1p5xd5a6lwv71hp1sx490qwqbjn720gc1fpkk2inmmq6h6vwgpdy"; + }; + fancyslides-36263 = { + run = "0hfa5jklvybgx9rji032rdmyh2qr63fkyanvvs0jmg1bkpqw7s03"; + doc = "0nqqvkv9gsl3jp22rjkxrzklpz6dfmm3wy3mc9f15jv9iy2zlrr9"; + }; + fancytabs-41549 = { + run = "0yxr24fnjabfzhyvfj7nhn26cc7hi08byw7zzmky3nnynxnxc2p6"; + doc = "0f9b7rvnz5syq5dghj426k9ypppjg4q9wzs8v3jl8af94xy7zrig"; + source = "10p8hb18qrwp2dxsjybrawnlryl97k854l11c0327r39qiya61ns"; + }; + fancytooltips-68931 = { + run = "03b31bifjnl75hscp908x58r90zrp9hy8r4kf3lkygqvikh8f5bm"; + doc = "1l6mp725xjmy6azgx2zwcqlp3vfvk7gvyhr0wwrnnklfcscyr1rz"; + source = "0nhmjrivw8a2xhblhxnjbyvmz4hp68sjxnnfzmqyrf1agjgwz8m0"; + }; + fancyvrb-69536 = { + run = "1xsazrr8rw8rwxq2bra6ypsv217r5rrzxhqrblncm5g2blp8x815"; + doc = "025sy2x32w7h2dih36iza9v0lrbwpr9q2idiifdxjhs1clwx01rm"; + }; + fandol-37889 = { + run = "1l6h2brl2d6bnam6p6j0p1d2s13jnva5zkr1xr4sarzzxj6zlz2r"; + doc = "01ax7za7wcr644ncpv3rpfvl2ndqlppqnjzbjp8y2d0hawc3k5m0"; + }; + fascicules-54080 = { + run = "0zlkjn8kg6vb58xp2xh7jwjk6dmk6knzqh8v7lrdbmzhw9j28vwb"; + doc = "1jkhj04gpwcckp9zqanaa9zhplgs2a5xqnn2xf6ir6qifiv3403y"; + source = "0d7crimrdcxlh8hd24qfwqnadxfjsfrfnjr4hx5rrj75mm946zmj"; + }; + fast-diagram-29264 = { + run = "13c2r5prb7dg05j0r4lkdz36v51zj6v5p2c7q22gfkbz1lj1s6s2"; + doc = "1f3ghs0l6mj2q3iw74rjjb12y8151cccvhww13h4kzc30vacr3r2"; + }; + fbb-55728 = { + run = "101yfs3np0mlwgfhiz74jh2jngxnb395wkcm9fvpmrs4rp7wxx4l"; + doc = "0b48vqwyhmygv70gsbiknmmysd8pz8m27pfj52zqzzb0kphibynl"; + }; + fbithesis-21340 = { + run = "0qzf6ch5b25qrhzflh8rwrljhlj87i6xaldnpj8j9iq83y1xh4jr"; + doc = "0wvnm716qi0y54h95zlqr7m1q9dgmjnl9f0ghvjgm886hljq752z"; + source = "02zmk6yx4v47ngd6ba6mjn1rnhm2w6p330rfz6nkq8shcky7sy72"; + }; + fbox-69041 = { + run = "1v7ycqbqlk80lbf5wag8vmyhwr1v4jjs8j7bzni4pm8yp4m0yjis"; + doc = "075mws8pivd2nc045przgf5lmf5mpaw8gdyjlj3haqvpq0rf5mk9"; + }; + fbs-15878 = { + run = "18h6n8azrnk2qabv30kpa8gmj2ljkvx0nqs8qb9r8dxxnhng78ch"; + }; + fc-32796 = { + run = "0bw8ifh6sxgii5s3vx9d87m4rdfmifdvw70wmj2kwqzrij1ri568"; + doc = "19p5r28fzw0i7kmvvv93hiw7cm3lkcsn2hdn90k8m7jwy758qrdd"; + }; + fcavtex-38074 = { + run = "1rnfrvbm4baslmmakf3s1n37razfzbc6d11b5yfhhdhskq2aci5c"; + doc = "05ixrg17jwd315q5c52c4b8smcihj4rzrxjparrgfimivd85i3h6"; + }; + fcltxdoc-24500 = { + run = "0bnz5b9ibr3lh5qazdanlvvpp8d1h2apzkw61qxr6kg9ymmk2w68"; + doc = "0dvr57jz38v5wflcjjp19rwjbisbzkdc91fji9s1yrv27drawijp"; + source = "0k54q30f7qp40fh3clxyaa40xhsa28qyavn13km65s1hwvg4hg9g"; + }; + fcolumn-67729 = { + run = "11bqaca189j79cszypwmijw166v3j9pkm60y2c2wyraj4ss4d1k0"; + doc = "034crw2fxf9m7a7zvsi2c7fafkqkhn8vfxc97dc7k74wrd5g3kwl"; + source = "0dqcm83g989lkgjkb5q9s4d4284g5c2y36y75iyq4jhdh2ca972z"; + }; + fdsymbol-61719 = { + run = "19kqkmjsi5kw5s6kkgf4y7nrwjhyd9pgq02y3f43wfdml9jwlvx1"; + doc = "0ddy5d074fjmkvl3pm4akqfq7d3f57y09cfmrs5wfgvvb51gfcvp"; + source = "18hiwralhdsp8sj8yr0c5pj4xmjaiyyha1y36sgca2xlacpw8ah3"; + }; + fduthesis-67231 = { + run = "1cysdwj1gl9zpxqqcb563x7ssvc4y6g96cn3afbjk5hhw8381h1x"; + doc = "0w1dyxcyxjpdbmxrv23xlrhg21kq2wf1r85dkdaw3hs76800baqb"; + source = "0spm9cz58xa2fi86zcbs4qp4zxcdvaq1ll41bmp7mkykr369j2k7"; + }; + featpost-35346 = { + run = "1p8xb6kmfhhqvxcmgf4bkw60p1py2s1pyn54700zs8vlkbxlqy6f"; + doc = "1hy7n0jfdidj3an25j0m5bbv2ks40iviwzwijlk6qqdll0k26z33"; + }; + fei-65352 = { + run = "02zypphy3s8z531zmvrdz2df0c6viyfnzfmn5hgc8js557z8iw3f"; + doc = "1nimda4g0gsf7521ibmqmh5a9hfyyhdp28dpiqs0wq50ysl8phc8"; + source = "0k5y72pwziakribc9m9yzm860pg1q222qarvrqxyjqchhlikcrhd"; + }; + fenetrecas-68779 = { + run = "1fx9kfgiiqkkfgj12x3yph2218az86h99r9idg7q5rkx9h04lzg0"; + doc = "1qcg04kcvfmrgsza06fd2aam27ixwydis86f430cfli4x3c4c7ap"; + }; + fenixpar-24730 = { + run = "1l79py58dih05c4kjb8cngzs3bzpbhc72f4hnz2r7nfwmjp86c56"; + doc = "0fbx9wms2n0ff1cdpfavqhjg56przd7hr515vh81g8jgnz68s24l"; + }; + fetamont-43812 = { + run = "08c8xjgam1fx3aa4ikx62jfh3f4bws0ngk428bqzbrd8q445c3jz"; + doc = "1zlhg0wgchgkk6j8v23wd29hklpzb8q4p690pfswg3zakc0dcbgp"; + source = "024bwgb36iz2ylwsfzz4wfgsyr9djdd0p23phadzmc8qzxqsslph"; + }; + fetchcls-45245 = { + run = "1pccfz68chmnbfi9qnrmdnyq5kvkq6ir5dl09jqbjlcw7hw82ka0"; + doc = "0if19dgb2k75qhyka4jiijnl3msk8y8kj0fzhriarsicivwd47ds"; + source = "1qb9ymkvbxmxlpcs3drcyk02bc372s0vhw6wwpig2bchb1hwdl44"; + }; + feupphdteses-30962 = { + run = "0sgg5wi5iylsz0y2495cajqdp8nzlsps3x7lzalx0qpjid91lij3"; + doc = "0ish03jv00i0crfzhjh2l32cspk2r5ifysz5prd6fwhdrmwmvm93"; + }; + fewerfloatpages-58058 = { + run = "04903zr0lk50i88vywpbzpg908zkmy0w8vcfks55cmbfb2ja37qd"; + doc = "16hb3xm2aszwlagzq9w3bi2hyanbss3s4f09sypg07dkilifdnv8"; + source = "17rcaydy16vqnlgn76ijhjlv2jcnw962wrsssca8z8y6dfvy0aqs"; + }; + feyn-63945 = { + run = "1pd608v8wl7007rjmsykwabr1h8jjk1s78nbmq4a0541rj06yd0p"; + doc = "1dkfi17i6lz464bwmr5r5295y1avvsn5rpdw4cv80rd20lvhnyyp"; + source = "1vh6kz22gpmch2rdlvhplvqqd03vd0mn5m0a123i3xfbka1myza7"; + }; + feynmf-17259 = { + run = "14bl9c8yz1z596281kysyyjbf727pi6mdnwag6gfqs1nsinq0a2i"; + doc = "1ql099wrlddb4fyfrsirx0vnhcbh0wgwp9yixhvgxfk5pbah8v8n"; + source = "0f9ghmp0hcmzadsfljfq7pinn69251dwhcdk4n62jrd07qdgqsyl"; + }; + feynmp-auto-30223 = { + run = "1yhvcxiq6ajjmlsvnznzvp35sap1qsnj54zv70dwpl29rkrgrmsp"; + doc = "1y1pwlplkz2z7lqz84ay7ch1lw4plh4n69isqzsvhilnr31fkf0a"; + source = "0ja5yqs9szyk4s2mk9cbjf6p98dagwk7pycma84y48kinkl96s0s"; + }; + ffcode-69706 = { + run = "1i06si85nn49yj64nkcja4r2zfnli29wi3z6rm4cd2j6zaljj41m"; + doc = "1rcjnxrzmg3vpdwg3fxf7r6w8cagh2v7ll49r0y3i0jxaiyyv10r"; + source = "1cxg43iaaz6czqf4wmfxh3hdbpl8v2v94c2wggbfx993v6awil7r"; + }; + ffslides-38895 = { + run = "1mpfpawdhh16rl6pnvxnkj95gf9hjs49gj7cwfyngmqkjc2idi8j"; + doc = "0z5kpim798zxj20p70dpcgmwg4vx9mb0zrmq620sprxxdr2gd059"; + }; + fge-68353 = { + run = "1f6ibw87kbhpf3qxjh17jr1lsh9kk9ynf1rngzyjwbq2rk2id94f"; + doc = "1c8nnpdvkxcm6218mrs18ipjf9mrl1cqyvv3p31x41ii8wxkvjm3"; + source = "119d70668gw3za0mksr93wcq9gpzjn4gyv8vmizlabi0ip1ycgy8"; + }; + fgruler-63721 = { + run = "1x0pqrwwbwf7qi64wlcg8d73sf5r59jcqhhm3l30qk1ymfwirzvm"; + doc = "0mva3jv63prks2la2g9sqza2ng59bg9g5xkgg4flamk0409bmd4p"; + source = "1if9sbrln3jsc965xn9njllnn56dl5y4v2krn76hyxsk1vyza45k"; + }; + fifinddo-info-29349 = { + doc = "15zp4xvszy07cy1b5r3k5x256lbalr5acrrdj1gx33llfmvm469a"; + source = "02pmj7a9hx4xnfjbhwg273a3wx4449542rs7rxkii4hk78xs5lwr"; + }; + fifo-stack-33288 = { + run = "14d714q6mzpag5rcn2b2454pad3mpvdz6ii8k7jdvx74ay24zphv"; + doc = "0pgvcyss7h1mynawdhpm8xid0albf5cajhz423ygz3ifi2dfrasx"; + source = "03hkqd4s9dm2h10i8pw3a6qgrjskiyhnkp4wh9r55l60wnqm80bc"; + }; + fig4latex-26313 = { + run = "1bq3hj1gnc1g70jvrrvxsg1lkxrdnj81h08qr7hqwlwll37qlha6"; + doc = "0ddaikx7qphb98xc3nswyv01d0xh5g4vf95fqsnbhg811c83jpk4"; + }; + figbas-28943 = { + run = "1bgpchwgj10609ld6i4my2b6ynzlhqrfqi10g7pbqjaypyzbjs6h"; + doc = "0ncmqsdvhssd1v77m0jhx48fk6ssxq5yggd29dd7k3jrypaf3bck"; + }; + figbib-19388 = { + run = "1lxg05j9c56rrinl5gc4y7sc4r9gc5gyq59d3yxq4ggmq9q9l3dw"; + doc = "16qbipciqc6vv5hg1fm9rda4kk7x827nlmzha8c9i3dz7gy0cnan"; + }; + figchild-62945 = { + run = "0k72116mhd9z9psbnrncmn8x4svhyaf8b4738qxb808i81ba97kv"; + doc = "02xr6kq4mrs9cacn2sczf6ys2mhwy5lpzz3lbklx1na3fbkm6aaz"; + }; + figflow-21462 = { + run = "1w2wccxfjbas2yyp8sscxfb875kz3mwqjlma46v4328sd9vw4pwc"; + doc = "0nkdz047vypv0b47wbin7nz3cbcriv89w05d6yn26wvq5svlxgw9"; + }; + figput-63957 = { + run = "1hvxp65c2y7852fj2v5b4m3bq4197m564y6gzin2hddbd1w003vf"; + doc = "129jyybg92ddy5i6gg0f28ij0qxx59p8h2l4y9gb154rdmqa2bld"; + }; + figsize-18784 = { + run = "1hb2fck0pz1gz6vm0ffpzn3vcm7lclagsi599bi2f2bc9ly2372p"; + doc = "1zdncnl8nmkazvqjyamzgj1x1f5fm3kyw5m5fi669rk9dqhsiq69"; + }; + filecontents-66740 = { + run = "051s23ymbjkv8z2d7sv8jsjljy5w2sh1mgvynlbkib390gpgybh3"; + doc = "13fwkv2fvdfl1jgyfg4pn9il6w6pn3islc9zsaqs3bwzj25y16rs"; + source = "1x5ahz0fsmnjx7bvbr83316r6w80gnp83yznnhxnj0zg42s2gfxa"; + }; + filecontentsdef-52208 = { + run = "0lrdmz5fnmrlzga1w2hr3ksydnz52lmqlnnmix7xrcp81qv9xmx0"; + doc = "1nxb4wm4wd223f9wn7x8j805ybximrk0v6n1l56xysz4k30jxcba"; + source = "0n7zq8plqn1yki6azmncgdlg2lxcprfpdq5dv0qnxvpvw5dawdvp"; + }; + filedate-29529 = { + run = "03fwpi529pp6bqwr37ns8nas236nhh7nm592rpjyrvlyv1w30ifp"; + doc = "1dywknjhl2p9590nvcpg1vi8r0iaj52dv7sn8c2y8337w37c6ny9"; + source = "0fwqs6wqw93ih2icg9b5zxgya1zbaj2sn0jd3dc8b8dm59cwggk1"; + }; + filehook-64822 = { + run = "0h0k0fgdwzm50jz0ibj7zsv1sk355q13x1djc3pk4fg1f3czhfh2"; + doc = "00l8hx1sn4sn1mqpyiz9isl5a25a4a64nifq6q2jlw09df9gmf9m"; + source = "0bd6fhrzy6bh42yb44y4bh01zpx92crca8zia4lyjmc95rlv6gfa"; + }; + fileinfo-28421 = { + run = "0x922migfx9y1nqqs9lv4ygk3cvqj88a92cj1kb9xkgykp8c6cqx"; + doc = "0rw1pdrqghgdwzyfrc0y44cj1989lrvpab4n42qxbbb9srhmary4"; + source = "0kssla41sryd278w12syrhsi5aalld94vjcmddldcc0l8l71sz5f"; + }; + filemod-64967 = { + run = "05lipahmxgd7cy76rz1j3p2z4k31gj4q7ihvb0zbi44g4n26hz6v"; + doc = "138481q84a436a9ns587qcmmsv7p9fb5wzz1gwla25jigx8fb4fr"; + }; + finbib-15878 = { + run = "1dr1ivhfb83ky3q82dzzv5vvc8bl84iq7am0p1rc8fjlbj95i4wm"; + }; + findhyph-47444 = { + run = "0b7qqz0p0l70r6dl4jhx086dxywb0vlln3r166pj0yl5jfjzhpna"; + doc = "0n7cpjxz3adj4bcmc1vd548lggcchhqfahdcvn4w9invw296hhlc"; + }; + fink-24329 = { + run = "1pk9qp2cbc1yagrgnjz6rnldn6zgcb6bw3vi452ks4fwic4pgwz8"; + doc = "19fnaw32vgjpj991n5nlb0hwac92kmny3zc483wffbhbca1nkdck"; + source = "1dm06hhp311xjfjjjpw66hmm52yivjhgkpwpif25cvq1z8dfgw2h"; + }; + finstrut-21719 = { + run = "148pca47nggxv9dyg5n0p40ri1mqz5chj4ir49472w62c8zh83fk"; + doc = "1jrxyksw0bldvf5faykbpcngjfx06y83q81rs3k3m6vldm3rw23d"; + source = "179640qn5swml0wrc1glvbf94ia5y6s1qlyf3hf2vmr3vih7k2mh"; + }; + fira-64422 = { + run = "182wpm6dkhs41y6kr4bjc4rpy0b62d17r0j60a23znfgglpriy3f"; + doc = "07wm5kca97r39shhymnwiarsxn0i5ykycyd28shqyqmmmk6f2j33"; + }; + firamath-56672 = { + run = "1d9l5nsx0qswn1hcalzsrxkvc7mvpdqk3h72bfk50h91lfm2i567"; + doc = "1w6zlskvs54x192nyxa83qnlqhvq98g64k5fv6ch406nkivifmgz"; + }; + firamath-otf-68233 = { + run = "0680qh4drixmrvhv3klkflz0jml06x8k9inl2c8ym6a8adqx43nj"; + doc = "10ynw2ckqc7vsv5hq9kv78cvn6yd23qfbyv5060sjxl91w6qxs63"; + }; + first-latex-doc-15878 = { + doc = "13ngk5pia5vbrbb4jrrlq1lmyja08m7cy4ydcjasxha8kns001ss"; + }; + firstaid-70324 = { + run = "0sfar5v1pflaazw7yl9i43f6cd9bz8manmgynlww5wnw2chh2yxj"; + doc = "0fmigcz19xazkxkqii0lghfy8clp8m880gg7lgm6bv6kfn5hsz4q"; + source = "0kaf6555c3f9cy1fb5clm1ziw0kwgjqcysxnbmbzfhq23j41c370"; + }; + fistrum-66461 = { + run = "1ypzwh9a7lkb5b6d9796hwzarlsm06nyndl4clk5ss7nh9jdia3f"; + doc = "1zyyrvm4vmd1fy35clf4aizb810mhr2xzsyzwmpcgsbm3nf7i2ng"; + source = "048g8x5q882668lbzz0ji1hndfkd2bd777s2zyyq59bcw0gmavbl"; + }; + fitbox-50088 = { + run = "0jk46rrq01bbqkwfqf1rdrzwv475mdmz4hqvbffkivnbwj1vz18g"; + doc = "0gb5gpdrdagilxsklq1aijr5zfl5n82nwal1h9qls0iqzjvgizka"; + source = "039q5as7939zc5nby6m6piz5h0zphm19hqjkdyrgzw1q4r9ypzc6"; + }; + fitch-69160 = { + run = "1c6myhpv9ix6cr6snn5f9ky2z5caam1sqjgg0bq1bj8df3acdv80"; + doc = "1gdgmviy8pqqwwsvinrb8qsgsd4gw6bx6xci56w4nmfal729r6g4"; + }; + fithesis-70536 = { + run = "0giyqhz2r2dnxxnvliwcj2mlm53ll452zqg18hisyq8z9yv7v0as"; + doc = "10i2mp1ijf8q3dzgpva0b6b3h8025i2h5hl0vv6rmvv4yn7hnpay"; + source = "1bazgc6p24ahsiv68g104qglahivx5s42gva0xhqnzcmimnazk7b"; + }; + fix2col-38770 = { + run = "14n020dmfn2s54h5xvc9lrynijcwnj3d2w4kg2w52v0kf037hmln"; + doc = "089pdfpk0bi23yb7grjv4w1agkssfczwvv2vhk3piy43qpk9h09v"; + source = "0wi711gb3bc5pc2kb7q2hz8y09g4phjxggrqjbl6i432z42fc061"; + }; + fixcmex-51825 = { + run = "063a2mwh75mdbh8syvrdldb7cj4iyvqkbkda4jm6cq3nwbq9kly0"; + doc = "1c9q5srhfil0wnk84k072ridssgwbmzpskk6pwpaq8id36dydvlm"; + source = "1h3xrdz9anb2cxr8p175rrcjvaawv80cj3bp9l6bcpli6yb6fdfr"; + }; + fixdif-66606 = { + run = "1gxz7bv0h2485pwrs7b0zhjcafkgzd1r0ikpjjw0gh4iqc3bcqd0"; + doc = "06f5mkpp6aar6c569pwd9952xgzjdy3zx8n8y6y9a6wfflyh3cis"; + source = "166zj8nmapwqkd06ksvjbjajq649amjrfji9z9j9mbcg865pgwa2"; + }; + fixfoot-17131 = { + run = "1zszczpwcggczq428ha84g71rvgml2zrx2v74nmk1damcp35pzlv"; + doc = "07zdbq43l9yddc9gi4i2qqpvz0xxmkhxgg3wl329j25p4h58amra"; + }; + fixjfm-63967 = { + run = "1v4gn6bwlb294sxrqgy6j9vx2dp7plbagkvmw7vbvp6wk8dkza72"; + doc = "0wiihlpjzvmh8dynf0nbhmn8raxflqxmzpk97s1qv7kkvpc79sy9"; + }; + fixlatvian-21631 = { + run = "1qm1jj803a7zgqbjn4q4sg4mn3pvd600pfkqabjvp0ck24r1pw1p"; + doc = "160bb2khxfhl4g48a5cbj8xdxslgxvav1c0wiq3w1ajla278qj28"; + source = "1zfdr8kahxgkhxzg925lgls50prcgyp6hz1vhis1241f9rd6r3qs"; + }; + fixltxhyph-25832 = { + run = "1lvr7r5adw566q0hbvmmvmh7igcm8asl0ispd3lflik886ycmmlr"; + doc = "0yfa6a6dvzx2jjy1jcw7phps4wxz3ysfhk5mxc65qss9kmc94mwq"; + source = "0ksb42pc0bm64pgszgph6g0rnksd9fhb48z97bnd9jcsg5rhzi12"; + }; + fixmath-64648 = { + run = "1513gzvwpddwhbaiaw2jw4qs0c4bbiym0dmcc88vzypqsbnjs13l"; + doc = "17y6wwiq3b8l2p3nsfwm50g7lzip8aqls5ysgr4gvz1l8aydl26z"; + source = "0pzyg8k41rlj5gvqq86i9jnys9plqbxb3qvas8fv7k5kvqc43riq"; + }; + fixme-63708 = { + run = "167003w7a4xhy35fj6xm7mx1hvqn1bh1b563sih3adrwyrdnqjbd"; + doc = "03qddrr56q77h8qhrx9kryx1d0cab6lzcngsbmyzaj1g81hvwsxl"; + source = "01rpq9xd8rhy4fz8g1l6354pyibjsl90h591w7l7cz7v0yxldy17"; + }; + fixmetodonotes-30168 = { + run = "1pca7qpkqfd8506jcjgr1kwcymbcljzvsq47xlvvly3qzac374vv"; + doc = "0icin53y7xj0dddsi90n3hkd2wrcpymlyhfllyqfz7ac8y4xn8r2"; + source = "0aphhsamc6x1k891ybxhnqmhiwh0my9sj90x3w22gp7zhavgrww1"; + }; + fixpdfmag-15878 = { + run = "0s5ilsmnhvi57x9cqwp7nwpagfribmgkbl0z1ci55aw2a6bff9hn"; + }; + fiziko-61944 = { + run = "16r25wagw155fnz5lngc3jqxaf5sy1f2mbyzdklnizaazh2vbfdf"; + doc = "0pdnd0h3hkdw32m4yjmqj14ijg3qix8ajjxkhvi88h3pbwd0wjiy"; + }; + fjodor-53207 = { + run = "0gnmdc2i49529hniklcyqrfyrkfh83wbv9zmiqngw8hqmdw3zv68"; + doc = "0dag2ial9cx9hnrhxc40nb31jvkv618jklwahgj6ckqfl89410i8"; + }; + flabels-17272 = { + run = "1aawdjmk8rinhjwnkjz67bq7rcp15i15dsbb9xll59nij849ppjg"; + doc = "1yzlhd6c5b9y1r1gy7kvbrxygrkia0cz98p496nj1kdg1wr1xzbl"; + source = "1vyjgbn2kihvzf85fg4fdg0v46nh0flic1amk7k3sdcxirn0fzvb"; + }; + flacards-19440 = { + run = "1k1h06a22jc8wdcxf1066rn4sfgy4m3wh479f4by1zrp773gykzl"; + doc = "11hadqdf0s7zaidaxfhd6lqhl3qf7zkalf9wimi3j3plp8ln5499"; + }; + flagderiv-15878 = { + run = "1rnnj84vl29061hnbayz5sxp6h1civl9c9w2n3b0s56i9kxv3dd6"; + doc = "0djwrp2rjyyd0wk0sg55w2l75fwj3gabd6bim1smpvjwsps0fcd0"; + source = "1q0g5127vyhkjb1g0v20kd0x3p0b67a9haich1a6yp71iikl1s8p"; + }; + flashcards-62104 = { + run = "1xih8g4znfwgd5cim1z63q4syg9jk8nz99q7fgc9mahzq7xym2mf"; + doc = "17as1mkgllva5q92qddwzffl7dsirx22wlnxn12yvv6a0h8hx57l"; + source = "162r74jij0b8yf22xyvrakbrzfh7vjpfl1800ahljas7n8g3h1wi"; + }; + flashmovie-25768 = { + run = "01rmqf1rg5vbxzs9wap7m8d19fw73mh3k7min4msbipvg1vqhgi5"; + doc = "1lza6mv55da69v8jwjlcd08v5y2gs2s87z5h1hrsp3p3mx3chya1"; + }; + flexipage-66614 = { + run = "1296cbg5kszwrq6ixkpzz4w4x0a7k77kf641v292awpf9sd0mzl3"; + doc = "11s6ldawl1w8vpv6cvw05d9krjxv9921ilryh9ffwrrpzf4vgjmv"; + source = "14ajajbl0xhjxl5zggjpip1b4grszdc2g63csgdy79bpiffpkl51"; + }; + flipbook-25584 = { + run = "15b2nzhpgj6018769ggajya6qmhq9rnyzha0sic9fff24jwdq62x"; + doc = "0lf04giwsgjq0fsk6wrms4c3dg53v1lq3n0q1ij5pw4390llsqd3"; + }; + flippdf-56782 = { + run = "114xvv7sv9fhqxgfz5ckydn95mrg4049ml3kg6vjjiwbilmszr2h"; + doc = "1fgk3g74arazrmw6swfyq38s5gdw8knnwwf5ij0dl566cwmcfvmj"; + source = "0hbw3wgdva8vkic4sz0349mdyx8dpz3k5kk0fn80m0yqpldwgkid"; + }; + float-15878 = { + run = "08jb0v6lsyff09hid3whah0i0fk5znsik5rigl4l7vflnvc6km8y"; + doc = "0pqj9qq5yprg0xfxga8ck1s2wyjzz4ymhpqgzhzbxbdslh475vg4"; + source = "0774d7gmb8c7fc3f8yzarlx1m8nld1vg4gpd3dfyw5b39ra4aq4h"; + }; + floatbytocbasic-67945 = { + run = "0vykm4w2a4gjhjhrxr2x3vaan81yhnylpjx3z48cwspxixlnmf67"; + doc = "12yyyc456v4i5dj7g3cnv03zgvwvsv6c24vfz7wn9jk5gv90vrwf"; + source = "1gkq5v8z77cncqqz5cvzi78jf66v1kcni3yphzhykvd2mgpb917v"; + }; + floatflt-25540 = { + run = "15v2m2mchki2gcz0fcp3myyr806fqyy77nv9g6rqm11aqp6212bw"; + doc = "1d7v1m23p47rl9lln02c6bsi5mkqi7c03dhmnjhg8bqp6xfkfmaj"; + source = "1j53lkr1j3fp5wlb41x2vimncv2l1pc8qm7qy74i0r1xf7kfibzz"; + }; + floatrow-15878 = { + run = "177knmgpv583xajihdd5q5spaainn8h35kgydq2sfi6ch6cadirh"; + doc = "0py5a36gdbsd91679k4chfxy6ykj2wkjqlg4zkp5xsww6fxglskx"; + source = "1mpskdqhghmgh7i3425xb985pwrcqcbfw3hlfhbyx3bhwwx5pnqx"; + }; + floatrowbytocbasic-67946 = { + run = "1bxvfl7qk36znp2i8a704r5jsm2kljaiqyff6nsfji6v69wfgwwg"; + doc = "01qaaddanpvl7v41v499r61m7b739qjjkwj5k9d08h28v5lrny0l"; + source = "1jy49cv9kvcmhkyv8pi45fr1991dxfn7jqvq1i06v0adyprvw01m"; + }; + flowchart-36572 = { + run = "1b6gwbnd9xjcvjxgnl6xjq6lja1a0p2xnrdlbrhs6ka6f6pnrbl2"; + doc = "06i32gmsqgvqgy0l0qbdjybnp4rmz2cn1c7zw76w3mhd9z220d77"; + source = "14ikpr9fga193y2vgr5sisvzc5scf04b1xc9hcv6zmkcph8dvnnk"; + }; + flowfram-35291 = { + run = "1ccmry6f8danw6jqdsck7pzwjsrh5vcfy99f8kzyqcbbrzl5rn8h"; + doc = "19rrav68s3wlwgaa4mhgqsdlr1syfpvp4jzc80cygi0fhv2hn7yi"; + source = "1hrs58xhwawxqd96jb5hjywbfra6az2qkap0p5zap9zkck8ixz81"; + }; + fltpoint-56594 = { + run = "13zin0r1hcfihji2h33q039mpcf86lw2q017ss8848xpqs41fb0p"; + doc = "1yr5d1hs3bdd20df25c1jyb0hcizwq7bxjbcn804b97sjk2fk8gp"; + source = "19qy8da4ppsd1agh1c3xs9fxsl6z8c60lcyw4dd88mymk7yk4ysd"; + }; + fmp-15878 = { + run = "07ml6i8lqcz737fm33g95nx1hz1p0z251h7pgxvvvdmn5dml1l94"; + doc = "13i7axi1s8qqgdvdky20dckmsa95q2q54z7cf6zgd0znzjy6d4mp"; + source = "1fd8h6dndrc7hphs87y1lfplmkrwgn1pxgmvf00gfhgkg1zf127b"; + }; + fmtcount-53912 = { + run = "11d9pq2cqd1qv20wr5789bzmk0a82j4rf8y9xh4l6nf2nk9p5c3g"; + doc = "09ikawga4sg27ch8rvdf9ni0k8b3nk3k84mgydlv4lrg5gb2hv12"; + source = "0ijsl21nsx2kkgbcc00bzs637rq3x92ax0xbrdagkfvnrna0bg69"; + }; + fn2end-15878 = { + run = "0cj26s7555q49fi382pbvy65xa0yp0wbihk3y0magblyxjn72wdx"; + doc = "1kafhgr4c9d4pjpydd27ha1pdbxk364qv8dmcr7k3l7xlv31jv4f"; + }; + fnbreak-66615 = { + run = "143wpqpcqaamjvg466cwpggcayxfqnf2vjvfvy7xwgky9sfql05q"; + doc = "07h1xr1xgih5j8mmqvv6v5kavnb9yzrh94g0m42rjqdzg5c25fb6"; + source = "0rxbjgb758x82gvjrmap30q4jsfq0424r3xszbm1f9b4wb48xqxd"; + }; + fncychap-20710 = { + run = "0x3sjslvz1gsrr8607q9r6k8683p9zcz7p0kxvr92j9ls1prl5c4"; + doc = "0is37brbbdqb1szx3rwgmaqbl8vlqr82sy8svam39yrbnzd9v1k3"; + }; + fncylab-52090 = { + run = "13l9jmcwabifc7m9klgwl2gqypwlizy1mb7glsvp3jslpkhfj267"; + doc = "11w7z5q433lnzfm4c72697f82yb7rljk9zq41dl5bdb7l9wd7325"; + }; + fnpara-25607 = { + run = "0rn4yk1zd4h2r5xhghv7v0ph0raspq4r6mw812hn80bn8rhjjrlq"; + doc = "1w0pkqqgkq379nnqk0wx419z961l3g81ldkh8ivfhn9q5vk04p0s"; + }; + fnpct-62248 = { + run = "127n7966vy4rdwypbsczi1aksrf6pxl8xdywssviivkk3npmhwvs"; + doc = "0qixawqmjn2b1yy0fs140a5wfq0py5bi58gpz8c8564vx29yva5q"; + }; + fnspe-45360 = { + run = "1w5ibha9cxychlvqrbj2v49kizc7hg14lhn1smky2m9ijqrrdwyn"; + doc = "1ix8midc7hy8443fh3vkrl875h1v9hqfwmgjw750gdy9x7y06fmv"; + }; + fntproof-20638 = { + run = "1gq483namx453zg5yv7acvhy9hb93z68fyfb54ayqkka2n35q80h"; + doc = "1qzxky8jjvnlznm11rjzgxmhib0psv7lfk3nfb8ys2wl0zjcrg2w"; + }; + fnumprint-29173 = { + run = "1i04c2j1jnw9qkbv92nd4rr0zzvwwdwwk0ya5f4g4rarvw9h4z5q"; + doc = "1cwc4jv9jxxinradairp45rlr97h52vxghfxin6dwszw51ac8p7n"; + source = "15d3jpxs8zgsj40xipg3mfgir41p46c3ppwh4629a1dv4skxg2nj"; + }; + foekfont-15878 = { + run = "1vb2j10j6ra47gyp5a7fpv3868b1rgk2w54w0cd8iczvshbzva88"; + doc = "0yr9xzq9pxgaw14r6494162acj4yavyd7r123fabwf4dgj1xf46c"; + }; + foilhtml-61937 = { + run = "1qnh70h01ys26spbjcq71zdhq8j7lszinv26v6ikpccsaaxnfdl8"; + doc = "09b3lmxzhfa1h7nwjvidq2pd11dkz4aq3l4ciz0xh7gyslfdwvgd"; + source = "0zhva600hf43h01n9ycjcjair84y0wzpn00z6ihyh8s6g199g428"; + }; + foliono-58877 = { + run = "1k91x2yyxp7n1akm8wm4kgynl977gq7z6pf439aaij9r0zzic2pm"; + doc = "0f92kpv6jvvmr9fh24c7iki37y8ph53n3ixi3qjk8bb55yldyz46"; + }; + fonetika-21326 = { + run = "0fmhazwrjh427g0hz8br5b05ccxv523n1ar5ib9hp3ndqh6svpgs"; + doc = "06mbkp04rwpb2jg6kbq2bxdsagbwl3vajzh0nbq5bfg9lgdv14l0"; + }; + font-change-40403 = { + run = "0955bj8r9jzzyyzn3shs3y7iyaxjzs9m3b9l2b33hpd4qxzzp03r"; + doc = "0khs319ifwl7gfkmv7y27ysqkadz04l7zvcjxn08qzmhsxhjpz6w"; + }; + font-change-xetex-40404 = { + run = "1xjxrpqfxll7wfkgm5ksjfavk7zr5a36qfjm5aw5a92wgqzpmbrp"; + doc = "00ikhz2nafa2ck1j6vb564ij61lnqa64l9xnl4h7v12g11j0h2k1"; + }; + fontawesome-48145 = { + run = "1s1lkmpmb9fj4qmdhll2mn1hz8xk89z9rwga5zqpjb9was4vrg1y"; + doc = "19xjkzn9vgx2sgv5sypwcmwyx9f7rg4q58f913rjwrh8gvncv07m"; + }; + fontawesome5-63207 = { + run = "02ip5czslh9120nrby3k9qn0niy8bryr4190yyhibnwkr9yaqj4k"; + doc = "0mbqzjfdm9hpds1fragbhds1zzyk91xzfy4azzn8bmb6xr3ix3ai"; + }; + fontaxes-55920 = { + run = "1xm9a33imgfsj1r6ky6c02ir857ccv5llqgjyfh2rlvk9xprmcjx"; + doc = "135xhw9vda8l3cc76ja8akfj33wfmmys9wf2f1j5n1p742zj0g3s"; + source = "0mq9rmi02p8lnkg0a8s1bi7rn34dg82n9cqr14sjrhqfvpl3hzr3"; + }; + fontbook-23608 = { + run = "12dcha7gkyl4ycizd2469i628l8qvh1xzacg7bv7b55q0dip2hlb"; + doc = "1ywxxp2ygc6xjrjsmq1ax4p9v0z3hpmbcgsnqm3vdnnda1c0gn33"; + source = "04ny0n1wgs27ky6fpf0i8ivhkj6ypad537mlx7rz39kkjpl6mz96"; + }; + fontch-17859 = { + run = "09jpw4fc3kk2w1rxs0lm5sfvl8v12y9gch4viy6hva3sh3w8yzin"; + doc = "18si3pz2crkyx075cfnz3ddwbgyccgvyxfzqd70njxqspz8xwf23"; + }; + fontinst-62517 = { + run = "1jqhfib1ml33wq292x9ff03shyjrn2b3grw44cxzxndg4vq7mn1l"; + doc = "1138mrjd4lbwn05kksw1249ffjkdpxi88m8551wdmh6q2bnqmw6h"; + source = "133myqzr4xlp4a3pw8ld815mpl7l9y6rhz620ja77sv4fmci76v0"; + }; + fontinstallationguide-59755 = { + doc = "1i6im0nckcr9fzs0kc54dvcj3jvjz2j8jd55xgjm0r569qjj1hi5"; + }; + fontmfizz-43546 = { + run = "1ccfywcywrrim1hk7g0kg0bljq034fh27qrr8w8ypcyjdnafkhxg"; + doc = "1fcsrwbn8kiyw4032kkjg2668ax0kfcb6g4kzgp6bjcmqzy6q1zc"; + }; + fontname-64477 = { + run = "0ylpryn5wnjnf6acjl6kp67i0vl1dz59xk2xbxb0fqhx5ib1gdgy"; + doc = "08vfa7n2bzjsay7b7zaigkq7imlfmq92f4firwc3rx9hfm7hjbn6"; + }; + fontools-69241 = { + run = "0smka2cr5al8f00hfcwpbwkddl7g2zcgg2jrak2j8p2ycibvfgaa"; + doc = "1avxm73plf2p0xk0gh11311bfqbwlxdyvgx9hpg623ngyw90wkaq"; + }; + fonts-churchslavonic-67473 = { + run = "1s8y5kri1sjhsbz2mdszwy12vz8k0b5ad0rp383jrgcd710n3949"; + doc = "05kgbvjj4w3sblsjprgq1gg0inrgrx0hpim8pmbgqj6w8xc1n9kq"; + }; + fonts-tlwg-60817 = { + run = "03fs5l62fbkz9rinnraz9zfz1byjd74xwvlfqcv4cvbxg02dpgmm"; + doc = "0l4p30am56bblp120lcs81idahw3wrgmbrvi0jzfnvzsyd7xh068"; + source = "06zw6amxdkmb9cdjvkvwgah5x33ksa9iigb4dcw6b9d3a0q8c8ya"; + }; + fontscale-70541 = { + run = "1cq9xb7gpg43cjcz4cnwg7ggj08rnfrkbz8w3gfsg4ayp6rjasgz"; + doc = "1vbsymgcvq8qhf1dhk864zwaszv3ai1hqmyiwfcl832m86cd2w5z"; + }; + fontsetup-70135 = { + run = "0f9173hyb427v4dvimfs450rav3383c6s5v4gr3jfkmz9l5nxla9"; + doc = "1lkw61hfd435dqcv44rczacci3fmmwbvkg99lhihbxjx51y4pbrn"; + }; + fontsize-60161 = { + run = "0614lcl1cxc7a6irrjinp5x1rx2cbzns0al7d9f3njyyayp13qhq"; + doc = "1c6p4yz000rdcmjkn7pgz3ckw3p42xkz4clk5dz01fnxifmmlf1l"; + source = "0lvywzrc56rfkkwipwhqahkm8a70cnff0r01rpl92d6n6znl278d"; + }; + fontspec-69880 = { + run = "175j2zf33y5lh44x87mgp2hhpw609131k99df4fqzq9qn2zxfmr9"; + doc = "1qysx336dixj5m4wvjdjn196jmdp6ll1r2hp2kc7jfqwzi4qpjkl"; + source = "0b5yambwga3fqlhbfjv6jk3lkxxj9c9fyxm3hxm8nzywhwlrncd8"; + }; + fonttable-44799 = { + run = "1vz99pfw4akid9hjf7dcqf1fx5h30sr25i1f9q6a9frk0wpwff72"; + doc = "1inb0ai6q8rjsrcwgv8ns6as60ifdidqzqb8x9ygaw3j5ykzr02q"; + source = "1qjilvy77072jpbdc4p4qfy5d4n2ww2wcm5drwvai6p2aclqf29x"; + }; + fontware-66186 = { + doc = "0ng27m6cz92aa52z99gnw5i8s8fbkxq4354mygwnchchgxndcba0"; + }; + fontwrap-15878 = { + run = "185mzghp8xckdq7z6cdwznrg1pswflvfy61bhsnpaxx8wagny1zk"; + doc = "01knmxqj88g87ljvxmf8rr72i2gh9qdmx7zsbwyjmibiw71l6pcm"; + }; + footbib-17115 = { + run = "1vr72sl8q1ccql2p42v3a9qw01a50v1c1rxpgmz39pp65w4z8s1n"; + doc = "1xyq88jcg6p7lc44n2ky7538r23d4n0nhfkq25q7xg0dh8whbm34"; + source = "0ps56l6ah0i398f38bxy4yg2i1p0ajcwczxq222hl5176g2z28jb"; + }; + footmisc-69729 = { + run = "1xyx6fj56vj49m9848i83jbq7k3hycx9pd5nvc3cd6md99bmx9pn"; + doc = "0ik4rl9nmad0f9zjx600sxvlig6j3v0gw2lhxmkbs37v18p0xqy1"; + source = "193ki23hrlnw0vkh2r54m3y2h54kzh989pk6iwjnfgf91d8nijzf"; + }; + footmisx-42621 = { + run = "0f6csxzkwbf4nlw6z9rfyys1f7fc0vpdi2m36g7y3k9l3j6wb3mq"; + doc = "1962sivh4jipsxd0z0cpzpd0jdw8v4afbpzfinklivnla2c9hp4g"; + source = "09w5bfx94533q36z3k0a1sf9jx6acz85qgqypgn6b0b5mkhjsmar"; + }; + footnotebackref-27034 = { + run = "12vxch1i8x0k8d760vgq61i7j3kkylgbcxj6ggdv8wzd20h4izyc"; + doc = "09dvvnjvika3617zx438ca8z3fmdkqbxx9y73pdhn6gaggfmzr72"; + }; + footnotehyper-60374 = { + run = "088mh736125609bliars0scv7v7bx315ajk801yj28vskg0ki5d0"; + doc = "1dj6kpqar8bh0qk0qma2ckp68cll2ncllqfda4ffmc5ljmjp98m9"; + source = "11dg59x87a8yjq8j413gk4p0bmpq8awwh50c6vs9rrcgv67mbycs"; + }; + footnoterange-66149 = { + run = "0z2v5diab3xpq7x63n0w71r9yalnypyv70syh5n4nr79ahyxcmmx"; + doc = "0gg1sc5dv9kpxavrdkc2865fcwkyc9j24bvk34l06fr7ib43bja2"; + source = "09qa9gp6pv37kcck55c9zv3ky79xdw2ivkwf94nzbw475ryw0zv3"; + }; + footnpag-15878 = { + run = "1qdl7lpfy5nn6qx026b9aqz8nfs958grh443lkqyxnrnws0n2nww"; + doc = "006w2w6aga9zazlk8sv8maqi4s1rdzqyphp0lpa8qv5q23vcdhl6"; + source = "1hh2754as2yrmfz4hiyyl8nlshsfdhpgpg3ifhs6h5s0xz947rw0"; + }; + forarray-15878 = { + run = "0cn062f805lgy5m45q6flxj5w6gjfa4w1ip7zmhxd2z09s962jf8"; + doc = "1d6m425lfg1g8arjyz4j3q9253rdmfaabaasbpd2ynhjr1abfh3c"; + source = "0dpqr0hff33ddfw6vs0pnk8yhaa4gxkxgn43qgx06mx1srv6rz1i"; + }; + foreign-27819 = { + run = "1hqmhy3l2hsjf2hkxhrsdc3z1mn3zx8718w90g8152x9k84bf7jw"; + doc = "1gnaazl1ds76sqdpbj773k80isyf5hmjxh22p3hs9zxcpnvdhng7"; + source = "1ziafjxcncsba0gbn1qjf2w2gn2g9z55bpcff71hr9axhp8xgpgf"; + }; + forest-57398 = { + run = "0q1xd07z1ccqrrfl3x0fg35sdv2kcyl6vgps7f6gpk5yp8j7d392"; + doc = "1s9i1kxd5zhdqv5xx29kh8i5fis642hcw76ya5bh94qffhwwg7j3"; + source = "1i6r6i8zh70zxz6sk0c9b07345vcfr9aapw8q5kzd3k76fzcqfdl"; + }; + forest-quickstart-55688 = { + doc = "1bjy0bfkb90nv2dbdw8hdrm3dvm1v0r0m7a0l44ckw48vnc6amvk"; + }; + forloop-67017 = { + run = "0mqlc65g0khj1izxpgm7yya2klazsqggz2xx61ni38z7kqhqs58s"; + doc = "11y7afy69dkp9rabj1186aw1d8vfwk3vp9raj0brknka6wlgcijc"; + source = "0k0skv10m7z44d20v17yfdvg6vpn6m9ajn973d6da9cshxvszyiz"; + }; + formal-grammar-61955 = { + run = "044fz33qawb2s81c8walxiz0qjam7vsvsnsvqchmf4izd0svw998"; + doc = "11rj5pbampim79ffipm7asn8q7nf8yy7l96j0j8xjyfxcqqld6ca"; + source = "0xy21vgswxjr80q1qcx633g09qivgkd3i9gf0fwjmykva23q603z"; + }; + formation-latex-ul-70516 = { + doc = "1jpw01lsl5lialhk0n46v47ddb66wn6h8s3crrp06m0fldaaq84x"; + source = "1vcchlg0dv2cmkjx16hbbzkvppva3mqxn03h6m38gg7q9w092bc9"; + }; + formlett-21480 = { + run = "1gjdgl26ma0sh15yrgi8kpy4sq268jkz9jmyw66iy3d4k9ybggsm"; + doc = "1mm2m4qgiz0aplbyf3rwzhpfzhyg3mfmzc00z35kv6s5phcmlnf1"; + }; + forms16be-51305 = { + run = "140xh5578cpjn6mfwnghy38alz4av25gha09gl7c7qxljgpc2a7i"; + doc = "0wa6pyn8l8d14d47kqvwvsnkv2s9mxfhmzan7jgzfrmkb74h7xlx"; + source = "1l3ci86wl6an48a68vfh4ynajq6j3br8wbafm8w8c0x810hb141w"; + }; + formular-15878 = { + run = "16h5hf50ngqarcxk4gjs9x9mcycmj5cqwy5pb6ffpj9xbsxn4r8i"; + doc = "19aq7sbghvrif72x7vzvabrhwj7lgsddsbdqbkv9vhmp82452vyy"; + source = "1s8ngbw6s163dzj9mi629yd4fisxr1gl8w8i618my426szc1vrcx"; + }; + forum-64566 = { + run = "1jvw5w58v5npajvhs7dq0srgdqha9yqs6xy56fbk3lm8y0cgsx22"; + doc = "0cihnv5c2if9dr5mz9iw12g1bfh118ib2an0sgigqcq6f4zp4nxh"; + }; + fouridx-32214 = { + run = "033f2yhslmm70byg4pkw64g976vgssc6yiizmh2f1chlfhsz1qhz"; + doc = "1k6zirff9bqbz7assfrlq0r83bjqgzblgxix7697lmp6ww2rj4l8"; + source = "0il905sqxqvqk0fgsns3yb9hjh740h69imykxd84p92fndaha5mn"; + }; + fourier-61937 = { + run = "183dsh8z5dh1q45qrpkas40ga2m4mbrgl727v0khqsxxim5vlzi8"; + doc = "1zcr023w2hdk6y3x1d69nrwzsv3qd8ip63rwcksh69k4q35r9xkz"; + }; + fouriernc-29646 = { + run = "1vv4whd3axfacbmm8nksdc37d5zras4gwa6ykgw1svplqgg3zjk3"; + doc = "128n1cnv9h1hr4s6bp3xs1v9p7skhxlfy8afslpay2bm0ixf0cs3"; + }; + fp-49719 = { + run = "07qzdfrk2y499cz9jbpnj024r43japqdngbxg4mbapw9cp8066d3"; + doc = "1y1xwqf6mskg10h31ws2pvn5y6g9asflc7l9r24fp2fi4254mvhq"; + }; + fpl-54512 = { + run = "1jpbgs674zkjayx5xbg4ymnmygxcc15ysvr4cpz3abp333cqzjb4"; + doc = "1860bzvxbajy3r5gpz6hwy0vib632fkdig2zcb51yy2qgg3vbal8"; + source = "1fr7ydvn8ql0jhplkwxzrl5cppxbklg97nqb2rjigvmqqidjk0i3"; + }; + fragmaster-26313 = { + run = "1d59sjzlvygwq9b02gbrfra4cnvmygza80b5rkghhhpa0n3xnx9p"; + doc = "0j1a2d4ssj3y42f0rsyhd7yl3pak9cz12fy16k2h8v02cvc96529"; + }; + fragments-15878 = { + run = "02m23bx1p090m6w1frb2k6m0cv6jk8d9fdbmjscwa7c9c55qh5gd"; + doc = "11kj5gczbhb0imfsf30hc74s50iwq4zfs79j6kv62ib6v3p32mm5"; + }; + frame-18312 = { + run = "17r35x914f3h72drsszy74ir5phcxmkrcvwlrfd11li0lsmiyj62"; + doc = "0888jcccsnlpzkynpg8mvxy2mnb2d3xz41bi341q9fdbbzs5lmnn"; + }; + framed-26789 = { + run = "0fp0zbq3bjfqx87zb01m5ffn8kw8044vkz8b9cfndz1ki64d9x4r"; + doc = "1pjnqy8zl5zkadpkvwa35khwjk1nxg9pq0h1wqwgrdvqk6gj0cbi"; + }; + francais-bst-69866 = { + run = "13zc3d8ppb9p53gfdssqcswz5bp3pfacxdk0w3jznfznkwpz40pi"; + doc = "07ya7r02x7vj1n7q5d9z520vdnlrq2384p0rk826g3mhi9372jna"; + source = "0zbk98667mz8lpv89c31q8cblsqs54cjn8i3kg49pi9avb92848f"; + }; + frankenstein-15878 = { + run = "0zj1gcl4gab78qcs2rv5i9y4q234iz731x2hnab169ygql4d95i8"; + doc = "0x1fp5xc2qlx0pac2vqm8567fdh8i97k25ixr28w7fzwl9xnm91x"; + source = "0ag37z3klcy0jvcvvj7v14clx2dvv6q43lh6gw83rpsx51v9wza4"; + }; + frcursive-24559 = { + run = "063909r7iga0cirxq8qx538407qly4p2a440xq7c603fmgcb8n6k"; + doc = "147sa2wcixanwrhdh3ns8fg447zh5f42z8x0aw41xhk7pxncqrml"; + }; + frederika2016-42157 = { + run = "1pi2bhbxw9xg78w6d6k4l6p1qnm4nh6m8k3bn76kv4ascydc9hfg"; + doc = "1vyy278j376swl2sjwxygqm6mi6s51aa6qypgpw3w2g5kpsqqxqb"; + }; + freealign-69267 = { + run = "0b1b3laxjjjr45cagwakv8c50c3cmw5iycd76k94d9nxhgm346vf"; + doc = "0pz47rbacyyqyh075fz6pfvjpi32fl859mckpi4v0kwr9yk6k5aa"; + }; + frege-27417 = { + run = "1n0qak8xsi8wlg7r2daszdvi3hv9gmp7i04phcnx4hnlr68842d9"; + doc = "0hb7a6c0i0jk8cvv2vfr743ysqn2vh1y6amy7arc4zafi097nwly"; + }; + frenchmath-70163 = { + run = "03a7mq7qb0sv27ly8qaxm1fjmrc1z646las5f85rzp3hdzam6vvs"; + doc = "1d1j2wq15kv8bsjbm5p4im6ixbdj3f24vh1a3b3a8419bsqq60hc"; + source = "0vdh3g4dm3za19wjfbgy84pz3i33k3h17028nwa1wsgpnlnxn8i7"; + }; + frimurer-56704 = { + run = "0d2534172sqpzg4zj2fz0k1qa2m627jzqdnpgcak4fxighvx1733"; + doc = "15g0293xz99w400l3rj99849va3swi2j8hcj522qiyzfcx5j7k74"; + source = "0qxpdybwz0rp748rqfs026jvps026sffq3c7zi7bdy8a34mqmgsb"; + }; + frletter-15878 = { + run = "11gxmdwwzwwdlrmycdxi0y123hfikhp9jv1jjmhgsmsmmxsx13ly"; + doc = "1pzpz0q1hplni18m6wkwrhknw15h555qfdxfnnfrnrmsa7n2q2bl"; + }; + frontespizio-24054 = { + run = "1rdgh6wvxk0rhkadcrb1f3ymgxn81vbx489z16k88wkk1p0r4749"; + doc = "0mwdqry0h2f65vrki3kvqpjnf1nm5n9v3ljmn77nlvkarqp2kb57"; + source = "1p2c8sdrm0ay9nz0dqrcjigzsjki15fry6mmhqcm3gqrcscsk5x2"; + }; + froufrou-67201 = { + run = "0pincrfmb51qwn9bcfyqb6rdc0n08lwxf2gr8l74kfmqh2mg5mxs"; + doc = "1jl6glh4pjm870wlb4in3v5vph55fnvykjziqnq702gx5va52jmh"; + source = "0wng7skd5zyk0s2vgnilndi8p9b3h672pk00mwv97h2qb4lk848i"; + }; + frpseudocode-56088 = { + run = "0ypiw6sfap27hpflbk0drnd412ylv9r307jbkkbhnm5lsmwaax2l"; + doc = "1cf6424l655rykyfvca2yl0lwdifgj5kgvl0fvw9ikayf02wh3qg"; + }; + ftc-notebook-50043 = { + run = "07ng7dgbr1swsx0zwm831wijqjq4x6hnr02354jdy9z59k6d4lyg"; + doc = "0w9jxcfvkpif1fyd4xgwbfba9b2sf77mqr9symwby31lxqwrbys6"; + }; + ftcap-17275 = { + run = "0dbrhynslppw5nrdvikzdkfvilzr909ypc9v8nxpa3yh4zln182d"; + doc = "0iq7lq25gzyc85wpmr93a8ivgc9038rs80mvhm46zdrrixh5ry21"; + }; + ftnxtra-29652 = { + run = "07fazshsyqng62sfbnjhxglscw707jmn5lz1ws6avq8c5chs70pb"; + doc = "0a100iy3imy2x6rgv8pgkid75ah21684ddm6vda58gv8yzfz9fyd"; + source = "1ips0zm2cka9wh4474sc283102s6r9hvr4if7lhd04c92f40r3my"; + }; + fullblck-25434 = { + run = "1bxnzkidpszq5l2kfilrn8ny1gw680gcx9gz9975vylh5kissrmh"; + doc = "0zj229qkv3zdf2gz6qkgblj33zdhf8zixy59gqm4v69ld491wvh1"; + source = "0arshfc79aljbpfnnq5rhi7gc9sqhlx002xqg46wrq125cgdj13q"; + }; + fullminipage-34545 = { + run = "0zy9vk5a0bljq3my17fw4jl8rhd7vdzcmw550ps8zbjbhxphssrc"; + doc = "1n9lzacq920lmc18rhavz17xnm92lm964pglf6j8i7yyj5aib61c"; + source = "16q6f9nss1jx3pw1xq0j82y4gn70hdjaj9m7pq3947m6bkyz92vd"; + }; + fullwidth-24684 = { + run = "1kis1p158phkwxdfhpb4ihfs2w7wywj1lighc44sfkpima9c4nmx"; + doc = "056k7w66rh0z1kxf1m91sbjhg8kdy9jvfkwm3jmi5mkclil5ihi9"; + }; + functan-15878 = { + run = "0vxwabhbnw3dlxzlqz4yi4l4iw17a0w7lj3gh2q4l3p9lhzr9qmp"; + doc = "1jxx1inlzrbzm784zwkz55ykdqhn9ncz6cixs2wqh2sx1dih7cwn"; + source = "1a2x71qhjdr2ayii65qivjmwmxzw6id3vljd8nv3l04xnp6p5dnq"; + }; + functional-69929 = { + run = "08j53y7lbrimnydmh5svmd3v4qs4sh7ir9ng8g7rzpl0rakzy2bd"; + doc = "1wsqln5346ivbcpwzjhfilsgc90la1is2r159bqipg51jnlicg1b"; + }; + fundus-calligra-26018 = { + run = "1rnrqblg06qkwcy7f460pd1hnh4bwl47zyswa1iv4iknx00rd8a2"; + doc = "0jvbvalqyj0kyf6cwr6zf18ylckh3fwpshwhmnv7ldg5r1ylia9j"; + source = "14a0d7d8mlsw7qwpspqc2rmcdyhnfy6l7f57bk9v9jc8pg9fxb6m"; + }; + fundus-cyr-26019 = { + run = "02zz37h71nqq0f4sf00fiw80pq1q3yadnhqm2j3niz13gms9ydl2"; + }; + fundus-sueterlin-26030 = { + run = "1zpcss3lzhc9zkh8b91138ycwj8pihch318zr9pc6bl3ifq37wq1"; + doc = "1pjka7j1378bqa32h0b2dcinf6ayjmzcbm4c1sdw6dsvrzbnda3f"; + source = "1y4bg8r2hmpa38hdgkrk99v87cphikdb7sq5x9aczbmwwgmgw8fp"; + }; + fvextra-69001 = { + run = "1dxzwabx3zifcidp1hv56h0kd234jixjnblym2r4sqfw7lsdyjv6"; + doc = "1wwpl4y3qcgg1k6ahg0w4rwxzr3qw0nv505dric5qpsvi1944fj5"; + source = "1jh9y4w5c05vsqv1yvrbra9pkcz2j3bxqnqqxlnyv5m825k738bm"; + }; + fwlw-29803 = { + run = "1qwlknaljj8f1cpnln328az913cdwypr7w8m8iqbqiqhsl49siap"; + doc = "1cib3id21xblai43gkn78ypz6n99vwzhzmpdifdm8wv001x7wb82"; + }; + g-brief-50415 = { + run = "0w0i9mqc5wg9za3n99i3fkn4bw78l8kf6glh0k6rvrzss0sg79cj"; + doc = "1ikasv5w1xr5ms6836q1bnk7b87s24m15mnwsbdyf7cnsh267x6k"; + source = "01j6zxs8vpiiimc10hhl93xcixwlzsih5k56n7v9a1a3czgymad6"; + }; + gaceta-15878 = { + run = "1yimj3mxyjj36ib4lfdh65sz5w71rlp41hhnzz84kgb5y103wpaj"; + doc = "0vvadcqjj3hvjll9nqn3mam9ycas0zs810qi2jnq6smpm300c3l9"; + }; + galois-15878 = { + run = "1knks42bg72lj8nqdy2iyaqkq5a76yf4zxql24mwxq5fq5xv1vmx"; + doc = "1nqhf3si1kljbr0s1sb22kq6nfrp9ycvm6smiyxbw5lyl3spqkxv"; + source = "1rlgf9bv4rjkyifz3xvvkv6xnqxl0pl973mq0zqxaiqfkh0i5xwk"; + }; + gamebook-24714 = { + run = "0ccsyi63paf40lxphmb60k5xciw8v7vd1hqllgq84mry7igzb9np"; + doc = "1c2m4009fralq8ahhczwfxhh1cmsdh0c5072yrirda46khd5wy91"; + source = "1dk3fpg5038jv5bs7c2f82vll0bdd7c1jrajwhlfk1v16p2f5i1c"; + }; + gamebooklib-67772 = { + run = "1qk51f0a4z1frby7bv553rxrhg8xgfkxfnr4dbq3dg7mydzrl444"; + doc = "1cix1yzasbqpghvp5smban4l16fc48zc8a8d9jjqgpb10l21a2rl"; + source = "137a2hgcvmkgsd8kyzxlprr3d6v08xvdv3s049cg9lxazizm5g7k"; + }; + gammas-56403 = { + run = "1wcvzihv3xh52s3ydni4gs3lcp9icmxinqj6znwyy680izmw67ba"; + doc = "1al5rvpfavkc1p7ayknxnrs4r7jzx7f7dbm3hayqwg0d7jdanp8r"; + }; + garamond-libre-64412 = { + run = "0cj6sla634vcp3ih7x4fg4iirckiizdggw8y5ddxyhszf1ygkz5q"; + doc = "1q1iy0xifacs7w76x4pgcjx13hvj0wc5l42xzac2srbmx6x2n4sc"; + }; + garamond-math-61481 = { + run = "1bjskvaqq4glba1vmcksfx69p6r025sl8aynlbk46kh7x5fa6vj8"; + doc = "1jb0kcy715fmxhbzg95qwilwnmp45znh37iisiny1dzy8919nlbh"; + }; + garrigues-15878 = { + run = "0qr2ak20416p5zlavcbihxkjvifzwj3cf03ipsnxlp4a0r3m0hgy"; + doc = "03cx077kcvny07dkg9dpgvdb5vh4z7v0c80rn82vqj1l3i0qrxkn"; + }; + garuda-c90-60832 = { + run = "1yz7zpwdvvhzcsfcz4dc40nnaagwrsxvskc5bymmdxv1zf6m3npf"; + source = "0palvrkdf8c8xhx9d2sxvch0lgycvn10bfszzwlbxw6qrbnpspr3"; + }; + gastex-69877 = { + run = "02mz7znvwjsxf6n1q1lfx1wgqvl0zlfq32a4xkcad7gjr87v16bl"; + doc = "02ihbradpmzz8h7mm21nqvmma0qqsa4sp3yzf4ll09pp19i9zhh6"; + }; + gates-29803 = { + run = "1vxn3j957za9j6ryf3nhy5r744gr63m78xzvlh0z10sr0bpw46v9"; + doc = "0igxfdxyiz280ryivffq6c7y84c16ip1av8wn11j6x62dcsrm58x"; + }; + gatherenum-67201 = { + run = "1b5j4106mjdswm519nb9sswnpnna5v6wcy4p8xbccv01044iqlk1"; + doc = "0afd1c352075ix46y0jrhfwlbsaibchvz3xs916qi3hd8a90hbpx"; + source = "05dri0sgr8h29q3zxcsyhplhrkj1wllfb42d8scy6hp4mkmbsr06"; + }; + gauss-32934 = { + run = "0jsbvm7sh7bhs5yfl17fj1gbdqgpm7qchf07y3p7k0rxxg0f482z"; + doc = "1f6ycdq3lpylkdwja4f89plz7wpnz73wzgjz74far6r9wr026443"; + }; + gb4e-19216 = { + run = "1mi8nwxa418wqp9w64ya1i0ag0pdm4cx08fkmaa302bkhym92bal"; + doc = "0nzmhjqdhl0x29c70iqb8b96pjnx2vm94nk3xgid942pmx44skxb"; + }; + gbt7714-64633 = { + run = "1i9a732px7rrgq69czdqrvnchwwxzl7cmxm1pdnbkv6s2yaakgdl"; + doc = "1ay59q9s8vq7bqvif314xjr34k9b9g4gk30w3wsy7k44ijs481k2"; + source = "00qbmnsyv87q81m01lgflnypwvff7xbqfkf750pfdyd18g2r0x2d"; + }; + gcard-15878 = { + run = "1pcxw9mg6hadr5c6m4z3pdzs0b9jw22injdlk46xxhqy5gsafa7v"; + doc = "03686fg2fw1k1j5rrskxpb0yjn2n5l697l66gww90jysq9546iag"; + }; + gchords-29803 = { + run = "130b2svqilpj14jl5slw11b9dqhq1nvdph6y3qcq71pgng5lhjjy"; + doc = "10mbr14bjxcl4p42r0zsqag5sg8yzp1mpi0s7fq7i9197kg8i77b"; + }; + gcite-15878 = { + run = "0dl1plmbn4i5hzmjz48hyfl5wj819pg6k1kjsdycx4wi0d9ff2pr"; + doc = "175151qpcykxsf1a6g9v6mkhr6m9cm5miw3ys6j5csrqm3vsl604"; + source = "08h5kxah5q9105n1awlrmiy0zrl3rafb8v3nwp4qfakr83q3vf3k"; + }; + gckanbun-61719 = { + run = "0bf42j8ismm450431pqvqgwzd04xsr7qlhb9di867qdyiy6hbrpv"; + doc = "1rpgm6jclifxzs4k5ybkn9pxsl60vl167jjhffg6d319g3miy7al"; + }; + gelasio-66805 = { + run = "05rr0vdiw9jd2qzasq22zfpg901l9jvighlhsgcpl2n3cfwa96i9"; + doc = "1n8jyjs056m85h2n602h4gys6556k4h2lwyhck5wp4g7a27ri189"; + }; + gender-36464 = { + run = "0skwbiclrpl1n55dr3lkw86dvqy3f1n0b271ygsz6rr3qa43478r"; + doc = "1gamaakkqqf37cwwzxjbyfhz25gdzayzdkqk60xls9flp7227hbr"; + source = "1l5p8ib5lbvq2b8pizpwpbcv8aslmi8dd554win7ssd6vhgb68j1"; + }; + gene-logic-15878 = { + run = "0fxddiswkvfzbmcckl6mhyipxjlr0yf0579i792c6rvrqs5avyak"; + doc = "1nd4bxrq1g1gxcrs9lvnakaivla37p218pa4ns6jyjmimfl31gxi"; + }; + genealogy-25112 = { + run = "0w15jrd6aycdjh8qznvm549kzwl15v2zvs7awgk96380nzcsmhqf"; + doc = "08fxhib7wydjbd3bf24kw6zbbz2sv6fhgmg4q2c1lgxddmm8mpzy"; + }; + genealogy-profiles-69580 = { + run = "13371cbcx7lg3lkzzybp7vdlrkw5nd9v052d749jygsplqby8f9m"; + doc = "1pvh2s76kpxs98l4yv59clijinjg5agmniaibl8srpwpgcdx5ni8"; + }; + genealogytree-66513 = { + run = "0947fmawi8xzmv9c4k4355fkgjivkkjrjglklk6ar7jky2xsg62b"; + doc = "0wvqkdhk1lmvk79qla34l14hvcjmw318vddz1dhl21g0cri7fl60"; + }; + genmpage-15878 = { + run = "0fr4m2y3vfymlwk7ik7rymifyam2jhbxn3qr2sj40zbcr9wbah6n"; + doc = "12fxwrz5gpswyf523wm1pg99zilkgrpq8z3ls5gw9j7bdb71nj1l"; + source = "0q7acjs7g1xh5kcmrg20k9jayaf5vxz5p5amjjd4xj4rnb1wdlj1"; + }; + gensymb-64740 = { + run = "0rsck4ysx86d4gfr5a1w9kam98zzclb78v5hgdmhag74a0qs1n0l"; + doc = "0826rq87q35knzmwkhz6ipigx3s3hkzcypy977qa0r3ibcbdr7ap"; + source = "1na3aqqjfp9p9zb7hyzz6wdd0biiigih9fq6bxygcwflbwbhks6z"; + }; + gentium-tug-63470 = { + run = "05m3qcb12n143sxy12zm0bvj9zvkdi4sqsriprfkkfg6xlvk396r"; + doc = "1yw6xs5dpmvk1brwry30ak368xddbmz5z2k79fpnyrx9a9z57j37"; + source = "062g0b8bn41aynm3sk02ciapiiwl55whynvnz3gfzvlja3fn3xxp"; + }; + gentle-15878 = { + doc = "1l5fyfdbkpqlgpgi1hrnn2sz8hchlnp7z5s5584czafvs10jg6vx"; + }; + gentombow-64333 = { + run = "0r3aziqnq1pm2pfangv4238rpihaarndi3xhvpvfj7mc31b3mygr"; + doc = "0vqfamrsy4r1wqly1196cq2w69wydzzw09y3jg5llvyh95a6dp0i"; + }; + geometry-61719 = { + run = "0wv4c77fvaz8qg1ffjg3y06r3q4xjfxkh3m7a5s9ynwmfchcirgi"; + doc = "1npbvp9g9b4mp8w768gzx1vxsdsi9zlrlfgc65xmb0rqx7z19zvy"; + source = "0dm5zakrp71rxfa8xgj7ks0gfvmrm93sqi6f8m4hw7ls7yqm3y9f"; + }; + geradwp-63134 = { + run = "0dkn2p0hbsx7f6nzyvvg55qcy6n3c48m7cf88r68hw4l5kcm2fk4"; + doc = "04hj6j7zpbhsc4gzs6lb7vnmsqzbhfwirp8pzlsrjp8m7388y3ii"; + source = "1xxmhqiivybsk9kqmmjzcxdx6iqcpbwiq5dph1l4jkgkpyfkmmpa"; + }; + german-42428 = { + run = "0w1s582hpvmri7im4jsi75xjz8iij7yxs3n6nad2png1xaxxq3ic"; + doc = "0hclzvfgrc4ii80ywgjb8z1byn2ccqckvgk26fzdvcgg5j7v9x9a"; + source = "1a5svzkxqqnqzva8nb1r3z1rfhjyl5w4sgkfwj7by83df7fwgnhh"; + }; + germbib-15878 = { + run = "1nrmmmq9j52yjasjjsxx40gjdbz617j66kwsiv7qzpkh9p2jy9sc"; + doc = "1sbvvjxls934s1rxk0aq46glzvrn46cdznh26mhpa3i28c8xv3hy"; + }; + germkorr-15878 = { + run = "1bqzh9zklr0y1fj7lh6izbzsswsx00wlwgkg9wl8dxvxmzhrj6y2"; + doc = "0fx39c00hmwv2wvngf3agz3gl1qs5jhcbfc377nxd0v44kbl6wga"; + }; + geschichtsfrkl-42121 = { + run = "0vnxskd0vlslm3jhvpvb4ihzlssdrz5bywrxxysk6c391vyq3w0q"; + doc = "182m0m7lfz5wz017kb6kk2jn5vkmsll3js0sd4pqmr6gb8av44m9"; + source = "0hdq1lkgmcpjk7f8pl2q3c6rin97hdzwhfwacc43m1l3c8zbmqfr"; + }; + getfiledate-16189 = { + run = "1bhqqsvykrmqlgd8whfwxm8bkcqdfzm182ryngq8s6yl9vx39ck5"; + doc = "1jdsnf020iyiyxaabyaxp0nzf02s4kqmm8qf02vaclmbqhciicf2"; + }; + getitems-39365 = { + run = "1n02xiwch25vv9qk3rqddsm54nhp4fkwi3i5a7r3285md2b4vsiw"; + doc = "1m2wfxyqkbfk7zk1czmqp8wwmqd091zijqxvanjxf7azxfmlnvwz"; + source = "0njzl590bsmdnvm1gfqfjf5xpj9mj5ijjxjjxiya0741ylhwv6p1"; + }; + getmap-50589 = { + run = "158fwravmqda1zwzw6qzvq7lrd1xsjm9cdw3qgif2jjq6zsrnjqd"; + doc = "0s9djdlchnp6w7wr7w2b4jj6iq3v6f8r1ri5kbp5q3hfshjgah22"; + }; + getoptk-23567 = { + run = "0rh7b66fn37nkcy2y6q8h3j7i8njwdmizn68iy1bg2l080ns1nw4"; + doc = "0dmjwgv0qghhs7fa0a9jvk2mqbg4m3br1dk2x7q5mxyjzk9878da"; + }; + gettitlestring-53170 = { + run = "0kg2p7ys50ms0li3vnrabywnrjjgllpyr8sf9cz3rnv8zsab4b68"; + doc = "0xkk16ncsyv2s3klv316fprld0d5aqaldh3g10p5gcicmccd9061"; + source = "153bkg899ikkg5zhfw1nc48nzk3c0x5iycxspxcrrj52dpgq22kx"; + }; + gfdl-65415 = { + run = "0mdvjf5xgjk0gbz5x32pgavxw7s8inf5ahmg25zs3ffj1s5nmand"; + doc = "1ybyixpc8k73jv7dl6gmanc7k2n4j09z85a9sx1a2fmfmijngspr"; + source = "0wz586ljmff9j1irwqzvb6lqadzr6q382j2wxahnlymm7a4q4k6r"; + }; + gfnotation-37156 = { + run = "0n2g1kjig7rg9bkry1hyq9jap95jb9crzxh4yd9jylgrygva6wr4"; + doc = "0lfdm66xrvkphqnzmymym0s79bwap5x4h57q6ndb7h97p5pxhfby"; + }; + gfsartemisia-19469 = { + run = "0b200snkvdkrywgn3j613zxyx16prqczw106hfh7pzpr7w717lyr"; + doc = "03gi2v0vfcdar6qsp7xff9s5pd023i3kh4b8asxh9lah998qm3z7"; + }; + gfsbaskerville-19440 = { + run = "0n68mfx7026ymxlyhdyg9ppylh5g4bkwj95c9bfmp5bmym0q6dfi"; + doc = "0v0widjs2w65ppvzm04wzinrcyp8hcicgxp6brydjmx9d32yrzcq"; + }; + gfsbodoni-28484 = { + run = "00r9b46m6h4vac788vfz6jixrd4wbmscblhqi1pxhg76id33xdgd"; + doc = "1s0lq3ac01zcaqyvswn12fxhvqarq2b3lni1xza3yyk2p6y95g1s"; + }; + gfscomplutum-19469 = { + run = "02c0zs2xl2hy5wrrj25w22q1fj6q8w4qjbvlpx05pzzh3y63n3ip"; + doc = "0h9i4v3sag4fmvlnkk0wjxmgsq4kbiikzv0rzfrhzfwaifpznkcf"; + }; + gfsdidot-69112 = { + run = "0m75xf0x7y3mxhhnvs22f1fz4gr8m86g8z9nfqxvwijjzm6xgm1l"; + doc = "1jaxayp4z0ih0cr795as9bmp87h24z41ijhrfwwrbpbmjkkm77qx"; + }; + gfsdidotclassic-52778 = { + run = "03p2w06s9kca35jdby74q4x8if5gs39gb387rjgqbv3vdn7zxi4s"; + doc = "0qnkxqr8r9spg3xl2ifr2sb32hbvmka979c4f8aw4z1i810bs0kx"; + }; + gfsneohellenic-63944 = { + run = "0ycqh6fn1y4czslajdwnj8fga6f2riw0pd4az10qmrxayi5hil23"; + doc = "0zp7rba0mhbhjsnjwm3ldy1frz75grxgnkfl1gvzm4psxm3c9yjy"; + }; + gfsneohellenicmath-63928 = { + run = "1caa8w1jzwk77djhycahr3dd6n8823vc513gl7sgx2jid4gidz6j"; + doc = "1fk5rn7jxqlwhzv7v9fvpadhlr07fr4pfjlqh7zx5wl720xb3yif"; + }; + gfsporson-18651 = { + run = "0h2zy85jalpx2vyjszw0kkrav82zv549c82qik9iylgfwfk1amx8"; + doc = "1zy50pqr9bzfncs03fg98ws41v0v5c9y36rnjm5d9i7q2zljapy9"; + }; + gfssolomos-18651 = { + run = "1hn8k9majggqcis32nw2krnqpqdgy3y0dk777i8fqn28517ygxcx"; + doc = "01cw6sq180cjjzwgi7p2qr9pf6rq0r5zmnb39bch2g0n0rjxqwgl"; + }; + ghab-29803 = { + run = "0skiyyxr8l6a6n34lic42lf0rnv4jm5rpmzm08gv0qqq4ha67zki"; + doc = "15vpkpbpnj1w3nlc5wzy2k4fh8jw1a21asc24lj0j6dpb4mzja1n"; + }; + ghsystem-53822 = { + run = "02hvpf3idwmm4hjkbvcz0w9n6sb6iy1xcj0iiqa51fzg8kimpkzj"; + doc = "1lld29kqvfgl4fmj70z52l1b5sqcb3fr8d2aim5l88grnypn9gb5"; + }; + gillcm-19878 = { + run = "11aph8kbrsjl4ax5hbpirsgc4aznj0nkk76v1ax6d52f8bxjsgjx"; + doc = "1qbhq72bip77lsa5pk05g676c08wc0y1ix3c2iw1h5g5fk20i5y9"; + }; + gillius-64865 = { + run = "1z49x03rvpdgx7k3ry6wkz4vm707ms7mf0c120gr5dl0ggk16x8z"; + doc = "01vidppjs8nwsf0pnj5b6g7ky95ayjiklkr2fybi4arvc4lhswgp"; + }; + gincltex-64967 = { + run = "0w1pk80idhws2yva3zvlbnwy2xbrqa0dckhwj8d9sdqxn5j2va4a"; + doc = "0zdv33r7r6x39p80jwjxk4k2yi4rqyv9w3nzkn7si5ckw223gz4a"; + source = "0m1yd9b6qlbmrxqnyk7kgxx7227zy6v10sf1vw856gpx1r6xbc22"; + }; + gindex-52311 = { + run = "0llk0aaa43n4in5am3ziqvkl1c35q27am5xk1naszwlqxcn4lx42"; + doc = "0fpy0kvkj84vg1jz80jaz26k73rijrldy4m1p1xl3ccc7dxvr299"; + }; + ginpenc-24980 = { + run = "1brakvxxrm1gahl609psp4na8ylkggfs534nysnrijq6vf4r1ryc"; + doc = "0d4q0n0wh45ndqgd2zk254791lcvzrxz4alr2bnm9akcfbv03jz2"; + source = "0jw7qa8wrb20wf8dsaxinkrvfyjdsndd9izxs549dj19whf1jmfy"; + }; + git-latexdiff-54732 = { + run = "0b7hafll82widr8vibaqqavwwzi7m488ypm5wx14y6jncfl8py9y"; + doc = "1cbny4qkr8dg8vnxjnjawq9cjb0h3816ad66q8b5652rpxn3zqcl"; + }; + gitfile-info-51928 = { + run = "0qk6r9fiv44hamlqvsgpm75nd68sgj81sgy93zsylypp15283z2b"; + doc = "053x23sq6657lddjyk9bzadwydfh4zxl78gxl1payxmbl9pj925i"; + source = "0fnrwcjfji5pbkh4kdsishfy85gqcvcmfqxwr5s1n3bm3prgfc8b"; + }; + gitinfo-34049 = { + run = "1n8mm4g7bmiawd7l7xhx9fcxv7z3l629bj21i6j9s0rfd6c7mzz2"; + doc = "1ip59qxlqzrn8y211691cv4bg8d0yxkyvbpxw8xpzg99fpp3isqx"; + }; + gitinfo-lua-70117 = { + run = "1qn7f0fnbgawhm037x1lrc36mgmq43mlcsx9rb3nl9ga4jlk0mqg"; + doc = "02my81hc89i32gsvxp9zfqs2gzbkjqn2cbijwjwa578p45cz6a4z"; + }; + gitinfo2-38913 = { + run = "0k3vw12yh13q1v21bz7i3m32s1w49pk13rg3c0d0l1pcx0wwz20i"; + doc = "0586h9c1kp5cg7gk67xhy5fbshpskrmfb81m4xncaxg6ajaljk7n"; + }; + gitlog-38932 = { + run = "1v0zpfry2rz6xvm92gzhabc9sa157kylvp6jg298kdsbr2limn3k"; + doc = "0pd1f42qmka0wh9b8m15nk69p6isqp74b5qkjg6ymwbabqxbcbl0"; + }; + gitstatus-64662 = { + run = "0kn4q6c6379qs34hmvzixvwkzhwbn3bnrn1pjwsp8lp66fv1wpv2"; + doc = "192g75hfxg3nkaf0x8b142jzgmjzv97mpiravxfwpgfv25fayz0f"; + source = "03kz49szcrpa6ij859a44ham0gbr1w2bd7z7p68vhwg2pcg8gq5r"; + }; + gitver-63920 = { + run = "10ji9cimi9plka0gk5f1yk9kybdfkld470x75204dnk82pcsad91"; + doc = "0gywkwrlgv8wnj4y1qmwk4k09s06h56r7qvcnk194ix5srvbyr4b"; + }; + globalvals-49962 = { + run = "1kgzrymfd5lzvb9dqlb4cgxfszpzhvad859r7sl0dl282596apgl"; + doc = "0c2qf5fqn4n8lhifvi4731r3vifwxp7h9sfd4c26d2nm1w42hv7d"; + }; + glosmathtools-55920 = { + run = "07s9jh24m9d9y01kk6z5lw9acri8g8vjmfw0mgdw3mwpffmba5mx"; + doc = "1ya15q1nb7xzjxq7cgnl9q8pwfr1xbih6shd89krijr2l3rrycws"; + }; + gloss-15878 = { + run = "09d8r16dwl26a76a2gky152bafjip3r3hf41bxxcb60sjvnz2qva"; + doc = "10vgsm0cvcbfxwi7ly38lsvvg139y6abmdsv91qxq3s1pn1qxg6d"; + }; + gloss-occitan-52593 = { + doc = "1q00j5r6d2y3gf8rbh7f7rdfjg3mg1c3rrfqd69rxyam9n92h41r"; + source = "1cb92fpzv7cqqxxa0img0la6hrgxw6azb6j2rslszk9hjghbcjdg"; + }; + glossaries-68437 = { + run = "1d85ifx1q3cx9y1mx1qlv434l3858mk8xl6g8azh806258ks2lp5"; + doc = "139jcnfcqqdsq5wvbj83dkrhjgs1fwslbgp16nfnkdnibv6p3rl7"; + source = "1kly0q8gvlgr8fd933dyfkqribrpx51zaf10v0ii1d7s8rp4a07l"; + }; + glossaries-danish-35665 = { + run = "0qdyvkx33a9jgfa7y1pbm1lg5v1ba4xrxxg0hyfqi0pmpkajqb87"; + doc = "0gvpcl8881g9xfcxhpa3h3c5zc3467ak8mhmr4szgjrsi4nsrnv6"; + source = "1823i0b0firwzz9038wag2qg2h39az1xsj8484w36kbij8q7ygld"; + }; + glossaries-dutch-35685 = { + run = "1ipxgp919h2jh5jajq72dwaf6v5qi7xjplcihjy8j88zakd9iacs"; + doc = "10k1xh64rzgcddzaz7qawb2qd353j79xn3754byhn4d1kz6nihxw"; + source = "0g2kfnxmnnqz8y095b125d7ira54s5dpb5shfqld7m52cranscy8"; + }; + glossaries-english-35665 = { + run = "15nm7bz90ijx674p16d596jssi5915iy43wc1qb6gbbk4s8y9h3c"; + doc = "1dckvl8g0visp5j8ip9kvmis7qw1n81xpjw136bnbm28y7a5m4sn"; + source = "0x2iw6g9a6dzw22p05n3v7vbif8svhnw9sjqfmxn020jqnajza0d"; + }; + glossaries-estonian-49928 = { + run = "1p2d21rx6vs8gcsalbf5kjyhmz71gbbn10c4j4lsy7rqcb97zi99"; + doc = "0q8rsf08snd2p4nkfz2ry7rmsbdpixgn14n1mk4wkjclrbnjszgs"; + source = "15xi0xl53jxfqsz7dwbmcrnlshvs2zbdq38v3izlyz47aaf6ajdx"; + }; + glossaries-extra-68409 = { + run = "1k23qj3hmimg9yc25chxlg2bkznb730c897ly9hy9bm1cvwgbfwc"; + doc = "0fx3jqn01nxn6slb78ilwkgwn2na2snihynjmirp4r17xx858dqp"; + source = "1gg4341smvw2qd6wglywpaa7kziz92mj2x9vwmz28h6pnsvr0x7f"; + }; + glossaries-finnish-54080 = { + run = "18la9s6gblpqdqa1vcvsddzfxadssnd1mrg6iwl4aarq57605cql"; + doc = "0zjwasnxi1fzc3xq8xjmgyrfcxpf3sbfgh6nzz60zdxd8sz1wvfz"; + source = "0jfvjka4i94vh88jfpyysm6r1q9wwg7q29s5ik8d3da9g3n1bhyj"; + }; + glossaries-french-42873 = { + run = "03i8xx80d740c5yv3i83zbxpm9kckzj2kbdsakxa3sp9b0j0jk0b"; + doc = "1k5gkdj5madigzvs138r360nrg6d3fn145xf8g708bk43r92100r"; + source = "0fhi17x6kk73mismll255b9nsr8hm147zd0n3rcndbih9ray6c6a"; + }; + glossaries-german-35665 = { + run = "0h30icsisgk45ghhmngda0nqsjzsm23hay0sxch00ix5qcd19s27"; + doc = "0jmkcq9h2kfjzfwysfps7nqjl7f0zmh5s60ww9kll8ypdd4a1n0s"; + source = "085xarcnj5cvkljz70m27c7390jpj8kwndpyb762pr26dxvgspqh"; + }; + glossaries-irish-35665 = { + run = "0xyijjl1mffhmwlx7b7rprzl4rvhb2h8jdsx2jq86qg5gxd6c4r6"; + doc = "0kic0jhmwiik3y2gipncii6j4348qkxbvkzs3sp9678xjl6j5zl8"; + source = "12qdj6wfgrw6j4vdlkv0bcknnamb09vsyxdmyd094hwgi4cs7wi1"; + }; + glossaries-italian-35665 = { + run = "1dwvjb91jn93jbvh0idvn3nxm6s7frxyvc5a7yszyisfbaxx917v"; + doc = "0sb6kzw87nh2vznwhky087017c6338jhqahgh4ljmzan9h3imk84"; + source = "0hj3wdzdrjv9aciqgj68ihaalvarimi85vff0hf6isnmja5pwg28"; + }; + glossaries-magyar-35665 = { + run = "0y1540a4f531mc8fqpxv50d25a78waipkhhjvgnilbh7p1l3cf04"; + doc = "1sgndhgxlbhfjg22hpqazyd4zrqmkiahjfwhhwv1nk4dnn1rflcp"; + source = "08m0srsv9nspqfzab0g276rimzw64hg9i6dddi7fy9pc55iikfky"; + }; + glossaries-norsk-67141 = { + run = "1qa56xzfnhbb9m5aaz2sxqqj21dbsdmm6yhkskdb45j5ac8b0nyc"; + doc = "15z45ib96inz7y68rfghas87zbjw9g2mv9r4a63xkf371d4g6xsy"; + source = "1jgwc8x3xia56g5xqplasjr2c1cll1fdizfhzszrz1fc1jfjvyzw"; + }; + glossaries-nynorsk-67201 = { + run = "19di0liyrqgi4vb0aiw3p507klaszwbdmsxjh09snp7jyri2rd43"; + doc = "18l362siz2p65qhb2vfgqdnczqwcgcd33qq8c0c1h3vqmsmcjfvb"; + source = "1diq7h06jw2s26jrbb44amniqyipdndzidf2z122xyc9cgcwzcwm"; + }; + glossaries-polish-35665 = { + run = "1pm5c1i0zfzj32p75cj014n2kdlfhfp6zlh09y5y8a7cfdsbcjdj"; + doc = "1r0igixgkwcp7h3aslj7kmchxz32qp09vdan6w2garkgj1nspnv8"; + source = "0zg3pfjg03kcrqm4b3s2bb9z3jhlga85hzd1n83pbrvf7fph4ld2"; + }; + glossaries-portuges-36064 = { + run = "1gjadmklh6lsx5drjqgph31z3x0g4xy11g074hm4y2zgziidkbyd"; + doc = "1cbzpx932chvxrf4myhy6bg4jrj05nkr2l2g893k6k7xgm2i1m7y"; + source = "0cz40x5s9whyr7r7w8gmw9gm119xmbb1qkhz19zfijg6nnq2yig2"; + }; + glossaries-serbian-35665 = { + run = "1nbpnq50kki9i2i2dlj2x9ldy6g0in0mz54ii107m8fc66g90vi8"; + doc = "1cx33aqm3qcj94rl6n71wm0sq2kc29r1wny3bwwpqg5mp3bw2g8g"; + source = "1vgihxf778vvf86rka345qmnbv5s2ma1b5h47s2f15x8bjx4xy9r"; + }; + glossaries-slovene-51211 = { + run = "0i74cn88m4llskd371z5xakw0s1gdgfmc01i55xqmc3j1n5cayh6"; + doc = "1bfw6dnj6vcz0v6i8dhy2ffd6vbjqihqshkzhnwrrc858rzgahiv"; + source = "02c4gvv1qvhbznxlxff6kx976whcv80c15k2jxsgd6bira50414r"; + }; + glossaries-spanish-35665 = { + run = "1wg894gdkqkm2mpzixgpnsd5hzbvvviba7izbshiihhldsijs60d"; + doc = "0zkfg3zk204q8a4xj00ibixqi0j3ll4531vrbavafm8b9qjl93xr"; + source = "01hnx7zkqlb4r549252y3nsqrj8ywi30ci27r5n1p846jv366lxc"; + }; + glyphlist-54074 = { + run = "12nmmyh77vr2622lzi11nm1z1k2bxs7jz018yl4rwjlpg0sxg1ja"; + }; + gmdoc-21292 = { + run = "07hf9413bmj1iv1g13wnngfb07fjb11162pz1769dz5si4av5nmm"; + doc = "1p3zpf3rmmmvaam534vyw2n8r3klfxlk36jk19pk5akqwxwv754r"; + }; + gmdoc-enhance-15878 = { + run = "15c1bah1lxa4ap43287qm24nmcml5g8a62plq0wsdhbd07w51h34"; + doc = "1fy3y1f53frsv09vz74n7v8gv1wscga6h4di9wfspwan1x3kdp76"; + source = "067ind9qmah7w93bhwg9vfj8nyps60gsvbxmx7qhkr6c1cxqa8wr"; + }; + gmiflink-15878 = { + run = "1b7gbvkhscb2p4yhcwd8mlh3fsvgfq8g6876s1brygnp9lsz7cxn"; + doc = "189srmaykk4pmm3p65p0i00ycisr2bdvb51r6ddn4rjbliv6i9gd"; + }; + gmp-21691 = { + run = "1c98y5fhnq5w9b6kkpnrag364269s90kccgbqwr33bn9ixhsf0dq"; + doc = "0wir24czbym76b9fcbzd29m0749lbh26n44yfl48k5pxy6pkqjcb"; + source = "1qg01aaf4s939ixzl7wdariaxxg1d5z4s76cz50rpw0p7rgdqbay"; + }; + gmutils-24287 = { + run = "1yf7r1bqv7kid7v65bv56w4an5nx22fhxzh67fh7r9y8msrz86lh"; + doc = "1xplwkdjdcz76rmmmnv8zfp3fj104b1vag6rzrxj7ap9k8zzc40f"; + }; + gmverb-24288 = { + run = "1mqmi97imyr63ff0qyv797sipncqizbx9cvlg49wxnf3bjyk2ki2"; + doc = "0r9sygczigi52piyk4zgw807zjr0jl4babj3qmnnsg0qclhvaqnq"; + }; + gmverse-29803 = { + run = "06v5fxz15byps13vm1afrpx365nfmq57200gspqpdch2sji2n4k2"; + doc = "1f8hccasv9f1wbjn7cjkwa2z9rwn8lwkv657i8n533ccjk6s5xvy"; + }; + gnu-freefont-68624 = { + run = "1gq5dcbc92cxvlqddspc9m8v5biyafgvjc1k7fy8z31vll6wnfzi"; + doc = "0czpqlipbwnqsh5hp6yaq4ypqzipm0xfsvrfc36pri0d2hb77clb"; + source = "1cmd2p7krwhkg1f8xf0y4z2ik9g0pjc0qgi3c5van9zva0bn84k2"; + }; + gnuplottex-54758 = { + run = "1ck4r4inr8ac82p0r8062z3hwf9187sv43ym9586sk3ip6kqb3yj"; + doc = "198g23i6k5f353w2aa9f9cw6cj8b4f93nsk7iq2hvhvk6ia876vx"; + source = "0iz43zdvzfs7spc6zvgclyh0vjnzkwcixgk5mg2a3wrig8r4q6fq"; + }; + go-28628 = { + run = "0lqgz9r0vxjbq1nyg77zjfsglwbd44zdpwz56smalb6lp2ra3r5z"; + doc = "1mf49wywa32chr8q4c0s4fdkmzd88a1fj3hxcf3zx7bnsi5r4gl9"; + source = "0vslzmpj94qlh5g2jirwj8b4w93vx33j8xdadyc32s6b9rrdwnyl"; + }; + gobble-64967 = { + run = "0f4dk6xg7b5ij3w2za5mspv96xrlksyi8gy5h2ri29khb58cw5h2"; + doc = "0a2rd4m38mgyfpjaf9na75w5cmn32lxbbqhqyfr145hf2nf08c1x"; + source = "0k42x8ni36gq51aw55ywy36jl89brhsc0177kn56zpvv2zmghqiw"; + }; + gofonts-64358 = { + run = "1283jyz641bxsq6vxgaaa3hjrjw101p84nqv2jb7vixpd0yw6qwx"; + doc = "1bq0db6xak2mj6m5q2z85f7j7iw29hh2ch4767lyi5s496csbysp"; + }; + gost-57616 = { + run = "0b495h3wwvwzn7dilj2am4h934y7b4fm3g3j85bb6i8fpqxbpikp"; + doc = "1as0a9pc9bv0aya47ir77vlwv2hqaapl1ks70gslfqj57082whwa"; + source = "07jn8ji4fa68mlq381lcmvk5qcamiczain2jlmpqcc9cfxd31s3z"; + }; + gothic-49869 = { + run = "0kgzx9qh17hcm33bx8r6wh3c9j6d8v0xs4fhi3w5vwmmlmyv9dni"; + doc = "111pz7iz7zckzsdjaxz6p7chp98144727vh9b3y8v2yqfz06vzid"; + source = "1r61rnird0n9iz9kg5ky4b602wmvsyg1y94h6az314ax7zdccm23"; + }; + gotoh-44764 = { + run = "1k3z1b1nyyk4jr2aj60d9p3fvx9ijpi21780wbbzmn5gydmivvm2"; + doc = "0kcx815006v0azrn7vvbldplg7z4bgsibz921k20pdz2fqy88lnw"; + source = "04frszj42vxnn5mf0mi5izwqw7mh57w0npp6n77kciyk84qjca7b"; + }; + grabbox-65223 = { + run = "1w9gmzwzy8dmk5rymwhn75rlciszk2wyx9yiiqn3npz872b55sf2"; + doc = "1h4fzi0199gfzdsx3f4pz76q14lv90sgad8ixfixn4kq6zywg4cs"; + source = "0sg5ahgxmm6vwa2ng0w8dmgxb4d3x14929i8apkm21bainhaxg4d"; + }; + gradient-text-65567 = { + run = "16ry27061szxa7krcpi739r57vj00ryv94ja3xa7j1dcvj6fn5sl"; + doc = "1fdf06z2n7jcbj1rby47ylrxq516nwa4qa67iphxhdn5maf1d884"; + }; + gradientframe-21387 = { + run = "0c77ymahnfqix4h3i5q8fyzra5vr1fc2rygycwsz9zrf332ca5qw"; + doc = "15lf5hlw760cqwqjf91wjzfbplp5npv586k967bpzm17pkmw6pqq"; + source = "022x1whvyd9gqw2kj3m8pncn0m0c839bdwysw4sq5xx9nw6ixib2"; + }; + grading-scheme-62505 = { + run = "1cbprwzwz019nscz0j3j0cdxkrmkqs9r220qvfms1vfmjs1j9dg4"; + doc = "1fc3i5h4xs40z3ndcipyjl7vz36vbaqd9zcw8nlvw746whf4g2lw"; + source = "0kidqf4l7gy9qg1i01ghvb9rqm9ygjk0ii22sff3n1jpbc2vdvh2"; + }; + gradstudentresume-38832 = { + run = "1i3rbv9ixnr60yrjzbj31aaq758638k5xvlarkaqsjvacc3wx88f"; + doc = "0nvih6lkbgc7jkkj303119fyxnajl4iha2baz2yhy62h4mq8lhd0"; + }; + grafcet-22509 = { + run = "0yz1f2p8dn3a1ws5skmznbd4ih9bri6r7vr6rx3zcspmad1fjg4d"; + doc = "0inzw5cw5759c4l3ikzgn0zx47b0l575yjpz2613fh9l5ys800nl"; + }; + grant-56852 = { + run = "1whd5f3fc72balvgifnb37583v0882xq51qa0fbb92b0a0c71nid"; + doc = "0zfz8gj8di6sx9k48zdn5hv5x2fj5rd8dm7x4h2k6xssrj4aw7bx"; + source = "0pmg6kjzy6wahhz3lk742qzx8m5afz8lqsl05zpkcmi7ris9m9ah"; + }; + graph35-66772 = { + run = "1bjdw1kvds8iahl1chrzmzaxm5ad7bb5c99yyw3rd390pqbh8y92"; + doc = "02kx45b2c9d3f0f5h8xw2mnqn1mrp7v8975y2gqx1ln2x61xmjpm"; + source = "1lm6531f5s5j1l2fasz0fk0adask83b2w1plkqmk3zxrn4rcchw8"; + }; + graphbox-46360 = { + run = "1hvhadbpd988nvrlcppvv3bnm5lzmlnxgwmfp6r4mgsr1q7xgg6j"; + doc = "1gls7j4753s16q6lgdsaa3yg8fc4vzxh74z7qr2ykz9b8ij0sdr5"; + source = "0nfmfn7y1qqbm4yifqxfpxn9yw2xb9yj4smv9fmxrs57ism8d9dp"; + }; + graphics-66204 = { + run = "0cb099m8387zmn58aws7q6nn2wlxnz3hhghhlfn6aagwp1i064gy"; + doc = "0q1b8gbssjvrga4nbjsxk8mplingbjs7x4385pa4bg2r29r09znl"; + source = "11jmacik80m12vycw3yr8waszi280f6raiqcws4px4w6zan71qhz"; + }; + graphics-cfg-41448 = { + run = "09yifx2ww4jjjhl5k8b5vz78711289755mw0r1rcshk596qvn9r5"; + doc = "0rfjgc83ryg3s5q01xnkk8bzw7rx7m96hfxq85xjjn5qxsgy8yqy"; + }; + graphics-def-64487 = { + run = "1jicdjf7bd30khgfkn6ilm7y7rnkqvms909wqj3ixc3mr3fz8j16"; + doc = "0k6fapbyi9bidgwr67m4l2qfqyg0rjwnyznfi4fy9q9f6w61fmv6"; + }; + graphics-pln-68760 = { + run = "1z2vgvlf3xpxidfs0g4hmq990lpxvird2pc6a59l2cm1s9nvsz10"; + doc = "0zjm566qqqk8blsdri7jxbhynlf98fk7w93fdxf5wvq4lzkwks38"; + }; + graphicscache-65318 = { + run = "0gmp7wldnc7l3768fs3wximhnc02ijlsajsfbg1iypihak6m2ym1"; + doc = "006yyxyga6n3hissz8i8nmydwyin4ag00j9b3g7dg4263hl8yakw"; + source = "1nk212cwla2y2dv6cysvk1vzk6kjyfgs03ngh3ry4gyz6ql844qi"; + }; + graphicx-psmin-56931 = { + run = "1sz53s8j6rn37xz1kkw0zr85625qki05zfvj6zpyw1yxay86r89w"; + doc = "1fjg0pwh8qxk79mmrpgnwps50r8hvw6hqsjd2cp021wkqcyk5zb1"; + source = "1rjl35jhy6dwja782xwh0qp3bxyw6ziha6fw5qbaq16jfy8hs95q"; + }; + graphicxbox-32630 = { + run = "1pl1x7n7yv7grkplpx7fflfi4cwzmkmh8nnd77i2n5wdlylyabxd"; + doc = "0f1w22m5r1xz6n70yb1p21qq3fi2rfj9mdcyqq8s40km1i40yxkd"; + source = "163isaz9zh1jr5wbhsw3ppicxsq4v92d6516dqgiwjhf6hdgay94"; + }; + graphicxpsd-57341 = { + run = "1fganh87hpkac141i4c8f5bw06sfhy3qs14blx466h1nmc6308az"; + doc = "12d820bdrnlq0v6rzd72icvac73vq7b7sq2kq0nab05xsdi2418c"; + }; + graphpaper-63116 = { + run = "1bba2x75pd679qd6jcm5dd2br5d3gr7s3r8fwwid8mmq30vy72lg"; + doc = "0a8l3wz3xrxnwp5s7gjr8qgmdbkrnwc0gki6i9xymvys385c6q87"; + source = "1343djcm9sh6g5v8yfbrrwzg8x68rjgwpicq79md4f4gnsmz6lvv"; + }; + graphviz-31517 = { + run = "1gpl57lb4wkysxdhvqajzxjb4w0m5nxdxi841dzg0sg2igchfab6"; + doc = "09aa9yl3zmcc5vlvjvgaxfmhj83qk4wgp4fx90bgn28kxnzhicxx"; + source = "1w878b21va1y0mz08wr7mgdxl09hmbmxbzfnpv2mdqyy01lwpzks"; + }; + grayhints-49052 = { + run = "0p65f12y0v9s13gkmd0limdcsz36lnbf0975c4pxcsc42i8smvqk"; + doc = "07qpkj60rrl1pc651qa8kpym3bzcc0qkfwaggcyin9a65a5snnhf"; + source = "1g32xq2f1ncq124j2j8xm3vdkhv4sxynxc3wzx7x6s9i91p5l59y"; + }; + greek-fontenc-68877 = { + run = "1lsyx2g792b2m7rjlihqj26dkz9kaskbrbwzvkjd0x0rzvf9g3a8"; + doc = "1qrn41ly963nnpwchs1s1l3mfsi49af1x0q9vk4zms4wcd9w34wh"; + }; + greek-inputenc-66634 = { + run = "0bg3frdqlja36j7l4y1m41nslqy7bisbyqyax581arrl9hv9p0yh"; + doc = "02wghx50h2x7p9kl6j7kkg185jra9pijcjrf3bkx6c7d1spvszcv"; + }; + greekdates-15878 = { + run = "0g8cgyrw6lacr9cjig3q1g7rvjdwb0p40b41rsqg6lj6y7m25ya8"; + doc = "1sh4dgxfn55gg9vp163qj9nd6kbp03cb3nkg3hqlf6b1az486nh5"; + source = "0k8vyyxvi1i6kqnanfm1nfhbwllgn22ik57r2p357y69hfj3bs4f"; + }; + greektex-28327 = { + run = "1v39z550xynw4kkqjqcj7izj2cghkk1g2swsy9x9c71sz95r2bw6"; + doc = "0g4m7sb6ppjj0nxgv7pwwvc5p07jdkablcqasdmj8p44ikg9vp59"; + }; + greektonoi-39419 = { + run = "1dhbslqclyk5d8a9v9s4af4gxdy39b35zbbr3k5m53gsd0kcs5w9"; + doc = "0hmxx4pcirm2v5xpl3zyij8r1zm45f373dv18vxj4xr3sn6b7p14"; + }; + greenpoint-15878 = { + run = "0l27vvxzyiar7y1x1a3hk0sswfazi356wsbnx86dp8l766qcc3d6"; + doc = "0zlrfv2y5ixhyqyr5hxycalg6bygvw1f6bfaxqdpakwiz7k3zabd"; + }; + gregoriotex-58331 = { + run = "1z3az5in2izkai2bf627zj5966ypv1z9z9510ynallfi5q6yah49"; + doc = "15qh7jfz42bj450zngw556z57dzq99cfsna5008yymgqsyvy5jxl"; + source = "0p6xm22hr6ka4jm9zrg4yifsc4125g22n4x9zjvmarbxixj04573"; + }; + grfext-53024 = { + run = "03ff5n3yc3fxrayhyapm9qhd665r15v57vri6ajb5xb4m18rkfqw"; + doc = "1f5kvnnv604qllqim8qv40cfpx0xaxanigqnqwmjfwf0n44akcfp"; + source = "0i5pkqrc4jm3cgwzyhw1r3kh6b0b7sb352bnzid7h8msiwx32y8k"; + }; + grffile-52756 = { + run = "02cmm9q14h87dv5h5ci7ny7v4plrry54mz15jddx1zkfx4myykww"; + doc = "119xqz1n57mghhp7db19ffrv1cdk1fgpznlyrn3qgvg2926mx104"; + source = "0pmg9140plqv27mp936ca0193ihggd243mmprj3l0d6rf5dajm8j"; + }; + grfpaste-17354 = { + run = "0y1zw0l245chmlgmi7cmg2yp7s30z8055wnrbm6f45aizcvgdya9"; + doc = "152b029w1203lgfmxdmhq3nh9h2hcdx4xanklv59rih9ha5l8j5v"; + }; + grid-61719 = { + run = "17yxgnwlxi16vkhhy0mij2f07cib589305iz3kzf0gfha2x1fnxg"; + doc = "0h3pfv1hilyn9c9mlqm9nbfd0l0s1n8w7hgaa6cab43y8n60z8gy"; + source = "1ah419141p76qjl1q82l2v6i5z34mj19rvsbwldp8fawfkl093k1"; + }; + grid-system-32981 = { + run = "11l07viwfi88i7c05yjb39wxzdgvg6xvxlcgbmqpvc4fbwmr45bi"; + doc = "1a72i4af612w28wkbsvqvss5462ar8g27y83w2h7y65nqv42wi9d"; + }; + gridpapers-58723 = { + run = "1nshsbv4qf8vxsvrqidwr4rqny5lp0cxijx018bcskhh3xra7r6n"; + doc = "0z3vns6jk1ihiqf12i46n8yhfyjmnkb4l5wyc18phbh9l6879b7q"; + source = "1bnb38mgi6pzm6gvxf0k60z1dal3kgi2rjgwfrcg2h5vmb5rpdk0"; + }; + gridset-53762 = { + run = "1hg92rhf2jl3yp9y85pm0hrbc2a43ysxkhdakfv51a3bynd7ym51"; + doc = "19aq6g6dnbmgz6a4pgxm2c2vbwc0m3hicg7qcbjpchahj8278w5y"; + source = "1gmgaql1wyd6kbhhv0ssyhg5dz9jls0y895h7yg8pyjqg4d0i2rh"; + }; + gridslides-54512 = { + run = "1y5bngrqi46yii7807nw2y6vr7xavmbnk7x3bpfj5fjm8vpnw4aj"; + doc = "0ringj34cl8lqdfa3qwfcq4jdfzsghw4haw7c9dq9acqnpc6sh3f"; + }; + grotesq-35859 = { + run = "0f3nmf0flj20xaxz8g73zp0qcm78yvqx1idyawrarpz3q7zdvqfq"; + doc = "05fy8hg21wq7z2zfsbyjszamif7ixk8aj5bbjsjinyxzfkdack3m"; + }; + grundgesetze-58997 = { + run = "06zf794hhf5w79d3i5wh4lw97i0j98kfkrnn8nppy3p4yrij864b"; + doc = "0rjb4lbc541w8lfy3504j40fvynq49dbaa7bpn7wk77k4m8f9nsr"; + source = "0khbksa9yy82zqd71ls8gh9xcl0h12h7542bi10hwf7zp4nhqs7b"; + }; + gs1-59620 = { + run = "0j8hsdifd75wm4viqwxxk7s654bb7yxs5ccqwl0hxw7kxrxybxmr"; + doc = "03yw4cfa1ixhf34ak42qjwnb1pbw1lzljxg371v1gcwbba9x9svb"; + source = "1my4p6xgpghz0fqq1i5wmqx0nx27xn0vbpl4gbczwi1xnakmvv4v"; + }; + gsemthesis-56291 = { + run = "1y9wj43qpcgp82sfi5s7izyf284hzkn5py0v145jx03l2kxhv90c"; + doc = "0fyadx4x8d64h75fq3xgmfxympcbfjhwwmwg4bpj20d3dbf0rh32"; + source = "1i5w77zwb9c4qc90hxz7sna8g2c11mkf3vnkkm3scm6pkbg9z0av"; + }; + gsftopk-52851 = { + run = "0n6nnfn3fwi5dz9vdqk4mv97hwnyybj3wsv3bipqfsxl31yjp51j"; + doc = "0xdb0h557sgi56gik24izsr5xlbmlfya1w93yih61a5422rv198c"; + }; + gtl-69297 = { + run = "07d5wf242l52y43ranq4l147755gl8r83429706yjj01a71mjlh9"; + doc = "16qpbiy2q9bmnj545ni2pv0w63djsqyjba32irmhq61xc04fkym8"; + source = "11nnmbgr3b9nww4w337320rjkyc6l007s97l3kh2m2xaw6danmdk"; + }; + gtrcrd-32484 = { + run = "095v007lhv0yyni3cqvc14iv9jqi0aqfmlr0zgxh45xfpqbsglnv"; + doc = "1ivw62rpgfyxmlrzvjvmhf4hxfrlgskzq3qr0p6g48ilv3is7sb5"; + }; + gtrlib-largetrees-49062 = { + run = "0l0fqpw6sd1gg3da8s7wz324q5bdd9l80zxg835gfw0vvrn912im"; + doc = "1mq4pbmsfvm4y7g4ar3a438469yy6x4ciksrns05dnkk54adyyj8"; + source = "02x48sgx6vfwbdvgj0f5b9sc0kmkwcl6jyqzv0ascc77av9w41na"; + }; + gu-15878 = { + run = "0h37ilpkqlb6z4fdjldnbwpz2j15izz0wb70n4zmmp2162qqbjni"; + doc = "1gx36ngw3mbbw9i2xdi2glx80xfvj6pv5frh6fmsqlnvhgni13nf"; + }; + gudea-57359 = { + run = "00565sv65b64h18cib0hbxh73ylg07lk7wxl9l9gvdczdz7a4xk6"; + doc = "0rk9g6kcb8wjhf6is5wcbrr95hv7ahwl9xa9vqnfq6m1yy1bah13"; + }; + guide-to-latex-45712 = { + doc = "1wc5pclv27af2zr6kjjahjzxxlab31d8970jvxr9lxiqllvkxyab"; + }; + guitar-32258 = { + run = "1cjrmz39cpwj6kfq3r9868prd5bx0ppsxdydc7327247n4f270qg"; + doc = "0gqck2vifa7r4wb9q63kw7mp8b33hza1jjyn3kighk2rrjbrg3ah"; + source = "1pfcf4r1vwv80zc1p8fjvf8nqadiijsl8fjaxjanjgzl3zyy25i1"; + }; + guitarchordschemes-54512 = { + run = "0jhqamb3lmpzplvxwy7aydg6sv81b4xl81ss5q1nk66lxki714a1"; + doc = "0939llps22ir6bfxqjcbr22kvb6qxid7dzfqjxigl86y8amvv7lf"; + }; + guitartabs-48102 = { + run = "1akm3sbrwnbg9mzlm98zpgh187w61g74zdyq6lb21w7bw30jkxbk"; + doc = "1mrifbwkv0vh4cl1jg92v7006bh3rfrgy7gqpz0byd5nc0vfrm5n"; + }; + guitlogo-55741 = { + run = "1zjlfd49hkq9qc1l3g974wxzw200qyiy9vbiai0v9gs627hxckwj"; + doc = "0awpik3x75rky5w6rk9zg3cy83dgxs2l57wfg8sq9h35zmni875w"; + source = "1hi4rb31mc3820fafyhk2158y67b90xp5wl6xxd0b5fqz2z28qnj"; + }; + gustlib-54074 = { + run = "1kqlqxwlx12hyyhsxyn470rgpzg6xw25ix1v5j4sski6nwspvn9c"; + doc = "13yx3bzmbm1b1p5rbjdfsdlwxdpzdhhmm2xd05hi79wdfxbbby7p"; + }; + gustprog-54074 = { + doc = "07qx4xvyqb4p0cx0macjgyg0pcxgcmdxmzfsx9ah5s0dqvminwrc"; + }; + gzt-70535 = { + run = "0z5n3ybgd2bwz3d0i6bl20bgyzjhfsfpl5b72y4g3mbap2d7yk41"; + doc = "0jahxyvmgzzpxqr6lil6ll47biyipw402scn8agppqsyqrbjm3lz"; + source = "0rkk1i5kx75gjrqsdrxljkv9bs7kc1wadl2kpr9krrmyz4wbq5l5"; + }; + h2020proposal-38428 = { + run = "1yz8bz4nmccv0v700zz7x11fjdqhs4hgkz8cd6bnqr3v0n8k4xrf"; + doc = "0yd0iffrvahaci04bmnd20bszgshx28apsij1i35l1wjr1hlnfcz"; + }; + ha-prosper-59651 = { + run = "030zapbv83x0x1vh9px6klqnivygjhzi48fz40jb2cl17b38xnx1"; + doc = "0i9714nqgv3ywxfybg3m9lcrng6v7ydxgfvxva7zpjpmsm3mjfvl"; + source = "0ljl3szba1p1jj7fyw6qzm5h673d63hqwpsn1jzapk013rnxsfmp"; + }; + hackthefootline-46494 = { + run = "1l2iq2k1bil4l5nzxrfi4pg831kxn22ld7402y285hlhv7cj6qfc"; + doc = "0w10yipva3ixyp91iy2y15n312gk5fw90960p3adla2w1p4qhs4c"; + }; + hacm-27671 = { + run = "05layzjb8ngwmqvg49abdi55j9gl1l74sm5baipm0yi0k1kr8xy0"; + doc = "1d1znq8r384b4xpc9f81023asq6yrkbvyif70wjn7h64x1wpnnn0"; + }; + hagenberg-thesis-65819 = { + run = "1sz41ng6wpr0zk0bdhfp6iqnsis2bpnr4k27hw5c94384vxa1w9f"; + doc = "0czc359n4h5v83idvvn7nzl7azzwcdndbinssdvh35ygy68v04jy"; + }; + halloweenmath-52602 = { + run = "0sfcggpqhai8xzpnbyz1vlvh7cfl3n2m7z0av4drd7wqzas0mcw2"; + doc = "0k7qfv036aa691902chj1rgcf3z2xd58xfb2r0b5z80g6944xjrk"; + source = "0ir0xr3aiyjiashy6jl39f401ccgx3dhlyiqx4h2myiwq45ay2ka"; + }; + hamnosys-61941 = { + run = "126amkwf4aapxk26n1h7vyv08hgyj6gac4sz6v76qilwpp6m6sga"; + doc = "1n2bk2yp8c4bvqcjq0hahfs14zlrgrgj9jwvrp903c46zb83lfc0"; + source = "1jxdiqbvbkmhv5p3fs3vl728wb6izfx9wbjqyylzxc9fr7b4qpmf"; + }; + handin-48255 = { + run = "0xcsmfa4jjhrl3xkglqwbgvi844q1f9zjgpyix5akx058qjvwl7g"; + doc = "1k3ar5yzyndnfqkv3bhl7q8aczfbaaghv9mkhzpfri4za5ks6fnn"; + }; + handout-43962 = { + run = "1563x16fgw29vzw9bzjrc8maj1r8337p288y7v066qjaq886x3xz"; + doc = "1y1wpkpjwhq7aya9b98ym4xsv15zavmv8k1i6q0vx302awi2r5yr"; + }; + handoutwithnotes-62140 = { + run = "1wxy2a01jvxhw1pna1bfljigabfw9i66m346n0yshhk6rf3zabgd"; + doc = "0i1viv2wkn2afvkcm1z7vxz98aj2yyn63cilnhm5kzn7ngdrkxcj"; + source = "1jiz406v43khg1p9kpaz96bwd7iscl078315xjfsirlbk33c4y2c"; + }; + hands-13293 = { + run = "0x0vdn7hq6k7wr7yxn8pnkvjhjq3mfl781ijrs2mpvjqygqffzag"; + }; + hang-43280 = { + run = "097qbqwbib8gj53qlydflff7sqp5ghcg5812hjnav9a0rgklpw8y"; + doc = "19falj7rm7diwr24q5rpab3rp39awnyg0hdxfhhalkpdmjwqk2iy"; + }; + hanging-15878 = { + run = "0s86yaxyfv9zxf4svwg9s13by9vrw38apfg0hsfchsimsdd6gsbb"; + doc = "086lzvx4g6bj04xdqnadmb8832klmq362k9lqh4pz7ym34mzh5c7"; + source = "0wwfnkb66m7r77723kkkdp7yxkl789g310m5lhllwx33fbhm8vhj"; + }; + hanoi-25019 = { + run = "09a7cv76naxzdach5507wdqnjp12amvlia7kw0jh224ydmkzfx9x"; + }; + hanzibox-63062 = { + run = "0pww3xzi9r52cr0bggpw7wlddm6gzf5vs5xi7v03ynlpn45wz3x2"; + doc = "0x18yvhnywhdl68jz4v5llkqqpiz1l48nv77g0x2x2svzwrxrw3w"; + source = "0dblzzg2gkg1blx8rh3rs3jb5pq1qjcn9nq0n0rz7a7dph5f10j9"; + }; + happy4th-25020 = { + doc = "1x950scxbvcgwycpakflpklc775pknjab620g099dnsfrpb76f4a"; + }; + har2nat-54080 = { + run = "0zaqsnvg46pdf98gzlxa8l6z8v9l3fd7jmf60nbrfba7jrzpy1bh"; + doc = "00n5qcljlpw2rq8x921vhsk7xvz8z43gxiq41qfzin696ysn7xj5"; + }; + haranoaji-68501 = { + run = "0lpghfxqr1kh4s6vk5zjqkzm4ryz47qa3dkrxfiyclv4crsqlf16"; + doc = "0v31a7kz4bxp4ay7bh63w5hn53iljq62vkkq0nad7jf0cyhdm5sv"; + tlpkg = "0s4wnm8lh0sbblz47j7q48rlndqxjiyn332061iadd5gh1x9ialh"; + }; + haranoaji-extra-68500 = { + run = "17j0nf9f0l2202d0b6yba9dbkwp7y97kxh4lnv4chvx7f07l5grr"; + doc = "14w5x12q0d4z5h0skp4lvicwrcksl9wfc8lrsv8lc3dmhijv0f48"; + }; + hardwrap-21396 = { + run = "1kwsns5vg5pkplcl5nhmvpm2ccdv0f9431qxjxq1k6zfsknpy60v"; + doc = "0h1n80c9l34isgyzl36hf4nigxcsykfgqv6i9jjdf6dqpp23bpw9"; + source = "0hiqsj0vpfkmi8z048ymlnxrxaam8raq2f48wlyk67x4w2gv72k8"; + }; + harmony-15878 = { + run = "11vh6dy95n049bfr46yyb6a5ziawmh3n8dr8l7cqhj4pqmkpgad8"; + doc = "00kf7kbrfr2cqv7izx1v90mpa81ncsn0r9jkxkhz8df8fsizaigl"; + }; + harnon-cv-26543 = { + run = "125885fg7frl37pmxxj51i7d22xydj5wsva9i27126903y3qdm8m"; + doc = "07i4qv95fcfnlfj18qljwbkv1cm5r00mzmq570ra3bgjc301gk9a"; + }; + harpoon-21327 = { + run = "18p0xqjxix4ka9a9ja513il0wrpqrqh8v9v13cc89kh8qfjlf9m7"; + doc = "0l2y9l8wn55dg06fbxjnv16bkhgbg9rpfclawfh4p7m2cf2h1k44"; + }; + harvard-15878 = { + run = "0jpxqyrw9skg7jpw2d46f8nrh7jaa3r9lviv848nfnn6h35vs61n"; + doc = "10vxj1cna040i520wj7c0flbk0d4hr22jyxqrv88616xqqkg3b6g"; + source = "1j754jjwdil45pr032xjmwhf1i2phspv2swnjbyxgnssl6i370r7"; + }; + harveyballs-32003 = { + run = "0d3wc82qamnc2pivkr23njai42vbn7xip2rlsj4kc8p75zh9da3h"; + doc = "1792wp7zx6a9f19lplca1b7pdyf8zjvqndl26s84sfv3w4fmbr8z"; + }; + harvmac-15878 = { + run = "1ky0vc92z3i7l64hkdm4jrlaz3acna747lfd2w3b0ybdsz8514wl"; + doc = "19sfcgshwcvn4z3cih6ha2kgdbb5282zgf244678rl1gkmqjblj3"; + }; + hatching-23818 = { + run = "11sdpa2fbxqz8diiwyjvx5fwfycby0rdav6941pgfbzsbqd3ys62"; + doc = "1fq1wkq7q5f8jbhx7p49jnpnfprb4z2wmawyjbvcnrnmr8jbrdny"; + }; + hausarbeit-jura-56070 = { + run = "09nf6pz7xqhzs0n7nafmmkpsy5ksvqvnwha80yv6rxasnazd940b"; + doc = "1na417f6avcar3dmgk5wrggj99mpskc1j7fj4qkh33rii7yw6f4g"; + source = "05f4qr5cz06k7hnjranx6sbqniv4h77dy0rrm6bg4dd6hrk474q6"; + }; + havannah-36348 = { + run = "0zdbwl36d8a374yhaqfb4f3561ncch10v0vh7nxj22f267lgl2n3"; + doc = "1pkkslz2f66j606j44rq32dp9qhfqcr959wrp8j9xgkw76i9lprh"; + source = "0gyndaw2g2j2j22njn32839mihqx3pl7sij35vhsyahyamnipk2h"; + }; + hc-15878 = { + run = "04qricj1nmmmhxwsam901cr43h96ymc7qdb1m52byniv51i8g0yn"; + doc = "06q64drrpgm7lzp45hrl33cs2dj4mx1mjpsd3paqgsn2xxqls2yj"; + source = "0knqx9smbx7lyr1r6vn50x3x9zldv14gb3484jqk28jvm92njnij"; + }; + he-she-41359 = { + run = "1rr8pdpizasdcb1sfg74nsqs67xh2lcwd8w2rjaf719bpx9372yb"; + doc = "1lmahrp33iv7bbnkbiwpkagy3rm7j0wric7m1fbzdvkgkzv274na"; + }; + hebrew-fonts-68038 = { + run = "0024bhlbj59gq22gafanns4gi8mii8fcd6xkwaa85czgm5yqmazc"; + doc = "1kv46s1x86gs2b7h9934hqlpp4siidnarb1shj427vijfg68asnp"; + source = "1m4kd4r1i3sj4x0liyrpxckdp4v6xvy79xwmkf3glzrmzq79vdz3"; + }; + hecthese-68584 = { + run = "121l6nj57aivlyw2gzmyqyi90ql3bsrdjw0qa6gy7i7ifhw81s8v"; + doc = "10pl8k15r835rac4ihng85ayp2k4w7idlf3ss1ywb3appayf8r9g"; + source = "1cnnif8c2n34hlpm26bpdvbrvzil09rdfbqcyn5nbfxd66k83vah"; + }; + helmholtz-ellis-ji-notation-55213 = { + run = "19szfdy3r6i0ayfr4qjv99dy6h97pqcfr08xhy3v9kzqm4d2b5nb"; + doc = "15d4dil3r44v5xds0n1lnqml7cyncpyr92prb56rfaav669hflbr"; + source = "01zdhy1p6idpksjh1ak1lyw9j536bzr130bjgay471k9d76n38dr"; + }; + helvetic-61719 = { + run = "0c3f1ly7y6404z0akbfbbfql13sz717v0n0g69qjpr69hi4n0nsl"; + }; + hep-15878 = { + run = "016jjvmmc679sk23dy0g09a0s0n176a5pyq18snvi9xajh2c4xw5"; + doc = "0czpwbhpgpbij9b97dlb3qq0aa9vyh12p81sdm0hwkj3i16yawav"; + }; + hep-acronym-67632 = { + run = "1y2s0fmrm4z5laq55xyhs1h85pjk48y92g0rzl1hmrdhqk6l0ikg"; + doc = "0mbhbyv9bbm0k856nbi6f46fn5a7z2s2ixq435gvka8r713ns5s8"; + source = "1nqv1qvqrxz6fd5lxrfsmxmgkkz005hymxk8s3xdwhla982nx56c"; + }; + hep-bibliography-67632 = { + run = "1qqidgnyi30zgmcfp0jj361l5sga8ds1b9wqhxad3hfzysa8bacx"; + doc = "1x1bgw7sqgnlqzqxx2zbvcxdpl304vbn8wx26rdjf389r0rw3yzy"; + source = "14wng879zmwzmacx2w8m2v1l4ha169xaaalmzmwc0lbj5rxhy44v"; + }; + hep-float-67632 = { + run = "1fv5bga9nf341iij2s8llh6rwvxf85h8hnilhlk0jc5s105whj1i"; + doc = "0y69ymqj9lxwr4v3lxsvz17lms045k2wdvc9dszvlrjg2q3ac81y"; + source = "1xmfqk8q0q0xmwsc4hgmvvajij88vszqimcfw0ddf7bylxchxjjs"; + }; + hep-font-67632 = { + run = "0z92gscinj92pypc6hnvdlyd0n1hdkh1kbnlgliv6cv2swyddmv8"; + doc = "18nn2rxq07xxv14ds95q5rwlqfskd6gl96gya02s4fi2lz6ys55b"; + source = "1fzx346kva3lxk4hx9pkxnj7j7jmx287gylpddb2pdpwkkc8spci"; + }; + hep-graphic-67641 = { + run = "0dwnbl9xm12v3hdpki7nzbq53l29rhy762rxbxvq7hjbjdm5zni0"; + doc = "13f1g76vqqm5c3ivdy41gix2bzmd6z73bqlj9cyij15jzwix9dan"; + source = "0y9d01kwnnlgx0cbr4ifi97la7cz56l30z65spbq2ilm4xlx7yqp"; + }; + hep-math-67632 = { + run = "155by362r43igwgyyq6fqd4j0r3qs12fx3gfrlcdpqlxnjg9j20j"; + doc = "0xhkrd51y4br7qsldynnfhvy38ilngb3l022hpddid9yg5s49k5s"; + source = "1zdrlvia3yyibmbypz519bx764jy62f7sia9qk6pb0wvwxbqmc0c"; + }; + hep-math-font-67632 = { + run = "096y39y8fkqhd7p43kv8fairn6q85bapca1ir8v2mvspr9h2c752"; + doc = "12inm8vwlwnwzr6hngjpixzf6b2ckcy5l4a9dgqgvrh543vwvzjr"; + source = "0p3365139k77y4kmwg09x67n67vyfzzvy43s1jn8yda91xnn02sv"; + }; + hep-paper-67632 = { + run = "1zgyzl3pyb0ygfxgn6pb9wcg75iysxqbpr6awa57aiah0hmynmm9"; + doc = "10fwbgz97cifhx1pr0li91h312ni0g130jg97d2vfpxrn2drq697"; + source = "061dap6lcrbif2rlkk7206aha72h31af4ab6wif5xriz9bj11cjn"; + }; + hep-reference-67632 = { + run = "046vf4p8nn661w3ag3l0z55zv4nw42n2376b1ab2p6sb6sb7l86m"; + doc = "0ahdg40hpb17lask2bswsc0qqh1fdalvjgc64scqb1ppfiq62sif"; + source = "1z80z7sr8ipsc15rns83141m3rw01s0pmc3da8d2vl7ymf4v8wwn"; + }; + hep-text-67632 = { + run = "0kmjlzjq8qwhka31nyyvdgvycyb4nlxrdp1fnwf1kgarr656rpky"; + doc = "1fsjsx0h1wws4z1vbhc4ynaznbf0lwxnw34i98n3cyqx805fg1dg"; + source = "0wa27j0xyi76nagz2yh240yhghd72gq2b4078yvnfs1bkjf00127"; + }; + hep-title-67632 = { + run = "1mihii4ndrrk9wxvwh6kzg1dh55xfgcww26plsnn390yqqfan8fy"; + doc = "0iranpsi295spbqpm8r9zv4gq3gn2231pjksp6qkmkwma9xl4af9"; + source = "0ldf8yjqqxdkpyxxm51q40y5w2zhpwv19s0770nmazzchv7hs23y"; + }; + hepnames-35722 = { + run = "0almnyzzdf0q50r6qi7i6c4pp9aakyzdzj2jxkj1y0h5smi602ii"; + doc = "144wikhsm6mm6f459r4paf0chas0crzvd2rylpynhsmkp9sk3fck"; + }; + hepparticles-35723 = { + run = "076w3wmdywai4pc02k8nk0qyc4vmvn9x6lvidmp4z6as0jir7ydh"; + doc = "027pgn4i7n6b2zk8ikyqj4wlkkw1njq4qcfkmy0bgqz3al08zr0b"; + }; + hepthesis-46054 = { + run = "165n2pwn04vsln5xy6lkg61c1bp65zyqsd37fmmd3xs7yhv7xc2d"; + doc = "1cql3rp42bb5c33sdfip69g9rd06107zg6wmsmzkv8c019xwg4y7"; + }; + hepunits-54758 = { + run = "11szf1jiralk8jdp45bzksgd76bxcf8xgdk707spbyqf6fzafrz9"; + doc = "071xs04zgnw5ir33qzfn0wxxfsk75d9di0ssl394ksmrm14ny3vi"; + }; + here-16135 = { + run = "1l6xh4jl2nipnswdn78378vhr41ikj7qk07j7iaqkyigk5ndl0vx"; + doc = "0i454862gik3jy1g3v21laf8qag2cadvapqz0mn68hl9ymly4b13"; + }; + hereapplies-68638 = { + run = "0h43apcwi4mdag2kpv9js9g8a6x83chskli7lxqzr8zqcwj97905"; + doc = "08v044j2h3w5yyzh330q5bfsip55zx9s0ywpn2f0b8x3nd5vgk5w"; + }; + heria-69058 = { + run = "0kqvcx9b3bg661i3mqdjxf8m8wx5cz223ifdniwkclr6h7nwrx9x"; + doc = "0rn3ng7c8jyg438yl8i4l2zl1cwf62izfyis889py9axz4kc4i66"; + source = "0dwcnmnlh5xp6rlhhgc70p8p6saz59chh2k7w0hvnr2p7768hfdq"; + }; + heros-otf-64695 = { + run = "10q1g30vma4fnqyga8279hqy2aq5wq6fv8d8nw22i9mm8ms2wwga"; + doc = "07k4k2rrkj4wx8i018jfccs4gf2pvx8grcmz88lmw52im9ga002q"; + }; + hershey-mp-64878 = { + run = "1mnqsqsc99by1r80b6y4rfb3kzb0r10jsfpfgy7yragr8rr9xzjj"; + doc = "0xh4a41lfds3yrj1am613c4629kvgvd9dfdfzmss9li3j5pa6jwp"; + }; + heuristica-69649 = { + run = "0k2ii054dq1hh8xj3n28mn0lg54r3xxcyzq7s3g782c11dg9l5kg"; + doc = "1ccivk54m07h744dzl2162x82bbvz0vjvrnbxmmvrc3sk26fh2s5"; + }; + hexboard-62102 = { + run = "1rbyaspfnvcms41rakzrchjrkggd0m5nshpzyhcf36gv6vxcz8ix"; + doc = "18fmqz39xwns749klira00vlm779gxja0i8g0rrpy6f1pfch93by"; + source = "0c6a9q1yj2dam3892m6105r737fn9ygiksd4fhmbmqpz9rxlm5zg"; + }; + hexgame-15878 = { + run = "0s68961p0dsaila2a3symqswvgdhh4ah08aphqjfs7licn50yy4d"; + doc = "1bfrm8mz98l8nrxgnvp8q54pr09ixm81wy1ds1ww4syczpw7jypm"; + }; + hf-tikz-34733 = { + run = "13232m6hybqv16f6v0bmgiyfqdfj407mn0h4m9wgh9pzwy3g1rmz"; + doc = "070h5rdgfffjs8sb2gaximsqjzby2vcf9ffvpljkd3jzc8rznlbm"; + source = "1df36m347jl9640jig0qrk445s0gxyk6rl74i19xxv567bxh9n69"; + }; + hfbright-29349 = { + run = "0qwwr02q170q29rlq7fw61888k1pm867vgj70ijckivibl0j2snp"; + doc = "19zdznha8bfwqfyrhq18ad7ri8nd240hjs9kslswg70xfrync877"; + }; + hfoldsty-29349 = { + run = "0ar4swzfczqafanfzhwyw7kx765w743r1davbypc7lglcxwjw5y4"; + doc = "0f9gcdi8wqq5g3camccbdzfyjppyqbvvv0z10grazq463lv83jq7"; + source = "1prpbq8833njsmqanxzf25136g46i2yb4bqpvlps52294pjh0l0s"; + }; + hfutexam-68829 = { + run = "0v74nqzv0v03rxkfk8iyvj93rnrjj3dmwj6kmbihnvc55qbn20xb"; + doc = "1nq3c4r083hdhgi99n35p691b2djys238dylwva6zw9j80i6vvnz"; + }; + hfutthesis-64025 = { + run = "1wr9qa2zhx1py23q9r7wigiwy2ik4gicaqb30mc6m095flk5ms6i"; + doc = "00fvnydr7bcyf9ij674whpgxizcn2fpwizqdnh0srxm03znw8cfi"; + }; + hhtensor-54080 = { + run = "13mx7mg5jqrlyxnx19n0rs2crpxx2gp6m7l41m6l2ig5vlgc0x1r"; + doc = "0k5fg9ad5avnsg84xwlcbzffrzf6y8l8a2m0dqw3clg7zjmq4prp"; + source = "1pay0c1z6avkb44h0iibfn6xskiglym0fckfqrdv0bablk3cghjn"; + }; + hideanswer-63852 = { + run = "18v4sis4yn8b1zwcvrjadj7qzjya52wljvxhajxsnl4pgslkjcqv"; + doc = "1rr5sy7l21r4ffdcm7bmlcs1al5bn4gsy6p2ig92f921f21gar4y"; + }; + highlightlatex-58392 = { + run = "1pmhvjxp5038nnxd9bnk3s30wgzxvbzq6z8cfmvz0k8h1nzkc1a1"; + doc = "0q4v0dvr50wd0qbk8xvn7bayyq00kj8b8wwyn6axia3mpjmr7a41"; + }; + highlightx-68756 = { + run = "0vrcvnr23qg3ma2wllqyy1xbl3j7ggril4ah27ilwgad1i6nwjci"; + doc = "00a5y0xlcdrw1x2gkrhcr44dyrmc2gnd7gv34r3vig8pfbrgwdwr"; + }; + hindawi-latex-template-57757 = { + doc = "0q35drybrlcfcrhrd5691m66nd17b0m6hkcsqazpb1ck227zih61"; + }; + hindmadurai-57360 = { + run = "1z3590pi02n90hwsjmihxk957hcqgc3kry3cdwpwaci43hxcvp2m"; + doc = "0zws4bzz6fkhxnpsjxj15wwnvbd6rhxqilabzzvm43lv0y21hvlx"; + }; + histogr-15878 = { + run = "11zbm3d05j6nrzwb3hpahli54lf06aly60arh4fi9k52qcbsylv3"; + doc = "046gw7h51w5s8p3rh6kwwi22xxj8bspbh7anf2cdzg4w88dardl4"; + source = "153lhmgh0n224xkg7dmcajj7bydnv21spihh371hj5a461d4h9k7"; + }; + historische-zeitschrift-42635 = { + run = "1zh8jhsmn4klaqn18zxbk3ajxvr99djavz4cww5wjm8lh5sv473g"; + doc = "1gfymz7b2khfnn94qkd3dawb7ppqll9qg7nsx3qac8pqba539pv8"; + }; + hitec-15878 = { + run = "1rzv2baizqa6fj063knxhac39slaaxk5lbgpl6zwk60nbp1lxq3l"; + doc = "1p6vcgy1l1avz05h6r7bqwr7hl3jrnyryl3vn1i0qad25jryf7qn"; + }; + hitex-66924 = { + run = "0agmnskf8hjvkjbkj5m05q30v020m5vaj5nqwj8cpnxzjhq1hf7v"; + doc = "1d1mnnq733c8ihhb490inch97r71vwrvsj8n61dqmalj89yn2n84"; + }; + hithesis-64005 = { + run = "0j0fsblj5k3jpxqgjxh7abynjqiz09hgvywrvqi0b4vv2fm8ccpa"; + doc = "0rf5bffmz4158yqa05l4vi08nf1cl115y0ff9rkvdzjn249n3mgv"; + source = "0mix1q6wf5723c54dsc7xx7kcwi0qz1kvmzs9yfx39295cvg9hzh"; + }; + hitreport-58357 = { + run = "01xxw91175ffcix6s7ji2600j966dbm6zl8fbnfwabb1rvn39nq5"; + doc = "1wpscl97hpc3s1s34bskz088ph3x83qq7m6qgjj0xa2hbm2g77ci"; + source = "1hxcw8n5aa4jfpd8r8f3442diww9zhnywd6kbbqjs7928bb51vk4"; + }; + hitszbeamer-54381 = { + run = "0nw7ch41rjp0wz0k508x2kkg4yqfpy6yfcl7n3rb88ps8fiqd786"; + doc = "15kkzvgn1n09i7nnfd9mll1l6xqwrbpc252k54gi791nc30acaip"; + source = "1ysr0z079l5k61v5r77hy2r150did3a1a29k1xppxrjr5ry3f4nk"; + }; + hitszthesis-61073 = { + run = "0dr4ifga9v5w7kdx2iban28ajvw24b9ayzs9rqa3hkkir460hhhf"; + doc = "1v839wq8vrswximiabnz3vzfirq7q34zzqvxxyi8791x1z7a4hph"; + source = "1w1b1cml2k1fvvq00lrga4k5sbifycxf0g1hb33wm05wwz0wihaj"; + }; + hletter-30002 = { + run = "02v906vgbidc2s1mgz1k3666riwb27vsl7dp24rd8q2m167xjd29"; + doc = "1x8q4jkrbw6ddkqqlaz6mxj4q105vjs8k8ifphvkvhawl9iikki3"; + }; + hlist-44983 = { + run = "0ac4n38nnimrs14k1s2yizbqvqky905qcv0kgs0aq043kkmpi0v4"; + doc = "1fnqm6kxr79y6bpymafr2s3m8sx5mviys06hcs8sfn2gzagg88bl"; + }; + hmtrump-54512 = { + run = "13pq5h9pwnp8hynsc35ib8wzblh3y4gx2lmrrvd0big80wwsdhsm"; + doc = "1bzgqgrjlpskqydqdj26lsn55pkznmbbiq0w4ybr9r0djdmqbn1a"; + }; + hobby-68137 = { + run = "0ndhwgldn1na83jzdk1ab03asbbp090a2czyxipm5s82zmfa7bm7"; + doc = "1yz23fn3zdixc5xxprl0jrly8pqm1n0dzrv4032802l4bysxj7sy"; + source = "1nmgzxkxsq78q35zf2xpzwp3lw7s3i2gya18y4xkdq78673s11pg"; + }; + hobete-27036 = { + run = "0825ng1xcpdmjihiffzjrvcvx2fqdz9mryq2bwffas22kf0zlx46"; + doc = "0il6kl26r8wmm6jzii7gmr61af84bl9dn4szlnw34dgsdg0an5hh"; + }; + hobsub-52810 = { + run = "11j0fxsxmyd93px9j5fdarz1231nczdkfpf1qf33kcdpyb44jrs3"; + doc = "0hdidvz42acsgy021c1dzlvshcmw6fz3pkqrwpk66qk2nnh30dal"; + }; + hologo-61719 = { + run = "1jhzw2bxl0nvspr0blkglm6zbmrab13fs601h54gnrhcw10mxqwi"; + doc = "1af7406hbdvb2fb735i6y7wi4bhnq7x7sijf63zl0klpf9pii8l3"; + source = "04d83z1pw6scg4cd1616ix291zi9dz5nnvw9xc8hd4lfxf15nx1c"; + }; + homework-70050 = { + run = "1iqf2x1sl8cd58174gr6ksj2p7nj1pw5478j5aaszwsc3lg5kbm8"; + doc = "0bc5yqhd1qj0jn17ciz44xxihwkp7xh6qjjq133y7ijmik1blli6"; + }; + hook-pre-commit-pkg-41378 = { + doc = "0mikg4p9wxb28vgwh1acgdhwa2fqnc8rw3jg355d6s137m40awc6"; + }; + hopatch-65491 = { + run = "0r294p098z0qykrh9r4yxmc0w72mz1nmxqbv418pmbn15wgj031v"; + doc = "0qxa6maigbzx7hc3nss3wmvcpyc9wvhq0pbzni7j0hqyzzsz3vv9"; + source = "1kbk80432fpq30zgix8waxq87kjd2bpcv72idaly8yjbj4pa1l1x"; + }; + horoscop-56021 = { + run = "02kazmk5sa40x0a4zb30gk9lkky0ak825gczbr5z8wchwpy4i1ac"; + doc = "0w9sgk2j1fzkcfzn76zpygrlyi9fnimp92mygsq2z6rpblzd1qyv"; + source = "0c6zkcb2057y9x7mz4q3nwin8h8ax71yaam21m91gk6ad9k8l4ij"; + }; + hpsdiss-15878 = { + run = "1l7mbnhds4c6y1w5vylsx8j7b4syl2j785l3xzvk89nc5g6ck2qh"; + doc = "1cxdd1340b1gkn915id7xcdac2zp79r1yi5g3wjwmj4kbn7z6sbp"; + source = "1dar4y0ajqz93znww0fkf36li50b82hbxixi30hi8fm8y2hc3j2j"; + }; + href-ul-69359 = { + run = "1gf2kcqh60ilzkd2i1fc782db4nxqgrizz6h2p0i2lvc4qplj95i"; + doc = "092gjbvcda2xacj0a3b8y6zlizkkyzqcbr6qfhdsqyds1sdrzpjj"; + source = "06paqsz9is5ksj8lnny4d4g7z3wkfgv8lnyl3nzckj8ap0f80g34"; + }; + hrefhide-66189 = { + run = "1lbfx61xyvnm1r24h6vrp3pnmci4j5abxlaanhni19j8gvqkri3c"; + doc = "1sf697hjryz1l82ag8h2kpxgmwa4fzmwb6ki1wsnl0y1qkl9m1k0"; + source = "0p4vqr3cjnbdsrkv049jdd6yr54xz40lvgdyx6z2wf79k5fj4z1q"; + }; + hrlatex-18020 = { + run = "0klc0pb2b2dcixaqhgxinhy18rp0lwck7129zi5qnpygzfslpdws"; + doc = "1dlxj4rv9gaxd6i4ns4zmhykhxwsacw6m3m2jmk2lkc3sw68hsyh"; + source = "14cw35brx8mqv05zbgrvfmmjhxyryx7dmj8dk0fkimqbyvhvv9sj"; + }; + hu-berlin-bundle-67128 = { + run = "109hjfg6p3g54pz7n6i64ggqjmvjqzmjp6ipddji0mnhkhjfww6b"; + doc = "1j2vjhk6rnsj86a59cd081vfcqnb93lz6szis05cs53k8pa7yh52"; + source = "05x8cwvh5xkjjw069lpw7pbsnb5swvf9k2c6l2s1v0w1wrpwg7b9"; + }; + huawei-69871 = { + run = "129xaknawlcr97mfw5dz0ipy7hnhgifl6xkb0fcf558s7gbpaxpp"; + doc = "0cy8wfqpbl4cryndsah2l6bp50l5qzgvgwh8fm3543q1v9s4z0rg"; + source = "04k4an9bsf58jkwzwis4blc4dmphgqb9fg9mx5pj4hj8y5gaijhy"; + }; + huaz-64723 = { + run = "1vjfx3c2hdv2jzqz09v3ki59dlmgnw0ff6m394nq6gx0qqk7xl6m"; + doc = "05xsh7jvy9y5v9vl25br8ixxbyfd754p0hihflrymkv97f1b0nlf"; + }; + huffman-67071 = { + run = "17pgzpbhah5m0gljhkqymv5lxpl5bxxgif9m7rnad20x4nmyzz68"; + doc = "1r6a1i3j8s4843gdvii740dl5rbilgahcrs2xw1zcqpq8z4xbfnp"; + }; + hulipsum-56848 = { + run = "1wfcsaff7rja3n0151ddzbfl9b3gkfkwq0vp35zcrd80xsqlw935"; + doc = "0994kin6fvbk4j9rp53vjp6ci050zxsf6z3qi7zdfxifd269fhx5"; + source = "1a5mkkl36dk60baffj3an2sa382p39j2sdrgadczj5r9pm9q0am2"; + }; + hustthesis-42547 = { + run = "0c5akc97v3fh3skxpgmffywca8kyswmaypkyxdzwrqb1k2z4xknp"; + doc = "1llsyhbgdz9k6swry84q539yjsvcxj6hgirqcw4vbvsdxxxsbyn1"; + source = "0nqs1ifkhhzspdwg5nbqgpd2309aw9r65cav51vxpn2abss1q6a1"; + }; + hvarabic-59423 = { + run = "1cagm9zxkhrck5svckh7i0c3zx48vy0h6f2nhishm40g9q9r5qay"; + doc = "06g6wmxqgfj9zz2ph7gwgndgkm2kzpd4ci7pkwl5qm41ik96l7a3"; + }; + hvextern-69651 = { + run = "03wma227maj0j0f38l03vnm9hvqavs70i17nczsi1bj9kyfbm7a7"; + doc = "1qh92gavgygisd02hvbnp675mpv75mb3w98zhb67q37dy80v7s4c"; + }; + hvfloat-70400 = { + run = "1xs6y5cryvsqbwc1cv43lk5jslmi03xi4z24658w09yxbi99lzhq"; + doc = "1ahmy559jzha5jack3h1hnafq27lp7zl5wsd67m9vj1gny7zcsqb"; + }; + hvindex-46051 = { + run = "1wk4q29iyqrk83kafwhah5gvvj2ywpnqzvnza6cwrkb85fd1q2i8"; + doc = "0vcdmn3xc4cm3rkdkzi0qvqakgkc3hrgy8nycr5c8vcb6xaiw0gr"; + }; + hvlogos-69581 = { + run = "0g53pwri6xrqa4a1x277iqivhy7gsb2khj87b3r3vgxkbrpn5aqj"; + doc = "17iph0xsl5snqp9xmnylwr3cp5z0f1f9bh6m91scw79p5nl6rlyb"; + }; + hvpygmentex-62405 = { + run = "1rnra0v65wmz8yqwfa6zqqswx0m7j54z6wpzvbrp2d5gx8azsdv8"; + doc = "16r1sqsaw8ij5jxf0ygm2kgdhxpzsq5g61jhj9rq0zhpjma7fhdx"; + }; + hvqrurl-69723 = { + run = "0kyzp9m2spgzyz5swrrm8xizim2mbjpi8w8xax0c1llj34k1m7vp"; + doc = "14939z9p5f3h54n0kn34p29fz2smbqdchxakqx7g52gf7gqmx25d"; + }; + hwemoji-65001 = { + run = "1vkflwxx8c0ckx7kz9mkh2qkpyxjjx9zmp940p9w93x4c09bs6l2"; + doc = "0i18fcfbvyv4k578bn00w7ngk5lxp29n1j1i52vjwc4cp25lfgys"; + }; + hycolor-53584 = { + run = "1dfd149g2k8cq3lw95z6r4knyq1mgirdqnk9c4lmd7ip4rcs0vi5"; + doc = "1pc12vbn1yak6l6c1fgpnj0s88fg94nagj4b95mvclad6b546g71"; + source = "1f5jv91vsib5vk4byr0481a8j5pvbwmhfqz2qd14ck2vw8laz4ap"; + }; + hypdestopt-56253 = { + run = "1753c7vjx3smnhl1iylg4x0sdcqfg6gb0wdbwqmlass4qdn494w1"; + doc = "07a2dpvvyj2r2691v8izjnqjksna1nm00za4sva1npcrhkc2qq1q"; + }; + hypdoc-68661 = { + run = "0xbsmzlj9hf5y349r4mvvnzc4k183fzr8lp1f07r1dc0nbff1qvq"; + doc = "03bcsfydm4yzm1g9ijz1r2r0f5llc0i3pf318aa5rfy6j896nvvw"; + source = "10yvzay1g3nk2kpv2l41vd2dqxqh5x03dd23xcpd4lk09rbddcpx"; + }; + hypdvips-53197 = { + run = "0ax6n7ki47jyzp5g8781c7rv54hwrl0fg7d1bwzbj9bmqi39df4v"; + doc = "15vnypyl6g50d4mycz3s41h8ccpmknr0vh9bwacr6nxbzlyyykrk"; + }; + hyper-17357 = { + run = "12737gd2nmnalkgl4d2sh45r4d621zl6g2zcih98m7dw8qr38w2v"; + doc = "0hzl3fzgmn6kyl6p4d98l9ycisfhb9v50a1m6n8q1k6jpvr10z9f"; + source = "09m0kdcs4kqksqwxf29yq4l52kb2mj5pxkry010ibwqw64cs5p74"; + }; + hyperbar-48147 = { + run = "1bj0v54k85isn3p48vmiygcvd3n06r4mqcp75hf96mmp0wvmczg5"; + doc = "0fmrz4hlzd8clxx150fk4zbkdgbnhg3b7ck10225b0n1lqgnlh0h"; + source = "19x81f6bki5mnx1nblrl0ji663q0pzkacy5lbjsqyr7krdc33fyh"; + }; + hypernat-17358 = { + run = "09lnsw7ycwkk71fyjk8zwgzdjv8ff3k028q7hr27dqsiyg4hjg7a"; + doc = "150ayv12ym9h68a09h1xakdfzccpix1pff9blkzjq6iz5imzzpr1"; + }; + hyperref-69523 = { + run = "05yj1g5g4dr53i1v95x95pk6q70p7nr92k4iqcm948km567q2ar4"; + doc = "1kbcilml3wbw2rpmvn85hmr3wss907n0h521d20kgbjvpancg0p0"; + source = "0vm5ma9xz5bi59g92dxwn7aahwdkcprx0kb346s3l15pw9qhm1i0"; + }; + hyperxmp-68251 = { + run = "1bgizrwr5wpr8qprjwyf9z3f8jw0m1sq8qzw886j6lwxlfg6fp9k"; + doc = "0srwvld1grn4smw2pnr0fp2082vvz3x2bj4lycvx036991mmnr6h"; + source = "10ll53lhsqz20cp80mvwy1z9qna1sswappy2ifz71m6v304a1q9v"; + }; + hyph-utf8-61719 = { + run = "14jj24fr6v74vj8wi2a9k9zk9vnrvmy1ni4zn24dl5fdfw75n5ik"; + doc = "11n1blnx9i7q2dlhyhf1dxs2vnldc9r8f3k6diix0i1np8hpz05q"; + source = "1cff5ijmpxc752n6cmpfzn1a10ihrkz7n9l55gz2k2q0a00m2ssh"; + }; + hyphen-afrikaans-58609 = { + run = "1kn57mzrbk0qhz69b1ysdqjv8xirsb40yz61jx146kqc4p1y96lf"; + }; + hyphen-ancientgreek-58652 = { + run = "0lhy1zrg27748mrx8yz5qxpxl3nl460l5l6impiz3lbrgnld487n"; + }; + hyphen-armenian-58652 = { + run = "02x9p12zc78w1x7k2kz019as42d5kn6gxfl4s72rd6dyrqii7bc1"; + source = "0z666y580w1kpxssdanz67ykq257lf11a1mnp1jrn08zijvfrw9c"; + }; + hyphen-base-68321 = { + run = "1xganah7l607qg0hyridxx08sfjc8qakykbc0c97pad677mr4zw5"; + }; + hyphen-basque-58652 = { + run = "1dy9fgbh4i3d9ar8wazwjvhhwzyhbys68icz3zjvk7gk9nvbm9aj"; + source = "1yhsbzf1g9dm70jfixsz51hsfvn26cwfkfxvhg7xv2piynr4v51l"; + }; + hyphen-belarusian-58652 = { + run = "1n5md9kf7iiwqm236bkdsl4fb4vd6a03b6q1arvfa4l4yh8jvr13"; + }; + hyphen-bulgarian-58685 = { + run = "19h61n6ip8ja8kn8p1fb79lfv15pfzdhhzih0hg15cp1891nzlql"; + }; + hyphen-catalan-58609 = { + run = "1aqn66448bbiycmjyhbxikr4l5pvjvl5vm8gpzjinngiw82v9j98"; + }; + hyphen-chinese-58652 = { + run = "08sbasjp9b4wl15zmx0diayqfa9i7pf65nnsa98lbc9rpyydvhn3"; + }; + hyphen-churchslavonic-58609 = { + run = "0yh63znzx0bqqqr6x70c7laikxx82ph85jw48i0jh9ziv0n5gq8s"; + }; + hyphen-coptic-58652 = { + run = "1ry5srs6qr7z1xj1km0jsc3z278iylrfq79ji31kxmf1qs7rwpnd"; + }; + hyphen-croatian-58652 = { + run = "0fqwf7val8hfdcqww828cfq3706wi0w0ypmvwkkllsx1nv2mqiia"; + }; + hyphen-czech-58609 = { + run = "050b4vmp8n9nwqzagpw7mq1ciin9rwgdicmbk1ajl9gvci7q1q8b"; + }; + hyphen-danish-58652 = { + run = "142jxvssj44xh1p8d0b298l0ri33blvac5syvqgx71cvsbwpc6lb"; + }; + hyphen-dutch-58609 = { + run = "1hxwpb67c2hzzfk6jchhzbj2mfxzywz4zqm3z1hz9r2ywahram59"; + }; + hyphen-english-58609 = { + run = "13h2gli0pfjg797i4i86dihmnrpp52fjr1apj71fgjiq2453zsdq"; + }; + hyphen-esperanto-58652 = { + run = "1vfrf4wby1gmw5gm8h4qkyqa3hsx00nwj2qs05m1kn119k0sg70m"; + }; + hyphen-estonian-58652 = { + run = "1x8by00sb45acj1rkd5az408i0i2wjdabd992p4d599sf8b9dk05"; + }; + hyphen-ethiopic-58652 = { + run = "08dyf72ygqh24h15na2ssl2f4w9jlffh4vhy6lvrw2y6kss1xr8r"; + source = "0j55k0sh4dc53wbngadz4wy86k046bsi4l5a329044hk24v4ydm0"; + }; + hyphen-finnish-58652 = { + run = "06c9r6dfihycr4vb4bvnf08d3p94h5n5g0ayjpha6gl08ab6wmv6"; + }; + hyphen-french-58652 = { + run = "0j41s8jl6449lys7zvjy9psynxlxlbcf23qh9sxf81rk5srzwkdq"; + }; + hyphen-friulan-58652 = { + run = "102sxp8901hln47nj7wng556bmrn0hqsljlf0v0ll8lsngf85h33"; + }; + hyphen-galician-58652 = { + run = "1l0z14m9j9w1c9kkm61r1s4q9fvbblhdbrqhg8gcddfh0b85qllq"; + source = "1979y5x7b1x8j9v4ifc7k24zb6pxd00z0c6j9knndcaj428mf135"; + }; + hyphen-georgian-58652 = { + run = "1ja7skdhwwdy3idgjf508dbhbpyl3a7cj9mx8x1rswywy924liqf"; + }; + hyphen-german-59807 = { + run = "12x6z459lmns56s7h15lhz0fvz4dw1v51l1a4akynlbs3wh1adiv"; + }; + hyphen-greek-58652 = { + run = "0yknyhys5j5d34hlzw5wqdm1gw74p6bvx4dfx5kylvwjahj6ys5x"; + doc = "16ikyzvd161hn95mi1swg0a390liwz1cq9534i5nvzh1vkyy4wrx"; + }; + hyphen-hungarian-58652 = { + run = "0d0bg0h78ij9b9anmdlwrlddd1xg09c2k5ganwnydbpj81c4z425"; + doc = "1r10gjxyk8bkqjiiz7pij7zy4cvspvhnimkszl2sv0zgrkgayw68"; + }; + hyphen-icelandic-58652 = { + run = "00lnbm193g0zv7c1m47yz90gik1bd80718y8cmz5jhxz9ny1l271"; + }; + hyphen-indic-58652 = { + run = "02xnj4lrkvy7gs4vlnsvili90p6p6byh659mzci1ad4x36z4362k"; + }; + hyphen-indonesian-58609 = { + run = "047j1835ny6l0ris6j5haw41m9id38r854mx384kfm48sa70bs9x"; + }; + hyphen-interlingua-58609 = { + run = "1gc3c86zbjv6j1kw353xwhzrqrmq41rbw2ah1xrl7rxvksmzmsnr"; + }; + hyphen-irish-58609 = { + run = "0kaf1as4jrs8kc7rr2jg3cjkxr0x4fxn88gqjxdjdac6xhlvg0w1"; + }; + hyphen-italian-58652 = { + run = "0xxlpfvcy4frkvxjgx85nz86z0n9cwhgsdfmhgzi66w8c9c2r9fs"; + }; + hyphen-kurmanji-58652 = { + run = "164q51fkcfslh1vdz19ilwjbrs0v96a4pn45d6n0cvv9vw6gi791"; + }; + hyphen-latin-58652 = { + run = "0l7lsp9igylrk4cvjff8lx8jk5biisss3wkcil26cca4hb1612aj"; + }; + hyphen-latvian-58652 = { + run = "1p5kaf7pb5qxj6h3bglgnsqx9rys35i02piswwvayf4bdmv9sqx7"; + }; + hyphen-lithuanian-58652 = { + run = "09a4636b77fc2rmgc2b4jxl174bjc4ji69xply0yls4b69727i1x"; + }; + hyphen-macedonian-58652 = { + run = "006fg0snc4h98fzdzwdhk6ibhyrvqhs502wn2c1dnizlry05fdv6"; + }; + hyphen-mongolian-58652 = { + run = "1mdgs6gcvzly6y2i5rlxajk2qxjac0m91ayqb079mz8yxwvmq6xp"; + }; + hyphen-norwegian-58609 = { + run = "1sp47h5syhcb12nik26iy6xs5dyxrj5a53vzr0scbc0s746qi4gw"; + }; + hyphen-occitan-58652 = { + run = "0v0yivzx0xl48isjlnxfzvlrx9gslg6srids1aywfqmybffmfw95"; + }; + hyphen-piedmontese-58652 = { + run = "04sva2d6dxaick0j30izd7z71vpw8q7xx0xvihcvcgb62gb5bc7a"; + }; + hyphen-polish-58609 = { + run = "121aayyqidlz8kprwkb4ydzqakw1m7a5ysz9zvw7clb65z5yd69i"; + }; + hyphen-portuguese-58609 = { + run = "06dxp3qddbh26wv1wpwml41vpbm4y6386vgd4xn2107shhbvhqpy"; + }; + hyphen-romanian-58652 = { + run = "1720vcpvmm086k0ndlbp0rkzmz7f7mnmb4wn67jm53357iamkchr"; + }; + hyphen-romansh-58652 = { + run = "0dxcw56bkl7ddqj9fahmghwsdkmi7ncr5j319hgcgnlbp1717rkc"; + }; + hyphen-russian-58609 = { + run = "0vlnw1xn92ncl31yh6i7k386n0hp6vx90lgb1kxs0a3zrxcds0wa"; + }; + hyphen-sanskrit-58652 = { + run = "1svx84qj9vr2s6pyxn8zz587ph37g615hi3g1m4q6glw9hgzsmkr"; + doc = "1k6vsa9xakzwmjma4f2vm685cyb28rjjj5qmpb7l0fpqpmvndp1d"; + }; + hyphen-serbian-58609 = { + run = "1v0v281ws9dyivqd1nrb5ms106vlvmsrvka5jmnzl1wnpw34z92c"; + }; + hyphen-slovak-58609 = { + run = "1vn6i784fdz35dcbxdcv85886mbg8vbjvx0w6sx230gjjxs1s571"; + }; + hyphen-slovenian-58652 = { + run = "0fyzw8r6v07p04m44ky3n4vkkq1dmfkl58xyx65pcpj9399bdjy3"; + }; + hyphen-spanish-58652 = { + run = "17gq675kb397kqd87qg4x03wj2b5zkjy8ynzpq2h1flh1lf2zfwp"; + doc = "13kmgf0lwxm54gs39lm8vgg2hhajvqwviql1chhv2l7d66mxrcrm"; + source = "05r3c2m5xfs6yl52ms6kc95v3x82zbs4py9ip6xznshfs5xakb85"; + }; + hyphen-swedish-58652 = { + run = "19rdzs7w80gf7q2xdkp1z2zc2hgq7mklfkrfdwzch2i50zzfxy6l"; + }; + hyphen-thai-58652 = { + run = "0k35mjibmsrahiv71dbl82r9v978gwkm42xjnp3zb4kgc0h79kc8"; + }; + hyphen-turkish-58652 = { + run = "0zqizvrri9r9bldqds768bslyipqrs06hx96b0nn9k6wm1y8pvsf"; + source = "0rjwv5b0jwnwhlp6ifzd6p8iid59zylp2wbfk5crfjnknrl48qn9"; + }; + hyphen-turkmen-58652 = { + run = "17bhr58r8sl4fw8w3gqsb8lvpw48vdijr16bdk7n6ma0183vd1bv"; + source = "1wlqx8wb0wsqhdv823brc3i8w1vf4m4bkb2vg917j5dq8p8p71aw"; + }; + hyphen-ukrainian-58652 = { + run = "1jpi7argypmrx4yvc23dx777r157c7kxgwpsix7cjjihakmx1s6k"; + }; + hyphen-uppersorbian-58609 = { + run = "0rvb1k16rs9hvb9xgf3yv79mh2gkndvk85blmjjsq49awwgkd8y5"; + }; + hyphen-welsh-58652 = { + run = "1klj6ir4b918cx96jd772ps9fl2fljh8kwkakdwaqqi8szzr65d5"; + }; + hyphenat-15878 = { + run = "0ckfvjxdv4rb8156x2vmwl15mk9057i2lyg9xhqkmvqh1ani4lc4"; + doc = "1lzpdz05dw5m8ljxf5f846m1x4nv5yrqbg3sixf7dgyhsmpfxnls"; + source = "1ddwv26nfl4jwz8vxs4fwc9qw8gds1sg275g2bg9ci8dfflk16k7"; + }; + hyphenex-57387 = { + run = "08f915yqpx6qhc2dzbicbv9cijzpgcl4jpifydqcc0x68y51qrzi"; + source = "0lqn354bskaa6g0bn9g1r3lbb1hj9si5n1ki38awayzp1yj8a3q0"; + }; + hyplain-15878 = { + run = "1kpaxdya6m7x4dmrxqzrs6k6agxsg8lcg5yqqdlips887lf609cl"; + doc = "1q5dh42gpv4n9ps0yqyhcscjn47qz4zf35jlg56xgq2w5229k742"; + }; + ibarra-66892 = { + run = "1ichmsdkjs71f5yx5cphh08dk07gmr7mg7n0v2p4sg4fh3dbxjv9"; + doc = "168k2sx4shkx8h4l5jp3i940sp2bd9f4if2pjk6ilmc832dbh25v"; + }; + ibrackets-67736 = { + run = "1cd32hk5wl2xzahk9xsrnmv8l5r05hqi9gz64d6k0lzard4p494c"; + doc = "06ifqb5k7z08mzd8kkrkj3r37yfwgy5fw4zygd0an5470pk13zam"; + source = "1axxyjfhkany1k2c6rzsyqilrq15809fd73r9hv0qmpbgca7m3m3"; + }; + ibycus-babel-15878 = { + run = "0az75laq5fxnvn12348c3985148isz4n7nv6hd0d8amanm80h779"; + doc = "1256n1qa6zpq509rk02llcixw3qh3sgi9f649pv1hjk6xdy7nxfl"; + source = "08x3knpkwifgi2zxv78bnfn10ix7l6rf5nhfqi6w5xck09l7fiaj"; + }; + ibygrk-15878 = { + run = "0krpzjn96r70z8rwsq52j0v1x7ppd766ngvf6xhny2kd7mshl9ka"; + doc = "0prn5b6cjc9ljxdnd1ckfgzqwlc5vv4w435zvyz75r3f1dvbhh9m"; + }; + icite-67201 = { + run = "1aszs6kbmwx7k322a2yzk4l8d2gdb84aq7f9sk4bpiljgi9gpclr"; + doc = "0bc1r733c6g8y8r2kam7in3p3cb9y8frph85s26kcgdxqw7j069i"; + source = "0l3gx6sm1inyzyb6z2rb1zrhrnyg0i3xim0dn80360fkxxsz7739"; + }; + icsv-15878 = { + run = "0gv7wrghqivfm8yb3nkm6r8jnvx7klbhr1nbp27cjaliz70aapa4"; + doc = "0dlsqkdmx4nhgs15hhn0nw6vk6h3q3hhhwdymy8nnxraph2mvyl4"; + source = "1fh1znhlacpci7v23aj9zdczhc87sg3l0s1gsvrbgznpadgbzbim"; + }; + identkey-61719 = { + run = "1vs6sr25ybmrfkg5v3m021hlhw9x3gpynh89q12a5pl2ka094hn1"; + doc = "0r33gzfwrj4j8a2i8kdddbhgljf3hz1b7cjfxgmv5gdqmmjywnx2"; + }; + idxcmds-54554 = { + run = "179mvb95a1cxkn7ncgs7xwhh04d36s9nb5jjxvaszcfkp9rnlkcg"; + doc = "1ym6yi4cpw9flz4si6blg5bfj85sf0p3y6nipc886ixkwiyvsgm7"; + }; + idxlayout-25821 = { + run = "1y1vzyb1l5b8q3qqs62zfiw7vfd9c1pdha9z4nm5xpsar1nk69qx"; + doc = "11qiyzcj4zi8kd9h2k2jhg8i8rzfwdam9rhr7cmvbxqsqirf0fp2"; + source = "0fkpj4gn06wkq3saprsb3gm7myj04yll4spz3j7yi28yniv4cr5c"; + }; + ieeeconf-59665 = { + run = "1qmpb96jx5zxql57bh5ppzfzfrgamnxn1nsqpq1bsr0xf21zr6xl"; + doc = "1jhsfs770lhq34xxdx6ak9mbpmamfz696kxy6dhvfadzkn3v1ls5"; + source = "1r7a5wd0hqhjh7dkbvm0z1fiih4f9pxbx6y7qmcy1qdvlm819jmd"; + }; + ieeepes-17359 = { + run = "0nipchw9hdlc7am3n052bszilwj192pfcnc9p5alqnffrd8c4rdj"; + doc = "0ff8xa7w5dmp356klm3lfr9dnfplxjqpq7aiczp6xj092vmjrhdi"; + }; + ieeetran-59672 = { + run = "09j24j6kpgjx58yghh902bdpkns025v9av6ym2xwslmv1ya31pka"; + doc = "0y3bw20f1sa7dacqwrwc43masap5sz23vna8bbkf4p74rdgl3bkn"; + }; + ieejtran-65641 = { + run = "07y254kl5wanv7d2jyzhwlf5z6n542217f5n7gdyrm4jryzhb0ly"; + doc = "1l5cyqlsamkn3yjdia1zbv7lianq8jcjl83pkywimxnybw0kvdbl"; + }; + ietfbibs-41332 = { + doc = "18ypa96z1gclq4amka28sv26pm7lycak68zf4b3sf1bx4ldnzmxq"; + }; + iexec-69420 = { + run = "1fn85bszr8ryaykafms3y0yfgm469vmikfg2mpajyn5bc7pmhnb8"; + doc = "11j9lf6akvgsqjb9h9i69qxxkwa8h2092v4znf8yjrdcasd4fwbs"; + source = "0254awws0vimn7vlx4gjxn03dfahdzwzvmxrj6x5mmmw32xvfhhh"; + }; + ifallfalse-60027 = { + run = "0pn37mzlkpswyykciwgfkw981098gccqmp7wllffr39qxhcj6gdl"; + doc = "1583p9f3lv7kkjygqv368ag70jq2b184j47v32aqpgnwlmyn55jr"; + source = "11636chvmy2icfq6f7mvdq0fpcn36yl15g9ffpp0flqdq7c8nd14"; + }; + iffont-38823 = { + run = "1a4zx0mysk6i7awvcjv2y1yid1k160icrkqkvw34qsgs35qnqbbq"; + doc = "1iqchl5nra5ldmv5ddpwjcm84whpsxym34vphj2zxvzl0hqwrc2n"; + source = "1x187pafzgg7h2vvy5dfc44y37q45lkzqfkxh8b52pysxxl23014"; + }; + ifmslide-20727 = { + run = "1n4dmmslpsx9fv9wqiipcg04lasym2fbgsqkvvffqmx5rszgdpha"; + doc = "0n7hsymjs1zfjc5gbn26z2wdl5qicc7pd251s0h4qnfigq3nhr08"; + }; + ifmtarg-47544 = { + run = "0wxhdmd2h7rs3fck9yq1g48kyd33m7xzz3g7ixg046azai8f90m0"; + doc = "0h8li5c5lxccf2a325p4vg7xgalzwryk8czdzcf637sbbkfhd53d"; + source = "1yh0c42glrw5cgqk22h8lrc12lriz436wz9vrc4145gjcxm6p09s"; + }; + ifnextok-23379 = { + run = "0sf9dmz303pbxfi24z6fb1wxia89qaf4svgp4sbpi1yl3gkxwrmj"; + doc = "11r5zrs467h3rv5j8c7b5iav19v9hbcxbspgfdbd061g871xxd5y"; + source = "047pc422qhh9d80rjgmjgmn5xsapf9azvqrl0cjn28qw4m5ccs12"; + }; + ifoddpage-64967 = { + run = "14gi24l4m9zmyhckjq3j1svr9858rm2idr1wwjwmp561wp7vr6yz"; + doc = "0gv1j0swzc4imahk9s96nga1l42qzc0xkznas0jzkbi27s2lik4x"; + source = "0wz7iaxf26qz1v8sc0kbrz1wy0kzd4zbd0qiscdhmhmw2xr077zf"; + }; + ifplatform-45533 = { + run = "0abhpfw3w1mvpg52xaw3cngl55sszk5ji9a38yab8vhknh3d3jby"; + doc = "1b41nzn666askfc1kkm1lwf05ggf2ml8gz3rrki4yw6ch52sl2sc"; + source = "0g0qvbvv4j87rxps9yypair00z6il5hfjczkrmf4fkycw714sdqa"; + }; + ifptex-66803 = { + run = "0yw0dphc2pdx2jrm5khzrnp6rg3fbcfc8z6ppwmyid8iqxszpdg3"; + doc = "1mbdhxl2fgbwjbsk8jqk3709bv8k3whqagls1vqm5386lbcycvkv"; + }; + ifsym-24868 = { + run = "1bs3974l1jdv0b2wwa94861hnb05kb69bsyhvsgh6k9xgmgwfrla"; + doc = "11k9jfqrfmshwpmni6bm0324zj7c939k6shvi2l69k4w0kx6phlb"; + }; + iftex-61910 = { + run = "0dzpfyc2ld4kbdwj457fzmf733792gz1z7n7hpbn6z7npnkg6i8s"; + doc = "07wvwfxwv641lmk0p1gplv7rsvab87v9fgzamizqvihf2ys506q2"; + }; + ifthenx-25819 = { + run = "0bp087nfq5hb3a60ayprbz621nmk0acisizkw5i25n4kryi6vc63"; + doc = "1hzz8s2xlz2pij81cfgjad8yaamv8l4iaripj7bbifkq7gy38afj"; + }; + ifxptex-46153 = { + run = "1wb1laq1nn02klvjgwvjgansi4anmjaik04fl0lylr7x5996qa9k"; + doc = "0bh8bqly3zzzzgs21cb51a06023l9xfig5qjfzrlyvfqms7wj19z"; + }; + iitem-29613 = { + run = "1sdsc28fw1lrr72s4wwgwk0zxk9720ll5xbvap2na4i3lp4vjghf"; + doc = "0grgh5bslsl67ygvz2cd3xb9adn3w4amhpkkxnh035vkld91fxh8"; + source = "1fk3c5rc8ylf9jg5id4jnm1gjnrvafiivhr0lpfws4ddr2pmir06"; + }; + ijmart-30958 = { + run = "1j4i7f745nk80nghnpajkib2y6ddrzg16h0gn5cd215pibjaml6c"; + doc = "01ds6p3byc9j5sgjhh7yhbpv36idlp5g9afsqryvhfrwy3r9900g"; + source = "18saabw9v60rly8qp8vcgj84rjz88gbz4g2sda4i15lsjpmz4dis"; + }; + ijqc-15878 = { + run = "0h67131gbqr971hln3imf3dljh5jaqmdp23hb60zxnlxllf6msjs"; + doc = "0l0pvaiqgyxk5fv2carjhvp6f45clrnah5sla7rdslf134d8ciza"; + }; + ijsra-44886 = { + run = "09dszs5ha929aws50zq2k7kia529bxfczs6j8bi0fvjnmf6kx3yy"; + doc = "0lb3rlqsscmnqn65l1aq5x5ismsplgbm1ks1pn6cs2sxdjy2s0ly"; + }; + imac-17347 = { + run = "1v7zpbzgxz42b6zv0y3d2cmzzsal5mmzd3lb1nk779i82dhs6pi1"; + doc = "0s64w9wkfmrbvkd8mij3y0asrkzcg2k58xjl36vfvcf07aw5wcr6"; + }; + image-gallery-15878 = { + run = "097brbh3xf2xi4s151iy8g6abnf0ba4yar78jz607f9dfni95i8c"; + doc = "0f8a7jzj6w25al9c13mxd04bg2c701s0ynsd1rvnqdik6d98s0l0"; + }; + imakeidx-42287 = { + run = "0w0q18bxpbsqrj97309b9lyfcf4has5ldjvs0dwn45lciav8a7rr"; + doc = "0h2wqdg6navbpzjq38ks2b9lz3hkmgi7v1y8ihbbv3aisyvp5r93"; + source = "0l7q94z5a3lsy4kh7vxyr6mmywc43p681p1vjry1f9vi0s6ljwpy"; + }; + imfellenglish-64568 = { + run = "0rvdfcyy2f4w5dnxp396gr5516q76lyq5vshwlai26pf8f9ffd9v"; + doc = "0mycayxx0yi5xrkgp48dfcd0vp8cw5jhqgdhwm4kkbpqckbq6kpy"; + }; + impatient-54080 = { + doc = "03cjl3lg7k7p4h8drw7vcbw6ymgmm2clv6sgfs3hdixs8dmab1b2"; + }; + impatient-cn-54080 = { + doc = "1pc20pb0las3slam1d9hmqigipmr6r98wwif12m33mm750vmq65i"; + }; + impatient-fr-54080 = { + doc = "1qwdllmi0ci304smf4yl6g8ah083jrch9clkyav7r5qsxnhwxbxh"; + }; + impnattypo-50227 = { + run = "0kmyjdasybcvr77jrirp3s1i8jwvhk7j04wz6blawihidz55myvq"; + doc = "1cgk3wk3flpmlw3wa4sg1s9ry6bz9vjanzw8kpyhj3d8yl7cnzbn"; + source = "0qc5wz5a4rgvrzv361gq3i6h4hp3v176klgn6fhiwshk84zqccn4"; + }; + import-54683 = { + run = "0if5vrbx6456ydarw57p1jpkcj2d7csmiffgll6fgxf2kllqga6v"; + doc = "11hi1yk9xhqks4i3rhc4s8bbaakxbbmddb7j5sym780y45qm79c3"; + }; + imsproc-29803 = { + run = "0pkhmc596xrmfwp90w7brrzbjn5rzn70kdpnjlxbyf2j85dr7gz3"; + doc = "04qasn12qqg69k6isnv2qjpcnfs1nd27vvdpqqdb23z97k38x2xn"; + }; + imtekda-17667 = { + run = "1hhxwaykslzmf70lvmrmpnn2kq3xa114lyvazgfg9sccc990gnlf"; + doc = "0lzkiirxgvl2m0vnqpspr25qk1wyq1bs2sl3zi6704q3fvp6sqbq"; + source = "19h57cyxs47awil222i5svqgwdmw9mrm16wja9f1j980nzzaq7wn"; + }; + incgraph-60810 = { + run = "04kzj381v6lj9a2hjgkrsjvs4h5hw6mn80cfmcp6y8d753ibaail"; + doc = "0vi27zvbw8pwh9krr8zwh90m1fsx6wqsqkch8c9ggjy03518b5zs"; + }; + includernw-47557 = { + run = "1w51v1v8x7wzibcy40ss7ldra83wbil8w1p978yvs5kzbky3vw2f"; + doc = "1zl5fsgzb7nm1wi6ddc3cngqj3apmjwn1wkmsz785nss56vk9f7w"; + }; + inconsolata-54512 = { + run = "1mbf4m3ll3r4nhxnmd3ridq7kdqlcjcm3g2q2s6qxgn4b6j9ikvn"; + doc = "1rh7kisvs33v91r19lnqgma705dc3gari0g153ws8bd1px3ivsdm"; + }; + inconsolata-nerd-font-69061 = { + run = "1778fg0vpaf7ccqs38x9k8d4fsnawqvqpchcjb5bqjzg8mk0mvs0"; + doc = "0ydzsljbbajpi08dy4lyqld82sqpyv17vh1pp1nwp6hrn6cml3q7"; + source = "1jndmhsr8y15b630wi7qshn1kjq9q2nfkvrn9gk0awqzjwl56m6d"; + }; + index-24099 = { + run = "0lx5jl7nckbn0brsijlq78mm0gjshf8m1dqjhgl0l59qi56x5f4x"; + doc = "117h2g30zbw5g6x3xlmpgq0k4fqixh0l8ah7350q1sxvddxfcc24"; + source = "06acw1yb5z4f887p44l9afk78kpnjv9djmbwj55bac23ml2k3ddr"; + }; + indextools-68555 = { + run = "1f1r8k0psa7g9pk6kkgvyi9dnywsc4n34svfq2pj8b1gmp9918kr"; + doc = "1xrlfkg43x4g66ip24spnq7vr915z0q7zdkqmi8g5zls8y81jg1c"; + source = "056vrs54jnjnn3c2kvxfhhxf5ms8cpb004bhd8f9whb6c1hdjqpy"; + }; + infwarerr-53023 = { + run = "19nlrbfmqbkjrrx9x75s9nd6crg1lzimb2fr3hfblaivj6lx8p4r"; + doc = "0p1s0v6p7ygkvz5f3vgarcrl85clfrj3ivzrka62djqyzn4bb3yb"; + source = "1x2mkqyx7gz0bz31na6mcdyrlj11mxpjlzc6gb9pk51sdqjj0bbv"; + }; + initials-54080 = { + run = "13d5pvc2q6xc0i8nbjpifn5xyn7wzln7gng98nnpjxhk5y67bcz9"; + doc = "0676gq5dx4pqs6c0z7i48gi53mlapplmms8s66qwpdq1aksswdcq"; + }; + inkpaper-54080 = { + run = "10989ja1vy9ca451gc0v0mrkqi25dwv4fdvw9y4k6z26g7902hap"; + doc = "1dmvkq44kyxd5y4l2kc9wvgrhgk4kkfw0qfqzi2faf9xd6jssrhk"; + }; + inline-images-61719 = { + run = "1nq64ymrmfiw19bcbb25gmll36xbv58ynzvv140089pw7xn5x7bm"; + doc = "1rjppia3m0kvf433ansxhmwvii70i4k53iqk9jphhk2xv2gfd16v"; + }; + inlinebib-22018 = { + run = "0v37ifnjpvsrcbrjd57yk3qqq195jqvr1cgvfz2fsrjrd2ima822"; + doc = "0w4j64dxh11fysqpkldksv2qg816shz0dj16jqgbksxkjsig1i16"; + }; + inlinedef-15878 = { + run = "0k6190v8lv2l96qpmh3pkblhwn6camcq83w75rz09517bnysm4yz"; + doc = "0gz9m7fwcdxs6q5a33v7n32x5jr4hbxsy4j2shwv39j1j2amr1vl"; + source = "007648wrb4ar04g0851yw663cvlmdyifidp854y87yzh536hfwi1"; + }; + inlinelabel-63853 = { + run = "05qv0j8gvdqsdc0bg51n7mskbx88gv2yny1zffr409x8pvccnhlj"; + doc = "09jnbnyc5sy1grvyjxnlrr3pg91ispqd18mfdk9zj8m6lwy4gh1l"; + }; + innerscript-68776 = { + run = "074xa8nfa50sdz3hqvvlrmambjnfg9yai73xx9bmzc7mrxsdkxc3"; + doc = "11nli4g0q319k4whryc4g9mzqjsqz43ryx796kvhb3kw8v7z0rcc"; + source = "1zam1pw4jjx2kcps4rdvi0rdrwz37xb29wjcbm5ir4z0lx4qq4fa"; + }; + inputenx-52986 = { + run = "0jjf29lj8ha99r2x0vz85swkr2aq6v2jwis27irsi79syfq8bpbc"; + doc = "1kkblvi4dhfxsij5lmbdvmnapskvd5yahha5im2nlllh8crypwv5"; + source = "1681djxj8c43i93ip864bi1p1fpn2dngkvh18zs0234ls0gkwiy1"; + }; + inputnormalization-59850 = { + run = "017dxyy2lykvcsigpq5vfklb2gqg1aprk0xk21sxa8bdsn3hd2gg"; + doc = "13yvyh5g4a1k6bcqwgmgspp8gkgzvgcx5f0wy5ajp577cxsk5ir5"; + source = "0wz9hw5qs3i3iah63fqhkdcijhv30k828a2a19268am4803m1pxh"; + }; + inputtrc-28019 = { + run = "1qy90zwai5ciajsiph6sgmzmfi16qgvx389hvxsfi28wccpm5bh3"; + doc = "0fcxac4jsvhnc85p9nwpp44ij0yq4q1lxlw42dzhg88fdkl57srg"; + source = "0b6kl9a6ilv0i5xnlcfjgia40ynl28dbz1rvcvak3637fva07ghk"; + }; + inriafonts-54512 = { + run = "0kbf9rvrml10qk5pckz21ag217wimqhdxjfk35ll0a17hc9yzj68"; + doc = "1hbhfhmnjya1cmj1wzhvbny7maw9m2dr7sv74g2ka6gnl1n4rx1x"; + }; + insbox-34299 = { + run = "0ylnp3l21zx4y1bwrr33v8d79vlgz5frna9dkg62gz1bhjbw7f7i"; + doc = "07iw7py0p0jfq5np89dx9fdvia3yk5mi0py77xrgb8v4gx7k5g3k"; + }; + install-latex-guide-zh-cn-69264 = { + doc = "0hs9pqhbf5pkdk3a29xnicj7i8zxgf3vazf2mmm4z6fc4b0kfpjk"; + }; + installfont-31205 = { + run = "0lszqj128c3f4wbcrvzzlvj25jl5rm0n5qfj8rsn65ycxvymbf91"; + doc = "15x8jzcd7bwvbjid0hr56h7dw39n2rg6wbfz4b02y7shp1pn7hgp"; + }; + intcalc-53168 = { + run = "0llrnayqwdqxi91yh7panbbiljina3bynv2hxhi6sssaw3pyd92l"; + doc = "1vav25plm639410p59bi7bsihsyys9yaddz0bcawxn72zi9b96r4"; + source = "059pqs3f821javya7brxvl9v2mifdyw1vg18hr1zgzhj7bmlxh14"; + }; + inter-68966 = { + run = "0f7s4mfj1phliv0dddkhsf4gpzi6xmyxhwv26bsvgvs8saf7qsha"; + doc = "1i12ppl2fmjv4nxvslqqrn4ygrvmf9aa1lf5wlsrwn238343nkps"; + }; + interactiveworkbook-15878 = { + run = "0dibc16gdam4yxil37y2zsz4cnfiq2grm6qqj512nng4zqnwcdj0"; + doc = "0nh4zm37xipvmv5h6yxy1ir2gkjy23h22j8dnz7m04w021sgx7i2"; + }; + interchar-36312 = { + run = "040zhi6rq7l8s04zcq2vfxricbvakkxnx0bzihbj1ss21pmyrv82"; + doc = "18lpyq26zc9b2ypcb98k578wyg2fp1fllsfyrp67b4v9lnz1m7q6"; + }; + interfaces-21474 = { + run = "1d2sg377lxrwv0w0zdhxdjsnb8sbkzadpp29h4jcm7v6qpirs1wj"; + doc = "00dmb0jq7vvf7xfppwmw1pps6453rv438qkpv5qhlamqlvx2b28h"; + source = "0s5gfwv1izv3y3z3lmfbxdw06830lzy85f7vza4i8zcdwf775pl3"; + }; + interpreter-27232 = { + run = "1an61a9gdja2h19m13i4024d4x4f741x4yxk983phl97nfadv900"; + doc = "1vgdgriiwv3lbdwp72pdc7yz5f702xxykqdp4ih1ssx1sl9pcw05"; + }; + interval-50265 = { + run = "04rj730lnkgj4xfm3mldyyf6bb6rr1f3dhms0rnaiq2pzv77cqyw"; + doc = "01ngbaw0lbh4dn8kk1vnv49isd7wk8gjh2qvzw6x9yk9nl46gzla"; + }; + intopdf-63987 = { + run = "0nfjwarkzi972vqn20wz5ava3hq87bpl2kvfig91ybz3chd1111c"; + doc = "1sjlbdrn9ajbkl18lqx8lmxdlb0dyh7cjvj0vizhnsjgpwp5f0dp"; + source = "1cz2y4x17smkjp6b7g6r3qg3whdgcj4cla315wfp2z9nzpgmy7fs"; + }; + intro-scientific-15878 = { + doc = "0bzgi3zg0lm6zwjnac90ihaqwcvhindfdphjijv7mh11ii0qxlmf"; + }; + inversepath-15878 = { + run = "08xivnvbyhaihb24w14b908927fr73kbk66x82nv9j332lpmfgmd"; + doc = "097fyhn6dj9d8hq26xads2s7vz7hvixwl27psqrqqvhdlq3bvj7n"; + source = "09d3dzckxrg9vdxh84nx3xzwj3rfarvf0bpda4qib179bgnqrf7d"; + }; + invoice-48359 = { + run = "0z2ixjxicphaya7244mi0gdnxnv3qawyxpa1kwv6s0r8li4604k0"; + doc = "0ki54z1rlb9xwvsgd2bxv2sb135cc6zh44kpww0mx76vcky4az1r"; + }; + invoice-class-49749 = { + run = "05vbh1iclf9gj6nzradfvnqa7yp7r5c3ccahg3j7qrdkkb0xj8ig"; + doc = "0myl8pvvfzd5jrlva1cxkps9g6jr0lpfw79wr3ghv2idz8ba85x0"; + }; + invoice2-67327 = { + run = "0646sb8da53x6aybbfijk35cibay4pnryq1xq2nzikdsf8i5x0x1"; + doc = "057a73iw33rpsgpxcg13jlpcfmcmsq68jdz0fa3dhz964nf2xkpz"; + source = "1z4lilb3h8gp64lgw7xbcnqfjf0lmzv760ggdjhmh5ibdc4ic58l"; + }; + iodhbwm-57773 = { + run = "1d18fjqgingshxvsawkz9idybfz5fdzcd41qxk5hpqms7zcjymi1"; + doc = "0iqw7insxma8pmj5v12zjgs72j60z99g7w5kfkb1h6biwlx33s5c"; + }; + ionumbers-33457 = { + run = "0pfs5064cya5i6h3bcypsm8fy1bas542kpy742gmbd4rdw8cbxgr"; + doc = "1sks9qdrl5kivcgn9mgrv3f2gfifmp3icc4wjha4n1va1fqcqcma"; + source = "1nimrr8b242h11nfxi9si1pg0wc6c0aaa0dl23hjjci89n8y89aq"; + }; + iopart-num-15878 = { + run = "1fx5sw6xzsamlrnm7nl965xrgmgffq85kkxr7ayka1w578p6f8jz"; + doc = "06hrw0c3arhssabm3l6fhb1kh8bg4vp5hpafqlbyz064a60m1p9y"; + }; + ipaex-61719 = { + run = "12rd8b6kbnn2hvsimmfirfq3nj436h2ckg5129qxnfnqfqr9pkl6"; + doc = "1g2z2ichh3wdjmn9jjd48jic1b2xw5sb8sksqv0hm043hk5makaw"; + }; + ipaex-type1-47700 = { + run = "094z08ygcklbk7nzklfmdz3lfmicrr40i0wzxmia93v1vpsjb4gh"; + doc = "0946rj1bh2hi0779ss6d003wi4xcb79i9p432jkry07xkr3fpy7d"; + }; + ipsum-68861 = { + run = "02df1xdzvxv5g83bw493kh01vqbq1nf2ls5f1z6j53f116k8k154"; + doc = "0dsq0h7hgm90lf5a2mmqgf9m002vng1cgfz6y21c85ld70ds0vpk"; + }; + iran-bibtex-69347 = { + run = "0b6janv0n9shyg7plykvb1dncxkfynrq6hzn6bgai2n1565c10dv"; + doc = "0pwf352y5yz01y21w2vgz2z3j1k9jkssmk88gf4mcji8hkj8xrkn"; + }; + is-bst-52623 = { + run = "1acvwcg568iv9lskld9hjnyvqvlsmgnbg2akrd59kmh8mmbkydk9"; + doc = "1hlprbjkamq1w3f1n2dzayy9v14kxj8f1nr6d3z99c7v7kg19m75"; + }; + iscram-45801 = { + run = "0h6pciksfrabg7wgxsgzciw22cp6gmz9cb3ifdsqb4n4qk9fga6m"; + doc = "1p0p4w7pkyc9xp5af1afmsibbbrylcfrdcbn16adscw8y6wmds05"; + }; + iso-15878 = { + run = "04ifwh4vn074cnibyafzq59zjlnlmdfyq03mqwk44r1mgmizizdi"; + doc = "1bnh34708psjpbhcddv87axjhxiyfjic0mamlpn3z58qcm0jb2pz"; + source = "0gaxih730r70xgy84vbqz1fqbdr1w9fg9d1hszp0kqvqaypfmcyg"; + }; + iso10303-15878 = { + run = "14wjjp2iwb7l8m01cinmpm3g9hk1rpjx4a0rc41y614ah5bmi4ry"; + doc = "12m0rri6l538iyphsh2abcvllckg566aj1487sa9jc4m56armvj7"; + source = "1nnfz5r5hk0rf1gvwrgp4m7jb5lln1cf9pnb46x9l9hyiagq5din"; + }; + isodate-16613 = { + run = "0xw8356im72iqi67nspwkhafrwl46gb3i41yapnj0hqb672gk4lj"; + doc = "06m8ic0nsiy5bsymzfhpia9i47kbpwqmnbrvmsp44mw5g2ccjk41"; + source = "14b1ymqd6qbcksnim642py5qs5n6g2sy207apkx9mnhhbqa15an8"; + }; + isodoc-59709 = { + run = "17fqpqlh12khnxyknah5dqc1xhbz2bk3m6jw8jwhpxxzb20njd4m"; + doc = "1x6k1rs9k27x9xsb9i5a9m1cpx3xfwiyf4iq8wxybvgr5pli7f63"; + source = "0wmwfqhrn2nsj5r9n0bvb2cl863777g7dsqf0ciyqq8l5lngx8wl"; + }; + isomath-27654 = { + run = "1bzw4l364z6avihhihiprbaslnn49v1rrllf5cj0cg35r3jppz3c"; + doc = "1d77wksfk5pidb24cjgak0mv1k09dqmszksrv4q997iwxkwckkna"; + }; + isonums-17362 = { + run = "0nqzapahfvqg59zxrgjiyywkh8zb8mz9gdc2733r78rxnz81m1ba"; + doc = "1axq0acxk6qhq42ayr0zjs3356ww3ryidvj2wii2c00isw0qip1w"; + }; + isopt-45509 = { + run = "03skmw4hmib197p3cfbhf3mbhq5hrjavwinwc22drqmca370v305"; + doc = "0jxwzfysw4qsfd1694grnzs2jfqcbhm40w1xlgcsrq2ylgcjhr8q"; + }; + isorot-15878 = { + run = "19x89d5fvjpn66y8ma1h24dwapw2x6a4nxbw4ixp7xqkycyhy0wg"; + doc = "0jrglpxxks1fbwgvmx0w3fjcnsfbf805jv95kawvgz1ix3mm71v3"; + source = "0rfc2jdd4f5yds516lr9m28izg3lbf6wwvpsh9hrl466dakgdayz"; + }; + isosafety-68801 = { + run = "01csapgs6danbh1lr2k1pbz2sbmnj5fwllvb17jnddsjnv6xs4nw"; + doc = "0li7197m1pqgv309fv6nii6sl4ppkcnxqnzgghrv1vkvb5ps4n41"; + source = "05sc88xg477z50rcvg4pjh2p4jnfi4zkjkyv1w6phk7jjqh0hvpx"; + }; + isotope-23711 = { + run = "066b5jw98ynyc15jigxc1idp79i89hwrq19rdizzx90s6xfnxlgn"; + doc = "00w5bxh4dkph9d4z0x8h6akcv1i2a3b5vfr4xbvq1n8k4i8ss7jb"; + source = "0x8vrmprpgpgbxp3n886yajdd9mv27r9shkyz9mp1bd4zakdgc8f"; + }; + isphysicalmath-69343 = { + run = "0550hx1ybxh8196q51zc1966jpdbrb0zprrzg4ss8x9yxkan13j9"; + doc = "039miqrgiymmsc561mnycda229l8r3g4cz629xkndv0rxz3civb5"; + source = "00l19fbwvpv0xrzjh0chqp73k6cvgj2bidalr3c1n1g21zai6c22"; + }; + issuulinks-25742 = { + run = "07rpm9kcfj3dxsax8kp5r5mvrgg1c5yrpbiirsk44ybjjkhhjscy"; + doc = "0qlz8y0sszp1jsnbbgaj9h2zcz1yqk827pwzccfi4wdj4rcpvvam"; + source = "051b05k40zs5amjxnqav6ibdvj64wfhcf16a2hlkaf5kpmpkmh54"; + }; + istgame-62946 = { + run = "0ym2l6nf8prgwg6sqfjlr6mmhv53q3aksfznvgy7ypiggg18rq5m"; + doc = "0ggkbzc4xnmx5h18af4h7zhzp1kcgfiqdl28qhrhhcm1d6vc1x2z"; + }; + itnumpar-15878 = { + run = "09cv6x74vs8m10fhk5ka6i1c6gzbs5qaqbk7i7mf2zsdg5w447r4"; + doc = "14273y8zl42gkqm915271n15pc6srsjvfbnc3jhp5xcjcqnq3yfk"; + source = "1wg714a0ipv9g81wgmjdrm4l4yar0z2nqxr5khiwihk9nrg26yc2"; + }; + iwona-19611 = { + run = "1gf8kmpmp2cjz5sg0lx8j0kr67a5xshjkghpiy70jnaz7k8fbrgb"; + doc = "1skk4p2pblh8h37rz2pjx18h8pgbagvr9w8h9d83299byvjggpi3"; + }; + iwonamath-68144 = { + run = "10nr9phqmjvbg9hg7fz11dap8ncnxx0pbpbz56pna5kj37znmh7a"; + doc = "0550vjbv8b0z4v0zwgkiw68fg02aj8nznfsf0qpf3isqyl9d94cy"; + source = "11f6m9969lcvp3cw2gbdv4gg4ggisb3c9p090v7nzzyadx4i2kcy"; + }; + jablantile-16364 = { + run = "07f298cfha42q2d12xihaqkga2iv1id2wa5ph8a61z6ckhchzz69"; + doc = "1lp90rbrji8nld0wzry2nn0m2zb2nrqnqyy85p9sh9rmrplhj8f5"; + }; + jacow-63060 = { + run = "1gqjsdzfspnpps2p5qmxbgrkc8bxihmag0w2xrvm26afmh376djf"; + doc = "0p6xpz5n961hyfzjf7crgciig5rl95wkylikmr6gb95bskdcybkg"; + }; + jadetex-69742 = { + run = "0gsmhql8p421dyyv1b021sv0hsnl2y4m8wj3vkcabhpiql76yfyf"; + doc = "18ljn0p607hm9655v6z6xs2apkai20l2mlxwyb2asqa72s6x79yb"; + source = "0vrqpjn64qlyszf7d2vwkbd1y2lj5lld6w9zz1jqz1f0arhq33lj"; + }; + jamtimes-20408 = { + run = "1sn588j6v6gxfgk31r861s7cpfk2ir7ip75hm31rxi8s8hv8s7s7"; + doc = "1n91f0b0bjwbkm1rq5w2vwy6wlaizlp7qb8pxm2wn08b5a825hvs"; + }; + japanese-mathformulas-64678 = { + run = "0x9k23g95j4wqf02ibj4zpfgxa3vlhgckax80lwm5flvr34bbgdv"; + doc = "1iy8q3906bl7j2ciw8l3162pjw067qkbkdadj9v727x3lg29aay2"; + }; + japanese-otf-68492 = { + run = "1zwjissgwzkjrmh82xixax57wf1ycz239yl9wmcsnn3wcz04jg89"; + doc = "1xzwpyzw3f13ij6xnhdhmxxafiwqmbjbyvv6c6cfbzdw5cpkvayy"; + source = "1cs0daf9dyx5z397lak5qmanwvkbh49nflfaq6ikiqhm22hg3w1r"; + }; + jbact-52717 = { + run = "0z0x6jrxaayp3w441r1zwlqirvv23g0b8h9xgy6r3ppi71glzqvp"; + }; + jeuxcartes-68266 = { + run = "1d7izhik03gs35xl4vran8adv5xr4vasc7nh55h9ya559v59xm2v"; + doc = "02jvs63xi0qhcdnrm1m93cjj29i0cp07hw52m3143iadvargpmv6"; + }; + jfmutil-60987 = { + run = "0ygrcnm9d0dkrcz5cx86j80rdqwi1j9zs28b1bjnfb4vkd5r0fs0"; + doc = "1vz9wav5ggsz9gkkyflywsnzjsw0p5paiw9wfx7x3ha2lgwv7agk"; + }; + jieeetran-65642 = { + run = "07b126wich0dkvc7f581566rpn17qbnzx02hfgbw1rjkqnq3svsd"; + doc = "0r8fsqx2nqi1jw9r30h6w3dqafl8mwhih9vxpibgfnp2lfy01a5m"; + }; + jigsaw-66009 = { + run = "0h5g4vrbwpbxbw9dwscw2bqg7sanh0a30bbhw48ff9ic94bs2407"; + doc = "0a36l6s7wp30h5xy64sj3gj716dc43mlbyy3px5wv7n973f5km51"; + }; + jkmath-47109 = { + run = "00nh8cf002lysvn6qiyy5mcs2n2z5ppr0x5vp1akbz0wwhkhw9h8"; + doc = "07n2xxfwk0krbiaphfkkfnc8mgc8iqmmmdiz0cj6s7688rlwij0h"; + }; + jknapltx-19440 = { + run = "1jw24izfsw3l8bn27qci3mblmhpkal9wcldhjll7h84fgjb9q396"; + doc = "0m3blfj4ninra6zn501x17q6b2qzckzcavgihgqmk9q51yibd5aw"; + }; + jlabels-24858 = { + run = "03fpym9q84g1b0pns6sdsb4jx78aq7sclr5fkm05ckvkk4v3wmsj"; + doc = "09qa8y6axg9pvma507b9w63dwd2jrxnmd64f5rfd7wpznamhbc0w"; + }; + jlreq-69932 = { + run = "1inm5smaynfsdqbcv8xiva8krsz7q37g832qmj93pqfpm1yjxw4y"; + doc = "0m4mf81dd38l6lxff46lxjizlif1lhs8pxr30r67f27drvyb5r89"; + source = "1hv7xsrkikimbcmd9qbhs963fbl3xi0syw6mr82mg1hnl72fkps8"; + }; + jlreq-deluxe-69971 = { + run = "0sshiy8iqhmsjp9srg24lkqpzyy49wglacy1qjg1czq7al27p8hp"; + doc = "0bp2yh9996dr289azjhyj16syjp3h1p47cb57qdgqmig0s4xiwyj"; + }; + jmb-52718 = { + run = "1a5nz825jppq3pl1263w2sbm0a48kmmndppfpp7vi69n5j2248dy"; + }; + jmlr-61957 = { + run = "1vliagbbyy5nzfs8pkl71gy0zvjzgqibrh7c480aampwf5qi1gq8"; + doc = "0mv7yxa1rn0qaz3qkzxh705ia27gqrjzpcqi5gpp340hvi8hm09g"; + source = "15p4dsbn25gpsm7avswx8vw3ljfvwmwbp91qlzm4cabsb54kbnhs"; + }; + jmn-45751 = { + run = "0iq5ky3llx50smw80lpylv11jmqc51m5yrhlslz3sakmgdqgg1yi"; + }; + jmsdelim-62630 = { + run = "1087jag55rnf02r9s5v7brfqhqncibq1xr0xjq680lvb62f65ln1"; + doc = "12k6m7i81d6sblgqijpizssnpkghq5snf6bq44lkxv1l39flzjrr"; + source = "06kp4zsdzi2m26h9m99x6kqc0lfic96cidzb63mvmdfqcf2plba9"; + }; + jneurosci-17346 = { + run = "0ywl1nlysc5fk7v5cdmy5g5hylz4ll20nnqxsvymsxnayjm4civ7"; + doc = "0a8almw0x4b7v3dsdi9cjv8vzg518fl90zyyxn24p614w3zr01sj"; + }; + jnuexam-70117 = { + run = "0w1jrrfbaa7wiffic6r2s6kr79zva1l9lkl5dyq9lmwsrkh1mn8j"; + doc = "0x33wpwxriiirmsqk0a6jd8lm73vybcz1wn3lg29bywpa5h7hgl2"; + }; + jobname-suffix-64797 = { + run = "095881x3s3hyj6kzhymnzp8xcw89c94qrz5654kzs9mqc2iy28ss"; + doc = "0ng9dzmx53p525c0kppl33i13xwdsamv0d6k1j8plfvjy86z3ay3"; + }; + joinbox-68003 = { + run = "0xbbbpw0yvm0hrll0yxcg46bd8gl77nb63lljk1pfak64b055clw"; + doc = "1mr5h8ydiv0rh3a9s61ksmbvq9kd3wjaa4zx2hbg501dwmyx42li"; + }; + josefin-64569 = { + run = "1f93l4f6gvsnnzr0f3gpvl9y9i034rhxcdz8c282bn5jdzg93j7r"; + doc = "04sva62hzfphzcmk4jhmp4yiahg7kzjcskviq31lhy83d3600aa2"; + }; + jourcl-65290 = { + run = "0skrm2rsr2y7q3mgzy8wcia8n0r2ixhdd222i0vc2figi9ynbd99"; + doc = "0x6jxx8ckf9rmg6qidypqjy7kpi0l30npb96py62imyx4cfypr8x"; + }; + jourrr-68556 = { + run = "1gbbnv6x903hibi2gw17armhvdg9kg884wip6a64nbvsr6g4rgn4"; + doc = "0385yzr1rrq5rv0rm6wz4ik7f9s8zkkfdhxq8yibnkil5k1psrfr"; + }; + jpneduenumerate-63893 = { + run = "0an70r9y0vklglyms7n2n40qz8jd2ig9m5i48xa81z615403bf90"; + doc = "1kb6g5hbsdi4qxcqd7ginmkg4q1flqjbi1v2d8ss6vjsamd360q4"; + }; + jpnedumathsymbols-63864 = { + run = "1x9jdzl2hljcm8ia7w6b2rb8zbb41y7vyi88rvlvy3y6i5v3wkcr"; + doc = "1i9f6llx61c9lcy1lidgmidn7k870pbl2m27yvdi40kcqs39zkbd"; + }; + jpsj-66115 = { + run = "0yv7lkv7sr7qhqv0rmyislf0a5rcd125kqwbnfj3696cwhm5aqf4"; + doc = "1bmms10hgyl4gs91i2kpds2mn9x41ks8fjrislj2zl8y3vqdkc81"; + }; + js-misc-16211 = { + run = "1b26v330702mbd9bviq6sr7pg0338hddzc84z55fsqjd85fp7zcz"; + doc = "0bs30a1m8cbv2824xhj6k3jiv6dmdp6jjzsinhfdwiizc2kzriwv"; + }; + jsclasses-66093 = { + run = "0g59rxplv04jkjzy4x62lldf62glsr9dwgr550cpw91ws2izcx16"; + doc = "0r3a8z11g2ngk97bd79610l6wnjy4rdgqv2prn3xcmqhrzg3xf00"; + source = "0x8laaf3rw2z1587qx6ghvcmga3gykvahrjma7x9m8mg6ljh3jpj"; + }; + jslectureplanner-70448 = { + run = "1wz5kd7q9735qc47ga89f47f4c2g5lf34pm05ck4y1yqlazzl11b"; + doc = "0gbd35lgbv4z4s64sxqnwfk09c1pf69qh1839lwn4j5nayd5aavs"; + }; + jumplines-37553 = { + run = "1d5w5nh0pkmhjjjq9x2n4r72ygjh2mrbdr23vsrh8cyvj3xym4w1"; + doc = "1q0mzjyfj8vfp42f8m11g6fyx60mb33g5n4i7pw9r0dfx8y4jvpd"; + }; + junicode-69355 = { + run = "1vxnwzvcikwrvx9wpvrvwn4k7jh3ndamri0y5a4wjc8m74l30f7h"; + doc = "14w0dcn43s9mdgpcz0vhwh2w56n90saljnvkg4wad7aq7pxvnbln"; + }; + junicodevf-69374 = { + run = "0cch871h5l90pfjfqw6x27dslwh60yg95y2g1hyi9q8y36cjrs73"; + doc = "14xl1837jbawj2lj16ym7yi4z8mp8zvzdz6rbkcyd1rbsfkbvfm3"; + }; + jupynotex-56715 = { + run = "0dir4hbh5sviw5spsh80cms12rppv3wfqp8cyg5fxkj65mr3akni"; + doc = "0xar0qf1czdpzbjn13x2hwrby18qh6s1909nv2q24rl3nrrpzpcc"; + }; + jura-15878 = { + run = "1mmdx5zjrsrvh90kkdgigddvb4ih3cflygv70al0jy0mpm6iwha5"; + doc = "0zy4rafc7lhdb4gig1y53fsmk6faa2zh3s7b1la7z7qdw7s2gyai"; + source = "036ac5chvg67hdj8g82nra7p5jickwq041jixbprf080i0mywvdp"; + }; + juraabbrev-15878 = { + run = "1rla1p46nb04flc2grrh1j0wvwk84cd2h1v767xzg2rdsinaxw68"; + doc = "1708lfrryhlj2d3in4gvhfl8c6yvhhgi0lb3yz63h0n7flsb4a6m"; + source = "0i5xhmx4j6ry4plcgdn8sc9vvbai9vzk9jr0mc54dhqaby2slyxa"; + }; + jurabib-15878 = { + run = "18s5jsi5wp0cac968ysqajwrway4sv1scf6m1g2l86jkp8gl6jm8"; + doc = "0klv7f8rbcw9qlqgpylyh64ir0zayf5ralpjd26g85w1pyi1c8m6"; + source = "07s3z6lxhkizgv0wrz0iiv1443dfyz29x9wssxa6y5lg72w279fj"; + }; + juramisc-15878 = { + run = "00dkagnyz7xrkn1kdzb7612qsdc00h2mkkhfv2xnw1fhrcsy11gf"; + doc = "02prrfg5vvy5d9y45hjx877438r8syymjj9q8465c3y3jn4ka9fc"; + }; + jurarsp-15878 = { + run = "0ylww99b12splqpkci2hps4zzi4myfy0agxzz4m3s8q74h4bqj32"; + doc = "08bvr93ax4p00lmjkhy09bfm403lmzhq729gjjw6skla4wbvkmci"; + source = "0fdxnj42qk4cywsxj8x40bfrkp0yqm7qh54jp3qf79gkj4hj6yp7"; + }; + jvlisting-24638 = { + run = "0ry7gnzgl2d6id7xgpbdhg8pj920105fd9qyx1a0riagp0pgyryb"; + doc = "16z6amx6czmipal3sbqmdsc1v5x1p4nyy5wxalicy1dki1f4zpyn"; + source = "13al33s01bw43sa2ffz5zlxgaqvhj8lrcz8y7x9xx43wvvxjmdz9"; + }; + jwjournal-69162 = { + run = "12lsm5r6a7gqpi48ddf5p3ifisq38j5xb6jsbfpj1zbwhx7820y1"; + doc = "0v9x97k1cw3xca3na737nbf6g37diqs10p084013ab5j83n8wgsg"; + }; + kalendarium-48744 = { + run = "11f8zkjfxbk5w4y49vy712ivfqx66m86jdddygfjskp47gxcxby2"; + doc = "0rbac32h90cnp318a0chj1wfzfrvz2y140siqv5slld90f7d5546"; + source = "0virfajl7xr8yiksxzmr68dm11m4240drg7xn72gxbs7jfh48wqy"; + }; + kanaparser-48052 = { + run = "1cwik91vx5bzq5jn8xjgr4ffz7n9d2qpx9v9xr298afmadg65h0x"; + doc = "0y7j8qp9j33hw80dypc10nr28x2zn174sq1rbbbr8gc7vsvz5pyw"; + }; + kanbun-62026 = { + run = "046zvhsmw56a30s01pr50bv1m3s4q1fnv8hbays3v56xbj8rk7ka"; + doc = "1qsz9krhmgav37k0386il90h91c0sxk1q2zvma272fnpbw5rbq75"; + }; + kantlipsum-68983 = { + run = "0aa0nz2a357fggcd44wkh1fkc6cwx6kqhm7aj4jhb8p4j2ch5mhx"; + doc = "04nlyjfmqrvm0q64hdrrx81jc0f17p3l25v22q6kgsm29nlgxi22"; + source = "0akpmgj54cipxl3yg4afq0bdws3m3100i1hm9nc4xrzipw8cdvx5"; + }; + karnaugh-21338 = { + run = "0a8bbdd8khib2bfk4n6527d5ggx31gva1fkqbfw2jwc5194rk360"; + doc = "0n9jqsfn3v78flgqc6ir3w0lymh1j2kl2pcjxq4wnhzgjy8blbq7"; + }; + karnaugh-map-61614 = { + run = "1q4xrsxjmzvfhivg2xycfpfsbcb51nq1cq255slpc06q4ycyxbnm"; + doc = "1mnwkmkf4lx3cd11rzgqq2rlfc42728zi6xj67x38wqqpi9ak15x"; + source = "0vphzrj1y5r6zmlqg4wxykqqww0ihgh6rw3z59c23f1v3j83jj4r"; + }; + karnaughmap-36989 = { + run = "01b0ndcd6vcg4y6v4zbi6cymfprv0s4vhh20hwlghh3wy5aknwvl"; + doc = "1xk80qqqpxagvwp1vfh9vgrqihakp7bkd89alb3j9bqaikgdiqdf"; + source = "11b5bjdccy4p3w65268c8im3c6bam9ql60mik8pifwfbn36bhpqd"; + }; + kastrup-15878 = { + run = "139ynj6jr5iniwg4ry57b61bpalchwmk2lvxpzi6rzhp42ifv1j1"; + doc = "1bzjky4plcl24fg5rwbjizixwfn7nkbzb6wwydxd7s2053zba07a"; + source = "1c4ijjifc4lwimzrhp7ym5804fz5afmccn4bnfayypmjqpc8x6jw"; + }; + kaytannollista-latexia-69876 = { + doc = "0w45gqrvbjfzqsx84flyf150zj8jw1wcd1zfhd361nzazqz7b0xw"; + }; + kblocks-57617 = { + run = "001mn33pf532iwp3d8likhbc5a4nsgq72dirbilbdgaxqxndmx12"; + doc = "14qyg0sqrr5b04j2ramw9zcfhbgmc9qfyy5im9la4id4b4zxrk25"; + }; + kdgdocs-24498 = { + run = "1p1rcb0lzcsmgyqz5750pl2r73fd18k76gry45zfsr7750kwx7x9"; + doc = "0b2j3mw8z0f3d4pffqw2r9zxpmyvykd36sskkhfg7wa4q521nf3d"; + source = "0sipsvbi9254zpg0bmcfin60szx9q0vnx07a9bdm9ma11qb1djpb"; + }; + kdpcover-65150 = { + run = "1a4w58r6krjg4aqpkg9r0pk7553nd6fqx22jqk37vd08scgh72ls"; + doc = "0lvzbr63skkx12d6nwci537zvqcpp563qlf29id2mki80gqsx29w"; + source = "0crbr3xrv0yfd64qjx72yz55py9h7by4rkl09l06sfwpn5ysdzgk"; + }; + kerkis-56271 = { + run = "0hcaw35viqpsbpy82knib5lbf3ngvmmkga96d48v5s1zd6m7fwdk"; + doc = "079i5x6liqgnkc3ii65ka44r9pfpf7k2gxhkbklsb3hm51zs06ld"; + }; + kerntest-15878 = { + run = "15695a4q6ikdy6f9149rblfc4fx25hmpyczgr1z1q8x4s5ar7dr4"; + doc = "1fmpngs3q7pwf4z284gg9b4cfw55afdsnzg6qpanlryk6czbch16"; + source = "0gwz65xgxii7vriw5sf1zi4r97prf2c3dwawr3ghhgchmblimf8l"; + }; + ketcindy-58661 = { + run = "0v3sz01qwd2pnnqbf4v8g0xwhs3zqxc9qihfa13df43rw644m65v"; + doc = "0ch1zjmg04pdz96dhyl2iy380hyjqcscxn0kafj94aldin20256w"; + }; + keycommand-18042 = { + run = "062i4fr9h2sc1zy3ybyqrq5hw4g3g54gx708rrznkl4zmpf93ppr"; + doc = "0ls9fbm0815aar19hg40p91n1iyyfhn68ndhvapmwfsxhi6f2d9j"; + source = "11blfbqdn1a00bfdv3nwd7501pd5qrkk7pqn2ffir1461xivz26f"; + }; + keyfloat-69399 = { + run = "0qwdi5gvv3fmhp2j9mwgbfrbr8awf6bj3fpajhrznfk8fy5zflnp"; + doc = "02cv38dpq0jh1iyp67ybd8kxq0aiy6sxkz2jg9jy7vs1ksjkx74q"; + source = "1dq8w5vsnl7kcv6q62ik2d0vy5bkbxaqn679ifbffgxiqihbpb3g"; + }; + keyindex-50828 = { + run = "0fsszjcw1r3kws565pgc5j7chifbkf3dh1hnlclwwsjpxbji4n6c"; + doc = "02n7lxz8pd49q9nf6pavhs01410zj9pbszqqbmk5c1ld077276x7"; + source = "0k3img6kb6v853wzmhsrrhx7lrh275ssx57b83vk3yx9m831qwmb"; + }; + keyparse-60277 = { + run = "1jfxrymww3qh4bwgc74dn6v5xwsqc29y835k4rpwglkb14ncibxd"; + doc = "1i1sklid586igkcbhx1mjljxpq2yl7sd8rqagygqgqsxjzg91jm7"; + source = "180fkwkm01cspp48a8msmws9bq1pif3i80yzjxs7md9k01hqzniv"; + }; + keyreader-28195 = { + run = "17cfxcn374q0pgf7bbqwc0yrk6r15d79h39hzbvf7yrgj4r3880y"; + doc = "0fp2hv3azi287gz129gqlsirw4dr1d5lqhzxliyzfy8dd9b2cqb7"; + }; + keystroke-17992 = { + run = "0h0ci8pslybspsnpmv73qml22592vp5lr50qqppyhw8qkng22gsg"; + doc = "1ig565mxjnji3ng8vsc2wa3jyp6mrhma4hnb3shwnrj9g2kvj84w"; + }; + keyval2e-23698 = { + run = "05ssgrl08d55in1wkam99bfdfkjhjrda6j96b6nmj61sp97yg3ig"; + doc = "02ajr27zgfjk5hwmqm05gdapkg3d3rk1k9k3nqm4nbvwhx5sahg5"; + }; + keyvaltable-65416 = { + run = "0r8y69sbis65hdalck66n5hxww7nk5z2psb5qzx13dx6qhnqknz8"; + doc = "1lhk840aj1sxj6pwybrpg9gd3lm9gs06q1dhz399my6cds1b9bk9"; + source = "1k749a0smf6wdcsb6cswm0adq98ylg7cq9yir410wkxyxdfwj413"; + }; + kfupm-math-exam-63977 = { + run = "0r5zqf6qxzbgyhg13xrr8qwqb5cjrik670fclh089qsz2kihqb6n"; + doc = "1lxab23k08wrnpgjc68lcn1r41c793cncxfd8mnqxml4lyylfcwc"; + source = "0c4fpj08y2ixf9c8kqzyl0j4hrjg9mrim4fg6y4s7mb4kcw0138a"; + }; + khatalmaqala-68280 = { + run = "10hkgjbi16d8y7wz3l4z0xzi112f124vzwq1g4kri7xlarcha0d4"; + doc = "1jfqkbmj6lvfg0a3dnznlldb9aslmj1g2cc2yni0ramz4kpf0jf0"; + }; + kinematikz-61392 = { + run = "12h8j42d7m2z1sms9gl3jj0qclvqnximmbj9fnmr270lk59xlc8y"; + doc = "13qa25hh33jqaxscc464j1xd778x36f4d2wvb6b318iq21s2qhh9"; + }; + kix-21606 = { + run = "0w5qaq50wki5b3s3j7p11akx7mb8z1khchhy6093pzzrny0hd5c0"; + doc = "1jblprmz9vfriqdmi9ihh3ihi7pc9wf9cp8qfli89iir2xy7lv3d"; + }; + kixfont-18488 = { + run = "02zwdm6zja38n41pvzay09f38cam28rr9ag6yy1m5kmw8421xp11"; + doc = "1dvv4hdgkzmdn7waq4djsgdd8p1cwq3j0bddgxq2y94pq64maq0q"; + }; + kluwer-54074 = { + run = "15av38sb3pzffxvrxlbwxzgvhnxhsjhkr3qwrlqswwq1sy4a2ssc"; + doc = "1cx0xya0s27mybl37gw3yx1rmcyvrxnrp8c4012gvmqiyqyx4sjx"; + source = "17w0ybfzs9x8yixzl8cfldqi42sq2jpkyap8i08mvp8krqgviz1n"; + }; + knitting-50782 = { + run = "10x5yxlrnj67gzd5kz7fvnz0nykvvi26sdm7i3n3d0si1vjzvczs"; + doc = "1zm6s0rd3zkir9vxvbc37big9ygnyhcqpr4p306vqavvmf5g7p57"; + }; + knittingpattern-17205 = { + run = "1ydq16bmviqkbf9zkrlxsh33bfn8nmyzbbi1xwfd7nsg1bhdf6d1"; + doc = "1x1bswn2sd1w19g1szc573zayk43zi3718a9yqfzqnxa0qxvxsqd"; + }; + knowledge-70609 = { + run = "1s4flnxixjw6z9w7sdhpfnpfj7lvzmjycnpzb2j3rxfafvzw8029"; + doc = "151gvwqzkl2yxdzx2b2mcvfwb7w13s9m3c2y5vv4yrfy7wfkx0py"; + source = "0r95p5vqxd6x9hbcflfq8d00kjvwk41r9harslzh9i3i5lfimalp"; + }; + knuth-errata-58682 = { + doc = "0rcyw7dqcwlnf9q421k017hrx5c0d9rra6rcr3n6wqmhxmdy5mn9"; + }; + knuth-hint-67373 = { + doc = "1fl3nyzsf9jifccw75grhdgyh5qhj4akkkyaa7mp6kpfznipqbmc"; + }; + knuth-lib-57963 = { + run = "0dl8z340n6m6xn7wari4hir0syxqi0kl2fhnf0bvnmkqhqwyzpca"; + }; + knuth-local-57963 = { + run = "02cf32f57fr6bngiv9xiw8bh4sq53p9br034ap74s80h3bgcmn1f"; + }; + knuth-pdf-67332 = { + doc = "0ig3ml88gqks5j9ly73qsx0kdii5m2i46f9d9bnh7nr9bjbpmd38"; + }; + koma-moderncvclassic-25025 = { + run = "0kgsbg4is158j1ssjwabicw38mh2cd4n1ggxinflb8i18xsmlgh0"; + doc = "0f070dxww75g36il70gmrx9bn0f0d3mmh26fmzqb5zmf93hyhcsf"; + }; + koma-script-69755 = { + run = "1r2li64g7fk7qg4gb215z2q86by2f2ah9hjlqf0wcv8985qshnif"; + }; + koma-script-examples-63833 = { + doc = "1s95a3vgjxrn34cpcinkyr1yw2rj8s2973np71yxrwzi9dqdjpn1"; + }; + koma-script-sfs-26137 = { + run = "14qhq2h6pfjy878nkglbif7yjc12g6q32kl4xfc7kk3kf9syp0kf"; + doc = "1cjraqcc13bcq451a36i5x2sbwj97zy4srrpaxybmlisvnza7vz9"; + }; + komacv-57721 = { + run = "06df0hx1rm87vgsb1g8b00ak77n6zs34c7mb76k22fis41qmm3a2"; + doc = "07sxwgrrik3vadlp9a4lk3jmcqnvfzz5ir8l33zi7sjrapr7mxxa"; + source = "0vd6ha60dz9ddmf3rkbbw5h602fkch3zifcjip9nyfs7wgnkg3r2"; + }; + komacv-rg-49064 = { + run = "0hcf3aw9r3hr01f9109rid9c1c36gmg9z0258zlqgq9l8qs0bryz"; + doc = "1g985pnkhlhyf1285w9g1zx86vldyg45r4dyp1dq02pka5nf33fs"; + source = "15v5y47jj0393vkikpv5mqdrrygs66b20gsmp03j6v6iih52w7fk"; + }; + korigamik-68204 = { + run = "0napq587a4j4z0fw0ddhal0h02aymjj92cbxmqrrw19j8k8g0b2f"; + doc = "1lxkyaqcan6jxbvi1zavbavlycp8amz6qmah258y87yl08m8c475"; + }; + kotex-oblivoir-70496 = { + run = "16fs5k3n326amyf1i1bnk6bai8m9nhg8n22ij3rbpa69q0639r0b"; + doc = "0nphzrlnya0mcqx878v8zmqaq0cw9ky2qi8ci37nx3rrzmxlv0qr"; + }; + kotex-plain-63689 = { + run = "0nri3fagwj6mgkcx97750khsyqf94dx5kxkf5ny0jiswnv192v0j"; + doc = "16376wpncchxpsl57g7rgzl96w9hl3qyn3i4qw901y00smr450hk"; + }; + kotex-utf-63690 = { + run = "0gpdg9c7dqcg0jfq05i5gkvycskipzyk4cmfrncd8mm7axv9qd23"; + doc = "0x0y67bn28fy32awnjyq2zy4gqnafyvbjkhs7hipghxf87p6snrz"; + }; + kotex-utils-38727 = { + run = "021hgi7iw47b3c637mk0g4v52h5ygx5w1060bpcknjlbg0qb09aw"; + doc = "0l7dby446xxjwk7vl1h3w4xsid4dqd8zdspj1f457jy4qwjaqf88"; + }; + kpathsea-69121 = { + run = "15dldviayvv84gmc25nwnpc99d7z28yarzzwcbrqm9w9w7v68v24"; + doc = "0gfnyniykcdvyn20fbwfvkx7i7lwf7kdn6117rkcjsw9qrspfc3q"; + }; + kpfonts-65583 = { + run = "0i8c7agc9zs1vzjq8w0ghkwk81hrc2qghzn7hs1wq3vdbc3wk4r5"; + doc = "1q8h8208z0k19nw7idq45hmzhvsrnf7g3708ch3kjwaj7r9y5lij"; + }; + kpfonts-otf-69636 = { + run = "017zn7m936190pyzqnpwjzp3miw53ksrncdj4ib2d8czxi15491a"; + doc = "1rmhcdb26i2nsbsj3r2v75ispg9w6hkfcnbvkg946d5wjy1x46jn"; + }; + ksfh_nat-24825 = { + run = "1qzn0n19lslf2qg8fvm844xx5k7s8a275a77z2ynbb0vs1w4prpw"; + }; + ksp-thesis-39080 = { + run = "0hcsni8p92pm3l7mi56jj7mlcv5rvdpzwbv1jv5f1hb6xyx2pn4i"; + doc = "01pbmmwwjzd5cq4xxmx3fknk8d4q3fda3680g344g5s6ra5i45nj"; + }; + ktv-texdata-27369 = { + run = "1md2iv0csmr5f2mcdlb3lacccwifd6iv7yp6123gra5xcp06k4y0"; + doc = "14sk7x2va8ja65a65fpksj2nd16v6rc1f0828gmm8j81d13cci6y"; + source = "1ws256l59plnhmw1rycfznwpndni5i47liqhazddwbg2hragfahh"; + }; + ku-template-45935 = { + run = "1f45rknbzb3d3h72vznfzspg7vx9im59w5s5lwv4z0b4sk7n1d18"; + doc = "04gpy6a0mpjhbl9h2rnflvhxsj5b7x7fwll8z211fl10cnvalcxv"; + }; + kurdishlipsum-47518 = { + run = "0b5x438l4m396pmd427zcnl7jyy5ag5c004gyn0n1zzwbz5lcnfk"; + doc = "0kw9664fm4gzv7cspj2psczyn7m09qz95agn4j953q39l0qyz6ls"; + }; + kurier-19612 = { + run = "0x9270xgsk28i5dxp29r0awf72l5p0786mbx7gb5d4vppkf0v9gx"; + doc = "1d3lfxixhcrkk94m7ljfcb90yvdwjbp2axjnpr2bbh32xv9zzsnk"; + }; + kvdefinekeys-53193 = { + run = "12nn74skhwiszbdhawqds31caz6d59a5pjmwar0r8lmk4f1jr3xh"; + doc = "0x3h28xqgsmngs51m666mvxb8jg9vwk0wyhijcw84v1szyd0m7d6"; + source = "13cb0xvqhz5w1hv6hamr7rh1q1cp6abqfsdqzd0xw0my9mxvwk97"; + }; + kvmap-67201 = { + run = "0ph45hs3x468lhrhsdwikqrw681y9zd3q0b5r088lrb8wsc5pd40"; + doc = "0n0ls3c5w662f95yam6q6rh9gv0vdyzf7rmnkd6dgz5gl1z99q1a"; + source = "0y6mcxixqyqmkk1iq0ys2i174ki4ygss62fx435lwm56xff7mvp3"; + }; + kvoptions-63622 = { + run = "19sj7pds5km2y284vhsvdddvchr2zcnzkki0h48ymd258afcvswk"; + doc = "0yym68kqbmhkw15rvmz6bc96h17yiabx3lip4lq2qjq254j7ql0w"; + source = "0ngbpkryyjf8l2gq0p750z96id32hl8gir9cxz7hybzk2vnpyxln"; + }; + kvsetkeys-64632 = { + run = "1gnc2b1fiapk6fjmgh1rfrwd04k6s30qgdfn2ppyf6fw440sx4b8"; + doc = "0qhncqjx310clasz23bx9mq8p3kdmpz5cicx84a3afh008qylgsj"; + source = "0l0g3v7n7sqfhpbf3289k9nh98cfz4w5xn0hbkr4i056yqj8dcmw"; + }; + l2picfaq-19601 = { + doc = "0mk8d082gcqlxw2x7d2w85sm6i51928pijybzbsh9fy2rfcv99xz"; + }; + l2tabu-63708 = { + doc = "1jl0n43bqbys0c9v0xb4sjql0gvk4r14ldzp2rbwzjsk8a39q8v8"; + }; + l2tabu-english-15878 = { + doc = "0dqmdr3lffhiaq7pg5pn6ia46miwq4nh5vimhd0qbf936amiv1mm"; + }; + l2tabu-french-31315 = { + doc = "0c6fbmgwv2adlxbhl1shvpa1w6xd36gmrwvkjgdp9xc3q999l4dj"; + }; + l2tabu-italian-25218 = { + doc = "0bgfmn5v80rdhs9wmjj6mki29p28ip1d29rmgbw4jh4z6gd4sf22"; + }; + l2tabu-spanish-15878 = { + doc = "1p83xflgv8x7nq9mylh468zn3hz5pv3zxprc63q51fwx0ylxfdbk"; + }; + l3backend-70027 = { + run = "0nbamj2m9ahk3y1j1a8p4n153fzczi82cw8i9kg45ki9gnmq91xp"; + doc = "19s2pdih2pn41hrq51g6dhsds25w4vpynjr3bb4gb1ay2gp7c0hd"; + source = "0cm1n5xqv2rlvr74fhnim8q70sfwqx8r930w3i8nrpaiivgnq38w"; + }; + l3build-69748 = { + run = "13sx0gjgdrnznd8h3gr3r28rmhvwgrmzpfl821p68sw91jphqdp9"; + doc = "0miw9dxmd9d6j1w267ibxsf8k954aq8qsbfmyay1434s36aydgql"; + source = "012grp1nkysm6i87y31zl2m0w01j85hb9c12059phjdrmmnp9x5x"; + }; + l3experimental-70027 = { + run = "1bh5xj7fxb89nizm2j1bb924p0ki7dsp3kx8h8wfzsdp1xr2b5k5"; + doc = "110vv5yflnh873rcm75fbz3cy3p2arq162665h0vm07any65xwsq"; + source = "183n75j6hk8kvj1xs0dy9br8ysvg457q1pxlhwvwjswykmf3arj5"; + }; + l3kernel-70027 = { + run = "1z4l5yvl59m3jpjgnpfn8vg7phpv49wy8mfy3z0jaq7la3c920ng"; + doc = "0mzhz15fpdn7li11fpvyjxqi16kp07f5slmj6anpf0qrzp910zq1"; + source = "1f02ay226bivygx4l01r8xz8ws2cn84fnlmgk2gf9l4irhd5dhg1"; + }; + l3packages-69992 = { + run = "045z2abw3333gcr4kxdg65s3fg4dyazc3spfhwbgsif8kzgzcl40"; + doc = "11nkrl9iafxlwz9jriq16z75rwbhpyd69gmx5j8b79vc5vy0w6pm"; + source = "0xirdyjf3cl30mr4kizxd9sl80cdfjrqww420hc4c5qaamcdq7dg"; + }; + labbook-15878 = { + run = "1qh16jjmpyqdfndfs91nmbfhwxif5ygk35zlsailngpgnp1r2x7s"; + doc = "0za4mp2zq9s1z90sgqcvf6zac7w0wqbf8y5w1qrwmlv6r6kg3s1s"; + source = "0w7nff8c2ffrn2ywz1dahd8n4cb959b6zf3ka0s913nv04ifdkgi"; + }; + labels-15878 = { + run = "1d1lxzif4f3qxkall0qzsn4lh55ljr45zba0xwzyvfbwighp1vvm"; + doc = "0fl3as2lwdga814fdlg2pwyw600cvrii9hd0f4vscfzq7lmw01k9"; + source = "0y6mkg18jqsbqj14h52317d1vvzvn3mv89q2gl4i3i89ka3dfajh"; + }; + labels4easylist-51124 = { + run = "10pfzxw0d856ki2krsdpidnfsk27mg4k0vj3jx7pry5cfirx6m0m"; + doc = "145n7vy3d0vk3cq3qd44l3a6hjmazipm7wmr4aa2knxvs4nyvw2l"; + }; + labelschanged-69400 = { + run = "1fhmxc85w0jgcvbf3kbn6hpkyfl70q6kx7d06laxzafizga069pr"; + doc = "1fbkiz4rqch0sa7xpw0i3x9dwm7vpvfyax9jvp520xh66sn46wh5"; + source = "0ppwzy9p9zh0hyzh9kgvjav9h7pk3c7dp44aqj87vaq33bwkss38"; + }; + labyrinth-33454 = { + run = "1r5za0nrvcpmx7bbnvvxf4l78pv4ciq83ck9k9qh32pawv5jn8sp"; + doc = "14405x5dcm2k4m74jjhwd3f1836d79qz3w9m1zfj3gnvzx2kij9w"; + }; + lacheck-66186 = { + doc = "1hhx65yd800bl3y2sq20lix60wd2b2j3k7n9s788mlsn8b0p7yq3"; + }; + ladder-44394 = { + run = "0a2sxy3rvc4w4a625wa000g4mjm00d8fpjff49v08kw1ddadv6fh"; + doc = "16dg0nz4k3491mj7ccvw32r71vyjz2hdgdh4xgs7p3n9jg4jdp95"; + }; + lambda-45756 = { + run = "1ajx5g5cd5s9jqr4b196689k7zmlxmhhksly88qps31s7lzaprvn"; + }; + lambda-lists-31402 = { + run = "17srvv0v10mczvvmxr6sfhlr8zks589c86v472g4rnmf4bl4my88"; + doc = "1yq4kn0nfcgy0qh33qakv7c12lcdzbj4x9xj357yn8c0ijqkx789"; + }; + lambdax-60278 = { + run = "0sr5im1ag7lzz0rkvnj0biik9z5ww6yr03ykn2w64dg1nf42chf4"; + doc = "07fgh2x639fj8wb21rygj7yc0c7bcq4sm1bhdrsxzgrwjxn9rbw0"; + source = "0sarj3dsqm18zx176p6hq3xv717fzdpvipvdlv8l5y5pcvasz73x"; + }; + langcode-27764 = { + run = "1hj7zyjxh64fax5rv32558sp2ss986fxx0fqd5xb9c07s189cs3d"; + doc = "06bygnvh4sdv7mp17c94wx9v1lj4zgih1db6mknc3wiifi5jcx8m"; + source = "1bi25gqx2yi8f6g8hpnqp9f52qnfpyafi0r16scap8w0sbnwrib1"; + }; + langnames-69101 = { + run = "1rg0hn4addzi72qgrx303skf35c03lslrlf8ry790kwr27i7lna4"; + doc = "0ix2gk1gzvsk1w0r1whr2imdml3a6f9avw6yfkf54n5hnaxm7i6n"; + source = "002rmwkvm5b4ay1cbxc51ibcb27sg571l2r5czfilbavh0000piz"; + }; + langsci-70028 = { + run = "1va10za9qfhdmb9c652rh2n3qyp1v6pyjc8aia7hndik3j3p22f5"; + doc = "1imd2wlkd8k4wfjangq43mvr4m3xj295vrwmqjya4p0jhilh13ya"; + }; + langsci-avm-66016 = { + run = "0xnprm5fcy8knxhldl54c5vhir4klgsmmy8l9306hmlykmphwifx"; + doc = "1s5bjwhdz1fwnkvnrx7f4789cy0f2l0qkixdd6va6zjvylihzl4l"; + source = "0ifsjndp9lf06anqcl79kp7rhx9gc56yw5xsr4lb4fshzzg6jwnr"; + }; + lapdf-23806 = { + run = "1lfmn6axzbfk03j6f12yqa0vy3gzvw1ylpq7k2ki4prb3zwhx9sx"; + doc = "0h9wy3amir9wdqv0b8678mfmcd172zll9p5v7sf1l0w3zlbw5msy"; + }; + lastbib-70377 = { + run = "0ml8h5s22lp4bbf9prjjdgrvsahwaksv1kpnln696gj1g3hqh63q"; + doc = "125h4563c5rny3rbizb6imdp1r8mc1203jkdzzw0p9113lmwliq6"; + }; + lastpackage-34481 = { + run = "0wjpjd3b48fj4mqqdx38sqalbaa9ab3c6rywyjqhvrd1pxfap2g0"; + doc = "1123lz0ki4kww93952wqrhrw9l2cnk4wrrwyi0dxc5w1yfn2gg87"; + source = "176fk84mbb6w5ql94381kz05lh8q8im7ri6rfjff7f4ymfjnh2jk"; + }; + lastpage-68557 = { + run = "0xds81j9i3dqbsfw9084f0cqmscyapcndd6ssk0njgj2isjxb43s"; + doc = "1agaxsy82b8nq5kn6kpjc4g59xzvalxpim6rqzl8j13ywvxv6vhr"; + source = "17zk90069n9nc2j4jhqwzkm9kfhvp7wlq7akvwsny9fk9vrgp62v"; + }; + latex-69443 = { + run = "0l26rd0xasdx0lyzzkigpzv9i786fk2xysa1y9jv3k62lv7g7xy0"; + doc = "1hylcd91igvaf4h9z9djlmfy87r8mkgs75slh3clay0fhhyjdmyx"; + source = "1jb6is6qh5q3pd0shizizn0czk48ggrw7n27ddpakxcmi1s73aa4"; + }; + latex-amsmath-dev-68730 = { + run = "173gm8vkn4dgwys9h7yq3zv0pcazxvgrj40ax8msmmffq2r8cgzc"; + doc = "1ch147w7ak3al37ivkq46capg7zpc5c10inwkcmqxhk1bqa0cgis"; + source = "1ffzh866cdx9r8b5z8vyiccxvramahskv7an1jpi6flg0b9vv4i9"; + }; + latex-base-dev-69872 = { + run = "1sflchwpbx8g410b4jpb5i8x7ca0x5kgsa9h910ljfaivwwxs82y"; + doc = "1l0sam4iqndyycsbim6lii8cj9mx465vk4f0jc698c5lrb9y57vi"; + source = "1h579yskldcwyxp0r4xdh8k3s99qhy141gblrw1lracfyj8f44rm"; + }; + latex-bin-66186 = { + doc = "1mhdc8a37b9j64kc8c8171s8p7ixklbf1ijr4vfh7af2k416qf8d"; + }; + latex-bin-dev-66186 = { + doc = "0dwjlwaf8pxfjgby6dwr8ijnhm85rvprapm8m85avq7mnfmrp4kr"; + }; + latex-brochure-40612 = { + doc = "0xba20sy8q10ac9hxwnz9axh853hrj06vp7mfn12ajax31miznmy"; + }; + latex-context-ppchtex-66687 = { + run = "0ai8w4r3lagkgval65hxnb8fqg8lq0j5kailyb4dzv2fjs9x0sl1"; + doc = "1wbgxydjicb10mnzjixnz1hhqy4xzxv6k92wf7fb2w486mh89k5s"; + }; + latex-course-68681 = { + doc = "00s521wrc5gqqs5jvd1ljl04nighy8q79r0ama783ic27a3k0qhi"; + }; + latex-doc-ptr-57311 = { + doc = "0mamlfnxzi4lwh5cpss8zcfr64jdnf6vnj9fp48accrqdj2rpfs2"; + }; + latex-firstaid-dev-68730 = { + run = "04rcdqd7461r54qhn3v13517clirbim4lnghli6yn31zzyf83zif"; + doc = "0m4jx0qiscxszpk3c6i4r7pcr9x8xdq30q1ixj4b3l2jn88mvhlx"; + source = "0m7xdjy67arisi0l2wgjvc9i89g2xdp5gk5cjqshb8hwxjw21mg0"; + }; + latex-fonts-28888 = { + run = "0dh4kgy4mfarlsrgqw4dm5zgfhcfg9qzh8s2wjk6w2g0jfc8rf3v"; + doc = "0243qbrs2w7qh17nh8m4ivj35gfgxsnqxza281cvhh7g2fv47f5l"; + }; + latex-for-undergraduates-70210 = { + doc = "03s686vbzpjv71vlp5931vxyx8lckvl5819agh4688h9m98w54s9"; + }; + latex-git-log-54010 = { + run = "015f1jrfnwr7i7jn6g0cfl3zs73xw30h14fr2pyjhn9pr8kd3mgi"; + doc = "0pj2834ax404f0nnlfbg75f2h80wvnz23s8nr9vxr24vr745xpf6"; + }; + latex-graphics-companion-29235 = { + doc = "01zs32gck1sl9zlbhghyjmjwxyvw0jha5vl2hd10knyrb3z4dhxc"; + }; + latex-graphics-dev-68730 = { + run = "0gh26h6lpv14ywhpcbw9zkzn00jqrxbfwsq61cpvb6in1f7q95bh"; + doc = "1cyx9l48nc60qdaqny9mi076cch9cc4f3qpnp9hxr1rm7x712vp2"; + source = "0ng5gd50c7rg7pv09ry62j8plpn4vigc0rjy0xg4bzfyqhpax86d"; + }; + latex-lab-68720 = { + run = "0hdzvh1affhjy4r80x53gbhi1pqsjikvyxrr985pl1slzfrlhjbg"; + doc = "1aqwxllsrwijw6rc98cplkxw46s61dj8gz2q07djjmx137irvkcm"; + source = "0zj723bpg0ik95sjm97kmvjp3ygsf29lshpzgljyqnzz6z8ppb0l"; + }; + latex-lab-dev-69872 = { + run = "0pqamivil6qcl3sxp7zr4h2m4sdk92mwri5jvz5ab0l8w89i6xjl"; + doc = "0vrfpsm359zfmqini6s4m9cj97d30xl5vnj63nkzxk6nz3pzgk9s"; + source = "11fdf8f71mdwx1lrj8j5vj2ha4xjmi8mpw0aa2ii0rad5iwr8wyr"; + }; + latex-make-60874 = { + run = "1dgw31znxh3ch6xyg7y0ngnkjmpny7fbq9nhapd3am4l6qb0598j"; + doc = "0jmms953klgv8z4k5d8rj2l5barwxx02pmzk6ihpp1wdggfjxrfy"; + source = "0a5jqry52x11iga5ky89b57l1ww0hbl8z0mkkv6nvvc7bg5gg6w4"; + }; + latex-mr-55475 = { + doc = "1zd948d9y63js7980g2bvxpf67hshh2xa3n2ihbzwhpw6l9cbh1w"; + }; + latex-notes-zh-cn-15878 = { + doc = "0w9rmd7b5fnfvix653n9vbnn1k8yxlaaak79ipvm8p53dx75xfxd"; + }; + latex-papersize-53131 = { + run = "0axx2lkwi1xq3qdaazhb6i7dssx8q2k0nm5vf4b9p5ldl1ky0dzl"; + doc = "1dkra9b0wv8s4f7xn36j1x1p849ziwlm4chf5mrayp0wmx8qshc0"; + }; + latex-refsheet-45076 = { + doc = "169h1syday30qiw032k14fhxikdwszggvqz8b9ga4i9wwxf1vh4m"; + }; + latex-tools-dev-69872 = { + run = "14jwblfzdf6wp3gncild8qxw6nfdx5a44nb7ngbwnkxr43kq2cx4"; + doc = "05gwzix6l3mgwm9qwjkk8slrjbvnbzpllv75kxbnrf768jjy35px"; + source = "0s2bh7shlafm3fq608gggfxm9ma48bkcq6kamqfii7iizw3wsyb2"; + }; + latex-uni8-49729 = { + run = "1sv4n2v0m3lck7x320cwbay23k7r9fh4wm1vxg9m4grphc72n2b0"; + doc = "1y3p08mni1ng6dyp0g98in7hh3mbzqq42249idy90vjhc177rjc1"; + }; + latex-veryshortguide-55228 = { + doc = "17i8zmr7mjfrx911psdy9cbn05c5inn4ixqmnjkpr9sbgsninyc4"; + }; + latex-via-exemplos-68627 = { + doc = "11nhv72ixwr0g19nr7dir5awgdapxq0l295hm1pcggr62wqh67l1"; + }; + latex-web-companion-29349 = { + doc = "0v018lwf88z3qmzyqpyvfql7dbwk5a9r0wj3jfjc9cp2ksl8zf8f"; + }; + latex2e-help-texinfo-65552 = { + doc = "0rk69n89hl67qfbi5mmb4msaibychsk9a83dx593170ayiir6s6g"; + }; + latex2e-help-texinfo-fr-64228 = { + doc = "13s0zjwk3m95kbx4qrz2xwp8kifzc2zmasp1ks9l2acf1nqfac9p"; + }; + latex2e-help-texinfo-spanish-65614 = { + doc = "1v3wa99phdmsiajbq0ad4h939cpwjwzpq88h6s0796h5fr34hrvq"; + }; + latex2man-64477 = { + run = "04m5ccx6z8nvp6z8dm7dqhqyf8h9snmaz4cvd8i8fcwfba9znf9c"; + doc = "11nl9ldkw3f90iz8r23jbgxaa6yq5p61f1db344nfhy0wimx15si"; + }; + latex2nemeth-65269 = { + run = "16fd74x6bz4zfj2zlvbfw160684ff1fn1rkpx4y34avkp0ivs9bq"; + doc = "0f50qxbwcas2gpazlq0ja4m6lcbwkkwlp19qb2v1lflfgian39c6"; + }; + latex2pydata-68919 = { + run = "1zn2qmivr0daldqnrrkh8jcb0gncg3cnikkrrn609jp5sb1xd1hp"; + doc = "04rp8hycz6r4gl1llvxq5z4ks9iy4j47wxg6lkx39hdphh2q561v"; + source = "19nsm6sn099cm2g8bvks0d14fdqfvs43cmphgl48rhzgaxb6l408"; + }; + latex4musicians-49759 = { + doc = "1zvy2pa93kyn056d5n0irzdq5xmzki6d35zxacxfy19r0g9rwq6f"; + }; + latex4wp-68096 = { + doc = "1a569y6vss3glz1il4hg2f6718mj24spp4ahdj6v7k6y7ppa1zii"; + }; + latex4wp-it-36000 = { + doc = "14r86fwhb9zafmyv05pqfi9962dpxj7wq94acm43gv8m2rsjp52k"; + }; + latexbangla-55475 = { + run = "0jh2x97r6j8lrl5kq5m4bvk139229fwf7r8g8xq7n0qywnfdr9zh"; + doc = "0hgcqd8vqq67zzdn7mq4bps3q56ad3nmaq71mkcyricgrkn5xxmb"; + }; + latexbug-63596 = { + run = "1rv43swr1nqnf50y7rxbqw2w6402rlksddk5prcl7618vs4yiag0"; + doc = "1sdmjzl81f0hkmj9k0m57fiw7529ym3430k5sd1q6sbz096wwdph"; + source = "0a9012p4c07g15ysgf2hfqzcll6h5riajylxga326p65k2zv062m"; + }; + latexcheat-15878 = { + doc = "1383rsi21ma0291asi779bjr33m7fii019di8gv8kxwgci692fz0"; + }; + latexcheat-de-35702 = { + doc = "1cpqcvqkkyb2bf87yjvc2migxawnacx5mva8dapma7hmwx0z7rhm"; + }; + latexcheat-esmx-36866 = { + doc = "1d6nk9p9adlhgr28mnnizrxzzqlk20zw2clcddqlaa8pn73dqhcm"; + }; + latexcheat-ptbr-15878 = { + doc = "0m636j9gdfpm4j1b679z5qw5ygbm6jp8xl9dzy6v5zzy695fcgaf"; + }; + latexcolors-49888 = { + run = "1wpa7vw8vphdghdv1ap5ilcgzj5n6vyvn4a6lfvswg2d47s5y1a9"; + doc = "10bbk7bs1km97hpzqzzfasxzp0w202y8w7pwyd465ygr4y19wj6l"; + source = "1j7vfvyj2k4q9drmkmh3mfk1g3vs7czn1x16fx9jyinbdxnwblnh"; + }; + latexconfig-68923 = { + run = "1lq89ycfsv3bl6kb1lq4s4808pvld02qmjmyz3npaqkwjrxhyy3g"; + }; + latexcourse-rug-39026 = { + doc = "027siznmshk60flxgra7dgzvwbmgwvckwb6r257b91x3rm77anv5"; + }; + latexdemo-67201 = { + run = "1w95ji58dylfa3j2crcxswx058brjx31x6n76wlj9hjv5dkarqj8"; + doc = "1jsszarq2lydblwkwgachhhr2fqmabw870w3msgrllyardp7ycrw"; + source = "0vi6b642k5qjnwa3igll67w0h4r3p7bxxjlajfiqwp06pxzjl7in"; + }; + latexdiff-64980 = { + run = "1z0x59j9g2cmbfwfmc87fpbjy4hp827ic7y9z8q3j7kfh2s3j8dp"; + doc = "1r461j9m6rs38kim7isvi66z176fv1nnd1q8p1zza9b1j1qhfr97"; + }; + latexfileinfo-pkgs-26760 = { + run = "0lf6pkxjqdilg10i3fwmlb1nvvag6c5bm6pbcd50jjbd1q39iih0"; + doc = "0qh84r86pszscg96gri652y6p5xx245lfzvx50qvzw77xn4iv6ra"; + source = "1x1sj91sd5bb0jihvp0qg52q8ybak4flvijj5hdq84jf0bw3gryi"; + }; + latexfileversion-29349 = { + run = "1yy159skv29hp0qxpghmq5zmay9yi0ndkgz7lbllj1ymkgxs5138"; + doc = "0k20c2kw0xarjlkdhjyx9h9kvjm2f3rd98lz097xj8xvk0fs0zp6"; + }; + latexgit-54811 = { + run = "1kg9cbz6h70496snqqa2h9xfknm70qf96xyvnc829k5v34jskmi1"; + doc = "09rlc9nprx6590snfg7gakycsam37wmmscybvm48vdn271vvla9l"; + source = "1pn4gv4prwsnnr377xg2x3kf3kmi8pxgczbi9knzavkd53653akx"; + }; + latexindent-69472 = { + run = "0s5idc6p7agbmhm3qq86lb4p357vacp4js6fbqszyfwd1wqp86sf"; + doc = "0y102g945jyr2cg145wkpmz68m62cjdpv8r7356lr2pvmp4pbqky"; + }; + latexmk-69657 = { + run = "0dcbl9bay800kvbp3jl88d6y6w0cxlqrvx0y8qq8dqznd082dh3d"; + doc = "1aljwadz6jhi42axj5ma467pihz5xdp1w3s86r2wdqc1n8l0rm6x"; + }; + latexmp-55643 = { + run = "03rgabck8mcxnbg1avl638nhxdk6smvyd21v2ns61hx3jn09cpv5"; + doc = "1ad9axqv8h2s2xckrdxcnl8kazpgijrgpxmbwsb3h0hqb3liznsg"; + }; + latexpand-66226 = { + run = "1ky0z3k9lwd2815kn3hxpdhcc92spp4wadc5s4hhjdjah50b6zpk"; + doc = "1za2s4qvkfpqg2s86z33y85lw4vbi5ll52if58dndbg47mf26939"; + }; + latino-sine-flexione-69568 = { + run = "1k8inj0rl7mhsjyzc39w789jlafqshh9sgy99szxqbs0jilgfb78"; + doc = "1wccb0ksrrysqjp68l3wnf6l4n3s64ny3cvxiqgalrf0mlfipxmi"; + }; + lato-54512 = { + run = "1w70dgmvcwm9jff2ap7s78qgqs9ip4a6dx5wz8iyd7hn2mwf1v80"; + doc = "1fj4n1y16x7hxyd63myk902iwm6lr074rkdybv03qwxl12p9ykxs"; + }; + layaureo-19087 = { + run = "0ggab1drpspvqwkijlj2d7k1iwacd8bihgrj9qvrmsvdlswdjsd1"; + doc = "0vxa87pk0fq67zlnbzbpnig221isp1fy6qp30fphk7igvnjw8v70"; + source = "0mdibdz7hawfmc6bzvk3qfhs22pnmsnvkvvag31p3b4n25zshmry"; + }; + layouts-42428 = { + run = "1ab9azs06k1p0s3n5zjhrykpqac9fi3kr3w31xmh698zpsg3jq4c"; + doc = "0ydpj4mbjyg6qy2wmj90rqfpkcq30pws5d11kdr1gcwbzqqkgbbh"; + source = "10mfwi1wv5v0qdwqj1mh5q8izgavlhclnz2aj8h02ijy4kzgfg5w"; + }; + lazylist-17691 = { + run = "06p4r8q0a0m7pmbbcddxn5xc22f9zhvl2a9q0iv7ibkvgyy6pqja"; + doc = "04x6ai73z7cqs7k9vgicxfcnvslr5812dlzqrspafy8w8qfx37jy"; + }; + lccaps-46432 = { + run = "1iy7ijsfpxcfr3d824j66ahcvmc3p21nl0k94x8bhfrq98qzxmrp"; + doc = "168yq8y5c31d9h31x081wh7aifsq0bs66cvk464wciy91sxyf34y"; + source = "0q3jn7h2b1dhdshdj3gxwwdg3gfrz6n5c5sflacgpzc16pn9gbca"; + }; + lcd-16549 = { + run = "1r911gvxiwwh7vvjhgi034j3x49n2dxxvf38zsldmqaj4sccfky9"; + doc = "08id9jhafkmhypjy72d79v2yr2jgm6pjf4yhaw5279a4063a4f1r"; + source = "0vkgnhkc1774d3g7r6sv7km81dvdrbvzdlk7jca6q40nnqw4zbw6"; + }; + lcdftypetools-52851 = { + doc = "0yjbc6rsf8c62qa1lyi9kjyjy2p0xlps19llnvly3xyhla08j76f"; + }; + lcg-31474 = { + run = "1zgpbj9zim5dcc5c2lf6hy33hzzk8cmirqh8kv60bsvha4hwvzi6"; + doc = "0fnpj3mdxd0v1lrkp2ywb184bay0j6vc5m50jlnipjfjhry68n15"; + source = "1al9wmw475g30jw8lwx709r0p4lq6p2p9n1ky69ncyy42zp79ld7"; + }; + lcyw-15878 = { + run = "1c0js52z8mgfbr3lgbvnhc646ggvsvgr7w1mq83lyx0pvnlqm3aq"; + doc = "02h21pl11ax04q5psazgxpm6xpb8lljm4b08bbmivpwbm0z1namn"; + source = "0zf06l74fzlici5dzm3ggvz3h66dx3yjxmb7qz8xlsk5fppyhcb4"; + }; + leading-15878 = { + run = "1ky6c51dcx0gsj8f6zrwb242d940cjml0gb258ags5xi5iaq40yk"; + doc = "1l31zpglr1bz0gif3w7kqzhd37zpcgjig2ly84fcyk805sf7nncd"; + source = "0f4ayaz2m0y87ifddl4622rpf858zmh13xafp53nh96b8pyvcip0"; + }; + leadsheets-61504 = { + run = "07w8h1wv322dy0b69d13b9k59m6iid53rlpn20ps5ss2j20b62z3"; + doc = "17xbqxhmxc39gxd5ckvzsmhiabsi2afh2r2jv91im8inqfqi8j1l"; + }; + leaflet-56878 = { + run = "04fvi31wwpsnkpsni3r6f9m3vr8b6h71f2znb79aban9g1qvnyh6"; + doc = "0f82hm37i7w547jpmxkl8a2k4f92bw29vdzq4ywwllk2hdcq3sv6"; + source = "0igkl1rjl14raf3xv631c7sn0mc1smyc44mldwgzgnzxxkv5kzzf"; + }; + lebhart-70050 = { + run = "0y9lrkscmfjsg3rbcwbfvzj3g40nyb6a297myyzmm2n0lpq11j6b"; + doc = "0nypg814pxlcpkd0y3vdhjk6vpj4j1ka08kkkk00nmdyyy714f3q"; + }; + lecturer-23916 = { + run = "0alcmds4ds3m0rpq6r46ff56x78kv0nbdnfn80s9q638pf1vvnvb"; + doc = "0ksqm6ibcakjf2dir19hr066gg2dxa5blfiikr1j8x966lfdjb09"; + }; + lectures-53642 = { + run = "0qdhkf7z1rnxm2ql0ywfk11y3aqp8yr1p9202d4ha6729n5pyima"; + doc = "1xakcm4mmhl4ahnvcpn7k748v4j2m8p6d4p455claqhf7xg4jz15"; + }; + lectureslides-62292 = { + run = "1x61bpgp5ddgld0v05qb5sg2lwb7lzqn6r65imshvcjz1xbwpvdb"; + doc = "1awy6zgj393q0lm195hh8ky51fczm5s19d46fc7mivxyh03w3wk6"; + }; + ledmac-41811 = { + run = "0ipf7h58bylrfwg8yzarqvpkl0kr4k3z9hl6cjzxwlh16s5fs76i"; + doc = "0pgkv08nsq0rmcpck9vq1hfb4gnfqh274hclq4grk182fpn4ggiv"; + source = "07fl3lypnxz7sa4kjf3xllwqakhrwgx8z8r7l6x8id96n48zri9n"; + }; + leftidx-15878 = { + run = "05fi4rp3s0s9ank7pphdwxnlnanc2r88dxhyxbz64fb26sja25gy"; + doc = "047a5clwf0r43r1j87k2zfv0pa3nrii213y0zhv5r3zkmwvm1qky"; + source = "0a8rzkycppx8qayqw3s7ndzz2xp4zqgx3qd8dp9s5ynlm10020nv"; + }; + leftindex-69660 = { + run = "1hc88b88fs7247n9q36idpdsh1jb39d92sp5qr2dky27fgvnz2mr"; + doc = "13lfzvsai75nyb1xykvd8bd0q7dpwb5na4afb7bikqw6iz3dyhwa"; + }; + leipzig-52450 = { + run = "0wml5k749fgx3vq10v4vc970h6nqm6qflg2z4jajph1h38kj2ryf"; + doc = "0znm18pkrf592jfgshmr0d7vk4d4yq4wvj9hqsfg9nrjd4l6a66x"; + source = "1sxqsgahdr0srk52iqdacsqn7sc73iv0n70nsnpvgfsczmxa2djj"; + }; + lengthconvert-55064 = { + run = "0zjyynjlq48sywr5gyi6nhryrp8hcl41q1djjp73ingi2h2svz47"; + doc = "1id32l1ipcilhkk4w9w2q8rfjlk99f5jphvq1hjvqdnhz4q1rk69"; + source = "1zy9bnibswz834k24fk5srl0ahx4i4hlrqv6vnvwb3h8z71izc3b"; + }; + letgut-70496 = { + run = "1xf5ac4vmmfrqgla5ap33fr24f38wiyppi3388zwzbn0rlky7s1r"; + doc = "15z5g69vwdlk77hbkh8vsk07zazapjr17dicmz2wkhgrlcs5r296"; + source = "003213728r08bl0nh5yplm02sp6671zb7l54al8bqqq7hyjybnlv"; + }; + letltxmacro-53022 = { + run = "0p16zmxngzzp9hbg7bxrh087gxj7hg4avf4a9akjkg56834hna5h"; + doc = "1gxldiflxvhy6ca87f8z3a3zzisrwz6f9vrx2r9gsfw72jyfa99y"; + source = "00ykjx412119jxwf1zaz5bismfr0i52psf5fagdiybbshs5ac88x"; + }; + letterspacing-54266 = { + run = "0ry7rri76dgbrkzr6na2kkh7bn0jpwkhh9b5qw0cl5xwyp81rddg"; + }; + letterswitharrows-59993 = { + run = "1b7d512g9gma07n7np7f92qqxijxs2df4h0izq5xffd5jf438m56"; + doc = "04hrchgbm25b8g8d6ywchyijngk42lh7z5gq2g2hnddl7wp79kv3"; + source = "1jabbydsy0xn79p2c9dg605kfrc6g3c25jz72hnq1ilpny9zbihv"; + }; + lettre-54722 = { + run = "13h1jsgjp5k82cq4rpx8gd114l49m1pzplksrwjylx0bzimlzgwn"; + doc = "1w82fhhcdgsxwsnprx2p61ygsyh525im8j1zalcw0bji3i6pm06i"; + }; + lettrine-69508 = { + run = "0lmnac32n8ip27yvwxk072k1wk9v768gsm6v06bfjhr2kdpd52v8"; + doc = "04369v85mznfrfqv6mkcfa7vp9s4m2953qb6zdv5flfp8paj3fx8"; + source = "0zr1csklrxxs26641g5jnhshj10igxyf79qrq5qky7cvlli8v6xq"; + }; + levy-21750 = { + run = "184jkjwm17ms75j86njpkr17ipcamca3r5l1fcg8vfv00ffj9fp0"; + doc = "1wbxdyfxm80w3h8bq8z5yavdwdbgccvhf4hm697ss5yshp7l8gfs"; + }; + lewis-15878 = { + run = "0ws9vk38j3m0sprl9lak2sjlq13nalcysk95gv68h90x04jj5zdl"; + doc = "043kmzddal693kl6fds0xl2wwmyzvd9cqs8dmy1jzp0mdi6qw6vn"; + }; + lexend-57564 = { + run = "1lqqn007dpp24jcgpn9fdf7ysb99lgrz9zxjw27qm2439wrzhc1w"; + doc = "1h7s17x7grhdb1hxxg6wql3pwy1w08iywpynymrqn8748s93yy4m"; + }; + lexikon-17364 = { + run = "0ql4hzzf94v0pxr0jma4bnkgh73napz4np2zd1jhfsf55sm3axzd"; + doc = "0fbz7v6a5pw20p22vyx1mjdr4z39wgf902ph9f9nwawxwsl24v9a"; + }; + lexref-36026 = { + run = "1whic6s54279zypip228xyw7da5iq8p7lw090z71d8nywjsgllqm"; + doc = "1vqygg7hqn64d3dxj1sj4nj37k3w7y8r23d8l8x0lb909y285jpl"; + }; + lfb-15878 = { + run = "080305sym5mppkmgvpxw3ddn51c7gh07b5b9vs2qsikv616077ml"; + doc = "1a5y79xx9fw1mcinbkj7wv4gmvb2gmlm7sbnxc07603dc0lrhjww"; + }; + lgreek-21818 = { + run = "0ry70b47s9bn8ixcjzsj0qvyvlbava2dn2jpmp5nrqqycihb6jvp"; + doc = "0r86kjbayji1cha84dg37ajn1hnlidyw3cf4byq3x63vyvx0ag3c"; + }; + lgrmath-65038 = { + run = "0i1mag3077fs18xyznbgh3mc87sz35ihz4n5yp243h3c2qg9kyax"; + doc = "1w9y3pqfm8df2a20n6n5421hhjavg14y60lq97bib2py6drprcpm"; + source = "1d3ssx38hjg7376fi34rllpzkj8mr54nw8p5ss0la8fc2j1ac4ra"; + }; + lh-15878 = { + run = "1k2nn4zpxdgj3b10xdqzldcdbw56ws9735wp0yajkhxl72ms0705"; + doc = "0zvcl1zfbn7qv9069hff2a2r2d33xmqr31l4di24y4p33y3ylprf"; + source = "040n2hbkaypam4fhyb82ncy1sfyvg7fdhykw9fnvy42mlzxv1p3y"; + }; + lhcyr-31795 = { + run = "0civwbn156gky4k51189s9lpqcs06wjr32pviwb1gzsfr6rc7vws"; + source = "1pwlcsilza9f2f73qsvbr2xxxbs2dcms08jxjlnpk8fxcpiy8j6z"; + }; + lhelp-23638 = { + run = "0j55ilp7wn1w8vs60k6iangc9h637f2jrnpshh9glryxj9jjgxqn"; + doc = "1is5s8iqyb41fr2hr1kxf68xrlb8hqw3v1fifl8645dcgp8lac33"; + source = "0iyp664cy3n04nn4499ryzx00sr1iip1qmdlpvjx010r7hq4dyb7"; + }; + libertine-68981 = { + run = "19f8pki8i0g10z2sbwahyixcmwixcri3i5wrq3bx1zwbc28fwih6"; + doc = "1mz4lgajz9ij54sgn0x9w2y1ng49hdc9v967ybgjivdidjsfqkhh"; + }; + libertinegc-44616 = { + run = "14fdpxgsmq9dhgl2065rdsp0fnh9h0xcr0jzg4k5gka9irazxrzx"; + doc = "0isvl0ghjji427p1fd1w0yy04c6zjmp058k5gkpsa3xkhq3ijvv0"; + }; + libertinus-61719 = { + run = "00f4wjqqz4hqh2ic8g162mnn95s0p2v1qshbm0zrnzjy2gr51hi6"; + doc = "0zkv3fgkirq6jcz7ywb1sjnnw8vfwfgd3y41lm4ds547ra8zp2q6"; + }; + libertinus-fonts-57948 = { + run = "0izp1qihx1arqkgbdp18ks0xz7jlyd5cc4r3d5nhdnpph1nry9r7"; + doc = "1zn6nlpr95syxmijr7w0cljq21qfv09b2rp8j6n0rvyzm50gc4fg"; + }; + libertinus-otf-68333 = { + run = "1gxgz9lgiyw9n00ss64bb5zghzb5hzli6s8znkaq6fcgnvaf5ra5"; + doc = "08xig7pz9322x5kz8l4dgqc74hsdzrhnxp8kz577gbkg8mi5rsf9"; + }; + libertinus-type1-67450 = { + run = "1brcmv3j109909q5975zaaf7slnzqcflfqzfmxvbaxychwm56nds"; + doc = "0v352ny2961inklzfc2jn797f443dmp7hk0wn7s9dzqnim8rsr60"; + }; + libertinust1math-69440 = { + run = "1hq3fidq0yl8ahr80alj0r66zw1ampgxs3j963jmhcdh1jby7ih8"; + doc = "1vlpfnmv0d8bafmh0b4szmrcyrcjdx527ik6n0lvqvqh768jwlxh"; + }; + libgreek-65004 = { + run = "1wazhir2i0bwh8744867akraid5cz629yjj6aiipxm6gjj913gy3"; + doc = "19wbh1vjycvplflzkb79dr3ha2115jc8lf0vjrxx7qvnjprygs8q"; + source = "0d8x32jq6fcni0g5qa0hcd3vyxj5fcqa9yg3m2bfb049p5ms7s40"; + }; + librarian-19880 = { + run = "1rri0fb9ssj413w1g8c7p79hn72gqzncihhhg3ws3ldl9s3nm54d"; + doc = "1i4m0gp38f64y59zcsyg2j7bb6zycyf9z5yr5wf86l6kh40cc2fq"; + }; + librebaskerville-64421 = { + run = "1d98h5gyymci1vny8877pdq7nr0vvv8878kcbahvkijyn5gwwdx3"; + doc = "08rds9g231kqmka2dzv03sj9dwnrh89rhsbfqffpzrwsfc4fqld8"; + }; + librebodoni-64431 = { + run = "0w630a8xgw6qs0d8gw8g13slxcslyizi0mmk3phyvhiiw9km40jp"; + doc = "16ncr4c7w0hjkrss4y23qd2rmd9c1zv1pyqgqqc1rdi7w1kjhinq"; + }; + librecaslon-64432 = { + run = "0jwxqjic9p2k55g7f8j75s78rf5bfpcgbjsmg36qk7m9zig2v9im"; + doc = "0rj21fkpajmc4gyr5bixf4v644kiw2iq1fzxs6fn91fcfkwdd2dh"; + }; + librefranklin-64441 = { + run = "0g6vlivwlwb56mm9a509xfssp11ir60cvrd9cp2hv9ym93yqkcgs"; + doc = "1gvsanhdlbn3wnx2yq7brvzh7wj4nwyvdjybkmazlb6ih8ribab3"; + }; + libris-19409 = { + run = "0nprmwx67zbq7xhjbb4xiw5da3i0k958zvb3z32s71jdd6psnphr"; + doc = "1vg5jgllfxh3rdqjvgmzn6ak887ar7a4kc1k5cwwwgmgdsfam1zl"; + source = "1dfm4q73p8q8bgn33z025sgna1jq428d5dvmfagjjwc7sjd93ncb"; + }; + lie-hasse-61719 = { + run = "1bqc4gpk1f5b7afsqii6ny1xyh4zpc5347v0xv618svjh7dpyzpx"; + doc = "1jfrig40w3ac4j6y8aiwjyvsv9q8lvgvn1977f2yg12lsjdzcpyg"; + }; + liftarm-62981 = { + run = "1g1v61iahjd67fjdgr6d6lag9yjqvix0b7m2aw1gc9bjzlcvpd8d"; + doc = "1pxhbcg880vnnmaz53ifpiv17jsr66i81nzhnb80d4cn5jlxklwn"; + }; + light-latex-make-66473 = { + run = "1rjnvx04hcmiwzqg9gh1l2w0vnj0qfm22snjzm9hi7i3sj1kx2ja"; + doc = "1mjmsg5mgz3fyn6v65iy75jz9jvdv4bxy8lqsgiifv1c5660lgzb"; + }; + ligtype-67601 = { + run = "1xsdzgcbmn1djpvsjak0bav7vvaa94rc5byhvhajfb5npqrz2rn2"; + doc = "1yjsbj3m44cj1lzzgxkzl1wsapqfcjh6dfyaqi971k79zh9420vk"; + }; + lilyglyphs-56473 = { + run = "11mb49rcsi051k7yd7s02k9ca5g4mmifdjx1nqkvs6rl922wcyki"; + doc = "1wl5ppgazb27s3wxgmz1xw8cwwmnnn0s582k5swx8qy91qdl08r0"; + source = "0657barhxkzh3jj3b8rk5rl9i47k2h0p1wa2vxj00fdfqfdjn161"; + }; + limap-44863 = { + run = "1hdv2rlvxbqm2wnn3x2xrmwxpwbs03qnlfj7k1s8mfpp5smmhd2i"; + doc = "1qj9ddllgvm9zqjvfdgg2sfdyfzpp8raf8n1l0zrg9vpiy2imdn3"; + source = "0l41pd8xl969ax257lrcnkxs0pzb3q1fmiy8ijz9jfrval3rqqbw"; + }; + limecv-61199 = { + run = "1j1j3n86gvvv8jc8wycmjmnx9ci9w41w38fkxjsmx2mvc8frsi2z"; + doc = "0d9gg2gf16pynh395sfqyr1bzj664snv54x9bb5a3zck3b9kbga1"; + source = "0m0li0wa9pk2p5m3gqzr7n78qglz68akw7f5nq69iddqwh5r827b"; + }; + lineara-63169 = { + run = "05g4pmwnwmlh9zlcn3g2v5cpxr0pa07xr5kqnx0gb3ij32348kz7"; + doc = "10bl6r0sa41hnyf8c6hgwgji33jvj9zy1k39lk168xv2wzkarml8"; + source = "1fgdbxkgph3x16axccx29llckvankl51izxk825jswbgsxgj52j4"; + }; + linebreaker-66639 = { + run = "1v23krvl4nf8pz1p2hl7d9pj23c6c8zw7hgcacyjvzd8sc22jsi4"; + doc = "0prq9r6acl95w8cjrmzxlg3hxiq1qmivl0sgdcva6992smmls68p"; + }; + linegoal-21523 = { + run = "1arnfkijq4324jzyq2sn681rk9ncbgv6zqfrvlbs3vic8wxj5c20"; + doc = "0mjpbkf6vw0n4ddd9abrah7rxf51gmgayspy6jpnai1wrzv0aby5"; + source = "18v5r4hj2jpqay98njcyijwvrbc067c49jrhja6i52ddj6h9q4wz"; + }; + lineno-67171 = { + run = "0qgm0wlsq04w8cq435px8fxp6p9k064i7j42dgi9xx40fzar0k7c"; + doc = "0clfrg91m97ija67d7ykd3yp8r2zng0rl8hrhdi5hay3b0wfcs4z"; + }; + ling-macros-42268 = { + run = "1qr7bpa2wcp1hqx3ckid8h41lp8idhqqnnbdv42j2nhcy6f409wf"; + doc = "0lk4whkamzsf9mriiz06ynpp962w5473ppf4n36q3bb13amyp5vk"; + }; + linguex-30815 = { + run = "16rqzqipzng4xd7yz3i6416231cfphqbwq8n6pfal83awzd660jk"; + doc = "1l0m6k9adq0zr88zbqrj4jl286mwarr6fiy4181bwxm9w9kkxs04"; + }; + linguisticspro-64858 = { + run = "1aq5sz202hipjbimm2n8krb78q54ybjyxbymmv1nxdpjxk0hixz7"; + doc = "08pbwqz6rqqmw814c54g124h6ni6bpb39gpd2ibp5gxn21agqa2y"; + }; + linop-41304 = { + run = "1dff205vbsayq2jfyk0vvbz5yks6gy2bm4ylwwk28wmi55fqjycp"; + doc = "134jxv5bqklpdhd3wfbqibsp21jspmq9iv3fik2igwsbn20dzw4c"; + }; + lion-msc-55415 = { + run = "02xxyl35xl6c48x0fdlfkcv4bfhz4hghp1v3ff6pf9yl3cvqlh15"; + doc = "0nycprcfi6769r47llwma71hzdb9a6sprdkkk6p898pmk367wbnf"; + }; + lipsum-60561 = { + run = "1rfz9f6gaha6ccx1s5kij2zkwdkm6i2laxv5r9jyjvsawqwr0lam"; + doc = "07wwbyj7i8cdnq8g364c8pjfkc0l739932n3jcmkj6vs7qbmkikq"; + source = "0349nqaglq7cnwi54p35anv7ycsd7a92jd86l6l2n9pmvh7z6py6"; + }; + lisp-on-tex-38722 = { + run = "0g33w5hwgpw7hd62lij0h5n89n9r9ynlxswb34j0aqf3x7nsdh8m"; + doc = "0rgjcldb2rg330cp8m5vxbi380xla73jb36nn94b2awl4g34bpvd"; + }; + listbib-29349 = { + run = "09rs3zkymlnn9fgsclnfpn1mrmxnqy8kd5pmdiphlga1iwfj5z11"; + doc = "1nz6p8z4yvh91hvk02y184xl6fd8pyjlpjmlv5zpmcjillv176yj"; + source = "14jrkykx2myp5fghh9qj66i5g291azm6cihi12c53bv1ijcyl1ik"; + }; + listing-17373 = { + run = "0kpf5svycd71r8p61y83wx1k99fwxm95qz5fbnqkfrq3c0113h3p"; + doc = "1zd0mxh0gxlvqrwxvycqr5yzs5fns0hrkn6g6b4m1v6njv2f9lna"; + }; + listings-70052 = { + run = "1khzz7im183pyynl8mhk8by91p06p1xy7nrlpq2g457zp02svxx3"; + doc = "13aw7xcra3r9p35iwhjh6wbkf7n615bz0wffxi0sjxcqcsrcqvc8"; + source = "0l0s0i1kvb37n1wgahz1q2261npbs112f6jxc031r41rhyzmgqfh"; + }; + listings-ext-29349 = { + run = "1r5nq62k8rwllcpxwpkh2z0gcb1rlydp9nry8wx7r0h93hbmm2z7"; + doc = "0jyk8z0nsdx2yljly8nd4g8wnw7ggi6mdjw0wb7y0mb5wq47sbpp"; + source = "0hd117168f5s1cb2iim6y198lnh05ph4ib7p666yxvv48wr0mfpc"; + }; + listingsutf8-53097 = { + run = "0scs9dnkl2hj95zgjiggn2ikq2nf62q97nnml3hbvmwdargassmh"; + doc = "1s7k2gr69xlxln2yi5wyvd69l2qa8v33d92b6ahgxxpid3437prz"; + source = "1bq197100f74sal26w0r4iv6ys2qa1ylbwbyw3hm9dlpb6kmdmgq"; + }; + listlbls-67215 = { + run = "0r5ns594dxmq7r9pkk2hk482caapfdar1gwbdi6fw396pcnpw8p7"; + doc = "0gnc00jv99rvf892q0sncr7l5pxpndrmw6qsxfbnyb38yr675fk7"; + source = "0s77rh3480i9w06a0nnc7l8gm3w1s6bik4nl15idb27h5a5fq302"; + }; + listliketab-15878 = { + run = "088f2lm5lfbns7hd1m06f3zn1cjcbaw427z7zl5n47ahrvcz9p94"; + doc = "1llrdgxp9mghs51sz4jjhbdllzlr1xgnfskask532zwn1cm6f4vd"; + source = "04xfgaqpcskx5m8byysvd2rji31km9c6cbkfzf3ybj4a5bmbnq58"; + }; + listofitems-70583 = { + run = "0kpq0ac0v5yk4gvwrzdkp262npralqbdvsx0ln3zqgis025z4kzb"; + doc = "0dgmc69d5wxj5dx7liq08vkw58fm3vg41j261xxw49hlacjl43z0"; + }; + listofsymbols-16134 = { + run = "1qp5y4rbnlpaa3nghlxjn5yzhskvan9rg0g45wqmg6yk9sdll5b2"; + doc = "15sr2n0bsvwz6jqgyspj6kxg511jy3fr18705pyp815hg4maxizp"; + source = "1sjg64imcxxqq8bsqm98954g47nfambr6vsyizkz8zqzmnr5vd80"; + }; + litebook-70583 = { + run = "0xz899hy8yhwsphzz8kz6h41ck1p649lqhzcjsag839j9fwflvpd"; + doc = "00cqvwhvl2r884j0nm1gb02agsz8yss2shn8bjkm3gpb1gic4wy1"; + }; + litesolution-70608 = { + run = "1bc1wd867a88axcf2ydm8alxw9pkd3ycwqgvwy7fbs70v5wzccz2"; + doc = "0yrqa5qs4zh6vscb5xagmich4hgjsfm8xj9f7wzklb5vaphcgm3m"; + }; + litetable-70355 = { + run = "1m8c9gp8lsbf4i0ng62fvc1f490dg2fhhlm7gyh3b6bpfysxcdlb"; + doc = "17gm57g2n5i0s2apldjs2z9xib8cdwz7zmlyr6g763d5aibs7bz1"; + }; + lithuanian-66461 = { + run = "1jjbj39d4idfsx86lmpj0w1k6gr6mwr7sxvcm8wag47rgd05czcf"; + doc = "01r1wraa7jgvblc3wrdvkhccp4ba8ps112ip1v31vn4wbnlvdyax"; + }; + liturg-15878 = { + run = "11l8ccpq2mcnpsfxry6zzjihj3s7s76p9plh7afprd7j2nnq1a79"; + doc = "0rhyz3162nzh43nrxwkynr45i4w5pqb5ip53x5j2k2a4cb4k1z86"; + source = "1hn89rf3xi66bfc3kzwbvllfzrxr62gx60ywbh8gkrw813n18lll"; + }; + lkproof-20021 = { + run = "12bj60lfqlqvyk020lv1l6iinvqx4cvd6lfz4vhblfx3gs3xmcqf"; + doc = "05sppy6q0c2iangbzmxv5qxla8slc2k0fx62f6n2fg1ncgvfl7qh"; + }; + llncs-69629 = { + run = "0x86jmqa7rni1bj43vg6rjr6vnffwz8l0pyrq571s0506jf10y3k"; + doc = "09dg7g9mk7fhp7l81572xxa5b12fb27bbsmvmrj48j7jic9qxvnh"; + }; + llncsconf-63136 = { + run = "17x1sjs86vl03dxcz3qbwm7r21hmzvsvsr9qa0xii8fvp1yb5pxz"; + doc = "1dq0v5wczbhk1ir8fl97c53sinpqnvv9v1hff1hzc3rhbwh5smh2"; + }; + lm-67718 = { + run = "1b4lc6ipij5iws4rgpv3sjjwrdbaxnwiqdbyyj62jzc3yk999m4y"; + doc = "0wdnpnsbg4gvahqq8lv8ny36xwxgph04sjn64pl34srn2pk1jsxd"; + }; + lm-math-67718 = { + run = "0vsmzr71d5iqhr9bwjnp7khzlg939mvfnbg846854cxk8wfm9hzn"; + doc = "1j6jcki1hxdr17njy8sfpb82mxh6bpllccf3hnjvylvpjf45nxm3"; + }; + lmake-25552 = { + run = "1fk98049965cqqyzdl3yl9iblk87gwwrfccr5jqpdm5v6m8mcwrj"; + doc = "19yqngjn320sng4pg835rffk6d2g3c5wyma46x1jr0bccv8s1990"; + source = "1p002ywz3pxip5v4cd346nmpg0gi7wamlcl7bc6f4zvzqp0cg41g"; + }; + lni-69361 = { + run = "1slm6l0jjv9ps8qzs5ld774iibsqm4bi916pyypi668vpf03dp1m"; + doc = "15125l53k3v5g8gg4x8i7izx2y060r2mpqs9k60jxn4ljlmh0cpd"; + source = "1wlvrxfj254ap9vh0wnzana3i1wryqiqxwff2gh8lrh4nh3yiq01"; + }; + lobster2-64442 = { + run = "11kx0xhhklgrj3rhc5q3c5hi61444vr4936fpq1nma1yxn7mbyfz"; + doc = "0l51mwqiq34v22pa4rjj4c6q7w2x9acdfy02hb8gmn80i91fijpw"; + }; + locality-20422 = { + run = "1b6xi8zzc9x8bc54bs2s6ryn7g2zfpy1zsdddlx3j8kvmbmgv6j9"; + doc = "0z0vrx1dy5qqgb2kx08qc2r06ljqnfsgiz58hpy6ylnlyay39ipl"; + source = "16xp8pc62jzgcmdhqpmfi54y5aaf7mx6bqgwslpwixgwym0i69qy"; + }; + localloc-56496 = { + run = "0ynzcib8hsflpjhykfl348pmc508g4i3ig38wjsb3gfm97mlhq24"; + doc = "08aiqc04rwinqr510r1wkzz43qq4nks1varmxyjbnw9acndn94ak"; + source = "1wcl06i82xkp6m5m311pn1ax42avlp6n54ad1j450apgygdszmik"; + }; + logbox-24499 = { + run = "17qbkfkbz35c1a2v3agrpbkk1bxifacj4ccn3mh2w4kv8z8zvww3"; + doc = "0kc0gldcfy4bshfkl7vprg80ywwsqhac4f81f2f0i6ql4jmlqwsj"; + source = "1cj2gb5apapmhxc9vkypnq17w5fhnwdpp0qhi595gm5j5q1wqcq0"; + }; + logical-markup-utils-15878 = { + run = "0nc8kgyplffng9429h0g4hynlwwxpcvnirxg7rj62zcjcg5ijqvv"; + doc = "0x3j3fy8zd2vydzfa47ra9w8bqvklr2im8aq725nwpxbyyg3m8v5"; + }; + logicproof-33254 = { + run = "10b55lwrrq1aqmp9njiabqg59xdrd5g8skbcrlhs621s1999dq2g"; + doc = "119zgxwx0q6c4ghpb30mvpdwrpr0xvk54hmj6qfpih0kxj0zp1az"; + source = "19j00a28pz5dp29sx61dnrpqyl24sx9apf2ck334ap5sw7awnc70"; + }; + logicpuzzle-34491 = { + run = "0zsg11lw5x28sik6ifj2v1zjvm3pcv4vf7w2pfxcr395vmw33qm9"; + doc = "08vgi2s2cy09dhqdmvmq1ijlw83dgjd7xjfdhj28vm9ny16zmydz"; + }; + logix-63688 = { + run = "0syvhp2zn6rpmg1v92k9df0q4kv79flvj93m7761675fb8jcki0h"; + doc = "1l7kyw1pjr4bpj33sy2dvkb1fvl39pb1mbvwz29w6k4038hg50hx"; + }; + logoetalab-68916 = { + run = "1qmw240mqsh2s7l2r8nvw9xh3zwa99g01szjaxn94d92hnqmb4r0"; + doc = "0rkj5gcp01xcw6d3vascvp3nw2ng5gxi9znj81yasgw09w2qyb43"; + }; + logpap-15878 = { + run = "0xrv4x46m54b4gfa805naab6fgpd72fwqnyjjxw0idy9kb3s3x5v"; + doc = "1zb6qyxrqy07m65i18dcli30gb42y6c3ffr22cpxa7r8xmaprcg4"; + source = "07cm2gcnv6d7pzc9d2v3bdvsmykqf00bbw177mqyjaq1chc0xpna"; + }; + logreq-53003 = { + run = "1zj1vn0yfklngvfvcr0p8hchar220lwfrznsq73jbw9zzjx47v4f"; + doc = "143b5bb1jkc9j1gd46c28q4zq8jlh9wrngjw8q4prw5dkfnf1s8m"; + }; + lollipop-69742 = { + run = "170q59wqy0x5zhziaycmfglv1wnc5kf252ni1r4vgrrs3rlwiirr"; + doc = "1wj858kqp27amx3jpndsqma152r40agfymh9ah8s42pn6kfl4dkq"; + }; + longdivision-68609 = { + run = "1rnbw3y9vzs0nqyjw1qdj7mbiy1mk9l3ccygnn65495smgg7h7b2"; + doc = "091b1v1hwbifv426w1gglg273c9ck0n3bzj3xl9hhl27x1qzxjcy"; + }; + longfbox-39028 = { + run = "1cm2zp8sina312n72bd1xza75yi38n1s2ach2f9sjxdx0m5c3ywx"; + doc = "1wd6hdarh4nm6x4qn789flnq69gq5p2r2pgybsynbna7ywar0l5x"; + }; + longfigure-34302 = { + run = "09pnqp0jfhsg7i8z241ggnx04j452zsg1zqmwy0i40fp2s36a61c"; + doc = "08y2a2922zk61iirlw24kdsf473sx0b44pjzxihmpcrf19vg2c12"; + source = "1p10y4nwz9wj321mf36avl3w6zwvspnb9cc92h9jf4iawnqyp8p8"; + }; + longnamefilelist-27889 = { + run = "1nz5n1g65fs7xxd4l0c9xdr2z46mxhb0fkmf5id4hrifrbl3jxbw"; + doc = "1v8i6ax2qwz7d7mi0bnpyllbqyksdd749s8pr95jfw1fhi07i5fj"; + source = "1615gzf3rjfr1nlmpgcrvmlzhif13g3kn210xq8p0vsv20irnqa3"; + }; + loops-30704 = { + run = "0hml4j8l5gdz1c2qfpsqdpha5dqjqx545am8x4vzs57ga7j2va4h"; + doc = "1jf63snh8bnyi1j16mjs14nyqr4bj4rjbwd3bs1xd30i54d5584s"; + }; + lparse-65693 = { + run = "19zvsmv6p650qrblallq9krwajdabwrkhl45723226nvrszsw0r1"; + doc = "19j769yldcx498ycy0q8vkgpmaj8zyn9inhix6cpsrg42fz3ijjx"; + }; + lpform-36918 = { + run = "033w5cd8z7r02h4r2p8lha6z81qqvky69a7aiahjpd15smss4wjp"; + doc = "0vnz4simqdsznciymkqyy0cpbnxfpkd54wdrcn5ra257a37x1f4z"; + }; + lpic-20843 = { + run = "0axszk7cpnc58rs7w7pwy3vpj39l6zc27g8lfxjzkzlnc8hbnycd"; + doc = "0hyg9v30h6n38j8a4pbqfjxkqfc9ls3hcp1cf8n8dwr3ajyhvins"; + }; + lplfitch-31077 = { + run = "1qjj043c943pj0pvzyhs152795zyskcrxkkmp49jxxm0hi8ww51g"; + doc = "1nq554c0vjmcdb9xyprjvvvcwrkbbh8s1x0ypkzi0gqds4m4a38p"; + source = "0cc04s2ndbs8j2xg4afxxyi2l8mmnxvgfaflak64v6i92n9icfg1"; + }; + lps-21322 = { + run = "146a42clkjyrg046bz43b2rpvz3i2dvhcsd132bzc76d3x0sqps6"; + doc = "1nwn4dff3szxlvw7ydqp1ylw818maj0ij1g08zlz2i1gclizwpa1"; + source = "0hzmjvgd9y746d9983y73jnc7pl4y85lk37h5d6j3jznnrdgk7b8"; + }; + lroundrect-39804 = { + run = "0s44pbvm6iwl2jyffnxriqlmpp6zs1y70z4aix8wwfasx86gq131"; + doc = "01ncbhr1x995763d1dnarhy56d7mq3r8k1b56whqs6kq55115w2w"; + source = "1sh8ypnfq4pwaqd934vdh77svs9d3a4114vghg6m4sz5fxh11i39"; + }; + lsc-15878 = { + run = "129vlr2gnirf47vs1drcsml3w4jcwg78hmya4r3nspaqm00b17gd"; + doc = "09faqnv9k96nwjcvgmml9f02vdj5hadbmb1lp59xk6jikvybv436"; + }; + lshort-bulgarian-15878 = { + doc = "0qg23asq2i5mqhp9xblv5hm3qxmd5886d5x0gq1fkdbyy9gsawi3"; + }; + lshort-chinese-67025 = { + doc = "05b9fq4jhh9xifn2lj58fs17fc0prx915gwfz47s92spvv9fwbi6"; + }; + lshort-czech-55643 = { + doc = "0ar9qa0cg0mjv6ydgx1phaa1qpiy25s3jciznbylgi5xprvnnfa9"; + }; + lshort-dutch-15878 = { + doc = "160r060gmw6f6lgbnyvfxafjpqvyr4jwd56ddkjfm3ir2bfl973d"; + }; + lshort-english-58309 = { + doc = "0pzqdbzynlwvpamd69cmfpa8jdcvq96qjr9k1fy3dxpzi2mapvhd"; + }; + lshort-estonian-39323 = { + doc = "0dfwp7kkynpskb345i3yz7h5pvc8iljqg3q6l546vrwla0bmb95c"; + }; + lshort-finnish-15878 = { + doc = "06madlm869kmwxprmy2c78ma4s8zk8mclzmd4xdl0r4mlhk4vdsl"; + }; + lshort-french-23332 = { + doc = "1hdl0w7b1ablx7qfcvgniz7dcbgazb49b8wfw7c08hlb38gxfqh7"; + }; + lshort-german-55643 = { + doc = "073v7zvk8xri0f05mr0ad770p81akl9b9cnia1q4hcma9fk89k10"; + }; + lshort-italian-57038 = { + doc = "085ydria5q7s648r7frl54sa1y4kyr569zvqjjkancfd83h873cg"; + }; + lshort-japanese-36207 = { + doc = "0mfxig980jyzhay1i83d69p294hgbr92v3kk2a4z8ca3fwzy8w74"; + }; + lshort-korean-58468 = { + doc = "07660lrss97hswmis7rgc419h05mgrvsfrrwmnrwk5yn97flhhqd"; + }; + lshort-mongol-15878 = { + doc = "153k4dzia30fpx847wli7i5p407a808gmj3p7jifq5bpx479qg1g"; + }; + lshort-persian-31296 = { + doc = "0b1b45nh2d3d3zv735dymgyllj6m8i57icbihjkl1im0nghrzklk"; + }; + lshort-polish-63289 = { + doc = "121y638k4f4pbjpa4q0n9qj2w57624q2d1v4jz09qh399fl5yk81"; + }; + lshort-portuguese-55643 = { + doc = "0wg51rjcayiizkz0vvjkirrx19q8fbnfrwilgh13prlbpams1hsh"; + }; + lshort-russian-55643 = { + doc = "02abh69xl43p56fcciyan4j0z4mqq2j7ynwazq1nywhz37d6zn7y"; + }; + lshort-slovak-15878 = { + doc = "0b5gn95i32dyn8r7v2cdcz759fllp3b0zwx17adjs282n06vfymq"; + }; + lshort-slovenian-68204 = { + doc = "0cwjg0z5vr4x93bz1khwl27rk8k7kpjm978iyzn6w7gx3wi87zr0"; + }; + lshort-spanish-35050 = { + doc = "0ls50syrg3dl5dl5a3fi33cr9j990l2xr6pribn1vqglsqrh191l"; + }; + lshort-thai-55643 = { + doc = "16r9gx902a342q2mj570y269yw97yaj6hrbqrk4h49ihm695z30i"; + }; + lshort-turkish-15878 = { + doc = "00r6pv4z4933jw072djdasd2wp5j05wghln62ga4g6y6jblf6zks"; + }; + lshort-ukr-55643 = { + doc = "1nsah1h3z3sy96a9x0mfdwby7pvvjwq7zxfv2s8nvsbvnn1al17s"; + }; + lshort-vietnamese-55643 = { + doc = "094lfry6cqvpk02c3acss6581mgb7j30fnja1b3qwzxmyxjdblwa"; + }; + lstaddons-64967 = { + run = "1yyfgn2bdlb5gjb2qicx837wl03djpi2cwxzds3bp3n37h52k48c"; + doc = "1lxcah5zmmgv25hm6a3yfls7ysgg9dfzdbc3whdvw11mh3pwkiw4"; + source = "0bbppx159q28sak5i6hj6zm1kqdgcn61a6kw4gcvhj536vnd947h"; + }; + lstbayes-48160 = { + run = "1kpkr8xd1k1iinrp1ljj1wjphn0c58l8f6hci0axvxdklr02s3h3"; + doc = "0x288aij80j9vy6bscj3w257nj0y3z1hf0rf9yncs13jsxr8rz05"; + source = "1hcgcvnki1xkh4ni6jqcazl0rjbhfmm6gbgsp9n5qavdgnv7qzmk"; + }; + lstfiracode-49503 = { + run = "07fdzwb4k0dv2mf6yl31h58i61hmw0gfpgrjdnz3v2rnw1ip8kgq"; + doc = "17a8sg0srw7096r3h7qa23msi6pq0dagap3a0rcpclp73z3gh3wh"; + }; + lt3graph-45913 = { + run = "1w5n9y7pqy5zmn6w9bx58nnawvhp5467d150qxnj3c92gh0qbj5i"; + doc = "157y7a7gpgm6dc7hawdhxr0v3ns5kibykhkg3wfb5r5fay47jj4n"; + }; + lt3luabridge-69867 = { + run = "10ip1css2g1qn9p26xzc9gkdjicd35m6jzdyxd7675zl0h9prvbm"; + doc = "12gch4b6x7mfia5mgglld7zaad2f7w1bybxl689vjc0gfb46v55x"; + source = "0n54m4pawnmpqrbb7m7182d8wbjs150rad4kqqx9h8w9ymwwjrc7"; + }; + lt3rawobjects-66619 = { + run = "1k65hvwwqqw26mqm248fd23xk4bgm864bqnyc759faya84ib8n0q"; + doc = "00l496344la7q8jz0nr895cxir6zn5pcjsn16mc3cd7lpiclxs69"; + source = "005iwxrraxmirspq3881mc2pb8iikc71p4g0dwxbqp38c8v8djb0"; + }; + ltablex-34923 = { + run = "11gazci0c064iav6124v4szdbj38anqwnfgh8pfpdq9zff0h9g5n"; + doc = "0jjd5f3r67lrbl4vyxjakm8l8pdrw9vm1dzhl5305ga8vvwb7gn2"; + }; + ltabptch-17533 = { + run = "06ww90fh24s6lmzyvmqjh5gcr7vp3lq6cg9q6k6194g4kay6yx5i"; + doc = "0yb41cgqpgcxk27259gfz14v9bpndjg51i9nmwr1qwyvaqd6jvjw"; + }; + ltb2bib-43746 = { + run = "0glj7g6zyvm08paszjk45kp65aac6i3f8spf6zn12idf1h0b76j2"; + doc = "0j1p6bcwwgz00n3wyv3vm02z295sj9xf93v946k1xrv5jc6pg6lf"; + source = "0g05r6b662jx2s2kal26b3lv0dd6r54fb8m09yv5d021y1fm2nqg"; + }; + ltxcmds-69032 = { + run = "05wvxr5bsrfgyy5aa0mrxqw0vi8m1ks5ma6fzlf8ngnbpihr2ggh"; + doc = "0jnqvpc40mazy5ka1451w5rdcsl5q6rza3dqkhqpf79lgiswxgc5"; + source = "1p7gzrhyiaiid1mpqfqlm6jfamdd8bvxx149lsnvhnxh3mbxlydm"; + }; + ltxdockit-21869 = { + run = "1krcr5qlz0648ibj5c1jd0y4rf6rg33r0clyvdjm70kq26y1lqww"; + doc = "19jc49p978z0hrx7p19h33nc65a7vjhlrfszwvr6mln01la3ivmq"; + }; + ltxfileinfo-38663 = { + run = "0f11qjq1a3s5nxd7z9k19yhbl5219nn4fr1vfcqq1zs8pwnsgqzx"; + doc = "1qjs959a28cqjigdml0jgyhllyxd5kj276akz93hdbcd6gzs9ss5"; + }; + ltxguidex-50992 = { + run = "0qv1p01y18ia4w53dvlfhdrgy1xsicaigcas33xs6yqipr8cwgkp"; + doc = "0j4h20bblkwgdjvr2ihfy32mzyb9parbjgiijqf9sfg2k2p7xpib"; + }; + ltximg-59335 = { + run = "0w53yx4bsj5c9djqp82fy3yvfaf7sl08d2698bq1bzl13rlnvlxc"; + doc = "1rni1hl6i91dw0fdynkajr27gir1a7qyagmpmypnpcdbqv0rq0hw"; + }; + ltxkeys-28332 = { + run = "0yc0c6hh8aiqm695by6229qqhv7ym1ssz6gpysy6hb10qrqbywkx"; + doc = "10v6gw41aa4ndw2x4rwyq9x66hsdl4l4j0682dcfm4cpc903caga"; + }; + ltxmisc-21927 = { + run = "14llkpla8gpx7q6a53sd8a0a42wgk93fg4mbl6pc0v7v1kjblr5m"; + }; + ltxnew-21586 = { + run = "1sidvpbqn5b8szbgysi1afbw5lw1cm8ivhq12sig0z4z4ljp3qf5"; + doc = "1f69xq5753iszfa2yr6dfmz1agic26j4qx7kkw9j23nhm7f0lvva"; + source = "000dh3d8i57vsa46np49ml0sb4j1n3gnpcfi1ghj7pz5bn9br8w5"; + }; + ltxtools-24897 = { + run = "0ldvvkvyw1khfvg80ana7wj20917sjzf0lsp4699hf4jvw71w6x9"; + doc = "1j51wpw06jz7xb6qf6nc52r5fl31q6zhsdm3v2ngc1hd03dcxpic"; + }; + lua-alt-getopt-56414 = { + run = "17czrz46xlbj3xkh4jwdq269mqaq7165kpkhhqa498hrkcgdgaak"; + doc = "1zfwvs979c7s16vpv2k9l81mcmm9y4qdjk46l8ik3123dalchv6f"; + }; + lua-check-hyphen-47527 = { + run = "01q4j9bb19lf838pd7l26rkz1xr7mxcx4fsgf5xd4sdif18h56qk"; + doc = "0iaihbrppn1ap7bqvn37rk8b6m4lwdi8w4zkshiqya1mphhsfjg2"; + }; + lua-physical-59138 = { + run = "1rkf3cgzw6lyld82p8crv8h3swk4acq7b0i9c20q5dksrxcr7vmh"; + doc = "10kzyj9k5fqi0jjkah3xx2cgn1ssvc3byihvs66qpavd2gz25vg3"; + }; + lua-placeholders-70055 = { + run = "1i2x0vv8xaadh7klx1airmfshk49a2ldyknn1xzn7iz882lwwrh6"; + doc = "15qvirq2kidifkgd5pi6cdpaafj8z76qjx7n3x6v9bvpp3ybwqi5"; + }; + lua-tinyyaml-66776 = { + run = "0wm23v7rm1mr2l10cariiyzv8f64aq0ms154md2ww9ad4qmsf3km"; + doc = "16990nj13x5452c5mb8ha4hy6n1iyv2xsjqgipv27dhz2g176qy6"; + }; + lua-typo-69403 = { + run = "11g42k7431rh9ih81sl6q331k09l8cy1qw2w5n687736hvv65wak"; + doc = "14rs9ds0mw796rawi4vwq73apyswvy6zlml36866pzy2w8mdcfv5"; + source = "0kcjlddqjvfpjqrj690dwkzjf6b2qqjc7ccix96hzhb37sxmm2qf"; + }; + lua-uca-61023 = { + run = "1klxyb2iw6mccm2dlnpk947kim6ysvkykz69z7crf6lyzcy6lmvb"; + doc = "1605lw450b64xx1a6lxjh9w4jda0n3d0b3sfvxl4wngd5y2jckzg"; + source = "0z7fgyp7dh4zkz48mkh49pngaiyd58ckm0ipd3z626alz4k2jspq"; + }; + lua-ul-70206 = { + run = "1w4prgdq4xmx85gq3hgklxhsxq69spvsqnl4g51wxs2l1pi3dk4w"; + doc = "08kjlrjicm93cp32kssvcjp2j23k0wgcly88xxpkzl6x67nw8qw4"; + source = "1hfld2d2qppvbk0w7cjj9ng888jwi3jqlak4cbnngcijvwaw3hj4"; + }; + lua-uni-algos-62204 = { + run = "0msiywf33b5jpdzc66wyvnklvmvs4cpfq3f6bsplgi22x8nvdrvp"; + doc = "1sfswdkhbjrjd4cjj95lbc1sq30j9y5xi35lg3mjfpdinq43wfr9"; + }; + lua-visual-debug-65464 = { + run = "1yby9rmhq63md8cb58qvi4dzlvw7hnfqicmkrap0c4qamva1aal7"; + doc = "1g48dm1is12zj2ncp5lxf9cv9anq31wm3n99kjw9m1fsygjfsz1k"; + }; + lua-widow-control-70602 = { + run = "1qagxphvc273asxvg77sxrcfv51kzcc6dkz1bszbzzy9sv2f3xs6"; + doc = "1zr31yn7xrxgzj2lnvw8f3sb784xcis63ggd1wylxfnar62mawr7"; + source = "0w7b34afjik8ka9njdh7lfjn565gs8ns9n90phgyj8xpafy09jdk"; + }; + luaaddplot-62842 = { + run = "024k6k9iyqiw29l614n0rj0k32y50fgisd2g1abfis7lihc1nlv0"; + doc = "044yp2522hns6hshlph91c990lh43bwvf40cgkfid47mi4zr79l8"; + source = "0x09ac3qlz7p27nm478lcawdrj98622527ba4rz7004b5p2d8w8v"; + }; + luabibentry-55777 = { + run = "19rvhs12gw5vdq2vvcdzbz4qd3y87qjvl9x4bcqbncqcvwg82cyk"; + doc = "1raq564ad633c0xbwx6r9hhwmx1r7vis283rfh67lixq3prl0nfl"; + source = "0gqbmg1c4wm57ga8gx9g00dfbczfvhqsyl13q0ba451d3kmh6klg"; + }; + luabidi-68432 = { + run = "1kfyazn8v1ks5yvac4x5cvd42i8li0sgv00plj92c2m31hfxw2gl"; + doc = "02387g70qsxs7km8dlgibyx080jwwjg668j0w12v3hz67jvg5ymk"; + }; + luacas-67247 = { + run = "04507iwzcyc2xgy6sfawzj6l4zrjq4iaqnb4946hdfc4nbx177mn"; + doc = "16h9v145l1kv00ipghfdjdqyh8giq7y418664806h6gv812af7yy"; + }; + luacensor-62167 = { + run = "1n1dgnamm5l3hqpbrm4dwgsayqmr99m41iy4038s7mfzz6dkf0g7"; + doc = "038838s5p5ynvxycdhassvkq1vhpv823bfr5ppir00zd7mv8c7b5"; + }; + luacode-25193 = { + run = "0qk8vadwymhcm7yw3sffdh9i171hl8vg07j1b5gbsl1sa70cpam1"; + doc = "11d6ak1dvdx64k0i12k4c5kh24f5vqy0ihvj9a5lxa9gqypflrga"; + source = "1fafh2nq66cz01jsbkb0mk907sppahlswsbb35pa3q5j7iqjzyav"; + }; + luacolor-67987 = { + run = "1mbiwswai0sq8wi4vmyrracygdd3a1g45m3qanpams683ik1syal"; + doc = "0aqwjckc7cq8z80bjyl6fz2gqzrwwdvrlilpcf710wlrqc5c023r"; + source = "07dwvksaxidr4b7z7fx68q2kcclhmpilvy1xk1xjjp07s5vgqkkh"; + }; + luacomplex-68883 = { + run = "0hd7g5fg9dbacbkk94zpjk7yjwx3jp70l2ia6wnzx8zqajs4hc7v"; + doc = "1hsr4308z3b2g3g94hcn2cwin3awhhxb1hzy2c0nx77d0byx5kkc"; + }; + luafindfont-67468 = { + run = "0aajmgjbh77mj4qv6d1765bn66qjfk3m1b0bg286lp77c0vsjrpy"; + doc = "0bhr19q4j9fqy7y8mjiz49vjd13s1wpdg91bqfdyx674l5sp72zw"; + }; + luagcd-68893 = { + run = "17nh27fkwjrfpvf0fpfbqcqi00bgchw0zf3iznp3iqmjyvrdwn8j"; + doc = "0lihscgrlrjrc3djqr3v0zwdzwhmlk7r33rg0agasdhcndw5hb3q"; + }; + luahbtex-66186 = { + doc = "1hfawh7vig7jsmd1y0qlbn80x6770q56sqd9rx638js4p5a4di3l"; + }; + luahttp-67348 = { + run = "0nrk066mdzlw8z55qy8w3clpfdiy411mqni3kmn17adp5iswc9sn"; + doc = "1xinhsfcl4xz3xziv0ch0rhgrqqzmrr3hs5h23hdyadayxk4wxhl"; + }; + luahyphenrules-56200 = { + run = "0msfn7s35xhpacx745w0zbr6g5pbhhm4pccd5cmqdhq6dh0fjw2w"; + doc = "0y2rxs5mqyw6cyrmgsqqibsw45qjlzsrcwpd74m9l9d4731nyn37"; + }; + luaimageembed-50788 = { + run = "14xmb1cjqvpqwl33qx7376ndsbkql48v6094r66ksr7vlyap5hgp"; + doc = "0r0w2lzxf4avfsv5s6fx64bw300vnmympfdfzz1k05c5c2kjy9x9"; + }; + luaindex-25882 = { + run = "08kckg0129ksr8pdm0a2yawwb3fa5js3mkp6jd8f90y0w7acrvis"; + doc = "02w8s71qdkxznkmqv7c62dhar2x6ia9zsiwd29qxjf51dpwj3mg2"; + source = "1v09zszin9f4k3gczrfs86zv019l42d6khacjdb3qjp2gg8w9qn6"; + }; + luainputenc-20491 = { + run = "1wsz8aw4dyhiw5p7gyf26lcixk1a8czr06akd1h6dwj6s5vq4vka"; + doc = "0h6wjb0kjdqfrmzikvbddq4w31d55mxlcl5n3phr56fa9i49qmgm"; + source = "1yps04v6fvqspq3rip0c6pw5a5y3annwfaij7w27i53419h83lbd"; + }; + luajittex-66186 = { + doc = "1qfbg0r6gsncgymh00yc83kcayd4m7bvryap8f63sm9s9bzfl6yv"; + }; + luakeys-65533 = { + run = "1p4hysck00vgpdnba5jnhaslcbq5cpyw89f1mdn2201dr0nj46sc"; + doc = "1s46w0knvc5k7d5nqvycqschsf60p0qdgswwf3bs987m5vi7jmzi"; + }; + lualatex-doc-de-30474 = { + doc = "0vnmgs475bzbqi14m9sm45cwjfsbvbk45wkb8m73j1bnk7wg7hh4"; + }; + lualatex-math-61464 = { + run = "18m4jab4yy3fvwkn6fyb1qajsq4nl45v06l1kdjimcws5vj0wbv4"; + doc = "0di41c5rk5raf88hpz59syhg330can3gb5s25n2y5c47qj0aph1w"; + source = "0v470ky6shgcfy44b6a1b987cylqiz6rk0dk9qfhiqd6b93p3axd"; + }; + lualatex-truncate-67201 = { + run = "02plqfp0xi406wya3c6cdgj0777m11fzkbk9nbharima6zhsc1nb"; + doc = "0gkgbliv8bzpdk27mkff02v1d03vggyq4nk50yawrimz0k7q64bn"; + source = "159wcqiyb5rs9a7wfm5mj5vcqh4kr9gv4pv6w0d7vfylkrlh76nf"; + }; + lualibs-67994 = { + run = "0h9v05ax34iir2i1qjzqi27qqnw4szch42mfa8mfxvxcmgcjyqpf"; + doc = "1wn6j8fhprq0i1k301p5k1rw5dyavwn1lwvrydf461nwfvahavfl"; + source = "0rchl8c2dn0f5bq94h56ncy4rp2iisr3j9wmp78c1bm22k9xa1f0"; + }; + lualinalg-68918 = { + run = "0ma2na0ms6k07aavahnpfz1wddrjw2zqq0znxfmib50m3nqh3r5y"; + doc = "05lpj7b9bg6w6d3hc20cnqd50m4g0lfbgj65lywnk52klkggiyd8"; + }; + luamathalign-63226 = { + run = "00j2vngg8sqbagyhmjv8lr8kzfsllllmm2gijhxbm8xgf8r7f01y"; + doc = "0b2zkyzy0rq2cfbk205nixvflqcxgc1sfxiqbiqhz2yhai5y87i7"; + source = "1svawaz0lj4zilykjg46av8sky18pwzqfnyli8qldpby4zmnqgvi"; + }; + luamaths-68883 = { + run = "0gcri65p0y9rmq19rgf79jw98i855cl30al9cpq3znp3jjyikfrr"; + doc = "1sv4ygd6ypf0hhcbhydcr1ap7ig26z476i8z0gs5mzfs08rdq5mm"; + }; + luamesh-63875 = { + run = "09ldwjfa0dfhgqv2clyqzd8nzq596h9fz72b1jh7vqjwkn5774y7"; + doc = "0xnk2mcw24v6002v523m7amj6qc4w3h655l1ss4rpwvv6virp3kj"; + }; + luamodulartables-68893 = { + run = "1f250s8836j4kgdzii56c0248j5sp64f5wbqkpd6p69wjz7pbrmx"; + doc = "0pdk7x09gmdv0lnwkvdv3scmbgfgpyv069fa4s5hbyvwskbj7fmy"; + }; + luamplib-70583 = { + run = "014y8nq1za0f0x0hv0cf1s3dq8937a3vv277p66spaa6qaj813hz"; + doc = "13z4pdlydnxswna8qh6ywbqi6k7c2bgxspwgghz3n6xc5nr9g95x"; + source = "11fbzlvs6ra67ywpbq1qxlk26wk0fncphcl1nrdw6f3l8v9m4dml"; + }; + luanumint-68918 = { + run = "14z8vvxxivi2i61r1ydq1csbxlm3621y4j9hx3p0m9s1ngcy4ryv"; + doc = "1iss948y9rhg7j6am6vyc5y0s1cmn43k1g8vgcjlzbp8x88mwlwx"; + }; + luaoptions-64870 = { + run = "1lkx7ynl6xci7klgi2h7qbyxny65nca74xz2bhnhch6zm38rgsa5"; + doc = "02w3623ix7g67bz21262i95gn1m4gzvlvn08f7v0x0q5lm7x1f3x"; + }; + luaotfload-70234 = { + run = "0zkj8hshfxxs9yq5gjmznafr88gz4vd551lh3pz8xskw0s1qh2cr"; + doc = "15z1anhc699fb0k7v14s9xl9bgv0w0114zzz3ibwr37nj8hy6xdq"; + source = "1jmvglj1mv766cxzj6bnagrlby2z7w3gkpqls19ic2g9a154i62c"; + }; + luapackageloader-54779 = { + run = "1ynqy88drl04ld2lycrpvjj3cxddmbycznfamhl1bmn01c1q9784"; + doc = "1fn9kqab5hyvscjqmd34vxjkdcr7bapgw7w3ckwvlsslxrv22rfs"; + }; + luaplot-68918 = { + run = "1lsc02qnqw6p2qamx2754ywk95yilq8jvn3vzra425iy675gl7kg"; + doc = "11xl1j11p52zxncgcmg1b8x7isixz4vissfxzppc6ndv5dvqk3aa"; + }; + luaprogtable-56113 = { + run = "16jmy3cvn7rmzf5i03x51yp5l90kmrdy0iqg8ji4z3xwrf0iq79x"; + doc = "1d0k83dyiml9abnfc3b9l4n6w18lgm37bijr8xj3chyv04v85392"; + }; + luapstricks-67207 = { + run = "1pzhv15ins6km9kmlmfn6qwypncjdsnvrv0qfqnp4zkbdy0hjxmy"; + doc = "0kpnnpq7njva8lrk9wdj0l27iwkq4vhg2w3crxvnfymnq094gklz"; + }; + luaquotes-65652 = { + run = "0cjikz6739jiqadp28zll72i58s20dm1i0q9kbd3q2y69l3l727r"; + doc = "19597kvgz6ggjfzbdkg9f5rg9qag9mrq83v0xk2w6f2k0n179d5f"; + }; + luarandom-68847 = { + run = "1qg41y50fmqq623wdc7rj17az8k2x0fwgjynq0f6213swx3nz3hd"; + doc = "0lzrcg3vywprj6jksnwr2abd9qj1vcqqqk0fz9nrsrg3hphn6v0x"; + }; + luaset-68883 = { + run = "1cnc3pdysh2xa8jrjn6kx7lx1avpr6x11kcgyhbbzizraara656z"; + doc = "0ynaizxiqh3lj1nnp8wcvd88z5jwpym2zcfvcp28nzwzhvvagccf"; + }; + luasseq-65511 = { + run = "1cxp3x3d346k7j6kh1bch4d83xb5ihb6h9jv8l98jcg0fp6zvy74"; + doc = "1pxx09mvdn6pymsv7959bs5xm4568nzx78g8ikyj6hm00zqphaph"; + source = "0h5zqaz5cvqgy5nghvazncwdxg6cmbv6sjlvp6f6mkgy2plpvbxg"; + }; + luatex-69182 = { + run = "0z08r0hjkcp51qzffqgf80df9445xiagi08cs3lyjfjn578z813b"; + doc = "0cgml9jqd905jnwml4bwaqawplqp9ga0qnc4swkcvjmq3fkij8nf"; + }; + luatex85-41456 = { + run = "0ss7c5x0x7sx6lsn1iq6lyyp6w0xb1iy01s1f7zf7mlb9n1yzffi"; + doc = "126y3priwz6anp8sj0296bnxd53lz20nchpxw74zphfpwrv4hzih"; + source = "15bc8g0pgrkqpb8q2dhb6zml2d4jwrripih9898mmalsjixy62x7"; + }; + luatexbase-52663 = { + run = "1zrwz661gilr4iizcfsxwmfr9dgx7v28lypaslmvp3zaf52zl2q1"; + doc = "118azb2x20gyaj42r5w0749dx8rzhhri1nz3szy9vv64h0fig603"; + source = "0vsg8q5k8l66sy3d0bskr6cv1f95lnhap3b9yl754x7ynv272xcd"; + }; + luatexja-69988 = { + run = "1d61fqb07flldrnzmdcbnqd6nia163qajahbmhcxqshcj86da4ah"; + doc = "1xp8xnqxm7mw6zcqkzjhrad255bsql92q665b0nmhw03h5xvyy25"; + source = "0y7vqwj3rpbhrr9z3if1p81k789sjgm5df973jsnbwd7mz4n53s9"; + }; + luatexko-68243 = { + run = "0kr9i78a3dw18rfws0xxc7kjd4n61xgzjkdlzb83yls4fyxncz1h"; + doc = "0k69i41pjfqifqjcjw4962yvvgwb07a46igvwb70xsrm8cxgkm20"; + }; + luatextra-20747 = { + run = "1dx2hc1md8csvb37lckxj4987zaldfd73c86y0ni8fzd4zg55s7z"; + doc = "02dl0skcr30hh9wgm7bkdv5zvx3czcdkxv3zdqnasdk0b7r7mqh7"; + source = "1yq5i4v2dxayhfzn1yw987i3zjm6gy4fqckx5kybzh8f6jr9167b"; + }; + luatodonotes-53825 = { + run = "15syf4k00shgi159j6ja182k24xhfw71zk167wwmy57y7kwm5cam"; + doc = "1jcybpcd500lzkwa33zdmsq3svb9hrh8f56j4qgwm9cq4wb721f3"; + source = "01km6y8ajgaaab9j1bdp4s8gj3iw5b7cfdl1yngp41ph22888aw2"; + }; + luatruthtable-68893 = { + run = "0pkw1q5jw8id57mcz2sr1mb1lwafara5kzvq3yrkmqp8s9ml5ns4"; + doc = "1i6nplzr640dik1rg668pai86vip0qgsfgizgbd7v4v7sjs24s76"; + }; + luavlna-67442 = { + run = "1hwbf0l2ydi2a5x05gcffw3p9yw8gvk4srihz7rsp6g7yf6qhzds"; + doc = "0wirwf96b50m5wnhfiami8xiw9rr12mx20kp4wqc1bnihxg8l2si"; + }; + luaxml-70117 = { + run = "1cdrh3mhnclxb140x6xlggvwwzd5rwvdr7655zkvrbdq8byp3wxp"; + doc = "1zv85256la5d98wklpgc27djazd4zpv5b7drd3zrf3a0l4mslvp1"; + }; + lutabulartools-67714 = { + run = "1vly69bgzq9pxapl7w1f7cppkx5yr5yyi1gxv0488m2z75522i8k"; + doc = "0iyg0vqm675ak5j1ax46zwq9gcl58vr2r861085zzxicw4a1fh5i"; + }; + lwarp-70072 = { + run = "0bfvsw734380l5g7y0m6phyd99x28ib4s26mim5smwlx13sgzvh6"; + doc = "00ix9xb95k3qqdaf5mcvkj99vz2p5mj76fg83hiw5pwbdv6p83j3"; + source = "009jifl4fkx89157h5dmfa658wj0pvzhgxff4krpj16mlik3xarv"; + }; + lxfonts-32354 = { + run = "1hl703cxwldq4ams7044m02bmnvm8vkym7xyz9cb8xkaqfyqp8cp"; + doc = "1lfrcfpn9a260bx47nw6msvksjzqjqms5d31nprc800wk2vb8sf6"; + source = "17j1kys5hrvkymba91kp8f1kq5vshc8blv5pm0m6yk6p4kdnfkyh"; + }; + ly1-63565 = { + run = "04g9labqzn9c10asy6nn5s6clqq2cnbhps9jf683qx5di1pabgp1"; + doc = "0l2dqyxd005y9k8xpca04vyzbjxx6vzr7by1yz4qm1dkccnjprh1"; + }; + lyluatex-66880 = { + run = "0zj0n5bgawhkw0c04crlkb2m8yabb0r49bysphgzabyl3rvd3i2s"; + doc = "01x3xkqv2f8gvrsl0qj3d2y6bkzmzbphzxcqy6s0f4rp5yj3dw35"; + }; + m-tx-64182 = { + run = "1znv3xc5462jmm3ydrcnfj1nj7dld9f617xw3fl2gdwn083ivawh"; + doc = "0svgf4a6rgisj614py6l9hm4ij7b4x75jn84s2ydbxzyv61bmmrd"; + }; + macrolist-60139 = { + run = "0yrgy9q7bjclww9crxzh3zhnbsmkjwncvvdm9nld2qfmg4spsis8"; + doc = "1161aanidazgapb9vl3mm9j0j0jfiny9fx6il3gbyprw6j7k61ad"; + source = "0b3hc75lwzk9l5nq804qbpmaxd9zlrybqdfyg9cavsvyjrjh87i8"; + }; + macros2e-64967 = { + run = "186qfgd6p825fjnwivvzvvpx1ydiiw4k4lkvs9gqvm5gmas7kcv1"; + doc = "0faj1gxhrc1fsqniy56c35jjzmxbpgyc27ai6xipbdp8sjdqm6pa"; + }; + macroswap-31498 = { + run = "0p35inib3yiblfhiy1cpvwahiqrr309fks7r515s21ybmw409v05"; + doc = "0w03lydl6vwslr17h4px8ddjld0dqs5zd15sysv0hvqajw2fs0kh"; + source = "02zfswma4h70swyy6znvhr54a38wq1px3f5ypz7zy1k26nqi25r7"; + }; + mafr-15878 = { + run = "117qd3a06lpiqimizj12lxd0vba82lsc211b46ags0mwgrqhcyz9"; + doc = "1m6y9mpsp4w9cnbln8pv1pn86vqj9piki4kg2q2rq5m9q0g57vsd"; + }; + magaz-24694 = { + run = "0ah5blj8qfjqgnmygn35r38nj20sjyi6yjci4j9b90d8pz9w7d6n"; + doc = "041cb5rqk5ldvbcqr8w7jnfi4krlc7g72ygq5j7pi9gy04d98mm0"; + }; + magicnum-52983 = { + run = "1bl7lhjk9glvbcn4lqanb3zprqigvxj07f5nm8zn9vpja90fyn6n"; + doc = "1as8l73v9bamajin552xb4xqs08ik8sq22kqdc3psisv4f874kk6"; + source = "1kp0d8wgphbh4mkv1qf9h2c1f2nkzqn9q8fln4v35yx2cay679qs"; + }; + magicwatermark-63656 = { + run = "0g5m44fcrx7c2c009wx3zzqyzdlygsj5mnznw2wmmkvqk13zy0n4"; + doc = "118zaz7brzg0jswbn0bcxd9w5rngqdj2qg46w5ac7c7m6fsi4izg"; + source = "0073lah6madc8cm5dmz2lgc11bnyfsmrhfz8wis7zlck9y9hk6as"; + }; + magra-57373 = { + run = "02zwkxc94lzi5wf29wws8ia863ljq9bq9swkh8k8318v5z4dv5ig"; + doc = "0q6ss5ff86ckqyv8l2iy6mrrigzz7yavizqcy3w5s6jhjadz5v69"; + }; + mahjong-58896 = { + run = "02dkqs06dgp74963awkyj7w3in66h91hx5rycix61d0qz4qwrvqw"; + doc = "0cxzzcngiz7796xzf0k1njchhw2p2m47kpw2fhrf1cqijwhw3jxb"; + source = "0ygvmg8c6yp2mwlffr52jf5shl0qh26p0xlfkj39zzabd8jv2ay3"; + }; + mailing-15878 = { + run = "0x2mgcmfmppzqlwkg5jd1zfyvfdjnrvnk8glby93s5nvp6i6g8c1"; + doc = "1aif16654381jcczmfn44k8v8x60clq94z4hcwjsqhai6s441hbr"; + source = "1cx0pq1qmkn6k09x1r8mx7dmpwvdvprmvwj45p1k7mmfcvq2834d"; + }; + mailmerge-15878 = { + run = "06z9cb353sl9q6a7jbvwwdd0zk3kw5xmww0r3sjiqampxib19i9j"; + doc = "1dk2a71x04nbc0rcmd3axhz8yikzlw9ab1nd5k1ki7pmclwkscdr"; + source = "1qkmlfc2dvjhrh2xcypnp9wansxrb9wzvniwfb7sll2bxjcfbs8c"; + }; + make4ht-70117 = { + run = "1akzga489x8acbb8hrjmc1i6v9wmbmi30rqjmgj32pcqqlgkp9r3"; + doc = "18kqpslbz18hbai5rl6nbwhgf7mb39nhhmpdzfnmi9nc3k5ff51b"; + }; + makebarcode-15878 = { + run = "1ixhl4k89mng2dqfc0wa0fq52xpafp15gghnyx28d9j1163wxr7d"; + doc = "088wkffs4b8y0clgcx1impzbxck8klm32dbf6p1jyc2vpi848irk"; + }; + makebase-41012 = { + run = "1nmlgv76zy1ajfzbdv7hizby3hhciw41s10hbnlbrfdl27w14dpp"; + doc = "1vxwgjk3dj853qbvy2fyqzni2qkkjhslf17xvxskq97w8fcqr13j"; + source = "1f8aliax01b9ir5wzk0bjhqzicl26xa63khx84s9haplh183qk2m"; + }; + makebox-15878 = { + run = "1v2xpiabjcgyi1d0ifpvzcll8y01lzs48bs19nalv37jw7hkrr4m"; + doc = "078bz2pism9harcyb9lq8kkrkq984zx2ya47yhpqxnrd85kgcxfb"; + source = "11gjpqmc6dzccv3yc539ki64hzpn8ns0zzjvanw7afbn5bkyrs91"; + }; + makecell-15878 = { + run = "0238il37zzshzl3qn50hav3wa6rd25k7rp5l93lb9g7r476sgvrj"; + doc = "0mf4jc9rv66qjnm3ldrpx5lbfw1yfqy0jsvg8d3wdcwvlxpcrvwf"; + source = "1vkfkfgjnhx5byipkrzb202w9jvmnjc2z3zjih6y61yizccwm543"; + }; + makecirc-15878 = { + run = "17y2hm6p280azgjvskyig34jyj90zngswcgxc7xa2h8pljh1fqka"; + doc = "035l3s20mvy61rnmsxy62k6iid8lxzwhbkyxa1hblfnmya7rs0xf"; + }; + makecmds-15878 = { + run = "1z4m1kg7zy5q8l0a5d0fr7jl46wrw0rbwkxq1d0lm2s13xdn71dm"; + doc = "1hqwvilvx61w47schnchlbgrj5snlp0lahsq5a1g2c1grmzpirnc"; + source = "17c66isk18ch47syhsihj96yzi1jpr84946gck7r8ivpmk3cmmza"; + }; + makecookbook-49311 = { + doc = "1abzwzsm2jh11qj2qr31bznfc344ynjrdagqayrcgifg4725fa0f"; + }; + makedtx-46702 = { + run = "0yir2j268vdaa44flps15l739ngv97lws6n6yk3w4pz4jn5gylyd"; + doc = "02ir7wf6v6znly9c36z8k0djrzpkd74ssphkggmp8fj338fk41cj"; + source = "0jwdsfx2l8sz8y90bz3gfi51vswyzmwdvfmnlaa2gplhcjjbv4yy"; + }; + makeglos-15878 = { + run = "0jp0207q1p0znw1w86g6m8ifkpgh3hi1yhkzq117kwl5ybswq8w9"; + doc = "18zl45jdpsvvldxvfx79ijldh3g03acw254m6i8a3dxgxj2p76hb"; + }; + makeindex-62517 = { + run = "0lpqnw6nr19p08pf52rcx1xvvsywkpf1rqrkjdsgrv55d1afsd36"; + doc = "0ixvak7xisfnfqsgr3j5idzja5bynrx747g2w0my9fl85bjfjbj0"; + }; + makelabels-60255 = { + run = "18gjnhjvhaa6bdsangr8fb9yms3kq27wa7n0pb1rnqd8l00kp0aa"; + doc = "113dyl3k5c32r9k13bm9kndmbvq0pm9v7k94d9y1ba7xiljh0aph"; + source = "16dcm1mrjxdxby7szqf4h534w9g7z5klx15jyx9s568c4arnvfyj"; + }; + makeplot-15878 = { + run = "0qp0qgcli40hd2dxgbd8fv9s03r81dlhh48pb8la9sh28qrb9i51"; + doc = "112chsx5wxrc7k4w3qzf23pjgr0np1ip1ylqs2igdcihchz6syyd"; + source = "1zksg7iqb9g6my9zyyrmwkhx04qy0118lxf60cm00njwmsi8w1pq"; + }; + maker-44823 = { + run = "1fymg22y0w2kghmqh5pgxkrncdcbbmhhxappc72g5q337hcky0xa"; + doc = "1yz72c1ghqjs06nagngpp2q62gh67c3klwm73bcbc090vdfkw7mf"; + }; + makerobust-52811 = { + run = "0nm751w11p7cqg8ihckn338i6908kcn513644c6a1qc9rg847hlp"; + doc = "0bidk4f0q6486vgwqvifzchkn0xi1l9j65yqwgcdnl3yg6vamqzw"; + }; + makeshape-28973 = { + run = "1fy1ccz3707f8wxilh95k8sc3a93gl93qcpvpxl833mbkamkx3kj"; + doc = "17dnkldg0v2qp3hdy4bw1k48p8xx3v566pm088g8qb0df6kx4217"; + source = "1yd3ssh3cpy54gm0nkp2ah0nqarbnk9hqw2kkwdf96dj8vjlsgwd"; + }; + mandi-70235 = { + run = "1v4npbn35qw9rs404d6s8ajyc9fn3blypr45bbp282wlgfdmg0vc"; + doc = "0cvk0sx0dy4pnyh8r8rz83v95jkjx141kxmspkdyy9nxf9jixn6c"; + source = "0nz6nmlrgwj99qsshcblx4rjb64gwdn4anjp85gvk5hc07vf2q9b"; + }; + manfnt-54684 = { + run = "1fzfcvifh013xs6dm6xq2gpvmf3v0qn8scrbjj3yak2ba98bcy18"; + doc = "15rs74sfnyq2k27bs3dvjiachwamima3q4vp0dp0ic95as2n61gp"; + source = "1v3j47xa7k66dadz8dyy9gm3k4s6465zgqpzb320isjpb77p7r48"; + }; + manfnt-font-45777 = { + run = "1cdd2a3xj00bwsby9z5iz5f2iy2iwsjl35gcack9q83hacbf3ssb"; + }; + manuscript-36110 = { + run = "12r1b0hqs1kqdxvyg8lv8yrsdycfxs03j0lwfmlhbg6lmgz32pss"; + doc = "10dczs60ncdk5z76w5jxgis9m9qilxp8xi53gixki4i82yd4l9va"; + source = "08fpv1i9vz6fbf9vy48k6y45xz67kbqb5f30c8pxbvyzlicixdjk"; + }; + manyind-49874 = { + run = "0c5badlrh2321958z75wi4ggb289hnyy0i17bpf4qw9sjym08pz4"; + doc = "1x65nnkmqp2x04n9rg2n8yh324vdbcsbv68xfbb3ppx2462wrls3"; + }; + marathi-61719 = { + run = "04nf43i9z0s8hndjwhfdyysjxz8k1jargsrx03k19i9lihdjfjs4"; + doc = "0ybafny55hvpv4kia7jybybjn4vq8f2g7h770xzq2b1mimyn7dkc"; + source = "1ja8kbhsbhkcm0ig6954l6k5absdfppikzwawifp33dwpjkk6w0h"; + }; + marcellus-64451 = { + run = "13blr2k1vk0kwac3chplddaplsjacablkky68yq0wccdrxhbxvdr"; + doc = "0sgcjmkgailx7nvav1gs370ywi61ysmm1snz1f976ppdbmhh1v3s"; + }; + margbib-15878 = { + run = "114ifix2wa74ix9zz1ml9bpyd0pqzj2983h29n3h425yq98aiqs8"; + doc = "01zam8vg63igvhdzf3gwgm3gjrnd23i8ra2cwdj4w44lcvapdlss"; + source = "0qjpbhs7g4qdhna3kmlv4pg5fk0b3xwpwagyvnl91gn3q4aml4s6"; + }; + marginfit-48281 = { + run = "0x8ias8bv1zaavin929782cjvp7aw94r18lqvv10v3vgq20n7kjw"; + doc = "1cj1fidjvvhhzn9fxbvyh75dfb78wxi83bdxnwbpc6rf3ax5bl03"; + source = "0rrn2lrqg3a1yz6l88qkh8sljr18p1wx1vxyrzg04pzj21lw8kkh"; + }; + marginfix-55064 = { + run = "0arldbc20d1sncwanx3szam53yv1d5wxgihj8lm4jmda1858bmgy"; + doc = "0kk9cghi0y1zfk6ya3pfs08npdy7v95i4db5a89v2177cd6z7a78"; + source = "1k1384nxhiywlvyndnvhj6a35q433ddc019ckf8al2b1ngg13y0w"; + }; + marginnote-68204 = { + run = "1jg3f25jhdywqaxy4qimxr7x0kxjs279m7a3kf9lvyj6igcijml3"; + doc = "1n1kswzhxdx7b47l4gf4cbihvzy54z24gg0sz4syvpy6nq23fs0b"; + source = "15cl27n5q30i70ad91ajflrrcqb5wya1cb400jh82b9k7a6y8ych"; + }; + markdown-70583 = { + run = "1y6gqhcbp9z6wc39704x6mi69wlq3b9zkpbjf898545qi6l08s3a"; + doc = "1y8l6y1wp72kjq4cymckyfywz8nz44rbyrw2bj81rp07i1vl3r3x"; + source = "18s9206jpgwsg9b0k5gfnr9ighm882qcyc67ymardgb2v5hzpszz"; + }; + marvosym-29349 = { + run = "14i2alqxpz0imgdlx03gyg2nn56wrhlc0rziyx93h4ya9nz6xzbl"; + doc = "0qyfyz8qfcchnf78r71fp5p16hmsrq6xf54g5mnwjb4p5ipbd9np"; + source = "0vbiq807pazw2c1ck799w8sy3q8wcpb6smmq5qqw4nqcxzwsxk78"; + }; + matapli-62632 = { + run = "0r6xibqz726d68cli8izl20r4x2ncvrmlrjb711jz82qxbgs9kvg"; + doc = "1cmyrnrijghjm15lhi2isza0dishbll3k4hpzq84jjjbcbs4gvyp"; + }; + matc3-29845 = { + run = "1mp6k50lm020xqrq2vwl9xyzr5jwp9p85c6ng3k22g4rqsxhrb3c"; + doc = "17xh063gahp5m83vj6x8waqwvf4hrvg3wi80z70r94bag0nqqf2v"; + source = "0pq4l1ays56ry5v3ig76h49kn7hdk1gi0wqx9b29vkdvzmzrmq02"; + }; + matc3mem-35773 = { + run = "1asybbjj93wpbcn577cqkbfi2bkiq2hzv5b2lqs31igawaa0vdhg"; + doc = "1fgngv22falzvrsynzzj51jaf4gfcw88jwbljywixqb9xcg9igcm"; + source = "03x6cm78yhgfljhcfrvn49favgf6h11w96s9agr96xmngzh4z40m"; + }; + match_parens-66681 = { + run = "1cp1qidfxnrhq5hia9z3nm4ij2g0v1rxs4g5fb8srmjpik10ss16"; + doc = "0c5lcbkp4f7c8dx2nan6bv6cwicgk1520grbxs5k3r21sa2m9p8i"; + }; + math-into-latex-4-44131 = { + doc = "0k11j92h9hpxnyciczknhl83b05avc0rqdnwn82ssqi1k3qixibd"; + }; + mathabx-15878 = { + run = "0x0amwdxr6mh6j1m1q6wawljzjf1683xp1fxfqyxmsk0spx032mn"; + doc = "107fimmxvfmdjdi1rlk0h0m88q1dbc9q1qwqhx1fwfjwdn62kvsi"; + }; + mathabx-type1-21129 = { + run = "026pnrn2y7zrl8qfhjv504bjk114z6kd6ich2ic97l5f3lhl9nj2"; + doc = "172dhvsqql6fk2hfqcw19bxsqwqjfd7376a5wwzcvdgvx44s294v"; + }; + mathalpha-61089 = { + run = "12fsn6wsgixbpnay1szkmv16a2wfsl60nkcbyjksy1j06gr0yf5p"; + doc = "0ryvikvngpgnqbcf5mp4g99cg0r72x53p7q6h333vd3s2qjah7x2"; + }; + mathastext-69237 = { + run = "02zjad6562mfi1lvdv6ha0var1p4shgfq325c8x7dsrnl12v788m"; + doc = "0r7f9m237crb9lw5yg5gq1d20113fq8zpcf0lpr9s4dix84lyvf4"; + source = "1ghh502n227kwap1ij89xj0i6jc518dvdg2cbsi5zmqwz7m1snxk"; + }; + mathcommand-59512 = { + run = "1mp9g6q271ymx59rq9lkdaadi7dwz3p1d0qi1495rrn5d9fpccgy"; + doc = "1bjky5x3bgrfmfripn3dmabg0bg02h6xpl3s6qncqgxs0bnfz2vs"; + source = "08l3gbrxw3aa028820iv2l1r5alnvzd2wjx5fylxs9lhrwhbmq2b"; + }; + mathcomp-15878 = { + run = "0ciipbbi89n9aakg86czfmasfnx0k6rq7f8v0wkxk3zk2m441cb9"; + doc = "16q0b81y748qnyc2gycrb3jhw1i5yphmf6rpivwikzpk2nrg3ndv"; + source = "0xdivrbkhn1fh75ws54i2vxgx3xqaqkpfjir5q84vwxgmxfv4cja"; + }; + mathdesign-31639 = { + run = "0jd7xfwavfn4dsss35splcxrqj6qwk18jw7qgkwshpifp7m79l2v"; + doc = "02fsi2hinjfcf4pb0r1d0r82s50734srpkk0i9c566zx3m52v2vf"; + }; + mathdots-34301 = { + run = "1wbxvraw5lp77chgzslrrz022zgqn2fhmzk85cn7ggafip1hr9s1"; + doc = "1ldl9l92y893dg2ksqn6n82w43a2l8pylz3iq4glcphalhggydcb"; + source = "0dkpj8cychzl7gg4bp41qqi3y50x0dyz2pxanfli4a2anh2dy06q"; + }; + mathexam-15878 = { + run = "11rn665k5vg9w9rfgcp602v6cg659d4c22gikkgjpslc7bzrlrkh"; + doc = "1lv8zdp1fajq1nms16v3nk7f0bc8az525nnjjjzags4rpl8wkzh8"; + source = "1p0lalc0ny1zb8gc4bbg7z9pm6airbg63l1k0qqmwg10wvxpsjn9"; + }; + mathfam256-53519 = { + run = "0s97k46ysqvgs6a8aq5q8iwab390s90drd3g0ixd8zmv9a4hy1z2"; + doc = "1zk42fsknkbzyx4m7xn3yjw9lrdvf6m7crnqsp1q7qb2nv3hn1br"; + }; + mathfixs-49547 = { + run = "1vvyka8kilv92hfsx8ahb200cl50kp1r4qdiaqgzkjag5kfxy1ka"; + doc = "0gbh6yicv1mf0llfipqymy930zpq9jqc2ix2gfbjdh909l1y34rw"; + source = "1k49pdi4kivk707i7fb2banj0qaqc5qx8zl2l8b41i6q2ir90a4i"; + }; + mathfont-68241 = { + run = "1yh9rlhg8lk4a4haaxlyaa76ij0i6rb4zbk6kryp71ks6hyq7vny"; + doc = "0wsmsimscrkxbyx1mkjlhkiv3xj66q8r2fiwk8bspx6zbdr7fwyq"; + source = "1z7k0x9gcyls65mfgn30dhipqwfhn78hwx51gxvrn7z45w4h52di"; + }; + mathlig-54244 = { + run = "0pyaqwr2h9knxf1axi55vm6wr9xj15d5j5pagb2011k3b830f91b"; + }; + mathpartir-39864 = { + run = "1a934cglbiahnmqxjg2695rmp8fxlg3m19zka8ayc743ckv92prd"; + doc = "1aw9sbhgca7hnshkd2vyzf5lrq2xql25mwp9qyishkzq9ayv7p13"; + source = "0bn3zragwja3hh32fbrsdsswlf07a8i6qrpnv2c1c47m86xk3764"; + }; + mathpazo-52663 = { + run = "05j5qgq8fralghp5wkx6bha1cm59vha29ppq96nllq2k2nqhpi3d"; + doc = "1z76cb473nb6r0vjjxjwiymnk9wsf7pnycc3ad3ba4vd3yl1827g"; + source = "0lmyc1q7jswlhlzz4fd6ia407jj4pzi7wvmrcgfyw20j2nghfcgp"; + }; + mathpunctspace-46754 = { + run = "1vlbw77bqi0qlm6i6hk0kz1syjzjk41mmj9nhnsbm3l8f5fy44bp"; + doc = "09m2w7pzcahncazlw16c0bh6v3xgnm7rqf71lpvl8p33krasaj9z"; + }; + maths-symbols-37763 = { + doc = "0z83qf1rz84cr0b1zvwlacf24pc5r8dn1cxiiyl0xrqncl3279ka"; + }; + mathsemantics-63241 = { + run = "0vw14g42f9jhnb4k75qlighsngdl9kkwp921iblafs39zlx0fh7w"; + doc = "1lkm8gysyim4kjggwm1dqc9158agxng3nd9kdksyxlna89xrgq96"; + }; + mathspec-42773 = { + run = "0gspy6kjnx7bs5dxap8ym8s0k9i8hczi6s4s97y7av7vc8j1fb5w"; + doc = "07mmfcd0fvhrhafsfk4sb4dvs5x8x1rjk1a2xl20kwpfpp8l1rb6"; + }; + mathspic-31957 = { + run = "104vf0cbxhfbgabxjpypyx16fbpyi05k14dhw5ynmlh4rv3ck7li"; + doc = "10j7z7yb5fjqlldf8w5sm5kic6v842dijd7f4v0b2q5h1gbhwyim"; + }; + mathtools-70607 = { + run = "0qkjy4a44z63igdp5gvnb7y3kb22l1x6v70frcbiwmhyagyqa5ns"; + doc = "1q4bnkpyhf050cwla2ns0scwxjnbfxdf5jy5z8l5s2dxm5qrhg99"; + source = "1lrxhggn7k6hma49rpq8zkfqvd86m1c45mdh1n3cn5nk8b76lg7i"; + }; + matlab-prettifier-34323 = { + run = "1q7i44n15pvpc65k41nw6z8gxj0nwk39mhafnmsibxh41yyxz9ns"; + doc = "15x6lbj54597f8wm0vgf0yy0iwh7g7xv7cnllnay651zwg3z7h9l"; + source = "0vr8cll1v3hgikrng1rilqb5d3kbggcmdy92hsdnip7dr0hxc39y"; + }; + matrix-skeleton-65013 = { + run = "1ihjvzsxaj5282xc15a4fw6cqj159m9hpj4hblfmjgjra5p597gs"; + doc = "0109ify7qqbdrgrw0a8svdaqk1amm0njvawgh1ch8z7qszlpg4c4"; + }; + mattens-62326 = { + run = "1az5ld75djha5949bl1wiqbm5mzff77cvcyyk11qjvg7pjwa3h1z"; + doc = "0mqsr5a2bhgrllvcqp03aacvsp7wymqnvsk1zswwscsrjl9dh5ka"; + source = "15ww1gl01yfaw7gcm66z8zd2yhhnj15pw53crj6ma6j94akn1zff"; + }; + maybemath-15878 = { + run = "0qb9nr6m819axi9qn8i32fynlmkjvyvc45gyp6pckwj54kxzx06q"; + doc = "078s9v2bly2q802wdidzpvwaqfdkz00wkgyhn6867bkbq89g4aa8"; + }; + maze-65508 = { + run = "139hjw2asv21p0m7qrpi5liikgf68kmk9v214njh107gi3cjl59w"; + doc = "0h1lcq6xipzsw15cycraqjf4vckzqprv7kccls640y4jd38g3g4d"; + }; + mcaption-15878 = { + run = "0bfcl1swwgz83y4f80a1kydmxhdyqxld0d5cjfgxfhnn9dxp3wc9"; + doc = "1afldwg6dghvkwd8gik8dmag4g2pb6ag3aks26qi0ygph05j9cwz"; + source = "0i6sd9vm1pn9h570am4lkr2br81bhmqqwwvymb8r37xpmmp9yvsk"; + }; + mceinleger-15878 = { + run = "1a16g83g9wd5vdx70bq8zbr4hwm8fk46dpsna97r9fgh44n85pv9"; + doc = "09z7srskh57mz055ywyxwg4zcx07vq36jdy8z9w6w74af4icpll9"; + }; + mcexam-60481 = { + run = "0ixgrxw0fzaqbkif05lvd3z6zlwhdlyhfb372b98ypyfp7f7v1mf"; + doc = "0wi7zjiw93hv74scwz4w4prmy00x6n3ncwfrxjyxn2p7i2hkws6x"; + }; + mcf2graph-70167 = { + doc = "15pcw5zy9ghrpw1q9b6sck9zvjdr6py8j822zvdq4ca9qg05rlml"; + }; + mcite-18173 = { + run = "18did9achsp32k7wq4q75a9q43jxdm8k40q41j242gndnkn8axw1"; + doc = "1gdsa91a4snk3f22mh06mr811b1kb0vpi30ss84d3mrnsvd1p0ha"; + source = "0q1bv5nx9xf6r1fvgnxb1x720dm0xqrqg3kya0504q8qb0kgxqfj"; + }; + mciteplus-31648 = { + run = "0xbk5zrd9mbk4xid03j7a0c96s311rb1vjawhvk5waqw9y6dn476"; + doc = "15aldir7viryb2f8vi0a83vgbdwbp5gcdg0slhp6j6ka6xv7ayhs"; + }; + mcmthesis-69538 = { + run = "1pz460nrypf05knd6lbk6sggpwsn6cssv71x7mpaz4557na9xg1j"; + doc = "1mzfhkpahw0gc1q3b9yr4p4ya82y0y57ij3n12i1sqk7h4m3m1vq"; + source = "1g7i751plyf1v4561z827xkk586zn8f364xapcfvky54lyw7v9ny"; + }; + mdframed-31075 = { + run = "073gcxy2s8mskf4mvvs1jr8fkijci1ayg0b5r5xzcjw0s5azny1m"; + doc = "0m8k7h5c0h1fdrpdf2a4vhgr8saqspk81c0cdjm2cmbsfm8zlc3s"; + source = "0p96sl69p5342yy9fgw5cnkfi2xabdwb74mw7i1gbxvj0vx1f2q6"; + }; + mdputu-20298 = { + run = "1ihwhdcmk3gd081yn4wimg7yadvxkygybr3bypqrvllwa92lay3j"; + doc = "1hsd74svpxxmjps3fng679hq7dm35mz9glcwwhk1carzafmm2ppm"; + }; + mdsymbol-28399 = { + run = "1rckczggrdd977n7dr223zfvp7dl683p7d6wfija8ln4d1ll3lz8"; + doc = "0v8d92kpka138yzy4a8hg5yf6zrz267hhsakpm2f0bamdzqkp4kc"; + source = "0xh9d4xpdyacmb3kxmqh71qfx0b5qbrgxrw3fj2nh2rzh35smsy8"; + }; + mdwtools-15878 = { + run = "0l40ydzljgydp8qfq1lm9v8nz0mrz4zxpjxicypn2hx7bxs2b9rq"; + doc = "09d2ahrpksnjd4x7gqfx7yw51ivfpv4pwi6ms5c394c3v30xak94"; + source = "1w3sjwa0n3pyn33k4lwnzcswm86zj9givshk0raq2qdb4znvxsk4"; + }; + mecaso-60346 = { + run = "1hsgs52844fv3yfzhylb47hpgjdfkx5wvgx1ihslkg9xm432z18c"; + doc = "066zg20m9hnm2h0bdbzfbxcjsgpbm52l6xwrszbl2ycinqf4rwdx"; + }; + media4svg-64686 = { + run = "1l8ncn14k3khzq4pvy0var7j7nr78vll42bfz1m3cxi5i144ygn9"; + doc = "1ws9j415nkj68ypgmvsc3384dqzjrfab0bb8khz2rqq98sv6129l"; + }; + media9-64047 = { + run = "0891l6dfz89fqy35svnk1rl6vjwhza86km8vk85n9wp322vqnrha"; + doc = "1v0fxv93qc6nj7rskf7gd8ra8i7sll2aznrgs7q2bml9xnggvq39"; + source = "1h3p9v4p4kr35ixpwwv7g8fwgy3ky3haa2ypjlpzbci7jcb0ix5f"; + }; + medmath-69510 = { + run = "17i7sanjgagb303q608b86a77k1p6zc393mrvkcyrr8cjwviy9wx"; + doc = "1306k93xy0sky7lkysikiz2zvd7a4lkpv99spifyi31y4jxzlqrp"; + }; + medstarbeamer-38828 = { + run = "1cndcpdvkdvjx07rfan5dd7yg6sv532b6vvd97cm7ag2g1aqcilq"; + doc = "0i995yaqv91h4iv3h7r5m73vb7xvpjkzrh6nddcjjcsv2gvpjcxi"; + }; + meetingmins-31878 = { + run = "0za2aqj7gbmxxdm3hqkq2sqkhl3c1q8a3s778hw164dfpi8jx85r"; + doc = "13kqp3561k9pcz7lmh7izmxw8iqq0s1jlhvq12dh00wvr7vwr8dr"; + source = "0fkgaqldjdry08wl8al8d0kppbsqqhig83mgwfk20rzpji298b5x"; + }; + membranecomputing-64627 = { + run = "0k8kgr6rlrgpmmylf3vjjjiyis49lm1r1hnvb2m2k3481gfj7zfz"; + doc = "14hk6rw8fj040vwpqhqajlbzlp7g3c7szprssxx148j816fgi95c"; + }; + memdesign-48664 = { + doc = "0aij1b7l1kb2x44qn33m39k0kbhdrclmr25nmvzfn6yw42lh9fz7"; + }; + memexsupp-15878 = { + run = "0h3n1bnvyxr0ylg05fm819lzhzd7kbip5p5mr9kc5af8pd6yci9k"; + doc = "04zwmw6varldbg5cxzk4bv8mbh80i9gdysfxpn1i4xb1la38b0bf"; + }; + memoir-69600 = { + run = "0zfab6dc435zy8cad1zi3f6d29vv02ns9cpgl3z14cx7qcm62c3g"; + doc = "1bz0x9ph9l665rsmbhdwzgvfm1y1nxwm2mqbxlz4gjaqz7wf2k0l"; + source = "09c78l1akvc3x98v47hwsky52wrx81y3dd6v765s14jjr1qahsx3"; + }; + memoirchapterstyles-59766 = { + doc = "0jxd7sbh5vc3j5d5jd3zmyg58kwhy550l5z8q14b4msm00fp6z0a"; + }; + memoize-69522 = { + run = "1qdq26cms38kjzws2712skwdxajc3qa9sw3zin0h5776lbbz6q7x"; + doc = "192jsgypxlhldfn5if2zjs4gp2a4b4p3hwg80c0hpz3qlvxvi05q"; + source = "0xw8207wn9h7yr6q378631695c5m2qars2adw23n6v0fxcm95izx"; + }; + memory-30452 = { + run = "1zgfjz995jbji8hycizbp614dn0g13rimh9csgrga86f1ivgcpmx"; + doc = "164nnsi25jk25p3kh54w2l8zk0rri50p0s9g4r5f50c3wzxi1g4h"; + source = "0mhxxhiqq5miqskb6c4hmjdjki280yyin2dh0md59ai1aprgd4p7"; + }; + memorygraphs-49631 = { + run = "1ph43wp3h3pz5hh6dp3n6dzmmbn0fw11w3v2fjf6d07a73jqh97j"; + doc = "1k8gppgv5kkx7i799mwc9iclp2rv9hgdk2bwnqcyc3j3rmnpyiwa"; + }; + mendex-doc-62914 = { + run = "0ab3hrln124gwvgsszd4l4jjrc705x3wbnmrrf27rx8p6fcwwrmw"; + doc = "00m35j5wkcsyrgp0h8mf6cx30bjlhv23szmclpls70af2shcmzba"; + source = "0sqp5s98lzdjnvpvw3hkvclrz98xzx6v7zrlag9m1im7k2ljlcvy"; + }; + mensa-tex-45997 = { + run = "0gg38ls6fil67d0ln2yfjbpi2r6cbrnavfl926jbpxjfh4qxvqcq"; + doc = "05krm8b1ylr8wjr0xy361whm0kn6mj4y6yrycjj47927xnij5qfz"; + }; + mentis-15878 = { + run = "1pjpgn0lmyd7y7qbri8f7s01a1akgdif0s9v56ia2rsimn5fgbzr"; + doc = "1r6799zz3y0iw020wwwl8a7az2j5b894i7w0pqqvsq05g4g00fcs"; + source = "1ajy89hkvcika3aybpz93myylwlgfilg1d432my0jvmsa40ikcdc"; + }; + menu-15878 = { + run = "09mnnssvb83l1jhjbb4rb6lbzhwf4y4y0mq5h36dj4h2hp4qfi55"; + doc = "1g0ihkjlnf9v90x39mm2jn2ziijildyiqfda5bkm441pjh40x0pc"; + source = "091a0akja0y153lhhplb4v0n4z77qvxh9nchlr0v5sm9bbpvpiyd"; + }; + menucard-55643 = { + run = "13dirr45ysvi196wgsrdrcxspynzvrk88rdacrfq84l4imbsh683"; + doc = "0sbgrk1l2b9mdhiymwvp6zci4nb86rn2r06chdbhgy9lzija4wdv"; + source = "1pg4c26pij7p218a0r6mcwbmnsgdj7i63z8z7gq71i8jqpfcmlrg"; + }; + menukeys-64314 = { + run = "0039xx0qilmji8ch0i488hx5rnhf1brk6n5k0c7vg7jjs4xylq7v"; + doc = "0a6fnclh6gd1n0f11dg23gykhsr399qmplq3a43wqqgichsn2k2l"; + source = "1na3y08blykp1bs4bqrjx1lmmbiykfly00n5in8x6h0282q031i6"; + }; + mercatormap-56060 = { + run = "1gw28rgsdllh8h9cg70nayj12aqw356svv34lhvfj5b52y7ykabs"; + doc = "0v9v54qz9m9hnfid2k9xl7fwgwhjxnk0g7wndxypd73b63mvfhpi"; + }; + merriweather-64452 = { + run = "00sy3iyqigbmjz7v6lf47f88mpjwgkbhrnp59x9xpaqwming9fp7"; + doc = "0z3k1w905vlawv5lrmc55q637bfz17cjndlk4gh868gqv5j288v5"; + }; + messagepassing-69123 = { + run = "0r8qfwyip83mbvmfgvwrlypms90g4da0qf2ka26pki9r3cn9syvj"; + doc = "0vicxdrd51gmk8627k7a1n83ldj0kgrzaxmwmg5y99n619pagxr3"; + source = "1im9h7n2dpqdc8hlwf65m4ss8y9k28iaw29nf0pnlh6qabzqgl7x"; + }; + metafont-66186 = { + run = "1kw37drhnk7qajmivvjwdrh5awns571wclv8b354zk71axf6cr35"; + doc = "14fwpwp4kf7x7amhxwjng2b5qgqarhrg1dhd7zds2xxmbipcnxga"; + }; + metafont-beginners-29803 = { + doc = "12hhvlnvh8dj1396242m6yi0341cina7sxrv7pwzqxzzahwdvmgm"; + }; + metago-15878 = { + run = "0km18bf69rf3rs42b0azc7i8bypy14201vk13yf5ahsypcjcgqns"; + doc = "1bx240q75pq9v23gz82i26vrp7z4cb00f9nb3cvvknbndk8y7hy2"; + }; + metalogo-18611 = { + run = "03crm3sswv7mz5akghqvkq1zpiy9jdpy32ivwwmf14sfrrri2cz7"; + doc = "08vgbmjhynb4ramaj68i27hpgijg51j80lm0qf1jrfpapz7lrzij"; + source = "1ak8qbcbqgirljfwhq7ylxk1w2frxfkjvadjq00cclj007idr3x8"; + }; + metalogox-70496 = { + run = "11q1i8cmfjw521xzqgw27vn8bds5var36nacik8ffflgb3f6j36g"; + doc = "0d5zsshzj575y5ry0zvm39dhigcjf8mfh4ficj084ss5xgmf2qyr"; + source = "0pkbi2f6zsx4c0wv501kkia2mz6cgbcnln9zbvlnrq9lk21jsd1d"; + }; + metanorma-55010 = { + run = "17vg55m4yj3xcfgvmm2kw8a81fblwykgnbcn65drll10b89wx6xp"; + doc = "0z3mr4aw6gqdj4621dlghb4bsc5i44mlg81w81by98783fn4xdyl"; + }; + metaobj-15878 = { + run = "07p2r8975ps1ricqralyw2qz1zq5lmaaf50xqd68qwxmgrs3541z"; + doc = "17kqa3h13p9vba6sa5s29v29gkm0zbm5wngb0zx1lxwkpkgqaqv5"; + }; + metaplot-15878 = { + run = "01blkf01b89a2f1c7fw6dbp49iw9qw94krv1hiqg7ckkj8j06sp8"; + doc = "1fm27sy0zz3ppzz95bngipkq4m498g409igx4xcbkmqaghci1pin"; + }; + metapost-66815 = { + run = "03ryd794cm4srjmq6x0vly4jav0w0j5p4yhvlqvsnkk1qil74nrv"; + doc = "1ihf0m9p73k247mj90hns4afdqxz25yvfbmpxrbzi4w08q5rdxxk"; + }; + metapost-colorbrewer-48753 = { + run = "154yj9pmwlmdq91kw5xllqah7pkccayv8r1zgvlqgk472x66zrzf"; + doc = "1y0ml5ldridhcg8k811dqq2dh4xsx48cwfkliygq0q1kkl34vdag"; + }; + metapost-examples-15878 = { + doc = "1rslyjnw27b5br17cbf6mjjkcgyr49yav4kw12spm3vdwyzb7gxr"; + }; + metastr-56246 = { + run = "0ci2qs1iyyn55zl6n12yn20xsff42dim744sjkxml7xad38vpnkz"; + doc = "1jhvf4xngi5mjycbrbijn72p8anx15r1n6vh5hrjai95xp9jn88a"; + source = "12rv9fayml2kjy7rmdh6d7g4xr2yg3r5ngky467y663p893nxk0w"; + }; + metatex-15878 = { + run = "14s2my2zs3sx3hy0vapi8zvxb6d15fl7wqsnis58w11a3kni4f1d"; + doc = "0z0s4ys1zsa2s2m4slpjdikzbkw8k8m780gb5mh2j2azc7yxlsdq"; + }; + metatype1-37105 = { + source = "1nhbsn33w6zbzbvi3a32ng6ib5dbh0vll9g2c5ssiv1ysxqrg6yq"; + }; + metauml-49923 = { + run = "064cyc53izb7fqc6xfk7pygr2k7wqivx29rkxzrb7sakafwmnkq4"; + doc = "10n2xhjfysqihmkrzgcg96vsh0mh76h1jjcxx2nghydihjdggzjr"; + }; + method-17485 = { + run = "1aafzyca2l34p8jxgdhwm54yw16znd1085lx58wrm2fjw727946k"; + doc = "18sjh2kvy1f3c72w6k2m60jf60zbz7bz91xgq20wjigfagdmsqkd"; + source = "0ckvvf1h80mlzyqbd12yagfl8hph9l7k35mghr1ri4k317sm3ls1"; + }; + metre-18489 = { + run = "0vfb01vwb6x5wf4sq5j1rrl3jpzw0mwfqy1jkkirxkhbim5gln25"; + doc = "0zkr3wymlzxnk2n9h6nz65a1gsg0k4pfabdrkc15wfdn0yczicj1"; + source = "15cvprv3zg5nfsd5l5sj2s2hgx5gljn1jqzgcr4lpadpans14pkx"; + }; + metrix-52323 = { + run = "11hcw66f3r4rvxy8h0znwgrdvlfvibc6j73pcdb3bvyywb3774gz"; + doc = "0hx74wi8vf57ly8yrzdq6x5qm8l5gi9km4v0ma66i5v40i9jwgcf"; + source = "0i0xzmhqbs91qpznbanlhrnqvgxc45llk0wwb4mfcvmj622d47bp"; + }; + metsymb-68175 = { + run = "0b306z77z64wzk5smm506xsv6jbr3y6ajwia12i06fdynx4jajp9"; + doc = "01x1qms8mh1523vpc8ky87x2zc05m0gr31qwni60k3byx9zi9blw"; + source = "1g4kviik4qg9scjp7mxaf3n6kzdm7z666iqpbyz6dmkgsrsph99n"; + }; + mex-58661 = { + run = "1azsp6n01qhph2my75r05sby7r3lsafydsxv8f5532dkb9r86p5a"; + doc = "1nkr92d761c7yfb9aysni3ihidzw334w4180d6r15k1iwinrn2al"; + source = "1nd7p7ssh79rrpv5i0z4246cv4wmjgy3by66bbrv7w2xhmh5819k"; + }; + mf2pt1-61217 = { + run = "17kjgjbjvwnh3cn4cky3qj4kaskiis4h2zxd0mmq5h87qs24zj9y"; + doc = "0iwnr02wbh36q9nfj8jxc5d5kfc1wzap5gspix8n5rl3yzi9xgk4"; + }; + mfirstuc-64743 = { + run = "0bxy961jghqcyf4pkd3pvgri2dq56s0nnk42ar3vyha4lj0pp5cl"; + doc = "03nfbjsk5yvjzn5p58rq2s8bn4a982vq7riqdj9glr480cmzbkq4"; + source = "0i8wfvdjw1vmvngfj7mqpahx1c8gjigr4y51yhz2xsrxhlpih5jh"; + }; + mflogo-42428 = { + run = "0swy70pm0pyqzy1i5wf5hc6cbzn91ihw8hwh9kavdfawb4qzjxxw"; + doc = "1xqk3nwpi3drkzrnr172i660yx541lxxw3wps0jqbqficqn4fiw4"; + source = "145hmbxr5x5pj2whra9yify9lyx0ak1az31gvwr3gp5klcmna8p0"; + }; + mflogo-font-54512 = { + run = "1dx834zwbrwgp2v61fagf5m4zmxf2qkhib4mkpw6iadcgfqv6x7f"; + doc = "03b3qg42axqhs1lvm3pz69m4jmhd1385gzg1sw8bqyajlrdnydyh"; + }; + mflua-62774 = { + run = "0ngbhdh8hgpjfqnrjlnp27x3qziks3yf2zp1qq7r4bjfa5jx9gr6"; + }; + mfnfss-46036 = { + run = "1m0yza8nw5r3ph8k5nihgf93vf54cb0cnw4c5gkqy0rsd23hk4dd"; + doc = "1ppjjma5dc5i9ly5y7h91647nw9c2y9w65k0dn1ks92xsvnzf1mv"; + source = "0qjz8dz76abwqspab89z3a50nndh6gflanr8hn31z5fra3kzfp90"; + }; + mfpic-28444 = { + run = "1r8xq6npgnlvcyimi0xlqmqa140p94m5x832x0nfm9d550l1zrgi"; + doc = "07h8j6afl5sd7hz4gw0rkix1c39vdkg8376jgi7ypwvk1xr0wgp0"; + source = "0ynnc1p2xihrwzfyg46dljbc2f28l152la8f2z2y5zfvd08ir49k"; + }; + mfpic4ode-17745 = { + run = "0jdqbdi2gqb1v4cqahwss1rj44iw0753cq262j8zmaarski351a0"; + doc = "0sbsb9lysz6hysrpf9dfgm2zn5qcsv7aaf5llmy9kan0m4h84afm"; + source = "0iya4y3msmyq468zj2msq93xpa01044kmnv4dspz1fmh0324iklm"; + }; + mftinc-15878 = { + run = "0yhw7zpmbc3780qm46p5sc2qq71s2vhmfmi3kqscck876h4935fy"; + doc = "0yxpbp501d6vwsxpm83zjhypvz3xz51f91q414zxjvsy1cvvprr1"; + source = "1zamx3658d8vaik5w30hvia5y0hp119vhvqhj4h5kkwnwmz8hs45"; + }; + mfware-66186 = { + run = "0kcz1gy17819w77sf0l9m5f6rw8dcapkdbvwaknnrmy50v0jfs1n"; + doc = "0z3djvzs8l0w1j7h22hc19r2i49panw7m2lpp22lshxybsibr47y"; + }; + mgltex-63255 = { + run = "11xl6nw76hana2mdcq7m4h6kx6zx91apxcqkgjczcw9f7ip6m3cl"; + doc = "1939pnggbc2vcvavilcssf6i9j36ysv8k93f0bz1rgn2krja2d22"; + source = "1pdlxf2qfyzm3pjjpl0wir4sr255lqnspbsvxfy7wz78aii2ik5y"; + }; + mhchem-69639 = { + run = "1mvml2z30q09rw24laybbkacf57jav8459nb6qfj4z068r9bpifq"; + doc = "1f4nmg09mg2nykrrynaaijkn7xjlk3szccw375kam6b7ps37srgv"; + }; + mhequ-64978 = { + run = "0zyp8x8qxjq3z6b8dm3pgls4z9cr03qiqxlf6d55ylnqmdd68w68"; + doc = "081mavy3495k4ciqvxd3hzkb2bs7m0s5jm8lx01z85p568bw5268"; + }; + mi-solns-49651 = { + run = "1bv7gr2wa11cbsznz414x35n5yy5jw7q9kngnb2h5y73v8bnzvc6"; + doc = "1byfb723572whq315zwybwm1bcvcn49km80gn5bi081gy81r75hw"; + source = "12xrddxlrngjnk0yk35spk886yd9p3nnz6jrp51dfzw1xz6pkivr"; + }; + miama-54512 = { + run = "0138r1yrv1880nmcpgcgb80nzd29xchm09s8wxb53j71q0vvdswh"; + doc = "0dd32q8clxgkd7cdk0699fzplnib4waydx9y9i33lxxwjkfnfsbl"; + source = "14d7ryxz6q17jn94wlj5vf2hzif6i08yjbxh5z7pdcgrnl035gxj"; + }; + microtype-66587 = { + run = "0hwwx5qzp55pvnb1c2h0ia8wp7gm4pniagb2wvg6dz5l4hja3fj5"; + doc = "1bqr4ggi96wbmrd75mfnymkplnbwscizmf7kkfhd29jz5hl5x2x8"; + source = "17gdym7f8851w06y0h4hdz7s9967i6x9awhqgw0i4fi0fafmyiz0"; + }; + microtype-de-54080 = { + doc = "069d2f0jcg9m4fv8dli2dr9ags9gz6mkwy6fzz37ns4jzrqfsvwi"; + }; + midnight-15878 = { + run = "05hzxlzr19snz16sddzpyh5f7vvs6jcdsqyqvqga17rr8y04sdwz"; + doc = "1ky8k2ys88n6hn2q9v9gr71g772gm5zvxlbzmibvajq0hhqm41l8"; + }; + midpage-17484 = { + run = "0hh4r2sgdgzm0nryzqymd66a7hr74rvcsn58y7dc7di6mhikrysn"; + doc = "0jfw5wd6qbxhf90mpi8fmv0nbazkbg9h65z91613j1ynqqf0087y"; + }; + miller-18789 = { + run = "1nk31l9g231c3dk70fqph444z9x5rdjy6g7wazy4ygl3q4gfh6fj"; + doc = "1vvxnbbjn325y9s5h7qp6v2z1xy6wwppwqv6iwdak7mf47gww2gf"; + source = "0jpyvjpaqz1x5avqy1dzf22qwss7ksbp917ncmgjdxhj82jhy2d7"; + }; + milog-41610 = { + run = "0v5rxsa182n28dzd3l3y4qdsz6rinv3r6p94iy73r26j7jgsqd5d"; + doc = "04z8ya5gba7f5q86ch57zqbiz81s62hpdbn7b8jmkyy953g5l8vb"; + }; + milsymb-66697 = { + run = "0m2rgn3am1idrpmjply52v2s8frxgbdr80gxiy69fdk2psqh6lcf"; + doc = "0cvy530713p15r8kd8rb34rvmryk5mkz7f519b9jzgl2i5kcsadx"; + }; + mindflow-65236 = { + run = "1i5a3jnyi07sp6zz3cyyyyp8gbimy7ypvxsg9220cyws2z65d7zm"; + doc = "13qpcy8bwywvn0yv8qsi1wmwzlhw3yawg5dnb97mkj607cj7bzhz"; + source = "02amv0fn4jk7k4x7ammi1n5y8c7b18hjs93mm6zs1pxsvxzc0j6f"; + }; + minibox-30914 = { + run = "0r94l5sy4n97p895xk33ir3dli1ngy3p67w2d3i7f6hi6czvykm2"; + doc = "0bzd55wkdxw8spw4706nj0sk478zbnvq9cnkpid638cwb6csb21c"; + source = "1dm8p6rjivm0xxa7px5dvsnrqs48zwn2kiq3vr6gdqmiy0ld1v93"; + }; + minidocument-43752 = { + run = "1mrzcxa59kpmrkhnnv08z7h48bj74gk2b0q3bvhmvddd6047yxwy"; + doc = "0dl4l8skhz7fm23mpmgmy593f34w78mm5qwab5bc41sg0xc0lyy3"; + source = "1n0qf2r1mjp8vx3s750fw5h2q51pp3qxf90gds8bzq2cv6mi61sv"; + }; + minifp-32559 = { + run = "1vpq8mh443hhmnf5cgj37jm362m90zdhm55jzqh1x84dadqpmivf"; + doc = "08f3hp3knyc37a2fy87i11q62dlb35ri197gxm3ghl5h28zvzpfb"; + source = "1l837v8c70s8x1xn4xhag6nkfpayamgzk95fb23qw23xpf6zp2wv"; + }; + minim-70320 = { + run = "0219g17q9nd7ga9lbg96wk5jqhw3i3cfxjv44b116gbnkrf57z9s"; + doc = "082yk82nlcjq2cp5v692g4ph1q4p9ry51sfcdjpjx7874g03wvax"; + }; + minim-hatching-62395 = { + run = "0raih3zsaxpas4myf4m0bmdxqm1av62cldjs4z768nndkv6xl1iw"; + doc = "0bngn9d24w77dxi1s7ad87gi27m48d4jr2j51cpmmagfdvlqnfsi"; + }; + minim-math-69352 = { + run = "1fa8a3jq51wm23ivmb5n6hrcbyxcmhb95x08n4lmhw6x6qsr0hj7"; + doc = "1dpilbyr9hdik1lp5lm860hjk7ni9adwn3dw82pasiipqvy8qzcf"; + }; + minim-mp-70322 = { + run = "0qjrp9xj5cra1v0j98ibsi0icr5if6267ipw43ff56q1haf774x6"; + doc = "0rqf8mdhbz4yrka98n3swz3p3q96czjmndj4n3n68klzlpl45v1c"; + }; + minim-pdf-70321 = { + run = "14zl2sxajxs3qgb5bv7lrraww3ci4kdvnflhlnmgi4dca5vnfh61"; + doc = "11wd9vir4ph5hlj2hfr49qf3w77piv7dccwnqm6w7c5w661b9i7z"; + }; + minim-xmp-69352 = { + run = "1pyf6qisnkh1600ha6605if690715qprhwrakygq71gl0ak9xl00"; + doc = "0vyhvy71ajr2d4dii4kp2inyihra85xvmqjs1fzz1am5hbqqmc7l"; + }; + minimalist-70329 = { + run = "15zd2zj5v97mpsczk7qw8nnk7fbnxscjwii1bf2ry0f7707n8if5"; + doc = "0870smwh2sqs7qfkxpmwrbl2ahq916kq3cl0qfmjqlcsjmy2plmd"; + }; + minipage-marginpar-15878 = { + run = "1qpymibkrwdbyf2rlvfjj0g8agxisd2ym3xi7lzx3g953g5whg5r"; + doc = "06rivjd4x8mdpzv9h1yzkjbs317jvxa78zbv1kzyia7fps74wi1b"; + source = "13k27b7avz3v2jadjh84w74rsyh4gz2x22b8j5lv6yvrjnwv09f6"; + }; + miniplot-17483 = { + run = "1hl5nd6p9c1xhm1kpw9sh1s81ymdy8lxfn7wh1sdvildcvclvd4q"; + doc = "068s76gnva6rsnd7gfwswxfam56dbiw9s9ymqr2hcqx7i4dl87x4"; + }; + minitoc-61719 = { + run = "0v80ga66rg4cgifmyfa5vq52v5wz48lj4js0ym9197x2w98ra6ry"; + doc = "07dah8lz54ccvrgigrvgcmbj76ppxaismbllfwyxcgkrkvqzxqkj"; + }; + minorrevision-32165 = { + run = "1mcgql832xmgpcwha6l0d282mhyva6xmyf75gbb6inwbgg6qkv9m"; + doc = "0x9lw8xzmnn015n9hyzajnl9gicafj06gr2msk6vxwk136ayqfiy"; + }; + minted-69163 = { + run = "0ksd9lcaqvpncs236vczpsxq1ymx7xxhwpqix4n7yidzyypxnbix"; + doc = "03305wk872gh9c3pish93spfxnvpawcbfjb1gbpbrnjvnkcq92jq"; + source = "177whv7b60pmz0a2r178dw76s4bqixn0zpmr8g3c91gd3q07amdc"; + }; + mintspirit-64461 = { + run = "19jvqcydiwwq3kv5bq6524wsynj52b8mqm3j3wn108z7rhnampg5"; + doc = "0mwrnf6q3h82qnxk9gy9ns12k9lr61z92vmlyx2x745i8ra7b551"; + }; + minutes-42186 = { + run = "0yc7dkvbn0g7gm07h9r62ma3aagbgparrlamh462a9ckdc7jzivp"; + doc = "1m8blswmxhcm2ya966ajknx9arz3yh1sn62wnyxls220af3401ss"; + source = "12qvfyiscs3y1wk3r2mdq7vgkmz1ldsbg3wz4agib97lc30qqmif"; + }; + mismath-70260 = { + run = "0as70q31730lzyhwvmlk3g8rdri3lv17vhqk4sc1g035yi18xxpc"; + doc = "1f6qnin00xqlx4q85n7r9sq75w3d1q9q8p7kgvxpcvis3b3w1q1i"; + source = "0fjmmpcr76fcwdf5g2pbg72hjf42cx64pdkw6gj0ncs461llpify"; + }; + missaali-61719 = { + run = "13y2dm6phd9c77j3rajvz4qma2h2k4nwhb520j3mm98bgmbkphf7"; + doc = "16487s0ijkk6va22rhhyhxdqik863n1i25p0f67gcb8xp1s5l1wk"; + }; + mitthesis-68732 = { + run = "15z072l5qzmnn09awr9gazikc60h9f3z061qh0fy3j15gr3sw81d"; + doc = "02b0bi0kycfm5x7z2xnbphamzm0xrlfvqsk0c01ni0gjf65j9f9m"; + }; + mkgrkindex-26313 = { + run = "01db35xmg9583hkr9bpflr6rj8bmvidaqahpvkr38bks21466sxz"; + doc = "04p2xaycwszq5dp8s2h6gdm36l800ipvigblkm8m58bgycm553fw"; + }; + mkjobtexmf-29725 = { + run = "19nxq3k9jf4bypk2al38n6igpca369lxqcn3da8cm8c3m511nsmm"; + doc = "042a29h6sq9mpy6chfkl6893zcpb3gd3gsl60xfwglivib706qwz"; + source = "0q2i2xgpnjcx8qdkk47q7v0lmjdv88jjvl7zcybnhcaa9km8f9na"; + }; + mkpattern-15878 = { + run = "061y05sa0a12x23f68g7rinllkggjfghgmrq2qnan34f1ind1g36"; + doc = "0b3ahrhxmm6lwijc7kgvn0k17fm9rkp7i754zrhfj7w4xgq6i50f"; + }; + mkpic-33700 = { + run = "0sib2pckayb4i7lxga35rkxvy05ix6idifcqrlcbmddfix3djrzp"; + doc = "11pj8q1zvblsc2dyd68a0nri9zpqzrp9a6lha5dk91a2aygzaf87"; + }; + mla-paper-54080 = { + run = "0yzfqb3x58qzw5lcyw3f6c3xyd98zx7zmz9j2rmv42r5wj1g668p"; + doc = "0kzi1gnla04shaiysrgyz4ak3l96h11shkrxcj0hbav43ndj2xhl"; + }; + mlacls-67201 = { + run = "1i6zkzy0xp0zpi6drq512pil4gxyw96sgsfx9vz45rzc7jvpbbh6"; + doc = "1wsysqqv00fdcd7v26i5840g1hlrxdnnzznh1yz7yj3pwz40b0f8"; + source = "03m5mqpn7bq0dzynwdmhxs207617aplvbc5ra1da7wifnaradlsa"; + }; + mlawriter-67558 = { + run = "188kwakrn0ca1njpkgyq6z1x97ky8imxqgpyy9axcsm2wmzhmf4v"; + doc = "0h1302wyl24ilvba68f8pjwhndmqn9n0h3nxr5ifhk01m8359nr1"; + }; + mleftright-53021 = { + run = "14lvlhhjj50v31lgf7ywk5dx7d5gbnivssl15qzpa6s619q2h6l7"; + doc = "13vvfx4wxvf5liv641lwdm3hdba31rfrwsmirl36qwbrqsrl8xic"; + source = "004ficd5chakwcklbdx83qp3985s1imlz5knc7f3m51zxgr4lmw5"; + }; + mlist-15878 = { + run = "044pjvbyabzqashbzag37ymqa9mr0c1qg3p7rb1j91r0y5s8ra8d"; + doc = "1vlxzzg6f3jmcmp8fjn58gciywc2qgw9v1kxpm7qr3vlv40pdb13"; + source = "0jim2g5qc9cdks4r3yi67hhszx3kkh26hhc0zgm2kx9syhdjv057"; + }; + mlmodern-57458 = { + run = "16f5cpczawzx4p44svpzy205l9m9g06w8r0554cgdpqdbwr139fx"; + doc = "1rqb0g16wj7jg65xm0rk68cfz9r00zwy4r73wbkn0fqrchg08yn8"; + }; + mltex-62145 = { + run = "0j5282big4df396xvk2xaasl7cwnjn2sa14xj22xgzvrz3hr4dvj"; + doc = "13c7a99jl0y75nkciir5zqdiz8dgjl8znbyrb485xrwlkzm6ygq2"; + }; + mluexercise-56927 = { + run = "1yhgp5cidpkh4ihz20d1p445q370bh25jwc8ikqdq6g1qnf8sdv8"; + doc = "0xcifm779nln96bmx0kvkmnzc9yk2314yc6nn98wm7gqdw2bf21s"; + source = "0mq8fa0vd762q2h981mj6is4d5vry2qgggbbmffvmfb4h76z5gh2"; + }; + mmap-15878 = { + run = "19hnkczxhxcr7pa7880mfgjfhjwiyl2yxhfz67dsrljqsfpi19nl"; + doc = "1f861w6clfn3k8gc6piil6bq6admbyr4kxqnkw8hh29s63rdn76j"; + }; + mnhyphn-69727 = { + run = "16bwf5x7kzzqk7b8jm5p1pfsimgqk30drp918pnhpa6v2y2ssls4"; + doc = "1ymja8ffh9310m41ibgahll7ry9jx6c1aqin0frxks43a0sqf1bv"; + }; + mnotes-63406 = { + run = "1jmkh3bpgqc1lw4q7s57n9p10wjhflck0lqrjxjni4qaqxhg02d0"; + doc = "05kgkxjhizwpnz60r9kjlwqzv66lxc4fj1wh0199fkn1pyyjdrcg"; + source = "1xpdyv0l87mb3af5iw06823iajk2dgv2dg0298nvzm8jj3ip6851"; + }; + mnras-68878 = { + run = "003pbz6wg81ymv082vxd7dzf37c08ym2s63c91yxvldn93p795n6"; + doc = "19mgjg8yisia0jdgvwq0jdg0hj8qpzl393x0w0vkls8s82j2jc7y"; + }; + mnsymbol-18651 = { + run = "08b0ypa29zkbch5isk39bbakg76yp5g7w4caahphdljkqy4k27zd"; + doc = "0pv7717qcjd5ps6vnlmxk1bqvkhi9lx6j92i6ggnak8i1izd75fw"; + source = "15ksx2lxxyklg4dcckm82hysin9r2v7pa3v8gjns4wabj4hx7v4m"; + }; + modeles-factures-belges-assocs-67840 = { + run = "06n2871v6jx29r8qjgcpg4h3qbnc6kw24kfk2f08wbc2rg2xdkxn"; + doc = "1509xrny3xvy7nii0v1rga8ip18g8bv3d6vf8a3qn0cayfa9p248"; + }; + moderncv-62128 = { + run = "1icns5fym56yp1wymsf50cl1wh1vc9vdix7lxapp18prx3y3kf0s"; + doc = "1sj75g51dx8yd13ywyyhs8r135pgg5jv1h0zshxsdpj7b7hbdxf1"; + }; + modernposter-47269 = { + run = "1qc422hbqiyy6b539r7kyrshcja58mifdvs3bva1ikdxanxhnaq1"; + doc = "1z9b3fanm97c3ik1q6v06qfwrgqcqwyi79h5dlhcnpwsm5dxqj0s"; + }; + moderntimeline-55518 = { + run = "10alhs944akmqfslqzi09436mmnjz8nm85r8jpjwpfcx28vfdwnh"; + doc = "1bnz01q5rib9gr724gq6saxvzpg3lfmimh14rw5fn0fcn9bxlwsl"; + source = "0y2kfxcpacslpn1ly6anv0hlil2x6wlsi37w9b8hj7xfx95qh51r"; + }; + modes-69113 = { + run = "05xf7g14jgs8whl3jirb2aww93mq7l64vddx68kl8wqc43j87v89"; + doc = "0xpl3y1na7ldb3yjp808nywpg7fqf0v2mwc8rlv3jzpq6lnqyjb6"; + }; + modiagram-56886 = { + run = "1d3sz2yxc1n3xk6haja2yz14jgcl15pp21y985h7dflk2yjflabx"; + doc = "1a42ylnkigyvvkk0yrxcpypz1qlki9r4jzpy6lpky0fa6bfbl4yc"; + }; + modref-15878 = { + run = "0pd0qd9yjhvdl3icrgl40lgyjsgahjw1jgc2ah75bfcwj02qm4v1"; + doc = "0caqpnyg5gbv3b6336w59nn0w9ic4p12f5ig2n7r6kg8ydhp53d8"; + source = "0n28d6x8w9rh3hah7p1imairyyywssajg7zwssp03dla0xlgxrql"; + }; + modroman-29803 = { + run = "17ijrx7f87pbkwbyjwigz3jr85fwzq6rr0pz1591fk9i36jhjaal"; + doc = "044v0nkz0h1c7xsb66kmpqvr5gg4lg1qkx1x2qm9ijdpsbc4zsng"; + source = "15xy8jpp2ac07qq0nl3nskpv62c59xb8qkl51irvpb0m01d97y39"; + }; + modular-44142 = { + run = "0khqcm28cq8cr51wmyv954zy85k9dxvmiszz5w4izxvyk14d56sq"; + doc = "08qhmna1mbra9395gvaqbaqi3rmyhhckx781x4zw5439z2bpmg39"; + }; + modulus-47599 = { + run = "03sssw7yg7pa7i3l29l049qavwxphih5jvc86nysdzzng4a4dd7n"; + doc = "1ylrs9705mgb8ijj9fq5w1yyd2fi4ykx8gpf4ckdr78h6rvzkr1h"; + source = "0gm8vwidnls0z31zxcd348xyc4rrvcffncnwmazi9p1zplhg9ggk"; + }; + moloch-70496 = { + run = "13fgpqq3l0qazx8mz2rdagz9mbz9q2rnllw6zcv4v582m7g3lyb4"; + doc = "0jma5jbzz6zw3pzyp0p45m45i2y1b0cmxyk0k9pasma0ic0x8y1i"; + source = "05wdka0qqp6g4n8r5f94m6yffx8pzvn5j272ybpzknvkqfscbzmh"; + }; + mongolian-babel-15878 = { + run = "0qv413sx05pz5ri4p9znb020nhb8m2ybapcdgnxvkdamgbfvi17s"; + doc = "1zprq4x55rbd667ll7a1rcscbqvg3i4wafmxnv4bksdm8p512w5z"; + source = "0qf83v7iphfavxh7kh1zav95r6q3k0aiilzwnc0mm607bkjzc2x5"; + }; + monofill-28140 = { + run = "0kpzszxph3bx34flvhz746xkdpcc9mj0srifki9y8fa6vgsk2rz1"; + doc = "0czdlvrwav8n3p9afa40icddh37md6g39kmy02vcnwmn9k3izp4p"; + source = "1x5raychfhcjibln59x01fay8r25fwxba4lwi0bnd51drvzs76pn"; + }; + montex-29349 = { + run = "0rgf1rflrf98jayyhj1gxz0mkw74qhd88b4i2ccf3mm0kzwlvw0a"; + doc = "0w9izkjmb90d4x5j1azhlskhgfmxh67jq1awsdv2s52psgscpfm9"; + }; + montserrat-54512 = { + run = "1blgdkfjjjhzk41myfp7bb7x5wf3arwapas4mm1770d46nab1wwr"; + doc = "0blk6jxz1xrascrdalssqd9pdrvpai3k9bqbvgkyngqhp4rzndv9"; + }; + moodle-65672 = { + run = "1yr7laz12x1z76aik10dsl6rpqgwbfvy65k5yhbik5iq9z7wrv1q"; + doc = "166489dmj7ysl0z7f6whnkk8ndv5bmb9hh7pjmp6lprvr9vvqxm6"; + source = "00n02k6hskbj8rb6krcv7b681lx24sfyxy8i28rf4c78x4ds0420"; + }; + moreenum-24479 = { + run = "0cjq1a222c813l93yzf9757dcai55vh24r17cv6awv0d1xf6jggf"; + doc = "1g71dcnbcjb2x8ilhyfbkbb55x8740pz6n9gzdd8h6kyxm879zvl"; + }; + morefloats-37927 = { + run = "0zdlkd53zl0y69d3manicnd8ch8qls6jxgr4mncqg5r57lqp10kd"; + doc = "09xmhl2zaxzyvys63n6r71g6qp281f6y69gy4zbkjwb1n68js1i1"; + source = "109wx7axxf1pgpxq34pz9i1cg357il0rbz8h0xqacn2yykh9q565"; + }; + morehype-38815 = { + run = "1yssb0c3l0sqyv775mjnbba3wv1h6497x125li68q8iwjc529wdr"; + doc = "14s0bvxj2fjrkcrdp576c0ka1appg9g4ri4mc2isfb73yc6bmgh0"; + source = "1sljhzy05akipng9lfajapvdm8jf2jf50v1awl38ld0wfkdqvcdq"; + }; + moresize-17513 = { + run = "07vq0wf250ixhrg70vdvaz7zh33zaq5sm32ka8qh1ab590c8w7h8"; + doc = "1qa9y7q1wi7f9klziwgj6dw9c7bh453srljsx9m106nbyd1cvnpr"; + source = "1gzj5bh16afgl8dg5z44h7d4m79i5naj4wl09m17x6snvfz7ifah"; + }; + moreverb-22126 = { + run = "14srw73gbfr0c3miizzs1rml2ms504hkv970p4dhp1wpk8ywc5f3"; + doc = "0bp2lmzbd3zxqhijfqc7im10476xc50yc8amh0vf017ll7prcmjh"; + source = "1snpyn7bc4qbmamxybv1j1h407fp597m26v2jq6yzijszfanh3rq"; + }; + morewrites-69679 = { + run = "18r8ja3xw77kn4jhhyyrcrfqhqwa7bzbsvmkllvlfpmrfziaxq3j"; + doc = "08syrckx97a9y4ybmk85pn98ign1smqifj1p348s8rlam52r9sin"; + source = "1vdnzzvxg13m1kpz08l3npsp68b0rjjy8w4y1d7laj1qxq69ph88"; + }; + morisawa-46946 = { + run = "19b8nzkwdnqk61p1fc7yygjlrdimawmbam18akphcm70qx2h01dj"; + doc = "1y218bablhn06njs5zqmsl6jvvsgyihm4il1x9722pqvvyxxf9q0"; + source = "1flrf2c2jxpq33g26i0m2h63yd5jfy9bdh80idpx1m6bi6hhq7ac"; + }; + movement-arrows-67270 = { + run = "01kbaxy2wyzxla01gbxlwj5i28ahak3xgm7f8myv5d6p0s6by0cz"; + doc = "00v14fnh2crcmnnkdj7dxjidlxl16iq3nfygx8igas1nbyni7xfj"; + }; + movie15-26473 = { + run = "1x48h56mw1pzllzz5b8fx5ikhp08gx9jybdn7qk3jvfy13a4r5yr"; + doc = "0bhyfgsjwmvvl7lnam0k254w2rzn01wf5gzn38ymmlcbw4ajkkxl"; + }; + mp3d-29349 = { + run = "18wgwwvh2vj1adbvbl1q6lh0wy0cynfvrx6cgq0m5nqps7b3idra"; + doc = "032ywwjrv21ypnlidvn95dcnq179pdiail86s4nxxllkjrryc2db"; + }; + mparhack-59066 = { + run = "068wp9vk6ablq8mhj165k2r6lg1llk1i8gyj71ha2kcsq62v4a0x"; + doc = "1cs2ypwz4wkb3rs71wichmd8zc89vj4r58srqzmriwkjplhaw3p3"; + source = "17c1pq9mqn0gaffawg66wwd2n9cd31gghlvmrpn9m9z6xcdm0ipa"; + }; + mparrows-39729 = { + run = "1hmbpfw1wn13zp8dksnlc86vb19zs0dbwx9hy0sbiyfmb7hidznc"; + doc = "0ly0sw1c6i3k5nh26a260qw27x6rmv5p2zs11yh5076ziwdxnnlj"; + }; + mpattern-15878 = { + run = "045sji1qqwalvmiinqkfm3x4rk2jc7m9nya48brcc0rc5icq7xqn"; + doc = "05b9pr86yy3hl14jymk4g4mf6f5v85b4nv2bc68m02dflvm4wnsj"; + }; + mpchess-67704 = { + run = "16wykynx5m3xdjnr9mfdqhq4yn4rw8cf7314cd05hf87i4r5vzwh"; + doc = "08c4kwznib00895wwsv8npfjxvwhxv7hk58vh189b49jjbcddds6"; + }; + mpcolornames-23252 = { + run = "0bg59x762rfsl3whzqdpajakjnnx5jbh55m73dw23id1g7cs5rsx"; + doc = "1n78abrsj5xj1gd2psgph7x4dm8nscvwmlp6ijz5p6xgphgqs5bf"; + source = "0q74zsx3ni8bzl0k1iwrr19k7f9vkwqfm0bp24m91wlzvh4vlk7r"; + }; + mpfonts-54512 = { + run = "1z5ws1kr5s07xwcs39w049yvhfwadybjxb32kf9qd8818pgd4zkc"; + doc = "1hjy2jqm8mlrwiipl4f1rp10nya3zcy2vsyibhs7f280h4zhdwxz"; + }; + mpgraphics-29776 = { + run = "0ymwcn16n44y47ngdsyb0vvfp9vjnwixhxk67z6ni5d19f23jqli"; + doc = "0q04yj9j9f9j9rndqn9k95jwjm41g1rf5raqlrr1cn14bax0lr4p"; + source = "1hacfhb2dbflvmg0c1lif1hmhxkj3g6j1mdlb3wm43zczgaavnmm"; + }; + mpman-ru-15878 = { + doc = "1x3drpi21zcmkhkscvl4l7805wskqa4zskydb33i0asss5p62396"; + }; + mpostinl-49559 = { + run = "01p16dzg5izjgd64l4qgrhx0dm99hp5lrn9v2rlghs8m249fwmv8"; + doc = "1a1rhz5q1i69bi1blvwzz404h7mgjkjcp9c07dd8w6xri304gi1s"; + source = "18rfna80lz3zrf7wynr8zdbiv36k2n6a8wd430r81ybr9233dhxp"; + }; + mptopdf-69363 = { + run = "1l2182idlbzci9kjpii0zg3c7fpmzf02dz5kg2zcv529mjwwv91f"; + doc = "0q9jlvall8mf9j2zky41bhpz09yi061rfpkpd0arj346ah5w9nni"; + }; + mptrees-70117 = { + run = "1lrhpf67d0y42mh127ifv9z8xkfjhxn4mfzm5j4gbzz068864rkf"; + doc = "1rjykadxwyqa78kpivdzncr9p156d01w79ygp095wwi7w0a3ll2c"; + }; + ms-57473 = { + run = "0km07va23z5vzx87ndrv9mj0fq4yw0kv7qygd59smhm4q71yspkl"; + doc = "122xwapvjzv9qyh3p1884bzdpalvqzzkmzd18gqr3q3r4cmk2q20"; + source = "1myxaybppzkdl14h4g12xcp57zqjzkzijryv9nd6hy6ggl9y8i99"; + }; + msc-67718 = { + run = "08rw5drivv1frf7c3r0pfy3slp1sz3hzw4gl55vcjyh2b58v9qz1"; + doc = "1qwrg7gwmigwpf9mhmrv25r3785z3nf7i5fh2q4y2pyn2x8l3bp5"; + }; + msg-49578 = { + run = "1g418z3slb3cjf0wzgwgv0zkq0jnj647zqh6iqvlv42r7bil9001"; + doc = "0miycfpf7s74jz831kqbh6qlkkzq31l1x0fkf9d04b8zp26mzilp"; + source = "18djwd3g50ys4ckgzc3dp0y344qy86ni327jmyz3lpnqai8w1c8w"; + }; + mslapa-54080 = { + run = "0ayfh1yv1a8wsq9qldgcmvq9d12sxwaa7df5p3bhsp0klbqf7pzz"; + doc = "1hiag2x2br0c0qpmm347cyxmi58mwg2x0lyqfakm87f68lbbxdq5"; + }; + msu-thesis-68480 = { + run = "1g6xxc39rvqbypd1njgcx0zxzrncsvrfnk3jqlbcaqxkym9qdvhi"; + doc = "0b2dbp162hg610jcag8cg88ykckl4xj9gsmpzsrxxh8hmqv36g7p"; + }; + mtgreek-17967 = { + run = "17k0lvghiw4milj4cnf6wjhsj7c1banw550dvlw9spv60lccvqqz"; + doc = "1qkl09lkdl9z6lm5hkn5c2xry7xd0f0ijx6xnyq3l6q99cnbafzq"; + source = "13h8knsfbl91g20gxjw3c0m6j33wh4zkmm32ybfvzlm8q7nf2lhh"; + }; + mucproc-43445 = { + run = "06x3hqdp6d6nm3n296wnj4j4w93cwgjpz0nlw5qj0z44zlghs483"; + doc = "0y33jak5lzhjp4v5d4pzfj7jlrr87dl6wdnkqcc0p9fr4fd2h1z1"; + source = "0xzv1m01rj74gg188snznshir510lj5myckfjx7am6sxwlfni63i"; + }; + mugsthesis-64259 = { + run = "19bsplm3qclalplvsybvrgyk9wikr06cgr9zv1av6dp8djmz60mg"; + doc = "0md9p75r8m677pgfiqm30y7nkixa77a244l58fcmj87i3j8jhx3r"; + source = "0zx4npm8qzw4vxxi2fr7ylazga1mmsaq5r0kj9v614iybjg31733"; + }; + muling-66741 = { + run = "05bhyl75w3qmji5s8n6mv85yjhq5nrgncnqshdv9fbzbgcnk7a97"; + doc = "1fpsblzyxy0kf5vs4lnxdq11nkj7d9vw6a3vzyas6dqrlb370vzx"; + source = "1m1yawp0wm3zafjwlpv6m010ih0gb24q8v2h94d5l2w2ymkyx2sb"; + }; + multenum-21775 = { + run = "1jn6xqrc31zzaj9yk244g3sbi8fj2klswbg24fkclgj0cjr1xi5j"; + doc = "1pnjjbfwgy6ksdl76n9iiqla2wl0qa4370n49h4xy3rmrnbjmdqs"; + }; + multiaudience-60688 = { + run = "1pc03jhvlq35zzjsx6sq6bgzsp2mh861wqbazrgp7ilni1bqhqsx"; + doc = "1ja9zphh154n7wwhqgl4xj4as17ag8mnr65k0wf2npjrir7rfqgf"; + source = "04hpd3zsf24vwas726jq231p462dlb9fq01gx4z8wg3zcczn0agd"; + }; + multibbl-15878 = { + run = "1aj6j8rp94mh210pdwd9d4a5s5z9v5f36wpylwjv4v2ghmyrgyap"; + doc = "0r4hnp4sgpx9x0hmrl3qlw55xlchav3r8sym2vnv4sqjnx4dc740"; + source = "1c7cvjabssssy8wq6x6lr909zq4f0bkhdzx1x37n3rxm2ngdqpbs"; + }; + multibib-15878 = { + run = "0ma2fwy3p9b6ijf727iw2xqsadk1jvh1g27snqvyrzhz7702b6xd"; + doc = "1mwl9yziadzflq29nwv7bnbdb07d8bsxl16agj7ydmiw59ykv1xg"; + source = "1g4d3hf8s1df57yhpw04j6bgc8n7hc16dc6qz8jcyj264vfv6fgp"; + }; + multibibliography-30939 = { + run = "1pmvlk1rvr98ig2zj2mgq91a61l0hib9aaly2irfzl28m092r3fg"; + doc = "067wp2cmmrcgwkaxy2ngmhkfbiykr1lr0zii3i6xyyd6z2aidrfg"; + source = "1p25yixvajkyksrbl8zax1jrb292prpjm97b6vh74v478bk21kgv"; + }; + multicap-15878 = { + run = "0ky6hrdsc7wl65zk9krv5bf5z5lbiv1xfn4g9q8b3pp6ri874hzc"; + doc = "15zkw0sh0lf5vdi219h32nw0icq88cj0vnz9g9j7zb7xqq31f5g9"; + source = "0d3gyjr7kwx25gzsl4j5z887c952zxrsh3qk2j0cbs6yahzscxim"; + }; + multicolrule-56366 = { + run = "01k425dsahhikw9n03dfarnlqc1irz33rm9am6w3gx8pd2d2q6zx"; + doc = "0h5is5lmqqybyp9c8kr0d12x27lgm761dcjhi63i7pv37hk0kylj"; + source = "0blj75rh7vqy8s8c87dqpbz7d279hngzl99272cyskmj8m4y6jpa"; + }; + multidef-40637 = { + run = "13rv808x0bz97cm45r2rjxy0yhmjycswcf89pl7z182acrbs30zq"; + doc = "1jcm11pjx3d8105k12r120nqjjyk0ncmbry8pvkcpwf8kpxcqgp7"; + source = "14y2vk3y8f35wxka65fmj1i235hbb4sviq8g0j300d24nlp32xsz"; + }; + multido-18302 = { + run = "0rb320bxzg83nq66dx4d2jy3cmz83zdmv7xfw5n1chcswpi6l39p"; + doc = "1s8jhzznsqq8kjw19l6gdr12x1p63v3fyzfdrgmd9z66a45d6hsa"; + source = "1ypcg93f9n9cv3y6rj92l46b61zaj8wm9cfps1c86w675xs76zaf"; + }; + multienv-64967 = { + run = "0j0s86c6xqpww1x46l2vn66l0wflqjsl5q4jqa4089xhzaxzhdy0"; + doc = "02j3gripplimgh9qj3mjy9nlifdi6frj6cawxnjsm35r19m9ia5q"; + source = "1s28zxxvbi5yg6iigdixc5kmn5w7h4hss3xrv04hr2838xpma3wc"; + }; + multiexpand-45943 = { + run = "04v8qz91w4fayy3llr20dqwvdx835wl9fmxpcg45sd3yrik2s4nf"; + doc = "0pw7kqc1r0mvnb03fp5l3gpy5m5zvrynaqkg4xsdrhw4gqxlpfy9"; + source = "1n1bngipr1sjjqnzsdgyyy08hnk53f81j0fqffjlr5siy4by1p6b"; + }; + multifootnote-63456 = { + run = "0a3xwpcyg1kkdbvfinpq15p2v2mnynvk08p8b393px051ags017h"; + doc = "08j63v16pdpiwbcy2hv63frhpc6i3lw5lmnizqn3bpj43qkyig7x"; + }; + multilang-49065 = { + run = "0zkkfvkybq5hxbdwkwy5n7gal1ir7ixg8342wynk3ga9z6lb9shw"; + doc = "026d5yxli87f2svfyqmfzbhydwd4c929n2v11wk5prg4zc3vp08k"; + source = "1v4ql5jxlmpc6458qcqvbsrb9pf3dss60z3i3ylmyp6mx0kjmchr"; + }; + multiobjective-15878 = { + run = "072zpfc1achwj0b1dv8yskdcbg92a2imnmn9z492l7xxyz889n5x"; + doc = "161nkl1q2kc91is8y6h2j71hnbly6hv1fjfmlhb50xypjgrv1ibs"; + source = "1nps6rl8di10mr5r1hd71svlj0dxd51bk0plszk094a3r3l6z4z4"; + }; + multiple-choice-63722 = { + run = "17w8sc4gki7zlwkg1vqrmqrd9id6hdjf3kcvyavbmnrisri95hl5"; + doc = "1cjvs2zwcgj7w34p3w9cvv4dln0q0468cz0j4vdchqjdmhqkwxhp"; + }; + multirow-58396 = { + run = "0bsn4xzliq9gllmac4wqqsnws9slywc0d94abh81awpzv6vy8jwj"; + doc = "070q5s39pfdq5wiq7crhdqhcyjalpd8kydig4djgji975b0xn0bk"; + source = "08q074bixnkvn7hsi1n8vx0r6pqwwkdjsjnxz0n3lam30x4j1jib"; + }; + munich-15878 = { + run = "1dns8n2xybkf1m3j82adid2nr8ngvg5nnlxr5ky8ha706bmz1lra"; + doc = "0dzwmrv636nca34b39mpxyhh99sr3s5k2rkj7jwms2knlfn81djm"; + }; + musical-54758 = { + run = "0rn4b1m1c58phyj9zzvyxdxbilma1bnncscwmxc8sdgb9iiwmlzm"; + doc = "022s1z7d5ins4gpklg9hadlp1gqxpr6862i1g4wp036db0457l78"; + }; + musicography-68220 = { + run = "04vwhhd6mlk79bk5nblrdb6vlv2n2r1s9dfx752p3vj584w2mdmr"; + doc = "1144kbjzybzfcxqbwlcfnk4wvqm7kw01slf9pzpb5jqagwrq12sv"; + }; + musikui-47472 = { + run = "0z2ya761bf0n7l45dqkc626s9d66qwr810fnwf34lr1876y3sfyi"; + doc = "09sdb98m3j5wkl4p7hdpdrnrr0l25ni46nlhkhg1g54hdggcpjb9"; + }; + musixguit-21649 = { + run = "02cz225x5s3spj0wf9c51ka0i1ysmcrvlpa2b8vxd59f4pwz36am"; + doc = "1g8hay5rdkpa4pjj0lj5gfs7xmqwzmzxnc8k023ahlz38gdczgnz"; + }; + musixtex-69742 = { + run = "06anc6izks564xxia4l67qazr25whyxq897762f7hk0a1pvfw9ha"; + doc = "1xmnf612wfgxbf7rgm020jcvavqpnahad1sx4bnjcm1kapbxh19r"; + source = "0ari7nwxlyj0lnqhzcpq4vh9xn0kdzqn9c1a5ih5hp1q2zwx2m7l"; + }; + musixtex-fonts-65517 = { + run = "1bq3nw6zig0grmmgnz7n84cvxasq61h2mmvm1j6mnyv69yhssm2s"; + doc = "1pqr7h0r7cr2clzn5x74r2z78rlbczxmdwc7bkpb5a0k002cc9ga"; + }; + musixtnt-69742 = { + run = "0g2y52s0151br5vr7hjv5dfcyr96cjxp4n9ya3s1jj81q6q01jjq"; + doc = "1y933975hv5vzwrgjizq315bkgnhlky21blv9kbnzf6kadic8ys7"; + }; + musuos-24857 = { + run = "0hfrgx3lk7mf9kzf6n8hswzh116pmllx0k3djbfinvvvhnqy972s"; + doc = "0zxdnzd8x42z5fpvkarhsvdw3x4bz6qppn0iyjff1fjzwl8q8dzh"; + source = "0igksc3i5ydqps0g172i2hkb854bnkf7xh4jqvwlimrlnhs7nnkk"; + }; + muthesis-23861 = { + run = "0bbv49nnngkpnzq7kq15spn4x67yigpyfk8ymcgv647z0bvbladf"; + doc = "1nx1qbgp67n73k54ppyi4li4flnsyi8jmy1lil0gaza38m5y8aak"; + }; + mversion-29370 = { + run = "12mvnkij2q08j50ka3nngmcz0p07lmvqg3jl8fxrfdzyy0h7zhdd"; + doc = "1z9d4bcylv4sk79hfzgy36bza0r9lkzw93mis2m6ypgdbsaa3n2a"; + source = "01dbma0p4lhygs64aym66j3vp3c0hpbci4x42mpr0yvjnglymbj6"; + }; + mwcls-44352 = { + run = "13a1vldimwdjq9lna63gy6gcc9gnwirb2zrm8m4g170q9r2b01rw"; + doc = "10nc7ai9brm36hqhf1czs1vvhp9nqvbk4h8r9l02jsdjbf4rrml3"; + source = "1fdg5j1jrsdaavg20sai9ffrq4qyffkkpkij5czab5zkbmiz8kv9"; + }; + mwe-64967 = { + run = "1rk5530j3cnmf46i3gb6wc198ay99pwlbb80ynj33dypfiwsvhcb"; + doc = "0bnw57l8bb6x4k8i4icc8g215bxrccmn39vyhj888ijygdw2hgmv"; + source = "1fl2xlmqdas5rijzrail9yqlqz1s75z9fzkip5zjb8s0gfnbg3qa"; + }; + mweights-53520 = { + run = "1i4jp9yy9yy1miyzcq25nwm4zqd3936v4mi2acv4g1rgzvai86vs"; + doc = "11114i98f0qscg9796df1vwkf2m6ycbaimk4qfwv47mrxhvwq5qg"; + }; + mxedruli-30021 = { + run = "0xyp3zxzd55h0m201a189rj9h7js6ky3vzikb4yaa7z8hwsad7hz"; + doc = "0ydh0292i72lb9vcglwq0pl734qgrh9sqdy7qvdds6a84jwc5w7a"; + }; + mycv-26807 = { + run = "1nnm6ns6qx6ny4xb7z61pajysfb0nfl7gs5dw292bwi7daxs98xx"; + doc = "1d3rra14k69l5pfmcw4fwbkn257935zdiyd2p9gzx0bc28ivsajm"; + source = "02ailkp9jr5r70aphfzp6kjm83ni6gigyqn2nr0zlsa098frpxg9"; + }; + mylatex-56751 = { + run = "1zihhgy4xaj04qr6rfv73050rvb8a77zglaqgjby5b4a1j5vyw7x"; + doc = "1bdigldcdk3rz4p58w7g4qssbx13jbhqxbavf3x38r71r1pys5x9"; + }; + mylatexformat-21392 = { + run = "0nns88lk6wdq053aljg9k17d3g9fvi75n82swglq3jxmxx2k7r89"; + doc = "09dnsxwdhdnpwf0y7cfj6xh8gws32xn12fc1rh1xiy3ivlynj8c4"; + source = "14rd6zn88zaaznnqh577zgbbmmdmbkzn03201i459v3jzcvijfp7"; + }; + mynsfc-60280 = { + run = "1zc7lgr1i0g5rszh9gzcv7fs98mk06ms5flb3iv2zww0w9r7iy0i"; + doc = "01ig210x2wrdkp5k7mzshhm26958zmvvlclyk81i5wb0i11z9p77"; + source = "0qsacpapa5vhpcwhm44dj13zpx9a3kv2j3hp3848zhq6rpc4981f"; + }; + na-box-45130 = { + run = "08xixk2hl5w876x6hmp6h044spi0qw1qbgrqklwrmkxkgpa27i3s"; + doc = "0i1p5f2nchl9hyrkc6s3hsqcvmyxsi4dbwyr0mph8slhw2rzl711"; + }; + na-position-55559 = { + run = "1amvifgadhq73avh1dq9mj2v4s5r3hlr6a3z4wcbhw32jd31ncbx"; + doc = "0pcn0r0p0z7lxyfsvcnl9skm5aa5xi6362vydpx9kv8m11gl7pjb"; + }; + nag-24741 = { + run = "1l31y7mr00s6md7a68cz51yv0qfd26xaj04ax1ph6dqc97r3fv1w"; + doc = "0gc56zgva7kziny3ridswnp8rscqi1mg51d8x580pidb11mp7dw2"; + source = "1fh9nfjbkvw907ra1crqfhm7hl4k703g80w3c8qvd18r86wmn2i4"; + }; + naive-ebnf-67892 = { + run = "0hw3ra8cmmr79ii1l57z68kqxqjfwq1szl4fg1wykrh9cnca1bn3"; + doc = "1i3h4328sczm3hv5claypc0qfymdmbygr4w6zankb3x0nzrgk9sm"; + source = "0z2df8frslvvaqjsl6js5pwwnhjqkj52dnrvgbygvdhnkpkp5yix"; + }; + nameauth-69758 = { + run = "18p1ca2g164942p15znda23kgxsbfqpvwh8yb8g13m2sv2jr3nwh"; + doc = "141c0575mm1hdik8xw9gzwswv4agj97rwvinpck9a9x2g6kxbwr8"; + source = "1xq9hh74485ck93ifsyg3ci62j5cw89if3wqcd4bcvx2qqxw9lbd"; + }; + namedef-55881 = { + run = "06nr8bwymbc3ps7whpxnsnbnl1fayz36hlgcy5isg0gcx8bdspfh"; + doc = "080m0d24cish4an6p4q7rcrqpr2r1yvwvzk431nszhm39h7d8z80"; + source = "03kg4zv07ch01n0nc7qwk99n32ifwf89z2976wg5k12yq51prplh"; + }; + namedtensor-65346 = { + run = "0jvcqdqnvnjm9z1jcdsa86cvv4f4hq94yi6r688j2sny2700q7a4"; + doc = "0cjbz9g2b8cg2wm97vdgwpqby0jbc5l2d7j2cwx0j571hchlijim"; + }; + namespc-15878 = { + run = "10sbvwc0r3lm90qdxds13iyfcddq1vjx2p8vvs4g3sav4fk8p02k"; + doc = "1z34xb5s5fgl4rag0fmc5i5j3jb810f543096mxpq46j98rcp5mz"; + source = "0xjcnrrrrw4032sd6wscxvar9y3kd4547rsd79dpkbb0ksmqbqrx"; + }; + nanicolle-56224 = { + run = "1sk2frvlsxzrl5cv1c1azqpxbpfr4b06ssli54j0p5aikf0rls1f"; + doc = "14zsfxcyw2ckdsi3fg5qwxfy6d0yja310ycxsi3xrdyxyia9nrd5"; + }; + nanumtype1-29558 = { + run = "1izx9cjsd46ydhrl0ixsjz23nbk7mfv3swfk5ada0d4adcm7b73h"; + doc = "1sxap924dzf17vslp3n71r4mj4f98m9cmchq603c7ara1cyjk2mp"; + }; + nar-38100 = { + run = "1nwk71qirapkg3h6jwlv53fm6zwb2vq0fvmc4xcanf19sm3331mk"; + }; + natbib-20668 = { + run = "1wxpcyr1b6k1rzizbz2g452klrmr6xh98csqr6pawlnx2zy3sx5x"; + doc = "1hai95c7ah61rqrsvzvn0ppvr7pn10830dp7wn7fc0j678z9r3js"; + source = "1qaxwivq95pf014w39igh070cnbs7n0k5am4waxvdwkzql1fafpy"; + }; + natded-32693 = { + run = "1vxqyyfrmrkwyzil0a3xvlrmfzyfxdkfl10rlfzgwdwd63bb99kk"; + doc = "1anh6k76h573yci4lcw5wyf552zfqdrf75vpg19vrr3nijhj9k8v"; + }; + nath-15878 = { + run = "13j02zq77fv4c5f45qn3hgb7v20xi0d0dpj0m2pfdc7fj74k8ib3"; + doc = "1ppyrz9y2hkv6pq18w4chm90f9x9d3qscw679281si2phmnkl1mn"; + }; + nature-21819 = { + run = "0b1ra8babjwpn7v22rjc22pjrjczh1wflhq9ihbj5ag3d10sil6s"; + doc = "053m69fwgcfpa5gcp3dnf7k37175jcsclfkh87lb0zwcymjghlw5"; + }; + navigator-41413 = { + run = "0ank98y3a7b5dpc6gxqpgshi5qvkbys4nyx41gf6hkinmi094097"; + doc = "15370abnfjvql6gkcamgq8q3p4kycgzlgdla57w2swzwn1bd6x2h"; + }; + navydocs-41643 = { + run = "0isw46fzvk85i3mimwsc3x7wg8g7ifbi23i0d4v676nd92j1i72n"; + doc = "1aiyz3z489bdsx4rh79gxbdb986hff75qik97fq0xrpk3w6x6cjq"; + source = "0x1n44brcy38fnfp03j9xl1awfawwa8d0c5cg739yr404qbq8dp4"; + }; + ncclatex-15878 = { + run = "00w3g79rn2xa33al7cma09b8l9na6xd5b7w40j8z9day31i2p89p"; + doc = "14fvmjnnw8n22c3j2mc44bqrdlsxn28dasfk9zmajvmxgic4w12m"; + }; + ncctools-51810 = { + run = "14wam15z6jdl97dxibf789ji0mk59mn96fn5x0vns63d8y65fh6y"; + doc = "1j5j6zsawp9i62kwb8xxzxsvh0qczx6qd1ppq38nlha3cj8k2rfw"; + source = "15anl5wwds08h2msz7m0a11xlcqdqgqpihvcrmy41kdzgnzgc56b"; + }; + nchairx-60196 = { + run = "0nv33zq3gyda9cxf4q7ixw0q73aabjm47mjxqipl9cyp1wv3r0kz"; + doc = "1pjnazl84w4bz7lydhy6lklh3kjxri12gswwffw18a92jff88acl"; + source = "1gva51szjww2qr33mizyxsgd262xcw4116nn1dm9z0dg278hwy8l"; + }; + ncntrsbk-61719 = { + run = "0i6a48zbn9lg4pwbw8ya2wjjgppwac816fnbpmahm67kknx4d7ij"; + }; + nddiss-45107 = { + run = "0d1maznv4yqpjzxm90vdl68h6h7zr7m0k24dirq2nc1cky6l0j1z"; + doc = "1apqd332kj67rpa09md0gb025kx4d7arvqj7f4l8krgsizxfxcck"; + source = "0x2abanmpp7sv4qbwl6in3yp9k99fx453f2fn8xw9b0z053ivvp3"; + }; + ndsu-thesis-46639 = { + run = "1bjrvsdmv68zlm2xd9v4jpkg39zvjhcrd7435r0jh0sffai4pdlc"; + doc = "01jfadx1dcmm3q8pdwpxmxfmmp94xm9y0r77220ffrlf1iczadkg"; + }; + ndsu-thesis-2022-63881 = { + run = "0zirxqals86gkjm4429m672a7k9n9nl2hx264javqhmhngcybhcx"; + doc = "0jf3gdjfm1ycbnkp775b7hzr4rqd0alciqjaignrfqhwgdr96gh1"; + }; + needspace-29601 = { + run = "0abcqdcykpq4wa5a95c8w1bn6cz90zlsy146186v0s54njc5g3mb"; + doc = "1r9mn0flqdnaca1w2g4lsy0pk5a9l2sjnkpzzg72qgll9dsqqkmq"; + source = "02j2f9wl2ljyi82dxk7qk71dmjvgl17vp1d3hgvlc54gl5qcwqi0"; + }; + nestquot-27323 = { + run = "0l2glc6aykd492rspxphgscx0ykc8cakvqkm8z99jq7xxi80l1x8"; + }; + neuralnetwork-31500 = { + run = "0rhvhk46z3wgz5w7xrbmlmgk2px8mvajbrrj4ygpqa58g37wl0v7"; + doc = "1apv7bhss9ilqcm5fxwg83gxm9i8563671jcsmhkl13gcii1lpv8"; + }; + nevelok-39029 = { + run = "0c4zij8ihx3mz615jr4z150d61mj4ln88zrdbsjx9hlnandqkij1"; + doc = "1x7jwmp32f1wph9k03q6ly9nbmdpsrkhyvn5j83n1fj6nj6hmzqf"; + source = "15di74y4h7qgjh7gmmaingbg71jrlaiz1qxf960589k2xshslbi4"; + }; + newcastle-bst-62856 = { + run = "1qzr66mjmdkvrgy5lcv0yv82vx4vygxwa7m8lj6crsffwyaxaxkw"; + doc = "0crwyc9r5zqz412j45c7qh43wkdj2z7rfrmmc510746b9nm31l13"; + }; + newcommand-18704 = { + doc = "1vlxm26393psl4kjfh533q03sb4klnfq84nld9ggs8l5x08dks58"; + }; + newcomputermodern-69379 = { + run = "1p35sffk1hnffhqfpb13n0qam0f002yp2g987vqm9p4970fzgs0y"; + doc = "1n2hamvbjgjnqw03vrml6k5rw2njf31fz219h20j82k29k42mmsb"; + }; + newenviron-29331 = { + run = "0vij59qibxvl81r367yxfl4mgp8fjzd99x3aq008hwh3g1d8ciaq"; + doc = "1nvra7lh4zvxy70hf4ndj4nl3ij3ar8g2fxrc0951qvixz9jx7mm"; + }; + newfile-15878 = { + run = "0gah9qbkpib651rjfrakzldi4wd7gv74y8j455n1yi6wnr0yq570"; + doc = "0vqlij71kfjzbl08sh38rzs9k714xigjc1cdvvpj2m6bhimazp76"; + source = "0sw9cqids994lscbjif8h7npp4cmzrhrcvccspag2aa78gsvz04i"; + }; + newfloat-68434 = { + run = "1jhaccf7ppi5m5jycz77s5nldbmscydzbd2db8bmb0qx3z858m48"; + doc = "11712zqy292xs7i4xvrrv948i6l1bwjxsgax7hph9hjfqs086rmq"; + source = "018msda5vgamyn1lmq63rwv58h9z49q4rd09l7slij14djxwgdb6"; + }; + newlfm-15878 = { + run = "12mryj5w7dpn0mdv91grkrd24n2pn68p54bl70bg3pddvz5ab6gy"; + doc = "0afpxw78vijnhx2rwv94ar6x4ivcrgz7873vdc5n4dafgg18z78s"; + source = "0z081mn0zf92ana2v99sdyyqjz4lqnm2ymndp76xwih9p1z8233s"; + }; + newpax-68762 = { + run = "0dn36fqqwwa6jzcpznrjd7fk2mkzd37mpvyicif0dc7g125whndc"; + doc = "0jcx3lvc1ay9b2dmj9f1kd7kxmyql95dn4xw4syp45ivqsag3p0a"; + source = "0i7ilsx73lcifvzcffjp3n1swwv1af6l3qwn46mykxyv8c1ygjsr"; + }; + newpx-69777 = { + run = "1n7374jxqmrhnjzbmqlx18l6yazn3n9b9phndfg40va5ig9q6fwl"; + doc = "1ihz42aasyx306kwkfmidi0yhr8cxmfaz3sl42b1g36fyabp5h99"; + source = "0larcp5lk303p8bryaihfdvzacbkzmx4kldira7k42sg31p5hlbj"; + }; + newsletr-15878 = { + run = "0hl73l6cv94g9k4qnldxad6nl56n9c1r9rkwh2c38sr31d6fn8z5"; + doc = "15bd97zlny5p212naaig42li7ki3f9bfr9b5pqk0vhbf17pik9za"; + }; + newspaper-15878 = { + run = "1afj267dlvgcw8028b4c0v9rdj77w47zjgpk0grbapy7wjgpyjb2"; + doc = "12hlji06sd7bvw7r664cg8ijxabc2q1rb7z516ph18ayjl5vca82"; + source = "1h8abnmiai3c66cjndm6xawz00z1pfmgwlp6w43amjrk1rm4r5vm"; + }; + newtx-70496 = { + run = "1kqzr0z7vd930x3jyna531jp8qkbsvfjsgh8429ams8qqqjidah7"; + doc = "0hdn9l5dl5jlqgylk7wxpdk200agvdmkl8yyj16ngvi6ljsgh6x1"; + }; + newtxsf-69597 = { + run = "0nwsbpmw7c96797bxvlmfrqibgnjsy9m8b8mzrbvasj3nlhfdxwf"; + doc = "0zxkhsf5r9kffk2vz1n1nklk48i6x445dzs4swdz9hv6xkhrbmnq"; + }; + newtxtt-70403 = { + run = "1adxrl214c7gbqnpqx58j3myddf9qx2dm6kfzh83k2zs3h2wbv7z"; + doc = "01s3qcqygqn941frsfyrkh2bs9ghz9db08khbg5gl9imkrjcmh6j"; + }; + newunicodechar-47382 = { + run = "1zr5w047xqg9bi6drl2rw414m9bzpa5r7n5270zr8k8jj74xcv7x"; + doc = "11vk77c83xy40i9vclw4v1h5wnr03mb77fa8s2lhi0p4sq0c3vgr"; + source = "060kbd07al8cwns5877ap7irpf3r3bkw0w62cwvl67y03gcmgr70"; + }; + newvbtm-23996 = { + run = "0d9q6mvczacdxykp381181mnra49qa0y0mngr0dnqp24hfw9j9l6"; + doc = "0k6j4xpvjwwvz8cipgrqvrs2dj66n7yzlr9mcfsgd5w6rm1p1h4i"; + source = "1p3g9qyq4x0ffv68501zlpf1w0ffm816pa0wqjpqf8pz2jmgcg5y"; + }; + newverbs-64833 = { + run = "06m58n02lx0cw6f9689863yqvlmzpaiarzhpslnywhvgfnks7aks"; + doc = "1wny3zhid4981rlxm684p4pn315jdjmkwc002dbj9aq7lhax0dg7"; + source = "15qivriqxgk1cfff6li172lxghcpgy9i1vjskki96pn68q2p0nw9"; + }; + nextpage-15878 = { + run = "1p9dvw7fqspkg6hk6rdmsb5k5m9mkj0kz5a47wg5dgfqgrqpixf8"; + }; + nfssext-cfr-43640 = { + run = "1qp85vnmzsn967iqvzsf7yzsq1a4zxvyim7r0xb8pncak805fs61"; + doc = "1jac2k7nldxq11rcf53glb5y3haqdsxzzxmgmvyzhbrzmnx0bsms"; + }; + nicefilelist-65842 = { + run = "1pjpffkhwfrayh6a5l57j0szaz63cn83mw53v17ibxk8dj4ls0d4"; + doc = "0dqpx0kkgj4vcfvlyl96mllpn3kqz8qh2476kpfw0imrp8klsq7b"; + source = "0q740bd8igcdy11nmpn61sb1yy1kfypvif2s62ym80p89qf8v74c"; + }; + niceframe-36086 = { + run = "047y9dh0p51lyrrq5fkvp4dpiszvf2nmx53hccl8hzgr2bs3kbwi"; + doc = "14fapa38pffkj1hs58b7r1zkjn3dql9d98jzh13cybyfynd5crjp"; + source = "095frb90nryk4m2iia4sq3kfrcfg2k3nq079770xlp720zqy07rc"; + }; + niceframe-type1-68091 = { + run = "0p219ccyqcpf51q71185manybxsxc89d1crxxwqs96n9ppn7xb0z"; + doc = "0a3xh5akhxcrk440wa6zwm7cf4yd1smis4pf4gd3cjv3rlkli79s"; + }; + nicematrix-69991 = { + run = "0639lzcv4xjhrc0y8a31v5q5apb1vqhmvasmrsq6cb41iwpg0zfk"; + doc = "0ang6dibjjf0j6jnhnk9hqczhv8dyjva5fds3rkansndxbvh9viz"; + source = "09sjwlnavchysygfm2c9ds349q42ybhydd7hcf9hbsgm2bn7jjmn"; + }; + nicetext-38914 = { + run = "0aqfg8phvhlgvyy71flqsaqwmmc6lsl9vsxpxd61v69hp2qhvggh"; + doc = "0c078pfiw1nz11krcgwbdlp2brdy2xmq6rda9yahfjjg54xgdbg5"; + source = "112ji0zwy54nqswil8lvvcrq0ai7jsmdagvf2786zg9n14h5kr75"; + }; + nidanfloat-48295 = { + run = "15l4rdj7bk1279xjjkgh9a7scfmm6w88civ48shh7gwx8gsvcscb"; + doc = "06ccf5yhrqvshj3d8ic3pbnvmdpjxq54i57y3141wgqcj5h062dp"; + source = "04q480lddynb2gqz8azmyik8170vl056fhfjsnq8ydqj0rchnnqi"; + }; + nih-15878 = { + run = "1rlhnhdz58qqjv563wjpp11ppyqa5smjpzjdzfcra0wd6cxv9384"; + doc = "16klyjxzxj4mipql71admicnzlnasnv9hb5pl52wyk4ic8ggdgwh"; + }; + nihbiosketch-54191 = { + run = "17gggbkag8y4fjvj248wc8kqiklsqmilcyisx9lwcf5irngql646"; + doc = "17lfnfkgjdhj8i5zv08v6lgxrrjg8hzbbq9ihnpcbhj2scn96g7s"; + }; + nimbus15-58839 = { + run = "06bir9vnihawgmc8v4cxjfcgk2fahhh9c603b7d9wzl7mi40prl9"; + doc = "1fr7k4vh7726xh03qz5116winps1dkalnskdywvcvbwk18a2m07q"; + }; + nimsticks-64118 = { + run = "0h87j3i80slsi5nc5299jvslhr1m3hb8hvs9mwz400b76k4x3ig0"; + doc = "0s2v4941bmgxcsmcwz7x3mybzaydj9qshcxwj42fd855sf1rmis6"; + source = "0lkfhdq9iq9lr3aw5dxs21j5vl9w8xjjjxph79imdx6lcs9cbs9n"; + }; + ninecolors-62006 = { + run = "0qvjykxzl9154wbiybwpv4j9da5vyvw2r14hkg9cvyqqd0fn7g3p"; + doc = "14dmp0cm8hbjrd14szkcvkrff3l7shk4k9zlzx6hzkpmjc9qkl0w"; + }; + njurepo-50492 = { + run = "070jmqsm9caidgc0n1cmcj2v0x8dlxxwv54hcqkrisaf4nlkyyk1"; + doc = "04hg7gxg0nplqpmmagqynnddxv12qadamjy3rj1sxhwxgjma9c5f"; + source = "08fan5igmdc43s82s1adq7ymxpvahnp08f90p3p4qlqanj41yh65"; + }; + njustthesis-62451 = { + run = "1ar359ssgan8pk72bbvd4lp2yg63ww6g2ymbjlxbv63qh6czvqrr"; + doc = "0s7dwmmhpb4qr2nnzr7jjh1zfk5fcvk51nxrf7i7ikq8jss0ic7s"; + source = "12lq39rhj0z6msdpshagqylknn31dd2pl6ymk1lfagm2bq8mvx30"; + }; + njuthesis-69051 = { + run = "07lvgl75ynq4fljq8h1pkd3jq4v6zaigqga3mwrhnd880igzk961"; + doc = "02npr4q5ywrvzp8a20mvligfpd0w5wb5w24lx64i9qviid1vrdi3"; + source = "10ggn8dvk6ldsbjqvvixslrzlhg95hfmqjd9ybb890xq3zmc7zca"; + }; + njuvisual-65261 = { + run = "0qgifkahh13dkc07dx32i3hn03rd14pkajg0yw7wx8l0la6nxsy1"; + doc = "15nyzfqsrsvmqg39vidycw3agdy9yhgj7wlfjw649lykbwbqqlif"; + source = "03ywgbapxldv05azn0s5xh9c7a7imq9qwxg90969as3fy5cjbl98"; + }; + nkarta-16437 = { + run = "0mhi640hsr7dy7jbvkqq2yl224i9ialf01jkcma0cq527nvrnm3f"; + doc = "0bqix170zf7lgiv11v4mqyq3iva707zv91z154bi71cvnlknbkns"; + source = "0f6m2wz1cd99s4nxppzdq9jm1hg02xzswgm85dmi18jffgrd2chp"; + }; + nl-interval-58328 = { + run = "1lrj178yhmd4ajwvpdlbsr97sg39k39b8n30wib0ww2lagyw6rgq"; + doc = "0b439r5r8zzhgd5k0n1bzag3naxs2bjd6hlm3sw60viq8fs5wgy0"; + }; + nlctdoc-68448 = { + run = "0rqlbsfwhan0hnxvadw5m77ny65fn0i12mrhwmvr83fm9ybp9q7p"; + doc = "1yh4il6lq6hawxy00v3bfz6piryawsf7aia101knls0nb1ifrjan"; + }; + nmbib-37984 = { + run = "0kmrgd4w63x0f5j5l624j53mhivc7wllzi346c3ny7by6h7mh8in"; + doc = "0fzg9jm7hd3zx5naf487xxfyg2yg0w9wmc60265av5v97qkghirx"; + source = "1m3pnml7wdk0p6vqiyxssqi7rz0vkcvbd2z63wqy28r78w9js34x"; + }; + nndraw-59674 = { + run = "0gffz4kfyz81yg1cv7sgs5zr5a5kaay1pmac5q6v7v89w0bf8089"; + doc = "12yj7gym7kzacwxjx5df3ssf97wrrnsm75z2c1j20srr30sz1cwg"; + source = "1y29n03z9gxwy0gjzm6b5da0cqwg0bzm26cxlrz9551qk8nis9sb"; + }; + nnext-56575 = { + run = "0vf53wnrjday1q3hrplqklfp5kg57ibyjiijqw0jc074gzhyw0z7"; + doc = "1rxxrnm8vb274c9l6lki1bxd6pij92klryigd40wwwwxzh8fc10r"; + source = "1w3p9ig1jivwyy9rlbzfgcy82h3wlj2ig3rdlaq9k9fx8vd6znah"; + }; + noconflict-30140 = { + run = "1flkwyz36xycq4aidj9v6ga29ghbww8ss5dkz4lzsr96nv38q78r"; + doc = "1v3q7xbss5ra1dizg2mz66zq97cfsv5lgnd136xqbbmn5vphl0dj"; + }; + nodetree-68244 = { + run = "1d02cgh8vy6nq90ndx6yy907x8kispwxjcxy1smdjd35308hhxjw"; + doc = "173jz2ihpnwp7bdhq2j6nxkmsabrg9mib185pyz5v55cyh45whlw"; + source = "150iq6m7yvb94qzgj9c290s5wkc0sp06zbmc8kn42wdqz2b5wqh8"; + }; + noindentafter-59195 = { + run = "1gp4zyqwq07f85qp703iwsa0351yp49zyjrzrhfidw456whhl3a7"; + doc = "0is88wpryqdd179fvhjkvq6qy4inz0sp8a7j1i90iziadkf4rchx"; + source = "145bfg8qz8m64x6p2kzkz6skzkdi9jc82q77zr50xms9565bhf4l"; + }; + noitcrul-15878 = { + run = "1whs120vlg4cdjmb1x363g92ira9nc8j2h65qnvwv8qrmh2hrwnp"; + doc = "0y3j12rb8ks8sjs1ikw3sccq7p7zmixc10nhdy9yg9rzwcgmicva"; + source = "1dsjxs73xf79sjq9xynnv78jws1j39l240lvcvpir1k8vnzwfa13"; + }; + nolbreaks-26786 = { + run = "15qa4nf5c9gl3ha4prajqxl2p1ks6fpql03d52prm9vqkwphzgyy"; + doc = "1h9n7ki3iznbzq519cliw03fcn2k40f2rldjkhnp5vlzma81inh3"; + }; + nomencl-61029 = { + run = "14225s3b27dmdgkjqyh4fqcwyyaahva0sk3k6nvffl6jjqdwsgkp"; + doc = "0vqxxjlvgaa31mjfl6jv0azfh7qv0g341i27s6k9zz35a7dwqaq3"; + source = "0fxfan0s0y1i30rg2mwxl21ymfknh4cnw8za13mx34wvaxmc4l9l"; + }; + nomentbl-16549 = { + run = "08jvfyn4vd8qwlnbsqhlxnwnl4qv5b8r32slcbfwshc4kyi2hn9a"; + doc = "0g48qyrrj6npsjcnnzn3mgsmd5fq4v5vzzsgxvvx9x15446987cm"; + source = "10b41ax3ynpdbn9bawkp43whqjkygh8f2p6qdjiwa47w1acca8zh"; + }; + non-decimal-units-69742 = { + run = "133cvqh4vxdsx35dr6vi0sqil75zv3dlrf977dwy5r1fvf14br2k"; + doc = "0qwqzl7p6j9mynlqj2zvwdqrcr75ms4bn3v58jikvywqc0y61aib"; + }; + nonfloat-17598 = { + run = "1ay9s9xrf27sgan2gan86g68i91rwa8spmmj2l13pb3zl5qikw66"; + doc = "0jjil5rbxzcpkyid8y5dahab2ca9r77sw2scgrc4mf2h4nhrjfyz"; + source = "0vyvpxyrqjqmlw2fj4b9avy7sn79m4q8gcbgzdkzzp8d0rng5i8s"; + }; + nonumonpart-22114 = { + run = "0dyf0nl16j7vp955g64rbvvjyqq31x5iv7dbkh8cikwvgn9g85s5"; + doc = "06j6sc8q18mnnnpbj57ykays69n78z0iz1r3vink7qaw4a8fbyba"; + source = "0p3gicf0fzmk0f7lblydf31pi9x0f6x0k5rvdd2ia8hrjdaqv1dz"; + }; + nopageno-18128 = { + run = "098q0visa9g5lh3vp6bp484fglrq8g21v4cb71cnc30f7avkg1v7"; + doc = "0n7p2f039vmd060ncc81yi2hnn7qyk6b7z2hpxh9pp78dwklgx98"; + }; + norasi-c90-60831 = { + run = "1bsx31al77ci58p1zavp5q9dl8msdjqilb19fglnkhgg8bjbqh7d"; + source = "1bsivm5im913x336v6qrv31b926lfr8821pzqshq600k4fgk3rj3"; + }; + normalcolor-40125 = { + run = "1yvbqc6px76phjgy9cwpqwy035nb61nvcxy32v9xa9wfcp36nw7g"; + doc = "0919aan1qxp5lfqm902ijn6sflkzv1dgxi12hjfixd8d1d7rlfgs"; + source = "13lqp3zjnhm1wmf5id1bbr86l5qi13xgij455l38l55is468sv8j"; + }; + nostarch-67683 = { + run = "10gkz055a6j0hnpya1a49ysqqsnf9f85fdnxm1aacjnng5wpshzv"; + doc = "0s06svy9gjvvpjqni59qfzzlwplx12dbgcvpkdi4zj7r9wyh4v3v"; + source = "1vd8r7viglzi00vfxq4wnjdciamhl9yprham3mg0mmrvmp30l52f"; + }; + notebeamer-68871 = { + run = "1glrwrk760xh657ipslz8vp41qwp1qhmb7cwq2p3kgzczprkj8zk"; + doc = "1yb2ml5mc1mr19di0zc168v63n0vl7hb6vq3fggiw9ppl0rzsasz"; + }; + notes-42428 = { + run = "058316ialcra7m56ww7imzqqhk318abwscw5g60hr73x3x7d9dgq"; + doc = "1zq11rygqkbx85cf79ixwcv1w971w4hx8zfsv7z16am4mlxcdz5j"; + source = "1ycxa3m2l13z6a3a4a88wpznvwdb78qyxkh879cvg85apb11rffq"; + }; + notes2bib-52231 = { + run = "02iwnpiq918izkssa8j7fiz2jbfjn87xdjh9spwys98q2cvvxd53"; + doc = "1md7zvcnlb2sf8zw0vlnsnia1l22gr69jgksy5yg30jis3zm2gjp"; + source = "1fb70w9y6gj1a0y4w3zd7yfmk5gygx10y8xjmdj06ky7k0r87qlx"; + }; + notespages-41906 = { + run = "1zn3ygkiyqax88azc7vcrkfw5hfzbbq3jkacnv50c8z5xllk2nwz"; + doc = "0556azchy0yc8757wcy687vn82q0jmyf7n38vyx3admpawyk1pxk"; + source = "052p17fbdpbdpzaai5xn8r0v6lamv7ps78svd27216p71djsfr66"; + }; + notestex-45396 = { + run = "08b59wvl0n718vbzj6azwmj5cn4jk57yzzzzgxkgkjj3kq2926ig"; + doc = "1n7qdz9sf7jdvrrcvixbvk1yjjqdwsr8c4vlw0glwabjyzj9hi3v"; + }; + notex-bst-42361 = { + run = "14r3q4z35k5n0rl2igjs4lj5ic4yd14xksg1qam5klb6raaf1jkh"; + }; + noto-64351 = { + run = "1bq1ysvd9bxcbfql6lwcbx2878n3bjwb3akawm7z025igi7hnml8"; + doc = "1pz1flyv3js1wfw9p57cz9qb10dd64i978z76ngmfg5k1hp0w7l2"; + }; + noto-emoji-62950 = { + run = "1d1mxl32brfyn3a8jpkby0kwv69gimj9wcl8y61jd2qdlfd0mx9z"; + doc = "05rch3ybas6gds53g35gda10gia61v49kgxi3gzcxvn92595zv9a"; + }; + notoccite-18129 = { + run = "0cbvwvgh3rkms6akamnrmzwm6796ly5fa93qsb30bqafgmx56il9"; + doc = "1h14fkdn5kvxagkjx8h6f6a06v7y9z48s87x52cblwykgfm70qxz"; + }; + notomath-68014 = { + run = "04ik99znmf5a97q474p8fj4rhmggzggn9kbdyxhpwxcd1s15w629"; + doc = "0bwcf8s46i3gb79yns1y7crfhjsv32np496rhqq197cjd1c4lml9"; + }; + novel-69945 = { + run = "0q600v03yrs5by11c63idvsmfiaz3jpwkz778b7xydbnqbshvxzl"; + doc = "0z0j6q4ssxfxlgdfs3vva5ahr93bbnryaqrbqn1p137pp6lamsw7"; + }; + nowidow-24066 = { + run = "1w18i36ynsyldb9gs0yhv6plyrjs4762y7bglncv7bhqjmyy7y3g"; + doc = "1l2zq2ain8nhkaa8aagpm22nvg8p1vk2cdgs6pmrydk0hhmjh01h"; + source = "01qjfpps7ahmrwvg142mspj8gsyx21l3nr75g0v7qsqxbfjjy6gk"; + }; + nox-30991 = { + run = "06036p9059x0lzliq9b2pqahnbp8jlkd1gnq300rq0syj37mjk5f"; + doc = "1qfjlzczcnmf3pgqf4qr5v9c6ws6qba9hm28h3xwf2s3099drxjd"; + }; + nrc-29027 = { + run = "01pczvyzfc2vnrfsab180fg0nz13cmry0dvdxmq3lxzp75ji5aqj"; + doc = "0l6lpvddg25k8dynqr26gj7fnaq7k6zbzp5p62684sz9351pvz6c"; + source = "0lzfw45m3mw7yd9sx6lya6cvan696p74wrxgvmqa73prc2lhmbv8"; + }; + ntgclass-65522 = { + run = "0dlm313f7m0cj0fsqv884xi16kq9imrkkiaxg8lszy8idp9vvmhf"; + doc = "1c8kc3q9xqxl28xdyzlnlzwdfixbfra6vi32p6iy353mdhvhx2r5"; + source = "0fhs6v9zkfxfxp2g17h4cxa4k9dm4dfgk2dl76w61ad41wd629d8"; + }; + nth-54252 = { + run = "0716sd99xjdkplm7jdmg4lx8lpfnnx6mxjp1l1sp2bfqcg73p4hm"; + }; + ntheorem-27609 = { + run = "1mbrpw822ibb7wpzbl3fhnxg4djwy32knn9hqcvw1kpahgfbks66"; + doc = "1f1cridxgv2rwv3f305hsd5pm59im1ik8qmpqhq4rpvwph8ny140"; + source = "1pkrhkl9iq0giyvk6lqjxx5x681rjl9zmc0kmcypwgbqww59hp0i"; + }; + ntheorem-vn-15878 = { + doc = "13lkgb4qjiblbfm4jcxgkxsf08zk90lqz02bxrmim1n8gvyihwcc"; + }; + nuc-22256 = { + run = "1918fk7bh6pz1grm1655fag16i0ir67ywcx28jsggsly6641nkm9"; + doc = "0r4345bpjdb9f5gmcdjf6zav64gab5f9i4nfql01yg7b7mhk487x"; + }; + nucleardata-47307 = { + run = "0rrxpz66rf6g9cp6ix4rrbjqj9s357qsbv87dhri62iy3alw5bv9"; + doc = "0kfi9c6isdlf188zsk2yx38z43zjzxf8fhvl3hm2y87di2kihdax"; + source = "1lai682rycff3hm954x482hzn1mq1lrik3g1fwkbm73s99nljyj1"; + }; + numberedblock-33109 = { + run = "11v5n8s9glczglmqm4bfykg5v0qdqr2wfnymb15aichqqvbfcgsd"; + doc = "0rh954i5167pmwmisn3v26zqqgdrk5bcn2pc16m3wyrdgvq02kzw"; + }; + numberpt-51640 = { + run = "1f4hmqlkfzqm8c4q9cbcqsh9pkchnylfv6gfzafgn9v3rdksg2dj"; + doc = "04hdl6zrzw4zm8cihvfidlnjirfj7zlmh9mb7nzzq68cyxn30256"; + source = "0ha3v5lgn8sycfxs6hlbdf7n0b8mcl2mny2kx37s1bib0h8i0bxg"; + }; + numerica-68021 = { + run = "0x4nx06ppb1blp4012pb6l3fkp3ikw94xy9g3653cam3p6pwlviv"; + doc = "0dhsfbysxrm91hxhgs842yv6cxx0agsj486sibzwsxajbmwxc36g"; + }; + numerica-plus-68019 = { + run = "1x4dmzxb4m11kdscmp8n7jd1ihd21h0nh6dx3gx8nmxghzq20160"; + doc = "0h3y8nxw4zdbxzwkfkffkc8p0pjmxd0lh8zcn5cisdjzk2dsjjyq"; + }; + numerica-tables-68193 = { + run = "16zsxbdydwzh460qc69zs54w666qmim5rn0lgf5b9kx2l0x8mvbm"; + doc = "0b1v2a44lzys1qq2c98c22v0i920j07k2ayi8l4kb0z95gzq4y29"; + }; + numericplots-31729 = { + run = "1c127aalh7jcx9rxhsyhi2k1qdz6fg8d6qj0kvf564s9c0npgar6"; + doc = "045z6l4dmn3bzfsn7gi6bdhwvp3cbf9nj8fcs6q07vi4by71bk98"; + }; + numname-18130 = { + run = "0sj8plvx36i2azwnk9zhxd16x7dxk2419rdzc93pl3f68kxdmy5y"; + doc = "18iarxgxxi5dj0cj1bf0il74ndn5lng3axf7zz0jwqpl5d84pz6b"; + }; + numnameru-44895 = { + run = "151c13r8arj094jw3zaymz6i7invgpyqr95p0qnwhj22z418pj1m"; + doc = "1rrargznsmgq1h6a2ixxr9bg57zcrs9zwhxgz0ssbscdyvjqik8n"; + }; + numprint-27498 = { + run = "0wkijyxl1zzay8vqvsyhk6kf5247qr8k55rz91dn1ph7b597d952"; + doc = "1jra448iyyvc8qgc9z49brb6j9c89fzf5zhgz48k9959bv8izs8r"; + source = "1svwh456nbswkrmj98s91vr2x05fvs58chkr5d5slq14wg1cpa0q"; + }; + numspell-61132 = { + run = "10rqraqmnd3pybpih3fhk0068g448252hwcckxzd9vd33n7gfw1a"; + doc = "1hlfb7b3hq9ps7l6z0qzymc8mg67kdipcshb1bpkindasx6dnkl3"; + }; + nunito-57429 = { + run = "08hnxivx7ixmvp7l6kxfr0vxy7c78i9jqkam0xxg5mkxs9ip481k"; + doc = "0xhv3rws4kp5s4q4c10ykkf3yyl9i9ndxjavjx9xxxwm1iap9m3f"; + }; + nwafuthesis-66895 = { + run = "0vicfc3gnxf7cvj7lqa8sd5maxlkfqazc3wi8il553fw88dxvkcq"; + doc = "10sln765phsv6rpxjhn6z431nwwkch3qbq0s3wjk0mc34302qykx"; + source = "1xk78d8zaqbn82lsw0fi428ac9ybs0xnnva2lkb9k8zyijz5w04r"; + }; + nwejm-70606 = { + run = "1x96p32bb8xpcjr4831fc3217cr0is3lm81fpyhjp23kcdzjk56r"; + doc = "02ii5nrj00mv7wvkn2bgzy9w2f5l11bxs9cllxz0wvbz17xflb6i"; + source = "0rwm5c34ycklp031w42kbwjf75nibv7y1wa0vcl9av1xwi017nnq"; + }; + oberdiek-69038 = { + run = "1gp308z3xisg8qmg6bggddmmjdpcg074vv15jwhb6z8xfwyj3jvp"; + doc = "1cxl8d26mclv7054s92c11s301gk9kv11zicx8ikv7mpa605ylrf"; + source = "0xcdyy5v1a28zqyip8n8j8szj0bdircciww0a98w5wfxgl1d0dym"; + }; + objectz-61719 = { + run = "0s93jjwcmyjd126wmf2rw3776jgq0ldk40f269cp29968q00sfn3"; + doc = "1qxqphnsgh412lizx6jij6qhnlx1d558bzd3klqf950bp2hy3cm6"; + source = "1l8afdawrrcnbpqdhjls28ncksg8lzs7g59viqygwixwplha0fb9"; + }; + obnov-33355 = { + run = "14cz2rqp4sf4f880d49yhvqjkzm5aw91cdijmqwf283cqgzhdmlf"; + doc = "0k20zh42vcm449dh662frdmspmycx0mi81ml8qkvnncy8h40jxr8"; + }; + ocg-p-28803 = { + run = "1cfg5253i7rb0ng65fwm6v0yhs2l91gv0a3d8bra1bkwz2f1mfmj"; + doc = "185fgw41dbw1hsbv5lr84spv1qcfglm0xhrgwk92g0dgh20d0kfd"; + }; + ocgx-54512 = { + run = "0a1mvlgn1vql9w8ziks677ysir9fc904ihxhn2hy5qsk9j8wc5w9"; + doc = "06d3hdgvwymvxq7vv7ccjiyay6vf2v6c8wznqxyjjb8sv64mzlgd"; + source = "0z2jgksb5pccxs2bf94vbzb04b1k6a2ssrx3fxc3fwl3z8afqq9q"; + }; + ocgx2-65292 = { + run = "050cz13qibfz6q92qah8l1ji1c5g8r3p1bvd6wbl8lqwhzfkc203"; + doc = "0jkzkssihk8gsk90liydqpk3rr10mlja376p4rd7kpyswdc6j7q0"; + }; + ocherokee-25689 = { + run = "1xhb9y2m6sahkqlng98f9rqi94hrj66594zqdd2sv82902vfgl9p"; + doc = "1fqjs1zwf9rgdzzc0wk39y3jcn150ssh6yvda4jfyqg3sv17wwgg"; + }; + ocr-b-20852 = { + run = "0y62xmxbw7573fwvfr69r7bhfcywvhcb4mg7am5c3j96ipq5vqzh"; + doc = "13r2chskacbnfawlc9xwskrl8lqj3dx8gzzpyjjk09rx1g5q9gc1"; + }; + ocr-b-outline-20969 = { + run = "11lv3dba2g8mrnfh1y6agg8ipivhnppd3s7gqljlpdbdbk40zbyn"; + doc = "0017l87j9g42cjy1ki2xksh6xq0hl3rsxcrdyrddvvxp520p02x4"; + source = "0yn2mcwj73mazk503f13qmfy2bqkq0gz264ckr33bc88f1i1518b"; + }; + ocr-latex-15878 = { + run = "1l5s8wlqk4fc9i3fizhbm3c7nafq36w39693xm1x07giqqw8q8cl"; + doc = "0ai4kr65ls66ywxncb63jr6gy6lcw6zjvlgsbp4wd6kfjxs27bh7"; + }; + octave-66115 = { + run = "0sw5r5gqvpmrn96rfz8y8hdbrwasv751p7ga5dary1v1kp4brcr0"; + doc = "1r9wywnqhgrg2jjlzyafhdnyxd3fa17zjbbw1bj2a3r2jzd201h5"; + }; + octavo-15878 = { + run = "16pwz513a39630p51n84761asli9kba5z3pmbgfkcz7yfk9iiq22"; + doc = "0rdb58jnyyp12i7ndd6qibs2jc1f0zcw42jh9j48aid6nwslvrbr"; + source = "1f13rhvd2l3v7fdivk1ybw0gnacv9y2pzwnbw8ykmaq3x7m3x2j6"; + }; + odesandpdes-69485 = { + run = "0015ldwqcn6vwayrdljikhcrwif0dsfpj3hbkk47j3pbz38i42xz"; + doc = "0l5fbi2r9g0nbs36bgh3c8fnc54qa24xy44yyw1bzdsnxgq80glk"; + source = "17ffq9wg976f5dmny63zxzic58sldmnv2hvf4zm33lb3jgf67crc"; + }; + odsfile-68204 = { + run = "1k1rhixcwaqyzawpajbi3ljnmawc5l582vb0vzsnmq5dkry7ccsd"; + doc = "1jrq1mp70vj3cncv1l4f8km7yrn2lbhjlcrk0qa716r5isqhawfq"; + }; + ofs-16991 = { + run = "0g2rxji8g1nafyg1nzpy18vzk20p4p6r754m89naygs1qn5n4h01"; + doc = "1v1z08m2ha071kb8zia1wlgkflkzj4hjws8rqnq7asvhi1s2p1rj"; + }; + ogham-24876 = { + run = "0hl3xjmd2bagcn2wnmr2rs1hzmgvm421rkdaimplzdnwj0r64j49"; + doc = "0phm6xdxl1a6nh6g17nyz6p7f2ymll39k42588dzw45z7zwan40i"; + }; + oinuit-28668 = { + run = "1wr3r06hbxrc0v9cwyp7ad6jimw05x3yn6vqpnzchk5l0ixnlkaf"; + doc = "1919kmp5sxd9q49m6dd8zrnjx0cqgav1i87gag1rffd5hz9w4fys"; + source = "1mymvxv4721nhmfdlbl9bgc76dainzykggf93jx6xfwlld0krgis"; + }; + old-arrows-42872 = { + run = "1immbai327l7vkq67nz6mcnyqmx3ajg3blrhbmffkbl92482bv4d"; + doc = "01kdfgiqp5n74lipiviv2alzallba37gyzfp1sqrvwwvrp3a3z63"; + }; + oldlatin-17932 = { + run = "0cxpm5qvbn0a643x2h4dc0pf00kqqk1z540j6dp7mbiwv48qqzdb"; + doc = "1my5h8wq241dm3d6czb1spznrxmrclwgn8i391pwmc11z2ijqgjk"; + }; + oldstandard-70428 = { + run = "0zpj2g8skx2c4k4qwp45dv995zn2qf738jvwwa62zmlknpwm8laq"; + doc = "0fqa1g80ipsbpbj77n9g1djs0prikfs4xi0f1m1vw1cp12bcbiv5"; + }; + oldstyle-15878 = { + run = "14lm3ghfgfqafqivam1dqf3gqgkchnbnc84z5i0whg2p18x9zns5"; + doc = "1qj8nbcx1krpha49k4yzyix13vs9s41g96r7kpdmv52vlpfgs4lx"; + source = "13c4dxvikdxx7qv7y9rfpgj4fgzp21q71xpmq1jzx7phwrsn6wcw"; + }; + olsak-misc-65631 = { + run = "1gm01jvlj8vcl9a3v53bcmg604dzf4immd39dj6n6c692r38hhzr"; + doc = "1afxiazmp8pvgfym1i2bj8k5slfqi81d915d7lax59ib0p05w4mi"; + }; + omega-33046 = { + run = "047w29bij6g9k9fl7ymap4arhdmm9kvjfsikvjkf9nd7shd6k4kl"; + doc = "0r686ck7z6vxcajrjihp4a4mh3z23xr8ic34dv9yp039dh0kbm71"; + }; + omegaware-66186 = { + doc = "06kzz0342h6vvc32ydrzgpqsdqv5l0jbd5finr43fmzqi5jnswil"; + }; + onedown-69067 = { + run = "1hzj2cyyp3zqa2wnw576cjqg6nqziahdn3vijg9y7jr0gc3372ch"; + doc = "0a4hvgsy9i6a26k6n51dv1pdx92d4vk6p3vdrbx8mqwigwa3rijq"; + source = "0kbilw165090a925g1p6z6ayfynv0z7zjzw2c8sca3v0ncyy3cdj"; + }; + onlyamsmath-42927 = { + run = "158p92zgnmicfwibiyr5qbkwwkxhvfpvngkbpbw6grbdhlwsn63g"; + doc = "1d2znlhbz509rqzlwqnbz9b64mpbhckh8pv23fqr8058xlbazkh6"; + source = "08znvq2bzapn0dfa7f4sd08gm5k7m3sh6hkwy17zwkc0987wx487"; + }; + onrannual-17474 = { + run = "0bj29lk2nlsmky82ablxl0r6k6wl627zrsv9g97hydgdmi5nxasz"; + doc = "08c3xmyiz91623lnps3iahi5ga9941nc6bvxmdihadxhm2lk769z"; + }; + opbible-68465 = { + run = "0njr5kkp6a0xfd010w3n8g65bv88zx26yd4nslajsip2nzad14n9"; + doc = "0lyghd30v6wx5cmv7sidyy39qjkng3xlazgg50s6iaydld8hk608"; + }; + opcit-15878 = { + run = "1g54f5sv05rg1xxpydsakjrlckmh1wq0p15w4q0935iw0aq7rn8g"; + doc = "1rx3ap93f4570d006qci6j6qi88zwxc8504gg554aak1lffazw5m"; + source = "0242ajp415h3y20dyvi2lrp38saq10dgb6hpnmadzs7wrwxhma55"; + }; + opencolor-66363 = { + run = "18a6vha0n4mwgx9lnm3d4j4rkf72qx88fbzgs164arzpx4gp0ypy"; + doc = "0n7myxbkijvqgxsvf9c2llkwhqj06i80sv81vgkxvx16974z0mg3"; + }; + opensans-54512 = { + run = "0xj7v9lv1ni7mq175l29a039a2ifmdsy1wnv1h0gfni5c34knm1w"; + doc = "178pa2kjvp15la857iblh9qc195z3byd1wxxyn7c5bzmndvypgxn"; + }; + oplotsymbl-44951 = { + run = "1x5wqngjdmc4751ci5qaivzgqynmmg00kg2clngxjqf48n4fakdd"; + doc = "0bj6w6h4g991rfddmrxgc02090vay2h2qjx36cb0hfx55gwkmh3b"; + }; + opteng-27331 = { + run = "07a6dja6s7c1759i9afgacx4v0fli98s6mcq5zig689hpkw841fg"; + doc = "1125aj55p7n6b03mn6p6845yvx2jbjkwwldgwiixypklndqsf6cm"; + }; + optex-69864 = { + run = "0p4gx46w18n6zkpligmd0ya9mam67rqkpdny8spiqfz423jdsnmf"; + doc = "1wa2ypz7xza926fzc8lczrvqzx3b1kr1idxiqb5fakxwd0zyc7c3"; + }; + optexcount-59817 = { + run = "15i48ly8mbhhk0mq4gxwpwbvhpgvk1pb8bfbmfk83sp1liq7xijc"; + doc = "1cvhzkl2lbz939y417ipi22n9alh9j7f06d2r1s0h294692m7bpv"; + source = "0s51426ib070x23d92rgpj247qni42hzaw569z64i7zr3nyx16dh"; + }; + optidef-50941 = { + run = "1jvalzi2gid20wn253swvhil05m273x6685n0b5wbrz5kbvzk212"; + doc = "0sdd6rsdfx1fcw1493b12ww5llww6mv0rij3f1ik290c6qbmyr3w"; + }; + optional-18131 = { + run = "1mv65cqcrjhykpl565z96s57z05635q513qr440crbh61rp93chs"; + doc = "1ks001q2b1yw87q0frhqq6yv77mskng6v1sm6kd8r22cv5g49xbx"; + }; + options-39030 = { + run = "1v2j59zcv5cplh3czd6r7cs4n79yvw3448492bxk446j4lx2mfcx"; + doc = "1za038prpjb3s74ryr25q7hmz881gr8abmf68h7xdjq6bdk73da5"; + }; + orcidlink-69253 = { + run = "0gjgjwgc05iavwwx6s3zrmb3ac4nv5y533bgap14wwx6x50i2hf6"; + doc = "1ajspvsx9ginyh1j0k1q88081dh0jxrsyr0c249wlnkbdkpcf6gx"; + source = "0nlhscyjkg5lgi0y7sddwkdr5v5wcs4ilxxcpap75a9hdk4ckiph"; + }; + ordinalpt-15878 = { + run = "0nia32ms50727kn080xm2v0kjzws5sj6jdy7kglp8wkipvc6nw82"; + doc = "1nwfz0q6csg7rg3hqgddjbiz8f1nfcgghiqvj2wxqf0cfjh8zb95"; + source = "0rzlbngvszl1sjrigpn55i7a8rwnj9sy76c7gwb43d4im1ybd14d"; + }; + orientation-57390 = { + run = "0qcqyr76wiks50i1zr3skp7bsnjzi6snsyvsm2za3l08kbdi3ixx"; + doc = "02cmfz42sdd1gr4yaha603rppdh4c4wjj0jbcrmwlfgl9a47rj11"; + }; + orkhun-15878 = { + run = "0x78b5d70cxy7binl5iq2jwgsjh9rzs87wc8ib18jxscqick5jgk"; + doc = "0q9hwwf80hq6wffyvd26kq2053vs5czly9zlsclh93hsmzg3vj9g"; + }; + oscola-54328 = { + run = "06jgk12q9hmbqcmwb837n8l96f3bafc7mgnv4v9amnh4ajlg6i5x"; + doc = "0qzn7d70vl0lxyql152pzzhi72ivdslmxvfwr70186lh6fjxr4nb"; + }; + oststud-67217 = { + run = "1yzsibisphck9a6dlbvcs84qz3lhnj6amj6vfzh8rgy40s7vvz3x"; + doc = "1sj2lk6fhx9bdgpxnmw6m25yrjmka6m2ygiapj42jp81n51pvyzn"; + source = "0phykgmzds9bvsblfazg82arwdhzssjc6b9faazi5h57jcmvbss8"; + }; + oswald-60784 = { + run = "1dkv4javwj8zfk987grjx00p0p3hnzajm4mgddm1g4z1zfjfdd4n"; + doc = "16pgbws7vf93dwaw8cm4laz09hywp1xigrbdbaq9ngg9g97sn0l0"; + }; + ot-tableau-67813 = { + run = "0wrxkvi28a19kdgsms38wgxgygib0iypz0y830gizq339vj72v2l"; + doc = "143rx32hnxnbw61n8w6skcqs8ix411dwcwgn43xzw238almmhidx"; + }; + othello-15878 = { + run = "17y68qzxifgnh8k1q6qfn97ka7703ac8nqk62ridn1wbxc6fb80r"; + doc = "022pv02lvlphl8168rrcdzk6w7d9wd52riybfvvy537ifwp7kqr9"; + }; + othelloboard-23714 = { + run = "00cybd6dg10bwl2k87i2lj9jq1nmq4jc9v4qhjwqij5zv0l5yz4v"; + doc = "0g5k2q33r726xyj1mp08qmyb4xdihiyzsm52mgbdn95iz08b2989"; + }; + otibet-45777 = { + run = "0fg3gc7614r1b304g78ipq6d84bml2q4mvl2yc49jjnz13nr05js"; + doc = "07l6475b8z98pkmn5labv4i4q6g92lh5bdsdqcwd28v5y1jizhmy"; + source = "0lfwadx3a1ni2k91dpzsdh297j3viq5dazaz78acb879lgz61ik5"; + }; + oubraces-21833 = { + run = "1rhavggv1c50krafvh7lwnvarh7lh59x7lwkipw24qakq7l2a6mg"; + doc = "1bw3b54cn5dk0j4diq8qxfba0w3p0f78h4kycb2bqd2gq7258vyq"; + }; + oup-authoring-template-64491 = { + run = "0cqhrwpylpj0z5gcgx9lyhsh85vam3nfbzzsz9x9laf2rdi0v1qa"; + doc = "118916mwp8zbjdqdwmxzwaf09a16rc2zrll9qmig33q48xszdf1r"; + }; + outerhbox-54254 = { + run = "1867xhxlbskiysifmwlr10lay8khragzi36fm552cwc4vjz2ybcz"; + }; + outilsgeomtikz-69124 = { + run = "0a0g6fnvxzh942n5lg71y2ry39ra9b01y8ngjb05sdvka9a9vwmv"; + doc = "12msajfyvrqawq4j9d9pcqfsirsyiw57pna9zadkj8mizikfdv75"; + }; + outline-18360 = { + run = "1q5dr9xlsn3fz7bcv08biv5cv71qf8brzgg4468mksh8lc8r2kli"; + doc = "103sijg9ib5qfwaxkdgf11zsdg2c46dv00hn08sspl56a08j54sl"; + }; + outliner-21095 = { + run = "03j0mshhrchrgpa2z7j7q6n783va5v0w16gp401rzbvvdn0l2qni"; + doc = "0vi80qhq10yy051sfzh6pmn34laghhvx6plnggrwvcmpp4fcw14h"; + }; + outlines-25192 = { + run = "0wzrf2fkf9kh0d3jjbc3kxvsmkynwzg622ghwcabaps097r9z45i"; + doc = "1avkpx77sis4hrrs9dqizq2sz4vjzvn19ks8q7l32qyz6lnxwk2b"; + }; + outlining-45601 = { + run = "0kc3x4zq24f2dzwzypdi4ysgsfi40l54zxpaxdfgd662wxangrsp"; + doc = "177xwyzq3mha4061dxxshszsyysmb6nl5b2grg4m55mn19qlw2f0"; + source = "029wnd1px0wdgffblxcbs33r1ffv761sgma7bap9g2d1n3dwja2c"; + }; + overarrows-65853 = { + run = "176w37bvjjc8hi2a48138gj77sj1ibfnc71355lpk3vh2whhrx4y"; + doc = "06v0v79kcqakhkyjnp6c9rvqryiy8rrim82p0d9m98dib48h7h3h"; + source = "0nmh0rrsbbcl842lc1zl2dhj5r403phamfbfxmn0qs0f1kqd2awn"; + }; + overlays-57866 = { + run = "1xfbb4953ab25dbccfsp9ban67vrq79j443mlglnzqmg1njrckk9"; + doc = "1nm0d47vclan46q0zvigxri5zqmfpv0qkk0arsg836vnv7l53q0g"; + }; + overlock-64495 = { + run = "01h1fcgplfbfbkb1wp0gnf6xrqn8l8y1hxrd8gxpjqbg53wr278p"; + doc = "0gl3n6h41fbzi4lcsdra5z3vafh7drm6g04ilmbb5cbkpnsyl3nz"; + }; + overpic-69343 = { + run = "17bbk29v6pkrk9igzx4by586jfc997mj07srhgy401mnmxls2jyk"; + doc = "067rq6plcan44h87adj9jlhnnlkk2f4slsid4v6x80423q4gfqll"; + source = "1wi69kgglry5r8wg944x87scqsqx49ynj372y0qfa7n4dajxgzwz"; + }; + pacioli-24947 = { + run = "1fc15ygzkdbv5mykgrmzb6filkl3aipk7i9k1syh2ssr37ldxcjz"; + doc = "0pknnd02q244pxyc2vapdx04adz7gwf41swda2xi3039x82pm8fd"; + source = "0zl6l5yc7v5w1xjd83prvfmy8jf3jyblallphyglgb4vkqq6mxxr"; + }; + padauk-42617 = { + run = "1yjqxzqsvk2mdsk837bgwqf3nfm9gh873bnir19wj5kj622zfh4d"; + doc = "0331w1z1b5x15yb3xyxv008l95idv5yq9xb87da5r9p5fzfh1z0y"; + }; + padcount-47621 = { + run = "15p8g5hjwlm80xnm9py3ss6afl6c8rdq8f92z7518hp0yp7d3zfw"; + doc = "1crpv27a9rfmh4dcliqvi7aa4h4lvkv48k5zk0kx6ahhxa2zkzaa"; + source = "0vkk0c7gvzihlmw3f8ni4awj9r6xrysj9rrsbqk6dkngrg02x4xz"; + }; + pagecolor-66885 = { + run = "0ycmswy7jghmnpkdv6b519yx7ga56aw7yxq6671nlg1iq1k045kx"; + doc = "18xnh0588b95h7fmqwqzb0p2n9fclqy0hxv3a1cci8anpcr6xz0q"; + source = "0qc662yig96f53wdbawgvsg4wx0dikcnf85b2cffwlkr8qzrwlsg"; + }; + pagecont-15878 = { + run = "1fh6bplg468dandbyvmwf13sh27r6x4dmrwslldlc9580h8jv02k"; + doc = "1vrcr5l1facyyf9p8977q0i5m7cn7y40dbmiv99314iyawa3rr1g"; + source = "1qc105f5v0jiahk8gpgr77lqfaladba4hmqnfizbblzbjhhgg05p"; + }; + pagegrid-64470 = { + run = "054yaxr2q8x82dii8bpy3y1nhc1drvwm98cd3asaddh4lzrpl9vl"; + doc = "10rsrkdl9bp04kxxl2g3rfscf0hcw122py25x2jbq6lgz76780jm"; + source = "0fbzd20z106cgzknj98ryzmwiixmbpvnx5p8v3ns6yjrwrcng3lj"; + }; + pagelayout-69486 = { + run = "15k0gbynhgg56h48lwm14mchksj1hs1jd9l70g9b47sl8w8qv1w4"; + doc = "0bxr4apcms8bjmz4zk7y0r7yqnvd5kx8wmg32fypds07hs7075vv"; + }; + pagella-otf-64705 = { + run = "1vrzz63la6i270bjqb1nd4rsqqgl13nrqrbmr0l58bmjj7qh95d1"; + doc = "1dffy7z3cfyq2kzyvbarlqivfv4rs70qa7drii2arv2m1609ylz4"; + }; + pagenote-63708 = { + run = "0jd80dz0jl2gmfr74lw6jy1x2hj6zlji9az956gkj8bxxc6zir54"; + doc = "1s7imj4fi08487xmcsicsa4cknpsgd10dbcyn6vkggm95qn6119w"; + source = "07ngnfinv2mki203in54l4gx7r4qx9rm8k4x7856gr7jy1wkw16f"; + }; + pagerange-16915 = { + run = "1nixc1dn9cbdi3pa5yxajii6c9ljgc2jrnknsa7wb66kj5j1lqch"; + doc = "1vy3c498j95miksm254a1sh7d8bp3g5p7lvncc1xad4g388q6hak"; + }; + pagesel-56105 = { + run = "1j6rg25mhaiamlff4j4lw8pbp6x3mcg00biqz2apsbi6kmbiljw8"; + doc = "09s7r6dzv95689ysdw442gyqsd2jpdyr8hkrigmn9c4sx32alq5n"; + source = "177j2s6chsdhhw63q9g6ryc06vn6rsi29n4prrn2w14fgr3wnhcc"; + }; + pageslts-39164 = { + run = "1lm8707bl8a9kxrbbr6sap3p66zwjklqv13invm4gcsg92yf7yhi"; + doc = "163h2h9n4cvap2c369f2yxv3idij6wzjqwf0wd7w5024h1vvj683"; + source = "01nwizj0vlnwzbqyl5dn02vg5xl2aw60wyvp4plm0agg8kxmsi3a"; + }; + palatino-61719 = { + run = "12jc0av7v99857jigmva47qaxyllhpzsnqis10n0qya2kz44xf22"; + }; + palette-60119 = { + run = "0wabk4pw6gr9y309dsh11w6gygayzglh0jabqi0zsvy0ikr7wri0"; + doc = "1dp867fydnxdw82z4gxp1sbz5w5q9jfnls6r9izylrzy242rd52l"; + source = "0iic125v6j1ljgnm7d0qicckxwmgdg7cz568556257js942ldyxx"; + }; + pangram-66300 = { + run = "1x8jdn8j3dgzkm7zv23529gr1jdmh15wkwkljzsc1dnviz0ppacg"; + doc = "1y7lakwbh58y7mvwfqp6m4r9ad0kblsls53n7ciq994hfa6gx07z"; + source = "0xq10764gznwqf7nfaqjjqd6s73a9h13970bcrds7jiyq1s8l382"; + }; + panneauxroute-67951 = { + run = "015w3jivsfxcb0gjrlpz796p50wchmb34w3ad0dk73qhn2jrx6p2"; + doc = "17c6bnyxs6szybqb1ihv0q8pn3wb950s64z639vhdwhaqvppd2f4"; + }; + paper-34521 = { + run = "1d8w8aicx5drrgqdcrsb7vdy39xh6xmnnpympy1db5i2mc2nkjca"; + doc = "1r03wy4harxplfhqp0dsqfpp0s4j5gn6k2p43fpw7wndna8lnhyc"; + source = "0c1iv6aynpfi37bg30q235zdpbyhj83rkir4kdg4vl8q27c8gpwg"; + }; + papercdcase-15878 = { + run = "0gfkn87avjnfjx2k6hz5k2s9iy2lxwx9x4r0cp1lcwjgjsavf2y3"; + doc = "1hm0i4vvxhxn0wvsrbxd2lkqspqkq7ik3sxxm1nd575p5l3zgl69"; + source = "0mkadgjk395z280220zndpbbks331d5hcsxqnarpjmh00mkhdj7f"; + }; + papermas-66835 = { + run = "19i4m31q8jji3chanrbqqxni9x2c4mk0qp1scf0brjaznrcv4dvv"; + doc = "1an36yvg7z1yhb6gn9ppxp24qgdjmpndwy8nwn87cyr4fqmrmgr7"; + source = "1r3cw66snl1dspbr9i6pz8v83x15ylhm2k5nbksrf7f24jrvvxn9"; + }; + papertex-19230 = { + run = "144zirbvdpq1q8an6i5rngycmlrgicf9skh6mnwyz45n4zyyzyg1"; + doc = "1aip8lhazpmmvdib6yqivbgjagyyhmava29q9hrlx833385vvnhj"; + source = "0bfkh8vwqh6jx34fmqfqf2qz5wjpmq9bpzbppf0cphs5frbwg10b"; + }; + papiergurvan-68239 = { + run = "1gyf1liq3lv8dbfdpv2ilbwks4k88m2ywnv3qxpbrg3v2l010c75"; + doc = "1mw0sc6svi8rci96wl2273bgn2f3w44gdczaldfflxc7az4mhmvb"; + }; + paracol-49560 = { + run = "0lbdk9wbs6c6kq0iyf6amc72m1njdf3h8yvcnka9dkhjp228ldf0"; + doc = "0fnby29nnrasv32p9xwwwax57ijzscpnsv43rwajlqwcdhi3s2nj"; + source = "0q9izjw8lrwcbx0cpq66pr33cn02wl4daxsjvlkrjzw8zzrijl64"; + }; + parades-40042 = { + run = "1vmjda4cvajsqai47wvl0byi552gdcy0j4m36p58gjn3d9bc8818"; + doc = "1lz9dsy94x5cvv55nk975fw7dlg4bm6d8ls0p6gy5b58sjd6vcp8"; + }; + paralist-43021 = { + run = "19m0ddw80vjzm8p0z5rrd3jf9kqzq653h3jdqlnjw4g81r0z730p"; + doc = "03kv1n9m1b6r0r5drp81hv2i8dgnlcsz81rhi4h6a3xyxnyhw6bj"; + source = "069mn3mk34rxxhl1c1878zs61pk7asa21iwwk6r2v88yziczkhlm"; + }; + parallel-15878 = { + run = "0hja3k53n8v8qzj1vym1j2b4pj7hqszda82s83kw1v5av6kcy4da"; + doc = "1i0ls71ib0l3igd52cgn5z0cjz0j17hsj0qc5y4sqg2nvivvw7gy"; + source = "1slmdxldvxrvf61aa1b7m09cxpv6jsaw5lvbgqsby6jvgfp4r4g8"; + }; + paratype-68624 = { + run = "1cwcw13xdarisjslsp8aayb984fk4qhx1ihg887fzli0wn7kpvvr"; + doc = "0kz4nzz3v6a4qk2svgqyx02j0pni92qpm5agb6k0vwylmvx6yyzi"; + }; + paresse-59228 = { + run = "0mbxnc8c7iiwcmh17n4yhl1imvsq2q7wng98k6h9r15nqf5ivk1x"; + doc = "1qmqki6fm316bixxjispq92dc1b3zhrnh4ad64wdlsr3fpja6g1q"; + source = "0dc0hblq764q23xnz7yj1nawdr5m55526l0dw7b49p5rdb0zhcg3"; + }; + parnotes-51720 = { + run = "0d8600ssj90rwl9rxd27i23f58lmxyf5r1sn8yrl8fjnq42q447b"; + doc = "089i9fwzjcv98pnqmhca26wpvn71zcgb79y3jg5w8szagli38839"; + }; + parrun-15878 = { + run = "08cbzlfy5cfkxpgr4igv3282k1dx9bsvsjfdi8b5dhl2gacg4i7a"; + doc = "0wvbmjzi8jwx5gdg8zgb4p3gz8v8rfp2hw67q0rm5f9rkza1a3ds"; + source = "0d79vvc4j1sysbpy1qdqwd27fai14820z0hqkkd6hrxzq39x6xza"; + }; + parsa-54840 = { + run = "1n2yh9v3d8s32ylicq5vn76m91s6648zgvys6vg8m63pafzl8rlm"; + doc = "0i3d87kajjcw9mallswncp113jz9jn35jkj2y10dmx6z5sv3x3qx"; + }; + parselines-21475 = { + run = "0ymcapxlfyb6xi4k0z1y42cyzan67yg5v4nnc2f1ac35yw4z57pz"; + doc = "0396j4dscv2pqk9vxmz0p4xm4l3v9ln98cwv32r615l1k68vafsg"; + source = "0cg77iddyvl6p818j74ci2zg4zdddp82wddhxqh57qg8vcvi9g5c"; + }; + parsimatn-69090 = { + run = "0dd3jhkv5vqijlkzwf4fd6sb1b8shjzkfydxx6ddbx6a0digxrpn"; + doc = "00aa6asx9banp3v7mjp1axicfnfs1g3l6pf3ifq3n0vwjaxrpaw5"; + }; + parsinevis-68395 = { + run = "0g9ypx3ai49sfcr09q2q231p77z0glwwd0zwwfzxlhkyx4vp6vsp"; + doc = "1mqhdyz9jlipjl74k5blpdizk79f5m876mgn6z39n1p0b4pc8724"; + }; + parskip-58358 = { + run = "037404fa7flsznyidn6vpp5r5rw6wpzrg6sc8zppj9hqciqlbd52"; + doc = "1pw9mgg04lxmrin7vplqyfhxa2bb73yf7qj8l3bwc9yiw78v5h4m"; + source = "1ysz2jfdi49qjyrfkx5k1vjcykk4774i581d7kynw7q9r25lyq9g"; + }; + pas-cours-55859 = { + run = "0gyw81drxs56dwqh6v1gqgs4xcwq78v9isgg38djxq17km075y3g"; + doc = "1zn71815y5pkp24l0cd4283zb3i85mqqzbxmhxj19v5s4jx3ywsn"; + }; + pas-crosswords-32313 = { + run = "0nq8wqxrsgpdnmi2yqcs45mb93gp2lad6p0b6ifqr744hycq4njm"; + doc = "154ifvbrx2z4ig8k00agjsgpsplrjlf8glcxipbgai9wqf82i2k5"; + }; + pas-cv-32263 = { + run = "01aqcqyw0h459xq18gc0y00z2j13zwdn72qpfmajps7ppadlcbxw"; + doc = "0mwgvj4hbq9b6ih6l6hg6gl5qrxyyf0mimwv50vpy1z7bhdq2l6a"; + }; + pas-tableur-66860 = { + run = "0i91nszaymzzwijjlw0f865qx6j7x7rzrxbrc51i02qlfgpaq9zm"; + doc = "0199rpla518gv3rdbchfinfan826z5qs8zxfkgh7rgd7i0cid29s"; + }; + pascaltriangle-61774 = { + run = "06gbr5jgfbms6p7ghdkq2cs9d6p8yr3mvhb0h811y5rphrfzh36g"; + doc = "0fch8y78vd7ykwn9qdgl6m787m89ff3h1fpj0vvzj5vbxmvw6cli"; + }; + passivetex-69742 = { + run = "1h49v6sqbm27isfwwcql9dzxn4vmcn2algkqh7f1pzj860xw3ygn"; + }; + patch-42428 = { + source = "02xfy1fs30nha0l03lqwl8xrpd81855kb5nb660ks83aj187dghy"; + }; + patchcmd-41379 = { + run = "0v0033zpp4w75lbxk8w2byhgy3s6qvm9281xc2c75bryp0ar5pfq"; + doc = "0vw698r5q5ai4lx4vrb24x8j9dc7iwaml8scsh9c22cpqn2sn26s"; + source = "1cb90y0i5k9s4jj3f9vnj6rhxphjc14p5nm6hllibww3h1khnrxr"; + }; + patgen-66186 = { + doc = "03y05mv0n04hyj0lcq54grx7w5wv95h61j6xlx2jc9v0ib9akq4y"; + }; + patgen2-tutorial-58841 = { + doc = "016bx1rp8kpvlywg0yafhbbhlzw4zxdcbdrd5525vffn6fyp9fi3"; + }; + path-22045 = { + run = "14k9dqvcc2nazjysff0s1jrass14d2r9i9cgfx46ss09cw53h71s"; + doc = "0kacibdjhmz39klvxr244n42c5vlaz1z71a8vnssmwmdzzwfzs5x"; + }; + pauldoc-16005 = { + run = "14p0lnn5hvn6szhgr0ngdc31dbjrfk7r8m8n2jn5n8nirsrdzjxf"; + doc = "16ls36m6c8v4x46bz26ysl0ndi9jmby2gl8b9wglw9ba2gf97xjw"; + source = "17440237dyqhxpszm6rcpdhb8dib6l9qfqj5ls2m0bk3vqm7xv8q"; + }; + pawpict-21629 = { + run = "0sx3lwgm3d3cm4s5408x5dhf45kngls8izzkqjrqjy074736968d"; + doc = "17zf7acasv8h9crzg6jw3d2grmhi689476z9x6872h7kzkn3whj1"; + source = "1vxmq9s2q6sq6qza6lhkd6lmj6pg4bw8qvcpqr8zr12nqcfy4z3g"; + }; + pax-63509 = { + run = "07mgly5jbvxav3k5z6li0z7vwq7fqrj6cq0ky41v7alddjpa4bg7"; + doc = "0pii0k53c0np8d4yc61axasnr8aknknfm36px3xh9sl1a475bwmn"; + source = "07jzn5k45pxslamrak05iykqng5rg1b4kh8p6zbadgxb8gxrqx3m"; + }; + pb-diagram-15878 = { + run = "07l8172hqnv9dq6qg1ipbjjbmkpv7s589gci6q82zb8a0y6kyqvy"; + doc = "05h5i0b1y03j5y0nf8iv8hb5qnq1lh5a55nn8xggx2rknnq0d1b9"; + }; + pbalance-67201 = { + run = "1lknxyk8fprbrbvc38kyxwnl4q2pvfvlpyznbp50qil5v78qld7c"; + doc = "1s7rz3zf51vlb7v98ah4ylcr2s17gmmwayv0jpv03yz65iwkjmcv"; + source = "1v2ljik0rsn5zjmxygrzjinrnyx5b14l4qkl1xa7vlb4gxb8ld9f"; + }; + pbibtex-base-66085 = { + run = "046k2l3v0vzxa73n15999lamllkz18is3di7gh8k4jd7y61gv51d"; + doc = "099z6wqv969yw705dwyykfshx025vdbb2azzmdwp7vdsrfjhzir2"; + }; + pbibtex-manual-66181 = { + doc = "030rhhb4xcijvjc0x1ylyk6xz5mn90wrlp5ss4yr6qlpzmq21b50"; + }; + pbox-24807 = { + run = "1b6xli52wbqlhxf2sk4ryighd6jaj6znvpfv6n9s1iq40ag943dc"; + doc = "1qa0h3ahh8q990wbwyrp4glwhdhbcgzz9yp436083w8c9ang0lg4"; + source = "15gqbvrsigqqyzcf8rda0z0kcw5h6cnk1l9pxjh7apz7i3k00i5c"; + }; + pbsheet-24830 = { + run = "04z9iszj9hx7la9zqqqxrsfq3b6asld4zxvrszyjqw7z3fj7pyz3"; + doc = "02an134idar5ndk2kk2d446bxawv0xkrwg8xvgxgpp8s1pqdzai5"; + source = "0ad7zs28d47p3swvl6kz2v1p2nskrcf8fjwy0igwy8d8qalk0dix"; + }; + pdf-trans-32809 = { + run = "0dr8d6szds3hlrnrw0rb7il23rxw5haz37dg3iacgcdkffnglkis"; + doc = "1dcmcd57zv90jafx3whd0nn9hm5x7aynb5npassjqbglb9lfml87"; + }; + pdf14-17583 = { + run = "0gpbf1jxfjl56pn3sj50b6x0z3fqhb7d1dl8dhf31vgcj8sn9n08"; + doc = "15rgv0fw23c4zbwlx149hhbq711hq39v1nka52mjpl7lgvvzny98"; + source = "1wm9nlqws9g02zkk3rgrpaic293vfskfrxsn3s2jb3iz0f12bp2w"; + }; + pdfannotations-68958 = { + run = "1j63vhy9iwbcfd00i6gsgvrn0q2r25az38221m4758a5x0mggf9m"; + doc = "1l8ddc4vwqnr65b81z8yr0al50p1pjdk3zq4yacqi6qf6kmwibf7"; + }; + pdfarticle-51127 = { + run = "123b9f0nl8wyyxfnbs5krr5ayrgl02hg9z8w87lj6g0lxch7dfhf"; + doc = "1pg4iix7i0m3smy27xk5p03x8m6rq737kyhpf5qzckm276n88fzf"; + }; + pdfbook2-53521 = { + run = "027mgmbd3gnnc6gqk8vjnz8j52cvx71z5y6flrc4zd7g0syivdad"; + doc = "0al7sc4rxwd7g1cmyh8v4qhmlngz19f0f08x8n3wbfnvk2f8n33x"; + }; + pdfcol-64469 = { + run = "1b5rzfx5lf0v3k1kb75j364jfdv4wg910qhv0218dp4mxwn985z3"; + doc = "1qrd28c9z0x2jcvcp5041s6qbkcvham8m06xmjsd31kwnpr4f4df"; + source = "1bgpg70150ifvrviwwbhzr1fa03fhnfa4agnhyfyp6y393i6dcc6"; + }; + pdfcolfoot-65512 = { + run = "0i99z6niw3ryb7akzxxwhh0nkrajlfig6a2ixwsr8k5l4ga037cs"; + doc = "06y6bcm8kfvfkrnvwn0s14hvp6ad3785fs9cc70w85v2lnk5qfm7"; + source = "0ws6hwnfybvl0g7kpb7qj0akpnwsq9s5ddq27l9c05564lmgxcph"; + }; + pdfcolmk-52912 = { + run = "09rqw5csr4c63w5z5c019rm8h4plqzwy0icxbzgap048a7x02kqh"; + doc = "1nslm2frwxqcrm3spr601p2r6ga2b91d7v1v0rbi7h06h14mvxa6"; + }; + pdfcomment-49047 = { + run = "13cknk58kksg605m2jjkvmkfm47sdk56irj8xa3p0alx8c4cn67m"; + doc = "011l19b3lhc8zn3dn071gnlg2300174xaqkdn83r631zz45yriv7"; + }; + pdfcprot-18735 = { + run = "0m4lf1rb2j81ry7v2g9lfqs42rizifd64q7xw9dzhnixp900ldfk"; + doc = "0b9ac68snrs7fs8g8nqrs62h8jjfyjsa07psk8qc20nvpya3hjq9"; + source = "00nmdx6l66w895fjir6r2pwrnh0vpn706i9wi5qxx143h75rgifl"; + }; + pdfcrop-66862 = { + run = "099j54qmjd40q9mws11sadhzdmi70y27mjy8rpkw2ijhqgfhbiml"; + doc = "1wnx4ci4p77cz7l6yihdbx62w65zd18smqqkb3vniqwr11232nqx"; + }; + pdfescape-53082 = { + run = "1vbdjmm9bi9ngzz2z1b8jnf6nzf9xsaj5pvyswg13y4dr00mnz6n"; + doc = "1v81nw121acyv6mvpykgrcdvsgqmby8acpby5lj75ih4zya9gs4d"; + source = "0jk7rnf3z1hlrqlrcx0bzic46v57d8vpm4w5fn4c37q1f4v5zmpi"; + }; + pdfextra-65184 = { + run = "11r5ifc28fhngzj6ygzfjk4j03xwri683498gf6zhwq0j3km70jf"; + doc = "1cam2f5byw6l7rk8hb1zsw2l7qk52sv83wkx6qzgkhmzqbsh6wck"; + }; + pdfjam-68597 = { + run = "1bjq9nax4i940y43b2iw2i7xjzd1q87h58sp4y1dh1x1n5a7fw8k"; + doc = "1kh8xlzcbhnkrwz3yryg8ai7m315yw52k1ydapy218zbvjzrai5r"; + }; + pdflatexpicscale-46617 = { + run = "1z19y34c0x05yp49jqn0z8i3ghv0sz8zm0arb576rz7mskpivjqz"; + doc = "0d1zzym0mgsbicp92qf60fq8l2sdbdx47517k9pj3v8g91svxlpw"; + }; + pdflscape-64851 = { + run = "07bmajz9ggwkq7pz49qipy3nmaqd6ypwhpxilsj9qw4bk5asxclw"; + doc = "0s7bv2v7hcs90fvgk12ff3q89nhxp0v8zjv38wc5inhvhk77jvbd"; + source = "1cx870l68mch1hg0va4g3vdjw4d508bw1kw9f3x9b4wfi7dqfwrh"; + }; + pdfmanagement-testphase-70328 = { + run = "0qmdvdick06p7p8g9w40vwkgz7ls4kywq3paw362h86z0xz4adpb"; + doc = "0vicksagmf2h5l2rz28wwwzny9wiirnqavwg16apycfcwayfays6"; + source = "16rsxnrbs26q9s2qh7m3aapwxhjv122swhv2lmv5w4zgz275mjqc"; + }; + pdfmarginpar-23492 = { + run = "0mhf21dcz4ndhbh1g0h3kcqza4ni6iigrkif0iryyzg1zcx60d19"; + doc = "0arfch7gb07grg0n8ij0wfzbfzc8bv5izvhp3vjz8hl8ha3wyzgd"; + }; + pdfmsym-66618 = { + run = "056w6dq5ymm0x71bcya5nq4iiflcmgw4fh6zv3yb8ihpjj3h00y5"; + doc = "1vrgfpg21bzg8xcw6cf43bjc3gh0m3r0s0y8lqh2nmdl00pmybad"; + }; + pdfoverlay-64210 = { + run = "03cc0088b0iwjmx5wkcs48nnmygsg7w1xlvbi0pawgmhfvfivis9"; + doc = "0702k1ckh9akj21xvbvn5s18x8s4nwk0m7jybkcl8f481qyhhv26"; + source = "1z8n2a0kwp13iyja45l014jyl8aaw1hhnxgxfib6q8i0qd97xw73"; + }; + pdfpagediff-37946 = { + run = "1a4qmaypz1indb2pw4vz0hv8ihanhf9z0azs3zkv2ya6qkc0kphp"; + doc = "12di5a3976bkilcyfg0imx3w8771ky0acgrag7xp9rpcggbi3r08"; + }; + pdfpages-69524 = { + run = "02c11a7bvw5g9gq2xvgjk0i7mrfl14c7d7490nh1lajxhll81f4p"; + doc = "1vwxmhffq7zlgmvh2x3pbg68x0dw3zwmqsa642r7kp57wc4ldad3"; + source = "18p9wm6wnw6qjzxn77ibh33zwcpqhbz3zc2l4gwza1gpdsirqlcz"; + }; + pdfpc-68610 = { + run = "00zab5xlcqqvvwfxf1py7m6gslgv4drx8d419wl3zjmc6ww8156a"; + doc = "1fm43d3q5gl8fg9p9n3z1nvcp6cykm271waphnjdkj29nbg7n9wv"; + }; + pdfpc-movie-67201 = { + run = "07d7d7h8zfap39dd3nks1bnpnfpgs8nrzzdsmchy6isqfmfrypgn"; + doc = "1la9fvzrlik4ar3fdaxla5gbwpa2v49xrrwc4wy60i7h80vqv80d"; + source = "07lw20wp5cqr0pvjsw3ds75n3hggxgcp9rbvw026lj5k54wik1bv"; + }; + pdfprivacy-45985 = { + run = "1l1nqf4ihwfycnb1x44l1dl2h9f3iy1ppvr0l4zb8qcjqhl4j63y"; + doc = "15w8jwhksfiv0h2iixk07xvvmk1g2j322xqid753bcyks48xffjz"; + source = "1nqjj51h0pcrjnybj3cqb8zwi0r1ipzzw8ic2clnf3in88pjzjhs"; + }; + pdfrender-69058 = { + run = "02zipdaymsrrryfn1cqmj5hmcg9r62mzrjil6fm8d4jgk8ihykm6"; + doc = "0m1cdx7gh5w5a5g9n27a2amlkmy0ixi06w2a4b145sxy41acai50"; + source = "11y3vy8709m5cz5r6zh3lnw451mn6l0674p63fcgqlircs0j7vr6"; + }; + pdfreview-50100 = { + run = "0saxaxhma5gdn150l934y0q8x0nigbcn9r7ixr8rwz4d85g05m9a"; + doc = "1kdyc7h2dpr4gjzf9g0rx66gsxaiwran9k7vj8942pr3x2d2jbaa"; + }; + pdfscreen-42428 = { + run = "0kkdnwgwc9z1rqsz8cjsmfjdi3ycwi7n7pl2929yvvwixp10rr6f"; + doc = "1zhg4vqfjjmg4z4blrr2zl6jp7m2c24m5diifgn5j3m8nwxp6m2j"; + }; + pdfslide-15878 = { + run = "1za0jp9dbrv0c875zddgcvddlk7gm47crmn97k4zx2s7glx24wj7"; + doc = "1rv7wbzrlgj55n7r6i9bm1vxjvjr38v67lizmbdcxz1lfqbv0rw1"; + }; + pdfsync-20373 = { + run = "1wwndjn0058hflw73y8xfsmnspvaz61r55k96fmsdfb7xfncv1vn"; + doc = "1dz826gclpf2knrgks0lhvm6rs1xjxqpzgbz4nkv1f8li7379y2q"; + }; + pdftex-66243 = { + run = "048dw9m8gk1rmx5v5ylymfcssbchpj9s5csjpip7dz0wa23yc19g"; + doc = "0mszix35nlx7ba9plfdb26wclh33qzv11qd3b243ys0rkv9lbklf"; + }; + pdftex-quiet-49169 = { + run = "00df842vapzylgavkk2c0j8yg562n2jawwznvyf3qq6dznwf1chn"; + doc = "0sa2gs440h3jd5i51hhbfvpqjpfwvzz5m32x3ld5q9k6zi88b395"; + }; + pdftexcmds-55777 = { + run = "1fpijk36lx5czl6bpbawlm8f34zp264l1fli095wha41fil25hks"; + doc = "00xzyvl66fds400dm5zryrv3m5s42mv6658zx7fnx2wbd0jxs738"; + source = "11516wkglckyrz41pz9cqj0xa2bd6v2l234k28ynnmfjsg56vph9"; + }; + pdftosrc-66186 = { + doc = "0mnz5id6fywhlay6r38nvii0a2ks5gdb15i7s7wkq1ay9k5k6fq3"; + }; + pdftricks-15878 = { + run = "0vji4gmlg9b67yj8gb3aj2291ll1xg9p5vq2kvclj3xpy1vnna8k"; + doc = "1hzd05l4yyz5giw9kqxaw410na7k85wj0cyw0bbwzxynpzxqllfa"; + }; + pdftricks2-31016 = { + run = "1dlzm7ivhxvz404nm61kxjn5arqgfw5z184qaxwn28yk6ri07s8a"; + doc = "0k0zr8mv3xq6ibc7s016qnk78b1d22jgyq35jwimj3rm2aykdmww"; + }; + pdfwin-68667 = { + run = "1mxfvchz2h9wrybvb0ri4iygwn1ljs2jzsr9hi7j7ych0sjq1c3j"; + doc = "14i9y2p683d9rgw599yjllgyy5gdb5z560pbb4l5hlfj0mxzj2ja"; + }; + pdfx-50338 = { + run = "1pim1kiilydijs57zcsd1cnhzvcq5y621fb15hwg9y69s624wjwk"; + doc = "1rb38sw6lyvy24hkdyw7xrbm99bplvcp4cfcdr80pdwf51g10faq"; + source = "1y55s7h2cc39vp36ickpkc8dl42rmq77l1d47h1dxximyihl96x9"; + }; + pdfxup-59001 = { + run = "1vvddbdg2l1s2m47w9whvjd1pfp28l6mnyk1m52wnspm3mi476fx"; + doc = "0mbqq0rx1k1hrwbazfkxf72n1wrkngp45gssgb9z2pfw6k3sv3vm"; + }; + pecha-15878 = { + run = "1ia3q7gygbg4scgja2qf5p7wbgd429cj78b8ffjcz68vgdg86jjy"; + doc = "07b7kmf1if59nrqnsws5hklv0idjjxwp37a16dbjpcfdirb4s2m0"; + }; + pedigree-perl-64227 = { + run = "0a99nbm95pagcnww7wyxqwdycl1ags7arjnd9spahj1zn7xg1413"; + doc = "0d13qx3al4qa7v9i4frii3vv3n52bln12d2dhp7wyjla3jz6673a"; + source = "1xb778agh5vqbm6r14aff42wvipykjsw9yk3i0hj7ibz4ipcslr2"; + }; + penlight-67716 = { + run = "10lzsbz2ia477khfm43sx2qli46isf2z8pvsz23yvip32lmqznrb"; + doc = "1hxj4i1zfbwbyl633wn9m4xvbagv7ljjjgil3cjfmdapxgr06n1m"; + }; + penlightplus-70319 = { + run = "0na807958mkb1if5s5yfw5ml8gqb7ss1mi0r6dpm543ndypnhj2m"; + doc = "094gn0avaaphzkrn6i6c8xdwkhr47bld57vgrpc2mvcp6pnr6jns"; + }; + perception-48861 = { + run = "1dqr68wkf70aj11g4ywr56si8g82bxi2xc9zdnw0nm0wbimy5zv3"; + doc = "00g96wswsnpd0smv1s23hqiq4lg407m80nybmig4ibcrafjkrqrf"; + }; + perfectcut-67201 = { + run = "1hjppa3dv8a5740nr5jya445y5nb0nb2z1jlkqh386bnvgby8393"; + doc = "1ly3zrrrfb3jihf02p2j5ym3m2gnr18pf2v5qg8rsj2l258xlark"; + }; + perltex-52162 = { + run = "09vc7pbfjl0zjmbra41p5lmr6l6r4gh2x5h9h5hg1i76n4mfkd8d"; + doc = "0sndaglhb92b4jvp0jzpvdiwzc49ijh309aysahrw0pwkdl2lv5d"; + source = "14rv37h9qwgba7dqq8zzvm0dc9y4hmyr6yvvkfbh2il5zs7m8nrn"; + }; + permute-15878 = { + run = "17ky79fz5pb9xr4gwrfpnpxj16mzj6f3wnh9dfhddzlmbllw1djs"; + doc = "0m83nafyxbixsyg37ia535h3axvf2vp6ky0yg1xcv8ppsl72fd8m"; + source = "0k1h40himliydiqssvmzl18g28w0hfsxc6kv7wn1q41sm54knhay"; + }; + persian-bib-37297 = { + run = "1yzbap8fwmlz46ngqcy6hwjw98z1cxlprpzk6vg2qw7wvs57b143"; + doc = "1rn6p3zbfx6vxdjzxavvbf9405cxk1kv56971n6i2bysb5h22w0y"; + }; + petiteannonce-25915 = { + run = "0xvpw8lh1zlkc89chbyjsfszr7ix06afh1fajp5iiqiyxb021v7y"; + doc = "0nnf9bw4jdm3w28957bdfsl9z94a3dxz5kvmjrg0jkrp3r3cyrgv"; + }; + petri-nets-39165 = { + run = "1hi46pzd5cjvpakya2bl52w7m84xm8h03m01jfrry3vnp9hqbc11"; + doc = "0ixpads25k51rlb2kapxgv75w5igbnv5isn61c29qpm51dpaq012"; + }; + pfarrei-68950 = { + run = "0zp4msdpi4w1fhmp7n2s6cdzxss5a87k0dw7z9iw6csnnwaa40z9"; + doc = "0v54c02fmsxzwc8i3050mlll9z1qgmk6vvkdgjmph735q2bmlfsj"; + source = "0inlfabzb1q94bq2zw2416vaxbgwr4nw2yfax491dg5hqpglyl6x"; + }; + pfdicons-60089 = { + run = "1pxw1mhm2lmggs67ql176f6csajabhylmlxaxp47irk6mlihiavk"; + doc = "1czd4z8rfnfp241lq3v6ri4hnij4b8pg2h9lcs3qa31r7zmx4hkk"; + }; + pgf-65553 = { + run = "1xai2x91jf241w03lndpa478dijfm52kyin1ci4s3pwvvqvwvcib"; + doc = "059fvzbpq3nggjc3yddzgj1ci4xs5qrwkqvqshcnk0agn80zpcx2"; + }; + pgf-blur-54512 = { + run = "1w9p9l2nw9bf0rhn70y70h6lqqqx3qravgarmmz1z86ara26k49w"; + doc = "0fq1w85wqqrml9jzi7s2n888165pg4ds8ysvgh56kbkd2zzahnw3"; + source = "1pc8x23l6qcq356s843si16yc6yfrvdxg7v821271dndkg7d2vvh"; + }; + pgf-interference-61562 = { + run = "1l3gryb96av9zwxn4naxz5vy0y2245fv5zlm1dg31p88lflh2s5d"; + doc = "09vvbnmcv8d6y75hxdln9gqspm35fada4g66w6z4kv1bg7z3vrlj"; + }; + pgf-periodictable-69924 = { + run = "0kicajyb144r2srizm2zmsf5a7bv8zx67xbgs3bjpiwpazz3pj3s"; + doc = "18cxvb1prlcd398h3wvfd79iccb1sxv1j05llp17jas5q52y1is2"; + }; + pgf-pie-63603 = { + run = "0wr3r2997p8as08d172sr2hxspmi5bgsgvgwvkm27hg6kpi74zsi"; + doc = "13xvia0zbgsrsy50rp3fr07hb1zfj7jfs95ai6cvy9522cw1zb0a"; + }; + pgf-soroban-32269 = { + run = "1y1c70a9v9zy8i58j19g5c8nc7f00zcdrdjmdcbm19r8vi2r09fr"; + doc = "1r1rgd313fijmjqy468j25d55p76vxmcrgkp968riknych16y1pl"; + }; + pgf-spectra-66961 = { + run = "1zl4cmkd153yk99sm6cki1a0g5z1pfv5c1d8jskcxzrfxzzrd75b"; + doc = "1iyny475v6h54crlfjm32lq37f2dg8mirgghs57cqrrcl2nv4qdg"; + }; + pgf-umlcd-63386 = { + run = "1qsnmhb0jdn5qnq81zx7gr1a1l93a3f2z12lfz9i2c0cqbjnpxl5"; + doc = "1v2p1xq7y5a0mpd067ragvnw21hsvl9irwaszc6sdb9sqgqf2qh6"; + }; + pgf-umlsd-55342 = { + run = "0rs0iskzhmlgydk4i9idql66sk9dyiqrglp429b2sjaw0mbjyxvz"; + doc = "0vl7wjrgnfz0y0pfp4izqi1528i81fssak85w1sl2n97lhyq8mkk"; + }; + pgfgantt-52662 = { + run = "18snhw1hvff64xq6jaq6wjdxcrkjwjv39hif31zj2r0ghsajqaqs"; + doc = "1xhls9kyhf314rrmd8r3065qaffbm48mc746lwhsrh6vmq548baq"; + source = "0hgjiy1gs8nx0211ar38qr3ql5yx32mcdvms0yibpglr2ncv4x39"; + }; + pgfkeysearch-69385 = { + run = "1map2bxnwlj2v6w4h36jfszz858a1zgdlamdjj0jc21xjsfsjvbk"; + doc = "0h5zhzh4k0hbz9gnh6ygzsr8jm5lrhdx0qsm5z55xm18q7gp2ri7"; + }; + pgfkeyx-26093 = { + run = "0gh229dsrbxw6brfz5m2zz6x3zfsa03iqps5bgcr4bz0qfjl0a2s"; + doc = "1cbldr5x9n649sk9dfcp143jrzxh6l4ibzndx4yr8f7id5nx3nag"; + }; + pgfmath-xfp-59268 = { + run = "1lfnqkws7gjjbzh0p5i0l94p1fjjsybwf7mzl5d7xzcap9db4x71"; + doc = "07d6kybw6q6igfpn1cgjxdi3n5zz6ic2gazy71gb2mjqbzmhzp88"; + source = "0jvy1qy47r0p3fx5329wqg4fnqlwlqsqs49j58qvz6k7l0n6i82g"; + }; + pgfmolbio-35152 = { + run = "1arhxgwpsw9ifj3yy36mv52r8843bm3v1lrda17r44zjf4fhimfk"; + doc = "0kxp1gqd09q5h4ixjlfmda9jm25wd3s7dsxcqc32sw3qay4d84cp"; + source = "0lxbszlky3q27cyzfnnvglmzim4lfjh14p62j43sj5w2arv9w3v7"; + }; + pgfmorepages-54770 = { + run = "0xarflkdk2xvfmmsafv1hhpdrfyddjxlqjjwps9yzzcwblpjnali"; + doc = "1wsa6iqyrcjq7zyanjgaq6a1i5d7lm1bk9y07mz0bjwc2yv359zi"; + }; + pgfopts-56615 = { + run = "0g7a22d0ppdzcazrif8yjic19lvz143p6vwflz16p6zh88yhcdm7"; + doc = "17q1mlaql7f510pz86n64sm4m97nii72jghf75qs5yr9h9lqrq6v"; + source = "1mz5nzbhmbgzjkpkglz2w3s9s8kzrigg3wrd91dmdhjsm4d4kczi"; + }; + pgfornament-55326 = { + run = "0hvr6cbp4mzajmqz6fyd3x7qr9b2vlwdhkpc62axgm2sww8igp70"; + doc = "0i1fncv9saflkvib43jp02mh94cv0nnq6k8psrf4l1yx95sdxnky"; + }; + pgfornament-han-68704 = { + run = "17ldl3a7gp2pi010hp1fh15haddjgni6f7bkgqyl1xk4yx0gjcck"; + doc = "0v37qkx8j0ijgr22bya5m6ka0mvnymkyqsdg3q4bzhcfydspsvwy"; + }; + pgfplots-61719 = { + run = "1g3q8yr4i5h5jqj8w5yh1jix2ia37la59y0dcmrj5bnsr8zbmbx5"; + doc = "0fd0azswmcghgpajgvxh82752j4mp5avslaicp2x7hjddh54j357"; + source = "1h9js7l4vygn230svbmby09k966gkbgjxykk5vig45qdr7mqg3fr"; + }; + phaistos-18651 = { + run = "064gh7pwrsp37dxvjfiar9bl1i30a1kngirgywndss8xmrvqin9m"; + doc = "01wd0636h2xs465rypc5q7saxhind14krmk9dp9rqc9129k7rc0q"; + source = "0l6nmd3v9x3j8if5aryak2kh42zza0g73plwv6im6hpxkhhb21jf"; + }; + phfcc-60731 = { + run = "1w2la7mmj0a3sbd3k938bnq8fbl6sdy1w6bxmdfgiywj6wiib6ca"; + doc = "1y4y0gx858gida7hnfngar6damk1gfvpzx70zbjsl2v7x6qkvkm1"; + source = "0n7l6q9f2i4n6lc05ky9vgm0ms2hdwxwynfcqz216pshd1k0b2m5"; + }; + phfextendedabstract-60732 = { + run = "159s3ncwdb79chlffvp9awiyd9gx9sxacsa8596bgdq02i46q3ck"; + doc = "1851hbjavdxlan8c480in5j4wyxrl4kmgqgc86f9xwd9k7f1gp3r"; + source = "1psff7l4917izgx0id3ccl4fk0zb3s090db4a8dcm56lrrpxzq3d"; + }; + phffullpagefigure-41857 = { + run = "10vdd225whr0y166xbfc8qbm39vmw3ksvcjm7ylkafyp670ckc3a"; + doc = "008q8mf85s4dfbjxbc0k9zpwazbvhbfcc0hqvn679v23kxgfphnx"; + source = "1xwiygkhf3ggmgl21dsqmpq6238whn20wzhwn8znhh9sxwa58pyl"; + }; + phfnote-60733 = { + run = "101mhf3pwshakfnl298yl6fsyaa7xqw44j2g5z4vjvvvl53i7ksj"; + doc = "1y5vnm9y3lxkl58gzhphscffzirxv608qg6bjk6xf82hz8835nac"; + source = "1vjb4irvrh1nn4gc858zsbjybshr9ky7h1var6yr1ys2p7fdyy6c"; + }; + phfparen-41859 = { + run = "00is93n463f5iv4gxd18sc3w338h6a38xahrd1r5j8mv2d419wq2"; + doc = "10ninpjl9ij19kw8y8pvbma34b1y462qdigpslid2g3gyagkrs8v"; + source = "00bd1j7zn84d0lfkw08mc93q2ayg7j7bq9klcvvcd5m189spj30h"; + }; + phfqit-60734 = { + run = "1mabnz0dz0m098dxinlmx0whkw2ph2rbjc52iy1xj64aiik9v737"; + doc = "0882ddy6cpg6ca1y6csxw19j7ipm482mfqlp2ldsiwpcgnzx8vkz"; + source = "1ac8wpm1mmpwc50cyswv7hkkpi9b2fnhhjkzvsxx2arvdpz07k9w"; + }; + phfquotetext-41869 = { + run = "01na6w8kspl4i0i1s4cgnl4r5fdcybqxx7mzdd6mwbd24mh971a2"; + doc = "091rcqssy0snh6m0z2pwpflfvvf7fsrriyb9lq0f5pnpqqhya8ds"; + source = "07q96xkawcsiipr87nbwfawkcqmgch8h695gg8wlq091q2wrp452"; + }; + phfsvnwatermark-41870 = { + run = "1jmq6l0hb895bfqh2qycxpimwdgp44c64cyxs3vnfzxsb4ii4sz8"; + doc = "0bcj2m5x107sswwg54zhyfdfdhxn14klnxkvb1hc56qi4wc4vkwy"; + source = "1q2l9w8lll3i4bjna6csx4kdpai58i25gn1yn0z4p0pbzqvi08xp"; + }; + phfthm-60735 = { + run = "1hk4wxxw7l7snclkwikk0n90y6h8g1y05ikkz0dwpzxwswn9fjnd"; + doc = "025hl2lz0avbrbv341cgvq5jar40vrgr2rsrp817mxrbwlc53qfn"; + source = "0gajcnby3vwmgsgyginhi7fcjssayfc73mhg6mhhdkxi0n2gfnxi"; + }; + philex-36396 = { + run = "01m80gaawlxnga76rkqwwrg9bg0szyd3qi0d3zyvk1n41h6inijx"; + doc = "12s81zvlsddzscvlwqm080y6iv1wm5vrffp9aqdlkpcf0fwlriva"; + }; + philokalia-45356 = { + run = "08z5hrp8a0551s0qfj02l79cpkdnsll5k60di132addymsl2p0lw"; + doc = "0pgy5y3b6ramrkr8r7bvw5byviy50fprjsj4cj5h3l888inj8kkx"; + source = "168r0ygbvwbwxlqvjqqma0q3w4172jpif1sr8p54h70crqx2310j"; + }; + philosophersimprint-56954 = { + run = "1cdnlyf9cf591bqp1dqdxl10i3im014vhxv77m8mviklayjyq1lw"; + doc = "17j2zh4p8xhf619slqpm6bzycwd9zpr8qj066c4wm63la6fy7lyx"; + source = "1zdcwyknfjxw3vmlipklrvfadw5ahh4i4ns95kyqs1x57c7wgamp"; + }; + phonenumbers-63774 = { + run = "11f7cnv7kh2pry242nxgq72kcjcaxg45714i5rg5w7q5nri4fkf6"; + doc = "08hzmb5m515ri5l27gr0mi8i1kwz6sf5f1rzhdif433knyhfm34j"; + }; + phonetic-56468 = { + run = "1cd8x4qajx3896a1bzyhnrhkg8j73lffri0fzks5h8s27jlnl6al"; + doc = "01hnb97dwbd7g4lflb9kz3w0vhnk5nzni31sfiqbg35lypa0pbwl"; + }; + phonrule-43963 = { + run = "0xv49vfvlfjad65gngbk5022vcdi0w86mzqk60nbz3i8npvncplf"; + doc = "15bgpzfxjm22f4vqq9nbjhldvxzflrpayv51g383nr41j3k4m3xx"; + }; + photo-18739 = { + run = "0d9mkavi2x4wha1c9zi2fswv7vsi4hr0588gj82vwmwlrb6v8gsa"; + doc = "0xnxkv1rkz4c7wh7dm8rna2g2zf9i97aaajlfqsr6ls1d9by4zn2"; + source = "0vxja102ajrygarqfg0y7bmmhx2my66dlnfp7rsc4kldi1g2fs3j"; + }; + photobook-68313 = { + run = "19538cm7z4sw742y03ih5avr6bhxwnpymmppp8w8ah2p4ixrwqsx"; + doc = "0bwb0mw20iz32cw6rcagpdc247n00pnql4nby8vrkjhbyj8l3hp2"; + }; + physconst-58727 = { + run = "0078ggfyyr2vh5ni05la8jaxnyxaz2jn0rlahwkw05ng1h5nwl0s"; + doc = "0d10kzi278b6yf7dvm3j2nsks43jm6jfjql5jyv51l8bq5grkmr8"; + source = "1qvhif2amxfqvwj6vd82f9mjgrk79crnz4sw5v19v02xzxv66fsj"; + }; + physics-28590 = { + run = "06nwz84201w9vky4s877fsiw4pk1kf6iq9yp1jcap7j57nb4l23j"; + doc = "09zmpxkrrv9j2ip034vqwblazl4kyprvp24k0f2k0xgc4fja2pqn"; + }; + physics2-69369 = { + run = "17br2lisl7qyqvjsgyaa7c2fx3hvblj9cx27zfax7v32aly423af"; + doc = "0lwn61jdpzljwlgy1yzllflziwqchq3fwanj6c2yy02rfyi0lxp9"; + source = "1g1psidas3yjknj8nlhrvgjiy6b1b6z42d8260szq8wmmmybi13c"; + }; + physunits-58728 = { + run = "0fzx8c7sgd6incgwdbzyd3pb9dmdajb3qdfd3mj8sascilr0c2h4"; + doc = "0ha1zp0lzx2q10m0wp492sf45pw5cfd98s9pnzn2wxx3k970agf8"; + source = "00p7p4hh49i9xwnfd8y7nsgxajjcpdlxw1asyxb8q20x1w1wy2cs"; + }; + piano-21574 = { + run = "10gfxklfwf60p54wcbs4l1jpwasxvvbnkjhjpiygnk6mvzjx7dyl"; + doc = "0czqrjlfx1i6k02aa1r1crvkw7k2fl17vzqzrkc97msprrymxwgk"; + }; + picinpar-65097 = { + run = "162119bh7hx30742k0f6ygaa0w9hssl2nmp63rmvdnpjlazfiizp"; + doc = "11v1aynkvc6m7484h2pmcm24405v5pdgkvmjg4jabgfkz5q71g7h"; + }; + pict2e-56504 = { + run = "02rhm6a26vgpscasrbz25vjimlnkh9s18pq6a9025k65iwp5f08z"; + doc = "15k5w2l4c9mxay416bgj745g45pqyaw749mn69dchg2pqh77yz1j"; + source = "007yb70j4ay0qdls8kqb4wxf1g3672yasjjlqc10zsywc005f0nw"; + }; + pictex-59551 = { + run = "0yz4dfnmakv78bc7rlabh8582knr131mrx0rxjai640bdax8as2a"; + doc = "037ljjsnmllkxgp800dj1k9pvabwg4gjsqci84jdmayjcwsjibl1"; + }; + pictex2-15878 = { + run = "1qqf08yharknq6csk01jdff62mg011bryqlq5mbmjwqwh7wxs0wy"; + }; + pictexsum-24965 = { + doc = "00yd0945qiss5jizkxncg8a9bdsld7mkhaipi92bbn1ghqicsw5a"; + }; + pictochrono-69865 = { + run = "136apjhvd031j0a1jaxwkdm6lhg4vi173wgcdkd61phahc4xzss1"; + doc = "0sybhyczmjjhi47fxqz88y98qq7w8nibxij6ai6k3wzkhg9iy9hp"; + }; + picture-54867 = { + run = "1i2775x39n5vxspy555rwn86384yyapl70kcfir96prp1846rfjd"; + doc = "09gid4bb2wbmaqday94qj4r44cpk57rxpzg6grdcjg4y1dkjph0b"; + source = "150wv3jb6hspwhkjnbxff5izskvqfvhvqxbw773qikjjxsaidqgb"; + }; + piechartmp-19440 = { + run = "1sl8mz26cglbsqmpd8qz0l9yycxgcimi0yhkgnc04n2iik1xc6b3"; + doc = "0g8sh91ki495mqv7zxxz2q40bk9dl150a9hi7yv0kbpiy45h3af4"; + }; + piff-21894 = { + run = "1q0xdl6ip1706wxprpd85vycyksbnn1ws091gvmpdhn6as4fxg9i"; + doc = "1sa2l82yndb9pl8bfmnna20ackv9rxp7y6ljjyix3bpksqp20rwq"; + }; + pigpen-69687 = { + run = "1mij57v2cfj9v1mfhxlpb857ipydzffbdbzfw00qmh6iqc36cfn3"; + doc = "0db3m9vv02d261kinx2hj70cqw7gpywr662amrmxznhhq3990wwk"; + }; + pinlabel-24769 = { + run = "0dlg15b6cjykp481xn03kg3p1zqwccwnm2la710xdwf87p1k4bp6"; + doc = "0jw94fl3awpyla0flmw9f72j3ssrqh1scfrbx34mxlbmnl4z3pfc"; + }; + pinoutikz-55966 = { + run = "1kj24i32ql4jfhzfxyrcj0nmyyhf4ipic7zdzcz71za6njqv3gql"; + doc = "15farzmd27gp8ms5vck6xcjs0cx7rp47nww0shs6r0b0l99946m1"; + }; + pitex-24731 = { + run = "1g91l1z71481hlwz8vmdac0g4vm5d6940gy1ly44qny626k9j079"; + doc = "070qn9b6bq4szqa9wqfmb3qbfxcgif79dzbb3qqhvs7fh9bivqdv"; + }; + piton-70446 = { + run = "09dcrv4ss2zw3vnpqrpbx5v6gizw0zg05qbc6f1rk4l0vk5m5zad"; + doc = "1gaxv75wbv8j1nxpg2gp30gnzk6vp7226nchs7hi1686xqngaa0v"; + source = "1nf5lq7mcycj3nqc1bxbfc3gsk95f0k6xnyh4dsxma1kx3y2s0c6"; + }; + pittetd-15878 = { + run = "1s8865g4fv04ha7vls9frkkmx8dyn0l7z1rqvh3dkyy7fdgq4vff"; + doc = "1jkdny3kqljfjnf9ywpz7xqvfka8kwi33jy3z2yiq1fvp8k60ar5"; + source = "07k0ilmwkg3wvgfpqyqc60hn5mlsj8z5lsx8mq8h3igwm4j8krzi"; + }; + pixelart-66012 = { + run = "0d41qzn2gsqbgvgaxk9a7cj5r285ayn8amplzv57j5c5azyi6qlz"; + doc = "05mcmy25mdl42wfdd3l64bkkxrvmcj6lw9zb9jypaf2rrdfnpq6l"; + }; + pixelarttikz-68520 = { + run = "1zn0cpmmdfvydizw1q9lhxdj185gyq2hpzl6rpjfxvx5wsm9piag"; + doc = "1p5aa3mjv4g5qa3vi988v583d8h6237lq9bncnjaa5c1sd1l727l"; + }; + pkfix-26032 = { + run = "1sgss755cf1zrpv3x74x5qnqc6w81cvr1x0w7875ijh4c1xxkn9v"; + doc = "0bxijxbbj9v4c5p1rg4gkqnm75rq516vxln6s6174ph7abqrhvys"; + }; + pkfix-helper-56061 = { + run = "0hf9hnjw7ws0mx9w5s6ik17zlq27fyc3p9bgya1wxbh8lcvrygn2"; + doc = "0fh59nzzl58fgpkkfzvi603sfsfnqrj8s39k4nn97567gpv4a22a"; + }; + pkgloader-47486 = { + run = "1vmpxv6x2dq9b4ddj3xxqzkxz213bvz7qn24jlx04svdrq0cnpjn"; + doc = "064qsri65nyy25sz8y9avpxyg3rzcspjr1cfc5jp0vfd07905zix"; + }; + pkuthss-70496 = { + run = "06xj3isz2c7pgw4czi5yj8i1v8ydwwvfwrrszvdfd9wrcpkds7qs"; + doc = "07k7xssd23as7ck2068wv7gxcrvijq459fr5sya8g040pv65cq1k"; + }; + pl-58661 = { + run = "1j2a3vz3wabv3ai0k9xvf8brwljr5r2bi57nk0bba476vkvxbrbd"; + doc = "08qkn286bx6akfrxrlbj52xylbvv00bvmmpin1sbpy342ij57lrq"; + }; + placeat-45145 = { + run = "0vmvw0k1s023siwsrl4hr32wyla5xmkvz449p7vlfv1n63383c1g"; + doc = "0j9xm75xv0lqkqzm4g8aqxy6cs8vxydmm50vsjj4g4aah7n8jygk"; + source = "0118s2p8vfam65fwynf3vabqj4kz0kkw9kbq49k7akwwj1wpyd7f"; + }; + placeins-19848 = { + run = "1mlx2wlm5j7qhhz8q1fvxd4zvjmjpzhk2aajql3wqvamrawba6k4"; + doc = "0libqvl13md069fjbx3gl17fyzpn6v4jk4vk5086szbi93dr692m"; + }; + placeins-plain-15878 = { + run = "1lhc72zdm2cjynx6lf6kafmf00nw17z3mnfhagh41h76cnm338g9"; + }; + plain-57963 = { + run = "1mn5cfiaj7wrjij4y0g2mipc6v8dk7l7nc25s1gmgvvyfqwd3byv"; + }; + plain-doc-28424 = { + doc = "062d6hg4npy57307avvyd2sdxnmyrh5ia2rdb17p6cx555k8zxwq"; + }; + plainpkg-27765 = { + run = "0dq20a8nyyyy1342s8sc1z1i1gdfz49dmv2w9fl5dbnligzxgdfl"; + doc = "145249b9w3jpf9swgc4293r05p7r5ylmxvx1a5qlv3fgni945vms"; + source = "040m08y54xr4966f8b6z38spdhjh197l56am3wpza5qff4nbcj6a"; + }; + plainyr-52783 = { + run = "09py8psdqqnxmq2nkczxz092668zscvf9hbr6fcvrnj0blvz3wxy"; + }; + plantslabels-29803 = { + run = "16hzr9zavc26mqddsq4yzb2y60r2lh1yjlna1qyaxqrq7fr76g1z"; + doc = "0pvy9gaarrwr4f0bzdhj3xgisfmpd73rfcv9mlw87k3l9y2vly0f"; + }; + plantuml-67097 = { + run = "00n393r717v82g1g70qs1b5isw4x5bwvlmajy1ahqrapwxrh7jfx"; + doc = "00gihdh9lvs2y95imsmsjx4qqmqr9maavbvv974s2k82bg24bkkl"; + }; + plari-15878 = { + run = "0jybi5dvl6ksjpgfqfrdnx5q25gl5xgqhwax4dk1shf6rbafkgyg"; + doc = "1js29imppwx2jny1hcvjbkz7cc9qrafgniy9qd11bvjyp3n1vly8"; + source = "0br0vm2ncrdyqgazdr2p1kvgl6lq124b8h82245jc8yz7mnrz2nw"; + }; + plates-15878 = { + run = "1238w5267spw6liidzxd550hjdjxsg3d1231l9vf5fmcifllsnmg"; + doc = "0w1jn22gd938zqifhbiikgggbly2fjhiwjdh2jq66yax7p76pjc3"; + }; + platex-67315 = { + run = "1qddfffw7w3l0zgf1dq4376fx5m76jys8c95wwibxdh20vydf0bk"; + doc = "055pc891zbkjxdzl1wbkxrxs3flw79zms9ghnqjz2jhw6axh2khn"; + source = "1pa7yg6369fh72y1wxj635kv63ba3c0bdhlg3ws202r6zl7ffmab"; + }; + platex-tools-66185 = { + run = "1yrgp92fk1ci0skh2lqw2pcbnrmsys7gai0my1ijp65zahdscx0p"; + doc = "0v34yg2wv8jy7dj6vszx8p4rqpg0mnb574axqmp2irl2givf6wsj"; + }; + platexcheat-49557 = { + doc = "04hvm19x4z7vq2md3p3r2wwa7iqkgkxnvvj1xx3s9145m6fjib5a"; + }; + plautopatch-64072 = { + run = "16m2dsqws4z0i04wfman4m7d5p9y5dij8rl6bs0vphq4n0hcqhh1"; + doc = "04npb7xbhibvjjxh32m1g2c0r3q5j5jhjgc7hn1nyzj2hzz415sr"; + }; + play-15878 = { + run = "0gs6iibb9jkmynhvwldwrh8rvalayv8vk8ziyx9qyqsdsgh53bz1"; + doc = "1dvi29x0fdnb83bkqfsv6l2jp9rvvnqpf1paznx9pli8gvgwa1rz"; + source = "0nlyi6ra8v3pgk5lhhvar848mcd5zqbnc6mbqnbxsj409jczd0rw"; + }; + playcards-67342 = { + run = "1bqk76g9mg86rkhjl12g41dph95zrdby9pddp7lac6bjwvyjg6rg"; + doc = "0m9yvn6bxz3w6l0vfn9ycllj50az3631v5xabk3cjrnlhdq97qcz"; + }; + playfair-64857 = { + run = "1yy8c8aks9c37a18ynilrag254ffcx8fj1xydsi1a58gnifmhi0f"; + doc = "18axmajlbgll8cdjw7v13n0rq9dsbpnm4sa13mf46dq4fhy1i8s0"; + }; + plex-69154 = { + run = "0q8x2358prmrlh3zyqymiyq7i2rpzdhv2gw7zvnzjzx7s3kwdjq5"; + doc = "1bpj5qh46d4n6ymfx500p44vj0qn5bqkz8379x3pn5dcy7ia8kja"; + }; + plex-otf-68238 = { + run = "1vzscj27j18km0cjjbfjnls4ylr1b067cynxi71f7wv99s29fw0b"; + doc = "1nyhqvwax36xkcvwd68yb7y5mlainwdw0czyyvl2yd0f0r7m15g0"; + }; + plimsoll-56605 = { + run = "0x39p7fhfyxnz95g44ci8xdiwiq0w2n7z3vq2vm26l9ia9q9m6d6"; + doc = "0rjjk5l0zvqmj32m1xcyrawzzllbs11bzb4i4cvzmnakzlwkwcrr"; + source = "1b703r0ssg8q021z9dc8n7p1w7hk5b548icc269gjrpad622acmk"; + }; + plipsum-30353 = { + run = "1byjqmx68gb2xcb4nw429z7wnagv5l0pi3v13dlwp57sgfkxrz0j"; + doc = "0gmq7rc2r3r50b7w5kqglaqmrqnxv6wav8gz09a2skkir6v1mpgl"; + }; + plnfss-15878 = { + run = "0l4kjidsxzp14ii850m23q3yz1z8my9svqrpd5hi6v7qnv73vdnw"; + doc = "0iw938rnvcfly3z5v5gikd3svx4mxwfhw0gsyv26m37l5slqvf1w"; + }; + plstmary-31088 = { + run = "0cda8irxd0gxa18x47v6d1wiwwwh6w30fl9ipxdz112h67l342k0"; + doc = "02ql0pxjkp5a803f9ayvr9splfchzk6yhzjfrmh2nxzwgczy9s50"; + }; + plweb-15878 = { + run = "0yimmz965gsb0ddvq3ck28x73p9fn08c42f4331088130l43dkx5"; + doc = "0ad3z41r1a3wkwr7lr9hf7n4bcas10fdjky7f9ykam0244r5q4pw"; + source = "1zpnyzxf125qqz6j3m2182yn71nkrlaan1qfwl98v020iia6vyv1"; + }; + pm-isomath-60368 = { + run = "0kl56njrcs2qklkr49bnkx17qd8csa5bcanc4ypxxv883895qg66"; + doc = "0glkk1l2gkqzkjg4vwi9qd3yfv3xsm4ssi03jizy9dxrxbgl60z7"; + source = "1ly3bh0b1xl5wf3gxvzrwwg2kglvqmaj3mb7alq5x8q2wn1sxyrz"; + }; + pmboxdraw-53046 = { + run = "0a1mp38f2562yq3nzv39ffwhnzwpamy74pvqnigg7hv2v7blkijh"; + doc = "07f1n2wpfqrd62agh0ddw67fnl5qczw16640h3v5x7yw31dx4n29"; + source = "0mqg8xkhqy18m2sbp2i2sv58n2hxf05qr215kbmh0b53lbp16pzc"; + }; + pmdraw-69366 = { + run = "0mxjnrrbmwy6bs8jnm6zk568kx07shz4m3zccp7ppxcrr4b0y3fy"; + doc = "01cxqlfnbqzn6cd3jcm01bxnmas86lpipcihaxk13w0zwaqvyxzw"; + }; + pmgraph-15878 = { + run = "0mrvf2r4bv4qa9pzv90ardy5ncq2kgy3y89pgr1acsm5cspgryr5"; + doc = "1pizlqyb0n20apwb6rvh6yfncyxnh6vfhnvc10il9j4894rii6mw"; + }; + pmhanguljamo-66361 = { + run = "0jhibwvph19i7hmd81b8c83g8n2dd45hj0q1l2y59lx5a21zisrf"; + doc = "0bk405rl1vs6dv1dwn5aibld2rpa5cwd06p9s3pa6n7s8aj8frvz"; + }; + pmx-65926 = { + run = "0brg4xinn6sg8c9jvh3cvznqhlg0l8hfqv5whsh3yaajc5pn40rc"; + doc = "0pd78a36zwhbn7054fgknpa56jli5hqssbhz0qh8fmqxn6kvs8r7"; + }; + pmxchords-39249 = { + run = "0yv1c0s3zjy5w65cpv9gmdr13wkfg04jc0g7b1f0mh8ychhdab1a"; + doc = "0n6g5f4szxsr6zqqp2czi29m1dncfgib1pd90mbrjprvwh0filf2"; + }; + pnas2009-16287 = { + run = "0yl475rlfhlnd9d0pyzm1gj2gixrdzyn6858j1ndvkhr8vc055ns"; + }; + poemscol-56082 = { + run = "1k1vq2hki8jq70d0lmw9sbzwhp7mi5sx735wkrz9046xd0qmhq7w"; + doc = "1cdbv1ls20p764vkllgw710fm4v8nbkw8ryw2546lqa21v9ki4sx"; + source = "1l6zsi6x6akb4z37iyllg99schd90bny8r3pz8vddqjyacnf1j7q"; + }; + poetry-53129 = { + run = "1z36zzm75zidsb8zixmsdgngvg1gyasxdz4lcw4ikdwvjmswqzqr"; + doc = "03cal4780m1r6i1g86d2gil5h6n0h8dkiv8phfjcp890y9vdw2y3"; + source = "0y93c9fvjhfs70qvnk9ff7hwq7zyq8hw8h65bwgr3f26b6skfxyj"; + }; + poetrytex-68353 = { + run = "06h9aqwryssmzkagr5af598ic2rr5j0m5h5mwaw3ssrxwry86mxz"; + doc = "07jkb5z8sdc8gp3j2fls8hcqrh5g67wimb0nfmmz5287why1br3w"; + source = "02x9gadfnianaq3hjrhllrql20p1aa81jv8lc033qj47wml9fajd"; + }; + poiretone-64856 = { + run = "0dc8ll3xk7yrf3irrgl5bh4dwvi6mvgp3iqvzfi26jv12m3fwr8f"; + doc = "0l1ndiwxpva5r7zdgcmn4hghi31w2v6vd0bvmvmywhx82ra8spsx"; + }; + polexpr-63337 = { + run = "1dml5b7zb2w4cawqgvqld63wlny45vnz7p8y2pc7b5h86p51a0cr"; + doc = "198dhv2wlclrs5sqdiqk26llyhjk4l4zr0hlcr1cw56dnhdh2j75"; + }; + polski-60322 = { + run = "0y66zqxb87i8wymryd19hjws7y9snks73030r287lbifb77kyx4c"; + doc = "169z3y419d3afhmhk22d0h045pysdrkhyvsgrs951ah3vgf8n5cv"; + source = "1m8pysaiynxb64n81b8zj3cly6g81w2fa1nrknqnxm27bjzn2jrf"; + }; + poltawski-67718 = { + run = "018iqwz4apkj8pwc3ws7k00zldnz4k02h1hv0ry9d83z34xswfsn"; + doc = "1kx83mgwkxd0sv2xjzvn6wdsbdng6skw71z2xc3xk16lk356q8hc"; + }; + polyglossia-70496 = { + run = "0rwdpn2q7h2kcdnal03zj2km1rw5pvj08qvw90y27m3ps1bj6w0h"; + doc = "0wycqg4g2xyakabgsd5a44p693g96r551nrzfb1v49m9hb9qswji"; + source = "03s1is2254s34xipffbriiyd6gfwwqib83msbrwj5z95vv3ibazj"; + }; + polyhedra-68770 = { + run = "034zv3j4ga0xqkqn504fdwrcbzjh63v8zzfchjwcsbb2qn1x2rix"; + doc = "1a01r85nliax7zll3qz212pkz2yix2xzh15hlbpqgqslh564fkxr"; + }; + polynom-44832 = { + run = "0vn9k3vci15lq0f6r2354ag4bs55jcq6571wvz3k4daym5ka57s1"; + doc = "1cxsw0b5vxy191xy5clf15hb2cpyyqj5ipvgcw9n0hm8ka3g9l1i"; + source = "0qh4w6q9qch3r41ps38yzlv850wcqvf6b0b6vqirk9lq978k387i"; + }; + polynomial-15878 = { + run = "10w1vq7101hnp2ifaa0j9mfccg9y4s3cyms4m63sx54lbpj6rc1r"; + doc = "1vn0i77hzr72xkj6ka4r8n0g0nbz382z729v269x6p5j9qqmiz21"; + source = "0hsb8yyk6ssih7fpc6qiwaf40cwn8xx4jgwqgpmfgkc0x1qkpri2"; + }; + polytable-55837 = { + run = "02gsan2wakxsw1niq6l82ag2rkkasi1nclf5yad2kl6c5654gp47"; + doc = "03k3qz08bfqjyw4ymmibabbaciqz3srd2hll9np7xdphjhf4d2i2"; + source = "1sh5wsb5i1f60sqdych0b3zjcli2h4g46znb0q6n68r4ma7xqixm"; + }; + poormanlog-63400 = { + run = "134qh7xsn7yxa9zx98gpd2hqx3lkd6sqc4rzcandvzi6prsjkip8"; + doc = "0gsd83g26cafmd2alc2acqxcd79zyxkmpyiq2bw3qsasndkyfrl5"; + }; + postage-55920 = { + run = "10s3lcypskq2qmlyqcgldkg4i4a4qbbqn27v6cr6h3j4z93zir3x"; + doc = "1zy7hrrwmdlr3vib8i8vliznri4p8dhfgkz0fx5qgc3ji15ks095"; + source = "0h89r91diqwc1z9wzvbsynazv5k9spg2rfvg39kzb83lipxiqwjf"; + }; + postcards-21641 = { + run = "1glfwj94drccwmmsx6icc9vyzq7w8kvq6flkkbg1bp0rrkjf448j"; + doc = "0cvhgz34mplpjzzdpy2bxblmz6qxxlshadj8in810g3y22v39khl"; + }; + poster-mac-18305 = { + run = "1b1zq9ay8fxqn9593f8n10zlkirw2b0piic71b9fx6s9a7x82w7a"; + doc = "0wc0194ixbrl722a0djm704fmbf49p7vxk5fyv6d3gyznja54fxz"; + }; + postit-67344 = { + run = "032zhdciqwyfng7ll8bpnyl0wndwpm3q4alh7qmsgj978ga97q4s"; + doc = "13j5ygc86v2nkcv5g18j4nacpckciyr641qknpb9mw3i4k39rly4"; + }; + postnotes-69102 = { + run = "0m9izldvlngj81c6nx9ig5civvvxkf9mh3cjj8xh0r70pf3i35yq"; + doc = "1qs6z2rj9k9dmz14r0g1n2iz7hfssr5ysvk7k33y35c6pwc3vvx0"; + source = "137f66097fqzqbzwfwzyqgmdax8z2a835y8ixrna1490zvakbriv"; + }; + powerdot-59272 = { + run = "18ii2qxz7c0wal5xqddyzd2j933lg4z7xglxsxn3vgp8ffq5kr3n"; + doc = "0zpwjmvlckp46ycdldf049s7qvgbpx8cx5zlvzh81qhgdlgximhl"; + source = "1v7pxr134kndndk542f7bs34c5kj85xy0cwvwlhnav89ff2mh5hg"; + }; + powerdot-fuberlin-52922 = { + run = "1gx04y9ysvwzghy38k6izhs9gm1hzssnb5zh8qjjh8v99mk6cqwa"; + doc = "03ci0lcgw777kfmnzas13q75n03z8v2im1wzrd8hpbcwq18mmn2v"; + }; + powerdot-tuliplab-47963 = { + run = "08f25qa5fdacsd8i0bs8y0p3k0zjgja0qp4ak0x3bixz7yivg5nx"; + doc = "04b546i32k1cs6armmnvr8aqbfvs0ysarlsjmsci9xdrz3clm5w5"; + }; + ppmcheckpdf-69527 = { + run = "04xr6c4niy53s63d7dw7fvd00j9i6k0fjfg19knai2l9bnqji5nf"; + doc = "0l0q4qswcijs94pk8qgb74b96df1l8l980bvrrqhp8d071b19xdw"; + }; + ppr-prv-15878 = { + run = "05xs41xfm5hjpx9dzrngaj824rr8cpwcpvzxsyp1xpzlsv3gk1m4"; + doc = "0rfrxzfm34kn4sgj1dzvdyjx7s7nkyjc785j7pgb609svld6jvyk"; + source = "0miijdgcsn709kpp0zjyqxyxfgk0f798v748brmqshb6mfxbryzn"; + }; + ppt-slides-69568 = { + run = "1zbfmwmzq53dm8pr8kzhhgrx0i83s67vgkyb2krlssjsrmycyrjw"; + doc = "058pg4005wb84iv6rr3pjyqfrabl29110rkq8vgq42dqcyr66c99"; + source = "04b7ysvrxyg5x7m7x87gw6fn06h582xqk6gab69mwn24za9286ay"; + }; + pracjourn-61719 = { + run = "1idcncspb2dcmrfsr8bf1ar413mc51lliq9xgpv0ybsiv91yd4lj"; + doc = "1hks8p9vksn88daqyn7rnsaza4i05dgfb3ngd5yrvvw0v40s3acj"; + source = "1jbicfqvvyi4nnmpqafzlzlx459v5cyv62wmq67c2692am8a04v8"; + }; + practicalreports-52312 = { + run = "0rv5rsba1xdwcv89fl640yyqqk8c8vf2w647yqz8xawm358la42n"; + doc = "1a7p22pkmb365haizgg3ainxlr2626mg6p9962cy0933hb59llcv"; + }; + precattl-63967 = { + run = "1lq5f5fx93a79q144980balnmnkvcn92gi85df14iyj96c1zpiij"; + doc = "12gmnd4fafkgrffh9smd8grv2bsq1dajajh3s6rqnf2l8xr1wqkx"; + }; + prelim2e-57000 = { + run = "0fws0ssw09yzmzlvkz4sl571yi6yvynnr91s76vsfxk9xrzvkb98"; + doc = "0madkchnll3aymjfk002ika9awnxqwglwa30mrvbdd3rvghqnm53"; + source = "1bbcnrlhvqldvacxms4jclk5khh618wqkkyyib1fz2c93maxmz6g"; + }; + preprint-30447 = { + run = "0qs03jsxjp1cl48lxnvzh7p3pnpxfv8143979pknr06r24g25csd"; + doc = "0zkaw9x3ziwddsv03acbmc02isp74ikpdva2azzsl1nzk0c3qs3d"; + source = "0y0mk3118yrm95bn22hdwn9qay3j7j1ijkr30hpysf9l11z5ck2c"; + }; + prerex-54512 = { + run = "0nri97arzym6z3pjzidlr6svyk1dpr4yrlgqzh2jcsrqhwliifwl"; + doc = "1wcf96nc4zvmydn9d628s9bffq3lnhnllci0v9pci03cs5p1zscz"; + }; + present-50048 = { + run = "0irxkzfg19h5pn0drgl5dlpz34j1p5jpyii05b2xjz4810gnl79h"; + doc = "0c7pmcjhc3p4ilx3fr6pxc4708kl7iw1lds5ngh8mlrwz0hhsd96"; + }; + pressrelease-35147 = { + run = "0hrx80i1nfwyhhda415v67qxkgj6fqbg4bicirdn749bwc0anhar"; + doc = "05spvrh6dfq16z9jlswzqrwnscnywp482cv3bhak4vavbxs8bf35"; + source = "1c7nhvaxs4xlycsx2n6bkyy6rhnzc9ddcnw6cccpgilds546ns4v"; + }; + prettyref-15878 = { + run = "0akbp6wsxn4swk0kwxw27x3lpf5anwk49bb8pvssaj4xy68hyq1h"; + doc = "1wmvvsz7y0idwfki553qkfhg8j7k5h79nlhmaz6ln448x8gym8y8"; + source = "1w9qckaw403a8nyqyx8qyqdn3zfkxzgfzj1hdw5vwi2805bbfy1f"; + }; + prettytok-66884 = { + run = "09lrfza86v4haac2h4pg68vqjdx60h79f3p7my59mwdk67sgbxwj"; + doc = "0n6w3d8fbm7pidh7iga8vmlvx8qvql90k14hahy4q0i2b8dpg2bv"; + }; + preview-69470 = { + run = "026s7kb0adrr1nf6lvy5l511xb47j51pf1vgpm7gvn4sk9hnm3fs"; + doc = "1hcvagf9gv18695d3pxh4a3dyb7ykv2ib7jaicmvr9whzvhlqx46"; + source = "0fhn4fprb3w34kvbwymxdjj8arqchalg90idzzgarika4mlpxa4h"; + }; + prftree-54080 = { + run = "1sdb56cvlfrys3f884hg6qpv1nwd6ywfyiq8168bs78g4q2ah4by"; + doc = "137f5nbcm6p428an3v20j5cx5djvdri12ph07czj13877pjy9ccf"; + }; + principia-66625 = { + run = "17vkriwbkwjb2ksxbv9glz11i3dczj8hh4a4mfb3signj2dwyaf8"; + doc = "1d7fbkmjbi6ym7kik631219fa4c1cs80k7f3kzzzsrwkmnhrq6qv"; + }; + printlen-19847 = { + run = "1h6q95dvpldmrfbpdv9v19p34iwq3jzz7vs0z7b6fnijyybjxnpm"; + doc = "08p9zwkgjpkh7ip3i54qjdazgnwq79v15hvz4j4y2dvh294nmrgn"; + }; + proba-15878 = { + run = "15d8n2ik6m5sc4vlp3k2w3h5h8h5s4agijgcnlkmklw3qv172vii"; + doc = "1m2mbbn1fa616dfxkb7x8azqsvczyifygjmbblsyfkd5kl6f8dwp"; + source = "0wbnfa1i6vbpbq2a4yhsvpyifiw1pirz72qasxm1nwmgfg5dndx7"; + }; + probsoln-44783 = { + run = "15zsh16v5rs0baqvy9jwn59d95qj6glvc5h054ldb8sy5nwkl3sk"; + doc = "1l5mq047bpdg21mjdjwfs6ghdh1cb19bf9y5939nlw1wyy1flcfk"; + source = "1lzai2ynjnfinf38jdqb0bdccrh58jbhnwnpm9ikskxpzy7v262d"; + }; + prociagssymp-63242 = { + run = "1vs5xs701gkm4zl6x1qkzbqssffdhg4i3cabqx3s8hp07nw8h7fb"; + doc = "009kqv5n4m5ci39bck5s3h5kwcim5dfjpa6y0xad46syj9mgjgvq"; + }; + prodint-21893 = { + run = "06s9qbfy0rkfby9ff3dylykl81yb3fxpwxrwa8hn1aa2gd9bj2n9"; + doc = "0z8ibz668zjjjypcn0kiy488wzgwzxqackz5z996r3sq5x5zzgh5"; + }; + productbox-20886 = { + run = "1idarj7sxqkqzlnwaqv9f192r228fclilz01fjy444ly765k0cbk"; + doc = "1pzba2ymna70gflrnw6hs35dgkv17qfjs8gh4g6van44wjykhfvg"; + source = "1fnqp2sx0wmyd9130j5zbqw2dk1nkajp4qs46qm47b90wga8pkkj"; + }; + profcollege-69539 = { + run = "0xkbjg54jkxplz5jgrhs2vdxb6rn9idwzzknjw4wgf0ps5c8b4zh"; + doc = "0h52b9p6gag9ss7h9jr8c0b0hjym7jlan1n28s10lhhf3l6rdpwz"; + }; + proflabo-63147 = { + run = "0rj7x6s9afn5yid3pqd2vz9qn21z6n6m5cahq92ygn1ix5xbw3dg"; + doc = "0z56g41bw3lwi32z0imja6a4nls406ck3ic4pibyi5ajcb8317w4"; + }; + proflycee-70513 = { + run = "0qcl9dh1433kgkamvr08mdxpfzs56jbppll784fyzhlpfbbqay1v"; + doc = "10vyp8jqi7mwmvk71x3jnkl9nrxajip9cmsqb62v56ry00jy8cc1"; + }; + profmaquette-70496 = { + run = "0jz4cpln3lh5mv23igg9rk837kd53ms7s7mvy4m51y35hal27dmv"; + doc = "1kpjw4vm8wlq2d35wfy3cs08gvhadgl2lxq6z4qhwzkpdp24dar9"; + }; + profsio-70211 = { + run = "1gqjdmsigddwmv3vfafabxqfnbcb437q9glsy6fa6a5f7kmia060"; + doc = "1wyw0lvpggp0ryhzvi3z7ygjlfpb0kp0fi92yfq8ww6sjjr06x3a"; + }; + program-44214 = { + run = "0ay2z8ga10zr5p453ss0w5qqqyknsgqd2hifa7lq0gih4rml14pa"; + doc = "102c9fir3hn0m7y3lkj9j0vwf0srbv6inq87lcxwfkvc7yw0rr2m"; + }; + progress-19519 = { + run = "0wgkyvyf24666kg79h7wq1piq6yq2nkw6k5g0ydk3y4gwzzkfhlz"; + doc = "0r303dr6yf1r5kk38c1njjra7vgvp9qrblxj7zd8fw1vlq2sc7fg"; + }; + progressbar-33822 = { + run = "1d0d6dy9ssiij19s259d2ns2k5v2ccc45anhz1qm7iqli12ij0m3"; + doc = "0bxsgvql8hqv4qw1pv18vdxcshphdpbb29mqp3pbbsd4crp4qb5z"; + }; + projlib-70327 = { + run = "0ld45nn6sal1fyrfdahadvsb3jyrb5ylglva3rh5fcxr6fl1ywih"; + doc = "1l2dbwqhpc18nq8xkwg5f8l9mcg59f9isvqd53kx3avr903wggf7"; + source = "1667xlm00573al2aqrfmfhlksw4hvdcfzr5qa0mz17ci5fcy47rm"; + }; + proof-at-the-end-69602 = { + run = "0nxba2ck41yhjl5cfjhjj34l5srkh1y47h0byx61wqzphdr2y9zg"; + doc = "0k1zfg59sdknh6az19821n5qvpcxvlr1wr4qz0wrghah8h6zjggg"; + source = "0y5r6vzzvi7my8qs90kg8pvb267z6ly3nf4ski14yxa2fgr6ab1l"; + }; + proofread-61719 = { + run = "0gnn7zkzrszglcqcwz8c4i13apildg7s93rkp1z3h5m2gr9w9v42"; + doc = "05g3k77vczdqk19gigs9b6w8rccvcr0d382ysqn0yg6cgd70bi43"; + source = "1mggrm4cfji364ylra3ffdhwbx6phcxwfzw2mwls00msk7jdzpsg"; + }; + prooftrees-67399 = { + run = "0sk49q7vavqlcn6rgpzzjjwldss4rlqkvds78jyfm79ky9vdgiz0"; + doc = "0jajcbq3mv8lmixygc7i4nhwiywq5qp9w8hbiqxi16kpqql37n52"; + }; + properties-15878 = { + run = "1pxl101mc318ivzszyycwb79rqghx4x8xr9fvq216ambs7gq4sji"; + doc = "1arkdafwmhg0hm11as4mb75pjz2mnah1l5msy5xnlk4asbwfc4sb"; + }; + proposal-40538 = { + run = "1y5i7xl1z706fcv82s5dyx1ksfvp9dq2m0shwy3an2r94qszcwmg"; + doc = "1haa55hhz11j9m3lxp84yzlpyalrc3hlb7wxvmngqhn2j2mi0b3c"; + source = "1n3z0rvhnc76grih3jy5h5ax7rffxjwmafd92fnp10jinr9riapx"; + }; + prosper-33033 = { + run = "1vsjb2r4xnlwwdjbnkpvl42c86rkzs2imsq762n2w6x41i591ics"; + doc = "1f5w1vb4d7z990mz6iicjakqhszcwirphwv966c66j2jc3yvalfn"; + }; + protex-41633 = { + run = "0i3dvmvyxfwjrp6fy5bl1kx2c9vapj19vs97jg3rkfrkdbk0mhdc"; + doc = "0wpkhhp2asi3761nvl5gp53j3vr4iakfy4rhciv5l1z4gw7d4j29"; + }; + protocol-25562 = { + run = "0kv4ndgdfmwah88sspp4maca6z1l39fg41bf803kapp34nfxqggr"; + doc = "0mz77awxgv9jk97xnl16rs34b1zdqldfi3m2qgdi9y3synrn25x7"; + source = "0q0vxm79xpxkgr7yf12mqkpj69b75smyr9kl5jw2c1j1wqxzxh16"; + }; + prtec-51919 = { + run = "09izjx2g6gyckmgzrvg9bzlwz1yvwr0nc40s6wsbb898wa6cswxx"; + doc = "1cv2knhl8xrsyzcywypr6dqgdxqss0r9mxl6wv4clpzpsyvmfzbg"; + }; + przechlewski-book-23552 = { + run = "0qn5agid0s57a8bdlha8y9m99xpcvlqknq473r6995qkdsrrdxl6"; + doc = "1bp9yqs9y28nbzwb183yf8h5862pm3iw1jsi8c6qzhsrcwr2b2jn"; + }; + ps2eps-62856 = { + run = "08zr0qc8p22wr40vgwd9idp75x6cwbb3acnqcqafh73a66vdvbzn"; + doc = "1jmygd0cbja55sdfynfqr73f54lg3vkmc9hylyw0zj1sdw20wmz5"; + }; + ps2pk-66186 = { + doc = "14xq9x5rf15ibzr41cm5rm4v3rpmj50rfsqp4zzvyhmpmyw4dsx3"; + }; + psbao-55013 = { + run = "0il4qhmc00ny1syfhid0mvmcz42sqp58zi8gf5hm6p3dsf5jy0z9"; + doc = "0zrmprbhrbj3m0q0swlnk581ka3mws13dsha60izi7bfqxc6crqc"; + }; + pseudo-66638 = { + run = "0h59v2akfr00vax3hr90ph8p7znbi0n0lnzl99f65pg3k46xpgg6"; + doc = "165i1gg6pfg1bcwxqlg2nx2crn8vblnqm0zxb9kl6jd820wjd9ix"; + }; + pseudocode-54080 = { + run = "0x2p2bq7cqajrn8s03dgikxg2nb94hk7mzmi7l911xdgdprlg6qb"; + doc = "1qzvdp0qmmlljahg6hqn7c67sszvjvp3v8zvg7nwam58by39l3k1"; + }; + psfrag-15878 = { + run = "0m5dlnjf7gmikg4nyxzzfz999gphkg41qm2sksq9ly2rspbdcs8s"; + doc = "135c7sr4i8617vwr4nnz8vcy5qv8icr0r0cmqsj6r1hpkm67zqhk"; + source = "0d68rzpxax5n0da8sg1nh50li7rc0m7syz0kvpsgzqbdp1clbcjn"; + }; + psfrag-italian-15878 = { + doc = "0ssx8rw7fwln02zzscywivnhizgrb6w05awscvv9gf9n1qj6avsf"; + }; + psfragx-26243 = { + run = "1kb769ai57d7zg3bp0r0mspz0a2l87qiyg04a87iqk7vxrwv0bd7"; + doc = "110n7a7jgfmzps5ng4gibxigmm3dpkqlz6jpbnphrw1pnlskwjsv"; + source = "180yrq0rnsb9cd8j70jym06k543q211fzzswzg0dq8fzn3hk2wwh"; + }; + psgo-15878 = { + run = "18h614dasdg19jnwwl5swih2dxp4wis66fkscq8jjmpvjnckpck2"; + doc = "0naza2kxcgm9wdcyibs36qnwwgwpsbj2m9qkk3l9d54kml3wiznp"; + }; + psizzl-69742 = { + run = "0pzbip08246id09mm0chi0gjjgdc7yzj0bd7q8qh5yfdbhjn8yc8"; + doc = "03slfkyrb0pil00n55n6yp5vxxxl8adjbxxmg1c2zl261lci107v"; + source = "1h2hrjxc3ck75cigh82rmi3558dmpliwxzzsaabb178bh76m2n3a"; + }; + pslatex-67469 = { + run = "1wfk27qb4x8aafph0lgnkq3bkz5fy4cmaiivd924mk92l1wfg6dp"; + source = "11gykawqw4fi453s1bp2r0pfm0az2k8gr3rcrygzfqqzgrhxvi8f"; + }; + psnfss-54694 = { + run = "0ng5pkk6m2l8yqd58wggbakbs4hp4400r4ihyi9akf8j4kmq2s5y"; + doc = "0vfv9x1qsivwi6c6hi23vw0jcjz9dclx0vxnifslyzlrh7592dzc"; + source = "0cqpzra8jwdn9d6w4mhmfrfw2zia2nbpyxjfrcz8m1disd10lhsf"; + }; + pspicture-15878 = { + run = "0i41lg0nw9xya0gfiwjd3xgbk0w723g90gnsvnfg764s2dl371b8"; + doc = "1p27zx0svlcm4p12xjq35g2lgj1j485c3x363gciqb4aswmlsl65"; + source = "1f8lhyhfcywn5y78354r37bgalyq57bm1fill5vzny3l7cyqxxn4"; + }; + pst-2dplot-15878 = { + run = "00y967mflrd0y38mqyv8r7h489jrl38rgaiq871wf9k3cbmf0f1g"; + doc = "0j1c2kxc63nf33gi1f146pa6hw7fm5x9h4yc30dqg8hsd2v0bni6"; + }; + pst-3d-17257 = { + run = "0mh6xbrvwxx7nxp4yqm71hhpqjb41g4kinxkj2vmspw9wrwclbj4"; + doc = "1dp9l6vwhb306j998hydb07c6ig10ibn7h0wwiaisgabn0s69xqh"; + source = "0m9lvgmjzzc2lmp63vnly30j9886qabgbhqwpbbyl035cy6k684n"; + }; + pst-3dplot-68727 = { + run = "0pdzz4gqvq0h0d13f6464ldz78x4gzn24bxb76lcjj73xpjsxir4"; + doc = "0agrpqkm3zs497b4rrday4cbxy0l1l3rqpiindx7v57fzqh0i34w"; + }; + pst-abspos-15878 = { + run = "0pjh72cjpim4v0ri92b7nbjdmilpfa7d49vsvhfqddq68k02m0yc"; + doc = "1nwjynxlpxgqld6slhhrzlsalp9296nbnj2kzr6a9c9b4sjxxbp1"; + source = "1p9i5bg4jx8s6bb6ilbaa702l2mn911g09pjdmk6mnb405d908fy"; + }; + pst-am-19591 = { + run = "1vk1dpvm5bcnxc6k7kpqq5xb6a227bwhlrwd6mdbdapk58jh876f"; + doc = "10acmb6wm7z9bpgh76hlsjks9v2rzp0qqbcklrjx3iw0jqdk53vf"; + source = "06xvv8fh818ldzqccf911hw4wr6nyzxdmghynlsg4hjn54ff3x0l"; + }; + pst-antiprism-46643 = { + run = "1b8yxfyc4cac5992a3cc4xkj0ip35z63rqxdw2jx748qs7c3gyxf"; + doc = "0d4v65fsk28hyiljr6fpk6yw7sac7n9jmx4bmdfgpkagspb7ygpf"; + }; + pst-arrow-61069 = { + run = "1x1b083p4k1qz178zr06rfjirn7l2sh37qxyjd8n5z849cp17rqc"; + doc = "0643rfi4b4jhmzs0zy6pkrf36m9zc4dilp33mx3lis2yrra3if9d"; + }; + pst-asr-22138 = { + run = "0sk8hchv1p7vrpyjslpc45mhjg7l2r66mlmmvhc0s89q1khm08rf"; + doc = "1a6d4g9gqjslnfr8fp0dpw72pp7c14qzq5l5i80kv36w5axks7pd"; + }; + pst-bar-64331 = { + run = "0w3h9xpikkl4ilvgp398m78f7k5b0j0w8z1zsmv57mkwf8fisk6x"; + doc = "0v7cqj05haz0gfjrvy0ppcfphwizxavznbqakkr7b51krh2c9grv"; + }; + pst-barcode-64182 = { + run = "0lmdhzcfqg3cxjpj0f80r8dfd2qp0nq125rgxf5d1rjp1xl82psc"; + doc = "1mm04sndnrqcm1z5axhydyfvnd2i49hz55gnrs17v022y2vfwwml"; + }; + pst-bezier-41981 = { + run = "13w3hqzfim53nrh5bn82fb4gxx32gfayiaqjk5dx49xc4l3rvq6z"; + doc = "0xjs89hfkf7ak8izf59sl5gh5lawv04nxlajn7sskh187qwbqkgw"; + }; + pst-blur-15878 = { + run = "09fl784hqyvbvs2w9ymd4rda1dfykc1l8g5dpac00da1788ypzim"; + doc = "1x881z1z4ra5bcms1yn2p7svs82h5ckwwvlw30jfdwxp4bgs5y28"; + source = "17f9k4vqqk6mrh3dny6qfhb6b45g6sg7w50i3c7d9k0djz2wi5jk"; + }; + pst-bspline-40685 = { + run = "05ys29amaikrm31avlz0kcra9j48nwvqwr5fwl75ljydjf6drdaw"; + doc = "1czq6932fmx76c82ylrbh92qs2nnipll8piah0c7f35xl9y5xgls"; + }; + pst-calculate-49817 = { + run = "1knbqbysc6f3csy1y2vf413cw2jpf722l0hhs20yzm8mi8x279yw"; + doc = "1jyxfqc18whihn8jkp041bvpp1b4f7jwi2zdj8abnmx45d16i6jc"; + }; + pst-calendar-60480 = { + run = "13f9hgbldy8cn7si1p52lcv58d6c8slsly5k6ykm4c7vh3461ckk"; + doc = "0zly3qhwv20da2g3asbpmgjps7zjidd3hclq6znpyh58a5cdbiyf"; + }; + pst-cie-60959 = { + run = "0rqn44hmz4gdi0n1pcb4gq7yv1mg9r8gzfqbz8za76jpsbkybi28"; + doc = "19fib4p6zcgrkbml49vwd833lxj1a0brw9wabqlsj0jnh9g5gk78"; + }; + pst-circ-60464 = { + run = "12hsni412nfjk0b5blbi7slc4pa0c1lnkkbrdhkd84yqm12gwf0s"; + doc = "1p21a1qwn8zhx8nqzr2brxq53xh2scmr7gb8jcdfjgw8rx998s5x"; + }; + pst-coil-62977 = { + run = "019hda59xplvwvc2jrk6zjlvx26y2m8l7j42sr8w6ydgs49y1m7x"; + doc = "1rlp43hi4fs3gkfaic8r49774g7rgg97mkyxzqmi8qak8fz1v3v8"; + }; + pst-contourplot-48230 = { + run = "1cav44hw38rnyi1yjj5z0yqw2ilbrq328xrj4fdipkfd0km0bf1i"; + doc = "15p3znj8z0s3d336ib264c3w0m200igsq1aq2bbcj92v43rzffrz"; + }; + pst-cox-15878 = { + run = "07662sjbviwbplb7mjvvb18v8lf67v997hn78q6gz262z41daf3n"; + doc = "0iwvk4db5girx2fn6fhgx6irx288jw2jnd28j4zh8x3f5hf3xfg9"; + }; + pst-dart-60476 = { + run = "0q1ck6pz7f84mcv6hrjh82h1hpy7f8l08810iwmp9551djf4pz7z"; + doc = "1ccwpmicgsv3lpg2kgbgmvy0mwyjcn6gvwrhmzlxhabxxaafrvp6"; + }; + pst-dbicons-17556 = { + run = "1mq523ngyxlds1jaq1cnwkp6hynlz72imc1sh1f2fch0v91a3kc1"; + doc = "0j4p340dxlyj53s18xqp81cqwy6awpnw6k4q68yk4zx915v24l0p"; + source = "1c071qx2ira6hd9mkh07k4kaqhy0a3cbhr6k1b4wkmlfswjynppd"; + }; + pst-diffraction-62977 = { + run = "0ccy05jagh7kpra07bai1j8drwn2701qdfgki925mcifsa74r3y4"; + doc = "12xx19vaygrby5475la4nzygcbf6cf1mq3g14sxyhg997x9q4ha9"; + source = "0wf4kpdn7vyaf9cy7dq6qf3lq37fgkcg91njfbqy9n9v8k87fv1x"; + }; + pst-electricfield-29803 = { + run = "0kk0jjlcfyvz5dws08wnm3qlhvgifrby88idssjhgvqgg8zpz3yq"; + doc = "0zx7x15p6vxj1f9v8id7ba49878xjmbqzh762v1sy1bxygj9yb21"; + source = "0n1rxq6jx331b0qlnpjy7mh84m9vdlrs8ckr2b3slwcwp63cs0sz"; + }; + pst-eps-15878 = { + run = "14grlhaxxhwmpw3xi3xv7n3bq3zx3qwd9rh707wfgz87iaj7jzvw"; + doc = "0dz6543q5g4wsqcwcwablr7w7w5l6dk19m9qpgrhb1w8sg7hgc31"; + source = "1cn9yl1prwzjvxwgyzs5jdywyirg9hy8g76cnl62gkk9ndmcpryq"; + }; + pst-eucl-66924 = { + run = "0fr742cx9fcllwzmh4w9690h2yq2ch6zkf8m39iksdsfx82x6sah"; + doc = "0jxn56qsma852nvb3m9qipxyhl39r3wslwwbiggax0jwqzrnbbia"; + }; + pst-eucl-translation-bg-19296 = { + doc = "06c9ajnfl01sl81z5r8a5lzmaygq9rdmgym2v40y7xp7z033gwwv"; + }; + pst-exa-45289 = { + run = "1s94fbqpgv58zks5jfq3dbzhpw4p3gchhm32498m6bsp52kzzl7w"; + doc = "1m7gwxbhnii3s7aqi8v09sq49010yasx6k4p7bx43rhir08v1zjv"; + }; + pst-feyn-48781 = { + run = "0qi5zll29rfc7jkmz4hs0y22if5qjn13whaf7a62rdfvbdp1l87x"; + doc = "184d371rhqn549a9vgvdh92ikzphmdsbskny0dnh0pcgxzwdabzz"; + }; + pst-fill-60671 = { + run = "0h748amhh9mhpg1m3l5maq75k22jhk2xnml0ncm2dl2fay06mlin"; + doc = "0p3c86vmlx8h504vb603yg321dcf1lwfyfvlc7qmlzmh1c2flqvl"; + }; + pst-fit-45109 = { + run = "1sqdysxpzdlaph42725hvdgy672mzdmhz7scizb0jr5wnq3rn9x6"; + doc = "0lvvy353s1py998a7vr01pgvkl29qp60w2gyrxxwjig7j7ihn5lw"; + }; + pst-flags-65501 = { + run = "0p89whiwccbsx15jv7krji6fz8br7d4k3ag788dv2cyjids8v25g"; + doc = "082hffz14vjvrz3pgc6pb4xj8ljyj1igvwlk9q1gw48sd0rgrib0"; + }; + pst-fr3d-15878 = { + run = "1m0zz9bqdqw1hzwp06s4hma68wwm5mmswrp9jj3xc9r5xjyq7fk8"; + doc = "1gpijw1iv0pg30kws1vclsy5yjd7rk0j3qspcjlmkj1bhq3fjrgh"; + source = "1zvssd11fg4hf53rz4c6imsgi77kfcc7l9hh0ni8jnznlgmdjkf9"; + }; + pst-fractal-64714 = { + run = "142i9wf39v31wzvalh41v5bjf1l91x6kib1rpk6fqyhfxx44ibn0"; + doc = "0hkvmraf88w54kgqax7q6lg9zmcliqczyrw4prlivgjkmshy64nx"; + }; + pst-fun-17909 = { + run = "1r1zvnyg5m16fifi5xbzn5iypr4n4d9vbnqi42h6a4m4y1wb3qdh"; + doc = "1gb9rz3kz13xzflr7r00dalqri10lbn830v3xcpmb4n29a2bf0qv"; + source = "07kpm9irvp7dn0hd1wh08p7lfbgn78jj63yqzzxn1jb4wrb4qkx3"; + }; + pst-func-66845 = { + run = "05c7166sms46md8nzkm9gzp5s373vqgpkr7c146ywxanix66b0cb"; + doc = "0wlikp18sc8lq2jn7zxh619r2d54p425a5k0cgm669apz7c0vws2"; + }; + pst-gantt-35832 = { + run = "1hkrmdwg7kc4xiif4fvhjwbj2ryxlrbyqb7h2n3rk2jmmky4hv7p"; + doc = "1fqkwzsliv1mg3lyidgcsy652l5d2qy7x1rjix9swvk4vblx4fjs"; + }; + pst-geo-60387 = { + run = "09br33z2vdr2dlsfyqf8rya3qj7bila8r2xwqbc6g96yhn1c3r19"; + doc = "1xxyazg51s4nj8hz8adzv3lvpr2dc1ji0sfm46xr763srwxpjjd8"; + }; + pst-geometrictools-61430 = { + run = "0i80r2n3vsnf4sczqkh9ri4dfb7dfxg9jcyhrrx2az552q1mr33h"; + doc = "1ff7302f5ik2a367c81hgk3d88kkapm1jp5nd2mlybywa2nj5s0f"; + }; + pst-gr3d-15878 = { + run = "10jn2wdc908z2imnpcv03ffm83228fam0cqgmgmcss1774r2nc18"; + doc = "0985ydi7jfsvlynjs5ddjhyhbh11nficfphy6qnvbv0jj367rabq"; + source = "1z981d54aclpbq9ggy28qgnsspgwkavalm0j68pj69jxbcfxrpby"; + }; + pst-grad-15878 = { + run = "0bzq77vj333dsgilfw9k7lslhpmk67id6p1z14aw7nfrhyc80082"; + doc = "03v585i28dc65xrydsp5jj9nd6kfpmhrjkwm3w89dv0p32xyzh11"; + }; + pst-graphicx-21717 = { + run = "1d7zvrnhch7vj1l9xscg4ynj5alml7pb38zwqns403wvcdnmb1an"; + doc = "1mly0nr5yc5rdghy04sarhrwlxiwnndk644s4czf862n92ammh5d"; + }; + pst-hsb-66739 = { + run = "0x0yzrsp6pwr5yk4s9rjkdgmxs5g93gmli5k50g8lwfgcz1kyfky"; + doc = "13z67asnaj83yzn6qa9c6q4313klc1aln84hwsb8qjf3qg6w2556"; + }; + pst-infixplot-15878 = { + run = "133806cabfd6c44b0sdhchcmqjqswy2q2j2ry5kr78dzdna40y23"; + doc = "1cd3i5ishy7pawv3ah6486kb63351p1g2d7iwx9zh5vwywi1ymqm"; + }; + pst-intersect-33210 = { + run = "1wbipiav79g5cal64bny5ba872rr4848i32w64bhrl7awsddyq0f"; + doc = "1y45r9pdddh4pbb3bfp6mzss7whapf4bv7zbkrx7wmyjaal73s5y"; + source = "09pbicmzmx0nraf5s8b19grra8p2vvdl903kc582dwn7xvqrk3rn"; + }; + pst-jtree-20946 = { + run = "0082prldszninnbksndf6y5mklvp4zgdyk31v78axp5fl3mq437n"; + doc = "1hgy8iavrhzw6w8r0avf3h9x52fdl3lqshf6mxqpffaq1b0s6xqc"; + }; + pst-knot-16033 = { + run = "1m1bzq66jan3miyp6r9j1pkk7mim9xjn28ldd1nni06v65hdcz48"; + doc = "0gfxyryyf75p89y2l1ar5yfy5c6qawbz503bnpnw7n575rhsz36d"; + }; + pst-labo-67147 = { + run = "0wyvxb8xs4qvibgz2nz9fayp9fv6r2jlqxrr7svr43gnzjdsq28m"; + doc = "1ayqgrs4y8cpws9bla26s7b82xg04p4f1y86p1gcl5f6816whq4g"; + }; + pst-layout-29803 = { + run = "0199jrw7b58x6qby4k48n8sd2rffxlkhrp334q2dmalqsi701l89"; + doc = "1346ww24d9c64h03zgz7m7xdsnvkjy27cq4nbjn56bqcrl88982d"; + }; + pst-lens-15878 = { + run = "0220idbrzzslcmlyxxzj52mj9iai0p2ya10ykgkssyd8nfbl2jin"; + doc = "02hbbhdnaz6cc5zkp2zmm92kbk0ppzwljivr1grx4g0jqqw8c2h4"; + source = "1pwn8wx5w65xdz46qf5mzjkg74q296bkmzwsxw2aml406iksy890"; + }; + pst-light3d-15878 = { + run = "0glqibq1h8ynfkgn9r2p0yvgplydsigg5chj5gl2vq2hsb38sqg3"; + doc = "1njiml3v4vb7jxpnai69b08pdikasjk30g3xp31vixqrzr56i4am"; + source = "0rrgfxsbvfbyc1g1xsakmiiy7f8skmv2bkgq6vbji9y1f5s3b4zl"; + }; + pst-lsystem-49556 = { + run = "02m2g6kjs8fxifsdxld6ivjxch7vj137828xpax8s7abr9f4dyiq"; + doc = "1apcp1ms40xhypxr4fq6xrh91ff15gplzllh3zs5b1w153xq3w8l"; + }; + pst-magneticfield-69493 = { + run = "0zpzn1ci4bkisy4v5mng3ywl0601ppfmky8il3ji1fw3l6g6i183"; + doc = "0pbhh33238l79zk2fz2a87yhxk8ax81kgk2xh60rdq5vb8md3z0k"; + }; + pst-marble-50925 = { + run = "0d7xlygws5f1hipyc2ba7spr2y8h3rprigbrryny3mw2ycdh1yqv"; + doc = "18jzc9fpjcrhya1knqsxxmaix8sglfbcsiszxc949pf4zdpm50ym"; + }; + pst-math-67535 = { + run = "070vvvcynfaa7mmfmqkkn7va3jvpmwxphm2w8j4k74indii282ry"; + doc = "1w5rhcaggrjn9hmkx4h2h31470fpj8d3v3gk4w8ph35zhds5vl9c"; + }; + pst-mirror-60506 = { + run = "06qvndipn0i69b5jk8fxhp465sqjz79vlwr0j01ria3m91vygyqc"; + doc = "0bfzs55sj49y3lznll477bag80yf06pcv0hh0xfg3zzvhmpcpiky"; + }; + pst-moire-60411 = { + run = "16zhb6gqrpdn56cggm80q67yp175dkbvyj5iy6zr5bxwj6qj8px3"; + doc = "05g9hsxfcm5yl6afrlpba7hc7hd1kr0k00m9zj0jcqp1ggsqnb6a"; + }; + pst-node-61838 = { + run = "0a8bijpghvf5zx9zsd5m4bcwzl526f4r9vqa4dbqdxww0zxwk6gr"; + doc = "0w0wr8xc237qjsz14yf4aq56d6jm8a4gmzp790rsphqaavab677a"; + }; + pst-ob3d-54514 = { + run = "0pglxl2prdi347qqrjpyk6hr3arhfc4rrcz1mnyz7q5jyamlskp5"; + doc = "0s0jyb1s21pkmdnz4wdz793lbvidl9qdfh9cfqa0bwx9mmjvhpnb"; + source = "0v9kih4gxk7aqwynihipm1595iswwkv5y6qj262aikhr6bz8v0sa"; + }; + pst-ode-69296 = { + run = "1ga14sfia3w8pr8shxwf5231l0s2wd91yzn8lqvb6k9i5g5qcc5r"; + doc = "15pyk4ahpccaxkwrg2kygnlsxryw7x9y74d0hgq234618jdc9fib"; + }; + pst-optexp-62977 = { + run = "194g5i604i33bvnprfyjab50smag094lv4gx2skd2h16zfzmg9lg"; + doc = "1dgcb3fax1n15hz15fr0pzihyn3yyzvidw6nacysc4qxq2l6b56d"; + source = "1cw69vk791rr15dc3z6ivv5lbcziab0bwiar8cr767fpm0w4rrfb"; + }; + pst-optic-67052 = { + run = "0f3ml0lw1yl9c9hvvx648m0psq9xd912z325mj2a5vqih5vxssyz"; + doc = "1wznc3x2cmysbj67dc6pd8rxjp9hdh7gpkjxmq1vdc2n85vgznv9"; + }; + pst-osci-68781 = { + run = "1frp9pmwngklkwyicr04aph29ljjpgcgagnk5r6dxb0c8bp3209k"; + doc = "1669300lfawksl65nx7x7g3kzzhf8qpj08isxcba40ac6lwkfkp8"; + }; + pst-ovl-54963 = { + run = "0p4yyrvagfjamwd1f81qyfhz6wwjpqi6nfazyl8ml1fd7qjv1g18"; + doc = "0pqh9sz0l0j0bzvsva6kba6gm7cssy36i17px2zrr3lc9k6yajf4"; + }; + pst-pad-15878 = { + run = "09z2dkb2h8hmf46b0h1b235d1yjv42dgx55pj5s4dbpxzgam7ljz"; + doc = "1c597riwdggb0fli4w4ay2iwkqhaiwxy3mcl9diz8lijy0h4fpk8"; + source = "0b2w0pgp8njbndx6x3hq0rwxsr1gwf848l6gk3vrkksq419j2506"; + }; + pst-pdf-56622 = { + run = "1klgwqpc3m5k5ciiqb070h48r9mp4hmssp4s82k79n6kq45ar33m"; + doc = "06b1kpazsfn7gv2npfrnrmxlky5mhw6dfyzip2lwd243m08jdagq"; + source = "04b0kpxmzi42116pxmkdjl87bm6j22wr62w7bka9qww2ifj18na8"; + }; + pst-pdgr-45875 = { + run = "0k7i88srnysbkk62mr3w0fgv3dz8hlz96nlxbrfm4arhxs6ah2pb"; + doc = "08lj4bd028bzwi25j21h98ma5zw72hiarpcn0nbxwhbbqz865q2m"; + source = "0q2cadndr14x2sjjdsc07xizrb9cv8i5q8w14lrwr4xkamagav19"; + }; + pst-perspective-39585 = { + run = "0g88w41dpz9607g286ahba11af2a1x9zya4saxhjd75j9il0h4k7"; + doc = "04gim8i8fmy3ysyl1y237cn0xfdsiii2pwkl6y79abz1gscn0pfj"; + }; + pst-platon-16538 = { + run = "1crl7q5r89vl99jj5f6ki8vnz5f5i15x631ra811033xmi32z4yh"; + doc = "08d0g6mwkqrc81g5dhk016bi2dvr3jz389f32kx89w6n11iw5pqr"; + source = "1c4pmwrfk9yxg8jshhy5y4bwvlwwm6xn39lgr3xdvsl9bn5pfz2b"; + }; + pst-plot-65346 = { + run = "1xq4l3psjh3vb5ilhjwrwyjil0i4bdy4pc0k0kqkpbab76p9i0wi"; + doc = "1h016y4gfy9kpd33ahwlqvi93c3z5gsxg1b2jayiazzd6fi376gb"; + }; + pst-poker-65818 = { + run = "1h7piafybws9clj0gn4cbsm5z9gxcmcv07xswx1njfkl319yj0hi"; + doc = "05gbabajcli6p3k5m4hkq2dxl6lf8wij96dczxalisrr3p9ddkhr"; + }; + pst-poly-35062 = { + run = "168ydw08wgqsy642w7nf8nyzlmxccpcbdvyc5h8vqc6i8xwrlzyz"; + doc = "0ls2nf4h4p1dc00mmplc73bv5vanddvxkmxv5kix9b471xx0y696"; + }; + pst-pulley-62977 = { + run = "12w7rcb0z564xlf17258dx1q290i3p79bv4vhqpq5pp3wxf46c5p"; + doc = "1x3c2n8js6kvnmdrhnm5ng6amkwxmdlbnz4wsh807q5agqmq8q6k"; + }; + pst-qtree-15878 = { + run = "1bv3xxysk2jw5n41i0c0zm2kx2r6qpyfqmpaf6dqzm08rn7ax1lw"; + doc = "1kkcrdm930lr128ffzcqd3qvh11mrikiar3kqszzscpyfkhi8vc1"; + }; + pst-rputover-44724 = { + run = "0ahx2fjnwgamdb4r6v6q3bg72xpgvpfan3ivvbi0gvvnah98l4zv"; + doc = "18gaman0znqzxdqw0r2czb30l18wh5740skvsclvn28b5wfa0i2k"; + }; + pst-rubans-23464 = { + run = "09lmil6ishwjaybj5nqabxm20xwx8nw1l9dj9bbjxg42h1wz26mi"; + doc = "0l6w0hssg5qmi93inh3n7wk7hps44l8w5xvj4x4rblh3fdlrrb26"; + source = "0phh3kkxrr74y6fim8ak28sdxd5fn11c1nyn3pksd7ddq0qy5gva"; + }; + pst-shell-56070 = { + run = "1j97kcw8w52q1ispkpbwblxza7q8v25288pzxkyc4yf7802a3zj1"; + doc = "1i5dbbnzadhc47mg7bdv6vas7ynkx2c4qpz0khcvrz393kszjkdm"; + source = "0rc6j6cy5kwh9sq2gp5scxpb58ycjqdycnmnqpy67xha62fnhcsp"; + }; + pst-sigsys-21667 = { + run = "1v3yz2vhazp04xjd0bp4pyyiz0v4yq7hbr9mq0m2s8pg3hisfbwr"; + doc = "08m72w1jxrafcbr19fp0yvii9aama1rfl9czys6gr3sii9ks6qxa"; + }; + pst-slpe-24391 = { + run = "18f99ravk128r2cg84yxv3cjx2df8fgzq1f054z5g5ig1s5ginws"; + doc = "0g8dhw27n2vf73289y8rah5xakb60cy23993vl3ygz1cgrn356i5"; + source = "1mxninpgycpbakvmc9qc6032mncz890k5ggsfm507jzyfxrdp5lg"; + }; + pst-solarsystem-69675 = { + run = "0wyascz2z4ydqpmgmy23l95b388qp6z4p589dy3f0sz7v5cbjxx1"; + doc = "1z8kbqvi0c0pk3hc85xd03alqwghgnqqn11k5f2wqhgv6vbrif5h"; + }; + pst-solides3d-68786 = { + run = "0miw5r3sp58x5q9rdcaa2qp7kvsv6f8pnkjklljm8gy171ddvvav"; + doc = "09ymz8vb5hinmcnnc8x92qkaq6zjhy3gyj0m5rgljrs15ks38vx4"; + }; + pst-soroban-15878 = { + run = "0fygllzq9gp37nkffgk3am2vygl5d5dwyr4avf1gvh0s698jj8by"; + doc = "16a1w9ci7ivqf30hvr23fv6j6clqjb4y7nmjgcbfz20xzxk3aa1c"; + source = "1h6srvvl3s1prswlj608y7pj5l4zzn13yqrhdv41956ikd1wbb14"; + }; + pst-spectra-15878 = { + run = "0nd87bnxf8giakadg457p10idbnn0m982l0pgyx23495qfxywax5"; + doc = "1y40d08nwnpkmrm0jdj69drpip1gwkd8n9hqmairl1wccs6r6dhk"; + }; + pst-spinner-66115 = { + run = "1nkmvjy19cpxqs3ii3djmrr6yj8naf54a97jbprs37afml3zql2d"; + doc = "1sff7bhnxjj7cmixl9qbfvglya79187gx28swxr7mby9ybf941j0"; + }; + pst-stru-38613 = { + run = "16i39r6vivs0z1l5l48c3vky9bac22n5k7gddfj7vlllfg6llgzs"; + doc = "1cl5sq39pfvwhww488kq0cgnlihf63jkhqdd4rciaa8vf55mc6wm"; + }; + pst-support-15878 = { + doc = "1470n03zanpw35dnfzyjqm7d5lgddrimypz28x0zsk9nqpamnqnv"; + }; + pst-text-49542 = { + run = "1s0dqi2mpzlk8069piv4z7jg370navi4r5z8aysy9vx8n0vm27zf"; + doc = "0ia6h49lfi9394sfr29wmafbhvgdm5zj7q13zll4d1agakn48j27"; + }; + pst-thick-16369 = { + run = "107cprs3hg9jmkdq00w9wc6bbkqmrdi91zm7bjhih461jmqax88c"; + doc = "1irf2v4yg0w5v40m2przdcbhr51qjcrbj0s0i53rq4w4v3gl03hm"; + source = "1qwxccyqzhl6mikl6jp9s2asz1aj96l86yq9s8nfacjg14vk5n4c"; + }; + pst-tools-60621 = { + run = "1ip2cm5wa8m9b7mb44lphkdjbqascchw8c1s7yxd5zc81xnapjwk"; + doc = "1c5z1jxs720aczn7mjn9lz8kw37k32qrngaa9d8338ls2q47g88p"; + }; + pst-tree-60421 = { + run = "1hvjna16bncizkja6hac8q4snirlrkm0c5ybi9c8b8zjb4i6gynd"; + doc = "1fp2wx2xwhrmimq5axmpswnw62f39q4rqqi8zxklhkr75ccnxrfp"; + }; + pst-turtle-52261 = { + run = "1b5948sqlh4yaf4j3id2zq9r43v6s3azhbjkww7vmxc53rfcqfpa"; + doc = "1wfka7rwysdd4pyb4nhp1fy4f1lnqg32l6rjmqfd17fzpkmb3035"; + }; + pst-tvz-23451 = { + run = "0ly1mqlv7fx1xjivacx5dwwb1fjhqfplps9n0wzypvbwyd4nbaia"; + doc = "18pcvx7rlvad0a6hp0q8sq5pf1y1rfydyqd11bqn94d56nqw6api"; + source = "00i2akla1ibrk6hc0rby5q9n3ji4zlrs52d77y9iyazj0v3fab5i"; + }; + pst-uml-15878 = { + run = "06bll6q06szfsaib7jf09915qvz0rzf0gp5c9crwb139gbpzvxwq"; + doc = "1c0pna78alfhi8i7bqr9zwcxx7sksi3idin5wyqa9dr95a2pwd80"; + source = "0q5x7m84qdv8sy7x2nqfbhwp1lryr5vkji4hf74a0ialc617nfvd"; + }; + pst-vectorian-60488 = { + run = "0q4yzrn6rk488awv2g7qlba08w6807p12dlk1pydp42sba3a3sll"; + doc = "0wws88bwd9zmlhqv4xw6v31cl5dj64hzvqgw944gpjcgxpz19215"; + }; + pst-vehicle-61438 = { + run = "0a8809rs553n79zvpi8vcg92lly643n1ss53pfkvk2jki5nszzwl"; + doc = "0adwpcxnmn8nabc2nsw1d5rj6p0rxhdidcpyhmkdw0rxf17604s2"; + }; + pst-venn-49316 = { + run = "1i9frqc6b4wg3pb0ks4v0xxsfzs348ddhncr31mhfs39nbj6029d"; + doc = "1y2pz45hlm2gd1lvj8p40ldnl04pzccgbsa3asnbpcifkx3gj4s7"; + }; + pst-vowel-25228 = { + run = "1p1adlrg62jsqzkjkl8avb79w26kkd5jdssmkcsd65dg5qfa9x50"; + doc = "0wyl0mvx2d0zd8q0sdmyrqgr72i2igv0669ajv0gz8miv04vr41k"; + }; + pst2pdf-56172 = { + run = "1rm0frzi52i3irfy5703kw38d3f1grby27nryjpb4ziiw6n5yizb"; + doc = "1sll10kps82b47npv2g2r1l3kkm5y75mp2p2pzqsnxxivgl5kp2l"; + }; + pstool-46393 = { + run = "1g8pmd13f73v8bsrcpf4a6hh00pww6isz00gj8cxnj0xnd4p9xwf"; + doc = "0vwxrcm29w8fiw4mmr5jcxrlc122k4s1wg1sqvmzqypwpvyls59c"; + }; + pstricks-69674 = { + run = "10ihzmpabwnc8y6h391ic8hcijb7nlwcay73z17d11pdy5c0wl3k"; + doc = "0hss51yw2ahaicyv0xdbqyxqqhc74hd2f28pj2sgn6c4yr00v6xw"; + }; + pstricks-add-66887 = { + run = "1h1y2r0y3vypygcczkqi8xpxc0mdcgqm1xfscspqw9ifndx0rwrm"; + doc = "0bd3rwcdmxnazq86c6wwbjkajzd75knja1fc7s3svhn0hxy4jcza"; + }; + pstricks_calcnotes-34363 = { + doc = "00vgcdf73p4143dfjcvs4b5v4phvisv76ink3iiijl6s6f9zbmy3"; + }; + pstring-42857 = { + run = "1f7a26xxxzwfgprhzxq4ay597sln18hjk8cmlzjy342jy45g6dpj"; + doc = "0ngxd95s8lzpsgirgrq4dg0p1dwh4l0gs99nhich12v6l19jd29b"; + }; + psutils-61719 = { + run = "04xwjilc64d5zpbngcsr6c6gvm3857wf2hsyag32v8bk1pjag97f"; + doc = "0hb0bjnk53i2q5wkkcn4rkjbpvyv90d41ynxbgsk8hp2gli8b0zj"; + }; + ptex-66186 = { + doc = "1dk8rvadr1q00bjizj567lzjp5l47pr7miyk0ghkajbiiwbqi0kn"; + }; + ptex-base-64072 = { + run = "1h14n8hj9xh97y2g8fnz7q3vrzmm7nkk1yj9194v0y6kjggf732h"; + doc = "12nxgvrinkd95hiwczd8nykiyldjyvh8sk49m2j8hl9g4g6slkg6"; + }; + ptex-fontmaps-65953 = { + run = "0f6cijbr26jjnba7g5ffyh8pb0aihdfv094yyxhrp2wlf93ca4jg"; + doc = "00lx6cv5sb039k3wzjsq92q9x6a2q6l96khmj6rc0l06xva4j6am"; + source = "046jbs402n7g7dyd1akqwx382rkn9m7cs6qr6nz1cpd7c56kfb9n"; + tlpkg = "02z3c5jkwmrr61b6ivw0dx45jjgg7larkrhjzg4mr2dha2667hmg"; + }; + ptex-fonts-64330 = { + run = "1qp1linlsyyx2v4v5l2vjvynw9gpvd4c1klszamp2fcy1wpkgw49"; + doc = "0iqy6k6x96qqg2c8p9cn58jpkqq8hhnb20852a39whgvcnk8awhp"; + }; + ptex-manual-68147 = { + doc = "0kvq5wx7rz6lz9a5f2fjk1y3l8sbqm10jc80s9irbkhv8rhkg8ar"; + }; + ptex2pdf-65953 = { + run = "0s4b60gc0wg4wgxczzr2h1xlic0rk23a9wvfy76vysqzlsfmh0xl"; + doc = "0ky2zh6a5d6w2aq8k9wg7p3cvp8l4wihfjlz3sir3ggj1rx2x6j4"; + tlpkg = "1rikx19qn1av7hrihjviqi1jgla1ncw3fyv7mjav490813nk92ah"; + }; + ptext-30171 = { + run = "137amhihk598rhaf0qmbahd9spqivzqrmi53y6q3mlzhlrxg0p1r"; + doc = "12crg85znvmpr5yhvr4yr6riw037zwcpwpavp1vb1nnd9zy99ya5"; + }; + ptlatexcommands-67125 = { + run = "0srsgh0a8hzy23xd4a3fa168qx81fixakjpryd3db55ygrvqlvcs"; + doc = "02k3c7nzrsgb86zkhc8mxl06wdalw9cdrp5grm0kaw0q5yzifp9f"; + source = "1wd4k71xrlgdxbix3m2dr5isj0am8skdr1di00bji1vj8fvmdczp"; + }; + ptolemaicastronomy-50810 = { + run = "13zs1n17jsiaavw98g2ggfrmb4pbd48qscqb918shai2ffkpx8lw"; + doc = "1r0c5rixwam85wchqhf405h7mwim88616ycy1i4zv03hby18156a"; + source = "1aacl5pvqww0j2kvk7k5ikn43qhj2pqsxh47kid443g56hclkzwf"; + }; + ptptex-19440 = { + run = "1p3bahmdkxbdgczvx52qhyn2w0wmdzr8061idf0kpbwvl0nkw75p"; + doc = "1ldg6ljwf0iivd0cxb22sld2q2afwfb83ac5r6jxjcfr5ac7dv0q"; + }; + punk-27388 = { + run = "0jywh76pckajz8m9c9li6vvybjwljyzhk7hsn437mswbfdd5f2yz"; + doc = "0lbly72hl8a5996dkjr5ssnzklbshbypxymp4zgdvb0i033pd0r0"; + }; + punk-latex-27389 = { + run = "1wfs3li3h0fv6dmpvfjvf0bhq72iy82gpjbxhp3ssm7sj41y07cf"; + doc = "1agngq3shcszz054gmikza54ny6zki30rsww8mp7h9ab5nmm6wsf"; + }; + punknova-24649 = { + run = "19qc4ypax7jlr0hw7aim6p0afy9a2qz1ifasx9dh5rnqhjf0q5hl"; + doc = "1x432js1hj43nrxg2bvp4wrrmgpi6p44ckrfic1gk7ki8wzcx4s4"; + }; + purifyeps-29725 = { + run = "125dn66xsrnv4acvk2mbwfl26sy42jw7fngm3p8qmzya93sp0vwl"; + doc = "0lzw7ajxkx78v5dhlsddb0ahq6a9975f4mzmsgp23qczmz28878w"; + }; + puyotikz-57254 = { + run = "04s6878wblhz3m7xc7zgqv0ziwx76r22c4sa974ismfqjbdh6xdc"; + doc = "0wikdmv19kj62vc5bd0n2dl91cqg44lwlfs41nw808hnk96a02q3"; + }; + pwebmac-69027 = { + run = "1162s28w7mlmp724a72blvphq21vrzydh5fv5hr38a7dgfi9ydyf"; + doc = "1sbri1kw2hgdgw59ahadbysv481zz79lh67z3mvq6frx566vcb2m"; + }; + pxbase-66187 = { + run = "0nlnlzpbd2dd397lxxg97pgaagfyb00ygrd6dz0v3gkmpwllnkvf"; + doc = "1kjkqsbrsiwzz6szjm2irz6ijy9q5xnjimdhhv52xk0j46hyiphf"; + }; + pxchfon-68103 = { + run = "1n78m5685q0w9k2v0iyxra2cj57gh11wnsifkvb04z956r1xvxik"; + doc = "1jm9f934a360jw3v1yr9ca9a4qyrifqa05x5m1a19klf53rn3ghx"; + }; + pxcjkcat-63967 = { + run = "0pg6rh8yf6mnd047br0rwiyjyzb7g8qknwzx7v9r77rxgpvy4baq"; + doc = "0jfm9ln4k0iwvk1ddxma3yjvfrzkhxv63nn76d6xi8gqj1vm1kl8"; + }; + pxfonts-15878 = { + run = "0vkhx82ywv17rflmq119jxs3ib08rfw6lkjgr3mp9vf6vplgqzki"; + doc = "1afcy7c1n63zi5czbpnajrrgwfp9xdymkgwf5h9865adjbb3lm82"; + }; + pxgreeks-21838 = { + run = "1j93gwgk66k3fwkhraapis7ddj8a4bliqh783psdv1054j5fspqi"; + doc = "1md7q2q0b2lhffjm39cxzxf86rw8759zxwj5sbgavzdhyc70ssli"; + source = "04vdi4wf7lw15v05jqycm66j1iiy6g13qrc1ynrnq0df8b0zfs1g"; + }; + pxjahyper-66272 = { + run = "1hcnwp8m1rjpc987bg7nwam6lbc0wyv7anrw7avf8dfljklvnxbp"; + doc = "05jv160jmxhqwl9rl40yj0y2853r04pxnbhd40zn54jdnqz10aw6"; + }; + pxjodel-64072 = { + run = "0gywpypmv9c6bqyygyz336v7dn6bnx5ibz2p6f38paamk6bqbyf4"; + doc = "16nf7za81mq77irbdqkxw2iwxgi3jpy5vh1fijp67bq3lx0az7is"; + }; + pxpgfmark-30212 = { + run = "0mkcc99fwi8n63fghw3mz2alhgpakc3hqyd40s2fpwisvh15rbbr"; + doc = "16sapygswd6mr0pr04c86jzngw6gdf62bgv2xlrfzfpq7cnjafxb"; + }; + pxpic-67955 = { + run = "0zy1f7584bmmn00nwzl8w17hwrc4c5i798763p81sl784hm2vpw4"; + doc = "0yw22zb82scd1c4n0niyc69n7xhjgadabxgbh7jjkxrjbzp6j18y"; + source = "053yqnrc5xfj2gifnn94lxhawbnlfw3dhlzz3jnn4pvry7vnqhvc"; + }; + pxrubrica-66298 = { + run = "1w74syyn707qwyckizmyh78ycs6ic0mmhliz2wbamz35s1z9l2sd"; + doc = "0cbx00q2bwnrhjwfgwdj4q09ix208037774az77cg6i2qz9xmagb"; + source = "0x592j0vbp8pw0r1wd2mmplksyyl6wnwns8smf0b8s4y3k96n71l"; + }; + pxtatescale-63967 = { + run = "15swkjxfxznb101hvlqcxpplxngfaf0nbpkw7j2fgccyqjs5fhfn"; + doc = "1j6yrpyfhn75qkv03bnwj9i3s4lmsh47sw696y13cflvdmsgs8n6"; + }; + pxtxalfa-60847 = { + run = "0fanfh1gb1fmp7binmhks4l90s6925pki6gwyzlaa7vy7za1l3ck"; + doc = "0jc51zsbqbjnp7zqbbl1cpqjf7rwvsxvfzfzm9wsbkfzd16c9817"; + }; + pxufont-67573 = { + run = "0vvnhghcdlyqhl8244c76wd411cd9cjmjsrhic47rjs9sis1ilci"; + doc = "088a02dfk2n6lgyfri74p2lnbp7mp4vn96qqkby0qjfnj6956hb7"; + }; + pygmentex-64131 = { + run = "1kd9jqmbxhkd7gijghd8wi0q5sxqf5dpf22z96wwr29kvv7jxm64"; + doc = "1ppayblsdpmrd9sxfpf0kqhbsxfd1fgq69g48zj9jzbhncwx0lhp"; + }; + pyluatex-69372 = { + run = "171ahvh5ii2gimcx0a2g0dn7s87a58yff7g2dwbw5hi8vyqksfi5"; + doc = "14sxmfsk3lrzcv0k8rkrq7d5dirxmy58i3km6bkahigk5iryq38p"; + }; + pynotebook-69990 = { + run = "1k0sazzzab5a12lf7dl25f8a2fbqjyz56l0pcjwplki53f9x3isr"; + doc = "117lnmjqnw23j187sdyyxcb6422ilbkxrv3axq66apf1ip4jrp2a"; + }; + python-60162 = { + run = "0brs0hydf9vqwlvxipfrfxqjblazgb8ziy4brp2bi16bnsz59ykm"; + doc = "0x1nfbv7fmyhzhgy6xsndhd9nja8xbip436kg7ygscjxml6gibgh"; + }; + pythonhighlight-43191 = { + run = "1bf3jf05zyggcbz5c6hr06wd8dhf0q5m1i4i7p026s1b7dxxq1qk"; + doc = "0qw1rnyg5pawmp7hd3b0dyjzmbrlxa0hzg7bxnmvrz1akn1cas3q"; + }; + pythonimmediate-69487 = { + run = "0qml1nlmkqq4gj4cmhx2bpy3105wv56r5z4an1dvxkh6xpi8xbz9"; + doc = "184lkbmyfm3rw0zhl79pk62sdnaashihvbhkar1pbnjv5jsl7646"; + }; + pythontex-59514 = { + run = "0hgbhdrzxvkc8szvkq2vi8v4xxn9k05zpa95vrmdlgw76ms33wvi"; + doc = "0pxafbrr7mclvn2zdwirqbfa0b03cm4l4wbcgh1ag75skghmh745"; + source = "03a3qj72hzczf4dz282vqq6w263zk1zhgm69h1rk5ibdyasmv8xh"; + }; + q-and-a-69164 = { + run = "15gmr65sq78id1l8nljgppbv85q3pjswwfgylc2msa7pk7vyiwzp"; + doc = "0c8wbw0ia433sg8j9py7ivd1libjx43ys2fqi14m0m766sfrdigp"; + }; + qcircuit-48400 = { + run = "0vxsppwbmhh03mq9k3zb2hgl3628q4i51dz98j2s73z19693266a"; + doc = "0571vlvpvmpjhjbbrd1ybzckhfy7ymralr017d09kf9p5gk0y677"; + }; + qcm-63833 = { + run = "17pryjm0r6w559lgkf03aws720zsap95azfbixm7p8lr1gy5nwlq"; + doc = "0wx14xsj4sy6xpcs87bji6xfarfhlzqdzgyyx2p8439m6ay3cpx1"; + source = "1gsfa9bby33a5qgi4p2awr91gn8p4d2qylz32xmzhp0x6fpqhig3"; + }; + qobitree-15878 = { + run = "0irdc2w96ad7mkgm6jqwia7lk1x4557fm60l98mc6kpd3a9djzgc"; + doc = "001w9a4kxbrx11298gnvjamx8c6plag1gp5b7x9vq35s25kdy0i8"; + }; + qpxqtx-45797 = { + run = "123dfaqzpl8h5ia08swjmj4h05ncz3ishsh6rbcm5px35ccrgjld"; + doc = "0ng1h0yhclki35v1w08r2di3dvf9rp78r43dfa752zr8agrfd713"; + }; + qrbill-67724 = { + run = "19wl8p36crfgyzad9v20n3j8ad33r7yww9gn3z3yvvggdqpsda0k"; + doc = "14hfgxl7rl026cmbh2cxnj51fslm1zzfnc5pv33gqzd3nzmbs1mr"; + source = "0g3aii3fdjp3ps788b108jj7ggks4ndzhg071jqca0q5xhydnvph"; + }; + qrcode-36065 = { + run = "0vs5sg5hch0c2rxy27yiy1c543l2fnqinr8nvsyr288fja0pfrig"; + doc = "1rmwz89yxlgrypmki8xanqc3xxm10m9zc2shh5r0fzwmsfssri9r"; + source = "115wlgvpxx0vkb9d4gfwbqamk7sfmcfd11hxbfr8khd5hv8asvpi"; + }; + qsharp-49722 = { + run = "1lrnzvlalznyxmkwrn9nh3x2zz74bakiq09dg374js5yni36igf5"; + doc = "091kiiicfinn5cxpfhhb66j3hkmv80gsqd1b66xcz4ghxan43ywk"; + source = "13923qlhbx52x7h3v0iv6y8q0dz8g2ikvfz9m0lh9zwjcwv4mpxy"; + }; + qstest-15878 = { + run = "1xk4vqqics2iwzxck416za70cksx836qrsm4v8idyg9kscvjr1jp"; + doc = "19ddnrz4wjd51h8g0z40db53wh0zlr6m1nfczghc5b26vvcj14y0"; + source = "198xvadvk9fb36kxzv1wpis5qb38dqaxsqva6l7l23kz3sb6k849"; + }; + qsymbols-15878 = { + run = "11jlwr2pwrxck0xcw2szql0rdynjr2pk4jgzlqkpcardibfr385x"; + doc = "078qxbmv1zgg73a923sbfqnwmdwg1qkfxra5r8dzi8wlq1cv29ii"; + source = "01lmlclv9rlkga19mw4ikngdpkxhmhq77kylln8kjhcpa1cylk5c"; + }; + qtree-15878 = { + run = "10a9v90yspc1pq3ja9bzixdq6wxl6q4jxz5na7x9yw9g44z3xaf3"; + doc = "0ja3xpng871h96q220nrlq2iypk2spjs4qr5vpmri89b5nvngf6m"; + }; + qualitype-54512 = { + run = "1r59cbk6rmdy0zhljcfqxksf101rkzib8ll20ak0sshc3f1jj64y"; + doc = "1jxcqd48v11b74drv0lh2gv65aqsjv5zziph2s9g5ldd1733fgl5"; + }; + quantikz-67206 = { + run = "0g7zjkgfw814wn1ddsw2yxvcv5y8ca66cz13hmfa61p4kd8y0x2q"; + doc = "1rla8zwpmvf5wwd6bp74dimm49aa6m8xw6ix0ahcnvx03vs1yibi"; + }; + quantumarticle-65242 = { + run = "01w948cabqlnwyv0n1wzs97hhfknspx2596w79ipjy1aka4w6304"; + doc = "1k2xwacvm6sks0qj1psskcfm002haa734fqysr4cggckwhf6n7wk"; + }; + quattrocento-64372 = { + run = "1jn29sl616p97vf81krg8g94zqsgvw40p1mh664i3sfkglxlag2v"; + doc = "1v63bbn4yd799cy55w7j6isl53ngzngq9jlzi63nd5bmk4lqcq3m"; + }; + quickreaction-66867 = { + run = "1jcqsgvsa886hw3ldf2xx915jll8glfdd7vmc04plgvvvfavghjj"; + doc = "1xgwv5d2wpp5jan4c347kxmjqfa9qk9396vpz1djsa27h0naj4f9"; + }; + quicktype-42183 = { + run = "16qy6rxxkdkkli1knibhbm28jg80l0qjsn9lsb36b7z5xwxj9f21"; + doc = "0ic0lkhj3rdpwfsrysm5qidw0gby11kmfnzbh5k2fpkfarwfhxxb"; + }; + quiver-67779 = { + run = "1nakig6vyj6fmzpxr7xv79wx75f2dq42k5q80fg90krxm65bmbn0"; + doc = "1jbxdisyxla5s8qkn19ayj0iyqdym7n6xlspr0vjmbz0nmh0nxd7"; + }; + quiz2socrative-52276 = { + run = "1s6g0svlkg503r5mqn3iw90qyw5lwpv7dj92yck7ymziv9p59qkz"; + doc = "0v9x0jxrgiscblh8w9wip07di78glgzd0rn2fp1hpzabi8x94dvc"; + }; + quizztex-68823 = { + run = "1yrari2lhzd6rmkqzhng49vmcbglnb8zn1mw5f4a0np4mw5dhmdw"; + doc = "1qii1rajgh8fba2ck8l1p5dzviiji2i4nppivmgllrvs78cnfk60"; + }; + quotchap-56926 = { + run = "1284ldj6pfqq6mz2a62pi81k1jca8xkc6wa1wbrv3kqwfdcc8cwa"; + doc = "1bnhvp91adi4bhzwddzl16qw6d74in94jq2h16lk06aakcwr72hd"; + source = "1g2cfb5j1qjqads2m9ad9a8n0j7ihrvd55q9b56jd141a23layb6"; + }; + quoting-32818 = { + run = "1sghajwgfdc1p0gifii8wz1rvzsiy38f4jpfmh5pys9w6nr9a8bj"; + doc = "0aknicilv5rn3claf77l5br5mr21yg1dhdc1j1yxigz9k8pljzm6"; + source = "1h01p11ahr4ykqnhgl0kwc5i68mw9wznswrxy9ab5rpma1agjkzp"; + }; + quotmark-15878 = { + run = "1v48482b57w6f1cx0b5av9cq26zhgcqkwi8yllnl9p8pnrjngc9x"; + doc = "1jmdv5i67hsbmybjr8j2sv7f7z8bm3a30yy0ycyp6b5c3ycqx04n"; + source = "02bg50nj945gycxf8kb7s9c87xwszprq3zynrxxpzixrxqd06pf3"; + }; + quran-67791 = { + run = "0gp028w9q30wx5vfjvj53b6brrac6wdkybai4fij2kk2vz0ck9lh"; + doc = "12wphp5nz23svjj06s8xdrfghfqqx85hmyqd4rg7kxyky009i6kk"; + }; + quran-bn-68345 = { + run = "0rfg0vi7297gdilra0lg6z40hxp22y3rk3fxw82j0hh5dj0f5gl7"; + doc = "0lk1xjf1n42v5mkg2sr3mykvgrhi9m53gxndifc7pmm8anivfklh"; + }; + quran-de-54191 = { + run = "1a9dqgrdh6vw6zpygslfq9d9z8qws9n614b5adr7pkjcdwm8zsaf"; + doc = "0fq3yd3grj31wyjvac4qkvs38hjjnlsygiihrxw22ddhsa4cl2jv"; + }; + quran-en-68790 = { + run = "193b22vcvbrhy12rjzxzgjhlfiyzp0fq97g2sbna45s7358r4n2b"; + doc = "0jgqpcl84dgf0bc5zlzsbif5nqw5kyhi4ngdd4kcj6z5lpafj6k0"; + }; + quran-id-68747 = { + run = "1pc6hnvi1xdfislik6rq2f121q9r8mjy48prmfj51zv061f367bs"; + doc = "1zsf40xn4xfy8wiyqznsa2y7b2rzffak995yrkllkbcny5q20ilw"; + }; + quran-ur-68314 = { + run = "1l2hsql1q8yhicqxdz3jnhhc9cjlwq4951xsyfz5ayzrcckw83n1"; + doc = "05xcidnphnidr1pa4rhiimqlqnfjqkwx4hsl6ppmpiywws904g3j"; + }; + qyxf-book-56319 = { + run = "08v4n8lc3qcxjzfvwqypnky9zhia7ylwq5f31arxgdf0wq4gyhia"; + doc = "0i6g7v0xdy26rdy1kap0b4pnsz8xjm1h90dwby8y0bqlxjhd509w"; + }; + r_und_s-15878 = { + run = "04icw2n2vz98bk48kbqybb6x3wgzz8fr045133vinybx49nk8xxa"; + doc = "16ksw9wid0sr9gjhjkxk3696fcy19gky3cp9ia6rsfh20f9f2yw2"; + }; + ragged2e-67441 = { + run = "0wvvlhbmj1j4gp66l9p1hq526r3izywyf8ddggj316q2pg4db53d"; + doc = "048f04kd8rzi3cnqwa8gw4cvx2q5k5qpnph2idvkvjy3lw3jr9nj"; + source = "0zj8nphii46xwc4gp6h6l65zz9lx3s0741x9gkz9ghq2x8m7qphz"; + }; + raleway-42629 = { + run = "1d8zv0x1j2c996ql8g7zc38s7fpc61ibk5zdixhj7kbfrz5cbc1b"; + doc = "1i8hja5817kzy894j25hy5cjnw31y4kcahcymx5hrbi0aplhizx0"; + }; + ran_toks-59515 = { + run = "1k31qcvbdfx5xknykv9zlsijgzxcw53amb03avwbqm3kly5d30r4"; + doc = "1jri3cb862m8984awdshlqc9wwcq0hbjw6cf2yqgb9wn186gjfyd"; + source = "04ix834glql0yprygm5s2354q62cwsz39lfk871n8s9mxjd2f1c2"; + }; + randbild-15878 = { + run = "07ix44c2zm185byn868bmm6fcbwq9q37h31brfa4839hpklg41pp"; + doc = "1cpyzrmswxawxk6x2vfjy7y8qj3mjrxgmr9lgjvz11f5fvvdb0i0"; + source = "0yzz5awhhw52zg877nl76410a4q6gy7mrri0hccicj529kk0d1x5"; + }; + randexam-69965 = { + run = "179wji9ss598rx7hsagj76jsm57v9cqladxjc4r690mzvadv1irm"; + doc = "023y72ya8b6vcnkizsnx83d9d3z5y7lgmkbbn6saffj3ln671xdx"; + }; + random-54723 = { + run = "1y4dn1i3kmd99b5br7a2j6ppf0ikzp744si5p6m5rmvg4vh1jh69"; + doc = "1gfcswp2krrfswyjbyhck4pb0lq03jh2mfwzm2iwvd3zlndvccbz"; + }; + randomlist-45281 = { + run = "1kwbg73d8hk4wh69fajl1zqyvkfyfxzyv5xykknpa5s67pxkh9c5"; + doc = "0r8i0ywq21c1h317b3yx5ixr4b1fllgwams4yy5z13alda4wxqdx"; + source = "1s86m5hcncfqkwlr8mwdyh3fsnyzisiw5dlg52r499wr77r5z56j"; + }; + randomwalk-49513 = { + run = "10ivivbyrxm50svqdhv9lm623pvmnifpwpnbhpmx2nvf4crxxbcm"; + doc = "1lvff00h8c2fxyf7if1d2xqkk87lb6396w6mb4yfxwsk0j8j2jhf"; + source = "169x0wy0k91kmfbisqh4ciz8n4knhkxmz2d227gzwbf80sr2a80y"; + }; + randtext-15878 = { + run = "11a4j40zaixjklf4rkzb17cxnfmm6lp9kph3kkp2kalz41qamc0k"; + doc = "1g8nwiz06w4a1sdvdfch5yavar11mj5xpk631n5ym2d5g7hp0dm9"; + }; + rank-2-roots-68161 = { + run = "132sfajpxnl82pz9g76h4xv7fpirqgxrivz2g3mccgvb5ykiv0cd"; + doc = "0y1rva3xz08xkw8s46xxhn6kl58dh1v9i190ffqjd1g2xxix10f2"; + }; + rbt-mathnotes-61193 = { + run = "0mrk5p7h2y1kaaj45fcr56smzi7ny6808k53s5442gf538id9jmb"; + doc = "1ysaqvli3gy777a5g1d7q5brc245qqfr1fhzj0a4dwrj1gcnw4x1"; + }; + rccol-15878 = { + run = "04nw4h7z4k4rnvqh5s602l8h05n85iri3p3cpic4ss71ccn8c2dw"; + doc = "0q3qb0sbhnbqwgc0i9bw27s317rbz05k6pmvhad3m8mvlsbgh285"; + source = "0ss2436k5fbd25cynhw13lq4ns4payl8fi8lc96vi0kvn6jmkwrq"; + }; + rcs-15878 = { + run = "1kri1q5b36d00k1pmpkpa0dmbv7qqprycxzmlmqvp7fx82s5awwk"; + doc = "1x6m7v28p3lslral4wk595clg3kjf2nwk2mi1sva2fl56mny7mzx"; + source = "176fvqs3r8wysrqlqwjdnm0xqgqdyjq7wfwnfb2iv3c3rmpr7ab0"; + }; + rcs-multi-64967 = { + run = "1n60pzx6qrbabksj2aqqf1j4i1b298ldsyjg8z6pmhladq2r3ia2"; + doc = "06lqyy8igbiyl86b8fsl968sv94xcnl1amppyf8hmr52dhdqcysc"; + source = "1pdds0kh3p3rkdn2nrpyfrw224q3rfnahypif8n0aijkcxdlw3w0"; + }; + rcsinfo-15878 = { + run = "04j1sq20960w5yyf37pnzvwaknl8f18mx6rmj2s2vch8bcncdzjh"; + doc = "02zyrgcd0m77xp5p95v63b58mv0h0miqlziagwv1rz3ywvmgwhk7"; + source = "1fgmppgp0n4arrilxmrjn7h7pf5jq7gm6drdz6njq8w1l1qxlxg7"; + }; + readablecv-67986 = { + run = "0z8shn1l3hghkxrmaiyxsv25n9ar59j0nscj1331yf9dwh9cd31d"; + doc = "02zjf16y49lyi9wy3w7k2q1sl3j37k3575nm1hi77bmj4i57rp4z"; + }; + readarray-60540 = { + run = "1hx39j04h7y14qrp75q9f5x3nnii62pvi43ww48nk02glxs9y5kq"; + doc = "1v0f93nhylqs5rz2bxrkfpzlvwajsz6znlyvdnc0gxcbwg330j1q"; + }; + realboxes-64967 = { + run = "0xyp6w8kbycaqmrkkrl8701c7shvd9i16vvgs28cvr61nkv3mv4s"; + doc = "0xd95j7wgv3yzrzq9lvdxpzvvvki2an8kg0zm29yz01m397vmys1"; + source = "0r0phiq8v15ra9a429j63kyjv3w2p96myr8czijfcb9g4920jvmm"; + }; + realhats-66924 = { + run = "0v8pc4b8ls0xyfbji9m7dw728dni8bsggq2pjf9bi2vzmq8825m6"; + doc = "085nfwsfvmbwv7zlfg849ywyqswi011278gmws01sv3q5y6ypfxq"; + source = "0rp15pryn8zyq668pxapwg0imbn76m9fclwh6qd2jj48bqrlsq06"; + }; + realscripts-56594 = { + run = "0ph678nf5k03xl63z66gkmg5f8agxy201y6bvabhdnb1zhvfrfmm"; + doc = "1kmlaym3vxb9mx0jp7wvmsk13i30wyyazhny5zzk14bwx8rk3kf4"; + source = "1qzqr2q2bkq4pchin1xivg8gwx5qkgip4kq74rswfz5a5iimyh0n"; + }; + realtranspose-56623 = { + run = "1m3gmj9bay3a1b7fidjs6rs2077m7csaszz11g6y5i2sjpjyx2aa"; + doc = "08w4ad33pycaaiwhrnmx3sfx2c6kv417ijhqgxdsja1mrhcp0nxw"; + source = "0s4lbg2jg5fa4x8f9cnp5zcb4yi92g4981dwdksqsilcd0in4ksh"; + }; + rec-thy-63982 = { + run = "0pr0k26k66dqaq4rppgqx27f6km6a7r4zk6cj4yjl5l2ac19vvim"; + doc = "0rljkcq2vgppc1lhc8mms0qxbqiq7yxhp19xbshscga86hxd0l5q"; + }; + recipe-54080 = { + run = "1pnyia45nx32r1ng711k2l3g2h4r6n67nfxvg193z4mz1i20hq85"; + doc = "0hhm5l89naj8vzjnvf2ambpawq7scp9bgpfjzszgb6069c486bvp"; + }; + recipebook-37026 = { + run = "0ianmda3ji60acckagmlsmrsvi4sxp3prznvzqkkkvv88w1xbm8n"; + doc = "0fmc59fddgfs4v6lsba04g334xlkhsl1liph7v3yx4qj6l9dxlkp"; + }; + recipecard-15878 = { + run = "195lg2kvww7amwls014s21l2pnyp24c8cfyb3glrxphcvcdhhr6q"; + doc = "1h13vn2zw880gvzi1pc8j41wa21ygja43hrjmyav4zxziiisrnwq"; + source = "0fkwvjxjhaywk61j750a05x0s5fgb96q5n3afcq056yf01jbvsxi"; + }; + recorder-fingering-68595 = { + run = "02wxkvcwh8j3iv6dm9ms3nn09kb8lz97xx0jq7p0w2i95is472bc"; + doc = "0nh52w97xi8p2wgqrpz4svipi8fcam815a340zlsphxsx31c8lg5"; + }; + rectopma-19980 = { + run = "1ivjyfhl4g3j1j0xnq31rcnl66z3xwaixyzs8wwmbf1y18lgzyb9"; + doc = "0gfvsjszqrn2r1cm7blk0xnrnv94l1a7ialwhvf733vm1m699lja"; + }; + recycle-15878 = { + run = "0pj6xvdd30b4y1fa01vmhczinw48d6psfd8iy0rpzpaq89rbjrvq"; + doc = "0sylgv7viy4qgl0krhsf8q1gkxiz91wpn0l5jyq5y1zg92x8jk1b"; + }; + refcheck-29128 = { + run = "0v82jjddvis01n2ngw7yngv4kh2impw77s1yq360sxqjym2m34ng"; + doc = "0ckmd4wnjl0zbyqr5q18whb927sjbz1xgdg1hg5w4ih0g36sra63"; + }; + refcount-53164 = { + run = "1r4lv6yhybqb8wkqyaysimb79kbdgvv393kn7dkjqr46b5w4fzcf"; + doc = "10vn481rkdwv63z4n67gch55w8x44v125kf3v7299j92fm8fdznk"; + source = "1rf8yk9xc1qhiiq30jhvjqmg5773g5d33fpcpih4i9c1l7kad3sy"; + }; + refenums-44131 = { + run = "1dlfd5dx3mqfhn73y04lafcbiprqicv9kfz2ylnd4fhhm62svb7a"; + doc = "03d3p9d1f0pr6gk918qiq7p5p6k0cf1zh209akl6a35042a6nms9"; + }; + reflectgraphics-40612 = { + run = "11kcq0dijnwwxf6d3s0fhk7nfhvn3v36lly2wf21vgsl387dkkaf"; + doc = "0iwcljjlk1741kw6cayrbjhqalv74apppw612gh3nhh242nn9bwi"; + source = "0hy76c57w4lw0v77qaf064j7xz327fprdijljd7myy02idlszbmv"; + }; + refman-15878 = { + run = "1adim1622bngp214hsdzjgjkjcv7b24a6aaqzihlms76vfq0hklj"; + doc = "1jpx3yka29lpssvhjl12h1bxj0k996x7a7rf1742wph6w1n5ymmy"; + source = "134hq9c9kdr7rgzmp5jkjccqgfw10zwv33zmj25b91xljn5afc6w"; + }; + refstyle-69680 = { + run = "1jfnb5vcsdj5wxbl8cpiv0bym8n62pqhqz96vy6hd7cnib85k3c5"; + doc = "077h83hngpdv7bk5cvbw9w351dfkiwbbinalp7xgw2x0p240d9lh"; + source = "0c4ip2pri9y5hziwr3p7xlrv6dnj6g2h7cjnlff77zq1bvyzj70y"; + }; + regcount-19979 = { + run = "19n0gwvh87pb2fanw52rc5j540v9yw10h2r8svczim9sdginy56r"; + doc = "0qnxcyh2vhkylaav056lc2vg24y5h11svzy6hrk6rr3sza9k6z2k"; + source = "1xfk7qs4x302lfi93a1n8nzpsmzmypyb34d8hd7h8y6nm7q2g4y3"; + }; + regexpatch-58668 = { + run = "0i8dfsr32f4w3lfh88z45sdhvwzqgh52xqfqgj53fvynblpz9msw"; + doc = "0qh2g9sdj971a75dv3jfxi3ga3mf6fmb4azphkdgxmm690dblx35"; + source = "1iq45q093v1n421r37w42815yxjb7iby426a48mvgzyc1c82rd37"; + }; + register-54485 = { + run = "0i084dij80m292c9f57hb0y3gs870520l8awl3wb21ss76vs5501"; + doc = "0zi950xii9qbscbv5030aw02arc77c8inwxmzkslcmapdqxq5wr4"; + source = "1jz02c2c5xpinxninb1a2bkgan21gijs48rks4xv17y7k6z9h00v"; + }; + regstats-66795 = { + run = "022l63bc3g31479byh1350fl4wpfw9pq9jbqy3xzhrrl35psvqpm"; + doc = "1l54lb8g97gib5al38k98gnahrpl4sc0kr6wrabagq70cbbpnc50"; + source = "1px681bkciakl41cyblk72v5kh83hyqf7bn3s0hjax9alszk29pa"; + }; + regulatory-69611 = { + run = "0daspgycq6ghpv0kr75ww3axijfy21694pn1alic75fn61nhpxcw"; + doc = "1z6hh4rgkzh01yprsc2a2xshbayy5qfdh7198jwwkbn6kvhcxmf5"; + }; + reledmac-70207 = { + run = "0xxzyrsrk3bq9pjx4iv0bh1k3li0rbwbdz1g3gdyir15kz9dwz3d"; + doc = "10lzmpibqa3l8wh4hhl306ry6wi39a6y0hzzj9xanr9iaz2c2gbr"; + source = "0m29yfjvi4x7klhr4p9rx8f4i8h250gzrwb3iy6ykrx7qhffwgrg"; + }; + relenc-22050 = { + run = "13ym795q37rmxhmr0d8834y272si11f0qh7lmhffrpsf4d3bhf74"; + doc = "1hb2sdm9lgzfkj2kkbrlb3alnfjq4rw3islgdzkqbcgqp9s06f67"; + source = "1gk7nbczw9b897idmsgqx6i8xdmi7wizhb3dyc0hir7qmivaqv6s"; + }; + relsize-30707 = { + run = "06sy6v0jscrj2qs7axm770xv8fkiivvj5lwb8mkf58gd5jwc5bgb"; + doc = "1sgv3x3dky3i7xivh6pzqh3lrqjhb62g0ji0hdgmy9blfrdf3api"; + }; + reotex-34924 = { + run = "113nfw6md0v4522n54q63smd2g2iwm89qsqld237f32r3rdkbcl0"; + doc = "0lapzgfp019a7qihfhf1cp2szwq98j8kmcy80c3gf1fa1x0c3x1q"; + }; + repeatindex-24305 = { + run = "1z4z6bpfjmgn8mkpcl1rsd9m1jxdx6lx2kz83r43d1ks5zjc6wn7"; + doc = "1vcq9vbfw4dwif9q5ki0bq378yd4sg5g2yxr24bjav97shd9iaxk"; + }; + repere-66998 = { + run = "0kjpf1ywcphgmkxsr70mzqlx3mid4af7699hz3fqgs307iswj0di"; + doc = "1fhx74lsy7wsh84p2g9chdqy94vh6sq4wi1rny9pr9cmnfxb09m8"; + }; + repltext-56433 = { + run = "19h9qfzz9idywv1bi4qpl8yqv73lwj6s6aqxqhb8jlh3b2scp4y7"; + doc = "0nhr1lpbb5nvi7mfzrjxfq7ii2kib8klzcsqg99b4pj3hcwhv93v"; + source = "1phbwgyvdm6a616wzvlc24jm40k4hbyjsnim5g5jr15phlsa6r2f"; + }; + rerunfilecheck-63869 = { + run = "0i06ypv9hgdgmsv2idx8bfpi9xfrl1m17ly6cg8a1x0v6ns50fwr"; + doc = "16ryk4k490pxdli58j36bgrbmfi4gfc5jm8y0pnv9fcj07da7wpy"; + source = "17m0dig8vddgga28j5raavq8aysy3kdgzapyrciajj0j90q14sss"; + }; + rescansync-63856 = { + run = "1qdcw7zi965khz3n3xrwg9x84hi58iv8sg9b3dwn36cjdrxvvx83"; + doc = "0szxkc0bpj0in2mlms1m381hhrajvwhp4yk17daihnyyxx6m78i9"; + }; + resmes-65375 = { + run = "1g0gqmx21s3y5h8ll5ymgd2k78mdhw3nrzc3xnpihdvh4gjqg9zv"; + doc = "1qpmlhw6rxc8jmp44349x428f7mrs6dr07l5q20v2qj3xnnicjzx"; + source = "0s5w0cf3a3106v029yndv5hmx5nrdk27dwbw18wb5q8m49gn6pz2"; + }; + resolsysteme-66192 = { + run = "179casx77warx76rzmfa8h2rvb8z77g7dp3scs6kbyc3s8j9x7gj"; + doc = "0q4adkm495rn91aq96baxf365ygaq286cds25wr6hjfg9yj5bhgb"; + }; + resphilosophica-50935 = { + run = "00qqwp5n5a8hpz4zpcmh3avbm0wh2csdwdf450hmqnhpv2hn2z18"; + doc = "1s5r4s8ja16vsz3ssqk0klfm1vfxrxbcj45mlszq5r3k5gsa1y5b"; + source = "0nkxh1yc6nnjlh5bmf9w5k6hzg62f4i7x7nbf2019vlwvqn7r4yp"; + }; + responsive-69147 = { + run = "1ymdbw5gq79i5gd75dcnc484cjgrp7ckh8163a9n8rlghpn0pqqq"; + doc = "1kzw8r28invf2p4xcqfws50w5i38rr7wwzf7jx2x147n8b91zr7v"; + }; + rest-api-57068 = { + run = "04y8xai39hlhj6y78cxq2fqy7fis7mbpwzyk4jmgqd3365738615"; + doc = "1w33inmwr66p81g66zxqiqccks965060034sx8rmjnjfgwqqgcgn"; + source = "06c06pbqa8m58r0lcr2xc6zahf6gjdc1r2zfgs3q1b6czy6rns34"; + }; + resumecls-54815 = { + run = "19cw19c4a3zn5gvsngcxj6xvh2qq5n5am0sdmg9zajy9lqqp5nnf"; + doc = "17z14r8yj33mjjkydzaad1bm5nhvrv5154n5n6snjszd13vgdyh5"; + source = "1mm53893g9nqp3wdks6qa22k4pk71v09rg98nm1i1bz5ppn6kj18"; + }; + resumemac-15878 = { + run = "0nixlk46dpyay8zsxrfkcng23rdyx48mnq8s84xs5whlrg369s3d"; + doc = "1yln2mz6awzafpmrlzi3s12zj9m7qfj4laqgjpy4783rxdxy8w57"; + }; + returntogrid-48485 = { + run = "0cfik8imjgrhgilc7005cgy31h1azjk15jrcvd4vpf3g5ml1hpsg"; + doc = "1plnz793nhiq9y89x7i51bgp9d18kbi0bpwslg982hf65yklmiwr"; + }; + reverxii-63753 = { + run = "140f6n41kdkbg6fivz7rjlc86fvcxv2nizzfb511s21waj3lljdd"; + doc = "0n67pqjal4nv02viyshdznqwd5xzc3s8v3w1zxykrphccic73nlh"; + source = "1asb5s8xvns7l54cdp6gshcirdj0wcwhkl791jxb4c93qmb3pyx1"; + }; + revquantum-43505 = { + run = "00mcqs4zd33larynscqza6p18a8payrgarwbgdsnnvaqf3c2rjnf"; + doc = "1nbs15bl80yl7hrav0awm43q4brdfqm83bpyf2zg00yz5pjm1497"; + source = "0dqxvcd5yinnsal4wydb5ybsldsax18zp016p2yzk212rk61rikd"; + }; + revtex-67271 = { + run = "1l5kvnpz3ravhdlzshhgjw19mwm6jggpsplgmdwzbn6pmwnk0wzw"; + doc = "03pyr8hd55dl40wf50f7vaxkwbqcsmajl9hqaxwq878pgbxb1zmr"; + source = "19ij6z0zal8321q616pk62mcyj12cwb12lw6cgpbqf70g61jgfwl"; + }; + revtex4-56589 = { + run = "1v1km5grdg72mqf7sha1laprwhhwplrklax9mabhg13q4c9k8dlk"; + doc = "1709bsjlka0d8x405fyac8vpmklf92qhw0qgmzvbhynhq4sc85b7"; + source = "031vqkbg38iwi92yhvd5xdmmkbjhrr9lm7ncmlwgizf1y0ib7wpa"; + }; + revtex4-1-56590 = { + run = "13azycwjj9ihirfkcgmjrpvjha4wngmgkm6irh3388zwjs2sh7sj"; + doc = "057yf32dsx1j3b89wl9jqrafvib8p0x6l3w3zk1c98p9vp8c0lm8"; + source = "03dy16s50bkgj2l2zkm3z6mzf9qwhrax7cxll2p0rxxwfgvpgh8a"; + }; + rgltxdoc-53858 = { + run = "10wpra4vdjvjsq8n6iz33mnl69b13jbslp6ccf5b61va4v66z78l"; + doc = "0xsz70p88ij6djhlf7n1718fxqcngfxnyl60h3ia0xi1gjzrbk1c"; + source = "1vzldzdqyiqfaims3a8w378k4bfwxyznmw6028xvwrk7abq1nr4f"; + }; + ribbonproofs-31137 = { + run = "1f7j2v5233fvjzlrlfliy18gy890mlr2n2fbqfhh88f2w3z4nw2b"; + doc = "0gqbakw5jdamy0q4rx8y19xkdnb7v5arpkjmmsxhvv12pk2kb3d3"; + }; + rit-fonts-67659 = { + run = "0gsghvmn1va4idw2p62r0a4vr5pdy67kk75f73xpkhsg4i716w49"; + doc = "047lhzb7h0sq1bwrh0a04ank09apii7rh9cdrx77ngrnrk2fz1a6"; + }; + rjlparshap-15878 = { + run = "1af2a5fmzx1mmk0vprx8w18rqgab0dcm1c7sfvnh7v59lgvkh6rv"; + doc = "1is0ny6a5ndhgl441vrv7ik4i0br90nlcddiabgmshwyn87kiciz"; + source = "19kvfg03r3nr99a9ylk3yr6nnq8r7cvfp3rsi2vi10m19jz60ssl"; + }; + rlepsf-19082 = { + run = "0ycf0md4d2bz8003s0q4xi6qdjspi8z1dp5040cm3qm25p7jsrf4"; + doc = "1asi443gvl34m648ap9j5an6fx5x94s3v4dp8bqvygn615jhd0na"; + }; + rmathbr-57173 = { + run = "1jlafpdjryj0sic2zpn5f90754ydnfbb74x8b3q19klm3n20bsr2"; + doc = "1nfcd9ypyscqv3ghlaljrnj4rm2md5h5k6yl173n15zrr56sxkfd"; + source = "08mzgxkwk6frzgd2hq8fz30dliwrkrk23xmqy9p0qjmq9vi7vbf9"; + }; + rmpage-54080 = { + run = "0y292gcfkj0nk8090iqnlrx9mhvh545im2xms080kz0l1847frpc"; + doc = "0rq7xjizq8nwg9zk60gjd9vcjvxyc0xaldc4304nyihfjxfyd00b"; + }; + robotarm-63116 = { + run = "10xlswn7bkad45fyv9j70pd77319mynldwk530y23lc2874s3yn2"; + doc = "00qwsv5vxidjzkm31v21sbzd6rp1pvz2vrs66gmlm1xbfsv4kd0p"; + source = "18zffnyyhc3mp8xpw7bc52q29z3skqfxg6h6x4b18mi9jpyd2x6q"; + }; + roboto-64350 = { + run = "05ynyzlrnhn7q95ld1midxdccc7kv209p4x53bi2n8rsjmp9sp39"; + doc = "13aqrvxs9vhy8bpm42fx1i47m0q80pc4zm5gh2bllrpgpqn9hbry"; + }; + robust-externalize-70605 = { + run = "0qyx3acc98kwwff531xf0d763zc41x1r716cnf9j3h8mcbm0wvmb"; + doc = "1qgxnwfjfm18ss4lf3lhsvg1yql6mgvcjlzmdyq7nr8cgzp3mkxn"; + }; + robustcommand-15878 = { + run = "1vxsxdg6122psbplm22l7f193fv7rd3dadcg6ys4ngzy957acvig"; + doc = "13d5rsj95yx81bfbansh964dig4hjp5raxagzws58f24l8imvfzn"; + source = "1zgnyglhz8i6hgzxlj19kdw31z9kx44zj2vziwkhcpr9clxl8as8"; + }; + robustindex-49877 = { + run = "1fl9vr5mynjg8w74sk2jh8vgj5yjpmyhyr107iblmcicgwv1sd9y"; + doc = "0xf592xvmh6xmw08zwwcsn9xyadd9637vicnz95fbfpp03p9qjnq"; + }; + roex-45818 = { + run = "06mry55hqrakkc7yb7b174cx45n0frk3isxw96p4v77n9pyvlffk"; + source = "0fwcb1fgz4kxbgcqm34s5glswj43wzg5j56ak5an39lsw0wirs94"; + }; + rojud-56895 = { + run = "1cmpg4w2pqwvr624kc4rv7kvnf45c2ffqrryh0i7kbqgc22xly08"; + doc = "12y4cph62b8rag4dxajpzy7y29kvnb3n0z99s2vcq1hfscyijn12"; + }; + romanbar-25005 = { + run = "0p4a1g1s22s7jq4ahvpqspx5gkd6nhwifbf1shjp53f38myy0bm5"; + doc = "157glkgzh4c5zv15akrlvfl2m03i99hfrm952x919137jkvjbpkd"; + source = "0w70p08k9k1bwf9ls4wgnclp4iqj4hzn132ny4s11lzcaj4v8p5l"; + }; + romanbarpagenumber-36236 = { + run = "0m2772qfl5862l6m81rrx4xcbj1s7vhk9x0ywsqnr8qxl1kmv3h3"; + doc = "0mj7kh8jvhscc4clf2199594994xdx557q0nnsk95srwmncq8f50"; + source = "0hq151qq6wb0q1xhbq6jqzxfh3zss9iyya5wxv883a8pd79rancj"; + }; + romande-19537 = { + run = "1bmqvxmlv2065ifn6bdy8i3mj1g6pkg44dhjrfr4sj5g8dihhqq0"; + doc = "0fgbq36nzkvfw56rvqajvz8krfd84msx8iykkjizn1m5zkqb4iv5"; + source = "1v8360kqvxidzkq8sgcg8k2cqhl59q7bmrk3gvf9vg0shrbvdr39"; + }; + romanneg-20087 = { + run = "0y9nlxbjyiwivw9jkc0vz0lj3b0nvj9dcd4sj0gxgxa1dg853rlp"; + doc = "0bi3b9991x1pvh8s8yrw5031jkvvwkrwah78qfd5rlywh2ylnrr4"; + }; + romannum-15878 = { + run = "15zjf8wbjif83vnib3y6vqxc138aplb93nfkh95wl2rmahaigmw5"; + doc = "0a8zsbh28jl761ir6is1l05n9jyvzr31y86qwaa714yxwpzak0s4"; + source = "1gnvnj1l88l66mrhvd50cx44wws4a45708jmrncb5mnf0i6v7ci5"; + }; + rorlink-67461 = { + run = "16w0lixzj403qgj8yjwn7v5dg8114h91kbyad27y26z7c6q31dq0"; + doc = "13z72aidbrlgyplr8zhjwhsyk4q1hja60jcw8d2l6275j03ykls6"; + source = "18r6gjh78qfjqp1bczcrsdpzddhyfyj152z2r2i5pjcmdjp1806r"; + }; + rosario-51688 = { + run = "1jqgz4cxiq3md1dldlil6pslxxrp7brr9hl28qcf6akymnfxx37f"; + doc = "050yna9vb9cz026cyi44f1qc596svxvf6fgyxlby2isl1jqy89zx"; + source = "1bzcpxygwsmcg91nxx8lxc9skm5cr8hbz47qmydwznkkzldkdbh6"; + }; + rotfloat-18292 = { + run = "01ycgag2ip0kxdsaymfcndmbhfcc95ppkmwhm3imryibm9112bv3"; + doc = "17x7jdnrnm333cq706cdkgzcyscq1k162l0rg3qgvknig6991v64"; + source = "0ymb6xbsqqj91b9vkfzdab1ip0xqqj72zm1kd812gjgkpgxc3jfv"; + }; + rotpages-18740 = { + run = "1pqfkyqs8ymfqsvq35cpv438g8a3az6sajh2bszxncl7m3rqa10d"; + doc = "069jlj27xa7vnl83bx5m4k79lky0ayvcl13gqxlk8an5kdwmdr3j"; + }; + rouequestions-67670 = { + run = "15265sdg56vrc9i7jl55rqwmhjzg27x46qinmzr51jws1wls9l5v"; + doc = "0gj9w2yv7nvjjr50jwaagp6ccqr537h268sakms9fvd3hx8awmd2"; + }; + roundbox-29675 = { + run = "0607rknc69dnzwajmgaq1n8ixv884bqp5n9m1g6n2d9frmmh057i"; + doc = "1vyna8wndg79vman54sv24hbdlv2jnrdkiwyxgzcwc2zv29asxs9"; + }; + roundrect-39796 = { + run = "1xjfigxkgcszkcja58jd2w1rhhnccsl665p0k20lssb97wmdzjxg"; + doc = "0sg1ck97k8pbg2fjf99mhpvd251plphr5pk1dywmjniy9vmhv1ih"; + source = "02kk3h77drvkqanc04bjlfzg0scprcs78z3m2zf8gs6q8w95k7pv"; + }; + rrgtrees-27322 = { + run = "0jihs23929pzbgpgnb2v9i16fcil9kxkggdv1dvg6xq9f2fh21md"; + doc = "1skw79hvvh0xkjff4bfl0nqdd8znwhhwpdx33v8ns43xxamzmnwy"; + source = "1q7y5mbvnrykrp87kljcxw7zdglh08cqz92iahdsaac4xffnz6bc"; + }; + rsc-41923 = { + run = "1ljdc1qyy9ziqsq2z6p13jlspjpalbkk9i5xmqrjwhbqz88fa1d9"; + doc = "0ckvfgw88jhfr91ii6zahrziigwsxfaz4f9rmc7ca2a5vk5yqc90"; + source = "01v5zc947vqa8xpsam5pyg8vxm4yygphyv5hji0r5dmplak0q5gx"; + }; + rsfs-15878 = { + run = "0q1iqlkq6swy905jh73y42ya9zb55xvg9w991x7lsmdxc0bzdf8z"; + doc = "069cpd747d6bk7jmmn1im7jvfb00bd597l34p87vdjcwbk3bzfvh"; + }; + rsfso-60849 = { + run = "1h1hzsf74jll793qs51pq03b2l9szbqagn2p03bcg0f3lgx0cxx2"; + doc = "11vjx0l2dx6cflvypgv4vnaavnmkgznkkw9zizic879vihdzrzf2"; + }; + rterface-30084 = { + run = "0wlscg6lhqar791sz1d63mnprxvaqvjx0mfk1pi1c2zsk0lnpghs"; + doc = "1ghwg489y801j2c1s5c7qpv9yyh4g6higapzjw95nmmyf32aka0h"; + }; + rtkinenc-20003 = { + run = "0q024qcai2slxd0ral92pzzl4apqn5gr8gj3vw7whz7432m4z7gj"; + doc = "0kr27a2294bj80f3qria15bjpsvgifgaj27zv9wj11rqr5g4zm7g"; + source = "1kwg3qbk2ldq5mirpvg0cmhd3nyz79jfdbw7y37s2c86g3c5j0i1"; + }; + rtklage-15878 = { + run = "0wrvj1d1dmdff3kqph59jbyg22gvz3bhpnyvjd7ih7vzfi4b8861"; + doc = "0nc926q2arbszwsq88dd96spaj5xzkrfng34m84x0l8wbiidbvlh"; + }; + rubik-46791 = { + run = "03qnnbqas5qrf6jmj90kgdn9kkliq8ap70z2b9jyr4rzq8m19ryw"; + doc = "16jzhkbh8m8v8cb0jyifhz6dcdn0sxzi898dcyjrvf245zfwk618"; + source = "1cnkay6vn88p5l5jzhf5lzzfd39p7pbmz9psc814jvlpqlzx90fy"; + }; + ruhyphen-21081 = { + run = "0pizl8szphgyq12sbpgsw25x88svj6vmf8j7ry23hvc9bvjibck7"; + source = "1s0wscvjg6hj9f8arjsp7b9m7nqszqxh2wyjrx9i2qb60n2kaaac"; + }; + ruler-54251 = { + run = "1ikap9dkdw9lzpda0f2krizqbfkyjxvyddils7clim9nhg77aq71"; + }; + rulerbox-50984 = { + run = "0srxrij0sxvm04n6zk4vq4qqmxbjz3v425nx191z96fpjcssx2cn"; + doc = "030wrw1ry800yixlgb11xbm5834njv3ad9gl4jv08x1pxkj29vcp"; + }; + rulercompass-32392 = { + run = "0ky611n65rvaii9b5ic498p7divfm71h843bv9h70v363mki9a0q"; + doc = "0wqgnb9czbmymzmv7j48lgdv8s280id5sh8mwv6p0jqn69zcpdd8"; + source = "19943zfp2rm3gdm6w5db01w6r1nl0kn4zkrnnxg4ic4n3gvv76px"; + }; + runcode-69471 = { + run = "14kg5vn2a3p75fqdz0qm1xjg1nyvhmyab6zp0dw57qxxnzbpf1sx"; + doc = "1s421jdwwvpbi7qkgdv7y6y697d7wfg8d95y78113z2p2582zhrd"; + }; + runtexshebang-68882 = { + run = "0c4rsadkk9vxcax1r0c0mz30krw387da9ildvjnh88ll7zgxv7xx"; + doc = "1j72plplkdlazbqhpnykwl5fbszr3lil3zg9a91aih9nzr662vrk"; + }; + russ-25209 = { + run = "0jr0x81xc1zi9vhgvqy0hcga48nhkj9z2n4rd5303b8h68n92yfd"; + doc = "02dl5mh45z9n2b59clcqnaj9fsv79jw46ph3303mlx7plyvdqj8z"; + }; + rutitlepage-62143 = { + run = "0gslb7lkinbhlqdgp8pb60h9x6ajypb5991z17p4d0jwifz063jk"; + doc = "11h7ppnimbf6znqla0r1vq8six0ri5ihzd82dj66hhh6ic5pq9bx"; + source = "10k8l66sjzdfrg6cbslx19a8nrvw7w5xaicn78rkkf095pyh1qpy"; + }; + rviewport-23739 = { + run = "06nc81iapfymbp0kxfk0srpxilfhk94xwhslv6az8n5a3bvp2mq5"; + doc = "1m4xvkafdf2skhclg60fjgvyd6vd5y9jrn3186q0hdi66pa7dl66"; + source = "1hijca49b0cvh3w8dqwng6wdssmg2fjjj7ga9ifmziznb2k4qng6"; + }; + rvwrite-19614 = { + run = "0gb5j3hn1s28ar9d30g158xfc2vaavhm8cbmivr1ba32njdmmqcq"; + doc = "09n9p9q4pjil70ydk9cjh2gqxdslnhrg9avfhj0vvfacknbmh312"; + }; + ryersonsgsthesis-50119 = { + run = "0zn3hp9ipjq3624h1kdz1r55wxhawylxkmh6fi7v6cz37cnn36wx"; + doc = "08bylz7p9ygmzy6m8h7w33l4lch9iqnaqnb3nxw30d5gp0rsb3j9"; + }; + ryethesis-33945 = { + run = "18d9lw5inr4fxxk4x4xjxnnvbp2agz25c9h328gi1c3afsmi4lsr"; + doc = "1jy3vsin13lpd8q5piia1klc08nfmhnx0hp9hl8gnz86h53mc5xa"; + source = "0chmpps2q20bkwf7p0yxwp1y6mak5hga459vpji5sl754nzbvxb6"; + }; + sa-tikz-32815 = { + run = "1hmxifd6zkq4scfwybz0j4za911r76v56pczgym1shx8lqadsjcx"; + doc = "16yjn7zpfwsnwg0mpqzwqrlz6v2bf1gf7qd9hhj28kzp0qgdnka6"; + }; + sacsymb-65768 = { + run = "0s1w8975ihjffw4mi44x91m8z5cmv7vpwvbai0n5sm9f21mwgvmq"; + doc = "14mnvqqpac30qwjld1vsa6ky1qni968a9kxlvi8nqhn2n12ng3bf"; + }; + sageep-15878 = { + run = "0yavixnkhy1y69l38xj6pbihzm83ncvnsl6pyr3l310hif6r0wcg"; + doc = "0z2n1511lr2m39vn4bdamw8xbxlw92p5hrsxzrnjlrg39ysymsyd"; + source = "19547avrh6yv2v86w8f7b0pbvh8xvwa5z8q69bxcvhwj0jqjicps"; + }; + sanitize-umlaut-67126 = { + run = "1hif269aigbfg3j1f579c6ipvlqqgs0swlzamxdmplbdxc55i9b9"; + doc = "0nh23n1yhjyf21l9sr8y6yw7v1mil403idqa08prvrmnqhp1d215"; + }; + sankey-61874 = { + run = "0njrbv0wghzsyhhxlahy6gc4jbgyz4q43qzqc3jb8lln6s6yn6bj"; + doc = "0v7pfxj823fxl8w8v8khgnd64g0wr7198071ai7s6bpd9byq3pkj"; + source = "1qr7nfgh8zigjj2hhwsvhnd3dl6933dfaqjidbraid3l93af8ynz"; + }; + sanskrit-64502 = { + run = "1w2qni1pgzj2mafglzyvwfk11csfwz83gbcq1ihqabxsy3wqvpqw"; + doc = "1ss9shgz8q2mdhs2q5128pjgcl9ldw0bz97xwf74346625n4wgxf"; + source = "1sg4dzb24q477cp83wn3wb0w5srj373llhx3fnqc9cmxfb0rs7ag"; + }; + sanskrit-t1-55475 = { + run = "17mqm0iapkf04z5wlj3qpk9qlz8nnq50bfbibikacdanv3852m8i"; + doc = "14g53969gw2azpn7z81kdwc1m1hz8mafrz15kzrfiw9w6hh7s6jk"; + }; + sansmath-17997 = { + run = "09zi9xps6pv6pjwp8pjiz6w4zqa9d3rwqn38167k2dlwnc3ij6g8"; + doc = "103h78a075lh094slfwlh2yk4dbl0wryzmsksvbp80gbv8w7llpv"; + }; + sansmathaccent-53628 = { + run = "0653qd7c2lb63lbgjrbac7kwl2lzygz694li1clwxlkrf0bnv1q7"; + doc = "1r7dqwn7vxgg51jlsgx82kv79fxskcdz6cyhkdbwgd2f3rmkcm5x"; + }; + sansmathfonts-68777 = { + run = "0bs5n1j7gm87a3dcczjmkld4h4ql9q0kbaa07l62vdvsv0zhfb1x"; + doc = "1lnkknp1axxj0aighhj3cmv2y1bcka9f2a0678g1wqc87kh796j1"; + }; + sapthesis-63810 = { + run = "18dfh9msd4w3gml1h187sdzirm8g44dzvdgsnh4d21nnvbbxzhnk"; + doc = "0cy0rhr5lc4k9jz744jy4s9pf8508vqj25xx16qabfi28rqqps3d"; + }; + sasnrdisplay-63255 = { + run = "0qhvx1nc7v6l2gq8c3av4sqsjlzm1raw6cmrf2lls7dg4dpz60pm"; + doc = "10f3cr5vfdgb7g0yw3pjqdfiaciwb81m2gssn0in1hv8izy09krn"; + }; + sauerj-15878 = { + run = "1bd9cvx40skqlx71hnfrnc87b2p1wrw3587fjxlp6a22yhzghhvq"; + doc = "1swlcqm2z289ijbxnv7aib0v0aisqdn4l2bfymvn268siz58l4cg"; + source = "0l5p9c0fl1p7gy815l5064x93msfgb6z2lnvm2x24mwfnfpykrqg"; + }; + sauter-13293 = { + run = "037skfr46198y0vczwcy6dzq9ry8w5imj1ih9nfy9mrb0hmj8caq"; + }; + sauterfonts-15878 = { + run = "0x2j4rz8n2v5qw1j71h2yasjv2yh5g503svjrcy70n27njcic2dy"; + doc = "0r3xc4128x9nz9wqqs9y7a45lfgll99l7n6k87cb2zkyckr0kk6f"; + source = "1k5fix44afwcx3rihmipji2zalc2zhz8m0rcpybpz76mzqsrc1fi"; + }; + saveenv-65346 = { + run = "0j100cr2w7qii9q1inmmsyf5xbk729qypnyrin0kwf12cvbj2b3x"; + doc = "1j5zi0qvkwx4a1099ydx0hwb93cdmf7y2q6sa28p3gpsh0fph8wq"; + }; + savefnmark-15878 = { + run = "09i4rxdm2agj06fwggg9jznjwdgvqlafhmf8krncc6vsj8h4ih8n"; + doc = "07w3im9nz2s72p502gzryyrccj4g980axvihrk5b5b3w0qzlpn4b"; + source = "0wdb9xsrfddi3sw3g4gppv7vn70f3czjplgbr7pj1hna8grig5p8"; + }; + savesym-31565 = { + run = "18z0xwarbkb6cm7n29wasa04d92g2pirlzsr0icnzfip2f4j7524"; + }; + savetrees-40525 = { + run = "0bzr06y314xa1r105vrc9nd37akqcsq58j0qxzlyhc8jvbji9ajc"; + doc = "0c00z409by0qp0if8ccrah81601w8njlsdylj42achqr1f9q8rvg"; + source = "101p1q1in7qp2nrkz48c7wqfdrg6mj7iqxwg44aqaib1wb27g5ak"; + }; + scale-15878 = { + run = "0al9axcipchrzc9a3dscmv3yvzwz2388w8knr4vw51mn72ws12jj"; + doc = "1fbbdksmcrd91sixwkkgljnbk08i9jfhc751vzggrj87l38ym67c"; + source = "19nfy1dcq5bd23dnl9aa8jimyif5sil9lf8b4hspyq7cvzcjcplm"; + }; + scalebar-15878 = { + run = "1q9jqf46j12f9rav2j4ngr52pqfyrc4h9xj66cgb3mcc7nqgmc4w"; + doc = "042xgbjlibp1273400sg7p6fzdzbnv344dgnrs3y93gk6g7vf8k6"; + source = "088k5a86279b7iwci0wzxv5wnqifqiwc5kc85701987x5qiaajhm"; + }; + scalerel-42809 = { + run = "0b4ppffs7zcg3y6i3c6dnjb2rl1xm5rz7k5mxm08qj4dpdhyjfpi"; + doc = "1js1z2fkxy7ixh069hmg5cxm33xjwwg002y64m32wj4ldb7shfk8"; + }; + scanpages-42633 = { + run = "15q22kfwbw6scnx8q9dj3p0hr0m86lj2asy9fp9s0a15xsbhq1is"; + doc = "03lpz3836rwk5nk2sbbyv9s0kvjbw5ld9cvw1n40b5hggivc2sgf"; + }; + schedule-51805 = { + run = "1p36glmixr7qadjj91j9rlzph03rp8hfrrfdqcg1ayyzkinr9a6i"; + doc = "198yxgq4255q9bqjj141d5rvzjxq4rw1363gcwy40yagqs4xhxs1"; + source = "1gc4zpw7ylnnv9k9kbqjf8r83srxbiqmqyy10xnp8gx7xrnbmnyx"; + }; + schemabloc-68445 = { + run = "0vc9hfg5gn0xs9gjv3c4dlrxpsqwp370y1b9v9iqlncglmjcglfy"; + doc = "1l9hqsa743lanyxp4y2p6ifgwrdaxycwnmvdjzdl6ylzv3n4qm6c"; + }; + schemata-58020 = { + run = "1idrxgfzwcy31cdw07f1axv9qxiy2m2j039rj7m6gqqjwnzpdyfw"; + doc = "0wc4vcn0gbwwgf5c7cxcb66w66yl4s815d6m1cj3dv2mcm83cjyd"; + source = "1qblgn5msrnnaap7w1r6szdzphf7dgij48g0h7cyj12dxy8gm9a3"; + }; + schola-otf-64734 = { + run = "01i19k0xhha76zz34ccpq83lgnjw4x7p511ssrbdqmfgrx5q0gbq"; + doc = "1znflqa3myy4x0m7ayg3sk4z7pja5df1jm7lkashrcrr1gjqcdbf"; + }; + scholax-61836 = { + run = "0is3py7zig7whp0hzga4d4a7kfs4h32w1irw4gmrjb3cqndg8w8s"; + doc = "0m73qqh86cpgrrxw8v2nz5al0x850danniqyw8359bl26r8cj6wl"; + }; + schooldocs-69659 = { + run = "0b5cr9r7wsd00xih7ldgif98qxgw73swis6m4k8a7mx7xa94qll9"; + doc = "0qk4iv7jd5ww6dk2n4wnwp7jg9s1ka0xfi3g9qc6y52f9h4blnkd"; + source = "00w72nbz74plnbfkmhw08xwfxnkdxazr5vdrp61phh5vrk9lg9gw"; + }; + schule-68483 = { + run = "0ki63lqw2m5f4q5aal8qz6v8ldvlpbgc72pzw2rb58l56m1lc66i"; + doc = "0xm09ndnhf93vyp3mwgns973dd4pff0jrkffjm2sfqfasc0lvk9y"; + }; + schulmathematik-69244 = { + run = "1dw6six3530vyb4ym05yzx1f7mh14kk9pd7187rlqzn9n28vzqy6"; + doc = "04y8fyn8plnq1q01qg3l2i5hw1rdycsfhr6i170kxdishq7zavy1"; + }; + schulschriften-59388 = { + run = "08dsnba3p8nz3hnzh1sd5cd09ngg73vl8yq1h5l8qcnynwwbrcdc"; + doc = "0vaqj4m0yxbbmqf51s107k28l2wms68w3km801lph4nfz8khaybs"; + }; + schwalbe-chess-63708 = { + run = "08aym55g3r9nn20xrc4m576q03lgdfxdwhgaac6j29b9jzac5wxz"; + doc = "1s36x2mnj4ijn2785jvgk7mby9xpamh5ar5kz4ghpw64czsx85a7"; + source = "0ls4xpj78311d2q1vacg4h5257wdf11as6x4k83g3m4dx30hxcvx"; + }; + scientific-thesis-cover-47923 = { + run = "1ggghh7w9grb1l1r7xg1igdw79jswcanyn49rpnwiq5rj4a09r2j"; + doc = "1slsn30sbhxlvr73fk9infwjkw66p5sgv0ydkmarkp1ncybqzr6s"; + source = "1qlxpsy3rdb10xxv1nsn817srdfywq6z1zgb4vb0hy3qnbd2rjwv"; + }; + scikgtex-66764 = { + run = "1hxldpgmp0k6ygry8pni0sz1bkz2mpcifnr7zrsabsx899np0rps"; + doc = "0x73pwz3mwa7gpq9gmmdw6j7mksyknwbaihqfar5hidcg7n45k4b"; + }; + sciposter-15878 = { + run = "1pihppjlynvdlsin8brrhl2mg2jif3fa1mvsard686m4ar6id25f"; + doc = "0cpyz5n70hsp5hjdja3pl1lal1i2akn7xawwcp983mqfgnp8jm7c"; + }; + sclang-prettifier-35087 = { + run = "164sdqd7msilg6jk1ivjzvv49amji4hb5r6wg51vcxmg069apcr5"; + doc = "07s0y5dfmp26j0ayz2bhksdybpqb4cn439cvyifxillkq277dqk2"; + source = "1y67y73f2whg663hw56fwrn6jhhpdpm81w32kzwc7r6sk79bnq3a"; + }; + scontents-62902 = { + run = "0hl8sr63b1z8slq47z4spl0sikxdyr0im7zf0vllspaxqfb4nh6a"; + doc = "1gapcq60n48byiv81czq8h93jhhmhx41iddynl1mq5j2icq5g6wr"; + source = "09n4i1jqp8pjdr9qrk956vr335cc54kr5fjlcdavxxkrwdbzclhr"; + }; + scrabble-69599 = { + run = "1r5nb64rsc0fp0l0x813f5d1b88f3jm2n8mf0f5scxpgmqg5d5qr"; + doc = "1ixmz4z7h2lin80yr2f8kdq3c7y40amflwbydy8459yk25m70pxj"; + }; + scrambledenvs-60615 = { + run = "1r6a2k4n1h8n8svp40yraxjxy8xbrrj8d5srgz081n2fb7g6qdqx"; + doc = "0ql4avpcccx92n4mqb6cn8g6zbq73238c4ilr4jj5x18afsg5f98"; + source = "04xrips1nk27apwgfgr0qzn29h5nzs1810q66vlfk1qlmka2gszy"; + }; + scratch-66655 = { + run = "1gd2yq2w2v7n3kfsid71qv2v5q1rvpfm49rsk4815pk4k16kxhg9"; + doc = "0jhy08h2v2qf3p8dvh8mz5yqqrdzxnzlx1p50ng7xn88d9ihpqdb"; + }; + scratch3-61921 = { + run = "1in71jxpq9mljn7gvaslsnaji21d43yj6ckzim42fyd9zk48waz5"; + doc = "0yr18cyzdfrdz6vs0slbgzgp82gklrmxh34k1p135g7255gw8k0w"; + }; + scratchx-44906 = { + run = "1rhqiix6dmdf9i8wan5xh0sw9ynawzb080b4izlp06d8vkfzx6rb"; + doc = "1p263dcjk8mjfxzgppkbkh7l2p89kavdk6llkffkj0z8gvg8xaiy"; + }; + screenplay-27223 = { + run = "14p99gph5jvm0h9x8irh0c4mxb7q4208j5q0d8pd1dpmlvxvzsh8"; + doc = "18i460n3p05mx325nh7br1fl3i1lfviy7jgl24yc5hwqyx3wwdpk"; + source = "1fdw0bpf4q294yqnc4svbpyiza9bq7x2m0x5rc0x709c1wylqsyr"; + }; + screenplay-pkg-44965 = { + run = "1xzwvnf16djzsif7ff8b51dq98h2844nzkj2f9y6c75g6rhnyls1"; + doc = "0hkxa7gz3sammjdvglvafwczn54m6vcywz6rwqng8qa2hlvb2c3k"; + }; + scripture-69232 = { + run = "098jk1s4xdvyh5pr90rysmxjhvk26135xfaxq985sazaz6lhm5yh"; + doc = "02q96z886ijc0ipz2gi3dxnr14a67lhffajiqxq1s203m5rbrard"; + source = "1pbdxbmar62z4drqyr31d703lg9yv5rscg2sw493bkym3lw1v2cf"; + }; + scrjrnl-27810 = { + run = "1p858dfbqas8x4ddpw81mf59p47iqj30yban2g70rims1wqy4f45"; + doc = "1rfx2x3kir9qxp74halcwrn9zg8c4lm72jljspw040gpvjpiydm0"; + source = "0b48zv36kn7bg2n94yl2dzwh9ba1fx7phpzljqpn44ybj1ng966w"; + }; + scrlayer-fancyhdr-63844 = { + run = "04cq94rm8jkkncb4g3dy5d0b7c3h8bahby4rsd028i0iiimaqnf6"; + doc = "15xy198pn5illwsphn7x2hdh2x3d3ydqa3rqkiwjj4srq5japbw3"; + source = "1b60i58229yc8mv07fls6an4br8p897sdg18lz6b4a56z73020x6"; + }; + scrlttr2copy-56733 = { + run = "1as8ipxhssfx4hqa4s246gfim09nl35dx1wanfc6p0yk79nm5lz1"; + doc = "0hsyiicb359blk6m4kj5gddlzwphxr12hbrwbp34cjfzkbh5ib5m"; + }; + scrwfile-66872 = { + run = "0mvrg5vqhswmvnpf74ifld6fk2dyczknjf21hwmy7lyca6vn9fak"; + doc = "0jhagc6ab9rfnb3shkn17dhfgklwmz6lg2ln77vskngxia5g9wzr"; + source = "08dv79i1cm699rxpv2h2acnq53ghngc3cf98r7rcgmxvszgqlm8f"; + }; + scsnowman-66115 = { + run = "0xzi49kpfq3n37ryn8p0z8h86x1328az401pmv6iviyw3l4ri0ap"; + doc = "1h472n0ajfc9my3y6ggnihd0kjpiqhw65c7442aidmkwmxqi5lln"; + }; + sdaps-65345 = { + run = "1s9vs9ffjl5i8lax4i5ij7zjv28d75sm7z8frssm1cj0fb0wdq01"; + doc = "18096xagndh28fkiy4sd6nw23vik781w4pybqnwjfy9hfm3h6c9l"; + source = "1l3m01pggyxpnr2nvqnvzwl12lsv7m3lqh7h27l77wnwip7sjhz4"; + }; + sdrt-15878 = { + run = "15p0i40aa82f9lgdiy7wn5vbkbb4z5hzmmr4g52w6jisx8c1w45v"; + doc = "0y1gxcyms3wprp47y2mlfcc68gijyvyc6h10ivif1yydmxq1b2ki"; + }; + sduthesis-41401 = { + run = "1i8rdk8m8bc5lk35p7qd4pqddi3knpq1ylbxv67ij7g8sgrl9xwg"; + doc = "0i7f9zjxs297hx3hd6cm70hkkc50wb1pcr83xk54cy72yqiq119p"; + source = "1j6asblirf0x4f5zp8zbmpm7ak5nsilqf4ksxr4bgrca70vfava3"; + }; + se2thesis-70117 = { + run = "0qzdj8j9x2gplxjjdn6pwhrn0rrgxnr53pfmnjif76sfpcvb89x0"; + doc = "0kzbyfaplwkbfnbizw2frsnpalkhzch2pm8m89d56fm4pgdxmrch"; + source = "0jnfsjnhp0mf7q4w47ndr27qf9hn4v0djc7yy01vs6vybq9gjzag"; + }; + secdot-20208 = { + run = "0pnimi0vfgp5zsp0iwak0r0j562w59cl1fn3pnp1gwjz65q2229i"; + doc = "1v8j3l2bh055b18zxl3287ardn0ns5qjgbqkj08qxz5ls912y2br"; + }; + secnum-61813 = { + run = "1zpxz6j5is9f2iaj53bqq2m73040lmzn60h9rwp9kzvlafciss7x"; + doc = "0dabcwh85mvq73sqyi9zkbslzbhhns1sqrmvddvy1yjww0lf2q3k"; + source = "1f8dfi9vrlh71bfb1mi2ll0gqcd6jbv5k96jpmvrpqy0pv1i2ckx"; + }; + section-20180 = { + run = "0rqlczfl443z7mjmnmndclbjy6qnqvla89s8yqwngzyms4z1h3v8"; + doc = "14d7576idcbpxlw7hy3hsdd41gpiyksb9ajwnn0jm1mk2snzb51b"; + }; + sectionbox-37749 = { + run = "178z63iys35al6g5lavqgdd1lcadha9rp25bzm41gyg84f2hpljk"; + doc = "0mk0ijbrvmvky4awh03y2q14ks4x9hr2pa84ia0380xfx56849kp"; + }; + sectionbreak-50339 = { + run = "097mwp2iqg6rk1xxlppqnks0j1k45b0hlrg84x12y0cgrkd7cdbn"; + doc = "0kmfpgcga24kpzm9kwc066a6m4kzw2sfkhr815yc0y2a1agj3zfw"; + }; + sectsty-15878 = { + run = "03ixlxxs2ss5lrmkcwilrzi7r46krh21rli07y2j79p8l23n7vrh"; + doc = "12xkczxiw3spyljn1ay9z0xrxdg9ziidnyryri4pkmsh5k60wxw8"; + source = "0h94wh43pf8bphafhcmpsjzj26592c30pih0x3p7csv8dwbv6js4"; + }; + seealso-43595 = { + run = "1mqy9br1fz73q2l6czmhly8j6dnw51d50dkfh9622793z0a2cl71"; + doc = "13sg11r8d8bd9gmscprqai5lbjwfvr17ida17836zagz83b6y16k"; + source = "1yv4zwq6aic2wb5wiz2564mh531i34r9sl87y07yk1ad89kgjbv0"; + }; + seetexk-57972 = { + doc = "1bhv5xgv8jpam5apdybd0cggnvcizk2r6zs7lim1hmhzafpqqlcx"; + }; + selectp-20185 = { + run = "16kcbpvjsdc1ndhhflfmnz0igjyjc5k62gcfly447w7d13qsg2s6"; + doc = "1frpv5dbxfg708xp03hs4vkgqsxjihn3yk3qvcpns6awjlfi2n9d"; + }; + selinput-53098 = { + run = "13pxqr1mzkblniv9rcrr5aslx887xjahjj9f27h7hpx6r4g7hk17"; + doc = "0pbqch586hfwfjbm68g7i56d0jcgg6w26k6g2qlfdbk8mjpc4r4v"; + source = "0na8byym8s2y2jyi1691cnw46izri0y6ybf3g0pmil2hpxy544ry"; + }; + selnolig-68747 = { + run = "1xrndff5if1jbk5vzycj2alj72r123xjwmyr1lrsjkpkp6jqjg0y"; + doc = "14ppr67fbhsqi6d5x0f40awac7j3i90kk7mwrjm1ch1572im5dhc"; + }; + semantex-65679 = { + run = "0hzp5i2zdnw30s5kn797bwz0hi8ldz6x10x6bgp157n9hvipqaj3"; + doc = "1kd48bj4w4rjk8zswgxgjxj470zxnicr7mbq9lb7crra6ldprp15"; + }; + semantic-15878 = { + run = "1vf341vlmgc00d6srdwjm0a2spad674439ml9k6ir24pll39ia73"; + doc = "0rr5kbn1yzil4h0j42v48m4mkqk8rzwcn05rkn8vs2s13az6djna"; + source = "0x2qal3q0m886lw5xd9w200fkq4hn34qs2kqsr7i7dcq9xwl57qp"; + }; + semantic-markup-53607 = { + run = "10ahkdiwm4h5mwigkzgjiq2xmy1lzgjdif11zajwckv2xng5ckgc"; + doc = "14gv3pgdyjjjj8l8vfa2pgzafyqlq0666hbk0cz6497g99z4ga15"; + }; + semaphor-18651 = { + run = "1fk3qdnkpv28zc8q172w9yn1aq8ff9ag6ql2ghh8aa64j9gygdsc"; + doc = "1bq53xa67jshwlynsbqhf73jgy6pcd8hhdc5dbh83cgma804fyyh"; + }; + semesterplanner-56841 = { + run = "1d69y3s4hhv0lpf4ljxg7r5zg0g1fhjw9b30hhpkxvsbfdbl030p"; + doc = "1a7a927gwspc21drqqb72rymyncip4b15w4q9cy654zdp16b5i10"; + source = "0v66xizbjvlzvxdwamny8rggwb0ivwmhlzpjkmm7p26s5l9kd5m1"; + }; + seminar-59801 = { + run = "0a9sg439ahhhbyb3gp83hvnj4ap0f67xhnfj3p2i3k5ch7chkdd2"; + doc = "1jlrrqasp1rf1kb2bjqlhs61l81h89y7bhi7x2liiwa0vyfva7s7"; + }; + semioneside-15878 = { + run = "0lmr3fxahcln1sf6fg4mkrg8dl3k3670wmz14kpyzd131g73l1iv"; + doc = "1n7iy5qvd0f1hxp025w9x51llx8cwly4lc107iq5yz9njdwn1g30"; + source = "0vshjv6nzbp29yza2vj4g8hfx0sbbgnd1s7ck8ms68zcv23534j6"; + }; + semproc-37568 = { + run = "0yvs0kqk3jwq5yw7b8wwycfrg1v5q47mdq3bprx7rb1yh83ip53s"; + doc = "1ycq0qdrhxk9x9gbhigz3vpldc0dfhb3nwmz5v9i45v0l2m5l3bc"; + source = "19v3w2y9406r5bhjchc6rsfb2brrw7f7sb8ikmr8586gdsnwykk4"; + }; + semtex-56530 = { + run = "151sfla597g5n0nv676sbv5m4kfpmjli7ddhd1yzsiqa3axw7vhm"; + doc = "1mm9ya9ls0ryfxzkss3lfmslw9wrbcq9d5abf022ifbs5184rgnr"; + }; + sepfootnotes-41732 = { + run = "028x18s5c1jxsw97idpj8fmlzs6h46nsgd8zg0awikhdmypl9ac0"; + doc = "0mb7fidrjns48c06pk7yfq3csac74a13i3d2cgfdvn7lxz6lp419"; + }; + sepnum-20186 = { + run = "1gawca8sqgvkgc92hrv0mjhdhh9nqiafxg2ssk7m1r5dqc091qg7"; + doc = "19skfqlaz82ji5fzqzgnfaz642ms71hqhv2pavm6a8ifish8wcj6"; + }; + seqsplit-15878 = { + run = "0m1vlslfac4n7fwhrmcl0swx1rf80ks2p3psrszwd8rz79q6xlc8"; + doc = "1wbmr7hayx3kzwmbr1w1hlhyyzz84skbahd03bw0akbgk0qziz1p"; + source = "1ibiys9lfj92mklzf4lvdzn192wv843zxkv91grjjba8cvn12w5d"; + }; + serbian-apostrophe-23799 = { + run = "0anhf0xj3pm516sxiby2j3pbh0cp50ipch2s5dh037h8bfmjgsbv"; + doc = "1r7fsgsggbr8gf973a8nzpq4rjjpmzbcqnwc8qrlynfiscwc2mjf"; + }; + serbian-date-lat-23446 = { + run = "1766dw6c8skacjbbcd0d2lvy1s57vjl84c12xf1w2q8kh6p4lqk2"; + doc = "1k8lnnhb010rq872yc9d4m8s3vd1my93qydv7x8l80xyp64sq203"; + }; + serbian-def-cyr-23734 = { + run = "1zxl15y1j964sp4iys1rl4gyaqs13hi5ms9rhc7944p36rdf32p4"; + doc = "0nwfxr85nf19ddk9b7hhin84jpimsx2hm45nzh136qr5jnr1g3hz"; + }; + serbian-lig-53127 = { + run = "004bfyajczp11w6bpb7zfyjwfpqwlwzian0m68qhmb3j95vrs3nv"; + doc = "1yrwmr8mjhqnizsgvar8s4xaaw1f70x6zij5z394a86ygx1gx06r"; + }; + sesamanuel-36613 = { + run = "1a6673xpr0q8v7wr1rrq3n6acydsfsc3q6kmj0qg6hm7lzqc1f2r"; + doc = "164hkrwdgpq5azhr9z2ganiwhzqxfaljm89igzprgcg23cy0l3vh"; + source = "0n1akz8757l5k2rv188rnqd90dkmy3xppzcfwahiy22p4bzaw2aq"; + }; + sesstime-49750 = { + run = "0nrwgky0rh7lazd41h3jxlb0kgpk5q7hhbgkfdab41zrawjp9y86"; + doc = "1a353bn7z135bnk2a8q57x4z8d03aimyjfqx3w9x0r81rwzns605"; + source = "0vrwbbmfwfqpvsfz31yid9rxzdc19749fwhlpimx30arqpd88jhg"; + }; + setdeck-40613 = { + run = "149m9s33isx98vkl3498ywjy6f9q31jkw8schc16hxxm1z0jadnh"; + doc = "1rp64i0nrrxn7l2g6dlcmfvwbq3rg62h2ifxrzfp3k5ifnlkhpz1"; + }; + setspace-65206 = { + run = "1h2cwbh7kb2hf3s399x78ij2mxj4b9pjyxrc7jjsr4ldx8hvf2by"; + doc = "01v5nwbkap93zf90vx4a2whwxa0hbnscqqgcd8r865xfnzgc8a49"; + }; + setspaceenhanced-68493 = { + run = "0jqlpgv868qvcl5v3kgzi9dl2r99fx7k8frbzd3fj1yfmjvzb1vh"; + doc = "15ln2969hhaic7zk6g7j66b5iqpw1css0qgwnppwfvydyx1ln6yj"; + source = "068z20knb02jccvh3qm9a3rzpaki5r41is38v6ax9a2mxmv36y4y"; + }; + seu-ml-assign-62933 = { + run = "1cz01iy83gvgg3mk54vkc373smz4r47i8084jgcnr24c0gwr4h3v"; + doc = "0f780ydm3ww7q2rar32lxadzda4mz8bccgman9j5ibwfsdnc1jch"; + }; + seuthesis-33042 = { + run = "0yfan3cpx7h7hrnqncn152ccawlrsaccj0c53kzza0wnkr3hc9rc"; + doc = "1hnrl455lz61y9ybhmrvxjb66y5816sq3yqb76zszrscxh5a8h5f"; + source = "0dw7ipk6l0mwgrwrj9sxg8vidwmmy22vmpwm6j2ksnznz0238yf7"; + }; + seuthesix-40088 = { + run = "07vjbiycd00r1daqg8m0b6g9k97ja0wn3s4zx7774av6p2hdhllj"; + doc = "0j1vphdi9z6anvw7d3a20nasrdfgg8vrn9jh9wi787f9vy2xzdlz"; + source = "09qpilk53k37c8dzc3q3pgvm6yf7i7a09ln0yn586wslvm2dmmhr"; + }; + sexam-46628 = { + run = "007lxpvam03cvldnq9q8l2p60iymfijs2yc30cgj7i1lx44630va"; + doc = "17rn2wf68f16zsr8p1dk3klqapw251zpqc2a7z3b7lgl4164q57w"; + }; + sf298-41653 = { + run = "05px7n24nn9rlrc02mgsndzxc5a397m6c0n3sbsihq0qy9zl6nqg"; + doc = "0d3fh5dglipskc7cjcdg2n836qnhfcdfkzpalkck7b85kgq0zrbg"; + source = "0afcavg1zs5ldi9fjhsnvsph4xqwy8jkhil8jlcqcqbq39z73pq6"; + }; + sffms-15878 = { + run = "0av956vbxjwf0pywp4hrxag1ypaj59314i3xqinq7xhwwxlr7g6b"; + doc = "1aq8bs7bsbrzzl2bp7mg2ckccazk107ckjl7118m5d2rk0mf09pi"; + source = "0fl3z3f3pm7060cfxn218ycnf1y7id8kcll960h9jvpqkq3dhx26"; + }; + sfg-20209 = { + run = "0ldw6c8aqqd7m4ahziqv857zkjk3ap12xnnl5k43dcg8n7apb3ix"; + doc = "1d627ks3av63b142f8kd7g0fi1f4xzq0yg219fj8qxja4mm5jrv6"; + }; + sfmath-15878 = { + run = "05m3whw5xkml48yx93j9h46qmspnr5hwsfszb59l4wy4jfj66zk4"; + }; + sgame-30959 = { + run = "1axbv7ss7nh6nj6dzs4v0g6lqccm8vyvpc4qfv2aqij37qlyv23y"; + doc = "0nj8n049lmin4j90an75p9bqillwx7wgpvxdm0jb1janfip4r5qj"; + }; + shade-22212 = { + run = "1dcpvvk5216znr2i0nn302da6vjixkih5nwix9m3hlmrd69z6hcm"; + doc = "0xs86yjd9f6wlgz0dlc89iryh4rba3752blz07zrxzrm89fdq22c"; + }; + shadethm-53350 = { + run = "1miq7szfh1nya53vcn9kv3m8jb1sx8p1v7z5m3829ynbyiwr7z9v"; + doc = "1gbjisy9miqp0mrciz793vvhj0a04vaai1ixi6vzplhlx9gknv6i"; + }; + shadow-20312 = { + run = "1avy8291hmmvbrqdn4yza9w8w7a7hbwlh38sl7288c6gh1hkyibr"; + doc = "0rjfdi2hm07j418q3fvrf5pxflh1nfkhrk58nsa23fixxzaw5nlk"; + }; + shadowtext-26522 = { + run = "1pnnskcw1nq6m3rlvsa69dxq828dx0bgggg8n2p2bxnr9gmnba3c"; + doc = "0lfvn68d48yh8smf4w8c1is67chsfnipxc82fx6mal1czlyn73hf"; + }; + shapepar-69343 = { + run = "0siq7d3d5gr91s3bc5873540b1ia73ggkf1y1bs47zb3mh4z9g0b"; + doc = "08bwm9a4rq70swqibj9s0i4042fnribqz93jx02xd0638wa51pph"; + }; + shapes-42428 = { + run = "0ww9akd1cf6nr9jk00qrjc8j0d9ryf7f8hc5ywmnz1q1z6mk1fqd"; + doc = "0qh721vhyny3xmkwiaif3gdmk2bhy67mvyfkc4hxrba8lddnkfqm"; + source = "0g3xfni1lmwdkl2jmprnhl3yxdrmilr6nb59kvznwph10h1c7iqd"; + }; + shdoc-41991 = { + run = "0casdf6vn89la2vgqy5zcc04nlsrqpiz0zj7mwlf6w2zqcpmr1x6"; + doc = "1vzz7q88xq2dg3r1xf4idgvdqs4q4w5lplg9rvi867qa8qcf3ly2"; + source = "0wxd21fs45f9d5y2ml3w50d7z8ig25gv34iy3mldarnqi2v64p7z"; + }; + shipunov-52334 = { + run = "01mckfm6ikchmld5r8mdy5x472avh473bfc7lk4rqan8p4wivjrl"; + doc = "0k6x9nxsqcg74z9i462qix58qycf3wjii5ld13xajn04g52bwvpy"; + }; + shobhika-50555 = { + run = "128p64d6bc0m65nwdrjr35b7rxlx21c025vj8bk6n1frfg4k4lzx"; + doc = "1zxg9rxsdf15jn0hn81p20j0dbq1095vqrmh7d5mzhlhnybkr1kg"; + }; + short-math-guide-46126 = { + doc = "1wjcjgw0xk4zx57f364cpl57qpxj3lq4lahlkbk6iiin1h9v2prf"; + }; + shortmathj-67201 = { + run = "19rscnl84f9x6r7kajj6wjh80di5y1mc4g4nybafnisap76r3c06"; + doc = "1kzzbkv36hj2wc9kz1wjr5dlgx3r21vlyj7sy8m8i72yfnmajgbx"; + }; + shorttoc-15878 = { + run = "0y1sa1l5g19arc5wdnqp0jzvqn51m4gb07acpcp3ajqq7n7yaf3y"; + doc = "13nlpmb1asrx8vi08kb6kcqg6szhnzb6667crj9xchbk3zm9iyil"; + source = "0a3hl98rl5qadx1mqqla9hw6i1s3324i4la2kwdazhxhvi6nxm0q"; + }; + show2e-15878 = { + run = "0mhpxhvgfnzwwzd9ahyzdhqxzqz9sj6vldrnbjy4n0r4fv6c67pi"; + doc = "0zfir9yzh3mgpkldcak7hzal0mwls90h1m5vxiax6h2izfkrixfm"; + source = "1lnhqxazyz2gfgkgbj7l2140x81bgsxb71y8dagcqazjzdmqgcdl"; + }; + showcharinbox-29803 = { + run = "013an5sq2kxrfs04k51ldc9vkixag1lbicl614sbj3n3ixgk15db"; + doc = "1zdxvlj1jspgkws4xmwa8yy7aaxqwr33lmzkicg6ayy465jmfk9b"; + source = "0b8hq68lbd0xjyd1cj3qsw1rd4rvjsihd6s9ab5v3a0q1sm5kaw3"; + }; + showdim-28918 = { + run = "1pb5qddnvv4kl79fcp20zkcfgxm8p4zix82g9431db3bbavvmkri"; + doc = "1hc208xi8c4ihxb9nsk6y5p6p43yyylqh7jgy8lai2a526xm2hgw"; + }; + showexpl-57414 = { + run = "0gg8bp3pddkp3z79z8wkh9263gnxhcn6vxhgp2mq7w8i166rrsyc"; + doc = "0dv60pc2p19bzr1fj2hqkgyjry9j8ykcgsi0v3xpvzh91ic9v5q9"; + source = "002v6m0gzzx4kr8vnw75czn58cmzjnyyfyzi2hvfx9ykh7nmibng"; + }; + showhyphenation-67602 = { + run = "1qbgbs9jc2i2r572187p925wjyw6zi1h3pgpyr1ixz84ykdjc2n1"; + doc = "0qrvpapyby3bbaxh84529fvhgpsvsd8xv1020q832ad5fay6rm10"; + }; + showkerning-67603 = { + run = "05jfqr88hcx4mq1fq9hv47921d54947qqa3jdgvk529d0487lcqf"; + doc = "0ggkfgf7zb4jn6icnn43w4jzlklkdw7f0pqyksf00mgxcx041fh6"; + }; + showlabels-63940 = { + run = "0v3azvk9minc28bs6n7g75c0bimnf2ilw1379fd8hic59h1vgqja"; + doc = "1l46xsay07ysg4d63x7mxkavvd9cnjwmfcmgnsh1pg4icpyhs055"; + source = "0vmh36ia7s85bx51hddga0mxb4lcfrmxk31zidqk4kkpqmf20mj9"; + }; + showtags-20336 = { + run = "04m7f6i3992p93xz9rlfa0vnil6h9dyk7gy1v7ih47f1m2awjak8"; + doc = "0i0iaz4hlgf52g68znl5a3q366hd8ygad2khjs3y7hk1fwqpz45h"; + }; + shtthesis-62441 = { + run = "09g79h7dwc0v06h06svj3h43q1xf31fli33xxlqnckz28i1a4y95"; + doc = "14fqspd33n3r642mvmiamswjl4qjda2g7p62amxs69s64cqfliv2"; + }; + shuffle-15878 = { + run = "0laiw8v6izp53c8y0jf4k1nb8brvs36gd937nz2i2cvnpghz98if"; + doc = "1wd46l86h8vlxpasvhnvjimsfrhrbs56i767v2h7bdl8yp751ycl"; + source = "13qz2jc0f084acxdsf99fj22kbsjkr6i3y7pqzh1g2jd4d8bbw8m"; + }; + sidecap-65618 = { + run = "0g6j4mh0nxvdvqyaz0b0756y1xx55zxwrn761xz39mmw3sca3yzz"; + doc = "0yynp2qmq6df47fzns8jq5hkbhkj8p3il3prq4l7pg1129278my0"; + source = "0h0s7hpmx4ha318zkz6caxq2ckvwxxv2fbkjy7a3pfs7q2x9fal4"; + }; + sidenotes-54524 = { + run = "1ip6ybhfihbbzflafcqfhspr1d1x44285msahf7f9ilmhd4536x5"; + doc = "0f4nqbw2y36ymgcj7ywy9gf94pcg09aqk4kjpankksgwmvyjbsxg"; + source = "15kz5d5038vi03siq6lbbf97nng1024hx8zzgrasm304sf2c0ggl"; + }; + sidenotesplus-69176 = { + run = "147si778pbc8vj4jmclsp1qkjn68qli97b2jz8c5ij3znjaxk42v"; + doc = "0vb5r7bxj9xn1nkzmqnxh32ar87fy385rf2zpggahld9v6l7phbg"; + source = "056mv9jqp9lgysgk89hh9wwbnwi4q477zc3cw6c7hkm5wn0xcx7w"; + }; + sides-15878 = { + run = "11anl2mfkzkdv5qb0rfw7940z7hy5i43d8hh9nsvzgwfsw0x1qkr"; + doc = "0gsqb1hzhy1qk29lhq57arzivkwxw1achz08ms1q8q9vxwcsf0sz"; + }; + signchart-39707 = { + run = "1qg1r76v1llj68iqk5imp7f63774ky68sv64xa6j4w52jkkswn1v"; + doc = "0scpaw7l26fcqylcqspd0g5va331yf88a8wc69diw78haywwgp4f"; + source = "1lx77qldn3d23dvs11giircs2pafm54094h6ipxlc4g39g7xc0zl"; + }; + silence-27028 = { + run = "1zixww8d87jymdvxjzjhvhjjr5f8fxhbjwqyzivki2rhw6dpsp2v"; + doc = "01qb2z62da0ji751i3wbhq10rfin23q20r7wr0fzvqv163niy93v"; + source = "1m5xiy5j8l0xy9731mf0jvk4f6bh7d22vbsgpjpvy5r0vxafgxwv"; + }; + sillypage-66349 = { + run = "11r22wb3701sbkdwcz1bhmiaw5xv0bajzhfky1yld05w5phzh21x"; + doc = "1cdahbjw4p317iyr0drpvqw317cjlmzkpjw9s61hv95297156cl6"; + source = "0ya6g5jgpip7b18av75ifia998z5pz3r1sixa44f5f1vjmbxvy4w"; + }; + sim-os-menus-68843 = { + run = "02gnf1js2x3l3y01hj10yy1b1ymkmpf2x8pl9qrhsx63v55chm3k"; + doc = "16bgnhiqxmk5z1ifgci7pp0lm9sg3xh18irvrgbwmdvd088cxm4a"; + }; + simple-resume-cv-43057 = { + run = "09xsryzpnq33wja6fkrxy4ajrci6xcn0bx0mbsw37h0q0h65rp9z"; + doc = "0gbf0rg3v1ivw631yl133iamh7kadclr089rby72al50xwnbi559"; + }; + simple-thesis-dissertation-43058 = { + run = "16byfnhfd1j14911xs1448yampvvplxy8l54by4qwq01wp7pjjmf"; + doc = "1wrxjkgbvps1wyicwlhkx59xwb3vcy1n0wf7r7dllw11r7hdg6f4"; + }; + simplebnf-68959 = { + run = "1bcg213dww4ngpafy873ralbhp901c6xrsnvryzpgk5jrqw2d2bj"; + doc = "1450ri57ci113csq9z54zj6284s8bn8rsl5y2xidl76rz9hdidgv"; + }; + simplecd-29260 = { + run = "0d6gw59xd1mqc991yy6k5jva88j66pd69k5sl5jrysl4rw1mxxng"; + doc = "11fzk8p911v1myphghzpmkj7k62vk4sdicirys1jh8rd2cpnnwcl"; + source = "16g6fcsr0nw7isqimjq29g0zyf72z11qx9xz36zq8z4khxsl09ln"; + }; + simplecv-35537 = { + run = "0b7p6d8y7xa8xs9i2qyljk2s992gprsr3a5pjalkkssa5kiz3371"; + doc = "02x3nwmxdk9spx5crlaw1xdqlwah04m88zrrw4wdg0qjnhvv4mvr"; + source = "05ikxmvflqz5m3qallwgyncda49dzq4fibllgc1j77pdh99cy3vq"; + }; + simpleicons-70519 = { + run = "0cb898rxxv36nlycmc5njnkpf98mk05vimnhiq69bc30k43jjap0"; + doc = "1z2alswv6c1qykmgbnbz5754sv99q7kf17i2m4z3djmf9mqb9j48"; + }; + simpleinvoice-45673 = { + run = "1mdc6aij1id1jxlbkwfdvdv87yh55v5qyazfciffpbf91qm87z0s"; + doc = "0lvk87l3xafl4s303rhmksfajnw77qd90yvzhdk126dp1prh7i6p"; + }; + simplekv-68439 = { + run = "0cw7n0skxgxgar8ks5nlcn70pyi60zi7n2crdbamfw3kgzdqhqsl"; + doc = "1hqyfflwjdxmq289ngc25gbjm2mcvwxzm9sbfp06xszk2vhbjd4i"; + }; + simplenodes-62888 = { + run = "0rdmcmj583i81349m2hwdf0wl4glsfkg5vkmhlvzndh0n55ivj3a"; + doc = "0sg5xs96agly3r917fvbs8mxii7b3l9hsqf2cpfpx5gwdlmwf0d3"; + }; + simpleoptics-62977 = { + run = "051635sr8yp7n44hw9wza6hw0b4av87yp42wkxwq0rshxldqgsq6"; + doc = "1lwk3qq1rgkgi7qd8qxdjjfrnk44c1gj4vl01m1jl181dxjs7lp2"; + }; + simpler-wick-39074 = { + run = "0lm22wdxiwasv4igfsyjfi338qc7m985da7a9a6q8cm63hks2alm"; + doc = "18hmx8b6zpsc98mmjvimdayqpkffwjjch4sjajbz4csjpza7nl98"; + }; + simples-matrices-63802 = { + run = "09kmqq2si98yg3ddnlkddn5gjlvmwd8w78r9d2xvd7g28wm1hjbj"; + doc = "0zbg9ppqj6af49braf4hd9b0fklxjmsr7yjgbla6ckbkwihkqssc"; + source = "059wa3qyaxx7ha1xw98rwa9w7v5nyhq5rfmajhba1crnp155x73p"; + }; + simplewick-15878 = { + run = "07rzphj6ffla4qz9pa31xnn25d420lvsnmgj7l78ryxai5amdfvw"; + doc = "1ch7yqh3bv2y6282cgvqzm4pf5hgpfvlmpg66zcp44wnkq1sw67d"; + source = "070f0zrnrf2sh0dx5dlbz6072b76f8iw03pvywhyryfgghfdfv7d"; + }; + simplified-latex-20620 = { + doc = "1cgf1p7p2ikda1nb0c2vhhx7ai6rd973pz6a00pr9yanxsvghp6d"; + }; + simplivre-70317 = { + run = "0wqzc5ab1pcv7vvs7n3ch5bcbpmgi791hr11axc94daglmjbprgw"; + doc = "0isjnr5xqf5phv9ysqnr4mxc983k4vhgikb7gl1c6084b7kcnbc1"; + }; + simurgh-31719 = { + run = "1nhdmdi6qbvx1nd92hxl8vkly82a9nxi7ghj0zpm31c15z5pb7rq"; + doc = "1cw434sxnbgq5dbaidn3zn8i9az4q35blcx9lr6yf3m0yy2rl8by"; + }; + sistyle-59682 = { + run = "146493bgh2ghbscq69bxsngjfkl3k8g68cy5j28v07lxi3ywr6n0"; + doc = "05hs1wd3wj8szj16wnmjfiy0g0hxgy2cc9ai7q6ys77kgjb0dpfp"; + source = "0sb6vbhnqlixrfy9484d8im3vmgk58y7nqad9hm2gkd4p560cxj9"; + }; + sitem-22136 = { + run = "19z6zmwriwrlcpgdgn5yl2bzbz0fkn3p8g5hrwd368bq7wyfc8mi"; + doc = "1wwnqhl3ffqnp5qxddicqwsr7515g6j53rx1rgi9b5z3cv42f5qj"; + source = "0y249krv2h241wy8xbi5xjrxypa56zipi8fbmqbziw9cjjnz993v"; + }; + siunits-59702 = { + run = "06x797504p5lzb3xlkri1sc9whyjjz6a95gk8kvpympglm8fmpxz"; + doc = "06saapj9rh5gbrj0npb9rm60xrww8rl1y5brvx97gj4qvc3i2pic"; + source = "1clhfsmydg2xjajak0ssa9v5sd3id957si5zvyq3njgl9cpjwi9r"; + }; + siunitx-69922 = { + run = "0mv6ysgfhbjsn7zghm742jxxpc29q3zq6j1wnziq8mv6zgzcgyl7"; + doc = "1wyw34vvbxmp4b54ld50kxhcgvs3my0j478kajr1x9swyr852s67"; + source = "0y91wm6lykalibx10jcn4zm112f815ma3pxm8dz53mgrd8gbnb81"; + }; + sjtutex-69967 = { + run = "1l72xn9ylbv0syxbn53ymifb6m7h7bifh1s5bq654knxpqhql9dh"; + doc = "1wbf0akvfzz8xi8g96bpf17b7xyjlbr61dwiwh5q127885gwlq03"; + source = "12fw7j3h3fpn5x9cbr9aivldlgizqhkvwm2r995wlw6gsh8way66"; + }; + skak-61719 = { + run = "1lh97kc1hmz3ybb67zr7vr74z1zngwl2cppkhmp9cagm48j24am1"; + doc = "0abiardppn7hx6l5h4zh92b9m2yf3w16y15rcvsspv1cb9sf4lfw"; + }; + skaknew-20031 = { + run = "14j42hifh60p6glfp24c2f5k9k34vcm0l3alqfqhvv68l31i05rx"; + doc = "0i144akq7sgs6kwayl8c2yir0kc7czjs49vj6l5lwdcwbyryhh21"; + }; + skb-22781 = { + run = "0k441znw2bn13aiyc6b5hskl76hbhcpilc1xg4jw837dbj2v6qiv"; + doc = "0qi7l9ky0y65cmcp32j93lhwlvflvz8didq9c77faq7ffgzz51s8"; + source = "1rnraidwhkxlhk09ppa5k0ndqhrra4asbpjwv2j5dgf70wfm5vmh"; + }; + skdoc-56950 = { + run = "1bqgnqqv5806f375xjny7vjd831ymdnhra2rbgh5hwls7v9hwp4j"; + doc = "08g7qrmasrl302pxq94dk13y2bdbg6ipxg4f774kzbp8zwqa2xwv"; + source = "1qnyh8gqbk6dhkga2v9gg97q0cbbv8hpcc7nwjskwckc4jxplqwy"; + }; + skeldoc-57922 = { + run = "0fnkq85bidvd6m14m90w428ndx54fj2855sxsajfzyid63jrfa9h"; + doc = "1jgg6h4cdz6ir7ks61lyq9ixczmhdcs34mi4llh767baffvb8340"; + }; + skeycommand-24652 = { + run = "0z5jpznmx09vc5klsvp4hldmlgyp4bwz25gp775kbmad8azad1x2"; + doc = "09gmmakvxhvrh7k06vjh6ly1hmax1z5x7vqxyqdwi90ajh2zkmgc"; + }; + skeyval-30560 = { + run = "1an6ghhsq5nibwas1csypz9vmrmsj7jviamig1r9zzjrb5kzs65a"; + doc = "107higin87d7kca6753f8f61yk3ypk5hkidrbckm1vzn2ci515w9"; + }; + skills-56734 = { + run = "15ra36iiz7i9qb4669j32b26hzmjyx0hann3kd12769f2khb3ial"; + doc = "03j6cj9xg2fhab2a048hb2cs2ddqac6x7zfcf7p9s8zgzyqqi8s5"; + }; + skmath-52411 = { + run = "144iwn9hv4d71420878y7dzygmyyyr2l12gsqrbb44mdal68q58p"; + doc = "0an8w64z7dvbxgagga33zar0m2l44327q4lpz59n75g7c6qswnv5"; + source = "0finxgy2sj5wpzmjh5zfcq9l3dzka1mlffbgmhzp7yk57rrz9lr4"; + }; + skrapport-52412 = { + run = "03y0arbbj95jnicmz9d89vsyw178hw1410vy3ydvf8j88j8z57sy"; + doc = "03b3zp8w0m5kffx10j7qnikdfy6yznvvzlg5hj30nxam4za51n91"; + source = "0vwhckxi676ygxc18rhcsfnr5kp1j5697zyn7ir5qxhm8vdmqf33"; + }; + skull-51907 = { + run = "0v3kvrk5aqsfna30z920k237jql1byy12qkb5i8zlr73z4cy1ll3"; + source = "17iby2rcnqakykglv9k1q5zmcj0h4gj4h2vadihvyyz6m6bvcx0c"; + }; + slantsc-25007 = { + run = "1a05zrd8bqiqgh2bwlll2wspmd4xnvl7p8mz3g4j7nkvx8bp4844"; + doc = "196sqfqgxc7pfyi75d0nqy151if55k3wlvpq8ai7647rmapn17np"; + source = "1jw70y8052qvjkr796sz9w0c6kdyammi3gy5v8iq0wwmf38jl8qf"; + }; + slideshow-15878 = { + run = "1v39pb9qdivrj26hpjbysg3hbdxfd247a346s5gdffraymiy9lcl"; + doc = "1s40c102kkaa24w05lmlg1kw8fwlfnd5vwbfqlrf4y8807izbj4s"; + }; + smalltableof-20333 = { + run = "1g0kh262h9xv5zr2yix9as4ghfsrqnhj8y9gzb66xk90i82pri0j"; + doc = "1q96blk44d3nv5bihz81a25a43vbf9b86d9w00cl9kkin1zzkf6w"; + }; + smart-eqn-61719 = { + run = "0bjkvgyd67v876dgzp6zwifal9dy6mlhqvjn2rzrigrddvvn3j87"; + doc = "0m3ilj749zh2apxr0748dhhm6bfs0a6gnc02azjsv8wqj32bdz11"; + source = "0jxbyx3fsgqmydrzjymqa3zi21xigqpnid46y1izam8vc1m78w23"; + }; + smartdiagram-42781 = { + run = "0b9rq06c0xm9dpd6yljvgay0p7xpglpddw10vlf5c50wma4xqjda"; + doc = "1gkgpgnsyxv9nmhnpalshf23g0iz7bcp4agkh7l368j2h48d5xmm"; + source = "0chpnchdqvljj7h44ybpkln3b7kjzr7b18cj2qhj66ng9cwpywwd"; + }; + smartref-20311 = { + run = "0g8dy72b8q65pw2zmcs2yipclpx3g445v9snjnyxbb3q82asqy5v"; + doc = "1nwl85jj0d97djdqkczdw3544vhazy57fx8psdcvfdncbvpk84jy"; + }; + smartunits-39592 = { + run = "0jiz4mhyf4zaikq0fi4jvan27ngksrv7z5gmch88qj7fapg4xhna"; + doc = "1cw6k8bvj5xakh909jq3x527jnmma8wa7dwp1za8hsajwmmfzxgp"; + }; + smflatex-58910 = { + run = "1w55jqw3m1a3s28hkv68vmqmbh14c7wnsv88z5qhmyqav1nbb13z"; + doc = "17pffyp6d7blwz0a2yjdwa84lim9b7jbg54q5gknmwi02sqdqsb0"; + source = "0xd02c6zzvx9av0xjmv8navff8ik9ibanmid9kls10jancp47waz"; + }; + snapshot-56735 = { + run = "0598yminjxp01imxrbzydqjli0i2ws1f9hw6f3qhs7xykfacbaml"; + doc = "0j614bp2fydpzr2lx9xamn36fn4x0wwi5a58013ds2a8iiha6k1l"; + source = "0bh7gy9inl30h8y9v072fh2malc07cjwizgxc6wvm07n2x3vidfh"; + }; + snaptodo-61155 = { + run = "0wxnac52wv3aknjs8vsw17ghxn77xiqffn6badyp0scyr7gvmkbc"; + doc = "0036gs7ybs2ilhp4lhzc489r5ai6ffx0ha7fn674qzk3qn5j7zkl"; + }; + snotez-61992 = { + run = "1nq3ggbdpkpydaqzpfawvvny8azgbmnbwpl00wsl4rhi7jbqsfwc"; + doc = "1v82nn2y2kk8h34j8gidrzlx8nwah5wmdk3qigw8aa1q7vrkj5h6"; + }; + songbook-18136 = { + run = "1qknajn3s4vpw68hwn0mjf9zllhba035gjgiwj807nifhgm2bvpv"; + doc = "08p61v1jgw0s2bdfwgmb1zw5pyldfsy61d09n6qq93wclgaim7lk"; + source = "1xzx3jxp4791imxw6h7gs1ach94k1w33f4p8pd4rvlcnwglnv9s4"; + }; + songproj-66704 = { + run = "04jnj92nva8agg4k8qgfqcd7rvwhvhwx3836464z66fdv6v4q92x"; + doc = "1qyw11czqdhkpyf190asx8yi4wmcyxc71n052f5481p3xbblz1bd"; + source = "16qcb0k59kkxmqavywdmxy373ck923xn8pjfzp6qssgjvssnbnar"; + }; + songs-51494 = { + run = "1q2fddi3z3d6f03y110ah1lc5j64cgg16w4hcxdd1q6sc6ccc61r"; + doc = "06y36cnx42yms6b3mnpkvbwrl1rrpjy1jlafycy33ijx0sbpizql"; + source = "0airs4wvpv2wmm2398sfy5sh40q0r2skha33999fkk2s9jc99jbb"; + }; + sort-by-letters-27128 = { + run = "0gjmbx6bk2c3nygcbvwn3wfsdj1lscpnqzfl6w8li26hws1ravii"; + doc = "1p0dfvh0l4z4bd86wcvph1fcjip2rvsm22j890y607lfbqhc72kv"; + }; + soton-16215 = { + run = "03vldli7z2bsvznmqw5y6gi81ln5v54jbiqm53z464v76kp9w29f"; + doc = "1i7b5i8vv88cjxvcm1adlxikqwvbzpzkiiksdn36in8msj23vjkm"; + }; + soul-67365 = { + run = "0hkxhwqmss7lsh600ggs8q7qx0dlgw63q482m8piwx0jmh4p29xy"; + doc = "146ji413205b7igjscv9wfybs60wyn47d9q6gkzn8l23wamrzxwm"; + source = "0lplpmk05y85r2rjzjh24p6slmq8319kn7ixxb3zjbzjp1lc44j7"; + }; + soulpos-60772 = { + run = "033c0arpqhrypwy5grpc8c6dnlc7k86iq5wglm6r02bdk4mcw7hk"; + doc = "1g99lgnl1m7nffwdfhmmb4zgjwpaiq3pggbgmi19p24z7qc1sjlz"; + }; + soup-50815 = { + run = "00glliinyi7m5m6gkr0szzsp5drgnqww4k50yfb6p3qv1mlkqgvi"; + doc = "0470i396sk8a6lnx189zcazns280qgyw3yvwiyxc1gs2wd812qr1"; + source = "09db050wsnmpqxmba7w23h3g92xyzg0sqv57yhns5nwxb2cmbr2g"; + }; + sourcecodepro-54512 = { + run = "0vzs79a6bhvxap9xw9nm4csqm8x6m83nmsxffqckihkrbcbwnkz5"; + doc = "04g53xmi3afzv76dn4pg9vjsd903rl0hbzqw32gr7hhgh60xwb8d"; + }; + sourcesanspro-54892 = { + run = "0j0qgb04yvwf265hwiiv581fy39cpr6i9f21k38xdgdi0dl7ghzl"; + doc = "1lg7jxxcymnvbrhgdf6ddj0nahbr6g5vnz7ahav8v8zfyfw87z6z"; + }; + sourceserifpro-54512 = { + run = "1zwvz4yqvs5pcqwsig4sjkp4chsc089j0dl9mn8ah047nhr2d7z1"; + doc = "11q4ppkw8m56bpn8s08w0zkiilfz6s5jv0rkqjnqbzn47nm3dqij"; + }; + spacekern-67604 = { + run = "0jf5rv2kqzfr2ji8w4x3cgli028rhnndz5xm7l54q5m5rqczb1ag"; + doc = "0z9dyms40vh95wslx7xack5qys02hdwxr451d19k3jvx4jyxsl7f"; + }; + spacingtricks-69048 = { + run = "0ahyb2skb6bl3m37ppzb569y539bi0njkq26wkvf0qw1g51irvz6"; + doc = "122xkp4s2wqqza5nxlibxyfsxs21n20xn3y5i9lym0hakpj7112m"; + source = "1mbb835yyrzpk1qlqci0zbvwd64amxqav0z3vnwaxxi14hqr9laf"; + }; + spalign-42225 = { + run = "0wy2kliv3mrcqvandk3qbbqjbri6xq69d5jsi80l7qdiij86z3g2"; + doc = "0jp34h19q4588rli6k0v5kg47j6i1gjpjgk772fkb7l0f5wln7k3"; + source = "02qzd21qzb8s2jsip2fr1jgf11xd7xmiyi7fv0s9ylyfr259c5b1"; + }; + spark-otf-62481 = { + run = "1z9k0dnahkq2nfqs3plpyb3fdj48x8vcav0ahykd554fygv5h4x3"; + doc = "07pq90xx911rdjdyr0sxg4zqfg1yb5kn43xc5l6hn0y81m9j151d"; + }; + sparklines-42821 = { + run = "1mb6c3mial9ashhvmjhynczjpb462j18qyy2an4ckgwgc46pwhp3"; + doc = "03j6xdkvsv5p71bifmggf69w3s1n7758yii1caz9p9bcqmqbnrk9"; + }; + spath3-64818 = { + run = "1w91n8mq9bzf7fwfwwhpqn8j5w7plc4366a5pw56x2212n75pzh5"; + doc = "1gy8n6rhxbqf64gh4xbjvy0dz484vm53ld3i6graly3qzdrwkhdq"; + source = "1gy5p59n76lh0k961cysc3qpnnhppbcd7dmspjijca4fx2v3ckkl"; + }; + spbmark-69927 = { + run = "1izn0xfdc8gc3apn2z3f0593p036mrpcdq7vb53ygavx9qdyzfaj"; + doc = "0mx9ggr9zirkb0ddqsb9xak32vyg987ddhkbkzhk7xjg2q62v0lf"; + }; + spectral-64528 = { + run = "1qjvxyjxm81j3cyajki6jv59k6y2m8nv9kzhj45d7i56za9klkf2"; + doc = "1x6sixvjk4sk5r6x3pgppynsgp139jm3cc7bv83bk55757jjd8j5"; + }; + spectralsequences-65667 = { + run = "06v0sb1xa28biv5ak6nprdcjzjdm0106rmlgm4if0jgmax0hiqpb"; + doc = "10limf15cp1bv933m45s3vdvxwzbpd5hard4lqff2x8ay1h0n1wd"; + }; + spelling-30715 = { + run = "08zkbw4fdfmfz1pxcr96xjhrs8lfbf6sydp8crp8110fikksjv9i"; + doc = "1wm6r4rhkmxmc66zx9nvvdmjaarx789c33vzm26mbd6ylv5qs1is"; + }; + sphack-20842 = { + run = "18vav5d5846hzn6ry7ypnbj9vmxxxxjxm8wpxah9mlml6kjy5hc0"; + doc = "0caz10cwphajhni7rq8klh7x9m46hynbrgyr0c7fjqs8jfdva4k7"; + }; + sphdthesis-34374 = { + run = "1a0a4mwf14f4076gwiqhgdq436l5fxw588rigif0mcpnmmmlkxwz"; + doc = "0b6cgkwb4v4v78nvwg2n1zgc3ww9fnkh43s4qb3g3pdjc399dj3s"; + }; + spie-15878 = { + run = "11s8phbfna7wwx1gji1mpl93arvxlgfpxif4c46xia5spn4i44ji"; + doc = "05myxi72wcagb55fk8p8461vag4yl79ilyhfri8il4i72419ip22"; + }; + spix-65050 = { + run = "16cw2sv43nh6qsrc1681cw1035gj78fvgpwj79jb91sph80wd4kf"; + doc = "0z5b25wv1pcyjc97w1qd1lx1l1rj471nm9yxx0rkd7qyabqflyj7"; + }; + splines-15878 = { + run = "1dynq4y6crzmnn7wcana8klczvzzd2gkya41qpy9w6nxwa2b6kk5"; + doc = "0lyg56rnhrq620f083bayssdm36h6wl05d8wld67lf42056kxy8j"; + source = "05b9dwykc91q4d7xmvq5hg6vznsy4axpi4w6awr6l6qrrqh6wz71"; + }; + splitbib-15878 = { + run = "0z2vnb51ksqp3i11903mvgaknvxl1azwqsch5aaq14y7fp9kcrah"; + doc = "1vb7snjy518hcv3x0cvr40bzlxr0nqb1ssqagqncyzzpg55nv9gl"; + source = "1sgl95vwqrp6k4y355d9mwkqm6zpw0g69p87hnsmdbd9bqkjvsv4"; + }; + splitindex-39766 = { + run = "03x58nb9bqd1fn3k9fqq5rdafsna9rbxjhp44dwzig8kp81f0g0i"; + doc = "1v2wwls8fgb1rhk91hrjsabxj6plx2bq7h07fyqxvl3982am9wm5"; + source = "06ksmac3dxacfq7j4ad7vy9kls2rnay1hww3kgbp2sgadqvwmz0z"; + }; + spot-22408 = { + run = "18ich1w6d68xa2p65lh22yfwdkvgbl9zz9qmd4yx84ljzby49zhg"; + doc = "1flizmkafy77g30ffsispr2m4yaqyfw5hvynf7ppph1q07jqdy0v"; + source = "01sx1j1sxr1bgi5h48ij02nwawg2wgg1c7mx22q9r4sbn9mprlbr"; + }; + spotcolor-15878 = { + run = "19xicma97v309pbwgdyizrjwwnlas95wq0d2qlyw7m9wrq295lpb"; + doc = "1qsdgagx45z4gha0y7z37687jxrc121pr592b1xcy8bhf86nimhm"; + }; + spreadtab-68256 = { + run = "1jkc9h4a3cn5k7p87hdib2jk8kkmcn98cx7b8p7p9fm3pjac807r"; + doc = "1xgy9b81am6pl835sf04hf0srpdpd7bwvxdl5cd4pr784xgfvdb8"; + }; + spverbatim-15878 = { + run = "0s7042ln9l7jvb0vyrmg4h4fdgzy6vaabr62n7zlkr8pf7zd8nvh"; + doc = "1rb6gyq7j5m14d8707gkqv1n5ifk1y497mwflhigqgyi9lgcvgxc"; + source = "0f3spbpb6icwm84v4lq0skkx53nw3i0b90ik0svd9dhg31y24c43"; + }; + sr-vorl-59333 = { + run = "0a87b640qdc7bysxlgr0y63znls4ryjgibi3ablnw9q3rhzbbr7c"; + doc = "05zpxq3qjhziidiq8i30hj295yh2qa3g79lx9ywlldbkyhq928cy"; + source = "1ddwga4af9k70c05v2a8frn3q779d2pw43h5bpfks5w889ss6rr2"; + }; + srbook-mem-45818 = { + run = "0znvycl1land17f2c9cq09hhhg4b677rixzjc0hsq34c91s3xdq5"; + doc = "1nf53sq2ic8y70z0n28kz27lji35slwkxrn8rz0dsaas73ga5k2y"; + }; + srbtiks-63308 = { + run = "0bghfl9fix95nxb8zvsylb8040msfwk0vazqkwvc75v08idigijx"; + doc = "1z9fyz7kjqis1rblrdb2hmj2507bifg07yrigqkn2cgm4wsg0cfg"; + }; + srcltx-15878 = { + run = "054b8g0vvhbzazxs8913dzir7qb6x5q5pfsiwdp1z1awkpafwkmv"; + doc = "0fidv12pgqck21fffgrrz2a0pfsb01fsyld8qhf5r00915aai6h3"; + source = "1sj23lc6k8kwd11q3sq6wbslwl4fsc3wzp45w4by3mw5k1q5xqcf"; + }; + srcredact-38710 = { + run = "1rqmgpxcvvcmzxdj6k15v8z4i4iq4wv95whddpi93l3n0zv2ihmq"; + doc = "082ff60lfnapb570ps3g6vjy2xn0gjjih6y4nm3ry9i0k1isbk0w"; + }; + srdp-mathematik-69288 = { + run = "09pxklmnmdwiaf0dgi94aq33v5v3ml7ap0xs9s422wswhxx8378d"; + doc = "1143sfcqclgsqkcd0ypcyp37hna4apbg16kvi2146xkz3gh3agqy"; + }; + sseq-31585 = { + run = "01vqjmi5vpd2s00sqqj6nlwgqvz9c43igg09w282khlca471253l"; + doc = "08xq5fjn951hdpbrvzx6p09a173radfh8a4wzhmifd5rca9l7asy"; + source = "0a1rh7s1fjxn3bblqz4lzhd9812d9p71wwww5hg9nnpn3gjvdr6n"; + }; + sslides-32293 = { + run = "12vg8fdv0di8vgnw8wj1y6rad6izmczfqzy5pr6gpflzmn14fbq4"; + doc = "1dssqc7f6260hl527hhqq8zbiyszb13z3bny3rwjblscl9ia29yf"; + }; + stack-15878 = { + run = "1wadfhja3yji011aawrp3jgiqdxil7lzvkd1pzy9c9y63lzknfg5"; + source = "1qv2bvjs01lk9b86rzb7n0lk2a4gr870qsnahyrd9dqdnvvz4n9n"; + }; + stackengine-60019 = { + run = "0m0c3sgajlzb7y598y0rpm29mrlsxmks6a0hi1b56vpafsi906n4"; + doc = "1ga71wrnd8ykhw9x3a3yxqicqaarzxncass1lmyrh1kndim79pyi"; + }; + stage-62929 = { + run = "1wdvq1izp0y8b7mzbqql3fc9q8j7jkrmm4ynnk3h2zlg24lgi3gv"; + doc = "1jamw0i9nwmk50j5xiq4pznyjiqc2px2s5993gyjs6hwxb28c423"; + source = "18mw8338ls16klvx7zbdr1qc0z64xgnilr79zfldvsw10fp73apg"; + }; + standalone-64677 = { + run = "13bp2iyfnpyflps370mzrxk1vkrybamam1f47ws4cafpz99nvvyr"; + doc = "0waw4vqxh6nclh6kp17nhb4i1hpckwraf5clksxvzgiv25cxkada"; + source = "0a4k7lx74w035fvj5q6mnzpx18jzlghz3lavhsl9ssqjb3zqmar2"; + }; + stanli-54512 = { + run = "05mq6zhs6x5qjqk58gwws9lw3p876bd1f8a5c2jvb2azjl7d9r4f"; + doc = "091knxhx7jsjiv4ip0z2jbazvv3xmbvandbraxbipp4zqqakb8bj"; + }; + starfont-19982 = { + run = "1bf89j0qqyzih5w9ban03k85v8ih0d16sil1sf7smzmqk3nhmrz8"; + doc = "0rjx4wj021ri26zxdlhkh71q3d0ygf3hvcqghq9fwkbi0gnig1r1"; + }; + starray-70604 = { + run = "1gkqrf8k701pin6si2lmri0a0jml7hmkh2fhnpkn9vq54wkyjbwl"; + doc = "10xza2ljipqp5cq8nv26dg5y5xw9g56s9r51ljpsxk0yxpi2pxwr"; + }; + startex-69742 = { + run = "1d6c54hm9jdi882srj87drkcxm7lldb4g60lbic9wwzn9kpa0ynk"; + doc = "0ikmb30ndmj0yhzxy9mba3kqxdc5f8i66sji51ihjcrlplj3jk73"; + source = "0304dzv4nzlcqi5k1gbfnx823xaxq84ja4gwh7qg941q152y7w9n"; + }; + statex-20306 = { + run = "11qpdrcszbsrasbasmk6h9wg5r2a11pm116i16h7mvw73vjaq76f"; + doc = "0dkb7c7wavn3qgndl0g8jpkx1qr00c3iwp6d0r72znggl4cznhsd"; + }; + statex2-23961 = { + run = "1949zszdv000dw1dx1jjznbd79q73fjiqnkq2axdbxffh47ls1dp"; + doc = "0fkzbs76yfyygscazn4dgphs8g1byzg9n3fbdg6pizzncirbgh6c"; + }; + statistics-67201 = { + run = "11szmc6f380si38il9vw78n30yyfmmvgxpp8f8p8kzb373d3hs9f"; + doc = "0z8mx2gar2fn97n3x01dw23l7r4ckqwgfksgmfdj7vhgs51wsv16"; + source = "1dkz9vdcnadd1xd4k9i37a3mpn1bwm4zf3c6bg6rvzxaarrrci4m"; + }; + statistik-20334 = { + run = "1c0469cxfvyg5jl9q1pyzras6fk3f6zbgigaby0iav34imhg7zy6"; + doc = "0fih9k7mpzg25h56x6zzdbdnhybd25b7hlv0pdbnlfb73s7h4mcv"; + source = "0i68y5ynymx339zgxc9r8dgcflm5468gd6cwn9ngpnjvqqbas3kf"; + }; + statmath-46925 = { + run = "0imcx9nx9h5fi53nwg82n2d9s21vlngdab7znyg1z5pdll0df043"; + doc = "10mxwgvjjnk2ci05ikml35q64c82c7dv7rjwajhk03gq8ljq939j"; + source = "1himjc8cn3j5jr073qpp4mfyi2cpr0czf7iykr0w6b7722kkqdh1"; + }; + staves-15878 = { + run = "0pb7cghd2p1f7y5x19x3zyvaz63k3nmrwd04g0yqrl3774fvnh1r"; + doc = "11i1rcc30lnm8fqmnpmk1hgz2fmm54hgf23ich279aqfsk2pm8iq"; + source = "1y87sw1qrmvgvayzwz2i6qjzvx952h68123fhhv67ga0kpxf9fwi"; + }; + stdclsdv-15878 = { + run = "1130sj024qfsszjx4adr3bmmr6594d21bcv3ixmw75y85djha1iz"; + doc = "01li1x0cc820y0m6dmivjabnbhz6v1j696cwx3d08fiw4x7n4jiz"; + source = "1ypihjm5r0v2isrrv8152fp59ynjn9wmhp0ffx508n7kih9yisbn"; + }; + stdpage-15878 = { + run = "13q3jc6snrscq7bl22myd8rb04q9q5b0a3xvr609j1lxczbs1xnc"; + doc = "1kr7851lc6lp4aq78xc61nw495qnhnrbsz0w2yyldwfh07h4byzb"; + source = "0ygk73pk79wgn4qpg0niv3d0a4l8bdhrdvv1a9s8g6ayngfr0nsd"; + }; + stealcaps-64967 = { + run = "1n6922kmdf5ahc8i3jyps6w5r5k1yhnp2x1p2bd259mjd5ivplyx"; + doc = "0djb508nm3l88p33736kwv7z309nalblb1zfijib7ksqq03515di"; + source = "12krgi4wm37q2jcag29mflql1fpry8zhzxn3bfbmwh6cna8i6042"; + }; + steinmetz-15878 = { + run = "0g9ll1hsf82wll1ng5lc2v6il3l6pdy3dppz7k7piqqmifzc8ifz"; + doc = "0gyyqmllgp6dg2g4nh5q5ycnixlyzc6xfmi3szypmr1rai1dvx2s"; + source = "07fj431nraf7f9qcmm5bvk03cblmj15xcsbnhgish4rxqbf7clsj"; + }; + stellenbosch-68039 = { + run = "07j555jrcg91nk6rgr6c9dq8y9b3i0677j339hlcb6mk7949nz3m"; + doc = "0xrpmbzaa4y3v86zzdws9al13v723k5yjbxgnd9l985fgq5w21bz"; + source = "16mmz7pq4y9blxskrxjq8w15zq9vrbcr6nj8ynfy13b7wxvqqrcn"; + }; + stellenbosch-2-68183 = { + run = "1mp3sskmlxmr5jc00rh5i1vyikipmgvc266djbx8f47adkgqxfl0"; + doc = "1v7drgjgiyjp4q714lanybp34pkxjn73w4s20lch49mpq0qfnfqn"; + source = "1ha1ps4cdf6kr6dix9wnhf2672ic31n04vhzqjal12lcrf00pzi3"; + }; + step-57307 = { + run = "1r2mf2qlcksllpaakrycmcrpxfq9c4g7n18ip13ykp92fmrbcz4h"; + doc = "0f0hph5cjwhwdn2yyfzvn1jbkh8xm71jw10zagbncapfqfgx5h62"; + }; + stepgreek-57074 = { + run = "04xldk3dzcr1vg1xld4hhwx5xzi2pr0v7gn526xr8ca3m3x5mwnd"; + doc = "179zz295nxpp21p6xhrn1r9ka68i3l9l8bphrb2833a2x6qgmil3"; + }; + stex-68569 = { + run = "0qpc9nqi6gkkwc8rg00rkvli3kgdfvxn2h23paxmsf8jsf74c4lv"; + doc = "1b855d0n3m2glxf22j7ifn8sf7yi9z4s55jnb1dk0pfy3i8a5zf7"; + source = "0xm55wcxd47z57pmmls2nx6f310nbjzmn05crynfj4rw4310vq00"; + }; + stickstoo-60793 = { + run = "1vil4pran5vkgzrks8wp2nnwddily3pkfw9vap1l72c5rcxsvii8"; + doc = "02h21jbb19cl24ds2r1gz3js8fgxhi4dq4acw6fvq5kv8izqr9mz"; + }; + stix-54512 = { + run = "1jqrvkx444hvfh7246g22k02jm00m2cnc6ffj36k8qdi1s5m9dkj"; + doc = "0vmiariam5zd37zq2ni9560kjgia89p52cm1phxqp6gp7avfyl7q"; + source = "0jjxifyrkdwgbv6xvgpk9ji6qwn4wr91lkdprcdjpmw9b2mwflj2"; + }; + stix2-otf-58735 = { + run = "03ilzmkskp2fj3jwyvlwz8b2ryvb1rfj08ciqhkhi9ddygzjk8xx"; + doc = "18cqnpabka16kfq09rspzgwmyh0fva77i8676myf4wg805953zgh"; + }; + stix2-type1-57448 = { + run = "0xrpb3y7wbpxdc627gn9h6s3sjymczbhxqqi0dbicrcrd4065kp7"; + doc = "0kqh52jkqgsfdwj83wks80h9v326hxz1zqh2ls346kc6gz0r2p9n"; + source = "0ajs9ri4v4jw3hp64hflxwqd9sw75sk2a56lv57qjzzjzkc51243"; + }; + stmaryrd-22027 = { + run = "1vvnhyk7fq6kh1jb2zd19r6qq1j8zzp14gyrqvw7yqm5amjff7fp"; + doc = "0dvcn4yw7qlb7gh3b3z9vk4rx12b1086glkk0x21cks87kphdxib"; + source = "1wmn7bwahn28lwipkpsla74wn3a018808rmh7yvxdkbxfbzcwqcz"; + }; + storebox-64967 = { + run = "0vy7iavq6qqxpmwhm9cz4gxp67nriq230kcf1mr1gq2w0ncy7kjc"; + doc = "1crb1bkra0y2gjzf9wndr5c3nvc83v57lkdglxb8v1pzpy7halmx"; + source = "1ybpjfrria57fwvr9kriiw6y76ivwvsyb6ayp0bi750smsv8k5n1"; + }; + storecmd-24431 = { + run = "00xk8l8l99qpsmkdxcpccf8g7av2asa26qrh3bi0kkmapm7agk8x"; + doc = "1n5vw689y9y2kakhkyqv47d5cin7f3xqfz8bc3yncdrmgh4kq82j"; + }; + strands-59906 = { + run = "0i2k3b3kb570k5h7yag83gchk9ss971v8w1xqr2kb448f1yqkjr3"; + doc = "1clpm1i4a0477zbrixscwpg6qyli0y5vp61lblgn4iqgw0sndhlz"; + source = "0ckf9ipirn8m795df5za2qd5w96cxzxmmv1kcn0gl4aj3ypia6b9"; + }; + stricttex-56320 = { + run = "0igsjl8gsdld0way8nry9r50ibvm0aj8g46ki547c1jhdgmw67fn"; + doc = "11pyyvsxi2d4dfzv4pmapa2ffyp5fky32823fklcffd2i6jnvsbh"; + }; + string-diagrams-67363 = { + run = "1r1xww9h5vvvhar2nvkmjlkv1s57qv53cz582mh6vwg6v6w41nj8"; + doc = "1nccy5d95ada03lh1sfk7rv2r3qba8rd2g61wavw1p9cq40r97lx"; + source = "02mzpys2xw7hd7mfn4z5z7cdlcafkwhiibxnkwya9h578g20ji1a"; + }; + stringenc-52982 = { + run = "01xnfg0mcp94dh33rfzphk50kjb68bw76kf7jnbsnjwlqf2cr5pq"; + doc = "00hbmjwhas4fpcx1yg016ggqv324hdc2aklr2nx5m5x0i68xq6qa"; + source = "1ir6041286fiz8c5zpsbl4cq62gzdrdpj50aqv5p6b1lqd8bsfp6"; + }; + stringstrings-57097 = { + run = "178qqf3ii5kaw5rpjazvf78mjb0aw4vnqzxpsv9ahbqfxpa16894"; + doc = "0x6hcdp3hlfnd0vn3inq92nja4hirvhg9m37zmsh9ilnnz7dk8lp"; + source = "1aryr9b5d4jrj6mc9cmbpc11l2mqxlxsc16c5h68ql0i6z0bpsz1"; + }; + structmech-66724 = { + run = "1l28ljkgzxirg31ai7gb3m71kcdzn3gif8w9ssiawaifrz15wi50"; + doc = "1rnmrjpmzzidykm3al7sqb2q7m435lpjppv7xyl9a8zlkjgvwnlc"; + }; + struktex-47931 = { + run = "0qkfh53rhy29zapn4zr6n14nmximfyv8rbgxm16qq3l6mid5jnyc"; + doc = "1nbbqh3g42qvrk478q2v6snl1lbmfjnb07jhx6z53yk87pna8gmb"; + source = "0j3bprncnkp7iar2dh46bqr3v9zdvkk9c2w9kgj523bcyzw48zyx"; + }; + sttools-60736 = { + run = "1sxdf55j0g6gm2h486i023axk2m5ik37ndayjs5zxxkj6i3sh4vw"; + doc = "1l1js9bpslrqih0c5cjdw3d5nkcx96d4idfxw861yx4lhxwzdq08"; + source = "1c74wjq7r3jqq10mf1d87v6fi14b37i90qavwcx6s5bhhrpl871z"; + }; + stubs-69128 = { + run = "1p454rfdp2v4zq3vx1716x2w1cr1a6dkcwnj2hx7w2jn8118vqkb"; + doc = "03la45gxcy1l1qik7kgcb518n3yvzwgdi5x3ffzfpj4yp2rq994a"; + }; + studenthandouts-43516 = { + run = "1007rr5m0lbfib30bkb21nvpq1h7didqijg6jsbprmkgsz1xfdkm"; + doc = "0sqfqxypkrcyp8fc60xsb1v9nbw7h1xrdai626dlpknhnm00kzmj"; + }; + sty2dtx-64967 = { + run = "1nrn2xv4r39qa2glfw4kalzdh5w2zlx4vaw0hplnrnxj8lwmpb9m"; + doc = "16jpjskvsk51sz0j503z4dljwzd1ymi2b06z9lag8ab5iiyhm80j"; + }; + styledcmd-70496 = { + run = "1a3k6nxxdq1k2y5q60rq34iys8yf64c112gr9knl1yd7rza24cpm"; + doc = "12z3l8psjbyraz0phjylnjl9ghdngnbid7427nffm9har6ppg0hr"; + source = "1gwrrwfs80ssi9r2b39js9fnfy0kqsi1xs1mjjx7rj94zj014bb1"; + }; + suanpan-15878 = { + run = "18nzb8qbs7q233f68983q6988inwc0fm79clnpfpr37z2p7im95v"; + doc = "0xria0g6qzx528dgwb2q23l5iqjzj8xix1215ciz5kmrp2h4fh7n"; + }; + subdepth-15878 = { + run = "1l79nf05yrvpzsbsjyrvyhsc4kx7dfbvx57qc1ymzk2zphnfw4fl"; + doc = "0g8apcawmna380iwys0dvshrdi51k50gavh8wgwybcvfjib82h4w"; + source = "0ac0l63sisx6ry7m3qlf0f98dn7gml3pfxlyiab8664cv43df2s7"; + }; + subdocs-51480 = { + run = "1mc1zqvqpw5ln494c6afx88gigkby4zlb5i4gbizs75irgyrs01y"; + doc = "05m9pcg8dhk8rayald2mnzl0wa7z3w8znwzw2b9ifbxz3cp5k4d8"; + }; + subeqn-15878 = { + run = "17jhiyzv75q79mdkpn6vj60j61wr8yf8qxz63g16dl4xf1xvlqpv"; + doc = "107jnszs764j7zr9hywn7dhjdyqd9mb6mwyqcilhgyz8ggpqpz68"; + source = "1gwz9pp8jzb7fsj4dg797rsqynjbk8q69m8xjzz4pbmsysi01ijq"; + }; + subeqnarray-15878 = { + run = "1bj51jrpvid2k3pd8sgrg85aq4iqachah22izpn949zvjvhrk81s"; + doc = "08aaqv3ca0b6pnj3f6h7c0l2z7spg0hmzaflxrgxbnndn1zh0yhj"; + source = "1slm6rfgf599d1mkww44kcd3lj88z43dr8i15imamxr0dz05jiav"; + }; + subfig-15878 = { + run = "16fs6ax4rjnv446x56jydx59ahw9ylkpq22a1dfnnyf8s4jm7a08"; + doc = "0jm594akhy2b1w8i7ccv23z4z94lbd6rwpmr62mg1h80af806biq"; + source = "1aprv7xqcwnl6076w71x5x8kspa1sb5hlpbcdrws3slfzm40skcw"; + }; + subfigmat-20308 = { + run = "1vx7qh6na1il98gla65c42j8r00ihy277l3s79jab917b3xmrr85"; + doc = "09n91ami9skfmrrrl6j7p7wy62ds64zrr0m66c2wn0pnm6lanmxc"; + }; + subfigure-15878 = { + run = "02b2y8isk2irxdm7bcmx22v5lbkbhc15jqpx0dhs61dnzb5x7ag6"; + doc = "0lhpw3ayq5p15blz7pwkg2z44g300fd2k42lvyf7zii67x2rgjh9"; + source = "1mvp7i150kxin5819cvyfwwzgwmiq1r89m2ywjhv87rgg1v31kx3"; + }; + subfiles-56977 = { + run = "10nslhm56kp5bmzr2nlbm40rlp3i02zj4z6vxj8w6cj1vv7jrd9j"; + doc = "08r52aci5ab4cv70kbrqq1ak4ny627ks43nhqk6kn649pcahjqlw"; + source = "1hmli1qvgpnn2bmllf1w53wjh63zk92dv2wvvi6fzjpq0q6lqhwg"; + }; + subfloat-29349 = { + run = "1ibpaj98ibx67x4kff1p0cnzpxmhs4yyqs2y4vj6as5jx43qnwj9"; + doc = "18ps2xbqdf7pgyhj848zw1sbk36drwkpa0g1s9mw882ynz16gl9g"; + source = "01c11mbfyynpa1yi0arlqcaklikr4sr83j69piznabj5jhb45nci"; + }; + substances-40989 = { + run = "13nl4xc0spsg4bq3ld0fv0612kac2z017zp8hwck2d8413jwkj8y"; + doc = "0xbrs7qpbs5314j79nzcv408ghhayqxj2n0nfify6isxh85r1ks5"; + }; + substr-16117 = { + run = "1qialx52sccay00z85z001xsm62ajvbfxqxc9ps0bpmjkcvvgad4"; + doc = "0zfcggj17bf26dxihkmqwn80pdir4n216x0nhkb3v17q889q903n"; + }; + subsupscripts-16080 = { + run = "14v5a89iwm2ykjsm3jxgbqsm5nba444yh8mzqf23s23z7fmcmsqb"; + doc = "10swcywyb0jdsjhm0cybvmyc9g2ksxq60bqaqnp23kfxp39g9rq2"; + }; + subtext-51273 = { + run = "030f7sq37qjn99l1z6nx7qbivhczpzhjm7drxhhhsssw4n3mci7k"; + doc = "1m6zyy09a3193w0p91y8g66n8bnm80awzg2g8l195n4p41l8vnkw"; + }; + sudoku-67189 = { + run = "1nyh5rv8fgs0lgmsjgkfx24s3lh8pph6jcp7dx8nb8q2ij8ia4pi"; + doc = "0hdvzb1vcrlbis4xsgzdnbidapqp7kdaqdskdha5szjw53xz77ys"; + source = "1rwwqpqvmwvq26ycj2glk0k4m1vlbjrxjp0l20qnh5vad98a1x7p"; + }; + sudokubundle-15878 = { + run = "18y4x1g050ircqh3nd95m45scb8zgjzi03cj3n7whn207dvapsdw"; + doc = "17mdxysiwjp3ii1qhknrxw07dcds57qbm986583xh69bhq08c4sr"; + source = "17g96rhis66gvgbm1857ck4ri8nz3isdlqshfx9rdbpgs8x58i0h"; + }; + suftesi-68204 = { + run = "12cis5ynr5ddhqis0i5501sbxznpcv7i4rh172c7jm5dww2vank8"; + doc = "1bmnzdnmzn4j3fpbfax4m9xd8gpk2vd1xqf5z3ypza46vh7nggxw"; + source = "1x001l06wnfkky2vng3vpkj0cwv0z9f29h09jpf4yc5i1nn2s9rh"; + }; + sugconf-58752 = { + run = "1x2nrvqnl65jk3amclgwrk2x1dscncxajdf074a2d410w1vikrck"; + doc = "16w8nfyixsr7l2dn1lbwcscbs6m4mczql9gmg9wi16nr8d7pm8si"; + }; + superiors-69387 = { + run = "1kj12xhd0psdz08mx7k2kz2maaaam29s3lway19gcawr156jp60m"; + doc = "0vg6sk9ad181y4g53shj1j0mdrcqny4hjdfv3kdn5csm7h5kqq72"; + }; + supertabular-53658 = { + run = "10r18kzg7p8s2wp1nydvn5f5vfbailcypqb7hkhxyjzpkdfrp12w"; + doc = "0cw3vfh4mxd39n2w1yk0nxjq67pb8s0kzv6syr2s4x3p3nrml822"; + source = "06r03i93j8rxw6ddiwmshb88q3h1dc3srlh4djwwycjbgp66xx87"; + }; + suppose-59281 = { + run = "1157v4laxbdllf5vqlnsf4cyk535xdq968q33gla769r1vv4yyhx"; + doc = "1cigx59dypmjyv11lbf9fyfh4krl9gyp8jiwirhb9hrr9jzy7263"; + }; + susy-19440 = { + run = "06q7nw6bh9dkknj1jzvy1wljh9vn49z7mbhr5d0ydv10mp9y9zlv"; + doc = "0dsr3yd5v6i240f7fgpbdlp0dig4dl0376ssd7nbg86scl63k9iy"; + }; + svg-57010 = { + run = "0h7ciy6qc3awr2317npp2xi958s4rz8kfr137s2rwpabmkriypsg"; + doc = "0c2ibjsnjffp6rr4fk6b74j1vm6vfi0awvhbpz4yc5cvgjw733nc"; + source = "1dh1857r254hiyi0sjdm3271h26wah74b67fvhmkwwr0wxz7w7vr"; + }; + svg-inkscape-32199 = { + doc = "1gw3jp7wph0ys6372z2rgjwlpmmawdax7xpgrp4hzg5hxz748pn5"; + }; + svgcolor-15878 = { + run = "1jjsjh5qsra0pi57k4430j5fcjdsdb9gwrzgf9bhkfrwr1gfsmvs"; + doc = "12q998m0irshvh46ndv4zzpxamg6jwaxx8c054av5zgpvb9g5x1d"; + }; + svn-15878 = { + run = "1yvgad3kgly04sm9cwjmp1g1sbnsa8rqqb6wvsip285x9kc6lfjz"; + doc = "06qfqmcdgdaf9ghlpc2x8w43w2f0sbaylyzcwyb3krw1d8p0zixl"; + source = "1f37y92ikznxblq6nyy2nkhl88d818z6wbkf901cpw8sjf79a35j"; + }; + svn-multi-64967 = { + run = "1c1gq7li7p3m16xv5ad3s08k5wvzjij72yl8gdpjxlc8z3hxxarw"; + doc = "1fwagcrmfhz8qwajrpj3bh4r64hm1637kxsqrwfxjnxfrk95v9d9"; + source = "1799jhirlv8gvnnfdh4mwsclcsrr8919wl7wn8y88xwdamiib282"; + }; + svn-prov-64967 = { + run = "0r4s76i89wh1fjrmf9imf6y2sf96xznznyjfcivi3sp8dvf5ln5v"; + doc = "1al7qiwd5ajjpvs2f90p7frlkd389p1ama019yl0nnxc1l45m067"; + source = "0cg7qwgv20jvvw6bibkskj3p8jc5l2mhgzwq6x0wzy1ds7x1f6b7"; + }; + svninfo-62157 = { + run = "1npqdiwj6lnwgfnzb4iiyjl6bl55pjc8mml3gyrvd36j2f6cl1z2"; + doc = "0728psfyzblwp3nciax4hncbf7sw4ww4rmrlz4jyrpmnv80qjp37"; + source = "18rcrh0kkqfz1k84my8adn2a8y7ppjprcy77pfqayix4lyzw6syn"; + }; + svrsymbols-50019 = { + run = "00wr6lyncnpvw806ff8s49w239sqpc8c5zg1776qyhjcpypkfgym"; + doc = "03jdqja9hm58w65vp6mf2q4dd2i1n6gq7yr9p2qrzjm33dxycjx8"; + source = "1dsw2z368hj4sixfy733r19yvnx0mi2qzff8647i6faj70lrj6ry"; + }; + swebib-15878 = { + run = "1y5rrhrhcvjzz17lsl2y9h5qz0zl9gn34xwwprnns7503d1d2nfy"; + doc = "1w3fl5qg5hng8gsnykb9q86ddz48jdbyghizf5x31rjwiim53q6l"; + }; + swfigure-63255 = { + run = "1i21rks6l9vb71hxv5ysn2q9qdz7hy8h8ljjxia64qsxjd4p5k7r"; + doc = "14d47ga8bacw373w7myvrw92rs5jbpzdqcsbm834bv26av4vqyfn"; + source = "1fbqwdasg56sbhs6hlw95x7zw6annykddc6cc7scm8267z83r1jg"; + }; + swimgraf-25446 = { + run = "065y4xxg85kdcv3gwp4xiqd1xdxjkng9xkdyvlk61zfjv5pks03r"; + doc = "17qxnzimwb828pby8mx2xlmjd2lnnpd60rdn45455x8zfxdll3s1"; + }; + swrule-54267 = { + run = "075mshpyi9gxbi3n0hbh3ygidzw1daxy697lhc7cc99i39y8scpi"; + }; + swungdash-64204 = { + run = "1mr1x0g86qdh5nw39b56da3pyw7p4cq1x783rcqqw2rmvszp6zqd"; + doc = "0g11z4zjm10yfpbs5876xsxh2xhlid6c45r5bzn58h2zn1d7fnmi"; + }; + syllogism-15878 = { + run = "01x5kjyfm5ksqig5h2b8sgmn05ws0a65idv1xh5l709yp2i35120"; + doc = "1zqljwv03f755lzc9fhps5xh2dy6r0jdsvp6a21ka11kqq696vjw"; + }; + symbats3-63833 = { + run = "1rkc00q12f8ysw3vcn15hk626wzmy5j6gisvyzss924482pp54dv"; + doc = "1cs9vdddpv7ymgicx005r50ilwjharqvszykf35lram9d2n7f40v"; + }; + symbol-61719 = { + run = "1pdkpr86bhia5hcmf7q3nhvklnsga4mqqrrirgl8a7al7x6q3ivs"; + }; + sympycalc-67087 = { + run = "0nr281r9f5d68kqsg2psvhdzgy24sdghyd9h395q666mp05z787f"; + doc = "1ik7h5bwvnbv8zqq4pppprqwkrb2fjd68l5fhj10yznx38hh5x47"; + }; + sympytexpackage-57090 = { + run = "0d77xd1xl9wc6qbd335kvhq8gbvvqzgqxblhcmyd5khhg3azk6sk"; + doc = "1y743lffzk65wl5nwi490wnmf4xaxcnkpicmhadcvjcadvhrnlxn"; + source = "0q3cl06b2mcpn5an1m7c68c4c0swmgacj3afqb38984dcvap5abv"; + }; + synctex-66203 = { + doc = "1a2nlmbib8723jjhf6xxh5rpmnd5jv3cd69br4ihchbq5ipzircp"; + }; + synproof-15878 = { + run = "01bx52ckyg4abigyzfcxi83jqdkczvsj9b80rznqz8vm9yrbv951"; + doc = "1kvd3vvj6yx1bfqbi858qglc31dx03ish49q0lai0mp1814n6fqh"; + }; + syntax-15878 = { + run = "1gd38myk5lf5fxlx1j8cvjv6pcpcr15r0370ikxf7fczv8s4ab2l"; + doc = "0l6rkyidqvvhkrjxs8y316rssayihqimbyqwvmdzqpnfd16rdxpv"; + }; + syntaxdi-56685 = { + run = "11l8609xj9gz2zkd6b0ah41lgw4qhrvdjj47vwpzb4sb1sirsfgw"; + doc = "04hnwc8hc4z88wxrp81balza27xjj56ymv4wb8lvl7kg0087ldw2"; + }; + syntrace-15878 = { + run = "19vx1iz2zxv49znddhcsl7aw4i267fmxhxpszzg2i9z0klm9b3nq"; + doc = "1dzy8pazcp3lfc009g0n1h0a6q3v99ii43pza3m2gkjvbrb5sk00"; + source = "0hb5iklz2c7zqrl8zrhkn8k7dj1zgk5gvf4wpr7h32sa83ajqrdr"; + }; + synttree-16252 = { + run = "1n2n1q2pwx3fi0dhh3h5dj7s5wrz2r5zpx77fmxjk0c3d45c8wan"; + doc = "0rnghg1459nlliwbcy8r60rc9si3ya35c7sl5zqh67sfwla2ixps"; + source = "022b2sn42mfdnska1cvqjsafakah9a908rvyw0d326d7lxx8wrx3"; + }; + systeme-66655 = { + run = "0agy0h2zq8n6723w27psm3azigf2bsw4s80701xr0zz6kmlyrfg2"; + doc = "1xxycz86kxljxg1np3zd6jzwanvp3f67la1k267z3w39f5i63x1z"; + }; + t-angles-15878 = { + run = "1p1h0gz1k4lr7rmadhdgb7l3gp55w12m3p88hy9d4d0ryzld299q"; + doc = "1n01pg82p0yz0b7ph82k5ha7a9j0a4hc0489xq9pf4kbizh7ap4d"; + }; + t1utils-57972 = { + doc = "0hdk57179nn57wnmvr3jasjavkvmrn6ryph6jvjhsfqprn7bhf1y"; + }; + t2-47870 = { + run = "0s6zn41dp7vzilfyk92yy5mbb74lcrpnmhrwl9xcj1dbadi97nm6"; + doc = "0wfm1gy3dyhfv2xzjfsky2fvdhki5r2ndgvzliq2n0kvfxf1sgna"; + }; + tabbing-59715 = { + run = "19w1lnal4dw6aw6f27z7zf97f78s23z87s1d3hx845mm3j77xyhq"; + doc = "1fl0schhxy4njd70dssi0bprd2p3hzpq4m5v9zmm0mbi4jlh653d"; + source = "0d50zs145vd9rjqv0mljg50q1bb6j3hsixr9x3r6b2yf39jjyraz"; + }; + tabfigures-25202 = { + run = "0fgdwqd2qqqg8k077p6cjdv2ag5z0953jh0d69gjxfn0bc11yyjq"; + doc = "1j1klsqcig3gdb4jvcqvm4kzb5zj3fm0mkliflkgm7sla99zw564"; + source = "1zkisnxdfdvx7gwgqjddp27sgj3a2qy6mc9vzfx75qf4c6y3q7za"; + }; + table-fct-41849 = { + run = "1kpmd1qynxq29aanvaanq35ihiv0d55k6wamxdz3lssicrn3f2vr"; + doc = "06jr9wmjppzd9m0d8hgmchnf78k8r7cxiqlyf3i6apdhjf6hcxiz"; + }; + tableaux-42413 = { + run = "09pi8sm17m1v4h362al448ayhj1h5n0krdaa7zsys00l0w55qm3h"; + doc = "06173sm4yx2a3mfadax16nqj6ggn6yak85l63jiaqdczwyb09kxi"; + }; + tablefootnote-32804 = { + run = "0i1mj9bq2hj4d7y7za2zj64p5dfdvsfi51147as5kfb6ci90rc56"; + doc = "071xk16ck9r0jip847ikb2qjyv3ghf1m73w4s619zilvm752c0ak"; + source = "14vrh8c322skk3rpjpr03fgzbm03khmhf3ifh2fm72yb5cqgbbqr"; + }; + tableof-59837 = { + run = "1n9faa8pcnls7n1ghqywvzri484j37nwmhhday1wa0rzxqhs5vl1"; + doc = "1aa9frbqj6676w0v4s2n3h9nz922qsiafh7rxnmw83bmv93sdydz"; + source = "0as1hwba4vski9vby84j48s88ha76vl2h3yqvn6qkrzyh6cg7g3p"; + }; + tablists-15878 = { + run = "02sffbb22hirw8mdijf7scxbivipmqw828qzdbc49vaxq7ggmzib"; + doc = "1fwhps6a0j8r5zqcksdqw8gwa55rh2r2la3iz7wc451zk3ddbxpr"; + source = "1wpir71xwq7xhg41l6sigp55n93v94lashgi6lgr0g9ad8hh3y4j"; + }; + tablor-31855 = { + run = "15xinskbqjj1dmi1fpvb6slg8kk3g66dm70z9f7dx8bzb1v65zwz"; + doc = "0lmi8mn5k7b5i0n7bqhagjkkzs2niy9852r8r0vv2c8qfbpm4hpm"; + }; + tabls-17255 = { + run = "17bg083653km6v92hifll78vs0p9zwfnj5rbw1pcl2siizf3pfj6"; + doc = "1gnk4blwfikqshqjv4zd4cykp1k6k025h7vnbjrvia11l6kcnavn"; + }; + tablvar-69212 = { + run = "11xcbpdcl39r8lacnvqyd8j3qzbpzd6q15ivjwh9ndrznkxbpjpz"; + doc = "06gh6a1qsbgbncl13jybpprmdbyfddwyyfwz1m9fs5b6y5dr2sck"; + source = "09ixxr26sw9507my98p6dmnqgk0xw14h1gfbav6f02yxk3f6glp3"; + }; + tabriz-thesis-51729 = { + run = "1jrxxmd38369qrhg2a8w4j9m3ldp08wrblbpmc08f35zwlrackbs"; + doc = "1rzl7y6p7n46r7ljcycr4k40qxbih06bli90mdjwn96vn60m1jym"; + }; + tabstackengine-46848 = { + run = "0zd7gp1k40wg6b5aln30qxbk84ks3ys0d31vlw3wijvh31qbw6xz"; + doc = "1n26fdj1lxwwx1abslxl3vkcvhk6lbnbi0wqi5mhx2n6g6ir8b89"; + }; + tabto-generic-15878 = { + run = "0i65jflbnhqpqf1w7pkagicic1s39gcl319z7g9zr1g80f9532dv"; + }; + tabto-ltx-54080 = { + run = "1ayysa2dfm6q6wli0ldk45mfw9jvj79mdx5kcpiay69xjl96j89v"; + doc = "0rgk0znx33lk2gafzjbwwvl61xl4kw36h9f66kay0y91cy9ra9n8"; + }; + tabu-61719 = { + run = "1x22myjp1rpg0in3jgjj4wy0xyva8xd5hsy5c1rqqpy67wy83k0a"; + doc = "076ivdvaac2snb4dgkf4hzpnbjqli28hll6s4r6z609c5v34mf1j"; + source = "1pb4kibjcmwn8snfhcm49jjp38i979dac06p471w9bjnsp0khs85"; + }; + tabularborder-17885 = { + run = "1p7iwpalamif71mrznbmsig5g9lxs3l16dcpwj2kzhiixsh78vfv"; + doc = "0rd6k4b00aj398hy247x84jj9c3d0dm00xnaw69p7wvlprzricwc"; + source = "1lrvp6128j70fzwqr61nnwiivgllbbkw7pd53l11sqzqwzxppgi5"; + }; + tabularcalc-15878 = { + run = "057720z8l7ss0kpkg7l16fc2v82xr0wqlxzxbcak5m3hl5k03g7a"; + doc = "0539rar83mprammyilmclcbjxr657z6q2xmmwmlik990imf78lqc"; + }; + tabularew-15878 = { + run = "0g9pbr0vhhjj2lz9bbgwvm49wl8bdwvv1jjggq2dnwwqbr4vc4p8"; + doc = "1ff62dxvnhi4q1gy8f7qhc0zz1jiayl6f8j96dp0rz38l2is7m86"; + source = "0sfpx5w61xrmmgip0c746mghhj06r2mn2jmj56zingymm2djiad1"; + }; + tabularray-69926 = { + run = "1mh0f8klal4i4wcj2gq4zg7kfq61q3hhnd6myw1wfm4ig5gmx4sd"; + doc = "1xz171qjrsb4dld25haa8l8phxv9rxfjplr8gbdi2ypch8v86g58"; + }; + tabulary-34368 = { + run = "0z57030pg4pfvghjii8bgqba589cabnj8qsr9w1abpwp3pfy4zbs"; + doc = "08r21q2h7sjrk875x84lngcqgiy5ijik56ly7g7wyzhq3jyxds0f"; + source = "0lsdypidawyhzj73c3yjs8k4xy2sds7gz8gazxfy460zndsz675m"; + }; + tabvar-63921 = { + run = "09pbsqa0a492j6ijvi25zdv4ic69wc8ngdxll2gr7wgh6m9hsrq8"; + doc = "0iv8w8jvq05f6a1z7n29c9cldk499fd9igryv3c93g6bgq2hkzks"; + source = "0bw2a9rgij2xvz3lhz6gya4vfsjn41cn7mg9mkg728q4vbhg19ms"; + }; + tagging-52064 = { + run = "0sws4x1h52cd313apfzydqpj6c8xrb8x5881cfhwir000n48crb6"; + doc = "1pv7savkzm6jhaliw5ilb7qmhlj3iyiz2w6kxchanwrg4pnqabx7"; + }; + tagpair-42138 = { + run = "08qjcwyjs90sg8agmpmm3122h20898hy6dwkm0lk3dba1j3w5drj"; + doc = "1dkn4gq6zxfqw9h64h7ggkbyrk9vzyax8gmnk9qk8dccdvf5n2sv"; + }; + tagpdf-70259 = { + run = "1zf0py07f5zi85k9i5l2ac6j5igqzg304byvskcvx5qsmnz0xrjy"; + doc = "0j0yvyp7djxiscq9x1kvlapgw399lcq17c45r3rpqy9xna2x3rxf"; + source = "0xr5jjr7r650fvf4rahibr83h0ylnnmx04gpjq8z3xwk312cpqz8"; + }; + talk-42428 = { + run = "0i9whk49bahsm2kbj53pjdh3fpg1ixfyxmfvcp563ylr8j2ibimb"; + doc = "0rgil00i39p2agz9fybg0h3xmpq0wxcpjcqpbpzjw5lcf4mpcni5"; + source = "0kdrknwwivyxiyn8xqappf3k5l1brkwkkhjqa0l5n0abzafkjcy9"; + }; + talos-61820 = { + run = "0pffvqdkhmc0adl7g1sfckgwwjsfgbnf03jfry3yfq6za6mk05d0"; + doc = "1narnqgf3221fpf66w2vlw95cr17swbap35lvb7dzviyad0ailcf"; + }; + tamefloats-27345 = { + run = "0mhiz5lxz0szi8ygmajjmldz1bjf6f1lpyxj3b9zb17h9aw8gr4x"; + doc = "0s5cy9m8jpxh81c10fgdvn8wy7pnv7sa25hy8wbv6qkr1qwz8dss"; + }; + tamethebeast-15878 = { + doc = "13shw7hcimckn7pp8pj0cr1zsi1wq6r400x1v6akpmwwjxkw09g5"; + }; + tangocolors-66733 = { + run = "1i0a42sdqgm7sraxaq246fk1w8ql4hn00y2r1rndyd9v3828x8yq"; + doc = "16x99xbhwnibsbw364kb9yxzfcws3d65n0sdj2wflz2v7qbyk986"; + source = "03kpykm57favngm16669ylkh7jh1q92c2zhb9sx1qy1wd5li7ix2"; + }; + tangramtikz-66183 = { + run = "1c9in9zdw7ixanhj7kgrdsrv6iwvjy02b12lgq0k3wwllnaakv24"; + doc = "15979bzhc22d2pzc8v8ml9220b0sqz4f2nh0nkxibm8hg9pq3prr"; + }; + tap-31731 = { + run = "1ci65i2k6n0h9lklgk41sdq4acp5655mps77j9gcb65yk4mdl6c5"; + doc = "0r8y4jzri83qypvnmgchnhrd0yi7j0k753zmnwhzxqg4bvki10gp"; + }; + tapir-20484 = { + run = "0ad1qkbvvswq7msx9889sz8n7wf8iszigd0vmk2yycykbf0axzii"; + doc = "1m5g6bsijqris8r7z2dw3cj74ajcny2wjysq8ql26531z61hj9ss"; + }; + tasks-61541 = { + run = "1gwl8g4a2x3sbvqg91ry577hmpxdc4dgcj9ixhsla25h23jl414b"; + doc = "1pavbpzm6z6najh72z52j089mdg6gqzsa8sb9qyfsql7mndnxznz"; + }; + tblr-extras-69776 = { + run = "0b7vfyzbgzgq961grf1gklpi5jdl24nzmnccvhryjg7jqm8pyyiq"; + doc = "12gzcs7scxb3dg86nq38an5h86hhv9k5bbv65ixp5kkxl7rbjdn7"; + }; + tcldoc-22018 = { + run = "0gz5v5hi7r6wr8qas79lakwr7gnf8d5kypf7cp62qvrybp0ljgqs"; + doc = "1vy7k0f6ri4kbjrhby0napsas9wwlq5by2q1dakbz7r80zr7dc3k"; + source = "150p69vd9465icda6p0wp37gg9vl8y3c2ys3b8f9ij9a88x5775j"; + }; + tcolorbox-69370 = { + run = "16k26jwbhk466h8a09syzskljyg0x2h5fm5f6fmy65bcjgc8ai51"; + doc = "0dal9wv4aryz1l20hbbg6njgy534540vqmyd2q9366a9ydgx1km1"; + }; + tdclock-33043 = { + run = "05w49l1kvs73sxchbwrlfs9n6mn7qshx102gkjk4jslhnw9lc48z"; + doc = "1n0ir0l10p9fai1cssri11bpzpjabpsrpfji6w826l8i3xlqkdkg"; + }; + tds-64477 = { + doc = "04lhavbayyisxxqfm1vpfq38xx1xwkn136hdnjaa3szky2xyn3yh"; + }; + tdsfrmath-15878 = { + run = "18qqjmdh4hgzar37imn811i7nbk93zx5w7f7agwnzbxgy1kx2plb"; + doc = "1vvbsq5aql1f5q0q6v5z1xm16bmb20w2jnn0d0rc64dw4dxnwpxw"; + source = "03r9f335gb31zb2frpv6hk50c01sz6rwlqw9vdxf4ch2np90fd9z"; + }; + technics-29349 = { + run = "1fr932788zvxhvkvmq4m9kzc834w4xzdjq4p80kda3fsk7a7iv2v"; + doc = "172pqpm2i2wfv3qgvz9hvg8wqz8q7kqy5afmms4xvxhrd0xyaf2l"; + }; + technion-thesis-template-49889 = { + run = "1w004bdgaag02kqhsdksw7qy93lyjihhlbxiccavp7m2aj1h9xly"; + doc = "1fa280wcainx6z15w199fbvzn8ya3zplgfw41mmvp8cv3y2njnq6"; + }; + ted-15878 = { + run = "0m9dv66nl6q4kq8jq08ayx4hrkh9r2i7hmr290s5d7bkyicdkgpw"; + doc = "08yjlfrblhralk4b9ji4g47cr9r1zj8dp6sjha0169395wn4820l"; + source = "1cifrswbfk6714m63kvmrsyvz3q29wd1bgl48f5d9ay7pz07wjyq"; + }; + templates-fenn-15878 = { + doc = "1s91swqsysva49cjrb9khgik5mvhxcb3wr2wz4l2683gdgxlbgkf"; + }; + templates-sommer-15878 = { + doc = "0z75xhawsmcxv4f24cqcvfi0r22gavjpg4si6nwrgc8sg82x24m6"; + }; + templatetools-67201 = { + run = "1hbpn6aqp5zq2dm8dd2cm0zmnib6rasrn8a8rpjphvhfkr1ydmck"; + doc = "0irpqbcf51dx4rcsa0y3r4x00y7p0fanspyhia6vhk2wsipbgk0x"; + source = "0z1nm6jp8za0dlrj8s7zfcy099c7zr6lsxa48v7gppabh7i96gqq"; + }; + tempora-39596 = { + run = "025smp68d941hqdxqsd4qpaxvk4z8ybg14xwc47i36k04244rarh"; + doc = "14k350dyiqjcfg5fx09i2i9cqsdw4mh1qcrv8cglf1gf2d0b3jl8"; + }; + tengwarscript-34594 = { + run = "0v6mpqkyp7fr1nb5myjs4alz8f7y56rnd1vlsgvp0m2shvnvhy2f"; + doc = "0225gpdqbbmcpgxmpjcj2blbpzxcnr7vmm38jkkpyan3gfw52n2w"; + source = "0jzzn01c5gwkc8n6naaddm793sm8vs67vsjd30lj4ls7djpnixkc"; + }; + tensind-51481 = { + run = "05vgqn5wcynyp8gy80icnkrdrgb0wsr3h0db033yx4yk3c8lhwaf"; + doc = "1vns4k813ffccps5vrrpfmb7rm4fmfs8zgs7cnw2hqg08dmzijfn"; + }; + tensor-67667 = { + run = "0712frfli31jnxndk2fac6fln2538pmb7k16jlvskkifgzwrsf99"; + doc = "0cgwilixdvg1ak90m1bv50rvzhlyd17d3h28mw5bj1myqxr8ybbj"; + source = "1g03dgvnj7j8n7z482fyxpa40daj6rllvz4vnli78i8kyp2b3m3v"; + }; + termcal-22514 = { + run = "1sxzpnrgc7f325w0ww0b92y8ih6jrzpvgp6b5ilvcpyriym89j8d"; + doc = "0nv2s95n2h67j4zd5i2iiz5ygkc1s0xp5wjnnvbb27cxqw1h4sic"; + source = "078bs0l7615z66h5fr1fcd1ydyjbc3lddl1z7j80dngnx5j0vf28"; + }; + termcal-de-47111 = { + run = "13a79lp2lp0r1r1j5nc94adbir463rhprdlc9p6rk3qa7lh445pf"; + doc = "0krnv111d82razivjks8ip9m6z1bllqhx47yzjw6b5af9ps1k6a5"; + source = "0nn9vgxv5awzqx1zndl7zvgd5nhllw7kp8zj7snd1nqvz3wgc5n6"; + }; + termes-otf-64733 = { + run = "0vwm8qrbp9r3bbz2a5sbkkpmkmhb4zh4hbxd37hngx1pd576lasj"; + doc = "0pxck3jbnw7wk7j0p18as2i7cffwj2bf4zjx258dqxg2yjg82i7y"; + }; + termlist-18923 = { + run = "00dw7p9623kxpsvqs1yqk6n95hfl0b166l09djibybxx43fbk6dw"; + doc = "05rbr62rvl0shhdxvscsgqci6b6n60pfzbsmikan6v2bh31d8mbn"; + source = "0dl6bl28wvg9fcdlfqhchcxg98s3d668pm0sp7rmxzz97nf4fi9k"; + }; + termmenu-37700 = { + run = "0rw7a9ydsckjv6lc8q8yc5c4lq45bwczy98c6g6mzdcdl2dnhh81"; + doc = "1r4901slsjhg0kzcy07qkm730g1bax1p2410mhh9ly8cix0hcxr4"; + source = "0fvv10j1s49swvif5prjiqvk699l82js29n09scv0x1ixcy40h14"; + }; + termsim-61414 = { + run = "1b263hwbplgxw8ca03dx11vp3ar4dh1avf5r1r02qa8b1zax4b20"; + doc = "0qzqwdc7wiwir2lzrsig76v0j8766hszzsh2y51bk2b7vns4psgm"; + source = "0jidnimy5imwzcz0wl45v2p0wpi0xijqzsy94j517q00sgpnz0pp"; + }; + testhyphens-38928 = { + run = "1sqq2rf8amsn6zdp8l1vg5v5jxcn7ipp78qbzzkikiamlxv89nkv"; + doc = "1nzimg7bz6h9dm7hb9r9fzs130dw5y7cjzmb4rc5dp5a5xhiliv5"; + source = "0s92imbkb4p70fd629bbg2cma72ys853qby1nwk6rvdw8gp47pgg"; + }; + testidx-60966 = { + run = "02zkg2kffwh95nxn602ara915jihj59af4hrgv6cb6916m9fv0r1"; + doc = "1pz2p3fdzdv4n1dabh81yl3b3iaywmbjvgxi6zklli6jbbx5h708"; + source = "0h88x6mmid6nmhl4pw9p4p9nlh90p86g1k44a6bbcyzdlxc8n6ac"; + }; + tetragonos-49732 = { + run = "0l8b3kjk0jk70mmmv37zrdb16id6yrjvgsgsmji7pzdqiixy7jh5"; + doc = "1g2zcx3b1pfc9dh76p5iprdgsxp0yndp7rn5ksbq4s9k4m7ikpzp"; + }; + teubner-68074 = { + run = "06xxypkdzmxs0m6bl99p9hggic3zaxqgfxg8ljq2wad0k7mwn0i6"; + doc = "05vj8877g8ndya6p2kvhipxa61504sa6p80j1zwjdr732n7bg218"; + source = "1nqs8cxfi1rgiab8kvzdi9fcwbpgaw51fjy1kzzpszydf6qxgqjg"; + }; + tex-66186 = { + doc = "1n4jybv4qghg74anpj7n7kj4l908f476q597vyvvq59fd9k5m7mm"; + }; + tex-ewd-15878 = { + run = "1pmf17bxw6i4a9pfi32fjk0hd3p44kw2scwmr7p38320r6dv7srk"; + doc = "0ss7nljpn8k3cz3av5qanc966q90v3qj9qy0akmdzbiy7q8ml7na"; + }; + tex-font-errors-cheatsheet-18314 = { + doc = "0pfd5qphmizhxb2p4gg6809xcx1rlfkwqa6vs4f74457chcwljwn"; + }; + tex-gyre-68624 = { + run = "08578kyph2grc2ca9bdg6271iqpjyjg1qcrivfk5r27sq5c8cwf0"; + doc = "115gb3afrys7ww3p29lm9bkwvkqk9gjdfcj457yazbk53ah2yff8"; + source = "0f9gzhlawkpn4cg284n2sad05aary5pwyczi1qdgnvk9v8sbjax3"; + }; + tex-gyre-math-41264 = { + run = "0vqg04im4s6k1sjfclrn855liilgayh5kca774aicifzjgsigs1d"; + doc = "0s6s2bs6q2ar4y53fyckz104y8rbvz3msjvyb4sv2p4j6x0kwz4g"; + source = "0vl9ggi62bn1cpnjmqanx62b6an5294375jg68gskg8fwi8j6gir"; + }; + tex-ini-files-68920 = { + run = "1dzfn0v8v8pdg6lmgfs0q2c0695zndkf4rpl6dckn51gp2i1bgl5"; + doc = "1l1yizfq9srfjxirdwb3hvlj31a72mnw4spwyjk58xwcsjxx3y00"; + }; + tex-label-16372 = { + run = "0flvmmh0lzkwvwksmnb8m4ix6pzw6f18flybkgidkyf9mf0gg8xc"; + doc = "1ppvdq0cj62zk3b0i76lc35r9pizzli7mm4j2zvdabysn0prlyyb"; + source = "0ysjsk73ksninqk2dyrw06arl692x66rsrr8vb4l2ri3m0lyivlf"; + }; + tex-locale-48500 = { + run = "05l4frsxpdmsrbn50q87db878bwpi076wagj5r8kdnmdwmcanr6l"; + doc = "0j9m67n83f4h5yhfh3a51s9yhqh6kpjz8y5vlxhyabyf7rcpybd3"; + source = "1x0wmqsrbgdgy67gln4jd0518cbd2cxp36gqrjrqgn574qsl5cx9"; + }; + tex-nutshell-70378 = { + doc = "01nmw2lj7dvylfypgyr7lsw1i2b4vlmhd56jyy1grv8hx1rfl0yh"; + }; + tex-overview-41403 = { + doc = "1agfya9rwvyjvip0alvibimz75jivpf19hp4jvlv7z0n9m26m9jd"; + }; + tex-ps-15878 = { + run = "0i35b4pp38d1l5rac059znlkazrcqa62qm8brhdmx7zzkbhyysi7"; + doc = "0kgf7y3nxkw8x42wpc1g5mmmbz28n73vgwd9d6rf6fjpzrycc2zx"; + }; + tex-refs-57349 = { + doc = "1w7hcd3qsdhmb2siakjg2hm3h6kxa90ncsaif9spr4xkxs03ib6l"; + }; + tex-virtual-academy-pl-67718 = { + doc = "1kb86nn5vp1b0sy21aw9wlla1dwlaijppzq7728bmfs5nk1dnbjv"; + }; + tex-vpat-66758 = { + doc = "1y7f87prympxg8av128npsa43cri71jjl9gxq1p04pjlpdjjm0fv"; + }; + tex4ebook-70117 = { + run = "1c6bynhvlhil4a9kfqx1rwhh42rdcphi0jl8f6qj0k98xk5g6sjz"; + doc = "0q3la7n6jmry2aw9a5hpi00f40r0i235zgk90qyw66h8qd1pnsf4"; + }; + tex4ht-69739 = { + run = "1al3sj190rcijhkvmrizrac5wy67v3n3fwjkq6lhm64nfc8j255m"; + doc = "04z1bsgy3lisx7ifskxzna5jcbjkbwwjlqfwbfppnmjp5rwphxdv"; + source = "1hvbqk1q6b0qvqvwr5fbvcfh5fklyjgw1yl0nmgar3ysrzz443h1"; + }; + texaccents-64447 = { + run = "0xai85qn9isnrvijw9shhljlkcnvmygni18kw02gsmij0dp9c1jp"; + doc = "02185jla4hffra1wf3mgiaq8lyxh4gxgcjrb5dv3mkrw709iidcz"; + source = "1wqbdmfly54sb8q1y6ms2wg8n62w34xpbfvxvwmg5i4as4a1ycmy"; + }; + texapi-54080 = { + run = "09cnhqn4gxf0alkx0276jkpcsd0myypbn94jzsavnjq8jknp6850"; + doc = "0529cncxbw53km02pymj57iphgziri3d9cj54pqmjqjx9qmgwfmm"; + }; + texblend-68961 = { + run = "12lfkp9qykcvmrafwilyz2vj0yk0ghvkxmmnkhlac57q3hjy12k2"; + doc = "1sahpz1bh883crlr4qicgmx96ncij5zz1dqrm23q4qlg88yn8y3k"; + }; + texbytopic-68950 = { + doc = "0pnh1hsd6k434c8i1xdjq3ywrwylmryrsl86d6h7i1cnmzz4pwlx"; + }; + texcount-49013 = { + run = "1bi484kbrcfx3hyflr4f2w0plhz58p2206rz4r1wjllhhhwzc7pl"; + doc = "12a3j0sk7nysd3bd7mwnbifyrcvjjkfjy3b8f1caf6k0pf1mz8b0"; + }; + texdate-49362 = { + run = "06bqyfl1vnj4gadqsx94lj8cm1ia3w3bmlsfjwwfaad0al3ncxdp"; + doc = "0kks8hswbwhp8dpjdbwr4nm55md4wgabl5ypzpx5arj41x8halhl"; + source = "0mbcap5nfj5ap8gxn4pyv8w37hcfnq4bm5m6jx43cwkzf2hiwar5"; + }; + texdef-64967 = { + run = "0wi60appvgs0h5690h8qqvcmsq2r6fcxais2jqps92ryy41s2v68"; + doc = "124azfh1332lq18g40d291gczx2agh2b1cxq07ldmizi8pmvjaza"; + source = "0hanvqdj2dgpgl3wa6sz3qa542882h3mv9709spl8q2glmyip5b1"; + }; + texdiff-29752 = { + run = "1jjzd4grr3ip6gd8xmhlawhdcjfj1sqfsa06rxrpziklwirw6bq4"; + doc = "0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr"; + }; + texdimens-61070 = { + run = "0fny36zd88qkcz7k3hdxq2qr41dmk9j88skihls4vwf350fy8j98"; + doc = "1qls1hqs6ypmsg4rqa26dp98m6h7zq18wdg9n6g6895jrmj10qdz"; + }; + texdirflatten-55064 = { + run = "0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m"; + doc = "19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7"; + }; + texdoc-70583-tlpdb70616 = { + run = "1fjaccq12gsax9ka0bkisrbwnflf91lrjfkw7l0j46gwwy5cfabn"; + doc = "1xrh0kcwfflhbq206acljpcbla04pps01igdvqmzzfl6dyybgjgq"; + }; + texdoctk-62186 = { + run = "13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h"; + doc = "1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq"; + }; + texdraw-64477 = { + run = "14vg45kci5pffvwdqnnb0dv3fznfaay3rg0fjiwfill24ifms14s"; + doc = "0lw37yi82ir8zn2ii2x88f871843y2was3xwp7p06wjanr1jwc6h"; + }; + texfindpkg-67027 = { + run = "04igpv1y8gw945z4abb0wi959wq9y0xwzk7ymlr09qs8zcm0xv6q"; + doc = "0gddmzndg4cc69173ssp4ncz0mmcw575fffanmdxp7y5w7ggrxb7"; + source = "1vjbmin6jqv4k7qc0l8gd27z8gk6p87pw35rgqp0f3h0pf3r62b5"; + }; + texfot-68110 = { + run = "1yk59iwj4wylhagrlpasy5s8x24lvfab9xg8xz2hz8d3khai1qzd"; + doc = "0rqhyyp6da4fkdfqa1c81jaryy29mdgm2rzml2hklp1mkxkw7k19"; + }; + texilikechaps-28553 = { + run = "1z9nvv2y2nzpkpxyf18p426wcl0g6gbg7qppq70b285kdbczbijd"; + }; + texilikecover-15878 = { + run = "04bljvhvmrxh1a4sfqw57yysaw03c5ldi1bq63mlqqvd9p3hmyck"; + }; + texinfo-69818 = { + run = "1ds5vf98gzfqxafil4gsfqwyrxaha0cd1fx5mg76bw9y9xjzpzsl"; + }; + texlive-common-68510 = { + doc = "0l4yicbx7n787xczpg0lwsxlq2cavhswb0w469gc21va59lki3z5"; + }; + texlive-cz-62854 = { + doc = "0wkf0g47wj7yqngxmy5cvjic2gcgy31pry4810cgklljn7pqffxp"; + }; + texlive-de-67108 = { + doc = "13k76mqf535l8y0pk5vvzirnicxajnq5kpgywp2f35vks362a8pl"; + }; + texlive-en-67184 = { + doc = "17fqvsdnil7chg6a33sy7sxmdh23jyy944qznlfllbnzdpqc9cxx"; + }; + texlive-es-66059 = { + doc = "0crlg0madfm3gp54rh4jm0q1x1l7mvn3l82swhdxab3pl7zwmq34"; + }; + texlive-fr-66571 = { + doc = "1d48jxvrz3dxrbfzj5pygi2gd9bzjvrch8728pbc7fk7xbimkafx"; + }; + texlive-it-58653 = { + doc = "0vmwn6n8bxpzcfrzic5qg5k2vklbm6rhl9861zxsli0rd9396qn6"; + }; + texlive-ja-66482 = { + doc = "1sbv761vh7a25lpk1h4b2ar6w7cqjmafv1kbl8dwd47hnsjd7xk0"; + }; + texlive-msg-translations-69796 = { + tlpkg = "1v4s3zgxs1k0qsip474vv16vwcmqn5d99iw94jc5rf4cm6av2j81"; + }; + texlive-pl-66576 = { + doc = "1id4kngpwqs53zn3pqj0hp85yf6rvha17dyb4s0m8l66cj2rzyn0"; + }; + texlive-ru-58426 = { + doc = "0c77yyfj87fajran8jppj0x8krk6b5195iscpn8z2n94spz2fcc9"; + }; + texlive-scripts-70585 = { + run = "0mgdiqqw47ydvyj47s4mb3bg5drm1x6ax47dk7hdc3ykgs1vz911"; + doc = "12all49r6n1yc3jxpkc96gx17g5zfbimwfmb5d7s55vl1c88zmxp"; + tlpkg = "16gyyx868k5qa2ymiyvb2gf94wxpnswymfbn1jd6y6wngwqfr3wx"; + }; + texlive-scripts-extra-62517 = { + run = "193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj"; + doc = "1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl"; + }; + texlive-sr-54594 = { + doc = "0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj"; + }; + texlive-zh-cn-54490 = { + doc = "1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll"; + }; + "texlive.infra-69740.tlpdb70616" = { + run = "1kg4k7g1gq51yv9h93jgpdlckfw4qgrxq9xgv4cwzjrf5sj58awp"; + doc = "1w71146z54i79bhgz02m7z3gjg5zyrqhc1hmz9pvk5mynqpjwrji"; + tlpkg = "1azilfqqz4wq82yjx8aqah1fvgmksw1v3v9pgbya2gqgdnr5i1c5"; + }; + texliveonfly-55777 = { + run = "03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3"; + doc = "1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx"; + }; + texloganalyser-54526 = { + run = "0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r"; + doc = "1s7952n2brrz3s1qca9r5qk8fnjlmrmrn8b06dhjxdb7wdqis6g0"; + }; + texlogfilter-69919 = { + run = "0qyhmdvzly2y1xbgmi8i9fl50djv3apqmc2wiqgh5q8cn44z3gnb"; + doc = "0khv1pcz0h75inldnmg91qx0pxmkfcz9dbdxljrvmw5b8ql8nv6v"; + }; + texlogos-19083 = { + run = "0rp4l8da3dn6djdjajavxqr5mmi3fsyadcqrpmd9cfggdvb9i8qz"; + }; + texlogsieve-69436 = { + run = "0sn9p9l89867mvwc5n9z4i3rxybm3dy5xws47q99563j1hvc1bnk"; + doc = "0a87y350dxx22ll41i7y7wsdgabvdf0f6pgs08vr583jhzd6ks7r"; + }; + texmate-15878 = { + run = "06hnwj11ify60gx92zqky28spdhppgai5v08l73kiabrryzdn8w5"; + doc = "13d6rlazx3qx9zwbb60z1f6dk64n6rph610s97hha5kpc0v2vkm9"; + source = "0faabcm8lyfvzn5jb7vbpkpa31gjb1czkr0g391vbdmx9lrllxar"; + }; + texments-15878 = { + run = "0vhwraxncqx74akzmjcww4akisn3zjgi5b6ac8c350flhl0nsh5p"; + doc = "0xn17gjnb7n3ryc28p8vg2hshcwa660482pzm9byq8k6s3a78yny"; + source = "1kq5zw31sv0i87h30ahyasqy1qh4m36f0j37f8532s20n5llcq0z"; + }; + texnegar-57692 = { + run = "0qrnysss751vsbgd794gwh8lwrq6gq09p55qkkfngc5ly29icx9c"; + doc = "0jidhqlklr8yd48san5iyy3i5pxg8lygf4xi0gcp3ps7xcb0m5g1"; + source = "1bayaa5vffnkmvdmg64q5rsnh69grr8qirwd41mlfi9symh9gm2j"; + }; + texonly-50985 = { + doc = "0h40f8hj03ha0ilpj2fx5kzzvdv0yplmr4528s2rmmy62l9kgdkd"; + }; + texosquery-53676 = { + run = "0jszy2f076hrc29kk8qcr9616hyk2cvys3kg2qfhvblxf07ziw62"; + doc = "11rz21m720pp97vb457pxaq5yxf3j4v8vfcd77w0bjpc632lh1xx"; + source = "1q7spgr1xk2lnx2xqksjh979n7r2v1n1441fkrc479zyi69ncn33"; + }; + texplate-67201 = { + run = "0bh1yhs28wzagh7i3sraki8ygd1kikcmalqvksilmb7j4s5c0hhl"; + doc = "0zvrsllhb8fkk1wzg9mylnjyvb7pjl5wvd3m899j7w9cp5zl5yvp"; + source = "02wc2aiqcrrgc514pn1m7yn1b5k6vg1p8d92kk99pkiz46vxnfj8"; + }; + texpower-29349 = { + run = "1w1yn4is019rjnj137ckmkas48xblmhpn0gvp8dac2hmsvqfl06f"; + doc = "16j3xy98k9hb3p7bg9inzqmsl07csa6lx1lgym4h6rcjh247llqn"; + source = "0nkbapkzq4knxhs63fiqg0rcxyp72vmd35jz46dha87s2v5w2km5"; + }; + texproposal-43151 = { + doc = "1yxb3yagljsdp4s07fzd6498889i7cscch68fb77jbfc2z4srvsy"; + }; + texshade-69371 = { + run = "0d5panq1z0fpi7rvwp9p2pahd7vlb3skgsw9zq4rhb9pirawv3v7"; + doc = "0bvxfpc2v8hph04kn8a8rf5995awp8c3zc5r3ddnghcidn83xsny"; + source = "0ib9fs5391pjxh8p0c6bzvxmgv03y73qgdpjdzyadbhkqj4kkdxw"; + }; + texsis-69742 = { + run = "08sn35x8wab41mdv67ra3hahrsf4v4brp9n5z0l4bk3k27rl4q0m"; + doc = "1bgngwqj3kkr196sp8i59yrkqpambijr4a54jfrgxb6595hiadsj"; + }; + texsurgery-59885 = { + run = "1f2m8b4xjq38j6q86pfa4m8f7z4sqyfblxpkkljppiz66cq9gnpy"; + doc = "1zpilg11flz7z6pk7zhpm5ck39avh24na2jpl4asnnznaf5bzfjz"; + }; + textcase-67755 = { + run = "0rkhw4rai08n52ak4acix224cwj9fzpl1m4qcxzql9cq0h51rn2f"; + doc = "0hw7q77pn8nx80qqvfz333sn1dpx4srf5xsv8vpl6q1akhrk5f84"; + source = "1bxkagbkl6pnlnf9ibs0ics3p5nm9dghyfq97bn32fv38jywlswl"; + }; + textcsc-67193 = { + run = "1zx7890vdwghxl7g9rm9fcj0v4h06sdbhsscwyp7wjmf35k6awm6"; + doc = "04gh3w1a7pnw1zja7gg01xda0f15s1918v5m289ax22j4x9g472a"; + }; + textfit-20591 = { + run = "0vmffs1a9zspg3hcnd7p0mffa0cw4nnbx8s4vari3n8npmdxrf26"; + doc = "0dcb63v0yhlhvjmcbsfnw3px6qizmq95rq67i64dgks85d4dhi6m"; + source = "1h2yql1gy6hvwv0rirm9v996j3clrywsg9dzgnvrkrvnkf1b6dqi"; + }; + textglos-30788 = { + run = "08932gszahdc5q6pckg9q8bdxs39gacjw9cljjlvghs8vn7jjwjj"; + doc = "1c88my4j07b7ihn07bcii9xxckdv04g3c6jycm0ffhjffw4p7609"; + source = "19hc7lalmbr85pbz3pd3dm696fsbdl7y8v9g1c4l2k7b0i5mc8zf"; + }; + textgreek-44192 = { + run = "0r7jcv38749xndr6sigy8zw96kwqw63k4m33c09hikawf2728jzd"; + doc = "12pwr5b8269hrwgpr9g4chw273wv81cfa52wvp3nhkd2cvbhfcp4"; + source = "0wq69l55462snrkpbpnlg03mrn2yxvibw38lkplgfc65gzaa07sw"; + }; + textmerg-20677 = { + run = "1bwlcaggagg811sbsi2wrfsz31rd6x92m47aszikmkzfzx4ina7k"; + doc = "00p7r1y0npb8xfq1mcw5apccb6xznww3ya8q0qgg5irqyxs7d9fc"; + source = "1972gkv933fmy32ys96qg6p1yp7551mc4cilvnaasnrwyr776f8p"; + }; + textopo-23796 = { + run = "10g5i5mg9898q091w9svm7gk4hgd6dja3dwy5dwc7s78pv0qcd68"; + doc = "0r94ivbqmvs9lyw1ipwzcb4f0v9npvyfll7r8c9g627ikk9fmpa4"; + source = "19p7sgz34dkvjqkld38x8li539kx140w1nj9l3ai5chilxz4lvy1"; + }; + textpath-15878 = { + run = "12f8qn2ncw0drx5r48ddb0xcc6fdm7jpmv5i1n0ihfcqaqa1l8xb"; + doc = "0qhyflskr978qp01apai5r3qjhsj5q4mrvwck60jr79yasxa109k"; + }; + textpos-63967 = { + run = "1mhbsyil3ldw4xq40739pm7995d7fcv050ra4xjnaqdf93cqr2gm"; + doc = "06ya6i8qkp823pnh1jzq30wi3pnww00jw48lbk6rzvxzyhwxrzdh"; + source = "0vhyr1ljhi5dxyj90zhpr8x7h8rjn84pddaa09al69awlgkihclf"; + }; + textualicomma-67201 = { + run = "06myfm4l1k1ms5bmgswbqikg3kkrz6qah97ncjv0s32inkqjcicc"; + doc = "157m953qh08i0a8lhrk3228ir2clyk32zd6x9ar2fgbkggjll9ch"; + source = "1zp5qj4b8fn5y8a7aylz7bpkg6jnmqifral9l3h5g8ka1727ng9h"; + }; + texvc-46844 = { + run = "12knhsx5y5n6wlzlmzvym6bza5dry1z8qlszka0f93wx8hpvk7cg"; + doc = "1852x7zd684h6jjhq3f465z4q7d75871hh5gc8abvdk9p6srnwsz"; + source = "05532lckvznsv4slyvsn4jrv93y4gxbcy3q3r8c7g0lgya255s9q"; + }; + texware-66186 = { + doc = "122r0aq02vwx6irsnapnfbvhgy5d09x90rc8zc7a0bi7b25bxnd1"; + }; + texworks-65952 = { + doc = "0n0ydn8v42q3wcxmhjv5nwmmzf5yfg77qlc1v5bmkpb04dn4055y"; + }; + tfrupee-20770 = { + run = "1q0z0as8gd9qb3p10rf5kwzljg5z790cgmxi5dbz1piy0lcnj4hn"; + doc = "04zmcfp1xqq53wl41rw199yj47nf7l396qcnsp8dsrvf7d0n0pfc"; + source = "19bgxgg9cdgfdvdr4kzmp4na0n6p28dq0iq4nqi849j4ij5lwmnj"; + }; + thaienum-44140 = { + run = "16awnv395nhgm8s3n7w1x7x0h32033258bb0jp81v5nrnmn344wi"; + doc = "0jvggbnxinc81bn8glmyli746asqcpclgmvyl8gzbdarrnabij3b"; + }; + thaispec-58019 = { + run = "1inic6cpbf1kf1hi6brhq5fj3fkwn95cvgjqwh7bxk9dxk1rzsh8"; + doc = "0ki2jl9spv70f5hkzr762nkcylplb9z70c8gdp97whqg9l9mb8bs"; + source = "0j69dwrn3qk82xgnwabq30ab1pf4xs3sfnxgnrksgmhd0ly4lpjv"; + }; + thalie-65249 = { + run = "03lb6fscsbisqa8r4wyqdlsfsf0g53k3zavgqbhih0rn1w588dzx"; + doc = "1wl6h539d9ygkix1d4fbz04q20262811glpy7mjbbhr9wzacbdjv"; + }; + theanodidot-64518 = { + run = "1f1ixiqb6mn875rahrcl157y3bc6dv2i7vks7vbnchppjbfgk757"; + doc = "04n1cp79d229rqks9vkj1byz9r1zi323v4r68g6srcbr4v7n3nhj"; + }; + theanomodern-64520 = { + run = "0w1ybshhj3y22ysymxg27apmblqxwwp193q81vkykxjrf4qn357p"; + doc = "1a99wqmfr3adqm7rhq58kjg10q9bvf0gj44ly21nvmdl7wa0qjjl"; + }; + theanooldstyle-64519 = { + run = "1v5hkpspzjizpbcgbr5wjikwpvslq02fahqbdjpycrpl2q3zlc4m"; + doc = "1wfqvav0k9vz7bs7wdh6fppijq904r76r6cwg8x5ffcv029l75ir"; + }; + theatre-45363 = { + doc = "1nhm56spqvryhmhwmzly939mzv5yv3398lh2lyfhf40rr02mzgi5"; + }; + thematicpuzzle-69356 = { + run = "0cxgvzld08bmyl89qvnkqf285qfgyhdmkq6aq8sk19acr9lljrzj"; + doc = "1c693zjh4n4gjpkbrvw5s29r55b350mchby88l7pakhzzk81xxfx"; + }; + theoremref-54512 = { + run = "1dfv3pz7pjkazp0czzpzhga9j201gwvx785v3qvqasrvpa0vwyyq"; + doc = "0zs8q0xzinp2ih68c75yj9mbjh1pmpqc77xg9hmj8n3gpf1kmmi5"; + }; + thermodynamics-69086 = { + run = "1m7lhcbn6ynxm34y44j4hwb0y644n2vlm0r1yc08j1p9h27s6zym"; + doc = "0knza3s977z4vs2cdp7ykk80104k487gbs2f7aa3qsbxqfln3jrr"; + source = "1c1xs99a599l8km9x0ckcif32gg78j8pgva2axdrllws36wpn2j1"; + }; + thesis-ekf-60228 = { + run = "1r2fgq9ralrcm00gz0lrxm1f413pik1hill8x8nqfm9wzif2dd9s"; + doc = "122vzng8dhsrpixwn40r9ddczqk9igmzi300hmbymy2b4ydhzc3a"; + source = "1nizsqbj6nbf5qk54vvldhb6flppyn29i058jngldqp43r3xq8hy"; + }; + thesis-gwu-54287 = { + run = "16vb94z3svvnsxmv43d3xy6rz8ki3dmk01iz553q949f4dfig1l7"; + doc = "0xfl7s0i4ni5lwxlsmlldl96jnhfxjyay99w3qc3vc4az9vdqfmc"; + }; + thesis-qom-63524 = { + run = "0lsi7xy3grxmwcj55s2m0cnkqr6544qn40k5jrj6himi7l1p82b9"; + doc = "1sppdlgr859hnfjhjlsdv8shwzi5gkgmv10s8f9vh646cnqp50rx"; + }; + thesis-titlepage-fhac-15878 = { + run = "1s9g6h020ahv404mxsfvqic2im68qnvb425cyvz0bj2rwn1fwnc8"; + doc = "0pjvm3d2l9715q50nbbza5l6vzhj6zaf9payimk1lr6k94357v1s"; + source = "0bhf68pc8c41ih92sajva48m9fq7a05x4y9qqanbidvmb6jmvhbn"; + }; + thinsp-39669 = { + run = "19d23nm17nybk0dda4l05dsbs1695fk0kl86vc713l19mzw4l7fw"; + doc = "139v4dmnbhsd3nqlp9qknml0glfmh1f9dg0nnixggf19lsayn27p"; + }; + thmbox-15878 = { + run = "16c6p3n4zc2726adj8z131h03gbzyhmh5bj8hzc286p96131swdw"; + doc = "15mkfzmy0141k5wgspngbwnnldf0i1rvbmq2bkzcpb72v9vcj8fd"; + source = "0lv5mr23wwhig6r9fyy7rlv2cqxlr35y3g89i938w35s9q25xx08"; + }; + thmtools-67018 = { + run = "0msngnpdpqpw0skchd629v72wnd9pn8s1jijcyvqzwy88k8i8f2m"; + doc = "1lyc17i46x1v7xhxl7qf8hpjn3y9r7da4lycpsfijmlscp9q3c3y"; + source = "13zd5sx1nh9f61jwr2raxkli2y42w2dr23j5yjjfwfk65pd8bfq9"; + }; + threadcol-28754 = { + run = "1whvgb3901wciijafawy5pgnr4adpix2a6ph2v52kwglg68s2ixa"; + doc = "0dky94vqbqrba5hsvgs1sllwy6cxmr6mlr6zv6qgn1yrrmjxs0by"; + source = "1qd96xl0h8bnp5mqbh8mprdfbw1bhvp60dhj46hqyl4w7f61jj20"; + }; + threeddice-20675 = { + run = "1r5cssaj6qxv17n04pgvib12a7b7fnxfk3qbf87mhs1xpxsh6v1s"; + doc = "0w7f2dfy6sbircp8dbw8s28s4bxbqnmz469c71v3qcaw6hgw3y2y"; + }; + threeparttable-17383 = { + run = "043vgdllz4k8fcclyw49515rcwl03albnmszbqi7sbsskmxnzck4"; + doc = "1mlhxgv9q1gnkp383vinybzh95fd49dgz4x14jnjilhjabvhgyid"; + }; + threeparttablex-34206 = { + run = "0ipmhy0jpx38sy1jyyw3ab953cyh95ix4qwrz1ywhi54dn6ahygs"; + doc = "19mk0y6nn6bn7gmn7vvlbijqdcjp2br0s632lmhnyhwz0d4xz6mi"; + }; + thuaslogos-51347 = { + run = "0p5xs731fjvd413rg4lcp289ijk1lxa5f0c9arj949f6s0pgdqfj"; + doc = "03a24gn5zzr6ma9q391s0vsg7qqn53kbmpw86a3wlyycsrz9ipl7"; + }; + thubeamer-61071 = { + run = "1y0qangc89pla53dkhxx1xm9n3bk4ngslns6lzdgygyqk6cslfdg"; + doc = "166kd79lyqb7vbgwf1aqhv9jxmjspdfx7malgdq1nizari9lndc9"; + source = "18p9zh00g56kxxj38djjiwhy4a6mfgmjhak962ph9d6k34gfxa6n"; + }; + thucoursework-56435 = { + run = "18f3gbydg1z6hiaidqw3j9yqybzvcp9ykq5a7frbd3ww051rz9xq"; + doc = "0pq5i3kd19ng122nf1gd97xsc8gd58l5gplg7iswfjykdk5zv562"; + source = "016r76nsk9lnr2zkkwz27r2i35j154rlnk5izd11rlmsyw3ix7l0"; + }; + thumb-16549 = { + run = "1khi4j0as028c7fhzkdc6dmbgdyj45lbasbv4ksnxmf2kylmbhxz"; + doc = "1h4b21mmp2bx1vp8n3556lxm16x7acy3srs9khgq24nrfkagwrp9"; + source = "0f2z9w9mxfj0b3s9mvch95cv49bkyv6mxmdzmkyc1zr8bwwqdahy"; + }; + thumbpdf-62518 = { + run = "1zj2733wnq4zydf22qhza9j0nywh6fmn8xd3dc6nwfzm68pdn9ic"; + doc = "1fpbfz855cgs9gdvwqbg9pb3i3yl2xagmxbf25mra08ii17v3pf3"; + }; + thumbs-33134 = { + run = "15k7rn5fygvsrjln614jndldmq47zq75zqlv71f2gvr8nqgil93n"; + doc = "0c70k96v2m6nbx9b8qx09pky9g0s0ipqsxy3fsn8spjjrqkwk0v9"; + source = "1ns05c3ji4svj4x9y2qy9hn0f2bvlllbvg98xsr2xv7gylr2pkmw"; + }; + thumby-16736 = { + run = "0q3h6cwbw90adw3c8ggyb707l23qvsfl3dl8zrzhg78dm9l8q3gi"; + doc = "1v1934z064ar7zgjpnpxvmc7bkaq080h0hka0snkj7kwqm6sfry7"; + }; + thuthesis-67127 = { + run = "1wnnl59l063ykjlzl2ln781w56w6s5wwz6nxs3wsx9inzn4dn966"; + doc = "13a5vrnfnhhwl9kdjry50rs67kmcpdz7yh0qvfvwddv5kndjr0py"; + source = "06ys99v2865pyc5xfrszvj1jc6l4kxgi37nih3v5s2a4k0sp3hnw"; + }; + ticket-42280 = { + run = "0qpqzff2hj01g2k8nq9vc91l4zvg7kx4p7nf0gd6ji9lf0q5caaw"; + doc = "07xa7nf2qgvjq5pzaj7k75wzg2ldcpxb47ypx53swssz277ixvp7"; + }; + ticollege-36306 = { + run = "1mivwaf3ngmdr1zdkl9xif1rl4fy0b062r43064645idpkk4120d"; + doc = "0xy35cggk34ziagi1m60ymckknls2wwil0wdzlswn0aw2zca9lc7"; + }; + tidyres-67738 = { + run = "1lnymwa3hbfabxigxfqkhmczigswqn84wdw8jdzj7khsv4zm47rk"; + doc = "0gb1aayki8i14i9zl450jmy4ybbcdnv54l5s1b34ma7vw9nbng5g"; + }; + tie-66186 = { + doc = "17z5ik7bbf0v5ylq2v1rda6z64iz386vp56z7yrr6h1dl488kr93"; + }; + tikz-3dplot-25087 = { + run = "06ij3bk1aham4iv0wm14z9dhcq1v60qiv9n6idfcmjqz6m05cdf8"; + doc = "1mq9drqg2z9khxfylsgpz32binla5abq88938jcjk9y21d46r31h"; + }; + tikz-among-us-60880 = { + run = "047mfp3z4m63wc4f7psrsi77qpc55drl1wdrk2dlzfykkh4mna3p"; + doc = "1f817bi1m745c7cgl7r0yx5jx22qi6h2xwg8kb246lkfsvwlynnz"; + }; + tikz-bagua-64103 = { + run = "14cycyq0lshr61n83jdzdyjhr20b26fsrp1ximyh1phk958yxmbj"; + doc = "167pi758hdi7chys2rbs1v1lqd5gi2nb1fq244igjr77v1775ifb"; + }; + tikz-bayesnet-38295 = { + run = "1sdal5mq1s3xkklj09hy0j41xymprmh78z3923f55bg0kzdc2i0v"; + doc = "0kwlqx1bys43hzwpwj8snrn5693grfih18fcw3d74a6x7s5k0h8m"; + }; + tikz-bbox-57444 = { + run = "023xrf65s1c4g63ggpmsdyckp6zspgjz1ad7pk7jf56zdnhqaxb1"; + doc = "0ilj988mh0w1ws8ancnxsz0ig4s5k0yi3ywihn6vsk3z94k51yfm"; + }; + tikz-cd-59133 = { + run = "0xv75gvwlhax08mp1nlyy2kgi0br7wy7aahbaf9rfbj0idpcl5ip"; + doc = "0dxsixn2n0irfqrgcp63h74fss1ldqlcvfv6d9v61asxsjdrzf0v"; + }; + tikz-dependency-54512 = { + run = "0v471rprwnqlhwvx0lqxvpsgh8ph16lbvrpcrynx2hx71n9daqla"; + doc = "0h3mnxwcb1k1ilw9pi1xcwmryjpci0kwlaqfxx2i8lcggsdrxfxi"; + }; + tikz-dimline-35805 = { + run = "0mp6xg317m0dkrw73609xdn7r9hbf8bdmyp0bdj2xzpynpvxisxd"; + doc = "05rikgrm1f0f0rx7ir1nn4cy3a93bwrck2xqnms26dg4dqddnrbk"; + }; + tikz-ext-66737 = { + run = "04ar5xpvxsihcv50n8z49dd76s4vlw401y106yi37x3fsbgfzshl"; + doc = "0aigvf2a0b9lh6gj66gp75iag3ipd1kjf6wv5safpn2v1jfhadcg"; + }; + tikz-feynhand-51915 = { + run = "16bb4h6wbmyv9mz68sywgw18h2dcyxkmkcyjjshkbagimf3ikb58"; + doc = "15h182ywc8ihahv76khphah6awpahbsrdi0hin578jmg1582rzp4"; + }; + tikz-feynman-56615 = { + run = "1kh3riwk5iksldsg6ljk27lhh6fka473k958q9781m65isdzhwa9"; + doc = "0cjl1zvn2q39khh4afzvh6nh8dlhrkd6vn3i8n2ywv4xldpb2k0b"; + }; + tikz-imagelabels-51490 = { + run = "1xg2malb3ybgcvmr1gksgg93i4d8fvr7pqjky1b98n0abfxybxv9"; + doc = "1fqkzfbbm4ckbjpgjrg5fa9ggam2lcy5gzvnhc4njyjxwx1hjcsd"; + source = "0cqcbwccfq65zsbnkcdjfqwj9h8ndjhan1ghnzp9by8z41qj2fvv"; + }; + tikz-inet-15878 = { + run = "02xbywhzzkiica13d2dzingz9qm2v1w3fjrj9kbjn9q9fmw2xw64"; + doc = "15mvq4gpd22nah4p84dazld4ncdshygmffz7sx42s2zqyjwrm6wi"; + }; + tikz-kalender-52890 = { + run = "0lkvvwzfilmhcamy00jdfrwhxr75d3jzppyhvvb26ymnzm6v1inv"; + doc = "1pxc1wii1hqmhr42yskil16ahjslkn7y6q8qj8hbq85y7ymm3lxi"; + }; + tikz-karnaugh-62040 = { + run = "0bhnh37ydzfrkvjwfyzih59sadfzw9y02y337wym3gqaa0m6w7gh"; + doc = "1p7rrg2jrpg4hqlvnzbniiwpcfxyfxbqq29izbsijlwlwfhm2zaq"; + }; + tikz-ladder-62992 = { + run = "0b39723rfs3d8npxnkk96x3fcsk51w5vnh3mfmn9dnh07xclr92b"; + doc = "1j5v3vj0w8yzydf1qxl2smcf5llwzq4zj86rjgrcqirp86z0jgqj"; + }; + tikz-lake-fig-55288 = { + run = "0miw1aws614ffb4q8szr6zh5rb0216hz1scl50ambx1qv97azsgm"; + doc = "14yb48ylr5rv4n6ikqh704vvzxx8k68l8ww2vnv9lx5nl2nhybp7"; + }; + tikz-layers-46660 = { + run = "1ym859l9bzzd2rack9kcbckzbpmqxyglaa0jggpf3hlbsgzy33h6"; + doc = "1lnlfl8k4czvxz1vyfmnqk3k1arc7jpw7cbgrnh5xbanhvyjfzl0"; + }; + tikz-mirror-lens-65500 = { + run = "0lpb87kidq5lrl79hzjss78qy5hvag2maddvwkh8idnccr06awbi"; + doc = "0q4rp929pq600xi78yp0siagzxbrhx0cksqplr0h7xgn74yldrs3"; + }; + tikz-nef-55920 = { + run = "1i1l0rk7k6kc9vyx9jbpj25bkl77ml5ay1wvwff7a51rr8c87s99"; + doc = "1nsbycqfai72xbrzy6vz7lzpywdavbcyz7x3h1kfhby10s2h136k"; + }; + tikz-network-51884 = { + run = "1mf196mmkg097slc5aslpjlpih2kdq5wkmcpznsyhg7s20mf11yy"; + doc = "05dzfw2x5j1i3534qmhp6wcymba5mwilv2vf7vrw5fmrgd4h1gy2"; + }; + tikz-nfold-67718 = { + run = "03q6hj8p7p4f5sa6ipsw456q5g3326kidkmsiil0sjprklsm3w9i"; + doc = "0xpc9nik5m90kqrpmg254mcpa7qca0fl4n4832pax0j59g9f9z1f"; + }; + tikz-opm-32769 = { + run = "04ch55a4jvvif7c74s8bbsq0bkw3v3zjh6wdlmij30cfyxn114jg"; + doc = "0ajrvamsj1is4lh0xf25wjylnjg8kd02b7kwj40nq1kawnp0hlxb"; + }; + tikz-optics-62977 = { + run = "0r5z7vp05s92hk87m01vcxfa0kkvfmzxyzfx397b3lwmlavzws8q"; + doc = "1zjlpblczvr9390fmz0vh8zf0pbf1zc4d01l4ykhdpvljf7ndrmd"; + }; + tikz-osci-68636 = { + run = "1rxkdljz3lq6lnmpr56wyb7zkxrcjzkg6pi3qwrgqcz0njd5d7xl"; + doc = "0sn7qhv2kdkiivigbkhqqpgj2kki8xydnkagmrbk47s3bnvzmhqz"; + }; + tikz-page-42039 = { + run = "0971kcdlavr24lkf9wdzgwb97cf952iw1d5ls6zz7fsfj6pigqjn"; + doc = "19g4b944wzahnabpw2kighd1vr63c7im3xgcjz3l53yrz89nhjmk"; + source = "10v67pn2zvpxl3817h1rvn0y4wb7dj07p4nv6wf1jhchgvmb8bdz"; + }; + tikz-palattice-43442 = { + run = "0pfp30l373li523l0skr52fa397h2wkizvggsls3kv3p087j16an"; + doc = "0krdfwivibibgpxsjnlsl11yppmsynanj2lgf892izxj2m3hld7d"; + }; + tikz-planets-55002 = { + run = "0gjkapcls19839jrjimshd3cqdl9x0ld27i2d51s7k8f0rcakkmh"; + doc = "0xx18gdj4r9jj7qvwlrd237nhcbazprhqgzn6m6cy8m36xy6yc09"; + }; + tikz-qtree-26108 = { + run = "1x638b7a71mwlcrn50w86j649qlzjm121ap6jgccr5vck6q9wcms"; + doc = "0khnzjc78v1p8ahyii5rsqx29797jv3ycdan2d55bvw87p4iyrra"; + }; + tikz-relay-64072 = { + run = "0rwpsh2y902b93p1kjb8hwhxjvfiglfkzma5alghcdw0r538r4fx"; + doc = "0h5pkr67anks09f8fii186sfwhh3l137k7kp2xdwk1sz4zfcqw66"; + }; + tikz-sfc-49424 = { + run = "0kkfds07qskfbd7yxfyc6spylnd0nnhjyfa8s7i44y4d2x1skik5"; + doc = "0b5cf8kcchp8h33x5ih1wvwdrgdhbkz589d55454i1470b3h4f79"; + }; + tikz-swigs-59889 = { + run = "0cpmk783m9qf4wq1qsw4hy3azjlx0r47ya5ijw4ss3l4nr8i710x"; + doc = "02carafyvhv0nv29n9x0k8ij8adiwf2xqr8bw43k4imj690360li"; + }; + tikz-timing-64967 = { + run = "145r878hxqfx1sdn4hdagmcnfx8xqcihfz775zabn5sbzki87ywq"; + doc = "0na0rjgnala2lyww8chnkqyp26c1y2siaj7gqh6h8fjpi5bpamdf"; + source = "17wzwm58194p5jlwb74z30864q7nzg9fi4q4dbcp26b3p6kn5cxs"; + }; + tikz-trackschematic-63480 = { + run = "1jbji8zkqjwpf1bn25p415n7cwz0a5q2606imyj8bbxdzp0r8y23"; + doc = "1pvp3a9pgszgb2013gkh1z1fm8hpxa4z6ssmr1hwvwj7y48399bv"; + }; + tikz-truchet-50020 = { + run = "00yf9044lpsazd8wnmcz39lnazrxpqd7lpyr8ss24gk9gm33b563"; + doc = "1vlsyyh7xj1fn6wkafh7ps4ys439n1lmvmgk63pya18laxkphxxk"; + source = "1zbp1xb9sbbnr4iiqgg352ymn9ybfmkwmwd49r1ws3w7iy3qdvrz"; + }; + tikz2d-fr-67239 = { + run = "13mzq1azxi34lrkm4rycsfhbcm8cap8pzam8gwc3vfa5sygkczhd"; + doc = "10lv2v9j65bq9fj3yin86hbbj4bvlygqc1b2sszjabsdnmzbw0yd"; + }; + tikz3d-fr-67774 = { + run = "19js2ypl2xlzqb2rspvrx1a73w6wl9jcf6pcm2b0i19rwfp93d39"; + doc = "0kbil2rvy07rdva18kb7krd49mqcrrsbmh2mbflqxagycpy3vf7a"; + }; + tikzbricks-63952 = { + run = "0k15zgfckasxf9zbnh3m4bhwa22pc1rmx930in2k9qskqx41rlrz"; + doc = "1dmnx38k0b1ivs8ay74yhh3pmqi3m9s12cxakfhnw57ipkpp6af3"; + }; + tikzcodeblocks-54758 = { + run = "0q10q8gfbdw20ysv40pj9c1ks4mnb4dqvvz39fvyji3f4s4xd60n"; + doc = "1imd5qf95ykqs89zqb32yg7p61in242vkjx5wv6r2xh2dkjpvv9h"; + }; + tikzdotncross-69382 = { + run = "0vwxdha9gpmdv4l61wdfk5j3mi2facrv3a3azkgrfn5s2pyf4m5k"; + doc = "14xwxm1ckicip2dwc7925sfdnlxdwry7h12fixs1g4l0vmh4bcim"; + }; + tikzducks-66773 = { + run = "1mlj8h6wk80pi8vi8ggj30mg1gcdwdfncif53p0mkyvmvjfin3px"; + doc = "17c88srkb48y49icbqv85kih5qd2r222559a6g6xgbqvwa3yx1gq"; + }; + tikzfill-67847 = { + run = "1igbzzpx6rwqklhnalzpsb1rpj7l4mkrhwblp8k732nfqvj1fn0x"; + doc = "1dl033xf2waf0j40c4whci5qsyxk4346353j43vsrqy7lgsh557b"; + }; + tikzinclude-28715 = { + run = "0s0mhfshfzl28z6lgwn7f540pbmdxl51gqf7nw1s88738mx3m4z1"; + doc = "11jj75nnzw9m3i6nndbfscllfxzn5bd636s85q17gds03jbqkhfc"; + source = "1v1bvpfqhvn3hp3zjx3sqv4kg288aviy1b9zl3s8r64zmai86bfy"; + }; + tikzlings-63628 = { + run = "17wgali1pawsb6kz2w41a27i7gj1sm4h8ay8i8q967s8s07kxv5p"; + doc = "043sia2hyynbwpgh10dfca9gyih97z8hlxpi1390a28wnmyvcbwb"; + }; + tikzmark-64819 = { + run = "1p73c3ivn3aamrzzzw5y4fmkfy7s9qnvw4q64jn01qxzzs1vbhdl"; + doc = "10fwszi7wsqrh6kql40s6w4y0jji8v0q41bd684cravhgg0yjc1p"; + source = "0mbk2xvqjpn44skvdgjq43s1j4814sfn57xc1ishcwrrmidy5pra"; + }; + tikzmarmots-54080 = { + run = "1m33y48cs82f2z19gwhr89qyaa9n5qlrps9ash5ijjgra9dkfj8q"; + doc = "1jp10kd7vpx68z9i1j1pk904yjb078yr60hkfk0vxhwhnpychlgz"; + }; + tikzorbital-36439 = { + run = "17g4bd556kkhrxir4c2q6f7qxa8rigkf41dj979nb5k3a7w4k3b4"; + doc = "0h1s5dnyv8n4hv608c5rspdgy2h10ilqknddai779h9biwhfzh3m"; + }; + tikzpackets-55827 = { + run = "1kidqyd1d7wvs1f3cp6ixp397ipaj7jd19djhy3q4dvbnzq1xm4b"; + doc = "0rlpz3m4vsyin6ckyjkxjp9a40gxhhi44z18hrw2blmp0mg011v5"; + }; + tikzpagenodes-64967 = { + run = "197sijaabaa3sf5syasf4ciwz8hkgy2pyr7lp78gzhlv950drghh"; + doc = "0y9ik1r203inp74hx4xznkypw0p88zhg9fq6b9205i053vvla239"; + source = "01bjvk944nlld4zbrld35n45dzljqf1rng83y14ipn3wcdxa0plx"; + }; + tikzpeople-67840 = { + run = "12i0m8jilbl8ldji9xmxm5hgsl0bd5vkjly1ykmj6w2rzgmjfbbp"; + doc = "1a3cjadvnrv9hslwgihxv8z16awkikinv44zcj4fd5drnqjsvcrq"; + }; + tikzpfeile-25777 = { + run = "1rwv1i6yb0jd5gw16db3kqar4ykzbwcyw51hv781iz358hgww5mc"; + doc = "1530vkp14lpv0hnv8qcxalibsi1pkcj9xp1pa87lisrillxs7kwb"; + source = "180cp8vp26shmnjxg9qs9n28v4xy0qhqgm1bvbkqrpagykzzhsrf"; + }; + tikzpingus-68310 = { + run = "058v2b6scnz31p0jzk4i1i8v6a1vb10fd4kgi0izd4pw58cjj31f"; + doc = "08fi2mlzwvdx8i4r2hf8l2lx7j6b4phpm8ihwklfi49ha5i0z2n8"; + }; + tikzposter-32732 = { + run = "1r6pia3sjl9xcixnsr5pk8cma4f18mvpn60dxmpzpn2nn1sk4p26"; + doc = "06vy5vmzrqhl6zk6z9a4kyqfvjqc4s9pslvl9zfl17cdqsfvbdf6"; + source = "1idiz8izn9m9h7kyiavw836v9x1vzg58vap42wpj7yd74izwvf1d"; + }; + tikzquads-69409 = { + run = "1a55w1apikxg33n35wwi3ffafnlhgsnl5w6fxq9qin77qi5rq8l5"; + doc = "090fyhby42m0zlx28vm9ix5pjgkmv7ml0ja6w1kgn0vd63q02i4c"; + }; + tikzquests-69388 = { + run = "1l1d23ky7pvcj6j1g52p5qsdy060qbjws4fp4i7j38k6dvyrw2pl"; + doc = "1bvjy5ghc0arx48gxc3sz7z1fz02vigg5cxc1g75b6pcn1l5x9lf"; + }; + tikzscale-30637 = { + run = "0h8hpk0nv712vydxrzyhvqxrrqb34hw5qjgq9baagqj42ka06qfg"; + doc = "02sz63v9zxr58417jn00ypm3myga7x29q31xbnz7p7mmq5q1r94h"; + source = "0rf6rsrcpapmhz3q5wkgcivhvswy1kb3mql94xs372qc08bxsi3h"; + }; + tikzsymbols-61300 = { + run = "05a3szm1xgsqj766cwwf8ssg1s2jd0kbvgzv6m0hlkvnpig13y7k"; + doc = "06wkvldkiym2xlz47rr4f0nhlbygdqisczn66d41lsf59v8036lx"; + source = "19jcl91qn62hr4j6fcw6a6dc0qhpqqfpzqb1d8mwibn91dzad00z"; + }; + tikztosvg-60289 = { + run = "1gpkypg9j6iz0i0f77drk0p373x2vx8z5v6j9wsb3bggnf00f0yi"; + doc = "03f324pxiwyxgnsvw83wi8sh5ya633a1d6833kq2zl8z1f51vvfd"; + }; + tikzviolinplots-66659 = { + run = "185hmygifmnydjfsg01mwshzjx6d80r92j7bh3djpkslxwp8pdyz"; + doc = "0asisvkbf7gfwqn6wzyjl574kysjz4z088ph4pqggy4znd0yqljr"; + }; + tile-graphic-55325 = { + run = "1l87pqfzgyr8apcs9f2gssf5rh1mvknkr5jim98zj5f93ca5mjpq"; + doc = "0rq35cpk9l7rc30l1hk55r7x07f96ishr3dzdi7x4d50gv7675ah"; + source = "01xqc704g5pqwmlfifzvv61nypgvnabxv6xw7ljgv9vvpyvfh0ni"; + }; + tilings-67292 = { + run = "124gj42waa50pv8qm4zkal8xxr5d0kvi9wf9qlrz0chhm1xk4v15"; + doc = "02bz0wpvzwf4f97g14rkv25x0ifxxfwdkgi3nbv6x2djbm79xjd0"; + source = "03zb3sfygc8bbdl5z4hz7gy7wfnl54sbka9b8w7ywkx9wgymvkz9"; + }; + timbreicmc-49740 = { + run = "0inffnb824kv9lswj46b8p0zb36f4s3pfix4m7x7v0d216xa75pw"; + doc = "05x699cyrkfnygbwfifzz4ih0g5nm7pzlj6ygkh6pysyzxkb5w94"; + source = "0hznll8725wbjmayxilg0hvjw2vf63wj4cxmznvfly9lk8z5zh5m"; + }; + times-61719 = { + run = "13g41a7vbkvsf7ki9dgl7qm100w382mnlqkcngwgl3axp6s5s8l0"; + }; + timetable-15878 = { + run = "1lnl8gi2rrzcy688qb8b1ff9yivwxdqmbcfx2ph49aymkxfym97b"; + }; + timing-diagrams-31491 = { + run = "04yal5fdbwwdq5i7frmvxm0z7zy379gpwbc5383xn0nfdyzrq91b"; + doc = "1w3qzl1j3viaj6qi50qcyx51w2ms23j27p17h526iz11x39w0gw7"; + }; + tinos-68950 = { + run = "0czfddyibqn7g62j3kqqvswwfdm1z6xwv0k0m43g30n8r61a0qa5"; + doc = "0mg2rjy5kk7gd05lp00zh41sxapmm0bvl950r404wy1snl17d23d"; + }; + tipa-29349 = { + run = "1vax0padc42ks1b4rvl0ikfqmb5i04ii27k1711vfdbzmg87j217"; + doc = "0wwnbarpvjcq8ibbn8sr0zqrlg3clplc9nyh46r5gsr06qgd1prf"; + }; + tipa-de-22005 = { + doc = "16gwc0dpdls6s2vdl3hmd6307d88gfzsa3kbw3vhl0z5iawvwj4h"; + }; + tipauni-65817 = { + run = "0qzwx1rd5wqrqwlqrgd7c8czsvr9hy5bb2dljf2xqnm0c1c05496"; + doc = "19azyp11a949kqkwph7b47128fdh7k80lf9ia34ik7a9qw1gri73"; + source = "0m5kfcjk6c0mm40mqbsfnp1ddha617d4sl44dv62nj3rkj3shqvl"; + }; + tipfr-38646 = { + run = "1a9vj3r5b15chzyrpfd7rn0f19qkq9lqklzxvzm4xc5b5n802zbw"; + doc = "02x8fikl1vnirfcrw42xq2cbkf6wpciary55xyk6xwnnhh3abbgb"; + }; + tiscreen-62602 = { + run = "143c2w00f4s24qli3wbnhps6b5pbrvrhaddpgpgn52pmy20f5z85"; + doc = "0l0qs27bm0hy835zljyapyhs7iwvkpn85vnd0z02wy8l0nb11ly8"; + }; + titlecaps-63020 = { + run = "08cy0cmrp27iqa081q1y3ibif6lv2c83lmvn9d7r920f13dpmy7k"; + doc = "0gmajngp9cgi10b9kgc4ra020drmm58f00vh1yv5qj3x8bx5hihf"; + }; + titlefoot-15878 = { + run = "0c0nhhxhb3hmvg3a64lr5npbqsmrmprqqj9pic91j007k4s1in4y"; + }; + titlepages-19457 = { + doc = "17ib7rpb2dhb2m724x66fdzddv8cqd808wxy5kkvx0vb3rl27hyh"; + }; + titlepic-43497 = { + run = "1pj4mavc06r5ghcvyjjhvn7x2xrccgdfjr3961al7420ymaqb726"; + doc = "06s1r8xy54129y7fvzaym2vkfbyw2x31r91i8cyxyra0chzh8ngl"; + }; + titleref-18729 = { + run = "1y2aw2m7jg7l9vcr35nd2qpbafyff1bc8acy2cm9k7fcjm4rcr17"; + doc = "0rv9hsx5p460pa3ry50fnrcb0kf08rzdl7bq47n5nhm8frpmczad"; + }; + titlesec-68677 = { + run = "0y27npwraxaryl2z7mv0fzkdci8whq8jz7b2xlk2n31slbfvksb8"; + doc = "1yz5s63bbpkiziwggqcal266444nm03fnr7kwan14gswmqqbkav5"; + }; + titling-15878 = { + run = "15iw3giwxg658pzb6basjkp4v92m3qvzk1fcarnzikc649bjcbch"; + doc = "1r75nwakbkwf32qva6icp3pq3y8bgfl6cqw304lcw8p6bih74y5j"; + source = "1jdgyn9zyf5rwbaz004g85rr2jpd5gi5iyn111s0r22ml41ci3hk"; + }; + tkz-base-69460 = { + run = "0zp2020wa30yqk0b5iyzyjpm09kndnw7ng3lr547qcfgqr2q6iym"; + doc = "0218bq4ma7dxshk4mvh3i40qdhh4b3i0i9yp034jjnn366wxk039"; + }; + tkz-berge-57485 = { + run = "1c9kgzsagh5ww0zlwywpddwn3mx0wrf8yc627gjap3f7nyyvixn4"; + doc = "07bsfmh9qyn8q9z4brd4si1clmw7sn2vh2nr8idqnm1z1jqdnq40"; + }; + tkz-bernoulli-68780 = { + run = "0ifjig10clmd3402y9kdpyw1vlwk9vjakanjzkzablm5zzdr0qgs"; + doc = "1iv94xglrk07kg3jkdci5nixrz96gwasgg5h0fl345ph9rdalwx1"; + }; + tkz-doc-68665 = { + run = "0gf3zjnqng90kn9341xdchm1diav93qlv2910mrl1cc7vqfp47wf"; + doc = "10p4i3xnbpyhzj32j3mi59pzaisjhj066m9np4ankzizgwv9x5in"; + }; + tkz-elements-69715 = { + run = "1aas8q4kjf26ch0wpf1vvml8dawnwpw1gl6p9wy32f6jim3pckmh"; + doc = "17jard6dv6qagrziafv29339ira4w53zd6p5gvl6mdpylj96bhab"; + }; + tkz-euclide-69702 = { + run = "0yfnc4zqf9nznim015qw335h8l8p8chhyl3ir85zaa2hblwc9ma4"; + doc = "1xlyzr8sd86zrp48v1q54j8y9iw77wx13qf2rxlkjcklwn6zvs0q"; + }; + tkz-fct-61949 = { + run = "0hlcxnllmkhmxl5dwap1sb2jg822bz4glllqcv59dx7jqab5bv8k"; + doc = "1bjkya9ssr6m4aw6rd64nniwffgz57ikz16ciba2x149f39pkcx3"; + }; + tkz-graph-57484 = { + run = "08kfjaniwrlw23vmz24yq9gbdks9fwcf0g4jyy98ikfqh9phhhs9"; + doc = "1drk9va3bgq62qfkcvp5z30gvnscl7mbjz66m27wmgagb2ki2f0q"; + }; + tkz-orm-61719 = { + run = "020bi7dgjipd2ancqji6fa1zcf9lh9d8n4zbacy5l5nclxfiphcl"; + doc = "1zgmsl11cf4fgkfilflw8c4wrcfwnvk1f88l90hwgclfj5q0ashr"; + }; + tkz-tab-66115 = { + run = "142fjk2kdv02b7whr2m5a53z6b7rhh2zfv2fi55q1sy4xaa1wia1"; + doc = "1p0h1l1jca83j27wa79ncjarczissgp1jh9f9ylqhbi7y5mk8abw"; + }; + tkzexample-63908 = { + run = "1cs6x5v0f4dbwrsmdq6wjcggc87hc132bp0faxd1fqfhgapd00mc"; + doc = "03cn9q2qq04ni6f6kvrcyy0js718bpc3di37znr47vhh419vpc5h"; + }; + tlc-article-51431 = { + run = "1kzizgzmi7swzhjq9dasz392wga0w1qdb4x3x812lbshzg235vyh"; + doc = "0w07p4rv12ila4ix4pymysbig3yl1apb6cxmb2cp9ziwv9c2184j"; + }; + tlc2-26096 = { + doc = "1ysb233rjb8gpl9s35qql1dny5rj6fn8ssy2dqdqsn5xj9pdasyy"; + }; + tlc3-examples-65496 = { + doc = "01ny6r3ycji0af0cdywn2fmxd0fyz3y7afdnn983a5gy1j9rza7v"; + }; + tlcockpit-54857 = { + run = "0sm882jxczx8q4dvqaxnyb2wzlpxd249ayv77gj9vgq4lx9v0l27"; + doc = "0zd8hx3f6jhm5rklhr5dxb84y17p4rbgwa7wh95ab5f6n8i5pgwb"; + source = "0kldzbbyjvj0n60jgff8y6y27nxnzihjyq10gnx2gi62qn9bia7i"; + }; + tlmgr-intro-zh-cn-59100 = { + doc = "127fad3aq66rnn4jkccyw7qc8pdcwapyjb6lj9kn49nqcy3jm6nk"; + }; + tlmgrbasics-68999 = { + doc = "0yz7d8dw071nawgn2s38da6sp8zbrd03zzsgisfx7yx9jp0zzbpz"; + }; + tlshell-66771 = { + run = "17nrf6cwxapdkdccqr2sp5v7fayd00qcdczzznl7ppm98rsz9p36"; + doc = "1h5mk09sakbmgsppl9fnry28xnzqya3bmp3r1nkzg44cv7kl98vz"; + tlpkg = "1dvb7jjnmdh0k4dfkm4f89zapkjb31z2364m0vapmvfq4z84vpyq"; + }; + to-be-determined-64882 = { + run = "0yrs04ik67wj1wyn4cl3wfabczvz3ga3h7sfbhni9x4438br48gh"; + doc = "1acxz8nala57gnc78r5aswiwhfvdckmvkv4xiwgcznb0c217wpl3"; + source = "1fizh0inczp818vdwlvyawzvw8s0i48mkpgjydfcmwpsbf8rdm8c"; + }; + tocbibind-20085 = { + run = "1swxyai6gqlz8zjah2qnz9c5dkd1smpk163b56rba0kx7zcmvzc5"; + doc = "189qi2qyp1nasg9w902ydk7rlzxl2qww9w3p5s3p9ywchvm1l9cf"; + source = "08sr335sgs7hrhd6cbdc4dh3f8m9fpplv72fk54y57rx59l8wxbs"; + }; + tocdata-69512 = { + run = "0vj012pdzwbss6h96l8a539vdwihm9f58d6yazsfc74ia4k0x3yk"; + doc = "14hy1z419gb6n4zw27xv1qi3gc3krg83xpnr5lw40yd92i99i8q2"; + source = "0wg9d1nay4cr52g4ird3cgb7lndlyvmx6hcf6d29j5hfdaafkdg2"; + }; + tocloft-53364 = { + run = "1vp3s7q0fcyfj2ksk61gxdjjnwhd62dzfd94yp7y3qfy7x8hyqxq"; + doc = "0zjs0ldib6hm3b9msb5x7r64ddknqwf6kkc9cc82hbla9wshq4qq"; + source = "1764cq3d9ad5gy3qag6f6wxgnna0dhk3rx186jqjpqyqli8b4lgh"; + }; + tocvsec2-33146 = { + run = "157m17r777cfqjn5p4j1rbj10ysbyms87jrhk0wjkahag9rgny1b"; + doc = "0dvzcynpfn9fvfkks5idncgbdqbhxj0vp1d3mfzymhiw4sds31xk"; + source = "0gjpdjkl73ip3jkhr9sx94mwxz3rvxaacn553xwa9gvk3xh5rav9"; + }; + todo-17746 = { + run = "0chmi45gcs8y2zh24072y37g3z62ixpv8cg7ck7knmkzwfzv5i13"; + doc = "0n6dy738cj08laf4cg4y0sadzzzrz9wa9m87hwkya6c95znl0091"; + source = "06xpbraybhf1wbl979653waznvgq697jq61xcpz29gn159li0pdb"; + }; + todonotes-69319 = { + run = "130szqdm8xx7bqqqlx01wgrj6x2wfqzynmf7pjsn953rvyd2da4d"; + doc = "0920zvilbcjsl707vyvvdcw27qg1hjlrmjfbr3229rv9n4zd4fqy"; + source = "1xx14nww9nh8iv0nxvnj2iwj1wm70iqfclgg39q7jlywdzpp7h0y"; + }; + tokcycle-60320 = { + run = "0cl2m00pl40pi6ycw1c1kndaqinrqml5gl88kh5d00dr7g9p50rd"; + doc = "0yy8m10q7pzwqbf371w7r2x1x872idjlrh842vkxk51ijb1441a7"; + }; + tokenizer-15878 = { + run = "04b3jy76qdvbq9c6yc0lmq99jqcprmcfd602zm6xsr0lwmxrp1cd"; + doc = "0lpbfdvmib9ykdcwrcd5inpibgkm99avqyn94zadbasr54k62gna"; + }; + tonevalue-60058 = { + run = "12jvvfppr9zqaqkqm1g1nqvxikqqg493a1p10z0k123cw11877xq"; + doc = "04gvjaxqhqixs13x9y805dgsxr62zb4i1xmcgwr42n2a5qa4dv2y"; + }; + toolbox-32260 = { + run = "1qpbidjji1rj056700iyrbhgmqvw8is5kp2mmm5r9f455dmgm390"; + doc = "17n7dxi0j8razw5s12s4drz22wd63xffx1x6w0a4jhiq87na4jq0"; + source = "0l9w43kp3h1mbas4pab9qk6b18ny5r1k8vmm9nq2j95gm7z5p77f"; + }; + tools-68941 = { + run = "0hhib64h3l94c98v7x505gvc0rd1z8cqawypkbnvlycmw57804jw"; + doc = "0r1c6gr5qcrxyy3xnxj1rrwnzfsqna9qzs45gka09i23r6x7ip8y"; + source = "15an5rw7ciq2lji49afy28z0dyjid3sbf66pc0lfs1dxrln2ijrz"; + }; + topfloat-19084 = { + run = "0md1db8a7ifx2vg269y2dhcf4l07qa35jg57x4q9nsn8ac9gy4v0"; + doc = "1q7fssdrg5r2i51b722mw6wydd17qd8b41iv9rqa7s8r9brf8f8i"; + }; + topiclongtable-54758 = { + run = "1p71kg4882rjzlbq9rfgvppz532s227xs2jmg8zbgplfd3j96mnj"; + doc = "1q12jsaxs9d15qc19wjca7xhq6qajdp7573lv9dc6y9il84r1izs"; + }; + topletter-48182 = { + run = "13ggrw7s7k476sp8fzbj5if20wa1x75m68ip17f1srihnfks3903"; + doc = "0f45rz9n6fsg2c429n3hmzqx4cqv9jvrhwgmbfhznn6zrlip3qy8"; + source = "0p6gvk4xj7bsazb7ipfgp6by60br9lyha53lj0z7rz16f7f2ar0w"; + }; + toptesi-56276 = { + run = "00qd8ap3dgrj16g831458m2kp0jivvbvmya2xzcyp560njsvqqca"; + doc = "09hnbj0g7x76m9lnn47z3cjjnlbbfmapmln3hi6ykb6lh534c4wa"; + source = "1nr54n7hsij9rjn54wgnij16xgay0dda2h6vl2qc44s8yz892jc2"; + }; + totalcount-67201 = { + run = "0zd8h2sanc98qzhgkzgaxjyzfh969lb2935778c80n0w8g53ipn7"; + doc = "1cwk1dnpin4zz0zc4rbf7a1spz5wzvza3nc9d4jrpxqbzgs36nb9"; + source = "1cp1fkvs1gbif9brdwxd1dyx81ylshayq6gad4fw6npzqynppk6f"; + }; + totcount-21178 = { + run = "1mj04hqxi81i1pwjrn10ipm6b0xwv2081paa4kvq7yma8g2kmi9p"; + doc = "1c1941vfi2pf0wsbfhhzpahyxjzb4jx4lr85k7g6r8vk64qahy9i"; + source = "1f6r2ci4dqri4fxd5mwmfmqmw2k5jfr5vzf2mazynixxp809mjwq"; + }; + totpages-15878 = { + run = "1z6brrn4kb6w6an8iz6das0yykwj2cbaswa9wy2p3rfc0w95x0ms"; + doc = "0nm7x3rv5rxg40k0xls5d3s5dqrpc8vw9g93sa3jkdn18xkxh2zs"; + source = "1b0glns220jsmn1607d5f44k2lijjp95cd0dkxabdc3p576ipmmv"; + }; + tpic2pdftex-52851 = { + doc = "02nf2fg4xzh8lbbddvm44qyvcvfn5b7kzcyg729a58l29gd88pbs"; + }; + tpslifonts-42428 = { + run = "14cpw6n2j16mq1742lyjb09zynyjhq1wcljhpbb4c6brwnqvb05q"; + doc = "1wwmxwb2y6zyp1h5hskl7b6bb58ydasv3gq2bj0jcnqhdphgii9l"; + source = "158innbi79r298sj1r4qk9c0g4gv1wzdkcmxf511sdb8ipar6xk5"; + }; + tqft-44455 = { + run = "0v14gsk9nwyppdyvcd4ngx6mavd4sa1y8zzmjbb8gcf5dlnz2vg9"; + doc = "1wwvklsd7aqn36vym38m3q6gqf8fgf16axy627vdfqgg30jsml3m"; + source = "155kv0h90zkymc6b3r1iambxsfx3y3rci6nrk01yd185ml21dvdy"; + }; + tracklang-65263 = { + run = "125bpgp39bvp1g3601y3lbwzvq7s64c6zghva1m7yqv2jfkx2rmc"; + doc = "0qncvbpqc693iy5id0fa175jqwyyfvj4bjpn6zwsy5njlh4dixzn"; + source = "1gpp2kpj9lckbc33ldv91svq9snsyk92praghhfn7lhjn897mv5n"; + }; + trajan-15878 = { + run = "1hnk1qb46hihc3ga6klxghqf7yvn6zschp6w36a08mz1hfsdb8sj"; + doc = "017v3bmngyh8wydjl7hmxqh2rz61dg2imcl0gabsfs98l8fnwsfb"; + source = "01qgax96y0sklbbb8mdfv5yc0i2k90i23yg75vhjmb7xlwx60q7k"; + }; + tram-29803 = { + run = "1bk233y9pin9r76vsbkg5j2wadp3c6p2x3mgqchnmlz2ip54x336"; + doc = "17b0vw6r2ijgxs3dix1ff9r342vkz1gsa603mxixxxik62j5crk5"; + }; + tramlines-65692 = { + run = "1x4mgl4rpfijka8bww4qhv3ascqn4plm0qlzpyhz43frmnfwip6s"; + doc = "13zwximglba27mr2cxs2srcb6hwh9jcz3na1jgqh6z6wf2s5x7m8"; + }; + translation-array-fr-24344 = { + doc = "128k8isyn4s0v496sykn22fqn0gfwyyk19kcrmxnc6clgxxfbdy6"; + }; + translation-arsclassica-de-23803 = { + doc = "1ix5lafy3ay2bc9zkkbqw2rrw6ng3izb8d9p6rki6h2j7n0qj47s"; + }; + translation-biblatex-de-59382 = { + doc = "1ygbz7prjg6pdiqm7lknnk8a9ar05xvpdam38piivif3d3yk5bg1"; + }; + translation-chemsym-de-23804 = { + doc = "01liazqafs3lh9ppipw6i6sljcjzr31nq70r83qgknqmb9j0yfl0"; + }; + translation-dcolumn-fr-24345 = { + doc = "0xakssrkxb2wc6xyy1yvx4mm398x3yq032b7vapqxl82h992fjll"; + }; + translation-ecv-de-24754 = { + doc = "06b4vhsgdphi6kdh5x4a2kl74b64z3y5qzxcpkn0hj40038z1av7"; + }; + translation-enumitem-de-24196 = { + doc = "121raikamd33gabvbgwygrc8hyi3qhvx4hhv4h8wq2chrglj37dq"; + }; + translation-europecv-de-23840 = { + doc = "0n3x8g6k3qq3f4drkhzygz4khxyw6isgxmz963xqp91s0y667gws"; + }; + translation-filecontents-de-24010 = { + doc = "0d2ds8kc98yd1can0gzcngm7gsn2gwhriaxnnds5kz3z3al71gkc"; + }; + translation-moreverb-de-23957 = { + doc = "1jbpmvcm9q73kh09mhrbsb2wlycwwm4n8il342hz4jd15gwhmy8f"; + }; + translation-natbib-fr-25105 = { + doc = "0f0r1n8q3jkxsdcddabsgz9h9ndq4yffdpxdqxvqjmhfafhzwgkg"; + }; + translation-tabbing-fr-24228 = { + doc = "1cih442gp6zf8nwb2lbgjn7a64aglyrcw3aciqy5pkdw09pwn0an"; + }; + translations-61896 = { + run = "0cs8wvvcgmzsnx2bv1qhmcmcswpj6kbk79573yr9vmiws43djng2"; + doc = "02z9ggyi83hiqmvc53wgvkxw7q3jn8sb5vd1pzxmw5kvhdgkzy2p"; + }; + translator-59412 = { + run = "1cpr6znw0nkavqxr6bv8fkb72ygnjhl1ap0wbim75f1gmwn7k4ki"; + doc = "0yk617bp6c4wcr6mqmyfsh9lirjjzlg6fiay3fp3g9146p567w4s"; + }; + transparent-64852 = { + run = "0rq67j8rxjcxp8kwzfzb3ppxbb74sybl58yzq318b8663g65jws5"; + doc = "19gpcw9z3jn9mfmb4ixijyh4xv420is978s7d15crmn3vsk6cygn"; + source = "161qwg68f5nslk49sdibmxvgbsn8qmq0ivmyknq2ghhffr7g40pb"; + }; + transparent-io-64113 = { + doc = "04zfmk25qw2cnja1zqhafabsy26zalxiawf6pm5zqx4x1jl47i6j"; + }; + tree-dvips-21751 = { + run = "1l7vgcgbh31hdaaqb9kqi9jmvbyr5429wchyjg5pjjgpffj599qv"; + doc = "17l7mmvb03zi7am3nnp60ychx224kn5i3bdl2yv2v1dywbsnl7yw"; + }; + treetex-28176 = { + run = "1gl79r8h5brqmkw5paf26vm6s5ipa0f7g7cxxh3v68qg5cm2dink"; + doc = "1prh07qqn92il09fbam3c66czcgi3ssa6kd02mb62mczzf5k594f"; + }; + trfsigns-15878 = { + run = "0g1xdyhin39sqbgi7x5m5r5786x2822sf49271arhnv58md7ns76"; + doc = "1nr4pypsglxi17kpxh6y9xh0b1ky0w41f2i6h5fi7y63h9gjl87z"; + source = "0v1yc2zq5kqcbx8dp12nzfipw2cd7f6z2p9wxxydgjd4xp6s8cny"; + }; + trigonometry-43006 = { + run = "1z4sk50nzdplwarbv7ha3gi5v6g2sh2nf85ipdz2rbj3cnz0j53n"; + doc = "12pm2720vyk1c79qbgk935nridg3z48cbzmzbx9ak66araz9y901"; + }; + trimspaces-15878 = { + run = "10rx6pcvwn1lzyivn312j76lsrw3lb40jgzyj861gl3r3pcls0nw"; + doc = "13zf5bz4pp0lwp44kxdj1zw44h978bdpaiskbma752603jlznaqs"; + source = "0nfwqm4a7c1ks5sqypkwmffqasjaw008pxjb5spr49h3sv7sp04w"; + }; + trivfloat-15878 = { + run = "0s74sisq1bg9n593az435chspj55ysx9b0vqywl30mk60hray6zm"; + doc = "09szjgdcy2fc4ddkw09vsa2am5m98mgm606i6s2nrkjgldm0x4ap"; + source = "067ab9d2vc3m950587iqcfismjnl8fp0jxw0ssdsz3gqxys6vgz8"; + }; + trivialpursuit-68971 = { + run = "0rs7bf0wba9i85sgnxms4sng83y1ckpz89ibs93wqh3fappy4w0i"; + doc = "1zci9nn24r51fcbz6sqd81zk8zad5v45xyi6mminq0h3c9c6lysz"; + }; + trsym-18732 = { + run = "0crl9ik3bd9jwvy6x9sl102bvp5pgj2rq9mywlrcpbxrvvffw1ab"; + doc = "1pd0r5j26xj63qvj7mrifcxjrzazdi702ang8k6npq0cc8v29iar"; + source = "06aavqqczg63yc0s1mwry4nd2ml94424a2qxswcz60y57m68yq61"; + }; + truncate-18921 = { + run = "13hzrndx2myazl7f30i736zs8vk12203hv9rskwncl77hxrqqqpm"; + doc = "0l5hgx3207h54s4n5193zc6ssj6l49xwx2hd9jfpqh1f73kpn6hf"; + }; + truthtable-68300 = { + run = "0cas4lh1n7y9z7b0bvi3yv6xhm3klp4bqdmqz42gh0n2vz9clrvd"; + doc = "1s3ff2pjyls5z1ll8m3x5m0h6gf2is4pnlagiv3y87nbs9sx359d"; + }; + tsemlines-23440 = { + run = "1c7sjdrgqbjw6f2s3185k5rlkig643pkkahjisx16h0akbbdm4k3"; + }; + tsvtemplate-65333 = { + run = "02v9b1jvkynz0gl4czzizs3kj68bkwx7m5xfh5abffcy74f9b96r"; + doc = "06ph8853hvm6xmn6zcycim7qrmr2a4vk702sicg6bh1bzcw14cvj"; + }; + ttfutils-66186 = { + run = "188gcwglfgl7yi4026n9l3zkpgwx034vfr4damxpfr6n630rixw1"; + doc = "0yabxx9pq8rj2ibzqa19ix7vz5haydbdp3ylinanzqgafrjd5pfq"; + }; + tucv-20680 = { + run = "08m364pqd2imqfi5jalxjrwbjnphjihnmlpnpqg8vaz2rsmddlh7"; + doc = "0rfpmrlh7wbpmpqp5j6iai3g9x1zkhqvwfnwjfskknx5an1ad79c"; + source = "1s0shpwhb7q4zhn6kq2010a4d3jwck3liir5jn5h0gzqbsafai11"; + }; + tuda-ci-69351 = { + run = "0cblzjymh2012wrkxyh09wwax25cysiz5ph6k2pg5qjspx1a98cm"; + doc = "0q4lj07kd9h1cqsyvb4y1amdyrabck16a9r0pwi4mkl1qnlv8dmg"; + }; + tudscr-64085 = { + run = "0l7m9n8n6ikd9f47jc1xp8b1ik2vq58samd3g1v0m7f48jvf36f9"; + doc = "06g1h7l2bbabg87y97zifxn6401hf0j7ia86scgjkpjbx7p2dj2w"; + source = "1s4y8cvn1iw77b2qklbbnpm1jkjc0sjnkvsa3savvcb7zhw4asa0"; + }; + tufte-latex-37649 = { + run = "1azsqa3qa1w2k0r4sp83xp9b7g1xjw47wv9l0sk065zq0bdjr9yy"; + doc = "10h41jbfmjg7p8k3m98l2jyhl7365qym844y8f38g0f9sr1pyxvn"; + }; + tugboat-68694 = { + run = "0yj3a32shn70svaq3pjmilw9ah55rg4z3ffd47dz263qqrp5kxm3"; + doc = "1skr54zc5z1vmmv6c9yx1c7q69z5y6a956m917ckb67shqrvsgiv"; + source = "0af24yivq0dym98zzpz1y2xy1l4k59j627fiiz4ny3lzmgwjszg1"; + }; + tugboat-plain-68695 = { + run = "0nk6ycvi05lfbmr2grhdfrgp3d3w8d5di1alc7gpsqfimxh8d89k"; + doc = "0bzv0zl27vjz4fk3nl117jjvcj7ay9dpwnvlwblq27mhj0b3z3j3"; + }; + tui-27253 = { + run = "0liczx2jcdks6r5040r7dqcyrcj225xq0035ccdb9kjmp0rmc90b"; + doc = "1m73fc2nj7qsy144fmbqhld3hx431ry64jv5p7h0r4p0giadwxgc"; + }; + turabian-36298 = { + run = "0fjqr88a51699p57d9mpkpf2hn9rrmdchsxhpjng8hkx3yjl647g"; + doc = "193qbhcgh63kfnrivzjyyk8vp66wb5k4791qdii7brp59xsy6l7a"; + }; + turabian-formatting-58561 = { + run = "0bfl9fgj0adpcm405a9b1819463nrzqplzzdlvwy6yanyqfqcp3i"; + doc = "1dam5fm94hdyzi4ai0wq03pkarb6lbrykych3ixcsz8r2z04g7nx"; + }; + turkmen-17748 = { + run = "0jhg6nd47y8igsn10m3bcsn61zydlwk3g1qfqpy8snz80rkyn9d7"; + doc = "1rs4jmqy5zrgk2awvvw8lsvdkzjwbfq65bm3m9c02158q63bw2i9"; + source = "1kz5qhyjax82mv74qxhsiwj83jijnfhgijdl2w8ic8lwc31q5ihl"; + }; + turnstile-64967 = { + run = "1br0ny72qsv5fpfw4x0v7q3dqy2jgicyd97ibzpxc04mp967njjr"; + doc = "1iv8ysamcqzc7lavhskf8kwi29jn9xcda0am0ak9s1c7nz7pb3ly"; + source = "0aadq0w193hl3rlb1d8xv60yy0fam4aprz4j96dphnanbb9g27ll"; + }; + turnthepage-29803 = { + run = "0zsgmi4akjkhwqas45r7ppbx5c8i5fyvpmk6a8wmpk99ib58pipq"; + doc = "0jkv2zs1m6bggjhf3g71g9cyvrnmgmr549fqsvc4lf8fp9kp3ayn"; + }; + tutodoc-69343 = { + run = "1a2q792dv19y03sv7fcdlb60vkld9z6vkkv4ad10w9frgq3ghhwg"; + doc = "0i9h32l6smr7k1ra54ds8gh2fjaiwpgnqvgwq9m890l9f9f322cn"; + }; + twemoji-colr-64854 = { + run = "10k7gl7jp9l41mj6jamz26wndf3casx1qyy1dz1rscgqyvgjgh9w"; + doc = "1d0kaq2k3svm7609x3nfm8lcd1d41rzp8vcr3wxwrl1dadjv180c"; + }; + twemojis-62930 = { + run = "1k58rnl12pj54g5r9rc7dcf1n33p0hw233wckrpn0dh287gf5ffy"; + doc = "022i152bp2r8fnkwb0mpz1nhs54qxpy57f51j1mkb5rc1dqgcxqh"; + source = "08jxkcjb95yb7pc7jlf2rcz9b2yibpi5ygi48d2ni79i5382mizh"; + }; + twoinone-17024 = { + run = "02na16ki3n7gcbzi45dk6nwna3dqzgxwc73aha1zncm05bnj3n4q"; + doc = "15ldj27nb6pp90abilsybzg7hn0z8xfv7mmwrmwdq20qw8ss75ay"; + }; + twoup-15878 = { + run = "11zxz1wlnqia071kg3d70glp167k2c210gc4r2755sh6m23wp8p7"; + doc = "02zg1rq2ylm9qvgwh530d5l0pq9a377z943s66apyf3jz8z55sj6"; + source = "0lmqla1wrsrzq900c4fhjzbvg7iwbd3y05g40j0lmfrj8w8lqvng"; + }; + twoxtwogame-70426 = { + run = "1gr6wgvpzb9d07a416fngf499hk4pxvqpnq040jspnz9lsfnyd7v"; + doc = "0d55npjzwpjm2bgsm6dc44n2mkycqglqy4nvkd9jqfajddk6l9nx"; + }; + txfonts-15878 = { + run = "1dfrd8dzrzj9y5qnz9c554xn2g9931slhj9ylan2i71k5asxmkiv"; + doc = "13v5hhk0nzj38nfgyz9ijmz9gb9703izrgb617z274d744qwqx73"; + }; + txfontsb-54512 = { + run = "0g2hjxcqhgynzmvj44q9d1wpxwpwy52a6rbl3nhnq06w2v1lh637"; + doc = "1yls8kb1bglfqa7yiqidanyjgj3xb1isc7z99ybw2j2kbmvvcjbn"; + source = "07bapd1i9rwf3946pj54s0m0841ximmj60ic266mcmj5gipw2q1q"; + }; + txgreeks-21839 = { + run = "1872zrdb80wfkjh2bdblv31k6cm83cmsnqns8f3hwf3vr0ymvb62"; + doc = "1gswhcdlf8n4wpnzy0fx4maxvy3n4dcbag9r0igrcvcbqnp9sfcm"; + source = "0n4r3zn19z62qkd2njxqj74k60jr59704mnhrlvmmxi9x3b5g5sv"; + }; + txuprcal-43327 = { + run = "1l1khap1kpgjsjrbsa3d9hgd61lw4x7pi771mchszkaklqx8qarn"; + doc = "1j2y6scl5pa25yk00zf64nqgngrvvb4hbig3qi50rzf5kpq56pxp"; + }; + type1cm-21820 = { + run = "0xdbj0yivyb7advckx6k2iwbn8xqkxrlapjrqrx51jcqhzqshknp"; + doc = "1zw172nb8jym439sz8fb2nnfxmazbnr5mjpmffwkfnasi2f7b4in"; + source = "114wlrzzvlnd1la16mgdp88f7a6h6v8l5ddq72is0hcddw80g2g8"; + }; + typed-checklist-63445 = { + run = "0yrl1vlsly2k71svaziblbnd3jl9jpnpvpg942gg31dsj9vvsb2q"; + doc = "165h7yh2w6n64g2165wbxhpyghwgxww7lasy1qi2qmzkxyf3zi4n"; + source = "0f942k6pjy821851sxhff7idp8w9n8wgf8v9dfrx7mgyb2yqwwqb"; + }; + typeface-27046 = { + run = "06i3zhnc42zbzb5lk0pqgiwq0y7wgds4hs27jybizw9y3yhv9nf6"; + doc = "0z9q8q87iybb4b6g1xnnryr5aihic0vdsjq5xv55i3gbgrd15kr2"; + source = "15igfb6xy0g7jykb50086as2drjr76jcprj3kafcf347427026dv"; + }; + typehtml-17134 = { + run = "1lv5bl9bq1413bbbsjvh8gz1p3qd075y7asi9x0nja36rmcags11"; + doc = "1cgx2prk9ggw3wkbabrm0sbsfb4ablglzh2ckvg5s0chgkilcnyf"; + source = "1ihc1dq38rklrmw8h4k4i6pq3qy9dlwn7nwzmjblpsghszfivxqb"; + }; + typeoutfileinfo-67526 = { + run = "1006mxdn6gdmm0ssmnqnw1ay8wi0549qs7a6vyv1nrvis4v7nys7"; + doc = "0dvglz9jw5ig3xy61syy6yghf3xjnynvkxnwqdmkfz7fgy74hb15"; + }; + typewriter-46641 = { + run = "1cgyi8q0w8j6xywby39g4nprg7p7p2dpgfdb58qr5nsppa2i31m8"; + doc = "0lz81r7jv8frdgb1aglxlr98cngacacjvsa4wjzwr9cvahc1q5r0"; + }; + typicons-37623 = { + run = "0acmp2zpg1734c6719jpmcccyq4325h2023bc87xmj7jxqq0xlp6"; + doc = "1r9wabmkqvzdj6dcxl9syymp0rzz8kj0lfmqn9j4njghclndkfdf"; + }; + typoaid-44238 = { + run = "0m7nvdni7nsmbmlbpf51cb3s4s5qaszbn7mw62dfvvawgd2d1y0j"; + doc = "1b24irgw2779j43pc15cwpazx0mdjy2zla9n6lqvmwyhl5xnaswz"; + }; + typogrid-24994 = { + run = "1p3if64qmyhflwlf4gy59wl3xajaza5xpllxy5f3a7n1pzca46rx"; + doc = "1v9az7ln7z1w3d2bcfn02kxqcwwl4kg4zjri2pmvicc7skzkplr9"; + source = "147flz7xlwjxbq7wkaw83mxr8qbcqvjknr27a0aaq5zs81jcyy8f"; + }; + tzplot-64537 = { + run = "166wxyqcd55y55ql1p7wvrb2x4mhavz7byax2sq43bqsz2h6689y"; + doc = "027pg77h4p7vavy1s25awa355id6i2ngsb9spmj3bapr6bknsajw"; + }; + uaclasses-15878 = { + run = "015wxmrjfykv7j2bvmb42491i137h513q826f5czmcf1c8gk8bl9"; + doc = "0x6krd94wrdwc1zkyvqzznwvnvxx4agwinr5fhshav6r8jfsn4rg"; + source = "06nsdpmp8qqsrcbbcdpm82gcc3z8y5dlhv2lgwr4i01srwkd91r6"; + }; + uafthesis-57349 = { + run = "0fj2rfdzldav8m1ac7wv8n1k8pcgj4yy4zxx0g8sg1mb5i7if0k6"; + doc = "0g096y6dvxfzbjrvvwpb92z4hrxp1p9jvbgkap5gra61msacqawq"; + }; + uantwerpendocs-66819 = { + run = "1dx140fk30ppk96h4n751mds1m6d521d3br94ixbqybya5bc1y64"; + doc = "1f57n9v9pbwgw7j0i0gvv3y976a58lrf4w55gd7pqgwi88fdwy9a"; + source = "0sq29h4il7zmxksqhdnxyszmz4d5rgd8qyzhi1y7bjp8c4sny2dk"; + }; + uassign-38459 = { + run = "1xwinmh3a8scfgxm40505zn85r0052pcykcs0lcvazn91007dl8i"; + doc = "1b89rvsspkgs60rkmqjad7n2pwwmviiizpqr2si02kwnsqfspqdw"; + }; + ucalgmthesis-66602 = { + run = "1n8g3blw71qrrkrjjq867qimn58w5a2l4lnfyqdw77wa67qzxb08"; + doc = "0jkxxfnc9npmvvxyqk3zw5csapmhgfqhzm0rssijw4d46b7w1lcp"; + }; + ucbthesis-51690 = { + run = "19g7wv3iypbkcxhlybizkis6yivgn6z0mvz4rgsi72zaahpxmg7y"; + doc = "0nlpc0vm12h7pni3lw3jqq7fsh273nc63abw8yzw69crh3fspyqg"; + }; + ucdavisthesis-40772 = { + run = "0kdrwdk7mg3yd7hm2xmq63kgikr2p2izibfgw1whai921za4wlm4"; + doc = "1chajx1i2zmfh4ypnf8jspwr8kjwbfv7z07qrfasrf73r775yxnh"; + source = "08525i86hrv1387jn9ayz3mpwnh4z8kvjvb590y7gqv3cdvrsa2b"; + }; + ucharcat-38907 = { + run = "0xiryrx3pjx2nq01f4f0x3anx3zvkdarp87103z9zvpf6aa27slw"; + doc = "0k1aqic1ljafdk8xralygdyjapkqa0qiainrbf982233kjqclpvd"; + source = "08xxmm2rrpyi9a601bzxka226fnhmyqfv8cfbc1qdivn8658785y"; + }; + ucharclasses-64782 = { + run = "0d5rr5w322pr4bsmcp09vsldydxxm69mcpvpaf9j7z5rwhic9biv"; + doc = "1l6pv743lzdhnxpd8bv1y40xhfg82421jyri2c5h7j4ahlcnnvic"; + }; + ucph-revy-69750 = { + run = "1pp8cqrvhwqc16nd60bd6kb76xxnsn671icsph6byx8xr7fc3hl8"; + doc = "0rqj0b2a73wil9iy4sd83831nvbd0x3lqi5480ig2i01rq3lkpvs"; + source = "0kr0k411gpnzvgjgiqnkbdw8nq3djp8107886igcw26s46ipwics"; + }; + ucs-68759 = { + run = "07xgqkjhks344r0d9c8rvw2gvy0kwhx5kvyzkf2ymw1hiix8w48s"; + doc = "0icaq9irpb67mipfpv55kfbdy5m7dw83h5qqq98f5d1x14h3gxbn"; + source = "07pasmgx62jjdq8wgqgk10wkykzljj7v52xhl1ncma4idmd7l97q"; + }; + ucsmonograph-52698 = { + run = "1jkcyhrh5zf8p205xgs10azhp69vrz613ln9ssrb4485b7a25b3d"; + doc = "1hhr0z3sy8vn6cv2i7g8nfpnsdpyrsbqrclc8j8g6qidh83x2y5q"; + source = "0x465kyz3chdcj705v9gc8s0w3pmawaza93pcm8nxy3k7dwx920j"; + }; + ucthesis-15878 = { + run = "1mqj65aps995issvi1vgn7f7pvxq39pwxaqqwh7pxnki26k8czrv"; + doc = "1hv02nxak4laz9az2kr5lvd97l4mcnixdmpysiz6xqvc13ivkjl7"; + }; + udepcolor-69701 = { + run = "1i8vmd208l17r0w6lpzjymi73n6ci3p5izqqhbl2wgyxsq4090zr"; + doc = "1zm3znyvkjpz5ilbbmkk0lq6qaavk9p55g5b67mqm9z1qh423gjd"; + }; + udes-genie-these-68141 = { + run = "1fj7qy5cbcs03pkpcv8ii539val5ps57pk0836srwgmgh418csiw"; + doc = "0ikgr4zdxfi06ply66kp8v8h1p51m8fmzv87hlg490qaj8wmng5i"; + source = "1rz05n7bvf0c8h8b278m9q4pj8vdc29i5xncr2374lyhkcx4r3xp"; + }; + udesoftec-57866 = { + run = "1lq0n05v6q0p78jnq1wf67pgzh214lllcas4jxlpz8hrwk9n9v1h"; + doc = "1gd4qhdr4wxgjalxgqp0d404w65x7r3ipdkdq82lfcyclqyab8fh"; + source = "16fgvdzlxrcaxbbk9m9yxviv8v3qhki2s5kq8j065xx88zd181aw"; + }; + uebungsblatt-15878 = { + run = "198bz1875qhh366ddvdxj72jpcdinfxsrb2mzirr17fq6liwbwhq"; + doc = "0814xqw1iglvwn5y29fsvgbrm5clhgiz6ivbh8a8rayscbjwixmj"; + }; + uestcthesis-36371 = { + run = "0dsdzhf9pp2x4xbprii9rvl0h0jwwwd03va8mg7c3cjgr2nvy1dl"; + doc = "11z3ac2pnxg8qqy4shmdks7h33257nbkgj4h1rq49gc2ssqmp8pc"; + }; + ufrgscca-70603 = { + run = "0vnibzq6ib2kdf3kdgk72aznshsnj1izq648l8f8l7sdzw9v0pm8"; + doc = "13mil74klrh23af2as7s077ly4nc6v31qcxyp3v8rppff3jxml9m"; + }; + uhc-16791 = { + run = "1xvkp384p0xcba1lbi3b2najk6d2w1s78yi6vgppmcjrd5limif2"; + doc = "0q1wxcn2zclpj4bsn47jgd78xmp82a6x8w068j4ihza9pfvbqacm"; + }; + uhhassignment-44026 = { + run = "0pb7hw9krpri3ky7hfshjkkbk36cilf31iv00l5iynsnrw70lwyy"; + doc = "1106wbx02mbnkgzwwiypfz7fg1a3rmwyhlgnsxf4z081q891p3fm"; + source = "1ck8c7jx3qkxnm0a82qfql92s05bg5p352fw1yv3y7v86z2kh6ad"; + }; + uhrzeit-39570 = { + run = "11ysijqpnm3b4z7pnyg7m7kpzp6fiw42dc36gxk1aq55wsv7kk7g"; + doc = "0rln5amx6vkny0pm4yhgvnmmr9akwcrd93db7bifxdp07hjbvj83"; + }; + uiucredborder-29974 = { + run = "1zklnahb3inyf5qnavccqvkc02iwqw8mz7w1iam0lz2jmzgc1c41"; + doc = "1lxyssdc3sxsfhizm3f74lxcgpkaskljqpybwl1zw8m347p1qf85"; + source = "1rbxxliaaggn4rk6093lhmndas1xy111z9bjrgjrhjhxw19lc0ib"; + }; + uiucthesis-15878 = { + run = "19fif7a2xb3qrmkg8yfjg1hpisif4znc64765d6jrqgb9fqqzlnz"; + doc = "1w20kjwdgppl39axgwks373j3dsnidamhvqy1wn3yilzfb9vjjxj"; + source = "185mzcsh598dxnf2sb4mmvc3qy4pi43qrlim5jhn3n90qvwp62cw"; + }; + ukbill-69362 = { + run = "0k3wwd9snv9w8mif0snbxbgaykmrj2d25kakllqc9f3gdpjfqy7h"; + doc = "0c54c4zaznbpskycspfihpla4928w5g9w095lr6djnqb0spk8138"; + }; + ukrhyph-21081 = { + run = "1fnh98jcbn9l09mi952qrdw0dq0pjykwgwi35zz2lz8h8r750ihw"; + doc = "0bbj125zb494g9x160n3lsivims28w0drhfmp0c2920cwhk4m0xh"; + }; + ulem-53365 = { + run = "0v6p4hj3hij0qvq7vpsbnk11rhwwlx80p3g575jy4sn2vfw5zzsm"; + doc = "18ny9kfv3w2ag97czcj2gaqqy1gj2f7rd8r72vd7wsdihgqd5wzb"; + }; + ulqda-26313 = { + run = "1mpjwq43dj2am9llszy1yzz2jbhdskf14ki881j6q6h5zfwwacdv"; + doc = "0kkxa9sv2xg6d31bj00wszkchkk6raj2pvqji930098jray3zdc7"; + source = "1gb2r4zzr3q2kfigrb4j528jmr5paj38swhnp1dlb2dqr8y1szfc"; + }; + ulthese-60217 = { + run = "158n0yiqrb8x387b76c181ps3m66f8rvl8paanqnfbb257jn3hjl"; + doc = "1sasf73ax5nrk89a9ry87w8yf4czr7r7jwbg4cpwxry4rffkz636"; + source = "0rli542fgz8hbjcl4ag3vgkj2s44b6w3is62ai2zj1h38jm4ybh6"; + }; + umbclegislation-41348 = { + run = "1lsvsxjhjlfxlqvlmy4pqbgsr2jv3imzgv7zfa2p3gj382hj1qlb"; + doc = "1a3cjb20ycjs1nsghc9fsiz4kc8f6awah0bksqyh2ik4fnkydxb2"; + }; + umich-thesis-15878 = { + run = "0k1jl1v6nqyg4ld1f470x96pjm68hs5fnl3kab383363mly5ypy0"; + doc = "182vclnb9yja2jgh6j2b2f7421w0xi567s0jrzaqvbnaik5sk5x6"; + }; + uml-17476 = { + run = "0gl1063pjxrif7qpq9wxwajpsp32idmnlsq27y668lwpkpm0vmzn"; + doc = "0n3flbps3s8lhr9pimdw41kmyrfvn51pddm4d3yc08v96sgg65bn"; + source = "0ylzxyl44p0574qvga9arjl84ip8nsafpgabbwjrk2kcbs47jsi2"; + }; + umlaute-15878 = { + run = "0k1pjakg7x49lyvpabjaspwa73z659gj4qvgysm3rd1smkar6vy5"; + doc = "1x9l84zk5jnfasgqc4d35g10a5la79z5q6q55f364chc7bibyzis"; + source = "0ajdnhbdw7b0d8qxnbalv3867p5lrk4mk6xl9skmvmkzpbf4s9an"; + }; + umoline-19085 = { + run = "0xx4v6w2sw43nqrzdpww561511dcaigsz5blywqg72giw0x2v3la"; + doc = "0zpn7ii50w0bfh3cr84w6nk5zj0g8y55r577wnkdmzpm51qxznxc"; + source = "00nb73pq0s7xychc84438aa9472mp1h7drafg27wm916f10832cs"; + }; + umthesis-15878 = { + run = "0iby3d7f8mm4p5z4jgnxzqnfmwhsws6hg3yb2l0mrknlj98ww4yx"; + doc = "0vf8ikxi8706hc0sv1h53wzpd4mfiz607hzbhwq607k4hc71iz8f"; + }; + umtypewriter-64443 = { + run = "1xn06vz5lxr58xi6y2qv5wa5h2r0g1xnba43x5qh5ag6bz5ym1wh"; + doc = "1sgsj3d153nyylqz5q1mvjfh2mnll783863wsmh9n6zajkfxhv0c"; + }; + unam-thesis-51207 = { + run = "05lb63wclgxqr7jn7c38plhg3r806b7888zyifcivv85q143j191"; + doc = "0kxdr723xvg0lzhmzwpyik9vxy584y41pmwy8bi7197gz1hgdlzz"; + }; + unamth-template-68681 = { + doc = "1ydaxzcwxq1rjkawlapnfipjzlyzvbvijrx98pi9yd4zk2nnqjfv"; + }; + unamthesis-43639 = { + run = "0wqi46mdjsl06q7hyvy4wpihvrr040f5g23bgc6lm6lq11jadj6l"; + doc = "1l71n80psc2hzjs1lnfgpfpg13355sk9ld86104dkyrl645qx07r"; + }; + unbtex-70325 = { + run = "1djrj3ywcp9r9w3gj037vz2rw502j9vdz4pnb10zzsfc6v9wy55d"; + doc = "1r202y3fh8bg9r39vfa0b565jlpxqfilwwfjh5w60ywh32ps5pqa"; + }; + undar-digitacion-69742 = { + run = "1bvfr0zb2jh0q75sr6lrkyxqkh15r15lrdsapy73vxcm1s34i96x"; + doc = "100h0pzwawnv2c2f2q9f2incb8arl3jxrhaj5vra700c6i6lva1z"; + source = "0z40wjd915w64zyazfj2bpykq6x6sq6c3xmfh4wc5m91qp45wd25"; + }; + undergradmath-57286 = { + doc = "1z8my3fwqc8rfc1843j7lcmfka2023z9k0js4ygh1m8kilc2nrr7"; + }; + underlin-15878 = { + run = "0gm9cikysz83sdkhhwd6x9zbs278gwfw8mxh7z22l3c0nvfkxbfa"; + doc = "1rvryx13hyif7hw2wgb88n95qycip95xh92jdy1jm2l6pl3c5q3i"; + source = "1mczvxrhlipisffdi9jv5m3d2i7h34jpm6vi4dbl58cg9sasc4a4"; + }; + underoverlap-29019 = { + run = "14cknh021b4qsymflf0mnv8q2vvhgsf2088s1g6pm8ckpx7diq0r"; + doc = "1h1qvk9m04sp0nm4acj7kfib5cfpch1mkpvs55mnqqsgasgnymjn"; + }; + underscore-18261 = { + run = "0a93sgddm7xy8iby50yficparkr6hnzj46w70madbwpjkpnfya78"; + doc = "1lqg7j0hnnhqnfzdv0zzgpnmbysypdind3fmr6axkw0czix1pz5n"; + }; + undolabl-65846 = { + run = "0arfny56vh389m89jz17mr0xbdlmf3mf0wiilmkdia4sbnbv3g7z"; + doc = "0802sqkxir6gdkxkaxh867wjc12m8apvlhycl19fmlbivg6pfla6"; + source = "16ymhmx7by5pi36z6l4l27z1x8pkpz314jfibpc5azjmcphqhjq5"; + }; + unfonts-core-56291 = { + run = "0pyrnydswlqhxacwqpbc1m3bzm8v4gcl3ka7w2mppp77l8a70drl"; + doc = "0225vsqaj8l0g1igc4h8m94cfk6wv17vlnappdgxwws1fknz0x5m"; + }; + unfonts-extra-56291 = { + run = "1i7skyjqlprf6m1pnz5l2hn67f1cix4n3pai6v1a8adrrx7vcfdx"; + doc = "0d3cxfm110lg12n3c9hc88lqmx77rcsil1s6yph384scxadlg3bn"; + }; + uni-titlepage-68917 = { + run = "18s5vidaarmpppdw12ynb6fjc52sn5i5zr5lglvgfqmxnwx5i3d7"; + doc = "0djb52kfbp3nn4prj7x613g58qqjf1lnmcxg1rq2y3kam4g63r37"; + source = "1jhvh4aj2z3qzf85wq3isfvkwlf5cghrkhqq82q371zxaks2fd0c"; + }; + uni-wtal-ger-31541 = { + run = "1jyba7g6qmngn4lx7mrmk0j190zkjv8lw775w13hxr2yky31cf1z"; + doc = "0kncfbrs663qcpc0nsfhf0asjri8103laj9zpaayk3by612lfgj4"; + }; + uni-wtal-lin-31409 = { + run = "1rc0dc1g1fwhz8qa550ykc8azzc4i748jh37a8ppgrf4x2lgxzjq"; + doc = "1ja9a6fjrlh1lbjkcsal7ahw24w1gs1mzma6jiiw5p5kbmc4zpz1"; + }; + unicode-alphabets-66225 = { + run = "10zmjmbrlxsvq7snzm3p89afj4xy4ad0ni06fi9dkqjmi9l5nph4"; + doc = "18l3zd0q5ixwpvbcx2glldp75anqkgm3ifnf3lha2iqapk03jsm8"; + }; + unicode-bidi-42482 = { + run = "1prl0i2a9dg5yc2yl1x1k0zmz9lww051w1zwy8cbyvk3rd765a72"; + doc = "0ab0gym9sjllmqdclkjfbc4fh9n20999mv7z2gylfybirm0n7i7c"; + }; + unicode-data-68311 = { + run = "1ra75819cglkd1gdv96wzflx65bc73v46k2hmn1bxjachz3cd7fr"; + doc = "1b8zpwd0vr238may4wv68xj77w7fiq757jv3i45yz0gir1as9piz"; + }; + unicode-math-67919 = { + run = "12xc969s6x742a3aay28354cpvam2x9ack1396q2hk1wdhg846fl"; + doc = "0y0sacc4rd4ilzjfw10v058wv626wlva1kzrbrbqxsclq3xcm2fy"; + source = "1wr1hrxd63z5iisdw6k95qjknl3i917y2dmnrflyn0afvl2pxjg8"; + }; + unicode-math-input-69591 = { + run = "1bz4f905r178kkdbbx9c56d0l63a3gzaqia20qj0q0zhqvakln18"; + doc = "1lh4qx0lz50j2j69m62330snq5wsg7vw5847z3jk4kpliqa9ybm9"; + }; + unicodefonttable-70354 = { + run = "0yvn44xyf0lh8p7r2kmdw15gwyjc9zcv46bc7bai5623shbk5xkf"; + doc = "09al70k7rigadasi2i0rhza88wxnasd6j4b8mlyaz9pzyqc1dxsg"; + source = "0wagy5wdim81c8yp9ssgbx8hgf5322hc2jwg3zwd5jsffvlv5jab"; + }; + unifith-60698 = { + run = "0plwq53cp9rsdsjd6db1g8b39k5czzdsmmrfki7ckbgiw317k7w4"; + doc = "17q97073nni7x2d1zlplrwfvnxw9pkjgk79jwcvbgfjq09cq374z"; + }; + unifront-67054 = { + run = "04rm3pia1x68qm5kabay70fr1szrzvg4bzk674din4babl3nblal"; + doc = "1d2kmwfa7cz009wfc713my93v3pgh1jcqz13jcy65f7py86qf2xp"; + }; + unigrazpub-64797 = { + run = "1rg5b9f3679qn8jaaqn29bfw3qgyxgx3p3zxi7vsr6kn6ada3j82"; + doc = "0hpjzkdhrl64g00x7jb55wf5mz57gab432vxq3hd4igffrxvk88m"; + source = "0mdcp3f8by29abbclsy9ndydgslpybcs5wqbiz5aiy5blp8d8abx"; + }; + unimath-plain-xetex-66394 = { + run = "0h81w9pzy11mnq63401m6a8nbmz11xxvjfawqmnyzzgpx0v0n7r5"; + doc = "178slwilm2klrln2q7zm42xf6hanc16ksvrn6hzfzsda46f5mrsn"; + }; + uninormalize-57257 = { + run = "0ai1w8n010sq2fmwvp7625dfmmlvzx9d67ji34zwxdl2cyjlgsw3"; + doc = "1dksyk07zjmwbzgc7c2d5lz7fkvrllbj1nrpb34vd54yxl4azgip"; + }; + uniquecounter-53162 = { + run = "1g7ix0pnd52dsykq5na5d4kfi49zm8gmampf5yn281mn901p3wjc"; + doc = "099clvqs76hiwl8i2gqj2hdmj2m77v03pc82sls2xpwvrs1dqd4s"; + source = "0cgpfgv4yybrq1ryhjrzwfwf97805dw6if2s1qivhry94lb96vn2"; + }; + unisc-63178 = { + run = "16drn07j24q41a99w7cgf69d9j21if2csf4lplbkrvjnv5rnpdda"; + doc = "1s0xqq03ccx4rrmds2l9sz7qphnh9wsimxmghmy7d1slmfwg2g1a"; + source = "1mxjq2s5ns2lhrrqy3xwxlnn3fcb206gvbdvr75kagzqb61rz5mq"; + }; + unisugar-22357 = { + run = "1dx088b21apj2rpij4pxa9srx29irzsfmlp9vn8fjpm1ag60md98"; + doc = "1mnpbd68i0112hhcgiwc2j5jkwffrfdqlrdl896ybd0cpwq5d8sp"; + }; + unitconv-55060 = { + run = "07nmxxclxvx28w8w7gmgfs5vqgbkxxavw8c31nk54dvskd6l6zlk"; + doc = "0yfcqw1fx38kbc4kcw1620h6mydzzxi1y67x1yr6wa0aiwsd6il0"; + }; + unitn-bimrep-45581 = { + run = "0vv9vc9cvw3bjfndlfyr69kpziymlgalyvc11av9kq2x5b4jlc5b"; + doc = "1wyiar6xjhsjcfnxhlz8y1l9xvlcpgmkh360am85llfqlnar5w5f"; + }; + units-42428 = { + run = "0rblvdf1cgsm4fda44vvldy6my58dnars88wv2blgnzny8s00jhn"; + doc = "0nn5y3w25sjxq0bxq07d6453awgm4m4gih5678lfxf9yvnmvigq8"; + source = "0mmqp3vhly9v02fv4q4d3bq7zzx8nmm33nlvbn7137jgc7p5vlbd"; + }; + unitsdef-15878 = { + run = "1ck9awf9mzjhq0x4c3cpan79imh7ijpffii90955jc78h3bhcwkg"; + doc = "15svjszg72axskaa3yg91gvh9y01s1nh5x6nhwqbr9mz3bn3npck"; + source = "07v6xpwkag6fp8p331gcfbb0p1ca36rvrs9kbkayc986k6nds688"; + }; + universa-51984 = { + run = "1r8rh4jbx3lxciszf93klg3zwv06qqgnzikhp11c2qmrjrk9gznh"; + doc = "0acfyvdbqagda11730d5bmr5qlfq7hiqw7dajq143i54k9ln8mvi"; + source = "1ydba7wjiqnjc8drv5j8skv5q8hjrliwd38s6xj2jd12i0zp3gyc"; + }; + universalis-64505 = { + run = "19v4kl6xbqj5lpxlpjghnnhs2dnljzzr71pvw90z71n6wncza5gh"; + doc = "0nw6c17jvpyp5lvarj2hf1ir2hwc54ns9nflw4zpgz2ifr5kr1ci"; + }; + univie-ling-66728 = { + run = "1aqh4gpxg8ryx6lvqwiz1m82hsjf1g1206vqfl3kml3vbkylv21i"; + doc = "1p9i4gy6wimgfwcwffqf5hkpxhj2knn7ljfdx818rscrjrrf592m"; + }; + unizgklasa-51647 = { + run = "0clwxzngdy6n7iwk9zrn21i1frmahdf0s9qq2nqlhk4h6rxwb8jb"; + doc = "1q7q2fpgpjdsmbfj9zijccqpl2m6n0dch72wl05a64hxg117jbl4"; + }; + unravel-69308 = { + run = "0n440qrni1qnbhjajj2kd7zwgv8sk73bv4arasha05xfic0g3arf"; + doc = "1smf996jz3iy82p34b0qjmjnpipxdakp0b9yk5qxv0rbkiwkhymc"; + source = "0hb343svdnjx8czl4x1wlhpmzhrzsslykpnx9aywpsgn2xabncnd"; + }; + unswcover-66115 = { + run = "05nkk3xgpjcdlsk8xrj0mn5r3kwzi15awish2hd205v1rnbjiaz6"; + doc = "1jsxc55wrfczcc9mnf5yl2yqbbzbk10jcdly5z5nyfvg51427adw"; + }; + uol-physics-report-65761 = { + run = "008iix41i3zxghxmxiyky0cyfn2rzy8q64f49dsj6nvixp6zlf9d"; + doc = "0pbl7vx7xvmvi7fx7l0mn98hff9d838n19zx7izg3xgrqalygpgp"; + source = "05rd3ss59gcfa9i3lpzfb6f8rhnmx50868si3hys13pqhwb7xkn0"; + }; + uothesis-25355 = { + run = "1wgs3fxg01cxcpnhk43ik12sjdip77fkxdaik6w4w926i8z0np7s"; + doc = "1zmpx6biaxlm7fys5a3qahglpbqgn6ml07z6q8vplyqgn213hd6d"; + source = "137c9av6i6b6hg97wmqd2iwqzd1dq6lvg2992wnbm2bp2m9r20zl"; + }; + uowthesis-19700 = { + run = "0iv9s5dfmbrhxbx4kqbhxjf23rln4ymcx4kkk5fmc67qi51i8jnq"; + doc = "1xcqs2h6qs2lca74mg1jvqza77xrph53bk9dwkk0bprhkxn1all1"; + }; + uowthesistitlepage-54512 = { + run = "17xh2myc3xj2zwbc7jjdmnfqhmhzkqj3dwwn2q04hcyr4bm7vnfz"; + doc = "1gm1clfvd0g45fpgf6h4nmyy2vrc0d9lqfy9h3nn2pnh0ki2z0ir"; + }; + upca-22511 = { + run = "1px88kyvr7jkzzcbd32pi7zlak9wwzf3b55yhnh9bi03pk0il33s"; + doc = "07gsza0vhs52qjj8im4i1fg2v2lch9iwk424ik9c1xak1v7s9d23"; + }; + updatemarks-69989 = { + run = "10shcyaanjg9dm3pb08li46q6hbksfd4kkkmj83fivqrm3f69l88"; + doc = "1k4gkav2afnrwhg1469xhyypmrzkdq1zhvvwa4zmavky9lvwzghq"; + }; + uplatex-66186 = { + run = "0kmw51xvg44jrzn6r1w2biz2d0m3j533qadi4bfjhf2dzi4jdg61"; + doc = "15b338kzdd0xbglihc5hf92mv3jwmyxp2pf1nb9l75cxnqfglzjl"; + source = "01gpwxp81hz8824y1hffq6b035l0pxa8wyfkjm9kh5m58j52s50w"; + }; + upmendex-66381 = { + doc = "0mj8nmqr3z7b802kvjmnkckq89l694an7s639yghf3b9b5v7xihx"; + }; + upmethodology-64613 = { + run = "0r7k223ypavdbywq5fwffyysn68pg12dgp842jd22b866ffm13pj"; + doc = "1vw9azpz8vwanfg60vr1a9bbx39k8v6jhvn505pvmf8fqgkqd9ch"; + }; + uppunctlm-42334 = { + run = "1a71nsc5dnaa8gb4xmnlhvdsvid2h9gwmxr0xa8blh4xd0vwi2d9"; + doc = "0d1qs7krblmnf9r2afvzx5ir94aqgxv8p2d9sf9p18nlz9f5h06q"; + }; + upquote-26059 = { + run = "1zglh6pb1fq0ipsivhj0knhcwcg04mjkxca5s2adbbfk2xs1iqgy"; + doc = "125756iaikya3v0wk9a712klp39ndw7i68bybnrif2klm4c695lm"; + source = "137lbzacpmkm1fdmp548m6r83mnhclsrcyqk1s0rkp558fpnqpp1"; + }; + uptex-66381 = { + doc = "14hn2n6jbibbqbdr72j74z5bz003jnlabi3kja0f0waxhas680gd"; + }; + uptex-base-68298 = { + run = "0g1ihpqi9im0k7zg8vmwzz8mz3qpy2nfgsq5r7kidsar4yrqcj1m"; + doc = "0sadkwyprlv4i2mh0mxcf2paslskqg400xzwnndycx99yi9bvrvk"; + }; + uptex-fonts-68297 = { + run = "1306b0nq975iskifmbj0ah66dh969sbwydblhv2gywy0yddkg8x9"; + doc = "14m7l415n7ywh0k4k6pnq1kf9iw7x0xv11qvi2n1azs5r9nyw302"; + }; + upzhkinsoku-47354 = { + run = "13fm9r3s01003n8ykbq8plx3xzj7p9bz958ylkl9f10kd9favr57"; + doc = "0hd55x231kpcl1rmds601a2k1yzvhvfks7sg0424gzw7wirhns75"; + }; + urcls-49903 = { + run = "15hnqy2fxqblr9db4h2r38v1h4iwhk5kcm8qm9war1c1pgwg2a6l"; + doc = "0axb3cpbqbksrixhksdhbjyqyic0176lyxxk5di268jbr58203xp"; + }; + uri-48602 = { + run = "1mmxhxm4y7qsvq4kgdnq2vhid360gcgq0yxbcgw46k56hxd61kln"; + doc = "1zadcddyfrgfbrsyl4461zwz8g3rjwypixvmi5ny8f80z4igal6a"; + source = "1w5hbpzc5xka2z834hnzx16ky0kdx3x4y0xxs61l9gx0ygqkzbpa"; + }; + url-32528 = { + run = "189lixyamvrcpds2i7nlh4w83mk5lnk73158kcw3qjanpncnnn1f"; + doc = "1xragd7gak0vzj14f7dcx5hxg8plh47ncqdb1m5liaibrdlhgpql"; + }; + urlbst-65694 = { + run = "0kq36hv6hmj82784c1cf815xgvpcdzgrv5ppniy921yxqxdxn4yv"; + doc = "0c7i74iybjra6mmra82ny1bs09j3qrvqri485p4h1cz6195v3wln"; + source = "14v0wynzshm4qcical4q1vnvmx34ds00fq1733ivl6hr0sj833mb"; + }; + urwchancal-21701 = { + run = "0hlaimb12imiv0h7khcaar4xi5dma11bqcrb2b6imd4srgg9b50g"; + doc = "1mzfmfwny5mzag8wf1h3k4xbmbzphwqv6r74sql8wyqw53s337jf"; + }; + usebib-25969 = { + run = "1q38qzz87nh2hbmml3b0a4919dgk6d5rn0z5bhrc4ip27dscvw07"; + doc = "0byl3xhiz3b4hqqmq2wi5fdbshh5prvqfnhjcgjk619bn99cijxm"; + source = "0asby43xsd35aazh2sncg639x91f91shs25f6f1127rskx5fd7vp"; + }; + useclass-70447 = { + run = "0cdxhh52643g3p5rszasqrkmvbbvjj211qkhlhmb5xdq4jsvkmry"; + doc = "017x003x7cqq2bmhwp426l5lqm1bp95sl9mz6l4izk94y5jsyi97"; + source = "1cr238jqdamc4pyq4jrmsdzbihqkdgzlb5k8g12d72hywk1brlid"; + }; + ushort-32261 = { + run = "0235a399vqry1vdyfyva9anav8axs1pxwf9v4hhhazsf85m23qqn"; + doc = "0r0jib3fclxjaczcbzkb8ywmnz0xkrj02blg0f5i065h2s1qa10b"; + source = "1sp8z5jnb5qlihv2hz0j2gs4rfqpy0ka3npph1dvvjvi5520c94c"; + }; + uspace-63123 = { + run = "11kmx5y9kdklgpfwzzh8mq3r9ycn5zv0a1pkl6yxy2vsyg6wkfjz"; + doc = "1bxvpm8j88cawv0cxl8h65q33bnid5sqv8gqia9z13h00jcgkjcg"; + }; + uspatent-27744 = { + run = "043az1c7bs194w7frr768pwaliiaikfibxh6zqiznc85ax6q3d94"; + doc = "1q04i3q9693ykpgsx1fl11w0y0kxffqyljns1qy04935s5b8vskv"; + }; + ut-thesis-65767 = { + run = "157rirfa3bi7pg1x6641r0j22ycb4vq1pv6b1pf0cadcfflh07dy"; + doc = "06pkxz4kyyxm6pf34jdwm21z72l4ry7891508yc0hic89fgjlcl5"; + source = "12xprwfmjxwcf4mpghcg0hsxsa8bd5jkg7pvp485da3k4pgslx0m"; + }; + utexasthesis-48648 = { + run = "0j8jjy8i5i9lgy7m9wnvj36ms597amnvb9a0ac2a2wh7vqf3dxgd"; + doc = "0131pn2531bwmsv3ak1kf9nc4v86icxjg19d28sqfmlnfvl73v4y"; + }; + utf8add-61074 = { + run = "1xgp93wcvb2jiaggidznmbp173w0kfhwcw2bg7829hl60vhqnsjh"; + doc = "1wy2h2a7a36b41i5ya268bhb6fiq9q7wqvzv3ncl1ll6wvvg0c3q"; + }; + utf8mex-15878 = { + run = "0inwvyrizq3mr4c78l036ib15d6v2bnrakm08hvxx6ck753kn1hj"; + doc = "1nj94nn4s662jh2wykvrwkiiv2xzg6v8q4iax18d20p75yfcn3v6"; + }; + utfsym-63076 = { + run = "0w72bcx656rdkbgndmshzd6ackh1r6x6m2f6bjrc3rxkmhvf2awc"; + doc = "17m89pxzhfrcg8b3pai9bpivypmzfm0ck0pbcp38nabbnwk7bmbl"; + }; + utopia-15878 = { + run = "1hsvl3la37nbb0b2q9995w1hlgvrc0gkyjkgqbsp99rk0ry392v6"; + doc = "0yyxzyg38z6kip43gxlj3j55rdabqjrzl33yp1z043rblfw5b9mc"; + }; + uvaletter-66712 = { + run = "0qp48wng88fqkp1x0c3brzkr9f7p08pvbfws46dzrddxg5w4nwvm"; + doc = "00g32zdkyv5x3hzhdph754f5mcqicgzqvcwigxf2dz9shb0phgk8"; + }; + uwa-colours-60443 = { + run = "0j3yywmr4rb011062gwaz4q56jcizblah0a4s3xi2gh0jycdfd1v"; + doc = "0pa7a1ic7am0w1chl6cx778gv86pf38m12s0xdpz3hp2krkrjxwx"; + source = "0h59r1sxqsgsl79jvm8q015mck28z89c595lkpilymahfn3aqi88"; + }; + uwa-letterhead-64491 = { + run = "0y59djz26f6br8gpdaxbzx0sm6p4gjyvfdi3g5w2rhvzv92w81is"; + doc = "1kj991b6w3f6svzf130g4zb58k1n1fq18jvvradrqygvgrj8lg0w"; + source = "1ysgg1idxm0h3rslw94ih10jmb85n445rr2cfzx9x1fhl2zclj3n"; + }; + uwa-pcf-64491 = { + run = "0bgg42n0sbp1hslwrrc8xclxpj87sggicxhmcijiijfdb88g5cl8"; + doc = "0r8cmhy9laq7j40vkgp9v35xsq27xn5akkj97qysi844n4dia9kb"; + source = "0sm6zx16yyi4p3wwfsyzgp4w7p53mqi5gbl4qcjj7iz373mmy3lj"; + }; + uwa-pif-64491 = { + run = "1ia1yv0mfxqrd61jy5qqf8cgpk3jxq7simpd74m7zy27sx2ywyg7"; + doc = "1kl9scqzc4yyvi4b1rghr6lvpvq5587bfjl207675jps4gwcqhny"; + source = "04zs8241iaslw7a43d9pk6scb9gd65dcjmv2cd29jf98ybimy1m2"; + }; + uwmslide-27354 = { + run = "1kpbdd8q3q0qkz6alvlnl24jjx6shc8z8p36d9grd3idyx0h18r6"; + doc = "1m41j80x7cj8h87fkyw4mwhvqhxvxx5dql596s7xay8lcwlxq5i6"; + }; + uwthesis-15878 = { + run = "0x6j9savd25v7s1nxzs0yqv10i1bbd89pnb0ldjmwilrfr78yw9c"; + doc = "1plbn6dkqwl4bdvsyskzylww9j8akxh120yrnkfamk56ij9dd0py"; + }; + vak-23431 = { + run = "122crp1ipxwmxp6pd0x04dxnaf3hb822znbx8v9gh93x8db4khf2"; + doc = "1jxbijc1kn7mx1p167zd5rdczayz5xxxfdd2pwbsmav8zql32aqp"; + }; + vancouver-59192 = { + run = "0rlxr8q68lrv4zshsbzdwzh70kfmqxzcn0siy2x770riyfj3f3z3"; + doc = "07jwrms24pa30bspmaljs447cphp1jaqjpdnm1j3qvi0svjr112h"; + }; + variablelm-60014 = { + run = "0apdyspg0q8x1j6ryzbibij9hn0gfqdlhjj6nz9q8w45bfywclvf"; + doc = "0bcz4sbq33iwpg9r2vq5g3zpxb90xljjqbis9srk83z4rj7jyp22"; + }; + variations-15878 = { + run = "0cij0zdvlv3icymqxsfn6mfzdmb3jrxnfa3lz2kz0xx3x8yn0sx7"; + doc = "0dwsw8j2bhk5cdw61xlcvlg152z6k6306zpbap2gjlfhf0z57syj"; + }; + varindex-32262 = { + run = "1s3ff9i7w7dga61hrkd7m2rfjq7wrkx1b7alx68kxkjcnl92rb9p"; + doc = "1567hz8fpjbjsra7fxg8dlqkd39d0p0a6lj9kpglv31chws6w2sl"; + source = "0gdrsb0n4sr7a4n4wxrvnxh34a6b1wzpqcp2m39rvw9my3h07vhy"; + }; + varisize-15878 = { + run = "0sd1znd4c2254fsj6i2snj3ys1h5vss2wzylqcp2pv31kbgpfh0r"; + doc = "19w6h5w08iyc2kg61h5q4j4djwwm2x0bhhp6k60kfxnk4glccrmy"; + }; + varsfromjobname-44154 = { + run = "19j2avb7jqb9ndnfskwqfm508maqa6kd9qmqydflcb9hgjkz47xc"; + doc = "0mcv48nbly7ihd8q8652v2gm6drvpjv42h0jrw9dpzraljzvpgff"; + }; + varwidth-24104 = { + run = "032izb0vpcwiydg7lli6hnawij95s5ygkwdp4bfk1c9j17d749cr"; + doc = "1ysrbpv2mmi8fcyhdabvs2jiqj2mkajapjvsf10c8rw6i3yaplnx"; + }; + vaucanson-g-15878 = { + run = "10dk1ff3swbnx6l6c30s1ryn2dbyx9harmrcg7whmqdys1mahsbq"; + doc = "1dlf50f0hpislqkcbr685y5xg7iz2y6zvlzjdkjq3af4qv7ncf5n"; + }; + vcell-59039 = { + run = "0m9r0wldir0g8y32aikm2il8qsygsc3zyv2zkg4wn7jqlidk6f2i"; + doc = "1zrhf70s70zxm5ck22vbi88vpdjn6ba6iay88f41x21f11l536q5"; + }; + vdmlisting-56905 = { + run = "10fzab1jn6hk6ah7h9kyv9cyrv2l0gvlmask1c90njhvgqi2526s"; + doc = "0b0vrxv5mlf721mfdvw46ixidgzh0bq88sgrvxb10y05wjcjqiwc"; + }; + vectorlogos-69010 = { + run = "1sibmv30czwrvp850d6zgw30daxjlz95wm3ck0rb4bshjy92rg9a"; + doc = "08hkajc2hffhkn7zg7sqqcjc3gisqmkx3fgy43vf7vn33wa42n28"; + }; + velthuis-66186 = { + run = "1ki27wimj82h2dgw6c1f6hs93yg794j711x1w3vmgiwz3mdqkzdf"; + doc = "0af9p3rq7d6g0549sj74vl3scww6ia88vwzfv84fmkysa6ph9n2g"; + }; + venn-15878 = { + run = "0kfq2wnjsbvk0ciwrm4923fpr7whmzyv240r4zps41vzpc4mykiy"; + doc = "0izj8qsnxj9jgslwzz37xwr9n812y3cxmfs52yd7p4638qid50im"; + }; + venndiagram-47952 = { + run = "1v4hbkc214fjh5wc2myqxa6jcvr6sa31c7nz9avzj2kf40kp3ip0"; + doc = "0as35w7fd9xjqhrr3v3nzld9bnhz6xg7rqgs2hyzx150xndy6cb9"; + source = "0ci3ajx316b6iin315z1xkdfmxbbflnj8sf2ww7gkxf853qakwlc"; + }; + venturisadf-19444 = { + run = "0a80pz2ng6grjj97hgk277d25ijgc7swjjsr4rjbd1ljnfjdvf51"; + doc = "1b50h04xl2nwlpclfxl7m1wnyl1ysf9d7p8jbahglnxaxxn8ib3r"; + source = "07isrwhzw538w4asc5baw6wbfydzdrflrp3pk1qilq3a5wcj1n00"; + }; + verbasef-21922 = { + run = "1bb1ddwlix4v6knmz68yy7i2jsismqdz189p1664q78h12rxcpx3"; + doc = "1rd4mhi7w3nsvvx0zxv43nd4ldw7if1zadh0xxbzbjaljypmshi4"; + }; + verbatimbox-67865 = { + run = "0pgim93ifd9mnrx7fkl9fprgf33wp7m5anms8qgzny0lxsm1fafz"; + doc = "1v32x3j5zc8yl7rgxn3j40p53x4f1y8abr9w5fj0bwhs8qawv2xh"; + }; + verbatimcopy-15878 = { + run = "07syldn58zwnwxwdsmq63qgr2nb0bkl9di09knska9jk0c50ql1j"; + doc = "06awpisb1y773xsijrifh0121pq6fdzp2ai0snxny5vrpmyp412n"; + }; + verbdef-17177 = { + run = "1dy1h0vcknnizm2f3zggga85slga5p77aw3ll5ca3kx5qxp1xqhl"; + doc = "06zh9v72ywrg84wlb96p0y28sn9919pn2xjgqhaii6irdf3hmlma"; + }; + verbments-23670 = { + run = "1iv716hb41cy7bc7bk2420lwdykpccyg6wxvbxb8vk904fsgdk2a"; + doc = "0hzrzb6m8iakip93in80x6k15b08z9xwjrbki12d28xdadqkpqcc"; + }; + verifica-56625 = { + run = "0i5bh8j5yjvql6mywfs617mh3pywnqd7z1m6158r3jpwyn6ki25g"; + doc = "0sinc5ha8k3nk307q0piqwj56r2bh4pbxxyww29ygalfqjr755bb"; + source = "1zn10fr9kv131w4id0djycy7492ch7gis27gbr5r02ydwm7nny1c"; + }; + verifiche-69726 = { + run = "0c706gskzpr0a379a3liwad2d1bavpj2zpacdkdm5vw6vxnb2y4s"; + doc = "0rahx5d5gkfq8vyshhknvfb410wc8kbmphmnm0h7b46c0f1r8x8h"; + source = "0sgxdki79pm9933gp8zd8gbklfqa4574g1if48b3y4jh2ayb03g7"; + }; + verifycommand-69389 = { + run = "125r3ncvllap1vmnj1wz11ir10223fvbgsy233qmg0kdclnh4v54"; + doc = "12j8v0r2jay5f1w20f7yi1kl4jdfqrv2ga5748xksds7jj0x7im3"; + source = "179642vhwmgrmlvavl5naxnj1a3279clgjyc090gqw8vg8hbnccq"; + }; + verse-69882 = { + run = "108qi1600f5q9im9vdbhnh0yalpjcx7qy90x7xqxnjyqh7116c3m"; + doc = "0zqw1zrpm3hzv21gmscm9b3bfyxadw9svd6hxp0gf1virb5nlyhv"; + source = "09rj2vkc7l4l79w97iycyw31lqwr946rdcrvwzv8nargpp0ynw8m"; + }; + version-21920 = { + run = "19b4h22lqvgzqqm0pivjjhmpxmijrr5rfy0xc9g9y7czsrp810hb"; + doc = "17bsgyjvnna790nz3x94wbwslxkkz3958vj2l3jbyphm5vv92fxz"; + }; + versions-21921 = { + run = "07bxhbpsqgdbpwph2w7gam699605m181xmj8jhpcsf4rwcpnjik7"; + doc = "0pjz8nk7dnf2jp6yixhi55zbrlmhv477qsx6p52dwkf74vxgv5ki"; + }; + versonotes-69249 = { + run = "0kcfa9j99jpw521sz1q0w9qfjs76138l1rdy9ha4gb61m5r95008"; + doc = "0z0mpqrz3n8lp3wf1kfzfmm39n7rwv2xxfvy4x76a67qdjg2glbk"; + source = "1h0qkcpps65a8qcbzskbghsdnqvhgg62yk7ihmv487a8lid68js0"; + }; + vertbars-49429 = { + run = "0a5fc0a4z482fcxx27wrn20fsdvx9xclsy36623h80pxnfw49aji"; + doc = "0y8vfa23ld199r45pqd56rv7b0iskskpaqc08lix2zss6a082iy1"; + }; + vgrid-32457 = { + run = "0yb2hr83xvy19j43kmjrx9kf2cadyairjr45vg5a0pbr9nwpzdsr"; + doc = "0ymfdbqws78n3mm9cbf7zrcdbn4hb9pzzjsw77hlg023h4hkddh0"; + source = "0rwsi6lmd4yhgpa6605631ld2bn8pzij7radk8vhwsa1sn19326g"; + }; + vhistory-61719 = { + run = "1m3k7qhrkxa52hky57jp1p23sa2binjfkywv51hjfkz5cyhcqi3r"; + doc = "0f8agd4p659ncqx66yam1q30jaxx20qcmg649w3vy7fwf6crjiyp"; + }; + visualfaq-61719 = { + doc = "0fjx5y95n8bhsnwsw34sazbgygznvw76z01rrxmn1bp8za7751n0"; + }; + visualfaq-fr-67718 = { + doc = "0xk0qly49dqkrw1qjhnyp4r7y5jykghlp1y26hipghlaqqhdynga"; + }; + visualpstricks-39799 = { + doc = "1wfri908smlw1ngqq1mjll2b80b29piicqmv67x0xs1v3kc2sz3s"; + }; + visualtikz-54080 = { + doc = "1q0a1mhc330z8cnhghp2p46bxsmzz8cdba8hcvssglz0gsq5z5fc"; + }; + vlna-66186 = { + doc = "0nfb7mj6y9d4n89z59ppi96grfylwky97mxcv9rjflr5kpqlpga2"; + }; + vmargin-15878 = { + run = "0k0qp68wnfr13i2prx64n463g9xa4cf6y656m2bc735pvsa5ln78"; + doc = "0l1lv0szznc9l5jz261nkcpq6dq28869s6h616rama40kqpdm0bh"; + source = "1vwydnpsd5ha4g86dg2q5s012d6l3yrksc580m41q3i67npb8chb"; + }; + vntex-62837 = { + run = "1857xywsc16rgarwhj30jk9mfdw62483g31gsir9rgibpxdjchsh"; + doc = "040364kv9mizvb2bw22in4z6smzplx7jg9wac7h3wl7739qcfwgl"; + source = "0f7il38l3yp8v6yxgg5mszgiki9z0as1s1i99ky50bvvb049x8zg"; + }; + vocaltract-25629 = { + run = "0af79zsabml28hwhf2nq19s1sf7p6kljyvz6c2zlbx96a5k9mjs6"; + doc = "1sjvklf54r6znggylk2wyf1fw806v8msc2g24ibv4p1ia3da2giq"; + }; + volumes-15878 = { + run = "0jl7n29bdwi7m74zb6alp0c4aamic3776n5bd9xcnf5ihfmh9ssv"; + doc = "0052j7zhnbi20x6hsxv68ls2byqci2n4crssb243diid8yc763ac"; + source = "1lvc7fhdblb5ys2blbm0fdib5y311nz4l6xll1zzpsvbwpcc8imp"; + }; + voss-mathcol-32954 = { + doc = "1c7kzk2m2i8f6vqywnzfvcmv11ckanhcjxf72p4rgivw8f0lbwjm"; + }; + vpe-26039 = { + run = "1w2pxz5dg3q42cdydj10fzf9hmwbc1xy8655s7ngzhnj0vljrj1l"; + doc = "00n8almyx5g71gwxcn05vpfvvisqpr4k1lp123ys810p5n25s31z"; + }; + vruler-21598 = { + run = "1di4a3czay9gj5dbps78iik9r5p0n5vxk9dagc2ak6gdbc3rz1ls"; + doc = "1885iaxgfbc08ldwrzv50jpmczhnjjvhq460vspdp33f3z5i7ifq"; + }; + vtable-51126 = { + run = "1bdf5h2nsw76y2w4gw1ap0ncg9ibydaqdhlpynj4qyy2c9qkb55q"; + doc = "1w144as1s1kfd9a8z92kl8v2qm6il09k5myz9siq5dqxdfs3k9hk"; + }; + vwcol-36254 = { + run = "1wfqcin8xmxrby5mxn9s5j32zmr4ka4k0h9ps4kdddpq238db89n"; + doc = "1zyndap37lq6jk9pafpzd3q5bib2x7yrnz6wk7wlgmgiyb6smj1b"; + source = "17apnly4vihdn7dzh6hibgairrnvzadxlv724cgb5lqaci74gnqh"; + }; + wadalab-42428 = { + run = "01lf8nlga2nycr23xpzl6xas2nlgajjmia4lk4zvjdgcxqnipfrq"; + doc = "0m8x6plkry0p3jabvhgkccb2rvlsz941di4ihfc8schkq7iyjlxq"; + }; + wallcalendar-45568 = { + run = "04rck2mzvzpm2f934iz4nni9s5w9g7a0qcp3kvp3bsqa6nhhcf6v"; + doc = "1b2nn4cwsb6vi29a49cnnazpzffwbpyw48wffklv11frbmk74dnj"; + }; + wallpaper-15878 = { + run = "00cixdnwr4vpfpqfdcbra4gwz0i36kddak8ywv8l4q4d4yd567c9"; + doc = "0ngsn8an7gqzkw96sdxb4q24h7bvbjw0gsqk6dzrdphclvsjy8w4"; + }; + wargame-69692 = { + run = "0v7mc3hfzjissd16f4l5fmv0gx5dsba9rmgmbsmn5ny0y0b5jkgl"; + doc = "10nh98h13fip08k15wc1105cw7zi0ihb614nz12aynhligi667c2"; + source = "0n6gg94s02c026ca13lmg36f5djdnn88xnf8yvv9k4h4v73qaxl3"; + }; + warning-66616 = { + run = "1rsqy10fghs5n2zb3g378csxykrlympd40g74wsz9v4aqb5a9xf1"; + doc = "1fsqznifd2fj3czhhhii1j1z79f3vdkjhf46sdhc67y2izqmg8rj"; + }; + warpcol-15878 = { + run = "1dr0ic0pskvw6397q1yy1ibbpl1c1kndqaw5y72zzzy52x4l4j71"; + doc = "1jc7rilhf61irh8kgc437mp45ryz0yr63z11r9ixbsj04dmfk2xr"; + source = "1lnd9b42xyzfnrz94x10vxrmfy6r2l4wlxbfc1c02fmnchj2wq6c"; + }; + was-64691 = { + run = "18yszyvcv57im6qk8kyck21mzyzwmlzn4s64jlzz0pdzpjhn7sxa"; + doc = "1dv6d27zlvpb1kc8qlj1jxbq08czxqrfq9l0ahqdcrl3fawdgiv2"; + source = "0ylf9h95ig7vy64hai9skl7dxvkf0rj85syhcpf9a2p301hchs35"; + }; + wasy-53533 = { + run = "1gvk9gdx32sm4q2f2k4i6yj45c6zyf0hjkq7r6ysygmd2zsvf9lh"; + doc = "1ah93bb5gr4di1jbq316cm4d5iaijj4f06vcjj4x44jajirlaq6m"; + }; + wasy-type1-53534 = { + run = "1zkhqyh72q1w6lr94a7164myp5qfmj119qim58cal1h48n3wypcw"; + doc = "0rhkbkmn7xg044aw1cm44vbwiqfpcixpdpcdvz8yq6in8kmgs0lv"; + }; + wasysym-54080 = { + run = "1i8pvf5yfw5j0rkcpy6v8czvr85p1yk18c8h18iljgsdvfj786h7"; + doc = "07lhw9ss609gjlhv9f0bbyv3z327v3jqblfwhcspwg2sjvazzx8l"; + source = "1i7y0si6mbd6kxbbyvcfak46hrcf95xv8x6nc29nc6adqjbygkiw"; + }; + web-66186 = { + doc = "0iiyzzrgwakw7ipdnwmjwcrqayzq4yn4786zlr9zirmmj34hpamz"; + }; + webguide-25813 = { + doc = "0wid2sxrif3mm3lrs0s6pil949byviq4d7924yzvmf9hkrs5f03v"; + }; + webquiz-58808 = { + run = "1bl334im0jvsyx78g6jq9m8623xyr4xz0avzfaymhs39dv17wsyr"; + doc = "0lwc3r3w2d7lzz39ilncbckmvx536z3wvz84jlnv3flm2dll2z7s"; + }; + weiqi-70179 = { + run = "0rwysz41acvsw8hjsxa5rb3nhq9cd096kgc05rf3zk6rdiy0smhr"; + doc = "0s3g2ymfqz8acrqgb1d375bvxmb21sxw16j9a25xaap7wz27xry4"; + source = "0fzj1cyxj505vf82kzjg7jy6ifk3m5pwsvmh5m6jvr2s7d2m079d"; + }; + wheelchart-70518 = { + run = "0z59dvngsyabg6ycmvj73nj23xaf2zkailm9p718mj8sp8nr72rj"; + doc = "08zncid0bxyh5i1xigdk5kdnaplpa0jf90wlnd6srxfrshy4b7rw"; + }; + widetable-53409 = { + run = "1k1jnl3jbrbcc55cl34wj3znfay2wnf8k8sgdslicvnan2j717zm"; + doc = "1giy0gvhngsmfwc87j9k2p820j6bm2mc2r1kbcl4ci0c3383mify"; + source = "0krkcnxzjrn7lqd0qh8lgjixfpd3c5glvj1ilqhak9ifd3lq8r4s"; + }; + widows-and-orphans-66753 = { + run = "189ch6wprsw4xsyk79pm03kkn19h5rkqpfs0g0p6kj5jg39x78xv"; + doc = "0vzcyzcf8fh83llravv0iz739ilr15qpjkgyjmb95r0a9zwx044i"; + source = "0sf8picg17x58baw36s0z41p7ck26439wjra4mbc6kl6gh11jqmz"; + }; + williams-15878 = { + run = "0pbij6hwk82pmddl199sxin34fk22wzvgfj0dpjsg0i5qrsg0qcl"; + doc = "0vvz6fsh4vlhwirz27gyni6xnqinhl6iymgmfhlcc808y7fawcvq"; + }; + willowtreebook-60638 = { + run = "1g8v5am9pzabiq5l5306q0s3a9zmyrdx5s7pjbpph08bhqfhxvvj"; + doc = "1368jr8d6444bnalx4p0by1133liv7fl4zpvafdm0a6gz8b5n5pa"; + }; + windycity-67011 = { + run = "1r395672jacizgwyk2jlf1af1np4p8i54vf4g6lii5yv0yhx6pmb"; + doc = "0f6c5pnm31bdanbcjn5p7icq9qbk7j07sam6g7daj670z385lx5f"; + }; + withargs-52641 = { + run = "1b49fag0ivb5srlsxcbmy8ssqsrcbgadkvcxd6xn9l9bk28wpfwr"; + doc = "12n87c9181kskqvx7bzvqjimg7agcm8n2z7rxnh1g4kh9bjr57ms"; + }; + witharrows-69996 = { + run = "1mjy1hjy0piy7j3px4gnkvh0hfky837njlnsgr92f6nfp2fx8w6r"; + doc = "1fjlnw4z9g9mkf3086nnh1jycclxb3xfhrnd1dyg03ncrwvx9wwc"; + source = "1vhdm893g8zk7aqqpx7wsy35phaffpfhd2cj359z6k3r4km548bz"; + }; + wnri-22459 = { + run = "16hcapjdb5dx48gbcvk2bkpnp1w9knswni2vs8v1l9shxz03nnxa"; + doc = "0wpf06is1vkaw4ivhrz4hfii3qrgs71cawgn1fnm8fdzalgb2frc"; + }; + wnri-latex-22338 = { + run = "06m6xwvm1pxz2bjf2xa7k3x6m70p1f5866wn5imipmhw4wjs2jp2"; + doc = "15d9mcvdhs1jd574gm6a9ppxyy7avclvq54ikcmlf4vn20lygidx"; + source = "02x8fdavhkxfnxhvr891adpn93yhqccs31w05h8f9hyg34jlnb30"; + }; + wordcloud-68209 = { + run = "1s3fpbd182zqi94kg59mpssdp51rh7gw5371xrp235g8ih50054a"; + doc = "187ap98yaffx8nf935chvvgjalx0g8xk4gnaqbblxkz26qi8z3f0"; + }; + wordcount-46165 = { + run = "16vxb87jyj7006akcd7fdvnqihz9rjyw2pl43mdvr5lxp22fpxdx"; + doc = "1yv9lj7k7m446knp2ghsj0dj95splsc6071w2iarh8cq1xlbj3kz"; + }; + wordle-68170 = { + run = "1kz3xxwls671vv1czi7fy6k0cpzrw39afqmakq8apnxazi96lp3l"; + doc = "1jjfsviijxk6n3qymsa7v7rn7slfq30k2arsz3xrgvri2c22z3yl"; + }; + wordlike-15878 = { + run = "1mdgcdiwnqcsrqrzbl27v56xpnzvxb7gg7a8vass31srk8n10ssq"; + doc = "0i9k22hwjkq3pb6z8hiff6zz8l3yjp4vh8x89z5mcbg8iw5gjacd"; + source = "1azirdir33aixw7zh9ps9npxy1v8ckgsdjb96ri1ma0cy2z5d1ij"; + }; + worksheet-48423 = { + run = "1rsh38fx4ayai0mlakqgpzxpnwp6ckzjcpiwy7aqlpia0504jgpc"; + doc = "1hagdjrf472ip4jjkrjv6mgycwjlhbggval7kkk449i0xd9kiz39"; + }; + worldflags-68827 = { + run = "170wypqn7mmfj4s8gbm363l4hqmmjhsziv22z9hyfhrdh0lprip6"; + doc = "165ny43vh389qqi7rzw7mhfyn04awr397i67kkc20jiqxl6v64r9"; + }; + wrapfig-61719 = { + run = "1axad52pzzsx9d32rivasl5d49dj51adk5kcnb1rr8mz59421rk3"; + doc = "1c3xd0ja4063qzag0v07mxkk52yczlcwdbwn84gsfp5hdmd5cibr"; + }; + wrapfig2-69513 = { + run = "0b34ppncrnrm4pd75l7gjpc1ci0q8r2667fwyfqggskkvlwmnm0s"; + doc = "0v08c237ydmg9ss7vrwsb9sbzbp3acqv4ldfzrk63zc1mbp8qs7j"; + source = "0avc8afvv3mmmxfkz3kq9lxgl5frny5z7w7zi9c9wblx2qagqb6x"; + }; + wrapstuff-64058 = { + run = "1w5bnl5w2shar2qg2lm7768n8h4qvgzhxaacphjhqbx9zb1r20w3"; + doc = "14npfsqr8wp1bgq9az4x23rmkkgpn37w4cr6c43wyqs7cvizz0yl"; + source = "1x34kkbv8n8c89x21ikv2lyzlk24qbwcpcxwgv13lqqlcqxfz2ix"; + }; + writeongrid-68863 = { + run = "0vkm3hfgc8a3a6x5sxyszbmhprqckpxy0ibz75g6dhf8wr30jrf6"; + doc = "1dvxx2gqvip9wf80m67hb6w76bbwcy2nzk5rm4m8dj9fvpzfv2jr"; + }; + wsemclassic-31532 = { + run = "0zpqx8gi2yf8cm5rmvchz0jprfwcc0gjkwcrygrvlqhqqn7qmc07"; + doc = "0h7vz6pza8bv8y8ihfplbsq8ip9ds2z63s7j7qh84vf325ci5chm"; + source = "1522cvwkw0ryvhgdqqd7k8lrbrayrmm3h31c77v7x8a81cry2bj9"; + }; + wsuipa-25469 = { + run = "1grz4s0zi7dlgbks7rx0h0rkjvchilhjabs59h81f92f835lafm4"; + doc = "1zw7ibbqc75k4hplbvqpdmnqg5ks9bw75mrwcg14q1rb1807sp8w"; + }; + wtref-69214 = { + run = "05zfj6b59m0ic977w31fi4i86l7214xixws7yidvnr35fa7wm75z"; + doc = "0g4fsbhhsvszvpnf1vn701c8kr8lpq01lcd2g8nnmknvrpd56v5z"; + }; + xargs-15878 = { + run = "1r4giz5gp4pcnxw12lr8hnsa45yv1lm1ddq6g33rkgs1qjzkhv02"; + doc = "06kfclbfr2kc95c431hn54g0c6vcv7vscsskg9myrp94ilq1qglk"; + source = "0k58hqv0jmk3v2jmx212idnfrs9rxqz93zq34f5kqx8dwhnss9pp"; + }; + xassoccnt-61112 = { + run = "1z25b0dps2qf1lsvmbq462ljyyakkicg92d3l1pz254n2mqzvwjb"; + doc = "0057kfclqs5n04ghsz6ad0pvgzwp4hlpk21c66922nscyl4qrfnv"; + }; + xbmks-53448 = { + run = "0pv35b38frgwbi4ijn1x8w5mx48fcy709adlrkzhy641bw4isv86"; + doc = "1nr1m8mhqwkjl9l9pw72ls8xrvg8w2gi8rar4chk3xmh6kphi7ra"; + source = "0waizijqrvg7qigh317vr56bi2b795p5k3h779p0kbl53k3f9f6i"; + }; + xcharter-67742 = { + run = "07c71gkxryhr6a1yjqyqypsmr4ns986g00nqi0ij823bz6q34hk2"; + doc = "0mkgx4daalf59qrh0afd025r0p8nq2908f4fs1am0sy6svc1m16x"; + }; + xcharter-math-70333 = { + run = "0gf3qz3wk6fg6p27wdkspg7saq8b8ji2dh0r66pjffkvj7vmj178"; + doc = "1h9dsdyl225syhihzwkcj3v7lb55m4fhlbxwv5jq14wa46hsrafw"; + }; + xcite-53486 = { + run = "0zsfyaxs0w2xy6fa1s6hlrcnzw1q9n4n676bv6j80cwp5cw7nnhg"; + doc = "1sfziwn05dii3gviiahvmg67kb04hzhz4cd1cwjsrrvnjii0dqb5"; + source = "0j5blcycs86vgmi54z0b06il06zzyjp4v15lmdwfnx0amb9y8jr9"; + }; + xcjk2uni-54958 = { + run = "1x77gmg738r2zbyd0mc7q079hz5wbvabyszmwizfdj6vflm86w3y"; + doc = "0xig1w251dsn2qd9iywcdc20plibadiw8hl1iwygpzfa3187djjf"; + source = "12hbjjdypk0s5k5iaac80n2n4z1zlkg5lp59y58dwnn4y1dx6m6z"; + }; + xcntperchap-54080 = { + run = "0hqagjlxphvfqmslg91fpxngbm15i3kmawglszj8z585i0j570di"; + doc = "0yf5ak4xr07jzlh8s087c7g8rfa71isziy1z13qy8ifv2882p9qa"; + }; + xcolor-68864 = { + run = "1s4iv57w90ckapbaplzj5p837k7a0gvx8k33cici0sqi115iqvxc"; + doc = "194q54ls577n7cv6hwz6b5al98lh3v8za989cmrqg7gn1ahr5pqr"; + source = "12lki4jl45c4jiwncfkcbypghqq8i61m0ams9jljfpgs66421kkn"; + }; + xcolor-material-42289 = { + run = "0sa38kjyy4iywgd9lwhd1aqw48laqj9h2crcarvjd8hr4xwhrbcw"; + doc = "00jfvs4r7hsclvy49r6waanq1q9vszdi5fhlnbg5arhkf53lzii6"; + source = "1jiyl9vry12fl3y2c6l8z5ic8jaahshbvaha8c98h1h2d8mqk6vx"; + }; + xcolor-solarized-61719 = { + run = "0ggm9s8vqw80jfsmw5jn143xcbrx226rwkarjkfqhnlzx85k2d36"; + doc = "1vmr5y6c5mi7hgkb33daamag2y4j6vpiyxnh0cpya824l6miichq"; + source = "06f2x0w9k87wd75vm6gjxg2pdrcv3g6406nraq2mnlf9sial9mnh"; + }; + xcomment-20031 = { + run = "0hxbf6hid76d1gm7ngjbrrcb0x7faxsqa44560f93n6arhj1nmwm"; + doc = "11zcprsby27n8dh78658r6xmmkpqzmx28f6sqc7jhg403jq0j27f"; + }; + xcookybooky-36435 = { + run = "0hx5n7rz2aw460m9cqk2f2p4d3v7fhr02cjf8wk471fp8jwn5bx9"; + doc = "0x9aa92w7b43n49d6m0rlac86f3hsgsrhvq82g3zixvffypyvm1i"; + source = "1z951i4sad1i8bjmw7bgbkanzg04icjj0qfjrshr3m8a67wlxgjz"; + }; + xcpdftips-50449 = { + run = "02g4rm81gf314ds6yzrgasj1ighbyvka7p0vb8mrl78m1ybqjab0"; + doc = "0wcbx6qx288448h2rffv87xgzfj8i30z1v2j6qcp8nlqq21lmw38"; + source = "1h60va01gkm2m9jz521wx93libahh9fi3a8pyb67l6zgjd8dllxi"; + }; + xdoc-15878 = { + run = "18nqhig2kiwa1yzk06v65hzriq6la8c31j6f7caxzjrhjkzx0rvm"; + doc = "09i5zcp7qisgf5rj6ys4rqvj8v8lxcxr16ddmzzvibgdc8kpc3za"; + source = "0vxkqg2jl0qfnahfs82764z7npvsyc0ys3qlz6xk61ylhyqvycns"; + }; + xduthesis-63116 = { + run = "08cxhw5lhklv7vxl30fhwmlgq4kmv53a8qppcmsap1v8jc8vjrdk"; + doc = "1j8pqz4l85qiziry85w7a23i6s577nb2cpbq4v5jgvp5l8x8lhzk"; + source = "0zdlq46z2l3y5zydal9nsawv7nhhp113hdia15d9fd23j8gq4jdp"; + }; + xduts-66661 = { + run = "0l0p1xmnphgsfqq0q4si38zbrzxgmwzw3mqq7lyd48vwq8m8sqad"; + doc = "0l1v9a1c6bhd3k9r272y64lyqpgn1vi6hflz8cg90ybxqxwrgb3d"; + source = "0zaxm3rv20ijh6pmcas69hc3m2x3355gn8g1z06ihn8fnz77wl68"; + }; + xdvi-62387 = { + run = "10aldzxy02d9phqr9qwpxxwci7vf5q9z7sgxcz50kf44asa28fcm"; + doc = "0n4v45wnzba23qpv5nmx87rdd09wl74jjfgpy6z66xp9jsdlja4w"; + }; + xebaposter-63513 = { + run = "1kdrjvdzsn9jwb6awcj2g2cr5csrhzds4w0anb8wm9q3532hcw58"; + doc = "1k2cv0b1l4bn229rjvwcfjivkvgdifjgs5mlp5s27jpq9m5jvpph"; + }; + xechangebar-54080 = { + run = "03d1wmvldpfk6y52sd2pvw3ipglbl8cc851rqlz5jgk82c2frxg0"; + doc = "0cnc62nff1vljwkk6gb6r0cwxq17b2yl4v9ilb7kxapaa6apbp14"; + }; + xecjk-64059 = { + run = "0m93s5m9m9xy8wjjm03wajcwi05as0y5bv305dzryh5qcfv1ncri"; + doc = "0ghbgk2a89davasn3si5jbszafknrg4gpvkgnq9hmndsfzfaihsx"; + source = "120zadcyidw8cbybb8gz9qbf7r1h8m5cadqxnn8xs5a84czgriry"; + }; + xecolor-29660 = { + run = "0ws34zr158nkpghiwlvigb44zzi5qymfqxzsnayw78i6zpqal55x"; + doc = "0hz9kk36ap7szbsd0jp6a59lnaxgnmwl0jg8gmz8s1pjf77jf5ww"; + }; + xecyr-54308 = { + run = "1qqfdi6pxlkx6pxi2q61i0diwmsy9n95x4bvj9r3pgaf851p7cjx"; + doc = "08b2xahg1agfczvqpdkvi3641g3pd2w2yc245bnyk0nccfcnf3k1"; + }; + xecyrmongolian-53160 = { + run = "1m20p5x1s92cwhsixaz3s0y00r8n0j6172bi8vpyzcpf8mc886br"; + doc = "0kiyjcqlajmpj80n8wkk0ziri83811ivl380i3cyz7rxmsh1hqhg"; + source = "0dj2191iqcm9qpi45h45r3cp4nz5gdviw6xf9iz261b3pn515prp"; + }; + xeindex-35756 = { + run = "06ipq7m9mnal497j3awdspqim3fs7v695pf2x7v4l92vqz3hh1sa"; + doc = "1pa1fa8vjgbzmgphx3fmm93dd5wr3adxrrld5xibk2qrp7fgkbsr"; + }; + xellipsis-47546 = { + run = "1slakkdjh4c88caxcdznir5gkw0v7aahfpqksp4l9as9bsl52980"; + doc = "1jlndanic0xc16ba1hg1lswcxa2b20hibd25bs65wyag04rbh8lb"; + source = "0768vqhmxgra190g0k3k4hhzgkhkxwwnvwmdpymphsqm9lvxbl95"; + }; + xepersian-68117 = { + run = "1i461pl3hdqd2p02d1xnmzpxfc8bxcip3c61bfjf30cnsa184zvc"; + doc = "0b04na4c83ly2r8jv5d1mpjvhnc7i46kzhbgkh5kxzvjrpmqwnws"; + source = "1409w2mfp50mihwn7vg3krhg7mrijxjc09sgqhxa1fgv1c3yqisq"; + }; + xepersian-hm-56272 = { + run = "0qj98xrbnh9bam0a6c6vy7ffaia3iqsx5s71bjlmbnyl6y2h8lwp"; + doc = "16f5x8jv8mqf5a32gvrzqwh1xz4s5nxwqsq4q8sg1za6micqniyg"; + source = "0zcq75xzkr0bgpf1xdsphrkcv70q17vs8jkhzxvjrfzilh9h3iqr"; + }; + xesearch-51908 = { + run = "1rszh3svj87vw5lskxv8bvnkzzj6k9rbikl6rr87ry9apmymsklg"; + doc = "0cb73d981aa0s0hg2ynrg3zybsaw28f5b29zmqgvzqidi8vxfbhl"; + }; + xespotcolor-58212 = { + run = "0w7nns136gfz1dvq6iplk0jbza85lpzlpvsxf1bzjhqw5sk6v4p9"; + doc = "1fai2v8x4g9cmda5m6nvf6g8w6qg64qfdq1rvjlz1qiqmy71c8jy"; + source = "14yachqawnmpldkwc3f3q4krj2sr1kad7wzy1lfxwqggvpbdcjkh"; + }; + xetex-66203 = { + run = "09124rd2k40dihk4c1pidkd44rvhv1b0ain1bfk5ry1032ky7wly"; + doc = "10x15yqxsfb6xsl8z75i1hnh6dcff6ivl036945cfqsycyi9sq72"; + tlpkg = "1ai1pw2hqv01z24x9s7vjva5v487rrr6al7rqpa001k7in2ijff4"; + }; + xetex-devanagari-34296 = { + run = "0i6hkzl2jbiixzrw2gvngnyzqkz0lfdilj1zz5xi6ypffi4vyihx"; + doc = "0ahcawr9872lipz33jrv870lj2601j593fwfqcn5x0jhas93ch6c"; + }; + xetex-itrans-55475 = { + run = "17476frf0r4w50bfbk6g6ic40kv3x3i6qpl642glb3vyzyjd5dbg"; + doc = "0bs67djfa9pi1k2900y2ybnv6lgjd031cyczks0jjzfnav2g4df6"; + }; + xetex-pstricks-17055 = { + run = "0i37r4lk1l36cch6kjz12mfzgpg6hd7n903fzbj9h7mwmjwnrylk"; + doc = "17kiv64h94hf83ailbw29wf15r7gv9yq06h3l53c38rn0n20vdz9"; + }; + xetex-tibetan-28847 = { + run = "0r8xgnagsqrkxr0ij0mcv30vhf7c3amyf9lk895lgwsvz6cysmma"; + doc = "0p5l36zb8l3h4x8sjk8cwxj5psvfa4j0kg6jb93sj1ln3yfrwfr2"; + }; + xetexconfig-45845 = { + run = "1253njshiwdayzq0xir9cmbi8syhjb3sc4pyrw9p6kzyqvckkcxm"; + }; + xetexfontinfo-15878 = { + run = "1sc0lm5w94320f5abv2hw2bzqprhk73fjv2lkv380fgkpdfi7pdv"; + doc = "14mc9snykdwzcmq013bs8vzn5w80lblpg05jk57g7fl2z9x6xl38"; + }; + xetexko-70316 = { + run = "0h689k5qdggf82pm3ccwpypgh25q7nk74m40h4cl3iywlqnixvy7"; + doc = "1x5wc5sgf56j3cm825avjr2bwp54ncingq7qxc95x4w0qpxwwwvw"; + }; + xetexref-68072 = { + doc = "1gq31fz879pjzn1r0ksy9prhvh70wil785p5nsj2n5pa67hd1h5g"; + }; + xevlna-43864 = { + run = "16ayk70kxk2s23r6nxva1hkb1z7aw7zz1zhmcis1bsijx657kw25"; + doc = "09aaf3mpbh07mix5xvr20zybbbrbgbwcmkd5q0rfsd0ac8cm72fh"; + }; + xfakebold-68929 = { + run = "1xmw5mm5r2r0bvqga95lvcyf5y0jf7hc40sgzdnc2dx9n8sizwgf"; + doc = "06a3znvv53c3ymfh53f37anlgj8878n5mzcw0mdjszlg8q4bl914"; + }; + xfor-15878 = { + run = "0m4y0caa22fps0r6735kb9pr2f89z5a8wflzrvpbms4nh3a61zgc"; + doc = "0c0qg60h631d3m9rqr0nwj9772zjv3ch0d2p1ksnqnjf30idydl1"; + source = "16xp7hziirlnd507g9bjvszm90wk9iv6ankq8bx27qkyk1shhjfq"; + }; + xfrac-69888 = { + run = "0pijfl77dmcxcjr52h3zg31qz4b7w43js0ydqp8glfakp27z7ibs"; + doc = "1n2d59iii4in5nzayizcsj00f65jqla1v88sx4zxh0fba1fhwrpy"; + source = "15gwlijdlsk85harpy40vd31zz613cd20rcx54xrkq5c15rm3pdd"; + }; + xgreek-69652 = { + run = "0gbhvh3rk466d81g9zw984bfx6mflzgd1wai8i0j2rgkghzm611g"; + doc = "1507kgwd7509m5lyd9mzaj94rk6fcbi6cnngcndwynbrdmkd9l3p"; + source = "1cpkh63qfk4m8766x8p6rq0bkc9nz7d7rldwynf8wzd6lkzyn9hl"; + }; + xhfill-22575 = { + run = "00lb01b27h1bg8h37rcm7wmqh5pc3gz7rkw0l6xrfai0mb8ypq2k"; + doc = "0alaqaiz2dfk4sh4xgrxfrwxgisv2p0bfdz7ppiqmli10al1h2gd"; + }; + xifthen-38929 = { + run = "0ys8yq13vhval5jg9a4n4pv7b3v11w1yh63ssvyx3pnr767ay5r8"; + doc = "1miqc1bfwi2ssl6yp9aqw7ygnars27vks0grpyfns494yimy8nc0"; + }; + xii-45804 = { + doc = "19jhzv5hqzj59wrfcr1dsj6z56qfckax694idgf8arri5lnbkdd8"; + }; + xii-lat-45805 = { + doc = "1nn54xv71kcmn9jbkcslz6a64cvjcay9x96rrxnakdj9qcqd27r5"; + }; + xindex-67771 = { + run = "1scp2bj9jlp71wji8fa90m9jmjm2075cjand9schs8551and42r4"; + doc = "0yddkhqk43d7hnaxfh3afqqcfqadgcx26f77gj2bs4xl9qa0c755"; + }; + xindy-65958 = { + run = "1jm8gi2pq4rw60p8bh7hp5xw1kyhy9r02zy5s2p2xyqh5c6di7jn"; + doc = "119lq9mqczsh1np0876fz4gdfyq1rxmc0ghaqyriwl4fzj6lka1n"; + }; + xindy-persian-59013 = { + doc = "04w3h65215slnakk5w19m94xmj9cjx01izbk9xijifv5l6dqh447"; + }; + xint-63562 = { + run = "1nhf2g00742yzjzl6hnc52cbp1y97l60grgjhjc7j80w91g7vv35"; + doc = "1340cagm5hxif3qmfwvhy6izkhg1awazg971a9ww8xlnxk70gmp9"; + source = "183llw3pmalq4ylndhnvbfc74h57xl9q6pcbr9bnrazlxkjmfpq8"; + }; + xintsession-60926 = { + run = "0p28r81qa93r9hwsaib9jbg252q76xz1hxlaf6q0r2bs3i8a4hbr"; + doc = "1fzyqf14fdk6mjvgfxg43mx2gncj1c7m0h4fid88z7ffsa6rq1g5"; + }; + xistercian-61366 = { + run = "1bkwcw3n5kkygz0d5ihikxp5hx2mcj3hvbqpggfv8wz8y820fkjv"; + doc = "18q40xjmzd51hnh4ga6g7yx3ra8lmcysavf5r2wv8chqfa6jcxji"; + source = "1vzkm5p56h4rbsj36nnc2c45p6fchqdmym1hh8fblxdy311vjrhh"; + }; + xits-55730 = { + run = "0hnjyncrb0r9ssp6aj9lih23b0z031fjhc7fjjsjc89igbxb8v58"; + doc = "0iv1bs2i1fn0pr3gkz07xaqsdfw9idcyfdd6bzqjryynas25aia2"; + }; + xkcdcolors-67895 = { + run = "0nhg0b4zv1xszx2sl61nyhfc5z5caw5bhi16ia119j3kb2lwr26h"; + doc = "0sqv3kwbhh8ay0igpfal2gx22sbgay3wkwd2kzbs6rgsp6xyvj0k"; + }; + xkeymask-69223 = { + run = "14ll2mzc3sa1271yvq417a03g4ky4fvmb8zhmb9bqvw15vz7v53l"; + doc = "0a9n4l2ffd358cvyc2xqvvmrd3zjq6nz7d99b490ap2734y21q1k"; + }; + xkeyval-63616 = { + run = "03m4skbhpv0l8cg3v50650k3h75x8rzk873hnqry0frb3qphjycs"; + doc = "00xayhdwcwb6nq093v65pp1vzx2icn1xpkrbl7vllls4viq861s9"; + source = "00ljf3z3017jdyifxhvls0j4l4jvdg8wi7sh56ij9qlx5jmjjzdm"; + }; + xlop-56910 = { + run = "1clpl22vxgqjpzs0ypgak0d6z0sr6hw3gj18r7sgs2q0jf5m6715"; + doc = "1acnr4yfcakpnr8pb8g26qh7z9xr4dms4nfy50ig7r7azmdpz9py"; + }; + xltabular-56855 = { + run = "12skn3ld5cjd8jvh32l1h86mcqmx03v2w04189rkxh2q90kyjmfw"; + doc = "1lps5w6p2j0c1bszyrbwdfn9r7mii9k9k6ap9s2ssb2rrfzf291f"; + }; + xltxtra-56594 = { + run = "0zpvlsdsrn6pnlfd3aa23hcrjfnnrjivi7r61g25j9sqcx7cmkym"; + doc = "12wp6zwqa5mi5i5ridd2amnr48xrkqmi92xdhh95ydijpzyslhli"; + source = "0vwlj6f7z7fh1vx257v0gnxj29rp3xqjpxlnn156xp9i8i29v0hn"; + }; + xml2pmx-57972 = { + doc = "1d3ralqh0b71scd59b4hmm707yfrz1rj28ni2lzkhbb1ql73bvah"; + }; + xmltex-69742 = { + run = "06rhg0mgxsv4061w8k6parag7fkhrja81aj900mi65bdwmxqxxql"; + doc = "0zjaf8nvsid88nrvzgprwjcm6nirs6glyy25xws57fa9yhza8di2"; + }; + xmpincl-60593 = { + run = "17p97mqcmy10hql3fvdkkjbmlnylhz852ckai0s45birpk6bvi8p"; + doc = "1k532g5b8fm6ly9whah5133g6yngadb9w6cvf2apwm9hwx1pmnxj"; + source = "14xwxsxfa8m8p2idzbkcjznh46np2fikn511bqw54k4k6991vmx1"; + }; + xmuthesis-56614 = { + run = "05z3pbc9gqfnzp4y4a5p6bmprsr1r63w9l442hgk3pshswc2dflp"; + doc = "0dqmbdz0ydlq1hkz0s3lr12sia1qj7p912carwq4pjg9rrw98z7s"; + source = "1c3a90gpb2siww65yc2l3kf91bf5xvxk9iq1s9cnx1ngxjbs7835"; + }; + xnewcommand-15878 = { + run = "1hqpc8p8bl56gzcmar6m670l6yq5arlh382s3m649lya35yydmms"; + doc = "1r4wlg8368ax3p492qyh0nzxkfgkgvm5bzrbm0jhh9ayk9sp7ryf"; + }; + xoptarg-15878 = { + run = "1ykc3mdg45hhyk5x8lv06zggfv88kyrr1zqnv8s9j8cb5c4r71jj"; + doc = "1g42s8mgr7yqdziwza1g241vjgygzddk6ly8md6c22kj8g0sq9jg"; + }; + xpatch-54563 = { + run = "1almf1wif49mi3yqr4qsdffd6m3q8xcma8x9v737ffczsffhs923"; + doc = "1lxsqxzajkcfw4b9i89bk0gmhrsprkmgqqbj5v34bgvkvh0n5pm0"; + source = "1cf161h6g6m3q8bq38imvmja7ral7lpyb26byb8nn26lgixkprad"; + }; + xpdfopen-65952 = { + doc = "130wvaypfrg9sav0pdcdy1g10fll8pqcsqsy70fxlzzr937glsh1"; + }; + xpeek-61719 = { + run = "185jan9h82hrc8bai9h0k09dj2q8p2klqvz042h7xrh2napk060m"; + doc = "0sag912jjxpiwbsgmp0l4p0kw4jfhp1j3sy0lb4kdxcqrzf3m1aj"; + source = "144glnmckvjm24smk4d2xmnkfz8n3r4k7zjmsd0iwa004n28il5h"; + }; + xpiano-61719 = { + run = "11vk7k3n3np2wxx7gv9rvlgfmipmh1x0bjq5b2yvgsfxii65kwz3"; + doc = "0hq4v45nacdxygxpjby6s8smlfkkp63yg83zfmwcl3dgxzayb2s3"; + source = "00xnkxm6ijk1i0h3q0yadklc7f2np19bx3yzq4dzrfavdkxjz8f0"; + }; + xpicture-28770 = { + run = "1z3hbmqlamcm9wgwan834hggks2b73s73h3r2pppp00a1sz3g343"; + doc = "0ymdwdspdhrhgyxw7h7f8nal6h0kjw6i8zicmll5vj8vbmi44dv6"; + source = "1yjvqrpp7a0d3nldqidqrk2xk1lp5vbla865l3lxw1xd5b08y40r"; + }; + xpinyin-66115 = { + run = "1bavg69s0hin8phlgpmz53vkjlh039mancih71amw8bbvh077ynh"; + doc = "0rnqq2hy7wzip9nij6bv0jvahrnsyqdmkvr23fvm7f90s07d1ay3"; + source = "0yj7qh7qp3c1n17vplwywcsjwwy982gp5smxqq110syk6w2hppj5"; + }; + xprintlen-35928 = { + run = "0ywzhbp0b40cq395x5bv348f5dbbv29cqvlh6gkznr6qkjm6ai3b"; + doc = "0dslr7n1mfbclyxic7pl1i425hbcb925jfbag0sfaal03pbczq7z"; + }; + xpunctuate-67918 = { + run = "06lcrbk2q0vy6myjc1qs94p6746acawj7z38ldp3vvc4xynrarnw"; + doc = "02vzwbrqj1dzd46xj49mldkw6rqppvq917bj8216argr5dc4dfk4"; + source = "0lrgdnfv9zlnlyyyybr76a458sp8bayrbl0vw6jzzs0psy1lskq0"; + }; + xq-35211 = { + run = "165zyviwxybpgfx9ycngv9nml482faz766q1skgmligx05qzkhyl"; + doc = "01yhk07lrcbl7ppkqvks5j7wjpwyy0zc69q46wh42gbp65vp24a4"; + }; + xsavebox-64049 = { + run = "1zsv2yf8hp3yfdz2hwlqdzhk40xbcm8bhxwq0dzzkdqi73pfay6d"; + doc = "0ad4gm6mxayrsvbc38nmn20jiv72g177r8vdnv04f8z8i02h7im5"; + source = "1x3rm695vs3nh01nal4qyk164kfjx7pjx3sfmv90cj2jkyi4clwf"; + }; + xsim-61988 = { + run = "1ajmvlrmx97f94k7aci6bni5bhhlrf07c7vb8vnjgyq2iik12ys7"; + doc = "0ppqjy9sgkrwcycfj5z1igi6w56rvcb5a12p22spa56fpsh94910"; + }; + xskak-51432 = { + run = "1hirv11b76xl7jx4swpa7imhjncfn81i9qc118qfrn26n890dgr4"; + doc = "0hzyv8gy91avmpf2fgjwpqfkkbi8255gy86xzn5cz3y948l3m5vl"; + source = "1gw6xqbpcsgdi5s7d239j0ds18w674z4zfibsvbgqjb70lixnyv6"; + }; + xstring-68015 = { + run = "131y1vly79iga9yi9lva4bizxs00p4gyx44f7gcgqnd35biqpy00"; + doc = "0sn9djwkb06n917f1zly6gy81j1gixvp0w28a0f4i3whk3va0yac"; + }; + xtab-23347 = { + run = "1cpcs7k8liapv68cghfwj5fw80rz71qrld7l9lsnli50h7ph42sz"; + doc = "1z3wp3hqy98a4l34kgm604zajdyv0b2vq0jipywmdc12115cw63f"; + source = "1im5cv88g6n88rxzx8lqcxfmhkihywrv2h9gclmv0jx2mmwvwafv"; + }; + xtuthesis-47049 = { + run = "1d68hx38gwwscshdm07rcg75zjbsvk5kyliy5rx6z5jp75k0fra4"; + doc = "1fdr5k60zxjb75vv4m6mj1kalka1kg7cw3k5j9a53n01m2w7q6r5"; + }; + xunicode-30466 = { + run = "1h8ixz9zy9izv5j7555094jiwfp5js5y8mp4bh993gn9xn1rb6b2"; + doc = "0jrxnpas07np9a30cybk6jqv4ng96vjqpyyadbl55szkiylzwwfi"; + }; + xurl-61553 = { + run = "1qbys9b3zd3rlabdmbpndf65fzmvkz24d6v3k7cml2bmdzzqv2cc"; + doc = "1q6npbv8iy1bgl2fjs3ngjw6wb78y51nmjbc2pndas7klbvdixc1"; + }; + xwatermark-61719 = { + run = "013zwh6gz8npgyvdj8daa6y9pb8554lqvbskchsc366k0m6xrwd8"; + doc = "01x4rkl6h9afsbfis3ixbqi9inb1sgvavd0wld9jbwcrmv4qxc76"; + }; + xyling-15878 = { + run = "0gixafnkq15xgkqm2y8qxljfpy1n5nq4ll0lq19sb9635czak427"; + doc = "0s38yqc0xfhf6ap8jc60s24vvmsqhn6f4dsslsdk8i4nq1dmsw92"; + }; + xymtex-32182 = { + run = "01432q9vnzbxzli9bdkdsd7ccvw3ksc76cs3568lsr35bkq1yy1n"; + doc = "0bx00qsgnndw8kq59nbihlzlnwvdf6gncdl3ljckcdn07i4mhl7i"; + source = "0gxi985kgkfyybg90f14y2w068ysy5vk4irc8lfvdgil3y8jwi4l"; + }; + xypic-61719 = { + run = "1srvrq5biqczvyi7k0ilbray7ilzi6gsmvk3b2hmf5qmv8hk0cs1"; + doc = "1js0fkhn60fnxgbgviri58c4q63a0ycq37r4hynxhyix17h51kff"; + }; + xypic-tut-pt-15878 = { + doc = "0d9ivdz5jnhnh3pg8qb2jn7qfxad06hxff65scyhdd6wbsfaizi9"; + }; + xytree-15878 = { + run = "14f3vxkfmv2s944qpdhxpvbrpxq2p259bnk5sxlcv8lbsk2fvvcx"; + doc = "1aq5lbx0x5v2f4fmhp0bcvasy5569mrbf75xk6m6vjpnls49zjfv"; + }; + yafoot-48568 = { + run = "05b2niwqs6c43gl4ag811ljdd0nasmbdinz6dx2d488nl4jiifaj"; + doc = "0mbg6y7qsdsq5nwgdh32kd9x3ghvf8qlbrm84rg6269ff0b5achv"; + source = "1p3zwyg1pf3ad35w25ahlk1r4c18k6vvllcv8ccm952mjg79mj83"; + }; + yagusylo-29803 = { + run = "12p2kxrqa4479wrwcbbxsn5hknr1ai9rf1x76psfs43k9fh1pnn7"; + doc = "0g0vx5zjrfxrf595c0kz378n2h9hrlaf9sx1ypw3iv90zns1sp35"; + source = "1js0slg00sr0bc0gysxvlp3jwlfa57lldi6q7a8fvqjfg9bkclvm"; + }; + yaletter-42830 = { + run = "13xizdiq8dj7iyjw7a9srhr24c1z6g50r44a7hjz0909z3b58j65"; + doc = "1jgv50mssx6g94fh5fcysi884w1iah2qdwb0vrkg6952266gdkvw"; + source = "0byfxy8h76m0jwgd4q0s1ar08sr9ys9jhvsz2l44id321w5276dj"; + }; + yamlvars-69071 = { + run = "05fjkphk70cqkgkd0gg3abnxdnnr4yyr6sd2pbkyh8jkc1pwadfx"; + doc = "04cjg932c22v40fmka7baj17bs99awilgvmakdbcz4mqiaw9zmzb"; + }; + yannisgr-22613 = { + run = "0h61qn97l6k97zbgk0ghqgr4bf8fhbrb037gdskg2sgxb7zsl5wl"; + doc = "1vw8p9xk3aj3lfsq8a2qv7qd00aqx22fs3427j31wnl1iymwycag"; + }; + yathesis-70512 = { + run = "010vlialskv4wsjx76d0z9d36g3qj185zs6raw0j8mgh3npqbr6n"; + doc = "0hgs94kzl83h0c5971ga2iw30gkr6jhnv4p92lmcz7lp8wvjd12b"; + source = "1zl69x9gy36ac5b73vrrdp084v7m3j8dqs8018grxq3jha6m03nz"; + }; + yax-54080 = { + run = "058i478l85ilq0asix6mkdn1kfzh2abqn9ngar6s339db4h81lxy"; + doc = "06i376649jszpwgvb0bq8wxchjmhwjfvc78pl5q6q1ic2jpkq5pj"; + }; + yazd-thesis-61719 = { + run = "1bhjqd6k4lqk4sypssmrsjl9lqrbha9d0n42qbaq1mg5whpl2b8x"; + doc = "0krsm9s3ym6f3d323scvxn8cf1wjqppglhmzbxwn0cpjq5nl01pg"; + }; + yb-book-67188 = { + run = "01ha50044ph7f19jrpkdlfa4idk71k21l28hwm67l4y1q6fyzrll"; + doc = "0ckn24i29cqnlmvml5w77ws9rx9k380c470kv2b2d88709yzzqgf"; + source = "1j29rgbdnlmi4a2px1y3xmq2lsdrwlmi9l3dqsac1lx45hpqmhby"; + }; + ycbook-46201 = { + run = "1ajhl8vkd94yajib69s3jw6v2jbbn7h6g92m0yc86gfri3qcff2r"; + doc = "0zf71gmxj1hwywlw5h8klgyrn9mww12hc4bic0l0gmwixvn6k56k"; + }; + ydoc-64887 = { + run = "19njcgsdhz094w6c7hxp20kcj8b9kvcx4y6zg0rzsxs3h4fr2f21"; + doc = "1dpjwv7m10413dxvhqgxsw2rp9n2gw8s0jghshgmbfm6x46a4db6"; + source = "0y7cc2sl9yia5ldp2la1wy4d53jgxgcpi0v5wkc4m554jl9am4z9"; + }; + yet-another-guide-latex2e-68564 = { + doc = "1a4z4ni7327jd1r4n0w2lh7bb8ag7dfdgr6xwl4q5hf2jbdv8mmy"; + }; + yfonts-50755 = { + run = "1k7b78fr6x8kp6354viqfni3k77d96qmx9r76249m5j140hi6fk1"; + doc = "0a7fy4z790fr6q4z5qnzv578x48kqs128wl5znd5bn3mbg0n0cq0"; + source = "1ph8vc09vg0zxc9x1xydrm9wn6q5vml2bc3wln15v69p8nm52d7z"; + }; + yfonts-otf-65030 = { + run = "0rhym2lw9jk2aj73ndyvr32ryz58krmmfbm28cpgaia06crjl4jp"; + doc = "02ghwiqnws03wfhg3sim6xm1ifdpmi4x5yz5azssxnxfwbndp62n"; + }; + yfonts-t1-36013 = { + run = "08fbdd97n2h649kvks6q03zrsjvb1f7qwys3955g6iznf4y8pyv6"; + doc = "0h0gi1j5fcn1nkvf0abf2aimj2q3h6bw4rx7kzg5xra735fqpl4n"; + }; + yhmath-54377 = { + run = "02p5rzh9n92pjznrqia9b6jnlwmn14189m7fiabvinjakaxmwxwn"; + doc = "024p61b5i55m6n8fmk4j9r3q7dprp3lcyzkhag0wch6vgjkrajzq"; + source = "0y74zwc1pkw3dp56jnzzy4zx1ilw5qx9msm1bf55mvdfc045a17s"; + }; + yinit-otf-40207 = { + run = "1yjz72nixv6di0ifsimbnc34wlw6s8nqkwflkag2p75q0jw52qrg"; + doc = "15yjqa1s4zrpz8cj199ak9dgriys76q8iccspw3909g2ci4xyyfv"; + }; + york-thesis-23348 = { + run = "04c8g1wkl795caadm8kqfy6kdqqgwlk46lijpmyiiykbb8z54wq7"; + doc = "0zp6pfr3giqm4nbsidg06q0c3x9gr4bk3g8qq7wxl9a2pgk3z45p"; + source = "0105amrybkm78pwb9hrd7n8r69sj6lkh1zm7c9sskibb13lqrk9p"; + }; + youngtab-56500 = { + run = "18h6a4b4psbm0hjxq2xnk4bkmsa1wd2fvarrzfkhcj01hgn8bz17"; + doc = "00jkdw02iary6s5szh7hf4qjlr7r8y9lfmvlnrpqkhh6pdhsy3jh"; + source = "1hjqkj12jx9imfqm7y1mqdvp1knhf69kbixr88varbh09d6r9p66"; + }; + yplan-34398 = { + run = "1f2kxbb32hxwgin5bn7b78r8sqdj4v1q80sh1c87425zw8jyd73z"; + doc = "1ls02mng1jwihz8s505brmaqcjn4abqys6bwl22dy855bw5rgr5k"; + }; + yquant-68997 = { + run = "0xlwjgc0lwls7zpgbd0v85cij3a66vsv2vwlr6a73s0bjyjy9akh"; + doc = "043yq765f23rdhn3pmdwzy0q3x91hwaawfwakq93acwbx4mqjz8h"; + }; + ysabeau-69663 = { + run = "0gvy4jpi6p62fqa6hdqci7lwghv6a0lm0min20g9jp9h28kmlcwk"; + doc = "04zmbl5vwgjq7w2189yxnad6cfnb5b6z2pkddd3bx8blg8g954vh"; + }; + ytableau-59580 = { + run = "0gfpxbvar3m21pj74j19qnj8qakbknhvssyvfyw61jwdd8ygdxkd"; + doc = "00k10759qihk3330bwfpzmrm9bfb8513w3sak9jlfy5inay59rbd"; + source = "05pxlbj3rdgr15cqfdxviyp2698b7l44rzgssx18yv2a8qnaxylh"; + }; + zapfchan-61719 = { + run = "1753lvv2bq29g43s4chc884n742695agvgal0b99gsrvlkyfp8gn"; + }; + zapfding-61719 = { + run = "17mls8wilz9api9ivsbcczpiqp1f39qy8wa6ajssi8zhnc5lq7zn"; + }; + zbmath-review-template-59693 = { + run = "1zyll0lpd3d2cjizq6f2zxnb1pmdl2qkhd1fcm9f9l6i5fqmjk15"; + doc = "0ymvngll5znvw0i4y65imidy21fzfzsdcz22i2i8369k1n15x6yh"; + }; + zebra-goodies-66630 = { + run = "03m5npbrbcmxw9csl2hg1jgzjg96rr2r3yix3sajkxzmf2bcm3my"; + doc = "107wr1pjqc9yswd52gflan10007p7i072gysnwdpcxk880f1n29l"; + source = "15sw808cqfjvwmdnnkds9n1m29c7dzdm3id4hkm2cl92jxiygb0f"; + }; + zed-csp-17258 = { + run = "0wr6dxb5ks34x8rzr7s2cnanxc5jawqcq0zhkmxrh8cjqcfkk1w9"; + doc = "05gm4s4svqa4wds0ichfm6lk39i0y54y33b96bnycrabggqfw77g"; + }; + zennote-65549 = { + run = "0sawds55l9cc15b3lvr5zswg5ybsj8v22kx8h5gn65g4j0zj79aq"; + doc = "0qwl9f1c777iim45xcl00b3zidzs4192hyv6vv14a8c57h28j7zr"; + }; + zhlineskip-51142 = { + run = "1j3wkvd57kdwhhny0dzw0hqqnv2ghx1mdjgyzrhfj8gf3fifdaym"; + doc = "0hy14njxpzffcnyciyc4zbil6372b640bshfw9jq4wyskwk3i45h"; + }; + zhlipsum-54994 = { + run = "0rvwbnqzgbdihdavscn8mcc7hy6yjdzj2fc2h3xs3i77lfa5140d"; + doc = "177l81c3zbgdvjgr861jn917ps174zg8bab824f7dx2gj5mhdzgf"; + source = "098fqbcr9fdv6f6hjaczm3q28dpx0g8xqjykg5hyx7nfp7nh6yjk"; + }; + zhmetrics-22207 = { + run = "094afdf0mwb6f5jvg7z7cs5xinia71cnlaixcihliai37kdn1qss"; + doc = "0achyp4i8dfhrkr9jddp7qzdifcqsf28qaqdnyb76525mvgkip5y"; + source = "0hic8n6kq4sx2dc8vb34fhyjrbbxp50lllyj5sh2ld9s5fwgm3yk"; + }; + zhmetrics-uptex-40728 = { + run = "06g61qm3ryy6mvvaq4whk7084hjp544dig57mwcxlgp6cfs0fq8l"; + doc = "0ybijj2hjm4byli3yh8q9lgb40bdpq16d9273nrmiyy8szxa20qc"; + }; + zhnumber-66115 = { + run = "1iryx2mdk0fkvwnvw8z71bscy0kk41nx85flw88kwmsv5bd3aqxz"; + doc = "07hkrlf3gycv0clmr13c6xxp36yy5wrcmzr39ms3ql205qz94qcq"; + source = "01b6l05j6mkx2c8lbj2kmkl7cr5l9cwj2z26v85mmki1z3fkqmrw"; + }; + zhspacing-41145 = { + run = "0h588z408lggk7370l9kcssz2hn9lz19bnakadygrklsyhqh9pzh"; + doc = "0s5qyrsi5nw0vppgx90lzz3ra121jgm9hgzg3z791imlxgjn8pzr"; + }; + ziffer-32279 = { + run = "0nalr6i8yqd1iq713gigafnh1k0h8kgiml1zwpk8rjyya606capw"; + doc = "1cr63lkqi9kpkbpnrwmbppipsmw6wy732wsaha0y9y5ia2934nck"; + }; + zitie-60676 = { + run = "131kiycj7q9javr3xs7maa2qjczmva7vj98bw36pv7znwchspcca"; + doc = "00daf6p699y5204lrdg7hfcnmqh3ah764fpjymblvm8hy5f1w5g2"; + }; + zlmtt-64076 = { + run = "1krv8frabpvnx00xwdx058f9y2mip3bblpix05yxpfspx6aarhcw"; + doc = "1xiirzbgh1x34zih8xbf7whl5f994lx9bc4qrirc58rlccnqgbgr"; + }; + zootaxa-bst-50619 = { + run = "0lwin7dfd3nk0r3drznmhkqd7fhfvizxqy3z2xv616spg1jh9sgj"; + doc = "1s4v9azi1pvvh1fizp2azkbwh35xvqh8qcnnn1xwi0g1xhcp38pa"; + }; + zref-68278 = { + run = "1292p3hmhlngwnhl9lnppbvn4fqblphxmpmbh1vij23v64acv3lk"; + doc = "1xnyvhrhcnganvdzilljdn6x5yh7srijhdd63fc0p5d7zn5hccc1"; + source = "1dbzxl0rc3xwcn2bwaghywsry8q2q34npax5zrv9xak24gplv72y"; + }; + zref-check-68846 = { + run = "13syzhmzvd537gdvwkzvlnbrf9as2yl0id3z7fmj35vjwf9z12al"; + doc = "17f344gzq68c9v2glz24pwxal72aa7mmyi5lvgqx9dkkpzlmghfc"; + source = "1lnnx5fb23pkkzwdl82j765canbm9bbnmmpwwxh9yg9dcz4gwhkp"; + }; + zref-clever-68846 = { + run = "0dgpx323gw46qi45wqvlyhsyw5d60i18bg7vk9ndkb6isvs9pdx4"; + doc = "19dfpz5185m5gi4828vc1hg6njc4jkb2n6hah1hvyg10izbxamgr"; + source = "0bk2irrrbmyh7w6p9z5b2bmfcmnb8sb97zszsq54hg2rc7r1h1vx"; + }; + zref-vario-68846 = { + run = "0p7b9pqldlliwshm2xfm6c69is878nj52dgchx26dqhi8lx8l8dy"; + doc = "0ck4h0wdm7rkhcb7bp0cksy2krpziyjykp15p0l02180c79mnp3z"; + source = "12qsz4fn6d3gpxhi5ppfvzqcj04r9f88a5hj9691kqjwh0507zn4"; + }; + zwgetfdate-15878 = { + run = "1fgz3z1f9ifcbrwiq166hnff23gmlgp5vn0djm2znci26bcip4s9"; + doc = "0gda7xd1sbiaaspb253xgl47jm6bcn8hj101m6ih69mxrka6sz60"; + }; + zwpagelayout-63074 = { + run = "0xl2qyq9037fjxwc6v9hz9gbb5fggqb2x93bibvhdb0bik6iw5md"; + doc = "010120lcnx9d9jj116y6vskch3025jfi4v7xh6nyqlvirsjr4hk1"; + }; + zx-calculus-70612 = { + run = "18yzx4q26yavj68j3v3iws35byqmsbc42w4awb0dbsg7cgdg5mk5"; + doc = "1vc1sydsvn5vfra7d26c51kv81kkaqdgrk4fbq32gl5vj6ap2w0n"; + }; + zxjafbfont-28539 = { + run = "1zcyvwsqn2w9x9w79lvi736r2zwrsk2xdk6nrrmkiaq3cakd81p9"; + doc = "0dfh592niw8s6zxmxj1sf8h02s2vz8s2ywd291946bb72xidb4gq"; + }; + zxjafont-62864 = { + run = "0p1zmf0bwd5fpyyz8cwdwc8pnxcqk31570p4722lzwqiplm0azfc"; + doc = "16w7iqlb5zwz8qqyyscmyd0zdzb55n38gf10qd5cra6c161fi7b3"; + }; + zxjatype-53500 = { + run = "1ap4f0yq4cmkz5djy7mpgp32l24jr7xbxd9zc0nv1fvnywxpxfcq"; + doc = "005rr69f433bllggj997rhbwlbmsglaywi55az5j02x0036aj2dd"; + }; + zztex-55862 = { + run = "0qh6a0jgrf1b2363dw66m8v8r0yq2sab2qm3wk008pvvlajdj45w"; + doc = "1agivqj1mqnhv3w70a292pypm2w5xcbf67wwfz3ywaaaq5amjbwq"; + }; } diff --git a/pkgs/by-name/te/texlive/generate-fixed-hashes.nix b/pkgs/by-name/te/texlive/generate-fixed-hashes.nix index 0cff459..3e0a8ee 100644 --- a/pkgs/by-name/te/texlive/generate-fixed-hashes.nix +++ b/pkgs/by-name/te/texlive/generate-fixed-hashes.nix @@ -1,7 +1,14 @@ -{ pkgs ? (import ../../../../.. { }) }: +{ + pkgs ? (import ../../../../.. { }), +}: let - inherit (pkgs) runCommand writeText texlive nix; + inherit (pkgs) + runCommand + writeText + texlive + nix + ; inherit (pkgs.lib) attrValues concatMap @@ -14,7 +21,9 @@ let strings ; - getFods = drv: optional (isDerivation drv.tex) (drv.tex // { tlType = "run"; }) + getFods = + drv: + optional (isDerivation drv.tex) (drv.tex // { tlType = "run"; }) ++ optional (drv ? texdoc) (drv.texdoc // { tlType = "doc"; }) ++ optional (drv ? texsource) (drv.texsource // { tlType = "source"; }) ++ optional (drv ? tlpkg) (drv.tlpkg // { tlType = "tlpkg"; }); @@ -22,16 +31,24 @@ let sorted = sort (a: b: a.pname < b.pname) (attrValues texlive.pkgs); fods = concatMap getFods sorted; - computeHash = fod: runCommand "${fod.pname}-${fod.tlType}-fixed-hash" - { buildInputs = [ nix ]; inherit fod; } - ''echo -n "$(nix-hash --base32 --type sha256 "$fod")" >"$out"''; + computeHash = + fod: + runCommand "${fod.pname}-${fod.tlType}-fixed-hash" { + buildInputs = [ nix ]; + inherit fod; + } ''echo -n "$(nix-hash --base32 --type sha256 "$fod")" >"$out"''; hash = fod: fod.outputHash or (builtins.readFile (computeHash fod)); - hashes = fods: - concatMapStrings ({ tlType, ... }@p: ''${tlType}="${hash p}";'') fods; + hashes = fods: concatMapStrings ({ tlType, ... }@p: ''${tlType}="${hash p}";'') fods; - hashLine = { pname, revision, extraRevision ? "", ... }@drv: + hashLine = + { + pname, + revision, + extraRevision ? "", + ... + }@drv: let fods = getFods drv; # NOTE: the fixed naming scheme must match default.nix @@ -44,11 +61,10 @@ in { # fixedHashesNix uses 'import from derivation' which does not parallelize well # you should build newHashes first, before evaluating (and building) fixedHashesNix - newHashes = map computeHash (filter (fod: ! fod ? outputHash) fods); + newHashes = map computeHash (filter (fod: !fod ? outputHash) fods); - fixedHashesNix = writeText "fixed-hashes.nix" - '' - { - ${concatMapStrings hashLine sorted}} - ''; + fixedHashesNix = writeText "fixed-hashes.nix" '' + { + ${concatMapStrings hashLine sorted}} + ''; } diff --git a/pkgs/by-name/te/texlive/packages.nix b/pkgs/by-name/te/texlive/packages.nix index 2e93418..999d240 100644 --- a/pkgs/by-name/te/texlive/packages.nix +++ b/pkgs/by-name/te/texlive/packages.nix @@ -1,10 +1,20 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # TeX Live; see https://nixos.org/nixpkgs/manual/#sec-language-texlive texlive = callPackage ./. { }; - inherit (texlive.schemes) texliveBasic texliveBookPub texliveConTeXt texliveFull texliveGUST texliveInfraOnly texliveMedium texliveMinimal texliveSmall texliveTeTeX; + inherit (texlive.schemes) + texliveBasic + texliveBookPub + texliveConTeXt + texliveFull + texliveGUST + texliveInfraOnly + texliveMedium + texliveMinimal + texliveSmall + texliveTeTeX + ; texlivePackages = recurseIntoAttrs (lib.filterAttrs (_: lib.isDerivation) texlive.pkgs); } diff --git a/pkgs/by-name/te/texlive/tlpdb-overrides.nix b/pkgs/by-name/te/texlive/tlpdb-overrides.nix index 7ec6eee..73cff96 100644 --- a/pkgs/by-name/te/texlive/tlpdb-overrides.nix +++ b/pkgs/by-name/te/texlive/tlpdb-overrides.nix @@ -1,7 +1,27 @@ -{ stdenv, lib, tlpdb, bin, tlpdbxz, tl -, installShellFiles -, coreutils, findutils, gawk, getopt, ghostscript_headless, gnugrep -, gnumake, gnupg, gnused, gzip, html-tidy, ncurses, perl, python3, ruby, zip +{ + stdenv, + lib, + tlpdb, + bin, + tlpdbxz, + tl, + installShellFiles, + coreutils, + findutils, + gawk, + getopt, + ghostscript_headless, + gnugrep, + gnumake, + gnupg, + gnused, + gzip, + html-tidy, + ncurses, + perl, + python3, + ruby, + zip, }: oldTlpdb: @@ -9,20 +29,33 @@ oldTlpdb: let tlpdbVersion = tlpdb."00texlive.config"; - # most format -> engine links are generated by texlinks according to fmtutil.cnf at combine time - # so we remove them from binfiles, and add back the ones texlinks purposefully ignore (e.g. mptopdf) - removeFormatLinks = lib.mapAttrs (_: attrs: - if (attrs ? formats && attrs ? binfiles) - # TLPDB reports erroneously that various metafont binaries like "mf" are format links to engines - # like "mf-nowin"; core-big provides both binaries and links so we simply skip them here - then let formatLinks = lib.catAttrs "name" (lib.filter (f: f.name != f.engine && ! lib.hasSuffix "-nowin" f.engine) attrs.formats); - binNotFormats = lib.subtractLists formatLinks attrs.binfiles; - in if binNotFormats != [] then attrs // { binfiles = binNotFormats; } else removeAttrs attrs [ "binfiles" ] - else attrs); + # most format -> engine links are generated by texlinks according to fmtutil.cnf at combine time + # so we remove them from binfiles, and add back the ones texlinks purposefully ignore (e.g. mptopdf) + removeFormatLinks = lib.mapAttrs ( + _: attrs: + if + (attrs ? formats && attrs ? binfiles) + # TLPDB reports erroneously that various metafont binaries like "mf" are format links to engines + # like "mf-nowin"; core-big provides both binaries and links so we simply skip them here + then + let + formatLinks = lib.catAttrs "name" ( + lib.filter (f: f.name != f.engine && !lib.hasSuffix "-nowin" f.engine) attrs.formats + ); + binNotFormats = lib.subtractLists formatLinks attrs.binfiles; + in + if binNotFormats != [ ] then + attrs // { binfiles = binNotFormats; } + else + removeAttrs attrs [ "binfiles" ] + else + attrs + ); - orig = removeFormatLinks (removeAttrs oldTlpdb [ "00texlive.config" ]); + orig = removeFormatLinks (removeAttrs oldTlpdb [ "00texlive.config" ]); -in lib.recursiveUpdate orig rec { +in +lib.recursiveUpdate orig rec { #### overrides of texlive.tlpdb #### nonstandard script folders @@ -45,13 +78,44 @@ in lib.recursiveUpdate orig rec { texlogsieve.extraBuildInputs = [ bin.luatex ]; #### perl packages - crossrefware.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ LWP URI ])) ]; - ctan-o-mat.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ LWP LWPProtocolHttps ])) ]; + crossrefware.extraBuildInputs = [ + (perl.withPackages ( + ps: with ps; [ + LWP + URI + ] + )) + ]; + ctan-o-mat.extraBuildInputs = [ + (perl.withPackages ( + ps: with ps; [ + LWP + LWPProtocolHttps + ] + )) + ]; ctanify.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ FileCopyRecursive ])) ]; - ctanupload.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ HTMLFormatter WWWMechanize ])) ]; + ctanupload.extraBuildInputs = [ + (perl.withPackages ( + ps: with ps; [ + HTMLFormatter + WWWMechanize + ] + )) + ]; exceltex.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ SpreadsheetParseExcel ])) ]; latex-git-log.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ IPCSystemSimple ])) ]; - latexindent.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ FileHomeDir LogDispatch LogLog4perl UnicodeLineBreak YAMLTiny ])) ]; + latexindent.extraBuildInputs = [ + (perl.withPackages ( + ps: with ps; [ + FileHomeDir + LogDispatch + LogLog4perl + UnicodeLineBreak + YAMLTiny + ] + )) + ]; pax.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ FileWhich ])) ]; ptex-fontmaps.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ Tk ])) ]; purifyeps.extraBuildInputs = [ (perl.withPackages (ps: with ps; [ FileWhich ])) ]; @@ -69,34 +133,81 @@ in lib.recursiveUpdate orig rec { cjk-gs-integrate.extraBuildInputs = [ ghostscript_headless ]; context.extraBuildInputs = [ coreutils ]; context-legacy.extraBuildInputs = [ ruby ]; - cyrillic-bin.extraBuildInputs = [ coreutils gnused ]; - dtxgen.extraBuildInputs = [ coreutils getopt gnumake zip ]; + cyrillic-bin.extraBuildInputs = [ + coreutils + gnused + ]; + dtxgen.extraBuildInputs = [ + coreutils + getopt + gnumake + zip + ]; dviljk.extraBuildInputs = [ coreutils ]; epspdf.extraBuildInputs = [ ghostscript_headless ]; epstopdf.extraBuildInputs = [ ghostscript_headless ]; fragmaster.extraBuildInputs = [ ghostscript_headless ]; - installfont.extraBuildInputs = [ coreutils getopt gnused ]; - latexfileversion.extraBuildInputs = [ coreutils gnugrep gnused ]; - listings-ext.extraBuildInputs = [ coreutils getopt ]; - ltxfileinfo.extraBuildInputs = [ coreutils getopt gnused ]; + installfont.extraBuildInputs = [ + coreutils + getopt + gnused + ]; + latexfileversion.extraBuildInputs = [ + coreutils + gnugrep + gnused + ]; + listings-ext.extraBuildInputs = [ + coreutils + getopt + ]; + ltxfileinfo.extraBuildInputs = [ + coreutils + getopt + gnused + ]; ltximg.extraBuildInputs = [ ghostscript_headless ]; luaotfload.extraBuildInputs = [ ncurses ]; - makeindex.extraBuildInputs = [ coreutils gnused ]; - pagelayout.extraBuildInputs = [ gnused ncurses ]; + makeindex.extraBuildInputs = [ + coreutils + gnused + ]; + pagelayout.extraBuildInputs = [ + gnused + ncurses + ]; pdfcrop.extraBuildInputs = [ ghostscript_headless ]; - pdftex.extraBuildInputs = [ coreutils ghostscript_headless gnused ]; + pdftex.extraBuildInputs = [ + coreutils + ghostscript_headless + gnused + ]; pdftex-quiet.extraBuildInputs = [ coreutils ]; - pdfxup.extraBuildInputs = [ coreutils ghostscript_headless ]; + pdfxup.extraBuildInputs = [ + coreutils + ghostscript_headless + ]; pkfix-helper.extraBuildInputs = [ ghostscript_headless ]; ps2eps.extraBuildInputs = [ ghostscript_headless ]; pst2pdf.extraBuildInputs = [ ghostscript_headless ]; tex4ebook.extraBuildInputs = [ html-tidy ]; texlive-scripts.extraBuildInputs = [ gnused ]; - texlive-scripts-extra.extraBuildInputs = [ coreutils findutils ghostscript_headless gnused ]; + texlive-scripts-extra.extraBuildInputs = [ + coreutils + findutils + ghostscript_headless + gnused + ]; thumbpdf.extraBuildInputs = [ ghostscript_headless ]; tpic2pdftex.extraBuildInputs = [ gawk ]; - wordcount.extraBuildInputs = [ coreutils gnugrep ]; - xdvi.extraBuildInputs = [ coreutils gnugrep ]; + wordcount.extraBuildInputs = [ + coreutils + gnugrep + ]; + xdvi.extraBuildInputs = [ + coreutils + gnugrep + ]; xindy.extraBuildInputs = [ gzip ]; #### adjustments to binaries @@ -104,14 +215,19 @@ in lib.recursiveUpdate orig rec { # mptopdf is a format link, but not generated by texlinks # so we add it back to binfiles to generate it from mkPkgBin - mptopdf.binfiles = (orig.mptopdf.binfiles or []) ++ [ "mptopdf" ]; + mptopdf.binfiles = (orig.mptopdf.binfiles or [ ]) ++ [ "mptopdf" ]; # remove man texlive-scripts.binfiles = lib.remove "man" orig.texlive-scripts.binfiles; # xindy is broken on some platforms unfortunately - xindy.binfiles = if bin ? xindy - then lib.subtractLists [ "xindy.mem" "xindy.run" ] orig.xindy.binfiles - else []; + xindy.binfiles = + if bin ? xindy then + lib.subtractLists [ + "xindy.mem" + "xindy.run" + ] orig.xindy.binfiles + else + [ ]; #### additional symlinks cluttex.binlinks = { @@ -236,8 +352,15 @@ in lib.recursiveUpdate orig rec { ''; pdftex.postFixup = '' - sed -i -e '2iPATH="${lib.makeBinPath [ coreutils gnused ]}''${PATH:+:$PATH}"' \ - -e 's!^distillerpath="/usr/local/bin"$!distillerpath="${lib.makeBinPath [ ghostscript_headless ]}"!' \ + sed -i -e '2iPATH="${ + lib.makeBinPath [ + coreutils + gnused + ] + }''${PATH:+:$PATH}"' \ + -e 's!^distillerpath="/usr/local/bin"$!distillerpath="${ + lib.makeBinPath [ ghostscript_headless ] + }"!' \ "$out"/bin/simpdftex ''; @@ -317,10 +440,25 @@ in lib.recursiveUpdate orig rec { texlive-scripts-extra.postFixup = '' patch -R "$out"/bin/texlinks < '${./texlinks.diff}' sed -i '2iPATH="${lib.makeBinPath [ coreutils ]}''${PATH:+:$PATH}"' "$out"/bin/{allcm,dvired,mkocp,ps2frag} - sed -i '2iPATH="${lib.makeBinPath [ coreutils findutils ]}''${PATH:+:$PATH}"' "$out"/bin/allneeded - sed -i '2iPATH="${lib.makeBinPath [ coreutils ghostscript_headless ]}''${PATH:+:$PATH}"' "$out"/bin/dvi2fax + sed -i '2iPATH="${ + lib.makeBinPath [ + coreutils + findutils + ] + }''${PATH:+:$PATH}"' "$out"/bin/allneeded + sed -i '2iPATH="${ + lib.makeBinPath [ + coreutils + ghostscript_headless + ] + }''${PATH:+:$PATH}"' "$out"/bin/dvi2fax sed -i '2iPATH="${lib.makeBinPath [ gnused ]}''${PATH:+:$PATH}"' "$out"/bin/{kpsetool,texconfig,texconfig-sys} - sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused ]}''${PATH:+:$PATH}"' "$out"/bin/texconfig-dialog + sed -i '2iPATH="${ + lib.makeBinPath [ + coreutils + gnused + ] + }''${PATH:+:$PATH}"' "$out"/bin/texconfig-dialog ''; # patch interpreter @@ -331,16 +469,21 @@ in lib.recursiveUpdate orig rec { # hardcode revision numbers (since texlive.infra, tlshell are not in either system or user texlive.tlpdb) tlshell.postFixup = '' substituteInPlace "$out"/bin/tlshell \ - --replace-fail '[dict get $::pkgs texlive.infra localrev]' '${toString orig."texlive.infra".revision}' \ + --replace-fail '[dict get $::pkgs texlive.infra localrev]' '${ + toString orig."texlive.infra".revision + }' \ --replace-fail '[dict get $::pkgs tlshell localrev]' '${toString orig.tlshell.revision}' ''; #### dependency changes # it seems to need it to transform fonts - xdvi.deps = (orig.xdvi.deps or []) ++ [ "metafont" ]; + xdvi.deps = (orig.xdvi.deps or [ ]) ++ [ "metafont" ]; # remove dependency-heavy packages from the basic collections - collection-basic.deps = lib.subtractLists [ "metafont" "xdvi" ] orig.collection-basic.deps; + collection-basic.deps = lib.subtractLists [ + "metafont" + "xdvi" + ] orig.collection-basic.deps; # add them elsewhere so that collections cover all packages collection-metapost.deps = orig.collection-metapost.deps ++ [ "metafont" ]; @@ -349,12 +492,12 @@ in lib.recursiveUpdate orig rec { #### misc # RISC-V: https://github.com/LuaJIT/LuaJIT/issues/628 - luajittex.binfiles = lib.optionals - (!(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV) - orig.luajittex.binfiles; + luajittex.binfiles = lib.optionals ( + !(stdenv.hostPlatform.isPower && stdenv.hostPlatform.is64bit) && !stdenv.hostPlatform.isRiscV + ) orig.luajittex.binfiles; # tlpdb lists license as "unknown", but the README says lppl13: http://mirrors.ctan.org/language/arabic/arabi-add/README - arabi-add.license = [ "lppl13c" ]; + arabi-add.license = [ "lppl13c" ]; texdoc = { extraRevision = "-tlpdb${toString tlpdbVersion.revision}"; @@ -397,17 +540,31 @@ in lib.recursiveUpdate orig rec { extraVersion = "-tlpdb-${toString tlpdbVersion.revision}"; # add license of tlmgr and TeXLive::* perl packages and of bin.core - 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"; - extraBuildInputs = [ coreutils gnused gnupg tl.kpathsea (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 postFixup = '' substituteInPlace "$out"/bin/tlmgr \ --replace-fail 'if (-r "$bindir/$kpsewhichname")' 'if (1)' sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr - sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused tl.kpathsea ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr + sed -i '2iPATH="${ + lib.makeBinPath [ + coreutils + gnused + tl.kpathsea + ] + }''${PATH:+:$PATH}"' "$out"/bin/mktexlsr ''; # add minimal texlive.tlpdb diff --git a/pkgs/by-name/te/texlive/tlpdb.nix b/pkgs/by-name/te/texlive/tlpdb.nix index c778234..0f6695e 100644 --- a/pkgs/by-name/te/texlive/tlpdb.nix +++ b/pkgs/by-name/te/texlive/tlpdb.nix @@ -1,54489 +1,54809 @@ -{ # no indentation -"00texlive.config" = { - frozen = true; - year = 2023; - revision = 70616; -}; -"12many" = { - revision = 15878; - shortdesc = "Generalising mathematical index sets"; - stripPrefix = 0; - sha512.run = "57a177b65450718631f36bfd8db0f2d1bff788f3bf147137b6412714cc945c7e08832f14f9e7e659adf7e072a91f13a2ea27fe3161cd9b60313bc956f1f543c6"; - sha512.doc = "9ce7fdae151a116ef6b22943bcbd1e94b90862baa5d50f54a00105d1f2d623f75a2e1440c3c49c560e2e6c5baddb8a6772753f400165b63a90a84f540e3fa381"; - sha512.source = "f007dcaccb364964a73da6a09db5e6a25ee401d8108b19021b67023af273f486392cef6a0b01e951e9fa885304d0e157b919cbd6abc472a96dfbbb0f432b8530"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -"2up" = { - revision = 55076; - shortdesc = "Macros to print two-up"; - stripPrefix = 0; - sha512.run = "6408d1d99a97df71640bcdde4133edc2e5861bbcdc8c5e1be98d5704f7ecf9c043c5538ea19ac4952d811e3677ee0698bdd477eadbd1068725bdb210787d9dbc"; - sha512.doc = "3375cfbd95412f2fde2bdb9171b1c081890a52168d0c6d0f0dfb0ad914117c79291a56bc97602627a698509635765fd5e6e95387a006039178e440a8bea24837"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -a0poster = { - revision = 54071; - shortdesc = "Support for designing posters on large paper"; - stripPrefix = 0; - sha512.run = "038623ef39540340a9c9de228ff0787512fb34916ee5a250dbc6d9327b9249d51c633b8ed0dd725c90db462ed7c96290ea7d6fd60e299e787d0e5cf585efb5f5"; - sha512.doc = "51e01cf36d4ec625bdc68e586d276e09973dcfe30cd9ba2aa7dbeed73337bea03a222d66a6903e5203e1530d88433d326d38ff66896c52ac33587a3d147cc2e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.22b"; -}; -a2ping = { - revision = 52964; - shortdesc = "Advanced PS, PDF, EPS converter"; - sha512.run = "4008c18f93a7d378c8da20bad7c1fdf19c3e6befccdcc804326168854fcd35bb89fe414b30a26dbddeaf81a11c0d404bf5b5459bd3d8adce49dc30279e3bd420"; - sha512.doc = "7a7b6474819b2715c131485472963b463163378d4ae4ac586f17a130b3327c6dda1f4132f4f2379388a8a493fb2374abfff6b7ad87513cbe9d04993572692aeb"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.84p"; -}; -a2ping.binfiles = [ - "a2ping" -]; -a4wide = { - revision = 20943; - shortdesc = "\"Wide\" a4 layout"; - stripPrefix = 0; - sha512.run = "e0f1f95bf660760683d6c5a917d75e537a0347837eb4388eded8194c6ca5371b2ad9be9829fcaaff1e24b7d8baefd287db6add752c19a57a6cf0737017e311e3"; - sha512.doc = "bf059462ec7e28ba782d5842d090c93f4e911bdf44eb3d4f184a7324b454105295460a52414ffcb9fc71dceeba902b1d78ba208d0998f71727ad41299eb1138f"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -a5comb = { - revision = 17020; - shortdesc = "Support for a5 paper sizes"; - stripPrefix = 0; - sha512.run = "443548964eb48ec458942e97f0d6ceb698050a5d4dc83ad17a71db0f1d5085a2c8e73c3e8d9bdbb7ab7e6328d12e42a6ec05c4c7dd4247717f295fcd5da66423"; - sha512.doc = "ee845d8b6a21271d2f0e4e6fd24c79a1235d24ba15cc2d037eb41761b05ad3e69dcb5379c223c07b81c62df5f89190c84ff977390e149566710ce7175e4c2823"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "4"; -}; -aaai-named = { - revision = 52470; - shortdesc = "BibTeX style for AAAI"; - stripPrefix = 0; - sha512.run = "bb851e6bb3d9c2efd8d9abd32056d0853e320ee7f495b3c595d6a112d5e66bdbcb24107f741249fdfde350dead6763484cc412d380188d29155649b4076c4e77"; - hasRunfiles = true; - license = [ "free" ]; -}; -aalok = { - revision = 61719; - shortdesc = "LaTeX class file for the Marathi journal 'Aalok'"; - stripPrefix = 0; - sha512.run = "03d1585e9b92e26044066d1f5b8d2dec0ad298627cc94fc1ab11e45307f62c573934f1a2cae6c5318a9cb377834d4f5a490144cc07bdebd9dc22cf298315630b"; - sha512.doc = "702145c708edf984d24153822036acc0b563038c50423af0cd3cc6b008b7eb3bc8d67eddaac350ac6557650177218260e5adfaf0ca5807130b0e23ec7127470d"; - sha512.source = "b452ccf38dfb3436aa8a6907798101621fb2f5a66077cc24b316760013b0e665ef26d69b444c27cc8521dd6c06828be8a832e061df74bdcc70577f262ae987c3"; - hasRunfiles = true; - license = [ "gpl3Plus" "free" "fdl13Only" ]; - version = "0.6"; -}; -aastex = { - revision = 58057; - shortdesc = "Macros for Manuscript Preparation for AAS Journals"; - stripPrefix = 0; - sha512.run = "9ae52d4142c12621839945213d1f20531350b27f0b1d124d5d5c1bae81d50fbe83ab116d0c65c25852952415eb860eaaf008c119cc10cdb149b964f0b06ad6d0"; - sha512.doc = "bce30656a98d3598312ff399b5e5eb229b89e7e62521748418be718c38c6749a8e9737f6c933f6f32ec948e3ebe1ef339ba9037908741c3b902d33a8fda9b027"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.3.1"; -}; -abbr = { - revision = 15878; - shortdesc = "Simple macros supporting abreviations for Plain and LaTeX"; - stripPrefix = 0; - sha512.run = "4b5d504cc9438ceb97a6935e66a6eaeb494eb76eb313bed275b1f1a829690569972feec048132e12b5849f398d0a4b291bc5f9ce8462031846ec46bc88ebab3c"; - sha512.doc = "7080dea132581fdb0803b4ecfdcf4fd5ed5a689bd7e0c7b7b699ef5b3faeab908042f1704cb553ce38e7f37d9facf7d22a74ac71e2cbd269298f35666367f41a"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -abc = { - revision = 41157; - shortdesc = "Support ABC music notation in LaTeX"; - stripPrefix = 0; - sha512.run = "8b1ccd152ed2ad90810551a36f0fa7f114625784fa967f70b67559f9f1e8eb32d7edd08efc9e55dd92723df4039d1bdcc212200d712e99f27de84a153c2a3777"; - sha512.doc = "5f127f8e1ec104b40ac4d5e9bb22965e9376033892362073cdea9f65f1f10a4152f237b4f27bf52dbbe1389f59d3da673434c39a2b3f43d6f17aa60caabd5584"; - sha512.source = "e47ba563a1018edfad97fb0556e4f74c7f3054a56c38304d9a188a92b51554628430332b4e66ebf1d12eb4ec6719cc13d7ea62c23157e70a3c0d40e172b9a04c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.0b"; -}; -abnt = { - revision = 55471; - shortdesc = "Typesetting academic works according to ABNT rules"; - stripPrefix = 0; - sha512.run = "66931af2a5ab583914ea5abe6bb9668d04442c23ab654691e3864ecfaeecf65e3eda47b3d279abb9fdacb385ef9922d6caab808273f87f3bf323a33b441b7bd1"; - sha512.doc = "0a46414ec99e14a60a167ec7ca09d074c802f4232cbd4204e52e9d489edb3b1657c7f33f0a3fd0bbaa09f624cb52903b8a18db43f54c7a1b0aef8c804b53b1b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -abntex2 = { - revision = 49248; - shortdesc = "Typeset technical and scientific Brazilian documents based on ABNT rules"; - stripPrefix = 0; - sha512.run = "951c039cf0c97a6bd3974bd01ed9323876f1ee74b8250037dce3e92e00d598ab1cb2cfd0bbf4ea6d37b5f8c3e1095e531aa245ad1a91ee49262e6f99c5c84e59"; - sha512.doc = "b6a5871cc33d94c1294a62aeb809f9d29ccf021cff510497c02edbaef2f155a55847dc521a0f698367692e556b2c588a95066bd3097482b0477a67d4a78b7489"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.7"; -}; -abntexto = { - revision = 68837; - shortdesc = "LaTeX class for formatting academic papers in ABNT standards"; - stripPrefix = 0; - sha512.run = "9fb1177d1e97995fa8c7038e38fb827e491c2658af6844f62edb547f281120a9df873a98e509d3e67c577d46472c887ca96ce2e2436f748cba9086c6160f2986"; - sha512.doc = "3d3d58d077f3072e9bfd9bc11e68e17e4885af88864ef80de1010c331c429895c5e03df438d3a0652a8d31623dde5b1cb40daf0a709af6c3a2e90658d13c596c"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "3.1.0-beta"; -}; -aboensis = { - revision = 62977; - shortdesc = "A late medieval OpenType cursive font"; - stripPrefix = 0; - sha512.run = "74f569d7f8b942087285964f350e97b15de05a69a09b1aa21d3bee09a017381d4b18b449a55aafcd0009a5941f0bea198b04947a81b331541af6617d5a58ad73"; - sha512.doc = "84317ef83e712296819b25926adb7522531482b9d17d807cdfd3897f712aae8a8f161a242bffdbe7511478a3e5ec2c1e76fcf51c14661b3465aabbc6b95bbaf2"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" "cc-by-40" "publicDomain" ]; -}; -abraces = { - revision = 64967; - shortdesc = "Asymmetric over-/underbraces in maths"; - stripPrefix = 0; - sha512.run = "ca6061935e6be1089592f77612de222313e41b8f78f0f14bfc06a8823da052543cf6ef0cb95c585698a8a07b5d3c2954909d85ee2ed300c8602574d34ede2892"; - sha512.doc = "84c9a8585ec4cd16dd8e07140f10e545f99622dd90ff3ed28a7eeaa070ce18cfc9ed64e2bbc9efd0dbd4ebe1c27b68aee66eb091ffd6c8debad1cb502edb6f4e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -abspos = { - revision = 64465; - shortdesc = "Absolute placement with coffins"; - stripPrefix = 0; - sha512.run = "87400db8c388db7d7105007ea853d2254451b98daba9a8c61822fb56d143e2dfb75918d40bfe519dfe18b401f944db1569ee41ac768ccac8449e78ae59fb11c0"; - sha512.doc = "90cb62134a36e1cb1589fbc8a6b993c777562eb1eb309dc0cb4f6835ec7174df262957cc9b34631aab4cff5b6aa6818770e26034f5eab29d35ad5d7c4a155cd5"; - sha512.source = "7cf57d88b340d57277e16594e66c076aadba3d505d6f7c66cd1e9407db5d21432d121c3b798d0f86704f12732080a9043c6c843afd16886533065ab70e61b8db"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1"; -}; -abstract = { - revision = 15878; - shortdesc = "Control the typesetting of the abstract environment"; - stripPrefix = 0; - sha512.run = "2d805c2cc322cd802d612213ce525765d49d06bfb371a4ac5d1434a3c752af0ba0182093b0b6e4ee28a80ab926ad0f3a0403c03f871d3e003f6eb5a60ae39c34"; - sha512.doc = "4feae7e22d9f8c6866a9b873359a3060ff75ebcd833e1ea5f82e833933b5beb36260833675775cdeb83f1cfde4dbae3421434890aa9f0f7539c999acd2e0405b"; - sha512.source = "e68a030e56dc15481335dfb1ba566f9b68e92933f27d296d72e20b4d3541790b739b945fc1b39415baadf045164158618da98b63be567c1aa263336579986e8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -abstyles = { - revision = 15878; - shortdesc = "Adaptable BibTeX styles"; - stripPrefix = 0; - sha512.run = "de7e7a5c7e56ae4fb478c9a072c6b2dc8716ea34ee17be577cf4a485c5506f16cc5b79293cfbc80b245ab350c2e2059dd5fb37a2e28818f492edf7c0416d52e3"; - sha512.doc = "d12304eeb2cf797153d7e17beb25c462b3fdf75f5b7b1b24e1ff89d52ce8fe5b2a0fbf88d083ba51301afc45f51871e376253aede36bef21becc1a4350da8259"; - hasRunfiles = true; - license = [ "free" ]; -}; -academicons = { - revision = 62622; - shortdesc = "Font containing high quality icons of online academic profiles"; - stripPrefix = 0; - sha512.run = "10fed2cdb2533a7291626eee2f3d46e79fe972eadd83cf7177f22228dcd13422549819dc5e1cf0b03e8397e23badc02a965857aca886ba004a3279efeb49b288"; - sha512.doc = "beeb30c90b668edbd135a0067165232efd0919c4e42f9e968a8e0e3250a88ba9d1a4489fc8e8f10c69c27794b1e00c63151877e119ceb33da50b12c42c4fc80d"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; - version = "1.9.1-2"; -}; -accanthis = { - revision = 64844; - shortdesc = "Accanthis fonts, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map accanthis.map" - ]; - sha512.run = "5727125c85e06501f009267bab8c1eff674a76db618c6155fd9c6b41bb2407a3a201a008c7f5aa6d73ecf100a3fc917961d20f547c2f6040fe72760a4dcd9a44"; - sha512.doc = "6789c3c330d1e6a0d20364e4e98ef72fd1c6294655f704366b0e6c1fd081d1aea312dc9e6767fb3e076b3cd91ea5a67606e8bf62f7f92af097ba766c99ab0cff"; - hasRunfiles = true; - license = [ "gpl2Plus" "lppl13c" ]; -}; -accents = { - revision = 51497; - shortdesc = "Multiple mathematical accents"; - stripPrefix = 0; - sha512.run = "738e8299148365c0441495664cd97b408b181d192adb718adeacc93d4c63b7e81c12541746777571f3fd0da37348905269b5d7ecfc2d58f88174cd53edbe56b3"; - sha512.doc = "50e5cd01da80113ef3247c4a7c7da703d4a9c3df68822b31ff734da2d755f5fd2bf9f5f8982d84e3628e96905276dfe6cc6699bb625ff1dadbe810b11bf5a35b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.4"; -}; -accessibility = { - revision = 55777; - shortdesc = "Create tagged and structured PDF files"; - stripPrefix = 0; - sha512.run = "6cbc455f40a6aeb5862bbed64e6ec111d497f1948fa6eb83d26fc04c85c1145437005aa046e20eae70f177ff04c7084f03c2d4b3234be6c6ece822d6f366520f"; - sha512.doc = "261d13857558973edb692ed320745173a5006d0cd23418e926be5398b4f3a2da0a670e3a08a26083381e830f4bd327eaa4451822ef096612a7a3c3492833c328"; - sha512.source = "a7218b14ca307c9e02f6c562db3bb381a8a57ff758fecfc36f758bb70a151ca83e3401c7e2254ad2f75fe62d762cedec0746b07f5f5f6b82982675f42faa4e31"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.3"; -}; -accfonts = { - revision = 18835; - shortdesc = "Utilities to derive new fonts from existing ones"; - sha512.run = "f70105569c5b8ed83c103e423d29367702a5330d57f743a640ef68fc6a290b246e8f514907d63d6c7f203c12ab3eeb0cc64a45fe5c0379f10ccf1c8002007a47"; - sha512.doc = "24b19688008b875890a397e2250277f81be1b77c00f95a9a2d40a257c0dc6f4c8adfc07e594f3873e60e1bfbcfeba786e45e9e63eb632ca92b7c935f74b3049e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.25"; -}; -accfonts.binfiles = [ - "mkt1font" - "vpl2ovp" - "vpl2vpl" -]; -accsupp = { - revision = 53052; - shortdesc = "Better accessibility support for PDF files"; - stripPrefix = 0; - sha512.run = "0b6e474617333ca00c2503e99f60a290b930d7e7534de7223be511404aa6c7ba9a8dd69b94f3433b347146bba7b8dbbd4b6d45ed8b2c6b0880c0177842ba8b45"; - sha512.doc = "650909f5212a92659d18ba3ef5209ed12c9b9ddff2b3157ea17cdbc8955536f41e43dafcd715e5ec26c1d0c839ffb7b26081ea36150b2f0f50c952c5231a1a20"; - sha512.source = "e867fabe08188b8fe68c1d9ac6688fb99f69422db26b4cd611028cb8880ce90a8981efb7eb7c49f4fd3d1182d3b99cd90f171959751d7e1ecc1f7880d5a8b5a8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -achemso = { - revision = 69638; - shortdesc = "Support for American Chemical Society journal submissions"; - stripPrefix = 0; - sha512.run = "1a073188cef886e2eb5c6090a2f887d5c58c04d535981d1926a1b389130092bccb614c22b8b5b675d6d2d49208e4d05ae560966db39443cd822c59bc41e6af8e"; - sha512.doc = "b26169bc393110b3805c4dfdd0fbb1838a469b6dd9664914a55eb7f1c031a4cfbca7e96cdbdaaf67329a48e3225e104f5d6a46b0b52384b77835a049151f6cf1"; - sha512.source = "94cab70cfba8492f44a09a3b94e411cbd5b32f3dd5b9a17ca8ae1ff5bb6c5ac6c8a882f4fc94278bb267556ccb43bc981f24e4b6b47b5c9df90c81cb44005029"; - hasRunfiles = true; - license = [ "lppl13c" "free" ]; - version = "3.13g"; -}; -acmart = { - revision = 69721; - shortdesc = "Class for typesetting publications of ACM"; - stripPrefix = 0; - sha512.run = "e40a361687d217e3dd3bbf1998c4c478e14cc758d3ae3d96ca19433b5cca576dfb93a53324253a2a282935d4b2802a103d36bd8b6f507f151187493c4be0e56d"; - sha512.doc = "1b6dd7a2c478a4476286ca897b13b4ac005af6eb6201e53a173dbbd11fbd23a95d7f3b33ec28a373ead62ecf8a45c351fd8521376b803e321ec02e7da1ac7f58"; - sha512.source = "f24476dc2ef09aaba2ec078e0895f9e6f1411c9c19d9703ab318eccb16ee04ca7e97a60c1fdfad13e89d61899d2fbd4d06108651512ea75d060448c4e7064e61"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.03"; -}; -acmconf = { - revision = 15878; - shortdesc = "Class for ACM conference proceedings"; - stripPrefix = 0; - sha512.run = "9363127ba5d59bee9d41e800a0e11d12bc4493e5a79a94be8efe23a44278ea097a58fb53cd334fef0f2ab32c9350196c46ee1aec8347a4aa5554b317c15249ba"; - sha512.doc = "a8a971df6a94a9548b71c1463b9ab143525127774daf5aab227a805c302ee0732d3578c361c5346b123983a32e6d6c8afbd543bca4dc7ac7ad4d5919aba63099"; - sha512.source = "bd9ffcd848571f2a4ffaa7f324835c74abd59ad1d2816b6dbad5fcac7fb06b98c38059dab7261b4bf7d811d56d0ad48d23ac81525cf95a2e6a190a25a6de9d82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -acro = { - revision = 62925; - shortdesc = "Typeset acronyms"; - stripPrefix = 0; - deps = [ - "etoolbox" - "l3kernel" - "l3packages" - ]; - sha512.run = "25c0dc9cda98db7ead55613aea92946cd90e7edfa1213d59966eb8fdd93ae1bc7b532f7849c43fb8fa77291b23dc5d8dc80cba4584c991a7b38e55564bd59ea3"; - sha512.doc = "c827f8dc5fa88b67e84e48d0cfb6d47aa5bfa98fbceed86e6262d98111a956d425d0a2f3cf54b18cba7593dfac17accc2cbe71cc04f1ea2157c511d670c41daa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.8"; -}; -acronym = { - revision = 54758; - shortdesc = "Expand acronyms at least once"; - stripPrefix = 0; - sha512.run = "be68e32baacdb8708d1a31c4a585fcd282d0def7a76a1e284b908532118aec04505271790a99ab0a36e7c035695b84f8ae1e2146c31ca8c4fcfb76be4f11db26"; - sha512.doc = "72b77e66b4db0c3b42252020fa56be3e4b1a848ad7314037d6ada3eb449fad0b35371835ccc6018bc71ef991ade0720f7febeb52fecd71b3ccc9a5b839bf66b2"; - sha512.source = "8fd7e9f374e08f69fc33df24be50a9842fb62a18232d2631d85ecf7e6ce702bad1d21989dc01b3513a69e7a39eb343763690cba027df984dfc7777f047ed45d7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.47"; -}; -acroterm = { - revision = 61719; - shortdesc = "Manage and index acronyms and terms"; - stripPrefix = 0; - sha512.run = "f8ce516ba2de1367bf414061e14c260be31304ce93693a95e6b9ed29d5cf170bb041248eafb76546cfb1547e687d07ec51333177405ffa8a5c9ea76070394832"; - sha512.doc = "66610cbd2e77d8f9b0eda3c61382dc1a8436169017d363a5716e0ad1991849824a1958552af4a14545dcac37191302c0907b505884f7cf1c7d83f8087d888b6a"; - sha512.source = "531b5768a7312bd40797b6cc67abc58050481ef97455219698018a635a298f542506669956211dab32d51dce2c86f3d3d6a2e913c4a0f81f072035a63470e5c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -active-conf = { - revision = 15878; - shortdesc = "Class for typesetting ACTIVE conference papers"; - stripPrefix = 0; - sha512.run = "afd71b77d016c6f2b36ff045176929409f1fc104d9f3530c1a70fad4fd1c71ac327a3b58dbf4a14b93cc691d88bf6b7d3add07196921876360280ee4e5915134"; - sha512.doc = "e1b990ceab6820376c18068bf5ac15e984150fe7ad66929496cb77665f0ae334cb28026e0000e788f0580eab549fe2f70e802ca67d0f968961f4582290646758"; - sha512.source = "06d82683cb44e35a07e2907e00f2f80b247a3ca2cc0e9b230e7417aafc21a73c9ef788c4e88cdf7fe7f812c471c3b34273adcb4d5e272888fc481d9d18a88b68"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -actuarialangle = { - revision = 67201; - shortdesc = "Angle symbol denoting a duration in actuarial and financial notation"; - stripPrefix = 0; - sha512.run = "23878ac98706c08b1fed8f4fdbe7d403f4f0b668ce069837ddd1d433bd3bd3e50e9b041ebec4c8256df56f1649962b7ba2421795f9adc3207a825562633a2b4c"; - sha512.doc = "f28274449a2c9558a22e1b3a3d648ed2a456d6ee179168d06ab4a6cf339f2e0ae7e43c8b0d2ecd8697ffb8cf5308f0497a13012f4b481ec68e02248036a8cf96"; - sha512.source = "9364093cb942abdca6062b66d35f1a0e9088c7bf653baca6bd2ecadb8aa2e743c311caed3ea52f42121511b9b66232d5ef0ed554a29a3253c8e52eadd83d0dd0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -actuarialsymbol = { - revision = 67201; - shortdesc = "Actuarial symbols of life contingencies and financial mathematics"; - stripPrefix = 0; - sha512.run = "a36df9659b33223efb54d050f12676e3aa0555c83911a901c5cfe137e8e7b27d68b47534cdd2064724f20a37715b46fbf6863a5935c9fb93f56e4e7ca26bf004"; - sha512.doc = "ab15ff459aa82dc46a011a7601128dc7e6da720676390167ca856c0942f6a70e0d698a1624b443d3779446f3ac01d4af6bcf5bb5e1e0a17e0e5fefd3deef657c"; - sha512.source = "3b587f3621cbf4d4446664c253a9cd27a6b69da3ed8d1bc09f6054bcdd450e40f8b38be336ce48e0ec251f1d8dbe45b17b6055251aa76bdf4c36b97ed8e4f077"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -addfont = { - revision = 58559; - shortdesc = "Easier use of fonts without LaTeX support"; - stripPrefix = 0; - sha512.run = "36e16da02daf6b93b53f1458ca5eee2243310846b8ea05e6b8b00a3120e7686fbe42d6e34d602d84171fcf7cc5428135aca36eb5402e778facb1882e7e7831a3"; - sha512.doc = "583f7cd7b46173ff57cfa4505d14cd3d88ddef7ebc2adb8fd2705fb8011711bd65d22ef38cfa6b5224191af1841f22ee27332f832029cff762b7b7e49246b179"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.1"; -}; -addliga = { - revision = 50912; - shortdesc = "Access basic ligatures in legacy TrueType fonts"; - stripPrefix = 0; - sha512.run = "b54db5b075c2ba2f632e40a1ae2d840b0a61cc940512027effa2b2b3cadfd6dfa2407e2580a462b98f48cafed94281d39613397ed34ad76f54d6a7e8b614ecb8"; - sha512.doc = "572d9aa1396ac80be2cd9ab0bd317759805a6541b656e19ae36915a6277f9a4ff2987c84dbf903133e0a5027f382b0ed48fc882ce7a79df7a27cfe3082d2a666"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -addlines = { - revision = 49326; - shortdesc = "A user-friendly wrapper around \enlargethispage"; - stripPrefix = 0; - sha512.run = "5d0a438fceef1481633f37824b686422e5000cf232b7dd24bba0f30c8d62b583daf01a67242283f2e4fe971438c061acad2860f50ce1438ca32677d497db8b2a"; - sha512.doc = "2993c6caae1d2f230d144c9f93f7694adcb2e17d9bcd60eb3aa3144806a522258fd4c44a314d40cc767b3b069c4c929b8e458e74bebc746771b975b77bba34d2"; - sha512.source = "6de10a1ddcb65be76594e7389d47316e066aec3a747ef7a61e15fa0e670d914dae3d2ef777c9574e8b85c5d9628784df7f4dc61f589917dbae571f31416bad08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -addtoluatexpath = { - revision = 67821; - shortdesc = "Add paths to Lua packages and input TeX files"; - stripPrefix = 0; - sha512.run = "91d4f85e45181674b6ab2bda5ff3632aaab4abc0066c5026478d41c0205e021f12c3cb833c8c339c02e4e033aed351a5891f8527b95cc33f26ba534aeeaa785b"; - sha512.doc = "ccc8ca7fc9423192a68260b6f441fa7be8a1144bdff8e0eee478f01e2c09d0e54f2a25d7a7fb935f76803003842f16e41916861d9a69e3ea2bca5724b1be5411"; - hasRunfiles = true; - license = [ "mit" ]; -}; -adfathesis = { - revision = 26048; - shortdesc = "Australian Defence Force Academy thesis format"; - stripPrefix = 0; - sha512.run = "4eb7fda01fa1961d213eadd2f0bc9b1cf102de664dae1f37588e161af22d043319e12ca704c3223e78e963411c3f0533c845b17f7d0744b020ef2dca35b2c7b0"; - sha512.doc = "86d89f4f139c9ddfe6babb84558f7d89f57b75e28d37f659d9893ef703cef7199272e60f1233d51351b5bd8a4565393dd6f09ba69796d2ab555423c2ba23c2b8"; - sha512.source = "3d9a376183e2cb22dfd210eb6d453324d035289173c6750d67ee90379d794a50393c49f8fc40e5c51484127632f2489468b215dc510b0db0313372816fc77927"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.42"; -}; -adforn = { - revision = 54512; - shortdesc = "OrnementsADF font with TeX/LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map OrnementsADF.map" - ]; - sha512.run = "7a4a4da6c72ff2f8ab4b2a9a5e92887306a8e2aee4bcc5a93c18bf41d1bf9c05bd23fd6401bda054994aafa8d6002dbc16d8483b951acb705cd46fda08aaf060"; - sha512.doc = "2a287f8685154359c914b13e8e153aa64bb19708a9f5b122180cead53ee31ab829dc934dcab43f09ded4fe5d2a81ee32528855f1a4a1bd07b795eaabcb204f48"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; - version = "1.1b"; -}; -adfsymbols = { - revision = 54512; - shortdesc = "SymbolsADF with TeX/LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map ArrowsADF.map" - "Map BulletsADF.map" - ]; - sha512.run = "7100648956a68719d1a449a3aee0a4acb3788aea7f082a6e7e38c8d8dfa2c712a4b896a9b036e8ae8b2732b11414ab71a49e2f513e7d689f4b0ad9e44c052019"; - sha512.doc = "fbdd78030826918a3599a1f843db692390ebdcf4ca9a853d8c2e78706cfafe83ae79d23d09fb097339d8c726608a27436b3bf22725935c55060f1e8579ea1eaf"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; - version = "1.2b"; -}; -adhocfilelist = { - revision = 29349; - shortdesc = "'\listfiles' entries from the command line"; - sha512.run = "57436dae1489c0f614c4b002f83d34a711398a762ac532b44b1d91a51d068462aaedb5b034923629f7630f039988452eb833d1e98af389c788091517bbee8954"; - sha512.doc = "14bde143bf3ffa3f2b972f93544089e4c0314c7696e1d711719549b7e831278c66fee0676665fe6eaaac744689d613dce159e4eee2e3f9c24dbbe602794fc62e"; - sha512.source = "15e7f652408c5975ba47131109e0d18bcb1d270e0ea630a9a3ff385e499cf3607a366e708a5ec9559d7ccc2a5e0b2d3d0f5f615142978a918b0bd1bd0218a30d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -adhocfilelist.binfiles = [ - "adhocfilelist" -]; -adigraph = { - revision = 70427; - shortdesc = "Augmenting directed graphs"; - stripPrefix = 0; - sha512.run = "38a89fee26ed097a2395e43a86ddeb8d9b652e758f72413ae0f3a35b3130a1a742a94c65324708112f3d27b7317e01c8da2cf0ff86fe56d7221b92a60e7ff809"; - sha512.doc = "c154996a4370d31e2f596a0a463189ae64c7f1b829b5269b8bb6c229ebbea888e6153d43f12577df7ad9feca4af2d3dddb23af7e03a63e44dcb88693873f546b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.7.2"; -}; -adjmulticol = { - revision = 63320; - shortdesc = "Adjusting margins for multicolumn and single column output"; - stripPrefix = 0; - sha512.run = "aa3a350cc284bb52e5dd519155d9e74dcf96171e12acfd092ab3be502f09100a37cfb98c4ea99c6db7f7efc4b1edadfea86b29460dcdae212fd38cbb0b0062e0"; - sha512.doc = "393cd068816ef77104ccf294921d6e9213497ce52e8507044783b05859c54ceea208fad8a7af2efcc6b42ac74abac142f883eacd455b0e3f6227c3222d2a5db0"; - sha512.source = "400b8e4a5a65c49094a127c43d002b93ce38f04eaad154e5edaa1418d9186abc8b14c74570da79953fc44863de2f98748c23d66abfb9b4d03b5024aef9e2082c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -adjustbox = { - revision = 64967; - shortdesc = "Graphics package-alike macros for \"general\" boxes"; - stripPrefix = 0; - deps = [ - "collectbox" - "graphics" - "xkeyval" - ]; - sha512.run = "ac12b052b2112d5bcd942888ab69fa20aca6e2b392bf868959b8573ee8611d93042de3f90eace1519a89d0da64d2dcb3046e26fb0f86f46ea3e673e2a2aee2c8"; - sha512.doc = "d48b405a472df491b3ac6db23b126a70acda26e4dc2baf8e60569f110af2c4c740708c84fad9b70f689022e8747013198c98ea0bb3c6798f1dd8065a431d1ba5"; - sha512.source = "08da88fe2a344716e7184ac2cadf564a90def84c03af8270a2f5e906ae720a7794dcb2707af5e41ab41406b01021029f4272c3e2844e9e36cd913ab56f049ba3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -adobemapping = { - revision = 66552; - shortdesc = "Adobe cmap and pdfmapping files"; - stripPrefix = 0; - sha512.run = "363f7fd337e5a34737608a2bc37521bb526ce726f5c9b5b4d08416e534448306002bc7af1be3f5e6fefcaba16ffc2260c4dea8a486d44dbccad577fb04d6da5b"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -adrconv = { - revision = 46817; - shortdesc = "BibTeX styles to implement an address database"; - stripPrefix = 0; - sha512.run = "ec4300075ae2fbb0b29fa8126263d8852a405a84df8cdb6f484c989ebe948257ba3d1f3ddf9204ea7d6d50129c294a0130afabb053bc63022928ca748bb4ce14"; - sha512.doc = "93ec47833fee152b098477f838858a259f5842264d3a7e9a959d60fd35f46d680eba61c9f4b5efa08ab2878da4aec78d19cf83880e33aeabde9854aa88491c78"; - sha512.source = "25233e23bd1c6aec13609b5d17587747a5840e21637e3d11a478941f98f5f74a77eed31f806b51d07b79f8cc4ebb8c6b8fa419f72927045e3695ca4ada8af388"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -adtrees = { - revision = 51618; - shortdesc = "Macros for drawing adpositional trees"; - stripPrefix = 0; - sha512.run = "1e06f07576666fb7b54c78d930f66fef78571469bffc3ef448687c8bbb0d23d41761e17c8ec1293bb6527e31fc70413df1b7de5c9a06514e6aa8242ed90deb09"; - sha512.doc = "ad8f2e42a4a31368000909c5841fddc189bc2331b47f2c64b16ec509bd662a1b82df3ea8b712f0bdf1c40f123ac28221179b4352e20631d9fb776c0b2939bc4c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -advdate = { - revision = 20538; - shortdesc = "Print a date relative to \"today\""; - stripPrefix = 0; - sha512.run = "80075aa6efb4125bdce79e9b2ec6951caf1a753c8915201767de230acdd1adc2eef31400574effadf6287be159236422840751bf5ea24cd3cab8a01e82a0185c"; - sha512.doc = "acfcbd6a40630da2cf9024cbf3ed378c1f7f8a16c8f8395b69c12f9693e903ba54b9b051c364c5cb4de957876bbd41f0b480c4f4b320e22f2c6df7b08502873a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -advice = { - revision = 69283; - shortdesc = "Extend commands and environments"; - stripPrefix = 0; - sha512.run = "fab7716603412d29daf4710ec6c04742f1d2f898d818f1f012932c99ab51bb8c9746bd3ab5b18752218fd37dd09d4550f3d2b8ef59e9aa852a68a132366b1900"; - sha512.doc = "145aad6269324b04cbe79c159734ae30f3b13cd361250260ba374fba07c39af8a00974d0e47195dc4a1390a881936c443c671b1e09e8f905267baec3a60bc2f3"; - sha512.source = "49e25acd701cd657f41c5dc611b9fcf7342918f29f276eccbc584a88aaa0e0b777c5838e84f067924943bab3b22002fc94f4a5d8b977d2c64a09567ccbca0fbf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -ae = { - revision = 15878; - shortdesc = "Virtual fonts for T1 encoded CMR-fonts"; - stripPrefix = 0; - sha512.run = "6b1c57d5bd3f0959e611659f979ed42b81e397a182d09b3482e98865196077334a9796777aa112ff367b97c232859d4f9637730dcd2654e6232c577d2f59c39a"; - sha512.doc = "927521fb6b6a5787d0e94ad724cf19825b2cf2ce23333e60e13625a36390eaa4cbaa1bbe50dbc718efae97036d5d815860919f536601bb97224b489d20082953"; - sha512.source = "d82fc85014bb32147c9562482ac1d0ab1d1fbff8140441dafff032e24c3ee9e406c9872a93a66ef96a2f67a75f47c01e53565372a14d1bdece588f312c8f00fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -aeguill = { - revision = 15878; - shortdesc = "Add several kinds of guillemets to the ae fonts"; - stripPrefix = 0; - sha512.run = "b75f41c1d179b63d1807ebfa81e9e656bb43433a3291b9e29d5f0f76667868d26840dc6ce7f61f0f959cef724f0b5738b96af2a371f949daefc4179de1f861e8"; - sha512.doc = "8361fc02999b080f19beb793fb0d1d802203114c1e1581c312a21e3a682191470b93e373fc269f8aea0e2643a69c8caf80855597ff6a71aadb6bfc869f4370da"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -aesupp = { - revision = 58253; - shortdesc = "Special support for the ae character"; - stripPrefix = 0; - fontMaps = [ - "Map aesupp.map" - ]; - sha512.run = "7a42831624c30db319a81420e1142bf827f21daeb4719e1a179a63632586b1fb43709c17faef073eb67f27f1303b4f7db92a40425506f4d8e0bc6b456e4f6114"; - sha512.doc = "ece447f4c12da8509be155f2743ca52988f32ce62edb361a85fdcd7733bb401cf8ecbbc0fa6bbd7d1662593f1084aa89a29b2f1b822a765bc6f7e581b46bc153"; - sha512.source = "cb628c51f7f4d972f81b2e23495e7ac6e82e422c7e85ffcdd7c3cbb753b055178adb9ea386bb4b1f1f1c4d2cdc561eba27cd82c7ef33830db0cde9af99e7730f"; - hasRunfiles = true; - license = [ "gfl" "gpl3Plus" ]; - version = "1"; -}; -affilauthor = { - revision = 68996; - shortdesc = "Tag author and affiliation information in a key-value style"; - stripPrefix = 0; - sha512.run = "4aaae3ef6ba9dcfcafff4214c3c425a40518687fd01600266feb3ac1f836f6d1795fd1c2903f57cc3010b7bf5fb153876a4bbb83ac81576e6423589baeeeeaf8"; - sha512.doc = "24c28a1c6879c2a292a96fb10dace8d1dcfa2a1a71e07570a232ac70b70e4e9f10f7af823fb2b8d619dbf587e1f5cd9bc38e1a4e2fc6e22714e5deb27a0edbe1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -afm2pl = { - revision = 66186; - shortdesc = "convert AFM to TeX property list (.pl) metrics"; - sha512.run = "9ec87ccaff69c7467f803e4ce3f3408f8195cb93f571a7c7aa5f195d3de80b480b182831d239d8b2144dc72a5c26f9da58973075b6a939d23a51de0acdb1d199"; - sha512.doc = "e18ef6478d02676a3edc048ec1f8bc37e7cca97e62164632dbf02595a051e6d09d19ba8422c4a617523dccfe1a6ed55fc9be34d1c0ffc147bbfa4e5d8f2daf40"; - hasManpages = true; - hasRunfiles = true; -}; -afm2pl.binfiles = [ - "afm2pl" -]; -afparticle = { - revision = 35900; - shortdesc = "Typesetting articles for Archives of Forensic Psychology"; - stripPrefix = 0; - sha512.run = "958ed5cbce1dc7bfb5d01befe74de6236a09b3ae5246aa3f2e80225bc353abf21b622f4128641c54a27197560557738d4c224e160c0be87010517c3a30a729ae"; - sha512.doc = "d8185772e114a891ff5ce0f2a2e12b827420f8c486813d87bbb6fafc662ca1db710178e8cfa260d7d650c3432909b9f7a8521648f6aebd5f90daf1aec4e28d7d"; - sha512.source = "f12b5a10b929d78c728331704ee83e726bc28562b8179adc2d9e7324b6b742100319078f5ebe8371a34927ae1fecac4779b9442076a95cae1d66e015f235d440"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -afthesis = { - revision = 15878; - shortdesc = "Air Force Institute of Technology thesis class"; - stripPrefix = 0; - sha512.run = "0ed83c0a98bdade60c49b3408053e020c6deba1b96d74b47aa2404c778a96ce2898af1d76892704524c0c069128e59c0bee5af73de6ff9237624600b991ed6b5"; - sha512.doc = "c221f77700f974f0cedeb4f8ecca5280c04203e9cd89042d414eb54037db71cceed450477fe9498a15d9f09b8a0cffa177cc897958594fa7e3952adbd85225a8"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.7"; -}; -aguplus = { - revision = 17156; - shortdesc = "Styles for American Geophysical Union"; - stripPrefix = 0; - sha512.run = "73bd9b7f01a4911fb25aa7d388c5827c62a01a786ece4317f5b702de4c281bd05f82568780f4396bf289fcbb348abd2a3eca6620fd8e3f801d23aff7a05e104e"; - sha512.doc = "48b9c010f746b8a85bbf1093b3dd39c2a853d74b20feb71bfebf2ded8d6f4c44538e6e20b24c65849e8adea9d34ff15498e847b1521bfca11d18fc23d18e10f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6b"; -}; -aiaa = { - revision = 15878; - shortdesc = "Typeset AIAA conference papers"; - stripPrefix = 0; - sha512.run = "9a5c04cc0b24e2b11e4b6953ceed9e506ad9f44922b3407c3aed1f5fd1fda1e86b1a5d6613a059065c1026f69830a8f5af0ed21ad8e1856ab44d22985768f24a"; - sha512.doc = "cd69337eb21eaeff910696f153bc97fca94afa0b147e3360477f72c5d90afa5d54d375b5eb7801df1b988c8f11d8fd23848a07f013a4e06c28a013248e00599b"; - sha512.source = "e9542fb3cb5a16a565bb5c349f15b453ccb4c81570425a5825f0f952816ec27edad65ee670bed9069dd0c1c8762b5becf6300ad551b15bc5adff960f73354588"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -aichej = { - revision = 15878; - shortdesc = "Bibliography style file for the AIChE Journal"; - stripPrefix = 0; - sha512.run = "7edc0ca36209f18dcca0b794c7ee712f0eba82e3e69b09fd46fdc7ede6bd33e93d4936d7bfcff88fe4f699acd04493053a7c76cabb87670215efaae12aaabc83"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ajl = { - revision = 34016; - shortdesc = "BibTeX style for AJL"; - stripPrefix = 0; - sha512.run = "083a549d425336eceee0ab8e85ef592aa15983e9a4dcf2264d835b5242933fed8719b81b427fcf7784b38b8e0b3dac2e2a7f8b9ffd10cf2690b96bf8b586ff3d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -akktex = { - revision = 26055; - shortdesc = "A collection of packages and classes"; - stripPrefix = 0; - sha512.run = "481502410094aedb36f00dc93ff3cad9479e756b00c60abdd7da98713f273cf45a314ccb55ef2436dc54cf7e8f84e2bf9fc5f00974c9978aebacee177380c9a5"; - sha512.doc = "4378f1e2c96bab5f5926b22863580dc2ae555400d770f5875eff09b8f915da4c83e99679fa7487f788970d17537123d854400e31bfca868d693b3d950c33051b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.2"; -}; -akletter = { - revision = 15878; - shortdesc = "Comprehensive letter support"; - stripPrefix = 0; - sha512.run = "fc0702fce74b32b04ce2b1e03960a7617c84a89d4581f16bbbe1b16fc01d45300c0a46682460d78cc572b6e20cc42ec7701c5067adf5e4960ed1bdfd5a69e910"; - sha512.doc = "6a951bf2ad4a7af4a6c87b24e8f4c3b4ff520430024a6abe6b54cf56269a903d78e591def71ce7cac832a4d3f822e8baa14f8decc960b455688801f406d01e74"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5i"; -}; -akshar = { - revision = 56277; - shortdesc = "Support for syllables in the Devanagari script"; - stripPrefix = 0; - sha512.run = "d626d6e3a72fb8319f07c56d200566fc351be15acbbdc0ded7c3abb9765ce257741458109203882e8fa6131ba182539fd04e1ccffa0a25cbdcbe6f7630d3bfb4"; - sha512.doc = "2dc5f4de3807a8e2c7a81046fb5d9dd92a651ef86aa22bd47c68d7b9a75943537284faa2d95d89b013573dfaca2d8d96e53524cb916152e46fac067532b108dd"; - sha512.source = "9095a3c6889eb8de55c5956157a5dfc3e885e93b70ee6285b2ac14d4fcb244e65a11bea2476ad2d35b6add316423897bf8fa15e30e99b6d8d3d3d3cc65b20f31"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -albatross = { - revision = 69879; - shortdesc = "Find fonts that contain a given glyph"; - sha512.run = "6bb925eff84c6d3fc3ab1b81ae50cf5fcafbc8dcadd5ae6076bc1280c427ed03896e8dcc5ccefe05e911b513a5da470312128c488a694c602a2cd9b3a94148b2"; - sha512.doc = "d78c18b44d3eb60d6e991df864aeafd97366023aac7a732bbf7c67d0d677a76e0a89fadfba515cdfae1f1f7705323413bfd27100a3c09dbefa41918c3e29fd57"; - hasManpages = true; - sha512.source = "49ef73f529b8484def315efb0f9bef230697f532fd8138b42404ab5e98a880ea3d7e4ab660a9b3e83be73690f0a762ca09b1b9c964f9d461a0022853006d76be"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "bsd3" ]; - version = "0.5.1"; -}; -albatross.binfiles = [ - "albatross" -]; -alchemist = { - revision = 66924; - shortdesc = "Typeset alchemist and astrological symbols"; - stripPrefix = 0; - sha512.run = "3e4c4902c70deb8f380d3ff5e1a621f595ea1dc47cde3579bcfc12bd0a066d5d1d6773ffb1d1f98aef336c8cfdbe7770e1d48f5b89fabb98308f54df5dc75fcf"; - sha512.doc = "cb978dd26bb9b95a29f6ced2ed4891f27fd0646daf560316dc1b20827a7af454fca1b6500bd4bd5c723c4fc6a24b77d6d7c7a6eafb3edc99e2098b11e4f53029"; - hasRunfiles = true; - license = [ "gpl1Only" "lppl13c" ]; - version = "1.00"; -}; -alegreya = { - revision = 64384; - shortdesc = "Alegreya fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map Alegreya.map" - ]; - sha512.run = "2bd5aa12890cecfa42b119f456ea63bf8b8f64edc4e2c55ed738cd24a80527245b0219330e1dc89e0a10e8ca17bb17ba928056ebf69955f2481d468a5cf97104"; - sha512.doc = "dcff5d4a47c3649155a79659012aa07123e5108b85804da9c1697d1f93d7b336ef7e37e1272c8e2e8f283971bfbfebc2e0cd2ebae3ff8ee69531629635ed7d74"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -aleph = { - revision = 66203; - shortdesc = "Extended TeX"; - deps = [ - "cm" - "hyphen-base" - "knuth-lib" - "lambda" - "latex" - "plain" - ]; - formats = [ - { - name = "aleph"; - engine = "aleph"; - options = "*aleph.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4"; - sha512.doc = "33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -aleph.binfiles = [ - "aleph" -]; -alertmessage = { - revision = 38055; - shortdesc = "Alert messages for LaTeX"; - stripPrefix = 0; - sha512.run = "df06377244dbd962326646fcd0aad535733d275ff6a86bed3739e8b77c6d1231290c4628a98be50d92e9006f25be68c20d5fc5e92c82a6cf841c0af5670f7ca9"; - sha512.doc = "412cecb146790ed0b7fae601d9ef0eb14381cf75ed20ff1bab3190c249750fb693708c2dce26e76da370a265f99dd312dc6747b6c9e7de62ef51a709accf7e60"; - sha512.source = "c670adb01cc2e1dfa0997f6faef9a0d0b31ad2c6329174597b781580f02ba5dfffa7afb4538e0e740271d7f9f70b48a1caab91cadf8282d89a3f9a35c8ae8897"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -alfaslabone = { - revision = 57452; - shortdesc = "The Alfa Slab One font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map AlphaSlabOne.map" - ]; - sha512.run = "b958ac7987363fcefa3d8b7016f13851b91446a2a252e9561fd1a15df78b867b928f3e45a6fa1556abffa0de03b2b70543266ef9627b7474167c5672ac98d9ed"; - sha512.doc = "375ca21d23599fe365f53f461264351982340d151ebdd2ce143189d8fd3c22d191501520d571f207a1f956f433ae6491e171c7ebb3c9c5421e30b358cc79f9fa"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.0.1"; -}; -alg = { - revision = 15878; - shortdesc = "LaTeX environments for typesetting algorithms"; - stripPrefix = 0; - sha512.run = "923f36ab03aa10cf3da008f4b3d7ba5919f3e4a512c82fd1c42386df22019ca70c4c1700b7596750a00ea7c50586bdb803db3fee22edfbc402ebb9e249668e99"; - sha512.doc = "d94795e7513612f3eb102b85b9fdcc792b175411fd67edd6779037b1e0dc101378159f58c6c6feb82ca6b73ea2a6fd415a36e4a4ea67913a0d1110582a41e38d"; - sha512.source = "a8231edf9c10855b312bb00f2bf37b68ada65b876ab621f459b3ee12da5bc5b90080ab6eff5c3a48c0821753a02576aac0100b3a577cfb7c5dc2cd4b47c8a026"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -algobox = { - revision = 67201; - shortdesc = "Typeset Algobox programs"; - stripPrefix = 0; - sha512.run = "42192835e3dd2aedf96ae3602b3009af09512425cad0ee3dc859a972ea5b8ec46bbed35456b17f0ff7a31faead6df06c01734211bb0f206eba80fb05e66d2663"; - sha512.doc = "5d5de2d91d0a5cbc63774259934fcb8b772eec36e9841d8f9e5d813e5f40cdce3171409b131ca788fb2b6eee651caa311128fa075eb22c969d2456b1e54708b3"; - sha512.source = "019badab6a259e9e41ad21d81b53231fc9fd12f87c8b980610dc5a4d60fd7c1201d9f45d71d46dd3b583df1ae8725fe0b183c4ed0b4a35e849bb5d0281a6d31f"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.3"; -}; -algolrevived = { - revision = 56864; - shortdesc = "A revival of Frutiger's Algol alphabet"; - stripPrefix = 0; - fontMaps = [ - "Map AlgolRevived.map" - ]; - sha512.run = "bb038512d7ade0cf90217150d276d8ed7fb4279b8a3088bcb38dfe8f48373e8957909f5fdfdd2f6247682623414f04e732262a393cc0042279705ceb345cd608"; - sha512.doc = "c42976e8fe3d53240de84845a0c4428363868629b5137a57863b5fc922ed8f557e2e4451446277cead1dba0dff036e843e5ead35e6e591a04f2edeb640c7932c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.052"; -}; -algorithm2e = { - revision = 44846; - shortdesc = "Floating algorithm environment with algorithmic keywords"; - stripPrefix = 0; - sha512.run = "0203f337518811a04f255a1ea65045f487dbb4813fb848e0ba1b52d3e5fba96b784852d7e900a82f4c047c2943098e3b37cbca27322d115c341fef6d262c60cf"; - sha512.doc = "ae737056adb53f943ae8c92d8e7bfffe52a107cca4a7a3151932a581744f1396f43e134a55e9894de0ae1fb5418983ba4643e1e07487b690478a6979555d8768"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.2"; -}; -algorithmicx = { - revision = 15878; - shortdesc = "The algorithmic style you always wanted"; - stripPrefix = 0; - sha512.run = "b6cccb7bc391ad11a8996d3e6a3a48f79e50e3e685a4b7670a3399d5d400435616794100b38e73d32633fc16cdd1795c2dcd57bc79279266dc6509bb14d08804"; - sha512.doc = "cda9c4082faeaaf504194d75c014fda9cda20fe85ab9dd8c4f5a3c9e39fc2c8c8428ef20b921790f36c8abae2ecd8ea089353db540477909039575bc65ed5228"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -algorithms = { - revision = 42428; - shortdesc = "A suite of tools for typesetting algorithms in pseudo-code"; - stripPrefix = 0; - sha512.run = "ba02581f18b74ef97f37b7c1052bb7577b256ef94232b045a43c841fc4705f8d7ebcb2b286d95dd70943d309080b05d36dbf847ecd6e661038d6e375d514a787"; - sha512.doc = "3658a5a31162acf5ea1dc318503a2f9e74944cb998494083de76e2e31119bbc22094bfd41e048f5628730df359d2359943cec3cebd07b364a81703b92520dd01"; - sha512.source = "d83acd2275e83d37b5bb9a24d9cb0efbf711a2fb76a9a5a18d7299c95d6e1e0ac8fb41990b795a21b23b5e4fd8de5ef08fa480c6b2eaa7d1f7644e0d44c2f1fa"; - hasRunfiles = true; - license = [ "lgpl21" ]; - version = "0.1"; -}; -algpseudocodex = { - revision = 66924; - shortdesc = "Package for typesetting pseudocode"; - stripPrefix = 0; - sha512.run = "0a8b2e49f389066575d403eced31e57cba4af96619bb2ad09bfe51054193d3033705736ea23233b8da3e5e9e0714aa26c4132c2227fa36cdbdeb7df50035aec4"; - sha512.doc = "5ebf9cb1c66d4e4987387958758aa5d174002409759a38075f6c32e2418f0db670445d2b9d61442c5fe719154d137e3156c6871063eae7e5c4b50593022af623"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -algxpar = { - revision = 67495; - shortdesc = "Support multiple lines of pseudocode"; - stripPrefix = 0; - sha512.run = "3ea0ccb08a088e16c3fd47f5455ec1c3980d242c4f9db838ad07dad089326bead01c03708fe25fe3a14ab3abfdee93c864d1c633f5e0fe043b31962ca1dfe462"; - sha512.doc = "196b2539e23d96f2f7967272d59243af9eabfd588c8ad4cf69174493084f5f3af0c088e3e5ee51df96a6a5de02a7d3a84f7f4f7b3f0cfec0fa4463fb929055ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.99"; -}; -aligned-overset = { - revision = 47290; - shortdesc = "Fix alignment at \overset or \underset"; - stripPrefix = 0; - sha512.run = "3998cd5515ad43e559da91bd1f25b835743299ec13fcf22ee9cb3aadc44c285f428ee701f5b27141c4d03c97b31a31e8620a2911854a1781ee5543a99073fed4"; - sha512.doc = "d44ff38fe36352e1498e12eb56652e935cfeeb9ce6af5711bebe7844b1b7ba16864c8dac3c3b5f2e2bd6fee86de38c7555d5796940b834ce1ad396f5d2cb536e"; - sha512.source = "56584744fe5700505608c6ced57fed83fa189c9e755b63521f466f40e1080a35032b007831316e4b080cf93ef36958873924246a4cdfe2b0f129effda75380b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -alkalami = { - revision = 44497; - shortdesc = "A font for Arabic-based writing systems in Nigeria and Niger"; - stripPrefix = 0; - sha512.run = "57d8a09d5643536cb2341cfd7bd84f24f101ebd73ef1456a39fa8557fc81bb6bddfb58990c38d4da229da5c6ccba0b4d956d82f7d07d65c57a87c749ba3ef841"; - sha512.doc = "c9ebe4fc7bbcb254e0fa0f027e93680be2d1690cded2d9b18f3da091544b05f5dcf38b87400f8c5b8d4dd9ec320379c752615fea99d010a118bf35f4693c704a"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.000"; -}; -allrunes = { - revision = 42221; - shortdesc = "Fonts and LaTeX package for almost all runes"; - stripPrefix = 0; - fontMaps = [ - "MixedMap allrunes.map" - ]; - sha512.run = "d05513d484f11a9fcb5d202d02e7ea586cc82c44abe0488294e58c6f31185b083026bad3f17186ff03456481200e05e2ec4a7a7348f6b8fa4e952702b15274eb"; - sha512.doc = "569f61370178f2517ea4d4625209a1359cd56913073344816f4fa8aa19edc8bc63c073de4373adb0a0a8c8d45fe392da9869bd16bd7477da65d5b0decfe6de61"; - sha512.source = "9765fe328824806dd96ca1a0e9678ba385eb61acf95d8447213492843f908de65209022d76303be816ee1c500e95aeb35280f3377369315a87752a0c4478feb5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.1"; -}; -almendra = { - revision = 64539; - shortdesc = "Almendra fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map almendra.map" - ]; - sha512.run = "9bfdffc9a634df297dc9b5c406c0681ad78b81619900126110b978bc5a7a2ec0f91a1e351100281c794972d87f33c7088725f55928e120a743001080887ad4b3"; - sha512.doc = "477d5d068353d06e591af13e7e970cccd3d5229765f89150e4d9bb5f1de2b0283e4212bc475fdd6771f4e33f046a3e64dd4ca794c3691af95f7e36f77c7eed76"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -almfixed = { - revision = 35065; - shortdesc = "Arabic-Latin Modern Fixed extends TeX-Gyre Latin Modern Mono 10 Regular to full Arabic Unicode support"; - stripPrefix = 0; - sha512.run = "1a5e41cac48a33c4336fe03576c49165b47a0bec606b0a15a3563922b964a9a3c2de735cd88cf10423b054b5131193441fbcd64fb2edc47d4944ff33cf6367ef"; - sha512.doc = "f51af6e63070fbf94a3f8ed756d544dc7d9460f37b016fcded0d2c56a6cf672d2e60c7b2cb8be9f9942f43e46b5ff2bfb59c6ae301a5d88a8858d6e60a3fbaa9"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "0.92"; -}; -alnumsec = { - revision = 15878; - shortdesc = "Alphanumeric section numbering"; - stripPrefix = 0; - sha512.run = "d61adf9c03ef9f0b5d68325b435d5145297d85fa04a5bf106de50f58c04c9507eb63fb17070e955e7f476158419a802f0f18d2cd97ca93baa7997c2d57def479"; - sha512.doc = "ab07f751332fa0ad974e6ea84b10a0249e5bbb69e591d1319a8c5d743f88d63ad9a7c72fc08fbac95e3cf950d090313dd758ed8f604e209206f873c5f0f70880"; - sha512.source = "2c978d1dc9dc7f6a0f91d90102a37a2c8bdb78a19d7211d179b04ea448bb56baa451e09f945daaf3f219187d39f5938a7c003988fbc905b692931c9cffe465ee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -alpha-persian = { - revision = 66115; - shortdesc = "Persian version of alpha.bst"; - stripPrefix = 0; - sha512.run = "dc0344deccdbdac04c5a798a52785e913d6da3997b907a07894f86b1b3ed12640a870eabec3bf5916f9835a8a405ae4c692bfb70a63022cf8b52db0c2c3e1382"; - sha512.doc = "a5881df317b723fff5e00a89706584d05d650971a4bd88d3e3f71df1e7dc021289f9737d1d5239d6196be29307599c3bc1ff782c190032dbea9bea0140547866"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -alphalph = { - revision = 53087; - shortdesc = "Convert numbers to letters"; - stripPrefix = 0; - sha512.run = "de17ab4278afc9fb308abc23c19d4d1ce117ef3b66a21b748c102b95722d3395016682e9508e135e2b01bf4ff274964df0fb723ba2f92c81873dd58d73a3a733"; - sha512.doc = "a098159842a9bd47e6da930af94cf365629c72f539fc3d045fb33b4bbe2004468fc690564850b67549b3eeb2265134c92aecef65b47d16da732bcc5aa93d26dd"; - sha512.source = "34e3c847a63de5a6e6dbea406e79fe0715a46c746f7113a5e8651838499c1d8b0a636c0bf138a1030c957e2e7cd17f848bf2285109642686f56ef95d18354717"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6"; -}; -alterqcm = { - revision = 59265; - shortdesc = "Multiple choice questionnaires in two column tables"; - stripPrefix = 0; - sha512.run = "6af82517cdbc64453b7e546afe4886ba6816d44492ca4fce9cec98035166b45bc432503db0c09c44e2e41f3bf8cf18c33a37199025a6f09dce6fdd2849973fcd"; - sha512.doc = "f16c2591c79aa8d9f98f36c613617b3068495f814db73bc330d11f6a52b4a6b394a663040de328e6251f16d21acf683adb6cc80a5ce6524c09fac8397439f8b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.42c"; -}; -altfont = { - revision = 15878; - shortdesc = "Alternative font handling in LaTeX"; - stripPrefix = 0; - sha512.run = "18212e7107ed2bb6718a7c763d881dff7859e55e5bb33c42e1acfb5ea21228d1ebbdc6e13cb95f041bac99f871306bd3227326953229e69ac6b8ea774434cbd6"; - sha512.doc = "4d181a21f732b0265d4251d3775fdd8a4305c99c0dc1610adc9af583f73e376cce249b2ef237d8027aa32a269512db71260aebe78e5e1619f506f23d1105dc65"; - sha512.source = "f6982a69cb4264c633f8174fd8d487896db88e7d849c074c90645a84e7bc4abb1c1e6adf28500d300a74cdd26dc20b62efc013ff9e080df2bbe9a823ad0112f1"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -altsubsup = { - revision = 62738; - shortdesc = "Subscripts and superscripts with square brackets"; - stripPrefix = 0; - sha512.run = "a3e168d93d3d7c2343a539329f8c7ace39f376e0008726affc77630e3d4032cdadc5c301cc15f94d92be4b98cf00bc2c95f29225fcd1def7bb66fd91c0db9c65"; - sha512.doc = "e96020ae0cf52a851885326068d10210bc18d68df8047ecb84e40659015734c352c08a8d4f202aa3970b699131c032e36350a9c2ec4254e0f000e49b0029f3d4"; - sha512.source = "eb79caa298cd000f6cb9e1c272b2abf788d7e5469bbcbba22bcb48e8b7e7c1f7774ceb9478aeb3588ec69280c5069f1b0c8c207918d44c772f32b558abcae35e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -amiri = { - revision = 65191; - shortdesc = "A classical Arabic typeface, Naskh style"; - stripPrefix = 0; - sha512.run = "ee2a1598a4040a069cfdaa275793b34bd8c899f65e888f41bec55fef53fae6312e3b9ad1a3dc024aaff1df22f735e0e633a1524b54d7ead9ff482ccc829e8aba"; - sha512.doc = "8f50fd9ff492cec24fba7a321a4fdc25d5b427eac31609adbc9fba6a0bcaae8ed895aa6cc860a66106e22ae21dbe9984f9e37f4bc2451f77f5d89ea10d0f5e0a"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.000"; -}; -amiweb2c-guide = { - revision = 56878; - shortdesc = "How to install AmiWeb2c"; - stripPrefix = 0; - sha512.run = "1ffd4d1691abe2543585fa950d9b18ebb10e48c5c7d97e2f05828f04620bfd730894cd92f0df507627ddd9451a253ed8bbe89c07306b6db27ba84bd6c24910ea"; - sha512.doc = "d8f6ab658d8d8f2e05876ce27b5220eb2e10a58775cde91f975cdd106708ddef86781cc1c004b4381176fa7ee8ee6630a34bf7cacec374bf21ffe5e06c8d4d68"; - license = [ "lppl13c" ]; - version = "1.0"; -}; -amnestyreport = { - revision = 69439; - shortdesc = "A LaTeX class for Amnesty International"; - stripPrefix = 0; - sha512.run = "9fb76037c976d48259609295b876a256e5b72e611c7ece52cbc39b7df607d58a90ce2b0a0ff33d816c08f869e911a2cf979b8635a044697af8331d8769382be5"; - sha512.doc = "e3a3989cd630e3776bfc103d5ebd7fcdd39464e49338b638b165e1c486a7afb58ebc907e2fcaaf008be5463f3496e66aa36b0bebea87d1d945a0497469f36eb5"; - sha512.source = "bacce1f1ab7f2c6220c1fb59ecd63a4dc93405e57654390f377c5b6b511a5f732198e869b955211a752e94aa8c1601c4ea13d3d0aea7324a3ae38e035ff3e43e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -amsaddr = { - revision = 64357; - shortdesc = "Alter the position of affiliations in amsart"; - stripPrefix = 0; - sha512.run = "9452effac79a430126a8060827c603c8ce9ce441b187d2fff740a7e8f013727ac4187fa1c148d430ee17fbc1709b8e8f89465b2403ed070d0517304dd7f8aaad"; - sha512.doc = "2d501a1adb6fff4f16f0d3f44e6911ccef824cbdfb9e9a61582a00d61d1e92d03fe93f7fe6d4f87eb2575422407e634dc7e543c1ab05a744014f4d3bdd68e3c8"; - sha512.source = "473c8d5289ff0f780956d298cc1527d5abc157a442191f3a321c30ca0d8cc11808c609c71fa50c996d5354534e5b5a16c154cf870a2fbae8120b026d5c8713dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -amscdx = { - revision = 51532; - shortdesc = "Enhanced commutative diagrams"; - stripPrefix = 0; - sha512.run = "6bdebfbe4985eea23ce24db5e0e14162310d81efab18a7a820fe819bd51f839b9deca35b94740f038ae80084f355e5e800fd6e681d859cb7bc9bb8886993c33e"; - sha512.doc = "65d6ea09c1bec56e5082d3521e1eabdd513013b0606f6cfbd0f7c7566795b8963dab6e9f3a46cbb6d008311e7ee3701efa345ef5dc780a3b18f6f4842d97594e"; - sha512.source = "94751d2c3f617710b50807de584cf4c4d7c8f1ff82a1ab14a5bbd8b41fb5828b0a208e20c131a0aa023a1c8afcdc3d4b5e36b2df99f76b260ec2d9509a941f76"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2x"; -}; -amscls = { - revision = 55378; - shortdesc = "AMS document classes for LaTeX"; - stripPrefix = 0; - sha512.run = "eb39dc97a860047d764884663a1f541aa95a2d559dd55cb25f6b7c6c46617e6c33fe55a9fdc37b211c613333911df6e260768f43ae9630a208ecc7fb774891e5"; - sha512.doc = "c2e563bd239f36b0db3bdbfe1ccb4a0adec0c22af25b557ed748897a99672f05f36f2bba6e51827c6fdd60b351079809b15c0367d075566c5e48682c23108fe2"; - sha512.source = "7a96a464f9826a515191174b6e33016c7161c7547ed70ca78cac256cac68b4340a2b3bd9608f79df106c3eb2383b8d6895012a2cc6dee0c76d53d116679f4c6b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.20.6"; -}; -amscls-doc = { - revision = 46110; - shortdesc = "User documentation for AMS document classes"; - stripPrefix = 0; - sha512.run = "132432f34812f009233392ea29d6c4145717a80ea305632687da30de6969dcef8af9c2aa88cbf1809dd34b0c3dfca0f40a52b6216a7370f2a225b2602d0bbaf3"; - sha512.doc = "8c08813abf65f00b68441d1e5cad3eb4a16fc1a77b30e10d96e22f34d6af547804af4d47b62ef0dfc895e2bc7cc5ecf7bc08d912448fefefbf716430c4502a64"; - license = [ "lppl13c" ]; -}; -amsfonts = { - revision = 61937; - shortdesc = "TeX fonts from the American Mathematical Society"; - stripPrefix = 0; - fontMaps = [ - "Map euler.map" - "MixedMap cm.map" - "MixedMap cmextra.map" - "MixedMap cyrillic.map" - "MixedMap latxfont.map" - "MixedMap symbols.map" - ]; - sha512.run = "6a9f80bc8b6b2afc3ff6ad151a290743d37e10ddeaf7efa969f3fec40cab0492860496c7bf0abeb410124aeaaa15a53640017c8d12b630e68c59dfe186519e52"; - sha512.doc = "fe0917bf9d65d15155f287626edb17d692db7ef2e888fce30b867bb0c873b0166949b3b5f3965f70b6b237d7b874a7fd3411e53b87368acc7447dc0e8bda55f1"; - sha512.source = "4145ce58620f84133e8d7a7639fe376631c92398161283c69c9d1119c14e4d404ed067f2aff2fab7cc0c2249d1fcdea81591b45a1cc72bc08835b99ac8a5a6f7"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "3.04"; -}; -amslatex-primer = { - revision = 28980; - shortdesc = "Getting up and running with AMS-LaTeX"; - stripPrefix = 0; - sha512.run = "05c7c19430a85986db770d1ff8686993edcde35171e3653ddfb7db4a09422c80e53632f583371079fe14d3c6fd9ff4eb3f0c37cbecea7ca2d9a5aefb04cabdb0"; - sha512.doc = "85faf2a9c03f7d7d1e23d72b7041c9b322d5f8bd8cb309a60f7256416249ceb7582c112d25f8953ee67dd2b79a3697e29cf6250d7b199a9eb73a9682f123354f"; - license = [ "lppl13c" ]; - version = "2.3"; -}; -amsldoc-it = { - revision = 45662; - shortdesc = "Italian translation of amsldoc"; - stripPrefix = 0; - sha512.run = "9178b17bedc53957118083a78ead56f9fdaf9fd6a60ea0ebdbeee6c87254e7567b47b61bad1f9bda2554f471f79c28f3df7c3d2b9858faad65c3d110664ec4c8"; - sha512.doc = "eb23cb624c4cf6283b8f777911d102953d31dc8da04392d7023694fed02ee1b8a8a49365fe0f1cba9682e911405f04afc982b6cc9cf9699a4d76ec8dca6a471c"; -}; -amsldoc-vn = { - revision = 21855; - shortdesc = "Vietnamese translation of AMSLaTeX documentation"; - stripPrefix = 0; - sha512.run = "5b0c2cc1afcc4060249be20271af92c71c866db47d2551a176b5685c58182a6ca17da9540dd9a7c7abd33de75b0335a625aa921fdbd77329bc91d16718fb346a"; - sha512.doc = "827c294eb1cedd51a3924796b461ec3d6c858e7875254e0fdb6cb496fecbb6d2ec541e930327c54cc446b15dd69ed795470ae6cbf1cf1e51c0f3ae90f3f6c12f"; - license = [ "lppl13c" ]; - version = "2.0"; -}; -amsmath = { - revision = 68720; - shortdesc = "AMS mathematical facilities for LaTeX"; - stripPrefix = 0; - sha512.run = "39e87ac8255c577fa8b1c0cd155d4fa21bd0c0f789141e6d1e75cad1c34a78bf5fa44277342ae9d93d80f4f88f31ca9f88dba9c592ceba04961e601e3e8e9650"; - sha512.doc = "b1dff0cb1c09a184dfe9dd890ccb6e9e5bd5d2b109ce0b98336ca4cc1a45d4f398eb7822d02e9210c611c98a49fe41884b103e1b1e4f7c6b3b29b4de5be2ebf0"; - sha512.source = "c1d052395b6f6291a269d610f713ce01383940685af91b1c2dd711b73f5d765e801524a538687d7f8cde055bb1dda9ca11900e4e8b58182b3cd792fdfbaca6be"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -amsmath-it = { - revision = 22930; - shortdesc = "Italian translations of some old amsmath documents"; - stripPrefix = 0; - sha512.run = "6bc869e3cf11a9521ff883e9b8cd227a267d28291124c0f268556ea576bc0af8ea4eaa145e45d1de84709df08182fc83946d80fd0f116a8656a35d75ca83eef5"; - sha512.doc = "814539a2a82601c930097113a9baca5166fcf68d1b0c4dcf25d8afa8991e667619517879bc415ff114b9e86664b9ff5e25a7bcf1bb04160b9297cbfabb4a639d"; - license = [ "lppl13c" ]; -}; -amsrefs = { - revision = 61937; - shortdesc = "A LaTeX-based replacement for BibTeX"; - stripPrefix = 0; - sha512.run = "01416fea668e3717b14086199280582d7547cc7c555e19d2f88b7ee94dfb6863719375a140feaa5ecf7461c6d6c6f0ef52bffb544ff132b34771f11556ecdf09"; - sha512.doc = "b704ccb7bf8a49c141277b240e08ed7d22c71bdb91d625997a726b25ffb2e8f494637cd9ac7cee031f9b45476006441190ba95331e32c4ad3af4e25ecdcc6f6e"; - sha512.source = "81b8aa65cc79f08133a6390915ed7753db3439448b608ce04330e23c849f876ff2242403b9bb3e08b9642cb0362732adbcefcab9640e75260548dce3938baa25"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -amstex = { - revision = 67930; - shortdesc = "American Mathematical Society plain TeX macros"; - deps = [ - "amsfonts" - "cm" - "hyphen-base" - "knuth-lib" - "pdftex" - "plain" - "tex" - ]; - formats = [ - { - name = "amstex"; - engine = "pdftex"; - options = "-translate-file=cp227.tcx *amstex.ini"; - fmttriggers = [ "amsfonts" "cm" "hyphen-base" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "4f380f6c67b3c92d4be1b3a9ddec3b464e91ccc632762d6bf28f47dabf6e2e096471dd64804deb370349fe14ddffc3b4d37be195cb63f87e47a2345ebbdbd7fb"; - sha512.doc = "94b3f6ac9f2314cf5e3335ea517bd23e0c08ef10e5edcc032bc5907fb69b04525ad434eb896ef8d5b149033148da55703039d5481242c2f5bf791c1b32c85388"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01"; -}; -amstex.binfiles = [ - "amstex" -]; -amsthdoc-it = { - revision = 45662; - shortdesc = "Italian translation of amsthdoc: Using the amsthm package"; - stripPrefix = 0; - sha512.run = "17631e2d6306887236f11eed586454a784f256c36c14955be1eb30377f1f73b189686b37ba6c95188fda2e0b0aac9a1f40469a32bc7787b5d4c244de9a01ccdf"; - sha512.doc = "2d35f87da43f957d7ec3d1e61d052d14b4dc207207fc2e6dc4de08b699e5211db17a84f0305888294ae163691e4dee2d067fb1c3a29fadcc34214033fe8e22eb"; -}; -andika = { - revision = 64540; - shortdesc = "andika fonts with support for all LaTeX engines"; - stripPrefix = 0; - fontMaps = [ - "Map andika.map" - ]; - sha512.run = "4da9904459345033aa87deeb0019c8c4a39fbafcd59d973717ed2c4a410ece528944c69669b6a5ecf6ef8bb790f60bba909468e001485c405e7cf8775b7533e5"; - sha512.doc = "50684857dc25ad942aff18eedec04c9e27e4e408f748c208f8527c5096e600d26769ec6f82e2f02e72ab472dfb662f12bb009156293a12daa2dc0676d63ed446"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "6.101"; -}; -animate = { - revision = 67401; - shortdesc = "Create PDF and SVG animations from graphics files and inline graphics"; - stripPrefix = 0; - sha512.run = "dabe8762a0329d46ca8987621a59c38183e713c1c257e2cfcd2bbe36bd49bb7cf23b3e75e421f4bf023db2558bb9503d550efa882d77b229114649a15ffcafbc"; - sha512.doc = "857f611cfccc96ed1ae63f47128e9b7b4240428f86ebfdb6f2b79c5f0c76858e7a917321330d841059be02c3d7ef45036f0a2ed441e27abfe68ccbaa61568607"; - sha512.source = "d0b799be895882ba64d200f4c77d8794212fecce55b8c65e874b77587ed4bc186930f9abf1f662d0c7c7e8383f34afc3679f11679d22c035539d93b8dcd19e7b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -annee-scolaire = { - revision = 55988; - shortdesc = "Automatically typeset the academic year (French way)"; - stripPrefix = 0; - sha512.run = "73158727d9c5da0b28fe71661c72a8d1faa705034be8cd10ae36abc266240958cdf0dac962926a96ce445be187016d8440b7aded3129de6fff814ceb6366beb6"; - sha512.doc = "3e02616de1f5d55837511eb2b1edaa571b6686192433941e1412d812588fede1eb8a8d160b724d1fb8ef8f369cbecd401d1bcd09d4692a79b182ce5bccfb6021"; - sha512.source = "2e0e2a08820a7826fc6e58dc97ee9587818bdd62d0eb046982dd1f8a676df705e5bb87cfaabf7e260089d71ede1f597b0afd92b69616c0047d64983d919da50c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -annotate = { - revision = 52824; - shortdesc = "A bibliography style with annotations"; - stripPrefix = 0; - sha512.run = "bd31306b72bec73d4a2367fda6804e648ade536181d7a5c34d196591bb5fbd483f13a1e4aa2c28d3a4f29d0c74d37d5f1a77046b15d321c29176d9f742e91a72"; - hasRunfiles = true; - license = [ "free" ]; -}; -annotate-equations = { - revision = 67044; - shortdesc = "Easily annotate math equations using TikZ"; - stripPrefix = 0; - sha512.run = "4d4f64f6346eaee14dfe509857d2a592da825eed9ccaaa1a9c2cbf3a4d4f750441392d703c9c9665c88316125bc37192c0d6869f3e2f5274e7f80699f8c553c6"; - sha512.doc = "9f958eafc15d7de177a3ea66c0e381ec76480845647af0969e34b7429f3543c51de33dff58d2a4faf10bba82eb8f3de097d3324955b1842806fc69e8cc6b200f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2.2"; -}; -anonchap = { - revision = 17049; - shortdesc = "Make chapters be typeset like sections"; - stripPrefix = 0; - sha512.run = "4b84d5260c0986191fb4f2b560c386a806c8f93c76360a8d93aa7f9b55dcf089d7d03ca946143b52923130ee751fd47f1ff59908314297fd752ff5fbb17ec0cf"; - sha512.doc = "087db509e1d9649176614296f84fefe9b726dceb3ac8cb6eeecdd8a6fdb03dc97433c31478638eeb6f5f7cde85b8a8a693fce55ed0b3f5aae35a075a43e5652c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -anonymous-acm = { - revision = 55121; - shortdesc = "Typeset anonymous versions for ACM articles"; - stripPrefix = 0; - sha512.run = "6899f18cd8422c1671b74a0ea3f9e8eb47d7ef62e0809d12e71de6ad6a7634c8cc7af22f701c710c9b2b5ee3867acde491bec8d3e2690e2532de3488aed1bec9"; - sha512.doc = "f7a91677338dff848150dd1beac5645c157550f3463795d2d67493f35a81a09d33ee6cb39f2d921f535c12f26bb60ac17e4208298bd8bd7ba0dea8da4e1b41e1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -anonymouspro = { - revision = 51631; - shortdesc = "Use AnonymousPro fonts with LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map AnonymousPro.map" - ]; - sha512.run = "105334748bce7fa8a78edd599d6a8466729937f0008c479213a4d3d4b6b3e24b91bd1e124d0e3c1354fd68f99fdf621538696ba9b32ecbf09f5c7202b0b34997"; - sha512.doc = "ced94c5fd0be106433e99cbe66305b60ac6ddee82d3a1c8046d1467b11fe9ca10c2ba3b4ceba56a0ff439e7fa82d09c303f29200fdcec1600145fe7623773e47"; - sha512.source = "75d70833e574ab7847208d76d1012105f42712fc1558b9fbb35349871068bd60099d4ffe189eb28f5276807e6d1e48969283c7ea5a48f991cdb959077c1444dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -answers = { - revision = 35032; - shortdesc = "Setting questions (or exercises) and answers"; - stripPrefix = 0; - sha512.run = "89f7fa19dad8e94b57a66b53b72578c277037c0c3a9fe008d0802dcdedaea03f01c6554f4c6b80fd038ebc4f18e21bad3fc176f4c4acedae07d9acad2a90700e"; - sha512.doc = "616569a8d972150c0a1da86625b580baaca642bfad773e9e2240f74d33ddfea203b4c7349660b996adbf8208a92b11861d3f1a42ff88c68f39efba0af97ffa19"; - sha512.source = "ab865ba5abd9be86d4056cc33ec9436c14cbc0c308cc68d9a6768c094b84dc1bf785bc78c84e1f286e9371c2118ae3c21b8f57d0b4406ba6c2130f633ee6ef09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.16"; -}; -antanilipsum = { - revision = 55250; - shortdesc = "Generate sentences in the style of \"Amici miei\""; - stripPrefix = 0; - sha512.run = "d0a31d489cbb68ba258d78c14d294dd3ceecad43d746a43fb87d6c129d2b97145187d8f0207d320be91168a3e8d0612c79bd861d327572517479831a52d290fb"; - sha512.doc = "e7b4caa710d671e8474df9e449112033be38da1465ac475ff77748646b8c24c5589cb2fc3fccaa19642ec68960be1cda4fc4bb427e53ce19ca5c99a45f74ab44"; - sha512.source = "bd2860412e363d97f50a0055036b283c10b475832c6acd1da617a76cc05391b7cb15ea2b080c2658b8e0eb7d455a5ddac80ed25f7cb0f271c0172008b7af323e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.1"; -}; -antiqua = { - revision = 24266; - shortdesc = "URW Antiqua condensed font, for use with TeX"; - stripPrefix = 0; - fontMaps = [ - "Map uaq.map" - ]; - sha512.run = "0318b6f81d365cbb4b320642ddb6d8f909b5b136daf952da01c22508c392c58c9f8a25b33e4dd0e5afe777bb0b366633afd6567c3992df2a2e286cc9f41e6211"; - sha512.doc = "4158160d42fc776891f974cf8de13631aed17578ad2e5a67225442b7e783a36e2a0d3be640d92dce0fa66097dc617ad54b2779a3a3ef9878b46d900c5dc2ed7d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "001.003"; -}; -antique-spanish-units = { - revision = 69568; - shortdesc = "A short document about antique spanish units"; - stripPrefix = 0; - sha512.run = "a1203a09f77e3753fc28d632abc1c7d686085cd016acbab38a767b85a815d0dd05006e49b11524deb85bb8a20a3a8f413917529842f850d4efbe80b38c216ee2"; - sha512.doc = "4c4cd96889c2f1db9766099de6d149963579d27256f44d555023e205ca09617b570237e7eec2b5523c61af4d1124683ade9eeed4a5fb96f140423176ef163cad"; - license = [ "cc-by-40" ]; - version = "1.6"; -}; -antomega = { - revision = 21933; - shortdesc = "Alternative language support for Omega/Lambda"; - stripPrefix = 0; - deps = [ - "omega" - ]; - sha512.run = "af2cbe945ac3495e94fbf69797c05d9a7cd8c3874148c54c602a4a152c669638cf7a861949a3cc2d08aa21f378b57beffddf2d13e3afc1157c74472c348f5405"; - sha512.doc = "298b2e796736f7598a83a2d4fee53f48e78d0c8b255cc09c686371a3a05a4d36736cef96d812281cfd3fe1024af433f32e117c1c60d7559809220ed8dd5e56a9"; - sha512.source = "7ee92461e60834af1f736f387823788a44d680171d9a7acbfd71c858885e190f724b5db11074efb74faf63b471af5c34688af1be5b765de67b170dbcf123fe2f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -antt = { - revision = 18651; - shortdesc = "Antykwa Torunska: a Type 1 family of a Polish traditional type"; - stripPrefix = 0; - fontMaps = [ - "Map antt.map" - ]; - sha512.run = "c31e92701d14e0559ca1807389d3f1d95a166e9dee918fc7218ee671227381e3c37a991756e9c19c7e7d3681597c3c012037a74249c7c8eaaefc7c8a3bc2fc36"; - sha512.doc = "00533390612e68b48dbbe9c1ba11e46a0e48f8b87cea8f6623267d53795ee9170daa1f34adc8cde12356ef779990fcd7fe7a10b601bfc11c9a0f590b5a25f3b2"; - hasRunfiles = true; - license = [ "gfsl" ]; - version = "2.08"; -}; -anufinalexam = { - revision = 26053; - shortdesc = "LaTeX document shell for ANU final exam"; - stripPrefix = 0; - sha512.run = "0f7deb262a96bf55eba167475ca7c55887c1cdfbe60f9a32debb6926d855764eb595acb693ce9ab74a2af89efd98114f6694255580b5d594915cb2470d84b485"; - sha512.doc = "0821831108f81bc8d23dfb7d26f2201057a897a2dc783959b9e298b8e59b79a12453db072b824397a9625b8a63e7fb19ad8ba6d4500436bb0f7b9a23f96d1c3d"; - license = [ "gpl1Only" ]; -}; -anyfontsize = { - revision = 17050; - shortdesc = "Select any font size in LaTeX"; - stripPrefix = 0; - sha512.run = "31d1c235d011998043663bc1f5729bd40c5b90996627038be612115daef2b3526c9e616b16c251d6b653d5bad82beee62a7dcfc3b8c10feec0850729afb294ea"; - sha512.doc = "9003fdbf712448de70c858eba74f7de79e0cb83e8f9fe72d9c1b71869161d5a63099473c4f9ec670b28b356ceccd9b56110a1724dcde3062ae209a678f5b0e16"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -anysize = { - revision = 15878; - shortdesc = "A simple package to set up document margins"; - stripPrefix = 0; - sha512.run = "4439be91f8dd82cdc051c519b5bc36fdfb632cf09941f4e6ec92fa77c2b5f4d767c162018fc9451d48ece17e9cbd5d7d4c574eacea78b8f92b6e07d40d7b590b"; - sha512.doc = "96591bba808fc91a876dd49a6e1ede3b679c18952244f14b07e992b40d20f6c4a0f4b4dad00a409c766c5f2e883fc4923c501e65b06ad93193719001c2629f08"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -aobs-tikz = { - revision = 32662; - shortdesc = "TikZ styles for creating overlaid pictures in beamer"; - stripPrefix = 0; - sha512.run = "76e3f9748c704efafda74e6184aa3c0199f8dae3a9f433615fb87ac5fd7c81d5dd604e91ed7648b68f05919425f82fd19ca0b66f4f590f55e55634a5cc4b7f9a"; - sha512.doc = "3732ca200dcb7d3d4b99cbb0edbe13ef7c9293e8424457c2493c330b4ea810bca21851161b83740bf3b7b53899941e906b0b2e4b46ba715e7b5bbe19844d2070"; - sha512.source = "2cc8953d5e03bb1e6fc35d323a35d434aef291b165f1ac4fa0b005689af3d7988770d0a86fb4b4c3dd3ef6ea876f962dac5653e695533e089a7a50653358f40a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -aomart = { - revision = 63442; - shortdesc = "Typeset articles for the Annals of Mathematics"; - stripPrefix = 0; - sha512.run = "26216ce5a5069aeab93234a02063961d4895e45d35129a4888107dfa670e319d7d1f1947920700033b31f68bbc3a59fd189feea33305e2893581e8f6d89ab553"; - sha512.doc = "414142b801b286e4064ebd8a73cd40ba07c5d5cc6441e19f7657f94c2fb97665828d2c664908b8efa91af10d17d7bbf1b1b887de393d3752cbf0213b800e0c15"; - sha512.source = "79fbbac627d55cc394fbbec70c4550c2e889d88483b4e7c2bc19ddfc660be93072a7ffcfae92804b75e2fab47ea91c137c98ab7161e84399d586496940bf14b8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.27"; -}; -apa = { - revision = 54080; - shortdesc = "American Psychological Association format"; - stripPrefix = 0; - sha512.run = "dd825c533b29f8cd005b238877763ecc299f1a6d23be870bb7b899401f0aa73c4377bbed640e220faf4a1fe204dba0d94671c67ad83cb31d99eecb76e658f352"; - sha512.doc = "5e5224f11e811511b965e6f79adbab67bda5c809fdb4fadd5913ce570e34a933d139e8f418cdf7beff6e24e79443e4f4e4acd81837f24a5783915e169099e720"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.4"; -}; -apa6 = { - revision = 67848; - shortdesc = "Format documents in APA style (6th edition)"; - stripPrefix = 0; - sha512.run = "17ca4d98885f30c42c6e5338e838ea2556a2f9dcaaaaa82a4cdc0d82c9a208388f66fec45a87211720b12da193d758d662fefaa8d95fd3246f3403091b4082ef"; - sha512.doc = "244f143bdb9209482eba9c644a21b65af3a6990b5896ef079aaaac2aa57bfd4c0ae26878cf1f87d3f1744b3dece2aaebfccae4e0ebaa846944b614b76a12a673"; - sha512.source = "fae9f67a6f34bbb7ebbe06d125a45b6b2fcbb2d631f7b9731bacf2e87c87493b4e0804b9381609147000e412d2ce55e5b0e582de242ef027e0d3ac08dc3ed05b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.35"; -}; -apa6e = { - revision = 23350; - shortdesc = "Format manuscripts to APA 6th edition guidelines"; - stripPrefix = 0; - sha512.run = "155bd30654ec3a2bf3930bdad98235baa6bf7aa8109ad449aa1a7b6f2dbda37851f43978266e1c273cbd2155ed274003dcd91f9f452f2dffe268750fd0d9293b"; - sha512.doc = "d78ed178d1fbd07668bdeef74cf6f9f3674837a4f83eb5dce590762f7c02fae1017ee2eed6625a85a7b3e251ebff103e37da84af589125bdb60b73c9459cb748"; - sha512.source = "6a6502eb1a60d2b67d373fd1cb4aea0737d0eba9ed2846c07ff5849c4bfddb9ab3b6369ec0958536e831c79e63beece92393c874d9463bc7e3cc1a56f4c4ecb4"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.3"; -}; -apa7 = { - revision = 63974; - shortdesc = "Format documents in APA style (7th edition)"; - stripPrefix = 0; - sha512.run = "48765b391fc91c657666a94c4e903b3e3f93f0620ab561e6e7a29ce1c03ec52674f33dc314136a0ed35e2cec427e94b6365cfe64b1d50625f443dab6f20eddaf"; - sha512.doc = "3d55da4666c2babd231db031e6d72d4bd03b99fc89a581a3f351124956ce61b6275b2c7ced590d4407c1124636b6b2fff0a5cd5766e87ea51e4422db32288805"; - sha512.source = "f3190097ab50699cf44da16478b36953da636d15ec79ec45471b94a29de91feae603aee65fbcdcb32dadbec1e3981f3b39b7c6c483c77fb0da1922b20e056b56"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.16"; -}; -apacite = { - revision = 54080; - shortdesc = "Citation style following the rules of the APA"; - stripPrefix = 0; - sha512.run = "6f69733b58f0e791422269f48b56a52ad6b131afc4ab5c7c5ad1d9e0a5ec0d84ba48b8e43340f8e1a563a0c4b10aeb131f1999f836e89f311f067ded8464f91b"; - sha512.doc = "ba7720239a221d343cc58d28a9611f731a6db21f1e7852b0cdfe0c4f0cd97d475efd83c863b14d197f2206cb2bb0d314266797376b548de250842aa008ff3732"; - sha512.source = "bfcd5139e68c54b6c35dc8afc46022ffb56101de5dac3e6ea24df372483c2ecc2e3d2d0a486ea284f2fb6b0aba4ca622080910821a27447239ec527db941a2f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.03"; -}; -apalike-ejor = { - revision = 59667; - shortdesc = "A BibTeX style file for the European Journal of Operational Research"; - stripPrefix = 0; - sha512.run = "b04f10bb77365327f326f2bb6c67347802fe6f9628644711d72b85576f59e06ec9fec168ba382a187f51cb7bc2d619b2d971d55024e4ba82d7f5e3c73f556bc8"; - sha512.doc = "a9e091123eaa359ef7ca22d47ce3e069ebdd9e74835e54dc2abbe92073edbb9989d408d5f52f5e83b52f7137b4cbc50fc38e56606f72541ee46aaabbdafb3a40"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -apalike-german = { - revision = 65403; - shortdesc = "A copy of apalike.bst with German localization"; - stripPrefix = 0; - sha512.run = "2d9094953893182276e88db622b68750a5f70a9314ae5b88ca33c8b04a3e4dbb68fa01de9e3f44cc13b41b7bd7ef9c9b618af7c1cabe58045dc03b15277da5bd"; - sha512.doc = "eae2fa13afb28c51926a1fc4aa8e8e39da35d9a6b3297eb2a1b42bd39580daaf45a782c4cbba16dba6c7a4c315873d6ad1a7b6dd61b4de06cf5628f8d381c63a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -apalike2 = { - revision = 54080; - shortdesc = "Bibliography style that approaches APA requirements"; - stripPrefix = 0; - sha512.run = "cb837c6299628a58189f33570de7717d53d83d9de456255b489ae4ef73693b51bffc2dd12c9496265ebc8cda64d8da8b1c71d46f9d96a4bc13c07c9a6e021a2f"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -apnum = { - revision = 47510; - shortdesc = "Arbitrary precision numbers implemented by TeX macros"; - stripPrefix = 0; - sha512.run = "2e155193dfdd3c88cf336cece23bc6b393a81529c31ac2535840a7c4f4a97530d35d0f4ae964e8f92856eea0d54c356e8bc15427918ba0891730827a3ba561c6"; - sha512.doc = "4e1a6ff31d9836dbb04fbd90911083a9ff70c7526ef099d437e21c11766314cc29e8071dbc21976af7a23fe99b673bbee82dfd265041b9ecd015070c58b4ce14"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.7"; -}; -appendix = { - revision = 53718; - shortdesc = "Extra control of appendices"; - stripPrefix = 0; - sha512.run = "efaf48867a45f8365755224123b9259f80f49417c409698420d67670baa969d5d354df1429fe7abbd87c29a8e89a9e084cd75384310a44d61e1f2fb7a2650977"; - sha512.doc = "f4e90fc9fa5ca89a9a20ceb56cce788984f3ce5e55f92c99de966a54afca7145d9e3602c4e514ee6b7887b3ae9f8facc9b3191ada19514aae7c7886ae2984b0c"; - sha512.source = "7e7222abea6401b749f2019fb205956c99bc3ce48134138862caead25aadce25410ac4fdf9ce10e34dbb802c07e5fadf8e4facaf846047ea654f2605b4f3743d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2c"; -}; -appendixnumberbeamer = { - revision = 46317; - shortdesc = "Manage frame numbering in appendixes in beamer"; - stripPrefix = 0; - sha512.run = "d5f4573a0f6c31be7e910512d86ee0443e713abea11e71694b58f1d1d65f4249f967aa5b873941e1d8b7686d408f411aad1a76009a3bbcb528693ae14dc60e63"; - sha512.doc = "58b32eacfbcd8e024a4cf3dcea0c1d057010dd454c1e54b6752b970a3fa1a9e10eb15d8cee9dbb9ae032aaa8b6c070079b112f5a91b1c9617df40877a4a3454b"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.2"; -}; -apprendre-a-programmer-en-tex = { - revision = 57179; - shortdesc = "The book \"Apprendre a programmer en TeX\""; - stripPrefix = 0; - sha512.run = "2008619320d2b7e906c2511609e76894dd065f8e56dd1800cfac0e13af4415dc76c437cdadcf15cfea85d7862996e99ba3240aa30d36fa70d9c1d950b7c97e96"; - sha512.doc = "34c86cf9f0a296846a85f896f31da102013dd7b78ddc11d20aca93770671f2ab05930167160d3bf6282b7740fd9d5eb5238ec70bdf405658c1688d3bbd769d7e"; - license = [ "lppl12" ]; -}; -apprends-latex = { - revision = 19306; - shortdesc = "Apprends LaTeX!"; - stripPrefix = 0; - sha512.run = "fe9c7ee4cc8cac1ed932388ff75066e4166e582f92bc23da4a4f6049f3cfd8c100d6ab6c0b3c661dd76038a9683eb3207f94f54ea338dd172027815d6945ad94"; - sha512.doc = "d65d5f56e055ac4628e8198b718689631edca80abb3593480948ee8ba3336d7baccc091cac9f95b4dff745d84d409488d3a2032a1587f1f1a5db186af4da1413"; - license = [ "lppl13c" ]; - version = "4.02"; -}; -apptools = { - revision = 28400; - shortdesc = "Tools for customising appendices"; - stripPrefix = 0; - sha512.run = "05d243100c9fc575b7828e0084822fdb2c655f5d2d7c51b42aa3c5ee4d127f62f714affd1fa8e94b7c0c322b57a9fe1728d1829ed7f18d75b5287a673d580cc4"; - sha512.doc = "74ce416ef14978e0418754e3d2e2874ed07a8fbc6be90a1bf7dc492f191546407d7a967efb1306481d1b88ad296faa1194dc4da8975f7ac0c4e4053ccaa1444a"; - sha512.source = "ffbce0419baaf512bbf8aafae3a8bdae5456f9ea1699cb48b6ce215fd8c4d84dbee84399e8799fa5ca161a1e98375acd16d196c9ca6c505c7923aa7fab49e0e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -apxproof = { - revision = 64715; - shortdesc = "Proofs in appendix"; - stripPrefix = 0; - sha512.run = "69d21b2d0770baf8d29583e383dfa1714d8ba4d87d65c2f6590ac6d2f5df2304d002490cfededb38eae043ab1cb2b23d7c67fa7880c4e48654f2a34aa9f853bf"; - sha512.doc = "2ba3258ee71a0776ee27bf4249288b12d92b7cabecf1601efd9f1855f5a058b9c030a0d4107c026d8362324de9240350e65f8fca1e76ab5e4ebfe718b37ed27e"; - sha512.source = "32995f9080055dac2fe74e1c9d65baea4dd824098d1dc1e62232c13c4d67226e0c9cb880f5dc801215a97b2db7a6c665cc7188f42265416c8fc136384c3fa34f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.4"; -}; -arabi = { - revision = 44662; - shortdesc = "(La)TeX support for Arabic and Farsi, compliant with Babel"; - stripPrefix = 0; - fontMaps = [ - "Map arabi.map" - ]; - sha512.run = "6f59ea8c986078f388f4c8f067b12863422728cb1a56464ece4d793189bf0e6dcded476a3b86317c2bd5f9b4b3cbc475fd748c2ab9bbf60b3d8c8cd4c162ea62"; - sha512.doc = "c851b0cca46b11d7297a03488cc72adafb6409e0406de809a1a18d4993068702f03e17cbeda1399914005c9885108d747c844719764145c746b2a0ae45d9121f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -arabi-add = { - revision = 67573; - shortdesc = "Using hyperref and bookmark packages with arabic and farsi languages"; - stripPrefix = 0; - sha512.run = "8a9742a1499082ec9ecf5082f34b194e572cb94a0d0b6a3b1d6b8a01edfb9b3b53d42e3720b85fc2dc654d06b3641b95d506eac8cb393bb9ef21dc68c70e5adb"; - sha512.doc = "c11ac1fa2b8dfd619060efa36f81ed0ae6d0e1b976c08894f7115d960458a812496d5ce4f8270350ead90a5a1614a8a61cfb98568a1e28d414fc0c5b370690ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -arabic-book = { - revision = 59594; - shortdesc = "An Arabic book class"; - stripPrefix = 0; - sha512.run = "ac60431be9ebb42e2329c954805ecaef988bb6724eba7638ace659a973de3de9dbffc9ee85b2847531c3fca44e97e7099b1d9412ec754d9d27bde1432480f133"; - sha512.doc = "5ed647dc625397baf5db5cd05c87b2ce5dd44b4acf67ff6337b96989aaf210775f3870b5f1f376219cbbce96e486eed5dd24dc893684aeb7d3490ae62df15f14"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -arabicfront = { - revision = 51474; - shortdesc = "Frontmatter with arabic page numbers"; - stripPrefix = 0; - sha512.run = "efdd3769bedf8ececd7f71f6a918ed19f66caa78b348238b34e554698a5af6ae5616bad5cc494c970cd8e12073f1c27ccd1cfb7ab19ea263b5cf98061c42ccf6"; - sha512.doc = "64eb067784cdb56915b45e80f1666347bcdde06e3711a18cef16ae92450377aed236cc32c8c10d467d50e77de31a3f599abe900f411a510574378e63eb923862"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -arabluatex = { - revision = 67201; - shortdesc = "ArabTeX for LuaLaTeX"; - stripPrefix = 0; - sha512.run = "c235430d724495035832ca32fe838ab5d75d48d2d68c6c84965f5fb7e5c65098356513241c82e95b6c6d806328c0272b775c1aca963df02ce2540052d62b312e"; - sha512.doc = "d625d9d23d73a4c261c2099b77831dd1b60f38211a4802a3651e31f65c5d278c3cc3db8469cacede81c1a105cc6d4f605a5a9ef764b6171e4fcacf515a1080e7"; - sha512.source = "260d4eda4b79f727bf33327953fd0effe33f12272d293a2fcf6d8a5da8ef918d42220effedf20a29e5d4f39449b461398f15b08dd1b73522666cd7a009ece904"; - hasRunfiles = true; - license = [ "gpl3Plus" "cc-by-sa-40" ]; - version = "1.20"; -}; -arabtex = { - revision = 64260; - shortdesc = "Macros and fonts for typesetting Arabic"; - stripPrefix = 0; - fontMaps = [ - "MixedMap arabtex.map" - ]; - sha512.run = "df47df09eaf935bd8921d8ad475190fe6651f1cbf198473ee82099242b6f4cd63ae5873a2b2fbd7a75a4f9ae77f5ce3f56ffec0e668fdd649c4d3fe051b2ac68"; - sha512.doc = "a73aed53cc1cf4f5600312f58e0ae8a29c57fb04ebc87b91f13526c780567a5ba076a0b63b0abed791880efccffcfc52bb0f43131da4b8e2a60b48184d2f66de"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.17"; -}; -arabxetex = { - revision = 38299; - shortdesc = "An ArabTeX-like interface for XeLaTeX"; - stripPrefix = 0; - sha512.run = "7c58bd94b780abc5bc17b4218229d289797a155a8e98cae8e22825dc7d9b12c5514de01b12bf2f645047dafb13b4d519d463f4ced60f7ac53a65c6aa38cbec86"; - sha512.doc = "0dff3162a710b458b367bb4ca587d525b68ac79d2d3182e8b9d2ca90ff72f89bf69153960400c344511449c52346c329b8a34eb788e11ed9a5319bb6bca89418"; - sha512.source = "fb29b38d69d39f4c7ed04a3ebb114e49512abbf444f36fcd02dcccfdda22aa3800521c9819696c2828c46983f8266fc00aa59cafb35e26574a3403319d364d64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.1"; -}; -aramaic-serto = { - revision = 30042; - shortdesc = "Fonts and LaTeX for Syriac written in Serto"; - stripPrefix = 0; - fontMaps = [ - "Map syriac.map" - ]; - sha512.run = "6731d62d8a24c9f0d26061b8b2574a880df30df333fbe16408d0830657ea36f04f50c56b574de5eb081f490a4c5782595fe17bdb9208b6602c1a0ac81a1f10f5"; - sha512.doc = "433018891123aebb201d6c4f2b00dd15a558344b758899f85b9bdc21556ad4fc4845ce72084863b243e42beba643c5ae4dd210b74e2588af4825e3c83d6d7997"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -arara = { - revision = 69878; - shortdesc = "Automation of LaTeX compilation"; - sha512.run = "c18444518e8cb66b44e49cdcd944895b0667d934460d0146940c87813e0c9a372fb273882ea1de78d4fc869d69ffb2ec1a41d863cd977891ce7937134464df73"; - sha512.doc = "372e1053717395e960e2447622d262ee2b07594823f39fb845f5640d730a3590441aa5dd509e1f61be00abaa6df3ad20e953c66b7c27829d25b9ac68d0aa4423"; - hasManpages = true; - sha512.source = "0cd47d01d950c9ab685264027ae92c978a5539dc67b937d25e36a60e2a1ae50760f1da73be7e39132d74e5e4ea751c0a7ad9e9e00097bdfe270d235d87b64502"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "bsd3" ]; - version = "7.1.3"; -}; -arara.binfiles = [ - "arara" -]; -archaeologie = { - revision = 68476; - shortdesc = "A citation-style which covers rules of the German Archaeological Institute"; - stripPrefix = 0; - sha512.run = "02768eb18bd866522380974e675eae530afaa9f0c0baf4e4dd6e5c0bcfef3755a54e79d9be2697b4e29cc633ec87c65179561d662cd99406556d3a66940b9199"; - sha512.doc = "60136a2704265de25c0097e766fb50d89019b01524edebf6986db2c465d8dd2230f5d48ed5fa7b2d0c6f1ba5bc11dff4d2a171667d7743ad3d883e068c318864"; - sha512.source = "0625c3bb08909e367a908f5f12f9f2e064e6beb251e7e79ccf0ff7fd15639e89040b4a3ee45cf28cd11b14559c1f1660812b78cca6d8dfa02796f9af85290be0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5.0"; -}; -archaic = { - revision = 38005; - shortdesc = "A collection of archaic fonts"; - stripPrefix = 0; - fontMaps = [ - "Map archaicprw.map" - ]; - sha512.run = "5e841f4a8e5df375fd660c998d3d54221e6c8e383fe4a69fb082c98d62b44a1fab2e9ec88db37964e015abbc20cd0f2af5aa26cffd4fd92fece5e24661c0efa5"; - sha512.doc = "457eedb06a3a09a73a2ce0b20c18b643530aa2659d7b1b98be14238b9d40e8a6bdc39085654e8589fb134921f40d211d93f553cab25d7901e40286b3075f268a"; - sha512.source = "5a39568546651ef10937849550c3305bde9379737b21e24b2adbec532dee8192ddbdaaa77f2e6bc135d518f354c1b20d7c43bc03f65ccf47d423f4af1e75d620"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -archivo = { - revision = 57283; - shortdesc = "The Archivo font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map ArchivZero.map" - ]; - sha512.run = "0f6b7985d73ba3e62874bee7a05c215cea0008bdfd1b0c3df6795a2d6363ee2a209df956b4f9698ec93ee8d9c6bd62ab5bf3bf19cff78c968a97da58a80b5f40"; - sha512.doc = "88cf002d557401730c035727251e228effdd25d52e9d76edc950d0f3ee639e2eb5bf623c77a4e80dd902b7095076030b32aa017c8adea9f57912ca9de51ab7b0"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.2"; -}; -arcs = { - revision = 15878; - shortdesc = "Draw arcs over and under text"; - stripPrefix = 0; - sha512.run = "65737905ba0a6ede74d8cb211b46a2e62b640d1b655f895095ad4bdecefde496368707142143e2f2e48849faa89d86a9e90a0bde64fe84b3c828e14462f30406"; - sha512.doc = "2cf72d4ec304cfa08c1b3cc8df3bd9a6cb92a633a2ab783ac4efbb5edd6290ba256c86bc4a3bbc09d923a58a10e5f21f5d8e3e2b41b0ddce14406d29405523e0"; - sha512.source = "ce6599f074d59530d85960b2a313421400f1cbc26b488e900a5b49d75f6b715a859b36de2d2e25c880407950f1170512cc3573b0256d69ceafab40e29566de78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -arev = { - revision = 15878; - shortdesc = "Fonts and LaTeX support files for Arev Sans"; - stripPrefix = 0; - fontMaps = [ - "Map arev.map" - ]; - sha512.run = "8b6e88a41052740831fdfa03299f665fad9eaa0e45d1d235392aa0b849bd6ca03f1e18892c879d3a5289430a5d236b9544d617ea2c3af62a59b38b4d7ff8ce90"; - sha512.doc = "a8dcb8bf0fff3be9c99550623f12651df09b151d6e28bee03d7aa80c7b0eb8c86603b4d8037232e4998bc5603ab3dd368ff7a262b7c7f62f2903338774a9b8aa"; - sha512.source = "6c92c2f3ef59dcb93207ea90643d11aa8cf81850e2696414f489c40cef97737d00ee4444893669f12d4592c6573a71cb229c232b62f10db38195aabbe83fe523"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -argumentation = { - revision = 69023; - shortdesc = "Create abstract argumentation frameworks via TikZ"; - stripPrefix = 0; - sha512.run = "d18f62c0c6c5cef4f85b854342671ebbc9224475d41488058543e682e41230f61cea4ecb68db767742c30d92ae2af1270ef47624608a3fb93aa6f8031b12648e"; - sha512.doc = "bd6e12905e35d15064a357a248f4f5dbf5d91e37d0e742be0cd360e7d6079122090f29341acf11584ab563355481aad7edbbdfe1fa6b2455aee2b67e263dbb6a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -arimo = { - revision = 68950; - shortdesc = "Arimo sans serif fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map arimo.map" - ]; - sha512.run = "3c84fc274ebd29dfa65a8db214ef2ea74bb22da21827844be3b5648b7f10cba81a73772ccffe758b19ac16e58a75b1eb578a0ec8e85957f9693858065665a085"; - sha512.doc = "dc70491f5b2b5a900f3d6f9bd543974b81976907a7c3dd53fd7530e3d0a6d83fc44a61607b27d9644eeca6f6228faa171916e67fc7517c35d466d9c50a186808"; - hasRunfiles = true; - license = [ "asl20" ]; -}; -armtex = { - revision = 69418; - shortdesc = "A system for writing in Armenian with TeX and LaTeX"; - stripPrefix = 0; - fontMaps = [ - "MixedMap arss.map" - "MixedMap artm.map" - ]; - sha512.run = "7acac8416e424db754f1e02844e175dc76c694d46efa30e1e29d855cbe3ffff1a50b95c38e2de2e88944bb11920cdf2295254b3855b5d6e13bfb930665cda8c2"; - sha512.doc = "83b050d9bcfd2d4b7ff54458a559401ecf5abfb020c39b7b7c29f3fe9cc656980a63354df549ff4b93ec4ffb382e60578d5657c268ffb7282dfa5e45fc66539f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0-beta5"; -}; -around-the-bend = { - revision = 15878; - shortdesc = "Typeset exercises in TeX, with answers"; - stripPrefix = 0; - sha512.run = "8fdfb83017cafe87778ea8a9e7147d6b73ead7019dfc9dc8b620858a67a2a02991e291d622aefc77723f6faa8a66b132313a100d298a2f6327473df4e0fb17f1"; - sha512.doc = "acec7325203a96ab3937cb687e3265b5cdf6d77af5740e1e187f993fcdcbb9db743835e9ab579b6c8b0534311ba94f3d1591330bedf1c2f9eb9e6955ad070f9c"; - license = [ "lppl13c" ]; -}; -arphic = { - revision = 15878; - shortdesc = "Arphic (Chinese) font packages"; - stripPrefix = 0; - fontMaps = [ - "Map bkaiu.map" - "Map bsmiu.map" - "Map gbsnu.map" - "Map gkaiu.map" - ]; - sha512.run = "2d4c0f91dd483df95bf91056e4d7cbc28b681fc9f42704cdbff297ceb4f8110affbed879cc8b15061c309764e1fdcce01fd47c2d742df441ed191f83a065538b"; - sha512.doc = "327dbc2cc7b4bad5e410dbb07dd2a2d5052dcb54c98310ffc3596c1e5b4121c1a12e3067b7074f209a3972cb51280f057cfe718eb963869bf05a76e17c528dee"; - hasRunfiles = true; - license = [ "free" ]; -}; -arphic-ttf = { - revision = 42675; - shortdesc = "TrueType version of Chinese Arphic fonts"; - stripPrefix = 0; - sha512.run = "f0559968e2659a4e899bb0ee1e6236f4bf7f4133c96c146a189b42fe0ce7f375ffc5c62efd8acffa68b36c92159c28eb54167a7625b606cf7644c0a072d7f8e9"; - sha512.doc = "000030c21bf1ccd74ebc1c6bf8e46dc5d9f884480b2c31407353a3ff45a4d1072f759e9e31abbe5c9de7dfc68820fa359d42c5e980bfb7e9d408f015f8944aab"; - hasRunfiles = true; - license = [ "free" ]; -}; -arraycols = { - revision = 68277; - shortdesc = "New column types for array and tabular environments"; - stripPrefix = 0; - sha512.run = "faf429613ee1987b92b369dc357f376c1465531cec8f7f78c37099366fa80954930afd62c553760b71a2226b0d245d9ad9664f4e5383803471bcf4f63f419f7a"; - sha512.doc = "6bff5add83a6eb8f0c697bdfc5da076c5a833e856abf0b023002a50a85dd1a7cc24e0cd042a2fd28c18a37a88ac91f4f09a5c4f2911cbba30026fbc03df06c71"; - sha512.source = "9fe04362a179851b135af96b0eed0d229d19f2d4623acbbc39dfcef375be7dc682ef08af3fcbe146d7ce738cbe8e7e00e9f72d549966efa674433e3024738ab0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -arrayjobx = { - revision = 18125; - shortdesc = "Array data structures for (La)TeX"; - stripPrefix = 0; - sha512.run = "5cf6573de2bf55c1b75c2a0f38515ecde848dafcc0e5f0e77185ac039d0bcc4049bf6fdef62134ea5e4839570fc20cc6928bc9357bee0c4396f08d714eca8d13"; - sha512.doc = "495f7f8f3265e349e16ad170eeda10296926864084ace743df54f5a4b304da6bc344bce901edc0fca8d835bd0f90943b192b0e16e3a8f5bc81e0f269f2b480a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -arraysort = { - revision = 31576; - shortdesc = "Sort arrays (or portions of them)"; - stripPrefix = 0; - sha512.run = "6dd3c6a79c7b7e1f9a0fa29f2d7f4fda8c3aceb0b900c4e42773c81f8a49e84dd62ae24027065cf19cdff93d4addff11d0b25cde62f2d4854b84fec26eb98c61"; - sha512.doc = "1070b880c7bfb6101fa9294ee8d1ab4c61b21af41316ab711c3226173b73249944533cf0594571f90215a46322b1ef07322daf7230d95e7c23bf21650e1d6047"; - sha512.source = "a8a5d1506a5cc9a33f5393ad6dcfa7ee84af9de69d0760d90fc633391cd21f6d274995e372d91f47929b098d64ab5464d7d7cc2454266bc52972b8708e3bec98"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -arsclassica = { - revision = 45656; - shortdesc = "A different view of the ClassicThesis package"; - stripPrefix = 0; - sha512.run = "9c6b32e43ff86bd6f28d23b9aab5dd90a423610b2f3c842462e88985c2ee88eec2e78e05cf3e0b91397009bdd370880df6db642816d7de3bb10a96faf4fa34b2"; - sha512.doc = "84cd0583c074af45837f38c21815019613753890e056109abab3c79c774a7ebe966c35875264998398b18d7a7fc92ac6762dd72726e708193f699e321f296535"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -arsenal = { - revision = 68191; - shortdesc = "Open Type font by Andrij Shevchenko"; - stripPrefix = 0; - sha512.run = "f103fff41a3e21594134b9902064001bb18e0c85985ebc99486378c0929d11eb3c12f00e7e23ed254029bca78adb2061575c48e9406fda890eb732b3cb90f096"; - sha512.doc = "72295197eca81954e733409239b4cc13ff9ae87f5cf5c402a8d2904edf2e3fb6686fe2a0ea8bbd4d0e2bc0498507c47870ae1ac3cc2d722713ea4b952613a345"; - sha512.source = "214ebf080bbe11aa5c3fd088b6329746202ae1c46867fc6f1ac23d56ca22b44b147a8e929eb895c86834d6d3117bfc1e447e3759db9b73f4ba14b824a952b00f"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.2"; -}; -articleingud = { - revision = 38741; - shortdesc = "LaTeX class for articles published in INGENIERIA review"; - stripPrefix = 0; - sha512.run = "30a34052cd9586d4b49d687035ae8bed040cc5bc2d9ebc0d96a035c4c7cc06625877a501e02eda9be5eb79643f009ffa9e8d2bf9d7affecca016ef3c6310a6de"; - sha512.doc = "a7961a7ce16613d26d714d39bc441400cb37d7013d03684146ee9113d05dd821a23a1eda9f7e89601680959f3b473e31155f24003b5deaf60e069385c0681646"; - sha512.source = "1217fbf4951d4e6a11378154cc030b4fa18e7ca6384bd1593e9a8adfb4a4d2a3161bace28c22bd4aa4ba81ff56d1e2d1252d9678ded0c53f8dee6294e8dc1032"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.3"; -}; -arvo = { - revision = 57213; - shortdesc = "The Arvo font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Arvo.map" - ]; - sha512.run = "3a6236c3f5e07f3ad709c6a5e0f7d2c90574cc897f6f5d470aa1523b537370587b5942e1a8c581fd96e43e80189fb1c7c4a2475823077feeb929ec594a90ffa9"; - sha512.doc = "3d3c6a92159b47e8dd5ae7360c06c8d5db8ccab609dd5f3db47db2ddc9d62badc3e6bd7c881ec5955003ac2b460c550ce56154cb2323ebd2bdb8205318a709ce"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -arydshln = { - revision = 50084; - shortdesc = "Draw dash-lines in array/tabular"; - stripPrefix = 0; - sha512.run = "fd676917ccedc39b90b48b531ea4ec5098b70ca854583a3266d4080dc78f59e37a743e63b738be370cb0ca650594d0878ab1f807eb6f55daec17ecead73aa4dd"; - sha512.doc = "a809e2abfd26b11edaf8a5b23ddf01901f84bbd63b8fed7b6050a4947654ffada95bb697e13250038c6fb93db80dee4faad6d4493f05bb7f4ebb86dc7e9b9698"; - sha512.source = "0be560bb0dac65951b177a34ba45c8199cbe75b64958b71649f09e5e7be73fe091bef6097a9502be80e26bd415f193e00579925b0be0d12bf43adfc0e3963578"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.76"; -}; -asaetr = { - revision = 15878; - shortdesc = "Transactions of the ASAE"; - stripPrefix = 0; - sha512.run = "b44fbf1bb916eb9fb01c70a7302ef4028d04c84dc6a89a51c0feaca762da9cc95cc03cce6497e96dd64ad73e812fe59a12adb515ff4f561401131476e7df6214"; - sha512.doc = "be0cd70f1b3035477a9b455328a8e167a5042e07634913c0d9efb995286165a1f41c1b86a505b3f23d19ec2f43712328f70085747d692bb97ea968c40ed109b6"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0a"; -}; -asana-math = { - revision = 59629; - shortdesc = "A font to typeset maths in Xe(La)TeX and Lua(La)TeX"; - stripPrefix = 0; - sha512.run = "2bbf3e139418db06578af5fc8d3925d96bbe1bd9d472a82d428a059b1a206db131734f1b0e762ca49c896f403faf279b2e47465061dc5bcf0eaa8058474017a3"; - sha512.doc = "86b064ede8b8d77b9722d967de612e4a0e8758a29a6a3909b625fe2fa8ebe9551359a442376e8ee8a9dadf5d295d197328914411144c6f94e0b0fe16692eb128"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "000.958"; -}; -asapsym = { - revision = 40201; - shortdesc = "Using the free ASAP Symbol font with LaTeX and Plain TeX"; - stripPrefix = 0; - sha512.run = "9a683044f23fdec0547199afbc0f0c6c9de8faf01f09df38de324f53e91f446de867e951e187ec77bd63cc65bb92ba2fd7bc290d54650ce24e02b682cd10a941"; - sha512.doc = "4462b37c6575ba0f3e95c29e1d84eafaadc562da19ec58a604bb6ef677fb9b9d35fa68a6f2c81d8dafc35dec9f904cee9d3fdfe0c2031de928862324e83d8663"; - sha512.source = "54325810653a14ba0ebe67b92341fa151e5bade3ba23e97c67c2bada6bf43ab16d5e0d11eb4c59075c48bddd9eebe44ddbca5accc331e6b26081abbdb95e3e86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ascelike = { - revision = 29129; - shortdesc = "Bibliography style for the ASCE"; - stripPrefix = 0; - sha512.run = "d8c9d69ac49e632b7b303c0fcff53762f6d40a490aa1655f58525e192481b65b50912867b1cb16c9aba1d93483a6a2bd31e586683819a7f2b3db7439d46deadc"; - sha512.doc = "0283fa497b53dc3a0d60960bd45945dd9b363c53a563139e911b8bb017a6f0ea7f46a95811812a679fe1ac5327c52e73f4aba35d26160041c61a1cb5597c880d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -ascii-chart = { - revision = 20536; - shortdesc = "An ASCII wall chart"; - stripPrefix = 0; - sha512.run = "ffc1634e3e5313eb0cf04caaa227d6477cf81ba9b6eb887b2897b6740999f1f338b2dc53e6da735876f9c3b130394be59b0a285309d61909a73fdb0d6f28a8cc"; - sha512.doc = "51b11a22dd963336fd93a87e2948d05f291b4191253a474b9d6f70ec31a2645801fb5f6fb6238f6a9b2979dbaba4a6ec8ac15a41c4e8867645dfa54408f18373"; - license = [ "lppl13c" ]; -}; -ascii-font = { - revision = 29989; - shortdesc = "Use the ASCII \"font\" in LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map ascii.map" - ]; - sha512.run = "e92e312e38432a7294c71a76604e5a3c2aa6b65937d39933fcbc9fc9b61e00a1e2f35ba739f64c29a3ebf6d2e388cd29da384a2a6456f71576101a1f12e36f0d"; - sha512.doc = "2d681a41d213fe260e3491a3b410239fa2e025ba19894d133a27e47b417ccf27648aa13ae431b4c42549c1692cbe517f2595c2de675b14d9ea0460d469e4f036"; - sha512.source = "1bbadf44599ad29f843ef17d1b437f951f5b167e9bf84a73600a0a9dc5633d94d76c91ec23493250ac894d9114c1b2d1d1f182690aef5dea92c9ec51c96e69a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -asciilist = { - revision = 49060; - shortdesc = "Environments AsciiList and AsciiDocList for prototyping nested lists in LaTeX"; - stripPrefix = 0; - sha512.run = "5c2e7938a9d2df31477cc976cfb549103c8f378a8d38a3624d3449229861fd834d462163df6e2e1f1fec686f513c6a194ccae9fcd0991820b357e12a1c32af28"; - sha512.doc = "8602a9f8e5dc04a6d4a914f603e04ced8f5cef55c5a335087b8f0953d19d4641d43ef732ce299ea18590de89e2360a8dddb44f8ae76be6498ccfd29e4a680746"; - sha512.source = "562efdf7665916bc124f8d2ada2d7087ffebb23885df6c3baa652ef24b8fb7ba7e2f4a5880922066b9f5c44bdb9c70ea67537c79676c9fb7004d2ce1f6c0d6b9"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.2b"; -}; -ascmac = { - revision = 53411; - shortdesc = "Boxes and picture macros with Japanese vertical writing support"; - stripPrefix = 0; - fontMaps = [ - "Map ascmac.map" - ]; - sha512.run = "f03ff628aced70ac2406863aa4b23eac26cf47fa09ee377ba78a8df3af633ac1f3fad8d005022c1555d957ec9d84f98eebf2dc97b296713a2edf5f0060d4180e"; - sha512.doc = "e35257d0992717350e78e611f31f864651a1762dcefb76ba60510180de177fab02f634423b0f3c78c03394fe0eeb6191db0d534190d4f168922263526a85b1b9"; - sha512.source = "3613b89f600ca51f1234f711816d041c4a3c58f72217b299505d90d0b7316606b3015c43edf3546fe93625dc628f232179ddcb0dce7a2f26375b93af7e6e7171"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "2.1"; -}; -askinclude = { - revision = 54725; - shortdesc = "Interactive use of \includeonly"; - stripPrefix = 0; - sha512.run = "828a18ff7c2d997f25b46b9ce8626a749ce1a18989a292f7f44e9eff0c28d5819e6e017398e76a6872da6498a4ff8306d8f8e701b87b80f57f455d28389f7aa8"; - sha512.doc = "a06a9170ad1637c35a25c9a0d89f3721ec350a0053cb5b85374fdb5cc67e7d4653e75c2a5f9b47d19700e3e9ab2d70e5c0c419f68715e664185bd30759dc0291"; - sha512.source = "909effe3b7569cdd4a4a1fd7db12cfafab6c1ddc0987709199a051696b447f9b57ea0bece52efc28f41f49e2b81611e14e975cf93a2d5e4b1c202f84b9702569"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -askmaps = { - revision = 56730; - shortdesc = "Typeset American style Karnaugh maps"; - stripPrefix = 0; - sha512.run = "0f4d91a15053d40d329744c429540075c33e2098f6d9d07eccc5ad16c5696233dd01de89c61a7090dc127c3730ef04e24f8d56845919cd268ec8c0bc68d9c09f"; - sha512.doc = "268915d685c8bea4388055487ca0d30418557babd01547457449085e58d639bb17787b6b5c97fa99301555afa9d9d11754196cd2b1dbf48b642b05a835b383b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -asmeconf = { - revision = 69742; - shortdesc = "A LaTeX template for ASME conference papers"; - stripPrefix = 0; - sha512.run = "93b55a406a9b7b1e652babc788f9674ba27f29036aa16c25a3e531ff63077588807914d23c865eba55f73fbec04c3254eae837976591481534f773d72412833d"; - sha512.doc = "2c70973dd40e2afab5bc777c6a7b64d3c86a09e15c62b2f719410de6d05925534071e91ebdc482928382602d49d54b3ca342a7886234a15ed3b54ae761f51208"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.37"; -}; -asmejour = { - revision = 69722; - shortdesc = "A template for ASME journal papers"; - stripPrefix = 0; - sha512.run = "11e65ea5fa72880c52c63de1a7214de9322c26133722eed08bd54fba00f58f309f4d1a7fcb4a0112c1d66ca6be5fa3868f6779de8c47b660a143bc61855a47c6"; - sha512.doc = "3af8026c3e0a77ca0f4ba99901577d253ac139fe049363994f56480cd6177524cb7a7dd5a4c59f436620a089ea08f2faf048957a2d2290800b71bf8a43d964bb"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.22"; -}; -aspectratio = { - revision = 25243; - shortdesc = "Capital A and capital R ligature for Aspect Ratio"; - stripPrefix = 0; - fontMaps = [ - "Map aspectratio.map" - ]; - sha512.run = "1447c3037f5477aeadfe3e5fe18a004ffa1b8c5c18b7c68295b8065e32c5a3e6a044e7f9868bafe3d8b81e391b2c614e2153302ef34e1e4aabe84c92ada2f129"; - sha512.doc = "5ee4918a3d90e9e4b51a2985352133331b77a8a87bdd8d41fab9348e5c548670ab56b5f0afc63756b65fdb6e45aa7594335995ac0d146d542b571eefbaa84d78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -assignment = { - revision = 20431; - shortdesc = "A class file for typesetting homework and lab assignments"; - stripPrefix = 0; - sha512.run = "5b8ceaa313eccffff8930b4e1896c7aa069664244623baae2aa1eb3555786dfeb8af8245e56ca149754093f6d74d6b86c891cb9e52e67c7b76e2501ac206658e"; - sha512.doc = "49198297494adbb538385029d41681e55bf64c89fc9cee7d923b7ba9849c039a7e5aa2c1fbfc15f06c1a93a3b694899ffd8988d1833fd88c6f5dd51379289a14"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -assoccnt = { - revision = 38497; - shortdesc = "Associate counters, making them step when a master steps"; - stripPrefix = 0; - sha512.run = "24dd03f444ff4dd627a97840837cb14288e9021117f93fbbdc4f79cbac9cab46d43fb93769d2f05970eeef3fafd39692eefe5d1b7bec8ae04f6078d7a4b48824"; - sha512.doc = "195f1f017fe187a224bde969f45b6494007e4d05ab2e8618b62e8d40055b4ef401f5ef069c3bd1af25f8a9f5e1ad1cba22923e4d615d4f075e13a78a06752e9c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -association-matrix = { - revision = 64845; - shortdesc = "LaTeX support for creating association matrices"; - stripPrefix = 0; - sha512.run = "6b87d01d5559669f6e2d63fc14427d950eba9d790070625cc6acaaf6e308282b7434bce90da78a41858b068121b75a1e1c0ec4453d287aaed94c9e6308a1b5ce"; - sha512.doc = "e56de37acf6d8c2b53aff0aa78999dd400b18b3bb44ea40f21a7638e463405ce4f48d2041236897f7a281099c1c5d879ffcbda9d6b08d2b0d5fb83193803d157"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -asternote = { - revision = 63838; - shortdesc = "Annotation symbols enclosed in square brackets and marked with an asterisk"; - stripPrefix = 0; - sha512.run = "bb1939b53b892744c323bd28f84cbe07d94c30c3f824e9d611f8b044fe8b9b07990fe7709607e7212ac8252d6eaef9a989447f270e26f16e074af0b9bd92cfd4"; - sha512.doc = "31b443d1ad05880fa5c6878fed144a2b1cf20fe855188ca8d879c5d18b7285f16dceb76b2ab7dd6be2f401b898752a674f810af6d3b9ff906a6cd75a80cf51c0"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -astro = { - revision = 15878; - shortdesc = "Astronomical (planetary) symbols"; - stripPrefix = 0; - sha512.run = "8cf59f7de3ea5add30166fcd4284279582cbe6199bcb1ebd540688d03c03ccf03aa740602cfad11af9380d970ed7009e6bfb4e96c56d26036f872e82c02739b6"; - sha512.doc = "df4a06e10e9a438393c7e22f746618c5d760a6095e285acd0b2918f58e234a1eeca9b49597d381a113cdcbff0f13e4c7108b9b400afc81e81757f4400ea484f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.20"; -}; -asyfig = { - revision = 17512; - shortdesc = "Commands for using Asymptote figures"; - stripPrefix = 0; - sha512.run = "f067e6aa1f3cb481e07f59781fb7d4c671a0b21a392ca7830d7fa19ed7a198fefd5ad5104ed3644eed484100871f9a8d36d1ae6e31d55487e4ff2846df618e9b"; - sha512.doc = "d798066b8c545ef385a75c81d431c169668bd10ad072bc3e0ef1db7c0df903d51e9dd9ac2d482d109b421a868e9cbff577c18f52a7b4520b32985fafcddb66ec"; - sha512.source = "0a62a885334ec00b04e47ce4df391d170f286cd90e7d68d940d0f3ec09018ef87f49ca793508592cc92268c1346ae48a54be65ee601f2dad7dca82778c9f7e39"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -asymptote = { - revision = 70583; - shortdesc = "2D and 3D TeX-Aware Vector Graphics Language"; - sha512.run = "8c147b714c3e57c569d9d93815ab6ebbabbd9be3a24b0dab724c32075d51e42f49f326de2babdfa6894056948e5904ed1b86cef88742d000e8b4e6244be868f9"; - sha512.doc = "a81d20288e4c7b30c50fc32e5e28a30b5fa81ad01564c5935489c2b8e4749bc13871d7551927345452315d18f81102232ba35dc3de2a7415bbfb14d7fff12d83"; - hasManpages = true; - hasInfo = true; - hasRunfiles = true; - license = [ "lgpl3" ]; - version = "2.88"; -}; -asymptote-by-example-zh-cn = { - revision = 15878; - shortdesc = "Asymptote by example"; - stripPrefix = 0; - sha512.run = "34608d6412d7936a15bf649555683ff03c5021e1688c99285a6b7ecdfc3a43eac4ed32108626243d6e9b07c23c557f07762897a96501a27412c7c5d039747553"; - sha512.doc = "a0087e5be69962c671e1972d9e7be12f76be64582182afe042693cbad92cf3fd027422c605dcf7860cd2e61f0b925860a50e94523b9ae2d1af7a8aa6d356c3a7"; - license = [ "gpl1Only" ]; -}; -asymptote-faq-zh-cn = { - revision = 15878; - shortdesc = "Asymptote FAQ (Chinese translation)"; - stripPrefix = 0; - sha512.run = "1efc7098392ac5cad5eeaa0dcf527bd158e3f7497ff1992603b833ff63d5cfa61fe5e7bc33c5cc0c441c13fc03dfe1e18a334411be6ad2f5acc94c902e9ccf2c"; - sha512.doc = "b7dbcf256cffae9cc8f5027934946929b4be7a8794fb8364892802eeff4e7cf970ca8549ef442a35f173ada61533b51c2da301bf2ce931107a7ce0c564ce0c60"; - license = [ "lppl13c" ]; -}; -asymptote-manual-zh-cn = { - revision = 15878; - shortdesc = "A Chinese translation of the asymptote manual"; - stripPrefix = 0; - sha512.run = "c04fc953a0a9035c238b9f80873d9fc605b23b322e898ae55b8eda7537f0172076e512022b163e3cd397ce2e4e721afa2e981454db53511c1a7347a017185df5"; - sha512.doc = "0f82e25773a14b0f81b34354f16931834d0496b2c6636c498c6af686f46e7ff93a274739a1a4c189433c9df1ae91ca010f0887081c81f2ac9006a105c7fd4ac9"; - license = [ "lgpl2" ]; -}; -asymptote.binfiles = [ - "asy" - "xasy" -]; -asypictureb = { - revision = 33490; - shortdesc = "User-friendly integration of Asymptote into LaTeX"; - stripPrefix = 0; - sha512.run = "a1ab37814223b13bf49d23c527543cb537e2224335e727e07e1f645a7f76a2f3ba1a275073c775463880b0e258e716b6b00d0df29ca944f1f22b3ac70aef4378"; - sha512.doc = "68b060950fdad080061b8d2c1a91726d0eabee9aaebe322e983e0dab81df30c65d9d7d0cf32fb2847f504ede155f2c43f3ba8c00073fa425bddcfe7d47a6f000"; - sha512.source = "883968dc538186507f4e81a466dd980b8a8a3ec088e25e7973c62e949871c79baeb909ef64815720004d503cad33d7f9de6c7ca0950cc0618ad2111e92870b73"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -atbegshi = { - revision = 53051; - shortdesc = "Execute stuff at \shipout time"; - stripPrefix = 0; - sha512.run = "7e03a9a73d8790f6603d53c11aacd01fb7108546e2d3b6ddbd5fce1e42d68ed9c23dfe41794b943eeea67ce0c598851132dd23faa95289789911cd059a8caad8"; - sha512.doc = "8f6402dd0f36d4cc4a4674c0d0b37f012a7d6e557174ca3b58a7a2b33d89475d1e47028cc39d2b77c496bfae0751275369c5f4f49cf53b8c36fb60fce47a6bd3"; - sha512.source = "8eee629abbe71332a00a7ffd41f8def262baef4bdfe9e314a4afa90015b30c77e291634f3e83d904646cdbe4820e3c6e0e6398383892ea26f62ad348ac2f3409"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.19"; -}; -atenddvi = { - revision = 56922; - shortdesc = "Provides the \AtEndDvi command"; - stripPrefix = 0; - sha512.run = "49b0a69eb308e19e3ed97406fc1ded6e80f15d7787031e2b71cc41ca2e1c74c19d3f3832ae13c5f1af70abf9f2f201c9a7ef669ed2e58349a584ddc767059c54"; - sha512.doc = "d60dae681800be4495c2690f78513475d98a4480364306eb26c16c551b0e984f135aefccdcff549e6702b2b62bb185ccbdacd85dd3c12e5b20c128d9397c0e8c"; - sha512.source = "a2c6321e825629a75d745f0bd03cab168fb51b5c33d5d256a621847f27ec2010f0331c37644e95b2ee40604d68cf34772a3dde59b6c6fe340713c0e593fc318c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -atendofenv = { - revision = 62164; - shortdesc = "Add a custom symbol at the end of an environment"; - stripPrefix = 0; - sha512.run = "04a6c644b9235dce6495c46e2bcc093c03dfadf279d354c8b43b81a0b4a14daae71e7105642bcc95025c55ce92094c01292be2fc379e6c0c720aaa9b5a21ca9b"; - sha512.doc = "22249061d4340939e597d50a5ae4c09f8b4514ddcb0862003ec7fff7006bebb207b5926ffcc0d723190b409435279c815a5880c6fc989294f26098c3db15d1d4"; - sha512.source = "7b457f3643595f98138aeb25090e7cfc98f2d613689428559aae60898f81d586d509b7124ad3fd77383f9524f8611ac8bfcd361391670cd689f1025cf0078859"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.2"; -}; -atkinson = { - revision = 64385; - shortdesc = "Support for the Atkinson Hyperlegible family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map atkinson.map" - ]; - sha512.run = "8b763a29fbd529b91d586e00f13176c1cff3777541816a02913e57e8f8586357331615ba4d16549b9a98a0e049a42b2f49af39b3f950fc4845a46e37435dce2b"; - sha512.doc = "f5bcfd015fc4292f4568e9d960e921739a9ebcd8f198f648323d475f6ae5d803d3f0ef77d368fa9fe36f53947908e4bcf1cfbdbd621e780221c5e8432ca9db05"; - hasRunfiles = true; - license = [ "lppl13c" "free" ]; -}; -attachfile = { - revision = 42099; - shortdesc = "Attach arbitrary files to a PDF document"; - stripPrefix = 0; - sha512.run = "526a279f3fcb309cb117327f4206e7dce8c49d39b85a846799bdfea5bf453d2f00e14e854a74d544e49fa92ce056cd8ccc7e03f56856a8e8562b7105d5fd19fa"; - sha512.doc = "9f9e6572e70d348e1db71254a0c6a80cfe76b767801a3c18ad4517577b793b5388367b24f311f491f0dde8df38684b3de4a2ec7e6db67f1fc1ca7b4a9ce5ce78"; - sha512.source = "a4bf69ed370f495f190abaaed8616b4a3ca14184987c6c4882451ec4dd6961b827d3c38d8c049ebe73954f5fe205f727124e447d2e3cf17abe1d95336371b9a1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -attachfile2 = { - revision = 69505; - shortdesc = "Attach files into PDF"; - sha512.run = "d741265618d75ab69a28983338276abb51382d797664bb9aae5876e054307e438b854b1981245a49b3b00052dfe6144993a465e56f1e9e1abc142d9dc78512de"; - sha512.doc = "423718fc61b589d83da1cc0188667c8253b19d9a255f867a8c8a56e812d2fd04046aa5859657a0af88d5c377dc0b0f0fcb2ae8058e7e69ad9ef2099d0c8a7d5a"; - hasManpages = true; - sha512.source = "72f0f9292fe0588d4bb9577e42002576442d3ab19b3ba8eadadb6c874dbace9065a3e74a7818af1055bfa09bc9cd74d734152c95710e3951166eec385414aebf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.12"; -}; -attachfile2.binfiles = [ - "pdfatfi" -]; -atveryend = { - revision = 53108; - shortdesc = "Hooks at the very end of a document"; - stripPrefix = 0; - sha512.run = "2a546be6d2109de9db60e94bea3a63a3c7af8ae892c8540a1513fbe4bfa505dcbdde9913b7a4449727df0ccf6957f8010c5b76abd8d6310c118b269bdc7334e4"; - sha512.doc = "5c5948ab7f0ca213bb5fe3ae056cddd392461911e2af7dfff133253f6aae970d525fc752f154921de2186c8a443fa4f90b18d23896a016ebc9ea177d6826613b"; - sha512.source = "1ec0c4752df403e47c4f8d4186167ccb59d2269012d904e9de1ec54acacbdb84b571f5bd1e6b645f7f86972178db2793853701cfa180b66ae7edc1d1488958b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.11"; -}; -aucklandthesis = { - revision = 51323; - shortdesc = "Memoir-based class for formatting University of Auckland masters' and doctors' theses"; - stripPrefix = 0; - sha512.run = "54c6708b343c2605d7779561fb086b914f1a7a825f5556b4a36faee0c8ad29b1c8ed67eaffae223c5e5d47bb6e6a9aaae4c0c658debb7bfd196d9362ae7b8796"; - sha512.doc = "ae73abe45b0aecd033df666f3095486fb29252449e840e9a978cf916a2eeec4a126be8c3ec60379408bd6f7322c8794ba1fa3bd77e45f1723affa18ec109d93e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -augie = { - revision = 61719; - shortdesc = "Calligraphic font for typesetting handwriting"; - stripPrefix = 0; - fontMaps = [ - "Map augie.map" - ]; - sha512.run = "a862fc140ee85e9f48908e7251dca78f6f328bb194bc1031ce7b521feabc62bb148764e7574341b9ba39a1bc76bb4a718c3cfa45bba7480aff168eb17661d74a"; - sha512.doc = "434c1d88522ae41e8a41fbeda6685a059fafb8f6cdec26d8737b5f6a6ddcf1e4f2a443ffdffa6b62a74f4abd2ed2e947176f59e64bf5691debeb62d9d54e719b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -auncial-new = { - revision = 62977; - shortdesc = "Artificial Uncial font and LaTeX support macros"; - stripPrefix = 0; - fontMaps = [ - "Map auncial.map" - ]; - sha512.run = "625ddb6342c2ed4e5491e63ae13619b18892bc5d2cc005aac489cf1b6d193a28acdff9404f51b4cc76e8950ac182a4f8d5845bad85fd4c4afbdf33e7b8c225b3"; - sha512.doc = "4d3880a12e8dab72fa5278e4507bdc03786cfe94bfa43e81068629327d1e70a251ca58c7cbf6c58560c03b9e1e4d79257a674370e89c780f5c81589d54084270"; - sha512.source = "bb35718db33f7c4cb6889570def1b4f8a47e05896a14c8867ff7dba362028017d4e64d66b31e2f2cef45b749784704ea6cf9c1731543c3277496fc6c128b08fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -aurical = { - revision = 15878; - shortdesc = "Calligraphic fonts for use with LaTeX in T1 encoding"; - stripPrefix = 0; - fontMaps = [ - "Map aurical.map" - ]; - sha512.run = "1c48c36d6121005c123018cfe1266783288572c0ce8a9ea4b9b47ac28f46206de61b7a73804121f9a57c056c871c547c97ff10a529fedaca57bcb3ab78f3bea0"; - sha512.doc = "89de4991373a50d673f569e72f4727bd66a2b40b385006c3c7e4605812e7f8d3d346e3b08be55241f9926a58b40126d123d6ecea912d09db3973985d0cf9e90c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -aurl = { - revision = 41853; - shortdesc = "Extends the hyperref package with a mechanism for hyperlinked URLs abbreviated with prefixes"; - stripPrefix = 0; - sha512.run = "4688987b83ae65e15a74cb7960dc990710930186ec94e376cc3a74dfec9f6d75a51babd99438ff87a5f6f8e05cee483b569fabe627ef00fb892126f74749649d"; - sha512.doc = "a58f7cbbae262c7650bc5147b400f25f0c666effdcf37e565f665092d1cff820d2d98652947d36f6940b8d16027336b970ff88ecd9f3500d9a39a45eb4a19acf"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -authoraftertitle = { - revision = 55889; - shortdesc = "Make author, etc., available after \maketitle"; - stripPrefix = 0; - sha512.run = "b7496b1ff5dc7544afa6e2181b9c86814671d42603c1f9aa08cc6d45e02dc402e225c44fe554649251b8cdb3dfd81f1b0fb245cc8ed56204d2bcad16e5e9f9bc"; - sha512.doc = "a1cda29730615ec8b81082f14462c5864033e1b4cbe0b071e5cdc6d9b5393b2e701ba6e6665963170bb99408f03c8fae38fc17aeb2de83fe9c8fbdad8273482d"; - hasRunfiles = true; - license = [ "cc0" ]; - version = "1.0"; -}; -authorarchive = { - revision = 65777; - shortdesc = "Adds self-archiving information to scientific papers"; - stripPrefix = 0; - sha512.run = "d5695336d18c4b84ef2b611b9ebcf502a974ed884625a2296666fdcf54a757f6682c0f9689713d134c033b1a9cf743218c02b05c0b2217c5c2ad5eb5d29f21bc"; - sha512.doc = "e8ca021be201da6cdb5ec980f3724d38d3cf4c5fa4be8fd08b286ed9f0ccf2db1f0b8e3f14e3cf6a591afa4c71ca4cf3f962d7a09466000377d51745b6600501"; - hasRunfiles = true; - license = [ "lppl13c" "bsd2" ]; - version = "1.3.0"; -}; -authordate = { - revision = 52564; - shortdesc = "Author/date style citation styles"; - stripPrefix = 0; - sha512.run = "c67f75eb92a937755ef0a1ef0896ae3cc1c256008d864572503d3e9d3be1321d25be59e76d4d3ae443398612233a328b1d6e2da9c103f41b30eb088208701308"; - sha512.doc = "156fec304fa95388fdbb386153482016a4d78d4862943bcd6124466b12df920498d5b42446465fc0f70da6353f58c329a27a822efb5cca8f0c4d7fdcb3239a02"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -authorindex = { - revision = 51757; - shortdesc = "Index citations by author names"; - sha512.run = "75e35298e4839f3975824624c7367504a26dafdf4b8e1d5238e2575c821f652282cd9a6e58fb4296b2c0345ff104dbd2281135776718fe4d2ecb76110946ab9f"; - sha512.doc = "a6c48d89cfd854d8acae47e318bc3951f8e81434d9a81901c8a7b7f1c25188afb013b94780ceb201e81b5d10efb7f5c24f5b5e4c8d8379aba390431707bc4d55"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -authorindex.binfiles = [ - "authorindex" -]; -auto-pst-pdf = { - revision = 56596; - shortdesc = "Wrapper for pst-pdf (with some psfrag features)"; - stripPrefix = 0; - deps = [ - "ifplatform" - "iftex" - "xkeyval" - ]; - sha512.run = "5c1f85a0ec5aa4173181b087a1f5f8e30be6d8c21c3461999a85b42032d45292aa6f8aae4922a5e97d073fff5b2c9d114cd30f5d5bb73ef523718e891ce59473"; - sha512.doc = "73d6f4b2e298eedc537a46c1e69bce9e160eb28e6bc2f631596a4fd3aa658d8b51d6dfddb6748b7e629fe564a2ced5e55bcd766650616d936a4197e368b2fcd7"; - sha512.source = "199e9fefcb2f96f1ad9e33abeecedcff9c72f20614c48951197703ff65901763ef88f425af08021b1843f30c3ee8e3a9756095ad4b165772b829a29c6e5515f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -auto-pst-pdf-lua = { - revision = 66637; - shortdesc = "Using LuaLaTeX together with PostScript code"; - stripPrefix = 0; - deps = [ - "iftex" - ]; - sha512.run = "7d9882f2c80021409602f343e99dca9613f060056614f2fa8445b4f427f53287c4eb95af0a252ee3cddb2d6b47e1ecbc0ee3032dd55c209eb946b686f8037023"; - sha512.doc = "ab6cc1b954ff26f5d7b44f12cffc7aa2d5ac1aa64e37a68a5952616debeecab0e34dd2bcb6e06a3f49e90d45e9b5f60955d8b62cb8d124ae35625b398e97fd44"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03a"; -}; -autoaligne = { - revision = 66655; - shortdesc = "Align terms and members in math expressions"; - stripPrefix = 0; - sha512.run = "b590b6f43bf17d54595c3adcc6de0e5c6780efd8ee68efaa5c2990f3e9e79ad6844397d6c7695d3ab66d72d4eb592c1455e4234f7a40efdbf4c788bc45216442"; - sha512.doc = "d043ed183b3e30d35f7d4e6a5b5f094ae5bddb4e2265294c02c0888cf2e78fceb16b14cabb5b5d759b5397f58da1111d5fa590aab89a59ce13e3e13fb2e3dc91"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -autoarea = { - revision = 59552; - shortdesc = "Automatic computation of bounding boxes with PiCTeX"; - stripPrefix = 0; - sha512.run = "dadd69326335b6fe6e425a867e2e62a0b1df2f3179801bcc726c6ceebc15c24e3a7c9ecb3034209e25e503be47a9ad8639addfb628f720bd0c0d64c15177043d"; - sha512.doc = "1b0f6ab0c7b1c69b7a802e9685db50e6b54361acf68ce2c2803419b165be1dd01f52a5b3fa9ccbe273e859509f7b7faa0c7c6b88bfec8f51f0bb66adf7b94e90"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -autobreak = { - revision = 43337; - shortdesc = "Simple line breaking of long formulae"; - stripPrefix = 0; - sha512.run = "91cc17692654270bba9536ea9186ffea2e7e9a6e9dbf0ffcd9821c8b3ec470ea3222af2a1df05d85e47d65fc1737cf2dbeba150641355bf826e5ad2da90db059"; - sha512.doc = "0d06f75e6f4fb254463ee2a075d106c14a06c5f7fc25b5047fbeec0e48ca9faf6e136f098312811329db1da5f9fffb6dfd45abe6eea9ecf682f4fe99f0384178"; - sha512.source = "7120382c7974acccf1a49548ad8e654b945ae2ecfb858b37ca871fb7b5b054d8554c971a86c511d03e2ffa91e5cbc6d61cc743da51b0a9de705f74c0b9c2c7c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -autofancyhdr = { - revision = 54049; - shortdesc = "Automatically compute headlength for fancyhdr package"; - stripPrefix = 0; - sha512.run = "3ee2452c80ba671414a1669e0c47c7069189dcc0dde97bb33f94e77251b2ac8511b7cb79fd5866c2d3acfbe7768e20f715e61a6303a847ab82564743fb8d2a2f"; - sha512.doc = "1fc9ac9d47d65eecb1a6736aa5fb148a6309fa64cd18053b038483d484f974f3f1aafe8afb03b88921ab5a990b78a2aa9dc6d7149884a550c57340218f72159a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -automata = { - revision = 19717; - shortdesc = "Finite state machines, graphs and trees in MetaPost"; - stripPrefix = 0; - sha512.run = "09026f967084d5f1804a32166e854ac410a768f6b4654d9ea9bb69dd29acb8a3199919daa1fd6dd48963ea5d6454b9b9d8263939e5af81a8f07f66f08b5f4835"; - sha512.doc = "49c6515e979a87ce270d32b367c5800acffa4b638a8bed3e20f3e74387c2e7ee4ae0c2ea8b232e2ae57d0d0a730424d18911835581c0c274732f3d36f650693b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -autonum = { - revision = 36084; - shortdesc = "Automatic equation references"; - stripPrefix = 0; - sha512.run = "3a663a53b4b4b53515978460dae1ac275cc4e3e6981b008c78b875e3e47af8abd950cb35f6e416ab02507e498bd75d6f4a775e2b429d668d02ebaa4bfdd03f25"; - sha512.doc = "2d0c515fac8afb219aaa1ee270b30bac09bcc310afcad71ff6ad2a3448187733718c03c304c09a0d631595d36043dc3eb0b6849fce0e4c3bf7f5d249b15c99c2"; - sha512.source = "5c20017e3008ea726979ca70272923d9c62a5c36367fdcdf9d62e141f4822201e2cd36a9b4c58a6591568669daca65d17cbb78e5382c01ad4d624da7074f4010"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.11"; -}; -autopdf = { - revision = 32377; - shortdesc = "Conversion of graphics to pdfLaTeX-compatible formats"; - stripPrefix = 0; - sha512.run = "f855fbe477986356d34360876a4a6613638255e234ad0210cb035a1f3a9b9b827ea140654e2001aa29ac09d7b8addf8f872d34bdb4d1700ead2f6e6f083cb2a6"; - sha512.doc = "d2c2ecf193f03f4f568d2304128e50f5cb5964a6c0a2ca8b739c59b9d3e80637134b5ca91e1b5c1971db11eb54a086b3eb888b6984050dbffa22a166c6757e39"; - sha512.source = "fdec2bf2079746f67f3ffb790eb2e10a7dc884fbf68b2c1a6ec9c67ad0ed411d9ff87baa89fc11dfbf9172bfcd81b411d8aa223c209def4fda6c91a4a9d32ed6"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -autopuncitems = { - revision = 63045; - shortdesc = "Automatically punctuate lists"; - stripPrefix = 0; - sha512.run = "d41c5054417b511487beedd379f480f3869e67b747339837df5bf029b58171791ac8cb1c7bcaf5301822ba9585138d68af5ca080672d4ed1026086519fea1aec"; - sha512.doc = "9c88cdb757a53e89bf7625fad0623154ea6101ee8c9cff2679698d0f6144d98a6099a68ef3fb1a31e99e7dee92572e34654321e44496e863f1444feab8a6cb1d"; - hasRunfiles = true; - license = [ "mit" ]; -}; -autosp = { - revision = 58211; - shortdesc = "A Preprocessor that generates note-spacing commands for MusiXTeX scores"; - sha512.run = "67587e8b456257be9b924a5bb8c8f4def22fa9aa9678663975ef74e346dc186ae7848a9dc043733cf1244f254750ef4f34204575f62195d4b966ed8336781bce"; - sha512.doc = "2905669b9e2b61749cb7b1eaa02be889c4e8d8adbd78b126e7ee6d894f24f623c888a24abac1d163f3332c5cfa9cd1f64d0de95200350b88a7f47faeacb841a6"; - hasManpages = true; - license = [ "gpl2Plus" ]; -}; -autosp.binfiles = [ - "autosp" - "tex2aspc" -]; -autotype = { - revision = 69309; - shortdesc = "A LuaLaTeX package for automatic language-specific typography"; - stripPrefix = 0; - sha512.run = "f7bbb705f28bd5f546125118c48fcb2e02043ddec76ace5866206a3b047448740db06537d969584197de375bc195a8ac5712eda8bc00633befc102eee7c4e538"; - sha512.doc = "a64c7184ae642968af2ff85a08634b04d526051f798c16a2d3ac1c42f7a948de11fe5b83ec9d208733a7e2fedb190c5175bd253d811c9a6838a5a3ee45768317"; - hasRunfiles = true; - license = [ "lppl13c" "mit" "free" ]; - version = "0.5"; -}; -auxhook = { - revision = 53173; - shortdesc = "Hooks for auxiliary files"; - stripPrefix = 0; - sha512.run = "8ea845a19818df2df7939031e7b251b4b4d99a17c0d1b8177a592275bed6efdc660266964e0639222b86cfdd897bcf13302f1477b997ea1a06179cdd44aff0d1"; - sha512.doc = "7c4f850d93f8a6d25a35e762bdb2df26384c75ba1cbaba06806964737badb2f7c8ba3192c62df7e7f3de12c6fa117ebc525c735e696a9cafdad943a8cfeedabd"; - sha512.source = "f378f365c8fdee267224d092b35cd2bde971302cba003edd24b3f0a06bbd59e077096580e65480cb66adc6488aefb688ea423d74334976dfc92168688514e0b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -avantgar = { - revision = 61983; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map uag.map" - ]; - sha512.run = "c08c987c385bf9eeca0f4f5b7edcd41570c81f18751593824da8eea770c29d63725bed100fa2ff37a80a5c70086533ddc1e91848d5ddeedec3c5c669907ed20b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -avremu = { - revision = 35373; - shortdesc = "An 8-Bit Microcontroller Simulator written in LaTeX"; - stripPrefix = 0; - sha512.run = "2541e80c0dd798675164cace381730c75268d5385883163b67230d49022f16c9ec72a77d602e8b5094db31b1d3aef2f0f71da91ed2f7eb7fe1039117f7488cf3"; - sha512.doc = "12c97e23dc853a971b27258a7666753d019620e832a06b10a49a26f0f30d7c6fde83c0e328e1579b62376f2e9cd10b0b3950fd6c4ca89041a988fedd4c604acb"; - sha512.source = "1d6a7f16cacd937490ae5e7416f43f4f9eafbf053f6e35d498a26b8d4092ffe79740a12d96503ee5636c4d1d8b3bd02653b4839b957cb91cca672914bbe98899"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -awesomebox = { - revision = 57349; - shortdesc = "Draw admonition blocks in your documents, illustrated with FontAwesome icons"; - stripPrefix = 0; - sha512.run = "4984d58669576137746518b68988fd9837b5ef133eb8da948f67bb0d5f775ad961055871bb46084e420ef0564b6a4796ba81a093be93f667f959a45ffc0c6174"; - sha512.doc = "eec717fa5bb5a0f0d15cfc39d2172f8818718f6c7037fe962a0e811c131cbc91d3f3167077ec413d565e6b0b782f5b3f77b38257caa6529a6f5db7da8e163c3d"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.6"; -}; -axessibility = { - revision = 57105; - shortdesc = "Access to formulas in PDF files by assistive technologies"; - stripPrefix = 0; - sha512.run = "9b42a40556f3432e045ef35b23fb7fcb6ff295064645e5b9331d0ce99a8f2bd232d0926b46eacb5598da112dfcf3673225efd655573523dd504767a06a42686c"; - sha512.doc = "f3255c9d6b1eb75a501e5c36cece49cb72767e467c0853465d2b8a39f011138d7154eab2fa5287f9223b4f535aad5c2db25d2f76c286376499c71d0ffd120699"; - sha512.source = "c5ef10d286eccf16b270c8b487e91270cafb09ba10a88a8e0c925485a380c18002d399857f7dd42978aee72f7b1889c5dcde7ffdf2f5626424f31fd99a452ff0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -axodraw2 = { - revision = 58155; - shortdesc = "Feynman diagrams in a LaTeX document"; - sha512.run = "bc9923a9614ef9d7bece20e682729347dc942470a927b40736d6868f02867408b5fba51b117edd8745f96df23b9c1e93792d321291db13b7fdfdae0ee32bb7fd"; - sha512.doc = "927e42358d543f46ccabb8184e35b6f0a5848783ce9eea09e6c780fc83955d5f37b998254153b1954cf1a59be6cfe573a6c79c2c328ab2a22a6e5f6764a50fa1"; - hasManpages = true; - sha512.source = "3c2fbbff234836ffe40edb7f38c77c5986cca7fc68b3dd7672bb4f1ce9327a12fa8c51d38461d914cd6466bac8b2b578a151d09d4e84dd903530f7a545d707d9"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.1.1c"; -}; -axodraw2.binfiles = [ - "axohelp" -]; -b1encoding = { - revision = 21271; - shortdesc = "LaTeX encoding tools for Bookhands fonts"; - stripPrefix = 0; - sha512.run = "b33280f64e37f300c92f9bad4372c13dd34e3dbe5fe47f2dc9fe0e270f33eaf5bedf9485293a74a6e0eb87b65f44fb66a286fb279a3d2c390c463e6aecfacb57"; - sha512.doc = "4bfac8bf2a00dc61a007c10654cb7fe539c111170127934cd3a64ecea9ceed3fd04ac249cbd645d89400bef6f4a3527d1db04baa88eab88eceee2edd48e64393"; - sha512.source = "7368dec012e7dd9fd948856aa0b901be48a5800dec417a1511510e184e7543ae9d76acf46a12ea956b1b27367b41309923ce5ed3bdb320399572f5dde737543c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -babel = { - revision = 69742; - shortdesc = "Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX"; - stripPrefix = 0; - sha512.run = "31b2c697f13df80472f5a209bb3b23ab7458e99c7329728ce767c1c116b7706465928541bb5b2f749b6e6d1ced4f43b92dd432e42c03660d18271a1bb243b2e9"; - sha512.doc = "fbe053f25e6db1df9856c03813070842dac62bb9e4e541a8ee29e990ea52017824cb260d8fac4f8a9002d8d07b3dc0726795659b73e7c58db3c9f6b8b84c8b05"; - sha512.source = "f71762c2f2062e92e74ad661bd3088b8e1102320c5e54e68be419b8f96561a1e93399204bb639e3416a081c651cd5cc198995d42556655772831766eca484da9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "24.2"; -}; -babel-albanian = { - revision = 57005; - shortdesc = "Support for Albanian within babel"; - stripPrefix = 0; - sha512.run = "8a98ba1dc08bc2bdbba0793bda2a07a6c248543fdee56cbb047229d1cfe77cdf616c0ef023b0a74f877d9863768065f0e256ba35a1071e0dd3f2bbf2b47b7ebe"; - sha512.doc = "d26b9d933bbf0225f79bd8180f9dcc2961ea481fef7b535267034296062f8879b53ca47ed6b512fc724b261276be6d92ce045ba0c8bbdba0149cca6f117be8ea"; - sha512.source = "74212f36288599d730fafd00dc50839cf0f12283ed8653303471d2cb64a57217b4792f1000cb44411c7d5031e4597db67368964ad318e896987103af8e21f838"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0d"; -}; -babel-azerbaijani = { - revision = 44197; - shortdesc = "Support for Azerbaijani within babel"; - stripPrefix = 0; - sha512.run = "3f20954607195d4804b4bd90d7fe5baa209d5ffac6dfbe5f758306bb7c8aedd1c4c92675f5dce7f634e7ceb2b65e9c3ead0ebfef730bfe2dbd8c0ba17d3079b0"; - sha512.doc = "bfd4434720b9676e253f69144aac9a07d6bd19e3a4418ae74269df70085391444ac46556928f131a14e85b87211fd76521b67a457e7319eedd3781a215efd962"; - sha512.source = "b3eb9fdbc08643706a2dfa50daaf27a687c593900a972f89029aeebe08e2a1c4fbea08a848224b198ba447d3ad3a62459aeb9db2c00a0f3f039a16c863ebaf0d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -babel-basque = { - revision = 30256; - shortdesc = "Babel contributed support for Basque"; - stripPrefix = 0; - sha512.run = "40079f02225f81c8838aee6179548f3fcb773fa8e031e07f30df761f298b9980e3a4357a8013bd7802c688a192cd9ef2102be1b6e8e1f3efcd68769a9e5a5a2a"; - sha512.doc = "e6342328d62cb0232d38e10b3b38cd4d75c55a5d31d702c167099a2bd4122e40c5e3cac8a9c2940a9f9893d7aa2594b8322cf469924b97e903cab970dee81c6c"; - sha512.source = "1c924232920a969fa48e6d61bcdfc5150cd1afcef6d98cdd27fbe2e0acb5b7749d2b2dea77db88125128b380f2b4ccca4d49d1d140f2e96880e0daf2d09c2d50"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0f"; -}; -babel-belarusian = { - revision = 49022; - shortdesc = "Babel support for Belarusian"; - stripPrefix = 0; - sha512.run = "5856582f8bf6a98a4fbd560bfca82ccb226267e249f0caf8afc775875d50ec204ea613320534a63062dffd0e050905adb24763a95fec2ef4e8faed70a400d976"; - sha512.doc = "247d5a3b99cd5a377534a94fedf47f6710d32d875d3208b1516fdc9acafee70a14ef1dc37600f9da53f806323d0519ebb2c4e288e471363756b7b819751373c8"; - sha512.source = "82262f7775c22a908161a7a2d65caa8662c62ad759db792a6718dba043804b7aac523a8f3eab2dbdc3882a88c55bb641b862f3f19e9c4d3ba1a0f4298db9833e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -babel-bosnian = { - revision = 38174; - shortdesc = "Babel contrib support for Bosnian"; - stripPrefix = 0; - sha512.run = "bef1defaacf5232bf9cce6c1a9956c9a42d35a2c2b6ddccbcca3938386f4f4a61a0cbcba74b930dfad18ed211374c3667120c6706ebf097c56ec3c5915ccdff2"; - sha512.doc = "84238e6b38021582de93e9fe934bf608e647c9b4cc0a066b4fbdd2ba98c8e6531b653907f9bcfb79e6afc9074b4a079b5e419db25625d40a76a8ca8e55e81ab1"; - sha512.source = "dfc18e55b30620e27cb8809259a6b4790b94cb98b334a69cd48f66c25696e2df8d38dc5a1d402ae8464ced727752d96d8b5abf18522c8bbde4ce1f6f8ad73c92"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -babel-breton = { - revision = 30257; - shortdesc = "Babel contributed support for Breton"; - stripPrefix = 0; - sha512.run = "bbcfa22674ca1d4a8e23f179480f9e94a50d5b460b8b0d27365c9166adc02a191253ef2d61d6f5eaf5bc61e73faf5d307378898f1d6b1b748448bbd8a36ea141"; - sha512.doc = "3b47653b26901dd4aba1395c61c9dc01d43ed490c70ca04ba7d1cc67ba7b23b658db32b7a5fef085b236a68bcd009dc5cc5687e3dc2dc8d246ab2ccb8d391b42"; - sha512.source = "8f381a3955780617f9738b008e6f4490632a67c70f16d4855f15ca59981dadaf72f7f15cebe10a121bcbb894006c738ca1872fbe33bb256c8145b22254236b67"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0h"; -}; -babel-bulgarian = { - revision = 31902; - shortdesc = "Babel contributed support for Bulgarian"; - stripPrefix = 0; - sha512.run = "0c838e5c5cd010fddaec385376f9eb5fb10730e918dd28f58987f855a444d91ed2e66c0de46c74637d134d72f7e348e538836df33f6255a14ed51d0e8d5e8a3e"; - sha512.doc = "4dcd92a2088e737972f0663fe5161883cae901dc82aafd1bd33f2d80a852fb51d6229c95cc655826bd17599a7152b8a7bf0031eb046530a135e8bc5c9c74b2dd"; - sha512.source = "047f69cbdedea9070a002782e8d1b893aae71adaa2e637df560ab8a176308faf8d1b8b52afda8f38f264783077a227176eacace9484ccc0af2a4a7615460c7a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2g"; -}; -babel-catalan = { - revision = 30259; - shortdesc = "Babel contributed support for Catalan"; - stripPrefix = 0; - sha512.run = "728d847331f1a00766cfc2818691516234b153182f31ad2da024ec3194cc384a41ca89cc67ce66447191188dfe088d1dc4c8af3b2e6952931ec7eb58737c4bca"; - sha512.doc = "3184373d85b1e9bd76588318372ced328d2ce7f6d4f45bc5634671a88314d1ed18cedd968e59dd5203b4d77e6d3576f36a654b1a8bbdaa106d47cbdfb825e452"; - sha512.source = "ef15d0aca46af936141fa2d47c6b794ce85f2c3fc9adf18b5ca4b0267292f24d1c02121d5189f7cc9db98e0ab22a5d4ec2febc32b2bec5c3c5923598e869878c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2p"; -}; -babel-croatian = { - revision = 35198; - shortdesc = "Babel contributed support for Croatian"; - stripPrefix = 0; - sha512.run = "b5724a84cd180e9de79136ced8bd38717dcb4e932dbba4e20fc071ba9f50fb35cebe83d4a95ec6e8ef0e09a02732cbdc8b1a71715c8a5967393f54087ba4a807"; - sha512.doc = "d5e40e95037c3035589b093037c563b3737e061369f27ff5c51d620e0655dd075f413b91434591e2130849d641c1ac59469db46be1d8b0761075424c468668d2"; - sha512.source = "fdd4efb6d24bc9560e14f9e02d231ac636f2f69249d7dea9c07b337f0d5617c754bbc9087bda5cf1f2da6178807e46f015658b3fc2d04ddd5749dc2643ef4ed0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3l"; -}; -babel-czech = { - revision = 30261; - shortdesc = "Babel support for Czech"; - stripPrefix = 0; - sha512.run = "0cc0f07fafefa6d7ea1ae1b2ce143dbec124fe96b36221f1b5a847fd0b789d1974b5990ebd93b8ac0607f63956948bede25c7e690784ca7e9638f48139585a32"; - sha512.doc = "1575fbe0d70725e975cdb0c1c5ca685985d91f23e4a997af4a0db21905ac34962f69653ffe4084065bda70cfbba0f0a1f0885d3afc19e98d0045ebb68cb545c3"; - sha512.source = "1cbc5de700e32ac2600a50a85f6437b7bada601734753a8ea62b845f7500880195625e827be41e277d76137ca3dac05b230e64e0edcf1807cae2079feceff8a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1a"; -}; -babel-danish = { - revision = 57642; - shortdesc = "Babel contributed support for Danish"; - stripPrefix = 0; - sha512.run = "201afcbdb9b8d9128cece15ac8876e8d9bc261ab6c90745e52a95bb58fefea0b478a623027b097875d831fe5671f8f1f16a2370dc0dfd92ec3e603436e366e1e"; - sha512.doc = "5ed050c01207e110c475abe825e5299df0f7927476141d81cb31fcc8c6dae1076e855d3590aea0812bc2a15949231163c24f0039620f3a8f41cd43bd6a8a0840"; - sha512.source = "5c9bc598da8e782acf3a4e3ae5e93acafdad34fd68962436ee7a5acfcd7c234863db5faf9a3c2e2b87814d235883e3e85688fd0b3f514a7d57977d1872896884"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3s"; -}; -babel-dutch = { - revision = 60362; - shortdesc = "Babel contributed support for Dutch"; - stripPrefix = 0; - sha512.run = "bef13adf26cbbd16604af041fc7af866c82e88cd9d7d05318abd10f7d6f0ae718e1186f5527b4b38f1f099ba5da3d85b5e2f6d1ac0dfe8fe64ea52fcf6f06df1"; - sha512.doc = "a78535f95bbbf6228014471a473a7e38b2cfa2da0160adb906b8f75c803b3e9396ca52322100102bebc179ec1e863a78c1b102ae932ea324ea58fd57bf9e9b06"; - sha512.source = "724746e2e05c5de5184125068b2637c14c58c83f86fc92d75521089298a26290ecebbb6f0c61f7452da659dbcbfa1c36789e428aba500fa2211e354747fb017c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.8l"; -}; -babel-english = { - revision = 44495; - shortdesc = "Babel support for English"; - stripPrefix = 0; - sha512.run = "f570d2aae8a97ba0762fc1eab75dad1f17c4ac582a351ffeb8e56a136b789a38b7a6519247ba5981385f1a093101542942b3bd073a5097336392929ed40c9e39"; - sha512.doc = "77d6b482407ff24095b1076673316744374e66bdbdd7ebb767ec66ccdccd6ed5bb27ecfd0796eee210f1a888c82ad2eb4b9d2142c427bff137bd139c4cc53ec3"; - sha512.source = "ce636f5cca9aa33ad7414432fcc46fbf1873c4b1576cae8c04b8cf15381f4b6ea54e0621f297114f302ae172752282daedc0b59c15393e1071f8542ad3baf628"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3r"; -}; -babel-esperanto = { - revision = 30265; - shortdesc = "Babel support for Esperanto"; - stripPrefix = 0; - sha512.run = "0c3be27d02d4c3157f2b0df0950e0814db3ffbdb2553d2c0f176893f3669123a9130874e93edcfd86480b785bbbfda35f9246dac3b4a0779da51387b0bf12ee8"; - sha512.doc = "166c1b59511b5a01cac11b5cd76c84cfa485c2674b390a167ff165bec1326709437ee843f664fd4ac9e61338481df9e7f3026189f7c29c71778dbd1df98cd35f"; - sha512.source = "f2fcef5841400c521415c870ae1641549eb702944ebd404b96ff9d5b52ee9c2d484662a50d9b410f62e74580f37fdbd269b3650cee0572b3096e4b0365787d4b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4t"; -}; -babel-estonian = { - revision = 38064; - shortdesc = "Babel support for Estonian"; - stripPrefix = 0; - sha512.run = "03357f8b0c101e5e186fa4211a971e625f6970a3129a2594a611c74b77b36a27a288d2da518d21e6e2e5d98bb82802b2115d47e31e6258f01c003be854090baf"; - sha512.doc = "ca732f4b6ccb9ae27f99aaabc99037d9f3d04bc170b9a8bb189a81b6bc9f55fd757c5755bf51ff423850f6b45c88a5645f75a462fc9d9e9b989fa04c1a2cc7c1"; - sha512.source = "47e8d53d379ec383400e618873d800bbb6dcd8eea7807e31173110d5d7492f52cd4808a288e53534a2de578c43a5ee4eceef690bfcd56cc11e863919f86ee8af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -babel-finnish = { - revision = 57643; - shortdesc = "Babel support for Finnish"; - stripPrefix = 0; - sha512.run = "ed0dc79fbf6cd992bb5ff3df46f93203ffcb3ade34c6a613b5b22bf5effb98f78fa85d9b915130b304df71629c5a8bd68a4bab23ee772a1068f7184fa27051e3"; - sha512.doc = "c96212780651c9c0c831e295c26f678c80724e5b923d69fc73bc1be39e369a19243b42e5252dd4c0a049fa0c4d25dd611bd470b12a4b55dec4520d016c21a5f1"; - sha512.source = "11bb4bd731c27af0e11718a55793f7a22957b65e2ddc988e6e3ddb5cb6def8fb1d9ea9f235bf400beeb026f220a628effd612d04d416abeec2e1c39a001281f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3s"; -}; -babel-french = { - revision = 70261; - shortdesc = "Babel contributed support for French"; - stripPrefix = 0; - sha512.run = "5a0ad21862209980813cf8b6a89884ca977bbd2036b3e9c6217d2ae0f69f4c0e9567bf07afa4c9e75cdc6959b3169f270de38c9307c531a44b5ba07707c2e1e0"; - sha512.doc = "2af045bb96ec288d4c314da7a3ffe82c3bb3e82ca0919a272fc43cfd5946a379f951c4a019c93f0af07da647c852f25af2f026310a435a82c0888f96c84cc263"; - sha512.source = "a03e25b8f02430e117584880e2ca29802459a98dde97b380b71ffd4d2eb4c6db92cff33aea9c2bced5823fb5ec4d06b5ea428c99da85fadf9f16f3a3e5793c8c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.5s"; -}; -babel-friulan = { - revision = 39861; - shortdesc = "Babel/Polyglossia support for Friulan(Furlan)"; - stripPrefix = 0; - sha512.run = "e6210dc473c3d71759f2faf1558df2d6a7c646485d85cf0113074fb68eaef23b2e44eb88c9fd35a7a7929b408d6574f7230852643366bccd29afee744e0b2d07"; - sha512.doc = "0ce539cb0b6cc7af830c7413545f411e1291491fb26ad0451e7caf1346da9ab188a457e3292efe9724070e77f67e46e06293dbfb40b78a1328112b04d4a1fd77"; - sha512.source = "1e7e241350d499bd0bf28b1c190b3c73e20d02be12612905305ad53cead422e8ea1b6b0dd633190170d7ab2ac2802559693597a8c6ae8527a7fe83af7cc61463"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -babel-galician = { - revision = 30270; - shortdesc = "Babel/Polyglossia support for Galician"; - stripPrefix = 0; - sha512.run = "1c8aef52e0eaba8a55e6c0bdaca4ef47012012a85d38ed268207227063d042f2f0b2cbafa3d1e4d71432e3ea6effd2a781ab0aefc536276de36a95d0dc834b68"; - sha512.doc = "a60ed8ffc43cb56aeafab8d09e8235eea9482ff8cdabc00da68938d980b20a7067da3286fa8ce19eddf9276b51e78dd944545cb8bb891bc13c31cffbab39544e"; - sha512.source = "aef01bd2587b5a452874e67c52bb4adbd89c5203bbe9a338e85449831434cbcd58415afd3d31d6e315eb91dff955750753bdc9cd38e87e3aded5350a350df547"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.3c"; -}; -babel-georgian = { - revision = 45864; - shortdesc = "Babel support for Georgian"; - stripPrefix = 0; - sha512.run = "07adf0a76fb15951db5dd01a0a1595aa9c8119d6e39e94eb36ac340932f763975abe284d738a52a1fa2a938a14f87fe7ede10758529c3f68c6d573dbccbcbc82"; - sha512.doc = "b2f45e828e32fef5e4ac130230050f035ec69607c97562a835ef2157ccc6673d4ae452624d2d1aded3552eb71d85d971a7e35d9774ad7b6e4ca7a8e0a71e48c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -babel-german = { - revision = 69506; - shortdesc = "Babel support for documents written in German"; - stripPrefix = 0; - sha512.run = "372ba15d67ae4a5299a8d193d4fbe1c01a89db686c4d152ce2fef05088be63e7d85a7cf4fb712629d1ec8b21517bf3881ad3de947e03e127af940714a6d059ec"; - sha512.doc = "e4ca225a4fcb681c0b59d833fcc8a3781f1315adaf26e7db62f85aca145028f9f5f3bc7a19b7909220ebbbcbd25d2fdf2136d0f1ff5a5823e63c3362a24d9750"; - sha512.source = "786bf7b892f48e09496c99b998c692f8cbcd40c2727700291fe1cc35518c3acd1caaeb0841bf3b1d05c3ed931aaa0d7ee6cd564f40b41e30fbec0f42eac48da1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -babel-greek = { - revision = 68532; - shortdesc = "Babel support for the Greek language and script"; - stripPrefix = 0; - sha512.run = "f81c220447f77f207dee02a5611edb3dfe68fb775abe932efc560de9a268570e688b3abe4eb3dcc094ac0c967360d52be02bc85c82daedcf173bcda269065938"; - sha512.doc = "deb5a889b55a93101ee4c8571dabf00f8f971a6a27c2531c9e71a74e4b972ac1fe3efc6a336a6f0a38bb746316ba38881fcb2b4a90b64fdb5fa1fed51a7d90a0"; - sha512.source = "aa891867efbcd19359dc6fa93334e43858ec9c4f7b0ae2d26c5d770fa2210fbfa16afe2ee8ca49fa3db1cd6b8680c8f06dc1069d760b65ebfbdcef0e54fc7da8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.15"; -}; -babel-hebrew = { - revision = 68016; - shortdesc = "Babel support for Hebrew"; - stripPrefix = 0; - sha512.run = "7feecb0fecb5ba203e494c9ca8810c7e58df692617c7ef1e15128bc3d2c947fda90267c21b0dcb2743b18fbcc120da2a0f1ca0ba76cb74cb2e53b3039dfb1c5d"; - sha512.doc = "849c598ce07421613bb7dbdcb1893efe5facd807e5ad54a507d62054119113f349e60186258b7a60bdc695d7fae757ae65d64e7bec68710046a4247e52510523"; - sha512.source = "cbe6c2798fcd9edf4f98520172cc56725081158d2968f961a6ad59436455bead4553070ba5ff52aee705464d261d0880c032850e51ff1514e631362f64ba0dab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4a"; -}; -babel-hungarian = { - revision = 49701; - shortdesc = "Babel support for Hungarian (Magyar)"; - stripPrefix = 0; - sha512.run = "5b05fe625155df3a958eaf44dc55190fff60ef356d40e681870ff27adbeaef1dd2b27402d9058d27dec665dbe9127d43a2e07ad02ef5a546c2e77479453678b2"; - sha512.doc = "696cff23cc5e2c32034729385c251c8dbeb5f78d11c0f8a0515af480f7a9b5fc5fa6c07d216c5078d5f1c4e71cabe093f023f294dbebb6b203337da9423a438c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5c"; -}; -babel-icelandic = { - revision = 51551; - shortdesc = "Babel support for Icelandic"; - stripPrefix = 0; - sha512.run = "46aca093e061948272d2a54ff9f95b94b101582f0ec9d795668983c37b518be3c3d76d2c8e6901126d3dd7342db003589bacce9a40cfd573263a953bbedbfc48"; - sha512.doc = "bc859f01f52ad51da7df9d458e507b62eb69e40e1dc39362ff32ea8ee8890acce8ce49120fce967f321c9d674f4334c62c9bf2b3f8017288b724ecfe3943d667"; - sha512.source = "cff6e1ef260bd61b6b098b449fc5dcfe5c708a36d9e5df679d21e5d84a62fbe298fd6581d9c6a79829df55809b2b12f6bdefe4367df05ac50830fa01d8c73dff"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -babel-indonesian = { - revision = 43235; - shortdesc = "Support for Indonesian within babel"; - stripPrefix = 0; - sha512.run = "9e42cb144d53dc0a076afffdbcd2adb7bb55cbc58feb77916e02beebfd1833fa308a0c78d0c26e1d187386b60572381c881da083c73ac8fcc651e77af17e2093"; - sha512.doc = "c4f86b646d67ce4b29e96771ea5657e352ee7633c344f24552a2fde4c387aea41f9694d77114a1454b106646d12d30b277fc9de589d3d4b666b00208978f5bb9"; - sha512.source = "30a1b987fee18a002316bb51e3497d22696e83ed48cb4a6e40da2f82876cd2ffc5b4ab95a0c1cef8a62f3d0a610401bf6552d5080dad3a9d0c45d4fca53dfe7b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0m"; -}; -babel-interlingua = { - revision = 30276; - shortdesc = "Babel support for Interlingua"; - stripPrefix = 0; - sha512.run = "e562cdb5b7cc35d14f4696cd3b85c6578a4daaf7899bf684026e50ade2113ee2314405756dd5f6ab91b6faea4da59a3546e30a18ba77037eab581ae3c98b044d"; - sha512.doc = "f2f86fcb4a132a9c1f5c65007c8f1662a8498a53f265cc778ad3ba33120a97317aac890c1ff72cc6b94727d215937352ae268cf51344053bec6e0ee5687d0f69"; - sha512.source = "260b2b01ec451d2a37e00e83c79a09f359a3e4a7c34b1396892259442a3f9d2df683e74e6f14a5cbb9b797f8cdc24d0bfdc7f9c3dbe124eb901f43d393f5e1bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -babel-irish = { - revision = 30277; - shortdesc = "Babel support for Irish"; - stripPrefix = 0; - sha512.run = "d9b1486da57f9685e136e14adc61773ec0b3a58ade370da8383476862ad798f26609329d445ee6dd0c6419c98342b720a6880939324d19f67e1528fe99ea3692"; - sha512.doc = "f5dd55c6a527cf19eebe492271d1404be3c995cac004d41160522c6c71e4a4636c32547fd64b93beae41b60d8a48184ff9b498f82ca0453bc72b601de3d66cee"; - sha512.source = "df023dd1a4b04e022f46f7202b616e6329b4673084876c1afaadd41faf4414e908411deda1ab909246ea7e1922c46b0a70b5e3e3fbc6c4855e060d47e45ca21e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0h"; -}; -babel-italian = { - revision = 69298; - shortdesc = "Babel support for Italian text"; - stripPrefix = 0; - sha512.run = "39c9a5b40215874e74a86d3f994900e1dc3f5c1d0067b5bec224b5ca997a2bb254b914c9a15888e896e73908be5cba309a8da82fa12d797c12a93037c245256c"; - sha512.doc = "ef2f87cfb66fff50fccc3ba4eec0f1c778765d49ac2976561f4963d9e12f1b2c486459827a44e66fbb42278fce72111d9aee373c1395f0532fcc42ab5efc5ad2"; - sha512.source = "8436a5fe438a56e27efc22d979e56dd8f55971c598cf40702b485172448c0e5c959a1d9971f201c9e5e14df1d37815a39d9572c9dadbf6c6c9b0969f3529a3c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.00"; -}; -babel-japanese = { - revision = 57733; - shortdesc = "Babel support for Japanese"; - stripPrefix = 0; - sha512.run = "dae227c586eea1b56fc88937f8a99803994622c07cf54290ca1b5ef6cbfe53ade8aec7064820044284cfd70fb6ee2ba908bbb74dedb54bf3c2f0085815c7eb43"; - sha512.doc = "cbcda3267222cbf5c38d8e7e8ea5440b94c3d7d0ca70b4f635b0751e824c690a4d495f0906b0d646de5f1ee08c74f72482020baf99d39ad0089002d5e523ccb5"; - sha512.source = "956aa7cc75bb2a007fbbf4ba4e7209251d3232f585976dc0002429372062e9c1933241bf05c34aefc481a82032594b922df3851d6f88bdbdfd7c181b9a44d6e8"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -babel-kurmanji = { - revision = 30279; - shortdesc = "Babel support for Kurmanji"; - stripPrefix = 0; - sha512.run = "bbdd05e7106494f23892f3455ad224d3deb1881f5a73720e2c73e7401514fed324484416def64e2e8fd7c2416b521fb2d4527585d2302a220330925c296afecb"; - sha512.doc = "c31f7efd7415f3439635b293c9aad2cfc2632352534e579c0f8d3e74443fb7aa88a95e19735a7b65137d81899ad9d2ad8bbdb28c5da2ff05a2be9dbad552b0f8"; - sha512.source = "88f600cac9509695c36969ee2bb2041142dee729381a1ffa49489f32454e4c53b4d1795407436df9c31da040cc1d0c7e38077fc786e5cd6832ab9ccd14453d2c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -babel-latin = { - revision = 59800; - shortdesc = "Babel support for Latin"; - stripPrefix = 0; - sha512.run = "09a08dd3f90f83490867b786870b9591cdb3fc8d83c0e68446e2c97ba665a70f45c8b2553cfd6d965d31e6b2c435876ca569f4c24a8ddad4188ebd8b27b261b9"; - sha512.doc = "5a57f5b070cc86950002c40c5dc35407b0ace14ebe8ce64662260615bf5ae069237f5b0b6ae0fc795e72d9d1d3d9bbf7b30fd9cb762e56595058bebe436e5b92"; - sha512.source = "e7444e7c98837fc989a5db187a5769bffa993487c47f56ac5a686a92fc1b25f084966b411340de869a8325dc13fb6f85ce22e65c43debb63a2dfab2568d36cdd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -babel-latvian = { - revision = 46681; - shortdesc = "Babel support for Latvian"; - stripPrefix = 0; - sha512.run = "0e19f04d81195b77ae200946e5502fccfaedca5a6da8080a0e7351b684c7d1802a1d9d05794006561109dc8f9a0c04f45266e74068157caa9c470899cbec5230"; - sha512.doc = "e7c4f93db73431708eb902af924672727a6dc6d1cc9d17ca92436cea51310a10538f32825c13144ac35ec8633fc146d1788492f9c6ecf7b11ed72893ab6393fb"; - sha512.source = "ce0c59467b4cf94857bd0713283f46aa5c64987f5a4c68536566b98693b93e61ead42049a2ca323eab3b2b9842623f1318f2c27ab4a28d3e4660b8edffd988c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -babel-lithuanian = { - revision = 66513; - shortdesc = "Babel support for documents written in Lithuanian"; - stripPrefix = 0; - sha512.run = "83e8aa3c7e8e018f79c848ebd884f0d0a07c87953611342b5a9f25df1241ddd931ede31a03b1670922049948a6f9ebc88676de0a4be9e144a3f99e22fb857fd7"; - sha512.doc = "76dac9c2b95699a42018ad370afc1236668a37a71707a6c1a8fff1921df9edf30730f71337c1128f64b7448a0bd3f99e432ddbc1219534884e8476a8c7fdf338"; - sha512.source = "1ad90b302e3e7d415fcf0534642a22fbced05f0cb3ff9218c73175b3bda74d0a7c96b27dd1401e12885233e2236e7be479d651829dcc04906f94f27012a5ee8e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -babel-macedonian = { - revision = 39587; - shortdesc = "Babel module to support Macedonian Cyrillic"; - stripPrefix = 0; - sha512.run = "c061ca1ec358e4d8df05e0adadd5d87695cf3b9f86cab52eaa0e08b1f5b1fedb66febe32107e74c1926fa4d697b056d7d3f119db525b90ff7e7bde30fd015508"; - sha512.doc = "7284141fbecedad06cfef78f50b4c13ebb3af76ced474c456a364c97943b51b9a233ecf6797e561ab0936ef7d082adc80daea0de4e961baab60e494bd72f7061"; - sha512.source = "c5866f925540742391981848fb5a76908863fba8a7c77da97b6e6bc634a8425c2d39459f789749cd1ccc4e7888e6d0f5b40d3d9a0a76611f4b1ff2db80866c72"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -babel-malay = { - revision = 43234; - shortdesc = "Support for Malay within babel"; - stripPrefix = 0; - sha512.run = "6e2f95eb95a7ffe0b21789a65e74936139d92381867e507ce56bd8eb39b4061b177c10fed0a0226e9091b963370d3c001115473625910f03b699d5517350f2da"; - sha512.doc = "b06395639e743571870dee10e029e4622c55683d7a9d728fff381bcabe4bf694511230795c79da4080299938acf66d03cc55fd45cb8426b484e19e0fb0f73b10"; - sha512.source = "4e7e47a29802a7369f7bdcf29ac0fec13afd69f42c9b01060ffadb2cd8d1f1656f7f6ae8fe5ced67d9ce6438c26a07743a18bd38c561fbe8357e8ea3c685a5dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0m"; -}; -babel-norsk = { - revision = 69603; - shortdesc = "Babel support for Norwegian"; - stripPrefix = 0; - sha512.run = "cd5511b9ffa7a009cc9b330fadda4edbd431083a3301bd4722d19d9c9331cd160fbf79d0e246feb2d4bc69c6e2800931c4e697b9a052f92a424f5f59841840ee"; - sha512.doc = "764700736d45202ac46553014d8382a26ac962d964bac3fbe9d1c90f341b99fb1dbd6a44348267d55f75228bd155aa70cd0080870b627910ebf0df0bf344e0cd"; - sha512.source = "50e6bd75290194441785e04a4940c682f69896fb5e6d0e96492e0565f413bd6f306ce90b228f1a3abc9a88a2288e8db80a87c443a6fa1cae38f5b896c6fd7ad3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0j"; -}; -babel-occitan = { - revision = 39608; - shortdesc = "Babel support for Occitan"; - stripPrefix = 0; - sha512.run = "f1f2f26b5466d10e995d76f7003c202650e3976b82b431d2bae768a582bc0c5662fc120739c49fcfd1226da3595c8a6b2e8c952a491718c45e69770c09d542a9"; - sha512.doc = "86433fa646eb6b2f7ee0ba54f1dafa73b81bd98012859c59408883cc76ec876720ef526cb2f526bd4a8385c0371f9bb01ae6d604661deabb4ec920172986adf0"; - sha512.source = "95bd15481ed6d20f1b9b71fad9661e5a12e4f29cda61dc8910a1601fb0f97cb4797d5ecf8137c9465a623288dc05e58c84740ee5b663b1f30f1c984d4dde9b03"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -babel-piedmontese = { - revision = 30282; - shortdesc = "Babel support for Piedmontese"; - stripPrefix = 0; - sha512.run = "72fe6338ef6f172a23790402a632881906689117e7227b6f2f2fb6129fca9a7d44c42ddd48e8286252f3b5fce9dc34439594882c1f80f33557ef5ef70afe4993"; - sha512.doc = "a2fa0cc72a205fcc25c2baeb7717a573bf8f2db5438e49c9de8a90e8da37d4f267ff30f08f8bb79f08756f5d227acddba8c069c8a5c257adf95c3afac271927f"; - sha512.source = "6020ade081108365e4b23d9b3c9ef789e95764748d06a647a071e8ad77c945593a680c7669c57e989e71104a8bdfbf857eec9599327560e4453e0a81b9d309e8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -babel-polish = { - revision = 62680; - shortdesc = "Babel support for Polish"; - stripPrefix = 0; - sha512.run = "0088388d0dd6459e5ac3062cbd5eeac7ae0d858b93ff278b6bc7a95e8fc4846d8c12530eb41ed972f5009ab745857a5599d9ce25860efa06a3a1dddbf396b4dd"; - sha512.doc = "536b3ea736a9e876f2e7e942e56841c97de27b94d00e58656e9d7ed3b27aaa43947deed1d04fc54530c082095ce46737f05969afa85fd5de57baecf5718815bf"; - sha512.source = "21d9f5a3f4a6e9f7595b8e38af5758f0eb06d8f390448a39c164b5c4e7a83089e3a254931a1c23e8dc088eaa6874d5f1451b78f14b7b8dee863daec62f78a490"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -babel-portuges = { - revision = 59883; - shortdesc = "Babel support for Portuges"; - stripPrefix = 0; - sha512.run = "8b63140bf59669873f55ed65925eff65cab3bd6bb404b7dec962b7072243c2b2be8d2918e379ba02b557f7e07d1d490b3cd0bcf3756bbfc3f4e63ff540e73c28"; - sha512.doc = "1fd6cdd08c2c00340b04ddaf078d1e9f0b1c51dee22f805f00bb46e63c46c4461fe4d9df174c2844a6ed01f7b52333a6290cd0c8aff3820a1659839668308b91"; - sha512.source = "863f5c222f11288cb4f041a04cf543494409bc69df67a65b71ccd79411e4a292653a6bc48644d3b7700c0a01d1a456fa56c0ce867d6177983a8b7c98b5e66aab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2t"; -}; -babel-romanian = { - revision = 58776; - shortdesc = "Babel support for Romanian"; - stripPrefix = 0; - sha512.run = "ca6318ca8453dae2286b305766c6ced299f18f390c0d0f44e77ddf8eb4b05c31c7a2b01ed52e271f68acd6b127650b370d15ea9bcb3b591fd01e5d3a50b17db5"; - sha512.doc = "73ff361e7e03499427529824b83ea584a5ca190aae3d1ef9a5f4a5adf52cc8ab02f5652c92c1464a702f581e29626fa9cd14d4ee84f6cdde69b38af9d10b20ee"; - sha512.source = "0e4aef9bf20e6602dd946e2ad2856c7ee7849b492d4b66334450b450faed146eef83d2b7f13506eac6f34507bfec4ae735ae9845d3a21c36d98105bb353166c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2m"; -}; -babel-romansh = { - revision = 30286; - shortdesc = "Babel/Polyglossia support for the Romansh language"; - stripPrefix = 0; - sha512.run = "db28e78ce4e028ead2f31fc84d0e7d8997a18dff3bf6aed0301b79bfc7bdc52a8741f9975766d36ca9ca2af9908e7e0bda9e454abf268a1eebf4693c30f5a5e8"; - sha512.doc = "42f9b63d92e522b596839d10c1b90ee9052cac86cdd54ac408063c24456b2a7b5adbfc8208a0a388fcffbb19b98ae0810f7da9d6bc517ddeeab78c8389bdd5a7"; - sha512.source = "e26e9ec260d7f01550799f90c6bb76c0c29cd200896c4634085627599f5c3d7438159ea9f72df416e334200a7e1aa3f063dfe9bac5817f55c8f6cc83fe906a63"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -babel-russian = { - revision = 57376; - shortdesc = "Russian language module for Babel"; - stripPrefix = 0; - sha512.run = "5acec3460294e71e6def384a7863a849e8a5d431dde49c77a4a7803af5373b56fcd376f6e73b237dd230728ab5b536f903b6a1bb19fc478dd5e742293a6e6ca8"; - sha512.doc = "387919d8bc226b00492f9924486a2591d15083a5a8e2293889f6532ef28fdd6409e2a777e728bee7f7b9796a304f440d8cc5fca246588d2b3ef0c84c79b701ce"; - sha512.source = "71ca4e9bef2fe88c8dc41def4facd4c33145692cc0ac2cf05eb1d455ea83bd93b3cd29907772a5ce84168986db0fde8f5748622a4dc9b6857682c4c0aaf04f34"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3m"; -}; -babel-samin = { - revision = 69604; - shortdesc = "Babel support for Samin"; - stripPrefix = 0; - sha512.run = "bee2cb83522430ff8bc8e65513d2268a529a041b85b10315c4902749d840ee1716db45df56f259a7db726a94147fdebfa573e99b9e654c7ed4df87f5d574877e"; - sha512.doc = "cf8a3c56fdc0474fbb3080743fa852dc22ea4f1c791f7d9b4779faa232442a22b46662c92e61bf84953c8312ae9fbea859282799b393701b0c176e4d23edfec9"; - sha512.source = "85b57da2d3bf5dba4c9f02d10dedd4400696ba1827793e81f83343fbecc15e5d2fe507138c3c309c5c8b02f0e868606e344c05db9dc9c84b032e4132c65996b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0d"; -}; -babel-scottish = { - revision = 69610; - shortdesc = "Babel support for Scottish Gaelic"; - stripPrefix = 0; - sha512.run = "16632367173512a1ff0d678334071893efc91d9ca16279075a63b84acabaeaa8cd35263f56e6e3251cd57a77bdc9f0613c34e60f0acc8de14f4e0fafde751d81"; - sha512.doc = "725a988893fa1cd3064136376de3475fc8da63993a40c0c63165b5c13fb4ae15a1ab856e2075e05d3a4e492d95d1aa12288b808ac3a1a15ce539a35edb289aed"; - sha512.source = "cb640792dbfbe7733238aa67283b9ba954456246ad7ebfe0ba65bab08060e06a5dba7441fb2e6cb7c421584f8377273469477a5d1b6dbbe2c593f844aca80ae1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0h"; -}; -babel-serbian = { - revision = 64571; - shortdesc = "Babel/Polyglossia support for Serbian"; - stripPrefix = 0; - sha512.run = "0067de0fddd73a7c68cd2b3a12b4eb620c6b95886c4c34ec1766ff9b3c174ed2a8cbb1dae72cd8adcfe55bf01e4d24e47668e76babdc57ca9eb59704a5ee7cd5"; - sha512.doc = "e83a8db6c60853dea918d226fe643fd06c1cd65bd3b9e29fac962c029a263e75821dcf6a5a3b33ba44b12321d5e19633f704885e77017cb43e9555a4e060394b"; - sha512.source = "016a726438759e5959938ee6bcf3735386047581eb166c244116f0032ee0cef5345c851e6d90a5790b132c2f98812da14f97fe2e96c23aa4dd48d7f50595b88a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2a"; -}; -babel-serbianc = { - revision = 64588; - shortdesc = "Babel module to support Serbian Cyrillic"; - stripPrefix = 0; - sha512.run = "c4c4bf91fb22d0766bbab6a9980b0faa19f4031cabd044a309478f9ee700bc26247a10051f10d36c8cd88425820d2f800d3947d005fa9fb8b54429efdeb3c8c8"; - sha512.doc = "a173daa03c9da413b4f200a0427e5293676ff3bc64dfd21d945977fc78fa9172ebcd73bad2c7ebd8976ee252cebe3c78d03ac9aa10b2be9984bc34b66ac5ac66"; - sha512.source = "13a4981f6ff19cc1664bb2da360479814723651379c445e3fd272167df761dd07c3cc5b19072fe99de8b08b2b41485d08aca6fc1c16325fbbf7ce1ff1fab77ee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2a"; -}; -babel-slovak = { - revision = 30292; - shortdesc = "Babel support for typesetting Slovak"; - stripPrefix = 0; - sha512.run = "b14b98d2cb66a3f8f5d8a313d9208a700d1c3664a5bd23f5baf0d9aa2e3acf3891a0536871988e7579020570999ea05a9dcd60a404cd6670e3c1cf8110d9094e"; - sha512.doc = "da1d663125b913e3480ad147ac1f5c1befa00110e71bbd2d42384db03fe0f0db3133b49e26d1a336b49c10018990763d42ef49b64440c9138d9d938057ac90e0"; - sha512.source = "1668ed3f373e58ee9a507637ed4c17638fc429a30ad6087c7f153f8fa23103c0a93c0c0beec73380d41925ef1ebf25ac214f1afc95793edad65545256e6ce5d8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1a"; -}; -babel-slovenian = { - revision = 69742; - shortdesc = "Babel support for typesetting Slovenian"; - stripPrefix = 0; - sha512.run = "b17956aa2afda17c6ece09f372ed1777bfdecf358fee13260da6f73f971eecd5d315770d01e83def27edd2b06828065ba1f488bc3ee879539691424256c39ad1"; - sha512.doc = "d50461bfd4b57dca583f53fb1afb1ac97382cfee1651d55538017d2990b331cbb471a060ad26fb86965f9d6b00f15da39011368bc9162120b188ad505d7620e1"; - sha512.source = "e7ee24b9f25668e55a539bca4157b373303f36d4c79100e120e7f991f2cbd42efbd8d6c3c5be7a69f7468eee5c30330028175fce4efc06f779900da6ac3085cd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2o"; -}; -babel-sorbian = { - revision = 60975; - shortdesc = "Babel support for Upper and Lower Sorbian"; - stripPrefix = 0; - sha512.run = "629a4f09de7ba1a444af0fc4e6db9f53635b0e000d375296697096c2debd782496d7b36f7745af42a8a19f6cc24c6a832595bc6c89ae20d79701c7181d1a5d68"; - sha512.doc = "ebb371730cafbd37a4c54dd0ccfe9d6e187aae747d1b6de9202fd09a85b5b38f8814e0bd27cd86e51c5aa62e6816ac725e28eff9117d6dc474a9e32f3b6fdaa3"; - sha512.source = "57d29eb253398abf3210acf390cc80e97b444c370718bda75108fd1d70c1c7d2fbfb43f6387751cfc90b9cb9020eb4222fca0821d10c4d52750bfde05a2557e1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0j"; -}; -babel-spanish = { - revision = 59367; - shortdesc = "Babel support for Spanish"; - stripPrefix = 0; - sha512.run = "2da1b62772f462c8e058edac7d305804be6234a720446288fbcbe2e574a1cd9f905e4220b4008dad64c0e59b15194e2627cd1e295003c1bcbdd523c8498fa26b"; - sha512.doc = "9c3e87e7de6fa46b0c6b9da65d4c23e31640628fd6fce844b53d896ad85813e9b804fe4a36c7c2c1cf26550a51551b39150a12467e26fad4f9bb9094dc0af817"; - sha512.source = "48e4293f6c7aafed829e273e0e5ac2709a082e648988bb40e5bd0b36aba6d84aa036d07108a2bc76c65b4ca029a9652ab38268b7e7a87abddc03f00ad55a7fec"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.0q"; -}; -babel-swedish = { - revision = 57647; - shortdesc = "Babel support for typesetting Swedish"; - stripPrefix = 0; - sha512.run = "d3ccb281b9a5405866b0a4621cf0ea4fb75a085041de5d52ef0eb6db370cafacab05d1eebfef21f9558f4110e19b739e6c5cc424709e06640e8290a9c01722d6"; - sha512.doc = "33a59fb66617ee8ff66643e57b0146940060d04bb7bf2764bce97a062a955ddfd80338072434f86d86c414a22d5ce6f120be4f21523a3d81e6e88947e9c2e57f"; - sha512.source = "fe6e091f5cf7b0946a6be154af2907288dbc5ca58a003e7009740b2c85ed22075afb424f805427a5838e3729a35cbdfcd8934f860a32eda0523f141f3c9a9952"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3e"; -}; -babel-thai = { - revision = 30564; - shortdesc = "Support for Thai within babel"; - stripPrefix = 0; - sha512.run = "4e3e5c6d8944040177a21f04e63bd40e85c24e9327eeddfe98072da38590c58523f676fd7532e4e00d0e3cc88121a2885788d606d2dc9ca02fd91c7f04a6ef57"; - sha512.doc = "791539a57534c4870a81ec2318298b29e9e9ad925161b0a4cf52c49086a865d5b58b60da10829a5fb37e66f0d161b396beb127e586457c556875f1205fac9360"; - sha512.source = "db43b9422d95579f9bec645671e5c0ba654ce2d7ca89c3e98b6d910f6546a30b29656aa7061d03b767aca6eb2a01b001613a8b619d597bb9053a8a0df3376b6f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -babel-turkish = { - revision = 51560; - shortdesc = "Babel support for Turkish documents"; - stripPrefix = 0; - sha512.run = "02916936992e00e7aa884b46b6f786dd0fe5a0aaa6e2c6c4e28fe72de7fe5260fca7cdd37efc4a775a8d172e3993c98df7cec3d1ad08f01487f7cb0c8f2d179a"; - sha512.doc = "06931a6b9987a7affd4632ea5cc79028a2a88c584523c03ce79c2a15268947fb1103137da158886c7957e0a7c938ca69c1c5c7d88104c892cae611c914f6fb93"; - sha512.source = "54f3c4bf5063c571be3ae2ecd7c86882cfac940ab942e66fbb18346a4ab1e266b716d276294dc6c622b3ffb0b86cdecd70411314b334be491d0ff56604d0ead0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -babel-ukrainian = { - revision = 56674; - shortdesc = "Babel support for Ukrainian"; - stripPrefix = 0; - sha512.run = "10476b0dda4e80472aa8d3b3628d372da10f8badd37df6beca434e3bf1b9e135972acd5decb63eb6f706b700ef969136117b96ae5a6d6209fd75b9c13d06567c"; - sha512.doc = "7dd3c5d02024cdd4e0c06b57d3aef0a723aba718760efd4b1214b7da2dca8877293bdfff2d3893e531eb734d5551dd93afc03dc4f3413822a3df0b40b4bec43b"; - sha512.source = "0fec3b7b65f3e2a5c0b426d4c55e55ec0551fb38a786cd36db52cdfd6c87909ff82ca21328ea33c7089b39aa2694d4d62ddcd1d59255ae929d4ec85a44abdd62"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4e"; -}; -babel-vietnamese = { - revision = 39246; - shortdesc = "Babel support for typesetting Vietnamese"; - stripPrefix = 0; - sha512.run = "ddb75c37017c1b0b6af2cfbdf574526cdfdce2099d599a23cc8ac819f6ebe5ea7a2eda4bd743af93d78835ca5dccb3d7fa55db22b3154862aa4affe83c28185f"; - sha512.doc = "b078464ce848b24d692d4dded7c9827f37fdb4141b719c71e28b5ef0a827f9ea5c2137745f9689fcb89a486d4a88a94a043a62348e86b5736a68ea48c7f33e16"; - sha512.source = "ffdf9a552fd79b1b51c0064ffef8f9dca1e618b41b0abebd2a22152e8f2bde04a9e35964250e8bd42912929d3e6d8dab6fa430ce302a1f28f27676015667d489"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -babel-welsh = { - revision = 38372; - shortdesc = "Babel support for Welsh"; - stripPrefix = 0; - sha512.run = "89526156517773131b5452f2cf5bf773f34b97b2e35e786f2bcd4dad512519766eded269539ada9d5c34d4b1f02d65bf55a0da0053e6bd7b7a3c66c606cfb60b"; - sha512.doc = "cb0ff59d9c02bce3028f0025c07963d42856eb4e68f322b839ed1ea5f51abf372ea17fc695e7be4bf87f75b3d2b163f801102f469773a4474bd0d0a72a47376d"; - sha512.source = "42c52ecdbb0b1de295800bece99804a481afffa2848a2146429b318f964e3a88dadfca9c020e9dec6bb3db1548ccfa79db3e66edf366a32fa83a1b6ba91e7fc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -babelbib = { - revision = 57349; - shortdesc = "Multilingual bibliographies"; - stripPrefix = 0; - sha512.run = "90e78ff6086c80e0102ce7aae74070d3b1444208f3957e354f2c940ea4d279f87ed59e6c3310c6d9fc1464c227fb0eb4c3813ca679a6e94295e0b824cb527376"; - sha512.doc = "cd5785a17242a523f23093f8389f1d4c5e3d49c0656ac3f168a8627fb153b217b5a14e5c990c7afd1c5ea7324b5aad2e3dd40e8c2ca0f9ba9064f91f7214bf90"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.34"; -}; -background = { - revision = 42428; - shortdesc = "Placement of background material on pages of a document"; - stripPrefix = 0; - sha512.run = "e9fd9b5e680082aa3e9f0482ebe41a753088a1e61b85876a9685942172cb9d5b6c9819ac2d61e0274f988b46d4f962222ce0afeac2827630edc728125761f214"; - sha512.doc = "518b0785e562fc6f01d6bba6cf7157c847faab151bcfe7840d5f2c9d8fc3ca54689beaa8698c92f24c196393fdbf90b027165be80e6cf07e9ee79ad8073d8533"; - sha512.source = "36bddbbaf17dc15e72773400e75dac754a2eb60c106c7a6861226b6dd2a1955fc016810a10d5c90ff56b690be922affc0427c1cf3b5e5c1f334231bc8df69872"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -backnaur = { - revision = 54080; - shortdesc = "Typeset Backus Naur Form definitions"; - stripPrefix = 0; - sha512.run = "adf008822e18c19a7e9e0ef4eb54230ff267ba287e3ef6c0686552ce6b51c8b13fce10cc4533a733f2f6ac09739fec4c2a5878423db1c65a993c5bc16cafc643"; - sha512.doc = "cdf5a269f4055e8c5685da95b18501f7b69ca8b236fde8e60d39760a562bac9bca5da3afc06caf18bc4092a97f76754a48950881a0e0aecba90c40904e699637"; - sha512.source = "45142a281a29b1f9e24e128f05825ef2b8e8549ab5de03607cb018dcde6e98b751598e01f6795b14c81c190a275162eb8e30402006f4e7d2a07c2effa4a949ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -baekmuk = { - revision = 56915; - shortdesc = "Baekmuk Korean TrueType fonts"; - stripPrefix = 0; - sha512.run = "f9270a17459444e128b5fc5d12b943043fa4ec2f87ee5996808f9dfad1c4c4146787db3ecd267767a375d1fdbd56e15850b25cd7c9c71ab270e3517b5863054a"; - sha512.doc = "3a3819f892bdf69afeb66b9fdfbfe1ffe06e2a488425e814cb3a1e223ec9659a71f0571dc25136e0f7afcdb616f717dcb3823b89e640b0894313683e4f79b197"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.2.1"; -}; -bagpipe = { - revision = 34393; - shortdesc = "Support for typesetting bagpipe music"; - stripPrefix = 0; - sha512.run = "7d815e23e9b5d686e0df54c4a0ad51c85360c7b3879695977fb9be2b69cb343e1c9043c2595ac5554e87e0a568b2441bd16a43b334af4b43e5302eba19bc33d8"; - sha512.doc = "696047cc4965a06388a61232af9336f2010fdb0b869914cf66ac9b052d1efd85ff05119a277aa127cf05f56e03b63060956c7c284df78e93b0f0beabd691d33a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.02"; -}; -bangla = { - revision = 65786; - shortdesc = "A comprehensive Bangla LaTeX package"; - stripPrefix = 0; - deps = [ - "charissil" - "doulossil" - ]; - sha512.run = "1559fc1599e2586c660ab544a5d7e279240a966da677fb658162e8497e17b574308f90f51823ed861d52c2d0f4c0b836316866b2d5cc1b0c3ebfa82caa9334d0"; - sha512.doc = "dfa23cced9bc203d87f4ad344f3f4448b1950418d6a01c72a9b56e64cc7b5e959ba6845e55c592628f11bf677b93aa68218023e32116efa8580938b503639f50"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; - version = "2.1"; -}; -bangorcsthesis = { - revision = 61770; - shortdesc = "Typeset a thesis at Bangor University"; - stripPrefix = 0; - sha512.run = "3d297ec59cff75977addc7320f90a68a6fdd87bcf5aee4947c14e122dc7741e443582075eec4a9b327c3e988da500934fb5426d5e9fc17c7decab4a4872cce8e"; - sha512.doc = "be5e7eb308d2678c3cb7464e234bd63f551a560677e67bb6b5c9dec5ab59b29bd6f8a66db300065cb472b9772420e443a3fc7a4d31ebd2557868b3a6b2fcfe2a"; - sha512.source = "3141fdd4bde1e82edf0677625c3b599516ff8b1f71b19c4a486cf5d68361135983f4fcefbdbb390bbf324d78eafe4bb6ad9ffdca8f7b257fa98faf590ff23c06"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.5"; -}; -bangorexam = { - revision = 65140; - shortdesc = "Typeset an examination at Bangor University"; - stripPrefix = 0; - sha512.run = "df88d8051803726d508906be7dace3ef15f455fd00c1603aa16e9298af75e9f38d306ef6fb319b713e21dcb337eb93fa44a2baba2aa15f79076e6ef55d38100f"; - sha512.doc = "b8db60eec0ef7a57e0d0991f70ae7d1d7f87391797521e03baa916848a8be827a97496de8af8f2f95194ccedd923288f471116e677371b99f75f0309283ff50f"; - sha512.source = "639dffd548f6937a01b24e5946e58cfce47609257e6964bd51d441d2ae3435f16d86015f50003b2c3757b8101a50375d02ce68be19e85c6f8adc7c35338aba18"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.0"; -}; -bangtex = { - revision = 55475; - shortdesc = "Writing Bangla and Assamese with LaTeX"; - stripPrefix = 0; - sha512.run = "84d2b5b85f423e171bb90821f9e4518d06a640c02b03638295322e0ea6aedfdb831b6a4e62d3c25259b7b70aa0fe68ffe3081f6de0b0c71fe03c10616c74347e"; - sha512.doc = "05ca923b97240a766d3ff448c6b16a33613a16e3307509ed7c369da6ec889e7e19d57e5f542b829c788ac4e87bd7025a62af9f7127e2eebe7fdd3eba4aeeb7ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bankstatement = { - revision = 38857; - shortdesc = "A LaTeX class for bank statements based on csv data"; - stripPrefix = 0; - sha512.run = "c388a06b1527fe131dd56813303ca727c035f2023b25426e8aae7387867afa0425e4f739c2698b30af97737557c068b94741dce51f8df573c29c14e4cc4f02c0"; - sha512.doc = "5290904ce0aab9e4e098fb4625c8a0cb5c728769faef312267131eedbee937e1d964a561b2c001c38131ff93c9083db46275d693431b2447267edaae19c296f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.2"; -}; -barcodes = { - revision = 15878; - shortdesc = "Fonts for making barcodes"; - stripPrefix = 0; - sha512.run = "e4b9f432d4464da19d279d8e7a5c2ccbd6dbba27fd175bbe7385c0f34199955c16427fc7bf6b487cad1da0b2e28b94d44267a0042e811fc73a88661f3d312b91"; - sha512.doc = "2054d8b87084bbdccdea4a2c05c43b427249d597880b3870fffb98bcf0bf88adf64c9110e3ff98d1755596d559ab548a464a2d681eb1adbaf57cc748424e0d98"; - sha512.source = "9b72c54e083622b95df17e643a6466125a22fb62e3ebc64c3b0f5304253ba5625f0ce2e0071dfc4e06643259b4d7b575a1bae5bc6beb213e5bdd3e83074ba9d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bardiag = { - revision = 22013; - shortdesc = "LaTeX package for drawing bar diagrams"; - stripPrefix = 0; - sha512.run = "dad9b5a50e5a82ed0285fb36c609c4302f7b22daf71c159848788d8c7c91c19dd44398e98357dd58366cd97140e943540d05b6e1c9937124a40c4b4070065a1a"; - sha512.doc = "54fcfb2473c6ece46ec2b01853c89046c7f5396e97f62b9175cedaf4b1e783285c7c417700c827a7b9fefe5055b10723ce278e5fff0e864434f84020472c1cd8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4a"; -}; -barr = { - revision = 38479; - shortdesc = "Diagram macros by Michael Barr"; - stripPrefix = 0; - sha512.run = "6bd398efda5027e3b762b817ce777adb9bb1c8e593ca04386adedeab7dc26ba382058ccfa3c281ef8612fcc50c9b719e7f881dcde0cfec041cf4b2cd05f238f8"; - sha512.doc = "6600ecadc60fdd00e4d894969a84118265b5c5d07e9a411d3f01887fd1e94c481b117cbda80451774294dbb989a61379b16fe3ba5c3b8363a9a2485b76752aed"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -barracuda = { - revision = 63708; - shortdesc = "Draw barcodes with Lua"; - stripPrefix = 0; - sha512.run = "8081a9b253c77cc5e68efeb8c66beffc189898cc6ba80cd96be88c57d3117b2c270e439fbe47983309625c90def14f3b2d2c50b567f4f461e4c0ef591c7ba63a"; - sha512.doc = "18767583117a7e16e5b292aa2e82082eed1f48e7f2d8033cf605d9a0b9f09f460826ba4c43af5e43b003e6514909cdea30e24666b8c518655a9e6ab7b6129953"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.0.12"; -}; -bartel-chess-fonts = { - revision = 20619; - shortdesc = "A set of fonts supporting chess diagrams"; - stripPrefix = 0; - sha512.run = "33c52620d32f5e79a702bb664cfcb47409faa049dbf7f34cc5816005b4667267810fab130e3aee1ff7a7e3292af37c2d376c01dd2bbf17be199a22cc36ba751f"; - sha512.doc = "e61232eed7f345e28796192d836af9de29bda257fb85460f67a89bbdfd7dce01b8361962b7cccf314311c0e772e69367f2921ad898c106389195164b6c925ffc"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -bashful = { - revision = 25597; - shortdesc = "Invoke bash commands from within LaTeX"; - stripPrefix = 0; - sha512.run = "b46abbc1622fcc15d65981368d5c8a7528f2142d722604eb028e0cc364d6e908587cb58a340283e7afa43581ce365ac7a545bef65d1cb5e273e777467231c40d"; - sha512.doc = "5017fef7ad1c67f33cc881a94f75cce97d422b047d8944dbff377b1f3f3d36025b7b73c76ba2ed96bf06b0c6e9c3e99b97ecf36e2ec8ab8b7e1893dc11f201f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.93"; -}; -basicarith = { - revision = 35460; - shortdesc = "Macros for typesetting basic arithmetic"; - stripPrefix = 0; - sha512.run = "346edf1704ed621a326e4f945b8f5341dfbd2d46af095691c7b853a9683dfb2254d443ae04bf235f192a57dd55336dd50249b0963bde041120468499e61012b7"; - sha512.doc = "bf454539b0202321121437d2448c3b49a2d6122459af4788a573cc2525f0301d1267b12f3df8636a36fe807c474cb23347a41a2c412eb12b674c58541516ade2"; - sha512.source = "6c8b449cd8f356be6403a48943d6b91cf2c2dcff90020041a8dde0fb8ad1fa598727137dfda0b091ee776c968d4dffdad1215716111a36be16cc5c5e5b2cc5e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -baskervald = { - revision = 19490; - shortdesc = "Baskervald ADF fonts collection with TeX/LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map ybv.map" - ]; - sha512.run = "3c0451c43f81396038c3ccff2b4a9b07bf31023fa7afafd2884506928dffc8a9345ff0b8c8114f20b3016026f4532ab138a8b4787a37811501659a0f53c98941"; - sha512.doc = "e9e2c8749e29351b59690027b019da441de5c74068aa5a8457e3014c751fb23dddb0e8b94bf56529879086ea8c58e023a23b85ed9bbaece10f6dcc65ddcf3ff6"; - sha512.source = "60122d6a04e88fecd4c6baae3a657f40bbfd48895cc674e95ee9e2b3f9172e01d009064a616f2d7b3f48c41d43f75efda19c3ca54feee612f1866fe64eef366e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.016"; -}; -baskervaldx = { - revision = 69273; - shortdesc = "Extension and modification of BaskervaldADF with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map Baskervaldx.map" - ]; - sha512.run = "f78b61573fc99c6696dd9aac4f108f473996c5e67223e721db88f355b2e55a68f2b8a21c7bf994f2ee36a8fa465b55b970d65407b1ecfe1ffd7e00061bb70753"; - sha512.doc = "8d1b8a3e12b958fe5dee50255c291ebe8ed75e8733a28a5fda7c927a9253e0d94e68b51e81ce8805e3c3855893f53947429fa9684c99925d80176522c72119e9"; - hasRunfiles = true; - license = [ "gpl2Plus" "lppl13c" ]; - version = "1.077"; -}; -baskervillef = { - revision = 55475; - shortdesc = "Fry's Baskerville look-alike, with math support"; - stripPrefix = 0; - fontMaps = [ - "Map BaskervilleF.map" - ]; - sha512.run = "d7ff1eaee4b050128ac89aff0d48d50c99936b1e04e778d0594d28ad3b225002012cfa56ff515486c98d9769d499ba5f4584358f8969c6286f07bd535b478ff6"; - sha512.doc = "131117d2170aa77f83954d61d630cd0714c7542f3b4f5e868f834bd091d0b4cd76185d478ae2e4d35c8b9930262d3f14e675681540fa8363b4aa060ea5fd96d9"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.051"; -}; -basque-book = { - revision = 32924; - shortdesc = "Class for book-type documents written in Basque"; - stripPrefix = 0; - sha512.run = "645d55362506a1bcf563a12ddb7616f085d5cc75a45cb2f0dcdf551158b48f595cd71278caf9a0c35f1d85ca66b880e6f59f9ee416fb9bf15cd7c18bf6fda2b9"; - sha512.doc = "7954b1c86ddac3a1409bf16cc7db5470332fb86459257756200dc794a3443b137e6013a7e904bbf63e8fceae64850418e56ad08af12a448c1fe507e29221c7be"; - sha512.source = "4b8a2ac7320d04d5e35a0c789e5b548582ef4e0723ca45231250b44ab08fb52a73e88f5425218ecdc3e3d35e01042b64c711ad78aaef0c4f119ebd1abc4dc36f"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.20"; -}; -basque-date = { - revision = 26477; - shortdesc = "Print the date in Basque"; - stripPrefix = 0; - sha512.run = "2f0cdfa78c3b75dddc5ab9ed15f651308dad4e598f9623eea50929c48d6f15318f768b95d55ba124eb048129447ce1e629febbb3fa6925677b2a46ac94d82654"; - sha512.doc = "249bfaabe93c4306c32c698eede8835cac334a27802253dc6ce1f380eaafa5c79fc3b86ee34ddd7b98df043cc0ccec137ae3d342cd3904f39203b0ffba2fc9b7"; - sha512.source = "f38091d9c38f86efa401f11759c536dc3ec041688ef9b1909dbdb5661ea096b7e4d69ee78a5beb194e1cdb24afc8ea07e26f2c9c45777aae517351fd4f3a2b86"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.05"; -}; -bath-bst = { - revision = 63398; - shortdesc = "Harvard referencing style as recommended by the University of Bath Library"; - stripPrefix = 0; - sha512.run = "0d32f9c6121a57900fa3818cc4efdfe7355346b7e25971f21e72358bed84e8a56467df9f8132f2666a5047c8a47606a4745ebdb5a00bdc02b4d33155ed72bec4"; - sha512.doc = "45ad0c20ad0cdab5ea22bcd3eb728de173c0c75fdea8b315f2edc5af977406e1be2db0d41b5f2d68e57d68bd3adf7e34e1b3189b401a0a7bf1436376f0e46e08"; - sha512.source = "654e5b3581e66c9df05d7f42cf00b5ad818406d00a03122aedfe1e7f4292f6c6bcbc6be1229ae62303bcb0300c7351c5d0d655da493da0d799aa3183e57dfd1b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.0"; -}; -bbcard = { - revision = 19440; - shortdesc = "Bullshit bingo, calendar and baseball-score cards"; - stripPrefix = 0; - sha512.run = "ac7fff708b3e25312460a740241ed003ee471f84dd4d30388d9cde8380ec9a6b6fa6fd6aba69b170c464a25bec44f1669fabc4ac2d7d3e216885b7e683f88af6"; - sha512.doc = "9e4561e97ea77c84e3c1cc8f75ca61318937c45b7b50dab66d6745f61725b6397458a05e50a267937bf6db4b28558ff0e9f2225078b9516fe574620982ab2cb4"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -bbding = { - revision = 17186; - shortdesc = "A symbol (dingbat) font and LaTeX macros for its use"; - stripPrefix = 0; - sha512.run = "d5505fd7aaffead426a873844112e11fba47694ab07d0f5c88be31188fbf4a09ed4b8f8bce75221b2b2efb3ff81fc132fe54c2634f32679e2e2041944ec92f7d"; - sha512.doc = "a1425b521b1c8178bd6c9b059acf034080be6f3f312decb575b7541d34a6e1de926965cde8701061ffcb57147052b1495b21142f0eac645596a783820eb6200a"; - sha512.source = "be0e2b1332835920a3c93ec69ae53fe83df4918db9d3080716d7b77edf999a87f54a4c87ccbe4d48b008403539a514810f35c6b2a59d8be0ed6968f6a91ba129"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -bbm = { - revision = 15878; - shortdesc = "\"Blackboard-style\" cm fonts"; - stripPrefix = 0; - sha512.run = "d795fb56f2ba57dea55a546244c5d07bb20c104cb9d1e6f9b6c229df9e5fa4244f8bb883bcddc150e1072453cb518d31c110bb85d157b4fbfeb47195da939619"; - sha512.doc = "034d880588fa88d97045d73dd651a0b3573c624dbbf1d2f9fee046c59f007b9e3e2121d5d773b34aa7b0bc8c72daa540447981bf60731e64d99cde49b5f6e911"; - hasRunfiles = true; - license = [ "free" ]; -}; -bbm-macros = { - revision = 17224; - shortdesc = "LaTeX support for \"blackboard-style\" cm fonts"; - stripPrefix = 0; - sha512.run = "06f59837d585c721da77f289119bd4b45a91e3d72543ed3e4de76f84a2916431a733baa379b83a3e299d166e27bc0350df6f053d1ec744c52dcd0297d416fdf1"; - sha512.doc = "20a29809dffe8090e5c067dd2df9dd5a5f7de6ec7abbc01eb14b5a500f37cd62b50914733edf7403af89a1db86ebe10b3d7262f519dc01dc35b29ba0c70c3478"; - sha512.source = "11d1d83d558a7943e35e8146b7f44df6a553a513f8e0478e1a9c773d66d004a4110288f91896b283dc4153372bb638a444c53b9184745858976a7e6aac69b121"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bbold = { - revision = 17187; - shortdesc = "Sans serif blackboard bold"; - stripPrefix = 0; - sha512.run = "1b123e9135179244050ed6f97f17efa2a43c42018b2fa3b01c956a99886ae6696c83df2a0d61ce95cba925c2bb4c734d77253aab165fe9f622695f557fcb0abe"; - sha512.doc = "c754e81f83a53c4a1cacbd2638d550ad178e0e26d7feb592585579a27b780e11733a7dc68fd374ac575cc7866a1e5417d3df0d2b973e7278d1012657bf340390"; - sha512.source = "a7a61bb796d3ee618ddc39d471bb29d1b7350a40bd7a97d44d4a1c7cd5e4eb5d5783d2ea46313344468406d1d25c71ac322ac4bbbf7b06aac35bc03651e7ccbb"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.01"; -}; -bbold-type1 = { - revision = 33143; - shortdesc = "An Adobe Type 1 format version of the bbold font"; - stripPrefix = 0; - fontMaps = [ - "MixedMap bbold.map" - ]; - sha512.run = "86631e16388a447db7c521087eccbb666612933f6fee8eace091e00b20b5070d38ebc2d4d0a754536eacef9e9e6470f237d184e00cc4419bff85087f54b81566"; - sha512.doc = "ad841ac652a7985ab907572f66462091b1c40f7cdab2b00086209a2d96056e0a9e32842dfbc22c829b27799882252da95e3d10d4a9dd174f487327d5f3ac3899"; - hasRunfiles = true; - license = [ "free" ]; -}; -bboldx = { - revision = 65424; - shortdesc = "Extension of the bbold package with a Blackboard Bold alphabet"; - stripPrefix = 0; - fontMaps = [ - "Map bboldx.map" - ]; - sha512.run = "b75c9f544bc0c6d1c046d614a6e0ba52a9cf920d73e8066e2d5e656e1a8774d42677c5a5bc9848e45bd4892e3ed19f6c3c281333f437b541d30d3410be2618a8"; - sha512.doc = "671259c208ea744654b82f25fddc3589fdda650c2121c71763ca4fb4c0ebe3a99906763c5adc354f49edec4beec59897445f5864a37640f67e47c8df6473f2fe"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.032"; -}; -bchart = { - revision = 43928; - shortdesc = "Draw simple bar charts in LaTeX"; - stripPrefix = 0; - sha512.run = "b78e4017d0355107e1e73670c20457c2dc314dd0537bb3e699df3118231b5b3c0b2acbf50ca07f71216d56c81acbb031d38dea7b42099165a03a8049f62021a0"; - sha512.doc = "762b75974de179360fcfe6057102919644a564ad2c3431ef25e2c373267ec063ac8350caf0038a5964345491355ddda4f5190eff6de93f2c2da7ab168c829fcd"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1.3"; -}; -bclogo = { - revision = 69578; - shortdesc = "Creating colourful boxes with logos"; - stripPrefix = 0; - sha512.run = "d3f060c91f1ec7f8c836e22b21dd735895055873807690c4d8fd3b90652a7f6f1648decc23f66a6d51c4970a27817642ea6e66b74b2affcf5c938c4707568018"; - sha512.doc = "e8ec77512bfbfa00de03585ac9b0b47a03d60ab27f7a10303efa3e37bd285c8c0d959f3a5a013a300022121da6bf4c07d603df63faaf0fb44013313f8369aa5f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.15"; -}; -beamer = { - revision = 69316; - shortdesc = "A LaTeX class for producing presentations and slides"; - stripPrefix = 0; - deps = [ - "amscls" - "amsfonts" - "amsmath" - "atbegshi" - "etoolbox" - "geometry" - "hyperref" - "iftex" - "pgf" - "translator" - "xcolor" - ]; - sha512.run = "25fd0161673badc509511fe31b4780a68011ac796e12a841ed185ccb5d9eeaa22c519ddbcd2fc0a5cb70ba94a0752b6b5880f86dd499e4c89f1a5b708f3d7fd0"; - sha512.doc = "8893df96934b3325455557a8a4499113c9d69d563452a01a81107054d99bf4ab67308482a70a777491d208d3e008b60d9c8f76cd560f1fb8af82d97a2a121bc6"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Plus" "fdl13Only" ]; - version = "3.71"; -}; -beamer-fuberlin = { - revision = 63161; - shortdesc = "Beamer, using the style of FU Berlin"; - stripPrefix = 0; - sha512.run = "6638fee0c05b9901935204bbcbd79baa1cd0213c0aba6c8eecf1a9f4b2b44aa9403f42078e84e437e7e14d36a991afd0446ae9ffd2ee3260814944fe7b52e92d"; - sha512.doc = "2241bfbdd7dd8b034a01e83f4076fdcf628ea40a29d27cf1e6ceba234b68580cb05f5b29d71c196187e3b5ac1e5a0ec566c5e4a0b784e56f43bdf86ab2747781"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02b"; -}; -beamer-rl = { - revision = 69254; - shortdesc = "Right to left presentation with beamer and babel"; - stripPrefix = 0; - sha512.run = "36f3fbabba1319d8019862455e97502d5446f1838db4fe42410d75101f430270df3abdafb61e7fb565040d9aaadc987cf268010aa682fb509cd7303f6f2e6dcf"; - sha512.doc = "d0add94467afb47bd358ef5a228e314e280b92c8c038f3e6b6f2a28410e8eaa6c984a34b43902e4b6abc2c0246e732be9e9e31065e11cb14cabe5dd34b15e941"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -beamer-tut-pt = { - revision = 15878; - shortdesc = "An introduction to the Beamer class, in Portuguese"; - stripPrefix = 0; - sha512.run = "6074f5933b945f02b24c31353bd7d683b35a54f53aacfa2ac19de382f56fbb9f6284316ee70c0eacea3760101d98d4a6b7d78412a0d41b13c9e1c907d181ee16"; - sha512.doc = "ef6e80c3417cfad3e2f3e0ecd3ce249aa0b4cf0a6b5dced09c27138e34a8c86a74d0d03c6888d0944fe2b03bb5b8180872306263c58f54281f4ed2fe3424d4bc"; - license = [ "gpl1Only" ]; -}; -beamer-verona = { - revision = 39180; - shortdesc = "A theme for the beamer class"; - stripPrefix = 0; - sha512.run = "71b241e603688bd22e10f171d32ea3dcca1f25c136a7c0d0cea3e72e936b068ea7ced6a40c03d2e2fb21e533506bcbfaf10f450493cb4e2c3df2981b714048d5"; - sha512.doc = "ab68e6accfbfea7651dd43b55c4ddd86a66a827ecc6f6353dc58e3aad47ba89e051fb4f9dcc76e0e8081784385cc696fda9d95c0e82c71b0645d358afaf42c4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -beamer2thesis = { - revision = 27539; - shortdesc = "Thesis presentations using beamer"; - stripPrefix = 0; - sha512.run = "793ec95902fbecc2de84616b74494d7e34a1a1c88277277ee82bb172c1ef0cc42cf175f62fa2b4926abb73817b7eb258d85be6689b60a56e0faee941276471a9"; - sha512.doc = "ea71d35ac3e02d3016b8d19d38132ee16960757c9846192cf2213061c9899a9788e98f50dac074b0cf83f6029f883eb1f7784779d0256c719d55490284cfc8f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -beamerappendixnote = { - revision = 55732; - shortdesc = "Create notes on appendix frames in beamer"; - stripPrefix = 0; - sha512.run = "bfb855380ded0b9ef019a139c93cc4f520d4390d98ddfb43483679742ee597b8e045c8286a9391ec068f51ae6c50372b0438b41e449e23804efbc18767c11726"; - sha512.doc = "abf6b36bfad890b37a0add2ad443c39ba2f2484bd19f9730fec4cbb416eafc6fce723fd5fa684cb7adba4110f888641cc570ac7b7a26ccbf06dcd3697e2c5921"; - sha512.source = "f90db38b52c3c5dd3867111c17716160191ba238b965185d31d497494cb17046a83dcc62966bdc01d79a3f1ddfe53d9d9a4e31a6084c951b68598bb4ca392c4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -beameraudience = { - revision = 23427; - shortdesc = "Assembling beamer frames according to audience"; - stripPrefix = 0; - sha512.run = "f1fa8d1d30b00ea59b3fd83347fc1ea1e90135e51e8f4393eacdf32ae983a80e865d4364c924c74bb1d409ebf22ebb5e290707b945898db9e6234dd297553b49"; - sha512.doc = "25fbfbf71ff66a80597b368882de63aee2e090e5604a67d66d52e99dd606ce54079e4a7350c4acee5966555dfa5dc8de0e650c7cb4c136bdc40cbe5739c0dfe1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -beamerauxtheme = { - revision = 56087; - shortdesc = "Supplementary outer and inner themes for beamer"; - stripPrefix = 0; - sha512.run = "8fbe5425396d8e5fea8ce618091948b84bb9e3998b9f34730686d9275398d7a149c912cf80d9f7da083af583ee37fb191435c68d8ea6741776ec2fcaabe9194f"; - sha512.doc = "3d62f584a8170113242f1ba9bcd1fd3a47c539cf646719d4e11464d892372b0713475b026be3721e5921202d40593e56f2f5cb821bb12f11a629a81e390f25da"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02a"; -}; -beamercolorthemeowl = { - revision = 40105; - shortdesc = "A flexible beamer color theme to maximize visibility"; - stripPrefix = 0; - sha512.run = "bf9874f0d7bbbe3f95c352d1c5e93c5e7fa3af18dd02eedee553c312ef01783420b035ac74f93eb150a99a597ff9948d978ea575963f4117d0965137446ee5fc"; - sha512.doc = "258016683c605b4961ee25f30077cec69c486cf3ed0cccce2482db01b39141e122dcb46e02e960a83138d124aa269ec903379c3c6b65f3366e96565e90c2337a"; - sha512.source = "940218da36cd17d38e2b8c6d79eb1570d6c779b5f694e9b43abf6614db93a8227939e1ef86678f72461752ca0acdcaf2fd5e52a45a35b6d98811511af5090a2f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -beamerdarkthemes = { - revision = 55117; - shortdesc = "Dark color themes for beamer"; - stripPrefix = 0; - sha512.run = "ced5c093d0c4e3c23fcf774bfcc768b8a3adb20287e0677e1a2474d5ad1eeea1f5f979f988c0f0ae6a484ec1953b95c044b0803df9f76f289e999ec50889433a"; - sha512.doc = "45d0daee876c0e0d94b2ce6ce7b49f6eb8282643b1bf3540abb07e0e7782434c224ba40ff933e9febd893467ebab2ba7cb588669a98784e8eba6acefa0d30611"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-40" ]; - version = "0.5.1"; -}; -beamerposter = { - revision = 54512; - shortdesc = "Extend beamer and a0poster for custom sized posters"; - stripPrefix = 0; - sha512.run = "7483f14a3008997c0c39c351e0f8b9a01dc42331ae990575ab33ab29c18cea648e0e6ab328a2c1fde404bc10eec78d7c7b8352bb02636e00d5d6e8689f1c717f"; - sha512.doc = "f597797340286e4a87b62696fa167af07a1717a175646d11836e1f347601551fe0aec5ad4362c135d0f6bbf6b45e217a91bdb5053ba1331828fbc352583d3697"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.13"; -}; -beamersubframe = { - revision = 23510; - shortdesc = "Reorder frames in the PDF file"; - stripPrefix = 0; - sha512.run = "d3ab81c5eb90d8566eb850c25d7751f5a341107fdb756b46bb50b392741746eea356ff54ef1ceb6ca6f0a2c0dfb7940aa7cd6e3d0cd27e4328e817d1be454964"; - sha512.doc = "85878ad48e6ba191174140517ac03039320620f246efb51c65e57541d9cf569d59bdd6cef17f10f6f6d85bff9532f6ea70175cb09b68ea6e59312a407d89f557"; - sha512.source = "f4c9d5b2f9a868e1cf3dead5636025698137d63f64c0c528abafa0e5719987e6df9be31a6ecb9597824e5c9793172208908616f42f8980b49796368e217be24a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -beamerswitch = { - revision = 64182; - shortdesc = "Convenient mode selection in Beamer documents"; - stripPrefix = 0; - sha512.run = "43b91dddb86a5f0158a6181a931a4a68eddbef350917f59df7a281e89f6b87d3db652146094eb46fd89d46f6564d1bcb2f278e34a6ee2738d7c4a817ed1db37c"; - sha512.doc = "1cbab77e0b5482eed26fc7364877cde6094edb23ad353340172b278d4728024b5187df2982f3985899bcbd626aa77fc2423d8dfc4936b6d32f62cace50a4d058"; - sha512.source = "0b6ddd42fffe3a1c85c94e0262b156222b0673b1d8d6f54d3f196154eec4a1fe6ccc44d8c34ab04c496e1635e8bf4555bbcb835dda0ed52e780d904d3a797610"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -beamertheme-arguelles = { - revision = 70209; - shortdesc = "Simple, typographic beamer theme"; - stripPrefix = 0; - sha512.run = "aac91e94a49c87b99e888542cb1d0ca043f6dd1513087daedd538d755989dc19f7c7201698573d3c3d9919a434b0d39d56ba6d33e22c240fd6579ecec6f215f6"; - sha512.doc = "23219c4b8718a1d4c247ae2a733a3b371f3c96796ca0e020088fcb47b4d136670377a4f4b746e9ae260e6e32ef58e86edbea80f71716963272204df312072583"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.4.0"; -}; -beamertheme-cuerna = { - revision = 42161; - shortdesc = "A beamer theme with 4 colour palettes"; - stripPrefix = 0; - sha512.run = "f0433d4a4582958ad057fddcddf1f1f992ec98a199943bcf80a7834e37eb7fa5660258edb08e2bd9205628dc1b8a69419c907b6c007a1c63cd1fb335e439125d"; - sha512.doc = "96f4e9c3afbb81a7841130ea076b2cd35477e93eb105c03add6077fd76981cbd14b609c3b9e573f143572764ac87b1ff76ce18c377f3bbd9b02a1ed45a02eaab"; - sha512.source = "a4381e52d7e46336d8d8989be45c185156e67df776d5ad159f2db6c62c751dae59e0c19fa0c5ec3de4b0385047d5f6fdf166b6c12707c889cffeabe11802a10f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beamertheme-detlevcm = { - revision = 39048; - shortdesc = "A beamer theme designed for use in the University of Leeds"; - stripPrefix = 0; - sha512.run = "cab4d390d7469056f2235c493b9383a4374c4a686810db428cfe622a4c2513f7176df489d22f7e37ae1f8a2d3303443b60c12c577764be2258b345fe9c3dc543"; - sha512.doc = "2c637af44b258c688449ad2bbd81664e3086efe874d03352ab393487d7eae1148773ba39a498611a848c43824415cb5b860259111f6d287fd9e6d7f1c01eb530"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.02"; -}; -beamertheme-epyt = { - revision = 41404; - shortdesc = "A simple and clean theme for LaTeX beamer class"; - stripPrefix = 0; - sha512.run = "2bf451ccfe095384aeec149e97d7022cefaf997cd19dedffcad5606fc149739cf21b6128ef08e609aaffd6afbaa59b1cdc401cbd3ee4fbe0e997d724b713a620"; - sha512.doc = "a615bddd7955869d7e175f734a06308b166057dce0b479a4b11d2bd1d06fda7e0a4fdf8185d0a3db2d2302cea2890184616b92d0b7abd5321fe9edaca6dbbd2e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -beamertheme-focus = { - revision = 69742; - shortdesc = "A minimalist presentation theme for LaTeX Beamer"; - stripPrefix = 0; - sha512.run = "bb09ca551108dace02506987f246f1de4672444e8d6ca7f53bbf1cbfb573a7e07b3d2f937b4724821b30b60f1c63b360e200754957289c95379aab06dde14a8a"; - sha512.doc = "5ca583264ee68cec6df53f5e4a32d4c3ce408372fd3ec4c8ec74f2757ac9f5e817a23ea875760994fd7e45a8cc2e45686251aa785adc960b5730c5059ab353e9"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "3.4.0"; -}; -beamertheme-light = { - revision = 49867; - shortdesc = "A minimal beamer style"; - stripPrefix = 0; - sha512.run = "5cc15c3ee0222678c1c97b31805421caac8b20fca03b1d748fd2a71756d5d764b8fbfb32ab70937e890f7755966b520362db98a9ae65be3f83509cfa287d600a"; - sha512.doc = "e2d0cdb7fdabe582f2b6f1a656a5b9b61ee3680fd4944c06f108cf69eced96bed7b25e56563b1cb9879e8da42fdbbeaa41d769158c5e256bc70b5d695571a5af"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.0"; -}; -beamertheme-metropolis = { - revision = 43031; - shortdesc = "A modern LaTeX beamer theme"; - stripPrefix = 0; - sha512.run = "dae8058ae5c2883b383a2bcb85bbdc45d0b0a3fab46a4498ea1f3b8568f04d049598fa78b72429adc7e36773905c67801e129378e233582f0fd8eb5ca4327745"; - sha512.doc = "c4661061ea3ce52a20fb8c704042cf755b8b54549dd62467b1e78f85a4067c11a02c89422384e96323ef277ce44a3f648b1778b54e0b5c79b721f67451fabfc1"; - sha512.source = "af3cec1b7544ecd51c875a704605500ee1ab4374df9cf1a7db6c6b9102c4800651485a64dd865c1158d729c06f2499021408230c50278da3de40f7f0cac7bf6b"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.2"; -}; -beamertheme-npbt = { - revision = 54512; - shortdesc = "A collection of LaTeX beamer themes"; - stripPrefix = 0; - sha512.run = "9125794ab2ebc4d15ab500b67b9943234d80088393d9b31989ae8209359dca97778feaab3d11365ae1b4131f06dad2fe73bb21fae1220b401c5f31f413cff171"; - sha512.doc = "7703951f2afee05627847980a05b0bef0cb2fe87eec078f64a3e4796feb4057bdf93708ef0476090d40dad2605c69e23f695b9164a969e6a67f8329e6e340a3b"; - hasRunfiles = true; - license = [ "gpl3Only" "publicDomain" ]; - version = "4.1"; -}; -beamertheme-phnompenh = { - revision = 39100; - shortdesc = "A simple beamer theme"; - stripPrefix = 0; - sha512.run = "30745bb1f92c230bedd953d32eaa6f2085ad2aa7f147bd3368fe8ebe4f6092ecc615acce55b9573da4dc04c8e89877ba2705a6712cd4c4f67f34dc59eae97880"; - sha512.doc = "626d124c6ac02271cc3bc137e60b8a66a861b7f692910e9fad283d8836599e3adbdd1ac472fe66955a392d1b563e955da852cfd5a0d712d284fdb2dc4d709a63"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -beamertheme-pure-minimalistic = { - revision = 56934; - shortdesc = "A minimalistic presentation theme for LaTeX Beamer"; - stripPrefix = 0; - sha512.run = "b9c6237108e1aa5f4859ebd1100efbddd2bca55c76bca876e0e3a0c10dbd322a3ee834e4e452b80b2f7755ce026fd2bbe5c69434371ad29df1fe3280b409bdc6"; - sha512.doc = "791e3a367f5c7ebfee453e7d7a76753763e2bbe122616e49fd0d4268dbd274e3ecb308b5adb850765d143bc46a311316f86bd13e60ce1449b0217d7b4f733830"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.0.0"; -}; -beamertheme-rainbow = { - revision = 67542; - shortdesc = "A beamer colour theme which alternates theme colours on every frame"; - stripPrefix = 0; - sha512.run = "220dd54bd2565263ce7bc48068c96b48a0677f36ad5f3d826561e1d0ca21f5ecfa7ab675005e7aef40e4b9e9f149ee341c0ed82ec8a5a6fcab40785cca97289f"; - sha512.doc = "bcf12ee63331bec8fd8c5443231109bcf1027d1abb9ce94c919c17fbb8a5248bea503acc25bda67226fcea1e30a2ae7283cfcce6a9b937362086e9123b4a429b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -beamertheme-saintpetersburg = { - revision = 45877; - shortdesc = "A beamer theme that incorporates colours and fonts of Saint Petersburg State University"; - stripPrefix = 0; - sha512.run = "c258a4eee25ccdb2437625982e54def90aec87be003f697a47334be52b85ef223b377c7fc57d49c889121caea664fcd6353015ad2e62f5bee5379bc222958f53"; - sha512.doc = "bf51e2bc33f32ba3dda6c140040a7499a60c26082569729743228a6c7abc97fb20076d1d0c7d0b64a25a54cbba1d9a8b59a9059d160a5a488ef6641999e8611f"; - sha512.source = "6cd3ed424b3a724e397de3fb7b47de33a5c9f0c5ac0e0f8b26bde55ef69b66015874dbd438912c682c9aa1c33e4e916fb895458964dea11fe228e29c1afc40e8"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beamertheme-simpledarkblue = { - revision = 60061; - shortdesc = "Template for a simple presentation"; - stripPrefix = 0; - sha512.run = "c75bb4c0f0eecf2aea0e24d30410ca1edcf645c323d88433bc6c12adf116740f2f6bc7d8517db764b0b33d9d9227db93ddddd1c521dde3343fce6d807b0e642d"; - sha512.doc = "9f8f642ebe4cafed03699377be6bb647cbdfb80f99e075e2863b69a4d6b6f59cab6dd4dc831b0fb015302b3737b32d08cf37b3034365b021e8fd9f086f7e6ddf"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -beamertheme-simpleplus = { - revision = 64770; - shortdesc = "A simple and clean theme for LaTeX beamer"; - stripPrefix = 0; - sha512.run = "de19e0011817552bbba482517f9ea4f59590cc837c4b539e01db5f08eafa2dc94adda9dc8fd4f92b07fe2acc38862b5a581c195f1776975469d69c1b7fdd617f"; - sha512.doc = "e96132fc4669ec82913ad7610a174815be79476fc40ecc1ed35744292d41ba47bbbf1a7cd9d244b41c12ab515c729655271d62a608ae47cd2acd0324cf0f0ae7"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -beamertheme-tcolorbox = { - revision = 67000; - shortdesc = "A beamer inner theme which reproduces standard beamer blocks using tcolorboxes"; - stripPrefix = 0; - sha512.run = "bcace2249558b6519dde1d9c80da791e38330de31da26c606d8bb8a780952bc2cd57f93948ba191606bd44c2260819546a367e34f672555db22d0c736a6b959b"; - sha512.doc = "240a7be55ae035ae4e155efa814639de14a2c5ddc2dec9bfb963df2010026e8cbc7f6c834b6445695dbd7f1e68499e123b505de068fc196ed25a86115c06261e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -beamertheme-trigon = { - revision = 65985; - shortdesc = "A modern, elegant, and versatile theme for Beamer"; - stripPrefix = 0; - sha512.run = "1269b79603c415123a91093bc69cd672aa54518da7e7cef52193804fcede45dc09fe6748f2c0c940a754767963174e768b52873fbac5a520f7076229100ff016"; - sha512.doc = "83b6946c17d060c299260ff272130938933dbeb9124b1608e8f3bd886b2f63851773181dc1efabe901196b37f7254569a5b5de0de7fd39ff558eb21376ffaa27"; - sha512.source = "49f9d4cf001b45b29a5c7b59155d72e286092157dfa5c0dfa05e7a20958adefda2a182974508f9a0936acb1d5ce199e21b350e85da7e292525b2aaab60e2c6d3"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.7.0"; -}; -beamertheme-upenn-bc = { - revision = 29937; - shortdesc = "Beamer themes for Boston College and the University of Pennsylvania"; - stripPrefix = 0; - sha512.run = "0c483991348107a2b9102e514ec05838a9ae3e97dceddcbf3b8cc21ae635a272c7d70d97b2e1a0929b7545e50560f16a71f7b290ca16cdfd63177782b993b714"; - sha512.doc = "5feb0a4401d9ebbc4672b7f9668f850fb65002c7d7124c607009775149c4c428642cd17df133ae80d564ab091fdff039d34c1704360033f2374b55466fe1b618"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -beamerthemeamurmaple = { - revision = 69742; - shortdesc = "A new modern beamer theme"; - stripPrefix = 0; - sha512.run = "c325ebeec7588caaf8966e9b8a71069f1613d694537298afeeb8d01c6c83c7991e874bc5bd070e722e15ac83eb339581897a501dd187ea5ee4919ba9c14fb541"; - sha512.doc = "371597bc1aeaa9c43fbef6b68234252535be41f442db6e6785605723b099b34e8cc01b1062ce1a831e62333f57673f49462eef082541c982b7bbfbac119a19be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -beamerthemeconcrete = { - revision = 69528; - shortdesc = "A collection of flat beamer themes"; - stripPrefix = 0; - sha512.run = "84f2729d5f5197d2dae7fe422f535df1f2ed14f2ae936f7c080d93f7aec2b949290406f31309fc76b21a4a80de733aadc6319a0e54a63482ea97ebc4bff773d7"; - sha512.doc = "bca6cbd0b51e52446fa179d216a3368b5bda75e6e99abf3204297be3335f2aa2b6efe51dbcd1bf0bb589070ce30c030b6ea2bed868277953a5d60210b6bc924d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024B"; -}; -beamerthemejltree = { - revision = 21977; - shortdesc = "Contributed beamer theme"; - stripPrefix = 0; - sha512.run = "b079ceab30460a7b92a616fa6d7216ddddecfa02adfd66bf38aea83eccdf6e63cc52d8b2ae88db0b21962af223b364424227806beabbfb2e344af98474af2528"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -beamerthemelalic = { - revision = 58777; - shortdesc = "A beamer theme for LALIC"; - stripPrefix = 0; - sha512.run = "70d789b4490e5ceb9d578be03f815eea97706fc89e41756908d41f1953c2b4cee4ce7c142406a0abef0497b89b74dfb2dc6d2a841898996f32025f53626a8548"; - sha512.doc = "b79c55da51785c42c68a2bd5f7a386b21fbb36948df8b5e87e60b9eab263e43592b7265902b6f3a2d3bd214dce122fcf0d504ff807a7bee0ebccf7241fa8e1fd"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.0"; -}; -beamerthemenirma = { - revision = 20765; - shortdesc = "A Beamer theme for academic presentations"; - stripPrefix = 0; - sha512.run = "6fe83e0805fde96d585dc027ecadd23862815171f56f6a05db0a6788018a096c193c995895f7ca18af6d322877e24d570743d84a922a2c7e4baef35d3f6dfca1"; - sha512.doc = "13f1dfbc8f09662b627dd4ed6c7ff297612c5d05a140a446ccdcb6f0ad3a9995b434d418994cccc2323ead666eaeb10b32e1a9d410a38c632df9873717397231"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -beamerthemenord = { - revision = 56180; - shortdesc = "A simple beamer theme using the \"Nord\" color theme"; - stripPrefix = 0; - sha512.run = "4ac0d1a6494f7acdb1afd73b2bf8e7c966ea3167f856432ebb872f0285cfb8fe759735b57bba5e9ebbb91a0bdc9e2dd643f5ab0686e9417e0719369266d7e46d"; - sha512.doc = "0e2038d76d478bfa54a547c97e002e84a98a1dc7ea0a1584f12d6cb1b2c4cb1f65d9d368533b5870c4f3ecae02396ec0172a89eef1547d33a168ab87c846a4d6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -bearwear = { - revision = 54826; - shortdesc = "Shirts to dress TikZbears"; - stripPrefix = 0; - sha512.run = "c758735d869a9b1dedb64c9c0377891606d32ba69fe0d665d882d7d113bcf3c9678e6cbfe93c269758d492a0336c26f937195f04e80587c1aa083fb1c766829f"; - sha512.doc = "03171083f40cc4688ca6849fd371189b43a9e5963e06be3ad44271b11cb985cfa0b369b49ed43110395e1d7d50f4337e9ce597989be48049cdf3c3a1beac5ff8"; - sha512.source = "5263fce263e48699b3e59e556827f3fdd88cb812a33d259effad361289ab8270c40d7c3c510938c56a99070bea4894d769e7f0986c7aab75262feb59dfc27078"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -beaulivre = { - revision = 70050; - shortdesc = "Write your books in a colorful way"; - stripPrefix = 0; - deps = [ - "colorist" - ]; - sha512.run = "e8566d352bb39bbe6256dabb57d6743db7dfc98e491683eab76ffa86ae9d6d0cf53726999620920b4845015bbbaa6cf48e8d4c82dbffd841d00d55bd2f2cb464"; - sha512.doc = "efb52d0b4df908a4425fb9d5f2767c54dd7b2d614076374d81b15f53322528a24231feb9145de9bf1f0086a6ffcff37d529a925fca879984b4c5860b00b12a1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beautybook = { - revision = 68438; - shortdesc = "A beautiful book template for maths and science"; - stripPrefix = 0; - sha512.run = "68df2cac1064c5636f1df6b5f9d51773278798310e7d36550f2a55c05c8d1480518407a97037d0167fe92fbab2f8d7be73d528681d66f63afe644ef3ede38ca0"; - sha512.doc = "62eeb012597c27e02b00ac5d7b2b280136986c412baf7113634bf62e0fe82b1fb9e4fdab3ab6a2345517a046fe46bfad6f2031926f07f69609e895800e215ed4"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beautynote = { - revision = 70166; - shortdesc = "A package designed to meet the publication of books and the production of LaTeX templates, with elegant chapter"; - stripPrefix = 0; - sha512.run = "637e51a355d5f89c2e0241140780b221fabbb4685830c1ce9ccb5cb185c53f1cc4c3ffafe737df25445ef885958c1b5f6ba96a4a3de1169de7f2cf28095eea43"; - sha512.doc = "36e71d750df5b5e5d8d05251a4be60214c09027a10c77551ff6261464729004fe0e3be586687af23db115b7cb4c99086dbe9278da0b8d6292b57005019628fc3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beebe = { - revision = 70064; - shortdesc = "A collection of bibliographies"; - stripPrefix = 0; - sha512.run = "ff133e38a475bba0e8aea3a8a98d20ff1aa17eef7c0d0f5a6d404d51b1062c2a5957d3261e844d956f9a5e97fcc2d8a438beb5b724f84f8f3734091551e7aba0"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -begingreek = { - revision = 63255; - shortdesc = "Greek environment to be used with pdfLaTeX only"; - stripPrefix = 0; - sha512.run = "c6e8493a80e328a10208088f7490a14bbec76fc8d969b85c6505d655840d9e4d8e05da3a1a3b17d76fcc0ad26df7251765d7d4e812000cd3fb9101ad5a46c3a9"; - sha512.doc = "3143cf03735fc6e5b3a77f17b6099f139d6a1cfcaecf140dab6eb4c72398742719956bc03052e539eefa9acbebd00ab14f7b0be829ece74b8a66dd227580542b"; - sha512.source = "ce891bf42100a6ff2f046f2a02f9ed53a9ac893578d7120cf483aaaa1d856c9985a6e7a59c2076c9febc35fd9cf21139de6fd682923bfb6ecaeabe63dfda2a93"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -begriff = { - revision = 15878; - shortdesc = "Typeset Begriffschrift"; - stripPrefix = 0; - sha512.run = "ed1060e0ce9bad28f98481eed44f8bd98f6b8be91dd5dc87d5c34a6cc57e724d175fa909fd6ff514399eb81bd8f28450f7c9a6c6a9bc991f35d617a8a25de8ed"; - sha512.doc = "af28c20897e297af4ca1fb13bb286ff0eece9e2f06f5b734062716c0c5f5b7dd673d046a5a47c907f9a845a7257393f3328d46c4ea2ac0ae6b0eff1244e97256"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -beilstein = { - revision = 56193; - shortdesc = "Support for submissions to the \"Beilstein Journal of Nanotechnology\""; - stripPrefix = 0; - sha512.run = "4d604245024a94e23c30c7968e177173efebc7d8d227688f0e90adbf071c7d0d44a6c07c37143675a66899062ca2b8c366516ca3863128e33e784919a33e3d49"; - sha512.doc = "9684c13b0d91121e7e7548ed9bc1e377ac7a54f9f1f2aeb57d465bab36b17d216e1cae4eea9b3fb6e5afc42e41f465a31db0209f5b45f40f7db0afbc4646c73d"; - sha512.source = "0bd1079836d7740070d6100730449e6118a14485902a9016109587530e0f83b8dd4a4466cce914c5f06f42163da746e75fd998eb6b279e45574f81535e65ed1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -belleek = { - revision = 66115; - shortdesc = "Free replacement for basic MathTime fonts"; - stripPrefix = 0; - fontMaps = [ - "Map belleek.map" - ]; - sha512.run = "4ae91c01e67fcefd46da99d6bc8379b3829e4e0e88f512f36bfc9743d075090d0c26d0eef11dde5125b344e85ccc3c5a31569f3a1078d00d364ea80120bec30d"; - sha512.doc = "93266af4f4293639a123f5ba88e2680d87e6d815f49cd7dc6c9322866dfb22308716da1e362699aeded819e7817987938f70cf48c9166e7127836de743e5dd63"; - sha512.source = "b8547d1b3da8be829b7fe99d0cd7cee8fc6b7158c1799712ea85614534d0b020cfafdc1696a0e5037ad15b215173e1461c64f86a1f52795209272aed9991d107"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -bengali = { - revision = 55475; - shortdesc = "Support for the Bengali language"; - stripPrefix = 0; - sha512.run = "2ace635791a4c7a8af0843a5a92d518d0e93fc09a94929a277002a3e4426f199e207238766b07ff3f1e1bf0e3c0cf8b83897b30ba105ee7239d6ce1d591289fe"; - sha512.doc = "61bed8e39b9dc4673ce27402c0ee76b035e254133af09bbbadd00b80d367ffe204d5f660af8c633bc7dc6bd81f66ce419741e341f63e314367f2e54c61f8269e"; - sha512.source = "ddfd0dce8379aaa3e224f74fd33fa4dd1fbe6a40d9a01bc6dc8da1dbca5b5eae97c4837ff21c75be8658d37693cdff3c2983fe01c77d13bd0eb89e14f78d6e2a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bera = { - revision = 20031; - shortdesc = "Bera fonts"; - stripPrefix = 0; - fontMaps = [ - "Map bera.map" - ]; - sha512.run = "103b2db8f7bccf6a9729faae793246d2933667295ba404fdaa7b61cfbce0f1209ea27e7a2a63846c6550b41214ff496a62598bbb9b731c087b8bba9e0abade80"; - sha512.doc = "2606c87871d6f6ed27b2a5e49117c50f00573bc6b9ce249d1433da214764b220eb00c73e59be43e32e8a4827c397c53504103e00b7e5602de5df5bb817e2145d"; - hasRunfiles = true; - license = [ "free" ]; -}; -berenisadf = { - revision = 32215; - shortdesc = "Berenis ADF fonts and TeX/LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map ybd.map" - ]; - sha512.run = "70dd547d0c5138f2a61e20b4585160e5fef281bbba72ba8dcc7032efa957d80c158ba88fdc0dda9982dbcd69a48d5d54286f52d1425a5819e54e05d79eb9dd49"; - sha512.doc = "f076717ff948247589225fbe4fcd92114d719526e535d645d767a3f7fdaafd3a6ca84c3a60997074186974ebf045e31a51d16d53c8a5fdc78a2461733cc66372"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.004"; -}; -besjournals = { - revision = 45662; - shortdesc = "Bibliographies suitable for British Ecological Society journals"; - stripPrefix = 0; - sha512.run = "e797bce36fa6529d6b57be352ed81b7413c2ca818fa904a8cc4c7c8f0801369543482aa5c286b40f6f7c5e0b73d53b6aa6b9aaeab3e6229da7dd954a3dedb1ca"; - sha512.doc = "c790eb0ced559adc6696f0f228c88a2314214ff6a4ab71ae03dc46b3974cdaae53fc685c05f0bbb7646a5b31d332f763fce4a71919319aa520965f56979eee54"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bestpapers = { - revision = 38708; - shortdesc = "A BibTeX package to produce lists of authors' best papers"; - stripPrefix = 0; - sha512.run = "d015369a268cff98571985f319f95df9ffe0255ad222e8c8133252c3ab5537cfc4c3ea11aab13a565c096e92472d7724c0ef23ce6a71f62c7a5fc2b30382a054"; - sha512.doc = "cb5e9bbcc83b6081dd0207001d1b39c6e089e2ae168f20d1cc87482560a483e4ea195fbf208c342ba691d3c85ea9f4674b2eb6cf68db9f9d83d3b98bbab60dc3"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -betababel = { - revision = 15878; - shortdesc = "Insert ancient greek text coded in Beta Code"; - stripPrefix = 0; - sha512.run = "db2a590e8ed5e946652cc54d5c01bd540b87f77253278f9211c8720229992275f80edc26d0c94b4f68237d84a5bf7b56bd93a40e2a0ce8df5ffdeb124c81d219"; - sha512.doc = "209f8fc6123f8403bf6a30731773aeea82c5c6de123e24755e9a22ca6f3ea170015feeb541242a772c3244e7b74f1a766e95886e4f773f21c48b353f22d6adce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -beton = { - revision = 15878; - shortdesc = "Use Concrete fonts"; - stripPrefix = 0; - sha512.run = "23d243f15a79246aa590a7ec65249724a4460ac6e3ac01dba2aeddfc169875dd8392c1374cb8459ff84210d51822430fab9d75a87f0ece20323cd20709de0c14"; - sha512.doc = "fa579427c97f930455bc548d5b438f32aa291d98f9d8b391dae686b270e135605cb3ddd6cfb9076cb248a17eabb4e62bcf4f720b2daf829b3d12d6ebc294f832"; - sha512.source = "79e129919c06ef083e4f8fdcd88a60339591b3f95776feb9cc076e46fb379b5ab10f9b48f3b8a948e9a120412f818dd3d99cc24957d3eaa812bbefb388d91049"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -beuron = { - revision = 46374; - shortdesc = "The script of the Beuronese art school"; - stripPrefix = 0; - fontMaps = [ - "Map beuron.map" - ]; - sha512.run = "623d3b7d8747ce1776de9d0ee6eec013c2050f9cb4a521167bcf23435d5e30c1233ee869ccb299360cfb6f8f4b4034a77d4fe601f789211b290684c0858462a2"; - sha512.doc = "812dd30a9b49d7ab5e529f3c7ef934be5d72b75adeec1a38cba77c867525243ffd0d4f4901c9100e6518eb0a8c35e208157b8e3669d3700203ab7fe95aa29845"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -bewerbung = { - revision = 61632; - shortdesc = "Typesetting job applications"; - stripPrefix = 0; - sha512.run = "1a5f652ce8e7ad60f22b7c3c5cc46c3963e5511965445fdacef01aecb157ecc4fbd3eed07140d64716b90a11db96f1b7dab8b4568aa41f7049f8a3a1ed0e290c"; - sha512.doc = "1713c1d4ef0982cf635ea57cb7af7805b001b48cdfef5bf770c627f5460f57945d2d2ead87c6e0ae8ad7cdc66036caa5dffafccc5ccd59ba889154cc6e4f9f5e"; - sha512.source = "df95e8bcc71b83dc196699dc9f4581ce3482ae9f1b673fbd2bb2551d84c68c97cbb70771ad710052d1f2652bcb2d32d8a4392a038e747e4ce7a25b65aaed2e79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -bez123 = { - revision = 15878; - shortdesc = "Support for Bezier curves"; - stripPrefix = 0; - sha512.run = "e70a0889ceab74fcff4994568a97f31ac93165353ac207ee683b28aee2ad3cb8f770d8e3b450e3237537e97312a0995fa8c17196ead0fce55fd76a49c77de72b"; - sha512.doc = "91ae5e35394e5bf3a6bbcc6aa7d7180ba546b58e84683c569bc34f5b0f9dcc6ea30153305fd83fe28e3bcd8eccb6179d277d28e1ff56538fc6980a7c3ec8f444"; - sha512.source = "fc329c0c99ecd10c42bdffde10918239874367e7b54a75c4de4882e520ea82e87188070775174a11621dca9bc5949a850207f02af7c08d1b6768ea87fba7e10c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -bezierplot = { - revision = 51398; - shortdesc = "Approximate smooth function graphs with cubic bezier splines for use with TikZ or MetaPost"; - stripPrefix = 0; - sha512.run = "0cfc80b93b76053591f4d76e3cd2f5518dec2dabc397b0d18f0d9edb40a0eabfd1ed608b0cbd6f4b7b28b9a10a9668b21f9ee798514bfd3ab4cc125392512d6c"; - sha512.doc = "284cce26134afe943c4b5c0b3d968f2512fa1c47ed1f2b19e70f48d618829b76ffc200933933f27b407e1086d95f38a4e9ecfe85506ccc2336cd5fe7eb40bf37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -bfh-ci = { - revision = 68828; - shortdesc = "Corporate Design for Bern University of Applied Sciences"; - stripPrefix = 0; - deps = [ - "adjustbox" - "amsfonts" - "amsmath" - "anyfontsize" - "beamer" - "fontawesome" - "fontspec" - "geometry" - "graphics" - "handoutwithnotes" - "hyperref" - "iftex" - "koma-script" - "l3kernel" - "l3packages" - "listings" - "nunito" - "pgf" - "qrcode" - "sourceserifpro" - "tcolorbox" - "tools" - "translations" - "url" - "xcolor" - "zref" - ]; - sha512.run = "8aacc57f0eb40e83a6331cf86b076b287787672421648df65814214b60e739697d97fea5d8d18f112c27ea60cd2f2b9a26c31fb6074b9c1f1cba4522e96a11af"; - sha512.doc = "fc7e441fac29da849714c79ed0f68e94059d09c1472b4c56b3f100f0e1af730963e9d0bedeb3bcbb87512ef68535321d6df13370cd9be3d5399cbc05e7f1cee7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2.0"; -}; -bgteubner = { - revision = 54080; - shortdesc = "Class for producing books for the publisher \"Teubner Verlag\""; - stripPrefix = 0; - sha512.run = "53d38b2bf03861553a60db38c06b5b7eb48404a08f4bad645b24383ac4131a5b60a0103d0d2217cde1aa4f8bd739db4389d25693bb6186fe0974b0ebb63fd567"; - sha512.doc = "344c8f7800a273b914265ccd9cf8175a040f021c07aa0fce3b6391db85e8ecc43d5d593aeb8707f82cc2c8c987b2d72700a2fe4d8b0bdfcaf2a525c5d79f7e3a"; - sha512.source = "ff33871afe34c6d578dd5d8e795e36e83a785893d8741dc2ddf2b8bb27062324f00e0f52b3cd3d993074a7e7d21207537f028f6f5dbf8384d02799d1108b9472"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.11"; -}; -bguq = { - revision = 27401; - shortdesc = "Improved quantifier stroke for Begriffsschrift packages"; - stripPrefix = 0; - fontMaps = [ - "Map bguq.map" - ]; - sha512.run = "8a795ba517941a07ec1445a16947ce5028cfd61ba2b5c818bc894ffa73d439162271d6269c67c8ee7afd6d13551d4a9bf73763c00b719bf3a9019a8e7d368256"; - sha512.doc = "1bfe38f2d904af63a5a0fd2ab4accd04fbd294083cc462f7d53f79819f40dccf1c3c729ad591d15327eb120bce847ae62c2bc9b9554ea278c1974e3b37296dc5"; - sha512.source = "108ecf4268a4491904d46f5aebdace10f8aab84a4333fddf94788b677088a584da284fd763a8f0ab19cbc335a3a143489a49836ba059971483faeaf40ecbb0de"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -bhcexam = { - revision = 64093; - shortdesc = "An exam class for mathematics teachers in China"; - stripPrefix = 0; - sha512.run = "7244442c52f57270055fad1ec87b00bb0f3ff4c89e37b57be051b29046348dc781e42b156186310d58eceb1ee9d4ff2fe287a3027642fbec3c9c315e00af9c68"; - sha512.doc = "3e16cf4f60c089a21d8e2d0a9c78e8204391ba7bc5a72d7fc23637e0c875a57dd1615b8332f6fea9c5a9bcb4fc17c4818bce708998c1c8c71d0d970e9bfdd132"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -bib-fr = { - revision = 15878; - shortdesc = "French translation of classical BibTeX styles"; - stripPrefix = 0; - sha512.run = "24e5ada94266ba8786470453bf8a076891e9b7efac1ff64fcb559bfe2c95875d3120634f94f464c9e40da0f45b18a78af1bc428106b31e85851a2998b58f0834"; - sha512.doc = "a19ffa9b3ce51d372a7467bdf7e360ac4a0faf45fc2205eadfaff16fb640ffb0cccac7fd0849a74955dcf612e353f0e25f94c0af9e3b5bf617f067606c1da120"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -bib2gls = { - revision = 69635; - shortdesc = "Command line application to convert .bib files to glossaries-extra.sty resource files"; - deps = [ - "glossaries-extra" - ]; - sha512.run = "e73d6e0c7596252dade43291fb26ae02c0ed8f2650498294d2b1c36d69e777411fc1637619226f34f80c7e5cc06d3ae07f3b5d2eb144a2e69bde16a22c4aa449"; - sha512.doc = "46d4a219969aaf897cb4c7705a00d1558b7b16cf0d4b16121672df8df2bdb0c0d0ee3350687b430f1d1d29eacee330aaee3206ef664c406c1d2b1c8c316de0ff"; - hasManpages = true; - sha512.source = "662855e5579429694325042e0256385b9a5c40a4b54e6cf98712432469243de567cd5ea68f1ea93a593428eaeaf09d9d5a97e3e670dfe9ba90cd6f8c2383a3d4"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "gpl3Plus" ]; - version = "3.9"; -}; -bib2gls.binfiles = [ - "bib2gls" - "convertgls2bib" -]; -bibarts = { - revision = 67407; - shortdesc = "\"Arts\"-style bibliographical information"; - stripPrefix = 0; - sha512.run = "358492693511d2de25fc7e080c862e1aa6a6ba40655fbf64991092a4a56c76a35f9fa9f8e0035fa042f0341f8fa9f13a5615079a2c9c56af36aaba4f41385865"; - sha512.doc = "d708263bf3d867e075281e0cdedca007fbcaf8cc333a8c7c0c9a0b79e68bce1c100b263a740e232a5f84861726dda947914a7c4ba52d87315163db9528c2c544"; - sha512.source = "b1d8043b2f7c49e6bfee9b1b82f361450878f6059cef790f12e9a26279caf25f2bf446b4b70c1882478503586b700e7b2e78a6c631264b1c2498ec493ba20ad3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.6"; -}; -bibcop = { - revision = 69467; - shortdesc = "Style checker for .bib files"; - deps = [ - "iexec" - "pgfopts" - ]; - sha512.run = "e67e6471a9572f502db740cdac0540d3ce848a3cd36c976fb72a5bbe11626dfccd3c40ea75d86186d584c16d5809e99afd6cebe6fc27fb874685fdcb05da5341"; - sha512.doc = "68d5b879566e871db328b92c8cd1d00c05698c07a140741d6584c5d3e2525725fe01e647938f396a505f6b28833d9df90b1984e334f7e781af2c9beb3f303209"; - hasManpages = true; - sha512.source = "e7feec5a9ba4772e0d647d34782879c5c6b535f62df35382369f8b405f8b1c8e874db819b4c68f86e58f15fff938e7c37f4eb3476e8aff984890883a3e8e1924"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.0.19"; -}; -bibcop.binfiles = [ - "bibcop" -]; -biber = { - revision = 68188; - shortdesc = "A BibTeX replacement for users of BibLaTeX"; - sha512.run = "07222b2bb0aed6b2de71b1e061c878e409205459decf998a7c100ae92dbecd91549a6c5e2e0dabe21f742fdfa7a57704252ec565d9e7ef0bb1d802fc1939edc6"; - sha512.doc = "a02c41efa4a5fd8ff79c8112dfc22b45e9717aa572021aaf93ede35ae57d91531dddc004497b562c605350dcff1c96441f7613d6c922e882652e9776707022b8"; - sha512.source = "8fd59f63eaa86ea4d87c8c01458fea16c0e470969f3dd6ac65e20954e8a63e793a58888cdb61f913fcc291fb5d2f3e0205e7e7488946738e27c23f1ac51be9b2"; - license = [ "artistic2" ]; - version = "2.19"; -}; -biber-ms = { - revision = 66478; - shortdesc = "A BibTeX replacement for users of BibLaTeX (multiscript version)"; - sha512.run = "8e78b381978835ea25e8a973fea35a653f37a23e4ab3f0a83f26808f142e4b2a91ce61ab230f7667b222af249bbbae08b40256cb82fb8ddf39c89b7dd042c3e8"; - sha512.doc = "82bbadac2732d19b750cbc9ffd76c9a26409837b0e1b9396d405b9a64a2e5e9997fc11c53d8d399f815bc822feb1ba3fe9fcb50c8e9401ef7b2c9790450ab784"; - sha512.source = "9c15f088c5c97d63b928ef10a8d1f0a628874ad664182b631e5a52407b1a034bea478fdbe1c287ddb703fd9c9d3d84a8bdb47ea09d6de25ad99aa1ef8e227fcd"; - license = [ "artistic2" ]; - version = "4.0-1"; -}; -biber-ms.binfiles = [ - "biber-ms" -]; -biber.binfiles = [ - "biber" -]; -bibexport = { - revision = 50677; - shortdesc = "Extract a BibTeX file based on a .aux file"; - sha512.run = "75f9cb374e0aee1b049e977e3ee1a855ae8f908a6c6191589ce9d9fc28a8358fedf93faa416b1020e157a8ec7a3980673d00e052a100c88724e86050ea5eb487"; - sha512.doc = "ec96364b4a9f7ab446c6b0104646e82cab1c9015e0d3dfac6a795e58e02dd3920737207d16089c5470ac32f76a61be949efa6899ca935322c0062f71f3477b16"; - sha512.source = "6c18b4e12e8eecdd03f6afae80766cebe3f826a1146c38b6387c6793abf284d3c44e7d4d6050675f01676128f1d073d8ee8f38f31a6081049b8c390b5a7813a1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.03"; -}; -bibexport.binfiles = [ - "bibexport" -]; -bibhtml = { - revision = 31607; - shortdesc = "BibTeX support for HTML files"; - stripPrefix = 0; - sha512.run = "c7245cce245740f0d930518cfee66dc513bd4b43c8b5804e1012fb95f401dbca2321be44ba6251de573723ec2e6da85fc77b9a9192004ac2144bfbeb3225d27c"; - sha512.doc = "cf01a0853d87180205651768b639ee4cf7ed1b6bb4869880489f57e37ed8fbff3e8406fbcae1d0c652b3d410f77af9b4d1932ee154c60cc79e2876014abf7b80"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.0.2"; -}; -biblatex = { - revision = 66403; - shortdesc = "Sophisticated Bibliographies in LaTeX"; - stripPrefix = 0; - deps = [ - "etoolbox" - "kvoptions" - "logreq" - "pdftexcmds" - "url" - ]; - sha512.run = "e07cd6233021bbe2f3591f866c3b3eeae083574f705da9505f6bcbb7284c243ac7f24440253c4557f0a300e9995188bf5915a42643e63eb80ff9e0fa4ffaff1c"; - sha512.doc = "f765e31a89e4deaa9578b30aa206d8f26ae7b3545a6575a5a28758263fc45eae6c5d3b5aa1233f3000f731ebed104180cf79fd051b47a79699c89305d626d0ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.19"; -}; -biblatex-abnt = { - revision = 49179; - shortdesc = "BibLaTeX style for Brazil's ABNT rules"; - stripPrefix = 0; - sha512.run = "f2c239aed726d57eb98cef8892c4b4295205d5a8d55a14b16db8bd6b42bf3f51aadb0dc767f97dfbcd8e57a1f867c5e344c604d726453113a007169edee0ff58"; - sha512.doc = "04158e1b92a2976d2a5cc107e00b5e4ab90a85799f9e55b25936fdd0e141fc2196f0f64577bf2eb8997b7ba5b7e8c575bb725febfc397940d271ecd5f56138a8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4"; -}; -biblatex-ajc2020unofficial = { - revision = 54401; - shortdesc = "BibLaTeX style for the Australasian Journal of Combinatorics"; - stripPrefix = 0; - sha512.run = "62d09153fea349881ec381bf6f2badd4453c5b2c328e8e3fa1cf99ae43cf62faf525bd453f02bb6d78e9f12ae4e35dd00c2c6f8efa015336bb13f485e8064683"; - sha512.doc = "b66f343c8456e3efb118fa18851dd08f298d5dcda4312c9688ff486db7a98fd5b3b953616f407d179480220ce905a6a6a08faa325061df9b71c6490277cdfa4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -biblatex-anonymous = { - revision = 48548; - shortdesc = "A tool to manage anonymous work with BibLaTeX"; - stripPrefix = 0; - sha512.run = "3a3cc037e3ce718c219e4bd4e380075d4a92d85cd1f490b8ffee10c5b80bb9e515f1f170b53eae033ea064cac2ddb3bb285655482e5cd65801403584fb9e215e"; - sha512.doc = "11b4a4f281068004c2bb11028200bf7f8b1461b4b40d0b52b60d60f145b3e9ea38fb672ae532d8430b0ed889df631b1dbeabcef5e9373b720d4a3c3354254789"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6.2"; -}; -biblatex-apa = { - revision = 66605; - shortdesc = "BibLaTeX citation and reference style for APA"; - stripPrefix = 0; - sha512.run = "d86ea9a83fd5c1f08bab77c12d6f93e241d444c10554918a8aa91ca4f9677531dac291962e354d2fb19668c3e59fa14e256039fc2cae2bc531c2ffaaa2ae3735"; - sha512.doc = "84f00557b32e8a50a1256d7a39635c77ee6a59c9fca1d36e571df8540afcef5cf0bf8b1dd648a0eaac1c45744d863774da2d0033223b5e3043653f8759b31388"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "9.17"; -}; -biblatex-apa6 = { - revision = 56209; - shortdesc = "BibLaTeX citation and reference style for APA 6th Edition"; - stripPrefix = 0; - sha512.run = "c327dac9368270aff53b8cc9319834c36b20701d379017c1ac0f4597cfcee56a5f9c149433e2629e2bcf708bb63d8b8706ce9c6dc009696870ebf06728f11b7d"; - sha512.doc = "4eb72746e8c627106cbf7e0a7164a30030cf87a6d91ec0afcef70e072dacdf2dcb386ff91e1ff648da178c6f01121c16277630752ce792d54812fd97cb699541"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "8.5"; -}; -biblatex-archaeology = { - revision = 53281; - shortdesc = "A collection of BibLaTeX styles for German prehistory"; - stripPrefix = 0; - sha512.run = "04c9541ac2f3cab21e412b0ea2efc284f9404f225f83f13c5ec3da2d6f3e7274e5d24647205079971beb11125c8fb3403bf09bac3ae5bbe353f6e2eb073d28c2"; - sha512.doc = "4cb13b2b394262a7c8ed212092cf65bd0707c1f0b0e8c62b1d166fc929a7ddd7f676e72b0750680908c67a17dbcd5dc1b558ef83b35c8ac7b43048fae2e56856"; - sha512.source = "0cef203b6be6246ca4664295d9b4d5403154e9813c3419c5473fdc950bfbbfb51f1b6caffd1af7891933684380e2b81756875eec9fd79ec0eeacd6f8ced7b09a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -biblatex-arthistory-bonn = { - revision = 46637; - shortdesc = "BibLaTeX citation style covers the citation and bibliography guidelines for art historians"; - stripPrefix = 0; - sha512.run = "93b48bb950e9a4bb81efabe4a3c8ee85d7056daeca88c1c1a070c5321b8caa0045c4005467cdc029f8a26b94a425235e36a36bdee163242194a5301ddd6fcc98"; - sha512.doc = "e31b7912ca34e6ec27c365c2b3e549cdfb60bd94c19b9f1cd54d35d2a1b99ef2702c3f818f7354ef4f5d3157c0e29538a94315ae7af8177de23893e598c7d439"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -biblatex-bath = { - revision = 63401; - shortdesc = "Harvard referencing style as recommended by the University of Bath Library"; - stripPrefix = 0; - sha512.run = "38075fd9040bad99fc95860f503173aa9be430317194c28fccc9ed385d7d596e9f738a436753c6d963b53fbaa714301fd2d92aa33d2ef6ce4cb6b902fa0923b0"; - sha512.doc = "e9005a72487eb7d1b4e5e7e8c024c65e2846435c8489d8766218ca6a2e77e902917a038491b9d6f1117db402397226b7c0f91805b25a9cb62ca90782ef15e8df"; - sha512.source = "1b6d136c520ec2f6db1fa99f278b0ca1a8d5b552a634012e772ed562296c1eeed1b84171ec64a4a79fe116a939108001ddc0b498f0768b0687fa45f7ca3f987b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.0"; -}; -biblatex-bookinarticle = { - revision = 40323; - shortdesc = "Manage book edited in article"; - stripPrefix = 0; - sha512.run = "8a7bfae09d95434d6db671e4037a2f1d5c1ba9cae5982e286389364ee2ff24f9a2daee78c69e529efd06be37d2e6a6f860820361feb42f5b84157dda2ef0988f"; - sha512.doc = "727228b915e6b370a74b4d38dffde3bbb7ae47973c33263bafab2aa6b640102775dbeeea7f09c046903dbfe86dbdfcdd8e0418d125a51678e603425328cd2da1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.1a"; -}; -biblatex-bookinother = { - revision = 54015; - shortdesc = "Manage book edited in other entry type"; - stripPrefix = 0; - sha512.run = "afafb9bf593dc3541ad527f09ee881fdda4af3bff78f02b68d53463a07494ac6c03ba55165738501b685e3e1d998eeb973e8431651ccf904b3ce0ea591dc0592"; - sha512.doc = "ebf06bec2cc1b083a472bcdf03772c9f5568a1482c926ebf886f02ece86a6f0c31a127d285ee16baadc4c0ea771eaac05e374c0a3de215d677b07a0335d362e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.3"; -}; -biblatex-bwl = { - revision = 26556; - shortdesc = "BibLaTeX citations for FU Berlin"; - stripPrefix = 0; - sha512.run = "ca5e20736a70ed02fbdada150433162b64b39b0d95bca623cebda8da821bfe8554f9409cdd49af7559737dbc6d6033bbf6868f5ed809b1004cbeba4bbabbc38f"; - sha512.doc = "32acf8bc10c07532e8d6174f3dd9a1f850acaeaaa5a91d14a1c299f2f5f22e34c619a41fd9ae7a90e097fd5ec30fdbce581f65560e2891f697ddb0106469f50b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -biblatex-caspervector = { - revision = 70496; - shortdesc = "A simple citation style for Chinese users"; - stripPrefix = 0; - sha512.run = "74ece2007520241b51a8518613401ceb2c37da921126f78ccfc6bb3a81765e186793a94197138cc6e52610d87a5a81a3b5159370aedd32190da2fed22346b1aa"; - sha512.doc = "f21b4c77c21f6a288bc7ea64e6959ae179117336e079ff4ef7ecf373b248ec2ad4b5c1499ecb39b18471ed33eec0fe11a0409e61761aff17ab73a7f01727ed11"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.7"; -}; -biblatex-cheatsheet = { - revision = 44685; - shortdesc = "BibLaTeX/Biber 'cheat sheet'"; - stripPrefix = 0; - sha512.run = "a974a8eeb4282f66ebdc7a57d40c76b0f2bc957249c130d4f97aa9f9749f5091745a87db277c3bef43d0f4e37790a9663949ca3bba3b28a16d37c13bd6029181"; - sha512.doc = "a2b9a82afe127d0bfb71f3a481eed3198e27ef35caa5cd08557ed35645f6209e9187f1e0c21d6fa51e6c32d0cf044c0d85373195a5f034c856fb4beec360af13"; - license = [ "lppl13c" ]; -}; -biblatex-chem = { - revision = 57904; - shortdesc = "A set of BibLaTeX implementations of chemistry-related bibliography styles"; - stripPrefix = 0; - sha512.run = "5339931e89e477284cfa76dcaa0be9ea7b3417dee4e20f8ff2a04da25bda4685270d3c001fd41f786f31c87e590b2aa4b597a517ef8086c75aad8f1e509a770b"; - sha512.doc = "17207489eb4d5ab5cf210882e6487dcf07fc30195facf27f3bab95f28fd8cfdd270da30d410579f6a8d91a1e82e7e12ff809fed47837e3ae521927b8251da5fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1z"; -}; -biblatex-chicago = { - revision = 65037; - shortdesc = "Chicago style files for BibLaTeX"; - stripPrefix = 0; - sha512.run = "dd93d36fbe11af94840c9dcd30695f5b291bc5da58b7e30e47960be42094cfb48a31a8d1c24dae41b56420f65b3b5849ad29a558387a9fb38006a9f816932841"; - sha512.doc = "e30297477d9e353bdd073b7afcfac2c890fb255e4c20ccbffea7fb3a3c6593496749f1cef0bb1d38aee649d3b054c844efb47008493f5410895a55b3369672c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3a"; -}; -biblatex-claves = { - revision = 43723; - shortdesc = "A tool to manage claves of old litterature with BibLaTeX"; - stripPrefix = 0; - sha512.run = "008cb8403f1b35a7fd077f8ac2f33f73ced090ce3d65ce678ecfe90af8ab6fb2b4349342aa838d2d4f1e78d0d87267c7b8206a3377c6490499ee9196498c130f"; - sha512.doc = "a11a4df38dbeb4c27f30b824c9f1ba230d273e227b8cdbfe5f61268a1a2b7ff3193e79d8e8bedb6f9334df39001b71a3ec78116637745679bf3d67582727371d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.1"; -}; -biblatex-cv = { - revision = 59433; - shortdesc = "Create a CV from BibTeX files"; - stripPrefix = 0; - sha512.run = "d034400abf6c0342a37e6e5de09d5eed252e80cfb93b4707f6e879edf6e190180046d28830fe382a6240d6000bcfb9277a66bf2e21b92ce9fe9deff0596f1c03"; - sha512.doc = "23093f0e8f472eac5db45026266c17b3337d478af6dc1776515417a2539ad671a67dba4ebee9f83407ee4c126cef5a6245106916188093ced89a52c44afba339"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -biblatex-dw = { - revision = 66579; - shortdesc = "Humanities styles for BibLaTeX"; - stripPrefix = 0; - sha512.run = "bcfc88a15950bce48844dfdfcaa8cc946d553c9fc31b3820dd52a9f4588c55e253cc593d13b1dda0b38153a21b93a3d9a868398296546f54b5b804c58eebaa1b"; - sha512.doc = "54699b3f4e89bafa89cec29ed14a0ac32269bd52a68dda7916961b50032fba9ad3acadebb1737d8bdffcfa07f99fd104ad3fe19f0a1f569258fb4ceacefcd1ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7b"; -}; -biblatex-enc = { - revision = 44627; - shortdesc = "BibLaTeX style for the Ecole nationale des chartes (Paris)"; - stripPrefix = 0; - sha512.run = "6aab8a819ce9a3ec2d6676ab8850c3fc6bb81e5af5c9414555581cc9d164184d18ec550fb0ca67d28d800826356f1c709144ee7d38c0cfbc274179fa813a3a0c"; - sha512.doc = "ae50544ebdf7bbf9ee708f193493ffa241ba91f0925a2bf03b6bf1ec486586fde3c630fe717f4f2904373c08a2f9a90afca86b50870f87aa0d04430554650223"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -biblatex-ext = { - revision = 66641; - shortdesc = "Extended BibLaTeX standard styles"; - stripPrefix = 0; - sha512.run = "d39e7a2418beb7b627bb6cb9566dc17553f0f33c6c720a6da760976d6f0333cc15763d79aa2dd09a70d571a3be886d4129896db14616e8e28d426cf41945da8c"; - sha512.doc = "bfca548e2bc673037efe14a54363787311c05c8518e868f7333d958f45b0a75da7d65caa9dd993ef37408414d27576ecc2cca7eb5d2e5e316f4f2f94c961d8cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.17"; -}; -biblatex-fiwi = { - revision = 45876; - shortdesc = "BibLaTeX styles for use in German humanities"; - stripPrefix = 0; - sha512.run = "72b1e41ac55403f144529fd5cbd88f51dfd61cd637bd8e6427a2714d3684ffa37774c698475994f1481442cc8eb336d8de398d55b3df28e5e1615b9cd74cef27"; - sha512.doc = "37fd37d39fee963af8567cf27cd266597175ccebe20f016c7dda699d95e6f7fd0408a57f9061b98996a6ce8eab04a8ed376e6e29b5cb41635d004d24082e91be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -biblatex-gb7714-2015 = { - revision = 69775; - shortdesc = "A BibLaTeX implementation of the GBT7714-2015 bibliography style for Chinese users"; - stripPrefix = 0; - sha512.run = "1390d40d1a34caa69d4b25d18e0f01c81974ade6b778f6daa85bfccd17a4e749145640ea66a565e2919d61c642a1c0c24e6403b3e7a3b5622e1b644b559902ca"; - sha512.doc = "18fd12ee1c680ba5e4fcbbfbe4e43f0d9163f7cf813ad20a0f264b37e252898b704a15c33c00559941d7b445b91b9652d97e46abf611ceee0885a96007279d69"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1p"; -}; -biblatex-german-legal = { - revision = 66461; - shortdesc = "Comprehensive citation style for German legal texts"; - stripPrefix = 0; - sha512.run = "0d447d700791b3e0a50fa98c14cd71c735e1e1196c9d0c23e86114942d2a9d7dfc9f769a6f8ea7aa78903f1c6bf5600dfcd7091250ef65f2a2a5295a796f8fd1"; - sha512.doc = "8b83f35af4cbc23c2e19dd35d3f798575f1df540bd4f10a9f0f7d732d5de6559cc0ad49df21753920eb659596b5e506e17fbc066fdab27552831d222da1e394d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "003"; -}; -biblatex-gost = { - revision = 66935; - shortdesc = "BibLaTeX support for GOST standard bibliographies"; - stripPrefix = 0; - sha512.run = "8d87595c133fd1b64ea7facda55a1a7a79dbedb93750e0f54abd26e5904d331200349a956eb03a67017015e85e9854e26f6753b5d2be2ef0f3e4d532eb0b7ddf"; - sha512.doc = "3ee6799d4dd00b4503fd6d7bb041d674c9e61d4ab3c366fe078a9db4a4da154601c13876dec51ba14e3322442e3174cda81212df26d2309e3517a60d06283051"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.24"; -}; -biblatex-historian = { - revision = 19787; - shortdesc = "A BibLaTeX style"; - stripPrefix = 0; - sha512.run = "bba5cedd64fcf0c0cfbf9b56c66838141917ba1e7c2f27aea5bda44261ba28366b465415e3674a2ce398812d5cefbb2727c7e5e1adf53a2d9779754849664502"; - sha512.doc = "ed87ab74fd06ccdfa0923289dcd7a37df695fdf76003aa7ab142c9d924fb69a81430ab7651314a9a391b9114dc2c2d63ffe94461bb00fd33d97ac9e8c5b2a8cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -biblatex-ieee = { - revision = 61243; - shortdesc = "IEEE style files for BibLaTeX"; - stripPrefix = 0; - sha512.run = "2f4dd68ea556dc56fde888294bd9a3368efcf4099b95b0c90e60225c3b99181de52b406a7e40a09792b6b58410174d74d774a0aeb1feb4c8bef69fd513861303"; - sha512.doc = "ef24c360fd211b79538aba8394a831a48c4b518bcecc516fee91191aad5b2eef06ce9e0e2e033134499a94dac4542803c32a207b2b71d48b14401b20f5aca549"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3f"; -}; -biblatex-ijsra = { - revision = 41634; - shortdesc = "BibLaTeX style for the International Journal of Student Research in Archaeology"; - stripPrefix = 0; - sha512.run = "040efc5b43e2642251921bcc49db1ae2e00342100d302bca24e2b7b11d1724797f1fe7aa254d01b35d1dfa316f2b0f739664f275031c498b157bb652c6aaef44"; - sha512.doc = "36cef635b4603606d36f13b489320e10fad48869b8cdbe78d6f81ca9f3caee0f3e14e408236b1f18e6c7cbf3cd414ed8eb2863058b31e761b4355c6ff1230dd3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -biblatex-iso690 = { - revision = 62866; - shortdesc = "BibLaTeX style for ISO 690 standard"; - stripPrefix = 0; - sha512.run = "e337c10a9eaee195b091deddb93fed9416912856599d31562812dc4b5818d495e6ed6443ea1c801298e351be7ae37f830e5ff23d31beba8ea0bcb682da15f5c2"; - sha512.doc = "ec7f5e962bbe119e583c8dd671b28229c39043e1aa06319772d878c8a49e466541ebd5adbab4e1b229afcbf91e9cf981dc6d0918f3358a12882bfa5d282d3a51"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.1"; -}; -biblatex-jura2 = { - revision = 64762; - shortdesc = "Citation style for the German legal profession"; - stripPrefix = 0; - sha512.run = "5fa0044f2a91cbdf550949829ccbec0a11fde1576c6f84f861f1899dbf2ebf4124a63a489f77e487194e61bf4c629772cc77aae6cb35260e8bf92e64552eeb7e"; - sha512.doc = "87d31c5f9c0ea71e28d26df03c88497e8bcf18b07784c57be3c55dba0660cf58e2113cef25e802ea6210a87cadcf2bb2398b43ffbff50519daa62b329b678c4a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -biblatex-juradiss = { - revision = 56502; - shortdesc = "BibLaTeX stylefiles for German law theses"; - stripPrefix = 0; - sha512.run = "6f78c1da8426508af972a27b6a23439a3b84c402e6df2494b333111cfddcebbbce639a49c8e900cf52b0e63724a41031b4fee82e0a17f07b479584bb66c809d8"; - sha512.doc = "94bbebfa29a491fa6e502e55236605b5a589c24920d235cbecb8c9372d1e580d586f643537a5ed6afbe6d1656f0d5ee8610cd09e3112a9e2fcd00581937016c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.23"; -}; -biblatex-license = { - revision = 58437; - shortdesc = "Add license data to the bibliography"; - stripPrefix = 0; - sha512.run = "f655338605eb7257b2746a73e4f29d58912addeb65a272b3135cd45b32035a58c0f9c9556dc9ffabc34ca8c3b00b4d8c4f44da6654d794dea3bc2a94b986bdae"; - sha512.doc = "8638454c5014f7df6c82edaf028872acd6f6a135389919178e50bb660236e63a299483f3ef4e83476e399e2cff71f1563e4a2fd111c1d18aac20273b3abbd744"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -biblatex-lncs = { - revision = 67053; - shortdesc = "BibLaTeX style for Springer Lecture Notes in Computer Science"; - stripPrefix = 0; - sha512.run = "b2ab630bfdd41150b0be50d3851c03413ca8c8fbb5756989bf4e0bd8f98480a65eadcb9b11ab879f5cdf3b6c980376ff6ca6507bd26248a9f1b42b9217f656df"; - sha512.doc = "ec622c2258d96900fa8daeef1aee6216eb933870eb09329cb90b7771b3e8668c88cfd253d4da0889ecb127421061bfa7cfbc8df27ac59eb58f7ae309eebc1f82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -biblatex-lni = { - revision = 68755; - shortdesc = "LNI style for BibLaTeX"; - stripPrefix = 0; - sha512.run = "f5d636b5cfa0125be2f5f87f41ebd0ce7bb853f7eddb4a7601f72ad42267e6456e2212bcdf5d820db3cd8b2aca058123a8dc2bbc67305cedf331d83b9a007b6f"; - sha512.doc = "87f37b95865ccc3d66fd514fa038b8c224e1a7df502e6ab59e65a37457f129b1188e510fee0f307296222d40ce241acc307e6e2d2cef7598cc009fb21a9fd7f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -biblatex-luh-ipw = { - revision = 32180; - shortdesc = "BibLaTeX styles for social sciences"; - stripPrefix = 0; - sha512.run = "e58e2522d9a4711454166c816b971bbf6bab1f8d1c7eea122933c8b7955a49ad294df410fe0a75375134b77d442bd5214ee25d56d766be7e5843e4ac14d7ef5a"; - sha512.doc = "bbfa55884d3dd3167618f6f9595c301e5faeab0a35cd058cc68922a2aa8362cb3a9d035eaea06ee43c428dd89d23538b15bd4c79c1e095ad10aa4d1d7184f92d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -biblatex-manuscripts-philology = { - revision = 66977; - shortdesc = "Manage classical manuscripts with BibLaTeX"; - stripPrefix = 0; - sha512.run = "8ac244a6dbdc725b256e5de0389ab4e4bef4f8e1c85d8c173680e66f1ba793679c8388e70e18791c544091a8bc7870459a945c6a5f298a80c530e58d071bf11d"; - sha512.doc = "eedeb99e8712337165d684c38621a0bd7829d3071fe8df1496d2347c5f0b8150af68b20caaad69c8d3e3f08c75a52ab63df5d16c48863d0ea179f15c0f55a490"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.4"; -}; -biblatex-mla = { - revision = 62138; - shortdesc = "MLA style files for BibLaTeX"; - stripPrefix = 0; - sha512.run = "f286ec7553818df5900e6d5e791d56c815711bdf6dbc3a317bd416dfae9e7b86d94e4d43cb4846cffcef9e9a246f0a059835ab6812172130a31984dbf39b58c1"; - sha512.doc = "a6e5861754ca4e1bb42dc054188777b63d11c1438f83399c4752ea849284bfc7a97943e891983b88117047f59652441c31edf82f382370ba233deafa0445c17f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1a"; -}; -biblatex-morenames = { - revision = 43049; - shortdesc = "New names for standard BibLaTeX entry type"; - stripPrefix = 0; - sha512.run = "7e847faa586655aa7b3c92d9379540b2f5e78fb50843e36416e21552c6a9e810945f5b60a96a14c35570bd0403ac29a43af29bd46e2ecb0d87e3c6ac90345826"; - sha512.doc = "c30953fabfd4717c56cc818e55f83995ceb203bfd67775aced3fe8f1f4f4a92b118ed9c40665ea28944806cb2d409a541f59df530e37274e3bc3babfbe55713a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.1"; -}; -biblatex-ms = { - revision = 66480; - shortdesc = "Sophisticated Bibliographies in LaTeX (multiscript version)"; - stripPrefix = 0; - deps = [ - "etoolbox" - "kvoptions" - "logreq" - "pdftexcmds" - "url" - ]; - sha512.run = "811bcee998c24f46ca5fb8bef9532148c97233766c30f0022cce7022ce0d5f0b5ee260ef0d7276095dc4ccba3dcf67e90a4cc1abf080951c9bd7cfa4237428d6"; - sha512.doc = "dd6dcf78d0423578a41b47ab84fee4f398a238ac15e098e09d8cee93d5d08d4af62a72d90fadcd5ddb497cf7a4c4b6017fc721c1de246d0aedc98ccb32bad111"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0-1"; -}; -biblatex-multiple-dm = { - revision = 37081; - shortdesc = "Load multiple datamodels in BibLaTeX"; - stripPrefix = 0; - sha512.run = "9f83220ae7f2576b4f58394634dea831e5759bf6560ede3244ffb9d18fbf522e9c728c47a4184a43c2dcf6807481a964d7e468e4e6cb921129440bf917925a8f"; - sha512.doc = "f33e650b2faac0c7b9d078f0f4fd9da8a58562c6a9a8b13acbb4b23001d2ecdde105c08b6b6e62f138783d61f3e071f8780afee2f170c134c275ae62ca5a597a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -biblatex-musuos = { - revision = 24097; - shortdesc = "A BibLaTeX style for citations in musuos.cls"; - stripPrefix = 0; - sha512.run = "129d1c12bc0e4e8fd339f7bc37442947dc492700a721933c9dda0b18edf78a9b402884376cb7d80893a06834f70a5d377fd264813cdf869ce5e40667f296d618"; - sha512.doc = "d2fc62bb25394195a161e47ba116f2e795e6009b5f547d09cae2e21cc0f8171c610013622c2a019438e04b6c089d17c21333e3c70b8faeb09f90113cca9536c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -biblatex-nature = { - revision = 57262; - shortdesc = "BibLaTeX support for Nature"; - stripPrefix = 0; - sha512.run = "b4b12abe904d96c9489dbdf248042ed1f1af1474921e0835027220059492f2441aace661260fa3632a65bb2c1ec0ab4e521014e63a14f7fb835293fd8191c2fe"; - sha512.doc = "c5169189b1225dba8631a0f7f5ceb5bdb5267888b2817716e23aa79bd4516665965b4343ed5e1a8e5099eb59ca64cea9edbd31613f7cb02f161b8ba561c6d4e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3d"; -}; -biblatex-nejm = { - revision = 49839; - shortdesc = "BibLaTeX style for the New England Journal of Medicine (NEJM)"; - stripPrefix = 0; - sha512.run = "97443b036769ffe3487cefa6cb5647eadfb8cdb20db0f6607028298b196a0df1ddf1fdee85e3f163a138da47f28019ab32147f65a5f7cb23b46596c96a772799"; - sha512.doc = "bfcf854e7545237dab17bfe3cd2045a1914397a02e5fa31bde2bce8c0e44c474fe0389e2cb8cd59516f4db9a3b538524f8321723a49c41233de637075bb41720"; - sha512.source = "7a2cd3e8205c9b081e9a9601240dffd3943eef31cab5339de92be61fd023f3889958292ba8698760e8d8e6cf196f306b76e34c677d6aa2074271d11cbd78f799"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5.0"; -}; -biblatex-nottsclassic = { - revision = 41596; - shortdesc = "Citation style for the University of Nottingham"; - stripPrefix = 0; - sha512.run = "a0da4bac443dcbc2c0d8b97d4eed21c171e876cdaee3699a0652c905088056802bc12e1f16965b6b2063e1ca0dee808f5f5e9fd9e5f6da7f956548fd5bf0b222"; - sha512.doc = "d0b6de2439ff0698b14781deecd260d5851b44da80a10827e0b0bf5ff21ddbe46b979dae9afe988ec1520387668a802a777fba28a830b0e0a7ce60988bfe375a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -biblatex-opcit-booktitle = { - revision = 48983; - shortdesc = "Use op. cit. for the booktitle of a subentry"; - stripPrefix = 0; - sha512.run = "4779618979e358380b2d9d2163a8e62274093bc4e7d7a959364b1980d86110233f3927a80e2dac7390ec43d0626f92311d5923657872d25bdcab5d93dd84956a"; - sha512.doc = "81990177b6cb92dde0e2d1371fa6e5ad6685c9750eac87063e336fd3412b46eca40e091bf2222631f6abcef995fd04c82a3cfd3f87baa2b069c74457edf7f13a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.0"; -}; -biblatex-oxref = { - revision = 68950; - shortdesc = "BibLaTeX styles inspired by the Oxford Guide to Style"; - stripPrefix = 0; - sha512.run = "4059920c5183f9ed337b9fbc0e56ddaed2bd7e089028729c606981dddd113e1d916f335283608774b56bc9fbda53822e1e2b9ab8d9c3283a05bbda530ff4e234"; - sha512.doc = "55d8336df5219f430dce34e2138d770557e9d68ede3d15b34a1a1b164d92d58a27664470764c45fb65dc6b5f6e1550e7fdcc9aa5f266027d3543418f7b6d2b07"; - sha512.source = "df89dae5cdd3a5edf49bd49ecb1226dfa8e9145ca9abfd10a065ea4a5f12e65b4d0dcafc9b4c6067b180029797cebdab7d50f42c8dcb0fdaa21e33fc09963eca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -biblatex-philosophy = { - revision = 64414; - shortdesc = "Styles for using BibLaTeX for work in philosophy"; - stripPrefix = 0; - sha512.run = "dad59b9acdfadb96f0be528cdc0cf5c0a89fc6d35f8d74f6d15230cf1177f4766111b6fcd21fb5aaf1694f1d0e720cf98d6228a89bc87c91124a04526e7291bd"; - sha512.doc = "1baca667f89ca22f56d323764de02e93f2ff543e68af85a8e0bf4f23e005caf251d6771012e2df44ba9df35b516e6db449037e5e8d8d54691ff68080957d459a"; - sha512.source = "d8a6ace3497436b0993f3da25a5e13879a23eca44d4eccab00377b0a62db1a2d1cb1e40083c7bd958a3d3968c35d88c0acc13ae9e07dd8b8c559a4770d7bc6c7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.8g"; -}; -biblatex-phys = { - revision = 55643; - shortdesc = "A BibLaTeX implementation of the AIP and APS bibliography style"; - stripPrefix = 0; - sha512.run = "76a37bc2d37e2813dc39b9b21cf38788e6da14e60222e4fb36aa90e5c933c18adfcbc1c8affcf9a8e70df14d516a4827599b2c5979828e7e28b77b7b3021329d"; - sha512.doc = "62fe809519f86ad46136c18247b5c440766778b61d1d406df302aec76756a2259f06ae175af2267de30c1347db511f9482503326c28e1d382039d5047a75a961"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -biblatex-publist = { - revision = 70515; - shortdesc = "BibLaTeX bibliography support for publication lists"; - stripPrefix = 0; - sha512.run = "6c93da7da5d847fedc4e383e759a8132053ba71bd3e5d33d300f1e31893b6f0c9e528e731e4973814cdaf597da2d22ba6ac4eaf9f75d82f47b46d41899e11906"; - sha512.doc = "83c98481b654b9a905d4ff6b3ec0419dad60ef428fd2b5d8a4602b73f3b061864435be3f0259f5e74b14b7c5887c7a722c223baf519bc07ac46554de58746a60"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.8"; -}; -biblatex-readbbl = { - revision = 61549; - shortdesc = "Read a .bbl file created by biber"; - stripPrefix = 0; - sha512.run = "d74bd07be5983c2731a418ae0167d99e2bdf8d1a9569186a8940f89af3b9a6fe82f641717638c693b98b61637a705fe280d033282d1e37c279aeb080c4b66399"; - sha512.doc = "9ca0584c36e7247496cd0375e0f6585695f509c4e88d29f23158c5c5c7897758d678082c9c836d0cc878423ab23d54e9a0c2b40c5b63830fd8996a35b4aa09cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -biblatex-realauthor = { - revision = 45865; - shortdesc = "Indicate the real author of a work"; - stripPrefix = 0; - sha512.run = "dec592d3f16a431286f7887af863664d777e09e5784a53e9b99247e3bae86c7928907135980d27614e52ab6bd1f1f59a3e8633ecde05d3f9b84b97c84ccefa23"; - sha512.doc = "bf0ed482905bfcf9bf5a8eda61f609037316012aa2992796c57d48b5f5ccac496dd372ef5e8c88262c8bc5b2d543cbf5f6aba8ff1833a99db6929dfbf379d2cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7.1a"; -}; -biblatex-sbl = { - revision = 63639; - shortdesc = "Society of Biblical Literature (SBL) style files for BibLaTeX"; - stripPrefix = 0; - sha512.run = "6aff57b41510357eb5d73322254fe9f8462917909cbef6124733419122e681494c9ad13966438c5cabb8efffed527b1a455539bb092b9bbe61e6ea8883f9d73d"; - sha512.doc = "e61925481c93e5a1536df91db28544d124aafa5de0871da78b069f4e1765e8a68b4b7e040a4ccdb5c3d8a16140397d33d4e04c212220ba2290968f438e4239a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.14"; -}; -biblatex-science = { - revision = 48945; - shortdesc = "BibLaTeX implementation of the Science bibliography style"; - stripPrefix = 0; - sha512.run = "e75dccc1a01975776cf94c17aad531823844085e4fa2ba54ba4f74d77ad193c26238eed602f309760f3057b6fc405fd01ec2a7a20647cd8570889832b1ee6bdb"; - sha512.doc = "ad7d8fd4e54830d77f0a155a04cd523c5c789745b5da34b8ea1efe59ffd4ee1673045dec58d28b8234993a70061337178cddda2267506366549c2639f6c917b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -biblatex-shortfields = { - revision = 45858; - shortdesc = "Use short forms of fields with BibLaTeX"; - stripPrefix = 0; - sha512.run = "be9562c2b79e1f01a110708eb6c0de165a9f596bd18ee72dd6c8add0bf380222a31ae12d86ab843083ae3e7f47a608826b985455f4c8501bbe21d4f0a0e15b80"; - sha512.doc = "e6e5e6c113ef43a9784f9000637d526f0bc989358d690d4f41be01e1e22abcb33f347421c727c411c2c02f0c11b1c60d54e7fc23180bd6f66c5c46bf29fc1202"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -biblatex-socialscienceshuberlin = { - revision = 47839; - shortdesc = "BibLaTeX-style for the social sciences at HU Berlin"; - stripPrefix = 0; - sha512.run = "f927cccda37e1ab37bd01b49f3247b688ba0186db5b162ab9b73db7be5f83d1b261bcfbf355d575a3905cdfca2421b6b592ae0763d7575957ea382b451fb6099"; - sha512.doc = "30c411b27e50e0f4ac46385a07606846ae3dd744879de257e2f2abec829e5920957d55e970255cc51cb768f3ca0aab629f30d2860e5745c4addf5aac10ecaca3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.1"; -}; -biblatex-software = { - revision = 64030; - shortdesc = "BibLaTeX stylefiles for software products"; - stripPrefix = 0; - sha512.run = "a95344eb338410804347bc0273eacda0c69804a5dd6886932d11d72879f4c59798cc9bf902667957cc26b56adc0c2f7f747e8967f85fe5602dc1e786bd3a717e"; - sha512.doc = "cfe81f1a29f49a756df7595b18ebd492df77fb7ca208418b8627f49180a0a8bcd28b779dea58a88de16b6aa6553243b2755df3e16bca696ecb8a17fc3773135e"; - sha512.source = "6ee3d3df8bbce5dfd06f64b4e959742e8cb273db8f0606baeef97750dabb0391fcf409dce603772c525a0ad10d543e476d9ec217eced690b0c84e7a547a48f32"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2-5"; -}; -biblatex-source-division = { - revision = 45379; - shortdesc = "References by \"division\" in classical sources"; - stripPrefix = 0; - sha512.run = "f7a9b6a9f8fb21a5b9f06e3904ec2147ccd21383c3ced8852b22d0cf62088be103b674466ae571ace6bea52904f6cfb79ef2982bdb16679d02ff1d260d5b3517"; - sha512.doc = "1ae3883454e6aafc91b996de520a4669a06a67cd74b9df7e7cb7d096291d5f1dbe728a2a0fbd3b5968fdebf64946e829c4722bff33ff52ccbf32d8055f042144"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4.2"; -}; -biblatex-spbasic = { - revision = 61439; - shortdesc = "A BibLaTeX style emulating Springer's old spbasic.bst"; - stripPrefix = 0; - sha512.run = "478c5cf4f9996e8b15b13a1ea08b53ea03ef731666095f5374bbca6e16c93d0f049b891540742821140e91a30a8af1fe3c233ec45df1dc777b7c408b52676d97"; - sha512.doc = "9c12f5fc1b328ef0369e7c82c2a25162568cd1d1568aed4ace480a639a38e10642e93ba20939fb0adfed2ee16b44e9a7abcb3eeb6fb51bcbe47bce7436a590fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -biblatex-subseries = { - revision = 43330; - shortdesc = "Manages subseries with BibLaTeX"; - stripPrefix = 0; - sha512.run = "37955d7e547fceb3e3856f5e367d39a4952ee0d604652963db2a54466e9d6c1effb6b2c195ffd1dd15eec5552df97419a09763bc51af06c6726dbe40a6e3bbae"; - sha512.doc = "94bf4807e0623c35690ef7b1fd879710a762630224c0a52ee4e7b4a96c27001a9653de2c7d2ecd2a12cda448bfbdc336c54bcc8fb6674782af017cddfdc8e5fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -biblatex-swiss-legal = { - revision = 64491; - shortdesc = "Bibliography and citation styles following Swiss legal practice"; - stripPrefix = 0; - sha512.run = "12781675dfedd279313be790c218e7e2fab876774207a45caf8f7843eed74a37c460038cf403d3ca38a5b849866917a24e5d61df25cc7ca44606f9b606e95a26"; - sha512.doc = "04338344d00c9df040b2aaedca7a6c8d34caf1077b9da7322ab7db6b17c1fa32da7c170e45621f5705f552eee3c2392f78a6bafa8bcb918a07452d7e696cfba2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2a"; -}; -biblatex-trad = { - revision = 58169; - shortdesc = "\"Traditional\" BibTeX styles with BibLaTeX"; - stripPrefix = 0; - sha512.run = "e14b9326eb05af2a89eac072d6c71f61527a53a813605bbb399703d2a23cf7ddcfaeb2cc77f6f7b8959e05833ae3eb343224bf126907193af557d09fc1746552"; - sha512.doc = "32d6fa6369359e15717257be6e89f77081dbd352654d4c60d55f4de9c5f522f7d222b51bfb5a1eedd7f6378343d041380c5e97e559e681bcf7647e0695ca13fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -biblatex-true-citepages-omit = { - revision = 44653; - shortdesc = "Correction of some limitation of the citepages=omit option of BibLaTeX styles"; - stripPrefix = 0; - sha512.run = "908f6544890f69b4ca405c94e68c4814c52956bb77108f8e29bb4b6b63ad7de3bc0b1f1213a612f9e0ebd94ddc054907092451a9f326476f39e18a1f81ed0c63"; - sha512.doc = "bb53e66c1aec87669be8bb608f82cd7683692cf87aeed792d1e9d49045039c15fc7113fe116e04332e8aa6331101a6e97e97f655e26cecee9636409d810f77e7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.0"; -}; -biblatex-unified = { - revision = 64975; - shortdesc = "BibLaTeX implementation of the unified stylesheet for linguistics journals"; - stripPrefix = 0; - sha512.run = "01d07011f31b2e62d6438390fa81b5b86af50a9007ef66316a8c2125c2670015fba458fbe128a409c49510baa054b2dbe6c0ed0f153366c5aab317c38f62ff84"; - sha512.doc = "56158b821a29bbe55b67520c9109569afa8b9338af18875da42f95abdf934e5b89bfd9c4bdd41de7d5f263011ab98516916d358be4f36278c6d4cdacb8964300"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.20"; -}; -biblatex-vancouver = { - revision = 55339; - shortdesc = "Vancouver style for BibLaTeX"; - stripPrefix = 0; - sha512.run = "9d31315ce02bc47869a3e11644fe3160bb7b0178f87f71a9f3c06e54326c49bb1c37daee0c02f7185ef50513afe0aa4bbf8070b91db3181a2185a138daef48f8"; - sha512.doc = "ac285c5568d8651e81680576950d593eb5247b636c1c27b0a2a4a6758bc151b51f6e2b4938bc9273cc748924cb9f6193f6b58b883692ce03fb272316b8ec7204"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.1"; -}; -biblatex2bibitem = { - revision = 67201; - shortdesc = "Convert BibLaTeX-generated bibliography to bibitems"; - stripPrefix = 0; - sha512.run = "ff86dc4068b0b3065e19af6447a71396337d9e7e5394777c1c385b714d01f2ce983c45923b460c60784024a8068ad68f05ee8dfd14039b65c2d9d9a61ef584a5"; - sha512.doc = "21a53b0f4612fc18cb43f12cd6b1d1f72db896d0c55f73928fd11399598c04973595895d7cfafa546507e19cb25811118de9d07a8e9e1e242e22bb8d17e3486a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.2"; -}; -bibleref = { - revision = 55626; - shortdesc = "Format bible citations"; - stripPrefix = 0; - sha512.run = "261773de4bfeb039d4cb3f2dd88ca7c2ae229d2844ae0f5f454e06d888d9543fbe1439490895a49bbcbc79d8335151bba2a35bf36777113a965613efdcf9225e"; - sha512.doc = "964f8547c073db2b174d9ddfd1f6d0ff06df5bc51b2050725da20687f84ca835f58ee238f3f1a9d6d4ebc1858217ed0d8b2950964cdd638012d91e94bf92aa19"; - sha512.source = "09329d9142cfeb1f70778f46d0396aaf20c7ab2a215d76120ba11147368236ab98a24ebe386f68aaf253991af4c95a320339e5d07e956132d9d3d08ede63bb79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.25"; -}; -bibleref-french = { - revision = 53138; - shortdesc = "French translations for bibleref"; - stripPrefix = 0; - sha512.run = "f768d01206a35a6ca18ba777fb159294f566be365845bc82d344e9eaa3dd7cd0c1763564b7e17d4a1b851330405cfb3c383019b575276bd9b12d084c4845ed89"; - sha512.doc = "e72ac2b74f01df60c998896b76013eec56a3d8cda8df2f26f92d05d342760204913d7d70a6c8f63680f54bf3c84fb1c654c213ec2356dcf189bf9e134ce4de30"; - sha512.source = "f70a734e6391ff8681a6e58c3161ed5bc894a9bff26a6b0cedd4d868acc0412fee0069ff937a247b129186c8d73b43305cb6747678aabfd0537c1238c9ee2305"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.3"; -}; -bibleref-german = { - revision = 21923; - shortdesc = "German adaptation of bibleref"; - stripPrefix = 0; - sha512.run = "094177e505025eef5262b876fc49cfb09435b653c87fb1ee7453650e94f098bfbc7f5c78684849b3ce0cec2019d85a0413728397b5ffaf32bde542d8fa86222f"; - sha512.doc = "c3c610fd8a80ca5a0b8de6ce4aac887a7d16f01e21d845fad595e1d5d6069d8e89459dfd187cc458d21bf2247f4f2c7fe72233a12c8e532b9466f2ceea283360"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -bibleref-lds = { - revision = 25526; - shortdesc = "Bible references, including those to the scriptures of the Church of Jesus Christ of Latter Day Saints"; - stripPrefix = 0; - sha512.run = "ba3c4e41b566d0a26bd9f0d11d8e776fe04a18aac451435ff0283ff273971138407753bd6806f34708c5a2f0c1b2581c71de46bbc2e0c8063c9838b3d946f2ca"; - sha512.doc = "6fd81f90d0c94644231e911ab44827b77864842a3fa91127fb53114179488e5ffd66a404a1b5afee513e0cd3f4c83f38cae547e6dd6484403926c4c46b5cdec7"; - sha512.source = "0494b05fd3881cc273e8232c398e80ddca4c1286b10aef5d341c6c3573ee40cd5ad1b7a2ae0aab9fd505f94a4bf98643453648b7cc52fda09f5e705a8b4da863"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -bibleref-mouth = { - revision = 25527; - shortdesc = "Consistent formatting of Bible references"; - stripPrefix = 0; - sha512.run = "5ae9356781549cb5ecbdfa33085ede0fdbcb7f131d55484153484c777f88e23cf965507afde803e7bc5b775aeb416b9ee767815b5dbec444a3d21be18c7445f4"; - sha512.doc = "a904b4c9c0c8f3ff1feaaad8d1650b383ff0110bcf463f004938c51bce84ffc860082bf3e598922eedf0aeaa664ef0379ea3304f6dc5b681679d9545026c6bf4"; - sha512.source = "5ad805eb19d6ce8fef804117b462eb1f1dff887c3b6326fd42eba88c7a218ada84992bc419d889f04363ae9b7073b13ebb5f7a002225191fc22c2a2cb5824514"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -bibleref-parse = { - revision = 22054; - shortdesc = "Specify Bible passages in human-readable format"; - stripPrefix = 0; - sha512.run = "3af7da247ff7f9708ef076a3fe110979e7ff07be0afb08597feeda9ae31e60a66eb2bbbb5da015e10566e83a116cc9f2efa56fe91a57717230fb35bd004c209d"; - sha512.doc = "08393d76bca59dcbd715cc443ffbf7a1e15894ac6a2963d0ce770c96974c14d42283fd9237c215fe454ec4403a21387ba9dee52ea1bd93b83ab4a13fbc65157c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -bibletext = { - revision = 45196; - shortdesc = "Insert Bible passages by their reference"; - stripPrefix = 0; - sha512.run = "3c5170b747c6426099c021390f7ac226ebf9dbe42ff586c698b3489d47639fcd4198a4cf49261bba9335caebf8f39488d65fe851d60d9f3c2cc2127539ef080a"; - sha512.doc = "ea38659b5b2bc252760937ecf21d4ac3e8986ac8be6afdc1f2205d84696b8da55e02037bcddb24de389d54a692240ae946ab3e41a0a7913015da4d7b5e12da7f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1.2"; -}; -biblist = { - revision = 17116; - shortdesc = "Print a BibTeX database"; - stripPrefix = 0; - sha512.run = "02f006139b475cb5d4ec2bf85ec098de78f5bed7242ec693317ad4e01acb62a8c5479f295a8a1409fccd41b327daa75a2639b67d9838777b8355e6bd40af478c"; - sha512.doc = "b5bdd51d7acb738569671f13dbd25fc7b98a8e2e03e324e9501a20ac34cf1ae3578fcd622be73a80467e47a64a81f4d897c4e167b07a5ff5d06635b09dbec51d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -bibtex = { - revision = 66186; - shortdesc = "Process bibliographies (bib files) for LaTeX or other formats"; - deps = [ - "kpathsea" - ]; - sha512.run = "568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d"; - sha512.doc = "4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9"; - hasManpages = true; - hasRunfiles = true; - license = [ "knuth" ]; - version = "0.99d"; -}; -bibtex.binfiles = [ - "bibtex" -]; -bibtex8 = { - revision = 66186; - shortdesc = "BibTeX variant supporting 8-bit encodings"; - sha512.run = "27008a8ccf05b7f48f7668ea171c9d53063fc26c09ac4507a3eaa86eb22b94cbd70ba6c2b7a8d439d7978a3860be37733dcbc17f7cef930d06dc5a45a89c95d5"; - sha512.doc = "c305fe0afcaab072ee07542b8bae8475ce205744500f81c6de400b2bcd7ac05ff65a025301319f80a668ed35d653105c0ec0ab392c0c893f5d76802a1806bd04"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "3.72"; -}; -bibtex8.binfiles = [ - "bibtex8" -]; -bibtexperllibs = { - revision = 68910; - shortdesc = "BibTeX Perl Libraries"; - sha512.run = "54e8413435420357c6e4acb1ab28a6aa602f1a222ed4b3350aea498a3516f48cfec0d04e9951a3ea0117184855e32d891d2c04af98231763eb1c5f7bd1700aa5"; - sha512.doc = "e2a1f67710cbb6b732f5dc9b39e4ced5150792c06d0455704375cfd6def134dfbe54a8d92dc1dd88896a6d5405e662dceb15f0282e9d82a9d2f857a91a8b4fe0"; - hasManpages = true; - sha512.source = "92cd4a937f3783305396a5705bc7a0d80371a22405865be33e1ff1caef7ec0a479ad58d9d80d45218273dd21541eb3167ac0cffba8ac16ec5d46ada1ea4e6145"; - hasRunfiles = true; - license = [ "gpl1Only" "artistic1-cl8" "publicDomain" ]; - version = "1.9"; -}; -bibtexperllibs.binfiles = [ - "ltx2unitxt" -]; -bibtexu = { - revision = 66186; - shortdesc = "BibTeX variant supporting Unicode (UTF-8), via ICU"; - sha512.run = "fce13fca4fd3d65b04a451365c5df50e4990bb62b0e8f878b712e9062f7d240a33ca6cfdbccd2ad2df0179be1cbaf2421ca32bdb745f3b9d9c67829d4c739916"; - sha512.doc = "0f200681fd81074a5f23477ff99ac9e08e2d123056544edf7bc5b7b7645c22b74b66404028133037b5e47ffc4ff7c0059a1ed375ed0d3e4d211632c44f37072c"; - hasManpages = true; - license = [ "gpl1Only" ]; - version = "3.72"; -}; -bibtexu.binfiles = [ - "bibtexu" -]; -bibtools = { - revision = 67386; - shortdesc = "Bib management tools"; - stripPrefix = 0; - sha512.run = "72472e2c51a0b984feae71dd1bacd72880df1438406301219c80f1dc6a8702b0d7c1e2bfad7ffdbd025e58c14a069335d4f5d6f1fe981d5bca259a6eba94bd4b"; - sha512.source = "3507bf7da29aad37a43cdd1ab2668908e227a2002438fb161c822fbac48be0e6b120070d6866fa553205ed404375d160e3a8b756c0681fb6a3e3b5600ac7a7b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bibtopic = { - revision = 15878; - shortdesc = "Include multiple bibliographies in a document"; - stripPrefix = 0; - sha512.run = "34e2a644cc4472f415522e6e798bcb1e2d623afd4783b07f4904405c63296ec912fb6c1d03f80d51c37ab81944cddb5b4f3678a22a7151d89376ed9aa343e9d7"; - sha512.doc = "5849fd57abb9bd847833993e660e342a537562bea9fba76376f3885d3bd09360c5783e4f04828137b43c076b635a2d566d908be48287c3fe6645c2abcba06652"; - sha512.source = "2b6d11221e625b6d568874d12cbc7b45d074ebe2bb973d63fcbb9d85689a4c27824f3eec68fcaa46f0de707767baa516c3925ff0fc4d6a90518584847844ede9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1a"; -}; -bibtopicprefix = { - revision = 15878; - shortdesc = "Prefix references to bibliographies produced by bibtopic"; - stripPrefix = 0; - sha512.run = "1df7d78498b6de233aea92cb1b18f73893b8cab723fb614a9fe895e5131639c1b4f4318cbe103ea4d9308e383627873576664f0af3ac6fd26aebd5b8b0036379"; - sha512.doc = "473a7db7638f471fd87b1cb242a3a593e3ff0aa4586c1fbe906cf12f2dd866a27ab50176b01d3f4158cdf0fc263fa54ce16eb63c797392349fbc90a8422c3b2f"; - sha512.source = "ebb06f55dd58c5948e5586ba29fe3aff33533eb3b044e07be71da0f20512af21d9808ae7d970f168189bc84ccb9bde6a19e935d7d6280e929d169250d3781a3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -bibunits = { - revision = 15878; - shortdesc = "Multiple bibliographies in one document"; - stripPrefix = 0; - sha512.run = "5658d508b876a88f3916a190a9090d66f2dbee98260af8d23c8358d0708f27fc80d4cf6c348b1f6e1ff196e7de6d5567e371ada640a9a602185611fb09e64ddd"; - sha512.doc = "888e5a4c1863c15112ece5763b01525a1a74f97ae1270495a41d598e73c4583ce2b9e28030b3054dcfebd60b038fb2d32938d6be947477fca93014fac70676af"; - sha512.source = "37cbb8ff6443757982a97bf6efa90881807712ebd7f0ce2975ef4960ef74e0541cea9fbffd64f765b6631378f3d21e2ac308ea1554709b6c2582b7cf7485398e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -bidi = { - revision = 67798; - shortdesc = "Bidirectional typesetting in plain TeX and LaTeX, using XeTeX"; - stripPrefix = 0; - sha512.run = "e589f50dbd63df9d711540ad90b53384e52a5a0b353e2ba050657af3273f3dd7b65925101465d89831ea133504701c6d05d01ef959fcaa2570bb1188384c621d"; - sha512.doc = "09ac7b97d9d1a93b80e8dac120cd6e70932ca9239dc94202449a476979caadd596677a210b27700e3638c3cf0bcecf98c4f903ea228f94545a2cf5cb206abcc8"; - sha512.source = "1bdd170bb3065027106944aa23b99311482fd90a019a6bd1e87044f03a04f672e0b01a31d4d09e213db7b228718f7e9ad15d77acfcef7412af8ae180935fd77c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "39.8"; -}; -bidi-atbegshi = { - revision = 62009; - shortdesc = "Bidi-aware shipout macros"; - stripPrefix = 0; - sha512.run = "5b16cfee9c71927cff133db3b967dc835634553d0980f74164fe8996ef86c3529439e85e00678219879cab41bde2027f3258b2862906b58634713e4b7d16c515"; - sha512.doc = "05b8118cbc59f06aeb87ab3b5b6a7f7a14dd23543c9d45621352ceec58998601a97af31bb6b0c999047efb362c24508f769be3c2e483c21a814b8ff35bd0bb96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -bidicontour = { - revision = 34631; - shortdesc = "Bidi-aware coloured contour around text"; - stripPrefix = 0; - sha512.run = "10364edc592375f69912888945e6d555df30627498aaae409b727392c64cd4aac386433119578a7a01a48bd0cff84aae33079593219b282feb9d96a68bdde78f"; - sha512.doc = "a1a3f9692ea2e462305f8c6db432586eb76d78cef5fa0e9057cbe5766ad99e25c560ad658569a92d1885e373fb6215fe2f9bcbc1c69b46c3088d36eb92e1aae9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -bidihl = { - revision = 37795; - shortdesc = "Experimental bidi-aware text highlighting"; - stripPrefix = 0; - sha512.run = "fd82ad18b96cdd782fddab8739e09978d08fc37e8c65a177bde930671e102c9ffefe7465fc766860068188f6b9f8222119ac791f07223f79e9840f25659ea3ea"; - sha512.doc = "c9d0503857f2cfa960e36872757afcab17b2631caa8a33112ff2361694939774052a5249db62d21831e19c17826f422853a78c5522094706bd4208d4c5223019"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -bidipagegrid = { - revision = 34632; - shortdesc = "Bidi-aware page grid in background"; - stripPrefix = 0; - sha512.run = "b823a646d97c15ad9beb3aebeb7b2156aefc3ffd7bdec813e9cb2481e137cd661936c57bacc3b8c42509151205dbd4096329b5cbec25bd06698b698c59739551"; - sha512.doc = "615d87ca4c29e0a30cf1eee08819b10419a2f399a88f2bfed5bfb6eaf7b1adc8b64a2ccac5da7bedab4e4b951e80488b97203b9960980ca5919f653cc4218996"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -bidipresentation = { - revision = 35267; - shortdesc = "Experimental bidi presentation"; - stripPrefix = 0; - sha512.run = "a41f98c3f009f7f8de8a41e386cc829c55650e603ccaa8e7e381fae45be2872e0b20e66b68e4d7ef8110abf7c9f6661865d49f7c0cf3ca4ae6f781c3ef5bc0ac"; - sha512.doc = "56993d41b237d25e00536926b3b23f1b1a6940aabe4f636df73cabd5ec27252de9fb8ff17d872cec3cda7a0a3b8b13013ec77477dd89ebba83a8406da3ee144d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -bidishadowtext = { - revision = 34633; - shortdesc = "Bidi-aware shadow text"; - stripPrefix = 0; - sha512.run = "bf9a75be6d1f37055c793a16b0a4d019579adcbe14a93b64cec5495e4d7c8bcd8b8c6d86906714f8aa47be5789209a1ce78d19e8023b44b9d52409b281797310"; - sha512.doc = "ac2f47ed1a5535ff1f0030c38bc210b2e3905bd46ce7024d5237387faf87be6a408ea35648f83a2ad7697ec09a91a4cce1aebd32c3446756adf1955bfa97f7c3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -bigfoot = { - revision = 38248; - shortdesc = "Footnotes for critical editions"; - stripPrefix = 0; - sha512.run = "f56fb1545e0a044a143d1a257b9784b5f5dcc56d68bbeb52f909eb928e9d749729135f0c76b3af6dd0306add550b440d32aee21c33e70b9b48a5a82220623702"; - sha512.doc = "f5935a5ede836798f3eab1ff61d528870a07be712047a64aa5af5576a1c6032e9d88fb5c42cf216e0f9812266f9a8562b5290301446c654dcb46146d7b60a16e"; - sha512.source = "75316aff3c594fd904adec7cadd0b24aff9d527479d0c59f3fc654772e29cdb4cca938fe5fef6e14b9928fb25f37fdd3f7a894a81f95810813875c4fd419dff6"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.1"; -}; -bigintcalc = { - revision = 53172; - shortdesc = "Integer calculations on very large numbers"; - stripPrefix = 0; - sha512.run = "c801e5953008e8cd8521886496238f4f7a86a6c65a160255beb3fd6a41a48dd7bfa2da438f8e1ae4c79b51f769f0e07bcaa7c3c8aa6e1204ea656aca3d1f4620"; - sha512.doc = "f5e7cc163157e429906489cb3cb94d8694c01be3c720e03b85bb24c7bd757391cf09e08f3d88df4ae7485978042e9d408fc5af0d93e016c82912479d40457079"; - sha512.source = "e829ad1e3a118e8fd0ea0e632740ed49db65603d6fdcc7d40126a048db5cc0f73c9f4aa64d81902794ed308ca31a153044a56ef37ac179918b24be71ae168f64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -bigints = { - revision = 29803; - shortdesc = "Writing big integrals"; - stripPrefix = 0; - sha512.run = "23f9a529af214771f74c6921baf8582b6a3c5e170d0fa511c260f5dd3fb6cb6194ef4082ed299dc0a3ff8e413981a36b594b440e7bc5512c7d2732fed9eb7a8e"; - sha512.doc = "46799d5c6758657eadca7fb30d214baf47c237b63655a71ad19e188fd54b664397babbbc5cf6d9897e81decd027dea1e0d1a6fea97384461ec8976fc19c7fd8d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bilingualpages = { - revision = 59643; - shortdesc = "Typeset two columns in parallel"; - stripPrefix = 0; - sha512.run = "e7d92cd1e11e1604f94b3a825953ed1f876a39dce3dd383e7ea1e4e166b9ffb21786911f4b408ab5d53e6f770225176251096ca9df0a187feb530a27ad167b5c"; - sha512.doc = "bcbd9f48dad1b84c96fef7d6b5e0a343a261a20ff35434c5e01d4b200229764adff383f2a718c6cbd89e4b208e6de1c403fd7c614dc1c247bc5a344cd3f3d504"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -binarytree = { - revision = 41777; - shortdesc = "Drawing binary trees using TikZ"; - stripPrefix = 0; - sha512.run = "b2204194393811994915604d428e0b537bf871681ea42a93d1e26a74d01cdee3ccd7817e7705cb6a3b9a1f2a97381e23226db9d671ddc36beb5c478271099cc0"; - sha512.doc = "4ef9f7db1d9cf124112e3f3e5c6db7e0b53bd72a5d7674a9f0ac7c471b88ff72309705b8d3942277a93883ef821907f0119d4dd3f645c8caa098f363612df68a"; - sha512.source = "ff1e8ce1d07c2011624086ae5810220af3e28f19eba4dff9e090e757787797afded50d937a7c1f503eb32bdc91cee2b0b1b42486381b725e57a127e5751ae5d7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -binomexp = { - revision = 15878; - shortdesc = "Calculate Pascal's triangle"; - stripPrefix = 0; - sha512.run = "61cd0072f766bc4abb1e3ed828d06c0e0ae6fb74902ad86e6c4ff3279ddd84386bbb0b1d669d9e71eef362c8d50577047e6076b174ca5b54da8680a43c5e1715"; - sha512.doc = "9f8e24377ef858e0b3ecc94dc87eeeae08931084316034ea5e3de822ed8b6a65c4744b744a547aea19d3486bb6f2b04f46f1e7ec81cac2470d16b7134885d355"; - sha512.source = "96ac7f02535a36555dc773b096324e821fa554423dc1d3fbb3436042a2ffa63e7d28b8d872b03b961143178aad40b6d14ef0be7378be99782e94f957889489d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -biochemistry-colors = { - revision = 54512; - shortdesc = "Colors used to display amino acids, nucleotides, sugars or atoms in biochemistry"; - stripPrefix = 0; - sha512.run = "ff6e61f48eaae649c5b14b60e85c46743dabc6fb841f3f2bdda0723a5a6cfb7a45e21e48574e4bc558ddd436474c356c5d2f767cee1299da3ff67db5c70c03d0"; - sha512.doc = "0abc9a2d3318627f861be23bd175836efc6956147fbfc16f9ec84b4ff5f137f7910a12ec370c3baf3ad2dc08ca2ca197bd02e371ec258e9538eac4f11233f9d1"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.00"; -}; -biocon = { - revision = 15878; - shortdesc = "Typesetting biological species names"; - stripPrefix = 0; - sha512.run = "54676e4acaee07609c379d387af4f06b45a4bc0051a3333c250555536114b3862da73d70305b1f62adf7afca2b4a2157cce8afd9e20f10e49b01d4c2ad351cdb"; - sha512.doc = "c296c8402129338295a3043a66bab91a499b29703f7ecead0a045e0820ced683a4c25168ecdfc184c07282904afed3703b31f8ca707492a913de7c49a351c322"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -biolett-bst = { - revision = 66115; - shortdesc = "A BibTeX style for the journal \"Biology Letters\""; - stripPrefix = 0; - sha512.run = "35fa3e7a46706c715783b10997888a45cfe6f84b465562f894eb9914915e608f420b631e9d4e7fabe3d3d83424c089288c848ee34cae5cd08d1d778e4ad64155"; - sha512.doc = "2a839dfad925ca94f26bada0d14fecdd7c096d3c99e903a57e4a1d093b2d1b9cf8770974aa1ac51baa9759c68e2a4fdd6efbc861c5bdebaea4cb523c00662487"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -bitelist = { - revision = 25779; - shortdesc = "Split list, in TeX's mouth"; - stripPrefix = 0; - sha512.run = "a2022ccc4f45f7a911eea4e99557764770b4e6f2ba0333e043fda2419e29d93bac40462fd36568354a415a9b27204a38620e6191fddcdb053f8956aac5747cbf"; - sha512.doc = "5c3186464aaadbf269b26321ed9447e8a1633ca9b4a7b323da692277ab074f15b6c39df866eb41955dbd6ca8b0ff76a115786f3273fdb293bfb79893dfe0de99"; - sha512.source = "0dfbf3dc2ad3b11ce91f1f5f6949f3d8559e0f90044abff431af556560382b5063a96e661c7e95667f3079a7386df85938e937743e2f185a13f4d8a2259fc4eb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -bithesis = { - revision = 70136; - shortdesc = "Templates for the Beijing Institute of Technology"; - stripPrefix = 0; - sha512.run = "d5b2a6bc2fc272a452a3e8f7e7c05244b701d77d409d026456826d63d11d7f5c0296f00980ab06326d0334c47fe1b2ba4f8397379e35ba3a8a64e7ca1071a3be"; - sha512.doc = "8c31242c162f0d0927b95385cad88d9214294c270674ae5d1674f03e825e9d09cb93b26aa480ca7e38043038b9bfdfd7f50acd14e2f5644f038db451c2dc09a0"; - sha512.source = "0d35711be0c9f09810429a72611892e2d0ee4d9bba4af3ea59379dec238509c057cc7ae1efdec4b531e78cfc7a96ef18309c374bc48408ff066ff7462253de4d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6.2"; -}; -bitpattern = { - revision = 39073; - shortdesc = "Typeset bit pattern diagrams"; - stripPrefix = 0; - sha512.run = "34a0ade2d1110a15618b2ecc7f46a413519a0864a2e5cd1e25eacb9dd76cc66b35565b4b8c015780fa1d3dc88e2237ae7de33c77e29fd5428758a526959625af"; - sha512.doc = "d1fd1b2b46d7846804c9163889bf3a96cda2e11e35de2328c9043f99ccd9d0778710219593565ec9231775e1404d713edd7998e3fa909ada7dee35333137b56f"; - sha512.source = "8c5860792394f85ab87d2a3ab234496a1f550a24f98a5e2f8f4d815b24e4fd3e7d0a1ffefac3912536d22cd39fdbd91db013b1c8e05d4de92aca47db679fa7e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bitset = { - revision = 53837; - shortdesc = "Handle bit-vector datatype"; - stripPrefix = 0; - deps = [ - "bigintcalc" - ]; - sha512.run = "b1c9121312404d3daf6907623972c35e0f36cfb4197e589bd937c145506cb5a2d9d8c1f665ae3b4d3ec093e55bb146c0b67cd0858425b704fe29989b9924ccb7"; - sha512.doc = "a5a3ba9d27dc3d9658c1d261f798fdc5e6dc4cedd85287ef77d2a0341048d71f8575d4fbd711e499233e0991c51765953931d87d40dd22fa2a4e8ecb9f2a8dab"; - sha512.source = "40580c17ac81137d533eb013ed14bc092281b354ce42883c0a3c33ee7843be7ebed0ce642746ba9e173bedf8ee6f6c243b65e692ef2a50654ada23e323166c89"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -bitter = { - revision = 67598; - shortdesc = "The Bitter family of fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map bitter.map" - ]; - sha512.run = "217870554e509c3bbfb70d3da9e3ccc4fb1013db4508034ace728ff114e31eb9f56511b1e89c702d21cf1b522ae799601a0908ffe70a3856aee29c595a22483e"; - sha512.doc = "2bff9fef75632fb43c59cba04ea531eba8420c3841a0343cbb1d56995a8c322beff036da61d494112e9c89f82d367ec3bcc9e39ecbe153c99dc012cbc8c15bea"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; -}; -bizcard = { - revision = 15878; - shortdesc = "Typeset business cards"; - stripPrefix = 0; - sha512.run = "1575499c7118a96f3273c5b8d68e25a20410daeecbce48d1e6355039b97867b34a06c40785052d378dffbc80b862beafc06b9fedf62254d8b31445d8f95cdd29"; - sha512.doc = "f529ec77b370def29ad77927170874dc02af37bfb9f57a4e1383b5adaa93f6e59aa33df06d40a80e2374db514f55e2f115e7c8f22e4c92cbd3cb621d8a735bdd"; - sha512.source = "ea5567a5b3f2a8f70954ca9b5939cb4f9cda05dd128da4d6592dcab25babf284d5fdb2c6af7a31e181f871802ab267fe012d9da3df963be19d789c6984c88cd5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -bjfuthesis = { - revision = 59809; - shortdesc = "A thesis class for Beijing Forestry University"; - stripPrefix = 0; - sha512.run = "e017032edb4e87ae31318179de5da789cbe2164ea5679d69e928a138242adb1afa8dfb3f8b9b7796bc6d5bf21c143f51e931656439a451ddf868c77c7a7ac559"; - sha512.doc = "657e45d4faf201c2d878c5323e3fd7a283bbe4bb4f868b1413e9b8eaa1db00d03771a4d4211e23549121c5dd480cfcfd8ee8e0edd7e56615a3c941c100465c44"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.2.1"; -}; -blacklettert1 = { - revision = 15878; - shortdesc = "T1-encoded versions of Haralambous old German fonts"; - stripPrefix = 0; - sha512.run = "eb7d531fd91c6d46145c76a08678033e20097805b3a911fa85194217104e071c56d3842cee83c275a11cd4cdee162aee4630d86025cab76806f20e19c975076d"; - sha512.doc = "a1f18f4adc7f26b9e71db6f171ddb4a8eb15912cf57445110a9da52eb4e0b017a0ace85ddc46ec2df36e73ee3d9bf8dee087fe4467f46bb2bd7f708108585412"; - sha512.source = "0951e374a22fda09a3fe51e3a7743874c774a756560fb63a68aa199ad2cca674ee87d1dd30b98709b0e74e018e0eec878316ff303575eabb014158311f22a273"; - hasRunfiles = true; - license = [ "free" ]; -}; -blindtext = { - revision = 25039; - shortdesc = "Producing 'blind' text for testing"; - stripPrefix = 0; - sha512.run = "3baf7b9db502824ebf1cf8892cafb189654ad0a91a8cfba399e103b417a91e4f137918b73201fb5988c8dcecabc557865e190cdf77af35e634d0519d52715795"; - sha512.doc = "290a4c76fbeb8003c6972933baaa95e62b37310594e459e27083326977d370c1408de95eae44d05d848c61eb22b555792e5e38f4a0b70267d6a87c0314268501"; - sha512.source = "2ca8cbd44a56c36ea66fbad415524697009af4c7e39164bb43d9c689743666c05aded6042393bba6d658a0be1df3ca5ac64a6e8da2e9c726fbcd1500239c4532"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -blkarray = { - revision = 36406; - shortdesc = "Extended array and tabular"; - stripPrefix = 0; - sha512.run = "5ed66db84619cd9130e68e05acf617ed0007db9ea35895e31ad96b543f7d6a01fddf00304f05b0fb71ec9484556326ebad1d895b81b821b9f19fe6ae9f3ee12e"; - sha512.doc = "81f1d5b5609531deda3475eb906b841d33a6e01ee49c54102474d852856172954d943ee02648fd1ce74d5bf4030db8d36c7b6786c9fe3105f3be08fea36fe207"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07"; -}; -blochsphere = { - revision = 38388; - shortdesc = "Draw pseudo-3D diagrams of Bloch spheres"; - stripPrefix = 0; - sha512.run = "cf7a7865e3e994f2b951a24018b1b1b71ce2b61542751f495dc14ebc4964a1f4a2833d95bde9b8920d4a4fd60ccc03760e66b8ab64f6b14ff77b9206c98e19a2"; - sha512.doc = "3a9706ba73e8da7280495f9d32d32a38c9119bac9b8497e7e1bc69a704fde2552848d60ab0ec175544046fdc06b3e8887b4eaeb1c50a5796144cd56e4a44d9e3"; - sha512.source = "d5c54403afb2cc4db7c5340fe6aaec54da4066f6e9898cbf1f1d2ee3d4ba9a001699e8e32cf38fd87b355c1adbbbcb649635f9abc07976c2139fa6e851a987ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -block = { - revision = 17209; - shortdesc = "A block letter style for the letter class"; - stripPrefix = 0; - sha512.run = "0dedf4b50238e3f12c3d17eca19e4640f2a36511fd65fe4d0baf4f221df279a5d9f28024cb0e20f528e32921e1d6b4c785071210e5ff6471c73e42e58faf89a5"; - sha512.doc = "77b8c5b6949fb7eade5eee082be1c28433136b8374d45f255a80daa0c7a0340a3154a9f6f174fc52b25c252f1b5a2304b32e26c6d6a2f9af033569d7ba602952"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -blockdraw_mp = { - revision = 15878; - shortdesc = "Block diagrams and bond graphs, with MetaPost"; - stripPrefix = 0; - sha512.run = "86bd39051095fde2a99b232b1139c4c196467d0e1825b3c1c73bd25551a55edb6417a0810b20c4ac3d53ff82519364f2ac72fde3845a750396a4f6a8966c73ef"; - sha512.doc = "01fc4226a952c76b52726d1217649d9d98ec708163e4a9b997e36f505b385ed145182bca747a2b5334cfe8b4663d010a699664728c5be05cc4daba63ff1f3c00"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -blopentype = { - revision = 69080; - shortdesc = "A basic LuaTeX OpenType handler"; - stripPrefix = 0; - deps = [ - "gates" - "texapi" - "yax" - ]; - sha512.run = "6cb45600033a679ed498e59c2045561683edb0193cc330e2650a83cdd37e18daca45db700f5767492800af78f365c6f1b03766d92ec759b3448287c7b378bd63"; - sha512.doc = "1159bcbc24dd6a860909f0b16911b3a88e3deb2bcc0670b85d31ac82a34b5e991cf73f305c8517a8dee1088eddc3c4cb02d8c5778d897efea254a715e78de294"; - hasRunfiles = true; - license = [ "lppl13c" "mit" ]; - version = "0.0.4"; -}; -bloques = { - revision = 22490; - shortdesc = "Generate control diagrams"; - stripPrefix = 0; - sha512.run = "06b18467956f6782de7e0dad41f66a79e1c7dc5c3ff007a8970f24740dd5edfae0e375288c3510a8acfcdfda7b568f2316827cad1b6a006789afe8a31f829f4f"; - sha512.doc = "fe37018f08820f21bf188301d0145e42b50563d8dbd8f9b232e6fa1b7eecda931e8a42d40f47ed7cbae24235833eebab874e30dd24d8393dc728d6fcb10057e1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -blowup = { - revision = 67640; - shortdesc = "Upscale or downscale all pages of a document"; - stripPrefix = 0; - sha512.run = "52cb1cbef8c97f265114decec953472b2a8804659d60ce3227aa5904827dacb1cd6156c189a6e75aacb2051d8237298690c6ce6816ce9425fc293c8e32962236"; - sha512.doc = "c038502451d1952927f9b9e1648fed009452d00a5d9db06429f8968ec453cb7863444ee0e41073dce5c0c4990c2487ebd818ad51bf72d1e7a91257ab76684729"; - sha512.source = "632342966fb59de8f7ccda1fc7062c691fa2829462c67d4edc7cbfbed3dafe4888979baa60a502793f0db88343c1b8bcbb5e8cf18727e854b4a8443ff06f564a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2.0"; -}; -blox = { - revision = 57949; - shortdesc = "Draw block diagrams, using TikZ"; - stripPrefix = 0; - sha512.run = "4f874416f3115f9abc5514d805952d576d3ee597475ad27523990820d485a3601e43e503a23d948a875db343ce4817eb7fedae6aef48a78a38a1656478190b74"; - sha512.doc = "a9b8c964c8a43d9d6b0c4b5555c2c555246d04ad0c0b1209ddf953958f52af8e2ce3118f573d12c0bf727a2545a326bd284e61a27afd417cb672480e1025a5ac"; - sha512.source = "7c8ab912484f90d5aa8f406e2d3c6176eb8908457cb184260c600fd72fb91c5ecd179ec4d80c55b6eddd7607c7fc36e3ec51af5fff31e9352b17360c470e8405"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.51"; -}; -bmstu = { - revision = 65897; - shortdesc = "A LaTeX class for Bauman Moscow State Technical University"; - stripPrefix = 0; - sha512.run = "e8e2af194ab8dc10e88543cdd888438d6dabd37651fcb331df2a2372c863884ee3ff77344d14a79608ef6e87d3b82042497f26045db3007b4cfc85fa33831667"; - sha512.doc = "da816655e19a91d152a088e92078a9ef2c35f4a7b379d63e353eebb7b4047d459b73e5f53537e9be5a80d56ebe80e1f20db1305fb21fff14fedd518a11c494db"; - hasRunfiles = true; - license = [ "lppl13c" "free" ]; - version = "2.0.0"; -}; -bmstu-iu8 = { - revision = 61937; - shortdesc = "A class for IU8 reports"; - stripPrefix = 0; - sha512.run = "7d4d2f575bf4a3a14024b478610a1d3d1fb9a9609492890ce4edf9f3ed1e34abd99f519d3574c39347f35f8bd2bb1b19569ed6a3652443063942bb0900877ba6"; - sha512.doc = "142cceab83b83c5a0eddde753f67b44cb2e881cd01a4de1059606e02cc241d6d55f271d525db523f82f6ecd68bf6bb09dffcb15adb1b4b080b5701e041ec6f2e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2"; -}; -bnumexpr = { - revision = 59244; - shortdesc = "Extends eTeX's \numexpr...\relax construct to big integers"; - stripPrefix = 0; - sha512.run = "a868239dada7f16d52c5d16705ad796d6bc536b1943b5c0bb9538fc72242f3fdbe2cd579367e9230e20e2b3e53725ba8cf25d7d2aaca660a338d7863f4661d46"; - sha512.doc = "a367968a29bfe0d1496a8d444d6809a1ddb6f91031f1aafed30fdd2cd8ba929972554b186dfc897b273cb347f569922b7d59d3c472b385bd2ac1fadfadaa122e"; - sha512.source = "447c6dccda5a51d86be058cdbfbd7e38d46964754df21f155f8a41892dd0492efab2fb391b7144a0c5876cc5852176fa14310f78cf4fc8e4ffc9d28fe9f75e87"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -bodegraph = { - revision = 68785; - shortdesc = "Draw Bode, Nyquist and Black plots with gnuplot and TikZ"; - stripPrefix = 0; - sha512.run = "65c14de3d529c5f439ffe83dbeeb6551152bfebcaa4f6ca8f22bb29340f23cd2541fa7934a5c0163f6b9a604d76c7c2bda3ee6ac1ed3fca04367c08e5f580f39"; - sha512.doc = "e9dc19657f581260a59f141747bee7b15d96352eb4b59a2decf116e1287a980b106bfff220642e4d1828d65201484e657d8f4513faf7998c0ce3938a98484ae1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -bodeplot = { - revision = 69742; - shortdesc = "Draw Bode, Nyquist and Nichols plots with gnuplot or pgfplots"; - stripPrefix = 0; - sha512.run = "596a8cca1eeaf49acf1f24341601b4b7b1ff64f5df72a811738d57e2d0e5644cc9f6096b15825f208068446dfd825f9fa61406451234669df95683f746770d44"; - sha512.doc = "d0eb443a98da30d66becca6e48e4e66b4efaf31d0405ff5d559738018f0c760a660175978f603f9c648af4ba20942a58b82c45f5a5446f39d7bfa05c944b4db4"; - sha512.source = "84b487c782ccbc9f8a76331a7a01f3059d39052f440db82ba93ee40f82f420f2ebc25ab8a9351deb0a1261603d0866a7acf89a457bdb2c0b446d541a6bd78163"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.7"; -}; -bohr = { - revision = 62977; - shortdesc = "Simple atom representation according to the Bohr model"; - stripPrefix = 0; - sha512.run = "257faafc089c9864a7878e9690a96ef8a5468fa4a310232609cb769c4bd80c15ee7923ad73feac782cda4690f699ab3734dbac05e39588a34fca576fe8dd042c"; - sha512.doc = "0ffcb6071ad55d9e6a38c9cff810b625fcd6eb08e476e9ac7fb0bae73ca5373517de22a536c2348ac8646b62d70167521d70dd46327dadebfdb9e69facc0f27a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -boisik = { - revision = 15878; - shortdesc = "A font inspired by Baskerville design"; - stripPrefix = 0; - sha512.run = "48403f4b18cb23e7e16e3cbf19d066dc7e1576f4d9ae42b94a4a34508905f5e6e2f8f60f2de7881a29b8525c86a8120a76f1f66f8b9ea047da0a884637b1bb9e"; - sha512.doc = "c68e8434fe456c5e58a6ebb9e744c81dfba5098c0fb12024de750f73022e300016a424bd1ad9cc85c3122c9a0c863737b2e27f2b151667955f92ebbdc060c6bd"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.5"; -}; -boites = { - revision = 32235; - shortdesc = "Boxes that may break across pages"; - stripPrefix = 0; - sha512.run = "894f6d2484e9b72a24816c34e1254ae8a6d011610770e40590fdc3ed22a24b6f655418694de256a6522e4024f4df033c017f294743113256583ffb8445a63bec"; - sha512.doc = "22ef96e0f64b4d42b978abbba806f497fecf686d76b159bf3d06aedefe1097569053a11ced6c3ff2c7d05f975345957af0790f2035fa3af396b123da7d41cd7c"; - sha512.source = "682b3e64f47f71849853bb8752e342ca74a8937e5f1f0f75ba3428ec3e32593339e5f0c90695aa112edd2f607dc4e1c80985558f354b6181f73e5da6cffee8ad"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -bold-extra = { - revision = 17076; - shortdesc = "Use bold small caps and typewriter fonts"; - stripPrefix = 0; - sha512.run = "cc12de98493fc01b9a59993ad32e646102751c3023e64f66255a1b66505d3cc2f82d71ac53b4f6691e083bcce3037e521a35feb09cd5019d662a6ce56cc55032"; - sha512.doc = "4bb27a63f711421437385c2a76f26d74cbfcf6ac5bd8811bf4ca5a0da354608dbc6ff295c3943edae1701fefece397ec356361176a9713f607c9677b8222b7af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -boldtensors = { - revision = 15878; - shortdesc = "Bold latin and greek characters through simple prefix characters"; - stripPrefix = 0; - sha512.run = "3c2d17f2bf8ff48638540ec5a3ea57bc835227291fdf6580747a87dafeed6afa4f49b91a67154da35dfac9a405aab2aaed5bbef1ac188291319a972b4e50ebeb"; - sha512.doc = "657bdc4960e2d40621520240840ab4252e927baca704da0388e3124938c55de834e59cf8ff3d900aa294ac366ae7b1367909cbe885de08790d51380726960146"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -bondgraph = { - revision = 21670; - shortdesc = "Create bond graph figures in LaTeX documents"; - stripPrefix = 0; - sha512.run = "171233d7850335c1819bf1f74e0bcd1c221e5db73d092b0efea71ad35f71b16e4f240c3c791f9022a9e21ab7a2bb62f20ad06609051ecb54fd0640add0ef8381"; - sha512.doc = "0697b880e1bcd51c3b5c2e035a15f852f943ffb86ea2952b460f01e42ced2e4fad8f8b15f32f58cc7771c28ca9bf66f2302914bf08d6696b6d952d347199134c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -bondgraphs = { - revision = 36605; - shortdesc = "Draws bond graphs in LaTeX, using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "61ed449d8fcee24f383762eeac54949d709fe3fbcf06598acb8849613c68ce2f445dfb4cfc7871bb6c61bec65ed45e8888dadf036f299a4d5c0bad13db0e16ba"; - sha512.doc = "223448f91f0cb9f7b032439aeddc85c132f39bf5ffacd058b76c85db825df15bb47bafe333a0ae8afb089864fe966973fbde6da0e02e1fa46b8077e3f84eb6f3"; - sha512.source = "564af88ac0098d102bfc84932159dcb3df8e06ab30e849d7e039b13ae8855dc6093230e743bef13750a464eadfad54edea4f1a548c14e2df79e03b1f79754254"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -book-of-common-prayer = { - revision = 62240; - shortdesc = "Typeset in the style of \"Book of Common Prayer\""; - stripPrefix = 0; - sha512.run = "d8a2f2c007569e8a4da6150592fcc67a4e60083a2af93d15a8bcbd31b9b2d56c46d28b9f4c708714e894638b22fd9a4013175f45082c9982a05c8081855d7d9c"; - sha512.doc = "98f7dc43da85180db2a3f00462b02b23977dfb46b7a9af0d4bb97a2bbc2babcb906a1762b94ac9196bc6ca5fe11bf0690e1e59d74ea1f97f16d9d747e94b5020"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -bookcover = { - revision = 65394; - shortdesc = "A class for book covers and dust jackets"; - stripPrefix = 0; - sha512.run = "83a7b06e32e082d810fac22a842f646b692e75a4e0ad67ba59a1d39d0f0931970b615708900b139c7e11f05bb012797d2664808929ca7ba8bcfc37ae75c878ac"; - sha512.doc = "f58d3796696fd576fec15770cbe04d14e659a1d8e6570ae39c17760686b75cc941ccc2dcacb923fca4c2ffcf671a9ee1d63f348d8fe22058078eb22c5a1fdbf4"; - sha512.source = "7e40a0b41b7f46570925c6fabedddeea2b52cdf8a4844db4c9df48f12029424c08d8777227ce119dc46bc27dbbefe43284d581bf5c7f2aeb2b6d24ba2c83e401"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "3.5"; -}; -bookdb = { - revision = 37536; - shortdesc = "A BibTeX style file for cataloguing a home library"; - stripPrefix = 0; - sha512.run = "3e44184427ce346930b35fc2ea3b508d9f32c1e89cc01d66046e271d61e0bbfde54b5d18917b09acc159f1d657f9d32c29f3086b04e4f1dc6da0cd21a0df3da2"; - sha512.doc = "2449b7d32558665b297e57eaff6529932289e957e0a77d8a8ff84e9614b53844a2684a7b23a62ce6684b6e813223c2c1293bf25e678a1271e3e3cc27383d12b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -bookest = { - revision = 15878; - shortdesc = "Extended book class"; - stripPrefix = 0; - sha512.run = "e49d8f0959276202dea2079df1a509dd296858841f4fa2df235743033ba852b856e5f2a9a14176fd986ad1e431ebd3581469e7ea30093b5a01b7d23b791a028e"; - sha512.doc = "ad51d3cfff90ce83c7f6479f9f0eb49a54613c585561def33529b301e00915d7a8f94fb62660b3bf5bd87104651e7333c3a9b620bbfc1ab7fa9fa510e16dc15b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -bookhands = { - revision = 46480; - shortdesc = "A collection of book-hand fonts"; - stripPrefix = 0; - fontMaps = [ - "Map sqrcaps.map" - ]; - sha512.run = "8a341131397637618acdb9bedc835a4ea98f40d55a8a2b312ac820821b00a1f059f37cde2aeb3f5b715eff9928b579a531c4c12d3bdbb3a7629a50d363f1a4cb"; - sha512.doc = "b5901beafa849a52afaaa7cf09ebab327640eb5ad1c627bea5f8dde2c98aaf176f23f0c9460e7fb2212ce9b4038800c3a3c572830d08d059a04d3574d1015a75"; - sha512.source = "4df12247bff50722ae11636ecc0071e03d8d296ea958d2a1b84b5b2952f35d890be66af4b85dcf1fe2599e787e71c1b9e7f727a8be9b4ec79eb1bd6aec21925d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -booklet = { - revision = 15878; - shortdesc = "Aids for printing simple booklets"; - stripPrefix = 0; - sha512.run = "be6bc46fa76c0a1ecbfe199b1a1a6f0cedf14a8d583e9ab8ffd75d4cf8ae22e404b289224ed8fa6cd9e143119760d50131e97228cfe75ea56d5ab2f540e8ea8b"; - sha512.doc = "fb6d74ee03f303433e61fe1afe297cf5e343f95e3834fbdee483522a183d403fb6bac8bfd1d0ca687c448d522d370f5216caba2b52b066ac1657b8dc2fc3df1a"; - sha512.source = "7b63195d047c6d05cec02af6d44c77e9fbc0a198717a5ed3383f6d662946cb8de9b7659916ab6d7951eeeedfe00abcd68eb006012de3e083d767acffdc0f3cbe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7b"; -}; -bookman = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map ubk.map" - ]; - sha512.run = "8bef9b6e467384a2b5adc6bd61ed2e410f026f6ee867a5a62239c55391ebd6eb5e521c82f9bd0e4de995591458ec32f98ce821493a85113beaeef6535b938ff4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -bookmark = { - revision = 69084; - shortdesc = "A new bookmark (outline) organization for hyperref"; - stripPrefix = 0; - sha512.run = "0a95a2839415393f430eac43a0cac3ac1c4397d68b037167d0e66595e82cda6ef11078bee63855ed1de66191f2f241418705ff819dbe02ac4e3c68ba88eec52d"; - sha512.doc = "1c6a24efbee2e8734955b40b9908a8f5af95d6d4b8aa330c72ae7dde5c9fa374af6bbe7651f46c87bdc11f69a38b5d81d03152eb10d0eddc334b87276fddf252"; - sha512.source = "d9087686dad4b3d68e8520888fd1787ab707c0bb196777144865e2a9419112a3e3cd25064ed4c0d0d5a31a195c84d4793d0063e17037c74ce3eff20e03def946"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.31"; -}; -bookshelf = { - revision = 55475; - shortdesc = "Create a nice image from a BibTeX file"; - stripPrefix = 0; - sha512.run = "e6ab2186784aa9905053d15311b18def1c669a86db4a98033761c2f41fae97199baec02c41c32cc6ef4ed9ddb6ff5413f69a7ad1c9cf5f0c4c91d45297eb1af5"; - sha512.doc = "38e04eb978152cb97a15f1b6120ba9f062224ed4feada0347042b420d4baa9c66e453be8d4abf4095ba3403d11281153dc7e2494d34864a2ad2e1ac10a1b4b1c"; - sha512.source = "53076f7ea7a15ade58fc6ff23643515631f46368d67f9b55d67212ceface35834f10724fc7fa8dfd75d7f852bef9a6570d3bc5600805c79f7e24006e663e1528"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -booktabs = { - revision = 53402; - shortdesc = "Publication quality tables in LaTeX"; - stripPrefix = 0; - sha512.run = "8d7e46297d19f2e683f5c16a13577fc582cba391cdc8a15ad395a6b44072a5b50216ec9e9a8c727c1b2a36b9275ba9bed10baec3aba9d726505955af01d48c3e"; - sha512.doc = "952ff0f30cf7679c09020cf2bca542e11e3a64c88956e87db6289acfb03879609f66c8beb019a6639716462aa088bdff7df3330d60a5d864f25de164affa4c51"; - sha512.source = "cdca8f3e7f7dd99b87da76f60b1279de6efa8af666fc99e11749c21e59b77148a40aa197c0682ac1085a4d971a26b8cb59a9d2794fef81063006a220caf91ba4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.61803398"; -}; -booktabs-de = { - revision = 21907; - shortdesc = "German version of booktabs"; - stripPrefix = 0; - sha512.run = "25a46153cea4a6e94c77cabf3afac74e642c7362f7c852725e8443de8ef8873c5a9d2dab3fc3b083dd7382e10d74e71b40b40b1143afce1646e853899c0ea2c6"; - sha512.doc = "1016522eb74332542a9497f47fb0ea884c7d8b3d0a0630b8a6604bdc41ee08d29d963fcee0d643a8260d2e667c0b39edc74f4998ecbe66bc7a45ef23ac78371c"; - license = [ "gpl1Only" ]; - version = "1.61803"; -}; -booktabs-fr = { - revision = 21948; - shortdesc = "French translation of booktabs documentation"; - stripPrefix = 0; - sha512.run = "62d4aefc19ff86a60b8fc68a5203bbc2dd2c86ef2f74d5dc0d2a664ff342c13077f5f71a4991704e1d9c69587e4ecde629e5432ade3695efbbc388714fa3c268"; - sha512.doc = "eab2c83e6d81a601ec98ffe43ed4b5ec71e17c6ec42c26c519fdbbb3c3e82154b01bb569adca65dbf540ccbd7263cc20806dbe901ba44204b84d07d235b07bc7"; - license = [ "lppl13c" ]; - version = "1.00"; -}; -boolexpr = { - revision = 17830; - shortdesc = "A boolean expression evaluator and a switch command"; - stripPrefix = 0; - sha512.run = "677a397363b80126e45609d125ec2cf22b3ef144216e19183bcd48c1f0ccd6e2e079fbb0a2e7ac03f094470c8c0bc64ae652863aed970ee9fc75a9a69b60c618"; - sha512.doc = "6351bf2d3382c5a3b9a07a8458d7f158ee3bd0e72c96af5f2f985d28a40859f95ae7ae956e5dbaa1ed93b1331322ae1e8901ad3110f5e74024efd831e29b6b44"; - sha512.source = "561daf8eb74f10987be27e884023ad443f24e8d48b573dbe8eab5e958c2ac9f2319b293874050c7d7f56ea3c22f31eaa57f3101c8878b466ad8938018427e765"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.14"; -}; -boondox = { - revision = 54512; - shortdesc = "Mathematical alphabets derived from the STIX fonts"; - stripPrefix = 0; - fontMaps = [ - "Map boondox.map" - ]; - sha512.run = "0e1cbb6ec227a2cd17852e71f16b4972de18a076fdd4c4416ffef1416f3332fd351036fead4d82a69b5aecdf392bc7e1af85ca5bb1e44c153d25cc86ccfc631c"; - sha512.doc = "72e77b36b79bdad663db8c707daaca8d324fd3f50edc8cb7780a641f5d0217d3fe4c2b758c1775de0ce5fea3d44e9ea08e745df51485b4d1e3de11e2a98c74f0"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.02d"; -}; -bophook = { - revision = 17062; - shortdesc = "Provides an At-Begin-Page hook"; - stripPrefix = 0; - sha512.run = "8ce41fecd2befaf448ed238d8bf643362f5a945b7391d18b2698c006421b7b60ce4d886e09dc579eef12cfb459f49247f7f3afebdf8b590e9285c608d654ed60"; - sha512.doc = "7d8ce0b7caffa4e16539154ade5a3df6d6b42b75bc521643473ff568ef5c65c3014fb22053b353a917d2c4782f378bc765475dca5d20b3dc06ff02c0dd2a63ec"; - sha512.source = "ca7e5fc30d23c022e4fec8414c9ef11d2acd5707ad781428021f8a828c6c8b891674fc6eb372a0dc33944e2a54adb9b86645529ff28b4438c31d8477cb2b3a6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -borceux = { - revision = 21047; - shortdesc = "Diagram macros by Francois Borceux"; - stripPrefix = 0; - sha512.run = "e4658e7a672caccd24832b31b0635dc61ae5ace5297569a84d9da981eb37f6b9b944bc33c1e964c09c7042e3e74f9b3067795fdad508e52e624f2bfaf439559e"; - sha512.doc = "202e6b476c5c6f48ea2e6bdf2710d01afcdd9a02669d220bb11bab8fa920f41fddb8aa152a815045ce9d0c92b761f90ab34cd426ba62cf26282d71696f00f03f"; - hasRunfiles = true; - license = [ "free" ]; -}; -bosisio = { - revision = 16989; - shortdesc = "A collection of packages by Francesco Bosisio"; - stripPrefix = 0; - sha512.run = "659cd163c28a52fc12651b35b8018d0df7e4fb706739b090167689a7199a8f9ca3bc3376ed3a5b6c076e9242f4f8132dbec6cbeead499453fa5c9cbd2aecce38"; - sha512.doc = "7fc9a651f6845643fecbb9f0fff150fec2a22273accc420451c2c5dbeab6e40cbeb9b51a32589787c005fe479f626111214bebadb217a238baab07fa18d8c92b"; - sha512.source = "494ff83253abdc9f0d81b3ee36f1d860938b1eb8a7691ecda596d31126624f3272ba65685a9436a5817b93a786da97e6bc6702249630d71f697ef394f801584e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -boxedminipage = { - revision = 54827; - shortdesc = "Framed minipages of a specified total width (text and frame combined)"; - stripPrefix = 0; - sha512.run = "697cc00b10468f515b5ebae838d623eec58085269c98897a5c2c4ea932ec52ae819110612feb84b6951ff391bff9309655abf6a41e13da156e5ecc52c015431b"; - sha512.doc = "54209e9e5fb8da8db65901c729b78aa3c9b536c3bca4d40437848287d8a07d955a84ea0f13d93e7e702c47c6bf8bece3b6d3f3026d5f78568205746c9009b968"; - sha512.source = "718499cb248fb8a98a9650a78ae377f9aaed9318b91c4417c7690201504366e073e80615106156087686273f9f86adb58f854cc758c2329ad99103f788ba0164"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -boxhandler = { - revision = 28031; - shortdesc = "Flexible Captioning and Deferred Box/List Printing"; - stripPrefix = 0; - sha512.run = "8aa988155d5115e2fbfbee113013cbb4d32cebc670229104cf96c2920c81bb23245e2365cf31705b67cf72345387a275c83f170a777129ddafdf6cb7558bb077"; - sha512.doc = "15b69a4d434be9561cbcf45a5c3c68ae9560fae35ed2256cfcb4c2bca8ac172a8bd0d6f7335644f586a9b3da65948b9372ae9f7ec9bf2c0d43b572cce5af20bc"; - sha512.source = "20e1dd79907029b015d9c6d85c80fa907efc490a80db7f0e871b6b379c1370982fced3e3865a9fc0c7492a9d3631d163b98177dca99deff4a78d7f2ee354f2cd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.30"; -}; -bpchem = { - revision = 45120; - shortdesc = "Typeset chemical names, formulae, etc"; - stripPrefix = 0; - sha512.run = "3359bc429ec00bdf3b26810e373fd9bba8f562d4782d16adf2706b59ec1cd153f0fd565c26319bac0cf5065b6a2ea99ad5cf6461fba62a7bae8355fad7d8279b"; - sha512.doc = "c8edfa3e5fd901ef705b6b55dd2278eabd996e2b3aa76ec5da9c34c07db95909b67f31990684883edd256f7a5eb7c29450886472fafbd0ff91f8e81abc4dc93e"; - sha512.source = "0f2629325312dc8e7d05d593bf97ddba9b18d0709d0c29fd5df2b7e5077a15624d98edbca24e20c039e7e72bfc21e676c7bfdb6d29f7c84efd4c40f41d3d930c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -bpolynomial = { - revision = 15878; - shortdesc = "Drawing polynomial functions of up to order 3"; - stripPrefix = 0; - sha512.run = "370b9ee803390f51da2cf7da4832ce9a51d923420908ffbf5dba21a2380e13cf345413eb81465e0acf86bc4011ec0bdf8cfcf5ac0cdf62cb3e88b2f2b6a6edb1"; - sha512.doc = "2778eccb795d4543baa16966d55ab68a8c2c6f547d7a544aafec365036d9805a5cbfce97efbd25d0b39329814e95f6a2e18610f5e83a4d755a31dafbd651ce0b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -br-lex = { - revision = 44939; - shortdesc = "A Class for Typesetting Brazilian legal texts"; - stripPrefix = 0; - sha512.run = "e4eede34a086ab025a9918798feea2c6b8b19d86782a6d93745aa82d40258e1619433eb445d0b3c1335dcb195689bb76ac8142e6c65618cea6392e243dadd915"; - sha512.doc = "3d277aeef55721a833cd613c98852c33f7ce22a8034e2fe62952409cffe1ea49ebe1f3b80f91018ea51fadef226939a14e103884dca19227193a32d1e3ba3110"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -bracketkey = { - revision = 17129; - shortdesc = "Produce bracketed identification keys"; - stripPrefix = 0; - sha512.run = "ecdf6f5c6cfa46a3a0eedc9eeef5bbc59cc05a2a831249787ff70fda7d69466862c18dd7ed7a440b8b2bb93c6a08225c7a97bb2f5588d94548d9f6b626ec36aa"; - sha512.doc = "db067a4ab9ac087f565d184c48a90800e68ddb25f5f78146ef1f65bcd3cfb1d0adea78483ca8e27fb9f82bbf26d23c5c16ce735aae194f4816ea73eb993ef099"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -braids = { - revision = 69398; - shortdesc = "Draw braid diagrams with PGF/TikZ"; - stripPrefix = 0; - sha512.run = "e92513b484cd34387542fd39684141d6bd24c99ac4e99791498e75e28c814b9647f9762a5803aa127e9c5423dfb93ac9126348d94668bd7e82c82b54af482f34"; - sha512.doc = "b8a26f24d450b8176a2a6d094e3f0e66faade539266652319c354cc45a824358fbcde416582fa34917de422d0a86f782858247b7d457b50353ec4803b9024f91"; - sha512.source = "c47edfa15e2d11bb06d984cce5735699f2fa2bcbe5ce09abf7f4220bcb904bbb5a541fd0ba9479d941b909ad9cf4df3374fffae8fe6a90fbbed9e80e26def3f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -braille = { - revision = 20655; - shortdesc = "Support for braille"; - stripPrefix = 0; - sha512.run = "04893a3664b10fa1d5b912751e51b6d4a596821535da87aa1f2c2c5632e1fc60278435fe9deae4b0fba8296f2e46015b27b592721dde26dcc4acf7e3bd672a4c"; - sha512.doc = "1cf6922ffa0785adb8e7e7fa5cfe134b206d70d012eb2ec1bd40bedb72ace43c8a17b3e94b16635473d425420f362c49f1b509796d43ca0d2aff0bd9be9f25cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -braket = { - revision = 17127; - shortdesc = "Dirac bra-ket and set notations"; - stripPrefix = 0; - sha512.run = "dc5f931ce9adbb3e8398cfab83402776d92018945172c7c17f04772f3253942c6ebecd5ca0f3d23f0befa87327dea4a3a9b90528bb7409963f04d9b856186562"; - sha512.doc = "9bdd3cec0da91ffd13d556b9620e9c502a658374657e2821141191000a2321bf030edc9c32641b5ae6c52acfc7266c377a8f4dfe4891cb616f8d4f6a377d9ee0"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -brandeis-dissertation = { - revision = 67935; - shortdesc = "Class for Brandeis University dissertations"; - stripPrefix = 0; - sha512.run = "96cabbbfd22e26d8aff3b9c54c5f9bdb9ada8a036af3761171c7ec1384d4429bd69c5004e16e87098e5c6355cd029e08371f41484742618f9090fa2c919bd638"; - sha512.doc = "23c1a0d8fa47893017e657f60ef9a7ea54e6f587bf164872b4abfc51f04074ecd82d3494b1c78bec76e6e848bcce20c61af0ef7c2e9b24f91f657a678b03eeaf"; - sha512.source = "b0d4a1712c784aa20e159c9c6827cb61b007826ef445981a196bb5e4c159199b76fb59dcc6ff03dc67b0328eabdaa821b5ed6ba0773c17ef7025b171bd6f746a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.14"; -}; -brandeis-problemset = { - revision = 50991; - shortdesc = "Document class for COSI Problem sets at Brandeis University (Waltham, MA)"; - stripPrefix = 0; - sha512.run = "fc5026cefa87e1ab248d9d26466a05e11b112c75bc3908c7e6f123a1436d5f813038176e97e1ed290cc99f93dfc8d024c88c1242b9bb41689bfa0a29153db9da"; - sha512.doc = "0f6857c1ff226d797d6e0dc96bf040e2393564121b54d5d9b1e9e35acb01b7663441e0460cd117a0b015cb768bfdf3f40df142ae93d5a0d77f9a84f31c3e45b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5.5"; -}; -brandeis-thesis = { - revision = 68092; - shortdesc = "A class for Brandeis University M.A. theses"; - stripPrefix = 0; - sha512.run = "8d2c00167dc8c755d5d29f66c36d7d70d4fcb8fc1ca66e5c4008d702b38eee9c8bbb4bf9e7129a69649f57f31b25b532d44f3bb7628421aeff90e89afd9ba2e7"; - sha512.doc = "61bf51cd01c13bf698b9466573af4f91357ec77a265db2166881c1f01112ce0a17d87b74f5470aff7da42bc39bb77fdac0cf20613e379bc168119ebdafb85d2d"; - sha512.source = "0cb20a7d0b841a2d206ea4d8d9c0e7077d6b94c841d3bf8372899707e2b63c20d0cd6ea60b451abc6e1e64ec2c69771bd6fd30203e4b994d8b0e6779abaed515"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3"; -}; -breakcites = { - revision = 21014; - shortdesc = "Ensure that multiple citations may break at line end"; - stripPrefix = 0; - sha512.run = "13fdad42586a361b4e01999476f4d92ccc0fbcca4ee2663153b9eabbb08ad571dae6631306e9fc590d94f3f02af79519de30a78ed35f737004d86bd62b76786a"; - sha512.doc = "2184e40db7f4a01113ba1040a62f8213f43bf34202a57a33abfc6291e84b01cf27298442f0f636289892d02764f1000ff3542f2ca6e490e0eaf6d5bab247b3f4"; - hasRunfiles = true; - license = [ "free" ]; -}; -breakurl = { - revision = 29901; - shortdesc = "Line-breakable \url-like links in hyperref when compiling via dvips/ps2pdf"; - stripPrefix = 0; - sha512.run = "fa1fa9e3ac50f305ae5b82eb63997d1674b3f640f36d502a1000b439dd52dcaf6b539d153a2c7022f3a00fc0042bcfe341e850ed6b01f7058b1f8f6fd92b4d9b"; - sha512.doc = "38f7847274cbee0a6e7c536a982d0110670cf6af54bfa99718a862e1974fdd839f6ef6871cbe2c40bcd0b2a9036c806eb2b57c8adaee583ef316da367ed854f5"; - sha512.source = "9ecbae9c483331d636a522f67e5da197e4f647daff0a0fe81f4542c7248934c662046c8e61bd10fadb44144918cd508f09c57880b9c1e0c6515cb2dfd35e52cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.40"; -}; -bredzenie = { - revision = 44371; - shortdesc = "A Polish version of \"lorem ipsum...\" in the form of a LaTeX package"; - stripPrefix = 0; - sha512.run = "1e5629a2e6e6099a319d8b8a1efec83262780c70a57c482f66a33a48722bcdb18fb891a96b6b6f29c54d71ce581dd1c82decdd22ad74d6ef61765fec3f8c3614"; - sha512.doc = "29fba5bb48aeb2353616cfe9a8dd4fff90c164c10779b8115958733470fd47dc40a567212c62315110a5a7a51363c9f917c4984583d40177037d6b0803ce66fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -breqn = { - revision = 60881; - shortdesc = "Automatic line breaking of displayed equations"; - stripPrefix = 0; - sha512.run = "c280871916bf0689794cba9640a7666a0f7b295635b85d99d08f04cc0c4cb7ac82552360b0c8b3d677b138779239c4ac4a2583db26fe194870c0c97a9a53395f"; - sha512.doc = "70ab6500b714c0e91c597b43d934942c39c23cfc9993702b6eefa19b8c9027aa0e7eaa55cb48413e2cb42e468167492e7a401380c1cb4a711daae364ae01283b"; - sha512.source = "aa4922ba1ebcbfe00716b02b567da4b17ab1b0d22cd5fe8332d147496f93dbe0a94e9e38964b13b6b4944ccfb2ce49bfb32ed5602ca1f147fc99163eaedadf46"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.98l"; -}; -bropd = { - revision = 35383; - shortdesc = "Simplified brackets and differentials in LaTeX"; - stripPrefix = 0; - sha512.run = "d6bcf207cddeb6115cab45eab12d48326f067df2fec21386ca29282ccd484e572ee4b5420473079b033bf2b085e134fb42b76b3f18d5b56b47ad765c62b07023"; - sha512.doc = "b9ed0de353b0b0e6d7c8e48f3a20c5ee88a0ee9fb1873ced88e89b9c4d73b20701add802442e69aecc419a2c6f433ca12ccea9130abcf895a5568f7b2d66d6a2"; - sha512.source = "b33ad62f68eb425381db0c6724fbcea32b1e37f8dace6737af6e996b7103d19eadabf60873ff367feb9c3a69743d219ce41d5274b8c533d5b5323a971d01a06f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -brushscr = { - revision = 28363; - shortdesc = "A handwriting script font"; - stripPrefix = 0; - fontMaps = [ - "Map pbsi.map" - ]; - sha512.run = "f8c7107b0e98cc6e402ec8ee6f5e6f9a1b8e0d046dddae9486e4ca68327f370a75a0f90000939828605334b3ad3c5caaf5e541c7933c5545fe3e531066fa650f"; - sha512.doc = "41ad7b1afc7cb0f4bfdf0bcff4c1d85f3d9603c3d48ccb62f94a6fa2258cf3f60f03ee1b4b5756d85a77ba4ff9afddbccaba1c4bd5b69d85ce4fed206aa16b1c"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -bubblesort = { - revision = 56070; - shortdesc = "Bubble sorts a list"; - stripPrefix = 0; - sha512.run = "8d089fe6eeb4ae2e8c77de1130b0d51bc50c4b89ff4d1d26065fa93d740de16644856db55c38efa9e199c2ccdfd6906ccdccdb9676f2313f92911c5d6e06246a"; - sha512.doc = "a9cf0d74f8a713d381d1a06f0a9f658c9074a4aa9027113e47f29ba926f835878e2aa7eed9dedd948e9c5f3b50345f82ef9b4f35ac7fdd08ba041e3a00ac20b2"; - sha512.source = "9cbc0f682dcc18881f4aceca601a2dcf4996e597f4341d3459af336bdae72938b9aa4402fd88f2f7a4de960909bd25bdfa3a01296a8b2e3283809fd63a47eab7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -buctthesis = { - revision = 67818; - shortdesc = "Beijing University of Chemical Technology Thesis Template"; - stripPrefix = 0; - sha512.run = "7c27a0f982a2727c8ad7dc98052f48ddb73d37ff27b89eb53f8e33338f67fdb99dba2cdbc843cb628ea725fb7ca7d0188ec5f53c6b863c4707e8b174c8b788c2"; - sha512.doc = "edcf0ac0b5e9ea86df731fee1d2388960b997b7278fac5b88dde6e3820ed3ff488c6ab156dfbca169fb9dd11cf49c5ba5c17516ac2f874bfb3d825426f0fa5ad"; - sha512.source = "bbb105930a740ffecc9c2f4ebf3a3a206c49c3128b44bc9d96c97ec0715da1fe152bab9ffdbb3a3d8fd3689702bb7091056dcccb4b428d54ad0853f9ede97ada"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -bullcntr = { - revision = 15878; - shortdesc = "Display list item counter as regular pattern of bullets"; - stripPrefix = 0; - sha512.run = "886109fdce6a936d22b829ff769b130a445876073c73b2bc1767610302ba8a40112938311a138e1c93a0495a6e7d5cafa8d3606ca3b2fe48af442e023195ab93"; - sha512.doc = "ab01cfba0570bc565d8b40945aec5d87739a0826d5c323c5ee960c0d3c7c3135ef2c8b7878268b415ffae3beb06fbc6af48656e7c4a6a45ee423254ce23cad1e"; - sha512.source = "cd05d28c2e5c759863403e3ea9e8700002a4ef4f9021decec9a681b92d944ecc4c6765bae332f8645d06d12ab6adc096f4a560a195c981d5e6cbc72acb56e812"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -bundledoc = { - revision = 64620; - shortdesc = "Bundle together all the files needed to build a LaTeX document"; - sha512.run = "8f1e4428993dda804a2bd6b11504996e6cbef869b98a64d576f0edd97a47b1f2301b34ed234ecf1cc902c74dcb31064a96cb69018ac514fd91eb3e5c1b6df5ad"; - sha512.doc = "d74b1ec9473c4616642911fb918553350c5c65ae2cd5171d3513d6fdd5b5b774a516c54a5ce09a8fb966a9de6c5e372b773f7e8ade9f14fa2b1a646112638679"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4"; -}; -bundledoc.binfiles = [ - "arlatex" - "bundledoc" -]; -burmese = { - revision = 25185; - shortdesc = "Basic Support for Writing Burmese"; - stripPrefix = 0; - fontMaps = [ - "Map burmese.map" - ]; - sha512.run = "7bce3a31febfc6a959ba4779d975cf93276a0bd1115e06a50a3c8d705e49e8d6747ecebc7eac2147f021a538dda1bb241d8f320ef1486229c930141e06d6ae26"; - sha512.doc = "4a7f3628efd913a362786564dd260dc1a63e51a397af3d92222db6f758b7a7792b13e58422d2604ae98f615fb5fc42e77f265e505236db9bc981d7951e0ee1ed"; - sha512.source = "066d164d97f4fa9e1050d75c3c20997be859718a2be37c465010040f969b2d3aa17edc3c241f5aca45d91dd12517d72a731d02954088ee83ff5aeec3be0b0fcd"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -businesscard-qrcode = { - revision = 61719; - shortdesc = "Business cards with QR-Code"; - stripPrefix = 0; - sha512.run = "d991a7dfb9be936018a1946d2d3fbe24b775d99bce08da27e7451b54c679bf6565b207a7645ee4def2464ce08187b6ff25614dff9ec6925bce66fb6f48809412"; - sha512.doc = "6ff58a45f67ae55d82721f125bf3e9c8a5cbd049515b840eb4bdc79eea63bd82bccec41f53b05cab9e6720f3719cc58e882998249a738eaa9f033f14569b9f88"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.2"; -}; -bussproofs = { - revision = 54080; - shortdesc = "Proof trees in the style of the sequent calculus"; - stripPrefix = 0; - sha512.run = "042e01990554b7ffcbd70c9a281d87ee98d9b25d7071f24d114e097e536ae1d7fb565854399eeee547ad2cf97bdd6d4fd0755169ba7548f01ed0d736e031a383"; - sha512.doc = "b3fec7f142210ee5051b3b3a45ef26724d95c538978c4904c9723113adcd2164e6385a9949473a8b9d29109b016c24f25a4088fe3728d675fd0023a043ca6262"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -bussproofs-extra = { - revision = 51299; - shortdesc = "Extra commands for bussproofs.sty"; - stripPrefix = 0; - sha512.run = "8410e4a795b79e7ea06bfd72c713f39950da8d1c418002bc497eb802ae71dce5d5372f7692267ca62891cbb2a58719b76c2bce3f10ec11cff63c40bae9122a2e"; - sha512.doc = "87ed5af043bcb4d41f301d4b09dae511fa509fc9c50ac70cef29d0df4bc023f97856504c0650b6139ff8bcd9c25a046411b58f72db016d7429788db757a4e87a"; - sha512.source = "de1b272c20c7aa3d1c6f06fef7226083890a8b43ac3ad9ec54d6ff0649ee268b9c9acdf5d3e335f1fbf7f2b9aec3ff91517f126fe8d354e32662e3d6938b197e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -bxbase = { - revision = 66115; - shortdesc = "BX bundle base components"; - stripPrefix = 0; - sha512.run = "7d1b15d92136126999f976127b43a125a9bd5aacaca5a76aecee94d4f6a6ce6538c449fc82d95a55984b9de802e1e66903078e5d2344db532b9b2e2e94ffdf24"; - sha512.doc = "162a33a07b6149997b9cf0ed5b1baf55f80f2142c106e07188b27c02f4fad891d95d6366581d958bb730106f5d3777e59a1ba55176a7e7594cdadc77e85d7365"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2a"; -}; -bxcalc = { - revision = 56431; - shortdesc = "Extend the functionality of the calc package"; - stripPrefix = 0; - sha512.run = "580fba2af6adcaf2b2f137cd34455b3dc896f2e26aabc2352fb23c12fe1a134340c2505d38dae51e79c72408fb4023213971ddc0ad322f16bafa29a9bc1dc4bc"; - sha512.doc = "1e2e8eda856a15be3e9f3cdc441d3b1972b97125d0a370061f0919ed0c4aa267d5fbacddd453d9b99bf5b759b801c71c3e988f9666540d960d9a27e7c54ea904"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -bxcjkjatype = { - revision = 67705; - shortdesc = "Typeset Japanese with pdfLaTeX and CJK"; - stripPrefix = 0; - sha512.run = "72d3a88c117ea971faf8bc836bfe32ddc52e96c1fe1546ceeb8a9b298b7a28fdfc8aa4b0f43bdb3fd27126383b289ad293b2ca6c4ad95873948be0651de4ea18"; - sha512.doc = "8118935396e03cf72b0efe04d6e436c6d7b3aad3dd1518561ec36d1fcf35a4e29dcdf86dfe554d06f4814694e7528f238b73c0145dce6ebdd5cc9b587db3f86f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.5"; -}; -bxdpx-beamer = { - revision = 41813; - shortdesc = "Dvipdfmx extras for use with beamer"; - stripPrefix = 0; - sha512.run = "48009e69d2bb6c316c5d33dcc9d17fcf9f762b68688130ee8407648039b7c3effbbdeaf991bda7842738da59213cc855b50f48cf179ec77e0682729d6e5d3709"; - sha512.doc = "2692918a0fb1ac7bccc6e905350c6cd716b72b33d8f00bad73ed0146238965d0c1a1d9de07c22fbef1ba7211a919c1152342a9f4bb48185099aa470f76374bc8"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.3"; -}; -bxdvidriver = { - revision = 43219; - shortdesc = "Enables specifying a driver option effective only in DVI output"; - stripPrefix = 0; - sha512.run = "dc37ee5237e6eb02fca173b8b0501795604930b56c3e9101c6b653ad6df12cb5ae82ad81e66aac5c1ce4ff0aa8d7f05658f4b41057ede286715c25d290682182"; - sha512.doc = "83e18920fb6f2f54f54c401fe83ff131dcbe64ca712ded59f0690d90f1d8b2623ec135692a3fa437b77fe82336553a529d36b5bdcec96a96cd57523f11cc0e0b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2a"; -}; -bxeepic = { - revision = 30559; - shortdesc = "Eepic facilities using pict2e"; - stripPrefix = 0; - sha512.run = "a0436e9dc7dffa9c7a7b2a41662a41db934aa4242c953f480400b7a2c8a71bb526ebe8eefa46b02db03364efdf14fd88c1dcd267ebd59f594d72540ddd3048c2"; - sha512.doc = "25789b297ba2fcfb81e74637cb2270d41eff858e747b841cfbf5d29791fe6697d3a9cfd4abbbbc4ed0a5c5b274f8b5a7cdeaccc995f6ae623d2a6e2d831b7e55"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.2"; -}; -bxenclose = { - revision = 40213; - shortdesc = "Enclose the document body with some pieces of code"; - stripPrefix = 0; - sha512.run = "f3d0f39e9c21f3bff75d118bb1a9408e7fb2c84beb9301873cd37a678de4b7680d1e8f13693839ce32e1e816e756d8f0af14cc620952afc8fb02885debf478a8"; - sha512.doc = "ea7e0f17ee70d3d4798e85e3788af1110fb2adb436106ad08f601655453af2c5d192d5e3854fee1b29f6ac21f2f6b02e239ff4ec6ae9181818b23bdbac45583e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2"; -}; -bxghost = { - revision = 66147; - shortdesc = "Ghost insertion for proper xkanjiskip"; - stripPrefix = 0; - sha512.run = "8b5345c2e48c16f296e3533977b2d9a031274764f3580887d2142a12f34e93d4d31bda0a5997823a7bf52891c8707d897afdc365a001348d2ab12d8f947acd0d"; - sha512.doc = "999e7623526c6ef51b8c6da383e79d9f889d1e45efb52eb127463b94e7790edb124c2ddece303c932134df4daf4189db082c3492fe04e6a829e1dd6d943edc02"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.5.1"; -}; -bxjaholiday = { - revision = 60636; - shortdesc = "Support for Japanese holidays"; - stripPrefix = 0; - sha512.run = "4f5dc4081f989b73e5334d62af403922e2918424cff24480644f1e9016e3e20fb044cb22da91a035b198aa92edd0a51e985fe791a4c99ffbde2d339ca46a3918"; - sha512.doc = "6d3ccd7c279e9dd8063296d843dbb6b42af90359b16f421eaddc7b2ddf23e2dc6077d4748abbef3c67c9672536d58a20746848237525a4cf8ec87ed19117a618"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.1"; -}; -bxjalipsum = { - revision = 67620; - shortdesc = "Dummy text in Japanese"; - stripPrefix = 0; - sha512.run = "a3c635eff092be08bb99f882a18fd477aba3b9b25666defa4cf872806dce666ab8b931cc5b85ee217dfbfd453a066461ba169f830236ad55f75a28a81a157e0b"; - sha512.doc = "b7f020236e7cf429bb367ab412a6b58746302d2ea0c6d50c3b9af20a86e535196bf3e628c962c98ff0dd3d194d702c7a20cca55b815b88727bf8bcf0a5eb278b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0a"; -}; -bxjaprnind = { - revision = 59641; - shortdesc = "Adjust the position of parentheses at paragraph head"; - stripPrefix = 0; - sha512.run = "90d69860d7017c414cae328806e4d6e9a788dfe46f7a6a5792a0e8df563471b5d60aa6b7d2ea45caea3caf954a809f64549f24105d9856d6b89f96d366a02fcf"; - sha512.doc = "40c81a58de05b25b5ec537ee6ce8feaa9476ce64898e7ebc67ff1d5497e53eab341734438160e578487753ec9bb747d8c69cbd4365895326b081588b92f6677e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4a"; -}; -bxjatoucs = { - revision = 52509; - shortdesc = "Convert Japanese character code to Unicode"; - stripPrefix = 0; - sha512.run = "ffe18ddb89393c61df4371d6fe1154759992e544af64cdfcc007122ed212e87d16194d906d4c9f797671860a96c4dcde12682ecf98adb3c7b8b4c6ae0b432b81"; - sha512.doc = "9c281fdda182269c7a048e1ef422f0c403ecef7d8fd8dc462ebe39b861fba013ede2ef351baa5ad4537b2e1495f1f0572c7edc6fa6407031ff19053bd6dfdc02"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2"; -}; -bxjscls = { - revision = 69637; - shortdesc = "Japanese document class collection for all major engines"; - stripPrefix = 0; - sha512.run = "bdcc01806c8379d02ebcb49c25bd497d11dcd3f0954dee7c1e1639c4cb3986a1bc54266e2f635c263058e1cdb34d540d52291cbe73502f02eb54d4b98ea3676b"; - sha512.doc = "047fd7bca863ea5088d2e33d512a80879f72c32dd2e7bd3813fce6614d22f0285beb0adcd887f4528457db24472518663ea4e711d90e4fc0f36c8282db6672cf"; - sha512.source = "5eecd3c63ba56bdae6a5a720aec1394649732db2acf7d25a6e3125ed742fb1033648edd7c45bd558f7dd3b9ea912617111b0846614546b89ab5f2aecdf770f00"; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "2.9b"; -}; -bxnewfont = { - revision = 44173; - shortdesc = "Enhanced \newfont command"; - stripPrefix = 0; - sha512.run = "83775ee72fceb4de0037327561ea2f1723db89dc23ccc42245390212ae1fb849c92c75b2e7b4b23440c62086116b8f0a14b12b27f97c9277c55a7454b231826f"; - sha512.doc = "f09fde7abd39a4df52175eff90363a469270ab1385f3600e654535cc90d7b4b5ba704be734323dffca512f5942c45a9ffb5cd19a73026c224cee3be33eaa5b65"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2b"; -}; -bxorigcapt = { - revision = 64072; - shortdesc = "To retain the original caption names when using Babel"; - stripPrefix = 0; - sha512.run = "03c88a7e74c83e070d132fe55231fcf0caa51a8e87daa213533ec1db5246919b6de062e290da3e45b17f66ade1af54e38f39075284009c5bd126513e32c4f080"; - sha512.doc = "0a3c6c360bd1672fb4f1aa33dccba06c7de77a65a6e0d128fc3e90f99aa9897fd6d3a1ee5c2ca719a42a891d67a575ab13a28b7e6c9f6f8966f98167ec54cfa2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -bxpapersize = { - revision = 63174; - shortdesc = "Synchronize output paper size with layout paper size"; - stripPrefix = 0; - sha512.run = "1a58a1a8281505922f5a6a2abc8695be6826f55dd1d37d8d42633665aaaae98544a0662cd4ba4c384757caa593eb000ff933bb7d7b215447fec6d6f5517993fd"; - sha512.doc = "f6631a73d4d29616fd197f9c32b7b533f60e6b007a4849930c33afa4eb866798e1ab415f0842cee8142e7e7379507b2557b096df627dabb1d714ee305a8ba0a2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.6"; -}; -bxpdfver = { - revision = 63185; - shortdesc = "Specify version and compression level of output PDF files"; - stripPrefix = 0; - sha512.run = "693b58af2200a99c98b1b4fe9d99fca00cd39f06877c4670e4b5e281f3c31221490f3f7106e42069c1d0f35e192fc3d8e1457572db84a8176fe5dab695a55c48"; - sha512.doc = "94500d43e01e6e4fcde2a5de892ff0587a495672620540c37f08d815a4178f153c98dc1b8ee099f2e4e849842066a126d2906defb5b07bc5849ea7dc19f81555"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.6"; -}; -bxtexlogo = { - revision = 63231; - shortdesc = "Additional TeX-family logos"; - stripPrefix = 0; - sha512.run = "e0399d089bbbbac0e34a216b5164956dc9843e2d77b9cc1b395609963aba759e527dcd3fc112f4aa57b621e4419ee33d16e7bffb7f88123a0afb7c983c82636b"; - sha512.doc = "ddc5da87331449bded7b5936bacac04872467cea5ceff8b1a0b2c5938119351e17f1622020e53a94d704be03a626b5110685e69cb393773595d5b9cf7326f184"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.6"; -}; -bxwareki = { - revision = 67594; - shortdesc = "Convert dates from Gregorian to Japanese calender"; - stripPrefix = 0; - sha512.run = "6a7b89540c662871ad9799b00a8e17d0cae301366ac6651d9a9e7ba995f6d2de6b2149f6eb5795af0d58c5de454aeb94d0ade0026520a4e54594f93fd4470b3d"; - sha512.doc = "60c6416a036372f3fbe636dc46106114d2a43ba292f961fe299f765afd9e23c975a7f68f4c48a9c1ef9ea5b9b97224f1d0f1bd1585fb90b5f183a14528351539"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.7"; -}; -byo-twemojis = { - revision = 58917; - shortdesc = "\"Build Your Own Twemojis\" with TikZ"; - stripPrefix = 0; - sha512.run = "5d9330d36bef34d5deb7fae5413741de09050bc9a0fb3bef7874b0d44f397e900f626fa64b8903038d3131e5b9ae66f121a1dbaa6f25668f73bdf7d3aeed409d"; - sha512.doc = "a0329476031945d9fb694522b3bb08cfded7ee117033f758ca7a9d1dc423d66f8ca749b295e1d420b737da886b57b1bf2dbbed20d3bacfbef94d57061a22f4bc"; - sha512.source = "7971ba8678358883fba70f2394417f2cbaef639fa0a1fb13f1cef8d0cb182c91fc3097450bc29011c4b939afe6cb6ae5ce3c8c50f183fc92f10f3d0a46adc3ad"; - hasRunfiles = true; - license = [ "cc-by-40" "lppl13c" ]; - version = "1.0"; -}; -byrne = { - revision = 61943; - shortdesc = "This package provides a set of tools to typeset geometric proofs in the style of Oliver Byrne's 1847 ed. of Euclid's \"Elements\""; - stripPrefix = 0; - sha512.run = "ef27aa477ed05bfbfbe3729fcfe119f9e7e3335b9669a34ae812b21084c2063b819e1201340f3db269f9f2234b5644054ab30fb3112b6bae142c7e5a0c6831ea"; - sha512.doc = "d0c03c352aed98d7b1abff22d8613f34d206807fa8e0635b88b764f136bc851dd53f8757aff45f636e1c17c32ddbe481867a3e30218dc97ca07f25a147c1e435"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.2.2"; -}; -bytefield = { - revision = 68366; - shortdesc = "Create illustrations for network protocol specifications"; - stripPrefix = 0; - sha512.run = "394c796574674e877a6532900edbe3555b63aaaf62bf2c8bc8dac280c60064d77bda56991ae1c1a208fc8bde4c8e990cfbb05d21605fdd4f934aad0403775f31"; - sha512.doc = "98e7e38ae0a9337fd9926af76e51b6381436d4e6cc9b05cd1beee2f8b01d460643265c09b53b1058e72cacda1ee60df6adfc210efaee67b2b0cb31e3d2624833"; - sha512.source = "d878e6325e42c5a7e2695af6ca46d876c56eb4f0bbeb75e560ebac50bac30dcbf6df4b82a1379ff60e713e5f92840150c96fb1b637591863dd9ca1387e9a38ee"; - hasRunfiles = true; - license = [ "lppl13a" ]; - version = "2.8"; -}; -c-pascal = { - revision = 18337; - shortdesc = "Typeset Python, C and Pascal programs"; - stripPrefix = 0; - sha512.run = "59aa375b3b953f2fab04547b3234b36fd08af39392cfdf05f6992a90ef3a52503b2e11296787763abb9ce6251f9cc2fd062d78133038ca4a92e1b06ae65118e9"; - sha512.doc = "52252a2265d9bd48f09ddaf5f1517a6a74980897f0e8e0ad7ea71bafb194ca5bb98386af537ef2a4fb955e62ccba3d16cc1ebbae094502f16ae3bea0c5073c79"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -c90 = { - revision = 60830; - shortdesc = "c90 font encoding for Thai"; - stripPrefix = 0; - sha512.run = "2350e99bfd047ea514586894d20bd37dc778c74fd4c1848063ba7d53cb59ed5df36cd20fd51140ede8af7f32ed7efc44e1d4f3db4a0baaa7d1439941ed5297a9"; - sha512.doc = "9561381312a2e3fcd6a03da1082e9bdb5a2c30e241078adbb70d06060a21674fc8a40c5cb81ce87d31ff99c168d73e9b4074cb3a6114439d5a441dd0054cc682"; - sha512.source = "774c2aae917343ba9dd78785d2dc9123bf1dfd0920b638ee991a92a9a87199205fea04ea36304806c7213a2bb4ef06459f385558c9691a7dddff69cfe4d35fa0"; - hasRunfiles = true; -}; -cabin = { - revision = 68373; - shortdesc = "A humanist Sans Serif font, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map cabin.map" - ]; - sha512.run = "8227929382396ece0ddac74095387ee0c96d2102fffe5121f89182836792933a6ad66ded538229c5bd12f65fe7518d00a333835c17537761f309db578e81bd3b"; - sha512.doc = "95353266181cfda03973d68472ad564185abac4d828141e339183f69380f99151e0a3165f099235db54be8a3ee35ffe069512240633972f4b7dbf14ca1e06126"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -cachepic = { - revision = 26313; - shortdesc = "Convert document fragments into graphics"; - sha512.run = "a0405befc4ed9217cedc4abc78c355b869bb803fa4be32245198ba4aa8151884ace023b3465db3b4757c923d0425fd1d186e25facd7c29d05d5072668a9f0e3d"; - sha512.doc = "93108475f74b2356cea79a8403729df7c24e95871680b0b53f9316a7b158aa973ce108632a121198459352968bfdfd79f265d4aa301ecd00ce55cf56db5f976c"; - hasRunfiles = true; - scriptExts = [ - "tlu" - ]; - license = [ "lppl13c" ]; - version = "1.0"; -}; -cachepic.binfiles = [ - "cachepic" -]; -cahierprof = { - revision = 68148; - shortdesc = "Schedule and grade books for French teachers"; - stripPrefix = 0; - sha512.run = "c152dcc24128f0f6e9424012660f2620e385f470d92dc9ed530eb530d11b1fc3aac6e9e3466fea3548d16ac812c89743865ada67a3bd820cd37601f754506939"; - sha512.doc = "1e203d56ace798bff086a9a3eec3a3f110c5e2c4ec56be637ffc70edca4b28ea8e5bcd8804b087515431460b48ad4863d3c15a1496724e5ad814cac79dc5e7ca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -caladea = { - revision = 64549; - shortdesc = "Support for the Caladea family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map caladea.map" - ]; - sha512.run = "d5dccec03c75e7ae315067527ae4d88515d6bbfb6d9b1336420ea78daaa7718497e8040f75a0a531c91c2b0eae728cfddc824e623bd5c73471192c809550dbf1"; - sha512.doc = "e3f84460394d1a806a06836535c8f9110715608e2110743863e4c9d37abe696a3169e904a4ef507105d54790af4165d3a5a7559b28568b86b73761975b8c0b3e"; - hasRunfiles = true; - license = [ "asl20" "lppl13c" ]; -}; -calcage = { - revision = 27725; - shortdesc = "Calculate the age of something, in years"; - stripPrefix = 0; - sha512.run = "d3f6d46166f2b37e6ee8ff9185c6ddf5ed99ca2b32c7520966fa9a3db95d3a9517e39f5e8f928332a8dba490274c4fe48e62b6ce83ca10d0fbdb9a4218e0d92b"; - sha512.doc = "4c3f1ed751005a5fc19e0ae40dfeb010ca211dbbdb7ac11c01525c7643f1e993346f1af21d411705ebcb119f8b1c20e4ad35384d2be9618fbe6db2de99e6eb45"; - sha512.source = "aa49d205c8366ad92a46195c113e69fe123979560ae92a51589718136bc8df8b3b00e0aad4d6643ca36d217be02fa61529c4a1779d6826a52f80d29649fc50ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.90"; -}; -calcfrac = { - revision = 68684; - shortdesc = "Calculates the value of an expression containing fractions"; - stripPrefix = 0; - sha512.run = "1545318973205544c136b6bc03ee6838f9496972e43cb4dbda404d2bc389ff41f873513ac0275769685f72c0222998386d2f9abfed686570d98fced592414443"; - sha512.doc = "d9bc62d0d8f95ef3f34b801eaf612e5506c2c3ff855bac800a6bf3827fc3b1e572390691e04425992604e2d6404844db3fdaba566f98da46d67877a8d077fb10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -calctab = { - revision = 15878; - shortdesc = "Language for numeric tables"; - stripPrefix = 0; - sha512.run = "20ccd46a047987004eef78f75b18f49b1e3001e240604e2657e23e30c4e6f286ba700cb828eeffbd608880ac4994d4a3cd2d67aa336957fecd1d3ea8a48058b1"; - sha512.doc = "555a9d966fe556e8aa1dd39ec1ec327995f62fa447bfd2bbb8efe47ad667427eef249c749f9d2c0436c16e31e6fe7b0dced9b449da307411ac186d30c2407270"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6.1"; -}; -calculation = { - revision = 35973; - shortdesc = "Typesetting reasoned calculations, also called calculational proofs"; - stripPrefix = 0; - sha512.run = "d60f9face95cdf6944363ce66b842b2a695b468e77193785564d1697244e193cc0dcf462e7a13c8a22eee173d5d4cd192ae59bbc68e086ac27c92d2dbaf6f156"; - sha512.doc = "741f4600986798bb191352ef98ac1a398014f92956267c36ca1834d95996008204107dcd8575077d7eb2dc1ddc627f03ffdf071ce0d8b2646809063eba59625a"; - sha512.source = "010291ac9b9d4529283ae9ed9054a2d797109a5eba2e999d26c4e847bba6c0bbb3a357a76526c77549636d2446d38fca2b6063ca238f5912c1aced9e2b63bb8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -calculator = { - revision = 64424; - shortdesc = "Use LaTeX as a scientific calculator"; - stripPrefix = 0; - sha512.run = "de62244340b27b1b62c7cfabc8da5acac3da0440f3190c392ae86f6160544d3b8e44dbcf5b5c95526b87cb7a0272c63fb19c06181c2b996e6de2affcddfa797e"; - sha512.doc = "d699c74a2b5a7932f454f121582ab4f03482022aef0b145f21ce04bf500f01a6504a39989fe22170fedb27206274285abff54a1fe59e2804a91d05c923c88e86"; - sha512.source = "819c7159200ceca98ab34302951af308233a12a18daebced97370eda15e41490c83b577c3f3a0bd375601f1ef4f380ef3f3cc3e4f6df84b4c3a0d9ab9fcc7a03"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -calligra = { - revision = 15878; - shortdesc = "Calligraphic font"; - stripPrefix = 0; - sha512.run = "9479d6b5ab33b12acae5cb3858c218dc4a1e1901c4006dca5160778798813d333b2e9e615eeb29e01007084d8479c58573f88ad5e282dfc06f3f5a9820df482c"; - sha512.doc = "05e7b61864f483f0fc50d4680d80a395282a5c7f36b7ccaebb70e1c24cb5a101c4ee5accfec8d12c7fac0e7a32851dc15906267b93e6d75094b7ac646826dead"; - hasRunfiles = true; - license = [ "free" ]; -}; -calligra-type1 = { - revision = 24302; - shortdesc = "Type 1 version of Calligra"; - stripPrefix = 0; - fontMaps = [ - "Map calligra.map" - ]; - sha512.run = "325764734735203d4e355d33b30a289d699fa10377212e39bf33d3195f2dfdebd4397785d69d6ca392e040cd2fd5bad20b0055b5f92620149fc96ed0d6d337a7"; - sha512.doc = "c1acbd3ae35c423b9414b5e132e1a164d4b102ecf9d7305548bb5d203a8d3a25309e2aa5a5d09277d310b9446013ca2db65f9ce6d5783432ed325838bfc9a48f"; - hasRunfiles = true; - license = [ "free" ]; - version = "001.000"; -}; -callouts = { - revision = 44899; - shortdesc = "Put simple annotations and notes inside a picture"; - stripPrefix = 0; - sha512.run = "a440d3815f5c5a6d291ce4d7a20bc8483bebe190a0e6944de9f5be78a23eef119f41740ca0fbae4515b6ea7f2aefff90a62005883c44e8d70c6aec0a58c777ee"; - sha512.doc = "0801298bd110f2e484b45c66626c790217666f3351aeeab87881d7f32ada1868222a21f2a7861afaacdea302ad269d2062aaf5fa9d13fdf8efb93efaeb499bb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -calrsfs = { - revision = 17125; - shortdesc = "Copperplate calligraphic letters in LaTeX"; - stripPrefix = 0; - sha512.run = "34b5315e9e5e0ca532733f7b7ebe66e77d935fedf0e042aec63fb7cae257a423db5e93e288b9e1dacb26b0b75784eddffa8b565acfa537a7d970297f71e63a2e"; - sha512.doc = "2378c004fe888bd2d60d0830ec98e805a2bdea3a5a6f4161dd3d4cb56c437dabdb579f3293845a10e316cd868725abd304ecb8eab55fb4c728ed5bc0d2073673"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -cals = { - revision = 43003; - shortdesc = "Multipage tables with wide range of features"; - stripPrefix = 0; - sha512.run = "75321e774560d7a205a7bf6b7d2d512c6aa9b5f38f6116813ff43ebd4d1fed23ebe26c235b278ee5723062e49630fc5f9480dccbe5bdfa44f5168f18657ddadc"; - sha512.doc = "15accc06e3de07dc535078300efbffe305d8e26a3aa0e81304de37090500210932f08c24454d0bcb5d93ced903832891b6f987525eb64d04b1a7bfe577071153"; - sha512.source = "59a99cfdb7923d0e9edfa656f53825194b3c1ad0cc554e28ce792783d3196b525a9e7dc0e5ef8dd824e4d35b39a71946c579978520c7fb87de24f1e8b91c1253"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4.2"; -}; -calxxxx-yyyy = { - revision = 69266; - shortdesc = "Print a calendar for a group of years"; - stripPrefix = 0; - sha512.run = "329c4f91442d8115c997bbab09ae77e29bd2a8146d3109328ed9e08a2a4080895618b9a8467d4827c14ef65741b1380771409909f80d0b5fba6f527fbc900411"; - sha512.doc = "8c3f1a6a168e5891a07d39c7f67270adc521c19cc4be6a302dc779b9bc5284bf4aa7d9b3caab22b5591c0483800ce62f0647bf9e14c83902777aad0070e4193c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "20.24a"; -}; -cancel = { - revision = 32508; - shortdesc = "Place lines through maths formulae"; - stripPrefix = 0; - sha512.run = "ac6e6b642dde29e32e45d7a0e967370c1f7a6ce604075cd43c57b1ee002e75adbe4fbc81de30e8d252cd58f2ac091503595a433c5de898deb3bfbdbb6f2d2e62"; - sha512.doc = "5af252a521c1976166db248c4c19d4fcadd32ec9801e0cd42b73e0a3a0adc461b88d765b90dec1af859474fc64bc00cbc8be44450cb4da6b43944c8fc46ba670"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.2"; -}; -canoniclayout = { - revision = 64889; - shortdesc = "Create canonical page layouts with memoir"; - stripPrefix = 0; - sha512.run = "850e180dad92a7082a314535fedf7e45e3bc3db48db0e7948287bf7782c2b1fd13924e666ca0edecc5fdd7b00fb55cfb0c5c17bd51019a21fd10c7116796b6d7"; - sha512.doc = "5ee3ca34d87e3f9cc70b606ebc5a8f7918d86284837a3359ca8d4dde50ce36e43a651e3cb6327f66a91f23fd7d5edad4a037e99745de3e5f23005f59517fadc5"; - sha512.source = "040ce827288d3498274c9df72b4b1a7ab50fd8a5e500cf66fe4ee0f4c211a356c63a9666a3c9003b7c3ee35ce1dcd1feb16828fe1f119a0684b24676121e911a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -cantarell = { - revision = 54512; - shortdesc = "LaTeX support for the Cantarell font family"; - stripPrefix = 0; - fontMaps = [ - "Map cantarell.map" - ]; - sha512.run = "37fd0c1986f76d823be6feecdb76bdfdc8222872355d0cd66c340950ed0ad90e057acee0f90ad0e41fc77b61a682f8bd390d98c8ed559015f9a0a65014b11b2f"; - sha512.doc = "17c118e49fb173158f7c5cfc31c1bee1063cd38bd1ba976e2629a648c795295e3796e845b735cab07de99296088d09ed9d87ed92c22af3e1dd1ec1a7a90a04d4"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "3.2"; -}; -capt-of = { - revision = 29803; - shortdesc = "Captions on more than floats"; - stripPrefix = 0; - sha512.run = "f3b1b81aa5a8c2ed9d5ab94e2e242442674af957d3f987b0db459ff8ca920abaab43d46db234b92ab588bb5f7d4c587eccf586a87fd492659f5b088760859c62"; - sha512.doc = "a8fa6b2a0787a3e52f3a9a22482ba9f9217ae97b985b4975c690d240ae040f4f1e17c3ea7439d53337e5a0815a66754d0e6c528417c04d7c6684d28e869f71d0"; - sha512.source = "87d4bb47226cef478ada2482605b925a3ebb3c1ee1fc624f39e724a857101b113856d99bf659ec5e01ce6773e0f695e424c41ba0640f23a76e9721d06a1d4f56"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -captcont = { - revision = 15878; - shortdesc = "Retain float number across several floats"; - stripPrefix = 0; - sha512.run = "b5002e8ea4fc8ca1840190e8a2d40540576dc5e17110da473a8981198e3f24c858644b181545be3bed6275cd0e0bb9848a6058adfc8dbef26956e0754c4e4699"; - sha512.doc = "91bdb436163ff745f3aecc67eec747ef5a1853035d86258bbe23a080a92b3393f72b4029bad719765663c94e79217df4edf753be930a3e4b62f0b999c296ea86"; - sha512.source = "9c9f8b2785ce2620db8e5c373cd2eee4d9aa3cd8eb47c648625ca7250e7ace861d9dbc31432a7dd7d0f6c7ccd48b43aba74df519d72e3fa1a3c9546de946e591"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -captdef = { - revision = 17353; - shortdesc = "Declare free-standing \caption commands"; - stripPrefix = 0; - sha512.run = "c24a7d66c1daa3a9c336a8555286876aea9e969a4107c42c258f0f4c9a88070316df70e0f2a860adb6335a33e49cdd7a9ba8391255f1e1fb283bd2f6a7e7b343"; - sha512.doc = "c0a1a4584d0802eda39812d2c293fabed2487b0cedb57df622519d5857c2ef10e54e66032e9e9ee9ab81c757fb827eabf422b1bf2ab0ae6f7c22ab3aecb49a8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -caption = { - revision = 68425; - shortdesc = "Customising captions in floating environments"; - stripPrefix = 0; - sha512.run = "21a36ab8ece42716032a15f3c105ba32c5697c4c88fc8b383c66bc6fe7ddd4969e12721e94d79df0817b02b43e498ba5211ef844e320bd91ccd9ae24e6f28fec"; - sha512.doc = "3a13af008ba73516f8d4be8ccdeda4b18fda2bf9462fed32aca7917efca3e5185f77810900945ed518fef5d81e2629f89cacad5564462f40bc0defe79451a415"; - sha512.source = "160a286e1145f2669dcd1abd651cf2fd725ceb95c87506d0844e95393be85624fe53b2f549b7006d8470449ee9305aeed2e81d1a7f2c69cd2f38a26aaf4fecb5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -carbohydrates = { - revision = 39000; - shortdesc = "Carbohydrate molecules with chemfig"; - stripPrefix = 0; - sha512.run = "dfccca523ef4ea2c9bba9ebdbed7f6bbce1ab0739be02118231d1eb449bc826dd5e96406d5e009239a1bf25088e8df289e2e66423a536d76cf592af1a50f276a"; - sha512.doc = "67de0675fbe00573058f428d34779b3423d1c9a7d47be5f8f1c3ba6b3cfb6783f5f1a945c1f201bb719bfe835ef035dfb56864a13ba0f12e0e83ef1ca0ce059d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -carlisle = { - revision = 59577; - shortdesc = "David Carlisle's small packages"; - stripPrefix = 0; - sha512.run = "345c61b7eb6637e73a66b5f9183ec39188d4e2ffdd418f12d8ae70394f447eaf8a5d8c62e1adfa515ab7879e1afac4163957ae0b6facafd9ae6ad6f300acbe03"; - sha512.doc = "54c785d458a5a2848c2ae5c730215df4a66a7dc523605d3a9a8985cbd65677627a2a5f5800f055da65ecfaf096fda609f4a7f3a5ce22339f0ee6bec635250ec7"; - sha512.source = "9acfe2c47c7a6a9ee358bc79482f2b21f6ab735fe25696e04a996cfad798a0461dcc0bccf6ee7fff9a6b9e22307f5312e26f9c4fba46a03f0289b8031a6bb97d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -carlito = { - revision = 64624; - shortdesc = "Support for Carlito sans-serif fonts"; - stripPrefix = 0; - fontMaps = [ - "Map carlito.map" - ]; - sha512.run = "7b958d163439d9f3e7d6f8cf998beb799013a051a1b79719930d0efbc13e167170e330908a947a9708f55897e6c0e56ea020fee5876b6f3bb9e76dcc5997a66a"; - sha512.doc = "6718aed70469e95dc4d077552b453f81c9fbbcad6201194eb264bba6aa9c9f9b1b1b09d1ed987b963d6b09e13afe5dfda1436333f0c44ee3c368caa90d790613"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -carolmin-ps = { - revision = 15878; - shortdesc = "Adobe Type 1 format of Carolingian Minuscule fonts"; - stripPrefix = 0; - fontMaps = [ - "Map cmin.map" - ]; - sha512.run = "61ae809b5e4e7ff493de30ebb825870ab9caa8dc64d6d3c82d4654fece82dece4937c798e3c1e5086a84411edbcaf8c2ea777a9534865b38d4bc5457ae59aa25"; - sha512.doc = "284d9f740d1e4b1a4c989b527bac80e54afa74013d1234bf9e1c2d42ac2ca4387c3b0d24004818e1fb92b001582114a4432480804c721cc7df0bd3b85835f111"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cartonaugh = { - revision = 59938; - shortdesc = "A LuaLaTeX package for drawing karnaugh maps with up to 6 variables"; - stripPrefix = 0; - sha512.run = "354baf8e8cffc0849494e4f79a64111bc0fd4a63e2454b4d4763bcf0c25511e4fe70caf048c628695a90c55c04fea0fcb026a57e72131e746f9d795fbf54fc82"; - sha512.doc = "3811c97d39d7738ee26cc40f839eaf9f51d798d7f14a93c5906ea977a20ff864f84772adf3815216827894fec67f21c488797b4cf0b4db3c7ef6c551637d0493"; - sha512.source = "9e417dd74451cf07d406f0c085231c175ba5bed083456a06cf9e0e3539ff32b2c6d596190ff7421b879572f0f568fd775c66e4eedeb776e69d6e5dff461dffdf"; - hasRunfiles = true; - license = [ "cc-by-sa-30" ]; - version = "1.0"; -}; -cascade = { - revision = 65757; - shortdesc = "Constructions with braces to present mathematical demonstrations"; - stripPrefix = 0; - sha512.run = "7411f24d41aae23f52a2d611cc76ae4f4e6895c8cf0d038b7e4561f355d00c21a6164f0fcb866599b5637fd9cb5e4fb34e6507638a5fa7370ade5fc1df1ded15"; - sha512.doc = "dd52dae9ec2eb88f9c8db29eb633e110132795e4c995cd6980bc68e009205bf76c5cf513a47df1391e300c886f3aed78f5ea6187dacadbeee44cd985efcd749c"; - sha512.source = "42e021863fefc55b730c35bba7966f2858567efa2ff3b0222b4bd9f2e47bc3ce8d44d3f2f01405e76831c2af99feb96d30c2a5f1974a18c2a1e84326b72180c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -cascadia-code = { - revision = 68485; - shortdesc = "The Cascadia Code font with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map CascadiaCode.map" - ]; - sha512.run = "3164663a54bc3ffe39aee9cbe9501a3d405fd8879059081ee2f0f66bb523686e25f3a7fdb69e61cb623a17ed21f21b0d6752f8c05b09590672d04315d5d6594a"; - sha512.doc = "c84b14187b080c744a33319a4ef791be09b4517d8cd0e9ed2dbedfbb37a09785dd6244a4e4dd1cf67cc8f6ff608b6ba8d2299c7074921f6443d6208c702feac7"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.2"; -}; -cascadilla = { - revision = 25144; - shortdesc = "Typeset papers conforming to the stylesheet of the Cascadilla Proceedings Project"; - stripPrefix = 0; - sha512.run = "df66bd91562f3678e2ef42f16a4a0c4af95209fb28b1176b5b63968632b3235391180b06431a42afdc73a9e4f97f47c8c954ed1ef2ccb746cdbf1d65058ad919"; - sha512.doc = "2c15b786f550642c26cc8f5e0151dd5b31e964b46d59837b3f1ccbe118fba6ad8f06f86c6a5bdc6a791615929bf4c9b7c2287f930d1ca3c8bd6c2d0d7ddf64b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8.2"; -}; -cases = { - revision = 54682; - shortdesc = "Numbered cases environment"; - stripPrefix = 0; - sha512.run = "281f9d13741f16fa07f93bbd2628f4da34db07d5005b6c1d7994ec7713aa100f152efd066bf712417bf6dc3fafb496d0a80f65cd2127c4640ab28cca6a4ee1d5"; - sha512.doc = "89aa9005cbdecc26e0b2489b544cf3f504e952eddd9a28dedd2a2f555d3e0c5f8378ce1ef21dd78fbc5ebac616cdb7559f2147e143f3cef12286a3e33d9b5616"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.2"; -}; -casyl = { - revision = 15878; - shortdesc = "Typeset Cree/Inuktitut in Canadian Aboriginal Syllabics"; - stripPrefix = 0; - sha512.run = "1536d4fe6c0cc647def47d3686ac73757da8b4ebbb99a5188e78944d59350c0da731f2e51a40c94a1e05b225a793f292766de4221792804887b4350631c8a24b"; - sha512.doc = "74adbaee46656ad57512a11986f834239d60259eb45014e2c738f7f5b5bb47897185528c0feeb96c45ab7d6c04e679e1858417a93db791b72b5eea1cf828c0ce"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.0"; -}; -catchfile = { - revision = 53084; - shortdesc = "Catch an external file into a macro"; - stripPrefix = 0; - sha512.run = "6e01a91913a2a81224a533eb7f119283c267682efaa2a6cec11e9db7fc593b0d7a6830b83e482f22e96df208dba598b1c6596a78ae5d4cd17aa4c9a50eeaddea"; - sha512.doc = "ad0d938e0bb4fe3d307dff1afc5ff93cd4b76948a88f88a65e3d036fe679cddc91c52e64febbf887c766d423fa5d94371869793c93138eeb919188b9b44234a7"; - sha512.source = "e254709b62517cbb717c43e894c17a72277465504bcbfdcacb2bf7423173e0476cce8355acb9772ca74fb267abd43faf0470ebf92139dd7847c756244efbc3fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -catchfilebetweentags = { - revision = 21476; - shortdesc = "Catch text delimited by docstrip tags"; - stripPrefix = 0; - sha512.run = "71656fb162aae4fccf15767911b8524c4f3a72f4c6fbeaea45a3dd9593489ec7644e7c10ab61a49cdd125ffe56e61331c30e35a10517720948d4f03b97b20056"; - sha512.doc = "4071d6d6ada488b5bbbac0df3b7604939fafbebc17808430d8bd389b86a8aeca0df90da77fb00f8be14af9e9a79c45bf5a2dc0b9ea45af34f60cbce83810e1a5"; - sha512.source = "0d0e6436d1e065fd518a743fd39062f1ef9a86f450130a2339ae59e5af0a9fd0ebeaf72a66301c8ad42c6e218a01bef48c977044cf284c98cbf25e6c8f1773b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -catcodes = { - revision = 38859; - shortdesc = "Generic handling of TeX category codes"; - stripPrefix = 0; - sha512.run = "6eeba6d0c7435050e5ca07a6b0a24bca1714a9ba3d3a20168547502c2ec954b9d74918767c9728c1595355fdb84eb74ef258fee86cae1907fc5b186ccac0a939"; - sha512.doc = "4dbf09f34abc39d9aa5003ce3defe4f5a04b0cade5d6a848bbde4ff3f35ff6bd511b8dd8dade14f92b1ba38bda2595da65da589b0236920c7aa340d245e0cb7c"; - sha512.source = "157520a8e968f5236add71d55aab0ddec48eeac801349ae1900cf70bcaf1faa4cfe98632ac5fa41cabee6dfb6fa46655a609023329d161cad06ece33f10d03d7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r0.2"; -}; -catechis = { - revision = 59998; - shortdesc = "Macros for typesetting catechisms"; - stripPrefix = 0; - sha512.run = "3994f92840c261d92ad8ebcf3205491146ab64cc65b7685557d2b84e3ef73058f3e968726b157d13e986a5ca40aeac2a9ffd48d019664ed2da4f01589ef4f0df"; - sha512.doc = "8b44ed2ca1ed8abbd5acc75074a2e297cc72632cda43a7049009631a79e459052808e51b169bd0be7932245ea2539223587b38cdc6d06e67c16da457b7036560"; - sha512.source = "43827e136677ad8523499d0b102a7ad4be3b95a9818a8720065d98beb07c5cf1a7f6b36c0985b7f4c6fef43fdb233a6980a5899697297cf3ad39e0da6db6c33a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6"; -}; -catoptions = { - revision = 68982; - shortdesc = "Preserving and recalling standard catcodes"; - stripPrefix = 0; - sha512.run = "d58647cd52548a6ceb0f6a47ea20ba9348e1edd55f5514c5264857d99be1085824c4f75c2f7231ef41a1ff5fd0274fd5e3f5dd1b91241179d1bab417f2ef100f"; - sha512.doc = "ef09ecf5c1bb066ae733dc1dc3aefc8f6c8521c8596ff8b45d42ce8315fe49773b6c7d41d632eb342ada05d16784faac3cdfce51af9cca4dab7c9157a7947867"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.7i"; -}; -causets = { - revision = 66359; - shortdesc = "Draw causal set (Hasse) diagrams"; - stripPrefix = 0; - sha512.run = "961f6affda4b94a2f67e1acfd62a12439faafc436c66320b04c3df11383016375f0bd284836a0618def46e624e7e7a5f46524bfb9c3113575c88d490d117a417"; - sha512.doc = "241ce316af86e3f764929fa7c601a1533b86f85dacfbf2e81acb487b312c7df9c2a9ef1ddd047a977cc7eabaf4643caeca7f5c07979f9509867f3d522c507873"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -cbcoptic = { - revision = 16666; - shortdesc = "Coptic fonts and LaTeX macros for general usage and for philology"; - stripPrefix = 0; - sha512.run = "7d48e324b5c5ff5b0755903973e0b439025e98277269f21cae33709a6c39eb6df7cd8f054b22fb8b1c072cabf9e92d0f1456cb41fbdd5a6e99bc0d63952e6c3c"; - sha512.doc = "e7e33c5af518e7fc4f8fb15af79a9aefc1ab8cb4401d0eecbd6b418acfb01c2fa790d4d7f55206ec9d6d865aa177b2872f4d742bec2991e7118df4b834341af2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -cbfonts = { - revision = 54080; - shortdesc = "Complete set of Greek fonts"; - stripPrefix = 0; - deps = [ - "cbfonts-fd" - ]; - fontMaps = [ - "MixedMap cbgreek-full.map" - ]; - sha512.run = "0e7cecfdfa102113f75f46f9c8bc76f578fca6c967128bb8b203af76cc64cbefd123ae87a8b04a9780f498517bd9f660d12e2dc586220f2c12cc8aa76f1aa40a"; - sha512.doc = "a069b7ca1b46e5656a05a5e38a0f9ea5c3ab1e5301edc47d7fdd43817a8f5d641980c2e54b7731dcbcf16e12f0dff17df5a816d66f7bd2b613232788815bb8e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cbfonts-fd = { - revision = 54080; - shortdesc = "LaTeX font description files for the CB Greek fonts"; - stripPrefix = 0; - sha512.run = "af6f11a601f2ea3fd38d639beb3f836becb71aca7d282f5d0c7e020e9f73269c560ae3ac08d93706731872bd1a271c75724e1049c2dbf65e9ac0ea8f6c9b4724"; - sha512.doc = "8fb94b444966e6e3bd63b5b3ea62f661c038767222b08df2bd288965902cf152e1af4ad4b9d69859d11b1b558f4015b2f304afb0a43c356ff663498d830e1554"; - sha512.source = "d21d517c40e8c5058c8e610ee0a8ebaf19d97a6b284b9d16ceafb87ec401b4110a483f6ed00ac626fc5ed2e1fd97f9cce99df5cc12e73ee7b92b04c84972f280"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -cc-pl = { - revision = 58602; - shortdesc = "Polish extension of Computer Concrete fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap ccpl.map" - ]; - sha512.run = "3d0bef5ca5c37f1cae98bd0555d714ed4408b6fde4ffcfa78cf2512114c9aa09b81b23bc6d76705f64dd08ea493add2027e7af997357ff5c4cc360deae11ba92"; - sha512.doc = "f5503008430e969a604973e4481f8ab51269a2c3570f757787eb7a1a9d11b8508ec7ca1709a21b9e2299059a9c8ca20e5806093bd24166eb44e167c06e4fd0ee"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.02.3"; -}; -ccaption = { - revision = 23443; - shortdesc = "Continuation headings and legends for floats"; - stripPrefix = 0; - sha512.run = "f002efbd7af71c108e041daaa182a4432d1886a058cbfda2da7fcf6c0f75a217d04bbb8498deed29c7f03a8d22d4d2e24327e6a3b284d38c7b37200431f17918"; - sha512.doc = "a3d2f92700e3421c37a666093944ae297ed39a35d99d6971978f5707619046603fad06b84aad55f41d3af08725535470ccec6d6bde3ab8f1ce4f0a53038e9ca8"; - sha512.source = "83a8ab7b7b72c156ea07bf7d19c759d342187440574dc82dc0f5e683abe490c3b408d672464d142922229593a1f8363881a48475da0884920484c6057a40358a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2c"; -}; -ccfonts = { - revision = 61431; - shortdesc = "Support for Concrete text and math fonts in LaTeX"; - stripPrefix = 0; - sha512.run = "fb111cd33ec70fa672e759c9fc2894f6b0338e40bef7d1b2fda2c37a437fb1a5ad87ec87169ec389d9eb21068c890c960a5cc24efd6e443b5995d5001f4f7115"; - sha512.doc = "b0e9b5ce6010b03afc52b6f4f7a978e8d5a8f1a382750bdbde0b758209e7f8dc57f84d950163e64381c2d7a8366a50a34c02286cc2011b9cde3e0d40810e01a4"; - sha512.source = "30a301941132ba7b85c59b7e806d2b28ff314bcaae30c228337344f09846cc1051a73df1e4a2b76e36d499095c5a21000f250ec13f967a6080280ea120dbecc7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ccicons = { - revision = 54512; - shortdesc = "LaTeX support for Creative Commons icons"; - stripPrefix = 0; - fontMaps = [ - "Map ccicons.map" - ]; - sha512.run = "4e755538440c87c2bc1f8d57d41ce78ddaeae9a0e3c1c85aeed172c2a25e952963b26245cd1ddc3222285c883ed4574ac4228d17f1263db31cc330bdb1f345a4"; - sha512.doc = "0e4216adcbe01d8feb95d31e2df143ad739f66c2239196f9f5c58638a87d320949256baee32703663d6116bd13b4af607dd38d16d4ccae218af55f5402308c03"; - sha512.source = "af84fa01272028018fbcb4fa9e04971b9580b1e6fd63f0e07419a088005b75e852a122a5ee0416afb7391ff165ae39549f8931a157aae1ea272d97be05132e8d"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; - version = "1.6"; -}; -cclicenses = { - revision = 15878; - shortdesc = "Typeset Creative Commons licence logos"; - stripPrefix = 0; - sha512.run = "dca388e065610abad24a76f7dc600d9ae659973fbc47f4fc2157958aa2850d9c3bae7811418bf76effaf696386a62584c8a2ff158e98ec7a971bd1dc800424ea"; - sha512.doc = "eb710fbac41527da39c26d5d27aaa84faf05e380356e9c3bc1a0c0fcb4d2dd5412f304d323ccf13084dfe8d31243698350fbdbefac07fff6cfabceed9f4d842c"; - sha512.source = "d20b1cce1635b415d7368e49a9a32ee3a61efca8d0807b67c7e92ed59604fda1fd9b9d168ac23d54b90e396d971fd421463eb1ec77009d3e077e474166afed55"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ccool = { - revision = 60600; - shortdesc = "A key-value document command parser"; - stripPrefix = 0; - sha512.run = "2b125b2e1fa1bf91abd3968749d422873993a6d34df66bccd2fdf8b71338cd6039be8e584f801fa12cfc90a59e32b3ca0de53ba07bdaeeac745aa2a73d05467e"; - sha512.doc = "05db77b09aba0d4ccb3712a5f5086c93de9ce70e067bab00030e96a23b058b76b69f54b379ac0ad8d03e68a3986687b1ce18a980d9ee5b7e4cb80dd2064294ef"; - sha512.source = "dad84e19fabb04f783276ad11c389c9ab0425d81fd1e91eed87b6659247613bf759064e94de39904d13148393ec34ed0567e2d680c8b794113e844feb86d8932"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -cd = { - revision = 34452; - shortdesc = "Typeset CD covers"; - stripPrefix = 0; - sha512.run = "8b47a219e4d40364e1a4ed4d13245c0c9334508ffca0cff565a8d8856aef32184bdf0a19966027fc4e958a06b4f5a53bfb66188c6fd065a1b3b230cf1da2f484"; - sha512.doc = "5ab78083715332130aacf3a97f6280f2533e7f9383c38ddf431d3486c6e88589cc69b7cd760088fbd2928c9b349ff583bc275ce8d80590234deeaf1e1a23b4ca"; - sha512.source = "094b4b41d99fcc81c4c02ec7aeeaa999b3e5ec7dd4984976021a1d75c5bf9c5a3e3f13b0acb939c14f80ec05b3843fda7558aaf7c324315434b69954084c57ed"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.4"; -}; -cd-cover = { - revision = 17121; - shortdesc = "Typeset CD covers"; - stripPrefix = 0; - sha512.run = "345b001cd40137d9739a97c3c06549c3c7b761f56f61109dd4908c767151515081defd6c432232ec7a9fdeb8e85e95258ded345facdef0cf6bffa82bb5c39fbe"; - sha512.doc = "f22c8eccbecb35d4c3c01788c0eb8ca793fbaf7b97e2bd54ec79e78ba10c13a4eef46c5eee70f1550cc7c378bb01926e8eecc6d41916df22a6e615aacd2b1e75"; - sha512.source = "d8ecc73c18376678b2ee97b8bc81aebae7860e40451427e03f382aedbacdbc17a7761e8a78e275470c36927b3461c422bc62462163c6d92c509eb50cfa75598c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -cdcmd = { - revision = 60742; - shortdesc = "Expandable conditional commands for LaTeX"; - stripPrefix = 0; - sha512.run = "677fd271bd209933428d0b655529b7e6c4bfd6022c37c3ef5456e1ce6fe25c599a9883474c28dc9510e293a2ee5e87a49b797bb562b750e888c622bf6ac6d37f"; - sha512.doc = "bf6d3bb4422dae82e06d440713518dafa98ab7ef7b527268050ebe51880f90e45b76281c1d693f1b40e85f07d7f6d395f51ce2c642094e326c3b1d08534fcba2"; - sha512.source = "50a2f50cc7432505c608aac180f7631d831742c8047a8f3da25bbdf6e83efd9121fe3b5256a2b139b1c3a29da4b2003304148f5f48c745734b811c1d853016de"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -cdpbundl = { - revision = 61719; - shortdesc = "Business letters in the Italian style"; - stripPrefix = 0; - sha512.run = "ab13c84673df8a4da5b694256ab14f3c4fab34ff32e8d2faa8712da128baefcedc19c8bcccc77a585171d25e17369af274176971a33679e07d2bd138d4766603"; - sha512.doc = "5ac8e2878434ca3b30ae20c6d1ca7c19b7ac12a38f9598d265ca6c7c214beccc144b75ff5962faf3b58b74b1ec91ab2c265d5429b98206db1fd1c558fa79385e"; - sha512.source = "b958ade1a2a9f9b685c6d7821e1a97304f0c07b9405a95231a166fe5d8ccd8f89dbf168d38996e1e633629042827cb316b81754996d9b09f4d951573967dcea9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.36d"; -}; -cell = { - revision = 42428; - shortdesc = "Bibliography style for Cell"; - stripPrefix = 0; - sha512.run = "917431174b203fd839d3cf81ed965cc654d66597246ef7a4f9f3c3a945397b546eef1e7bfc4f9fb52889e149ee2fd195dd559c317472831e66e0fc3253a6c22b"; - sha512.doc = "3cbf1ffa3902f49c155f2ee6b13e24b9abcbdf50da4668042dbc720ef20f483e230fd2ffdc8448007df7ced1ed34077811199cda4fbb35c104dce73084215bf4"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -cellprops = { - revision = 67201; - shortdesc = "Accept CSS-like selectors in tabular, array, ..."; - stripPrefix = 0; - sha512.run = "81b8f2983c9425d7b95d916fc5f1989dc266154d4cea7c48165265076f187c82d256fd98989b750cbe15db64f6fb4a935bc91ae67718b5541ed695ede861c231"; - sha512.doc = "a88187cd20bd8ab41077d3221dd6f804c310a3f7e53e1e600872a4edc65dfbe1547ca8599c42a9a10d4d61ea89c0a8da2cf4d60680706605048fb728e7f93129"; - sha512.source = "1cda598a44d2b5c8663927911a291d91dae59d5b0169d34f386910877916a7edd6018549ca36a5c317d33c93096ec77dbdab5528b4fc41864a140aa206112c75"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.0"; -}; -cellspace = { - revision = 61501; - shortdesc = "Ensure minimal spacing of table cells"; - stripPrefix = 0; - sha512.run = "75c32e958beab58086d8ba91da3bf1a4a4b9f3ec306dd5369798298c45cc67ee44c591e616062072ae399aa89c90edabe597665901ec60f46fb9fcd9d4c462d5"; - sha512.doc = "3a6044a5b3e38ea425174481bf0f079943b53b9cc7d68668f5666c72c33cc5edfb82aac08bc3347225e4838dc32579ea611e8fcd2619468e080cc63c11a38da3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.0"; -}; -celtic = { - revision = 39797; - shortdesc = "A TikZ library for drawing celtic knots"; - stripPrefix = 0; - sha512.run = "df78495c7a42a60bf40be46bf14c30d97dcd7c7d1b283f487026f7c3b6a680c750d09527cdd578f69234500eca05764792ddc90ae4dc8005126510ae33fcab4a"; - sha512.doc = "ed29c2882619bc7f076578c91cfb7e1e83af9e6960ee58af78486c1af6aeeb2b2b6eabdf916fa30ab865991c677955c0fd15a43f128aecb635ee30b3ba514bb3"; - sha512.source = "d60ef14ae649288b8b9484844fc9fbf15ce564209c04249b47c3cb0beb96c209c0401cf3f9200ca3be27ba0417c60a2a7a9780341ea311e1bc836753a2df7882"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -censor = { - revision = 67293; - shortdesc = "Tools for producing redacted documents"; - stripPrefix = 0; - sha512.run = "9f61a4830737a7ec59797489ce4fef44d5d270d1ef84b4971eda0d91bd9fb6aca0efae6a7a0d056919d090325592e459de7b9182321cf1025251a81ee9127a90"; - sha512.doc = "3cf23b7cfac9f992890f67fc86f3e53cadef7cbe2725b4a19bab144766c4f1e60a3675685513d062d5ad81b3f13b4b6864c1daf83f76761275aa51b07a130c60"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.3"; -}; -centeredline = { - revision = 64672; - shortdesc = "A macro for centering lines"; - stripPrefix = 0; - sha512.run = "b9db432378f6b24ab52c20e1189734dc7b1285792e5fc392808a04f98ce784d00ed9b87459017f1f798c5e6ff769639f650c3d3abe2cd5975306b6875e1fc067"; - sha512.doc = "023be77780a79180deae33a27b25c333f4499b302d026e5ddc34a2d1b7d45496dc0940027e7982816be0f398837ceb7b0de27ffabe0d1096c9fcab096784659a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -centerlastline = { - revision = 56644; - shortdesc = "Paragraphs with last line centered, known as \"Spanish\" paragraphs"; - stripPrefix = 0; - sha512.run = "a695c30f3b3db43c83e1ae592de9bf32b2856cca45561835e78a03808c7d3d3d8b71f4cb2cf6ecd82ff475012787f953320e4a6a5817ea384382741b7ac88cd1"; - sha512.doc = "850bd95a2ba3c9538e08163b34c900c045808ab69ab021fbb2068e1ab0fd3c5f29fca0b95864203b52704a3c33b81df7ab3cb46eb7296131fd49de71ad0fb876"; - sha512.source = "0463b1c97472750b66fed17bbe1c644b78da98ce4e02cda29cb58c4ad680124d5c5153c0b3714aaf43aab971fe38b471e7c801885d35434210d61dc43a316a43"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -cesenaexam = { - revision = 44960; - shortdesc = "A class file to typeset exams"; - stripPrefix = 0; - sha512.run = "780962e24e1dc4c6c385c18a6c95b8864b1930b2bc684d9a556a1d6579a2a8d06ec0df3fdb085c3ae8115dc72d06e376ed8ea6f6d801af07dfcbf133c9cb9c67"; - sha512.doc = "72d53ea8ffc1827f3965c6f0728aa5f2cae36f645ab10d78ff8c16a3537f79c6f53fd34f388f2991e5cd2261b366e7746a140285df95d17475adde9cee3fcaed"; - sha512.source = "e1668fb9f07baea5ccb79e2f61d672f838a83c8d5d01b3da2b3080473865b9bc8acb0165dad58aa46d1ca296e2ef8dc545db3e856d95f6749310a4c90591b4e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -cfr-initials = { - revision = 61719; - shortdesc = "LaTeX packages for use of initials"; - stripPrefix = 0; - sha512.run = "b4799007822a3bc82370b72ead503661f70cce1beb7a27bf1bd2523283a248045b0ef863ab1dd9bd93b39441e50d51fabe11a12fe6528a7966219a2da2618141"; - sha512.doc = "124dbae846ced93e4cbf5b9c16235295c7e76306830bc9e08cdb5a4e8d0d5f9deada4706c6c41cc383f440e9e874cc1cc338176787ad029f8164bbeba99db965"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -cfr-lm = { - revision = 36195; - shortdesc = "Enhanced support for the Latin Modern fonts"; - stripPrefix = 0; - fontMaps = [ - "Map clm.map" - ]; - sha512.run = "02e30f6d6d19bede2121ee0a8db20c3d96c26ef000ffeab08e800bb1da994dfa2cb356a6d67c815e8579566cf97b33b956c79940de61725524c4a239f7c1a251"; - sha512.doc = "32488ecec8a781f5548419a782775725e6b32276bab5e1d7f660b99468d47e71087fb35b8f4534f874b1dcf236d04eae9d7920fcf0bb46e139a4e7fedc415ef1"; - sha512.source = "643e7f1b48e3947506e97e1596972b686fab538511c2a0749ad936285c1e097ca8677730ea0748d1def6d6318030e7bb289e55d0c8f0ae9fc01fb308e974c24d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -changebar = { - revision = 69367; - shortdesc = "Generate changebars in LaTeX documents"; - stripPrefix = 0; - sha512.run = "2dda64af4a2528e5f81a1dad9002badd1c443d7f1e3cec36b9548254e5b365a641912e720779787cabc6057dca74af42db2e1ec3a9ffe39c3ae5ef7ffe0d8319"; - sha512.doc = "5e0e2766b5078d1ffe87c36d14961aca842ff7d0ee73aefc6277b730dfcf98ea573c822addb2d6b95cc3981e6f56458a3a209c03848eea48170f7452a6261b96"; - sha512.source = "ad58dc8f77ac1f4852d47baad9718fab4549d8fc0f856596cd8501329895b532346a299e412e87840de6934151837eee0af0b4ec30200c1bb99f10709901c9d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.7d"; -}; -changelayout = { - revision = 16094; - shortdesc = "Change the layout of individual pages and their text"; - stripPrefix = 0; - sha512.run = "c6852a40bc8415656b8137cfb90a79cff8f8e9938979eba4e02dadb3c5d1ffef60966f9e5779696402f2b9344026ebc1e22ddeb9dba856d779317ca801f26e7e"; - sha512.doc = "bb81e02317d12b4dae8b0886ac3222849a457563ee8c43e09495596c56482202bb702352a8551f5d760ee41a82dde6b3f3c2bf57b4671831a25805d44e8705de"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -changelog = { - revision = 65861; - shortdesc = "Typesetting keepachangelog.com style changelogs"; - stripPrefix = 0; - sha512.run = "9b3fd70ebd0563138e2811ec8d8748dce3d04b18da636b884887424960ee69fdd30902b85b968ee9f545d57f8dcf8f6f137174b8ea9a7049308cd778f52afbe2"; - sha512.doc = "c729c19b2a80eca9735e2caa46832da20975c89810d3f669c93e66ee4a768877c7ff30d71b2f887dace78303773eaf549ed32a001124304b82d4d51c57cc100b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5.0"; -}; -changepage = { - revision = 15878; - shortdesc = "Margin adjustment and detection of odd/even pages"; - stripPrefix = 0; - sha512.run = "0ef1d3370affd4ffc2ef77031a8713b5c663263802d67142b10fa7fc025569b3914dbbaa5e71e2c643718940a0cb89194d79ec83a83b93fcf5d57e0bfbbdbb46"; - sha512.doc = "e3894d3a475f132e2242a6402899e8b9b6045681ce1fdb05fc5b0570e4d6b8b6980c2b5f5953602690250826db0e7dc9bab2f235d39fa5bda0e1161fd781478f"; - sha512.source = "45ba09248231ad1bf14dfa553b11172e610ae8f46948451437ce3a88521f84791ae149a83c1ff104dd0f00ea6a1a029e816ab7dbe1e38b9eb97902c4a9b9b312"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0c"; -}; -changes = { - revision = 67201; - shortdesc = "Manual change markup"; - stripPrefix = 0; - sha512.run = "c7c8f65cc8a6f94403a1c85b01eece41561eaaef39b39977d02b146ef8dfa49aeca27345eb96ad5f6ee05d3a6625aa0dec9a34def564fb2b25dceaa528d230f7"; - sha512.doc = "26796990ee809dd953fc8f5ead93517faa1bdddf3639d9d51fc2f0ab00a620fdc1950ca78a6a77cb58a5977f702a1d93738312451900ffb0a745282e777f7daa"; - sha512.source = "35fc09ca71c5a7baac4d4bd69ea38f507927ba0c82c2ad7318d11ac22d3e319f70522cedea14f2d36f780bb2c7ea0cb852a111dac3b07273df53291956e9c716"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.2.1"; -}; -chappg = { - revision = 15878; - shortdesc = "Page numbering by chapter"; - stripPrefix = 0; - sha512.run = "8286a7b7664f7634bc5dd16ae1888cc4b70e2880c8749fe2e894d209384da7a8513b2daa318a4154f9b443f89b7eb2e3c6d620b81e1bbfa1ed64c243ad57e47d"; - sha512.doc = "c0d42e7a9cbae3fc7386e9734492cd3f879ecf69551d17483c4f4516c2ea09d0b9b76914decb987f850af362e54c638af190de6d0d6414d09c49cf48c0635f59"; - sha512.source = "371b6630fc12563694db35e8e086f7659e60f49a6b881281bd3bf2c081c6ccc2af74b630b6a53ac9d8b447635f2700f3d15643a02f7d873b5451c9b43a331b5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1b"; -}; -chapterfolder = { - revision = 15878; - shortdesc = "Package for working with complicated folder structures"; - stripPrefix = 0; - sha512.run = "b5f68c160249e9cd94efc4c664a18c04e627d416b304697859144d6bbc5ef787c0f8721d19cd6aab6c60864dedc65e84b3ea9114b7c823a8131b4bfdfad0c2b8"; - sha512.doc = "43a28dd7182e02ebe0541c7b236046a6c23d55c73e36aa1a0e85954c5efd917667e1916ed0bb7000cbc5285230d162d5e844726282f0bb93ff85dfbde5fe8c57"; - sha512.source = "179e4fd7966f1bc12fa89fa36a5e292f0d9937bd5ae74dbc9ef5846b0d55fdfd53e998fdb9ea40311dd34c7a99646d2dfb309fc942c6cfa3ada312297975f1e9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.1"; -}; -charissil = { - revision = 64998; - shortdesc = "CharisSIL fonts with support for all LaTeX engines"; - stripPrefix = 0; - fontMaps = [ - "Map charssil.map" - ]; - sha512.run = "214d5ac5b367e863424c54f86a841c4d1d0eac7e54cb6421619906df0e6d81661ac74e6db7369281637252ff295535e8f930442851cd0268fe9d007ddf07a913"; - sha512.doc = "3f492d929afbaff4d5c1aac1d57fc719caa04e4428de280cb8f3a6d376f6f7c3084ea8ccdac891aaa9f754be12eab99ace392d4090fe692b1d195ed12b619b49"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "6.101"; -}; -charter = { - revision = 15878; - shortdesc = "Charter fonts"; - stripPrefix = 0; - sha512.run = "706efb4e3daf7c304f5047b99d1f68051aedafc110cdd51b2e3cc520ebe628a87c41579cf476978e70aa0ae920e7a3aca1082013b41be8902174975e164a8f9b"; - sha512.doc = "846ccf6ea679e3fc70192e340ce79982cd916d1383579a8549dba7125de645e4fcd4c276800bd5815fcb67d7227081a66b51f42dabebe8cf112585ce9685fb8e"; - hasRunfiles = true; - license = [ "free" ]; -}; -chbibref = { - revision = 17120; - shortdesc = "Change the Bibliography/References title"; - stripPrefix = 0; - sha512.run = "c87fc723f7d78aaf6f47f0eb34760d20c22a46983e802f1383ca4d952b354e199fe17dcb0e8b42e66522826f71f1031c59457ad4c5f5751c6ffeba66adeb4c30"; - sha512.doc = "58c43dbb1274e99ab60ae8c2911dff6d73099c02f3c6b4b97eeccaa336f56e677ad3a1897a4fd782cf97e59b9938c83f13c0741697630d2dcaa4a7daa0b852e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -cheatsheet = { - revision = 45069; - shortdesc = "A simple cheatsheet class"; - stripPrefix = 0; - sha512.run = "5d50e5bc579821cc9296209983af68f5c12f6aaea90dffe386efb85d72683c10dd518fc2abefd51687402125bdd4f108ea6325c546ed6b2216cff130abdd1a51"; - sha512.doc = "0c798c7057e6e9d8b3aabaf745b374823f0a186e95a01d6208ec22df8f733f02a86c01b35bf4dfab88837574fc63f159ffe177f6c155e52f85bc0d062966acd3"; - sha512.source = "66f00ad307295e106dbc45827a78041329bc8f4eb7fb3eff6b2c34ea6614b84496e4cec43e81213304022121268cef3e844f2f55e95c850f56ad261068448127"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.8"; -}; -checkcites = { - revision = 70398; - shortdesc = "Check citation commands in a document"; - sha512.run = "4782a9fb2223102492071b20efa40bdfaf9447165a108f680d2148c057507349a0c14f9274265ee2954b75e5f6fc8b1457115f60324e4b6598954babc565dedb"; - sha512.doc = "dceee4bd22f760a6bc1a48fa49b0c68a0579123dbbb7422ce71db2eff910156425a0d90f62b9d62c4f4763d657c552f0cc5298a8627dbe98f0d5b6bca782b8db"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "2.7"; -}; -checkcites.binfiles = [ - "checkcites" -]; -checkend = { - revision = 51475; - shortdesc = "Extend \"improperly closed environment\" messages"; - stripPrefix = 0; - sha512.run = "40af84a5510dc3038c536c4b0aae0176651f01953650c1e6ec8b5d76459e7000246205d55f2b13ef566930649daf1eafc38e6d2d822787d1fa462e99837b6ba7"; - sha512.doc = "0527c3c080f502baaaaa14a398ecbdfa714cec872f6cf8391ef8a766aa24b497a0fc00012433409904ea11d7fec425dd7c7116a52e8d983bddb2633248d2b090"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -checklistings = { - revision = 38300; - shortdesc = "Pass verbatim contents through a compiler and reincorporate the resulting output"; - sha512.run = "599ed476321a825bea61fbdd468670cadcdb11249a4a9324fc88339a9445ceeced3680459dc2d27c2e6263cd207ffc0ce3b60b325d31072922bf4644478cf544"; - sha512.doc = "3f8d6eb67f305fa5e03bb625a4034ffe616a6c0223774688463884df99c337c1e5bdd76bbfa3b9428ec4812ec72388979c4252ba7407ae8b79e3de7cfacbeb01"; - sha512.source = "a7435841305ce368f1bedac9cb531d8f0fce3fac27484547821a2e82998e977968e578601382f4cddf6c089b42e8e175c56d2e466faa5c4c0e5b49edaf6baf1d"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -checklistings.binfiles = [ - "checklistings" -]; -chem-journal = { - revision = 15878; - shortdesc = "Various BibTeX formats for journals in Chemistry"; - stripPrefix = 0; - sha512.run = "afe7c82f6e139c1321759ef9125f262d504bf602c1c5e16a11d41cc00ea47dac3f2befd602a863a12c46beaac4c50fe6fcdb145c5c6582c9d44c2740aa1b7743"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -chemarrow = { - revision = 17146; - shortdesc = "Arrows for use in chemistry"; - stripPrefix = 0; - fontMaps = [ - "Map chemarrow.map" - ]; - sha512.run = "4a95a6b81bd649764dea052984eb21c7f9e89c612ff96d23907eefce29e2d33fe92bd7944d94a6b108213d1820b3340feab35e3646f727288cb1df9b78302990"; - sha512.doc = "882e6c6fbeb5223fc1d2404e8b9ef9bce2c3b2ed1279d2bdc45616476a856c63fe07cdeb42e27f3bc459199f3537fc620ef08c00f4eea83df77502463fc30ca6"; - sha512.source = "19903052aaa97902f721892bf4a9df8d685db46ffddb4cdeb4df280c24a72d2166bc13408a32d5c760272aee45ad5516b899c0024ff3f077fec6825f94e36736"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.9"; -}; -chembst = { - revision = 15878; - shortdesc = "A collection of BibTeX files for chemistry journals"; - stripPrefix = 0; - sha512.run = "f6bc14345c841db93207745de1d6ce189e08a30d17110d8efe04af0c5aa98cf7e3a1208e1969afeca0c69f747fb5db39437645e2437f9596ba5a70610747b6d4"; - sha512.doc = "3263dbeee44d46b6661e2e755ba10e22475432d03de6b3286d1191acf2fc8df1541d9a9684d5e00143dbebf65bee468e9244ffe73d7ff43889153925b6edb379"; - sha512.source = "c0c6658210450aa13a17e04eaee082f4d08b71a50a1552b571a49557ce8422d709da325c8bc91e742eeae04de388a777134a4d626d72409da3662c2d152cfc12"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.5"; -}; -chemcompounds = { - revision = 15878; - shortdesc = "Simple consecutive numbering of chemical compounds"; - stripPrefix = 0; - sha512.run = "d8cafe15f21045522812279337f9680a975a3f9b9930231b7992435bf694f8f180b061623bdf5fbe7dc9cfdf7d6342e0d6c2dae1cbe0d8e855699064a97a95fd"; - sha512.doc = "26d9568f73f6b0c557cc55b48a99826b70d87724f7f5776f7c58691e8374b3b6ed400206b338bb0397ae5e0c1df5d1bdbb638e80d0dbfea228138b96863587ad"; - sha512.source = "d1a0c821c6624efcb31ca21ab658a64919dd6eca51add909bea4467dbf47b20dfb60f10ee979a7525a04bae0f7440ddfae2c244da25444ccf0486708b4d1a1a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -chemcono = { - revision = 17119; - shortdesc = "Support for compound numbers in chemistry documents"; - stripPrefix = 0; - sha512.run = "29b6e78d47cdcb21c634540ed6a935cd5c6eea5fb6a28ee85cfe681ff00c8bd24d7175ee5adbbeab03e11db2f56a38d3359235ed44771976917f35c673fd21c5"; - sha512.doc = "9936d1f0ce1e6ab9498aec9d68c176ddd803de3ed1e5a698ca7b548203cac66492ce319af3e5951144ad11878065c8b349f57668498d245413d7db62d1b6a8ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -chemexec = { - revision = 21632; - shortdesc = "Creating (chemical) exercise sheets"; - stripPrefix = 0; - sha512.run = "62f374a57c799873aa4d1db52c56fcaf2f15dd813e3bd9295044499defa29a88567034e39b20af1e8a7e4208dcc35aa422c0ea8e1e0925fb1ae3e02a1a8cb482"; - sha512.doc = "83b622fe694111fefb9c7863d5322f7a717778727c99db3fe5eedec0b6575d4fe50e6b5076413cbbf36a222ee7765bbb847c44783d6ce45cb07f55bab16955da"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -chemfig = { - revision = 69227; - shortdesc = "Draw molecules with easy syntax"; - stripPrefix = 0; - sha512.run = "1f5908b759c39314eb999b4d1e60ac364888e4d6193673bd387ea838eb9bc257500b0603055b2182cd5be581dc1d674ed4eaee6ec4b0ce225f72ddb77f67ac80"; - sha512.doc = "1af123c858992787d641eb6f0263f5ed0d819c4264e97191ae8058714039e202bd9bb663e25104775d9362ca005acdb056b3c97c238b1899880fb51665405a13"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.66"; -}; -chemformula = { - revision = 61719; - shortdesc = "Command for typesetting chemical formulas and reactions"; - stripPrefix = 0; - deps = [ - "units" - ]; - sha512.run = "907efcb72ebf3a315bffc11a8d78caa82b510993b4a4de1da8a960bbd6c66bdf5bc202933fce5f4f0626ad4507a5095b571487beb2414bc49bd37e735f0299f1"; - sha512.doc = "c839fed7313744c6abb77fd4f803524c47af7f9ca0e4b533b307a198cc2fefc072541d58afca8cfab6a17b85ecdda4d3bacd451ac9616b47a448560a97f3b62a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.17"; -}; -chemformula-ru = { - revision = 70357; - shortdesc = "Using the chemformula package with babel-russian settings"; - stripPrefix = 0; - sha512.run = "ee12aadfaee03282e1cf9fcde69bf141abf0bcc5ed5a35ea78a54111494c5cb65f97a3bcdf8838a536128b05de1039a9caae7ef5078188811a54d12ec4f41855"; - sha512.doc = "290b509e2eacd081d690f857ed2a2ba3f860ec25788150af8da5f3eedc5291bbfeea84e117d04959b1a30775ebe72e88f2c0a4a4dc89517ac81b239e3c001d39"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -chemgreek = { - revision = 53437; - shortdesc = "Upright Greek letters in chemistry"; - stripPrefix = 0; - sha512.run = "8e70154271fb921ad9edf6ab5f8a21ce7c229723f88d7e37fe17aedb189c67a5749ea9e622c2dcebeedd614efbf18b9138e0219aea998f7a8ab3087348afa788"; - sha512.doc = "69ef091ed42bb40826af81c9a4ce5536873a5debd971d70d30804f75a3240bc1aea037817cdc42346537cd025306c928fa347938785af9e69022ef51fba20d2d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -chemmacros = { - revision = 62655; - shortdesc = "A collection of macros to support typesetting chemistry documents"; - stripPrefix = 0; - sha512.run = "814995dfe7978e639594d51542ac7b86f419d48ffc3d39f069c24e84abee854e01b9d72047ab44311d500b98ac1d01308b56a77006cf14a975861e45d83b9f7c"; - sha512.doc = "dfe4411faa4ae403d9b46b9f8f0e821f810c1c9b5a8926149643f099b164c7d1f163ba3436c79a8b9eccf84ac234df74c080fd2e4a9ac58452b840c335b685dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.2a"; -}; -chemnum = { - revision = 57490; - shortdesc = "A method for numbering chemical compounds"; - stripPrefix = 0; - sha512.run = "ea8bcdbb4e69422052758aa7c49f8870c468834ca15833ba4aa89df98c88dd025b4677a9a15b85dd9f953eed6e05b62bd8ef2d4849bdbb113f16de9fbede1205"; - sha512.doc = "31d1e6c6165f7d8ab15ed322b1cacea608fc796c74e3cbadde89a56f1e7bf45c01bcc6985d24a69b459976f75565f35f61174fc34562265b7f159b5b42d1ac30"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -chemobabel = { - revision = 64778; - shortdesc = "Convert chemical structures from ChemDraw, MDL molfile or SMILES using Open Babel"; - stripPrefix = 0; - sha512.run = "bd6ff01187b408d0f6d40dba470cbdb9cd72294ca425f76287d1a0d01474ca64d15db42907295b5a90958d3b5a18544a66d6b49de9a9b62e21fc3efeb6598569"; - sha512.doc = "ae4ddcb5609bf5d3c634847c7be934b4a688346469098257fda8838ff2fcad4fc390cd600991648274539cf65c937d82d337840e0500661014755bd4872e59d4"; - sha512.source = "25c4b787d5cbba3fcf0c80e134c627b5a5e09524afc2df6e428ad3430bfec95e0bc71dae2c759289ccd9d0dff736b35cea1504d4158e3b6f34af9cd07b29b208"; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "0.9l"; -}; -chemplants = { - revision = 60606; - shortdesc = "Symbology to draw chemical plants with TikZ"; - stripPrefix = 0; - sha512.run = "6d5794cdacdf71db6cef86b9bc99af2edb1a13f2b209d7693a7f37cb5161596de37b656b3e4ae690102cc64cb7245b21004c72943fb8f5e08fc1ed1479d98947"; - sha512.doc = "50cdbc24501b61b81c2cde97c851df785599f5c2f5c3e4eab75bdebd2a81501edb9e3223dacb2042682a066f5640e8b1377c43ca61ec643b342f6de2972ec4cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.9"; -}; -chemschemex = { - revision = 46723; - shortdesc = "Typeset and cross-reference chemical schemes based on TikZ code"; - stripPrefix = 0; - sha512.run = "c7375af2dbf1a7b55d41b0ab617111cc198f1aeac98c354813cb2886e0707ce5648d3e4fd9eefdd23bffddc08b96c35a050c1f440f21d5a2d7d5c6b5e0b6aaac"; - sha512.doc = "b5e864a02ed664e7d7596b56e2583f9a4aff2b8117f79415156df0cab9be084bb96eb6c70c4fca9dd4bd03b30e8b145e4cd809b165d17325625ae625c33f1dc3"; - sha512.source = "56174f5943b8dc3aa0cccaefaf9d3f24903626d3c4eb48bc79f01f2a7be603921f7b1ee300e4009038e3a92cd550c08c37aff239a9426ef3277e47f645964488"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2"; -}; -chemsec = { - revision = 46972; - shortdesc = "Automated creation of numeric entity labels"; - stripPrefix = 0; - sha512.run = "7a69ed2535d477063e55541d53f73f5d1972905f63d2298629522dfbfbbc97dba0e9ea4a48ed1667ad7b50e24c4a0f7b6d5dbbf79863c9e79a0b3de522be54c4"; - sha512.doc = "5e132354e874b3ad5a4363cfbcad49e3601380dea8f53e106bb0b5d92fb1aff6facfedbad69444ea362c76473dcc7bd8703beeeda9b69f2501d995da98ef71a2"; - sha512.source = "b81e9807d8a082b1223d4747a3f0ad3eb3dd21d1d145de5c25b8c44a384dcd941eedf7117c794efc6e4af2397997d060d0b80bad1c7f487ae98b0679f5412b2a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12a"; -}; -chemstyle = { - revision = 31096; - shortdesc = "Writing chemistry with style"; - stripPrefix = 0; - sha512.run = "299e15460a64019177530a4d28154453a813c6987e6e89b6f60466ae9e59372c1a5e0fc418c49b85364ba3185d4fe4e4b7f98caad9add7dce9bbe1792d4e314d"; - sha512.doc = "f8d6c51cd7e3df7ea8366ade62d0cf8ec3825b0ca54be600107a6be8853d1c58e1989f5c13bddcacd97673260890fd0f63e9a0282203dbdbc6a01653d86f0537"; - sha512.source = "0ee97edc8ecf8f08ed39ed9fffe18b89249c513f33ff415e4205619395baa6e8b7c77832d5110d113d78d94c1d79ba84f79a5ff23a43fd0bb23d19db96badf52"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0m"; -}; -cherokee = { - revision = 21046; - shortdesc = "A font for the Cherokee script"; - stripPrefix = 0; - sha512.run = "731fb10454a9d359d91abf927a27215e72283a9635cbd853a6738ddbd5047d81fdb8d547b891f29836d0b604d97749074e9f2676c5ad122522d987ac9bb46105"; - sha512.doc = "34b258b5b699f644cc0f7f9b673f3dbe48357bbd338726af2b404da4888a9e742f04e397cc3b6a3221d218a96ac7180ce1e6ba80a19c688de0960ce59cb14bb8"; - hasRunfiles = true; - license = [ "free" ]; -}; -chess = { - revision = 20582; - shortdesc = "Fonts for typesetting chess boards"; - stripPrefix = 0; - sha512.run = "236e195febc213825fbb5569d8eddd1967fbce1c6e9d550a1c52729be43674e063161adcd5dcb1f6293d9ecf8809518d40064fee08ab64ffe444affe3282224b"; - sha512.doc = "95d3b598f63231abb6cdccddc970d6ccb29bec7e9fa29efcf1391bca70b610e9c0bc65754061a4b955548a854bcbbdd8cdf05f8f93fe52bea400b7c281ccc0da"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -chess-problem-diagrams = { - revision = 63708; - shortdesc = "A package for typesetting chess problem diagrams"; - stripPrefix = 0; - sha512.run = "a1abc825710bea252dc9dca092c9bacebce5af21672e413425d5ddbf72022272690db31abfdc6cc4738a1aef1b802f95adf93264a4ede8c352409b2dc11c125d"; - sha512.doc = "47c2e1fa3790f7229a2402b5e20edded8c2c7908d48e16a228c55bd5b23e94d77a5e1cc9d00790238a6fec4fdfcce1915251a08b6aa487ff63e18fadea6c62f3"; - sha512.source = "b06728a4f2390692f2ff557eb06484e29baa408ec21cd8f688567fb84dc7d67cd87da8ce4f743ce51b5f43267d0c0fb8b058d4fbc848ccda71a02ac29fd5ee6c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.21"; -}; -chessboard = { - revision = 56833; - shortdesc = "Print chess boards"; - stripPrefix = 0; - sha512.run = "9447eb4dd8712ccbb519f91e99ccd1c64cc0e9ba904bd46dd8c83ce03c31e5caddca8e76c2cfeeefd5946c8881b9e6b198d50c131a1e8d5622b054d1459865cc"; - sha512.doc = "1c2e8ab2776a247ab1cbaf5527e04392dbcd1eae3a9b1c6785223268d1811a778c0812a1a5437a15cf4bbf08ff28785a57da10c472dd7567f1f0217b2d7de556"; - sha512.source = "674ac2dd69312d3959bca053d5170bf98381ec70e3d688c991e276f07260c10ded70055b4f9b819fa0cefc8f1ac7850dd9df61d38a97b58c0fc05c824a42c3e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -chessfss = { - revision = 19440; - shortdesc = "A package to handle chess fonts"; - stripPrefix = 0; - sha512.run = "8250d4b470a74877c44093888657b0a3c6ce71abc2a23780e71590d0398fc08943ef77ffafcfdabdc6bfd739f7d5b4ca15f2436df103271de029e5ff6102f579"; - sha512.doc = "1f9e625cb7765450fde23f5666af3b43ddb9ba2e67e7d04b98ef19446117cf26eaec3c2586be7c683286dedc37f8d628e4142bae834af716f2c068ac28beef58"; - sha512.source = "8745f5c712df2da39a61aa3d7ec3b6b4917c4905e3a0c4ac25ea6484555f25db6fd31b49a9c86566f69a660108683b4749abeb17f512ece9af54ffd7806c1d79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -chet = { - revision = 45081; - shortdesc = "LaTeX layout inspired by harvmac"; - stripPrefix = 0; - sha512.run = "d4a43d5ed1f8e74f0b4681abeb2b1134e9ad770cbde69679d53ea77e09a1a23412f03705691cd31110d145a96dd97e078d675274342c9323b849c770828db5fd"; - sha512.doc = "143b224d3ad957def3ec22a6e55c1b9eebd5db582065d422e1cf972580eb321ffc768c51cd687add62c01ab1cf3dec170422e6d9bbbab01846bf3e4cf84ec936"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -chextras = { - revision = 27118; - shortdesc = "A companion package for the Swiss typesetter"; - stripPrefix = 0; - sha512.run = "6fa92c9cf1da7cbe2ba74dd10f1f71274e25b228156f01efe5c67e54a2ba258500f7b2cc39fe935d4e92c641b760eacb7f39ea70643557ade4816e92e92a0b17"; - sha512.doc = "8bcc8a6c99be02d8e0babc82ec016fd6e91823a31338701e3d741af895a1d87d224a849598c2784f5de9cfefaf9cd7a09ee5b102636114d528b1e17b830ffecf"; - sha512.source = "1b82f258f1420b07699a0ee75f99e330acb4b9ad1fadc9ffb0f42a1a4321cbad9c08718f9bbb94185eea9bef8d707f729d610b5f671db7014fd237dca5fb0d6a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -chhaya = { - revision = 61719; - shortdesc = "Linguistic glossing in Marathi language"; - stripPrefix = 0; - sha512.run = "c8174ee6bbb8a57448caee6cd23bf7e41790dd1ff40cf496360548fadf1e7161b2e08b2ef53abb51b1410b406689267ce2d4a8668d052754e323a1d836670ba0"; - sha512.doc = "0e6bab691d5a5965ab8ee575f84aeae44d26ed12fa8c7f636fd0997a4ec7c1d4efc4a43f3f451659b69bd367c759dc8c3239ca51c5d12c91ef7182e43acfd126"; - sha512.source = "635430d05de402f7e56110516fd16ef455c1393cda27b61198ebf92cb9787b01ce85f58d0e06389d823a98a73514470d83624d87a035565d159323524de09439"; - hasRunfiles = true; - license = [ "gpl3Plus" "free" "fdl13Only" ]; - version = "0.4"; -}; -chicago = { - revision = 15878; - shortdesc = "A \"Chicago\" bibliography style"; - stripPrefix = 0; - sha512.run = "2313d7911a8c6bbcfbfb25405e3fd2ea8c0721045f77b9ecf27e4daaee5cfc1a5c010c72d192583e6025aecc6f69421fbd7921d63daa9f29145eb6f9c96c3abb"; - hasRunfiles = true; - license = [ "free" ]; -}; -chicago-annote = { - revision = 15878; - shortdesc = "Chicago-based annotated BibTeX style"; - stripPrefix = 0; - sha512.run = "be2bc8e7e8eaa881ed7a8225b211ef464dd5635b93b867333458521e405fa42375d4804fbdebe1b913fa694aaaa839703494a155b0ea5d4a99162f6335ccef0b"; - sha512.doc = "893ba3ff20355e0c395b2092fc01689bd956eb177434ab7152aea686210a7167a04b64ed8ec21030e4f4cbc7e1367a90976168b174fd068d6aecbd0304f380db"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -chicagoa = { - revision = 52567; - shortdesc = "\"Chicago\" bibliography style with annotations"; - stripPrefix = 0; - sha512.run = "47cd96b4933b6c0bc4af01e5085af2450b60168813715c946ea18e3e7e5f6bda409862638038917bb678579bfba127fadf51b9a5916e4fb6c78bd10481a273a4"; - hasRunfiles = true; - license = [ "free" ]; -}; -chicagolinks = { - revision = 70566; - stripPrefix = 0; - sha512.run = "191bdc3b9a732cf2153dd6d31a94dcf2a306cf1af9d1505bff28b47456a90c01a4d20717faa09b2a6875ba47852479c14e1de887a4f4b1165fa1aa9d648f3ccc"; - sha512.doc = "9bd3e34a2d897859be082969ef65e8bbbff71e318ad5a1891b1b84334b80f29b1d16d29c318e7bccffd62121a62039cb89093e72163651d1ab84db0ddb279cef"; - hasRunfiles = true; -}; -chickenize = { - revision = 57325; - shortdesc = "Use lua callbacks for \"interesting\" textual effects"; - stripPrefix = 0; - sha512.run = "3cb2182717630c6d251a055021ff671eb930885e5b33978c0cd51176225b1743938447e3d761cfa83c9e3f46cbca1b5686c18f734a1ea5fef50a7ce48873ee0a"; - sha512.doc = "a2a7ccaa210583de7a765b940959ed4cc2678c6800b283c05f301814b69bb8c704394f8795a1824b41b03652e27106b9e47ed9d5a57179df685294fc3caa16f2"; - sha512.source = "614f105bf01bc1a36ece9ed319763a06fc2480bb5c5b1845f47b17ae1753e9fea5e4f25dab9b35cd493d2c6c31de1c636723b676269495d85829b683420b7e6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -chifoot = { - revision = 57312; - shortdesc = "Chicago-style footnote formatting"; - stripPrefix = 0; - sha512.run = "492361fbe54dae9585b4d62eb1d3c3bf4a81ff8ca8020ad997cb9b30c673cfd8b35cf8ff8d742fe6c1ec7cf529e3ce558b9d5604851fc39c75d72d0fda37dc6d"; - sha512.doc = "34f5bed1ff3660a5fb1fdacb0ec26311fd47593ed6aa659d12eca8141262d9fa7d6c75b2601dc59a38ab02212269f0e69a5fb5da3d9ae1d884f25677f0f6b545"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -childdoc = { - revision = 49543; - shortdesc = "Directly compile \include'd child documents"; - stripPrefix = 0; - sha512.run = "b268695b1d91b49ba6a0179124cafa5e5cfed56672424ab40cc31924c07879b4f50be47f9fe9d574f2adb3f183c71d799cde8854a2942b530c40a1e101d399ef"; - sha512.doc = "1a74059d946b82da211f5fed7cb120453049ceaf5f10841a78ff8864b41444064b223939bd2296142bde9c7bececc0ca8bed141be02431fd60f069ecab998d87"; - sha512.source = "d74e34799e3cce5093f59d66d2680350ccf559b0a06045882dad98a60626c59f8e0ed8a6e03d09cb4ff443d3f68a33208af996e2b870047fb381f97bf92dbea8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -chinese-jfm = { - revision = 57758; - shortdesc = "Luatexja-jfm files for Chinese typesetting"; - stripPrefix = 0; - sha512.run = "28dc8b70bf5e97a4e31defe09a16805a57054a019fa7908f6dda7ecededd8a37bff3f782d04a7c2fb72ec17ee1695d5a5a68daf3a159092080e5a7d667b4c9e1"; - sha512.doc = "6b0b2e65ba4bb79a6c6eb5e4075a1611b2bc752cefe1aae5b220e663b33fde685184433c397ac4957e4f2a6716129aeff5c40ff2082b2a3bcfc13d591e06897a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.1"; -}; -chinesechess = { - revision = 63276; - shortdesc = "Typeset Chinese chess with l3draw"; - stripPrefix = 0; - sha512.run = "6ff5ef8c4c29263da38847c6c836470c397e9838c765eacdd9859a055dcc719d3385d4d9cddf5ef7e92196f99fcef8470445686c1d858bf68608429b1cd7987c"; - sha512.doc = "83d08a949754dd38beea350cc1c5f2b8d193947a909efed156f662b77a8505f993c8449f21655c48c6ea78891ff15395d34796479fe081d29958fe6a2c0ba49a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -chivo = { - revision = 65029; - shortdesc = "Using the free Chivo fonts with LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Chivo.map" - ]; - sha512.run = "ef91cfbaa46c34bdfd891c3bb752e203d1cf495d5a9f12523b3c59fc591c7abd78ad943d3f4da8abb46fea9f25cfbd280785c721cde155851fa34f3f3a71afdb"; - sha512.doc = "b174894b8ebc6bf729ca8c8cabeb9d3fcc709d4f3e0947c689489e4caaec985f35265d476e44763fa5bfccb83308857b03cdd01ec8e7e47cf406d6a86a10d071"; - sha512.source = "768f1a93665644d547e611abb5b773390205ba2839812ce222bd7d7b184851d46c7e1915d290e6ee87490faa6a8b0a2c59c3fe4a16d86bdb28fa77d6df4e8f3e"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.2"; -}; -chkfloat = { - revision = 27473; - shortdesc = "Warn whenever a float is placed \"to far away\""; - stripPrefix = 0; - sha512.run = "2a08b71c204709846bbf26ec3883e9037af6ff22e9bdf13b27319ceda55381eb9e3816ead4e444eba4b8a050a188e58d14f0d9153a813953f587c6cabb3932b8"; - sha512.doc = "b79b6bd6943dcd07656bb46d44bf50ca2c0148bdb6ae711d17a49e78f3bbf2b95781cd6f3d0b2f7625b131f7485d3db608c963367dd91dc91070501b367471b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -chklref = { - revision = 52649; - shortdesc = "Check for problems with labels in LaTeX"; - sha512.run = "12f5e950ae439d0efd3f625572e8b81d993485a1efd71dc04c078cb1dc9b76650de3c424d7a6c60ebc5ccb5d29f37ed04c477ea1306acf4c5f4fccbd95e18985"; - sha512.doc = "5aeb13824c1781feefe94215f3efce15c212e0d38f9e0d5fb393e96c2159ba43f165c600cd64ee9d8c42c0a4f0db6c2e462ee85a93993965bad0420b6b662ef6"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "3.1.2"; -}; -chklref.binfiles = [ - "chklref" -]; -chktex = { - revision = 64797; - shortdesc = "Check for errors in LaTeX documents"; - sha512.run = "7c28847e87e788d0f50c07c1c3140962a70173d2a36997720f3066755740744060ecd03272662aff563de39102052e91a4582a4bb63e35f918ad8f517dff55e6"; - sha512.doc = "28df4bed075d66d9f25bcbe332731f1d5f0bb0f7f92bd2f3618c84adf788d0f429bd0c6e75381ebf7bbeac98409d94f85d17ebd752f9e4af707d9e3373d45f97"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "1.7.8"; -}; -chktex.binfiles = [ - "chktex" - "chkweb" - "deweb" -]; -chletter = { - revision = 20060; - shortdesc = "Class for typesetting letters to Swiss rules"; - stripPrefix = 0; - sha512.run = "a32f71d89ee69ad60de6173f415d0a3aca7563107cfed71aab0ae99972a2ead442bc75f848ddf07c26c5d464b2224afed5ce976bf037049764f722396e9666d9"; - sha512.doc = "05cf8a4f37eb51cc00d9c254dcb817c41167eeb7643f7a793d1a841bd2c8a3715ced2036b974533521f48be48ae493e52ef0809789d36155d1ffc9624db538d5"; - sha512.source = "6e4c5063d7710fe5842ba684705d4b94478a9d468e68d60fe0b2ad23fdf717841421bb034317cf240269b77e4351eadce854145fe7e4300b2f9b698a6617679c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -chngcntr = { - revision = 47577; - shortdesc = "Change the resetting of counters"; - stripPrefix = 0; - sha512.run = "0fc94f91911c623578912ed43526d18f85a003f797e94ef5610aab8477154078efae7000256892cc3d3103843ac8065c27d56a10c6f57c16d9ff13693930b0b0"; - sha512.doc = "3b63e4676232c05516bb12c189873e4af39b8b34df2690c897c4733203c9f19a30759850979c47b05e5fea0bd1c277a5c1ea0624709cda6a3a4ab0196231afb9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -chordbars = { - revision = 70402; - shortdesc = "Print chord grids for pop/jazz tunes"; - stripPrefix = 0; - sha512.run = "4049c18bc34bddb954779d2b534a84791967e6d9d5c246136a046e4358f3d2b7a0127705db5cb5ebcc0e822241dbb3c17dea23d194ea71ac6d7ca40d59b9b37e"; - sha512.doc = "1a405a02e3fb813c7abd4c3925b0ccfe38129857ed5d23041ef2eab47f51206ac476727558cd50ac49b6eae3c8f67fdbfca6de252db0d95a951fc28add5a0a41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.2"; -}; -chordbox = { - revision = 51000; - shortdesc = "Draw chord diagrams"; - stripPrefix = 0; - sha512.run = "0e07cae95a8ee5f040b4df4d94f996f772f0780bbe47c77db891fbf44b08f20e28ba8442dee3e981a052b0ccebb0d630e0f0917eb7c65a490c844a65f3b2e3f4"; - sha512.doc = "0826513579953ea80047d596b6c577e4b6f00fcdddb7a06bdc953bccd72e09ec2fd9123995c1e04260ad880bc860454abd283885817a9eb359ec7cb5beba3cc5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -chronology = { - revision = 67973; - shortdesc = "Provides a horizontal timeline"; - stripPrefix = 0; - sha512.run = "0706b70147c064fed807d750e3619d6f6c9ee9d875de70c8e08720bd0fe86e75fe79a2dc909ea9c76d98e0f6cd864957ee213f58f2753eaab86bbf2866b301e9"; - sha512.doc = "dacc8fbf5869df257cc03f0bb4b1c33b2ed7e67f2bb7e4fb897038d623b4f3c1c7e308191a2270e661157d3908c142fc6fbaea349740487797f45feaabc9c039"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -chronosys = { - revision = 26700; - shortdesc = "Drawing time-line diagrams"; - stripPrefix = 0; - sha512.run = "a9503f9440dfa9a42a3f2d345c5e74faa9f40b03264bdf8482ffa58c34318467a7863033acaf089acff6056f91e9d85969676c1b0b080b363c1274ab96f022ed"; - sha512.doc = "1f2078bc645e1a9af4220bf4041391353495f76f530ab5f1a35ebf2c2a534d60a910a9ec079ec2222ced7fc3d9c146bce3d6d4d703acd2bfb9ccf357f6fd812c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -chs-physics-report = { - revision = 54512; - shortdesc = "Physics lab reports for Carmel High School"; - stripPrefix = 0; - sha512.run = "568c7b71838651881417900aa5eb8711d5e38b4496e130802b7732482c4b8d83585c54a507d2f5ee27823c9d97581db7508ea79645275ac8b1b4d02238c814e3"; - sha512.doc = "edfd22aa48a1d3db245d3e41b36cdceabe4e3c2e263d3fb270325b6acc57dabe686561af5359b849e8a17d1f2e9b77f2016cfbcf8b0af37ba3120085de9e6764"; - hasRunfiles = true; - license = [ "publicDomain" "cc-by-sa-30" ]; -}; -chscite = { - revision = 28552; - shortdesc = "Bibliography style for Chalmers University of Technology"; - stripPrefix = 0; - sha512.run = "809c76b1bb47e194c43c869b27352578fb5490f6a9a8bbc2fae662b357bd36a099f5114765611d73fae87a846526781ceb7b45aa8968836c543e15f13e7ad7a8"; - sha512.doc = "215085d808b75d0d7f3e7e95830c63172606fd43e1e30a20e376f43d12959da71e8e77a6f06a6058d8ab9f9406f1260262af3e904ff65254e5d2635ca6d15975"; - sha512.source = "cf81a7ceda538e9a3a8bb0a78927c493d42993bb295680792ba643d6f771722e0fbe342bf59cd3104cccb63b1ece7905418b998c1af1dbd7c879cce024681f9f"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.9999"; -}; -churchslavonic = { - revision = 67474; - shortdesc = "Typeset documents in Church Slavonic language using Unicode"; - stripPrefix = 0; - deps = [ - "etoolbox" - "fonts-churchslavonic" - "hyphen-churchslavonic" - "oberdiek" - "xcolor" - ]; - sha512.run = "6b312822caec9f9d71396b8737010e59521cc59a744c6d2e0633ac26b24ab0ea97ef29472a83b49448e8d82225ccb63926cd91ffdacc523ebf37bfbd2d4cf6b9"; - sha512.doc = "a56e9927434f6d29db7c1ec20c0c3d20cd24241a9883fff160cba111eb5c11181d5ad1b9ec8cb66dedc649b8c8d25b9cb8670f1a28474174b31cfed380a2327a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2.4"; -}; -cidarticle = { - revision = 68976; - shortdesc = "A class for submissions to the \"Commentarii informaticae didacticae\" (CID)"; - stripPrefix = 0; - sha512.run = "1dd802c60fade71ee873cac25440e52b9cfa45293019cba6c22a16a6861eeeea1e15ad4f945dc9eafd95873efc112110b4ec14550f8bf8cdf57bec6fb6e54ade"; - sha512.doc = "ff0dbf03d9c9f371d90adaf1f5d984e5ca6628d005c1345f4e2fa7c2c4bfe494914667d8afa572a5e3eebe73a7d4e01cfff8e1ec8c213d58f71fe64089872722"; - sha512.source = "f46c3d5e483cbc9352793a2b8cb6b92ca0a561ea321633d9589a39f8331ded98e183ac331fb100e4e7e0539674e2563aad95c029f29c00e98798462e25228c9a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -cinzel = { - revision = 64550; - shortdesc = "LaTeX support for Cinzel and Cinzel Decorative fonts"; - stripPrefix = 0; - fontMaps = [ - "Map cinzel.map" - ]; - sha512.run = "5e02892250c5b787e4c6288beae9be2b9a2a2929a31a18c40ab3bb7609a23741e829747aaaa639f8579f229005a2171070853ca79e23b7185ee5edfa090bcf13"; - sha512.doc = "7edcb9894dfbae936ef6dbde1645890feb50ba5914ffdcfd4539a44f8c8ce24f150662fec06663de54e8bfa69479c8ce006038f063f6587bf70f7c3449623a4e"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -circ = { - revision = 62977; - shortdesc = "Macros for typesetting circuit diagrams"; - stripPrefix = 0; - sha512.run = "12f50efbbb07593485120d0e0b428ff2035a44c668025eb4a6ac78ecb3c733c5975f9f7ab4685c71488e7480a3a280fb90f618d03d79f1afed278bfd67810573"; - sha512.doc = "efdc13dc7bc670719c854be45155549fa24e1e195a6a61f84a075aeca1903eb13a6579a330d7ddd6bd5a1b7073217a453e29f790600ad2013e0d82a80763d29a"; - sha512.source = "e9b6ea17103eb8438f230d2066833d8d5281f14367632fdb6e8acfcd8d33348286198ee7438c04d6b04d42bb248554946aa6eaa3a2edb6900b7c20540e5b1617"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -circledsteps = { - revision = 67889; - shortdesc = "Typeset circled numbers"; - stripPrefix = 0; - sha512.run = "41f96e112cba5f15bb36afaccff8852917383269c7ccf8f163972759615d5e5b87c3acbb54e4d14db6572cb0330154e1117f3159d851fcc9d3c5c3efd3c17d88"; - sha512.doc = "815af1f69253625528fda78b1794eae1ddb5cdce357f5af5db5a68385d7ae90386611335fb8c429de8dc13a908ab5253ca2e99ed019590434ab6d087c2dbcbd4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.3"; -}; -circledtext = { - revision = 63166; - shortdesc = "Create circled text"; - stripPrefix = 0; - sha512.run = "473d8ca8d6507148814e0c6083c7046fdb57596e374d1bcd40318c67ecc5a557b324700505d40c1040fc2b2682edae1150d5051e0c26cf9823cee0965ce4f89a"; - sha512.doc = "04ba2a36dbd2c18ae7aaab0f638412590e2d5ca43f2438690d1165f2761bb9b1b1655d26df1a01af143dcd5ca83c161ac7a7c683d3a65de6586398774023c275"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -circuit-macros = { - revision = 69263; - shortdesc = "M4 macros for electric circuit diagrams"; - stripPrefix = 0; - sha512.run = "5bd9c2885a1e8bde8f954d5a4072e00fb7e2b2a1663fa6db5f1346aa5f5022107a01f44175daeb0fa8e84e066c8373de8943b89bed725c03bdf45769dca51ef5"; - sha512.doc = "784736df91755e22f003719b1821b01a8346ffd72036cef10ed2fb38869beaa449a12f8a5782d48355426ac46268f3d897178e7ad06a2bb21fe00672a9d64280"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "10.5"; -}; -circuitikz = { - revision = 69757; - shortdesc = "Draw electrical networks with TikZ"; - stripPrefix = 0; - sha512.run = "5d2d8699c29a209f6f4eb1df363acfc1a7bcda8e7a1b110f50dfb65b97c8b09911a11528e7b1d8e5b64d9fdcf1f9fdf4feae40cf71df9a11b01cd13d64cde91e"; - sha512.doc = "398f50f5b9d0e288a7cd91e0ab222aa20877138f4ddd1963c72caa5724539e1b37fbd54503a24f234270393c6c7f07667d6a39a05dbca6199e9a52785312beb1"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.6.7"; -}; -circularglyphs = { - revision = 68476; - shortdesc = "A circular glyphs alphabet"; - stripPrefix = 0; - sha512.run = "043f30f3b8e7834698e2c70744ebb66f938ff7189c593f54b1d3017b84cd7fe180b5b7685013985f68c31f8e62785804129ba91181053119679ea4f775676933"; - sha512.doc = "8ebcaacfdafbec747a690b392e872a9ee8e7293070e3200ef583f6f5e660a5ab813a8a426464f024c493e17e956f1192984ca3a58fd7abbfb89fd403fc1e359c"; - hasRunfiles = true; - license = [ "lppl13c" "free" ]; - version = "0.1.1"; -}; -citation-style-language = { - revision = 70583; - shortdesc = "Bibliography formatting with Citation Style Language"; - deps = [ - "filehook" - "l3kernel" - "l3packages" - "lua-uca" - "lualibs" - "luatex" - "luaxml" - "url" - ]; - sha512.run = "76f5e35db0ad1ad5a2bc01a6680fc27f5721bdca3f7fb2d10c19e77583947f5fbdd7ea79b8ac63d322418eff0f48b2d45384d0be195eb43b502548773f0da291"; - sha512.doc = "3a432364b82ccbbe402e5aa10e2c17ff5a9d6e9e8611c8ac0e8385fbcc43418adf9a3d2237d10fe9f98e8b60336945fa5ade19583f35c9224a5ec3885932559b"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "mit" "cc-by-sa-30" ]; - version = "0.4.7"; -}; -citation-style-language.binfiles = [ - "citeproc-lua" -]; -cite = { - revision = 36428; - shortdesc = "Improved citation handling in LaTeX"; - stripPrefix = 0; - sha512.run = "39196b799273a2da29591b1b59c0a504f0e0971a6fb12a21bed5ac45d94eb017f1e7c64691fcd46f5c151d867c1ffac706f050fe2e08bf3c58aec8867fa185d3"; - sha512.doc = "f9ccc0e1975064ec792c6138907cd3dc8080ff2fd02a2925d1a1334cebbb2289797b234b46d92be0ba45d460c31359b5c143f20e28cd1aa1827489d04b88d300"; - hasRunfiles = true; - license = [ "free" ]; - version = "5.5"; -}; -citeall = { - revision = 45975; - shortdesc = "Cite all entries of a bbl created with BibLaTeX"; - stripPrefix = 0; - sha512.run = "2549b398c98f82833849a45716d55a776ab3b7927fdc400c2e6d43c45fb0cf628bd66bdade7ca63bcaa2e98807914f7adb958c6a06c27762fb0ee70452d4d280"; - sha512.doc = "f1eaf5ed48bf3fd2bc336b7d91dde09b5cfa9a1901bd6315d4abf032439571a89f1d7c4794ed0256ef1aff0456d275e68326e81627f164652c84de2900165a98"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -citeref = { - revision = 47407; - shortdesc = "Add reference-page-list to bibliography-items"; - stripPrefix = 0; - sha512.run = "5f56fb1d813962358c737023e06bc2fa249712d8ef984f835073e11b075b676e845596a61ac312991e646d72068670b60eb002f78ac322f66d8e5a9bce185063"; - sha512.doc = "21d1a8063586b09ba953ac5df96a3b1552c586d66c5f2af517b1b1ceb75b40f173bd411654dd313c6aeebabc35db7543ea8edcbc8705ae104c7f63e5a5b3cf57"; - hasRunfiles = true; - license = [ "bsdOriginal" ]; - version = "1.1"; -}; -cje = { - revision = 68656; - shortdesc = "LaTeX document class for CJE articles"; - stripPrefix = 0; - sha512.run = "764c9429f8000aede2b8dd85fbb2bd7eedf8e6bd2924347b75d2aa51a05b060921da15b1a55d9cc33582e5fe658d89edf8337e02f164a3de033c66bed3c6c2b7"; - sha512.doc = "791757a59293d7144844cd05ae3346068bef42dee489138e5faacac68b0ed0ec639eb8c60d0fe34e29f37e1238601ae074d43d0e7194f07c1940a0f9411f8f85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.07"; -}; -cjhebrew = { - revision = 43444; - shortdesc = "Typeset Hebrew with LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map cjhebrew.map" - ]; - sha512.run = "65a73380bcfd8892ab2eb93d088076e2d5371019244bc8a65a4695e69a45f743248fce59557533add032a02a0b7ea4f02d6ea4634265d2d9718a5b100f5a18c6"; - sha512.doc = "591d932ae099aa168d55f9479842d25c5212dd7aed27eac1a5d05a111a8a396baae7c73ddafe1087a7b8008528c50b1a85825851643d8107133d41470ce1e397"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2a"; -}; -cjk = { - revision = 60865; - shortdesc = "CJK language support"; - stripPrefix = 0; - deps = [ - "arphic" - "cns" - "garuda-c90" - "norasi-c90" - "uhc" - "wadalab" - ]; - sha512.run = "b13712912e479dab68cab9027042be8cb11047ebf9c034f532c857e83d28f19dfea5a1748685cfe1847c7372f2d0982f79736525694d937c88962c5262094585"; - sha512.doc = "a8c6b2d4d0899b841ccc32b378855d61bdaa65d5f68fd408df3894d386bcde18f384410f34e6f33ee2a5ce770e1e663a05ab038d9b7483012a3cb414739c3705"; - sha512.source = "88be587328daedfed3bdcb289b1a03343bd7257ae180a9e0857a6b00f173f601eccd8e5978dd29c2d95fbab180fcfd5135a682c5218325fc6b664f2cd505213c"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "4.8.5"; -}; -cjk-gs-integrate = { - revision = 59705; - shortdesc = "Tools to integrate CJK fonts into Ghostscript"; - sha512.run = "376a1b287955a801cb223c761fc9bee8af0f587f27f8c3e6cb32ef009fa575fdaf54f5e3847d7b4ca414e3eb4d58d3611ee2194736dcfafe8afb2dd6230c1999"; - sha512.doc = "c1165f2ecd08b279cd0d0b028682eecbb3953659426a1885bbe5aab9838a90107c576a3b9bf80b0d54dbe3fc438c8af8a8c82f5faf79052c37d2c5e85ea9ae42"; - sha512.source = "ee53a480230824eb7aa1ff270652eba4f39e5f160fdd091d596b9da610d8c8c211db3aa3d89931ec16edd36b2662d07a93513563efb3bb5a9ffc9dba0d274ee4"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "20210625.0"; -}; -cjk-gs-integrate.binfiles = [ - "cjk-gs-integrate" -]; -cjk-ko = { - revision = 70332; - shortdesc = "Extension of the CJK package for Korean typesetting"; - stripPrefix = 0; - deps = [ - "cjk" - ]; - sha512.run = "e5b28f36f37e407cdcebf10dbbcc34b4a286b6bf04e6722c1821ca9cde7037893109a81e5195622b5c57de726c408371734aa69b0e1cebef25508794e86a1422"; - sha512.doc = "cbd60b19403c80674b3d2954dbc2728529b81c38fdf84ad25607e188aec9aa14c5496b73d5c998773ebc9a4825748f85a5b6f37f53fcf8fdccd99f7288f6f426"; - hasRunfiles = true; - license = [ "gpl1Only" "lppl13c" "publicDomain" ]; - version = "2.5"; -}; -cjkpunct = { - revision = 41119; - shortdesc = "Adjust locations and kerning of CJK punctuation marks"; - stripPrefix = 0; - sha512.run = "cb44aa3386cd79f05980e5402adcbbf9f8b67fa76bdd5b293063fe9810520edbdf243656cfb54fe17d6ca43d405e6b16e8012eda63bae3cb3d8fc0f7755e2551"; - sha512.doc = "cb9383b6d3fe9ffd5926d10dddcb1ea758aabda232f015b22f61dc8a9b316193b30ca2d8e2b849b1c03d92e0073bba6d90cc5b3b50f47b28a745dff2f7229486"; - sha512.source = "0155261e5a1a22634a4c6c779054198534bc2b6ef1f1d85d471a25bde59b7e872db01627f08db6dc76c7fe6fd08d9a2363c47e79425c80ec5319648c994cbf48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.8.4"; -}; -cjkutils = { - revision = 60833; - shortdesc = "CJK language support"; - sha512.run = "36b0d0ef4bae2a9e5f2238c5c9aa125eabfca509462b65a159f66cbafc690939e16760a86e7e7dcce22ffda2f301c039059cdff1af8ed862017f18552e13e728"; - sha512.doc = "636e6486f9661061d22d248b0b7a8debdb81cd08c56b449067782568fcc7db58922f7c9d40fbc992bdd008908f22a6733af4a8115d85c0572556d01e925c5587"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "4.8.5"; -}; -cjkutils.binfiles = [ - "bg5+latex" - "bg5+pdflatex" - "bg5conv" - "bg5latex" - "bg5pdflatex" - "cef5conv" - "cef5latex" - "cef5pdflatex" - "cefconv" - "ceflatex" - "cefpdflatex" - "cefsconv" - "cefslatex" - "cefspdflatex" - "extconv" - "gbklatex" - "gbkpdflatex" - "hbf2gf" - "sjisconv" - "sjislatex" - "sjispdflatex" -]; -cjs-rcs-article = { - revision = 69006; - shortdesc = "Article class for The Canadian Journal of Statistics"; - stripPrefix = 0; - sha512.run = "6f49b9c02aa67036997403d65a9efc60c0cb7bcc29931d93fbb0359624fcbf4b3899e75c1721155b6484d7baafa79a823adf08fa5f1491352d4bd547dee22a58"; - sha512.doc = "2932d797b3969a5e399c51d2c515c05cf7fccaa88d82d80b99f626dbf2ff7a6e5f7414963696842f1980755b72a06f9e9def3d282f8ff5ca5175ad1ec8d3f1c5"; - sha512.source = "e3ca39b24e2dee6d611ccf7b0753da2d99a419db6d7e31d5aee231439dfd08da4f4bd9f902fa8c65d16df7fb9560cacf3d76ce111ba2881d267be7964c538649"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-40" ]; - version = "1.0"; -}; -clara = { - revision = 54512; - shortdesc = "A serif font family"; - stripPrefix = 0; - fontMaps = [ - "Map Clara.map" - ]; - sha512.run = "549efe7ed1b523e0f414d8f6401137cb0078256f514253199f85e436a5bac595d7525380fd986fd0c674d087decb23fc401f41a67b193c58f1e8e3bf95a8283c"; - sha512.doc = "6b7912050fd352e3095f6abede303f67d3c779b778825852bdaa37345dfec91df860e5b9d0f2fccb7e4e20abfb93740f7f8dba5959aa1d630b7cd990bc0fcf77"; - hasRunfiles = true; - license = [ "ofl" "gpl2Plus" ]; -}; -classics = { - revision = 53671; - shortdesc = "Cite classic works"; - stripPrefix = 0; - sha512.run = "86eaa987025658749c642f5132933745a418002feda5a3dec0f1dd9967a178af7e9c3188cde0b0b1fc8fb9ddf5cd59b68cf95942bd811d978d72a68f44a2999f"; - sha512.doc = "df7d88ae0dc936b8b7f60e98f806b1368d249a838a7407ebd12de05fe10a6e0c9da1ba8cddd3d396033271dd3692451441ad267a187c30cbdf28dd996f707b78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1a"; -}; -classicthesis = { - revision = 48041; - shortdesc = "A \"classically styled\" thesis package"; - stripPrefix = 0; - sha512.run = "9a8c0c9ad0d97f187cf66679613514000324a72d2745c1026889b73e5981e0dcf36f388a0bf630f5ab35d28a39ae50ac842db28c214442ccfd987ff2c132ce7b"; - sha512.doc = "3eb82d6c0f951a060e56c763e90ec842d1692326501f538d71780f4a0981edfda33b0ac0b5d00ccded7d3273fa69d4dd5d4a9c3557d9a69e1c3bc17375fbf43b"; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "4.6"; -}; -classpack = { - revision = 55218; - shortdesc = "XML mastering for LaTeX classes and packages"; - stripPrefix = 0; - sha512.run = "483d96aff1739fc2cdb63e9753fbb86ec93b493ee3d8d104e6089c791e4674d522a30e0dc747a48d8ffc6690452a147b2ad15a3a9cc676c641a9f6aca535563e"; - sha512.doc = "6e30295ea5d7ff19f47d4144a3ea6eadd85d02a80023b426675efc75cd2867e3c79b60a8210f26cb732e5b0e70bcb856d96d7ad98a6165cfeaed64affa070bec"; - sha512.source = "59ab38731bbf23dcda81c02a297c69b5787ce89a69953697651c399dc86e0994db91e5d06358365e8a607a3f15b3a115ab93fcedd8bfc9b3e91946c428e5ba40"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.19"; -}; -cleanthesis = { - revision = 51472; - shortdesc = "A clean LaTeX style for thesis documents"; - stripPrefix = 0; - sha512.run = "0f12e2eb830014bd08e742ed6dbbc83f9b6d17141a4c0a6c00934ff1d831ab7a9e9dfca6931f5842284845435593449b11b8ed9cc29c7c607fe4df14c2b11d7a"; - sha512.doc = "6042357f473bf4bce302b6f43d67fadcf0f449a3f1b1183a26d4b04375d60013eedc7389b002c1f0ed62ab1a8672735774d5aff0d7301e9a5e435080a4181c65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.0"; -}; -clearsans = { - revision = 64400; - shortdesc = "Clear Sans fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map ClearSans.map" - ]; - sha512.run = "010e18c8a29e46acba07013b8ed1ec535373199cb2c62d895c906b24800e2055ab3aeadc0ef8bf761c1d47925c8741bdfec4d18b5cbcb680b07fc258c1313126"; - sha512.doc = "a2be117afd912bab15e5ef69cfd54dd66385699677dc357233efaa73e2bd2cfaa9a29c0cf492f48ecf152a9640c95a4ebdee9366f2c27bcead571b5177345ed1"; - hasRunfiles = true; - license = [ "asl20" "lppl13c" ]; -}; -clefval = { - revision = 55985; - shortdesc = "Key/value support with a hash"; - stripPrefix = 0; - sha512.run = "1d92e279264970ca6d7612c3850fd46d4f3deb74df8a9149d6e63ac19eb665e5affeb1ab9bfea44d07825b80245b0a3b951d3ec08af0834c228a21270bc45437"; - sha512.doc = "d8242b0dc52ad63167fe13a88c28fb4b088061f7bddbe3137a7b541dd1f15aacc75a1c7c1c9b6aee2db1ff14278edf3b83d8eea5cbd77e112f16f8af9e36f19a"; - sha512.source = "abf25917b9a6aac0c3ef310bdddad1063ccbb6c59e844c792638927de403da00013e93db8bb1e9c4a052a65ee8dfb46743404efcc9c8cca6191b2703a6ab16a1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -cleveref = { - revision = 61719; - shortdesc = "Intelligent cross-referencing"; - stripPrefix = 0; - sha512.run = "7e425fd19bd559a2a3f3091f6dd3d6711e6bb4ec01f6a3f8c1dccd60cb6518f3ffe563c1b68e3b379eab7be140f7ff5f3c68dabf3dc85d196aa2d41f81a67acd"; - sha512.doc = "87760a9503b5ead92a1a8f26f9c0195487b5e7a1f97cb11519791f247cf87d35f044f68738d3563ac4a84d7f283d3907eaa816f2d4f8dc4f9cdc5114df639d99"; - sha512.source = "aae3fc03f3ccefc9c58b1372a337afc9f0fc201d3db9938a01a1832711ce10e0f0b13e72da021c328f6bb1099dfafc8378663016ca6969ecef10dd5bf3683937"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.21.4"; -}; -cleveref-forward = { - revision = 70181; - shortdesc = "Forward-referencing functionality for cleveref"; - stripPrefix = 0; - sha512.run = "bf65342e8e5d0a1299e160611044f17a6f68df342ec9bdcfe64c09ed766a7fe72b39a4d1915011b077a42261686a066b8b435f36ec6d2e0b72324cc4bc9e1381"; - sha512.doc = "b89360c16f6f77ed7386f51afcf4e46aacdb6d1f567fa5dbd4d05e46953d1a0cfba24af687abae59a72189ad84eb475d80ffb6c613ba8b3a88a91c9008a1ffea"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cleveref-usedon = { - revision = 70496; - shortdesc = "Adds forward-referencing functionality to the cleveref package"; - stripPrefix = 0; - sha512.run = "2703d610437ab3f244f0e627310d4cb5b5a6a29e29d04458eb7a566bc97a62882e3a5e14bd4717baa77b9062338d91fcbb0b0b05fbc257579b94d8ff550c96e1"; - sha512.doc = "7b967ed70196eca0537012c97dfe91613e9e54a387c0365acece66132cf513c2c1fb7ffd030e0f18c2ca079be4fd5f7ae8f47959ed1d127251febc3b4f422454"; - sha512.source = "c082df105534c961fb1e28065aecebaec2a8d03f2d450d7ba96871f06c9eff232b61b5a4e2ea142f62a720f04d776b6a3ae21f11bdab77dc6c2a95f4db6ce4e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.0"; -}; -clicks = { - revision = 64602; - shortdesc = "Slide Deck Animation"; - stripPrefix = 0; - deps = [ - "etoolbox" - "xkeyval" - ]; - sha512.run = "7218b2bf0f28a0ed382e4884aa30b59c2d8bff76a3d7a09461e5e3ebf1f41648889005db3c79fe203a4d3753a65f76a48058582e25f57e61d972e8256657712e"; - sha512.doc = "fc84edae6c263a889ea5b1d7a99b5fdf2c22bbb45c9c104e63d821a80b498d1932e654034f289a7470a15cb2ea6082eb8d8fedce24b21b9ccbd5e4304043d6b3"; - sha512.source = "ff19c270587c08c28db6cad54e2a58ce23f6041b08b6d611b7ffe6fe2b6506c1a7ae33ded3fe3ec59cee3fcfc276e6a1dc3750291b4f7691255066805ca90158"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4.1"; -}; -clipboard = { - revision = 47747; - shortdesc = "Copy and paste into and across documents"; - stripPrefix = 0; - sha512.run = "19aed32c2dc229852133a44fe5ed692a0d3194d374cc77e2301314b3fff929b834fd4df82e811095049e64ba127180eddb77fcc4211aecd2db40e8124a38d55c"; - sha512.doc = "50e7447b35c1d73c1d36bab165a8bb476764ffcc4ed7994e1bc63c6759baad0dd6c2c1f6a95334c7bf649dd13c8e79d17ec536120f1112d621e833b6f9f80578"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -clistmap = { - revision = 61811; - shortdesc = "Map and iterate over LaTeX3 clists"; - stripPrefix = 0; - sha512.run = "71da5b4136bd73945ec0e1d9fe429892960a9167b39febc0d53b7a628357db59240929ed6d8c31096c170cd0b2f5c60452f364d8903be40a6a4bf0b590069520"; - sha512.doc = "8c0ca62ecf95989e1e4f90b6c606e421bd5f536ca9d7e3745384537b33b5745b221c6485e0fc5d5a52ddfa720e34f6260eb8bec0557d7e4171406ad4985b789f"; - sha512.source = "b93a6e3bda06ce394c006964046d683576474d1ccc6b8cdde069c188cf8d146be43420c5d55a9d22bca554e87ea9309faaa73b5d0b8bb1b56981414b4b99e46a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -clock = { - revision = 15878; - shortdesc = "Graphical and textual clocks for TeX and LaTeX"; - stripPrefix = 0; - sha512.run = "ba378fe241cd2e51b641f0edc4bdd1403477b392e0a22363bcf540b513c1c15b1c0e3ab37020aa77ec147ce59cc7ad6f09c86cadcc0a77892a1a798c36c411aa"; - sha512.doc = "d06e263266ab91b48ae3238af6ce283c7f720c2113d95d10c7de6026b4557b0fcb22aaec44caba2f7ad743e578e9840da1b116fd3372558d545c424159d8f2e5"; - hasRunfiles = true; - license = [ "free" ]; -}; -clojure-pamphlet = { - revision = 67201; - shortdesc = "A simple literate programming tool based on clojure's pamphlet system"; - sha512.run = "bfdc173aa0a79905af238766f162f779296fe16e343a0fc4d41e8a47be2021eaff1cb30129db1238c725f633f3c96264ccc9a2cc0fdf0686e04622090d5a598d"; - sha512.doc = "a8c782042d9c55d234ad5df84d73e0d4abedac2294073146bbb8dc0b01ea40910657d3a3e1bfb324437bc67426f69ccae6eb297b81282f32190e87bb2ba154a8"; - hasManpages = true; - sha512.source = "8dd7cf59db96f9977f9242475c46a6635bf6cbc5c18bf1f44ee65cd6e308a5d0dafd2951b602fef102632ac2f6fdf707d306fb400b02e657c45a4eaf2a52384c"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.3"; -}; -clojure-pamphlet.binfiles = [ - "pamphletangler" -]; -cloze = { - revision = 55763; - shortdesc = "A LuaLaTeX package for creating cloze texts"; - stripPrefix = 0; - sha512.run = "f1c986699258bc9e7e27093a2d44f59d001ab13c3d9ba0717dc9bed0c53b00ce8ccf658c9cc3d7d457d18f45357a6d44da4d6710c1661ffcf299a8791822501b"; - sha512.doc = "ca3d9e0a4eb7486f40e4a26d0b6a2aa5dbf7e3d28343b9069ee97b089e7906aa137d8e7f8c6d010fd2cf472836191b88b9450248bd99728d80159afc54a8d1e7"; - sha512.source = "53d30866958183101890a4999a9b8f4b20b5bbca996d28ca4a22aaf81331f186facc695725917a9e80206545a3e0962b8c17b4e08b4d2db961878a273ba7c209"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -clrdblpg = { - revision = 47511; - shortdesc = "Control pagestyle of pages left blank by \cleardoublepage"; - stripPrefix = 0; - sha512.run = "bdd3de3ea16cb5d24879bcf2255bbe01612f8af70f663b9ac578a4ac98910119ea96b8a5b4a59d25c0406c1b33786997ee2940da0273b025455e334b48f17b7d"; - sha512.doc = "53ba8c83224ee6573cd1549e7e425fd524b5caf65ab139b67e7de9b32bdd5c3c87f5af63c2c43696554fcc33c8bff4690373ad25582b23bf51134b9cb6301409"; - sha512.source = "8663b5fa032e10cd77f4f526d30fd16302fd31c1e5ee268d815de3d4b9aee9fe6688e5c94ba50f5d0cb2bb11c03198401bb1a3bd03c431dece50dab65ae3d638"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -clrscode = { - revision = 51136; - shortdesc = "Typesets pseudocode as in Introduction to Algorithms"; - stripPrefix = 0; - sha512.run = "c26ac99b2f097b3b9df8bcb3ae040da959c0bd238be75a50b3711cdf0b7b0024ef40749169c0fe0437aa8c845b3ee9c9ec4ab46fe31fe6b1e28019fcd4779076"; - sha512.doc = "b74c858703577f79c89b4e95a0fef2012a756defda525c25f2945952b6637fba7ae4c30791a5d566267a16627bf7ce991c4edf726f7106b27b2df3c2b81eb765"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -clrscode3e = { - revision = 51137; - shortdesc = "Typesets pseudocode as in Introduction to Algorithms"; - stripPrefix = 0; - sha512.run = "eb609d4204f9292b387fb8ecac13eaaad77e1d32870cd29f4996771acc5f8e82560e3fb9dcd2c8284888ed55d2b7bfbf931b50e01b0e4b8790c2ce5ce4445588"; - sha512.doc = "0792d458ee46b44d37c31a5bbeaad2257ae1aca818ce33d0b1c8ae96b7e90ea6e06e9036ce61063f232c3829ec36bcef58f111b5df0b25d209e867ac53d322d1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -clrstrip = { - revision = 60363; - shortdesc = "Place contents into a full width colour strip"; - stripPrefix = 0; - sha512.run = "5a26232ede7efdd9ebb4ca89adaa2f0c507cb4eb883fc59662abca448a9bd09894cf52e850a0f57af101fd22ebf239ef82d4fb4a761b11448b846a82858fee96"; - sha512.doc = "9d52efc5bec01766d81240bc4087d76b08b1a07c1b89c3a197291e7f7b9e1d4e10214ba7640b591cc82c67406c487c39b571ddcc89adbdf377a3e3fb4063b21a"; - sha512.source = "db0be0ba5c5686846abc9eabfffcbe24c1b3f0e62554328c254126f7b0450ad0f066f7b3da20aabd83c80545e3400d0d52b639cc23b55a64e6b5735be79ea21f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cluttex = { - revision = 68912; - shortdesc = "An automation tool for running LaTeX"; - sha512.run = "652ad061ea6dd183b7bb5e0a893f3d1cb1e48e17f93c65e2c9f82eb1261759c369498b2ba36f48acb2a29772707bbc36c2832be1518507970f06f0e527c1fb55"; - sha512.doc = "5dec8c3c1ecebea760f25d5acdf6371ee67c40b38f64b24d2b47346caaa3a2a20d18578c37e14586fc16aa81a4f50761444f26206b01901913e684e413ecc0ed"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl3Plus" ]; - version = "0.6"; -}; -cluttex.binfiles = [ - "cllualatex" - "cluttex" - "clxelatex" -]; -cm = { - revision = 57963; - shortdesc = "Computer Modern fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap cmtext-bsr-interpolated.map" - ]; - sha512.run = "e65b2096ca183ca21d8ff987489223bc98750fcbaf4f9f9a9996f5153a76c5587d1ad77693234d02f80753b8b8cb86fd957514f82065bd7aab9eb64bad9003a3"; - sha512.doc = "39ccdee82d86f01e11aaeb53844639b4f976677c0baef7675817fafe4263e8e44cfec144f6fce265c9c80d9a9373a2f46ac8a55b7f20923c680eaddd0222a045"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -cm-lgc = { - revision = 28250; - shortdesc = "Type 1 CM-based fonts for Latin, Greek and Cyrillic"; - stripPrefix = 0; - fontMaps = [ - "Map cm-lgc.map" - ]; - sha512.run = "5fcf591d132314d8ce160e3070036f6fba56962ed40d8fee7b58b0e8219a8124bcf380b1be4e943209ba230f05cfcd374c96e3e799695a018356d12be3215760"; - sha512.doc = "eda2082e865dec858a010b757a2d60e0be9526d2e5f2c276d1c5e8d386a71f4d7631d1af8dee009f9d61e0682904697bfdc89222863499c8e1aca2b11d0f3ed9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.5"; -}; -cm-mf-extra-bold = { - revision = 54512; - shortdesc = "Extra Metafont files for CM"; - stripPrefix = 0; - sha512.run = "1845d58827ff828d6b60b82e4eda94760cd3c86076982b861e53b4f996a0dfcc9a5926ce58de27891ca3ea115a752cc4abc56b06b112d43194aa8a27c61b86fd"; - hasRunfiles = true; - license = [ "gpl1Only" "publicDomain" ]; -}; -cm-super = { - revision = 15878; - shortdesc = "CM-Super family of fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap cm-super-t1.map" - "MixedMap cm-super-t2a.map" - "MixedMap cm-super-t2b.map" - "MixedMap cm-super-t2c.map" - "MixedMap cm-super-ts1.map" - "MixedMap cm-super-x2.map" - ]; - sha512.run = "45638ebf4ef2ffb7c4b74669ea089a9f8d3ab4b98e555b3f9b2e9bd9732b48fdba61dc91188e2c8962b8bfa3caaab31c10d1ccd3e0aa9e26197b148e59576f8f"; - sha512.doc = "5b524c55dbcfa1db87484d3437156ca9987fcca66e2c2e6d69e562c48ae708e51f089051524f324cbafb72a29e08f90e70c408d7fea7341e9ef0b5d53288b7d3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -cm-unicode = { - revision = 58661; - shortdesc = "Computer Modern Unicode font family"; - stripPrefix = 0; - sha512.run = "5d6cce2e396ffa0dc887e839f4ef57865db9eda3dcdf6a62737008b53837c40ee1498d97ab06eab8f0802e745787fa5c107c0738a8dedd4e65f6996aee555c48"; - sha512.doc = "f7633d0dbd08cc1e82f6804f51c8b117dee909a81d8496826abe3e9b7107577f2818323dbd789555f8cd3f62d8f1ffac440fde64a6497135f879fb58a779cf64"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.7.0"; -}; -cmap = { - revision = 57640; - shortdesc = "Make PDF files searchable and copyable"; - stripPrefix = 0; - sha512.run = "4857f7ab9719a2b6828582599c98715c61731288899494aed96026dd6ad8bac92028586cb6b008ebaf3fb516d918861f79f544ecd64bca1e6a6183bd8bc398c1"; - sha512.doc = "5a8b1bd0c47bd5b4a3df3d0270c15c0d3c8691c96f2e5ee272ab97362463c2cfc7d1e2a9a19f5aa7ab8b145e9ae63390b1ded80b48dec52f8bf62118dabd6cd3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0j"; -}; -cmarrows = { - revision = 24378; - shortdesc = "MetaPost arrows and braces in the Computer Modern style"; - stripPrefix = 0; - sha512.run = "5f56f9ab77b2f250aff664b0007aa17eccad96d6f674ae7417f610b62d84123fc85bc80cf83948e0df2a7bfb721300e149fc764b03638e5005cc4832f2fa5544"; - sha512.doc = "0bc738eb48fc34b7cb35240622925d43e5ff5fce21b1c560158b2ceee2790a284b33816fd192a5b0161544ee5add98f4e3ebe7dd0165273d53e5ea2de7d994ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -cmathbb = { - revision = 56414; - shortdesc = "Computer modern mathematical blackboard bold font"; - stripPrefix = 0; - fontMaps = [ - "Map cmathbb.map" - ]; - sha512.run = "8e720662ac4d00557b143c883e9d410da8593cdfa056b5320e0ff348c2c0e37f9c0045341c28e583aa544790e576d9b7db8c80f93cffd8c4da699e46e35f73e0"; - sha512.doc = "f1b0b1067260287c66347e52111883834d575e5857a3aede8e14930252a284b5c0bd6bd7247c9ee36462d57a63d351110582cb66ca894d9430d476445f37da44"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -cmbright = { - revision = 21107; - shortdesc = "Computer Modern Bright fonts"; - stripPrefix = 0; - sha512.run = "3251c7ce9f139a9e553e3cf343339367e98e6982850ca3d2a2087efe5e26f4828597e6f5c1ac85567e81897a09239f5be717a6a85d04b164442c9c5c53ea4fac"; - sha512.doc = "7add06e9502ab0bf912e811afbb66caf7ac83d60b6e2575dbc75709438ce6252239a43106632633e2d90b2badd46bb800533c496c811de7316cd1766456058c9"; - sha512.source = "5824d33c26e94cf0ec8d2b69d0c80c715a68ef98ab5e2025c84fc20dcda2be4b89125dfe69400f2f27d46b773c5a3918af533cc2c25fad01694776bf5a546879"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "8.1"; -}; -cmcyr = { - revision = 68681; - shortdesc = "Computer Modern fonts with cyrillic extensions"; - stripPrefix = 0; - fontMaps = [ - "MixedMap cmcyr.map" - ]; - sha512.run = "c42006e8d596b231c3ef7f3f7123292a9563f6bb0881a7807625bd05e49a67ffd37d6e0965e6da36cdff816cdbf780e54b79b999ee5d0a18fad315f2724cc839"; - sha512.doc = "153db17097c5a1e6bbad3e13e7bbfaf13bd8380633f62e9323d2c0514a2649b001c997bad9e7495a88f5cf9c1289f2987d147e22bdca6100e7adc1d88561d443"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -cmdstring = { - revision = 15878; - shortdesc = "Get command name reliably"; - stripPrefix = 0; - sha512.run = "b05a8f8d326a6546b7c865e4cbc1afdfb0fa50993f4ad5e3b3a1e1781be9ed7590e1dd17b18d58f8a96c83aa2fe6218328b2df3e193e2dc7923d051374ebc9ba"; - sha512.doc = "c102fcd054597d84d98a4f74656f36a9e1aa53623bebaa4ef39f341ddb889062a0e0c705074a4909bf50ae3cdc9a0e0da06fc6b12fde10bcaf5391fe6c792818"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -cmdtrack = { - revision = 28910; - shortdesc = "Check used commands"; - stripPrefix = 0; - sha512.run = "22de643d5b45f3898a1aeee44ae88594b545af34bb5bdac937753c13d31071872a78935dc2c73fb22c0e591d164f618549a2bd67a00550f3fb70753a951ad4cc"; - sha512.doc = "2a69b054e1de07b31426e653af45125824bd037cf5a24fcde1f0fe1b6aa3eb925688959aa84094ecc65954b92030e1b78545db18f08a39990c4412d487ce2284"; - sha512.source = "c6b02dd165bfb3ab40ee05aa3ac9df74faff8167de021495fb08e0d173b83f75453915a634d81d260d4739166b2e5a519b8cecfc7807d25f396c27c5b65f58f3"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -cmexb = { - revision = 54074; - shortdesc = "cmexb10 metrics and Type 1"; - stripPrefix = 0; - fontMaps = [ - "Map cmexb.map" - ]; - sha512.run = "584aa7d96c86be809a1da92955c92c9e73946fc236e9991925431bae4041001f6b4d7029b13004ada0435ae291a90fce8990e527188e1f35a3be922a39faefed"; - sha512.doc = "e6f362bfa79f6c32537245af645f8b6a343ef5a9204b9cd50cfab9337e9617554bfc3fc813fe4c65d2664fc617d460f15a4ea099961699bbee82381df0856760"; - hasRunfiles = true; -}; -cmextra = { - revision = 57866; - shortdesc = "Knuth's local information"; - stripPrefix = 0; - sha512.run = "fa6bd1e79ca96500080405e01a7524a6fd13358335d34b3e2983a7f33f7b7a50ff4106ee5f2f483f3e040a3a7135b4133d727c6a7cb0c90f63be40e5410e3b48"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -cmll = { - revision = 17964; - shortdesc = "Symbols for linear logic"; - stripPrefix = 0; - fontMaps = [ - "MixedMap cmll.map" - ]; - sha512.run = "8470819c5a37b3d8d1d44aae53b62ff020087e1125f381e51ef4a639fd6b2394c3d6f15a3a86fe70e61a4545213059bde6fc3e9d06cd054e46218e90e64c0543"; - sha512.doc = "71a7cd27a2744e8e3ab09b8fbbc514eb2e38d9740349139212f0861c67948fa1a98728acb1d22a4397fe95d8efd5c6fcb87a1843a1f9dbd0d161e2e835e1ac11"; - sha512.source = "de17c8e0627408358ae3de41a5bf557d99abf76bb480ab28ef9df424d8b7ae1f73ca2e30f4eeb26ac9eb2dd36ddafa143cd49ce6618b2ca36fcfc6e22e83d217"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cmpica = { - revision = 15878; - shortdesc = "A Computer Modern Pica variant"; - stripPrefix = 0; - sha512.run = "2aac63861c3c1099054286647917f4ab594fd535de9d513f790cb70e8a38278ffda0be29656e1da57206c7bac21928cf5179bd1cc22f50e0f10d1ca8083f4b86"; - sha512.doc = "7c6251f1c5090328c93f6ec224bbb6d05433b5471c6cb8b4d7f3b9ff05f9be8ad49587d24a34702fb23b9f1803ca3df3a638b16335944a9b2dc35422ca8bf9fe"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -cmpj = { - revision = 58506; - shortdesc = "Style for the journal Condensed Matter Physics"; - stripPrefix = 0; - sha512.run = "11eafc9af424689d7f4a225eea5f5d5f6123f79265f805506f4e98155d97e557fd96a6ce5dba6b1d598817ec87f561189cf48267f08c7cd7823781eaced17e55"; - sha512.doc = "b1113cf0dbc02b69e3ed72d70168103b742d85c2115e78b1f0feece71f342293fae109f112be948e5e106dde226ae8d4d53706c3846a641b8d6e8417e8444408"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.03"; -}; -cmsd = { - revision = 18787; - shortdesc = "Interfaces to the CM Sans Serif Bold fonts"; - stripPrefix = 0; - sha512.run = "97e1830bdbab04e321433f43e14d65fd2e9820d46a6fb3616f2cea38a54208e80e1238eba7b5cfd20137f6e3a3da3a1586a7caa3e0a495ed91235a05120d444c"; - sha512.doc = "f9994a39f6e14f40398abacfe0f4c1a9cbd71d7b55c29787105fdbf8212953fb761f1696cf35196d446b9905a967d2908d7e41e7742e5cd7dd538ac0e7d3f5d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cmsrb = { - revision = 54706; - shortdesc = "Computer Modern for Serbian and Macedonian"; - stripPrefix = 0; - fontMaps = [ - "Map cmsrb.map" - ]; - sha512.run = "2fef47e94ba1a5ad0774667ac84e29040a3715c413990585aa09c866297beb61c7da533685bc1e102c8edb30d7bf6bddf8fee5486dd6d4d6ea9ebe51d2424196"; - sha512.doc = "9200b4da942f308cc60dc53b2fba9cefb7448e95d89f0c34d03604e5f7a9119aea4e762d70cfa35fd12f555f8c4ae1ab4c0b12abb04742e17b6e680bd80cc9d3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "4.0"; -}; -cmtiup = { - revision = 39728; - shortdesc = "Upright punctuation with CM italic"; - stripPrefix = 0; - sha512.run = "9412576d07ec490fda4dd01445f28e4b966d2664a81e5f44a574019df1eb4de4189b8d06edf7a1a3b57e8ade129b57c0147a96fa9b77337d9a906134e33f2067"; - sha512.doc = "aae6105fc9e828715193bc4d251210f23ce6f4c4d703c79c244ff765a377f90055188f8af83e705da062cea8db8bf6b89beecc488cce32d7903fb7fb8c4bcad9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -cmupint = { - revision = 54735; - shortdesc = "Upright integral symbols for Computer Modern"; - stripPrefix = 0; - fontMaps = [ - "MixedMap cmupint.map" - ]; - sha512.run = "ce08962145a80b7b6748145a7385cc78e361295d85ea96f24397aad3025b7eaa2e962d4d30380ca1a8d22da7175a3135abacef78a76d9d4615f03aed049a4b10"; - sha512.doc = "80cab8f9387e74db3b3650b8e7b055ecf1e094f75f0e43c4540b32658e43e392c82f3fa8ab6a6c08495ef6f9f2773501a7f282acaf7d7d640f0bd891cb8b1f08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -cnbwp = { - revision = 69931; - shortdesc = "Typeset working papers of the Czech National Bank"; - stripPrefix = 0; - sha512.run = "1e52436349c9f43a04b40ded7f35092d644ea056b5be1f91ce9efc20a5c47211017cb000ba5b3734d29fcf0553e61193cfa141ea945367362c924a061392b2a8"; - sha512.doc = "685c09924feb372af74ff578a74c4a4ed24a7b9ddbac65d8f8e2c17ba4b80e7f34d49d71ef9251b619b363a83dbbe12114aed547bff6e29d7053261cae169d22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024.02"; -}; -cnltx = { - revision = 55265; - shortdesc = "LaTeX tools and documenting facilities"; - stripPrefix = 0; - sha512.run = "fa858296b0d71265f4812289d7e50e1650deea64fe8feb86c1d9a3ce49719ed4d265e457fc1e6c9382c9344b9798ef2de322419ab38b86dfaa2f20ca87052ea4"; - sha512.doc = "b1481a3f56079e4655b94ac7855019492b051de1405016830fd196442f1c3fb8213d00540ec5fa42dccf743eefd9ff1d0a581626d2b0c64b7462e43708ccb502"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.15"; -}; -cns = { - revision = 45677; - shortdesc = "Chinese/Japanese/Korean bitmap fonts"; - stripPrefix = 0; - sha512.run = "0b3645da07e0fc9482cfeddd93f949e18dc12b6aa02e5a6c45669f3d5f7f25d5fa7ff4992f40b9b71894e21b5b1855999ba8e1b130be27e8b7001444ed30db0f"; - sha512.doc = "264c64f2ae29bff96b428500af07a81402434d9422792a36ee0da74e9821f161cf8281d38317787c0db78109d2eeaaff4e62730855ae1f1e1f250f4173740d35"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "4.2.0"; -}; -cntformats = { - revision = 34668; - shortdesc = "A different way to read counters"; - stripPrefix = 0; - sha512.run = "f829d6452faa20a514bfe43a8b002d4d728b57e0d6c44de7ba8aebaa96d9a40fc0ac26ca6ef637ab9efd3f133c70cd4d5b9c81dd382ed8adcd5abd1b2fb5d6cd"; - sha512.doc = "4d6c9b8ad41dea1e14eec71570afdeb28fb834191587ba964642628674526a5ac82d6ceb972d5d89e0faeb3fb46da26361dea45f8757523f58765dfbdb773a3d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -cntperchap = { - revision = 37572; - shortdesc = "Store counter values per chapter"; - stripPrefix = 0; - sha512.run = "ade4e6bbb00d619d52cb65549cb50f4ff9275d20a9e871ddee99064fb2ae0e02ba7d403bd6c7d658fdc6d542d7a32244ce8ff7fbe023b4fe292697584aed966a"; - sha512.doc = "354ea40ce2fe4e543016970fe81745c151a53c182800e8b861006d7e1c6fff84628a0baa4bfad29a0b81c8d0eede9f31145e7d3f380953921a48f31c5b8d0a8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -cochineal = { - revision = 70537; - shortdesc = "Cochineal fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map Cochineal.map" - ]; - sha512.run = "c8468bf472552dbbcbb84a5134a5ddc84405aab0d3b98015aba60d6da0e02896d929582778bfecf3694a7a0174d31214c9231a1da11284af6fdf3362b95e179b"; - sha512.doc = "43f7de109858a3e9a120b51022d3cab77dd0ae4ee2dd5e2d032ed3f9ba669ce2f5280bd359d8dbf158181727442e1e00ac8914d8cbe3edb93c40ab01362a2dbf"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.085"; -}; -codeanatomy = { - revision = 65648; - shortdesc = "Typeset code with annotations"; - stripPrefix = 0; - sha512.run = "59f2c1b91875a69434595d435eb905265c9e114bebb8a94edbe07f597518424add7916fab565caef11302e6c31537c54e5885f3320ec0e515cd0a207c8012e00"; - sha512.doc = "4595189bdcee5788de92793b54e8a3dab0215057acbf7d9d575af6e9fb67a92ec1985d61d415bd44bea2d8ae7084de0676e121c96be2262c93eee78116f50a86"; - sha512.source = "27c57ca05dd82f9810e63a0265658174dc3a9dfe21033c70bea65db5543648dc51052a8b72bd5f2d89e7ad9806d1cf1b0bf1e9c9ca543589afef2dc07184114d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4-Beta"; -}; -codebox = { - revision = 61771; - shortdesc = "Highlighted source code in a fancy box"; - stripPrefix = 0; - sha512.run = "04f63b435f360fdfa81bb7afeef38117a8a4b81b70562e21020470f49f33abc33038d6c55665a5ae4573ff61c19ed9120e824eb319ea97523fe1fa8e82ba9424"; - sha512.doc = "165fffcfbff35064a3c55a0fe1b095f3a45a5c01d1c8a8704cd151cbb20c440592edecc3be71900b1a7a5e7af28d6a8d6c4a3b9fd09f850c7da71362e2377ddd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.4"; -}; -codedescribe = { - revision = 69944; - shortdesc = "LaTeX code description and documentation"; - stripPrefix = 0; - sha512.run = "5c3fa3c2843820575d28e1c9adced0cabf0f19fc4ae8022eef4fe18f18cf9cffe8582cb4d8b2f5d064bb5f836641f2229a6f0b6976556a9bec4ae66739b48c00"; - sha512.doc = "305c4b68a7011697c750789cbffcf09a45b3704ded67538efd6ef134c499cf42c50ff3a6503350b75cdac07574360941f66ccb67044a5f5db4ba6f050604c3f5"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.4"; -}; -codedoc = { - revision = 17630; - shortdesc = "LaTeX code and documentation in LaTeX-format file"; - stripPrefix = 0; - sha512.run = "8dc006776f2a3f0f28aeed0450e2d7b714402de1939a92d1e7f1e0174a8de7e9f7099e7ae9a5de34df03613ff16800bde17f7cc90fa82798f30c775c10c655ff"; - sha512.doc = "fa23f45c539ec134cff114d7252a4d96585168729dc33d0865f4976f94620a8d3c02fa21572953161977d893c7f311b0d15a431f74b8526d1de0680dfdad7341"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -codehigh = { - revision = 65787; - shortdesc = "Highlight code and demos with l3regex and lpeg"; - stripPrefix = 0; - sha512.run = "ca33d6cb84e716357cb18d8448f8e047b4bc049cca8e77aa80525a209c66ae4b93dcd453f91672cf15fc5305ce1d62768e9851edd6fb07214153100cdacfc884"; - sha512.doc = "f689cede2e83dee785e3b83094f5897a8d7af4e39e3c33779acceeb7ed0c1226d094aca64c222f4b1488916e7ad78ed1a6b8800070910d4e0daf6e6ccd24bc5e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2023A"; -}; -codepage = { - revision = 51502; - shortdesc = "Support for variant code pages"; - stripPrefix = 0; - sha512.run = "2531186744ce4915b8d903e0ea49e1d3e0a6be5ab2db7bc2a5cbc70e675c2dd00104a677c08b7b7d12eca56dfc4b283c49ee599fff6d3460c6238f414ba3cb76"; - sha512.doc = "b49ffff68cc599835acf436de3117c7f9511b362d821bdd8c18f0af930c5b717dc0bcd00477e6f0f367229b9d1f6dd150a8166dd74bbfbc2cfcb77ccf28cd8d5"; - sha512.source = "2c12bf42c1aa818d5718f2bbbb07460364ad40f7bc4cf0676cb064a03751e1bd88be16fffaae097f5ed9c0793f60ffb93374b43f7b90acf8ad3cbc8f5d7b8b70"; - hasRunfiles = true; - license = [ "free" ]; -}; -codesection = { - revision = 34481; - shortdesc = "Provides an environment that may be conditionally included"; - stripPrefix = 0; - sha512.run = "95318ae4933d0cb43226c714c8ff931aaa8e06cfb2c44c3929db59ae8336882c588e26268445b62f8da32145a962bae0030daff3d5cfa22007919fb7b13fd69d"; - sha512.doc = "881e62381793f548d0c291141944d81e19cf4340f2c1f63916857f5702756e18d107337c340568d62de48fe2190cf4c74a8d6604f8d4843c47ceb7c59608c0b0"; - sha512.source = "e2ca6d6cb96977d494bfa9818d90aef30a915dd4c284fb7e555e79c09db022819a6e1f825ab895108594b90b488e70780f268022a896feef7dcc1ab590fabce9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -codicefiscaleitaliano = { - revision = 29803; - shortdesc = "Test the consistency of the Italian personal Fiscal Code"; - stripPrefix = 0; - sha512.run = "7c93841ceadbb7bbfc9846d281fdbd84b7f284117344e1c4fd984e746186403e9be3e2048cfca53f6690a1e20b7471224b8d30ed1358959053111c22d3f15191"; - sha512.doc = "7b0c13252796be7d584d3e5dad65711229cf916ce7c8e89e423805183629f161b3d4e4f47d6c9488ab32ff8b52723b0fbc4252f2ca99e965f4d7c4409881b67d"; - sha512.source = "8602ad1eee729a5d21d760da54f31d67746bc336c9e18d43b9cf3a5443afaf8099d27a908cc1cd9cc028e94b2173e97179cf293d5739244834817f0bc50bbaa3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -coelacanth = { - revision = 64558; - shortdesc = "Coelacanth fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map Coelacanth.map" - ]; - sha512.run = "279faeb81ba3169bc72848c691ab42729c670bed5c41a2add3e338bec0c109ff15ffcb492e19834d0ab2293040a659e3994f374b5a6028d505823e372eab7f48"; - sha512.doc = "ae548dfea88ab4315674caca7e0531bf52512b6ac8198853e0c70661e91061e3fdc15c82be7d6f1ee5c92a7cf340e65b0ce99665da82507b9d9f9b119722c2b7"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.005"; -}; -coffeestains = { - revision = 59703; - shortdesc = "Add coffee stains to documents"; - stripPrefix = 0; - sha512.run = "7a8213810b8bb30c0b863ce996aab92a9031dd9961513d25822904c6e71dd2fa1b79f050f1840e8d88e8f8e8e87c7736369f3fa7a6873cbaa57fb8dca7c71d47"; - sha512.doc = "fab8a2aeae8dd1c6f0f501d894f90d5b6f7785bf8b3fcf86837f4bc41da8002427c69094676870ea7dfe9186b3bb92433f5c66f0cedd08f57954487db8bb162b"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.5.1"; -}; -collargs = { - revision = 69284; - shortdesc = "Collect arguments of any command"; - stripPrefix = 0; - sha512.run = "1807cca3a1e73b42ec1403c272777d5e31c1a6ecc3efe9b61697d6fee7b2b1deb76b9b909846b55a297587e950b42754f68be4cc5ed729c54e310fcd248d2972"; - sha512.doc = "395931952725fbebb85445d8f465bc57a74d98f2d70b61f67b97f9a3542598bdfb1ddd7203a3bcae87094aded580325c98f77bfcdfa78147b971a9aff18a8cd0"; - sha512.source = "4ec8b2ed23cae6473c8a5993efa79e426522ba710378598c408e4b33343b1be29c7aee01c2ad1483cad2a91fcc8775844fa598f740c42438d9c830210d31e0ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -collcell = { - revision = 64967; - shortdesc = "Collect contents of a tabular cell as argument to a macro"; - stripPrefix = 0; - sha512.run = "ecc414d09b916580b87aeba0192b55e698782ee9fca088ff3d3ab6f247ff2fa33caa0cf6913870f8f3219806e2ac88674c6f7692ebdc027675907355c38c6eea"; - sha512.doc = "a516c5c4030957305e413e252cc59f33652b42f2d0dc0aa0fbe297f33a68da4d534f0b07684d39276e8b6811b53b775db45b774e7ea82fc9b0c7382910ab6442"; - sha512.source = "1cd565603f9c6e4b267d67b501842a95916072deac09b0330336d8d2b97cce1a7571f9a8f0725958a920f0d786d1a3a6aa8682b232e276b9fe8e4208a08c34cd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -collectbox = { - revision = 64967; - shortdesc = "Collect and process macro arguments as boxes"; - stripPrefix = 0; - sha512.run = "59316a336010c03bbe288ecaf20953666d084500165befe465ac87210795f2ef68693e5fe155b45a461a690d918d83aad247dcd52eb40cd0bf80f6c68fcd8071"; - sha512.doc = "db2d2066072a3619913df6fbdfb19ec3afc50495d51ccf1339312bcff1bf7841902f412932205cb4ae2f94acd33b9fe2b250d67ae02c22d6efa25c251a182c00"; - sha512.source = "b54a9a9215639eba3c0c052676122a3c25efacda695b34c56317d809e69e6859bb52c7fb8845e08ece9d1a2ffa399f3800737b56eca7e6c4a2f7ced14b10a2ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4c"; -}; -collection-basic = { - revision = 59159; - shortdesc = "Essential programs and files"; - stripPrefix = 0; - deps = [ - "amsfonts" - "bibtex" - "cm" - "colorprofiles" - "dvipdfmx" - "dvips" - "ec" - "enctex" - "etex" - "etex-pkg" - "glyphlist" - "graphics-def" - "hyph-utf8" - "hyphen-base" - "hyphenex" - "ifplatform" - "iftex" - "knuth-lib" - "knuth-local" - "kpathsea" - "lua-alt-getopt" - "luahbtex" - "luatex" - "makeindex" - "metafont" - "mflogo" - "mfware" - "modes" - "pdftex" - "plain" - "tex" - "tex-ini-files" - "texlive-common" - "texlive-en" - "texlive-msg-translations" - "texlive-scripts" - "texlive.infra" - "tlshell" - "unicode-data" - "xdvi" - ]; - sha512.run = "4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da804164abccce642f4ec1e677092f81d61381958b87fcf515120a12f9b7a19055370"; -}; -collection-bibtexextra = { - revision = 70566; - shortdesc = "BibTeX additional styles"; - stripPrefix = 0; - deps = [ - "aaai-named" - "aichej" - "ajl" - "amsrefs" - "annotate" - "apacite" - "apalike-ejor" - "apalike2" - "archaeologie" - "authordate" - "beebe" - "besjournals" - "bestpapers" - "bib2gls" - "bibarts" - "bibcop" - "biber" - "biber-ms" - "bibexport" - "bibhtml" - "biblatex" - "biblatex-abnt" - "biblatex-ajc2020unofficial" - "biblatex-anonymous" - "biblatex-apa" - "biblatex-apa6" - "biblatex-archaeology" - "biblatex-arthistory-bonn" - "biblatex-bath" - "biblatex-bookinarticle" - "biblatex-bookinother" - "biblatex-bwl" - "biblatex-caspervector" - "biblatex-chem" - "biblatex-chicago" - "biblatex-claves" - "biblatex-cv" - "biblatex-dw" - "biblatex-enc" - "biblatex-ext" - "biblatex-fiwi" - "biblatex-gb7714-2015" - "biblatex-german-legal" - "biblatex-gost" - "biblatex-historian" - "biblatex-ieee" - "biblatex-ijsra" - "biblatex-iso690" - "biblatex-jura2" - "biblatex-juradiss" - "biblatex-license" - "biblatex-lncs" - "biblatex-lni" - "biblatex-luh-ipw" - "biblatex-manuscripts-philology" - "biblatex-mla" - "biblatex-morenames" - "biblatex-ms" - "biblatex-multiple-dm" - "biblatex-musuos" - "biblatex-nature" - "biblatex-nejm" - "biblatex-nottsclassic" - "biblatex-opcit-booktitle" - "biblatex-oxref" - "biblatex-philosophy" - "biblatex-phys" - "biblatex-publist" - "biblatex-readbbl" - "biblatex-realauthor" - "biblatex-sbl" - "biblatex-science" - "biblatex-shortfields" - "biblatex-socialscienceshuberlin" - "biblatex-software" - "biblatex-source-division" - "biblatex-spbasic" - "biblatex-subseries" - "biblatex-swiss-legal" - "biblatex-trad" - "biblatex-true-citepages-omit" - "biblatex-unified" - "biblatex-vancouver" - "biblatex2bibitem" - "biblist" - "bibtexperllibs" - "bibtools" - "bibtopic" - "bibtopicprefix" - "bibunits" - "biolett-bst" - "bookdb" - "breakcites" - "cell" - "chbibref" - "chembst" - "chicago" - "chicago-annote" - "chicagoa" - "chicagolinks" - "chscite" - "citation-style-language" - "citeall" - "citeref" - "collection-latex" - "collref" - "compactbib" - "crossrefware" - "custom-bib" - "din1505" - "dk-bib" - "doipubmed" - "ecobiblatex" - "econ-bst" - "economic" - "fbs" - "figbib" - "footbib" - "francais-bst" - "gbt7714" - "geschichtsfrkl" - "harvard" - "harvmac" - "hep-bibliography" - "historische-zeitschrift" - "icite" - "ietfbibs" - "ijqc" - "inlinebib" - "iopart-num" - "is-bst" - "jbact" - "jmb" - "jneurosci" - "jurabib" - "ksfh_nat" - "listbib" - "logreq" - "ltb2bib" - "luabibentry" - "margbib" - "multibib" - "multibibliography" - "munich" - "nar" - "newcastle-bst" - "nmbib" - "notes2bib" - "notex-bst" - "oscola" - "perception" - "plainyr" - "pnas2009" - "rsc" - "showtags" - "sort-by-letters" - "splitbib" - "turabian-formatting" - "uni-wtal-ger" - "uni-wtal-lin" - "urlbst" - "usebib" - "vak" - "windycity" - "xcite" - "zootaxa-bst" - ]; - sha512.run = "8a96e8a580846ea80c0be60ba037e761f5d695eb184c72da71709bf528368ac18464cbf955ba5fc6e6b574aa9ad76d2e26797907f141753716c0deccf625d6d8"; -}; -collection-binextra = { - revision = 69527; - shortdesc = "TeX auxiliary programs"; - stripPrefix = 0; - deps = [ - "a2ping" - "adhocfilelist" - "arara" - "asymptote" - "bibtex8" - "bibtexu" - "bundledoc" - "checklistings" - "chklref" - "chktex" - "clojure-pamphlet" - "cluttex" - "collection-basic" - "ctan-o-mat" - "ctan_chk" - "ctanbib" - "ctanify" - "ctanupload" - "ctie" - "cweb" - "de-macro" - "detex" - "digestif" - "dtl" - "dtxgen" - "dvi2tty" - "dviasm" - "dvicopy" - "dvidvi" - "dviinfox" - "dviljk" - "dviout-util" - "dvipng" - "dvipos" - "dvisvgm" - "easydtx" - "findhyph" - "fragmaster" - "git-latexdiff" - "gsftopk" - "hook-pre-commit-pkg" - "installfont" - "ketcindy" - "lacheck" - "latex-git-log" - "latex-papersize" - "latex2man" - "latex2nemeth" - "latexdiff" - "latexfileversion" - "latexindent" - "latexmk" - "latexpand" - "light-latex-make" - "listings-ext" - "ltxfileinfo" - "ltximg" - "make4ht" - "match_parens" - "mflua" - "mkjobtexmf" - "optexcount" - "patgen" - "pdfbook2" - "pdfcrop" - "pdfjam" - "pdflatexpicscale" - "pdftex-quiet" - "pdftosrc" - "pdfxup" - "pfarrei" - "pkfix" - "pkfix-helper" - "ppmcheckpdf" - "purifyeps" - "pythontex" - "runtexshebang" - "seetexk" - "spix" - "srcredact" - "sty2dtx" - "synctex" - "tex4ebook" - "texaccents" - "texblend" - "texcount" - "texdef" - "texdiff" - "texdirflatten" - "texdoc" - "texdoctk" - "texfot" - "texlive-scripts-extra" - "texliveonfly" - "texloganalyser" - "texlogfilter" - "texlogsieve" - "texosquery" - "texplate" - "texware" - "tie" - "tlcockpit" - "tpic2pdftex" - "typeoutfileinfo" - "upmendex" - "web" - "xindex" - "xindy" - "xpdfopen" - ]; - sha512.run = "2edd9aa26368452ebbd775da1d6223fa08141a55221594113b184243e05e1c4b841e7984de3df9ed6eff93f24b6391724eb454475cb774b693de6a3f901c8012"; -}; -collection-context = { - revision = 69108; - shortdesc = "ConTeXt and packages"; - stripPrefix = 0; - deps = [ - "collection-basic" - "context" - "context-calendar-examples" - "context-collating-marks" - "context-cyrillicnumbers" - "context-filter" - "context-gnuplot" - "context-handlecsv" - "context-legacy" - "context-letter" - "context-mathsets" - "context-notes-zh-cn" - "context-pocketdiary" - "context-simpleslides" - "context-squares" - "context-sudoku" - "context-texlive" - "context-transliterator" - "context-typescripts" - "context-vim" - "context-visualcounter" - "jmn" - "luajittex" - ]; - sha512.run = "a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca1998d65eda2acd716a13ef4239c8ca8528c92b2c679510d6785ef38bf554b81a6cd6"; -}; -collection-fontsextra = { - revision = 69663; - shortdesc = "Additional fonts"; - stripPrefix = 0; - deps = [ - "aboensis" - "academicons" - "accanthis" - "adforn" - "adfsymbols" - "aesupp" - "alegreya" - "alfaslabone" - "algolrevived" - "allrunes" - "almendra" - "almfixed" - "andika" - "anonymouspro" - "antiqua" - "antt" - "archaic" - "archivo" - "arev" - "arimo" - "arsenal" - "arvo" - "asana-math" - "asapsym" - "ascii-font" - "aspectratio" - "astro" - "atkinson" - "augie" - "auncial-new" - "aurical" - "b1encoding" - "barcodes" - "baskervald" - "baskervaldx" - "baskervillef" - "bbding" - "bbm" - "bbm-macros" - "bbold" - "bbold-type1" - "bboldx" - "belleek" - "bera" - "berenisadf" - "beuron" - "bguq" - "bitter" - "blacklettert1" - "boisik" - "bookhands" - "boondox" - "braille" - "brushscr" - "cabin" - "caladea" - "calligra" - "calligra-type1" - "cantarell" - "carlito" - "carolmin-ps" - "cascadia-code" - "ccicons" - "cfr-initials" - "cfr-lm" - "charissil" - "cherokee" - "chivo" - "cinzel" - "clara" - "clearsans" - "cm-lgc" - "cm-mf-extra-bold" - "cm-unicode" - "cmathbb" - "cmbright" - "cmexb" - "cmll" - "cmpica" - "cmsrb" - "cmtiup" - "cmupint" - "cochineal" - "coelacanth" - "collection-basic" - "comfortaa" - "comicneue" - "concmath-fonts" - "concmath-otf" - "cookingsymbols" - "cooperhewitt" - "cormorantgaramond" - "countriesofeurope" - "courier-scaled" - "courierten" - "crimson" - "crimsonpro" - "cryst" - "cuprum" - "cyklop" - "dancers" - "dantelogo" - "dejavu" - "dejavu-otf" - "dice" - "dictsym" - "dingbat" - "domitian" - "doublestroke" - "doulossil" - "dozenal" - "drm" - "droid" - "dsserif" - "duerer" - "duerer-latex" - "dutchcal" - "ean" - "ebgaramond" - "ebgaramond-maths" - "ecc" - "eco" - "eczar" - "eiad" - "eiad-ltx" - "ektype-tanka" - "electrum" - "elvish" - "epigrafica" - "epsdice" - "erewhon" - "erewhon-math" - "esrelation" - "esstix" - "esvect" - "etbb" - "euler-math" - "eulervm" - "euxm" - "fbb" - "fdsymbol" - "fetamont" - "feyn" - "fge" - "fira" - "firamath" - "firamath-otf" - "foekfont" - "fonetika" - "fontawesome" - "fontawesome5" - "fontmfizz" - "fonts-churchslavonic" - "forum" - "fourier" - "fouriernc" - "frcursive" - "frederika2016" - "frimurer" - "garamond-libre" - "garamond-math" - "gelasio" - "genealogy" - "gentium-tug" - "gfsartemisia" - "gfsbodoni" - "gfscomplutum" - "gfsdidot" - "gfsdidotclassic" - "gfsneohellenic" - "gfsneohellenicmath" - "gfssolomos" - "gillcm" - "gillius" - "gnu-freefont" - "gofonts" - "gothic" - "greenpoint" - "grotesq" - "gudea" - "hacm" - "hamnosys" - "hands" - "hep-font" - "hep-math-font" - "heros-otf" - "heuristica" - "hfbright" - "hfoldsty" - "hindmadurai" - "ibarra" - "ifsym" - "imfellenglish" - "inconsolata" - "inconsolata-nerd-font" - "initials" - "inriafonts" - "inter" - "ipaex-type1" - "iwona" - "jablantile" - "jamtimes" - "josefin" - "junicode" - "junicodevf" - "kixfont" - "kpfonts" - "kpfonts-otf" - "kurier" - "lato" - "lexend" - "lfb" - "libertine" - "libertinegc" - "libertinus" - "libertinus-fonts" - "libertinus-otf" - "libertinus-type1" - "libertinust1math" - "librebaskerville" - "librebodoni" - "librecaslon" - "librefranklin" - "libris" - "lineara" - "linguisticspro" - "lobster2" - "logix" - "lxfonts" - "ly1" - "magra" - "marcellus" - "mathabx" - "mathabx-type1" - "mathdesign" - "mdputu" - "mdsymbol" - "merriweather" - "metsymb" - "miama" - "mintspirit" - "missaali" - "mlmodern" - "mnsymbol" - "montserrat" - "mpfonts" - "mweights" - "newcomputermodern" - "newpx" - "newtx" - "newtxsf" - "newtxtt" - "niceframe-type1" - "nimbus15" - "nkarta" - "noto" - "noto-emoji" - "notomath" - "nunito" - "obnov" - "ocherokee" - "ocr-b" - "ocr-b-outline" - "ogham" - "oinuit" - "old-arrows" - "oldlatin" - "oldstandard" - "opensans" - "orkhun" - "oswald" - "overlock" - "pacioli" - "pagella-otf" - "paratype" - "phaistos" - "phonetic" - "pigpen" - "playfair" - "plex" - "plex-otf" - "plimsoll" - "poiretone" - "poltawski" - "prodint" - "punk" - "punk-latex" - "punknova" - "pxtxalfa" - "qualitype" - "quattrocento" - "raleway" - "recycle" - "rit-fonts" - "roboto" - "romande" - "rosario" - "rsfso" - "sansmathaccent" - "sansmathfonts" - "sauter" - "sauterfonts" - "schola-otf" - "scholax" - "schulschriften" - "semaphor" - "shobhika" - "simpleicons" - "skull" - "sourcecodepro" - "sourcesanspro" - "sourceserifpro" - "spectral" - "srbtiks" - "starfont" - "staves" - "step" - "stepgreek" - "stickstoo" - "stix" - "stix2-otf" - "stix2-type1" - "superiors" - "svrsymbols" - "symbats3" - "tapir" - "tempora" - "tengwarscript" - "termes-otf" - "tfrupee" - "theanodidot" - "theanomodern" - "theanooldstyle" - "tinos" - "tpslifonts" - "trajan" - "twemoji-colr" - "txfontsb" - "txuprcal" - "typicons" - "umtypewriter" - "universa" - "universalis" - "uppunctlm" - "urwchancal" - "venturisadf" - "wsuipa" - "xcharter" - "xcharter-math" - "xits" - "yfonts" - "yfonts-otf" - "yfonts-t1" - "yinit-otf" - "ysabeau" - "zlmtt" - ]; - sha512.run = "307728e63dab6f629ac955def8049a9c513fed366ebbf6896bfe21adbe3379941a85ac01dce0647393801ed1d6e4a95d6831e476d4d9805e815ba197f006b99b"; -}; -collection-fontsrecommended = { - revision = 54074; - shortdesc = "Recommended fonts"; - stripPrefix = 0; - deps = [ - "avantgar" - "bookman" - "charter" - "cm-super" - "cmextra" - "collection-basic" - "courier" - "euro" - "euro-ce" - "eurosym" - "fpl" - "helvetic" - "lm" - "lm-math" - "manfnt-font" - "marvosym" - "mathpazo" - "mflogo-font" - "ncntrsbk" - "palatino" - "pxfonts" - "rsfs" - "symbol" - "tex-gyre" - "tex-gyre-math" - "times" - "tipa" - "txfonts" - "utopia" - "wasy" - "wasy-type1" - "wasysym" - "zapfchan" - "zapfding" - ]; - sha512.run = "eaa6e54780a0813a88102258ee3bd7a4640787be0b89eff4ba2c9cc19298bf3e2799ffab4e03e49f20131d07fbac9f601a7223fc1b47257dd0feeb04797c56a8"; -}; -collection-fontutils = { - revision = 61207; - shortdesc = "Graphics and font utilities"; - stripPrefix = 0; - deps = [ - "accfonts" - "afm2pl" - "albatross" - "collection-basic" - "dosepsbin" - "dvipsconfig" - "epstopdf" - "fontinst" - "fontools" - "fontware" - "lcdftypetools" - "luafindfont" - "metatype1" - "mf2pt1" - "ps2eps" - "ps2pk" - "psutils" - "t1utils" - "ttfutils" - ]; - sha512.run = "430c95b7e104cb837b7424ebb17ab7ee1aefd99d70aaceefff8a1924fa949329aebe0d5a28b939fabf28d3c5dfc2dcb466147e1396514d5dcf4f64af231db8a7"; -}; -collection-formatsextra = { - revision = 62226; - shortdesc = "Additional formats"; - stripPrefix = 0; - deps = [ - "aleph" - "antomega" - "collection-basic" - "collection-latex" - "edmac" - "eplain" - "hitex" - "jadetex" - "lambda" - "lollipop" - "mltex" - "mxedruli" - "omega" - "omegaware" - "otibet" - "passivetex" - "psizzl" - "startex" - "texsis" - "xmltex" - "xmltexconfig" - ]; - sha512.run = "6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349df75c9a89a98f21537cf6f3751b608fc3ee10ac842613deaf2aa21005374a23bab2"; -}; -collection-games = { - revision = 70179; - shortdesc = "Games typesetting"; - stripPrefix = 0; - deps = [ - "bartel-chess-fonts" - "chess" - "chess-problem-diagrams" - "chessboard" - "chessfss" - "chinesechess" - "collection-latex" - "crossword" - "crosswrd" - "customdice" - "egameps" - "gamebook" - "gamebooklib" - "go" - "hanoi" - "havannah" - "hexboard" - "hexgame" - "hmtrump" - "horoscop" - "jeuxcartes" - "jigsaw" - "labyrinth" - "logicpuzzle" - "mahjong" - "maze" - "musikui" - "nimsticks" - "onedown" - "othello" - "othelloboard" - "pas-crosswords" - "playcards" - "psgo" - "quizztex" - "realtranspose" - "reverxii" - "rouequestions" - "rubik" - "schwalbe-chess" - "scrabble" - "sgame" - "skak" - "skaknew" - "soup" - "sudoku" - "sudokubundle" - "tangramtikz" - "thematicpuzzle" - "trivialpursuit" - "twoxtwogame" - "wargame" - "weiqi" - "wordle" - "xq" - "xskak" - ]; - sha512.run = "005e7e6ea5401369c09bdbb94a1bf6a2f8f35223d5a10ffee524481bfe4033c544aea2142a8af721ea62f6f0d37db84874c3214c857003b82a8ee2c191d0cb5c"; -}; -collection-humanities = { - revision = 68465; - shortdesc = "Humanities packages"; - stripPrefix = 0; - deps = [ - "adtrees" - "bibleref" - "bibleref-lds" - "bibleref-mouth" - "bibleref-parse" - "collection-latex" - "covington" - "diadia" - "dramatist" - "dvgloss" - "ecltree" - "edfnotes" - "eledform" - "eledmac" - "expex" - "expex-glossonly" - "gb4e" - "gmverse" - "jura" - "juraabbrev" - "juramisc" - "jurarsp" - "langnames" - "ledmac" - "lexikon" - "lexref" - "ling-macros" - "linguex" - "liturg" - "metrix" - "nnext" - "opbible" - "parallel" - "parrun" - "phonrule" - "plari" - "play" - "poemscol" - "poetry" - "poetrytex" - "qobitree" - "qtree" - "reledmac" - "rrgtrees" - "rtklage" - "screenplay" - "screenplay-pkg" - "sides" - "stage" - "textglos" - "thalie" - "theatre" - "tree-dvips" - "verse" - "xyling" - ]; - sha512.run = "33b19b29b31671c148900d207f1f9947be502ab215e901afa9c5fe5264bafd004717dc8f6438d1a4b40abfa63c0b94725738b8c8bc117e293676f3db1e25ba6a"; -}; -collection-langarabic = { - revision = 69111; - shortdesc = "Arabic"; - stripPrefix = 0; - deps = [ - "alkalami" - "alpha-persian" - "amiri" - "arabi" - "arabi-add" - "arabic-book" - "arabluatex" - "arabtex" - "bidi" - "bidihl" - "collection-basic" - "dad" - "ghab" - "hvarabic" - "hyphen-arabic" - "hyphen-farsi" - "imsproc" - "iran-bibtex" - "khatalmaqala" - "kurdishlipsum" - "lshort-persian" - "luabidi" - "na-box" - "parsimatn" - "parsinevis" - "persian-bib" - "quran" - "sexam" - "simurgh" - "texnegar" - "tram" - "xepersian" - "xepersian-hm" - "xindy-persian" - ]; - sha512.run = "8cef2ee028669abcc0e964ba01f6287f52c4e2857fa7547036ea00bfa47d83d38c9c126705ba7989cfbc027586315284139ec6131c5ea7701136f1bfd7cdc2cf"; -}; -collection-langchinese = { - revision = 63995; - shortdesc = "Chinese"; - stripPrefix = 0; - deps = [ - "arphic" - "arphic-ttf" - "asymptote-by-example-zh-cn" - "asymptote-faq-zh-cn" - "asymptote-manual-zh-cn" - "cns" - "collection-langcjk" - "ctex" - "ctex-faq" - "exam-zh" - "fandol" - "fduthesis" - "hanzibox" - "hyphen-chinese" - "impatient-cn" - "install-latex-guide-zh-cn" - "latex-notes-zh-cn" - "lshort-chinese" - "nanicolle" - "njurepo" - "pgfornament-han" - "qyxf-book" - "texlive-zh-cn" - "texproposal" - "tlmgr-intro-zh-cn" - "upzhkinsoku" - "xpinyin" - "xtuthesis" - "zhlineskip" - "zhlipsum" - "zhmetrics" - "zhmetrics-uptex" - "zhnumber" - "zhspacing" - ]; - sha512.run = "d10096b2d83dc0378361184a64c347918e75dd51f48d962893371534c375dd8880e8febb1aaf1207e5ce04e59860f629f10c99bbf6304239e1147a5072194137"; -}; -collection-langcjk = { - revision = 65824; - shortdesc = "Chinese/Japanese/Korean (base)"; - stripPrefix = 0; - deps = [ - "adobemapping" - "c90" - "cjk" - "cjk-gs-integrate" - "cjkpunct" - "cjkutils" - "collection-basic" - "dnp" - "evangelion-jfm" - "fixjfm" - "garuda-c90" - "jfmutil" - "norasi-c90" - "pxtatescale" - "xcjk2uni" - "xecjk" - "zitie" - "zxjafont" - ]; - sha512.run = "bee71f9df25db567c0930659e5037d1b6144d5c157e0870e9144f82c6dddbd9df156e580583c65f1bf5f54a70c9fcab108bd117e74af0e28d72a33f6b78207d1"; -}; -collection-langcyrillic = { - revision = 69727; - shortdesc = "Cyrillic"; - stripPrefix = 0; - deps = [ - "babel-belarusian" - "babel-bulgarian" - "babel-russian" - "babel-serbian" - "babel-serbianc" - "babel-ukrainian" - "churchslavonic" - "cmcyr" - "collection-basic" - "collection-latex" - "cyrillic" - "cyrillic-bin" - "cyrplain" - "disser" - "eskd" - "eskdx" - "gost" - "hyphen-belarusian" - "hyphen-bulgarian" - "hyphen-churchslavonic" - "hyphen-mongolian" - "hyphen-russian" - "hyphen-serbian" - "hyphen-ukrainian" - "lcyw" - "lh" - "lhcyr" - "lshort-bulgarian" - "lshort-mongol" - "lshort-russian" - "lshort-ukr" - "mnhyphn" - "mongolian-babel" - "montex" - "mpman-ru" - "numnameru" - "pst-eucl-translation-bg" - "ruhyphen" - "russ" - "serbian-apostrophe" - "serbian-date-lat" - "serbian-def-cyr" - "serbian-lig" - "t2" - "texlive-ru" - "texlive-sr" - "ukrhyph" - "xecyrmongolian" - ]; - sha512.run = "d20f02886419a9c65b665fec5a65aaf232a2ae51ccccd159b611278887d0349bbc2e66b7f2f5ade9b79b918cc6a4cae30268b3472ef3d5441e8922b9c28a1413"; -}; -collection-langczechslovak = { - revision = 54074; - shortdesc = "Czech/Slovak"; - stripPrefix = 0; - deps = [ - "babel-czech" - "babel-slovak" - "cnbwp" - "collection-basic" - "collection-latex" - "cs" - "csbulletin" - "cslatex" - "csplain" - "cstex" - "hyphen-czech" - "hyphen-slovak" - "lshort-czech" - "lshort-slovak" - "texlive-cz" - "vlna" - ]; - sha512.run = "719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7c5a1ee95d3b306f0d6c26b0db97d69979c27fbb15d1690849aa03b06d4b0193a67"; -}; -collection-langenglish = { - revision = 68790; - shortdesc = "US and UK English"; - stripPrefix = 0; - deps = [ - "amiweb2c-guide" - "amscls-doc" - "amslatex-primer" - "around-the-bend" - "ascii-chart" - "biblatex-cheatsheet" - "collection-basic" - "components" - "comprehensive" - "dickimaw" - "docsurvey" - "drawing-with-metapost" - "dtxtut" - "first-latex-doc" - "fontinstallationguide" - "forest-quickstart" - "gentle" - "guide-to-latex" - "happy4th" - "hyphen-english" - "impatient" - "intro-scientific" - "knuth-errata" - "knuth-hint" - "knuth-pdf" - "l2tabu-english" - "latex-brochure" - "latex-course" - "latex-doc-ptr" - "latex-for-undergraduates" - "latex-graphics-companion" - "latex-refsheet" - "latex-veryshortguide" - "latex-web-companion" - "latex2e-help-texinfo" - "latex4wp" - "latexcheat" - "latexcourse-rug" - "latexfileinfo-pkgs" - "lshort-english" - "macros2e" - "math-into-latex-4" - "maths-symbols" - "memdesign" - "memoirchapterstyles" - "metafont-beginners" - "metapost-examples" - "patgen2-tutorial" - "pictexsum" - "plain-doc" - "quran-en" - "short-math-guide" - "simplified-latex" - "svg-inkscape" - "tamethebeast" - "tds" - "tex-font-errors-cheatsheet" - "tex-nutshell" - "tex-overview" - "tex-refs" - "tex-vpat" - "texbytopic" - "texonly" - "titlepages" - "tlc2" - "tlc3-examples" - "tlmgrbasics" - "undergradmath" - "visualfaq" - "webguide" - "xetexref" - "yet-another-guide-latex2e" - ]; - sha512.run = "49f20b883df99755070b68d3eacb29c297e76a05b3151d632c26fcf2864d996e4873bbab27429db915f93995923d5b7e680a3c901b28cac888ffa021bc629b74"; -}; -collection-langeuropean = { - revision = 66432; - shortdesc = "Other European languages"; - stripPrefix = 0; - deps = [ - "armtex" - "babel-albanian" - "babel-bosnian" - "babel-breton" - "babel-croatian" - "babel-danish" - "babel-dutch" - "babel-estonian" - "babel-finnish" - "babel-friulan" - "babel-hungarian" - "babel-icelandic" - "babel-irish" - "babel-kurmanji" - "babel-latin" - "babel-latvian" - "babel-lithuanian" - "babel-macedonian" - "babel-norsk" - "babel-occitan" - "babel-piedmontese" - "babel-romanian" - "babel-romansh" - "babel-samin" - "babel-scottish" - "babel-slovenian" - "babel-swedish" - "babel-turkish" - "babel-welsh" - "collection-basic" - "finbib" - "gloss-occitan" - "hrlatex" - "huaz" - "hulipsum" - "hyphen-croatian" - "hyphen-danish" - "hyphen-dutch" - "hyphen-estonian" - "hyphen-finnish" - "hyphen-friulan" - "hyphen-hungarian" - "hyphen-icelandic" - "hyphen-irish" - "hyphen-kurmanji" - "hyphen-latin" - "hyphen-latvian" - "hyphen-lithuanian" - "hyphen-macedonian" - "hyphen-norwegian" - "hyphen-occitan" - "hyphen-piedmontese" - "hyphen-romanian" - "hyphen-romansh" - "hyphen-slovenian" - "hyphen-swedish" - "hyphen-turkish" - "hyphen-uppersorbian" - "hyphen-welsh" - "kaytannollista-latexia" - "lithuanian" - "lshort-dutch" - "lshort-estonian" - "lshort-finnish" - "lshort-slovenian" - "lshort-turkish" - "nevelok" - "rojud" - "swebib" - "turkmen" - ]; - sha512.run = "5fa87f174fc372c21b80ebe6b097525218da63892bc8445a29c24f2bfb015b0f04c100467f85e6c9e16a27ad26e31f00832d7712ebea7dec8631a730a95a9759"; -}; -collection-langfrench = { - revision = 67951; - shortdesc = "French"; - stripPrefix = 0; - deps = [ - "aeguill" - "annee-scolaire" - "apprendre-a-programmer-en-tex" - "apprends-latex" - "babel-basque" - "babel-french" - "basque-book" - "basque-date" - "bib-fr" - "bibleref-french" - "booktabs-fr" - "cahierprof" - "collection-basic" - "couleurs-fr" - "droit-fr" - "e-french" - "epslatex-fr" - "expose-expl3-dunkerque-2019" - "facture" - "formation-latex-ul" - "frenchmath" - "frletter" - "frpseudocode" - "hyphen-basque" - "hyphen-french" - "impatient-fr" - "impnattypo" - "l2tabu-french" - "latex2e-help-texinfo-fr" - "letgut" - "lshort-french" - "mafr" - "matapli" - "panneauxroute" - "profcollege" - "proflabo" - "proflycee" - "profsio" - "tabvar" - "tdsfrmath" - "texlive-fr" - "translation-array-fr" - "translation-dcolumn-fr" - "translation-natbib-fr" - "translation-tabbing-fr" - "variations" - "visualfaq-fr" - "visualtikz" - ]; - sha512.run = "83be4aa190b32580ab6334a00785123be5678a95f84589dea2ccc2ce77a6328bf8954f28e683a9614b43a062901a28b3f6b060bd968876094aeab5b1f9aee816"; -}; -collection-langgerman = { - revision = 68711; - shortdesc = "German"; - stripPrefix = 0; - deps = [ - "apalike-german" - "autotype" - "babel-german" - "bibleref-german" - "booktabs-de" - "collection-basic" - "csquotes-de" - "dehyph" - "dehyph-exptl" - "dhua" - "dtk-bibliography" - "etdipa" - "etoolbox-de" - "fifinddo-info" - "german" - "germbib" - "germkorr" - "hausarbeit-jura" - "hyphen-german" - "koma-script-examples" - "l2picfaq" - "l2tabu" - "latexcheat-de" - "lshort-german" - "lualatex-doc-de" - "microtype-de" - "milog" - "quran-de" - "r_und_s" - "schulmathematik" - "templates-fenn" - "templates-sommer" - "termcal-de" - "texlive-de" - "tipa-de" - "translation-arsclassica-de" - "translation-biblatex-de" - "translation-chemsym-de" - "translation-ecv-de" - "translation-enumitem-de" - "translation-europecv-de" - "translation-filecontents-de" - "translation-moreverb-de" - "udesoftec" - "uhrzeit" - "umlaute" - "voss-mathcol" - ]; - sha512.run = "3b52fac1e2520302998c3b11bc2f77b34d5bd4cc09f4fa4b9238ece66b0e36e676643f7476846d1b25eb64d31b0dbe87a33ad44669be101f61cf223e70ecb047"; -}; -collection-langgreek = { - revision = 65038; - shortdesc = "Greek"; - stripPrefix = 0; - deps = [ - "babel-greek" - "begingreek" - "betababel" - "cbfonts" - "cbfonts-fd" - "collection-basic" - "gfsbaskerville" - "gfsporson" - "greek-fontenc" - "greek-inputenc" - "greekdates" - "greektex" - "greektonoi" - "hyphen-ancientgreek" - "hyphen-greek" - "ibycus-babel" - "ibygrk" - "kerkis" - "levy" - "lgreek" - "lgrmath" - "mkgrkindex" - "talos" - "teubner" - "xgreek" - "yannisgr" - ]; - sha512.run = "800991b6bb8ac7772ad030ad665b812abd9b294498f7b7678be721ccc87d54607e267bd189a0591ebead2c6ecb64047e5b5581c374f067c3b1575b6d442cc6c9"; -}; -collection-langitalian = { - revision = 55129; - shortdesc = "Italian"; - stripPrefix = 0; - deps = [ - "amsldoc-it" - "amsmath-it" - "amsthdoc-it" - "antanilipsum" - "babel-italian" - "codicefiscaleitaliano" - "collection-basic" - "fancyhdr-it" - "fixltxhyph" - "frontespizio" - "hyphen-italian" - "itnumpar" - "l2tabu-italian" - "latex4wp-it" - "layaureo" - "lshort-italian" - "psfrag-italian" - "texlive-it" - "verifica" - ]; - sha512.run = "6ec5e8a62e3c1ed8e3c23542381091d38c77af507af7088a55e44f1e34b85d01ec19342db4541d9d6cd712c0929d54a3fc663e1d8fde3c53fef0d6fc43be4994"; -}; -collection-langjapanese = { - revision = 69967; - shortdesc = "Japanese"; - stripPrefix = 0; - deps = [ - "ascmac" - "asternote" - "babel-japanese" - "bxbase" - "bxcjkjatype" - "bxghost" - "bxjaholiday" - "bxjalipsum" - "bxjaprnind" - "bxjatoucs" - "bxjscls" - "bxorigcapt" - "bxwareki" - "collection-langcjk" - "convbkmk" - "endnotesj" - "gckanbun" - "gentombow" - "haranoaji" - "haranoaji-extra" - "ieejtran" - "ifptex" - "ifxptex" - "ipaex" - "japanese-mathformulas" - "japanese-otf" - "jieeetran" - "jlreq" - "jlreq-deluxe" - "jpneduenumerate" - "jpnedumathsymbols" - "jsclasses" - "kanbun" - "lshort-japanese" - "luatexja" - "mendex-doc" - "morisawa" - "pbibtex-base" - "pbibtex-manual" - "platex" - "platex-tools" - "platexcheat" - "plautopatch" - "ptex" - "ptex-base" - "ptex-fontmaps" - "ptex-fonts" - "ptex-manual" - "ptex2pdf" - "pxbase" - "pxchfon" - "pxcjkcat" - "pxjahyper" - "pxjodel" - "pxrubrica" - "pxufont" - "sjtutex" - "texlive-ja" - "uplatex" - "uptex" - "uptex-base" - "uptex-fonts" - "wadalab" - "zxjafbfont" - "zxjatype" - ]; - sha512.run = "18296a73452e8d346ba10b8241adfdb6b0a258dd443517a566e415f418e7c158c6d179f20c5818a36fcb12bce816571c0d317120f033ca1f20c5acfcfa00074d"; -}; -collection-langkorean = { - revision = 54074; - shortdesc = "Korean"; - stripPrefix = 0; - deps = [ - "baekmuk" - "cjk-ko" - "collection-langcjk" - "kotex-oblivoir" - "kotex-plain" - "kotex-utf" - "kotex-utils" - "lshort-korean" - "nanumtype1" - "pmhanguljamo" - "uhc" - "unfonts-core" - "unfonts-extra" - ]; - sha512.run = "2d93df728d34137c8f9a884aa2871a2980e806672006f2c5f0c5f79412d5789c6f94958363cfc9a78b5a97a7d76bbb6cb157b2cb2a8a283f7afdfd838fa24883"; -}; -collection-langother = { - revision = 68719; - shortdesc = "Other languages"; - stripPrefix = 0; - deps = [ - "aalok" - "akshar" - "amsldoc-vn" - "aramaic-serto" - "babel-azerbaijani" - "babel-esperanto" - "babel-georgian" - "babel-hebrew" - "babel-indonesian" - "babel-interlingua" - "babel-malay" - "babel-sorbian" - "babel-thai" - "babel-vietnamese" - "bangla" - "bangtex" - "bengali" - "burmese" - "chhaya" - "cjhebrew" - "collection-basic" - "ctib" - "culmus" - "ebong" - "ethiop" - "ethiop-t1" - "fc" - "fonts-tlwg" - "hebrew-fonts" - "hindawi-latex-template" - "hyphen-afrikaans" - "hyphen-armenian" - "hyphen-coptic" - "hyphen-esperanto" - "hyphen-ethiopic" - "hyphen-georgian" - "hyphen-indic" - "hyphen-indonesian" - "hyphen-interlingua" - "hyphen-sanskrit" - "hyphen-thai" - "hyphen-turkmen" - "latex-mr" - "latexbangla" - "latino-sine-flexione" - "lshort-thai" - "lshort-vietnamese" - "marathi" - "ntheorem-vn" - "padauk" - "quran-bn" - "quran-id" - "quran-ur" - "sanskrit" - "sanskrit-t1" - "thaienum" - "thaispec" - "unicode-alphabets" - "velthuis" - "vntex" - "wnri" - "wnri-latex" - "xetex-devanagari" - ]; - sha512.run = "312be65445c4b862e50fcf4bb8d4413b233eadee8a9ca14ff3cb4eb37549314f37a5d00d22a4b3b2cd461b3b0473a7426a5e7f33ffbaf6dfc0687f1af754cae1"; -}; -collection-langpolish = { - revision = 54074; - shortdesc = "Polish"; - stripPrefix = 0; - deps = [ - "babel-polish" - "bredzenie" - "cc-pl" - "collection-basic" - "collection-latex" - "gustlib" - "gustprog" - "hyphen-polish" - "lshort-polish" - "mex" - "mwcls" - "pl" - "polski" - "przechlewski-book" - "qpxqtx" - "tap" - "tex-virtual-academy-pl" - "texlive-pl" - "utf8mex" - ]; - sha512.run = "fc0d08f70aeb83869109290e6d1585d513097dcd4e17791752ecd3d26ac202838afb5931f78ceaeeaf72c63b18fe9183edd650c075d03188f24cb2caded178de"; -}; -collection-langportuguese = { - revision = 67125; - shortdesc = "Portuguese"; - stripPrefix = 0; - deps = [ - "babel-portuges" - "beamer-tut-pt" - "collection-basic" - "cursolatex" - "feupphdteses" - "hyphen-portuguese" - "latex-via-exemplos" - "latexcheat-ptbr" - "lshort-portuguese" - "numberpt" - "ordinalpt" - "ptlatexcommands" - "xypic-tut-pt" - ]; - sha512.run = "554f7d7e4828e1122cf3bc6b24c67661046ce2ae646975054f6903f8c2dfd3e63131ada963cd3b5a1ca3128539f039b4d275b9c8caadde1dbe9118d583d47585"; -}; -collection-langspanish = { - revision = 67307; - shortdesc = "Spanish"; - stripPrefix = 0; - deps = [ - "antique-spanish-units" - "babel-catalan" - "babel-galician" - "babel-spanish" - "collection-basic" - "es-tex-faq" - "hyphen-catalan" - "hyphen-galician" - "hyphen-spanish" - "l2tabu-spanish" - "latex2e-help-texinfo-spanish" - "latexcheat-esmx" - "lshort-spanish" - "texlive-es" - ]; - sha512.run = "1f3c1cc4d1e28871085092314a58671a2acab47da0a758c0bdff569b0a80697ac3c32e9991a8f77268f86c02e51420e4d999a9eef72a2a7353a3efbc633e25a9"; -}; -collection-latex = { - revision = 69131; - shortdesc = "LaTeX fundamental packages"; - stripPrefix = 0; - deps = [ - "ae" - "amscls" - "amsmath" - "atbegshi" - "atveryend" - "auxhook" - "babel" - "babel-english" - "babelbib" - "bigintcalc" - "bitset" - "bookmark" - "carlisle" - "collection-basic" - "colortbl" - "epstopdf-pkg" - "etexcmds" - "fancyhdr" - "firstaid" - "fix2col" - "geometry" - "gettitlestring" - "graphics" - "graphics-cfg" - "grfext" - "hopatch" - "hycolor" - "hyperref" - "intcalc" - "kvdefinekeys" - "kvoptions" - "kvsetkeys" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-bin" - "latex-fonts" - "latex-lab" - "latexconfig" - "letltxmacro" - "ltxcmds" - "ltxmisc" - "mfnfss" - "mptopdf" - "natbib" - "oberdiek" - "pagesel" - "pdfescape" - "pdftexcmds" - "pslatex" - "psnfss" - "pspicture" - "refcount" - "rerunfilecheck" - "stringenc" - "tools" - "uniquecounter" - "url" - ]; - sha512.run = "889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a03a16e660b114e358cd72e3fafa14a158849cf03aa2ad4d73a5bee4ca9abc4c24af"; -}; -collection-latexextra = { - revision = 70534; - shortdesc = "LaTeX additional packages"; - stripPrefix = 0; - deps = [ - "2up" - "a0poster" - "a4wide" - "a5comb" - "abraces" - "abspos" - "abstract" - "accessibility" - "accsupp" - "achemso" - "acro" - "acronym" - "acroterm" - "actuarialangle" - "actuarialsymbol" - "addfont" - "addlines" - "adjmulticol" - "adjustbox" - "adrconv" - "advdate" - "affilauthor" - "akktex" - "akletter" - "alchemist" - "alertmessage" - "alnumsec" - "alphalph" - "alterqcm" - "altfont" - "altsubsup" - "amsaddr" - "animate" - "anonchap" - "answers" - "anyfontsize" - "appendix" - "appendixnumberbeamer" - "apptools" - "arabicfront" - "arcs" - "argumentation" - "arraycols" - "arrayjobx" - "arraysort" - "arydshln" - "asciilist" - "askinclude" - "assignment" - "assoccnt" - "association-matrix" - "atenddvi" - "atendofenv" - "attachfile" - "aurl" - "authoraftertitle" - "authorarchive" - "authorindex" - "autofancyhdr" - "autonum" - "autopdf" - "autopuncitems" - "avremu" - "awesomebox" - "axessibility" - "background" - "bankstatement" - "bashful" - "basicarith" - "bchart" - "beamer-rl" - "beamer2thesis" - "beamerappendixnote" - "beameraudience" - "beamerauxtheme" - "beamercolorthemeowl" - "beamerdarkthemes" - "beamerposter" - "beamersubframe" - "beamertheme-arguelles" - "beamertheme-cuerna" - "beamertheme-detlevcm" - "beamertheme-epyt" - "beamertheme-focus" - "beamertheme-light" - "beamertheme-metropolis" - "beamertheme-npbt" - "beamertheme-phnompenh" - "beamertheme-pure-minimalistic" - "beamertheme-rainbow" - "beamertheme-saintpetersburg" - "beamertheme-simpledarkblue" - "beamertheme-simpleplus" - "beamertheme-tcolorbox" - "beamertheme-trigon" - "beamertheme-upenn-bc" - "beamerthemeamurmaple" - "beamerthemeconcrete" - "beamerthemejltree" - "beamerthemelalic" - "beamerthemenirma" - "beamerthemenord" - "bearwear" - "beaulivre" - "beautybook" - "beautynote" - "beton" - "bewerbung" - "bez123" - "bhcexam" - "bibletext" - "bigfoot" - "bigints" - "bilingualpages" - "biochemistry-colors" - "bithesis" - "bizcard" - "blindtext" - "blkarray" - "block" - "blowup" - "bnumexpr" - "boites" - "bold-extra" - "book-of-common-prayer" - "bookcover" - "bookest" - "booklet" - "bookshelf" - "boolexpr" - "bophook" - "boxedminipage" - "boxhandler" - "bracketkey" - "braket" - "breakurl" - "bubblesort" - "bullcntr" - "bxcalc" - "bxdpx-beamer" - "bxdvidriver" - "bxenclose" - "bxnewfont" - "bxpapersize" - "bxpdfver" - "bxtexlogo" - "calcage" - "calctab" - "calculator" - "calrsfs" - "cals" - "calxxxx-yyyy" - "cancel" - "canoniclayout" - "capt-of" - "captcont" - "captdef" - "carbohydrates" - "cases" - "casyl" - "catchfile" - "catchfilebetweentags" - "catechis" - "catoptions" - "cbcoptic" - "ccaption" - "cclicenses" - "cd" - "cd-cover" - "cdcmd" - "cdpbundl" - "cellprops" - "cellspace" - "censor" - "centeredline" - "centerlastline" - "changebar" - "changelayout" - "changelog" - "changepage" - "changes" - "chappg" - "chapterfolder" - "cheatsheet" - "checkend" - "chet" - "chextras" - "childdoc" - "chkfloat" - "chletter" - "chngcntr" - "chronology" - "circ" - "circledsteps" - "circledtext" - "classics" - "classpack" - "clefval" - "cleveref" - "cleveref-forward" - "cleveref-usedon" - "clicks" - "clipboard" - "clistmap" - "clock" - "clrdblpg" - "clrstrip" - "cmdstring" - "cmdtrack" - "cmsd" - "cnltx" - "cntformats" - "cntperchap" - "codebox" - "codedescribe" - "codedoc" - "codehigh" - "codepage" - "codesection" - "collcell" - "collectbox" - "collection-latexrecommended" - "collection-pictures" - "colophon" - "color-edits" - "colordoc" - "colorframed" - "colorinfo" - "coloring" - "colorist" - "colorspace" - "colortab" - "colorwav" - "colorweb" - "colourchange" - "combelow" - "combine" - "comma" - "commado" - "commedit" - "comment" - "commonunicode" - "competences" - "concepts" - "concprog" - "conditext" - "constants" - "continue" - "contour" - "contracard" - "conv-xkv" - "cooking" - "cooking-units" - "cool" - "coolfn" - "coollist" - "coolstr" - "coolthms" - "cooltooltips" - "coop-writing" - "coordsys" - "copyedit" - "copyrightbox" - "coseoul" - "counterz" - "counttexruns" - "courseoutline" - "coursepaper" - "coverpage" - "cprotect" - "cprotectinside" - "crbox" - "create-theorem" - "creationboites" - "crefthe" - "crossreference" - "crossreftools" - "crumbs" - "csquotes" - "css-colors" - "csvmerge" - "csvsimple" - "cuisine" - "currency" - "currfile" - "curriculum-vitae" - "currvita" - "customenvs" - "cutwin" - "cv" - "cv4tw" - "cweb-latex" - "cyber" - "cybercic" - "darkmode" - "dashbox" - "dashrule" - "dashundergaps" - "dataref" - "datatool" - "datax" - "dateiliste" - "datenumber" - "datestamp" - "datetime" - "datetime2" - "datetime2-bahasai" - "datetime2-basque" - "datetime2-breton" - "datetime2-bulgarian" - "datetime2-catalan" - "datetime2-croatian" - "datetime2-czech" - "datetime2-danish" - "datetime2-dutch" - "datetime2-en-fulltext" - "datetime2-english" - "datetime2-esperanto" - "datetime2-estonian" - "datetime2-finnish" - "datetime2-french" - "datetime2-galician" - "datetime2-german" - "datetime2-greek" - "datetime2-hebrew" - "datetime2-icelandic" - "datetime2-irish" - "datetime2-it-fulltext" - "datetime2-italian" - "datetime2-latin" - "datetime2-lsorbian" - "datetime2-magyar" - "datetime2-norsk" - "datetime2-polish" - "datetime2-portuges" - "datetime2-romanian" - "datetime2-russian" - "datetime2-samin" - "datetime2-scottish" - "datetime2-serbian" - "datetime2-slovak" - "datetime2-slovene" - "datetime2-spanish" - "datetime2-swedish" - "datetime2-turkish" - "datetime2-ukrainian" - "datetime2-usorbian" - "datetime2-welsh" - "dblfloatfix" - "dbshow" - "debate" - "decimal" - "decimalcomma" - "decorule" - "defoldfonts" - "delimtxt" - "democodetools" - "denisbdoc" - "diabetes-logbook" - "diagbox" - "diagnose" - "dialogl" - "dichokey" - "didec" - "dimnum" - "dinbrief" - "directory" - "dirtytalk" - "dlfltxb" - "dnaseq" - "doclicense" - "docmfp" - "docmute" - "docshots" - "doctools" - "documentation" - "docutils" - "doi" - "dotarrow" - "dotlessi" - "dotseqn" - "download" - "dox" - "dpfloat" - "dprogress" - "drac" - "draftcopy" - "draftfigure" - "draftwatermark" - "dtk" - "dtxdescribe" - "dtxgallery" - "ducksay" - "duckuments" - "dvdcoll" - "dynamicnumber" - "dynblocks" - "ean13isbn" - "easy" - "easy-todo" - "easybook" - "easyfig" - "easyfloats" - "easyformat" - "easylist" - "easyreview" - "ebezier" - "ecclesiastic" - "econlipsum" - "ecv" - "ed" - "edichokey" - "edmargin" - "eemeir" - "efbox" - "egplot" - "ehhline" - "einfart" - "elements" - "ellipsis" - "elmath" - "elocalloc" - "elpres" - "elzcards" - "emarks" - "embedall" - "embedfile" - "embrac" - "emo" - "emotion" - "emptypage" - "emulateapj" - "endfloat" - "endheads" - "endnotes" - "endnotes-hy" - "engpron" - "engrec" - "enotez" - "enumitem" - "enumitem-zref" - "envbig" - "environ" - "envlab" - "epigraph" - "epigraph-keys" - "epiolmec" - "eq-pin2corr" - "eqell" - "eqlist" - "eqnalign" - "eqname" - "eqparbox" - "errata" - "erw-l3" - "esami" - "esdiff" - "esieecv" - "esindex" - "esint" - "esint-type1" - "etaremune" - "etextools" - "etl" - "etoc" - "eukdate" - "eulerpx" - "europasscv" - "europecv" - "everyhook" - "everypage" - "exam" - "exam-lite" - "exam-n" - "exam-randomizechoices" - "examdesign" - "example" - "examplep" - "examz" - "exceltex" - "excludeonly" - "exercise" - "exercisebank" - "exercisepoints" - "exercises" - "exesheet" - "exframe" - "exp-testopt" - "expdlist" - "export" - "exsheets" - "exsol" - "extract" - "facsimile" - "factura" - "fail-fast" - "familytree" - "fancyhandout" - "fancylabel" - "fancynum" - "fancypar" - "fancyqr" - "fancyslides" - "fancytabs" - "fancytooltips" - "fbox" - "fcolumn" - "fetchcls" - "fewerfloatpages" - "ffcode" - "ffslides" - "fgruler" - "fifo-stack" - "figsize" - "filecontents" - "filecontentsdef" - "filedate" - "fileinfo" - "filemod" - "fink" - "finstrut" - "fistrum" - "fithesis" - "fixcmex" - "fixfoot" - "fixme" - "fixmetodonotes" - "fjodor" - "flabels" - "flacards" - "flagderiv" - "flashcards" - "flashmovie" - "flexipage" - "flipbook" - "flippdf" - "floatbytocbasic" - "floatflt" - "floatrow" - "floatrowbytocbasic" - "flowfram" - "fmp" - "fmtcount" - "fn2end" - "fnbreak" - "fncychap" - "fncylab" - "fnpara" - "fnpct" - "fnumprint" - "foilhtml" - "foliono" - "fontaxes" - "fontscale" - "fontsetup" - "fontsize" - "fonttable" - "footmisc" - "footmisx" - "footnotebackref" - "footnoterange" - "footnpag" - "forarray" - "foreign" - "forloop" - "formlett" - "forms16be" - "formular" - "fragments" - "frame" - "framed" - "frankenstein" - "frege" - "froufrou" - "ftcap" - "ftnxtra" - "fullblck" - "fullminipage" - "fullwidth" - "functional" - "fundus-calligra" - "fundus-cyr" - "fundus-sueterlin" - "fvextra" - "fwlw" - "g-brief" - "gatherenum" - "gauss" - "gcard" - "gcite" - "gender" - "genealogy-profiles" - "genmpage" - "gensymb" - "getfiledate" - "getitems" - "gindex" - "ginpenc" - "gitfile-info" - "gitinfo" - "gitinfo2" - "gitlog" - "gitstatus" - "gitver" - "globalvals" - "gloss" - "glossaries" - "glossaries-danish" - "glossaries-dutch" - "glossaries-english" - "glossaries-estonian" - "glossaries-extra" - "glossaries-finnish" - "glossaries-french" - "glossaries-german" - "glossaries-irish" - "glossaries-italian" - "glossaries-magyar" - "glossaries-norsk" - "glossaries-nynorsk" - "glossaries-polish" - "glossaries-portuges" - "glossaries-serbian" - "glossaries-slovene" - "glossaries-spanish" - "gmdoc" - "gmdoc-enhance" - "gmiflink" - "gmutils" - "gmverb" - "grabbox" - "gradient-text" - "grading-scheme" - "graphbox" - "graphicscache" - "graphicx-psmin" - "graphicxbox" - "graphpaper" - "grayhints" - "grfpaste" - "grid" - "grid-system" - "gridpapers" - "gridset" - "gridslides" - "gs1" - "guitlogo" - "ha-prosper" - "hackthefootline" - "halloweenmath" - "handin" - "handout" - "handoutwithnotes" - "hang" - "hanging" - "hardwrap" - "harnon-cv" - "harpoon" - "hc" - "he-she" - "hep-acronym" - "hep-float" - "hep-math" - "hep-text" - "hep-title" - "hereapplies" - "hhtensor" - "hideanswer" - "highlightlatex" - "highlightx" - "histogr" - "hitec" - "hitreport" - "hletter" - "hobsub" - "homework" - "hpsdiss" - "href-ul" - "hrefhide" - "huawei" - "hvextern" - "hvindex" - "hvlogos" - "hvpygmentex" - "hvqrurl" - "hwemoji" - "hypdestopt" - "hypdoc" - "hypdvips" - "hyper" - "hyperbar" - "hypernat" - "hyperxmp" - "hyphenat" - "identkey" - "idxcmds" - "idxlayout" - "iexec" - "ifallfalse" - "iffont" - "ifmslide" - "ifmtarg" - "ifnextok" - "ifoddpage" - "ifthenx" - "iitem" - "image-gallery" - "imakeidx" - "import" - "incgraph" - "indextools" - "inline-images" - "inlinedef" - "inlinelabel" - "inputenx" - "inputtrc" - "interactiveworkbook" - "interfaces" - "intopdf" - "inversepath" - "invoice" - "invoice-class" - "invoice2" - "ipsum" - "iso" - "iso10303" - "isodate" - "isodoc" - "isonums" - "isopt" - "isorot" - "isosafety" - "isotope" - "issuulinks" - "iwonamath" - "jlabels" - "jmsdelim" - "jobname-suffix" - "joinbox" - "jslectureplanner" - "jumplines" - "jvlisting" - "kalendarium" - "kantlipsum" - "kerntest" - "keycommand" - "keyfloat" - "keyindex" - "keyparse" - "keyreader" - "keystroke" - "keyval2e" - "keyvaltable" - "kix" - "knowledge" - "koma-moderncvclassic" - "koma-script-sfs" - "komacv" - "komacv-rg" - "korigamik" - "ktv-texdata" - "l3build" - "labbook" - "labels" - "labels4easylist" - "labelschanged" - "lambdax" - "lastbib" - "lastpackage" - "lastpage" - "latex-amsmath-dev" - "latex-base-dev" - "latex-bin-dev" - "latex-context-ppchtex" - "latex-firstaid-dev" - "latex-graphics-dev" - "latex-lab-dev" - "latex-tools-dev" - "latex-uni8" - "latex2pydata" - "latexcolors" - "latexdemo" - "latexgit" - "layouts" - "lazylist" - "lccaps" - "lcd" - "lcg" - "leading" - "leaflet" - "lebhart" - "lectures" - "lectureslides" - "leftidx" - "leftindex" - "leipzig" - "lengthconvert" - "lettre" - "lettrine" - "lewis" - "lhelp" - "libgreek" - "limap" - "linegoal" - "linop" - "lipsum" - "lisp-on-tex" - "listing" - "listingsutf8" - "listlbls" - "listliketab" - "listofsymbols" - "litebook" - "litesolution" - "litetable" - "lkproof" - "lmake" - "locality" - "logbox" - "logical-markup-utils" - "logoetalab" - "logpap" - "longfbox" - "longfigure" - "longnamefilelist" - "loops" - "lsc" - "lstaddons" - "lstfiracode" - "lt3graph" - "lt3rawobjects" - "ltablex" - "ltabptch" - "ltxdockit" - "ltxguidex" - "ltxkeys" - "ltxnew" - "ltxtools" - "lua-check-hyphen" - "lua-physical" - "luatodonotes" - "macrolist" - "macroswap" - "magaz" - "magicnum" - "magicwatermark" - "mailing" - "mailmerge" - "makebarcode" - "makebase" - "makebox" - "makecell" - "makecirc" - "makecmds" - "makecookbook" - "makedtx" - "makeglos" - "makelabels" - "makerobust" - "mandi" - "manfnt" - "manuscript" - "manyind" - "marginfit" - "marginfix" - "marginnote" - "markdown" - "mathalpha" - "mathastext" - "mathexam" - "mathfam256" - "mathfont" - "maybemath" - "mcaption" - "mceinleger" - "mcexam" - "mcite" - "mciteplus" - "mdframed" - "media4svg" - "media9" - "medstarbeamer" - "meetingmins" - "memexsupp" - "memory" - "mensa-tex" - "menu" - "menucard" - "menukeys" - "metalogox" - "metanorma" - "metastr" - "method" - "metre" - "mfirstuc" - "mftinc" - "mi-solns" - "midpage" - "mindflow" - "minibox" - "minidocument" - "minifp" - "minimalist" - "minipage-marginpar" - "minitoc" - "minorrevision" - "minted" - "minutes" - "mla-paper" - "mleftright" - "mlist" - "mmap" - "mnotes" - "moderncv" - "modernposter" - "moderntimeline" - "modref" - "modroman" - "modular" - "moloch" - "monofill" - "moodle" - "moreenum" - "morefloats" - "morehype" - "moresize" - "moreverb" - "morewrites" - "movement-arrows" - "movie15" - "mparhack" - "mpostinl" - "msc" - "msg" - "mslapa" - "mtgreek" - "multenum" - "multiaudience" - "multibbl" - "multicap" - "multicolrule" - "multidef" - "multienv" - "multiexpand" - "multifootnote" - "multilang" - "multiple-choice" - "multirow" - "mversion" - "mwe" - "mycv" - "mylatex" - "mylatexformat" - "nag" - "nameauth" - "namespc" - "ncclatex" - "ncctools" - "needspace" - "nestquot" - "newcommand" - "newenviron" - "newfile" - "newlfm" - "newspaper" - "newunicodechar" - "newvbtm" - "newverbs" - "nextpage" - "nfssext-cfr" - "nicefilelist" - "niceframe" - "nicetext" - "nidanfloat" - "ninecolors" - "nlctdoc" - "noconflict" - "noindentafter" - "noitcrul" - "nolbreaks" - "nomencl" - "nomentbl" - "non-decimal-units" - "nonfloat" - "nonumonpart" - "nopageno" - "normalcolor" - "notebeamer" - "notes" - "notespages" - "notestex" - "notoccite" - "nowidow" - "nox" - "ntheorem" - "numberedblock" - "numname" - "numprint" - "numspell" - "ocg-p" - "ocgx" - "ocgx2" - "ocr-latex" - "octavo" - "oldstyle" - "onlyamsmath" - "opcit" - "opencolor" - "optidef" - "optional" - "options" - "orcidlink" - "orientation" - "outline" - "outliner" - "outlines" - "outlining" - "overlays" - "overpic" - "padcount" - "pagecolor" - "pagecont" - "pagegrid" - "pagelayout" - "pagenote" - "pagerange" - "pageslts" - "palette" - "pangram" - "paper" - "papercdcase" - "papermas" - "papertex" - "paracol" - "parades" - "paralist" - "paresse" - "parnotes" - "parsa" - "parselines" - "pas-cours" - "pas-cv" - "pas-tableur" - "patch" - "patchcmd" - "pauldoc" - "pawpict" - "pax" - "pbalance" - "pbox" - "pbsheet" - "pdf14" - "pdfannotations" - "pdfcol" - "pdfcolmk" - "pdfcomment" - "pdfcprot" - "pdfmarginpar" - "pdfoverlay" - "pdfpagediff" - "pdfpc" - "pdfpc-movie" - "pdfprivacy" - "pdfrender" - "pdfreview" - "pdfscreen" - "pdfslide" - "pdfsync" - "pdfwin" - "pdfx" - "pecha" - "perltex" - "permute" - "petiteannonce" - "pgfmath-xfp" - "phfcc" - "phfextendedabstract" - "phffullpagefigure" - "phfnote" - "phfparen" - "phfqit" - "phfquotetext" - "phfsvnwatermark" - "phfthm" - "philex" - "phonenumbers" - "photo" - "photobook" - "picture" - "piff" - "pkgloader" - "placeins" - "plantslabels" - "plates" - "plweb" - "pmboxdraw" - "polynom" - "polynomial" - "polytable" - "postcards" - "poster-mac" - "postnotes" - "powerdot" - "ppr-prv" - "ppt-slides" - "practicalreports" - "precattl" - "prelim2e" - "preprint" - "pressrelease" - "prettyref" - "prettytok" - "preview" - "printlen" - "probsoln" - "profmaquette" - "program" - "progress" - "progressbar" - "projlib" - "proofread" - "properties" - "prosper" - "protex" - "protocol" - "psfragx" - "pstool" - "pstring" - "pxgreeks" - "pygmentex" - "pynotebook" - "python" - "pythonimmediate" - "q-and-a" - "qcm" - "qstest" - "qsymbols" - "quicktype" - "quiz2socrative" - "quotchap" - "quoting" - "quotmark" - "ran_toks" - "randexam" - "randtext" - "rccol" - "rcs-multi" - "rcsinfo" - "readablecv" - "readarray" - "realboxes" - "recipe" - "recipebook" - "recipecard" - "rectopma" - "refcheck" - "refenums" - "reflectgraphics" - "refman" - "refstyle" - "regcount" - "regexpatch" - "register" - "regstats" - "relenc" - "relsize" - "repeatindex" - "repltext" - "rescansync" - "resmes" - "responsive" - "returntogrid" - "rgltxdoc" - "rjlparshap" - "rlepsf" - "rmpage" - "robust-externalize" - "robustcommand" - "robustindex" - "romanbar" - "romanbarpagenumber" - "romanneg" - "romannum" - "rorlink" - "rotfloat" - "rotpages" - "roundbox" - "rterface" - "rtkinenc" - "rulerbox" - "rulercompass" - "runcode" - "rvwrite" - "sanitize-umlaut" - "sauerj" - "saveenv" - "savefnmark" - "savesym" - "savetrees" - "scale" - "scalebar" - "scalerel" - "scanpages" - "schedule" - "schooldocs" - "scontents" - "scrambledenvs" - "scrlayer-fancyhdr" - "scrlttr2copy" - "scrwfile" - "sdaps" - "sdrt" - "secdot" - "secnum" - "sectionbox" - "sectionbreak" - "sectsty" - "seealso" - "selectp" - "selinput" - "semantex" - "semantic" - "semantic-markup" - "semesterplanner" - "semioneside" - "semproc" - "semtex" - "sepfootnotes" - "seqsplit" - "sesstime" - "setspaceenhanced" - "sf298" - "sffms" - "sfmath" - "shadethm" - "shadow" - "shadowtext" - "shapepar" - "shdoc" - "shipunov" - "shorttoc" - "show2e" - "showcharinbox" - "showdim" - "showexpl" - "showlabels" - "sidecap" - "sidenotes" - "sidenotesplus" - "silence" - "sillypage" - "sim-os-menus" - "simplecd" - "simplecv" - "simpleinvoice" - "simplivre" - "sitem" - "skb" - "skdoc" - "skeldoc" - "skeycommand" - "skeyval" - "skills" - "skrapport" - "slantsc" - "smalltableof" - "smart-eqn" - "smartref" - "smartunits" - "snapshot" - "snaptodo" - "snotez" - "soulpos" - "spacingtricks" - "spark-otf" - "sparklines" - "sphack" - "splitindex" - "spot" - "spotcolor" - "spreadtab" - "spverbatim" - "srbook-mem" - "srcltx" - "sseq" - "sslides" - "stack" - "stackengine" - "standalone" - "starray" - "stdclsdv" - "stdpage" - "stealcaps" - "stex" - "storebox" - "storecmd" - "stringstrings" - "sttools" - "stubs" - "studenthandouts" - "styledcmd" - "subdepth" - "subdocs" - "subeqn" - "subeqnarray" - "subfigmat" - "subfigure" - "subfiles" - "subfloat" - "substr" - "supertabular" - "suppose" - "svg" - "svgcolor" - "svn" - "svn-multi" - "svn-prov" - "svninfo" - "swfigure" - "swungdash" - "syntax" - "syntrace" - "synttree" - "tabbing" - "tabfigures" - "tableaux" - "tablefootnote" - "tableof" - "tablists" - "tabls" - "tablvar" - "tabstackengine" - "tabto-ltx" - "tabu" - "tabularborder" - "tabularcalc" - "tabularew" - "tabularray" - "tabulary" - "tagging" - "tagpair" - "tagpdf" - "talk" - "tamefloats" - "tangocolors" - "tasks" - "tblr-extras" - "tcldoc" - "tcolorbox" - "tdclock" - "technics" - "ted" - "templatetools" - "termcal" - "termlist" - "termsim" - "testhyphens" - "testidx" - "tex-label" - "tex-locale" - "texlogos" - "texmate" - "texments" - "texpower" - "texshade" - "texsurgery" - "textcsc" - "textfit" - "textmerg" - "textpos" - "textualicomma" - "texvc" - "theoremref" - "thinsp" - "thmtools" - "threadcol" - "threeparttable" - "threeparttablex" - "thumb" - "thumbs" - "thumby" - "ticket" - "tipauni" - "titlecaps" - "titlefoot" - "titlepic" - "titleref" - "titlesec" - "titling" - "to-be-determined" - "tocbibind" - "tocdata" - "tocloft" - "tocvsec2" - "todo" - "todonotes" - "tokcycle" - "tokenizer" - "toolbox" - "topfloat" - "topiclongtable" - "totalcount" - "totcount" - "totpages" - "tramlines" - "translations" - "transparent" - "trfsigns" - "trimspaces" - "trivfloat" - "trsym" - "truncate" - "tucv" - "turnthepage" - "tutodoc" - "twoinone" - "twoup" - "txgreeks" - "type1cm" - "typed-checklist" - "typeface" - "typoaid" - "typogrid" - "uassign" - "ucs" - "uebungsblatt" - "umoline" - "underlin" - "underoverlap" - "undolabl" - "uni-titlepage" - "unicode-math-input" - "unicodefonttable" - "unifront" - "unisc" - "unitconv" - "units" - "unravel" - "updatemarks" - "upmethodology" - "upquote" - "uri" - "useclass" - "ushort" - "uspace" - "utf8add" - "uwmslide" - "variablelm" - "varindex" - "varsfromjobname" - "varwidth" - "vcell" - "vdmlisting" - "verbasef" - "verbatimbox" - "verbatimcopy" - "verbdef" - "verbments" - "verifiche" - "verifycommand" - "version" - "versions" - "versonotes" - "vertbars" - "vgrid" - "vhistory" - "vmargin" - "volumes" - "vpe" - "vruler" - "vtable" - "vwcol" - "wallcalendar" - "wallpaper" - "warning" - "warpcol" - "was" - "webquiz" - "widetable" - "widows-and-orphans" - "williams" - "willowtreebook" - "withargs" - "wordcount" - "wordlike" - "worksheet" - "wrapfig" - "wrapfig2" - "wrapstuff" - "writeongrid" - "wtref" - "xargs" - "xassoccnt" - "xbmks" - "xcntperchap" - "xcolor-material" - "xcolor-solarized" - "xcomment" - "xcookybooky" - "xcpdftips" - "xdoc" - "xellipsis" - "xfakebold" - "xfor" - "xhfill" - "xifthen" - "xint" - "xkcdcolors" - "xkeymask" - "xltabular" - "xmpincl" - "xnewcommand" - "xoptarg" - "xpatch" - "xpeek" - "xprintlen" - "xpunctuate" - "xsavebox" - "xsim" - "xstring" - "xtab" - "xurl" - "xwatermark" - "xytree" - "yafoot" - "yagusylo" - "yaletter" - "ycbook" - "ydoc" - "yplan" - "zebra-goodies" - "zed-csp" - "zennote" - "ziffer" - "zref" - "zref-check" - "zref-clever" - "zref-vario" - "zwgetfdate" - "zwpagelayout" - ]; - sha512.run = "98a00a699b249cc95f5466322fff70b07b94a3e3941b10dbb2a052491e23e733f902c9281a76279363b55a5b59c0d5afb84017c4bba48459525e22c431876dd9"; -}; -collection-latexrecommended = { - revision = 69888; - shortdesc = "LaTeX recommended packages"; - stripPrefix = 0; - deps = [ - "anysize" - "attachfile2" - "beamer" - "booktabs" - "breqn" - "caption" - "cite" - "cmap" - "collection-latex" - "crop" - "ctable" - "eso-pic" - "etoolbox" - "euenc" - "euler" - "everysel" - "everyshi" - "extsizes" - "fancybox" - "fancyref" - "fancyvrb" - "filehook" - "float" - "fontspec" - "footnotehyper" - "fp" - "grffile" - "hologo" - "index" - "infwarerr" - "jknapltx" - "koma-script" - "l3experimental" - "latexbug" - "lineno" - "listings" - "lwarp" - "mathspec" - "mathtools" - "mdwtools" - "memoir" - "metalogo" - "microtype" - "ms" - "newfloat" - "ntgclass" - "parskip" - "pdfcolfoot" - "pdflscape" - "pdfmanagement-testphase" - "pdfpages" - "polyglossia" - "psfrag" - "ragged2e" - "rcs" - "sansmath" - "section" - "seminar" - "sepnum" - "setspace" - "subfig" - "textcase" - "thumbpdf" - "translator" - "typehtml" - "ucharcat" - "underscore" - "unicode-math" - "xcolor" - "xfrac" - "xkeyval" - "xltxtra" - "xunicode" - ]; - sha512.run = "edaa03608bca82f73cc7ac7114443536570bd6774cee90ba4058996096f3f461a2198cf89d90c3e749bc5305447f32b3facff5c26fa56a5ac5a3eee71cf30222"; -}; -collection-luatex = { - revision = 69404; - shortdesc = "LuaTeX packages"; - stripPrefix = 0; - deps = [ - "addliga" - "addtoluatexpath" - "auto-pst-pdf-lua" - "barracuda" - "bezierplot" - "blopentype" - "checkcites" - "chickenize" - "chinese-jfm" - "cloze" - "collection-basic" - "combofont" - "cstypo" - "ctablestack" - "ekdosis" - "emoji" - "emojicite" - "enigma" - "gitinfo-lua" - "innerscript" - "interpreter" - "kanaparser" - "ligtype" - "linebreaker" - "lparse" - "lt3luabridge" - "lua-placeholders" - "lua-tinyyaml" - "lua-typo" - "lua-uca" - "lua-ul" - "lua-uni-algos" - "lua-visual-debug" - "lua-widow-control" - "luaaddplot" - "luacas" - "luacensor" - "luacode" - "luacolor" - "luacomplex" - "luagcd" - "luahttp" - "luahyphenrules" - "luaimageembed" - "luaindex" - "luainputenc" - "luakeys" - "lualatex-math" - "lualatex-truncate" - "lualibs" - "lualinalg" - "luamathalign" - "luamaths" - "luamodulartables" - "luamplib" - "luaoptions" - "luaotfload" - "luapackageloader" - "luaplot" - "luaprogtable" - "luaquotes" - "luarandom" - "luaset" - "luatex85" - "luatexbase" - "luatexko" - "luatextra" - "luatruthtable" - "luavlna" - "luaxml" - "lutabulartools" - "minim" - "minim-math" - "minim-mp" - "minim-pdf" - "minim-xmp" - "newpax" - "nodetree" - "odsfile" - "optex" - "pdfarticle" - "pdfextra" - "penlight" - "penlightplus" - "piton" - "placeat" - "plantuml" - "pyluatex" - "scikgtex" - "selnolig" - "showhyphenation" - "showkerning" - "spacekern" - "spelling" - "stricttex" - "sympycalc" - "texfindpkg" - "truthtable" - "tsvtemplate" - "typewriter" - "uninormalize" - "yamlvars" - ]; - sha512.run = "d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad4863e497bd3f374140c162b84c6c90379ff86c930267ab5c6d26c3cd0e3968c745"; -}; -collection-mathscience = { - revision = 70357; - shortdesc = "Mathematics, natural sciences, computer science packages"; - stripPrefix = 0; - deps = [ - "12many" - "accents" - "alg" - "algobox" - "algorithm2e" - "algorithmicx" - "algorithms" - "algpseudocodex" - "algxpar" - "aligned-overset" - "amscdx" - "amstex" - "annotate-equations" - "apxproof" - "autobreak" - "axodraw2" - "backnaur" - "begriff" - "binomexp" - "biocon" - "bitpattern" - "bodeplot" - "bohr" - "boldtensors" - "bosisio" - "bpchem" - "bropd" - "bussproofs" - "bussproofs-extra" - "bytefield" - "calculation" - "cartonaugh" - "cascade" - "causets" - "ccfonts" - "ccool" - "chemarrow" - "chemcompounds" - "chemcono" - "chemexec" - "chemformula" - "chemformula-ru" - "chemgreek" - "chemmacros" - "chemnum" - "chemobabel" - "chemplants" - "chemschemex" - "chemsec" - "chemstyle" - "clrscode" - "clrscode3e" - "codeanatomy" - "collection-fontsrecommended" - "collection-latex" - "commath" - "commutative-diagrams" - "complexity" - "computational-complexity" - "concmath" - "concrete" - "conteq" - "correctmathalign" - "cryptocode" - "csassignments" - "cvss" - "decision-table" - "delim" - "delimseasy" - "delimset" - "derivative" - "diffcoeff" - "digiconfigs" - "dijkstra" - "drawmatrix" - "drawstack" - "dyntree" - "easing" - "ebproof" - "econometrics" - "eltex" - "emf" - "endiagram" - "engtlc" - "eolang" - "eqexpl" - "eqnarray" - "eqnnumwarn" - "euclideangeometry" - "extarrows" - "extpfeil" - "faktor" - "fascicules" - "fitch" - "fixdif" - "fixmath" - "fnspe" - "formal-grammar" - "fouridx" - "freealign" - "functan" - "galois" - "gastex" - "gene-logic" - "ghsystem" - "glosmathtools" - "gotoh" - "grundgesetze" - "gu" - "helmholtz-ellis-ji-notation" - "hep" - "hep-graphic" - "hep-reference" - "hepnames" - "hepparticles" - "hepthesis" - "hepunits" - "ibrackets" - "includernw" - "interval" - "ionumbers" - "isomath" - "isphysicalmath" - "jkmath" - "jupynotex" - "karnaugh" - "karnaugh-map" - "karnaughmap" - "kvmap" - "letterswitharrows" - "lie-hasse" - "logicproof" - "longdivision" - "lpform" - "lplfitch" - "lstbayes" - "luanumint" - "mathcommand" - "mathcomp" - "mathfixs" - "mathlig" - "mathpartir" - "mathpunctspace" - "mathsemantics" - "matlab-prettifier" - "matrix-skeleton" - "mattens" - "mecaso" - "medmath" - "membranecomputing" - "memorygraphs" - "messagepassing" - "mgltex" - "mhchem" - "mhequ" - "miller" - "mismath" - "multiobjective" - "naive-ebnf" - "namedtensor" - "natded" - "nath" - "nchairx" - "nicematrix" - "nuc" - "nucleardata" - "numerica" - "numerica-plus" - "numerica-tables" - "objectz" - "odesandpdes" - "oplotsymbl" - "ot-tableau" - "oubraces" - "overarrows" - "pascaltriangle" - "perfectcut" - "pfdicons" - "physconst" - "physics" - "physics2" - "physunits" - "pinoutikz" - "pm-isomath" - "pmdraw" - "polexpr" - "prftree" - "principia" - "proba" - "proof-at-the-end" - "prooftrees" - "pseudo" - "pseudocode" - "pythonhighlight" - "qsharp" - "quickreaction" - "quiver" - "rank-2-roots" - "rbt-mathnotes" - "rec-thy" - "resolsysteme" - "rest-api" - "revquantum" - "ribbonproofs" - "rmathbr" - "sankey" - "sasnrdisplay" - "sciposter" - "sclang-prettifier" - "scratchx" - "sesamanuel" - "sfg" - "shuffle" - "simplebnf" - "simpler-wick" - "simples-matrices" - "simplewick" - "sistyle" - "siunits" - "siunitx" - "skmath" - "spalign" - "spbmark" - "stanli" - "statex" - "statex2" - "statistics" - "statistik" - "statmath" - "steinmetz" - "stmaryrd" - "string-diagrams" - "structmech" - "struktex" - "substances" - "subsupscripts" - "subtext" - "susy" - "syllogism" - "sympytexpackage" - "synproof" - "t-angles" - "tablor" - "tensind" - "tensor" - "tex-ewd" - "textgreek" - "textopo" - "thermodynamics" - "thmbox" - "tiscreen" - "turnstile" - "ulqda" - "unitsdef" - "venn" - "witharrows" - "xymtex" - "yhmath" - "youngtab" - "yquant" - "ytableau" - "zx-calculus" - ]; - sha512.run = "1fbc1238b2017d8c2a75c86a654308e02c004309d1c64b994b9f1dcc7dfb9bc62736c999773277288f0a6b391bd447252274f49d2168b70302b4ac2ca8a3c00c"; -}; -collection-metapost = { - revision = 67071; - shortdesc = "MetaPost and Metafont packages"; - stripPrefix = 0; - deps = [ - "automata" - "bbcard" - "blockdraw_mp" - "bpolynomial" - "cmarrows" - "collection-basic" - "drv" - "dviincl" - "emp" - "epsincl" - "expressg" - "exteps" - "featpost" - "feynmf" - "feynmp-auto" - "fiziko" - "garrigues" - "gmp" - "hatching" - "hershey-mp" - "huffman" - "latexmp" - "mcf2graph" - "metago" - "metaobj" - "metaplot" - "metapost" - "metapost-colorbrewer" - "metauml" - "mfpic" - "mfpic4ode" - "minim-hatching" - "mp3d" - "mparrows" - "mpattern" - "mpchess" - "mpcolornames" - "mpgraphics" - "mptrees" - "piechartmp" - "repere" - "roex" - "roundrect" - "shapes" - "slideshow" - "splines" - "suanpan" - "textpath" - "threeddice" - ]; - sha512.run = "c0bf45f69b1b11ef6e59e6dfa0bd690fcae8b1b06097eb99f06e7ffa954f1ebebf296f3245e6922d716688353e22b691092f8e6349b1f02b3234b49a3bfaf969"; -}; -collection-music = { - revision = 69613; - shortdesc = "Music packages"; - stripPrefix = 0; - deps = [ - "abc" +{ + # no indentation + "00texlive.config" = { + frozen = true; + year = 2023; + revision = 70616; + }; + "12many" = { + revision = 15878; + shortdesc = "Generalising mathematical index sets"; + stripPrefix = 0; + sha512.run = "57a177b65450718631f36bfd8db0f2d1bff788f3bf147137b6412714cc945c7e08832f14f9e7e659adf7e072a91f13a2ea27fe3161cd9b60313bc956f1f543c6"; + sha512.doc = "9ce7fdae151a116ef6b22943bcbd1e94b90862baa5d50f54a00105d1f2d623f75a2e1440c3c49c560e2e6c5baddb8a6772753f400165b63a90a84f540e3fa381"; + sha512.source = "f007dcaccb364964a73da6a09db5e6a25ee401d8108b19021b67023af273f486392cef6a0b01e951e9fa885304d0e157b919cbd6abc472a96dfbbb0f432b8530"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + "2up" = { + revision = 55076; + shortdesc = "Macros to print two-up"; + stripPrefix = 0; + sha512.run = "6408d1d99a97df71640bcdde4133edc2e5861bbcdc8c5e1be98d5704f7ecf9c043c5538ea19ac4952d811e3677ee0698bdd477eadbd1068725bdb210787d9dbc"; + sha512.doc = "3375cfbd95412f2fde2bdb9171b1c081890a52168d0c6d0f0dfb0ad914117c79291a56bc97602627a698509635765fd5e6e95387a006039178e440a8bea24837"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + a0poster = { + revision = 54071; + shortdesc = "Support for designing posters on large paper"; + stripPrefix = 0; + sha512.run = "038623ef39540340a9c9de228ff0787512fb34916ee5a250dbc6d9327b9249d51c633b8ed0dd725c90db462ed7c96290ea7d6fd60e299e787d0e5cf585efb5f5"; + sha512.doc = "51e01cf36d4ec625bdc68e586d276e09973dcfe30cd9ba2aa7dbeed73337bea03a222d66a6903e5203e1530d88433d326d38ff66896c52ac33587a3d147cc2e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.22b"; + }; + a2ping = { + revision = 52964; + shortdesc = "Advanced PS, PDF, EPS converter"; + sha512.run = "4008c18f93a7d378c8da20bad7c1fdf19c3e6befccdcc804326168854fcd35bb89fe414b30a26dbddeaf81a11c0d404bf5b5459bd3d8adce49dc30279e3bd420"; + sha512.doc = "7a7b6474819b2715c131485472963b463163378d4ae4ac586f17a130b3327c6dda1f4132f4f2379388a8a493fb2374abfff6b7ad87513cbe9d04993572692aeb"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.84p"; + }; + a2ping.binfiles = [ "a2ping" ]; + a4wide = { + revision = 20943; + shortdesc = "\"Wide\" a4 layout"; + stripPrefix = 0; + sha512.run = "e0f1f95bf660760683d6c5a917d75e537a0347837eb4388eded8194c6ca5371b2ad9be9829fcaaff1e24b7d8baefd287db6add752c19a57a6cf0737017e311e3"; + sha512.doc = "bf059462ec7e28ba782d5842d090c93f4e911bdf44eb3d4f184a7324b454105295460a52414ffcb9fc71dceeba902b1d78ba208d0998f71727ad41299eb1138f"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + a5comb = { + revision = 17020; + shortdesc = "Support for a5 paper sizes"; + stripPrefix = 0; + sha512.run = "443548964eb48ec458942e97f0d6ceb698050a5d4dc83ad17a71db0f1d5085a2c8e73c3e8d9bdbb7ab7e6328d12e42a6ec05c4c7dd4247717f295fcd5da66423"; + sha512.doc = "ee845d8b6a21271d2f0e4e6fd24c79a1235d24ba15cc2d037eb41761b05ad3e69dcb5379c223c07b81c62df5f89190c84ff977390e149566710ce7175e4c2823"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "4"; + }; + aaai-named = { + revision = 52470; + shortdesc = "BibTeX style for AAAI"; + stripPrefix = 0; + sha512.run = "bb851e6bb3d9c2efd8d9abd32056d0853e320ee7f495b3c595d6a112d5e66bdbcb24107f741249fdfde350dead6763484cc412d380188d29155649b4076c4e77"; + hasRunfiles = true; + license = [ "free" ]; + }; + aalok = { + revision = 61719; + shortdesc = "LaTeX class file for the Marathi journal 'Aalok'"; + stripPrefix = 0; + sha512.run = "03d1585e9b92e26044066d1f5b8d2dec0ad298627cc94fc1ab11e45307f62c573934f1a2cae6c5318a9cb377834d4f5a490144cc07bdebd9dc22cf298315630b"; + sha512.doc = "702145c708edf984d24153822036acc0b563038c50423af0cd3cc6b008b7eb3bc8d67eddaac350ac6557650177218260e5adfaf0ca5807130b0e23ec7127470d"; + sha512.source = "b452ccf38dfb3436aa8a6907798101621fb2f5a66077cc24b316760013b0e665ef26d69b444c27cc8521dd6c06828be8a832e061df74bdcc70577f262ae987c3"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "free" + "fdl13Only" + ]; + version = "0.6"; + }; + aastex = { + revision = 58057; + shortdesc = "Macros for Manuscript Preparation for AAS Journals"; + stripPrefix = 0; + sha512.run = "9ae52d4142c12621839945213d1f20531350b27f0b1d124d5d5c1bae81d50fbe83ab116d0c65c25852952415eb860eaaf008c119cc10cdb149b964f0b06ad6d0"; + sha512.doc = "bce30656a98d3598312ff399b5e5eb229b89e7e62521748418be718c38c6749a8e9737f6c933f6f32ec948e3ebe1ef339ba9037908741c3b902d33a8fda9b027"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.3.1"; + }; + abbr = { + revision = 15878; + shortdesc = "Simple macros supporting abreviations for Plain and LaTeX"; + stripPrefix = 0; + sha512.run = "4b5d504cc9438ceb97a6935e66a6eaeb494eb76eb313bed275b1f1a829690569972feec048132e12b5849f398d0a4b291bc5f9ce8462031846ec46bc88ebab3c"; + sha512.doc = "7080dea132581fdb0803b4ecfdcf4fd5ed5a689bd7e0c7b7b699ef5b3faeab908042f1704cb553ce38e7f37d9facf7d22a74ac71e2cbd269298f35666367f41a"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + abc = { + revision = 41157; + shortdesc = "Support ABC music notation in LaTeX"; + stripPrefix = 0; + sha512.run = "8b1ccd152ed2ad90810551a36f0fa7f114625784fa967f70b67559f9f1e8eb32d7edd08efc9e55dd92723df4039d1bdcc212200d712e99f27de84a153c2a3777"; + sha512.doc = "5f127f8e1ec104b40ac4d5e9bb22965e9376033892362073cdea9f65f1f10a4152f237b4f27bf52dbbe1389f59d3da673434c39a2b3f43d6f17aa60caabd5584"; + sha512.source = "e47ba563a1018edfad97fb0556e4f74c7f3054a56c38304d9a188a92b51554628430332b4e66ebf1d12eb4ec6719cc13d7ea62c23157e70a3c0d40e172b9a04c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.0b"; + }; + abnt = { + revision = 55471; + shortdesc = "Typesetting academic works according to ABNT rules"; + stripPrefix = 0; + sha512.run = "66931af2a5ab583914ea5abe6bb9668d04442c23ab654691e3864ecfaeecf65e3eda47b3d279abb9fdacb385ef9922d6caab808273f87f3bf323a33b441b7bd1"; + sha512.doc = "0a46414ec99e14a60a167ec7ca09d074c802f4232cbd4204e52e9d489edb3b1657c7f33f0a3fd0bbaa09f624cb52903b8a18db43f54c7a1b0aef8c804b53b1b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + abntex2 = { + revision = 49248; + shortdesc = "Typeset technical and scientific Brazilian documents based on ABNT rules"; + stripPrefix = 0; + sha512.run = "951c039cf0c97a6bd3974bd01ed9323876f1ee74b8250037dce3e92e00d598ab1cb2cfd0bbf4ea6d37b5f8c3e1095e531aa245ad1a91ee49262e6f99c5c84e59"; + sha512.doc = "b6a5871cc33d94c1294a62aeb809f9d29ccf021cff510497c02edbaef2f155a55847dc521a0f698367692e556b2c588a95066bd3097482b0477a67d4a78b7489"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.7"; + }; + abntexto = { + revision = 68837; + shortdesc = "LaTeX class for formatting academic papers in ABNT standards"; + stripPrefix = 0; + sha512.run = "9fb1177d1e97995fa8c7038e38fb827e491c2658af6844f62edb547f281120a9df873a98e509d3e67c577d46472c887ca96ce2e2436f748cba9086c6160f2986"; + sha512.doc = "3d3d58d077f3072e9bfd9bc11e68e17e4885af88864ef80de1010c331c429895c5e03df438d3a0652a8d31623dde5b1cb40daf0a709af6c3a2e90658d13c596c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "3.1.0-beta"; + }; + aboensis = { + revision = 62977; + shortdesc = "A late medieval OpenType cursive font"; + stripPrefix = 0; + sha512.run = "74f569d7f8b942087285964f350e97b15de05a69a09b1aa21d3bee09a017381d4b18b449a55aafcd0009a5941f0bea198b04947a81b331541af6617d5a58ad73"; + sha512.doc = "84317ef83e712296819b25926adb7522531482b9d17d807cdfd3897f712aae8a8f161a242bffdbe7511478a3e5ec2c1e76fcf51c14661b3465aabbc6b95bbaf2"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + "cc-by-40" + "publicDomain" + ]; + }; + abraces = { + revision = 64967; + shortdesc = "Asymmetric over-/underbraces in maths"; + stripPrefix = 0; + sha512.run = "ca6061935e6be1089592f77612de222313e41b8f78f0f14bfc06a8823da052543cf6ef0cb95c585698a8a07b5d3c2954909d85ee2ed300c8602574d34ede2892"; + sha512.doc = "84c9a8585ec4cd16dd8e07140f10e545f99622dd90ff3ed28a7eeaa070ce18cfc9ed64e2bbc9efd0dbd4ebe1c27b68aee66eb091ffd6c8debad1cb502edb6f4e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + abspos = { + revision = 64465; + shortdesc = "Absolute placement with coffins"; + stripPrefix = 0; + sha512.run = "87400db8c388db7d7105007ea853d2254451b98daba9a8c61822fb56d143e2dfb75918d40bfe519dfe18b401f944db1569ee41ac768ccac8449e78ae59fb11c0"; + sha512.doc = "90cb62134a36e1cb1589fbc8a6b993c777562eb1eb309dc0cb4f6835ec7174df262957cc9b34631aab4cff5b6aa6818770e26034f5eab29d35ad5d7c4a155cd5"; + sha512.source = "7cf57d88b340d57277e16594e66c076aadba3d505d6f7c66cd1e9407db5d21432d121c3b798d0f86704f12732080a9043c6c843afd16886533065ab70e61b8db"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1"; + }; + abstract = { + revision = 15878; + shortdesc = "Control the typesetting of the abstract environment"; + stripPrefix = 0; + sha512.run = "2d805c2cc322cd802d612213ce525765d49d06bfb371a4ac5d1434a3c752af0ba0182093b0b6e4ee28a80ab926ad0f3a0403c03f871d3e003f6eb5a60ae39c34"; + sha512.doc = "4feae7e22d9f8c6866a9b873359a3060ff75ebcd833e1ea5f82e833933b5beb36260833675775cdeb83f1cfde4dbae3421434890aa9f0f7539c999acd2e0405b"; + sha512.source = "e68a030e56dc15481335dfb1ba566f9b68e92933f27d296d72e20b4d3541790b739b945fc1b39415baadf045164158618da98b63be567c1aa263336579986e8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + abstyles = { + revision = 15878; + shortdesc = "Adaptable BibTeX styles"; + stripPrefix = 0; + sha512.run = "de7e7a5c7e56ae4fb478c9a072c6b2dc8716ea34ee17be577cf4a485c5506f16cc5b79293cfbc80b245ab350c2e2059dd5fb37a2e28818f492edf7c0416d52e3"; + sha512.doc = "d12304eeb2cf797153d7e17beb25c462b3fdf75f5b7b1b24e1ff89d52ce8fe5b2a0fbf88d083ba51301afc45f51871e376253aede36bef21becc1a4350da8259"; + hasRunfiles = true; + license = [ "free" ]; + }; + academicons = { + revision = 62622; + shortdesc = "Font containing high quality icons of online academic profiles"; + stripPrefix = 0; + sha512.run = "10fed2cdb2533a7291626eee2f3d46e79fe972eadd83cf7177f22228dcd13422549819dc5e1cf0b03e8397e23badc02a965857aca886ba004a3279efeb49b288"; + sha512.doc = "beeb30c90b668edbd135a0067165232efd0919c4e42f9e968a8e0e3250a88ba9d1a4489fc8e8f10c69c27794b1e00c63151877e119ceb33da50b12c42c4fc80d"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + version = "1.9.1-2"; + }; + accanthis = { + revision = 64844; + shortdesc = "Accanthis fonts, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map accanthis.map" ]; + sha512.run = "5727125c85e06501f009267bab8c1eff674a76db618c6155fd9c6b41bb2407a3a201a008c7f5aa6d73ecf100a3fc917961d20f547c2f6040fe72760a4dcd9a44"; + sha512.doc = "6789c3c330d1e6a0d20364e4e98ef72fd1c6294655f704366b0e6c1fd081d1aea312dc9e6767fb3e076b3cd91ea5a67606e8bf62f7f92af097ba766c99ab0cff"; + hasRunfiles = true; + license = [ + "gpl2Plus" + "lppl13c" + ]; + }; + accents = { + revision = 51497; + shortdesc = "Multiple mathematical accents"; + stripPrefix = 0; + sha512.run = "738e8299148365c0441495664cd97b408b181d192adb718adeacc93d4c63b7e81c12541746777571f3fd0da37348905269b5d7ecfc2d58f88174cd53edbe56b3"; + sha512.doc = "50e5cd01da80113ef3247c4a7c7da703d4a9c3df68822b31ff734da2d755f5fd2bf9f5f8982d84e3628e96905276dfe6cc6699bb625ff1dadbe810b11bf5a35b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.4"; + }; + accessibility = { + revision = 55777; + shortdesc = "Create tagged and structured PDF files"; + stripPrefix = 0; + sha512.run = "6cbc455f40a6aeb5862bbed64e6ec111d497f1948fa6eb83d26fc04c85c1145437005aa046e20eae70f177ff04c7084f03c2d4b3234be6c6ece822d6f366520f"; + sha512.doc = "261d13857558973edb692ed320745173a5006d0cd23418e926be5398b4f3a2da0a670e3a08a26083381e830f4bd327eaa4451822ef096612a7a3c3492833c328"; + sha512.source = "a7218b14ca307c9e02f6c562db3bb381a8a57ff758fecfc36f758bb70a151ca83e3401c7e2254ad2f75fe62d762cedec0746b07f5f5f6b82982675f42faa4e31"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.3"; + }; + accfonts = { + revision = 18835; + shortdesc = "Utilities to derive new fonts from existing ones"; + sha512.run = "f70105569c5b8ed83c103e423d29367702a5330d57f743a640ef68fc6a290b246e8f514907d63d6c7f203c12ab3eeb0cc64a45fe5c0379f10ccf1c8002007a47"; + sha512.doc = "24b19688008b875890a397e2250277f81be1b77c00f95a9a2d40a257c0dc6f4c8adfc07e594f3873e60e1bfbcfeba786e45e9e63eb632ca92b7c935f74b3049e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.25"; + }; + accfonts.binfiles = [ + "mkt1font" + "vpl2ovp" + "vpl2vpl" + ]; + accsupp = { + revision = 53052; + shortdesc = "Better accessibility support for PDF files"; + stripPrefix = 0; + sha512.run = "0b6e474617333ca00c2503e99f60a290b930d7e7534de7223be511404aa6c7ba9a8dd69b94f3433b347146bba7b8dbbd4b6d45ed8b2c6b0880c0177842ba8b45"; + sha512.doc = "650909f5212a92659d18ba3ef5209ed12c9b9ddff2b3157ea17cdbc8955536f41e43dafcd715e5ec26c1d0c839ffb7b26081ea36150b2f0f50c952c5231a1a20"; + sha512.source = "e867fabe08188b8fe68c1d9ac6688fb99f69422db26b4cd611028cb8880ce90a8981efb7eb7c49f4fd3d1182d3b99cd90f171959751d7e1ecc1f7880d5a8b5a8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + achemso = { + revision = 69638; + shortdesc = "Support for American Chemical Society journal submissions"; + stripPrefix = 0; + sha512.run = "1a073188cef886e2eb5c6090a2f887d5c58c04d535981d1926a1b389130092bccb614c22b8b5b675d6d2d49208e4d05ae560966db39443cd822c59bc41e6af8e"; + sha512.doc = "b26169bc393110b3805c4dfdd0fbb1838a469b6dd9664914a55eb7f1c031a4cfbca7e96cdbdaaf67329a48e3225e104f5d6a46b0b52384b77835a049151f6cf1"; + sha512.source = "94cab70cfba8492f44a09a3b94e411cbd5b32f3dd5b9a17ca8ae1ff5bb6c5ac6c8a882f4fc94278bb267556ccb43bc981f24e4b6b47b5c9df90c81cb44005029"; + hasRunfiles = true; + license = [ + "lppl13c" + "free" + ]; + version = "3.13g"; + }; + acmart = { + revision = 69721; + shortdesc = "Class for typesetting publications of ACM"; + stripPrefix = 0; + sha512.run = "e40a361687d217e3dd3bbf1998c4c478e14cc758d3ae3d96ca19433b5cca576dfb93a53324253a2a282935d4b2802a103d36bd8b6f507f151187493c4be0e56d"; + sha512.doc = "1b6dd7a2c478a4476286ca897b13b4ac005af6eb6201e53a173dbbd11fbd23a95d7f3b33ec28a373ead62ecf8a45c351fd8521376b803e321ec02e7da1ac7f58"; + sha512.source = "f24476dc2ef09aaba2ec078e0895f9e6f1411c9c19d9703ab318eccb16ee04ca7e97a60c1fdfad13e89d61899d2fbd4d06108651512ea75d060448c4e7064e61"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.03"; + }; + acmconf = { + revision = 15878; + shortdesc = "Class for ACM conference proceedings"; + stripPrefix = 0; + sha512.run = "9363127ba5d59bee9d41e800a0e11d12bc4493e5a79a94be8efe23a44278ea097a58fb53cd334fef0f2ab32c9350196c46ee1aec8347a4aa5554b317c15249ba"; + sha512.doc = "a8a971df6a94a9548b71c1463b9ab143525127774daf5aab227a805c302ee0732d3578c361c5346b123983a32e6d6c8afbd543bca4dc7ac7ad4d5919aba63099"; + sha512.source = "bd9ffcd848571f2a4ffaa7f324835c74abd59ad1d2816b6dbad5fcac7fb06b98c38059dab7261b4bf7d811d56d0ad48d23ac81525cf95a2e6a190a25a6de9d82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + acro = { + revision = 62925; + shortdesc = "Typeset acronyms"; + stripPrefix = 0; + deps = [ + "etoolbox" + "l3kernel" + "l3packages" + ]; + sha512.run = "25c0dc9cda98db7ead55613aea92946cd90e7edfa1213d59966eb8fdd93ae1bc7b532f7849c43fb8fa77291b23dc5d8dc80cba4584c991a7b38e55564bd59ea3"; + sha512.doc = "c827f8dc5fa88b67e84e48d0cfb6d47aa5bfa98fbceed86e6262d98111a956d425d0a2f3cf54b18cba7593dfac17accc2cbe71cc04f1ea2157c511d670c41daa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.8"; + }; + acronym = { + revision = 54758; + shortdesc = "Expand acronyms at least once"; + stripPrefix = 0; + sha512.run = "be68e32baacdb8708d1a31c4a585fcd282d0def7a76a1e284b908532118aec04505271790a99ab0a36e7c035695b84f8ae1e2146c31ca8c4fcfb76be4f11db26"; + sha512.doc = "72b77e66b4db0c3b42252020fa56be3e4b1a848ad7314037d6ada3eb449fad0b35371835ccc6018bc71ef991ade0720f7febeb52fecd71b3ccc9a5b839bf66b2"; + sha512.source = "8fd7e9f374e08f69fc33df24be50a9842fb62a18232d2631d85ecf7e6ce702bad1d21989dc01b3513a69e7a39eb343763690cba027df984dfc7777f047ed45d7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.47"; + }; + acroterm = { + revision = 61719; + shortdesc = "Manage and index acronyms and terms"; + stripPrefix = 0; + sha512.run = "f8ce516ba2de1367bf414061e14c260be31304ce93693a95e6b9ed29d5cf170bb041248eafb76546cfb1547e687d07ec51333177405ffa8a5c9ea76070394832"; + sha512.doc = "66610cbd2e77d8f9b0eda3c61382dc1a8436169017d363a5716e0ad1991849824a1958552af4a14545dcac37191302c0907b505884f7cf1c7d83f8087d888b6a"; + sha512.source = "531b5768a7312bd40797b6cc67abc58050481ef97455219698018a635a298f542506669956211dab32d51dce2c86f3d3d6a2e913c4a0f81f072035a63470e5c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + active-conf = { + revision = 15878; + shortdesc = "Class for typesetting ACTIVE conference papers"; + stripPrefix = 0; + sha512.run = "afd71b77d016c6f2b36ff045176929409f1fc104d9f3530c1a70fad4fd1c71ac327a3b58dbf4a14b93cc691d88bf6b7d3add07196921876360280ee4e5915134"; + sha512.doc = "e1b990ceab6820376c18068bf5ac15e984150fe7ad66929496cb77665f0ae334cb28026e0000e788f0580eab549fe2f70e802ca67d0f968961f4582290646758"; + sha512.source = "06d82683cb44e35a07e2907e00f2f80b247a3ca2cc0e9b230e7417aafc21a73c9ef788c4e88cdf7fe7f812c471c3b34273adcb4d5e272888fc481d9d18a88b68"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + actuarialangle = { + revision = 67201; + shortdesc = "Angle symbol denoting a duration in actuarial and financial notation"; + stripPrefix = 0; + sha512.run = "23878ac98706c08b1fed8f4fdbe7d403f4f0b668ce069837ddd1d433bd3bd3e50e9b041ebec4c8256df56f1649962b7ba2421795f9adc3207a825562633a2b4c"; + sha512.doc = "f28274449a2c9558a22e1b3a3d648ed2a456d6ee179168d06ab4a6cf339f2e0ae7e43c8b0d2ecd8697ffb8cf5308f0497a13012f4b481ec68e02248036a8cf96"; + sha512.source = "9364093cb942abdca6062b66d35f1a0e9088c7bf653baca6bd2ecadb8aa2e743c311caed3ea52f42121511b9b66232d5ef0ed554a29a3253c8e52eadd83d0dd0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + actuarialsymbol = { + revision = 67201; + shortdesc = "Actuarial symbols of life contingencies and financial mathematics"; + stripPrefix = 0; + sha512.run = "a36df9659b33223efb54d050f12676e3aa0555c83911a901c5cfe137e8e7b27d68b47534cdd2064724f20a37715b46fbf6863a5935c9fb93f56e4e7ca26bf004"; + sha512.doc = "ab15ff459aa82dc46a011a7601128dc7e6da720676390167ca856c0942f6a70e0d698a1624b443d3779446f3ac01d4af6bcf5bb5e1e0a17e0e5fefd3deef657c"; + sha512.source = "3b587f3621cbf4d4446664c253a9cd27a6b69da3ed8d1bc09f6054bcdd450e40f8b38be336ce48e0ec251f1d8dbe45b17b6055251aa76bdf4c36b97ed8e4f077"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + addfont = { + revision = 58559; + shortdesc = "Easier use of fonts without LaTeX support"; + stripPrefix = 0; + sha512.run = "36e16da02daf6b93b53f1458ca5eee2243310846b8ea05e6b8b00a3120e7686fbe42d6e34d602d84171fcf7cc5428135aca36eb5402e778facb1882e7e7831a3"; + sha512.doc = "583f7cd7b46173ff57cfa4505d14cd3d88ddef7ebc2adb8fd2705fb8011711bd65d22ef38cfa6b5224191af1841f22ee27332f832029cff762b7b7e49246b179"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.1"; + }; + addliga = { + revision = 50912; + shortdesc = "Access basic ligatures in legacy TrueType fonts"; + stripPrefix = 0; + sha512.run = "b54db5b075c2ba2f632e40a1ae2d840b0a61cc940512027effa2b2b3cadfd6dfa2407e2580a462b98f48cafed94281d39613397ed34ad76f54d6a7e8b614ecb8"; + sha512.doc = "572d9aa1396ac80be2cd9ab0bd317759805a6541b656e19ae36915a6277f9a4ff2987c84dbf903133e0a5027f382b0ed48fc882ce7a79df7a27cfe3082d2a666"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + addlines = { + revision = 49326; + shortdesc = "A user-friendly wrapper around \enlargethispage"; + stripPrefix = 0; + sha512.run = "5d0a438fceef1481633f37824b686422e5000cf232b7dd24bba0f30c8d62b583daf01a67242283f2e4fe971438c061acad2860f50ce1438ca32677d497db8b2a"; + sha512.doc = "2993c6caae1d2f230d144c9f93f7694adcb2e17d9bcd60eb3aa3144806a522258fd4c44a314d40cc767b3b069c4c929b8e458e74bebc746771b975b77bba34d2"; + sha512.source = "6de10a1ddcb65be76594e7389d47316e066aec3a747ef7a61e15fa0e670d914dae3d2ef777c9574e8b85c5d9628784df7f4dc61f589917dbae571f31416bad08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + addtoluatexpath = { + revision = 67821; + shortdesc = "Add paths to Lua packages and input TeX files"; + stripPrefix = 0; + sha512.run = "91d4f85e45181674b6ab2bda5ff3632aaab4abc0066c5026478d41c0205e021f12c3cb833c8c339c02e4e033aed351a5891f8527b95cc33f26ba534aeeaa785b"; + sha512.doc = "ccc8ca7fc9423192a68260b6f441fa7be8a1144bdff8e0eee478f01e2c09d0e54f2a25d7a7fb935f76803003842f16e41916861d9a69e3ea2bca5724b1be5411"; + hasRunfiles = true; + license = [ "mit" ]; + }; + adfathesis = { + revision = 26048; + shortdesc = "Australian Defence Force Academy thesis format"; + stripPrefix = 0; + sha512.run = "4eb7fda01fa1961d213eadd2f0bc9b1cf102de664dae1f37588e161af22d043319e12ca704c3223e78e963411c3f0533c845b17f7d0744b020ef2dca35b2c7b0"; + sha512.doc = "86d89f4f139c9ddfe6babb84558f7d89f57b75e28d37f659d9893ef703cef7199272e60f1233d51351b5bd8a4565393dd6f09ba69796d2ab555423c2ba23c2b8"; + sha512.source = "3d9a376183e2cb22dfd210eb6d453324d035289173c6750d67ee90379d794a50393c49f8fc40e5c51484127632f2489468b215dc510b0db0313372816fc77927"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.42"; + }; + adforn = { + revision = 54512; + shortdesc = "OrnementsADF font with TeX/LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map OrnementsADF.map" ]; + sha512.run = "7a4a4da6c72ff2f8ab4b2a9a5e92887306a8e2aee4bcc5a93c18bf41d1bf9c05bd23fd6401bda054994aafa8d6002dbc16d8483b951acb705cd46fda08aaf060"; + sha512.doc = "2a287f8685154359c914b13e8e153aa64bb19708a9f5b122180cead53ee31ab829dc934dcab43f09ded4fe5d2a81ee32528855f1a4a1bd07b795eaabcb204f48"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + version = "1.1b"; + }; + adfsymbols = { + revision = 54512; + shortdesc = "SymbolsADF with TeX/LaTeX support"; + stripPrefix = 0; + fontMaps = [ + "Map ArrowsADF.map" + "Map BulletsADF.map" + ]; + sha512.run = "7100648956a68719d1a449a3aee0a4acb3788aea7f082a6e7e38c8d8dfa2c712a4b896a9b036e8ae8b2732b11414ab71a49e2f513e7d689f4b0ad9e44c052019"; + sha512.doc = "fbdd78030826918a3599a1f843db692390ebdcf4ca9a853d8c2e78706cfafe83ae79d23d09fb097339d8c726608a27436b3bf22725935c55060f1e8579ea1eaf"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + version = "1.2b"; + }; + adhocfilelist = { + revision = 29349; + shortdesc = "'\listfiles' entries from the command line"; + sha512.run = "57436dae1489c0f614c4b002f83d34a711398a762ac532b44b1d91a51d068462aaedb5b034923629f7630f039988452eb833d1e98af389c788091517bbee8954"; + sha512.doc = "14bde143bf3ffa3f2b972f93544089e4c0314c7696e1d711719549b7e831278c66fee0676665fe6eaaac744689d613dce159e4eee2e3f9c24dbbe602794fc62e"; + sha512.source = "15e7f652408c5975ba47131109e0d18bcb1d270e0ea630a9a3ff385e499cf3607a366e708a5ec9559d7ccc2a5e0b2d3d0f5f615142978a918b0bd1bd0218a30d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + adhocfilelist.binfiles = [ "adhocfilelist" ]; + adigraph = { + revision = 70427; + shortdesc = "Augmenting directed graphs"; + stripPrefix = 0; + sha512.run = "38a89fee26ed097a2395e43a86ddeb8d9b652e758f72413ae0f3a35b3130a1a742a94c65324708112f3d27b7317e01c8da2cf0ff86fe56d7221b92a60e7ff809"; + sha512.doc = "c154996a4370d31e2f596a0a463189ae64c7f1b829b5269b8bb6c229ebbea888e6153d43f12577df7ad9feca4af2d3dddb23af7e03a63e44dcb88693873f546b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.7.2"; + }; + adjmulticol = { + revision = 63320; + shortdesc = "Adjusting margins for multicolumn and single column output"; + stripPrefix = 0; + sha512.run = "aa3a350cc284bb52e5dd519155d9e74dcf96171e12acfd092ab3be502f09100a37cfb98c4ea99c6db7f7efc4b1edadfea86b29460dcdae212fd38cbb0b0062e0"; + sha512.doc = "393cd068816ef77104ccf294921d6e9213497ce52e8507044783b05859c54ceea208fad8a7af2efcc6b42ac74abac142f883eacd455b0e3f6227c3222d2a5db0"; + sha512.source = "400b8e4a5a65c49094a127c43d002b93ce38f04eaad154e5edaa1418d9186abc8b14c74570da79953fc44863de2f98748c23d66abfb9b4d03b5024aef9e2082c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + adjustbox = { + revision = 64967; + shortdesc = "Graphics package-alike macros for \"general\" boxes"; + stripPrefix = 0; + deps = [ + "collectbox" + "graphics" + "xkeyval" + ]; + sha512.run = "ac12b052b2112d5bcd942888ab69fa20aca6e2b392bf868959b8573ee8611d93042de3f90eace1519a89d0da64d2dcb3046e26fb0f86f46ea3e673e2a2aee2c8"; + sha512.doc = "d48b405a472df491b3ac6db23b126a70acda26e4dc2baf8e60569f110af2c4c740708c84fad9b70f689022e8747013198c98ea0bb3c6798f1dd8065a431d1ba5"; + sha512.source = "08da88fe2a344716e7184ac2cadf564a90def84c03af8270a2f5e906ae720a7794dcb2707af5e41ab41406b01021029f4272c3e2844e9e36cd913ab56f049ba3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + adobemapping = { + revision = 66552; + shortdesc = "Adobe cmap and pdfmapping files"; + stripPrefix = 0; + sha512.run = "363f7fd337e5a34737608a2bc37521bb526ce726f5c9b5b4d08416e534448306002bc7af1be3f5e6fefcaba16ffc2260c4dea8a486d44dbccad577fb04d6da5b"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + adrconv = { + revision = 46817; + shortdesc = "BibTeX styles to implement an address database"; + stripPrefix = 0; + sha512.run = "ec4300075ae2fbb0b29fa8126263d8852a405a84df8cdb6f484c989ebe948257ba3d1f3ddf9204ea7d6d50129c294a0130afabb053bc63022928ca748bb4ce14"; + sha512.doc = "93ec47833fee152b098477f838858a259f5842264d3a7e9a959d60fd35f46d680eba61c9f4b5efa08ab2878da4aec78d19cf83880e33aeabde9854aa88491c78"; + sha512.source = "25233e23bd1c6aec13609b5d17587747a5840e21637e3d11a478941f98f5f74a77eed31f806b51d07b79f8cc4ebb8c6b8fa419f72927045e3695ca4ada8af388"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + adtrees = { + revision = 51618; + shortdesc = "Macros for drawing adpositional trees"; + stripPrefix = 0; + sha512.run = "1e06f07576666fb7b54c78d930f66fef78571469bffc3ef448687c8bbb0d23d41761e17c8ec1293bb6527e31fc70413df1b7de5c9a06514e6aa8242ed90deb09"; + sha512.doc = "ad8f2e42a4a31368000909c5841fddc189bc2331b47f2c64b16ec509bd662a1b82df3ea8b712f0bdf1c40f123ac28221179b4352e20631d9fb776c0b2939bc4c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + advdate = { + revision = 20538; + shortdesc = "Print a date relative to \"today\""; + stripPrefix = 0; + sha512.run = "80075aa6efb4125bdce79e9b2ec6951caf1a753c8915201767de230acdd1adc2eef31400574effadf6287be159236422840751bf5ea24cd3cab8a01e82a0185c"; + sha512.doc = "acfcbd6a40630da2cf9024cbf3ed378c1f7f8a16c8f8395b69c12f9693e903ba54b9b051c364c5cb4de957876bbd41f0b480c4f4b320e22f2c6df7b08502873a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + advice = { + revision = 69283; + shortdesc = "Extend commands and environments"; + stripPrefix = 0; + sha512.run = "fab7716603412d29daf4710ec6c04742f1d2f898d818f1f012932c99ab51bb8c9746bd3ab5b18752218fd37dd09d4550f3d2b8ef59e9aa852a68a132366b1900"; + sha512.doc = "145aad6269324b04cbe79c159734ae30f3b13cd361250260ba374fba07c39af8a00974d0e47195dc4a1390a881936c443c671b1e09e8f905267baec3a60bc2f3"; + sha512.source = "49e25acd701cd657f41c5dc611b9fcf7342918f29f276eccbc584a88aaa0e0b777c5838e84f067924943bab3b22002fc94f4a5d8b977d2c64a09567ccbca0fbf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + ae = { + revision = 15878; + shortdesc = "Virtual fonts for T1 encoded CMR-fonts"; + stripPrefix = 0; + sha512.run = "6b1c57d5bd3f0959e611659f979ed42b81e397a182d09b3482e98865196077334a9796777aa112ff367b97c232859d4f9637730dcd2654e6232c577d2f59c39a"; + sha512.doc = "927521fb6b6a5787d0e94ad724cf19825b2cf2ce23333e60e13625a36390eaa4cbaa1bbe50dbc718efae97036d5d815860919f536601bb97224b489d20082953"; + sha512.source = "d82fc85014bb32147c9562482ac1d0ab1d1fbff8140441dafff032e24c3ee9e406c9872a93a66ef96a2f67a75f47c01e53565372a14d1bdece588f312c8f00fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + aeguill = { + revision = 15878; + shortdesc = "Add several kinds of guillemets to the ae fonts"; + stripPrefix = 0; + sha512.run = "b75f41c1d179b63d1807ebfa81e9e656bb43433a3291b9e29d5f0f76667868d26840dc6ce7f61f0f959cef724f0b5738b96af2a371f949daefc4179de1f861e8"; + sha512.doc = "8361fc02999b080f19beb793fb0d1d802203114c1e1581c312a21e3a682191470b93e373fc269f8aea0e2643a69c8caf80855597ff6a71aadb6bfc869f4370da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + aesupp = { + revision = 58253; + shortdesc = "Special support for the ae character"; + stripPrefix = 0; + fontMaps = [ "Map aesupp.map" ]; + sha512.run = "7a42831624c30db319a81420e1142bf827f21daeb4719e1a179a63632586b1fb43709c17faef073eb67f27f1303b4f7db92a40425506f4d8e0bc6b456e4f6114"; + sha512.doc = "ece447f4c12da8509be155f2743ca52988f32ce62edb361a85fdcd7733bb401cf8ecbbc0fa6bbd7d1662593f1084aa89a29b2f1b822a765bc6f7e581b46bc153"; + sha512.source = "cb628c51f7f4d972f81b2e23495e7ac6e82e422c7e85ffcdd7c3cbb753b055178adb9ea386bb4b1f1f1c4d2cdc561eba27cd82c7ef33830db0cde9af99e7730f"; + hasRunfiles = true; + license = [ + "gfl" + "gpl3Plus" + ]; + version = "1"; + }; + affilauthor = { + revision = 68996; + shortdesc = "Tag author and affiliation information in a key-value style"; + stripPrefix = 0; + sha512.run = "4aaae3ef6ba9dcfcafff4214c3c425a40518687fd01600266feb3ac1f836f6d1795fd1c2903f57cc3010b7bf5fb153876a4bbb83ac81576e6423589baeeeeaf8"; + sha512.doc = "24c28a1c6879c2a292a96fb10dace8d1dcfa2a1a71e07570a232ac70b70e4e9f10f7af823fb2b8d619dbf587e1f5cd9bc38e1a4e2fc6e22714e5deb27a0edbe1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + afm2pl = { + revision = 66186; + shortdesc = "convert AFM to TeX property list (.pl) metrics"; + sha512.run = "9ec87ccaff69c7467f803e4ce3f3408f8195cb93f571a7c7aa5f195d3de80b480b182831d239d8b2144dc72a5c26f9da58973075b6a939d23a51de0acdb1d199"; + sha512.doc = "e18ef6478d02676a3edc048ec1f8bc37e7cca97e62164632dbf02595a051e6d09d19ba8422c4a617523dccfe1a6ed55fc9be34d1c0ffc147bbfa4e5d8f2daf40"; + hasManpages = true; + hasRunfiles = true; + }; + afm2pl.binfiles = [ "afm2pl" ]; + afparticle = { + revision = 35900; + shortdesc = "Typesetting articles for Archives of Forensic Psychology"; + stripPrefix = 0; + sha512.run = "958ed5cbce1dc7bfb5d01befe74de6236a09b3ae5246aa3f2e80225bc353abf21b622f4128641c54a27197560557738d4c224e160c0be87010517c3a30a729ae"; + sha512.doc = "d8185772e114a891ff5ce0f2a2e12b827420f8c486813d87bbb6fafc662ca1db710178e8cfa260d7d650c3432909b9f7a8521648f6aebd5f90daf1aec4e28d7d"; + sha512.source = "f12b5a10b929d78c728331704ee83e726bc28562b8179adc2d9e7324b6b742100319078f5ebe8371a34927ae1fecac4779b9442076a95cae1d66e015f235d440"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + afthesis = { + revision = 15878; + shortdesc = "Air Force Institute of Technology thesis class"; + stripPrefix = 0; + sha512.run = "0ed83c0a98bdade60c49b3408053e020c6deba1b96d74b47aa2404c778a96ce2898af1d76892704524c0c069128e59c0bee5af73de6ff9237624600b991ed6b5"; + sha512.doc = "c221f77700f974f0cedeb4f8ecca5280c04203e9cd89042d414eb54037db71cceed450477fe9498a15d9f09b8a0cffa177cc897958594fa7e3952adbd85225a8"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.7"; + }; + aguplus = { + revision = 17156; + shortdesc = "Styles for American Geophysical Union"; + stripPrefix = 0; + sha512.run = "73bd9b7f01a4911fb25aa7d388c5827c62a01a786ece4317f5b702de4c281bd05f82568780f4396bf289fcbb348abd2a3eca6620fd8e3f801d23aff7a05e104e"; + sha512.doc = "48b9c010f746b8a85bbf1093b3dd39c2a853d74b20feb71bfebf2ded8d6f4c44538e6e20b24c65849e8adea9d34ff15498e847b1521bfca11d18fc23d18e10f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6b"; + }; + aiaa = { + revision = 15878; + shortdesc = "Typeset AIAA conference papers"; + stripPrefix = 0; + sha512.run = "9a5c04cc0b24e2b11e4b6953ceed9e506ad9f44922b3407c3aed1f5fd1fda1e86b1a5d6613a059065c1026f69830a8f5af0ed21ad8e1856ab44d22985768f24a"; + sha512.doc = "cd69337eb21eaeff910696f153bc97fca94afa0b147e3360477f72c5d90afa5d54d375b5eb7801df1b988c8f11d8fd23848a07f013a4e06c28a013248e00599b"; + sha512.source = "e9542fb3cb5a16a565bb5c349f15b453ccb4c81570425a5825f0f952816ec27edad65ee670bed9069dd0c1c8762b5becf6300ad551b15bc5adff960f73354588"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + aichej = { + revision = 15878; + shortdesc = "Bibliography style file for the AIChE Journal"; + stripPrefix = 0; + sha512.run = "7edc0ca36209f18dcca0b794c7ee712f0eba82e3e69b09fd46fdc7ede6bd33e93d4936d7bfcff88fe4f699acd04493053a7c76cabb87670215efaae12aaabc83"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ajl = { + revision = 34016; + shortdesc = "BibTeX style for AJL"; + stripPrefix = 0; + sha512.run = "083a549d425336eceee0ab8e85ef592aa15983e9a4dcf2264d835b5242933fed8719b81b427fcf7784b38b8e0b3dac2e2a7f8b9ffd10cf2690b96bf8b586ff3d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + akktex = { + revision = 26055; + shortdesc = "A collection of packages and classes"; + stripPrefix = 0; + sha512.run = "481502410094aedb36f00dc93ff3cad9479e756b00c60abdd7da98713f273cf45a314ccb55ef2436dc54cf7e8f84e2bf9fc5f00974c9978aebacee177380c9a5"; + sha512.doc = "4378f1e2c96bab5f5926b22863580dc2ae555400d770f5875eff09b8f915da4c83e99679fa7487f788970d17537123d854400e31bfca868d693b3d950c33051b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.2"; + }; + akletter = { + revision = 15878; + shortdesc = "Comprehensive letter support"; + stripPrefix = 0; + sha512.run = "fc0702fce74b32b04ce2b1e03960a7617c84a89d4581f16bbbe1b16fc01d45300c0a46682460d78cc572b6e20cc42ec7701c5067adf5e4960ed1bdfd5a69e910"; + sha512.doc = "6a951bf2ad4a7af4a6c87b24e8f4c3b4ff520430024a6abe6b54cf56269a903d78e591def71ce7cac832a4d3f822e8baa14f8decc960b455688801f406d01e74"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5i"; + }; + akshar = { + revision = 56277; + shortdesc = "Support for syllables in the Devanagari script"; + stripPrefix = 0; + sha512.run = "d626d6e3a72fb8319f07c56d200566fc351be15acbbdc0ded7c3abb9765ce257741458109203882e8fa6131ba182539fd04e1ccffa0a25cbdcbe6f7630d3bfb4"; + sha512.doc = "2dc5f4de3807a8e2c7a81046fb5d9dd92a651ef86aa22bd47c68d7b9a75943537284faa2d95d89b013573dfaca2d8d96e53524cb916152e46fac067532b108dd"; + sha512.source = "9095a3c6889eb8de55c5956157a5dfc3e885e93b70ee6285b2ac14d4fcb244e65a11bea2476ad2d35b6add316423897bf8fa15e30e99b6d8d3d3d3cc65b20f31"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + albatross = { + revision = 69879; + shortdesc = "Find fonts that contain a given glyph"; + sha512.run = "6bb925eff84c6d3fc3ab1b81ae50cf5fcafbc8dcadd5ae6076bc1280c427ed03896e8dcc5ccefe05e911b513a5da470312128c488a694c602a2cd9b3a94148b2"; + sha512.doc = "d78c18b44d3eb60d6e991df864aeafd97366023aac7a732bbf7c67d0d677a76e0a89fadfba515cdfae1f1f7705323413bfd27100a3c09dbefa41918c3e29fd57"; + hasManpages = true; + sha512.source = "49ef73f529b8484def315efb0f9bef230697f532fd8138b42404ab5e98a880ea3d7e4ab660a9b3e83be73690f0a762ca09b1b9c964f9d461a0022853006d76be"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "bsd3" ]; + version = "0.5.1"; + }; + albatross.binfiles = [ "albatross" ]; + alchemist = { + revision = 66924; + shortdesc = "Typeset alchemist and astrological symbols"; + stripPrefix = 0; + sha512.run = "3e4c4902c70deb8f380d3ff5e1a621f595ea1dc47cde3579bcfc12bd0a066d5d1d6773ffb1d1f98aef336c8cfdbe7770e1d48f5b89fabb98308f54df5dc75fcf"; + sha512.doc = "cb978dd26bb9b95a29f6ced2ed4891f27fd0646daf560316dc1b20827a7af454fca1b6500bd4bd5c723c4fc6a24b77d6d7c7a6eafb3edc99e2098b11e4f53029"; + hasRunfiles = true; + license = [ + "gpl1Only" + "lppl13c" + ]; + version = "1.00"; + }; + alegreya = { + revision = 64384; + shortdesc = "Alegreya fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map Alegreya.map" ]; + sha512.run = "2bd5aa12890cecfa42b119f456ea63bf8b8f64edc4e2c55ed738cd24a80527245b0219330e1dc89e0a10e8ca17bb17ba928056ebf69955f2481d468a5cf97104"; + sha512.doc = "dcff5d4a47c3649155a79659012aa07123e5108b85804da9c1697d1f93d7b336ef7e37e1272c8e2e8f283971bfbfebc2e0cd2ebae3ff8ee69531629635ed7d74"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + aleph = { + revision = 66203; + shortdesc = "Extended TeX"; + deps = [ + "cm" + "hyphen-base" + "knuth-lib" + "lambda" + "latex" + "plain" + ]; + formats = [ + { + name = "aleph"; + engine = "aleph"; + options = "*aleph.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "326c0c2327ec391a2e6caa5b7bed74af44be58df05b58dd2d2ed68ac96151282f63cc51dcfad7b84f3fa716b9df1d9fe97e27e4ebefe81d40a1e0ddf06be48e4"; + sha512.doc = "33dbdb3fc2ed1cb698b1b3a1826771475b27e33c19ab102b5f0f403f670abd10330dbdb4223d9f5b96cff001a14dc8d25ecc9a084a612b9db8a1cc6a70bec090"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + aleph.binfiles = [ "aleph" ]; + alertmessage = { + revision = 38055; + shortdesc = "Alert messages for LaTeX"; + stripPrefix = 0; + sha512.run = "df06377244dbd962326646fcd0aad535733d275ff6a86bed3739e8b77c6d1231290c4628a98be50d92e9006f25be68c20d5fc5e92c82a6cf841c0af5670f7ca9"; + sha512.doc = "412cecb146790ed0b7fae601d9ef0eb14381cf75ed20ff1bab3190c249750fb693708c2dce26e76da370a265f99dd312dc6747b6c9e7de62ef51a709accf7e60"; + sha512.source = "c670adb01cc2e1dfa0997f6faef9a0d0b31ad2c6329174597b781580f02ba5dfffa7afb4538e0e740271d7f9f70b48a1caab91cadf8282d89a3f9a35c8ae8897"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + alfaslabone = { + revision = 57452; + shortdesc = "The Alfa Slab One font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map AlphaSlabOne.map" ]; + sha512.run = "b958ac7987363fcefa3d8b7016f13851b91446a2a252e9561fd1a15df78b867b928f3e45a6fa1556abffa0de03b2b70543266ef9627b7474167c5672ac98d9ed"; + sha512.doc = "375ca21d23599fe365f53f461264351982340d151ebdd2ce143189d8fd3c22d191501520d571f207a1f956f433ae6491e171c7ebb3c9c5421e30b358cc79f9fa"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.0.1"; + }; + alg = { + revision = 15878; + shortdesc = "LaTeX environments for typesetting algorithms"; + stripPrefix = 0; + sha512.run = "923f36ab03aa10cf3da008f4b3d7ba5919f3e4a512c82fd1c42386df22019ca70c4c1700b7596750a00ea7c50586bdb803db3fee22edfbc402ebb9e249668e99"; + sha512.doc = "d94795e7513612f3eb102b85b9fdcc792b175411fd67edd6779037b1e0dc101378159f58c6c6feb82ca6b73ea2a6fd415a36e4a4ea67913a0d1110582a41e38d"; + sha512.source = "a8231edf9c10855b312bb00f2bf37b68ada65b876ab621f459b3ee12da5bc5b90080ab6eff5c3a48c0821753a02576aac0100b3a577cfb7c5dc2cd4b47c8a026"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + algobox = { + revision = 67201; + shortdesc = "Typeset Algobox programs"; + stripPrefix = 0; + sha512.run = "42192835e3dd2aedf96ae3602b3009af09512425cad0ee3dc859a972ea5b8ec46bbed35456b17f0ff7a31faead6df06c01734211bb0f206eba80fb05e66d2663"; + sha512.doc = "5d5de2d91d0a5cbc63774259934fcb8b772eec36e9841d8f9e5d813e5f40cdce3171409b131ca788fb2b6eee651caa311128fa075eb22c969d2456b1e54708b3"; + sha512.source = "019badab6a259e9e41ad21d81b53231fc9fd12f87c8b980610dc5a4d60fd7c1201d9f45d71d46dd3b583df1ae8725fe0b183c4ed0b4a35e849bb5d0281a6d31f"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.3"; + }; + algolrevived = { + revision = 56864; + shortdesc = "A revival of Frutiger's Algol alphabet"; + stripPrefix = 0; + fontMaps = [ "Map AlgolRevived.map" ]; + sha512.run = "bb038512d7ade0cf90217150d276d8ed7fb4279b8a3088bcb38dfe8f48373e8957909f5fdfdd2f6247682623414f04e732262a393cc0042279705ceb345cd608"; + sha512.doc = "c42976e8fe3d53240de84845a0c4428363868629b5137a57863b5fc922ed8f557e2e4451446277cead1dba0dff036e843e5ead35e6e591a04f2edeb640c7932c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.052"; + }; + algorithm2e = { + revision = 44846; + shortdesc = "Floating algorithm environment with algorithmic keywords"; + stripPrefix = 0; + sha512.run = "0203f337518811a04f255a1ea65045f487dbb4813fb848e0ba1b52d3e5fba96b784852d7e900a82f4c047c2943098e3b37cbca27322d115c341fef6d262c60cf"; + sha512.doc = "ae737056adb53f943ae8c92d8e7bfffe52a107cca4a7a3151932a581744f1396f43e134a55e9894de0ae1fb5418983ba4643e1e07487b690478a6979555d8768"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.2"; + }; + algorithmicx = { + revision = 15878; + shortdesc = "The algorithmic style you always wanted"; + stripPrefix = 0; + sha512.run = "b6cccb7bc391ad11a8996d3e6a3a48f79e50e3e685a4b7670a3399d5d400435616794100b38e73d32633fc16cdd1795c2dcd57bc79279266dc6509bb14d08804"; + sha512.doc = "cda9c4082faeaaf504194d75c014fda9cda20fe85ab9dd8c4f5a3c9e39fc2c8c8428ef20b921790f36c8abae2ecd8ea089353db540477909039575bc65ed5228"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + algorithms = { + revision = 42428; + shortdesc = "A suite of tools for typesetting algorithms in pseudo-code"; + stripPrefix = 0; + sha512.run = "ba02581f18b74ef97f37b7c1052bb7577b256ef94232b045a43c841fc4705f8d7ebcb2b286d95dd70943d309080b05d36dbf847ecd6e661038d6e375d514a787"; + sha512.doc = "3658a5a31162acf5ea1dc318503a2f9e74944cb998494083de76e2e31119bbc22094bfd41e048f5628730df359d2359943cec3cebd07b364a81703b92520dd01"; + sha512.source = "d83acd2275e83d37b5bb9a24d9cb0efbf711a2fb76a9a5a18d7299c95d6e1e0ac8fb41990b795a21b23b5e4fd8de5ef08fa480c6b2eaa7d1f7644e0d44c2f1fa"; + hasRunfiles = true; + license = [ "lgpl21" ]; + version = "0.1"; + }; + algpseudocodex = { + revision = 66924; + shortdesc = "Package for typesetting pseudocode"; + stripPrefix = 0; + sha512.run = "0a8b2e49f389066575d403eced31e57cba4af96619bb2ad09bfe51054193d3033705736ea23233b8da3e5e9e0714aa26c4132c2227fa36cdbdeb7df50035aec4"; + sha512.doc = "5ebf9cb1c66d4e4987387958758aa5d174002409759a38075f6c32e2418f0db670445d2b9d61442c5fe719154d137e3156c6871063eae7e5c4b50593022af623"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + algxpar = { + revision = 67495; + shortdesc = "Support multiple lines of pseudocode"; + stripPrefix = 0; + sha512.run = "3ea0ccb08a088e16c3fd47f5455ec1c3980d242c4f9db838ad07dad089326bead01c03708fe25fe3a14ab3abfdee93c864d1c633f5e0fe043b31962ca1dfe462"; + sha512.doc = "196b2539e23d96f2f7967272d59243af9eabfd588c8ad4cf69174493084f5f3af0c088e3e5ee51df96a6a5de02a7d3a84f7f4f7b3f0cfec0fa4463fb929055ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.99"; + }; + aligned-overset = { + revision = 47290; + shortdesc = "Fix alignment at \overset or \underset"; + stripPrefix = 0; + sha512.run = "3998cd5515ad43e559da91bd1f25b835743299ec13fcf22ee9cb3aadc44c285f428ee701f5b27141c4d03c97b31a31e8620a2911854a1781ee5543a99073fed4"; + sha512.doc = "d44ff38fe36352e1498e12eb56652e935cfeeb9ce6af5711bebe7844b1b7ba16864c8dac3c3b5f2e2bd6fee86de38c7555d5796940b834ce1ad396f5d2cb536e"; + sha512.source = "56584744fe5700505608c6ced57fed83fa189c9e755b63521f466f40e1080a35032b007831316e4b080cf93ef36958873924246a4cdfe2b0f129effda75380b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + alkalami = { + revision = 44497; + shortdesc = "A font for Arabic-based writing systems in Nigeria and Niger"; + stripPrefix = 0; + sha512.run = "57d8a09d5643536cb2341cfd7bd84f24f101ebd73ef1456a39fa8557fc81bb6bddfb58990c38d4da229da5c6ccba0b4d956d82f7d07d65c57a87c749ba3ef841"; + sha512.doc = "c9ebe4fc7bbcb254e0fa0f027e93680be2d1690cded2d9b18f3da091544b05f5dcf38b87400f8c5b8d4dd9ec320379c752615fea99d010a118bf35f4693c704a"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.000"; + }; + allrunes = { + revision = 42221; + shortdesc = "Fonts and LaTeX package for almost all runes"; + stripPrefix = 0; + fontMaps = [ "MixedMap allrunes.map" ]; + sha512.run = "d05513d484f11a9fcb5d202d02e7ea586cc82c44abe0488294e58c6f31185b083026bad3f17186ff03456481200e05e2ec4a7a7348f6b8fa4e952702b15274eb"; + sha512.doc = "569f61370178f2517ea4d4625209a1359cd56913073344816f4fa8aa19edc8bc63c073de4373adb0a0a8c8d45fe392da9869bd16bd7477da65d5b0decfe6de61"; + sha512.source = "9765fe328824806dd96ca1a0e9678ba385eb61acf95d8447213492843f908de65209022d76303be816ee1c500e95aeb35280f3377369315a87752a0c4478feb5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.1"; + }; + almendra = { + revision = 64539; + shortdesc = "Almendra fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map almendra.map" ]; + sha512.run = "9bfdffc9a634df297dc9b5c406c0681ad78b81619900126110b978bc5a7a2ec0f91a1e351100281c794972d87f33c7088725f55928e120a743001080887ad4b3"; + sha512.doc = "477d5d068353d06e591af13e7e970cccd3d5229765f89150e4d9bb5f1de2b0283e4212bc475fdd6771f4e33f046a3e64dd4ca794c3691af95f7e36f77c7eed76"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + almfixed = { + revision = 35065; + shortdesc = "Arabic-Latin Modern Fixed extends TeX-Gyre Latin Modern Mono 10 Regular to full Arabic Unicode support"; + stripPrefix = 0; + sha512.run = "1a5e41cac48a33c4336fe03576c49165b47a0bec606b0a15a3563922b964a9a3c2de735cd88cf10423b054b5131193441fbcd64fb2edc47d4944ff33cf6367ef"; + sha512.doc = "f51af6e63070fbf94a3f8ed756d544dc7d9460f37b016fcded0d2c56a6cf672d2e60c7b2cb8be9f9942f43e46b5ff2bfb59c6ae301a5d88a8858d6e60a3fbaa9"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "0.92"; + }; + alnumsec = { + revision = 15878; + shortdesc = "Alphanumeric section numbering"; + stripPrefix = 0; + sha512.run = "d61adf9c03ef9f0b5d68325b435d5145297d85fa04a5bf106de50f58c04c9507eb63fb17070e955e7f476158419a802f0f18d2cd97ca93baa7997c2d57def479"; + sha512.doc = "ab07f751332fa0ad974e6ea84b10a0249e5bbb69e591d1319a8c5d743f88d63ad9a7c72fc08fbac95e3cf950d090313dd758ed8f604e209206f873c5f0f70880"; + sha512.source = "2c978d1dc9dc7f6a0f91d90102a37a2c8bdb78a19d7211d179b04ea448bb56baa451e09f945daaf3f219187d39f5938a7c003988fbc905b692931c9cffe465ee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + alpha-persian = { + revision = 66115; + shortdesc = "Persian version of alpha.bst"; + stripPrefix = 0; + sha512.run = "dc0344deccdbdac04c5a798a52785e913d6da3997b907a07894f86b1b3ed12640a870eabec3bf5916f9835a8a405ae4c692bfb70a63022cf8b52db0c2c3e1382"; + sha512.doc = "a5881df317b723fff5e00a89706584d05d650971a4bd88d3e3f71df1e7dc021289f9737d1d5239d6196be29307599c3bc1ff782c190032dbea9bea0140547866"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + alphalph = { + revision = 53087; + shortdesc = "Convert numbers to letters"; + stripPrefix = 0; + sha512.run = "de17ab4278afc9fb308abc23c19d4d1ce117ef3b66a21b748c102b95722d3395016682e9508e135e2b01bf4ff274964df0fb723ba2f92c81873dd58d73a3a733"; + sha512.doc = "a098159842a9bd47e6da930af94cf365629c72f539fc3d045fb33b4bbe2004468fc690564850b67549b3eeb2265134c92aecef65b47d16da732bcc5aa93d26dd"; + sha512.source = "34e3c847a63de5a6e6dbea406e79fe0715a46c746f7113a5e8651838499c1d8b0a636c0bf138a1030c957e2e7cd17f848bf2285109642686f56ef95d18354717"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6"; + }; + alterqcm = { + revision = 59265; + shortdesc = "Multiple choice questionnaires in two column tables"; + stripPrefix = 0; + sha512.run = "6af82517cdbc64453b7e546afe4886ba6816d44492ca4fce9cec98035166b45bc432503db0c09c44e2e41f3bf8cf18c33a37199025a6f09dce6fdd2849973fcd"; + sha512.doc = "f16c2591c79aa8d9f98f36c613617b3068495f814db73bc330d11f6a52b4a6b394a663040de328e6251f16d21acf683adb6cc80a5ce6524c09fac8397439f8b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.42c"; + }; + altfont = { + revision = 15878; + shortdesc = "Alternative font handling in LaTeX"; + stripPrefix = 0; + sha512.run = "18212e7107ed2bb6718a7c763d881dff7859e55e5bb33c42e1acfb5ea21228d1ebbdc6e13cb95f041bac99f871306bd3227326953229e69ac6b8ea774434cbd6"; + sha512.doc = "4d181a21f732b0265d4251d3775fdd8a4305c99c0dc1610adc9af583f73e376cce249b2ef237d8027aa32a269512db71260aebe78e5e1619f506f23d1105dc65"; + sha512.source = "f6982a69cb4264c633f8174fd8d487896db88e7d849c074c90645a84e7bc4abb1c1e6adf28500d300a74cdd26dc20b62efc013ff9e080df2bbe9a823ad0112f1"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + altsubsup = { + revision = 62738; + shortdesc = "Subscripts and superscripts with square brackets"; + stripPrefix = 0; + sha512.run = "a3e168d93d3d7c2343a539329f8c7ace39f376e0008726affc77630e3d4032cdadc5c301cc15f94d92be4b98cf00bc2c95f29225fcd1def7bb66fd91c0db9c65"; + sha512.doc = "e96020ae0cf52a851885326068d10210bc18d68df8047ecb84e40659015734c352c08a8d4f202aa3970b699131c032e36350a9c2ec4254e0f000e49b0029f3d4"; + sha512.source = "eb79caa298cd000f6cb9e1c272b2abf788d7e5469bbcbba22bcb48e8b7e7c1f7774ceb9478aeb3588ec69280c5069f1b0c8c207918d44c772f32b558abcae35e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + amiri = { + revision = 65191; + shortdesc = "A classical Arabic typeface, Naskh style"; + stripPrefix = 0; + sha512.run = "ee2a1598a4040a069cfdaa275793b34bd8c899f65e888f41bec55fef53fae6312e3b9ad1a3dc024aaff1df22f735e0e633a1524b54d7ead9ff482ccc829e8aba"; + sha512.doc = "8f50fd9ff492cec24fba7a321a4fdc25d5b427eac31609adbc9fba6a0bcaae8ed895aa6cc860a66106e22ae21dbe9984f9e37f4bc2451f77f5d89ea10d0f5e0a"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.000"; + }; + amiweb2c-guide = { + revision = 56878; + shortdesc = "How to install AmiWeb2c"; + stripPrefix = 0; + sha512.run = "1ffd4d1691abe2543585fa950d9b18ebb10e48c5c7d97e2f05828f04620bfd730894cd92f0df507627ddd9451a253ed8bbe89c07306b6db27ba84bd6c24910ea"; + sha512.doc = "d8f6ab658d8d8f2e05876ce27b5220eb2e10a58775cde91f975cdd106708ddef86781cc1c004b4381176fa7ee8ee6630a34bf7cacec374bf21ffe5e06c8d4d68"; + license = [ "lppl13c" ]; + version = "1.0"; + }; + amnestyreport = { + revision = 69439; + shortdesc = "A LaTeX class for Amnesty International"; + stripPrefix = 0; + sha512.run = "9fb76037c976d48259609295b876a256e5b72e611c7ece52cbc39b7df607d58a90ce2b0a0ff33d816c08f869e911a2cf979b8635a044697af8331d8769382be5"; + sha512.doc = "e3a3989cd630e3776bfc103d5ebd7fcdd39464e49338b638b165e1c486a7afb58ebc907e2fcaaf008be5463f3496e66aa36b0bebea87d1d945a0497469f36eb5"; + sha512.source = "bacce1f1ab7f2c6220c1fb59ecd63a4dc93405e57654390f377c5b6b511a5f732198e869b955211a752e94aa8c1601c4ea13d3d0aea7324a3ae38e035ff3e43e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + amsaddr = { + revision = 64357; + shortdesc = "Alter the position of affiliations in amsart"; + stripPrefix = 0; + sha512.run = "9452effac79a430126a8060827c603c8ce9ce441b187d2fff740a7e8f013727ac4187fa1c148d430ee17fbc1709b8e8f89465b2403ed070d0517304dd7f8aaad"; + sha512.doc = "2d501a1adb6fff4f16f0d3f44e6911ccef824cbdfb9e9a61582a00d61d1e92d03fe93f7fe6d4f87eb2575422407e634dc7e543c1ab05a744014f4d3bdd68e3c8"; + sha512.source = "473c8d5289ff0f780956d298cc1527d5abc157a442191f3a321c30ca0d8cc11808c609c71fa50c996d5354534e5b5a16c154cf870a2fbae8120b026d5c8713dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + amscdx = { + revision = 51532; + shortdesc = "Enhanced commutative diagrams"; + stripPrefix = 0; + sha512.run = "6bdebfbe4985eea23ce24db5e0e14162310d81efab18a7a820fe819bd51f839b9deca35b94740f038ae80084f355e5e800fd6e681d859cb7bc9bb8886993c33e"; + sha512.doc = "65d6ea09c1bec56e5082d3521e1eabdd513013b0606f6cfbd0f7c7566795b8963dab6e9f3a46cbb6d008311e7ee3701efa345ef5dc780a3b18f6f4842d97594e"; + sha512.source = "94751d2c3f617710b50807de584cf4c4d7c8f1ff82a1ab14a5bbd8b41fb5828b0a208e20c131a0aa023a1c8afcdc3d4b5e36b2df99f76b260ec2d9509a941f76"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2x"; + }; + amscls = { + revision = 55378; + shortdesc = "AMS document classes for LaTeX"; + stripPrefix = 0; + sha512.run = "eb39dc97a860047d764884663a1f541aa95a2d559dd55cb25f6b7c6c46617e6c33fe55a9fdc37b211c613333911df6e260768f43ae9630a208ecc7fb774891e5"; + sha512.doc = "c2e563bd239f36b0db3bdbfe1ccb4a0adec0c22af25b557ed748897a99672f05f36f2bba6e51827c6fdd60b351079809b15c0367d075566c5e48682c23108fe2"; + sha512.source = "7a96a464f9826a515191174b6e33016c7161c7547ed70ca78cac256cac68b4340a2b3bd9608f79df106c3eb2383b8d6895012a2cc6dee0c76d53d116679f4c6b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.20.6"; + }; + amscls-doc = { + revision = 46110; + shortdesc = "User documentation for AMS document classes"; + stripPrefix = 0; + sha512.run = "132432f34812f009233392ea29d6c4145717a80ea305632687da30de6969dcef8af9c2aa88cbf1809dd34b0c3dfca0f40a52b6216a7370f2a225b2602d0bbaf3"; + sha512.doc = "8c08813abf65f00b68441d1e5cad3eb4a16fc1a77b30e10d96e22f34d6af547804af4d47b62ef0dfc895e2bc7cc5ecf7bc08d912448fefefbf716430c4502a64"; + license = [ "lppl13c" ]; + }; + amsfonts = { + revision = 61937; + shortdesc = "TeX fonts from the American Mathematical Society"; + stripPrefix = 0; + fontMaps = [ + "Map euler.map" + "MixedMap cm.map" + "MixedMap cmextra.map" + "MixedMap cyrillic.map" + "MixedMap latxfont.map" + "MixedMap symbols.map" + ]; + sha512.run = "6a9f80bc8b6b2afc3ff6ad151a290743d37e10ddeaf7efa969f3fec40cab0492860496c7bf0abeb410124aeaaa15a53640017c8d12b630e68c59dfe186519e52"; + sha512.doc = "fe0917bf9d65d15155f287626edb17d692db7ef2e888fce30b867bb0c873b0166949b3b5f3965f70b6b237d7b874a7fd3411e53b87368acc7447dc0e8bda55f1"; + sha512.source = "4145ce58620f84133e8d7a7639fe376631c92398161283c69c9d1119c14e4d404ed067f2aff2fab7cc0c2249d1fcdea81591b45a1cc72bc08835b99ac8a5a6f7"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "3.04"; + }; + amslatex-primer = { + revision = 28980; + shortdesc = "Getting up and running with AMS-LaTeX"; + stripPrefix = 0; + sha512.run = "05c7c19430a85986db770d1ff8686993edcde35171e3653ddfb7db4a09422c80e53632f583371079fe14d3c6fd9ff4eb3f0c37cbecea7ca2d9a5aefb04cabdb0"; + sha512.doc = "85faf2a9c03f7d7d1e23d72b7041c9b322d5f8bd8cb309a60f7256416249ceb7582c112d25f8953ee67dd2b79a3697e29cf6250d7b199a9eb73a9682f123354f"; + license = [ "lppl13c" ]; + version = "2.3"; + }; + amsldoc-it = { + revision = 45662; + shortdesc = "Italian translation of amsldoc"; + stripPrefix = 0; + sha512.run = "9178b17bedc53957118083a78ead56f9fdaf9fd6a60ea0ebdbeee6c87254e7567b47b61bad1f9bda2554f471f79c28f3df7c3d2b9858faad65c3d110664ec4c8"; + sha512.doc = "eb23cb624c4cf6283b8f777911d102953d31dc8da04392d7023694fed02ee1b8a8a49365fe0f1cba9682e911405f04afc982b6cc9cf9699a4d76ec8dca6a471c"; + }; + amsldoc-vn = { + revision = 21855; + shortdesc = "Vietnamese translation of AMSLaTeX documentation"; + stripPrefix = 0; + sha512.run = "5b0c2cc1afcc4060249be20271af92c71c866db47d2551a176b5685c58182a6ca17da9540dd9a7c7abd33de75b0335a625aa921fdbd77329bc91d16718fb346a"; + sha512.doc = "827c294eb1cedd51a3924796b461ec3d6c858e7875254e0fdb6cb496fecbb6d2ec541e930327c54cc446b15dd69ed795470ae6cbf1cf1e51c0f3ae90f3f6c12f"; + license = [ "lppl13c" ]; + version = "2.0"; + }; + amsmath = { + revision = 68720; + shortdesc = "AMS mathematical facilities for LaTeX"; + stripPrefix = 0; + sha512.run = "39e87ac8255c577fa8b1c0cd155d4fa21bd0c0f789141e6d1e75cad1c34a78bf5fa44277342ae9d93d80f4f88f31ca9f88dba9c592ceba04961e601e3e8e9650"; + sha512.doc = "b1dff0cb1c09a184dfe9dd890ccb6e9e5bd5d2b109ce0b98336ca4cc1a45d4f398eb7822d02e9210c611c98a49fe41884b103e1b1e4f7c6b3b29b4de5be2ebf0"; + sha512.source = "c1d052395b6f6291a269d610f713ce01383940685af91b1c2dd711b73f5d765e801524a538687d7f8cde055bb1dda9ca11900e4e8b58182b3cd792fdfbaca6be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + amsmath-it = { + revision = 22930; + shortdesc = "Italian translations of some old amsmath documents"; + stripPrefix = 0; + sha512.run = "6bc869e3cf11a9521ff883e9b8cd227a267d28291124c0f268556ea576bc0af8ea4eaa145e45d1de84709df08182fc83946d80fd0f116a8656a35d75ca83eef5"; + sha512.doc = "814539a2a82601c930097113a9baca5166fcf68d1b0c4dcf25d8afa8991e667619517879bc415ff114b9e86664b9ff5e25a7bcf1bb04160b9297cbfabb4a639d"; + license = [ "lppl13c" ]; + }; + amsrefs = { + revision = 61937; + shortdesc = "A LaTeX-based replacement for BibTeX"; + stripPrefix = 0; + sha512.run = "01416fea668e3717b14086199280582d7547cc7c555e19d2f88b7ee94dfb6863719375a140feaa5ecf7461c6d6c6f0ef52bffb544ff132b34771f11556ecdf09"; + sha512.doc = "b704ccb7bf8a49c141277b240e08ed7d22c71bdb91d625997a726b25ffb2e8f494637cd9ac7cee031f9b45476006441190ba95331e32c4ad3af4e25ecdcc6f6e"; + sha512.source = "81b8aa65cc79f08133a6390915ed7753db3439448b608ce04330e23c849f876ff2242403b9bb3e08b9642cb0362732adbcefcab9640e75260548dce3938baa25"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + amstex = { + revision = 67930; + shortdesc = "American Mathematical Society plain TeX macros"; + deps = [ + "amsfonts" + "cm" + "hyphen-base" + "knuth-lib" + "pdftex" + "plain" + "tex" + ]; + formats = [ + { + name = "amstex"; + engine = "pdftex"; + options = "-translate-file=cp227.tcx *amstex.ini"; + fmttriggers = [ + "amsfonts" + "cm" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "4f380f6c67b3c92d4be1b3a9ddec3b464e91ccc632762d6bf28f47dabf6e2e096471dd64804deb370349fe14ddffc3b4d37be195cb63f87e47a2345ebbdbd7fb"; + sha512.doc = "94b3f6ac9f2314cf5e3335ea517bd23e0c08ef10e5edcc032bc5907fb69b04525ad434eb896ef8d5b149033148da55703039d5481242c2f5bf791c1b32c85388"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01"; + }; + amstex.binfiles = [ "amstex" ]; + amsthdoc-it = { + revision = 45662; + shortdesc = "Italian translation of amsthdoc: Using the amsthm package"; + stripPrefix = 0; + sha512.run = "17631e2d6306887236f11eed586454a784f256c36c14955be1eb30377f1f73b189686b37ba6c95188fda2e0b0aac9a1f40469a32bc7787b5d4c244de9a01ccdf"; + sha512.doc = "2d35f87da43f957d7ec3d1e61d052d14b4dc207207fc2e6dc4de08b699e5211db17a84f0305888294ae163691e4dee2d067fb1c3a29fadcc34214033fe8e22eb"; + }; + andika = { + revision = 64540; + shortdesc = "andika fonts with support for all LaTeX engines"; + stripPrefix = 0; + fontMaps = [ "Map andika.map" ]; + sha512.run = "4da9904459345033aa87deeb0019c8c4a39fbafcd59d973717ed2c4a410ece528944c69669b6a5ecf6ef8bb790f60bba909468e001485c405e7cf8775b7533e5"; + sha512.doc = "50684857dc25ad942aff18eedec04c9e27e4e408f748c208f8527c5096e600d26769ec6f82e2f02e72ab472dfb662f12bb009156293a12daa2dc0676d63ed446"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "6.101"; + }; + animate = { + revision = 67401; + shortdesc = "Create PDF and SVG animations from graphics files and inline graphics"; + stripPrefix = 0; + sha512.run = "dabe8762a0329d46ca8987621a59c38183e713c1c257e2cfcd2bbe36bd49bb7cf23b3e75e421f4bf023db2558bb9503d550efa882d77b229114649a15ffcafbc"; + sha512.doc = "857f611cfccc96ed1ae63f47128e9b7b4240428f86ebfdb6f2b79c5f0c76858e7a917321330d841059be02c3d7ef45036f0a2ed441e27abfe68ccbaa61568607"; + sha512.source = "d0b799be895882ba64d200f4c77d8794212fecce55b8c65e874b77587ed4bc186930f9abf1f662d0c7c7e8383f34afc3679f11679d22c035539d93b8dcd19e7b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + annee-scolaire = { + revision = 55988; + shortdesc = "Automatically typeset the academic year (French way)"; + stripPrefix = 0; + sha512.run = "73158727d9c5da0b28fe71661c72a8d1faa705034be8cd10ae36abc266240958cdf0dac962926a96ce445be187016d8440b7aded3129de6fff814ceb6366beb6"; + sha512.doc = "3e02616de1f5d55837511eb2b1edaa571b6686192433941e1412d812588fede1eb8a8d160b724d1fb8ef8f369cbecd401d1bcd09d4692a79b182ce5bccfb6021"; + sha512.source = "2e0e2a08820a7826fc6e58dc97ee9587818bdd62d0eb046982dd1f8a676df705e5bb87cfaabf7e260089d71ede1f597b0afd92b69616c0047d64983d919da50c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + annotate = { + revision = 52824; + shortdesc = "A bibliography style with annotations"; + stripPrefix = 0; + sha512.run = "bd31306b72bec73d4a2367fda6804e648ade536181d7a5c34d196591bb5fbd483f13a1e4aa2c28d3a4f29d0c74d37d5f1a77046b15d321c29176d9f742e91a72"; + hasRunfiles = true; + license = [ "free" ]; + }; + annotate-equations = { + revision = 67044; + shortdesc = "Easily annotate math equations using TikZ"; + stripPrefix = 0; + sha512.run = "4d4f64f6346eaee14dfe509857d2a592da825eed9ccaaa1a9c2cbf3a4d4f750441392d703c9c9665c88316125bc37192c0d6869f3e2f5274e7f80699f8c553c6"; + sha512.doc = "9f958eafc15d7de177a3ea66c0e381ec76480845647af0969e34b7429f3543c51de33dff58d2a4faf10bba82eb8f3de097d3324955b1842806fc69e8cc6b200f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2.2"; + }; + anonchap = { + revision = 17049; + shortdesc = "Make chapters be typeset like sections"; + stripPrefix = 0; + sha512.run = "4b84d5260c0986191fb4f2b560c386a806c8f93c76360a8d93aa7f9b55dcf089d7d03ca946143b52923130ee751fd47f1ff59908314297fd752ff5fbb17ec0cf"; + sha512.doc = "087db509e1d9649176614296f84fefe9b726dceb3ac8cb6eeecdd8a6fdb03dc97433c31478638eeb6f5f7cde85b8a8a693fce55ed0b3f5aae35a075a43e5652c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + anonymous-acm = { + revision = 55121; + shortdesc = "Typeset anonymous versions for ACM articles"; + stripPrefix = 0; + sha512.run = "6899f18cd8422c1671b74a0ea3f9e8eb47d7ef62e0809d12e71de6ad6a7634c8cc7af22f701c710c9b2b5ee3867acde491bec8d3e2690e2532de3488aed1bec9"; + sha512.doc = "f7a91677338dff848150dd1beac5645c157550f3463795d2d67493f35a81a09d33ee6cb39f2d921f535c12f26bb60ac17e4208298bd8bd7ba0dea8da4e1b41e1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + anonymouspro = { + revision = 51631; + shortdesc = "Use AnonymousPro fonts with LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map AnonymousPro.map" ]; + sha512.run = "105334748bce7fa8a78edd599d6a8466729937f0008c479213a4d3d4b6b3e24b91bd1e124d0e3c1354fd68f99fdf621538696ba9b32ecbf09f5c7202b0b34997"; + sha512.doc = "ced94c5fd0be106433e99cbe66305b60ac6ddee82d3a1c8046d1467b11fe9ca10c2ba3b4ceba56a0ff439e7fa82d09c303f29200fdcec1600145fe7623773e47"; + sha512.source = "75d70833e574ab7847208d76d1012105f42712fc1558b9fbb35349871068bd60099d4ffe189eb28f5276807e6d1e48969283c7ea5a48f991cdb959077c1444dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + answers = { + revision = 35032; + shortdesc = "Setting questions (or exercises) and answers"; + stripPrefix = 0; + sha512.run = "89f7fa19dad8e94b57a66b53b72578c277037c0c3a9fe008d0802dcdedaea03f01c6554f4c6b80fd038ebc4f18e21bad3fc176f4c4acedae07d9acad2a90700e"; + sha512.doc = "616569a8d972150c0a1da86625b580baaca642bfad773e9e2240f74d33ddfea203b4c7349660b996adbf8208a92b11861d3f1a42ff88c68f39efba0af97ffa19"; + sha512.source = "ab865ba5abd9be86d4056cc33ec9436c14cbc0c308cc68d9a6768c094b84dc1bf785bc78c84e1f286e9371c2118ae3c21b8f57d0b4406ba6c2130f633ee6ef09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.16"; + }; + antanilipsum = { + revision = 55250; + shortdesc = "Generate sentences in the style of \"Amici miei\""; + stripPrefix = 0; + sha512.run = "d0a31d489cbb68ba258d78c14d294dd3ceecad43d746a43fb87d6c129d2b97145187d8f0207d320be91168a3e8d0612c79bd861d327572517479831a52d290fb"; + sha512.doc = "e7b4caa710d671e8474df9e449112033be38da1465ac475ff77748646b8c24c5589cb2fc3fccaa19642ec68960be1cda4fc4bb427e53ce19ca5c99a45f74ab44"; + sha512.source = "bd2860412e363d97f50a0055036b283c10b475832c6acd1da617a76cc05391b7cb15ea2b080c2658b8e0eb7d455a5ddac80ed25f7cb0f271c0172008b7af323e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.1"; + }; + antiqua = { + revision = 24266; + shortdesc = "URW Antiqua condensed font, for use with TeX"; + stripPrefix = 0; + fontMaps = [ "Map uaq.map" ]; + sha512.run = "0318b6f81d365cbb4b320642ddb6d8f909b5b136daf952da01c22508c392c58c9f8a25b33e4dd0e5afe777bb0b366633afd6567c3992df2a2e286cc9f41e6211"; + sha512.doc = "4158160d42fc776891f974cf8de13631aed17578ad2e5a67225442b7e783a36e2a0d3be640d92dce0fa66097dc617ad54b2779a3a3ef9878b46d900c5dc2ed7d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "001.003"; + }; + antique-spanish-units = { + revision = 69568; + shortdesc = "A short document about antique spanish units"; + stripPrefix = 0; + sha512.run = "a1203a09f77e3753fc28d632abc1c7d686085cd016acbab38a767b85a815d0dd05006e49b11524deb85bb8a20a3a8f413917529842f850d4efbe80b38c216ee2"; + sha512.doc = "4c4cd96889c2f1db9766099de6d149963579d27256f44d555023e205ca09617b570237e7eec2b5523c61af4d1124683ade9eeed4a5fb96f140423176ef163cad"; + license = [ "cc-by-40" ]; + version = "1.6"; + }; + antomega = { + revision = 21933; + shortdesc = "Alternative language support for Omega/Lambda"; + stripPrefix = 0; + deps = [ "omega" ]; + sha512.run = "af2cbe945ac3495e94fbf69797c05d9a7cd8c3874148c54c602a4a152c669638cf7a861949a3cc2d08aa21f378b57beffddf2d13e3afc1157c74472c348f5405"; + sha512.doc = "298b2e796736f7598a83a2d4fee53f48e78d0c8b255cc09c686371a3a05a4d36736cef96d812281cfd3fe1024af433f32e117c1c60d7559809220ed8dd5e56a9"; + sha512.source = "7ee92461e60834af1f736f387823788a44d680171d9a7acbfd71c858885e190f724b5db11074efb74faf63b471af5c34688af1be5b765de67b170dbcf123fe2f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + antt = { + revision = 18651; + shortdesc = "Antykwa Torunska: a Type 1 family of a Polish traditional type"; + stripPrefix = 0; + fontMaps = [ "Map antt.map" ]; + sha512.run = "c31e92701d14e0559ca1807389d3f1d95a166e9dee918fc7218ee671227381e3c37a991756e9c19c7e7d3681597c3c012037a74249c7c8eaaefc7c8a3bc2fc36"; + sha512.doc = "00533390612e68b48dbbe9c1ba11e46a0e48f8b87cea8f6623267d53795ee9170daa1f34adc8cde12356ef779990fcd7fe7a10b601bfc11c9a0f590b5a25f3b2"; + hasRunfiles = true; + license = [ "gfsl" ]; + version = "2.08"; + }; + anufinalexam = { + revision = 26053; + shortdesc = "LaTeX document shell for ANU final exam"; + stripPrefix = 0; + sha512.run = "0f7deb262a96bf55eba167475ca7c55887c1cdfbe60f9a32debb6926d855764eb595acb693ce9ab74a2af89efd98114f6694255580b5d594915cb2470d84b485"; + sha512.doc = "0821831108f81bc8d23dfb7d26f2201057a897a2dc783959b9e298b8e59b79a12453db072b824397a9625b8a63e7fb19ad8ba6d4500436bb0f7b9a23f96d1c3d"; + license = [ "gpl1Only" ]; + }; + anyfontsize = { + revision = 17050; + shortdesc = "Select any font size in LaTeX"; + stripPrefix = 0; + sha512.run = "31d1c235d011998043663bc1f5729bd40c5b90996627038be612115daef2b3526c9e616b16c251d6b653d5bad82beee62a7dcfc3b8c10feec0850729afb294ea"; + sha512.doc = "9003fdbf712448de70c858eba74f7de79e0cb83e8f9fe72d9c1b71869161d5a63099473c4f9ec670b28b356ceccd9b56110a1724dcde3062ae209a678f5b0e16"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + anysize = { + revision = 15878; + shortdesc = "A simple package to set up document margins"; + stripPrefix = 0; + sha512.run = "4439be91f8dd82cdc051c519b5bc36fdfb632cf09941f4e6ec92fa77c2b5f4d767c162018fc9451d48ece17e9cbd5d7d4c574eacea78b8f92b6e07d40d7b590b"; + sha512.doc = "96591bba808fc91a876dd49a6e1ede3b679c18952244f14b07e992b40d20f6c4a0f4b4dad00a409c766c5f2e883fc4923c501e65b06ad93193719001c2629f08"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + aobs-tikz = { + revision = 32662; + shortdesc = "TikZ styles for creating overlaid pictures in beamer"; + stripPrefix = 0; + sha512.run = "76e3f9748c704efafda74e6184aa3c0199f8dae3a9f433615fb87ac5fd7c81d5dd604e91ed7648b68f05919425f82fd19ca0b66f4f590f55e55634a5cc4b7f9a"; + sha512.doc = "3732ca200dcb7d3d4b99cbb0edbe13ef7c9293e8424457c2493c330b4ea810bca21851161b83740bf3b7b53899941e906b0b2e4b46ba715e7b5bbe19844d2070"; + sha512.source = "2cc8953d5e03bb1e6fc35d323a35d434aef291b165f1ac4fa0b005689af3d7988770d0a86fb4b4c3dd3ef6ea876f962dac5653e695533e089a7a50653358f40a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + aomart = { + revision = 63442; + shortdesc = "Typeset articles for the Annals of Mathematics"; + stripPrefix = 0; + sha512.run = "26216ce5a5069aeab93234a02063961d4895e45d35129a4888107dfa670e319d7d1f1947920700033b31f68bbc3a59fd189feea33305e2893581e8f6d89ab553"; + sha512.doc = "414142b801b286e4064ebd8a73cd40ba07c5d5cc6441e19f7657f94c2fb97665828d2c664908b8efa91af10d17d7bbf1b1b887de393d3752cbf0213b800e0c15"; + sha512.source = "79fbbac627d55cc394fbbec70c4550c2e889d88483b4e7c2bc19ddfc660be93072a7ffcfae92804b75e2fab47ea91c137c98ab7161e84399d586496940bf14b8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.27"; + }; + apa = { + revision = 54080; + shortdesc = "American Psychological Association format"; + stripPrefix = 0; + sha512.run = "dd825c533b29f8cd005b238877763ecc299f1a6d23be870bb7b899401f0aa73c4377bbed640e220faf4a1fe204dba0d94671c67ad83cb31d99eecb76e658f352"; + sha512.doc = "5e5224f11e811511b965e6f79adbab67bda5c809fdb4fadd5913ce570e34a933d139e8f418cdf7beff6e24e79443e4f4e4acd81837f24a5783915e169099e720"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.4"; + }; + apa6 = { + revision = 67848; + shortdesc = "Format documents in APA style (6th edition)"; + stripPrefix = 0; + sha512.run = "17ca4d98885f30c42c6e5338e838ea2556a2f9dcaaaaa82a4cdc0d82c9a208388f66fec45a87211720b12da193d758d662fefaa8d95fd3246f3403091b4082ef"; + sha512.doc = "244f143bdb9209482eba9c644a21b65af3a6990b5896ef079aaaac2aa57bfd4c0ae26878cf1f87d3f1744b3dece2aaebfccae4e0ebaa846944b614b76a12a673"; + sha512.source = "fae9f67a6f34bbb7ebbe06d125a45b6b2fcbb2d631f7b9731bacf2e87c87493b4e0804b9381609147000e412d2ce55e5b0e582de242ef027e0d3ac08dc3ed05b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.35"; + }; + apa6e = { + revision = 23350; + shortdesc = "Format manuscripts to APA 6th edition guidelines"; + stripPrefix = 0; + sha512.run = "155bd30654ec3a2bf3930bdad98235baa6bf7aa8109ad449aa1a7b6f2dbda37851f43978266e1c273cbd2155ed274003dcd91f9f452f2dffe268750fd0d9293b"; + sha512.doc = "d78ed178d1fbd07668bdeef74cf6f9f3674837a4f83eb5dce590762f7c02fae1017ee2eed6625a85a7b3e251ebff103e37da84af589125bdb60b73c9459cb748"; + sha512.source = "6a6502eb1a60d2b67d373fd1cb4aea0737d0eba9ed2846c07ff5849c4bfddb9ab3b6369ec0958536e831c79e63beece92393c874d9463bc7e3cc1a56f4c4ecb4"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.3"; + }; + apa7 = { + revision = 63974; + shortdesc = "Format documents in APA style (7th edition)"; + stripPrefix = 0; + sha512.run = "48765b391fc91c657666a94c4e903b3e3f93f0620ab561e6e7a29ce1c03ec52674f33dc314136a0ed35e2cec427e94b6365cfe64b1d50625f443dab6f20eddaf"; + sha512.doc = "3d55da4666c2babd231db031e6d72d4bd03b99fc89a581a3f351124956ce61b6275b2c7ced590d4407c1124636b6b2fff0a5cd5766e87ea51e4422db32288805"; + sha512.source = "f3190097ab50699cf44da16478b36953da636d15ec79ec45471b94a29de91feae603aee65fbcdcb32dadbec1e3981f3b39b7c6c483c77fb0da1922b20e056b56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.16"; + }; + apacite = { + revision = 54080; + shortdesc = "Citation style following the rules of the APA"; + stripPrefix = 0; + sha512.run = "6f69733b58f0e791422269f48b56a52ad6b131afc4ab5c7c5ad1d9e0a5ec0d84ba48b8e43340f8e1a563a0c4b10aeb131f1999f836e89f311f067ded8464f91b"; + sha512.doc = "ba7720239a221d343cc58d28a9611f731a6db21f1e7852b0cdfe0c4f0cd97d475efd83c863b14d197f2206cb2bb0d314266797376b548de250842aa008ff3732"; + sha512.source = "bfcd5139e68c54b6c35dc8afc46022ffb56101de5dac3e6ea24df372483c2ecc2e3d2d0a486ea284f2fb6b0aba4ca622080910821a27447239ec527db941a2f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.03"; + }; + apalike-ejor = { + revision = 59667; + shortdesc = "A BibTeX style file for the European Journal of Operational Research"; + stripPrefix = 0; + sha512.run = "b04f10bb77365327f326f2bb6c67347802fe6f9628644711d72b85576f59e06ec9fec168ba382a187f51cb7bc2d619b2d971d55024e4ba82d7f5e3c73f556bc8"; + sha512.doc = "a9e091123eaa359ef7ca22d47ce3e069ebdd9e74835e54dc2abbe92073edbb9989d408d5f52f5e83b52f7137b4cbc50fc38e56606f72541ee46aaabbdafb3a40"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + apalike-german = { + revision = 65403; + shortdesc = "A copy of apalike.bst with German localization"; + stripPrefix = 0; + sha512.run = "2d9094953893182276e88db622b68750a5f70a9314ae5b88ca33c8b04a3e4dbb68fa01de9e3f44cc13b41b7bd7ef9c9b618af7c1cabe58045dc03b15277da5bd"; + sha512.doc = "eae2fa13afb28c51926a1fc4aa8e8e39da35d9a6b3297eb2a1b42bd39580daaf45a782c4cbba16dba6c7a4c315873d6ad1a7b6dd61b4de06cf5628f8d381c63a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + apalike2 = { + revision = 54080; + shortdesc = "Bibliography style that approaches APA requirements"; + stripPrefix = 0; + sha512.run = "cb837c6299628a58189f33570de7717d53d83d9de456255b489ae4ef73693b51bffc2dd12c9496265ebc8cda64d8da8b1c71d46f9d96a4bc13c07c9a6e021a2f"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + apnum = { + revision = 47510; + shortdesc = "Arbitrary precision numbers implemented by TeX macros"; + stripPrefix = 0; + sha512.run = "2e155193dfdd3c88cf336cece23bc6b393a81529c31ac2535840a7c4f4a97530d35d0f4ae964e8f92856eea0d54c356e8bc15427918ba0891730827a3ba561c6"; + sha512.doc = "4e1a6ff31d9836dbb04fbd90911083a9ff70c7526ef099d437e21c11766314cc29e8071dbc21976af7a23fe99b673bbee82dfd265041b9ecd015070c58b4ce14"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.7"; + }; + appendix = { + revision = 53718; + shortdesc = "Extra control of appendices"; + stripPrefix = 0; + sha512.run = "efaf48867a45f8365755224123b9259f80f49417c409698420d67670baa969d5d354df1429fe7abbd87c29a8e89a9e084cd75384310a44d61e1f2fb7a2650977"; + sha512.doc = "f4e90fc9fa5ca89a9a20ceb56cce788984f3ce5e55f92c99de966a54afca7145d9e3602c4e514ee6b7887b3ae9f8facc9b3191ada19514aae7c7886ae2984b0c"; + sha512.source = "7e7222abea6401b749f2019fb205956c99bc3ce48134138862caead25aadce25410ac4fdf9ce10e34dbb802c07e5fadf8e4facaf846047ea654f2605b4f3743d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2c"; + }; + appendixnumberbeamer = { + revision = 46317; + shortdesc = "Manage frame numbering in appendixes in beamer"; + stripPrefix = 0; + sha512.run = "d5f4573a0f6c31be7e910512d86ee0443e713abea11e71694b58f1d1d65f4249f967aa5b873941e1d8b7686d408f411aad1a76009a3bbcb528693ae14dc60e63"; + sha512.doc = "58b32eacfbcd8e024a4cf3dcea0c1d057010dd454c1e54b6752b970a3fa1a9e10eb15d8cee9dbb9ae032aaa8b6c070079b112f5a91b1c9617df40877a4a3454b"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.2"; + }; + apprendre-a-programmer-en-tex = { + revision = 57179; + shortdesc = "The book \"Apprendre a programmer en TeX\""; + stripPrefix = 0; + sha512.run = "2008619320d2b7e906c2511609e76894dd065f8e56dd1800cfac0e13af4415dc76c437cdadcf15cfea85d7862996e99ba3240aa30d36fa70d9c1d950b7c97e96"; + sha512.doc = "34c86cf9f0a296846a85f896f31da102013dd7b78ddc11d20aca93770671f2ab05930167160d3bf6282b7740fd9d5eb5238ec70bdf405658c1688d3bbd769d7e"; + license = [ "lppl12" ]; + }; + apprends-latex = { + revision = 19306; + shortdesc = "Apprends LaTeX!"; + stripPrefix = 0; + sha512.run = "fe9c7ee4cc8cac1ed932388ff75066e4166e582f92bc23da4a4f6049f3cfd8c100d6ab6c0b3c661dd76038a9683eb3207f94f54ea338dd172027815d6945ad94"; + sha512.doc = "d65d5f56e055ac4628e8198b718689631edca80abb3593480948ee8ba3336d7baccc091cac9f95b4dff745d84d409488d3a2032a1587f1f1a5db186af4da1413"; + license = [ "lppl13c" ]; + version = "4.02"; + }; + apptools = { + revision = 28400; + shortdesc = "Tools for customising appendices"; + stripPrefix = 0; + sha512.run = "05d243100c9fc575b7828e0084822fdb2c655f5d2d7c51b42aa3c5ee4d127f62f714affd1fa8e94b7c0c322b57a9fe1728d1829ed7f18d75b5287a673d580cc4"; + sha512.doc = "74ce416ef14978e0418754e3d2e2874ed07a8fbc6be90a1bf7dc492f191546407d7a967efb1306481d1b88ad296faa1194dc4da8975f7ac0c4e4053ccaa1444a"; + sha512.source = "ffbce0419baaf512bbf8aafae3a8bdae5456f9ea1699cb48b6ce215fd8c4d84dbee84399e8799fa5ca161a1e98375acd16d196c9ca6c505c7923aa7fab49e0e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + apxproof = { + revision = 64715; + shortdesc = "Proofs in appendix"; + stripPrefix = 0; + sha512.run = "69d21b2d0770baf8d29583e383dfa1714d8ba4d87d65c2f6590ac6d2f5df2304d002490cfededb38eae043ab1cb2b23d7c67fa7880c4e48654f2a34aa9f853bf"; + sha512.doc = "2ba3258ee71a0776ee27bf4249288b12d92b7cabecf1601efd9f1855f5a058b9c030a0d4107c026d8362324de9240350e65f8fca1e76ab5e4ebfe718b37ed27e"; + sha512.source = "32995f9080055dac2fe74e1c9d65baea4dd824098d1dc1e62232c13c4d67226e0c9cb880f5dc801215a97b2db7a6c665cc7188f42265416c8fc136384c3fa34f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.4"; + }; + arabi = { + revision = 44662; + shortdesc = "(La)TeX support for Arabic and Farsi, compliant with Babel"; + stripPrefix = 0; + fontMaps = [ "Map arabi.map" ]; + sha512.run = "6f59ea8c986078f388f4c8f067b12863422728cb1a56464ece4d793189bf0e6dcded476a3b86317c2bd5f9b4b3cbc475fd748c2ab9bbf60b3d8c8cd4c162ea62"; + sha512.doc = "c851b0cca46b11d7297a03488cc72adafb6409e0406de809a1a18d4993068702f03e17cbeda1399914005c9885108d747c844719764145c746b2a0ae45d9121f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + arabi-add = { + revision = 67573; + shortdesc = "Using hyperref and bookmark packages with arabic and farsi languages"; + stripPrefix = 0; + sha512.run = "8a9742a1499082ec9ecf5082f34b194e572cb94a0d0b6a3b1d6b8a01edfb9b3b53d42e3720b85fc2dc654d06b3641b95d506eac8cb393bb9ef21dc68c70e5adb"; + sha512.doc = "c11ac1fa2b8dfd619060efa36f81ed0ae6d0e1b976c08894f7115d960458a812496d5ce4f8270350ead90a5a1614a8a61cfb98568a1e28d414fc0c5b370690ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + arabic-book = { + revision = 59594; + shortdesc = "An Arabic book class"; + stripPrefix = 0; + sha512.run = "ac60431be9ebb42e2329c954805ecaef988bb6724eba7638ace659a973de3de9dbffc9ee85b2847531c3fca44e97e7099b1d9412ec754d9d27bde1432480f133"; + sha512.doc = "5ed647dc625397baf5db5cd05c87b2ce5dd44b4acf67ff6337b96989aaf210775f3870b5f1f376219cbbce96e486eed5dd24dc893684aeb7d3490ae62df15f14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + arabicfront = { + revision = 51474; + shortdesc = "Frontmatter with arabic page numbers"; + stripPrefix = 0; + sha512.run = "efdd3769bedf8ececd7f71f6a918ed19f66caa78b348238b34e554698a5af6ae5616bad5cc494c970cd8e12073f1c27ccd1cfb7ab19ea263b5cf98061c42ccf6"; + sha512.doc = "64eb067784cdb56915b45e80f1666347bcdde06e3711a18cef16ae92450377aed236cc32c8c10d467d50e77de31a3f599abe900f411a510574378e63eb923862"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + arabluatex = { + revision = 67201; + shortdesc = "ArabTeX for LuaLaTeX"; + stripPrefix = 0; + sha512.run = "c235430d724495035832ca32fe838ab5d75d48d2d68c6c84965f5fb7e5c65098356513241c82e95b6c6d806328c0272b775c1aca963df02ce2540052d62b312e"; + sha512.doc = "d625d9d23d73a4c261c2099b77831dd1b60f38211a4802a3651e31f65c5d278c3cc3db8469cacede81c1a105cc6d4f605a5a9ef764b6171e4fcacf515a1080e7"; + sha512.source = "260d4eda4b79f727bf33327953fd0effe33f12272d293a2fcf6d8a5da8ef918d42220effedf20a29e5d4f39449b461398f15b08dd1b73522666cd7a009ece904"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "cc-by-sa-40" + ]; + version = "1.20"; + }; + arabtex = { + revision = 64260; + shortdesc = "Macros and fonts for typesetting Arabic"; + stripPrefix = 0; + fontMaps = [ "MixedMap arabtex.map" ]; + sha512.run = "df47df09eaf935bd8921d8ad475190fe6651f1cbf198473ee82099242b6f4cd63ae5873a2b2fbd7a75a4f9ae77f5ce3f56ffec0e668fdd649c4d3fe051b2ac68"; + sha512.doc = "a73aed53cc1cf4f5600312f58e0ae8a29c57fb04ebc87b91f13526c780567a5ba076a0b63b0abed791880efccffcfc52bb0f43131da4b8e2a60b48184d2f66de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.17"; + }; + arabxetex = { + revision = 38299; + shortdesc = "An ArabTeX-like interface for XeLaTeX"; + stripPrefix = 0; + sha512.run = "7c58bd94b780abc5bc17b4218229d289797a155a8e98cae8e22825dc7d9b12c5514de01b12bf2f645047dafb13b4d519d463f4ced60f7ac53a65c6aa38cbec86"; + sha512.doc = "0dff3162a710b458b367bb4ca587d525b68ac79d2d3182e8b9d2ca90ff72f89bf69153960400c344511449c52346c329b8a34eb788e11ed9a5319bb6bca89418"; + sha512.source = "fb29b38d69d39f4c7ed04a3ebb114e49512abbf444f36fcd02dcccfdda22aa3800521c9819696c2828c46983f8266fc00aa59cafb35e26574a3403319d364d64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.1"; + }; + aramaic-serto = { + revision = 30042; + shortdesc = "Fonts and LaTeX for Syriac written in Serto"; + stripPrefix = 0; + fontMaps = [ "Map syriac.map" ]; + sha512.run = "6731d62d8a24c9f0d26061b8b2574a880df30df333fbe16408d0830657ea36f04f50c56b574de5eb081f490a4c5782595fe17bdb9208b6602c1a0ac81a1f10f5"; + sha512.doc = "433018891123aebb201d6c4f2b00dd15a558344b758899f85b9bdc21556ad4fc4845ce72084863b243e42beba643c5ae4dd210b74e2588af4825e3c83d6d7997"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + arara = { + revision = 69878; + shortdesc = "Automation of LaTeX compilation"; + sha512.run = "c18444518e8cb66b44e49cdcd944895b0667d934460d0146940c87813e0c9a372fb273882ea1de78d4fc869d69ffb2ec1a41d863cd977891ce7937134464df73"; + sha512.doc = "372e1053717395e960e2447622d262ee2b07594823f39fb845f5640d730a3590441aa5dd509e1f61be00abaa6df3ad20e953c66b7c27829d25b9ac68d0aa4423"; + hasManpages = true; + sha512.source = "0cd47d01d950c9ab685264027ae92c978a5539dc67b937d25e36a60e2a1ae50760f1da73be7e39132d74e5e4ea751c0a7ad9e9e00097bdfe270d235d87b64502"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "bsd3" ]; + version = "7.1.3"; + }; + arara.binfiles = [ "arara" ]; + archaeologie = { + revision = 68476; + shortdesc = "A citation-style which covers rules of the German Archaeological Institute"; + stripPrefix = 0; + sha512.run = "02768eb18bd866522380974e675eae530afaa9f0c0baf4e4dd6e5c0bcfef3755a54e79d9be2697b4e29cc633ec87c65179561d662cd99406556d3a66940b9199"; + sha512.doc = "60136a2704265de25c0097e766fb50d89019b01524edebf6986db2c465d8dd2230f5d48ed5fa7b2d0c6f1ba5bc11dff4d2a171667d7743ad3d883e068c318864"; + sha512.source = "0625c3bb08909e367a908f5f12f9f2e064e6beb251e7e79ccf0ff7fd15639e89040b4a3ee45cf28cd11b14559c1f1660812b78cca6d8dfa02796f9af85290be0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5.0"; + }; + archaic = { + revision = 38005; + shortdesc = "A collection of archaic fonts"; + stripPrefix = 0; + fontMaps = [ "Map archaicprw.map" ]; + sha512.run = "5e841f4a8e5df375fd660c998d3d54221e6c8e383fe4a69fb082c98d62b44a1fab2e9ec88db37964e015abbc20cd0f2af5aa26cffd4fd92fece5e24661c0efa5"; + sha512.doc = "457eedb06a3a09a73a2ce0b20c18b643530aa2659d7b1b98be14238b9d40e8a6bdc39085654e8589fb134921f40d211d93f553cab25d7901e40286b3075f268a"; + sha512.source = "5a39568546651ef10937849550c3305bde9379737b21e24b2adbec532dee8192ddbdaaa77f2e6bc135d518f354c1b20d7c43bc03f65ccf47d423f4af1e75d620"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + archivo = { + revision = 57283; + shortdesc = "The Archivo font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map ArchivZero.map" ]; + sha512.run = "0f6b7985d73ba3e62874bee7a05c215cea0008bdfd1b0c3df6795a2d6363ee2a209df956b4f9698ec93ee8d9c6bd62ab5bf3bf19cff78c968a97da58a80b5f40"; + sha512.doc = "88cf002d557401730c035727251e228effdd25d52e9d76edc950d0f3ee639e2eb5bf623c77a4e80dd902b7095076030b32aa017c8adea9f57912ca9de51ab7b0"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.2"; + }; + arcs = { + revision = 15878; + shortdesc = "Draw arcs over and under text"; + stripPrefix = 0; + sha512.run = "65737905ba0a6ede74d8cb211b46a2e62b640d1b655f895095ad4bdecefde496368707142143e2f2e48849faa89d86a9e90a0bde64fe84b3c828e14462f30406"; + sha512.doc = "2cf72d4ec304cfa08c1b3cc8df3bd9a6cb92a633a2ab783ac4efbb5edd6290ba256c86bc4a3bbc09d923a58a10e5f21f5d8e3e2b41b0ddce14406d29405523e0"; + sha512.source = "ce6599f074d59530d85960b2a313421400f1cbc26b488e900a5b49d75f6b715a859b36de2d2e25c880407950f1170512cc3573b0256d69ceafab40e29566de78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + arev = { + revision = 15878; + shortdesc = "Fonts and LaTeX support files for Arev Sans"; + stripPrefix = 0; + fontMaps = [ "Map arev.map" ]; + sha512.run = "8b6e88a41052740831fdfa03299f665fad9eaa0e45d1d235392aa0b849bd6ca03f1e18892c879d3a5289430a5d236b9544d617ea2c3af62a59b38b4d7ff8ce90"; + sha512.doc = "a8dcb8bf0fff3be9c99550623f12651df09b151d6e28bee03d7aa80c7b0eb8c86603b4d8037232e4998bc5603ab3dd368ff7a262b7c7f62f2903338774a9b8aa"; + sha512.source = "6c92c2f3ef59dcb93207ea90643d11aa8cf81850e2696414f489c40cef97737d00ee4444893669f12d4592c6573a71cb229c232b62f10db38195aabbe83fe523"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + argumentation = { + revision = 69023; + shortdesc = "Create abstract argumentation frameworks via TikZ"; + stripPrefix = 0; + sha512.run = "d18f62c0c6c5cef4f85b854342671ebbc9224475d41488058543e682e41230f61cea4ecb68db767742c30d92ae2af1270ef47624608a3fb93aa6f8031b12648e"; + sha512.doc = "bd6e12905e35d15064a357a248f4f5dbf5d91e37d0e742be0cd360e7d6079122090f29341acf11584ab563355481aad7edbbdfe1fa6b2455aee2b67e263dbb6a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + arimo = { + revision = 68950; + shortdesc = "Arimo sans serif fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map arimo.map" ]; + sha512.run = "3c84fc274ebd29dfa65a8db214ef2ea74bb22da21827844be3b5648b7f10cba81a73772ccffe758b19ac16e58a75b1eb578a0ec8e85957f9693858065665a085"; + sha512.doc = "dc70491f5b2b5a900f3d6f9bd543974b81976907a7c3dd53fd7530e3d0a6d83fc44a61607b27d9644eeca6f6228faa171916e67fc7517c35d466d9c50a186808"; + hasRunfiles = true; + license = [ "asl20" ]; + }; + armtex = { + revision = 69418; + shortdesc = "A system for writing in Armenian with TeX and LaTeX"; + stripPrefix = 0; + fontMaps = [ + "MixedMap arss.map" + "MixedMap artm.map" + ]; + sha512.run = "7acac8416e424db754f1e02844e175dc76c694d46efa30e1e29d855cbe3ffff1a50b95c38e2de2e88944bb11920cdf2295254b3855b5d6e13bfb930665cda8c2"; + sha512.doc = "83b050d9bcfd2d4b7ff54458a559401ecf5abfb020c39b7b7c29f3fe9cc656980a63354df549ff4b93ec4ffb382e60578d5657c268ffb7282dfa5e45fc66539f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0-beta5"; + }; + around-the-bend = { + revision = 15878; + shortdesc = "Typeset exercises in TeX, with answers"; + stripPrefix = 0; + sha512.run = "8fdfb83017cafe87778ea8a9e7147d6b73ead7019dfc9dc8b620858a67a2a02991e291d622aefc77723f6faa8a66b132313a100d298a2f6327473df4e0fb17f1"; + sha512.doc = "acec7325203a96ab3937cb687e3265b5cdf6d77af5740e1e187f993fcdcbb9db743835e9ab579b6c8b0534311ba94f3d1591330bedf1c2f9eb9e6955ad070f9c"; + license = [ "lppl13c" ]; + }; + arphic = { + revision = 15878; + shortdesc = "Arphic (Chinese) font packages"; + stripPrefix = 0; + fontMaps = [ + "Map bkaiu.map" + "Map bsmiu.map" + "Map gbsnu.map" + "Map gkaiu.map" + ]; + sha512.run = "2d4c0f91dd483df95bf91056e4d7cbc28b681fc9f42704cdbff297ceb4f8110affbed879cc8b15061c309764e1fdcce01fd47c2d742df441ed191f83a065538b"; + sha512.doc = "327dbc2cc7b4bad5e410dbb07dd2a2d5052dcb54c98310ffc3596c1e5b4121c1a12e3067b7074f209a3972cb51280f057cfe718eb963869bf05a76e17c528dee"; + hasRunfiles = true; + license = [ "free" ]; + }; + arphic-ttf = { + revision = 42675; + shortdesc = "TrueType version of Chinese Arphic fonts"; + stripPrefix = 0; + sha512.run = "f0559968e2659a4e899bb0ee1e6236f4bf7f4133c96c146a189b42fe0ce7f375ffc5c62efd8acffa68b36c92159c28eb54167a7625b606cf7644c0a072d7f8e9"; + sha512.doc = "000030c21bf1ccd74ebc1c6bf8e46dc5d9f884480b2c31407353a3ff45a4d1072f759e9e31abbe5c9de7dfc68820fa359d42c5e980bfb7e9d408f015f8944aab"; + hasRunfiles = true; + license = [ "free" ]; + }; + arraycols = { + revision = 68277; + shortdesc = "New column types for array and tabular environments"; + stripPrefix = 0; + sha512.run = "faf429613ee1987b92b369dc357f376c1465531cec8f7f78c37099366fa80954930afd62c553760b71a2226b0d245d9ad9664f4e5383803471bcf4f63f419f7a"; + sha512.doc = "6bff5add83a6eb8f0c697bdfc5da076c5a833e856abf0b023002a50a85dd1a7cc24e0cd042a2fd28c18a37a88ac91f4f09a5c4f2911cbba30026fbc03df06c71"; + sha512.source = "9fe04362a179851b135af96b0eed0d229d19f2d4623acbbc39dfcef375be7dc682ef08af3fcbe146d7ce738cbe8e7e00e9f72d549966efa674433e3024738ab0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + arrayjobx = { + revision = 18125; + shortdesc = "Array data structures for (La)TeX"; + stripPrefix = 0; + sha512.run = "5cf6573de2bf55c1b75c2a0f38515ecde848dafcc0e5f0e77185ac039d0bcc4049bf6fdef62134ea5e4839570fc20cc6928bc9357bee0c4396f08d714eca8d13"; + sha512.doc = "495f7f8f3265e349e16ad170eeda10296926864084ace743df54f5a4b304da6bc344bce901edc0fca8d835bd0f90943b192b0e16e3a8f5bc81e0f269f2b480a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + arraysort = { + revision = 31576; + shortdesc = "Sort arrays (or portions of them)"; + stripPrefix = 0; + sha512.run = "6dd3c6a79c7b7e1f9a0fa29f2d7f4fda8c3aceb0b900c4e42773c81f8a49e84dd62ae24027065cf19cdff93d4addff11d0b25cde62f2d4854b84fec26eb98c61"; + sha512.doc = "1070b880c7bfb6101fa9294ee8d1ab4c61b21af41316ab711c3226173b73249944533cf0594571f90215a46322b1ef07322daf7230d95e7c23bf21650e1d6047"; + sha512.source = "a8a5d1506a5cc9a33f5393ad6dcfa7ee84af9de69d0760d90fc633391cd21f6d274995e372d91f47929b098d64ab5464d7d7cc2454266bc52972b8708e3bec98"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + arsclassica = { + revision = 45656; + shortdesc = "A different view of the ClassicThesis package"; + stripPrefix = 0; + sha512.run = "9c6b32e43ff86bd6f28d23b9aab5dd90a423610b2f3c842462e88985c2ee88eec2e78e05cf3e0b91397009bdd370880df6db642816d7de3bb10a96faf4fa34b2"; + sha512.doc = "84cd0583c074af45837f38c21815019613753890e056109abab3c79c774a7ebe966c35875264998398b18d7a7fc92ac6762dd72726e708193f699e321f296535"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + arsenal = { + revision = 68191; + shortdesc = "Open Type font by Andrij Shevchenko"; + stripPrefix = 0; + sha512.run = "f103fff41a3e21594134b9902064001bb18e0c85985ebc99486378c0929d11eb3c12f00e7e23ed254029bca78adb2061575c48e9406fda890eb732b3cb90f096"; + sha512.doc = "72295197eca81954e733409239b4cc13ff9ae87f5cf5c402a8d2904edf2e3fb6686fe2a0ea8bbd4d0e2bc0498507c47870ae1ac3cc2d722713ea4b952613a345"; + sha512.source = "214ebf080bbe11aa5c3fd088b6329746202ae1c46867fc6f1ac23d56ca22b44b147a8e929eb895c86834d6d3117bfc1e447e3759db9b73f4ba14b824a952b00f"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.2"; + }; + articleingud = { + revision = 38741; + shortdesc = "LaTeX class for articles published in INGENIERIA review"; + stripPrefix = 0; + sha512.run = "30a34052cd9586d4b49d687035ae8bed040cc5bc2d9ebc0d96a035c4c7cc06625877a501e02eda9be5eb79643f009ffa9e8d2bf9d7affecca016ef3c6310a6de"; + sha512.doc = "a7961a7ce16613d26d714d39bc441400cb37d7013d03684146ee9113d05dd821a23a1eda9f7e89601680959f3b473e31155f24003b5deaf60e069385c0681646"; + sha512.source = "1217fbf4951d4e6a11378154cc030b4fa18e7ca6384bd1593e9a8adfb4a4d2a3161bace28c22bd4aa4ba81ff56d1e2d1252d9678ded0c53f8dee6294e8dc1032"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.3"; + }; + arvo = { + revision = 57213; + shortdesc = "The Arvo font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Arvo.map" ]; + sha512.run = "3a6236c3f5e07f3ad709c6a5e0f7d2c90574cc897f6f5d470aa1523b537370587b5942e1a8c581fd96e43e80189fb1c7c4a2475823077feeb929ec594a90ffa9"; + sha512.doc = "3d3c6a92159b47e8dd5ae7360c06c8d5db8ccab609dd5f3db47db2ddc9d62badc3e6bd7c881ec5955003ac2b460c550ce56154cb2323ebd2bdb8205318a709ce"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + arydshln = { + revision = 50084; + shortdesc = "Draw dash-lines in array/tabular"; + stripPrefix = 0; + sha512.run = "fd676917ccedc39b90b48b531ea4ec5098b70ca854583a3266d4080dc78f59e37a743e63b738be370cb0ca650594d0878ab1f807eb6f55daec17ecead73aa4dd"; + sha512.doc = "a809e2abfd26b11edaf8a5b23ddf01901f84bbd63b8fed7b6050a4947654ffada95bb697e13250038c6fb93db80dee4faad6d4493f05bb7f4ebb86dc7e9b9698"; + sha512.source = "0be560bb0dac65951b177a34ba45c8199cbe75b64958b71649f09e5e7be73fe091bef6097a9502be80e26bd415f193e00579925b0be0d12bf43adfc0e3963578"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.76"; + }; + asaetr = { + revision = 15878; + shortdesc = "Transactions of the ASAE"; + stripPrefix = 0; + sha512.run = "b44fbf1bb916eb9fb01c70a7302ef4028d04c84dc6a89a51c0feaca762da9cc95cc03cce6497e96dd64ad73e812fe59a12adb515ff4f561401131476e7df6214"; + sha512.doc = "be0cd70f1b3035477a9b455328a8e167a5042e07634913c0d9efb995286165a1f41c1b86a505b3f23d19ec2f43712328f70085747d692bb97ea968c40ed109b6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0a"; + }; + asana-math = { + revision = 59629; + shortdesc = "A font to typeset maths in Xe(La)TeX and Lua(La)TeX"; + stripPrefix = 0; + sha512.run = "2bbf3e139418db06578af5fc8d3925d96bbe1bd9d472a82d428a059b1a206db131734f1b0e762ca49c896f403faf279b2e47465061dc5bcf0eaa8058474017a3"; + sha512.doc = "86b064ede8b8d77b9722d967de612e4a0e8758a29a6a3909b625fe2fa8ebe9551359a442376e8ee8a9dadf5d295d197328914411144c6f94e0b0fe16692eb128"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "000.958"; + }; + asapsym = { + revision = 40201; + shortdesc = "Using the free ASAP Symbol font with LaTeX and Plain TeX"; + stripPrefix = 0; + sha512.run = "9a683044f23fdec0547199afbc0f0c6c9de8faf01f09df38de324f53e91f446de867e951e187ec77bd63cc65bb92ba2fd7bc290d54650ce24e02b682cd10a941"; + sha512.doc = "4462b37c6575ba0f3e95c29e1d84eafaadc562da19ec58a604bb6ef677fb9b9d35fa68a6f2c81d8dafc35dec9f904cee9d3fdfe0c2031de928862324e83d8663"; + sha512.source = "54325810653a14ba0ebe67b92341fa151e5bade3ba23e97c67c2bada6bf43ab16d5e0d11eb4c59075c48bddd9eebe44ddbca5accc331e6b26081abbdb95e3e86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ascelike = { + revision = 29129; + shortdesc = "Bibliography style for the ASCE"; + stripPrefix = 0; + sha512.run = "d8c9d69ac49e632b7b303c0fcff53762f6d40a490aa1655f58525e192481b65b50912867b1cb16c9aba1d93483a6a2bd31e586683819a7f2b3db7439d46deadc"; + sha512.doc = "0283fa497b53dc3a0d60960bd45945dd9b363c53a563139e911b8bb017a6f0ea7f46a95811812a679fe1ac5327c52e73f4aba35d26160041c61a1cb5597c880d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + ascii-chart = { + revision = 20536; + shortdesc = "An ASCII wall chart"; + stripPrefix = 0; + sha512.run = "ffc1634e3e5313eb0cf04caaa227d6477cf81ba9b6eb887b2897b6740999f1f338b2dc53e6da735876f9c3b130394be59b0a285309d61909a73fdb0d6f28a8cc"; + sha512.doc = "51b11a22dd963336fd93a87e2948d05f291b4191253a474b9d6f70ec31a2645801fb5f6fb6238f6a9b2979dbaba4a6ec8ac15a41c4e8867645dfa54408f18373"; + license = [ "lppl13c" ]; + }; + ascii-font = { + revision = 29989; + shortdesc = "Use the ASCII \"font\" in LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map ascii.map" ]; + sha512.run = "e92e312e38432a7294c71a76604e5a3c2aa6b65937d39933fcbc9fc9b61e00a1e2f35ba739f64c29a3ebf6d2e388cd29da384a2a6456f71576101a1f12e36f0d"; + sha512.doc = "2d681a41d213fe260e3491a3b410239fa2e025ba19894d133a27e47b417ccf27648aa13ae431b4c42549c1692cbe517f2595c2de675b14d9ea0460d469e4f036"; + sha512.source = "1bbadf44599ad29f843ef17d1b437f951f5b167e9bf84a73600a0a9dc5633d94d76c91ec23493250ac894d9114c1b2d1d1f182690aef5dea92c9ec51c96e69a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + asciilist = { + revision = 49060; + shortdesc = "Environments AsciiList and AsciiDocList for prototyping nested lists in LaTeX"; + stripPrefix = 0; + sha512.run = "5c2e7938a9d2df31477cc976cfb549103c8f378a8d38a3624d3449229861fd834d462163df6e2e1f1fec686f513c6a194ccae9fcd0991820b357e12a1c32af28"; + sha512.doc = "8602a9f8e5dc04a6d4a914f603e04ced8f5cef55c5a335087b8f0953d19d4641d43ef732ce299ea18590de89e2360a8dddb44f8ae76be6498ccfd29e4a680746"; + sha512.source = "562efdf7665916bc124f8d2ada2d7087ffebb23885df6c3baa652ef24b8fb7ba7e2f4a5880922066b9f5c44bdb9c70ea67537c79676c9fb7004d2ce1f6c0d6b9"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.2b"; + }; + ascmac = { + revision = 53411; + shortdesc = "Boxes and picture macros with Japanese vertical writing support"; + stripPrefix = 0; + fontMaps = [ "Map ascmac.map" ]; + sha512.run = "f03ff628aced70ac2406863aa4b23eac26cf47fa09ee377ba78a8df3af633ac1f3fad8d005022c1555d957ec9d84f98eebf2dc97b296713a2edf5f0060d4180e"; + sha512.doc = "e35257d0992717350e78e611f31f864651a1762dcefb76ba60510180de177fab02f634423b0f3c78c03394fe0eeb6191db0d534190d4f168922263526a85b1b9"; + sha512.source = "3613b89f600ca51f1234f711816d041c4a3c58f72217b299505d90d0b7316606b3015c43edf3546fe93625dc628f232179ddcb0dce7a2f26375b93af7e6e7171"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "2.1"; + }; + askinclude = { + revision = 54725; + shortdesc = "Interactive use of \includeonly"; + stripPrefix = 0; + sha512.run = "828a18ff7c2d997f25b46b9ce8626a749ce1a18989a292f7f44e9eff0c28d5819e6e017398e76a6872da6498a4ff8306d8f8e701b87b80f57f455d28389f7aa8"; + sha512.doc = "a06a9170ad1637c35a25c9a0d89f3721ec350a0053cb5b85374fdb5cc67e7d4653e75c2a5f9b47d19700e3e9ab2d70e5c0c419f68715e664185bd30759dc0291"; + sha512.source = "909effe3b7569cdd4a4a1fd7db12cfafab6c1ddc0987709199a051696b447f9b57ea0bece52efc28f41f49e2b81611e14e975cf93a2d5e4b1c202f84b9702569"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + askmaps = { + revision = 56730; + shortdesc = "Typeset American style Karnaugh maps"; + stripPrefix = 0; + sha512.run = "0f4d91a15053d40d329744c429540075c33e2098f6d9d07eccc5ad16c5696233dd01de89c61a7090dc127c3730ef04e24f8d56845919cd268ec8c0bc68d9c09f"; + sha512.doc = "268915d685c8bea4388055487ca0d30418557babd01547457449085e58d639bb17787b6b5c97fa99301555afa9d9d11754196cd2b1dbf48b642b05a835b383b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + asmeconf = { + revision = 69742; + shortdesc = "A LaTeX template for ASME conference papers"; + stripPrefix = 0; + sha512.run = "93b55a406a9b7b1e652babc788f9674ba27f29036aa16c25a3e531ff63077588807914d23c865eba55f73fbec04c3254eae837976591481534f773d72412833d"; + sha512.doc = "2c70973dd40e2afab5bc777c6a7b64d3c86a09e15c62b2f719410de6d05925534071e91ebdc482928382602d49d54b3ca342a7886234a15ed3b54ae761f51208"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.37"; + }; + asmejour = { + revision = 69722; + shortdesc = "A template for ASME journal papers"; + stripPrefix = 0; + sha512.run = "11e65ea5fa72880c52c63de1a7214de9322c26133722eed08bd54fba00f58f309f4d1a7fcb4a0112c1d66ca6be5fa3868f6779de8c47b660a143bc61855a47c6"; + sha512.doc = "3af8026c3e0a77ca0f4ba99901577d253ac139fe049363994f56480cd6177524cb7a7dd5a4c59f436620a089ea08f2faf048957a2d2290800b71bf8a43d964bb"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.22"; + }; + aspectratio = { + revision = 25243; + shortdesc = "Capital A and capital R ligature for Aspect Ratio"; + stripPrefix = 0; + fontMaps = [ "Map aspectratio.map" ]; + sha512.run = "1447c3037f5477aeadfe3e5fe18a004ffa1b8c5c18b7c68295b8065e32c5a3e6a044e7f9868bafe3d8b81e391b2c614e2153302ef34e1e4aabe84c92ada2f129"; + sha512.doc = "5ee4918a3d90e9e4b51a2985352133331b77a8a87bdd8d41fab9348e5c548670ab56b5f0afc63756b65fdb6e45aa7594335995ac0d146d542b571eefbaa84d78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + assignment = { + revision = 20431; + shortdesc = "A class file for typesetting homework and lab assignments"; + stripPrefix = 0; + sha512.run = "5b8ceaa313eccffff8930b4e1896c7aa069664244623baae2aa1eb3555786dfeb8af8245e56ca149754093f6d74d6b86c891cb9e52e67c7b76e2501ac206658e"; + sha512.doc = "49198297494adbb538385029d41681e55bf64c89fc9cee7d923b7ba9849c039a7e5aa2c1fbfc15f06c1a93a3b694899ffd8988d1833fd88c6f5dd51379289a14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + assoccnt = { + revision = 38497; + shortdesc = "Associate counters, making them step when a master steps"; + stripPrefix = 0; + sha512.run = "24dd03f444ff4dd627a97840837cb14288e9021117f93fbbdc4f79cbac9cab46d43fb93769d2f05970eeef3fafd39692eefe5d1b7bec8ae04f6078d7a4b48824"; + sha512.doc = "195f1f017fe187a224bde969f45b6494007e4d05ab2e8618b62e8d40055b4ef401f5ef069c3bd1af25f8a9f5e1ad1cba22923e4d615d4f075e13a78a06752e9c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + association-matrix = { + revision = 64845; + shortdesc = "LaTeX support for creating association matrices"; + stripPrefix = 0; + sha512.run = "6b87d01d5559669f6e2d63fc14427d950eba9d790070625cc6acaaf6e308282b7434bce90da78a41858b068121b75a1e1c0ec4453d287aaed94c9e6308a1b5ce"; + sha512.doc = "e56de37acf6d8c2b53aff0aa78999dd400b18b3bb44ea40f21a7638e463405ce4f48d2041236897f7a281099c1c5d879ffcbda9d6b08d2b0d5fb83193803d157"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + asternote = { + revision = 63838; + shortdesc = "Annotation symbols enclosed in square brackets and marked with an asterisk"; + stripPrefix = 0; + sha512.run = "bb1939b53b892744c323bd28f84cbe07d94c30c3f824e9d611f8b044fe8b9b07990fe7709607e7212ac8252d6eaef9a989447f270e26f16e074af0b9bd92cfd4"; + sha512.doc = "31b443d1ad05880fa5c6878fed144a2b1cf20fe855188ca8d879c5d18b7285f16dceb76b2ab7dd6be2f401b898752a674f810af6d3b9ff906a6cd75a80cf51c0"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + astro = { + revision = 15878; + shortdesc = "Astronomical (planetary) symbols"; + stripPrefix = 0; + sha512.run = "8cf59f7de3ea5add30166fcd4284279582cbe6199bcb1ebd540688d03c03ccf03aa740602cfad11af9380d970ed7009e6bfb4e96c56d26036f872e82c02739b6"; + sha512.doc = "df4a06e10e9a438393c7e22f746618c5d760a6095e285acd0b2918f58e234a1eeca9b49597d381a113cdcbff0f13e4c7108b9b400afc81e81757f4400ea484f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.20"; + }; + asyfig = { + revision = 17512; + shortdesc = "Commands for using Asymptote figures"; + stripPrefix = 0; + sha512.run = "f067e6aa1f3cb481e07f59781fb7d4c671a0b21a392ca7830d7fa19ed7a198fefd5ad5104ed3644eed484100871f9a8d36d1ae6e31d55487e4ff2846df618e9b"; + sha512.doc = "d798066b8c545ef385a75c81d431c169668bd10ad072bc3e0ef1db7c0df903d51e9dd9ac2d482d109b421a868e9cbff577c18f52a7b4520b32985fafcddb66ec"; + sha512.source = "0a62a885334ec00b04e47ce4df391d170f286cd90e7d68d940d0f3ec09018ef87f49ca793508592cc92268c1346ae48a54be65ee601f2dad7dca82778c9f7e39"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + asymptote = { + revision = 70583; + shortdesc = "2D and 3D TeX-Aware Vector Graphics Language"; + sha512.run = "8c147b714c3e57c569d9d93815ab6ebbabbd9be3a24b0dab724c32075d51e42f49f326de2babdfa6894056948e5904ed1b86cef88742d000e8b4e6244be868f9"; + sha512.doc = "a81d20288e4c7b30c50fc32e5e28a30b5fa81ad01564c5935489c2b8e4749bc13871d7551927345452315d18f81102232ba35dc3de2a7415bbfb14d7fff12d83"; + hasManpages = true; + hasInfo = true; + hasRunfiles = true; + license = [ "lgpl3" ]; + version = "2.88"; + }; + asymptote-by-example-zh-cn = { + revision = 15878; + shortdesc = "Asymptote by example"; + stripPrefix = 0; + sha512.run = "34608d6412d7936a15bf649555683ff03c5021e1688c99285a6b7ecdfc3a43eac4ed32108626243d6e9b07c23c557f07762897a96501a27412c7c5d039747553"; + sha512.doc = "a0087e5be69962c671e1972d9e7be12f76be64582182afe042693cbad92cf3fd027422c605dcf7860cd2e61f0b925860a50e94523b9ae2d1af7a8aa6d356c3a7"; + license = [ "gpl1Only" ]; + }; + asymptote-faq-zh-cn = { + revision = 15878; + shortdesc = "Asymptote FAQ (Chinese translation)"; + stripPrefix = 0; + sha512.run = "1efc7098392ac5cad5eeaa0dcf527bd158e3f7497ff1992603b833ff63d5cfa61fe5e7bc33c5cc0c441c13fc03dfe1e18a334411be6ad2f5acc94c902e9ccf2c"; + sha512.doc = "b7dbcf256cffae9cc8f5027934946929b4be7a8794fb8364892802eeff4e7cf970ca8549ef442a35f173ada61533b51c2da301bf2ce931107a7ce0c564ce0c60"; + license = [ "lppl13c" ]; + }; + asymptote-manual-zh-cn = { + revision = 15878; + shortdesc = "A Chinese translation of the asymptote manual"; + stripPrefix = 0; + sha512.run = "c04fc953a0a9035c238b9f80873d9fc605b23b322e898ae55b8eda7537f0172076e512022b163e3cd397ce2e4e721afa2e981454db53511c1a7347a017185df5"; + sha512.doc = "0f82e25773a14b0f81b34354f16931834d0496b2c6636c498c6af686f46e7ff93a274739a1a4c189433c9df1ae91ca010f0887081c81f2ac9006a105c7fd4ac9"; + license = [ "lgpl2" ]; + }; + asymptote.binfiles = [ + "asy" + "xasy" + ]; + asypictureb = { + revision = 33490; + shortdesc = "User-friendly integration of Asymptote into LaTeX"; + stripPrefix = 0; + sha512.run = "a1ab37814223b13bf49d23c527543cb537e2224335e727e07e1f645a7f76a2f3ba1a275073c775463880b0e258e716b6b00d0df29ca944f1f22b3ac70aef4378"; + sha512.doc = "68b060950fdad080061b8d2c1a91726d0eabee9aaebe322e983e0dab81df30c65d9d7d0cf32fb2847f504ede155f2c43f3ba8c00073fa425bddcfe7d47a6f000"; + sha512.source = "883968dc538186507f4e81a466dd980b8a8a3ec088e25e7973c62e949871c79baeb909ef64815720004d503cad33d7f9de6c7ca0950cc0618ad2111e92870b73"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + atbegshi = { + revision = 53051; + shortdesc = "Execute stuff at \shipout time"; + stripPrefix = 0; + sha512.run = "7e03a9a73d8790f6603d53c11aacd01fb7108546e2d3b6ddbd5fce1e42d68ed9c23dfe41794b943eeea67ce0c598851132dd23faa95289789911cd059a8caad8"; + sha512.doc = "8f6402dd0f36d4cc4a4674c0d0b37f012a7d6e557174ca3b58a7a2b33d89475d1e47028cc39d2b77c496bfae0751275369c5f4f49cf53b8c36fb60fce47a6bd3"; + sha512.source = "8eee629abbe71332a00a7ffd41f8def262baef4bdfe9e314a4afa90015b30c77e291634f3e83d904646cdbe4820e3c6e0e6398383892ea26f62ad348ac2f3409"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.19"; + }; + atenddvi = { + revision = 56922; + shortdesc = "Provides the \AtEndDvi command"; + stripPrefix = 0; + sha512.run = "49b0a69eb308e19e3ed97406fc1ded6e80f15d7787031e2b71cc41ca2e1c74c19d3f3832ae13c5f1af70abf9f2f201c9a7ef669ed2e58349a584ddc767059c54"; + sha512.doc = "d60dae681800be4495c2690f78513475d98a4480364306eb26c16c551b0e984f135aefccdcff549e6702b2b62bb185ccbdacd85dd3c12e5b20c128d9397c0e8c"; + sha512.source = "a2c6321e825629a75d745f0bd03cab168fb51b5c33d5d256a621847f27ec2010f0331c37644e95b2ee40604d68cf34772a3dde59b6c6fe340713c0e593fc318c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + atendofenv = { + revision = 62164; + shortdesc = "Add a custom symbol at the end of an environment"; + stripPrefix = 0; + sha512.run = "04a6c644b9235dce6495c46e2bcc093c03dfadf279d354c8b43b81a0b4a14daae71e7105642bcc95025c55ce92094c01292be2fc379e6c0c720aaa9b5a21ca9b"; + sha512.doc = "22249061d4340939e597d50a5ae4c09f8b4514ddcb0862003ec7fff7006bebb207b5926ffcc0d723190b409435279c815a5880c6fc989294f26098c3db15d1d4"; + sha512.source = "7b457f3643595f98138aeb25090e7cfc98f2d613689428559aae60898f81d586d509b7124ad3fd77383f9524f8611ac8bfcd361391670cd689f1025cf0078859"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.2"; + }; + atkinson = { + revision = 64385; + shortdesc = "Support for the Atkinson Hyperlegible family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map atkinson.map" ]; + sha512.run = "8b763a29fbd529b91d586e00f13176c1cff3777541816a02913e57e8f8586357331615ba4d16549b9a98a0e049a42b2f49af39b3f950fc4845a46e37435dce2b"; + sha512.doc = "f5bcfd015fc4292f4568e9d960e921739a9ebcd8f198f648323d475f6ae5d803d3f0ef77d368fa9fe36f53947908e4bcf1cfbdbd621e780221c5e8432ca9db05"; + hasRunfiles = true; + license = [ + "lppl13c" + "free" + ]; + }; + attachfile = { + revision = 42099; + shortdesc = "Attach arbitrary files to a PDF document"; + stripPrefix = 0; + sha512.run = "526a279f3fcb309cb117327f4206e7dce8c49d39b85a846799bdfea5bf453d2f00e14e854a74d544e49fa92ce056cd8ccc7e03f56856a8e8562b7105d5fd19fa"; + sha512.doc = "9f9e6572e70d348e1db71254a0c6a80cfe76b767801a3c18ad4517577b793b5388367b24f311f491f0dde8df38684b3de4a2ec7e6db67f1fc1ca7b4a9ce5ce78"; + sha512.source = "a4bf69ed370f495f190abaaed8616b4a3ca14184987c6c4882451ec4dd6961b827d3c38d8c049ebe73954f5fe205f727124e447d2e3cf17abe1d95336371b9a1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + attachfile2 = { + revision = 69505; + shortdesc = "Attach files into PDF"; + sha512.run = "d741265618d75ab69a28983338276abb51382d797664bb9aae5876e054307e438b854b1981245a49b3b00052dfe6144993a465e56f1e9e1abc142d9dc78512de"; + sha512.doc = "423718fc61b589d83da1cc0188667c8253b19d9a255f867a8c8a56e812d2fd04046aa5859657a0af88d5c377dc0b0f0fcb2ae8058e7e69ad9ef2099d0c8a7d5a"; + hasManpages = true; + sha512.source = "72f0f9292fe0588d4bb9577e42002576442d3ab19b3ba8eadadb6c874dbace9065a3e74a7818af1055bfa09bc9cd74d734152c95710e3951166eec385414aebf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.12"; + }; + attachfile2.binfiles = [ "pdfatfi" ]; + atveryend = { + revision = 53108; + shortdesc = "Hooks at the very end of a document"; + stripPrefix = 0; + sha512.run = "2a546be6d2109de9db60e94bea3a63a3c7af8ae892c8540a1513fbe4bfa505dcbdde9913b7a4449727df0ccf6957f8010c5b76abd8d6310c118b269bdc7334e4"; + sha512.doc = "5c5948ab7f0ca213bb5fe3ae056cddd392461911e2af7dfff133253f6aae970d525fc752f154921de2186c8a443fa4f90b18d23896a016ebc9ea177d6826613b"; + sha512.source = "1ec0c4752df403e47c4f8d4186167ccb59d2269012d904e9de1ec54acacbdb84b571f5bd1e6b645f7f86972178db2793853701cfa180b66ae7edc1d1488958b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.11"; + }; + aucklandthesis = { + revision = 51323; + shortdesc = "Memoir-based class for formatting University of Auckland masters' and doctors' theses"; + stripPrefix = 0; + sha512.run = "54c6708b343c2605d7779561fb086b914f1a7a825f5556b4a36faee0c8ad29b1c8ed67eaffae223c5e5d47bb6e6a9aaae4c0c658debb7bfd196d9362ae7b8796"; + sha512.doc = "ae73abe45b0aecd033df666f3095486fb29252449e840e9a978cf916a2eeec4a126be8c3ec60379408bd6f7322c8794ba1fa3bd77e45f1723affa18ec109d93e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + augie = { + revision = 61719; + shortdesc = "Calligraphic font for typesetting handwriting"; + stripPrefix = 0; + fontMaps = [ "Map augie.map" ]; + sha512.run = "a862fc140ee85e9f48908e7251dca78f6f328bb194bc1031ce7b521feabc62bb148764e7574341b9ba39a1bc76bb4a718c3cfa45bba7480aff168eb17661d74a"; + sha512.doc = "434c1d88522ae41e8a41fbeda6685a059fafb8f6cdec26d8737b5f6a6ddcf1e4f2a443ffdffa6b62a74f4abd2ed2e947176f59e64bf5691debeb62d9d54e719b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + auncial-new = { + revision = 62977; + shortdesc = "Artificial Uncial font and LaTeX support macros"; + stripPrefix = 0; + fontMaps = [ "Map auncial.map" ]; + sha512.run = "625ddb6342c2ed4e5491e63ae13619b18892bc5d2cc005aac489cf1b6d193a28acdff9404f51b4cc76e8950ac182a4f8d5845bad85fd4c4afbdf33e7b8c225b3"; + sha512.doc = "4d3880a12e8dab72fa5278e4507bdc03786cfe94bfa43e81068629327d1e70a251ca58c7cbf6c58560c03b9e1e4d79257a674370e89c780f5c81589d54084270"; + sha512.source = "bb35718db33f7c4cb6889570def1b4f8a47e05896a14c8867ff7dba362028017d4e64d66b31e2f2cef45b749784704ea6cf9c1731543c3277496fc6c128b08fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + aurical = { + revision = 15878; + shortdesc = "Calligraphic fonts for use with LaTeX in T1 encoding"; + stripPrefix = 0; + fontMaps = [ "Map aurical.map" ]; + sha512.run = "1c48c36d6121005c123018cfe1266783288572c0ce8a9ea4b9b47ac28f46206de61b7a73804121f9a57c056c871c547c97ff10a529fedaca57bcb3ab78f3bea0"; + sha512.doc = "89de4991373a50d673f569e72f4727bd66a2b40b385006c3c7e4605812e7f8d3d346e3b08be55241f9926a58b40126d123d6ecea912d09db3973985d0cf9e90c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + aurl = { + revision = 41853; + shortdesc = "Extends the hyperref package with a mechanism for hyperlinked URLs abbreviated with prefixes"; + stripPrefix = 0; + sha512.run = "4688987b83ae65e15a74cb7960dc990710930186ec94e376cc3a74dfec9f6d75a51babd99438ff87a5f6f8e05cee483b569fabe627ef00fb892126f74749649d"; + sha512.doc = "a58f7cbbae262c7650bc5147b400f25f0c666effdcf37e565f665092d1cff820d2d98652947d36f6940b8d16027336b970ff88ecd9f3500d9a39a45eb4a19acf"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + authoraftertitle = { + revision = 55889; + shortdesc = "Make author, etc., available after \maketitle"; + stripPrefix = 0; + sha512.run = "b7496b1ff5dc7544afa6e2181b9c86814671d42603c1f9aa08cc6d45e02dc402e225c44fe554649251b8cdb3dfd81f1b0fb245cc8ed56204d2bcad16e5e9f9bc"; + sha512.doc = "a1cda29730615ec8b81082f14462c5864033e1b4cbe0b071e5cdc6d9b5393b2e701ba6e6665963170bb99408f03c8fae38fc17aeb2de83fe9c8fbdad8273482d"; + hasRunfiles = true; + license = [ "cc0" ]; + version = "1.0"; + }; + authorarchive = { + revision = 65777; + shortdesc = "Adds self-archiving information to scientific papers"; + stripPrefix = 0; + sha512.run = "d5695336d18c4b84ef2b611b9ebcf502a974ed884625a2296666fdcf54a757f6682c0f9689713d134c033b1a9cf743218c02b05c0b2217c5c2ad5eb5d29f21bc"; + sha512.doc = "e8ca021be201da6cdb5ec980f3724d38d3cf4c5fa4be8fd08b286ed9f0ccf2db1f0b8e3f14e3cf6a591afa4c71ca4cf3f962d7a09466000377d51745b6600501"; + hasRunfiles = true; + license = [ + "lppl13c" + "bsd2" + ]; + version = "1.3.0"; + }; + authordate = { + revision = 52564; + shortdesc = "Author/date style citation styles"; + stripPrefix = 0; + sha512.run = "c67f75eb92a937755ef0a1ef0896ae3cc1c256008d864572503d3e9d3be1321d25be59e76d4d3ae443398612233a328b1d6e2da9c103f41b30eb088208701308"; + sha512.doc = "156fec304fa95388fdbb386153482016a4d78d4862943bcd6124466b12df920498d5b42446465fc0f70da6353f58c329a27a822efb5cca8f0c4d7fdcb3239a02"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + authorindex = { + revision = 51757; + shortdesc = "Index citations by author names"; + sha512.run = "75e35298e4839f3975824624c7367504a26dafdf4b8e1d5238e2575c821f652282cd9a6e58fb4296b2c0345ff104dbd2281135776718fe4d2ecb76110946ab9f"; + sha512.doc = "a6c48d89cfd854d8acae47e318bc3951f8e81434d9a81901c8a7b7f1c25188afb013b94780ceb201e81b5d10efb7f5c24f5b5e4c8d8379aba390431707bc4d55"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + authorindex.binfiles = [ "authorindex" ]; + auto-pst-pdf = { + revision = 56596; + shortdesc = "Wrapper for pst-pdf (with some psfrag features)"; + stripPrefix = 0; + deps = [ + "ifplatform" + "iftex" + "xkeyval" + ]; + sha512.run = "5c1f85a0ec5aa4173181b087a1f5f8e30be6d8c21c3461999a85b42032d45292aa6f8aae4922a5e97d073fff5b2c9d114cd30f5d5bb73ef523718e891ce59473"; + sha512.doc = "73d6f4b2e298eedc537a46c1e69bce9e160eb28e6bc2f631596a4fd3aa658d8b51d6dfddb6748b7e629fe564a2ced5e55bcd766650616d936a4197e368b2fcd7"; + sha512.source = "199e9fefcb2f96f1ad9e33abeecedcff9c72f20614c48951197703ff65901763ef88f425af08021b1843f30c3ee8e3a9756095ad4b165772b829a29c6e5515f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + auto-pst-pdf-lua = { + revision = 66637; + shortdesc = "Using LuaLaTeX together with PostScript code"; + stripPrefix = 0; + deps = [ "iftex" ]; + sha512.run = "7d9882f2c80021409602f343e99dca9613f060056614f2fa8445b4f427f53287c4eb95af0a252ee3cddb2d6b47e1ecbc0ee3032dd55c209eb946b686f8037023"; + sha512.doc = "ab6cc1b954ff26f5d7b44f12cffc7aa2d5ac1aa64e37a68a5952616debeecab0e34dd2bcb6e06a3f49e90d45e9b5f60955d8b62cb8d124ae35625b398e97fd44"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03a"; + }; + autoaligne = { + revision = 66655; + shortdesc = "Align terms and members in math expressions"; + stripPrefix = 0; + sha512.run = "b590b6f43bf17d54595c3adcc6de0e5c6780efd8ee68efaa5c2990f3e9e79ad6844397d6c7695d3ab66d72d4eb592c1455e4234f7a40efdbf4c788bc45216442"; + sha512.doc = "d043ed183b3e30d35f7d4e6a5b5f094ae5bddb4e2265294c02c0888cf2e78fceb16b14cabb5b5d759b5397f58da1111d5fa590aab89a59ce13e3e13fb2e3dc91"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + autoarea = { + revision = 59552; + shortdesc = "Automatic computation of bounding boxes with PiCTeX"; + stripPrefix = 0; + sha512.run = "dadd69326335b6fe6e425a867e2e62a0b1df2f3179801bcc726c6ceebc15c24e3a7c9ecb3034209e25e503be47a9ad8639addfb628f720bd0c0d64c15177043d"; + sha512.doc = "1b0f6ab0c7b1c69b7a802e9685db50e6b54361acf68ce2c2803419b165be1dd01f52a5b3fa9ccbe273e859509f7b7faa0c7c6b88bfec8f51f0bb66adf7b94e90"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + autobreak = { + revision = 43337; + shortdesc = "Simple line breaking of long formulae"; + stripPrefix = 0; + sha512.run = "91cc17692654270bba9536ea9186ffea2e7e9a6e9dbf0ffcd9821c8b3ec470ea3222af2a1df05d85e47d65fc1737cf2dbeba150641355bf826e5ad2da90db059"; + sha512.doc = "0d06f75e6f4fb254463ee2a075d106c14a06c5f7fc25b5047fbeec0e48ca9faf6e136f098312811329db1da5f9fffb6dfd45abe6eea9ecf682f4fe99f0384178"; + sha512.source = "7120382c7974acccf1a49548ad8e654b945ae2ecfb858b37ca871fb7b5b054d8554c971a86c511d03e2ffa91e5cbc6d61cc743da51b0a9de705f74c0b9c2c7c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + autofancyhdr = { + revision = 54049; + shortdesc = "Automatically compute headlength for fancyhdr package"; + stripPrefix = 0; + sha512.run = "3ee2452c80ba671414a1669e0c47c7069189dcc0dde97bb33f94e77251b2ac8511b7cb79fd5866c2d3acfbe7768e20f715e61a6303a847ab82564743fb8d2a2f"; + sha512.doc = "1fc9ac9d47d65eecb1a6736aa5fb148a6309fa64cd18053b038483d484f974f3f1aafe8afb03b88921ab5a990b78a2aa9dc6d7149884a550c57340218f72159a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + automata = { + revision = 19717; + shortdesc = "Finite state machines, graphs and trees in MetaPost"; + stripPrefix = 0; + sha512.run = "09026f967084d5f1804a32166e854ac410a768f6b4654d9ea9bb69dd29acb8a3199919daa1fd6dd48963ea5d6454b9b9d8263939e5af81a8f07f66f08b5f4835"; + sha512.doc = "49c6515e979a87ce270d32b367c5800acffa4b638a8bed3e20f3e74387c2e7ee4ae0c2ea8b232e2ae57d0d0a730424d18911835581c0c274732f3d36f650693b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + autonum = { + revision = 36084; + shortdesc = "Automatic equation references"; + stripPrefix = 0; + sha512.run = "3a663a53b4b4b53515978460dae1ac275cc4e3e6981b008c78b875e3e47af8abd950cb35f6e416ab02507e498bd75d6f4a775e2b429d668d02ebaa4bfdd03f25"; + sha512.doc = "2d0c515fac8afb219aaa1ee270b30bac09bcc310afcad71ff6ad2a3448187733718c03c304c09a0d631595d36043dc3eb0b6849fce0e4c3bf7f5d249b15c99c2"; + sha512.source = "5c20017e3008ea726979ca70272923d9c62a5c36367fdcdf9d62e141f4822201e2cd36a9b4c58a6591568669daca65d17cbb78e5382c01ad4d624da7074f4010"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.11"; + }; + autopdf = { + revision = 32377; + shortdesc = "Conversion of graphics to pdfLaTeX-compatible formats"; + stripPrefix = 0; + sha512.run = "f855fbe477986356d34360876a4a6613638255e234ad0210cb035a1f3a9b9b827ea140654e2001aa29ac09d7b8addf8f872d34bdb4d1700ead2f6e6f083cb2a6"; + sha512.doc = "d2c2ecf193f03f4f568d2304128e50f5cb5964a6c0a2ca8b739c59b9d3e80637134b5ca91e1b5c1971db11eb54a086b3eb888b6984050dbffa22a166c6757e39"; + sha512.source = "fdec2bf2079746f67f3ffb790eb2e10a7dc884fbf68b2c1a6ec9c67ad0ed411d9ff87baa89fc11dfbf9172bfcd81b411d8aa223c209def4fda6c91a4a9d32ed6"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + autopuncitems = { + revision = 63045; + shortdesc = "Automatically punctuate lists"; + stripPrefix = 0; + sha512.run = "d41c5054417b511487beedd379f480f3869e67b747339837df5bf029b58171791ac8cb1c7bcaf5301822ba9585138d68af5ca080672d4ed1026086519fea1aec"; + sha512.doc = "9c88cdb757a53e89bf7625fad0623154ea6101ee8c9cff2679698d0f6144d98a6099a68ef3fb1a31e99e7dee92572e34654321e44496e863f1444feab8a6cb1d"; + hasRunfiles = true; + license = [ "mit" ]; + }; + autosp = { + revision = 58211; + shortdesc = "A Preprocessor that generates note-spacing commands for MusiXTeX scores"; + sha512.run = "67587e8b456257be9b924a5bb8c8f4def22fa9aa9678663975ef74e346dc186ae7848a9dc043733cf1244f254750ef4f34204575f62195d4b966ed8336781bce"; + sha512.doc = "2905669b9e2b61749cb7b1eaa02be889c4e8d8adbd78b126e7ee6d894f24f623c888a24abac1d163f3332c5cfa9cd1f64d0de95200350b88a7f47faeacb841a6"; + hasManpages = true; + license = [ "gpl2Plus" ]; + }; + autosp.binfiles = [ "autosp" - "bagpipe" - "chordbars" - "chordbox" - "collection-latex" - "ddphonism" - "figbas" - "gchords" - "gregoriotex" - "gtrcrd" - "guitar" - "guitarchordschemes" - "guitartabs" - "harmony" - "latex4musicians" - "leadsheets" - "lilyglyphs" - "lyluatex" - "m-tx" - "musical" - "musicography" - "musixguit" - "musixtex" - "musixtex-fonts" - "musixtnt" - "octave" - "piano" - "pmx" - "pmxchords" - "recorder-fingering" - "songbook" - "songproj" - "songs" - "undar-digitacion" - "xml2pmx" - "xpiano" + "tex2aspc" ]; - sha512.run = "26100feabd6d95d8b29f0160f7e9b86d06e5055387acc63fe6e47fa0e681567e2d6537043bfa9138d3f8bf27705f2117b719aeb77d72b2f35ff5e5ad220a6038"; -}; -collection-pictures = { - revision = 70538; - shortdesc = "Graphics, pictures, diagrams"; - stripPrefix = 0; - deps = [ - "adigraph" - "aobs-tikz" - "askmaps" - "asyfig" - "asypictureb" - "autoarea" - "bardiag" - "beamerswitch" - "binarytree" - "blochsphere" - "bloques" - "blox" - "bodegraph" - "bondgraph" - "bondgraphs" - "braids" - "bxeepic" - "byo-twemojis" - "byrne" - "cachepic" - "callouts" - "celtic" - "chemfig" - "circuit-macros" - "circuitikz" - "circularglyphs" - "coffeestains" - "collection-basic" - "coloredbelts" - "combinedgraphics" - "curve" - "curve2e" - "curves" - "dcpic" - "diagmac2" - "ditaa" - "doc-pictex" - "dot2texi" - "dottex" - "dpcircling" - "dratex" - "drs" - "duotenzor" - "dynkin-diagrams" - "ecgdraw" - "eepic" - "egpeirce" - "ellipse" - "endofproofwd" - "epspdf" - "epspdfconversion" - "esk" - "euflag" - "fadingimage" - "fast-diagram" - "fenetrecas" - "fig4latex" - "figchild" - "figput" - "fitbox" - "flowchart" - "forest" - "genealogytree" - "getmap" - "gincltex" - "gnuplottex" - "gradientframe" - "grafcet" - "graph35" - "graphicxpsd" - "graphviz" - "gtrlib-largetrees" - "harveyballs" - "here" - "hf-tikz" - "hobby" - "hvfloat" - "istgame" - "kblocks" - "kinematikz" - "knitting" - "knittingpattern" - "ladder" - "lapdf" - "latex-make" - "liftarm" - "lpic" - "lroundrect" - "luamesh" - "luasseq" - "maker" - "makeshape" - "mathspic" - "memoize" - "mercatormap" - "milsymb" - "miniplot" - "mkpic" - "modiagram" - "neuralnetwork" - "nl-interval" - "nndraw" - "numericplots" - "outilsgeomtikz" - "papiergurvan" - "pb-diagram" - "petri-nets" - "pgf" - "pgf-blur" - "pgf-interference" - "pgf-periodictable" - "pgf-pie" - "pgf-soroban" - "pgf-spectra" - "pgf-umlcd" - "pgf-umlsd" - "pgfgantt" - "pgfkeysearch" - "pgfkeyx" - "pgfmolbio" - "pgfmorepages" - "pgfopts" - "pgfornament" - "pgfplots" - "picinpar" - "pict2e" - "pictex" - "pictex2" - "pictochrono" - "pinlabel" - "pixelart" - "pixelarttikz" - "pmgraph" - "polyhedra" - "postage" - "postit" - "prerex" - "productbox" - "ptolemaicastronomy" - "puyotikz" - "pxpgfmark" - "pxpic" - "qcircuit" - "qrcode" - "quantikz" - "randbild" - "randomwalk" - "realhats" - "reotex" - "robotarm" - "rviewport" - "sa-tikz" - "sacsymb" - "schemabloc" - "scratch" - "scratch3" - "scsnowman" - "setdeck" - "signchart" - "simplenodes" - "simpleoptics" - "smartdiagram" - "spath3" - "spectralsequences" - "strands" - "swimgraf" - "syntaxdi" - "table-fct" - "texdraw" - "ticollege" - "tikz-3dplot" - "tikz-among-us" - "tikz-bagua" - "tikz-bayesnet" - "tikz-bbox" - "tikz-cd" - "tikz-dependency" - "tikz-dimline" - "tikz-ext" - "tikz-feynhand" - "tikz-feynman" - "tikz-imagelabels" - "tikz-inet" - "tikz-kalender" - "tikz-karnaugh" - "tikz-ladder" - "tikz-lake-fig" - "tikz-layers" - "tikz-mirror-lens" - "tikz-nef" - "tikz-network" - "tikz-nfold" - "tikz-opm" - "tikz-optics" - "tikz-osci" - "tikz-page" - "tikz-palattice" - "tikz-planets" - "tikz-qtree" - "tikz-relay" - "tikz-sfc" - "tikz-swigs" - "tikz-timing" - "tikz-trackschematic" - "tikz-truchet" - "tikz2d-fr" - "tikz3d-fr" - "tikzbricks" - "tikzcodeblocks" - "tikzdotncross" - "tikzducks" - "tikzfill" - "tikzinclude" - "tikzlings" - "tikzmark" - "tikzmarmots" - "tikzorbital" - "tikzpackets" - "tikzpagenodes" - "tikzpeople" - "tikzpfeile" - "tikzpingus" - "tikzposter" - "tikzquads" - "tikzquests" - "tikzscale" - "tikzsymbols" - "tikztosvg" - "tikzviolinplots" - "tile-graphic" - "tilings" - "timing-diagrams" - "tipfr" - "tkz-base" - "tkz-berge" - "tkz-bernoulli" - "tkz-doc" - "tkz-elements" - "tkz-euclide" - "tkz-fct" - "tkz-graph" - "tkz-orm" - "tkz-tab" - "tkzexample" - "tonevalue" - "tqft" - "tsemlines" - "tufte-latex" - "twemojis" - "tzplot" - "utfsym" - "vectorlogos" - "venndiagram" - "visualpstricks" - "wheelchart" - "wordcloud" - "worldflags" - "xistercian" - "xpicture" - "xypic" + autotype = { + revision = 69309; + shortdesc = "A LuaLaTeX package for automatic language-specific typography"; + stripPrefix = 0; + sha512.run = "f7bbb705f28bd5f546125118c48fcb2e02043ddec76ace5866206a3b047448740db06537d969584197de375bc195a8ac5712eda8bc00633befc102eee7c4e538"; + sha512.doc = "a64c7184ae642968af2ff85a08634b04d526051f798c16a2d3ac1c42f7a948de11fe5b83ec9d208733a7e2fedb190c5175bd253d811c9a6838a5a3ee45768317"; + hasRunfiles = true; + license = [ + "lppl13c" + "mit" + "free" + ]; + version = "0.5"; + }; + auxhook = { + revision = 53173; + shortdesc = "Hooks for auxiliary files"; + stripPrefix = 0; + sha512.run = "8ea845a19818df2df7939031e7b251b4b4d99a17c0d1b8177a592275bed6efdc660266964e0639222b86cfdd897bcf13302f1477b997ea1a06179cdd44aff0d1"; + sha512.doc = "7c4f850d93f8a6d25a35e762bdb2df26384c75ba1cbaba06806964737badb2f7c8ba3192c62df7e7f3de12c6fa117ebc525c735e696a9cafdad943a8cfeedabd"; + sha512.source = "f378f365c8fdee267224d092b35cd2bde971302cba003edd24b3f0a06bbd59e077096580e65480cb66adc6488aefb688ea423d74334976dfc92168688514e0b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + avantgar = { + revision = 61983; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map uag.map" ]; + sha512.run = "c08c987c385bf9eeca0f4f5b7edcd41570c81f18751593824da8eea770c29d63725bed100fa2ff37a80a5c70086533ddc1e91848d5ddeedec3c5c669907ed20b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + avremu = { + revision = 35373; + shortdesc = "An 8-Bit Microcontroller Simulator written in LaTeX"; + stripPrefix = 0; + sha512.run = "2541e80c0dd798675164cace381730c75268d5385883163b67230d49022f16c9ec72a77d602e8b5094db31b1d3aef2f0f71da91ed2f7eb7fe1039117f7488cf3"; + sha512.doc = "12c97e23dc853a971b27258a7666753d019620e832a06b10a49a26f0f30d7c6fde83c0e328e1579b62376f2e9cd10b0b3950fd6c4ca89041a988fedd4c604acb"; + sha512.source = "1d6a7f16cacd937490ae5e7416f43f4f9eafbf053f6e35d498a26b8d4092ffe79740a12d96503ee5636c4d1d8b3bd02653b4839b957cb91cca672914bbe98899"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + awesomebox = { + revision = 57349; + shortdesc = "Draw admonition blocks in your documents, illustrated with FontAwesome icons"; + stripPrefix = 0; + sha512.run = "4984d58669576137746518b68988fd9837b5ef133eb8da948f67bb0d5f775ad961055871bb46084e420ef0564b6a4796ba81a093be93f667f959a45ffc0c6174"; + sha512.doc = "eec717fa5bb5a0f0d15cfc39d2172f8818718f6c7037fe962a0e811c131cbc91d3f3167077ec413d565e6b0b782f5b3f77b38257caa6529a6f5db7da8e163c3d"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.6"; + }; + axessibility = { + revision = 57105; + shortdesc = "Access to formulas in PDF files by assistive technologies"; + stripPrefix = 0; + sha512.run = "9b42a40556f3432e045ef35b23fb7fcb6ff295064645e5b9331d0ce99a8f2bd232d0926b46eacb5598da112dfcf3673225efd655573523dd504767a06a42686c"; + sha512.doc = "f3255c9d6b1eb75a501e5c36cece49cb72767e467c0853465d2b8a39f011138d7154eab2fa5287f9223b4f535aad5c2db25d2f76c286376499c71d0ffd120699"; + sha512.source = "c5ef10d286eccf16b270c8b487e91270cafb09ba10a88a8e0c925485a380c18002d399857f7dd42978aee72f7b1889c5dcde7ffdf2f5626424f31fd99a452ff0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + axodraw2 = { + revision = 58155; + shortdesc = "Feynman diagrams in a LaTeX document"; + sha512.run = "bc9923a9614ef9d7bece20e682729347dc942470a927b40736d6868f02867408b5fba51b117edd8745f96df23b9c1e93792d321291db13b7fdfdae0ee32bb7fd"; + sha512.doc = "927e42358d543f46ccabb8184e35b6f0a5848783ce9eea09e6c780fc83955d5f37b998254153b1954cf1a59be6cfe573a6c79c2c328ab2a22a6e5f6764a50fa1"; + hasManpages = true; + sha512.source = "3c2fbbff234836ffe40edb7f38c77c5986cca7fc68b3dd7672bb4f1ce9327a12fa8c51d38461d914cd6466bac8b2b578a151d09d4e84dd903530f7a545d707d9"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.1.1c"; + }; + axodraw2.binfiles = [ "axohelp" ]; + b1encoding = { + revision = 21271; + shortdesc = "LaTeX encoding tools for Bookhands fonts"; + stripPrefix = 0; + sha512.run = "b33280f64e37f300c92f9bad4372c13dd34e3dbe5fe47f2dc9fe0e270f33eaf5bedf9485293a74a6e0eb87b65f44fb66a286fb279a3d2c390c463e6aecfacb57"; + sha512.doc = "4bfac8bf2a00dc61a007c10654cb7fe539c111170127934cd3a64ecea9ceed3fd04ac249cbd645d89400bef6f4a3527d1db04baa88eab88eceee2edd48e64393"; + sha512.source = "7368dec012e7dd9fd948856aa0b901be48a5800dec417a1511510e184e7543ae9d76acf46a12ea956b1b27367b41309923ce5ed3bdb320399572f5dde737543c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + babel = { + revision = 69742; + shortdesc = "Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX"; + stripPrefix = 0; + sha512.run = "31b2c697f13df80472f5a209bb3b23ab7458e99c7329728ce767c1c116b7706465928541bb5b2f749b6e6d1ced4f43b92dd432e42c03660d18271a1bb243b2e9"; + sha512.doc = "fbe053f25e6db1df9856c03813070842dac62bb9e4e541a8ee29e990ea52017824cb260d8fac4f8a9002d8d07b3dc0726795659b73e7c58db3c9f6b8b84c8b05"; + sha512.source = "f71762c2f2062e92e74ad661bd3088b8e1102320c5e54e68be419b8f96561a1e93399204bb639e3416a081c651cd5cc198995d42556655772831766eca484da9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "24.2"; + }; + babel-albanian = { + revision = 57005; + shortdesc = "Support for Albanian within babel"; + stripPrefix = 0; + sha512.run = "8a98ba1dc08bc2bdbba0793bda2a07a6c248543fdee56cbb047229d1cfe77cdf616c0ef023b0a74f877d9863768065f0e256ba35a1071e0dd3f2bbf2b47b7ebe"; + sha512.doc = "d26b9d933bbf0225f79bd8180f9dcc2961ea481fef7b535267034296062f8879b53ca47ed6b512fc724b261276be6d92ce045ba0c8bbdba0149cca6f117be8ea"; + sha512.source = "74212f36288599d730fafd00dc50839cf0f12283ed8653303471d2cb64a57217b4792f1000cb44411c7d5031e4597db67368964ad318e896987103af8e21f838"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0d"; + }; + babel-azerbaijani = { + revision = 44197; + shortdesc = "Support for Azerbaijani within babel"; + stripPrefix = 0; + sha512.run = "3f20954607195d4804b4bd90d7fe5baa209d5ffac6dfbe5f758306bb7c8aedd1c4c92675f5dce7f634e7ceb2b65e9c3ead0ebfef730bfe2dbd8c0ba17d3079b0"; + sha512.doc = "bfd4434720b9676e253f69144aac9a07d6bd19e3a4418ae74269df70085391444ac46556928f131a14e85b87211fd76521b67a457e7319eedd3781a215efd962"; + sha512.source = "b3eb9fdbc08643706a2dfa50daaf27a687c593900a972f89029aeebe08e2a1c4fbea08a848224b198ba447d3ad3a62459aeb9db2c00a0f3f039a16c863ebaf0d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + babel-basque = { + revision = 30256; + shortdesc = "Babel contributed support for Basque"; + stripPrefix = 0; + sha512.run = "40079f02225f81c8838aee6179548f3fcb773fa8e031e07f30df761f298b9980e3a4357a8013bd7802c688a192cd9ef2102be1b6e8e1f3efcd68769a9e5a5a2a"; + sha512.doc = "e6342328d62cb0232d38e10b3b38cd4d75c55a5d31d702c167099a2bd4122e40c5e3cac8a9c2940a9f9893d7aa2594b8322cf469924b97e903cab970dee81c6c"; + sha512.source = "1c924232920a969fa48e6d61bcdfc5150cd1afcef6d98cdd27fbe2e0acb5b7749d2b2dea77db88125128b380f2b4ccca4d49d1d140f2e96880e0daf2d09c2d50"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0f"; + }; + babel-belarusian = { + revision = 49022; + shortdesc = "Babel support for Belarusian"; + stripPrefix = 0; + sha512.run = "5856582f8bf6a98a4fbd560bfca82ccb226267e249f0caf8afc775875d50ec204ea613320534a63062dffd0e050905adb24763a95fec2ef4e8faed70a400d976"; + sha512.doc = "247d5a3b99cd5a377534a94fedf47f6710d32d875d3208b1516fdc9acafee70a14ef1dc37600f9da53f806323d0519ebb2c4e288e471363756b7b819751373c8"; + sha512.source = "82262f7775c22a908161a7a2d65caa8662c62ad759db792a6718dba043804b7aac523a8f3eab2dbdc3882a88c55bb641b862f3f19e9c4d3ba1a0f4298db9833e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + babel-bosnian = { + revision = 38174; + shortdesc = "Babel contrib support for Bosnian"; + stripPrefix = 0; + sha512.run = "bef1defaacf5232bf9cce6c1a9956c9a42d35a2c2b6ddccbcca3938386f4f4a61a0cbcba74b930dfad18ed211374c3667120c6706ebf097c56ec3c5915ccdff2"; + sha512.doc = "84238e6b38021582de93e9fe934bf608e647c9b4cc0a066b4fbdd2ba98c8e6531b653907f9bcfb79e6afc9074b4a079b5e419db25625d40a76a8ca8e55e81ab1"; + sha512.source = "dfc18e55b30620e27cb8809259a6b4790b94cb98b334a69cd48f66c25696e2df8d38dc5a1d402ae8464ced727752d96d8b5abf18522c8bbde4ce1f6f8ad73c92"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + babel-breton = { + revision = 30257; + shortdesc = "Babel contributed support for Breton"; + stripPrefix = 0; + sha512.run = "bbcfa22674ca1d4a8e23f179480f9e94a50d5b460b8b0d27365c9166adc02a191253ef2d61d6f5eaf5bc61e73faf5d307378898f1d6b1b748448bbd8a36ea141"; + sha512.doc = "3b47653b26901dd4aba1395c61c9dc01d43ed490c70ca04ba7d1cc67ba7b23b658db32b7a5fef085b236a68bcd009dc5cc5687e3dc2dc8d246ab2ccb8d391b42"; + sha512.source = "8f381a3955780617f9738b008e6f4490632a67c70f16d4855f15ca59981dadaf72f7f15cebe10a121bcbb894006c738ca1872fbe33bb256c8145b22254236b67"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0h"; + }; + babel-bulgarian = { + revision = 31902; + shortdesc = "Babel contributed support for Bulgarian"; + stripPrefix = 0; + sha512.run = "0c838e5c5cd010fddaec385376f9eb5fb10730e918dd28f58987f855a444d91ed2e66c0de46c74637d134d72f7e348e538836df33f6255a14ed51d0e8d5e8a3e"; + sha512.doc = "4dcd92a2088e737972f0663fe5161883cae901dc82aafd1bd33f2d80a852fb51d6229c95cc655826bd17599a7152b8a7bf0031eb046530a135e8bc5c9c74b2dd"; + sha512.source = "047f69cbdedea9070a002782e8d1b893aae71adaa2e637df560ab8a176308faf8d1b8b52afda8f38f264783077a227176eacace9484ccc0af2a4a7615460c7a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2g"; + }; + babel-catalan = { + revision = 30259; + shortdesc = "Babel contributed support for Catalan"; + stripPrefix = 0; + sha512.run = "728d847331f1a00766cfc2818691516234b153182f31ad2da024ec3194cc384a41ca89cc67ce66447191188dfe088d1dc4c8af3b2e6952931ec7eb58737c4bca"; + sha512.doc = "3184373d85b1e9bd76588318372ced328d2ce7f6d4f45bc5634671a88314d1ed18cedd968e59dd5203b4d77e6d3576f36a654b1a8bbdaa106d47cbdfb825e452"; + sha512.source = "ef15d0aca46af936141fa2d47c6b794ce85f2c3fc9adf18b5ca4b0267292f24d1c02121d5189f7cc9db98e0ab22a5d4ec2febc32b2bec5c3c5923598e869878c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2p"; + }; + babel-croatian = { + revision = 35198; + shortdesc = "Babel contributed support for Croatian"; + stripPrefix = 0; + sha512.run = "b5724a84cd180e9de79136ced8bd38717dcb4e932dbba4e20fc071ba9f50fb35cebe83d4a95ec6e8ef0e09a02732cbdc8b1a71715c8a5967393f54087ba4a807"; + sha512.doc = "d5e40e95037c3035589b093037c563b3737e061369f27ff5c51d620e0655dd075f413b91434591e2130849d641c1ac59469db46be1d8b0761075424c468668d2"; + sha512.source = "fdd4efb6d24bc9560e14f9e02d231ac636f2f69249d7dea9c07b337f0d5617c754bbc9087bda5cf1f2da6178807e46f015658b3fc2d04ddd5749dc2643ef4ed0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3l"; + }; + babel-czech = { + revision = 30261; + shortdesc = "Babel support for Czech"; + stripPrefix = 0; + sha512.run = "0cc0f07fafefa6d7ea1ae1b2ce143dbec124fe96b36221f1b5a847fd0b789d1974b5990ebd93b8ac0607f63956948bede25c7e690784ca7e9638f48139585a32"; + sha512.doc = "1575fbe0d70725e975cdb0c1c5ca685985d91f23e4a997af4a0db21905ac34962f69653ffe4084065bda70cfbba0f0a1f0885d3afc19e98d0045ebb68cb545c3"; + sha512.source = "1cbc5de700e32ac2600a50a85f6437b7bada601734753a8ea62b845f7500880195625e827be41e277d76137ca3dac05b230e64e0edcf1807cae2079feceff8a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1a"; + }; + babel-danish = { + revision = 57642; + shortdesc = "Babel contributed support for Danish"; + stripPrefix = 0; + sha512.run = "201afcbdb9b8d9128cece15ac8876e8d9bc261ab6c90745e52a95bb58fefea0b478a623027b097875d831fe5671f8f1f16a2370dc0dfd92ec3e603436e366e1e"; + sha512.doc = "5ed050c01207e110c475abe825e5299df0f7927476141d81cb31fcc8c6dae1076e855d3590aea0812bc2a15949231163c24f0039620f3a8f41cd43bd6a8a0840"; + sha512.source = "5c9bc598da8e782acf3a4e3ae5e93acafdad34fd68962436ee7a5acfcd7c234863db5faf9a3c2e2b87814d235883e3e85688fd0b3f514a7d57977d1872896884"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3s"; + }; + babel-dutch = { + revision = 60362; + shortdesc = "Babel contributed support for Dutch"; + stripPrefix = 0; + sha512.run = "bef13adf26cbbd16604af041fc7af866c82e88cd9d7d05318abd10f7d6f0ae718e1186f5527b4b38f1f099ba5da3d85b5e2f6d1ac0dfe8fe64ea52fcf6f06df1"; + sha512.doc = "a78535f95bbbf6228014471a473a7e38b2cfa2da0160adb906b8f75c803b3e9396ca52322100102bebc179ec1e863a78c1b102ae932ea324ea58fd57bf9e9b06"; + sha512.source = "724746e2e05c5de5184125068b2637c14c58c83f86fc92d75521089298a26290ecebbb6f0c61f7452da659dbcbfa1c36789e428aba500fa2211e354747fb017c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.8l"; + }; + babel-english = { + revision = 44495; + shortdesc = "Babel support for English"; + stripPrefix = 0; + sha512.run = "f570d2aae8a97ba0762fc1eab75dad1f17c4ac582a351ffeb8e56a136b789a38b7a6519247ba5981385f1a093101542942b3bd073a5097336392929ed40c9e39"; + sha512.doc = "77d6b482407ff24095b1076673316744374e66bdbdd7ebb767ec66ccdccd6ed5bb27ecfd0796eee210f1a888c82ad2eb4b9d2142c427bff137bd139c4cc53ec3"; + sha512.source = "ce636f5cca9aa33ad7414432fcc46fbf1873c4b1576cae8c04b8cf15381f4b6ea54e0621f297114f302ae172752282daedc0b59c15393e1071f8542ad3baf628"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3r"; + }; + babel-esperanto = { + revision = 30265; + shortdesc = "Babel support for Esperanto"; + stripPrefix = 0; + sha512.run = "0c3be27d02d4c3157f2b0df0950e0814db3ffbdb2553d2c0f176893f3669123a9130874e93edcfd86480b785bbbfda35f9246dac3b4a0779da51387b0bf12ee8"; + sha512.doc = "166c1b59511b5a01cac11b5cd76c84cfa485c2674b390a167ff165bec1326709437ee843f664fd4ac9e61338481df9e7f3026189f7c29c71778dbd1df98cd35f"; + sha512.source = "f2fcef5841400c521415c870ae1641549eb702944ebd404b96ff9d5b52ee9c2d484662a50d9b410f62e74580f37fdbd269b3650cee0572b3096e4b0365787d4b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4t"; + }; + babel-estonian = { + revision = 38064; + shortdesc = "Babel support for Estonian"; + stripPrefix = 0; + sha512.run = "03357f8b0c101e5e186fa4211a971e625f6970a3129a2594a611c74b77b36a27a288d2da518d21e6e2e5d98bb82802b2115d47e31e6258f01c003be854090baf"; + sha512.doc = "ca732f4b6ccb9ae27f99aaabc99037d9f3d04bc170b9a8bb189a81b6bc9f55fd757c5755bf51ff423850f6b45c88a5645f75a462fc9d9e9b989fa04c1a2cc7c1"; + sha512.source = "47e8d53d379ec383400e618873d800bbb6dcd8eea7807e31173110d5d7492f52cd4808a288e53534a2de578c43a5ee4eceef690bfcd56cc11e863919f86ee8af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + babel-finnish = { + revision = 57643; + shortdesc = "Babel support for Finnish"; + stripPrefix = 0; + sha512.run = "ed0dc79fbf6cd992bb5ff3df46f93203ffcb3ade34c6a613b5b22bf5effb98f78fa85d9b915130b304df71629c5a8bd68a4bab23ee772a1068f7184fa27051e3"; + sha512.doc = "c96212780651c9c0c831e295c26f678c80724e5b923d69fc73bc1be39e369a19243b42e5252dd4c0a049fa0c4d25dd611bd470b12a4b55dec4520d016c21a5f1"; + sha512.source = "11bb4bd731c27af0e11718a55793f7a22957b65e2ddc988e6e3ddb5cb6def8fb1d9ea9f235bf400beeb026f220a628effd612d04d416abeec2e1c39a001281f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3s"; + }; + babel-french = { + revision = 70261; + shortdesc = "Babel contributed support for French"; + stripPrefix = 0; + sha512.run = "5a0ad21862209980813cf8b6a89884ca977bbd2036b3e9c6217d2ae0f69f4c0e9567bf07afa4c9e75cdc6959b3169f270de38c9307c531a44b5ba07707c2e1e0"; + sha512.doc = "2af045bb96ec288d4c314da7a3ffe82c3bb3e82ca0919a272fc43cfd5946a379f951c4a019c93f0af07da647c852f25af2f026310a435a82c0888f96c84cc263"; + sha512.source = "a03e25b8f02430e117584880e2ca29802459a98dde97b380b71ffd4d2eb4c6db92cff33aea9c2bced5823fb5ec4d06b5ea428c99da85fadf9f16f3a3e5793c8c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.5s"; + }; + babel-friulan = { + revision = 39861; + shortdesc = "Babel/Polyglossia support for Friulan(Furlan)"; + stripPrefix = 0; + sha512.run = "e6210dc473c3d71759f2faf1558df2d6a7c646485d85cf0113074fb68eaef23b2e44eb88c9fd35a7a7929b408d6574f7230852643366bccd29afee744e0b2d07"; + sha512.doc = "0ce539cb0b6cc7af830c7413545f411e1291491fb26ad0451e7caf1346da9ab188a457e3292efe9724070e77f67e46e06293dbfb40b78a1328112b04d4a1fd77"; + sha512.source = "1e7e241350d499bd0bf28b1c190b3c73e20d02be12612905305ad53cead422e8ea1b6b0dd633190170d7ab2ac2802559693597a8c6ae8527a7fe83af7cc61463"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + babel-galician = { + revision = 30270; + shortdesc = "Babel/Polyglossia support for Galician"; + stripPrefix = 0; + sha512.run = "1c8aef52e0eaba8a55e6c0bdaca4ef47012012a85d38ed268207227063d042f2f0b2cbafa3d1e4d71432e3ea6effd2a781ab0aefc536276de36a95d0dc834b68"; + sha512.doc = "a60ed8ffc43cb56aeafab8d09e8235eea9482ff8cdabc00da68938d980b20a7067da3286fa8ce19eddf9276b51e78dd944545cb8bb891bc13c31cffbab39544e"; + sha512.source = "aef01bd2587b5a452874e67c52bb4adbd89c5203bbe9a338e85449831434cbcd58415afd3d31d6e315eb91dff955750753bdc9cd38e87e3aded5350a350df547"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.3c"; + }; + babel-georgian = { + revision = 45864; + shortdesc = "Babel support for Georgian"; + stripPrefix = 0; + sha512.run = "07adf0a76fb15951db5dd01a0a1595aa9c8119d6e39e94eb36ac340932f763975abe284d738a52a1fa2a938a14f87fe7ede10758529c3f68c6d573dbccbcbc82"; + sha512.doc = "b2f45e828e32fef5e4ac130230050f035ec69607c97562a835ef2157ccc6673d4ae452624d2d1aded3552eb71d85d971a7e35d9774ad7b6e4ca7a8e0a71e48c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + babel-german = { + revision = 69506; + shortdesc = "Babel support for documents written in German"; + stripPrefix = 0; + sha512.run = "372ba15d67ae4a5299a8d193d4fbe1c01a89db686c4d152ce2fef05088be63e7d85a7cf4fb712629d1ec8b21517bf3881ad3de947e03e127af940714a6d059ec"; + sha512.doc = "e4ca225a4fcb681c0b59d833fcc8a3781f1315adaf26e7db62f85aca145028f9f5f3bc7a19b7909220ebbbcbd25d2fdf2136d0f1ff5a5823e63c3362a24d9750"; + sha512.source = "786bf7b892f48e09496c99b998c692f8cbcd40c2727700291fe1cc35518c3acd1caaeb0841bf3b1d05c3ed931aaa0d7ee6cd564f40b41e30fbec0f42eac48da1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + babel-greek = { + revision = 68532; + shortdesc = "Babel support for the Greek language and script"; + stripPrefix = 0; + sha512.run = "f81c220447f77f207dee02a5611edb3dfe68fb775abe932efc560de9a268570e688b3abe4eb3dcc094ac0c967360d52be02bc85c82daedcf173bcda269065938"; + sha512.doc = "deb5a889b55a93101ee4c8571dabf00f8f971a6a27c2531c9e71a74e4b972ac1fe3efc6a336a6f0a38bb746316ba38881fcb2b4a90b64fdb5fa1fed51a7d90a0"; + sha512.source = "aa891867efbcd19359dc6fa93334e43858ec9c4f7b0ae2d26c5d770fa2210fbfa16afe2ee8ca49fa3db1cd6b8680c8f06dc1069d760b65ebfbdcef0e54fc7da8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.15"; + }; + babel-hebrew = { + revision = 68016; + shortdesc = "Babel support for Hebrew"; + stripPrefix = 0; + sha512.run = "7feecb0fecb5ba203e494c9ca8810c7e58df692617c7ef1e15128bc3d2c947fda90267c21b0dcb2743b18fbcc120da2a0f1ca0ba76cb74cb2e53b3039dfb1c5d"; + sha512.doc = "849c598ce07421613bb7dbdcb1893efe5facd807e5ad54a507d62054119113f349e60186258b7a60bdc695d7fae757ae65d64e7bec68710046a4247e52510523"; + sha512.source = "cbe6c2798fcd9edf4f98520172cc56725081158d2968f961a6ad59436455bead4553070ba5ff52aee705464d261d0880c032850e51ff1514e631362f64ba0dab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4a"; + }; + babel-hungarian = { + revision = 49701; + shortdesc = "Babel support for Hungarian (Magyar)"; + stripPrefix = 0; + sha512.run = "5b05fe625155df3a958eaf44dc55190fff60ef356d40e681870ff27adbeaef1dd2b27402d9058d27dec665dbe9127d43a2e07ad02ef5a546c2e77479453678b2"; + sha512.doc = "696cff23cc5e2c32034729385c251c8dbeb5f78d11c0f8a0515af480f7a9b5fc5fa6c07d216c5078d5f1c4e71cabe093f023f294dbebb6b203337da9423a438c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5c"; + }; + babel-icelandic = { + revision = 51551; + shortdesc = "Babel support for Icelandic"; + stripPrefix = 0; + sha512.run = "46aca093e061948272d2a54ff9f95b94b101582f0ec9d795668983c37b518be3c3d76d2c8e6901126d3dd7342db003589bacce9a40cfd573263a953bbedbfc48"; + sha512.doc = "bc859f01f52ad51da7df9d458e507b62eb69e40e1dc39362ff32ea8ee8890acce8ce49120fce967f321c9d674f4334c62c9bf2b3f8017288b724ecfe3943d667"; + sha512.source = "cff6e1ef260bd61b6b098b449fc5dcfe5c708a36d9e5df679d21e5d84a62fbe298fd6581d9c6a79829df55809b2b12f6bdefe4367df05ac50830fa01d8c73dff"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + babel-indonesian = { + revision = 43235; + shortdesc = "Support for Indonesian within babel"; + stripPrefix = 0; + sha512.run = "9e42cb144d53dc0a076afffdbcd2adb7bb55cbc58feb77916e02beebfd1833fa308a0c78d0c26e1d187386b60572381c881da083c73ac8fcc651e77af17e2093"; + sha512.doc = "c4f86b646d67ce4b29e96771ea5657e352ee7633c344f24552a2fde4c387aea41f9694d77114a1454b106646d12d30b277fc9de589d3d4b666b00208978f5bb9"; + sha512.source = "30a1b987fee18a002316bb51e3497d22696e83ed48cb4a6e40da2f82876cd2ffc5b4ab95a0c1cef8a62f3d0a610401bf6552d5080dad3a9d0c45d4fca53dfe7b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0m"; + }; + babel-interlingua = { + revision = 30276; + shortdesc = "Babel support for Interlingua"; + stripPrefix = 0; + sha512.run = "e562cdb5b7cc35d14f4696cd3b85c6578a4daaf7899bf684026e50ade2113ee2314405756dd5f6ab91b6faea4da59a3546e30a18ba77037eab581ae3c98b044d"; + sha512.doc = "f2f86fcb4a132a9c1f5c65007c8f1662a8498a53f265cc778ad3ba33120a97317aac890c1ff72cc6b94727d215937352ae268cf51344053bec6e0ee5687d0f69"; + sha512.source = "260b2b01ec451d2a37e00e83c79a09f359a3e4a7c34b1396892259442a3f9d2df683e74e6f14a5cbb9b797f8cdc24d0bfdc7f9c3dbe124eb901f43d393f5e1bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + babel-irish = { + revision = 30277; + shortdesc = "Babel support for Irish"; + stripPrefix = 0; + sha512.run = "d9b1486da57f9685e136e14adc61773ec0b3a58ade370da8383476862ad798f26609329d445ee6dd0c6419c98342b720a6880939324d19f67e1528fe99ea3692"; + sha512.doc = "f5dd55c6a527cf19eebe492271d1404be3c995cac004d41160522c6c71e4a4636c32547fd64b93beae41b60d8a48184ff9b498f82ca0453bc72b601de3d66cee"; + sha512.source = "df023dd1a4b04e022f46f7202b616e6329b4673084876c1afaadd41faf4414e908411deda1ab909246ea7e1922c46b0a70b5e3e3fbc6c4855e060d47e45ca21e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0h"; + }; + babel-italian = { + revision = 69298; + shortdesc = "Babel support for Italian text"; + stripPrefix = 0; + sha512.run = "39c9a5b40215874e74a86d3f994900e1dc3f5c1d0067b5bec224b5ca997a2bb254b914c9a15888e896e73908be5cba309a8da82fa12d797c12a93037c245256c"; + sha512.doc = "ef2f87cfb66fff50fccc3ba4eec0f1c778765d49ac2976561f4963d9e12f1b2c486459827a44e66fbb42278fce72111d9aee373c1395f0532fcc42ab5efc5ad2"; + sha512.source = "8436a5fe438a56e27efc22d979e56dd8f55971c598cf40702b485172448c0e5c959a1d9971f201c9e5e14df1d37815a39d9572c9dadbf6c6c9b0969f3529a3c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.00"; + }; + babel-japanese = { + revision = 57733; + shortdesc = "Babel support for Japanese"; + stripPrefix = 0; + sha512.run = "dae227c586eea1b56fc88937f8a99803994622c07cf54290ca1b5ef6cbfe53ade8aec7064820044284cfd70fb6ee2ba908bbb74dedb54bf3c2f0085815c7eb43"; + sha512.doc = "cbcda3267222cbf5c38d8e7e8ea5440b94c3d7d0ca70b4f635b0751e824c690a4d495f0906b0d646de5f1ee08c74f72482020baf99d39ad0089002d5e523ccb5"; + sha512.source = "956aa7cc75bb2a007fbbf4ba4e7209251d3232f585976dc0002429372062e9c1933241bf05c34aefc481a82032594b922df3851d6f88bdbdfd7c181b9a44d6e8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + babel-kurmanji = { + revision = 30279; + shortdesc = "Babel support for Kurmanji"; + stripPrefix = 0; + sha512.run = "bbdd05e7106494f23892f3455ad224d3deb1881f5a73720e2c73e7401514fed324484416def64e2e8fd7c2416b521fb2d4527585d2302a220330925c296afecb"; + sha512.doc = "c31f7efd7415f3439635b293c9aad2cfc2632352534e579c0f8d3e74443fb7aa88a95e19735a7b65137d81899ad9d2ad8bbdb28c5da2ff05a2be9dbad552b0f8"; + sha512.source = "88f600cac9509695c36969ee2bb2041142dee729381a1ffa49489f32454e4c53b4d1795407436df9c31da040cc1d0c7e38077fc786e5cd6832ab9ccd14453d2c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + babel-latin = { + revision = 59800; + shortdesc = "Babel support for Latin"; + stripPrefix = 0; + sha512.run = "09a08dd3f90f83490867b786870b9591cdb3fc8d83c0e68446e2c97ba665a70f45c8b2553cfd6d965d31e6b2c435876ca569f4c24a8ddad4188ebd8b27b261b9"; + sha512.doc = "5a57f5b070cc86950002c40c5dc35407b0ace14ebe8ce64662260615bf5ae069237f5b0b6ae0fc795e72d9d1d3d9bbf7b30fd9cb762e56595058bebe436e5b92"; + sha512.source = "e7444e7c98837fc989a5db187a5769bffa993487c47f56ac5a686a92fc1b25f084966b411340de869a8325dc13fb6f85ce22e65c43debb63a2dfab2568d36cdd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + babel-latvian = { + revision = 46681; + shortdesc = "Babel support for Latvian"; + stripPrefix = 0; + sha512.run = "0e19f04d81195b77ae200946e5502fccfaedca5a6da8080a0e7351b684c7d1802a1d9d05794006561109dc8f9a0c04f45266e74068157caa9c470899cbec5230"; + sha512.doc = "e7c4f93db73431708eb902af924672727a6dc6d1cc9d17ca92436cea51310a10538f32825c13144ac35ec8633fc146d1788492f9c6ecf7b11ed72893ab6393fb"; + sha512.source = "ce0c59467b4cf94857bd0713283f46aa5c64987f5a4c68536566b98693b93e61ead42049a2ca323eab3b2b9842623f1318f2c27ab4a28d3e4660b8edffd988c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + babel-lithuanian = { + revision = 66513; + shortdesc = "Babel support for documents written in Lithuanian"; + stripPrefix = 0; + sha512.run = "83e8aa3c7e8e018f79c848ebd884f0d0a07c87953611342b5a9f25df1241ddd931ede31a03b1670922049948a6f9ebc88676de0a4be9e144a3f99e22fb857fd7"; + sha512.doc = "76dac9c2b95699a42018ad370afc1236668a37a71707a6c1a8fff1921df9edf30730f71337c1128f64b7448a0bd3f99e432ddbc1219534884e8476a8c7fdf338"; + sha512.source = "1ad90b302e3e7d415fcf0534642a22fbced05f0cb3ff9218c73175b3bda74d0a7c96b27dd1401e12885233e2236e7be479d651829dcc04906f94f27012a5ee8e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + babel-macedonian = { + revision = 39587; + shortdesc = "Babel module to support Macedonian Cyrillic"; + stripPrefix = 0; + sha512.run = "c061ca1ec358e4d8df05e0adadd5d87695cf3b9f86cab52eaa0e08b1f5b1fedb66febe32107e74c1926fa4d697b056d7d3f119db525b90ff7e7bde30fd015508"; + sha512.doc = "7284141fbecedad06cfef78f50b4c13ebb3af76ced474c456a364c97943b51b9a233ecf6797e561ab0936ef7d082adc80daea0de4e961baab60e494bd72f7061"; + sha512.source = "c5866f925540742391981848fb5a76908863fba8a7c77da97b6e6bc634a8425c2d39459f789749cd1ccc4e7888e6d0f5b40d3d9a0a76611f4b1ff2db80866c72"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + babel-malay = { + revision = 43234; + shortdesc = "Support for Malay within babel"; + stripPrefix = 0; + sha512.run = "6e2f95eb95a7ffe0b21789a65e74936139d92381867e507ce56bd8eb39b4061b177c10fed0a0226e9091b963370d3c001115473625910f03b699d5517350f2da"; + sha512.doc = "b06395639e743571870dee10e029e4622c55683d7a9d728fff381bcabe4bf694511230795c79da4080299938acf66d03cc55fd45cb8426b484e19e0fb0f73b10"; + sha512.source = "4e7e47a29802a7369f7bdcf29ac0fec13afd69f42c9b01060ffadb2cd8d1f1656f7f6ae8fe5ced67d9ce6438c26a07743a18bd38c561fbe8357e8ea3c685a5dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0m"; + }; + babel-norsk = { + revision = 69603; + shortdesc = "Babel support for Norwegian"; + stripPrefix = 0; + sha512.run = "cd5511b9ffa7a009cc9b330fadda4edbd431083a3301bd4722d19d9c9331cd160fbf79d0e246feb2d4bc69c6e2800931c4e697b9a052f92a424f5f59841840ee"; + sha512.doc = "764700736d45202ac46553014d8382a26ac962d964bac3fbe9d1c90f341b99fb1dbd6a44348267d55f75228bd155aa70cd0080870b627910ebf0df0bf344e0cd"; + sha512.source = "50e6bd75290194441785e04a4940c682f69896fb5e6d0e96492e0565f413bd6f306ce90b228f1a3abc9a88a2288e8db80a87c443a6fa1cae38f5b896c6fd7ad3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0j"; + }; + babel-occitan = { + revision = 39608; + shortdesc = "Babel support for Occitan"; + stripPrefix = 0; + sha512.run = "f1f2f26b5466d10e995d76f7003c202650e3976b82b431d2bae768a582bc0c5662fc120739c49fcfd1226da3595c8a6b2e8c952a491718c45e69770c09d542a9"; + sha512.doc = "86433fa646eb6b2f7ee0ba54f1dafa73b81bd98012859c59408883cc76ec876720ef526cb2f526bd4a8385c0371f9bb01ae6d604661deabb4ec920172986adf0"; + sha512.source = "95bd15481ed6d20f1b9b71fad9661e5a12e4f29cda61dc8910a1601fb0f97cb4797d5ecf8137c9465a623288dc05e58c84740ee5b663b1f30f1c984d4dde9b03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + babel-piedmontese = { + revision = 30282; + shortdesc = "Babel support for Piedmontese"; + stripPrefix = 0; + sha512.run = "72fe6338ef6f172a23790402a632881906689117e7227b6f2f2fb6129fca9a7d44c42ddd48e8286252f3b5fce9dc34439594882c1f80f33557ef5ef70afe4993"; + sha512.doc = "a2fa0cc72a205fcc25c2baeb7717a573bf8f2db5438e49c9de8a90e8da37d4f267ff30f08f8bb79f08756f5d227acddba8c069c8a5c257adf95c3afac271927f"; + sha512.source = "6020ade081108365e4b23d9b3c9ef789e95764748d06a647a071e8ad77c945593a680c7669c57e989e71104a8bdfbf857eec9599327560e4453e0a81b9d309e8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + babel-polish = { + revision = 62680; + shortdesc = "Babel support for Polish"; + stripPrefix = 0; + sha512.run = "0088388d0dd6459e5ac3062cbd5eeac7ae0d858b93ff278b6bc7a95e8fc4846d8c12530eb41ed972f5009ab745857a5599d9ce25860efa06a3a1dddbf396b4dd"; + sha512.doc = "536b3ea736a9e876f2e7e942e56841c97de27b94d00e58656e9d7ed3b27aaa43947deed1d04fc54530c082095ce46737f05969afa85fd5de57baecf5718815bf"; + sha512.source = "21d9f5a3f4a6e9f7595b8e38af5758f0eb06d8f390448a39c164b5c4e7a83089e3a254931a1c23e8dc088eaa6874d5f1451b78f14b7b8dee863daec62f78a490"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + babel-portuges = { + revision = 59883; + shortdesc = "Babel support for Portuges"; + stripPrefix = 0; + sha512.run = "8b63140bf59669873f55ed65925eff65cab3bd6bb404b7dec962b7072243c2b2be8d2918e379ba02b557f7e07d1d490b3cd0bcf3756bbfc3f4e63ff540e73c28"; + sha512.doc = "1fd6cdd08c2c00340b04ddaf078d1e9f0b1c51dee22f805f00bb46e63c46c4461fe4d9df174c2844a6ed01f7b52333a6290cd0c8aff3820a1659839668308b91"; + sha512.source = "863f5c222f11288cb4f041a04cf543494409bc69df67a65b71ccd79411e4a292653a6bc48644d3b7700c0a01d1a456fa56c0ce867d6177983a8b7c98b5e66aab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2t"; + }; + babel-romanian = { + revision = 58776; + shortdesc = "Babel support for Romanian"; + stripPrefix = 0; + sha512.run = "ca6318ca8453dae2286b305766c6ced299f18f390c0d0f44e77ddf8eb4b05c31c7a2b01ed52e271f68acd6b127650b370d15ea9bcb3b591fd01e5d3a50b17db5"; + sha512.doc = "73ff361e7e03499427529824b83ea584a5ca190aae3d1ef9a5f4a5adf52cc8ab02f5652c92c1464a702f581e29626fa9cd14d4ee84f6cdde69b38af9d10b20ee"; + sha512.source = "0e4aef9bf20e6602dd946e2ad2856c7ee7849b492d4b66334450b450faed146eef83d2b7f13506eac6f34507bfec4ae735ae9845d3a21c36d98105bb353166c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2m"; + }; + babel-romansh = { + revision = 30286; + shortdesc = "Babel/Polyglossia support for the Romansh language"; + stripPrefix = 0; + sha512.run = "db28e78ce4e028ead2f31fc84d0e7d8997a18dff3bf6aed0301b79bfc7bdc52a8741f9975766d36ca9ca2af9908e7e0bda9e454abf268a1eebf4693c30f5a5e8"; + sha512.doc = "42f9b63d92e522b596839d10c1b90ee9052cac86cdd54ac408063c24456b2a7b5adbfc8208a0a388fcffbb19b98ae0810f7da9d6bc517ddeeab78c8389bdd5a7"; + sha512.source = "e26e9ec260d7f01550799f90c6bb76c0c29cd200896c4634085627599f5c3d7438159ea9f72df416e334200a7e1aa3f063dfe9bac5817f55c8f6cc83fe906a63"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + babel-russian = { + revision = 57376; + shortdesc = "Russian language module for Babel"; + stripPrefix = 0; + sha512.run = "5acec3460294e71e6def384a7863a849e8a5d431dde49c77a4a7803af5373b56fcd376f6e73b237dd230728ab5b536f903b6a1bb19fc478dd5e742293a6e6ca8"; + sha512.doc = "387919d8bc226b00492f9924486a2591d15083a5a8e2293889f6532ef28fdd6409e2a777e728bee7f7b9796a304f440d8cc5fca246588d2b3ef0c84c79b701ce"; + sha512.source = "71ca4e9bef2fe88c8dc41def4facd4c33145692cc0ac2cf05eb1d455ea83bd93b3cd29907772a5ce84168986db0fde8f5748622a4dc9b6857682c4c0aaf04f34"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3m"; + }; + babel-samin = { + revision = 69604; + shortdesc = "Babel support for Samin"; + stripPrefix = 0; + sha512.run = "bee2cb83522430ff8bc8e65513d2268a529a041b85b10315c4902749d840ee1716db45df56f259a7db726a94147fdebfa573e99b9e654c7ed4df87f5d574877e"; + sha512.doc = "cf8a3c56fdc0474fbb3080743fa852dc22ea4f1c791f7d9b4779faa232442a22b46662c92e61bf84953c8312ae9fbea859282799b393701b0c176e4d23edfec9"; + sha512.source = "85b57da2d3bf5dba4c9f02d10dedd4400696ba1827793e81f83343fbecc15e5d2fe507138c3c309c5c8b02f0e868606e344c05db9dc9c84b032e4132c65996b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0d"; + }; + babel-scottish = { + revision = 69610; + shortdesc = "Babel support for Scottish Gaelic"; + stripPrefix = 0; + sha512.run = "16632367173512a1ff0d678334071893efc91d9ca16279075a63b84acabaeaa8cd35263f56e6e3251cd57a77bdc9f0613c34e60f0acc8de14f4e0fafde751d81"; + sha512.doc = "725a988893fa1cd3064136376de3475fc8da63993a40c0c63165b5c13fb4ae15a1ab856e2075e05d3a4e492d95d1aa12288b808ac3a1a15ce539a35edb289aed"; + sha512.source = "cb640792dbfbe7733238aa67283b9ba954456246ad7ebfe0ba65bab08060e06a5dba7441fb2e6cb7c421584f8377273469477a5d1b6dbbe2c593f844aca80ae1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0h"; + }; + babel-serbian = { + revision = 64571; + shortdesc = "Babel/Polyglossia support for Serbian"; + stripPrefix = 0; + sha512.run = "0067de0fddd73a7c68cd2b3a12b4eb620c6b95886c4c34ec1766ff9b3c174ed2a8cbb1dae72cd8adcfe55bf01e4d24e47668e76babdc57ca9eb59704a5ee7cd5"; + sha512.doc = "e83a8db6c60853dea918d226fe643fd06c1cd65bd3b9e29fac962c029a263e75821dcf6a5a3b33ba44b12321d5e19633f704885e77017cb43e9555a4e060394b"; + sha512.source = "016a726438759e5959938ee6bcf3735386047581eb166c244116f0032ee0cef5345c851e6d90a5790b132c2f98812da14f97fe2e96c23aa4dd48d7f50595b88a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2a"; + }; + babel-serbianc = { + revision = 64588; + shortdesc = "Babel module to support Serbian Cyrillic"; + stripPrefix = 0; + sha512.run = "c4c4bf91fb22d0766bbab6a9980b0faa19f4031cabd044a309478f9ee700bc26247a10051f10d36c8cd88425820d2f800d3947d005fa9fb8b54429efdeb3c8c8"; + sha512.doc = "a173daa03c9da413b4f200a0427e5293676ff3bc64dfd21d945977fc78fa9172ebcd73bad2c7ebd8976ee252cebe3c78d03ac9aa10b2be9984bc34b66ac5ac66"; + sha512.source = "13a4981f6ff19cc1664bb2da360479814723651379c445e3fd272167df761dd07c3cc5b19072fe99de8b08b2b41485d08aca6fc1c16325fbbf7ce1ff1fab77ee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2a"; + }; + babel-slovak = { + revision = 30292; + shortdesc = "Babel support for typesetting Slovak"; + stripPrefix = 0; + sha512.run = "b14b98d2cb66a3f8f5d8a313d9208a700d1c3664a5bd23f5baf0d9aa2e3acf3891a0536871988e7579020570999ea05a9dcd60a404cd6670e3c1cf8110d9094e"; + sha512.doc = "da1d663125b913e3480ad147ac1f5c1befa00110e71bbd2d42384db03fe0f0db3133b49e26d1a336b49c10018990763d42ef49b64440c9138d9d938057ac90e0"; + sha512.source = "1668ed3f373e58ee9a507637ed4c17638fc429a30ad6087c7f153f8fa23103c0a93c0c0beec73380d41925ef1ebf25ac214f1afc95793edad65545256e6ce5d8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1a"; + }; + babel-slovenian = { + revision = 69742; + shortdesc = "Babel support for typesetting Slovenian"; + stripPrefix = 0; + sha512.run = "b17956aa2afda17c6ece09f372ed1777bfdecf358fee13260da6f73f971eecd5d315770d01e83def27edd2b06828065ba1f488bc3ee879539691424256c39ad1"; + sha512.doc = "d50461bfd4b57dca583f53fb1afb1ac97382cfee1651d55538017d2990b331cbb471a060ad26fb86965f9d6b00f15da39011368bc9162120b188ad505d7620e1"; + sha512.source = "e7ee24b9f25668e55a539bca4157b373303f36d4c79100e120e7f991f2cbd42efbd8d6c3c5be7a69f7468eee5c30330028175fce4efc06f779900da6ac3085cd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2o"; + }; + babel-sorbian = { + revision = 60975; + shortdesc = "Babel support for Upper and Lower Sorbian"; + stripPrefix = 0; + sha512.run = "629a4f09de7ba1a444af0fc4e6db9f53635b0e000d375296697096c2debd782496d7b36f7745af42a8a19f6cc24c6a832595bc6c89ae20d79701c7181d1a5d68"; + sha512.doc = "ebb371730cafbd37a4c54dd0ccfe9d6e187aae747d1b6de9202fd09a85b5b38f8814e0bd27cd86e51c5aa62e6816ac725e28eff9117d6dc474a9e32f3b6fdaa3"; + sha512.source = "57d29eb253398abf3210acf390cc80e97b444c370718bda75108fd1d70c1c7d2fbfb43f6387751cfc90b9cb9020eb4222fca0821d10c4d52750bfde05a2557e1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0j"; + }; + babel-spanish = { + revision = 59367; + shortdesc = "Babel support for Spanish"; + stripPrefix = 0; + sha512.run = "2da1b62772f462c8e058edac7d305804be6234a720446288fbcbe2e574a1cd9f905e4220b4008dad64c0e59b15194e2627cd1e295003c1bcbdd523c8498fa26b"; + sha512.doc = "9c3e87e7de6fa46b0c6b9da65d4c23e31640628fd6fce844b53d896ad85813e9b804fe4a36c7c2c1cf26550a51551b39150a12467e26fad4f9bb9094dc0af817"; + sha512.source = "48e4293f6c7aafed829e273e0e5ac2709a082e648988bb40e5bd0b36aba6d84aa036d07108a2bc76c65b4ca029a9652ab38268b7e7a87abddc03f00ad55a7fec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.0q"; + }; + babel-swedish = { + revision = 57647; + shortdesc = "Babel support for typesetting Swedish"; + stripPrefix = 0; + sha512.run = "d3ccb281b9a5405866b0a4621cf0ea4fb75a085041de5d52ef0eb6db370cafacab05d1eebfef21f9558f4110e19b739e6c5cc424709e06640e8290a9c01722d6"; + sha512.doc = "33a59fb66617ee8ff66643e57b0146940060d04bb7bf2764bce97a062a955ddfd80338072434f86d86c414a22d5ce6f120be4f21523a3d81e6e88947e9c2e57f"; + sha512.source = "fe6e091f5cf7b0946a6be154af2907288dbc5ca58a003e7009740b2c85ed22075afb424f805427a5838e3729a35cbdfcd8934f860a32eda0523f141f3c9a9952"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3e"; + }; + babel-thai = { + revision = 30564; + shortdesc = "Support for Thai within babel"; + stripPrefix = 0; + sha512.run = "4e3e5c6d8944040177a21f04e63bd40e85c24e9327eeddfe98072da38590c58523f676fd7532e4e00d0e3cc88121a2885788d606d2dc9ca02fd91c7f04a6ef57"; + sha512.doc = "791539a57534c4870a81ec2318298b29e9e9ad925161b0a4cf52c49086a865d5b58b60da10829a5fb37e66f0d161b396beb127e586457c556875f1205fac9360"; + sha512.source = "db43b9422d95579f9bec645671e5c0ba654ce2d7ca89c3e98b6d910f6546a30b29656aa7061d03b767aca6eb2a01b001613a8b619d597bb9053a8a0df3376b6f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + babel-turkish = { + revision = 51560; + shortdesc = "Babel support for Turkish documents"; + stripPrefix = 0; + sha512.run = "02916936992e00e7aa884b46b6f786dd0fe5a0aaa6e2c6c4e28fe72de7fe5260fca7cdd37efc4a775a8d172e3993c98df7cec3d1ad08f01487f7cb0c8f2d179a"; + sha512.doc = "06931a6b9987a7affd4632ea5cc79028a2a88c584523c03ce79c2a15268947fb1103137da158886c7957e0a7c938ca69c1c5c7d88104c892cae611c914f6fb93"; + sha512.source = "54f3c4bf5063c571be3ae2ecd7c86882cfac940ab942e66fbb18346a4ab1e266b716d276294dc6c622b3ffb0b86cdecd70411314b334be491d0ff56604d0ead0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + babel-ukrainian = { + revision = 56674; + shortdesc = "Babel support for Ukrainian"; + stripPrefix = 0; + sha512.run = "10476b0dda4e80472aa8d3b3628d372da10f8badd37df6beca434e3bf1b9e135972acd5decb63eb6f706b700ef969136117b96ae5a6d6209fd75b9c13d06567c"; + sha512.doc = "7dd3c5d02024cdd4e0c06b57d3aef0a723aba718760efd4b1214b7da2dca8877293bdfff2d3893e531eb734d5551dd93afc03dc4f3413822a3df0b40b4bec43b"; + sha512.source = "0fec3b7b65f3e2a5c0b426d4c55e55ec0551fb38a786cd36db52cdfd6c87909ff82ca21328ea33c7089b39aa2694d4d62ddcd1d59255ae929d4ec85a44abdd62"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4e"; + }; + babel-vietnamese = { + revision = 39246; + shortdesc = "Babel support for typesetting Vietnamese"; + stripPrefix = 0; + sha512.run = "ddb75c37017c1b0b6af2cfbdf574526cdfdce2099d599a23cc8ac819f6ebe5ea7a2eda4bd743af93d78835ca5dccb3d7fa55db22b3154862aa4affe83c28185f"; + sha512.doc = "b078464ce848b24d692d4dded7c9827f37fdb4141b719c71e28b5ef0a827f9ea5c2137745f9689fcb89a486d4a88a94a043a62348e86b5736a68ea48c7f33e16"; + sha512.source = "ffdf9a552fd79b1b51c0064ffef8f9dca1e618b41b0abebd2a22152e8f2bde04a9e35964250e8bd42912929d3e6d8dab6fa430ce302a1f28f27676015667d489"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + babel-welsh = { + revision = 38372; + shortdesc = "Babel support for Welsh"; + stripPrefix = 0; + sha512.run = "89526156517773131b5452f2cf5bf773f34b97b2e35e786f2bcd4dad512519766eded269539ada9d5c34d4b1f02d65bf55a0da0053e6bd7b7a3c66c606cfb60b"; + sha512.doc = "cb0ff59d9c02bce3028f0025c07963d42856eb4e68f322b839ed1ea5f51abf372ea17fc695e7be4bf87f75b3d2b163f801102f469773a4474bd0d0a72a47376d"; + sha512.source = "42c52ecdbb0b1de295800bece99804a481afffa2848a2146429b318f964e3a88dadfca9c020e9dec6bb3db1548ccfa79db3e66edf366a32fa83a1b6ba91e7fc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + babelbib = { + revision = 57349; + shortdesc = "Multilingual bibliographies"; + stripPrefix = 0; + sha512.run = "90e78ff6086c80e0102ce7aae74070d3b1444208f3957e354f2c940ea4d279f87ed59e6c3310c6d9fc1464c227fb0eb4c3813ca679a6e94295e0b824cb527376"; + sha512.doc = "cd5785a17242a523f23093f8389f1d4c5e3d49c0656ac3f168a8627fb153b217b5a14e5c990c7afd1c5ea7324b5aad2e3dd40e8c2ca0f9ba9064f91f7214bf90"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.34"; + }; + background = { + revision = 42428; + shortdesc = "Placement of background material on pages of a document"; + stripPrefix = 0; + sha512.run = "e9fd9b5e680082aa3e9f0482ebe41a753088a1e61b85876a9685942172cb9d5b6c9819ac2d61e0274f988b46d4f962222ce0afeac2827630edc728125761f214"; + sha512.doc = "518b0785e562fc6f01d6bba6cf7157c847faab151bcfe7840d5f2c9d8fc3ca54689beaa8698c92f24c196393fdbf90b027165be80e6cf07e9ee79ad8073d8533"; + sha512.source = "36bddbbaf17dc15e72773400e75dac754a2eb60c106c7a6861226b6dd2a1955fc016810a10d5c90ff56b690be922affc0427c1cf3b5e5c1f334231bc8df69872"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + backnaur = { + revision = 54080; + shortdesc = "Typeset Backus Naur Form definitions"; + stripPrefix = 0; + sha512.run = "adf008822e18c19a7e9e0ef4eb54230ff267ba287e3ef6c0686552ce6b51c8b13fce10cc4533a733f2f6ac09739fec4c2a5878423db1c65a993c5bc16cafc643"; + sha512.doc = "cdf5a269f4055e8c5685da95b18501f7b69ca8b236fde8e60d39760a562bac9bca5da3afc06caf18bc4092a97f76754a48950881a0e0aecba90c40904e699637"; + sha512.source = "45142a281a29b1f9e24e128f05825ef2b8e8549ab5de03607cb018dcde6e98b751598e01f6795b14c81c190a275162eb8e30402006f4e7d2a07c2effa4a949ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + baekmuk = { + revision = 56915; + shortdesc = "Baekmuk Korean TrueType fonts"; + stripPrefix = 0; + sha512.run = "f9270a17459444e128b5fc5d12b943043fa4ec2f87ee5996808f9dfad1c4c4146787db3ecd267767a375d1fdbd56e15850b25cd7c9c71ab270e3517b5863054a"; + sha512.doc = "3a3819f892bdf69afeb66b9fdfbfe1ffe06e2a488425e814cb3a1e223ec9659a71f0571dc25136e0f7afcdb616f717dcb3823b89e640b0894313683e4f79b197"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.2.1"; + }; + bagpipe = { + revision = 34393; + shortdesc = "Support for typesetting bagpipe music"; + stripPrefix = 0; + sha512.run = "7d815e23e9b5d686e0df54c4a0ad51c85360c7b3879695977fb9be2b69cb343e1c9043c2595ac5554e87e0a568b2441bd16a43b334af4b43e5302eba19bc33d8"; + sha512.doc = "696047cc4965a06388a61232af9336f2010fdb0b869914cf66ac9b052d1efd85ff05119a277aa127cf05f56e03b63060956c7c284df78e93b0f0beabd691d33a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.02"; + }; + bangla = { + revision = 65786; + shortdesc = "A comprehensive Bangla LaTeX package"; + stripPrefix = 0; + deps = [ + "charissil" + "doulossil" + ]; + sha512.run = "1559fc1599e2586c660ab544a5d7e279240a966da677fb658162e8497e17b574308f90f51823ed861d52c2d0f4c0b836316866b2d5cc1b0c3ebfa82caa9334d0"; + sha512.doc = "dfa23cced9bc203d87f4ad344f3f4448b1950418d6a01c72a9b56e64cc7b5e959ba6845e55c592628f11bf677b93aa68218023e32116efa8580938b503639f50"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + version = "2.1"; + }; + bangorcsthesis = { + revision = 61770; + shortdesc = "Typeset a thesis at Bangor University"; + stripPrefix = 0; + sha512.run = "3d297ec59cff75977addc7320f90a68a6fdd87bcf5aee4947c14e122dc7741e443582075eec4a9b327c3e988da500934fb5426d5e9fc17c7decab4a4872cce8e"; + sha512.doc = "be5e7eb308d2678c3cb7464e234bd63f551a560677e67bb6b5c9dec5ab59b29bd6f8a66db300065cb472b9772420e443a3fc7a4d31ebd2557868b3a6b2fcfe2a"; + sha512.source = "3141fdd4bde1e82edf0677625c3b599516ff8b1f71b19c4a486cf5d68361135983f4fcefbdbb390bbf324d78eafe4bb6ad9ffdca8f7b257fa98faf590ff23c06"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.5"; + }; + bangorexam = { + revision = 65140; + shortdesc = "Typeset an examination at Bangor University"; + stripPrefix = 0; + sha512.run = "df88d8051803726d508906be7dace3ef15f455fd00c1603aa16e9298af75e9f38d306ef6fb319b713e21dcb337eb93fa44a2baba2aa15f79076e6ef55d38100f"; + sha512.doc = "b8db60eec0ef7a57e0d0991f70ae7d1d7f87391797521e03baa916848a8be827a97496de8af8f2f95194ccedd923288f471116e677371b99f75f0309283ff50f"; + sha512.source = "639dffd548f6937a01b24e5946e58cfce47609257e6964bd51d441d2ae3435f16d86015f50003b2c3757b8101a50375d02ce68be19e85c6f8adc7c35338aba18"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.0"; + }; + bangtex = { + revision = 55475; + shortdesc = "Writing Bangla and Assamese with LaTeX"; + stripPrefix = 0; + sha512.run = "84d2b5b85f423e171bb90821f9e4518d06a640c02b03638295322e0ea6aedfdb831b6a4e62d3c25259b7b70aa0fe68ffe3081f6de0b0c71fe03c10616c74347e"; + sha512.doc = "05ca923b97240a766d3ff448c6b16a33613a16e3307509ed7c369da6ec889e7e19d57e5f542b829c788ac4e87bd7025a62af9f7127e2eebe7fdd3eba4aeeb7ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bankstatement = { + revision = 38857; + shortdesc = "A LaTeX class for bank statements based on csv data"; + stripPrefix = 0; + sha512.run = "c388a06b1527fe131dd56813303ca727c035f2023b25426e8aae7387867afa0425e4f739c2698b30af97737557c068b94741dce51f8df573c29c14e4cc4f02c0"; + sha512.doc = "5290904ce0aab9e4e098fb4625c8a0cb5c728769faef312267131eedbee937e1d964a561b2c001c38131ff93c9083db46275d693431b2447267edaae19c296f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.2"; + }; + barcodes = { + revision = 15878; + shortdesc = "Fonts for making barcodes"; + stripPrefix = 0; + sha512.run = "e4b9f432d4464da19d279d8e7a5c2ccbd6dbba27fd175bbe7385c0f34199955c16427fc7bf6b487cad1da0b2e28b94d44267a0042e811fc73a88661f3d312b91"; + sha512.doc = "2054d8b87084bbdccdea4a2c05c43b427249d597880b3870fffb98bcf0bf88adf64c9110e3ff98d1755596d559ab548a464a2d681eb1adbaf57cc748424e0d98"; + sha512.source = "9b72c54e083622b95df17e643a6466125a22fb62e3ebc64c3b0f5304253ba5625f0ce2e0071dfc4e06643259b4d7b575a1bae5bc6beb213e5bdd3e83074ba9d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bardiag = { + revision = 22013; + shortdesc = "LaTeX package for drawing bar diagrams"; + stripPrefix = 0; + sha512.run = "dad9b5a50e5a82ed0285fb36c609c4302f7b22daf71c159848788d8c7c91c19dd44398e98357dd58366cd97140e943540d05b6e1c9937124a40c4b4070065a1a"; + sha512.doc = "54fcfb2473c6ece46ec2b01853c89046c7f5396e97f62b9175cedaf4b1e783285c7c417700c827a7b9fefe5055b10723ce278e5fff0e864434f84020472c1cd8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4a"; + }; + barr = { + revision = 38479; + shortdesc = "Diagram macros by Michael Barr"; + stripPrefix = 0; + sha512.run = "6bd398efda5027e3b762b817ce777adb9bb1c8e593ca04386adedeab7dc26ba382058ccfa3c281ef8612fcc50c9b719e7f881dcde0cfec041cf4b2cd05f238f8"; + sha512.doc = "6600ecadc60fdd00e4d894969a84118265b5c5d07e9a411d3f01887fd1e94c481b117cbda80451774294dbb989a61379b16fe3ba5c3b8363a9a2485b76752aed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + barracuda = { + revision = 63708; + shortdesc = "Draw barcodes with Lua"; + stripPrefix = 0; + sha512.run = "8081a9b253c77cc5e68efeb8c66beffc189898cc6ba80cd96be88c57d3117b2c270e439fbe47983309625c90def14f3b2d2c50b567f4f461e4c0ef591c7ba63a"; + sha512.doc = "18767583117a7e16e5b292aa2e82082eed1f48e7f2d8033cf605d9a0b9f09f460826ba4c43af5e43b003e6514909cdea30e24666b8c518655a9e6ab7b6129953"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.0.12"; + }; + bartel-chess-fonts = { + revision = 20619; + shortdesc = "A set of fonts supporting chess diagrams"; + stripPrefix = 0; + sha512.run = "33c52620d32f5e79a702bb664cfcb47409faa049dbf7f34cc5816005b4667267810fab130e3aee1ff7a7e3292af37c2d376c01dd2bbf17be199a22cc36ba751f"; + sha512.doc = "e61232eed7f345e28796192d836af9de29bda257fb85460f67a89bbdfd7dce01b8361962b7cccf314311c0e772e69367f2921ad898c106389195164b6c925ffc"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + bashful = { + revision = 25597; + shortdesc = "Invoke bash commands from within LaTeX"; + stripPrefix = 0; + sha512.run = "b46abbc1622fcc15d65981368d5c8a7528f2142d722604eb028e0cc364d6e908587cb58a340283e7afa43581ce365ac7a545bef65d1cb5e273e777467231c40d"; + sha512.doc = "5017fef7ad1c67f33cc881a94f75cce97d422b047d8944dbff377b1f3f3d36025b7b73c76ba2ed96bf06b0c6e9c3e99b97ecf36e2ec8ab8b7e1893dc11f201f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.93"; + }; + basicarith = { + revision = 35460; + shortdesc = "Macros for typesetting basic arithmetic"; + stripPrefix = 0; + sha512.run = "346edf1704ed621a326e4f945b8f5341dfbd2d46af095691c7b853a9683dfb2254d443ae04bf235f192a57dd55336dd50249b0963bde041120468499e61012b7"; + sha512.doc = "bf454539b0202321121437d2448c3b49a2d6122459af4788a573cc2525f0301d1267b12f3df8636a36fe807c474cb23347a41a2c412eb12b674c58541516ade2"; + sha512.source = "6c8b449cd8f356be6403a48943d6b91cf2c2dcff90020041a8dde0fb8ad1fa598727137dfda0b091ee776c968d4dffdad1215716111a36be16cc5c5e5b2cc5e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + baskervald = { + revision = 19490; + shortdesc = "Baskervald ADF fonts collection with TeX/LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map ybv.map" ]; + sha512.run = "3c0451c43f81396038c3ccff2b4a9b07bf31023fa7afafd2884506928dffc8a9345ff0b8c8114f20b3016026f4532ab138a8b4787a37811501659a0f53c98941"; + sha512.doc = "e9e2c8749e29351b59690027b019da441de5c74068aa5a8457e3014c751fb23dddb0e8b94bf56529879086ea8c58e023a23b85ed9bbaece10f6dcc65ddcf3ff6"; + sha512.source = "60122d6a04e88fecd4c6baae3a657f40bbfd48895cc674e95ee9e2b3f9172e01d009064a616f2d7b3f48c41d43f75efda19c3ca54feee612f1866fe64eef366e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.016"; + }; + baskervaldx = { + revision = 69273; + shortdesc = "Extension and modification of BaskervaldADF with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map Baskervaldx.map" ]; + sha512.run = "f78b61573fc99c6696dd9aac4f108f473996c5e67223e721db88f355b2e55a68f2b8a21c7bf994f2ee36a8fa465b55b970d65407b1ecfe1ffd7e00061bb70753"; + sha512.doc = "8d1b8a3e12b958fe5dee50255c291ebe8ed75e8733a28a5fda7c927a9253e0d94e68b51e81ce8805e3c3855893f53947429fa9684c99925d80176522c72119e9"; + hasRunfiles = true; + license = [ + "gpl2Plus" + "lppl13c" + ]; + version = "1.077"; + }; + baskervillef = { + revision = 55475; + shortdesc = "Fry's Baskerville look-alike, with math support"; + stripPrefix = 0; + fontMaps = [ "Map BaskervilleF.map" ]; + sha512.run = "d7ff1eaee4b050128ac89aff0d48d50c99936b1e04e778d0594d28ad3b225002012cfa56ff515486c98d9769d499ba5f4584358f8969c6286f07bd535b478ff6"; + sha512.doc = "131117d2170aa77f83954d61d630cd0714c7542f3b4f5e868f834bd091d0b4cd76185d478ae2e4d35c8b9930262d3f14e675681540fa8363b4aa060ea5fd96d9"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.051"; + }; + basque-book = { + revision = 32924; + shortdesc = "Class for book-type documents written in Basque"; + stripPrefix = 0; + sha512.run = "645d55362506a1bcf563a12ddb7616f085d5cc75a45cb2f0dcdf551158b48f595cd71278caf9a0c35f1d85ca66b880e6f59f9ee416fb9bf15cd7c18bf6fda2b9"; + sha512.doc = "7954b1c86ddac3a1409bf16cc7db5470332fb86459257756200dc794a3443b137e6013a7e904bbf63e8fceae64850418e56ad08af12a448c1fe507e29221c7be"; + sha512.source = "4b8a2ac7320d04d5e35a0c789e5b548582ef4e0723ca45231250b44ab08fb52a73e88f5425218ecdc3e3d35e01042b64c711ad78aaef0c4f119ebd1abc4dc36f"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.20"; + }; + basque-date = { + revision = 26477; + shortdesc = "Print the date in Basque"; + stripPrefix = 0; + sha512.run = "2f0cdfa78c3b75dddc5ab9ed15f651308dad4e598f9623eea50929c48d6f15318f768b95d55ba124eb048129447ce1e629febbb3fa6925677b2a46ac94d82654"; + sha512.doc = "249bfaabe93c4306c32c698eede8835cac334a27802253dc6ce1f380eaafa5c79fc3b86ee34ddd7b98df043cc0ccec137ae3d342cd3904f39203b0ffba2fc9b7"; + sha512.source = "f38091d9c38f86efa401f11759c536dc3ec041688ef9b1909dbdb5661ea096b7e4d69ee78a5beb194e1cdb24afc8ea07e26f2c9c45777aae517351fd4f3a2b86"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.05"; + }; + bath-bst = { + revision = 63398; + shortdesc = "Harvard referencing style as recommended by the University of Bath Library"; + stripPrefix = 0; + sha512.run = "0d32f9c6121a57900fa3818cc4efdfe7355346b7e25971f21e72358bed84e8a56467df9f8132f2666a5047c8a47606a4745ebdb5a00bdc02b4d33155ed72bec4"; + sha512.doc = "45ad0c20ad0cdab5ea22bcd3eb728de173c0c75fdea8b315f2edc5af977406e1be2db0d41b5f2d68e57d68bd3adf7e34e1b3189b401a0a7bf1436376f0e46e08"; + sha512.source = "654e5b3581e66c9df05d7f42cf00b5ad818406d00a03122aedfe1e7f4292f6c6bcbc6be1229ae62303bcb0300c7351c5d0d655da493da0d799aa3183e57dfd1b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.0"; + }; + bbcard = { + revision = 19440; + shortdesc = "Bullshit bingo, calendar and baseball-score cards"; + stripPrefix = 0; + sha512.run = "ac7fff708b3e25312460a740241ed003ee471f84dd4d30388d9cde8380ec9a6b6fa6fd6aba69b170c464a25bec44f1669fabc4ac2d7d3e216885b7e683f88af6"; + sha512.doc = "9e4561e97ea77c84e3c1cc8f75ca61318937c45b7b50dab66d6745f61725b6397458a05e50a267937bf6db4b28558ff0e9f2225078b9516fe574620982ab2cb4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + bbding = { + revision = 17186; + shortdesc = "A symbol (dingbat) font and LaTeX macros for its use"; + stripPrefix = 0; + sha512.run = "d5505fd7aaffead426a873844112e11fba47694ab07d0f5c88be31188fbf4a09ed4b8f8bce75221b2b2efb3ff81fc132fe54c2634f32679e2e2041944ec92f7d"; + sha512.doc = "a1425b521b1c8178bd6c9b059acf034080be6f3f312decb575b7541d34a6e1de926965cde8701061ffcb57147052b1495b21142f0eac645596a783820eb6200a"; + sha512.source = "be0e2b1332835920a3c93ec69ae53fe83df4918db9d3080716d7b77edf999a87f54a4c87ccbe4d48b008403539a514810f35c6b2a59d8be0ed6968f6a91ba129"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + bbm = { + revision = 15878; + shortdesc = "\"Blackboard-style\" cm fonts"; + stripPrefix = 0; + sha512.run = "d795fb56f2ba57dea55a546244c5d07bb20c104cb9d1e6f9b6c229df9e5fa4244f8bb883bcddc150e1072453cb518d31c110bb85d157b4fbfeb47195da939619"; + sha512.doc = "034d880588fa88d97045d73dd651a0b3573c624dbbf1d2f9fee046c59f007b9e3e2121d5d773b34aa7b0bc8c72daa540447981bf60731e64d99cde49b5f6e911"; + hasRunfiles = true; + license = [ "free" ]; + }; + bbm-macros = { + revision = 17224; + shortdesc = "LaTeX support for \"blackboard-style\" cm fonts"; + stripPrefix = 0; + sha512.run = "06f59837d585c721da77f289119bd4b45a91e3d72543ed3e4de76f84a2916431a733baa379b83a3e299d166e27bc0350df6f053d1ec744c52dcd0297d416fdf1"; + sha512.doc = "20a29809dffe8090e5c067dd2df9dd5a5f7de6ec7abbc01eb14b5a500f37cd62b50914733edf7403af89a1db86ebe10b3d7262f519dc01dc35b29ba0c70c3478"; + sha512.source = "11d1d83d558a7943e35e8146b7f44df6a553a513f8e0478e1a9c773d66d004a4110288f91896b283dc4153372bb638a444c53b9184745858976a7e6aac69b121"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bbold = { + revision = 17187; + shortdesc = "Sans serif blackboard bold"; + stripPrefix = 0; + sha512.run = "1b123e9135179244050ed6f97f17efa2a43c42018b2fa3b01c956a99886ae6696c83df2a0d61ce95cba925c2bb4c734d77253aab165fe9f622695f557fcb0abe"; + sha512.doc = "c754e81f83a53c4a1cacbd2638d550ad178e0e26d7feb592585579a27b780e11733a7dc68fd374ac575cc7866a1e5417d3df0d2b973e7278d1012657bf340390"; + sha512.source = "a7a61bb796d3ee618ddc39d471bb29d1b7350a40bd7a97d44d4a1c7cd5e4eb5d5783d2ea46313344468406d1d25c71ac322ac4bbbf7b06aac35bc03651e7ccbb"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.01"; + }; + bbold-type1 = { + revision = 33143; + shortdesc = "An Adobe Type 1 format version of the bbold font"; + stripPrefix = 0; + fontMaps = [ "MixedMap bbold.map" ]; + sha512.run = "86631e16388a447db7c521087eccbb666612933f6fee8eace091e00b20b5070d38ebc2d4d0a754536eacef9e9e6470f237d184e00cc4419bff85087f54b81566"; + sha512.doc = "ad841ac652a7985ab907572f66462091b1c40f7cdab2b00086209a2d96056e0a9e32842dfbc22c829b27799882252da95e3d10d4a9dd174f487327d5f3ac3899"; + hasRunfiles = true; + license = [ "free" ]; + }; + bboldx = { + revision = 65424; + shortdesc = "Extension of the bbold package with a Blackboard Bold alphabet"; + stripPrefix = 0; + fontMaps = [ "Map bboldx.map" ]; + sha512.run = "b75c9f544bc0c6d1c046d614a6e0ba52a9cf920d73e8066e2d5e656e1a8774d42677c5a5bc9848e45bd4892e3ed19f6c3c281333f437b541d30d3410be2618a8"; + sha512.doc = "671259c208ea744654b82f25fddc3589fdda650c2121c71763ca4fb4c0ebe3a99906763c5adc354f49edec4beec59897445f5864a37640f67e47c8df6473f2fe"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.032"; + }; + bchart = { + revision = 43928; + shortdesc = "Draw simple bar charts in LaTeX"; + stripPrefix = 0; + sha512.run = "b78e4017d0355107e1e73670c20457c2dc314dd0537bb3e699df3118231b5b3c0b2acbf50ca07f71216d56c81acbb031d38dea7b42099165a03a8049f62021a0"; + sha512.doc = "762b75974de179360fcfe6057102919644a564ad2c3431ef25e2c373267ec063ac8350caf0038a5964345491355ddda4f5190eff6de93f2c2da7ab168c829fcd"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1.3"; + }; + bclogo = { + revision = 69578; + shortdesc = "Creating colourful boxes with logos"; + stripPrefix = 0; + sha512.run = "d3f060c91f1ec7f8c836e22b21dd735895055873807690c4d8fd3b90652a7f6f1648decc23f66a6d51c4970a27817642ea6e66b74b2affcf5c938c4707568018"; + sha512.doc = "e8ec77512bfbfa00de03585ac9b0b47a03d60ab27f7a10303efa3e37bd285c8c0d959f3a5a013a300022121da6bf4c07d603df63faaf0fb44013313f8369aa5f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.15"; + }; + beamer = { + revision = 69316; + shortdesc = "A LaTeX class for producing presentations and slides"; + stripPrefix = 0; + deps = [ + "amscls" + "amsfonts" + "amsmath" + "atbegshi" + "etoolbox" + "geometry" + "hyperref" + "iftex" + "pgf" + "translator" + "xcolor" + ]; + sha512.run = "25fd0161673badc509511fe31b4780a68011ac796e12a841ed185ccb5d9eeaa22c519ddbcd2fc0a5cb70ba94a0752b6b5880f86dd499e4c89f1a5b708f3d7fd0"; + sha512.doc = "8893df96934b3325455557a8a4499113c9d69d563452a01a81107054d99bf4ab67308482a70a777491d208d3e008b60d9c8f76cd560f1fb8af82d97a2a121bc6"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Plus" + "fdl13Only" + ]; + version = "3.71"; + }; + beamer-fuberlin = { + revision = 63161; + shortdesc = "Beamer, using the style of FU Berlin"; + stripPrefix = 0; + sha512.run = "6638fee0c05b9901935204bbcbd79baa1cd0213c0aba6c8eecf1a9f4b2b44aa9403f42078e84e437e7e14d36a991afd0446ae9ffd2ee3260814944fe7b52e92d"; + sha512.doc = "2241bfbdd7dd8b034a01e83f4076fdcf628ea40a29d27cf1e6ceba234b68580cb05f5b29d71c196187e3b5ac1e5a0ec566c5e4a0b784e56f43bdf86ab2747781"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02b"; + }; + beamer-rl = { + revision = 69254; + shortdesc = "Right to left presentation with beamer and babel"; + stripPrefix = 0; + sha512.run = "36f3fbabba1319d8019862455e97502d5446f1838db4fe42410d75101f430270df3abdafb61e7fb565040d9aaadc987cf268010aa682fb509cd7303f6f2e6dcf"; + sha512.doc = "d0add94467afb47bd358ef5a228e314e280b92c8c038f3e6b6f2a28410e8eaa6c984a34b43902e4b6abc2c0246e732be9e9e31065e11cb14cabe5dd34b15e941"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + beamer-tut-pt = { + revision = 15878; + shortdesc = "An introduction to the Beamer class, in Portuguese"; + stripPrefix = 0; + sha512.run = "6074f5933b945f02b24c31353bd7d683b35a54f53aacfa2ac19de382f56fbb9f6284316ee70c0eacea3760101d98d4a6b7d78412a0d41b13c9e1c907d181ee16"; + sha512.doc = "ef6e80c3417cfad3e2f3e0ecd3ce249aa0b4cf0a6b5dced09c27138e34a8c86a74d0d03c6888d0944fe2b03bb5b8180872306263c58f54281f4ed2fe3424d4bc"; + license = [ "gpl1Only" ]; + }; + beamer-verona = { + revision = 39180; + shortdesc = "A theme for the beamer class"; + stripPrefix = 0; + sha512.run = "71b241e603688bd22e10f171d32ea3dcca1f25c136a7c0d0cea3e72e936b068ea7ced6a40c03d2e2fb21e533506bcbfaf10f450493cb4e2c3df2981b714048d5"; + sha512.doc = "ab68e6accfbfea7651dd43b55c4ddd86a66a827ecc6f6353dc58e3aad47ba89e051fb4f9dcc76e0e8081784385cc696fda9d95c0e82c71b0645d358afaf42c4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + beamer2thesis = { + revision = 27539; + shortdesc = "Thesis presentations using beamer"; + stripPrefix = 0; + sha512.run = "793ec95902fbecc2de84616b74494d7e34a1a1c88277277ee82bb172c1ef0cc42cf175f62fa2b4926abb73817b7eb258d85be6689b60a56e0faee941276471a9"; + sha512.doc = "ea71d35ac3e02d3016b8d19d38132ee16960757c9846192cf2213061c9899a9788e98f50dac074b0cf83f6029f883eb1f7784779d0256c719d55490284cfc8f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + beamerappendixnote = { + revision = 55732; + shortdesc = "Create notes on appendix frames in beamer"; + stripPrefix = 0; + sha512.run = "bfb855380ded0b9ef019a139c93cc4f520d4390d98ddfb43483679742ee597b8e045c8286a9391ec068f51ae6c50372b0438b41e449e23804efbc18767c11726"; + sha512.doc = "abf6b36bfad890b37a0add2ad443c39ba2f2484bd19f9730fec4cbb416eafc6fce723fd5fa684cb7adba4110f888641cc570ac7b7a26ccbf06dcd3697e2c5921"; + sha512.source = "f90db38b52c3c5dd3867111c17716160191ba238b965185d31d497494cb17046a83dcc62966bdc01d79a3f1ddfe53d9d9a4e31a6084c951b68598bb4ca392c4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + beameraudience = { + revision = 23427; + shortdesc = "Assembling beamer frames according to audience"; + stripPrefix = 0; + sha512.run = "f1fa8d1d30b00ea59b3fd83347fc1ea1e90135e51e8f4393eacdf32ae983a80e865d4364c924c74bb1d409ebf22ebb5e290707b945898db9e6234dd297553b49"; + sha512.doc = "25fbfbf71ff66a80597b368882de63aee2e090e5604a67d66d52e99dd606ce54079e4a7350c4acee5966555dfa5dc8de0e650c7cb4c136bdc40cbe5739c0dfe1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + beamerauxtheme = { + revision = 56087; + shortdesc = "Supplementary outer and inner themes for beamer"; + stripPrefix = 0; + sha512.run = "8fbe5425396d8e5fea8ce618091948b84bb9e3998b9f34730686d9275398d7a149c912cf80d9f7da083af583ee37fb191435c68d8ea6741776ec2fcaabe9194f"; + sha512.doc = "3d62f584a8170113242f1ba9bcd1fd3a47c539cf646719d4e11464d892372b0713475b026be3721e5921202d40593e56f2f5cb821bb12f11a629a81e390f25da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02a"; + }; + beamercolorthemeowl = { + revision = 40105; + shortdesc = "A flexible beamer color theme to maximize visibility"; + stripPrefix = 0; + sha512.run = "bf9874f0d7bbbe3f95c352d1c5e93c5e7fa3af18dd02eedee553c312ef01783420b035ac74f93eb150a99a597ff9948d978ea575963f4117d0965137446ee5fc"; + sha512.doc = "258016683c605b4961ee25f30077cec69c486cf3ed0cccce2482db01b39141e122dcb46e02e960a83138d124aa269ec903379c3c6b65f3366e96565e90c2337a"; + sha512.source = "940218da36cd17d38e2b8c6d79eb1570d6c779b5f694e9b43abf6614db93a8227939e1ef86678f72461752ca0acdcaf2fd5e52a45a35b6d98811511af5090a2f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + beamerdarkthemes = { + revision = 55117; + shortdesc = "Dark color themes for beamer"; + stripPrefix = 0; + sha512.run = "ced5c093d0c4e3c23fcf774bfcc768b8a3adb20287e0677e1a2474d5ad1eeea1f5f979f988c0f0ae6a484ec1953b95c044b0803df9f76f289e999ec50889433a"; + sha512.doc = "45d0daee876c0e0d94b2ce6ce7b49f6eb8282643b1bf3540abb07e0e7782434c224ba40ff933e9febd893467ebab2ba7cb588669a98784e8eba6acefa0d30611"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-40" + ]; + version = "0.5.1"; + }; + beamerposter = { + revision = 54512; + shortdesc = "Extend beamer and a0poster for custom sized posters"; + stripPrefix = 0; + sha512.run = "7483f14a3008997c0c39c351e0f8b9a01dc42331ae990575ab33ab29c18cea648e0e6ab328a2c1fde404bc10eec78d7c7b8352bb02636e00d5d6e8689f1c717f"; + sha512.doc = "f597797340286e4a87b62696fa167af07a1717a175646d11836e1f347601551fe0aec5ad4362c135d0f6bbf6b45e217a91bdb5053ba1331828fbc352583d3697"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.13"; + }; + beamersubframe = { + revision = 23510; + shortdesc = "Reorder frames in the PDF file"; + stripPrefix = 0; + sha512.run = "d3ab81c5eb90d8566eb850c25d7751f5a341107fdb756b46bb50b392741746eea356ff54ef1ceb6ca6f0a2c0dfb7940aa7cd6e3d0cd27e4328e817d1be454964"; + sha512.doc = "85878ad48e6ba191174140517ac03039320620f246efb51c65e57541d9cf569d59bdd6cef17f10f6f6d85bff9532f6ea70175cb09b68ea6e59312a407d89f557"; + sha512.source = "f4c9d5b2f9a868e1cf3dead5636025698137d63f64c0c528abafa0e5719987e6df9be31a6ecb9597824e5c9793172208908616f42f8980b49796368e217be24a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + beamerswitch = { + revision = 64182; + shortdesc = "Convenient mode selection in Beamer documents"; + stripPrefix = 0; + sha512.run = "43b91dddb86a5f0158a6181a931a4a68eddbef350917f59df7a281e89f6b87d3db652146094eb46fd89d46f6564d1bcb2f278e34a6ee2738d7c4a817ed1db37c"; + sha512.doc = "1cbab77e0b5482eed26fc7364877cde6094edb23ad353340172b278d4728024b5187df2982f3985899bcbd626aa77fc2423d8dfc4936b6d32f62cace50a4d058"; + sha512.source = "0b6ddd42fffe3a1c85c94e0262b156222b0673b1d8d6f54d3f196154eec4a1fe6ccc44d8c34ab04c496e1635e8bf4555bbcb835dda0ed52e780d904d3a797610"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + beamertheme-arguelles = { + revision = 70209; + shortdesc = "Simple, typographic beamer theme"; + stripPrefix = 0; + sha512.run = "aac91e94a49c87b99e888542cb1d0ca043f6dd1513087daedd538d755989dc19f7c7201698573d3c3d9919a434b0d39d56ba6d33e22c240fd6579ecec6f215f6"; + sha512.doc = "23219c4b8718a1d4c247ae2a733a3b371f3c96796ca0e020088fcb47b4d136670377a4f4b746e9ae260e6e32ef58e86edbea80f71716963272204df312072583"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.4.0"; + }; + beamertheme-cuerna = { + revision = 42161; + shortdesc = "A beamer theme with 4 colour palettes"; + stripPrefix = 0; + sha512.run = "f0433d4a4582958ad057fddcddf1f1f992ec98a199943bcf80a7834e37eb7fa5660258edb08e2bd9205628dc1b8a69419c907b6c007a1c63cd1fb335e439125d"; + sha512.doc = "96f4e9c3afbb81a7841130ea076b2cd35477e93eb105c03add6077fd76981cbd14b609c3b9e573f143572764ac87b1ff76ce18c377f3bbd9b02a1ed45a02eaab"; + sha512.source = "a4381e52d7e46336d8d8989be45c185156e67df776d5ad159f2db6c62c751dae59e0c19fa0c5ec3de4b0385047d5f6fdf166b6c12707c889cffeabe11802a10f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beamertheme-detlevcm = { + revision = 39048; + shortdesc = "A beamer theme designed for use in the University of Leeds"; + stripPrefix = 0; + sha512.run = "cab4d390d7469056f2235c493b9383a4374c4a686810db428cfe622a4c2513f7176df489d22f7e37ae1f8a2d3303443b60c12c577764be2258b345fe9c3dc543"; + sha512.doc = "2c637af44b258c688449ad2bbd81664e3086efe874d03352ab393487d7eae1148773ba39a498611a848c43824415cb5b860259111f6d287fd9e6d7f1c01eb530"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.02"; + }; + beamertheme-epyt = { + revision = 41404; + shortdesc = "A simple and clean theme for LaTeX beamer class"; + stripPrefix = 0; + sha512.run = "2bf451ccfe095384aeec149e97d7022cefaf997cd19dedffcad5606fc149739cf21b6128ef08e609aaffd6afbaa59b1cdc401cbd3ee4fbe0e997d724b713a620"; + sha512.doc = "a615bddd7955869d7e175f734a06308b166057dce0b479a4b11d2bd1d06fda7e0a4fdf8185d0a3db2d2302cea2890184616b92d0b7abd5321fe9edaca6dbbd2e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + beamertheme-focus = { + revision = 69742; + shortdesc = "A minimalist presentation theme for LaTeX Beamer"; + stripPrefix = 0; + sha512.run = "bb09ca551108dace02506987f246f1de4672444e8d6ca7f53bbf1cbfb573a7e07b3d2f937b4724821b30b60f1c63b360e200754957289c95379aab06dde14a8a"; + sha512.doc = "5ca583264ee68cec6df53f5e4a32d4c3ce408372fd3ec4c8ec74f2757ac9f5e817a23ea875760994fd7e45a8cc2e45686251aa785adc960b5730c5059ab353e9"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "3.4.0"; + }; + beamertheme-light = { + revision = 49867; + shortdesc = "A minimal beamer style"; + stripPrefix = 0; + sha512.run = "5cc15c3ee0222678c1c97b31805421caac8b20fca03b1d748fd2a71756d5d764b8fbfb32ab70937e890f7755966b520362db98a9ae65be3f83509cfa287d600a"; + sha512.doc = "e2d0cdb7fdabe582f2b6f1a656a5b9b61ee3680fd4944c06f108cf69eced96bed7b25e56563b1cb9879e8da42fdbbeaa41d769158c5e256bc70b5d695571a5af"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.0"; + }; + beamertheme-metropolis = { + revision = 43031; + shortdesc = "A modern LaTeX beamer theme"; + stripPrefix = 0; + sha512.run = "dae8058ae5c2883b383a2bcb85bbdc45d0b0a3fab46a4498ea1f3b8568f04d049598fa78b72429adc7e36773905c67801e129378e233582f0fd8eb5ca4327745"; + sha512.doc = "c4661061ea3ce52a20fb8c704042cf755b8b54549dd62467b1e78f85a4067c11a02c89422384e96323ef277ce44a3f648b1778b54e0b5c79b721f67451fabfc1"; + sha512.source = "af3cec1b7544ecd51c875a704605500ee1ab4374df9cf1a7db6c6b9102c4800651485a64dd865c1158d729c06f2499021408230c50278da3de40f7f0cac7bf6b"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.2"; + }; + beamertheme-npbt = { + revision = 54512; + shortdesc = "A collection of LaTeX beamer themes"; + stripPrefix = 0; + sha512.run = "9125794ab2ebc4d15ab500b67b9943234d80088393d9b31989ae8209359dca97778feaab3d11365ae1b4131f06dad2fe73bb21fae1220b401c5f31f413cff171"; + sha512.doc = "7703951f2afee05627847980a05b0bef0cb2fe87eec078f64a3e4796feb4057bdf93708ef0476090d40dad2605c69e23f695b9164a969e6a67f8329e6e340a3b"; + hasRunfiles = true; + license = [ + "gpl3Only" + "publicDomain" + ]; + version = "4.1"; + }; + beamertheme-phnompenh = { + revision = 39100; + shortdesc = "A simple beamer theme"; + stripPrefix = 0; + sha512.run = "30745bb1f92c230bedd953d32eaa6f2085ad2aa7f147bd3368fe8ebe4f6092ecc615acce55b9573da4dc04c8e89877ba2705a6712cd4c4f67f34dc59eae97880"; + sha512.doc = "626d124c6ac02271cc3bc137e60b8a66a861b7f692910e9fad283d8836599e3adbdd1ac472fe66955a392d1b563e955da852cfd5a0d712d284fdb2dc4d709a63"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + beamertheme-pure-minimalistic = { + revision = 56934; + shortdesc = "A minimalistic presentation theme for LaTeX Beamer"; + stripPrefix = 0; + sha512.run = "b9c6237108e1aa5f4859ebd1100efbddd2bca55c76bca876e0e3a0c10dbd322a3ee834e4e452b80b2f7755ce026fd2bbe5c69434371ad29df1fe3280b409bdc6"; + sha512.doc = "791e3a367f5c7ebfee453e7d7a76753763e2bbe122616e49fd0d4268dbd274e3ecb308b5adb850765d143bc46a311316f86bd13e60ce1449b0217d7b4f733830"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.0.0"; + }; + beamertheme-rainbow = { + revision = 67542; + shortdesc = "A beamer colour theme which alternates theme colours on every frame"; + stripPrefix = 0; + sha512.run = "220dd54bd2565263ce7bc48068c96b48a0677f36ad5f3d826561e1d0ca21f5ecfa7ab675005e7aef40e4b9e9f149ee341c0ed82ec8a5a6fcab40785cca97289f"; + sha512.doc = "bcf12ee63331bec8fd8c5443231109bcf1027d1abb9ce94c919c17fbb8a5248bea503acc25bda67226fcea1e30a2ae7283cfcce6a9b937362086e9123b4a429b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + beamertheme-saintpetersburg = { + revision = 45877; + shortdesc = "A beamer theme that incorporates colours and fonts of Saint Petersburg State University"; + stripPrefix = 0; + sha512.run = "c258a4eee25ccdb2437625982e54def90aec87be003f697a47334be52b85ef223b377c7fc57d49c889121caea664fcd6353015ad2e62f5bee5379bc222958f53"; + sha512.doc = "bf51e2bc33f32ba3dda6c140040a7499a60c26082569729743228a6c7abc97fb20076d1d0c7d0b64a25a54cbba1d9a8b59a9059d160a5a488ef6641999e8611f"; + sha512.source = "6cd3ed424b3a724e397de3fb7b47de33a5c9f0c5ac0e0f8b26bde55ef69b66015874dbd438912c682c9aa1c33e4e916fb895458964dea11fe228e29c1afc40e8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beamertheme-simpledarkblue = { + revision = 60061; + shortdesc = "Template for a simple presentation"; + stripPrefix = 0; + sha512.run = "c75bb4c0f0eecf2aea0e24d30410ca1edcf645c323d88433bc6c12adf116740f2f6bc7d8517db764b0b33d9d9227db93ddddd1c521dde3343fce6d807b0e642d"; + sha512.doc = "9f8f642ebe4cafed03699377be6bb647cbdfb80f99e075e2863b69a4d6b6f59cab6dd4dc831b0fb015302b3737b32d08cf37b3034365b021e8fd9f086f7e6ddf"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + beamertheme-simpleplus = { + revision = 64770; + shortdesc = "A simple and clean theme for LaTeX beamer"; + stripPrefix = 0; + sha512.run = "de19e0011817552bbba482517f9ea4f59590cc837c4b539e01db5f08eafa2dc94adda9dc8fd4f92b07fe2acc38862b5a581c195f1776975469d69c1b7fdd617f"; + sha512.doc = "e96132fc4669ec82913ad7610a174815be79476fc40ecc1ed35744292d41ba47bbbf1a7cd9d244b41c12ab515c729655271d62a608ae47cd2acd0324cf0f0ae7"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + beamertheme-tcolorbox = { + revision = 67000; + shortdesc = "A beamer inner theme which reproduces standard beamer blocks using tcolorboxes"; + stripPrefix = 0; + sha512.run = "bcace2249558b6519dde1d9c80da791e38330de31da26c606d8bb8a780952bc2cd57f93948ba191606bd44c2260819546a367e34f672555db22d0c736a6b959b"; + sha512.doc = "240a7be55ae035ae4e155efa814639de14a2c5ddc2dec9bfb963df2010026e8cbc7f6c834b6445695dbd7f1e68499e123b505de068fc196ed25a86115c06261e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + beamertheme-trigon = { + revision = 65985; + shortdesc = "A modern, elegant, and versatile theme for Beamer"; + stripPrefix = 0; + sha512.run = "1269b79603c415123a91093bc69cd672aa54518da7e7cef52193804fcede45dc09fe6748f2c0c940a754767963174e768b52873fbac5a520f7076229100ff016"; + sha512.doc = "83b6946c17d060c299260ff272130938933dbeb9124b1608e8f3bd886b2f63851773181dc1efabe901196b37f7254569a5b5de0de7fd39ff558eb21376ffaa27"; + sha512.source = "49f9d4cf001b45b29a5c7b59155d72e286092157dfa5c0dfa05e7a20958adefda2a182974508f9a0936acb1d5ce199e21b350e85da7e292525b2aaab60e2c6d3"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.7.0"; + }; + beamertheme-upenn-bc = { + revision = 29937; + shortdesc = "Beamer themes for Boston College and the University of Pennsylvania"; + stripPrefix = 0; + sha512.run = "0c483991348107a2b9102e514ec05838a9ae3e97dceddcbf3b8cc21ae635a272c7d70d97b2e1a0929b7545e50560f16a71f7b290ca16cdfd63177782b993b714"; + sha512.doc = "5feb0a4401d9ebbc4672b7f9668f850fb65002c7d7124c607009775149c4c428642cd17df133ae80d564ab091fdff039d34c1704360033f2374b55466fe1b618"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + beamerthemeamurmaple = { + revision = 69742; + shortdesc = "A new modern beamer theme"; + stripPrefix = 0; + sha512.run = "c325ebeec7588caaf8966e9b8a71069f1613d694537298afeeb8d01c6c83c7991e874bc5bd070e722e15ac83eb339581897a501dd187ea5ee4919ba9c14fb541"; + sha512.doc = "371597bc1aeaa9c43fbef6b68234252535be41f442db6e6785605723b099b34e8cc01b1062ce1a831e62333f57673f49462eef082541c982b7bbfbac119a19be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + beamerthemeconcrete = { + revision = 69528; + shortdesc = "A collection of flat beamer themes"; + stripPrefix = 0; + sha512.run = "84f2729d5f5197d2dae7fe422f535df1f2ed14f2ae936f7c080d93f7aec2b949290406f31309fc76b21a4a80de733aadc6319a0e54a63482ea97ebc4bff773d7"; + sha512.doc = "bca6cbd0b51e52446fa179d216a3368b5bda75e6e99abf3204297be3335f2aa2b6efe51dbcd1bf0bb589070ce30c030b6ea2bed868277953a5d60210b6bc924d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024B"; + }; + beamerthemejltree = { + revision = 21977; + shortdesc = "Contributed beamer theme"; + stripPrefix = 0; + sha512.run = "b079ceab30460a7b92a616fa6d7216ddddecfa02adfd66bf38aea83eccdf6e63cc52d8b2ae88db0b21962af223b364424227806beabbfb2e344af98474af2528"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + beamerthemelalic = { + revision = 58777; + shortdesc = "A beamer theme for LALIC"; + stripPrefix = 0; + sha512.run = "70d789b4490e5ceb9d578be03f815eea97706fc89e41756908d41f1953c2b4cee4ce7c142406a0abef0497b89b74dfb2dc6d2a841898996f32025f53626a8548"; + sha512.doc = "b79c55da51785c42c68a2bd5f7a386b21fbb36948df8b5e87e60b9eab263e43592b7265902b6f3a2d3bd214dce122fcf0d504ff807a7bee0ebccf7241fa8e1fd"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.0"; + }; + beamerthemenirma = { + revision = 20765; + shortdesc = "A Beamer theme for academic presentations"; + stripPrefix = 0; + sha512.run = "6fe83e0805fde96d585dc027ecadd23862815171f56f6a05db0a6788018a096c193c995895f7ca18af6d322877e24d570743d84a922a2c7e4baef35d3f6dfca1"; + sha512.doc = "13f1dfbc8f09662b627dd4ed6c7ff297612c5d05a140a446ccdcb6f0ad3a9995b434d418994cccc2323ead666eaeb10b32e1a9d410a38c632df9873717397231"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + beamerthemenord = { + revision = 56180; + shortdesc = "A simple beamer theme using the \"Nord\" color theme"; + stripPrefix = 0; + sha512.run = "4ac0d1a6494f7acdb1afd73b2bf8e7c966ea3167f856432ebb872f0285cfb8fe759735b57bba5e9ebbb91a0bdc9e2dd643f5ab0686e9417e0719369266d7e46d"; + sha512.doc = "0e2038d76d478bfa54a547c97e002e84a98a1dc7ea0a1584f12d6cb1b2c4cb1f65d9d368533b5870c4f3ecae02396ec0172a89eef1547d33a168ab87c846a4d6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + bearwear = { + revision = 54826; + shortdesc = "Shirts to dress TikZbears"; + stripPrefix = 0; + sha512.run = "c758735d869a9b1dedb64c9c0377891606d32ba69fe0d665d882d7d113bcf3c9678e6cbfe93c269758d492a0336c26f937195f04e80587c1aa083fb1c766829f"; + sha512.doc = "03171083f40cc4688ca6849fd371189b43a9e5963e06be3ad44271b11cb985cfa0b369b49ed43110395e1d7d50f4337e9ce597989be48049cdf3c3a1beac5ff8"; + sha512.source = "5263fce263e48699b3e59e556827f3fdd88cb812a33d259effad361289ab8270c40d7c3c510938c56a99070bea4894d769e7f0986c7aab75262feb59dfc27078"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + beaulivre = { + revision = 70050; + shortdesc = "Write your books in a colorful way"; + stripPrefix = 0; + deps = [ "colorist" ]; + sha512.run = "e8566d352bb39bbe6256dabb57d6743db7dfc98e491683eab76ffa86ae9d6d0cf53726999620920b4845015bbbaa6cf48e8d4c82dbffd841d00d55bd2f2cb464"; + sha512.doc = "efb52d0b4df908a4425fb9d5f2767c54dd7b2d614076374d81b15f53322528a24231feb9145de9bf1f0086a6ffcff37d529a925fca879984b4c5860b00b12a1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beautybook = { + revision = 68438; + shortdesc = "A beautiful book template for maths and science"; + stripPrefix = 0; + sha512.run = "68df2cac1064c5636f1df6b5f9d51773278798310e7d36550f2a55c05c8d1480518407a97037d0167fe92fbab2f8d7be73d528681d66f63afe644ef3ede38ca0"; + sha512.doc = "62eeb012597c27e02b00ac5d7b2b280136986c412baf7113634bf62e0fe82b1fb9e4fdab3ab6a2345517a046fe46bfad6f2031926f07f69609e895800e215ed4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beautynote = { + revision = 70166; + shortdesc = "A package designed to meet the publication of books and the production of LaTeX templates, with elegant chapter"; + stripPrefix = 0; + sha512.run = "637e51a355d5f89c2e0241140780b221fabbb4685830c1ce9ccb5cb185c53f1cc4c3ffafe737df25445ef885958c1b5f6ba96a4a3de1169de7f2cf28095eea43"; + sha512.doc = "36e71d750df5b5e5d8d05251a4be60214c09027a10c77551ff6261464729004fe0e3be586687af23db115b7cb4c99086dbe9278da0b8d6292b57005019628fc3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beebe = { + revision = 70064; + shortdesc = "A collection of bibliographies"; + stripPrefix = 0; + sha512.run = "ff133e38a475bba0e8aea3a8a98d20ff1aa17eef7c0d0f5a6d404d51b1062c2a5957d3261e844d956f9a5e97fcc2d8a438beb5b724f84f8f3734091551e7aba0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + begingreek = { + revision = 63255; + shortdesc = "Greek environment to be used with pdfLaTeX only"; + stripPrefix = 0; + sha512.run = "c6e8493a80e328a10208088f7490a14bbec76fc8d969b85c6505d655840d9e4d8e05da3a1a3b17d76fcc0ad26df7251765d7d4e812000cd3fb9101ad5a46c3a9"; + sha512.doc = "3143cf03735fc6e5b3a77f17b6099f139d6a1cfcaecf140dab6eb4c72398742719956bc03052e539eefa9acbebd00ab14f7b0be829ece74b8a66dd227580542b"; + sha512.source = "ce891bf42100a6ff2f046f2a02f9ed53a9ac893578d7120cf483aaaa1d856c9985a6e7a59c2076c9febc35fd9cf21139de6fd682923bfb6ecaeabe63dfda2a93"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + begriff = { + revision = 15878; + shortdesc = "Typeset Begriffschrift"; + stripPrefix = 0; + sha512.run = "ed1060e0ce9bad28f98481eed44f8bd98f6b8be91dd5dc87d5c34a6cc57e724d175fa909fd6ff514399eb81bd8f28450f7c9a6c6a9bc991f35d617a8a25de8ed"; + sha512.doc = "af28c20897e297af4ca1fb13bb286ff0eece9e2f06f5b734062716c0c5f5b7dd673d046a5a47c907f9a845a7257393f3328d46c4ea2ac0ae6b0eff1244e97256"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + beilstein = { + revision = 56193; + shortdesc = "Support for submissions to the \"Beilstein Journal of Nanotechnology\""; + stripPrefix = 0; + sha512.run = "4d604245024a94e23c30c7968e177173efebc7d8d227688f0e90adbf071c7d0d44a6c07c37143675a66899062ca2b8c366516ca3863128e33e784919a33e3d49"; + sha512.doc = "9684c13b0d91121e7e7548ed9bc1e377ac7a54f9f1f2aeb57d465bab36b17d216e1cae4eea9b3fb6e5afc42e41f465a31db0209f5b45f40f7db0afbc4646c73d"; + sha512.source = "0bd1079836d7740070d6100730449e6118a14485902a9016109587530e0f83b8dd4a4466cce914c5f06f42163da746e75fd998eb6b279e45574f81535e65ed1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + belleek = { + revision = 66115; + shortdesc = "Free replacement for basic MathTime fonts"; + stripPrefix = 0; + fontMaps = [ "Map belleek.map" ]; + sha512.run = "4ae91c01e67fcefd46da99d6bc8379b3829e4e0e88f512f36bfc9743d075090d0c26d0eef11dde5125b344e85ccc3c5a31569f3a1078d00d364ea80120bec30d"; + sha512.doc = "93266af4f4293639a123f5ba88e2680d87e6d815f49cd7dc6c9322866dfb22308716da1e362699aeded819e7817987938f70cf48c9166e7127836de743e5dd63"; + sha512.source = "b8547d1b3da8be829b7fe99d0cd7cee8fc6b7158c1799712ea85614534d0b020cfafdc1696a0e5037ad15b215173e1461c64f86a1f52795209272aed9991d107"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + bengali = { + revision = 55475; + shortdesc = "Support for the Bengali language"; + stripPrefix = 0; + sha512.run = "2ace635791a4c7a8af0843a5a92d518d0e93fc09a94929a277002a3e4426f199e207238766b07ff3f1e1bf0e3c0cf8b83897b30ba105ee7239d6ce1d591289fe"; + sha512.doc = "61bed8e39b9dc4673ce27402c0ee76b035e254133af09bbbadd00b80d367ffe204d5f660af8c633bc7dc6bd81f66ce419741e341f63e314367f2e54c61f8269e"; + sha512.source = "ddfd0dce8379aaa3e224f74fd33fa4dd1fbe6a40d9a01bc6dc8da1dbca5b5eae97c4837ff21c75be8658d37693cdff3c2983fe01c77d13bd0eb89e14f78d6e2a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bera = { + revision = 20031; + shortdesc = "Bera fonts"; + stripPrefix = 0; + fontMaps = [ "Map bera.map" ]; + sha512.run = "103b2db8f7bccf6a9729faae793246d2933667295ba404fdaa7b61cfbce0f1209ea27e7a2a63846c6550b41214ff496a62598bbb9b731c087b8bba9e0abade80"; + sha512.doc = "2606c87871d6f6ed27b2a5e49117c50f00573bc6b9ce249d1433da214764b220eb00c73e59be43e32e8a4827c397c53504103e00b7e5602de5df5bb817e2145d"; + hasRunfiles = true; + license = [ "free" ]; + }; + berenisadf = { + revision = 32215; + shortdesc = "Berenis ADF fonts and TeX/LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map ybd.map" ]; + sha512.run = "70dd547d0c5138f2a61e20b4585160e5fef281bbba72ba8dcc7032efa957d80c158ba88fdc0dda9982dbcd69a48d5d54286f52d1425a5819e54e05d79eb9dd49"; + sha512.doc = "f076717ff948247589225fbe4fcd92114d719526e535d645d767a3f7fdaafd3a6ca84c3a60997074186974ebf045e31a51d16d53c8a5fdc78a2461733cc66372"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.004"; + }; + besjournals = { + revision = 45662; + shortdesc = "Bibliographies suitable for British Ecological Society journals"; + stripPrefix = 0; + sha512.run = "e797bce36fa6529d6b57be352ed81b7413c2ca818fa904a8cc4c7c8f0801369543482aa5c286b40f6f7c5e0b73d53b6aa6b9aaeab3e6229da7dd954a3dedb1ca"; + sha512.doc = "c790eb0ced559adc6696f0f228c88a2314214ff6a4ab71ae03dc46b3974cdaae53fc685c05f0bbb7646a5b31d332f763fce4a71919319aa520965f56979eee54"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bestpapers = { + revision = 38708; + shortdesc = "A BibTeX package to produce lists of authors' best papers"; + stripPrefix = 0; + sha512.run = "d015369a268cff98571985f319f95df9ffe0255ad222e8c8133252c3ab5537cfc4c3ea11aab13a565c096e92472d7724c0ef23ce6a71f62c7a5fc2b30382a054"; + sha512.doc = "cb5e9bbcc83b6081dd0207001d1b39c6e089e2ae168f20d1cc87482560a483e4ea195fbf208c342ba691d3c85ea9f4674b2eb6cf68db9f9d83d3b98bbab60dc3"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + betababel = { + revision = 15878; + shortdesc = "Insert ancient greek text coded in Beta Code"; + stripPrefix = 0; + sha512.run = "db2a590e8ed5e946652cc54d5c01bd540b87f77253278f9211c8720229992275f80edc26d0c94b4f68237d84a5bf7b56bd93a40e2a0ce8df5ffdeb124c81d219"; + sha512.doc = "209f8fc6123f8403bf6a30731773aeea82c5c6de123e24755e9a22ca6f3ea170015feeb541242a772c3244e7b74f1a766e95886e4f773f21c48b353f22d6adce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + beton = { + revision = 15878; + shortdesc = "Use Concrete fonts"; + stripPrefix = 0; + sha512.run = "23d243f15a79246aa590a7ec65249724a4460ac6e3ac01dba2aeddfc169875dd8392c1374cb8459ff84210d51822430fab9d75a87f0ece20323cd20709de0c14"; + sha512.doc = "fa579427c97f930455bc548d5b438f32aa291d98f9d8b391dae686b270e135605cb3ddd6cfb9076cb248a17eabb4e62bcf4f720b2daf829b3d12d6ebc294f832"; + sha512.source = "79e129919c06ef083e4f8fdcd88a60339591b3f95776feb9cc076e46fb379b5ab10f9b48f3b8a948e9a120412f818dd3d99cc24957d3eaa812bbefb388d91049"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + beuron = { + revision = 46374; + shortdesc = "The script of the Beuronese art school"; + stripPrefix = 0; + fontMaps = [ "Map beuron.map" ]; + sha512.run = "623d3b7d8747ce1776de9d0ee6eec013c2050f9cb4a521167bcf23435d5e30c1233ee869ccb299360cfb6f8f4b4034a77d4fe601f789211b290684c0858462a2"; + sha512.doc = "812dd30a9b49d7ab5e529f3c7ef934be5d72b75adeec1a38cba77c867525243ffd0d4f4901c9100e6518eb0a8c35e208157b8e3669d3700203ab7fe95aa29845"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + bewerbung = { + revision = 61632; + shortdesc = "Typesetting job applications"; + stripPrefix = 0; + sha512.run = "1a5f652ce8e7ad60f22b7c3c5cc46c3963e5511965445fdacef01aecb157ecc4fbd3eed07140d64716b90a11db96f1b7dab8b4568aa41f7049f8a3a1ed0e290c"; + sha512.doc = "1713c1d4ef0982cf635ea57cb7af7805b001b48cdfef5bf770c627f5460f57945d2d2ead87c6e0ae8ad7cdc66036caa5dffafccc5ccd59ba889154cc6e4f9f5e"; + sha512.source = "df95e8bcc71b83dc196699dc9f4581ce3482ae9f1b673fbd2bb2551d84c68c97cbb70771ad710052d1f2652bcb2d32d8a4392a038e747e4ce7a25b65aaed2e79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + bez123 = { + revision = 15878; + shortdesc = "Support for Bezier curves"; + stripPrefix = 0; + sha512.run = "e70a0889ceab74fcff4994568a97f31ac93165353ac207ee683b28aee2ad3cb8f770d8e3b450e3237537e97312a0995fa8c17196ead0fce55fd76a49c77de72b"; + sha512.doc = "91ae5e35394e5bf3a6bbcc6aa7d7180ba546b58e84683c569bc34f5b0f9dcc6ea30153305fd83fe28e3bcd8eccb6179d277d28e1ff56538fc6980a7c3ec8f444"; + sha512.source = "fc329c0c99ecd10c42bdffde10918239874367e7b54a75c4de4882e520ea82e87188070775174a11621dca9bc5949a850207f02af7c08d1b6768ea87fba7e10c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + bezierplot = { + revision = 51398; + shortdesc = "Approximate smooth function graphs with cubic bezier splines for use with TikZ or MetaPost"; + stripPrefix = 0; + sha512.run = "0cfc80b93b76053591f4d76e3cd2f5518dec2dabc397b0d18f0d9edb40a0eabfd1ed608b0cbd6f4b7b28b9a10a9668b21f9ee798514bfd3ab4cc125392512d6c"; + sha512.doc = "284cce26134afe943c4b5c0b3d968f2512fa1c47ed1f2b19e70f48d618829b76ffc200933933f27b407e1086d95f38a4e9ecfe85506ccc2336cd5fe7eb40bf37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + bfh-ci = { + revision = 68828; + shortdesc = "Corporate Design for Bern University of Applied Sciences"; + stripPrefix = 0; + deps = [ + "adjustbox" + "amsfonts" + "amsmath" + "anyfontsize" + "beamer" + "fontawesome" + "fontspec" + "geometry" + "graphics" + "handoutwithnotes" + "hyperref" + "iftex" + "koma-script" + "l3kernel" + "l3packages" + "listings" + "nunito" + "pgf" + "qrcode" + "sourceserifpro" + "tcolorbox" + "tools" + "translations" + "url" + "xcolor" + "zref" + ]; + sha512.run = "8aacc57f0eb40e83a6331cf86b076b287787672421648df65814214b60e739697d97fea5d8d18f112c27ea60cd2f2b9a26c31fb6074b9c1f1cba4522e96a11af"; + sha512.doc = "fc7e441fac29da849714c79ed0f68e94059d09c1472b4c56b3f100f0e1af730963e9d0bedeb3bcbb87512ef68535321d6df13370cd9be3d5399cbc05e7f1cee7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2.0"; + }; + bgteubner = { + revision = 54080; + shortdesc = "Class for producing books for the publisher \"Teubner Verlag\""; + stripPrefix = 0; + sha512.run = "53d38b2bf03861553a60db38c06b5b7eb48404a08f4bad645b24383ac4131a5b60a0103d0d2217cde1aa4f8bd739db4389d25693bb6186fe0974b0ebb63fd567"; + sha512.doc = "344c8f7800a273b914265ccd9cf8175a040f021c07aa0fce3b6391db85e8ecc43d5d593aeb8707f82cc2c8c987b2d72700a2fe4d8b0bdfcaf2a525c5d79f7e3a"; + sha512.source = "ff33871afe34c6d578dd5d8e795e36e83a785893d8741dc2ddf2b8bb27062324f00e0f52b3cd3d993074a7e7d21207537f028f6f5dbf8384d02799d1108b9472"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.11"; + }; + bguq = { + revision = 27401; + shortdesc = "Improved quantifier stroke for Begriffsschrift packages"; + stripPrefix = 0; + fontMaps = [ "Map bguq.map" ]; + sha512.run = "8a795ba517941a07ec1445a16947ce5028cfd61ba2b5c818bc894ffa73d439162271d6269c67c8ee7afd6d13551d4a9bf73763c00b719bf3a9019a8e7d368256"; + sha512.doc = "1bfe38f2d904af63a5a0fd2ab4accd04fbd294083cc462f7d53f79819f40dccf1c3c729ad591d15327eb120bce847ae62c2bc9b9554ea278c1974e3b37296dc5"; + sha512.source = "108ecf4268a4491904d46f5aebdace10f8aab84a4333fddf94788b677088a584da284fd763a8f0ab19cbc335a3a143489a49836ba059971483faeaf40ecbb0de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + bhcexam = { + revision = 64093; + shortdesc = "An exam class for mathematics teachers in China"; + stripPrefix = 0; + sha512.run = "7244442c52f57270055fad1ec87b00bb0f3ff4c89e37b57be051b29046348dc781e42b156186310d58eceb1ee9d4ff2fe287a3027642fbec3c9c315e00af9c68"; + sha512.doc = "3e16cf4f60c089a21d8e2d0a9c78e8204391ba7bc5a72d7fc23637e0c875a57dd1615b8332f6fea9c5a9bcb4fc17c4818bce708998c1c8c71d0d970e9bfdd132"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + bib-fr = { + revision = 15878; + shortdesc = "French translation of classical BibTeX styles"; + stripPrefix = 0; + sha512.run = "24e5ada94266ba8786470453bf8a076891e9b7efac1ff64fcb559bfe2c95875d3120634f94f464c9e40da0f45b18a78af1bc428106b31e85851a2998b58f0834"; + sha512.doc = "a19ffa9b3ce51d372a7467bdf7e360ac4a0faf45fc2205eadfaff16fb640ffb0cccac7fd0849a74955dcf612e353f0e25f94c0af9e3b5bf617f067606c1da120"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + bib2gls = { + revision = 69635; + shortdesc = "Command line application to convert .bib files to glossaries-extra.sty resource files"; + deps = [ "glossaries-extra" ]; + sha512.run = "e73d6e0c7596252dade43291fb26ae02c0ed8f2650498294d2b1c36d69e777411fc1637619226f34f80c7e5cc06d3ae07f3b5d2eb144a2e69bde16a22c4aa449"; + sha512.doc = "46d4a219969aaf897cb4c7705a00d1558b7b16cf0d4b16121672df8df2bdb0c0d0ee3350687b430f1d1d29eacee330aaee3206ef664c406c1d2b1c8c316de0ff"; + hasManpages = true; + sha512.source = "662855e5579429694325042e0256385b9a5c40a4b54e6cf98712432469243de567cd5ea68f1ea93a593428eaeaf09d9d5a97e3e670dfe9ba90cd6f8c2383a3d4"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "gpl3Plus" ]; + version = "3.9"; + }; + bib2gls.binfiles = [ + "bib2gls" + "convertgls2bib" ]; - sha512.run = "1851e3e460f1d5fc2c1f8e04e209f800f9ac27337fef200b3f200cee3580b4ff816784f00aa2dec1d7d7f36711d8cc043033ba2f512dce2933d078aa5c72d5b2"; -}; -collection-plaingeneric = { - revision = 68675; - shortdesc = "Plain (La)TeX packages"; - stripPrefix = 0; - deps = [ - "abbr" - "abstyles" - "advice" - "apnum" - "autoaligne" - "barr" - "bitelist" - "borceux" - "c-pascal" - "calcfrac" - "catcodes" - "chronosys" - "collargs" - "collection-basic" - "colorsep" - "compare" - "crossrefenum" - "cweb-old" - "dinat" - "dirtree" - "docbytex" - "dowith" - "eijkhout" - "encxvlna" - "epigram" - "epsf" - "epsf-dvipdfmx" - "etoolbox-generic" - "expex-acro" - "expkv-bundle" - "fenixpar" - "figflow" - "fixpdfmag" - "fltpoint" - "fntproof" - "font-change" - "fontch" - "fontname" - "gates" - "getoptk" - "gfnotation" - "gobble" - "graphics-pln" - "gtl" - "hlist" - "hyplain" - "inputnormalization" - "insbox" - "js-misc" - "kastrup" - "lambda-lists" - "langcode" - "lecturer" - "letterspacing" - "librarian" - "listofitems" - "localloc" - "mathdots" - "metatex" - "midnight" - "mkpattern" - "mlawriter" - "modulus" - "multido" - "namedef" - "navigator" - "newsletr" - "nth" - "ofs" - "olsak-misc" - "outerhbox" - "path" - "pdf-trans" - "pdfmsym" - "pitex" - "placeins-plain" - "plainpkg" - "plipsum" - "plnfss" - "plstmary" - "poormanlog" - "present" - "pwebmac" - "random" - "randomlist" - "resumemac" - "ruler" - "schemata" - "shade" - "simplekv" - "soul" - "swrule" - "systeme" - "tabto-generic" - "termmenu" - "tex-ps" - "tex4ht" - "texapi" - "texdate" - "texdimens" - "texinfo" - "timetable" - "tracklang" - "transparent-io" - "treetex" - "trigonometry" - "ulem" - "upca" - "varisize" - "xii" - "xii-lat" - "xintsession" - "xlop" - "yax" - "zztex" + bibarts = { + revision = 67407; + shortdesc = "\"Arts\"-style bibliographical information"; + stripPrefix = 0; + sha512.run = "358492693511d2de25fc7e080c862e1aa6a6ba40655fbf64991092a4a56c76a35f9fa9f8e0035fa042f0341f8fa9f13a5615079a2c9c56af36aaba4f41385865"; + sha512.doc = "d708263bf3d867e075281e0cdedca007fbcaf8cc333a8c7c0c9a0b79e68bce1c100b263a740e232a5f84861726dda947914a7c4ba52d87315163db9528c2c544"; + sha512.source = "b1d8043b2f7c49e6bfee9b1b82f361450878f6059cef790f12e9a26279caf25f2bf446b4b70c1882478503586b700e7b2e78a6c631264b1c2498ec493ba20ad3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.6"; + }; + bibcop = { + revision = 69467; + shortdesc = "Style checker for .bib files"; + deps = [ + "iexec" + "pgfopts" + ]; + sha512.run = "e67e6471a9572f502db740cdac0540d3ce848a3cd36c976fb72a5bbe11626dfccd3c40ea75d86186d584c16d5809e99afd6cebe6fc27fb874685fdcb05da5341"; + sha512.doc = "68d5b879566e871db328b92c8cd1d00c05698c07a140741d6584c5d3e2525725fe01e647938f396a505f6b28833d9df90b1984e334f7e781af2c9beb3f303209"; + hasManpages = true; + sha512.source = "e7feec5a9ba4772e0d647d34782879c5c6b535f62df35382369f8b405f8b1c8e874db819b4c68f86e58f15fff938e7c37f4eb3476e8aff984890883a3e8e1924"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.0.19"; + }; + bibcop.binfiles = [ "bibcop" ]; + biber = { + revision = 68188; + shortdesc = "A BibTeX replacement for users of BibLaTeX"; + sha512.run = "07222b2bb0aed6b2de71b1e061c878e409205459decf998a7c100ae92dbecd91549a6c5e2e0dabe21f742fdfa7a57704252ec565d9e7ef0bb1d802fc1939edc6"; + sha512.doc = "a02c41efa4a5fd8ff79c8112dfc22b45e9717aa572021aaf93ede35ae57d91531dddc004497b562c605350dcff1c96441f7613d6c922e882652e9776707022b8"; + sha512.source = "8fd59f63eaa86ea4d87c8c01458fea16c0e470969f3dd6ac65e20954e8a63e793a58888cdb61f913fcc291fb5d2f3e0205e7e7488946738e27c23f1ac51be9b2"; + license = [ "artistic2" ]; + version = "2.19"; + }; + biber-ms = { + revision = 66478; + shortdesc = "A BibTeX replacement for users of BibLaTeX (multiscript version)"; + sha512.run = "8e78b381978835ea25e8a973fea35a653f37a23e4ab3f0a83f26808f142e4b2a91ce61ab230f7667b222af249bbbae08b40256cb82fb8ddf39c89b7dd042c3e8"; + sha512.doc = "82bbadac2732d19b750cbc9ffd76c9a26409837b0e1b9396d405b9a64a2e5e9997fc11c53d8d399f815bc822feb1ba3fe9fcb50c8e9401ef7b2c9790450ab784"; + sha512.source = "9c15f088c5c97d63b928ef10a8d1f0a628874ad664182b631e5a52407b1a034bea478fdbe1c287ddb703fd9c9d3d84a8bdb47ea09d6de25ad99aa1ef8e227fcd"; + license = [ "artistic2" ]; + version = "4.0-1"; + }; + biber-ms.binfiles = [ "biber-ms" ]; + biber.binfiles = [ "biber" ]; + bibexport = { + revision = 50677; + shortdesc = "Extract a BibTeX file based on a .aux file"; + sha512.run = "75f9cb374e0aee1b049e977e3ee1a855ae8f908a6c6191589ce9d9fc28a8358fedf93faa416b1020e157a8ec7a3980673d00e052a100c88724e86050ea5eb487"; + sha512.doc = "ec96364b4a9f7ab446c6b0104646e82cab1c9015e0d3dfac6a795e58e02dd3920737207d16089c5470ac32f76a61be949efa6899ca935322c0062f71f3477b16"; + sha512.source = "6c18b4e12e8eecdd03f6afae80766cebe3f826a1146c38b6387c6793abf284d3c44e7d4d6050675f01676128f1d073d8ee8f38f31a6081049b8c390b5a7813a1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.03"; + }; + bibexport.binfiles = [ "bibexport" ]; + bibhtml = { + revision = 31607; + shortdesc = "BibTeX support for HTML files"; + stripPrefix = 0; + sha512.run = "c7245cce245740f0d930518cfee66dc513bd4b43c8b5804e1012fb95f401dbca2321be44ba6251de573723ec2e6da85fc77b9a9192004ac2144bfbeb3225d27c"; + sha512.doc = "cf01a0853d87180205651768b639ee4cf7ed1b6bb4869880489f57e37ed8fbff3e8406fbcae1d0c652b3d410f77af9b4d1932ee154c60cc79e2876014abf7b80"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.0.2"; + }; + biblatex = { + revision = 66403; + shortdesc = "Sophisticated Bibliographies in LaTeX"; + stripPrefix = 0; + deps = [ + "etoolbox" + "kvoptions" + "logreq" + "pdftexcmds" + "url" + ]; + sha512.run = "e07cd6233021bbe2f3591f866c3b3eeae083574f705da9505f6bcbb7284c243ac7f24440253c4557f0a300e9995188bf5915a42643e63eb80ff9e0fa4ffaff1c"; + sha512.doc = "f765e31a89e4deaa9578b30aa206d8f26ae7b3545a6575a5a28758263fc45eae6c5d3b5aa1233f3000f731ebed104180cf79fd051b47a79699c89305d626d0ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.19"; + }; + biblatex-abnt = { + revision = 49179; + shortdesc = "BibLaTeX style for Brazil's ABNT rules"; + stripPrefix = 0; + sha512.run = "f2c239aed726d57eb98cef8892c4b4295205d5a8d55a14b16db8bd6b42bf3f51aadb0dc767f97dfbcd8e57a1f867c5e344c604d726453113a007169edee0ff58"; + sha512.doc = "04158e1b92a2976d2a5cc107e00b5e4ab90a85799f9e55b25936fdd0e141fc2196f0f64577bf2eb8997b7ba5b7e8c575bb725febfc397940d271ecd5f56138a8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4"; + }; + biblatex-ajc2020unofficial = { + revision = 54401; + shortdesc = "BibLaTeX style for the Australasian Journal of Combinatorics"; + stripPrefix = 0; + sha512.run = "62d09153fea349881ec381bf6f2badd4453c5b2c328e8e3fa1cf99ae43cf62faf525bd453f02bb6d78e9f12ae4e35dd00c2c6f8efa015336bb13f485e8064683"; + sha512.doc = "b66f343c8456e3efb118fa18851dd08f298d5dcda4312c9688ff486db7a98fd5b3b953616f407d179480220ce905a6a6a08faa325061df9b71c6490277cdfa4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + biblatex-anonymous = { + revision = 48548; + shortdesc = "A tool to manage anonymous work with BibLaTeX"; + stripPrefix = 0; + sha512.run = "3a3cc037e3ce718c219e4bd4e380075d4a92d85cd1f490b8ffee10c5b80bb9e515f1f170b53eae033ea064cac2ddb3bb285655482e5cd65801403584fb9e215e"; + sha512.doc = "11b4a4f281068004c2bb11028200bf7f8b1461b4b40d0b52b60d60f145b3e9ea38fb672ae532d8430b0ed889df631b1dbeabcef5e9373b720d4a3c3354254789"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6.2"; + }; + biblatex-apa = { + revision = 66605; + shortdesc = "BibLaTeX citation and reference style for APA"; + stripPrefix = 0; + sha512.run = "d86ea9a83fd5c1f08bab77c12d6f93e241d444c10554918a8aa91ca4f9677531dac291962e354d2fb19668c3e59fa14e256039fc2cae2bc531c2ffaaa2ae3735"; + sha512.doc = "84f00557b32e8a50a1256d7a39635c77ee6a59c9fca1d36e571df8540afcef5cf0bf8b1dd648a0eaac1c45744d863774da2d0033223b5e3043653f8759b31388"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "9.17"; + }; + biblatex-apa6 = { + revision = 56209; + shortdesc = "BibLaTeX citation and reference style for APA 6th Edition"; + stripPrefix = 0; + sha512.run = "c327dac9368270aff53b8cc9319834c36b20701d379017c1ac0f4597cfcee56a5f9c149433e2629e2bcf708bb63d8b8706ce9c6dc009696870ebf06728f11b7d"; + sha512.doc = "4eb72746e8c627106cbf7e0a7164a30030cf87a6d91ec0afcef70e072dacdf2dcb386ff91e1ff648da178c6f01121c16277630752ce792d54812fd97cb699541"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "8.5"; + }; + biblatex-archaeology = { + revision = 53281; + shortdesc = "A collection of BibLaTeX styles for German prehistory"; + stripPrefix = 0; + sha512.run = "04c9541ac2f3cab21e412b0ea2efc284f9404f225f83f13c5ec3da2d6f3e7274e5d24647205079971beb11125c8fb3403bf09bac3ae5bbe353f6e2eb073d28c2"; + sha512.doc = "4cb13b2b394262a7c8ed212092cf65bd0707c1f0b0e8c62b1d166fc929a7ddd7f676e72b0750680908c67a17dbcd5dc1b558ef83b35c8ac7b43048fae2e56856"; + sha512.source = "0cef203b6be6246ca4664295d9b4d5403154e9813c3419c5473fdc950bfbbfb51f1b6caffd1af7891933684380e2b81756875eec9fd79ec0eeacd6f8ced7b09a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + biblatex-arthistory-bonn = { + revision = 46637; + shortdesc = "BibLaTeX citation style covers the citation and bibliography guidelines for art historians"; + stripPrefix = 0; + sha512.run = "93b48bb950e9a4bb81efabe4a3c8ee85d7056daeca88c1c1a070c5321b8caa0045c4005467cdc029f8a26b94a425235e36a36bdee163242194a5301ddd6fcc98"; + sha512.doc = "e31b7912ca34e6ec27c365c2b3e549cdfb60bd94c19b9f1cd54d35d2a1b99ef2702c3f818f7354ef4f5d3157c0e29538a94315ae7af8177de23893e598c7d439"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + biblatex-bath = { + revision = 63401; + shortdesc = "Harvard referencing style as recommended by the University of Bath Library"; + stripPrefix = 0; + sha512.run = "38075fd9040bad99fc95860f503173aa9be430317194c28fccc9ed385d7d596e9f738a436753c6d963b53fbaa714301fd2d92aa33d2ef6ce4cb6b902fa0923b0"; + sha512.doc = "e9005a72487eb7d1b4e5e7e8c024c65e2846435c8489d8766218ca6a2e77e902917a038491b9d6f1117db402397226b7c0f91805b25a9cb62ca90782ef15e8df"; + sha512.source = "1b6d136c520ec2f6db1fa99f278b0ca1a8d5b552a634012e772ed562296c1eeed1b84171ec64a4a79fe116a939108001ddc0b498f0768b0687fa45f7ca3f987b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.0"; + }; + biblatex-bookinarticle = { + revision = 40323; + shortdesc = "Manage book edited in article"; + stripPrefix = 0; + sha512.run = "8a7bfae09d95434d6db671e4037a2f1d5c1ba9cae5982e286389364ee2ff24f9a2daee78c69e529efd06be37d2e6a6f860820361feb42f5b84157dda2ef0988f"; + sha512.doc = "727228b915e6b370a74b4d38dffde3bbb7ae47973c33263bafab2aa6b640102775dbeeea7f09c046903dbfe86dbdfcdd8e0418d125a51678e603425328cd2da1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.1a"; + }; + biblatex-bookinother = { + revision = 54015; + shortdesc = "Manage book edited in other entry type"; + stripPrefix = 0; + sha512.run = "afafb9bf593dc3541ad527f09ee881fdda4af3bff78f02b68d53463a07494ac6c03ba55165738501b685e3e1d998eeb973e8431651ccf904b3ce0ea591dc0592"; + sha512.doc = "ebf06bec2cc1b083a472bcdf03772c9f5568a1482c926ebf886f02ece86a6f0c31a127d285ee16baadc4c0ea771eaac05e374c0a3de215d677b07a0335d362e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.3"; + }; + biblatex-bwl = { + revision = 26556; + shortdesc = "BibLaTeX citations for FU Berlin"; + stripPrefix = 0; + sha512.run = "ca5e20736a70ed02fbdada150433162b64b39b0d95bca623cebda8da821bfe8554f9409cdd49af7559737dbc6d6033bbf6868f5ed809b1004cbeba4bbabbc38f"; + sha512.doc = "32acf8bc10c07532e8d6174f3dd9a1f850acaeaaa5a91d14a1c299f2f5f22e34c619a41fd9ae7a90e097fd5ec30fdbce581f65560e2891f697ddb0106469f50b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + biblatex-caspervector = { + revision = 70496; + shortdesc = "A simple citation style for Chinese users"; + stripPrefix = 0; + sha512.run = "74ece2007520241b51a8518613401ceb2c37da921126f78ccfc6bb3a81765e186793a94197138cc6e52610d87a5a81a3b5159370aedd32190da2fed22346b1aa"; + sha512.doc = "f21b4c77c21f6a288bc7ea64e6959ae179117336e079ff4ef7ecf373b248ec2ad4b5c1499ecb39b18471ed33eec0fe11a0409e61761aff17ab73a7f01727ed11"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.7"; + }; + biblatex-cheatsheet = { + revision = 44685; + shortdesc = "BibLaTeX/Biber 'cheat sheet'"; + stripPrefix = 0; + sha512.run = "a974a8eeb4282f66ebdc7a57d40c76b0f2bc957249c130d4f97aa9f9749f5091745a87db277c3bef43d0f4e37790a9663949ca3bba3b28a16d37c13bd6029181"; + sha512.doc = "a2b9a82afe127d0bfb71f3a481eed3198e27ef35caa5cd08557ed35645f6209e9187f1e0c21d6fa51e6c32d0cf044c0d85373195a5f034c856fb4beec360af13"; + license = [ "lppl13c" ]; + }; + biblatex-chem = { + revision = 57904; + shortdesc = "A set of BibLaTeX implementations of chemistry-related bibliography styles"; + stripPrefix = 0; + sha512.run = "5339931e89e477284cfa76dcaa0be9ea7b3417dee4e20f8ff2a04da25bda4685270d3c001fd41f786f31c87e590b2aa4b597a517ef8086c75aad8f1e509a770b"; + sha512.doc = "17207489eb4d5ab5cf210882e6487dcf07fc30195facf27f3bab95f28fd8cfdd270da30d410579f6a8d91a1e82e7e12ff809fed47837e3ae521927b8251da5fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1z"; + }; + biblatex-chicago = { + revision = 65037; + shortdesc = "Chicago style files for BibLaTeX"; + stripPrefix = 0; + sha512.run = "dd93d36fbe11af94840c9dcd30695f5b291bc5da58b7e30e47960be42094cfb48a31a8d1c24dae41b56420f65b3b5849ad29a558387a9fb38006a9f816932841"; + sha512.doc = "e30297477d9e353bdd073b7afcfac2c890fb255e4c20ccbffea7fb3a3c6593496749f1cef0bb1d38aee649d3b054c844efb47008493f5410895a55b3369672c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3a"; + }; + biblatex-claves = { + revision = 43723; + shortdesc = "A tool to manage claves of old litterature with BibLaTeX"; + stripPrefix = 0; + sha512.run = "008cb8403f1b35a7fd077f8ac2f33f73ced090ce3d65ce678ecfe90af8ab6fb2b4349342aa838d2d4f1e78d0d87267c7b8206a3377c6490499ee9196498c130f"; + sha512.doc = "a11a4df38dbeb4c27f30b824c9f1ba230d273e227b8cdbfe5f61268a1a2b7ff3193e79d8e8bedb6f9334df39001b71a3ec78116637745679bf3d67582727371d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.1"; + }; + biblatex-cv = { + revision = 59433; + shortdesc = "Create a CV from BibTeX files"; + stripPrefix = 0; + sha512.run = "d034400abf6c0342a37e6e5de09d5eed252e80cfb93b4707f6e879edf6e190180046d28830fe382a6240d6000bcfb9277a66bf2e21b92ce9fe9deff0596f1c03"; + sha512.doc = "23093f0e8f472eac5db45026266c17b3337d478af6dc1776515417a2539ad671a67dba4ebee9f83407ee4c126cef5a6245106916188093ced89a52c44afba339"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + biblatex-dw = { + revision = 66579; + shortdesc = "Humanities styles for BibLaTeX"; + stripPrefix = 0; + sha512.run = "bcfc88a15950bce48844dfdfcaa8cc946d553c9fc31b3820dd52a9f4588c55e253cc593d13b1dda0b38153a21b93a3d9a868398296546f54b5b804c58eebaa1b"; + sha512.doc = "54699b3f4e89bafa89cec29ed14a0ac32269bd52a68dda7916961b50032fba9ad3acadebb1737d8bdffcfa07f99fd104ad3fe19f0a1f569258fb4ceacefcd1ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7b"; + }; + biblatex-enc = { + revision = 44627; + shortdesc = "BibLaTeX style for the Ecole nationale des chartes (Paris)"; + stripPrefix = 0; + sha512.run = "6aab8a819ce9a3ec2d6676ab8850c3fc6bb81e5af5c9414555581cc9d164184d18ec550fb0ca67d28d800826356f1c709144ee7d38c0cfbc274179fa813a3a0c"; + sha512.doc = "ae50544ebdf7bbf9ee708f193493ffa241ba91f0925a2bf03b6bf1ec486586fde3c630fe717f4f2904373c08a2f9a90afca86b50870f87aa0d04430554650223"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + biblatex-ext = { + revision = 66641; + shortdesc = "Extended BibLaTeX standard styles"; + stripPrefix = 0; + sha512.run = "d39e7a2418beb7b627bb6cb9566dc17553f0f33c6c720a6da760976d6f0333cc15763d79aa2dd09a70d571a3be886d4129896db14616e8e28d426cf41945da8c"; + sha512.doc = "bfca548e2bc673037efe14a54363787311c05c8518e868f7333d958f45b0a75da7d65caa9dd993ef37408414d27576ecc2cca7eb5d2e5e316f4f2f94c961d8cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.17"; + }; + biblatex-fiwi = { + revision = 45876; + shortdesc = "BibLaTeX styles for use in German humanities"; + stripPrefix = 0; + sha512.run = "72b1e41ac55403f144529fd5cbd88f51dfd61cd637bd8e6427a2714d3684ffa37774c698475994f1481442cc8eb336d8de398d55b3df28e5e1615b9cd74cef27"; + sha512.doc = "37fd37d39fee963af8567cf27cd266597175ccebe20f016c7dda699d95e6f7fd0408a57f9061b98996a6ce8eab04a8ed376e6e29b5cb41635d004d24082e91be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + biblatex-gb7714-2015 = { + revision = 69775; + shortdesc = "A BibLaTeX implementation of the GBT7714-2015 bibliography style for Chinese users"; + stripPrefix = 0; + sha512.run = "1390d40d1a34caa69d4b25d18e0f01c81974ade6b778f6daa85bfccd17a4e749145640ea66a565e2919d61c642a1c0c24e6403b3e7a3b5622e1b644b559902ca"; + sha512.doc = "18fd12ee1c680ba5e4fcbbfbe4e43f0d9163f7cf813ad20a0f264b37e252898b704a15c33c00559941d7b445b91b9652d97e46abf611ceee0885a96007279d69"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1p"; + }; + biblatex-german-legal = { + revision = 66461; + shortdesc = "Comprehensive citation style for German legal texts"; + stripPrefix = 0; + sha512.run = "0d447d700791b3e0a50fa98c14cd71c735e1e1196c9d0c23e86114942d2a9d7dfc9f769a6f8ea7aa78903f1c6bf5600dfcd7091250ef65f2a2a5295a796f8fd1"; + sha512.doc = "8b83f35af4cbc23c2e19dd35d3f798575f1df540bd4f10a9f0f7d732d5de6559cc0ad49df21753920eb659596b5e506e17fbc066fdab27552831d222da1e394d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "003"; + }; + biblatex-gost = { + revision = 66935; + shortdesc = "BibLaTeX support for GOST standard bibliographies"; + stripPrefix = 0; + sha512.run = "8d87595c133fd1b64ea7facda55a1a7a79dbedb93750e0f54abd26e5904d331200349a956eb03a67017015e85e9854e26f6753b5d2be2ef0f3e4d532eb0b7ddf"; + sha512.doc = "3ee6799d4dd00b4503fd6d7bb041d674c9e61d4ab3c366fe078a9db4a4da154601c13876dec51ba14e3322442e3174cda81212df26d2309e3517a60d06283051"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.24"; + }; + biblatex-historian = { + revision = 19787; + shortdesc = "A BibLaTeX style"; + stripPrefix = 0; + sha512.run = "bba5cedd64fcf0c0cfbf9b56c66838141917ba1e7c2f27aea5bda44261ba28366b465415e3674a2ce398812d5cefbb2727c7e5e1adf53a2d9779754849664502"; + sha512.doc = "ed87ab74fd06ccdfa0923289dcd7a37df695fdf76003aa7ab142c9d924fb69a81430ab7651314a9a391b9114dc2c2d63ffe94461bb00fd33d97ac9e8c5b2a8cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + biblatex-ieee = { + revision = 61243; + shortdesc = "IEEE style files for BibLaTeX"; + stripPrefix = 0; + sha512.run = "2f4dd68ea556dc56fde888294bd9a3368efcf4099b95b0c90e60225c3b99181de52b406a7e40a09792b6b58410174d74d774a0aeb1feb4c8bef69fd513861303"; + sha512.doc = "ef24c360fd211b79538aba8394a831a48c4b518bcecc516fee91191aad5b2eef06ce9e0e2e033134499a94dac4542803c32a207b2b71d48b14401b20f5aca549"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3f"; + }; + biblatex-ijsra = { + revision = 41634; + shortdesc = "BibLaTeX style for the International Journal of Student Research in Archaeology"; + stripPrefix = 0; + sha512.run = "040efc5b43e2642251921bcc49db1ae2e00342100d302bca24e2b7b11d1724797f1fe7aa254d01b35d1dfa316f2b0f739664f275031c498b157bb652c6aaef44"; + sha512.doc = "36cef635b4603606d36f13b489320e10fad48869b8cdbe78d6f81ca9f3caee0f3e14e408236b1f18e6c7cbf3cd414ed8eb2863058b31e761b4355c6ff1230dd3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + biblatex-iso690 = { + revision = 62866; + shortdesc = "BibLaTeX style for ISO 690 standard"; + stripPrefix = 0; + sha512.run = "e337c10a9eaee195b091deddb93fed9416912856599d31562812dc4b5818d495e6ed6443ea1c801298e351be7ae37f830e5ff23d31beba8ea0bcb682da15f5c2"; + sha512.doc = "ec7f5e962bbe119e583c8dd671b28229c39043e1aa06319772d878c8a49e466541ebd5adbab4e1b229afcbf91e9cf981dc6d0918f3358a12882bfa5d282d3a51"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.1"; + }; + biblatex-jura2 = { + revision = 64762; + shortdesc = "Citation style for the German legal profession"; + stripPrefix = 0; + sha512.run = "5fa0044f2a91cbdf550949829ccbec0a11fde1576c6f84f861f1899dbf2ebf4124a63a489f77e487194e61bf4c629772cc77aae6cb35260e8bf92e64552eeb7e"; + sha512.doc = "87d31c5f9c0ea71e28d26df03c88497e8bcf18b07784c57be3c55dba0660cf58e2113cef25e802ea6210a87cadcf2bb2398b43ffbff50519daa62b329b678c4a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + biblatex-juradiss = { + revision = 56502; + shortdesc = "BibLaTeX stylefiles for German law theses"; + stripPrefix = 0; + sha512.run = "6f78c1da8426508af972a27b6a23439a3b84c402e6df2494b333111cfddcebbbce639a49c8e900cf52b0e63724a41031b4fee82e0a17f07b479584bb66c809d8"; + sha512.doc = "94bbebfa29a491fa6e502e55236605b5a589c24920d235cbecb8c9372d1e580d586f643537a5ed6afbe6d1656f0d5ee8610cd09e3112a9e2fcd00581937016c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.23"; + }; + biblatex-license = { + revision = 58437; + shortdesc = "Add license data to the bibliography"; + stripPrefix = 0; + sha512.run = "f655338605eb7257b2746a73e4f29d58912addeb65a272b3135cd45b32035a58c0f9c9556dc9ffabc34ca8c3b00b4d8c4f44da6654d794dea3bc2a94b986bdae"; + sha512.doc = "8638454c5014f7df6c82edaf028872acd6f6a135389919178e50bb660236e63a299483f3ef4e83476e399e2cff71f1563e4a2fd111c1d18aac20273b3abbd744"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + biblatex-lncs = { + revision = 67053; + shortdesc = "BibLaTeX style for Springer Lecture Notes in Computer Science"; + stripPrefix = 0; + sha512.run = "b2ab630bfdd41150b0be50d3851c03413ca8c8fbb5756989bf4e0bd8f98480a65eadcb9b11ab879f5cdf3b6c980376ff6ca6507bd26248a9f1b42b9217f656df"; + sha512.doc = "ec622c2258d96900fa8daeef1aee6216eb933870eb09329cb90b7771b3e8668c88cfd253d4da0889ecb127421061bfa7cfbc8df27ac59eb58f7ae309eebc1f82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + biblatex-lni = { + revision = 68755; + shortdesc = "LNI style for BibLaTeX"; + stripPrefix = 0; + sha512.run = "f5d636b5cfa0125be2f5f87f41ebd0ce7bb853f7eddb4a7601f72ad42267e6456e2212bcdf5d820db3cd8b2aca058123a8dc2bbc67305cedf331d83b9a007b6f"; + sha512.doc = "87f37b95865ccc3d66fd514fa038b8c224e1a7df502e6ab59e65a37457f129b1188e510fee0f307296222d40ce241acc307e6e2d2cef7598cc009fb21a9fd7f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + biblatex-luh-ipw = { + revision = 32180; + shortdesc = "BibLaTeX styles for social sciences"; + stripPrefix = 0; + sha512.run = "e58e2522d9a4711454166c816b971bbf6bab1f8d1c7eea122933c8b7955a49ad294df410fe0a75375134b77d442bd5214ee25d56d766be7e5843e4ac14d7ef5a"; + sha512.doc = "bbfa55884d3dd3167618f6f9595c301e5faeab0a35cd058cc68922a2aa8362cb3a9d035eaea06ee43c428dd89d23538b15bd4c79c1e095ad10aa4d1d7184f92d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + biblatex-manuscripts-philology = { + revision = 66977; + shortdesc = "Manage classical manuscripts with BibLaTeX"; + stripPrefix = 0; + sha512.run = "8ac244a6dbdc725b256e5de0389ab4e4bef4f8e1c85d8c173680e66f1ba793679c8388e70e18791c544091a8bc7870459a945c6a5f298a80c530e58d071bf11d"; + sha512.doc = "eedeb99e8712337165d684c38621a0bd7829d3071fe8df1496d2347c5f0b8150af68b20caaad69c8d3e3f08c75a52ab63df5d16c48863d0ea179f15c0f55a490"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.4"; + }; + biblatex-mla = { + revision = 62138; + shortdesc = "MLA style files for BibLaTeX"; + stripPrefix = 0; + sha512.run = "f286ec7553818df5900e6d5e791d56c815711bdf6dbc3a317bd416dfae9e7b86d94e4d43cb4846cffcef9e9a246f0a059835ab6812172130a31984dbf39b58c1"; + sha512.doc = "a6e5861754ca4e1bb42dc054188777b63d11c1438f83399c4752ea849284bfc7a97943e891983b88117047f59652441c31edf82f382370ba233deafa0445c17f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1a"; + }; + biblatex-morenames = { + revision = 43049; + shortdesc = "New names for standard BibLaTeX entry type"; + stripPrefix = 0; + sha512.run = "7e847faa586655aa7b3c92d9379540b2f5e78fb50843e36416e21552c6a9e810945f5b60a96a14c35570bd0403ac29a43af29bd46e2ecb0d87e3c6ac90345826"; + sha512.doc = "c30953fabfd4717c56cc818e55f83995ceb203bfd67775aced3fe8f1f4f4a92b118ed9c40665ea28944806cb2d409a541f59df530e37274e3bc3babfbe55713a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.1"; + }; + biblatex-ms = { + revision = 66480; + shortdesc = "Sophisticated Bibliographies in LaTeX (multiscript version)"; + stripPrefix = 0; + deps = [ + "etoolbox" + "kvoptions" + "logreq" + "pdftexcmds" + "url" + ]; + sha512.run = "811bcee998c24f46ca5fb8bef9532148c97233766c30f0022cce7022ce0d5f0b5ee260ef0d7276095dc4ccba3dcf67e90a4cc1abf080951c9bd7cfa4237428d6"; + sha512.doc = "dd6dcf78d0423578a41b47ab84fee4f398a238ac15e098e09d8cee93d5d08d4af62a72d90fadcd5ddb497cf7a4c4b6017fc721c1de246d0aedc98ccb32bad111"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0-1"; + }; + biblatex-multiple-dm = { + revision = 37081; + shortdesc = "Load multiple datamodels in BibLaTeX"; + stripPrefix = 0; + sha512.run = "9f83220ae7f2576b4f58394634dea831e5759bf6560ede3244ffb9d18fbf522e9c728c47a4184a43c2dcf6807481a964d7e468e4e6cb921129440bf917925a8f"; + sha512.doc = "f33e650b2faac0c7b9d078f0f4fd9da8a58562c6a9a8b13acbb4b23001d2ecdde105c08b6b6e62f138783d61f3e071f8780afee2f170c134c275ae62ca5a597a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + biblatex-musuos = { + revision = 24097; + shortdesc = "A BibLaTeX style for citations in musuos.cls"; + stripPrefix = 0; + sha512.run = "129d1c12bc0e4e8fd339f7bc37442947dc492700a721933c9dda0b18edf78a9b402884376cb7d80893a06834f70a5d377fd264813cdf869ce5e40667f296d618"; + sha512.doc = "d2fc62bb25394195a161e47ba116f2e795e6009b5f547d09cae2e21cc0f8171c610013622c2a019438e04b6c089d17c21333e3c70b8faeb09f90113cca9536c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + biblatex-nature = { + revision = 57262; + shortdesc = "BibLaTeX support for Nature"; + stripPrefix = 0; + sha512.run = "b4b12abe904d96c9489dbdf248042ed1f1af1474921e0835027220059492f2441aace661260fa3632a65bb2c1ec0ab4e521014e63a14f7fb835293fd8191c2fe"; + sha512.doc = "c5169189b1225dba8631a0f7f5ceb5bdb5267888b2817716e23aa79bd4516665965b4343ed5e1a8e5099eb59ca64cea9edbd31613f7cb02f161b8ba561c6d4e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3d"; + }; + biblatex-nejm = { + revision = 49839; + shortdesc = "BibLaTeX style for the New England Journal of Medicine (NEJM)"; + stripPrefix = 0; + sha512.run = "97443b036769ffe3487cefa6cb5647eadfb8cdb20db0f6607028298b196a0df1ddf1fdee85e3f163a138da47f28019ab32147f65a5f7cb23b46596c96a772799"; + sha512.doc = "bfcf854e7545237dab17bfe3cd2045a1914397a02e5fa31bde2bce8c0e44c474fe0389e2cb8cd59516f4db9a3b538524f8321723a49c41233de637075bb41720"; + sha512.source = "7a2cd3e8205c9b081e9a9601240dffd3943eef31cab5339de92be61fd023f3889958292ba8698760e8d8e6cf196f306b76e34c677d6aa2074271d11cbd78f799"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5.0"; + }; + biblatex-nottsclassic = { + revision = 41596; + shortdesc = "Citation style for the University of Nottingham"; + stripPrefix = 0; + sha512.run = "a0da4bac443dcbc2c0d8b97d4eed21c171e876cdaee3699a0652c905088056802bc12e1f16965b6b2063e1ca0dee808f5f5e9fd9e5f6da7f956548fd5bf0b222"; + sha512.doc = "d0b6de2439ff0698b14781deecd260d5851b44da80a10827e0b0bf5ff21ddbe46b979dae9afe988ec1520387668a802a777fba28a830b0e0a7ce60988bfe375a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + biblatex-opcit-booktitle = { + revision = 48983; + shortdesc = "Use op. cit. for the booktitle of a subentry"; + stripPrefix = 0; + sha512.run = "4779618979e358380b2d9d2163a8e62274093bc4e7d7a959364b1980d86110233f3927a80e2dac7390ec43d0626f92311d5923657872d25bdcab5d93dd84956a"; + sha512.doc = "81990177b6cb92dde0e2d1371fa6e5ad6685c9750eac87063e336fd3412b46eca40e091bf2222631f6abcef995fd04c82a3cfd3f87baa2b069c74457edf7f13a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.0"; + }; + biblatex-oxref = { + revision = 68950; + shortdesc = "BibLaTeX styles inspired by the Oxford Guide to Style"; + stripPrefix = 0; + sha512.run = "4059920c5183f9ed337b9fbc0e56ddaed2bd7e089028729c606981dddd113e1d916f335283608774b56bc9fbda53822e1e2b9ab8d9c3283a05bbda530ff4e234"; + sha512.doc = "55d8336df5219f430dce34e2138d770557e9d68ede3d15b34a1a1b164d92d58a27664470764c45fb65dc6b5f6e1550e7fdcc9aa5f266027d3543418f7b6d2b07"; + sha512.source = "df89dae5cdd3a5edf49bd49ecb1226dfa8e9145ca9abfd10a065ea4a5f12e65b4d0dcafc9b4c6067b180029797cebdab7d50f42c8dcb0fdaa21e33fc09963eca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + biblatex-philosophy = { + revision = 64414; + shortdesc = "Styles for using BibLaTeX for work in philosophy"; + stripPrefix = 0; + sha512.run = "dad59b9acdfadb96f0be528cdc0cf5c0a89fc6d35f8d74f6d15230cf1177f4766111b6fcd21fb5aaf1694f1d0e720cf98d6228a89bc87c91124a04526e7291bd"; + sha512.doc = "1baca667f89ca22f56d323764de02e93f2ff543e68af85a8e0bf4f23e005caf251d6771012e2df44ba9df35b516e6db449037e5e8d8d54691ff68080957d459a"; + sha512.source = "d8a6ace3497436b0993f3da25a5e13879a23eca44d4eccab00377b0a62db1a2d1cb1e40083c7bd958a3d3968c35d88c0acc13ae9e07dd8b8c559a4770d7bc6c7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.8g"; + }; + biblatex-phys = { + revision = 55643; + shortdesc = "A BibLaTeX implementation of the AIP and APS bibliography style"; + stripPrefix = 0; + sha512.run = "76a37bc2d37e2813dc39b9b21cf38788e6da14e60222e4fb36aa90e5c933c18adfcbc1c8affcf9a8e70df14d516a4827599b2c5979828e7e28b77b7b3021329d"; + sha512.doc = "62fe809519f86ad46136c18247b5c440766778b61d1d406df302aec76756a2259f06ae175af2267de30c1347db511f9482503326c28e1d382039d5047a75a961"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + biblatex-publist = { + revision = 70515; + shortdesc = "BibLaTeX bibliography support for publication lists"; + stripPrefix = 0; + sha512.run = "6c93da7da5d847fedc4e383e759a8132053ba71bd3e5d33d300f1e31893b6f0c9e528e731e4973814cdaf597da2d22ba6ac4eaf9f75d82f47b46d41899e11906"; + sha512.doc = "83c98481b654b9a905d4ff6b3ec0419dad60ef428fd2b5d8a4602b73f3b061864435be3f0259f5e74b14b7c5887c7a722c223baf519bc07ac46554de58746a60"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.8"; + }; + biblatex-readbbl = { + revision = 61549; + shortdesc = "Read a .bbl file created by biber"; + stripPrefix = 0; + sha512.run = "d74bd07be5983c2731a418ae0167d99e2bdf8d1a9569186a8940f89af3b9a6fe82f641717638c693b98b61637a705fe280d033282d1e37c279aeb080c4b66399"; + sha512.doc = "9ca0584c36e7247496cd0375e0f6585695f509c4e88d29f23158c5c5c7897758d678082c9c836d0cc878423ab23d54e9a0c2b40c5b63830fd8996a35b4aa09cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + biblatex-realauthor = { + revision = 45865; + shortdesc = "Indicate the real author of a work"; + stripPrefix = 0; + sha512.run = "dec592d3f16a431286f7887af863664d777e09e5784a53e9b99247e3bae86c7928907135980d27614e52ab6bd1f1f59a3e8633ecde05d3f9b84b97c84ccefa23"; + sha512.doc = "bf0ed482905bfcf9bf5a8eda61f609037316012aa2992796c57d48b5f5ccac496dd372ef5e8c88262c8bc5b2d543cbf5f6aba8ff1833a99db6929dfbf379d2cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7.1a"; + }; + biblatex-sbl = { + revision = 63639; + shortdesc = "Society of Biblical Literature (SBL) style files for BibLaTeX"; + stripPrefix = 0; + sha512.run = "6aff57b41510357eb5d73322254fe9f8462917909cbef6124733419122e681494c9ad13966438c5cabb8efffed527b1a455539bb092b9bbe61e6ea8883f9d73d"; + sha512.doc = "e61925481c93e5a1536df91db28544d124aafa5de0871da78b069f4e1765e8a68b4b7e040a4ccdb5c3d8a16140397d33d4e04c212220ba2290968f438e4239a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.14"; + }; + biblatex-science = { + revision = 48945; + shortdesc = "BibLaTeX implementation of the Science bibliography style"; + stripPrefix = 0; + sha512.run = "e75dccc1a01975776cf94c17aad531823844085e4fa2ba54ba4f74d77ad193c26238eed602f309760f3057b6fc405fd01ec2a7a20647cd8570889832b1ee6bdb"; + sha512.doc = "ad7d8fd4e54830d77f0a155a04cd523c5c789745b5da34b8ea1efe59ffd4ee1673045dec58d28b8234993a70061337178cddda2267506366549c2639f6c917b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + biblatex-shortfields = { + revision = 45858; + shortdesc = "Use short forms of fields with BibLaTeX"; + stripPrefix = 0; + sha512.run = "be9562c2b79e1f01a110708eb6c0de165a9f596bd18ee72dd6c8add0bf380222a31ae12d86ab843083ae3e7f47a608826b985455f4c8501bbe21d4f0a0e15b80"; + sha512.doc = "e6e5e6c113ef43a9784f9000637d526f0bc989358d690d4f41be01e1e22abcb33f347421c727c411c2c02f0c11b1c60d54e7fc23180bd6f66c5c46bf29fc1202"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + biblatex-socialscienceshuberlin = { + revision = 47839; + shortdesc = "BibLaTeX-style for the social sciences at HU Berlin"; + stripPrefix = 0; + sha512.run = "f927cccda37e1ab37bd01b49f3247b688ba0186db5b162ab9b73db7be5f83d1b261bcfbf355d575a3905cdfca2421b6b592ae0763d7575957ea382b451fb6099"; + sha512.doc = "30c411b27e50e0f4ac46385a07606846ae3dd744879de257e2f2abec829e5920957d55e970255cc51cb768f3ca0aab629f30d2860e5745c4addf5aac10ecaca3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.1"; + }; + biblatex-software = { + revision = 64030; + shortdesc = "BibLaTeX stylefiles for software products"; + stripPrefix = 0; + sha512.run = "a95344eb338410804347bc0273eacda0c69804a5dd6886932d11d72879f4c59798cc9bf902667957cc26b56adc0c2f7f747e8967f85fe5602dc1e786bd3a717e"; + sha512.doc = "cfe81f1a29f49a756df7595b18ebd492df77fb7ca208418b8627f49180a0a8bcd28b779dea58a88de16b6aa6553243b2755df3e16bca696ecb8a17fc3773135e"; + sha512.source = "6ee3d3df8bbce5dfd06f64b4e959742e8cb273db8f0606baeef97750dabb0391fcf409dce603772c525a0ad10d543e476d9ec217eced690b0c84e7a547a48f32"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2-5"; + }; + biblatex-source-division = { + revision = 45379; + shortdesc = "References by \"division\" in classical sources"; + stripPrefix = 0; + sha512.run = "f7a9b6a9f8fb21a5b9f06e3904ec2147ccd21383c3ced8852b22d0cf62088be103b674466ae571ace6bea52904f6cfb79ef2982bdb16679d02ff1d260d5b3517"; + sha512.doc = "1ae3883454e6aafc91b996de520a4669a06a67cd74b9df7e7cb7d096291d5f1dbe728a2a0fbd3b5968fdebf64946e829c4722bff33ff52ccbf32d8055f042144"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4.2"; + }; + biblatex-spbasic = { + revision = 61439; + shortdesc = "A BibLaTeX style emulating Springer's old spbasic.bst"; + stripPrefix = 0; + sha512.run = "478c5cf4f9996e8b15b13a1ea08b53ea03ef731666095f5374bbca6e16c93d0f049b891540742821140e91a30a8af1fe3c233ec45df1dc777b7c408b52676d97"; + sha512.doc = "9c12f5fc1b328ef0369e7c82c2a25162568cd1d1568aed4ace480a639a38e10642e93ba20939fb0adfed2ee16b44e9a7abcb3eeb6fb51bcbe47bce7436a590fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + biblatex-subseries = { + revision = 43330; + shortdesc = "Manages subseries with BibLaTeX"; + stripPrefix = 0; + sha512.run = "37955d7e547fceb3e3856f5e367d39a4952ee0d604652963db2a54466e9d6c1effb6b2c195ffd1dd15eec5552df97419a09763bc51af06c6726dbe40a6e3bbae"; + sha512.doc = "94bf4807e0623c35690ef7b1fd879710a762630224c0a52ee4e7b4a96c27001a9653de2c7d2ecd2a12cda448bfbdc336c54bcc8fb6674782af017cddfdc8e5fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + biblatex-swiss-legal = { + revision = 64491; + shortdesc = "Bibliography and citation styles following Swiss legal practice"; + stripPrefix = 0; + sha512.run = "12781675dfedd279313be790c218e7e2fab876774207a45caf8f7843eed74a37c460038cf403d3ca38a5b849866917a24e5d61df25cc7ca44606f9b606e95a26"; + sha512.doc = "04338344d00c9df040b2aaedca7a6c8d34caf1077b9da7322ab7db6b17c1fa32da7c170e45621f5705f552eee3c2392f78a6bafa8bcb918a07452d7e696cfba2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2a"; + }; + biblatex-trad = { + revision = 58169; + shortdesc = "\"Traditional\" BibTeX styles with BibLaTeX"; + stripPrefix = 0; + sha512.run = "e14b9326eb05af2a89eac072d6c71f61527a53a813605bbb399703d2a23cf7ddcfaeb2cc77f6f7b8959e05833ae3eb343224bf126907193af557d09fc1746552"; + sha512.doc = "32d6fa6369359e15717257be6e89f77081dbd352654d4c60d55f4de9c5f522f7d222b51bfb5a1eedd7f6378343d041380c5e97e559e681bcf7647e0695ca13fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + biblatex-true-citepages-omit = { + revision = 44653; + shortdesc = "Correction of some limitation of the citepages=omit option of BibLaTeX styles"; + stripPrefix = 0; + sha512.run = "908f6544890f69b4ca405c94e68c4814c52956bb77108f8e29bb4b6b63ad7de3bc0b1f1213a612f9e0ebd94ddc054907092451a9f326476f39e18a1f81ed0c63"; + sha512.doc = "bb53e66c1aec87669be8bb608f82cd7683692cf87aeed792d1e9d49045039c15fc7113fe116e04332e8aa6331101a6e97e97f655e26cecee9636409d810f77e7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.0"; + }; + biblatex-unified = { + revision = 64975; + shortdesc = "BibLaTeX implementation of the unified stylesheet for linguistics journals"; + stripPrefix = 0; + sha512.run = "01d07011f31b2e62d6438390fa81b5b86af50a9007ef66316a8c2125c2670015fba458fbe128a409c49510baa054b2dbe6c0ed0f153366c5aab317c38f62ff84"; + sha512.doc = "56158b821a29bbe55b67520c9109569afa8b9338af18875da42f95abdf934e5b89bfd9c4bdd41de7d5f263011ab98516916d358be4f36278c6d4cdacb8964300"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.20"; + }; + biblatex-vancouver = { + revision = 55339; + shortdesc = "Vancouver style for BibLaTeX"; + stripPrefix = 0; + sha512.run = "9d31315ce02bc47869a3e11644fe3160bb7b0178f87f71a9f3c06e54326c49bb1c37daee0c02f7185ef50513afe0aa4bbf8070b91db3181a2185a138daef48f8"; + sha512.doc = "ac285c5568d8651e81680576950d593eb5247b636c1c27b0a2a4a6758bc151b51f6e2b4938bc9273cc748924cb9f6193f6b58b883692ce03fb272316b8ec7204"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.1"; + }; + biblatex2bibitem = { + revision = 67201; + shortdesc = "Convert BibLaTeX-generated bibliography to bibitems"; + stripPrefix = 0; + sha512.run = "ff86dc4068b0b3065e19af6447a71396337d9e7e5394777c1c385b714d01f2ce983c45923b460c60784024a8068ad68f05ee8dfd14039b65c2d9d9a61ef584a5"; + sha512.doc = "21a53b0f4612fc18cb43f12cd6b1d1f72db896d0c55f73928fd11399598c04973595895d7cfafa546507e19cb25811118de9d07a8e9e1e242e22bb8d17e3486a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.2"; + }; + bibleref = { + revision = 55626; + shortdesc = "Format bible citations"; + stripPrefix = 0; + sha512.run = "261773de4bfeb039d4cb3f2dd88ca7c2ae229d2844ae0f5f454e06d888d9543fbe1439490895a49bbcbc79d8335151bba2a35bf36777113a965613efdcf9225e"; + sha512.doc = "964f8547c073db2b174d9ddfd1f6d0ff06df5bc51b2050725da20687f84ca835f58ee238f3f1a9d6d4ebc1858217ed0d8b2950964cdd638012d91e94bf92aa19"; + sha512.source = "09329d9142cfeb1f70778f46d0396aaf20c7ab2a215d76120ba11147368236ab98a24ebe386f68aaf253991af4c95a320339e5d07e956132d9d3d08ede63bb79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.25"; + }; + bibleref-french = { + revision = 53138; + shortdesc = "French translations for bibleref"; + stripPrefix = 0; + sha512.run = "f768d01206a35a6ca18ba777fb159294f566be365845bc82d344e9eaa3dd7cd0c1763564b7e17d4a1b851330405cfb3c383019b575276bd9b12d084c4845ed89"; + sha512.doc = "e72ac2b74f01df60c998896b76013eec56a3d8cda8df2f26f92d05d342760204913d7d70a6c8f63680f54bf3c84fb1c654c213ec2356dcf189bf9e134ce4de30"; + sha512.source = "f70a734e6391ff8681a6e58c3161ed5bc894a9bff26a6b0cedd4d868acc0412fee0069ff937a247b129186c8d73b43305cb6747678aabfd0537c1238c9ee2305"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.3"; + }; + bibleref-german = { + revision = 21923; + shortdesc = "German adaptation of bibleref"; + stripPrefix = 0; + sha512.run = "094177e505025eef5262b876fc49cfb09435b653c87fb1ee7453650e94f098bfbc7f5c78684849b3ce0cec2019d85a0413728397b5ffaf32bde542d8fa86222f"; + sha512.doc = "c3c610fd8a80ca5a0b8de6ce4aac887a7d16f01e21d845fad595e1d5d6069d8e89459dfd187cc458d21bf2247f4f2c7fe72233a12c8e532b9466f2ceea283360"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + bibleref-lds = { + revision = 25526; + shortdesc = "Bible references, including those to the scriptures of the Church of Jesus Christ of Latter Day Saints"; + stripPrefix = 0; + sha512.run = "ba3c4e41b566d0a26bd9f0d11d8e776fe04a18aac451435ff0283ff273971138407753bd6806f34708c5a2f0c1b2581c71de46bbc2e0c8063c9838b3d946f2ca"; + sha512.doc = "6fd81f90d0c94644231e911ab44827b77864842a3fa91127fb53114179488e5ffd66a404a1b5afee513e0cd3f4c83f38cae547e6dd6484403926c4c46b5cdec7"; + sha512.source = "0494b05fd3881cc273e8232c398e80ddca4c1286b10aef5d341c6c3573ee40cd5ad1b7a2ae0aab9fd505f94a4bf98643453648b7cc52fda09f5e705a8b4da863"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + bibleref-mouth = { + revision = 25527; + shortdesc = "Consistent formatting of Bible references"; + stripPrefix = 0; + sha512.run = "5ae9356781549cb5ecbdfa33085ede0fdbcb7f131d55484153484c777f88e23cf965507afde803e7bc5b775aeb416b9ee767815b5dbec444a3d21be18c7445f4"; + sha512.doc = "a904b4c9c0c8f3ff1feaaad8d1650b383ff0110bcf463f004938c51bce84ffc860082bf3e598922eedf0aeaa664ef0379ea3304f6dc5b681679d9545026c6bf4"; + sha512.source = "5ad805eb19d6ce8fef804117b462eb1f1dff887c3b6326fd42eba88c7a218ada84992bc419d889f04363ae9b7073b13ebb5f7a002225191fc22c2a2cb5824514"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + bibleref-parse = { + revision = 22054; + shortdesc = "Specify Bible passages in human-readable format"; + stripPrefix = 0; + sha512.run = "3af7da247ff7f9708ef076a3fe110979e7ff07be0afb08597feeda9ae31e60a66eb2bbbb5da015e10566e83a116cc9f2efa56fe91a57717230fb35bd004c209d"; + sha512.doc = "08393d76bca59dcbd715cc443ffbf7a1e15894ac6a2963d0ce770c96974c14d42283fd9237c215fe454ec4403a21387ba9dee52ea1bd93b83ab4a13fbc65157c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + bibletext = { + revision = 45196; + shortdesc = "Insert Bible passages by their reference"; + stripPrefix = 0; + sha512.run = "3c5170b747c6426099c021390f7ac226ebf9dbe42ff586c698b3489d47639fcd4198a4cf49261bba9335caebf8f39488d65fe851d60d9f3c2cc2127539ef080a"; + sha512.doc = "ea38659b5b2bc252760937ecf21d4ac3e8986ac8be6afdc1f2205d84696b8da55e02037bcddb24de389d54a692240ae946ab3e41a0a7913015da4d7b5e12da7f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1.2"; + }; + biblist = { + revision = 17116; + shortdesc = "Print a BibTeX database"; + stripPrefix = 0; + sha512.run = "02f006139b475cb5d4ec2bf85ec098de78f5bed7242ec693317ad4e01acb62a8c5479f295a8a1409fccd41b327daa75a2639b67d9838777b8355e6bd40af478c"; + sha512.doc = "b5bdd51d7acb738569671f13dbd25fc7b98a8e2e03e324e9501a20ac34cf1ae3578fcd622be73a80467e47a64a81f4d897c4e167b07a5ff5d06635b09dbec51d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + bibtex = { + revision = 66186; + shortdesc = "Process bibliographies (bib files) for LaTeX or other formats"; + deps = [ "kpathsea" ]; + sha512.run = "568a72b269dbcb0d5c723e346e8118a0ed923273460d9518891616cbf7b174b17cd75acff02f092176d71b6020483de75df20994bfb66c2cd46432c33d5ade3d"; + sha512.doc = "4f95c010ded89688791e1115ce4e167740b43e9e48d596b2621e6c18b4529479da9441351b463946e7efa1e428cba3d60112c5f7a5e008733a00fc64050723a9"; + hasManpages = true; + hasRunfiles = true; + license = [ "knuth" ]; + version = "0.99d"; + }; + bibtex.binfiles = [ "bibtex" ]; + bibtex8 = { + revision = 66186; + shortdesc = "BibTeX variant supporting 8-bit encodings"; + sha512.run = "27008a8ccf05b7f48f7668ea171c9d53063fc26c09ac4507a3eaa86eb22b94cbd70ba6c2b7a8d439d7978a3860be37733dcbc17f7cef930d06dc5a45a89c95d5"; + sha512.doc = "c305fe0afcaab072ee07542b8bae8475ce205744500f81c6de400b2bcd7ac05ff65a025301319f80a668ed35d653105c0ec0ab392c0c893f5d76802a1806bd04"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "3.72"; + }; + bibtex8.binfiles = [ "bibtex8" ]; + bibtexperllibs = { + revision = 68910; + shortdesc = "BibTeX Perl Libraries"; + sha512.run = "54e8413435420357c6e4acb1ab28a6aa602f1a222ed4b3350aea498a3516f48cfec0d04e9951a3ea0117184855e32d891d2c04af98231763eb1c5f7bd1700aa5"; + sha512.doc = "e2a1f67710cbb6b732f5dc9b39e4ced5150792c06d0455704375cfd6def134dfbe54a8d92dc1dd88896a6d5405e662dceb15f0282e9d82a9d2f857a91a8b4fe0"; + hasManpages = true; + sha512.source = "92cd4a937f3783305396a5705bc7a0d80371a22405865be33e1ff1caef7ec0a479ad58d9d80d45218273dd21541eb3167ac0cffba8ac16ec5d46ada1ea4e6145"; + hasRunfiles = true; + license = [ + "gpl1Only" + "artistic1-cl8" + "publicDomain" + ]; + version = "1.9"; + }; + bibtexperllibs.binfiles = [ "ltx2unitxt" ]; + bibtexu = { + revision = 66186; + shortdesc = "BibTeX variant supporting Unicode (UTF-8), via ICU"; + sha512.run = "fce13fca4fd3d65b04a451365c5df50e4990bb62b0e8f878b712e9062f7d240a33ca6cfdbccd2ad2df0179be1cbaf2421ca32bdb745f3b9d9c67829d4c739916"; + sha512.doc = "0f200681fd81074a5f23477ff99ac9e08e2d123056544edf7bc5b7b7645c22b74b66404028133037b5e47ffc4ff7c0059a1ed375ed0d3e4d211632c44f37072c"; + hasManpages = true; + license = [ "gpl1Only" ]; + version = "3.72"; + }; + bibtexu.binfiles = [ "bibtexu" ]; + bibtools = { + revision = 67386; + shortdesc = "Bib management tools"; + stripPrefix = 0; + sha512.run = "72472e2c51a0b984feae71dd1bacd72880df1438406301219c80f1dc6a8702b0d7c1e2bfad7ffdbd025e58c14a069335d4f5d6f1fe981d5bca259a6eba94bd4b"; + sha512.source = "3507bf7da29aad37a43cdd1ab2668908e227a2002438fb161c822fbac48be0e6b120070d6866fa553205ed404375d160e3a8b756c0681fb6a3e3b5600ac7a7b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bibtopic = { + revision = 15878; + shortdesc = "Include multiple bibliographies in a document"; + stripPrefix = 0; + sha512.run = "34e2a644cc4472f415522e6e798bcb1e2d623afd4783b07f4904405c63296ec912fb6c1d03f80d51c37ab81944cddb5b4f3678a22a7151d89376ed9aa343e9d7"; + sha512.doc = "5849fd57abb9bd847833993e660e342a537562bea9fba76376f3885d3bd09360c5783e4f04828137b43c076b635a2d566d908be48287c3fe6645c2abcba06652"; + sha512.source = "2b6d11221e625b6d568874d12cbc7b45d074ebe2bb973d63fcbb9d85689a4c27824f3eec68fcaa46f0de707767baa516c3925ff0fc4d6a90518584847844ede9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1a"; + }; + bibtopicprefix = { + revision = 15878; + shortdesc = "Prefix references to bibliographies produced by bibtopic"; + stripPrefix = 0; + sha512.run = "1df7d78498b6de233aea92cb1b18f73893b8cab723fb614a9fe895e5131639c1b4f4318cbe103ea4d9308e383627873576664f0af3ac6fd26aebd5b8b0036379"; + sha512.doc = "473a7db7638f471fd87b1cb242a3a593e3ff0aa4586c1fbe906cf12f2dd866a27ab50176b01d3f4158cdf0fc263fa54ce16eb63c797392349fbc90a8422c3b2f"; + sha512.source = "ebb06f55dd58c5948e5586ba29fe3aff33533eb3b044e07be71da0f20512af21d9808ae7d970f168189bc84ccb9bde6a19e935d7d6280e929d169250d3781a3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + bibunits = { + revision = 15878; + shortdesc = "Multiple bibliographies in one document"; + stripPrefix = 0; + sha512.run = "5658d508b876a88f3916a190a9090d66f2dbee98260af8d23c8358d0708f27fc80d4cf6c348b1f6e1ff196e7de6d5567e371ada640a9a602185611fb09e64ddd"; + sha512.doc = "888e5a4c1863c15112ece5763b01525a1a74f97ae1270495a41d598e73c4583ce2b9e28030b3054dcfebd60b038fb2d32938d6be947477fca93014fac70676af"; + sha512.source = "37cbb8ff6443757982a97bf6efa90881807712ebd7f0ce2975ef4960ef74e0541cea9fbffd64f765b6631378f3d21e2ac308ea1554709b6c2582b7cf7485398e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + bidi = { + revision = 67798; + shortdesc = "Bidirectional typesetting in plain TeX and LaTeX, using XeTeX"; + stripPrefix = 0; + sha512.run = "e589f50dbd63df9d711540ad90b53384e52a5a0b353e2ba050657af3273f3dd7b65925101465d89831ea133504701c6d05d01ef959fcaa2570bb1188384c621d"; + sha512.doc = "09ac7b97d9d1a93b80e8dac120cd6e70932ca9239dc94202449a476979caadd596677a210b27700e3638c3cf0bcecf98c4f903ea228f94545a2cf5cb206abcc8"; + sha512.source = "1bdd170bb3065027106944aa23b99311482fd90a019a6bd1e87044f03a04f672e0b01a31d4d09e213db7b228718f7e9ad15d77acfcef7412af8ae180935fd77c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "39.8"; + }; + bidi-atbegshi = { + revision = 62009; + shortdesc = "Bidi-aware shipout macros"; + stripPrefix = 0; + sha512.run = "5b16cfee9c71927cff133db3b967dc835634553d0980f74164fe8996ef86c3529439e85e00678219879cab41bde2027f3258b2862906b58634713e4b7d16c515"; + sha512.doc = "05b8118cbc59f06aeb87ab3b5b6a7f7a14dd23543c9d45621352ceec58998601a97af31bb6b0c999047efb362c24508f769be3c2e483c21a814b8ff35bd0bb96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + bidicontour = { + revision = 34631; + shortdesc = "Bidi-aware coloured contour around text"; + stripPrefix = 0; + sha512.run = "10364edc592375f69912888945e6d555df30627498aaae409b727392c64cd4aac386433119578a7a01a48bd0cff84aae33079593219b282feb9d96a68bdde78f"; + sha512.doc = "a1a3f9692ea2e462305f8c6db432586eb76d78cef5fa0e9057cbe5766ad99e25c560ad658569a92d1885e373fb6215fe2f9bcbc1c69b46c3088d36eb92e1aae9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + bidihl = { + revision = 37795; + shortdesc = "Experimental bidi-aware text highlighting"; + stripPrefix = 0; + sha512.run = "fd82ad18b96cdd782fddab8739e09978d08fc37e8c65a177bde930671e102c9ffefe7465fc766860068188f6b9f8222119ac791f07223f79e9840f25659ea3ea"; + sha512.doc = "c9d0503857f2cfa960e36872757afcab17b2631caa8a33112ff2361694939774052a5249db62d21831e19c17826f422853a78c5522094706bd4208d4c5223019"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + bidipagegrid = { + revision = 34632; + shortdesc = "Bidi-aware page grid in background"; + stripPrefix = 0; + sha512.run = "b823a646d97c15ad9beb3aebeb7b2156aefc3ffd7bdec813e9cb2481e137cd661936c57bacc3b8c42509151205dbd4096329b5cbec25bd06698b698c59739551"; + sha512.doc = "615d87ca4c29e0a30cf1eee08819b10419a2f399a88f2bfed5bfb6eaf7b1adc8b64a2ccac5da7bedab4e4b951e80488b97203b9960980ca5919f653cc4218996"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + bidipresentation = { + revision = 35267; + shortdesc = "Experimental bidi presentation"; + stripPrefix = 0; + sha512.run = "a41f98c3f009f7f8de8a41e386cc829c55650e603ccaa8e7e381fae45be2872e0b20e66b68e4d7ef8110abf7c9f6661865d49f7c0cf3ca4ae6f781c3ef5bc0ac"; + sha512.doc = "56993d41b237d25e00536926b3b23f1b1a6940aabe4f636df73cabd5ec27252de9fb8ff17d872cec3cda7a0a3b8b13013ec77477dd89ebba83a8406da3ee144d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + bidishadowtext = { + revision = 34633; + shortdesc = "Bidi-aware shadow text"; + stripPrefix = 0; + sha512.run = "bf9a75be6d1f37055c793a16b0a4d019579adcbe14a93b64cec5495e4d7c8bcd8b8c6d86906714f8aa47be5789209a1ce78d19e8023b44b9d52409b281797310"; + sha512.doc = "ac2f47ed1a5535ff1f0030c38bc210b2e3905bd46ce7024d5237387faf87be6a408ea35648f83a2ad7697ec09a91a4cce1aebd32c3446756adf1955bfa97f7c3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + bigfoot = { + revision = 38248; + shortdesc = "Footnotes for critical editions"; + stripPrefix = 0; + sha512.run = "f56fb1545e0a044a143d1a257b9784b5f5dcc56d68bbeb52f909eb928e9d749729135f0c76b3af6dd0306add550b440d32aee21c33e70b9b48a5a82220623702"; + sha512.doc = "f5935a5ede836798f3eab1ff61d528870a07be712047a64aa5af5576a1c6032e9d88fb5c42cf216e0f9812266f9a8562b5290301446c654dcb46146d7b60a16e"; + sha512.source = "75316aff3c594fd904adec7cadd0b24aff9d527479d0c59f3fc654772e29cdb4cca938fe5fef6e14b9928fb25f37fdd3f7a894a81f95810813875c4fd419dff6"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.1"; + }; + bigintcalc = { + revision = 53172; + shortdesc = "Integer calculations on very large numbers"; + stripPrefix = 0; + sha512.run = "c801e5953008e8cd8521886496238f4f7a86a6c65a160255beb3fd6a41a48dd7bfa2da438f8e1ae4c79b51f769f0e07bcaa7c3c8aa6e1204ea656aca3d1f4620"; + sha512.doc = "f5e7cc163157e429906489cb3cb94d8694c01be3c720e03b85bb24c7bd757391cf09e08f3d88df4ae7485978042e9d408fc5af0d93e016c82912479d40457079"; + sha512.source = "e829ad1e3a118e8fd0ea0e632740ed49db65603d6fdcc7d40126a048db5cc0f73c9f4aa64d81902794ed308ca31a153044a56ef37ac179918b24be71ae168f64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + bigints = { + revision = 29803; + shortdesc = "Writing big integrals"; + stripPrefix = 0; + sha512.run = "23f9a529af214771f74c6921baf8582b6a3c5e170d0fa511c260f5dd3fb6cb6194ef4082ed299dc0a3ff8e413981a36b594b440e7bc5512c7d2732fed9eb7a8e"; + sha512.doc = "46799d5c6758657eadca7fb30d214baf47c237b63655a71ad19e188fd54b664397babbbc5cf6d9897e81decd027dea1e0d1a6fea97384461ec8976fc19c7fd8d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bilingualpages = { + revision = 59643; + shortdesc = "Typeset two columns in parallel"; + stripPrefix = 0; + sha512.run = "e7d92cd1e11e1604f94b3a825953ed1f876a39dce3dd383e7ea1e4e166b9ffb21786911f4b408ab5d53e6f770225176251096ca9df0a187feb530a27ad167b5c"; + sha512.doc = "bcbd9f48dad1b84c96fef7d6b5e0a343a261a20ff35434c5e01d4b200229764adff383f2a718c6cbd89e4b208e6de1c403fd7c614dc1c247bc5a344cd3f3d504"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + binarytree = { + revision = 41777; + shortdesc = "Drawing binary trees using TikZ"; + stripPrefix = 0; + sha512.run = "b2204194393811994915604d428e0b537bf871681ea42a93d1e26a74d01cdee3ccd7817e7705cb6a3b9a1f2a97381e23226db9d671ddc36beb5c478271099cc0"; + sha512.doc = "4ef9f7db1d9cf124112e3f3e5c6db7e0b53bd72a5d7674a9f0ac7c471b88ff72309705b8d3942277a93883ef821907f0119d4dd3f645c8caa098f363612df68a"; + sha512.source = "ff1e8ce1d07c2011624086ae5810220af3e28f19eba4dff9e090e757787797afded50d937a7c1f503eb32bdc91cee2b0b1b42486381b725e57a127e5751ae5d7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + binomexp = { + revision = 15878; + shortdesc = "Calculate Pascal's triangle"; + stripPrefix = 0; + sha512.run = "61cd0072f766bc4abb1e3ed828d06c0e0ae6fb74902ad86e6c4ff3279ddd84386bbb0b1d669d9e71eef362c8d50577047e6076b174ca5b54da8680a43c5e1715"; + sha512.doc = "9f8e24377ef858e0b3ecc94dc87eeeae08931084316034ea5e3de822ed8b6a65c4744b744a547aea19d3486bb6f2b04f46f1e7ec81cac2470d16b7134885d355"; + sha512.source = "96ac7f02535a36555dc773b096324e821fa554423dc1d3fbb3436042a2ffa63e7d28b8d872b03b961143178aad40b6d14ef0be7378be99782e94f957889489d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + biochemistry-colors = { + revision = 54512; + shortdesc = "Colors used to display amino acids, nucleotides, sugars or atoms in biochemistry"; + stripPrefix = 0; + sha512.run = "ff6e61f48eaae649c5b14b60e85c46743dabc6fb841f3f2bdda0723a5a6cfb7a45e21e48574e4bc558ddd436474c356c5d2f767cee1299da3ff67db5c70c03d0"; + sha512.doc = "0abc9a2d3318627f861be23bd175836efc6956147fbfc16f9ec84b4ff5f137f7910a12ec370c3baf3ad2dc08ca2ca197bd02e371ec258e9538eac4f11233f9d1"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.00"; + }; + biocon = { + revision = 15878; + shortdesc = "Typesetting biological species names"; + stripPrefix = 0; + sha512.run = "54676e4acaee07609c379d387af4f06b45a4bc0051a3333c250555536114b3862da73d70305b1f62adf7afca2b4a2157cce8afd9e20f10e49b01d4c2ad351cdb"; + sha512.doc = "c296c8402129338295a3043a66bab91a499b29703f7ecead0a045e0820ced683a4c25168ecdfc184c07282904afed3703b31f8ca707492a913de7c49a351c322"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + biolett-bst = { + revision = 66115; + shortdesc = "A BibTeX style for the journal \"Biology Letters\""; + stripPrefix = 0; + sha512.run = "35fa3e7a46706c715783b10997888a45cfe6f84b465562f894eb9914915e608f420b631e9d4e7fabe3d3d83424c089288c848ee34cae5cd08d1d778e4ad64155"; + sha512.doc = "2a839dfad925ca94f26bada0d14fecdd7c096d3c99e903a57e4a1d093b2d1b9cf8770974aa1ac51baa9759c68e2a4fdd6efbc861c5bdebaea4cb523c00662487"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + bitelist = { + revision = 25779; + shortdesc = "Split list, in TeX's mouth"; + stripPrefix = 0; + sha512.run = "a2022ccc4f45f7a911eea4e99557764770b4e6f2ba0333e043fda2419e29d93bac40462fd36568354a415a9b27204a38620e6191fddcdb053f8956aac5747cbf"; + sha512.doc = "5c3186464aaadbf269b26321ed9447e8a1633ca9b4a7b323da692277ab074f15b6c39df866eb41955dbd6ca8b0ff76a115786f3273fdb293bfb79893dfe0de99"; + sha512.source = "0dfbf3dc2ad3b11ce91f1f5f6949f3d8559e0f90044abff431af556560382b5063a96e661c7e95667f3079a7386df85938e937743e2f185a13f4d8a2259fc4eb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + bithesis = { + revision = 70136; + shortdesc = "Templates for the Beijing Institute of Technology"; + stripPrefix = 0; + sha512.run = "d5b2a6bc2fc272a452a3e8f7e7c05244b701d77d409d026456826d63d11d7f5c0296f00980ab06326d0334c47fe1b2ba4f8397379e35ba3a8a64e7ca1071a3be"; + sha512.doc = "8c31242c162f0d0927b95385cad88d9214294c270674ae5d1674f03e825e9d09cb93b26aa480ca7e38043038b9bfdfd7f50acd14e2f5644f038db451c2dc09a0"; + sha512.source = "0d35711be0c9f09810429a72611892e2d0ee4d9bba4af3ea59379dec238509c057cc7ae1efdec4b531e78cfc7a96ef18309c374bc48408ff066ff7462253de4d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6.2"; + }; + bitpattern = { + revision = 39073; + shortdesc = "Typeset bit pattern diagrams"; + stripPrefix = 0; + sha512.run = "34a0ade2d1110a15618b2ecc7f46a413519a0864a2e5cd1e25eacb9dd76cc66b35565b4b8c015780fa1d3dc88e2237ae7de33c77e29fd5428758a526959625af"; + sha512.doc = "d1fd1b2b46d7846804c9163889bf3a96cda2e11e35de2328c9043f99ccd9d0778710219593565ec9231775e1404d713edd7998e3fa909ada7dee35333137b56f"; + sha512.source = "8c5860792394f85ab87d2a3ab234496a1f550a24f98a5e2f8f4d815b24e4fd3e7d0a1ffefac3912536d22cd39fdbd91db013b1c8e05d4de92aca47db679fa7e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bitset = { + revision = 53837; + shortdesc = "Handle bit-vector datatype"; + stripPrefix = 0; + deps = [ "bigintcalc" ]; + sha512.run = "b1c9121312404d3daf6907623972c35e0f36cfb4197e589bd937c145506cb5a2d9d8c1f665ae3b4d3ec093e55bb146c0b67cd0858425b704fe29989b9924ccb7"; + sha512.doc = "a5a3ba9d27dc3d9658c1d261f798fdc5e6dc4cedd85287ef77d2a0341048d71f8575d4fbd711e499233e0991c51765953931d87d40dd22fa2a4e8ecb9f2a8dab"; + sha512.source = "40580c17ac81137d533eb013ed14bc092281b354ce42883c0a3c33ee7843be7ebed0ce642746ba9e173bedf8ee6f6c243b65e692ef2a50654ada23e323166c89"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + bitter = { + revision = 67598; + shortdesc = "The Bitter family of fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map bitter.map" ]; + sha512.run = "217870554e509c3bbfb70d3da9e3ccc4fb1013db4508034ace728ff114e31eb9f56511b1e89c702d21cf1b522ae799601a0908ffe70a3856aee29c595a22483e"; + sha512.doc = "2bff9fef75632fb43c59cba04ea531eba8420c3841a0343cbb1d56995a8c322beff036da61d494112e9c89f82d367ec3bcc9e39ecbe153c99dc012cbc8c15bea"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + }; + bizcard = { + revision = 15878; + shortdesc = "Typeset business cards"; + stripPrefix = 0; + sha512.run = "1575499c7118a96f3273c5b8d68e25a20410daeecbce48d1e6355039b97867b34a06c40785052d378dffbc80b862beafc06b9fedf62254d8b31445d8f95cdd29"; + sha512.doc = "f529ec77b370def29ad77927170874dc02af37bfb9f57a4e1383b5adaa93f6e59aa33df06d40a80e2374db514f55e2f115e7c8f22e4c92cbd3cb621d8a735bdd"; + sha512.source = "ea5567a5b3f2a8f70954ca9b5939cb4f9cda05dd128da4d6592dcab25babf284d5fdb2c6af7a31e181f871802ab267fe012d9da3df963be19d789c6984c88cd5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + bjfuthesis = { + revision = 59809; + shortdesc = "A thesis class for Beijing Forestry University"; + stripPrefix = 0; + sha512.run = "e017032edb4e87ae31318179de5da789cbe2164ea5679d69e928a138242adb1afa8dfb3f8b9b7796bc6d5bf21c143f51e931656439a451ddf868c77c7a7ac559"; + sha512.doc = "657e45d4faf201c2d878c5323e3fd7a283bbe4bb4f868b1413e9b8eaa1db00d03771a4d4211e23549121c5dd480cfcfd8ee8e0edd7e56615a3c941c100465c44"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.2.1"; + }; + blacklettert1 = { + revision = 15878; + shortdesc = "T1-encoded versions of Haralambous old German fonts"; + stripPrefix = 0; + sha512.run = "eb7d531fd91c6d46145c76a08678033e20097805b3a911fa85194217104e071c56d3842cee83c275a11cd4cdee162aee4630d86025cab76806f20e19c975076d"; + sha512.doc = "a1f18f4adc7f26b9e71db6f171ddb4a8eb15912cf57445110a9da52eb4e0b017a0ace85ddc46ec2df36e73ee3d9bf8dee087fe4467f46bb2bd7f708108585412"; + sha512.source = "0951e374a22fda09a3fe51e3a7743874c774a756560fb63a68aa199ad2cca674ee87d1dd30b98709b0e74e018e0eec878316ff303575eabb014158311f22a273"; + hasRunfiles = true; + license = [ "free" ]; + }; + blindtext = { + revision = 25039; + shortdesc = "Producing 'blind' text for testing"; + stripPrefix = 0; + sha512.run = "3baf7b9db502824ebf1cf8892cafb189654ad0a91a8cfba399e103b417a91e4f137918b73201fb5988c8dcecabc557865e190cdf77af35e634d0519d52715795"; + sha512.doc = "290a4c76fbeb8003c6972933baaa95e62b37310594e459e27083326977d370c1408de95eae44d05d848c61eb22b555792e5e38f4a0b70267d6a87c0314268501"; + sha512.source = "2ca8cbd44a56c36ea66fbad415524697009af4c7e39164bb43d9c689743666c05aded6042393bba6d658a0be1df3ca5ac64a6e8da2e9c726fbcd1500239c4532"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + blkarray = { + revision = 36406; + shortdesc = "Extended array and tabular"; + stripPrefix = 0; + sha512.run = "5ed66db84619cd9130e68e05acf617ed0007db9ea35895e31ad96b543f7d6a01fddf00304f05b0fb71ec9484556326ebad1d895b81b821b9f19fe6ae9f3ee12e"; + sha512.doc = "81f1d5b5609531deda3475eb906b841d33a6e01ee49c54102474d852856172954d943ee02648fd1ce74d5bf4030db8d36c7b6786c9fe3105f3be08fea36fe207"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07"; + }; + blochsphere = { + revision = 38388; + shortdesc = "Draw pseudo-3D diagrams of Bloch spheres"; + stripPrefix = 0; + sha512.run = "cf7a7865e3e994f2b951a24018b1b1b71ce2b61542751f495dc14ebc4964a1f4a2833d95bde9b8920d4a4fd60ccc03760e66b8ab64f6b14ff77b9206c98e19a2"; + sha512.doc = "3a9706ba73e8da7280495f9d32d32a38c9119bac9b8497e7e1bc69a704fde2552848d60ab0ec175544046fdc06b3e8887b4eaeb1c50a5796144cd56e4a44d9e3"; + sha512.source = "d5c54403afb2cc4db7c5340fe6aaec54da4066f6e9898cbf1f1d2ee3d4ba9a001699e8e32cf38fd87b355c1adbbbcb649635f9abc07976c2139fa6e851a987ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + block = { + revision = 17209; + shortdesc = "A block letter style for the letter class"; + stripPrefix = 0; + sha512.run = "0dedf4b50238e3f12c3d17eca19e4640f2a36511fd65fe4d0baf4f221df279a5d9f28024cb0e20f528e32921e1d6b4c785071210e5ff6471c73e42e58faf89a5"; + sha512.doc = "77b8c5b6949fb7eade5eee082be1c28433136b8374d45f255a80daa0c7a0340a3154a9f6f174fc52b25c252f1b5a2304b32e26c6d6a2f9af033569d7ba602952"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + blockdraw_mp = { + revision = 15878; + shortdesc = "Block diagrams and bond graphs, with MetaPost"; + stripPrefix = 0; + sha512.run = "86bd39051095fde2a99b232b1139c4c196467d0e1825b3c1c73bd25551a55edb6417a0810b20c4ac3d53ff82519364f2ac72fde3845a750396a4f6a8966c73ef"; + sha512.doc = "01fc4226a952c76b52726d1217649d9d98ec708163e4a9b997e36f505b385ed145182bca747a2b5334cfe8b4663d010a699664728c5be05cc4daba63ff1f3c00"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + blopentype = { + revision = 69080; + shortdesc = "A basic LuaTeX OpenType handler"; + stripPrefix = 0; + deps = [ + "gates" + "texapi" + "yax" + ]; + sha512.run = "6cb45600033a679ed498e59c2045561683edb0193cc330e2650a83cdd37e18daca45db700f5767492800af78f365c6f1b03766d92ec759b3448287c7b378bd63"; + sha512.doc = "1159bcbc24dd6a860909f0b16911b3a88e3deb2bcc0670b85d31ac82a34b5e991cf73f305c8517a8dee1088eddc3c4cb02d8c5778d897efea254a715e78de294"; + hasRunfiles = true; + license = [ + "lppl13c" + "mit" + ]; + version = "0.0.4"; + }; + bloques = { + revision = 22490; + shortdesc = "Generate control diagrams"; + stripPrefix = 0; + sha512.run = "06b18467956f6782de7e0dad41f66a79e1c7dc5c3ff007a8970f24740dd5edfae0e375288c3510a8acfcdfda7b568f2316827cad1b6a006789afe8a31f829f4f"; + sha512.doc = "fe37018f08820f21bf188301d0145e42b50563d8dbd8f9b232e6fa1b7eecda931e8a42d40f47ed7cbae24235833eebab874e30dd24d8393dc728d6fcb10057e1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + blowup = { + revision = 67640; + shortdesc = "Upscale or downscale all pages of a document"; + stripPrefix = 0; + sha512.run = "52cb1cbef8c97f265114decec953472b2a8804659d60ce3227aa5904827dacb1cd6156c189a6e75aacb2051d8237298690c6ce6816ce9425fc293c8e32962236"; + sha512.doc = "c038502451d1952927f9b9e1648fed009452d00a5d9db06429f8968ec453cb7863444ee0e41073dce5c0c4990c2487ebd818ad51bf72d1e7a91257ab76684729"; + sha512.source = "632342966fb59de8f7ccda1fc7062c691fa2829462c67d4edc7cbfbed3dafe4888979baa60a502793f0db88343c1b8bcbb5e8cf18727e854b4a8443ff06f564a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2.0"; + }; + blox = { + revision = 57949; + shortdesc = "Draw block diagrams, using TikZ"; + stripPrefix = 0; + sha512.run = "4f874416f3115f9abc5514d805952d576d3ee597475ad27523990820d485a3601e43e503a23d948a875db343ce4817eb7fedae6aef48a78a38a1656478190b74"; + sha512.doc = "a9b8c964c8a43d9d6b0c4b5555c2c555246d04ad0c0b1209ddf953958f52af8e2ce3118f573d12c0bf727a2545a326bd284e61a27afd417cb672480e1025a5ac"; + sha512.source = "7c8ab912484f90d5aa8f406e2d3c6176eb8908457cb184260c600fd72fb91c5ecd179ec4d80c55b6eddd7607c7fc36e3ec51af5fff31e9352b17360c470e8405"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.51"; + }; + bmstu = { + revision = 65897; + shortdesc = "A LaTeX class for Bauman Moscow State Technical University"; + stripPrefix = 0; + sha512.run = "e8e2af194ab8dc10e88543cdd888438d6dabd37651fcb331df2a2372c863884ee3ff77344d14a79608ef6e87d3b82042497f26045db3007b4cfc85fa33831667"; + sha512.doc = "da816655e19a91d152a088e92078a9ef2c35f4a7b379d63e353eebb7b4047d459b73e5f53537e9be5a80d56ebe80e1f20db1305fb21fff14fedd518a11c494db"; + hasRunfiles = true; + license = [ + "lppl13c" + "free" + ]; + version = "2.0.0"; + }; + bmstu-iu8 = { + revision = 61937; + shortdesc = "A class for IU8 reports"; + stripPrefix = 0; + sha512.run = "7d4d2f575bf4a3a14024b478610a1d3d1fb9a9609492890ce4edf9f3ed1e34abd99f519d3574c39347f35f8bd2bb1b19569ed6a3652443063942bb0900877ba6"; + sha512.doc = "142cceab83b83c5a0eddde753f67b44cb2e881cd01a4de1059606e02cc241d6d55f271d525db523f82f6ecd68bf6bb09dffcb15adb1b4b080b5701e041ec6f2e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2"; + }; + bnumexpr = { + revision = 59244; + shortdesc = "Extends eTeX's \numexpr...\relax construct to big integers"; + stripPrefix = 0; + sha512.run = "a868239dada7f16d52c5d16705ad796d6bc536b1943b5c0bb9538fc72242f3fdbe2cd579367e9230e20e2b3e53725ba8cf25d7d2aaca660a338d7863f4661d46"; + sha512.doc = "a367968a29bfe0d1496a8d444d6809a1ddb6f91031f1aafed30fdd2cd8ba929972554b186dfc897b273cb347f569922b7d59d3c472b385bd2ac1fadfadaa122e"; + sha512.source = "447c6dccda5a51d86be058cdbfbd7e38d46964754df21f155f8a41892dd0492efab2fb391b7144a0c5876cc5852176fa14310f78cf4fc8e4ffc9d28fe9f75e87"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + bodegraph = { + revision = 68785; + shortdesc = "Draw Bode, Nyquist and Black plots with gnuplot and TikZ"; + stripPrefix = 0; + sha512.run = "65c14de3d529c5f439ffe83dbeeb6551152bfebcaa4f6ca8f22bb29340f23cd2541fa7934a5c0163f6b9a604d76c7c2bda3ee6ac1ed3fca04367c08e5f580f39"; + sha512.doc = "e9dc19657f581260a59f141747bee7b15d96352eb4b59a2decf116e1287a980b106bfff220642e4d1828d65201484e657d8f4513faf7998c0ce3938a98484ae1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + bodeplot = { + revision = 69742; + shortdesc = "Draw Bode, Nyquist and Nichols plots with gnuplot or pgfplots"; + stripPrefix = 0; + sha512.run = "596a8cca1eeaf49acf1f24341601b4b7b1ff64f5df72a811738d57e2d0e5644cc9f6096b15825f208068446dfd825f9fa61406451234669df95683f746770d44"; + sha512.doc = "d0eb443a98da30d66becca6e48e4e66b4efaf31d0405ff5d559738018f0c760a660175978f603f9c648af4ba20942a58b82c45f5a5446f39d7bfa05c944b4db4"; + sha512.source = "84b487c782ccbc9f8a76331a7a01f3059d39052f440db82ba93ee40f82f420f2ebc25ab8a9351deb0a1261603d0866a7acf89a457bdb2c0b446d541a6bd78163"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.7"; + }; + bohr = { + revision = 62977; + shortdesc = "Simple atom representation according to the Bohr model"; + stripPrefix = 0; + sha512.run = "257faafc089c9864a7878e9690a96ef8a5468fa4a310232609cb769c4bd80c15ee7923ad73feac782cda4690f699ab3734dbac05e39588a34fca576fe8dd042c"; + sha512.doc = "0ffcb6071ad55d9e6a38c9cff810b625fcd6eb08e476e9ac7fb0bae73ca5373517de22a536c2348ac8646b62d70167521d70dd46327dadebfdb9e69facc0f27a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + boisik = { + revision = 15878; + shortdesc = "A font inspired by Baskerville design"; + stripPrefix = 0; + sha512.run = "48403f4b18cb23e7e16e3cbf19d066dc7e1576f4d9ae42b94a4a34508905f5e6e2f8f60f2de7881a29b8525c86a8120a76f1f66f8b9ea047da0a884637b1bb9e"; + sha512.doc = "c68e8434fe456c5e58a6ebb9e744c81dfba5098c0fb12024de750f73022e300016a424bd1ad9cc85c3122c9a0c863737b2e27f2b151667955f92ebbdc060c6bd"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.5"; + }; + boites = { + revision = 32235; + shortdesc = "Boxes that may break across pages"; + stripPrefix = 0; + sha512.run = "894f6d2484e9b72a24816c34e1254ae8a6d011610770e40590fdc3ed22a24b6f655418694de256a6522e4024f4df033c017f294743113256583ffb8445a63bec"; + sha512.doc = "22ef96e0f64b4d42b978abbba806f497fecf686d76b159bf3d06aedefe1097569053a11ced6c3ff2c7d05f975345957af0790f2035fa3af396b123da7d41cd7c"; + sha512.source = "682b3e64f47f71849853bb8752e342ca74a8937e5f1f0f75ba3428ec3e32593339e5f0c90695aa112edd2f607dc4e1c80985558f354b6181f73e5da6cffee8ad"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + bold-extra = { + revision = 17076; + shortdesc = "Use bold small caps and typewriter fonts"; + stripPrefix = 0; + sha512.run = "cc12de98493fc01b9a59993ad32e646102751c3023e64f66255a1b66505d3cc2f82d71ac53b4f6691e083bcce3037e521a35feb09cd5019d662a6ce56cc55032"; + sha512.doc = "4bb27a63f711421437385c2a76f26d74cbfcf6ac5bd8811bf4ca5a0da354608dbc6ff295c3943edae1701fefece397ec356361176a9713f607c9677b8222b7af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + boldtensors = { + revision = 15878; + shortdesc = "Bold latin and greek characters through simple prefix characters"; + stripPrefix = 0; + sha512.run = "3c2d17f2bf8ff48638540ec5a3ea57bc835227291fdf6580747a87dafeed6afa4f49b91a67154da35dfac9a405aab2aaed5bbef1ac188291319a972b4e50ebeb"; + sha512.doc = "657bdc4960e2d40621520240840ab4252e927baca704da0388e3124938c55de834e59cf8ff3d900aa294ac366ae7b1367909cbe885de08790d51380726960146"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + bondgraph = { + revision = 21670; + shortdesc = "Create bond graph figures in LaTeX documents"; + stripPrefix = 0; + sha512.run = "171233d7850335c1819bf1f74e0bcd1c221e5db73d092b0efea71ad35f71b16e4f240c3c791f9022a9e21ab7a2bb62f20ad06609051ecb54fd0640add0ef8381"; + sha512.doc = "0697b880e1bcd51c3b5c2e035a15f852f943ffb86ea2952b460f01e42ced2e4fad8f8b15f32f58cc7771c28ca9bf66f2302914bf08d6696b6d952d347199134c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + bondgraphs = { + revision = 36605; + shortdesc = "Draws bond graphs in LaTeX, using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "61ed449d8fcee24f383762eeac54949d709fe3fbcf06598acb8849613c68ce2f445dfb4cfc7871bb6c61bec65ed45e8888dadf036f299a4d5c0bad13db0e16ba"; + sha512.doc = "223448f91f0cb9f7b032439aeddc85c132f39bf5ffacd058b76c85db825df15bb47bafe333a0ae8afb089864fe966973fbde6da0e02e1fa46b8077e3f84eb6f3"; + sha512.source = "564af88ac0098d102bfc84932159dcb3df8e06ab30e849d7e039b13ae8855dc6093230e743bef13750a464eadfad54edea4f1a548c14e2df79e03b1f79754254"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + book-of-common-prayer = { + revision = 62240; + shortdesc = "Typeset in the style of \"Book of Common Prayer\""; + stripPrefix = 0; + sha512.run = "d8a2f2c007569e8a4da6150592fcc67a4e60083a2af93d15a8bcbd31b9b2d56c46d28b9f4c708714e894638b22fd9a4013175f45082c9982a05c8081855d7d9c"; + sha512.doc = "98f7dc43da85180db2a3f00462b02b23977dfb46b7a9af0d4bb97a2bbc2babcb906a1762b94ac9196bc6ca5fe11bf0690e1e59d74ea1f97f16d9d747e94b5020"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + bookcover = { + revision = 65394; + shortdesc = "A class for book covers and dust jackets"; + stripPrefix = 0; + sha512.run = "83a7b06e32e082d810fac22a842f646b692e75a4e0ad67ba59a1d39d0f0931970b615708900b139c7e11f05bb012797d2664808929ca7ba8bcfc37ae75c878ac"; + sha512.doc = "f58d3796696fd576fec15770cbe04d14e659a1d8e6570ae39c17760686b75cc941ccc2dcacb923fca4c2ffcf671a9ee1d63f348d8fe22058078eb22c5a1fdbf4"; + sha512.source = "7e40a0b41b7f46570925c6fabedddeea2b52cdf8a4844db4c9df48f12029424c08d8777227ce119dc46bc27dbbefe43284d581bf5c7f2aeb2b6d24ba2c83e401"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "3.5"; + }; + bookdb = { + revision = 37536; + shortdesc = "A BibTeX style file for cataloguing a home library"; + stripPrefix = 0; + sha512.run = "3e44184427ce346930b35fc2ea3b508d9f32c1e89cc01d66046e271d61e0bbfde54b5d18917b09acc159f1d657f9d32c29f3086b04e4f1dc6da0cd21a0df3da2"; + sha512.doc = "2449b7d32558665b297e57eaff6529932289e957e0a77d8a8ff84e9614b53844a2684a7b23a62ce6684b6e813223c2c1293bf25e678a1271e3e3cc27383d12b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + bookest = { + revision = 15878; + shortdesc = "Extended book class"; + stripPrefix = 0; + sha512.run = "e49d8f0959276202dea2079df1a509dd296858841f4fa2df235743033ba852b856e5f2a9a14176fd986ad1e431ebd3581469e7ea30093b5a01b7d23b791a028e"; + sha512.doc = "ad51d3cfff90ce83c7f6479f9f0eb49a54613c585561def33529b301e00915d7a8f94fb62660b3bf5bd87104651e7333c3a9b620bbfc1ab7fa9fa510e16dc15b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + bookhands = { + revision = 46480; + shortdesc = "A collection of book-hand fonts"; + stripPrefix = 0; + fontMaps = [ "Map sqrcaps.map" ]; + sha512.run = "8a341131397637618acdb9bedc835a4ea98f40d55a8a2b312ac820821b00a1f059f37cde2aeb3f5b715eff9928b579a531c4c12d3bdbb3a7629a50d363f1a4cb"; + sha512.doc = "b5901beafa849a52afaaa7cf09ebab327640eb5ad1c627bea5f8dde2c98aaf176f23f0c9460e7fb2212ce9b4038800c3a3c572830d08d059a04d3574d1015a75"; + sha512.source = "4df12247bff50722ae11636ecc0071e03d8d296ea958d2a1b84b5b2952f35d890be66af4b85dcf1fe2599e787e71c1b9e7f727a8be9b4ec79eb1bd6aec21925d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + booklet = { + revision = 15878; + shortdesc = "Aids for printing simple booklets"; + stripPrefix = 0; + sha512.run = "be6bc46fa76c0a1ecbfe199b1a1a6f0cedf14a8d583e9ab8ffd75d4cf8ae22e404b289224ed8fa6cd9e143119760d50131e97228cfe75ea56d5ab2f540e8ea8b"; + sha512.doc = "fb6d74ee03f303433e61fe1afe297cf5e343f95e3834fbdee483522a183d403fb6bac8bfd1d0ca687c448d522d370f5216caba2b52b066ac1657b8dc2fc3df1a"; + sha512.source = "7b63195d047c6d05cec02af6d44c77e9fbc0a198717a5ed3383f6d662946cb8de9b7659916ab6d7951eeeedfe00abcd68eb006012de3e083d767acffdc0f3cbe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7b"; + }; + bookman = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map ubk.map" ]; + sha512.run = "8bef9b6e467384a2b5adc6bd61ed2e410f026f6ee867a5a62239c55391ebd6eb5e521c82f9bd0e4de995591458ec32f98ce821493a85113beaeef6535b938ff4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + bookmark = { + revision = 69084; + shortdesc = "A new bookmark (outline) organization for hyperref"; + stripPrefix = 0; + sha512.run = "0a95a2839415393f430eac43a0cac3ac1c4397d68b037167d0e66595e82cda6ef11078bee63855ed1de66191f2f241418705ff819dbe02ac4e3c68ba88eec52d"; + sha512.doc = "1c6a24efbee2e8734955b40b9908a8f5af95d6d4b8aa330c72ae7dde5c9fa374af6bbe7651f46c87bdc11f69a38b5d81d03152eb10d0eddc334b87276fddf252"; + sha512.source = "d9087686dad4b3d68e8520888fd1787ab707c0bb196777144865e2a9419112a3e3cd25064ed4c0d0d5a31a195c84d4793d0063e17037c74ce3eff20e03def946"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.31"; + }; + bookshelf = { + revision = 55475; + shortdesc = "Create a nice image from a BibTeX file"; + stripPrefix = 0; + sha512.run = "e6ab2186784aa9905053d15311b18def1c669a86db4a98033761c2f41fae97199baec02c41c32cc6ef4ed9ddb6ff5413f69a7ad1c9cf5f0c4c91d45297eb1af5"; + sha512.doc = "38e04eb978152cb97a15f1b6120ba9f062224ed4feada0347042b420d4baa9c66e453be8d4abf4095ba3403d11281153dc7e2494d34864a2ad2e1ac10a1b4b1c"; + sha512.source = "53076f7ea7a15ade58fc6ff23643515631f46368d67f9b55d67212ceface35834f10724fc7fa8dfd75d7f852bef9a6570d3bc5600805c79f7e24006e663e1528"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + booktabs = { + revision = 53402; + shortdesc = "Publication quality tables in LaTeX"; + stripPrefix = 0; + sha512.run = "8d7e46297d19f2e683f5c16a13577fc582cba391cdc8a15ad395a6b44072a5b50216ec9e9a8c727c1b2a36b9275ba9bed10baec3aba9d726505955af01d48c3e"; + sha512.doc = "952ff0f30cf7679c09020cf2bca542e11e3a64c88956e87db6289acfb03879609f66c8beb019a6639716462aa088bdff7df3330d60a5d864f25de164affa4c51"; + sha512.source = "cdca8f3e7f7dd99b87da76f60b1279de6efa8af666fc99e11749c21e59b77148a40aa197c0682ac1085a4d971a26b8cb59a9d2794fef81063006a220caf91ba4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.61803398"; + }; + booktabs-de = { + revision = 21907; + shortdesc = "German version of booktabs"; + stripPrefix = 0; + sha512.run = "25a46153cea4a6e94c77cabf3afac74e642c7362f7c852725e8443de8ef8873c5a9d2dab3fc3b083dd7382e10d74e71b40b40b1143afce1646e853899c0ea2c6"; + sha512.doc = "1016522eb74332542a9497f47fb0ea884c7d8b3d0a0630b8a6604bdc41ee08d29d963fcee0d643a8260d2e667c0b39edc74f4998ecbe66bc7a45ef23ac78371c"; + license = [ "gpl1Only" ]; + version = "1.61803"; + }; + booktabs-fr = { + revision = 21948; + shortdesc = "French translation of booktabs documentation"; + stripPrefix = 0; + sha512.run = "62d4aefc19ff86a60b8fc68a5203bbc2dd2c86ef2f74d5dc0d2a664ff342c13077f5f71a4991704e1d9c69587e4ecde629e5432ade3695efbbc388714fa3c268"; + sha512.doc = "eab2c83e6d81a601ec98ffe43ed4b5ec71e17c6ec42c26c519fdbbb3c3e82154b01bb569adca65dbf540ccbd7263cc20806dbe901ba44204b84d07d235b07bc7"; + license = [ "lppl13c" ]; + version = "1.00"; + }; + boolexpr = { + revision = 17830; + shortdesc = "A boolean expression evaluator and a switch command"; + stripPrefix = 0; + sha512.run = "677a397363b80126e45609d125ec2cf22b3ef144216e19183bcd48c1f0ccd6e2e079fbb0a2e7ac03f094470c8c0bc64ae652863aed970ee9fc75a9a69b60c618"; + sha512.doc = "6351bf2d3382c5a3b9a07a8458d7f158ee3bd0e72c96af5f2f985d28a40859f95ae7ae956e5dbaa1ed93b1331322ae1e8901ad3110f5e74024efd831e29b6b44"; + sha512.source = "561daf8eb74f10987be27e884023ad443f24e8d48b573dbe8eab5e958c2ac9f2319b293874050c7d7f56ea3c22f31eaa57f3101c8878b466ad8938018427e765"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.14"; + }; + boondox = { + revision = 54512; + shortdesc = "Mathematical alphabets derived from the STIX fonts"; + stripPrefix = 0; + fontMaps = [ "Map boondox.map" ]; + sha512.run = "0e1cbb6ec227a2cd17852e71f16b4972de18a076fdd4c4416ffef1416f3332fd351036fead4d82a69b5aecdf392bc7e1af85ca5bb1e44c153d25cc86ccfc631c"; + sha512.doc = "72e77b36b79bdad663db8c707daaca8d324fd3f50edc8cb7780a641f5d0217d3fe4c2b758c1775de0ce5fea3d44e9ea08e745df51485b4d1e3de11e2a98c74f0"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.02d"; + }; + bophook = { + revision = 17062; + shortdesc = "Provides an At-Begin-Page hook"; + stripPrefix = 0; + sha512.run = "8ce41fecd2befaf448ed238d8bf643362f5a945b7391d18b2698c006421b7b60ce4d886e09dc579eef12cfb459f49247f7f3afebdf8b590e9285c608d654ed60"; + sha512.doc = "7d8ce0b7caffa4e16539154ade5a3df6d6b42b75bc521643473ff568ef5c65c3014fb22053b353a917d2c4782f378bc765475dca5d20b3dc06ff02c0dd2a63ec"; + sha512.source = "ca7e5fc30d23c022e4fec8414c9ef11d2acd5707ad781428021f8a828c6c8b891674fc6eb372a0dc33944e2a54adb9b86645529ff28b4438c31d8477cb2b3a6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + borceux = { + revision = 21047; + shortdesc = "Diagram macros by Francois Borceux"; + stripPrefix = 0; + sha512.run = "e4658e7a672caccd24832b31b0635dc61ae5ace5297569a84d9da981eb37f6b9b944bc33c1e964c09c7042e3e74f9b3067795fdad508e52e624f2bfaf439559e"; + sha512.doc = "202e6b476c5c6f48ea2e6bdf2710d01afcdd9a02669d220bb11bab8fa920f41fddb8aa152a815045ce9d0c92b761f90ab34cd426ba62cf26282d71696f00f03f"; + hasRunfiles = true; + license = [ "free" ]; + }; + bosisio = { + revision = 16989; + shortdesc = "A collection of packages by Francesco Bosisio"; + stripPrefix = 0; + sha512.run = "659cd163c28a52fc12651b35b8018d0df7e4fb706739b090167689a7199a8f9ca3bc3376ed3a5b6c076e9242f4f8132dbec6cbeead499453fa5c9cbd2aecce38"; + sha512.doc = "7fc9a651f6845643fecbb9f0fff150fec2a22273accc420451c2c5dbeab6e40cbeb9b51a32589787c005fe479f626111214bebadb217a238baab07fa18d8c92b"; + sha512.source = "494ff83253abdc9f0d81b3ee36f1d860938b1eb8a7691ecda596d31126624f3272ba65685a9436a5817b93a786da97e6bc6702249630d71f697ef394f801584e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + boxedminipage = { + revision = 54827; + shortdesc = "Framed minipages of a specified total width (text and frame combined)"; + stripPrefix = 0; + sha512.run = "697cc00b10468f515b5ebae838d623eec58085269c98897a5c2c4ea932ec52ae819110612feb84b6951ff391bff9309655abf6a41e13da156e5ecc52c015431b"; + sha512.doc = "54209e9e5fb8da8db65901c729b78aa3c9b536c3bca4d40437848287d8a07d955a84ea0f13d93e7e702c47c6bf8bece3b6d3f3026d5f78568205746c9009b968"; + sha512.source = "718499cb248fb8a98a9650a78ae377f9aaed9318b91c4417c7690201504366e073e80615106156087686273f9f86adb58f854cc758c2329ad99103f788ba0164"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + boxhandler = { + revision = 28031; + shortdesc = "Flexible Captioning and Deferred Box/List Printing"; + stripPrefix = 0; + sha512.run = "8aa988155d5115e2fbfbee113013cbb4d32cebc670229104cf96c2920c81bb23245e2365cf31705b67cf72345387a275c83f170a777129ddafdf6cb7558bb077"; + sha512.doc = "15b69a4d434be9561cbcf45a5c3c68ae9560fae35ed2256cfcb4c2bca8ac172a8bd0d6f7335644f586a9b3da65948b9372ae9f7ec9bf2c0d43b572cce5af20bc"; + sha512.source = "20e1dd79907029b015d9c6d85c80fa907efc490a80db7f0e871b6b379c1370982fced3e3865a9fc0c7492a9d3631d163b98177dca99deff4a78d7f2ee354f2cd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.30"; + }; + bpchem = { + revision = 45120; + shortdesc = "Typeset chemical names, formulae, etc"; + stripPrefix = 0; + sha512.run = "3359bc429ec00bdf3b26810e373fd9bba8f562d4782d16adf2706b59ec1cd153f0fd565c26319bac0cf5065b6a2ea99ad5cf6461fba62a7bae8355fad7d8279b"; + sha512.doc = "c8edfa3e5fd901ef705b6b55dd2278eabd996e2b3aa76ec5da9c34c07db95909b67f31990684883edd256f7a5eb7c29450886472fafbd0ff91f8e81abc4dc93e"; + sha512.source = "0f2629325312dc8e7d05d593bf97ddba9b18d0709d0c29fd5df2b7e5077a15624d98edbca24e20c039e7e72bfc21e676c7bfdb6d29f7c84efd4c40f41d3d930c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + bpolynomial = { + revision = 15878; + shortdesc = "Drawing polynomial functions of up to order 3"; + stripPrefix = 0; + sha512.run = "370b9ee803390f51da2cf7da4832ce9a51d923420908ffbf5dba21a2380e13cf345413eb81465e0acf86bc4011ec0bdf8cfcf5ac0cdf62cb3e88b2f2b6a6edb1"; + sha512.doc = "2778eccb795d4543baa16966d55ab68a8c2c6f547d7a544aafec365036d9805a5cbfce97efbd25d0b39329814e95f6a2e18610f5e83a4d755a31dafbd651ce0b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + br-lex = { + revision = 44939; + shortdesc = "A Class for Typesetting Brazilian legal texts"; + stripPrefix = 0; + sha512.run = "e4eede34a086ab025a9918798feea2c6b8b19d86782a6d93745aa82d40258e1619433eb445d0b3c1335dcb195689bb76ac8142e6c65618cea6392e243dadd915"; + sha512.doc = "3d277aeef55721a833cd613c98852c33f7ce22a8034e2fe62952409cffe1ea49ebe1f3b80f91018ea51fadef226939a14e103884dca19227193a32d1e3ba3110"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + bracketkey = { + revision = 17129; + shortdesc = "Produce bracketed identification keys"; + stripPrefix = 0; + sha512.run = "ecdf6f5c6cfa46a3a0eedc9eeef5bbc59cc05a2a831249787ff70fda7d69466862c18dd7ed7a440b8b2bb93c6a08225c7a97bb2f5588d94548d9f6b626ec36aa"; + sha512.doc = "db067a4ab9ac087f565d184c48a90800e68ddb25f5f78146ef1f65bcd3cfb1d0adea78483ca8e27fb9f82bbf26d23c5c16ce735aae194f4816ea73eb993ef099"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + braids = { + revision = 69398; + shortdesc = "Draw braid diagrams with PGF/TikZ"; + stripPrefix = 0; + sha512.run = "e92513b484cd34387542fd39684141d6bd24c99ac4e99791498e75e28c814b9647f9762a5803aa127e9c5423dfb93ac9126348d94668bd7e82c82b54af482f34"; + sha512.doc = "b8a26f24d450b8176a2a6d094e3f0e66faade539266652319c354cc45a824358fbcde416582fa34917de422d0a86f782858247b7d457b50353ec4803b9024f91"; + sha512.source = "c47edfa15e2d11bb06d984cce5735699f2fa2bcbe5ce09abf7f4220bcb904bbb5a541fd0ba9479d941b909ad9cf4df3374fffae8fe6a90fbbed9e80e26def3f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + braille = { + revision = 20655; + shortdesc = "Support for braille"; + stripPrefix = 0; + sha512.run = "04893a3664b10fa1d5b912751e51b6d4a596821535da87aa1f2c2c5632e1fc60278435fe9deae4b0fba8296f2e46015b27b592721dde26dcc4acf7e3bd672a4c"; + sha512.doc = "1cf6922ffa0785adb8e7e7fa5cfe134b206d70d012eb2ec1bd40bedb72ace43c8a17b3e94b16635473d425420f362c49f1b509796d43ca0d2aff0bd9be9f25cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + braket = { + revision = 17127; + shortdesc = "Dirac bra-ket and set notations"; + stripPrefix = 0; + sha512.run = "dc5f931ce9adbb3e8398cfab83402776d92018945172c7c17f04772f3253942c6ebecd5ca0f3d23f0befa87327dea4a3a9b90528bb7409963f04d9b856186562"; + sha512.doc = "9bdd3cec0da91ffd13d556b9620e9c502a658374657e2821141191000a2321bf030edc9c32641b5ae6c52acfc7266c377a8f4dfe4891cb616f8d4f6a377d9ee0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + brandeis-dissertation = { + revision = 67935; + shortdesc = "Class for Brandeis University dissertations"; + stripPrefix = 0; + sha512.run = "96cabbbfd22e26d8aff3b9c54c5f9bdb9ada8a036af3761171c7ec1384d4429bd69c5004e16e87098e5c6355cd029e08371f41484742618f9090fa2c919bd638"; + sha512.doc = "23c1a0d8fa47893017e657f60ef9a7ea54e6f587bf164872b4abfc51f04074ecd82d3494b1c78bec76e6e848bcce20c61af0ef7c2e9b24f91f657a678b03eeaf"; + sha512.source = "b0d4a1712c784aa20e159c9c6827cb61b007826ef445981a196bb5e4c159199b76fb59dcc6ff03dc67b0328eabdaa821b5ed6ba0773c17ef7025b171bd6f746a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.14"; + }; + brandeis-problemset = { + revision = 50991; + shortdesc = "Document class for COSI Problem sets at Brandeis University (Waltham, MA)"; + stripPrefix = 0; + sha512.run = "fc5026cefa87e1ab248d9d26466a05e11b112c75bc3908c7e6f123a1436d5f813038176e97e1ed290cc99f93dfc8d024c88c1242b9bb41689bfa0a29153db9da"; + sha512.doc = "0f6857c1ff226d797d6e0dc96bf040e2393564121b54d5d9b1e9e35acb01b7663441e0460cd117a0b015cb768bfdf3f40df142ae93d5a0d77f9a84f31c3e45b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5.5"; + }; + brandeis-thesis = { + revision = 68092; + shortdesc = "A class for Brandeis University M.A. theses"; + stripPrefix = 0; + sha512.run = "8d2c00167dc8c755d5d29f66c36d7d70d4fcb8fc1ca66e5c4008d702b38eee9c8bbb4bf9e7129a69649f57f31b25b532d44f3bb7628421aeff90e89afd9ba2e7"; + sha512.doc = "61bf51cd01c13bf698b9466573af4f91357ec77a265db2166881c1f01112ce0a17d87b74f5470aff7da42bc39bb77fdac0cf20613e379bc168119ebdafb85d2d"; + sha512.source = "0cb20a7d0b841a2d206ea4d8d9c0e7077d6b94c841d3bf8372899707e2b63c20d0cd6ea60b451abc6e1e64ec2c69771bd6fd30203e4b994d8b0e6779abaed515"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3"; + }; + breakcites = { + revision = 21014; + shortdesc = "Ensure that multiple citations may break at line end"; + stripPrefix = 0; + sha512.run = "13fdad42586a361b4e01999476f4d92ccc0fbcca4ee2663153b9eabbb08ad571dae6631306e9fc590d94f3f02af79519de30a78ed35f737004d86bd62b76786a"; + sha512.doc = "2184e40db7f4a01113ba1040a62f8213f43bf34202a57a33abfc6291e84b01cf27298442f0f636289892d02764f1000ff3542f2ca6e490e0eaf6d5bab247b3f4"; + hasRunfiles = true; + license = [ "free" ]; + }; + breakurl = { + revision = 29901; + shortdesc = "Line-breakable \url-like links in hyperref when compiling via dvips/ps2pdf"; + stripPrefix = 0; + sha512.run = "fa1fa9e3ac50f305ae5b82eb63997d1674b3f640f36d502a1000b439dd52dcaf6b539d153a2c7022f3a00fc0042bcfe341e850ed6b01f7058b1f8f6fd92b4d9b"; + sha512.doc = "38f7847274cbee0a6e7c536a982d0110670cf6af54bfa99718a862e1974fdd839f6ef6871cbe2c40bcd0b2a9036c806eb2b57c8adaee583ef316da367ed854f5"; + sha512.source = "9ecbae9c483331d636a522f67e5da197e4f647daff0a0fe81f4542c7248934c662046c8e61bd10fadb44144918cd508f09c57880b9c1e0c6515cb2dfd35e52cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.40"; + }; + bredzenie = { + revision = 44371; + shortdesc = "A Polish version of \"lorem ipsum...\" in the form of a LaTeX package"; + stripPrefix = 0; + sha512.run = "1e5629a2e6e6099a319d8b8a1efec83262780c70a57c482f66a33a48722bcdb18fb891a96b6b6f29c54d71ce581dd1c82decdd22ad74d6ef61765fec3f8c3614"; + sha512.doc = "29fba5bb48aeb2353616cfe9a8dd4fff90c164c10779b8115958733470fd47dc40a567212c62315110a5a7a51363c9f917c4984583d40177037d6b0803ce66fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + breqn = { + revision = 60881; + shortdesc = "Automatic line breaking of displayed equations"; + stripPrefix = 0; + sha512.run = "c280871916bf0689794cba9640a7666a0f7b295635b85d99d08f04cc0c4cb7ac82552360b0c8b3d677b138779239c4ac4a2583db26fe194870c0c97a9a53395f"; + sha512.doc = "70ab6500b714c0e91c597b43d934942c39c23cfc9993702b6eefa19b8c9027aa0e7eaa55cb48413e2cb42e468167492e7a401380c1cb4a711daae364ae01283b"; + sha512.source = "aa4922ba1ebcbfe00716b02b567da4b17ab1b0d22cd5fe8332d147496f93dbe0a94e9e38964b13b6b4944ccfb2ce49bfb32ed5602ca1f147fc99163eaedadf46"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.98l"; + }; + bropd = { + revision = 35383; + shortdesc = "Simplified brackets and differentials in LaTeX"; + stripPrefix = 0; + sha512.run = "d6bcf207cddeb6115cab45eab12d48326f067df2fec21386ca29282ccd484e572ee4b5420473079b033bf2b085e134fb42b76b3f18d5b56b47ad765c62b07023"; + sha512.doc = "b9ed0de353b0b0e6d7c8e48f3a20c5ee88a0ee9fb1873ced88e89b9c4d73b20701add802442e69aecc419a2c6f433ca12ccea9130abcf895a5568f7b2d66d6a2"; + sha512.source = "b33ad62f68eb425381db0c6724fbcea32b1e37f8dace6737af6e996b7103d19eadabf60873ff367feb9c3a69743d219ce41d5274b8c533d5b5323a971d01a06f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + brushscr = { + revision = 28363; + shortdesc = "A handwriting script font"; + stripPrefix = 0; + fontMaps = [ "Map pbsi.map" ]; + sha512.run = "f8c7107b0e98cc6e402ec8ee6f5e6f9a1b8e0d046dddae9486e4ca68327f370a75a0f90000939828605334b3ad3c5caaf5e541c7933c5545fe3e531066fa650f"; + sha512.doc = "41ad7b1afc7cb0f4bfdf0bcff4c1d85f3d9603c3d48ccb62f94a6fa2258cf3f60f03ee1b4b5756d85a77ba4ff9afddbccaba1c4bd5b69d85ce4fed206aa16b1c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + bubblesort = { + revision = 56070; + shortdesc = "Bubble sorts a list"; + stripPrefix = 0; + sha512.run = "8d089fe6eeb4ae2e8c77de1130b0d51bc50c4b89ff4d1d26065fa93d740de16644856db55c38efa9e199c2ccdfd6906ccdccdb9676f2313f92911c5d6e06246a"; + sha512.doc = "a9cf0d74f8a713d381d1a06f0a9f658c9074a4aa9027113e47f29ba926f835878e2aa7eed9dedd948e9c5f3b50345f82ef9b4f35ac7fdd08ba041e3a00ac20b2"; + sha512.source = "9cbc0f682dcc18881f4aceca601a2dcf4996e597f4341d3459af336bdae72938b9aa4402fd88f2f7a4de960909bd25bdfa3a01296a8b2e3283809fd63a47eab7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + buctthesis = { + revision = 67818; + shortdesc = "Beijing University of Chemical Technology Thesis Template"; + stripPrefix = 0; + sha512.run = "7c27a0f982a2727c8ad7dc98052f48ddb73d37ff27b89eb53f8e33338f67fdb99dba2cdbc843cb628ea725fb7ca7d0188ec5f53c6b863c4707e8b174c8b788c2"; + sha512.doc = "edcf0ac0b5e9ea86df731fee1d2388960b997b7278fac5b88dde6e3820ed3ff488c6ab156dfbca169fb9dd11cf49c5ba5c17516ac2f874bfb3d825426f0fa5ad"; + sha512.source = "bbb105930a740ffecc9c2f4ebf3a3a206c49c3128b44bc9d96c97ec0715da1fe152bab9ffdbb3a3d8fd3689702bb7091056dcccb4b428d54ad0853f9ede97ada"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + bullcntr = { + revision = 15878; + shortdesc = "Display list item counter as regular pattern of bullets"; + stripPrefix = 0; + sha512.run = "886109fdce6a936d22b829ff769b130a445876073c73b2bc1767610302ba8a40112938311a138e1c93a0495a6e7d5cafa8d3606ca3b2fe48af442e023195ab93"; + sha512.doc = "ab01cfba0570bc565d8b40945aec5d87739a0826d5c323c5ee960c0d3c7c3135ef2c8b7878268b415ffae3beb06fbc6af48656e7c4a6a45ee423254ce23cad1e"; + sha512.source = "cd05d28c2e5c759863403e3ea9e8700002a4ef4f9021decec9a681b92d944ecc4c6765bae332f8645d06d12ab6adc096f4a560a195c981d5e6cbc72acb56e812"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + bundledoc = { + revision = 64620; + shortdesc = "Bundle together all the files needed to build a LaTeX document"; + sha512.run = "8f1e4428993dda804a2bd6b11504996e6cbef869b98a64d576f0edd97a47b1f2301b34ed234ecf1cc902c74dcb31064a96cb69018ac514fd91eb3e5c1b6df5ad"; + sha512.doc = "d74b1ec9473c4616642911fb918553350c5c65ae2cd5171d3513d6fdd5b5b774a516c54a5ce09a8fb966a9de6c5e372b773f7e8ade9f14fa2b1a646112638679"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4"; + }; + bundledoc.binfiles = [ + "arlatex" + "bundledoc" ]; - sha512.run = "e162b0e32f52ea7ca60d5241ad6f653b29d2601eb05734ca0970224894e1acf3c21b1c160fdea652b8616f19cce5e812d5ba78ef10aa3cce784a90aebea960ef"; -}; -collection-pstricks = { - revision = 65367; - shortdesc = "PSTricks"; - stripPrefix = 0; - deps = [ - "auto-pst-pdf" - "bclogo" - "collection-basic" - "collection-plaingeneric" - "dsptricks" - "luapstricks" - "makeplot" - "pdftricks" - "pdftricks2" - "pedigree-perl" - "psbao" - "pst-2dplot" - "pst-3d" - "pst-3dplot" - "pst-abspos" - "pst-am" - "pst-antiprism" - "pst-arrow" - "pst-asr" - "pst-bar" - "pst-barcode" - "pst-bezier" - "pst-blur" - "pst-bspline" - "pst-calculate" - "pst-calendar" - "pst-cie" - "pst-circ" - "pst-coil" - "pst-contourplot" - "pst-cox" - "pst-dart" - "pst-dbicons" - "pst-diffraction" - "pst-electricfield" - "pst-eps" - "pst-eucl" - "pst-exa" - "pst-feyn" - "pst-fill" - "pst-fit" - "pst-flags" - "pst-fr3d" - "pst-fractal" - "pst-fun" - "pst-func" - "pst-gantt" - "pst-geo" - "pst-geometrictools" - "pst-gr3d" - "pst-grad" - "pst-graphicx" - "pst-hsb" - "pst-infixplot" - "pst-intersect" - "pst-jtree" - "pst-knot" - "pst-labo" - "pst-layout" - "pst-lens" - "pst-light3d" - "pst-lsystem" - "pst-magneticfield" - "pst-marble" - "pst-math" - "pst-mirror" - "pst-moire" - "pst-node" - "pst-ob3d" - "pst-ode" - "pst-optexp" - "pst-optic" - "pst-osci" - "pst-ovl" - "pst-pad" - "pst-pdf" - "pst-pdgr" - "pst-perspective" - "pst-platon" - "pst-plot" - "pst-poker" - "pst-poly" - "pst-pulley" - "pst-qtree" - "pst-rputover" - "pst-rubans" - "pst-shell" - "pst-sigsys" - "pst-slpe" - "pst-solarsystem" - "pst-solides3d" - "pst-soroban" - "pst-spectra" - "pst-spinner" - "pst-stru" - "pst-support" - "pst-text" - "pst-thick" - "pst-tools" - "pst-tree" - "pst-turtle" - "pst-tvz" - "pst-uml" - "pst-vectorian" - "pst-vehicle" - "pst-venn" - "pst-vowel" - "pst2pdf" - "pstricks" - "pstricks-add" - "pstricks_calcnotes" - "uml" - "vaucanson-g" - "vocaltract" + burmese = { + revision = 25185; + shortdesc = "Basic Support for Writing Burmese"; + stripPrefix = 0; + fontMaps = [ "Map burmese.map" ]; + sha512.run = "7bce3a31febfc6a959ba4779d975cf93276a0bd1115e06a50a3c8d705e49e8d6747ecebc7eac2147f021a538dda1bb241d8f320ef1486229c930141e06d6ae26"; + sha512.doc = "4a7f3628efd913a362786564dd260dc1a63e51a397af3d92222db6f758b7a7792b13e58422d2604ae98f615fb5fc42e77f265e505236db9bc981d7951e0ee1ed"; + sha512.source = "066d164d97f4fa9e1050d75c3c20997be859718a2be37c465010040f969b2d3aa17edc3c241f5aca45d91dd12517d72a731d02954088ee83ff5aeec3be0b0fcd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + businesscard-qrcode = { + revision = 61719; + shortdesc = "Business cards with QR-Code"; + stripPrefix = 0; + sha512.run = "d991a7dfb9be936018a1946d2d3fbe24b775d99bce08da27e7451b54c679bf6565b207a7645ee4def2464ce08187b6ff25614dff9ec6925bce66fb6f48809412"; + sha512.doc = "6ff58a45f67ae55d82721f125bf3e9c8a5cbd049515b840eb4bdc79eea63bd82bccec41f53b05cab9e6720f3719cc58e882998249a738eaa9f033f14569b9f88"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.2"; + }; + bussproofs = { + revision = 54080; + shortdesc = "Proof trees in the style of the sequent calculus"; + stripPrefix = 0; + sha512.run = "042e01990554b7ffcbd70c9a281d87ee98d9b25d7071f24d114e097e536ae1d7fb565854399eeee547ad2cf97bdd6d4fd0755169ba7548f01ed0d736e031a383"; + sha512.doc = "b3fec7f142210ee5051b3b3a45ef26724d95c538978c4904c9723113adcd2164e6385a9949473a8b9d29109b016c24f25a4088fe3728d675fd0023a043ca6262"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + bussproofs-extra = { + revision = 51299; + shortdesc = "Extra commands for bussproofs.sty"; + stripPrefix = 0; + sha512.run = "8410e4a795b79e7ea06bfd72c713f39950da8d1c418002bc497eb802ae71dce5d5372f7692267ca62891cbb2a58719b76c2bce3f10ec11cff63c40bae9122a2e"; + sha512.doc = "87ed5af043bcb4d41f301d4b09dae511fa509fc9c50ac70cef29d0df4bc023f97856504c0650b6139ff8bcd9c25a046411b58f72db016d7429788db757a4e87a"; + sha512.source = "de1b272c20c7aa3d1c6f06fef7226083890a8b43ac3ad9ec54d6ff0649ee268b9c9acdf5d3e335f1fbf7f2b9aec3ff91517f126fe8d354e32662e3d6938b197e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + bxbase = { + revision = 66115; + shortdesc = "BX bundle base components"; + stripPrefix = 0; + sha512.run = "7d1b15d92136126999f976127b43a125a9bd5aacaca5a76aecee94d4f6a6ce6538c449fc82d95a55984b9de802e1e66903078e5d2344db532b9b2e2e94ffdf24"; + sha512.doc = "162a33a07b6149997b9cf0ed5b1baf55f80f2142c106e07188b27c02f4fad891d95d6366581d958bb730106f5d3777e59a1ba55176a7e7594cdadc77e85d7365"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2a"; + }; + bxcalc = { + revision = 56431; + shortdesc = "Extend the functionality of the calc package"; + stripPrefix = 0; + sha512.run = "580fba2af6adcaf2b2f137cd34455b3dc896f2e26aabc2352fb23c12fe1a134340c2505d38dae51e79c72408fb4023213971ddc0ad322f16bafa29a9bc1dc4bc"; + sha512.doc = "1e2e8eda856a15be3e9f3cdc441d3b1972b97125d0a370061f0919ed0c4aa267d5fbacddd453d9b99bf5b759b801c71c3e988f9666540d960d9a27e7c54ea904"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + bxcjkjatype = { + revision = 67705; + shortdesc = "Typeset Japanese with pdfLaTeX and CJK"; + stripPrefix = 0; + sha512.run = "72d3a88c117ea971faf8bc836bfe32ddc52e96c1fe1546ceeb8a9b298b7a28fdfc8aa4b0f43bdb3fd27126383b289ad293b2ca6c4ad95873948be0651de4ea18"; + sha512.doc = "8118935396e03cf72b0efe04d6e436c6d7b3aad3dd1518561ec36d1fcf35a4e29dcdf86dfe554d06f4814694e7528f238b73c0145dce6ebdd5cc9b587db3f86f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.5"; + }; + bxdpx-beamer = { + revision = 41813; + shortdesc = "Dvipdfmx extras for use with beamer"; + stripPrefix = 0; + sha512.run = "48009e69d2bb6c316c5d33dcc9d17fcf9f762b68688130ee8407648039b7c3effbbdeaf991bda7842738da59213cc855b50f48cf179ec77e0682729d6e5d3709"; + sha512.doc = "2692918a0fb1ac7bccc6e905350c6cd716b72b33d8f00bad73ed0146238965d0c1a1d9de07c22fbef1ba7211a919c1152342a9f4bb48185099aa470f76374bc8"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.3"; + }; + bxdvidriver = { + revision = 43219; + shortdesc = "Enables specifying a driver option effective only in DVI output"; + stripPrefix = 0; + sha512.run = "dc37ee5237e6eb02fca173b8b0501795604930b56c3e9101c6b653ad6df12cb5ae82ad81e66aac5c1ce4ff0aa8d7f05658f4b41057ede286715c25d290682182"; + sha512.doc = "83e18920fb6f2f54f54c401fe83ff131dcbe64ca712ded59f0690d90f1d8b2623ec135692a3fa437b77fe82336553a529d36b5bdcec96a96cd57523f11cc0e0b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2a"; + }; + bxeepic = { + revision = 30559; + shortdesc = "Eepic facilities using pict2e"; + stripPrefix = 0; + sha512.run = "a0436e9dc7dffa9c7a7b2a41662a41db934aa4242c953f480400b7a2c8a71bb526ebe8eefa46b02db03364efdf14fd88c1dcd267ebd59f594d72540ddd3048c2"; + sha512.doc = "25789b297ba2fcfb81e74637cb2270d41eff858e747b841cfbf5d29791fe6697d3a9cfd4abbbbc4ed0a5c5b274f8b5a7cdeaccc995f6ae623d2a6e2d831b7e55"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.2"; + }; + bxenclose = { + revision = 40213; + shortdesc = "Enclose the document body with some pieces of code"; + stripPrefix = 0; + sha512.run = "f3d0f39e9c21f3bff75d118bb1a9408e7fb2c84beb9301873cd37a678de4b7680d1e8f13693839ce32e1e816e756d8f0af14cc620952afc8fb02885debf478a8"; + sha512.doc = "ea7e0f17ee70d3d4798e85e3788af1110fb2adb436106ad08f601655453af2c5d192d5e3854fee1b29f6ac21f2f6b02e239ff4ec6ae9181818b23bdbac45583e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2"; + }; + bxghost = { + revision = 66147; + shortdesc = "Ghost insertion for proper xkanjiskip"; + stripPrefix = 0; + sha512.run = "8b5345c2e48c16f296e3533977b2d9a031274764f3580887d2142a12f34e93d4d31bda0a5997823a7bf52891c8707d897afdc365a001348d2ab12d8f947acd0d"; + sha512.doc = "999e7623526c6ef51b8c6da383e79d9f889d1e45efb52eb127463b94e7790edb124c2ddece303c932134df4daf4189db082c3492fe04e6a829e1dd6d943edc02"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.5.1"; + }; + bxjaholiday = { + revision = 60636; + shortdesc = "Support for Japanese holidays"; + stripPrefix = 0; + sha512.run = "4f5dc4081f989b73e5334d62af403922e2918424cff24480644f1e9016e3e20fb044cb22da91a035b198aa92edd0a51e985fe791a4c99ffbde2d339ca46a3918"; + sha512.doc = "6d3ccd7c279e9dd8063296d843dbb6b42af90359b16f421eaddc7b2ddf23e2dc6077d4748abbef3c67c9672536d58a20746848237525a4cf8ec87ed19117a618"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.1"; + }; + bxjalipsum = { + revision = 67620; + shortdesc = "Dummy text in Japanese"; + stripPrefix = 0; + sha512.run = "a3c635eff092be08bb99f882a18fd477aba3b9b25666defa4cf872806dce666ab8b931cc5b85ee217dfbfd453a066461ba169f830236ad55f75a28a81a157e0b"; + sha512.doc = "b7f020236e7cf429bb367ab412a6b58746302d2ea0c6d50c3b9af20a86e535196bf3e628c962c98ff0dd3d194d702c7a20cca55b815b88727bf8bcf0a5eb278b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0a"; + }; + bxjaprnind = { + revision = 59641; + shortdesc = "Adjust the position of parentheses at paragraph head"; + stripPrefix = 0; + sha512.run = "90d69860d7017c414cae328806e4d6e9a788dfe46f7a6a5792a0e8df563471b5d60aa6b7d2ea45caea3caf954a809f64549f24105d9856d6b89f96d366a02fcf"; + sha512.doc = "40c81a58de05b25b5ec537ee6ce8feaa9476ce64898e7ebc67ff1d5497e53eab341734438160e578487753ec9bb747d8c69cbd4365895326b081588b92f6677e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4a"; + }; + bxjatoucs = { + revision = 52509; + shortdesc = "Convert Japanese character code to Unicode"; + stripPrefix = 0; + sha512.run = "ffe18ddb89393c61df4371d6fe1154759992e544af64cdfcc007122ed212e87d16194d906d4c9f797671860a96c4dcde12682ecf98adb3c7b8b4c6ae0b432b81"; + sha512.doc = "9c281fdda182269c7a048e1ef422f0c403ecef7d8fd8dc462ebe39b861fba013ede2ef351baa5ad4537b2e1495f1f0572c7edc6fa6407031ff19053bd6dfdc02"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2"; + }; + bxjscls = { + revision = 69637; + shortdesc = "Japanese document class collection for all major engines"; + stripPrefix = 0; + sha512.run = "bdcc01806c8379d02ebcb49c25bd497d11dcd3f0954dee7c1e1639c4cb3986a1bc54266e2f635c263058e1cdb34d540d52291cbe73502f02eb54d4b98ea3676b"; + sha512.doc = "047fd7bca863ea5088d2e33d512a80879f72c32dd2e7bd3813fce6614d22f0285beb0adcd887f4528457db24472518663ea4e711d90e4fc0f36c8282db6672cf"; + sha512.source = "5eecd3c63ba56bdae6a5a720aec1394649732db2acf7d25a6e3125ed742fb1033648edd7c45bd558f7dd3b9ea912617111b0846614546b89ab5f2aecdf770f00"; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "2.9b"; + }; + bxnewfont = { + revision = 44173; + shortdesc = "Enhanced \newfont command"; + stripPrefix = 0; + sha512.run = "83775ee72fceb4de0037327561ea2f1723db89dc23ccc42245390212ae1fb849c92c75b2e7b4b23440c62086116b8f0a14b12b27f97c9277c55a7454b231826f"; + sha512.doc = "f09fde7abd39a4df52175eff90363a469270ab1385f3600e654535cc90d7b4b5ba704be734323dffca512f5942c45a9ffb5cd19a73026c224cee3be33eaa5b65"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2b"; + }; + bxorigcapt = { + revision = 64072; + shortdesc = "To retain the original caption names when using Babel"; + stripPrefix = 0; + sha512.run = "03c88a7e74c83e070d132fe55231fcf0caa51a8e87daa213533ec1db5246919b6de062e290da3e45b17f66ade1af54e38f39075284009c5bd126513e32c4f080"; + sha512.doc = "0a3c6c360bd1672fb4f1aa33dccba06c7de77a65a6e0d128fc3e90f99aa9897fd6d3a1ee5c2ca719a42a891d67a575ab13a28b7e6c9f6f8966f98167ec54cfa2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + bxpapersize = { + revision = 63174; + shortdesc = "Synchronize output paper size with layout paper size"; + stripPrefix = 0; + sha512.run = "1a58a1a8281505922f5a6a2abc8695be6826f55dd1d37d8d42633665aaaae98544a0662cd4ba4c384757caa593eb000ff933bb7d7b215447fec6d6f5517993fd"; + sha512.doc = "f6631a73d4d29616fd197f9c32b7b533f60e6b007a4849930c33afa4eb866798e1ab415f0842cee8142e7e7379507b2557b096df627dabb1d714ee305a8ba0a2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.6"; + }; + bxpdfver = { + revision = 63185; + shortdesc = "Specify version and compression level of output PDF files"; + stripPrefix = 0; + sha512.run = "693b58af2200a99c98b1b4fe9d99fca00cd39f06877c4670e4b5e281f3c31221490f3f7106e42069c1d0f35e192fc3d8e1457572db84a8176fe5dab695a55c48"; + sha512.doc = "94500d43e01e6e4fcde2a5de892ff0587a495672620540c37f08d815a4178f153c98dc1b8ee099f2e4e849842066a126d2906defb5b07bc5849ea7dc19f81555"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.6"; + }; + bxtexlogo = { + revision = 63231; + shortdesc = "Additional TeX-family logos"; + stripPrefix = 0; + sha512.run = "e0399d089bbbbac0e34a216b5164956dc9843e2d77b9cc1b395609963aba759e527dcd3fc112f4aa57b621e4419ee33d16e7bffb7f88123a0afb7c983c82636b"; + sha512.doc = "ddc5da87331449bded7b5936bacac04872467cea5ceff8b1a0b2c5938119351e17f1622020e53a94d704be03a626b5110685e69cb393773595d5b9cf7326f184"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.6"; + }; + bxwareki = { + revision = 67594; + shortdesc = "Convert dates from Gregorian to Japanese calender"; + stripPrefix = 0; + sha512.run = "6a7b89540c662871ad9799b00a8e17d0cae301366ac6651d9a9e7ba995f6d2de6b2149f6eb5795af0d58c5de454aeb94d0ade0026520a4e54594f93fd4470b3d"; + sha512.doc = "60c6416a036372f3fbe636dc46106114d2a43ba292f961fe299f765afd9e23c975a7f68f4c48a9c1ef9ea5b9b97224f1d0f1bd1585fb90b5f183a14528351539"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.7"; + }; + byo-twemojis = { + revision = 58917; + shortdesc = "\"Build Your Own Twemojis\" with TikZ"; + stripPrefix = 0; + sha512.run = "5d9330d36bef34d5deb7fae5413741de09050bc9a0fb3bef7874b0d44f397e900f626fa64b8903038d3131e5b9ae66f121a1dbaa6f25668f73bdf7d3aeed409d"; + sha512.doc = "a0329476031945d9fb694522b3bb08cfded7ee117033f758ca7a9d1dc423d66f8ca749b295e1d420b737da886b57b1bf2dbbed20d3bacfbef94d57061a22f4bc"; + sha512.source = "7971ba8678358883fba70f2394417f2cbaef639fa0a1fb13f1cef8d0cb182c91fc3097450bc29011c4b939afe6cb6ae5ce3c8c50f183fc92f10f3d0a46adc3ad"; + hasRunfiles = true; + license = [ + "cc-by-40" + "lppl13c" + ]; + version = "1.0"; + }; + byrne = { + revision = 61943; + shortdesc = "This package provides a set of tools to typeset geometric proofs in the style of Oliver Byrne's 1847 ed. of Euclid's \"Elements\""; + stripPrefix = 0; + sha512.run = "ef27aa477ed05bfbfbe3729fcfe119f9e7e3335b9669a34ae812b21084c2063b819e1201340f3db269f9f2234b5644054ab30fb3112b6bae142c7e5a0c6831ea"; + sha512.doc = "d0c03c352aed98d7b1abff22d8613f34d206807fa8e0635b88b764f136bc851dd53f8757aff45f636e1c17c32ddbe481867a3e30218dc97ca07f25a147c1e435"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.2.2"; + }; + bytefield = { + revision = 68366; + shortdesc = "Create illustrations for network protocol specifications"; + stripPrefix = 0; + sha512.run = "394c796574674e877a6532900edbe3555b63aaaf62bf2c8bc8dac280c60064d77bda56991ae1c1a208fc8bde4c8e990cfbb05d21605fdd4f934aad0403775f31"; + sha512.doc = "98e7e38ae0a9337fd9926af76e51b6381436d4e6cc9b05cd1beee2f8b01d460643265c09b53b1058e72cacda1ee60df6adfc210efaee67b2b0cb31e3d2624833"; + sha512.source = "d878e6325e42c5a7e2695af6ca46d876c56eb4f0bbeb75e560ebac50bac30dcbf6df4b82a1379ff60e713e5f92840150c96fb1b637591863dd9ca1387e9a38ee"; + hasRunfiles = true; + license = [ "lppl13a" ]; + version = "2.8"; + }; + c-pascal = { + revision = 18337; + shortdesc = "Typeset Python, C and Pascal programs"; + stripPrefix = 0; + sha512.run = "59aa375b3b953f2fab04547b3234b36fd08af39392cfdf05f6992a90ef3a52503b2e11296787763abb9ce6251f9cc2fd062d78133038ca4a92e1b06ae65118e9"; + sha512.doc = "52252a2265d9bd48f09ddaf5f1517a6a74980897f0e8e0ad7ea71bafb194ca5bb98386af537ef2a4fb955e62ccba3d16cc1ebbae094502f16ae3bea0c5073c79"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + c90 = { + revision = 60830; + shortdesc = "c90 font encoding for Thai"; + stripPrefix = 0; + sha512.run = "2350e99bfd047ea514586894d20bd37dc778c74fd4c1848063ba7d53cb59ed5df36cd20fd51140ede8af7f32ed7efc44e1d4f3db4a0baaa7d1439941ed5297a9"; + sha512.doc = "9561381312a2e3fcd6a03da1082e9bdb5a2c30e241078adbb70d06060a21674fc8a40c5cb81ce87d31ff99c168d73e9b4074cb3a6114439d5a441dd0054cc682"; + sha512.source = "774c2aae917343ba9dd78785d2dc9123bf1dfd0920b638ee991a92a9a87199205fea04ea36304806c7213a2bb4ef06459f385558c9691a7dddff69cfe4d35fa0"; + hasRunfiles = true; + }; + cabin = { + revision = 68373; + shortdesc = "A humanist Sans Serif font, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map cabin.map" ]; + sha512.run = "8227929382396ece0ddac74095387ee0c96d2102fffe5121f89182836792933a6ad66ded538229c5bd12f65fe7518d00a333835c17537761f309db578e81bd3b"; + sha512.doc = "95353266181cfda03973d68472ad564185abac4d828141e339183f69380f99151e0a3165f099235db54be8a3ee35ffe069512240633972f4b7dbf14ca1e06126"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + cachepic = { + revision = 26313; + shortdesc = "Convert document fragments into graphics"; + sha512.run = "a0405befc4ed9217cedc4abc78c355b869bb803fa4be32245198ba4aa8151884ace023b3465db3b4757c923d0425fd1d186e25facd7c29d05d5072668a9f0e3d"; + sha512.doc = "93108475f74b2356cea79a8403729df7c24e95871680b0b53f9316a7b158aa973ce108632a121198459352968bfdfd79f265d4aa301ecd00ce55cf56db5f976c"; + hasRunfiles = true; + scriptExts = [ "tlu" ]; + license = [ "lppl13c" ]; + version = "1.0"; + }; + cachepic.binfiles = [ "cachepic" ]; + cahierprof = { + revision = 68148; + shortdesc = "Schedule and grade books for French teachers"; + stripPrefix = 0; + sha512.run = "c152dcc24128f0f6e9424012660f2620e385f470d92dc9ed530eb530d11b1fc3aac6e9e3466fea3548d16ac812c89743865ada67a3bd820cd37601f754506939"; + sha512.doc = "1e203d56ace798bff086a9a3eec3a3f110c5e2c4ec56be637ffc70edca4b28ea8e5bcd8804b087515431460b48ad4863d3c15a1496724e5ad814cac79dc5e7ca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + caladea = { + revision = 64549; + shortdesc = "Support for the Caladea family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map caladea.map" ]; + sha512.run = "d5dccec03c75e7ae315067527ae4d88515d6bbfb6d9b1336420ea78daaa7718497e8040f75a0a531c91c2b0eae728cfddc824e623bd5c73471192c809550dbf1"; + sha512.doc = "e3f84460394d1a806a06836535c8f9110715608e2110743863e4c9d37abe696a3169e904a4ef507105d54790af4165d3a5a7559b28568b86b73761975b8c0b3e"; + hasRunfiles = true; + license = [ + "asl20" + "lppl13c" + ]; + }; + calcage = { + revision = 27725; + shortdesc = "Calculate the age of something, in years"; + stripPrefix = 0; + sha512.run = "d3f6d46166f2b37e6ee8ff9185c6ddf5ed99ca2b32c7520966fa9a3db95d3a9517e39f5e8f928332a8dba490274c4fe48e62b6ce83ca10d0fbdb9a4218e0d92b"; + sha512.doc = "4c3f1ed751005a5fc19e0ae40dfeb010ca211dbbdb7ac11c01525c7643f1e993346f1af21d411705ebcb119f8b1c20e4ad35384d2be9618fbe6db2de99e6eb45"; + sha512.source = "aa49d205c8366ad92a46195c113e69fe123979560ae92a51589718136bc8df8b3b00e0aad4d6643ca36d217be02fa61529c4a1779d6826a52f80d29649fc50ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.90"; + }; + calcfrac = { + revision = 68684; + shortdesc = "Calculates the value of an expression containing fractions"; + stripPrefix = 0; + sha512.run = "1545318973205544c136b6bc03ee6838f9496972e43cb4dbda404d2bc389ff41f873513ac0275769685f72c0222998386d2f9abfed686570d98fced592414443"; + sha512.doc = "d9bc62d0d8f95ef3f34b801eaf612e5506c2c3ff855bac800a6bf3827fc3b1e572390691e04425992604e2d6404844db3fdaba566f98da46d67877a8d077fb10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + calctab = { + revision = 15878; + shortdesc = "Language for numeric tables"; + stripPrefix = 0; + sha512.run = "20ccd46a047987004eef78f75b18f49b1e3001e240604e2657e23e30c4e6f286ba700cb828eeffbd608880ac4994d4a3cd2d67aa336957fecd1d3ea8a48058b1"; + sha512.doc = "555a9d966fe556e8aa1dd39ec1ec327995f62fa447bfd2bbb8efe47ad667427eef249c749f9d2c0436c16e31e6fe7b0dced9b449da307411ac186d30c2407270"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6.1"; + }; + calculation = { + revision = 35973; + shortdesc = "Typesetting reasoned calculations, also called calculational proofs"; + stripPrefix = 0; + sha512.run = "d60f9face95cdf6944363ce66b842b2a695b468e77193785564d1697244e193cc0dcf462e7a13c8a22eee173d5d4cd192ae59bbc68e086ac27c92d2dbaf6f156"; + sha512.doc = "741f4600986798bb191352ef98ac1a398014f92956267c36ca1834d95996008204107dcd8575077d7eb2dc1ddc627f03ffdf071ce0d8b2646809063eba59625a"; + sha512.source = "010291ac9b9d4529283ae9ed9054a2d797109a5eba2e999d26c4e847bba6c0bbb3a357a76526c77549636d2446d38fca2b6063ca238f5912c1aced9e2b63bb8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + calculator = { + revision = 64424; + shortdesc = "Use LaTeX as a scientific calculator"; + stripPrefix = 0; + sha512.run = "de62244340b27b1b62c7cfabc8da5acac3da0440f3190c392ae86f6160544d3b8e44dbcf5b5c95526b87cb7a0272c63fb19c06181c2b996e6de2affcddfa797e"; + sha512.doc = "d699c74a2b5a7932f454f121582ab4f03482022aef0b145f21ce04bf500f01a6504a39989fe22170fedb27206274285abff54a1fe59e2804a91d05c923c88e86"; + sha512.source = "819c7159200ceca98ab34302951af308233a12a18daebced97370eda15e41490c83b577c3f3a0bd375601f1ef4f380ef3f3cc3e4f6df84b4c3a0d9ab9fcc7a03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + calligra = { + revision = 15878; + shortdesc = "Calligraphic font"; + stripPrefix = 0; + sha512.run = "9479d6b5ab33b12acae5cb3858c218dc4a1e1901c4006dca5160778798813d333b2e9e615eeb29e01007084d8479c58573f88ad5e282dfc06f3f5a9820df482c"; + sha512.doc = "05e7b61864f483f0fc50d4680d80a395282a5c7f36b7ccaebb70e1c24cb5a101c4ee5accfec8d12c7fac0e7a32851dc15906267b93e6d75094b7ac646826dead"; + hasRunfiles = true; + license = [ "free" ]; + }; + calligra-type1 = { + revision = 24302; + shortdesc = "Type 1 version of Calligra"; + stripPrefix = 0; + fontMaps = [ "Map calligra.map" ]; + sha512.run = "325764734735203d4e355d33b30a289d699fa10377212e39bf33d3195f2dfdebd4397785d69d6ca392e040cd2fd5bad20b0055b5f92620149fc96ed0d6d337a7"; + sha512.doc = "c1acbd3ae35c423b9414b5e132e1a164d4b102ecf9d7305548bb5d203a8d3a25309e2aa5a5d09277d310b9446013ca2db65f9ce6d5783432ed325838bfc9a48f"; + hasRunfiles = true; + license = [ "free" ]; + version = "001.000"; + }; + callouts = { + revision = 44899; + shortdesc = "Put simple annotations and notes inside a picture"; + stripPrefix = 0; + sha512.run = "a440d3815f5c5a6d291ce4d7a20bc8483bebe190a0e6944de9f5be78a23eef119f41740ca0fbae4515b6ea7f2aefff90a62005883c44e8d70c6aec0a58c777ee"; + sha512.doc = "0801298bd110f2e484b45c66626c790217666f3351aeeab87881d7f32ada1868222a21f2a7861afaacdea302ad269d2062aaf5fa9d13fdf8efb93efaeb499bb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + calrsfs = { + revision = 17125; + shortdesc = "Copperplate calligraphic letters in LaTeX"; + stripPrefix = 0; + sha512.run = "34b5315e9e5e0ca532733f7b7ebe66e77d935fedf0e042aec63fb7cae257a423db5e93e288b9e1dacb26b0b75784eddffa8b565acfa537a7d970297f71e63a2e"; + sha512.doc = "2378c004fe888bd2d60d0830ec98e805a2bdea3a5a6f4161dd3d4cb56c437dabdb579f3293845a10e316cd868725abd304ecb8eab55fb4c728ed5bc0d2073673"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + cals = { + revision = 43003; + shortdesc = "Multipage tables with wide range of features"; + stripPrefix = 0; + sha512.run = "75321e774560d7a205a7bf6b7d2d512c6aa9b5f38f6116813ff43ebd4d1fed23ebe26c235b278ee5723062e49630fc5f9480dccbe5bdfa44f5168f18657ddadc"; + sha512.doc = "15accc06e3de07dc535078300efbffe305d8e26a3aa0e81304de37090500210932f08c24454d0bcb5d93ced903832891b6f987525eb64d04b1a7bfe577071153"; + sha512.source = "59a99cfdb7923d0e9edfa656f53825194b3c1ad0cc554e28ce792783d3196b525a9e7dc0e5ef8dd824e4d35b39a71946c579978520c7fb87de24f1e8b91c1253"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4.2"; + }; + calxxxx-yyyy = { + revision = 69266; + shortdesc = "Print a calendar for a group of years"; + stripPrefix = 0; + sha512.run = "329c4f91442d8115c997bbab09ae77e29bd2a8146d3109328ed9e08a2a4080895618b9a8467d4827c14ef65741b1380771409909f80d0b5fba6f527fbc900411"; + sha512.doc = "8c3f1a6a168e5891a07d39c7f67270adc521c19cc4be6a302dc779b9bc5284bf4aa7d9b3caab22b5591c0483800ce62f0647bf9e14c83902777aad0070e4193c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "20.24a"; + }; + cancel = { + revision = 32508; + shortdesc = "Place lines through maths formulae"; + stripPrefix = 0; + sha512.run = "ac6e6b642dde29e32e45d7a0e967370c1f7a6ce604075cd43c57b1ee002e75adbe4fbc81de30e8d252cd58f2ac091503595a433c5de898deb3bfbdbb6f2d2e62"; + sha512.doc = "5af252a521c1976166db248c4c19d4fcadd32ec9801e0cd42b73e0a3a0adc461b88d765b90dec1af859474fc64bc00cbc8be44450cb4da6b43944c8fc46ba670"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.2"; + }; + canoniclayout = { + revision = 64889; + shortdesc = "Create canonical page layouts with memoir"; + stripPrefix = 0; + sha512.run = "850e180dad92a7082a314535fedf7e45e3bc3db48db0e7948287bf7782c2b1fd13924e666ca0edecc5fdd7b00fb55cfb0c5c17bd51019a21fd10c7116796b6d7"; + sha512.doc = "5ee3ca34d87e3f9cc70b606ebc5a8f7918d86284837a3359ca8d4dde50ce36e43a651e3cb6327f66a91f23fd7d5edad4a037e99745de3e5f23005f59517fadc5"; + sha512.source = "040ce827288d3498274c9df72b4b1a7ab50fd8a5e500cf66fe4ee0f4c211a356c63a9666a3c9003b7c3ee35ce1dcd1feb16828fe1f119a0684b24676121e911a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + cantarell = { + revision = 54512; + shortdesc = "LaTeX support for the Cantarell font family"; + stripPrefix = 0; + fontMaps = [ "Map cantarell.map" ]; + sha512.run = "37fd0c1986f76d823be6feecdb76bdfdc8222872355d0cd66c340950ed0ad90e057acee0f90ad0e41fc77b61a682f8bd390d98c8ed559015f9a0a65014b11b2f"; + sha512.doc = "17c118e49fb173158f7c5cfc31c1bee1063cd38bd1ba976e2629a648c795295e3796e845b735cab07de99296088d09ed9d87ed92c22af3e1dd1ec1a7a90a04d4"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "3.2"; + }; + capt-of = { + revision = 29803; + shortdesc = "Captions on more than floats"; + stripPrefix = 0; + sha512.run = "f3b1b81aa5a8c2ed9d5ab94e2e242442674af957d3f987b0db459ff8ca920abaab43d46db234b92ab588bb5f7d4c587eccf586a87fd492659f5b088760859c62"; + sha512.doc = "a8fa6b2a0787a3e52f3a9a22482ba9f9217ae97b985b4975c690d240ae040f4f1e17c3ea7439d53337e5a0815a66754d0e6c528417c04d7c6684d28e869f71d0"; + sha512.source = "87d4bb47226cef478ada2482605b925a3ebb3c1ee1fc624f39e724a857101b113856d99bf659ec5e01ce6773e0f695e424c41ba0640f23a76e9721d06a1d4f56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + captcont = { + revision = 15878; + shortdesc = "Retain float number across several floats"; + stripPrefix = 0; + sha512.run = "b5002e8ea4fc8ca1840190e8a2d40540576dc5e17110da473a8981198e3f24c858644b181545be3bed6275cd0e0bb9848a6058adfc8dbef26956e0754c4e4699"; + sha512.doc = "91bdb436163ff745f3aecc67eec747ef5a1853035d86258bbe23a080a92b3393f72b4029bad719765663c94e79217df4edf753be930a3e4b62f0b999c296ea86"; + sha512.source = "9c9f8b2785ce2620db8e5c373cd2eee4d9aa3cd8eb47c648625ca7250e7ace861d9dbc31432a7dd7d0f6c7ccd48b43aba74df519d72e3fa1a3c9546de946e591"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + captdef = { + revision = 17353; + shortdesc = "Declare free-standing \caption commands"; + stripPrefix = 0; + sha512.run = "c24a7d66c1daa3a9c336a8555286876aea9e969a4107c42c258f0f4c9a88070316df70e0f2a860adb6335a33e49cdd7a9ba8391255f1e1fb283bd2f6a7e7b343"; + sha512.doc = "c0a1a4584d0802eda39812d2c293fabed2487b0cedb57df622519d5857c2ef10e54e66032e9e9ee9ab81c757fb827eabf422b1bf2ab0ae6f7c22ab3aecb49a8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + caption = { + revision = 68425; + shortdesc = "Customising captions in floating environments"; + stripPrefix = 0; + sha512.run = "21a36ab8ece42716032a15f3c105ba32c5697c4c88fc8b383c66bc6fe7ddd4969e12721e94d79df0817b02b43e498ba5211ef844e320bd91ccd9ae24e6f28fec"; + sha512.doc = "3a13af008ba73516f8d4be8ccdeda4b18fda2bf9462fed32aca7917efca3e5185f77810900945ed518fef5d81e2629f89cacad5564462f40bc0defe79451a415"; + sha512.source = "160a286e1145f2669dcd1abd651cf2fd725ceb95c87506d0844e95393be85624fe53b2f549b7006d8470449ee9305aeed2e81d1a7f2c69cd2f38a26aaf4fecb5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + carbohydrates = { + revision = 39000; + shortdesc = "Carbohydrate molecules with chemfig"; + stripPrefix = 0; + sha512.run = "dfccca523ef4ea2c9bba9ebdbed7f6bbce1ab0739be02118231d1eb449bc826dd5e96406d5e009239a1bf25088e8df289e2e66423a536d76cf592af1a50f276a"; + sha512.doc = "67de0675fbe00573058f428d34779b3423d1c9a7d47be5f8f1c3ba6b3cfb6783f5f1a945c1f201bb719bfe835ef035dfb56864a13ba0f12e0e83ef1ca0ce059d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + carlisle = { + revision = 59577; + shortdesc = "David Carlisle's small packages"; + stripPrefix = 0; + sha512.run = "345c61b7eb6637e73a66b5f9183ec39188d4e2ffdd418f12d8ae70394f447eaf8a5d8c62e1adfa515ab7879e1afac4163957ae0b6facafd9ae6ad6f300acbe03"; + sha512.doc = "54c785d458a5a2848c2ae5c730215df4a66a7dc523605d3a9a8985cbd65677627a2a5f5800f055da65ecfaf096fda609f4a7f3a5ce22339f0ee6bec635250ec7"; + sha512.source = "9acfe2c47c7a6a9ee358bc79482f2b21f6ab735fe25696e04a996cfad798a0461dcc0bccf6ee7fff9a6b9e22307f5312e26f9c4fba46a03f0289b8031a6bb97d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + carlito = { + revision = 64624; + shortdesc = "Support for Carlito sans-serif fonts"; + stripPrefix = 0; + fontMaps = [ "Map carlito.map" ]; + sha512.run = "7b958d163439d9f3e7d6f8cf998beb799013a051a1b79719930d0efbc13e167170e330908a947a9708f55897e6c0e56ea020fee5876b6f3bb9e76dcc5997a66a"; + sha512.doc = "6718aed70469e95dc4d077552b453f81c9fbbcad6201194eb264bba6aa9c9f9b1b1b09d1ed987b963d6b09e13afe5dfda1436333f0c44ee3c368caa90d790613"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + carolmin-ps = { + revision = 15878; + shortdesc = "Adobe Type 1 format of Carolingian Minuscule fonts"; + stripPrefix = 0; + fontMaps = [ "Map cmin.map" ]; + sha512.run = "61ae809b5e4e7ff493de30ebb825870ab9caa8dc64d6d3c82d4654fece82dece4937c798e3c1e5086a84411edbcaf8c2ea777a9534865b38d4bc5457ae59aa25"; + sha512.doc = "284d9f740d1e4b1a4c989b527bac80e54afa74013d1234bf9e1c2d42ac2ca4387c3b0d24004818e1fb92b001582114a4432480804c721cc7df0bd3b85835f111"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cartonaugh = { + revision = 59938; + shortdesc = "A LuaLaTeX package for drawing karnaugh maps with up to 6 variables"; + stripPrefix = 0; + sha512.run = "354baf8e8cffc0849494e4f79a64111bc0fd4a63e2454b4d4763bcf0c25511e4fe70caf048c628695a90c55c04fea0fcb026a57e72131e746f9d795fbf54fc82"; + sha512.doc = "3811c97d39d7738ee26cc40f839eaf9f51d798d7f14a93c5906ea977a20ff864f84772adf3815216827894fec67f21c488797b4cf0b4db3c7ef6c551637d0493"; + sha512.source = "9e417dd74451cf07d406f0c085231c175ba5bed083456a06cf9e0e3539ff32b2c6d596190ff7421b879572f0f568fd775c66e4eedeb776e69d6e5dff461dffdf"; + hasRunfiles = true; + license = [ "cc-by-sa-30" ]; + version = "1.0"; + }; + cascade = { + revision = 65757; + shortdesc = "Constructions with braces to present mathematical demonstrations"; + stripPrefix = 0; + sha512.run = "7411f24d41aae23f52a2d611cc76ae4f4e6895c8cf0d038b7e4561f355d00c21a6164f0fcb866599b5637fd9cb5e4fb34e6507638a5fa7370ade5fc1df1ded15"; + sha512.doc = "dd52dae9ec2eb88f9c8db29eb633e110132795e4c995cd6980bc68e009205bf76c5cf513a47df1391e300c886f3aed78f5ea6187dacadbeee44cd985efcd749c"; + sha512.source = "42e021863fefc55b730c35bba7966f2858567efa2ff3b0222b4bd9f2e47bc3ce8d44d3f2f01405e76831c2af99feb96d30c2a5f1974a18c2a1e84326b72180c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + cascadia-code = { + revision = 68485; + shortdesc = "The Cascadia Code font with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map CascadiaCode.map" ]; + sha512.run = "3164663a54bc3ffe39aee9cbe9501a3d405fd8879059081ee2f0f66bb523686e25f3a7fdb69e61cb623a17ed21f21b0d6752f8c05b09590672d04315d5d6594a"; + sha512.doc = "c84b14187b080c744a33319a4ef791be09b4517d8cd0e9ed2dbedfbb37a09785dd6244a4e4dd1cf67cc8f6ff608b6ba8d2299c7074921f6443d6208c702feac7"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.2"; + }; + cascadilla = { + revision = 25144; + shortdesc = "Typeset papers conforming to the stylesheet of the Cascadilla Proceedings Project"; + stripPrefix = 0; + sha512.run = "df66bd91562f3678e2ef42f16a4a0c4af95209fb28b1176b5b63968632b3235391180b06431a42afdc73a9e4f97f47c8c954ed1ef2ccb746cdbf1d65058ad919"; + sha512.doc = "2c15b786f550642c26cc8f5e0151dd5b31e964b46d59837b3f1ccbe118fba6ad8f06f86c6a5bdc6a791615929bf4c9b7c2287f930d1ca3c8bd6c2d0d7ddf64b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8.2"; + }; + cases = { + revision = 54682; + shortdesc = "Numbered cases environment"; + stripPrefix = 0; + sha512.run = "281f9d13741f16fa07f93bbd2628f4da34db07d5005b6c1d7994ec7713aa100f152efd066bf712417bf6dc3fafb496d0a80f65cd2127c4640ab28cca6a4ee1d5"; + sha512.doc = "89aa9005cbdecc26e0b2489b544cf3f504e952eddd9a28dedd2a2f555d3e0c5f8378ce1ef21dd78fbc5ebac616cdb7559f2147e143f3cef12286a3e33d9b5616"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.2"; + }; + casyl = { + revision = 15878; + shortdesc = "Typeset Cree/Inuktitut in Canadian Aboriginal Syllabics"; + stripPrefix = 0; + sha512.run = "1536d4fe6c0cc647def47d3686ac73757da8b4ebbb99a5188e78944d59350c0da731f2e51a40c94a1e05b225a793f292766de4221792804887b4350631c8a24b"; + sha512.doc = "74adbaee46656ad57512a11986f834239d60259eb45014e2c738f7f5b5bb47897185528c0feeb96c45ab7d6c04e679e1858417a93db791b72b5eea1cf828c0ce"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.0"; + }; + catchfile = { + revision = 53084; + shortdesc = "Catch an external file into a macro"; + stripPrefix = 0; + sha512.run = "6e01a91913a2a81224a533eb7f119283c267682efaa2a6cec11e9db7fc593b0d7a6830b83e482f22e96df208dba598b1c6596a78ae5d4cd17aa4c9a50eeaddea"; + sha512.doc = "ad0d938e0bb4fe3d307dff1afc5ff93cd4b76948a88f88a65e3d036fe679cddc91c52e64febbf887c766d423fa5d94371869793c93138eeb919188b9b44234a7"; + sha512.source = "e254709b62517cbb717c43e894c17a72277465504bcbfdcacb2bf7423173e0476cce8355acb9772ca74fb267abd43faf0470ebf92139dd7847c756244efbc3fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + catchfilebetweentags = { + revision = 21476; + shortdesc = "Catch text delimited by docstrip tags"; + stripPrefix = 0; + sha512.run = "71656fb162aae4fccf15767911b8524c4f3a72f4c6fbeaea45a3dd9593489ec7644e7c10ab61a49cdd125ffe56e61331c30e35a10517720948d4f03b97b20056"; + sha512.doc = "4071d6d6ada488b5bbbac0df3b7604939fafbebc17808430d8bd389b86a8aeca0df90da77fb00f8be14af9e9a79c45bf5a2dc0b9ea45af34f60cbce83810e1a5"; + sha512.source = "0d0e6436d1e065fd518a743fd39062f1ef9a86f450130a2339ae59e5af0a9fd0ebeaf72a66301c8ad42c6e218a01bef48c977044cf284c98cbf25e6c8f1773b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + catcodes = { + revision = 38859; + shortdesc = "Generic handling of TeX category codes"; + stripPrefix = 0; + sha512.run = "6eeba6d0c7435050e5ca07a6b0a24bca1714a9ba3d3a20168547502c2ec954b9d74918767c9728c1595355fdb84eb74ef258fee86cae1907fc5b186ccac0a939"; + sha512.doc = "4dbf09f34abc39d9aa5003ce3defe4f5a04b0cade5d6a848bbde4ff3f35ff6bd511b8dd8dade14f92b1ba38bda2595da65da589b0236920c7aa340d245e0cb7c"; + sha512.source = "157520a8e968f5236add71d55aab0ddec48eeac801349ae1900cf70bcaf1faa4cfe98632ac5fa41cabee6dfb6fa46655a609023329d161cad06ece33f10d03d7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r0.2"; + }; + catechis = { + revision = 59998; + shortdesc = "Macros for typesetting catechisms"; + stripPrefix = 0; + sha512.run = "3994f92840c261d92ad8ebcf3205491146ab64cc65b7685557d2b84e3ef73058f3e968726b157d13e986a5ca40aeac2a9ffd48d019664ed2da4f01589ef4f0df"; + sha512.doc = "8b44ed2ca1ed8abbd5acc75074a2e297cc72632cda43a7049009631a79e459052808e51b169bd0be7932245ea2539223587b38cdc6d06e67c16da457b7036560"; + sha512.source = "43827e136677ad8523499d0b102a7ad4be3b95a9818a8720065d98beb07c5cf1a7f6b36c0985b7f4c6fef43fdb233a6980a5899697297cf3ad39e0da6db6c33a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6"; + }; + catoptions = { + revision = 68982; + shortdesc = "Preserving and recalling standard catcodes"; + stripPrefix = 0; + sha512.run = "d58647cd52548a6ceb0f6a47ea20ba9348e1edd55f5514c5264857d99be1085824c4f75c2f7231ef41a1ff5fd0274fd5e3f5dd1b91241179d1bab417f2ef100f"; + sha512.doc = "ef09ecf5c1bb066ae733dc1dc3aefc8f6c8521c8596ff8b45d42ce8315fe49773b6c7d41d632eb342ada05d16784faac3cdfce51af9cca4dab7c9157a7947867"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.7i"; + }; + causets = { + revision = 66359; + shortdesc = "Draw causal set (Hasse) diagrams"; + stripPrefix = 0; + sha512.run = "961f6affda4b94a2f67e1acfd62a12439faafc436c66320b04c3df11383016375f0bd284836a0618def46e624e7e7a5f46524bfb9c3113575c88d490d117a417"; + sha512.doc = "241ce316af86e3f764929fa7c601a1533b86f85dacfbf2e81acb487b312c7df9c2a9ef1ddd047a977cc7eabaf4643caeca7f5c07979f9509867f3d522c507873"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + cbcoptic = { + revision = 16666; + shortdesc = "Coptic fonts and LaTeX macros for general usage and for philology"; + stripPrefix = 0; + sha512.run = "7d48e324b5c5ff5b0755903973e0b439025e98277269f21cae33709a6c39eb6df7cd8f054b22fb8b1c072cabf9e92d0f1456cb41fbdd5a6e99bc0d63952e6c3c"; + sha512.doc = "e7e33c5af518e7fc4f8fb15af79a9aefc1ab8cb4401d0eecbd6b418acfb01c2fa790d4d7f55206ec9d6d865aa177b2872f4d742bec2991e7118df4b834341af2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + cbfonts = { + revision = 54080; + shortdesc = "Complete set of Greek fonts"; + stripPrefix = 0; + deps = [ "cbfonts-fd" ]; + fontMaps = [ "MixedMap cbgreek-full.map" ]; + sha512.run = "0e7cecfdfa102113f75f46f9c8bc76f578fca6c967128bb8b203af76cc64cbefd123ae87a8b04a9780f498517bd9f660d12e2dc586220f2c12cc8aa76f1aa40a"; + sha512.doc = "a069b7ca1b46e5656a05a5e38a0f9ea5c3ab1e5301edc47d7fdd43817a8f5d641980c2e54b7731dcbcf16e12f0dff17df5a816d66f7bd2b613232788815bb8e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cbfonts-fd = { + revision = 54080; + shortdesc = "LaTeX font description files for the CB Greek fonts"; + stripPrefix = 0; + sha512.run = "af6f11a601f2ea3fd38d639beb3f836becb71aca7d282f5d0c7e020e9f73269c560ae3ac08d93706731872bd1a271c75724e1049c2dbf65e9ac0ea8f6c9b4724"; + sha512.doc = "8fb94b444966e6e3bd63b5b3ea62f661c038767222b08df2bd288965902cf152e1af4ad4b9d69859d11b1b558f4015b2f304afb0a43c356ff663498d830e1554"; + sha512.source = "d21d517c40e8c5058c8e610ee0a8ebaf19d97a6b284b9d16ceafb87ec401b4110a483f6ed00ac626fc5ed2e1fd97f9cce99df5cc12e73ee7b92b04c84972f280"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + cc-pl = { + revision = 58602; + shortdesc = "Polish extension of Computer Concrete fonts"; + stripPrefix = 0; + fontMaps = [ "MixedMap ccpl.map" ]; + sha512.run = "3d0bef5ca5c37f1cae98bd0555d714ed4408b6fde4ffcfa78cf2512114c9aa09b81b23bc6d76705f64dd08ea493add2027e7af997357ff5c4cc360deae11ba92"; + sha512.doc = "f5503008430e969a604973e4481f8ab51269a2c3570f757787eb7a1a9d11b8508ec7ca1709a21b9e2299059a9c8ca20e5806093bd24166eb44e167c06e4fd0ee"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.02.3"; + }; + ccaption = { + revision = 23443; + shortdesc = "Continuation headings and legends for floats"; + stripPrefix = 0; + sha512.run = "f002efbd7af71c108e041daaa182a4432d1886a058cbfda2da7fcf6c0f75a217d04bbb8498deed29c7f03a8d22d4d2e24327e6a3b284d38c7b37200431f17918"; + sha512.doc = "a3d2f92700e3421c37a666093944ae297ed39a35d99d6971978f5707619046603fad06b84aad55f41d3af08725535470ccec6d6bde3ab8f1ce4f0a53038e9ca8"; + sha512.source = "83a8ab7b7b72c156ea07bf7d19c759d342187440574dc82dc0f5e683abe490c3b408d672464d142922229593a1f8363881a48475da0884920484c6057a40358a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2c"; + }; + ccfonts = { + revision = 61431; + shortdesc = "Support for Concrete text and math fonts in LaTeX"; + stripPrefix = 0; + sha512.run = "fb111cd33ec70fa672e759c9fc2894f6b0338e40bef7d1b2fda2c37a437fb1a5ad87ec87169ec389d9eb21068c890c960a5cc24efd6e443b5995d5001f4f7115"; + sha512.doc = "b0e9b5ce6010b03afc52b6f4f7a978e8d5a8f1a382750bdbde0b758209e7f8dc57f84d950163e64381c2d7a8366a50a34c02286cc2011b9cde3e0d40810e01a4"; + sha512.source = "30a301941132ba7b85c59b7e806d2b28ff314bcaae30c228337344f09846cc1051a73df1e4a2b76e36d499095c5a21000f250ec13f967a6080280ea120dbecc7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ccicons = { + revision = 54512; + shortdesc = "LaTeX support for Creative Commons icons"; + stripPrefix = 0; + fontMaps = [ "Map ccicons.map" ]; + sha512.run = "4e755538440c87c2bc1f8d57d41ce78ddaeae9a0e3c1c85aeed172c2a25e952963b26245cd1ddc3222285c883ed4574ac4228d17f1263db31cc330bdb1f345a4"; + sha512.doc = "0e4216adcbe01d8feb95d31e2df143ad739f66c2239196f9f5c58638a87d320949256baee32703663d6116bd13b4af607dd38d16d4ccae218af55f5402308c03"; + sha512.source = "af84fa01272028018fbcb4fa9e04971b9580b1e6fd63f0e07419a088005b75e852a122a5ee0416afb7391ff165ae39549f8931a157aae1ea272d97be05132e8d"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + version = "1.6"; + }; + cclicenses = { + revision = 15878; + shortdesc = "Typeset Creative Commons licence logos"; + stripPrefix = 0; + sha512.run = "dca388e065610abad24a76f7dc600d9ae659973fbc47f4fc2157958aa2850d9c3bae7811418bf76effaf696386a62584c8a2ff158e98ec7a971bd1dc800424ea"; + sha512.doc = "eb710fbac41527da39c26d5d27aaa84faf05e380356e9c3bc1a0c0fcb4d2dd5412f304d323ccf13084dfe8d31243698350fbdbefac07fff6cfabceed9f4d842c"; + sha512.source = "d20b1cce1635b415d7368e49a9a32ee3a61efca8d0807b67c7e92ed59604fda1fd9b9d168ac23d54b90e396d971fd421463eb1ec77009d3e077e474166afed55"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ccool = { + revision = 60600; + shortdesc = "A key-value document command parser"; + stripPrefix = 0; + sha512.run = "2b125b2e1fa1bf91abd3968749d422873993a6d34df66bccd2fdf8b71338cd6039be8e584f801fa12cfc90a59e32b3ca0de53ba07bdaeeac745aa2a73d05467e"; + sha512.doc = "05db77b09aba0d4ccb3712a5f5086c93de9ce70e067bab00030e96a23b058b76b69f54b379ac0ad8d03e68a3986687b1ce18a980d9ee5b7e4cb80dd2064294ef"; + sha512.source = "dad84e19fabb04f783276ad11c389c9ab0425d81fd1e91eed87b6659247613bf759064e94de39904d13148393ec34ed0567e2d680c8b794113e844feb86d8932"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + cd = { + revision = 34452; + shortdesc = "Typeset CD covers"; + stripPrefix = 0; + sha512.run = "8b47a219e4d40364e1a4ed4d13245c0c9334508ffca0cff565a8d8856aef32184bdf0a19966027fc4e958a06b4f5a53bfb66188c6fd065a1b3b230cf1da2f484"; + sha512.doc = "5ab78083715332130aacf3a97f6280f2533e7f9383c38ddf431d3486c6e88589cc69b7cd760088fbd2928c9b349ff583bc275ce8d80590234deeaf1e1a23b4ca"; + sha512.source = "094b4b41d99fcc81c4c02ec7aeeaa999b3e5ec7dd4984976021a1d75c5bf9c5a3e3f13b0acb939c14f80ec05b3843fda7558aaf7c324315434b69954084c57ed"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.4"; + }; + cd-cover = { + revision = 17121; + shortdesc = "Typeset CD covers"; + stripPrefix = 0; + sha512.run = "345b001cd40137d9739a97c3c06549c3c7b761f56f61109dd4908c767151515081defd6c432232ec7a9fdeb8e85e95258ded345facdef0cf6bffa82bb5c39fbe"; + sha512.doc = "f22c8eccbecb35d4c3c01788c0eb8ca793fbaf7b97e2bd54ec79e78ba10c13a4eef46c5eee70f1550cc7c378bb01926e8eecc6d41916df22a6e615aacd2b1e75"; + sha512.source = "d8ecc73c18376678b2ee97b8bc81aebae7860e40451427e03f382aedbacdbc17a7761e8a78e275470c36927b3461c422bc62462163c6d92c509eb50cfa75598c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + cdcmd = { + revision = 60742; + shortdesc = "Expandable conditional commands for LaTeX"; + stripPrefix = 0; + sha512.run = "677fd271bd209933428d0b655529b7e6c4bfd6022c37c3ef5456e1ce6fe25c599a9883474c28dc9510e293a2ee5e87a49b797bb562b750e888c622bf6ac6d37f"; + sha512.doc = "bf6d3bb4422dae82e06d440713518dafa98ab7ef7b527268050ebe51880f90e45b76281c1d693f1b40e85f07d7f6d395f51ce2c642094e326c3b1d08534fcba2"; + sha512.source = "50a2f50cc7432505c608aac180f7631d831742c8047a8f3da25bbdf6e83efd9121fe3b5256a2b139b1c3a29da4b2003304148f5f48c745734b811c1d853016de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + cdpbundl = { + revision = 61719; + shortdesc = "Business letters in the Italian style"; + stripPrefix = 0; + sha512.run = "ab13c84673df8a4da5b694256ab14f3c4fab34ff32e8d2faa8712da128baefcedc19c8bcccc77a585171d25e17369af274176971a33679e07d2bd138d4766603"; + sha512.doc = "5ac8e2878434ca3b30ae20c6d1ca7c19b7ac12a38f9598d265ca6c7c214beccc144b75ff5962faf3b58b74b1ec91ab2c265d5429b98206db1fd1c558fa79385e"; + sha512.source = "b958ade1a2a9f9b685c6d7821e1a97304f0c07b9405a95231a166fe5d8ccd8f89dbf168d38996e1e633629042827cb316b81754996d9b09f4d951573967dcea9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.36d"; + }; + cell = { + revision = 42428; + shortdesc = "Bibliography style for Cell"; + stripPrefix = 0; + sha512.run = "917431174b203fd839d3cf81ed965cc654d66597246ef7a4f9f3c3a945397b546eef1e7bfc4f9fb52889e149ee2fd195dd559c317472831e66e0fc3253a6c22b"; + sha512.doc = "3cbf1ffa3902f49c155f2ee6b13e24b9abcbdf50da4668042dbc720ef20f483e230fd2ffdc8448007df7ced1ed34077811199cda4fbb35c104dce73084215bf4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + cellprops = { + revision = 67201; + shortdesc = "Accept CSS-like selectors in tabular, array, ..."; + stripPrefix = 0; + sha512.run = "81b8f2983c9425d7b95d916fc5f1989dc266154d4cea7c48165265076f187c82d256fd98989b750cbe15db64f6fb4a935bc91ae67718b5541ed695ede861c231"; + sha512.doc = "a88187cd20bd8ab41077d3221dd6f804c310a3f7e53e1e600872a4edc65dfbe1547ca8599c42a9a10d4d61ea89c0a8da2cf4d60680706605048fb728e7f93129"; + sha512.source = "1cda598a44d2b5c8663927911a291d91dae59d5b0169d34f386910877916a7edd6018549ca36a5c317d33c93096ec77dbdab5528b4fc41864a140aa206112c75"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.0"; + }; + cellspace = { + revision = 61501; + shortdesc = "Ensure minimal spacing of table cells"; + stripPrefix = 0; + sha512.run = "75c32e958beab58086d8ba91da3bf1a4a4b9f3ec306dd5369798298c45cc67ee44c591e616062072ae399aa89c90edabe597665901ec60f46fb9fcd9d4c462d5"; + sha512.doc = "3a6044a5b3e38ea425174481bf0f079943b53b9cc7d68668f5666c72c33cc5edfb82aac08bc3347225e4838dc32579ea611e8fcd2619468e080cc63c11a38da3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.0"; + }; + celtic = { + revision = 39797; + shortdesc = "A TikZ library for drawing celtic knots"; + stripPrefix = 0; + sha512.run = "df78495c7a42a60bf40be46bf14c30d97dcd7c7d1b283f487026f7c3b6a680c750d09527cdd578f69234500eca05764792ddc90ae4dc8005126510ae33fcab4a"; + sha512.doc = "ed29c2882619bc7f076578c91cfb7e1e83af9e6960ee58af78486c1af6aeeb2b2b6eabdf916fa30ab865991c677955c0fd15a43f128aecb635ee30b3ba514bb3"; + sha512.source = "d60ef14ae649288b8b9484844fc9fbf15ce564209c04249b47c3cb0beb96c209c0401cf3f9200ca3be27ba0417c60a2a7a9780341ea311e1bc836753a2df7882"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + censor = { + revision = 67293; + shortdesc = "Tools for producing redacted documents"; + stripPrefix = 0; + sha512.run = "9f61a4830737a7ec59797489ce4fef44d5d270d1ef84b4971eda0d91bd9fb6aca0efae6a7a0d056919d090325592e459de7b9182321cf1025251a81ee9127a90"; + sha512.doc = "3cf23b7cfac9f992890f67fc86f3e53cadef7cbe2725b4a19bab144766c4f1e60a3675685513d062d5ad81b3f13b4b6864c1daf83f76761275aa51b07a130c60"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.3"; + }; + centeredline = { + revision = 64672; + shortdesc = "A macro for centering lines"; + stripPrefix = 0; + sha512.run = "b9db432378f6b24ab52c20e1189734dc7b1285792e5fc392808a04f98ce784d00ed9b87459017f1f798c5e6ff769639f650c3d3abe2cd5975306b6875e1fc067"; + sha512.doc = "023be77780a79180deae33a27b25c333f4499b302d026e5ddc34a2d1b7d45496dc0940027e7982816be0f398837ceb7b0de27ffabe0d1096c9fcab096784659a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + centerlastline = { + revision = 56644; + shortdesc = "Paragraphs with last line centered, known as \"Spanish\" paragraphs"; + stripPrefix = 0; + sha512.run = "a695c30f3b3db43c83e1ae592de9bf32b2856cca45561835e78a03808c7d3d3d8b71f4cb2cf6ecd82ff475012787f953320e4a6a5817ea384382741b7ac88cd1"; + sha512.doc = "850bd95a2ba3c9538e08163b34c900c045808ab69ab021fbb2068e1ab0fd3c5f29fca0b95864203b52704a3c33b81df7ab3cb46eb7296131fd49de71ad0fb876"; + sha512.source = "0463b1c97472750b66fed17bbe1c644b78da98ce4e02cda29cb58c4ad680124d5c5153c0b3714aaf43aab971fe38b471e7c801885d35434210d61dc43a316a43"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + cesenaexam = { + revision = 44960; + shortdesc = "A class file to typeset exams"; + stripPrefix = 0; + sha512.run = "780962e24e1dc4c6c385c18a6c95b8864b1930b2bc684d9a556a1d6579a2a8d06ec0df3fdb085c3ae8115dc72d06e376ed8ea6f6d801af07dfcbf133c9cb9c67"; + sha512.doc = "72d53ea8ffc1827f3965c6f0728aa5f2cae36f645ab10d78ff8c16a3537f79c6f53fd34f388f2991e5cd2261b366e7746a140285df95d17475adde9cee3fcaed"; + sha512.source = "e1668fb9f07baea5ccb79e2f61d672f838a83c8d5d01b3da2b3080473865b9bc8acb0165dad58aa46d1ca296e2ef8dc545db3e856d95f6749310a4c90591b4e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + cfr-initials = { + revision = 61719; + shortdesc = "LaTeX packages for use of initials"; + stripPrefix = 0; + sha512.run = "b4799007822a3bc82370b72ead503661f70cce1beb7a27bf1bd2523283a248045b0ef863ab1dd9bd93b39441e50d51fabe11a12fe6528a7966219a2da2618141"; + sha512.doc = "124dbae846ced93e4cbf5b9c16235295c7e76306830bc9e08cdb5a4e8d0d5f9deada4706c6c41cc383f440e9e874cc1cc338176787ad029f8164bbeba99db965"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + cfr-lm = { + revision = 36195; + shortdesc = "Enhanced support for the Latin Modern fonts"; + stripPrefix = 0; + fontMaps = [ "Map clm.map" ]; + sha512.run = "02e30f6d6d19bede2121ee0a8db20c3d96c26ef000ffeab08e800bb1da994dfa2cb356a6d67c815e8579566cf97b33b956c79940de61725524c4a239f7c1a251"; + sha512.doc = "32488ecec8a781f5548419a782775725e6b32276bab5e1d7f660b99468d47e71087fb35b8f4534f874b1dcf236d04eae9d7920fcf0bb46e139a4e7fedc415ef1"; + sha512.source = "643e7f1b48e3947506e97e1596972b686fab538511c2a0749ad936285c1e097ca8677730ea0748d1def6d6318030e7bb289e55d0c8f0ae9fc01fb308e974c24d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + changebar = { + revision = 69367; + shortdesc = "Generate changebars in LaTeX documents"; + stripPrefix = 0; + sha512.run = "2dda64af4a2528e5f81a1dad9002badd1c443d7f1e3cec36b9548254e5b365a641912e720779787cabc6057dca74af42db2e1ec3a9ffe39c3ae5ef7ffe0d8319"; + sha512.doc = "5e0e2766b5078d1ffe87c36d14961aca842ff7d0ee73aefc6277b730dfcf98ea573c822addb2d6b95cc3981e6f56458a3a209c03848eea48170f7452a6261b96"; + sha512.source = "ad58dc8f77ac1f4852d47baad9718fab4549d8fc0f856596cd8501329895b532346a299e412e87840de6934151837eee0af0b4ec30200c1bb99f10709901c9d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.7d"; + }; + changelayout = { + revision = 16094; + shortdesc = "Change the layout of individual pages and their text"; + stripPrefix = 0; + sha512.run = "c6852a40bc8415656b8137cfb90a79cff8f8e9938979eba4e02dadb3c5d1ffef60966f9e5779696402f2b9344026ebc1e22ddeb9dba856d779317ca801f26e7e"; + sha512.doc = "bb81e02317d12b4dae8b0886ac3222849a457563ee8c43e09495596c56482202bb702352a8551f5d760ee41a82dde6b3f3c2bf57b4671831a25805d44e8705de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + changelog = { + revision = 65861; + shortdesc = "Typesetting keepachangelog.com style changelogs"; + stripPrefix = 0; + sha512.run = "9b3fd70ebd0563138e2811ec8d8748dce3d04b18da636b884887424960ee69fdd30902b85b968ee9f545d57f8dcf8f6f137174b8ea9a7049308cd778f52afbe2"; + sha512.doc = "c729c19b2a80eca9735e2caa46832da20975c89810d3f669c93e66ee4a768877c7ff30d71b2f887dace78303773eaf549ed32a001124304b82d4d51c57cc100b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5.0"; + }; + changepage = { + revision = 15878; + shortdesc = "Margin adjustment and detection of odd/even pages"; + stripPrefix = 0; + sha512.run = "0ef1d3370affd4ffc2ef77031a8713b5c663263802d67142b10fa7fc025569b3914dbbaa5e71e2c643718940a0cb89194d79ec83a83b93fcf5d57e0bfbbdbb46"; + sha512.doc = "e3894d3a475f132e2242a6402899e8b9b6045681ce1fdb05fc5b0570e4d6b8b6980c2b5f5953602690250826db0e7dc9bab2f235d39fa5bda0e1161fd781478f"; + sha512.source = "45ba09248231ad1bf14dfa553b11172e610ae8f46948451437ce3a88521f84791ae149a83c1ff104dd0f00ea6a1a029e816ab7dbe1e38b9eb97902c4a9b9b312"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0c"; + }; + changes = { + revision = 67201; + shortdesc = "Manual change markup"; + stripPrefix = 0; + sha512.run = "c7c8f65cc8a6f94403a1c85b01eece41561eaaef39b39977d02b146ef8dfa49aeca27345eb96ad5f6ee05d3a6625aa0dec9a34def564fb2b25dceaa528d230f7"; + sha512.doc = "26796990ee809dd953fc8f5ead93517faa1bdddf3639d9d51fc2f0ab00a620fdc1950ca78a6a77cb58a5977f702a1d93738312451900ffb0a745282e777f7daa"; + sha512.source = "35fc09ca71c5a7baac4d4bd69ea38f507927ba0c82c2ad7318d11ac22d3e319f70522cedea14f2d36f780bb2c7ea0cb852a111dac3b07273df53291956e9c716"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.2.1"; + }; + chappg = { + revision = 15878; + shortdesc = "Page numbering by chapter"; + stripPrefix = 0; + sha512.run = "8286a7b7664f7634bc5dd16ae1888cc4b70e2880c8749fe2e894d209384da7a8513b2daa318a4154f9b443f89b7eb2e3c6d620b81e1bbfa1ed64c243ad57e47d"; + sha512.doc = "c0d42e7a9cbae3fc7386e9734492cd3f879ecf69551d17483c4f4516c2ea09d0b9b76914decb987f850af362e54c638af190de6d0d6414d09c49cf48c0635f59"; + sha512.source = "371b6630fc12563694db35e8e086f7659e60f49a6b881281bd3bf2c081c6ccc2af74b630b6a53ac9d8b447635f2700f3d15643a02f7d873b5451c9b43a331b5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1b"; + }; + chapterfolder = { + revision = 15878; + shortdesc = "Package for working with complicated folder structures"; + stripPrefix = 0; + sha512.run = "b5f68c160249e9cd94efc4c664a18c04e627d416b304697859144d6bbc5ef787c0f8721d19cd6aab6c60864dedc65e84b3ea9114b7c823a8131b4bfdfad0c2b8"; + sha512.doc = "43a28dd7182e02ebe0541c7b236046a6c23d55c73e36aa1a0e85954c5efd917667e1916ed0bb7000cbc5285230d162d5e844726282f0bb93ff85dfbde5fe8c57"; + sha512.source = "179e4fd7966f1bc12fa89fa36a5e292f0d9937bd5ae74dbc9ef5846b0d55fdfd53e998fdb9ea40311dd34c7a99646d2dfb309fc942c6cfa3ada312297975f1e9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.1"; + }; + charissil = { + revision = 64998; + shortdesc = "CharisSIL fonts with support for all LaTeX engines"; + stripPrefix = 0; + fontMaps = [ "Map charssil.map" ]; + sha512.run = "214d5ac5b367e863424c54f86a841c4d1d0eac7e54cb6421619906df0e6d81661ac74e6db7369281637252ff295535e8f930442851cd0268fe9d007ddf07a913"; + sha512.doc = "3f492d929afbaff4d5c1aac1d57fc719caa04e4428de280cb8f3a6d376f6f7c3084ea8ccdac891aaa9f754be12eab99ace392d4090fe692b1d195ed12b619b49"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "6.101"; + }; + charter = { + revision = 15878; + shortdesc = "Charter fonts"; + stripPrefix = 0; + sha512.run = "706efb4e3daf7c304f5047b99d1f68051aedafc110cdd51b2e3cc520ebe628a87c41579cf476978e70aa0ae920e7a3aca1082013b41be8902174975e164a8f9b"; + sha512.doc = "846ccf6ea679e3fc70192e340ce79982cd916d1383579a8549dba7125de645e4fcd4c276800bd5815fcb67d7227081a66b51f42dabebe8cf112585ce9685fb8e"; + hasRunfiles = true; + license = [ "free" ]; + }; + chbibref = { + revision = 17120; + shortdesc = "Change the Bibliography/References title"; + stripPrefix = 0; + sha512.run = "c87fc723f7d78aaf6f47f0eb34760d20c22a46983e802f1383ca4d952b354e199fe17dcb0e8b42e66522826f71f1031c59457ad4c5f5751c6ffeba66adeb4c30"; + sha512.doc = "58c43dbb1274e99ab60ae8c2911dff6d73099c02f3c6b4b97eeccaa336f56e677ad3a1897a4fd782cf97e59b9938c83f13c0741697630d2dcaa4a7daa0b852e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + cheatsheet = { + revision = 45069; + shortdesc = "A simple cheatsheet class"; + stripPrefix = 0; + sha512.run = "5d50e5bc579821cc9296209983af68f5c12f6aaea90dffe386efb85d72683c10dd518fc2abefd51687402125bdd4f108ea6325c546ed6b2216cff130abdd1a51"; + sha512.doc = "0c798c7057e6e9d8b3aabaf745b374823f0a186e95a01d6208ec22df8f733f02a86c01b35bf4dfab88837574fc63f159ffe177f6c155e52f85bc0d062966acd3"; + sha512.source = "66f00ad307295e106dbc45827a78041329bc8f4eb7fb3eff6b2c34ea6614b84496e4cec43e81213304022121268cef3e844f2f55e95c850f56ad261068448127"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.8"; + }; + checkcites = { + revision = 70398; + shortdesc = "Check citation commands in a document"; + sha512.run = "4782a9fb2223102492071b20efa40bdfaf9447165a108f680d2148c057507349a0c14f9274265ee2954b75e5f6fc8b1457115f60324e4b6598954babc565dedb"; + sha512.doc = "dceee4bd22f760a6bc1a48fa49b0c68a0579123dbbb7422ce71db2eff910156425a0d90f62b9d62c4f4763d657c552f0cc5298a8627dbe98f0d5b6bca782b8db"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "2.7"; + }; + checkcites.binfiles = [ "checkcites" ]; + checkend = { + revision = 51475; + shortdesc = "Extend \"improperly closed environment\" messages"; + stripPrefix = 0; + sha512.run = "40af84a5510dc3038c536c4b0aae0176651f01953650c1e6ec8b5d76459e7000246205d55f2b13ef566930649daf1eafc38e6d2d822787d1fa462e99837b6ba7"; + sha512.doc = "0527c3c080f502baaaaa14a398ecbdfa714cec872f6cf8391ef8a766aa24b497a0fc00012433409904ea11d7fec425dd7c7116a52e8d983bddb2633248d2b090"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + checklistings = { + revision = 38300; + shortdesc = "Pass verbatim contents through a compiler and reincorporate the resulting output"; + sha512.run = "599ed476321a825bea61fbdd468670cadcdb11249a4a9324fc88339a9445ceeced3680459dc2d27c2e6263cd207ffc0ce3b60b325d31072922bf4644478cf544"; + sha512.doc = "3f8d6eb67f305fa5e03bb625a4034ffe616a6c0223774688463884df99c337c1e5bdd76bbfa3b9428ec4812ec72388979c4252ba7407ae8b79e3de7cfacbeb01"; + sha512.source = "a7435841305ce368f1bedac9cb531d8f0fce3fac27484547821a2e82998e977968e578601382f4cddf6c089b42e8e175c56d2e466faa5c4c0e5b49edaf6baf1d"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + checklistings.binfiles = [ "checklistings" ]; + chem-journal = { + revision = 15878; + shortdesc = "Various BibTeX formats for journals in Chemistry"; + stripPrefix = 0; + sha512.run = "afe7c82f6e139c1321759ef9125f262d504bf602c1c5e16a11d41cc00ea47dac3f2befd602a863a12c46beaac4c50fe6fcdb145c5c6582c9d44c2740aa1b7743"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + chemarrow = { + revision = 17146; + shortdesc = "Arrows for use in chemistry"; + stripPrefix = 0; + fontMaps = [ "Map chemarrow.map" ]; + sha512.run = "4a95a6b81bd649764dea052984eb21c7f9e89c612ff96d23907eefce29e2d33fe92bd7944d94a6b108213d1820b3340feab35e3646f727288cb1df9b78302990"; + sha512.doc = "882e6c6fbeb5223fc1d2404e8b9ef9bce2c3b2ed1279d2bdc45616476a856c63fe07cdeb42e27f3bc459199f3537fc620ef08c00f4eea83df77502463fc30ca6"; + sha512.source = "19903052aaa97902f721892bf4a9df8d685db46ffddb4cdeb4df280c24a72d2166bc13408a32d5c760272aee45ad5516b899c0024ff3f077fec6825f94e36736"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.9"; + }; + chembst = { + revision = 15878; + shortdesc = "A collection of BibTeX files for chemistry journals"; + stripPrefix = 0; + sha512.run = "f6bc14345c841db93207745de1d6ce189e08a30d17110d8efe04af0c5aa98cf7e3a1208e1969afeca0c69f747fb5db39437645e2437f9596ba5a70610747b6d4"; + sha512.doc = "3263dbeee44d46b6661e2e755ba10e22475432d03de6b3286d1191acf2fc8df1541d9a9684d5e00143dbebf65bee468e9244ffe73d7ff43889153925b6edb379"; + sha512.source = "c0c6658210450aa13a17e04eaee082f4d08b71a50a1552b571a49557ce8422d709da325c8bc91e742eeae04de388a777134a4d626d72409da3662c2d152cfc12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.5"; + }; + chemcompounds = { + revision = 15878; + shortdesc = "Simple consecutive numbering of chemical compounds"; + stripPrefix = 0; + sha512.run = "d8cafe15f21045522812279337f9680a975a3f9b9930231b7992435bf694f8f180b061623bdf5fbe7dc9cfdf7d6342e0d6c2dae1cbe0d8e855699064a97a95fd"; + sha512.doc = "26d9568f73f6b0c557cc55b48a99826b70d87724f7f5776f7c58691e8374b3b6ed400206b338bb0397ae5e0c1df5d1bdbb638e80d0dbfea228138b96863587ad"; + sha512.source = "d1a0c821c6624efcb31ca21ab658a64919dd6eca51add909bea4467dbf47b20dfb60f10ee979a7525a04bae0f7440ddfae2c244da25444ccf0486708b4d1a1a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + chemcono = { + revision = 17119; + shortdesc = "Support for compound numbers in chemistry documents"; + stripPrefix = 0; + sha512.run = "29b6e78d47cdcb21c634540ed6a935cd5c6eea5fb6a28ee85cfe681ff00c8bd24d7175ee5adbbeab03e11db2f56a38d3359235ed44771976917f35c673fd21c5"; + sha512.doc = "9936d1f0ce1e6ab9498aec9d68c176ddd803de3ed1e5a698ca7b548203cac66492ce319af3e5951144ad11878065c8b349f57668498d245413d7db62d1b6a8ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + chemexec = { + revision = 21632; + shortdesc = "Creating (chemical) exercise sheets"; + stripPrefix = 0; + sha512.run = "62f374a57c799873aa4d1db52c56fcaf2f15dd813e3bd9295044499defa29a88567034e39b20af1e8a7e4208dcc35aa422c0ea8e1e0925fb1ae3e02a1a8cb482"; + sha512.doc = "83b622fe694111fefb9c7863d5322f7a717778727c99db3fe5eedec0b6575d4fe50e6b5076413cbbf36a222ee7765bbb847c44783d6ce45cb07f55bab16955da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + chemfig = { + revision = 69227; + shortdesc = "Draw molecules with easy syntax"; + stripPrefix = 0; + sha512.run = "1f5908b759c39314eb999b4d1e60ac364888e4d6193673bd387ea838eb9bc257500b0603055b2182cd5be581dc1d674ed4eaee6ec4b0ce225f72ddb77f67ac80"; + sha512.doc = "1af123c858992787d641eb6f0263f5ed0d819c4264e97191ae8058714039e202bd9bb663e25104775d9362ca005acdb056b3c97c238b1899880fb51665405a13"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.66"; + }; + chemformula = { + revision = 61719; + shortdesc = "Command for typesetting chemical formulas and reactions"; + stripPrefix = 0; + deps = [ "units" ]; + sha512.run = "907efcb72ebf3a315bffc11a8d78caa82b510993b4a4de1da8a960bbd6c66bdf5bc202933fce5f4f0626ad4507a5095b571487beb2414bc49bd37e735f0299f1"; + sha512.doc = "c839fed7313744c6abb77fd4f803524c47af7f9ca0e4b533b307a198cc2fefc072541d58afca8cfab6a17b85ecdda4d3bacd451ac9616b47a448560a97f3b62a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.17"; + }; + chemformula-ru = { + revision = 70357; + shortdesc = "Using the chemformula package with babel-russian settings"; + stripPrefix = 0; + sha512.run = "ee12aadfaee03282e1cf9fcde69bf141abf0bcc5ed5a35ea78a54111494c5cb65f97a3bcdf8838a536128b05de1039a9caae7ef5078188811a54d12ec4f41855"; + sha512.doc = "290b509e2eacd081d690f857ed2a2ba3f860ec25788150af8da5f3eedc5291bbfeea84e117d04959b1a30775ebe72e88f2c0a4a4dc89517ac81b239e3c001d39"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + chemgreek = { + revision = 53437; + shortdesc = "Upright Greek letters in chemistry"; + stripPrefix = 0; + sha512.run = "8e70154271fb921ad9edf6ab5f8a21ce7c229723f88d7e37fe17aedb189c67a5749ea9e622c2dcebeedd614efbf18b9138e0219aea998f7a8ab3087348afa788"; + sha512.doc = "69ef091ed42bb40826af81c9a4ce5536873a5debd971d70d30804f75a3240bc1aea037817cdc42346537cd025306c928fa347938785af9e69022ef51fba20d2d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + chemmacros = { + revision = 62655; + shortdesc = "A collection of macros to support typesetting chemistry documents"; + stripPrefix = 0; + sha512.run = "814995dfe7978e639594d51542ac7b86f419d48ffc3d39f069c24e84abee854e01b9d72047ab44311d500b98ac1d01308b56a77006cf14a975861e45d83b9f7c"; + sha512.doc = "dfe4411faa4ae403d9b46b9f8f0e821f810c1c9b5a8926149643f099b164c7d1f163ba3436c79a8b9eccf84ac234df74c080fd2e4a9ac58452b840c335b685dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.2a"; + }; + chemnum = { + revision = 57490; + shortdesc = "A method for numbering chemical compounds"; + stripPrefix = 0; + sha512.run = "ea8bcdbb4e69422052758aa7c49f8870c468834ca15833ba4aa89df98c88dd025b4677a9a15b85dd9f953eed6e05b62bd8ef2d4849bdbb113f16de9fbede1205"; + sha512.doc = "31d1e6c6165f7d8ab15ed322b1cacea608fc796c74e3cbadde89a56f1e7bf45c01bcc6985d24a69b459976f75565f35f61174fc34562265b7f159b5b42d1ac30"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + chemobabel = { + revision = 64778; + shortdesc = "Convert chemical structures from ChemDraw, MDL molfile or SMILES using Open Babel"; + stripPrefix = 0; + sha512.run = "bd6ff01187b408d0f6d40dba470cbdb9cd72294ca425f76287d1a0d01474ca64d15db42907295b5a90958d3b5a18544a66d6b49de9a9b62e21fc3efeb6598569"; + sha512.doc = "ae4ddcb5609bf5d3c634847c7be934b4a688346469098257fda8838ff2fcad4fc390cd600991648274539cf65c937d82d337840e0500661014755bd4872e59d4"; + sha512.source = "25c4b787d5cbba3fcf0c80e134c627b5a5e09524afc2df6e428ad3430bfec95e0bc71dae2c759289ccd9d0dff736b35cea1504d4158e3b6f34af9cd07b29b208"; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "0.9l"; + }; + chemplants = { + revision = 60606; + shortdesc = "Symbology to draw chemical plants with TikZ"; + stripPrefix = 0; + sha512.run = "6d5794cdacdf71db6cef86b9bc99af2edb1a13f2b209d7693a7f37cb5161596de37b656b3e4ae690102cc64cb7245b21004c72943fb8f5e08fc1ed1479d98947"; + sha512.doc = "50cdbc24501b61b81c2cde97c851df785599f5c2f5c3e4eab75bdebd2a81501edb9e3223dacb2042682a066f5640e8b1377c43ca61ec643b342f6de2972ec4cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.9"; + }; + chemschemex = { + revision = 46723; + shortdesc = "Typeset and cross-reference chemical schemes based on TikZ code"; + stripPrefix = 0; + sha512.run = "c7375af2dbf1a7b55d41b0ab617111cc198f1aeac98c354813cb2886e0707ce5648d3e4fd9eefdd23bffddc08b96c35a050c1f440f21d5a2d7d5c6b5e0b6aaac"; + sha512.doc = "b5e864a02ed664e7d7596b56e2583f9a4aff2b8117f79415156df0cab9be084bb96eb6c70c4fca9dd4bd03b30e8b145e4cd809b165d17325625ae625c33f1dc3"; + sha512.source = "56174f5943b8dc3aa0cccaefaf9d3f24903626d3c4eb48bc79f01f2a7be603921f7b1ee300e4009038e3a92cd550c08c37aff239a9426ef3277e47f645964488"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2"; + }; + chemsec = { + revision = 46972; + shortdesc = "Automated creation of numeric entity labels"; + stripPrefix = 0; + sha512.run = "7a69ed2535d477063e55541d53f73f5d1972905f63d2298629522dfbfbbc97dba0e9ea4a48ed1667ad7b50e24c4a0f7b6d5dbbf79863c9e79a0b3de522be54c4"; + sha512.doc = "5e132354e874b3ad5a4363cfbcad49e3601380dea8f53e106bb0b5d92fb1aff6facfedbad69444ea362c76473dcc7bd8703beeeda9b69f2501d995da98ef71a2"; + sha512.source = "b81e9807d8a082b1223d4747a3f0ad3eb3dd21d1d145de5c25b8c44a384dcd941eedf7117c794efc6e4af2397997d060d0b80bad1c7f487ae98b0679f5412b2a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12a"; + }; + chemstyle = { + revision = 31096; + shortdesc = "Writing chemistry with style"; + stripPrefix = 0; + sha512.run = "299e15460a64019177530a4d28154453a813c6987e6e89b6f60466ae9e59372c1a5e0fc418c49b85364ba3185d4fe4e4b7f98caad9add7dce9bbe1792d4e314d"; + sha512.doc = "f8d6c51cd7e3df7ea8366ade62d0cf8ec3825b0ca54be600107a6be8853d1c58e1989f5c13bddcacd97673260890fd0f63e9a0282203dbdbc6a01653d86f0537"; + sha512.source = "0ee97edc8ecf8f08ed39ed9fffe18b89249c513f33ff415e4205619395baa6e8b7c77832d5110d113d78d94c1d79ba84f79a5ff23a43fd0bb23d19db96badf52"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0m"; + }; + cherokee = { + revision = 21046; + shortdesc = "A font for the Cherokee script"; + stripPrefix = 0; + sha512.run = "731fb10454a9d359d91abf927a27215e72283a9635cbd853a6738ddbd5047d81fdb8d547b891f29836d0b604d97749074e9f2676c5ad122522d987ac9bb46105"; + sha512.doc = "34b258b5b699f644cc0f7f9b673f3dbe48357bbd338726af2b404da4888a9e742f04e397cc3b6a3221d218a96ac7180ce1e6ba80a19c688de0960ce59cb14bb8"; + hasRunfiles = true; + license = [ "free" ]; + }; + chess = { + revision = 20582; + shortdesc = "Fonts for typesetting chess boards"; + stripPrefix = 0; + sha512.run = "236e195febc213825fbb5569d8eddd1967fbce1c6e9d550a1c52729be43674e063161adcd5dcb1f6293d9ecf8809518d40064fee08ab64ffe444affe3282224b"; + sha512.doc = "95d3b598f63231abb6cdccddc970d6ccb29bec7e9fa29efcf1391bca70b610e9c0bc65754061a4b955548a854bcbbdd8cdf05f8f93fe52bea400b7c281ccc0da"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + chess-problem-diagrams = { + revision = 63708; + shortdesc = "A package for typesetting chess problem diagrams"; + stripPrefix = 0; + sha512.run = "a1abc825710bea252dc9dca092c9bacebce5af21672e413425d5ddbf72022272690db31abfdc6cc4738a1aef1b802f95adf93264a4ede8c352409b2dc11c125d"; + sha512.doc = "47c2e1fa3790f7229a2402b5e20edded8c2c7908d48e16a228c55bd5b23e94d77a5e1cc9d00790238a6fec4fdfcce1915251a08b6aa487ff63e18fadea6c62f3"; + sha512.source = "b06728a4f2390692f2ff557eb06484e29baa408ec21cd8f688567fb84dc7d67cd87da8ce4f743ce51b5f43267d0c0fb8b058d4fbc848ccda71a02ac29fd5ee6c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.21"; + }; + chessboard = { + revision = 56833; + shortdesc = "Print chess boards"; + stripPrefix = 0; + sha512.run = "9447eb4dd8712ccbb519f91e99ccd1c64cc0e9ba904bd46dd8c83ce03c31e5caddca8e76c2cfeeefd5946c8881b9e6b198d50c131a1e8d5622b054d1459865cc"; + sha512.doc = "1c2e8ab2776a247ab1cbaf5527e04392dbcd1eae3a9b1c6785223268d1811a778c0812a1a5437a15cf4bbf08ff28785a57da10c472dd7567f1f0217b2d7de556"; + sha512.source = "674ac2dd69312d3959bca053d5170bf98381ec70e3d688c991e276f07260c10ded70055b4f9b819fa0cefc8f1ac7850dd9df61d38a97b58c0fc05c824a42c3e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + chessfss = { + revision = 19440; + shortdesc = "A package to handle chess fonts"; + stripPrefix = 0; + sha512.run = "8250d4b470a74877c44093888657b0a3c6ce71abc2a23780e71590d0398fc08943ef77ffafcfdabdc6bfd739f7d5b4ca15f2436df103271de029e5ff6102f579"; + sha512.doc = "1f9e625cb7765450fde23f5666af3b43ddb9ba2e67e7d04b98ef19446117cf26eaec3c2586be7c683286dedc37f8d628e4142bae834af716f2c068ac28beef58"; + sha512.source = "8745f5c712df2da39a61aa3d7ec3b6b4917c4905e3a0c4ac25ea6484555f25db6fd31b49a9c86566f69a660108683b4749abeb17f512ece9af54ffd7806c1d79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + chet = { + revision = 45081; + shortdesc = "LaTeX layout inspired by harvmac"; + stripPrefix = 0; + sha512.run = "d4a43d5ed1f8e74f0b4681abeb2b1134e9ad770cbde69679d53ea77e09a1a23412f03705691cd31110d145a96dd97e078d675274342c9323b849c770828db5fd"; + sha512.doc = "143b224d3ad957def3ec22a6e55c1b9eebd5db582065d422e1cf972580eb321ffc768c51cd687add62c01ab1cf3dec170422e6d9bbbab01846bf3e4cf84ec936"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + chextras = { + revision = 27118; + shortdesc = "A companion package for the Swiss typesetter"; + stripPrefix = 0; + sha512.run = "6fa92c9cf1da7cbe2ba74dd10f1f71274e25b228156f01efe5c67e54a2ba258500f7b2cc39fe935d4e92c641b760eacb7f39ea70643557ade4816e92e92a0b17"; + sha512.doc = "8bcc8a6c99be02d8e0babc82ec016fd6e91823a31338701e3d741af895a1d87d224a849598c2784f5de9cfefaf9cd7a09ee5b102636114d528b1e17b830ffecf"; + sha512.source = "1b82f258f1420b07699a0ee75f99e330acb4b9ad1fadc9ffb0f42a1a4321cbad9c08718f9bbb94185eea9bef8d707f729d610b5f671db7014fd237dca5fb0d6a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + chhaya = { + revision = 61719; + shortdesc = "Linguistic glossing in Marathi language"; + stripPrefix = 0; + sha512.run = "c8174ee6bbb8a57448caee6cd23bf7e41790dd1ff40cf496360548fadf1e7161b2e08b2ef53abb51b1410b406689267ce2d4a8668d052754e323a1d836670ba0"; + sha512.doc = "0e6bab691d5a5965ab8ee575f84aeae44d26ed12fa8c7f636fd0997a4ec7c1d4efc4a43f3f451659b69bd367c759dc8c3239ca51c5d12c91ef7182e43acfd126"; + sha512.source = "635430d05de402f7e56110516fd16ef455c1393cda27b61198ebf92cb9787b01ce85f58d0e06389d823a98a73514470d83624d87a035565d159323524de09439"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "free" + "fdl13Only" + ]; + version = "0.4"; + }; + chicago = { + revision = 15878; + shortdesc = "A \"Chicago\" bibliography style"; + stripPrefix = 0; + sha512.run = "2313d7911a8c6bbcfbfb25405e3fd2ea8c0721045f77b9ecf27e4daaee5cfc1a5c010c72d192583e6025aecc6f69421fbd7921d63daa9f29145eb6f9c96c3abb"; + hasRunfiles = true; + license = [ "free" ]; + }; + chicago-annote = { + revision = 15878; + shortdesc = "Chicago-based annotated BibTeX style"; + stripPrefix = 0; + sha512.run = "be2bc8e7e8eaa881ed7a8225b211ef464dd5635b93b867333458521e405fa42375d4804fbdebe1b913fa694aaaa839703494a155b0ea5d4a99162f6335ccef0b"; + sha512.doc = "893ba3ff20355e0c395b2092fc01689bd956eb177434ab7152aea686210a7167a04b64ed8ec21030e4f4cbc7e1367a90976168b174fd068d6aecbd0304f380db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + chicagoa = { + revision = 52567; + shortdesc = "\"Chicago\" bibliography style with annotations"; + stripPrefix = 0; + sha512.run = "47cd96b4933b6c0bc4af01e5085af2450b60168813715c946ea18e3e7e5f6bda409862638038917bb678579bfba127fadf51b9a5916e4fb6c78bd10481a273a4"; + hasRunfiles = true; + license = [ "free" ]; + }; + chicagolinks = { + revision = 70566; + stripPrefix = 0; + sha512.run = "191bdc3b9a732cf2153dd6d31a94dcf2a306cf1af9d1505bff28b47456a90c01a4d20717faa09b2a6875ba47852479c14e1de887a4f4b1165fa1aa9d648f3ccc"; + sha512.doc = "9bd3e34a2d897859be082969ef65e8bbbff71e318ad5a1891b1b84334b80f29b1d16d29c318e7bccffd62121a62039cb89093e72163651d1ab84db0ddb279cef"; + hasRunfiles = true; + }; + chickenize = { + revision = 57325; + shortdesc = "Use lua callbacks for \"interesting\" textual effects"; + stripPrefix = 0; + sha512.run = "3cb2182717630c6d251a055021ff671eb930885e5b33978c0cd51176225b1743938447e3d761cfa83c9e3f46cbca1b5686c18f734a1ea5fef50a7ce48873ee0a"; + sha512.doc = "a2a7ccaa210583de7a765b940959ed4cc2678c6800b283c05f301814b69bb8c704394f8795a1824b41b03652e27106b9e47ed9d5a57179df685294fc3caa16f2"; + sha512.source = "614f105bf01bc1a36ece9ed319763a06fc2480bb5c5b1845f47b17ae1753e9fea5e4f25dab9b35cd493d2c6c31de1c636723b676269495d85829b683420b7e6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + chifoot = { + revision = 57312; + shortdesc = "Chicago-style footnote formatting"; + stripPrefix = 0; + sha512.run = "492361fbe54dae9585b4d62eb1d3c3bf4a81ff8ca8020ad997cb9b30c673cfd8b35cf8ff8d742fe6c1ec7cf529e3ce558b9d5604851fc39c75d72d0fda37dc6d"; + sha512.doc = "34f5bed1ff3660a5fb1fdacb0ec26311fd47593ed6aa659d12eca8141262d9fa7d6c75b2601dc59a38ab02212269f0e69a5fb5da3d9ae1d884f25677f0f6b545"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + childdoc = { + revision = 49543; + shortdesc = "Directly compile \include'd child documents"; + stripPrefix = 0; + sha512.run = "b268695b1d91b49ba6a0179124cafa5e5cfed56672424ab40cc31924c07879b4f50be47f9fe9d574f2adb3f183c71d799cde8854a2942b530c40a1e101d399ef"; + sha512.doc = "1a74059d946b82da211f5fed7cb120453049ceaf5f10841a78ff8864b41444064b223939bd2296142bde9c7bececc0ca8bed141be02431fd60f069ecab998d87"; + sha512.source = "d74e34799e3cce5093f59d66d2680350ccf559b0a06045882dad98a60626c59f8e0ed8a6e03d09cb4ff443d3f68a33208af996e2b870047fb381f97bf92dbea8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + chinese-jfm = { + revision = 57758; + shortdesc = "Luatexja-jfm files for Chinese typesetting"; + stripPrefix = 0; + sha512.run = "28dc8b70bf5e97a4e31defe09a16805a57054a019fa7908f6dda7ecededd8a37bff3f782d04a7c2fb72ec17ee1695d5a5a68daf3a159092080e5a7d667b4c9e1"; + sha512.doc = "6b0b2e65ba4bb79a6c6eb5e4075a1611b2bc752cefe1aae5b220e663b33fde685184433c397ac4957e4f2a6716129aeff5c40ff2082b2a3bcfc13d591e06897a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.1"; + }; + chinesechess = { + revision = 63276; + shortdesc = "Typeset Chinese chess with l3draw"; + stripPrefix = 0; + sha512.run = "6ff5ef8c4c29263da38847c6c836470c397e9838c765eacdd9859a055dcc719d3385d4d9cddf5ef7e92196f99fcef8470445686c1d858bf68608429b1cd7987c"; + sha512.doc = "83d08a949754dd38beea350cc1c5f2b8d193947a909efed156f662b77a8505f993c8449f21655c48c6ea78891ff15395d34796479fe081d29958fe6a2c0ba49a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + chivo = { + revision = 65029; + shortdesc = "Using the free Chivo fonts with LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Chivo.map" ]; + sha512.run = "ef91cfbaa46c34bdfd891c3bb752e203d1cf495d5a9f12523b3c59fc591c7abd78ad943d3f4da8abb46fea9f25cfbd280785c721cde155851fa34f3f3a71afdb"; + sha512.doc = "b174894b8ebc6bf729ca8c8cabeb9d3fcc709d4f3e0947c689489e4caaec985f35265d476e44763fa5bfccb83308857b03cdd01ec8e7e47cf406d6a86a10d071"; + sha512.source = "768f1a93665644d547e611abb5b773390205ba2839812ce222bd7d7b184851d46c7e1915d290e6ee87490faa6a8b0a2c59c3fe4a16d86bdb28fa77d6df4e8f3e"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.2"; + }; + chkfloat = { + revision = 27473; + shortdesc = "Warn whenever a float is placed \"to far away\""; + stripPrefix = 0; + sha512.run = "2a08b71c204709846bbf26ec3883e9037af6ff22e9bdf13b27319ceda55381eb9e3816ead4e444eba4b8a050a188e58d14f0d9153a813953f587c6cabb3932b8"; + sha512.doc = "b79b6bd6943dcd07656bb46d44bf50ca2c0148bdb6ae711d17a49e78f3bbf2b95781cd6f3d0b2f7625b131f7485d3db608c963367dd91dc91070501b367471b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + chklref = { + revision = 52649; + shortdesc = "Check for problems with labels in LaTeX"; + sha512.run = "12f5e950ae439d0efd3f625572e8b81d993485a1efd71dc04c078cb1dc9b76650de3c424d7a6c60ebc5ccb5d29f37ed04c477ea1306acf4c5f4fccbd95e18985"; + sha512.doc = "5aeb13824c1781feefe94215f3efce15c212e0d38f9e0d5fb393e96c2159ba43f165c600cd64ee9d8c42c0a4f0db6c2e462ee85a93993965bad0420b6b662ef6"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "3.1.2"; + }; + chklref.binfiles = [ "chklref" ]; + chktex = { + revision = 64797; + shortdesc = "Check for errors in LaTeX documents"; + sha512.run = "7c28847e87e788d0f50c07c1c3140962a70173d2a36997720f3066755740744060ecd03272662aff563de39102052e91a4582a4bb63e35f918ad8f517dff55e6"; + sha512.doc = "28df4bed075d66d9f25bcbe332731f1d5f0bb0f7f92bd2f3618c84adf788d0f429bd0c6e75381ebf7bbeac98409d94f85d17ebd752f9e4af707d9e3373d45f97"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "1.7.8"; + }; + chktex.binfiles = [ + "chktex" + "chkweb" + "deweb" ]; - sha512.run = "508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066de4626a561bbe387c7bba0fb82d4102be406efd721a4b5dc90110b8560083d2b07"; -}; -collection-publishers = { - revision = 69759; - shortdesc = "Publisher styles, theses, etc."; - stripPrefix = 0; - deps = [ - "aastex" - "abnt" - "abntex2" - "abntexto" - "acmart" - "acmconf" - "active-conf" - "adfathesis" - "afparticle" - "afthesis" - "aguplus" - "aiaa" - "amnestyreport" - "anonymous-acm" - "anufinalexam" - "aomart" - "apa" - "apa6" - "apa6e" - "apa7" - "arsclassica" - "articleingud" - "asaetr" - "ascelike" - "asmeconf" - "asmejour" - "aucklandthesis" - "bangorcsthesis" - "bangorexam" - "bath-bst" - "beamer-fuberlin" - "beamer-verona" - "beilstein" - "bfh-ci" - "bgteubner" - "bjfuthesis" - "bmstu" - "bmstu-iu8" - "br-lex" - "brandeis-dissertation" - "brandeis-problemset" - "brandeis-thesis" - "buctthesis" - "cascadilla" - "cesenaexam" - "chem-journal" - "chifoot" - "chs-physics-report" - "cidarticle" - "cje" - "cjs-rcs-article" - "classicthesis" - "cleanthesis" - "cmpj" - "collection-latex" - "confproc" - "contract" - "cquthesis" - "dccpaper" - "dithesis" - "ebook" - "ebsthesis" - "ecothesis" - "ejpecp" - "ekaia" - "elbioimp" - "els-cas-templates" - "elsarticle" - "elteiktdk" - "elteikthesis" - "emisa" - "erdc" - "estcpmm" - "etsvthor" - "facture-belge-simple-sans-tva" - "fbithesis" - "fcavtex" - "fcltxdoc" - "fei" - "ftc-notebook" - "gaceta" - "gammas" - "geradwp" - "gfdl" - "gradstudentresume" - "grant" - "gsemthesis" - "gzt" - "h2020proposal" - "hagenberg-thesis" - "har2nat" - "hecthese" - "hep-paper" - "heria" - "hfutexam" - "hfutthesis" - "hithesis" - "hitszbeamer" - "hitszthesis" - "hobete" - "hu-berlin-bundle" - "hustthesis" - "icsv" - "ieeeconf" - "ieeepes" - "ieeetran" - "ijmart" - "ijsra" - "imac" - "imtekda" - "inkpaper" - "iodhbwm" - "iscram" - "jacow" - "jmlr" - "jnuexam" - "jourcl" - "jourrr" - "jpsj" - "jwjournal" - "kdgdocs" - "kdpcover" - "kfupm-math-exam" - "kluwer" - "ksp-thesis" - "ku-template" - "langsci" - "langsci-avm" - "limecv" - "lion-msc" - "llncs" - "llncsconf" - "lni" - "lps" - "matc3" - "matc3mem" - "mcmthesis" - "mentis" - "mitthesis" - "mlacls" - "mluexercise" - "mnras" - "modeles-factures-belges-assocs" - "msu-thesis" - "mucproc" - "mugsthesis" - "muling" - "musuos" - "muthesis" - "mynsfc" - "nature" - "navydocs" - "nddiss" - "ndsu-thesis" - "ndsu-thesis-2022" - "nih" - "nihbiosketch" - "njustthesis" - "njuthesis" - "njuvisual" - "nostarch" - "novel" - "nrc" - "nwafuthesis" - "nwejm" - "onrannual" - "opteng" - "oststud" - "oup-authoring-template" - "philosophersimprint" - "pittetd" - "pkuthss" - "powerdot-fuberlin" - "powerdot-tuliplab" - "pracjourn" - "prociagssymp" - "proposal" - "prtec" - "ptptex" - "qrbill" - "quantumarticle" - "regulatory" - "resphilosophica" - "resumecls" - "revtex" - "revtex4" - "revtex4-1" - "rutitlepage" - "ryersonsgsthesis" - "ryethesis" - "sageep" - "sapthesis" - "schule" - "scientific-thesis-cover" - "scripture" - "scrjrnl" - "sduthesis" - "se2thesis" - "seu-ml-assign" - "seuthesis" - "seuthesix" - "shortmathj" - "shtthesis" - "smflatex" - "soton" - "sphdthesis" - "spie" - "sr-vorl" - "srdp-mathematik" - "stellenbosch" - "stellenbosch-2" - "suftesi" - "sugconf" - "tabriz-thesis" - "technion-thesis-template" - "texilikechaps" - "texilikecover" - "thesis-ekf" - "thesis-gwu" - "thesis-qom" - "thesis-titlepage-fhac" - "thuaslogos" - "thubeamer" - "thucoursework" - "thuthesis" - "tidyres" - "timbreicmc" - "tlc-article" - "topletter" - "toptesi" - "tuda-ci" - "tudscr" - "tugboat" - "tugboat-plain" - "tui" - "turabian" - "uaclasses" - "uafthesis" - "uantwerpendocs" - "ucalgmthesis" - "ucbthesis" - "ucdavisthesis" - "ucph-revy" - "ucsmonograph" - "ucthesis" - "udepcolor" - "udes-genie-these" - "uestcthesis" - "ufrgscca" - "uhhassignment" - "uiucredborder" - "uiucthesis" - "ukbill" - "ulthese" - "umbclegislation" - "umich-thesis" - "umthesis" - "unam-thesis" - "unamth-template" - "unamthesis" - "unbtex" - "unifith" - "unigrazpub" - "unitn-bimrep" - "univie-ling" - "unizgklasa" - "unswcover" - "uol-physics-report" - "uothesis" - "uowthesis" - "uowthesistitlepage" - "urcls" - "uspatent" - "ut-thesis" - "utexasthesis" - "uvaletter" - "uwa-colours" - "uwa-letterhead" - "uwa-pcf" - "uwa-pif" - "uwthesis" - "vancouver" - "wsemclassic" - "xduthesis" - "xduts" - "xmuthesis" - "yathesis" - "yazd-thesis" - "yb-book" - "york-thesis" + chletter = { + revision = 20060; + shortdesc = "Class for typesetting letters to Swiss rules"; + stripPrefix = 0; + sha512.run = "a32f71d89ee69ad60de6173f415d0a3aca7563107cfed71aab0ae99972a2ead442bc75f848ddf07c26c5d464b2224afed5ce976bf037049764f722396e9666d9"; + sha512.doc = "05cf8a4f37eb51cc00d9c254dcb817c41167eeb7643f7a793d1a841bd2c8a3715ced2036b974533521f48be48ae493e52ef0809789d36155d1ffc9624db538d5"; + sha512.source = "6e4c5063d7710fe5842ba684705d4b94478a9d468e68d60fe0b2ad23fdf717841421bb034317cf240269b77e4351eadce854145fe7e4300b2f9b698a6617679c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + chngcntr = { + revision = 47577; + shortdesc = "Change the resetting of counters"; + stripPrefix = 0; + sha512.run = "0fc94f91911c623578912ed43526d18f85a003f797e94ef5610aab8477154078efae7000256892cc3d3103843ac8065c27d56a10c6f57c16d9ff13693930b0b0"; + sha512.doc = "3b63e4676232c05516bb12c189873e4af39b8b34df2690c897c4733203c9f19a30759850979c47b05e5fea0bd1c277a5c1ea0624709cda6a3a4ab0196231afb9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + chordbars = { + revision = 70402; + shortdesc = "Print chord grids for pop/jazz tunes"; + stripPrefix = 0; + sha512.run = "4049c18bc34bddb954779d2b534a84791967e6d9d5c246136a046e4358f3d2b7a0127705db5cb5ebcc0e822241dbb3c17dea23d194ea71ac6d7ca40d59b9b37e"; + sha512.doc = "1a405a02e3fb813c7abd4c3925b0ccfe38129857ed5d23041ef2eab47f51206ac476727558cd50ac49b6eae3c8f67fdbfca6de252db0d95a951fc28add5a0a41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.2"; + }; + chordbox = { + revision = 51000; + shortdesc = "Draw chord diagrams"; + stripPrefix = 0; + sha512.run = "0e07cae95a8ee5f040b4df4d94f996f772f0780bbe47c77db891fbf44b08f20e28ba8442dee3e981a052b0ccebb0d630e0f0917eb7c65a490c844a65f3b2e3f4"; + sha512.doc = "0826513579953ea80047d596b6c577e4b6f00fcdddb7a06bdc953bccd72e09ec2fd9123995c1e04260ad880bc860454abd283885817a9eb359ec7cb5beba3cc5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + chronology = { + revision = 67973; + shortdesc = "Provides a horizontal timeline"; + stripPrefix = 0; + sha512.run = "0706b70147c064fed807d750e3619d6f6c9ee9d875de70c8e08720bd0fe86e75fe79a2dc909ea9c76d98e0f6cd864957ee213f58f2753eaab86bbf2866b301e9"; + sha512.doc = "dacc8fbf5869df257cc03f0bb4b1c33b2ed7e67f2bb7e4fb897038d623b4f3c1c7e308191a2270e661157d3908c142fc6fbaea349740487797f45feaabc9c039"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + chronosys = { + revision = 26700; + shortdesc = "Drawing time-line diagrams"; + stripPrefix = 0; + sha512.run = "a9503f9440dfa9a42a3f2d345c5e74faa9f40b03264bdf8482ffa58c34318467a7863033acaf089acff6056f91e9d85969676c1b0b080b363c1274ab96f022ed"; + sha512.doc = "1f2078bc645e1a9af4220bf4041391353495f76f530ab5f1a35ebf2c2a534d60a910a9ec079ec2222ced7fc3d9c146bce3d6d4d703acd2bfb9ccf357f6fd812c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + chs-physics-report = { + revision = 54512; + shortdesc = "Physics lab reports for Carmel High School"; + stripPrefix = 0; + sha512.run = "568c7b71838651881417900aa5eb8711d5e38b4496e130802b7732482c4b8d83585c54a507d2f5ee27823c9d97581db7508ea79645275ac8b1b4d02238c814e3"; + sha512.doc = "edfd22aa48a1d3db245d3e41b36cdceabe4e3c2e263d3fb270325b6acc57dabe686561af5359b849e8a17d1f2e9b77f2016cfbcf8b0af37ba3120085de9e6764"; + hasRunfiles = true; + license = [ + "publicDomain" + "cc-by-sa-30" + ]; + }; + chscite = { + revision = 28552; + shortdesc = "Bibliography style for Chalmers University of Technology"; + stripPrefix = 0; + sha512.run = "809c76b1bb47e194c43c869b27352578fb5490f6a9a8bbc2fae662b357bd36a099f5114765611d73fae87a846526781ceb7b45aa8968836c543e15f13e7ad7a8"; + sha512.doc = "215085d808b75d0d7f3e7e95830c63172606fd43e1e30a20e376f43d12959da71e8e77a6f06a6058d8ab9f9406f1260262af3e904ff65254e5d2635ca6d15975"; + sha512.source = "cf81a7ceda538e9a3a8bb0a78927c493d42993bb295680792ba643d6f771722e0fbe342bf59cd3104cccb63b1ece7905418b998c1af1dbd7c879cce024681f9f"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.9999"; + }; + churchslavonic = { + revision = 67474; + shortdesc = "Typeset documents in Church Slavonic language using Unicode"; + stripPrefix = 0; + deps = [ + "etoolbox" + "fonts-churchslavonic" + "hyphen-churchslavonic" + "oberdiek" + "xcolor" + ]; + sha512.run = "6b312822caec9f9d71396b8737010e59521cc59a744c6d2e0633ac26b24ab0ea97ef29472a83b49448e8d82225ccb63926cd91ffdacc523ebf37bfbd2d4cf6b9"; + sha512.doc = "a56e9927434f6d29db7c1ec20c0c3d20cd24241a9883fff160cba111eb5c11181d5ad1b9ec8cb66dedc649b8c8d25b9cb8670f1a28474174b31cfed380a2327a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2.4"; + }; + cidarticle = { + revision = 68976; + shortdesc = "A class for submissions to the \"Commentarii informaticae didacticae\" (CID)"; + stripPrefix = 0; + sha512.run = "1dd802c60fade71ee873cac25440e52b9cfa45293019cba6c22a16a6861eeeea1e15ad4f945dc9eafd95873efc112110b4ec14550f8bf8cdf57bec6fb6e54ade"; + sha512.doc = "ff0dbf03d9c9f371d90adaf1f5d984e5ca6628d005c1345f4e2fa7c2c4bfe494914667d8afa572a5e3eebe73a7d4e01cfff8e1ec8c213d58f71fe64089872722"; + sha512.source = "f46c3d5e483cbc9352793a2b8cb6b92ca0a561ea321633d9589a39f8331ded98e183ac331fb100e4e7e0539674e2563aad95c029f29c00e98798462e25228c9a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + cinzel = { + revision = 64550; + shortdesc = "LaTeX support for Cinzel and Cinzel Decorative fonts"; + stripPrefix = 0; + fontMaps = [ "Map cinzel.map" ]; + sha512.run = "5e02892250c5b787e4c6288beae9be2b9a2a2929a31a18c40ab3bb7609a23741e829747aaaa639f8579f229005a2171070853ca79e23b7185ee5edfa090bcf13"; + sha512.doc = "7edcb9894dfbae936ef6dbde1645890feb50ba5914ffdcfd4539a44f8c8ce24f150662fec06663de54e8bfa69479c8ce006038f063f6587bf70f7c3449623a4e"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + circ = { + revision = 62977; + shortdesc = "Macros for typesetting circuit diagrams"; + stripPrefix = 0; + sha512.run = "12f50efbbb07593485120d0e0b428ff2035a44c668025eb4a6ac78ecb3c733c5975f9f7ab4685c71488e7480a3a280fb90f618d03d79f1afed278bfd67810573"; + sha512.doc = "efdc13dc7bc670719c854be45155549fa24e1e195a6a61f84a075aeca1903eb13a6579a330d7ddd6bd5a1b7073217a453e29f790600ad2013e0d82a80763d29a"; + sha512.source = "e9b6ea17103eb8438f230d2066833d8d5281f14367632fdb6e8acfcd8d33348286198ee7438c04d6b04d42bb248554946aa6eaa3a2edb6900b7c20540e5b1617"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + circledsteps = { + revision = 67889; + shortdesc = "Typeset circled numbers"; + stripPrefix = 0; + sha512.run = "41f96e112cba5f15bb36afaccff8852917383269c7ccf8f163972759615d5e5b87c3acbb54e4d14db6572cb0330154e1117f3159d851fcc9d3c5c3efd3c17d88"; + sha512.doc = "815af1f69253625528fda78b1794eae1ddb5cdce357f5af5db5a68385d7ae90386611335fb8c429de8dc13a908ab5253ca2e99ed019590434ab6d087c2dbcbd4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.3"; + }; + circledtext = { + revision = 63166; + shortdesc = "Create circled text"; + stripPrefix = 0; + sha512.run = "473d8ca8d6507148814e0c6083c7046fdb57596e374d1bcd40318c67ecc5a557b324700505d40c1040fc2b2682edae1150d5051e0c26cf9823cee0965ce4f89a"; + sha512.doc = "04ba2a36dbd2c18ae7aaab0f638412590e2d5ca43f2438690d1165f2761bb9b1b1655d26df1a01af143dcd5ca83c161ac7a7c683d3a65de6586398774023c275"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + circuit-macros = { + revision = 69263; + shortdesc = "M4 macros for electric circuit diagrams"; + stripPrefix = 0; + sha512.run = "5bd9c2885a1e8bde8f954d5a4072e00fb7e2b2a1663fa6db5f1346aa5f5022107a01f44175daeb0fa8e84e066c8373de8943b89bed725c03bdf45769dca51ef5"; + sha512.doc = "784736df91755e22f003719b1821b01a8346ffd72036cef10ed2fb38869beaa449a12f8a5782d48355426ac46268f3d897178e7ad06a2bb21fe00672a9d64280"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "10.5"; + }; + circuitikz = { + revision = 69757; + shortdesc = "Draw electrical networks with TikZ"; + stripPrefix = 0; + sha512.run = "5d2d8699c29a209f6f4eb1df363acfc1a7bcda8e7a1b110f50dfb65b97c8b09911a11528e7b1d8e5b64d9fdcf1f9fdf4feae40cf71df9a11b01cd13d64cde91e"; + sha512.doc = "398f50f5b9d0e288a7cd91e0ab222aa20877138f4ddd1963c72caa5724539e1b37fbd54503a24f234270393c6c7f07667d6a39a05dbca6199e9a52785312beb1"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.6.7"; + }; + circularglyphs = { + revision = 68476; + shortdesc = "A circular glyphs alphabet"; + stripPrefix = 0; + sha512.run = "043f30f3b8e7834698e2c70744ebb66f938ff7189c593f54b1d3017b84cd7fe180b5b7685013985f68c31f8e62785804129ba91181053119679ea4f775676933"; + sha512.doc = "8ebcaacfdafbec747a690b392e872a9ee8e7293070e3200ef583f6f5e660a5ab813a8a426464f024c493e17e956f1192984ca3a58fd7abbfb89fd403fc1e359c"; + hasRunfiles = true; + license = [ + "lppl13c" + "free" + ]; + version = "0.1.1"; + }; + citation-style-language = { + revision = 70583; + shortdesc = "Bibliography formatting with Citation Style Language"; + deps = [ + "filehook" + "l3kernel" + "l3packages" + "lua-uca" + "lualibs" + "luatex" + "luaxml" + "url" + ]; + sha512.run = "76f5e35db0ad1ad5a2bc01a6680fc27f5721bdca3f7fb2d10c19e77583947f5fbdd7ea79b8ac63d322418eff0f48b2d45384d0be195eb43b502548773f0da291"; + sha512.doc = "3a432364b82ccbbe402e5aa10e2c17ff5a9d6e9e8611c8ac0e8385fbcc43418adf9a3d2237d10fe9f98e8b60336945fa5ade19583f35c9224a5ec3885932559b"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ + "mit" + "cc-by-sa-30" + ]; + version = "0.4.7"; + }; + citation-style-language.binfiles = [ "citeproc-lua" ]; + cite = { + revision = 36428; + shortdesc = "Improved citation handling in LaTeX"; + stripPrefix = 0; + sha512.run = "39196b799273a2da29591b1b59c0a504f0e0971a6fb12a21bed5ac45d94eb017f1e7c64691fcd46f5c151d867c1ffac706f050fe2e08bf3c58aec8867fa185d3"; + sha512.doc = "f9ccc0e1975064ec792c6138907cd3dc8080ff2fd02a2925d1a1334cebbb2289797b234b46d92be0ba45d460c31359b5c143f20e28cd1aa1827489d04b88d300"; + hasRunfiles = true; + license = [ "free" ]; + version = "5.5"; + }; + citeall = { + revision = 45975; + shortdesc = "Cite all entries of a bbl created with BibLaTeX"; + stripPrefix = 0; + sha512.run = "2549b398c98f82833849a45716d55a776ab3b7927fdc400c2e6d43c45fb0cf628bd66bdade7ca63bcaa2e98807914f7adb958c6a06c27762fb0ee70452d4d280"; + sha512.doc = "f1eaf5ed48bf3fd2bc336b7d91dde09b5cfa9a1901bd6315d4abf032439571a89f1d7c4794ed0256ef1aff0456d275e68326e81627f164652c84de2900165a98"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + citeref = { + revision = 47407; + shortdesc = "Add reference-page-list to bibliography-items"; + stripPrefix = 0; + sha512.run = "5f56fb1d813962358c737023e06bc2fa249712d8ef984f835073e11b075b676e845596a61ac312991e646d72068670b60eb002f78ac322f66d8e5a9bce185063"; + sha512.doc = "21d1a8063586b09ba953ac5df96a3b1552c586d66c5f2af517b1b1ceb75b40f173bd411654dd313c6aeebabc35db7543ea8edcbc8705ae104c7f63e5a5b3cf57"; + hasRunfiles = true; + license = [ "bsdOriginal" ]; + version = "1.1"; + }; + cje = { + revision = 68656; + shortdesc = "LaTeX document class for CJE articles"; + stripPrefix = 0; + sha512.run = "764c9429f8000aede2b8dd85fbb2bd7eedf8e6bd2924347b75d2aa51a05b060921da15b1a55d9cc33582e5fe658d89edf8337e02f164a3de033c66bed3c6c2b7"; + sha512.doc = "791757a59293d7144844cd05ae3346068bef42dee489138e5faacac68b0ed0ec639eb8c60d0fe34e29f37e1238601ae074d43d0e7194f07c1940a0f9411f8f85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.07"; + }; + cjhebrew = { + revision = 43444; + shortdesc = "Typeset Hebrew with LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map cjhebrew.map" ]; + sha512.run = "65a73380bcfd8892ab2eb93d088076e2d5371019244bc8a65a4695e69a45f743248fce59557533add032a02a0b7ea4f02d6ea4634265d2d9718a5b100f5a18c6"; + sha512.doc = "591d932ae099aa168d55f9479842d25c5212dd7aed27eac1a5d05a111a8a396baae7c73ddafe1087a7b8008528c50b1a85825851643d8107133d41470ce1e397"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2a"; + }; + cjk = { + revision = 60865; + shortdesc = "CJK language support"; + stripPrefix = 0; + deps = [ + "arphic" + "cns" + "garuda-c90" + "norasi-c90" + "uhc" + "wadalab" + ]; + sha512.run = "b13712912e479dab68cab9027042be8cb11047ebf9c034f532c857e83d28f19dfea5a1748685cfe1847c7372f2d0982f79736525694d937c88962c5262094585"; + sha512.doc = "a8c6b2d4d0899b841ccc32b378855d61bdaa65d5f68fd408df3894d386bcde18f384410f34e6f33ee2a5ce770e1e663a05ab038d9b7483012a3cb414739c3705"; + sha512.source = "88be587328daedfed3bdcb289b1a03343bd7257ae180a9e0857a6b00f173f601eccd8e5978dd29c2d95fbab180fcfd5135a682c5218325fc6b664f2cd505213c"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "4.8.5"; + }; + cjk-gs-integrate = { + revision = 59705; + shortdesc = "Tools to integrate CJK fonts into Ghostscript"; + sha512.run = "376a1b287955a801cb223c761fc9bee8af0f587f27f8c3e6cb32ef009fa575fdaf54f5e3847d7b4ca414e3eb4d58d3611ee2194736dcfafe8afb2dd6230c1999"; + sha512.doc = "c1165f2ecd08b279cd0d0b028682eecbb3953659426a1885bbe5aab9838a90107c576a3b9bf80b0d54dbe3fc438c8af8a8c82f5faf79052c37d2c5e85ea9ae42"; + sha512.source = "ee53a480230824eb7aa1ff270652eba4f39e5f160fdd091d596b9da610d8c8c211db3aa3d89931ec16edd36b2662d07a93513563efb3bb5a9ffc9dba0d274ee4"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "20210625.0"; + }; + cjk-gs-integrate.binfiles = [ "cjk-gs-integrate" ]; + cjk-ko = { + revision = 70332; + shortdesc = "Extension of the CJK package for Korean typesetting"; + stripPrefix = 0; + deps = [ "cjk" ]; + sha512.run = "e5b28f36f37e407cdcebf10dbbcc34b4a286b6bf04e6722c1821ca9cde7037893109a81e5195622b5c57de726c408371734aa69b0e1cebef25508794e86a1422"; + sha512.doc = "cbd60b19403c80674b3d2954dbc2728529b81c38fdf84ad25607e188aec9aa14c5496b73d5c998773ebc9a4825748f85a5b6f37f53fcf8fdccd99f7288f6f426"; + hasRunfiles = true; + license = [ + "gpl1Only" + "lppl13c" + "publicDomain" + ]; + version = "2.5"; + }; + cjkpunct = { + revision = 41119; + shortdesc = "Adjust locations and kerning of CJK punctuation marks"; + stripPrefix = 0; + sha512.run = "cb44aa3386cd79f05980e5402adcbbf9f8b67fa76bdd5b293063fe9810520edbdf243656cfb54fe17d6ca43d405e6b16e8012eda63bae3cb3d8fc0f7755e2551"; + sha512.doc = "cb9383b6d3fe9ffd5926d10dddcb1ea758aabda232f015b22f61dc8a9b316193b30ca2d8e2b849b1c03d92e0073bba6d90cc5b3b50f47b28a745dff2f7229486"; + sha512.source = "0155261e5a1a22634a4c6c779054198534bc2b6ef1f1d85d471a25bde59b7e872db01627f08db6dc76c7fe6fd08d9a2363c47e79425c80ec5319648c994cbf48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.8.4"; + }; + cjkutils = { + revision = 60833; + shortdesc = "CJK language support"; + sha512.run = "36b0d0ef4bae2a9e5f2238c5c9aa125eabfca509462b65a159f66cbafc690939e16760a86e7e7dcce22ffda2f301c039059cdff1af8ed862017f18552e13e728"; + sha512.doc = "636e6486f9661061d22d248b0b7a8debdb81cd08c56b449067782568fcc7db58922f7c9d40fbc992bdd008908f22a6733af4a8115d85c0572556d01e925c5587"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "4.8.5"; + }; + cjkutils.binfiles = [ + "bg5+latex" + "bg5+pdflatex" + "bg5conv" + "bg5latex" + "bg5pdflatex" + "cef5conv" + "cef5latex" + "cef5pdflatex" + "cefconv" + "ceflatex" + "cefpdflatex" + "cefsconv" + "cefslatex" + "cefspdflatex" + "extconv" + "gbklatex" + "gbkpdflatex" + "hbf2gf" + "sjisconv" + "sjislatex" + "sjispdflatex" ]; - sha512.run = "9a69b9b69cd17bb1fb8ef7ea4a5d870c3a5ee0241c9ca1bc1e4344a4708b9625d31332965ea33784d528d46bf0aefe9703784deee5e795107d5594b4a8517894"; -}; -collection-texworks = { - revision = 54074; - shortdesc = "TeXworks editor; TL includes only the Windows binary"; - stripPrefix = 0; - deps = [ - "collection-basic" - "texworks" + cjs-rcs-article = { + revision = 69006; + shortdesc = "Article class for The Canadian Journal of Statistics"; + stripPrefix = 0; + sha512.run = "6f49b9c02aa67036997403d65a9efc60c0cb7bcc29931d93fbb0359624fcbf4b3899e75c1721155b6484d7baafa79a823adf08fa5f1491352d4bd547dee22a58"; + sha512.doc = "2932d797b3969a5e399c51d2c515c05cf7fccaa88d82d80b99f626dbf2ff7a6e5f7414963696842f1980755b72a06f9e9def3d282f8ff5ca5175ad1ec8d3f1c5"; + sha512.source = "e3ca39b24e2dee6d611ccf7b0753da2d99a419db6d7e31d5aee231439dfd08da4f4bd9f902fa8c65d16df7fb9560cacf3d76ce111ba2881d267be7964c538649"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-40" + ]; + version = "1.0"; + }; + clara = { + revision = 54512; + shortdesc = "A serif font family"; + stripPrefix = 0; + fontMaps = [ "Map Clara.map" ]; + sha512.run = "549efe7ed1b523e0f414d8f6401137cb0078256f514253199f85e436a5bac595d7525380fd986fd0c674d087decb23fc401f41a67b193c58f1e8e3bf95a8283c"; + sha512.doc = "6b7912050fd352e3095f6abede303f67d3c779b778825852bdaa37345dfec91df860e5b9d0f2fccb7e4e20abfb93740f7f8dba5959aa1d630b7cd990bc0fcf77"; + hasRunfiles = true; + license = [ + "ofl" + "gpl2Plus" + ]; + }; + classics = { + revision = 53671; + shortdesc = "Cite classic works"; + stripPrefix = 0; + sha512.run = "86eaa987025658749c642f5132933745a418002feda5a3dec0f1dd9967a178af7e9c3188cde0b0b1fc8fb9ddf5cd59b68cf95942bd811d978d72a68f44a2999f"; + sha512.doc = "df7d88ae0dc936b8b7f60e98f806b1368d249a838a7407ebd12de05fe10a6e0c9da1ba8cddd3d396033271dd3692451441ad267a187c30cbdf28dd996f707b78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1a"; + }; + classicthesis = { + revision = 48041; + shortdesc = "A \"classically styled\" thesis package"; + stripPrefix = 0; + sha512.run = "9a8c0c9ad0d97f187cf66679613514000324a72d2745c1026889b73e5981e0dcf36f388a0bf630f5ab35d28a39ae50ac842db28c214442ccfd987ff2c132ce7b"; + sha512.doc = "3eb82d6c0f951a060e56c763e90ec842d1692326501f538d71780f4a0981edfda33b0ac0b5d00ccded7d3273fa69d4dd5d4a9c3557d9a69e1c3bc17375fbf43b"; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "4.6"; + }; + classpack = { + revision = 55218; + shortdesc = "XML mastering for LaTeX classes and packages"; + stripPrefix = 0; + sha512.run = "483d96aff1739fc2cdb63e9753fbb86ec93b493ee3d8d104e6089c791e4674d522a30e0dc747a48d8ffc6690452a147b2ad15a3a9cc676c641a9f6aca535563e"; + sha512.doc = "6e30295ea5d7ff19f47d4144a3ea6eadd85d02a80023b426675efc75cd2867e3c79b60a8210f26cb732e5b0e70bcb856d96d7ad98a6165cfeaed64affa070bec"; + sha512.source = "59ab38731bbf23dcda81c02a297c69b5787ce89a69953697651c399dc86e0994db91e5d06358365e8a607a3f15b3a115ab93fcedd8bfc9b3e91946c428e5ba40"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.19"; + }; + cleanthesis = { + revision = 51472; + shortdesc = "A clean LaTeX style for thesis documents"; + stripPrefix = 0; + sha512.run = "0f12e2eb830014bd08e742ed6dbbc83f9b6d17141a4c0a6c00934ff1d831ab7a9e9dfca6931f5842284845435593449b11b8ed9cc29c7c607fe4df14c2b11d7a"; + sha512.doc = "6042357f473bf4bce302b6f43d67fadcf0f449a3f1b1183a26d4b04375d60013eedc7389b002c1f0ed62ab1a8672735774d5aff0d7301e9a5e435080a4181c65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.0"; + }; + clearsans = { + revision = 64400; + shortdesc = "Clear Sans fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map ClearSans.map" ]; + sha512.run = "010e18c8a29e46acba07013b8ed1ec535373199cb2c62d895c906b24800e2055ab3aeadc0ef8bf761c1d47925c8741bdfec4d18b5cbcb680b07fc258c1313126"; + sha512.doc = "a2be117afd912bab15e5ef69cfd54dd66385699677dc357233efaa73e2bd2cfaa9a29c0cf492f48ecf152a9640c95a4ebdee9366f2c27bcead571b5177345ed1"; + hasRunfiles = true; + license = [ + "asl20" + "lppl13c" + ]; + }; + clefval = { + revision = 55985; + shortdesc = "Key/value support with a hash"; + stripPrefix = 0; + sha512.run = "1d92e279264970ca6d7612c3850fd46d4f3deb74df8a9149d6e63ac19eb665e5affeb1ab9bfea44d07825b80245b0a3b951d3ec08af0834c228a21270bc45437"; + sha512.doc = "d8242b0dc52ad63167fe13a88c28fb4b088061f7bddbe3137a7b541dd1f15aacc75a1c7c1c9b6aee2db1ff14278edf3b83d8eea5cbd77e112f16f8af9e36f19a"; + sha512.source = "abf25917b9a6aac0c3ef310bdddad1063ccbb6c59e844c792638927de403da00013e93db8bb1e9c4a052a65ee8dfb46743404efcc9c8cca6191b2703a6ab16a1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + cleveref = { + revision = 61719; + shortdesc = "Intelligent cross-referencing"; + stripPrefix = 0; + sha512.run = "7e425fd19bd559a2a3f3091f6dd3d6711e6bb4ec01f6a3f8c1dccd60cb6518f3ffe563c1b68e3b379eab7be140f7ff5f3c68dabf3dc85d196aa2d41f81a67acd"; + sha512.doc = "87760a9503b5ead92a1a8f26f9c0195487b5e7a1f97cb11519791f247cf87d35f044f68738d3563ac4a84d7f283d3907eaa816f2d4f8dc4f9cdc5114df639d99"; + sha512.source = "aae3fc03f3ccefc9c58b1372a337afc9f0fc201d3db9938a01a1832711ce10e0f0b13e72da021c328f6bb1099dfafc8378663016ca6969ecef10dd5bf3683937"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.21.4"; + }; + cleveref-forward = { + revision = 70181; + shortdesc = "Forward-referencing functionality for cleveref"; + stripPrefix = 0; + sha512.run = "bf65342e8e5d0a1299e160611044f17a6f68df342ec9bdcfe64c09ed766a7fe72b39a4d1915011b077a42261686a066b8b435f36ec6d2e0b72324cc4bc9e1381"; + sha512.doc = "b89360c16f6f77ed7386f51afcf4e46aacdb6d1f567fa5dbd4d05e46953d1a0cfba24af687abae59a72189ad84eb475d80ffb6c613ba8b3a88a91c9008a1ffea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cleveref-usedon = { + revision = 70496; + shortdesc = "Adds forward-referencing functionality to the cleveref package"; + stripPrefix = 0; + sha512.run = "2703d610437ab3f244f0e627310d4cb5b5a6a29e29d04458eb7a566bc97a62882e3a5e14bd4717baa77b9062338d91fcbb0b0b05fbc257579b94d8ff550c96e1"; + sha512.doc = "7b967ed70196eca0537012c97dfe91613e9e54a387c0365acece66132cf513c2c1fb7ffd030e0f18c2ca079be4fd5f7ae8f47959ed1d127251febc3b4f422454"; + sha512.source = "c082df105534c961fb1e28065aecebaec2a8d03f2d450d7ba96871f06c9eff232b61b5a4e2ea142f62a720f04d776b6a3ae21f11bdab77dc6c2a95f4db6ce4e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.0"; + }; + clicks = { + revision = 64602; + shortdesc = "Slide Deck Animation"; + stripPrefix = 0; + deps = [ + "etoolbox" + "xkeyval" + ]; + sha512.run = "7218b2bf0f28a0ed382e4884aa30b59c2d8bff76a3d7a09461e5e3ebf1f41648889005db3c79fe203a4d3753a65f76a48058582e25f57e61d972e8256657712e"; + sha512.doc = "fc84edae6c263a889ea5b1d7a99b5fdf2c22bbb45c9c104e63d821a80b498d1932e654034f289a7470a15cb2ea6082eb8d8fedce24b21b9ccbd5e4304043d6b3"; + sha512.source = "ff19c270587c08c28db6cad54e2a58ce23f6041b08b6d611b7ffe6fe2b6506c1a7ae33ded3fe3ec59cee3fcfc276e6a1dc3750291b4f7691255066805ca90158"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4.1"; + }; + clipboard = { + revision = 47747; + shortdesc = "Copy and paste into and across documents"; + stripPrefix = 0; + sha512.run = "19aed32c2dc229852133a44fe5ed692a0d3194d374cc77e2301314b3fff929b834fd4df82e811095049e64ba127180eddb77fcc4211aecd2db40e8124a38d55c"; + sha512.doc = "50e7447b35c1d73c1d36bab165a8bb476764ffcc4ed7994e1bc63c6759baad0dd6c2c1f6a95334c7bf649dd13c8e79d17ec536120f1112d621e833b6f9f80578"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + clistmap = { + revision = 61811; + shortdesc = "Map and iterate over LaTeX3 clists"; + stripPrefix = 0; + sha512.run = "71da5b4136bd73945ec0e1d9fe429892960a9167b39febc0d53b7a628357db59240929ed6d8c31096c170cd0b2f5c60452f364d8903be40a6a4bf0b590069520"; + sha512.doc = "8c0ca62ecf95989e1e4f90b6c606e421bd5f536ca9d7e3745384537b33b5745b221c6485e0fc5d5a52ddfa720e34f6260eb8bec0557d7e4171406ad4985b789f"; + sha512.source = "b93a6e3bda06ce394c006964046d683576474d1ccc6b8cdde069c188cf8d146be43420c5d55a9d22bca554e87ea9309faaa73b5d0b8bb1b56981414b4b99e46a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + clock = { + revision = 15878; + shortdesc = "Graphical and textual clocks for TeX and LaTeX"; + stripPrefix = 0; + sha512.run = "ba378fe241cd2e51b641f0edc4bdd1403477b392e0a22363bcf540b513c1c15b1c0e3ab37020aa77ec147ce59cc7ad6f09c86cadcc0a77892a1a798c36c411aa"; + sha512.doc = "d06e263266ab91b48ae3238af6ce283c7f720c2113d95d10c7de6026b4557b0fcb22aaec44caba2f7ad743e578e9840da1b116fd3372558d545c424159d8f2e5"; + hasRunfiles = true; + license = [ "free" ]; + }; + clojure-pamphlet = { + revision = 67201; + shortdesc = "A simple literate programming tool based on clojure's pamphlet system"; + sha512.run = "bfdc173aa0a79905af238766f162f779296fe16e343a0fc4d41e8a47be2021eaff1cb30129db1238c725f633f3c96264ccc9a2cc0fdf0686e04622090d5a598d"; + sha512.doc = "a8c782042d9c55d234ad5df84d73e0d4abedac2294073146bbb8dc0b01ea40910657d3a3e1bfb324437bc67426f69ccae6eb297b81282f32190e87bb2ba154a8"; + hasManpages = true; + sha512.source = "8dd7cf59db96f9977f9242475c46a6635bf6cbc5c18bf1f44ee65cd6e308a5d0dafd2951b602fef102632ac2f6fdf707d306fb400b02e657c45a4eaf2a52384c"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.3"; + }; + clojure-pamphlet.binfiles = [ "pamphletangler" ]; + cloze = { + revision = 55763; + shortdesc = "A LuaLaTeX package for creating cloze texts"; + stripPrefix = 0; + sha512.run = "f1c986699258bc9e7e27093a2d44f59d001ab13c3d9ba0717dc9bed0c53b00ce8ccf658c9cc3d7d457d18f45357a6d44da4d6710c1661ffcf299a8791822501b"; + sha512.doc = "ca3d9e0a4eb7486f40e4a26d0b6a2aa5dbf7e3d28343b9069ee97b089e7906aa137d8e7f8c6d010fd2cf472836191b88b9450248bd99728d80159afc54a8d1e7"; + sha512.source = "53d30866958183101890a4999a9b8f4b20b5bbca996d28ca4a22aaf81331f186facc695725917a9e80206545a3e0962b8c17b4e08b4d2db961878a273ba7c209"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + clrdblpg = { + revision = 47511; + shortdesc = "Control pagestyle of pages left blank by \cleardoublepage"; + stripPrefix = 0; + sha512.run = "bdd3de3ea16cb5d24879bcf2255bbe01612f8af70f663b9ac578a4ac98910119ea96b8a5b4a59d25c0406c1b33786997ee2940da0273b025455e334b48f17b7d"; + sha512.doc = "53ba8c83224ee6573cd1549e7e425fd524b5caf65ab139b67e7de9b32bdd5c3c87f5af63c2c43696554fcc33c8bff4690373ad25582b23bf51134b9cb6301409"; + sha512.source = "8663b5fa032e10cd77f4f526d30fd16302fd31c1e5ee268d815de3d4b9aee9fe6688e5c94ba50f5d0cb2bb11c03198401bb1a3bd03c431dece50dab65ae3d638"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + clrscode = { + revision = 51136; + shortdesc = "Typesets pseudocode as in Introduction to Algorithms"; + stripPrefix = 0; + sha512.run = "c26ac99b2f097b3b9df8bcb3ae040da959c0bd238be75a50b3711cdf0b7b0024ef40749169c0fe0437aa8c845b3ee9c9ec4ab46fe31fe6b1e28019fcd4779076"; + sha512.doc = "b74c858703577f79c89b4e95a0fef2012a756defda525c25f2945952b6637fba7ae4c30791a5d566267a16627bf7ce991c4edf726f7106b27b2df3c2b81eb765"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + clrscode3e = { + revision = 51137; + shortdesc = "Typesets pseudocode as in Introduction to Algorithms"; + stripPrefix = 0; + sha512.run = "eb609d4204f9292b387fb8ecac13eaaad77e1d32870cd29f4996771acc5f8e82560e3fb9dcd2c8284888ed55d2b7bfbf931b50e01b0e4b8790c2ce5ce4445588"; + sha512.doc = "0792d458ee46b44d37c31a5bbeaad2257ae1aca818ce33d0b1c8ae96b7e90ea6e06e9036ce61063f232c3829ec36bcef58f111b5df0b25d209e867ac53d322d1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + clrstrip = { + revision = 60363; + shortdesc = "Place contents into a full width colour strip"; + stripPrefix = 0; + sha512.run = "5a26232ede7efdd9ebb4ca89adaa2f0c507cb4eb883fc59662abca448a9bd09894cf52e850a0f57af101fd22ebf239ef82d4fb4a761b11448b846a82858fee96"; + sha512.doc = "9d52efc5bec01766d81240bc4087d76b08b1a07c1b89c3a197291e7f7b9e1d4e10214ba7640b591cc82c67406c487c39b571ddcc89adbdf377a3e3fb4063b21a"; + sha512.source = "db0be0ba5c5686846abc9eabfffcbe24c1b3f0e62554328c254126f7b0450ad0f066f7b3da20aabd83c80545e3400d0d52b639cc23b55a64e6b5735be79ea21f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cluttex = { + revision = 68912; + shortdesc = "An automation tool for running LaTeX"; + sha512.run = "652ad061ea6dd183b7bb5e0a893f3d1cb1e48e17f93c65e2c9f82eb1261759c369498b2ba36f48acb2a29772707bbc36c2832be1518507970f06f0e527c1fb55"; + sha512.doc = "5dec8c3c1ecebea760f25d5acdf6371ee67c40b38f64b24d2b47346caaa3a2a20d18578c37e14586fc16aa81a4f50761444f26206b01901913e684e413ecc0ed"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl3Plus" ]; + version = "0.6"; + }; + cluttex.binfiles = [ + "cllualatex" + "cluttex" + "clxelatex" ]; - sha512.run = "b1f38877115fb6efc9b63a5591c399b799f3a258e342d5e198b74b582628461ad67ea7c1ab76e5ae83a3e8e538c62ac3e7c5b3d3f1d29c093331843067cfec57"; -}; -collection-wintools = { - revision = 65952; - shortdesc = "Windows-only support programs"; - stripPrefix = 0; - sha512.run = "8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f62017999aee8aeb692a07f98a64f05ac98bf4aba79c5f75688c54ad2196807471dc1b"; -}; -collection-xetex = { - revision = 69452; - shortdesc = "XeTeX and packages"; - stripPrefix = 0; - deps = [ - "arabxetex" - "bidi-atbegshi" - "bidicontour" - "bidipagegrid" - "bidipresentation" - "bidishadowtext" - "businesscard-qrcode" - "collection-basic" - "cqubeamer" - "fixlatvian" - "font-change-xetex" - "fontbook" - "fontwrap" - "interchar" - "na-position" - "philokalia" - "ptext" - "realscripts" - "simple-resume-cv" - "simple-thesis-dissertation" - "tetragonos" - "ucharclasses" - "unicode-bidi" - "unimath-plain-xetex" - "unisugar" - "xebaposter" - "xechangebar" - "xecolor" - "xecyr" - "xeindex" - "xelatex-dev" - "xesearch" - "xespotcolor" - "xetex" - "xetex-itrans" - "xetex-pstricks" - "xetex-tibetan" - "xetexconfig" - "xetexfontinfo" - "xetexko" - "xevlna" - "zbmath-review-template" + cm = { + revision = 57963; + shortdesc = "Computer Modern fonts"; + stripPrefix = 0; + fontMaps = [ "MixedMap cmtext-bsr-interpolated.map" ]; + sha512.run = "e65b2096ca183ca21d8ff987489223bc98750fcbaf4f9f9a9996f5153a76c5587d1ad77693234d02f80753b8b8cb86fd957514f82065bd7aab9eb64bad9003a3"; + sha512.doc = "39ccdee82d86f01e11aaeb53844639b4f976677c0baef7675817fafe4263e8e44cfec144f6fce265c9c80d9a9373a2f46ac8a55b7f20923c680eaddd0222a045"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + cm-lgc = { + revision = 28250; + shortdesc = "Type 1 CM-based fonts for Latin, Greek and Cyrillic"; + stripPrefix = 0; + fontMaps = [ "Map cm-lgc.map" ]; + sha512.run = "5fcf591d132314d8ce160e3070036f6fba56962ed40d8fee7b58b0e8219a8124bcf380b1be4e943209ba230f05cfcd374c96e3e799695a018356d12be3215760"; + sha512.doc = "eda2082e865dec858a010b757a2d60e0be9526d2e5f2c276d1c5e8d386a71f4d7631d1af8dee009f9d61e0682904697bfdc89222863499c8e1aca2b11d0f3ed9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.5"; + }; + cm-mf-extra-bold = { + revision = 54512; + shortdesc = "Extra Metafont files for CM"; + stripPrefix = 0; + sha512.run = "1845d58827ff828d6b60b82e4eda94760cd3c86076982b861e53b4f996a0dfcc9a5926ce58de27891ca3ea115a752cc4abc56b06b112d43194aa8a27c61b86fd"; + hasRunfiles = true; + license = [ + "gpl1Only" + "publicDomain" + ]; + }; + cm-super = { + revision = 15878; + shortdesc = "CM-Super family of fonts"; + stripPrefix = 0; + fontMaps = [ + "MixedMap cm-super-t1.map" + "MixedMap cm-super-t2a.map" + "MixedMap cm-super-t2b.map" + "MixedMap cm-super-t2c.map" + "MixedMap cm-super-ts1.map" + "MixedMap cm-super-x2.map" + ]; + sha512.run = "45638ebf4ef2ffb7c4b74669ea089a9f8d3ab4b98e555b3f9b2e9bd9732b48fdba61dc91188e2c8962b8bfa3caaab31c10d1ccd3e0aa9e26197b148e59576f8f"; + sha512.doc = "5b524c55dbcfa1db87484d3437156ca9987fcca66e2c2e6d69e562c48ae708e51f089051524f324cbafb72a29e08f90e70c408d7fea7341e9ef0b5d53288b7d3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + cm-unicode = { + revision = 58661; + shortdesc = "Computer Modern Unicode font family"; + stripPrefix = 0; + sha512.run = "5d6cce2e396ffa0dc887e839f4ef57865db9eda3dcdf6a62737008b53837c40ee1498d97ab06eab8f0802e745787fa5c107c0738a8dedd4e65f6996aee555c48"; + sha512.doc = "f7633d0dbd08cc1e82f6804f51c8b117dee909a81d8496826abe3e9b7107577f2818323dbd789555f8cd3f62d8f1ffac440fde64a6497135f879fb58a779cf64"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.7.0"; + }; + cmap = { + revision = 57640; + shortdesc = "Make PDF files searchable and copyable"; + stripPrefix = 0; + sha512.run = "4857f7ab9719a2b6828582599c98715c61731288899494aed96026dd6ad8bac92028586cb6b008ebaf3fb516d918861f79f544ecd64bca1e6a6183bd8bc398c1"; + sha512.doc = "5a8b1bd0c47bd5b4a3df3d0270c15c0d3c8691c96f2e5ee272ab97362463c2cfc7d1e2a9a19f5aa7ab8b145e9ae63390b1ded80b48dec52f8bf62118dabd6cd3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0j"; + }; + cmarrows = { + revision = 24378; + shortdesc = "MetaPost arrows and braces in the Computer Modern style"; + stripPrefix = 0; + sha512.run = "5f56f9ab77b2f250aff664b0007aa17eccad96d6f674ae7417f610b62d84123fc85bc80cf83948e0df2a7bfb721300e149fc764b03638e5005cc4832f2fa5544"; + sha512.doc = "0bc738eb48fc34b7cb35240622925d43e5ff5fce21b1c560158b2ceee2790a284b33816fd192a5b0161544ee5add98f4e3ebe7dd0165273d53e5ea2de7d994ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + cmathbb = { + revision = 56414; + shortdesc = "Computer modern mathematical blackboard bold font"; + stripPrefix = 0; + fontMaps = [ "Map cmathbb.map" ]; + sha512.run = "8e720662ac4d00557b143c883e9d410da8593cdfa056b5320e0ff348c2c0e37f9c0045341c28e583aa544790e576d9b7db8c80f93cffd8c4da699e46e35f73e0"; + sha512.doc = "f1b0b1067260287c66347e52111883834d575e5857a3aede8e14930252a284b5c0bd6bd7247c9ee36462d57a63d351110582cb66ca894d9430d476445f37da44"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + cmbright = { + revision = 21107; + shortdesc = "Computer Modern Bright fonts"; + stripPrefix = 0; + sha512.run = "3251c7ce9f139a9e553e3cf343339367e98e6982850ca3d2a2087efe5e26f4828597e6f5c1ac85567e81897a09239f5be717a6a85d04b164442c9c5c53ea4fac"; + sha512.doc = "7add06e9502ab0bf912e811afbb66caf7ac83d60b6e2575dbc75709438ce6252239a43106632633e2d90b2badd46bb800533c496c811de7316cd1766456058c9"; + sha512.source = "5824d33c26e94cf0ec8d2b69d0c80c715a68ef98ab5e2025c84fc20dcda2be4b89125dfe69400f2f27d46b773c5a3918af533cc2c25fad01694776bf5a546879"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "8.1"; + }; + cmcyr = { + revision = 68681; + shortdesc = "Computer Modern fonts with cyrillic extensions"; + stripPrefix = 0; + fontMaps = [ "MixedMap cmcyr.map" ]; + sha512.run = "c42006e8d596b231c3ef7f3f7123292a9563f6bb0881a7807625bd05e49a67ffd37d6e0965e6da36cdff816cdbf780e54b79b999ee5d0a18fad315f2724cc839"; + sha512.doc = "153db17097c5a1e6bbad3e13e7bbfaf13bd8380633f62e9323d2c0514a2649b001c997bad9e7495a88f5cf9c1289f2987d147e22bdca6100e7adc1d88561d443"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + cmdstring = { + revision = 15878; + shortdesc = "Get command name reliably"; + stripPrefix = 0; + sha512.run = "b05a8f8d326a6546b7c865e4cbc1afdfb0fa50993f4ad5e3b3a1e1781be9ed7590e1dd17b18d58f8a96c83aa2fe6218328b2df3e193e2dc7923d051374ebc9ba"; + sha512.doc = "c102fcd054597d84d98a4f74656f36a9e1aa53623bebaa4ef39f341ddb889062a0e0c705074a4909bf50ae3cdc9a0e0da06fc6b12fde10bcaf5391fe6c792818"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + cmdtrack = { + revision = 28910; + shortdesc = "Check used commands"; + stripPrefix = 0; + sha512.run = "22de643d5b45f3898a1aeee44ae88594b545af34bb5bdac937753c13d31071872a78935dc2c73fb22c0e591d164f618549a2bd67a00550f3fb70753a951ad4cc"; + sha512.doc = "2a69b054e1de07b31426e653af45125824bd037cf5a24fcde1f0fe1b6aa3eb925688959aa84094ecc65954b92030e1b78545db18f08a39990c4412d487ce2284"; + sha512.source = "c6b02dd165bfb3ab40ee05aa3ac9df74faff8167de021495fb08e0d173b83f75453915a634d81d260d4739166b2e5a519b8cecfc7807d25f396c27c5b65f58f3"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + cmexb = { + revision = 54074; + shortdesc = "cmexb10 metrics and Type 1"; + stripPrefix = 0; + fontMaps = [ "Map cmexb.map" ]; + sha512.run = "584aa7d96c86be809a1da92955c92c9e73946fc236e9991925431bae4041001f6b4d7029b13004ada0435ae291a90fce8990e527188e1f35a3be922a39faefed"; + sha512.doc = "e6f362bfa79f6c32537245af645f8b6a343ef5a9204b9cd50cfab9337e9617554bfc3fc813fe4c65d2664fc617d460f15a4ea099961699bbee82381df0856760"; + hasRunfiles = true; + }; + cmextra = { + revision = 57866; + shortdesc = "Knuth's local information"; + stripPrefix = 0; + sha512.run = "fa6bd1e79ca96500080405e01a7524a6fd13358335d34b3e2983a7f33f7b7a50ff4106ee5f2f483f3e040a3a7135b4133d727c6a7cb0c90f63be40e5410e3b48"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + cmll = { + revision = 17964; + shortdesc = "Symbols for linear logic"; + stripPrefix = 0; + fontMaps = [ "MixedMap cmll.map" ]; + sha512.run = "8470819c5a37b3d8d1d44aae53b62ff020087e1125f381e51ef4a639fd6b2394c3d6f15a3a86fe70e61a4545213059bde6fc3e9d06cd054e46218e90e64c0543"; + sha512.doc = "71a7cd27a2744e8e3ab09b8fbbc514eb2e38d9740349139212f0861c67948fa1a98728acb1d22a4397fe95d8efd5c6fcb87a1843a1f9dbd0d161e2e835e1ac11"; + sha512.source = "de17c8e0627408358ae3de41a5bf557d99abf76bb480ab28ef9df424d8b7ae1f73ca2e30f4eeb26ac9eb2dd36ddafa143cd49ce6618b2ca36fcfc6e22e83d217"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cmpica = { + revision = 15878; + shortdesc = "A Computer Modern Pica variant"; + stripPrefix = 0; + sha512.run = "2aac63861c3c1099054286647917f4ab594fd535de9d513f790cb70e8a38278ffda0be29656e1da57206c7bac21928cf5179bd1cc22f50e0f10d1ca8083f4b86"; + sha512.doc = "7c6251f1c5090328c93f6ec224bbb6d05433b5471c6cb8b4d7f3b9ff05f9be8ad49587d24a34702fb23b9f1803ca3df3a638b16335944a9b2dc35422ca8bf9fe"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + cmpj = { + revision = 58506; + shortdesc = "Style for the journal Condensed Matter Physics"; + stripPrefix = 0; + sha512.run = "11eafc9af424689d7f4a225eea5f5d5f6123f79265f805506f4e98155d97e557fd96a6ce5dba6b1d598817ec87f561189cf48267f08c7cd7823781eaced17e55"; + sha512.doc = "b1113cf0dbc02b69e3ed72d70168103b742d85c2115e78b1f0feece71f342293fae109f112be948e5e106dde226ae8d4d53706c3846a641b8d6e8417e8444408"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.03"; + }; + cmsd = { + revision = 18787; + shortdesc = "Interfaces to the CM Sans Serif Bold fonts"; + stripPrefix = 0; + sha512.run = "97e1830bdbab04e321433f43e14d65fd2e9820d46a6fb3616f2cea38a54208e80e1238eba7b5cfd20137f6e3a3da3a1586a7caa3e0a495ed91235a05120d444c"; + sha512.doc = "f9994a39f6e14f40398abacfe0f4c1a9cbd71d7b55c29787105fdbf8212953fb761f1696cf35196d446b9905a967d2908d7e41e7742e5cd7dd538ac0e7d3f5d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cmsrb = { + revision = 54706; + shortdesc = "Computer Modern for Serbian and Macedonian"; + stripPrefix = 0; + fontMaps = [ "Map cmsrb.map" ]; + sha512.run = "2fef47e94ba1a5ad0774667ac84e29040a3715c413990585aa09c866297beb61c7da533685bc1e102c8edb30d7bf6bddf8fee5486dd6d4d6ea9ebe51d2424196"; + sha512.doc = "9200b4da942f308cc60dc53b2fba9cefb7448e95d89f0c34d03604e5f7a9119aea4e762d70cfa35fd12f555f8c4ae1ab4c0b12abb04742e17b6e680bd80cc9d3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "4.0"; + }; + cmtiup = { + revision = 39728; + shortdesc = "Upright punctuation with CM italic"; + stripPrefix = 0; + sha512.run = "9412576d07ec490fda4dd01445f28e4b966d2664a81e5f44a574019df1eb4de4189b8d06edf7a1a3b57e8ade129b57c0147a96fa9b77337d9a906134e33f2067"; + sha512.doc = "aae6105fc9e828715193bc4d251210f23ce6f4c4d703c79c244ff765a377f90055188f8af83e705da062cea8db8bf6b89beecc488cce32d7903fb7fb8c4bcad9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + cmupint = { + revision = 54735; + shortdesc = "Upright integral symbols for Computer Modern"; + stripPrefix = 0; + fontMaps = [ "MixedMap cmupint.map" ]; + sha512.run = "ce08962145a80b7b6748145a7385cc78e361295d85ea96f24397aad3025b7eaa2e962d4d30380ca1a8d22da7175a3135abacef78a76d9d4615f03aed049a4b10"; + sha512.doc = "80cab8f9387e74db3b3650b8e7b055ecf1e094f75f0e43c4540b32658e43e392c82f3fa8ab6a6c08495ef6f9f2773501a7f282acaf7d7d640f0bd891cb8b1f08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + cnbwp = { + revision = 69931; + shortdesc = "Typeset working papers of the Czech National Bank"; + stripPrefix = 0; + sha512.run = "1e52436349c9f43a04b40ded7f35092d644ea056b5be1f91ce9efc20a5c47211017cb000ba5b3734d29fcf0553e61193cfa141ea945367362c924a061392b2a8"; + sha512.doc = "685c09924feb372af74ff578a74c4a4ed24a7b9ddbac65d8f8e2c17ba4b80e7f34d49d71ef9251b619b363a83dbbe12114aed547bff6e29d7053261cae169d22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024.02"; + }; + cnltx = { + revision = 55265; + shortdesc = "LaTeX tools and documenting facilities"; + stripPrefix = 0; + sha512.run = "fa858296b0d71265f4812289d7e50e1650deea64fe8feb86c1d9a3ce49719ed4d265e457fc1e6c9382c9344b9798ef2de322419ab38b86dfaa2f20ca87052ea4"; + sha512.doc = "b1481a3f56079e4655b94ac7855019492b051de1405016830fd196442f1c3fb8213d00540ec5fa42dccf743eefd9ff1d0a581626d2b0c64b7462e43708ccb502"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.15"; + }; + cns = { + revision = 45677; + shortdesc = "Chinese/Japanese/Korean bitmap fonts"; + stripPrefix = 0; + sha512.run = "0b3645da07e0fc9482cfeddd93f949e18dc12b6aa02e5a6c45669f3d5f7f25d5fa7ff4992f40b9b71894e21b5b1855999ba8e1b130be27e8b7001444ed30db0f"; + sha512.doc = "264c64f2ae29bff96b428500af07a81402434d9422792a36ee0da74e9821f161cf8281d38317787c0db78109d2eeaaff4e62730855ae1f1e1f250f4173740d35"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "4.2.0"; + }; + cntformats = { + revision = 34668; + shortdesc = "A different way to read counters"; + stripPrefix = 0; + sha512.run = "f829d6452faa20a514bfe43a8b002d4d728b57e0d6c44de7ba8aebaa96d9a40fc0ac26ca6ef637ab9efd3f133c70cd4d5b9c81dd382ed8adcd5abd1b2fb5d6cd"; + sha512.doc = "4d6c9b8ad41dea1e14eec71570afdeb28fb834191587ba964642628674526a5ac82d6ceb972d5d89e0faeb3fb46da26361dea45f8757523f58765dfbdb773a3d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + cntperchap = { + revision = 37572; + shortdesc = "Store counter values per chapter"; + stripPrefix = 0; + sha512.run = "ade4e6bbb00d619d52cb65549cb50f4ff9275d20a9e871ddee99064fb2ae0e02ba7d403bd6c7d658fdc6d542d7a32244ce8ff7fbe023b4fe292697584aed966a"; + sha512.doc = "354ea40ce2fe4e543016970fe81745c151a53c182800e8b861006d7e1c6fff84628a0baa4bfad29a0b81c8d0eede9f31145e7d3f380953921a48f31c5b8d0a8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + cochineal = { + revision = 70537; + shortdesc = "Cochineal fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map Cochineal.map" ]; + sha512.run = "c8468bf472552dbbcbb84a5134a5ddc84405aab0d3b98015aba60d6da0e02896d929582778bfecf3694a7a0174d31214c9231a1da11284af6fdf3362b95e179b"; + sha512.doc = "43f7de109858a3e9a120b51022d3cab77dd0ae4ee2dd5e2d032ed3f9ba669ce2f5280bd359d8dbf158181727442e1e00ac8914d8cbe3edb93c40ab01362a2dbf"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.085"; + }; + codeanatomy = { + revision = 65648; + shortdesc = "Typeset code with annotations"; + stripPrefix = 0; + sha512.run = "59f2c1b91875a69434595d435eb905265c9e114bebb8a94edbe07f597518424add7916fab565caef11302e6c31537c54e5885f3320ec0e515cd0a207c8012e00"; + sha512.doc = "4595189bdcee5788de92793b54e8a3dab0215057acbf7d9d575af6e9fb67a92ec1985d61d415bd44bea2d8ae7084de0676e121c96be2262c93eee78116f50a86"; + sha512.source = "27c57ca05dd82f9810e63a0265658174dc3a9dfe21033c70bea65db5543648dc51052a8b72bd5f2d89e7ad9806d1cf1b0bf1e9c9ca543589afef2dc07184114d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4-Beta"; + }; + codebox = { + revision = 61771; + shortdesc = "Highlighted source code in a fancy box"; + stripPrefix = 0; + sha512.run = "04f63b435f360fdfa81bb7afeef38117a8a4b81b70562e21020470f49f33abc33038d6c55665a5ae4573ff61c19ed9120e824eb319ea97523fe1fa8e82ba9424"; + sha512.doc = "165fffcfbff35064a3c55a0fe1b095f3a45a5c01d1c8a8704cd151cbb20c440592edecc3be71900b1a7a5e7af28d6a8d6c4a3b9fd09f850c7da71362e2377ddd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.4"; + }; + codedescribe = { + revision = 69944; + shortdesc = "LaTeX code description and documentation"; + stripPrefix = 0; + sha512.run = "5c3fa3c2843820575d28e1c9adced0cabf0f19fc4ae8022eef4fe18f18cf9cffe8582cb4d8b2f5d064bb5f836641f2229a6f0b6976556a9bec4ae66739b48c00"; + sha512.doc = "305c4b68a7011697c750789cbffcf09a45b3704ded67538efd6ef134c499cf42c50ff3a6503350b75cdac07574360941f66ccb67044a5f5db4ba6f050604c3f5"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.4"; + }; + codedoc = { + revision = 17630; + shortdesc = "LaTeX code and documentation in LaTeX-format file"; + stripPrefix = 0; + sha512.run = "8dc006776f2a3f0f28aeed0450e2d7b714402de1939a92d1e7f1e0174a8de7e9f7099e7ae9a5de34df03613ff16800bde17f7cc90fa82798f30c775c10c655ff"; + sha512.doc = "fa23f45c539ec134cff114d7252a4d96585168729dc33d0865f4976f94620a8d3c02fa21572953161977d893c7f311b0d15a431f74b8526d1de0680dfdad7341"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + codehigh = { + revision = 65787; + shortdesc = "Highlight code and demos with l3regex and lpeg"; + stripPrefix = 0; + sha512.run = "ca33d6cb84e716357cb18d8448f8e047b4bc049cca8e77aa80525a209c66ae4b93dcd453f91672cf15fc5305ce1d62768e9851edd6fb07214153100cdacfc884"; + sha512.doc = "f689cede2e83dee785e3b83094f5897a8d7af4e39e3c33779acceeb7ed0c1226d094aca64c222f4b1488916e7ad78ed1a6b8800070910d4e0daf6e6ccd24bc5e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2023A"; + }; + codepage = { + revision = 51502; + shortdesc = "Support for variant code pages"; + stripPrefix = 0; + sha512.run = "2531186744ce4915b8d903e0ea49e1d3e0a6be5ab2db7bc2a5cbc70e675c2dd00104a677c08b7b7d12eca56dfc4b283c49ee599fff6d3460c6238f414ba3cb76"; + sha512.doc = "b49ffff68cc599835acf436de3117c7f9511b362d821bdd8c18f0af930c5b717dc0bcd00477e6f0f367229b9d1f6dd150a8166dd74bbfbc2cfcb77ccf28cd8d5"; + sha512.source = "2c12bf42c1aa818d5718f2bbbb07460364ad40f7bc4cf0676cb064a03751e1bd88be16fffaae097f5ed9c0793f60ffb93374b43f7b90acf8ad3cbc8f5d7b8b70"; + hasRunfiles = true; + license = [ "free" ]; + }; + codesection = { + revision = 34481; + shortdesc = "Provides an environment that may be conditionally included"; + stripPrefix = 0; + sha512.run = "95318ae4933d0cb43226c714c8ff931aaa8e06cfb2c44c3929db59ae8336882c588e26268445b62f8da32145a962bae0030daff3d5cfa22007919fb7b13fd69d"; + sha512.doc = "881e62381793f548d0c291141944d81e19cf4340f2c1f63916857f5702756e18d107337c340568d62de48fe2190cf4c74a8d6604f8d4843c47ceb7c59608c0b0"; + sha512.source = "e2ca6d6cb96977d494bfa9818d90aef30a915dd4c284fb7e555e79c09db022819a6e1f825ab895108594b90b488e70780f268022a896feef7dcc1ab590fabce9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + codicefiscaleitaliano = { + revision = 29803; + shortdesc = "Test the consistency of the Italian personal Fiscal Code"; + stripPrefix = 0; + sha512.run = "7c93841ceadbb7bbfc9846d281fdbd84b7f284117344e1c4fd984e746186403e9be3e2048cfca53f6690a1e20b7471224b8d30ed1358959053111c22d3f15191"; + sha512.doc = "7b0c13252796be7d584d3e5dad65711229cf916ce7c8e89e423805183629f161b3d4e4f47d6c9488ab32ff8b52723b0fbc4252f2ca99e965f4d7c4409881b67d"; + sha512.source = "8602ad1eee729a5d21d760da54f31d67746bc336c9e18d43b9cf3a5443afaf8099d27a908cc1cd9cc028e94b2173e97179cf293d5739244834817f0bc50bbaa3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + coelacanth = { + revision = 64558; + shortdesc = "Coelacanth fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map Coelacanth.map" ]; + sha512.run = "279faeb81ba3169bc72848c691ab42729c670bed5c41a2add3e338bec0c109ff15ffcb492e19834d0ab2293040a659e3994f374b5a6028d505823e372eab7f48"; + sha512.doc = "ae548dfea88ab4315674caca7e0531bf52512b6ac8198853e0c70661e91061e3fdc15c82be7d6f1ee5c92a7cf340e65b0ce99665da82507b9d9f9b119722c2b7"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.005"; + }; + coffeestains = { + revision = 59703; + shortdesc = "Add coffee stains to documents"; + stripPrefix = 0; + sha512.run = "7a8213810b8bb30c0b863ce996aab92a9031dd9961513d25822904c6e71dd2fa1b79f050f1840e8d88e8f8e8e87c7736369f3fa7a6873cbaa57fb8dca7c71d47"; + sha512.doc = "fab8a2aeae8dd1c6f0f501d894f90d5b6f7785bf8b3fcf86837f4bc41da8002427c69094676870ea7dfe9186b3bb92433f5c66f0cedd08f57954487db8bb162b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.5.1"; + }; + collargs = { + revision = 69284; + shortdesc = "Collect arguments of any command"; + stripPrefix = 0; + sha512.run = "1807cca3a1e73b42ec1403c272777d5e31c1a6ecc3efe9b61697d6fee7b2b1deb76b9b909846b55a297587e950b42754f68be4cc5ed729c54e310fcd248d2972"; + sha512.doc = "395931952725fbebb85445d8f465bc57a74d98f2d70b61f67b97f9a3542598bdfb1ddd7203a3bcae87094aded580325c98f77bfcdfa78147b971a9aff18a8cd0"; + sha512.source = "4ec8b2ed23cae6473c8a5993efa79e426522ba710378598c408e4b33343b1be29c7aee01c2ad1483cad2a91fcc8775844fa598f740c42438d9c830210d31e0ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + collcell = { + revision = 64967; + shortdesc = "Collect contents of a tabular cell as argument to a macro"; + stripPrefix = 0; + sha512.run = "ecc414d09b916580b87aeba0192b55e698782ee9fca088ff3d3ab6f247ff2fa33caa0cf6913870f8f3219806e2ac88674c6f7692ebdc027675907355c38c6eea"; + sha512.doc = "a516c5c4030957305e413e252cc59f33652b42f2d0dc0aa0fbe297f33a68da4d534f0b07684d39276e8b6811b53b775db45b774e7ea82fc9b0c7382910ab6442"; + sha512.source = "1cd565603f9c6e4b267d67b501842a95916072deac09b0330336d8d2b97cce1a7571f9a8f0725958a920f0d786d1a3a6aa8682b232e276b9fe8e4208a08c34cd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + collectbox = { + revision = 64967; + shortdesc = "Collect and process macro arguments as boxes"; + stripPrefix = 0; + sha512.run = "59316a336010c03bbe288ecaf20953666d084500165befe465ac87210795f2ef68693e5fe155b45a461a690d918d83aad247dcd52eb40cd0bf80f6c68fcd8071"; + sha512.doc = "db2d2066072a3619913df6fbdfb19ec3afc50495d51ccf1339312bcff1bf7841902f412932205cb4ae2f94acd33b9fe2b250d67ae02c22d6efa25c251a182c00"; + sha512.source = "b54a9a9215639eba3c0c052676122a3c25efacda695b34c56317d809e69e6859bb52c7fb8845e08ece9d1a2ffa399f3800737b56eca7e6c4a2f7ced14b10a2ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4c"; + }; + collection-basic = { + revision = 59159; + shortdesc = "Essential programs and files"; + stripPrefix = 0; + deps = [ + "amsfonts" + "bibtex" + "cm" + "colorprofiles" + "dvipdfmx" + "dvips" + "ec" + "enctex" + "etex" + "etex-pkg" + "glyphlist" + "graphics-def" + "hyph-utf8" + "hyphen-base" + "hyphenex" + "ifplatform" + "iftex" + "knuth-lib" + "knuth-local" + "kpathsea" + "lua-alt-getopt" + "luahbtex" + "luatex" + "makeindex" + "metafont" + "mflogo" + "mfware" + "modes" + "pdftex" + "plain" + "tex" + "tex-ini-files" + "texlive-common" + "texlive-en" + "texlive-msg-translations" + "texlive-scripts" + "texlive.infra" + "tlshell" + "unicode-data" + "xdvi" + ]; + sha512.run = "4241bc3a3ef21502faa9a2e0b16295126c357fc15813a625306552b40f9da804164abccce642f4ec1e677092f81d61381958b87fcf515120a12f9b7a19055370"; + }; + collection-bibtexextra = { + revision = 70566; + shortdesc = "BibTeX additional styles"; + stripPrefix = 0; + deps = [ + "aaai-named" + "aichej" + "ajl" + "amsrefs" + "annotate" + "apacite" + "apalike-ejor" + "apalike2" + "archaeologie" + "authordate" + "beebe" + "besjournals" + "bestpapers" + "bib2gls" + "bibarts" + "bibcop" + "biber" + "biber-ms" + "bibexport" + "bibhtml" + "biblatex" + "biblatex-abnt" + "biblatex-ajc2020unofficial" + "biblatex-anonymous" + "biblatex-apa" + "biblatex-apa6" + "biblatex-archaeology" + "biblatex-arthistory-bonn" + "biblatex-bath" + "biblatex-bookinarticle" + "biblatex-bookinother" + "biblatex-bwl" + "biblatex-caspervector" + "biblatex-chem" + "biblatex-chicago" + "biblatex-claves" + "biblatex-cv" + "biblatex-dw" + "biblatex-enc" + "biblatex-ext" + "biblatex-fiwi" + "biblatex-gb7714-2015" + "biblatex-german-legal" + "biblatex-gost" + "biblatex-historian" + "biblatex-ieee" + "biblatex-ijsra" + "biblatex-iso690" + "biblatex-jura2" + "biblatex-juradiss" + "biblatex-license" + "biblatex-lncs" + "biblatex-lni" + "biblatex-luh-ipw" + "biblatex-manuscripts-philology" + "biblatex-mla" + "biblatex-morenames" + "biblatex-ms" + "biblatex-multiple-dm" + "biblatex-musuos" + "biblatex-nature" + "biblatex-nejm" + "biblatex-nottsclassic" + "biblatex-opcit-booktitle" + "biblatex-oxref" + "biblatex-philosophy" + "biblatex-phys" + "biblatex-publist" + "biblatex-readbbl" + "biblatex-realauthor" + "biblatex-sbl" + "biblatex-science" + "biblatex-shortfields" + "biblatex-socialscienceshuberlin" + "biblatex-software" + "biblatex-source-division" + "biblatex-spbasic" + "biblatex-subseries" + "biblatex-swiss-legal" + "biblatex-trad" + "biblatex-true-citepages-omit" + "biblatex-unified" + "biblatex-vancouver" + "biblatex2bibitem" + "biblist" + "bibtexperllibs" + "bibtools" + "bibtopic" + "bibtopicprefix" + "bibunits" + "biolett-bst" + "bookdb" + "breakcites" + "cell" + "chbibref" + "chembst" + "chicago" + "chicago-annote" + "chicagoa" + "chicagolinks" + "chscite" + "citation-style-language" + "citeall" + "citeref" + "collection-latex" + "collref" + "compactbib" + "crossrefware" + "custom-bib" + "din1505" + "dk-bib" + "doipubmed" + "ecobiblatex" + "econ-bst" + "economic" + "fbs" + "figbib" + "footbib" + "francais-bst" + "gbt7714" + "geschichtsfrkl" + "harvard" + "harvmac" + "hep-bibliography" + "historische-zeitschrift" + "icite" + "ietfbibs" + "ijqc" + "inlinebib" + "iopart-num" + "is-bst" + "jbact" + "jmb" + "jneurosci" + "jurabib" + "ksfh_nat" + "listbib" + "logreq" + "ltb2bib" + "luabibentry" + "margbib" + "multibib" + "multibibliography" + "munich" + "nar" + "newcastle-bst" + "nmbib" + "notes2bib" + "notex-bst" + "oscola" + "perception" + "plainyr" + "pnas2009" + "rsc" + "showtags" + "sort-by-letters" + "splitbib" + "turabian-formatting" + "uni-wtal-ger" + "uni-wtal-lin" + "urlbst" + "usebib" + "vak" + "windycity" + "xcite" + "zootaxa-bst" + ]; + sha512.run = "8a96e8a580846ea80c0be60ba037e761f5d695eb184c72da71709bf528368ac18464cbf955ba5fc6e6b574aa9ad76d2e26797907f141753716c0deccf625d6d8"; + }; + collection-binextra = { + revision = 69527; + shortdesc = "TeX auxiliary programs"; + stripPrefix = 0; + deps = [ + "a2ping" + "adhocfilelist" + "arara" + "asymptote" + "bibtex8" + "bibtexu" + "bundledoc" + "checklistings" + "chklref" + "chktex" + "clojure-pamphlet" + "cluttex" + "collection-basic" + "ctan-o-mat" + "ctan_chk" + "ctanbib" + "ctanify" + "ctanupload" + "ctie" + "cweb" + "de-macro" + "detex" + "digestif" + "dtl" + "dtxgen" + "dvi2tty" + "dviasm" + "dvicopy" + "dvidvi" + "dviinfox" + "dviljk" + "dviout-util" + "dvipng" + "dvipos" + "dvisvgm" + "easydtx" + "findhyph" + "fragmaster" + "git-latexdiff" + "gsftopk" + "hook-pre-commit-pkg" + "installfont" + "ketcindy" + "lacheck" + "latex-git-log" + "latex-papersize" + "latex2man" + "latex2nemeth" + "latexdiff" + "latexfileversion" + "latexindent" + "latexmk" + "latexpand" + "light-latex-make" + "listings-ext" + "ltxfileinfo" + "ltximg" + "make4ht" + "match_parens" + "mflua" + "mkjobtexmf" + "optexcount" + "patgen" + "pdfbook2" + "pdfcrop" + "pdfjam" + "pdflatexpicscale" + "pdftex-quiet" + "pdftosrc" + "pdfxup" + "pfarrei" + "pkfix" + "pkfix-helper" + "ppmcheckpdf" + "purifyeps" + "pythontex" + "runtexshebang" + "seetexk" + "spix" + "srcredact" + "sty2dtx" + "synctex" + "tex4ebook" + "texaccents" + "texblend" + "texcount" + "texdef" + "texdiff" + "texdirflatten" + "texdoc" + "texdoctk" + "texfot" + "texlive-scripts-extra" + "texliveonfly" + "texloganalyser" + "texlogfilter" + "texlogsieve" + "texosquery" + "texplate" + "texware" + "tie" + "tlcockpit" + "tpic2pdftex" + "typeoutfileinfo" + "upmendex" + "web" + "xindex" + "xindy" + "xpdfopen" + ]; + sha512.run = "2edd9aa26368452ebbd775da1d6223fa08141a55221594113b184243e05e1c4b841e7984de3df9ed6eff93f24b6391724eb454475cb774b693de6a3f901c8012"; + }; + collection-context = { + revision = 69108; + shortdesc = "ConTeXt and packages"; + stripPrefix = 0; + deps = [ + "collection-basic" + "context" + "context-calendar-examples" + "context-collating-marks" + "context-cyrillicnumbers" + "context-filter" + "context-gnuplot" + "context-handlecsv" + "context-legacy" + "context-letter" + "context-mathsets" + "context-notes-zh-cn" + "context-pocketdiary" + "context-simpleslides" + "context-squares" + "context-sudoku" + "context-texlive" + "context-transliterator" + "context-typescripts" + "context-vim" + "context-visualcounter" + "jmn" + "luajittex" + ]; + sha512.run = "a8426893d3b9cfbddfffa383dc7898f7abe48271695dc6835abb2cda70ca1998d65eda2acd716a13ef4239c8ca8528c92b2c679510d6785ef38bf554b81a6cd6"; + }; + collection-fontsextra = { + revision = 69663; + shortdesc = "Additional fonts"; + stripPrefix = 0; + deps = [ + "aboensis" + "academicons" + "accanthis" + "adforn" + "adfsymbols" + "aesupp" + "alegreya" + "alfaslabone" + "algolrevived" + "allrunes" + "almendra" + "almfixed" + "andika" + "anonymouspro" + "antiqua" + "antt" + "archaic" + "archivo" + "arev" + "arimo" + "arsenal" + "arvo" + "asana-math" + "asapsym" + "ascii-font" + "aspectratio" + "astro" + "atkinson" + "augie" + "auncial-new" + "aurical" + "b1encoding" + "barcodes" + "baskervald" + "baskervaldx" + "baskervillef" + "bbding" + "bbm" + "bbm-macros" + "bbold" + "bbold-type1" + "bboldx" + "belleek" + "bera" + "berenisadf" + "beuron" + "bguq" + "bitter" + "blacklettert1" + "boisik" + "bookhands" + "boondox" + "braille" + "brushscr" + "cabin" + "caladea" + "calligra" + "calligra-type1" + "cantarell" + "carlito" + "carolmin-ps" + "cascadia-code" + "ccicons" + "cfr-initials" + "cfr-lm" + "charissil" + "cherokee" + "chivo" + "cinzel" + "clara" + "clearsans" + "cm-lgc" + "cm-mf-extra-bold" + "cm-unicode" + "cmathbb" + "cmbright" + "cmexb" + "cmll" + "cmpica" + "cmsrb" + "cmtiup" + "cmupint" + "cochineal" + "coelacanth" + "collection-basic" + "comfortaa" + "comicneue" + "concmath-fonts" + "concmath-otf" + "cookingsymbols" + "cooperhewitt" + "cormorantgaramond" + "countriesofeurope" + "courier-scaled" + "courierten" + "crimson" + "crimsonpro" + "cryst" + "cuprum" + "cyklop" + "dancers" + "dantelogo" + "dejavu" + "dejavu-otf" + "dice" + "dictsym" + "dingbat" + "domitian" + "doublestroke" + "doulossil" + "dozenal" + "drm" + "droid" + "dsserif" + "duerer" + "duerer-latex" + "dutchcal" + "ean" + "ebgaramond" + "ebgaramond-maths" + "ecc" + "eco" + "eczar" + "eiad" + "eiad-ltx" + "ektype-tanka" + "electrum" + "elvish" + "epigrafica" + "epsdice" + "erewhon" + "erewhon-math" + "esrelation" + "esstix" + "esvect" + "etbb" + "euler-math" + "eulervm" + "euxm" + "fbb" + "fdsymbol" + "fetamont" + "feyn" + "fge" + "fira" + "firamath" + "firamath-otf" + "foekfont" + "fonetika" + "fontawesome" + "fontawesome5" + "fontmfizz" + "fonts-churchslavonic" + "forum" + "fourier" + "fouriernc" + "frcursive" + "frederika2016" + "frimurer" + "garamond-libre" + "garamond-math" + "gelasio" + "genealogy" + "gentium-tug" + "gfsartemisia" + "gfsbodoni" + "gfscomplutum" + "gfsdidot" + "gfsdidotclassic" + "gfsneohellenic" + "gfsneohellenicmath" + "gfssolomos" + "gillcm" + "gillius" + "gnu-freefont" + "gofonts" + "gothic" + "greenpoint" + "grotesq" + "gudea" + "hacm" + "hamnosys" + "hands" + "hep-font" + "hep-math-font" + "heros-otf" + "heuristica" + "hfbright" + "hfoldsty" + "hindmadurai" + "ibarra" + "ifsym" + "imfellenglish" + "inconsolata" + "inconsolata-nerd-font" + "initials" + "inriafonts" + "inter" + "ipaex-type1" + "iwona" + "jablantile" + "jamtimes" + "josefin" + "junicode" + "junicodevf" + "kixfont" + "kpfonts" + "kpfonts-otf" + "kurier" + "lato" + "lexend" + "lfb" + "libertine" + "libertinegc" + "libertinus" + "libertinus-fonts" + "libertinus-otf" + "libertinus-type1" + "libertinust1math" + "librebaskerville" + "librebodoni" + "librecaslon" + "librefranklin" + "libris" + "lineara" + "linguisticspro" + "lobster2" + "logix" + "lxfonts" + "ly1" + "magra" + "marcellus" + "mathabx" + "mathabx-type1" + "mathdesign" + "mdputu" + "mdsymbol" + "merriweather" + "metsymb" + "miama" + "mintspirit" + "missaali" + "mlmodern" + "mnsymbol" + "montserrat" + "mpfonts" + "mweights" + "newcomputermodern" + "newpx" + "newtx" + "newtxsf" + "newtxtt" + "niceframe-type1" + "nimbus15" + "nkarta" + "noto" + "noto-emoji" + "notomath" + "nunito" + "obnov" + "ocherokee" + "ocr-b" + "ocr-b-outline" + "ogham" + "oinuit" + "old-arrows" + "oldlatin" + "oldstandard" + "opensans" + "orkhun" + "oswald" + "overlock" + "pacioli" + "pagella-otf" + "paratype" + "phaistos" + "phonetic" + "pigpen" + "playfair" + "plex" + "plex-otf" + "plimsoll" + "poiretone" + "poltawski" + "prodint" + "punk" + "punk-latex" + "punknova" + "pxtxalfa" + "qualitype" + "quattrocento" + "raleway" + "recycle" + "rit-fonts" + "roboto" + "romande" + "rosario" + "rsfso" + "sansmathaccent" + "sansmathfonts" + "sauter" + "sauterfonts" + "schola-otf" + "scholax" + "schulschriften" + "semaphor" + "shobhika" + "simpleicons" + "skull" + "sourcecodepro" + "sourcesanspro" + "sourceserifpro" + "spectral" + "srbtiks" + "starfont" + "staves" + "step" + "stepgreek" + "stickstoo" + "stix" + "stix2-otf" + "stix2-type1" + "superiors" + "svrsymbols" + "symbats3" + "tapir" + "tempora" + "tengwarscript" + "termes-otf" + "tfrupee" + "theanodidot" + "theanomodern" + "theanooldstyle" + "tinos" + "tpslifonts" + "trajan" + "twemoji-colr" + "txfontsb" + "txuprcal" + "typicons" + "umtypewriter" + "universa" + "universalis" + "uppunctlm" + "urwchancal" + "venturisadf" + "wsuipa" + "xcharter" + "xcharter-math" + "xits" + "yfonts" + "yfonts-otf" + "yfonts-t1" + "yinit-otf" + "ysabeau" + "zlmtt" + ]; + sha512.run = "307728e63dab6f629ac955def8049a9c513fed366ebbf6896bfe21adbe3379941a85ac01dce0647393801ed1d6e4a95d6831e476d4d9805e815ba197f006b99b"; + }; + collection-fontsrecommended = { + revision = 54074; + shortdesc = "Recommended fonts"; + stripPrefix = 0; + deps = [ + "avantgar" + "bookman" + "charter" + "cm-super" + "cmextra" + "collection-basic" + "courier" + "euro" + "euro-ce" + "eurosym" + "fpl" + "helvetic" + "lm" + "lm-math" + "manfnt-font" + "marvosym" + "mathpazo" + "mflogo-font" + "ncntrsbk" + "palatino" + "pxfonts" + "rsfs" + "symbol" + "tex-gyre" + "tex-gyre-math" + "times" + "tipa" + "txfonts" + "utopia" + "wasy" + "wasy-type1" + "wasysym" + "zapfchan" + "zapfding" + ]; + sha512.run = "eaa6e54780a0813a88102258ee3bd7a4640787be0b89eff4ba2c9cc19298bf3e2799ffab4e03e49f20131d07fbac9f601a7223fc1b47257dd0feeb04797c56a8"; + }; + collection-fontutils = { + revision = 61207; + shortdesc = "Graphics and font utilities"; + stripPrefix = 0; + deps = [ + "accfonts" + "afm2pl" + "albatross" + "collection-basic" + "dosepsbin" + "dvipsconfig" + "epstopdf" + "fontinst" + "fontools" + "fontware" + "lcdftypetools" + "luafindfont" + "metatype1" + "mf2pt1" + "ps2eps" + "ps2pk" + "psutils" + "t1utils" + "ttfutils" + ]; + sha512.run = "430c95b7e104cb837b7424ebb17ab7ee1aefd99d70aaceefff8a1924fa949329aebe0d5a28b939fabf28d3c5dfc2dcb466147e1396514d5dcf4f64af231db8a7"; + }; + collection-formatsextra = { + revision = 62226; + shortdesc = "Additional formats"; + stripPrefix = 0; + deps = [ + "aleph" + "antomega" + "collection-basic" + "collection-latex" + "edmac" + "eplain" + "hitex" + "jadetex" + "lambda" + "lollipop" + "mltex" + "mxedruli" + "omega" + "omegaware" + "otibet" + "passivetex" + "psizzl" + "startex" + "texsis" + "xmltex" + "xmltexconfig" + ]; + sha512.run = "6c7f0a1829789edea6a42d45f13f482abc0aa1ecc66b0ba4b70197efff349df75c9a89a98f21537cf6f3751b608fc3ee10ac842613deaf2aa21005374a23bab2"; + }; + collection-games = { + revision = 70179; + shortdesc = "Games typesetting"; + stripPrefix = 0; + deps = [ + "bartel-chess-fonts" + "chess" + "chess-problem-diagrams" + "chessboard" + "chessfss" + "chinesechess" + "collection-latex" + "crossword" + "crosswrd" + "customdice" + "egameps" + "gamebook" + "gamebooklib" + "go" + "hanoi" + "havannah" + "hexboard" + "hexgame" + "hmtrump" + "horoscop" + "jeuxcartes" + "jigsaw" + "labyrinth" + "logicpuzzle" + "mahjong" + "maze" + "musikui" + "nimsticks" + "onedown" + "othello" + "othelloboard" + "pas-crosswords" + "playcards" + "psgo" + "quizztex" + "realtranspose" + "reverxii" + "rouequestions" + "rubik" + "schwalbe-chess" + "scrabble" + "sgame" + "skak" + "skaknew" + "soup" + "sudoku" + "sudokubundle" + "tangramtikz" + "thematicpuzzle" + "trivialpursuit" + "twoxtwogame" + "wargame" + "weiqi" + "wordle" + "xq" + "xskak" + ]; + sha512.run = "005e7e6ea5401369c09bdbb94a1bf6a2f8f35223d5a10ffee524481bfe4033c544aea2142a8af721ea62f6f0d37db84874c3214c857003b82a8ee2c191d0cb5c"; + }; + collection-humanities = { + revision = 68465; + shortdesc = "Humanities packages"; + stripPrefix = 0; + deps = [ + "adtrees" + "bibleref" + "bibleref-lds" + "bibleref-mouth" + "bibleref-parse" + "collection-latex" + "covington" + "diadia" + "dramatist" + "dvgloss" + "ecltree" + "edfnotes" + "eledform" + "eledmac" + "expex" + "expex-glossonly" + "gb4e" + "gmverse" + "jura" + "juraabbrev" + "juramisc" + "jurarsp" + "langnames" + "ledmac" + "lexikon" + "lexref" + "ling-macros" + "linguex" + "liturg" + "metrix" + "nnext" + "opbible" + "parallel" + "parrun" + "phonrule" + "plari" + "play" + "poemscol" + "poetry" + "poetrytex" + "qobitree" + "qtree" + "reledmac" + "rrgtrees" + "rtklage" + "screenplay" + "screenplay-pkg" + "sides" + "stage" + "textglos" + "thalie" + "theatre" + "tree-dvips" + "verse" + "xyling" + ]; + sha512.run = "33b19b29b31671c148900d207f1f9947be502ab215e901afa9c5fe5264bafd004717dc8f6438d1a4b40abfa63c0b94725738b8c8bc117e293676f3db1e25ba6a"; + }; + collection-langarabic = { + revision = 69111; + shortdesc = "Arabic"; + stripPrefix = 0; + deps = [ + "alkalami" + "alpha-persian" + "amiri" + "arabi" + "arabi-add" + "arabic-book" + "arabluatex" + "arabtex" + "bidi" + "bidihl" + "collection-basic" + "dad" + "ghab" + "hvarabic" + "hyphen-arabic" + "hyphen-farsi" + "imsproc" + "iran-bibtex" + "khatalmaqala" + "kurdishlipsum" + "lshort-persian" + "luabidi" + "na-box" + "parsimatn" + "parsinevis" + "persian-bib" + "quran" + "sexam" + "simurgh" + "texnegar" + "tram" + "xepersian" + "xepersian-hm" + "xindy-persian" + ]; + sha512.run = "8cef2ee028669abcc0e964ba01f6287f52c4e2857fa7547036ea00bfa47d83d38c9c126705ba7989cfbc027586315284139ec6131c5ea7701136f1bfd7cdc2cf"; + }; + collection-langchinese = { + revision = 63995; + shortdesc = "Chinese"; + stripPrefix = 0; + deps = [ + "arphic" + "arphic-ttf" + "asymptote-by-example-zh-cn" + "asymptote-faq-zh-cn" + "asymptote-manual-zh-cn" + "cns" + "collection-langcjk" + "ctex" + "ctex-faq" + "exam-zh" + "fandol" + "fduthesis" + "hanzibox" + "hyphen-chinese" + "impatient-cn" + "install-latex-guide-zh-cn" + "latex-notes-zh-cn" + "lshort-chinese" + "nanicolle" + "njurepo" + "pgfornament-han" + "qyxf-book" + "texlive-zh-cn" + "texproposal" + "tlmgr-intro-zh-cn" + "upzhkinsoku" + "xpinyin" + "xtuthesis" + "zhlineskip" + "zhlipsum" + "zhmetrics" + "zhmetrics-uptex" + "zhnumber" + "zhspacing" + ]; + sha512.run = "d10096b2d83dc0378361184a64c347918e75dd51f48d962893371534c375dd8880e8febb1aaf1207e5ce04e59860f629f10c99bbf6304239e1147a5072194137"; + }; + collection-langcjk = { + revision = 65824; + shortdesc = "Chinese/Japanese/Korean (base)"; + stripPrefix = 0; + deps = [ + "adobemapping" + "c90" + "cjk" + "cjk-gs-integrate" + "cjkpunct" + "cjkutils" + "collection-basic" + "dnp" + "evangelion-jfm" + "fixjfm" + "garuda-c90" + "jfmutil" + "norasi-c90" + "pxtatescale" + "xcjk2uni" + "xecjk" + "zitie" + "zxjafont" + ]; + sha512.run = "bee71f9df25db567c0930659e5037d1b6144d5c157e0870e9144f82c6dddbd9df156e580583c65f1bf5f54a70c9fcab108bd117e74af0e28d72a33f6b78207d1"; + }; + collection-langcyrillic = { + revision = 69727; + shortdesc = "Cyrillic"; + stripPrefix = 0; + deps = [ + "babel-belarusian" + "babel-bulgarian" + "babel-russian" + "babel-serbian" + "babel-serbianc" + "babel-ukrainian" + "churchslavonic" + "cmcyr" + "collection-basic" + "collection-latex" + "cyrillic" + "cyrillic-bin" + "cyrplain" + "disser" + "eskd" + "eskdx" + "gost" + "hyphen-belarusian" + "hyphen-bulgarian" + "hyphen-churchslavonic" + "hyphen-mongolian" + "hyphen-russian" + "hyphen-serbian" + "hyphen-ukrainian" + "lcyw" + "lh" + "lhcyr" + "lshort-bulgarian" + "lshort-mongol" + "lshort-russian" + "lshort-ukr" + "mnhyphn" + "mongolian-babel" + "montex" + "mpman-ru" + "numnameru" + "pst-eucl-translation-bg" + "ruhyphen" + "russ" + "serbian-apostrophe" + "serbian-date-lat" + "serbian-def-cyr" + "serbian-lig" + "t2" + "texlive-ru" + "texlive-sr" + "ukrhyph" + "xecyrmongolian" + ]; + sha512.run = "d20f02886419a9c65b665fec5a65aaf232a2ae51ccccd159b611278887d0349bbc2e66b7f2f5ade9b79b918cc6a4cae30268b3472ef3d5441e8922b9c28a1413"; + }; + collection-langczechslovak = { + revision = 54074; + shortdesc = "Czech/Slovak"; + stripPrefix = 0; + deps = [ + "babel-czech" + "babel-slovak" + "cnbwp" + "collection-basic" + "collection-latex" + "cs" + "csbulletin" + "cslatex" + "csplain" + "cstex" + "hyphen-czech" + "hyphen-slovak" + "lshort-czech" + "lshort-slovak" + "texlive-cz" + "vlna" + ]; + sha512.run = "719c321173ca12660891080dae509080934f72d13a9417b2c40a22add963c7c5a1ee95d3b306f0d6c26b0db97d69979c27fbb15d1690849aa03b06d4b0193a67"; + }; + collection-langenglish = { + revision = 68790; + shortdesc = "US and UK English"; + stripPrefix = 0; + deps = [ + "amiweb2c-guide" + "amscls-doc" + "amslatex-primer" + "around-the-bend" + "ascii-chart" + "biblatex-cheatsheet" + "collection-basic" + "components" + "comprehensive" + "dickimaw" + "docsurvey" + "drawing-with-metapost" + "dtxtut" + "first-latex-doc" + "fontinstallationguide" + "forest-quickstart" + "gentle" + "guide-to-latex" + "happy4th" + "hyphen-english" + "impatient" + "intro-scientific" + "knuth-errata" + "knuth-hint" + "knuth-pdf" + "l2tabu-english" + "latex-brochure" + "latex-course" + "latex-doc-ptr" + "latex-for-undergraduates" + "latex-graphics-companion" + "latex-refsheet" + "latex-veryshortguide" + "latex-web-companion" + "latex2e-help-texinfo" + "latex4wp" + "latexcheat" + "latexcourse-rug" + "latexfileinfo-pkgs" + "lshort-english" + "macros2e" + "math-into-latex-4" + "maths-symbols" + "memdesign" + "memoirchapterstyles" + "metafont-beginners" + "metapost-examples" + "patgen2-tutorial" + "pictexsum" + "plain-doc" + "quran-en" + "short-math-guide" + "simplified-latex" + "svg-inkscape" + "tamethebeast" + "tds" + "tex-font-errors-cheatsheet" + "tex-nutshell" + "tex-overview" + "tex-refs" + "tex-vpat" + "texbytopic" + "texonly" + "titlepages" + "tlc2" + "tlc3-examples" + "tlmgrbasics" + "undergradmath" + "visualfaq" + "webguide" + "xetexref" + "yet-another-guide-latex2e" + ]; + sha512.run = "49f20b883df99755070b68d3eacb29c297e76a05b3151d632c26fcf2864d996e4873bbab27429db915f93995923d5b7e680a3c901b28cac888ffa021bc629b74"; + }; + collection-langeuropean = { + revision = 66432; + shortdesc = "Other European languages"; + stripPrefix = 0; + deps = [ + "armtex" + "babel-albanian" + "babel-bosnian" + "babel-breton" + "babel-croatian" + "babel-danish" + "babel-dutch" + "babel-estonian" + "babel-finnish" + "babel-friulan" + "babel-hungarian" + "babel-icelandic" + "babel-irish" + "babel-kurmanji" + "babel-latin" + "babel-latvian" + "babel-lithuanian" + "babel-macedonian" + "babel-norsk" + "babel-occitan" + "babel-piedmontese" + "babel-romanian" + "babel-romansh" + "babel-samin" + "babel-scottish" + "babel-slovenian" + "babel-swedish" + "babel-turkish" + "babel-welsh" + "collection-basic" + "finbib" + "gloss-occitan" + "hrlatex" + "huaz" + "hulipsum" + "hyphen-croatian" + "hyphen-danish" + "hyphen-dutch" + "hyphen-estonian" + "hyphen-finnish" + "hyphen-friulan" + "hyphen-hungarian" + "hyphen-icelandic" + "hyphen-irish" + "hyphen-kurmanji" + "hyphen-latin" + "hyphen-latvian" + "hyphen-lithuanian" + "hyphen-macedonian" + "hyphen-norwegian" + "hyphen-occitan" + "hyphen-piedmontese" + "hyphen-romanian" + "hyphen-romansh" + "hyphen-slovenian" + "hyphen-swedish" + "hyphen-turkish" + "hyphen-uppersorbian" + "hyphen-welsh" + "kaytannollista-latexia" + "lithuanian" + "lshort-dutch" + "lshort-estonian" + "lshort-finnish" + "lshort-slovenian" + "lshort-turkish" + "nevelok" + "rojud" + "swebib" + "turkmen" + ]; + sha512.run = "5fa87f174fc372c21b80ebe6b097525218da63892bc8445a29c24f2bfb015b0f04c100467f85e6c9e16a27ad26e31f00832d7712ebea7dec8631a730a95a9759"; + }; + collection-langfrench = { + revision = 67951; + shortdesc = "French"; + stripPrefix = 0; + deps = [ + "aeguill" + "annee-scolaire" + "apprendre-a-programmer-en-tex" + "apprends-latex" + "babel-basque" + "babel-french" + "basque-book" + "basque-date" + "bib-fr" + "bibleref-french" + "booktabs-fr" + "cahierprof" + "collection-basic" + "couleurs-fr" + "droit-fr" + "e-french" + "epslatex-fr" + "expose-expl3-dunkerque-2019" + "facture" + "formation-latex-ul" + "frenchmath" + "frletter" + "frpseudocode" + "hyphen-basque" + "hyphen-french" + "impatient-fr" + "impnattypo" + "l2tabu-french" + "latex2e-help-texinfo-fr" + "letgut" + "lshort-french" + "mafr" + "matapli" + "panneauxroute" + "profcollege" + "proflabo" + "proflycee" + "profsio" + "tabvar" + "tdsfrmath" + "texlive-fr" + "translation-array-fr" + "translation-dcolumn-fr" + "translation-natbib-fr" + "translation-tabbing-fr" + "variations" + "visualfaq-fr" + "visualtikz" + ]; + sha512.run = "83be4aa190b32580ab6334a00785123be5678a95f84589dea2ccc2ce77a6328bf8954f28e683a9614b43a062901a28b3f6b060bd968876094aeab5b1f9aee816"; + }; + collection-langgerman = { + revision = 68711; + shortdesc = "German"; + stripPrefix = 0; + deps = [ + "apalike-german" + "autotype" + "babel-german" + "bibleref-german" + "booktabs-de" + "collection-basic" + "csquotes-de" + "dehyph" + "dehyph-exptl" + "dhua" + "dtk-bibliography" + "etdipa" + "etoolbox-de" + "fifinddo-info" + "german" + "germbib" + "germkorr" + "hausarbeit-jura" + "hyphen-german" + "koma-script-examples" + "l2picfaq" + "l2tabu" + "latexcheat-de" + "lshort-german" + "lualatex-doc-de" + "microtype-de" + "milog" + "quran-de" + "r_und_s" + "schulmathematik" + "templates-fenn" + "templates-sommer" + "termcal-de" + "texlive-de" + "tipa-de" + "translation-arsclassica-de" + "translation-biblatex-de" + "translation-chemsym-de" + "translation-ecv-de" + "translation-enumitem-de" + "translation-europecv-de" + "translation-filecontents-de" + "translation-moreverb-de" + "udesoftec" + "uhrzeit" + "umlaute" + "voss-mathcol" + ]; + sha512.run = "3b52fac1e2520302998c3b11bc2f77b34d5bd4cc09f4fa4b9238ece66b0e36e676643f7476846d1b25eb64d31b0dbe87a33ad44669be101f61cf223e70ecb047"; + }; + collection-langgreek = { + revision = 65038; + shortdesc = "Greek"; + stripPrefix = 0; + deps = [ + "babel-greek" + "begingreek" + "betababel" + "cbfonts" + "cbfonts-fd" + "collection-basic" + "gfsbaskerville" + "gfsporson" + "greek-fontenc" + "greek-inputenc" + "greekdates" + "greektex" + "greektonoi" + "hyphen-ancientgreek" + "hyphen-greek" + "ibycus-babel" + "ibygrk" + "kerkis" + "levy" + "lgreek" + "lgrmath" + "mkgrkindex" + "talos" + "teubner" + "xgreek" + "yannisgr" + ]; + sha512.run = "800991b6bb8ac7772ad030ad665b812abd9b294498f7b7678be721ccc87d54607e267bd189a0591ebead2c6ecb64047e5b5581c374f067c3b1575b6d442cc6c9"; + }; + collection-langitalian = { + revision = 55129; + shortdesc = "Italian"; + stripPrefix = 0; + deps = [ + "amsldoc-it" + "amsmath-it" + "amsthdoc-it" + "antanilipsum" + "babel-italian" + "codicefiscaleitaliano" + "collection-basic" + "fancyhdr-it" + "fixltxhyph" + "frontespizio" + "hyphen-italian" + "itnumpar" + "l2tabu-italian" + "latex4wp-it" + "layaureo" + "lshort-italian" + "psfrag-italian" + "texlive-it" + "verifica" + ]; + sha512.run = "6ec5e8a62e3c1ed8e3c23542381091d38c77af507af7088a55e44f1e34b85d01ec19342db4541d9d6cd712c0929d54a3fc663e1d8fde3c53fef0d6fc43be4994"; + }; + collection-langjapanese = { + revision = 69967; + shortdesc = "Japanese"; + stripPrefix = 0; + deps = [ + "ascmac" + "asternote" + "babel-japanese" + "bxbase" + "bxcjkjatype" + "bxghost" + "bxjaholiday" + "bxjalipsum" + "bxjaprnind" + "bxjatoucs" + "bxjscls" + "bxorigcapt" + "bxwareki" + "collection-langcjk" + "convbkmk" + "endnotesj" + "gckanbun" + "gentombow" + "haranoaji" + "haranoaji-extra" + "ieejtran" + "ifptex" + "ifxptex" + "ipaex" + "japanese-mathformulas" + "japanese-otf" + "jieeetran" + "jlreq" + "jlreq-deluxe" + "jpneduenumerate" + "jpnedumathsymbols" + "jsclasses" + "kanbun" + "lshort-japanese" + "luatexja" + "mendex-doc" + "morisawa" + "pbibtex-base" + "pbibtex-manual" + "platex" + "platex-tools" + "platexcheat" + "plautopatch" + "ptex" + "ptex-base" + "ptex-fontmaps" + "ptex-fonts" + "ptex-manual" + "ptex2pdf" + "pxbase" + "pxchfon" + "pxcjkcat" + "pxjahyper" + "pxjodel" + "pxrubrica" + "pxufont" + "sjtutex" + "texlive-ja" + "uplatex" + "uptex" + "uptex-base" + "uptex-fonts" + "wadalab" + "zxjafbfont" + "zxjatype" + ]; + sha512.run = "18296a73452e8d346ba10b8241adfdb6b0a258dd443517a566e415f418e7c158c6d179f20c5818a36fcb12bce816571c0d317120f033ca1f20c5acfcfa00074d"; + }; + collection-langkorean = { + revision = 54074; + shortdesc = "Korean"; + stripPrefix = 0; + deps = [ + "baekmuk" + "cjk-ko" + "collection-langcjk" + "kotex-oblivoir" + "kotex-plain" + "kotex-utf" + "kotex-utils" + "lshort-korean" + "nanumtype1" + "pmhanguljamo" + "uhc" + "unfonts-core" + "unfonts-extra" + ]; + sha512.run = "2d93df728d34137c8f9a884aa2871a2980e806672006f2c5f0c5f79412d5789c6f94958363cfc9a78b5a97a7d76bbb6cb157b2cb2a8a283f7afdfd838fa24883"; + }; + collection-langother = { + revision = 68719; + shortdesc = "Other languages"; + stripPrefix = 0; + deps = [ + "aalok" + "akshar" + "amsldoc-vn" + "aramaic-serto" + "babel-azerbaijani" + "babel-esperanto" + "babel-georgian" + "babel-hebrew" + "babel-indonesian" + "babel-interlingua" + "babel-malay" + "babel-sorbian" + "babel-thai" + "babel-vietnamese" + "bangla" + "bangtex" + "bengali" + "burmese" + "chhaya" + "cjhebrew" + "collection-basic" + "ctib" + "culmus" + "ebong" + "ethiop" + "ethiop-t1" + "fc" + "fonts-tlwg" + "hebrew-fonts" + "hindawi-latex-template" + "hyphen-afrikaans" + "hyphen-armenian" + "hyphen-coptic" + "hyphen-esperanto" + "hyphen-ethiopic" + "hyphen-georgian" + "hyphen-indic" + "hyphen-indonesian" + "hyphen-interlingua" + "hyphen-sanskrit" + "hyphen-thai" + "hyphen-turkmen" + "latex-mr" + "latexbangla" + "latino-sine-flexione" + "lshort-thai" + "lshort-vietnamese" + "marathi" + "ntheorem-vn" + "padauk" + "quran-bn" + "quran-id" + "quran-ur" + "sanskrit" + "sanskrit-t1" + "thaienum" + "thaispec" + "unicode-alphabets" + "velthuis" + "vntex" + "wnri" + "wnri-latex" + "xetex-devanagari" + ]; + sha512.run = "312be65445c4b862e50fcf4bb8d4413b233eadee8a9ca14ff3cb4eb37549314f37a5d00d22a4b3b2cd461b3b0473a7426a5e7f33ffbaf6dfc0687f1af754cae1"; + }; + collection-langpolish = { + revision = 54074; + shortdesc = "Polish"; + stripPrefix = 0; + deps = [ + "babel-polish" + "bredzenie" + "cc-pl" + "collection-basic" + "collection-latex" + "gustlib" + "gustprog" + "hyphen-polish" + "lshort-polish" + "mex" + "mwcls" + "pl" + "polski" + "przechlewski-book" + "qpxqtx" + "tap" + "tex-virtual-academy-pl" + "texlive-pl" + "utf8mex" + ]; + sha512.run = "fc0d08f70aeb83869109290e6d1585d513097dcd4e17791752ecd3d26ac202838afb5931f78ceaeeaf72c63b18fe9183edd650c075d03188f24cb2caded178de"; + }; + collection-langportuguese = { + revision = 67125; + shortdesc = "Portuguese"; + stripPrefix = 0; + deps = [ + "babel-portuges" + "beamer-tut-pt" + "collection-basic" + "cursolatex" + "feupphdteses" + "hyphen-portuguese" + "latex-via-exemplos" + "latexcheat-ptbr" + "lshort-portuguese" + "numberpt" + "ordinalpt" + "ptlatexcommands" + "xypic-tut-pt" + ]; + sha512.run = "554f7d7e4828e1122cf3bc6b24c67661046ce2ae646975054f6903f8c2dfd3e63131ada963cd3b5a1ca3128539f039b4d275b9c8caadde1dbe9118d583d47585"; + }; + collection-langspanish = { + revision = 67307; + shortdesc = "Spanish"; + stripPrefix = 0; + deps = [ + "antique-spanish-units" + "babel-catalan" + "babel-galician" + "babel-spanish" + "collection-basic" + "es-tex-faq" + "hyphen-catalan" + "hyphen-galician" + "hyphen-spanish" + "l2tabu-spanish" + "latex2e-help-texinfo-spanish" + "latexcheat-esmx" + "lshort-spanish" + "texlive-es" + ]; + sha512.run = "1f3c1cc4d1e28871085092314a58671a2acab47da0a758c0bdff569b0a80697ac3c32e9991a8f77268f86c02e51420e4d999a9eef72a2a7353a3efbc633e25a9"; + }; + collection-latex = { + revision = 69131; + shortdesc = "LaTeX fundamental packages"; + stripPrefix = 0; + deps = [ + "ae" + "amscls" + "amsmath" + "atbegshi" + "atveryend" + "auxhook" + "babel" + "babel-english" + "babelbib" + "bigintcalc" + "bitset" + "bookmark" + "carlisle" + "collection-basic" + "colortbl" + "epstopdf-pkg" + "etexcmds" + "fancyhdr" + "firstaid" + "fix2col" + "geometry" + "gettitlestring" + "graphics" + "graphics-cfg" + "grfext" + "hopatch" + "hycolor" + "hyperref" + "intcalc" + "kvdefinekeys" + "kvoptions" + "kvsetkeys" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-bin" + "latex-fonts" + "latex-lab" + "latexconfig" + "letltxmacro" + "ltxcmds" + "ltxmisc" + "mfnfss" + "mptopdf" + "natbib" + "oberdiek" + "pagesel" + "pdfescape" + "pdftexcmds" + "pslatex" + "psnfss" + "pspicture" + "refcount" + "rerunfilecheck" + "stringenc" + "tools" + "uniquecounter" + "url" + ]; + sha512.run = "889eae40b82f31c7c4b3a17740399c763dabec7986fcb39261b252afff69a03a16e660b114e358cd72e3fafa14a158849cf03aa2ad4d73a5bee4ca9abc4c24af"; + }; + collection-latexextra = { + revision = 70534; + shortdesc = "LaTeX additional packages"; + stripPrefix = 0; + deps = [ + "2up" + "a0poster" + "a4wide" + "a5comb" + "abraces" + "abspos" + "abstract" + "accessibility" + "accsupp" + "achemso" + "acro" + "acronym" + "acroterm" + "actuarialangle" + "actuarialsymbol" + "addfont" + "addlines" + "adjmulticol" + "adjustbox" + "adrconv" + "advdate" + "affilauthor" + "akktex" + "akletter" + "alchemist" + "alertmessage" + "alnumsec" + "alphalph" + "alterqcm" + "altfont" + "altsubsup" + "amsaddr" + "animate" + "anonchap" + "answers" + "anyfontsize" + "appendix" + "appendixnumberbeamer" + "apptools" + "arabicfront" + "arcs" + "argumentation" + "arraycols" + "arrayjobx" + "arraysort" + "arydshln" + "asciilist" + "askinclude" + "assignment" + "assoccnt" + "association-matrix" + "atenddvi" + "atendofenv" + "attachfile" + "aurl" + "authoraftertitle" + "authorarchive" + "authorindex" + "autofancyhdr" + "autonum" + "autopdf" + "autopuncitems" + "avremu" + "awesomebox" + "axessibility" + "background" + "bankstatement" + "bashful" + "basicarith" + "bchart" + "beamer-rl" + "beamer2thesis" + "beamerappendixnote" + "beameraudience" + "beamerauxtheme" + "beamercolorthemeowl" + "beamerdarkthemes" + "beamerposter" + "beamersubframe" + "beamertheme-arguelles" + "beamertheme-cuerna" + "beamertheme-detlevcm" + "beamertheme-epyt" + "beamertheme-focus" + "beamertheme-light" + "beamertheme-metropolis" + "beamertheme-npbt" + "beamertheme-phnompenh" + "beamertheme-pure-minimalistic" + "beamertheme-rainbow" + "beamertheme-saintpetersburg" + "beamertheme-simpledarkblue" + "beamertheme-simpleplus" + "beamertheme-tcolorbox" + "beamertheme-trigon" + "beamertheme-upenn-bc" + "beamerthemeamurmaple" + "beamerthemeconcrete" + "beamerthemejltree" + "beamerthemelalic" + "beamerthemenirma" + "beamerthemenord" + "bearwear" + "beaulivre" + "beautybook" + "beautynote" + "beton" + "bewerbung" + "bez123" + "bhcexam" + "bibletext" + "bigfoot" + "bigints" + "bilingualpages" + "biochemistry-colors" + "bithesis" + "bizcard" + "blindtext" + "blkarray" + "block" + "blowup" + "bnumexpr" + "boites" + "bold-extra" + "book-of-common-prayer" + "bookcover" + "bookest" + "booklet" + "bookshelf" + "boolexpr" + "bophook" + "boxedminipage" + "boxhandler" + "bracketkey" + "braket" + "breakurl" + "bubblesort" + "bullcntr" + "bxcalc" + "bxdpx-beamer" + "bxdvidriver" + "bxenclose" + "bxnewfont" + "bxpapersize" + "bxpdfver" + "bxtexlogo" + "calcage" + "calctab" + "calculator" + "calrsfs" + "cals" + "calxxxx-yyyy" + "cancel" + "canoniclayout" + "capt-of" + "captcont" + "captdef" + "carbohydrates" + "cases" + "casyl" + "catchfile" + "catchfilebetweentags" + "catechis" + "catoptions" + "cbcoptic" + "ccaption" + "cclicenses" + "cd" + "cd-cover" + "cdcmd" + "cdpbundl" + "cellprops" + "cellspace" + "censor" + "centeredline" + "centerlastline" + "changebar" + "changelayout" + "changelog" + "changepage" + "changes" + "chappg" + "chapterfolder" + "cheatsheet" + "checkend" + "chet" + "chextras" + "childdoc" + "chkfloat" + "chletter" + "chngcntr" + "chronology" + "circ" + "circledsteps" + "circledtext" + "classics" + "classpack" + "clefval" + "cleveref" + "cleveref-forward" + "cleveref-usedon" + "clicks" + "clipboard" + "clistmap" + "clock" + "clrdblpg" + "clrstrip" + "cmdstring" + "cmdtrack" + "cmsd" + "cnltx" + "cntformats" + "cntperchap" + "codebox" + "codedescribe" + "codedoc" + "codehigh" + "codepage" + "codesection" + "collcell" + "collectbox" + "collection-latexrecommended" + "collection-pictures" + "colophon" + "color-edits" + "colordoc" + "colorframed" + "colorinfo" + "coloring" + "colorist" + "colorspace" + "colortab" + "colorwav" + "colorweb" + "colourchange" + "combelow" + "combine" + "comma" + "commado" + "commedit" + "comment" + "commonunicode" + "competences" + "concepts" + "concprog" + "conditext" + "constants" + "continue" + "contour" + "contracard" + "conv-xkv" + "cooking" + "cooking-units" + "cool" + "coolfn" + "coollist" + "coolstr" + "coolthms" + "cooltooltips" + "coop-writing" + "coordsys" + "copyedit" + "copyrightbox" + "coseoul" + "counterz" + "counttexruns" + "courseoutline" + "coursepaper" + "coverpage" + "cprotect" + "cprotectinside" + "crbox" + "create-theorem" + "creationboites" + "crefthe" + "crossreference" + "crossreftools" + "crumbs" + "csquotes" + "css-colors" + "csvmerge" + "csvsimple" + "cuisine" + "currency" + "currfile" + "curriculum-vitae" + "currvita" + "customenvs" + "cutwin" + "cv" + "cv4tw" + "cweb-latex" + "cyber" + "cybercic" + "darkmode" + "dashbox" + "dashrule" + "dashundergaps" + "dataref" + "datatool" + "datax" + "dateiliste" + "datenumber" + "datestamp" + "datetime" + "datetime2" + "datetime2-bahasai" + "datetime2-basque" + "datetime2-breton" + "datetime2-bulgarian" + "datetime2-catalan" + "datetime2-croatian" + "datetime2-czech" + "datetime2-danish" + "datetime2-dutch" + "datetime2-en-fulltext" + "datetime2-english" + "datetime2-esperanto" + "datetime2-estonian" + "datetime2-finnish" + "datetime2-french" + "datetime2-galician" + "datetime2-german" + "datetime2-greek" + "datetime2-hebrew" + "datetime2-icelandic" + "datetime2-irish" + "datetime2-it-fulltext" + "datetime2-italian" + "datetime2-latin" + "datetime2-lsorbian" + "datetime2-magyar" + "datetime2-norsk" + "datetime2-polish" + "datetime2-portuges" + "datetime2-romanian" + "datetime2-russian" + "datetime2-samin" + "datetime2-scottish" + "datetime2-serbian" + "datetime2-slovak" + "datetime2-slovene" + "datetime2-spanish" + "datetime2-swedish" + "datetime2-turkish" + "datetime2-ukrainian" + "datetime2-usorbian" + "datetime2-welsh" + "dblfloatfix" + "dbshow" + "debate" + "decimal" + "decimalcomma" + "decorule" + "defoldfonts" + "delimtxt" + "democodetools" + "denisbdoc" + "diabetes-logbook" + "diagbox" + "diagnose" + "dialogl" + "dichokey" + "didec" + "dimnum" + "dinbrief" + "directory" + "dirtytalk" + "dlfltxb" + "dnaseq" + "doclicense" + "docmfp" + "docmute" + "docshots" + "doctools" + "documentation" + "docutils" + "doi" + "dotarrow" + "dotlessi" + "dotseqn" + "download" + "dox" + "dpfloat" + "dprogress" + "drac" + "draftcopy" + "draftfigure" + "draftwatermark" + "dtk" + "dtxdescribe" + "dtxgallery" + "ducksay" + "duckuments" + "dvdcoll" + "dynamicnumber" + "dynblocks" + "ean13isbn" + "easy" + "easy-todo" + "easybook" + "easyfig" + "easyfloats" + "easyformat" + "easylist" + "easyreview" + "ebezier" + "ecclesiastic" + "econlipsum" + "ecv" + "ed" + "edichokey" + "edmargin" + "eemeir" + "efbox" + "egplot" + "ehhline" + "einfart" + "elements" + "ellipsis" + "elmath" + "elocalloc" + "elpres" + "elzcards" + "emarks" + "embedall" + "embedfile" + "embrac" + "emo" + "emotion" + "emptypage" + "emulateapj" + "endfloat" + "endheads" + "endnotes" + "endnotes-hy" + "engpron" + "engrec" + "enotez" + "enumitem" + "enumitem-zref" + "envbig" + "environ" + "envlab" + "epigraph" + "epigraph-keys" + "epiolmec" + "eq-pin2corr" + "eqell" + "eqlist" + "eqnalign" + "eqname" + "eqparbox" + "errata" + "erw-l3" + "esami" + "esdiff" + "esieecv" + "esindex" + "esint" + "esint-type1" + "etaremune" + "etextools" + "etl" + "etoc" + "eukdate" + "eulerpx" + "europasscv" + "europecv" + "everyhook" + "everypage" + "exam" + "exam-lite" + "exam-n" + "exam-randomizechoices" + "examdesign" + "example" + "examplep" + "examz" + "exceltex" + "excludeonly" + "exercise" + "exercisebank" + "exercisepoints" + "exercises" + "exesheet" + "exframe" + "exp-testopt" + "expdlist" + "export" + "exsheets" + "exsol" + "extract" + "facsimile" + "factura" + "fail-fast" + "familytree" + "fancyhandout" + "fancylabel" + "fancynum" + "fancypar" + "fancyqr" + "fancyslides" + "fancytabs" + "fancytooltips" + "fbox" + "fcolumn" + "fetchcls" + "fewerfloatpages" + "ffcode" + "ffslides" + "fgruler" + "fifo-stack" + "figsize" + "filecontents" + "filecontentsdef" + "filedate" + "fileinfo" + "filemod" + "fink" + "finstrut" + "fistrum" + "fithesis" + "fixcmex" + "fixfoot" + "fixme" + "fixmetodonotes" + "fjodor" + "flabels" + "flacards" + "flagderiv" + "flashcards" + "flashmovie" + "flexipage" + "flipbook" + "flippdf" + "floatbytocbasic" + "floatflt" + "floatrow" + "floatrowbytocbasic" + "flowfram" + "fmp" + "fmtcount" + "fn2end" + "fnbreak" + "fncychap" + "fncylab" + "fnpara" + "fnpct" + "fnumprint" + "foilhtml" + "foliono" + "fontaxes" + "fontscale" + "fontsetup" + "fontsize" + "fonttable" + "footmisc" + "footmisx" + "footnotebackref" + "footnoterange" + "footnpag" + "forarray" + "foreign" + "forloop" + "formlett" + "forms16be" + "formular" + "fragments" + "frame" + "framed" + "frankenstein" + "frege" + "froufrou" + "ftcap" + "ftnxtra" + "fullblck" + "fullminipage" + "fullwidth" + "functional" + "fundus-calligra" + "fundus-cyr" + "fundus-sueterlin" + "fvextra" + "fwlw" + "g-brief" + "gatherenum" + "gauss" + "gcard" + "gcite" + "gender" + "genealogy-profiles" + "genmpage" + "gensymb" + "getfiledate" + "getitems" + "gindex" + "ginpenc" + "gitfile-info" + "gitinfo" + "gitinfo2" + "gitlog" + "gitstatus" + "gitver" + "globalvals" + "gloss" + "glossaries" + "glossaries-danish" + "glossaries-dutch" + "glossaries-english" + "glossaries-estonian" + "glossaries-extra" + "glossaries-finnish" + "glossaries-french" + "glossaries-german" + "glossaries-irish" + "glossaries-italian" + "glossaries-magyar" + "glossaries-norsk" + "glossaries-nynorsk" + "glossaries-polish" + "glossaries-portuges" + "glossaries-serbian" + "glossaries-slovene" + "glossaries-spanish" + "gmdoc" + "gmdoc-enhance" + "gmiflink" + "gmutils" + "gmverb" + "grabbox" + "gradient-text" + "grading-scheme" + "graphbox" + "graphicscache" + "graphicx-psmin" + "graphicxbox" + "graphpaper" + "grayhints" + "grfpaste" + "grid" + "grid-system" + "gridpapers" + "gridset" + "gridslides" + "gs1" + "guitlogo" + "ha-prosper" + "hackthefootline" + "halloweenmath" + "handin" + "handout" + "handoutwithnotes" + "hang" + "hanging" + "hardwrap" + "harnon-cv" + "harpoon" + "hc" + "he-she" + "hep-acronym" + "hep-float" + "hep-math" + "hep-text" + "hep-title" + "hereapplies" + "hhtensor" + "hideanswer" + "highlightlatex" + "highlightx" + "histogr" + "hitec" + "hitreport" + "hletter" + "hobsub" + "homework" + "hpsdiss" + "href-ul" + "hrefhide" + "huawei" + "hvextern" + "hvindex" + "hvlogos" + "hvpygmentex" + "hvqrurl" + "hwemoji" + "hypdestopt" + "hypdoc" + "hypdvips" + "hyper" + "hyperbar" + "hypernat" + "hyperxmp" + "hyphenat" + "identkey" + "idxcmds" + "idxlayout" + "iexec" + "ifallfalse" + "iffont" + "ifmslide" + "ifmtarg" + "ifnextok" + "ifoddpage" + "ifthenx" + "iitem" + "image-gallery" + "imakeidx" + "import" + "incgraph" + "indextools" + "inline-images" + "inlinedef" + "inlinelabel" + "inputenx" + "inputtrc" + "interactiveworkbook" + "interfaces" + "intopdf" + "inversepath" + "invoice" + "invoice-class" + "invoice2" + "ipsum" + "iso" + "iso10303" + "isodate" + "isodoc" + "isonums" + "isopt" + "isorot" + "isosafety" + "isotope" + "issuulinks" + "iwonamath" + "jlabels" + "jmsdelim" + "jobname-suffix" + "joinbox" + "jslectureplanner" + "jumplines" + "jvlisting" + "kalendarium" + "kantlipsum" + "kerntest" + "keycommand" + "keyfloat" + "keyindex" + "keyparse" + "keyreader" + "keystroke" + "keyval2e" + "keyvaltable" + "kix" + "knowledge" + "koma-moderncvclassic" + "koma-script-sfs" + "komacv" + "komacv-rg" + "korigamik" + "ktv-texdata" + "l3build" + "labbook" + "labels" + "labels4easylist" + "labelschanged" + "lambdax" + "lastbib" + "lastpackage" + "lastpage" + "latex-amsmath-dev" + "latex-base-dev" + "latex-bin-dev" + "latex-context-ppchtex" + "latex-firstaid-dev" + "latex-graphics-dev" + "latex-lab-dev" + "latex-tools-dev" + "latex-uni8" + "latex2pydata" + "latexcolors" + "latexdemo" + "latexgit" + "layouts" + "lazylist" + "lccaps" + "lcd" + "lcg" + "leading" + "leaflet" + "lebhart" + "lectures" + "lectureslides" + "leftidx" + "leftindex" + "leipzig" + "lengthconvert" + "lettre" + "lettrine" + "lewis" + "lhelp" + "libgreek" + "limap" + "linegoal" + "linop" + "lipsum" + "lisp-on-tex" + "listing" + "listingsutf8" + "listlbls" + "listliketab" + "listofsymbols" + "litebook" + "litesolution" + "litetable" + "lkproof" + "lmake" + "locality" + "logbox" + "logical-markup-utils" + "logoetalab" + "logpap" + "longfbox" + "longfigure" + "longnamefilelist" + "loops" + "lsc" + "lstaddons" + "lstfiracode" + "lt3graph" + "lt3rawobjects" + "ltablex" + "ltabptch" + "ltxdockit" + "ltxguidex" + "ltxkeys" + "ltxnew" + "ltxtools" + "lua-check-hyphen" + "lua-physical" + "luatodonotes" + "macrolist" + "macroswap" + "magaz" + "magicnum" + "magicwatermark" + "mailing" + "mailmerge" + "makebarcode" + "makebase" + "makebox" + "makecell" + "makecirc" + "makecmds" + "makecookbook" + "makedtx" + "makeglos" + "makelabels" + "makerobust" + "mandi" + "manfnt" + "manuscript" + "manyind" + "marginfit" + "marginfix" + "marginnote" + "markdown" + "mathalpha" + "mathastext" + "mathexam" + "mathfam256" + "mathfont" + "maybemath" + "mcaption" + "mceinleger" + "mcexam" + "mcite" + "mciteplus" + "mdframed" + "media4svg" + "media9" + "medstarbeamer" + "meetingmins" + "memexsupp" + "memory" + "mensa-tex" + "menu" + "menucard" + "menukeys" + "metalogox" + "metanorma" + "metastr" + "method" + "metre" + "mfirstuc" + "mftinc" + "mi-solns" + "midpage" + "mindflow" + "minibox" + "minidocument" + "minifp" + "minimalist" + "minipage-marginpar" + "minitoc" + "minorrevision" + "minted" + "minutes" + "mla-paper" + "mleftright" + "mlist" + "mmap" + "mnotes" + "moderncv" + "modernposter" + "moderntimeline" + "modref" + "modroman" + "modular" + "moloch" + "monofill" + "moodle" + "moreenum" + "morefloats" + "morehype" + "moresize" + "moreverb" + "morewrites" + "movement-arrows" + "movie15" + "mparhack" + "mpostinl" + "msc" + "msg" + "mslapa" + "mtgreek" + "multenum" + "multiaudience" + "multibbl" + "multicap" + "multicolrule" + "multidef" + "multienv" + "multiexpand" + "multifootnote" + "multilang" + "multiple-choice" + "multirow" + "mversion" + "mwe" + "mycv" + "mylatex" + "mylatexformat" + "nag" + "nameauth" + "namespc" + "ncclatex" + "ncctools" + "needspace" + "nestquot" + "newcommand" + "newenviron" + "newfile" + "newlfm" + "newspaper" + "newunicodechar" + "newvbtm" + "newverbs" + "nextpage" + "nfssext-cfr" + "nicefilelist" + "niceframe" + "nicetext" + "nidanfloat" + "ninecolors" + "nlctdoc" + "noconflict" + "noindentafter" + "noitcrul" + "nolbreaks" + "nomencl" + "nomentbl" + "non-decimal-units" + "nonfloat" + "nonumonpart" + "nopageno" + "normalcolor" + "notebeamer" + "notes" + "notespages" + "notestex" + "notoccite" + "nowidow" + "nox" + "ntheorem" + "numberedblock" + "numname" + "numprint" + "numspell" + "ocg-p" + "ocgx" + "ocgx2" + "ocr-latex" + "octavo" + "oldstyle" + "onlyamsmath" + "opcit" + "opencolor" + "optidef" + "optional" + "options" + "orcidlink" + "orientation" + "outline" + "outliner" + "outlines" + "outlining" + "overlays" + "overpic" + "padcount" + "pagecolor" + "pagecont" + "pagegrid" + "pagelayout" + "pagenote" + "pagerange" + "pageslts" + "palette" + "pangram" + "paper" + "papercdcase" + "papermas" + "papertex" + "paracol" + "parades" + "paralist" + "paresse" + "parnotes" + "parsa" + "parselines" + "pas-cours" + "pas-cv" + "pas-tableur" + "patch" + "patchcmd" + "pauldoc" + "pawpict" + "pax" + "pbalance" + "pbox" + "pbsheet" + "pdf14" + "pdfannotations" + "pdfcol" + "pdfcolmk" + "pdfcomment" + "pdfcprot" + "pdfmarginpar" + "pdfoverlay" + "pdfpagediff" + "pdfpc" + "pdfpc-movie" + "pdfprivacy" + "pdfrender" + "pdfreview" + "pdfscreen" + "pdfslide" + "pdfsync" + "pdfwin" + "pdfx" + "pecha" + "perltex" + "permute" + "petiteannonce" + "pgfmath-xfp" + "phfcc" + "phfextendedabstract" + "phffullpagefigure" + "phfnote" + "phfparen" + "phfqit" + "phfquotetext" + "phfsvnwatermark" + "phfthm" + "philex" + "phonenumbers" + "photo" + "photobook" + "picture" + "piff" + "pkgloader" + "placeins" + "plantslabels" + "plates" + "plweb" + "pmboxdraw" + "polynom" + "polynomial" + "polytable" + "postcards" + "poster-mac" + "postnotes" + "powerdot" + "ppr-prv" + "ppt-slides" + "practicalreports" + "precattl" + "prelim2e" + "preprint" + "pressrelease" + "prettyref" + "prettytok" + "preview" + "printlen" + "probsoln" + "profmaquette" + "program" + "progress" + "progressbar" + "projlib" + "proofread" + "properties" + "prosper" + "protex" + "protocol" + "psfragx" + "pstool" + "pstring" + "pxgreeks" + "pygmentex" + "pynotebook" + "python" + "pythonimmediate" + "q-and-a" + "qcm" + "qstest" + "qsymbols" + "quicktype" + "quiz2socrative" + "quotchap" + "quoting" + "quotmark" + "ran_toks" + "randexam" + "randtext" + "rccol" + "rcs-multi" + "rcsinfo" + "readablecv" + "readarray" + "realboxes" + "recipe" + "recipebook" + "recipecard" + "rectopma" + "refcheck" + "refenums" + "reflectgraphics" + "refman" + "refstyle" + "regcount" + "regexpatch" + "register" + "regstats" + "relenc" + "relsize" + "repeatindex" + "repltext" + "rescansync" + "resmes" + "responsive" + "returntogrid" + "rgltxdoc" + "rjlparshap" + "rlepsf" + "rmpage" + "robust-externalize" + "robustcommand" + "robustindex" + "romanbar" + "romanbarpagenumber" + "romanneg" + "romannum" + "rorlink" + "rotfloat" + "rotpages" + "roundbox" + "rterface" + "rtkinenc" + "rulerbox" + "rulercompass" + "runcode" + "rvwrite" + "sanitize-umlaut" + "sauerj" + "saveenv" + "savefnmark" + "savesym" + "savetrees" + "scale" + "scalebar" + "scalerel" + "scanpages" + "schedule" + "schooldocs" + "scontents" + "scrambledenvs" + "scrlayer-fancyhdr" + "scrlttr2copy" + "scrwfile" + "sdaps" + "sdrt" + "secdot" + "secnum" + "sectionbox" + "sectionbreak" + "sectsty" + "seealso" + "selectp" + "selinput" + "semantex" + "semantic" + "semantic-markup" + "semesterplanner" + "semioneside" + "semproc" + "semtex" + "sepfootnotes" + "seqsplit" + "sesstime" + "setspaceenhanced" + "sf298" + "sffms" + "sfmath" + "shadethm" + "shadow" + "shadowtext" + "shapepar" + "shdoc" + "shipunov" + "shorttoc" + "show2e" + "showcharinbox" + "showdim" + "showexpl" + "showlabels" + "sidecap" + "sidenotes" + "sidenotesplus" + "silence" + "sillypage" + "sim-os-menus" + "simplecd" + "simplecv" + "simpleinvoice" + "simplivre" + "sitem" + "skb" + "skdoc" + "skeldoc" + "skeycommand" + "skeyval" + "skills" + "skrapport" + "slantsc" + "smalltableof" + "smart-eqn" + "smartref" + "smartunits" + "snapshot" + "snaptodo" + "snotez" + "soulpos" + "spacingtricks" + "spark-otf" + "sparklines" + "sphack" + "splitindex" + "spot" + "spotcolor" + "spreadtab" + "spverbatim" + "srbook-mem" + "srcltx" + "sseq" + "sslides" + "stack" + "stackengine" + "standalone" + "starray" + "stdclsdv" + "stdpage" + "stealcaps" + "stex" + "storebox" + "storecmd" + "stringstrings" + "sttools" + "stubs" + "studenthandouts" + "styledcmd" + "subdepth" + "subdocs" + "subeqn" + "subeqnarray" + "subfigmat" + "subfigure" + "subfiles" + "subfloat" + "substr" + "supertabular" + "suppose" + "svg" + "svgcolor" + "svn" + "svn-multi" + "svn-prov" + "svninfo" + "swfigure" + "swungdash" + "syntax" + "syntrace" + "synttree" + "tabbing" + "tabfigures" + "tableaux" + "tablefootnote" + "tableof" + "tablists" + "tabls" + "tablvar" + "tabstackengine" + "tabto-ltx" + "tabu" + "tabularborder" + "tabularcalc" + "tabularew" + "tabularray" + "tabulary" + "tagging" + "tagpair" + "tagpdf" + "talk" + "tamefloats" + "tangocolors" + "tasks" + "tblr-extras" + "tcldoc" + "tcolorbox" + "tdclock" + "technics" + "ted" + "templatetools" + "termcal" + "termlist" + "termsim" + "testhyphens" + "testidx" + "tex-label" + "tex-locale" + "texlogos" + "texmate" + "texments" + "texpower" + "texshade" + "texsurgery" + "textcsc" + "textfit" + "textmerg" + "textpos" + "textualicomma" + "texvc" + "theoremref" + "thinsp" + "thmtools" + "threadcol" + "threeparttable" + "threeparttablex" + "thumb" + "thumbs" + "thumby" + "ticket" + "tipauni" + "titlecaps" + "titlefoot" + "titlepic" + "titleref" + "titlesec" + "titling" + "to-be-determined" + "tocbibind" + "tocdata" + "tocloft" + "tocvsec2" + "todo" + "todonotes" + "tokcycle" + "tokenizer" + "toolbox" + "topfloat" + "topiclongtable" + "totalcount" + "totcount" + "totpages" + "tramlines" + "translations" + "transparent" + "trfsigns" + "trimspaces" + "trivfloat" + "trsym" + "truncate" + "tucv" + "turnthepage" + "tutodoc" + "twoinone" + "twoup" + "txgreeks" + "type1cm" + "typed-checklist" + "typeface" + "typoaid" + "typogrid" + "uassign" + "ucs" + "uebungsblatt" + "umoline" + "underlin" + "underoverlap" + "undolabl" + "uni-titlepage" + "unicode-math-input" + "unicodefonttable" + "unifront" + "unisc" + "unitconv" + "units" + "unravel" + "updatemarks" + "upmethodology" + "upquote" + "uri" + "useclass" + "ushort" + "uspace" + "utf8add" + "uwmslide" + "variablelm" + "varindex" + "varsfromjobname" + "varwidth" + "vcell" + "vdmlisting" + "verbasef" + "verbatimbox" + "verbatimcopy" + "verbdef" + "verbments" + "verifiche" + "verifycommand" + "version" + "versions" + "versonotes" + "vertbars" + "vgrid" + "vhistory" + "vmargin" + "volumes" + "vpe" + "vruler" + "vtable" + "vwcol" + "wallcalendar" + "wallpaper" + "warning" + "warpcol" + "was" + "webquiz" + "widetable" + "widows-and-orphans" + "williams" + "willowtreebook" + "withargs" + "wordcount" + "wordlike" + "worksheet" + "wrapfig" + "wrapfig2" + "wrapstuff" + "writeongrid" + "wtref" + "xargs" + "xassoccnt" + "xbmks" + "xcntperchap" + "xcolor-material" + "xcolor-solarized" + "xcomment" + "xcookybooky" + "xcpdftips" + "xdoc" + "xellipsis" + "xfakebold" + "xfor" + "xhfill" + "xifthen" + "xint" + "xkcdcolors" + "xkeymask" + "xltabular" + "xmpincl" + "xnewcommand" + "xoptarg" + "xpatch" + "xpeek" + "xprintlen" + "xpunctuate" + "xsavebox" + "xsim" + "xstring" + "xtab" + "xurl" + "xwatermark" + "xytree" + "yafoot" + "yagusylo" + "yaletter" + "ycbook" + "ydoc" + "yplan" + "zebra-goodies" + "zed-csp" + "zennote" + "ziffer" + "zref" + "zref-check" + "zref-clever" + "zref-vario" + "zwgetfdate" + "zwpagelayout" + ]; + sha512.run = "98a00a699b249cc95f5466322fff70b07b94a3e3941b10dbb2a052491e23e733f902c9281a76279363b55a5b59c0d5afb84017c4bba48459525e22c431876dd9"; + }; + collection-latexrecommended = { + revision = 69888; + shortdesc = "LaTeX recommended packages"; + stripPrefix = 0; + deps = [ + "anysize" + "attachfile2" + "beamer" + "booktabs" + "breqn" + "caption" + "cite" + "cmap" + "collection-latex" + "crop" + "ctable" + "eso-pic" + "etoolbox" + "euenc" + "euler" + "everysel" + "everyshi" + "extsizes" + "fancybox" + "fancyref" + "fancyvrb" + "filehook" + "float" + "fontspec" + "footnotehyper" + "fp" + "grffile" + "hologo" + "index" + "infwarerr" + "jknapltx" + "koma-script" + "l3experimental" + "latexbug" + "lineno" + "listings" + "lwarp" + "mathspec" + "mathtools" + "mdwtools" + "memoir" + "metalogo" + "microtype" + "ms" + "newfloat" + "ntgclass" + "parskip" + "pdfcolfoot" + "pdflscape" + "pdfmanagement-testphase" + "pdfpages" + "polyglossia" + "psfrag" + "ragged2e" + "rcs" + "sansmath" + "section" + "seminar" + "sepnum" + "setspace" + "subfig" + "textcase" + "thumbpdf" + "translator" + "typehtml" + "ucharcat" + "underscore" + "unicode-math" + "xcolor" + "xfrac" + "xkeyval" + "xltxtra" + "xunicode" + ]; + sha512.run = "edaa03608bca82f73cc7ac7114443536570bd6774cee90ba4058996096f3f461a2198cf89d90c3e749bc5305447f32b3facff5c26fa56a5ac5a3eee71cf30222"; + }; + collection-luatex = { + revision = 69404; + shortdesc = "LuaTeX packages"; + stripPrefix = 0; + deps = [ + "addliga" + "addtoluatexpath" + "auto-pst-pdf-lua" + "barracuda" + "bezierplot" + "blopentype" + "checkcites" + "chickenize" + "chinese-jfm" + "cloze" + "collection-basic" + "combofont" + "cstypo" + "ctablestack" + "ekdosis" + "emoji" + "emojicite" + "enigma" + "gitinfo-lua" + "innerscript" + "interpreter" + "kanaparser" + "ligtype" + "linebreaker" + "lparse" + "lt3luabridge" + "lua-placeholders" + "lua-tinyyaml" + "lua-typo" + "lua-uca" + "lua-ul" + "lua-uni-algos" + "lua-visual-debug" + "lua-widow-control" + "luaaddplot" + "luacas" + "luacensor" + "luacode" + "luacolor" + "luacomplex" + "luagcd" + "luahttp" + "luahyphenrules" + "luaimageembed" + "luaindex" + "luainputenc" + "luakeys" + "lualatex-math" + "lualatex-truncate" + "lualibs" + "lualinalg" + "luamathalign" + "luamaths" + "luamodulartables" + "luamplib" + "luaoptions" + "luaotfload" + "luapackageloader" + "luaplot" + "luaprogtable" + "luaquotes" + "luarandom" + "luaset" + "luatex85" + "luatexbase" + "luatexko" + "luatextra" + "luatruthtable" + "luavlna" + "luaxml" + "lutabulartools" + "minim" + "minim-math" + "minim-mp" + "minim-pdf" + "minim-xmp" + "newpax" + "nodetree" + "odsfile" + "optex" + "pdfarticle" + "pdfextra" + "penlight" + "penlightplus" + "piton" + "placeat" + "plantuml" + "pyluatex" + "scikgtex" + "selnolig" + "showhyphenation" + "showkerning" + "spacekern" + "spelling" + "stricttex" + "sympycalc" + "texfindpkg" + "truthtable" + "tsvtemplate" + "typewriter" + "uninormalize" + "yamlvars" + ]; + sha512.run = "d03b9242340be7be8c32e87c2773bb8aecd4a6b7e1594fe755d9955f111dad4863e497bd3f374140c162b84c6c90379ff86c930267ab5c6d26c3cd0e3968c745"; + }; + collection-mathscience = { + revision = 70357; + shortdesc = "Mathematics, natural sciences, computer science packages"; + stripPrefix = 0; + deps = [ + "12many" + "accents" + "alg" + "algobox" + "algorithm2e" + "algorithmicx" + "algorithms" + "algpseudocodex" + "algxpar" + "aligned-overset" + "amscdx" + "amstex" + "annotate-equations" + "apxproof" + "autobreak" + "axodraw2" + "backnaur" + "begriff" + "binomexp" + "biocon" + "bitpattern" + "bodeplot" + "bohr" + "boldtensors" + "bosisio" + "bpchem" + "bropd" + "bussproofs" + "bussproofs-extra" + "bytefield" + "calculation" + "cartonaugh" + "cascade" + "causets" + "ccfonts" + "ccool" + "chemarrow" + "chemcompounds" + "chemcono" + "chemexec" + "chemformula" + "chemformula-ru" + "chemgreek" + "chemmacros" + "chemnum" + "chemobabel" + "chemplants" + "chemschemex" + "chemsec" + "chemstyle" + "clrscode" + "clrscode3e" + "codeanatomy" + "collection-fontsrecommended" + "collection-latex" + "commath" + "commutative-diagrams" + "complexity" + "computational-complexity" + "concmath" + "concrete" + "conteq" + "correctmathalign" + "cryptocode" + "csassignments" + "cvss" + "decision-table" + "delim" + "delimseasy" + "delimset" + "derivative" + "diffcoeff" + "digiconfigs" + "dijkstra" + "drawmatrix" + "drawstack" + "dyntree" + "easing" + "ebproof" + "econometrics" + "eltex" + "emf" + "endiagram" + "engtlc" + "eolang" + "eqexpl" + "eqnarray" + "eqnnumwarn" + "euclideangeometry" + "extarrows" + "extpfeil" + "faktor" + "fascicules" + "fitch" + "fixdif" + "fixmath" + "fnspe" + "formal-grammar" + "fouridx" + "freealign" + "functan" + "galois" + "gastex" + "gene-logic" + "ghsystem" + "glosmathtools" + "gotoh" + "grundgesetze" + "gu" + "helmholtz-ellis-ji-notation" + "hep" + "hep-graphic" + "hep-reference" + "hepnames" + "hepparticles" + "hepthesis" + "hepunits" + "ibrackets" + "includernw" + "interval" + "ionumbers" + "isomath" + "isphysicalmath" + "jkmath" + "jupynotex" + "karnaugh" + "karnaugh-map" + "karnaughmap" + "kvmap" + "letterswitharrows" + "lie-hasse" + "logicproof" + "longdivision" + "lpform" + "lplfitch" + "lstbayes" + "luanumint" + "mathcommand" + "mathcomp" + "mathfixs" + "mathlig" + "mathpartir" + "mathpunctspace" + "mathsemantics" + "matlab-prettifier" + "matrix-skeleton" + "mattens" + "mecaso" + "medmath" + "membranecomputing" + "memorygraphs" + "messagepassing" + "mgltex" + "mhchem" + "mhequ" + "miller" + "mismath" + "multiobjective" + "naive-ebnf" + "namedtensor" + "natded" + "nath" + "nchairx" + "nicematrix" + "nuc" + "nucleardata" + "numerica" + "numerica-plus" + "numerica-tables" + "objectz" + "odesandpdes" + "oplotsymbl" + "ot-tableau" + "oubraces" + "overarrows" + "pascaltriangle" + "perfectcut" + "pfdicons" + "physconst" + "physics" + "physics2" + "physunits" + "pinoutikz" + "pm-isomath" + "pmdraw" + "polexpr" + "prftree" + "principia" + "proba" + "proof-at-the-end" + "prooftrees" + "pseudo" + "pseudocode" + "pythonhighlight" + "qsharp" + "quickreaction" + "quiver" + "rank-2-roots" + "rbt-mathnotes" + "rec-thy" + "resolsysteme" + "rest-api" + "revquantum" + "ribbonproofs" + "rmathbr" + "sankey" + "sasnrdisplay" + "sciposter" + "sclang-prettifier" + "scratchx" + "sesamanuel" + "sfg" + "shuffle" + "simplebnf" + "simpler-wick" + "simples-matrices" + "simplewick" + "sistyle" + "siunits" + "siunitx" + "skmath" + "spalign" + "spbmark" + "stanli" + "statex" + "statex2" + "statistics" + "statistik" + "statmath" + "steinmetz" + "stmaryrd" + "string-diagrams" + "structmech" + "struktex" + "substances" + "subsupscripts" + "subtext" + "susy" + "syllogism" + "sympytexpackage" + "synproof" + "t-angles" + "tablor" + "tensind" + "tensor" + "tex-ewd" + "textgreek" + "textopo" + "thermodynamics" + "thmbox" + "tiscreen" + "turnstile" + "ulqda" + "unitsdef" + "venn" + "witharrows" + "xymtex" + "yhmath" + "youngtab" + "yquant" + "ytableau" + "zx-calculus" + ]; + sha512.run = "1fbc1238b2017d8c2a75c86a654308e02c004309d1c64b994b9f1dcc7dfb9bc62736c999773277288f0a6b391bd447252274f49d2168b70302b4ac2ca8a3c00c"; + }; + collection-metapost = { + revision = 67071; + shortdesc = "MetaPost and Metafont packages"; + stripPrefix = 0; + deps = [ + "automata" + "bbcard" + "blockdraw_mp" + "bpolynomial" + "cmarrows" + "collection-basic" + "drv" + "dviincl" + "emp" + "epsincl" + "expressg" + "exteps" + "featpost" + "feynmf" + "feynmp-auto" + "fiziko" + "garrigues" + "gmp" + "hatching" + "hershey-mp" + "huffman" + "latexmp" + "mcf2graph" + "metago" + "metaobj" + "metaplot" + "metapost" + "metapost-colorbrewer" + "metauml" + "mfpic" + "mfpic4ode" + "minim-hatching" + "mp3d" + "mparrows" + "mpattern" + "mpchess" + "mpcolornames" + "mpgraphics" + "mptrees" + "piechartmp" + "repere" + "roex" + "roundrect" + "shapes" + "slideshow" + "splines" + "suanpan" + "textpath" + "threeddice" + ]; + sha512.run = "c0bf45f69b1b11ef6e59e6dfa0bd690fcae8b1b06097eb99f06e7ffa954f1ebebf296f3245e6922d716688353e22b691092f8e6349b1f02b3234b49a3bfaf969"; + }; + collection-music = { + revision = 69613; + shortdesc = "Music packages"; + stripPrefix = 0; + deps = [ + "abc" + "autosp" + "bagpipe" + "chordbars" + "chordbox" + "collection-latex" + "ddphonism" + "figbas" + "gchords" + "gregoriotex" + "gtrcrd" + "guitar" + "guitarchordschemes" + "guitartabs" + "harmony" + "latex4musicians" + "leadsheets" + "lilyglyphs" + "lyluatex" + "m-tx" + "musical" + "musicography" + "musixguit" + "musixtex" + "musixtex-fonts" + "musixtnt" + "octave" + "piano" + "pmx" + "pmxchords" + "recorder-fingering" + "songbook" + "songproj" + "songs" + "undar-digitacion" + "xml2pmx" + "xpiano" + ]; + sha512.run = "26100feabd6d95d8b29f0160f7e9b86d06e5055387acc63fe6e47fa0e681567e2d6537043bfa9138d3f8bf27705f2117b719aeb77d72b2f35ff5e5ad220a6038"; + }; + collection-pictures = { + revision = 70538; + shortdesc = "Graphics, pictures, diagrams"; + stripPrefix = 0; + deps = [ + "adigraph" + "aobs-tikz" + "askmaps" + "asyfig" + "asypictureb" + "autoarea" + "bardiag" + "beamerswitch" + "binarytree" + "blochsphere" + "bloques" + "blox" + "bodegraph" + "bondgraph" + "bondgraphs" + "braids" + "bxeepic" + "byo-twemojis" + "byrne" + "cachepic" + "callouts" + "celtic" + "chemfig" + "circuit-macros" + "circuitikz" + "circularglyphs" + "coffeestains" + "collection-basic" + "coloredbelts" + "combinedgraphics" + "curve" + "curve2e" + "curves" + "dcpic" + "diagmac2" + "ditaa" + "doc-pictex" + "dot2texi" + "dottex" + "dpcircling" + "dratex" + "drs" + "duotenzor" + "dynkin-diagrams" + "ecgdraw" + "eepic" + "egpeirce" + "ellipse" + "endofproofwd" + "epspdf" + "epspdfconversion" + "esk" + "euflag" + "fadingimage" + "fast-diagram" + "fenetrecas" + "fig4latex" + "figchild" + "figput" + "fitbox" + "flowchart" + "forest" + "genealogytree" + "getmap" + "gincltex" + "gnuplottex" + "gradientframe" + "grafcet" + "graph35" + "graphicxpsd" + "graphviz" + "gtrlib-largetrees" + "harveyballs" + "here" + "hf-tikz" + "hobby" + "hvfloat" + "istgame" + "kblocks" + "kinematikz" + "knitting" + "knittingpattern" + "ladder" + "lapdf" + "latex-make" + "liftarm" + "lpic" + "lroundrect" + "luamesh" + "luasseq" + "maker" + "makeshape" + "mathspic" + "memoize" + "mercatormap" + "milsymb" + "miniplot" + "mkpic" + "modiagram" + "neuralnetwork" + "nl-interval" + "nndraw" + "numericplots" + "outilsgeomtikz" + "papiergurvan" + "pb-diagram" + "petri-nets" + "pgf" + "pgf-blur" + "pgf-interference" + "pgf-periodictable" + "pgf-pie" + "pgf-soroban" + "pgf-spectra" + "pgf-umlcd" + "pgf-umlsd" + "pgfgantt" + "pgfkeysearch" + "pgfkeyx" + "pgfmolbio" + "pgfmorepages" + "pgfopts" + "pgfornament" + "pgfplots" + "picinpar" + "pict2e" + "pictex" + "pictex2" + "pictochrono" + "pinlabel" + "pixelart" + "pixelarttikz" + "pmgraph" + "polyhedra" + "postage" + "postit" + "prerex" + "productbox" + "ptolemaicastronomy" + "puyotikz" + "pxpgfmark" + "pxpic" + "qcircuit" + "qrcode" + "quantikz" + "randbild" + "randomwalk" + "realhats" + "reotex" + "robotarm" + "rviewport" + "sa-tikz" + "sacsymb" + "schemabloc" + "scratch" + "scratch3" + "scsnowman" + "setdeck" + "signchart" + "simplenodes" + "simpleoptics" + "smartdiagram" + "spath3" + "spectralsequences" + "strands" + "swimgraf" + "syntaxdi" + "table-fct" + "texdraw" + "ticollege" + "tikz-3dplot" + "tikz-among-us" + "tikz-bagua" + "tikz-bayesnet" + "tikz-bbox" + "tikz-cd" + "tikz-dependency" + "tikz-dimline" + "tikz-ext" + "tikz-feynhand" + "tikz-feynman" + "tikz-imagelabels" + "tikz-inet" + "tikz-kalender" + "tikz-karnaugh" + "tikz-ladder" + "tikz-lake-fig" + "tikz-layers" + "tikz-mirror-lens" + "tikz-nef" + "tikz-network" + "tikz-nfold" + "tikz-opm" + "tikz-optics" + "tikz-osci" + "tikz-page" + "tikz-palattice" + "tikz-planets" + "tikz-qtree" + "tikz-relay" + "tikz-sfc" + "tikz-swigs" + "tikz-timing" + "tikz-trackschematic" + "tikz-truchet" + "tikz2d-fr" + "tikz3d-fr" + "tikzbricks" + "tikzcodeblocks" + "tikzdotncross" + "tikzducks" + "tikzfill" + "tikzinclude" + "tikzlings" + "tikzmark" + "tikzmarmots" + "tikzorbital" + "tikzpackets" + "tikzpagenodes" + "tikzpeople" + "tikzpfeile" + "tikzpingus" + "tikzposter" + "tikzquads" + "tikzquests" + "tikzscale" + "tikzsymbols" + "tikztosvg" + "tikzviolinplots" + "tile-graphic" + "tilings" + "timing-diagrams" + "tipfr" + "tkz-base" + "tkz-berge" + "tkz-bernoulli" + "tkz-doc" + "tkz-elements" + "tkz-euclide" + "tkz-fct" + "tkz-graph" + "tkz-orm" + "tkz-tab" + "tkzexample" + "tonevalue" + "tqft" + "tsemlines" + "tufte-latex" + "twemojis" + "tzplot" + "utfsym" + "vectorlogos" + "venndiagram" + "visualpstricks" + "wheelchart" + "wordcloud" + "worldflags" + "xistercian" + "xpicture" + "xypic" + ]; + sha512.run = "1851e3e460f1d5fc2c1f8e04e209f800f9ac27337fef200b3f200cee3580b4ff816784f00aa2dec1d7d7f36711d8cc043033ba2f512dce2933d078aa5c72d5b2"; + }; + collection-plaingeneric = { + revision = 68675; + shortdesc = "Plain (La)TeX packages"; + stripPrefix = 0; + deps = [ + "abbr" + "abstyles" + "advice" + "apnum" + "autoaligne" + "barr" + "bitelist" + "borceux" + "c-pascal" + "calcfrac" + "catcodes" + "chronosys" + "collargs" + "collection-basic" + "colorsep" + "compare" + "crossrefenum" + "cweb-old" + "dinat" + "dirtree" + "docbytex" + "dowith" + "eijkhout" + "encxvlna" + "epigram" + "epsf" + "epsf-dvipdfmx" + "etoolbox-generic" + "expex-acro" + "expkv-bundle" + "fenixpar" + "figflow" + "fixpdfmag" + "fltpoint" + "fntproof" + "font-change" + "fontch" + "fontname" + "gates" + "getoptk" + "gfnotation" + "gobble" + "graphics-pln" + "gtl" + "hlist" + "hyplain" + "inputnormalization" + "insbox" + "js-misc" + "kastrup" + "lambda-lists" + "langcode" + "lecturer" + "letterspacing" + "librarian" + "listofitems" + "localloc" + "mathdots" + "metatex" + "midnight" + "mkpattern" + "mlawriter" + "modulus" + "multido" + "namedef" + "navigator" + "newsletr" + "nth" + "ofs" + "olsak-misc" + "outerhbox" + "path" + "pdf-trans" + "pdfmsym" + "pitex" + "placeins-plain" + "plainpkg" + "plipsum" + "plnfss" + "plstmary" + "poormanlog" + "present" + "pwebmac" + "random" + "randomlist" + "resumemac" + "ruler" + "schemata" + "shade" + "simplekv" + "soul" + "swrule" + "systeme" + "tabto-generic" + "termmenu" + "tex-ps" + "tex4ht" + "texapi" + "texdate" + "texdimens" + "texinfo" + "timetable" + "tracklang" + "transparent-io" + "treetex" + "trigonometry" + "ulem" + "upca" + "varisize" + "xii" + "xii-lat" + "xintsession" + "xlop" + "yax" + "zztex" + ]; + sha512.run = "e162b0e32f52ea7ca60d5241ad6f653b29d2601eb05734ca0970224894e1acf3c21b1c160fdea652b8616f19cce5e812d5ba78ef10aa3cce784a90aebea960ef"; + }; + collection-pstricks = { + revision = 65367; + shortdesc = "PSTricks"; + stripPrefix = 0; + deps = [ + "auto-pst-pdf" + "bclogo" + "collection-basic" + "collection-plaingeneric" + "dsptricks" + "luapstricks" + "makeplot" + "pdftricks" + "pdftricks2" + "pedigree-perl" + "psbao" + "pst-2dplot" + "pst-3d" + "pst-3dplot" + "pst-abspos" + "pst-am" + "pst-antiprism" + "pst-arrow" + "pst-asr" + "pst-bar" + "pst-barcode" + "pst-bezier" + "pst-blur" + "pst-bspline" + "pst-calculate" + "pst-calendar" + "pst-cie" + "pst-circ" + "pst-coil" + "pst-contourplot" + "pst-cox" + "pst-dart" + "pst-dbicons" + "pst-diffraction" + "pst-electricfield" + "pst-eps" + "pst-eucl" + "pst-exa" + "pst-feyn" + "pst-fill" + "pst-fit" + "pst-flags" + "pst-fr3d" + "pst-fractal" + "pst-fun" + "pst-func" + "pst-gantt" + "pst-geo" + "pst-geometrictools" + "pst-gr3d" + "pst-grad" + "pst-graphicx" + "pst-hsb" + "pst-infixplot" + "pst-intersect" + "pst-jtree" + "pst-knot" + "pst-labo" + "pst-layout" + "pst-lens" + "pst-light3d" + "pst-lsystem" + "pst-magneticfield" + "pst-marble" + "pst-math" + "pst-mirror" + "pst-moire" + "pst-node" + "pst-ob3d" + "pst-ode" + "pst-optexp" + "pst-optic" + "pst-osci" + "pst-ovl" + "pst-pad" + "pst-pdf" + "pst-pdgr" + "pst-perspective" + "pst-platon" + "pst-plot" + "pst-poker" + "pst-poly" + "pst-pulley" + "pst-qtree" + "pst-rputover" + "pst-rubans" + "pst-shell" + "pst-sigsys" + "pst-slpe" + "pst-solarsystem" + "pst-solides3d" + "pst-soroban" + "pst-spectra" + "pst-spinner" + "pst-stru" + "pst-support" + "pst-text" + "pst-thick" + "pst-tools" + "pst-tree" + "pst-turtle" + "pst-tvz" + "pst-uml" + "pst-vectorian" + "pst-vehicle" + "pst-venn" + "pst-vowel" + "pst2pdf" + "pstricks" + "pstricks-add" + "pstricks_calcnotes" + "uml" + "vaucanson-g" + "vocaltract" + ]; + sha512.run = "508276fe37018f3d9773fc7cda0cb37edcdd28e9cf8ab54ed5be16b07c2066de4626a561bbe387c7bba0fb82d4102be406efd721a4b5dc90110b8560083d2b07"; + }; + collection-publishers = { + revision = 69759; + shortdesc = "Publisher styles, theses, etc."; + stripPrefix = 0; + deps = [ + "aastex" + "abnt" + "abntex2" + "abntexto" + "acmart" + "acmconf" + "active-conf" + "adfathesis" + "afparticle" + "afthesis" + "aguplus" + "aiaa" + "amnestyreport" + "anonymous-acm" + "anufinalexam" + "aomart" + "apa" + "apa6" + "apa6e" + "apa7" + "arsclassica" + "articleingud" + "asaetr" + "ascelike" + "asmeconf" + "asmejour" + "aucklandthesis" + "bangorcsthesis" + "bangorexam" + "bath-bst" + "beamer-fuberlin" + "beamer-verona" + "beilstein" + "bfh-ci" + "bgteubner" + "bjfuthesis" + "bmstu" + "bmstu-iu8" + "br-lex" + "brandeis-dissertation" + "brandeis-problemset" + "brandeis-thesis" + "buctthesis" + "cascadilla" + "cesenaexam" + "chem-journal" + "chifoot" + "chs-physics-report" + "cidarticle" + "cje" + "cjs-rcs-article" + "classicthesis" + "cleanthesis" + "cmpj" + "collection-latex" + "confproc" + "contract" + "cquthesis" + "dccpaper" + "dithesis" + "ebook" + "ebsthesis" + "ecothesis" + "ejpecp" + "ekaia" + "elbioimp" + "els-cas-templates" + "elsarticle" + "elteiktdk" + "elteikthesis" + "emisa" + "erdc" + "estcpmm" + "etsvthor" + "facture-belge-simple-sans-tva" + "fbithesis" + "fcavtex" + "fcltxdoc" + "fei" + "ftc-notebook" + "gaceta" + "gammas" + "geradwp" + "gfdl" + "gradstudentresume" + "grant" + "gsemthesis" + "gzt" + "h2020proposal" + "hagenberg-thesis" + "har2nat" + "hecthese" + "hep-paper" + "heria" + "hfutexam" + "hfutthesis" + "hithesis" + "hitszbeamer" + "hitszthesis" + "hobete" + "hu-berlin-bundle" + "hustthesis" + "icsv" + "ieeeconf" + "ieeepes" + "ieeetran" + "ijmart" + "ijsra" + "imac" + "imtekda" + "inkpaper" + "iodhbwm" + "iscram" + "jacow" + "jmlr" + "jnuexam" + "jourcl" + "jourrr" + "jpsj" + "jwjournal" + "kdgdocs" + "kdpcover" + "kfupm-math-exam" + "kluwer" + "ksp-thesis" + "ku-template" + "langsci" + "langsci-avm" + "limecv" + "lion-msc" + "llncs" + "llncsconf" + "lni" + "lps" + "matc3" + "matc3mem" + "mcmthesis" + "mentis" + "mitthesis" + "mlacls" + "mluexercise" + "mnras" + "modeles-factures-belges-assocs" + "msu-thesis" + "mucproc" + "mugsthesis" + "muling" + "musuos" + "muthesis" + "mynsfc" + "nature" + "navydocs" + "nddiss" + "ndsu-thesis" + "ndsu-thesis-2022" + "nih" + "nihbiosketch" + "njustthesis" + "njuthesis" + "njuvisual" + "nostarch" + "novel" + "nrc" + "nwafuthesis" + "nwejm" + "onrannual" + "opteng" + "oststud" + "oup-authoring-template" + "philosophersimprint" + "pittetd" + "pkuthss" + "powerdot-fuberlin" + "powerdot-tuliplab" + "pracjourn" + "prociagssymp" + "proposal" + "prtec" + "ptptex" + "qrbill" + "quantumarticle" + "regulatory" + "resphilosophica" + "resumecls" + "revtex" + "revtex4" + "revtex4-1" + "rutitlepage" + "ryersonsgsthesis" + "ryethesis" + "sageep" + "sapthesis" + "schule" + "scientific-thesis-cover" + "scripture" + "scrjrnl" + "sduthesis" + "se2thesis" + "seu-ml-assign" + "seuthesis" + "seuthesix" + "shortmathj" + "shtthesis" + "smflatex" + "soton" + "sphdthesis" + "spie" + "sr-vorl" + "srdp-mathematik" + "stellenbosch" + "stellenbosch-2" + "suftesi" + "sugconf" + "tabriz-thesis" + "technion-thesis-template" + "texilikechaps" + "texilikecover" + "thesis-ekf" + "thesis-gwu" + "thesis-qom" + "thesis-titlepage-fhac" + "thuaslogos" + "thubeamer" + "thucoursework" + "thuthesis" + "tidyres" + "timbreicmc" + "tlc-article" + "topletter" + "toptesi" + "tuda-ci" + "tudscr" + "tugboat" + "tugboat-plain" + "tui" + "turabian" + "uaclasses" + "uafthesis" + "uantwerpendocs" + "ucalgmthesis" + "ucbthesis" + "ucdavisthesis" + "ucph-revy" + "ucsmonograph" + "ucthesis" + "udepcolor" + "udes-genie-these" + "uestcthesis" + "ufrgscca" + "uhhassignment" + "uiucredborder" + "uiucthesis" + "ukbill" + "ulthese" + "umbclegislation" + "umich-thesis" + "umthesis" + "unam-thesis" + "unamth-template" + "unamthesis" + "unbtex" + "unifith" + "unigrazpub" + "unitn-bimrep" + "univie-ling" + "unizgklasa" + "unswcover" + "uol-physics-report" + "uothesis" + "uowthesis" + "uowthesistitlepage" + "urcls" + "uspatent" + "ut-thesis" + "utexasthesis" + "uvaletter" + "uwa-colours" + "uwa-letterhead" + "uwa-pcf" + "uwa-pif" + "uwthesis" + "vancouver" + "wsemclassic" + "xduthesis" + "xduts" + "xmuthesis" + "yathesis" + "yazd-thesis" + "yb-book" + "york-thesis" + ]; + sha512.run = "9a69b9b69cd17bb1fb8ef7ea4a5d870c3a5ee0241c9ca1bc1e4344a4708b9625d31332965ea33784d528d46bf0aefe9703784deee5e795107d5594b4a8517894"; + }; + collection-texworks = { + revision = 54074; + shortdesc = "TeXworks editor; TL includes only the Windows binary"; + stripPrefix = 0; + deps = [ + "collection-basic" + "texworks" + ]; + sha512.run = "b1f38877115fb6efc9b63a5591c399b799f3a258e342d5e198b74b582628461ad67ea7c1ab76e5ae83a3e8e538c62ac3e7c5b3d3f1d29c093331843067cfec57"; + }; + collection-wintools = { + revision = 65952; + shortdesc = "Windows-only support programs"; + stripPrefix = 0; + sha512.run = "8af5c376990a7ed062588a0eb8695455936a92376b94f157d75a22f976f62017999aee8aeb692a07f98a64f05ac98bf4aba79c5f75688c54ad2196807471dc1b"; + }; + collection-xetex = { + revision = 69452; + shortdesc = "XeTeX and packages"; + stripPrefix = 0; + deps = [ + "arabxetex" + "bidi-atbegshi" + "bidicontour" + "bidipagegrid" + "bidipresentation" + "bidishadowtext" + "businesscard-qrcode" + "collection-basic" + "cqubeamer" + "fixlatvian" + "font-change-xetex" + "fontbook" + "fontwrap" + "interchar" + "na-position" + "philokalia" + "ptext" + "realscripts" + "simple-resume-cv" + "simple-thesis-dissertation" + "tetragonos" + "ucharclasses" + "unicode-bidi" + "unimath-plain-xetex" + "unisugar" + "xebaposter" + "xechangebar" + "xecolor" + "xecyr" + "xeindex" + "xelatex-dev" + "xesearch" + "xespotcolor" + "xetex" + "xetex-itrans" + "xetex-pstricks" + "xetex-tibetan" + "xetexconfig" + "xetexfontinfo" + "xetexko" + "xevlna" + "zbmath-review-template" + ]; + sha512.run = "5ec49133c1a9f43a8c025fc3b46d855d13f230f2885ed1d2cf57aa32f071a471a9c77c590e1269c885be045ea9c8cd36334a4b4fe647aa23454e91e42c229089"; + }; + collref = { + revision = 46358; + shortdesc = "Collect blocks of references into a single reference"; + stripPrefix = 0; + sha512.run = "56c2fda36523ae348bea381d90493238c7cbf5ab59f074437c7b694b441f913e6b58795ca81d2c549fbba01505a8895e9e139a9d143050761bceced2717fdb97"; + sha512.doc = "2d75180ab389632ec320795d6e6b989d902b82d1cfc97ea3c5113647e605c1eead0d0f5a6733cb692b624f4caa7120959c0b15018e35be4d4894183ad3e4c37d"; + sha512.source = "5a89f6703ab1818375ff33840b1295aee99e6a36338790014b7ac4b54bd49850adcf73ca793c57fb8159be87417741dcdd6ad3934af8bfde74595367f5e3a9fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0c"; + }; + colophon = { + revision = 47913; + shortdesc = "Provides commands for producing a colophon"; + stripPrefix = 0; + sha512.run = "e85dfdef7eefa2fedd6af7c0b6eb71200485b5190268de3a89cbec8dd15f8e66b3260430660f6cb860e2712d3e20e5a8d0b874592a71b116dc07de6e28161474"; + sha512.doc = "aba1badf34551d8340f733bb9e365a99c56c473f96ed69deadda917232ea8313df800579cb347e074ff0836553bdeb49f60330883581fb3cc7a3eeedc736d1ba"; + sha512.source = "8764595f95806d0aa8cd956bdfbec118f16376c936ae457d3d28c072eb8e2d6f0e7028fdb91ab301dfb587a721cc40fae13f56f5245b418413187f8776624855"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + color-edits = { + revision = 56707; + shortdesc = "Colorful edits for multiple authors of a shared document"; + stripPrefix = 0; + sha512.run = "e1023d734b7c8c2c781fd037f29a8c845a45fcd1c62d7880d51755bf943dba142fee040c2f0b9bea2ef6986818b5f67126ff468639c0d962d0a779f6840fb1c7"; + sha512.doc = "17322e4a1e9cd8cd6043a37e0c06bca019b887aad0100367b0c99b70fe3043d32568b5cf587cb42d0bdfe77cf18bf222fba126833d9a61789bba88bd121dbc4c"; + sha512.source = "b23f1893840a3a2a8d5a77386515c224656ca0c82aec3eb82209c862ebb222e8a2cdf4942bce3d43f4538bd380f9518fe031f08259dd063578760431a6230f10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + colordoc = { + revision = 18270; + shortdesc = "Coloured syntax highlights in documentation"; + stripPrefix = 0; + sha512.run = "a4d87deccae89f844a6251887e4d20817837fff4eef9cbd2874bef8890d41e0ab930a3ee55fae9ee46685c6b3b2b3324b54ce8507f1cb10eef332b7a480b94a8"; + sha512.doc = "a2e5c6699a615651dd31a570ba6524cc7cb3d2f3c8d4b1fe49092dd4c01b40714c1c534f3554fca20fad7c17fdfb7104b699a10677519f57538e239820b6f1e7"; + sha512.source = "2c42638129705d6e08375298684ff96c867a4deeb1d836ea12f8d6b0ad9f61f6840159ed04b92f2cac4c8d126da3a8e657589635ebd3388b9d457994bbc53a36"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + coloredbelts = { + revision = 68747; + shortdesc = "Insert colored belts (vectorial format) in documents (to presetn skills, for example)"; + stripPrefix = 0; + sha512.run = "0c2ccc4f77c74e551361b6c479759d10db1ab96bd293926e3fb60c1888e073094c4aed403b147744711b5210c9fc8e0cdb431ef8b778cbd12fefb4f691faab85"; + sha512.doc = "dbe9cd28b3bdac4b51d080edae7a983900fb2f9c583d7e19d0137d551222d23138862e9acb43de98c2f321d4abee3dbc2e43961f66227a5cf2c639545586ecfe"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-30" + ]; + version = "0.1.0"; + }; + colorframed = { + revision = 64551; + shortdesc = "Fix color problems with the package \"framed\""; + stripPrefix = 0; + sha512.run = "a1e623ec218635694ae31046002648ad840f9f30099e8a7d453ff4301bf2855a47e1139d20760db4d53d69292a0e99ecbfb4b4ec37046d4023ba61249f701434"; + sha512.doc = "f3dcb1d97f012dbac252b097117573b889d5bb77490d7a2c6dc40e87e7bafc31b09b411fd5f764d9db915b3142c7549d411b28f9cd3adb63a1afe444899e3092"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9b"; + }; + colorinfo = { + revision = 15878; + shortdesc = "Retrieve colour model and values for defined colours"; + stripPrefix = 0; + sha512.run = "63bfe1dcdfd85dd1d7d3c7c8d3d345f221bc90bd34bd75888c361d4de97633b9c14d96930b41adf63370403c858f754e740c53d8100b9eb3c5557dd66e6876b3"; + sha512.doc = "d871a76648cd57af0bd6bd800ee8673ff07b2572ea514a3806731713d9ec4ab368fba2cf540ba71005300d4e02beb180f8eba82c0b060bcaa7a60e54ae601df1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3c"; + }; + coloring = { + revision = 41042; + shortdesc = "Define missing colors by their names"; + stripPrefix = 0; + sha512.run = "7c89a6c53212beaa06d54dc091021c5fd57cc30fccc917ea413d23b0790ec637b6b8e69a3bf1b44d0a9ed24fa1c0dd21608b174c0230a0a94a2e5aed221be033"; + sha512.doc = "cfe600ff32f680f7b7d3916e5a2e767732a9ab9f1e6d06133afbadc87dc1b8ac420284c75c221ed5b5a81b76f6b01302c5595b69439566775adc18ab11185961"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + colorist = { + revision = 70101; + shortdesc = "Write your articles or books in a colorful way"; + stripPrefix = 0; + deps = [ "projlib" ]; + sha512.run = "5ff0c8affd4c3fe364bf9832811f5536316c383c212a85d78cbff62af4155092f6602b3a82d6a1bdadfa5bfb60c257a3b066658ec1704b31e24e1844c61f2a2d"; + sha512.doc = "133f8e9e5e504aa069ed60e7549579064664bb375af27e9e6457bc0347201a5902c1a3c699c4eecec5485fa905c7f026af9fe8a2de3aa8d5d2daac8c95efac83"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + colorprofiles = { + revision = 49086; + shortdesc = "Collection of free ICC profiles"; + stripPrefix = 0; + sha512.run = "49be492e62fcd615b08bb6a32767cac54a9535ab859d2a27d1c84788d4e168df2a10133e5408ab1bd3a802ffa8465a61c4144cd9cbafc6fa98f995cb7af89381"; + sha512.doc = "ab7cabd369cdde5c2e5108b4d75d71bfa5e6b44d7ecc2eda25509078f26bfbc8515dd10a6dd82adab979170e12552fbecffca1f5bd3a1105db21b31097ec5f12"; + hasRunfiles = true; + license = [ "free" ]; + version = "20181105"; + }; + colorsep = { + revision = 13293; + shortdesc = "Color separation"; + stripPrefix = 0; + sha512.run = "3c6387a4c538235181dcaf7b6c3ac51d2893d35fa2c18d95d85810b778fecaed7ae2337d2b284ee3439f44d3570ee86884d42616539bf61a15526aa711da70e9"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + colorspace = { + revision = 50585; + shortdesc = "Provides PDF color spaces"; + stripPrefix = 0; + sha512.run = "677f462e9ec347467ab39f3c4e776b870861ed0a38447d61a50abfc3172936c99b468320ad40a5b43713df070434c0b280e2d9d13609e141603453fa7d6c37f8"; + sha512.doc = "702060f3a2805be7dc472bab428fad866e947d8f700f8357e897443909d555dee399ac857feb1e341875bbd4017e7e456c46c4282def6daabc092417859bc634"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3"; + }; + colortab = { + revision = 22155; + shortdesc = "Shade cells of tables and halign"; + stripPrefix = 0; + sha512.run = "460225705cfa914efc689df2d3f0c0ef7f5883082195e3d8e29e124726589fb5e9b7fc4679541b685439de097b6b297b803cf08e104ec13b849dbb26cffeaa04"; + sha512.doc = "947e46ffe5c83c3803e40f0da9a1a926e830e2b24f1d486d158da24bceade870cb1fe580aded3838f895deb238d1615cc0e3f95a05e99800fb1bad87ddf0b134"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + colortbl = { + revision = 70034; + shortdesc = "Add colour to LaTeX tables"; + stripPrefix = 0; + sha512.run = "3f1e703d76afea29b9cb9a2e1aed6e130b4be09982898260ef0e40f41eb99e9b948e89307c2d8b605777983bd8be46e874fd40080803d5b724f99f00c7b7a11f"; + sha512.doc = "412e8399bc8aadaf131fdc07de0148c7fefa1e207788a8e9c4a82914bb99f75a3c352f60f958913ea351d31571a17c8e3b539917e72fd2b9b83b0c04f0e3675d"; + sha512.source = "05de4cb9140c7abf6be215a1485e392cdf12108d64716407e6605ce87b946c062e568fa264d3e78934a685d91f5bee38ff737a86d9a4ba54c9c9f77c7418a349"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0g"; + }; + colorwav = { + revision = 67012; + shortdesc = "Colours by wavelength of visible light"; + stripPrefix = 0; + sha512.run = "1f0ec92974581f7a1d5d36993eaef84d46019a345f1ca9979d0508b5dde7226cdb38e102dce02d404a4d28f8c408cb53cb0b3bc819905935fc9cd323abada305"; + sha512.doc = "c9d23542ccc17980837bd49012889a8e11fb87f76bdd3c5ea9650177ebe527533cb5ac3631895f2455b094ffb4c6bfa973fddf9f071c80bc52c3c824b1fce471"; + sha512.source = "d41960edb1e83edb50be56a6eb43025cfabd5fc3a83ae068daba59276e9b5995f25804311398ff6874038587165b6c236dc983247f52399ab55e156417bf7adb"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.0"; + }; + colorweb = { + revision = 31490; + shortdesc = "Extend the color package colour space"; + stripPrefix = 0; + sha512.run = "dd8e53aa707f1e73276cca9a9c5732b012ca7dcb0926d101c71aa5fe3829f07251a7f606accc95266f6c9aa4b867a38cc654ca97cc32857edc3d196b2c5a7fd4"; + sha512.doc = "b1ae7c14f2f07405b7a957831b60829046b058f6d1640051cbee877100c98a8f47d2c1d40f60599c42ff90eed246248b4f48dd8c1d31f9d45082f9ec5c341626"; + sha512.source = "4016805ddde5974257fc9f20a0f4a8e40b12d059ba74ed6425f206c4b10127596d579dd8c057e85289e32dc1652b2258f6d2590ec6d4cb10c72aa4a874158275"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + colourchange = { + revision = 21741; + shortdesc = "Colourchange"; + stripPrefix = 0; + sha512.run = "dba4ef8d97324c3da71de1c6a37e268618bab0a876e1da37226ec9fb187087d39f32507e97f4ab4fa801fd4bbb98c51a322c6f2493b719133154b24223bfba46"; + sha512.doc = "628bc515058108ba97312c15ee5af00e086ea3dc124b4e7b038b176d4175e2146afc6f571593c006d749634896fa286d16c923c17d4dc9e55e81ac3a8aa95442"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.22"; + }; + combelow = { + revision = 18462; + shortdesc = "Typeset \"comma-below\" letters, as in Romanian"; + stripPrefix = 0; + sha512.run = "17f1beb58a11f3c754c57331d1b2d9338fee359b6c27cdc0a855671397e78c0b2d29ba60247f3104d3eece22619671f56d2aac862ac404502faaea08f40d7be4"; + sha512.doc = "82d8e60a5cd8d46b952aa27dff03398cb6e65a1c5a76c1eb260d3e30172af89206a7a8ec7ab3871d5e33e87ccc2c99e2f54740facfd71d43ea6f88821c9ceb2a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.99f"; + }; + combine = { + revision = 19361; + shortdesc = "Bundle individual documents into a single document"; + stripPrefix = 0; + sha512.run = "9e57b01fa0a14556473764144dc3b5e4e3d40a7f913932b02826a68efdd952adc69e990ba75f6b5057d69850d3e693e1c5b5c40d2c3443aab2741ce9646d522e"; + sha512.doc = "4e09fd0a9b587d61da2c6a15579675b9a839c83f0b38b0f958b2f4aa2c0a49adf93730ebafa235043cf645d6b8689cbcc5916e4bba92b5e30ac87a8282402859"; + sha512.source = "25df0ae6e799710f575de4aab975f774f53abb28e627547cf61fe68a4de18cd1f9fa3a8cfd242ecede15e6363734844a8ca37b49da7bb4efda6bc90f4f1da168"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7a"; + }; + combinedgraphics = { + revision = 27198; + shortdesc = "Include graphic (EPS or PDF)/LaTeX combinations"; + stripPrefix = 0; + sha512.run = "22d36d3a44fbbe5f11522f28e716be862d354998750492d014d86037a24407a748248571e50dc99a6fe5518d8ecbf61ca657407194a43b75510b613438fa4b65"; + sha512.doc = "4802871f57bbc131c850f89eef43778ed25a9abb0a850dac0e91e762b7a321567348f147ae02847cad4c226f9acf2bce921f9745832d1dc298d751b8123741b4"; + sha512.source = "248524984e09cfe3a2a6bafdb0011d3470035243807635dff3ee6e6bd5c7d2ecb0483e7ce069a76f1589dc5bc2da4aab2ef94ce9ef587915a03d285bd95965ad"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2.2"; + }; + combofont = { + revision = 51348; + shortdesc = "Add NFSS-declarations of combo fonts to LuaLaTeX documents"; + stripPrefix = 0; + sha512.run = "838f10474c2e89f317df4592443deaec3d1a3310f7bb2b458c2a1b29a03013c4274912020ddd9b5807bb6018b6564c11df7b14b8a6db556e8db58dd98049c002"; + sha512.doc = "ab322618efb3cd8089e9142a28800d34724e499bacbd0cc4a0db14a409bea3cb355f50d412f92862f53c0a5f91fef8af7b652b21be0596cc9687e4919f5122b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + comfortaa = { + revision = 54512; + shortdesc = "Sans serif font, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map comfortaa.map" ]; + sha512.run = "6b851b6c56ef5b6ae6e59c5a3606238671af34963c5dfb8a39a9bd6b84597f673d12963abdd687013f11edade4fb9ae37794a4789650c38c29f64bea1d41dea5"; + sha512.doc = "b1b4efa42012646538316af9bdd5c724f285aa784e18e85a1239376dc02cf1b79bf43bb0ce07a822995a82811eb6562e6943aca0b903f9241bda088ac0675fce"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "3.2"; + }; + comicneue = { + revision = 54891; + shortdesc = "Use Comic Neue with TeX(-alike) systems"; + stripPrefix = 0; + fontMaps = [ + "Map ComicNeue.map" + "Map ComicNeueAngular.map" + ]; + sha512.run = "5dc900d215fef53fe69ffda6e9120f1230173f40d220c71eaaa3d7eb21610b214591bdc043f27f0fe5259daf2a800b695167d2deee1810a67045997aff7c2a76"; + sha512.doc = "24baee44951d9dc6fd70b6b6092112a1d7d13c394eeb495162c3f80444ebd799b526acf7b7c86b7590afc9f5f6efa97c10b661ddead6ca11a168325c7c840650"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.2"; + }; + comma = { + revision = 18259; + shortdesc = "Formats a number by inserting commas"; + stripPrefix = 0; + sha512.run = "65c21bca8e6a707697847ff96d1cd909cbe0c7d33140b4b175a2e3464c1c67827cea9c9f65e45dfcd31fcf2fd94262daa907358341fddf351241753ab47ac99c"; + sha512.doc = "b25433b52a32cee71043c1f13d2ca45beff32733ac24259f767b6093f5b5f38e0da3c88569bcd637267397c49d26e546c26454381cf916040c52a2833b02df65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + commado = { + revision = 38875; + shortdesc = "Expandable iteration on comma-separated and filename lists"; + stripPrefix = 0; + sha512.run = "c5e48910b5e685c792b9dfe191cd8666472e24e7ef6d6c2fdb3bfb05b2f39f4d4ca68cc7b859d07f50e5d596250e36e1664e1ca48666b0e3126eb8c91d27c384"; + sha512.doc = "457d03b34ba53988ff287060d18f993f8e01ca99991505c5373abc05cfdde4cfcdda8fbb6dc3737e91c66ef0b30c083c31e64e326c08d4959ff8ed1a66cd4d33"; + sha512.source = "e0f280bd901ae306f17ef58686345ca38546fd635dde274456af67f41fc05523a91c1f0c0a2b7f433c992193a6442f870031459071a5d7fd6c12f68728f24809"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r0.11a"; + }; + commath = { + revision = 15878; + shortdesc = "Mathematics typesetting support"; + stripPrefix = 0; + sha512.run = "68c25e035e211107c65eece91bf84d65f2328ebaa3dc81d70186707c081f865abcb1be383cecec7d780bbebf3f565647406d6bcfc2c6bb3e846058d50882a6b0"; + sha512.doc = "5d1d162cf8fd6692788bd15e2d3c2021fa6ed96f289f2c17e9d7e9d2afb428030f0d016f4b4aac62aebec1c8988aa1a978f71bdc7f4873e181f1b2ec7e0f6d0d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + commedit = { + revision = 50116; + shortdesc = "Commented editions with LaTeX"; + stripPrefix = 0; + sha512.run = "7a2248fc7c3de4755a68dfb769c0862332f41945a5efdac8f0b9911c3479bc45cf72ef0176d8d2ed2abe127aaf388c17c90d1f58cfea4aec8bd9e488f2d96c5f"; + sha512.doc = "b8c6fbb8c67aeb878fef32bb6e61dacdb3ebf9bb7ac92bcdb685bccfac8129ee3145d40ae579ff77b097fc81ebe0438ee5c50c6bc3df156910a287b368728c6e"; + sha512.source = "19db6434ff564e454ca44fee29d22bb6a930b9f51f54265955565fffd8a7a4a1be89e3475c727a47c3723da99160f4d9ad9899321913d8739821c6491117c843"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + comment = { + revision = 41927; + shortdesc = "Selectively include/exclude portions of text"; + stripPrefix = 0; + sha512.run = "36b5b4c4d4345a4fcf706f5040c02c2de52567fae76146a06b7f084d59b12d151e65faba1ee4aeeaebee018d81200c2902feb81ae575de35a68c00fa14ed6ba3"; + sha512.doc = "d5a360c6a0c549fee1d46fa0e9c3f9aaaa4b19b30ac48046e736008ddb42393062824950684185175f8ab569cec221bc8f9a798a07623dbe26cc92a3fd6bc72b"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "3.8"; + }; + commonunicode = { + revision = 62901; + shortdesc = "Convert common unicode symbols to LaTeX code"; + stripPrefix = 0; + sha512.run = "a395e5ad2b08ffd1a29b99c66b65ddb7ab3d5207290db71ba85a0058a5404f0366030d229c5c4bc8a4450bad0a0da9fb5f6d374be2c05cbfa7a8217fadca7b11"; + sha512.doc = "dcb1071fb36eae56f6aa8b90e5b88ad32566a5dd410cf9f25c157789fac73d38d24965621f8517980cebbabb957a62f3dfc9445e00c83ed0fc43a11306684029"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.0"; + }; + commutative-diagrams = { + revision = 68044; + shortdesc = "CoDi: Commutative Diagrams for TeX"; + stripPrefix = 0; + sha512.run = "896235dcfbe5fc65302f5473b8821a2943ba3bce0c5b410aca855f48fd2ee6dd1b39667be7413aab027e0b36b3cad9735cf6b8406077b0c833f025fe41a83d04"; + sha512.doc = "49de0a9e52308dcf0b5ee7ca5b18df49efb3822ab2a46024e787979abf6cd682b180a461868c565b79607b301ef5bb65e9493bd27d9cbbdbe4d71472708fc01d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.0"; + }; + compactbib = { + revision = 15878; + shortdesc = "Multiple thebibliography environments"; + stripPrefix = 0; + sha512.run = "dbc3bb28178a656b400a2a72e48ec813d6e282ddba7c70bb4dd0b5ed7f76e9e0be1dffb0ecf43e4893210453ef420c1b1d859c287663cad6bfe8c7f46dc8d86b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + compare = { + revision = 54265; + shortdesc = "Compare two strings"; + stripPrefix = 0; + sha512.run = "16d6ffeaa66c1165ce4c6795ff2f73e0cc5a811045198db6e7aa2556bc6ff8b20883478011fae9f06400475f9a96a57fea34f7513b7fbbb392aee03dbd30ad01"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + competences = { + revision = 47573; + shortdesc = "Track skills of classroom checks"; + stripPrefix = 0; + sha512.run = "e5b2b3a77418d5bc55e8fbbc68c39b1852ce6081b00bf6115573ac29cb7c2b8fd70392fda9b04edca5c3aa1617424541fef2da4d2f777c433b8ee168e850ad99"; + sha512.doc = "8a0078f2a3c32f03aef58a5d1ba4167ac4c738103d65cad9a5f4bae67aebcce3cb7a16d6aa27fa7b83955c95b28c1f70a0404f5633e3231c3b6d4232265e6c53"; + sha512.source = "2fb4c80d75808aca093a664bb2ef152cb4ca6bbf1ba0253c2eeb6ece3cdd2299cf7f183423b65f47655128c3b374eb756cd870cc24034da7aaae206216e79fef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + complexity = { + revision = 45322; + shortdesc = "Computational complexity class names"; + stripPrefix = 0; + sha512.run = "352e1a308e159e432c3123afeba8b173b28e164c81b4874273ddd3f8bb8c8866ef33ba7c06e061d52a3845eafb3307b045b82c9da5ea6a812f3808417fa074d6"; + sha512.doc = "2ffc63af2d86b7dc121c6e122ee1d23387c4c73a6ba65b226413671b86644d0cd9e9ec646b3eef49d9c4b2d64575d83ff45f3691337ba1dea6835945ca80de13"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.81a"; + }; + components = { + revision = 63184; + shortdesc = "Components of TeX"; + stripPrefix = 0; + sha512.run = "e7f8aebb11919cd389648b1417c9d43f163858b7de28592998636a69003274d3825bb23f8faa2c29101d51343d9865780523cd95a2a014433399e2373970a116"; + sha512.doc = "f64c61df38424c72abbb778e7e39023193562228bc1eaa3f683bd81f3eb61075c4948b75a47d81946f4acf1cb5affd242309b95a248240ee413b8dd5dcb40a96"; + license = [ "gpl1Only" ]; + }; + comprehensive = { + revision = 69619; + shortdesc = "Symbols accessible from LaTeX"; + stripPrefix = 0; + sha512.run = "57419ba4ccf74c6d01c7ac972e4f02bcb0e4f57c7a3eb790b8f6de10ff71318ae0b4dae2f836b4f36d3c63fc3b9c6594b628640f2dd850b97dc9dbc5d18266ee"; + sha512.doc = "8d6e7b2de1d4a89e493d0ebc9b1e1a7e11e0839089d06a36f2cd8d0df47a66642edd8ab20e9688e18f6eac70d803da3edee1f8588fdfdb7bc3e46dd993523671"; + license = [ "lppl13c" ]; + version = "15.0"; + }; + computational-complexity = { + revision = 44847; + shortdesc = "Class for the journal Computational Complexity"; + stripPrefix = 0; + sha512.run = "639ae984ee1b581260434ace517d8209843127795e674af045ddafe16838946bebbd2dbeded45fddf62ec0a49b1a30492db0cba4ad1e5bf65530d1d5a5df9198"; + sha512.doc = "9daf1691d33bbf00b67b82cc29de0002e1aef968cb1f182bc3d722082582ed7e60945f74675b48a87baf67aa9f5fee4a167bf1548d3312492a8f570feda93ac8"; + sha512.source = "37d9b700194fb1ad6cd11fd9008aa1634a6b425133365819b5f76ec349a962e44ef43e8c18572fec16bb4f7b44fea29bcb4f01936016486c3eee4d44ddfc5ba2"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.25f"; + }; + concepts = { + revision = 29020; + shortdesc = "Keeping track of formal 'concepts' for a particular field"; + stripPrefix = 0; + sha512.run = "2fe917ad25df3b14bd3a20566b97a7ece0f87f79ec7ef10bcafdffde1834f6fc4bfa6775a7ec8d044e5f3ad241913b2664a7a5c25893e9406de26c0a1008d25c"; + sha512.doc = "5519f645d55e2a3e4e5f9156bdac2ea9e4ad4735ec9104255e75ea254f45b135f0d635322cf46a5536e8600eee1447ab48753763a4c89310e92d51c94c4fde80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.5-r1"; + }; + concmath = { + revision = 17219; + shortdesc = "Concrete Math fonts"; + stripPrefix = 0; + sha512.run = "1e2fd3339fd2bf2a48967102ca42c930ff41a5b4a9fa850cbce6aa2ed701ab351a5dfb931ed80de34aa13e18ab2b01fa2893f981fc671d6399f4d55aa9f8ea40"; + sha512.doc = "05dbb0a6d89d3f72f3d77824670afb29e6ea8dbba6d37255f6a36006a6a6b630fb56b12815ae3075c41dd698d6a85c6be7ce1dc2da9b3b69b636fcd8c4855a84"; + sha512.source = "6c4a5a4af907174df5fdeb77f0c4d0f554c2b8ac0d95031fe98f4a748bc4a96c7a526e44229174ffaccdec5bcf086722b355b3c4dcbc4441e1a67c91a71376db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + concmath-fonts = { + revision = 17218; + shortdesc = "Concrete mathematics fonts"; + stripPrefix = 0; + sha512.run = "65b3f7003b8aaaf6565bea6a65da11f42dca2283f1d53710f4b476a48ab39ae6fffc1d0f9206e23b66047b572c28e793e1a75d047f1c1a892fb4e7c17c854741"; + sha512.doc = "7b2db9b8f2f23816cf413676dfbf6ca3413a39bb20cbc12070b9202bd2e98714a86dcb5f27a746ae197efd2284eb794f06af1b2941667abfddb72773ceb61378"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + concmath-otf = { + revision = 70337; + shortdesc = "Concrete based OpenType Math font"; + stripPrefix = 0; + sha512.run = "87b99735bef0cb6583b153794c64f9b4d76a65da57ca6bf7fcfd6f702bdb32c1cc690be32dbbf2247cb45ede15045d892121794ebc0887eb0f4804990be1172f"; + sha512.doc = "6faa741f424a42088e336ff5300daa2dbd28cd71eed6d4047230c7ac7ecfad5e8de3e881216721f89f9b706397247c01abd99ea4d0a7ed097aa6d63c8e2a89dd"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.63"; + }; + concprog = { + revision = 18791; + shortdesc = "Concert programmes"; + stripPrefix = 0; + sha512.run = "f650acafa4ffa424451f338d6432d665ff679396ed367650d360adf699d3b1e7d8d23f5b3fd070440cb4d6578d07978bfd02960c1219eed6c8594f110708e5cc"; + sha512.doc = "bf4d76362f7a764ae4c7937edf05a575b3faa8d6919c6c857ae350b742f53d6390546263d14958dbdfd423c9b45a7f9eebe862a00378f51c754b5fee65f60bc0"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + concrete = { + revision = 57963; + shortdesc = "Concrete Roman fonts"; + stripPrefix = 0; + sha512.run = "9bf9621c120f831110f71cf8d53ee5d4d42869da8c9b2c653125dd6cb6eb9b8d264116645753ee34dce1076204e008d9e74bd0596b46ffac596cc7726b0c75a9"; + sha512.doc = "c70e9c299e69daa29e9471293b59ed4bf375b8314729381c1973c5390ec5d73b3cffa16db8864e8d84466dbd078179e98b2ffa3e6466d67441e30efcd02676fb"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + conditext = { + revision = 55387; + shortdesc = "Define and manage conditional content"; + stripPrefix = 0; + sha512.run = "60619cdd5031d0fbd2f9e4e8614dacf8f439282787f6230bd2662bad21607720757a19ab27ef783a36a6a19299d5960fb786d8cc787e471a46e89f8cc2e7c866"; + sha512.doc = "3949b2f03c86a922d306cab525a5ca321509d64cfd73b99a39e3404800f63f15e262921e2c1e8eedf98ba2f6cbdda00dfb14e54198af5b7438afdea4572a86ee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + confproc = { + revision = 29349; + shortdesc = "A set of tools for generating conference proceedings"; + stripPrefix = 0; + sha512.run = "b6e054332f7f6a239a6eb102ae4b022f90d9523628a293517b1d070602290bea8e623379b5c246fcd5b8daae29c9d32d02a8a7637cd704ede5b1b928de4536fd"; + sha512.doc = "0bd697d12f1740257e89cd5853aac7340659350a6374c32c5fc22da4249ea08b7e176dc499712f4c2cac6641c0161394ff0433513f7ce1942d50ac69021c14aa"; + sha512.source = "f8530a8106931edceb4c5f0b87022092fc85368966e5029ab25e9f2f19cf95a3c97694dcedd5a78d707b4d9e4a9f358a6bc4f92084a49dde7d6100b50e77fd1a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + constants = { + revision = 15878; + shortdesc = "Automatic numbering of constants"; + stripPrefix = 0; + sha512.run = "c4f807315c7f95fe7945e937e750ea18c346a8ecabb80a39922a9b861e3cce3956db31c55e68a0d3417406284d7187fd3b1d1c336c0a130eabb07e4bb60503ca"; + sha512.doc = "2712e46552a8391b0f2a95991368882a393007788cebabe7ed6c5a604eb2085b4bf00749c6fde3c88028904b7117cd4865b964d11eb443c6939e734495d4df2b"; + sha512.source = "6ea97687aa1f8f1772ba82a09b251c557b3cbacd056a27fc45412c9d72161d04814c9478bc495ca78ba2f8796ba44b3c29ff70f94382cf173b3e6ea2eb7dead3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + conteq = { + revision = 37868; + shortdesc = "Typeset multiline continued equalities"; + stripPrefix = 0; + sha512.run = "ee0f344ed0eab872aca3c54422f83a6f8bbed2462a22cbd54dde075ceae79dc5a01ef13947327ec726d5eeb64eee5519e4074c138f4d172bbf2b4024eb88ceff"; + sha512.doc = "edf52893cef8c5f8538a64d626a12725b043c5f0106a63f02cad91df9ad632009cfe3da51149750d4c23c12742c00052b951ada957b89641d9a0da59e93396c8"; + sha512.source = "d3796e7bd679bd64c59a8d16e50ee7e190f9fe3c0774ece399486f8d5df7f6f63ec8a0c595572be305532c66b94011a92bde3bb5850f2feb4ec162e3415b5102"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + context = { + revision = 69665; + shortdesc = "The ConTeXt macro package"; + deps = [ + "amsfonts" + "context-texlive" + "lm" + "lm-math" + "luajittex" + "luatex" + "manfnt-font" + "mflogo-font" + "stmaryrd" + ]; + fontMaps = [ "Map original-context-symbol.map" ]; + sha512.run = "8951a79ae04a0bbcf7ec5f4d5f68e0f6ad3f79cfcce7379523b9bc74dc6ce3d0f07f628f3e182198ff37d313ca549b7b2512eeb28ce4a9c5460ec20ed7f2d2e7"; + sha512.doc = "b2558db5417c5c1ca10dd80be258fca33d9e5fd1b16c3f1baa7c871bb4d65e42a75c95336ae988864e7c4dd350c722eaa96c446839ca6d147949b38fa78461d9"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "free" ]; + }; + context-calendar-examples = { + revision = 66947; + shortdesc = "Collection of calendars based on the PocketDiary-module"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "aae09b844ae244839f82088ffbad9c777355696023fa95c24221b6ae0e4ac6dfce6a4d70efe9f09d5e5dc89e6e7a17d98282a77b90697ee6a3496ed0568734b4"; + sha512.doc = "62a63d54d0388a027cb6afa58141a6fc303fde6cc0f989348fe29fd10e825a03d86ff682f480723b223b606e296591cf03092c886cf13cde03463ff8012caca1"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + context-collating-marks = { + revision = 68696; + shortdesc = "Environment to place collating marks on the spine of a section"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "dec8338854260467eb5d6542d4561e38a87183290e53e75c3fa188fc8f537a466ce4a5974f4f5644b9f2e62591cd4e8860f8e2b314c8918ae45e90e00c61ba4d"; + sha512.doc = "6a5d88d6091e95025e7a4f12a6e831e5bf462156afa06c7b49d35086f9b555ed8fc1ed9cde970146106f3efc29b70bf0699c1b5eadcf970c1f8978c46ad590bc"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + context-cyrillicnumbers = { + revision = 47085; + shortdesc = "Write numbers as cyrillic glyphs"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "14a90656d706d68ce441301aa6bccf2033c36f9c8d8605ec9dedeeedb71a5670dae325a5a198b2ca25373eb2b495e57fff31b85089c6c0fb987738c76ac636b2"; + sha512.doc = "d95b1df26033aaff0a9f6759268ac3e68bff02556001e3f9b2bae1db68aa13c839a87047a6ae0a296f8e5817398ba35b7cbacc4f194dd93cf72684904190e7e3"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + context-filter = { + revision = 62070; + shortdesc = "Run external programs on the contents of a start-stop environment"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "c2534b543fd5444776a054f43fafa393040af5bcb67f869d61d200a4a1d0355f1d81c64adab683d15a6be806a21dfc9ad661995bbe51da3c0bfb841ade4b077f"; + sha512.doc = "a9c2ea88b0e2514840c368ea7686894dda4b86c93ec8f34989238ffdf5704f1c1898d0ee5e0724035314d2d37803f1a1afdd445dd802a94f5ff4223148f81767"; + hasRunfiles = true; + license = [ "bsd2" ]; + }; + context-gnuplot = { + revision = 47085; + shortdesc = "Inclusion of Gnuplot graphs in ConTeXt"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "d3d7dce105707bd8fd903038e458cae614ec63da7932231e1f659570ec3a7960ea0fab338a8405f2ca8ce8b03946b58db8255333d2a4ab5a659566f4d272b0b0"; + sha512.doc = "40e471b27d53ced33590792ac62992a220357c6db1c78cba901197362a36817bc14b049f2573ee2e5b5adad5182c5bea2880c4f7a2477bcd1a06ee7ccf88b0b9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + context-handlecsv = { + revision = 70074; + shortdesc = "Data merging for automatic document creation"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "b4a38aa0e04812e328e3d6225462078ddf45d8791d789e2730461630db55b397754ca192acf37b9ae7f1fc10c61d412022a9e56d3465d19ceca7f5875e3d580f"; + sha512.doc = "763f75ab94a317788d9d96b88f1b7e25847ed316b4dcd84158719ef1c3cc48c90c884ec3158412d574839adf1ce8bcb12f9c0cefb6650338afa424fbd0213be3"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + }; + context-legacy = { + revision = 69173; + deps = [ + "context" + "metapost" + "mptopdf" + "pdftex" + "xetex" + ]; + formats = [ + { + name = "cont-en"; + engine = "pdftex"; + options = "-8bit *cont-en.mkii"; + } + { + name = "cont-en"; + engine = "xetex"; + options = "-8bit *cont-en.mkii"; + } + ]; + sha512.run = "79783a6096e3bbe21eff5967fa3ed4edffc573567bd027a59c40fbd1f5e3cfc7d0c213ddc9fabcdecd596bcbc9946cf4255edc4237f0148c89dbae7744f3f508"; + sha512.doc = "6fbf5f1194771c9dc4a19b49aa343656bdcad3620e14a68a0bf9d05cad8f8c813f717b66b12526c2f11a87d4ded75e1cab56d3e72ca1cabe81c9818aa11399a7"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "rb" ]; + }; + context-legacy.binfiles = [ + "texexec" + "texmfstart" ]; - sha512.run = "5ec49133c1a9f43a8c025fc3b46d855d13f230f2885ed1d2cf57aa32f071a471a9c77c590e1269c885be045ea9c8cd36334a4b4fe647aa23454e91e42c229089"; -}; -collref = { - revision = 46358; - shortdesc = "Collect blocks of references into a single reference"; - stripPrefix = 0; - sha512.run = "56c2fda36523ae348bea381d90493238c7cbf5ab59f074437c7b694b441f913e6b58795ca81d2c549fbba01505a8895e9e139a9d143050761bceced2717fdb97"; - sha512.doc = "2d75180ab389632ec320795d6e6b989d902b82d1cfc97ea3c5113647e605c1eead0d0f5a6733cb692b624f4caa7120959c0b15018e35be4d4894183ad3e4c37d"; - sha512.source = "5a89f6703ab1818375ff33840b1295aee99e6a36338790014b7ac4b54bd49850adcf73ca793c57fb8159be87417741dcdd6ad3934af8bfde74595367f5e3a9fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0c"; -}; -colophon = { - revision = 47913; - shortdesc = "Provides commands for producing a colophon"; - stripPrefix = 0; - sha512.run = "e85dfdef7eefa2fedd6af7c0b6eb71200485b5190268de3a89cbec8dd15f8e66b3260430660f6cb860e2712d3e20e5a8d0b874592a71b116dc07de6e28161474"; - sha512.doc = "aba1badf34551d8340f733bb9e365a99c56c473f96ed69deadda917232ea8313df800579cb347e074ff0836553bdeb49f60330883581fb3cc7a3eeedc736d1ba"; - sha512.source = "8764595f95806d0aa8cd956bdfbec118f16376c936ae457d3d28c072eb8e2d6f0e7028fdb91ab301dfb587a721cc40fae13f56f5245b418413187f8776624855"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -color-edits = { - revision = 56707; - shortdesc = "Colorful edits for multiple authors of a shared document"; - stripPrefix = 0; - sha512.run = "e1023d734b7c8c2c781fd037f29a8c845a45fcd1c62d7880d51755bf943dba142fee040c2f0b9bea2ef6986818b5f67126ff468639c0d962d0a779f6840fb1c7"; - sha512.doc = "17322e4a1e9cd8cd6043a37e0c06bca019b887aad0100367b0c99b70fe3043d32568b5cf587cb42d0bdfe77cf18bf222fba126833d9a61789bba88bd121dbc4c"; - sha512.source = "b23f1893840a3a2a8d5a77386515c224656ca0c82aec3eb82209c862ebb222e8a2cdf4942bce3d43f4538bd380f9518fe031f08259dd063578760431a6230f10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -colordoc = { - revision = 18270; - shortdesc = "Coloured syntax highlights in documentation"; - stripPrefix = 0; - sha512.run = "a4d87deccae89f844a6251887e4d20817837fff4eef9cbd2874bef8890d41e0ab930a3ee55fae9ee46685c6b3b2b3324b54ce8507f1cb10eef332b7a480b94a8"; - sha512.doc = "a2e5c6699a615651dd31a570ba6524cc7cb3d2f3c8d4b1fe49092dd4c01b40714c1c534f3554fca20fad7c17fdfb7104b699a10677519f57538e239820b6f1e7"; - sha512.source = "2c42638129705d6e08375298684ff96c867a4deeb1d836ea12f8d6b0ad9f61f6840159ed04b92f2cac4c8d126da3a8e657589635ebd3388b9d457994bbc53a36"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -coloredbelts = { - revision = 68747; - shortdesc = "Insert colored belts (vectorial format) in documents (to presetn skills, for example)"; - stripPrefix = 0; - sha512.run = "0c2ccc4f77c74e551361b6c479759d10db1ab96bd293926e3fb60c1888e073094c4aed403b147744711b5210c9fc8e0cdb431ef8b778cbd12fefb4f691faab85"; - sha512.doc = "dbe9cd28b3bdac4b51d080edae7a983900fb2f9c583d7e19d0137d551222d23138862e9acb43de98c2f321d4abee3dbc2e43961f66227a5cf2c639545586ecfe"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-30" ]; - version = "0.1.0"; -}; -colorframed = { - revision = 64551; - shortdesc = "Fix color problems with the package \"framed\""; - stripPrefix = 0; - sha512.run = "a1e623ec218635694ae31046002648ad840f9f30099e8a7d453ff4301bf2855a47e1139d20760db4d53d69292a0e99ecbfb4b4ec37046d4023ba61249f701434"; - sha512.doc = "f3dcb1d97f012dbac252b097117573b889d5bb77490d7a2c6dc40e87e7bafc31b09b411fd5f764d9db915b3142c7549d411b28f9cd3adb63a1afe444899e3092"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9b"; -}; -colorinfo = { - revision = 15878; - shortdesc = "Retrieve colour model and values for defined colours"; - stripPrefix = 0; - sha512.run = "63bfe1dcdfd85dd1d7d3c7c8d3d345f221bc90bd34bd75888c361d4de97633b9c14d96930b41adf63370403c858f754e740c53d8100b9eb3c5557dd66e6876b3"; - sha512.doc = "d871a76648cd57af0bd6bd800ee8673ff07b2572ea514a3806731713d9ec4ab368fba2cf540ba71005300d4e02beb180f8eba82c0b060bcaa7a60e54ae601df1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3c"; -}; -coloring = { - revision = 41042; - shortdesc = "Define missing colors by their names"; - stripPrefix = 0; - sha512.run = "7c89a6c53212beaa06d54dc091021c5fd57cc30fccc917ea413d23b0790ec637b6b8e69a3bf1b44d0a9ed24fa1c0dd21608b174c0230a0a94a2e5aed221be033"; - sha512.doc = "cfe600ff32f680f7b7d3916e5a2e767732a9ab9f1e6d06133afbadc87dc1b8ac420284c75c221ed5b5a81b76f6b01302c5595b69439566775adc18ab11185961"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -colorist = { - revision = 70101; - shortdesc = "Write your articles or books in a colorful way"; - stripPrefix = 0; - deps = [ - "projlib" - ]; - sha512.run = "5ff0c8affd4c3fe364bf9832811f5536316c383c212a85d78cbff62af4155092f6602b3a82d6a1bdadfa5bfb60c257a3b066658ec1704b31e24e1844c61f2a2d"; - sha512.doc = "133f8e9e5e504aa069ed60e7549579064664bb375af27e9e6457bc0347201a5902c1a3c699c4eecec5485fa905c7f026af9fe8a2de3aa8d5d2daac8c95efac83"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -colorprofiles = { - revision = 49086; - shortdesc = "Collection of free ICC profiles"; - stripPrefix = 0; - sha512.run = "49be492e62fcd615b08bb6a32767cac54a9535ab859d2a27d1c84788d4e168df2a10133e5408ab1bd3a802ffa8465a61c4144cd9cbafc6fa98f995cb7af89381"; - sha512.doc = "ab7cabd369cdde5c2e5108b4d75d71bfa5e6b44d7ecc2eda25509078f26bfbc8515dd10a6dd82adab979170e12552fbecffca1f5bd3a1105db21b31097ec5f12"; - hasRunfiles = true; - license = [ "free" ]; - version = "20181105"; -}; -colorsep = { - revision = 13293; - shortdesc = "Color separation"; - stripPrefix = 0; - sha512.run = "3c6387a4c538235181dcaf7b6c3ac51d2893d35fa2c18d95d85810b778fecaed7ae2337d2b284ee3439f44d3570ee86884d42616539bf61a15526aa711da70e9"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -colorspace = { - revision = 50585; - shortdesc = "Provides PDF color spaces"; - stripPrefix = 0; - sha512.run = "677f462e9ec347467ab39f3c4e776b870861ed0a38447d61a50abfc3172936c99b468320ad40a5b43713df070434c0b280e2d9d13609e141603453fa7d6c37f8"; - sha512.doc = "702060f3a2805be7dc472bab428fad866e947d8f700f8357e897443909d555dee399ac857feb1e341875bbd4017e7e456c46c4282def6daabc092417859bc634"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3"; -}; -colortab = { - revision = 22155; - shortdesc = "Shade cells of tables and halign"; - stripPrefix = 0; - sha512.run = "460225705cfa914efc689df2d3f0c0ef7f5883082195e3d8e29e124726589fb5e9b7fc4679541b685439de097b6b297b803cf08e104ec13b849dbb26cffeaa04"; - sha512.doc = "947e46ffe5c83c3803e40f0da9a1a926e830e2b24f1d486d158da24bceade870cb1fe580aded3838f895deb238d1615cc0e3f95a05e99800fb1bad87ddf0b134"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -colortbl = { - revision = 70034; - shortdesc = "Add colour to LaTeX tables"; - stripPrefix = 0; - sha512.run = "3f1e703d76afea29b9cb9a2e1aed6e130b4be09982898260ef0e40f41eb99e9b948e89307c2d8b605777983bd8be46e874fd40080803d5b724f99f00c7b7a11f"; - sha512.doc = "412e8399bc8aadaf131fdc07de0148c7fefa1e207788a8e9c4a82914bb99f75a3c352f60f958913ea351d31571a17c8e3b539917e72fd2b9b83b0c04f0e3675d"; - sha512.source = "05de4cb9140c7abf6be215a1485e392cdf12108d64716407e6605ce87b946c062e568fa264d3e78934a685d91f5bee38ff737a86d9a4ba54c9c9f77c7418a349"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0g"; -}; -colorwav = { - revision = 67012; - shortdesc = "Colours by wavelength of visible light"; - stripPrefix = 0; - sha512.run = "1f0ec92974581f7a1d5d36993eaef84d46019a345f1ca9979d0508b5dde7226cdb38e102dce02d404a4d28f8c408cb53cb0b3bc819905935fc9cd323abada305"; - sha512.doc = "c9d23542ccc17980837bd49012889a8e11fb87f76bdd3c5ea9650177ebe527533cb5ac3631895f2455b094ffb4c6bfa973fddf9f071c80bc52c3c824b1fce471"; - sha512.source = "d41960edb1e83edb50be56a6eb43025cfabd5fc3a83ae068daba59276e9b5995f25804311398ff6874038587165b6c236dc983247f52399ab55e156417bf7adb"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.0"; -}; -colorweb = { - revision = 31490; - shortdesc = "Extend the color package colour space"; - stripPrefix = 0; - sha512.run = "dd8e53aa707f1e73276cca9a9c5732b012ca7dcb0926d101c71aa5fe3829f07251a7f606accc95266f6c9aa4b867a38cc654ca97cc32857edc3d196b2c5a7fd4"; - sha512.doc = "b1ae7c14f2f07405b7a957831b60829046b058f6d1640051cbee877100c98a8f47d2c1d40f60599c42ff90eed246248b4f48dd8c1d31f9d45082f9ec5c341626"; - sha512.source = "4016805ddde5974257fc9f20a0f4a8e40b12d059ba74ed6425f206c4b10127596d579dd8c057e85289e32dc1652b2258f6d2590ec6d4cb10c72aa4a874158275"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -colourchange = { - revision = 21741; - shortdesc = "Colourchange"; - stripPrefix = 0; - sha512.run = "dba4ef8d97324c3da71de1c6a37e268618bab0a876e1da37226ec9fb187087d39f32507e97f4ab4fa801fd4bbb98c51a322c6f2493b719133154b24223bfba46"; - sha512.doc = "628bc515058108ba97312c15ee5af00e086ea3dc124b4e7b038b176d4175e2146afc6f571593c006d749634896fa286d16c923c17d4dc9e55e81ac3a8aa95442"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.22"; -}; -combelow = { - revision = 18462; - shortdesc = "Typeset \"comma-below\" letters, as in Romanian"; - stripPrefix = 0; - sha512.run = "17f1beb58a11f3c754c57331d1b2d9338fee359b6c27cdc0a855671397e78c0b2d29ba60247f3104d3eece22619671f56d2aac862ac404502faaea08f40d7be4"; - sha512.doc = "82d8e60a5cd8d46b952aa27dff03398cb6e65a1c5a76c1eb260d3e30172af89206a7a8ec7ab3871d5e33e87ccc2c99e2f54740facfd71d43ea6f88821c9ceb2a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.99f"; -}; -combine = { - revision = 19361; - shortdesc = "Bundle individual documents into a single document"; - stripPrefix = 0; - sha512.run = "9e57b01fa0a14556473764144dc3b5e4e3d40a7f913932b02826a68efdd952adc69e990ba75f6b5057d69850d3e693e1c5b5c40d2c3443aab2741ce9646d522e"; - sha512.doc = "4e09fd0a9b587d61da2c6a15579675b9a839c83f0b38b0f958b2f4aa2c0a49adf93730ebafa235043cf645d6b8689cbcc5916e4bba92b5e30ac87a8282402859"; - sha512.source = "25df0ae6e799710f575de4aab975f774f53abb28e627547cf61fe68a4de18cd1f9fa3a8cfd242ecede15e6363734844a8ca37b49da7bb4efda6bc90f4f1da168"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7a"; -}; -combinedgraphics = { - revision = 27198; - shortdesc = "Include graphic (EPS or PDF)/LaTeX combinations"; - stripPrefix = 0; - sha512.run = "22d36d3a44fbbe5f11522f28e716be862d354998750492d014d86037a24407a748248571e50dc99a6fe5518d8ecbf61ca657407194a43b75510b613438fa4b65"; - sha512.doc = "4802871f57bbc131c850f89eef43778ed25a9abb0a850dac0e91e762b7a321567348f147ae02847cad4c226f9acf2bce921f9745832d1dc298d751b8123741b4"; - sha512.source = "248524984e09cfe3a2a6bafdb0011d3470035243807635dff3ee6e6bd5c7d2ecb0483e7ce069a76f1589dc5bc2da4aab2ef94ce9ef587915a03d285bd95965ad"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2.2"; -}; -combofont = { - revision = 51348; - shortdesc = "Add NFSS-declarations of combo fonts to LuaLaTeX documents"; - stripPrefix = 0; - sha512.run = "838f10474c2e89f317df4592443deaec3d1a3310f7bb2b458c2a1b29a03013c4274912020ddd9b5807bb6018b6564c11df7b14b8a6db556e8db58dd98049c002"; - sha512.doc = "ab322618efb3cd8089e9142a28800d34724e499bacbd0cc4a0db14a409bea3cb355f50d412f92862f53c0a5f91fef8af7b652b21be0596cc9687e4919f5122b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -comfortaa = { - revision = 54512; - shortdesc = "Sans serif font, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map comfortaa.map" - ]; - sha512.run = "6b851b6c56ef5b6ae6e59c5a3606238671af34963c5dfb8a39a9bd6b84597f673d12963abdd687013f11edade4fb9ae37794a4789650c38c29f64bea1d41dea5"; - sha512.doc = "b1b4efa42012646538316af9bdd5c724f285aa784e18e85a1239376dc02cf1b79bf43bb0ce07a822995a82811eb6562e6943aca0b903f9241bda088ac0675fce"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "3.2"; -}; -comicneue = { - revision = 54891; - shortdesc = "Use Comic Neue with TeX(-alike) systems"; - stripPrefix = 0; - fontMaps = [ - "Map ComicNeue.map" - "Map ComicNeueAngular.map" - ]; - sha512.run = "5dc900d215fef53fe69ffda6e9120f1230173f40d220c71eaaa3d7eb21610b214591bdc043f27f0fe5259daf2a800b695167d2deee1810a67045997aff7c2a76"; - sha512.doc = "24baee44951d9dc6fd70b6b6092112a1d7d13c394eeb495162c3f80444ebd799b526acf7b7c86b7590afc9f5f6efa97c10b661ddead6ca11a168325c7c840650"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.2"; -}; -comma = { - revision = 18259; - shortdesc = "Formats a number by inserting commas"; - stripPrefix = 0; - sha512.run = "65c21bca8e6a707697847ff96d1cd909cbe0c7d33140b4b175a2e3464c1c67827cea9c9f65e45dfcd31fcf2fd94262daa907358341fddf351241753ab47ac99c"; - sha512.doc = "b25433b52a32cee71043c1f13d2ca45beff32733ac24259f767b6093f5b5f38e0da3c88569bcd637267397c49d26e546c26454381cf916040c52a2833b02df65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -commado = { - revision = 38875; - shortdesc = "Expandable iteration on comma-separated and filename lists"; - stripPrefix = 0; - sha512.run = "c5e48910b5e685c792b9dfe191cd8666472e24e7ef6d6c2fdb3bfb05b2f39f4d4ca68cc7b859d07f50e5d596250e36e1664e1ca48666b0e3126eb8c91d27c384"; - sha512.doc = "457d03b34ba53988ff287060d18f993f8e01ca99991505c5373abc05cfdde4cfcdda8fbb6dc3737e91c66ef0b30c083c31e64e326c08d4959ff8ed1a66cd4d33"; - sha512.source = "e0f280bd901ae306f17ef58686345ca38546fd635dde274456af67f41fc05523a91c1f0c0a2b7f433c992193a6442f870031459071a5d7fd6c12f68728f24809"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r0.11a"; -}; -commath = { - revision = 15878; - shortdesc = "Mathematics typesetting support"; - stripPrefix = 0; - sha512.run = "68c25e035e211107c65eece91bf84d65f2328ebaa3dc81d70186707c081f865abcb1be383cecec7d780bbebf3f565647406d6bcfc2c6bb3e846058d50882a6b0"; - sha512.doc = "5d1d162cf8fd6692788bd15e2d3c2021fa6ed96f289f2c17e9d7e9d2afb428030f0d016f4b4aac62aebec1c8988aa1a978f71bdc7f4873e181f1b2ec7e0f6d0d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -commedit = { - revision = 50116; - shortdesc = "Commented editions with LaTeX"; - stripPrefix = 0; - sha512.run = "7a2248fc7c3de4755a68dfb769c0862332f41945a5efdac8f0b9911c3479bc45cf72ef0176d8d2ed2abe127aaf388c17c90d1f58cfea4aec8bd9e488f2d96c5f"; - sha512.doc = "b8c6fbb8c67aeb878fef32bb6e61dacdb3ebf9bb7ac92bcdb685bccfac8129ee3145d40ae579ff77b097fc81ebe0438ee5c50c6bc3df156910a287b368728c6e"; - sha512.source = "19db6434ff564e454ca44fee29d22bb6a930b9f51f54265955565fffd8a7a4a1be89e3475c727a47c3723da99160f4d9ad9899321913d8739821c6491117c843"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -comment = { - revision = 41927; - shortdesc = "Selectively include/exclude portions of text"; - stripPrefix = 0; - sha512.run = "36b5b4c4d4345a4fcf706f5040c02c2de52567fae76146a06b7f084d59b12d151e65faba1ee4aeeaebee018d81200c2902feb81ae575de35a68c00fa14ed6ba3"; - sha512.doc = "d5a360c6a0c549fee1d46fa0e9c3f9aaaa4b19b30ac48046e736008ddb42393062824950684185175f8ab569cec221bc8f9a798a07623dbe26cc92a3fd6bc72b"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "3.8"; -}; -commonunicode = { - revision = 62901; - shortdesc = "Convert common unicode symbols to LaTeX code"; - stripPrefix = 0; - sha512.run = "a395e5ad2b08ffd1a29b99c66b65ddb7ab3d5207290db71ba85a0058a5404f0366030d229c5c4bc8a4450bad0a0da9fb5f6d374be2c05cbfa7a8217fadca7b11"; - sha512.doc = "dcb1071fb36eae56f6aa8b90e5b88ad32566a5dd410cf9f25c157789fac73d38d24965621f8517980cebbabb957a62f3dfc9445e00c83ed0fc43a11306684029"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.0"; -}; -commutative-diagrams = { - revision = 68044; - shortdesc = "CoDi: Commutative Diagrams for TeX"; - stripPrefix = 0; - sha512.run = "896235dcfbe5fc65302f5473b8821a2943ba3bce0c5b410aca855f48fd2ee6dd1b39667be7413aab027e0b36b3cad9735cf6b8406077b0c833f025fe41a83d04"; - sha512.doc = "49de0a9e52308dcf0b5ee7ca5b18df49efb3822ab2a46024e787979abf6cd682b180a461868c565b79607b301ef5bb65e9493bd27d9cbbdbe4d71472708fc01d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.0"; -}; -compactbib = { - revision = 15878; - shortdesc = "Multiple thebibliography environments"; - stripPrefix = 0; - sha512.run = "dbc3bb28178a656b400a2a72e48ec813d6e282ddba7c70bb4dd0b5ed7f76e9e0be1dffb0ecf43e4893210453ef420c1b1d859c287663cad6bfe8c7f46dc8d86b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -compare = { - revision = 54265; - shortdesc = "Compare two strings"; - stripPrefix = 0; - sha512.run = "16d6ffeaa66c1165ce4c6795ff2f73e0cc5a811045198db6e7aa2556bc6ff8b20883478011fae9f06400475f9a96a57fea34f7513b7fbbb392aee03dbd30ad01"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -competences = { - revision = 47573; - shortdesc = "Track skills of classroom checks"; - stripPrefix = 0; - sha512.run = "e5b2b3a77418d5bc55e8fbbc68c39b1852ce6081b00bf6115573ac29cb7c2b8fd70392fda9b04edca5c3aa1617424541fef2da4d2f777c433b8ee168e850ad99"; - sha512.doc = "8a0078f2a3c32f03aef58a5d1ba4167ac4c738103d65cad9a5f4bae67aebcce3cb7a16d6aa27fa7b83955c95b28c1f70a0404f5633e3231c3b6d4232265e6c53"; - sha512.source = "2fb4c80d75808aca093a664bb2ef152cb4ca6bbf1ba0253c2eeb6ece3cdd2299cf7f183423b65f47655128c3b374eb756cd870cc24034da7aaae206216e79fef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -complexity = { - revision = 45322; - shortdesc = "Computational complexity class names"; - stripPrefix = 0; - sha512.run = "352e1a308e159e432c3123afeba8b173b28e164c81b4874273ddd3f8bb8c8866ef33ba7c06e061d52a3845eafb3307b045b82c9da5ea6a812f3808417fa074d6"; - sha512.doc = "2ffc63af2d86b7dc121c6e122ee1d23387c4c73a6ba65b226413671b86644d0cd9e9ec646b3eef49d9c4b2d64575d83ff45f3691337ba1dea6835945ca80de13"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.81a"; -}; -components = { - revision = 63184; - shortdesc = "Components of TeX"; - stripPrefix = 0; - sha512.run = "e7f8aebb11919cd389648b1417c9d43f163858b7de28592998636a69003274d3825bb23f8faa2c29101d51343d9865780523cd95a2a014433399e2373970a116"; - sha512.doc = "f64c61df38424c72abbb778e7e39023193562228bc1eaa3f683bd81f3eb61075c4948b75a47d81946f4acf1cb5affd242309b95a248240ee413b8dd5dcb40a96"; - license = [ "gpl1Only" ]; -}; -comprehensive = { - revision = 69619; - shortdesc = "Symbols accessible from LaTeX"; - stripPrefix = 0; - sha512.run = "57419ba4ccf74c6d01c7ac972e4f02bcb0e4f57c7a3eb790b8f6de10ff71318ae0b4dae2f836b4f36d3c63fc3b9c6594b628640f2dd850b97dc9dbc5d18266ee"; - sha512.doc = "8d6e7b2de1d4a89e493d0ebc9b1e1a7e11e0839089d06a36f2cd8d0df47a66642edd8ab20e9688e18f6eac70d803da3edee1f8588fdfdb7bc3e46dd993523671"; - license = [ "lppl13c" ]; - version = "15.0"; -}; -computational-complexity = { - revision = 44847; - shortdesc = "Class for the journal Computational Complexity"; - stripPrefix = 0; - sha512.run = "639ae984ee1b581260434ace517d8209843127795e674af045ddafe16838946bebbd2dbeded45fddf62ec0a49b1a30492db0cba4ad1e5bf65530d1d5a5df9198"; - sha512.doc = "9daf1691d33bbf00b67b82cc29de0002e1aef968cb1f182bc3d722082582ed7e60945f74675b48a87baf67aa9f5fee4a167bf1548d3312492a8f570feda93ac8"; - sha512.source = "37d9b700194fb1ad6cd11fd9008aa1634a6b425133365819b5f76ec349a962e44ef43e8c18572fec16bb4f7b44fea29bcb4f01936016486c3eee4d44ddfc5ba2"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.25f"; -}; -concepts = { - revision = 29020; - shortdesc = "Keeping track of formal 'concepts' for a particular field"; - stripPrefix = 0; - sha512.run = "2fe917ad25df3b14bd3a20566b97a7ece0f87f79ec7ef10bcafdffde1834f6fc4bfa6775a7ec8d044e5f3ad241913b2664a7a5c25893e9406de26c0a1008d25c"; - sha512.doc = "5519f645d55e2a3e4e5f9156bdac2ea9e4ad4735ec9104255e75ea254f45b135f0d635322cf46a5536e8600eee1447ab48753763a4c89310e92d51c94c4fde80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.5-r1"; -}; -concmath = { - revision = 17219; - shortdesc = "Concrete Math fonts"; - stripPrefix = 0; - sha512.run = "1e2fd3339fd2bf2a48967102ca42c930ff41a5b4a9fa850cbce6aa2ed701ab351a5dfb931ed80de34aa13e18ab2b01fa2893f981fc671d6399f4d55aa9f8ea40"; - sha512.doc = "05dbb0a6d89d3f72f3d77824670afb29e6ea8dbba6d37255f6a36006a6a6b630fb56b12815ae3075c41dd698d6a85c6be7ce1dc2da9b3b69b636fcd8c4855a84"; - sha512.source = "6c4a5a4af907174df5fdeb77f0c4d0f554c2b8ac0d95031fe98f4a748bc4a96c7a526e44229174ffaccdec5bcf086722b355b3c4dcbc4441e1a67c91a71376db"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -concmath-fonts = { - revision = 17218; - shortdesc = "Concrete mathematics fonts"; - stripPrefix = 0; - sha512.run = "65b3f7003b8aaaf6565bea6a65da11f42dca2283f1d53710f4b476a48ab39ae6fffc1d0f9206e23b66047b572c28e793e1a75d047f1c1a892fb4e7c17c854741"; - sha512.doc = "7b2db9b8f2f23816cf413676dfbf6ca3413a39bb20cbc12070b9202bd2e98714a86dcb5f27a746ae197efd2284eb794f06af1b2941667abfddb72773ceb61378"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -concmath-otf = { - revision = 70337; - shortdesc = "Concrete based OpenType Math font"; - stripPrefix = 0; - sha512.run = "87b99735bef0cb6583b153794c64f9b4d76a65da57ca6bf7fcfd6f702bdb32c1cc690be32dbbf2247cb45ede15045d892121794ebc0887eb0f4804990be1172f"; - sha512.doc = "6faa741f424a42088e336ff5300daa2dbd28cd71eed6d4047230c7ac7ecfad5e8de3e881216721f89f9b706397247c01abd99ea4d0a7ed097aa6d63c8e2a89dd"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.63"; -}; -concprog = { - revision = 18791; - shortdesc = "Concert programmes"; - stripPrefix = 0; - sha512.run = "f650acafa4ffa424451f338d6432d665ff679396ed367650d360adf699d3b1e7d8d23f5b3fd070440cb4d6578d07978bfd02960c1219eed6c8594f110708e5cc"; - sha512.doc = "bf4d76362f7a764ae4c7937edf05a575b3faa8d6919c6c857ae350b742f53d6390546263d14958dbdfd423c9b45a7f9eebe862a00378f51c754b5fee65f60bc0"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -concrete = { - revision = 57963; - shortdesc = "Concrete Roman fonts"; - stripPrefix = 0; - sha512.run = "9bf9621c120f831110f71cf8d53ee5d4d42869da8c9b2c653125dd6cb6eb9b8d264116645753ee34dce1076204e008d9e74bd0596b46ffac596cc7726b0c75a9"; - sha512.doc = "c70e9c299e69daa29e9471293b59ed4bf375b8314729381c1973c5390ec5d73b3cffa16db8864e8d84466dbd078179e98b2ffa3e6466d67441e30efcd02676fb"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -conditext = { - revision = 55387; - shortdesc = "Define and manage conditional content"; - stripPrefix = 0; - sha512.run = "60619cdd5031d0fbd2f9e4e8614dacf8f439282787f6230bd2662bad21607720757a19ab27ef783a36a6a19299d5960fb786d8cc787e471a46e89f8cc2e7c866"; - sha512.doc = "3949b2f03c86a922d306cab525a5ca321509d64cfd73b99a39e3404800f63f15e262921e2c1e8eedf98ba2f6cbdda00dfb14e54198af5b7438afdea4572a86ee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -confproc = { - revision = 29349; - shortdesc = "A set of tools for generating conference proceedings"; - stripPrefix = 0; - sha512.run = "b6e054332f7f6a239a6eb102ae4b022f90d9523628a293517b1d070602290bea8e623379b5c246fcd5b8daae29c9d32d02a8a7637cd704ede5b1b928de4536fd"; - sha512.doc = "0bd697d12f1740257e89cd5853aac7340659350a6374c32c5fc22da4249ea08b7e176dc499712f4c2cac6641c0161394ff0433513f7ce1942d50ac69021c14aa"; - sha512.source = "f8530a8106931edceb4c5f0b87022092fc85368966e5029ab25e9f2f19cf95a3c97694dcedd5a78d707b4d9e4a9f358a6bc4f92084a49dde7d6100b50e77fd1a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -constants = { - revision = 15878; - shortdesc = "Automatic numbering of constants"; - stripPrefix = 0; - sha512.run = "c4f807315c7f95fe7945e937e750ea18c346a8ecabb80a39922a9b861e3cce3956db31c55e68a0d3417406284d7187fd3b1d1c336c0a130eabb07e4bb60503ca"; - sha512.doc = "2712e46552a8391b0f2a95991368882a393007788cebabe7ed6c5a604eb2085b4bf00749c6fde3c88028904b7117cd4865b964d11eb443c6939e734495d4df2b"; - sha512.source = "6ea97687aa1f8f1772ba82a09b251c557b3cbacd056a27fc45412c9d72161d04814c9478bc495ca78ba2f8796ba44b3c29ff70f94382cf173b3e6ea2eb7dead3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -conteq = { - revision = 37868; - shortdesc = "Typeset multiline continued equalities"; - stripPrefix = 0; - sha512.run = "ee0f344ed0eab872aca3c54422f83a6f8bbed2462a22cbd54dde075ceae79dc5a01ef13947327ec726d5eeb64eee5519e4074c138f4d172bbf2b4024eb88ceff"; - sha512.doc = "edf52893cef8c5f8538a64d626a12725b043c5f0106a63f02cad91df9ad632009cfe3da51149750d4c23c12742c00052b951ada957b89641d9a0da59e93396c8"; - sha512.source = "d3796e7bd679bd64c59a8d16e50ee7e190f9fe3c0774ece399486f8d5df7f6f63ec8a0c595572be305532c66b94011a92bde3bb5850f2feb4ec162e3415b5102"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -context = { - revision = 69665; - shortdesc = "The ConTeXt macro package"; - deps = [ - "amsfonts" - "context-texlive" - "lm" - "lm-math" - "luajittex" - "luatex" - "manfnt-font" - "mflogo-font" - "stmaryrd" - ]; - fontMaps = [ - "Map original-context-symbol.map" - ]; - sha512.run = "8951a79ae04a0bbcf7ec5f4d5f68e0f6ad3f79cfcce7379523b9bc74dc6ce3d0f07f628f3e182198ff37d313ca549b7b2512eeb28ce4a9c5460ec20ed7f2d2e7"; - sha512.doc = "b2558db5417c5c1ca10dd80be258fca33d9e5fd1b16c3f1baa7c871bb4d65e42a75c95336ae988864e7c4dd350c722eaa96c446839ca6d147949b38fa78461d9"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "free" ]; -}; -context-calendar-examples = { - revision = 66947; - shortdesc = "Collection of calendars based on the PocketDiary-module"; - stripPrefix = 0; - deps = [ + context-letter = { + revision = 60787; + shortdesc = "ConTeXt package for writing letters"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "558836a8c95743270f627a18dfe7a29ffc7a2eaeb4cf663d589ef5c07eab4dad6f09db31511379c90a41d1e9e7da5766e8dc3c8bb0902fa06bda4fb33caa97c9"; + sha512.doc = "94e1bf68371f3e8c426cfff5c471f93c86ce51fdd92dfad59669d32cc73d86de606113ece55d13a0f25ac4a26f16916407de9175b84acc79ba107156c20cd20a"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + context-mathsets = { + revision = 47085; + shortdesc = "Set notation in ConTeXt"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "e4c689c745d06c61d6f693a9832001aa8c79d51664c2a5d6d0c6148a95b30870063f50eecca31ac0924193c6dab8c12cd5ccaca16eeaf5f83a99cef1a8889ec3"; + sha512.doc = "f2c33244814da8e8838483038f507fe6b3e146f37691e55a37bb5355985d2af4c5fc423318133c4f13837a3e66a4fe72d5c14f6721bb5ee0417a59691b86d3f1"; + hasRunfiles = true; + license = [ "free" ]; + }; + context-notes-zh-cn = { + revision = 66725; + shortdesc = "Notes on using ConTeXt MkIV"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "46be6b5f9f86d6da5514f0ae0cd77aa9beab67572699f9779f3a6cd461a8600336103eaf71d6e6d99fd7ac300a3e5fedcd6e378d349cf648c9aa5a8be2aaa5b5"; + sha512.doc = "a49b1c85508128e0a2e9ae0218e3622f7479da528f51380c1e109bf877f401531689e8119cab3bde6a91e507f0bd7f16e334cb3affaba7fae5927cc23b17a207"; + license = [ "gpl3Only" ]; + }; + context-pocketdiary = { + revision = 66953; + shortdesc = "A personal organiser"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "fd90eca9b9642a16aa203984165302b111d4058ed970aab3867018f48d16884fe543d3067a0ad2fc2c0e2684924ef11e9788a7deacb20ad06d7451dc5b19383b"; + sha512.doc = "a78ed374f6a7ad63a93aef4c9cb2ecc0937c2e3df821c543f49a3ad762ed6949a7d1c4c5a03c7cf54eeb0b9ad891a18c5d10b97a42bbb840c74fef2bf8f14cfb"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + context-simpleslides = { + revision = 67070; + shortdesc = "A module for preparing presentations"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "083b1f0b70a74a3648501314fa993632534f476376fb80eb4444b0273866bf4a4d562e4bfffbd14ed79be0020361ab6cc5c40fde1f99544b76d6f33939781f19"; + sha512.doc = "e7a410ec0d99f945dae91c041b396875a6350aa06333f5a5d2d7aa4c6bb62f926ec53a27a1c95a724ce7b320ddef11d6550b0b92a34c00ac63c7c0da96a35928"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + context-squares = { + revision = 70141; + shortdesc = "Typesetting Magic and Latin squares"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "1ff4b50cf1bf75c6908b968c0fa35bdbd3571ef680ccf591ce5b0bd65370bc1dbd3bbb54b55c881d4d76ad09aa36a496248560874ad6e14e39b5f94cdec5ee23"; + sha512.doc = "08b652e69c1719991daf36b9d9360b5736c25283ef10bdb5859bdfaecf1dd3a47d7417b9884d7bf51a32b073f99e08f35d8f172ff0d6a4817923c00f81dd6dfc"; + hasRunfiles = true; + license = [ "mit" ]; + }; + context-sudoku = { + revision = 67289; + shortdesc = "Sudokus for ConTeXt"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "b33ece74cc5578c4dca8df816715d7106b674fdc653d149992cf637b11799a21eb03708c0efcc79da9d4658c5f8a801c6bb32dc681f43f3d4b3900dfa588ca99"; + sha512.doc = "e7f9b6c0ae6bad729074ffb2e4e1673336954adb9013ee6525e87715f3d22720efbe1f7e2cb6b695e01940a4d7f58489889612749ea2f4dbcba3ac6faaa741c4"; + hasRunfiles = true; + license = [ "mit" ]; + }; + context-texlive = { + revision = 66924; + shortdesc = "TeX Live-specific helpers for ConTeXt (caches, papersize)"; + stripPrefix = 0; + sha512.run = "64abf080ecfd9cf68f2ef12123ca6ee976d6fe3cb8382d34b32f424a1bfcf9165142bab2c1a9a1f394e1ed4bd53aaf2875363e7f357eae48ba00ddfc894e5d1f"; + hasRunfiles = true; + }; + context-transliterator = { + revision = 61127; + shortdesc = "Transliterate text from 'other' alphabets"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "f919d3f9e6ab25932cfaeadfc07f86ebdbe00d84dc21236e4775930fc3866cee69cf9a25d373e13655f4396a3c395ea6ea103a28ffb4f00a4e95b7ceaec155c9"; + sha512.doc = "8473c1ca7b48009055f5c33031ec60f80d84dc43396789b0c0c7e6d65bcf014a237088dca07211beae4bfb80377f55cf12a9f379995cff50f52143fc4bc81295"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + context-typescripts = { + revision = 60422; + shortdesc = "Small modules to load various fonts for use in ConTeXt"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "a13d06b9a792cbd2352016df508a7860e45b541d04cef1c9d9c8b5a6199120a71dfd69f990700c4a76ac31ec11209caef431a190b9045bdc46cc44f88cbef0a3"; + sha512.doc = "3d948f22da14b1d481817477235657cee714e4a2a69834729c20e18157f1175890ddc7fce992e8f5f27e26cd6d08186ff1521e2186681557cfff1a4778267324"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + context-vim = { + revision = 62071; + shortdesc = "Generate ConTeXt syntax highlighting code from vim"; + stripPrefix = 0; + deps = [ + "context" + "context-filter" + ]; + sha512.run = "12100c7aa3eb555cf9dbe72454a96e63feda52329a8a192ff86ba30477acab4ebaaf84c15a79f16d4e3f95cef02baf8146e5810b8c9e8e94c25ba1317bf4fc2c"; + sha512.doc = "0f49e22b9e1d465f46727a9e952e095eceab55e77a2559fe497cf14690377f77ca42aa23ce7eaca659e9b0983e5a950b36733eef49b0473fd33a8f783edb43b1"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + context-visualcounter = { + revision = 47085; + shortdesc = "Visual display of ConTeXt counters"; + stripPrefix = 0; + deps = [ "context" ]; + sha512.run = "da7799ee31a4298f8e8cb02cb4e480fa49fb4188b776df877648c663c93523636bdd7fa6ca5eb403fc8f3483064bf223fed042c1d27eb0817c224ddf8e21c673"; + sha512.doc = "1788355ea4109e7e2bbaa9bbc3798f60a814d549d082638a59a453cc5fb39b54ff8a00471a28a96a5501e91899874ae19981ae0f8a09b6353d19275b851b9f80"; + sha512.source = "39bba551e9f0bb8d70c0b60a2b0fba3d7cad30555d4052fc6ae722bfd9cb79d5cca784474a9f1847faccccb1618662bc4dd2fadd1fdacaf2f4cc9c035b5501ec"; + hasRunfiles = true; + license = [ "bsd2" ]; + }; + context.binfiles = [ "context" + "context.lua" + "contextjit" + "luametatex" + "luatools" + "mtxrun" + "mtxrun.lua" + "mtxrunjit" ]; - sha512.run = "aae09b844ae244839f82088ffbad9c777355696023fa95c24221b6ae0e4ac6dfce6a4d70efe9f09d5e5dc89e6e7a17d98282a77b90697ee6a3496ed0568734b4"; - sha512.doc = "62a63d54d0388a027cb6afa58141a6fc303fde6cc0f989348fe29fd10e825a03d86ff682f480723b223b606e296591cf03092c886cf13cde03463ff8012caca1"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -context-collating-marks = { - revision = 68696; - shortdesc = "Environment to place collating marks on the spine of a section"; - stripPrefix = 0; - deps = [ - "context" + continue = { + revision = 49449; + shortdesc = "Prints 'continuation' marks on pages of multipage documents"; + stripPrefix = 0; + sha512.run = "42cda9a2796e9006263320163777df7046a79e38cb2c0ffb53f23c27cc03c686e00e39b066228b09ca99a6e5c2bf4a6cb32d5d7c49b40cf614c542e258968ab9"; + sha512.doc = "0b6bbf7c3123b7e741255bd3ff9e020ec61bcb81a236ddec41e709f14de514057d9b902ad783f48e5c04ba1ca6daee31a38f130649cb0e5b2d548ca9689d5dca"; + sha512.source = "790671ec666983e4ff5ff594b7df54cdf7c9d136d57f9004f5400857c3001ffbd3a13a5fc559f3ab75a168c66fc5aa2ee3b5702e5ec417c9a31a1e65d18b801f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + contour = { + revision = 18950; + shortdesc = "Print a coloured contour around text"; + stripPrefix = 0; + sha512.run = "0dd4a28f97efcfd0459595776cbab019168fca48984d78f9ec17e0f3af9dbebd378adc6649bce6a9a999651c75316f3ff44e0f10e208465dda2d904d080c41d3"; + sha512.doc = "af1c649d2e5666ee3973395babce4802da2154ba95fa7fc08e378c261a8ea1c5be44053c40c5cc1bd0c74e2c54b659470c3d45063fbbd4330cdc5e664f19bff0"; + sha512.source = "377b4a92031cd957b15d232cda9e4c2e7488a4c71624eed06dc2edf9dca37afc11e18691650ea377da2dd78b5f636272eeb6d94bebd99ad5ec1ec477f7b65784"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + contracard = { + revision = 67201; + shortdesc = "Generate calling cards for dances"; + stripPrefix = 0; + sha512.run = "eb705425aa67034ddbf4390165a5f6a9690c67d34371a720298843d1c7292655bcb59a56364bdb510608d48b6590931abd68216fdcdcd8be90eddfbc339ce28b"; + sha512.doc = "046a38d7a11edaa8f67648996c31e481cd818b79afb1f971afe459b7adf0bb3d4f5cb0afc3903177bfc0b9b0678336a837002f8db486916afc24445a875c3285"; + sha512.source = "67bf64418fde78f9ea7288f47efaf50970f133325860f0283ed2842f58394417b4e8ec8f0180cde60c9bb74cd1c797aa6f89afe3fd033676681807cd25d5cebc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.0"; + }; + contract = { + revision = 69759; + shortdesc = "Typeset formalized legal documents such as contracts, statutes, etc."; + stripPrefix = 0; + sha512.run = "bb37446d3eb0f736014ed0c589b1ae86d25cb6fe2374906f375047317b74e9d4a608a4ef32bf11776f37449d59063bc0973e9a2c7e83b747480b8b73efaaf133"; + sha512.doc = "7681e863e95f295e0ec98d0aaa789b1089fdc023feb04eff3d028c4f0c19e9d6974e96350a25fcc7810e7dabb8cf43551ad0fc2d0cb1b9684c4bd60268082d32"; + sha512.source = "3b9d2277c2e1248121bb27446dbcb8b66ba6b7264b7c9502f1ef0691c66050c32b0dd6975cce60cd6c0d70228a88fbc35433ac5dd62aa3aef9040b9292adf402"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + conv-xkv = { + revision = 43558; + shortdesc = "Create new key-value syntax"; + stripPrefix = 0; + sha512.run = "7bbbcfd71a32704f2383289d91fcc1b5993aa9e184f5d974f6dd5592312e85848a926ad9e6f412bef801daa20cc2b9c999ba137b9b24e31facfd6931309630df"; + sha512.doc = "c1c923008185db09b3e7cfd90bfd9b33ca2a61ccc706b0f9cefb238e0860120da517fdc7166e4fe476a1cc02cb4a7a3fe4c9b81c87c8de25ddd1c0c417dcfca3"; + sha512.source = "edd5feac4453010dd996edbb3741339904b0380c021f9429933f6b27df6d9c002d593d617467043ae6087de3c5842fb7a4e8ccfcc95c7763e124ab5f5c9dc024"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + convbkmk = { + revision = 49252; + shortdesc = "Correct platex/uplatex bookmarks in PDF created with hyperref"; + sha512.run = "01bb9621459bac7eecc99b1d9aa59de420ba805b2e0ecdb2a89f5c86fa4a3021d957b4ddc69617ea406e77865d68e40c657979c488fc51f4676d084cfe6181cd"; + sha512.doc = "937d436cb9387eac601883ced516fa40f60e606bb4bae0be62e1ded2a31754a1d00461a34ad533cce1cc48f4d11e880233eaac128d80841e0b22f18801e86506"; + hasRunfiles = true; + scriptExts = [ "rb" ]; + license = [ "mit" ]; + version = "0.30"; + }; + convbkmk.binfiles = [ "convbkmk" ]; + cooking = { + revision = 15878; + shortdesc = "Typeset recipes"; + stripPrefix = 0; + sha512.run = "6c2fb1adf244dafa9689844e1283dce19786e2c1df170d4172d3567514555d90adcb82414f79b5d9dcd59cfdd3af5d6893fff57972d6e4fb32196add0ed5b1eb"; + sha512.doc = "30cc2a5b4679126cad1b13785081d924f9d455a5f392e5047c14c8ce1dd3efca102bafb74e1a339dd938680f3a95111a7025a31508ea63108eb33cf32b03c9c5"; + sha512.source = "7b935bbf1a7e7dfeed2db1c4725e38a3bf847822dee7da8d6098e7df82b5b5035b47ce3f0b9403dcf35028b319c2661b0bd8288b8a1e80395944532777451bd9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.9b"; + }; + cooking-units = { + revision = 65241; + shortdesc = "Typeset and convert units for cookery books and recipes"; + stripPrefix = 0; + sha512.run = "82f6e5b097ff7bc737526b13b04724fa144cb96d796cff517019e49befa174f621a41ec4c52d29fd20bb502dab46db1699b98f57de337fef8320392c63839675"; + sha512.doc = "1297801aaf9b7ae7edb900165792e1b7ae91ab6c32482a7006dfddae37e1438a3748f3e048ce385b76dafdbe78ccf5c643e9d78c07f2bc9cdf7802affce14764"; + sha512.source = "245b98785b44afb68c70b5cabc228b282d8b9351ca97b0b0f472dd8ebd547928f538c002366a4b9344d74dfa35efffebfa5314ee1cc5e5f292d7134b03b58698"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.00"; + }; + cookingsymbols = { + revision = 35929; + shortdesc = "Symbols for recipes"; + stripPrefix = 0; + sha512.run = "9b43ffdce038ebb001c0ab6198fa2d92ad6f1ec6040f1c315a53fbfd29367e5c851f4015c36b0cdb2eea84f4a8dc90aa3d5126a09f93766d614931bbf555f982"; + sha512.doc = "fb6794942d016d12f527b86947c7fae9947a7cf9122a7b26d39bfeb6d5f55a7cccc11b666101b0c80a92c7385ae8305bcb4d792baa0974b738af80697ad12891"; + sha512.source = "b2e8ff3274ffaff3a3f5b3de1ab95a534247878f163cba8cac9af0cb49c59c54f9ac7b362c75dbc394a3c942864b3255ed28310ac5ba842b5b63ea0d0d80f7d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + cool = { + revision = 67013; + shortdesc = "COntent-Oriented LaTeX"; + stripPrefix = 0; + sha512.run = "4ee983b7b07d20c9fe7568ebb6be60ecc56f85cc4ae4013870c53370df99d69bc0537c3889790324baa1f1a8afab2da56763b590457c49866d219b1540effe98"; + sha512.doc = "06d182b5415ed25be80c827206759708daddfaa6bf7a3aae59c1639c3c09523a7b421abdd9d2a8db1297e161e439b777d3d1d8c07e52dddc1c071ce1c5a9fe47"; + sha512.source = "c305695f6694cfb4b08462591aabd64adef27001d0c84ba905b0d4f07b7095905cda414e7e477ae962f5ecf6cdcee60d0a432e4eea924bf2fad0770411131912"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.35"; + }; + coolfn = { + revision = 69007; + shortdesc = "Typeset long legal footnotes"; + stripPrefix = 0; + sha512.run = "b92b231bee56a8589e079a1175569a8d8b92bd0e4730e87882cd8415bf301d466c381eaa0540104abfa5e9ed2d159b3349e3dbfc34e6b1c10e52e255946b3067"; + sha512.doc = "f3f6c06eaff8ce132e5bbdc25fa244b6aefd388a467bdf78c9c5459d6bbcaff185ef0a485957e8b864ce167b0be3a994d73cbed788754da308dea2af5d9beaae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + coollist = { + revision = 67048; + shortdesc = "Manipulate COntent Oriented LaTeX Lists"; + stripPrefix = 0; + sha512.run = "7336f6e9a05311295d1ada4598d4b5506ef64ea1c245d30c2f30e079b5da66f08b029d98a74dec769b60da7ac05822f377c485bc0a7a25fcb3aec9e2f499d3a3"; + sha512.doc = "5f27ec17d4544bb4ac9891e088b6d921901504c46a52a65638d5caa0fb7ad4df55c00ff2ad7569b6b7f97919b9a139f433044f849ca4bd559c77e147e5878d50"; + sha512.source = "c0a8e06bae7ea5e3a2dfba01e014c7bd0ffa22306bc1827e1eab717317b23df8d20ca344ba182c7c44a596f3c7471aeab03ed93221cca658a0e451578bad6761"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.4"; + }; + coolstr = { + revision = 67015; + shortdesc = "String manipulation in LaTeX"; + stripPrefix = 0; + sha512.run = "272c0ad1071f394c9cf96c38ce85800aeed55eacba29dc86c5887b86a63b717d8f83fd83afb5ff813df780691a7a2deff6d466e521eeca14ad3e3d09f07ab0db"; + sha512.doc = "5f4baf28b3a5d2b83ab51037c60454def4c1ebb74a408add0459fbc7766fe828e32af9c02ba898592272b067b23715e3986ca4f561a1a89d58a57c7de6d70bd3"; + sha512.source = "56e15bc77c6bbc2523162db8a86d1b3bf86e97a59fec15e27da736b964d02e27e7838690befce0f493a9363b946f710676c76e1ddc0c048f5cf40e41d29c1c0b"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "2.2"; + }; + coolthms = { + revision = 29062; + shortdesc = "Reference items in a theorem environment"; + stripPrefix = 0; + sha512.run = "7a9d8f4605a0ff108ef5cb32ef4b6f455d16898248fee534e6557d8323c4378c8299fc1a6d58dd491020090ed4fdd3e41a90de99d18a9d114b72bd57b27b5e7d"; + sha512.doc = "2f5ff3ead76bc83138e41ee881713829de7b8b0ecdda353fcbdd9ebdb7851139eb9022fb4eec1a1c03d125f4106ce748123a9d9fcd76859e82158a541aa20aba"; + sha512.source = "088f76522c4576925af08d387ecfd18b4906aa91fa741c4848eed49addb9a9334b3f27de30c516e7a85583a450fcfd0c7054b071bb926eb8f1f9ab54b5791ed0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + cooltooltips = { + revision = 60201; + shortdesc = "Associate a pop-up window and tooltip with PDF hyperlinks"; + stripPrefix = 0; + sha512.run = "fde90a48c95ee35a7b9c9dfc1359df09646cd9f5cf1a44a7eba7ffd9aaf98c2bee400dd7ee6796583bea5a874c2693d25d3e502cdd4c3a207949f46ba7525505"; + sha512.doc = "0b9d55f41afb738f1503e232e06809cc2354775c6793c1f5f3f3c65d4aa349294b5e9ad4d223f588dbda0b0f53091cbee4855804273a8d8f21a6689760a556e0"; + sha512.source = "584d4880126bbca5343a4a8df85ca348d397dfb5cd5fe8a62d61224f9c95c5a0aed20f8c522d65ed68c6435506613fd0decc35acd848bedf2bf89de6842a7f27"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + coop-writing = { + revision = 61607; + shortdesc = "Support for Cooperative Writing and editorial comments"; + stripPrefix = 0; + sha512.run = "b00d0ba304a9aa88929a0f130b3e73bf8c095b25cebc6b33d8d01d15cc73766ac3db3a588719fe6480fb4105ed0bde32d5ab2354f2cc223c2e3bb90a8e6f877a"; + sha512.doc = "489060dd92b0044cb76c8e4f3f17aecf85da7b320406875b0c9b46fde2edf485868669e4986d9d602eb317ec0199e6ab81bb34096f7635fa4479203e03336577"; + sha512.source = "f00f9b9db508f6fb924a4371413631eb6a269f1e70034891a1cf1f6b8df6d81f5f3e7d12e5ff7df29524d5354fd2e6123651d549e997457cf4723a8e723053e4"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2.4"; + }; + cooperhewitt = { + revision = 64967; + shortdesc = "LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support for the Cooper Hewitt family of sans serif fonts"; + stripPrefix = 0; + fontMaps = [ "Map CooperHewitt.map" ]; + sha512.run = "91047a9831d2f1bd9ce8c3d6b1089316a40312b4920d9e8e26df4a5fc64293eadc45ac211c039ac8bc83df5d3406cfd006d1192945bb3776983f5d571c9e364c"; + sha512.doc = "211601a3a1fe2092a1cbb67cf6fa71f7ea2225f425a8556c1b88396c3f0d721ee144346fbd29204c4d68da77363653b1f0b14693139278f2b22a6104bdf949d0"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + coordsys = { + revision = 15878; + shortdesc = "Draw cartesian coordinate systems"; + stripPrefix = 0; + sha512.run = "83a57df64b3386b7e927ca30b4b2ea031bd656121dda79dba0f96779e77d733d2293b80a3b08081678bea9b31a31a586123e9866c6aa595561843af3de0cc4f6"; + sha512.doc = "bb89a04e5889c39c23ee65c38232cc0be931dff383d52614e290b6bd8ab23e7c9063fd7ea656dde896c08830b8c7c85e1da7f56728fd43a1bedf31bef6ca2e83"; + sha512.source = "dd03bf08143a43b3486524d4aadac592e3e2264d23aa45fbb499ec7e709edcabd87f66fa38349edd856a09fb6d55ef466d565714045559b9b7f418a7d3eb5acf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + copyedit = { + revision = 37928; + shortdesc = "Copyediting support for LaTeX documents"; + stripPrefix = 0; + sha512.run = "27f48ff201c66d61ed7702b4d11f0d39b0c74974ea3a90506dace0f3cb4ac3c4ee5cac28f9669574184620b3e64a4b9ef3fa5564213e3d200754bbab791e52ea"; + sha512.doc = "60fde840ac3c6876f031daf09e852ddf79276d2f841dea2ee5299678bd116df31b2ec2dfa6d6175e45a42fd781be6935cbfa2aab8621af641985e3df2c665fc1"; + sha512.source = "7d2bb6e2e8c036345e301d45c03665b6c8ae9dfe91668f354e77e30e2d8a47d1b6db2e7032717c4b04e8e122952b916459b991fc5b566a020262835bcdf6a6fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + copyrightbox = { + revision = 24829; + shortdesc = "Provide copyright notices for images in a document"; + stripPrefix = 0; + sha512.run = "2ae2afc738cc906d24fca0a6319c98dc1e9382bbde6db3d0c3a371d3de8b92c30b3bf05be04797bc0ed6d905933a50e74809eed52f06cdba5fc5088be033d4a9"; + sha512.doc = "9b817f2874a35f3e023774d3be32e0f8bf53a26f9daf553525c95ce0c21a64a22c3a716fb20cdc76921ec90b7b5305f305bf44853cf87d13ac38ce853ca00ea4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + cormorantgaramond = { + revision = 64411; + shortdesc = "Cormorant Garamond family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map CormorantGaramond.map" ]; + sha512.run = "1f1707a00298fc2015ba01259dc8558a79e72a10753f3c101f318359f0d4a3b6a9ae16cb1c1825ccf152fb50045f2cca429b00da27607fa8ba1046ad15e5a86f"; + sha512.doc = "85a5ba16ec8756b5052b4e6342d47e83c9fc8f348ac3b4c067afba131a7ed853cab04c22f8723a912a1178cc8ed373ab5fdd9d2be0d9816918bd22233c13ba95"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "3.601"; + }; + correctmathalign = { + revision = 44131; + shortdesc = "Correct spacing of the alignment in expressions"; + stripPrefix = 0; + sha512.run = "5a7e9b3b51ae82980cc1ab9d4ae74aa0b65afa533d21230b1f5e6867bb6464f910a07bb1c38621eb18d8bccd8bc50260b8741752936c310012590706726ed6f2"; + sha512.doc = "bc6c9f24a4107d28120e6934f6966b2560ca4c34169b0074023e941746240879bc0572840d3967effd3a1358ef288ac412946f79fd3b40151c1507cba8828be0"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.1"; + }; + coseoul = { + revision = 23862; + shortdesc = "Context sensitive outline elements"; + stripPrefix = 0; + sha512.run = "21524a0721fa26d85b383879cc75600bcd55ee05220eac245171eadc30dea7296731e4d6d2d3d82d10b32f1d674d444bf1df41dd82b92d5cfa7ea06d53f56147"; + sha512.doc = "6e950d1f5129b39de2cfdbf7cc46b101f81336f29325a5e74f58dbb4378dd79189d1e29dd88a9e828fe4e758b6de93e76f70884c9fc582cc8a69f6db1e1f2617"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + couleurs-fr = { + revision = 67901; + shortdesc = "French version of colour definitions from xcolor"; + stripPrefix = 0; + sha512.run = "d3d1abad334d50129f77b35ebd6fa244feb84e347e64cd98f3e3413c556b1848a198e4679e266f838d947244756fc19071b1bb0816c73b887b2deb4fe061adcf"; + sha512.doc = "8e88f3947d0dcebab82a60bf9886350762f57da2c2b3c739e2e3896afea70a2088ce325cfe6373d6a351b57fc2f0b0bb7f0f4c9716a094d86e1997744890c92c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.2"; + }; + counterz = { + revision = 67335; + shortdesc = "Additional tools for counters"; + stripPrefix = 0; + sha512.run = "5fcc21ea49e222cbb205998172ca4184f4daa3efcf92c48278b3e7c5bce6669594b02f5fe54af76f94ee19ba63b9701e66d24c2ce85262748c1fd2c9b6e18b3a"; + sha512.doc = "a5ccf25501d1275161e9aa53f076fea2480cd5edbb83e4133c9cf8e400b840fde78f69bf038e5778c6b8535fea3e654c11eb1ac82545a90fe952530bfdbb607b"; + sha512.source = "920d054c6a3bc41504db850407d8553b1e108af85ab1a94fd2a6bb71e8f6f7f02abd11908a8d73430cf27c9f9f8e46014a53b8afdb80dd360e4e1cd12f8bb090"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.1"; + }; + countriesofeurope = { + revision = 54512; + shortdesc = "A font with the images of the countries of Europe"; + stripPrefix = 0; + fontMaps = [ "Map countriesofeurope.map" ]; + sha512.run = "fa0faa88db3e7c1baf73d5fad1fa196915c752e15dc024cef051127581f1e8a3d218d5f2f815b44bbedc9bd6fce6292825929471b595771e9ecd0b5131b11d26"; + sha512.doc = "e99ac6f4b57a2aed80cfd1214da7625ae94336677f0cfa0306125b06054835c2c3b23ac901cc3f421d56e4d021dd468db12e21acd6b3883c8b937919dbda056a"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.23"; + }; + counttexruns = { + revision = 27576; + shortdesc = "Count compilations of a document"; + stripPrefix = 0; + sha512.run = "569393d76512308751bff3c5cb22bc11ecee420bb16b5f7d35d6b10beaa02f9c99a4d440e7f3a35bda4e6821405e5f8d621af5af176821549a0e0f0660f998bd"; + sha512.doc = "4a67cac01589ae5d3eb61c5c6c66bb38ede138c9c2b56fcb6359c8f851bf55ce3cf2e5662cd7751d6708c86644cb5f607318612b01b60f769858d594c2b24218"; + sha512.source = "ed482becf766081e5cb05affc10c64979e43f9f655074366063b95943229dc9043943422e1063ecf69e5d44659566fb1d0ffddcc27d33eebff9de69f4aa8c7f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00a"; + }; + courier = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map ucr.map" ]; + sha512.run = "30d6c8906671239b9ef04b3c4d571f59e928ffefc965cd592ecd3277062c778b6f8cb0782f5eb8c6bc27d03b69a88a120593477ced93bcc44cdd4fbc3e5b8adb"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + courier-scaled = { + revision = 24940; + shortdesc = "Provides a scaled Courier font"; + stripPrefix = 0; + sha512.run = "570256a4353163cba169ac5d649458d363edc5c2836efccff1e7df83c12d9b552978b3531f2ab026430b3222b3dfc00be0e4700031e6bc50bdb60a739a68c9aa"; + sha512.doc = "59c5cec8491e678b084afb4c6e63ed07ca179b5f17be8fe581ff341c80b3cee8016601799ada090e1fcde9eeb72197986f3d4aeffa7c7a9d10a014e34282f52a"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + courierten = { + revision = 55436; + shortdesc = "Courier 10 Pitch BT with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map CourierOneZeroPitch.map" ]; + sha512.run = "06343c68149c28b8808a38d5d7f2a57e9bff996d836c90a352ed77da4637fff150a18c13b8807f401e3d9cc9e7ecc773275f8ca18e2dc8d315ec5647c3f6b55c"; + sha512.doc = "737818c02e35e5502eca7bd80427fb814f54d495bd1315b124ad32a033da0ba0b9b4a2cc5a1f8c19b0f8d91f8534a783253742728ad1c8499d97e14fc3a67938"; + hasRunfiles = true; + license = [ "free" ]; + }; + courseoutline = { + revision = 15878; + shortdesc = "Prepare university course outlines"; + stripPrefix = 0; + sha512.run = "fd3bbcd90570aa1cbfae49fca247d761ac0b886d795fd8097754706b21ab1d6954eb8d8a6c1fb4e69d550e7ec89294fa006f50bab0c7b806c545666eac4915f1"; + sha512.doc = "5a52cabfbc28fe27aa6f85b3653de3ace51b65011ca2e33b56be59854b364319ed8adf95576f8211d9494a367fb637b47fd2805a2663df87103b2d67a168dc13"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + coursepaper = { + revision = 15878; + shortdesc = "Prepare university course papers"; + stripPrefix = 0; + sha512.run = "bae9e3188a3312f970434b21f23436251dcf8d7b5b2049decf1f95903f5e58ddf9dd328ffc6908c70bec436c9edc3ae62b05d110f42a8ab322eb3f464733ba96"; + sha512.doc = "359ee3956a6da4eb41947db9b5f8dbaac7c13c18ea91afd6d63f738ab43af4c77fd93e9123ecda28b4e2211387c910b7a46b2ccd97edeba70fd6d2852b228094"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.0"; + }; + coverpage = { + revision = 63509; + shortdesc = "Automatic cover page creation for scientific papers"; + stripPrefix = 0; + sha512.run = "a41ebddf89a5fd375ab107e207b9397b3496bc7daf213b4c29779b15d0134a131d6646a4474a5cd9d3bf56da58350fb2ea4b98692bccb8d7b06c8a4f2244ffec"; + sha512.doc = "0931d1f63b60b1b94467114db0fcc67e4905ee1fbfe7c2083eceb0f7715eff201ccca4cd74183b70a4c84808838244b3570529b372ab64a9ef6bcc0f5357aa77"; + sha512.source = "15d25cd0b009c1f8006b344498f40a293d18cf08b9098c9923b1fc678a65a2a2a55efcab53744e55ce41d34f4aad248d389aa6127827b1836ec6a706ed6c73cb"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.01"; + }; + covington = { + revision = 69091; + shortdesc = "LaTeX macros for Linguistics"; + stripPrefix = 0; + sha512.run = "c70d4926d45c93ffecff4d8f32923ac99a1b354e51dfc21eed8f3e3172e5c29875d5ef7a2509dbd6150f22bec337efceb7cd42717798144d1d1046e4332d00d0"; + sha512.doc = "cee67a2bcd26ef106d35fadf02145b74e7c9b67c2bd2ff46a4a7afc262d020d43b168fefc2d086688c4087469e9d68a9f0ae79c83dc018ecce70233a0459f9fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + cprotect = { + revision = 21209; + shortdesc = "Allow verbatim, etc., in macro arguments"; + stripPrefix = 0; + sha512.run = "f4795674aa97744b0d6ed70bcae83a1ce3b41670a1bff2e67d12825154bcfd7eac2a740996bcb4aa0445697a3e4c17ef3d8606b308b7db3aea263269a7e2eb51"; + sha512.doc = "e8a5000eb9a538f95bf6df4e2d68ecd8769974192e8181b6eb40e5f48b2cc3a9b9d405d1c7b611e35c41dac5ca5165a503efb7584ee94289ed3255a9482b2b2e"; + sha512.source = "a9c10d5437f4a9f55680fc3a9841e9dc665b7b642e2831c0bb6239d73ea08312eeae372cf95591d002fa7dd51ae45e7413d9651ea5d60e5837903adf565364e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0e"; + }; + cprotectinside = { + revision = 63833; + shortdesc = "Use cprotect arbitrarily nested"; + stripPrefix = 0; + sha512.run = "5f4a3dad026c07720a11935e5ae4fd4b6f5f060292c249224d3a45ee818063ada48778a8399b324f1f13ec4744215a5eaa4f41cbfb82e1f9503d720e3020de55"; + sha512.doc = "a8b050ddc6f3dedfd2ca6c4d7b4def6ab63d55cdb6e8e1622ce95f61aabcf2d9d8bf56c05065c9f4c49c507414273efbecb101652d372e78fef2251a87bc6bfd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.0"; + }; + cqubeamer = { + revision = 54512; + shortdesc = "LaTeX Beamer Template for Chongqing University"; + stripPrefix = 0; + sha512.run = "7c2c4548f8bbb4885680588ff113c8af96d79b5403d6cb01bebc6824745fecdd243af7e14b51bdacc91a6ee2301946ae911aa6c892d248958c1089d3fac383a0"; + sha512.doc = "f11c9d614b75a973cfd0452e283078c5af259127624f7746c0f49152da20ea016acb8842ce343cf342e4fd45f563bdadb48fc4e98cf964bb1c6dd044e610e202"; + hasRunfiles = true; + license = [ + "mit" + "cc-by-40" + ]; + version = "1.0"; + }; + cquthesis = { + revision = 55643; + shortdesc = "LaTeX Thesis Template for Chongqing University"; + stripPrefix = 0; + sha512.run = "929e1b191e8aefd67e734c49227c24ba6f4a15704d3f40aa49b1c0390796dfef36b56e7735e068fade5415838918ec712bd34cfffc9aa2981929067d73d86ad9"; + sha512.doc = "ab270eb465858de3b92248b3b884fcb648b59cc3f947e3362a445562c29e910b0a7f1e4c137aea49c537e68ba61a90d08f40ab43d3340c109e01a293505cfdf9"; + sha512.source = "2184befc80f4ef6f23aba573778e99314dab80b65f053416e5dc8ebb0ff462c8f5d665085955fd28d88dd24cdc9e0599ba4735196b239e3123523cc1316da3a5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.50"; + }; + crbox = { + revision = 29803; + shortdesc = "Boxes with crossed corners"; + stripPrefix = 0; + sha512.run = "087ae9406fd8f6916e355b51d2f4dc7383228813716ab9f6c37714794c931a9b5defa4678a4471523c5fda2c6b0b7784d11dfb488a8d9c60f0244d9d2d64ab2b"; + sha512.doc = "8927d6f60a3a895685c679e565632ee2ca68c1f2e8dfd795a481767463d88ec37579bfbd55858ce1e6e433a981de4b5140cf75489221243716cd8035a2967a90"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + create-theorem = { + revision = 70180; + shortdesc = "Initializing and configuring theorem-like environments, with multilingual support"; + stripPrefix = 0; + deps = [ "crefthe" ]; + sha512.run = "b65a610bb508fc169db8447d234e656fb3b63647ccc7a6656bb015fd871c762ed2b8bd59304808f5db1ce528f8227283a6172aafee9cb84f24c5fd41041acd9f"; + sha512.doc = "4ce2d32999518c46478fb6563da42d073a04fcda76391ca722e20a4b0651819722fe62325c7bc858162368645c259de2407bf6b67681a7990e225195459c54af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + creationboites = { + revision = 68087; + shortdesc = "Macros to create simple tcolorbox with some customizations"; + stripPrefix = 0; + sha512.run = "5aaa071101c52bbd95c83b2e523ab664a2d52109fd5ebdf71da07d3af997d93cc2550736fe18dfac05348d92cbb02749f03a052954a0807fd3d2140efb322588"; + sha512.doc = "42e8ce40f037b18e82899b570e8102835a437a5283193f1e799876039a856f86adb1afe52f5b07bc6151644e9b174dcfbd96f6148e2610a0a32cb400832f3ebf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + crefthe = { + revision = 70165; + shortdesc = "Cross referencing with proper definite articles and declensions"; + stripPrefix = 0; + sha512.run = "e3d8ee83d5c8eeb35885ac852e64df8c3e0950855b1860fd1013358626aa5968e02175e0873dadeff69eafcf14dc85bddfbe78fccbe9c784748c5e09b599a27a"; + sha512.doc = "35d45eb3ad323dc4699ee103a7efedbfb4fac371632d82e5e449a49e89ff6ee25ba9b7d86ee2ebe76c5094dbc24c0813d2a89328d28414b04ba2d20c513cdf3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + crimson = { + revision = 64559; + shortdesc = "Crimson fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map crimson.map" ]; + sha512.run = "fb807f6602365c65470ceb947e72c63171fc401145b83a63429836d274ca1a0877008c27e4f6416b2a89a3fceb2912062749deeec81346e59c734fa14e4cc289"; + sha512.doc = "105068d0dd81b33a8c073ab33542f2ba7893d4e1d95dcf7af58b413d54a3e7e0cf24911fc2e56ee9821d6d55f016355d4e42db2d981e48e1feaa98b498e20e73"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + crimsonpro = { + revision = 64565; + shortdesc = "CrimsonPro fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map CrimsonPro.map" ]; + sha512.run = "e119ee9df715d799231eece3e5c5c0c125077b9ca526d1293f943dd2700b45da0bbbac90a964248415bf9cb1a51923bef26995acf25397216edca531594d321d"; + sha512.doc = "3f151947afe36a62d958804ffafddf533b9970162511ff2038629582acb15b4614d9bd5ffa28b53961c53996d2a8ebc0852b511007ae83d2b4f5f908a1d1b04e"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + crop = { + revision = 55424; + shortdesc = "Support for cropmarks"; + stripPrefix = 0; + sha512.run = "f6161e7688d8853d2d9041cfe26360b71a920028df673d04ba38f258c810021752bb7282757ceb98b2e62f7ae52a5f4abcdc61333081d77b205d5431ca62a569"; + sha512.doc = "770ab2977a4ddfdfdbac5f1107e01b8bd5858a31747d44bf0186565dc79becbefde2f34a9514dcf214b8eb781390e98d5f5383f2e70e393ddc22043d4a0eacfc"; + sha512.source = "1b1f0e6a309d1657a12f9760ce2a01ab370de1d34bd628bc066768eded3d7126cbd1f8c38d315fc120c58d73cee48fbf2515492c218a6510306766dd83861b15"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10.2"; + }; + crossrefenum = { + revision = 66014; + shortdesc = "Smart typesetting of enumerated cross-references for various TeX formats"; + stripPrefix = 0; + sha512.run = "ec85888801dd66c0e1b22a257be19eb141b922975a7dfeff90ba146232a6d8b9a7b76e338b68548ae228a1317af0208072c06cd10ddebbada93b11b72907c817"; + sha512.doc = "c5d847af7f8c2d753563d5f393cd3de2936de96ebf1e653b7e0b9f72da75f3481ce1a783329f74ccf8e5f160eae81e045c663775dac916c431edafb1677b5860"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "1.0.2"; + }; + crossreference = { + revision = 15878; + shortdesc = "Crossreferences within documents"; + stripPrefix = 0; + sha512.run = "e34b4d383b8398880b962cdddf248c95f2bc7187b5ed4f0caf84655a94f92b915906b150ef904c696f49f22ef23c039ee66427a03b1430f7a3d5f619f2a80d01"; + sha512.doc = "e21b294ac2b3489cc81ccc99c54bc60985d8769e297f137180a9373ad289248b5d90acf3dd9800d0690907543cf52f0532f6317ef55a43a5b55541805e2be68b"; + sha512.source = "ebf66eeddeccc32574b0f6285d655d5e9a00e4c4c6a50c232ecbc438b51e4ac45876e925b41b71717b23004a24680b3302b8a0afb9ba124e279094d705676b2c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + crossreftools = { + revision = 55879; + shortdesc = "Expandable extraction of cleveref data"; + stripPrefix = 0; + sha512.run = "50b8ce01e9bbfc1f3b4ec9093fe0b091780edbc197a9c637b98a025926600459c5f0b22f5683427bd0a4f0a6ddacadf77833f3171d2dbd45ce43dd6e1d80d813"; + sha512.doc = "0edf43d8b68decea7d83cf5eaf2f92f86635f19041680be4a511a57a7751dd40efe4b4ede05a898c2e00f91076caeb3f4b39c444d1ab8b05a4f0471913e4b475"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + crossrefware = { + revision = 69700; + shortdesc = "Scripts for working with crossref.org"; + sha512.run = "8559fe8e71e27f8417923bd2c7a73a560c29d699ddb77e5b4ac464aecf794fe0cbd02d19abf75f7063994df9ffe6e761f98555a9411e9c5108b38e96db971f1d"; + sha512.doc = "41ef79c5487826500fa9465d371c30a8ac513c94cf4852eb1bcbdf08759f5c7384189f91362efba921e9d7f3801a12d1c1968492640dd1c1cf2f1d6001cdb79e"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + crossrefware.binfiles = [ + "bbl2bib" + "bibdoiadd" + "bibmradd" + "biburl2doi" + "bibzbladd" + "ltx2crossrefxml" ]; - sha512.run = "dec8338854260467eb5d6542d4561e38a87183290e53e75c3fa188fc8f537a466ce4a5974f4f5644b9f2e62591cd4e8860f8e2b314c8918ae45e90e00c61ba4d"; - sha512.doc = "6a5d88d6091e95025e7a4f12a6e831e5bf462156afa06c7b49d35086f9b555ed8fc1ed9cde970146106f3efc29b70bf0699c1b5eadcf970c1f8978c46ad590bc"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -context-cyrillicnumbers = { - revision = 47085; - shortdesc = "Write numbers as cyrillic glyphs"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "14a90656d706d68ce441301aa6bccf2033c36f9c8d8605ec9dedeeedb71a5670dae325a5a198b2ca25373eb2b495e57fff31b85089c6c0fb987738c76ac636b2"; - sha512.doc = "d95b1df26033aaff0a9f6759268ac3e68bff02556001e3f9b2bae1db68aa13c839a87047a6ae0a296f8e5817398ba35b7cbacc4f194dd93cf72684904190e7e3"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -context-filter = { - revision = 62070; - shortdesc = "Run external programs on the contents of a start-stop environment"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "c2534b543fd5444776a054f43fafa393040af5bcb67f869d61d200a4a1d0355f1d81c64adab683d15a6be806a21dfc9ad661995bbe51da3c0bfb841ade4b077f"; - sha512.doc = "a9c2ea88b0e2514840c368ea7686894dda4b86c93ec8f34989238ffdf5704f1c1898d0ee5e0724035314d2d37803f1a1afdd445dd802a94f5ff4223148f81767"; - hasRunfiles = true; - license = [ "bsd2" ]; -}; -context-gnuplot = { - revision = 47085; - shortdesc = "Inclusion of Gnuplot graphs in ConTeXt"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "d3d7dce105707bd8fd903038e458cae614ec63da7932231e1f659570ec3a7960ea0fab338a8405f2ca8ce8b03946b58db8255333d2a4ab5a659566f4d272b0b0"; - sha512.doc = "40e471b27d53ced33590792ac62992a220357c6db1c78cba901197362a36817bc14b049f2573ee2e5b5adad5182c5bea2880c4f7a2477bcd1a06ee7ccf88b0b9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -context-handlecsv = { - revision = 70074; - shortdesc = "Data merging for automatic document creation"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "b4a38aa0e04812e328e3d6225462078ddf45d8791d789e2730461630db55b397754ca192acf37b9ae7f1fc10c61d412022a9e56d3465d19ceca7f5875e3d580f"; - sha512.doc = "763f75ab94a317788d9d96b88f1b7e25847ed316b4dcd84158719ef1c3cc48c90c884ec3158412d574839adf1ce8bcb12f9c0cefb6650338afa424fbd0213be3"; - hasRunfiles = true; - license = [ "gpl3Only" ]; -}; -context-legacy = { - revision = 69173; - deps = [ - "context" - "metapost" - "mptopdf" - "pdftex" - "xetex" - ]; - formats = [ - { - name = "cont-en"; - engine = "pdftex"; - options = "-8bit *cont-en.mkii"; - } - { - name = "cont-en"; - engine = "xetex"; - options = "-8bit *cont-en.mkii"; - } - ]; - sha512.run = "79783a6096e3bbe21eff5967fa3ed4edffc573567bd027a59c40fbd1f5e3cfc7d0c213ddc9fabcdecd596bcbc9946cf4255edc4237f0148c89dbae7744f3f508"; - sha512.doc = "6fbf5f1194771c9dc4a19b49aa343656bdcad3620e14a68a0bf9d05cad8f8c813f717b66b12526c2f11a87d4ded75e1cab56d3e72ca1cabe81c9818aa11399a7"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "rb" - ]; -}; -context-legacy.binfiles = [ - "texexec" - "texmfstart" -]; -context-letter = { - revision = 60787; - shortdesc = "ConTeXt package for writing letters"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "558836a8c95743270f627a18dfe7a29ffc7a2eaeb4cf663d589ef5c07eab4dad6f09db31511379c90a41d1e9e7da5766e8dc3c8bb0902fa06bda4fb33caa97c9"; - sha512.doc = "94e1bf68371f3e8c426cfff5c471f93c86ce51fdd92dfad59669d32cc73d86de606113ece55d13a0f25ac4a26f16916407de9175b84acc79ba107156c20cd20a"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -context-mathsets = { - revision = 47085; - shortdesc = "Set notation in ConTeXt"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "e4c689c745d06c61d6f693a9832001aa8c79d51664c2a5d6d0c6148a95b30870063f50eecca31ac0924193c6dab8c12cd5ccaca16eeaf5f83a99cef1a8889ec3"; - sha512.doc = "f2c33244814da8e8838483038f507fe6b3e146f37691e55a37bb5355985d2af4c5fc423318133c4f13837a3e66a4fe72d5c14f6721bb5ee0417a59691b86d3f1"; - hasRunfiles = true; - license = [ "free" ]; -}; -context-notes-zh-cn = { - revision = 66725; - shortdesc = "Notes on using ConTeXt MkIV"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "46be6b5f9f86d6da5514f0ae0cd77aa9beab67572699f9779f3a6cd461a8600336103eaf71d6e6d99fd7ac300a3e5fedcd6e378d349cf648c9aa5a8be2aaa5b5"; - sha512.doc = "a49b1c85508128e0a2e9ae0218e3622f7479da528f51380c1e109bf877f401531689e8119cab3bde6a91e507f0bd7f16e334cb3affaba7fae5927cc23b17a207"; - license = [ "gpl3Only" ]; -}; -context-pocketdiary = { - revision = 66953; - shortdesc = "A personal organiser"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "fd90eca9b9642a16aa203984165302b111d4058ed970aab3867018f48d16884fe543d3067a0ad2fc2c0e2684924ef11e9788a7deacb20ad06d7451dc5b19383b"; - sha512.doc = "a78ed374f6a7ad63a93aef4c9cb2ecc0937c2e3df821c543f49a3ad762ed6949a7d1c4c5a03c7cf54eeb0b9ad891a18c5d10b97a42bbb840c74fef2bf8f14cfb"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -context-simpleslides = { - revision = 67070; - shortdesc = "A module for preparing presentations"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "083b1f0b70a74a3648501314fa993632534f476376fb80eb4444b0273866bf4a4d562e4bfffbd14ed79be0020361ab6cc5c40fde1f99544b76d6f33939781f19"; - sha512.doc = "e7a410ec0d99f945dae91c041b396875a6350aa06333f5a5d2d7aa4c6bb62f926ec53a27a1c95a724ce7b320ddef11d6550b0b92a34c00ac63c7c0da96a35928"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -context-squares = { - revision = 70141; - shortdesc = "Typesetting Magic and Latin squares"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "1ff4b50cf1bf75c6908b968c0fa35bdbd3571ef680ccf591ce5b0bd65370bc1dbd3bbb54b55c881d4d76ad09aa36a496248560874ad6e14e39b5f94cdec5ee23"; - sha512.doc = "08b652e69c1719991daf36b9d9360b5736c25283ef10bdb5859bdfaecf1dd3a47d7417b9884d7bf51a32b073f99e08f35d8f172ff0d6a4817923c00f81dd6dfc"; - hasRunfiles = true; - license = [ "mit" ]; -}; -context-sudoku = { - revision = 67289; - shortdesc = "Sudokus for ConTeXt"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "b33ece74cc5578c4dca8df816715d7106b674fdc653d149992cf637b11799a21eb03708c0efcc79da9d4658c5f8a801c6bb32dc681f43f3d4b3900dfa588ca99"; - sha512.doc = "e7f9b6c0ae6bad729074ffb2e4e1673336954adb9013ee6525e87715f3d22720efbe1f7e2cb6b695e01940a4d7f58489889612749ea2f4dbcba3ac6faaa741c4"; - hasRunfiles = true; - license = [ "mit" ]; -}; -context-texlive = { - revision = 66924; - shortdesc = "TeX Live-specific helpers for ConTeXt (caches, papersize)"; - stripPrefix = 0; - sha512.run = "64abf080ecfd9cf68f2ef12123ca6ee976d6fe3cb8382d34b32f424a1bfcf9165142bab2c1a9a1f394e1ed4bd53aaf2875363e7f357eae48ba00ddfc894e5d1f"; - hasRunfiles = true; -}; -context-transliterator = { - revision = 61127; - shortdesc = "Transliterate text from 'other' alphabets"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "f919d3f9e6ab25932cfaeadfc07f86ebdbe00d84dc21236e4775930fc3866cee69cf9a25d373e13655f4396a3c395ea6ea103a28ffb4f00a4e95b7ceaec155c9"; - sha512.doc = "8473c1ca7b48009055f5c33031ec60f80d84dc43396789b0c0c7e6d65bcf014a237088dca07211beae4bfb80377f55cf12a9f379995cff50f52143fc4bc81295"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -context-typescripts = { - revision = 60422; - shortdesc = "Small modules to load various fonts for use in ConTeXt"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "a13d06b9a792cbd2352016df508a7860e45b541d04cef1c9d9c8b5a6199120a71dfd69f990700c4a76ac31ec11209caef431a190b9045bdc46cc44f88cbef0a3"; - sha512.doc = "3d948f22da14b1d481817477235657cee714e4a2a69834729c20e18157f1175890ddc7fce992e8f5f27e26cd6d08186ff1521e2186681557cfff1a4778267324"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -context-vim = { - revision = 62071; - shortdesc = "Generate ConTeXt syntax highlighting code from vim"; - stripPrefix = 0; - deps = [ - "context" - "context-filter" - ]; - sha512.run = "12100c7aa3eb555cf9dbe72454a96e63feda52329a8a192ff86ba30477acab4ebaaf84c15a79f16d4e3f95cef02baf8146e5810b8c9e8e94c25ba1317bf4fc2c"; - sha512.doc = "0f49e22b9e1d465f46727a9e952e095eceab55e77a2559fe497cf14690377f77ca42aa23ce7eaca659e9b0983e5a950b36733eef49b0473fd33a8f783edb43b1"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -context-visualcounter = { - revision = 47085; - shortdesc = "Visual display of ConTeXt counters"; - stripPrefix = 0; - deps = [ - "context" - ]; - sha512.run = "da7799ee31a4298f8e8cb02cb4e480fa49fb4188b776df877648c663c93523636bdd7fa6ca5eb403fc8f3483064bf223fed042c1d27eb0817c224ddf8e21c673"; - sha512.doc = "1788355ea4109e7e2bbaa9bbc3798f60a814d549d082638a59a453cc5fb39b54ff8a00471a28a96a5501e91899874ae19981ae0f8a09b6353d19275b851b9f80"; - sha512.source = "39bba551e9f0bb8d70c0b60a2b0fba3d7cad30555d4052fc6ae722bfd9cb79d5cca784474a9f1847faccccb1618662bc4dd2fadd1fdacaf2f4cc9c035b5501ec"; - hasRunfiles = true; - license = [ "bsd2" ]; -}; -context.binfiles = [ - "context" - "context.lua" - "contextjit" - "luametatex" - "luatools" - "mtxrun" - "mtxrun.lua" - "mtxrunjit" -]; -continue = { - revision = 49449; - shortdesc = "Prints 'continuation' marks on pages of multipage documents"; - stripPrefix = 0; - sha512.run = "42cda9a2796e9006263320163777df7046a79e38cb2c0ffb53f23c27cc03c686e00e39b066228b09ca99a6e5c2bf4a6cb32d5d7c49b40cf614c542e258968ab9"; - sha512.doc = "0b6bbf7c3123b7e741255bd3ff9e020ec61bcb81a236ddec41e709f14de514057d9b902ad783f48e5c04ba1ca6daee31a38f130649cb0e5b2d548ca9689d5dca"; - sha512.source = "790671ec666983e4ff5ff594b7df54cdf7c9d136d57f9004f5400857c3001ffbd3a13a5fc559f3ab75a168c66fc5aa2ee3b5702e5ec417c9a31a1e65d18b801f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -contour = { - revision = 18950; - shortdesc = "Print a coloured contour around text"; - stripPrefix = 0; - sha512.run = "0dd4a28f97efcfd0459595776cbab019168fca48984d78f9ec17e0f3af9dbebd378adc6649bce6a9a999651c75316f3ff44e0f10e208465dda2d904d080c41d3"; - sha512.doc = "af1c649d2e5666ee3973395babce4802da2154ba95fa7fc08e378c261a8ea1c5be44053c40c5cc1bd0c74e2c54b659470c3d45063fbbd4330cdc5e664f19bff0"; - sha512.source = "377b4a92031cd957b15d232cda9e4c2e7488a4c71624eed06dc2edf9dca37afc11e18691650ea377da2dd78b5f636272eeb6d94bebd99ad5ec1ec477f7b65784"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -contracard = { - revision = 67201; - shortdesc = "Generate calling cards for dances"; - stripPrefix = 0; - sha512.run = "eb705425aa67034ddbf4390165a5f6a9690c67d34371a720298843d1c7292655bcb59a56364bdb510608d48b6590931abd68216fdcdcd8be90eddfbc339ce28b"; - sha512.doc = "046a38d7a11edaa8f67648996c31e481cd818b79afb1f971afe459b7adf0bb3d4f5cb0afc3903177bfc0b9b0678336a837002f8db486916afc24445a875c3285"; - sha512.source = "67bf64418fde78f9ea7288f47efaf50970f133325860f0283ed2842f58394417b4e8ec8f0180cde60c9bb74cd1c797aa6f89afe3fd033676681807cd25d5cebc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.0"; -}; -contract = { - revision = 69759; - shortdesc = "Typeset formalized legal documents such as contracts, statutes, etc."; - stripPrefix = 0; - sha512.run = "bb37446d3eb0f736014ed0c589b1ae86d25cb6fe2374906f375047317b74e9d4a608a4ef32bf11776f37449d59063bc0973e9a2c7e83b747480b8b73efaaf133"; - sha512.doc = "7681e863e95f295e0ec98d0aaa789b1089fdc023feb04eff3d028c4f0c19e9d6974e96350a25fcc7810e7dabb8cf43551ad0fc2d0cb1b9684c4bd60268082d32"; - sha512.source = "3b9d2277c2e1248121bb27446dbcb8b66ba6b7264b7c9502f1ef0691c66050c32b0dd6975cce60cd6c0d70228a88fbc35433ac5dd62aa3aef9040b9292adf402"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -conv-xkv = { - revision = 43558; - shortdesc = "Create new key-value syntax"; - stripPrefix = 0; - sha512.run = "7bbbcfd71a32704f2383289d91fcc1b5993aa9e184f5d974f6dd5592312e85848a926ad9e6f412bef801daa20cc2b9c999ba137b9b24e31facfd6931309630df"; - sha512.doc = "c1c923008185db09b3e7cfd90bfd9b33ca2a61ccc706b0f9cefb238e0860120da517fdc7166e4fe476a1cc02cb4a7a3fe4c9b81c87c8de25ddd1c0c417dcfca3"; - sha512.source = "edd5feac4453010dd996edbb3741339904b0380c021f9429933f6b27df6d9c002d593d617467043ae6087de3c5842fb7a4e8ccfcc95c7763e124ab5f5c9dc024"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -convbkmk = { - revision = 49252; - shortdesc = "Correct platex/uplatex bookmarks in PDF created with hyperref"; - sha512.run = "01bb9621459bac7eecc99b1d9aa59de420ba805b2e0ecdb2a89f5c86fa4a3021d957b4ddc69617ea406e77865d68e40c657979c488fc51f4676d084cfe6181cd"; - sha512.doc = "937d436cb9387eac601883ced516fa40f60e606bb4bae0be62e1ded2a31754a1d00461a34ad533cce1cc48f4d11e880233eaac128d80841e0b22f18801e86506"; - hasRunfiles = true; - scriptExts = [ - "rb" - ]; - license = [ "mit" ]; - version = "0.30"; -}; -convbkmk.binfiles = [ - "convbkmk" -]; -cooking = { - revision = 15878; - shortdesc = "Typeset recipes"; - stripPrefix = 0; - sha512.run = "6c2fb1adf244dafa9689844e1283dce19786e2c1df170d4172d3567514555d90adcb82414f79b5d9dcd59cfdd3af5d6893fff57972d6e4fb32196add0ed5b1eb"; - sha512.doc = "30cc2a5b4679126cad1b13785081d924f9d455a5f392e5047c14c8ce1dd3efca102bafb74e1a339dd938680f3a95111a7025a31508ea63108eb33cf32b03c9c5"; - sha512.source = "7b935bbf1a7e7dfeed2db1c4725e38a3bf847822dee7da8d6098e7df82b5b5035b47ce3f0b9403dcf35028b319c2661b0bd8288b8a1e80395944532777451bd9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.9b"; -}; -cooking-units = { - revision = 65241; - shortdesc = "Typeset and convert units for cookery books and recipes"; - stripPrefix = 0; - sha512.run = "82f6e5b097ff7bc737526b13b04724fa144cb96d796cff517019e49befa174f621a41ec4c52d29fd20bb502dab46db1699b98f57de337fef8320392c63839675"; - sha512.doc = "1297801aaf9b7ae7edb900165792e1b7ae91ab6c32482a7006dfddae37e1438a3748f3e048ce385b76dafdbe78ccf5c643e9d78c07f2bc9cdf7802affce14764"; - sha512.source = "245b98785b44afb68c70b5cabc228b282d8b9351ca97b0b0f472dd8ebd547928f538c002366a4b9344d74dfa35efffebfa5314ee1cc5e5f292d7134b03b58698"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.00"; -}; -cookingsymbols = { - revision = 35929; - shortdesc = "Symbols for recipes"; - stripPrefix = 0; - sha512.run = "9b43ffdce038ebb001c0ab6198fa2d92ad6f1ec6040f1c315a53fbfd29367e5c851f4015c36b0cdb2eea84f4a8dc90aa3d5126a09f93766d614931bbf555f982"; - sha512.doc = "fb6794942d016d12f527b86947c7fae9947a7cf9122a7b26d39bfeb6d5f55a7cccc11b666101b0c80a92c7385ae8305bcb4d792baa0974b738af80697ad12891"; - sha512.source = "b2e8ff3274ffaff3a3f5b3de1ab95a534247878f163cba8cac9af0cb49c59c54f9ac7b362c75dbc394a3c942864b3255ed28310ac5ba842b5b63ea0d0d80f7d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -cool = { - revision = 67013; - shortdesc = "COntent-Oriented LaTeX"; - stripPrefix = 0; - sha512.run = "4ee983b7b07d20c9fe7568ebb6be60ecc56f85cc4ae4013870c53370df99d69bc0537c3889790324baa1f1a8afab2da56763b590457c49866d219b1540effe98"; - sha512.doc = "06d182b5415ed25be80c827206759708daddfaa6bf7a3aae59c1639c3c09523a7b421abdd9d2a8db1297e161e439b777d3d1d8c07e52dddc1c071ce1c5a9fe47"; - sha512.source = "c305695f6694cfb4b08462591aabd64adef27001d0c84ba905b0d4f07b7095905cda414e7e477ae962f5ecf6cdcee60d0a432e4eea924bf2fad0770411131912"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.35"; -}; -coolfn = { - revision = 69007; - shortdesc = "Typeset long legal footnotes"; - stripPrefix = 0; - sha512.run = "b92b231bee56a8589e079a1175569a8d8b92bd0e4730e87882cd8415bf301d466c381eaa0540104abfa5e9ed2d159b3349e3dbfc34e6b1c10e52e255946b3067"; - sha512.doc = "f3f6c06eaff8ce132e5bbdc25fa244b6aefd388a467bdf78c9c5459d6bbcaff185ef0a485957e8b864ce167b0be3a994d73cbed788754da308dea2af5d9beaae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -coollist = { - revision = 67048; - shortdesc = "Manipulate COntent Oriented LaTeX Lists"; - stripPrefix = 0; - sha512.run = "7336f6e9a05311295d1ada4598d4b5506ef64ea1c245d30c2f30e079b5da66f08b029d98a74dec769b60da7ac05822f377c485bc0a7a25fcb3aec9e2f499d3a3"; - sha512.doc = "5f27ec17d4544bb4ac9891e088b6d921901504c46a52a65638d5caa0fb7ad4df55c00ff2ad7569b6b7f97919b9a139f433044f849ca4bd559c77e147e5878d50"; - sha512.source = "c0a8e06bae7ea5e3a2dfba01e014c7bd0ffa22306bc1827e1eab717317b23df8d20ca344ba182c7c44a596f3c7471aeab03ed93221cca658a0e451578bad6761"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.4"; -}; -coolstr = { - revision = 67015; - shortdesc = "String manipulation in LaTeX"; - stripPrefix = 0; - sha512.run = "272c0ad1071f394c9cf96c38ce85800aeed55eacba29dc86c5887b86a63b717d8f83fd83afb5ff813df780691a7a2deff6d466e521eeca14ad3e3d09f07ab0db"; - sha512.doc = "5f4baf28b3a5d2b83ab51037c60454def4c1ebb74a408add0459fbc7766fe828e32af9c02ba898592272b067b23715e3986ca4f561a1a89d58a57c7de6d70bd3"; - sha512.source = "56e15bc77c6bbc2523162db8a86d1b3bf86e97a59fec15e27da736b964d02e27e7838690befce0f493a9363b946f710676c76e1ddc0c048f5cf40e41d29c1c0b"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "2.2"; -}; -coolthms = { - revision = 29062; - shortdesc = "Reference items in a theorem environment"; - stripPrefix = 0; - sha512.run = "7a9d8f4605a0ff108ef5cb32ef4b6f455d16898248fee534e6557d8323c4378c8299fc1a6d58dd491020090ed4fdd3e41a90de99d18a9d114b72bd57b27b5e7d"; - sha512.doc = "2f5ff3ead76bc83138e41ee881713829de7b8b0ecdda353fcbdd9ebdb7851139eb9022fb4eec1a1c03d125f4106ce748123a9d9fcd76859e82158a541aa20aba"; - sha512.source = "088f76522c4576925af08d387ecfd18b4906aa91fa741c4848eed49addb9a9334b3f27de30c516e7a85583a450fcfd0c7054b071bb926eb8f1f9ab54b5791ed0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -cooltooltips = { - revision = 60201; - shortdesc = "Associate a pop-up window and tooltip with PDF hyperlinks"; - stripPrefix = 0; - sha512.run = "fde90a48c95ee35a7b9c9dfc1359df09646cd9f5cf1a44a7eba7ffd9aaf98c2bee400dd7ee6796583bea5a874c2693d25d3e502cdd4c3a207949f46ba7525505"; - sha512.doc = "0b9d55f41afb738f1503e232e06809cc2354775c6793c1f5f3f3c65d4aa349294b5e9ad4d223f588dbda0b0f53091cbee4855804273a8d8f21a6689760a556e0"; - sha512.source = "584d4880126bbca5343a4a8df85ca348d397dfb5cd5fe8a62d61224f9c95c5a0aed20f8c522d65ed68c6435506613fd0decc35acd848bedf2bf89de6842a7f27"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -coop-writing = { - revision = 61607; - shortdesc = "Support for Cooperative Writing and editorial comments"; - stripPrefix = 0; - sha512.run = "b00d0ba304a9aa88929a0f130b3e73bf8c095b25cebc6b33d8d01d15cc73766ac3db3a588719fe6480fb4105ed0bde32d5ab2354f2cc223c2e3bb90a8e6f877a"; - sha512.doc = "489060dd92b0044cb76c8e4f3f17aecf85da7b320406875b0c9b46fde2edf485868669e4986d9d602eb317ec0199e6ab81bb34096f7635fa4479203e03336577"; - sha512.source = "f00f9b9db508f6fb924a4371413631eb6a269f1e70034891a1cf1f6b8df6d81f5f3e7d12e5ff7df29524d5354fd2e6123651d549e997457cf4723a8e723053e4"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2.4"; -}; -cooperhewitt = { - revision = 64967; - shortdesc = "LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support for the Cooper Hewitt family of sans serif fonts"; - stripPrefix = 0; - fontMaps = [ - "Map CooperHewitt.map" - ]; - sha512.run = "91047a9831d2f1bd9ce8c3d6b1089316a40312b4920d9e8e26df4a5fc64293eadc45ac211c039ac8bc83df5d3406cfd006d1192945bb3776983f5d571c9e364c"; - sha512.doc = "211601a3a1fe2092a1cbb67cf6fa71f7ea2225f425a8556c1b88396c3f0d721ee144346fbd29204c4d68da77363653b1f0b14693139278f2b22a6104bdf949d0"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -coordsys = { - revision = 15878; - shortdesc = "Draw cartesian coordinate systems"; - stripPrefix = 0; - sha512.run = "83a57df64b3386b7e927ca30b4b2ea031bd656121dda79dba0f96779e77d733d2293b80a3b08081678bea9b31a31a586123e9866c6aa595561843af3de0cc4f6"; - sha512.doc = "bb89a04e5889c39c23ee65c38232cc0be931dff383d52614e290b6bd8ab23e7c9063fd7ea656dde896c08830b8c7c85e1da7f56728fd43a1bedf31bef6ca2e83"; - sha512.source = "dd03bf08143a43b3486524d4aadac592e3e2264d23aa45fbb499ec7e709edcabd87f66fa38349edd856a09fb6d55ef466d565714045559b9b7f418a7d3eb5acf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -copyedit = { - revision = 37928; - shortdesc = "Copyediting support for LaTeX documents"; - stripPrefix = 0; - sha512.run = "27f48ff201c66d61ed7702b4d11f0d39b0c74974ea3a90506dace0f3cb4ac3c4ee5cac28f9669574184620b3e64a4b9ef3fa5564213e3d200754bbab791e52ea"; - sha512.doc = "60fde840ac3c6876f031daf09e852ddf79276d2f841dea2ee5299678bd116df31b2ec2dfa6d6175e45a42fd781be6935cbfa2aab8621af641985e3df2c665fc1"; - sha512.source = "7d2bb6e2e8c036345e301d45c03665b6c8ae9dfe91668f354e77e30e2d8a47d1b6db2e7032717c4b04e8e122952b916459b991fc5b566a020262835bcdf6a6fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -copyrightbox = { - revision = 24829; - shortdesc = "Provide copyright notices for images in a document"; - stripPrefix = 0; - sha512.run = "2ae2afc738cc906d24fca0a6319c98dc1e9382bbde6db3d0c3a371d3de8b92c30b3bf05be04797bc0ed6d905933a50e74809eed52f06cdba5fc5088be033d4a9"; - sha512.doc = "9b817f2874a35f3e023774d3be32e0f8bf53a26f9daf553525c95ce0c21a64a22c3a716fb20cdc76921ec90b7b5305f305bf44853cf87d13ac38ce853ca00ea4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -cormorantgaramond = { - revision = 64411; - shortdesc = "Cormorant Garamond family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map CormorantGaramond.map" - ]; - sha512.run = "1f1707a00298fc2015ba01259dc8558a79e72a10753f3c101f318359f0d4a3b6a9ae16cb1c1825ccf152fb50045f2cca429b00da27607fa8ba1046ad15e5a86f"; - sha512.doc = "85a5ba16ec8756b5052b4e6342d47e83c9fc8f348ac3b4c067afba131a7ed853cab04c22f8723a912a1178cc8ed373ab5fdd9d2be0d9816918bd22233c13ba95"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "3.601"; -}; -correctmathalign = { - revision = 44131; - shortdesc = "Correct spacing of the alignment in expressions"; - stripPrefix = 0; - sha512.run = "5a7e9b3b51ae82980cc1ab9d4ae74aa0b65afa533d21230b1f5e6867bb6464f910a07bb1c38621eb18d8bccd8bc50260b8741752936c310012590706726ed6f2"; - sha512.doc = "bc6c9f24a4107d28120e6934f6966b2560ca4c34169b0074023e941746240879bc0572840d3967effd3a1358ef288ac412946f79fd3b40151c1507cba8828be0"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.1"; -}; -coseoul = { - revision = 23862; - shortdesc = "Context sensitive outline elements"; - stripPrefix = 0; - sha512.run = "21524a0721fa26d85b383879cc75600bcd55ee05220eac245171eadc30dea7296731e4d6d2d3d82d10b32f1d674d444bf1df41dd82b92d5cfa7ea06d53f56147"; - sha512.doc = "6e950d1f5129b39de2cfdbf7cc46b101f81336f29325a5e74f58dbb4378dd79189d1e29dd88a9e828fe4e758b6de93e76f70884c9fc582cc8a69f6db1e1f2617"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -couleurs-fr = { - revision = 67901; - shortdesc = "French version of colour definitions from xcolor"; - stripPrefix = 0; - sha512.run = "d3d1abad334d50129f77b35ebd6fa244feb84e347e64cd98f3e3413c556b1848a198e4679e266f838d947244756fc19071b1bb0816c73b887b2deb4fe061adcf"; - sha512.doc = "8e88f3947d0dcebab82a60bf9886350762f57da2c2b3c739e2e3896afea70a2088ce325cfe6373d6a351b57fc2f0b0bb7f0f4c9716a094d86e1997744890c92c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.2"; -}; -counterz = { - revision = 67335; - shortdesc = "Additional tools for counters"; - stripPrefix = 0; - sha512.run = "5fcc21ea49e222cbb205998172ca4184f4daa3efcf92c48278b3e7c5bce6669594b02f5fe54af76f94ee19ba63b9701e66d24c2ce85262748c1fd2c9b6e18b3a"; - sha512.doc = "a5ccf25501d1275161e9aa53f076fea2480cd5edbb83e4133c9cf8e400b840fde78f69bf038e5778c6b8535fea3e654c11eb1ac82545a90fe952530bfdbb607b"; - sha512.source = "920d054c6a3bc41504db850407d8553b1e108af85ab1a94fd2a6bb71e8f6f7f02abd11908a8d73430cf27c9f9f8e46014a53b8afdb80dd360e4e1cd12f8bb090"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.1"; -}; -countriesofeurope = { - revision = 54512; - shortdesc = "A font with the images of the countries of Europe"; - stripPrefix = 0; - fontMaps = [ - "Map countriesofeurope.map" - ]; - sha512.run = "fa0faa88db3e7c1baf73d5fad1fa196915c752e15dc024cef051127581f1e8a3d218d5f2f815b44bbedc9bd6fce6292825929471b595771e9ecd0b5131b11d26"; - sha512.doc = "e99ac6f4b57a2aed80cfd1214da7625ae94336677f0cfa0306125b06054835c2c3b23ac901cc3f421d56e4d021dd468db12e21acd6b3883c8b937919dbda056a"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.23"; -}; -counttexruns = { - revision = 27576; - shortdesc = "Count compilations of a document"; - stripPrefix = 0; - sha512.run = "569393d76512308751bff3c5cb22bc11ecee420bb16b5f7d35d6b10beaa02f9c99a4d440e7f3a35bda4e6821405e5f8d621af5af176821549a0e0f0660f998bd"; - sha512.doc = "4a67cac01589ae5d3eb61c5c6c66bb38ede138c9c2b56fcb6359c8f851bf55ce3cf2e5662cd7751d6708c86644cb5f607318612b01b60f769858d594c2b24218"; - sha512.source = "ed482becf766081e5cb05affc10c64979e43f9f655074366063b95943229dc9043943422e1063ecf69e5d44659566fb1d0ffddcc27d33eebff9de69f4aa8c7f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00a"; -}; -courier = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map ucr.map" - ]; - sha512.run = "30d6c8906671239b9ef04b3c4d571f59e928ffefc965cd592ecd3277062c778b6f8cb0782f5eb8c6bc27d03b69a88a120593477ced93bcc44cdd4fbc3e5b8adb"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -courier-scaled = { - revision = 24940; - shortdesc = "Provides a scaled Courier font"; - stripPrefix = 0; - sha512.run = "570256a4353163cba169ac5d649458d363edc5c2836efccff1e7df83c12d9b552978b3531f2ab026430b3222b3dfc00be0e4700031e6bc50bdb60a739a68c9aa"; - sha512.doc = "59c5cec8491e678b084afb4c6e63ed07ca179b5f17be8fe581ff341c80b3cee8016601799ada090e1fcde9eeb72197986f3d4aeffa7c7a9d10a014e34282f52a"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -courierten = { - revision = 55436; - shortdesc = "Courier 10 Pitch BT with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map CourierOneZeroPitch.map" - ]; - sha512.run = "06343c68149c28b8808a38d5d7f2a57e9bff996d836c90a352ed77da4637fff150a18c13b8807f401e3d9cc9e7ecc773275f8ca18e2dc8d315ec5647c3f6b55c"; - sha512.doc = "737818c02e35e5502eca7bd80427fb814f54d495bd1315b124ad32a033da0ba0b9b4a2cc5a1f8c19b0f8d91f8534a783253742728ad1c8499d97e14fc3a67938"; - hasRunfiles = true; - license = [ "free" ]; -}; -courseoutline = { - revision = 15878; - shortdesc = "Prepare university course outlines"; - stripPrefix = 0; - sha512.run = "fd3bbcd90570aa1cbfae49fca247d761ac0b886d795fd8097754706b21ab1d6954eb8d8a6c1fb4e69d550e7ec89294fa006f50bab0c7b806c545666eac4915f1"; - sha512.doc = "5a52cabfbc28fe27aa6f85b3653de3ace51b65011ca2e33b56be59854b364319ed8adf95576f8211d9494a367fb637b47fd2805a2663df87103b2d67a168dc13"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -coursepaper = { - revision = 15878; - shortdesc = "Prepare university course papers"; - stripPrefix = 0; - sha512.run = "bae9e3188a3312f970434b21f23436251dcf8d7b5b2049decf1f95903f5e58ddf9dd328ffc6908c70bec436c9edc3ae62b05d110f42a8ab322eb3f464733ba96"; - sha512.doc = "359ee3956a6da4eb41947db9b5f8dbaac7c13c18ea91afd6d63f738ab43af4c77fd93e9123ecda28b4e2211387c910b7a46b2ccd97edeba70fd6d2852b228094"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.0"; -}; -coverpage = { - revision = 63509; - shortdesc = "Automatic cover page creation for scientific papers"; - stripPrefix = 0; - sha512.run = "a41ebddf89a5fd375ab107e207b9397b3496bc7daf213b4c29779b15d0134a131d6646a4474a5cd9d3bf56da58350fb2ea4b98692bccb8d7b06c8a4f2244ffec"; - sha512.doc = "0931d1f63b60b1b94467114db0fcc67e4905ee1fbfe7c2083eceb0f7715eff201ccca4cd74183b70a4c84808838244b3570529b372ab64a9ef6bcc0f5357aa77"; - sha512.source = "15d25cd0b009c1f8006b344498f40a293d18cf08b9098c9923b1fc678a65a2a2a55efcab53744e55ce41d34f4aad248d389aa6127827b1836ec6a706ed6c73cb"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.01"; -}; -covington = { - revision = 69091; - shortdesc = "LaTeX macros for Linguistics"; - stripPrefix = 0; - sha512.run = "c70d4926d45c93ffecff4d8f32923ac99a1b354e51dfc21eed8f3e3172e5c29875d5ef7a2509dbd6150f22bec337efceb7cd42717798144d1d1046e4332d00d0"; - sha512.doc = "cee67a2bcd26ef106d35fadf02145b74e7c9b67c2bd2ff46a4a7afc262d020d43b168fefc2d086688c4087469e9d68a9f0ae79c83dc018ecce70233a0459f9fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -cprotect = { - revision = 21209; - shortdesc = "Allow verbatim, etc., in macro arguments"; - stripPrefix = 0; - sha512.run = "f4795674aa97744b0d6ed70bcae83a1ce3b41670a1bff2e67d12825154bcfd7eac2a740996bcb4aa0445697a3e4c17ef3d8606b308b7db3aea263269a7e2eb51"; - sha512.doc = "e8a5000eb9a538f95bf6df4e2d68ecd8769974192e8181b6eb40e5f48b2cc3a9b9d405d1c7b611e35c41dac5ca5165a503efb7584ee94289ed3255a9482b2b2e"; - sha512.source = "a9c10d5437f4a9f55680fc3a9841e9dc665b7b642e2831c0bb6239d73ea08312eeae372cf95591d002fa7dd51ae45e7413d9651ea5d60e5837903adf565364e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0e"; -}; -cprotectinside = { - revision = 63833; - shortdesc = "Use cprotect arbitrarily nested"; - stripPrefix = 0; - sha512.run = "5f4a3dad026c07720a11935e5ae4fd4b6f5f060292c249224d3a45ee818063ada48778a8399b324f1f13ec4744215a5eaa4f41cbfb82e1f9503d720e3020de55"; - sha512.doc = "a8b050ddc6f3dedfd2ca6c4d7b4def6ab63d55cdb6e8e1622ce95f61aabcf2d9d8bf56c05065c9f4c49c507414273efbecb101652d372e78fef2251a87bc6bfd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.0"; -}; -cqubeamer = { - revision = 54512; - shortdesc = "LaTeX Beamer Template for Chongqing University"; - stripPrefix = 0; - sha512.run = "7c2c4548f8bbb4885680588ff113c8af96d79b5403d6cb01bebc6824745fecdd243af7e14b51bdacc91a6ee2301946ae911aa6c892d248958c1089d3fac383a0"; - sha512.doc = "f11c9d614b75a973cfd0452e283078c5af259127624f7746c0f49152da20ea016acb8842ce343cf342e4fd45f563bdadb48fc4e98cf964bb1c6dd044e610e202"; - hasRunfiles = true; - license = [ "mit" "cc-by-40" ]; - version = "1.0"; -}; -cquthesis = { - revision = 55643; - shortdesc = "LaTeX Thesis Template for Chongqing University"; - stripPrefix = 0; - sha512.run = "929e1b191e8aefd67e734c49227c24ba6f4a15704d3f40aa49b1c0390796dfef36b56e7735e068fade5415838918ec712bd34cfffc9aa2981929067d73d86ad9"; - sha512.doc = "ab270eb465858de3b92248b3b884fcb648b59cc3f947e3362a445562c29e910b0a7f1e4c137aea49c537e68ba61a90d08f40ab43d3340c109e01a293505cfdf9"; - sha512.source = "2184befc80f4ef6f23aba573778e99314dab80b65f053416e5dc8ebb0ff462c8f5d665085955fd28d88dd24cdc9e0599ba4735196b239e3123523cc1316da3a5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.50"; -}; -crbox = { - revision = 29803; - shortdesc = "Boxes with crossed corners"; - stripPrefix = 0; - sha512.run = "087ae9406fd8f6916e355b51d2f4dc7383228813716ab9f6c37714794c931a9b5defa4678a4471523c5fda2c6b0b7784d11dfb488a8d9c60f0244d9d2d64ab2b"; - sha512.doc = "8927d6f60a3a895685c679e565632ee2ca68c1f2e8dfd795a481767463d88ec37579bfbd55858ce1e6e433a981de4b5140cf75489221243716cd8035a2967a90"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -create-theorem = { - revision = 70180; - shortdesc = "Initializing and configuring theorem-like environments, with multilingual support"; - stripPrefix = 0; - deps = [ - "crefthe" - ]; - sha512.run = "b65a610bb508fc169db8447d234e656fb3b63647ccc7a6656bb015fd871c762ed2b8bd59304808f5db1ce528f8227283a6172aafee9cb84f24c5fd41041acd9f"; - sha512.doc = "4ce2d32999518c46478fb6563da42d073a04fcda76391ca722e20a4b0651819722fe62325c7bc858162368645c259de2407bf6b67681a7990e225195459c54af"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -creationboites = { - revision = 68087; - shortdesc = "Macros to create simple tcolorbox with some customizations"; - stripPrefix = 0; - sha512.run = "5aaa071101c52bbd95c83b2e523ab664a2d52109fd5ebdf71da07d3af997d93cc2550736fe18dfac05348d92cbb02749f03a052954a0807fd3d2140efb322588"; - sha512.doc = "42e8ce40f037b18e82899b570e8102835a437a5283193f1e799876039a856f86adb1afe52f5b07bc6151644e9b174dcfbd96f6148e2610a0a32cb400832f3ebf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -crefthe = { - revision = 70165; - shortdesc = "Cross referencing with proper definite articles and declensions"; - stripPrefix = 0; - sha512.run = "e3d8ee83d5c8eeb35885ac852e64df8c3e0950855b1860fd1013358626aa5968e02175e0873dadeff69eafcf14dc85bddfbe78fccbe9c784748c5e09b599a27a"; - sha512.doc = "35d45eb3ad323dc4699ee103a7efedbfb4fac371632d82e5e449a49e89ff6ee25ba9b7d86ee2ebe76c5094dbc24c0813d2a89328d28414b04ba2d20c513cdf3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -crimson = { - revision = 64559; - shortdesc = "Crimson fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map crimson.map" - ]; - sha512.run = "fb807f6602365c65470ceb947e72c63171fc401145b83a63429836d274ca1a0877008c27e4f6416b2a89a3fceb2912062749deeec81346e59c734fa14e4cc289"; - sha512.doc = "105068d0dd81b33a8c073ab33542f2ba7893d4e1d95dcf7af58b413d54a3e7e0cf24911fc2e56ee9821d6d55f016355d4e42db2d981e48e1feaa98b498e20e73"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -crimsonpro = { - revision = 64565; - shortdesc = "CrimsonPro fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map CrimsonPro.map" - ]; - sha512.run = "e119ee9df715d799231eece3e5c5c0c125077b9ca526d1293f943dd2700b45da0bbbac90a964248415bf9cb1a51923bef26995acf25397216edca531594d321d"; - sha512.doc = "3f151947afe36a62d958804ffafddf533b9970162511ff2038629582acb15b4614d9bd5ffa28b53961c53996d2a8ebc0852b511007ae83d2b4f5f908a1d1b04e"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -crop = { - revision = 55424; - shortdesc = "Support for cropmarks"; - stripPrefix = 0; - sha512.run = "f6161e7688d8853d2d9041cfe26360b71a920028df673d04ba38f258c810021752bb7282757ceb98b2e62f7ae52a5f4abcdc61333081d77b205d5431ca62a569"; - sha512.doc = "770ab2977a4ddfdfdbac5f1107e01b8bd5858a31747d44bf0186565dc79becbefde2f34a9514dcf214b8eb781390e98d5f5383f2e70e393ddc22043d4a0eacfc"; - sha512.source = "1b1f0e6a309d1657a12f9760ce2a01ab370de1d34bd628bc066768eded3d7126cbd1f8c38d315fc120c58d73cee48fbf2515492c218a6510306766dd83861b15"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10.2"; -}; -crossrefenum = { - revision = 66014; - shortdesc = "Smart typesetting of enumerated cross-references for various TeX formats"; - stripPrefix = 0; - sha512.run = "ec85888801dd66c0e1b22a257be19eb141b922975a7dfeff90ba146232a6d8b9a7b76e338b68548ae228a1317af0208072c06cd10ddebbada93b11b72907c817"; - sha512.doc = "c5d847af7f8c2d753563d5f393cd3de2936de96ebf1e653b7e0b9f72da75f3481ce1a783329f74ccf8e5f160eae81e045c663775dac916c431edafb1677b5860"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "1.0.2"; -}; -crossreference = { - revision = 15878; - shortdesc = "Crossreferences within documents"; - stripPrefix = 0; - sha512.run = "e34b4d383b8398880b962cdddf248c95f2bc7187b5ed4f0caf84655a94f92b915906b150ef904c696f49f22ef23c039ee66427a03b1430f7a3d5f619f2a80d01"; - sha512.doc = "e21b294ac2b3489cc81ccc99c54bc60985d8769e297f137180a9373ad289248b5d90acf3dd9800d0690907543cf52f0532f6317ef55a43a5b55541805e2be68b"; - sha512.source = "ebf66eeddeccc32574b0f6285d655d5e9a00e4c4c6a50c232ecbc438b51e4ac45876e925b41b71717b23004a24680b3302b8a0afb9ba124e279094d705676b2c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -crossreftools = { - revision = 55879; - shortdesc = "Expandable extraction of cleveref data"; - stripPrefix = 0; - sha512.run = "50b8ce01e9bbfc1f3b4ec9093fe0b091780edbc197a9c637b98a025926600459c5f0b22f5683427bd0a4f0a6ddacadf77833f3171d2dbd45ce43dd6e1d80d813"; - sha512.doc = "0edf43d8b68decea7d83cf5eaf2f92f86635f19041680be4a511a57a7751dd40efe4b4ede05a898c2e00f91076caeb3f4b39c444d1ab8b05a4f0471913e4b475"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -crossrefware = { - revision = 69700; - shortdesc = "Scripts for working with crossref.org"; - sha512.run = "8559fe8e71e27f8417923bd2c7a73a560c29d699ddb77e5b4ac464aecf794fe0cbd02d19abf75f7063994df9ffe6e761f98555a9411e9c5108b38e96db971f1d"; - sha512.doc = "41ef79c5487826500fa9465d371c30a8ac513c94cf4852eb1bcbdf08759f5c7384189f91362efba921e9d7f3801a12d1c1968492640dd1c1cf2f1d6001cdb79e"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -crossrefware.binfiles = [ - "bbl2bib" - "bibdoiadd" - "bibmradd" - "biburl2doi" - "bibzbladd" - "ltx2crossrefxml" -]; -crossword = { - revision = 64375; - shortdesc = "Typeset crossword puzzles"; - stripPrefix = 0; - sha512.run = "8be92df53341bca46907f0125122e2498761880606fb42621df7b4e9f5d9cc9e9a8b74454aa254f49b6fd471b371df7f9f873d9209a94c419433b53247bc29a7"; - sha512.doc = "445ff450f4ebb1e615d0e9a7193904f4512dddf4af3b693f6eae9a115d5456202c54c291c263c37fa37d082d3403c4b7a83deff7e1ae37548efd7ad47b97bfad"; - sha512.source = "018058d6dae55c27804cc750fd6469f432c1a0edca187f6adcf75255d9d2a27c34a446e54dc7a6b5de3e030a0145f5b950961f53e4dfb8976fbd283f4db30e38"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.11"; -}; -crosswrd = { - revision = 16896; - shortdesc = "Macros for typesetting crossword puzzles"; - stripPrefix = 0; - sha512.run = "889334e046aa6371df566c814faa98fdf4931c85be3d49e04d932f02bb71bffaa929614398469be04bf6426ec05ccbfcdbe0ad9798017f9504fba5f3781521e6"; - sha512.doc = "0d4d1e8c1577ee23f7fc60ab8c106121978e986945b8dd399faef4ca55e60a7ed3ba65220ef56ad11b7a100690f89692f0c1ad80c845e2aa04d81c8664a6cd27"; - sha512.source = "edb2825137c510f1ed32b9380b3e59ac492a76ed35d2a1b16ef486a8287338c1afd8b26cee9d1ae447eff3dd12de14cd7f75d97db74ef5f084286c7f5cd8478c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -crumbs = { - revision = 64602; - shortdesc = "Add a Navigation Path to the page header"; - stripPrefix = 0; - deps = [ - "catchfile" - "etoolbox" - "xkeyval" - ]; - sha512.run = "f4e3e045665c16d02c6b1cf2d43957fcbfe38ceb17b6bed9445803d4134a3ad2c22b552230ed685d42c33864169c782c9ef51ba47669d7a975e699ec532a1f76"; - sha512.doc = "b6e13f1177eace8e349648dd376e3252b34ada5e84c0a676631ef313507064c68624936730fe9780707bced36f05d4103cd9aa33a4bd511cd23836ed2ab38d03"; - sha512.source = "5220b2d854c11d4c0734ec22dded6c1259d470c416c08fec4d4fff35714bd56126f5c4f8785e958454c1a3854541b9d8cb571d4f7a86b636b1c12e739c52072d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4.1"; -}; -cryptocode = { - revision = 60249; - shortdesc = "Typesetting pseudocode, protocols, game-based proofs and black-box reductions in cryptography"; - stripPrefix = 0; - sha512.run = "d4d85db9f631bd2f3c78654e88b9c77df7af991f304732ec92b58d08111baf2548bd7d27e6187b0fb6dac7cb0517d27ef3973293cb76088ee8824cb28b1493b0"; - sha512.doc = "8516c946f2a72a898a6320be3b9037b3e94ec1e4c4624ac0c7f67f64855308f793275d682e2c16b5566abc17ab58200ec1ddc32dbb9fe2c08fe21183bac2986a"; - sha512.source = "ec51e316bbeaa2a28f7fea918fcfd3338fdff0153325b93309d79300b9df1655620227596cddb429952ee2d9074da8eebe6dd64207e2f300f475215eb33b9f3a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.44"; -}; -cryst = { - revision = 15878; - shortdesc = "Font for graphical symbols used in crystallography"; - stripPrefix = 0; - sha512.run = "49e1c9d0cb6909e421446230bf71123fa71b4aad1d90b1c7614fc465651f701d91f576c2edd8b6840d1c78dfa5557cd604e61a5e745e1ccb2f60bde9e66117ed"; - sha512.doc = "55c765a9a4799f719383473700a0ef5627ec8873fc9fbd4ffd191d205d24b29d57255d90687176789240a3c4a547a3a57ed341a0558d99aa01dbcff0fc7dffc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cs = { - revision = 41553; - shortdesc = "Czech/Slovak-tuned Computer Modern fonts"; - stripPrefix = 0; - deps = [ - "cmexb" - ]; - fontMaps = [ - "Map cs-charter.map" - "Map csfonts.map" - ]; - sha512.run = "bc956c595d4460f35c64c92e7730a7cc9cd3af95301afba56c49bcf8415666863de926733409ce1afd99ba767fe3a3fa45c68f2dcc912b69c6f72b618289fb30"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -csassignments = { - revision = 63992; - shortdesc = "A wrapper for article with macros and customizations for computer science assignments"; - stripPrefix = 0; - sha512.run = "0e5356f133fb6f3fb33ee0407a53d59330e646e4f1356c307464c45f5dbb66435d68ec833c6482673417c53d611816c4a66a5db34da6b14e327691c0f0c3590f"; - sha512.doc = "3523504d0f7289d485fd34463ab7a0ba2fcc3d4a9b2908f3853977a8b3d7fad4266fd20050d2ee8a685483f47a66e04b50fd4cbaf0788f22c1ce48d2f4b89476"; - sha512.source = "0ba1b40ea19e3c1196a4314427ed882a00a4c4807127d0792ad6f020cb273d3c157ffc469bb7f363726b8a73ec20a9989de43a9cd82e114ccf1b9a1e66328547"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.2"; -}; -csbulletin = { - revision = 65250; - shortdesc = "LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)"; - stripPrefix = 0; - sha512.run = "64d8593e12beed90aac7cffee0632b4d16d77e5cc12702600ac62a8374429ab0a35390d8046b43579855744dd4f59c458c574e173254d3cf21ee45d3eb97b4db"; - sha512.doc = "2ca7ffe0973b443a2114cdd1e171f62b845f4f0185aaa5b7c7cc2809cd3a2b927784a4fa68c9a3a28fa40f44217826d1f34165a027838d3bd9f4e0e740a294d3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -cslatex = { - revision = 67494; - shortdesc = "LaTeX support for Czech/Slovak typesetting"; - stripPrefix = 0; - deps = [ - "atbegshi" - "atveryend" - "cm" + crossword = { + revision = 64375; + shortdesc = "Typeset crossword puzzles"; + stripPrefix = 0; + sha512.run = "8be92df53341bca46907f0125122e2498761880606fb42621df7b4e9f5d9cc9e9a8b74454aa254f49b6fd471b371df7f9f873d9209a94c419433b53247bc29a7"; + sha512.doc = "445ff450f4ebb1e615d0e9a7193904f4512dddf4af3b693f6eae9a115d5456202c54c291c263c37fa37d082d3403c4b7a83deff7e1ae37548efd7ad47b97bfad"; + sha512.source = "018058d6dae55c27804cc750fd6469f432c1a0edca187f6adcf75255d9d2a27c34a446e54dc7a6b5de3e030a0145f5b950961f53e4dfb8976fbd283f4db30e38"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.11"; + }; + crosswrd = { + revision = 16896; + shortdesc = "Macros for typesetting crossword puzzles"; + stripPrefix = 0; + sha512.run = "889334e046aa6371df566c814faa98fdf4931c85be3d49e04d932f02bb71bffaa929614398469be04bf6426ec05ccbfcdbe0ad9798017f9504fba5f3781521e6"; + sha512.doc = "0d4d1e8c1577ee23f7fc60ab8c106121978e986945b8dd399faef4ca55e60a7ed3ba65220ef56ad11b7a100690f89692f0c1ad80c845e2aa04d81c8664a6cd27"; + sha512.source = "edb2825137c510f1ed32b9380b3e59ac492a76ed35d2a1b16ef486a8287338c1afd8b26cee9d1ae447eff3dd12de14cd7f75d97db74ef5f084286c7f5cd8478c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + crumbs = { + revision = 64602; + shortdesc = "Add a Navigation Path to the page header"; + stripPrefix = 0; + deps = [ + "catchfile" + "etoolbox" + "xkeyval" + ]; + sha512.run = "f4e3e045665c16d02c6b1cf2d43957fcbfe38ceb17b6bed9445803d4134a3ad2c22b552230ed685d42c33864169c782c9ef51ba47669d7a975e699ec532a1f76"; + sha512.doc = "b6e13f1177eace8e349648dd376e3252b34ada5e84c0a676631ef313507064c68624936730fe9780707bced36f05d4103cd9aa33a4bd511cd23836ed2ab38d03"; + sha512.source = "5220b2d854c11d4c0734ec22dded6c1259d470c416c08fec4d4fff35714bd56126f5c4f8785e958454c1a3854541b9d8cb571d4f7a86b636b1c12e739c52072d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4.1"; + }; + cryptocode = { + revision = 60249; + shortdesc = "Typesetting pseudocode, protocols, game-based proofs and black-box reductions in cryptography"; + stripPrefix = 0; + sha512.run = "d4d85db9f631bd2f3c78654e88b9c77df7af991f304732ec92b58d08111baf2548bd7d27e6187b0fb6dac7cb0517d27ef3973293cb76088ee8824cb28b1493b0"; + sha512.doc = "8516c946f2a72a898a6320be3b9037b3e94ec1e4c4624ac0c7f67f64855308f793275d682e2c16b5566abc17ab58200ec1ddc32dbb9fe2c08fe21183bac2986a"; + sha512.source = "ec51e316bbeaa2a28f7fea918fcfd3338fdff0153325b93309d79300b9df1655620227596cddb429952ee2d9074da8eebe6dd64207e2f300f475215eb33b9f3a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.44"; + }; + cryst = { + revision = 15878; + shortdesc = "Font for graphical symbols used in crystallography"; + stripPrefix = 0; + sha512.run = "49e1c9d0cb6909e421446230bf71123fa71b4aad1d90b1c7614fc465651f701d91f576c2edd8b6840d1c78dfa5557cd604e61a5e745e1ccb2f60bde9e66117ed"; + sha512.doc = "55c765a9a4799f719383473700a0ef5627ec8873fc9fbd4ffd191d205d24b29d57255d90687176789240a3c4a547a3a57ed341a0558d99aa01dbcff0fc7dffc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cs = { + revision = 41553; + shortdesc = "Czech/Slovak-tuned Computer Modern fonts"; + stripPrefix = 0; + deps = [ "cmexb" ]; + fontMaps = [ + "Map cs-charter.map" + "Map csfonts.map" + ]; + sha512.run = "bc956c595d4460f35c64c92e7730a7cc9cd3af95301afba56c49bcf8415666863de926733409ce1afd99ba767fe3a3fa45c68f2dcc912b69c6f72b618289fb30"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + csassignments = { + revision = 63992; + shortdesc = "A wrapper for article with macros and customizations for computer science assignments"; + stripPrefix = 0; + sha512.run = "0e5356f133fb6f3fb33ee0407a53d59330e646e4f1356c307464c45f5dbb66435d68ec833c6482673417c53d611816c4a66a5db34da6b14e327691c0f0c3590f"; + sha512.doc = "3523504d0f7289d485fd34463ab7a0ba2fcc3d4a9b2908f3853977a8b3d7fad4266fd20050d2ee8a685483f47a66e04b50fd4cbaf0788f22c1ce48d2f4b89476"; + sha512.source = "0ba1b40ea19e3c1196a4314427ed882a00a4c4807127d0792ad6f020cb273d3c157ffc469bb7f363726b8a73ec20a9989de43a9cd82e114ccf1b9a1e66328547"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.2"; + }; + csbulletin = { + revision = 65250; + shortdesc = "LaTeX class for articles submitted to the CSTUG Bulletin (Zpravodaj)"; + stripPrefix = 0; + sha512.run = "64d8593e12beed90aac7cffee0632b4d16d77e5cc12702600ac62a8374429ab0a35390d8046b43579855744dd4f59c458c574e173254d3cf21ee45d3eb97b4db"; + sha512.doc = "2ca7ffe0973b443a2114cdd1e171f62b845f4f0185aaa5b7c7cc2809cd3a2b927784a4fa68c9a3a28fa40f44217826d1f34165a027838d3bd9f4e0e740a294d3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + cslatex = { + revision = 67494; + shortdesc = "LaTeX support for Czech/Slovak typesetting"; + stripPrefix = 0; + deps = [ + "atbegshi" + "atveryend" + "cm" + "csplain" + "everyshi" + "firstaid" + "hyphen-base" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "cslatex"; + engine = "pdftex"; + enabled = false; + options = "-etex cslatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "cm" + "csplain" + "everyshi" + "firstaid" + "hyphen-base" + "l3kernel" + "l3packages" + "latex-fonts" + "latex" + "unicode-data" + ]; + } + { + name = "pdfcslatex"; + engine = "pdftex"; + enabled = false; + options = "-etex cslatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "cm" + "csplain" + "everyshi" + "firstaid" + "hyphen-base" + "l3kernel" + "l3packages" + "latex-fonts" + "latex" + "unicode-data" + "tex-ini-files" + ]; + } + ]; + sha512.run = "a5ea5d33fcf2573f772541cf03cb660fbc4d32d4d1e145fabc07781f5f664369f0bce9e8434f403beebb3a6c17c2da43d7727fecf6944db1bc9d36796e8470da"; + sha512.source = "8ea942f9cf3b9939311ae29bc4badbb2a67c6f4f2e03a4745142a0b570aeb0e668dfc47dea278f960e6a11231856464370507379cdbd77588720a16ff5e25d17"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + csplain = { + revision = 67934; + shortdesc = "Plain TeX multilanguage support"; + deps = [ + "cm" + "cs" + "enctex" + "hyph-utf8" + "hyphen-base" + "luatex" + "luatex85" + "pdftex" + "plain" + "tex" + "tex-ini-files" + "xetex" + ]; + formats = [ + { + name = "csplain"; + engine = "pdftex"; + options = "-etex -enc csplain-utf8.ini"; + fmttriggers = [ + "cm" + "cs" + "hyphen-base" + "plain" + "enctex" + "hyph-utf8" + ]; + } + { + name = "luacsplain"; + engine = "luatex"; + options = "-etex csplain.ini"; + fmttriggers = [ + "cm" + "cs" + "hyphen-base" + "plain" + "tex-ini-files" + "luatex" + "luatex85" + ]; + } + { + name = "pdfcsplain"; + engine = "luatex"; + options = "-etex csplain.ini"; + fmttriggers = [ + "cm" + "cs" + "hyphen-base" + "plain" + "tex-ini-files" + "luatex" + "luatex85" + ]; + } + { + name = "pdfcsplain"; + engine = "pdftex"; + options = "-etex -enc csplain-utf8.ini"; + fmttriggers = [ + "cm" + "cs" + "hyphen-base" + "plain" + "enctex" + "hyph-utf8" + "tex-ini-files" + ]; + } + { + name = "pdfcsplain"; + engine = "xetex"; + options = "-etex csplain.ini"; + fmttriggers = [ + "cm" + "cs" + "hyphen-base" + "plain" + ]; + } + ]; + sha512.run = "5c0d9f12254d2b61a9ab34cb447dcdda56b032c5d4fcd1b4ee2ec2f3999e5b5317e067c7e03814598add15ecd56449ace1bd1a67b6d87bcc6adc2122bf7b5083"; + hasRunfiles = true; + license = [ "free" ]; + version = "Mar._2022"; + }; + csplain.binfiles = [ "csplain" - "everyshi" - "firstaid" - "hyphen-base" - "l3kernel" - "l3packages" + "luacsplain" + "pdfcsplain" + ]; + csquotes = { + revision = 64389; + shortdesc = "Context sensitive quotation facilities"; + stripPrefix = 0; + deps = [ "etoolbox" ]; + sha512.run = "68427cbe486f3b53bdb24869a3ad52cf6a006d7872ff9408560d9e4b0f1e8184fcb437d54e10f11d7a3585ff8ff7ad40ab4a95aa66091bb69a75a3e8e60aede8"; + sha512.doc = "ceba04fab9ec257c6bbc2fc903e3888bae9ef6bfa5664c8e01da14ee2b1482005aece22b6bf4fa7fb893c2dc1b0cb7f762eb048e0b2c039be80ef73b0bfef131"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.2n"; + }; + csquotes-de = { + revision = 23371; + shortdesc = "German translation of csquotes documentation"; + stripPrefix = 0; + sha512.run = "7d4667b77f1e27acb1d3c8becaad4889910edaab4b9da6b0fe821db262f3a31672050f5985a56533003178fbf1d579d170be3fcd22c31bbf41af9bcb68fb7c40"; + sha512.doc = "1e8829faf2cb23b2e565a4b5daa5a09ef01d590d920444ee4659964bee042148ea19e9fbcb63e4c4ea1e2698697554e0bc532fa0fb7610bbf9bb4bca234d33d5"; + license = [ "lppl13c" ]; + version = "1.01"; + }; + css-colors = { + revision = 54512; + shortdesc = "Named colors for web-safe design"; + stripPrefix = 0; + sha512.run = "cebeb4e7cd71ecb1a502f6788fa62284f2d9e3e4afcdc1ddce585e94683a42b20e7b9838ff5c85fc0634894898d8061e01de79e062946e943b315d2970ad126c"; + sha512.doc = "6299617c5740f104b59e850ca826a2906d63ef3564b6730b01decb4f7707828e28ae3de2d44dc851c094abb702a00a9a4cb2bc61f18f020dc37c04e189521c1b"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.02"; + }; + cstex = { + revision = 64149; + shortdesc = "Support for Czech/Slovak languages"; + stripPrefix = 0; + sha512.run = "cc0f0d0e2af2c210cb7888e90d668016dba4cfce3ae90faf0597a7f8c2058dfe56b92b71d185705c7d3b19d53b989724a9106ab56664fd2e6f4e95da5c0a48b8"; + sha512.doc = "e84c12eed94f459a7769527197f8b4b2f638297eec5d41bc7e4e3cc86c593cf957158946eb495947ff557ff323a085212b61cb3233972238d3afa2fff54e367b"; + license = [ "free" ]; + }; + cstypo = { + revision = 41986; + shortdesc = "Czech typography rules enforced through LuaTeX hooks"; + stripPrefix = 0; + sha512.run = "ecc9054a0866e4926277bf5f52faf97b0b07f0ea660b7c4d089a552ab57d3a900cd1d688981770df9b3a4285c3d451fb23f1b69757381f3cbdf88cf0c88cf61c"; + sha512.doc = "1ac42bcd1cadde9165f8edceadb438c4c2e91d6a89486e56e31623cf1ffdd5f38ec800d836dc90a5a6a0bc48dfac4a8ec90192319f8f046665c77e91fc51b91d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.03"; + }; + csvmerge = { + revision = 51857; + shortdesc = "Merge TeX code with csv data"; + stripPrefix = 0; + sha512.run = "f3f679127d912a8df32893f0afec13b21a272b6e5ed2d2c147e1bcbea5698e043d88d5dcadc0c772f5640945fdbbf4ff43655d6d4450b48966740cd3cb936829"; + sha512.doc = "b090bd51f547f16270534c2305ba68af9f86800f55809b050eea25d5566be3a3ce245ad0f79a76ed21ac64b68b6650800fba5a5ad942cc1f3f8e982f56ba5286"; + sha512.source = "b189b456daf9a54cf8fa09706f93de7e8365d75b792336a8328414d589ffa178ff0c39c17064b532316fc778b73b000610b3f966f9eb0d8e526cf1fd5b4bdd58"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + csvsimple = { + revision = 69494; + shortdesc = "Simple CSV file processing"; + stripPrefix = 0; + sha512.run = "ef7d09c254982998b009c4856b69b263e7ee5df3b54c7513aa5459651d12989f38b1593ca9e3d4d3de51ae6cf8b02c89a8a9298213c7872157712fb4c1c61900"; + sha512.doc = "c6934e0bfc8448008c0fbe7ed06da871aa9a9073f7948551881e00dd8ca0d31f7da5132d14282a9b08564a2aa8e875f36cf67db900b94dcf4381530a2b6843c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6.0"; + }; + ctable = { + revision = 38672; + shortdesc = "Flexible typesetting of table and figure floats using key/value directives"; + stripPrefix = 0; + sha512.run = "3192df463eb4d307ba886b82d586580a741da8d901dc560c06d293e04c5d5af9efff56a1482bc41b03aeaade2cc25cdf6f4dda3e1baa26da1f7d4d138f44bebc"; + sha512.doc = "a32bc9c82a87f1f9327d5cbf4c15052124608f970ecda1909aa67abcc2fb4f10bdfcbb5568d8af9332687817f6f5bd6aaa0ce4843490e8ffac22526bbe123fdd"; + sha512.source = "9886347fdf0a1a7105ab33bba00877ce22df66b1d82a60b8818af063da371d8c0c6d8f60252342dfe44bbaa65ba9a93ac8f972c64439bea7296b9e98e1be4b41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.31"; + }; + ctablestack = { + revision = 38514; + shortdesc = "Catcode table stable support"; + stripPrefix = 0; + sha512.run = "3485fbd1bebf80814645c1be3e7358a959637439fa17cbbf7c2478ca73c4312cab82eed2aedb5403dfe94b0cfc09ee3e9c8182c08d3708608a267da235ab30a0"; + sha512.doc = "2c74b9d2aa44b25952307e4593b4a792cb5d98b78619efef82ddfb134ee3da64de87973db30f3e5d5788ce5e6ef138fca2cabc4ed412c97cfa7b3dc6c3ed1060"; + sha512.source = "c39356d4d78cc8121b20e572fe59879541ab533ceab64e68f17a346723aad4f73103df79b1711feb12337e5e2dcb56222b00a9b36ddcbc04fb5e946831340d6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ctan-o-mat = { + revision = 51578; + shortdesc = "Upload or validate a package for CTAN"; + sha512.run = "a995dfc6d79ba77fe673aa501f28eaf9f057c34501fa032423569317e5a4eed048c3375d806eafacedefec02e91bcb587fa6bfb8c0ff980395bb877b2ce88c4c"; + sha512.doc = "423efc3f2f850c5a9bcbe787edb8155ef76e56ce5e3a1ba3332bb465b8239616bd1fcff2e8a58db6f5ce9d5191ae3209a5451f746250a3b081fe9b35d024eebd"; + hasManpages = true; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.2"; + }; + ctan-o-mat.binfiles = [ "ctan-o-mat" ]; + ctan_chk = { + revision = 36304; + shortdesc = "CTAN guidelines verifier and corrector for uploading projects"; + stripPrefix = 0; + sha512.run = "6eabd7281d79ff0ad19080350dfcca8ee3a33ddfa6d17827a7851cc53f09f627729c8d715a1dfe50e0c079add44331a07d543cb8b6a57000efa6d73c30f2ffe0"; + sha512.doc = "c61bc0d70cadcc4382dae55cdc1af076882801321a2de16f164223267732e476e41f949f566808c928f446d69aa22bd9965adb155c97905e32b93808810c76c0"; + license = [ "gpl3Only" ]; + version = "1.0"; + }; + ctanbib = { + revision = 68650; + shortdesc = "Export CTAN entries to bib format"; + sha512.run = "1d89c7bab95472d993c6e685880d513f9cd4ac57af87c7656bfb8423b2e5c9c1ede851da01e638558edb37e85caca3080293a7df9b0ad9e87b2aee84a6680a52"; + sha512.doc = "760b98e3c4d7b07e2f15d7e2b1705f10eb697f5e7f2aa03de97a3ce347d7495f3595d9ed0518c0aa5d38d2eb0b20c3a889e6e66416587a4d15b89a9965986d04"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2d"; + }; + ctanbib.binfiles = [ "ctanbib" ]; + ctanify = { + revision = 44129; + shortdesc = "Prepare a package for upload to CTAN"; + sha512.run = "6774b151bb0fb052d41d8447c7e8d378d7f31b0a5aea5f2f00b93669b8c2f629f479ae21d40480fd62f468d866cbe0c6f0dedd8a0248f8d83cd1039131849439"; + sha512.doc = "f9b636cb41b126809d808c167410a37052b1c6c385fe4eb8df3b819c0cf2cac2c7c1c74d7ea15d2916c1cbc563e078845e451000e3a08cd9a8e0696a342b22ac"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.1"; + }; + ctanify.binfiles = [ "ctanify" ]; + ctanupload = { + revision = 26313; + shortdesc = "Support for users uploading to CTAN"; + sha512.run = "4464bdfbf72318b24abcd88e1c25dae5925a96e867c694f3f02a594ed7b8b24cffdcdb345f0054e200a6af63f88b591ff84058af0adfb4a1b3feff2a057d9d72"; + sha512.doc = "9e027f7ce08041be7668a7a404fad6b6c7cfc71e581ad1216956d0b53c379d204bd84d2d55d186c74f784df8911770b96f934775f44f7141a5f1b9b5e773cb7a"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.2c"; + }; + ctanupload.binfiles = [ "ctanupload" ]; + ctex = { + revision = 66115; + shortdesc = "LaTeX classes and packages for Chinese typesetting"; + stripPrefix = 0; + deps = [ + "adobemapping" + "atbegshi" + "beamer" + "cjk" + "cjkpunct" + "ec" + "epstopdf-pkg" + "etoolbox" + "everyhook" + "fandol" + "fontspec" + "iftex" + "infwarerr" + "kvoptions" + "kvsetkeys" + "latex-bin" + "ltxcmds" + "luatexja" + "mptopdf" + "ms" + "pdftexcmds" + "platex-tools" + "svn-prov" + "tipa" + "tools" + "ttfutils" + "ulem" + "uplatex" + "xcjk2uni" + "xecjk" + "xetex" + "xkeyval" + "xpinyin" + "xunicode" + "zhmetrics" + "zhmetrics-uptex" + "zhnumber" + ]; + sha512.run = "43954ec2acfd2a0e37acb55c3bc7496a9959abeb60787a4daa742cfccc3bfe5b88542d341552aa9bfef6b4224c79a14c5a5e9a7221cc0ecf83d22c9e6ce6a48b"; + sha512.doc = "475eb846b55672b23769af8757c7532b30d3d13d6667fcd71b8783ab291dd3a39fef6d255080745d4d609276f9074896fae7e674e8abeccad7c5984db5f88636"; + sha512.source = "59df412a321a4ad75e1b948dd12d250a844c042c9a7c5ef24f0108591fbb087ec6949b537788f070d496b9ead0e8b8de120b37f6977dd536bf10ac353d5da6c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5.10"; + }; + ctex-faq = { + revision = 15878; + shortdesc = "LaTeX FAQ by the Chinese TeX Society (ctex.org)"; + stripPrefix = 0; + sha512.run = "39ff8931e0007a78e4fa0788d7c7fcd8f25dd4cf4fa3f34b694e681e10dfb3d804842daf45a6e56b5ff450bb965bc322dcf593bdce176ffec27f4696c1c99fc0"; + sha512.doc = "0942a249a30f97d56bf5cbac2eb4de285a63406620b825a36d9ff8d46fbccd614af488f89e2af7472f1a9075a0e2b7228bb65a5804451df6945ce6bf4287b0a2"; + license = [ "fdl13Only" ]; + }; + ctib = { + revision = 15878; + shortdesc = "Tibetan for TeX and LaTeX2e"; + stripPrefix = 0; + sha512.run = "8999ea42b82e56cbb06e2485060b829a0781550834ea421607b4621199692976488f4031266eee1a6b1443b12828e2fb5148ff43eff137c01ee9db8770bb1565"; + sha512.doc = "65d8f613ddb651cef4c345791a4a849e3f672930fb94d1ba789e827b466c459bc321762c71675cb4c5fdec8fc456520bb7013d5b737b4ff2bd049bb5917a98ef"; + sha512.source = "b387b2cc636f98bf7bf43fc3be04cbb62dfd6597c419b7791605011f59981cd9e90737f9d2f0f668f63bf9abff854219a75a7527d881c991190188f307f3642d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + ctie = { + revision = 66186; + shortdesc = "C version of tie (merging Web change files)"; + deps = [ "kpathsea" ]; + sha512.run = "0180080c48fea7b717ff0ad27e060ad4564841fe2929b8db919aa0402886a00e0fa40f1398ef82bbf9e983343c9f9f6c797606045d55ed07e572e006588c7353"; + sha512.doc = "178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6"; + hasManpages = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + ctie.binfiles = [ "ctie" ]; + cuisine = { + revision = 34453; + shortdesc = "Typeset recipes"; + stripPrefix = 0; + sha512.run = "cb594c2ef79a1d1614ad2b7bedff3b5bd9853bf36947751c880c36c73a458152eb7036861d0292614992623192841c28a3f4010bc0c4107fd8a4277154a1baf5"; + sha512.doc = "9e4f55bf8199b4bd06847dd39e67e91a8a6885b3903c9ea772199d9b9fd9d7cade173dff6f785d143b4e7c3b154477622a4c2cad14576b22068a6729693a8227"; + sha512.source = "1df5e248af42513b212d4c18cd95c8c9f2155598604624cf3b5e5e5b020643bdbb9c3addf03d8ff111c14185234d42f0db8a06a9de040fa0b58cec3895f32731"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + culmus = { + revision = 68495; + shortdesc = "Hebrew fonts from the Culmus project"; + stripPrefix = 0; + fontMaps = [ + "Map culmus-new.map" + "Map culmus.map" + ]; + sha512.run = "4f6f370a13ce2cdea9a1dd32bb1e2243000f4cd566f1a7698c641b9ad4793b3c1148fb914dd748e37b5e7bd6802144d4e1b9fd4c536df58bcb4863ad4f9cd2dd"; + sha512.doc = "4c1217f0cd27bcd56c11006b7b3749e661aba567798b2e397a21b3b0df39a35acb6355836d4eac4fd619509b09b57c7e39a97068343b6e28005944ebf0430adc"; + sha512.source = "2dc2e6bd71ee949208625fc259cecc6a0ffdd0701416c5775cc32855a2bbf8a533238e07d4fa08c090ed3ff627613c27f0cddeb2c86eda1b320cbc68e236a6a0"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + version = "1.1"; + }; + cuprum = { + revision = 49909; + shortdesc = "Cuprum font family support for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map cuprum.map" ]; + sha512.run = "578ce2e5af01e81ba80c0cfcc0225985722c1515e8f98460a1cb5d71d8ee4630d400f28dee04bb505c429b13f5cb604364d26503af0b5d9bf98164b218b09413"; + sha512.doc = "b9a9bda8eab6087a134b3b0660282998c7c3fa7fda8890e61ba107b9f7576d85ca01b59664c1c198679151e01cef6ebce5b8de29644a2e249a6ca2100f526fe2"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + currency = { + revision = 48990; + shortdesc = "Format currencies in a consistent way"; + stripPrefix = 0; + sha512.run = "d975cbe846ad5708a3558252094f4568c3ea4c5bc840dea7ade74eb8f6d90f4527b417a875a7bc286010473078d895cf510560f1287013e70498c983c896750b"; + sha512.doc = "1f32fed0bf778b3460e094239afd76b4be9915be8a3e8ea20b7e48b02f1ffdcffdd1e588a507b8145ed232a38cee43db1bac0e232c472d5b5dd85f1cf3954c8c"; + sha512.source = "c7a99bf685283b415c7cf71a6700bcf2928d2342f5db8a3b78e96148fc01ad028b0921a7c048f345dd5d5fbcb3f47618390fd580b02fb4ab1594e7bf5def9904"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + currfile = { + revision = 64673; + shortdesc = "Provide file name and path of input files"; + stripPrefix = 0; + sha512.run = "4c63d6d33c21a0ac9aed990fa79eb1457908d9301dfb81b3dc7167d5b8089ebd20abfbcf29380a7dd348c6ca8c131260e366aa55819a6affde146408a8e80014"; + sha512.doc = "e891b03438257ae5e8eb3b6bf21a44b05df274cc18877a6c39569e94dcc9f5e678aed5a5858eb2e9762b4a8ac6b04856839dd47d81b5de55e4023a369e09ba7e"; + sha512.source = "e68a86c05be5c92eb8a7a224bb404cfbf96e7950e6154e2446237692320f06368c0097d7ad0b57438012a36994e838b514e4588b6eb7d31478160bdf66bce4d7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + curriculum-vitae = { + revision = 68211; + shortdesc = "Lightweight class for CVs"; + stripPrefix = 0; + sha512.run = "a650807bb2a12df8460ff4b450af6bb7122a8629aa72d5e180e196ed3f904ab70e04fe0ae79474649d22534a0a7cf0342f4a1ff953355b8003e9d8eea0016d10"; + sha512.doc = "5c07bdfa540b65a6df224bea38b5865e44f08ce042e4b465be83f580a08976236442d7bb96573ea8c5b089aeff8f02e2a9b556997a24a73d264a557e775f8d3e"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "1.0"; + }; + currvita = { + revision = 15878; + shortdesc = "Typeset a curriculum vitae"; + stripPrefix = 0; + sha512.run = "c555b0e9c7a500e086f0435a2dc6cde8da8b02df4d27be14534d28c77c1f546aafecb863bc652922e07191d0441a77db647f8d1d11e33ec9bc6014f73a5822c2"; + sha512.doc = "b3de1ad371cead2829225015d60a4defe604e63890ef06da65fa9223cce4e748707f0b6f4f0b0dcdf22c3096e381adc3432a7b21b36f834c18ae4eb32bfba024"; + sha512.source = "a1dc7d983ac6badf9ced1492c712373205d5b0a91934f0a76eb1ac546470292e6c9dda4cd5f5d721e06c90d6237eb39236f1417d1c6992a774f7a9f7df9213bb"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + cursolatex = { + revision = 24139; + shortdesc = "A LaTeX tutorial"; + stripPrefix = 0; + sha512.run = "6c58f5a0f6fb8f129e202b786c258ba088efa44639f162b9e0109182072c16bfc6ba928953d6e9b31b2b1c2f693fe064476095c232dcb9e0c6bfcf18bfb7994e"; + sha512.doc = "a0f726330a5b2d8da94cbf25fb1b1a2b22e5e9010e0cafdfdee3781bf518f0cb48adb27dce0fe2e46572460f8c1749c0db1c16e06343cabb8cb94227e3da58b6"; + license = [ "gpl1Only" ]; + }; + curve = { + revision = 20745; + shortdesc = "A class for making curriculum vitae"; + stripPrefix = 0; + sha512.run = "9d318d35ef04d171da1c36ab4646465d4aa0feebd90fd3e97db5f1cf09c28c174d0c3be288c369215812f51ca83b341abbfdf3fa44458d1994cf68dfaeef0615"; + sha512.doc = "7a56d7c3bd8b9b13ee675b99a2f5a8a27fb3dfd81dc5225f3a880f338d5390c893ca887cbbcd9ad8deae2a1d6b6620ef664ea64384f93fd93a75a5c886641a2d"; + sha512.source = "8e5026da24dddda0f266b8431fb28c27037ad920e37010fd97fdbfb5dae8024cb687b681356a6e27244dd4812bbd043e12c91508978dbe796a119e3e8633566e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.16"; + }; + curve2e = { + revision = 67599; + shortdesc = "Extensions for package pict2e"; + stripPrefix = 0; + sha512.run = "36b8d1ebbc07ea1cb78b85fe2c327a4c932ef0a88881ef9185654cda6865ea5ca017aeb33334f603fad74fa0245a531f50e2016c912da4355cb552ee5e069f97"; + sha512.doc = "d28134fe19310084b6ffee13bea26b7dd131789a124041cbecb500e070bb134db98d4cf01d7d970781ad1823327f363fe886be9615d3458ca6763fbd7039f0db"; + sha512.source = "7a9207da9be81c2dd9de00adf25f81adc2bec671e4fe281904410e964670968103a4e556806a287e830aa9aba908c353606884079f3509a66975dd9411d2c886"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.1"; + }; + curves = { + revision = 45255; + shortdesc = "Curves for LaTeX picture environment"; + stripPrefix = 0; + sha512.run = "b2ac96620bdcae2263e0ff37ef0975fc705efd2ec30fa53a5cc50d54378cb29c6ef44543cc321e6cb37dfca0ea9a6cdf85777825703b866bcbad9729235c9722"; + sha512.doc = "afd68373952dbf2a97944bcd7b36dcb62d5b65727c660af56dd8da97137ef4845037988e211996289fb54efa435833fa4a503ae4bba70ab38cd6e55f1966db1e"; + sha512.source = "cdef0242776f9976f72d953ac743a4771ac5d5aaaabf6988ef37d695c78e206f43d546bf21621c5a9f91e191c95c02ecbe9fc9d7e3f1eb23372a755856d61d2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.55"; + }; + custom-bib = { + revision = 24729; + shortdesc = "Customised BibTeX styles"; + stripPrefix = 0; + sha512.run = "95b485e330c97242bbea4b989ea9e70882d796f7ff8fdbb10b0627d102ef6177c8cdfca976a89853170a9171a69499c58711d1deeb0e420f9cb268e336d4f663"; + sha512.doc = "3d5fe696f095ef5661418e3066f2f98768968eddbeb24ce9ec84647b78452f97482ae1dd17cd9c84cfb81fc4a43052b05ef6aa4080e32a464d2ba4e8ce33869b"; + sha512.source = "e17d437ae7fb0c1328c2fa333f1f7d286a517bb536f7cf2d66ced327d1ddc78b97791852cac8fc9de4994b41f1433da17fa1e41838ddf90f1fe387eaa9e477c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.33"; + }; + customdice = { + revision = 64089; + shortdesc = "Simple commands for drawing customisable dice"; + stripPrefix = 0; + sha512.run = "d537d8357fa1d718f685d3bd05afe849eaffcd63050b8ef5f85dfea39260b9268e7ed12e727ac3a14a7194f21e4de158bc0a8143408c45e5f3718ea143a27aff"; + sha512.doc = "7512a7fa81198895666d135bd50d75345e8d7152289f51126fa3fb68a028f05666d4807e63c82db5068a9aeaca11fcb06d7b0edd4d77804bee195409bf042144"; + sha512.source = "8ab4af162c7abb96a129934f5c6b1471ba781d43dd7d0dd220a53638010c9c082d26c634a3e65c02f51bb92a7603a3aea9f370e82cea1d8de17afb9d815d1a33"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.1"; + }; + customenvs = { + revision = 68637; + shortdesc = "Custom environments (MCQ, list with picked items, ...)"; + stripPrefix = 0; + sha512.run = "d58a216909f8bf7c425f0836c05842ca918b03b928a57ab06223a82fa588a3bd3d515f6beb5ed27330d5566192a234a08385ac387563db8ad171b928749b488c"; + sha512.doc = "d807f71f40367888621fefb52ff3fbba1d5b301b670710461b0feb79eb61171ec6208de41ea15ab39c14650734f2ba6a2c5f89182f27072c87c9564fa462544a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + cutwin = { + revision = 60901; + shortdesc = "Cut a window in a paragraph, typeset material in it"; + stripPrefix = 0; + sha512.run = "922ab4c0f1158fa699c883e0fd8ed942a077c3b3109b048087756895d0ab6ead05182fbe17ab19310b78691fd77444d1460c7e021689c2eab092ed82974ed6d7"; + sha512.doc = "f37bc538e4affa716aa315535fad7fdb2bb0e5188844d028b8bda4935339965e3f375439ab0abc62d63f2f57c3d439a25888f29cdf3be484092a57ff86c86c72"; + sha512.source = "d3a544d356d4afb5599379a1c767d2aed9ace420d4540a1c62b617cb8f542fbcb225ec4e42ab65f7ddebf91df3c77a6b9bf0f59de9e6a11e06ae68fddd5b21ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + cv = { + revision = 15878; + shortdesc = "A package for creating a curriculum vitae"; + stripPrefix = 0; + sha512.run = "624d9bd1578e0d2e40e2ca76cd97d7f44d9da5c71daf737e06e6b6b15c64911af17f0da197afa17b5ff3b145461cf7efb058a5cbcd02e7c21642e660cfa3ca4d"; + sha512.doc = "c04b207a635f1b6f76e316284da987b45fd4387961c59b7b1f1b947284937f91f4d95ade824195d1f0db00766fec870e6859a6dd27cf3b6b426d095866f17d6a"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + cv4tw = { + revision = 34577; + shortdesc = "LaTeX CV class, with extended details"; + stripPrefix = 0; + sha512.run = "607745abedd1325c59bc8ae360a1c5d00834ec7bd050b057ba5427c135f17046027da3fb6130a0718e8d33bcab74eaf235f2de7a1ace483da1af87be5e559867"; + sha512.doc = "d9166421ab15d7569a4db66970486c78af43ddbda9d7f9c9488dbc46eed91ab5079c0f9b7851835afeed6045ee4c65c888e1be93a95cda14623405847267880b"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.2"; + }; + cvss = { + revision = 65169; + shortdesc = "Compute and display CVSS base scores"; + stripPrefix = 0; + sha512.run = "563d310188adc99e14bc93772f8f94af0741665c15d8013d9cc98fa5d86129d48b62473835973bba90fcb4117fbd782b029b87045e5b392fabd308c8f1a6de42"; + sha512.doc = "604139dd0e636b5b050d07417f7990c741e7400c7c656d76fb15d56a76b869a2805e43236ac2ea062826df5f102753c8f1450a4e09b24dbc2f96b6668975bbe3"; + sha512.source = "771545e51e6066529d43edd5f14f070c816c8b86478f5e2598929f34838dfd0e90d9ed666d478e8f5c3aa14da9f6f7b8658e6b1527f212c775cbc2c7645e9e2f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + cweb = { + revision = 69586; + shortdesc = "CWEB for ANSI-C/C++ compilers"; + sha512.run = "6ba6d7e560abe642d30e4b9eab349eeb0135666a8f6f27d1e0e12d825048ec772305e0870edbe85dd3b977fb3e3ea0c7d3de84d9c6a02316be9691092c6b34bd"; + sha512.doc = "306eb00fed91a6a7ec679b9ffa46a9f5a8747817cdb3230accc5f322505aa928bb670eac09c77b508186cb3e308ac347bea3107ea0a5dafa2aa6075555e0c61d"; + hasManpages = true; + hasRunfiles = true; + license = [ "knuth" ]; + }; + cweb-latex = { + revision = 28878; + shortdesc = "A LaTeX version of CWEB"; + stripPrefix = 0; + sha512.run = "5d94dd53bf3212967ae38c094115c4ae581ec15a49e3d0f64be311cd1aa190eb9efdfec2cd83bbc3bd89250efef9470a6a6af342247fb9670992546a976a5886"; + sha512.doc = "16c8cd2681e216084564cec718401b9e8d98228e6597d38c42f8ef4cc4775e8e606fa11c84d21f0450d85ee18c7ed1e5fd9e1f54bcd0e8c2927b1147ecd4591b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + cweb-old = { + revision = 49271; + stripPrefix = 0; + sha512.run = "efb1c9b65f7c628905d2dac1373da96346b6b6c78f15e8c0c8055e86c1a52b09bdb5f78fb06106e350d10a8daa378eb45f5fe788c6c3d8b23f0b47c3db6f256a"; + hasRunfiles = true; + }; + cweb.binfiles = [ + "ctangle" + "ctwill" + "ctwill-refsort" + "ctwill-twinx" + "cweave" + "twill" + ]; + cyber = { + revision = 46776; + shortdesc = "Annotate compliance with cybersecurity requirements"; + stripPrefix = 0; + sha512.run = "f79e9ce92036c8a106de0a5da06f5c2b833683527f1225f5b69298b6d886cb967f9d1eb459b7a0543d89b0943a8425dc802619fadb9d69aa4f57a5ccc71a593b"; + sha512.doc = "4dfc2289e92552dde5cd1703e5644e6a19f4281dd16cb80d86caa35cfbc07eaf0f5cd57686e185adafce3883433fc87b1fcb590cd65087571115dd4b98023d02"; + sha512.source = "cf9beb92528c860a3ec39041c0436d40d113bb0cfaf89ae9c5b76dd44ca18b846b14739c1a2b447ea1ff84042dbecd48ac2cc118615ebd30013da305e822c81d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.2"; + }; + cybercic = { + revision = 37659; + shortdesc = "\"Controls in Contents\" for the cyber package"; + stripPrefix = 0; + sha512.run = "f3bfbece973cb3b9a3077c160b0212561056cbf7733e1c011b39fa1dbf94395937f4858964acd0874f1cd3ba283df9797cdf19e8e71e7363a7619c5ae653881c"; + sha512.doc = "dc72453f55c6a72913865f584b026baf287a35885548ee5c2c8d29cefd60595f4aa9f7c456f59ebf3ed3e3b72711beaf90cf85f24c2ce6773146fd2a4724767f"; + sha512.source = "55223353fadf2986f777b4a61b2f34662f493d2c70e29cba8712625c16dfa49ba50644d406f49a908afb0e4b6816666c1cf5f060685d5428eb2787b6b4ef233b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.1"; + }; + cyklop = { + revision = 18651; + shortdesc = "The Cyclop typeface"; + stripPrefix = 0; + fontMaps = [ "Map cyklop.map" ]; + sha512.run = "dd6584831fae3eb388f66e42f289f9bdeff401412c7df471752c4aa56bc67c16c56f6f271d11c289a1389faae138ac15abc41bb716bf344bc2f49fa087ecd380"; + sha512.doc = "4d81a01eea30a4f86b2f0a7c9c21923196dbd28c7d5ba5c1639068318ef227720550b3052cf0ead6f3194450d50dce9acaa325a0dace0e6fd230e0ed11d9b106"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "0.915"; + }; + cyrillic = { + revision = 63613; + shortdesc = "Support for Cyrillic fonts in LaTeX"; + stripPrefix = 0; + deps = [ "cyrillic-bin" ]; + sha512.run = "1b8889d33e5433b32d0b84bd31ef7ea96fe338456ef8e1732ea6c254dfe2f21d3600766b1e51bafa4ddbf0144e8420ad8ba6ad593eaa32c3d45dde99b0b4ec8c"; + sha512.doc = "b0b1d24d3e8887c5b9c251922157de7cf042845009c07e62fd324ba850dff9f39bc6ebad04ab216ad69070da93f77f68693d1be57cd15b038374f0253329c8fa"; + sha512.source = "4dc564f475a883cb75ae0fad6b5aecb936c1ab9cdaae857dc7cdfb3d8f06f6534542c36b053cc7b74f455a2646f081060c670b35f1eda5fa69418b1c1f97e5dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2022-06-01-PL1"; + }; + cyrillic-bin = { + revision = 62517; + shortdesc = "Cyrillic bibtex and makeindex"; + sha512.run = "30d3bdb0f92a0006613dee654714818b6961207029982d62b9933829b3d044bea0b2d9a30d0007dac23c08358a7ada2df9ac25ee92398cb32d47e9c29c503c67"; + sha512.doc = "91da42251e165d17507b37eb48b35e157c75b06fa8822c9717fafd5e7aadc60bfeb084dc30a5ec32df22ae4e69c03c3f00e8a243d187881212ffe62c96b6235b"; + hasManpages = true; + hasRunfiles = true; + }; + cyrillic-bin.binfiles = [ + "rubibtex" + "rumakeindex" + ]; + cyrplain = { + revision = 45692; + shortdesc = "Support for using T2 encoding"; + stripPrefix = 0; + sha512.run = "84651aeb63d3e47f208732f3c0d54ba86862d0ff7da7c56b3d8b8d1b49b6b88ed4c5f9abfb4c1c9d8a1ef8a455632aaa69408651e238bdc4aeb4eb7709f62096"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dad = { + revision = 54191; + shortdesc = "Simple typesetting system for mixed Arabic/Latin documents"; + stripPrefix = 0; + fontMaps = [ "Map dad.map" ]; + sha512.run = "600bd3267a47e5513f51e67135920c15aa7aefb51f2c3dea6e912f26d1a45071f936e4c568afd322aa7e89d5139e68398b394c287d5076c17e310297fa7f8fa8"; + sha512.doc = "97d4596972c436762e33bd1d5077f7fdbe7da2a74b016a8841ad98536c2e9d9a2bd01a91b1ad2fb306c7ba06a0a5532d47c7b813d42b0bd82a3390f3bd17760b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + dancers = { + revision = 13293; + shortdesc = "Font for Conan Doyle's \"The Dancing Men\""; + stripPrefix = 0; + sha512.run = "f570e4c775a7e4cdbeaf2ad764ee147a685b5332369aea29175a76fdc9fb37f052da295d20a177eda8e4b8352d733034eba36882c2507fe804d7b996c0e0537a"; + hasRunfiles = true; + license = [ "free" ]; + }; + dantelogo = { + revision = 38599; + shortdesc = "A font for DANTE's logo"; + stripPrefix = 0; + fontMaps = [ "Map dante.map" ]; + sha512.run = "883c5d6f8368bed41002eae123329954fe38cc23a5e6db7feecd57c16540b6b9277cf7d13af6ce8f63994c11148708e1d3dd10ddd9d17457b015d40477f91eac"; + sha512.doc = "4612de774c6a39c7f09dfc99aa182fd37d9f3e32dece37726f1e87e48e5faae246f2959992267f5b2cb685c26177e47c5112fbe42b8f1ac3a60da92e6276a681"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + darkmode = { + revision = 64271; + shortdesc = "General Dark Mode Support for LaTeX-Documents"; + stripPrefix = 0; + sha512.run = "f844ce29d5147d9a558f257bfd1a6c32f2f1de1fcca4f3319d22528da052fc228e61606623820fe078db208509774dfc87dcd82058a2e744e703d03edc0bdec1"; + sha512.doc = "db103f2257b3d844592ba12c0e2c22d6ae97e8dc5e47521392ddd59951d9f9a56004d0891f0a5e84d511ec2043f1fa26c4cca4ddfa23ef7abea39637e6d54a99"; + sha512.source = "39a760fd973d56c94f60026906597bf74b57ddc8a0bdb913856a06358b849999e7f7c49c54e102160771e599bc3177da5788651f48abaffceb14d9e77465ac0b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + dashbox = { + revision = 23425; + shortdesc = "Draw dashed boxes"; + stripPrefix = 0; + sha512.run = "a52bac248fa26031db34686e57cd3c9be90bc18b41339d7e2dc85a68de1de23a627648599e5fdb207d3364b2b4e3651aaf9c2d90e6c3bd0f0fdcaa30fbc8932d"; + sha512.doc = "26672278ffdbdaee64b82f4e7554b5664ca3410ce8009454cfc229e3590439b4a4e212b77568605adda885761f5ad456bca022f198e259ff9a33b8e0abc1ea6d"; + sha512.source = "833bcc8f98e6fbf3e205b54311dddb9377026234132e5f988abd25e3ace36b9f3b54a95e98a5c4cc40ef1f049536093b0f779517c6f5a63a08459bf0a7ace741"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.14"; + }; + dashrule = { + revision = 29579; + shortdesc = "Draw dashed rules"; + stripPrefix = 0; + sha512.run = "4b1b993e9044eb2ed4bf6bde0c114b0cd1fe7daed38f8bc5d3e25a2705d55cb41b8a372cce84b0d61093044d970003a4317de98cb468978c8cb1a8315f980940"; + sha512.doc = "f45e0785d7c6522683e724ca27f7505e3da6bf5923d5a8c71a75ef8c67ffba8a4e4711b91b64f25dca95566448cbf74b5937dcecc73f5ec0aeff7ace8d0e4c1f"; + sha512.source = "0cf95a6d5fe3e80e9f77266033d64186300676d74a7cc39dd6f907784d1a6f7c9f83ff5a50198eec8bfc075ef5adecf58d226063f3f0e02f55dd7cc0daf691a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + dashundergaps = { + revision = 58150; + shortdesc = "Produce gaps that are underlined, dotted or dashed"; + stripPrefix = 0; + sha512.run = "c3ecf5c63fad14f82228913e0b12c6596a9aee24b6de3419a4e95de8de94e40e3d43c2b163a30cf221602ad9c1aa1c3ba42429ac2adac9d13888d74ee1f4e900"; + sha512.doc = "88ca6be34c5d68ee4f983b9385bd83047e59bbeb94af12d2bd16105bc8afb99b8e6db9d0e25717fe5bd517d7e834d8795bed30ba24455d8f09760d1ad2c47803"; + sha512.source = "1fce3d4ccecef6c2f5775792162a9cf21951f0006e168df236884f89a4bcc662c1ab9028e856805ebdf19dd410c109ca3de993c088aa9c0611ec98565be06be4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0h"; + }; + dataref = { + revision = 62942; + shortdesc = "Manage references to experimental data"; + stripPrefix = 0; + sha512.run = "da099bb462ae2698784097cb04268b039f0900fbe57d77284532c0ef694c50d422436e5e0d8ffdc9442b98c12d52c72629b29f772b0d66f226ebabca579b2249"; + sha512.doc = "6f51ed66ef467438a856ed22a7644d2bc574c789e89025cead65393d701abaee299861873d97c9509522ac7e478a35693e34d2afc0bee3d08d862b11992e4230"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + datatool = { + revision = 52663; + shortdesc = "Tools to load and manipulate data"; + stripPrefix = 0; + deps = [ + "fp" + "substr" + "xfor" + "xkeyval" + ]; + sha512.run = "323b1526a32eb4e0d81db77278d66ebb6ac91fa357f7f76c8ac1f199efdc4be17ae4f8fb83fe55f3ac9cfb8a18d163a85d6c21cc11c26e4dea0db5f85dc12dd5"; + sha512.doc = "32b5391c7197bc29783bab0c93a5225784fea999f69bdd8b1b5c152ed338716f82dbedfdb6cd19064ee409407c0b808e5f410e6090cda6d1f8ded2ca41f3ace9"; + sha512.source = "e149a3be96ee0161b2bd872ab73e74c36ea638f0a1f0a48e0268093bdff2c2c1cfabe5c0a4d3ca8ef7ee4c02bd03710c5c1b2ff9c1b543ed792a444160814493"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.32"; + }; + datax = { + revision = 61772; + shortdesc = "Import individual data from script files"; + stripPrefix = 0; + sha512.run = "04de65ca5219e0e3b53fd0c0b92fa514bec77be2f889e48ad100f93113f54e738016fdd93ae59d79ae7f4ea31108efb9cbac87a6db010b71008fb17dcfa19900"; + sha512.doc = "e1dd35b5dce9a4ea5b1bb9d9db14b8e6b6f8ab1a8f374079c2328862fb231b4eb69a05e1bddac424401d063925b4a75a9994000ee4c36c43e3fa6344badd6f5e"; + sha512.source = "076509cc39ab41b028cc17551342bcc26cf8bbcd5c12d25d291e2eafb3610d390610d36e917a192b38fd7870c6ddee60a365bfa9711b024c6de2a3494dcc498a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + dateiliste = { + revision = 27974; + shortdesc = "Extensions of the \listfiles concept"; + stripPrefix = 0; + sha512.run = "6da6a802994a06e040d43ac7fc9db0515d9273ba9d4cac061e04b05922f9eb9fecaf138eb641b3149be7b98f9139c428084b6470bc177a020386e0dc053427b6"; + sha512.doc = "53ca32cabd7e3a32d02c77beb076b08ccaa782b6a2ae249b932242987741f0e255bdc83a2b6ccc7ed2e0efbec66923798026040745152f7244984a0843c8c23d"; + sha512.source = "563840e069cd1e1c1e9b1774c5c3ee8b1703305fac3fd5f58a0afe76f154210150be05f779a94717c227978d2a1317a10f5b6232f51dc7b3e422638b84b2ce95"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + datenumber = { + revision = 61761; + shortdesc = "Convert a date into a number and vice versa"; + stripPrefix = 0; + sha512.run = "5c7d23f949684000d0e38855e11e4869433c33f82fc42da0568d4b74fb0e69fe3fbcd5f72516222059ee446938144c18b10552290e24e077f2e624286e729d28"; + sha512.doc = "18f2573f8c02685d20085c31384b75dd1ab5a47a5bb2b9dcda036a7cd1ecec80db175a674c1f148cd51a078721ed88a3c9b7a0915acd7c023c02ea9a16e2a1f2"; + sha512.source = "7835857f1c4f3e59918fe9ecc903dc09139191b050b1b0166e4e1fbe4a5d0c95f33b8591f30012ef5d69af324e8a71cf24b39893029519c13e13d8044b191261"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.03"; + }; + datestamp = { + revision = 61719; + shortdesc = "Fixed date-stamps with LuaLaTeX"; + stripPrefix = 0; + sha512.run = "558e8ec60ec317f8342efd63d0146b92e43ca37a772b8fb200a40234d48a71e5374cb3f3f15bfdef129fd1fee8ed27491bcb8b69ae2b681abee72a3dcb8f18af"; + sha512.doc = "d9627cbb294f0bcb96b019d3497b12ecd4b4eb656a1dfd70d1adc6cc4cd217bed9d4f9e209497c683f925cff4063d759b02b44bfc1f38421a9044aa8ef8bc988"; + sha512.source = "3afaedee82a4e4c6f92f465fa59ccb29976272a75aeb523d8c161b07bbe313b5e79dfd96195d0426926a3ddb3117944ab21838d085e1cd59256bae31419e243d"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "0.3"; + }; + datetime = { + revision = 36650; + shortdesc = "Change format of \today with commands for current time"; + stripPrefix = 0; + sha512.run = "3d033ee164d52f7085bffdc12f2062be7e94a644d9ed731b4d1b97a3a46838dabadcf6687063e165c65fc938a51a4adf8078339b720a305175d6cd6a3b889f07"; + sha512.doc = "510449d17b09d9207b76e732b5d426121888cf653f29bb3be8872b74a243596ac339f09d11a14a4a3007f8818171aab28727cd1713ee35c8908d2d168a57d9b0"; + sha512.source = "3e03ba12952ad5dafa701c7ddd5d79097890d13d3510d420cc399b30b1c60c2b6f72bc5caa2a6d2f53ec50430d13582c5c6fb549dcb3566f827af0d4abeaa011"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.60"; + }; + datetime2 = { + revision = 63102; + shortdesc = "Formats for dates, times and time zones"; + stripPrefix = 0; + deps = [ + "etoolbox" + "tracklang" + "xkeyval" + ]; + sha512.run = "7f2ad65f95e3881e5016647bff85b10138faaa7d26d097bdce0ec7b30cc0d913a43c2a45b0caa69a6669e54725122cf1a86117d0d4f543caba67058423af7f62"; + sha512.doc = "d43970aea6c7971ed6a3564a6681caea0e0f5606607496d9ec51d6c2fa741dd6c28754c9e9f06cde0ad1a79280b53629eb427faf820d00549468a650cbd0eac8"; + sha512.source = "511c10e67c7d77ee10d8d75704628313a1598636ce82a5ce114942854b3a9d2da237ed12fdab986f13b04ce3c2123933db91b850360b309aa52305575a7cf2d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.7"; + }; + datetime2-bahasai = { + revision = 46287; + shortdesc = "Bahasai language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "6bc05fa0f1cfbf05008de715f9b278948272cf7894e8c29b52b6ee4ba436e01e5588356fa020fd5453ed2e9bee185cb46c54ee3e808417782587c9509bab17fc"; + sha512.doc = "d9542fe7057b9972c6e0b9ebc1360c2fde8f9b3538e70efd7249f0bb344f2d5c2845acac9ce39fec6f9f7197b47e65496ffc662b9f3a3044829e4709d6202995"; + sha512.source = "7edf39f7e2c5b44923e66cf3dee57e7681c549b7ae944ba2f4593e4643e9d50b686b8c1cb6905326899b6974ec5c0587ec7a5f4f880b5b1e81c94667240c601c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + datetime2-basque = { + revision = 47064; + shortdesc = "Basque language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "73d7dcb4a2d13d4ad4747d4d2a19b839bd9a1bd55793657315832178091357f61d9b748d5aaefd317baa7f52df2a4926dad6196d11d11cbce0df78168b2ad380"; + sha512.doc = "ce083f982f95f5e4beb33a706144d26f6f09de8ede946ac89d28ad5e5c75f9a475e4e9bca5fbc7773ee90a91ca095f0b1a9908fc0f74fcbb4117ec7511d603b2"; + sha512.source = "a2bab4c1956a0471571221a57f85e9f4260e349a9b775540638255d8313f5db2c9922120e045b8c769b7b7fe1698c7fcfae1e1aa101e858e84aac32673f6fb86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + datetime2-breton = { + revision = 52647; + shortdesc = "Breton language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "725766f3227119012a79807c5909daab83e8056718cc4e116d8992d13e11867439d71392cdd8a2118f2d8ead61b1d36af5ae42438f8ca68f26ea14f0bb7cd0c7"; + sha512.doc = "f421a467caa9202ec50678d398e31e1c4cbb4e98805bf86114c97fd49479670e825c1c091955a41056adf0f9c7596dbf5dd14397326c1b88fbc2b6f75ec8ec55"; + sha512.source = "0d1d5ab08bd27ca1e322ee25f8a6d58733d29291439c2e901d971969f4f05148b2c1d660567ef07ef9d002e7939dc10d5bf37f03fb23728e6242b3db783928b8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + datetime2-bulgarian = { + revision = 47031; + shortdesc = "Bulgarian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "fe0cf5eb73c5253467a8d2b972cc20825b5179ccd3964f64656ee8f4fa5d7fb7bf1660a7e79d58c491fe74e8c9421b75c177d4c8bf7309782c81ddeb69ff1203"; + sha512.doc = "f07df79af157b8ed471f5c8021719d8ac4dea9075885cc42ed0d64405692efc5ea59b6a77448225aee477b8fb05d564ce9155b7e1efb3d9cd7b7baa794783cb7"; + sha512.source = "9692b6932f74a7e15a625612dfefd975a948f8a2111401c44b156702fad868d7d34381191b5cf675f0c17aaa6234071e10722f6b912e80f8afc4af69353dbc6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-catalan = { + revision = 47032; + shortdesc = "Catalan language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "7a414761760e3fb61ed12c656a88b6ae4d36b8268998f10ffc85a9cd362a6ee60b73b37c0994aa47603e805d785a3a0faa7266efa46c3e017535b864f2282e5d"; + sha512.doc = "d1613bf5d8a35f69bf3dde127a764434b8527f0e627cecbdda43490642cb8d0a10ae629bf5f1359b7a87c12b3845bd468fb2c00b508be1d2cd80b6ad98904ebe"; + sha512.source = "35fbd618c48265f4cd6bdccca100396f54b6379111189f8fad705e93f69026fbbba21f246074a3d154855b0a04e83c4a310b99c78e2105f821d109cfdadff6a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-croatian = { + revision = 36682; + shortdesc = "Croatian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "603052fb5cff6ea8fa5b951623efb1fc72aa6583fa1ed560b4c5266ce96cdd209423773ee0d3a592465247343f3fff966d7a9cd9698e02e339d5a1c579591f37"; + sha512.doc = "a56060b84fc6d2917fd0cf160f0405104a3413e02456ce91cbd97aebd746b0e91c730d2e2e4bbbb46f39521b5c6cbc45558bb4327c7260719ce21e8226fe5910"; + sha512.source = "5eca1a663801a65b79e0cc069bfa8840e04e08e589445713ea0646f104f5acba51d6f925d2d4ea1c36a83b8f4e095693767a3ca71a33af1015fff5f396c51bc4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + datetime2-czech = { + revision = 47033; + shortdesc = "Czech language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "048ffe6258ce1d4bf9d098e7623d3c5e25ef8215a538e33806c4d35d6368fda81941ff9adbb394085c9b4f058fe9a3b02cbeeaae8cb1f7b2bb55aaa35c743d61"; + sha512.doc = "976e98000a80e15a4ea5204f15a5288781ab35089bcd9427b62fb445f28a25ba0c03af4e64a3de688a51c5c94788732fa199705a68de3e9925f1db4ec7dcead7"; + sha512.source = "9ef924462b97d29d6102cb691d1845f68ec50054a71d93222b61af91f510211016fdaa4861433a65c589263af11a62cb23d64a79f5bb26624395589dfa812515"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-danish = { + revision = 47034; + shortdesc = "Danish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "b9e5b442282fcebfc114a772af8317d8888cdf24cd5cafebd5d3c79e3ea8790a4fd082c2facc1a466e7e5b4266b0d93ea5fb6cae64f96f3d131fd4869a465a4c"; + sha512.doc = "1d933d9d48ad6ef3dd0716fce0b2da6de6700bcd8c1d729d8216145dc5f243ea83323b0fefb6adeaf10a9fb264343e1b429044aaf86e6a77a121b0c951c2c77a"; + sha512.source = "dbccc381f173d7204eeaeb8b8a4fcf59e6f0750213986207afbef3754554e4524e1ceb3620135a93ed43d786210583b3f931b41a1c645bfb22e33dcaa45a6c85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-dutch = { + revision = 47355; + shortdesc = "Dutch language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "c14fcbb882183095c60f0e881ad1668f90855b90cce352922a562371bf2cdd556bd196ec85068775b9aec590f098c956c784b98da283ee1117bec68ee585f5fa"; + sha512.doc = "e5f2fe126eaf87ef34dce686db6e9b9c3c322a2266293517e803435dfa67b55da6a771f6c7253203dcae0dd1237096093a6463f6bbbc096c108b73bac4a641d8"; + sha512.source = "32036be5e4e8643da1cd0a2a291db4875328c5e8685f711e247eb7fc38b6b25b92db2f98bfa3769a02c982ea09cbedc75bb963d3f39c36860f9c335e73e331c9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-en-fulltext = { + revision = 36705; + shortdesc = "English Full Text styles for the datetime2 package"; + stripPrefix = 0; + sha512.run = "19f08e264921b8b12def2b20bb1d904f90dae712bcbe579a9697d1f657f148ad8311c6d7a8621f336dc82518ec64438640b49776fdab62f302b0919cc7de8e4a"; + sha512.doc = "a6ed1e804d8229d735aaf1874458dda3206ecb5e648c35af82a1d3fe524e65aeb7669088dc4bd9fd83919263d59035fd539a8318a24b2bc2470f14670e28eced"; + sha512.source = "9bf741dced10ac57d7c4fbc3a8a26b49b35d07a221f4d7ecf56ddfdea6500edeb39ef75ed0234d6e510ea07da5da06cf29691a36545dc4367b3682e879d92b10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + datetime2-english = { + revision = 52479; + shortdesc = "English language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "2faf2dbcc9e49a9c30e5af599a26bb6925c6cb6831c1eb38bb58e08f50314cde1f3ebed343fc43ff50c6338a089caf90b8aaa53093f1284c583ba217c25cafa0"; + sha512.doc = "ff904eb3279062f6573aa0190bd2f7426a18f4b67564b9b10673a88c4583c580cb88b33ccbfc0c8a979b10f6d2379bd22ad8483f19b1c4baf3f66e06d2ec52f4"; + sha512.source = "f5177d83f75709135356331615baa47cdea2a01fc706bb507391c40866b1d072260bbba4ec33fe88ce44e9995bec77941d636e5ec6132b6c4f07d2f1f25fffae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.05"; + }; + datetime2-esperanto = { + revision = 47356; + shortdesc = "Esperanto language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "6406e5a6708c1c97da6e0f8460ba70d61c403875497c57008013a3d1a8a9100b344b3d7267ed869f777566aa403110e17d778e2a47b3970846324bf08e8ae046"; + sha512.doc = "c200c3f39ed756765876ca5655b99025a898719f9723a996bd4772974643e0421edd8d36a8eeb00d29dc75ae715fb55927e31f067b1159bbb1f4dd218de780a7"; + sha512.source = "799b2197ce9f0950889a933952dcc33dc0ad2cb97d906baa61bdcf8d32bbf341d65aa2c2f1509fa59f366cb570e9ba6b4946d4d5785c5022c55117297192a32a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-estonian = { + revision = 47565; + shortdesc = "Estonian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "93e8ebc62b48da8f5c159822f53c35aaa2cbd2fb6bc701108cf6452db7eca3df39de3c1ba9b84136683d22d65a975dc138aace0a81960d1c9382309a4cee5f3f"; + sha512.doc = "268b873d870ff19a3151d4244b0329994e559ab61198ab3d76d830b1bdd6a05e8b5a7a7df2fd6eec8d57b9e28626f80af755b1866f4ee90eb0c7e94b85f3c087"; + sha512.source = "2cccbea84fc47da4668a06154b97116b39e1aa51e31196c7c9a41d517aa5f24924c86474fa8f7f1252e356a85392977553b6a28ad154d246bd5192a7e7f07b4d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-finnish = { + revision = 47047; + shortdesc = "Finnish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "45f971bd3711d1424b002f32e0535465658e50cd9abd9758faa3685aad6a6e74747e7b3cc840a38968ef49ecb91b3007ec678f63f0c0ad3b77ae0c39bdab2457"; + sha512.doc = "01470814a87a5c87bb54b17a763011872864aad8d1f78f82c2325defb7f135daf34aa2b721bb4cbe7ec80efcf839372de07c29245ecc477708fe60f3d501a258"; + sha512.source = "56f4b99f506673c89115e37dfd9458f5e3e55b62dc9dedca98747bcbc7e6e27306dc2711c05b0c8e2844aa03a4c8f7835bf6643ff082b7d1ed246a68b2af37d3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + datetime2-french = { + revision = 56393; + shortdesc = "French language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "b786e4534dad90a76fccae091d86396324c4f5ddeffed4a2aa44d2df53cc3a05556265603accbc5f07bd1464f00caa9fd5ddaec0faf8e10b4edc9ea036c3f82b"; + sha512.doc = "6744ddc0a8cd6f190de4462a4629d01b57d3a3bbd33f7c2fda8529685316565a579903bcf4192b5e811cb879eb01427c3d03c9c94ea59828b03f1763ced586c4"; + sha512.source = "0566b2fefa4f170bece84fc5cf76ebea6805f96d48476f1314d2cd51252bfdc9814ce5b46de2a78a808ff1d8a60026753ead89bad17f022b717d36c0d6e8110c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + datetime2-galician = { + revision = 47631; + shortdesc = "Galician language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "050dd3e5db5aaae106804a315e679cdee0a4e9fc2d10481f21059c410a73492d6e41d9db070bbe5112377a4f1dbec3345bc5f87efba998130cb20e31a443bf34"; + sha512.doc = "881250aaf53eba33ee223e5d87f0d8d4081785ea723d5f2e605d04767aed63b2fd8a592eabddd4343c489f1abd809218c600aa5df2447b24bf0465e7a31c8ff5"; + sha512.source = "671230a9b4da0cfec5c1afd50db2ec103c1712006c70be0c9d6d1eec637461005673c73dd1c457561e54af1409072fab111e7d93e785a91ccc6dd0cbbb497127"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + datetime2-german = { + revision = 67201; + shortdesc = "German language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "1c020ab84d3c6f5b5dfa8170d9be8344c6a63bc3a7f462b29697fbb892eb4061a502801177bf21408f3a6eb68fafb8b77711c125d23e662ce1510f75117c1d03"; + sha512.doc = "f050add5492691986f50007fcc48fc36a0a19e6a23303062c5a865be753e0c56f4f5f955efc22c4c838fbf9af79f91e0f488e00027f4bed045af483ce06cd24c"; + sha512.source = "f131874dc61bc52d040dd25ce684782d50c0519c03294f23f9c6b717a8f574751e8f2df18de0b74bb3a9026718b6beb299435af6c990e4e2d7c891e831fae7d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + datetime2-greek = { + revision = 47533; + shortdesc = "Greek language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "d067dc579e739c8ebfee602d667042c4727e73595fc199197d58d0c6caad4460401bc9d08965292b36811e38be5424c22d6dc4f49c4a9682da3ef34d46e35cdd"; + sha512.doc = "5025cf0113e24efaa2bc413da5d2c14c58ead82ceb07fedad299783c5e445a40295d54e0d5ef3a5937586c484ccaf80e40fcb95e5592266fc82e5e52966af6dd"; + sha512.source = "b0cc23d43a600f72a13234938b2d1e26d011e416b5f979f86003b4ba4cf53f3fe76db4eb5301db23263490b59735d0226f0b27e10a8f521febe52758a3f63ade"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-hebrew = { + revision = 47534; + shortdesc = "Hebrew language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "c9bfe10e1cda7e3890cd79fac15a8f629ece47971caa43229fe73236e80e1f476411aa4d05be61f7f03bc34324b114ccac2585b83cced2d38a28f279639523d1"; + sha512.doc = "636dd01321842cd0ae1c3a1ed8ef41e1704d720aeb830f03a93c921c4735c1913211a1d987a1b430e312c57440a11cf8cb80f4336b4770a13fddbd9d6a5c3cbe"; + sha512.source = "9d1cd5f81a144ebe0efed5773ccc480fa2a14fca7411ac621a489884873dc7fcc6d877c66c7e70ec6736f4e2f6a90b57c9db0516baec961230f14dc6fb55d404"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-icelandic = { + revision = 65213; + shortdesc = "Icelandic language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "020254357b8f32dc146018f3eca4080f239203128671d8e99b712dd038e39bfbdabbabc2e62bf0782a86a3f5c6742d8ae130dd589cc6ea28f87a3ebdc9e9d994"; + sha512.doc = "e3cd7b3a0d8ef17d5b5baee057a0b5c4a445c3b8ebd2894b27d5dea9e7373fe4798bbd48b83a1a96704661b935c3196f52ee8b21d624a91ad75ec51e5a246aef"; + sha512.source = "4b9c797ea798156c88f4e4350e28ce3a63111a6c8cbf7399676ccee60f117196cb32dda2bc56b7a2386756afbe6e5207d83e59405d8e0f96f59f85f2359b80be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + datetime2-irish = { + revision = 47632; + shortdesc = "Irish Gaelic Language Module for the datetime2 Package"; + stripPrefix = 0; + sha512.run = "8c1d54d5fc80b2f7dd8faabc31df20253c9ee48987c268ae685144b02acccb5c3ec6bdaaa5bc420e90ecf4ec7d421afc96d82aef1a76ec7e01fb8e5f81d0a036"; + sha512.doc = "692acb7c50c30e6790344b37e9fe3cb07f2a0e10b9d63b47c78df1b2d1bd1f8f186107acf4d75dabc14a99db57cb32810989bf7af817bfdd16fa694bfee5f17f"; + sha512.source = "1e829006f0182374511addef820ef08868eb1c00b5e82d0da82efadb4df377531755a4212fb0e2f4a5df0d06aaed39863094524b351c29dd88dfd5ee71c84860"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-it-fulltext = { + revision = 54779; + shortdesc = "Italian full text styles for the datetime2 package"; + stripPrefix = 0; + deps = [ "iftex" ]; + sha512.run = "29a67f9c4414d08adce673ac2b501e92be5822470511b55677b041fa1d89b55760246fea08ba0f4cac7ef6f8e7ff52498f0459d50f94bf2bc6b3e4a944976a99"; + sha512.doc = "24bceb74337abc4ae74bbf9101bd32cc65371d60a0461cec91c8e3ecc3822c848eb8c7f0bc8706ec1b2118294df659b44f3139c3a3ed1c0c243f9654ae1b3d6d"; + sha512.source = "89a91a69a45100324b24c5cca3e0bdedc8dec2a466c414e65044f55a6c1ec3c715946dd5c5ed942fc9dc8f6a597fe5f2075dd7d05c88d241da4bccb27ba9cb3d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + datetime2-italian = { + revision = 37146; + shortdesc = "Italian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "d099d05904e416d44e9a9ffb337b23e2c1f908dfddbb41cfd7629c4abaa7769c76f50ef687751224ab4ae94a0df4d1962adbad602ed3a7473566e16c5c4bea48"; + sha512.doc = "963759f5e07e01315b827d4c67364d9367d114a09d518154524ba4496aee69f1ef08acbdeb67522d3b350a6f8abf8bf571171d4c380bc3f093d59ea3207beea1"; + sha512.source = "4036338ded2298c97e49173758317706452c254bbf07dcbe83080e28b6d59415d0ff14657cd11b9a5981ca893a4033db338518e251d59d0c4eaddaa9498189f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + datetime2-latin = { + revision = 47748; + shortdesc = "Latin language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "25f4e92c72abe14db9340aae354e0f598aadf88ec109b6dbe6b48e12f55926f63fc80ca420ccbbbf8fcc8dac066520d69b653981ccdd41b2e8588d85d4f11a99"; + sha512.doc = "f683c8764e99edcd9d9a449eecd3f1e4a10a2803a20bff7be22568a69ee1b06c5d054d6664a051b0eef8cdac5bc2387175cb582d005e1af31a5be8bbac4a0de4"; + sha512.source = "9270951371b2595f59a5dd8f8214603d9a72856caeb7902488fd7e7068b16c09b7ebd8f94cf10b99d31fa95777b475d403d49429944bc79f20faf37ae9192f8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + datetime2-lsorbian = { + revision = 47749; + shortdesc = "Lower Sorbian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "04fcebad65bee525697ba96cba9d66d6acfe9bc602b6cfb207103a2bfba0d3cbbef948d614930c1a2bc785a6ae2ad6c4e0b06db58d562681225d67b7a5f2f8a6"; + sha512.doc = "7bee606e0c48dcfa676835e3a313ec8c3b79f566fba6d6b65cb34c4f939e7a7df34d73e24f0f03d569e0f6a01cb244a90b9023e2846c597eb589e984ad9d1f18"; + sha512.source = "9dee46b9c2290e00c1a9f9d7e63b3872ec206f7afe9ff0ca592824319b035da1295f566a8934d7d4e87f47b8061311682d2a6ace9a9ea15180433279759d847a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-magyar = { + revision = 48266; + shortdesc = "Magyar language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "4d3b27b0409d26431cc06a1ac83485b6d4d63b9bba30a862ac043cc27c25a77805d5c3aeff3a329e1348a32ca4ceaea917f2f840ce1696a58f00325775ae5009"; + sha512.doc = "1eff11bc2c7cdae101331521f08d3a9eb878e8d1695b35724475eb5b99e0a537bf16a00bd3c13760cb36306e84b72f15e5ec294ed958ab5d67e75ad8571ac9a2"; + sha512.source = "674e795a5b3d49665bba89c7f01abdf4c366a72f9968ea008455179319f66061ef2f73e21c6ae736e6dd960aba1184b7e374eecff8429d1b533078202f294ad7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-norsk = { + revision = 48267; + shortdesc = "Norsk language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "9ebcd994305b3b3aad61383b9ece13425b4c34432dae0aac2ce38c0219b2f19871f89cb30bd774a7db9be45cc8a21f7856f1f568c32941502b18f6089b787066"; + sha512.doc = "3d834d8572cb8f1237b4b9e69bcbcf1a5eb0a1e5c001e8610a00ec377204c570218f6d97765c3efbad9130cb2ad9ced3cb80b32bcdfccfd62d7069ece93ab1da"; + sha512.source = "7dbb4161731dceac735ce39e042713a07d3d63dabac0a4dec870a022ba79c2637d7fbde4715936908d39f3475746f243dbe2e39d88040f35822503f59c0f87d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-polish = { + revision = 48456; + shortdesc = "Polish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "3b63541325de4082a828af5131a639c11f2562b8e2951f50199f7281e7c59e2a2deaf8cba124cc8679a4de5da3e95d988bb3533eed6cdbc9471a95476ec59bc4"; + sha512.doc = "6bcccc320063567e2527ca6acce6180c9d19a3ec8a1e922e640e82d3ad2a244cd455741e059e385fa26ee6479ddd5086b9dcf73a705988adec96a311cfc5e40b"; + sha512.source = "0adc45a662620826c90aac5f0372d83462eb571b7dc0751465ea246602ffe4f7b43f6a5b3153cd04681ee8baa23703784e15b79e5ae2c15cc9e6db5808265b8e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-portuges = { + revision = 48457; + shortdesc = "Portuguese language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "976ad1440f05bd166659b5b950691b4d0ce988a3d71bb91525e4448b1520a6ead37bbb3ef9a899bac08c7dfe8cc7b9b7e15174c8ef143891133bc00e5c39e9fe"; + sha512.doc = "3cd176813f3b0bb16341ddeee4d0a848b4eee9bacfb90734d97fd9ddc3e88285057dd0bf4f0f3ebb5641ebee48b15161feb3e4e75032e32368a51bfb9ca4a8f0"; + sha512.source = "71b769e4a63cf02cf6c2794d3fb876a33d9c8b150059a2bc0960b8cd1b355e5ebde3d02b48ea47653cf781721fcec118d78301021e8b95543d32215e690a3c12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-romanian = { + revision = 56394; + shortdesc = "Romanian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "fed59ecdb496fbad41a5558526671cddf9cb487f50cdf103f61141fb1955170e54dbc3fc134ef51a2867715e7bc714dbf81bbb11e6d30c324a87492870738d39"; + sha512.doc = "7c65be46449bf92e2c41623e785c6262c710de23527ea54c505cbe155af50dd9e9831780dd380b3d0c44af7607bc59fd3b168d700c1a8041642bbe4b4ae9cd08"; + sha512.source = "58e3773e40d6116f5cbb6f2a46d33fb6d557d42887efb130c051c24fd991d8f0709f5afbc8e6ee9b5ada21d613d4d8975488f2e691bd0951c5f5429eda7de61e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + datetime2-russian = { + revision = 49345; + shortdesc = "Russian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "2821680ce189aacf8b0303d5698d9359f240ab4e470c0e2b052235e6aaeeffc882ea4b9c9c4f91d52b1402ef7486c7115bab8058e2223b7ebd3186fbd4c4c34f"; + sha512.doc = "97c1b02377328ff75775194baeb2c3e15f2dafee303dbb85c47a0baf7f6edb4323f754578a9caf9db609477204c1310dade3b87d5a768a16fa940be2fe320081"; + sha512.source = "f9055eefe76d9844e8764ec766c0e1da7d3c61db65c754115cdc47419ab68d84685688e59939f219cc5ab87f79570cd4c28011ca597ee4f89fcdc38c42e82a75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-samin = { + revision = 49346; + shortdesc = "Northern Sami language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "fc4e6401ce02b1aa7be5fd78e5d5e74aff6ac35cbb6864cbce6d93fe0b2716510f6ccdd290c82286b8e51f37abe8460c0f8340ce0f9135838ecace7502f72784"; + sha512.doc = "e5879faedd4d4fa5ac40575e0ccd1d0db94a80d78c3d01f8d36bb37875e2b9025537c876087b85626ccaed5c90f505a98fd3e5adee64ac1bc72f48ff66114438"; + sha512.source = "4aa4d272188a8a2b6e40792b97df9b205857870f3787153502c12fbaaf81ed61d9d823a7966e147fbc1d94f761c40f179d4025166a48f358821134559a7bee3b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-scottish = { + revision = 52101; + shortdesc = "Scottish Gaelic Language Module for the datetime2 Package"; + stripPrefix = 0; + sha512.run = "b3f8c2e2c61461c162f4b7c029ced53b5f0c61398415d17044a5189c08460550bfd0ddd15c693dc959b5cb5bacef63a1d4de8a9fe11108843edeff475964aae6"; + sha512.doc = "87035e38cea316b776f2c61d0c1522e61c560602650bf6955fc7330536fac42dcb17bdad1c3828f2accd10cef009efcd805ed917352ff921d03b46ed3d0bea18"; + sha512.source = "4e4c7d02ea59a5d7592660e80c996adc11968433a2d88b54179ff15ab577a487789cba6fee4131511a5c22de2025879800544689653c48c0f7560a311b264c02"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-serbian = { + revision = 67201; + shortdesc = "Serbian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "55ddf54bb1ba9cca7836ef0ec082d98d9d280b92e1d2d108c3a4d11b5c5d89f43098215eff675e8ff5b42bd8f446c6361a98f544f2d4bcb4ae684f69597eecb2"; + sha512.doc = "b3b25cef5afc1481617cc3edbbe0aac242b1dacfdfdb9bbd30fa9d2c0f963605ead09bb9a91b016d0739b848cafce18ab17d3fd0750e589faeda0c434b4ac73e"; + sha512.source = "c36f353d307bc2a49844dcc53837ab6ff2cb17a10973419ccd848c752f0eb53b369d4f0e123e3992f96d5fcde30f204e830093d6421f3544be693a9369c43129"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + datetime2-slovak = { + revision = 52281; + shortdesc = "Slovak language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "c69d8eacf36fb7232a85d92e5db277b281b631c0c8f63df7fbba51876d1be782b7196efaaea0ac25140716f983ada40aedaa550102fbe0d445e5cddd41317a09"; + sha512.doc = "c40e20b000f3fd5ac368c310d1f11519566410963cadaf4aabfb0c9cae05e0d3e8a3810c7da451a5e206e8b5b174ac0b837c1beff207597e050ec529e82acf51"; + sha512.source = "19547ebf7016d1e416227830b81e95dd6d91c7ab7823d3fc2d6890d628a51074e4ba7b8b5f31020bf86c2fe447b60f22754bbecb3f7e65dc908ffcfa9087e12f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-slovene = { + revision = 52282; + shortdesc = "Slovene language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "1d0a73d3781fcc9ea0df63e391f6b7a0a254bfa920c63ad1a0c76b56d4770822bc4e049ce18c554974bbb20478150cd7a4f545ef8983bacd31a112fc3acd5419"; + sha512.doc = "dfb2a9808488ab0e0b225d0a397490f7e1cd2343caf0a685d8e3f48feff2ce549092771f0b4017a3c45640067ad1ede8a852e714b313d9abfc7c9642f983cb46"; + sha512.source = "f1a60b0173e8c1f6f245459ba35014e4cca9308e2c5aea203d6123cb88f6de945a6f80ae350ecbfce6554f6d2b671f32487825c5f01093c3bd3fc7a1902231b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-spanish = { + revision = 45785; + shortdesc = "Spanish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "07c321a300d779e39de46628b8e1b95d383e2a1a0af882cc607929d894f11b2e8329cb256014193d428182e78f2cbd5e3e277bc7821d3ad7a2740fedacf14e28"; + sha512.doc = "629b4a2771fe68715978afcb202d984e1032d2e0f1af95d4971a980e14baf4b0705187f4a7ef9748c024eb27780f7720d8d5010ebfb23026ad8605a42730293f"; + sha512.source = "78565125794ec1f5cf762cc27fd24c96eef5a1792941d4ce88c85bbecbec777da239db94118260feed6502e55f81b45f105a170e4b6207ec5e4201f043fa67e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-swedish = { + revision = 36700; + shortdesc = "Swedish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "b904b21b593e529ffb714f3762ca5b8de37e87fe25df593873defa43de3995d1c72b0500217182728eaee6030cacaca969376a5623bc0baf48fe33aafafc0a66"; + sha512.doc = "7d6f2468aaa20da4e086201c0ffa6e6ae031e2a23db7fcccbb9ee8776c59b56a51cda9a03dfcce9fbf81b618f2e7543272f4ae88871f2b5380d1b98ff89e451f"; + sha512.source = "bcdb2b0eb40b7acad86b37e215cf4bd3c5376cad8fbd10d7f1af32a5983243aa28d950116d40abf4ae10bd28e32c10022297b77ca40daeab15b6f88ed33758d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + datetime2-turkish = { + revision = 52331; + shortdesc = "Turkish language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "7d4b756ab2f102c7981376d6f87e5a7f7b47d57b1ae9f821185bd5b04e7a5d9a81aebc7835a9bb43a217dffcfceb5b2c46b838bc652dab7c2f468d9510c2ee4a"; + sha512.doc = "6c95641444f2eb510a330c7002bba2c40cf28daeb63fd9092d74846673c03d2aeafd1e7d61d5a7470bac95117c3717cd75566907a896f5cb4b54ccbe952c6d65"; + sha512.source = "da530162bdacda3904b07bb2d9b0ab74c56cec0341f0c0457d6bd2e27e45b2d8c1f5ca298718d96924e3dce30e83beacd0fef919d1b5bdb5dedae29c7b3edcc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-ukrainian = { + revision = 47552; + shortdesc = "Ukrainian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "5e3d412b8a5b73bb6bd2ee176305806d9b41c5a67196ddd28640e958a7019b3e73f961964b7510be4cd69833c4599db1fed05c6a6f66d4d0b3bc5ad73b5d6dbc"; + sha512.doc = "df40b4e156164a1c05a94c926d691b887a56ef8f42baee26e684383871edff05e5c6e87eba95994783cac2fcea1a5c72347c8eb86f0cca360faa8dd4829349b5"; + sha512.source = "36c7db71bd063a87e8b9f2958217c71c7e6820b4e5536a5cc46db35ef69e83dd5e7b0ddd57038b66f8405d5a24afd21253ca34f7a8d174a26b4a67607048caf4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + datetime2-usorbian = { + revision = 52375; + shortdesc = "Upper Sorbian language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "bae799fc523f01f7c70c7818ced0294bbb57a849567e05768c4f1c3f9cbe241755ac2dbda0a9ce0e3bb3f70eec45bae1c0607410302b458370a4c05951d791cf"; + sha512.doc = "bacc067e851e4b58b2978472551cf869cc9d3d4412ba930b2ab81f39c4fa9ca352188b6a6bffc5b5dc4a6bcf611146b3d1344d221732a7caaf45f95bb67d5589"; + sha512.source = "dcc7b42ec9873ef0d23026d07165301deda63b829462ab7f4074ae7c828945bc5cff2e2dba372782e250175b596b1be536dd27271e4b2f0913f42fb1a17ff320"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + datetime2-welsh = { + revision = 52553; + shortdesc = "Welsh language module for the datetime2 package"; + stripPrefix = 0; + sha512.run = "2c3b56f2e2796840fec8a60b4f75800743a4d71128cb900ed7419a7a01acd306a9ef86c2b1587e661833f8de48ef89e22c11589af21c9abfa2cedbf709c4c340"; + sha512.doc = "7abb3d603eb94f99c1fc49e53ee28996d2a536d647b0940db20e5a9aa70eb10d7e00385300bfb3adbaf4f463db20c4277a8afbf0f174c449e402c02954c57243"; + sha512.source = "92b71dbc5a21f650de8e9ef42bab3e3cdae1f4f1a48b34db9b656d894edc678e79e27dfe8b2143d85dd69aebf6e1cc9156a9b72d632065a2d146084f7da0f12f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + dblfloatfix = { + revision = 28983; + shortdesc = "Fixes for twocolumn floats"; + stripPrefix = 0; + sha512.run = "05931528012077b92702926856b1e0d1aa6472188f9b1fbff74e5534a41a3260e53b82bcdd0684ff045aafaf4b427dab6d8e06fc7a5d11cb42a545949bc6bfc8"; + sha512.doc = "5790850d01d9f3734cb89146c23077bc852d84242352718ee655f1410ee84b77366bef133d8df49fd46ad976aa007fe2c4039a08035122f93e719c5f0f7563f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + dbshow = { + revision = 61634; + shortdesc = "A package to store and display data with custom filters, orders, and styles"; + stripPrefix = 0; + sha512.run = "339bd686c658c462c9da56018234c6a31e72a3def962798772bed17bd453efa94c5f8e2d72a2f033714eaabbde8b45bbeed07d302e311d65a27c37f8ef177a2f"; + sha512.doc = "4d4ff36d121b950d7569f4ae8e7fee7e0a4790f61e8d2b58c136644d0ce455e8b8f4c1857c8df68d2f230016e5ea28a35047234ee101b3f949d1598f4e15e52c"; + sha512.source = "189d3f8bd131bb3fb8bc7481215fa670001ec9bbe20a4d1ec99a9864005b44fe9fb582ad5462ef23f62ec538fe8d2dd9136cf79e94756c4b6e02d644e2d66a1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + dccpaper = { + revision = 67890; + shortdesc = "Typeset papers for the International Journal of Digital Curation"; + stripPrefix = 0; + sha512.run = "16a507603bffd0fd0e305c9e2d21927f0788dcff750ab276349919cc2e1036b41f57696e088ab5596bd714f890ea68ece629980dc613581d5c90f586f7e4117c"; + sha512.doc = "7793786d0c34ab72954fe189bbae96a388f61f789b845b42d7fb062bab3858643e8ee730d11a5d4209fb0d728220e7ea89bceb3684118978dd8119aedf167a89"; + sha512.source = "bf4bb7b3ed2cae28c3f3d15758a48fcea3e737872b27af3ded1cda51f5b1c84ac200116fa7019972c65aa2a4966885582956bdbb717b6b427ab42f2f7b7fb00a"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-40" + ]; + version = "2.4"; + }; + dcpic = { + revision = 30206; + shortdesc = "Commutative diagrams in a LaTeX and TeX documents"; + stripPrefix = 0; + sha512.run = "6cfae1fe50baa81ba778ee1b8cc76dd2d0e66e3cd4a868364857f2338b1078ac81178dbcea81d4edbe013726b7cb14700506f38e49eb528701bf784280ca7de8"; + sha512.doc = "25f768812f31cfc3e4d00717ed8d77392272f2480efe3311ecf5e922b18e1f5b6fa36892c7eb69cc077e350d5d7e55b7201673fc653c188ec8a76205f90b681c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.0.0"; + }; + ddphonism = { + revision = 52009; + shortdesc = "Dodecaphonic diagrams: twelve-tone matrices, clock diagrams, etc."; + stripPrefix = 0; + sha512.run = "9ccd7a8715af4a808a72d4dbc96a1216663c7eddb7a0fea48b77bbcb546a12d0e9de00928189b424e9db8e612778ed53231456d087a1eb83bca827852c9691c8"; + sha512.doc = "d75ead2518ae448eba251b3f43431751f415c9650e9ac023e1647fbfa828f700ef2fa3a19f53fdd6e28c9e8461e071fabb7c016aeaa62678ada20ed0b96017bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + de-macro = { + revision = 66746; + shortdesc = "Expand private macros in a document"; + sha512.run = "6847ee60de3e70db18f402744ce0edf926fa2ba1ccd64faaa9844aeca85809efdab740d99f1ddcaddb74fa54c70d0c2dc0a7e8d15575e574ce8d451e0b6248e4"; + sha512.doc = "21065d2ebaee0a2c82e5d41ae6a5ddb071623f9e405262de404557053c2f402f9166e7c3c939ec57e3d3a1842397143c16bfee9d219eb84ef613b74474538052"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.4.1"; + }; + de-macro.binfiles = [ "de-macro" ]; + debate = { + revision = 64846; + shortdesc = "Debates between reviewers"; + stripPrefix = 0; + deps = [ + "listings" + "listingsutf8" + "pdfcol" + "tcolorbox" + "xcolor" + "xkeyval" + ]; + sha512.run = "88f9ff3f473dfbd84509adfe4491d15b7c20229361afde9cbce382be0441378cd6bb7d306c9b0a424dc065f34ab2d86eca8a0334d00fd3a5bae513776c418815"; + sha512.doc = "ba5e90ecc8c1733cdb78233099cdc95e09d02786df11606b3f823f2b1b60934cd2881c873ad7afa192ee1b0ff5ad91121896cb30e7405ee3ae9bc960d26e7f9c"; + sha512.source = "b9c0b94eea82d7b684aa358788a5ee3cb9709738137827b7a4f70ddd0d02ad92b6feecf03d0de7dd08c1ab233f17db3c973cfafef98134be33a41d6a8d7c4da6"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2.1"; + }; + decimal = { + revision = 23374; + shortdesc = "LaTeX package for the English raised decimal point"; + stripPrefix = 0; + sha512.run = "9a0d0947eacd52800b3b2cbc36d6e866c1876bd5f929896825dc604d9d633cfb169d93de0f86b0e78e3274936bb47834c222ee54b3571bfcdc0fe81bb2821776"; + sha512.doc = "977fc97627bbdbf4d65844dcb7ce267cb2291b102b718ca36ba2fee881d5fcf359d6d0dae839d4e640200d3b8a31cba301d20560f5002344b8ea256266efc9e4"; + sha512.source = "a880091295229345290acf605feb833489976ed3b661b403c8effaabd07c48730ac958a4b48dd48d429a3f031413c1392f4006b820f04e3dde6b2035a948747e"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + decimalcomma = { + revision = 69251; + shortdesc = "Comma for decimal numbers"; + stripPrefix = 0; + sha512.run = "78d257b6a3b65c44e9cff04093896240c7a9401af04b028fa79bf29dc436a18d163049d34a9a7c92c193ce07085aa877e69399f79da22696da800f72de20eb37"; + sha512.doc = "21f1a61e45fe9d83f4ca7d01375c832b230485035f39277e18a3062da98f7d0bc63aa1703258c7fbbb6330dfde15153ed9bab60afe62db9bca4250033a12fb0d"; + sha512.source = "56906bcdf0d1ed82de86cb39994682705b5e19504a97d2deabf34ccba239c499ca3b613e013c04c2726155b49a7971b9ad450d248acbeb5bddcdf4c4c7e8d687"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + decision-table = { + revision = 60673; + shortdesc = "An easy way to create Decision Model and Notation decision tables"; + stripPrefix = 0; + sha512.run = "8a0bbe49c3ef76a7a60fff1778bfc06c2e11521e028bfcb190c85e8a38932bb1f2a97c26293a2965ee8d2e4e6d2cdda54dd2954881ac9b1b8e2506529af1ec97"; + sha512.doc = "d5b9301a4308a4e2709b4c82a621fbea2af0cbd767252446f698f269b3ef131502d3db3aaec6d192642b154b546124326280ca4c1331dce64b36517db51c3bc4"; + sha512.source = "c24db9cf19bf41d714d643d2be4bad5e339ba8f57175186793db0ae03b941ddfcc3584061ec4ef2aa2de550103346381d31c19a054d428210b35ef083866ba28"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.4"; + }; + decorule = { + revision = 55230; + shortdesc = "Decorative swelled rule using font character"; + stripPrefix = 0; + sha512.run = "783f09b3810616b14f04dace838ed1ed2faf32ea4df84dd0973df375928e16fb129ddf6429fc54560a317da0a9422630becc92543e1a1da76809c4962c423fc7"; + sha512.doc = "0c13e2ff2744ca2d0e32446a85cbec06d832ce1fc8af5a719f3c73ed59e1a85461d5f51d33fe5a51a89b209f80196ad52609e83adbf7cc41336f5bfae8c4389f"; + sha512.source = "84ab7801ab7b0772ffa3520a42e132007e05152e206072fc1ebb43d8d9675ac4929ad1abb30d8111db7d825f05d37b038ecc923267c5095ed62a34cf3955dc20"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + defoldfonts = { + revision = 68234; + shortdesc = "Define old font commands"; + stripPrefix = 0; + sha512.run = "f6823da220c00ffd688d0b25d06109f0f3a7ab606d535631d9197a26b02388b11e4dedf41829c94ca4a414cbc1cee81c425d006e7567116b243272fa8d8659fd"; + sha512.doc = "d799609d039e98e2b737fcff5bef277359818838a8cc1489dab934d6b890ce480b7d6e935a84562662e8f130873d1a2dc777e08b229b7d5c0b431b8fde5d6978"; + sha512.source = "5bc0c27101fac6b15e8e792bb4436c4f5ada6684bdcc254eae8466ef07ed7896957544186c09ab43d8ed278efcf44f07c40c9ce5c194fff081bd46a6e628704c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + dehyph = { + revision = 48599; + shortdesc = "German hyphenation patterns for traditional orthography"; + stripPrefix = 0; + sha512.run = "2dc4ee5b4389549c032f3a4d87740ab3c5e296a1ef109a6b673656a82ca4c317ca774f39f61417568b8ccbeac787c4058184fc893d53799bbf0b042ba5aca9a2"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + dehyph-exptl = { + revision = 70496; + shortdesc = "Experimental hyphenation patterns for the German language"; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "german-x-2023-03-06"; + synonyms = [ "german-x-latest" ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "dehypht-x-2023-03-06.tex"; + file_patterns = "hyph-de-1901.pat.txt"; + file_exceptions = ""; + } + { + name = "ngerman-x-2023-03-06"; + synonyms = [ "ngerman-x-latest" ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "dehyphn-x-2023-03-06.tex"; + file_patterns = "hyph-de-1996.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "3bf6178cdff605d289bd5b035416953b26911b636786340fb08eeedebc8a0a6ab45712547f6b6eb312751514216aadf36357b344e38fb3bf1dac84bdd6fe97a7"; + sha512.doc = "3e41d2581f5b96afbea332529ee3d9523d935fec0e517a1a39ce04a405328241cc3bff97a00af3ac363a2a413c4dd70c9e38102d1ecd65ab8aae994abc46e4ca"; + hasRunfiles = true; + license = [ + "mit" + "lppl13c" + ]; + version = "1.0"; + }; + dejavu = { + revision = 31771; + shortdesc = "LaTeX support for the DejaVu fonts"; + stripPrefix = 0; + fontMaps = [ "Map dejavu-type1.map" ]; + sha512.run = "a26a57bd02b14c6e67d328c2c00174730b819f7da37ac147ec7f34f37195b6aa17e3223ac4d03617f5239700b1dfa45ca1741eed7b4488d2e604f02ac34ef2a3"; + sha512.doc = "7e3364a3e0863c63f2a66057780fa922cb53f4da2f81e42ce9e200d5a034854216f4d4b833756a6d4d6837385e48aa8d03f608846f2f95caa84a7ebffe3257b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.34"; + }; + dejavu-otf = { + revision = 45991; + shortdesc = "Support for the ttf and otf DejaVu fonts"; + stripPrefix = 0; + sha512.run = "d0d32f3c9d53a1a61e6e717a6275f3fc934c0815fddc3b36fe2afbf7702e5128d4cf15e8cdfe8b02009a6fb7c203ea42b134eeeb080b9765ff99c4143f887744"; + sha512.doc = "212663371f747b03694327a40de3bec0be8efd5cda15c0cc343284f3a427890e8d16c4223098fc16a260b837a9d522c9cd35876a4c1004e09ee9ee29c05ec7b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + delim = { + revision = 23974; + shortdesc = "Simplify typesetting mathematical delimiters"; + stripPrefix = 0; + sha512.run = "c18dc230c5bac8db3d66f062402392761467ad18f48a65930a960c0772be30a7ed729a50657b12f533d72086563a67a98e8f5ce7afdc9947b52146e76e22b157"; + sha512.doc = "c343842bcc03981c1814f5cffa2ba3eacc2e6abb5673ba700859406869a2398518e9abf02e159f4d92bf91383c3a6cdaa9f5720adaec81715fa30f4b8f36ff9d"; + sha512.source = "8ff42847f918ab8d65eca86ee8daadd14ee138f984e06e1c4d66704ab4b6c53c1271b23aeb33003f9a7489e22e29850711efce99459f10764150742854570034"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + delimseasy = { + revision = 39589; + shortdesc = "Delimiter commands that are easy to use and resize"; + stripPrefix = 0; + sha512.run = "7f9b1d77e9b9bdc6e5c45ed3c38606fb0d65113f7303e03f591c1b84aa83748d72fb8ecde0cd0c7b19d1bc9fcb454834e156429fd9080660aec77ddfd7b53e42"; + sha512.doc = "bc9c1ff757a9d98ff9b84993cedb62ee024d0f4aafee301db0d862be3d45c76d8d164d2d3099ae37d41017316282db1e7882330dd10de43a9539ba0b10e86b08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + delimset = { + revision = 49544; + shortdesc = "Typeset and declare sets of delimiters with convenient size control"; + stripPrefix = 0; + sha512.run = "5c19bda2a87de91ac1d32981198ce7718d490184d4d65dade231b66c3f46621af91dbeb89bb79ba1370fd82a0527d01d0aa7cd9dddeea818e8c4b4380a7b63ed"; + sha512.doc = "9e671fa601b878187b5b3ae1a47feffb6c451fd42f202f948a87b02f35385b47239947a3e91260e699c64c453df161d9ae734fa3a8e241b0e47056181fefc46c"; + sha512.source = "d5618af6db29684ddd58164c9f55fbee73417d6968550361d7277558de98e621e2d1233b593c87860ccd8f7beb66a3c2369518736e14c86472d77425d6499869"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + delimtxt = { + revision = 16549; + shortdesc = "Read and parse text tables"; + stripPrefix = 0; + sha512.run = "25332ff7d2602047938630668c849829844fcbd622f911542bccd59d2eb1293e406cc79aca08ac3acaa98828b4a6fa4da98feb08fdf678ad3863c70cc2fc1817"; + sha512.doc = "cd9363d8d44309c2ca51431bae067d87c790180eb884888144cd089cc9c14f83e1e7ea2389650d547e47d4575755a5b6b369e82b76cc19150b1dc973e99109fe"; + sha512.source = "487557d866b99ec0fed6d9bf18c4bdaffa4ad6a8294cd2e9c681a4f65fbba051a97577b82e7170464daf4eb9f154e66478f46512331e1f4f41b48e61d65a86a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + democodetools = { + revision = 64314; + shortdesc = "Package for LaTeX code documentation"; + stripPrefix = 0; + sha512.run = "f1c15d50ff6078ecfb012e5235736785aaed4cb59ebb8f4d54c06865d5299b7b32ab436b79671d68c8557b12de65cb50f162424affb7a91aefd4fe4dfefae04f"; + sha512.doc = "ac49187b57e75bcad5d70960711b5a34162a7c97b237a1fed19d08089f3b7abdd7db9ea24368b8f0f2e9e4124c5f8832ea0570d8f37e002d00ec7007c784386c"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.0.1beta"; + }; + denisbdoc = { + revision = 70611; + shortdesc = "A personal dirty package for documenting packages"; + stripPrefix = 0; + sha512.run = "ffae3c7f741d9a6c53ad3681d929d26d1ac7679477cb66d3bb3e7cb4bb81966137aa191810526b322f13c52aac31111ee4fc4bebdc49f8be78b40b26bb4f3e6e"; + sha512.doc = "1bd19497dd7fcbc7df9416a43e09dd68a825fcff6411f81b9a19b100915296f094898a8b746ff7dce263a7facf5b776c08d93e4d70052b26e180a58079e62cf5"; + sha512.source = "437387ebdf81424660fb88dbd758720ce709b1c771a979b83b462f08fe923b393cd6235f373aa20c91aca43e1cff850e19c6abb8dc34cfbcd42902fadd479754"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.5"; + }; + derivative = { + revision = 69746; + shortdesc = "Nice and easy derivatives"; + stripPrefix = 0; + sha512.run = "a936429cc5b9933deaa349121fed565fd46e2d81f8d5a5be3b282f3a5107c13e2ff29e159759c10dad12bda9d5fefc5177fbba636dac0dd31aedb0074cb5ea3f"; + sha512.doc = "8951a888d07fa9136a71c0b0fb25b7f3925e137100460fb41cae0766c56cbbadad6b58e0afd690a608306032f5c2d95c6d4bc8f07651a1354b184fc28b9fd2b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + detex = { + revision = 66186; + shortdesc = "Strip TeX from a source file"; + sha512.run = "e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1"; + sha512.doc = "3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5"; + hasManpages = true; + license = [ "free" ]; + }; + detex.binfiles = [ "detex" ]; + dhua = { + revision = 24035; + shortdesc = "German abbreviations using thin space"; + stripPrefix = 0; + sha512.run = "c6e6187bdfc80cec3ce092a4dd3605055f3ad67ff49777bf0948af128c8b48118247ed9ca6f5feb1a69d32719f81968d8259794082a28277796eb6beccf9cedb"; + sha512.doc = "a2f9f61ed61c5476d5f70fdfe59a451e7b3cafd3412336c5767b53b0157416149ee9ae924834f8a05beaedabb9e4a8dd3e4dbcb2f17b733af113c0a8085e363c"; + sha512.source = "ff72f267dcbd05830664f9ebc328fa1b6b80eb579627c5ae78965b47b8b8605ddf33c6b6a9b343774b2944d985afc9a9816924f23e8e7ec9fbc807f00bddb143"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + diabetes-logbook = { + revision = 54810; + shortdesc = "A logbook for people with type one diabetes"; + stripPrefix = 0; + sha512.run = "427912b3eeac373ba82f99b30a6ccf360b285a119248e9dd2aa175cfb7f2538327331d9e8eab7ff62cfd987466352c08016313f51b8651c4b42484fb6f089bda"; + sha512.doc = "3a8c1c45b24d23ff236ca2d8bba6ff6d9ad055a688b5621a660cefbdff4e1407d71d96420cfa39dbb896f8035e6d5a2bf3f33fc2e80074527c9a41fcab72f976"; + hasRunfiles = true; + license = [ "free" ]; + }; + diadia = { + revision = 37656; + shortdesc = "Package to keep a diabetes diary"; + sha512.run = "55a246d4e3ab86d6300210d830ce464a935bb83c9ffd29b5387f0a56f5c82d4c5a71cf107f78ffe0cde07f17897e2f949acf1fe70da9da7c7992b330a07b1c68"; + sha512.doc = "e7487bb47fbe8aee714304150c00866780782a9ad32bf6ccbb02799aeb251345ce1cf042e8b4d7b4011083a3be2fe3b16b78f25a4a4206d173ac1384716592ab"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "1.1"; + }; + diadia.binfiles = [ "diadia" ]; + diagbox = { + revision = 54080; + shortdesc = "Table heads with diagonal lines"; + stripPrefix = 0; + sha512.run = "34d2530343877efebe9ee53027253ddce0e59df3cd70900bf0f040905f34a8ad9d41328aa3c6ecbb622f7731f3bc9c4fce289caa58e2c1db46a6ec1bafefe6ca"; + sha512.doc = "96310db4878e417f09e6202e5ca86f29524af5c1292ad8fed2563f1872e094be1249c4753eac5129c68492a5fe9ea87857783e2ca9af1ab77dfd1ca9b3309b2f"; + sha512.source = "65ac012205c309099ca2f1a23f6446abb434a1a9c66a36d75d15021eead74feeb70c21024386fc11b223386100404b35a0ec3571d24aeec13b5513e60b11b3c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + diagmac2 = { + revision = 15878; + shortdesc = "Diagram macros, using pict2e"; + stripPrefix = 0; + sha512.run = "553d3610ef7bba5bf669040cfe6b51b26718b9f04835413d43c3f8a018a8a37274b445bbdbaa4a512aaefc8327f6a2c7abd8d754b3d8cbd4687c9c518265ad09"; + sha512.doc = "37952cbaa4c20180a2d09455c748b245927245c40093510a79fa0461e5836197d8bc05bdc3cf5c7bafa72c54cb503fa9722d7a8ff9a0630ad1b5e8382b4029d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + diagnose = { + revision = 19387; + shortdesc = "A diagnostic tool for a TeX installation"; + stripPrefix = 0; + sha512.run = "91fd8eb4b7d896f27c15c2b3b2a0a9bc839bb736a1fa053d47896c6b989729c3dc3a644ad59f6b3bd4164c150034f6ede5d52b680fb1c8cea6838dc70713f654"; + sha512.doc = "f3e7152e656ee4c5f6ac28205b1dd5e9c0cf19c3d9400e2c40c8d8e9fecbcbc01cb1f7a36534849b6ba26f222f9547e3d669114a7d8923645528b7150cd10de4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2"; + }; + dialogl = { + revision = 28946; + shortdesc = "Macros for constructing interactive LaTeX scripts"; + stripPrefix = 0; + sha512.run = "68fb25b66499e289c7615fda04fec859d2a3a6105ecb3bc69ecd0e5af8f87027e74170495fa587f21767028d9f423cf04e3d11768ea0581a7474e9a66d62882a"; + sha512.doc = "cc1fa10345fa089cd86ea4b0a638334c55c6a57cac3a9c549469cd52cff27b8eb3d349ce14d49de14fbb65f41d1887bf98e9c69081688703d8eef06e6324f684"; + sha512.source = "0a39faa751021dbfe7638f139e50689201f93d4490339af70b4ddd42a77cec252cffe7a18a5ddce43ce8dde7f9645dd088fbe9c6cbdc4efefa65280f70c54d23"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dice = { + revision = 28501; + shortdesc = "A font for die faces"; + stripPrefix = 0; + sha512.run = "7ec762fccc174a13f2a84ee43aa49319548aa970f017cd17bca73add506ca270a6ac621f51ff96d47a4f5eadeafc89ecc44f1c99b31a2e76722e648519e1fd69"; + sha512.doc = "9c09c47b70e28e4c8ccffd4c75f8cac7942767279d0e01e543538ddf0ee70fe60cd15d1e3ddce27b56e1a9f865d5ad9b1794a875e41d131d763c11a3e0fb96ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dichokey = { + revision = 17192; + shortdesc = "Construct dichotomous identification keys"; + stripPrefix = 0; + sha512.run = "8ed4f0010546af68390f93642cab4495226387fd7461383e32fd3dfa72867050d0da05ba90cb768c6893afeac9bfe55d23b7299ef4a76432e8d11252012b47a4"; + sha512.doc = "16a75d20463a0b0b508c2d50aa67a77999cab525e003704ab34663d1f0212c39432caab0e4df1c69b540be014bc86901031c7c8f647ff18ceda77dcef7239233"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + dickimaw = { + revision = 32925; + shortdesc = "Books and tutorials from the \"Dickimaw LaTeX Series\""; + stripPrefix = 0; + sha512.run = "8e478160699ca5dd9c52ea7e6b0a7be491d0af44b3022c22797b02b9e6ba6ef67ce9dc35649d9a2ebb9b123e3fbcc02c0602271bd8049a12c4520a32a15d4ef3"; + sha512.doc = "5ebe8605d1a4ebeb11896919c39aa736220e9ca247912b5655dbcadf03bfa45b4cdfe44ee6555bf8d5ecdaf63b0d2527d3d58ee6d7056a194a6a42f88ab0aa41"; + license = [ "fdl13Only" ]; + }; + dictsym = { + revision = 69720; + shortdesc = "DictSym font and macro package"; + stripPrefix = 0; + fontMaps = [ "Map dictsym.map" ]; + sha512.run = "1f1c145c9231616b8fd603604b252903938ced0d0a85f4ce2bf6775f123d47a153d0f1231fc78e965da56befd94b71901c5ae441253d0266fc984d47e9b113b3"; + sha512.doc = "787f3d06b1239c95022c8dd64f07d98cca654250f9846e70f2e7571def724b0e316d66d60289ebbcef204088d6f603d7702af36b985cc640a4f963adb7d347aa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + didec = { + revision = 70237; + shortdesc = "Fixed-point arithmetic with two decimal places"; + stripPrefix = 0; + sha512.run = "ed59a87d35b2ace9bf525634d1993400348a114669c9a358aa18836a152c5d973584a10f9514014336ca0a90a2050abd5cbf69d305cbae547d644f17c0873d64"; + sha512.doc = "a6a46f0b9e57e3e3e124ec719026e75516722d32d9b0e29d49a736b57123c7d916551a5ddc26a60d972932a2134a236efce0147d13ce645ba5c198bee574ff39"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + diffcoeff = { + revision = 68838; + shortdesc = "Write differential coefficients easily and consistently"; + stripPrefix = 0; + sha512.run = "a40e95018d471504d5d0cfa2d6ed3c43bb7d4a749a97200b2ed682905d6b448cbb51b80d27d772673b747fdfa3c9b02515ffb32ee9e44efc67445bc4c8cba3ba"; + sha512.doc = "65646cb4ad22f5755be51c5c8e1ff907803d9d3817b76da8146d81b7b42ea4c9af07710d55d861795a2e7f25f0adbf4f0c55bdce208a563c3ad34d32992c17ec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.4"; + }; + digestif = { + revision = 65223; + shortdesc = "Editor plugin for LaTeX, ConTeXt etc."; + sha512.run = "098d625749cee42f965d21ef5ec2843211db36fd0f4cced882ed15f32a20a2d70bf292b01e6797e7ca097adfadf2fd40d3c5eef6c694da39e8302770cfb784d3"; + sha512.doc = "fabc6d0ea5a1e55b7ecd6430b2373c15e413c985485331bd7bd5bca437947a76ac7d8ac6ed2ea3d6afe687284aef673b0e302a1c9925737c6e1d95cecf2ea8cb"; + hasRunfiles = true; + scriptExts = [ "texlua" ]; + license = [ + "gpl3Plus" + "lppl13c" + "fdl13Only" + ]; + version = "0.5.1"; + }; + digestif.binfiles = [ "digestif" ]; + digiconfigs = { + revision = 15878; + shortdesc = "Writing \"configurations\""; + stripPrefix = 0; + sha512.run = "a1d5cf0e93aa2722087a491d49c87c1b6c1dc863a39807f28dca198d4c52d8add42706f992ee91b6a42fdbf379293a2aaf3a21199094526c545f41002e8992d3"; + sha512.doc = "95e948491a51321671b15aab55dddd7c6b8bad78bc67bcc25db0970dc478d1bba898fc2efe44537a18d46f3fcc73bd2af600c4a74af4982e8de8a5fc0345a134"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + dijkstra = { + revision = 64580; + shortdesc = "Dijkstra algorithm for LaTeX"; + stripPrefix = 0; + sha512.run = "5662fff484dc88098c2bd22784aa95c4d990c5a725eedabaa1f542c53671783fc89ea1a4d6f7450483dcdb2cc8ce758a8a26c40d7ad27b93d7e3eef4d31d2ebc"; + sha512.doc = "474f8fedec9daf17363773a200b81ba57f57175b1c52de5b7a7c8f7395996725284056ddf4a9e3e68baa1197dce84ed2767795956a403946f530492b6713b8d3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13"; + }; + dimnum = { + revision = 58774; + shortdesc = "Commands for dimensionless numbers"; + stripPrefix = 0; + sha512.run = "636543ee5f2e027ec242d59ab8af28e8aa6f35d3e91480e4812a72df3c1636fdfeed2cf472c79b29fae5ed65224da4ca4a0bf5040e2a4360b73fc5f4cec85bb0"; + sha512.doc = "a00eb3157b84a22afeb66c6f918fb434bb2a183afba110340b93cdb7dc33152f4b9472da134f999f36057b7ddc221a2a78bbaac5fa0509e452c4d8d6e96ebcf3"; + sha512.source = "2d729252a866edd8039c2d09b8ebc92c28aad4b0863777460c69075d7c4e1065ad515937e13f2de5b0578a89c4693cc508dccf002823e5591a6960c6d2752456"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + din1505 = { + revision = 19441; + shortdesc = "Bibliography styles for German texts"; + stripPrefix = 0; + sha512.run = "cb9b819eb69ce4870dd36da844b1d24e4f678ad05f43eabbe861e9de5b53258e45e70530ca76c0aa9fcf54232e8f33dc55623f94c1d9e5fc3dfc48481093c3cc"; + sha512.doc = "4479f5ea1e1ade4bc7951d5722e397a688e75293da55ec57dd0f3d32add2bd551844da81336be0a77cc783e4c9af958be46501c4b78adbbf8a5463770b5cbb2c"; + hasRunfiles = true; + license = [ "free" ]; + }; + dinat = { + revision = 15878; + shortdesc = "Bibliography style for German texts"; + stripPrefix = 0; + sha512.run = "0b22f43a5088f669820674b46af72e66f3f2714a36052bc7d18c334b202d0060fd07b1a608626adf183314d2380fad672baf58307ed83aaa888231e75c63b1c8"; + sha512.doc = "f4491ab35e2ae8003faa8220e88c0abd2d970cc6b985d2baf993effd2ebe94a964ae8ece6db70a55f922abc83c91cce5f598ac2e722b5eb7e1584aee436e4393"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.5"; + }; + dinbrief = { + revision = 15878; + shortdesc = "German letter DIN style"; + stripPrefix = 0; + sha512.run = "0c2679265417acb042f81300895be7dc7d6b8d8f0bfa2ff8853b9c1adbb6bae78598c7eb4b7c2c91a9f95959ff7a7945f846e1f262f923d741e6fc77458be9f0"; + sha512.doc = "5182bf0761a484e89331ced44d05f82da097cb7be010333ad3eea1b987119af3f3e2a3cd8ac2c4b2b6149a09a5789325edee49205fdfe52d2960c12edacad0af"; + sha512.source = "0f81c2cea6799ccd39039b3fc9c45ab38b2041d0eef6efad245cae9fdfc17a7f967c24509b241fd19870170b4028ebed40db25884556bdf74e0ce2fef1a6e1ec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dingbat = { + revision = 27918; + shortdesc = "Two dingbat symbol fonts"; + stripPrefix = 0; + sha512.run = "d6bdfc62eff8816e03eaea41ffbabf2d3af7194edbb2f9073c8d8b3d333c75f0b587a74556b916efb40afe41c88a8029f0dd764d7dc5894aa50e66e06fccb77a"; + sha512.doc = "993ef5169759d86641e2a3185064f94df858d81d9b7ba4b0516b22abc51eab887b5d02ca487ad85b007e7ee3117563a257d80b803a361ea1d32857921e794b9f"; + sha512.source = "01e935a99ff83496cd1e5c9e297d316f879fa8e54808c33a2daa54c78e1afc5048d3fabbf93450d15d6fed09eb59389348da266c751782cf017f383a97214d2a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + directory = { + revision = 15878; + shortdesc = "An address book using BibTeX"; + stripPrefix = 0; + sha512.run = "c07947f06fb08da461391cf6101a7a2e55875179c5d19b41007b0d11ff1881623e353b813dcca1da1f09e55beb80bf412f85ea6c9f7e3dd6e52a875770a5ffdd"; + sha512.doc = "24bf3fe447363c20e4ace4fb326c329a244aaeaafbf6f596ec91a3975e7cba86a2d711f9a5f10c2a70d72d74bc08dd2540e5139b4c4b525103e867a9d8e62bf9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.20"; + }; + dirtree = { + revision = 42428; + shortdesc = "Display trees in the style of windows explorer"; + stripPrefix = 0; + sha512.run = "5faecc2a6d79ae79929481c283b01e69df482267635957c5eb11c264d924ce299021d95baaf8cf6f9cb10e57f5fe14820c6b3506021b4d0213494bdeff5746a2"; + sha512.doc = "9edfb6fbcf4278c2b24599b58e10f64918d901bdd19dc0e9e8c8bd77756f2f3ba5dc13e31fefd2bd5f1467a0fb0dc0e765fe4e0515781103bdb1b81f687def7b"; + sha512.source = "4939918ace772a76142674410f9a1e91c698e02c113517385814346399cc94e031384905dc2719d717ac1dc65ff04d1d5a7049408ec55e20b4c0000f4b8a7049"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.32"; + }; + dirtytalk = { + revision = 20520; + shortdesc = "A package to typeset quotations easier"; + stripPrefix = 0; + sha512.run = "d5cf28f17a68cd064a290769aff11e656debe87ff0c04e61d4dd4fe87d285daab6dab9516b80b33b03680d50c420a4f3a9858ed5d2d3d5c96fa7fbf9989d29d6"; + sha512.doc = "8cdbdbfca4bdc58a560703b6406c98334ea0b5d9920cbc98ea0fdb7b56c9f1d48844167201829cef83fa84f0e21530baf2fcf4a3f8f8b5e44c5e792864ebf94f"; + sha512.source = "448c9b5765cb054981e306b795f7747e6e5a9219f00a4698d6f5ee36ebc56c80a1adc857212b3baa1a065b9a8f585f9938e2d20d8f6d30f8d17aff9fc80b11c4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + disser = { + revision = 43417; + shortdesc = "Class and templates for typesetting dissertations in Russian"; + stripPrefix = 0; + sha512.run = "98c497bd8d422cacf639cb38ff3a489b5fcda3f92cb5a734287fc930666867eb0e9e6f6014ad42df527d3999eb5a87da28d7178b47cc53eb44a338567f952ca4"; + sha512.doc = "ed0c04c0afccd7f9f68bb8f65a6497b9cbfb2bbcb5333852da7b790083e71ceec8348f6893f1e0f16bef7e4b5ca0b9d1a58ca46898dc58a02f0324a62971b916"; + sha512.source = "9a9770eea5ab44b2265cb191bd113be4e98038a0ba8f3c92ffb837791cf59447c82caf63d50af6bace698a3b5b8a2bc25f427add6cefb436a6377df4816524b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.0"; + }; + ditaa = { + revision = 48932; + shortdesc = "Use ditaa diagrams within LaTeX documents"; + stripPrefix = 0; + sha512.run = "1aa2fab8150212ae8dbda9d0138a4c396f47256f93582ed38d9449f9440daba9e07dc0be397c49981e2d1813b7e41d2002fb7ff914382606f417f2738a8d2735"; + sha512.doc = "345d6d7d3f21d2dc728b93e2cbfeb4fc1f589797e852604809b1ff3e7bca53414d684571faf8245c740a50205e7d8787afd5304beb89efd3545a389ec4a74331"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + dithesis = { + revision = 34295; + shortdesc = "A class for undergraduate theses at the University of Athens"; + stripPrefix = 0; + sha512.run = "b11165408ccd30427390e9f409e8f561122d1a2dbe821ce90687df9feb2faef692d8ccd75fd8372b975a06e3f11bca0ba6e873d59b30aabfa95015ca35e557a8"; + sha512.doc = "25058b262f803fbbf3c41fa62ae8983ade351fc7bb65be7d886a4300390f836ef5d1240e59571839b407afa2ddb363e6c31e76e36c160ed3fe0c6d0e0ef71fbf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + dk-bib = { + revision = 15878; + shortdesc = "Danish variants of standard BibTeX styles"; + stripPrefix = 0; + sha512.run = "9de9e026b9e3de53b297d7925bd0e4e9ab08562e798a8f1b9e6988ecb891067534a741aefbbb81f1c53d7ae6b6cd0e0796d8c0690c5af661e76a5c6d9ea876df"; + sha512.doc = "258d8413d860f6a30c597c10b8c25f352166f8bc39cf23714a137e46f4748ba716dcae8eb8b6e17378f6a850ae64a68a9f331c8301c938f0a8042d967b3e62b3"; + sha512.source = "ddb3927504b35d025c339bfd1c072e9ef770a159f046bf86220ea675df481e5b781026ed6395a776f27518ffedef83b7c5f95be30f1be49747a76bb2e2280817"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.6"; + }; + dlfltxb = { + revision = 17337; + shortdesc = "Macros related to \"Introdktion til LaTeX\""; + stripPrefix = 0; + sha512.run = "d1d7bd6a855d131324fee30bcb920e0dfa6ba733a1d52f94c59e8f328b533d63444b5ce7e5fca9dcc7f21833a9cef84460106aab0a578fd17974c0e348f1ee07"; + sha512.doc = "171d6661ca71533fb869832be2bf6f7d26244bb5735fb884b5b1ce7c27d291b3e9518a902d6c7565d94d2c55c37b00564184bc5851824a00b5a71963a577128f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dnaseq = { + revision = 17194; + shortdesc = "Format DNA base sequences"; + stripPrefix = 0; + sha512.run = "b4a83c42e16aa734611dd8295aa033904828ac1825ccdd41f297586c0667ebec4a43606740fde56bd01f58ffee1b1f4afa647ce196ed042a5dfdb641f0ee2d7d"; + sha512.doc = "089352ea3210231ad158ecb0bc17d5ba0a9efe49ee4c609554f08dceff9ef534185a7f9f17526910d3b602c4c6c358f211fec4cfe27bd6df61555bce4f9d795f"; + sha512.source = "f4357ef3a23d8b1c7ca3168441ddda57fe725c4c17022807464e61035b89a8a8334684144d86f3d6ff0f3955c1c928903b80a61e6b1792cab633d6dab51d44df"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + dnp = { + revision = 54074; + shortdesc = "subfont numbers for DNP font encoding"; + stripPrefix = 0; + sha512.run = "27a4c150b3b5e3fa23e0df55289154d44e3eaa55330544e426cdd3126f8ce0308abcc17fa5a011e12d83460616cad039cc483f08d7254b64d4dae933db6273d9"; + hasRunfiles = true; + }; + doc-pictex = { + revision = 24927; + shortdesc = "A summary list of PicTeX documentation"; + stripPrefix = 0; + sha512.run = "c866f0855f701917fa81966c16a7f1c869320ddaf38e2c1c2a71844fa7b224fe2216f267b7b700ef6e36a13f97fa6f33a1d05342d5a7a8dd47ccda761fc577f4"; + sha512.doc = "3440fd4d0e2117594d6b350dcfed891506ce7fc0500ecdd4f156431363a38e399061469f5def9082d59c39b14b65ebc19ccb3204fef71ade300825cf35659158"; + license = [ "free" ]; + }; + docbytex = { + revision = 34294; + shortdesc = "Creating documentation from source code"; + stripPrefix = 0; + sha512.run = "0b212fe2131eb4070e08efad7f1e0745d0538b2173b274a41c113ae6dfce46d7d1fc8ebd22f16b3a956570865df9cad668866fc2038687ad6c0b7b72e76a79d8"; + sha512.doc = "0daa32aa23ca248dce228b8029cb19c6d4509114094d46efdcc45b52d6593176c44da88040b37d83054ec286c4b79727ea4ab2cf07c4522e5f597750d85118fd"; + hasRunfiles = true; + license = [ "free" ]; + }; + doclicense = { + revision = 68441; + shortdesc = "Support for putting documents under a license"; + stripPrefix = 0; + sha512.run = "f312fe38842267c1a35ab506354717a0ffc3d4b2684769965b7b94ca5fd6b137d0b13fdc98943b1fe0f635bd673c331ccc53faf5667b75d1192d786972008dc3"; + sha512.doc = "162af038ac645790412ea0e07771c39bbc3706ee3ccd6b8a496b166e7ef51e7802a225b00f1cceb0bdb0c8661ab51a79d4eb40a52c0348f1565fc83dc7efed9f"; + sha512.source = "2002418b83eb7117195e60a6f0211a395febe6455b210068db7fe1d99738820ba111e14fd6f61bf53020a78ce1bb7d0bd12b57294cf5081d37d5002dcf641253"; + hasRunfiles = true; + license = [ + "cc0" + "lppl13c" + ]; + version = "3.3.0"; + }; + docmfp = { + revision = 15878; + shortdesc = "Document non-LaTeX code"; + stripPrefix = 0; + sha512.run = "55f68d7affd8d82631eb0e67c6232330bdff97ea908259a5e14255058d88f9f745afe55bd4a15eb91bff959b7cfc31835fa22196d3d0edcafa40da521b3105b6"; + sha512.doc = "fc3721046105ae78b19b61a45fd01570873842c6786a096575efae282e4fc884f5f5dfd5ea6888a25ddc82077340bf0ede4a36977cd33d2b555ccfc3d0ff2c02"; + sha512.source = "90c38a698f428980635ab3a826f35adb65a1f9b2a2dd385da8ff41ffba01870c071b7ce100dea1142d85ca216a68a0170aa8fdf92feb80a8ae055899f6b05633"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2d"; + }; + docmute = { + revision = 25741; + shortdesc = "Input files ignoring LaTeX preamble, etc"; + stripPrefix = 0; + sha512.run = "5c01f4e6922b7a23e753edf9110ae7f1386a4d6ca719ac898b058068a754a6c3bb123f918bdb1087baf5efd1176545f543ab8b93bcb6c9529c9000ad6a3b1e97"; + sha512.doc = "8207eade8841747201656a7e6edc789926a9dd411946a860e4d865fed618392bb9159245f7162adb4a58c88d00191d83f2daef49f610c3d8e5e231ad7f1fcb7e"; + sha512.source = "1809026635be9610b39f5f428dfeb2c323b4588dbc6306a50e00f092910fd449921a2cd797fdbf3408442b9f24cfeaf7c69e75db9bd217dce975eee2f1a4b930"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + docshots = { + revision = 69676; + shortdesc = "TeX samples next to their PDF snapshots"; + stripPrefix = 0; + deps = [ + "fancyvrb" + "iexec" + "pdfcrop" + "pgf" + "pgf-blur" + ]; + sha512.run = "55d866be055e8ef97014bae75355f9a3de111527d96475b604154566b5d92b74788c1f6d250b3f58bb35e9133bef5d923b1aba309704375fe19d85559600b23c"; + sha512.doc = "aef2d08ba7bab13a3ee496409601aa3cdb20612daa6866521bc70952032386f45fc64223ad5a2f188055053f372a0d70a21ea111901230f6dcb53f210a9c50ca"; + sha512.source = "ddf9a609829d07da413738be5b22454f8079d9e8985a7d8305ce1c00ae41625f7f145f3b806b996947b4836793193735df57da831d81dcf37ca61521f32cb464"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4.3"; + }; + docsurvey = { + revision = 70449; + shortdesc = "A survey of LaTeX documentation"; + stripPrefix = 0; + sha512.run = "ce94e7c797ec87694ab4df4ad3eba18586c0251d6cf4a5ef3d615062125a1cbd46ac2e9b7d822cfa07e44961d5354fec093cadbbd48cef403f9ac2c0ca665fed"; + sha512.doc = "4edd65ee2c7c910fc8bcfec3f33bc1f390ab1bb67bd06a84e84eea8421775b28c519615b23d2c25fe4524f79e8e295778fef6868d741f4484f42b1265d49eef0"; + license = [ "lppl13c" ]; + }; + doctools = { + revision = 34474; + shortdesc = "Tools for the documentation of LaTeX code"; + stripPrefix = 0; + sha512.run = "5c621b063d752fbcce773f2b209d358de1588e7c4edec017eb45a74c350e86932ac9c4e0662415ba7ad5bca8ca86d1255b15f4e5572ea949a5d6404b28f14025"; + sha512.doc = "a78cec3ce74e4689c848b49af7da035cc7c684730f78acd7a7f8d8f78194492e53880e7884eb00dd22d4bbca4f370aabe8175048503959f88023a12ee4f26598"; + sha512.source = "bf61b5c519ad73fa8187797367355c195ed2048d83cb4842862edca740f51d60bc421881da10c474d950485faf701631af6299033d2005f0d2aa8c6561625864"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + documentation = { + revision = 34521; + shortdesc = "Documentation support for C, Java and assembler code"; + stripPrefix = 0; + sha512.run = "330534f15cafffa56dc35e5b4de8caac66a87ccb0b834df5419a68a7cb136136263af14ef14ee7ecaf01fedb2803c2653dab7570ec2535ad1ca3033e1afd64e2"; + sha512.doc = "09854b00d86dd902c26c1b4f8cda942ea09796911939a20014b6d50d01b052e04007b55fe814877cb4515a6aa1f4ca1a7ebb39a6a6ac1bfc89b98d1f910329ee"; + sha512.source = "7e32523123407b913662fd7bbdedf5d3058e1e7e3592649b7afdd4d4df6bb704c7b1c3153fb0fdf3b8bea183259a64b8ab6ec17d74ee74ea086a56ef1dc90bc2"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.1"; + }; + docutils = { + revision = 56594; + shortdesc = "Helper commands and element definitions for Docutils LaTeX output"; + stripPrefix = 0; + sha512.run = "13a31f6925efd5cb0e0ccc632d7b8ff80e15a2e95399779ba33ee6e0f1d3c1a3f4a397dcb7fe33455471ec65e6fbb18d681349a43b24a083882c23aed5a0b036"; + sha512.doc = "1748ee0bfe61704d8174202dfaf6a674fd52ba154456f6aa18cf90b2248be90f12bdb36993cfc4a701a8aa3037614c2f86be93ac8528f3da3bce96a611cb5748"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + doi = { + revision = 48634; + shortdesc = "Create correct hyperlinks for DOI numbers"; + stripPrefix = 0; + sha512.run = "7a041a56ecc0f88d5200d39d7611c74f955e79e5f5f887d26a70c76624c334b6229f7b937426cbbabfd7de7ae0f9cd2aee70c502981c46fcc3f18fddd62261bc"; + sha512.doc = "3dd77559fbcb32d8bee7121f62bc37ca14c14c8e62f8d2ba44978438920dcdd54605a543135a6294e2ea9742f5fde4862a2efe3eeb6bf22b6d7418b4b01a2ebd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + doipubmed = { + revision = 15878; + shortdesc = "Special commands for use in bibliographies"; + stripPrefix = 0; + sha512.run = "3f313afd9cee76d11b5f957a3e9f7cc0d5d2d04003c285df7cd872adc0cdd26d0248c03f0642d62af53f23c4399e7e5ac3ffcde38da782f64ab265e5879a7f60"; + sha512.doc = "0298b7f4a408f2092bb7ecd8d5b0cee745f442bdcc2bae463d922ae4511d5b0fd79b8f78d1de49f77b4fb158937fcb752d919239efc25829228c1f75185454ae"; + sha512.source = "ce8a2d5300a2a3555cef789064047d49810f1f7d9d00429eea8122cde3e4cf75b41d5cec901a3d6cb3596e83bfb43e8ccb2558c64ac3d0574970e9980ceceacf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + domitian = { + revision = 55286; + shortdesc = "Drop-in replacement for Palatino"; + stripPrefix = 0; + fontMaps = [ "Map Domitian.map" ]; + sha512.run = "f228d1670e7904b08ba6064d0d1e8c23432fa826d52229d575bc2067e27adc904c3684d76889a8beb4885c3c9de5cd4a5004b9afd3f7140ae5e90d36b4961b9a"; + sha512.doc = "81af6be4f2707ec5d46d5f78d459f42d81e0cf62a17a8e695e42b666076637183447a9f1888b3f4c84e4832362eefe01b8d8dc5d748a640eb8e20c72bdfc1f3e"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + "free" + ]; + version = "1.0.1"; + }; + dosepsbin = { + revision = 29752; + shortdesc = "Deal with DOS binary EPS files"; + sha512.run = "7f31d47d60b0bf151cd6e6516e29a8414c6344657c133e726e6e8dfe23818995b10b9a2898b1801c4bcb9219969a8af1d2725b75df514ffb119730b3e49008f1"; + sha512.doc = "b9edce9984698db8e50f9183f89b025cfa89dca8a8725054af80f379c88ff1d2b02cef8f3d5f37ee5b8585a59d1a4d0f0ee0e541a7784f3f3f4e382d78e6a47e"; + hasManpages = true; + sha512.source = "d5739533a9d10e584ed7de4ec033b4a31be5681fd06fd9a2268f924d4434df902fc1f346ac2636f4ba7b7dcc6b5804a80b5431f7055fe8eccfeeea09915ad2e7"; + hasRunfiles = true; + license = [ "artistic1-cl8" ]; + version = "1.2"; + }; + dosepsbin.binfiles = [ "dosepsbin" ]; + dot2texi = { + revision = 26237; + shortdesc = "Create graphs within LaTeX using the dot2tex tool"; + stripPrefix = 0; + sha512.run = "20cc54f907b00e2eb14e4641d5098dd4886ce8d4627f391421bc5e819614dec97e0ec42c92794bacb8ffcb03737cb8736c308fad6984abf13c127f6d1174ee0f"; + sha512.doc = "9e8461946582e0c99ee35437522e25769e2afe5d7051f072937a57c5d4e1a0c8e144509c751f9ddb7ef576f43ca408ffca663f81c8b5e69fb176a4233ff45ea3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "3.0"; + }; + dotarrow = { + revision = 15878; + shortdesc = "Extendable dotted arrows"; + stripPrefix = 0; + sha512.run = "43ff7e4e163764e703673312a1213c50f0a77da98f3f36b726e87042d082f3d2433e35156e1c963d1c6287aa4cea5ccc64f140f89b82569b0552f406b29813c9"; + sha512.doc = "7b5a4d0b2b31f55e657eed5b7cc0185a8895df77895bbe40f27c4d29d1086c9fef1779f7c4c726faae25821972fac418c379e9e68ad4cd059b1c6f5b0420e9fc"; + sha512.source = "3d756e93ba60153727d1719f3eb77d278ecae65c08f18529a6352707b655bf39f01152f13b60490ce21ba358e2021681a64de8e9fa6f46f9f4bae5b3a754f1a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01a"; + }; + dotlessi = { + revision = 51476; + shortdesc = "Provides dotless i's and j's for use in any math font"; + stripPrefix = 0; + sha512.run = "348be296d710fe22d8122b45437d91027913b90ef36fa7aa365ad49dbdea566506c80072623ccc95170227e77ee2fc2fb3f711772afe4e7e7b83195eb3110b61"; + sha512.doc = "c77fed1f0b8ddbd6ed141fe8c9f914cbd5592820ffe3e457ecf35952817149d1315598f449dfe0e15e0e50328e45b408d3f1ef91fe83154f5374bcc62041ba77"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + dotseqn = { + revision = 17195; + shortdesc = "Flush left equations with dotted leaders to the numbers"; + stripPrefix = 0; + sha512.run = "794be5110d50ff9134471aedec8adaf7267f112012d962ee6e1cd7ddaa36cc37d993517cf4663686c90df891fe2e912d260cc9c9945aaee25925c2915afcc45f"; + sha512.doc = "aeb026d83497b78725d623b52223877d4d5a0a745312511f007d69395b87ba5362904cfa26bb24f2f2c7d0e0ae14bb82699d6108533260d736c0e85bc29ceff2"; + sha512.source = "7cd2a4a2001a38e999e0632222116f32b559d8f004c9e378493d84486028e5c1cd5268f63a0eb93f9d1402b2c2e11b2db2429547f300809cca3d9f39efd6b17e"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.1"; + }; + dottex = { + revision = 15878; + shortdesc = "Use dot code in LaTeX"; + stripPrefix = 0; + sha512.run = "037586577425d8a38a2170bc4bb9a7fa28a7886ad852d1c85483f7c3b625321c41a204b613479382ff5fb9e8cc3f8f9d8ff6e0a07c14b71ce6fdc68280515e33"; + sha512.doc = "3708e08c630e27d744c3a865cc02e91868a32b1648b4d390cea0f20ea6340c56ea1720348f6b82796df6cc3f4d5b7feaf59ffe7e24c32e34535a4e5763318df6"; + sha512.source = "adf26c722ad1e2fa26d10488125267516923db87c1185068a33a082c6f51bf5ec644ace69aefa0630eab9a604bfc28032cb5d10db15ef0c80ab28fc93839a13b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.6"; + }; + doublestroke = { + revision = 15878; + shortdesc = "Typeset mathematical double stroke symbols"; + stripPrefix = 0; + fontMaps = [ "Map dstroke.map" ]; + sha512.run = "ff1be47939d9a2e8ec4fe8e6852d9fa31c2776511de158611ef8b853ac73291d1aa4ffe81985bed60c75a16e3cfc963a3a8ce3fb9494dcf6664cd6d92a549e73"; + sha512.doc = "2cf0cc8936393be2b01ed06158b250a43514098aeec4007bf493bd9232fda911f4a59f45716fba5837e475bdc39a86cf6e1180d4220e6aef26ff9e0315389200"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.111"; + }; + doulossil = { + revision = 63255; + shortdesc = "A font for typesetting the International Phonetic Alphabet (IPA)"; + stripPrefix = 0; + sha512.run = "02e347325823f5b8359bbf192965b58a2b1907dce315277a65dc573b1d2e612fde821455dc8f8afc69dcc532f43a20d0f78d0b0f5649641c8ce6dde73525fc4d"; + sha512.doc = "360c64adf1eface29c60c18e4b20c4aa382713f0e4a59ecab2737135a422178238214c9cb567669bdee82519e0658497bf409f92733403a1749730986be71d5c"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.1"; + }; + dowith = { + revision = 38860; + shortdesc = "Apply a command to a list of items"; + stripPrefix = 0; + sha512.run = "7c9bc25d94364ea13326ebc010d15c92b27ffad08b68fa5c3b5034e6bbd6a96370d159727270adf76e6edca15d08de86c13ca7ede009a445b500ac22b151c05c"; + sha512.doc = "2fb2234cdf6b42bd3f9f991b3d2d76473c45c51ffb67e7c12e7976310e0fa562cb8d1f01b347e9b8140c854e1ede865cfed17f5748ded909dc8d983d4f246961"; + sha512.source = "44d331b8f99533a6bb3b150748245787f686a807b22dcea3dd9bef311000881fcf0870d19d6718574d56adae79451ef05aca1bddf1904a76d50dd4e74529fd47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r0.32"; + }; + download = { + revision = 52257; + shortdesc = "Allow LaTeX to download files using an external process"; + stripPrefix = 0; + sha512.run = "051fdf31160c95e88c8ed1214311b0ec8eda80b7128752c27a203c7e7dc5cee6d275dc4ed93f06308b71d199d9216b18600a2b6b219f852fc256eb2486c2bfd2"; + sha512.doc = "388fbef93df8f76de34e7968b8a1925f294b87972e2e26cb1ae92145b252b5a88fc06254453a6bc15eab14a4532e1a18e3b719ea243142c09239e3521ff8f7d7"; + sha512.source = "6090434f8a33e1ac95363082c0536a9990ea6c4936adbe151c1f8e5ad20e7ad9635ee656c9c29af9360b5d8bd427f78d26c9527c4a84dfefec7dd73a007e9839"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + dox = { + revision = 46011; + shortdesc = "Extend the doc package"; + stripPrefix = 0; + sha512.run = "dc37733e7253d457b2fe09b72b808c5198f222dcde12e0d36ae546a8ad0537419fe7f27945625bb3cd3efd2b5b63991e89dede1199e89c67fe7d6917370cab67"; + sha512.doc = "4474e38d3dd35dd14b281f7d2e5ad1d6104d95579901a50b3575e846532c279111c81f813b78c4d16ca6c78ac627a30e51515ee7b178602b7338c1c799c62609"; + sha512.source = "08cbe72a2af77f3cd34a78d0743ede6f0017e7edc275e56c66defd51b1550990cf00d9327ee9cca5c44b7c73870ead063346754c4dc1f1aafc00614a5d5c0707"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + dozenal = { + revision = 47680; + shortdesc = "Typeset documents using base twelve numbering (also called \"dozenal\")"; + stripPrefix = 0; + sha512.run = "ca4171da87126231a791f432a6015cc069f0eb0d540f8b79b3b5028f3f3e30d9202622886b582f2e351049603d0323a458fbce3d6b2565af5391a4aa94b734c0"; + sha512.doc = "e7c180bed185135cfba31acbf4488ff0991066be7456a7c54625df458a24819ef8b41bc19eec955967f22fc156ad6efc9e194489178e2cffb806bf066ea42520"; + sha512.source = "4e8c3cc35fc2d429fa286fc68eb92d2d290bbbbeabcb714d849f9132ff71bf99edfc5b08a0ae596f98e900e1b49d658af2b2b9daf1fbacf57e2b3aeefa15f6ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "7.2"; + }; + dpcircling = { + revision = 54994; + shortdesc = "Decorated text boxes using TikZ"; + stripPrefix = 0; + sha512.run = "d102312ce1c70eeb9cfb279b065197ebd3ec6d3f54a47de55a5cb9828e76b2e690823a2ea19a935151c972f791783fa41a55adde03aefa54eb2b3fe3da0ea677"; + sha512.doc = "b1b01183f3490897b9681927676a7eafd01367eee6ea2fcb82fdfaae59294c67d96036ef67093fab13f0493adb9dce56f4e420b486bdc5f94e8a7801efcffc4a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + dpfloat = { + revision = 17196; + shortdesc = "Support for double-page floats"; + stripPrefix = 0; + sha512.run = "df136498f7ba41b1335ac109667d07dd9584e6682e1d75fc82a80839bf0f6d7a4de1f5750aa738eefb96d14d2adea20a3ec9fbc92130481d9bce0abb6c6f175e"; + sha512.doc = "2cbdb8711556580d14a01b9daf03b1a1095387c077413b2815bfaef1af2781fc8bc56fa7a6a36abee60d6ce6928f920c9d9c3deecc2e071e8e99d51c1421508c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + dprogress = { + revision = 15878; + shortdesc = "LaTeX-relevant log information for debugging"; + stripPrefix = 0; + sha512.run = "4f56a2d6e345cb98eba3ffddfa977bd48661d90bd10712387141b3398c9a85e8b9d7b0f33e75635b7a98e91176f1e866ecf0b14ef0197fc488bf976dd4889673"; + sha512.doc = "455451396b22b3d38288a5c51f6c2413c56ffd07ac1331c3727c4f382eaa07f0a128373ba033ae58e53411e69a4ec0eca67609fc3c111c91f24f2adb2536a2e1"; + sha512.source = "de6166c9c79f62c0f3eb973b6383f2bb486a8f7673628862d54af8e00a5ddcdf78419ea819c95e750f47fa3e65cd58b598e3a3510d43ec3d4d3fa9538a846a79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + drac = { + revision = 15878; + shortdesc = "Declare active character substitution, robustly"; + stripPrefix = 0; + sha512.run = "f45c94e222a6bcae0d87ab5aebf0f594f1674a49787391dfb9cce32f9b36a0aa6a81e84ea4ca345e0918ff2166e36738ae9969e4d9e4653bbb99ac6a7f0cc63f"; + sha512.doc = "7e6debf9580d7c145d8f95329aeadd63012bcfe3ac04fb9c4a3e815391757051ce021e4e2659c96fd7ff5066e3e324ac947cfaca16e52bf5895fd5724f81f552"; + sha512.source = "a56b3648bc75174179ac74eda67d84226985d18863270cdf6b6c1688ff1405389ad27f20abdc6a41f68520e1d95890fe021d1896d00a5c44a6a4ec2b9c380944"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + draftcopy = { + revision = 15878; + shortdesc = "Identify draft copies"; + stripPrefix = 0; + sha512.run = "f1f2ac803e1858ffab880c7427ed2dfeaeb435255e83ed795e0d5b4262fce1fbf7593653035af2e45d4731107c8f886938015ee1a7fd0018001c0e39e9f1018d"; + sha512.doc = "f7a4941c26c92223a9dde51e288380efe3b701d847051c13345e97f5a082cb3cd9e5d5421dfb2b1f1cdc12214df1ce6970a8ca6fe7463faad73af1a12c3542e7"; + sha512.source = "9320e076a200fa5d7fa297c7d3228ce77ad9a9a56f57e4ef250a21320e9f2e429004ab716747499a264108ece97ae03388df084c24e2a370f57ee22b80628cba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.16"; + }; + draftfigure = { + revision = 44854; + shortdesc = "Replace figures with a white box and additional features"; + stripPrefix = 0; + sha512.run = "e8ced947e69803243543657185e8fb28e67776dc9eee5e095126ec712fa368c32903f53243aaabb7308c895cf8e0c10a6d89c33e6b6c5d109f0300dab5213e60"; + sha512.doc = "f0a9a59ee326746802fb33412c44148ed8c836a24653df6685ecb69bc76870cae63ac8955274705639e658491566da0d0633ee8d57cf57d58fe43a971252ee05"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + draftwatermark = { + revision = 70401; + shortdesc = "Put a grey textual watermark on document pages"; + stripPrefix = 0; + sha512.run = "39bff239cd08c6c57c445944ba3fca6af408b2ae32212555c9e9dd64c8d7fead3eebd35a48e6c68f139d65ac5404efb60182993ab751df8d8670e646f06cc97d"; + sha512.doc = "1783cd72d65658df483c8c3f4b0b27b7a5e354e8686d08f08ece7cf6e15947bbab6ec9a07efa233144eca4ce3c015027093b4d502c39d2057555fab9ab07fd8d"; + sha512.source = "7c58ad08143158711945af36d5d9b77a32cc4b800144a7cf55b777047c08f7267731344997354bce0fcafd9b3eae17cd39659660784c9a1a47b307708b6f45dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3"; + }; + dramatist = { + revision = 35866; + shortdesc = "Typeset dramas, both in verse and in prose"; + stripPrefix = 0; + sha512.run = "d61da72538a7d83ee902081aefc23f3addf2fd6e5fa7ebb207fdac16546d13602c50419682e842df8f36a899c2c0aba0aaf615bf64202135dd9f470f5391838d"; + sha512.doc = "fc28e1dc8614d836637350a20478a0e8a03121909cb42bfd1cf4caf8e7adc01a4ac3eba08e82c389c41a567cd00f191ecd8938ac40a0a226e2fbdac047ecb733"; + sha512.source = "a364353dbbb9540a9f43c26fbfe6be8f814452a23e9f25c5a4c4f45a65534e0696dee993bddea4eb20eed284b892d258f6947fb0f96af63a0516f9f0fae01651"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.2e"; + }; + dratex = { + revision = 15878; + shortdesc = "General drawing macros"; + stripPrefix = 0; + sha512.run = "1a18f8866d1cffb0ac3c277bf27e1585c7596eab60ed51756077abe3154b6d67ea95205f60b5a244e9acabb05e8dc95a792d48f0a2fc492f90d224f85895fdd8"; + sha512.doc = "0ff34bd23dd8718f4f8b0dc3e84068ca2b38a9758849d98230f1a8d4561705d6db7be3b0fcb34621054993f27df7a9215267b3ebbd7fb3d77b8cd9cfefa0ad60"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + drawing-with-metapost = { + revision = 66846; + shortdesc = "How to draw technical diagrams with MetaPost"; + stripPrefix = 0; + sha512.run = "9e9deb95f1ca68c4f7b2a1e82bbc213da68e60bea65510e18dfa12528dbf65b20d06769c766009a1db49b9b7a649598f64a513957a4874f6c657ea0c1bc99901"; + sha512.doc = "9d3ac79b2d4165a3e7fe1675826db2190b7bbdeaf8b14460a618ae909e29dcd9796aff70af98bae5307f67945434ab3a304d955ed5d56e17ea94a67f83f2ef09"; + license = [ "opubl" ]; + }; + drawmatrix = { + revision = 44471; + shortdesc = "Draw visual representations of matrices in LaTeX"; + stripPrefix = 0; + sha512.run = "6be4d4ee6970956dd2f3b31d31ca0cfbad268e2f98ae64fd87a49de9ab26765447531121aa0edc157779f3f9c0dd76ab2ec3f747912f4204aab9e2e7181368f6"; + sha512.doc = "07eec69024d4daff597f2a937178f66413e6dc4974a2044f983e809b046f09140db7eaf3cfd68833bd95be0d56b4a564dfc9ad4d771fa124f55ea3783eafca1b"; + sha512.source = "8125f7c3b0867df9d8f21e45d89a03e6ff0f946d946646c26b0ca825a30c62051264f45e5c2da5bbd45b35afbc2f7f7120e9ea3d2d289f6a228385860d25f523"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.5.0"; + }; + drawstack = { + revision = 28582; + shortdesc = "Draw execution stacks"; + stripPrefix = 0; + sha512.run = "383eab0b77675ae418a775a413c37720d6f74d51d1a31bdb2923b45ced53afa576f10304e372171298ddbd566a8418526d291f74a1871eaba36ea3793d7d0173"; + sha512.doc = "d435447ec29bc26262886b3dc4c41cefae81d24e0704857a9ea61f1fc08ff8e4bfb4ead7686a9f49808dff30da47fc5638e2c0dbea4c6a551800a373f68df0e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + drm = { + revision = 38157; + shortdesc = "A complete family of fonts written in Metafont"; + stripPrefix = 0; + sha512.run = "662a2593713dc02debd4702b5184586736f12200aba4079154e6890b49d581810e1a7a94f0d3b6750ecd241dc03cd5a638a3ea5bd4792f13829e7812f5620b36"; + sha512.doc = "7821503ea6548fa200221d2c2234389a252ddc61498d66389f0afd13b6c36536b744f060f42bf26c4e2be722a7cbca8841b1b76510391da4960dcfbfb9956177"; + sha512.source = "a505f89568d63bc36799a3802fdd4e5a4903a10226b565c58b1b6d0900f0efeb699838ef17f84d9720558c7e1959e33d97c387b371862366726c6b99e30e838c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.4"; + }; + droid = { + revision = 54512; + shortdesc = "LaTeX support for the Droid font families"; + stripPrefix = 0; + fontMaps = [ + "Map droidsans.map" + "Map droidsansmono.map" + "Map droidserif.map" + ]; + sha512.run = "e57eba23d2b7a84ca36be4b0a2988870a89b69a5c2f423d8961c8fe38c074cead0760c0061a545518959145ead02a13e321c5719cfcd7d6a575b7050cd74ef2d"; + sha512.doc = "d1f86ef4fd82d955e5f6560b1eb56805bbea621358c3e708f5c07d6539d278a4e61fed680afba425a212eb7383bcdc1d663d492b4cd716ba2c1872f9006350c8"; + hasRunfiles = true; + license = [ + "lppl13c" + "asl20" + ]; + version = "3.2"; + }; + droit-fr = { + revision = 39802; + shortdesc = "Document class and bibliographic style for French law"; + stripPrefix = 0; + sha512.run = "76c928be0648ae7bddc76f654b65a99ae6670cb17b0ae9a54596599ff655636d4520b31d4e802a15af65637c5bf956d41a2095762a3c4bb77052c9f74da5e7af"; + sha512.doc = "6129658aad2fae20dd12252941ee774393e262d9322ec2163ebc964ec27c4ffb63f2ce0faf9b74a90717c137065e9af238d45c623cc58d52b1e4776da221e231"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + drs = { + revision = 19232; + shortdesc = "Typeset Discourse Representation Structures (DRS)"; + stripPrefix = 0; + sha512.run = "5054b389c79b6895e648d3d4fcd1a3f7b06b213963245702e5bc4c0e8b6e3a87c6a2d3f72509998216e25553148008e597c6dd3015ef0b94724e84f3fade5936"; + sha512.doc = "c265c462094e50872fc2748167226319a5723aabe54ca057661b95c7cff897afd08f42ce6d520b7ab35f259b760800e79ac6deae0f1ca0c776c2c2aa7839cf80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + drv = { + revision = 29349; + shortdesc = "Derivation trees with MetaPost"; + stripPrefix = 0; + sha512.run = "b7f2b56f305d552bd857a5950fad2dadbf800857d4c8ee411fd2f5786697385404fce3956e59b5928ed5f0a688117dd740c0f56806674d08cd8cb1d52b79a9d8"; + sha512.doc = "a79d9883615568bd6c0d5aac44cc2ce28e0bd08e96f802d500515428ffb5400beadea94347abab7752904ae01342049b8d6687f6047aa9d8b27f5fe3a647bd02"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.97"; + }; + dsptricks = { + revision = 68753; + shortdesc = "Macros for Digital Signal Processing plots"; + stripPrefix = 0; + sha512.run = "f51353329034141f52c38563f79de526b7b47de3435e14dcbf91f658a0f64a7b23075e8cef98d0f948ab54b57681c7d9fcec417b59871ff908c00e12d1711b6e"; + sha512.doc = "0cfcb4e1094284ae954da49c1212bb793831861b57316f48fa93e20e92c8d35e1ee8e02bb1be8ecb52442dd80e3f0f921d024bdc8797a843ea0fcaad29759d01"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + dsserif = { + revision = 60898; + shortdesc = "A double-struck serifed font for mathematical use"; + stripPrefix = 0; + fontMaps = [ "Map DSSerif.map" ]; + sha512.run = "7fa159e85b370a1327a8cace1a20ed54b37f2413e553dbcd42c6e75cd224da35b47402d89d39971873e888cc9f89117fe5403887299ad8c43e6bf2f706df357d"; + sha512.doc = "e831d9ba6233cd260cd6f212f4f8b3adb360f6d701d121d26f0de95360dd56ccf7e3a5fb6fde990d875e60ca20f7632a4badaa9df8e3b98f16bfa5b176308761"; + sha512.source = "dcdf454c0d970338951b5b458df039ecc0287020fbf13c3ef46d2effc4aace39cdb424937d506783f572ccfd7cc136e9059e9894d4339b53f4b1be4b52d93579"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.031"; + }; + dtk = { + revision = 70117; + shortdesc = "Document class for the journal of DANTE"; + stripPrefix = 0; + sha512.run = "c9f59b7a80c40d4a1a9749ab3b5c48ab7dcbf213166454edcef30226f001d37724967e0306486892a64e1b16fcfd45f9d507f4e467642150ef90a75a5296471f"; + sha512.doc = "2cbf434924fe1b7ce9ed50f647069ab8a278f4be1f65981e7d9f6027f6f0f6b7465e7f2f169e860314f84fe38032ce0cdb0d96b55f281a04b7f830216498b46b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.10e"; + }; + dtk-bibliography = { + revision = 70517; + shortdesc = "Bibliography of \"Die TeXnische Komodie\""; + stripPrefix = 0; + sha512.run = "c6e8940feb04015e068e70a80b1b7058b451f324a2b7ad87644e011364077630b2fae6f8b292bd7cf426b3b4036279bc4ab449f182326b84016b39d66ae62f05"; + sha512.doc = "9fbbf62c28b5dd4f561e3aef62c033b7cf11eb8276ee1137752d36bd0b018e40cb477f0ea0dabad277ca5c541ef2fe84a968affe606da0cc3fb9123c246ce337"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-01"; + }; + dtl = { + revision = 62387; + shortdesc = "Tools to dis-assemble and re-assemble DVI files"; + sha512.run = "c2b7f3ab778c01979b158c335e4bff7bbb677fe8c5bc3202a5f43c747119dbc4a7e348c5fbb0bf2a487a49430939fae6abc855392da92ba65441b87e08585189"; + sha512.doc = "476723cb714863405daaa5fdc35557ffe7cb1149735272cfec2f14473ee65b93da90648abf73b4cf09799b1595569513f3735a07173b50eb6db405d526d40660"; + hasManpages = true; + license = [ "publicDomain" ]; + version = "0.6.1"; + }; + dtl.binfiles = [ + "dt2dv" + "dv2dt" + ]; + dtxdescribe = { + revision = 69507; + shortdesc = "Describe additional object types in dtx source files"; + stripPrefix = 0; + sha512.run = "232d7cbd4d1d65740e97b608d3fca9da8ec4d06faea3fb39fdf49b829704fa269dc6bdaf4235d308fbd0f4027cf2b8fa48312320b4e972940118d69d17ec80ed"; + sha512.doc = "96b2397398fb9a1a59de1ca97543c7bc84892d5eedc5935fedbed753577d77428f58587b42e55a5e69b5c03c68eaa176c51c037340eff4cf19596203051452a2"; + sha512.source = "cfb804d222c7073b1cf4f143d2a98af9203623bc215b9747ffcfbf2e5b0935e56a9072027d8462f9c17e10a447c8bac7f3a30f93b6f692240ec3a472718493e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.09"; + }; + dtxgallery = { + revision = 49504; + shortdesc = "A small collection of minimal DTX examples"; + stripPrefix = 0; + sha512.run = "c4b164fc1fe9230aa92bd38689ffa67391aea511af59e74b93c9379f1d027f07091f98734af837a1af90b35b0e2e5245f78f0198f4a09465a8c59c18077a2457"; + sha512.doc = "ea56d62e0fb8b168461f8d01a08a9829ed00db4e2d6a460791de3018be21b4b446ad8ebf4a1c4a69e99a0989b85b55cbaa8aed171a53479df0501ea36cf03bdc"; + license = [ "lppl13c" ]; + version = "1"; + }; + dtxgen = { + revision = 51663; + shortdesc = "Creates a template for a self-extracting .dtx file"; + sha512.run = "b197684c1e941a64b606b472fb9e0f1ed4f5d0b0db2df59202712c0e3f3b3993106b8d493d707c4875e90dacd9dc7d12bba784ef7c8d04984a38708073b1b92d"; + sha512.doc = "f666a2b5d3cb32d43a23cc3edcd92bfb727d500a8c439b4b78bae89ac73c317adac9786e4702e78b5b4861b76489ff7af5cfd115a80b96cd6298c65412d56a50"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.08"; + }; + dtxgen.binfiles = [ "dtxgen" ]; + dtxtut = { + revision = 69587; + shortdesc = "Tutorial on writing .dtx and .ins files"; + stripPrefix = 0; + sha512.run = "5b8dcf885fb0e3361154f6981efa3fa00c8ea9b11da7aa5f739f87b97b8a89226a4b150b97bfba33d0fcdebe11e7d900ee881203ea707cd8a3fcde16866ce54d"; + sha512.doc = "f7d37f9d766175c816eaad931a7623c3a537d4d8d73c28b57802c417bbd954b1781cee8bcc7445ed09fac9a6f36b2336aa6a9b5b769bba877f72754bc713eb4f"; + license = [ "lppl13c" ]; + version = "2.4"; + }; + ducksay = { + revision = 64655; + shortdesc = "Draw ASCII art of animals saying a specified message"; + stripPrefix = 0; + sha512.run = "d89900ae1247eb6706719ce472964a2d3b82c2826e18b3965de12d0c0503d77968edd9faffdee9870089de19e10319f94b1c6374371d387a50ebab414934bb61"; + sha512.doc = "1231fbd9920d0f9cc6c848df09c175c8bf47771e909463331a593bc71a7656948541e66bff507250030a88a362265531c7997f90fd23b4dde40e555d02b75760"; + sha512.source = "594c31ff9f2ac3274a275ba0f9b40a20b113f7357aba2755ca684e88f77e00dff220204908709b0cfe678a83fa391fd6728455123dbd53160a5edb5be3c64de2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6"; + }; + duckuments = { + revision = 52271; + shortdesc = "Create duckified dummy content"; + stripPrefix = 0; + sha512.run = "77c975ea3e42faee4db5d99d692220884b24ccce2d69a30ce484d113cd261ddf5cf5a13ee04d9e8a95572e98c8c4bedfd901db34379af6a567777f9358e4bad5"; + sha512.doc = "0c9e24cc988b9350d188878dd8b463428133fe30c00218eed3d67917ace24412e55c396422890fc6c02030378b560b3d374970e879e3a331db7d8e34b3302421"; + sha512.source = "528db05e9c1c0232fae271aff911f35cd55f85bfcdc931820f5a74d6f490fa3fada99c274b36fdddc6163cad6f779183b0056b1a6e003c4c2737282fed608497"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + duerer = { + revision = 20741; + shortdesc = "Computer Duerer fonts"; + stripPrefix = 0; + sha512.run = "15f39b70d6b595a1c4d6594a2908fc07e3597bf1bf88ba25b24ee545d473c709a15b52ad0bd367b0cb1a47ff9548a110c6dce6c2a2b2402f655c21f6dac5a393"; + sha512.doc = "babbe18510ab7acc910639e2993858b2cf27c4414772d2a03fd2d3576f7dd64f4c7b1aa05d9a7913b4eb8d4eddc942137b41b87816631b34cf35e0120dd3ea40"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + duerer-latex = { + revision = 15878; + shortdesc = "LaTeX support for the Duerer fonts"; + stripPrefix = 0; + sha512.run = "e474634e00b86878bc0c09ff247a930e102621d3606079d72e7c284a8ec61d2a2b36f1d09c171b7a4953981dea65df49da1962f01df272fa80354281a3209bc6"; + sha512.doc = "d1ea1a023e9f2f1ea4e0fa045d8831f764dbef34d1ef2ec96090f7f7a49aa1f4ed2df63bb611ee354a1e816a204841fbd7f4059a14ed06d758a31ca9f460d50a"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + duotenzor = { + revision = 18728; + shortdesc = "Drawing package for circuit and duotensor diagrams"; + stripPrefix = 0; + sha512.run = "33990302586baf5731976a27a8268986db6917137219248e559900fc2e64e5ef443bfd14a0472194a962f6fa59a8ed8bb1caadd46badf157fbe39f36815eacd7"; + sha512.doc = "83a811a37004975e4b3fca67bfed83d8fc85fe97a07a20f624d321c62efddf2ce188f1748a5cea47185675e8d5226433b48327d8d7daf87465471b89b652f2fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + dutchcal = { + revision = 54080; + shortdesc = "A reworking of ESSTIX13, adding a bold version"; + stripPrefix = 0; + fontMaps = [ "Map dutchcal.map" ]; + sha512.run = "308253e2b148cab892ef0ea5004cce0c3e3fbea4c0555b67f49e554734b16bc5be9baa08119fd0a2186360cef20e165b5133ce85c793eceaa9955673ec4594ec"; + sha512.doc = "1ac89d2c4ef090edc8c354a3f869485d3af9c374da012fb51edfd22f0644d63a5c380aad115b6dbe83e70846904b722b69fe4093f4a7ac8a4a3eb1c1c97f25b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + dvdcoll = { + revision = 15878; + shortdesc = "A class for typesetting DVD archives"; + stripPrefix = 0; + sha512.run = "e6b553b2e13e87e105ba1c64422e5269e2f285754f12db1d43f475e0f94dbd32253620c1e71ef08de106d5a050c531e058e529264478e7f4545ed83dfffdd233"; + sha512.doc = "59b152b1922bc79ec3a132902547e8ffebce8cc05e2933b3b54292b507d1ac1810cd0aa2c974045b9b996fd14445126e3eebe6ae3d6ec45e1fdccea9a6ca35e1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + dvgloss = { + revision = 29103; + shortdesc = "Facilities for setting interlinear glossed text"; + stripPrefix = 0; + sha512.run = "51227cd1323c6ef94f8e0c537289abd3812f39109ce178793347d6615a718109f120bf9e6a4dac1ea801effb6f2b9425c376fdcfd5db6a5409887a8b9b49dff8"; + sha512.doc = "4e59a568e0230e5e5dab7968eb27a8bda4680ed31b23d21fe3dfc15d0e3d8b3d6599535f91a092e2f9dea69402ba8ef07291d2cadc1e1cce28aea927fbb84341"; + sha512.source = "a4df82b4ea3e57de02e61e28cf4b9e8fa91e385534d7676fe3e287c49148849dc736003b867f1b481d56466847f9f62f020bb2e826ec81dc31be3d2b6f6a47d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + dvi2tty = { + revision = 66186; + shortdesc = "Produce ASCII from DVI"; + sha512.run = "1051c3448703fdd6395d78b0d8b7658197da6114fb7455b31502bad5c2eda24fd4eba2ceaba1f65d106f981bbc60caf9f3bd0db29403e898b293514d086bf91d"; + sha512.doc = "3ee736f5fbf91472008a5c8613c0e629a9f76f61fee4c4491b67045ddaad7aa2f89a22937b172e058b072ae1a013478fdf5a9f68dd2e225e8a8e77c8e3b3a289"; + hasManpages = true; + license = [ "gpl2Only" ]; + version = "6.0.0"; + }; + dvi2tty.binfiles = [ + "disdvi" + "dvi2tty" + ]; + dviasm = { + revision = 68043; + shortdesc = "A utility for editing DVI files"; + sha512.run = "aa75c4d37cce8087658b66f8559cd31add027eaaf9b4fe4075f42f1bb4cbd30e57ca1125c8ae42852d17d51709b6c368bacc7146f16dc4f0d2ceb56b327dd824"; + sha512.doc = "116a7b02005ced75ae3e712de7d66513ce7d6d3ae9ee4e6e94b347d6000b27bb58d4fc1cf76cec7f19fd7cdd316f42c02e8ad7b8e0f0ccf88d405e17ef2ff155"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "gpl3Plus" ]; + }; + dviasm.binfiles = [ "dviasm" ]; + dvicopy = { + revision = 66186; + shortdesc = "Copy DVI files, flattening VFs"; + sha512.run = "60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0"; + sha512.doc = "40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56"; + hasManpages = true; + license = [ "gpl1Only" ]; + version = "1.5"; + }; + dvicopy.binfiles = [ "dvicopy" ]; + dvidvi = { + revision = 65952; + shortdesc = "Convert one DVI file into another"; + sha512.run = "81c58f4e1352a8e5133de1ad86b6b37c47f9b0d29307354001693ebc4975c30808e349c73a477283a16df4219fd5702b733ecb5abe2043aff1d1b537b7fa6a3c"; + sha512.doc = "b571021445b822e9824782ab35a0743ca23f69b809354dea6676c58209a451be5bf595641fbcb461211e6dec15e765bbfaf8164c0ce1ed4204ea72a2073ecb92"; + hasManpages = true; + license = [ "free" ]; + }; + dvidvi.binfiles = [ "dvidvi" ]; + dviincl = { + revision = 29349; + shortdesc = "Include a DVI page into MetaPost output"; + stripPrefix = 0; + sha512.run = "dc09380d453b2c83359fa1862f6d289162ed4ec12e7f1b2842789db26e780713981261369dee0d03561a6864bb8bb25e071ca73c3d85e6218667587fa78f55bd"; + sha512.doc = "3418aa91ac8daf98f2ccbe67c2ca13bcf8fc5adb380f7c56e133f4487bc3ab701be1925d7a5878fc02ab7b8607e70991887a3d875d25b777b5489b7ae904aa7b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.00"; + }; + dviinfox = { + revision = 59216; + shortdesc = "Perl script to print DVI meta information"; + sha512.run = "d366c28a88f488418405944e299b8e8c681a2bfbe1fb8d37847d89920ab41d3103d52072c7455ecec2451702cbbea02971ac6f1e1d609bde9a2f5e8abd345ef5"; + sha512.doc = "4da7f09620beb3aa7e5a572f31c1d53466607ec0f6401b687ac1da624ea435f0efb3e0e2074252f49a720cb6d53412658a8a45dcba5553315fc9423233755dbe"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.06"; + }; + dviinfox.binfiles = [ "dviinfox" ]; + dviljk = { + revision = 66186; + shortdesc = "DVI to Laserjet output"; + sha512.run = "0d34e837c0f67ac43dd8ef5bfb9a11d2821188ef8259f41b0cf9454bfa6641f956c21d63fe15fbd68dd59f89c1da820cab4ec5c4579fc0255a771c47010821cc"; + sha512.doc = "4b5815d766a41eb74125269e297eb6f7d1626d68b3f2cf9d6c4f8734721e3c71b63e84e729c39fef41320e4f728888796e421bb5c7ea5ffe76cd549400d18d37"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + dviljk.binfiles = [ + "dvihp" + "dvilj" + "dvilj2p" + "dvilj4" + "dvilj4l" + "dvilj6" + ]; + dviout-util = { + revision = 66186; + sha512.run = "684f5efd93c0c12a07b753f169f44e764b01e4994faa86df8361ce38c15675a0601f61bdfc9702508f66273ac8c69250db65fa0d10d3c544fb78fcc824d4ff3f"; + sha512.doc = "d10e8c9343f9065499e2c06b5eecce4047730875ccee29d6a09d1608e2334f7310282cff765c88c7da8ed8a52816910c79f3fad58d118f047d04b4bb7ebf44ca"; + hasManpages = true; + }; + dviout-util.binfiles = [ + "chkdvifont" + "dvispc" + ]; + dvipdfmx = { + revision = 69127; + shortdesc = "An extended version of dvipdfm"; + deps = [ "glyphlist" ]; + postactionScript = "tlpkg/tlpostcode/dvipdfmx.pl"; + sha512.run = "75703f600365c90379c5d009e00d35d2e514a76b2556c96c84fc2a717287441af419a26fc9ef087d111f2e77c7180f6371ca2ec33b66052ab63ca3d11f48e788"; + sha512.doc = "d2fb71e116470d2d629613401f448ad9aa8cfdfa9ada68ed324061e4ac614efc4fd2c4ea2542c8fae32f476b92aafbabe4a5be648f28f16708c43958d7aa99fd"; + hasManpages = true; + hasRunfiles = true; + hasTlpkg = true; + license = [ "gpl1Only" ]; + }; + dvipdfmx.binfiles = [ + "dvipdfm" + "dvipdfmx" + "dvipdft" + "ebb" + "extractbb" + "xdvipdfmx" + ]; + dvipng = { + revision = 66203; + shortdesc = "A fast DVI to PNG/GIF converter"; + sha512.run = "a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc"; + sha512.doc = "a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e"; + hasManpages = true; + hasInfo = true; + license = [ "lgpl3" ]; + version = "1.17"; + }; + dvipng.binfiles = [ + "dvigif" + "dvipng" + ]; + dvipos = { + revision = 66186; + shortdesc = "support DVI pos: specials used by ConTeXt DVI output"; + sha512.run = "9e949fb402facda9c30fa2f388b80f2cfc530670b33cbd78559e4449fa6004c5d4082e4fb895ea397a334a333e5d5ae1a4f66fde3885f0a9eb28c9d9ebbecd0a"; + sha512.doc = "254a1db41636608a133e7807a8d4ea8ddd99ac646f35b66a43205ac7fdaf4a15c21eafbb85e23a182506e509895776d1fcbe63b3b8a7f197d577c6405ece5c44"; + hasManpages = true; + }; + dvipos.binfiles = [ "dvipos" ]; + dvips = { + revision = 66203; + shortdesc = "A DVI to PostScript driver"; + sha512.run = "fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275"; + sha512.doc = "ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71"; + hasManpages = true; + hasInfo = true; + hasRunfiles = true; + license = [ "free" ]; + }; + dvips.binfiles = [ + "afm2tfm" + "dvips" + ]; + dvipsconfig = { + revision = 13293; + shortdesc = "Collection of dvips PostScript headers"; + stripPrefix = 0; + sha512.run = "ff7ad395329dd1cc5d21d5459916d0f10a8c03399d733048bce0a8aaa4e3a955f3ad3dbb228319d4bfb96e0694069002507bc294ed81fda5a48ad93f8cd82589"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + dvisvgm = { + revision = 70496; + shortdesc = "Convert DVI, EPS, and PDF files to Scalable Vector Graphics format (SVG)"; + sha512.run = "94bcb0d873e30ca7d876eb28dc9951462fc28d6961beb11dd8b33fdb0c265614f506d27abfce6b8a540bee55bc489ce2243690341eaa509ba329c88ebcdc28ff"; + sha512.doc = "eee54ef41b2962cad615be1b6082e99087a3790ac057d280481ab1fbc50f3c525c732cb038dd324b757c0cc738e0a26a0193faa79637125858ffea285be61196"; + hasManpages = true; + license = [ "gpl3Plus" ]; + version = "3.2.2"; + }; + dvisvgm.binfiles = [ "dvisvgm" ]; + dynamicnumber = { + revision = 38726; + shortdesc = "Dynamically typeset numbers and values in LaTeX through \"symbolic links\""; + stripPrefix = 0; + sha512.run = "802df3848c8ace40e1eef5c1d30c07a6a5f30fc902a9bb18581b79ff322921e7235ab05981625eb289f093f4486f0aec2e9c83bf669a9afa993a86146317b619"; + sha512.doc = "3eeb8617b33d45c1f97756f58bb87fa1244cd3089e0ed64f363f2909480459ce17e30d54bfbf948642856984618081d0fd15c0721d0190c187b375fbdfcfcebd"; + sha512.source = "8a4ed9566201af2835190f574c3316f5eff4258ef0e9b25b62b146b483c14e9fcf66abc2e1c4b3512f12969bcee1a8102ba020ea78874e0c7f3e68c0a64232ea"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1.3"; + }; + dynblocks = { + revision = 35193; + shortdesc = "A simple way to create dynamic blocks for Beamer"; + stripPrefix = 0; + sha512.run = "bda4ad43754e7d4fa87cc4ac5bdb772cd24a4e613bcf7993e3d448a9c884aad5ad484c6dd7739f4c6edb983560181717319dc26376a6025f3847afb588fa47a1"; + sha512.doc = "4f4084cc4dd913bcff3e71286fa4e881c7d577afd8e0669396de2ab18ccbdbc8649117bb931e365fa5999c5c842a71cab18da5573e83c1d721c87256e614c321"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2b"; + }; + dynkin-diagrams = { + revision = 67267; + shortdesc = "Draw Dynkin, Coxeter, and Satake diagrams using TikZ"; + stripPrefix = 0; + sha512.run = "4c7d15e3e04cc562e1f4a401546223af6e53f47f8edcaab6e82bb84246bb6c72b1acc15437402b161a123d11c21ac350d01b33ef7c8d8b7bab6c8dcb9baf7723"; + sha512.doc = "94d9a69e3603664d9f81da2887dfdcdb70d9318ecc13c0232da64cf23e6d6dbcd072807035771c519d58283ac40f306901db8699061305b3c97a3f7ee42ecf65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1415926535897932384"; + }; + dyntree = { + revision = 67016; + shortdesc = "Construct Dynkin tree diagrams"; + stripPrefix = 0; + sha512.run = "e8591951639020398e8f6bd892bd2d43217871fae4e94ecb09bc6005f1857858edb5b3b9330c5d08e8490598fd2f3d45bba4d99a9b33de464d0c5e6478399689"; + sha512.doc = "c2b2368a88648efe795a633f00ac826fff3b53029f557a4c5eb7dadbe882f560c768754adbbac09347b6bf44ee3bf77ec4b5ad57e9d5726e2c51519e0d02814c"; + sha512.source = "8df01c048b52cad5fa5862b16d16672eda36158936af1bd8254ef6b9574ecf84263f5f70a466f2846e653e1565e2f57f297c4b05c281c16ec72a4fd1e1eb8f25"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.0"; + }; + e-french = { + revision = 52027; + shortdesc = "Comprehensive LaTeX support for French-language typesetting"; + stripPrefix = 0; + sha512.run = "ed14a41b05d47117fc354bb5a1782338ed91ebbd6071af96f4bb94fcefed31048ef3ed1301686dd720d7f1c9ee59c518adbf83c6c7de2c35e3d50cdd65c0b0bf"; + sha512.doc = "d76ba6c016c8a48a06ed126d0d011e1336203cc8182f744de9d238e723019156f369574b7090cfcc943829ef058b77ec536ab6bb7c054e5e2587dc92998258d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.11"; + }; + ean = { + revision = 20851; + shortdesc = "Macros for making EAN barcodes"; + stripPrefix = 0; + sha512.run = "8a44b134d612ad4908a3ec025b0934feb56a8a8d7c7dce91f7ff152fda91c99c0c557ecacf7b22d8e9abf8e99d28b09b21abc8658e598baf37bfbbaa885b86d4"; + sha512.doc = "35c7d054236569b03082af07412f00dd08d760547433ec8da1876a83546c7432c4cdbffb617ff34b4e48b86873d699d41749bd838e12ffe32980b3d6e92865b0"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + ean13isbn = { + revision = 57514; + shortdesc = "Print EAN13 for ISBN"; + stripPrefix = 0; + sha512.run = "84f73871c0ddf2d6d2ae0d23f6d27c1cc985ac1c42345ad339d55762ac9e109f8d33dbf27105ae470ec2d2f127918c3fa0a3c49d9fbff8a7c67b3d20f36d2e8d"; + sha512.doc = "e7c474d1d488d95786d5f061412d051c9306cedeb86f6e31915d44e6fb71f09303b8f0e782be393e56dc6887730560825ef29d57af5a20f7bf02d96f77eb554b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + easing = { + revision = 59975; + shortdesc = "easing functions for pgfmath"; + stripPrefix = 0; + sha512.run = "3ed041546ecf6e921ce60f48365a1ba81ebaa8420f8f6d8e1c9ba1b38b20ea2a8c13392295d31a784bcc2fbf135ae37e5b89af794603b98492a4fac9c6dc6861"; + sha512.doc = "bbd559d63635d83e00924a9d40258f3edc32519524dcdc4bd3d7bce0487eec01900eeb26070cd4abe372150f013ab3206b075aaf530de6d395a938465de072bf"; + sha512.source = "dcbac9aef840277651060def21b4bac6f26572d7a0dbc7524788af224934c6344ac47af13e85a4c4d8f0857227b5ba8b5401081d34b7d5929747f510288dad37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + easy = { + revision = 19440; + shortdesc = "A collection of easy-to-use macros"; + stripPrefix = 0; + sha512.run = "fbc84351fe02c560ffa1c6b1713e762810123e7abee47bb31899d4baed353928350422e7d237abca758753ad306f927466919ce6b160a3820d1d5101c0b71ee9"; + sha512.doc = "27bfb9792f0c8261cd2de9bc95dc4023c69a37e12037855e31c606f0dc18d47e45f8299d385fa1dfcabaf6df298bb529e9da41f6d9d36f38f8d7fb5ef7930886"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.99"; + }; + easy-todo = { + revision = 32677; + shortdesc = "To-do notes in a document"; + stripPrefix = 0; + sha512.run = "88b496c1f4f56d26ac2fcc6d82e28d71bf11418368d82d3dcb193f8299672bf41d6c15938f3f6af5ac28141f2a52d132844fd178ebb9694de7f7a22fe8f13eaa"; + sha512.doc = "b2c49273445084f94083ed11f43492ed8ca32582fd9ffe9d12ccb7afe316b06b1924a507c5a12ab5880cae40ef4ee196c6d3e5d05f916356fdc026acc0a9acf1"; + hasRunfiles = true; + license = [ "asl20" ]; + }; + easybook = { + revision = 70236; + shortdesc = "Easily typesetting Chinese theses or books"; + stripPrefix = 0; + sha512.run = "b4abd45311a400ba7812dba5ff6ca299326b1e062c4dfc301ba5e5733fbaf6ab131cc285314396003dc616f40ffb98987279e80575326d4b3258023ec6a8e577"; + sha512.doc = "01d8ce41bae5faa8f818b3a0f95c37827d6a7aa50fe5a74e7ad5e57bd40159b77351467d0c7c71f9513bef32739786078c2295ce3cf62207891f3bdba660ebaf"; + sha512.source = "3789d9428ff0ecb54b113d61160db88cbe86f40e097dc17d386ad471af388188a189008bc5000a27cf0643634c1bc7c8df59130c82388f1cadeb4b1ac506bb1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024an"; + }; + easydtx = { + revision = 68514; + shortdesc = "A simplified DTX format"; + sha512.run = "f3297c900999197a5acbd73b931bffb21cc989296777b4884d62792d283490e46b06282ae5ce0cf3b0411690432dfa442a4f00c693f4d6677b9ced6037234914"; + sha512.doc = "2f9fe3dd6b2ee2d326a05de9f38966f26ea5baa154c3d7fdecea4af944dd041858b9e66f593b1a246bc6a3fe7d44d64fe1ddcb72e2495917bf8f4ad38b6531c5"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.1.0"; + }; + easydtx.binfiles = [ "edtx2dtx" ]; + easyfig = { + revision = 64967; + shortdesc = "Simplifying the use of common figures"; + stripPrefix = 0; + sha512.run = "37a8654ee9f53ed35003d7d78fdae32ef195aaebc0530310e7f00829cec431d7df4f9bd807da8dae844731650a79a7cb9f7a7ca20c5dd540bafdca7975237503"; + sha512.doc = "1a197fa61d347919b34bd8735f5265d058e5a932a638ca91d34f43ceecaa155b9277db8ea40178b37bd2bbcaec4f0853c2d42ebdaf16d37e223da45f305c330a"; + sha512.source = "7fc5ad4208c6f1da261180edbe2cb1c11c8a34f87479199c7701986e516be43f05be6a226f75828aa2045a7fff0ad735b192e02e9739e381e8c64c66dba33310"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + easyfloats = { + revision = 57204; + shortdesc = "An easier interface to insert figures, tables and other objects in LaTeX"; + stripPrefix = 0; + deps = [ + "caption" + "environ" + "etoolbox" + "float" + "pgf" + ]; + sha512.run = "2d02a55fc3d50e5fb79ebe8188300db47aaecb42089843033c569ee0508a38f81e9409d872535e1f7fe3b13a067bdabbf8249073b803c8d232d08aa1d5520d48"; + sha512.doc = "d6e96d7af908e83b67b77f0432e6ffcdcc55b64bc63ac360e42291f16adec4ab6655a423f5fc8f31180071afc5645f47b7ecb2c1c80af719b6cb0cc6e77948da"; + sha512.source = "b21681d30b8963127d603bf81b140851b5e8ea17b63d5979bc05bcfa68efd67460b9f0d0419a69c44606a4d569f5840b3c8d6f0ce7b0cf18d86c1fa104776b5a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + easyformat = { + revision = 44543; + shortdesc = "Easily add boldface, italics and smallcaps"; + stripPrefix = 0; + sha512.run = "f952227a7b0e579d2bf432b3a72e80a45e8adc22ddd9e7af380de54c12f04acf6c4a88dde5a8e7027d11fb820448fdbcc6a343500ae493fa20341634fc64aed5"; + sha512.doc = "99b5f56c6004b72bfc7289905d2808b5e3c743449896e2af88a7b5c23bae3c62aaf2da9bee43192c662be28372bd856dec1b78a56626d5b1eb91b5e21a759356"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.4.0"; + }; + easylist = { + revision = 32661; + shortdesc = "Lists using a single active character"; + stripPrefix = 0; + sha512.run = "b1ddb6242b9ad2e40785602f942d4381a5d72a7d35784bbc2a1732ead1fbd9d730b580226452e9f56fda873b174c56f9b433f1193e0e3424efba4821f7b714ad"; + sha512.doc = "518258b7d24763477376657e128ef3504d2c8e0f71187edf9edd34825d567f9cdcdb09d61a37d99655959d7c76edfbe550bd08ebd7760735e46fff33bddfbf0a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + easyreview = { + revision = 38352; + shortdesc = "Package to provide a way to review (or perform editorial process) in LaTeX"; + stripPrefix = 0; + sha512.run = "4efa69b2e6280333a89022f93a95c8af4d22cc9b82c4e8692291470af83696e7ed524c77cfe9d9c397c4136c0ebd8399a8ca4ab47d42b84da35bb79189ff1b6f"; + sha512.doc = "4f71891df0b1dfbf32be06a427f34e5c45f73543b3acb9117487d2bffa46f5b61b74f795249cf3d806705beab710c5a7934a59a8e215c87678e778db517a0832"; + sha512.source = "8e4375d0711a1fd8ffb3c43a53b62e5e9b84ea90217c21a7155e514a4a42b8b34c36a0f0a839766d7e9b4eee05a6cb36ffd1da98f1c9f756d67fc8ba0acd4807"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ebezier = { + revision = 15878; + shortdesc = "Device independent picture environment enhancement"; + stripPrefix = 0; + sha512.run = "ccd80579b8c7e7e3500ad644f8a418bbd48ad1f2e1cb2aaa82836477553332b43092bb760c01cd7412393ee5b8bf23c055361f111467c71bd7061459781557ac"; + sha512.doc = "b81d28abf5c8b4a3dbed9219e6519e23fa5b94428baa8aef0ff32dd4893b24524e49cbb8ae08327a7ee59eba93cb0fa2950883d22296451c1f7949225f42b1f1"; + sha512.source = "ee742d7061a7891ad2b9cebabe827a408750f00ce2012bee8ae787bfd7b6d7ce8e968614d3d3f9eee72072560d47d871fc0022bac8ca8231643f85adf31218db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4"; + }; + ebgaramond = { + revision = 66604; + shortdesc = "LaTeX support for EBGaramond fonts"; + stripPrefix = 0; + fontMaps = [ "Map EBGaramond.map" ]; + sha512.run = "4a676d0016c5b3c4e513dca01e7e2f1b5bfbc061e111935380af4937bdfe2493927b226b28972c060ee0c09e7c27c6bf828ea09151eec0b8df67530f62e30aac"; + sha512.doc = "82713ea36e1eeb1d2673a049d9ffcae97627406571e6e8e47fa6a6853511beb5a5eeef8a63fbe88e6c79539b1fbde880d0b2779f6f01f20eb7b1c7fc716104bc"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + ebgaramond-maths = { + revision = 52168; + shortdesc = "LaTeX support for EBGaramond fonts in mathematics"; + stripPrefix = 0; + fontMaps = [ "Map EBGaramond-Maths.map" ]; + sha512.run = "5d65f676daee62f96875def0faf6d1fa217143046768985956372473b4cd3c6c00ca650cdedcdf677d6ae6a03c65743d30df6d32c36cc8366d8a1a9961bc11d3"; + sha512.doc = "d2207e0f6535be6ed1a53fc15717a60fab0d473da4f307cfc70c7271fbd93e7f6cbd92d1c0f0738da6d1b607832cbed95e5c87edd53cc5423f35f287289b4573"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ebong = { + revision = 67933; + shortdesc = "Utility for writing Bengali in Rapid Roman Format"; + sha512.run = "c38185b31613af4d6b27ffb5442cd404c1eb05669605a2140db85ae3074a3a7739c3e375e3cc16736f9c2889224f33f685d503b3908f4009fa308be7737aa499"; + sha512.doc = "a3337ca9bfe756672a66554b88feb59a49f66ecd7d1aec3702d74f29bc53ac1052394bda679a4cb4aa7509c5eb712938ed943a28c6f56a749c926b8d566eecf2"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "publicDomain" ]; + }; + ebong.binfiles = [ "ebong" ]; + ebook = { + revision = 29466; + shortdesc = "Helps creating an ebook by providing an ebook class"; + stripPrefix = 0; + sha512.run = "3345ec303d77965800fb78a1a6b0645c206534bdf84e5b5287d23fb273a720025ec770527d662a5a535e98fb6cb9a6d37d50569963ca24225af8d626ea7d4dfd"; + sha512.doc = "0aba8d5010ece8e6e3c155d05a87eea960d8ec1b4deb1cd7ba948b4106eb8e20d752d3032696bb98c1d23b1927317d3d53a79fdf0b62e9053245aa86ef6e79e5"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + ebproof = { + revision = 57544; + shortdesc = "Formal proofs in the style of sequent calculus"; + stripPrefix = 0; + sha512.run = "e2b130cbc7b98555ad010ab5bc5226c68f413581b3128245500ad3ba734e4291c91cc42c96ee4108a1f359fb7cb4c884dd717aedba9e594865466e6c29d13be1"; + sha512.doc = "d5a1b900c73969c590921f3fea138e1ece49d9c9c4f1ccf7d3c1c877f501196a08d8099afde9913b83e653f4a8937e91878640975233f5482b6538d262a6139f"; + sha512.source = "16145b4ae4c6998533ed85df9a19abe7108ac13208f19fde0906280f68d96817df87db2db89ef77e1734e5c9ae6f2825939ce670856d6f35429cde10442907f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.1"; + }; + ebsthesis = { + revision = 15878; + shortdesc = "Typesetting theses for economics"; + stripPrefix = 0; + sha512.run = "37df2bd7749bf91c2e2a6e27e92a9222ed9b9d499b3a9bdb63f7751008bf7a4bea20d62bd59e8672b7fbc7bf0caa1ca77ef797c42224fc4167e5212f21cafbd3"; + sha512.doc = "5c508fdf7304668a371966d1be0198d71cce4ec762aa1b5b480dc495f47dd13d88f678d8613ed266e1d8e1353811e3058c31aaa5ae9f181c34c6bcf40adf5ae9"; + sha512.source = "0e35721d759fac3af82d3c627c5520ed60c36a83e50f10a717db990f2bcf5a3b22a0b28cce5f3926ec0a9859d5b08124efbe24ffe9a64f9ddd15f45f3246f596"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ec = { + revision = 25033; + shortdesc = "Computer modern fonts in T1 and TS1 encodings"; + stripPrefix = 0; + sha512.run = "a967804b42bcc11e766d5b74de28c54d167625d2b108a34bc5e49351533ddcfe3334e4a7a34966f8d159bbde6a80f84b4d216553ce03fbcfb7a4b6267574538f"; + sha512.doc = "bcf6617cf66af91312aea98f6c4a034f3af4ada14687414e7c3572e319fa4bd957dd25ebf557078297950d8ba8fd02229c5ad53464077feda462263b52536f29"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + ecc = { + revision = 15878; + shortdesc = "Sources for the European Concrete fonts"; + stripPrefix = 0; + sha512.run = "0f91383595d8606d0a118f8111af0531e0c53fe383511b6424f7cbbf70ace9c4d94dd379813bfceafcea11f6be361bf7d8df2088fad98a42a5e5d31476581f11"; + sha512.doc = "e3263aab5c8ac9985c579d4fba121085419d5c28e4813798402ad67213f96575dac0776d18918edaa18d42d458937a1e60ad666b2a01dea445675eea7e32b2c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ecclesiastic = { + revision = 38172; + shortdesc = "Typesetting Ecclesiastic Latin"; + stripPrefix = 0; + sha512.run = "f2518f8f25bf4b7c7fd34ee5fc271d08c3262ca2d90e271e02db96ef4826bdee53565f004fddd89e886258716874b101e7fb63b46a6124ed13b67facded6ddcc"; + sha512.doc = "35902f78af7c9acc42e23ae1d5c39ead5d92f0cf73f9c27b3f15d025555ed08502709638dec3788305fa776bb2924eb43e691c6e69424b23c21110de3160b60d"; + sha512.source = "9661b16b8d3af5e205e99a7b8da8ce1913ac1ef495f3e02202ce7cbe1fe786692c64b4a82913190db42f922f33d939069cf423b55af53792808900ebbe728b8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + ecgdraw = { + revision = 41617; + shortdesc = "Draws electrocardiograms (ECG)"; + stripPrefix = 0; + sha512.run = "419650d8ad24b9e08523953596a79c318740b2dcb7fd18a7c7a17019fe17cc66439c0acf56a7a7f8176349df0d80b44640511269d498cfa19aba6fb1f353923f"; + sha512.doc = "24968ada8568861eb973967b33827642e1201d002f73d40de5183a38d5f447a2fb93feb1db32807829c071d1a1147039e34ed4c287886260453b9c9737693986"; + sha512.source = "27ea4e0f4d184883eb0515cc95b7b797ea215626fb5c4003fc02bb490b6f3edf1d9422a7f764df28372d9ded429dbe47645bdaa8fa57c4517ef438096ac68801"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + ecltree = { + revision = 15878; + shortdesc = "Trees using epic and eepic macros"; + stripPrefix = 0; + sha512.run = "7461fe472dbd2ecb4e692cdbd58d5b801960d160bd7e18fa7d5ebe3e42defd11faba318d5d9134fd17275a4271f4c7761fa2d65fc1f202b4eb7b0fe3968a9fbc"; + sha512.doc = "3dc607ff60f9e738476b1f5c801801e3dc10713d7f5dc4b790b92f454fec1e68e9abe8efa7e4b0464ed6ad854d7971e241987fd63d406ba9deec9c99f8bf229a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + eco = { + revision = 29349; + shortdesc = "Oldstyle numerals using EC fonts"; + stripPrefix = 0; + sha512.run = "7bed893bb3f379d61dc874280ccc26db037511ea69faf37076f3cfbf01cf3d747706d40086eb99c502f215f026b2e357e44e8940a859559c3a5d9876bfd70c00"; + sha512.doc = "3c2042779dd30c8ff0e8f09580b3173f3dd43659ff2ca94c52500f989a338a29799c22eb08c493dfa82496117d7fd7548f903f71fe488727acf4e517dc6c0377"; + sha512.source = "355f1a47eddba5eedf9933d0a137045d9cb06e3918814754079e7dca0852d2fb10969f0c48a030ef9dad923e7131b6e77af8e1e8b2954b3d70409fad400ebe05"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.3"; + }; + ecobiblatex = { + revision = 39233; + shortdesc = "Global Ecology and Biogeography BibLaTeX styles for the Biber backend"; + stripPrefix = 0; + sha512.run = "bfa49fbd340223db68ae6d0906b617c06605a41aa141ce7863d5ab85b4da44eaba554b93bf163f7e4b7cd2c5131e22ba30161082663588ce85240fe2147433a5"; + sha512.doc = "e12bf5be5028e848baf10fed969a5ea94e2246153b481fc1b8ab55a6fbb5c356391ec4ccdb37ae7c71d76885000d9d74e46271402ed83ed08d1d67a94cf372d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + econ-bst = { + revision = 68761; + shortdesc = "BibTeX style for economics papers"; + stripPrefix = 0; + sha512.run = "e46ee69626bcf1fbb051d66572e1335496bf7981023540707cd267624798d4b4e75022cd85e0bfee05a227cb20b65c3b70053a4262b662269f905ee89569d2f8"; + sha512.doc = "dfda5046d25922e563df6deb93a9d4402f75c883a8b449f70430c7ab7465e8d8cc392b585e5aead7fe499ed9143d5928bb556ad7ab4c563d54be11270cf8cdb7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + econlipsum = { + revision = 58390; + shortdesc = "Generate sentences from economic articles"; + stripPrefix = 0; + sha512.run = "e3b007e83980cc9d7ef7fbc1f7cf067d757ba29c886d20f6c53d028236cc688fad23d7ad24cbfde19b6adb77a159b10f2bad617de009b2fa769aaba042a8ff01"; + sha512.doc = "a540e4cb09c88d1614ea0dd46bc35396d9f11a39089dfc9d83c31587a2f72c0537f5d7fe3c8ba1a25559d8b7fa4dd75a577820eeb02386d50fe418b50c6fb8b9"; + sha512.source = "bcbd36e3ee0ed9e941e34dece41fb4e927f5f826fccfda3612f4757d72b7485cd34e9569d867435eaddaa763b28199db765f9caec107b2e6954a3b9da8e44a37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.2"; + }; + econometrics = { + revision = 39396; + shortdesc = "Defines some commands that simplify mathematic notation in economic and econometric writing"; + stripPrefix = 0; + sha512.run = "40c205421ca11111d2aeae9f84b4e418e6b4f260858805c03029753af03def61221b81eabc18dea5fd4cf5722e3dca1ff9f575264257db3a8431b061177530dd"; + sha512.doc = "b5992f38536f0e4ec1c570d78523530b53e428d922517d0ad380ec76dcd2ee21243b9979e876a7f809b1581f4c4b6907bcd3f581dff97c13a0fea2a0fca1d790"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + economic = { + revision = 32639; + shortdesc = "BibTeX support for submitting to Economics journals"; + stripPrefix = 0; + sha512.run = "d8bad4a76eefc8729ea06e93a63adadfeed57de5694775bc44f1dfe03217101609ada6d12b7a2382b9d80d068f0c51fb2ef45c2cf289fe294efe23fcf0bd028a"; + sha512.doc = "39c319f14ee3d6fb10fa3c4f5d3a873322d332bc181a33a70020a9fa787383b72809b3b9aea5fcf4a3cff9930543e0d0269f74146c12f2b0d77a4f77c159eeb7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ecothesis = { + revision = 48007; + shortdesc = "LaTeX thesis template for the Universidade Federal de Vicosa (UFV), Brazil"; + stripPrefix = 0; + sha512.run = "bed57bb0ea79c74517b26e51d88966f9a05943c4df6464200ffe36f486e9cabccaef2fced0a231b40b40410ef32c44a3ebaa984e6def30bde5d426dc68e42309"; + sha512.doc = "7e1e3716de1eb964142a85ab31e28fc807ca1433f964e44cc8a7103b9ed023457bcdb01af2797a5e22fcf75a2e851d9c534f17937fdc44e4ebb6b5a670c6c115"; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ecv = { + revision = 24928; + shortdesc = "A fancy Curriculum Vitae class"; + stripPrefix = 0; + sha512.run = "0ff0a352516aa90a19eb1a0a9bdc651601edc63f03c5cce9face4bd45b359734d954e2b7859a0244015e3933eaa2d3803d5579ab9260dde51a0ec89db8034910"; + sha512.doc = "1cb8871b552a3d91fb59c644ea98373742ba9bfea64a92911f67f2795afaf01babe82a691fb3344f236e42b92860b754d7e92132b266713948cd1a6af13c58d7"; + sha512.source = "e17e9d577cb3a562a381c8ee8a09e7b3bbdd236812fd9e647b72fa18d6f7b11c9a44f70376d5dfdf2a3b81d1480b055d23e8889661b557e88c03f02eed033946"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.3"; + }; + eczar = { + revision = 57716; + shortdesc = "A font family supporting Devanagari and Latin script"; + stripPrefix = 0; + sha512.run = "47906067bd5e2bfe28e6451456e2187fc655986d4eacc89e9c3edf67bdffe7f54ef2c14029c9934db6c85acdacb006cd829255c2209d2d1dbcf57a98fde40e3c"; + sha512.doc = "03fc47faa72ccbfbe696e68bc5f9c332eb7262cf1b3129c6b83fc5f5e2b5c3e0ba93b047dd9eb6d92c32e218d303896272d0c1d3d3dc7fd07b80757ced9f231f"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.1"; + }; + ed = { + revision = 25231; + shortdesc = "Editorial Notes for LaTeX documents"; + stripPrefix = 0; + sha512.run = "a6999fbe2a9a44f961ef60d3da65ea306809d1ee5c39d2fc605982083d69c3c723a0e18f4042cbd441103421cb569008925279871ea8ceeb0af4c4a21b746943"; + sha512.doc = "cd7bac245c14e969b5162b86cfc76e0673da357fb1492ba311930ea7e20a6db61e3a13be2069f4f589ab57cba9fdfb0fcc8779ec8607a624437d1b2bd746825b"; + sha512.source = "7736dd9bef8c265437675d87a6b70bf0bb67ad736b668210b7187ddfde899b145050e18a9d54629b966cabc8b46028dc982b107c0f869e581669b663d3267ba7"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.8"; + }; + edfnotes = { + revision = 21540; + shortdesc = "Critical annotations to footnotes with ednotes"; + stripPrefix = 0; + sha512.run = "3ffca21a97b1e54045129a8894db25d677a54c791e3453f53285741bceff0eb4c7cc00e81706ef77ac475a0f54a7868f2e9b444df0c4e4ba6b161fdfa954dc07"; + sha512.doc = "144e2e22c4ceb6ea46235ed51b9a1ad4b20aa524af7b6eff617194aaec4f1606d857a8575e95816b4ef089e5c7d3fc1e2fc8e622486bafe9e5a9ace22bb44105"; + sha512.source = "9fb306c9b77f0988fcc2dde74336687e8678364e2d53167bff8053a5888de1cf51240778281a7c864a7b8a66738d2c894e7e4b7a88871f0f7ce0e40c61b706be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6b"; + }; + edichokey = { + revision = 56223; + shortdesc = "Typeset dichotomous identification keys"; + stripPrefix = 0; + sha512.run = "c598495449919a67650e7afcc10924cf93f4c29e1dd32305f0581910aaea288d43e6c8c1b91ae9d849b354e343538350ef0d6e78513998a9d2fc6023cd3cf941"; + sha512.doc = "07a8689d20663340d5398a26cd548bbd53c5e6d5c7eac00e9e6478c780e397e765a8cca0e4b41a7b70f09130a1c7fac5326e5f2c46b95f40e11f0ba88b1b3039"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01y"; + }; + edmac = { + revision = 61719; + shortdesc = "Typeset critical editions"; + stripPrefix = 0; + sha512.run = "12395b2429372cbf88794c197e28ceab4b69ca7d14cf78524e9538491b2ca8d14714e1ef00f2643a0e3e62db559f12a9a53a56d4bc7f54420d3f125727fca557"; + sha512.doc = "d78db33bf2b2fdd17f23eae23ab9605efb29a217e52d89df5feb64db1907c1b5a497441eeb1fe2373342b7c9b09296c06efa24d6776edce84406e22a1967bb64"; + sha512.source = "995092e2ea0776377938076b67f25042329ab76ef31f83f6f40aba449a735a90bc697be52f16fa6a2ac02cbe4ff2ef99762fdc03bd14eebff7a363f6c7f46c13"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "3.17"; + }; + edmargin = { + revision = 27599; + shortdesc = "Multiple series of endnotes for critical editions"; + stripPrefix = 0; + sha512.run = "242e7eff25ffb539353b73c18d31a268efaebe4fb51d9ba1cf376346e559ea2fb380743b29056aeb8e4db2065a660bf59e7c8dcf5469f91c39135be2b8c9527c"; + sha512.doc = "da77df03b3eb89daa0a544d61c88956a7105073110dd9e1f4d1a753805bdf722a63f5a9674897f4f09a92f689d6bbafc190c870cf5784e02df7efed781dbbcee"; + sha512.source = "6f3b848e12b92f773ed23f51bcfcd52fbb8209906b937486c87ee34cbe29d40739cb6c20799ce64bfbe7b0e3dfb96d604aaccd005ecc1dbb7126bf5302d3c814"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + eemeir = { + revision = 15878; + shortdesc = "Adjust the gender of words in a document"; + stripPrefix = 0; + sha512.run = "81679a08a320275221058cf0a73d71489621bfa4322a4b90759f67253df06e5c98c1325846966924c145092d9f63d9ba51544d0640c7f0827c7ebc42fddf9f3a"; + sha512.doc = "4f7a67d76504c4fa8de1f7f4e5db19c1ed1509a3ee68d93811c84e3ca523b8ff040d61e14881ccf75d20edc7c6b52550b3b3fdfa58a9a73bf21ec7f8b0b719aa"; + sha512.source = "a75e1bc385293e5e418af04a1c03ab606c5c77fa95bc6830a029e53e4298edd853c0bdb92ec0b97994fb8d2b7af293c3ef60f3d14974b87e079f15f904436d4b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + eepic = { + revision = 15878; + shortdesc = "Extensions to epic and the LaTeX drawing tools"; + stripPrefix = 0; + sha512.run = "37930ecdebd43ac8ac1dcb42da4d4eb4b5ff371605b9bfe4675ea861f4edff7cb19703669c8356c3d69e7ccc09789bc536714114397c3bca74fcb4a22b6f4d9b"; + sha512.doc = "02efd8775f6d0db35fa4682c6bc715fe619037a6531de60a2955fbd7fca01d97a8e6dee0109a8cd7cc8237bd694c64797392991e5c203baab49dd9857b0ccb4c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.1e"; + }; + efbox = { + revision = 33236; + shortdesc = "Extension of \fbox, with controllable frames and colours"; + stripPrefix = 0; + sha512.run = "5091324e7f5c05385296d570027a8546db4220a24da330ab85ef5d1185772f51b4f200f63eaad0cfa3eaeafd3d055509f4ffbdf798c1139a60c5e572ea46926e"; + sha512.doc = "394387e09ecb0d497014a62fc1caedcb3e00148f6e0a9a16ae1b53efbb4d5cf749e154e4c905d197280e4ecd9bc88ea07ab7e0c004b8c30eadbe7f9f414c1345"; + sha512.source = "4739cf6bbe23b69605079bdd8c39eddd6b44e192c5c335001c9612598f2a005e98b853bc02ff67996b63a971b200996f35de2331f230d9c43ed73ad9a8a98a7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + egameps = { + revision = 15878; + shortdesc = "LaTeX package for typesetting extensive games"; + stripPrefix = 0; + sha512.run = "b8d1c056783c4a71484a00f0d80de4eb9de3beaa54cc4dc71e5a7c171871b5dacba753ad03ab196661b1bd73cf9d2eaf202a813b73bea405f807319a143644cb"; + sha512.doc = "0216a85d539ab19aef8c2c4f313f5095aa39e4955ae9610c14d0243081b7af98f50a74a2f7720b376493e660a5486f83e69b41f8cb8017ff66a8e706eb9ca71b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + egpeirce = { + revision = 66924; + shortdesc = "Draw existential graphs invented by Charles S. Peirce"; + stripPrefix = 0; + sha512.run = "fb91855cd9264b72df852d4adc5d369b26efc5305c032120013d6cb18e99a94c8123cc7c9a4cad86ef3144609f0a34f3645597c91aabaf165a51b903b24c9d11"; + sha512.doc = "c78830f07e8e3caf99f51b53783112fbc7b6ada78ecc284a53e90c532331ce9e4430540e5cffed679b447b9e23cd5bb25c4d437d07a127e65e142322cabd65fa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + egplot = { + revision = 20617; + shortdesc = "Encapsulate Gnuplot sources in LaTeX documents"; + stripPrefix = 0; + sha512.run = "c96cc3185c09f66fc6a4c19958b88d178cf0b6ea9d889938df5a07d4fb7b19962a9c17ebe0a906ab19a8725808aa09ee41b39a0379fefbf8816a5e78abf9201f"; + sha512.doc = "e6e55708004cdf3dfd753071e2fc242428a6636944f3ea65510d2e9f8e2921b869ff4a22d100b43d70ba0708a5b19f002bbe21f57c858ec72b11ffe82e161e50"; + sha512.source = "45c810de39612dcd60d71b4acc8aa9a7c2c22c1eab8e1ca1628ced9873c86b0ff31035ec5f72d89decf91ba552c4e3473249138f557bd650b9863c5385502436"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.02a"; + }; + ehhline = { + revision = 54676; + shortdesc = "Extend the \hhline command"; + stripPrefix = 0; + sha512.run = "759e123a2418acd7239c4b897e64c146ffb84cc1646d331acc5ca498f707b916c1392f3fb9b97d2916d745e9afcf9c630a5a94e413ecd0c17fc2a8b13f773d3b"; + sha512.doc = "79db947da1c51811e834999889c3d089e2c5077d2d21fe133f6879a87afae4e2c7fcf1f07981ef9335a6b7234f083e74e21364be3526448ebdeda6ba75815fac"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + eiad = { + revision = 15878; + shortdesc = "Traditional style Irish fonts"; + stripPrefix = 0; + sha512.run = "3123d601a5f5c34c45bff20eb052a0934a2bba9d693e460fdb84908ed327eff8b3a022a5c617c8818bd48b1fe72b9b0c48443e0cb290f15e94334152f1f5e5cc"; + sha512.doc = "546bbad79f9f13e420b05b318010f078ea8844a02cedf11faa506d41073e2e0668356291a4e12758e5a37586e4aa9c79c17c8135f244756c39b61076038fb8e6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + eiad-ltx = { + revision = 15878; + shortdesc = "LaTeX support for the eiad font"; + stripPrefix = 0; + sha512.run = "e052333d39e72562e8e84d0e7f6af7066c2068a782422f612a26bd2903d8143874cd4dcc556d7406f3601a6b3a28506a3c0edc92e4029d124f02fe91edf0163c"; + sha512.doc = "907a20283eb78965dc4d8fdb46c542937c70c7a3f2849984034f9f37872d4d3042064fad0ee232132aadcb7daa4d4ec4b9745f8a6d0406dfa7b929ea68be0d96"; + sha512.source = "dcdb63542954048aa74a1a412cef02c16706bb7f66870e72ab4c772e2e41048c255bd02877fc60ffdef15b09e229ba721054cfbcbea5ce16fdaa181ca0bc8283"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + eijkhout = { + revision = 15878; + shortdesc = "Victor Eijkhout's packages"; + stripPrefix = 0; + sha512.run = "448f3b51c984a1ec81428c1840ba01d072cef4d1110b85f8d4f4d786d02e8d08e702e0b33e757035aecef1f43b604746c7b6f492905fbb201fc1a34ca6fb859e"; + hasRunfiles = true; + license = [ "free" ]; + }; + einfart = { + revision = 70318; + shortdesc = "Write your articles in a simple and clear way"; + stripPrefix = 0; + deps = [ "minimalist" ]; + sha512.run = "5e15f55394c35e033661c00295fcde0ccd424532ecdcf3c55f134ba7f990ee95961fe9b620a1addb2cfaddc97b030296b4ec9dae29a1d025aa2944d7130574e0"; + sha512.doc = "56b8b1415b0526af7610502a65d13f304f05f18def4fd4c2870be9adaacefbd6e9cf34d318f135d358a85d56eb57f4f2fb583a529c43d4ffe9bed729310ce4ca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ejpecp = { + revision = 60950; + shortdesc = "Class for EJP and ECP"; + stripPrefix = 0; + sha512.run = "160b09a6c0abc694831cdbcb17c8fdd2feddeb27c82c06d70e31a5991c8488864cfc99b7e5768fe745a09ba811a5cc0c108428c6c7f3dbf3d8da7455074bffe7"; + sha512.doc = "206012655184167bc27c73f4fb3b4cd14e6a85dc2c3faea1eaf98d74c89a8e34765aa1f6c47c6a9aa1bf862c98b1273d19e33ebdf099ecbce674b6f7aa39e7e8"; + sha512.source = "01f26bcc15dc2e3b926524e6e0f1dd9739f7c5333bd947d5a1c83bd285e34e3c997c68acb6b33993a281f0dc81d751a9b8eaaf17753531553c6a366b6b60d635"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.11.3"; + }; + ekaia = { + revision = 49594; + shortdesc = "Article format for publishing the Basque Country Science and Technology Journal \"Ekaia\""; + stripPrefix = 0; + sha512.run = "97479cb146f37e0fd80fbcf67db44a474d96da9897fb058073b75bbd9a109f16dfa36bdd97c5fed5397255cf0320028ca687955fb40e069bdfa262af50773c99"; + sha512.doc = "f95512969ca475b87f09fa3b61e2be1ebf949161b7209721579f7ec1399e6873186535ec30dbee092fd69dc427a199daa4f94ee47cc08a0fc37fbac6213429de"; + sha512.source = "f39b1a8a90bfe899fe914b6a4e99e08334ecf01ca54bbd6275ab9edfefc12f7f165eeca09b6195532ff92d72e4aeba63e94be7afe00d8215a86dca3695d523c7"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.06"; + }; + ekdosis = { + revision = 69568; + shortdesc = "Typesetting TEI-xml compliant Critical Editions"; + stripPrefix = 0; + sha512.run = "2b69616e44379680fa41e2e3f42dbac8d052c7d12e6b59e7e56fbe3c7d7f581a44d3cd2cb91d6473b8fd0cbcdadc68f184feb2f7cf0fc2c868f03edef7369f85"; + sha512.doc = "7332370e43de4076fb6f595df6d24419e210c866e79630c3fde4cc50b8e7d7127232ee123443a2443b3f236bfa7721dd43e2dd78d81820f61a5fbe92245dc66c"; + sha512.source = "dffd9d9cb8bbbdef03c491d2ad6283d9b474ed4c5a7337a85aadce978ebb4ea35c161c11427d0fc09ecf61b9e5f10dd7e3c69b1e00d2f63ec2c27b2ba8bd7c87"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "1.4"; + }; + ektype-tanka = { + revision = 63255; + shortdesc = "Devanagari fonts by EkType"; + stripPrefix = 0; + sha512.run = "7bef493207c3de9580b8daf3af8cde6e5ae616cc94334b3d8b3de8c117262c0002ae73740df4fbf3f30df913cfcd7c5c51d8c9659c83d6ec060bd54ae3c96368"; + sha512.doc = "ebb43cd9951d120bf664ab177c70ab2f912e9ff0080cd42fdf1ba695ae13f766d75cafe77794fe69b626895b89956801a527a7ebdb2f87fb48d263f2c3e6ecca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + elbioimp = { + revision = 21758; + shortdesc = "A LaTeX document class for the Journal of Electrical Bioimpedance"; + stripPrefix = 0; + sha512.run = "4db2b191fdb73854bfe605efed30c4835a77180fc865eaf201f8405fccaf880e02ac9ef7802c2d215df8ad77d01fff611114c391a6c43190f95dc2b40cabd596"; + sha512.doc = "5097310e0e400c269a30ef8ea26f400ac7768f4a790ca5b79222c0480553434343de7b0976b18bb6d67bc89dc2b2ad2251c24e94e4747450275fd52a8c9d3285"; + sha512.source = "00fb96c43b0639f88b582bb26b6306d1ff112e9277c34f6a623d7643ac7a003b31a14b5a82b3b03680298e5c054c137f44a186804a90127ebba14442d5c71d6b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + electrum = { + revision = 19705; + shortdesc = "Electrum ADF fonts collection"; + stripPrefix = 0; + fontMaps = [ "Map yes.map" ]; + sha512.run = "c12af3a1e6a76d4a94f0d02fa5802179fd1f47e31be29e2151e7be3f569f027137c9d0268c86696d822b8d7a4c88ae2ef264341345c6a7421a8ec1026c104213"; + sha512.doc = "b840b153a134fd9cd923aa9f70576b7e586bca87d7f1b9cfbf7a1f25ac4972905989876545a914ce845096dd32579901ece93851012d057114c0c61b1eceffa4"; + sha512.source = "caec0c43c2870a6640863bc060e02c764b235336123777181ae1fab42e32053af0e2c09c226dccbf8bc31b450c720b69ae67f01b66b36d0ba308282637afb414"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.005-b"; + }; + eledform = { + revision = 38114; + shortdesc = "Define textual variants"; + stripPrefix = 0; + sha512.run = "4103aa370bc8314433b5cc9242390340467591bc38e2f5b820f9d35a1951bb9fe9e384b1d3c64a0434b3c3dc87c42463a0af5d9ff872180bc2b7a08d4b40c080"; + sha512.doc = "c59cfa6957a21c5e74d9a15b7621536170137447111f9a88295e79aa7a29dcbb3d1f1f1367afd7243d2506b864a53df41b0e10419592a5e4e12af8e1e90216d4"; + sha512.source = "3bf4fe6df4cb16c8ab7a3fc366754321c5a1056cbdd51a787da33d212c39ffa0bc73d394944b7b2cfe52b4f41abe0e3df7156571d3acc1d1c3ccd4d467798430"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + eledmac = { + revision = 45418; + shortdesc = "Typeset scholarly editions"; + stripPrefix = 0; + sha512.run = "644df002adf2f39acd9a6704a5c2e18e02f30d17c8e04173fb0f68e9daf5469bb6290c7e98ca181ebd45b40d54dbdf4a14fbbbe7dbe8f945b226ee086efc3972"; + sha512.doc = "14c8b024b6cc817a025b6a4870d3edcf956ac9e358107c80d29fcab41f343efba5b5832dc22cd11fe2e92bc74b58fc5d67982ab26a60230a5b92af4223543e04"; + sha512.source = "8d3436d3e3cf377148a52ea77ac93491abc66bfb1271538aa85f6cebc559ca225221b4b7dfaaf33426505b792ca57697d6edf5903b5d0e306434a4c32e06e8bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.24.12"; + }; + elements = { + revision = 61792; + shortdesc = "Provides properties of chemical elements"; + stripPrefix = 0; + sha512.run = "576b318c0972e8862b8d4cb9c248a3303125019a321b2f5efcc0b6d6c7dbc5cee4a1db725af49754360633d654447d83a58dfc7e25c13e91e034e73ccd5765cc"; + sha512.doc = "6adb7fd993275022e49bda34889a21ce000ff7c247d6c3747494bd67adbfc1776f4c2e8d9affd57dbe659740cd9a5646bd34ab87975d306e8568a27899555e9e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + ellipse = { + revision = 39025; + shortdesc = "Draw ellipses and elliptical arcs using the standard LaTeX2e picture environment"; + stripPrefix = 0; + sha512.run = "edcbca8843239eae7bd927d9bc6b5095d1b9a4d8db213e22c77ab4a7c5bf7a09781aa225af26f1e4127f263d5322c8138cf38ad1a7b19688468ba2ba56f840f9"; + sha512.doc = "722d50daf9863145c81ad2b97d6acf6b6229d65f868985878651b506b00f52c4a556b888ed848ac1194c4a68e793bc498b2b6b09132c8070b61b103e6ca9137a"; + sha512.source = "29736aeb1a6d64d0e94124e6c67246650f517fefc9761f58e70e1438c8380a25ce48d2deb180683da02f77ebb508302b3e446b534b7e56ba257e61ac6f5fd62f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ellipsis = { + revision = 55418; + shortdesc = "Fix uneven spacing around ellipses in LaTeX text mode"; + stripPrefix = 0; + sha512.run = "009bc55dac8eab88e27124317acbf9f3101959cefa4419b507ab74f49453f72f272db2b4826424f3d8c76efb50163c11d6eed63e1219cae2a2632bb629fba96a"; + sha512.doc = "7d0b4c51008203729df1bd50d2c2a2568f2426b7284f0d58eae4720a032e4ab469a5db6cf5656e57ceb0cc9062a7bfe1f3cfe20c51a3d08c85d55c110ce7ddcb"; + sha512.source = "65b536bdd6d5b429e2f1832b3d466bfe055be6074b43b60305b79ae9ea09172e3e7e82bf7cf3b4dfbf73507135ec4caa3d713c5cfe060fbc925ba7d2a8c09dea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + elmath = { + revision = 15878; + shortdesc = "Mathematics in Greek texts"; + stripPrefix = 0; + sha512.run = "66e11b5d5166fc6399337183dea142ecd045050176384e71993c76aeacf57c693495b5153887a95051a902167a8444c24ba6fe2ab2fcfc699abfd41ffaa96b18"; + sha512.doc = "3454096f8ddd220820709a83f4b5b741e80213bada631f5fd78292ff77f3a1963a487b07bb6c227451568c594c5bcaec9c1fe9724345a35478a68191305d5a97"; + sha512.source = "0ff2b6fd17db3dbae757d4e015007ac99628f0d1940e584643f9df2247279cbfe3ebb81e057884a38ab167aa18b60a8db5eb7b88e777653ec68675205ca0fcc6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + elocalloc = { + revision = 42712; + shortdesc = "Local allocation macros for LaTeX 2015"; + stripPrefix = 0; + sha512.run = "7bd72984c7bc1530e2659364b5e93b643db1accc8a034f6fe8333e26ecc12b8dca9cf40ada0b5986576e266e0eb7c801f9a3e4c2cb7dbe4d8c373ba0f0486ba9"; + sha512.doc = "6b2d6f65683912405cc97b81a7cef07b4eb21be4304a12b5e0e11087d809d32023ea8067a81c01d45851943af2efc4eb4018f3a0e7a39e08bdc821f87264d9cc"; + sha512.source = "c1dfe4848af6e1cdb57496b8f42f5f1744494857648ca1db92a770f9983d0ec7a4c3398a3a7b7d473204da475ffd0e33ea10606201edcd86f9cda3bf5bdf24f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + elpres = { + revision = 60209; + shortdesc = "A simple class for electronic presentations"; + stripPrefix = 0; + sha512.run = "6470db4f68936b14fe514828455d7fd96ff9393990982b805e5ba08e2281aa0a98c46551297dde6243e4ee3c5894d87d6fc48fe843177f9dafae102afab4aeb9"; + sha512.doc = "0c3a7e151414e8ecc2ddcfedf55571db3d09e3a3cdf58d42b3cfefc82e160ac2487b6001d6da152b7a7f192a21c2e54b1593c01c7376c359a342f7e5410d16eb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + els-cas-templates = { + revision = 62931; + shortdesc = "Elsevier updated LaTeX templates"; + stripPrefix = 0; + sha512.run = "ecb340e796a94aab2e26abeb7d4d72ba5d68adcb15a0d99d3511236b8be5f8ab21d8d32995b1dcf1b0a3ea15eb321df75bbc016c52630b06498b75e9e5f164f8"; + sha512.doc = "b616f6a170484f75dea1134f0570133b63ba40fd1bd474e13ae3e46249224b8ee7a777d0d18e11e828d0e5e59c2635acfecea99537060a7cea03fc2761dca892"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.3"; + }; + elsarticle = { + revision = 56999; + shortdesc = "Class for articles for submission to Elsevier journals"; + stripPrefix = 0; + sha512.run = "5a0a7c98a8e255e55468f9b01a43c33d757a38faa1b3130b1c3613648dfcbd0fbedfc69db99727c4406ddc0601249b2d021c680f83edd34bc3d64dcd4a7af64a"; + sha512.doc = "47fe52924e95cb8267d0f65ee6962fd56fdc4ce00ccdf49533ff7af0916a962bd8c045b31f2159d7c70d8a041f7c20aafc73b23a8982572d456223afbb85e718"; + sha512.source = "5887604f9a6ed0077bbbb2498f6ba7c1a3c8a74485688d40a6fb0e9e9765035d22e928b104876a19e42775fb766502ef71446e659f6d75a519e2b84ffdd2a01c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "3.3"; + }; + elteiktdk = { + revision = 66821; + shortdesc = "TDK-thesis template for Hungarian TDK conferences, Section of Computer Science"; + stripPrefix = 0; + sha512.run = "01ad0912bd93cb849013665046de7ec3773d90860b92c98201a7b075799cf6adcaad6f820abe95520e848f088c85b71afa78e49067da8a1abdea093de4476935"; + sha512.doc = "5d0fef08a196fd796fcd3ea74f5385b83b361c8e7f1bc2bb4a5f663a5d5a86820b7bea137790a973152e5f475008423ddc55f18613da3bc48be211bb79e3dc9a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.0"; + }; + elteikthesis = { + revision = 66820; + shortdesc = "Thesis template for Eotvos Lorand University (Informatics)"; + stripPrefix = 0; + sha512.run = "e533636f732fead1525c3264f96f69e19074728955772c92c381dedc42e0ed5b14bbdccfe5f9663a8a54a530f52d0c8e2fea556778751214cd626372004872cf"; + sha512.doc = "a3f8102e22a12d0a970e881d3937cde9a4f71550132067ef844fd72e35c6210dd6feef56d236837a2183fa5d749287dc3c4db4cad00dd4c09cbe47fd431a7571"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.3.1"; + }; + eltex = { + revision = 15878; + shortdesc = "Simple circuit diagrams in LaTeX picture mode"; + stripPrefix = 0; + sha512.run = "6de1507df2fe408081aad0f75b69d7c21807f238d37e3c6d9cd243b741ae1761aced90e948a0c570f28db5a39616954412fc77a87482c890183f039923915c05"; + sha512.doc = "1bdd0f64c524def46dd0a20482b9ad6925b0d06ea272b05d6163a23f61ad1727b099a893f5af7a7de4140bd264b1d3503794a4c9c11cf8137c5c6070d08fe0e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + elvish = { + revision = 15878; + shortdesc = "Fonts for typesetting Tolkien Elvish scripts"; + stripPrefix = 0; + sha512.run = "ca1496b488a85a32364b264706c9b4e4edde5c92681493b150942a3a8a2a32158b314a163ff4be8afbea489a75feb5dbb1c96e8e70f730530cce6472f9e46912"; + sha512.doc = "e296ece5bb11d273b33e801ecddb1b9bb93e5f8cfc4a7d62b1555ddca89661557149935b7c5a71880efb888364989715b4e39585b2de1bcd8ecc24203afef199"; + hasRunfiles = true; + license = [ "free" ]; + }; + elzcards = { + revision = 51894; + shortdesc = "Typeset business cards, index cards and flash cards easily"; + stripPrefix = 0; + sha512.run = "436449b4e8d6368fee200dd810b05db570d27846a56a5159422e7af74348f08e6f2f4c45cdc1aaf21d31cf0ac6e8552cc7f0968c2178ad4e65163294d771e027"; + sha512.doc = "c24119acc3aebfc676641b17a0db75edc30dab7eb3aa766e35291463ee6049c9570ebe05d456e0bc0fff3765bee514332cde7b80e7d1479ed440c621143b7457"; + sha512.source = "59f09337eeafa9b2ec6ff7bbfcd1d04535fe7d3defb942f858ef57a8007422358a68a72894ed120c3792da7c0f397d1a50dc093cc1dd2058d598649ab905d354"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.60"; + }; + emarks = { + revision = 24504; + shortdesc = "Named mark registers with e-TeX"; + stripPrefix = 0; + sha512.run = "8e5f2d559958083abbde5efe9e70b3cb3dc71cdddd3066ac305c310fd5a8b2652bc6b5ce66531963c5a5f9426ccfed7eee0700938ed6a515865ac8e1718de5aa"; + sha512.doc = "4deafa2295612c7428b82a4c8c2c19811f91c2d456b430b6ab59014b3cdb42a86a84e67319745dea469ae40f89b36d104d30db28228c825ba0d86436a37cc7df"; + sha512.source = "d7ded6022917a50689905c953808e9f4a43d03811bda490721480f823c4ffd36d15948e5693d73cb061a97f775e6590cd376ec20e0093af3af5b792d7d67e2c5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + embedall = { + revision = 51177; + shortdesc = "Embed source files into the generated PDF"; + stripPrefix = 0; + sha512.run = "c531feeb7557cfca45127d9c37c93bf5835e35efa7c8aab65d58594c30d6864deaa22b64ba90cebcb1e9dcb139b00ad64ff96238835b8e059169278fb602ff2a"; + sha512.doc = "be228eb577bb2a59b93c7684bc1fd47e9a4a505f6c66eabf434ad29523f978c877608fe76cd6ee24c8942889710270b8f304170f445e2a1408303d7c5a8a52b7"; + sha512.source = "f1d3527809502aafa0a0b9aafd02d25fdbb97ab795cf4306a4ac84dccb873111e580390eb0499dfe13ef3f0bd7ea1a61e90220688dc814de7ff21ab4ccdbb1c2"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.0"; + }; + embedfile = { + revision = 65528; + shortdesc = "Embed files into PDF"; + stripPrefix = 0; + sha512.run = "5fe36b7666c58f676b48fde16ca5f07296dfd2f6d28cb8861ae3d341020552a509dd79695afa73fe20c6a5e6e87d3557f89f66902e8f02f39665efd9fac8120f"; + sha512.doc = "bb2e63963298b2c3a35c71b83eecd6464c7e4841e1098177ee78e56d15e072a88e6c58964e9292d70d495cce513b46d7b542d30574a41f4d0643df1f3b6842fd"; + sha512.source = "6a8c7c8ccdaa01f7e36ba6fad9e1d1f3873e77523d4c8b6b1de222292515016ee9aba5df53846d1367e2d5be90f7c912eb4828c4145575e38cb940db65e62e9e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.12"; + }; + embrac = { + revision = 57814; + shortdesc = "Upright brackets in emphasised text"; + stripPrefix = 0; + sha512.run = "930b42ef834a50dab0889598e1cdc531a610c9a5a8cffa31f7bea5f3c55d947db59453f71e061c8d055da53fb50fe20c17341e47c2fe5bb35a604ceac71922d9"; + sha512.doc = "f56db972f586aab767cf7300a3fa34a62564a67ede77ab8f8b6fa03ecf07680692eb0023cd3ed99656235c5afe80b672a4b3e50ec8f0ef95c9744a48ee99c399"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9a"; + }; + emf = { + revision = 42023; + shortdesc = "Support for the EMF symbol"; + stripPrefix = 0; + sha512.run = "bc1b601aa523b30a54493ac92e15bcdb918775e9f57514b62357b85b5919fb05cc945b3120cea474fab714585fe2a81603f43eae51bb266e8989af6105ebc65c"; + sha512.doc = "f2e37967476ed678dce7c01f195ec03f77327d59beb2b15cc6a64ef92cc377700a2b7b528ae6c42497cde0ac127cd10c51e3ecf5fda0cf7954d598a0dc92b5df"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1"; + }; + emisa = { + revision = 60068; + shortdesc = "A LaTeX package for preparing manuscripts for the journal EMISA"; + stripPrefix = 0; + sha512.run = "dbe700eed5cb82ed687a5650fb58f07cd588d7a759ef67f0b015a795a732ec1b2d3019f637ecfe39fa240c93816c41084c5448d107371d209d40ce122fbda821"; + sha512.doc = "48529f12758cc7874b45ff5fd418641b322ac33541aee2665ee309a6b0bee8362c97fc2e31870fb34430d60343cae433f5a2793dc785c5a88d4f2e5518317433"; + sha512.source = "98437def2e985e2186bdee4f1ba1200807c1c1dc9882b41e60acf620907933417c774dc217c67e86a667fa84ca66ddb07f9132c7e3e8a105638097bc66b7d940"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.0"; + }; + emo = { + revision = 66944; + shortdesc = "Emoji for all (LaTeX engines)"; + stripPrefix = 0; + sha512.run = "633c92dde16b5170d5ea27fbb5e72e865300abf27054cd167652ebe598b90a8788d129c950e5a230f75201648b25aaacfb6b47aa44e994d05549c31a82600da5"; + sha512.doc = "e60b38c75c23bb4ec5d453d76fd2c815abe712d1c602eac6897eb1ec9b51f1d6a964fd5aae5c7ecf17956eb9d39104708e887b0efab0830b72b9ad37c8c79af2"; + sha512.source = "79cdc96d441c82b4f59b6f2bec0fb82b047d1b9540b0f29946c2d41f355118e3a9cdad2da2463ea4c9a0e26ca832a98db5b88f4445baf6ac41abff8b443ad1d5"; + hasRunfiles = true; + license = [ + "lppl13c" + "asl20" + "free" + "ofl" + ]; + version = "0.4"; + }; + emoji = { + revision = 59961; + shortdesc = "Emoji support in (Lua)LaTeX"; + stripPrefix = 0; + sha512.run = "5c87970b1d47489027ef1a13bd35958b54c7c8b7bb59f7a97a5293d2156e3acfbef13c3a83b5eac3ce8297aa01b25423add40d3d0e654b5e0007f34556449e5a"; + sha512.doc = "170a8e35c4f4c86751db4d357df39dbc215126465e784829cbd15e9226d04b92aca0d7836312c114d1c699daa5054883f364377d1f355f97024b63741aeede0a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.2"; + }; + emojicite = { + revision = 55131; + shortdesc = "Add emojis to citations"; + stripPrefix = 0; + sha512.run = "351fd8292800ce22d821351a6f69afadc87a24e4077dafd7a83b5f70b3f700c44764f2434255fde29532007faf952cb39d97f642a0b91c1cecc3b58d85753ab5"; + sha512.doc = "642c3656e3f6e89deab561df4253bcac0f98f1b65537ba3c78079ebc4d3a9336ce40fe8abb1955583e404b3945d76fcbca19845dbde7bd7c8f4db0a6209d80bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + emotion = { + revision = 69881; + shortdesc = "Make emojis more easy to use in XeLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "17516f0c2ffee5a1045fbb11b4f49f09b3cb14ae0dd223c8427a107a625b7910ffc4085ec3937a28a4cdc58614ae41512ed1059edb0835007b8b19d6ca1526e0"; + sha512.doc = "5cf42cff3b1730fa8fe9bf5268018a2ec7d39fa599528794eb01d5906f2dc6a85be5508651d5828c014b06fa4b1efd24821fd68a6d454649b1a8d0b1aec669e5"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "0.2"; + }; + emp = { + revision = 23483; + shortdesc = "\"Encapsulate\" MetaPost figures in a document"; + stripPrefix = 0; + sha512.run = "5028360a2b412232b06b0bc53352c7a0a379943c14781b49b45cb75aef044df5bda24449dbf13601d1a574e5349bd0f2d2f7b7969f10bf72b3aeebe9e81b6ecb"; + sha512.doc = "480edb224fcb42457c6252d4b6fd8cf42796e9b2ac72aa8d4bb22b3840cb10a55a509a47b8c504efbdba3e28192acee367e99638dfdbf9cab4fc5628496cd5db"; + sha512.source = "e80aeb8566f31c3582423abc2794cd468b2a7b3505d4d01cbcf261201e4e8a95ca6ed87c6deffa03c9f868762fbe8b2078bf8327172ee9a172605fa0e6e72c40"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + emptypage = { + revision = 18064; + shortdesc = "Make empty pages really empty"; + stripPrefix = 0; + sha512.run = "6379cbd0983ca7b58d2c94ce02a76e054faab1afb2942227469dcf2c4d572d9946921b6d24e9c7d2b5a82cc45e7e380a8ffae671f165ad0e2a3a611b95841352"; + sha512.doc = "11681a155df95f913c3d25cceb32b54ace35bfa5aa7541916c15473b951b02a7417380dfa5c30f5dc3de1259d6cad99859c31bad4c2f2056ffb4608c614a2e14"; + sha512.source = "1bdfdd32ed844651a109b54c65e7297222cb065a122269bd5c10cf77c6ae0e38b717fe182dad6bd0432b5eafb38b3d8631218599a46bb61a598eef4093a8ce1c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2"; + }; + emulateapj = { + revision = 28469; + shortdesc = "Produce output similar to that of APJ"; + stripPrefix = 0; + sha512.run = "12b73ef4234af72358c1f120d860b7ba823bb4d65f91cba348a4a136b57f8edccf3849eb36e95c50cc40445a5fe3908652c221b938ee34a17aed6b4cb265744e"; + sha512.doc = "2d226b60313de3387d87c373a23e490a66c2fe1a94e97ef2364e65fafb037a148db7f5162ab9d3f1d788a037fdebe02ddedaa772eb715dc1ec8fea941b0e6708"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + enctex = { + revision = 34957; + shortdesc = "A TeX extension that translates input on its way into TeX"; + stripPrefix = 0; + sha512.run = "e6dc0988bd10dcefd63db2a57999637b63187d8a234c46dcb148e9dfe8388800e61237d7b58d271b735d2658d40c1f81016b5018e239d556fb9615d35b4129a0"; + sha512.doc = "2bf47c879c6ed0fc539763c899d8db261135f1a0ef0052904d03a72663cff38d40d2fe7b0daacaf2d54771c7b9eb5e98b73ef71d2a733899d458803f8caee723"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + encxvlna = { + revision = 34087; + shortdesc = "Insert nonbreakable spaces, using encTeX"; + stripPrefix = 0; + sha512.run = "f6aa0a954affda9152f5b15958ea453e3c2979205f25a5d9f15e3fb189b2352a87256a345d382a3c7dc401eeb55360afa9cf942cc4779406b97cc8f8c47eba81"; + sha512.doc = "01f44c8205daf33006eaa73061d27c9e17ce5b456e73f427f797023cf94d7380e44180c347021cc5c17870550fc7e626bab8de6219d6b56000526aa54ba34efe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + endfloat = { + revision = 57090; + shortdesc = "Move floats to the end, leaving markers where they belong"; + stripPrefix = 0; + sha512.run = "9c3820ddd36934dcfd049ab766ed037119459d02e9c049401b910b1c14ae2aed93d94110db66f0cdd2149451e152b5bcac14866c7844ba4a47f8c0a27756f733"; + sha512.doc = "0004d60fe959415670b5173bbab6d37733ed82b537d714c7357dae85ff8f7204e316c48d2651b1b53cc9b6ad0206a47c9cde1acdeb6aae676a25e50f363238c2"; + sha512.source = "bc5150716b23d3aa1e3a66e29fca3e8f9703199feb05b4bf76834e79654c39b0f6790ef1f0c193abeb0acfd0b2717076d4e2c89069221e1bc45716e0de314e85"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.7"; + }; + endheads = { + revision = 43750; + shortdesc = "Running headers of the form \"Notes to pp.xx-yy\""; + stripPrefix = 0; + sha512.run = "55f01774d62616b81fc846af275067445c8979d50cbb67c8f6cdc362a26999c83c9ce5428af28170ab9e4c6262fc4ed8bd0431c5aee8aafa89e38bf4cdc30989"; + sha512.doc = "bbed9408161f827ebe39ae2161e89f1f15d8327f29f7eb18bf58f3cac7c58492529caf05ebe3111891520c406c547b2f1aa57d2927c5f857ea6e02ecfa9cf84b"; + sha512.source = "c58d68a17da865391ce4480dc02f3375ee6d311a2590f8505885c3ce7fed65b2e7d6c6dd5838f55f4fe3d7192b56217b7146646269938a3a10cdefd3c55bd0c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + endiagram = { + revision = 34486; + shortdesc = "Easy creation of potential energy curve diagrams"; + stripPrefix = 0; + sha512.run = "50cda29c5f045e45e0421efe11128b11be1206b4ea3b183d401562a9c8afe214031c993f885bfca67f81e8b4827e024a0aeb1d95e5a8a03426f72f414cfd17fe"; + sha512.doc = "0807629080916e9ca7451fd1975da985ac786326914521c21155c337acbf48888620e3bac03b00fbbf45bbb47740faaa40d1db768a296e4a6b1cf6c6671357ca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1d"; + }; + endnotes = { + revision = 53319; + shortdesc = "Place footnotes at the end"; + stripPrefix = 0; + sha512.run = "3b4d5b55dd1ef844b96d30c7d40d5ea56ea3082a9e6740e3bffb837b864823a2c5545a13fa79eb49f79b47ee86aaa28e15c64f676bd27e4987aaaaca76bb2f31"; + sha512.doc = "e4de81d6cf0d7bc686d84420dff1e390ad18747ebc9381c6df006f871f9d5e000aae5cd43a3648dfdab2806da83efc6b375ceb4a9110137ed6b373538a7a8b57"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + endnotes-hy = { + revision = 54758; + shortdesc = "Patches the endnotes package to create hypertext links to the correct anchors"; + stripPrefix = 0; + sha512.run = "abd177ac968efce6749d8bb80c327bd8c3617e14045d124e036f2e503eed7bc33c72112d46acebe84d8a0a2f25cf3d99fd02a514d3673f38ada9e7fef879e3f5"; + sha512.doc = "46b7ea667c12de23f0491af714e5b86fb7fdbef0e3c03d7c31e242dc715745824be08028861c0e72244695aee8bcb0ce2191746c8d1f906523dcbe6b39958281"; + sha512.source = "6771356602da1fef77f350eb8390abcda0f1267c0761bf255f4aedeca79fadf1c0255bb267b456469c1d8dffb1ff052e567d0bb6b07035c1f5d676d5ae2d4cdc"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + endnotesj = { + revision = 47703; + shortdesc = "Japanese-style endnotes"; + stripPrefix = 0; + sha512.run = "acc3ecb055add319d5cbfc4e542c1be490c00187153990dd42d5b9a23adfd19795bebe4648129bc1cd8aa8cc243111602b287183803db8b5962b23b6c60487e3"; + sha512.doc = "71e52552f4a432b8743e448142fdc8e49b9e1ff1d290b6d20731c083f62bb5be823db76720fcfa40cbb8bf75968b80875926aea8a7f67808555fdec160de1911"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "3.0"; + }; + endofproofwd = { + revision = 55643; + shortdesc = "An \"end of proof\" sign"; + stripPrefix = 0; + sha512.run = "a4b62882d4111a916588298415546fd402abf15ad89177fc2f57b983ef4060b49c7f73677add54c683e0ac8d40b91280453f8a239bb9da5e262cca20d12562d7"; + sha512.doc = "5953acfac90a34bb2c57cd813d220279fb96fa74415f0d7677ed7b7a8839b858f64b3c96d1dfd2dce5a8704e76ffc7eda1e5aa337585f6715ae229a759148ec3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + engpron = { + revision = 16558; + shortdesc = "Helps to type the pronunciation of English words"; + stripPrefix = 0; + sha512.run = "e525f8d2ad25b93566c101edd29a70d49d9f65f591e15bf3457671aaf748da1afac5d483389eada870cefc9e144010e16c561d0561d97ecb3ae240e21b5c5b39"; + sha512.doc = "dfa3ba98bddd11db47f308c988735967d1ec92c688081bad0deba88c29bd01c976bd1180342b890489f3026c964520ec1fa399fdb52f484c24285e3540a12859"; + sha512.source = "b47f186eb08ee68b769d61954b705fb5e0575f9af90968569a1928a6b97bbe5bbbd8b65dbd2f946a40ebc7dc1fc676a03effd7cc51924356531ce18fcc3c8dee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2"; + }; + engrec = { + revision = 15878; + shortdesc = "Enumerate with lower- or uppercase Greek letters"; + stripPrefix = 0; + sha512.run = "3856199a11043eb42062122d99f11a64791113ebee137b588b69eab7ba79d721349c2268440a4b801b0e7bc293fc99011fb9a70a732a03a5656cc6302cbd0054"; + sha512.doc = "f5402766dee90ec0cd2aad59db562a7314805072d4247e5930e59f5aebda9c1b87c4b6935028ec960bca4eb27a1bb1c7ff31b2a671ae0338e1058e24323d4cec"; + sha512.source = "ff2e4447135db1164447ed8502f45e9dc647cc3b8c9329fe21d3a279b40c2da0923fa78be44ef52d4d9a4781945976714140bd2837268d0537cd6bd6c430501f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + engtlc = { + revision = 28571; + shortdesc = "Support for users in Telecommunications Engineering"; + stripPrefix = 0; + sha512.run = "c1ad2ed5337168c70bcfddd35c72b83b19a1596bc7d9c71298eb82ad8637c984253c79216606060753d1cc5ad4f961095eed8be2381b786b12202f5b0bc748f1"; + sha512.doc = "4c6cbcf337eca115a856eda24924588208ed9e7491936640c8875d49d649d6012279e4eadfa7cdb6544e08fa283c341754d896c921402a2b1180764e8a8ff233"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + enigma = { + revision = 29802; + shortdesc = "Encrypt documents with a three rotor Enigma"; + stripPrefix = 0; + sha512.run = "70cf80101d3fe9a75e750f5b3df4db79f30f5ef76ed65f4bfb40f36e5c8c5f0d22468396fe3a531508dd484ed5929cd14d4e22734a92814a4eae9ae2ec3e2b07"; + sha512.doc = "b0509d252a2dd7b61339ed084dcb8dd4c3ec0e63aa6fcb7fd81302b82bbd3ddb0b68d0460e5970798a12b2b66e1f560b80c7bf36187553abf6531e0916ddb71a"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.1"; + }; + enotez = { + revision = 61490; + shortdesc = "Support for end-notes"; + stripPrefix = 0; + sha512.run = "0f292fbfa3ad395857bf04c50817376152765c1511bc1b922fb6612033a0924a416b83b38e15a36ee792ec5ba351614e93cf6b70c6b2eb8cf78ca74cce6438ec"; + sha512.doc = "6a52564111cc5af280ecb578c916a340ae0f0a8e1848f6d19d97d4c8dae863af7c8c0ecd057f5eb54ee701fb1f3f0b101bb4b6fde2500af71867b5d38a29cc8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10d"; + }; + enumitem = { + revision = 51423; + shortdesc = "Control layout of itemize, enumerate, description"; + stripPrefix = 0; + sha512.run = "d49701368b0ce611f5cfb52ec06616edc27b2dedb99230983ffc59c4c1eadc265a8afd3c94f1e57920de875c4ec684fec007dceca59fd4f4008bb5572c13880c"; + sha512.doc = "b61f62bb0da61c7124f661739ebfaff6147d73899511d8b1a1d4b98b31bc596c3994acfd73c3c1922f5cc8a05c6a98572254067718be394c48976a10b2351503"; + hasRunfiles = true; + license = [ "mit" ]; + version = "3.9"; + }; + enumitem-zref = { + revision = 21472; + shortdesc = "Extended references to items for enumitem package"; + stripPrefix = 0; + sha512.run = "5cd16cd19d63d4825dd1f726ad7617bc892a0d80e41f559234b3f82950f589f044a9816005a089f6837805ab08f07b507e47c5d2d389728adaa5350a76d1c1ea"; + sha512.doc = "af4404c0f76f6f693d1fc0a82e0673c461a1acd6a0d7e9cbac10719790e54199deed1b87fae59db4826c2d1874ce59c7c2a1e5ae33286369a4f7e495223fe2e3"; + sha512.source = "7f5642d0d3f3779b0d66832f509265a17e66c6e3ab4a74e7fdeb0bf4af9c66257eb78a9bb3a1a7dc1747a07ace12607031f861a14664addcc9d707d3f8c5d5ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + envbig = { + revision = 15878; + shortdesc = "Printing addresses on envelopes"; + stripPrefix = 0; + sha512.run = "e39ce40decbb52360cfe465d8a5147f9eb5bfae8dd42b86a868a46f1d3c2544d14035d6c307e116c0d08e6ecb62ba5943de803ee9d40a0a8cdf94a88aec8f808"; + sha512.doc = "cd8c32d4694252449e78736be1697f9a8da01079a8aeafb774d92ded858de9ee7ae163b3758710df466dd0f75fb8b325e86e575457b66c8107f3c580fe0fc737"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + environ = { + revision = 56615; + shortdesc = "A new interface for environments in LaTeX"; + stripPrefix = 0; + deps = [ "trimspaces" ]; + sha512.run = "c8dec70e56651a89ae8da15abc0ad81cc2edb4487837469238e2adc0e7c58cae4c5da82b637a3336839b50103e3d846c5cee8c73141488f644469a0f3e9d363f"; + sha512.doc = "78d4d3f570470619c938687a6c9a6925aad901d781e3e893bd731a49bb8eca62bf1870e68d84f7125e10d91d7bec02a323ae42278ff59c04d7e33eefa2261496"; + sha512.source = "b30607d21bbf5ddf1c7d36bd9173a16d91bdfcfa004782be50e50f17bf54d94e943d5e524e2331b75f3ce65e81193ba98e69ab56c38959d632007f5b0a87bd6a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + envlab = { + revision = 61937; + shortdesc = "Addresses on envelopes or mailing labels"; + stripPrefix = 0; + sha512.run = "d4272cd079bc0b48835d675f1b36d0155d7da4cf920785dc7fdf608c311f43afb88e6861087c79774af6a434aacce05dda59f9e53aa7b2f3f37e06415eafa01e"; + sha512.doc = "dfc28fe6df6822fd8f45b3bd31a66e635cf621daadd5465408dfdca47a176e0f23e66501b5b89a8f803265c68a02db6a7ba1e05e0f9ba0f35287bc582d1f48a0"; + sha512.source = "39ba3371b9aeab277968d8847ba5fe519ea3035306fdcb2a6376b6fec881a3d443ae7f4912039216058fcf7918ddeace617ca08e85c6f21c70820e8d379805bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + eolang = { + revision = 69868; + shortdesc = "Formulas and graphs for the EO programming language"; + deps = [ + "amsfonts" + "amsmath" + "fancyvrb" + "iexec" + "pgf" + "pgfopts" + "stmaryrd" + ]; + sha512.run = "67a51c2a83fed799f07eaa226c21a50b38cf5109bfb06f7adae4933f2f9fd474bc8ac6e8528f1134273550a9834b4da6d42dd7d8274d6d76a80880b4cf221c4f"; + sha512.doc = "752cf6a65326027af32d69cd86e1d1c703cb8f506b686cbb2964593c505813b0785352399752802358e10d6fab1e55e09554b34b3b928f43afa3c5724c1eec88"; + hasManpages = true; + sha512.source = "dc0992ad4576ec3e4eafcbf0a4039ad3b15bc97e18dd0a9dadce418d9e2b9c29b24dbe3900142692c1248f898744bfbb6b4c59237c2df4d62fa454f535d0c6c8"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.18.1"; + }; + eolang.binfiles = [ "eolang" ]; + epigrafica = { + revision = 17210; + shortdesc = "A Greek and Latin font"; + stripPrefix = 0; + fontMaps = [ "Map epigrafica.map" ]; + sha512.run = "82e5dd9f781b6c3ad0bef743b117d9658ae9e0162fec524fbb59f35f13008d3ce9b37daef8d6b977a5ec4834a1ecdc06346627857445c5f19c89f4b202706beb"; + sha512.doc = "c90061813a408ea74da7c0a9a53c1dc0f4ef65a9ec1d96e92002127ef401abb5211b7f029630fa445725497018a6e5ed3415e31c40001674405b13a4b4ebf6de"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.01"; + }; + epigram = { + revision = 20513; + shortdesc = "Display short quotations"; + stripPrefix = 0; + sha512.run = "8952dbb6f7c573028b1f9621cd9c947a264847e59e1ead9547d386d71c2c15ab5f9c26088568b023030645b02191c9b72d827a80706ca1570785876c6acac6f0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + epigraph = { + revision = 54857; + shortdesc = "A package for typesetting epigraphs"; + stripPrefix = 0; + sha512.run = "bfcc661316dadf02c8bc1c4378b04c588ef612f030c764af3119e5c9eb42df667f7da9ad71b90fc2b5dbe7adf4094b05d792ca2fb2292c96035384ce65578293"; + sha512.doc = "d8d2ac763e6bdcbcc200fa21995ea5044b4adad11f147b3d7e9f212274c1678cbba7661cc93df8cd013470a5397ca257690d85b8fe55704800284805abac7c62"; + sha512.source = "566c5d132b17c806ee51d60122c9c89f7e1d3e6b6df1444bac715c5e77e2522513a2971f86c495b7fc654c684b07dc53982436aefa0544955e0bae30479b42b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5e"; + }; + epigraph-keys = { + revision = 61719; + shortdesc = "Epigraphs using key values"; + stripPrefix = 0; + sha512.run = "5e92bae46fec0037bb0a2b92c2b44de0c73ef4b434584a0bf13aa4e6f09e89e5e4b7fcc3e4809cd0f5e574d627285b8eb97f3971c65745e48591bd8e4a60f7fe"; + sha512.doc = "21c4e1f6b5c3a5b4402e3d3189b6b2424aa952e777994d330e4905393563030f9cd2dad9cc20c2157accc0e78fe98e7828781d5d63a7fb1c6f1ecd504c67f037"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + epiolmec = { + revision = 15878; + shortdesc = "Typesetting the Epi-Olmec Language"; + stripPrefix = 0; + fontMaps = [ "Map epiolmec.map" ]; + sha512.run = "5cbe40240b14ed494500c3831a02659be437ad9710708929a69670d00b788ffc99d4d35e66fba04f170c9844faf2432c116d75e6b01988736ab483e7d0255a8c"; + sha512.doc = "d2c54da2821e850f17ea0a21d0bc67385e2d986948503fbc23ce6df5229708f0700cdd30a94d09cb310cbd911c183c40935e944341b6ee7ec56cdd9c2602011e"; + sha512.source = "a52ef99c57524444151175f8e345cc59ae99c962e31420363c01e3121e1b4ecfbaeed28a01c3185d9d57beae90aaa8fe55dec15fd0790088f72fc4ee8860ea12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + eplain = { + revision = 64721; + shortdesc = "Extended plain TeX macros"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dehyph" + "everyshi" + "firstaid" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "pdftex" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "eplain"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx *eplain.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "dehyph" + "hyph-utf8" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29"; + sha512.doc = "60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed"; + hasManpages = true; + hasInfo = true; + sha512.source = "015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c"; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "3.13"; + }; + eplain.binfiles = [ "eplain" ]; + epsdice = { + revision = 15878; + shortdesc = "A scalable dice \"font\""; + stripPrefix = 0; + sha512.run = "acc0ceb408f320570a93a52132d3e37d43d4be65a31a038187edd6de9899427f08d7859dbc383b7b27e9d9b5a635ae94ea97f0be4ab8386b5991089a1435c350"; + sha512.doc = "6d9db45832d3e26e79a518f06d00db992ddfb2999099d32b415891e8d05b51803dc4f03d097cdcb04e5ccd6073606d4c7a87a07b9dd20d8d257456f927ee7427"; + sha512.source = "9bc8b64a815e9aa14b6ef09e9ea6328e338e9539ebefbe3df805d3fe05ba3aff61750fd98033be72ed7a7cb4c3d5aa6152b557c9a1dfb0272dec856968171d29"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + epsf = { + revision = 21461; + shortdesc = "Simple macros for EPS inclusion"; + stripPrefix = 0; + sha512.run = "4c3698edc9ef386b08a2ed7c360d926be6ca5a8284e3e53e0dcf5f222eeb27d4d33b4547b42dd2e5544ab381397aafcd58899376d26a4d9d47beee00ad1e9bda"; + sha512.doc = "52be704eec6159e70d99ae2a4823c1da0790f41da9e6de130c84cc77e0d8d29aae145ccb9b416ddc5c9641100821f5099b5c597a350438652381be903e7681bb"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.7.4"; + }; + epsf-dvipdfmx = { + revision = 35575; + shortdesc = "Plain TeX file for using epsf.tex with (x)dvipdfmx"; + stripPrefix = 0; + sha512.run = "0f210b940d55bc2e85b3c86318be82fde1bf2b6fa2e5d498101036a01cec3b09cd8081079476f128f21881b14a13c7fa248c758a7a33ab0770f261505260992d"; + sha512.doc = "e7b770f6880bfa8001851cfdcf2f2d03117fba3a2d38514bd7e23683aae08d57774bd1bfa4d0f75df443d9111a5472ba96bf8129e45b618b39f1798b27fb533c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2014"; + }; + epsincl = { + revision = 29349; + shortdesc = "Include EPS in MetaPost figures"; + stripPrefix = 0; + sha512.run = "f9251142a990038acde2f1e7b61b94eba39b2c4f5c43a1151af29a17d5f0efb0cddc0af1ac8d056d8617b5ab4eef29bba14a4731ef933480a9bdb95fcc15d023"; + sha512.doc = "2cac5738a39157563707879656b473e7ac7edac2f304c209c8164c7878b10f0d5dcba1d38232ed6ba8e20fe21b3a0cf78dfd51733b993ccd5fcb2c0a05ea31c6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.2"; + }; + epslatex-fr = { + revision = 19440; + shortdesc = "French version of \"graphics in LaTeX\""; + stripPrefix = 0; + sha512.run = "f3e90ecb487259301c20ab4c4c28702b9cadfa844a49361fee0881a26f827ae602f954e4a3e824e910d2e098097c387aa5311c5f32cb58df5a0a1e2fcd9d2364"; + sha512.doc = "7965e6094535d22b04193619842bc0bd090c2b47139e65498dcdf428f4ce2ec54e7da5edbdf9015c9d8f2013642d11347373e625a3884c629d9d807af2a9880a"; + license = [ "gpl1Only" ]; + }; + epspdf = { + revision = 66115; + shortdesc = "Converter for PostScript, EPS and PDF"; + sha512.run = "3dc467713b1d90b96a8fd3903effe209fe15be82463a1ef4693e29e7d145220936bed0e75dd3824a1e520f778ab9b96fe29389037e14690352db136e642f6a2c"; + sha512.doc = "ee5687a3add6773e127a1e83c91683b5c6ea5e37dd98ec5f5558a32015d292c31f1a456c985ee5d2e4201c0a47324dbac4a7129529236438676f587985bca64a"; + hasInfo = true; + hasRunfiles = true; + scriptExts = [ + "tcl" + "tlu" + ]; + license = [ "gpl2Only" ]; + version = "0.6.5.1"; + }; + epspdf.binfiles = [ + "epspdf" + "epspdftk" + ]; + epspdfconversion = { + revision = 18703; + shortdesc = "On-the-fly conversion of EPS to PDF"; + stripPrefix = 0; + sha512.run = "a1f328125f82f33bcc881adacec981f4ce8aefd4cbbe160de66397ed3b1d4c2ed980f5e1c17c63b75973e3c253d76afc2f1227272ab7f0236e47e8e48f0f015c"; + sha512.doc = "dc09e2ef835a85bbfc7c399b7c7323d64c312b04143e8070fc403fbd484bd893be1e4b532580efea93baffe64625c33004405eb0ed9bf6295646cfc260d72c40"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.61"; + }; + epstopdf = { + revision = 68301; + shortdesc = "Convert EPS to PDF using Ghostscript"; + sha512.run = "fcba30848cb2a5bfb12cf89e1ee6d54bb89e7516789738e1fc7d9b1d47c403ff6ef1d679c9fed214669e8d06fc5e76eec2af0ef513d2649cd1d44b535287455b"; + sha512.doc = "9d9068ce64a2e14ad72de11c6a608bf9379240c0fab77a7bd29fbf2774515c5eff12b375a592d3ad6c8accb06021309768c3965284d18b89fb0a57487e2dba06"; + hasManpages = true; + hasRunfiles = true; + license = [ "free" ]; + version = "2.33"; + }; + epstopdf-pkg = { + revision = 53546; + shortdesc = "Call epstopdf \"on the fly\""; + stripPrefix = 0; + sha512.run = "3e2177a1c6cbf8850026f981ce3ec5e6a24c4fdf8c40716e3f18ba7233cc7a5115e5b74d60aa077575f41bafc58af966ab55c189de4d06863ab2a38551ff0dca"; + sha512.doc = "c098251d55112c0c630e007c85d1c7271e32bba9443ca3c2590b51987053e945e3c52030ef4bd1f6758894cc263e9316bc31683572bd07c24fd0855f01c68be4"; + sha512.source = "0816a754b15e42d6f43ef333c6f508988c861c04f7f6f53a370777ca85633a981948c10a13f3180797c1f5af1ed156b60a29c608d7387a53756f2e440f38bd99"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.11"; + }; + epstopdf.binfiles = [ + "epstopdf" + "repstopdf" + ]; + eq-pin2corr = { + revision = 59477; + shortdesc = "Add PIN security to the \"Correct\" button of a quiz created by exerquiz"; + stripPrefix = 0; + sha512.run = "631f8dc9f50f7a45a0d03f0c4210af427cf8492d56886cedeff6cb0e9587453976beb1ac960afb53b7a31538a176bb63f55afd330ca2463847f86e57c3d545c3"; + sha512.doc = "4e704295ff398a2e167293178d69edc4882e9b9f37dae4f9debda7edd921a7c2d19c036b4d1424405ac1b9853e57615d9183fbf56a763088dc58919842da2720"; + sha512.source = "eb40f073d1763c59f9a0ed0444930f6698fbde754e213a73bff251df7f83b2c5a730345104d3b947ee8400363d324f968e3ebb7b74ed6f484d0c3589d5134b37"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + eqell = { + revision = 22931; + shortdesc = "Sympathetically spaced ellipsis after punctuation"; + stripPrefix = 0; + sha512.run = "b3544579e03c33b7a5a10f1fbcb22735d1bbcdb9fb5ac94330ec1eeb6f6ae646935a46f4c7c3bdb4305368b2e9aa9eba244c80f08f3127fad2080b610f1041a1"; + sha512.doc = "9210b85937d0bae3eab982f45b1f38f7020327c9b4cfc6604de5b171ecc84f54f5bfd088a3f06ba7123a7fc01a6fb09953015b1813db9ab2fbabf2a15bca955c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + eqexpl = { + revision = 63629; + shortdesc = "Align explanations for formulas"; + stripPrefix = 0; + sha512.run = "75f328b6b1e729b76b9be92ec7ad9844e5a41d8b6776700175af98ec217ef93df6dc56b92b49892090523e9308afa069ba3e6beaef8ca6712aa2fc3995417103"; + sha512.doc = "2ad0eb828e3ea2484220335d61102e0ccdf9787b0165d6f8ebab2073ad2407757c04165d5f872a4b3c674d2c27b952ce9ce1bdc09a626b8e4fe804a5ddc5b1ba"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.1.1"; + }; + eqlist = { + revision = 32257; + shortdesc = "Description lists with equal indentation"; + stripPrefix = 0; + sha512.run = "1af830f51ce25946ac8bc6a4cca323dffeff20389ec998b74afd49a8edab5ad7a453818d4799e55ca564153a87b85e2a6b03ed67e53cc5ae6fa74c45edf3aeae"; + sha512.doc = "a5b22b8e9300064d77d02ca6f5652659293c6fedb792be2f0664a2383b3167ed7bf8796af26edfabfdcab8d75ddf30f3815be36e8f38fda30f1609b56c16ac61"; + sha512.source = "15817915c95c5f609c3def3bce324e6ca362408aa862e7b3548a67225bc1c33bf8a5c8f924dcbb1951958beaccbf86071b4e866f0e7a4d55a09456412fe70223"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + eqnalign = { + revision = 43278; + shortdesc = "Make eqnarray behave like align"; + stripPrefix = 0; + sha512.run = "6793d24d272ff5f95b4e37fa3f4206e7358e0f5b51c51bcf4c61908e3fa554d8c8a53d888c7d7b1adde09f5d308c19944e93abccdb7846c88544abc90bbe4924"; + sha512.doc = "65847f34d7d1c76dd4d87ebd7e46aa1bb9e9a34ecf04cac6e58c18f9f4949d3e82325dac982f6d704fe6013e2acf718f0372873e547434c15a4a07c07ace27c9"; + sha512.source = "124449d3ce1f3b120f152c1eee49447f640f97d01f1d5a6f79ef72d1465cdd31de896049a5a7163e4e366ca9454b0f78723c4a94a24b8d83e2c4540d613bfaa3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + eqname = { + revision = 20678; + shortdesc = "Name tags for equations"; + stripPrefix = 0; + sha512.run = "1717aa83439019ba2c07ced56ca5dc969a68b78c9a711d97d0a168d432c6e26b53f30b2a3f6f8d241acf465fe8817d7e4fc4238982a68bf2ae143c5fdc2ca72e"; + hasRunfiles = true; + license = [ "free" ]; + }; + eqnarray = { + revision = 20641; + shortdesc = "More generalised equation arrays with numbering"; + stripPrefix = 0; + sha512.run = "f5abd20910152cf65d92c7e44930729c1052f72441f162de2f4ad869f0ff37b669066f43089a1369298e9ebdb536ed62d437b3f34be5b3e417d8b0bf34d9c870"; + sha512.doc = "7ea3d87f81eca28dd52f9e9cf4f7df1ce4f7b9cd82cc40d0a7fff234415b2a3e033fa1c8a11594b2c08e5edf87ae265e5f7a65eb92a79cd523568f37853de30a"; + sha512.source = "9dd02c43fca4f6e8dba0bd44292c8f97aef4cbf39d521b9df10206a2309e82492f344fb65c35ac0509532e9efb2571aecb2a5894e639de5efa1444bba9916587"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.3"; + }; + eqnnumwarn = { + revision = 45511; + shortdesc = "Modifies the amsmath equation environments to warn for a displaced equation number"; + stripPrefix = 0; + sha512.run = "ddfee700caa63f65fb4f53fe2469d1e6ef6338843738dd2c06989f23b6f4b40dd1dfe4b5979a04b34a9430d7cdd4d0f3ef14e3ce39613c8961fb0266e4ce6af3"; + sha512.doc = "e6dddee646be40e01c211854d3fa04855286e24a39b8217380e555eaacfad50fc66a57e89336d505c80a8df77ff7885922195423d11c2acefce583c9cb9fce81"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + eqparbox = { + revision = 45215; + shortdesc = "Create equal-widthed parboxes"; + stripPrefix = 0; + sha512.run = "b6e64a4d30840933614a42b16ffec215d1e01138c42805ed20bfab6ec03e232f87fcc2c20decb2e7e75234b7bd5fc2ebe5477808756ec92e6e724acb3482afca"; + sha512.doc = "1b0f7e6249e114bb6371d19f941cd2308f70ac4f1c831ce5a1c15551bbd65a4289b0b0e718580cc7df97bf4732ad3a76b3f22ea12f7caeaa2ea6362fabab2074"; + sha512.source = "2998b3fce2cce05512a41b4700905adb78d421302ed0275e7f263f891a0d8e9d5d8793ce2fb80cf1ca3e8f5f148e530a48c3c701f72729e6f4667382ad9247b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1"; + }; + erdc = { + revision = 15878; + shortdesc = "Style for Reports by US Army Corps of Engineers"; + stripPrefix = 0; + sha512.run = "56754f7ca1872837a362b1f5cc929fe5ed8bbd59a1a45eb2fe20b071f7c44362b0d98764c6d2870d275d0f0216a9543cc1e9f671f92de1b6b02136f9076f5f95"; + sha512.doc = "3e9d2dbfb3bd877c6bd105ca8cdff87cad9cf801797cea39e760ceaa1f27ed802795d728f9bd675c6553a88e22c03a035436abb19dacd38c774b94a0e2bd1567"; + sha512.source = "afe35b5120001d40259065ba25a9c5720f78fb1a679ed984727b89076bc265113e93184bc8ffbf998f069f85636f332ec5c93a40ba39aef4d4b7a3884da42446"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + erewhon = { + revision = 63312; + shortdesc = "Font package derived from Heuristica and Utopia"; + stripPrefix = 0; + fontMaps = [ "Map erewhon.map" ]; + sha512.run = "760818dc93dc0564680d76c152f6db9f69870008f50c43227b329df3403e7b6b50f241b96822fa63aee6b6c64ae42ecc69369e8e94f43836d6cbb9125f197e94"; + sha512.doc = "bf9219328f592300b90c3aa0ad425a4adf6e6cf2e190dc21cccb4b15ebe9db8f3dcb88c3e72b6f89f7b9085ecaf28f8ef628fa3175e7fb7d59545c61e2d76f42"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.12"; + }; + erewhon-math = { + revision = 70336; + shortdesc = "Utopia based OpenType Math font"; + stripPrefix = 0; + sha512.run = "f92ccc2cbb8edcdfcaa5d4c27192aeebe75cfbaa3d42077d3a1e87309b381798d8bd6836082e4302006e51d0a79e8676d0f831a790aa7436e0b992d4bdc78d8c"; + sha512.doc = "ccf0b4ee3b6914e26e485c8c292bf421da30a76a1e0dfc03f61a290186920f37163b0ff2ad1102b30049b58844f06c888d70d2f6e506ad7ddc2a0ed45ccdc711"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.66"; + }; + errata = { + revision = 42428; + shortdesc = "Error markup for LaTeX documents"; + stripPrefix = 0; + sha512.run = "ac3b99ef6e120a5b488cf79f3e942c10a47ee92e84a04d3667f99810ef365aac66598908c491897ef7a99df268a0bbc7185d49aed2313487712e300383356ec5"; + sha512.doc = "7fb625a66efc914e2eacc45696ac43112d7ca49b668ffbea179f47f04746509f981141a77d2948f30b8c56e4a2ff06f6af3047fe494e4f084237891fbbf6710f"; + sha512.source = "ecc57287f78000349f4999d1f85aeaba0206a898ff2d97a1fa9b4f94acffd76099cc0f92a88e5a38153f71570f62d9616e0332edeb987e468a6483de0dfab5ee"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "0.3"; + }; + erw-l3 = { + revision = 61799; + shortdesc = "Utilities based on LaTeX3"; + stripPrefix = 0; + sha512.run = "551a7c38657547038a8bcf5973ecaec81cccb4b803961145d4aedf7416834e3cfefe736a59e20c80cc1621d415216371d58f3d0c7d2b0fc3dc0a182e1ba91acd"; + sha512.doc = "8a0a823482fd19c80471e9c1a38312b5db7f04f618c8fd8381324c38bb9b9ebe8eb8fc9ce90137d4a4f1de7b6b65aa1c1820cfe0f009f4ad743613f53b549323"; + sha512.source = "babe7d5b286f4c20f469112efd76e4a37980bdb709ca9cd058263bf74a5d20b4b7c0aa3a4aba7fba512b5c63b538b6da1ae90f1903bd58ddeb36e2dfa4339e32"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.2"; + }; + es-tex-faq = { + revision = 15878; + shortdesc = "CervanTeX (Spanish TeX Group) FAQ"; + stripPrefix = 0; + sha512.run = "33f66e4f928591188289f07e003cac10229735e69ee7390020748e119930ea7b74ad69e5eea991d8e34325ac4d548ce0b843a00b3ca50b9e6fae3e96526a4ad8"; + sha512.doc = "5b5d0ebda1bde2c1c67fd4853a41bb10956487fa5ad2686d6814dbdd51f68dde2a3d294797b7b1602d587a44ea6acbd8260ab9965efab81d91eb9d9fdb93da69"; + license = [ "lppl13c" ]; + version = "1.97"; + }; + esami = { + revision = 67707; + shortdesc = "Typeset exams with scrambled questions and answers"; + stripPrefix = 0; + sha512.run = "e5e2656b1f1dcb224652ada214871004828ac04c2ad316250e4ce1ae54f509df5607248eadcb018308ad2eb14ea761224962b751c7998b935540b4de516d4e1c"; + sha512.doc = "7eda39cb0372f0f500b05196d526a215efddc58aadd1ee6c66504f73129936fbffc65d80183662de665b6fd54d4a9eeb5bdb2c7d5e11ff645c712ca6d712fc18"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.8"; + }; + esdiff = { + revision = 21385; + shortdesc = "Simplify typesetting of derivatives"; + stripPrefix = 0; + sha512.run = "84b2490e6ff743f0133deacc22c8e0368368e961d634239694ccf7b5cde7826996e080077baa0e0045230b6d2c3cad53ee055c05b17c89ca735dc2e40a01fb5a"; + sha512.doc = "97dbb512437c868f2b15ebd1271f51a7f196e40c70043c224617378e6c9333f19e2c18666f64fe6ea323c7aa5a58438944d8c6f5b1a9c0d36a239caee972eb08"; + sha512.source = "983f7f7cee22e442768ae56fac614d569eef18bff35c52c669d51079a61beca395c06e7fb9bcedde338bbaa1b3775094ce9b77fe7c043df2e1e25975410ab7d2"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.2"; + }; + esieecv = { + revision = 59638; + shortdesc = "Curriculum vitae for French use"; + stripPrefix = 0; + sha512.run = "c39e028de2f9cfb981baa2d36335863d6e3252a3bc3e1ef283905fed24daff609a85748dfbd34db0cbdcf7131f4db3aa6d66d0e714f0359b287cb14efb95f568"; + sha512.doc = "8bac60946fe2a4bd5c1ddd55dd314c59dc7fe45ce33a214021de68bbe03b610b8bf1d6ad426e855e10340953176285132017563c41f0326c273f2ca790be4acb"; + sha512.source = "73f00171770070e8d71396540fb8adeb79804b341c7906ac7ebaf67d8d9696a178b5458d6b4d7bbf2949c9d7e3a6d142bf682931763714c5d0ce0a77416bd28a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + esindex = { + revision = 52342; + shortdesc = "Typset index entries in Spanish documents"; + stripPrefix = 0; + sha512.run = "4e3fe4402e025dbbf300b509954600e3a1eca221a448d32ff2399aaf552ff930e6921bed6f0e1aadb20d6453848e235e42e8b809c4f4280d39c29937615e90f5"; + sha512.doc = "6db4b39371280b0f3a3e0be9e18337a75611410ad25e7953742247e750ca439c92c614edeffa03c4a7f39d8aea447037a6e25cb8f6f0d22a190f359c9cc35f8c"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.7"; + }; + esint = { + revision = 52240; + shortdesc = "Extended set of integrals for Computer Modern"; + stripPrefix = 0; + sha512.run = "d0eda90d6a890b7813648516f21e3a88213b1374df0c418895301354de402b9634492a1fd89193f34c6db6b9fcc0cdd0f8f46472e0e3a210234c7d8cab1bbed8"; + sha512.doc = "aeeaafe3746b8fd75ba80fc36b1610a3e4f7c7f26044ca82c2c8091139e0294275a1dde9dd73fb3e5b013ff04e4d0f26422e8c2a44a88beab167353e7686b3fe"; + sha512.source = "242e864b822f5deac76740d7a00edab9b6ff77e260b3e1adb6676dda009a8c200b9352e87998b76ac3047f0eacb9bd5ef87ac554c7c20ae649e91f1fcad889b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2d"; + }; + esint-type1 = { + revision = 15878; + shortdesc = "Font esint10 in Type 1 format"; + stripPrefix = 0; + deps = [ "esint" ]; + fontMaps = [ "MixedMap esint.map" ]; + sha512.run = "5a663d01e9241adf1961c922c588888561f495e6378fdd7aaa90954c3e51c5f0f8e6dc1e1947c9f03ce3472e1aab3dde1b35e6b5f0814f5e2cda564a31a45a1f"; + sha512.doc = "081a225225f503fac403d306fac3ee3b2747341ef5c4ee9420f49a56ca959c7757f154c24f90ed9506041b13464ea216e6edb52f29790d189ea7b33c7c797f8e"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + esk = { + revision = 18115; + shortdesc = "Package to encapsulate Sketch files in LaTeX sources"; + stripPrefix = 0; + sha512.run = "584d9b9abf202d93826c690545206c3b7276d6b3a4b717ed3671f9cbd2a1c6c6503d3352471fe60232e75d63632e021fb0ed34ce49d5a1e72ae58b08fbdd7211"; + sha512.doc = "acc40c8829e69c681d3bcfd5aa7223b3f5320c1ed5fa3f4a9a700f203b622f300b73912ef5df2c163d2cce1b40aecfdf1eb880dcba48e94783c14054981e0e11"; + sha512.source = "8f7123816c718d86eb1b362369dc10a745a003e8e79c54b8edb90813382528466a7e0fe3eb6b579372754d03888065b6f5c48a0682c6288905e93cebfb1b4a4b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + eskd = { + revision = 15878; + shortdesc = "Modern Russian typesetting"; + stripPrefix = 0; + sha512.run = "d0c1745172683bcacfb061f48bee10f78dbc849657295f5e7714cca949afd586c441f727e909c627b595ccdb50b81d813538e6837a00809ee884ffe1acd6b25e"; + sha512.doc = "01a0be9d02e7fece62cfd1bc8ceb26b2036f3d2e374794f3c4aacbfe004cf4059346510009760fe48fc0141c4e9f3cf1e40088203d31b7bbb31ec375cf5f70ea"; + sha512.source = "88b3edc0487b638142ba353ef108558b8fa6d420f2560a4fb1c189829af87d877a8900566c042556b15d654d11d2a0def58fa958fb9b234fca84419b2621cba4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + eskdx = { + revision = 29235; + shortdesc = "Modern Russian typesetting"; + stripPrefix = 0; + sha512.run = "e5ef11cba6b0251844200093445f5183de60e0c0198da9c7000ef5c05a2a9a4303a15dc77ed03e9874e452ffdd283016cedb8901e78cd0312ea5bbcc529b74d5"; + sha512.doc = "748dec387a09546b28718e943e05772cd56c75a0066793332b343e7f604e607efd37a071c1f4f32fbd20d7427277bf2d598b355b8ea3a0a04943ccb90f4f249d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.98"; + }; + eso-pic = { + revision = 67001; + shortdesc = "Add picture commands (or backgrounds) to every page"; + stripPrefix = 0; + sha512.run = "ee2a5c75fb02f94feabff9107d8e183cb3ce2dc7d38f8c82b2748a67718286a824e839443a9cf00edc142148271c83ae08017f2d5b8e6bc01faf50455187e75e"; + sha512.doc = "ed03cbb8e57d28abbf3260c4a97c10833c89a603e219882920ed95fc2eab404c461a9c89b21772757a37245783c3ee10743f7ed248d4915d04a0619508469095"; + sha512.source = "988e2f00cec99ab76b95bbb1a64a47bd11a3bc258bf04fb26db8825f381922d6d4db5f4059e09d9969c6a00926a8f6b4b235be82027368812fce493f5f16854b"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "3.0c"; + }; + esrelation = { + revision = 37236; + shortdesc = "Provides a symbol set for describing relations between ordered pairs"; + stripPrefix = 0; + fontMaps = [ "Map esrelation.map" ]; + sha512.run = "a6d8a0a9bde08e3582826affa52142fe5b5a0dba43c4ff15f5fdd19cb24b561bcdcdd761c2a84238c9b31d3fe0a023949d2d0c716e105852443e06ced9df13f1"; + sha512.doc = "6698e9f57df458d9652ae98abbea08ce1f14c6c31677c32ab8cdf9b8fa0866a57c50028ea36d2c7cde133588358dce0b2bb37b7085995e4bab9ce7d3de1a541c"; + sha512.source = "17b0495b4b19ca5166835549c62c9c5e1dbcb59e2252e321860dc7254b9ebc9d073f317a344a2a8a4ec772ee1a931a5181d9d3b1af45f913b0ad04ebf189bd3a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + esstix = { + revision = 22426; + shortdesc = "PostScript versions of the ESSTIX, with macro support"; + stripPrefix = 0; + fontMaps = [ "Map ESSTIX.map" ]; + sha512.run = "e503f25cb713918329f297a4ed088b63967eb06828fb753653aaf60ef99c5fb7db6507d6f0f74080b9fad2050ca1917f7ab873be2fb0bd3fcd126f29a43eb775"; + sha512.doc = "1233a284b88e5c8bfb29350b3b534e7a4c81b5692a9ac7aff5d69f77210e026dede300b511bc45efd18d6a96f6df9be2add166c80f0ee5d17c93732c0c242bf0"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.0"; + }; + estcpmm = { + revision = 17335; + shortdesc = "Style for Munitions Management Project Reports"; + stripPrefix = 0; + sha512.run = "20213ddd795e862dc924ddd71df08752f6adda4be7a06237507cec84abf6a6ccd664fa9676cb9b275ca9de8647011da0bc731fef9344945404f885b56b75aea1"; + sha512.doc = "c240305f2ad7a841c1d9309d1934001fc42d68819505b5c862ca8c97c5ecd7b6d2fd8a79a4273be79126d1503d968fa4649ad06e0c001f3b731e300341802dfd"; + sha512.source = "f867a24f4bde53c0de195874f1717fe49a3869755834ba1dd0a9004e3085f06076eefaca2e83c59cdf5cdf65fa740d0df898e0ee75f88a5cb516a3cfa404c164"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + esvect = { + revision = 32098; + shortdesc = "Vector arrows"; + stripPrefix = 0; + fontMaps = [ "Map esvect.map" ]; + sha512.run = "1a6940862940d8ca29bcb19c69817b84a7f71f7a8762d3a63829fb0e0e88eccd940f3e2973d8d05dbe9323aa1f80dc9045b531e3509239eab399f02a55e7988c"; + sha512.doc = "502d2cce629280d7c192ad11764c0c12e65f9f1318286d1acdc3e08c9d7d36b07fc3e5939c053aa57ad59ee91e73b4035c9bd1aafee3672ddeed4a64bf3cd7ad"; + sha512.source = "658e98e4c97dfdfcb34b396ff644fda060a645d15760bd975ad1397ca73f4ed24331a77bfd914bfe6f8f218aec9ab3fcc0a2a48efc19a0c6adc1024943584a47"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.3"; + }; + etaremune = { + revision = 15878; + shortdesc = "Reverse-counting enumerate environment"; + stripPrefix = 0; + sha512.run = "511f84d8cb951caaea65cbe839fe83c9c2dcd7dbe0e0c3db3611d914dea475b60de029d4dbe482616e9d219929c50b2a87f6c33451d0d880e3b368fbc9f7f612"; + sha512.doc = "4d7728be13e1454b2456e543ffb89a19fc5204e8025f949dcda7ce3b8a8b898dd9a6d96e44477cd158baad4d462afbcc17b6df6ddd9982232891e7b4ccb112b7"; + sha512.source = "17c0b9d705cd5ea494428bbfacf73d12f0f40d5eb4be2a3b1a4e2aeb97af61d184ae6a471505d6dd604174cdf34976f9e64de5366be7877da26141720f542953"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + etbb = { + revision = 69098; + shortdesc = "An expansion of Edward Tufte's ET-Bembo family"; + stripPrefix = 0; + fontMaps = [ "Map ETbb.map" ]; + sha512.run = "e034a9a750043f459b8682229bf01c08b341b4494fd6fc6669e1065652ae9154e0eef74038f1e5f16c2d57390ebfa70056198d563f3e454ee3e4806971a707d5"; + sha512.doc = "cc4ebfcb831cdd9f02c93248d5083b81a69c59163fec85d469a17841607affb51310858b022ea819055c6bdade821d330599c97838ab9f92de7b8fa4d8f8f0a8"; + hasRunfiles = true; + license = [ + "mit" + "lppl13c" + ]; + version = "1.057"; + }; + etdipa = { + revision = 36354; + shortdesc = "Simple, lightweight template for scientific documents"; + stripPrefix = 0; + sha512.run = "88502eeb78f2f5901cdfc192638501690aea861de2105445de226261c62f526d6602ab5c63f02974d067e229b12441ee6663b54769236a1e0e125896b869301d"; + sha512.doc = "6aa2ecdb393932a485857222e66471b9c52388e726edffd0b4357e340e8a5092af96ad1847486a58d6a8485a4ce0e80e25e80ad58f60991004136739d26aa996"; + license = [ "lppl13c" ]; + version = "2.6"; + }; + etex = { + revision = 70496; + shortdesc = "An extended version of TeX, from the NTS project"; + stripPrefix = 0; + sha512.run = "3ed4f77ffb42e86877ae448acbc84d4ecc7003b9ac4f4c80e88bacd23d729db991c115a736e798245d4b81825f12247ea68ae35e4a9ec3dc6fc147b6153d0a98"; + sha512.doc = "1b5225821ea6faf8721f6ec6ebfba649d2d14496274b625daf8374ca50e72f94030fd8570e0bdef0bd8ad249f378bd4cfc4d46c1d959eec2d1af01335631c15d"; + hasManpages = true; + hasRunfiles = true; + license = [ "knuth" ]; + }; + etex-pkg = { + revision = 41784; + shortdesc = "E-TeX support package"; + stripPrefix = 0; + sha512.run = "e2afebc530bdab4d5384170dd807d6e39c96d5a18af0defa534106103243b0e52d926e09f3ba62378452ef643bfa8f0e4d92a3c0256847c91e561707410052f4"; + sha512.doc = "2ef9984629ffdafdc799041127e31360c8eee80726d8c410130d61f12de306e7b4c2cc892e8012029827e8ed470f9191eebcf758830cd34b8d01593ff78cef1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + etexcmds = { + revision = 53171; + shortdesc = "Avoid name clashes with e-TeX commands"; + stripPrefix = 0; + sha512.run = "b0be75d3c8eb92407f21111e6c9d397ab5de39b96b99403a149a9554eff523e99cdacc9c1c37ef47cd190487511c6fc6b7c91b617e889eac1d6d8b6aa61c0c6b"; + sha512.doc = "841ff47f9cefecefb241cb81602b825c07d4d0eaf143343eb9bf6c35ca66194c98f851e4aa27a369d60927fe96968bf7a1c1d8dfc7bb5be092e77330ad8ac6f2"; + sha512.source = "057bd48b4c4455f3641c961b6337127c6f84c72dd89615197c095b13846599f1fd8016ffb7fe22be820f16f7b012ee0991d8e959e59a3393694239c1abd610e7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + etextools = { + revision = 20694; + shortdesc = "e-TeX tools for LaTeX users and package writers"; + stripPrefix = 0; + sha512.run = "ed7e514441de2fd296c372d9c56dd71ebd5318bd67eb4611c4bf784b16b045a08338ca4456899739dc023e5bc4695a6fd1784e592e542cac6a0564a68307a983"; + sha512.doc = "5a8d722f9e2e59d483c7421909b4a0f8719b0de81f2b8b95801f905d478624eb4df936f193eb3e4ad1e3f0c2d844c7672a5e2ab1c0ff0654ed88c66bee4802ef"; + sha512.source = "a2535e9648828eee76f6fe48d7c85ab4211c2c107bc91f72a944f8a9eae384205ef371459fe2df743712039eb745e48dfbcfc42cd39b7d5391263711ba027862"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1415926"; + }; + ethiop = { + revision = 15878; + shortdesc = "LaTeX macros and fonts for typesetting Amharic"; + stripPrefix = 0; + sha512.run = "ad9da81e2a9af7f93c3a9677a72b80335562677d552511463c20b73df25adb0a6765463273306486e295b8c5994af03fa1df8f1e70cc48ed7df44698637f8459"; + sha512.doc = "13e9149433cee0c44d8eddbcc6f738cf113581e4890a8728aff08a6f3f26a62617e1770b4875668dcd75a3714925db9cf5c5d9fb58a9870292bc0d22005c844a"; + sha512.source = "46bedb27b22953ee6aab0b372581fc58186f3208c985a88006846a1f7917d998b5b8abfe463c3f415100f27aae20ae1d1648044850e6e7d095afa480adbe5837"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.7"; + }; + ethiop-t1 = { + revision = 15878; + shortdesc = "Type 1 versions of Amharic fonts"; + stripPrefix = 0; + fontMaps = [ "MixedMap ethiop.map" ]; + sha512.run = "84f97fb5320ada95562aade797fdb62577e533feee9d7ece5cc51e17303012b198c0b1e6b4f720dc1539c4cb917ac71e3da6f48776d6fcfe84d4527ffd7b78dd"; + sha512.doc = "81f2ed72d5cef9119c94c4b0025e31be6739153e36b7b31a2c59b0cbe5a683a67746da8346345d561472fdbb760c07831d1936222ce1388ee12d70c9053ca8ac"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + etl = { + revision = 60998; + shortdesc = "Expandable token list operations"; + stripPrefix = 0; + sha512.run = "14c5db74da0c3878609323b450c99dbc186c97997079d09acf55bc8fe78a2cf9f7fccf7c89c1fe02ef8fe9d532fc3d33e85d77e374d4f0c601c6251a04472dca"; + sha512.doc = "2a1dca3962826cf749d67799c6d871b7822b16f81c7ff3473628926db217812ed5d85ee2da351245f6ff7a973bb1b90b61951101978693fb92f07bc86425bb2b"; + sha512.source = "1be3c92c55576ea6906f08461f08269fc4840815124c3f1f09ed145a680de3763e3bcd88aae61c46d872e05ea34c302625e439ffdbcbc15d7565eeb250b177e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + etoc = { + revision = 69343; + shortdesc = "Completely customisable TOCs"; + stripPrefix = 0; + sha512.run = "ee9e46861d53c0cf3f0807f55a78b2e9c24ed6d5b37037b87f162a297421548561728dbe268927e7155a16da256e61b24c74ee9b1c18addbca937b8c85ce21e9"; + sha512.doc = "693a6589f33a93e9086342d093b8801235d9e7d8e1729400e4e1069d0bd9457bf8b96c0a946110f12e2cf6ae646dfea81fcb9a795724558f73e53bb87b300957"; + sha512.source = "0311468458efe4ba2b12bb0917dcc4bc763a1f7e1e6f2621843358afea9edc5a96373f5beb74224df33be1276b36cf53f7d45fd7183574acc38057b31c51f01a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2d"; + }; + etoolbox = { + revision = 56554; + shortdesc = "e-TeX tools for LaTeX"; + stripPrefix = 0; + sha512.run = "b4c2ba570b1636b7ccd741c8960335f4863fb7242253be6c071100b64ce0d6ffc1bcc9da5e9bc65830ae5e34cb4cf887220585c0006d7afce0af3ca95f96b36e"; + sha512.doc = "15f5f37471b991c1363e7d34c419c4defe1920522d6f666c383ce31b25b412d40a1dd6ca1c0fdb0e56ef3c7e529215964957c5a2dc55522bec60e79bdd972947"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5k"; + }; + etoolbox-de = { + revision = 21906; + shortdesc = "German translation of documentation of etoolbox"; + stripPrefix = 0; + sha512.run = "cbddbd599e10b6409db5c9f9d27f35b5922bba82da39b19aac010ef77e76a29465d91c10a40c578e834acf5d9ade2d52baec5cca06eddc802eabbe599fb3dd28"; + sha512.doc = "4c966dc094430caf72e462c1a854995fb78b54dca84322233a16508e41f33f0dd71db2b997b26beb7fd4722f0df1695a118ef782d7954983e9df3ba2132b828b"; + license = [ "lppl13c" ]; + version = "1"; + }; + etoolbox-generic = { + revision = 68513; + shortdesc = "A loader for etoolbox.sty in non-LaTeX formats"; + stripPrefix = 0; + sha512.run = "12bb7835b59a33026a0acff3c8f8204bf9b159fa84538332ebd7e4ce7116f3ab0dcdfda075555e595c050dcf96525a67f13ab33757df5e55e21b62c3d08488cf"; + sha512.doc = "f877ad6a682abe82d84bbd1e9bd2870d80d5b79a63ef150f0eb4cc9abe0cf07c485b59d55281709027d705843bb7da33cff2eac6d382885ba806068a3a651c7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5k"; + }; + etsvthor = { + revision = 48186; + shortdesc = "Some useful abbreviations for members of e.t.s.v. Thor"; + stripPrefix = 0; + sha512.run = "c70654c50e186f73bd6dbbb65cc40cbfd809a86de223f96b4bbd1af94fc5fa928f2400eca58d6a97e5578186c58cd038a99264a412d9bb7fe15a01d7f3aff8b9"; + sha512.doc = "47c9d66a720a8225b34bd0571c0f0da18fc72fb5f37e4204e7d4842facade9a0b72550351c0743dbb9296ca8bd2ad61036361f0cb7447b06e0994fcdb7c657b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + euclideangeometry = { + revision = 67608; + shortdesc = "Draw geometrical constructions"; + stripPrefix = 0; + sha512.run = "8aaf01108b5d96000d909e3d041a7e9c00cfa85043b25fcf4029238f2570330b2402a2faa4f63f80ed84d5dbd3c12cd4690668714ca1bd75c14673b2828619e4"; + sha512.doc = "21d80f3152ecf31c62d203b77ec42c183e2a6058faa173163fe456d521e89cc514f83b0ad60684f2b29c7952428670afccda79372bbea1727d797dc78de04bf0"; + sha512.source = "e48b5ced844b3ad25f11c6afc93fbf5bde4693d9977106ab175c369bfda583c0725aa77185458a88d2e38797b31ff074a48999774ee9ab8cc76480684a815f77"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.2"; + }; + euenc = { + revision = 19795; + shortdesc = "Unicode font encoding definitions for XeTeX"; + stripPrefix = 0; + sha512.run = "f5968e42b36d9c3ab7ae17d156283f8fc09f0c725dd1037cae3b232f94af11a8ee84507efd87cab901bdc8a34f0f72d831a078de205e9beec81c574bb65f79fb"; + sha512.doc = "ac8d4e83ab23bf692d609a617bf8aacd8b33949e0bff1070301b8cad4e91f2a651555ffb44ad70be99791e64020984fe07afbb25976b73963abc79660eab96dd"; + sha512.source = "4037c8f9961be1f4cd6a41d0cced28f4bcb54e5b7c4f9681b702f1d90e425ab0c772561b662fded93a0c469cfa1c43967fdfb3eb8c9e0e8c86d8340930565910"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1h"; + }; + euflag = { + revision = 55265; + shortdesc = "A command to reproduce the flag of the European Union"; + stripPrefix = 0; + sha512.run = "6d6b156148fd6aee2f82ca489263de2fc37103e00aed4a287eb10acef95c60902d3c0c329eb904d2b808e5844f9d6ce92fd8afa4e9abf187d4f8bc7b8f4b75ad"; + sha512.doc = "68eda595381f5f22bcd819ea4d2a4ee430ec555c92594ceb581a9e566de648a74ca3fd53ecd4566d17d3b54dc05b7909bdc3dd805e8c70fb68520b299da355c8"; + sha512.source = "ad66378d43f833c0713593db5875cb0431a251e6443a939389551a4a4e5fe8c76865d1109ee0aac1b9213ccf6f375b1e4ac5a2dbdf347a88aafd86a0af721e90"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + eukdate = { + revision = 15878; + shortdesc = "UK format dates, with weekday"; + stripPrefix = 0; + sha512.run = "4f64df42384897fca09574330d919704bfac2115f330f8ef085c9be60b51c64a9f1f46c10b863e989b9eda6559a3e2cb2388a59a997afad73632d83b02177b3e"; + sha512.doc = "7c79bb48296d491816b5e5cbcec389fb7a2a200a9b8e544394a8363b5b99c7ad36b332c05968b98c1bfa1caf04fb554318494cafd0781e25ecbed532c752c65b"; + sha512.source = "114d472984fb42b7043762f7f76e1ac384ca4efd338b7ea1815d25178256dafdc2c83323cdc3e4c1835fa8d3cb019bf0d73dd3fe82acae16b41db4e0c76e81d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + euler = { + revision = 42428; + shortdesc = "Use AMS Euler fonts for math"; + stripPrefix = 0; + sha512.run = "3b3d383a2f715f14dba0ab926d3df9d10ab63c06d203c59e551732a7f6af4ff8965750404a37863c91d3fc3db7d44d1a279d03839162fde9d8d9fd849f0047c3"; + sha512.doc = "789c0b35257ad74dcddea589eed36f0a3b86eae3b201fc708c13cb11dbedc5b489d1495c218f9e10558b8977658b72c345a5622c10b8b1d7ceb3065a6c8fb9a0"; + sha512.source = "59e262e4ebd3eee88828fb2cbc91b55ffe962e2bfe662df5c052075cf4fe4b9b8580ce217e38e4709789a0e77c810f9681ed3cef95f10709c54da5f1dbebd73b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5"; + }; + euler-math = { + revision = 70335; + shortdesc = "OpenType version of Hermann Zapf's Euler maths font"; + stripPrefix = 0; + sha512.run = "331055a1c53976130824f826da975e7ec49d84b993be8a2e4330dba4ee8a48df209140879405307a3d635eb264831b790b05850ed00e8eec98d9f649443e650b"; + sha512.doc = "31b74c70d914e16a7e4f0bf4a6d94bccdb7656b71eb5024dbe01d25f72612c22577248b3d8ab695a32e58377f315f59ad679b30ceee23f2d7b66444710062f5b"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.61"; + }; + eulerpx = { + revision = 63967; + shortdesc = "A modern interface for the Euler math fonts"; + stripPrefix = 0; + sha512.run = "86f23cf10d19427876caa9e21bdce3adcfa7ca06578e7ae05f20529333e36b7135695c1c3990c6700e0ad365fed41634de5d152813ccde20cf642d7e2b282455"; + sha512.doc = "997bfc34f084027c6275d41d4fd8e1eafc55a6aa1aae66895c6bf8a3ddc8a7b411052a126cb87b9900829b933175c6be942e1dff4713633b5fc12f6688799753"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + eulervm = { + revision = 15878; + shortdesc = "Euler virtual math fonts"; + stripPrefix = 0; + sha512.run = "f497e30a188bd0d6cb66795253b35f6a108ef11a2924da94110e5a2c913af64826a21789265bf7f2b15a31a914b74ec171fe3c3d299b1164801898c0d7b0e7b0"; + sha512.doc = "dce6b483aa0d8ed6d6e607a0a518060fb290b25f04306ea4ba50f863034aa3184118a7a13f42e89fb2706daa173abb7eb5c2bd433eb038aafd1f3a8eb9c17995"; + sha512.source = "33ad15486b813b4c4cb7758cb22acd59a9578df070857483e6cf7997997437df954619a197c4bd762c38417bf9841c06db446ee74939b8eeeb6a0d3bf893f5e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + euro = { + revision = 22191; + shortdesc = "Provide Euro values for national currency amounts"; + stripPrefix = 0; + sha512.run = "35a1c763998bdbc3b3b54ade3e4887859aa9d166699ccfc73db432aab3439be075d858e88d3542c25f8a0065301f0b1fea9bc368f85ed767e9deafa090f35beb"; + sha512.doc = "896a040cf80bec968e4fed5b2bd774e433997d336855775c1e6e5215cd6d9bb094550da324a2433d4da94ead4af3cfa6b192382efa73bb7c6bc951c22bb02fb3"; + sha512.source = "cf587911ccf53bd78d100221518aa62595279fd5880152d715950ece34b23eb5ef39b0ec190d2c5b5060a4f68861a8b9ac2ef93a3a6f3dbe3b85223dc386bef4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + euro-ce = { + revision = 25714; + shortdesc = "Euro and CE sign font"; + stripPrefix = 0; + sha512.run = "c1a864ebf022c8949b62195be6ce857ba108b7f930cf6e0152d70b7e3283e09c2f93fc670732cac79e3f48b860431186ea903324a02597b2a92fa43a0819b57b"; + sha512.doc = "3a44189546231f3bfde594142e6901a69f6e351e1d04203d1d646c476ca330431c0560faa79fec79485a4092b667864dcfb522ddf9a56bfc2b2ab76764b3852e"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "3.0b"; + }; + europasscv = { + revision = 56829; + shortdesc = "Unofficial class for the new version of the Europass curriculum vitae"; + stripPrefix = 0; + sha512.run = "35aa159fd84082e1cfb65bd05ea83462400e12edf5a40a89740373954d72b42cc33516452691814359d3bbfae1e96f4605e0d19592c54f4e2e5328542cac42a6"; + sha512.doc = "834c4266e343a8b615a45a2c4b064170bf6c9516a8631342ff02d4de7154229458818192670f3f73aac5600407c830c1be384226bb3b0923af964905a39d99b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + europecv = { + revision = 69661; + shortdesc = "Unofficial class for European curricula vitae"; + stripPrefix = 0; + sha512.run = "8e71b214a28fa5cda60a769cc9584d030e348e3236ea57e932ef3bc7d02fc07969e31f83ad2cba0f7bc7a32c41d9f478881b437e003675fa26031da7552116c5"; + sha512.doc = "ce96aa71bf8886c67c65d0ec4e24e97d45ea4b4a948d9b1b6dd51f79781f0667798fbee8fc2577c13b13860c5a886be2b4eb6bf743500a01e1982e5c8e29ac9b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + eurosym = { + revision = 17265; + shortdesc = "Metafont and macros for Euro sign"; + stripPrefix = 0; + fontMaps = [ "MixedMap eurosym.map" ]; + sha512.run = "9624b0a91a8491d4178051e8e8264e506725ace0eb1b4e4ee9f3cf38cf7868d392f0f4fae92947c74182a6cdf7d4cfb46319a269e4e3aac686ecf4a4cd2f7b3d"; + sha512.doc = "db226757ec82087da3e67fe69b5e9c2429e3cc2addb126bc528dda8bc421a4e9da2a367e64f119eb109e8898409a4e50177b81f9035ed1e0672bb902836bb61f"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.4-subrfix"; + }; + euxm = { + revision = 54074; + shortdesc = "extended Euler by DEK"; + stripPrefix = 0; + sha512.run = "2f786231f801ba9a9c5f5176bfbd01f8e952c33c722c7508988628afa66d1ddd55c4de02c0ed9cfbaa35a8764833e822046f7125330145995433b517f7051bd8"; + hasRunfiles = true; + }; + evangelion-jfm = { + revision = 69751; + shortdesc = "A Japanese font metric supporting many advanced features"; + stripPrefix = 0; + sha512.run = "ff08a32b6283fc7ca0454e0071ce1d90b7a6fbf8989ca3eb4cc1f804f002f920890b083e5aa81a9455f57659a4df52b6c4677096621d9dffefa37c318e79a0f9"; + sha512.doc = "ef98234e6c6609dc9ea6f60027c3dad1f417d677d5177525945330122b9b513a90bd296ba86a1d96eadb52792b5d162264578118872d5a7b1794b4a1a7fe06a4"; + sha512.source = "348b751825e0ad309ba4d37709d9ea5949448e1a3985b69ba446404316486e40a4fcd3a5c337c26b10c63a6b9051ed4c88cbd1f31a0707ec15242f7fd19ac7e8"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.5_c"; + }; + everyhook = { + revision = 35675; + shortdesc = "Hooks for standard TeX token lists"; + stripPrefix = 0; + sha512.run = "56547973d184de21ff5d6d3eaf1baf9b8cdbcf93307c31fbbcf658350ef0d441509ce359266ea6f962ef9b40b1680b47e4c14a822aa043ab8174ab0610df1665"; + sha512.doc = "331def0138dac385605b3ea1d88af6d5d1ae29bac696b76f41cdcfd070d50915eb3371a14a894b1e59bf35d55eb7dabecfe18e89f0bfbe6f028ce5fedfe1bbc2"; + sha512.source = "ba0d5e3f2661c4b5ba765b7509675f301dffa3fb3d9f158b3c3255d84b3a5620ec4d883a9c2f116319e6c70784eb5efa4a1cac270d1a299b23bd6fdcbaf60b2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + everypage = { + revision = 56694; + shortdesc = "Provide hooks to be run on every page of a document"; + stripPrefix = 0; + sha512.run = "032713896e2704667582aa03e8d542062a5eb26188d41b08968955fbd8535aacc8288559112aa264c542e3523f452dd9b2acdd1dc3f66450cdc5c5c902e38b80"; + sha512.doc = "4c19f905b5a16674980da2569b2994382a2eb108fd20bfdd29a6ef4220e00aa390c197dd86ecd093a9acb83b9a2d64521f732083e3c2828478a8c8c45463d180"; + sha512.source = "f01679f5ac00d3c75a0595496b489a008c664d7197af6d267226498b821ca83d34ae842c212756ccef81aae40f4447ddae2146b5651084dc55081f75c1ec04f8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + everysel = { + revision = 57489; + shortdesc = "Provides hooks into \selectfont"; + stripPrefix = 0; + sha512.run = "79b83d48e3e6eedcf1673a30c28fc06eb2ed8e3bd292d6cf914faf5ce2929795e6dd11baae3a207c796abb67ced2a2442af11c2618fd7d565696f8bfd121a0a2"; + sha512.doc = "5efdce418de6d29481a8a8a9bb89fa561e865f5628dd67ce88fd648f54a40c6a90c625700d053d741b650c568eb6b63da81b68bebf89bb618a398a223a5b08a1"; + sha512.source = "c288dd88a266e87bad6880e36a681e29f5f52f02b5f7b86133daae2972932572f0e529945acc6a0f00b844909da8f77cf3a524bece531667437a5ffa0dc2a684"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + everyshi = { + revision = 57001; + shortdesc = "Take action at every \shipout"; + stripPrefix = 0; + sha512.run = "b6219fdc669847a30ad2359d6b0888eec0980114d5385c018e9ddfd0876dc52390e1e8ffae5d2850cfa140833365c30024456bfacde6615bdbe5101e7059d52f"; + sha512.doc = "2a05f4b42c1a85b4af8fb3881d1e32d0cb8fad7070bd8eb83632b50e387083a5c8fd264b61b70416451f56a97e1c0702507bd50c534ab7baf975372d854a97a5"; + sha512.source = "4ae653fe3cf9dcfa51f461ca72954eeef666a6324321cb5e6416d7e2baa5320115818a26f1970bf7654acec9454e5174262578fc4d28f251d3476d27d6d4d9d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.00"; + }; + exam = { + revision = 67600; + shortdesc = "Package for typesetting exam scripts"; + stripPrefix = 0; + sha512.run = "99621f442f2a36e661f98e2722776e2e9dc394abc39cd20d45bb6bcff3ed362a942dc79d386ebf45efe053fc6abe2524d95fc85c4c766d241385970fa00e5f65"; + sha512.doc = "abcc7ead3c7d4847537476969bb708f61430940e7572e078e26baaeb6f2493309dcb996bac0796870825d4badb7bcabc81fc49aa7f4e71c0c816fd7e1ec875a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.704"; + }; + exam-lite = { + revision = 65754; + shortdesc = "Quicker preparation of exams in LaTeX"; + stripPrefix = 0; + sha512.run = "f1f16566eb49d5514bff3076f1c1837cc933278f3b0e8b1d6541f158ce4922daa43585057666e66ef80366d36b4b28793b930421ed8901d456405e52469e0e43"; + sha512.doc = "a1a2ea02e4ed3d846e428f5ae43f25150a982f2d490d9753071345d53e640f3ef05b43e812ff84155a44f369ab49e294050bbc53823da4e899c7e1b6c2d1f36c"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + exam-n = { + revision = 64674; + shortdesc = "Exam class, focused on collaborative authoring"; + stripPrefix = 0; + sha512.run = "bdd3f8a1e7836ce86fe022e27c554c125403247a9ca4e4cec7a0f32937eb517351d815248ce67815610bd063a9d0e5111868c301847aa5b6e5d666dd1cfc2f8e"; + sha512.doc = "3cd31c7cb86e66901eca162e7bd0ced047fdf22f2d8306d9f8cc8dffb299d027305e950ff1f188d366226614aaa2db2ece78008bf1a34d4076eaf3db7edab319"; + sha512.source = "4234bf167451fadba8b098e686490b517c44063c76bb4a780aa0d585db0df75fb30050efbe539cf6ce2658414db6a69c5f0c6e63de6e024a825ea45070ee894d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.0"; + }; + exam-randomizechoices = { + revision = 61719; + shortdesc = "Randomize mc choices using the exam class"; + stripPrefix = 0; + sha512.run = "bc29ee238d430b0d1b536084568ec8e68381c827c7ea7a4742eb497c7092ac8eb0bb990c3356eaf5939420e37979412c61ecd2e83a98a0e36739f1d6c73be3e1"; + sha512.doc = "0cc99d67ba7b1d8d27048b33a1f1b9864e35c542ba8683c590598d5da3d4be5d3f93c9a01f339dde6fb0945982e20de19847805d185b4b28aee2c7d86bfc631f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + exam-zh = { + revision = 69920; + shortdesc = "LaTeX template for Chinese exams"; + stripPrefix = 0; + sha512.run = "d4d15c90b4718be8deec3042d4fcbe8ec497417a3761d8e203f6e17079c613a3ec621d58ce388f26353a5d4d668546aae40ab7d0248ae577e1609e18186b19a0"; + sha512.doc = "b00e5d88a1d801e38b3ab2fa8286b880348e99ac0f9daf8b28174a6d04b862c995331136a3236801812e05b9bf15e1288268414753b99545abed856141868215"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.1"; + }; + examdesign = { + revision = 15878; + shortdesc = "LaTeX class for typesetting exams"; + stripPrefix = 0; + sha512.run = "bf052063b16056faed35007a5e1b6e2bf4f116388b2698c24c7c00ff257fde4f0225f138af6c011f99d051085169b51357c8661647f28be07a7f6dfd330ac10c"; + sha512.doc = "1870e3732933e0d69f52eff2c403011b09814938083b91bb428c776ef50140e1b43713837e018b09e8340dd5e47811aa1050bb9f90b350aa341216edb00c2a9b"; + sha512.source = "8f755df76be154c4a2a1aa6d2814774a0b9398d0b64f7a59cd865e92e805dc3bfc84026a18dc449a2ebd6cb6215097e351037430de19960e957f314ae724e244"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.101"; + }; + example = { + revision = 33398; + shortdesc = "Typeset examples for TeX courses"; + stripPrefix = 0; + sha512.run = "2f790c1bb8934e1127ba64c61ccf0d9ed503c01cb8975c114257a2179db7d88b4c969475b0e357d17785fcf7e42487e991e176df3dd7a1be5db4cdf87abb9cad"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + examplep = { + revision = 55265; + shortdesc = "Verbatim phrases and listings in LaTeX"; + stripPrefix = 0; + sha512.run = "689c71afd2f5733b669b12c27014edc260ffca597b197ec0a91b5cc476bc6458699510bc5053863f9fa8ca47b9e2cda18939e734d3c23c7507f0646e0cbd9afa"; + sha512.doc = "09fab96fddb1f42c6c5484e1716d1f2dda3f51c6c6f666343a79070aae079ad2bb67f210e51875621c4b4f8a30f9908d4bd53caa74c57ea8ec4ba330dbd721ea"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.04"; + }; + examz = { + revision = 67303; + shortdesc = "Randomized exams with multiple versions"; + stripPrefix = 0; + sha512.run = "7394aaadd38993f44b63409c28517af05f9875840d094fa4467e8bfcbf1be4af41327683264ad81107f2f84f024fd683a62fe32c04d9f61ee0532b100fec93f5"; + sha512.doc = "400eb0b85928fdb12e1afc58036f6cefadc301ae4a3e659d1cd1f2fe122231729cafbab7a05910cb47d969839041ea240df26e510b43a6728e2d1794271442e9"; + sha512.source = "df30d1ca746c4c4efaef640884ea93eb3d97288addc5571db4ae76454ec26e2b57df5e401314b9628454774c8d29b4e69b2a2e6391c30da2c29a7b7330e670ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + exceltex = { + revision = 26313; + shortdesc = "Get data from Excel files into LaTeX"; + sha512.run = "ef8495b4ef6937af022951044652ea1fb1dcd3f65961408e84a52f9053db8f4fde6703f18833ee9cd002bc058f01813ddf765f575200211563d6e16a956d3613"; + sha512.doc = "a6c4ae60f2922af773f67494c30407b5b6ead39def9253b4710940774e619496a3c242f7e9bcc8733fc733234679bb2b01c6f4571e30dca16c8eb15ad8d6d01c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.5.1"; + }; + exceltex.binfiles = [ "exceltex" ]; + excludeonly = { + revision = 17262; + shortdesc = "Prevent files being \include-ed"; + stripPrefix = 0; + sha512.run = "b83426d7ff334e64f8a5566fa905f1c03478ff68da5b74b85dfd6c872db7a63454f627db4e6bea48f8048da0d84bd80b269cf5cd3a5b487484dcd8f2e21c5058"; + sha512.doc = "11f1a4e7b0bfeb5728ab632756fb612b784e7a8b46e68c2e5cb3681928811d394ac0b7f508e7c655945209b1e75837d4ec1a69bcaa6b0ac8d45d66302b4bcb13"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + exercise = { + revision = 35417; + shortdesc = "Typeset exercises, problems, etc. and their answers"; + stripPrefix = 0; + sha512.run = "8de2044404690716d781a3b081181d9a14596487213762bb1ef426a0951dc18b1097a4cd8255bc7094d9d5e7f874e68181849c173a4932e7d07c46e14d1609b1"; + sha512.doc = "3059c297ecb8a990bac32e1e52bcd6fe39e6958c96c145ad70b937ba89284a6f447a84e2f144d31aefa1c446331c7ce80ccba926e288d7ade917c7aa68095076"; + sha512.source = "fa76e8b16def4f53a968c897e12e37707c054c3a964f14ee9654bae4e7285a3d300d62f0a79ba7fd80b2fa15e9a334bf38f3a744f0c0f6c32659853bc9b57855"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.6"; + }; + exercisebank = { + revision = 50448; + shortdesc = "Creating and managing exercises, and reusing them as composed sets"; + stripPrefix = 0; + sha512.run = "6398abee37218c1c4b0e21f7dcdc82b49985888c8e5cc4702fbe20942471cfcdb8bb37c66edf2c6764d9a38dcc932b8584f65bec8dcf75ba11c738705a71048e"; + sha512.doc = "d7b262b7a9ae3a45b69112e2924be8ec7cb2c13a8b973056e849cc5a0f4c82f85d4b5887a3286360b38c3459bc99ea9d917cd1084d6abf1ffc343d7ab522fed8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.0"; + }; + exercisepoints = { + revision = 49590; + shortdesc = "A LaTeX package to count exercises and points"; + stripPrefix = 0; + sha512.run = "cc706842f62ffd982dfde7f503f226c7f7050099b581dbef6e5e7f85269e3110a738232f1a99752b353a54a91ae5ef145697ff36ad9df1fb69ce1051bf92858c"; + sha512.doc = "81493e680086ce4d833e8e9107a056daa4e74e321964f914d8824e25b4dbd6c181b1e10d41ceecf27d18baa53958babf77b0edf4c0234e0b80a8a3f5ae49c348"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.3"; + }; + exercises = { + revision = 55188; + shortdesc = "Typeset exercises and solutions with automatic addition of points"; + stripPrefix = 0; + sha512.run = "90ca30f7417076a9933970d6c8559317861015480ae5da813e19e0114a6838084317fad6a0b1aa295b7a8a8c49038007a36ebcf4ee83f54fc0e454a317943923"; + sha512.doc = "ba5b8125bf2a59646f401c5d4968f1e00b5d9a35293bcfd7c67c54d275b8e4b1586a5f07ddd097065259935a541551a8b990f5dc737e1be8e78343382b7be72a"; + sha512.source = "32728c5bd1bc6465bb82ab95f9c2a4fa4a403431a8369373d75861ef0d6af8850c108c223b6e202f03b53f87d52bbf45f07a81e75175c0896951cda89cf20ee1"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + exesheet = { + revision = 69885; + shortdesc = "Typesetting exercise or exam sheets"; + stripPrefix = 0; + sha512.run = "80b24d8740ff9d633b852fd27c2bf6c6ba00465c620780a0184fdd2c0944a3d84fb467561602cff66c96657d6feb983225f529c72419c81579aefe2a10885735"; + sha512.doc = "b6e1f6534deaaf685428d83ca76716309c33f9bba4799a59d9a5223d1594989c81bdb568b4591ef3c58fece8cf4b9849c309e34b2b482478d1b4994d3edf3455"; + sha512.source = "efe535af2043be2f2328b52c2c5fccd3aaaa1e84b839d0b793f1fddaf18b277b9cd1f325f94fd9cdd87159b28928b4ec2085830a5a1bac0daa2b31d98b165a2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + exframe = { + revision = 53911; + shortdesc = "Framework for exercise problems"; + stripPrefix = 0; + sha512.run = "426128ad41db65598a47e0baf0e019b6592c996b10442edddd624d86524116df4e0fd01411c3ac2f4153ab1af6f3a960680a085a556f07a90ff2b326bfbc26b2"; + sha512.doc = "c8f9913899a52815ddf7d96f033db62e248a92ddfbafea2091a93b55fd1bdcb01734177c7e234ac2de51383eea7e21afaf77164ce496c7858f95d63800461007"; + sha512.source = "1a42fbe43846bf5e3a87b43b4e855a0f7b198aad0f0aa311a4e7c3632b4d45ef338f107484190461fa15dbfa8a52dc7fbbcf95ac00cde18281b2d58e931df060"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4"; + }; + exp-testopt = { + revision = 15878; + shortdesc = "Expandable \@testopt (and related) macros"; + stripPrefix = 0; + sha512.run = "26b5af9bdd06a3bbd231b1b55c4ae8929efa06655656747b804425e802fa7d07355e510ac673590cef235cceaf88fc03e1493f4bee9c99ce2a32c32b9a3f9aca"; + sha512.doc = "f4f7cda5cc8b3f8900cb12989834e5b1702f751248f58fe65a8d65ab69eb2a4118002212eefb609e251d4437579e635173366beb471e32d07d45c5c645ca506c"; + sha512.source = "a41951719a9a4bc391216d3c5ed796b0f285a1a7049fa3617bae689127cffd32590ebd3212bf24b221bd7214128aaf564fa62e0a511f98f03961c16a39bc6fb9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + expdlist = { + revision = 15878; + shortdesc = "Expanded description environments"; + stripPrefix = 0; + sha512.run = "fc0f0473faea3d8ffe917e654909374bef6b6d7e41d14c32acb3ee822748c6f37d1f5ab562b4bbfe35dde983f12cd9e1469bd2061aff32e3f79de66e6b3a6c32"; + sha512.doc = "624bbc4ce685589e7e6393cd991b6305d8a20419b4538f2e1728f9ffc004ef4d724831515b77a607093bf45b8cefefe3e6a352403ddcb543b690b314fb469ce4"; + sha512.source = "6713de4d316d2be62338ac94d465393a9e20e16eb2a088ca9086f2e9ad0052f799e47d89768e38fb04a38ed07800cfe9cc505b578b517c2f4cadbe520ee1bda3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + expex = { + revision = 44499; + shortdesc = "Linguistic examples and glosses, with reference capabilities"; + stripPrefix = 0; + sha512.run = "b447a885d65a000f0b79b4c9b050bc89bb32b71426a29261d282fad72428fcf64dc6c660d9142114094bba32040c8e723190e553260c3899a1c1923ebb9f765e"; + sha512.doc = "b0dce6401ccdef7fbfebbcdef9d68f073058f935eabc95fa45619f4d4d85e6b53e15091d845593255c000c3e672dabadb1cef024b2b0c79765f4f6a231de86e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.1b"; + }; + expex-acro = { + revision = 68046; + shortdesc = "Wrapper for the expex package"; + stripPrefix = 0; + sha512.run = "303eec6a2ff399771eb33ecaeaf85fa4a95dcd6bfcaf2a99d702dd148c90b99dcb6ec292170406e497839d5c64ca1a5a6faa20e6cd64a497eae7900b2f28f098"; + sha512.doc = "cb24be981f9ef838be718f44f2b69ee03f81bdd0c6bb49ffe632214f3b6029293d92bd492f59b0c34bc39aeb506204f747a6e02064a9f222cd01053fa1ebe98e"; + sha512.source = "c07114ec326345002f5a4379125516083452e7bc38ce949280a850095d260d8545fc1a3672206163dd43985a48a1e249038daf401359be8383c889a01397982c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.3"; + }; + expex-glossonly = { + revision = 69923; + shortdesc = "Help gb4e, linguex, and covington users use the ExPex glossing macros"; + stripPrefix = 0; + sha512.run = "367021fd290eda11945ba892fee935bb6c86d10427c86232acc000e409d254f410fe7a1012f1870f9c6911a2e1172dd27eae3ee922daf5804433120ccba46015"; + sha512.doc = "fe033244e38a76c3dc6cd3da6189980184e0dd95d74b006011881218e6a385e468c7e59c6dd0da60967f3a8a31c030a1ab70e209c054f89ff1d90e802519edd9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9b"; + }; + expkv-bundle = { + revision = 65623; + shortdesc = "An expandable key=val implementation and friends"; + stripPrefix = 0; + sha512.run = "969711569e1a27e2b08fb7aa9049413ab55c6799d6e1b6cd1c92a79f82214e36d26608fa0613bc3299385a94919f8f2d0029bd28ff2a649873ba6f5da74d48fc"; + sha512.doc = "091fa4f7e8a3b321f02c874160eb92aaca0bbb9b0abb895c74f398c879cf52945ff3468f5f9f4f9d5ada750c47c817be3f9280328e6958ad7de470a11ca340b4"; + sha512.source = "aa9721025f7ccf9091933d95ff411a7fdc763f9d34bc191eb693dd2fdf4e8056e6db929977c89956cd4bbf0804a2c6f1e902b06e26047f55e11e6e2c15fb17ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + export = { + revision = 27206; + shortdesc = "Import and export values of LaTeX registers"; + stripPrefix = 0; + sha512.run = "04b5eac3e263fd692a1f4796ddccf7c5f41398075c9b15e65a0712cc83dcd85a65ae4506a882249e09c9ceea37f973be3398a0c31d2590e0c3e57549f07e9116"; + sha512.doc = "169236b497ce09d685c71bd21eb6c35ac260d5978c03f074371386062ce8219bac1e501878ba13b60677c423904ed11b37d8e018adae573d135a1e1cbfdb84a4"; + sha512.source = "844f1bb688d389fba93a7350b884b4cd5298ed6974d48218cd1cd2c863b9193e6d4d177f3ca1e905dfaa028f626fff4af4b9912ab9bf3eabd2bd9f4ce5d5da7d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + expose-expl3-dunkerque-2019 = { + revision = 54451; + shortdesc = "Using expl3 to implement some numerical algorithms"; + stripPrefix = 0; + sha512.run = "9a642f593f0440159d802bfd78a472645dc1c320a43e8bfe91fd7eba3c0b67bc3ad9477c17b36f6ac08b39ddbaff11687e78694bc81134c33e1af085a9384a24"; + sha512.doc = "d3b09af828ace720aa3f7b0fe979893f9fca3d358a69abd818bca7a81d45928cd02e0557bd607bcd91f223ad9f4808b0aeb61ba7269728d467eab46999ea5f92"; + license = [ "lppl13c" ]; + version = "1.2"; + }; + expressg = { + revision = 29349; + shortdesc = "Diagrams consisting of boxes, lines, and annotations"; + stripPrefix = 0; + sha512.run = "d380b7ca2efad2cdafc3ea6f2265452a85035765a221dd5cfeb33a03859dfca0e4cd01219995870c8943657d2525e25d32bf7e5b9fe8aa9afa8d17c1ac4703df"; + sha512.doc = "9287376ba5aa36088b4a99455b727c0f60648d50421ebf2fd125542f208f490c5b57af256bf2b704f01a3e00e85e6023c69cb6dad529fb7521ee8cde74ae9559"; + sha512.source = "4fc193835f6b283ebeb0906d847d54e99e5026ae53929b8855d78208212bc4ce6133359191830803298c1dfd07bcf7eb1e163fa12f8bf799a9eba381e11f7f82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + exsheets = { + revision = 67300; + shortdesc = "Create exercise sheets and exams"; + stripPrefix = 0; + sha512.run = "475b2508bedfef0f537b02dde56e489ec464ab500e1b6b63e7d8accaf9d5c17e8973d9aee8d370494115592febe684262fbad239fabe5a314c5d89e781506377"; + sha512.doc = "8a00471bef6ab06927fc7c3a4c33e32a2f6de376cb238fa3e06e3e5a44c98b2ed413f74e60bb207c99c6e64f934bcb406d898bdaa0bd6d9c70b3b5133f4e8178"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.21k"; + }; + exsol = { + revision = 69343; + shortdesc = "Exercises and solutions from the same source, into a book"; + stripPrefix = 0; + sha512.run = "b29f3f9e3ba9d4b98b5db23876e69cce17740923419bc2999c742bd24ecf8f6434bc6226bf4f0bbbd17de79b45653b97ea85866b76892f07d696b0ab5b6afb46"; + sha512.doc = "8be8c7e37139dabc5095c1c77f21a55e60666067ffaed66448db31a3cdf1ef2c21cfa4cd8e4021ecdb6586f1a7b0ece40ebd79f485f878fb25249e1094b7b316"; + sha512.source = "d48acde6262a2eb4fcb2de2f0e3da5f7b0c33418d896235b2ec656df5fa946872c8cd4b266b8801fea5f9a30bae24154ab663358013e450736742604742578d8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + extarrows = { + revision = 54400; + shortdesc = "Extra Arrows beyond those provided in amsmath"; + stripPrefix = 0; + sha512.run = "ebaceefc82c42bd0b0e341d6d2cc589f9369fceec0a71dd7da40f0228b0ef1fbdcc9ba95ee0990b47b4a202d15c87630e46867afd8e9d69fe02fa721bfd590c5"; + sha512.doc = "c51c13205ebb78eabf181b4a927bf92ccfe6756d732162407d1e98961c6b50fc20143de05c992feab2b6622a80ad7556eb173d87264e4c0059cddd10eaf8506d"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "1.2.0"; + }; + exteps = { + revision = 19859; + shortdesc = "Include EPS figures in MetaPost"; + stripPrefix = 0; + sha512.run = "1991bc0b471276ca3db68a8ba7611becc4557de4335a321b5c3e92c1fefbe34dc0488ab44850835b5ceb1684ce429e7756fb86d885e2da2177e0d9081797aa0c"; + sha512.doc = "aac2e20a993818576f9e1efb153e9285b17b48827a1547a0c1033f22fa1a52f84ede214b4322ce4c6ddff69b8736f214f27370b3f1c006ea6e5fe2ab9fd64304"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.41"; + }; + extpfeil = { + revision = 16243; + shortdesc = "Extensible arrows in mathematics"; + stripPrefix = 0; + sha512.run = "5cfe0172ad420c3ca53c57be33fc56b205ba05a11876e4d14c6d86387788c73370bc0708bee46e43a02f10ce9db4b3611b4ee337ace44fe8fbcb2ca82f88b2f7"; + sha512.doc = "8c2983b2e777e21e95d6ce1b9b4732491ad8a931205adb071877bf966fbbdc4306b88b35db87db4c3fa0bc52cfd333f721de2e1e7d233ba3c91d192a3574171a"; + sha512.source = "6dfefa85e111b39bd46b2f39ae52e94a053569fbb0b263bdf02996bcb122913cbb999ed6c060e00a12a88e0ea9b187fe2e33a990bd75fd1f6f78082d8859071a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + extract = { + revision = 52117; + shortdesc = "Extract parts of a document and write to another document"; + stripPrefix = 0; + sha512.run = "32889da48868c2335866bb5c229728f9a37dcfe552830ca03ad3b704d1f7a471ee120de2ffed07bcf50797f7e34dd6fce53c77f1b63d15071888171d44cc938e"; + sha512.doc = "64fd270a61f5e5f39442a56bb7a20606854b45a995b9a455604139df8006a1b198ae332669de09c1baa5dee5ccdf59e5989d21c17376a764a096f535ceff3f48"; + sha512.source = "c94663034b4069bb47f611b761f08df36e2e69705d491ad0405d826d81d07f0862dd2a7963cc1bfb0f071ca4ac56aedc96debdfbbb35b097a6a49f863ac3de2a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9a"; + }; + extsizes = { + revision = 17263; + shortdesc = "Extend the standard classes' size options"; + stripPrefix = 0; + sha512.run = "5b000d25ff594af2895408f0d83eeb0e7d6dd5604c53d5acd835898197e44fb88ed2469039489b75b45678f28182dc88a0af56ed1b1730be2ce41e6e81f13b7c"; + sha512.doc = "9bfa898f7eab416beaee2938902fc0f3a5ddcf1ce972f30d18a683756fb53bc8f66ef1220bd3bbe6ca6a473959a67c55c18a7996eb095ef301da8b594f42d3ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4a"; + }; + facsimile = { + revision = 21328; + shortdesc = "Document class for preparing faxes"; + stripPrefix = 0; + sha512.run = "3a179a3abcc33bd0f48bf267338c8a7dc0186f7eed097af74cfd8a936956952fb50876dea447839738842fad34c724c057f577d427a82fd82f85c7e8ab80c8ab"; + sha512.doc = "36da402d7b15601ad768aa1e07f356812ddf0a09b30d19c13bfecaeac847537caa3be31036cb80441370b6c046dee24b13aa3e04f339476e9ecd18cf09c8c9cf"; + sha512.source = "ad8f90796cdeefe11e6c12e254c4571f2be57f5cbeca8b68e301d857a0ef8e52fbb1e32eb2d39e6d6b8c7ea19af58f6087c67c9bcee58e84a32038f18bde223b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + factura = { + revision = 61697; + shortdesc = "Typeset and calculate invoices according to Venezuelan law"; + stripPrefix = 0; + sha512.run = "6a90efed09588600991644ba847b16641aef40dd0b989b1944f7b48581d6bae642645fc97023e6cb0f1dde76593086c3007580df25e5997b92593020140dc212"; + sha512.doc = "f449e749dc4b61a8a15062fc9e5556414868cf904bb279c5e997402fbd6d7f21f3e8f19c19af5ab4049a1512070d8e74064d4823d56ee7a20ed03f2a2eaa1b91"; + sha512.source = "d26418ce7f0c6d95a1019f16406f39e791ba79733632cf5072b041a3ea3b70530d08356590aa5305b9d52fda0d882669d52b1bada9a3d0c458c2888cebe35b9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.32"; + }; + facture = { + revision = 67538; + shortdesc = "Generate an invoice"; + stripPrefix = 0; + sha512.run = "30ed6e76f8801f61eeea27679c8c23c050c7d17c334eabe0a00984b1117f046314e59c2c52225ca7d38eb71b93efa57dd563fd582eed500fdf238fac9540b606"; + sha512.doc = "c84aeae53d8324b9e4f1d386dbbc8774d1b9266ca5c8b893a7280bdbc2578dc9e2ca9975874f4d0cbfc5dc10455cac322d9642534b0fc1384a6d7d192a816d51"; + sha512.source = "5d2f865404607f25af2c0704d83b88a359ed5601a970c6798eaca104a2b61bf45745e271c9f19a6b41977cef1119e6981f986a20e05a07ba6053b24c5fcc4832"; + hasRunfiles = true; + license = [ "cc-by-sa-20" ]; + version = "1.3"; + }; + facture-belge-simple-sans-tva = { + revision = 67573; + shortdesc = "Simple Belgian invoice without VAT"; + stripPrefix = 0; + sha512.run = "b37887eff90040c6705396b81ecf753289974f1fc5e7e348db2f0414ed7f1afdc0179814a6c89f0843f310b6afb56e8a3680c787fcdec886dceb49ac5f25be9a"; + sha512.doc = "5d5bd334d970ea18e5e041e629893fa42c391a3de0652516efa258b8919429d1d6fe7b43cc4bb104d762e5a5770fe3fe8ead51c61c40ebaabe25e3d15311bf0c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + fadingimage = { + revision = 70610; + shortdesc = "Add full width fading pictures at the top or bottom of a page"; + stripPrefix = 0; + sha512.run = "c86ff2a9387a4a1e0713a42a6a95bfac953bdbdcd2d0a5b1de918d7f5bbdc39a00950ad7e9ad1705245a7f8f6021a4b3a676540930c81d9cddb7f87fd9bc8477"; + sha512.doc = "1350c995bc94b4d5c8a0d8c0e88dbbe1dadc82cf5b75be09be3a0c3fee90ee6451934154488d5c2a21ce8451fcc7ae8544f7938aa692f96bb133766a05b49730"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + fail-fast = { + revision = 67543; + shortdesc = "Turn warnings into errors"; + stripPrefix = 0; + sha512.run = "dbe4eed6fd1b3bd3c2d48ab4590043c2bf95871350bc1b56f47bb4dc27ef3010097741920ce0a935aaa03fe9e2e8de49db7906dace3be314fca49e816c7451b3"; + sha512.doc = "6c5bcd8329cd21f13a1e0074ef4c4b5bc474babd663d444d9ce48d23ac775dfaaa7cefec393a6ce2bf81ca67c1429c65dbd41511162030b80fd1445c9aa5b541"; + sha512.source = "0703b26d3675c57d5d81de357fdf1b50133dbb2a07710338a243dff8b04370f2af0d1c216d1b1751e1e281436427635a6bb5b226e0f35085f9dfaf9378bc6777"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.0.2"; + }; + faktor = { + revision = 15878; + shortdesc = "Typeset quotient structures with LaTeX"; + stripPrefix = 0; + sha512.run = "5c598fbb40d7b37ee5b66bc1bfa8b0b2a0b45f7e22c992e6d0c85ed952a79a120803d41f9b4a13bcbbd6424c555c8b9ba6adb4eb79d1056fbf759008f9b741af"; + sha512.doc = "57934606287afaf1471f1207af5d0e97533a504aa83324069154e88e70f10779d2eb19ed2a9e177c5a4b2cce4203b576272fd2513d989d4ee276330305597034"; + sha512.source = "01f22e60260621a41e4efd6681b6fa226f7461f47348a79dbd75f214d606c6af2fa54d904792e653d1accc22298385d4cd658c204e653e4320e2932d742da28e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1b"; + }; + familytree = { + revision = 63739; + shortdesc = "Draw family trees"; + stripPrefix = 0; + sha512.run = "2f3cbff39c42d0d6414b372c165bbbf3a4dbafa28bf16ca47a89445066480317caedc9b371f9deb348ba986de2c14b71b1820aa731e74d72a4b0b39a413bf9a5"; + sha512.doc = "55f035425d11f070870cdd8ccd555447861823754a91b0a31f54403013a6427197b3ea893fa7e75e63577635a5896288f29ef052c9431aff3f1a9c2038ccdb1a"; + sha512.source = "b6f8e0cfa54b13a95b4ab39e8a249d50f5d09fd325ed8acde8b7fca736d6aa05432fe3a40554f3c289a678c1349db542c6f321e8a35f5bd486ce6b0675450911"; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "3.1"; + }; + fancybox = { + revision = 18304; + shortdesc = "Variants of \fbox and other games with boxes"; + stripPrefix = 0; + sha512.run = "752e26abee96dd2bbf77b30a6d98d48a1673632d5601d28bba5799e845a015357b96302f3f1d8977f0458003d3456df4694884a05ccb6124b76ca8f7fc84fcbf"; + sha512.doc = "2c3e0466198d392af57b2bda16f80589a9aa9db992272980a2e7ab9d7d1842d7e8f2980003b3b09648cfe0b9a1977562534ca54fae120bd7e4d950d25a83c0c2"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.4"; + }; + fancyhandout = { + revision = 46411; + shortdesc = "A LaTeX class for producing nice-looking handouts"; + stripPrefix = 0; + sha512.run = "0091703483cab573f9c9202603d31e310baafe932f929ad852c23d2ca97f21681637bb3ae34fd3d916f3e50f553b42ab1682b437f5a63b67c6dc4b7b7f202c80"; + sha512.doc = "be4c7b2caf2e85ec192f3aded87309ee2361fbb7e8fd1225f8f98f96446251aacd69e04e306473d06e14c8a8b686dd7a1c54cb0311bc4138fc9c34fa2d528ddf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fancyhdr = { + revision = 64977; + shortdesc = "Extensive control of page headers and footers in LaTeX2e"; + stripPrefix = 0; + sha512.run = "51254df035199653a78cc06c6b62f3d9edf3fa8c78911c0c667d5043376c9d449ce5a412ffb4e9df2bbd7b7459be8bf43f5ff296015ab2b2e146673290211a3f"; + sha512.doc = "3c3a1f01fd799b8530634ea917523f6a789f7f1b4dddf16e269ebb78ddaf749fff6ca07984044128147fbf5e568837688906c36c409688150f61490565b1a06e"; + sha512.source = "57db137f52c1f93ac8cb70e234985f6290d326f073a30a2eff4806da756126238f36ee87d123dccc71d4f73968e1342006fae63a96604e2b1b858d798f42c287"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1"; + }; + fancyhdr-it = { + revision = 21912; + shortdesc = "Italian translation of fancyhdr documentation"; + stripPrefix = 0; + sha512.run = "6899f3c11ed4a8f7476fe954166ea7576446b670d0b22737766927fcd29eb24e6143ff3031b974856562a7ff55e68f208164729618a4d28d28b856919f2a666b"; + sha512.doc = "cda5ff0581545e4eca9787b27dddcdad226b5dc9a630773b13073e9248b7b30b985fa5f5fc1bc5380e5a0d96f06c666d4e7e73168afbc2fa4ed0dd202967dafa"; + license = [ "lppl13c" ]; + }; + fancylabel = { + revision = 46736; + shortdesc = "Complex labelling with LaTeX"; + stripPrefix = 0; + sha512.run = "950455301b0bf3ea3be0817a45c4e7453ba95c8afd397c1cf9ebf559f160e2828f414f0dca4647a80481f6e8daa0902e24692469023c21ba844afe1edda60b2f"; + sha512.doc = "3a05f2b388eb2a22a0b48b4761b3964c7b0c616eaf0c8adcbd4f375a3dd059b3d3b0831e754842bc084123fff7a12f59c87c5c5b362739c062f36a215dca2ca3"; + sha512.source = "5d0ae7fd455b679221c1877a5a8fe58da76d3db96de7bb6eaba24c50ef9a0bbc3252858276e4f0c6b81161f65e985911ab1608bca21418335e23189a2ddac425"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + fancynum = { + revision = 15878; + shortdesc = "Typeset numbers"; + stripPrefix = 0; + sha512.run = "93e1b88ca722b4169a572285443fad53b66ac59a3c0b6465aad54bd8d416046bfd79897db3d8f318f9d6e004c958b94bbcab16b1183d66197e1078840934689c"; + sha512.doc = "4be390bfd7562e0c94dc19fad3e0f34e52db393878290773517d6d7951e428cd3d0dccf5f47f6f03e5f0b380ebb386c8d89373e8c8e4cbd16463a9cdd2f2417f"; + sha512.source = "8f2f569fbb2a6ddaf371814e26b251286f8046e8a1e923f18e67b165c26c69cd09b46e39dae5fe00a427dbe4f95172680973b3eda7be16c60cbdfe6daf37710c"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.92"; + }; + fancypar = { + revision = 58895; + shortdesc = "Decoration of individual paragraphs"; + stripPrefix = 0; + sha512.run = "2f4e242eabb151834c6014a15d0ae012949e5e35f87bc32374e12f032bbb0fa21d6562b207ba855afaa28c36497cda3ca51eaefa579956f51283c84be8cefbba"; + sha512.doc = "1d972212b86e56eb692cbcca5d7d47b9454a6c0900803818c286b6cc071df93c5444d36eb29a8035e53c65fc9c30582686a6b9203af8e142e1cf1c31a6e4d58d"; + sha512.source = "3f88c040637b50d49981474b38d50cb5c3ba7baa5b6390b53f98e3315d1f17f0b0c48780f4c719583f3e452041ddaeb36fdfa367a616ce07a2758b11db152d39"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + fancyqr = { + revision = 64182; + shortdesc = "Fancy QR-Codes with TikZ"; + stripPrefix = 0; + sha512.run = "fe2a8078e8491384ca4cc25fd058433dde3d4d4fdbd5784ad67150169f1ff5eec85c6f2c2ae7efb6aff6e6fc731c18cc4a156d968872b69d58a36bc042825c2c"; + sha512.doc = "afd49422e17012b84a9ddf9ead15af3eb4f5b0e8291f76b9a672d4a3097d9f390753e0090cb67df94cbd5cc88c45ec2bd67b55594bae9ed4b945ad293e4f07df"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1"; + }; + fancyref = { + revision = 15878; + shortdesc = "A LaTeX package for fancy cross-referencing"; + stripPrefix = 0; + sha512.run = "8f4ea5f16bfdbd06bdbaad76da724a1aad82263f4db2c24cf5f2e9f2db9f2afd9d4004d629098f936e0c2d4dcfa5fba8bd278746b90542f87b547e20abb0bcba"; + sha512.doc = "2231f5fd45d45cb7b538852c95b90db35fde9b66629d17ec9288de6ecf5339359c17fdc8931019fd4acce61ec2927a0cd494cc7462cab0df13d7660106b6a142"; + sha512.source = "65de000487a8d317f0d05ff6d35574cf0bca521e4ab029637fd459b34f8640c53fed78bb9a54c21e4f5cc7c03dab221995810057350c46690c948a9e436c74f3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.9c"; + }; + fancyslides = { + revision = 36263; + shortdesc = "Custom presentation class built upon LaTeX Beamer"; + stripPrefix = 0; + sha512.run = "a0b9ef4ce804b78a60b4c3a25d5d70bb7ec17324d295cfaccb64d166bb1a704bbd2baa5cf6edfed7adff03f48bd3f3e7854e2fbfbbfdc7eb953d567a257a6e46"; + sha512.doc = "77e1839377ba440d4009f30ae6e58d843ec4b7a1bf7f0d3414700e32c9a01062cd6506cb589039299e7a4fd945f9ee5cd951a62fe9795f822089152ca19f3441"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + fancytabs = { + revision = 41549; + shortdesc = "Fancy page border tabs"; + stripPrefix = 0; + sha512.run = "0cd45edda0062f4a0fbc26a0516d7f5b35cb4f8dfd4072830da880369d71d8a4aea6a7d5dd95a0b479ec3128170108f114aa00ef4b0c8324c60ddd214568f5cf"; + sha512.doc = "0113da627d27fe88c4faa87e1564851344dac2efb75c78facc4da49a8937e2bda8e1f22997a2018b368001c24e721cbf623fc199d03673701a55c7ca45404770"; + sha512.source = "4a7c92f30414a595cc8c928b181565e3d50614fb4e5a128197bb4a8f90a50cbd9c75ca447bf37c41e9fe3c05d4422d6e3618da63edc51f240dc3e8d55c8d61dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + fancytooltips = { + revision = 68931; + shortdesc = "Include a wide range of material in PDF tooltips"; + stripPrefix = 0; + sha512.run = "b24e747d4ad811002cf742f6c74855a85b69745661de1cd1d4bcf41ec18ff62d34b39adf56393f79214a1cd4e54f72c54796b00d573e29414825b8c1a3cff317"; + sha512.doc = "4d567cc367e19727815efd49392ed0455dd47d9416d6c1a4cf846eb017b3b3cb0c8060fb0fdae0a93cd05a156422f5ece0ba15e54bf3fef9b2aa8ad6a7c4166b"; + sha512.source = "96485cec2bf6d02338699203cf0afb06a43156a66c7c55153bcb158256bc816550b2a0dd7a20cebc8bdffa84c1e40d1652b9a829746880203b49e80dd0297c47"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.8"; + }; + fancyvrb = { + revision = 69536; + shortdesc = "Sophisticated verbatim text"; + stripPrefix = 0; + sha512.run = "816a42630da356afeba3d7f0dcab924edee8a0d349412cb920a3ee21d9e1a57cc65e1655ba6759e7acd6508532f4ee059512a8997b964f923a59a57f548aabcd"; + sha512.doc = "4dd0ce373ac1fe5b44c6e9470790e372e240f91a8b7add6ed4e0237a22a68309bf8326607679817d5b4db975a286340c469457d8ff4664a7d7a74e65e92a4a5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.5c"; + }; + fandol = { + revision = 37889; + shortdesc = "Four basic fonts for Chinese typesetting"; + stripPrefix = 0; + sha512.run = "309b19d6bff9d3e009610d698a73ba191da70cabd57157f274dfca7583a9e9b31fc30ea52b2b2ab3386be7290a680f8eb47dc92381c3da8251b01d8c6a65c3ff"; + sha512.doc = "d74e78a1c863d3865ec4b21a4c762bf6e2c30a8656fe0ec830d1e56b9fcb48861f316ccf8d8641e7c674e25f1ac2292d10ff2127315275347096ad325828d7e5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.3"; + }; + fascicules = { + revision = 54080; + shortdesc = "Create mathematical manuals for schools"; + stripPrefix = 0; + sha512.run = "0d6318bea8660796a5ddeab06c416017ec2075633a391a536c7c3355de7b7e7f711e74f0e43e8b4fd39debfec797164f1961eb27776ca3b53eee729d0e27a479"; + sha512.doc = "ee9a54c4b2d746577e94abb6d458c473f88bff18e4f0f57bed5923a1ef08c6ca533183ad9e9eb1d1bcfae6aa5082d88a9c08fe7cf96c3ab9d71ab099ec64c1c0"; + sha512.source = "c5fec67754d84dc42dd6c62267c8a906a5717f53d9c063efc51b6cc45f3f616d270fa3af2658deac438739cb231bcf9b2c9497477c910f576ca943b80e03f3c9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + fast-diagram = { + revision = 29264; + shortdesc = "Easy generation of FAST diagrams"; + stripPrefix = 0; + sha512.run = "cedc8305ba0a7b1d22274d869629a1872a80a4001b443c8baa93e44198a5dd88e39c16c28bb5edf9fedf4f8f2f68c6964f009cbf6feb21c7c14974c4b598acbb"; + sha512.doc = "cd8e3edf882fc16b5757f59d16ed1a479e437eba36c783cd86cdfb9cb81f8b30e8b95a522ef6fe4b6e22b4b0bf6637e72bff734f7771034cfaf85df935e4a003"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + fbb = { + revision = 55728; + shortdesc = "A free Bembo-like font"; + stripPrefix = 0; + fontMaps = [ "Map fbb.map" ]; + sha512.run = "d63e140b60941f114b7aa7c82888c224715d6d173b88ca85aacdb3f7635aa928846e804e807830674d3bec0fc801435eb9e07406270c156d40e8c1994f50aa3c"; + sha512.doc = "c63214ea5a91ea6bab66a866a65c2ee43c64f49afbc3235e2f55cc0de89fb3a269bea45fb7d67ccbcda4bac3249b2f2ab14f780fde7cbd112231b16e58eac67c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.16"; + }; + fbithesis = { + revision = 21340; + shortdesc = "Computer Science thesis class for University of Dortmund"; + stripPrefix = 0; + sha512.run = "3e593e312ac8efbbdd294e6a00ec020678dcb12259ae778ddaed4d43a800aa19ba16f8eb15b5122ab22f44c5e23c77e4fe733c7772929ef55589d387985db694"; + sha512.doc = "92d0ae3382aa71260f6ed204f6bce1bcbac26985f41789e00c5d3186dcd448bd169b7641fa40d34cf87c556ca10573b0d8cd4235aaea8a0d1533dc40c71b3779"; + sha512.source = "a931b41de1feb5b0a78bc40c20bafebeb529a8a8b351344020032641ecf9673168328dc271228130ff22ea17190cf021b1dbe01635d7cf77984f69861c84c02d"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.2m"; + }; + fbox = { + revision = 69041; + shortdesc = "Extended \fbox macro from standard LaTeX"; + stripPrefix = 0; + sha512.run = "705a0f1f6d5009f0ac2fa1059f3029ef7bf7e8fdab6e85bddba822eb50dfcc049f94b7ff43afc97234d44f42505e1cd4e6caac1f22178949dcaea0a60e572281"; + sha512.doc = "19a61ddc64c3c5108ec05089e988a07f0e10d772bed810898bf82046922eab58a389c3816b15055b5c2e8a4d1392305a351802eaf3f1e72799c9c192eb8c1484"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07"; + }; + fbs = { + revision = 15878; + shortdesc = "BibTeX style for Frontiers in Bioscience"; + stripPrefix = 0; + sha512.run = "2d5bce7890fd8e087e035e60064bf134d8ac7ca2646f7b846df8fca7c594843c2778d0ad1752ffefed40283153194b5da97156e866bb4b8bd10b14c8ee3f2c4d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fc = { + revision = 32796; + shortdesc = "Fonts for African languages"; + stripPrefix = 0; + sha512.run = "12bb408f7ba4774d943aa954bd3d2558a329d383a65cd4780f6c5bdc39f51b943f01d87ad203aea3b02768dc0b9ab42f681175c18a1e1dd901255aae05156558"; + sha512.doc = "a7495a0d6bd394811ff22438a42afe3c5109633da7c606a732f4c5746cc4162fa1c86ac3774aa7754e9b07c499f3519423d4b6fb212ecae156b0b8e8f848d914"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.4"; + }; + fcavtex = { + revision = 38074; + shortdesc = "A thesis class for the FCAV/UNESP (Brazil)"; + stripPrefix = 0; + sha512.run = "db440d7310805a7f3d918996e577a07c5d8dff72e6d667f00c1ffe5d88e3bcb689e794837609d9a0760530e923f9a28d3e5c052cad4c38e23ae03454e0ec26c4"; + sha512.doc = "2060c70b6a926aae23c145f11c7c6e255f684f925bf5447ee98fdd6f6290d64fc5a92ccf8cbf85e0c6f0d6fee869a2d947e3df8726fffa4a5d2c87c217beef59"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + fcltxdoc = { + revision = 24500; + shortdesc = "Macros for use in the author's documentation"; + stripPrefix = 0; + sha512.run = "c14db194a73247122e589024824a53125ff10e15f8bec2475530aa41e78d74993f73474ff9b3899bc499c0cd8dd3e1ea034ea821d233c2a512f8c4d4d06d095c"; + sha512.doc = "4aa6aed9c5b4ddaa63eb2aa7e529da03dcfc57723a6cb40cbbfc729636e459f4df1e292bdcd20093595cc3ea154787fda41abb4f6f46db2a7331626f181f47d0"; + sha512.source = "6b16053cf7941063e4f08a249d1b4dcb61127eb0f22938353b17b959e7a9cb78d7953b81346f25a6e49f4a7c8bc602b3f820c3b9acd3b84215796b3ef1a63550"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + fcolumn = { + revision = 67729; + shortdesc = "Typesetting financial tables"; + stripPrefix = 0; + sha512.run = "0edaa6ad0c01a2cf9cc06c65fec3bc13b85be893d7fcf4a92b0c8760d1999e5c3b90975e44c586ef104b020eaa0a18cfc4476b3abb243c5f2862941864113bd2"; + sha512.doc = "9be3c50f25522c3fafb52432b74f6ab755afc02df04da84383ebb466bd9424c716082d3d6ff176d32c03c9097b6e39c6f54e70cd8218784492d2ebe37de0ebd8"; + sha512.source = "e122343109c0367d3f22bfc2b3775ae10545a01d18908cd227422060ba3c685e35beae26c6892479e03c3a4f774e2f9edfcfd60d6cba0880a4279e610de1050a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.2"; + }; + fdsymbol = { + revision = 61719; + shortdesc = "A maths symbol font"; + stripPrefix = 0; + fontMaps = [ "Map fdsymbol.map" ]; + sha512.run = "e8b2d08c3e64def77a688dc9d96c0b9da9eaa4c942e571578fa0a7e6dff9eb3910ecc66a7be9334ecd41fdc0023f89d8c98facc2d42cd0095c75d6e1b4da69ac"; + sha512.doc = "88efcb300a84b6c214fec37603ea23cb51043af78e1af8aa6e3ce157bab1c8e395e71991c7ea7854051f4706c6b702fe0d48edd76e919a4592e57320b1f77b98"; + sha512.source = "7be26193e05d57fba2a91d57b49cbadaf5594d9ea843b9d9f1ae15608cf7d45e40112aa286bee73ee16da976c7ca7bb7aef5627cf8f0023cded506a493426b31"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.8"; + }; + fduthesis = { + revision = 67231; + shortdesc = "LaTeX thesis template for Fudan University"; + stripPrefix = 0; + sha512.run = "e495c127884aecc1856b99705c262882b390f9e800dca59c2fa1200ae584a424ef4ce7752a9bb5dd7aad9a94c4a685af557163f2b07327e80f5b99153532d915"; + sha512.doc = "31a91fa609f3ef8631d6ed57526e932d5c110e4d84cc78862d1bf4c682f8de97c080a1e2d82e60842b731e33505b99dd2a85ae899705ebc45de44e526358703b"; + sha512.source = "d2cee0822ae532782bf30e1cd8b07b65a4c7ec3cc29901b10a25d81c4cbc224a9724a6ab2a1e7bcd8ebdb05f6936176d95783198f6bef20dbefd4e80ffbd7349"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9a"; + }; + featpost = { + revision = 35346; + shortdesc = "MetaPost macros for 3D"; + stripPrefix = 0; + sha512.run = "9d7c35499df5c8c8efe8ea51d88c4cd9ddc6bd5238ec527d842aaa9ce42c30bb1d73c667f5aca22f385d3725c7443f043a2b63cd337a7f6d5b5d5810ea34bf64"; + sha512.doc = "e4eefb43d63c6522c3080a76b4df3a369932bc9e2f868ed0143d62fd2365bb74e6891705b287d19b4ca4b2560b0573d6ff9a0e5cf2a3da2e4b21482cd6cdd0b9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.8.8"; + }; + fei = { + revision = 65352; + shortdesc = "Class for academic works at FEI University Center -- Brazil"; + stripPrefix = 0; + sha512.run = "2be4e4d83c5a02bfd43eed59741e07868e0e22489bb087f91de0681dbb04e999cff2bb9441b87937c3e2cfa60b7d4a1641dce4529a5aabc15df12d70e22e521a"; + sha512.doc = "adb30683e075801f74cd87bad431c880ffe410fdba738b197932af4f0efdb1c6530ddd66c6c860c1097b4f9e37601a1a9c744a1b573396c29898f130988174ea"; + sha512.source = "4241c9b50e339c450ca124285205d6fd7d2d2f73cab829c0248204012420f5ccd0615a1d1986cdec8efa15b2c8b8ed54ffd1d815f22ad0f9aa8e05b9ad485c07"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.10.4"; + }; + fenetrecas = { + revision = 68779; + shortdesc = "Commands for CAS-like windows (Xcas or Geogebra) in TikZ"; + stripPrefix = 0; + sha512.run = "6337deecbd49a9ef9d19ab31cdd705cb49bb127ff451d9f3790a3ef8fa95ee7b65f52d49d22b1698d039fe268fcc178c07f30dd66ba7aaff69e883594e6956c1"; + sha512.doc = "8fda8eeac400f810e3839f5197c53b808594c2536b1d4a5c7c96c788b8faec40a4efe403b065519d20f09cc1d14fe80e9e060d2b8e4a396cc9c1ad34dd16fc42"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.4"; + }; + fenixpar = { + revision = 24730; + shortdesc = "One-shot changes to token registers such as \everypar"; + stripPrefix = 0; + sha512.run = "1b09294b430bb9ab6a4eae11549500b224514e55bb99329a4ee3d9d72ab906128063537302f672a772c02ff4372d46649656a88c4a303a9301976fc7a804387e"; + sha512.doc = "6ee02d615438e99df82f939a8104097e43802b00af2a0e7be56f329061722cfc7df0edf84c82ac73754d63a703533bd6d5b88b6e648bedbc47be712ff86ec5c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.92"; + }; + fetamont = { + revision = 43812; + shortdesc = "Extended version of Knuth's logo typeface"; + stripPrefix = 0; + fontMaps = [ "Map fetamont.map" ]; + sha512.run = "20c5c83119d70a94e66aeec0bbb9a0494525deaf9addb9b91d8d5595397ab5a1195eb9d72056a5fd1c3ca490aef66b43558f5c5b86688e7d164360a697c331a2"; + sha512.doc = "16cfb520cf8b3030d546e1c7f7cd41772fc9d16ea55db6920a50945a7aa3034050d873d3d5da05c108ee303dc1c77217c8a1f014c2e9beaf36d932e33aefeb93"; + sha512.source = "de4a25f0a86f29d10fd1cf799ac6c8efc58633a7ba0c48bb33716c46e6b0e1c9d5be6ee4e8e4955739ddb324270e44d6fa658c360d03123c18cc275ba6abff06"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fetchcls = { + revision = 45245; + shortdesc = "Fetch the current class name"; + stripPrefix = 0; + sha512.run = "6cd8e2016f7ff344aa06587fbfeb4e498d1b2e76d9a6ff64f167dad71c4ce6ae867d791660f50e80b6f2e59a9f2fff4c4c9b7c1cdf84cdbbec5113081b24a25a"; + sha512.doc = "ebf9aa0150b06a0b4674e7be076fa5ae4b2ba4542aa28e1b9d4320ea0152a5cc9cbbf926d713f877e74ea948d6132fc36898647e4790c67aab651502c4e5d57f"; + sha512.source = "067385746ed2cdba4501038cbc4565bef431f2e35e9069fe883c0de8669cbf6f59d8233ff2f561e8590fe8b32a7613a195104f89774bdae4ddd63d65deb3123a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + feupphdteses = { + revision = 30962; + shortdesc = "Typeset Engineering PhD theses at the University of Porto"; + stripPrefix = 0; + sha512.run = "b4d4285b33f314720cd07eea903bb2fc6092f96033f75d4b06cf315fd24d1a34722aa73db4cb6410a847e1d23a131ae329f8ebe75fca15dcaffb99097768f55e"; + sha512.doc = "d87c0a7722f62a599bcc63f7ecfea190c64d82a4a4a1ba21d18c69866f80ec77a527a82cb94b0d081002073f5faab95119c6902e8f8f2c10d815ca2d206b1d4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + fewerfloatpages = { + revision = 58058; + shortdesc = "Reduce the number of unnecessary float pages"; + stripPrefix = 0; + sha512.run = "4f5637bf431b54590e8c2a8ec27e3da3d801205b8cba053c8c1294ba0882bf8aef17a0e291c149799cfc3530a415202014570460a6e2e8986ef71bd2cc05567c"; + sha512.doc = "a18d15933e6efbbe3428f366bcc5ba5ec0b254dcf77f7ac2e72c19bba00e78b44c98df34f57468902101f547fe9e88b2033430a02098805c6f0072e68ac82513"; + sha512.source = "e98684d4cb79477c66e4a831c8571729b3da021bf9945bdecfe8a9ff57fb1e2948c42c3481adea0fb702ce4d56ac533b14f76e78c182500431af7f3671491d7c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0b"; + }; + feyn = { + revision = 63945; + shortdesc = "A font for in-text Feynman diagrams"; + stripPrefix = 0; + sha512.run = "30e3ca5e633d040fe2eaa88463a8c9fa6004b86c4ae264af9b8a9a3bf55f71f7e1eb21e656f2fa194ebc751648f411a094fe40fc6a2cade1fc31aa586da1317c"; + sha512.doc = "b420c19b69caf39cfa0e54bcfc90f291d9ddbed21d771669bf82a0fb04b4099fd494d2287144655366af7d0ea9594a74d64867a31754278ab1b97ffa507dfc5c"; + sha512.source = "578f093c588cd577ff696dd052ba969769f418dffa3b2450b71efeefd885105efcdc7be4ef9693bedc911940d2707eb084857f5db9197e74040211a9952d2209"; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "0.4.3"; + }; + feynmf = { + revision = 17259; + shortdesc = "Macros and fonts for creating Feynman (and other) diagrams"; + stripPrefix = 0; + sha512.run = "d4eb87e3f086f2d39c87eba057fc490ce5d39e9c5ae39aa1c04ee8c3be9c4a188ef123f860fe74d31e0e9e9182909c39df3434ddcc618632723f00627f66397f"; + sha512.doc = "933edaceff112f7442f7c662fda43f343b0e7e41f65aae4f1a45bfd2de18c1e4bda505a235eebc4daf2451846dab376449242217ec803f2932a4a1584038f4ee"; + sha512.source = "bdc4dbbc449c911c0d516b10da18c1d541645ec57fd95c163d571a039c70ad46e6111717ffc86c802123c272509c85ce1d71d90f49578b2e228a9229f4d40f02"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.08"; + }; + feynmp-auto = { + revision = 30223; + shortdesc = "Automatic processing of feynmp graphics"; + stripPrefix = 0; + sha512.run = "64ca275292b12847d823322ced9dbad615a34089c8cbe43262e676b34db205ed56509f641e18e949523bd252ed1ea73eeb5f019e2cd052274c02b1df67860a25"; + sha512.doc = "3dd88f5af739013ace4fd8eea70ce247b997e887c0f7067040ff9bf4e0300126aff53845ecefafa7bb52dfc4d05d181a1e96847e6a534c718c5a7447231539ba"; + sha512.source = "ea29f32f9f1c628d63b81c958f7c8064e884ba1764953dd62fbe5d90506547846f52fe378f813a09090ef6991c9b7d2905095b04fdc0e26aea4c8cbcb5e2b2b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ffcode = { + revision = 69706; + shortdesc = "Fixed-font code blocks formatted nicely"; + stripPrefix = 0; + deps = [ + "environ" + "microtype" + "minted" + "pgf" + "tcolorbox" + "xkeyval" + ]; + sha512.run = "0047a3b5ae171d3636a80ae583e2413b805546baa662862894dbe6dba92f3e4c20fa1b55d1862dfe968f0b738f2067a4aab294278b1003c864b5c6a8702590eb"; + sha512.doc = "72f09440fd91ecf532ada964010fcd364ce30abb200da2285aec45a2bc1d11b97b7b557f19473e26cc4d690e96a9151f3cd8129aaeb28eaa3d3f26ed5d230333"; + sha512.source = "eaad3fcdcfbceeda1c991c5961094cd470b384e4c749ebec657c5b575190b35eb28ea7ee88aa113b829f1fffc225a61f38d5c61e28bdbefc133c55565ef03daf"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.9.2"; + }; + ffslides = { + revision = 38895; + shortdesc = "Freeform slides based on the article class"; + stripPrefix = 0; + sha512.run = "393903c180f2fd554178c909bf9a4c060707d8f2fac44022b4811526c7b505a0354afed77f8ae0fa3fbcebed3918a6b46f9e81206be78d7ed6b1c959cd3473a2"; + sha512.doc = "4a8e176b7bce3d54464a30497e41d5a899905a0029199710aedca7234612092f0b2e265a465084536434c9b8c7f45eec3f2ac3df5eef66cecfdae5cdae36c798"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fge = { + revision = 68353; + shortdesc = "A font for Frege's Grundgesetze der Arithmetik"; + stripPrefix = 0; + fontMaps = [ "Map fge.map" ]; + sha512.run = "0f97109ffa1daa97d4ad496c2e948a123a9fb04393e668c9c3b1a14131f6ed7a21ac9056c6f3766e3ab2d3a2caa2baeb67c4b59d6c6489299090976d697e10f8"; + sha512.doc = "8505aadb706e79e6e1d0faec203de577cf76acef5360ed7c29febc2239d2719a717a59e9d4f8fbf5d2eefe67be1ec3cc1ebbf9be47930750582df29bef2fa9fe"; + sha512.source = "c1d966e094ce4a61c6250717731a20c3db0a0e438b5d8acf1b5332cd05a2f6dfde1d0e99bd02ef5ee725c1242da9ef183f680a03bb7f10d7ed50d0ce4c2bb1ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.25"; + }; + fgruler = { + revision = 63721; + shortdesc = "Draw rulers on the foreground or in the text"; + stripPrefix = 0; + sha512.run = "d30678e5f84074c9844845bcb527333a7040b9f9e787f8aad92103eaf880e89bb1747946cd91fb9b8229c9a8fcc8e2ff81c3dc69804d37de3be1b1f6a4cc5a00"; + sha512.doc = "74747c385452b4d996f70413a88920d59b4ac8f4f61c92516e4e60f36cce68c8ce9bd72f621aa52698679aa10542bb2118088058c489230e7c2081b17d8f987f"; + sha512.source = "3d7017aac6c2d07cd73166b1aab65452b11a97a7e34516c75c1a8e5123a3587eb90b0455846b82084a6e997340624c1a1053fa079bfb202a558ff4dc08398cf4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + fifinddo-info = { + revision = 29349; + shortdesc = "German HTML beamer presentation on nicetext and morehype"; + stripPrefix = 0; + sha512.run = "86767390bc9946b8f8d47dae0334d7cfc21ac2b064b00ab70732f7ca3f50d875a35dbb0e477ef1c014452fc14c177a1c5c6b96ee334c99bbc2bb49eee9ffe6b9"; + sha512.doc = "e6635f5cc989bfa0da9b2b0cbd5c3719aa793552f4c1adbc1ee218a78b6b116d2c2046b04254e3294834e63901ece9489b8c86421afd3c58aeb8615b5859ee92"; + sha512.source = "f01f2453c206cc7fefaafd1269c77b43bf1f24a8fef034ebdc40ac2be5c4ef553d2096f4168e7933e63aa816b1397c74fe21d725f0a6bc3d8187c751145a44a7"; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + fifo-stack = { + revision = 33288; + shortdesc = "FIFO and stack implementation for package writers"; + stripPrefix = 0; + sha512.run = "4121e3cefed7ffe80bfaa8b054ba0825ab0fc2b4073a845386de4db3650b4d68c48a4f7378ffcfc4a221b21ad30ac6e199920e7d8c44f503b35c14cf4c001462"; + sha512.doc = "220d9b2796c20251ae568d1dc5a7eee1fad5cf6aff26a2b94c1a2c9dd6d853dfc9c25377ec8c3d6edfc43f5b4cf645c459754c5d6a642506fa7779cf79f1a901"; + sha512.source = "3ab0e67acb7895c527be3cee1ab0fe7ba03397410f9970dc7c286418ae6e785d8051b82add959ff7d0596d6983ae6514f70c631672fce5c66bdb6542a3b7d777"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + fig4latex = { + revision = 26313; + shortdesc = "Management of figures for large LaTeX documents"; + sha512.run = "3f01676ea85d64e09376da4481794e1537b9e19c0ff0bac77c022b10b5d49c39d789de6e4f0356b4ea4b23326f9ef320f4b08035bc04a827951cbf44ed7c6228"; + sha512.doc = "c05d3c08b916785b765694e68b8f7cd96c3c359325e8f84166102beb4caeada7490ed24ad0b4f52a66cb822000f8b4d75d1013b93055898e88e82d7f23d5095a"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.2"; + }; + fig4latex.binfiles = [ "fig4latex" ]; + figbas = { + revision = 28943; + shortdesc = "Mini-fonts for figured-bass notation in music"; + stripPrefix = 0; + sha512.run = "2fdc1114b03123c35eccd6b617310c714f37015620551538458a1a49b1e9a583aa55b3cb661f204bb9168cee0a7325b066d64315a15a94daa01e43d05bbb2561"; + sha512.doc = "7dc8140b3b545d2683c471e2e2907a58e2c995f23acea26d763da8989c3288940dcc154ffc0f81ea99169ce574bf90543e94f86bf8217996b7c83474a300806e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.3"; + }; + figbib = { + revision = 19388; + shortdesc = "Organize figure databases with BibTeX"; + stripPrefix = 0; + sha512.run = "1632b372b06d8ef3cc363d6b05e70b8a493f357fb947ca1b8fbb7752d7ffc4ec09904e747a3e9b91b61e5d094c96eee954d533d1b286b372aa57244ec2abc63d"; + sha512.doc = "ba42f6cc811fc9e00c41bb6fb410a57a2efe759a0fd0621cd83801963d0ed138dc66a1a245a4b7256cb056f3fe71e883a8fa84d19dda785ba24825e85edfa044"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + figchild = { + revision = 62945; + shortdesc = "Pictures for creating children's activities"; + stripPrefix = 0; + sha512.run = "74775cfe7d7ef14acdb22bc6c60aa4db512183441828025c8e68f30e9e95c4e5a1492c99a31f459035956a0c50de054bbdb664f9cc68b73879d96a4ead5f2dd9"; + sha512.doc = "68cc451292f68cb433ff567252837c438938a8d16c4e48987abdd76bcafc9dca9482ad29c540ec24cfdd66f55da801b9c3e052615e805de055c944df82f3971c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.1"; + }; + figflow = { + revision = 21462; + shortdesc = "Flow text around a figure"; + stripPrefix = 0; + sha512.run = "f75517b5c43119d33edf46fbe124523cacf0d7d837cdf66af702ba563392a96323b266bece1ec9e7f87df34d684a87ab38f9ddafab6c3d069dca8ee22c3bf25a"; + sha512.doc = "c972bfb356731aa119e8cdf1292a3bcbfc08a74453feb7e509a5cc519f62ae6c7e6b0c087973549b9d860b97ff1a3bae9cfd1166c4ac6a74553ca6c0f463694d"; + hasRunfiles = true; + license = [ "free" ]; + }; + figput = { + revision = 63957; + shortdesc = "Create interactive figures in LaTeX"; + stripPrefix = 0; + sha512.run = "4ea2768b272f9be270f1ce3edf02cd73b8d8c792d8b92c20a8d38b05649e43e8441d6e439f0e1be8ca906c5b9a47db1d6a48ff7ee136f53dc4ae09cc6172d46a"; + sha512.doc = "54c8428c9b0bd267389a9bf25b005b31365fc9451d0e3ca4632e52a07af9c02a24aa1c7c9b5f19eac196f4dbfad9db91647cfef82c301496ec4be58d9e2360cd"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.90"; + }; + figsize = { + revision = 18784; + shortdesc = "Auto-size graphics"; + stripPrefix = 0; + sha512.run = "3c7523b05d04363c57c1ba75a39d9698b1648ab6a858be15112b6f47c052742033e3ed16752a9b9ef3854ab93f547f0841c32f1cc68fb9d4538fc02a7bb19ad6"; + sha512.doc = "598f631423a97e189c21e117a7da23c95bbf4dc3b616e62fc6738674848fc46be4d7dd43832ff58ef834c0fdbe35d8923ba9729d5c48f90b0431a22bf86f79d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + filecontents = { + revision = 66740; + shortdesc = "Create an external file from within a LaTeX document"; + stripPrefix = 0; + sha512.run = "bc51c03ea84130753cf4c6a6e6efe39403bc48a47b4c40f177d3ae17808c63a346a2b361ef61b0e0421094b6b64e20a972c6bcad305228ce0991818a62344296"; + sha512.doc = "15f34d023a498c733810ddb4b04c1672507d97d731a579246fcfc3f29afcb47da73429807c4fff018708ddbac76851ab8357dc274cb6c2506cd37d075d2dbb44"; + sha512.source = "8b93ff5a1cce54150c67bc607e67a40788dd0af08bd55163380756ce6979f3862b4cf1d70888b7b4ddd7accf078a387bf8540cb97af491b4d67bce31600fb8f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5a"; + }; + filecontentsdef = { + revision = 52208; + shortdesc = "filecontents + macro + verbatim"; + stripPrefix = 0; + sha512.run = "63b399a5e21d2d4946c195f380a0d5f269f8c978c0b504cda80c0796604dfcb66df38ca79d31078efa03c7475967bc0ebfb856e933bce6b21d12836368780e2a"; + sha512.doc = "26e7ca9971a0683325b62e2feeeb0db6ecdd3a732f07ae93515f2300ed58e97a44ff8a7504d194119c1e27d1d9bc4f367f29c17458c0e7f0b6a0a61fe18ea0ca"; + sha512.source = "f6e822a28e074fece05b911f0bf9d262e2b925c2a73559764e1eb5131d9081b48ace0ead5f46bb250bf648eac204eb1d5d7b362be508f58b40a50f70577de534"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + filedate = { + revision = 29529; + shortdesc = "Access and compare info and modification dates"; + stripPrefix = 0; + sha512.run = "5e2789c065459e82f073599c4d5f04c626fedae7e02c8dc58d6595d81ec8281c9c362592eee9547369b7a8e9cd2aed1ec526d69a8ae22f35771d5494e3109032"; + sha512.doc = "cfc2eb596e6b6d17015ab2ca061da39e673376d6f4c526dc045c8d2514fa8372f1a853a97425b4bcb9eb0bdc522c6b482a9bc3da9f56f8a4e0c22e4970a40575"; + sha512.source = "cc2a12c8f3b9e7391d6b57eec6c0f486137524022d89d3d3e7c037ab468a4858b253e8baa1cc8eeb731510c5e221b7cbe9a9f22a972023b3d1fe2f975e4751dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + filehook = { + revision = 64822; + shortdesc = "Hooks for input files"; + stripPrefix = 0; + sha512.run = "caa1f239fc8300f2925e94e860df3ac76637e337d57f599446c6b5f059fbba026fa9e440f4272b7e37ca9921731cddcbdd403c16e42b9c49e302452dc940fa27"; + sha512.doc = "7c86e322cbdade28c03b65580c992adff2fa112ae65b28c1485419c457a7f930614337eee70bb6cc2e9c386dab866e4e657c0b8d394c975c6af3a8b2fe651cec"; + sha512.source = "c9683da993eb365559e7d47e6c81235065e9ac74c9c334e9e1d9c040c9cde0ae135301b83e49c27307a6f3bc529c24d8f597dbdf377256d03c8d149e69c03bfd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8b"; + }; + fileinfo = { + revision = 28421; + shortdesc = "Enhanced display of LaTeX File Information"; + stripPrefix = 0; + sha512.run = "2e5914e32af48db731aa83c3e51e6d9128dc969891bce21e1e2f859cab79130c9f5caa0f591765fa8a9b48c38eed8d19305f4be598430ab1e2cb3276b6faf191"; + sha512.doc = "03b4ecbd21ec39d98949f2e8ece7e48bd539a75051350d1a9ea19e3d32ecd620c0f1a5dc454e626237534114d0430e2ad7c175e9c1b27ba15c78a35aeca3e3b9"; + sha512.source = "6875ecef667da4476def344901db38f38e988d2345c2afff42fb812c01c356df8bf1dd3c8c9a563a883fcb9e22e85b8813bbf50905d711004a439767ac0f7227"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.81a"; + }; + filemod = { + revision = 64967; + shortdesc = "Provide file modification times, and compare them"; + stripPrefix = 0; + sha512.run = "e346e795df32a3b0cec0232da9c2b190bede65d905035a758b949c9cf01219e0880ec2ce2e83201f8dd9dcc77a98b29df2b463edf8c44cb1c220a7efe7c9f24a"; + sha512.doc = "3e8c5a26b5c2fc8a6f713f006d091c0be719bde7bbe237e49d2496032289d67624fbad1319db421a0471a60aa8c11c97bbc60127053904725e53e75a2ae6fd7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + finbib = { + revision = 15878; + shortdesc = "A Finnish version of plain.bst"; + stripPrefix = 0; + sha512.run = "14f08cdc92a2d6d511c112c480efb0112d45c199023e89c9314740c2b9b83598bc9f8917ce616bb2493671f408f946ada3de4535136eff48b7bbf72e7436f912"; + hasRunfiles = true; + license = [ "free" ]; + }; + findhyph = { + revision = 47444; + shortdesc = "Find hyphenated words in a document"; + sha512.run = "aea6305dc0d9b31367638078a7958933468e761ef4cf47a1c44d9fd5ab2e25f7af22273c4631946a90edc9b51947c2e56b3d4b74c8c59f0a79250c2edf5bc137"; + sha512.doc = "97f3fa22fe490d21bc9e5ce5ea0b23ff25ab9afd9c5dbf6e8d78b24fd306ddc132c5ba7ca7ea7e3d7aaeb48993c7968b0c02ae0b765416a939d84b53171f4179"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "3.4"; + }; + findhyph.binfiles = [ "findhyph" ]; + fink = { + revision = 24329; + shortdesc = "The LaTeX2e File Name Keeper"; + stripPrefix = 0; + sha512.run = "837a470970c8376e1d699b28954cf2ac6ed849c2f96a4c17ced56ebf142297c36d3f856f9cbf4db920ae33f491738f7891433c5c6627565a48fb5391b663634f"; + sha512.doc = "7b1d9d1c62766082030d7632bd91c65328d1bf3e8bb6abe4ed64ec5188d9f38d3b2a99695f32c2bf04e2fcd634819926ba923eeea915186eb9fe96bcb43954ca"; + sha512.source = "e37a35a9c292ad3f213c560505ca6c446eda397771c18bb1fa2b64df70cd667b58ca03b6f821aa0a9d6bedb3910b66c411349f70dfe3eb5ca2f1fbdb9f925a35"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2.1"; + }; + finstrut = { + revision = 21719; + shortdesc = "Adjust behaviour of the ends of footnotes"; + stripPrefix = 0; + sha512.run = "8b360a3426056b61e58e577cc68ba9e2f55b63a3b4a0a2eb76ebee53e9ff327da9235e9da5cbb85e3cf369cd48354c00a79cd46110ba4adb4b64192b7ff7b603"; + sha512.doc = "8cc27d82f7125b5ee82585f97385924737406e45d9739ec9cd57b76736e902a588c7258628bdcc4841e3e23f359a4d8ad22a31ed6f821f1d1c59798f4e8f3d56"; + sha512.source = "c06f1b10815444ed51b13d83258e1f3d246da65a581a0946e7a05a9c8432e78ae395efe18ff6c0a84db8fdf6016ab8dbcc6f3242e72936f46e522d1074ff1b87"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + fira = { + revision = 64422; + shortdesc = "Fira fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map fira.map" ]; + sha512.run = "5faf4cdf1690f9d6c690cddbef813c8973517309144495016ef5d61ff5e5df9ce73f70b262d1c36ba72fa92f93c7a1d550b96acc4965d7ab88efce21ee20d682"; + sha512.doc = "b97fa7ebaefc3a057eae0a3fd14f43fad1a9789af0b2c43ca8a0c6969610b1786e24508b1367002527841a8095486d6eea180c59d95b1df904df846c943b88f2"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "4.3"; + }; + firamath = { + revision = 56672; + shortdesc = "Fira sans serif font with Unicode math support"; + stripPrefix = 0; + sha512.run = "c18ab8b2e12b947144528b196c9b1de7f1930f3a38338bd114bb61205d7f910fbf1e3b20ce48ad8228fc24b14d734ae68c3c8542218a058120a62783b007461c"; + sha512.doc = "4e434c757b4ad4c82397224ab275db9a0783994dd9e3acffaecf19f73b3bfb86dc6f70c2833b2f203ec354aa275384d1e97f48deea9a765b3d972eede02a35f1"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.3.4"; + }; + firamath-otf = { + revision = 68233; + shortdesc = "Use OpenType math font Fira Math"; + stripPrefix = 0; + deps = [ "firamath" ]; + sha512.run = "6c713fe81dd006707b987930e8c8835c21122607d9488ce997bd9b76cbe85bb91fe7017f4282fa91c11ab41827ce70de62d0baccc78a543d56b0d873ad153c12"; + sha512.doc = "39c2eab4cf1dc638194d81effa1b442b87e96b1ebb2efc72d0ce26041bb04fc3cee8f44b939f904b07cc0332708d8ae8cd7a1f41087d363888306c0f0583274d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03b"; + }; + first-latex-doc = { + revision = 15878; + shortdesc = "A document for absolute LaTeX beginners"; + stripPrefix = 0; + sha512.run = "39641224689a1d45d59b5643e5037599d03df3ecbe95090d565778758d334bddf832e867a25c1688adbee1f99eea23b3ed21fd6729fb3d4e50f1503537c9a400"; + sha512.doc = "497080fdad8195bdc43bef476f9e678b49d83829f10a6653c9443d327cb0da8505623e941cd3038349b6307ee37a65ce1a3d3eb48e4c6262f9d636d10d96e17b"; + license = [ "publicDomain" ]; + }; + firstaid = { + revision = 70324; + shortdesc = "First aid for external LaTeX files and packages that need updating"; + stripPrefix = 0; + sha512.run = "610aa5b4c12511436b7b26145f24c294a3c98e75a9b4211198c144e8c0cd58142853d0d581ea0bd620a4f01f48bcc186c40db1d0a27ecc559bc5ba012508bf59"; + sha512.doc = "36a0180f0ea5410157c03fa26a7c185229f5a6fefe517659f6cd1d5cce7425ee18c58909f985f500987bdf1d9993bb0d24d58dbac21121cd0bfedc384b3de57d"; + sha512.source = "374f4edef549e60798f9a44ba2e795f2b4145acf7164fab9ea170baf294670878499ab9770dd3c0a1d1df49396db17b827076b3e5049437e0d8d7ea1e7686f64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1c"; + }; + fistrum = { + revision = 66461; + shortdesc = "Access to 150 paragraphs of Lorem Fistrum very dummy text"; + stripPrefix = 0; + sha512.run = "7e0a92affb0fbe23b9d08e525f6e2878e3bfc10133fc95b41bbdeebca5c02c988b2c4033e50969212b5889dda4f9e2f043dd65688ea33d81b5bd138d49af5777"; + sha512.doc = "15b50530a68fbb2b330aa972640fd85207dedc0b0e640f830940cd712a16fb001e60b59c22ff81890ed810a7aba9f1e150deb3f91ad1fc4bf52680d9d1735342"; + sha512.source = "88fcdc104594951933fee790a45efde2cfe3665673b2589bd4f2972f15e8dc1f91b85c5e04dde3866688fc2b76d2692caa2f4dfd3353ca9416002126be408cda"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + fitbox = { + revision = 50088; + shortdesc = "Fit graphics on a page"; + stripPrefix = 0; + sha512.run = "5244567062493fcb5300048be6786f1ac48c72c363220b894a2695e78646f461584e189f227d04f55e9127a66ab966dc04cbd762fd08277774fe1c0fcc7d3c96"; + sha512.doc = "71d77dd1879a2b9b20f9c4934af8bd696de567b5c0187e7a5bccc9e225fec5793bff6bc670ce0bbe1065cb67de73f518942ae48aa0a27e46c2aa47dcad6856e8"; + sha512.source = "406ae04d838114e9cb7205c9e704b95e8ea8c4747827bb82fbc53891ca552042e5742f7e524361f2a797a77d8b7286dca3512ce7099ec8fa23101668d4bad5b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + fitch = { + revision = 69160; + shortdesc = "LaTeX macros for Fitch-style natural deduction"; + stripPrefix = 0; + sha512.run = "ec44706fa5f5fc258666e343569f695db0d26f6628aac1ac6eaae12377f23138c49ce29d03dc5b08cb1f5427cb5ad612cbbf9aad5a9270f4b31f43679023e73a"; + sha512.doc = "3a32fa5657e0042588c82ffd7d32f11dfc8e9d29ba268700092d26d32d24afdb3baa1f02b8ca4e248a19413aba0421d991809cac5db0d5d38aba8389b43709b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + fithesis = { + revision = 70536; + shortdesc = "Thesis class and template for Masaryk University (Brno, Czech Republic)"; + stripPrefix = 0; + sha512.run = "09bbae20efbe651a7cc5ec01c0a3f2b97aec3af24efaf21935992c7ee63841916cb29ea81ce7a916bb6ac4cee74cbbd3b02629b9c8c7467397dfb871e863fe54"; + sha512.doc = "4a476ca775b7571d4bf88e20e76f0acd8d36778a516ce5c778682b92f0de92eaafcd671d8ee756b9ce18f136855752963e994eb8f6e37611517b68abc9a6737f"; + sha512.source = "51b654e9880727283aaa5ea262dadaaf95f801980bfa2bf43c495e9315e60684566bf6972934ee95863c31e9e827462200527e1df26251cdb62caf0e660f2fc8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.1"; + }; + fix2col = { + revision = 38770; + shortdesc = "Fix miscellaneous two column mode features"; + stripPrefix = 0; + sha512.run = "b3f096a64fcea6c6b2864d4e8a86733afb852f3decae4704e6c275c41e1295622f1eb1c8db0e0d33a29e369a9b757495477c9ebcf82ae0003c4316967c03f0dc"; + sha512.doc = "302ffac957bc37305fc5b6f458c4b7dcb06b65408131bcf64c0132638a110813eb6c748270ead340f3d864b927aa7bbfe0a16c3722cbd8334b1d8ba8ca72e7d3"; + sha512.source = "af17350815d50b2f880cfdc9cdefe457e541041e311e886a87fe45e53e7e48ed12ad83c27b6cddb0b3f719469d6c0e379a68860d13892879cb89678f51607e97"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + fixcmex = { + revision = 51825; + shortdesc = "Fully scalable version of Computer Modern Math Extension font"; + stripPrefix = 0; + sha512.run = "fc3a1ba6c5516378182373b89b71ddaf22e713c0be959e8d5afa1cd57c50f363e68669049750f286142499961c56f6bacd60c63b0211d5e6ba01d7f25d58f759"; + sha512.doc = "e6f65b38a4baddf6c1840b0bb18464b6c94f97163672b67a87c693af19030bc3ab2db7607646d73f8f684e08258906da2380e7b1637ba85f80c49cf7d5045bc5"; + sha512.source = "2967a93b0d041ff868b4f894a2b9e1d59d445e601af982d576a8ddcaacb00d4688eccdfd56d51beffd19c90903fb15fbcfdb0cba08983e78636757daba176cc5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + fixdif = { + revision = 66606; + shortdesc = "Macros for typesetting differential operators"; + stripPrefix = 0; + sha512.run = "655c9733d727189d7b2aaef2b629e67cf5c7401ec2a8ffd179fb450cdf1746a40571e0b8be56f4202e31d752c35c7255fe01cf0b36917c582f24415e8e842273"; + sha512.doc = "e17648e54c68ebea15be76a8cf1406fd42858bca77be938efeedd72bcc8fe92ff016427ef815dcb590b8f900ce0efd87d9bb96f37afc8d79bcafcdb1e5d23bca"; + sha512.source = "4c96dd12535cbc852d4d24623295d1d7236f8f4773e5dece09ffa99f7fe8bf24efbba89dedfa069e32af53b1d88afa109a5e1075aa368ed6331fb462c57d80f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + fixfoot = { + revision = 17131; + shortdesc = "Multiple use of the same footnote text"; + stripPrefix = 0; + sha512.run = "52c25b4d5bb9e34fe3f8d2b122e68352ad572ff9ecf1011f3e9fbd67319d0781a48ca08ab03ad3201f1d1d2bd6d4e35fa3818e695a741a8ab440ce81f7724039"; + sha512.doc = "bfe0e39165be8f9a56e2cbd4b91c0b7b7448d0b9d8a4a0b62d6c0d45e542a9964af3d34233ec777b69f0666a0945513a8475629f0b084f72a0b349682e8ad6f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + fixjfm = { + revision = 63967; + shortdesc = "Fix JFM (for *pTeX)"; + stripPrefix = 0; + sha512.run = "afa050087607d8eb5f36923d6ec72daff7f1bab0154edd08900486fee152068ebbfe97d87ae29cca7d8f4048e0c6091933d0b71d4a0266950828881b55aa6b59"; + sha512.doc = "d1c39e4d0dcc1a8eb5510e3306d68f0bae6067d358bfb458127ff8f5d5223576f270cf628bf8ca2c3e8322d6cf1b52b936db0c2a431e4258591057a7f50513d9"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "0.8"; + }; + fixlatvian = { + revision = 21631; + shortdesc = "Improve Latvian language support in XeLaTeX"; + stripPrefix = 0; + sha512.run = "48d39745498c187d23c62191d7da6341ecc13d6c43ac97deebf453046e78a26d221b5c7b7ed22aa8909476a754e877de26c20391bccb5cddb2db1fa7b238d643"; + sha512.doc = "07dc4fa87b8564c3ff3144936ae4374e0bc7cf37a5a3e4b5d0724681859a41d30d714e96742253bb9a269116dd32d2ab0c1e5e1965242e88ea12fdcd224ace31"; + sha512.source = "04903bf5ba774034c0b3dbec7c7d37ca5a802b3d104670d259667f8a965da26e7e954ce9272e14b6bab058a7e6a4b8ad42b710e22f85f2d0320a7827b2c7e173"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1a"; + }; + fixltxhyph = { + revision = 25832; + shortdesc = "Allow hyphenation of partially-emphasised substrings"; + stripPrefix = 0; + sha512.run = "df41497da718b157073b6ad2a4b9cea3f9ee0a0824698f47d4441b76261efb21271f1605f69b1c0de8a99e3e636587a25b4efdb4d578683ef0c89d7f849d2c8e"; + sha512.doc = "37d6b9903a56d33577c8aaabd40de592bd78dc6b2f5a2c82457f6d5b499d1d6f9a9bdaff29bb9f9511365d32e160f92c85c6c0d93ed065fdd1688aaeae9ab246"; + sha512.source = "321e52dbc69bceea16f03d5d280ae10f497278876cdf3b7f64cbfb6f31993c18afc5bf4c38f424c9a84ffa55b235b73b4daf7d68dfd115c31dc3a237a6b64eac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + fixmath = { + revision = 64648; + shortdesc = "Make maths comply with ISO 31-0:1992 to ISO 31-13:1992"; + stripPrefix = 0; + sha512.run = "e3aaa53832094173eccbb1cb3aa2f2876227bf9b1c023d2b6f18e7df49d97bddefd450a53ba717fe54ad7cd8e8f36452ff54dc7cb67bf518037fadc6eccf40c8"; + sha512.doc = "5fa1aa4433ded289ce899004eaa165117a77ad6b4846624bc8c4ff5e203af701f1065683466998a5502ea13983bc9092ca3958059c047957e41555c753c1b11f"; + sha512.source = "7f2e12e15c0d23b9803f6cf97c52327e6f111e8e14d39b78d7519c81df5946c1db18c2fa93c84fc3734bd2f9fe722ae716781d5ebb502c56546f9007decfe5b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.1"; + }; + fixme = { + revision = 63708; + shortdesc = "Collaborative annotation tool for LaTeX"; + stripPrefix = 0; + sha512.run = "a5fc18a3560f5908521fdaec0f3e20f25f124e7ded9de72b36d81ad573726af7399d223c70dd11a8ea50e47e05e3549b785ee5c64215fcc1bf6a5a9ab2e5769e"; + sha512.doc = "89036e19b4c7ce8d9266ce6dcc5bb449c5de11ec74ce13b5208eaeb81054330ba53a0b01370b7e21d1d3d7486ddb7343f4cab946e1c3cb1387965b5e434e5b08"; + sha512.source = "061d7bc9a8813accf165c98f9d386b3ead721a7a893ae55ee0bc895f6623e4fbc52988c5933ca71223094fdbfc6f7ab71ab18a2df00715299158d58668117e22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.5"; + }; + fixmetodonotes = { + revision = 30168; + shortdesc = "Add notes on document development"; + stripPrefix = 0; + sha512.run = "d327d19ac0e9041da98458e9147b3d1a9c9182bfe5c893c03ab9ef42b9c8044314f4024503327594bef337c1af6aad0b4f2046ea2d6a433947c6c45ebdf8838b"; + sha512.doc = "7d7f8b049feb8e70c5d1ab0c71147f1f398b098f9c961267c3e90dc5e9ea9a8317361a0dacd8fe581e17cd85669bd39e83a1391641d353b01265a6195af33714"; + sha512.source = "1a4028aca8ae5fd53dd8068d17a5331ad9011d72d668f9ca8242862599edf7709e84a8848bad35fafd790ec756c972488ac8db53a240426dc5dc95dfe18385fb"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.2.2"; + }; + fixpdfmag = { + revision = 15878; + shortdesc = "Fix magnification in pdfTeX"; + stripPrefix = 0; + sha512.run = "733995ec82df92bea5a674fc25a3a6af2102739c3c73eeed7c9f40cd54bc4c5d65cafb35366b70641ff0661dc83700071054f7af274487474c3893ce5a44c9ad"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + fiziko = { + revision = 61944; + shortdesc = "A MetaPost library for physics textbook illustrations"; + stripPrefix = 0; + sha512.run = "4ad67bab5850464deee4a3a29fd7c02d011eca50dbba03dafc5059ee54aa434bfae5c173e6022fef4cb761f2c760b6dd5aff403b33b7ddc8e632961ce4f8dccf"; + sha512.doc = "e719652f76de617201a2562ac5b3a04df1577ace8fbcbf10b874326a85cc0ebe3549b0b427f39cfbeda0f34f7f3fe4ab6458ad1df2613572260fa77cb8601dcc"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "cc-by-sa-40" + ]; + version = "0.2.0"; + }; + fjodor = { + revision = 53207; + shortdesc = "A selection of layout styles"; + stripPrefix = 0; + sha512.run = "adf4d23888c6c778ada6d7cf930d4aba68b1cc20c64c571c17017b11c115452e5a4eb766d03ca03f27f9de46a5027590cd806b17fe94dbc4c5026948d3ec74d5"; + sha512.doc = "a0a0e01d4d40f1b847f40401d20604bafd2723097e72c208df2a5acb30f57042b35df4cabfc93108d4278f5725dd4b50539f7e17b7c51adf875898071a368fbd"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + flabels = { + revision = 17272; + shortdesc = "Labels for files and folders"; + stripPrefix = 0; + sha512.run = "b05d66f1181eb9d7eb80636b69ea3af7a29ae7011f6888438cf80a7fa6fde44666f9fa7ee71620055f6882e73b6f5e211a2a65ca003d903cb26cc4f9571257d9"; + sha512.doc = "cf9b774ef4e1336a123d48b3797d8122c5b9128324a9f6c0c1497194e8d3a3d9ee46a5a58470074c0dbc02f8c0aaeb1da3b4d5683ba9faf6e479a6790bc599cf"; + sha512.source = "26b2a3e7fbdfe3523cad96880dc6b168cf633a115f6b8d794709514013a79eb2ab6d1545769b74236248b73c3b08d5b52e02fdac9cdb420e3a4f1ac5cad55d32"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + flacards = { + revision = 19440; + shortdesc = "Generate flashcards for printing"; + stripPrefix = 0; + sha512.run = "45cf4fc3f4678a5242873f80ff1ab328e7675107d14052be90308d94d44a931ba8b2cf3eec67e7456a21168aba168fe848979a8d45ef07bfc62613ad9174488d"; + sha512.doc = "087d2c5500b5ab51280bf3f57362f00723856b041f520d41849d21043859bebc106ff9af33dcbf044aabd838f68d1165f74645360247de2c3feb9a8493ecc441"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.1.1b"; + }; + flagderiv = { + revision = 15878; + shortdesc = "Flag style derivation package"; + stripPrefix = 0; + sha512.run = "a7618ffc60c548fb98a581324901af09defd9226a655163d967e251b090b6ea74d91ec10bbe1e5d685a83d147818ecbf8b66d84c972cacaf3e270baf39293200"; + sha512.doc = "8c9731aec45eb594b95e1c89a1967f169bf8394664977059af0fd77aa40ebf3769200925382694e221a32ced470161f505420539b5e3f7f00be4688e308ff54a"; + sha512.source = "c81038f892b37dc2759251cc14d8bfe11d0aff056b95204cfe1a4434ef1bdc6fb3c035edca0e01282ca019193871dd6044a8b9b64f3b6051c24f041700f2b71e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.10"; + }; + flashcards = { + revision = 62104; + shortdesc = "A class for typesetting flashcards"; + stripPrefix = 0; + sha512.run = "0c336f9609fbb81bc373fad344a44b8159c7d142d2a62de795dc7f1b7a8aadba563ab7a4788164058c19ab6f6c9835af1f1a0dc275377f51aca9520b3a8a2327"; + sha512.doc = "6ef79cf1f91bb8dc7b9b3785da64af582891d1536962ea9ac9232bfb8fcb156e7c33319970793fc6776db2224ac991796a93a287aa3eed2e0cd0ea741c6ef9cc"; + sha512.source = "9d428930e3993de9d2fd407a78b19d2b851d9e7faa88a5d5c0bb44ec014432518fcd4ebb6cf68e5b3a0693cb4ab7bbee0068f431e0ca169423ecb5959ec233e9"; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "1.0.2"; + }; + flashmovie = { + revision = 25768; + shortdesc = "Directly embed flash movies into PDF files"; + stripPrefix = 0; + sha512.run = "99ae914e1fa627f462be84f7bed923c638bf493ca183f010bdeb5d607ab00abaff7a1fe3d0f8613e6fb9df7cd5047b99e99a5da18470df25e7507259a441e188"; + sha512.doc = "016331e7328732f5549487f8b2edbeabc9548eb81201584d3d3f7e0ff41a9a962761a8af867dbee8951bf4e99ea4eeecec7e9230868c23abc95260f288ca7958"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + flexipage = { + revision = 66614; + shortdesc = "Flexible page geometry with marginalia"; + stripPrefix = 0; + sha512.run = "1e16b1722a4c4349879c4556338c9d72eb4fe8364d0e19e0237b3a269b85ef19bd68d4334e190b7e0cae6e3ab1551381bc2e46fbb265ce36e839a967fb114220"; + sha512.doc = "5670616faa6646b68d3b3b2724f5e324cd1ef3595a0da3b8615d364f908f684f98d641754b71498cb2b61853192859dcf602a2925cab145292b1cc7a21f99766"; + sha512.source = "72458fc100c39b56a6f5ce173fa1149997fec0e4b7040f9a6ff2a2f671e27a33a4cd326eefa48bb81ec53bd53147bc4065d677fc1aebd9620da1d869336b495b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + flipbook = { + revision = 25584; + shortdesc = "Typeset flipbook animations, in the corners of documents"; + stripPrefix = 0; + sha512.run = "8e3140fb417115ada958bf6dab1a22b39779926b47938bb49cf86499d64ae16d321e6e6bbc8482ee7e6a2d79d8341a227785ecf04c66a15f7e5c0ccaea016d21"; + sha512.doc = "a5f6aa188e7a0aff29d4e693f0f8e52512838278e12d13c29706c7bd5c1c1c2a8d70beb619195d8572ca5a3920205380d586d02580bc747acb8e3259c79c3fb0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + flippdf = { + revision = 56782; + shortdesc = "Horizontal flipping of pages with pdfLaTeX"; + stripPrefix = 0; + sha512.run = "17773b1ba5f40d694cddb3d2e2742650bde889d53302e6fa6ef0686ea4cd3fe393ca2e5b31842e93e5588631ee53ebb668cb035b2843fc5bd57911167074edaf"; + sha512.doc = "d5191d079641c9a06336498c396cbcc7585c983924a646bcd3b26889ca51a08eb166ced560f45f834281fae9abaa47d02fdd4ddadd3348cef704dd9b818e7675"; + sha512.source = "95e86fe1e8ce5cbba8745123dbf6c352545d0a75f3ce679e2cf132e46184efa28123f9f9ecf805939c10f59af5bbde84bd2a75eba8f0aae3628b41226059bdfd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + float = { + revision = 15878; + shortdesc = "Improved interface for floating objects"; + stripPrefix = 0; + sha512.run = "4a5270ca2945915464ba25b7996dfbd4771ca5f477e4bf248183bc340b7051c042d9566908acac881782af74a59154f4163bc7879a21e042e1c31d67237fc6a8"; + sha512.doc = "6f713c71361c1536bb086e7638b770ffe58e97aa01bd59bbab779f71cb485b9c06322d7d89e7d87cc8f77a0c7f18f4174fd4ec47b62556faa32d82fead0b7377"; + sha512.source = "9e577ba84dcac612e4105e597ca2385da3dafb39327189caf30e5728b85a380b5a90363b8bf9070a0464aca2130bcf9419d030bd6c39d51f9a17b0a7dd578d5f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3d"; + }; + floatbytocbasic = { + revision = 67945; + shortdesc = "An enhancement to package float using package tocbasic"; + stripPrefix = 0; + sha512.run = "01f45baf2f0713a229bf6b6d59e02c8a05f0478331c3c6c7ca7dae050db94d7497a87acccda1cd7c022b79b54ef5088f6af181429e60154ac8e1ada081062dfc"; + sha512.doc = "0d6f29221ddb39019a9c6d308f77200279144efa9de35d5fcad8518de9ecdaf840179887282840cf7b31e7eb286f0fa41bec93e8a1f3682873adb791a467e22d"; + sha512.source = "4b3c146a6e9960f77532bf2fc23cf686a092f00da541a0c0fc1243a3bb623b16e19de8e9bd1e792a9134cc1dd3d429fce17ce372da03f0abf3176ee4b722cf69"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + floatflt = { + revision = 25540; + shortdesc = "Wrap text around floats"; + stripPrefix = 0; + sha512.run = "1f7de96ac5e82cc4bbfab3fdb665a18d20413cceea097e1407dee2073109ee1b82d7d3ea82c80630d9aaf445f14a8497aee7e3824458dea8b40b270135052ef5"; + sha512.doc = "7ca1c6ed832bb3d697685cad5575e02b531c0469095468fd40eb3131d89b68dfa0fcb9c882965aa7a9cc9c60292f64bdbf6264d3d990bd697dc27b23a46fae47"; + sha512.source = "6d243fd8c9a2fb7bbc242ececd19d94916de97fd3583095e8342d8e7c56decdcaceac8038eee9a774950d9261979150035e8c9175175ad7346b0eb1fbea6c5bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.31"; + }; + floatrow = { + revision = 15878; + shortdesc = "Modifying the layout of floats"; + stripPrefix = 0; + sha512.run = "c650b5c856bd625ad192901f3c056171f790c549748d5de5675f14cedca5cf32931ece537ce2280c0e4895895a8eff0cf140c3408dffc2b081ebc8c62d2ae1e3"; + sha512.doc = "b721ebbf59ca3744f1834c130da1a859cd4a98e9f5f977f5d35eef77b420deee303c109439fa70f89757cb9f57114bc74c5d527cafacc1daf2125b975621b525"; + sha512.source = "033c5c65c9676054e209c64dd065f86631c9765b1582e4042e72bfd247a49602dd97ba4dcd5afa1fe2f7e3d252e4b6ef2ff1a2b00eec3156937fc214d7cf0c3f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3b"; + }; + floatrowbytocbasic = { + revision = 67946; + shortdesc = "An enhancement to package floatrow using package tocbasic"; + stripPrefix = 0; + sha512.run = "3554c3cd560d5203b650bd32fa39aa4372f935bcbc757d1ff93fbde3fcf1a395bac4676e7029ec58fd79ce0089595858707880e35fdc98a65615fa27a555ea3e"; + sha512.doc = "1ee0174dff4209c1bcc3764c89ede858174e1aea624a0032c0af8bf61c1cb4082517ee2713fff0f5a5687ae4d63ec67c04f4a14eb5479edab183d0487241c37a"; + sha512.source = "126754a11d2a5f47d2406bfdea43ee33371ed1eb8f6b94bcc48b71fcedab4f468e3d0fbbdd7f0229780a70b5d337aa3e443046346b1c53e968a585c6d44c1c66"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + flowchart = { + revision = 36572; + shortdesc = "Shapes for drawing flowcharts, using TikZ"; + stripPrefix = 0; + sha512.run = "9adc1f823378fcfaed58e99727b68389b97bc489ba38995e5e7451608cb712dd7fe02b2686f692328b73d1bc8011131017b8edcebcda5e886f3bb4a0f6aed65a"; + sha512.doc = "0bbc3f1f56f5adbabca07096804412b33e93669e20af345e57bc9ad42133ab629b9546887599b472dacc8ee43b9c395f8c2e58a288c487e78920be1db5a110aa"; + sha512.source = "5ea69b98cca431225564482ed0597be71fe45e9ed933f4417059f4cf16401ba82987f90617e57a5428a42d03c0877969579a2b976a2c48d439d0dab7af0a6179"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3"; + }; + flowfram = { + revision = 35291; + shortdesc = "Create text frames for posters, brochures or magazines"; + stripPrefix = 0; + sha512.run = "880869c22914392c4ade9dddeaffb20d6c6edb6da78d30705d9f6aa1b1352ba2734565fa8c2a6851e81f1107573753748d3f4d208bbbc4c0dc443c066e912719"; + sha512.doc = "25924c121d2feedc7d815e4510b89f05000eef87efae8039c6566136b7fa92d6d4d9f25f2938363dcce8222d5c824d42894e4863b95e422b7949207a1e1daccf"; + sha512.source = "993d60da76f1144524f9ece2c5c9ba0eb38526111a7cbaf6bb5c669eea790c1ab9519f4e7dc2bc955c611fadf5771f2d9b6582d753b4cf3b79038b2bdd29837a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.17"; + }; + fltpoint = { + revision = 56594; + shortdesc = "Simple floating point arithmetic"; + stripPrefix = 0; + sha512.run = "906155f3bb5fa81cd4e97a375c37774db1ad4db388f334867cb5ba30735ec4ded5461eabcc833951b5d8a6e2403eec02e0f464d35f109304b9d6152638949b00"; + sha512.doc = "3c023dcb86eddffb28e0937f9d31dada6c82852e44a430c892feff9572c81d9830e4524f742afd958a79f0af63e72311ece43c9eb0e2d8434d871fe144b7fab5"; + sha512.source = "cf5031d06ada079028382b5e845df5b69330fe23412aeb2226af725333dd9d5f4b0915f5de2c46bcfaf6809c9f85479f6257c6e7825c076f896c5f411e3ba9ef"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.1b"; + }; + fmp = { + revision = 15878; + shortdesc = "Include Functional MetaPost in LaTeX"; + stripPrefix = 0; + sha512.run = "b87a361454199c16e1fbf97bd2b82f8b5569bbd71b7beaa780a6d88357e9262f77c9c3ce17d2ab0ad9b043ed7a1dd721e533c516e1b927f0439e13ced6598a30"; + sha512.doc = "461ee793dc8156b0ecd6931b9d4c56f368ce4938838b042abae5d6475ca3739c4fe47517168dba742f03c98229376f59f8654a89f1d65ab394c0dd907ac48ba1"; + sha512.source = "912cfb9e0d4669c5d128ace088190ab4c5f90e371b45f1e399346816d606ef3f96901775a51b5f89a8670abd1b08e159587c9eab4ee6383c12e260d26e070034"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fmtcount = { + revision = 53912; + shortdesc = "Display the value of a LaTeX counter in a variety of formats"; + stripPrefix = 0; + sha512.run = "ec5e10be2b93adbfa0e1ac710c7df37457e8d14dc5c7fe1cd13e062f136c63bd20a3e42d57c237fb4ae5c1be936e1d821d0a6568ca0c22b41948660f0848da43"; + sha512.doc = "fa0955c7d08dca99d3323b9cf364edd8b4b305723a3fd3ae38687c6473ea2af3593c47384a61feff0071199b909e1424d422eed3864866b28c7d27b1f42c3994"; + sha512.source = "1325ecfee60e7b602e5ca2fffa2b95a4ad11d04b5e986413af57da19cb75e2a268356f33ad64355511d526ed144e14e2abab4b84e5ec5e4faae122eff9914104"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.07"; + }; + fn2end = { + revision = 15878; + shortdesc = "Convert footnotes to endnotes"; + stripPrefix = 0; + sha512.run = "6be5c07123cf2470ca88b7c28c068c6dd308824138fd2f645a1a7c04c69fe84953468733ca2994faa42389b5889990941c8e09dc543b66a1589f3cf22df1e017"; + sha512.doc = "17f0a1d12afd607a26687b675ccc65a150e4ae67785389fe9582a3b05ee383f078bde35f296941ea069323757e1fccd1ae0e76e5e24f3446b4154738c1a45385"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.1"; + }; + fnbreak = { + revision = 66615; + shortdesc = "Warn for split footnotes"; + stripPrefix = 0; + sha512.run = "15d3ba5ef30d8ebc23be3f0c412f7457960a7032f3c78ccdeba6342852a3b7db699b8792b6f981659268fb28c74e5cd93bfabde2b584f7eade98e6b422127d9e"; + sha512.doc = "44837191d22ac8185b7748fbf32769a1d2299b92a313da918e6a03d78f56206e76d73990cfb1f94d956835f369adb4008df4da117a20984afc48289b1291fa4d"; + sha512.source = "7ebefbbe46d0c4db1244ef699e454c0b393285a489bc20b0fd78bdd5da0ddd00982f063c25dbe78c4aa1661402a6ca8ea492774e9aeb5aed3d7fbd460ae2f58f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.40"; + }; + fncychap = { + revision = 20710; + shortdesc = "Seven predefined chapter heading styles"; + stripPrefix = 0; + sha512.run = "83d74f4bcd8fa90cdf5d0b6e03e9e8e36ab09884998f9955647928ed0a33924735d236a82cc730412edbf54485ec8c357ba3954a264965f67752e397908ba295"; + sha512.doc = "6a8c6910f0790457c71cd55c8d30d07df81c97f80a8b6b7930c067966c76c47848142cdcb7454c4b63a154c5c653933bf71acbd792c06eafdc496c92e4bc5806"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.34"; + }; + fncylab = { + revision = 52090; + shortdesc = "Alter the format of \label references"; + stripPrefix = 0; + sha512.run = "47aafab923d6455da7e63eb24e0fefa8b869efa5a04bb301000cb2eb658893927dd9f9aeb8e6919ea29e0caeca235b1883106228f6acddc667117a3ba1136974"; + sha512.doc = "a987a6efd0964bd5ab5328658e011b5c8da56b404d233c55d96541ec2f37cc72faacd934908c7346041ec8bab3866dd1f171e1c5de5eb528b0f0e80969c0bba6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + fnpara = { + revision = 25607; + shortdesc = "Footnotes in paragraphs"; + stripPrefix = 0; + sha512.run = "620aafcef4ec7fdaf5cd732551fddbfce53222cb7540dd370f2cda425e1782c907e59868953f50acfff993a8fd8a84d108da7992f1c1565cbfa889a5ca0ef5d0"; + sha512.doc = "798c7fb03a8fb20695ed63ba1333686d21832a936a74a93ca77c7614346316234b2255b8e0340dd87fd57bc1480f23df24381107fc81c68cd4c0cd594ddf5329"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fnpct = { + revision = 62248; + shortdesc = "Manage footnote marks' interaction with punctuation"; + stripPrefix = 0; + sha512.run = "35b1fc24b9cc8ae46104ed20023bc3e1a5a83cfb857cdedc3e6631b8ac4315a79dec012793174fe239898460ef0247f2726b3a7c0f07561a58178ff754b513e7"; + sha512.doc = "2f986edf21052a8e008a64493787139ff9fa5f65038eede1c87e59add2c496f23fb20e7b33d632dc598318dfafbbcbdb7a938a7f04bee6c72884565c104df7a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + fnspe = { + revision = 45360; + shortdesc = "Macros for supporting mainly students of FNSPE CTU in Prague"; + stripPrefix = 0; + sha512.run = "5e9af6b3b3136f49e49524c7fc85074fd75fff30826fcbb8dad358102e3eee6fa44037b7dde99b6556a063dbe4e819b27ef5a522999eb304f70c2785642478b3"; + sha512.doc = "733a099cac2d96ddf6593b9e0195b85c8d5e86f6a1b283f011a55acc4a1bb7391bfd4356c6aaa40d9b2c70a7c180886d64162eaa396a5a457fbea491af1b47c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + fntproof = { + revision = 20638; + shortdesc = "A programmable font test pattern generator"; + stripPrefix = 0; + sha512.run = "c1cdc018808a2b9fb5b91c54b55eddf3d517b8dc6062db1ffda3db154efe6f3abb91e61ce90a68743ce411ec614785974b4362f20f03ae398488ac1f816b3ba6"; + sha512.doc = "cf9e8909ed030b27a57573cc257682da84b7f14c3c3775e17fdc8a2203fe99dda8797ae7b2599dc92e9684140102f6d1ca2147bbb437edcf8eb41ffd28b9a576"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + fnumprint = { + revision = 29173; + shortdesc = "Print a number in 'appropriate' format"; + stripPrefix = 0; + sha512.run = "7f43363ff861fd4f887df68dd6daae6c97940d4cdd60b19563a966dc7c08cb88356a150eab0cb5b91bd4c3d5d47e324dbbfd43cf45872a5738c5f9b70766e047"; + sha512.doc = "44d6fdf74bf6c231a57b3fad63efa7eb1bdf5b4342cdb38e0d504c4c09190130d37534769e17c3f60bbad668d50aab064bc5c0a1ad99808a6d084dd1921769a9"; + sha512.source = "3f6465877aa1dbf5ab021e8397725ec83217bd774ee0623e71cf15d746d7d0edeb2f78ce76dfd607568be75b67f4cfa8d3e1ddd29c0ada6d376f7b4fdfad86a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + foekfont = { + revision = 15878; + shortdesc = "The title font of the Mads Fok magazine"; + stripPrefix = 0; + fontMaps = [ "Map foekfont.map" ]; + sha512.run = "45342633aec41f2a5fe7213dc418960d76ff196a08b906965e3b68f2c5ed264b3192ea45756133f12662e451fcad11d08232995c0de2493495c40b9b59cef7ea"; + sha512.doc = "7e1aa7a240d825c014be6af7be5cd7c1bbcbc6e52bd55be36f987b4a25223179bcc4c4d342906c10f9df624536252fe4dc5a45cd3b5ddb63f91e9f4c7401a239"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + foilhtml = { + revision = 61937; + shortdesc = "Interface between foiltex and LaTeX2HTML"; + stripPrefix = 0; + sha512.run = "88bd7239cc37cc4429be37de0e68ffd6291844bb81f34a3e9e8c0dab14641d66b6d3990e44d58e5322d2cbac8da27901fe7dbb3b64a59be577ec0f94a036bafa"; + sha512.doc = "c444f13c4c60cd7a723d9bca8d687a3f995438767d077c812797b91e0111372fed6c76fb51f264c0332cffb1a598e5f2a17a63882dc18b4e682f08a3ffee0900"; + sha512.source = "9904924a8b8b1723e7496960fb9856e91efce76313cb49e756d99be5f6f97022e1cf8f27edec0ee738281137e3fe4d251448caae54335d30b0772a1be44cb8e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + foliono = { + revision = 58877; + shortdesc = "Use folio numbers to replace page numbers"; + stripPrefix = 0; + sha512.run = "e5082c626e22acbaebbc7abadee75a71e3902af989767bcfba5d851fc89e771cf8a331ea540c05e6455b894351fdb6af6c598b5440e55c553662efdcb73cc093"; + sha512.doc = "f03abc88291b2591b509a575735f6fe3e29ffeff52e0d2cbea287efe5426b7668462e6133394374f01aa3b968fec035e6a40a8bee01b12cbacf90fd0bca80b2e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.000"; + }; + fonetika = { + revision = 21326; + shortdesc = "Support for the Danish \"Dania\" phonetic system"; + stripPrefix = 0; + fontMaps = [ "Map fonetika.map" ]; + sha512.run = "4db9e50fde60ac69373f5abd151f3e17275f5c492b6855a7f5dd8895650a79cda1feda43398fffebbecdd6f7e032f8935972ef573f79ae1cccc5844dc148352b"; + sha512.doc = "ac3f0de2a9a5b5052d4ae626b4368f8b1fef419503cab9a88d4bf89db348c1a756555a6cef7aa70bcf733fa032840fe9ae7cfe347fb40bae32b54506e60ccf37"; + hasRunfiles = true; + license = [ "free" ]; + }; + font-change = { + revision = 40403; + shortdesc = "Macros to change text and mathematics fonts in plain TeX"; + stripPrefix = 0; + sha512.run = "8ec91864d719d20ff66195ec1bab456d772417ff2d4d9ae75ecccafe0da616d1dfdf5b965be489a65eb28130b3672a5b55c33f3254f59c00cf204dcae6fd4eb7"; + sha512.doc = "75f7e45fb5313d0bc1c333253aba2bcd1d650fb6c0baffce6e5c558b0e7aeaf2e697ea9412860b4049d2685cdee26d19f12d9a28184084ab9df66101b78b0361"; + hasRunfiles = true; + license = [ "free" ]; + version = "2015.2"; + }; + font-change-xetex = { + revision = 40404; + shortdesc = "Macros to change text and mathematics fonts in plain XeTeX"; + stripPrefix = 0; + sha512.run = "17de7c596a774c5c2e115704c2c57385f3fa90bf2dd49362547873453c27700537ab7f1e8a143c2ed49c90efe6aec234d3cf61643228bcba5b51c5ddcbb8bba9"; + sha512.doc = "138375750a4d493774cbd558c6aa910d04bf3f32337f773438d6bb31e16df3d96af3a6ea12d4940c785c04f98130977750058f7c0ef2425e0d8147b4ab882a64"; + hasRunfiles = true; + license = [ "free" ]; + version = "2016.1"; + }; + fontawesome = { + revision = 48145; + shortdesc = "Font containing web-related icons"; + stripPrefix = 0; + fontMaps = [ "Map fontawesome.map" ]; + sha512.run = "e08643104006c9e14c40bb965b4401a8fe296f43e5f39b285cd19d5aa0ed33602cc0eb6ffcc996e1d6e5aaa57dd906903324626ee40facdcb3cedc5216a3deb6"; + sha512.doc = "bbd18a60db734922ea006ebd00b0c9f90c34907a7b519a08bf007daf01cceaaf6db3b31c3dd8c76e1dac199d4f7c312116f6935b764afb62248b7dcfd92ac78c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.6.3.2"; + }; + fontawesome5 = { + revision = 63207; + shortdesc = "Font Awesome 5 with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map fontawesome5.map" ]; + sha512.run = "d7f6a40797b2968c31b28f1bf273af9d27b7a87e7c2953748f354db2e760b027feb5a8fd52c8f367649fba24cd629d71c1b1368b8864d42eb84269e0b22b59d4"; + sha512.doc = "1727133ca0e1713c356a647e08a7e22af50ad6a67e66c54f3d9e9a0601bd4a693c365cda625b37be83cb4ece42aba8312488f4ba5e885cc44f68f7930dfd7add"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "5.15.4"; + }; + fontaxes = { + revision = 55920; + shortdesc = "Additional font axes for LaTeX"; + stripPrefix = 0; + sha512.run = "49a2a2a3cc34370fc8db7c08446b2d12cb7b8a9ce6913568d7588c051683e24b859af23c440df1c815ab1b65f5b5de32242df344dad8102eba7ec1383b02c112"; + sha512.doc = "c37621f082498bfc4c2ed0717fbe18b56032a7d5faef1ca7a73c4fd22adcfb8f7e517ced768511636d4c8488932d3b33a96137837f34c79416b9c5d8d852456c"; + sha512.source = "f0bb1bdb666c9afc19ea333ec3919716565be9454970e7a9e3930f503ea7e31ebc4273a16dff6fb2ae44701ccab1ffa2e9c285ac145ed32294b47b68fff91267"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0e"; + }; + fontbook = { + revision = 23608; + shortdesc = "Generate a font book"; + stripPrefix = 0; + sha512.run = "55ee9dc22aefcf91c7fe30f516bfbaea5d0b8c5423cec204bfb208ebfb4b2331ebdd65032eb6f2a9f8958f15fd47433a9c7884f49ff1f3900f1538f9f25d4fe4"; + sha512.doc = "65eb7d3f6426d3dcb13ac9a0d5b396eb4c03586d9d2b3d842af9ae4ad98119e8721034de499eae485c5803873946f04af992ddd860d09a7131021027c14b5d4b"; + sha512.source = "8ecb0b7b4e5f00806a377acfa0198ef217faf0573930be1272d13d743d1e84db76f067afa7e7a665c4540536c1d888bdb702ea9c203a2a405389079aa49f71f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + fontch = { + revision = 17859; + shortdesc = "Changing fonts, sizes and encodings in Plain TeX"; + stripPrefix = 0; + sha512.run = "c8354fbcb6a13f2f874dd3df71f23ee1fcefdaaa1eab5166f35001811b9788ea2b53e5d5653437071d02978dc94b0a658bca5e2cfe825a0315d3389446b6c138"; + sha512.doc = "a7c5f6622414d943a20745f7b02c3859d43d4f4ec0f9ffd3b2baec34e142c01474d8827c7b0fe5d1bebfa25d33224b26cd876e3457b7179097fd9539cb9d9444"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + fontinst = { + revision = 62517; + shortdesc = "Help with installing fonts for TeX and LaTeX"; + sha512.run = "c3668f79f4b926090188386044fd68b0f13913168cdcb2aa23ccfd3aead488dec03e79133669bac3d2b719fdd2d5ef735fd46cbb27fd26fe560368f9e0cda05d"; + sha512.doc = "23c569bdd6f12dd4cd0b5673ed9efde2c7c7988d86bf2f89409bc22c80f64ea80ca6824745b50ea3ef30f70e4bd7c8d7005a9e05e511c1e917a12630f4b4bdb2"; + hasManpages = true; + sha512.source = "1645dfe5c6cd0efc8d8af966eb7363176ee7a44646b5860a3c137dd70c7e130340887e8690913d03be84eb1d84134c4ec2add713e4583a0feeefe4a1c4554402"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.933"; + }; + fontinst.binfiles = [ "fontinst" ]; + fontinstallationguide = { + revision = 59755; + shortdesc = "Font installation guide"; + stripPrefix = 0; + sha512.run = "c3f9820453f9cc3fcf4323f382a35255d2dc066dd0c090f55d15b2b28d64d8e3935e85b3dc8f30d9ee50408a48aba0ba4278d4985ead454f177ab1d484fe7b01"; + sha512.doc = "785a84a3bbcf67fcbb878f331815fd585093de89faee6f2556727ef820e392131545646242ebdef603e85e22e86b1e97f5369db4e1c565875e79683ff4987198"; + license = [ "fdl13Only" ]; + version = "2.14"; + }; + fontmfizz = { + revision = 43546; + shortdesc = "Font Mfizz icons for use in LaTeX"; + stripPrefix = 0; + sha512.run = "43febb41a8bd7b0a89a2b60b52f9b83e0d0fa8303c0a7986658a95c93307ba6642fe07f8ac935ccb50b3047bc74100cc7268fde438d3ff80c944ac59afa6e3df"; + sha512.doc = "6dc0f6c10d44a17d42d8ed4148f39bf89c84dd5a3a672755340456b0ab983b1b52cbd3bb62cd6f5ef4c3f6dfed8a39568d5ca35598c4b016483fcf7d3cdeb360"; + hasRunfiles = true; + license = [ "mit" ]; + }; + fontname = { + revision = 64477; + shortdesc = "Scheme for naming fonts in TeX"; + stripPrefix = 0; + sha512.run = "424da4dbbc07c41840e6aeb6fabeef5d4778d206b9cb8a90e752ebeb65d962b96ad41a7e20c86a16665e2bf48ad795d85001da66ff41b01ae3c949c6eefa4593"; + sha512.doc = "78199996913192f5f69423b6f412acc52b74f051b01d3e345b97b7f1d9ea4aea762a7b83488068f3091b41da69471d56b3f18ab4d299cc6adfe4e004072db303"; + hasInfo = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + fontools = { + revision = 69241; + shortdesc = "Tools to simplify using fonts (especially TT/OTF ones)"; + sha512.run = "5144f4a0636b49e63bf04f518b6c416623e2228615e33169839547cbaca574bed78777ab20f4db7e5820c1acd401b756896b39998c43f21f93de6cf8f987f6ab"; + sha512.doc = "bcb3ab7f49e817ef5b6f710bbc227309f28396c6f4233e39e94163663f10db3daaa41b6db93a9ae85a26599dfce352a0c132a36b0c047ecf8f5269f428af4f6c"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + fontools.binfiles = [ + "afm2afm" + "autoinst" + "ot2kpx" + ]; + fonts-churchslavonic = { + revision = 67473; + shortdesc = "Fonts for typesetting in Church Slavonic language"; + stripPrefix = 0; + sha512.run = "a6e3759ee4fa9cb50a8b7bb55f162ddf6644c3d2ab61da514ae902c99868f34e3de67f1207ac003f98a872b1b1daafada441e888efe2f0482ddc6b9132374c03"; + sha512.doc = "9fcc08b521d9706c3775d33ed7391553e855ef43a49ef1c6cc92ecc1f21677909eaf5c5d231fe86f232d3a092e3f913012d8d96f35b3344e0a774c4e5c8f1476"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.3"; + }; + fonts-tlwg = { + revision = 60817; + shortdesc = "Thai fonts for LaTeX from TLWG"; + stripPrefix = 0; + fontMaps = [ + "Map nectec.map" + "Map nf.map" + "Map sipa.map" + "Map tlwg.map" + ]; + sha512.run = "3b1894d677b63c88010fe583381ff7c0c8a7c5c6753e62e166ffa8ae7f18d6a521b12a4e57f16634855f3b807605407cfad110eb405a3ad334f8a14bfacb6338"; + sha512.doc = "93de1f1c668d460644f8246ac25c47f10d99e91c878c50c3096e2df373e521e54412c239d89f5372c767cd768f7973b06f97f25705e865dd5c36cc3674496c0e"; + sha512.source = "555a7e3fb1f1202412dda95924b692f21b6ad7d1abb68b5fa789e360667b6a23bc377651d592d43aa67728a8bc9f2a20ad5b1cbca85c412b90ce8a8654b07b17"; + hasRunfiles = true; + license = [ + "gpl2Plus" + "lppl13c" + "free" + ]; + version = "0.7.3"; + }; + fontscale = { + revision = 70541; + shortdesc = "A flexible interface for setting font sizes"; + stripPrefix = 0; + sha512.run = "95ac9aaa5ff2ff9b9108bea483b23ef415e825beaea1b1573b1869d441c9ce34188b47241c5eed9b5762931823f015c0f05897d7085b2462f1f401c98ddcbaa3"; + sha512.doc = "28eb33adf132aed909f74211c538ab82f4cd5a958692a20a4692f9774a60c44e984fea28949366e3ae28d507088eeb1584592fefa1abced2b7bbf29bf9c56c41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + fontsetup = { + revision = 70135; + shortdesc = "A front-end to fontspec, for selected fonts with math support"; + stripPrefix = 0; + sha512.run = "e599ae4f458be9375343dc4eade6c4ea56175224b785e48193af974d0b8f4a0d1f9426f8bd0fa22b15c962b7e10ef856f938699324c4b51e46d3e06602952e02"; + sha512.doc = "18c8d669b19274eda6e8daffe5fa3e6906a98026052ac668ef51e97e2e49e73b749dba7ac369d532020faccff121d210b5c1ec3540f353a98fe276f4aebd4c2f"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2.1.1"; + }; + fontsize = { + revision = 60161; + shortdesc = "A small package to set arbitrary sizes for the main font of the document"; + stripPrefix = 0; + sha512.run = "8e89cde1cdcc388a5e8ef48ccfeecf6f1f25e938c7513081bb17bb4b65f889c2826a929baf4833b2191554f3ddef2dd9c5bbf50f53ff14fe7463ebd1e494aa4a"; + sha512.doc = "0b4cb325f4ca5b94a1757aea9ab3dc00dc92ee2b095dd35f176e7acbad7e1ec87a7e2b7cdf9ed19bf50095c41f221f8c791c0e7c9d541021768945a84a30e51e"; + sha512.source = "42b9a587d63a2a0190776851b86eb66c4e7e2811a4367ba659ebc996fcdf365b9447c94a4d04af5129a6b95d119e37735df9b26fcf12702f157d61932f64eef3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.5"; + }; + fontspec = { + revision = 69880; + shortdesc = "Advanced font selection in XeLaTeX and LuaLaTeX"; + stripPrefix = 0; + deps = [ + "euenc" + "iftex" + "l3kernel" + "l3packages" + "lm" + "xunicode" + ]; + sha512.run = "3d49ce69d6830cb4bcc16b0df3fe86335761d71fc8b930470ecb4e38f4131c40c534d8c613a252d552b1d298d61968e5bc2aa574b0299a9f7b9e79b63711d442"; + sha512.doc = "1ae04a6e17c2ef6413e9cf21ec7934502a3fff3324bbd274dec1837916accc6da5f09a25816d99abc5cd0a431b0e652c44a2f570ecd69f400f56421ed172e58f"; + sha512.source = "48177f9500a5248dafb333965cd640e600aff2591a4e53f17b9b32a6c7042559e32d907ae5e2e6978389caaf13dddcd0827503fffba35b647974dd67d13f5c4f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.9a"; + }; + fonttable = { + revision = 44799; + shortdesc = "Print font tables from a LaTeX document"; + stripPrefix = 0; + sha512.run = "f8db43eedd7f9e43b0cfb8c37e2687321fe236daa4bee898141c305dd2e59fb40bf3e8b3cabde561c75fb65dd053de33e45b90a8ab9518b0b30aedf35f6af1f2"; + sha512.doc = "1d2b27ac253df62568087abb8f9e0f0054e3bb98cb62e65784192b281722e69e8565fa569eef4d061684e8965e0b05a0cd6dcbf7e632af7f68f97e8d4747426e"; + sha512.source = "56210bc42e0716196bed05a35ef9ff7ffb40a17a8cfe8cef4d31e2c8ea28bfb75ee035bb887ca62387460cb7f99eb4f2b408cea767ce824124116caa6ae7d15e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6c"; + }; + fontware = { + revision = 66186; + shortdesc = "Tools for virtual font metrics"; + sha512.run = "7cec7df72b76ed64b864401c809b48e51f69338c7cb3ed05ac4ea69899a077983763c728543f99130f18afdd2a03c955d848066a239c97547ab0240d87c97d7e"; + sha512.doc = "ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113"; + hasManpages = true; + license = [ "knuth" ]; + }; + fontware.binfiles = [ + "pltotf" + "tftopl" + "vftovp" + "vptovf" + ]; + fontwrap = { + revision = 15878; + shortdesc = "Bind fonts to specific unicode blocks"; + stripPrefix = 0; + sha512.run = "5bad0487f5cfa4119d7baafccc6178925baea12f1cbed5912211c52f2c4ea01eb00f9dacd300c24b93f48e5f13197a86ba1e37c35ed69fb1031281fdeb08edf2"; + sha512.doc = "857be54c81d9bfb14277c17638ec24c643c278d660b56e18a4701aea0ad28e496df0aec191b12d93bb29b7ab326b39ad9cc7ddc3615871d1b70fdf6e44ccdc6e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + footbib = { + revision = 17115; + shortdesc = "Bibliographic references as footnotes"; + stripPrefix = 0; + sha512.run = "0cadef58331d5d51aeba1f69d0c9ceae99104f7c31ea79e0f5dee33c8612bc52cd0c8551abc6da1799705c879cc88535b46e4ef15232d3c4a0f7136e0fe46e05"; + sha512.doc = "27d1f0e6bf0ef526f2b3c4852c53b78fc60fc10ec526796447940565ad75fab023406bd28548170f7382e822c3b0f43d96181233bc772ea58f8ac195f71cf495"; + sha512.source = "120d5c14a1b12b15a39792d2cae0bfee5b1695af1c014708c65d61eba6f2fd52f17e2b61b576e192a2d2a9abfb3aa2e059fcd9ca17e48e8a3ee6e9cc2150f119"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.7"; + }; + footmisc = { + revision = 69729; + shortdesc = "A range of footnote options"; + stripPrefix = 0; + deps = [ "bigfoot" ]; + sha512.run = "7e205e392bbc933c6592f91afa053573f174ea83b07d81a17a144b29bc3837ba4e6639c56f5b07a9840e141e408163cbc2edbcee5fb7b159264ebc54f4a09645"; + sha512.doc = "93d3ca6476356b7a0ed955edbe442764740d32db58dba91276f6bd891ca4009c3731872a703f1621e344a69c401cd70a7cd9e5fe2845d7667a8e0dc61e2ad2a5"; + sha512.source = "6b2960dd45ec7ff85cbeeac863a068c3eae5d161b19811f447fe31b572a7a11006c3608ddd34a677ade6c69e781bcd7938dbe451b0dbebb6c82708b393d363e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.0f"; + }; + footmisx = { + revision = 42621; + shortdesc = "A range of footnote options"; + stripPrefix = 0; + sha512.run = "591f181c8103ebd7a86440b27992df9eaea91d5998caa0f52dbfa48b7afc4791ef8c1f5a95d85b7cafd56113726beb74268b7498ec489d7b3142dcdf7f07adba"; + sha512.doc = "8c36c6eb169a804769ece280c2210949db96bbe57d6dacc1a0952fc1338d619334d3d8b46cbaa3dcac09e05a0c015f37146d8bed315238b5e918c373b2b42155"; + sha512.source = "5b069985c3a55240d762ee67a1da66895c304b5ac82bc0ce80c9e5fe9e77906cc0810dcb11c39b3ab63ce39f5d52964b7fb3319d49c0b18c85bc1410bad84ae2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "20161201"; + }; + footnotebackref = { + revision = 27034; + shortdesc = "Back-references from footnotes"; + stripPrefix = 0; + sha512.run = "8c18d95a4c74a7fe2ea4cc98df6bdb6813d9cf8323e44474330f03694758ee53da46d0d691164f6d90b2148a7cf9dc253dbc93548a3b33df3b0344096e4a90c9"; + sha512.doc = "685484323b721c5277aeaa041b1d40b0d4675bc901a371f36dbff6246063252bca69261748a096919c7345a4a6e6284a6093068555bb43eb92fbf7cfea41facc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + footnotehyper = { + revision = 60374; + shortdesc = "hyperref aware footnote.sty"; + stripPrefix = 0; + sha512.run = "24d270cf9fdcec81a91be4084e371338f1daa0a12c8344b850860bddef360c97d66e7475711106ee0d1d2f4df359abdb2f0005740aaca83651ce92f1d6c89140"; + sha512.doc = "605c22ffce3c413a0f9caa41a3ff7a43022a9c7a26e43fb177c107c2bc156c93a75f392b29d46880793788f9b5f0ac9e87cdb4c5075a247c17abec2e41527ef5"; + sha512.source = "77f579a0e7422a98e0fa9898ea5fb36223f66a2b9889a0da1b4cb40736d88d11ca87820503ea934e6b7e41033ca18974df4d4f585d8283a0e62959c9c16ab7c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1e"; + }; + footnoterange = { + revision = 66149; + shortdesc = "References to ranges of footnotes"; + stripPrefix = 0; + sha512.run = "b2c20e7b528219e0eee9ca32da40982670d3fa88938a58251e1ce6aca26b831d9ffdd89752ac19b78bc148c11c265374d2f679e7e3f54cff0ba445acc4025922"; + sha512.doc = "bf5b704bb39a8d369093feecd02da251eb45790381605495960dabb9a4ef099f9118dc7a791c9d9db74eb19739628638a8c003256a42890d64ed821ebf2b8c12"; + sha512.source = "22665f8b1e912c325a0ba7b8b05ca7da54f54b92e8f7700d045a837e98a544c651c479dff88937615ea1d13a25ae3f6d6f3a5a60c1c7402c8a892dae0fa0a62e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + footnpag = { + revision = 15878; + shortdesc = "Per-page numbering of footnotes"; + stripPrefix = 0; + sha512.run = "a1ce9661f0f6a69d1709ea053fd548aed428a9cc8ef0445b9c4b897eeef349bb9767c219f5d860ab4d7d264982c1f4404d33619c80dec8411350bb965b19d709"; + sha512.doc = "f83c9cc0701c63dbd5d3b7dd6038e1bb2c427e6edaca05b814778592587b066af3c4f7f12646f7b2ff7cc1c2ab8d2ffd99480dbfe72e50c9bce907e8e2d4c509"; + sha512.source = "a44b0ba4ef7b6328d6d307eca25c34d494000a238c69fec3686a55057ff56ae1ada7cacc763ff1cd26aaa83962257442060fbd795c76d61f92761bd66be81378"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + forarray = { + revision = 15878; + shortdesc = "Using array structures in LaTeX"; + stripPrefix = 0; + sha512.run = "f818d0899fcba2d61ad119698d3633a28d5300098a4bd56a82b7b1c9cfc12c47a9457efed7cbdf8aee3ba9ba4143eefbdd54bc995c84c9bbe99dd5717030bef5"; + sha512.doc = "e292418f60b290bf0567ea70169d66557a8408b2933221e0658d6d8e807b6495258a6ea33d65d14e13129ff8e58dc9cb50115459b014ec00e0b084f3d3fd55fd"; + sha512.source = "4a9574868753faa19d0e80bd08c524445a015bcafe241a85d59832fb308981d12dd133fa64e65804ac5c3d86617046f06a17a4667e8cb382676dfbadd6f012a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + foreign = { + revision = 27819; + shortdesc = "Systematic treatment of 'foreign' words in documents"; + stripPrefix = 0; + sha512.run = "e886be0cbbb64b11b6c54d6b62d6b38db1bb7e65b7a3a9cc951ad71d4cc1a93c323d8a1e17ba863daa6535c747c9801b06bc4d3c664bfb8da38518a9c93d45b0"; + sha512.doc = "d3804dd1b83ba173e4098696656c814629ff099699f332c3b81136c4519bd577aaabd4d2601893f88a58009f00e8c8ba44fcf2c4a3b72ce90af4d4febb510ec6"; + sha512.source = "d91bd89508318df931629678cdd0415da8baed9efcb55f965d71e26a61db705acc6abe14c6f7c17b61f54e32ae123ecd48cd018920b1f43626559e2b0b4a3c16"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + forest = { + revision = 57398; + shortdesc = "Drawing (linguistic) trees"; + stripPrefix = 0; + deps = [ + "elocalloc" + "environ" + "etoolbox" + "inlinedef" + "l3packages" + "pgf" + "pgfopts" + ]; + sha512.run = "edc3341b84e7e89fba3bb76004562c0bc889f944ed33474ba9cf5ed5e63a690202e851a30f44158caa8351b874b8e91659bd91c50d59ec43de9460869e4213f1"; + sha512.doc = "fdaec77023176fc2f7510a9e3b4dcc587898e1f96886340222f932c0d93b1002ad35fba8a38a036f713e41814f3dc6b3f75a5657ae485b15ffea43089895bcae"; + sha512.source = "45f912d17d29568e6ee267814d63bc14c20bb0d91c62b39c21301dd611c50db3b5f7de5f16b519da0f2b4d15609727144c34b16a620abb85114a42344cdaf24f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.5"; + }; + forest-quickstart = { + revision = 55688; + shortdesc = "Quickstart Guide for Linguists package \"forest\""; + stripPrefix = 0; + sha512.run = "52e77fa1a6aca02eb15838d7c04e37744cb4f37f0bb078fa571c1309244fc329d92b553f3e7c62f574561929b5e4964b71cd2cca3d17d4f9d13f9bdb9b0ab8b5"; + sha512.doc = "974a0d0e5a5e7e640e4e18cc5eb59b5a10efa7c5ab4f81e2915e9bbea30bcd68323cf95c62891ce1711d822336e5ee054735761a474d186e3c9f11fd4dcf6f9a"; + license = [ "fdl13Only" ]; + }; + forloop = { + revision = 67017; + shortdesc = "Iteration in LaTeX"; + stripPrefix = 0; + sha512.run = "e4cf4d9fdf01b753b40d4fb2c5edac94756ccf60a7e0b1bf0da8b5b0c433eff5669858fcc35096967f9a53e6a365880e6677956ebb86764cd68ba3093fa4be91"; + sha512.doc = "7315a8e90a83bbb73cb82525fec32c750d97f62fadcf1cd1faa816aeb2c54b5183c8fe659a19f213764979d495d7774df7aab7c950fa9886c6911e526712f0ff"; + sha512.source = "fe9aa2c7836a17debbfc392b44bcccb09de5b978224b2ec81e17daa07eef3eaf508206f1d54cc9dc7897122ceffb9d1b8d5957c26f2b4bcaed4ee93ebe3436df"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "3.0"; + }; + formal-grammar = { + revision = 61955; + shortdesc = "Typeset formal grammars"; + stripPrefix = 0; + sha512.run = "9a14266ff45b4d153000f27694869ce0b3a159d646ec0343726e4510ed8444d9e1ea08209f64ac2b88d8875e860880d048fbc67c5dd5292e60c02521f89de3be"; + sha512.doc = "48d80287ee514f4a846e45b3c0af655644817a3a8dfd2e95e7955fcf4866cb15d5b771e73076cd8cb6717d2d70bfd615e2b613ba58e79380905d3cbf23beeb9a"; + sha512.source = "55c30bdefed19d9a794cccef0a437cac4fcc8d36b62f3fed1a8fee4c8ee68414fcbb5bf14203eb6510d4be32058388adc4829be1572aa9fc44915bfd362f67ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + formation-latex-ul = { + revision = 70516; + shortdesc = "Introductory LaTeX course in French"; + stripPrefix = 0; + sha512.run = "f5f29f4a61b1c7145d03985079bdb3fb26a4a627a6f839b3c9020569388abacf501e9a285d29de66e7e3d6287d255c5549aa389c5fe42fe0093315b01bf963ab"; + sha512.doc = "2a64b940b37d3c460db5c31434a650cbe5d61d361ecb6d3ced250c65a4d817eff324fd296c137fb26a144fab77cdb2c93132bbab11a3f50f3cd0acff87812178"; + sha512.source = "d2c09f1700193814485fd25ef4a119875821a39a54a52429ef2f3889d276a9a50d74cab2df73e77c4ee62d96a413a5a8b488e216f9f11e5d6410fc0337662156"; + license = [ "cc-by-40" ]; + version = "2024.03"; + }; + formlett = { + revision = 21480; + shortdesc = "Letters to multiple recipients"; + stripPrefix = 0; + sha512.run = "9d984435565a9354d03f7ef1307d543e3a0bd3a8d398f6dec426f7ae16fe3c6b20e60cfb5daeca7be092427606b5a5886a31dc05d023d0f26d61aa1c07be4b8a"; + sha512.doc = "8eee17c77620f48319e862f2e7d8ae4b979c84250dd17f33cae9db52b1f219f2f86c690969a783648ee3979f24ef58e410cee47afcb12bcd26e4278af4625c6c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.3"; + }; + forms16be = { + revision = 51305; + shortdesc = "Initialize form properties using big-endian encoding"; + stripPrefix = 0; + sha512.run = "9d8b0c7aa2314c81afe09cdd9ba3455e3ff7e3000fa9de0e99da935b282c3d32bc60aa7f97a27450ce999ff101b606fadae3dbb4965cbfc1d4a8ca5c29eb719e"; + sha512.doc = "52bedc12e5ad33ac78c906f9d60284ed079b0f6d66e578f826c946c28de3996c70da0b11284e774ad56196875b3bd166962eeead9282f3d71f6c6a0d4a8cba68"; + sha512.source = "19e3efc0f73c919c7e74eaabc4b7f9b70be4dc2776b22719eec4f373e180f3ff736ac3ddc26209acfc9f9f9de9c594467cb6f67899f21f563386a44ff58c9135"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3"; + }; + formular = { + revision = 15878; + shortdesc = "Create forms containing field for manual entry"; + stripPrefix = 0; + sha512.run = "0be09e33fc3cf97552dc9e960979447de61c53bea46205a52b37094f7ce39f10309f559dc99c0037392d4924bb688e27bc8d26e5f6fc69dfbc3d3c41736223ab"; + sha512.doc = "09550cdf735f340a13c9104b86b37dfca67e39c277ec9f98bab08754f393368bea8379019c402662b7e7df351636e44814bb45c0970cb24db10bf3efdd9dd7c7"; + sha512.source = "12a7c774c2b6638d610c3277246ced4c8946f0393527ecd0da101481b1b85d1418537019962f86aa8b7657a0159f7c210acb3eea1386e8a528a09428619f0b6f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + forum = { + revision = 64566; + shortdesc = "Forum fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map forum.map" ]; + sha512.run = "17336de3385fe31437577e541a63fe10a9ff6f972e02776448a2012337499633eb118d86f7c1995cfbfd5b84360370c614a3687b18880e24a7e4ce06c1874117"; + sha512.doc = "6598777d072ce157440923c767ec77f710ef38bfb019b7134d0ef8ee216d1a66af185a63a54a6af0c17d537a4027c7fa322ebdad07466787e400b6ff4fd77d99"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + fouridx = { + revision = 32214; + shortdesc = "Left sub- and superscripts in maths mode"; + stripPrefix = 0; + sha512.run = "01a2cc941482972cb8ca3f5402bef75f53d5e7db2b42f8bdf614c34faab3805c3548d3786c3e7cd9d8d8f7691cd5e8e71e056ad8afc24d52444c6969c11eaa14"; + sha512.doc = "8bc55b8e191b83ea42e228b47621780f4aaeec65248f5b3e9aad94443eeba08b1bf1bf44b7cf252f66466e5b0170260ad202c13abf2d76d4576833224212ae44"; + sha512.source = "c29e1c93e31da33a3ba3914ea2992a53b52bc18a4da0d20cdfec712037f98058be5113dc65d731253aff8c4e1b0fcac4afe3da36b972f1fb23ce45a795c546a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.00"; + }; + fourier = { + revision = 61937; + shortdesc = "Using Utopia fonts in LaTeX documents"; + stripPrefix = 0; + fontMaps = [ + "Map fourier-utopia-expert.map" + "Map fourier.map" + ]; + sha512.run = "127699baefe3be6cf18d50da60d162ad0daa8794797b2200d91d11f290de4f209f2d6097283e9340fb49f20810bac7fb376e014e419994444a6611718670c301"; + sha512.doc = "7f6ac2665a52e2bf4fd4769629e00ac2192c68628784e3bb9bc5cf4f9f4c99e8e46485344e7a1019182be0af086e2b5b0ed557650b1d02ed8a9f6e2dd075d59e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + fouriernc = { + revision = 29646; + shortdesc = "Use New Century Schoolbook text with Fourier maths fonts"; + stripPrefix = 0; + sha512.run = "904b464fb9066100512cfd8a8998bb089113b443e2df1fb77100f9b5a26d48a5b3512931c00292d19764eb4f068f207eb38dab78798f217f2533a65229411df9"; + sha512.doc = "039ce79d06bd1fb55b257f1c65c53412b15c26d4eafb9d3abe9bb7a7fa836c8b545718f70d935f1449fa235f33d07c81ad8f228608de20ffdfa99b9f532e059d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fp = { + revision = 49719; + shortdesc = "Fixed point arithmetic"; + stripPrefix = 0; + sha512.run = "27e60a78da80caf0e50d1fc83d227d19982e30950650845df710949f4d88db67dad96212331182561c43d37cdeabd3b68f9af55763f30175ab27a6b5f089870e"; + sha512.doc = "79b62424943f725ffc6c1698cadb9ba2fa6d9f0694741a951bbed23c43f870b930d966f110bbe722c17249c7211f08a3a95a5ce7e9da69b7487aec37e99e5152"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1d"; + }; + fpl = { + revision = 54512; + shortdesc = "SC and OsF fonts for URW Palladio L"; + stripPrefix = 0; + sha512.run = "9c8ca7ebe7124afec8ba3f4ba4fc27c0a54ab460e53afeab599dcc619f81e5f8ad744a3cd68df33cb6ce456d0db0fafe7ee04d585dbc3fc123e5758a1242cef7"; + sha512.doc = "7b951310a10295bb453eed81ae668f042262094971dcd48c83ab721220094b3a62b79b5090002cc8a7a1fa12b4e75157fd8ead7c4deed8fa1d3629cc6746e8d8"; + sha512.source = "64da822f5b40bb6abfa33d19bec50d8e002452a710d0d6ba3c5e66097e9a33f6718524471fdc716ecb951fcb2ad82659288a08ef85b72229ba40297fc33f7727"; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + version = "1.003"; + }; + fragmaster = { + revision = 26313; + shortdesc = "Using psfrag with pdfLaTeX"; + sha512.run = "dc5d80aa4bab7a0a66258face6cf8222d03b12ea492f7cf568ef815a6d5950a8a2b36c7403ab466141f49cb8faedfbb33146820b88da17d8b8fa18a2b16235e4"; + sha512.doc = "61f0bd7dab46bfb91b634006217f01648007cbce3c9187b0811a5cc1755ec19654da94b47866ad9873fd57629f1561d1cc46bf3a4d62db618502aa0e67500637"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + fragmaster.binfiles = [ "fragmaster" ]; + fragments = { + revision = 15878; + shortdesc = "Fragments of LaTeX code"; + stripPrefix = 0; + sha512.run = "adab94e7cc71c6ed2d881d13254793df16eaa08d1e37e4d3f0344e7a56cf08a4ffdca784871e8939f5db8e868b7166846843492ced0071c9dfbf56e39d20ec0e"; + sha512.doc = "dcf795392d989fdea695512c8f7011f783ea9091bfcc238ad296b0cdf1775bcf631c3097ede09a138117e39c7fa71da7eb355878c8389bdab2deb76a319102e1"; + hasRunfiles = true; + license = [ "free" ]; + }; + frame = { + revision = 18312; + shortdesc = "Framed boxes for Plain TeX"; + stripPrefix = 0; + sha512.run = "b66df0a91a8605aaeef2452236b5169cd363689a40f4a35ab9006ac18c21d4ae2a070407f84beff7de0be246f2f1e55c8b06f234921c4d7153fea9a7f2df1679"; + sha512.doc = "b61a3dfbc23031a39bbe01788f0f1d51750a3aa9132671917ed8d14c57453d588c75f8cd54beac9ac120f26b09fead55b871d53e918a735ee172f1603e4cd1ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + framed = { + revision = 26789; + shortdesc = "Framed or shaded regions that can break across pages"; + stripPrefix = 0; + sha512.run = "06f0da36c24ba42959b2176066d3e95f23dfed41753f4e4b07c1f92c4789e68d1b246c61cbdeacbb9c00b6eb990ea2b3ec75dff8ac57845102a867dfdf2c72c7"; + sha512.doc = "1f48ac19f74f5003df88700ff85c072c8a655d4623b82bc3b7c6570a548c0a7b7e97fe292f8557a72188c0047fc28e280bc3ab65f58559804fa78e89317fd67e"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.96"; + }; + francais-bst = { + revision = 69866; + shortdesc = "Bibliographies conforming to French typographic standards"; + stripPrefix = 0; + sha512.run = "02581d45d6d205f0251c216435e068a44b7733ca23dd8f47df119a7aaf6db8efd9eef892e71219219713ab8031a77c373826c8b259e5c7f4f54f6b6edb2d8f5c"; + sha512.doc = "1f4a474fa1b953e9809315509c664fba06490dcef123ff8d1de32f05831fccafe45788a8754bcc70d6df687a1b75645d6f36ccfbe56958166e51a471e6c703bf"; + sha512.source = "3125847740194c77fd502d723fccdcc69e5ef93a1997ae46f1dac1b5a7b2a2978fe8a8f55346b67f2bc5b5c442f562a4ec3dd39466663750c7af7bfbd17f216e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0a"; + }; + frankenstein = { + revision = 15878; + shortdesc = "A collection of LaTeX packages"; + stripPrefix = 0; + sha512.run = "1d94962185391dc1fa9edcadd67a60d9a4b59592442ffdd45badea6279db8dea101b418ab3e03284e6e88c247fd213887f06e72fb6c4a002a66acaee82d8d4bf"; + sha512.doc = "8d8a404aa0a61fb76104bc57e1c2b837ddf68516c4d4fdc1af0a84425943f4e23a4f660b28b02e088db8849090e3734915ef7e0216f578a5199cf12115c498cd"; + sha512.source = "8481205c937e58fc0b46eb25e4f7c8b28becc7ebf2529ab784f0bbb7292dc21faa9ebd1ef3be2a98950f1d2570b23eb13f7d6e134b8c8c5eea25e81c0e6c6eb5"; + hasRunfiles = true; + license = [ "free" ]; + }; + frcursive = { + revision = 24559; + shortdesc = "French cursive hand fonts"; + stripPrefix = 0; + fontMaps = [ "Map frcursive.map" ]; + sha512.run = "5ac038493648ad14626e2a015c7dbf96a41257ab1d1086f9e79b0128df2c85af1a279e021e52c722636f8647364791bcf7580cccc1d80d60084f5a9a55a23317"; + sha512.doc = "eb0559574af52a711f61ab84cbda996c7cf4b2314b4d5faaa18824ae3396f041b7a5948151b2b5cffae6675bbe09c2e4358b81e9ad7792e5ece8a2912d7ff030"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + frederika2016 = { + revision = 42157; + shortdesc = "An OpenType Greek calligraphy font"; + stripPrefix = 0; + sha512.run = "b7b271af72364e0d2d00ac499bc1e419534d479d27fb424b7046373323354c47da29b888f0d765e3ff4725333ab3d407cd21a064bc4d063adf890de75aa49e3a"; + sha512.doc = "e205744d689113870fce9cf791f089ccb59cb6fa326c811f34db7183588df3de9b946cddba2a02128a9b88490e9326bea6563fa0fd9a3cdc76467555b7b8d198"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.000_2016_initial_release"; + }; + freealign = { + revision = 69267; + shortdesc = "Align math formulas in different lines"; + stripPrefix = 0; + sha512.run = "ca74fc018fe0162cbc403c32efa1101edc215bdfcb9e5432c8d395cdad4f26550df6447b7cef9ffb103863052886b608c89ea5ad56a8a909822e7fc49f3241b2"; + sha512.doc = "ea7ea3cf64373fb06372d4452d3b66654813f52e221fd1a002c5b95c63604d0aa3b3a21ca6dc70e406b51e18628bd6ce55a74b1e2562b9140811f4d860cef91d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024A"; + }; + frege = { + revision = 27417; + shortdesc = "Typeset fregean Begriffsschrift"; + stripPrefix = 0; + sha512.run = "39d359f01256f2399cd9226744aa9735543d5c9eb26104855bb52efaf51b8c720cb85e5be08241d72d3b2e1c2deb9cc7a10dd90ffca789ae91b6ea6b7cffb879"; + sha512.doc = "28c5cb420f25ed57a03f3914ce2286732ab8e06cbb0b8446ab3112ccb79b34814762becb7ac7457593e1b5b1579613a76a8b21fe2c43ac9f08175495ea87bd1c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.3"; + }; + frenchmath = { + revision = 70163; + shortdesc = "Typesetting mathematics according to French rules"; + stripPrefix = 0; + sha512.run = "dc8bfa123818c5e3ae96194158cccee72c29bae0b59dac01014750d1907039eed6ef3f24f08a32f08f15320c28e03bac3a9f052010e4609108bb5b4a4ff97397"; + sha512.doc = "1a1146f868e4d68014b080462cfce94f0f8362d23ccd42fe2a16fc526834850939aa10bc60dc65e5a66c35d40632f7c7b1fc607548b966424ebcda59104264bf"; + sha512.source = "9a3c55e4d175635953917751c57b9f762a20046f1967c47a022703249a0fdedae4264810b16bc4188d6b19ec3836835e2d911c78fa7769bc1701b906b8898f65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.10"; + }; + frimurer = { + revision = 56704; + shortdesc = "Access to the 'frimurer' cipher for use with LaTeX"; + stripPrefix = 0; + sha512.run = "81057096f64d8ed53fb8afb9bd72eac6538f5babdcc054f422c7d6d0fa73b88459d250ed56b1666ec8d6c936b52102a9a1988d04ccc2efe76761e945d9027145"; + sha512.doc = "d2c8dd345fed5935fe2e329ebfe7c2e9a5c836f3af5d52605e35ce32ebf51cee529c182505db8eaec7772476f758bc5905a8b57cad5ebd162732801c2cf6d352"; + sha512.source = "a0fc0076cb4beaf081f21ca474ee287cfcfac07c889907d690093ff7b188214875766746bfade8f7de9182e5c32c7bdf912b71336f078bee120b042615056e46"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1"; + }; + frletter = { + revision = 15878; + shortdesc = "Typeset letters in the French style"; + stripPrefix = 0; + sha512.run = "5f6c61585ab0626931cf7f19d18138ec70572f3531f36cf94eecd82d93855a2ec8ed2ed0146971e035f8b5119df7c602c6279a9976e024ac85869953448d51de"; + sha512.doc = "36fbbc422eed8e577e054067e7b442cc84b640fcbd0706e3d8cb503884a5208e0a5bbe0c40b67cb5b495bcdd0ba7a78855338588757e5a9d26dce21f9bedcf3e"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + frontespizio = { + revision = 24054; + shortdesc = "Create a frontispiece for Italian theses"; + stripPrefix = 0; + sha512.run = "6045214cc6a8325d8c828c2591fb43995f098803b031adf50bf8b4dddfa0047ce110dd25e5db71b068376893b7ee83a70806713a83b90a26c4d1c8553e4f00f2"; + sha512.doc = "beb8cec7ff51ff9b85e2a650bd7931070c126ea3b126051eb63194e8a071f6dd92d0014953afd85b0e73095208fdcefbf202d9c0ac22003f71d7f7a72f4a4034"; + sha512.source = "690c42ad3b6db68c8d4305fd9c402126013a26a28049f5cdbaccc455effacf9bbf86ba77d91c518d88b72e48930939389ec33620e8adf06eb20762606ad53daf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4a"; + }; + froufrou = { + revision = 67201; + shortdesc = "Fancy section separators"; + stripPrefix = 0; + sha512.run = "06c13998e051544b8fad8c65dad787b670beed1ec177262d3076b77d805423196b1b9092c0c2acf383450ebfefc4e670406dd7ab4413217c492759335a2d8310"; + sha512.doc = "fd49cc43d8479aa952b68b42bdc58a1e6256048027eed2d50ee80d2312f375956d6936f91b7a1d0d6ea2cdf5414b09f987e4bbd0f7ba279ecaccd8cfc9f6dd48"; + sha512.source = "bab0baff37c117b842d341045b3bc01ca9722f92c5b0b18c8e777dcbd06a8e6bb8a13432f44b561ef5857a8f8538e2ef47a9bc5a1f012addaa2accc1cffe971a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.0"; + }; + frpseudocode = { + revision = 56088; + shortdesc = "French translation for the algorithmicx package"; + stripPrefix = 0; + sha512.run = "f8807f696b69f5ad8b08ee24c210c084e11652d8f00b996e48f5e08c894e991b0f2cb288ac72e6b45208add3185a3e14fcfb432d8b2d2844359f54811859cb07"; + sha512.doc = "6c22157462f55d2c19a8da146558556eef0e28ed7f79c5231b282ad218b041d1d850ffd24c8f06c914ae5d9efd04d442061598f6f427ffe9393cb2ff1a4324ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.0"; + }; + ftc-notebook = { + revision = 50043; + shortdesc = "Typeset FIRST Tech Challenge (FTC) notebooks"; + stripPrefix = 0; + sha512.run = "9dca1b2e09293df3a12df85f843e1701e1ac428f4caccbc196f43cfd02517cbc98908fe95fcd3e26685cd95dc8565aa5e29ad79f7d42ec5cdeca0346db6a759a"; + sha512.doc = "36022ae2df65e45e2fdd2a01e2c95502c3acee0e8fb0b738ef06b313f47cf8798df30a41a6f5e7b4021a556ebdfd17f84b4a79d54d2b6e88c8044f0a67a87f8e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ftcap = { + revision = 17275; + shortdesc = "Allows \caption at the beginning of a table-environment"; + stripPrefix = 0; + sha512.run = "1287e0bd63fc92ef3e3c77ae3a6113cfcca38dd63f4a90948baadd2a365c07b38631d916230baeaf550b1aeff07f9cac3a26a07301838716d8d70fcf0843953e"; + sha512.doc = "afa317f10c600c88bb96fccb0383b291e1fb7c11abba5f6bd1efb05e7d2ce117c4ece7bdf9a9ea16c71c116143aa65ba26cf7c2e1dba68f225b655d122169001"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.4"; + }; + ftnxtra = { + revision = 29652; + shortdesc = "Extend the applicability of the \footnote command"; + stripPrefix = 0; + sha512.run = "df8395b996f96ed72505ef1ef7f0e8e6101d4b26059831b227344023514d377eb189961a240e83ba42ac4ef7e8086b8ffcda347290014fbb1cf1531371c20eff"; + sha512.doc = "fc16ff992e3339480a4154169665be49f51e56f361d0b1f97842c555be59485fd7edf3cf815e32642826224e188c5377fdb2ab36746cdaef7f552399a4b7119c"; + sha512.source = "87e580467312c6198fd7106b6fdfdac994c5f9fae3d131b793da60ebc9d852141ed6630aa0d4273e50e7311b6e10499a3e4e2cf141ff197d5ed72822f0c15be6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + fullblck = { + revision = 25434; + shortdesc = "Left-blocking for letter class"; + stripPrefix = 0; + sha512.run = "b298f55ca3afe8819e44704329c06be2867b00c1a2a399b5db8de8477751f9945bce1041450c7e91559eeee65c9bae5e76b57469c956239c9752341b820047c7"; + sha512.doc = "9da7587195a077f8218abc6a7df98bd15369650e00ab3893b6cd70a268bf34431b8c2c49b3415269bf6b8d1ddf51a8e23e76ae87667309f8466ad69da87f05a0"; + sha512.source = "2ccd2da9f1924a1547f4a6b870ce150e6140abc9c1984f1a951a59146944d50c6f8e115ccfe79232f941dbec756e26d460037d92af191eee644bb2dcbe986c6e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + fullminipage = { + revision = 34545; + shortdesc = "Minipage spanning a complete page"; + stripPrefix = 0; + sha512.run = "7ca92205caae688761ddeadfc0a37173b37e285adf3c1f54c4b2994a0c82c90713a255d5068784e3f3866a7f1af603906513a561632b2d09c68477e497330d2e"; + sha512.doc = "111145d2f1c81f74692df8ef397d36c4c0d7b6c89efe0250571c0153b22b9d562df0dcefa90e3be96f8eb518af75ee8a23d42ad898e23668265dcf39d3c678ff"; + sha512.source = "d95dabc4565fd48b8a6e8b35777fd456934a3cba8bac34629ee6ff4847cd1578f70a06e6b87a9b76d26e341a502d1c284e4e155aaea9c92a12dbf6d0043d8249"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.1.1"; + }; + fullwidth = { + revision = 24684; + shortdesc = "Adjust margins of text block"; + stripPrefix = 0; + sha512.run = "c9b9c37991365346804b51aae7b4645e5b63eb6a3c5c60a953cbe0583de0960e8a9d6cc99dc7526944415764869308d778fb85e7cde821792bec940f6c19072b"; + sha512.doc = "55892645ce01b31dd0285749091b8fbcab0061a7190f7a426379f6d3ea8bece8a5c054cad8b53efe1bb69a68fd3e49c3e8c8afb94954ff4ba8838142ab4576b8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + functan = { + revision = 15878; + shortdesc = "Macros for functional analysis and PDE theory"; + stripPrefix = 0; + sha512.run = "0899d9a3c30e701d5ba6a0275521a40a3cf2df680e9d4a95624730184fb370ae2537bec1becc3b185647a988af5fa8e4bda5198f42cbe68cbc848d8915f1c9da"; + sha512.doc = "c824825fd424316701e25fc573a431aa5967af0d520b631489b20608459dcd0f7abfac277c5b1e7b60e0a2888e0b37d787755acd6f671e48d4911969e3058692"; + sha512.source = "f83465845900ae5bc872fceead5a83fa972c9fa8b858606007237251ee2dd77cbd095376194aca0356e5c8be53fe653a88f5a10c1f73effa8201b3adf55c5a17"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + functional = { + revision = 69929; + shortdesc = "Provide an intuitive functional programming interface for LaTeX2"; + stripPrefix = 0; + sha512.run = "efd3de1e1944193caa18069a1478e19bf602f1110c880ea14d9d7af146d4ef0da5c84078afcda4a26a326f01978240f6c011212424f029c491148317a9b60e43"; + sha512.doc = "1943c1451b357fe05d2586651cf52e8593927847ad3f88ab21d89626c8dba63e0bdac8e702dc79f7a8fc4ea8ea73c7b6fd05e19e57caac28adf5f1d53acbafb1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024A"; + }; + fundus-calligra = { + revision = 26018; + shortdesc = "Support for the calligra font in LaTeX documents"; + stripPrefix = 0; + sha512.run = "a999f372ef266e66a199935a0783d99293141aa08586a38d65a3748c1a239eca7b0faa74d537085852e79520343ca937943b30ce38820fdc925d75b1a334aabd"; + sha512.doc = "93aa54f12ade2eab798bd84596ec3b366db0a15eb05b5279261af8bc13bc1ce782077de36465e8e29d11ea1b89456ab207c33ab907e5c31af95e63d5d897da88"; + sha512.source = "bc5cfc694592c7a0fb469f752a6ec854d11d9f69588fa6e42390080e88cca3da2fbe888b826ae7a3c07505bc418129237faa791dbf4f3dd9a31cb8e06ad1a9af"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.2"; + }; + fundus-cyr = { + revision = 26019; + shortdesc = "Support for Washington University Cyrillic fonts"; + stripPrefix = 0; + sha512.run = "de84ebbe6e70f61bf9765b9368df95fa5ae607a8d6e1c5535240e8665bb097c6958956d1b19ccf12a2a510672675c7ffa08ab98bd80b6ae2973fbe65d0e8d343"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + fundus-sueterlin = { + revision = 26030; + shortdesc = "Sutterlin"; + stripPrefix = 0; + sha512.run = "b15a1fa2ee3272f25a616234a335d0bd5c8ac810724ecf453e172d2b68293b55f01f3e57acf81c17721cd3f489b35cde077d5456b78afacc589853224f1bce94"; + sha512.doc = "7162188682c9129e1788104fe94aae2a70607e276eeec4367ae60ff9e50d26aa88a73998028b99ee42627aa27e8868ed2fe72063db2e033798b09ff0b7a13477"; + sha512.source = "59f5e1e7f338445d3e8430c5c7cf69de9499a659ad5f32566c26166bc2997eab82964919c50aa15311d19c80a14a1a7bc4380e985f382d4ee89c387faef38b37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + fvextra = { + revision = 69001; + shortdesc = "Extensions and patches for fancyvrb"; + stripPrefix = 0; + sha512.run = "42c77e74ff16a7aee9f79f8a6f08309742c1168138ccec2a085baad525422119bff6c10ee323e29aa45509789af188eead92379c5bd0d30c5e4a9ae557a0d991"; + sha512.doc = "27ee96621793f4da2cf719c49edeb3cb272fee6b31b13cfd86653ceb027c84dfaa1885b82510de22e0ca1e365ed783b745190809482a9f20796617e3fbc059c2"; + sha512.source = "49252913e7683100f1f12c5bf85420b6de4832d68af740fd8bc0f7fd1a18aa9e39005f6217c89c4a532aa72250bf0dbfa6de7f5991dc48fd6fc8b91e84606a5b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6.1"; + }; + fwlw = { + revision = 29803; + shortdesc = "Get first and last words of a page"; + stripPrefix = 0; + sha512.run = "ac2c981bcc4da92a7f91c3ac17d66c4e0e7c94ff1bdb3bf3c7f6a4eef19fad1ecbbc6048a5c74627126c7e1190ee18c2c9373e80d52130a2d272c58ef70de6fc"; + sha512.doc = "bb55ca044aafb5b11b89b3c817066c4fb20facba8812667398ecf945bd8ed4b11bec2dfd21455db9cfa5e81e5f865655a3e6f4d3724bf40e47ad1db708896902"; + hasRunfiles = true; + license = [ "free" ]; + }; + g-brief = { + revision = 50415; + shortdesc = "Letter document class"; + stripPrefix = 0; + sha512.run = "6c0a8e653cab5f67a85d25e18b98371323b3dd09365f6a3d1b47eee409b233db4290f6e6de70128f5b45facfc7771475671990bb2c79a1718c74972bfba78070"; + sha512.doc = "147d30be05a9224e141d9dc23a81750d0c43bf590d6e1dcb3e92fda6c668031522ef410904e5c7621c9b98879d6809fe604cf47de7f24891bc7e15c7be5ad05c"; + sha512.source = "447a25d983f71d109bc747ee8ab9e120a0b7c698a9238ea5363d4d826383af5587f78f21c442d4e1d999eaf4cbfee813063f7547e786df962866e57c55673c8c"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "4.0.3"; + }; + gaceta = { + revision = 15878; + shortdesc = "A class to typeset La Gaceta de la RSME"; + stripPrefix = 0; + sha512.run = "54c42cde3613f1fc28ba0a675281e64d2596e8f3c7831e1b1611c34fed1a82c01da2d6eb98058d5776ffc625d04e62359f63819307d04c6296705de74bfcef66"; + sha512.doc = "594fb3b44492018c6777e014ccc4784813784d3e282cffec0f6b6410a59f088ee30c8113a714fa41369eb795b35a1c615f3069a43697d0bed887123a44c02bf7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.06"; + }; + galois = { + revision = 15878; + shortdesc = "Typeset Galois connections"; + stripPrefix = 0; + sha512.run = "0c864940c2a47ad82f031868c1933679f9ee0e5ab01e98386433311a4230a77c7a5d41016619fbf7bb1957fecc259bd092d7a0894eedef91143a0d85e68a6978"; + sha512.doc = "7c71fe703efe235b3d1cf3298c99f2ba7dfbdc8d7c20861e8738070ef03b9671b1a4f6df40b2238d4b7cf9e765a1cfdc6210ea63ad06dfc60e0ac7a101735315"; + sha512.source = "f1f62a005edc9b6b5c1b294aedbfe00cff61c48f22d2fd0b90d76b1c6144fd9c8b885890e4a6c6e64e054ceb67b851c6fe3d9f2f1baf2801f070f0bd269d4925"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + gamebook = { + revision = 24714; + shortdesc = "Typeset gamebooks and other interactive novels"; + stripPrefix = 0; + sha512.run = "4af22bc285bac3f368778dae5c91cf6a1999748a6dfa5fba96e166ed320e124c33f2b6d6bee16ad8d00d0f8067b24bb3567a1aba849b74a6b02fed3bb85dbc0a"; + sha512.doc = "58493c9b39343846913263f53b3bfe0fd89e4adb4154580d1bb0ff5d32b5b91ddc75511a0241fa3b98faef8b2d9d7c1846aca486e0c7262f8b3ea7a6bfddc619"; + sha512.source = "793f5cb23ef53b3d24d10ac5d52cf1e8bf90438571e23b5171c778ac720fb2c52a03a90e1f83f353df0b5410e94b5551d0855284df72c34a0f212842a3f96c41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + gamebooklib = { + revision = 67772; + shortdesc = "Macros for setting numbered entries in shuffled order"; + stripPrefix = 0; + sha512.run = "b100e95290634e0697bc420259b287650c8bc436a950749c8f60955b4bb1f622f692730640c8b882400d7f1ac7a9cd847cfeacbd5310a5bd57f3925f21766159"; + sha512.doc = "f34592d3d47f5cff749fc0bc44b4de233a13bb962674cb22e06dbabadfedfc303049c73b18cc0807e0f1827ab583732a0019345991b3bedd6daa1f3e84c40108"; + sha512.source = "0c97580b9451a154838e8e32a67f3dd2af36d1a9e3a464d0912a0ec2e6a1338f617855ff49b199cdea21dabb2678b1e99c58dbe2a3ba5c976eebbdd87edd5a20"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + gammas = { + revision = 56403; + shortdesc = "Template for the GAMM Archive for Students"; + stripPrefix = 0; + sha512.run = "8ecc1d5209ee6492e032b30e217dbbd0ae4c1ad9ab5a42e7e042eee63809aa257c8cc5d720f54be5553c8999f78334b8057bdac1134d4788144a3cafade7154e"; + sha512.doc = "62ec08047df846d2e32be9396356fdbdb9eb9c1867079a891bececc1d56275666127d997ddd4ed2c2f73423dc4a2e051586a1b06b516fb77372b04c60a4ca342"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + garamond-libre = { + revision = 64412; + shortdesc = "The Garamond Libre font face"; + stripPrefix = 0; + fontMaps = [ "Map GaramondLibre.map" ]; + sha512.run = "2c8a9057bccac0b8187e7e7b38445102e2ee89885595d93eb3dcd88bea4fe18d73786b471812f9a0ba256a6fe16ceb3724902e587b3ce6a98a1461d554182698"; + sha512.doc = "b8a575d15c7020287313aed6fc7f08d4d6d9cc02633527a657db4fd0fe39a25154f7dbbd9d6516ecd4662d08644d803822a19da43348f955f553725558c0dd6a"; + hasRunfiles = true; + license = [ + "mit" + "lppl13c" + ]; + version = "1.4"; + }; + garamond-math = { + revision = 61481; + shortdesc = "An OTF math font matching EB Garamond"; + stripPrefix = 0; + sha512.run = "fcab922fc4faa8468a2d8076664567c8533e95dc6767eabedee5c053bbdbb721890731f0d976a2d6047709f058a4d5e029996a5a5574912d21cb493f2975a76a"; + sha512.doc = "c7c5795e7d9de09a590dbfd7311786027be9dcbe51b1f40284639341953effbb0dfcb331061cad0a8d01df55c52611a8d61a6b62fba701565bb643826ba55734"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + garrigues = { + revision = 15878; + shortdesc = "MetaPost macros for the reproduction of Garrigues' Easter nomogram"; + stripPrefix = 0; + sha512.run = "e1440fcf8eb0ccd3b140649c590c902882a8a5a02d4cc14589ed44193f3a70bf13839e9de9663c500bb6874d6fce34f5a21c07e38a7456738548b6ebf449b258"; + sha512.doc = "0c91f7e1c8fe4910fa7052440edd9afd81c8932e99368219c8a5037bddfa4c8c11037576e9c94721062df9cf7fd5d467389ddcf3aed3e1853be38846c049100f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + garuda-c90 = { + revision = 60832; + shortdesc = "TeX support (from CJK) for the garuda font"; + stripPrefix = 0; + deps = [ "fonts-tlwg" ]; + fontMaps = [ "Map garuda-c90.map" ]; + sha512.run = "a806538598cae0365968ab20936631a052dc65f9f6056c39197f7b1c7a5aad717a7a8b72ed2a1af347f8ce91f27d7dcd74b758db8f01fc7810a8d658990bcc28"; + sha512.source = "58f62ec8020489b69743c0591129967730f9ad0729f7cca343ab6e6fa6675122a1e37bf73f090cae050cb695a14dbfb3c52346e3c528e660484d2cb576aaca65"; + hasRunfiles = true; + }; + gastex = { + revision = 69877; + shortdesc = "Graphs and Automata Simplified in TeX"; + stripPrefix = 0; + sha512.run = "1716d7e7a0327fbde392a435b783da48382adc8e5751f06730dabe655422b2bedbe6d6ddb589de67d3d15df0b97354bae10aaff81df1795f01e44d6c7f90681d"; + sha512.doc = "417c7ac005a4d754dc5d6082e5453f400aea53f61848efd244e97a3c6449346d2fb77989598113b15d16d81d70a9abaaa06f39ebccb542fdb88265e1dbf170ab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + gates = { + revision = 29803; + shortdesc = "Support for writing modular and customisable code"; + stripPrefix = 0; + sha512.run = "704126d5e113b9718654e5d611d169df17b45ec09f187d86d1c108a331e80939d0266c4473233277e1b465a70775da1ea9576744171209ab45203b4059b96b83"; + sha512.doc = "a9cd7d2c616021d429b299027503fed60e8474774b6d57095371f1afaba68709770857ba09f74e8e5223dcbdd1d9f1f70a0ec81c3801b1a77c3a494336fa86bd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + gatherenum = { + revision = 67201; + shortdesc = "A crossover of align* and enumerate"; + stripPrefix = 0; + sha512.run = "c700375b321db078bc99492ba42c03855a80db6c1661590dba6763d52c65ec7c86a9889a38956a5015b78416d8c7a296efd764d1eaa758891cd8c7f7d4cef8b4"; + sha512.doc = "a1f184ec862cb4d343b4dbb8014faee217a61e1f72418a8472a2a46b6731af4e3e767755f4f367631f40199aafd449aaee9bf409e9358822ed6006eed495d4ad"; + sha512.source = "378a9b33f0b370fdcf8b068e8cb58def5b9c66b7cae4a72cd02d4fee61edb060bac43fd30180c5709b2e7367861430bbad0ebc812fae9520fe72382ead5b0354"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.8"; + }; + gauss = { + revision = 32934; + shortdesc = "A package for Gaussian operations"; + stripPrefix = 0; + sha512.run = "9dd3f7685a8b7bbdfbee1fbe5dcc5d2819091c7c20df7979b1b0fb7971e613e45b6321a18674e88bb0d6222f050f0ab3959b087be70b90b5bfefaeffacc733f9"; + sha512.doc = "50de7e9af2360367de7f7136def2536a82348752656b1c40022d7e13271cfde64e67bcd482c2d208f47b88a30560f8179b7b8706288809b41d023c037147f0c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + gb4e = { + revision = 19216; + shortdesc = "Linguistic tools"; + stripPrefix = 0; + sha512.run = "1ec519ad5f22e6d61d16a0233a73065b45e8628549bfecd109f968b8749c362cd04f358d67e96b1311577f94f6152e7de7a9e3264ffcff5c5769662b52df7e29"; + sha512.doc = "9b8c8e2590a1a515aa84e11a4028aadeff9e4acb7d3ce99b0d21009e17443db3d2feee85d888a333595e144244efbf978239e6dbf48c68a43bd5709d9489c203"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + gbt7714 = { + revision = 64633; + shortdesc = "BibTeX implementation of China's bibliography style standard GB/T 7714-2015"; + stripPrefix = 0; + deps = [ + "bibtex" + "natbib" + "url" + ]; + sha512.run = "f2f869bf4d507ac76ee576f1bb739bc5e5681d3f2cb1db64841f90dfb22a9b18aab04c5722e231280cb94f055ab002ed99fc965bdbb3d2bdeb8d953f704e73b2"; + sha512.doc = "17b79fb795d0b2a0f2c696da83ee1196750c1fef15c77d33353d6742443d43287b5bb96c349be8e58b0df538f4585f45b353234bb100318cbbc6de6f14192da9"; + sha512.source = "0d7e44fdd1106800d2dac2cac49dfe4c9154498837e27880f0193fbc8033f2a74fe5670f79c929ce2216fef216288e5e072f1ccddd23cec85b6265ad569d21d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.5"; + }; + gcard = { + revision = 15878; + shortdesc = "Arrange text on a sheet to fold into a greeting card"; + stripPrefix = 0; + sha512.run = "de462bff229779faa33c546d525e3624f1ed372c09c1b90fa9270928caf0a2604f2bb9d3ef0768de7dd0646202d7a59995b7252c0b83b19eaf777438bd1acc47"; + sha512.doc = "f7fd3c07e053962c88d0a0b8e5899272a3bd9af4cf1731f88a7014773d8f0ecc91fb45e1e59b1a372d8c8977e1dce91c5162558d0245d77a187ac7787a3710ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + gchords = { + revision = 29803; + shortdesc = "Typeset guitar chords"; + stripPrefix = 0; + sha512.run = "7fd655af5446982b450e3eec2b8966f2fc17c11686bb75f516ce0043af651b90e4f88c9cfac133929fbb686fe3f7be6de64d89bda6822f218b691791c9207950"; + sha512.doc = "26818218c9e3142f4bba491e996556b28266953c6b84f1c3de58d60b1bf100d15513fd2898507cf43226eec127942dede647784060668d86bcb22e3fdaee96cd"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.20"; + }; + gcite = { + revision = 15878; + shortdesc = "Citations in a reader-friendly style"; + stripPrefix = 0; + sha512.run = "169d9e96121d80bcbe7580e7ff447e8df252b19dca5b304514a792764344df679e9275b1a552d67070d3f5b0fc41c70a6cf1ce9c90358dd9ab58878643be6015"; + sha512.doc = "d9b50778855efc00ba4d6d6f48891865853b8de8e55c3432140b0ba69767c6c13ab934c2be43b2556a862bbb5413ddccce158ec4130576617a75708919f1ab0c"; + sha512.source = "44e8fdfff2e015a9bb034496454016f8f03e08e2f5b8ca907670447694877a383ca99a5673db107397dba07142e99cf01d9ee59a4a360d6146a389de7d103cb1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + gckanbun = { + revision = 61719; + shortdesc = "Kanbun typesetting for (u)pLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "ccea354895392747e5c84d750ece8f3717a0f9c529fd5b8b7ae2554bbe607b4497b9a8d213c479d5ad11e8ebc40187799ffced6f08f4fefb4e6d3cf223566c98"; + sha512.doc = "4a885440883d615ad20dc083c768c3b64c3cdc627e1daca4008dbf07672ad62e8020a9b14f732d181c4a902adddd49908c4a0e41b3afbe2d68d2f90c5989e78b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2"; + }; + gelasio = { + revision = 66805; + shortdesc = "LaTeX support for the Gelasio family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map gelasio.map" ]; + sha512.run = "d5ef910eee7b3e26a180c88ae104da77becb4bed3a955938486d6763c2a0dc51e71ab6f9351304894d5e531fab714cf75f6a0cc421d074b3ac86931698582274"; + sha512.doc = "aa49c6e0bebb4c097b78ba11781f7027b783c6280a5fa0e3077f9c1eb20f6b372b3910f5c78b0103afa2429938a94b277bdcacd210afb8bad2bac92f5022ed8a"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + gender = { + revision = 36464; + shortdesc = "Gender neutrality for languages with grammatical gender"; + stripPrefix = 0; + sha512.run = "261d57b05993954b80f82844f590f952fedaa4ade8f89704f2e2b4e2d18441ab5c8adef2ba3dfd81b61bed53150b737ef72964e1faa44ca48e923cfeb5a1bc14"; + sha512.doc = "7c8bf143cb7ae1d22416df88aecf7e004eb02bf199f74f8003aeb9ae3923a3db42f1735650fac8aa908bf220f16ca48b3e4f9dbc312668d87df65149ea674be4"; + sha512.source = "ac76060cc1b8c3bd876ccece1d82127575b956fa1bd3bed63d9d8a927845c8477c903b47be3a6e2d85de06899957d273d981f250cc7d02a12830a8cbfa6f6183"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + gene-logic = { + revision = 15878; + shortdesc = "Typeset logic formulae, etc"; + stripPrefix = 0; + sha512.run = "b7cdc0d653aa8e25d763ca4115fa6fc857ddae35ed835aee6b6a204ba83d01ab91928b00248c40677ba132ef113276912a6b85dfd456d937114a3263a1ef4c7f"; + sha512.doc = "db358777af18e7d2e93dc23084bec0f47270b4cb6c6078382a1eb9ce288aed06a6f55fc30ce728b1312d06f871458fc6b5b697b1073316e8f727b5ee80f99468"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.4"; + }; + genealogy = { + revision = 25112; + shortdesc = "A compilation genealogy font"; + stripPrefix = 0; + sha512.run = "907394cb0ca9b3d339d78595e613236038ea2acce27c4468b7d028d0db7ddf36f7037c4f0bc63d5970e904d0675bcaf057c769239a79f064fa6aa9dae4f2014e"; + sha512.doc = "34c9d737d31626331a18051a5b04584fd896d7cb8ea1814ff2fbf30486ec3578b2bef16155b9c8f2ca645d42f797f3101c799d3422c05f824026e268fa4f94e8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + genealogy-profiles = { + revision = 69580; + shortdesc = "Genealogical profiles for LaTeX"; + stripPrefix = 0; + sha512.run = "36b0b0107bf8999ce6d2a0ec46b792dcb9cbd5313734e2cdb2879bd7a15d8f70af09fbc831b6183412cb72c44eb6fe3202d00a0dc510e1314ce7115d78be12dd"; + sha512.doc = "52f75186e84f03f21e33bc1b5ca935bddf8f45b348ee5dc93d82506b444cf72a1a51c4a33b0510cccd8e89cd46a74215e6acbeaa5d2f32953ff7ff3629bea5b2"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + genealogytree = { + revision = 66513; + shortdesc = "Pedigree and genealogical tree diagrams"; + stripPrefix = 0; + sha512.run = "603091897c07e0d6643482ee754aa9f0a49ba4e71e3a426c35404f46c6f6fc43a6d24f721023706cf0c03b152ad3153a8322b440a89ee6542edbb8aa71a384f1"; + sha512.doc = "88757eb6be6ade83a5125da7bb7bd0abb3d56367a330607fdea9b05929c8caaa4fad0be79863006e9048daa66aa0ce7ddddd1a2100ae9dfcfc835456c08453f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.0"; + }; + genmpage = { + revision = 15878; + shortdesc = "Generalization of LaTeX's minipages"; + stripPrefix = 0; + sha512.run = "b2618005fc0f00a636e3a307ba1038f8dd39798e2ee2afa4d9169eb45ed4b38a67a57bfb516e9dd8d93ea0210a7fcde21b26c0564b974442e18021d83f905265"; + sha512.doc = "c428886adead6fed52f0d249db34a950b4f22b03770ce1bff0831fca29477ab92b5d83a9719b73aa45aeb5f2067f31afc810b6cdfdd69e709ec5e61a08f45472"; + sha512.source = "563042ab68aaab51d357c957111419012a0edfd27332bf30be0985e8625abce945ca6a6a081e62f6d0ee29b6885a55270553b622bbcda5f369ad61b53d4ea723"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.1"; + }; + gensymb = { + revision = 64740; + shortdesc = "Generic symbols for both text and math mode"; + stripPrefix = 0; + sha512.run = "311de4fa6c68b21cdc8c655a7092d98772398e82bd9790e0bf00898a6575e234da44534635dfdd500eb7815d302a4487162f528452caf373ed11b7994682a43b"; + sha512.doc = "4175231e5b998f26e913374ad20b2718d4c566e5b220bfe4de9f89ffc4422b2aa4c941acc067d392eb43a725d93457b1c10d8568f5ad0eb7c1aecd4fa83e9746"; + sha512.source = "56cc850ce5a2fb0d84b2232f591d3f1e3ed18d1924d365fdb6349237d98ac655b0881febaaed414f4903eeed7889385b4cf985eb3cf72c3fbb37392e8586f848"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + gentium-tug = { + revision = 63470; + shortdesc = "Gentium fonts (in two formats) and support files"; + stripPrefix = 0; + fontMaps = [ "Map gentium-type1.map" ]; + sha512.run = "03a32d7926747e42f25daf87ef08f866b9145a7782fd372a4688404951211a3528bcad7ee5e4a6888cd8ede2602930f628141953c840268041edbde2624006ec"; + sha512.doc = "7cef5c563fa13b5b8458e2932be450edd48168da9db9ac45ab16ba608323beb4ea79f8dabf2c38b13b479de9ff3065a0cfa84ff5c259aea95495248e9794ec18"; + sha512.source = "b2743e38fe079ca3d46711fbcf810f4feaa1bf781e35bbe33b62cf45cca3b2ee1ab6da22d61965c440f987f9850e614d3f1691f8aa0d01beb0f56984c31e66f8"; + hasRunfiles = true; + license = [ + "ofl" + "free" + ]; + version = "1.102"; + }; + gentle = { + revision = 15878; + shortdesc = "A Gentle Introduction to TeX"; + stripPrefix = 0; + sha512.run = "b244b249329d1ee622686d2a44d1469ceeed7e2adec5d82a2482e8659266a8224490531e0ed971b56f945b63fd1081f29aded9c43cea78fa8a9aec836301b26b"; + sha512.doc = "fe296c5bc38a1e6d13d2b46dc8081a6658764f7017d0831cfd46dd86082371d6ae095ec3b52b3aaaacc0a57cbcee066b94644a5746391fae4129eebaa246e146"; + license = [ "free" ]; + }; + gentombow = { + revision = 64333; + shortdesc = "Generate Japanese-style crop marks"; + stripPrefix = 0; + sha512.run = "4aa08751c2fc9c6709031d53637e0c2dc734926160f357df53bed6e4c33c4340e33f9dbb92d3ec2bf5dcc7b552c9508622986edc3c30d6fe15cc8334a0773779"; + sha512.doc = "af1d418f108bb050d8380223548d7fd77681e942a1a48aff8b7fb2c7e7a4d79b288e47099382e6ab9218bca78dc5406a57a42de00c2029f080285d6f11183a5c"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + geometry = { + revision = 61719; + shortdesc = "Flexible and complete interface to document dimensions"; + stripPrefix = 0; + deps = [ + "graphics" + "iftex" + ]; + sha512.run = "ed64996404299bd8379197b293baed752ff064e04eec87ffafdfd55cf21c2c48174560eb1c3bcdb0b06190badb9d9cc699aaa7a2ac8a5c537b0c818a423770fc"; + sha512.doc = "a58ab22ae6df349d81b5ddf18a4e9b7dbb5804a497bbaff42acde18ca59fe8a19bfee34293debc23e44c690456e6a1b1d87614fbb85dc6cb3b3b7d330fc866d7"; + sha512.source = "f4e1e8c0f5b8f443c8f5e6ad948cb1736ed944384daec20e9402c871872e86248b3167c72e07fc94fe32ef6ab36c17d2f177135ccf99f68d1c892af0a695bcbf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.9"; + }; + geradwp = { + revision = 63134; + shortdesc = "Document class for the Cahiers du GERAD series"; + stripPrefix = 0; + sha512.run = "b5b4cecbe95f3091348b917d9cafa31a5249bcf0b11b5a0be405d980c3a22d7af6f241af12ff999b5bbdf0aa3aebfff537e8c01fea9bdc904709eb66b3fc78bb"; + sha512.doc = "e12924c6e3437f0d2665bbfd97aa7d88c491a159866a3ec7ffdf9f84298e4bc0ff336487a194b68f0ebfea67dbf415749118328ac1606f02f32193963f6339c9"; + sha512.source = "faf85f46bfe88f5ea1220e69b514f6c026096ca331f53bb19d2ef2f1cc728cf8b9c46d394579bf78ef60d1b75c3164c2c8c204e959d4a298dbbef2f9f2dbe5e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + german = { + revision = 42428; + shortdesc = "Support for German typography"; + stripPrefix = 0; + sha512.run = "6cc469012ca6cb76baf2bbea00d198b97c2694d9388e90d2ded6b27da30f8d56aa2e6742ecabbdd335b7299c0c7476cc5479b59fa94468c9354f35ce18b59732"; + sha512.doc = "b9795ae418790119ca923079221114b9bf608ce2460b810cb39575910c0b173ff445c428a2ce6260bf90a993fb354d2b5c300ba58344d907965b65bb6f2d4ee3"; + sha512.source = "9064ca69c304f86eaaf2530bafe353902de078530f57f39cfcc0a9dc0d5a04ba5329ac9d0e7e10e3ddbbbd380c14b4efd8a5b7a6b0099f2c504563af74469c42"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5e"; + }; + germbib = { + revision = 15878; + shortdesc = "German variants of standard BibTeX styles"; + stripPrefix = 0; + sha512.run = "a7854f834c868ad80bcf986380f19139687eb80309e3aeb9a001d2030c5bca51de617394f920801834df460d05b52878301c6b45a52666984b3ba2d0910c416f"; + sha512.doc = "53dd4fff2fbb7044436f37e8a2baf48877699db4f99b92a701d10c0230439b00b48ee09051839efe4392abdb4335c3998d92d6239802c765bde4aa2df3d34ab6"; + hasRunfiles = true; + license = [ "free" ]; + }; + germkorr = { + revision = 15878; + shortdesc = "Change kerning for German quotation marks"; + stripPrefix = 0; + sha512.run = "6819a79268da2704a3fa6baab74be48ccd591ba998a0b012d323cb0149273deba6298a92629f0d19c19725ef0b41db9dd28adf9bb898c1c637038f9c22ad4b16"; + sha512.doc = "ab5362e069674c2c53709bc776be9fcbcfd3e56226a8fa7b9230c2f4ccb6fb74bba20485362f48130c153d81df838281620a628671c202cd60a52bf8ab5b89cd"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + geschichtsfrkl = { + revision = 42121; + shortdesc = "BibLaTeX style for historians"; + stripPrefix = 0; + sha512.run = "24cad33dfcbdb8ab91a80509771bd130ea6682a14fea5510ea202af73155653471deab91abb43a302b9717c252475db58135ad465f28509adae5d8583bf98e0b"; + sha512.doc = "6d1097dd0047c029100358bd3161f2ca515a09cf9a62b2633d4797059688bd5c30e4eab11c31081faeefacf892415c5d9a4985d20245ea9cf79b4197925ed2e7"; + sha512.source = "28c6a7181bb91d32ddcdbed7dd9824c8a63a351acc39f4c2e60ca507630fc23b0afe62380a64618d882fe742388d5537a435dc0b6738ba8d5288c5f2894a4064"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + getfiledate = { + revision = 16189; + shortdesc = "Find the date of last modification of a file"; + stripPrefix = 0; + sha512.run = "017b3ad95801da2788f2c5040225c6a8a2ac6d005c1d68d9eba0be061dfc9fa6f088a0279a75d25bea8ba380e4a92cfbd9b6a6b812d08cd2f86de097f7974fb7"; + sha512.doc = "490daffa0b0b28c9c02d745d8de50f22395f6ae773e07f6e826a8ddaff0d38f9ee48e822953e9642e46be26084ec2919bcac76c388cb3f42965f1b662e4e43a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + getitems = { + revision = 39365; + shortdesc = "Gathering items from a list-like environment"; + stripPrefix = 0; + sha512.run = "8797c7e70f1c81330b68b6c386116b0caf2c350a2b75724d796f0ab7380a2ea4cb2ae293ac3e6b941887b30faa2b73775c2bfce7c674ee98c4256a23231443b0"; + sha512.doc = "95302dae67f3193dc3d52b4e5724584ee066eee1dbba30b1233faa0c65fc568f932805b18b8054165760a2b655b486e7f3115d3b37be780f8f5a7220f2f924fc"; + sha512.source = "1bc8b4c2b75c5cf43e18a510e5e479a7109ac440266e0dc7d748d6ef391280d81f72a07f6bfc518c6c0c313b7c8e1e11cfe9ccaae33540e1b48988414bef5ad1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + getmap = { + revision = 50589; + shortdesc = "Download OpenStreetMap maps for use in documents"; + sha512.run = "e5287152442820e20087b45c50a750af621e71e2175cd6790231d81e1f338e50aa75f29d9fbc31c2e5802229c8f15c4e0c7769d0513f1d1b0bafc96a8a3b120f"; + sha512.doc = "bb55c60ec958182aaaa6dfc292a06fbad8a0ebdcb56a6799f1358ad2009bcb72b06611672219c5e9bd6d7cb4db76c4fa030be5e06f9bb38d04fa6744f8bca330"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "1.11"; + }; + getmap.binfiles = [ "getmapdl" ]; + getoptk = { + revision = 23567; + shortdesc = "Define macros with sophisticated options"; + stripPrefix = 0; + sha512.run = "6a2e543d0997c52155807d0d2641af9714cb09531286a58bcb2d5fec0e70c694edb7d603a250281a641610d1c39495d5f93417da5cfea7a86da1fd53a98ef77f"; + sha512.doc = "fba54e8acd4f494c4e859c8705cb97923e477ed909720adb8c4735c527c3b13799ad74ac1700099bfa282144f2b38358b890bc52d4ae4a9e16699c2d0e10619c"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + gettitlestring = { + revision = 53170; + shortdesc = "Clean up title references"; + stripPrefix = 0; + sha512.run = "101ad92c2fba5c43321d8e12754190e09b0442508799dbb6bac23d5cbe96c470425a4cc10a28441408ac5a1c406e18aab7567f2464e48c2692fa38af1e23a16f"; + sha512.doc = "f9e33fbe89df368c4c5dfd855f2fc0fa8c4d1eec5c0ab925b0a28b9f021fd2d88521895233d12783a023e40d70b05a0e849d4551f79fd4b8d0af72fb60a1af32"; + sha512.source = "9bddc79e0f839a21ebb76e21e20ba5a26971f4192ebc2209468a780a15e5e5f61a328df5f033c115452751a31d1e6dc2e6e238097d2cbdbffa33f56ca420b602"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + gfdl = { + revision = 65415; + shortdesc = "Support for using GFDL in LaTeX"; + stripPrefix = 0; + sha512.run = "d93bba6171e3179b559a26ce246b6de423c06d0ec4e360e33b4d140be07645b90aea070d41d988d0ddb22f6686789e96d9df5e3f1c8ff8cc23829b7be0d015db"; + sha512.doc = "24034eb02baab28efccb6569425229f6e2dd4a0254c926e9153eb6e8802d0cd18d9af7ff4229dc1f8b39fb5dddff767b33e026b12a3443cb3c62f1f0f5e64ade"; + sha512.source = "be816d4aa6547ae5e48201b5ec61618f2868422f2a3bb87422543ef4faa1461b8b7368a1dee29d36881e0e051b7d684ad90f5dac4b5f43dda70b5e11540c5b76"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "0.1"; + }; + gfnotation = { + revision = 37156; + shortdesc = "Typeset Gottlob Frege's notation in plain TeX"; + stripPrefix = 0; + sha512.run = "4f99442eacf28ea13cd98ee4bbe981b95ae9d849e6bf2682cac2305fd793f6e9f5e4211362385890956fdb24ef03748e9cb0184c7ba9ed89e7985b2caa3e2da2"; + sha512.doc = "b65d173c11400a7681510cd837ac6e8ebf65a458327bfdee140013d49a0c6fcc339f6c45d4b4ee918585acaf785c12e66b3df5f73f01a1f2d8c5b8db58b9c47e"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2.9"; + }; + gfsartemisia = { + revision = 19469; + shortdesc = "A modern Greek font design"; + stripPrefix = 0; + fontMaps = [ "Map gfsartemisia.map" ]; + sha512.run = "28cb811a30c06bd6390b9268dd2a7a4dadcb2fa9d426d9461af1ba5593b2c419ed1c7886c3aef9bdbb0f1fea3d6bf127ff6088a6b2c2048dcccfb21c2a06a5ee"; + sha512.doc = "9f2efd76c243177240f237f7232fc87eb33d7ea1177a7bfdf7d506077e19c40d3fd923a960595c46f50fa19979598bd06a1865cae8794d45f91da1d6a9a60a7b"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + gfsbaskerville = { + revision = 19440; + shortdesc = "A Greek font, from one such by Baskerville"; + stripPrefix = 0; + fontMaps = [ "Map gfsbaskerville.map" ]; + sha512.run = "b545ec586b3bdfe3da2cabaa959ceeeb4ff513b48024575b1b5e3c57bb2d10a0b4e2cd7507726275eed0826dabf03d05c20eb9d5ec341aaedc0313264214ef78"; + sha512.doc = "a45ed2b35774755a6558431f784faad4bbd63aa81ad5d80c3cfe3f7726604aea3e4de2baa72bb27a4e2271e9bfe180c8963d06b880a0efd2dc5f7789dcabb51b"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + gfsbodoni = { + revision = 28484; + shortdesc = "A Greek and Latin font based on Bodoni"; + stripPrefix = 0; + fontMaps = [ "Map gfsbodoni.map" ]; + sha512.run = "e01cca38176330bdc0a4b523bd2bd4f73a497d90a34682d29920e145d11ea099f163fa08470c79e10a27a137a5901d7da9db54e461667af61c687adca1960249"; + sha512.doc = "c70b1a32e945d82e50b8a37319ee2bf63d4800b381f317168fd945311485cf6c41c7a3112e89457f4ee40bd29736accf681bd61494120e3d41f0c8fb28ad466a"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.01"; + }; + gfscomplutum = { + revision = 19469; + shortdesc = "A Greek font with a long history"; + stripPrefix = 0; + fontMaps = [ "Map gfscomplutum.map" ]; + sha512.run = "4013ef92910c3c1145708afa5a9ff13cfb0aae05e6b225c56c98090ea7cd223799e73212982312a14cf504a355dddce08e3364df8c046dfe462d07429cfa617d"; + sha512.doc = "5854b000522120f6a1b065300943fd8aebcd75f57da15d667616a3706d35ffa35cac0422712d0b008dc2abf2b9deceb0248fc044be68f893f6ad0eefcd50b316"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.0"; + }; + gfsdidot = { + revision = 69112; + shortdesc = "A Greek font based on Didot's work"; + stripPrefix = 0; + fontMaps = [ "Map gfsdidot.map" ]; + sha512.run = "436a8cb4ea88663ff3358d6991fce9364f197027797903eb1b5c74ec0a857059579f0a58597ca6427c1651bf89440d7b7c8965e79fc668ecf444dbcc9f7ed4a3"; + sha512.doc = "29b49271f62496e6537e84301b361d372b24cf208365d97f3ac1d6d5b82fae84ff82954ad45e87201eee0df9dfc58f3486049e219480d20add06e9eef934f17e"; + hasRunfiles = true; + license = [ "free" ]; + }; + gfsdidotclassic = { + revision = 52778; + shortdesc = "The classic version of GFSDidot"; + stripPrefix = 0; + sha512.run = "7b07a974f5447917d0a10a964011f2ed57db2dc9155384117310eadbe1dd05067dea6d617a598545713fb9250bda4241b0b2d5bdd84be4fb8c994d8d8c4e5ac4"; + sha512.doc = "3256c1af2f7b0d15625eb3a7250e15b9645991b3a7408d11afc77aa65bb067cfc3682fac334a61d67f894468b3a14c21e694e4b7445a01ce88203af06a269031"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "001.001"; + }; + gfsneohellenic = { + revision = 63944; + shortdesc = "A font in the Neo-Hellenic style"; + stripPrefix = 0; + fontMaps = [ "Map gfsneohellenic.map" ]; + sha512.run = "7290de85142975c61b28cc8d3e5919805590e2be5f5b442f0c371c393f92012ef6b00997bbac1aa1fb63914578e99eb5e6b26f6af8f51cb5ec7f4c53ede51fd6"; + sha512.doc = "231ea0eb57834e5b781cc3e8f49a85e2564756abe3812a432212fa7e85468117a1d80d6af5db8cec754eb1996d3b9716c12c403b1865d60b18660f454a2323b8"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.02"; + }; + gfsneohellenicmath = { + revision = 63928; + shortdesc = "A math font in the Neo-Hellenic style"; + stripPrefix = 0; + sha512.run = "17e81da77241b3dcf6727ee8e954d9ea24a59a235d8e454b77204f99bec343d020803790ce6ce82a22226ef48ff29e65d84b6ec90e44286addd3ca727e8fbf1c"; + sha512.doc = "efb0faa6617a402b6d840d9f20303a8acaf4140c60b8de285dbbb9794dc6212715cec6d1fd2cdee65aaf348ed1184ad66c480e00843801203f47fd3a4058250a"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.02"; + }; + gfsporson = { + revision = 18651; + shortdesc = "A Greek font, originally from Porson"; + stripPrefix = 0; + fontMaps = [ "Map gfsporson.map" ]; + sha512.run = "f52d6cd8d0b674771dd56a5d2974fd3edd8b4685bb201489e578c62d1e31b5dcb6f2cb2e9b05702ec439ec7f0b35740e291d3a92de53b75870fd791858f8a474"; + sha512.doc = "3dbcafd00a88537db9e27aece276df08da805b59076d5e65395a4752d8ce57a794f23508238e96ec26b8d7e6d25e11992c2a567e44ca2f930bc44b9dc980202c"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.01"; + }; + gfssolomos = { + revision = 18651; + shortdesc = "A Greek-alphabet font"; + stripPrefix = 0; + fontMaps = [ "Map gfssolomos.map" ]; + sha512.run = "6e6ac03cf7ee20accfb67855b3dce136e3caa2466fce760adef0a2c1633e0a170543cf861a6a07a0c80344ab026dc2f74a35c5543ea92a53f7ce8a1042f778b7"; + sha512.doc = "67640d1a95ad7ec43d7df407916cde264c5460cf400011cf0cdb3dc4caffabba370f2fc15ae945e20b6a9bb6623645f6ffe80034a781cdeb11c400bd23985e3b"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.0"; + }; + ghab = { + revision = 29803; + shortdesc = "Typeset ghab boxes in LaTeX"; + stripPrefix = 0; + sha512.run = "7e919cbb0c84fe337dd05c749a3288990e750ff0aeaf119736108463a1684a18a66be94811a31156f951c871b2f073627914629756b06e747f3220d2ce08950f"; + sha512.doc = "2cb7dbf5b43130b122618c50c18e513dc0ee0ce267cdfa6e710451d1fa7fce8965617d74d48748241321948ae8c5eb9cfa4945df146ed8e5d476d0fc5caaf204"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + ghsystem = { + revision = 53822; + shortdesc = "Globally harmonised system of chemical (etc) naming"; + stripPrefix = 0; + sha512.run = "42f94adda3268ce20f664113211d3c32e7ee005db053f3daecf72d381dd4c4cc2e78610b821cd4b43c4543610bc66170513c4fd9357445977a8a2ffc6bf140f2"; + sha512.doc = "d2f1f42177ea820d209e9574def8efc0dcf9fac0c73ce1c9eeaace7bc0b25fc470ff7265ca8a4f42f6482dba61d7d764b2171268c168aa7eb154bb6f9672f52a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.8c"; + }; + gillcm = { + revision = 19878; + shortdesc = "Alternative unslanted italic Computer Modern fonts"; + stripPrefix = 0; + sha512.run = "37c8141eac6b1636292479299f7df6b3dc128addf8f7ba680cef2c75d2f7ab04686134b243a86168c54052d4dcbc33f13c13a6629d7c98d3908e4cce5fb53f06"; + sha512.doc = "55e02d36c12bd12932c2d220f892852dd1c8c947cdea09d058ad38e5e513dfb684e75a8ecf07f5711200f942ea7732519c739866458c330ee271bf45af32ed45"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.1"; + }; + gillius = { + revision = 64865; + shortdesc = "Gillius fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map gillius.map" ]; + sha512.run = "f2ce20c1650588af9f446ffc6d69835e4e970def915e3912ef36ed8d065d717ccbeb125a783768c360328ba6d44e15f954348957d774dec8eb3b84f4b8e00406"; + sha512.doc = "df8f143a6a80e9e5038744744b649fc26d042672eca7080fc8493a965ef4e3bcfb714735e83ae9a3bb500e3a298bc9bc9d940ff343caaed4ebfb8bf8d8101fb8"; + hasRunfiles = true; + license = [ + "gpl2Plus" + "lppl13c" + ]; + }; + gincltex = { + revision = 64967; + shortdesc = "Include TeX files as graphics (.tex support for \includegraphics)"; + stripPrefix = 0; + sha512.run = "2137967697765b1167f36a858d2eda778b43ff1d681ec0d8af7963d2ab4a92448c6c1ad6933975afcc211d301cf168528e7ded7c3114c4b5ec580f42d8a7b664"; + sha512.doc = "86ee14069c5522d7c0713a532627bf29e8cf71ec4c86184377cdcd8a73dcf0f034be9e92b8ff7c2caef8310f968c956d712f3281eb6e4d36e83a3464149489b9"; + sha512.source = "ea7bb92e9f71606b39374bf43704187bd627ffa20e686d2ca09a8ea4c825e5cc363cf7cfb2a6811df7c82ff8773aa058362b9103052646e7ef5febf690abad22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + gindex = { + revision = 52311; + shortdesc = "Formatting indexes"; + stripPrefix = 0; + sha512.run = "b65317c570c923c7b6b84c2923122d844f895657267b694b46fed2d505348833a57700e4da93cde3d5a81e7589a456eea179a455dacb7c9324e0f65d9c718c9b"; + sha512.doc = "2a3ed388473c669874b0474b9b1f45c60e2efd69e8c589a9f9086cecaeb5f1e3192fbb949c3d0b485422c7f6b49075d3db4cb8ba03bbdde0f5f77089331f770c"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2"; + }; + ginpenc = { + revision = 24980; + shortdesc = "Modification of inputenc for German"; + stripPrefix = 0; + sha512.run = "20ea4e42fa07c21d8f2ae5d4419e6382141e6babca0b89b508744ea22d6310052f2c46e6ba0ad32b06f5623daee07a16eeaaa98378c9ad04dacb78634b9a583d"; + sha512.doc = "4e343ab469e2445f6a2fd5297ae38d1cb42d4db1a3c438885815a2e4c5d367bfae3226a628e11152826fc5e4fd28a9c4bc5c393acea550c5ab33cd854d4f3e8e"; + sha512.source = "b28077cb4b369567952e77198cb77f4edad02f0949d4f46836ae59d75a2f113f64446fba83a88e6155e9356797577fea72c79244808d575359eb7ca10d029940"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + git-latexdiff = { + revision = 54732; + shortdesc = "Call latexdiff on two Git revisions of a file"; + sha512.run = "74077b3dd1a91a734af6d668b309f804dc58a282393d88d8d5d74a5e6fc73c197e49b462369f829cc7151e20aaf8085c0587428ed61ce7957a1ef173d92c5481"; + sha512.doc = "bfda354f808c1f94dfac207d1526409a160b89292e44541930dac34383e3ffec9ce63d04db041ea5ac529e1e01fdc80c4c64cd43e8cdc14aac974094732d6fe8"; + hasManpages = true; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "1.6.0"; + }; + git-latexdiff.binfiles = [ "git-latexdiff" ]; + gitfile-info = { + revision = 51928; + shortdesc = "Get git metadata for a specific file"; + stripPrefix = 0; + sha512.run = "7d3577b55f0154dd9c0a1aff3d46741631fc561b4c730a4f55a84dff361e6c27f327979638946d89ceb35370bb4051b1471481e6bd761fbed66757bc613abb2c"; + sha512.doc = "ac2083dea1ae4373ee2482f41f9c66ab93a2b66699fa01449c712c219ec0c53635230b062ba58b4107eaf7fb54fb7eed76c5b9346ffc60f6f35b18a72ed0a08e"; + sha512.source = "7b15a31e0ad37c75fc1e64079edb4ffe93d9e9a71fba7db13bb9ca7b68fa8dda0244fc0da473ecff8456459bb3f6f52e3edec2ac8513433d03ab107715ba5258"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + gitinfo = { + revision = 34049; + shortdesc = "Access metadata from the git distributed version control system"; + stripPrefix = 0; + sha512.run = "099bcb4970827cd3309f88278d8ed993856d5ebdabb22c3a3f558787bc6cae46378f7a92b88c5cbaeef496f40a8adf1e0740e685d667ba2376b5852a12af9e5b"; + sha512.doc = "c5a9c948ad8cf8f2bc3cc134d60165ca4fc79117a6597a5981b39e26e25f4334f479f2bc1a0e22c52fc48794224115c0c170612c8088a414544d9f51b18421f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + gitinfo-lua = { + revision = 70117; + shortdesc = "Display git project information in your LaTeX projects"; + stripPrefix = 0; + sha512.run = "cbc201f194a95f27ed11a12f555b8296dc68b4b0895ec2eec65d4f22dbc005716bfb92f46b342acddf023475a9eb7571ce3410efca50755589b6513e025cab8b"; + sha512.doc = "b5b284e2d6abc36e97aab127592c6c928d737b8d94178201191905b7179786cc6a5520364d1ce0ff92551de5ecf89aafc4ed336b145591b747d43d6380bf8815"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + gitinfo2 = { + revision = 38913; + shortdesc = "Access metadata from the git distributed version control system"; + stripPrefix = 0; + sha512.run = "7dd68c7b1d5ea49dcaae8ba1a1582676617bcfc6f5c6ba34eb1c62e60ea5b8ac3a50841a93394b640e8a79c3cfe447858fdd1630e4095683958f8d36439a84ca"; + sha512.doc = "872b7fa8e0c97e4f6e0e1989b7c45507773b4f96cd56f7aa7064376b520d8f2beb4acfe71a21e295a8a457b86fcf7521809fa59ad02875466cf426fa09bd8aa9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.7"; + }; + gitlog = { + revision = 38932; + shortdesc = "Typesetting git changelogs"; + stripPrefix = 0; + sha512.run = "2fc9830dd1c43cf0c32fd743c9fa001287f5753dea38d8491af43803a1d98a0e09cd05641484fd2f7c47e68c8c6919c2eb9fc298ebd761166eb5b77c54d7f00d"; + sha512.doc = "c1bc22cdf9b23baec98ddba49784a09c97e9e5f8c1a471dc39b3d58d67bb3ad2559f25766debeaf613b3c4e8d8bb4b22244de07d09e957ff09a94c0254fd3e64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.beta"; + }; + gitstatus = { + revision = 64662; + shortdesc = "Include Git information in the document as watermark or via variables"; + stripPrefix = 0; + sha512.run = "153b9df6e1629d42a1c96a4f6c4c25dbe180db8976a102d633cd54ac36b75c1650328f8c5039ebb10c7927f7d6717a9260f39b7de6c0f9f9f37fb6fcfa9dffad"; + sha512.doc = "e7741e738bafe379f71bd77aaa9b2a33c26b5da13f659181eddab01fcf8209ffbd0604d0b374368b7d814ca9608503f9e4004730871845e8f7b491e40bcb79f3"; + sha512.source = "23ab1b1fe293fc842eb9ed3306e2b70d2fae8ba62178b64b29872f933bdd8f80b0991358fbd6aadfa194185790632acf2ec5249ef2fa9d490913072ba1b0660a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + gitver = { + revision = 63920; + shortdesc = "Get the current git hash of a project and typeset it in the document"; + stripPrefix = 0; + sha512.run = "c2a82b062f130225f36c66827deead41ad644512160351e216fd047b6f4bde03ee4798e5a753f319ce83b74cfe0ada5a9346b1ab12ee1058ce073ba114ed890f"; + sha512.doc = "08f5ad70d40a3eab79a260958baa2e4d75872a93a33ac3398ad54049231693d3cb4f659ea91e3a53af8c19fbf6b8ca537c66f907b4592a45b155d895471cba63"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + globalvals = { + revision = 49962; + shortdesc = "Declare global variables"; + stripPrefix = 0; + sha512.run = "815a1aff9e889313854962e44c1c09a41713f4efae915a1d1a65a3f0777a4c36e9987c588c0d6f2f1ea91cfed6c28ffbe045a842ad71fd6babc91ae1bb16aa5f"; + sha512.doc = "36a8b35ad90d9fb797a03b48f8cf818c9514ffe6e7c24be157e04455559d3004ac6011e2dbd16a4c478105b39ec0d2597f74e484a1913bcb180a7209b9191fb3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + glosmathtools = { + revision = 55920; + shortdesc = "Mathematical nomenclature tools based on the glossaries package"; + stripPrefix = 0; + sha512.run = "38d5eb1cc7337e81a1d824fcd3d6820928e06b421e1bd1141bc4cd859a32aaa1a10062e6a7a2512687245996c8848b42720085271c1cf6a24957bbe96ff824e9"; + sha512.doc = "511c901bf123984727ccf8bc4e2449738a66fe866418f23b923391d30f6ad46ac260b5684b73b89616c07cff9bec0475e3553a70ba608c58873751d9a6dcbed2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + gloss = { + revision = 15878; + shortdesc = "Create glossaries using BibTeX"; + stripPrefix = 0; + sha512.run = "399bc1b809c01fd60934e28834dd7d6f263aded75bbede67507a5dc7bdbcdef725248b9a10d4ebf3cfaa981be33fd35a4ade78eb20b2b23cbf851376ad5e58f8"; + sha512.doc = "871760a86ffb9d50cd480e2cd234a9873de48ce620f57a6538b36b0c1fd5e7f11342fa435e147ee1fb47ed08b8e855eba8168c8b755ed67ed7fffcb8f0e0ac86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.2"; + }; + gloss-occitan = { + revision = 52593; + shortdesc = "Polyglossia support for Occitan"; + stripPrefix = 0; + sha512.run = "ee68a2f0c41dac79d00a4103804ad735b5bdc78bad660d5933e61e88290a2dea17a695ea45129a672cdb301e1c89e4fc319173df1fbfd87f944abbe46f7f1dd0"; + sha512.doc = "1325b4c8c0ff8c1e53d27b5696da419f99852bd6c272176bab4e03f91bb6a715de51d24317b9cec1af50ee0ae2b34c03c51afe9cedb8903a1e8f74bbee3cc06f"; + sha512.source = "043c132580baf8e66ac76a01312706996902c448cbd81f596db732cbb90d66be64d8a1f673275edaf11031d1f878587270663bba7db32da37360ed024e210280"; + license = [ "lppl13c" ]; + version = "0.1"; + }; + glossaries = { + revision = 68437; + shortdesc = "Create glossaries and lists of acronyms"; + deps = [ + "amsmath" + "datatool" + "etoolbox" + "mfirstuc" + "tracklang" + "xfor" + "xkeyval" + ]; + sha512.run = "bb81a95a1e379ec87b569d94ebf08f83823f825a70138a3770a3d1236424b976a98cd1265e7d68771460e6e96827761d697ddf0dbe48872c802414236e0065ba"; + sha512.doc = "d11140ef1a6933170e59d497c57723e62d7ba7abadcbd9d3ee91e50171101d3e0740b0853da803bc7b9f56f86d7fc6cfedbe985e5e341cb775e850ee7c8ccd40"; + hasManpages = true; + sha512.source = "01ebc5d8d91a666a2693a039305103a98de9b2c7a958a40be04275e948664b3c5dd4818e4bb686a3a2a681b0ee38360a43fa795ac4537f8d083a2637ccd3df72"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "4.53"; + }; + glossaries-danish = { + revision = 35665; + shortdesc = "Danish language module for glossaries package"; + stripPrefix = 0; + sha512.run = "d9551aaa01e6f6720406a58f869048fbeac30fd629edd7fcdef657525dd1f7fb3faa2127cd81fb777d339ae65a1015e9cea7e5fe26a7de10db3a387152aaf0b3"; + sha512.doc = "8e6097ced6686f3f5f0162c7deb11de9acfd55ca152c8ba3d4eafe155f645f33ec32dc495e3b4f4832e33300cd63d2d4ba56d018177f96426ee72e14cc60e230"; + sha512.source = "f8a52fad43c5a95989ed8da27ad5a15da56e5cb2b08797bd70879327a512d9bad44fd217270940ca1ac541a880bb939b9e360fe5a686b0b25d779baa1bd01de6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-dutch = { + revision = 35685; + shortdesc = "Dutch language module for glossaries package"; + stripPrefix = 0; + sha512.run = "0e3d2607caa6032c8c768c1bd7c84808f6b836d6c167b1e0c720b57c3033c175269663f6e21edc248676bb2b73142c20c85cb6c3011586cf17d876e540a435dc"; + sha512.doc = "c2d6ce929bb9e7482413886967beb598b6cfb4a2f84d5a2e5edd7039b94e397ba9ad2e63954178d6fae91c5e3aeb080a68ed466b609ba0adddf98003f570cfd1"; + sha512.source = "5088bafba48d95e4392a5891ba3566d37a708cc7ed002243995d67ad6f6cd1eed19f6a572e5e3234c8e4ce58e815b4cc79e97d2644bc5341911388f7b80030aa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + glossaries-english = { + revision = 35665; + shortdesc = "English language module for glossaries package"; + stripPrefix = 0; + sha512.run = "f62c43c9cb5a10fe5e364e6aa4ca500aae8b89e71f6bc80831a8c8211ca640f3631f011735ee5c82278b188bf896360b69502da2128e1db1287d24e44805ef97"; + sha512.doc = "40c30888541114f5594403ddf251f0c209daa57c6b6f2d3d75b4a51416bf3011bea70cdc5f461e80a1e148181d6ecc2b2d7c891a7c75b1c577a72e5ee8ddc8e9"; + sha512.source = "4a1d9cbf515c52d8f8a787970bf5537f25d6de7a66c3a1819cc5dec05df0f004aaac3734dba6ef813473db0cd5b08db4ddebca8dbc8674c2582abc7e9e85524a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-estonian = { + revision = 49928; + shortdesc = "Estonian language module for glossaries package"; + stripPrefix = 0; + sha512.run = "48eac96868bbeb636bc8d4352cbc1959829daab75716b3dea2ef98d98e388a2668a2ea1e35cc46f53e9ee030aa07dcef3e528f056f59d49883f0a00380785bcc"; + sha512.doc = "5f957f53acaf6b56e338b606843cfa2ddd16dccef6bd2c74844e514c157ddbc3c5c24168cbe28c67894afab8d115460fd497de91f0142bbec3d1987d5889925f"; + sha512.source = "f2d2ddecc5a338f844a9b98d50e636d69d31866e723e3aa261ddc5ac2d8349d01e76afdf9cc6b7a4b4d96dadee78ea6933c0d1c69d1196f11770c92cef356fb2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-extra = { + revision = 68409; + shortdesc = "An extension to the glossaries package"; + stripPrefix = 0; + sha512.run = "65f5a9e3aea0c8f419c530a9b989b0296830347cd0f1ad4deb0d879ac82970d546be4a907f90c917e35b7197dfa6b16fa6f1b4318a2b7aae74bbe924580fd0dc"; + sha512.doc = "f90103cdaae2e6ba00cfdc82865a4beeab9f76d364579396b8710d81a14a71cbbd6168a307889664b0a289a34f9f7f9c1c69f449b09e90669184a0159c8aaf90"; + sha512.source = "3eaf0e0f29949277c66928fb0952cba6e568d700c118e32e7045628da340bfa12aad6b1b6c794c9dd79d73bdd7e0e120a4ba2418e7390115a611696520e39488"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.53"; + }; + glossaries-finnish = { + revision = 54080; + shortdesc = "Finnish language module for glossaries package"; + stripPrefix = 0; + sha512.run = "ad6109c67ecfc88da631b3f42aa91b95720619599721a6c6d87b4d8a668cdcfd5bdedd333a43bfff663f5f26df64f4fd8268054dc2dca089ad34177e6e5b9078"; + sha512.doc = "ddc0047503a68316c3d2e18d22c7ebb861aacbf649366a60ee186ff31ba79846b461d3fde029bb5b0a3ce8f07ef25b89bc46898047176160815570f68b022b10"; + sha512.source = "0be0af63020fe9bcde5ef0f3b832d5fe90325de0412f32b3c0f34b6b00126bd2b139f0b3be376d54a41794447dd38564fd248ce30fc08f68a607fc65daa5d503"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-french = { + revision = 42873; + shortdesc = "French language module for glossaries package"; + stripPrefix = 0; + sha512.run = "8516e94f69248238b0e94099b67c9807f02587e934e6fd2c9ef23befcfac783297cc4df71b8e41be77fdab85abcb4103435c3fd24584b46a3b473fc4489d5d82"; + sha512.doc = "c26b40d499199c15c875cdca901a3168ab72e4009a04e92f3b1ae9010d7912484b1185453d117154eb5b9e63358b36cd58aeff3d0c4727945a343be4c3c2ede0"; + sha512.source = "9c6b0b1d851c88c757e87c8b29b2cfaa3886efb00433a9c3744e175fd4dfd4433de3b80b9d70df89f879536b1058ddb1baeae41c5cdfc6c47377256df8e63882"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + glossaries-german = { + revision = 35665; + shortdesc = "German language module for glossaries package"; + stripPrefix = 0; + sha512.run = "e0b8e18dbe4d4e503c144be2406b99b56ef0a48847b4044665ac178dffc59d2b8ea95873ee5f2e64fcfb8379a44ee8761ee84ae44fddf996d1029372d5185d58"; + sha512.doc = "0ad0d7d8f41e52613d049fe3ec6e48d5ceb77e768c7b9ee6b3b0978eeebe6abfc803df44bbb7f90b4e487de074a2cc174224ab0e89d5fe7bc896adff495abfc6"; + sha512.source = "7d34e603e6c667fad268f4d16edd7b066d3f6fb34739ae5e7620cfb2024fb6c7882862845055205d3a3c14f2c60bb3b304cbb1871958c17427107cc245e10bcd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-irish = { + revision = 35665; + shortdesc = "Irish language module for glossaries package"; + stripPrefix = 0; + sha512.run = "b59add658270f734a8fcb70bae29ac210c84472f0f7ded62baa647bdbdbcba2e63dab71aca6f8c524eae9e3d80bfa7bf96bef45bef7039c3eeff738055a93acf"; + sha512.doc = "9ce14ee4ca3ac1eed10f8c356fd6561f7ac43abcde46009a6d43245395985f045e9ecb83a38a190ea3a5cabf462a233967993bcaa40211cd7e64791dc2a583a5"; + sha512.source = "cdc7332678be3abc86804b9b674aab88f087791c8418e6273cc07f2c2b4bc8316ad21a3421af9ca2f87f76a3ce42a6fc5e7343e006120dcbe1c7cb14901d7ff9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-italian = { + revision = 35665; + shortdesc = "Italian language module for glossaries package"; + stripPrefix = 0; + sha512.run = "aeeeb9fcd98e55ed64c918276e0bf0b25489538da80f96030a85225635e7e0ca3d1c93c65aba8b97b486f086a50504c257ba478bdba28de92058053dcafe323b"; + sha512.doc = "f1ee5a84c9a67b88087f657c259a3700fcd1fa4ad8c765cfae11cde2d54c4a71e69dc57bf626ead0d2cf1057750e284a31443c72e994e37a62715548fa9dbadd"; + sha512.source = "9a014922abb8be849e97660f2aabff49413a56c06a93f5a3fb0cb89f972b54fc371bff8dfd6a758196d941efbc9281c5cab3fcf047901ab08e296d55e529206a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-magyar = { + revision = 35665; + shortdesc = "Magyar language module for glossaries package"; + stripPrefix = 0; + sha512.run = "66847635e1f00af9191cef210c19ed154dc1e5405ef0d2ad38485a913626ab9cd93b7c35395feedefcc04bfd1b46112e6410154c2ff26be51553619326d1e55e"; + sha512.doc = "a6bc19bf794943b1b15c8cbece363f644671f912bb71d8b2f0a9e75d05886ae4af4846c78cd060099bb78872e4d7991a9a3274fd1343a07bf73c3ba1d475241a"; + sha512.source = "e0e90ed2fb01df98b20a7807a0dc1155b108c35788ea952f753ee9033d2c7e516086c6380b8617411392198c5469b57b96aa35f8903e44ce44d30f5758acb75f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-norsk = { + revision = 67141; + shortdesc = "Norsk Bokmal language module for the glossaries Package"; + stripPrefix = 0; + sha512.run = "8e718082194eabed6a4448b89a703a3b63873286899df02824cb4582dd7fea0cf0c1496aff95139b8a4f0770d6d49c5257ca3db14b3581eb529f2a7e95858308"; + sha512.doc = "fac57f6cecf17f22de50fd360e4069d2c0eb8dc3283e00ef1a46d86827a411e15e3a2228db08165b158d384448aaf6beeeeacace05390c428bbfba3bff553ae8"; + sha512.source = "f90b767ec7d7a3ba384198942ca6502e33f6885cdf9cebfb00299e7909c10d70a4b5cab58dfd7b0a39f366b667a1ae0c1d3cc89ed91db415625ea0b2b0367fb3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-nynorsk = { + revision = 67201; + shortdesc = "Nynorsk language module for the glossaries package"; + stripPrefix = 0; + sha512.run = "eab5020321d14af5af78a3449dd2b99333bec3e56014b00c5c7a1a4410c26ab715ee8d3631c5a19b4356af61ee1904650704c623b7d36f783424409481424dd2"; + sha512.doc = "e123e0024f750a28fb3778ca6e4880c070524837dcca5bdb628d0b32fa647c8b2a5595a76d436567caabbe88d309a1711d81d5bef1c33542206bd3c8e56f3e22"; + sha512.source = "ac2286ac8a06a40d0d15d5e4200c14d1c242ebb35c5e9d0c9a0138cbafcbde4f220798082dad3b521b33cdde9c569403fbf23066104daf1ffefb28078a9e0fb9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-polish = { + revision = 35665; + shortdesc = "Polish language module for glossaries package"; + stripPrefix = 0; + sha512.run = "7ad5a924f24acb052c16436f1d1eb198bf10c65ed3f77fb8911cc8b390cf286581a6d7ed409211993545d597a4dee4318e1d9b820dca6f831ca215986ec4a1cc"; + sha512.doc = "cad7bbadda3e690ce56c75d2dfc92b02576226cb31d848b0c96d6115d18d222a50e514a6c6b5db9907d6a0e542824e229b063a0cec49dd726246f3dc5d4b41ed"; + sha512.source = "5f7ba658feb54089405ed6a2fbab3a279143205438a9dbf6ba0a49d38245799cfac6369c48f9ea1e5eac2125cf475e26a3b31dd3745f283a21f3ed07aa8e64be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-portuges = { + revision = 36064; + shortdesc = "Portuges language module for glossaries package"; + stripPrefix = 0; + sha512.run = "64582081553f90a5000992f9db3f79aae7ddfedc6f128ddc09ec7878576b0e17a580f7c58515c2696e2c46ce1ba49c2cd756687c144d0134d91cb6c5e0506ec0"; + sha512.doc = "5f1692f14e2e4a596555cc426a556d069fcf710775d9a039f0143eddbafd0502e4f4a10e677a43589b1f91cddedba6dc9358b6015801e68f1b3d1e908e57dc09"; + sha512.source = "a7cb8046b8ce5d122f691170804acbcd39b5ae367cf66057d12fb24d58f142e2a4cf52a1039de9cd73a0f8c0bf851f07367c180eedb12923ab3398189de29652"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + glossaries-serbian = { + revision = 35665; + shortdesc = "Serbian language module for glossaries package"; + stripPrefix = 0; + sha512.run = "7360d33c1d3912802be171ecf8c218fad45719ee6dfa0596904484ebf9dcebcc0d926112e40fca76a196ec6081fafc4524c81b366008fd20207f8150dd82be29"; + sha512.doc = "1ce493838bdc59521728b6856d2cc2df26f44f3bcfcfc04d32fc20d3e416639b1420e1451acad8b8bb0597336a77b553ac599ec0c541527ab4d8e56765f07f3f"; + sha512.source = "9097fda313f9cd3e0db095c27fa534269e2460c6b5efa3e6681471590591b0931c52f28374ee33404ae0491297d1047dac8b7ce7a525a46b01873210b6242515"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-slovene = { + revision = 51211; + shortdesc = "Slovene language module for glossaries package"; + stripPrefix = 0; + sha512.run = "d569d73cbaad175549fe5d4000ac73b0fb65d00598dcab0f3a7c7b384682568d21016fb50d7dc6d2f6a1b250ef34c44c784eb99a1ff042bc3a52bf1c987e0b55"; + sha512.doc = "63d212e4c04dd7c7e663de230274b9111b8025839c8136313677d13e967a23870927a49220aa1efa0702422e8ad4cf683d1e5e09fcf291873d78bcb055e24003"; + sha512.source = "0e779292973bed40b3e077058aa99ceaa851ef516af7be57a21bd378492f77b87e65ca95f9f8fdbebc8818dc820108e598ce93efb8c6129560e0ed40f3633b48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries-spanish = { + revision = 35665; + shortdesc = "Spanish language module for glossaries package"; + stripPrefix = 0; + sha512.run = "6c92de5e24135a9c47d200f8f0c0ce7dff8a01f8c13bfb49d4090d1c195052559f75763c0ed68d633b40cf18bc89bc51e7b6c2aacdec05376a3c2e1d1b7a31b2"; + sha512.doc = "5fc58f64a7f54b50dcfd632e700805bab2f46a92b727853b147d9f7156b2fddd50a8fac08d0ac59bf5f89e0ecf1d5ddf7c22482e661f8a5e7b5568832168bd5c"; + sha512.source = "8bccb84eec75980107ed08b9f7e1ef0a595f7eb0c270ccbff77f4ea176fb5e17292b7d34d081ffdaa7d7be82fe40f71bbc30a65904892400536c51ea777475df"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + glossaries.binfiles = [ + "makeglossaries" + "makeglossaries-lite" + ]; + glyphlist = { + revision = 54074; + shortdesc = "Adobe Glyph List and TeX extensions"; + stripPrefix = 0; + sha512.run = "c050808623d162ffbfba8742c9aee6c92555717eb3ed0a0cfb0e3cd6696c4f6d940aa494582011e6d0becc3c5572ddccac2598ac8d521b58a323768272f9125a"; + hasRunfiles = true; + }; + gmdoc = { + revision = 21292; + shortdesc = "Documentation of LaTeX packages"; + stripPrefix = 0; + sha512.run = "cfe29d7bd5e7936c2a40292fe2518dcd79dbc105f08d3f0dfa11ebdc4693ff207a1b312e6160fad4c089bbe5012697bef1122a893b1d42d59fc39fa5c48d2ccf"; + sha512.doc = "68825a5fe89383d68b2829bc7e2fe230d717104a2ec56010bc7e67fcb14f9191bf47594cd0387b490debb5e752670048404a7985ab0b5dc039f4764d7926192e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.993"; + }; + gmdoc-enhance = { + revision = 15878; + shortdesc = "Some enhancements to the gmdoc package"; + stripPrefix = 0; + sha512.run = "481bed630ec444fda66a22656c2cdfcbd931a6743823c36f570ede09038ec4f219ecd1985243a4fc8d852f38512c6b369227f559d3874447144e0cd62d7949a7"; + sha512.doc = "0cbecac4ae6f70ed01a407a9e5fa388f2c142b7bf77d219429d6685bf7d7c6bb3f324694286e6fe49bc2eff287faba901b7eba44f8bde1894e8cb09527c289a8"; + sha512.source = "131afb02bafe204637f0cd1589db70584071d9f2480d2a11c03de4b0c14ed79500fe0e811a035a761ae4e6084d63a89e1dbcfd40edd24b4715db55d206f5206d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + gmiflink = { + revision = 15878; + shortdesc = "Simplify usage of \hypertarget and \hyperlink"; + stripPrefix = 0; + sha512.run = "768353fee03e36d5f13e5ea8ca2cf0925fb5dc3c847680325a0961b78a3ed6c30859bc57de7b927cd9e782f85539c97183687755c31738e1da3cc27a08f52387"; + sha512.doc = "4fea41151ea197efdacd9e5756043b87500af8445769d0d0f69560cb94decd4f097bcdd52041706ada9b1ee7826f3c56aa30db473c472b1c74553cebb5231072"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.97"; + }; + gmp = { + revision = 21691; + shortdesc = "Enable integration between MetaPost pictures and LaTeX"; + stripPrefix = 0; + sha512.run = "79ec2dd12610086eb5e7b582f5296fe7f1101c20b6d4edf10d47c5dbcdd506ff7c5f326af7600287a148031be060b3e8319d20d8267933b94b6c8a53e7753bf8"; + sha512.doc = "d3d4bdbc5b1c4618820247ec101e43c1c28b9e023e7613d5256456424fa95a54f23463ff1336f2586359a6078aa733de77cd7ccb892b367cdd00215ac7b67512"; + sha512.source = "13c602f735e86066e87231dd299680739af8ab526d55897c8a972b177ddda6a92277c3455208a11184281332d94f924b59dc845b51d7288c7c6ed750c45a3fc0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + gmutils = { + revision = 24287; + shortdesc = "Support macros for other packages"; + stripPrefix = 0; + sha512.run = "af0fa2ec7a3ce1414bf5d48d0bd8ce9de1b96b2bfa4f9c2babc6b27c52d11a7e5024bcf66938f3566cf6cf331b154f7eb4ca9d1cbe7109cde939829ea5be55a5"; + sha512.doc = "f1d6205f39f573b0c9b28f0ebca03b32e20e27c0be12adeb7eb23e12daf41a9590733270661aa29d6b8393dc87855f293437617cd8598f39082db8a33e9281ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.996"; + }; + gmverb = { + revision = 24288; + shortdesc = "A variant of LaTeX \verb, verbatim and shortvrb"; + stripPrefix = 0; + sha512.run = "18038202bca3493596925d9d7c65612434ccddde4b301134f1f57706e5d2978025fead598751e27a29d23f66ed12306e6092461aac1d9d921ce818b0a49cdfbd"; + sha512.doc = "6dfcc27b38639d4a97ed311bf7c6f1faeb1a023abc27d53e272f334b232a52aa0edc030b0c53d6587845da64097496696ceb03cbd6aa13c8ca5ac12c1772860c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.98"; + }; + gmverse = { + revision = 29803; + shortdesc = "A package for typesetting (short) poems"; + stripPrefix = 0; + sha512.run = "98692f781fead4dc292648153ca18a05d03f2c44174bce8b2f72e85fd1e98cb5ef0fb67c12f33dc982f1d04958873ea4e78f486fadb0c94544ecb66180ee52bf"; + sha512.doc = "7e37c0c2e8443aedd6462251f603e2eef9cbacc45d980d79bf42cdc64b7ab0a5d81f50ae65251c17115265c45e641a5930de640099f04dc8112155f68ce9adf0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.73"; + }; + gnu-freefont = { + revision = 68624; + shortdesc = "A Unicode font, with rather wide coverage"; + stripPrefix = 0; + sha512.run = "8889c49137ab983c2744a6ec26dab4c1cdf2de3e6809c620b5f2fed51d3025bdc018a9d85b93b85235053d6c0f672f8cb1c074e64b8cd971d53dba3535d212a7"; + sha512.doc = "232e8d0be31f77adbb62383da35e1e37d7b952cc2e6157d6eeb4cbb7d5e1dc0794d9fb3185e68073c5cb2980a3d5a6c447f878ea8cd45c7e2b806afdab21f8b5"; + sha512.source = "b81ca0245e9a7b1bdfb0745ade7cd9da0734a407dd8c5cf3859a7fa269b949f38a3ca18341b6ff0e1c3d99ca04282ed6dd9fe2923901a06506fc9bd6b677006e"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + }; + gnuplottex = { + revision = 54758; + shortdesc = "Embed Gnuplot commands in LaTeX documents"; + stripPrefix = 0; + sha512.run = "5bc237b3bfa3b31eb4d6d2fb63280ab89fa929b531ec83dec362947f49ad0316b9107abe3a876f79e4c5b283134c859e4908b300a592aa69fc7ea20b80af7fa9"; + sha512.doc = "c0e56811b5b4340c770d61ab605961bcdd5ab1abf72b9fcdb0c13c5e56a7481944aedbab70bf5d2daa90751528f0b9d7efd04a1453c08a4a6e40a46a41a1296d"; + sha512.source = "9db5deaac39afbef502db7cca3c28d0669803af3d927d6650ff39abe365c39be8dff8d7ae7537ab139fe747b7acd7e9fbc3a66dd30ac8495f30dff143dcbdb5e"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.9.5"; + }; + go = { + revision = 28628; + shortdesc = "Fonts and macros for typesetting go games"; + stripPrefix = 0; + sha512.run = "772772146ad95f2ebff85a2f3064615c26300a6a4050c1a6c7207d53e12b41477b0936b1c3d182f1c5db0aebd8499de19e0c23283c2bccf753addb2623dfd1be"; + sha512.doc = "c65516b11156d4fef5104a36cb361bf59be244555233cb5d9692892da06d3bdecd0b09866db136aec177a2bcbacfae6bb41c606f6b9da0329a00c614055905d0"; + sha512.source = "54cbaf16bd4a1a9bdd02b7811120cc82269be40e97853d94b1d526eef98e7df8e7ab8de2e7abcdd7e7db4c1f7fdf3d7355d511ed57c44c09643ea291e5b1c6d0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + gobble = { + revision = 64967; + shortdesc = "More gobble macros for PlainTeX and LaTeX"; + stripPrefix = 0; + sha512.run = "a3490d91422940763da75ce023ae032a3d3dffc7114c02edab40399a1ef11e5fb2c3f8f3bcf27ba5fc089b4d961bc3b99f45351f43eb2f4b31d6a425a9df40e5"; + sha512.doc = "cb1bf320485624448d9456c44056fd5c43792db4ef2a4211c37acbe54bc4be7a8eba0b7cd2a10446efd1591b631d6a3adef26b5440b1a79739af095a831b4300"; + sha512.source = "f430253f8b2534f1eb1a2be289f7356792ee12b5be6f0847715974e5ed0303cd12f437723e93cc00616a4b55d4874d43477ebcf62c5b03a038a6bc76d838a597"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + gofonts = { + revision = 64358; + shortdesc = "GoSans and GoMono fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map go.map" ]; + sha512.run = "c30a0fa1e76d0d287ed9296bb379bbb284873593f8136aa567e2573ec9d20310ad5d2ff993b00714fc472b6d365e2556c488278216c95898ca44f1f5b5c681f2"; + sha512.doc = "6a9d31a1d55f65d05922b71d9651198f9f9a8c6df754cdc93c4605fb6bc241b5c7cb56d0313a2681f60f4d92c45cbc42a9f61eba0c1eb1ba447a0363ff72593a"; + hasRunfiles = true; + license = [ + "free" + "lppl13c" + ]; + }; + gost = { + revision = 57616; + shortdesc = "BibTeX styles to format according to GOST"; + stripPrefix = 0; + sha512.run = "13bd2ec15fb4b61fa1a318092e27f9e94761af1fbb379e52c5143f10802a4bb77be35f152e33973d078e7e3d4554f89f66fc344a7efec9d5a1e0593f4eea0e5e"; + sha512.doc = "af9cbcd39b0ed78157040634ea949152f972a02e2b19c4ffc679decfc4d76b161b591ebe915298bdb6927bfdf70b6a6e80bd119f52355fceec8829b20909c4c5"; + sha512.source = "d375e1f17a9693ed87a840ea11157b5c496ad2495dfeb21bcf67e0b82ee6866ff7072c132c0bbadd5655ec50d791454d63290c32be04be63eccb11617ae58223"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2l"; + }; + gothic = { + revision = 49869; + shortdesc = "A collection of old German-style fonts"; + stripPrefix = 0; + sha512.run = "0c3fafd295fb087d3ace144df7253ff09fb3d79091dcd49003964a7ce57308cb4e86f3c3158a5e3d7e509e9958f77d5cc6da03fc41b585ec4ea397822ac29a7a"; + sha512.doc = "8f2495f3f9c72e5a5b01e17e1a9f80bae3ded97b902765dd2fa9b43ff87769a9ac2b972aa660344bcc8e29af3824985c49639477ee96213c0ee7d9d411e8ebad"; + sha512.source = "f6e600c736989ac81cde1fd51306ddb520e693b6a5ee8338c3413b5656aaacade8d4f1ca7aa316589c4d49fa8b96b598637792825b03ab0fe3efa4bb584067b2"; + hasRunfiles = true; + license = [ "free" ]; + }; + gotoh = { + revision = 44764; + shortdesc = "An implementation of the Gotoh sequence alignment algorithm"; + stripPrefix = 0; + sha512.run = "478d51d4f8af849180d1e21ea21c6404f6eb1d13cd70d232f7002f62a588ed2de40e2950699c1bc0e5442069a957b05f3128430ef421311737cf55a6df868a12"; + sha512.doc = "3aa9837e81bc59adaba5b1cc3908738451fefe2645bf1422e0c6b119e4ff94ad85a7c2ddbae798e1e1ced95a530ab95b2f7a5a92da827c9f6d9bdc574b5f3231"; + sha512.source = "8ae972cc1f0095c442241e5340c3688021253d135167a89c67000c74a53418c48c3fa13b4b2007dbbf598abd1445ef06a9113a32a1fa37b0b8a5dca6c050ba5e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + grabbox = { + revision = 65223; + shortdesc = "Read an argument into a box and execute the code afterwards"; + stripPrefix = 0; + sha512.run = "f592b70d4b3bf02e442725ab3a17e3ebbfd3e69d7a790c01be44fa7dbca66b6df76d036b3aaf9f8ce4944bcf370dc626a07e94f5edeec11eb8dbf04c49bd3ff7"; + sha512.doc = "52e91ad758b653bf6ed804009f3aadf575925f9ce4f52225c1d5e1fb30a79907a587914b265471ff7bdefd5132b6b2d6baac6062193f498e127fb29c34107fd4"; + sha512.source = "c49132a855bd7e3ed4a98b6af13866bae68301927b22757c824497a778d2036b30307cd262630d336be7e569744b7667d554fd4810aebc0646dc90b6ff196baa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + gradient-text = { + revision = 65567; + shortdesc = "Decorate text with linear gradient colors"; + stripPrefix = 0; + sha512.run = "87ecc935dec50f43fb4079a86c0fce5de8d4222f941f346ba6d9ec67bf3c623351fd42fb88989e4d1de17c36a82259aa61b7baf9a9227eea3f8e5caff3ab8bf9"; + sha512.doc = "63894d303192ea56d1f29b33ed8722352a83e6fb58f05c639a9b930794ed5e7f2634690c5049dc62989e286464fc9f48d537e77fca234061dfedf755231b59c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + gradientframe = { + revision = 21387; + shortdesc = "Simple gradient frames around objects"; + stripPrefix = 0; + sha512.run = "31612230548e2167c7f1d6a13029ecc202675d6ae3e681fd915d38aa116374214916155453616da51ef3dadab06955fcbfa9bc383f12b5008adaa8a60e24e6a1"; + sha512.doc = "8b010be9e222609d13015176dee4bcc196d953caf7a8c1814e49f9e50325bc33362975338241bd5cef27d59516114113bd5ac81e3dcc6e89ea7f4d53465b3cff"; + sha512.source = "7ac2eaaff343101c1e9501104e2be138bbbf85d009c2eff98f10876ee814762ac2198bc800ca43b9573e206241b9e3f196ab24e053078f78138415db8ed8fb51"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + grading-scheme = { + revision = 62505; + shortdesc = "Typeset grading schemes in tabular format"; + stripPrefix = 0; + sha512.run = "d68e5f9110738f2ac7258c312045b40db3ce20ea8fd80e6feab47164091cf2dfa460ff7ab5fc794cfe2895f5df5733ed67429f3babafc448448aa99d52bc9ee0"; + sha512.doc = "337f873bbb07432ec9e5c20484d82e65d315921411757c295af78e521075a16044943f41bfe6daba9f0efca56d33b372ebd177420d13284a44b0251409277ec4"; + sha512.source = "47de7e1c71f78bc472500b44aba2cb4a606a6219737913bc07492bdc485fa7ec1bee30ee04311bc3b278b8017180e98e032e4f2d1cdcccf561e42f1a9bbadadc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + gradstudentresume = { + revision = 38832; + shortdesc = "A generic template for graduate student resumes"; + stripPrefix = 0; + sha512.run = "b66b3b8f7cf16f17758e4dae3bcd45f6e6e5cbc0dcfd6fc42f8dbc08abb572f16b96d5de4ba634b27cd16a1c4177bc62644d3eb5ac6060e66d9ca6d3f5df4eee"; + sha512.doc = "e7b166b87a5dce9941d6bd931dec91124a118ba127075aedbe70fc9fe415a8083911f90f094ddede551eef197baee9cfa4ab6ac65c8ae081cd8938f872ad7bb2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + grafcet = { + revision = 22509; + shortdesc = "Draw Grafcet/SFC with TikZ"; + stripPrefix = 0; + sha512.run = "d322b1b45762c65232f6f66adcc12955d85d4bfddc08655cba8e11903f6403f2031a78d7e566f4d9b5eaf950aa8d2a53472038e204a1d18517c754c379c60bc6"; + sha512.doc = "b02bfb612cd5fd85c1839307a016bfc4c3d472ddbd591d1318bd7c5fcca42cc1200da07f2105ec429768cb0f9270273425b01df1242e475946bd37658e692f41"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.3.5"; + }; + grant = { + revision = 56852; + shortdesc = "Classes for formatting federal grant proposals"; + stripPrefix = 0; + sha512.run = "212fec263131499530ecb81d7dd23ad5d162928d4bf8a888b29c190f15d1d15df71f50ba5c243cc1cfffd324cde3362e98d2932e7562f69cdb77eb09025ac7cd"; + sha512.doc = "5170e7f01087c8198220977c1c5bef2bcd2d1a2b824122a9727fb1504576433d682caaa6c9a93454aab756dcf654875fe129c0fbe32452934b1a8b08fcac079e"; + sha512.source = "7894584e5cd67051423ec0febc19e67ddb83e6e183748f9bbe7f037073f8f3d271a6903b535cf699960ea8e8bb5a7fd47a8108cd7ca32e12d309133b9497248d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.0.5"; + }; + graph35 = { + revision = 66772; + shortdesc = "Draw keys and screen items of several Casio calculators"; + stripPrefix = 0; + sha512.run = "6449e4a42b8de0556d9ab46b3c5f4e0da94fe015b289877e1e9a5ca6f5e84d2f0d621e8f02bf4cf3959807f830f2671124e725147fa033d25444eb14048fd77e"; + sha512.doc = "bbab6b3a5a8ddf69de43815fe54a29ea376839f0dc8e1af47cfcdc55cbeb6ec93005c1c137fe717b8b5c81ca5ac87e0d2d7b0f181608fa1d7714ac2aa37f1e3f"; + sha512.source = "f058197a060da4bb7525398bf51f76b595464cf2253fbd8135d20e0e9b66d12def451eb687c229a96a7f2f79afcd66b768a4db37d448824ff9597eeb3a7ae903"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.4"; + }; + graphbox = { + revision = 46360; + shortdesc = "Extend graphicx to improve placement of graphics"; + stripPrefix = 0; + sha512.run = "d78f870b4cd54f7c6819413fd8acf0e3e1fe9b3b44f3b68ff3a20ad51aa6fde69c52b336b57285db1f6d5465204beb8a1179f918a71922889297cf6925282d14"; + sha512.doc = "342c9018116e80ebf3414358320df55e456581630e7e266ff868e6c624baec0b7209ad3895d3232cd0bf35a9677b8c3db800b7772606afa928ed3424ac16c71f"; + sha512.source = "1e97e3a1a91d007309c091fde6f05a7c1b062b715ee1f35051b20ad5fa119ccd415fa3741cf0d5e4f2a090ee9acb090c06b5467294ca26ac8f25a11971ca7530"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + graphics = { + revision = 66204; + shortdesc = "The LaTeX standard graphics bundle"; + stripPrefix = 0; + deps = [ + "graphics-cfg" + "graphics-def" + ]; + sha512.run = "cd36d380c8315829f3bf711dd970d5460f00e19961671714dbdf5928c2e842d33438221ee1fd9e45061a2adabb7f75eb34209914229eca872f2bb7fe7b346a16"; + sha512.doc = "b2a23c52e19eb8f6eeb53951f5fee9015f6d0ebeeb8a97f1bf4db217498ddb27b62d028b3554be3e5ec3b866d1d4bcce6bc805761e981c718f123f6688ba153c"; + sha512.source = "45f998e3729e81f50cf7c064d1a3926c18007069b4a89b478e87a6f97f3e6820eb5d58be6025f374b05d9c443c8a101918ebff84de512366f5415e041356a848"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + graphics-cfg = { + revision = 41448; + shortdesc = "Sample configuration files for LaTeX color and graphics"; + stripPrefix = 0; + sha512.run = "e1015d360b56f63f1b9790daf16e2101e6af995bd1e45288ea604ae94e20196cab22e7e54d318aa79fa386123032a928be70a57154d409321e04f03ecf97ab75"; + sha512.doc = "dbcfdf635c2816f305205915119e1f6acba816c17b683622a8a32c361d75338376426b258c1fa3271abc1d7ad2a520ac85092a7b3bfbac6463106449bc906ae4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + graphics-def = { + revision = 64487; + shortdesc = "Colour and graphics option files"; + stripPrefix = 0; + sha512.run = "7f811afae5119a42f97c23f65bfead8e7ba7e64796688b219eff78914115f8dbffa6e3aba97208f67d38b6463819ed2cf49e173aebcbe73aef8c2cf399ef803c"; + sha512.doc = "b52099d553c2bdf52ddb7b50231303f106db445d58e675ad819dd0dd84750f0fc6d164fa21deb1f622644a6651e6bdbe41ad3362fb021f4a7da2e7599fe0a526"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + graphics-pln = { + revision = 68760; + shortdesc = "LaTeX-style graphics for Plain TeX users"; + stripPrefix = 0; + sha512.run = "33c1b9a4db0c564df07360c17ea89a7cabd557b21e2703e68532388f7b977a2f99f12c6d7002e9297b8e35259a42fb713fa0d2c49e6c9a347845755186437c24"; + sha512.doc = "27600b6127990a06a75ad8aea49a86b8f16b68ed306ca3ec54762124af02ddd1859adb714eb0dadcacc652578427d230d37416cf3326f567239dfa4b9d8b53e8"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + graphicscache = { + revision = 65318; + shortdesc = "Cache includegraphics calls"; + stripPrefix = 0; + sha512.run = "90e4df3ce08bc12f0d5c2e8b66687c79fe7b791708bec5990f8e11590b64bcdf50ec393244ee85af7bd6f644787d56626f08c31fb1ca1b354b64ffb5527a960e"; + sha512.doc = "749c11a534cbad3f32a7840097e6d42c70f99aa684b5971ccdac4e6a0bd668465ed4a7850bbfea61e14d396440754bfc0d1fe45a9ce71a57908b1c94ddae5444"; + sha512.source = "c730c10210c785ff27f319990b24af529a44c365d675f294401d363c1e5901af4b0e198c93a147ccf85fc440da99bf577063ed207d1d172ca4008fc9215586ef"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.4"; + }; + graphicx-psmin = { + revision = 56931; + shortdesc = "Reduce size of PostScript files by not repeating images"; + stripPrefix = 0; + sha512.run = "d0cb1283998d0ba654ec75e0696bb2b6102968a504e3dee457826cdf82d7cc5793dc8407d0145f314a780b3e015a7be49e70ed21c21e68a3735bede1aacde6fa"; + sha512.doc = "149f130b4e47f60ed3484267486033fa92aa7529169061a2dd9582daef579b6aeaaef4001261ff7bc301c17ef2817bf7bfeef909d22be44079a2c3c145c92040"; + sha512.source = "20cdc55b6645f661f5ae9ebdccbec0506c4e2a4a699dfc88aac9bb6d0ea1b0c308f7ef08abb4525faf498edc77eed5051d9130cc12769dbad7c2a31a814e46ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + graphicxbox = { + revision = 32630; + shortdesc = "Insert a graphical image as a background"; + stripPrefix = 0; + sha512.run = "032168dcdd5eab142cd6bf24eaccc3fc6482e3eba7e0fd2600322b4a6f2bcb1ceb8e30a64dd811b500af37c94e7de3ec25c60c437ba9afa7ba4d8a9af8b79a19"; + sha512.doc = "6fd432f48c05c486963b8058025dda2a65b5cfa87b6ae03581009dcdeafd26396bf16e04fecd0e68a896a99d5c3e09e43902bcfd3f58fa9a9b393cf64406e160"; + sha512.source = "a563a3c1e81496da30aca7256b5b2afc57d9df9e9aab2b6f5bf908691961f736a616f7c5f86647b94a6dcf36d3732bd68b75f5a4ba7d7d049bb67789ec48449a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + graphicxpsd = { + revision = 57341; + shortdesc = "Adobe Photoshop Data format (PSD) support for graphicx package"; + stripPrefix = 0; + sha512.run = "c1327b1adc6657f423bf8eb0d29224773055f434cf749da8a8b2d1713c2a90a6fdeed2bded223c7cc941cb2b7403cb68927d72b0eb085e906750ce64ffcad3b8"; + sha512.doc = "082a8e580113ef796be4cc750d98f6dd0bf783298fef80a06f5387f352183d513e0d8b90dfb684bcaa575ff7b9307fe11e55f84aa66d7f29b411e06af76e70e7"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2"; + }; + graphpaper = { + revision = 63116; + shortdesc = "A LaTeX class to generate several types of graph papers"; + stripPrefix = 0; + sha512.run = "1a850300bad30f7139032bf12c26cdd120e62342e09d7d742067c2f040f171a5a20bda2d57fad0aa769d0a337cb7373cf0f5f4d3932ed65ae589e4feecdd5738"; + sha512.doc = "dda173040d6d492a96e8ecfc374f1a8f01b30689f6f97be6c2c530f2653c70340c7f8c2181fd4a854f2b25e5b4b835f67056b1a95892fb328d8f5c75152f36e0"; + sha512.source = "fbef9be61d0bf8e35e61a596a7297e1eb78308004786f2d48b66ec3fda045784ebba80d7fb66094dda99dc54b751710998dd96c013ac92e97a1c4e60d0b795f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + graphviz = { + revision = 31517; + shortdesc = "Write graphviz (dot+neato) inline in LaTeX documents"; + stripPrefix = 0; + sha512.run = "9065f2316f423697c8f815ddcf91254f22e44d89964196d971c3a42192bb1e20f9152c5a98375060daffbb295f8885899d2800728de31ecf60e1a25cf7bce31e"; + sha512.doc = "688f17db6771785753797edccd141470517dbb2ee875e2a70769754bbd314cf8af46b3dd89d5c340e7da7d81d86895894baa2b9e8facc0a54ad91cd1a3947722"; + sha512.source = "c3e4fc091b5b64924e886435667049ec2dbf91c20fd7d1678f40990e66aa9d94fd7b40b30dd359be0fd1fba0e169b29058337ede8232189dad3dab7bb34af869"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.94"; + }; + grayhints = { + revision = 49052; + shortdesc = "Produce 'gray hints' to a variable text field"; + stripPrefix = 0; + sha512.run = "45d0736b5b600aa3ae524e0ff2471846cf48105464710fc7bb7f8d27326275d1accc63b5a0726c5d43e5af487207eba105e1d5e4f59913a1b27d33e950122574"; + sha512.doc = "85a6b8e44ec045ec00b7526f034e5b15d71fc8e439bfbbd43e1c8f85d4400318d8dfeee4bece211705c351e2b5afc9ddc89073fa14c1d90756bdf458d7b5b100"; + sha512.source = "7342b60e1957297f41970fa2af45a8736f438e6560e4cb6bd279516fa40ca283d7cd60e5faad2959aba12958c0fa70a95d94bb9c48e7ad47956bbc646af82173"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + greek-fontenc = { + revision = 68877; + shortdesc = "LICR macros and encoding definition files for Greek"; + stripPrefix = 0; + sha512.run = "24aded84aee9dbe4674a019fb3ffbe0d48fb51d88908e532cbfbafbebd8dda63ac6d2d47c907d32063bd57c3c9d90d51b1e8f1f59ee4fecb451f20002d4a1115"; + sha512.doc = "67f22594152f543a1b59e91a49168b92d6e9870f0c362a69746c6d3ac9fa4918980df4708bf1a6697fedcfd519153b9a29d92114b6567a2ec03e65210eba3d7a"; + hasRunfiles = true; + license = [ + "lppl13c" + "bsd2" + ]; + version = "2.6"; + }; + greek-inputenc = { + revision = 66634; + shortdesc = "Greek encoding support for inputenc"; + stripPrefix = 0; + sha512.run = "47dbf3388943440918879234037ddb08a8ea7f2851945273af2a01b032484e849af3898860f1daced148b770c4146701a987afe3ba3b8b66dd030bce36c4006d"; + sha512.doc = "2f85fc72c0415b48fd74ebe9d19e5ce86440c57c08038e96a2d99673143f2848bc347e95f7beab7753d0921414fc635aa9b4f98eafc91fabf64155a55a407bee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + greekdates = { + revision = 15878; + shortdesc = "Provides ancient Greek day and month names, dates, etc"; + stripPrefix = 0; + sha512.run = "7f350b4db9578f9020b28bc217e508574b697749c1d2e10c9de9c6499e26605da8334583ea7fb56d74bae77bc30e5835653014f5f8f594d3f35d04478ccffa9c"; + sha512.doc = "979353f7cdeb127e12388e1eeea4903a929d911f6f8fd42cd814b6cbea09a64d0ab9c8118968bf218330dfae64f9147621d23d2955fb85291f484d0b5eb92a00"; + sha512.source = "16a5fe04bd6a598a09c7f326f6848074782e8801d0723366e5ae2b1ae51580319210c64f5e7dbae7eca5cfe3573b0f24d689c802d9594d18dc7c8f4126d9ff49"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + greektex = { + revision = 28327; + shortdesc = "Fonts for typesetting Greek/English documents"; + stripPrefix = 0; + sha512.run = "d7aeb9640061341ed39a71f7f69036f892bbe60b9db2236660e163b42fede81d6be58627b0163d3a183c120c9c8fa54f91a1a036ed9e50d2a72d5eac7f8a79a5"; + sha512.doc = "b58305d403a58a60ac0cd6ebb60afe3058430eae15774895e03e41b331824673c128c5f06b583525e2311dd8ee5166549ea831e756e8c934c73ae911a0adbaa7"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + greektonoi = { + revision = 39419; + shortdesc = "Facilitates writing/editing of multiaccented greek"; + stripPrefix = 0; + sha512.run = "a19dd42de4bfdc3c068169bbf32c55fbd76135a8138d41e0726b421d3cd5e20483f77d7b78f85e54571381f780568f1fa1ebc57d23ca460b33e4caa256c4894a"; + sha512.doc = "94da0bcac7b513fb9f720c0bc6d7ca8d822956b1517a95335b415e477d3144063bbff65d57978421b6b9611c6b4a866701762cbb2ab09351fe6c5d02e4b02f39"; + hasRunfiles = true; + license = [ "lgpl3" ]; + }; + greenpoint = { + revision = 15878; + shortdesc = "The Green Point logo"; + stripPrefix = 0; + sha512.run = "2ab6b0a9d12c12936362e9e1ff387c393bcd2e9769357dbc74a5d9bcbbe027424f5d58d85d608c2c519d615f01e6e809f6192280c8c60aa53fb8d96dcbdeb8dc"; + sha512.doc = "84143440a421999f0a59461652be21d49d8ace66fd3b8d9d89132c6f06f67ef4b571522d6ed54d87f614a15dceb99cdf4c3caecb54eed9a4bbf49401de20ada5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + gregoriotex = { + revision = 58331; + shortdesc = "Engraving Gregorian Chant scores"; + sha512.run = "00dcd5bc7c12374a15d778cb903715036bd29a7a07522446cb5a5cb14509956db71df518d97e44d1e89366402281c26b96eaf39cc9f97d624ecb40107eae3db4"; + sha512.doc = "67f018fe0eb9568b0ecc6977de8eb8fc1b0b9503372e2f674a97723c537d8a8fb4f48d48b95ee8979e4d4490d3725cf4a1411ab9d7da2ea14f72d0dad0fddd95"; + sha512.source = "0ae6211b33a256f1b10a2b167f3f5886f712688ae73baf13f698af37f69f83a9be754efbc6b0d5b3a1cdf11e7d459a98986b27c27b6318cba8fbb3e48d7f682a"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl3Only" ]; + version = "6.0.0"; + }; + gregoriotex.binfiles = [ "gregorio" ]; + grfext = { + revision = 53024; + shortdesc = "Manipulate the graphics package's list of extensions"; + stripPrefix = 0; + sha512.run = "a5f68f2bb2ea26d4b8f963a1b8fb8adfb3bd32e3a139dca57e6b45d80fcdd94c5e846549b1292224b9d845fd6a4d0ee56d4c2d2fbfc12c24806eca8551b9dc96"; + sha512.doc = "4337ae578d9e524e2da8564a1b736eac1dd50c1e4495d027c44f3841eb65c6c494527109e32f00844c17a5973a94572569a429ceb95beec98d2b19e84735eaaa"; + sha512.source = "cb7dcf9b3860b90bc8618c6d964fb7e9f5e056882bd5e6739a57564224f970ab9cf0ba136ebd88072541b8d169245ccaae90f714392a30f83c73e82281a07359"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + grffile = { + revision = 52756; + shortdesc = "Extended file name support for graphics (legacy package)"; + stripPrefix = 0; + sha512.run = "3f1f5e4f258e4ab1f51fdb44fa0b49e80df21a6c35dccad16a6b70ad76489cb4fdfff7e6c4dd07821c54543fdaeecae32cfd8037d4920ce60db02be9a2f8fa07"; + sha512.doc = "2f2285ad44d0c585cd02b85359eb31f885f7c704f6da5f906240c1094ef8d347d33ba6beb31cf34e09a5e39e618a27a7ea263a63d6a887638d8f761e3cd4b61b"; + sha512.source = "6538e5cf13f8212b5b231637a4abb68bc97330e123432922e403ae7321439bef910a0d1839abf394518ad274ed232c4c2e19671c8e6aaa55e2525708f305c679"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + grfpaste = { + revision = 17354; + shortdesc = "Include fragments of a dvi file"; + stripPrefix = 0; + sha512.run = "e7c28c38a20e01b05c5839dc7d011ef5769b3344fd4321f68e1189a830a90e6ccf9edd596e248489a0a578b2aa4e5e5f3bd1ec21c76b3dba86a91d5e431d0617"; + sha512.doc = "63719b8f7904baccddc9e68d1fc7d609453b2eb9feeee95bb077b82d1345c40db7a92c649c3d9abae6b9c2e19090163b6a227418f4d9d4d91b1e8b1c0438005d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + grid = { + revision = 61719; + shortdesc = "Grid typesetting in LaTeX"; + stripPrefix = 0; + sha512.run = "312b142c43ef4bb9624fd6589d086d733593dc0d387894bf58749b3f6251f33df415656b974935352a0d4fff090953f136d0353b98329ed3051ad179708af12e"; + sha512.doc = "c3559726bf89f766b0d95e3b493046ee6b4c0edee43e4c581adb150e6ad5358ad0a1a3a67b75ea1095f2da87393734972a59693332de10b7b459579a7f73e534"; + sha512.source = "dd59a48ee18940509d89ea55219706f7c0ae6d7f699b77137495fd4a850cd9d373f01cd9f2485a2ec47204c380c0a17c4986940e0a0ef21740c383e0eec81f0e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + grid-system = { + revision = 32981; + shortdesc = "Page organisation, modelled on CSS facilities"; + stripPrefix = 0; + sha512.run = "b9846f467854538c488ae444645fcfb962c1aece34e3847dc3dfdd4a2aadf8339840c09243448922ce184f6211bb3b95c6fe9675b5bae0e3b3756b2787e7e87b"; + sha512.doc = "659b426e99db9152c64f37a4c977176ce1a24c324465399f3e481cffef505044aa820f1a445a79c68f069702c07082d3d5c73c5fa762068a44acdc21221cce68"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "0.3.0"; + }; + gridpapers = { + revision = 58723; + shortdesc = "Graph paper backgrounds and color schemes"; + stripPrefix = 0; + sha512.run = "17f9b6b16a0d2f45648b131623c243e0b62f5e2d2fb1c1997af921a1307d941ffb07729d5e4787b4627961160a75de98165e97a42331b07a3259e91c987f27e0"; + sha512.doc = "0f4fed3e0d17f317f3d56f69a7100d36ac6d022f7c7c81c8dd0bb1f740f782ca5a4064cc2c80daf865c85e7ee84027a97fe675a13f9d0d348e489a2a8afa2ed9"; + sha512.source = "962b9dd3c99ce419e58cc1f146406b0703807d365069a333971c1b0ad3409f64c9c89d6dfb9c4ce80731164af1d6dcde6b510c156602b0bdde2f231d7da45406"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + gridset = { + revision = 53762; + shortdesc = "Grid, a.k.a. in-register, setting"; + stripPrefix = 0; + sha512.run = "296200c463b67ce45fd7c9625298b5e0b83b730055830b3affcdc0c329a2ebd5f89c5da93e004b056efb63f8e43771824c7f0adfe435461943cc68aea4bbc480"; + sha512.doc = "54fd48dce732ee11a7279eb663bcadde958f2ec9d3307194000dae2ced43f604a54e44174ca36dec389c9ce8e5e0809849b5c66aebd9527337ea3273353142aa"; + sha512.source = "fc25880cbaa087230b0106a40d2c945809f09200c7e25de88588ab0075e06b91efd362453c599397e29f5e9a053f9554e0496cf03f4f134bd74678d1534ba07a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + gridslides = { + revision = 54512; + shortdesc = "Free form slides with blocks placed on a grid"; + stripPrefix = 0; + sha512.run = "9f9c3fc88cdf9e3641aae264eac0c116c3dc410ddab4c688521289baaf67cb4c8c605c734fbf45538b6498f7c337aeaaa4b90d2584c6becf06a97b81894c63c9"; + sha512.doc = "ea3a2ed6334a5e160cb27b096e0868aae28908f77d67626b9d1d86840e615bf1b296ff5813ef5ed24ca0435eea39f4afe601216f243f2be585eb952f4df33255"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + version = "0.1.1"; + }; + grotesq = { + revision = 35859; + shortdesc = "URW Grotesq font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map ugq.map" ]; + sha512.run = "30d0d52c98f44945ed40f45f1e73ed60e6b98a8a74dbf57cdae5c2d400ef613f8bed2b89b3b6afbf7b98e449738f637911dc1becf0c0dd33c21a23ecac9a9767"; + sha512.doc = "d41ae946f315d87b483a03d8b5a1034706f5bda765c69fa692f117b79bd5046b409e42c7b17577ee086ec98795e8a93acd761e30815c6083520b4bd244c33cd5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + grundgesetze = { + revision = 58997; + shortdesc = "Typeset Frege's Grundgesetze der Arithmetik"; + stripPrefix = 0; + sha512.run = "f9912e5daab42e6aaec946ea34f420acc194ce88ef75135ebedcdddd5f70fbebc81c250f3368bc8f65cf3952d0229fc450ab40b58bd02473ae4eecee783f3f09"; + sha512.doc = "7dfacbd4686f5296cc1f677b99f42946f6ba1e761454308568ecb013df3eb0a505273e1cc357d11780f7d4762d03007ab44b87343062c50666bc8e89e1512ed6"; + sha512.source = "dfa00982121cd247149768a95ac8555a2061ebfa1bcc154ff944d07843d213ab7c7bf0931cad3dac118cd995abf0fcfe03f12285e2e7fc3e808223939d4c1d58"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.03"; + }; + gs1 = { + revision = 59620; + shortdesc = "Typeset EAN barcodes using TeX rules, only"; + stripPrefix = 0; + sha512.run = "d12c13d30c9e0303bf6c6bfb833d673cf673de3c60cb9d637aeff80470d34e04653860e2186c16c55660faa107bf583409a9891ac8d5ebf1612c8410cf60d10d"; + sha512.doc = "b3757db8c56cbacb87bd17d578be51321b0ac06a3cbcd75b136cdf52bc66a046f0db42af84e5fc33bd347fb52950448a352027713ad01263fe6344a75576efde"; + sha512.source = "bc9f08753c9663ecc056de0ca7662dbecdec18ab9346e8590fc1ecd373392bce8af50a4a5f37eb6301a2cebce0dffdf0025a3d036f14ad0f696557abdb8f2716"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "23"; + }; + gsemthesis = { + revision = 56291; + shortdesc = "Geneva School of Economics and Management PhD thesis format"; + stripPrefix = 0; + sha512.run = "42d5d8461d5f8ccf461e24d04fa61991507eb545a60b7f7bc3980d39c9f767aa155164cbb914ce961204316b1be61f5622f21236154013c6404a86ec30ec18ce"; + sha512.doc = "3497f766bc496369a2eb9f829b8ba3f0d73bfe7ac11c4afd7f9ce06c21f9aaceacdee0456a14624ffb38bafeb978c5a4787ce824143693e4c3d99a227a994cb8"; + sha512.source = "813f4825450b66024ea804e0f36d1df721565b046979d822830b87ef9cbd8a01300d50947ba9344c3e21f9624af573d7a9844d60432dacbeb0890944a9e11dc2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.4"; + }; + gsftopk = { + revision = 52851; + shortdesc = "Convert \"Ghostscript fonts\" to PK files"; + sha512.run = "cb9aebd7428d10b627d80ea40d297f3e6de006859c7dd713478ff193458494f90017ecd0737376ac1f47638b059e02e8a46ea53a7c56b8561af75f770e214413"; + sha512.doc = "0a597e2908438fc00fc2bafa7ec635a82b70aad9d7f7e86851a654c0b72b719b8c550be0c20ecf6c8d96627863a48e6a387156ad2c7e71d1e296dd4937d60805"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.19.2"; + }; + gsftopk.binfiles = [ "gsftopk" ]; + gtl = { + revision = 69297; + shortdesc = "Manipulating generalized token lists"; + stripPrefix = 0; + sha512.run = "18cac75f4370c759fb74079c6647553f5d91a8aaab946c46a54c40b8ed757e3c14fbb2f2f5b375e691c8599a7f7d3ca4ebc5a748f18ad35e507305a5e5d8f73d"; + sha512.doc = "ca1fd56abaf08f10fc6c830b51d799a71ba00c11d94e48619f6ac44f151920e8e53df450c23426a860266d5c6347b7c24c9373d152be80c2ba5023836df6f89f"; + sha512.source = "e1ca28c2729e2a4b10ba53cb3f18a657ea1ac7cc0b3eae8b7d13b70ee510008b90d900eea9f5f48ec8b0541638e76ae73e533493ab5b1b0de020d3ad39b95561"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + gtrcrd = { + revision = 32484; + shortdesc = "Add chords to lyrics"; + stripPrefix = 0; + sha512.run = "dabadc0fba92f6da23830069e533e8d4fb234bb679aa355382c03bd3ac13924328ea8fcece3186f36d33b7d7f6cceaebb23f1158b855673160f183991e880796"; + sha512.doc = "d8e715d1c4d9c7ebb0c34c690a82e338733501012ad19cd9e2c52e6b39dff352a4e042bdc5f54e63a03a38eb9c76b5aed2ec3afae88ccd63f56663ada32e828b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + gtrlib-largetrees = { + revision = 49062; + shortdesc = "Library for genealogytree aiming at large trees"; + stripPrefix = 0; + sha512.run = "320b5993b676d803b235d0a10cfbcdde966c3e9415f164da6f45dbd2f6f201750b84cf9dd8ce5383afd92c72acd35aa8a44d0c6518e359615b5b2009e772bc6a"; + sha512.doc = "6558466d513a94cc98e5fe97d5e3bc89f518128dcfe411e27d0af171716545557096a6cdb103511157f0cd93540ea784f97d688ba271d9b2f1918f11608bb437"; + sha512.source = "258780013cefe87f8fed74b0e3251f64da8fe700b13f45dcdf20e9d9215a5b7b74e931bdc1da944e70b5a6c9d87516eb2618546994b5b45193112fa9af74cac3"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2b"; + }; + gu = { + revision = 15878; + shortdesc = "Typeset crystallographic group-subgroup-schemes"; + stripPrefix = 0; + sha512.run = "243eb6ca0af62518d60134a8fa66f91ab05e39c96fa9c0ebeb2232d27f46679da0a634b64273608028bef7f80bfaaf049dcd9f0cd935d5f66b0d5054b2d21a20"; + sha512.doc = "151f9765d6da2312a10523ffca06cb4e0529d4ebf8189e9ddc00f86510c9cd13be9a04e47b85dc8cd815461c17f7e4b8be9604a1a605c86d7228d1113f985a23"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + gudea = { + revision = 57359; + shortdesc = "The Gudea font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Gudea.map" ]; + sha512.run = "e32cd699f60de092f9bf04e0eae725555735478db9ae7bf0a01a8aa78ff303c5dedee7eefcfa94bc1d8012f4062160dcbcb25cd405debccf7eed20abec056cdd"; + sha512.doc = "633f6cace4db98c88e3a7ea1f68deeaf9b0fe980ace490807688b629b1e3b2b00a12717b66b641dd9949065e4f72f423f78788693ddfe2128752f8ac990fd43c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.1"; + }; + guide-to-latex = { + revision = 45712; + shortdesc = "examples and more from Guide to LaTeX, by Kopka and Daly"; + stripPrefix = 0; + sha512.run = "cc569e242b42361e6506144257db1109f1adee52915f361ed330699edea1895b78ac64488ae8b9e2224bd3baab01515be86486113afc1ed9b072a400ca736695"; + sha512.doc = "bba47b9a9e5223e558244029e258835a865b90824c7069287f0c996a36c4fb78d21e62e88e52ea008dbc573e7a4ea34843a646eab11d8377a5167724286c397e"; + }; + guitar = { + revision = 32258; + shortdesc = "Guitar chords and song texts"; + stripPrefix = 0; + sha512.run = "fed7be24d0bff6d2a0022374e4cbb60cda508b0f99a5a96d59060247aad561c1124728f00a6d0a51b3b22f4490c6153df740a5e9d8106da23c85bb18db385195"; + sha512.doc = "4a2012e693257c2bdb4daf46a2402882caf0c8efbc65bd6679c9eb11440ae75f09d31369839f84312bd1028207d8aa23a745847be1e762dea977ecd7f73b4a87"; + sha512.source = "26b552a91240900b54a3266f26e9f439c46315bb9558d95ae5b27f518a7f5ffdcc1990a4ef676e9186b5492d4a66826754c4d34e13e82b9bd912ff74d14cd185"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + guitarchordschemes = { + revision = 54512; + shortdesc = "Guitar Chord and Scale Tablatures"; + stripPrefix = 0; + sha512.run = "777af4d4ad1a35bef3f0075e2df707c3a3c98969ee688b71c3d13449b04ecfcb2d82ed9332a8aae81a3bd825462c2cbbf840b16a72fc6e3f65e7565ef6b1b164"; + sha512.doc = "f7508a78fd341e4d4d0fa8a0f89a14420ca50d590bc4a1f5208d4130a3aa84048faa8720545c24e8f0243b1f062a6f40cb5cccdd9ed7db583a11fff1a40c7eeb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + guitartabs = { + revision = 48102; + shortdesc = "A class for drawing guitar tablatures easily"; + stripPrefix = 0; + sha512.run = "a4866683cb639b63d455f40da2ef58ee4c69d0e29e5071437a07922a0a45598677557ce609905dd8fc5c3e40a98bceb9a753cf4506342585e6cc2c37fa591271"; + sha512.doc = "ef5f516db586d1473d949f44a2eb9fb307b84ea5a7dcc3c9419298203b41c54ff4dad75d3b24cf30fbc24f4c60ad4b79b9c1fd58804667732a66b0ccb52cc3b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + guitlogo = { + revision = 55741; + shortdesc = "Macros for typesetting the GuIT logo"; + stripPrefix = 0; + sha512.run = "42fe915cdb69b18182222843452627655ba1d619c2ae9eb469673a35aab31967afc3cc2abadbc2fd13d9215555a2f97a54a6d3b1ec895fc3d3f6388819bbb9f1"; + sha512.doc = "505a1f12e772f2f1cebae02164793b0416322aa60cde58a18ba0e3fea0a7072d07d0d8b1bad9aaeb9248dfa89b4b1730e0e5c2a2581b41a7a3a80636fc161b66"; + sha512.source = "600881490f339ffe540248d7c497a970ee606a9e8167036043b833b24630171d44a58a262e79ddf72fa9308b45bd70c28893251b8c185aeb955114a11c70794a"; + hasRunfiles = true; + license = [ "lppl13a" ]; + version = "1.0.0-alpha.4"; + }; + gustlib = { + revision = 54074; + shortdesc = "plain macros for much core and extra functionality, from GUST"; + stripPrefix = 0; + sha512.run = "e752e4b53191a9c5b46d1aa5797d491b98ab2585873e9a9a1471aa89accd898cadc5a9332ab36828b4baa6a3d3d69b311794e1948b788db755dc8f066a68550b"; + sha512.doc = "9c1c0279f18a37b2a500e415364dd4404a7dca8b6e0f85b053db5511826eb401865984ee3471fbe607e4cfa605ab50c08e6c11b166dd629e84d9f07db4af7114"; + hasRunfiles = true; + }; + gustprog = { + revision = 54074; + shortdesc = "utility programs for Polish users of TeX"; + stripPrefix = 0; + sha512.run = "bd9cf1c174a5674a0b71f07bf76f46ca4e15dfa194372cb04e63467c29ee1e07b03d0e611afceae80ea192b6f842fdbfae0bfce7eab2ce43a4e448058521cef6"; + sha512.doc = "268a01f59660e5225c1c21539076e6239381294e6aaa31992032ff8e3d777cb7e4195247c92d9f22efbee498c8bac34cdb915e0a5b0f6cb2b5c0b72c15695d72"; + }; + gzt = { + revision = 70535; + shortdesc = "Bundle of classes for \"La Gazette des Mathematiciens\""; + stripPrefix = 0; + sha512.run = "8c6cf2243e7539b0ba4f84e36a634e46f6a59d57a5d5c58df0ab77ceb031301048800c35c092e3cdfa4ee08d1d61a1a5ca27a6648f9be5e658deb3ca16cf6698"; + sha512.doc = "08272184765997826e89cba2ef02c4695956f14ed603e32f602884dc191b1a81b60e654abad20cf50bb377b96ca50f39fd89234deaa81cf3a66a311445c98f07"; + sha512.source = "6654412d1c9eafad470db5dcc6045f2872f1b505e498d1243a9f26ba76e3b3af11567af78e242268d3d338bf7ddc9e5f2546b730b0772718bb0afbe1cae99827"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.4"; + }; + h2020proposal = { + revision = 38428; + shortdesc = "LaTeX class and template for EU H2020 RIA proposal"; + stripPrefix = 0; + sha512.run = "ddee9c5c1838bad606f212c1a7ebb7ac4d7ae571f1e29e83d55744dd50afb55e302f4f20a3cedd0d4446886cfa515371fb913b862d4549618858896de2a543ef"; + sha512.doc = "5ffad62ed8eb39c8cf07d4840983990009e5696a2d7714d2cbab13a69c77634d01f10a18f612c853a09dfd91ae1ea453bb3373681e89a6994ff4924dd64c3093"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.0"; + }; + ha-prosper = { + revision = 59651; + shortdesc = "Patches and improvements for prosper"; + stripPrefix = 0; + sha512.run = "fc78d9c422c05e4d5b859d39f4b681c5deda4d6850ea383f33b71b0e2aebc5e4740811a831e8e364122c7f451866751d77af8d5e4fd6b8b9f5dbf76f23a7d09f"; + sha512.doc = "939e86ee09351991654d8542cc21667e16d64dc56f0e9d29932b816458319c3ba8e0632e92bc8c17cd104fd10dd7171a89f9026fc9faaa197fd7376c61377d63"; + sha512.source = "0ef051d229ef636232751d77ead251622845f9b973ee32cfcdf67c046423334c0fff283fa1f569464931ff8a6ec139e9fb16acb133874bb56aa11684b7388f00"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.21"; + }; + hackthefootline = { + revision = 46494; + shortdesc = "Footline selection and configuration for LaTeX beamer's standard themes"; + stripPrefix = 0; + sha512.run = "223fb22b01327fb63ff16684d578f89ee583d5c7700dbfd5966aa8cb94ca4e280e4409620b0d261bf2a80a57f51658990b0a221c0dd311e3eae1f39d459e8098"; + sha512.doc = "960c6a0bd61210b097710cc6715012e4406b54dafcf070659228074598a05e0dbb65669ef77c3f6ca2cf80001e95c5f801070be29d416d2bd552d6c2a1d27f56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hacm = { + revision = 27671; + shortdesc = "Font support for the Arka language"; + stripPrefix = 0; + fontMaps = [ "Map hacm.map" ]; + sha512.run = "6f4373f4e30d95c747ecbec45c53a9af23b78acb84a063dc0b2d4d5ed218e7c5f70d4f29817d39f6cf62cacc455cc3117ced589d41bf3f321a6f9d882823164a"; + sha512.doc = "bb6d5cd50e68ce84abd5f7296d8216d929b772f30e946508ca9bad2ffcd8d077d1927fcc76a5ea2e338799109b34adc8272f9f7f6d316f5af1312070f57fcc3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + hagenberg-thesis = { + revision = 65819; + shortdesc = "Collection of LaTeX classes, style files and example documents for academic manuscripts"; + stripPrefix = 0; + sha512.run = "bba9dd22c1e4cf082697c555f2bca5b53af2f3684c47c8911cd11af9f35c9e16e60c5d6e7941436f0a584cc98f882f22c5c855194cc71df7e928f105bcecf9a3"; + sha512.doc = "9e73ee93a231c319ed65a2c23d23d28ad224367ef7773a9d5c1de474eaf6f9d2a402ae1afa4138ec172ca9e07a5fe64c47d57e16ceaf24b203390a0adbf645fc"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + }; + halloweenmath = { + revision = 52602; + shortdesc = "Scary and creepy math symbols with AMS-LaTeX integration"; + stripPrefix = 0; + sha512.run = "1c897f5582e26a42799065d9b105bde3ab7823e9320912eba72654d00624a3796f468d9138fcd47c32e021b31bffb1a618f3ce0024ce753005236a9e08ed05d1"; + sha512.doc = "aea1397af446f64f4d8bacb03f0f2d211a44f0f85d93612db840f198a1ed894e1b0a3680005a002808fbe5b8b367f8a8d79b9b99908a4be0891c0d5b43c730e2"; + sha512.source = "dcefec44ecf9cd8488b756c70624e3cce53ea6cb2c98acd09948d08fa0f4292ea20fd19156189329f30b47a0a3f7f7fee96e633125eb55eee066ee87b09981cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + hamnosys = { + revision = 61941; + shortdesc = "A font for sign languages"; + stripPrefix = 0; + sha512.run = "36af23f5eb95a743a691047d9dc02a19825e88e8fa62f1931f5c2f13e95f89351b42dda6a204493d5f2a147e0d8c039b6b5bbb2aa82bec00824c7c5612d5056c"; + sha512.doc = "068e8232cf97513c69845e66eb6772e80de0dcf9422a3547db3b002ada137a1b385829a7e8258145ec2b5a05becfd08ad5ee40fce71326b93c3241bbc9f8c0b6"; + sha512.source = "bacd0fdea3934bcfd32749c759d1e57e740c0e47e477790dd3c706d252c9439182c0af36eba30b8c00c785bf782605c319bf63b7d9ab677c799a5997f63af32c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.3"; + }; + handin = { + revision = 48255; + shortdesc = "Light weight template for creating school submissions using LaTeX"; + stripPrefix = 0; + sha512.run = "361fa013f1932da2370ccbd67e70acaac725349e4fd4fea28a6b676a5459aa8ce8fbc1edf42f3f3fe234e12771c5be8bc463ef758f823a3b43fcb7191bc1a660"; + sha512.doc = "cf91e16a8f04835a47da1a5ccb31711fd9317db557f0152689a93c4f58de33c8e7c8be1f7c5d9eac599bf8dceab3f4d3e84831efd0612a58571d3c71f508f20c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + handout = { + revision = 43962; + shortdesc = "Create handout for auditors of a talk"; + stripPrefix = 0; + sha512.run = "9c5da5e16df3bfb4eee1ff7b8c6881e7faeba7001fd7f0ecb8b3027a464d611149c8768b8d8853c07417d67a723fe5b1de19620593a177139241b47c7a814285"; + sha512.doc = "6da7783c7a0dcfee168ec4ad6924fca636ccb5fc965e326d9c38ff31c9d2c7942a820165232e4e89b7c1e4857e81952156198de55d7990ba01e5abcd4c31bfcf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6.0"; + }; + handoutwithnotes = { + revision = 62140; + shortdesc = "Create Handouts with notes from your LaTeX beamer presentation"; + stripPrefix = 0; + sha512.run = "cac79ba06d60e99e151b272f28d6a8a04f1f766f406801c6f4fb24f4b4c74cc59d78fc6961624b1f77405bab6687ad896826426d8bad30b3b210e7ad5be035af"; + sha512.doc = "f4f604fd888f5e072d8c002fcd72edb726d3f5512b5fd511446f3fa1295f5a6608510dabdfc6a162d648a3e020489d1e1ecaccb7e563f54e8ec156df51be6dd8"; + sha512.source = "b41429450b42e341df413bc1d7e4266836370617ee94fe685710ce66c7b559b0ed44e3ecf95963fd84595845eef57b695982b9ce300f214901bd967a06f09269"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + hands = { + revision = 13293; + shortdesc = "Pointing hand font"; + stripPrefix = 0; + sha512.run = "77c1742d045110ee4da7473b14c1804fcfab3772ae10223848fee99c7c8a8fb3809aabeb82e4c99460f3cfa0e009ee8d470d60e8be4c79c25c3ff990b7d1595a"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + hang = { + revision = 43280; + shortdesc = "Environments for hanging paragraphs and list items"; + stripPrefix = 0; + sha512.run = "4a8227707b6878ab010b595296dbc96f0b31489dfc0abf0116e00d6b0acf54e91bad1ec182169357e4a2e1f14ee27afcaa23bd35db1fed7e4e972e66eebee042"; + sha512.doc = "bb0af0db38793e12dbd8d33e2df613d581a1809e0661138a3e75cabac1aee2aca942aaa429678a817f487fda82f3ffa3a631d98c3129853ba6a5ce4175346b09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + hanging = { + revision = 15878; + shortdesc = "Hanging paragraphs"; + stripPrefix = 0; + sha512.run = "54bd2269c169bfe2a28513354407de22948658e8067cebafa3a3b3d88040acc318f3f3aa375798e36bafacecfa10c4ab5500095b92328e6cbfc12a541a8a7b3e"; + sha512.doc = "a1e7e9d0d5b85e43ebd7ad88b39d6d5629807f668040041fd1248239c02394cf3c51aa676065c1d1d9e9ba8d1ad20f00e46d25025ddc0db7ec15148280a5b9c0"; + sha512.source = "d982182e5c6c19d6dfaf527f5ff95c0a1d15cfa3078205c73d9ac894d24ebeea31a636d66356387996fc0faf9815242661c884dd566c0dd1d90779d61ba93c28"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2b"; + }; + hanoi = { + revision = 25019; + shortdesc = "Tower of Hanoi in TeX"; + stripPrefix = 0; + sha512.run = "efc8c4892ea4cc8ae395907fc428fe74d535d689a68b3b21422c5c944d4defd57747e519dbca9bd2df2dd010b99e3132afceadee36d547fc11b04480147626c4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "20120101"; + }; + hanzibox = { + revision = 63062; + shortdesc = "Boxed Chinese characters with Pinyin above and translation below"; + stripPrefix = 0; + sha512.run = "125406446426da598ff92398a7d0de5ea26e866d4f9248269191d113f50e8a613075e3e3d3f9d625ad3e9e0b1c5ca978a0420c2de9f31f12958d5adf7e2cbdeb"; + sha512.doc = "87ef15dc7f3920e11d0cc678f56365ba9dde31210e0add0d80763c1d271baae5b7e905f72f2081f5712c286edacc6943e38df4eb112c7ba17c125edb4d0582d5"; + sha512.source = "d3d557b65df0809561c99431377585a119994d516dc9e30f0011e423abba27eaa545af6a76a0eea7269d1e2ef57a77c316f7aca5b0f9134b709635f87df14e38"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.0"; + }; + happy4th = { + revision = 25020; + shortdesc = "A firework display in obfuscated TeX"; + stripPrefix = 0; + sha512.run = "45492a6becc7496ec6ca6adca474aa141b9c68b06aeed46bb1459f15b6cd1df9e4e2de3842a91ae0121d83269c1fe4f772418a93da67031bd14b6649f3a80657"; + sha512.doc = "78fe311673e370b867ad209fc1c62acd7aeb515e4b145bb7c487d30c121715994803e6dd540bcbf1b9b0776014327c7ca2f6c03437d9ff0b40f477ebff9cf254"; + license = [ "publicDomain" ]; + version = "20120102"; + }; + har2nat = { + revision = 54080; + shortdesc = "Replace the harvard package with natbib"; + stripPrefix = 0; + sha512.run = "b88cc102c09fc86a762da6c16802241af705a0a7da8707d072f051dea7b5836af9bd5cd46e7c80922877dfa389aace6b7713b10c4f1da75cd0d03c7bb3e68745"; + sha512.doc = "de971a2f65481fda590a1ecb254663778a9260e65d26efdd67c739f02099baddd4937edd1bdadbce5020fbd9ad227cd525ad524dc4ea5fc1e563369313f5ae22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + haranoaji = { + revision = 68501; + shortdesc = "Harano Aji Fonts"; + postactionScript = "tlpkg/tlpostcode/haranoaji-tlpost.pl"; + sha512.run = "2ff313007fb9b93503ed6d703c976f639d878ccc706060e0a26ab8a21ffe1d4669aca9df9fb001c886a1b1f7a0e140403253aaa5ef76a6e91d327c504fc251f3"; + sha512.doc = "1c294bbfbbcc6abbbcb0cdf6ea29335d2b1b039545c1dccfe60e8ae4f1883d2564a5924bec22b0dc817e4eef0009108df348d7af788afee1dba4f1b7f1ae30d0"; + hasRunfiles = true; + hasTlpkg = true; + license = [ "ofl" ]; + version = "20231009"; + }; + haranoaji-extra = { + revision = 68500; + shortdesc = "Harano Aji Fonts"; + stripPrefix = 0; + sha512.run = "79b1d71d80bc73681f1d1d48679c2f4586834d7dcaebceadfcc17ba49fd6c41849cae77a88ae4e45f7b2f535352a27aeb91089cdfd5a75b0af88024988617422"; + sha512.doc = "3331b5113f2f8634ddbf4e280aa7e7b8f82a2ecb494b29d2a1587ab338130340084b1f70402e70fe2c0039ce57a4665030581323c703ed504caebac823a712a1"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "20231009"; + }; + hardwrap = { + revision = 21396; + shortdesc = "Hard wrap text to a certain character length"; + stripPrefix = 0; + sha512.run = "eeb0f1da2161dae80d292db7b3289a307d892b8967ecf16021b8ed73c5fe724d914dda356bb8fbb48786760698e0060b39349b51886e13289524ed9d45463106"; + sha512.doc = "6dbb83fc5d4b82d11bc8d97d0ded3bcfe583c2b21ec2a260000b6bfb0bdea9c10df834735ffdcddfa9785b7c86b53920a20146d020b0435b8dc04610f05b9b16"; + sha512.source = "9a40a2a441e9f47b3d681dcd064fad48fe90999b34b57c85b7112e518c99d3b87a9bfc3867beb66e76499bb53ff3c14837f71f2d261ed4c78cad447f185d0ce5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + harmony = { + revision = 15878; + shortdesc = "Typeset harmony symbols, etc., for musicology"; + stripPrefix = 0; + sha512.run = "25e84addf5ac4c67985e1e433f795f377accfdd4dc56eae0ffb25ddffeb52e0a44278ce1a936406105ff5b7e9541452a103e0bb4ed91b8949facee75ca7c11ae"; + sha512.doc = "3226831df9702b669ba4c269549927563ae321e8e10e0e41c6bd1a8d6522dcdaa4ae6a25a907a84cc1dc324c516a53754c81a0e1296fd8e3afbbb29f0992ead9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + harnon-cv = { + revision = 26543; + shortdesc = "A CV document class with a vertical timeline for experience"; + stripPrefix = 0; + sha512.run = "5acef7bfd07f896f4251fe922cb96f71e9f289205eebfa83dd6aadd241f20eec5d9ecaa3d70d6df3dd61fbe7523f568407d89b7c32c27aa719a6f97b89f4cd33"; + sha512.doc = "1a8d96a152f9ac90f3a6e546c03652ebcde8f8d88a7282626d44177854aa41ec1c66eb6f4d787853711b80935f5e3e3c31d726d0e49d60841119db7ae278de96"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + harpoon = { + revision = 21327; + shortdesc = "Extra harpoons, using the graphics package"; + stripPrefix = 0; + sha512.run = "1894f54ff9eb98975f4eec9250a382534a0ede5312b4b540223d298a0fe5d7d8d24abe2018d07b30773e14bacdd97b60039a458fd274bb446aeb2e26b91bf96f"; + sha512.doc = "4d69050cd2a7c57219a7c55e8d97656fe6f130936d2e79a00d3760e9139799cbb98db2f338586b65412402069b22971ac73e5b722a3911bf1402625dac3e7d52"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + harvard = { + revision = 15878; + shortdesc = "Harvard citation package for use with LaTeX 2e"; + stripPrefix = 0; + sha512.run = "64781bb5c419248934f259dafba2c43270396a1d3f49bb9a79050ebbb5655a5836a07fd69720f54f009501c5294a62f344f6b6c76adb89114a8c60d1e149e612"; + sha512.doc = "291c2a530da6d24ecf1a87818d27b6141e99944eed10cc2dced2537f30ecfc12580c2f58d01245ef53f7d2b803853ce9bf72c03f8a2c3267dde0f4c799a991bc"; + sha512.source = "58720acea1588f742d95d2916f8b1a5c8cba391243a433ae9b2cc4845dd3949c7b2a7a349b87fd663023e4d26b15b15dfb89b7f8db92e14e52f2f7ab835a160a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.5"; + }; + harveyballs = { + revision = 32003; + shortdesc = "Create Harvey Balls using TikZ"; + stripPrefix = 0; + sha512.run = "c282249d5758f6c8aa9dfd06cc4671211e76adc2e7c4f5cf925e713472e60f3d44c8a389c9ab4db5b8096336d46d99b62bde0f8c1f9fb5d22857e3cba98994e0"; + sha512.doc = "89ede2f13e82600a2e78047a08766e99879ef5c64dcbcf747a2c21b1a395f4c1a1184921a8a0064b15b86f574834f602870f6641f0f265f92dce506959c6c4e7"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1"; + }; + harvmac = { + revision = 15878; + shortdesc = "Macros for scientific articles"; + stripPrefix = 0; + sha512.run = "7acf7eb52104bab80b0b9995cf43cac842c106b8aecdff8245b0d1ce8440823e65ead75e470f00923764eadd32e936e02192ec7bbe70295ca254aa57f9b5f662"; + sha512.doc = "a0f3308b938ae73c66398c5a3140662240603248cd6fe338a22f3ca6b23f28789dbccee48dcd94a8bf84de029ec103aa35c5b9a78151ceaf61a9cb60b832c484"; + hasRunfiles = true; + license = [ "free" ]; + }; + hatching = { + revision = 23818; + shortdesc = "MetaPost macros for hatching interior of closed paths"; + stripPrefix = 0; + sha512.run = "71983591270b533a6824a836948fdd15d19c3f966c8277d8948b13c5f38b29c29c0b7fe577661f1ecc570dd71d89fa964afd254d50556b6893667cda95e21aa7"; + sha512.doc = "02c2eb4991aa9775feec0846eaad9ddb74123a64eba8a3731c8e40c689844e542793e0f6884df8666f3cec2ed43af26b2d25254cd0536920c6ff0b107f35bf5b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.11"; + }; + hausarbeit-jura = { + revision = 56070; + shortdesc = "Class for writing \"juristische Hausarbeiten\" at German Universities"; + stripPrefix = 0; + sha512.run = "bfee6719ea75ee672a39234d9416a0415a11658c45f4e5958bb12fa67ea416f9da83d2583e7007e3dad860a18d207c42e3e0fbaa3f09afd0b3825c170d00c63a"; + sha512.doc = "76898cfd9d4bd0f34632092ac7c1d913f4d460beb9b9fd3d98c249156c406b81fe42a4bed754fde79c497f9e674f50c698de598c9bb675270e7ada1c0002bba4"; + sha512.source = "3346edf31e0f7545c1c53fbe88fd12a902ef673cf5dff0858caec415e1b30e3c26a2bad613a947f5897b6867ac5730deff8c7cf24f51d9078ed0494104bf5a1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + havannah = { + revision = 36348; + shortdesc = "Diagrams of board positions in the games of Havannah and Hex"; + stripPrefix = 0; + sha512.run = "f19498f0f9a7ce349fab4291fef80ff2f2f9eb88c60edeb76174918955fab51f22a0d06b533112e594c0f4cfba23feab58c41fe75e1c4fa2fc4db7cd9f473d0e"; + sha512.doc = "ee1a90d491debac3f22f470e5df79e11152d153cef97e8d2e38c5d8a60a1931384d65bb91a6d459e6aeba39741763fa67d589bf9004efc5059699ec621b99e43"; + sha512.source = "9831ea87fbe6e12af8c7fb49d321049316221f4dd33b79a9495c5205b60ddf2f3593c8dfe2f4157e3934f21e69e3004b05802a0d592ae608b2de69cceb2f0c7c"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + hc = { + revision = 15878; + shortdesc = "Replacement for the LaTeX classes"; + stripPrefix = 0; + sha512.run = "17c7037eb04c1d0064dbb637f51947243d1b8f07d46245dfb8f2a38a1ea068ebe41da7e2346ccedf02979003a0a2fa0fbd25eaebf7847b266e21b7c873b032d4"; + sha512.doc = "18aaf579ef82a11ea1e752524d9a04a4a0aa5d6cbb496bde380664723dd30cd421c77dfba1ee6bd88def576c76e202b328198fa6dfb4a9ab451875c3753a515b"; + sha512.source = "42d3f57fb2c38823875116a67e3e71a3b1aeccdfa00c7a201163325c31fbd47d60a1dd028c6d9102d38d6490424bb118178c7589a433a69ec26e505b805418f8"; + hasRunfiles = true; + license = [ "free" ]; + }; + he-she = { + revision = 41359; + shortdesc = "Alternating pronouns to aid gender-neutral writing"; + stripPrefix = 0; + sha512.run = "726954216d3f8328eb7868553875651c2dbc3f626a9eb60fddd770b0e236a4e09a45872020589d8f263cb9f39300d1743e0a35676947752f33933db1e766411d"; + sha512.doc = "580702222de769b066b01af45aad75717d11f46178a2b1f19e0bdc85b67497d9aed8b7ad642f76b8b85c5513f4921f58af8bcb80d1fcb88307f8ca8b07c8307b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + hebrew-fonts = { + revision = 68038; + shortdesc = "Input encodings, font encodings and font definition files for Hebrew"; + stripPrefix = 0; + sha512.run = "5c27626c22275c42c25737d35af3c39a98a921037f6b9165a3222e168dd2c679e75e6854f88713681bdaa8eb8961bf58cff3b34c207bd1775ffea474b3524ffd"; + sha512.doc = "bc7f81a0f09b544bee91bd387504f5a764e7a6df207f3255f5ba25b1fe654532b14e2c7ea9d1d2804db875b05e210b11058eecf7c15fd1fa7a7b516e2bb20207"; + sha512.source = "21203d9e15eb6d3533c7a50c5fadf2cae403dbda8316a57d2a7e834ccbbcedd483f11fdbe12d1ab72ef9039e195f31e57eee1e0df8548da052bb030576557eb2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + hecthese = { + revision = 68584; + shortdesc = "A class for dissertations and theses at HEC Montreal"; + stripPrefix = 0; + sha512.run = "ca64dc8ca2265ea038ac3c2250c4ead4aedcfda74ee28077db2b9f4019f2ea304ed02e7349ad0a191012d2c903a1ed21b879459c048b29827ea3478115c935b0"; + sha512.doc = "28e1e4940bad5a6f76160f42adbf3f5f793cc9a7cd869dfee2389229335c09036044d79d3e14f179d5e8bf32304c04fd23ff997a116338c4a3500906fa6bd1c0"; + sha512.source = "348f79081082f3b1c6362b2bc7a59b7d55947955a482bc5f323119ce3a47158ac07f44c2a95aaeaa3a3c9f2d99f322f3a163b90bc7522d613d55311973639ee4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + helmholtz-ellis-ji-notation = { + revision = 55213; + shortdesc = "Beautiful in-line microtonal just intonation accidentals"; + stripPrefix = 0; + sha512.run = "2c91c08df5e97f9f7ee17f40408d8810cfc3099b5e125b5445a89d2f0d35849f32be0d4150bf7b9f812d5c9c0994c714430fd8d015b9d4ab3bf9879deff5bb43"; + sha512.doc = "20c9b9fce33ec63cd635751acec1d25fb8c5cb4171ea06f3313c839ea400943926550098cc520c4d5fced46c61756977c6294e435821330715ab82cb894222cf"; + sha512.source = "bddeab10a607bf0cd194f9725ffe66e103605c5910abd6fce216c579ba2722afbec724f8717b52b2ad6fdc8f472553519e000d7df41c5a26a157e8eedb41fee4"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.1"; + }; + helvetic = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map uhv.map" ]; + sha512.run = "243904e50c3458e62bf346f5a48332709db226e54b17c731ed0bdac5fce04d76b19411a12b01b51ca93b5ff7f06eee38f78a8375f6244d7b7d53116713d601b8"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + hep = { + revision = 15878; + shortdesc = "A \"convenience wrapper\" for High Energy Physics packages"; + stripPrefix = 0; + sha512.run = "9cd27826b7dde1ebd5830cdd17423f4092c9833c962be7e73b515de2e624a7853badde0c244dc26be6b7d3d9f9c3932fffc48bb4e86e06b90d6699dcebb0d497"; + sha512.doc = "1d77a9bd31e982a8ff908f772d8cf67692145624bf00db2745afaf1aa59fc1da7cae6d2e094379077a550e4d76338a5a82bef8e25c8d733547751a24c84035f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + hep-acronym = { + revision = 67632; + shortdesc = "An acronym extension for glossaries"; + stripPrefix = 0; + sha512.run = "3eeaf8ba9215868df3ad2d8eee5ed17aee0f91c5404b8c93a7ab378ff6d928660853f8dbbab4cc52421f0d902936983a8cb34badd675453d2fc30344de19fb1c"; + sha512.doc = "a17c6f61a44253d6f9db070392b146f0fa297c080f04577f30e190a2742e344c22b3d70a58d3609eea6d981e843bded2a1a01b3fda356c822b1f60ef7ed05271"; + sha512.source = "83b2899d05ac7f8b2e1525e76327303a135860a358c08dcfc6f9d1c66e79c1d743f77a625b225c477a39c07a091d282ea2869fa9f5189ae4e3007e7e792fefb3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-bibliography = { + revision = 67632; + shortdesc = "An acronym extension for glossaries"; + stripPrefix = 0; + sha512.run = "8fa9f0a0f19f7dcadc88e727c461af05f3c0723d2eef1c4c7cc91fa0b507a6cc20f0414c82f7bc3ef12932ea54e8fd9c7c402fb2041032e23ee14c6dafc3a467"; + sha512.doc = "388fed1b3b5b9de09ae4b1cb73de2f618f99293e1b3a4cba5ffaa2d5ae611e454688bea2ce01780ad844380e2de56e62c38013677bbc3a9194d0831de4cc97bc"; + sha512.source = "5e82014ec9abfc9ff19d01c929d7475f6bbc38d0e77b9888f884862f17c1332a868153315af6d13c023e8f94b3d8b567e73d610ebc17c2df799692c603d5b509"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-float = { + revision = 67632; + shortdesc = "Convenience package for float placement"; + stripPrefix = 0; + sha512.run = "ccfbce04c651a478a811b2148141090fffbdb3851a05b9d3fa7683943fde9e6579eb75693c4b2834741b6cf02a5b381d1f80bcec5d44783e71605e445840145a"; + sha512.doc = "11c922d42d6793dffab0cf82f228f554510dc089956030c9c5e76b0a17e4d96ce2ae4d95533f0f704be1d4054f35884901a61ec851fa73f68b06c87b93f18821"; + sha512.source = "c896cd60a4b8b4bf2bd46425dc615a55132fda57b42ad536807bba8cfafb65feef34cdacd4efc2b90de2b30bd859d6695b4f670d5f507786c48d19b8d0dea842"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-font = { + revision = 67632; + shortdesc = "Latin modern extended by computer modern"; + stripPrefix = 0; + sha512.run = "a70b15ded3774985b31a78ae5d05572922133d3fb59abcb482677ccefb6767726b902b62007e9d0e14950ca9e9f133c8677d6c2d352e0f529a3909b5f6da867a"; + sha512.doc = "97a4c20933260eb24a935ed7a780a6e0a49f8b305872a33de5fe6df439ead0e555b909b04bd559016451bbf5cdc3494a3854d257b1804bc022a8925166103877"; + sha512.source = "d85c106c458ebb002830f7f0cae13996f203bbc3377c66bc2776b7c501e6c2bea26530955b250eb5dd96fe4b6a18af18c9b616ca49096b9133d0041782e2ebbd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-graphic = { + revision = 67641; + shortdesc = "Extensions for graphics, plots and feynman graphs in high energy physics"; + stripPrefix = 0; + sha512.run = "59dc1363cdcbe8376b5d5de1a2220c9d70c7022d1d943f657ff226a9ec1bafc302b30255983c090656d293c0995095dc325e1cafed113ff43ea74d2a85add741"; + sha512.doc = "9398029fe703f385decf3ed9295cf64501a9ad7efc3c50bddf1ac261e780dbe5a4ad9fe5f1871c2a8f081909741ec11a93b2b399b89c841cb9b661d812f326b2"; + sha512.source = "fcd58e2b778eb16b6b0cc9d36d44f233b9f2e40a243dc8792f37b8159c4ec3b9500df418465ee2c809bffb24d919d8295dc83b661553ab413390b0b5cf32b9c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-math = { + revision = 67632; + shortdesc = "Extended math macros"; + stripPrefix = 0; + sha512.run = "4446d255ec62b12b2eec1958696c10f4d55d83e3ccf30590f40d146d1305db3a351894c73d03baf6327834d0cee4592491c0a3a57bcfa7f95af0e172fef3148d"; + sha512.doc = "5110d1cd03ca6b925ba6872932cb53c99068399a5329d7368189229103e13f79296bf6b97b2097ab800823eae6dd14ac408fe404d309c37b1e6e9a20c6543ba5"; + sha512.source = "d853885d8f6910843558fa4854b51719e3d4917a324096e5dc38cbd7b701e8e250dea3a86fb803637268f36858760c2ac82ee147cd982df0b1516b93cd92150a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-math-font = { + revision = 67632; + shortdesc = "Extended Greek and sans-serif math"; + stripPrefix = 0; + sha512.run = "0bf2ac1f414216568cfe4247f1c1c9187fbc8133831ebe7a55b2c2d3d30555db36b0c0c1edc2e8bdb799a34b20650990d26c1cc838c5a3a31c55bd9160ab1efb"; + sha512.doc = "eac39c9916a87efd036b9f680ee9b774584845d1a3451b192857d5db72cafb1eae5ce580f1225fc6afdffe80e136f69ed2447f87986cdd3afb34adc9f9d9a49a"; + sha512.source = "ff88e396d084bd47256015530ed0d9b6a2f29f67a0a88db018fa6c1efe5d949449a8ecb339e4ad438ebaec4f57792b8cd83496ccab23ca64e383e28ac3929cba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-paper = { + revision = 67632; + shortdesc = "Publications in High Energy Physics"; + stripPrefix = 0; + sha512.run = "2cb6988dccd76f121a7aa39de3246559caedc0cc697a25382f7edf6cab36af32b03db915898f6073b31cd459e8dabb3da3acd387bd0c027e44d40af917613c76"; + sha512.doc = "dcb2f4aff93c609edae00fa44c285cc6f5d5bed76026c8d5f3f722deee19dc197a28dad7372f2b44466036d6e8aa0e576457e07f953d36953219175224fc6818"; + sha512.source = "ca7865f2f8ce574fec8d7b3a9faf77ae3899d75a2c2bc7200b8d355b89149cd88e0fbba66d5060f5b5cb567aa6a355d5ba45d34863f7fbd5749b4073e6114437"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + hep-reference = { + revision = 67632; + shortdesc = "Adjustments for publications in High Energy Physics"; + stripPrefix = 0; + sha512.run = "9cc4b4b63f41b28fa95fa6a81e47b5028c8ed0bdd03670c6d239bbcc09922265dc69b443ab2b1a4032cbf966a5202ff6e8b1a8c61afc2072e6628d11e071391e"; + sha512.doc = "588d2c5a2990b44d64598cf698cc1d6e04e92991e5319167e412692d62ee54de5c6053e4e10ce719f470ed08c028d03f9dd301afb65be4f5370742fe621a80b3"; + sha512.source = "84ca10f669a9541f7c51609b72d2caee0bee956489b4b9efeacd356548ea573457bc5cfed865b3806b1175d0d6b3b47793283589eda435b065668395a01a255a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-text = { + revision = 67632; + shortdesc = "List and text extensions"; + stripPrefix = 0; + sha512.run = "bbbf90b0e85a9b962267f42a2ced125448f8aa85bb93e347214164167a151e663f647b754e4b55faf42041ede7b6e90b6a073290056e00814ed25bf554eb20b7"; + sha512.doc = "5c914c5b3bbda70d93fb340b863c656d67a480eb3f59c51f05fda65396d408ecc26229992bf4a0161fbbfe0801e8807381ffe7fa3a502ca68b56f5a3afc88caa"; + sha512.source = "0052e0357e20251faab93ac645cec196a504881db615869e18073124671005a5c942e791705f2460f55bbc8bf4aa4906b74ff6cacc7174c59aaec6106afb5291"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hep-title = { + revision = 67632; + shortdesc = "Extensions for the title page"; + stripPrefix = 0; + sha512.run = "6da28ecfebbb06469fc666978d8674e81b60ce019e0f9a730bafab928d95af4d92bb8783275bc261a43cc61efcb14cfdd4973fa9f52b92f33d70890983d89e53"; + sha512.doc = "3841dc3378d6f8fff0783815f68d75581dc5623961799a034410de2e37224fbf0b1d9ea6b0b65b9b5c339cad565520960d51f7077f7c785807e9afb5acf83d3c"; + sha512.source = "40f64530f2328fafe8163d4bf0ce2eaa7ff34f3d1661dda967bf14593af9270e33c8e3eaadd79b7d9b70e065a8876afddeaba059c64a7b0759f1cffe3bf565b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hepnames = { + revision = 35722; + shortdesc = "Pre-defined high energy particle names"; + stripPrefix = 0; + sha512.run = "ec893de8b4cedd1b18dd16c3237fa79b434e91cbab4b856c4fbe11afef162b560bda18c0fd75ab2c47b863cdcca1d64809a139d51f04e9c2f45eab6ba4036c28"; + sha512.doc = "36a0966b755b6bb0f0dd27c80235e66af7c5252df1ae27652e59fd65fc5f280eb487666eef04206813438204dc592c0295651ccf0bce1e5f85f4797cdb439850"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + hepparticles = { + revision = 35723; + shortdesc = "Macros for typesetting high energy physics particle names"; + stripPrefix = 0; + sha512.run = "fb9229745b601b6f731c959856fe46d6871dd3a1c7fec2bac8116f4d74a575ff52523f610599979e25e7147b4ae6d36906d19ba66260356f15bc1a47a2d57460"; + sha512.doc = "539025b2f0998bf031f417d002028e29edc58c1818d0dc9c07ee58c6877b5709936be23985ecd5a518c36187f451a2d5df66b5832d0019ff8b755c763b903aa8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + hepthesis = { + revision = 46054; + shortdesc = "A class for academic reports, especially PhD theses"; + stripPrefix = 0; + sha512.run = "ea6543fec07480af8db52e43ea5fda346ed4e9ea245af0810a6988d864675a903841849e502506b333cef0b1685a6946ebf1f686bbc74f4ddcc7eea676c019ed"; + sha512.doc = "e456a0ca03da4bf71d767616a140b6e1d922e05944a4db2c0cbb360dff39fc7e8bae741ae5adb49972253f38774f1a9c65393bcf4e38e3c568b0215a04f63d48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.2"; + }; + hepunits = { + revision = 54758; + shortdesc = "A set of units useful in high energy physics applications"; + stripPrefix = 0; + sha512.run = "eae3b071eb3c81e79f166a925f5a3b16ffa3e992073f318b8a193a8188bff5b5222cef7533e398f1481671e17849123947577c13a182f40136124fe6368547ff"; + sha512.doc = "86f0080a818aae8743f9c2ef20a3c87f2f23e29641037e91a89e3f195f55fb6653c1ebf1e990b1a984f2acad26243bc07afda6cb2b00d58e5f2416a0f8fddc04"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.0"; + }; + here = { + revision = 16135; + shortdesc = "Emulation of obsolete package for \"here\" floats"; + stripPrefix = 0; + sha512.run = "35c9ac325579de5d3bac4b8d16b1f30355398037cd0ad1c52b1585eb7ec666e743680eb05bec7b1f8cfa3bba3d7f5c0e6e06cddde6ca879ea708388df140eef0"; + sha512.doc = "482a2ef8edbe41ce76e2c32bb579b132c84306cbd5387cb5249b10a02826e610229ec9c75a1df53b5b930bb982e1157ad9ffa63a77f84461cb6cc6332f6d6e54"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + hereapplies = { + revision = 68638; + shortdesc = "A LaTeX package for referencing groups of pages that share something in common"; + stripPrefix = 0; + sha512.run = "b796f6f276bd9cdea0f469482c96aa42956417c544647df201a8dfecfc5041b726a1ea1084a51b392b6f71b3172961689cce0cc7be63c146ba7edc3dc8bcac35"; + sha512.doc = "185798c65981f2d09b5c49ac3bfcca8763ca929399a9f534316ee8345f5550a437be10dd39bc886febc5d9de4156c0642c125ca2a033d129479c9cf98bc885c6"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.0.2"; + }; + heria = { + revision = 69058; + shortdesc = "A LaTeX class for Horizon Europe RIA and IA grant proposals"; + stripPrefix = 0; + sha512.run = "2ddbf4e07a47f72b402087046e4778d7d655af7243465bb7ca4ec10c3c15b72c49d8c6343e4ece780ac4aa1e2007e3fff4f8eb395673952d8050e7b6803b275c"; + sha512.doc = "08e4a34df324d61089a7632b2b8d2b41ff4df47fe633803c1c246525b86ec25ec40f6b56182432488a3cf4d1d90b36038773104d2c78a809b12d04f7a9a23bfe"; + sha512.source = "307a67c4095b52687fd978da3a1aa90b4cfb484d5f00876c86bad6c7103d926cda269ea081781b08a4b3cc2990e6570f60590b2b431f6a3f9c4d5c58d43016fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2.1.0"; + }; + heros-otf = { + revision = 64695; + shortdesc = "Using the OpenType fonts TeX Gyre Heros>"; + stripPrefix = 0; + sha512.run = "370ee21398ddc2f3bf285a7c6c545e998a192d4dbb5790a7d2a9b6835d9076871a349001901764761fbdcac0e29d5c0fae8800dab4a34918998b54b7a83275af"; + sha512.doc = "fb99aa73c128cfb184a097b0d9a32a007ffd9e135d74b543cd23689bf5284176642c1f7a635b1a24ee167b5ee44daec090f7f78dfe9636fbe88351aef125d8ec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + hershey-mp = { + revision = 64878; + shortdesc = "MetaPost support for the Hershey font file format"; + stripPrefix = 0; + sha512.run = "8759bfc2237fc1954e3ea3a47355cd42c48479ce01d959cf0b072ffba4f26068e99f32737bf8669a509f53085b8d8e5c5b0b02f9a7fa6ba73a38bc996539d902"; + sha512.doc = "d869c70b0919380ae4d88d9cded20baf9a8cce0946550d1a3b80056f80bcf2eaa7fbffbe16a3101c2a04fda512ff1b9160786c05c279a78732e1909782cb2b23"; + hasRunfiles = true; + license = [ "free" ]; + version = "2022-1.0"; + }; + heuristica = { + revision = 69649; + shortdesc = "Fonts extending Utopia, with LaTeX support files"; + stripPrefix = 0; + fontMaps = [ "Map Heuristica.map" ]; + sha512.run = "de0cae8f801f690e2d07ef7b63ad4c91d91ddafb8c3044441acb9d6a8e943f1c1667e17c0d2d9e4677b3a1a562b072747bebeeb01ded4bbd713b4e6103221a4f"; + sha512.doc = "406d07cc807454c429e644b7572456b2d9f49d2f48093007c43cbd3087d108beec1806f810508a849bfced690c97141ab34a2daec7ec641c8bdc71cbb55a43cc"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.093"; + }; + hexboard = { + revision = 62102; + shortdesc = "For drawing Hex boards and games"; + stripPrefix = 0; + sha512.run = "e82683253d7790448bddbcefc617d0f0e91b5373de477f1c78a5db9256d632983b1d5f700a0c6fcb4490b746e932de3fe40a22875a6c0d37f6d0ae728867b73e"; + sha512.doc = "97c92b9c8644cf060da8b3306c8a3f26d1c59f36b1731ca4b6af06ec77211ab676963d5ed8fb70c6a63096a7224cfaac22cf77d5dc39f937902815bea778f323"; + sha512.source = "f2ab006e01d1ff8ed68252f594d3340441a5a6bed7cc0cbee6c28e119a923a20b186e1f08db7444c75de52c86afdb9aa86767278f0b506a9c601064783baef95"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.0"; + }; + hexgame = { + revision = 15878; + shortdesc = "Provide an environment to draw a hexgame-board"; + stripPrefix = 0; + sha512.run = "b16abb669f6bb5c3111e6c333353cc37a76431c49920a4cd22af79f6237f78a5c56124c5854b7665e9dcf963fb2715c488dd7ef4df86d5582aa7b3dbe3d08822"; + sha512.doc = "0fad11a5510dd1a2ceec227c46c3f8c0c387ab3e2819bd70765d363ca5f97822147bfac62e69de773a96d24a881394c35c1542a8f08a1828a82f94aaa7f02644"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + hf-tikz = { + revision = 34733; + shortdesc = "A simple way to highlight formulas and formula parts"; + stripPrefix = 0; + sha512.run = "47ca98b066829e6ea2009c4beb92db2c7671642c495f1011df9be00d546f3613b7853aba5db88e3805441eab66c873e15b60f5ef75cf21e906f80b5f11aa30a7"; + sha512.doc = "234a8ccdd9cd921368f700fdcca818d0c76265371ac89e09c1a54454fa3e00f0f28fdc7f962c227f9bb69d851585f2c65e20b4a4093aacc3ad0aa84d1abc7f87"; + sha512.source = "74fd110da2d0d248d70811db52f220012c0a41cecfaf702765cf8bdeae98d9e1a96c6087770de4fcc1ec249901ccc79837ed4e89b4527dd3f746ecf503c201ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + hfbright = { + revision = 29349; + shortdesc = "The hfbright fonts"; + stripPrefix = 0; + fontMaps = [ "MixedMap hfbright.map" ]; + sha512.run = "91c8b007dd8ce71af9dbc98a66a82a395d68fc87a0abcf9518b5b89a98dc23b28f1b9b9aa551f82b920dc3e2d8b6500884eaa3bc98be48371a9774f9f283a641"; + sha512.doc = "7de24b513093d965fab1f8d7d13ec4b356e7f5495cb3a8f17204b1a786288488b4921df6b7e184262bdd3aa11fed6483a25d0bf8e898db05c8b1f7dff769c175"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hfoldsty = { + revision = 29349; + shortdesc = "Old style numerals with EC fonts"; + stripPrefix = 0; + sha512.run = "5ff36855df468bf59d387d56f4ea65c86ba304eb2495f2ca110558ef48c528ef444c7ebfaa378a454c311c806525ddaa639a32d3d1b16ca492b641f223133390"; + sha512.doc = "1f88ae3c13857be317ac2097093bb368a9f1ffa2a8fe1b5e15f59622dabdce2f2b3aededbca31a4d17f05c2dcb28f8ae0c9be3cfb1758bab4501a99efc68612c"; + sha512.source = "5ccd5708962e9ddeea3ac41426cac6469ae22914fc4bbb5779e25d592d1cfb0df78f73d79c969e00b68b38eb9ae7016cf394f9592c14d9400bba152e6fc91092"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.15"; + }; + hfutexam = { + revision = 68829; + shortdesc = "Exam class for Hefei University of Technology (China)"; + stripPrefix = 0; + sha512.run = "4ebc270b01ed4f0e9d1aa501cb16cc0594c209cb77423b3b83b43600cb1080fbbfa8ecd9d2512e460d7215260a3045f1f33f469762e8a7321ace472d69e0a43b"; + sha512.doc = "bc70bcca6f0dc432fe6fbf1c92ae8a364a93a8e94d65cbd22939ee2313bd5d82e2446e60b6dc0f8a4b88e49f5cb2b3fef9ea5502e5362860eff10a8123645c40"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + hfutthesis = { + revision = 64025; + shortdesc = "LaTeX Thesis Template for Hefei University of Technology"; + stripPrefix = 0; + sha512.run = "928dc93116a78a440fd1dcb163ccd5d88daa4b96a6850f5bb45c996c3c81249982588ffda7f51f4c76f153f3df6f85e033ce15d28593c4d6235f7781a829ddb6"; + sha512.doc = "491a841f563a79fbbc71d19bc9aa259ffc4429db53c86812724306432dcd7a5d3af98eb2ce1defd4f6af02fd5f4b34d4b5a96de540e95bd59fd7991ddd5dbc85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.4"; + }; + hhtensor = { + revision = 54080; + shortdesc = "Print vectors, matrices, and tensors"; + stripPrefix = 0; + sha512.run = "ce772bed045b85de5032e3b4beff52958e18513e2c9628e67505b75baa17befe4e3a5eb86f812305b87dbd15dd2f483df78ca7c5db54b64cf18abc75a2ae8f59"; + sha512.doc = "aca1224b327f448bbb3f598b350fd4e569960bac9d05b8674b4cde79c4a13b376dc2a932b8fbd315f63f9dbc930ea28599afc18340eb36d4a38d967c14b62152"; + sha512.source = "6cf27dcfc865514e9274053bace69bd71e6699a501195c553ab3386723b375714f14829e70163539443c4c63b2821be8357653f137943cf49f26e0569c0fb0fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.61"; + }; + hideanswer = { + revision = 63852; + shortdesc = "Generate documents with and without answers by toggling a switch"; + stripPrefix = 0; + sha512.run = "9124e631262dce82cea19158e34353817129e014ec5808dbfbe87df661127d516664de2a895622344dc663c68ca51731bb6d887a5043789e3d830fa908b82cdf"; + sha512.doc = "f9bad79f55157a0f9007c1f551592d0e054f2a519aeda36c175afa807a70542068cce1b9bffb31855de8e99e8460fa22f41f046be25c2bb4757ba859300b77b2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + highlightlatex = { + revision = 58392; + shortdesc = "Syntax highlighting for LaTeX"; + stripPrefix = 0; + sha512.run = "befd40ea2efc15015a76f97add004e33da86c628b3bf58277f8a9feff9396544acdc6603cae74e7bb88d2c819656edcbce9897e32f65156f39a0667c087a491d"; + sha512.doc = "20760262af6cfeccf512ab205fb874b3f1c9b3c15637ed6500bf5b627ba2f319963eee0f76aa480e1257b0cb31288829bfe324f05afde290c3433aa9a018c10d"; + hasRunfiles = true; + license = [ "mit" ]; + }; + highlightx = { + revision = 68756; + shortdesc = "Highlight formulas or paragraphs"; + stripPrefix = 0; + sha512.run = "64919a37471b4ed0520cfcf8685a67ba2f9f84a278b9dc7524a484876e95072906cc5a7d40bd8c751ea2d4ec65633e589274e0b729f43625b46f91928a50b3e3"; + sha512.doc = "ff1b00aacdf83fcc54021520bc447184ebf29498d2b5ea66b3c3266560066bc1b05d7f9edf61eee810100531c76db4c65814cb1d6c3051dd1e3d4911e41c145c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.5"; + }; + hindawi-latex-template = { + revision = 57757; + shortdesc = "A LaTeX template for authors of the Hindawi journals"; + stripPrefix = 0; + sha512.run = "1f6651a4aa033a7cff44caff62d01f3dc5dc280bd19d8a0541c78cd35116e9f765517a078f6f6f7a25f9ee42fc4e4e743b86a746e80583b491ac399d46e94ff1"; + sha512.doc = "459a131616a15431dd489aaa87a23533ae5eb58575f38757a81af8eba425bd4e5c0c0f3a11a3c030d04ecd7d29e9ab08b3f4e270961c4c8e8791c15a497ba7fe"; + license = [ "lppl13c" ]; + version = "1.0"; + }; + hindmadurai = { + revision = 57360; + shortdesc = "The HindMadurai font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map HindMadurai.map" ]; + sha512.run = "24a585a4452895c901b41e64613d0bf3b2438c0bdded45b38ec6b61206cca96d5f0dc12ee5fb0073bcce95f208971e0838469e000108bb2d24567b2c239ba936"; + sha512.doc = "9cde302caf78d14cef5c191c6df0179991d07d8dcf40dd46941a966062d3df2ed5ccd21b6f5e5333bbab9245962cfed9ba75161c16bd8e0a914c231f9f420ef6"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.1"; + }; + histogr = { + revision = 15878; + shortdesc = "Draw histograms with the LaTeX picture environment"; + stripPrefix = 0; + sha512.run = "987c392828a4995afdb37b10194c7735a7dfe3375bcc6efda6592d3f35351c369c045a2c1464cd2653d6275913a335ce3d527afb44c51ee38d3038d4751eaadf"; + sha512.doc = "6cebdf9d6000ba48dd8106645e7a05709ced06c8790f8383a036629d8d53ca434f5c5aa0ff511754ea9e00fa743e435a304dacc16edf18098409972f763f9087"; + sha512.source = "f5e764adfe67c9e07261ff1211cc08ac9b4b076e67683dc50f9759e942f50810a72222a9669770b9f281b7f821d50a7da85014ad65461dcaf1117d54b98d89a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + historische-zeitschrift = { + revision = 42635; + shortdesc = "BibLaTeX style for the journal 'Historische Zeitschrift'"; + stripPrefix = 0; + sha512.run = "da501792653c77f7cdac978a348e1267d4abc2e80d8b5565b47fdab4a1e2204f9544bab972a291d191ce26bd29203ff28a6440e2f8969cf1b33a5cea48998b04"; + sha512.doc = "1b091b850e4936e8e6484ca484f740005c66458655a0cbe24938c3f33f23807fe9b7a0ab93b38f6a3481c684e35031398860d5452f6bc3fc8a8e6f4c2e82f927"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + hitec = { + revision = 15878; + shortdesc = "Class for documentation"; + stripPrefix = 0; + sha512.run = "d7ebe166a23c05a1b78552c102507e697c07b955cddc8f4061d22fc42fc414664d3a1bc1c08e0dd122a987c736d24d4935dd944b37f62fe260b3c811678a3b30"; + sha512.doc = "f166b529f29f0470770d5a24e0f3ea2be9021732fb5373611b87cda10ff2196d1d121258fda75369a2f0f9a65324f4a8dc0d3c5f377cf994c04807b18b5a46f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0beta"; + }; + hitex = { + revision = 66924; + shortdesc = "A TeX extension writing HINT output for on-screen reading"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "etex" + "everyshi" + "firstaid" + "hyphen-base" + "knuth-lib" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "hilatex"; + engine = "hitex"; + patterns = [ "language.dat" ]; + options = "-etex -ltx hilatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + ]; + } + { + name = "hitex"; + engine = "hitex"; + patterns = [ "language.def" ]; + options = "-etex -ltx hitex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "etex" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "b831998a078c61be41f376c73a63d2996ebbb128aa90dcc9f21e1e80d2e834d6628d150d9e98819defb4b38fcfd9e1ddd0239fd0ddea19d0086c7187d3d80a7b"; + sha512.doc = "f278d0d4a4b37e4489ba46ee3325a9af5bd7205359b55f30a3de10de36182c754974e0b7a0f506ac233280ee395bfdb5a8f7f5c3ee1cbcb0c30480338968e0f9"; + hasManpages = true; + hasRunfiles = true; + license = [ "x11" ]; + }; + hitex.binfiles = [ + "hilatex" + "hishrink" + "histretch" + "hitex" + ]; + hithesis = { + revision = 64005; + shortdesc = "Harbin Institute of Technology Thesis Template"; + stripPrefix = 0; + sha512.run = "d4060e3b06d2a103f414402e83bf5f5277c2af784b00abc7c6c0468518b0bbeded50f08735573e4a170eedd46227957127e3c3d2ab44edebe7386a7893af432e"; + sha512.doc = "c5fe2912c4429fc14fb43aa7de9ef76e30b0354f8e673ab9ce693c75a85f5c6dbf77927d1dcd82c0c5aae4a84a665d37fdd505f1bb2dd0e1ade7e5dad3ba5ad1"; + sha512.source = "64515fa70127ba17b9a8d846c9670bc93f16db80db83945037a4ae8b505979202a16e0fc7187731ead320078b8d9277337b555c2b2a271e99677e0330940b9f9"; + hasRunfiles = true; + license = [ "lppl13a" ]; + version = "2.0.11"; + }; + hitreport = { + revision = 58357; + shortdesc = "Harbin Institute of Technology Report LaTeX Template"; + stripPrefix = 0; + sha512.run = "e91894f8589f029d9cfe58d743d495131c24f0f6d6705d52d34ef34e1cbde5ba6dfd8e256cdd09ad7fa3080c613c3feaeaa15d3ca6ddb51fb82ba0a4bc333b99"; + sha512.doc = "e7f0b2566042a8442d5fd5cf36e4eeaffdf093a682b8c640ae8b059016997148d17d9449fdfc6026ba169731e0a7e2bb60c525a4ace29e296fbf1a910e887e9f"; + sha512.source = "7abb2458fa0a46e21c4d7e88699a3768555e954b37d2406a11d26925f520cad6a02e22282367d6787c560d0cecd34a1ecb6e96335b3f22930a083db5aa50e649"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + hitszbeamer = { + revision = 54381; + shortdesc = "A beamer theme for Harbin Institute of Technology, ShenZhen"; + stripPrefix = 0; + sha512.run = "a90ea22943c228d15f659bc562d79b9e50b157451ee9d06b02cbcdf5a1ef4c1eb353c756e0963d113d6258c1799ab22f71a79905387c78638c01abeb3d936e00"; + sha512.doc = "84d8a9edf719b1af7ee9d8276d91bfb15306bc3a5632c5c0290412533a5c321c1087bb642104d47137007c9328a346f72c8ab87b9d5f8b94e3ca0b6d2fd18a70"; + sha512.source = "4e62661f3e51baede19234e9bea18065833ee07d1edb6efbd434d8cc194f04adb3ce48e74f93050a4e9fae1d4b77f5efd0346925b6ead46a344503b9af96a23b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + hitszthesis = { + revision = 61073; + shortdesc = "A dissertation template for Harbin Institute of Technology, ShenZhen"; + stripPrefix = 0; + sha512.run = "b7a3dbbed2d9520aa26fbf88e9fd5f864912dbf0ebdf052cf65fe888676b9d5ce9917d154bef8bed2c5cdbec6bba5ce57cd434bdf3d9ff8c41ca6fc12f07a8ce"; + sha512.doc = "577c2dace816b5356e3a2da21f8e95aa165e55b75f5df0524d5abe6649d6e1879b7a2e97d0da88890e37baa05becfbcd567b977d62c58f17e0f372234cf00b36"; + sha512.source = "cedf9d399434f48032d4bde2fb91088320b2bd8b939629ee71fa98e744e8de1dfe14b4a01787fc9eecaa7ce8931b322bc0fccd7d96c7eb5e24f2097362063fa5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2.1"; + }; + hletter = { + revision = 30002; + shortdesc = "Flexible letter typesetting with flexible page headings"; + stripPrefix = 0; + sha512.run = "bd79dec347980624c634918880718af9e434e24acaed206815e974c2db856e8f424e12b6870d920079626423f18a02fd326bdc387c256ae9c3a1dfa4ae26e71b"; + sha512.doc = "67a9a39cf0c8ac1054588ad542a8ba3705e94445920d4ca85b46423a4cea364c58e8d2b02b7d7579c9684653734f0766e8ddced28a7c5ec77e0daa3c3dee26b9"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "4.2"; + }; + hlist = { + revision = 44983; + shortdesc = "Horizontal and columned lists"; + stripPrefix = 0; + sha512.run = "9e2150f08a7fac07a0e2e36edcecbd5c16ab3c119d8532fbae9399f14c6c7567d2cf4e2a92eda9a650049a901a35b6a9a0dd3423a06da6a9d266a3859392334d"; + sha512.doc = "5b3748d7f67fb51dc0df2a03318e96ac9224abc42291ab475a907befa14fc210d9d2371005150404480900865e8ffa9f97e3ab122109bb5454c3b061f66a064d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + hmtrump = { + revision = 54512; + shortdesc = "Describe card games"; + stripPrefix = 0; + sha512.run = "34b2e61744e3f8cf180a61ca13788834466dad7bdf831e576829e0f6613c5e8a6330075e89516915728a5936a68c14288c79e0f050e5956964d69bab3784d9c6"; + sha512.doc = "36c1a35cb4efb4dc340a439a921252cbaf48d3f0b7fab0010a7fa22d8b03e7b5b644244410efa9fdc63b5fbf69eb9396cc048908d00210e650941a0647d3f4d3"; + hasRunfiles = true; + license = [ + "cc-by-sa-40" + "free" + ]; + version = "1.2a"; + }; + hobby = { + revision = 68137; + shortdesc = "An implementation of Hobby's algorithm for PGF/TikZ"; + stripPrefix = 0; + sha512.run = "0caaaf772dc325e70594f909f1a58740224195aa7af7ef86571e7a97e1245cea5ad6a704415a3275719fadaf74ec55605e66af55dbbdff4c524f529e121035ad"; + sha512.doc = "3e418503ef48dd0be479f17171d8c6767c77da95d43a2f31a374cbb6ed47c5129e2baa64ca15128240856790ea92acd2b090364384c29954266d2b9ec6aed362"; + sha512.source = "5978e0c2f5c30145a9a5562661004a50cbb5054ea98907c25690bfd1c55f13190d74283ef79e7995d6f63d2d1516919062fe746b989227a4e95fe091ff5c9acd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + hobete = { + revision = 27036; + shortdesc = "Unofficial beamer theme for the University of Hohenheim"; + stripPrefix = 0; + sha512.run = "d2c79f5d39fbe82b43704a78add3a016768ff282d48ed1f49d1991c6ab56bef5266e8cfa7b3b03bcc944990d407ae43eca99930270ab84679f51323407b861a0"; + sha512.doc = "ef7b1bd487c496cb2ffc01fb2940a72ac69edb1a5516d19ce6a6e6cb197ba6f517e03ac673b2372cc9cd4f40e5c6ea2469c2712528a10a3f5ba09e9d3a46f209"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hobsub = { + revision = 52810; + shortdesc = "Construct package bundles"; + stripPrefix = 0; + sha512.run = "586189051038582c9303935c70bed67975f51472d28b533e4b72ef341d4d93ad8f313774a5c585baf4b72d607101941f01176892499c7ecc5cec3ede2e28a693"; + sha512.doc = "8cf2210285b162e52e2cbaf0d1a9e7027ca3aeb7da81ba238fff97a9cb10c7ba9058f5eb4f28303031a7774f457207ace1f30610cef2f733dd65b35d9ab6b1b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hologo = { + revision = 61719; + shortdesc = "A collection of logos with bookmark support"; + stripPrefix = 0; + sha512.run = "d4c5899f35a7405ff19ba810af17a86c25ba76cd01597dd19e074ec468052a95c85f8a80e1f0467f48f72280246c152bb24928a68fbbdb2cf6f0788cf94703b0"; + sha512.doc = "f92326ed2d0bb3ac455a54889b469f69563d4a91e80883bfcf0ce92fb55c0dd63423be8ec800696f8c078bede28929e8a79d43174e8cd1a802b4a6ac88cff178"; + sha512.source = "38d75dffe94c9af12005254231b3fb7fc8bf577993aec3ac3e132d14f304e400806627058a98f5ed1f8f9dd5f4ce6d8caef1214ab8d5dee31aa66f47126bf22a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.15"; + }; + homework = { + revision = 70050; + shortdesc = "A LaTeX class for writing your homework"; + stripPrefix = 0; + deps = [ "einfart" ]; + sha512.run = "df7e3907150a637b948ead1db86158058a096ca1df98789f012a6e2ad2aef2d4b84c17dbe0d11ef2a459f1fcf9708d5775bbdee25c4542eb3f5439b95c346c89"; + sha512.doc = "6dbf5889b71e0022f87c59008b884b49c7e882d99dc2e7dd39a2e04d8429a71064b71ea389279dcbe919b1d04da9dd3bb6a4998c066aa507ae64f96e95c1e94c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hook-pre-commit-pkg = { + revision = 41378; + shortdesc = "Pre-commit git hook for LaTeX package developpers"; + stripPrefix = 0; + sha512.run = "6fb3009d4bb4016f0d6e92571d52aaf7e3780d39a6b2ec73ffb37112b3f153ed71ecbcd985b81dd841f296a39da83e9004a2d6e6e85e9a49765e1682563cfde3"; + sha512.doc = "3873c4714a8a6d221f860a5d0606113c64482b363727067e0017d27e99d73f31cfdac88a799fb1412225baffaecd7bb03dbdc66b607a075b1e4539ffc0df2a9d"; + license = [ "gpl3Only" ]; + version = "1.1.2"; + }; + hopatch = { + revision = 65491; + shortdesc = "Load patches for packages"; + stripPrefix = 0; + sha512.run = "6c0f9549ce0321d9080cd0dfd3062eab47722bedac79293a14019c25edfdca7afd0cd6bd3b7be67a99a93ea0b347ac798a7b24909886d300e7085ca67d1a5c42"; + sha512.doc = "4fbf84371053bd67fb3d4b370bc335013cb62042cf9c13d2fc1c63a582a56885a93f73a44aff8986b4c657f7d172a1bd75cbde556633647a1abafb72746f9150"; + sha512.source = "bd32091e28973236d4de3255642677966c4c856da4d53ab811780536e3c564956ec8299d75f553790f2208ce2ccf9356fead39a5f501f53e91d108782bc3bcb2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + horoscop = { + revision = 56021; + shortdesc = "Generate astrological charts in LaTeX"; + stripPrefix = 0; + sha512.run = "d00c8ecbc9c76c2864a52a8bc9f802477e402a59c86789252bce1b8296735035b7b9cbb1c3a18baa76cd1d308d4af53d7d2f64ee9aa37a70e33bf27e1465207a"; + sha512.doc = "9bdd655263da0847bed65c71e423e301a35e69d7cceacd650c0e9d4be91800c0de5fa0d7aa917a6d5f5abcc585ed031e6ec84ef003bb813be41e3daa3ab95f82"; + sha512.source = "40627807a0ccda26d1ffd1e2340542644b9d38f5344e427bf33c2e6ef72acbe9de9b7c11366d5ad258361b217373c13a9c8fa88da7f8176af6c738440d054626"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.01"; + }; + hpsdiss = { + revision = 15878; + shortdesc = "A dissertation class"; + stripPrefix = 0; + sha512.run = "4905368d081cc6e7f2c7b43b28d4c6e22081796d8594e5a07e521bb7ab0fb14c9ccce1dcbe135b0cbc5a7b2671e3041d7764ff80c7e1543b4ac4cefe945794b4"; + sha512.doc = "566f0509feee0bc5c28481fb62f2c991827cd5855f9696fdda79628f5c43329b39dd508fe9613d2c0f823bef421a97393fd303d830c779c42ac67f88303a239b"; + sha512.source = "8337cbedc42502ececcfd60adf422e15aba32381c46489a82d8b618286a4d8848c0288136771b8acdbb03af9f39029e4be8e1c287f6dac9bd3ade3b727e8ec8e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + href-ul = { + revision = 69359; + shortdesc = "Underscored LaTeX hyperlinks"; + stripPrefix = 0; + deps = [ + "hyperref" + "ulem" + ]; + sha512.run = "e8e5d7767c93d0f30a7cadadfb2c7644078b590e46fa073db9251426f961dbec4abbd0dfcf6db6056f9a03342a01d706e19da027f64a01adcfa584a9b1becd2e"; + sha512.doc = "56babcea1003db2bc7456ccc77e004814d9dbb7711289e2a0af89548ef2e6b146f027ab7d0503628c7e61ba25691b1b2c7d5a24253e0fb08a30256cfde0c1e5a"; + sha512.source = "eb842f9a9b01a36dd033f2079f0f4508eacad634c89c33e6c2607e78c6016fa441cecffe82fdab65c27870af5b3eedd4e0af45a9db224cd7c60c43a24b1b0d93"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4.0"; + }; + hrefhide = { + revision = 66189; + shortdesc = "Suppress hyper links when printing"; + stripPrefix = 0; + sha512.run = "f62671bc667f8a0eccf2d63b06b55e5483a7f5d1f97e4a1f829c898fe947adf048c21cac10b659160d6ee51f0ad4a48a3998a1e820e387881b6df390ce9bbd0f"; + sha512.doc = "0ade5f947160493a66f8772d6980db65d0c52ef03b1c12cc2841ae40eeebaddb8b0af50a8c28b010cfe7689dd1bfaa136b80c419fe26ecad302699e754f372b0"; + sha512.source = "51373bd9570c5df5ff388e9174875db7144e5868a0da8d5d27a9f4c332dc37c97436d1ebedb60c18b47a1e6befa07e5703fb1d6d5d5f872d46f3bc3e2ef71b84"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + hrlatex = { + revision = 18020; + shortdesc = "LaTeX support for Croatian documents"; + stripPrefix = 0; + sha512.run = "14bd6fdf4a60ec599971b1f5ee7ae5fc649b0d1382f9dff8bf9905f4623f3964c2d552bbc4485680d22cf04651a5e49b71220ec2c05e6599356b6dcee6e4d122"; + sha512.doc = "ecd67675466d365f00e49b775ae3e5264e2d10d574dbbe913d52b3a5b553fe942e06fcca26cb2357fa76688c55fc4268bf7d18f5cb2a90663bfe47c11a5bbde7"; + sha512.source = "01f47918a1926f36840fd4d78debc70cbe09fd2a52b06ede7b40d7c3ce0d42e6385d54cd2cc96eed8bc222ebcbd2e7ab191c41f8c8df82f9b5ff93d2e0f54a16"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.23"; + }; + hu-berlin-bundle = { + revision = 67128; + shortdesc = "LaTeX classes for the Humboldt-Universitat zu Berlin"; + stripPrefix = 0; + sha512.run = "57b3122fb063e5f930e5d94aaa94dd00fccbe865570c345abbb6252c42d3f67ed7f2dd163d9474452142ada7691783b7b4e0aaa8a23fcf6320c4bbc581e5391d"; + sha512.doc = "91483639fbbe4b073eb299b0153eb57383dc59c7d669bfc07e275bf445b22f2eff35a7abd632388d701eb23eb833561d9ad4d865f3e8d7495bf44c74be8dd12e"; + sha512.source = "eaea8de8f9ff48ee7cc3d1d91819cfad340f9f8aa2b666bc23fd28489c585b4344a946cfca6334620acbefa2602f90050476c5da56552088b1c1ddd3c483af0f"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + "bsd3" + ]; + version = "1.1.2"; + }; + huawei = { + revision = 69871; + shortdesc = "Template for Huawei documents"; + stripPrefix = 0; + deps = [ + "anyfontsize" + "biblatex" + "caption" + "catchfile" + "changepage" + "currfile" + "datetime" + "enumitem" + "environ" + "fancyhdr" + "ffcode" + "filehook" + "fmtcount" + "fontsize" + "footmisc" + "geometry" + "hyperref" + "lastpage" + "libertine" + "listings" + "listingsutf8" + "makecell" + "microtype" + "pagecolor" + "paralist" + "pdfcol" + "pgf" + "pgfopts" + "ragged2e" + "setspace" + "svg" + "tcolorbox" + "textpos" + "tikzfill" + "titling" + "transparent" + "trimspaces" + "wrapfig" + "xcolor" + ]; + sha512.run = "0678b16b3fd681a0d1b8da43f87ee2d0d42510de15fa84733c008c8e8298de0f9172ed0046ca58862539564e960b94b3786233f277734320e74678492e5bb3a4"; + sha512.doc = "640d3b244481aed907025fce0271a81cf31a55ba991f599c87e146c005c6349078993b43df7d8260475c82d5abd6d23e77988cead11f0b74422c6bb231bf3595"; + sha512.source = "dcf0989d3769ff2e43580953f009efa4d9372e58d45af5821e81e8766096568a59ebb1ec21e68e2b1696edd5e2cb6f9fa4ee39daf3e2d46d10c56a2f0dcb0e5f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.18.3"; + }; + huaz = { + revision = 64723; + shortdesc = "Automatic Hungarian definite articles"; + stripPrefix = 0; + sha512.run = "78331527a14c974923706a26527c8b42e1467935a741d28e81e7ba0510b29cc26242f8b811ac7025a9be3da1d92a2d65fb47dbd798fc1ddd985d58ad96e82c9b"; + sha512.doc = "32c2279e927dfe4fce1554b2dc9a747aa274c6406a0b98fe4477fcf159d3b978f46035badb293bea596067583ad738373e2bf3680fb1d5e20284a0d45b3900a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + huffman = { + revision = 67071; + shortdesc = "Drawing binary Huffman trees with MetaPost and METAOBJ"; + stripPrefix = 0; + sha512.run = "0d78c3874045ce45d703f443817d9b20b5baca0e3b713bc5f09e18a64102af3d349ebb5b7051a5152eaf06c8d9cd01c3a00b5a3c0f5b4db12f566b5f5356c991"; + sha512.doc = "3c1651e5cb8b527e1c55aaf682003c1639c91efd9bcaa4fa51779fac572550195979c0baf2bb4738f8b5e2628b6deb4af6109938ce70e4238696ca35f7e4ea34"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + hulipsum = { + revision = 56848; + shortdesc = "Hungarian dummy text (Lorum ipse)"; + stripPrefix = 0; + sha512.run = "32e981937f3077fb1310205f17bd10c93ae20c98e098f766b0a90218d81c7708071aa4ca605bfc55da1614116cbd8299f9cf1853426dae04a99669839b2d5c83"; + sha512.doc = "862a91b902cc8bb0d71efe3933bd0a1b0f3aba1023586595d57cd45e15a0b961cc3c56a59315eee02337f89d35582497dd6894bf3ead060d2863823765211e1f"; + sha512.source = "6de61158c97297d4c76691f6aa2686d8ff88317de0dcc951a23e6aa93c63a4fecfdcabb74629e2e12ed7878a8a74987834f36faeae3c5fd661bacf99aa7f7962"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + hustthesis = { + revision = 42547; + shortdesc = "Unofficial thesis template for Huazhong University"; + stripPrefix = 0; + sha512.run = "508c86a6cf5e3d952dd43786f78952cc8bbe635620a913abd82b49c2cfade29875bc924d5ea89803b03008328c7297010e98f70b62b5191d9855e0cc1614d3d0"; + sha512.doc = "5c114cda4bd4264904b7fdfedd55720046403b8cd3c1bce4181dffbf319a9107ec0ad8cdd092922c8c5268aac62437d1128a45ea0cdff4121a40f02e26dc0148"; + sha512.source = "61b6147d4bd063995900479b894b60d929445e60855c522e46abaedfbd33f7516f90a99d5052b3241d7070d375504cd660446d6647c28284e76d0ff9ec5aaf76"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + hvarabic = { + revision = 59423; + shortdesc = "Macros for RTL typesetting"; + stripPrefix = 0; + sha512.run = "2f9af35f3e3ebf6d90ed05a77fcd6d6c079d3a476c26e0704e6f6b74899badc3eb0cc79d37f5f9e8b6a2846edb869bf57fc5b4bf14e834629d126bc71b77e42a"; + sha512.doc = "8508cab70c4cc87665790dcfd34a4465fa22002ca19a41d2d24e21ae0a2ed833a7f3c0e346d36e8c95411ea925ad3ebda8b6d1ee4179610ce0e3f673e6226246"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + hvextern = { + revision = 69651; + shortdesc = "Write and execute external code, and insert the output"; + stripPrefix = 0; + sha512.run = "2a2237872220066195c4ee4458eef20c01d6d1b9bffbb82efff08522052eba3775820bde7133cf9417ac591d2196f06d0f8400edae1fb15c82489731e4b9b28f"; + sha512.doc = "c77b44743e598b7bc3c7963a21d02bbd50e53b3346c102aa72926a46280a7aa39c6e48eb220ef1f8744f4f1dd2252dcefb3d876e788ccff1616fda4d55862a5c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.39"; + }; + hvfloat = { + revision = 70400; + shortdesc = "Controlling captions, fullpage and doublepage floats"; + stripPrefix = 0; + sha512.run = "dd24119659fc1b0d359488451218cabba05b226469c9a56997f6ae491fea42cf58d7b131f7e6ddbd576ae98d94575a9518aa4bb5d10a97875c0e19b647f0c250"; + sha512.doc = "98b26dee51f787d82e49f37fda6e902c39af3c5e0618090bd78e2577d0a080b7cd511064d7b41aa4e356d4ff176e87c9b68399d1e06532e20b6d392d3e714851"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.48"; + }; + hvindex = { + revision = 46051; + shortdesc = "Support for indexing"; + stripPrefix = 0; + sha512.run = "12e47531ca8dcea2f195d86b5721f2a62d2590de5a0b464e5e6de5484ee34803eac14f2474e4a00938f6d5e5b307ed3183ea3aa0a4f0d5874877356de6e8c83d"; + sha512.doc = "2a10c26537e550e3d51330c704711c2c43b872f90db15ee709dcfe603a5fc64102a8b466c5d5b7ab4706d5e96e91b11559305ac607477776f34da97590151368"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + hvlogos = { + revision = 69581; + shortdesc = "Print TeX-related names as logo"; + stripPrefix = 0; + sha512.run = "eabf4a92462aa7ead3ae7930400c641d6e64b520867c9e7cceaa48872dca31716ce965cf105c784b725878fad05e6d082a9f9e9cde94b254c780ce55f7daf515"; + sha512.doc = "3124f1521eee4688e6cde38bb39e9c4a123d5d06d008b23447495fdf11f3b3f8ff98f138f2096c322ebbd8f714e60208958b0b01e98c6b81c09c80eb2908424a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12"; + }; + hvpygmentex = { + revision = 62405; + shortdesc = "Syntax-Highlighting of program code"; + stripPrefix = 0; + sha512.run = "5770b9933ad2dc7c844ba2281a3717bc1d27f67a834de45a87effd400551fc74d111ba5087ceab96b2a9e6ed11293fd0d3dfbaf7ac89c4d9a1434911a2fbf734"; + sha512.doc = "cd7b3a615ab8ca79e0d0e9feb7804cabd9036831d2f9761429b7bf528125d055e29f3f7a2e1eeb8efd4c73c1f6f8e0ed03a2ba47dbf9504fc1a750b4c278843c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + hvqrurl = { + revision = 69723; + shortdesc = "Insert a QR code in the margin"; + stripPrefix = 0; + sha512.run = "cfeaea8387dfd425278cc9a8f278d7a0a1590336e24a8b8112b6407a808688012c970822973fa7b4a2816fdf0422171ec6e2926bb51a012f02c7a5b273465a9b"; + sha512.doc = "ee7e0e77406e2e486a2898710953db49aebc28a9bf39d0e40cda20c38a1aa67d0f48f7936fd36bd417658600f82641f6f7d39d12b328d615ac694abd49d76f69"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07"; + }; + hwemoji = { + revision = 65001; + shortdesc = "Unicode emoji support for pdfLaTeX with sequences"; + stripPrefix = 0; + sha512.run = "fb29647b4b81c5c4cc389fe4957400e01dd408f9b915fa4062218af3b2a8eb852315399251c257ed1220ff48359940c59ab9a09dc7a67fa8f0817e39636a1312"; + sha512.doc = "ec35434e49038755dfaef171273e70baffeb3021d002c83703bdc18d0f181f8027a01272bf5b3ce02ceede62495dc9dc1f1c390323e73d77b1bb6adf226f74b1"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-40" + ]; + version = "1.0"; + }; + hycolor = { + revision = 53584; + shortdesc = "Implements colour for packages hyperref and bookmark"; + stripPrefix = 0; + sha512.run = "5269044c5b462f13c78e80d28f7237f2d6e353da98db50267a5c4f01b22d565b0300c689470f6eb1ef9af7b66c1068c1d40d7a30ae01f30e7b3649189a7e7fbd"; + sha512.doc = "79e4c83b952182ea89b2ae7a1abdafd771359baadd34fce8d573d7449b24908a5bbf515d16d73fd088e7add82c143a458b2c196c125e5b492033cb36da63eb6d"; + sha512.source = "587ca9470aaa935119d142a970931d89444d2d64ec311ba74a697fa4cd982be999e7e62ee9924dd6028f2b9411657d6b1cf4b6cb9887d08cdb0b969e8a334fd7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + hypdestopt = { + revision = 56253; + shortdesc = "Hyperref destination optimizer"; + stripPrefix = 0; + sha512.run = "784fbff599b60abebd3ae794376a65b460c0ac4aa189319e3f245c1feefa5bb501acf75ed345bb6099e301070d0c1e1eaca62129c4e82fae5611526b6aff370d"; + sha512.doc = "cde846c9c4da226d27bd15881577ad3f1c3f0639c3e37fc86486af40939b0efb2d22d522646136b1b2fe2ebbfd5f2338e347b7476be7289d2a3710d43c2fc8ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + hypdoc = { + revision = 68661; + shortdesc = "Hyper extensions for doc.sty"; + stripPrefix = 0; + sha512.run = "bdd5a75f53b714976f54f0fea68093d79dc0d781a708dabbd3cb90e49d77f282ee15cbf8c1082cd5746bbe6b701e58e71bde38141db56cab5042d7556771d286"; + sha512.doc = "cece39375981cc4adb60b20387ca441404a69c734f686cbe51df759b3025833814e9ec09aa4b720359cce4c4ae14b12cc03ff38954c3fb12ef268304a60f9dfd"; + sha512.source = "3bf5a01f6ce3ec8cacc04fdd4d3b83d9cbdced6dc75120991e031a56a3dc4e5958c367f009c4f5fbbdabb02d0d7b391fb8fbbcdc2c4d5f68b9c0cf8d68259d1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.19"; + }; + hypdvips = { + revision = 53197; + shortdesc = "Hyperref extensions for use with dvips"; + stripPrefix = 0; + sha512.run = "515089c437413d6d21c8d2987b8917aca7c046e42c0dc9212b39be1c9119bcc867f70c37087f9f3709db8c9f824ffe16d1b261f34d06d66e12857db9854892f7"; + sha512.doc = "ef485ca27145ffc614c78547f68d574a0b27cd1a7cd5abd5752681e20ad6612e280f34f85c3e1c753bc6cfea976c9801da1768bda1dcea377c19b138ec9f2777"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.03"; + }; + hyper = { + revision = 17357; + shortdesc = "Hypertext cross referencing"; + stripPrefix = 0; + sha512.run = "6e5bbad0a682440e28be67fc893a970de315671e1f4987bebff4a163d9c38bb33d8de9557765f1d8c74386556c59e332ef5855a3f1fe36d08eddcbd2a77179df"; + sha512.doc = "41fafe8bcaf651994c45abd0040e2123caf8e33fd2d06fafd310d978c10ae5c705f7dd64d9b4740bacee51f11fe52741ed64f83d6b236d298cb6c932fd3ba06e"; + sha512.source = "50552c5d6650973719d892d2696ee4885f8fa78d9e9c62e3fabd8ac42f35610c025c508aaa250f52c5c7676cb5e0e6aa4b75efdd19d3c9e1f3b3ac6981ab1342"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.2d"; + }; + hyperbar = { + revision = 48147; + shortdesc = "Add interactive Barcode fields to PDF forms"; + stripPrefix = 0; + sha512.run = "80077002a3bdc99339749e2f76687a0f8597a786fd3ca3f5207ec44dc2037dbec1e696ab58d77ee6b067d6e958357cb8f0c9805621c3feeb40dde004851311b3"; + sha512.doc = "0598acd8fb945605b204c5c99982db63f4fc06fc82c47f7b301ead30be0474c7dde5eb4f78f3aa698160cd068d38aa2aabe3a1fae3c49cc32194e7cd796839c2"; + sha512.source = "99555f8a939783db613ceaf509fbf2d95352ce8e774e750a9d552717eb538a64663a905a063b6b93aa83384ce322079656c61eeccc9678bdee47b2c56e52220b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + hypernat = { + revision = 17358; + shortdesc = "Allow hyperref and natbib to work together"; + stripPrefix = 0; + sha512.run = "0a803b9e7d23d364122869a89a6f181132f00b54d39f677a9d9471c336c933ba0e743fa4100636a6d3e929714a8896ce964e7614800c675ab9df7cce7e6d732c"; + sha512.doc = "04a3f646e1595404513149f0ba56a36f0cc21a29f3ab455f38c4a7c3f5a282199208ac3aad329f38aa9fd5086762d326d85fa5052dba125d944969bfc0446489"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0b"; + }; + hyperref = { + revision = 69523; + shortdesc = "Extensive support for hypertext in LaTeX"; + stripPrefix = 0; + deps = [ + "atbegshi" + "auxhook" + "bitset" + "etexcmds" + "gettitlestring" + "hycolor" + "intcalc" + "kvdefinekeys" + "kvsetkeys" + "letltxmacro" + "ltxcmds" + "pdfescape" + "refcount" + "rerunfilecheck" + "stringenc" + "url" + "zapfding" + ]; + sha512.run = "71d43dc16443357600d83779628922c0f6e4ee1b57b562b9a47cb7c11a2710ac1b573040c661819e71086107fbb6e7a98851c1a99a10fe5db19d406e98c0ed95"; + sha512.doc = "a2893e722d6aa2be885ebb15a96ab0f30c71811dc3b4e9791e2a6c2ea78c2cd6fdf90e485c7267e533f3e90eb71278074d6883cf4e6fd6c7d9f2a2c744ea6012"; + sha512.source = "1fcddde0f8e9c057d1ddfdc31616f1e362c57ee645f23c71cd9e94bc86f41de8ea32dd478f9df91cadcd66f1814072c5b0dbb2c2ee89f3f477302577ac603edb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "7.01h"; + }; + hyperxmp = { + revision = 68251; + shortdesc = "Embed XMP metadata within a LaTeX document"; + sha512.run = "79dfcb70b4df1be8ada345507f0cece0b36c38f57c1b5e92fa008af3ceb5209c5df10d9144a24af4473a2f640d2adb59054cd9985f762b9b6cf7db45ed99c4cf"; + sha512.doc = "b56e9ef7beb7502ba2e952267fddeb3a26597e9e5193ed66369dc3c78f5a08d34b5fca0685cab8f6ec67e12167a1aca309a18b85073b8e9c497641cf062be6b1"; + hasManpages = true; + sha512.source = "02ca43c9809c347a6db12e0a8ffb2ec96db3b27d4c89ceea10091235c6b411de38d76f976a08d139bad0b0efa0b181e2e2fe5e2edd8cdf41ac5043fcc8758bbe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.12"; + }; + hyperxmp.binfiles = [ "hyperxmp-add-bytecount" ]; + hyph-utf8 = { + revision = 61719; + shortdesc = "Hyphenation patterns expressed in UTF-8"; + stripPrefix = 0; + sha512.run = "64055aa046fdbc721fda474b7848b37d094b1a8f5f01e507df80003ba591dd959871c880f04d5bc6e0bf169e99bf89f5a1a7dad1195c8839773fc613f3719d9f"; + sha512.doc = "c4aac42267b75a16559705e7de3716eafbec96a285d523d5e7b2f77f345d8e344e174571e247b9c5de8fac75942bc1b0f924e81efd8356b52c9ed91a149d8f09"; + sha512.source = "2ed5177a81f46bb538517447d89129d82bab87f937c98e4afc6c74863d5f4cc3342470f66d2f5d05247fb3ac26b23ed4b6ce4fd093fcb61fbabac6dd330889f2"; + hasRunfiles = true; + license = [ "mit" ]; + }; + hyphen-afrikaans = { + revision = 58609; + shortdesc = "Afrikaans hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "afrikaans"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-af.tex"; + file_patterns = "hyph-af.pat.txt"; + file_exceptions = "hyph-af.hyp.txt"; + } + ]; + sha512.run = "0f969847994b3b377c752c23f802e8c51b4076efc2d43ad2560a72b83cea3bf0a64d7df18a59afe4289a4547a9f23cf81b0c365a499be85a2467579941fa9700"; + hasRunfiles = true; + }; + hyphen-ancientgreek = { + revision = 58652; + shortdesc = "Ancient Greek hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "ancientgreek"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-grc.tex"; + file_patterns = "hyph-grc.pat.txt"; + file_exceptions = ""; + } + { + name = "ibycus"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "ibyhyph.tex"; + luaspecial = "disabled:8-bit only"; + } + ]; + sha512.run = "3f91560ecf78c5540fd4f5d9890f6aa7a57bcd3a41095985785505b82e40793b91a5da3a01bdc021b11c32db3dd7030a104686b34b496c9094acfb85509cd007"; + hasRunfiles = true; + }; + hyphen-arabic = { + revision = 54568; + shortdesc = "(No) Arabic hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "arabic"; + lefthyphenmin = ""; + righthyphenmin = ""; + file = "zerohyph.tex"; + file_patterns = ""; + } + ]; + sha512.run = "85012062097dd4b624cb39c68b293169a25ab3c9cd15b4474c3a3ffbe4b8ab13d6856c6c70a580da45a2d210952df2d9760682da3917cfd24d17772dc2ccce7f"; + }; + hyphen-armenian = { + revision = 58652; + shortdesc = "Armenian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "armenian"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-hy.tex"; + file_patterns = "hyph-hy.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "59538414bf5a4701199100fbd9d5247999a36bc28c7c6ef2a28deb9024e01605d48839f00f345c848365853ac3a9f1aab7402f44860532d7a5c099d2f27ee189"; + sha512.source = "d25e6347545e00a809db1dc8e48ef3fe67678b9ec93a1f3619d2a5a3d786d6e411c2e9f905120e3c5d01d9489c0a83035ce8025836249c88ee768bf07b8e2ca7"; + hasRunfiles = true; + }; + hyphen-base = { + revision = 68321; + shortdesc = "core hyphenation support files"; + stripPrefix = 0; + sha512.run = "d3f2749cc6946702ff0d51c1d823531bc92b77c1106aec252c84cc8649aa56048556c90e9792f1b0749bba0b86b7c34aa2b04fe2946d1226315dbc73add36913"; + hasRunfiles = true; + }; + hyphen-basque = { + revision = 58652; + shortdesc = "Basque hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "basque"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-eu.tex"; + file_patterns = "hyph-eu.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "b90680dc5692824d60ca603e8bdd2fcade7cc772c8c0f9538d579704fb16165db2baf0c466ccaff46d92491b4a678fa86a127c0d106dbef6d640dfd2f887663d"; + sha512.source = "75a20da77fa056c719ecc1f014bb09c67f62f1c4a3abe04b7cadf45c7a4e06e4492cb0d34a8025f19f3ee5e3330e488212885095335d4a7e97baa5b106576223"; + hasRunfiles = true; + license = [ "free" ]; + }; + hyphen-belarusian = { + revision = 58652; + shortdesc = "Belarusian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "belarusian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-be.tex"; + file_patterns = "hyph-be.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "19b9bd10d2357d0cb6ecc9ddb5e46b65b3c0eec1b2917a78311f255c1609bbb86595ce617d331271a72de934ae4001597f4a04d61b3810e34f3b197b21cab193"; + hasRunfiles = true; + }; + hyphen-bulgarian = { + revision = 58685; + shortdesc = "Bulgarian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "bulgarian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-bg.tex"; + file_patterns = "hyph-bg.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "9763e6ece053594b01cd9255a8a3551eb6b86ab082f6f9283664e256c55d43b9513b624774a650d83215d656334751f569496030187c1c78e2fe80f2d10f2f1f"; + hasRunfiles = true; + }; + hyphen-catalan = { + revision = 58609; + shortdesc = "Catalan hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "catalan"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-ca.tex"; + file_patterns = "hyph-ca.pat.txt"; + file_exceptions = "hyph-ca.hyp.txt"; + } + ]; + sha512.run = "37189e09ee902f2c5145f30180b51211091b07d7d04125c98f1b7c424ad27f6899424b78cd17c559509076eeeb957b4f268fb4130807e7fafb461174fed8200b"; + hasRunfiles = true; + }; + hyphen-chinese = { + revision = 58652; + shortdesc = "Chinese pinyin hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "pinyin"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-zh-latn-pinyin.tex"; + file_patterns = "hyph-zh-latn-pinyin.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "a78b70095fcfe297e2d85a49108affd5d48451ff4740461eed46d395410a665011614c9a89dff37e9477ee3803de6ebaa68595ac39222f2968a4124355ea7fa7"; + hasRunfiles = true; + }; + hyphen-churchslavonic = { + revision = 58609; + shortdesc = "Church Slavonic hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "churchslavonic"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-cu.tex"; + file_patterns = "hyph-cu.pat.txt"; + file_exceptions = "hyph-cu.hyp.txt"; + } + ]; + sha512.run = "c44b3f5fec7b44958336dcfb1a43c5b71fd1715262278863f5fcd74d7ec0cc6f1d572b741256d791e6979f15e4b0fcda8058725e27f17e1deb6e5df5fdb007ab"; + hasRunfiles = true; + }; + hyphen-coptic = { + revision = 58652; + shortdesc = "Coptic hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "coptic"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-cop.tex"; + file_patterns = "hyph-cop.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "fe36adfe900e23f2b0c3e9c3a3d96b608c49bf597222537d355d6a68e2f87f587db78a1921ab1c9a80ea175529e353524c35e99b83ef7f5515ab7c0aacd2f680"; + hasRunfiles = true; + }; + hyphen-croatian = { + revision = 58652; + shortdesc = "Croatian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "croatian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-hr.tex"; + file_patterns = "hyph-hr.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "8355d0aa95bb2e72bfc45015f9ae9f6a138f94441387a4daadfec5be4060878f6e69d05eab15432d99c256c1a3f68c122d5c915164fe343459d658a4543ddf42"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hyphen-czech = { + revision = 58609; + shortdesc = "Czech hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "czech"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-cs.tex"; + file_patterns = "hyph-cs.pat.txt"; + file_exceptions = "hyph-cs.hyp.txt"; + } + ]; + sha512.run = "f5c8b08c2db716dfa6d36fcf337b4e18372978d04e28ff2c8ed0a0b3866f4bb3efb7b498fedbfde5052fc504b8677ae553c2dce73701e219632d8c5460d7e826"; + hasRunfiles = true; + }; + hyphen-danish = { + revision = 58652; + shortdesc = "Danish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "danish"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-da.tex"; + file_patterns = "hyph-da.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "954543a3fb81ff00d9c58315ba59d7a5e3430217dda6c1453bcb7ffb0516025dea4b877eb9d66c9f80ccc69d3d4895bdc6ae1b611d8394435fa647b8b806559d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hyphen-dutch = { + revision = 58609; + shortdesc = "Dutch hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "dutch"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-nl.tex"; + file_patterns = "hyph-nl.pat.txt"; + file_exceptions = "hyph-nl.hyp.txt"; + } + ]; + sha512.run = "111371e47ca29069a5a9144d694858dd899b19e2b38d0c793b1e4884c69ae2d62398aacb4cd89e23246fc025e42872875bc808c1f327ac1502fac88c962e6c14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + hyphen-english = { + revision = 58609; + shortdesc = "English hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "ukenglish"; + synonyms = [ + "british" + "UKenglish" + ]; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-en-gb.tex"; + file_patterns = "hyph-en-gb.pat.txt"; + file_exceptions = "hyph-en-gb.hyp.txt"; + } + { + name = "usenglishmax"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-en-us.tex"; + file_patterns = "hyph-en-us.pat.txt"; + file_exceptions = "hyph-en-us.hyp.txt"; + } + ]; + sha512.run = "a305cf89138e4327844d43a7e21773e31ac97a4655e4d58ae9a46dc0df565e432330debf704c37b4ad552561357521eba0b676755544ceb9c4f21ace09d6dd2c"; + hasRunfiles = true; + }; + hyphen-esperanto = { + revision = 58652; + shortdesc = "Esperanto hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "esperanto"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-eo.tex"; + file_patterns = "hyph-eo.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "ed2976e9fb3eec5d2f0759348b284129e43bf161db571dd21270335388b8aec57e1b8393bc9b246f8a6e9cde22f93a4cb3c1a03dcadd64fdda3d70b576789050"; + hasRunfiles = true; + }; + hyphen-estonian = { + revision = 58652; + shortdesc = "Estonian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "estonian"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-et.tex"; + file_patterns = "hyph-et.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "0eb91153214aaca8c3b5816f5315f9afdeb7c19521c87c79ea2b35e82217bfb23c8bb774baf810206f4413fc663e441ebe6b4962880ca0dbcda9209d2acce3b8"; + hasRunfiles = true; + }; + hyphen-ethiopic = { + revision = 58652; + shortdesc = "Hyphenation patterns for Ethiopic scripts."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "ethiopic"; + synonyms = [ + "amharic" + "geez" + ]; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-mul-ethi.tex"; + file_patterns = "hyph-mul-ethi.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "a1532603758e7f774acba7c13ee74f0046ff187598ca86b2e93b91da31317f03fdbab5d4d7c0814978fb2ac159bd6e5a48e6e734c19758da21ad0a031844f52b"; + sha512.source = "9d6c8c1b0ce5c40d388937328461336a97fcf1fe780fa6198e029f12ef118d9d98f6eec03ea217743851f0217217d6548298df9336fcf33e6c4c196bbdb9eef0"; + hasRunfiles = true; + }; + hyphen-farsi = { + revision = 54568; + shortdesc = "(No) Persian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "farsi"; + synonyms = [ "persian" ]; + lefthyphenmin = ""; + righthyphenmin = ""; + file = "zerohyph.tex"; + file_patterns = ""; + } + ]; + sha512.run = "5b02582769a55bb07d81e748e83170c16aca1c33b0a240cf547fa9c2212f2be52223e258229c760ddc5dd730419bd9e761614cc4fb3b3ba8102841bb779af511"; + }; + hyphen-finnish = { + revision = 58652; + shortdesc = "Finnish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "finnish"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-fi.tex"; + file_patterns = "hyph-fi.pat.txt"; + file_exceptions = ""; + } + { + name = "schoolfinnish"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-fi-x-school.tex"; + file_patterns = "hyph-fi-x-school.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "6aa171d77952165cdcb1b667885f16dd382124ed70ed1db80a9a89553d972720d8ff5f0da1b36669e02c3030d9ff362ab77ba1fa2ba45cddfb460018f0c0191d"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + hyphen-french = { + revision = 58652; + shortdesc = "French hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "french"; + synonyms = [ + "patois" + "francais" + ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-fr.tex"; + file_patterns = "hyph-fr.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "b9d2d05311a90f4caa6c4e8aa8a2e80e9c15fc3552f03f0ac6ec70d386610612715deb6e778247248355a3a209fb2413d6d2aee12f18bc35d5a334870b612507"; + hasRunfiles = true; + }; + hyphen-friulan = { + revision = 58652; + shortdesc = "Friulan hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "friulan"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-fur.tex"; + file_patterns = "hyph-fur.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "d1775a9b6e6b7fa155e44c93271e2ccb41bd1ec143ea0cf624841ad48a123db924dd134e6e60b862a808ad2058ed5b86cb34d98e5728b9dccd3997ba2f06932e"; + hasRunfiles = true; + }; + hyphen-galician = { + revision = 58652; + shortdesc = "Galician hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "galician"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-gl.tex"; + file_patterns = "hyph-gl.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "2d707542f80dc94ad20c0daa776df23b773a5e6ccb261e11db675e1e89f5f303a4f5cd50d97f491cc7ea8b0f3c0d3f6391707812a95d4e72cca3afa7815e566f"; + sha512.source = "b9925168b1f9ae5139ffc3bd34810cc05a27475cfae31e98fd0d7618575fc994ca95d7479506024abec2c33bb20121811244d69c490df18a29d6c93fe02174c6"; + hasRunfiles = true; + }; + hyphen-georgian = { + revision = 58652; + shortdesc = "Georgian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "georgian"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-ka.tex"; + file_patterns = "hyph-ka.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "edaf041a2f92b0f7dbf28042c81838e8fd781cf9c3ad529c314227c94917ce4e8728ca676f8bd42e2a81bae76b11aabc1e22896e3ef9cd38ca4b718bc58fa0cb"; + hasRunfiles = true; + }; + hyphen-german = { + revision = 59807; + shortdesc = "German hyphenation patterns."; + stripPrefix = 0; + deps = [ + "dehyph" + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "german"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-de-1901.tex"; + file_patterns = "hyph-de-1901.pat.txt"; + file_exceptions = ""; + } + { + name = "ngerman"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-de-1996.tex"; + file_patterns = "hyph-de-1996.pat.txt"; + file_exceptions = ""; + } + { + name = "swissgerman"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-de-ch-1901.tex"; + file_patterns = "hyph-de-ch-1901.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "c27389dea67ffd0d45419d484b0c72577b2d5b8234266483add078b970d5d994d41f7cf9a1509ad93efe9489501f986127ea717135c5f57588094393e0d7219e"; + hasRunfiles = true; + }; + hyphen-greek = { + revision = 58652; + shortdesc = "Modern Greek hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "greek"; + synonyms = [ "polygreek" ]; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-el-polyton.tex"; + file_patterns = "hyph-el-polyton.pat.txt"; + file_exceptions = ""; + } + { + name = "monogreek"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-el-monoton.tex"; + file_patterns = "hyph-el-monoton.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "3da84f41aaf7e5d4be0ce609e4d119e65c9189ff6662051cb7e879e9e373d990ef1c59ac7cfead1bdbc6e55b52d4b3ed28d157b22dbec43e5226f16872d5a7de"; + sha512.doc = "865aaf1f9f0fbe130f9006e41ef677713667832745fc24c28cffe805a540a19f7104a3f0fef3258ba0e16c1c456959904887899a4c584338c58de7fcc80c5419"; + hasRunfiles = true; + license = [ "free" ]; + version = "5"; + }; + hyphen-hungarian = { + revision = 58652; + shortdesc = "Hungarian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "hungarian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-hu.tex"; + file_patterns = "hyph-hu.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "868a4c3f4d0eda078054026bd1ec35e05c2f4013e093bf58147bfa2d861814242b55a900ce60384767558c9552ff9d41cf447e2a157bae83bd2877251012d96b"; + sha512.doc = "164180f0485e16a49ba83dcb4721902e8a29f399032d4f5a59d55e424b8178a25dedd9fb99919d9d772142342fb78fe0dbf7a5303382a0b7feae4a381b76f8bb"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + hyphen-icelandic = { + revision = 58652; + shortdesc = "Icelandic hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "icelandic"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-is.tex"; + file_patterns = "hyph-is.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "69add7ccde189e86810e2a82692a260de9a9fcc0ba011352881d202d4f4c94c4dbd84fe36dff40ef9b9ad3e8e990947cc61022307790f13cad56744f3ef5e41f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + hyphen-indic = { + revision = 58652; + shortdesc = "Indic hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "assamese"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-as.tex"; + file_patterns = "hyph-as.pat.txt"; + file_exceptions = ""; + } + { + name = "bengali"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-bn.tex"; + file_patterns = "hyph-bn.pat.txt"; + file_exceptions = ""; + } + { + name = "gujarati"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-gu.tex"; + file_patterns = "hyph-gu.pat.txt"; + file_exceptions = ""; + } + { + name = "hindi"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-hi.tex"; + file_patterns = "hyph-hi.pat.txt"; + file_exceptions = ""; + } + { + name = "kannada"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-kn.tex"; + file_patterns = "hyph-kn.pat.txt"; + file_exceptions = ""; + } + { + name = "malayalam"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-ml.tex"; + file_patterns = "hyph-ml.pat.txt"; + file_exceptions = ""; + } + { + name = "marathi"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-mr.tex"; + file_patterns = "hyph-mr.pat.txt"; + file_exceptions = ""; + } + { + name = "oriya"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-or.tex"; + file_patterns = "hyph-or.pat.txt"; + file_exceptions = ""; + } + { + name = "pali"; + lefthyphenmin = "1"; + righthyphenmin = "2"; + file = "loadhyph-pi.tex"; + file_patterns = "hyph-pi.pat.txt"; + file_exceptions = ""; + } + { + name = "panjabi"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-pa.tex"; + file_patterns = "hyph-pa.pat.txt"; + file_exceptions = ""; + } + { + name = "tamil"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-ta.tex"; + file_patterns = "hyph-ta.pat.txt"; + file_exceptions = ""; + } + { + name = "telugu"; + lefthyphenmin = "1"; + righthyphenmin = "1"; + file = "loadhyph-te.tex"; + file_patterns = "hyph-te.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "765be1c13ef3445b056b61c24460cc2f18bad038c04541bf4773c7f61c6d26be25d3079b260a1b9623e2f01155ec52eb5bc87b0ea9234e50a5ca24dd8a7a5937"; + hasRunfiles = true; + }; + hyphen-indonesian = { + revision = 58609; + shortdesc = "Indonesian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "indonesian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-id.tex"; + file_patterns = "hyph-id.pat.txt"; + file_exceptions = "hyph-id.hyp.txt"; + } + ]; + sha512.run = "3f04a63010c02d77cb229c90aec9f1079557493958573be9ce992ac5ae3c229f01f9abc0cac785d9340ff48aa169a01f8b327ecb2e255bef57f1fe85d04d1d2a"; + hasRunfiles = true; + }; + hyphen-interlingua = { + revision = 58609; + shortdesc = "Interlingua hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "interlingua"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-ia.tex"; + file_patterns = "hyph-ia.pat.txt"; + file_exceptions = "hyph-ia.hyp.txt"; + } + ]; + sha512.run = "dfed82ea70f25d452726b5cd03d8e060bddc23cbbc5deebab2ddad93ce6744c38d357327fbe570bf7a1444f62cee0cc422a6c7d066d6693a238d851b4fe46e32"; + hasRunfiles = true; + }; + hyphen-irish = { + revision = 58609; + shortdesc = "Irish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "irish"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-ga.tex"; + file_patterns = "hyph-ga.pat.txt"; + file_exceptions = "hyph-ga.hyp.txt"; + } + ]; + sha512.run = "478a77c4ab8231a3041c3427075f16c072f58a394eced8ff0cd5da6544f3f2fd65722f33fd8344e18060c96f09bd18b90af71f8508639fc9c59d29d704d9e348"; + hasRunfiles = true; + }; + hyphen-italian = { + revision = 58652; + shortdesc = "Italian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "italian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-it.tex"; + file_patterns = "hyph-it.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "4e79ee31893d6c948a3aac8588d4beb75d89f89df973b1e39cd63894e008af55f8dca774194d7eb105fb0aef692b17bb645d5bd85cca7debafd74aabf241bc30"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "4.8g"; + }; + hyphen-kurmanji = { + revision = 58652; + shortdesc = "Kurmanji hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "kurmanji"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-kmr.tex"; + file_patterns = "hyph-kmr.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "e5114da178fc841b1079130c01f8729ac94f0e3592dbd479f44a978ea009fd75b410d6130d9badd6227d115d8f6dad3ed4b553dbfbf4f80be5d1c2adf108e2fa"; + hasRunfiles = true; + }; + hyphen-latin = { + revision = 58652; + shortdesc = "Latin hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "classiclatin"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-la-x-classic.tex"; + file_patterns = "hyph-la-x-classic.pat.txt"; + file_exceptions = ""; + } + { + name = "latin"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-la.tex"; + file_patterns = "hyph-la.pat.txt"; + file_exceptions = ""; + } + { + name = "liturgicallatin"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-la-x-liturgic.tex"; + file_patterns = "hyph-la-x-liturgic.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "9d0db7fcad4ca764379957fa22f9daede79898bcacfbdb62abe54318a52dd82a66f8e39542c18008e3f6b6d0db284b1e9b891531d3c8f3c9cf22c764e83d57b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + hyphen-latvian = { + revision = 58652; + shortdesc = "Latvian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "latvian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-lv.tex"; + file_patterns = "hyph-lv.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "85aeadb0cb3c5de9ef48057132ccd958d17f014b07b56b9ebe2186a709c4e7646fad260e156718e43ec3eac88681654f88c9b53a6d71fb3eaee934dcb4439ed9"; + hasRunfiles = true; + }; + hyphen-lithuanian = { + revision = 58652; + shortdesc = "Lithuanian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "lithuanian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-lt.tex"; + file_patterns = "hyph-lt.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "7a691e3c55c768b9ea5ef13552dc42025ab613df0a0d5c0d54aad58b63da11a93e59bc53e6a8211d5e054cbea8500846da01e9619bbee723d648e2d369a49d55"; + hasRunfiles = true; + }; + hyphen-macedonian = { + revision = 58652; + shortdesc = "Macedonian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "macedonian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-mk.tex"; + file_patterns = "hyph-mk.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "f88208291212874df493151581205d1b270b2d4278176c42e11edac9b344b73c2ee859f93b6947e4a6003a00abc4d3753024add9caf84f114c8a0cec72aa8c8d"; + hasRunfiles = true; + }; + hyphen-mongolian = { + revision = 58652; + shortdesc = "Mongolian hyphenation patterns in Cyrillic script."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "mongolian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-mn-cyrl.tex"; + file_patterns = "hyph-mn-cyrl.pat.txt"; + file_exceptions = ""; + } + { + name = "mongolianlmc"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-mn-cyrl-x-lmc.tex"; + luaspecial = "disabled:only for 8bit montex with lmc encoding"; + } + ]; + sha512.run = "159562a8feb25918bc422e7dc78a46423c7fff2f3c61016a0162761411999a5555be3c6e36cf967d5034f65c12f4b0834ae0c0423c2f3ab17a65034b1803dc72"; + hasRunfiles = true; + }; + hyphen-norwegian = { + revision = 58609; + shortdesc = "Norwegian Bokmal and Nynorsk hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "bokmal"; + synonyms = [ + "norwegian" + "norsk" + ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-nb.tex"; + file_patterns = "hyph-nb.pat.txt"; + file_exceptions = "hyph-nb.hyp.txt"; + } + { + name = "nynorsk"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-nn.tex"; + file_patterns = "hyph-nn.pat.txt"; + file_exceptions = "hyph-nn.hyp.txt"; + } + ]; + sha512.run = "8b02e90bfcdf3c6d4bd1966b21e0512069f1749c638d537e9553f68e61e0bc325db8d3b462f45650db4376c7a769c2cde3e0c0601d7de272898a23cd2251c064"; + hasRunfiles = true; + }; + hyphen-occitan = { + revision = 58652; + shortdesc = "Occitan hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "occitan"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-oc.tex"; + file_patterns = "hyph-oc.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "b0743d1f6083dac7a347e22aed19d0c5d76119582e4862557a55b817b17dddaa69a2150f14daf6b08689278dd61b27c1b6ed45df5601dd6327bf185a7a46a5c6"; + hasRunfiles = true; + }; + hyphen-piedmontese = { + revision = 58652; + shortdesc = "Piedmontese hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "piedmontese"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-pms.tex"; + file_patterns = "hyph-pms.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "fa7fc73edd582ba20b8236507385f0a30f477bb9c79e35fea56aa4020be966b9c4a16a327848dd051fa4cf6e6117ef8a51eb92ed6cb72f6993cb290fa5cd5ca3"; + hasRunfiles = true; + }; + hyphen-polish = { + revision = 58609; + shortdesc = "Polish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "polish"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-pl.tex"; + file_patterns = "hyph-pl.pat.txt"; + file_exceptions = "hyph-pl.hyp.txt"; + } + ]; + sha512.run = "5580b3865ff8d20d475cb962b0257b909ff0e410b6776cb8153145fb0ee42b2f777069413bc6b3622c8c52318aba1ba836210e8972c5b6a47ef978c24fc8848a"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "3.0b"; + }; + hyphen-portuguese = { + revision = 58609; + shortdesc = "Portuguese hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "portuguese"; + synonyms = [ "portuges" ]; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-pt.tex"; + file_patterns = "hyph-pt.pat.txt"; + file_exceptions = "hyph-pt.hyp.txt"; + } + ]; + sha512.run = "9d9ab3e616522ab9837bb7c7509127f998c442e96f96ee6b6fc0fdc9ac53fd03319d0c0ce28e23a35f1ae0ebb840cdeb19e8ab6444549c33059b28e7b307486e"; + hasRunfiles = true; + }; + hyphen-romanian = { + revision = 58652; + shortdesc = "Romanian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "romanian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-ro.tex"; + file_patterns = "hyph-ro.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "124a93a633731dc1b3d6cbf2fc9b8489bf0737911a0c25ea44dbdfffa07c165ba5804dfd7e9cbe0be3b6eceb9fd6e95daefcae2356ee140f644416bbe1b13507"; + hasRunfiles = true; + }; + hyphen-romansh = { + revision = 58652; + shortdesc = "Romansh hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "romansh"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-rm.tex"; + file_patterns = "hyph-rm.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "a69d3881493c70cfd58e3d79ed76ce6f18bbcb43e1683f31270eafeb743b366a3c52c9945ff94db333e88ca18145263ba74002f5e78bb42d7aefa48c66af7955"; + hasRunfiles = true; + }; + hyphen-russian = { + revision = 58609; + shortdesc = "Russian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + "ruhyphen" + ]; + hyphenPatterns = [ + { + name = "russian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-ru.tex"; + file_patterns = "hyph-ru.pat.txt"; + file_exceptions = "hyph-ru.hyp.txt"; + } + ]; + sha512.run = "f17852dffbb8f5c337b8316b92c2b0a60a318df491231047d9c0930d55d8b2be3274ec94d0d87085d53e06e89c585d47250f046300bf3890ce751f6f2052d348"; + hasRunfiles = true; + }; + hyphen-sanskrit = { + revision = 58652; + shortdesc = "Sanskrit hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "sanskrit"; + lefthyphenmin = "1"; + righthyphenmin = "3"; + file = "loadhyph-sa.tex"; + file_patterns = "hyph-sa.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "e84b6ca93e922c9c6edf03f4dbec1fae9eef2462379ef2fd0f3508a5048b54819c5ba12e0d76bafe1336666ca74ba95e27f63224fa048068bc515f3bc41f6eba"; + sha512.doc = "95c6ae15687118ffc9019c8634347a602e6590b4a1d18bc060e57fe548a81f097070322975be1f62fa2685c5affff7f31b4854b0ec941bbcb9377ecf16986cea"; + hasRunfiles = true; + }; + hyphen-serbian = { + revision = 58609; + shortdesc = "Serbian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "serbian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-sr-latn.tex"; + file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt"; + file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt"; + } + { + name = "serbianc"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-sr-cyrl.tex"; + file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt"; + file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt"; + } + ]; + sha512.run = "390aa9c116b6db7b362fc57aa0758a4c489c5fe33c718fb37675b17a9772a463ce532a2ace3e1ef90275b4afef5ea8d6cff71a7abe625d84e3f461c115306452"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0a"; + }; + hyphen-slovak = { + revision = 58609; + shortdesc = "Slovak hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "slovak"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-sk.tex"; + file_patterns = "hyph-sk.pat.txt"; + file_exceptions = "hyph-sk.hyp.txt"; + } + ]; + sha512.run = "a0786980e0cda7029a72075023520acdc998b83226e85deb0b8186ee4293560321517d507f74fbe68f1d68a16cd8af67aae68baead9176f9cc687bcc7d0a72e1"; + hasRunfiles = true; + }; + hyphen-slovenian = { + revision = 58652; + shortdesc = "Slovenian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "slovenian"; + synonyms = [ "slovene" ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-sl.tex"; + file_patterns = "hyph-sl.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "a605c9149ae452df8b2c25aa0f6bcdde53150e4485147a065f1f56c9740c3544c5c7f9c6049aea913916a62aabaf40777cf6f0f76a858e485c0bd09826a6ef5b"; + hasRunfiles = true; + }; + hyphen-spanish = { + revision = 58652; + shortdesc = "Spanish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "spanish"; + synonyms = [ "espanol" ]; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-es.tex"; + file_patterns = "hyph-es.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "d6783537ff44a326b83c2004afd63f5bdbd162fa4865138c2e6d34c9e6a103ac41dd7b382454646b09c74970f8e0d5827a5f4af617936f74fd300b2054a096d4"; + sha512.doc = "263fd9480c5f225c7e36169b86e846baa64745b83c1072c9602e873f2e7cf8e63b07ab85b29e9d4263656faff58a39fe83e1eba34517b8ba34720f189c8e7f43"; + sha512.source = "b1ceb7602a46ecab68fb767ffb154f0dea9626d81bf6c46dd43be328204f72141842c81efda9d7d51997ed25356746e345f7cd9f9ed88ac2f99746794becb75d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "5.0"; + }; + hyphen-swedish = { + revision = 58652; + shortdesc = "Swedish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "swedish"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-sv.tex"; + file_patterns = "hyph-sv.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "5f993ae6b22eadb87b6a1839bfa7d78a0dccc1107c5afbec8c248ed001018da38bb179e29f2430cffa90283221b20c5475346a8d5566edf16152266257f2a37d"; + hasRunfiles = true; + }; + hyphen-thai = { + revision = 58652; + shortdesc = "Thai hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "thai"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-th.tex"; + file_patterns = "hyph-th.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "8336eee03250859ab4328ad3c1fe437d2af688ef56b43be49c45838965ffe033befa84cdf600e9f48cdf60cbbfbff44450c830bd4c34556f680c5096ed3aecc4"; + hasRunfiles = true; + }; + hyphen-turkish = { + revision = 58652; + shortdesc = "Turkish hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "turkish"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-tr.tex"; + file_patterns = "hyph-tr.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "5c7023e01bf59af4d36bd451f51ae00c445711c7ecf109c9d835f1d689446d7b0b1b2627b7f9e84e4f4a8ceff52227ff280ac64481e1d29d538a30e093dace85"; + sha512.source = "2aa80889b9657b03b6beb6510b6790fba13811b97abbac186eaf4d3f40212b41db0dd2d21583429820faad558b0415a09aa8254d2edd96812cf6396fb18ccf5c"; + hasRunfiles = true; + license = [ "free" ]; + }; + hyphen-turkmen = { + revision = 58652; + shortdesc = "Turkmen hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "turkmen"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-tk.tex"; + file_patterns = "hyph-tk.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "c984bb7f09c5816c36a7a790f16df1750ee90f36e2130994ecd1db63f26afb650245985699a80da9b4d7004ad67106771d8c7b79262438369aee3f52fd8374cf"; + sha512.source = "a496f681db0b4b85d82ec1dd60c057f63b6d1c1b52d391e7bee98d3d6e1fb596701c91f2ca400d0df13b96ec7a43d275646b7d2874fe1e4efc9d9b2b47f6cc5d"; + hasRunfiles = true; + }; + hyphen-ukrainian = { + revision = 58652; + shortdesc = "Ukrainian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + "ukrhyph" + ]; + hyphenPatterns = [ + { + name = "ukrainian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-uk.tex"; + file_patterns = "hyph-uk.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "05a9111b358c659159c6edfd38b9ce3d78febd794cc82968dc3e2acdc3612786304721fbd07f00f0a8278f4c2e46a1bfad821b5da45e60546d6acb5bf9068d08"; + hasRunfiles = true; + }; + hyphen-uppersorbian = { + revision = 58609; + shortdesc = "Upper Sorbian hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "uppersorbian"; + lefthyphenmin = "2"; + righthyphenmin = "2"; + file = "loadhyph-hsb.tex"; + file_patterns = "hyph-hsb.pat.txt"; + file_exceptions = "hyph-hsb.hyp.txt"; + } + ]; + sha512.run = "b2cb1bcd953ffabbd3f5acd8c72e9c60415fd300004de56ee446fc77d381aac1db65d613a2f591d3d0e45f2a12ff5340457ae3061b4c77de502923932383bdcb"; + hasRunfiles = true; + }; + hyphen-welsh = { + revision = 58652; + shortdesc = "Welsh hyphenation patterns."; + stripPrefix = 0; + deps = [ + "hyph-utf8" + "hyphen-base" + ]; + hyphenPatterns = [ + { + name = "welsh"; + lefthyphenmin = "2"; + righthyphenmin = "3"; + file = "loadhyph-cy.tex"; + file_patterns = "hyph-cy.pat.txt"; + file_exceptions = ""; + } + ]; + sha512.run = "12a23e0b9d00eb4381e3c97ecbb449faf5a73b755a17fc0301f1cbad5d0babb370aeec16dcdd316cefb56e142873abaa685288b1a1d3c7dcb76a07a9ef127ac6"; + hasRunfiles = true; + }; + hyphenat = { + revision = 15878; + shortdesc = "Disable/enable hypenation"; + stripPrefix = 0; + sha512.run = "5af847cd55cc1b455b1928f6ba275054209ad5c9c2f81a7ae648d87eaa39353e842b2df4e91cf530909a46b4aa226228978d771b35e46b7e12f1a08a08faa181"; + sha512.doc = "57f8a5d71763cac73635fddba75eb59faaaed01d47bcbb7ecc96b80fa5a926bb0091d3cd3448c6f53ad82cd44c9244ee631fb5b56141351b578cd899509eb323"; + sha512.source = "781337dbca0ecf6155221b768ace1fec364bd1ddf29e3df36b2da64b6137a09996423466c8241cc5107c3eba056b4bf5c54572af77e781fe8e1e7f02264d9577"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3c"; + }; + hyphenex = { + revision = 57387; + shortdesc = "US English hyphenation exceptions file"; + stripPrefix = 0; + sha512.run = "77ad574e0786d7cd8e7d731fa7666a6a531b29a914759ecbb9b5d6e5f62e9ec9027aae7e3b9ffd62bd918bb0354c41e865779b044381bc1b7256528eddb34754"; + sha512.source = "d93fbc4f3f1a711967f40bbb492e9f6497b7a91b90d42eab92f3815fd0d15b239286c96519acff2d6609be00809a86846ba2cea4bd94719a35aae024e5785a4c"; + hasRunfiles = true; + license = [ "free" ]; + }; + hyplain = { + revision = 15878; + shortdesc = "Basic support for multiple languages in Plain TeX"; + stripPrefix = 0; + sha512.run = "f2968e8baf048329d8c78934770aa5d0a364ac7b3f77dc00a163e085e4fe45420c180acd05b281016aefdfa6523bed234e75ca07da0d133438798c1e51330d83"; + sha512.doc = "cc64c35df85ba832f18f153d0f0cdc9f153ac4a9db0a175a1961a353f59ba585e19b6607e0c4cd1a832d921aa3451687427965cbef4fcb2a87488895e6643bb3"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + ibarra = { + revision = 66892; + shortdesc = "LaTeX support for the Ibarra Real Nova family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map ibarra.map" ]; + sha512.run = "7de51f4d206481dadbd4409a0c98dafb36a415e75053b78f40349edfd8b122e9449e749967eada07507ada1f6f22658c02b0a4993e39c2b0e97334076072d6a8"; + sha512.doc = "318a4bb5d2fd012c783053f457023604d53cdb2b02739ef8a1780f1856d5a63713774568cfa7a230f8ca1eb4711fa65f99d5a99b5c4e9235fb1b449751bc50b0"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + ibrackets = { + revision = 67736; + shortdesc = "Intelligent brackets"; + stripPrefix = 0; + sha512.run = "fee99798386a5a6b9b8ff2ae9d2eecc5f4dc835b825795400777780f567ade13d789e81de3e841a54653226098ec602fa91839ec86f25ac0ce2033b31508b4e6"; + sha512.doc = "1d6bd5b4a22a44f03006c1fee3d94ad2760042ac98835d1ab043905595f435b583ba2b65fb6f0f881234085f028f492a283a5593d9a8316eec6fab541fc3c6a6"; + sha512.source = "766f93cb337190246b6a446407c8ed75b1ff35edf61cae443798d1f049639bf277951d59b5d8ee7f953be848f81a74b991856d328910e9237206f47a1b4a3a1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ibycus-babel = { + revision = 15878; + shortdesc = "Use the Ibycus 4 Greek font with Babel"; + stripPrefix = 0; + sha512.run = "30f810bd70555df4f05fbc0b073456c030a0768372bd3c681921f41fc31bfbe0570a39e474ab26aeeacb142622154e5cab3714412b09f89d1260fae8b60e817a"; + sha512.doc = "f09dfd00f35f653defd756b72437dd712ed1ffceb05beeadfb34c1c5163559ee7c0ae6ce0420f57b722e93080248cbcfd678d811f1383fa5fa1ab76db52a060b"; + sha512.source = "13e3ad11b56a70d7752209feaa9437bda4979c40a25597114bfc5b4e26a889c623aa7266959a212de6b7e74ebe75fb38b36767fa95f692adae027e5d025a4702"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + ibygrk = { + revision = 15878; + shortdesc = "Fonts and macros to typeset ancient Greek"; + stripPrefix = 0; + fontMaps = [ "MixedMap iby.map" ]; + sha512.run = "89002af0024ec804ebffcc45f3a33337ffdb66f71e1ca70224b0936388892dadf99605a8ca3f59a2b879e76e24acc91b1da92622d602f49b236aecb8aafe64b9"; + sha512.doc = "9dd3bd7a8ef3267965f30048e4a71314b6a9813cb400b7a94dfe285606d7554cde80aa429603d0fb1f587935e193e5ece5ed67870fc4e0c66eb5152c392a9cdc"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "4.5"; + }; + icite = { + revision = 67201; + shortdesc = "Indices locorum citatorum"; + stripPrefix = 0; + sha512.run = "23f4f25a72f77cca2585bd390ad1828e04a70b73fba0a86f0622e29b6bfee596a9a3172a8e8b2531c3bac60f8e4d840301d200ff4a4ec20d5332de62766020a3"; + sha512.doc = "a84ba9a33de8ceffb8c92b0555daa1a39fb822a272af2192513ce0c03ffd7c97a413a5916f3f5745a1b36b8e5aafdb081ee301d613d645e66e0f2ba2b7484a0c"; + sha512.source = "227acf7dd54f4ae1e23c753bc9c8a0ad82e275eac2d406cf6147d986d5e93ba2483cb7f9abe3e31d347218d853e6a8bcd4d015b7b9b3afeab901a1a40461924a"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "cc-by-sa-40" + ]; + version = "1.3a"; + }; + icsv = { + revision = 15878; + shortdesc = "Class for typesetting articles for the ICSV conference"; + stripPrefix = 0; + sha512.run = "e865708ef636c7c917cc9a870eaba4b8c0249acba01bd2cd3fbfc9d95672405db133bbf0faf9f2d299bc4024118b80b4354ecb8216427507f66817cac085e01b"; + sha512.doc = "dd06bf5d8a087bcb20c63a61cb9867bda3df35e8adf30a3d4ca69ab149772d46e3b83f168a8fc1c597aa2536a14b98561f42226a59b6663f58de4e338f9b4e82"; + sha512.source = "9ee3fecec68c7719a39d83860e8efaca3f5daafd82b9ed06af9ac38ffa3659d03f7ecec5407d568ec5f071c22c0cb33166449b64757be7b740943472d9ca1941"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + identkey = { + revision = 61719; + shortdesc = "Typesetting bracketed dichotomous identification keys"; + stripPrefix = 0; + sha512.run = "3f41af7a6b1f253dd34c670c3726f9b5fba2849230787827f69dfffd7008ec7bdf8bf84d11e7151b9e0a47b486f60ed2e475f30ed3f6cf35d68e283ff6a9c558"; + sha512.doc = "58574d462eee30612617c9340e00e956968f04b8da292babced36016516272e4d190f06862c9bc41466c85ced264f380192c4e9376c4b0ed58e673f37efd3cd0"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.1.0"; + }; + idxcmds = { + revision = 54554; + shortdesc = "Semantic commands for adding formatted index entries"; + stripPrefix = 0; + sha512.run = "ba1737eac5f6985ab4a0bb25aece07fd0668533ba046d9f980e4c4ba4862c9045e19c06a477e498df027fc0cc2af5503683389377287d58ae89690c58b5f6683"; + sha512.doc = "1894abf19f05ea74aad0ac1fed2409478dac130a019a44d6bf2c909cb1de66e4c9ec543c75db6d9238982f51af066a4287bd8827f89a59d3d9ba6d3f79aed4cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2c"; + }; + idxlayout = { + revision = 25821; + shortdesc = "Configurable index layout, responsive to KOMA-Script and memoir"; + stripPrefix = 0; + sha512.run = "968d869a0b635b14ce8ce85e710c987ecd8ea2efb97a03314098014366ece450b4566d626031e11b52d7ede53a019665640fc1626dd1e24651275b35a8f2cac6"; + sha512.doc = "469a20893247406856f15dad6b14050e221299dc2adc40f1547361d74d3f7ce90ba6eabde06402bdbe22c845119df4bbfa8b999931e99c1b944b165f3b245892"; + sha512.source = "a2fac68e0c6c0f2cc0c9472d9d58882c337f519caa3b2bb088a330bda4f65b43a1acbbdf936e4975f3c628ce1f5a45f58def28cb129a0708a0b4168cbcdcac0a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4d"; + }; + ieeeconf = { + revision = 59665; + shortdesc = "Macros for IEEE conference proceedings"; + stripPrefix = 0; + sha512.run = "1a0bf2fe8e019b55ac1ed72a9d428c3e90653183918f2c1ff22e9ea468cb3b3fea424fa3de2a46b9534086138f1130105672ac217ba7172354c51bbf384ba20d"; + sha512.doc = "a0133638d4da1822c2cc7c41052fc69d71feb89bfe0351594343166cdb217a62cb849d2a355bbaa3a12e38882ca76c94740f9f4711b42280c81a58bcc9fd17f2"; + sha512.source = "9badadaad5c47d067054176f8c979b4472ff57db1746ec2f2adbbb39fd75856d2145e120de78e51388d064765a018a06a71bcf75f078f3a4a958754c6f565c5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + ieeepes = { + revision = 17359; + shortdesc = "IEEE Power Engineering Society Transactions"; + stripPrefix = 0; + sha512.run = "60ae4ff80be5c2b02e2ebeea5954ed61b73dbc085a4d282004796d9be6038cc7c8020b7c81226d7dc7b121683e4196e461c7c3d101bb460eb8c39bf2da179bb2"; + sha512.doc = "ae2413800f1bd4c0467321a7332fac15a8010e31ba7a4effc0fdb44e9e7a0001ba62d6acb44a72eb6f996560ddf96231b7355c4b9ad8b816be102a143b7c8011"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + ieeetran = { + revision = 59672; + shortdesc = "Document class for IEEE Transactions journals and conferences"; + stripPrefix = 0; + sha512.run = "d688e4be2d145652c16b028cccd05ec5f41a94ca190caff0c6b3fbadaa5c859516a28e4555569d072dd1d550c8794c1ddaaefecce49945284dd304938360f419"; + sha512.doc = "241119c6d2848d5f63e2afe8f1e07c263fea526c9c7ef21ecc533f27c92a67b1baf9a33122fed6ff491b2ddaddb0e02ce138164c8b9ff2f5db11d1ff802f73b8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8b"; + }; + ieejtran = { + revision = 65641; + shortdesc = "Unofficial bibliography style file for the Institute of Electrical Engineers of Japan"; + stripPrefix = 0; + sha512.run = "16dde97354dd4c4ff2bfbbb9ead8ce7141a253afe2ec5b39cebe3239d40827d73c83ae90e79be77c5e5a799b40dcf5a3074f2659feb5add8b62d4491097a6cf1"; + sha512.doc = "41ffd8978d9a591c4aa711c4b2f1dc73a4d18a39e67003494c4c9a86d5fd24acf40b6c79dcc139cb46a36dda96d1e0a26a7d5336683c3d7d11eb6e46765c03e9"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.19"; + }; + ietfbibs = { + revision = 41332; + shortdesc = "Generate BibTeX entries for various IETF index files"; + stripPrefix = 0; + sha512.run = "ad8796bf4e492072dcc9335f913ae2b5d81f2152289ca76cfbb61a63577c631bc38f5cad6860aef47b1fb54c02157f509c23c3f903b34b8e7a82b8604eaa449a"; + sha512.doc = "586dc66004dcf4abed254d223394badd45557d79c7e1b56bd20080f41185ea8dca28b3d501e708cc3ed4088f1368f153ba2d2af313d5d6add2d072b46954952f"; + license = [ "mit" ]; + version = "1.0.0"; + }; + iexec = { + revision = 69420; + shortdesc = "Execute shell commands and input their output"; + stripPrefix = 0; + deps = [ "pgf" ]; + sha512.run = "c9b89b8d93868060d969ff2943fc5915b831f5354a78b87fe99edc3b475875ed10349934e6cc23376d23d3fbd8e84234028bb4d2ccd49a30e8cd3e3b20035311"; + sha512.doc = "7226a854dba47fd91eca3ff5781e312fdf1650b8b3596d4232b353e8854d5cc213cb3f31ba4010016daf4d8683249697290b7886ca8db651b0bce2856bb7e08c"; + sha512.source = "53b295fced75d6a8451d1d6e9130b3aad977fe7b1e0ad57d67e899920dbedefc297b36636772cedb94bace189efa7f2a65172e44069ba62609961ea0cf8fe2f2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.14.0"; + }; + ifallfalse = { + revision = 60027; + shortdesc = "Compare a string against a set of other strings"; + stripPrefix = 0; + sha512.run = "2117368f9114bfe20c7fcd387c47d27d59cb2af720eb6c55f2a8254067e2dbf7be21b9081a244367d46d5deae8150f915b17431296b02de486f4147e5ade9b87"; + sha512.doc = "c952a3f591c77df2b2443352783606e57ccc35d45769d1e7892b12399de5253af174a739c7283a28463536394430d0582852abb677fd87015bada501b0bde95e"; + sha512.source = "3070c2a5beefc8ce8b29f8216a66b5636aa71f6f68aee9734eba78e487110efa67a405ed4b87d4a550bd3fe45df3a8f3da10ae717d0c31cd98bb2465bb903bb9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.0"; + }; + iffont = { + revision = 38823; + shortdesc = "Conditionally load fonts with fontspec"; + stripPrefix = 0; + sha512.run = "a2a329da661f003edac0e0bc701958e0744864f8693ffccce7f1ea6867eaabe7d71b38a1dbef8bc27f770e8b4c30a4480ede1dd575d26860095575020db987f6"; + sha512.doc = "95a8f7357f095dc39ff642edeb6d7df206c37ef01c14a1daa280939d44047c5a935eb18049c280ce00238ad4fdfef6abe7399dd8c6fc815b7c70b22072465453"; + sha512.source = "2a12158850d95a2008e5a845914293cc9aae54dedd54e4a13a27899b0bb8c272e43bba374447b34913f7b4aae01aff9b9fee981240bed93f8995dfc53eefd2e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + ifmslide = { + revision = 20727; + shortdesc = "Presentation slides for screen and printouts"; + stripPrefix = 0; + sha512.run = "c9027b8bb34f15e667e530a8b8d57b793ed16a7ea33feabe58f22cd71230945905054e01853561f4cbaf5fe22f4aa140cbc95072f375d567f57bcce3c4d07d09"; + sha512.doc = "4e7a64773cc1a14df0d2f58ae0b66d1769b44958bafa8fdd4e51bc294555e7895632b741b47edbc29fc5f5ac0ddd73dddcc16723a7297c12311d3915e88f633d"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.47"; + }; + ifmtarg = { + revision = 47544; + shortdesc = "If-then-else command for processing potentially empty arguments"; + stripPrefix = 0; + sha512.run = "b04aebac5acfe90a149f417cdf0d45b3a7cbe53d53d4d9f39d5badddfcb894e07f397933199bca702f3f0e66458133ba17feb5ace2ebda4a25bb24bf1af5d259"; + sha512.doc = "8f456c15ecd5090d2124a85b02c1ad100dc999064b258678cad3c444acae3e88b95e38f7ad1785bfc91f385d6bc1664c0b58282d5ef36e6cff9857b81176ab7b"; + sha512.source = "e30806ba6fa85737f67dbfbf7cc1556781bd4cb2179672e5b9980e7f625366d5627c69411dae34a9e1c0fc29c16acaf302c344d9d93b9dd4afdf23bea020cc63"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2b"; + }; + ifnextok = { + revision = 23379; + shortdesc = "Utility macro: peek ahead without ignoring spaces"; + stripPrefix = 0; + sha512.run = "a56c703e1830fa64432d1b3aa72d3dff52b17c0e5b90b2cb34f7dff974e51331f5d9daa2b5aba578a8bc4a73b693c9a3dd811c6d7e32379165cc7ec1349c541b"; + sha512.doc = "1eeb8d7627ad8887761e66704a8f3c848b633a4f3a5b094626b3c64888e6db95c25b8dbad4332887a6d9e866e4aada2816b7c7e7fd19c07dba03db38842886fe"; + sha512.source = "05422af6ee53e12ad124b314388811490304c5f42b81b17aa899e7cea5c548395043abf4abfd0d4819e6338b6d93e99c57929d18312f49500f0368038e440495"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + ifoddpage = { + revision = 64967; + shortdesc = "Determine if the current page is odd or even"; + stripPrefix = 0; + sha512.run = "2a750da3db6bcc2c08f4240874d57c4aee1df4fa42e695156ad08ea5c1e187061c8071f621d3cae9365f28853c44e53a94d7702ccb4972656d096ed4d1272524"; + sha512.doc = "924f08c94634f1149f8873c626c4b73cbbd2a6fba0ed28f1199b6688fd8940720643ba672d781b28f6802c1fc5dfed5928784a70436d492f4bc51c6d43006119"; + sha512.source = "1a77f0234475293f72afad4b2db4e5b861236b30a80172460be7a4bf0b734a4a06a2f69018415b80bba11bd68bf4a36a953eaccaf11efc93698f1f779f80f071"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ifplatform = { + revision = 45533; + shortdesc = "Conditionals to test which platform is being used"; + stripPrefix = 0; + sha512.run = "952f87877c058c1e8ba3df227ed7332501e7861bdfd2a29878dc4b14e6b95a1b116459bef7f65c5bf277c95d08120c7e9fa9576a7654739e4a26125ca4d5c724"; + sha512.doc = "520004cfa412c2a24ece0e00b11d457405e71a446e554a1d930e60ea7dbd00f61b2b6a7ecbe89b62610316fd3b6fad685d7013042fa71fd7fb270b40748dee56"; + sha512.source = "a3c33b16decd5fb443d9b5bb13f3a5e0ed56705d353b0260772d81f963460ff7e914fb1d7f4ee24e249bf15af77368ddc6fea49014202389baaf035f2165e17f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4a"; + }; + ifptex = { + revision = 66803; + shortdesc = "Check if the engine is pTeX or one of its derivatives"; + stripPrefix = 0; + sha512.run = "9b0588af312fc3627687703f030f40ae421d9949d696891e9a60aca3c7582f0a534099685e8b8d5535df0d2f9dcd452f4219092d70c285d0fa65af6d140b7afa"; + sha512.doc = "a65a583b033509fc0a41fb65c6ec17357c0e095cf09d6f5d2b9b1f8e5fa323f368cd381941e8850bc1fe81a213dd2bbcc3d9877c08d50a5a78efedca05a7897e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.2c"; + }; + ifsym = { + revision = 24868; + shortdesc = "A collection of symbols"; + stripPrefix = 0; + sha512.run = "ef6615a3768f87009d22c3feeaa074a0589b17efc8585a509e21692195a100e5b11e2d0849fa2eaf8f80cbe0d96ea12e773aee0be28e7120ee80a86dcfa6f8e2"; + sha512.doc = "10dca0c00a52d9d9775bd2ae35b50d7d56294da9b8eb21f2bc35f7863cbf1ab357cf8f3e1d949570ebf4908a60d9ccfe604e69fe779780c8e7527172f3f0e999"; + hasRunfiles = true; + license = [ "free" ]; + }; + iftex = { + revision = 61910; + shortdesc = "Am I running under pdfTeX, XeTeX or LuaTeX?"; + stripPrefix = 0; + sha512.run = "ac7958c10c0cd5ee3a82273632445423c347bc9c5fc2015b97fdb7018d7a07b7e1316761698973b325314e945fba6c86be0dd49e058ecf74a55ccf2b9df8774f"; + sha512.doc = "d51b452532fcffce4b1078ab26396bc4f8739e2c3025917b4ce88af2e5aecfbe0a54e481f1683afe2d25259c6f73e27be8f257beb1b599f9817dc37df427fd70"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0f"; + }; + ifthenx = { + revision = 25819; + shortdesc = "Extra tests for \ifthenelse"; + stripPrefix = 0; + sha512.run = "76235d3f8dc4e62604828beaf87327d11d4a9ff69061edf1a3ed4c874983251fba75d80973e54fb3daa2d160b27000089f4cdf1c29748124825fb4075b6f7148"; + sha512.doc = "efc4fa3b5d6e91d1d5af27846bf2652672a233537810051b2858c1c4ffacafb9771b2c3a222cea4d490e0478eef96b205c4043f4957b876b7f4d57903b26454d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1a"; + }; + ifxptex = { + revision = 46153; + shortdesc = "Detect pTeX and its derivatives"; + stripPrefix = 0; + sha512.run = "7bc52847fe21879614ffe673ebec74c735c70e07d63649def00f70d22db80faa920f0764f76c5094ef982abbff8202ca55410ee92d033c45ec43fd25adabb23b"; + sha512.doc = "1bc4feaacbdd33ba6f46c699969638cdc8a4b962287332476d0d163a10141136f9b913027ccc3418033dee0862d5e572957dbe07d47371c1d932103958151e27"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "0.2"; + }; + iitem = { + revision = 29613; + shortdesc = "Multiple level of lists in one list-like environment"; + stripPrefix = 0; + sha512.run = "b2b37e68db2b33e414ecbfb9078b60ce5571b7ae931ca828a3c668ea7cccd7b93a2919cadc7723daa3f63a7015939a8046973ade140fba01025dde0d5212edd0"; + sha512.doc = "f9f001123e1f49bd90cb3b24448e423068565c9256129e23126791e2ea2bc39788ff5769939d90018087beb1b31fbf3568c6d4962f2e92205717c84aeee54a21"; + sha512.source = "e24eb4a7a6a635b95b6a1b40d27651eccf86a6c5276aad3ca46cfde08185371fdb34ac2732d87750db74605c14e087d2102399e23ad85a236a68dd5987784c0f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ijmart = { + revision = 30958; + shortdesc = "LaTeX Class for the Israel Journal of Mathematics"; + stripPrefix = 0; + sha512.run = "a1fc1aca9f557ea9c8c70343ad1e5712a846b8a7edddf2077e78fabc3919b928a5d7e8b1fee0f0bc29ebf7887e26dcda5bd95f2ba613051e52f13f1ee24001d3"; + sha512.doc = "502aebf377c8b13d7699761651cfd67e1e2d10a8e8a022303921aa1e708fe913b217e186b4e2527d8ed81e3db6ff055dba5edbea218d6b9a92f679da66fefe97"; + sha512.source = "e42bfa6ded16f78b764d1ca55e905ae0b2c0a5611b8ffb2e882f121d04855b5f72bf925002bc322cc1106f68c7c68ebb412acc71789d560fbca12051a75860e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + ijqc = { + revision = 15878; + shortdesc = "BibTeX style file for the Intl. J. Quantum Chem"; + stripPrefix = 0; + sha512.run = "55f7693a820f0cdaafe8697ad352cef2748471711113cfa4738931926cb4d49497f4e825b0a737c233541203cb5c8f23dc4f8326950520e8aa0f4ad27f353347"; + sha512.doc = "6b94eb95d58a06b54a1fb28b26ddec15528ae99286a37631a64b4ced32343872a04b96cb2de540d54c54f02361981ecc575ef7d014a17e1d0111883e92671fad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ijsra = { + revision = 44886; + shortdesc = "LaTeX document class for the International Journal of Student Research in Archaeology"; + stripPrefix = 0; + sha512.run = "9d5db4217675af4577fbf9b7e8a5dc4a42f447e7af60a818d740327326d478afa9071be37c80315b0822fec48d1fefe4e3d6a8dfddb6f34fbc11cd81a5d05a12"; + sha512.doc = "a3424b8ed16d1881c5a2c4d80a42277a1c0e3a62484a0d5ee6a18a9ed9fd39fe0de241fefbc723960bfee331908bb5c95a0b1b95ecf5e06d6425ac8e6c2dc342"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + imac = { + revision = 17347; + shortdesc = "International Modal Analysis Conference format"; + stripPrefix = 0; + sha512.run = "5e51d080e18f2a5d9529705d0e8745a8c7b2d0186c929e04434b71ed356df3ee2456c268ce2232da9cdbf6c15182f6580b2b96995a6c48e40fcff1efb001cef9"; + sha512.doc = "df4232356db6e2001277bdd8de706549d2f91b2d59d4a55f39c4aa9628e1a2b6ce092a7630ed4fc20096d069d19f2ecdf445129a870ca8bfc9d87e522350798c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + image-gallery = { + revision = 15878; + shortdesc = "Create an overview of pictures from a digital camera or from other sources"; + stripPrefix = 0; + sha512.run = "0435d5011bdaac97c6f36202a03cbe52cb45f83d7dcf37111b9c68706e4cc971b5b13ab5fe0b29cb296f7af4b217a64b5507ea00dfe63e8496e10b5adefeed8b"; + sha512.doc = "ae9c965bcaeaae17b8a815bac824093a5834f2b96c99bf44527d915ae251cf1dc818279f78d3cbe75e51875e658d47baa3b9657e27f5121ed4e259ae5cc052b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0j"; + }; + imakeidx = { + revision = 42287; + shortdesc = "A package for producing multiple indexes"; + stripPrefix = 0; + sha512.run = "6ca0680f29daf88dfbd26fa87d47a65c8b2c2d534321b814ff78d77d0b97d7fc5654b4dc0b91d12eb0c9373cfaff5fac59f24def8d0f50d97da34fda6f839d84"; + sha512.doc = "a07d9461013045274f03145e97d286d930055c4573e917a78e8913841cae30fb61b99e66d098b4ba014cf44e92982301c7d72414e3ce1df176bfd35ecd26ddf0"; + sha512.source = "f3fd8e1a5057cbbfea56a0d21f16bb310fb815ad7363e284083f2c313ac055b1b335fc1c43bbddd1b1beae64ec42e29bb4a194056be658cfd3ee24e49d5e5804"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3e"; + }; + imfellenglish = { + revision = 64568; + shortdesc = "IM Fell English fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map imfellEnglish.map" ]; + sha512.run = "59c575a0c08ea995ebdf871c627734e47d48de927f3176f7ebfe54fc9f73d0a026159ac75e5673b180ac3cd5b8af9bc59aecc9879ee1a30084609c3d5828ede9"; + sha512.doc = "ca9e465e985ad5568713c5cd79f4b6d8b0474ecff9e35356bb2c88cbd6e71e451c44cd9e407bf0e8b15b4267d44bfce2a64fcc052a7f4be662b560695c34a865"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + impatient = { + revision = 54080; + shortdesc = "Free edition of the book \"TeX for the Impatient\""; + stripPrefix = 0; + sha512.run = "8c606388baf92ebfd113a2e7332c479f1428f4c9b2c5b27f04d9504be29ad20e38b3b538366c2feb78a43998460d362156e9abf8fdb3f8457ff4c8452aeb2141"; + sha512.doc = "7b0811a691b9ff35fe245df7929164420f2155b4797d372988c7cb7f6052291c5735fdf44a0cd3f7a956be9dec424b5b59385b3f147f39b5beab7b56d1eeae1a"; + license = [ "fdl13Only" ]; + version = "2020"; + }; + impatient-cn = { + revision = 54080; + shortdesc = "Free edition of the book \"TeX for the Impatient\""; + stripPrefix = 0; + sha512.run = "e75363bb36568ec42f13217dc740b839e109529e41ac9cc713e8c7eb620e557dcc08d20f36cbdb5f0e3145d9201d659fc8478d40fae4862fefd3eec005a3463b"; + sha512.doc = "ea0918afe1c785d864bc280a6b64a87cc62cabb02540cdf64a7cbf4b8f81afcef9ac85a6f28b5bdbb42a75b6ce1e12139c12d0e1af4183a28115f8d740c6e78e"; + license = [ "fdl13Only" ]; + version = "2020"; + }; + impatient-fr = { + revision = 54080; + shortdesc = "Free edition of the book \"TeX for the Impatient\""; + stripPrefix = 0; + sha512.run = "f6a9a69ded33199fcd46d518fe8ed7dca48677c78fac5f90cdbbed2290558c4a9d7c9b0721c188023384acc97ad95df29565b06abc16fa33deb04490ca50b4ac"; + sha512.doc = "963a379e3fbf422f4f4d53a41d6bd074fd077360908eb0db1db0a50699e12f37dc6b3ec8b42812604de4ea444ecb38cbfc81d3445cd67626a65fa9b520fb8550"; + license = [ "fdl13Only" ]; + version = "2020"; + }; + impnattypo = { + revision = 50227; + shortdesc = "Support typography of l'Imprimerie Nationale Francaise"; + stripPrefix = 0; + sha512.run = "7afd6cf1fc2738bda4f390fe7f2f9d5e1bdd33c2e6bd32b4dda5b232005589f38436813d9e5effb6feae6371896be453b608ed61c64b9bf38fd25ec400c4b101"; + sha512.doc = "086b106a965e0f469cbf3560561da7d84e4151d5430d42d87c2c52568243305e20a1bc99ec4b252237f4c61369127683ff7b629013af8c76e9dc8ea6e551e24c"; + sha512.source = "5bf181ff35a90a1d5c7656f7ae9778305088035370cec3542fa451b055cdad6d3b1ac1cf830fb7ab7ba3d4d89ce7b96a1112575f924fb13f24b1a90fc84e24a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + import = { + revision = 54683; + shortdesc = "Establish input relative to a directory"; + stripPrefix = 0; + sha512.run = "96a92584b4ff4a4bd3b345b446f2802e34d59ebf8c14469a5b5331e6d2f92b63f42d8f5799bdcefc9ae3f74e5e6f93aad7d5371dbe7d21e84ced3890a76c7a19"; + sha512.doc = "967d456dd18c8838db7d2ed64016fa0f77f2ed475e5cbe36389414849786d7e7850ea43e8bb00d8aa06e3ba06f62970a6525ee1b5a5109f8cbc77a0baf894b50"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "6.2"; + }; + imsproc = { + revision = 29803; + shortdesc = "Typeset IMS conference proceedings"; + stripPrefix = 0; + sha512.run = "12ce0d8ccdcd54890f846b501cc5cf7af00f7759c916147c676358b689b852a86a1981b76a14e455a4edece20ad1857100123f91469dfb23ba168177e15fcafc"; + sha512.doc = "a4007fe80cca88525dcade8d8201fb82a2c35cafd7bf92a8ebe6b4668ddce6bd43e958e1223d5c212e91ca692df39aae84c4a25b6862afa3aed2f1f646eabba1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + imtekda = { + revision = 17667; + shortdesc = "IMTEK thesis class"; + stripPrefix = 0; + sha512.run = "ae95a9d52ed07e962a9d98cdcad868a9d2dc6e1eee82c38fceda7f7668934caab5062727e75ee3b1824ec60ad112f15541c9519fd494fa8199caaf0e83906484"; + sha512.doc = "6f854d85a7649b49b3c88d99f1f011df514b39064e2c340ae1e807de3e730a46a432afe178574105a414bbd46ae0509b9e88d6c0ff825e74dd55772ed189427f"; + sha512.source = "c4285c9099d8a2582570d0d7df327e6f693825a63c7dbbd6626361d9ceea83a039425b295e17de133fe51e43a23ada74e5fa83d0995fd4a6528eceaad2f59461"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + incgraph = { + revision = 60810; + shortdesc = "Sophisticated graphics inclusion in a PDF document"; + stripPrefix = 0; + sha512.run = "06c7228e1ef4d760f6d7b1d308d4946eef7a55a60ff39bba6bdc6a96407cb6fab9f47dfd2c26f37d4f674d815e0ab7196badf2590638e214c980d26343a6bd55"; + sha512.doc = "3e37591fd1c239d2feb262434a5782be0160104392f6b6c2f330aa30d8e8af5905694a125d29045b403239d67952bb88d1194a1d1e61194e82426405fa11c772"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + includernw = { + revision = 47557; + shortdesc = "Include .Rnw inside .tex"; + stripPrefix = 0; + sha512.run = "a2b43d658ed62ff3a301a1b190cc46f04a4a46f413ed4af3e0f84f1873efc6841cd23fc07d68a90cca50b6ed00ccf654aef9dcb6a8b4863277b06c7e8c666e6b"; + sha512.doc = "8ebde646868cebadd8d50cfca25cd8d924c0112129ea86b0ca3ae5b9f9f4e4fec3c1e464486ec0f92e5cf7b7fe3df1fceb1a7967bfec755c57645e6909705c0b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + inconsolata = { + revision = 54512; + shortdesc = "A monospaced font, with support files for use with TeX"; + stripPrefix = 0; + fontMaps = [ "Map zi4.map" ]; + sha512.run = "3b33a1627083b50019e0c66ad49319d3ae699943f217daa21f57b19dd2733d29c6f1e9fbaddc1e3e39ea96623581b1d6a388f1a0009e84e4c3f381887b05d4c7"; + sha512.doc = "9139f7769536398c2822c41fe1fd0850a81fb54d70524904b266c8e231c95e344e27468187f474d51a9ab8c4028d6e5f9cc4513d1b38e306b739a1572c387e88"; + hasRunfiles = true; + license = [ + "ofl" + "asl20" + "lppl13c" + ]; + version = "1.121"; + }; + inconsolata-nerd-font = { + revision = 69061; + shortdesc = "Inconsolata Nerd Font with support for XeLaTeX or LuaLaTeX"; + stripPrefix = 0; + sha512.run = "dc202282d55ad63ffbf39fe7b36edbe42391fefd1c1cb0fe2410d01c562fe8024ac007ba235999c5e369a0d80763fdf80815d2beeb7dadba0f39d027fea507f7"; + sha512.doc = "00fa8ab8a508a3bac281ab2d7f63fbabfb6958770d308184e0fda7924383dc22a3b36d5f4dff701cda63e847cca819d38b45a0d51f634e1f503d5964fa60d9e5"; + sha512.source = "867f875d6b1211fbc8d223df7f00030d28ed13336c639f83251fc3b930e75f61d12daf93cf46943a9b2a3db883cd2e9c8b759f19f85562fb589ffbe2f01ea344"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.4"; + }; + index = { + revision = 24099; + shortdesc = "Extended index for LaTeX including multiple indexes"; + stripPrefix = 0; + sha512.run = "2b9bed00e12b5aa7b1813be766ba7c2e1eb750dc270e9eb585b1cc3d559a3f0c9094919344aaaa51cb6cf7cc132a5f89f8c07c96a12c5b1a5446524d07f4121e"; + sha512.doc = "0e68aca1c5dda444aa42cb1883821f2003c450291191b2eef16169f3f76e03e5ec9d31577574afd8d3b10237309be303538ccd1d4c8edb9757e7c910da7c5f51"; + sha512.source = "fc9e646c54415a14e41f1adf9894e723ea8d25e1d151b56fe40e5dd437a4659535b11eccbe9e2b6077d01a7a83b044c2d1d2b9aa1b08243d82b5a37a70641c11"; + hasRunfiles = true; + license = [ "free" ]; + version = "4.1beta"; + }; + indextools = { + revision = 68555; + shortdesc = "Producing multiple indices"; + stripPrefix = 0; + sha512.run = "decb4d3e7a2504f0f08f5e907eabcd961d1900cfce98e79cf8d7745868564eace7f3fd1217de69d615f9267630c71f9289a0519dd9f3b8603be6544ce6d1cad9"; + sha512.doc = "d2b1ed9f2d79bab4dc9b69b09eafc3657c2f60002d53703ec01e7cfdd29e8e9ad4027fa46563d50ea89bc2e63fa7b6c71ce2e37caa5e37838b6cde2f99ed97d3"; + sha512.source = "2d4d637e3cd9e6dba00104c0ae58021211cf8b10d8d44bcb9c3d9af1d0680e4539187947f6c685acb8ec194e8e60c447e6dbd02cdb6b8915c8abaaf8b991b39b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7.0"; + }; + infwarerr = { + revision = 53023; + shortdesc = "Complete set of information/warning/error message macros"; + stripPrefix = 0; + sha512.run = "a41fd6f2ee199e460950fdd31484be7e949a5e36ca740daaf3a1ffa01103d865f573c8ffe0859a8629456786cabf2f1751dbd828cb5d26356b1973960c854261"; + sha512.doc = "2830f622e2ea8e5b3427a9d924dd5f45f0c63a8a6de82e261102ca2c3f3afd7b781a7e0d50903dc8d8c1bee0674503f3ab935fe81dd9490d4310650097c4ffa6"; + sha512.source = "ccc6e1f7a63c10fed449c390b2283ac44b94c33a453f1146658082c888723ad8223bea01b71545d7f57f89fb8c8373f1a8329aab7255b7d17fd36853456cfbe9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + initials = { + revision = 54080; + shortdesc = "Adobe Type 1 decorative initial fonts"; + stripPrefix = 0; + fontMaps = [ + "Map Acorn.map" + "Map AnnSton.map" + "Map ArtNouv.map" + "Map ArtNouvc.map" + "Map Carrickc.map" + "Map Eichenla.map" + "Map Eileen.map" + "Map EileenBl.map" + "Map Elzevier.map" + "Map GotIn.map" + "Map GoudyIn.map" + "Map Kinigcap.map" + "Map Konanur.map" + "Map Kramer.map" + "Map MorrisIn.map" + "Map Nouveaud.map" + "Map Romantik.map" + "Map Rothdn.map" + "Map RoyalIn.map" + "Map Sanremo.map" + "Map Starburst.map" + "Map Typocaps.map" + "Map Zallman.map" + ]; + sha512.run = "442ffe7585c725c62cf9edf86bccabfcc0406b7517f145567c952ff0de65dae94158f586a1c0081afc5fe3320494750ddc6f455c78ba96e91f409bb0f5905d8a"; + sha512.doc = "c8e837291eb7dced1d4bc4d94e7e6bc042ebeb5c561ad3688a491f451991f122896d7df01040575ac6fd705d3ad55350e12afc986dd619c4303ba2919f64dc6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + inkpaper = { + revision = 54080; + shortdesc = "A mathematical paper template"; + stripPrefix = 0; + sha512.run = "d07bd9d2f32981607f4baf3bc348fdd99aae0c331423bf1f678231a2ab9830e4a824357df067e52643e6c89ecd1b850afb2444686fa33d75e6a3e598b003553b"; + sha512.doc = "acc6ffc291db3164d8428a50ee0792907435b90d3677a0e9ec883e0d3b81b6c04785a08217bd6c9554545eb5bc328a702c2958301245bcce68949ce76726c389"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.0"; + }; + inline-images = { + revision = 61719; + shortdesc = "Inline images in base64 encoding"; + stripPrefix = 0; + sha512.run = "8cb6a0ba51ddbc06a795dc21c40ca4f18921fa978cf17254aed279e85e769b29e7dd6a0266738e5f52e22bfed87599e6b2099bb04aa656397f04d6d51722c56d"; + sha512.doc = "ce56e90e90da8ed441213eaedaee7bc388714248547524701ad49021899ef439ae78884ad1de6e60cd06b5916649403d75ea7fda051fd3b87e89bfead9ccdf10"; + hasRunfiles = true; + license = [ "lgpl3" ]; + version = "1.0"; + }; + inlinebib = { + revision = 22018; + shortdesc = "Citations in footnotes"; + stripPrefix = 0; + sha512.run = "42e158a9ff10dc165345bd08b18fc0f90b463482fbb824872289edf93269b36b04faaf35cd12538e83ef1e509b7400ee61e604c5849922106368624c6c20f507"; + sha512.doc = "2a00d2f51daca68362b5243d8cc485bff6f64fbb9156d1a221d75dc5eec001c3377e6d67afe5d6384ba3f7504eafd65919f5afca8e1170f8b584eb101c947faf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + inlinedef = { + revision = 15878; + shortdesc = "Inline expansions within definitions"; + stripPrefix = 0; + sha512.run = "b98b83ff26b5ecc9826f111d9faef5aa0f51ebcec7978881da2a61287af7aee022dc1b7812ee457885c7813eee0d2200d250ef45648619f3d105e2df54cd21d0"; + sha512.doc = "6bf73914a9eff5d774ca7b7e37a859b0e7da3d408bae603b74c9f76e379ff6d3558d7e30ee4a246bf3f7d40f18446fc78299edf4eda0228e2f22e47ad09ea024"; + sha512.source = "ccac53e2ce8ad0fcfadfedeca45d136ba94bd51d46fb4b860269f2efb7c0996823d32ee1935a0dad79ebe69c9794e2882e6dabca0c5751b3e8b25e5329623953"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + inlinelabel = { + revision = 63853; + shortdesc = "Assign equation numbers to inline equations"; + stripPrefix = 0; + sha512.run = "66d105c71bd5896019ec584a4ca0a26fadadd8d922be95ec7c8e0ee8f9b5a265304359a19ad77036e8bc885ec0e786e03ee8e1edb72addd1adb5d064eb40ab08"; + sha512.doc = "0d70c8f7d7b9f022444c95657b3ecef395790ca80697511e8ebcef975ae19edbfc43abb223bed03888943203e870e8732cfb37f2f07e0e4e2575b8e2d495f8ce"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2.1"; + }; + innerscript = { + revision = 68776; + shortdesc = "Small modifications to math formatting"; + stripPrefix = 0; + sha512.run = "7b647763f5a535f45a7741c3264fb59e2223837a9c99617aab870b624122783e25d1ce2f48e14fa5c1f01b660e5372eefbad3df51c52cb414ba675b8bea18e51"; + sha512.doc = "406d30155e73e13eb51967e3902e1fd2d76a92aa29323306a8769f9b4900323d288d1620a2a85ff76062e1a7b610bdddc06b113e15cd1479cbcb1bbb25b4c79a"; + sha512.source = "caf662052e89c10a1f6da8f671aa3e30eb4738a68b095146339f9c0cd95cfdeaebee30869b5c7c92bcff6ebfbfe526ad6ab032d26bae93e671707dbcf3835218"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + inputenx = { + revision = 52986; + shortdesc = "Enhanced input encoding handling"; + stripPrefix = 0; + sha512.run = "5550c1d76a0906f47ac3e2303fc57ef9ad1c8442e12e3522826dbe7fa8c971c7ca4241e0a1707f6e10336855eded20e94130a6db212b787383282326aee8886b"; + sha512.doc = "087bca2b38a73530b19dba7343cc488b39ab505ce00b4c622f56f9d40c448e6349052e12358cc8fe6d8db7039c6af4f06910784795a2cb1e69b85eed423d1314"; + sha512.source = "a633d0ba777e0342fe99d1ee8d9c955fe159c4a881f31c46fa205078c3b1786edc2025f58ac88b7dccce0c6bed50e8f44025ebd43b28871db953a34e54b3aad7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + inputnormalization = { + revision = 59850; + shortdesc = "Wrapper for XeTeX's and LuaTeX's input normalization"; + stripPrefix = 0; + sha512.run = "ea1b93d71757875867fb9d899399ad5cf95d2a0560b3caf2569d08480f4d65dcf4a963632dd27b1e28674a9b5c6496f769c17ae08494a6c37ca2d0e6a8fd8f04"; + sha512.doc = "ade22bfe8534389f117f0f99dfefd7e27f84ad653419929ab86ab045ff08c1d08952178c6c8d42b3b22d575e371ad4b77c2efda436e4b8ff89dad2bcb67c7d65"; + sha512.source = "048bcdc198cb028863f2f3f30366ab209f18fa2d3f76cf42ebd795cf34d92734e617fdd7412c3f5e43127a4853f1f2b3fe928c8cd554b5e5fde430b5c9170d47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + inputtrc = { + revision = 28019; + shortdesc = "Trace which file loads which"; + stripPrefix = 0; + sha512.run = "e6450fbeb0f9033b0bcc586c34f5bb8e9c3a6aae102c15912be315d14fe883b8bea62a59a4a65d0ebbfa9cebcc518b9dedf59297f026423ef14aed2c0a2004ab"; + sha512.doc = "4fe7894ee87bcb81566d1838f52c02902d8f5668662fdc016005e9a44b31f35eef8831143cdf5321717ee590ed14fc6c35305f584a0b63254549f96149ae2a50"; + sha512.source = "942d536481750f2272cf8b1420e13703d16231a0998b90c7f3335d4aa6dbd0cf1ff3b6ce072970b182fffdf14614422cc794798632ecc5ff41dfffb18c836398"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + inriafonts = { + revision = 54512; + shortdesc = "Inria fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ + "Map InriaSans.map" + "Map InriaSerif.map" + ]; + sha512.run = "9c960dca72d433a5ee20b2afe843b92fa98060e67638676a8e92ce9c7dde872be4bfdda6be7a76ea90db97e51784db4487ce22c79cd110ba0214ba54bc8fbe18"; + sha512.doc = "352e35b1b748f502db20c76f670c8eb6d02f672ee743518113a7b7807678ab45f2a628980229d8dae67df0dcd3581a5a28492adce8752a1a5f914fe550bab01a"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.0"; + }; + insbox = { + revision = 34299; + shortdesc = "Insert pictures/boxes into paragraphs"; + stripPrefix = 0; + sha512.run = "98398c838689cfe22ba859e2983f374ecf94b21bcf46de362056821af31285754717f7b2169f8bfb6fbbbee849449a1f3caf52d1397a901133d0364b392654ce"; + sha512.doc = "53baed8af86447a60bb1a97774778256fc4ad1f08f73e2172a68fa091c32e41bf84d10642ebb426be610e34ef5575999d15be7f0c5a966618cea5b3a3832c9a4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.2"; + }; + install-latex-guide-zh-cn = { + revision = 69264; + shortdesc = "A short introduction to LaTeX installation written in Chinese"; + stripPrefix = 0; + sha512.run = "f93859b38da5da139942105175bb9c4f399934777fc04a7d267b45d7fd42cb792de40217221c6e0fee7db3b62ec3592ad0744f0f1a7bff52864e8762d58e216a"; + sha512.doc = "13042cd81cae222dab8ca8966702a28938f7f4b4a734905d64dba2bd819e610108078f0f81b3999b28a63dcb015bcb7941b177be9cab243fc9d01b6808ddf587"; + license = [ "lppl13c" ]; + version = "2024.1.1"; + }; + installfont = { + revision = 31205; + shortdesc = "A bash script for installing a LaTeX font family"; + sha512.run = "cd5133b93c5daabaa0ea13649f3d34c28f9af9f92db54917e64cafca5f5e7fe5169d87e36783036850ccde0002d34860eceaea528ad06e21f08141106e6599ae"; + sha512.doc = "2b61c4b229e0c4ec89c591075e52bcf8c150f5f9584bff94f81ec1f229940dafef11d6b6f84dd086692cbd99e6616685533d4313ef5bc48c56a7494fef3583b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + installfont.binfiles = [ "installfont-tl" ]; + intcalc = { + revision = 53168; + shortdesc = "Expandable arithmetic operations with integers"; + stripPrefix = 0; + sha512.run = "e1087a7ab3f1d695bc20435ef0bb2b806d1cca71eb792fcf46e6c2fc6d819de2ff623a65593b65d5bf228309e3e3d5210ae1fb1452356f97a5ecb45921a7ce0f"; + sha512.doc = "f3cc5dba031957d77cdf39d902eeda96c8405efef52352109a7bfb187e363321d31120b4c66ed4b2e990fbd7085b927599a0956749e4303611cdbec5d9d7179e"; + sha512.source = "c3fc56d3ece265756a6c19684e7c2f9717df7f65176a640bcf6fede941468c8a426abb610ebf9955de920adaf2c96165f91f7314f48701121dfc4381f921d42b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + inter = { + revision = 68966; + shortdesc = "The inter font face with support for LaTeX, XeLaTeX, and LuaLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Inter.map" ]; + sha512.run = "3e2799fdcbb3648912d99ae0fee49b3e34098204e742ffd8bac5fda212f3e452606124e5503f99a52f7f647b54c31858256e7e1dcee4a566f3ca8e9d5aab5eb8"; + sha512.doc = "64260a91b781bc0ca36a73e1b44ffc34847b26b977a950cefa27649d7382e9cb9d34f70f982831912489d86e343d4abfc81ae0d91302d3276aaa5c8567c3ba42"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + interactiveworkbook = { + revision = 15878; + shortdesc = "LaTeX-based interactive PDF on the Web"; + stripPrefix = 0; + sha512.run = "2afca3ee8051065d4014cae8ee751f085abe6e62ea0af7d6c036bfd9ae6c3f38a295857d67c7e8f75a049fd618c82ad8b28a66f5c83a387969549cbf20ef159b"; + sha512.doc = "cdc12a36f547787fd1e6aaa5f9dc38b99092f4fd7e71095c1b5ca25730b4d2a5a5fc1636798978741538624091721c96220d91b8f1cc29d7f4698767ce0269f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + interchar = { + revision = 36312; + shortdesc = "Managing character class schemes in XeTeX"; + stripPrefix = 0; + sha512.run = "8beb2e016e1a6af0199708355b8f13aa1accc614135cdf1d6dd534eceb6fd5a8d9e611e4d6fe0d72da9effdef446549b01d5ea2aad043f3fe94b81fd3d4aa188"; + sha512.doc = "c36dfea3f3f62660cae4f4653136269247bd109931b2eb6478eba29af089d42b6ea9f8afaf0c345c9364a68c1645e288d289345e13c8582e1639edaea20a26be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + interfaces = { + revision = 21474; + shortdesc = "Set parameters for other packages, conveniently"; + stripPrefix = 0; + sha512.run = "3c726602547ae05d0ca055d92b98a3cd5fce9709329fe9e769e5bb02c401a28b9b4cee53e5b1ee21dbb6c1c4223cf7a098aea227d615a45ced885c7c4ccab93e"; + sha512.doc = "a9b44711b1f38c48886f7b4a49b3a58ec5514995c9bed9a067d41cbf35dcc0093fcade7ef28693970f1f017924dc2f6f79d8c89a1efc847f7a8c264cb8f98ea9"; + sha512.source = "a93e77e7d12c91515e2d67f926ff6bfb76a278eae5880c60d2575580517d31f82d45656061f2999d5c4e73279a09dc5c5437351f10419b6ea92424d555e7e3a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + interpreter = { + revision = 27232; + shortdesc = "Translate input files on the fly"; + stripPrefix = 0; + sha512.run = "6dbbf39f9f0f357f45ae275458f03abfee625720b5f2dd3bbb5a78f60f4c0e8972d153c8d1647f147403f7c665e25147fd0c576cccb226a74630348a9f0a7381"; + sha512.doc = "3408bcb3cd3e6da67294c830870534d3cd620b7abc3ad35d4833e30c831bf93d11dc06d00547888268870c75f6a6e2e861448a0fa197e3e5a3c10aaccc6e4dd8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + interval = { + revision = 50265; + shortdesc = "Format mathematical intervals, ensuring proper spacing"; + stripPrefix = 0; + sha512.run = "2a2fe0ebdc4754ca74962270ec48c69e6574c13e446628f34604b13584e7b14ff33add55744f03a1d28443b5ae87ba79926816bf44781951a729913ceeb4d6c9"; + sha512.doc = "22dcf2288d7f888e76967209ef1fd31bef66dcb9784a45126a945c4a0ea302c67ab4a35bd864355b29679131cf2cf36fc6172017599ccf3025c4ae1537362b9b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + intopdf = { + revision = 63987; + shortdesc = "Embed non-PDF files into PDF with hyperlink"; + stripPrefix = 0; + sha512.run = "77477057b8c49400059eb2ec0ed1ec6ab8c5b80ad661871c5b179af60abd0a5904ccd1faf045951d83e29aec560a77188c8468cb9f854ed28676ce52c3bbbd83"; + sha512.doc = "07abc35842c8170da6763d070180f63505ce5fcc98ec9966b3e0b7502191ad267b4b6b0a9bbc6fe1fe037b0eb6e249c9ba9080669abeaaadfaa6be26ea86e5f7"; + sha512.source = "ab22656c6f47d03fd416e7340438a1c57e9ec1bcf360ec3224aa7c37859b1210807c3ba7b94d9fcf7e4a6878c9874332d3bd030cb7e1baf3f05f10077169d75b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.1"; + }; + intro-scientific = { + revision = 15878; + shortdesc = "Introducing scientific/mathematical documents using LaTeX"; + stripPrefix = 0; + sha512.run = "9919021461485fc22ed6ecc0b30d0a23c0a2217c76a07dd8acd87c9091c9d71be0e370ce1373f90e6f5a36a9638ce4312fc674b16ccd0846aab97d1b05674391"; + sha512.doc = "0daf84bdf7821aeb2f7971ed15de5546a13a444f3dc1b757f31490679350199fc893111109fc564aae2c8786fefc9e198e79e817bb318a1ad62698b6a5c79af5"; + license = [ "lppl13c" ]; + version = "5th_edition"; + }; + inversepath = { + revision = 15878; + shortdesc = "Calculate inverse file paths"; + stripPrefix = 0; + sha512.run = "d0d95399067922172799d17cc9b9b4fa7a79cf2928630c63441114c479bc60e72b3e5133b54f8f7925cbf90f5b419c89e07699ecf8e8269b43f969e584698043"; + sha512.doc = "a9dba77a8aa851a5e915e368c5090fc83fd894c22efedffce97ee0915b4ec50fa72efc30f377891b5efc0749c12018228ce400cd4024369cfb81ff3fe62567b8"; + sha512.source = "de5bfe7ac5967f4ab02dd0931c5799c6c68c5c7a57d8b6c40a205e76546d8a23a6ac6be292c6a1cd4c8475bbf0eb229b6d198eabc66a17b2ea4b0ffd0c798323"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + invoice = { + revision = 48359; + shortdesc = "Generate invoices"; + stripPrefix = 0; + sha512.run = "7ddb8e05d88321f45cfe8618c740671e17e79ddf53fc2c11a3b9224a27ba1ebc815635484f3dfb4c849d90efb859412028df1e7f91a4e746cf812b19e5d1a269"; + sha512.doc = "7b827f575eca669f15767be9fd215e827a3e98b03ea3e1f353039f5190fa7d75a5e59dd5d89ada982518101fc5164449843656c60a65679dd82061dbfcb95ea2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + invoice-class = { + revision = 49749; + shortdesc = "Produces a standard US invoice from a CSV file"; + stripPrefix = 0; + sha512.run = "d31a445c1696741dbbdeb4f035358cdabc9a4ff74855c432dd2b6d66b0d690e65e400207bafdb643a1ae7bee3b3472393043088521a685251acaf9abadb08769"; + sha512.doc = "a3ab71dd11f6aedcb7ce8a89f8b97f8a18ac4c610e3460fd13c1d31b8db0d347d25ff6520af7bd4d37453759d03db384df9e69b281307a36a1d05b4beed0a60f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + invoice2 = { + revision = 67327; + shortdesc = "Intelligent invoices with LaTeX3"; + stripPrefix = 0; + deps = [ + "booktabs" + "l3kernel" + "l3packages" + "siunitx" + "tools" + "translations" + "xcolor" + ]; + sha512.run = "7ef03f3c3a5c23774c0f3a495f949d5761f28a5d6316be7bc2a7b4039612fbab3f4aca9d29b6881a04948b9be2f0e6f7199d4ab8a41362e2d848f2ae8a090c30"; + sha512.doc = "9621a018752d18d9a5dd069e48a3baf3fa2f11c378304573a5bd9b9bc37ddd79366732f0b47f3acc878cdb68e04374db8371a1f7efec6ec6fca251a6c2b95025"; + sha512.source = "eb17a9ad06f67433b749e798783676212ca16dd78ab9a2029335c923235110e9c8bd8fb0654fc47417c60cd263d868789d8f86fb075cadcbd19fcd6142872121"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + }; + iodhbwm = { + revision = 57773; + shortdesc = "Unofficial template of the DHBW Mannheim"; + stripPrefix = 0; + sha512.run = "a0a6807c8715dfa5f4ded44f66509ecd6af804d5dbfa44adb4fec3454f39be633fe17b79458106be0a6c35086dd1d3e33aec19ec657a6cb6b3903695b5019cac"; + sha512.doc = "ed3c906cdbb26c095f5078dbe961781ab1a31f8c1a7b926b0a8082b7bb41b71a8912774829135651937bdcc5f2e53880300cf9b21b6ce35430fc443d30423244"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + ionumbers = { + revision = 33457; + shortdesc = "Restyle numbers in maths mode"; + stripPrefix = 0; + sha512.run = "f964955ea6470a8906dd7623bd6959aad72ab4da5cbd4c32aa78cb2350cda05a1f577316ef97cdec9658deda027429462b70bcdad18024f255191b2f6cd7f99a"; + sha512.doc = "5bf57ed5617846d10834f880e4a1c029547f1ac678a52be3e79613803b4e6cd0986887f2a44a0a4bfabaf9134ef39c44e420a12047fee81fd34243ec42c5262e"; + sha512.source = "f7d0f56de1a00761104fa7e9aa13f1ca4b9ef97051ef2dd6d28dba3066998d53aeae015d956dec0d3c771d85f6553c5835e4a9bd9d83dd4feb65591d6c613fb4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.3.3"; + }; + iopart-num = { + revision = 15878; + shortdesc = "Numeric citation style for IOP journals"; + stripPrefix = 0; + sha512.run = "49fadfe2a8a1796131be814b170e270e7d39c035419d7e546e57d2ef1fea13d48b2b022eda463829e1bdbe60233d361773321d86070420ad2b63b48154adf18d"; + sha512.doc = "167b0612883558f74d7696a6c9481fbb75e9ef6e7760edc4f79d81b3e1d7a344dc1efbf638eb4f5ba69be7002391211024f7aafed2e08e19fe559b58b0f7b1b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + ipaex = { + revision = 61719; + shortdesc = "IPA (Japanese) fonts"; + stripPrefix = 0; + sha512.run = "dec0527223fdb0f897ccf54e96691cd68b933ac61de4c036e21fd35bff93d32766444fe6971492ce64328f92621bd2949ebb669ab33b6b6f4ede88280351292d"; + sha512.doc = "c53cf11bc81d9a8f5aa19c264a1970d4819400ceaffa20b688d0709546113f932b82b6b6d12cf9fb31b2a3d2c0d45b6b33ee3cb3bd0060c961360389839b1475"; + hasRunfiles = true; + license = [ "free" ]; + }; + ipaex-type1 = { + revision = 47700; + shortdesc = "IPAex fonts converted to Type-1 format Unicode subfonts"; + stripPrefix = 0; + fontMaps = [ "Map ipaex-type1.map" ]; + sha512.run = "0dd513aa3cbb9dba7e1099f7f08d839e80002fc5f5bcfc2a2a013dc799a0a6389f128fe72ebc32b673afd66f3ebbc7fab9b97c31763f94b7ad64eebc83b2f569"; + sha512.doc = "1c2974ec35c0291207ddf560b6cef4cb5b161fb59e80a6508b4f88aab5ecf93c6a3dda2a3107a40e838235f5af22ce23704bf4f13fc4a0b344f0805c29655605"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.5"; + }; + ipsum = { + revision = 68861; + shortdesc = "Insert multilingual placeholder text"; + stripPrefix = 0; + sha512.run = "72ba4708735350c0b1c6521d3ba09ca0477b203328c1452033755da7eca159b82e50ca0950f2eaba7cac41c1f27cfb28951716887e2736d9e69f29f91acd29cc"; + sha512.doc = "b53fd7756b3ac604583d95f6cf9b90d322ebee9e6a1f085607de710a2bfe3257d29394cc816f1817b0cb499a550202a0dd1578c9e7e04152e8aa132fea05bd3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.2"; + }; + iran-bibtex = { + revision = 69347; + shortdesc = "Iran Manual of Style Citation Guide for BibTeX"; + stripPrefix = 0; + sha512.run = "0dd643474cdec8c5d15ce28dcad815978d9e3a76d0327cffeff021ff6811ba2313e44a5f21a4ed23a1bbf09433c479e551ad0a49c0d074d38a777df66daefa9a"; + sha512.doc = "51f903f7ee725dc2ffe58d594e64bebe5639e5efcabcde15206ec5e9583f8d4771fd2b457f8a79b2fe691fcf77d03854d1f5cb291d0b33fb7f2d5272a17a18bd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.0"; + }; + is-bst = { + revision = 52623; + shortdesc = "Extended versions of standard BibTeX styles"; + stripPrefix = 0; + sha512.run = "491b40704ad4c36e7ffac12bd5b823a4d796a9d52b82176cbd9654b6fe07d3a8a0c63f9756070bd4a971a33836e179ce6c7609e5de2eebddfac9c6aaecb92b43"; + sha512.doc = "bbd5aa6261779b7d395a89c04421c680b6906f795ec713b9c72bbdc282fbf459c443a08ccc7c395ac5274ef5aa1b3f56cd773e50faa7ced4ab4629f1b91e73e9"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.03"; + }; + iscram = { + revision = 45801; + shortdesc = "A LaTeX class to publish article to ISCRAM conferences"; + stripPrefix = 0; + sha512.run = "6111c93a14c28572c17a1336fdf00ddd16b6c04b34b4a10a1b4a5e46742852b949cc99438397895de36632c9f2fd57c4940a0ffa458ac148b4a5e49707e5ca79"; + sha512.doc = "24f5ebac7b8bfa826cb9ebaaeac0ec82db18807c5c3417dac53c6b636f6cb32b60901ef51f0d545cbe185ef0eef034404d3120c1211bf65c4ed4d155c67e19d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + iso = { + revision = 15878; + shortdesc = "Generic ISO standards typesetting macros"; + stripPrefix = 0; + sha512.run = "1ee4026383b28594c02ee7a3fde24228ac777814456fd8580954b1708ba3f735b563beaa291cea859c6492f8b9cc488635b67e373fc3afbd8f884a3b6d30a392"; + sha512.doc = "f5c874d3e00fb451f81a52f5711ac0b1c39ce48eca50a6edc0b1049bf4aeec43830fb534e207d852bb440c96bcb86d960d5e2e0670610d7cb9eabad2ff1451a3"; + sha512.source = "c40bd267337a62dc7dbf437087e36e569b83da7806f801017ad3aa8b3059409cfc51c32d83e9991b7fa0c9b2e7eb5aed22f841670196fa9f7080e5398a098d74"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + iso10303 = { + revision = 15878; + shortdesc = "Typesetting the STEP standards"; + stripPrefix = 0; + sha512.run = "40a36335c15b453d2e5b5abc29b2ec1891c6f1502ee2f8ffdebd2f9a159cea3aa28eba7c661c12a0445a4f713b77079d8b965ac955123fc81225cfd4491e5317"; + sha512.doc = "24c2a83508282a348d6748bbf722962f3ffcd193cd1cfafc4ca1e87c60622e463e5fd382ff65235590f2a9d629e8f40588630810036d2195172f61d1448e3dfa"; + sha512.source = "27cb8dd236ad5f249595d963282054eb40de35d135cbd6ad6a106941955e0abf8777602fc341233d22feb1073980341d31b6e939a69097d3776d7e20096fdc18"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + isodate = { + revision = 16613; + shortdesc = "Tune the output format of dates according to language"; + stripPrefix = 0; + sha512.run = "5fa145cde64155e9a4ca7236cf41449169ce0d1aa88381b46935641ed94d166429c1b139c852f96526dda270fb85736ca54e8864c32452996109b0061003639d"; + sha512.doc = "75118f62de8568c9826dcc11b753511f57b7fd237cac6aab1c75377121fad2179c81ae5ec5f64ec127a299beb88abc209727d17b1ded623718c7594bb7ca5da0"; + sha512.source = "43bfcc11aefd2c68ec96cf05f7609cab4009f960b5220bc15d982ad384e062bc42a791f269d5480bb1582ceda68f8c7d36e1308129aaa3df41d25d35cbbb96d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.28"; + }; + isodoc = { + revision = 59709; + shortdesc = "A LaTeX class for typesetting letters and invoices"; + stripPrefix = 0; + sha512.run = "5bdd4158aa30923d2f06513dd2f1a729077eef05f8f6e068c1e376f931558b9ad786eea871396ca3d16778692f010bc39f25da3993c74776bd746ed5355fc0e4"; + sha512.doc = "ebf8ac1221592472837590973700603e0cef6b459dae92cc28ba751f5c3c0c49a686b4224c83502b09cec26ba306e44fc00f19b0f9e9c83b26f582a9923f76dd"; + sha512.source = "9240f497398b77b6633f5be4040d13053abe51d64189e6678beccc1110f9e97b24422105bb3a552ade1f33c1af3ca2f8941b5c86548fbf7885a799fa69345b90"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.14"; + }; + isomath = { + revision = 27654; + shortdesc = "Mathematics style for science and technology"; + stripPrefix = 0; + sha512.run = "c9ed49ca5df0932ab59de0988de688fa119682810c3163ec530a8cd80f439eab858bca4dfad85567dbc2de08d226117b4df5249ff29f247c208ae2b1739165f2"; + sha512.doc = "55d94c6b4cf4c2ebc0eae4998f8ed6a1f450efa70e1644549e169cabcc782f1acb879c99bec5237e3147886c696c36f675e9f3c452da9f9880570dabf7adc5ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6.1"; + }; + isonums = { + revision = 17362; + shortdesc = "Display numbers in maths mode according to ISO 31-0"; + stripPrefix = 0; + sha512.run = "d82a96c2208dfd59f091b8316d8b496115ee56d51e5418344f128418c3b202f0ee20bea505c05f5e81f76006e2efcef48b2d3592bb5c550e219b5c8e4a6e5f4e"; + sha512.doc = "5ecd4587ad6d782182986592bb7f76fd62ccd2e9245921b48ae28e9e381f4084e0d5930b32815ebd074be4190fcfd6beec8be890014edd76e9a5b4958f71d6f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + isopt = { + revision = 45509; + shortdesc = "Writing a TeX length with a space between number and unit"; + stripPrefix = 0; + sha512.run = "2e313aa3afe2e1457a794834c1c5eddec66ac2d17fb614e15e6781a23ca0834a3fc2d68632b07e55618c6d8dc28de5bb8bf435e34f61a419cb27fa53042d4a7c"; + sha512.doc = "94498c64a4acbb2b41a7e4869b628c683a975f1ba28a8b721b9c44843574610a47a39883f5333b405bb8c02d49f50c3d9ee4f344c27b5e5c0d22c181db46bac7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + isorot = { + revision = 15878; + shortdesc = "Rotation of document elements"; + stripPrefix = 0; + sha512.run = "788b712fc11f3e4dccd58a75a950752d0492dbc30f0475dedeb26b86e500d0d23c4babf0dfc2361fe16e74d7b37d8f5605b4d4faf1e7018642a5e9dd1be73be3"; + sha512.doc = "4aed42e6fe61aecba99783a1173d903daec621e7d5e0867f6f73319804bfa7727a2a2dac204d792b76a98f8e291bc563bff364360b19ccede2b79600a59260d0"; + sha512.source = "99767e98f2eca92d4f0d8e32024805bea9646f10eda7cdc7fa5b325de04d6e70648c1e1421172e2358d7a6ef7eeca718db3e31e7f272160ddba2f24e4c516888"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + isosafety = { + revision = 68801; + shortdesc = "Provides ISO signs and colors according to the standards 7010 and 3864"; + stripPrefix = 0; + sha512.run = "4f3997e5ab414bea29e986e1edd7b1436f82bd22b32e4047814d48058a57aa7ba042c88808784ddf5dff3926a1ec366f374e5e275df8e16e8d8a9b9c07982ac1"; + sha512.doc = "905fcdc25540ca0db66cc8fd6057bb71ded0016180b4efbcb5855e9ece8213d2091f387201ab44a2827fc4bb897f8cd9209b570b9bc23ab5c4b4293f5848c1d5"; + sha512.source = "38427c445a9a816c674a01e3ce85b1a30b6ccf06f7097e82bceaddf72e7d178bac1873e57061d76c37cd3b73abd783b1d35b16648f43485b3d80cb7ce5158278"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + isotope = { + revision = 23711; + shortdesc = "A package for typesetting isotopes"; + stripPrefix = 0; + sha512.run = "27c03c4c6519c038185ee485e94ac51d90c21fd095e4a4cb6d91b06f98e7adb7a423a53b1df035514f58cd0556ab0ecb1afd55c05008e558812d95de2159c8ba"; + sha512.doc = "e1a6e798f894f9455e5d2144a935ee2960199e65db0499c4a900f888065eacfce72269f6808e01e98be3ea3440144eb4004c53af26d80d6ddda1be5df5492b1f"; + sha512.source = "555ad9d5db22d4efe1373bf971f441391371c91538b73f3140996d3a2dda85fc3003f6d685c3e54c06be216e5b54493d07f165c0a7adeb00845e79bbd9958c5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + isphysicalmath = { + revision = 69343; + shortdesc = "Simple way to write nice formulas"; + stripPrefix = 0; + sha512.run = "5329b97930fbe9cc13c275132a32cfe4293bc23b2c1911089aaaa80baeb0437606c73503b4430574e88da61615d0649fea6f5666a5609a79ac5ca37cc90294a5"; + sha512.doc = "f044b6cbdcb63a5e66b6dfd396393a99d605a219ede55317c759c28c3890a7c79ff6c0feb1de8f6517350d15a6422dc54426b7b5169ea1865024e5a335fe5517"; + sha512.source = "d68bb0b9753303e844476ec27156dc22ba7f3c4456a26870edb080709efb88a2485f2b41bd3c15a89d7d665f22acbd206c951d0f817742d352f6997621188734"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + issuulinks = { + revision = 25742; + shortdesc = "Produce external links instead of internal ones"; + stripPrefix = 0; + sha512.run = "2ac24eb0e19b92e29fa898fcb8cca7e2f64cf87fac408aa0c834f6afc0ef262560a512637b30dcbee2ec06e9f0fc32f344258bab983b1b1d6fd4da85c821c056"; + sha512.doc = "2605ffe2f42560b04fe781efe3c1972ad76f6cbddc7ef68bdb0ece9b0573b8cec785c2bf4befdf339935730a728bf19b83f3597119d3f9705f571350e963801d"; + sha512.source = "c66f332f9dea7a03a0ecc7844d99375fbb91ca262aa50faac13b9b396db0991411b33616aec6c1af22e915e3643e7340e0083635fb40b6e693a4e487e1e45fed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + istgame = { + revision = 62946; + shortdesc = "Draw Game Trees with TikZ"; + stripPrefix = 0; + sha512.run = "40ea41a683ecff33942fb3287f57489079be48eb5e7512b04f5b7038da34bf9daeb523b9d15325444f27493119d2258302838b4a44becc7dad205504064cb5da"; + sha512.doc = "275d45c62d3e140b5a292e0499c555716a43ed4cd06c69c59edc49b0e832371d39b320de954452226dcdabce7a140a622f3d3d1e8acb69fdd4aa0c62b39fe0f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + itnumpar = { + revision = 15878; + shortdesc = "Spell numbers in words (Italian)"; + stripPrefix = 0; + sha512.run = "73770854d45bf404e874aeda0d0bc95dac7ba266cb012fe4af7c4e7686c078b1314500ddaa767b1652e9b05b02691c93cd24b34d6b145fc30c0a3f56693f6a17"; + sha512.doc = "b7c81a74d816508121f0449580e4599092bcf3d176cbf9f754fe9e662d83a5c8b66e52e43b2621338a13b09c44babac6a575f1e8894863402c028dc3ed792486"; + sha512.source = "72ad2e68d946f5a862e97c3cd3f20f94c23a2a85fa5183a6da9b1f03be60067a482b2f22e7560c5c731df18f910f643f0c991a2b0c09925cc270287290654c86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + iwona = { + revision = 19611; + shortdesc = "A two-element sans-serif font"; + stripPrefix = 0; + fontMaps = [ "Map iwona.map" ]; + sha512.run = "2a125919a015c82e00bff575407f02a6c9a176f83a6017df682b98af55473e7e36ca0a94ff27091a3a4279d42fea9c49f0d8ae6da7e852ae9c44389dd5d8f7fe"; + sha512.doc = "87128ca46f7f2f13f8f886fc1c3da11f17636637632c0d39ebae07dfe70ec92024e1136da7a736a3fc8d494e856b86407ef9c01cd54a56fc2e41372bc0f1c4fe"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "0.995b"; + }; + iwonamath = { + revision = 68144; + shortdesc = "LaTeX support for scaled Iwona math fonts"; + stripPrefix = 0; + sha512.run = "e0b87b6815ffbec37a52e0ecd1d31daacd46c222abb71566ab3476cbc2ec28128f5977367715bf1eac439f978d750b6ce7e7bee589de7a1f18bf70ab8ce166ab"; + sha512.doc = "81fb0f9b7b738994a4af09a8dda8b580f4d59a92f790f8b285c2b1a252e672786296472847a6d4d8ce804a757248dec04e02894d1550cf0791863d25d22f35d5"; + sha512.source = "b7aa315eb74b6fdbfdd75dc176ede1841406efb9bf5ba584fe090123f3e93b1f7db9719a321833d2486b0e5e7a0a214a4b91a8c1afb2443e126ebcf96bea5b70"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + jablantile = { + revision = 16364; + shortdesc = "Metafont version of tiles in the style of Slavik Jablan"; + stripPrefix = 0; + sha512.run = "40fb96443b2194adf8477a68d9d435101dfa42471d02ec48a37968d21e12802ff1feffa830484642b457562392b6ea147d394734acdffd735a8a5db421d0eefd"; + sha512.doc = "00e753a85f3521ac0c6f336e0e563bd0a68a5e2ae756dfce72d3cf59a01eb9654b6f5c9ad9b83047d3d4f7743b7cce6f2d0d734510532db13942ef6619ae813f"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + jacow = { + revision = 63060; + shortdesc = "A class for submissions to the proceedings of conferences on JACoW.org"; + stripPrefix = 0; + sha512.run = "7482562b56521fbb70325ad3b633ebfc82165d65149dd85b89697ff9b5941f580f43e42da9775c659fa4fceb8a2908a200258dc31162b013ad8a207b88a5152f"; + sha512.doc = "b53a0cdf5c3fe1eedeacbb438fbb453f844eff9c669946963e18c0c787aac744307d51804327dfbfebba1f88332dc01c40c43d3a4a50b5d2c9c8a0bf67840dd9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + jadetex = { + revision = 69742; + shortdesc = "Macros supporting Jade DSSSL output"; + deps = [ + "amsfonts" + "atbegshi" + "atveryend" + "auxhook" + "babel" + "bigintcalc" + "bitset" + "cm" + "colortbl" + "cyrillic" + "dehyph" + "ec" + "etoolbox" + "everyshi" + "fancyhdr" + "firstaid" + "gettitlestring" + "graphics" + "graphics-cfg" + "graphics-def" + "hycolor" + "hyperref" + "hyph-utf8" + "hyphen-base" + "iftex" + "infwarerr" + "intcalc" + "kvdefinekeys" + "kvoptions" + "kvsetkeys" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "latexconfig" + "letltxmacro" + "ltxcmds" + "marvosym" + "passivetex" + "pdfescape" + "pdftex" + "pdftexcmds" + "psnfss" + "refcount" + "rerunfilecheck" + "stmaryrd" + "symbol" + "tex" + "tex-ini-files" + "tipa" + "tools" + "ulem" + "unicode-data" + "uniquecounter" + "url" + "wasysym" + "zapfding" + ]; + formats = [ + { + name = "jadetex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "*jadetex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "amsfonts" + "auxhook" + "bigintcalc" + "bitset" + "colortbl" + "cyrillic" + "dehyph" + "ec" + "etoolbox" + "fancyhdr" + "gettitlestring" + "graphics" + "graphics-cfg" + "graphics-def" + "hycolor" + "hyperref" + "hyph-utf8" + "iftex" + "infwarerr" + "intcalc" + "kvdefinekeys" + "kvoptions" + "kvsetkeys" + "latex" + "latexconfig" + "letltxmacro" + "ltxcmds" + "marvosym" + "passivetex" + "pdfescape" + "pdftexcmds" + "psnfss" + "refcount" + "rerunfilecheck" + "stmaryrd" + "symbol" + "tipa" + "tools" + "ulem" + "uniquecounter" + "url" + "wasysym" + "zapfding" + ]; + } + { + name = "pdfjadetex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "*pdfjadetex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "amsfonts" + "auxhook" + "bigintcalc" + "bitset" + "colortbl" + "cyrillic" + "dehyph" + "ec" + "etoolbox" + "fancyhdr" + "gettitlestring" + "graphics" + "graphics-cfg" + "graphics-def" + "hycolor" + "hyperref" + "hyph-utf8" + "iftex" + "infwarerr" + "intcalc" + "kvdefinekeys" + "kvoptions" + "kvsetkeys" + "latex" + "latexconfig" + "letltxmacro" + "ltxcmds" + "marvosym" + "passivetex" + "pdfescape" + "pdftexcmds" + "psnfss" + "refcount" + "rerunfilecheck" + "stmaryrd" + "symbol" + "tipa" + "tools" + "ulem" + "uniquecounter" + "url" + "wasysym" + "zapfding" + ]; + } + ]; + sha512.run = "7406670d136a018d8cc7a7e39d4ce6a2b4b58e48c8947eb257a2d014cf69e923fe770f8fd8b38c726b66f6924d36adbaadf59dd9b6f1638a598dcb812a84f926"; + sha512.doc = "16e2a21e6e724d194f4af66dd67e66fa294332f05222384ba63d5ec76a52d0da12e6381b60735111078cbab8129bb7f7f039487a7a0fda61466e2409f4ce3428"; + hasManpages = true; + sha512.source = "7e28b294c84333b5c8b4ab769fd0907b6ee3b05e8cc6f729c8925029c9a9d03f5b81b000abd26a5b6d7158ed7465efc2f403a7c5a28786f2a23592e0deeea6cf"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.13"; + }; + jadetex.binfiles = [ + "jadetex" + "pdfjadetex" + ]; + jamtimes = { + revision = 20408; + shortdesc = "Expanded Times Roman fonts"; + stripPrefix = 0; + sha512.run = "72e2dc3995f173f75aa4714c397bb036c140bace3b17ddbf321afad677ad397c2be804c890df472f89e15300d4645d02d8ce3746c33fa37be85a9d9312ece3a7"; + sha512.doc = "bc14db250b9d34e700c0fed6390948b39022f7ba39cc0e083c6a1355517fd10aaf7065f6ca90f40a50aa0cd6557a35cdfb1534aabff12ec6c462a2fc87ec699a"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.12"; + }; + japanese-mathformulas = { + revision = 64678; + shortdesc = "Compiling basic math formulas in Japanese using LuaLaTeX"; + stripPrefix = 0; + sha512.run = "35245333f0ad08ba0772aff54e5ed1b252ad1b1d298c55934ade4a0e33dec29fc67adfebcce22f10b61b9469a2a2d208c4b9977519271457f1538c4bba8bce24"; + sha512.doc = "cfa07138896028186773970685309030f587fc39f95b2fb0d993e2827a124ae4172acc91f9276ae65b32fdc614cd9525d557505b2f1fc11750a982a5c9cebb42"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + japanese-otf = { + revision = 68492; + shortdesc = "Advanced font selection for platex and its friends"; + stripPrefix = 0; + fontMaps = [ + "KanjiMap otf-@jaEmbed@.map" + "KanjiMap otf-ko-@koEmbed@.map" + "KanjiMap otf-sc-@scEmbed@.map" + "KanjiMap otf-tc-@tcEmbed@.map" + "KanjiMap otf-up-@jaEmbed@.map" + ]; + sha512.run = "30821d9e8a8de886fcd6ac64801771ee7ff48c7523e38946a8127579bf53d7ed730867d78573dfdcdc88017743929064eed1d4a5b474328ee2cfa7f889905026"; + sha512.doc = "80fec029e80a451eb9f53efc6e69935f9ee42063784a5f92784a595dab76532837062da90f3c3ccf8fea4e14b3cfcd339ba4e5fc539257c11e7726cb70ad2cc0"; + sha512.source = "c5ee59b3741e19c96f151483ab5444f3fc41dd498ef8a8a34f87dd087439d29b614fe3d9597d1a29e65bcafa47b570bbe119fbe6d705436fbf1dcbf9a6b76576"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + jbact = { + revision = 52717; + shortdesc = "BibTeX style for biology journals"; + stripPrefix = 0; + sha512.run = "0f1cd72dca41b37c26d863aa734737ad128f5c39c508db13a3e91e4088477a99d9978aa1ed003ba0812e276bb4d80e527c80915cd7a08fd1cbe968816359814e"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.30"; + }; + jeuxcartes = { + revision = 68266; + shortdesc = "Macros to insert playing cards"; + stripPrefix = 0; + sha512.run = "ad90719dd34791c88a5300d33ad7d633e650b3de6d61f493cf9069c39429f57ffbbde7aca1d2356a9cf6486701511fb7805049ed6a53ccbf49daa7a3dc5ab4e3"; + sha512.doc = "9c918a0cb97ac3b82a88fd104a2e084404b83b2c04acac44e5f566774a3c01d8c91b0a73b49325ab6d7d366c5849e69a60c28a9686049c009bc249cc9b04c7a0"; + hasRunfiles = true; + license = [ + "lppl13c" + "lgpl21" + "publicDomain" + "cc-by-sa-40" + "publicDomain" + "mit" + ]; + version = "0.2.8"; + }; + jfmutil = { + revision = 60987; + shortdesc = "Utility to process pTeX-extended TFM and VF"; + sha512.run = "11f0ee88997b197ccb4cf249a92f90ecd08227b0086861b59752c2e17fafb1e1fec7a1cfc701d5df91497d4cb9e61d13f892d776ded07c34d7dab09a2a65eed4"; + sha512.doc = "045b74024de9798fd7c74442404dba0610a94f66b60455d84fc33bfe56e8612b014fbd83cfa3edfb0c3a8acb31c0dece69ebefb58294b2d271dc1dc2e95d094f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3.3"; + }; + jfmutil.binfiles = [ "jfmutil" ]; + jieeetran = { + revision = 65642; + shortdesc = "UnofficiaL BibTeX style for citing Japanese articles in IEEE format"; + stripPrefix = 0; + sha512.run = "79433835a06c0fe268d90ad11bfe6a9956e49284cb2ea2255c4577883f2087c0c6b823121a563cb76f666ce74265a056f0e0b470dd2542a104894adb0242d083"; + sha512.doc = "ccdbc9aafd94956f43c7f78c93b02f067defb038ba6b9c649e38d1e0c02647c853ad391a1c2b10b60e14255b38c5d77aae9ddd260c8297e06084236c27d70073"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.19"; + }; + jigsaw = { + revision = 66009; + shortdesc = "Draw jigsaw pieces with TikZ"; + stripPrefix = 0; + sha512.run = "3ad1aab51b4fbd99efc6bbfabf716cfd27e4af71674b094053f4866e38ab4c6c3f8d1884bfc4e4f7cf0fef11abfc488cafdb696238c5af1440255151b1b2ca77"; + sha512.doc = "92d04e7497c19471f8aaa5344a1cc3824e18691daffab637a1822f900468269367244c984e4420efc94014cfc849ebfa4fd0db6e5b37cb1e89aa5493bdbbdb87"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + jkmath = { + revision = 47109; + shortdesc = "Macros for mathematics that make the code more readable"; + stripPrefix = 0; + sha512.run = "8e549db42b25c2edac71013afba0ebe3e09859ce4ef104da2b969663014cb88c10bf1c8899ee181070e6cec1b28d0ec9e5966d27f2176e2032d6855ded8ea941"; + sha512.doc = "99a954f6eb917333a8e6c4e3437fcd16f6950e0473fc1a48c99d748246c97d5a3df5b96e0314a9ec5e7c6bb0b318b934c40070ec94df00546e49cf140aef23c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + jknapltx = { + revision = 19440; + shortdesc = "Miscellaneous packages by Joerg Knappen"; + stripPrefix = 0; + sha512.run = "0369405034393ea8de2cd94497a97ba6c40264ec9142eefee09647fd4e51f83e169a99757a4b92c1c9d911637f137404fa54231de452bcd208ba3f9982984153"; + sha512.doc = "cadb522c007963278990e75a011e22d2c6bd8429e55fe5ecba3c2f20b9ae13fda4eac304bc405440c1c1566b1458e0f3e77a6d4adc77117b20673204bf502131"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + jlabels = { + revision = 24858; + shortdesc = "Make letter-sized pages of labels"; + stripPrefix = 0; + sha512.run = "5077471a09df4090e087a465e9d1823668ab80f088a7d5fea7d14559e9ea8906dae029a2093038ce5e9f013bbe3a9bcd74d8626e6ccbcaf7ebedd5c2f1e3521e"; + sha512.doc = "7736480f6736d8b623fac61683321eb7444ca8672eadf0da200eeca928de9dc031152e4599783d602e9c11b58463b03fc1162756edbaa5bd3dc1f6c5b64e08a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + jlreq = { + revision = 69932; + shortdesc = "Japanese document class based on requirements for Japanese text layout"; + stripPrefix = 0; + sha512.run = "a6ed1fc8706d9aa3bb759bfbf85f451db0f5f941b46c607217a0d1af653e617e56c50d4b82e0f376d212dfff5e4fc46f922e5397940931cdf2acc191f7c34ce6"; + sha512.doc = "01b804ec9c3447f50666e5bea40a3142c29b66aca69f69b2ea5cc7f4696b569744e55b148da26f6dd9698ad4cf580a738196c5b09fe0a0b831105251ebcf1855"; + sha512.source = "e6f452eaebc5b9a3b7a257dc1754f6aac822a92acac243b3301475f38828787972f8c15a34d92117c3036fd38f6a3c0b8895979234a52f3a65f518b129a601f0"; + hasRunfiles = true; + license = [ "bsd2" ]; + }; + jlreq-deluxe = { + revision = 69971; + shortdesc = "Multi-weight Japanese font support for the jlreq class"; + stripPrefix = 0; + sha512.run = "bf50a2ffb569202f6bf182637482005543ec24ac214287c3dcab234b6613430f4cb0e8d7a987bbd674e1c3442d57f03bee2df5cd1384eb29298b9f304a07099e"; + sha512.doc = "8a8dc59a0db9128c3d4db9a207beae6fca412ff9da59b7dfa32741f3cb770ecfe2d5ac1dd02521a938d82c5c15735f8e42ac56906ad59a097a5a150bdde1bc57"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.5.0"; + }; + jmb = { + revision = 52718; + shortdesc = "BibTeX style for the Journal of Theoretical Biology"; + stripPrefix = 0; + sha512.run = "6317f3437416ead3fa1224432bd2cae247614e614f888ea074cfc442b8c7c3832d0243988269a1d772172008fa377b142288f9644bb1e2954c3758c1b75f78a7"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.21"; + }; + jmlr = { + revision = 61957; + shortdesc = "Class files for the Journal of Machine Learning Research"; + stripPrefix = 0; + sha512.run = "95a5e59c8f4617b8d3d459a2cfe0730465d46a98781e4352debb9eb0c4357e74c8f519e77873a236f127dbecc235f611e30fbd7348818d9024a27fb8f0ff1eac"; + sha512.doc = "a481634eac642925340aa02323deee2aeee1577696abd435814a2f27d6e4bf6e61be2b2618778c762f3ec60a1e5067d634da74125dfacccfd940488b6a812175"; + sha512.source = "1dee8b499ad2c5427082a69b5a3a65c173a96ea298a05f94b96d448d8d7554d96819798dc724e1e8f55afdd1b25d9e6ed6e7f3474bd83af83b2f89add907f2c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.30"; + }; + jmn = { + revision = 45751; + shortdesc = "special fonts for ConTeXt"; + stripPrefix = 0; + sha512.run = "2e250c3f115911c56f9b8d46d358fdef289c624a5b24c9b4213bbf7818bf42c7b778df55d4bf181bce115b388915cedc90ef7cfa99ee6ad8dd621e7853fc7c29"; + hasRunfiles = true; + }; + jmsdelim = { + revision = 62630; + shortdesc = "A package for compositional delimiter sizing"; + stripPrefix = 0; + sha512.run = "83a76c353b38c9d5e432606c2f1667dac10adf54f844d9c4c7a9b8b8733a44d63db9e2c9e46b2ca54f427bca1d3bf4ef49d016c26dbad361b83d091c78708918"; + sha512.doc = "ef6f90a4b7d3738ff857158822fbc7b3dc23752b5da5845932f560fcaf83d67a22920e045448caae26eded760e34aaab375f29993ffb503d0b5ef3c8185ae737"; + sha512.source = "bbb2b6acb1e2a4be8fd02ea84f3f43b14675b7c02fcb036fbf10e59553411d4a19ad5bd6c087e7aebb5c7309d3ad6d19ccfc67d9186799159e0209f45bdbc5bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + jneurosci = { + revision = 17346; + shortdesc = "BibTeX style for the Journal of Neuroscience"; + stripPrefix = 0; + sha512.run = "1ea3d11a66045784c2d1abe0290d95482c5a2a65a21963a58d9626872b25bb0d20f8d1c3c3b8173bf7f63ed71f7c33e13c8f6dab0918585b36d72fa37dc35714"; + sha512.doc = "2ed6a342b376ced405a75da39fff51d03e9fffa89341522555d2edf8d8eca701013a95f09f01cbf642d3ed1ba93a1aecc89682986ae5c94d784f3c857eaaadb1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + jnuexam = { + revision = 70117; + shortdesc = "Exam class for Jinan University"; + stripPrefix = 0; + sha512.run = "bb4bd96084b70e0808ee15cf23f0ab721b6268074cc5544aa80c9a8b3f6c8a1784591859215e17846a606d7ca76d93ce103c70a8805a321d5833d59061e71192"; + sha512.doc = "45b3a04be31cb9fd778a2a264575a536750bf0c73b0ccb0fb68fb83d99fbe370a70c119e962a1dfbfdcc3da4056439e271aea0e06d7b7289e0c97f3bfff1d6e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.1"; + }; + jobname-suffix = { + revision = 64797; + shortdesc = "Compile differently based on the filename"; + stripPrefix = 0; + sha512.run = "b2e5a82d5bb8575e3708a3e2c30e23a3ceb129c6cd78882126061321350c3ad72e36ccf41392eca7556203be713530d3169bcb39210f91d720159c49975eddf7"; + sha512.doc = "fbe45bf364098e30deb8e040dfbb59b3b81cf53720793ca02dce59ec113ea57b86c1a3a8465ce6029ac1fa7b19b2220fdddc71f71285969e8f91eeafcabc3bfb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + joinbox = { + revision = 68003; + shortdesc = "Join boxes vertically or horizontally"; + stripPrefix = 0; + sha512.run = "c7ef7c28e11a64f060b37e1e17fbe54a80e1c5050bde043e77c42385037974a462598b66c3ab48a9d3317a6ce55a0af3a434465657e0a42d5568a127779c765d"; + sha512.doc = "ed665aeb55d066887e536ad545199809216a2eb84d9d81fd81e40798c7a69c5d14a191a73a8c2ee9fdcc6d36a8d206d07fbd72d427172eb9a182bbb3b4751cf1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + josefin = { + revision = 64569; + shortdesc = "Josefin fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map josefin.map" ]; + sha512.run = "6be43db9172d51a84374aa836cf9e2baf02f087336685a37c321449ba06461f08b08a8d98c12cb3aba0dbc9c0e2e8b3316362f65c7393b9286ab50b11f70174d"; + sha512.doc = "cc41ce980515708238256db38ff05c74a22f78ee5a8f4dc63d68339a064799e1beacab7be71ec15b2c97a6d9aecc7a39064fcadf4d7c67ff172eb9b8f7a939db"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + jourcl = { + revision = 65290; + shortdesc = "Cover letter for journal submissions"; + stripPrefix = 0; + sha512.run = "6039789de2a03ec2568597cfee911d20b66db75ef4ca3c48cf9481ed2debd0226ccb605a083ba53bce91b74768e3d70a2e2ac077c630b8de33c010f917d68335"; + sha512.doc = "873b2e5636f6409f7b6c4c8c4a8c8988108ad4740df9fdcaef4e7998d3eeba0a2a26e84fac5e6c7b6534bafd120a3dcf066974fc9419e4544cf597bc99fdaeb3"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + jourrr = { + revision = 68556; + shortdesc = "A LaTeX template for journal rebuttal letters"; + stripPrefix = 0; + sha512.run = "cbd5484b622c865b7c42f8ce54a76e54a5cbde6045701cd8fbba54d17c8abc510c79125e7d335c3509cb9c674ce233005f9fcac703fa95f3297239c00c3be682"; + sha512.doc = "395fadb1bcc91eb1c3090f57d783b0b2deff507d22a4221258dd826d635ba382c4c4d00c0d341402374ba4bb037e39cb23efa2bb323652d73b0940ea89eb9f7b"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + jpneduenumerate = { + revision = 63893; + shortdesc = "Enumerative expressions in Japanese education"; + stripPrefix = 0; + sha512.run = "10bb936cbddc6e88979ceed208bdba424d4e4c9c388cadd3a9b84a767c59ea43362f11092907f98c16696f07134ed66765a8bc7b02ea0a8fbe9eb7b814760780"; + sha512.doc = "447c925bfe05d1c6657bbf2592bfbd16f80d9bcc1a3320635231153b90198f2e8010cef5d13573e84504d5a41b9cc6ec750054c00a9178154c4e210684919d0a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2"; + }; + jpnedumathsymbols = { + revision = 63864; + shortdesc = "Mathematical equation representation in Japanese education"; + stripPrefix = 0; + sha512.run = "c4f23412a83fed8ee870922d1e8e0c2e8a881989223b340de7ecda0851d45d504fa6c5f0cb70ceb65e2c07f5df0154f77f343787573a6265a709bc398e3add9a"; + sha512.doc = "0589ea6fa4dee93900753dc170aea295e9bf1103687fa146633589897292dff8c472ee95607a2d0b682321a5a33e22220234e2a396cee4ec2abc54fa4276459c"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + jpsj = { + revision = 66115; + shortdesc = "Document Class for Journal of the Physical Society of Japan"; + stripPrefix = 0; + sha512.run = "de1383f7c52d4a43b0ecd2677314a88181e2702ae487b0ce3140b3048c1820bd504b6743002733e2da3e45553aaf911fe2c6ff552f77e706cbcd300570a34c03"; + sha512.doc = "65c25cd1540664e4e529be67851e5198761cffd6eea495d1f60963dd9deb911ebe8426391fc456f08bb6f640040790fbe7d7702b21f7ddcfca5d246c02791764"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + js-misc = { + revision = 16211; + shortdesc = "Miscellaneous macros from Joachim Schrod"; + stripPrefix = 0; + sha512.run = "6dd7920204cc66ff28c78f54bd6432a71d77ae2f4463bd997d2a4170465053eb86d61bc35d8da66377b47cb1eba88c6ed0918142910a5bdd4e44aec41d3ec4d0"; + sha512.doc = "507cc8c04589dfa7b4d36bf32e4c1d18af42b90df58fee128c0ad37284a87aa1adad32623591d0e8ca880c53a1f583b0bd8054487e231bb2a58ed06d1bf6c6e3"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + jsclasses = { + revision = 66093; + shortdesc = "Classes tailored for use with Japanese"; + stripPrefix = 0; + sha512.run = "aeba8c75d3af2077763da1846e09b6d51ce0f5935cc4e8a09fb6c747d9321161996423ce620d04c15cfe3a4f9af3ea36f90ccbded6fa03dcc088c5e71be74295"; + sha512.doc = "0ce0175fc4a3ea36154c329961d7604bb06431b586dc1bc928afd5b2ada528bb79349a833504ccc93525addde80818210cfa2a1803ecb319032bc8eda034f18c"; + sha512.source = "4b8e605a8f9d3de33b9deef3dd58ae2984881f9716b0a9647fd794a3c97549e50ffe3f2556bb4b4ebc5938ce3516abda9445d4ddff21882b53ccfd9276b37e02"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + jslectureplanner = { + revision = 70448; + shortdesc = "Creation and management of university course material"; + stripPrefix = 0; + sha512.run = "8a94f190abadb4e8d4293782984f94b17f5d3c352d4a0c4f9368327df0e27a416d2f584ee44c4829f05afebeb8a4bba2770086d8094c54cdee887f11620da808"; + sha512.doc = "0907581fac47177633defd0f55a6a8373078224e2edc62b0c8f5e2521464d179833b9a50d513ca52ae1994465f75b129fc34cf81ff54fa904fc7a7622b4a0128"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.13"; + }; + jumplines = { + revision = 37553; + shortdesc = "Articles with teasers and continuation later on"; + stripPrefix = 0; + sha512.run = "e09ee044fe7d5692fe4f1098406e33481ebdf81698168223235e735637499053c66f278a1f7e27585aaa1a586ccf85b4f5afdccfa3ac35950475f56e46324103"; + sha512.doc = "c7f56f012d6eca83e54610aabf1530889c01c1b28e9b790b220726bff860504a3e46ad4fd8d88ef50d3fff17507710bc168fd2d5861e9f2cdae69cff6f95ae71"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + junicode = { + revision = 69355; + shortdesc = "A TrueType and OpenType font family for mediaevalists"; + stripPrefix = 0; + fontMaps = [ "Map Junicode.map" ]; + sha512.run = "e368f15bb9adcf7ed15527e4e381424896590866cdb9a214b7f8310e9fd0c660ff5abe442a2206aa88f4032665f40fbdc21b33eba910ff1b299c5940eba82982"; + sha512.doc = "937127e4089bf632b62dc1a218645b1c2903a700183e9d9e7456b16a47b089846509d5d3f89424417a19dd540badabdc6a8a6024826e5cfbad97c19ae9f4bdd4"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.206"; + }; + junicodevf = { + revision = 69374; + shortdesc = "A TrueType variable font family for mediaevalists"; + stripPrefix = 0; + sha512.run = "1c227ce22bb32e8799cabfb943fcd38a4ccc6c07aa7d9dc9708c9bc84352c4a660cbf8c6d31249e47825b961f67a0d7da59349c827a97eada6a37a327091973e"; + sha512.doc = "c96e5c1887f39a2151bf697353b84d9049ca3686a61568f1d99b68596d1b7f6363810962652813403881754ac412240a9d557a7053803172ba45a8c7c7057c13"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.206"; + }; + jupynotex = { + revision = 56715; + shortdesc = "Include whole or partial Jupyter notebooks in LaTeX documents"; + stripPrefix = 0; + sha512.run = "3b5cca7c6b8b14eda35d52a6db5e7ac027c0b29ee08a7b8f58411886963d8dc69348752d6cc1f010d11b9216026b705fe4cc915d2c60cb3ee9f3950fcc6bb308"; + sha512.doc = "35b8d2dbcbecfb4e7b2bfb0ef39f2d076d6f4eec9189e89cee3bdfdbb6f57d5c1dcefbca3eeecf4842f7f94616030d2e73588074618b39e232f40104e371f3ea"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "0.1"; + }; + jura = { + revision = 15878; + shortdesc = "A document class for German legal texts"; + stripPrefix = 0; + sha512.run = "08426bab6c0627e945d620a338c6081a8a21d80567d4a4b686617d0d57c99b1e148f5e5c3406a0337ee4ad61bd795dca353c28b0f33d397c5b47515969fa5951"; + sha512.doc = "4d19c663f73791712d9c24361d8e2a0c2faf25bdac15dcce48825f02468f6a798eff7e147f531368bcc8d7e2a1938202b5614e2434cd46866f359f8349564adc"; + sha512.source = "7c83d639330c1bd405b2439b5e85dd723f476f8ed5096c8085180f03d63ffdeb834639fc8a49a454d50df9f882f27dd42782741fed89f8bafe45b6222bd43239"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "4.3"; + }; + juraabbrev = { + revision = 15878; + shortdesc = "Abbreviations for typesetting (German) juridical documents"; + stripPrefix = 0; + sha512.run = "4d6fd00247c6c915956679674dd029048cb96ac3bc97606c0a299bbaff24a4cbb9440d557eb2945151720265ecb27bf15c638c003e1039dafee56471dfa03945"; + sha512.doc = "ede48ff67dacf107baf50be345b042a7b64c815442875281241b7de4c3be56ec40c969e40ec69669f31058bbbe9b27c51cae25938d93bec99a8c57dfb8e9cb75"; + sha512.source = "3a92a5231317d6f7d7b1afdf5df14997e17217e10b694ad97a9a2f3984b0afdfe5a3edeb4368108e4fb389a98a7f5414409e5fc7d319f4c78802cdc1a350d6a2"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + jurabib = { + revision = 15878; + shortdesc = "Extended BibTeX citation support for the humanities and legal texts"; + stripPrefix = 0; + sha512.run = "12a1d9402ca15ff23cbb9818f07290f0b295c9844bc4cf02e1332eb27a26a3a8d0ed3199df1c4f4f85c9ff5308e7426d0c7adad8dc587fe905c5a15314863b3b"; + sha512.doc = "3f804537752bfd7b6780d082b37834c805e521491f39bd76b52541707e69f8b775b9e18bfcba0b0827133be8cf82bab86651f2a7ec351f9cc140427056ca0dc0"; + sha512.source = "349a2f55265584d73d0a1b0cdd00f0fdb384c87f8b1399acf62f14229ec4cb03919bb1c37d3c8ed992f72f3cd846c93bb13f25bed052edd80810bb6a92665e75"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.6"; + }; + juramisc = { + revision = 15878; + shortdesc = "Typesetting German juridical documents"; + stripPrefix = 0; + sha512.run = "cbf6ebe12bf72dfb823578ed49066f34059e5ab1beefe0eeee84c7df55135644eabdea7582dc848b52cd575579d8807a2a2723bdb697e851eb8aef88f8a5e533"; + sha512.doc = "3925418b9e4d05def76b9e0ebcf882c4b7061ff7ae446aa63d412c093caa04536ad45c757e04e088c3b4099c569885c6e6708ad31b866ebe89ecabb8395964b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + jurarsp = { + revision = 15878; + shortdesc = "Citations of judgements and official documents in (German) juridical documents"; + stripPrefix = 0; + sha512.run = "511130814ed94c7f0829802a0c3e8e613b0c4aae50854f6e06779448f430e78c8712142fe04d3662b799a488d90944072847dd223b01b642de78c1f98649e79a"; + sha512.doc = "1c439e351102ae3f768ae38404cc5d98403028fb6fa6088cd53eea40593ee03c10d20955f3fadef41f41af6d23f139ba356a9b06ed735644b67d3f42a076e0af"; + sha512.source = "8853060222f8f45e69fd7d3539534ed6a0762cb7f97d4c140dcb4ac59fcf1fe339d7f6cdca6e035d4e9bbcd730746e1311885d837fbedf65e208be2100ec2a90"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.52"; + }; + jvlisting = { + revision = 24638; + shortdesc = "A replacement for LaTeX's verbatim package"; + stripPrefix = 0; + sha512.run = "70626cd23359751909ce385a7ed4415c5641e9c303d0dafeb99e36d0151f382c02c2f6818a135bc92fb156d4fa25d1976b2c906074fcc112e56a1a7a458801c2"; + sha512.doc = "de6a694c26332d9c97bf4202bec0989370226b7381d080c4d6f5a106cd8f2bf352d756cbe7cede2a4ba3e17f85ad553e5c24e874a00cc1dd307325125e6d0bcb"; + sha512.source = "776fe9200a5447c151f11ee09b0f3d95aa5f07ccd427607b12ad7069aa70084d99c7d620261797e6c147ab134bf3a151bb739eadc8e3898dc8b16f284c66a965"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + jwjournal = { + revision = 69162; + shortdesc = "A personal class for writing journals"; + stripPrefix = 0; + deps = [ "einfart" ]; + sha512.run = "9778eb2f8a5999584afdb07b9604691d9ed1253a8a2bdedf569a10e892e876288a74c525bab2e0d26f8ed851d94f81e4a3625a54f1246cb0428a24308546d502"; + sha512.doc = "dde16cc247d095b61e09b62039f081afa1855778b7d804e6e5692213c25a14c2746204a730f7934a531142f5b9151dc183b20f1d2aa14429d448cc5d4e543996"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + kalendarium = { + revision = 48744; + shortdesc = "Print dates according to the classical Latin calendar"; + stripPrefix = 0; + sha512.run = "fea39ce08f6028f078e2d87ec73aeeb56d72006d24d316f8e257b3c71604efe2b4ea2fa698f79798ec5c9b3d271d758d4c0699ffce1bf380a74d21158224eabb"; + sha512.doc = "60a1dcbaa92fcb4438f4a2416dc4784fc30af34c6e1511533b8827a266b61a62a6c0e66f51b27ce81dd879d774e9fee6b155a048ddb9f68e1f991294791739e1"; + sha512.source = "a1668bd43e489002ff365f5f90c6f9f8d6acb752256159f223a444b41ac1398e8d0bde50a63deac11f8d3a22f792278891cb05109b5af4c2efc1e8c278f01a76"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + kanaparser = { + revision = 48052; + shortdesc = "Kana parser for LuaTeX"; + stripPrefix = 0; + sha512.run = "a9db1fc66330bafc5fc26ed600f1779dce328d6234ebe930aaff65a02a0d740188e73c5f73a9c75d69926323a610dca4b37044e7357a141eae9bb3231fd3e272"; + sha512.doc = "9eb00a9652f22411f9ae0123bd2bda62af617f39ed3eb8266c4ca38ff0783722a3d1eb05a0fe1ef6a238a3132ade65c5ebd882309f154ca416e2191b9db44c4c"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.0"; + }; + kanbun = { + revision = 62026; + shortdesc = "Typeset kanbun-kundoku with support for kanbun annotation"; + stripPrefix = 0; + sha512.run = "2ca12d697ed80a1f3182ac2e28897f670f8d770d99ce6fb3d8cb692e8e40d45afb463959ac8668b60ac7d67c9d8dd8f88ff5ec9e83a96f656ea8cd59ac419187"; + sha512.doc = "853230ef31da0bab5215f62e68162553b5ba54619e1e6b6e84c9c57fbe43b5af5715af2696c384a14807a1cd6507dee600d37bb205e5b82d42cdae15ce30e940"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + kantlipsum = { + revision = 68983; + shortdesc = "Generate sentences in Kant's style"; + stripPrefix = 0; + sha512.run = "bc863e42abe6397617c588c85936eec4dec5fd9578b26cdfaa80e25abd29ae814a009952f246a4920a3da43e0842a9b113d0c73eb7514b72a9c5a16193f914bb"; + sha512.doc = "97f15c38fff7c30d99313be71a6908f5391bb15a3e363fd00bf6a6563a2abdca2d98969d5299ba644d33917b48da41985c5ea6d9238e2e8a7fbd285262bcb8d5"; + sha512.source = "873c0b66e7d83fc93d916d4599e96ff8ce8cd045ad2220914cd4161e15e8f357676b86a35dccdca927c03abbe224f604dca187eb58cd3bc42ba78ed70b9130d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8c"; + }; + karnaugh = { + revision = 21338; + shortdesc = "Typeset Karnaugh-Veitch-maps"; + stripPrefix = 0; + sha512.run = "344027bcf79a9b1d3c408aae774bc532a39e7c638c4831d2566e7cf5ba5780161c6314bc0f9337de21fa08a2a2d72f3b5ccf9df7a521d7c95b4dc6e62cf2136f"; + sha512.doc = "379638ab38cdfe3d94d049fec7701995566df9c5451f4f6a862c7cde232ceea899222b13f3c40398676bd2746305ee48e8b43781804cd24f48f36946526d23e4"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + karnaugh-map = { + revision = 61614; + shortdesc = "LaTeX package for drawing karnaugh maps with up to 6 variables"; + stripPrefix = 0; + sha512.run = "789421645939ff491e3ee00aa06813a5e194108c2d55a5e06ffb4dba593a095352ec54c5194ef8ac536f4226007d2323a923ada94966b5cdbd147117856ba680"; + sha512.doc = "6a04bc71128802a62fa2dbf92a513c9859f9bab336cd2208d05fcd3b9404a1531e4f20cfd69a1d58186cee6660582ab03e89ce87511c3e1173f84bc6ac132f29"; + sha512.source = "520bcc77beb97f2f106c92682898244160c2ee45ec85118776dc375763363b272e1459e73d3cfe1c27c7f82f24f723953bc9705cf1f506e7c4b679c0f3063804"; + hasRunfiles = true; + license = [ "cc-by-sa-30" ]; + version = "2.0"; + }; + karnaughmap = { + revision = 36989; + shortdesc = "Typeset Karnaugh maps"; + stripPrefix = 0; + sha512.run = "72c5ee674d7719b535a03cb9180a605fce2ac089c875cf57b95739b5c139bc45552960faf8f3287731fbe12c8402ce3c2c6517513d20bbc484e12a44468d6ec7"; + sha512.doc = "c79e28dbfb45764c3f5feff21bf3cb8ec5ee41380fe43d35b2b091b1e263db1eb417a19c74987743c04a2f41fc2c3655fdc531c8971320580be48beeb4d3d6eb"; + sha512.source = "ff5bdbaebaf55faf2d617b1e3634e52a6ec52c9d56932653d9b13a8aba94db101c4afbccdabd916d51be201135de2e739295b8a0523b63def160f1c07171e4a2"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.0"; + }; + kastrup = { + revision = 15878; + shortdesc = "Convert numbers into binary, octal and hexadecimal"; + stripPrefix = 0; + sha512.run = "d7cbd22ead6633284e9d114d90b2cb47924bfeb10c15eb350e4c2f82b883930c953410362313cdf8ac476a68cfa3a9b020217097909504b97a8ecd7addbc8d97"; + sha512.doc = "32883a008b0f44c341fbd5f65f9783e403fb5751201235b0c4a2dfd9af8400e1a36adaf4573165688d78cacdaad3c8b2ac1b92ba87ef6951d3bc5330537d1f9e"; + sha512.source = "60390a053fe2fa53685403df1d67a2bf8795f49db0f4eaa5a147ccaed951a55c1ed50c9cc5802bcdb5e356b694c2b4be78715022842c958f784908cab89a3f75"; + hasRunfiles = true; + license = [ "free" ]; + }; + kaytannollista-latexia = { + revision = 69876; + shortdesc = "Practical manual for LaTeX (Finnish)"; + stripPrefix = 0; + sha512.run = "e7b939930e9c0952cf67e402b363a00a7aba9ad226bf4301650553ab8117a78dc415f81c31e8ca6a8eeaefffcf3fe95a57cd93164df01b63f74c0513f0e8469d"; + sha512.doc = "f44779f63f301091ac2119f6c5002c29d2969509775acc752ca4aefeca8b16bbc02f352c36e3b869ea6070f3fd70bacecf3e7d41d00bc5007d0176e5cc489f3e"; + license = [ "cc-by-sa-40" ]; + version = "2024.2"; + }; + kblocks = { + revision = 57617; + shortdesc = "Easily typeset Control Block Diagrams and Signal Flow Graphs"; + stripPrefix = 0; + sha512.run = "1cf755fb680b13d5298c306698bf41cd0446f7ec8da321b065ed549c1bc83bc352bd4a44d67eaff6fd1c253b2d92768f8ddcdb6a986febc4dd1abe6884a2354d"; + sha512.doc = "7aa79c73b32d4098bdbf6152f28de628083639fcea2b7338e64fe6108aa605662f36002d93268f67fcfac59798369d392c5c4b79adcb18d0600faed8d804d8df"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.0"; + }; + kdgdocs = { + revision = 24498; + shortdesc = "Document classes for Karel de Grote University College"; + stripPrefix = 0; + sha512.run = "79b64f2f20b9da908fd9acee1033fdef290c30e99794c37f5020f33dc5fdbb670383463bc17614f4ecaa1d5d4c03b4ffd3aa4f2b7c53f27455740adda9d0545a"; + sha512.doc = "6b579a44d041a10eb9224aa80c1b59b113492cb12c121b1ca5f57625d044b52a80cbfab63d7a3160043b41b1b4e27d463f5ef8c9688f620f431fc1937a8bc561"; + sha512.source = "256c4c4e0a8dddf39fc6ce14f17313f2bee7c967dac21910fb44fd674573de113e78b0beaaa979d3c7f3fba06ad15d24d6243b8716b0114507331f267144d6f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + kdpcover = { + revision = 65150; + shortdesc = "Covers for books published by Kindle Direct Publishing"; + stripPrefix = 0; + deps = [ + "anyfontsize" + "geometry" + "graphics" + "microtype" + "pgf" + "setspace" + "textpos" + "tools" + "xcolor" + "xifthen" + "xkeyval" + ]; + sha512.run = "d68fa467a50f7d1648e51b918201b76c199920e39915a3c5fcc72cd75c4b11b0924082cf8c01363fe5af998c66ffae71137e7f9635e147ed40ed5e7cd4fd63cb"; + sha512.doc = "880f981153526b41cc128677d950e52b4ff5449adc4fbb3b0004a983bcc7222fb64714ca033b605172fe0b52107e6cc8ff0fcbd1778bf7aa6b9d20fa994ef452"; + sha512.source = "e67cc3eede96c42506beb03d8e4e7db1b5fd4a7ed15026a060c3a5db559c0abc7fe0f9e24c22b23d2aff7c7979005f0c26d250607129d29b6d4bc9babc0e11be"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.5.1"; + }; + kerkis = { + revision = 56271; + shortdesc = "Kerkis (Greek) font family"; + stripPrefix = 0; + fontMaps = [ "Map kerkis.map" ]; + sha512.run = "b4a8465264a174320180ac5f9bd89900f7a3b351af21d3a138db40b0781228bac8f8e9ea66a54a1910b3750d65eed17f74880f1c7396780dcd631eda164aff58"; + sha512.doc = "b9c57f71b2c5e48ab3b96984b231f5ad418d884caad0a3747c78bdf0a5688c4ac05993e43707236b02650750d5b7507d39e50668b7cc16e00a35547d63d0bbb3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.11"; + }; + kerntest = { + revision = 15878; + shortdesc = "Print tables and generate control files to adjust kernings"; + stripPrefix = 0; + sha512.run = "9f295c253228745bdd91db65f2e414bc6113d246242ea1717db6659c2ccbf72530fdc326c0ec499f6d6c2af3ec8df2b78965666dd8544e07bce864716804e76b"; + sha512.doc = "b471544af9d1ecfd6225e4b9d61f05b4da950a6512ac4c4bab54b1ef9befa859ee5aee2498690e724d84313808d2abc8f005fd4e121891878cd2dbd03ae36415"; + sha512.source = "8d7c2a8e8881f361c67ff71a57056dbabd3e0af5d24cbbc5f9e7e6e321504482469809f8bf349b5fd4d65e011049d5a67e7570c0b364cfe178b0fe377da82c31"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.32"; + }; + ketcindy = { + revision = 58661; + shortdesc = "macros for graphic generation and Cinderella plugin"; + sha512.run = "da33a0bdc989fcb6f4521d23e5d44bae70d608ed8ac10f05d6962a252e99bbd80380afa2cbe9e02b9c652b044dfff79218f951144da6ce55f8a53033c11ff346"; + sha512.doc = "1704411b3e7c41b6318ff6f8da56007dbf1bec67bb495d25364d6274d9b8acf234430081c22bab6ad13ffd0ea47586e6e24c9f27da8a97a309e2128ec74f89e9"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "gpl3Plus" ]; + version = "20191225.0"; + }; + ketcindy.binfiles = [ "ketcindy" ]; + keycommand = { + revision = 18042; + shortdesc = "Simple creation of commands with key-value arguments"; + stripPrefix = 0; + sha512.run = "90c2246edbfd199d98a05df336ee228c65f26073f3c95c5ae55c3201cf59453bb5afb95ad367ab4af6b36dc4e0c52a25bb10f80fba265003c701122247be50d9"; + sha512.doc = "b99b58407f5d93fb868bf525ab199c41e07fcf5f31c7a6a14cf68622ef3a34e44d1014e4d34594441144af5c7d9a9853cef1505311928b32a9fcbd41c7bf4284"; + sha512.source = "44b63a11f08c3bd47ab337ccfa1b0b2737624f77228ca1d745020e2c1ca1b1616c1bfadda1b99c362c0b372bfbdf37d839f0d0457082922a54a66608c82aa928"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1415"; + }; + keyfloat = { + revision = 69399; + shortdesc = "Provides a key/value interface for generating floats"; + stripPrefix = 0; + sha512.run = "b3bbbe74c5db4eeb1a74d49e0fe9608df347921caa0814faca8eb62cad674fc3977c7af1cd58849fe6abab5a1231b4ac3999d5af7aceb7655f12d883e41148bd"; + sha512.doc = "43771371d9f81311e29be4b7ad2b1876299d6ff4ea740e9cd759a01701665bb6bd37983828238e13141e39c253b6d3d92b566fc97ba2944d7967cf55e492913a"; + sha512.source = "89f10c6c68e6941de535abfc4e86a0e019a1bcbd2cf10f0fa542adc208f5ee8c1c7884f679d87186c2103b4b1f69b36b50e3c73512fd9209db1be4f5c87f05c9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.09"; + }; + keyindex = { + revision = 50828; + shortdesc = "Index entries by key lookup"; + stripPrefix = 0; + sha512.run = "93de5becfa1b4950f518bc004f0dbdfe96f567e17ec4b7656326b89201f1f85edcbdaa771dc8568fc0c87bcbd8877b618d0d00ce387ca70036f6794a8b870695"; + sha512.doc = "4be79367bed5a7bc3f5bfd6c10f7ba6a4c87ed51139e8f8a7f55c59ae3ce6c1aa10df1c88728f7dbb4573634bba2ee599378755cf6c77a2ccf8d93ece5540736"; + sha512.source = "3f177cf8d323fa6dc0b47742a27cada66cc505777a20c26864dcee73c272e46ba3867c4120f480be8ce5afcfc6896d908eae0f336cf306a13019bd0f0206f9dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + keyparse = { + revision = 60277; + shortdesc = "Key based parser"; + stripPrefix = 0; + sha512.run = "f3ca8d0b78d9e20bf99e46ebf181d670fe6d936f9d91f1059056820f8be1a9be6eb6278fdda8b118a5f82d376440681dc4cf9a063bb6693df67d5e2d47b3a5dc"; + sha512.doc = "01b6aa91350a1ebad4f37be4051a4bdc97939392a6ec2b7708de77d06a575c14fa3f9bc9a8b98ac5d73428555389aa6bd0f9439dd299c2b34e19b7800eb2a27a"; + sha512.source = "2eb4c90abed3e2676bce4865ad4254b6f572a69edf63ba82a5a9b3c994343f8d3a3523dd465b94d6afe814364c41a581dc84d49c9e21be6dc4231c3f850eafe9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + keyreader = { + revision = 28195; + shortdesc = "A robust interface to xkeyval"; + stripPrefix = 0; + sha512.run = "d1786b07a3dc87f94248043f0bd941dcd8dccce29132e67118d3fedc0fe207a2df846d850851217fa87ed2219915719e70fa73ec284ed420072654c578ee0b3c"; + sha512.doc = "05c45cb13bd2612dd5b048f296437b605117c71a52cef2a1b90ad58b693a31d05da9491464ea9b208dd7eed3f3cfc96e9b5a00f5a77e5d492208fe1e924dde4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5b"; + }; + keystroke = { + revision = 17992; + shortdesc = "Graphical representation of keys on keyboard"; + stripPrefix = 0; + sha512.run = "e04e13e23b3342686078c2278d3b6f7c8678d99acda197f50296ade3dd91bc4316323a669efd7238fd246c60f169c694677252601a81d9e23b49a1e37049c93a"; + sha512.doc = "bac7f2e879796c0ccd5ee28c47aa79e9208ce0d01456de9ada6cd00d822c098cfa318615311c43b1815de0e6968252f6005a3dfd9d0475ee7dec25f7d24d1d86"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + keyval2e = { + revision = 23698; + shortdesc = "A lightweight and robust key-value parser"; + stripPrefix = 0; + sha512.run = "08495711a9b509707ce6da359f9743b267baaa6ba6e18e41c965ce016c4c51e1bb7353769ecc9596e9bc415976449612f602e291608d306ee5baa69a4e823160"; + sha512.doc = "424035c6250990b4104200fdab744d50643b6ce36ea717f50544fecd40746d47d7d2145203f0d6f19652a7217c99eb599a1c7d8b0e3a0fe00e1355c416cd4294"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.2"; + }; + keyvaltable = { + revision = 65416; + shortdesc = "Re-usable table layouts separating content and presentation"; + stripPrefix = 0; + sha512.run = "733d7e2f07b07b1b7f0538f54c0dce33a706210203c9aaeb203c7c4129859d025d20a1afc973f5320102c89bcac78547213707802726367311625ab89566492b"; + sha512.doc = "7b3cf84548c2a8d997b8cb5ff3cdf77a40ff309220fb6d109fcb8215e78c8b93f44e495f3da7d92a3e144c1635473fe8780cc45acd9e978f12faa7dcbbff9893"; + sha512.source = "0bed97c004ebb8aa8af13d226c10fa01e00459534a061d5bb9500e7d5376fd379f67310cb169e2c1fbcc0e07f4e5c35d096ef1ab65b92a1b78481fbd7e90e1b0"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.3"; + }; + kfupm-math-exam = { + revision = 63977; + shortdesc = "A LaTeX document style to produce homework, quiz and exam papers"; + stripPrefix = 0; + sha512.run = "cb050347cc1cfab5e2ef5c248b6460edb50779b81216f3b9277700780922c94e44ea2c14696b470111421de1e049378811645cde6dba004c23631f2111cadab9"; + sha512.doc = "8cebb9035b23e1919fc9428e9f57335ecfda9c98214fec78f95d665f44060cdab2aff6a9ae22eb124a6da7716e88971f559084f64f7b1c1456e95dcd03c00307"; + sha512.source = "0a7dbdfb80a3ae91b23256839c8174b3db13ec23f3dca35bba422440897ade8b33c0ecd8d8c76367241e71abe9b12c5d69a07bb9d0a1962d080a6d89e76a50e2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1.0"; + }; + khatalmaqala = { + revision = 68280; + shortdesc = "Arabic font for university articles"; + stripPrefix = 0; + sha512.run = "78481f7d494a7c1d9312e3c11a700e43b007660aaaf28f74a3aae4966b2387088bb891cc8e73bd431ad992395f7b66a10b9b326d2262509fdac3e153473d37dd"; + sha512.doc = "ec0f8ec3213a009899134fbf2389f9f33e2747175bf94246c0e035c424728251c0e16a3391e598007b83262353db66acc87431f6856dc1df6e784d5f40b4a2a0"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.0.2"; + }; + kinematikz = { + revision = 61392; + shortdesc = "Design kinematic chains and mechanisms"; + stripPrefix = 0; + sha512.run = "6f23b8084247aa807c5738468f005fbaaed59559828247f269dcc24e62535984bf7805c69aea27b889d01b2afa04ad67811a0cc8e0ffdea7e263f9ac9c384fc4"; + sha512.doc = "b5fb6a456f042a677866f9fee3bc7a13a8405ab6fcad590ba37dc9d681e61d04abdfe6bbab5009cc1d79f73859a1fdec137c92e6c0d367b1d801ca2d41d69160"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.0"; + }; + kix = { + revision = 21606; + shortdesc = "Typeset KIX codes"; + stripPrefix = 0; + sha512.run = "dd819518a80ca0486a191361625b58f91d00ccac88a2f69269bd6e1753f6c87dd3c97d39a14a5dc3768c9ecccbc981106eba1f495cb7870103a828ea69ed8bef"; + sha512.doc = "3d3816d395e69ec83c88fe55801cab052b12f5e38702edafec2d3f9225c80a31165dca553b60401dedac7689c583feb00615e41c7179fd19ccdc420fbd5e6d86"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + kixfont = { + revision = 18488; + shortdesc = "A font for KIX codes"; + stripPrefix = 0; + sha512.run = "a866364705d75ab560488c84a5e403755acfffe7b49b8e6dd65342f45f852a5be9d4072d750fae606c3d5789e1d46458da66f0af6fb9f9e0225c1d9acf69d4a5"; + sha512.doc = "ca250703364924daf9827ddeb48126fb21ff5ec3230afbc3f6778d23e96dbbb16173e5504900032ddbe14920cb40adf8130be50ee92f3c9c2dbceb95b8ecb90f"; + hasRunfiles = true; + license = [ "free" ]; + }; + kluwer = { + revision = 54074; + shortdesc = "Kluwer publication support"; + stripPrefix = 0; + sha512.run = "25210201032ab5cf867e8e46de560a2232e36cb636db8d6d533a6052ae125024f2fdb3d016aa68d49d5be4ded676a1e02108094c366fbc9cc443035edbc82107"; + sha512.doc = "0908a60833ebab53fda54708cb332f0b3e2ed6c071daa1b231570c6dca57b09b6c9e7e52afb606300b04f9c42794d6d6b7c2387ab35fdebae0ef4d346ca068e4"; + sha512.source = "12f20e51c0c7668761c2894ac6559f16f853c4d255331db36d9d50e21ac92103828d661d2df8358de24c8403f7a0292866ed4edd5c64e54e555e979475bb5adf"; + hasRunfiles = true; + }; + knitting = { + revision = 50782; + shortdesc = "Produce knitting charts, in Plain TeX or LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map knitfont.map" ]; + sha512.run = "af3f7d2355054293c2c7973cfd40f0b741c8821884cca6ceec7562efeb92433bb81aa204b7b0ed4dae77cf674f4a63005f36133fbb5bf3d239f0cd5ef61a69ac"; + sha512.doc = "effaaf06a5593a9d73f2e93a722355009a0a957a2067a1432edb40d8dda7649c42571cbc37fc7aa4103ae2094dea7b1bfd861273566102c55546f71b326e7118"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + knittingpattern = { + revision = 17205; + shortdesc = "Create knitting patterns"; + stripPrefix = 0; + sha512.run = "cee26b0e6fd54a43a12e0e48fd5b4bf381816dabb6019cbd7c13ab5e2561b9f191d9fce4c75a513c06530077bba8d383b26552e2e6f4e97600aa2216547a08b5"; + sha512.doc = "d391a25a224713092128af5adf68e5331c530a67a763dc37f657d8bfcee0d904632e86ae2f3745ec2c4bb0cea5e886c85da15b064780dbe997104b9afbef9e4e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + knowledge = { + revision = 70609; + shortdesc = "Displaying, hyperlinking, and indexing notions in a document"; + stripPrefix = 0; + sha512.run = "8c97dc4a8a0ab5fcd2ae59da3b4217fd1e6171d788197c3755577a89fb86c6d7d7075778c669bdee8c0ff8157583695dd20c1186b54f80b87c968add98970f99"; + sha512.doc = "a0058b7065a25ced7469000536321cd830503fc3e3f1bdc00d44ec4dcd7eded837f62ccca4ea49d46c9262c7bf8accb2f29d6564f39e9c3acedb163817098da9"; + sha512.source = "f7586aa134293da41c4920402aba230c12e5f14fa9e7675206fd270203bedfa42426e1ffd56f4289980b5a49877f8179cacf4ecba8f2a5fb857fc891087a2531"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.29"; + }; + knuth-errata = { + revision = 58682; + shortdesc = "Knuth's published errata"; + stripPrefix = 0; + sha512.run = "f74443cd6bd0ebc039ff7eb0f5df2709b28c34c1fbf49793ee6d8ba2477337d8b7d0072573c32d67da17f7796efa058aa0d2d7cc2f7e196111c9ff90668ddb97"; + sha512.doc = "86abd134ee7d4afd4398735964c83340b67edb9b41a960d205aacb3dbf1c702a854eb469d3c39b06a7ed1974c8e2a951dcb1c3fcfdeb2c394b7d21e4205ceca4"; + license = [ "knuth" ]; + }; + knuth-hint = { + revision = 67373; + shortdesc = "HINT collection of typeset C/WEB sources in TeX Live"; + stripPrefix = 0; + sha512.run = "ffe5a785191fe8506f59557546b3bce29a236ed5e23a6766941b37dd134bd00ff1ec5dad0278d837bfe2cf8a0e69e5ab5921daa320184ee259580c9b41d92ede"; + sha512.doc = "5b47b3cbf6164bce8cf6903702b5a6ed93fcd13def2de2e6b30e3c8e758fdf076a1c14f1bc452768c9841d967e932a6597ff0a1a7c9140ce2100036fa04f031b"; + license = [ + "publicDomain" + "knuth" + ]; + version = "2.1"; + }; + knuth-lib = { + revision = 57963; + shortdesc = "Core TeX and Metafont sources from Knuth"; + stripPrefix = 0; + sha512.run = "47d50b1966dc5a3adf4921c297d9ed5917035e917098154fc08d1c72ebd0ba70ebfa41735c7ae52c5087d62242bcfa9b0b49914c6da4f392e2d4c56a6d72807d"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + knuth-local = { + revision = 57963; + shortdesc = "Knuth's local information"; + stripPrefix = 0; + sha512.run = "91962f359e8b2f668130a6511e7fafad26a0c4c14a46f715172aa28723f743e08c50be666cadafd7a591f2283daec4fdd45039afc714115077667b66e67cedb5"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + knuth-pdf = { + revision = 67332; + shortdesc = "PDF collection of typeset C/WEB sources in TeX Live"; + stripPrefix = 0; + sha512.run = "ab6e1db43370a551700c4ad8ca9e3787a7be7a06da2a72fd4cb0faa7091fefa1847d143bdf9c8d603ad7d307495ad34faca4e5ef054fa011d0137ba90f888a5d"; + sha512.doc = "0f16994ee8e64478d01f7b0f2c54c55369b5f661abe7f4db347cb2b7d146c4efbf337e20fd7eba1cce497d8cfa5058bbf4c013073028c364678334c524aea155"; + license = [ "publicDomain" ]; + version = "2.1"; + }; + koma-moderncvclassic = { + revision = 25025; + shortdesc = "Makes the style and command of moderncv (style classic) available for koma-classes and thus compatible with BibLaTeX"; + stripPrefix = 0; + sha512.run = "68aa7ea875f46a4c1d1bbf29d4abb77f4ec729242fab41f3e79caf95a925a076ec3d37ce7d98b44aecaaf9edce541d1673780238786b36cee0621acf4212a1ef"; + sha512.doc = "968f5303bc7b5fa3df39a2a44c38b63e54059a94ac7df2349b45cbc0855d22ec64ec39feaafd761515720d306d5e5ea8a223ca74790ba160bd093f989d8b69c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + koma-script = { + revision = 69755; + shortdesc = "A bundle of versatile classes and packages"; + stripPrefix = 0; + deps = [ + "etoolbox" + "xpatch" + ]; + sha512.run = "610827993fa3d94f1b914ee24be0c0a2ec1062c1d1863dac8687e6ccf9c7866b7ea56fb45363587138d7d7842ff58cf1aa4e1c7970f48ca8f7a783e0fafea1a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.41"; + }; + koma-script-examples = { + revision = 63833; + shortdesc = "Examples from the KOMA-Script book"; + stripPrefix = 0; + sha512.run = "03941b9cb516d836b59f493e1e6af7ef409306cc567ace2abc467c7b6c73156819fd23212668ab5506c03697e29840073162dff5f912f605354cf9851ab6dda8"; + sha512.doc = "d355edd3348b454015a390449e251bf476350385b062d314d9e924b187e85802e815cca97c550073605ec3a91a38a15d2a9af79b7771ec74557067dbedebdbff"; + license = [ "lppl13c" ]; + }; + koma-script-sfs = { + revision = 26137; + shortdesc = "Koma-script letter class option for Finnish"; + stripPrefix = 0; + sha512.run = "3b281a1e94c73e1d8224f6ae552be91e3df344f9031e139334fd7256e38dc70bed4132164935845c710bef9dfe0e8c439c229d3415ff835e48777aea182e7fae"; + sha512.doc = "84f7fb5c11c9b40029bc481d34ef7cca39baa2a3872f22fd5b656e324aa5cc0becf3ff6d894ceaf26e8ddea0d8cc14d428a140e1f19ff2e060c6d32390d51070"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + komacv = { + revision = 57721; + shortdesc = "Typesetting a beautiful CV with various style options"; + stripPrefix = 0; + sha512.run = "028e8d2a7e5ea450ad8d6f2b14ad0b84b319db0a234f03f8a6e1efc781fa7e60a67a67e4aa5cd101eea59e2c93a073b635d74bc6443d84b01599575466994a6f"; + sha512.doc = "d016f4bd23fb08fb932c3d1516167619d239f8cebe8d2ad8e6fcd07aa945c2df17d6e05e5474dc5522ce4bff1d72fa7879bf9dee4348eb8aa8624d1fe30ea86f"; + sha512.source = "ab1dd4f3976bd0b1a81c7772a92f1c015f2a0a662c65f474bc36b9bc6edfce6756f428fe9e45d969dcbbbeda41a0b1ffd463c3fe5cb286fa9722de22c59847c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + komacv-rg = { + revision = 49064; + shortdesc = "LaTeX packages that aid in creating CVs based on the komacv class and creating related documents"; + stripPrefix = 0; + sha512.run = "6d400b0f228d42aaabf9527bbd3447fdf92eeff81f1fb7978cf90c3afa9835e4731a9da938bbece65034476ac2e2f7afff19000d9012ddd76b6f65618bea7223"; + sha512.doc = "58236086df2335cd167a5d475cb0e223747d43d81d23c0c0ace1cd711a19ca371426d36e199d69a9fd5414a33872dc4ab3725850a6677440484daba0e55d5208"; + sha512.source = "512fbddc0b233061afd3a2af20846e8eefcb9d1dc00b29669e45499b62289d842053201b208819536af0a2a7db56cfbf2346210775412035fcd13d2b2593dcf1"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.9.2"; + }; + korigamik = { + revision = 68204; + shortdesc = "Typeset articles using KorigamiK's document class"; + stripPrefix = 0; + sha512.run = "8218a2e5d09cc572c3e3bcba6d49ad9ef9be5016cbf2f3bb57c7f649fc638f718f5d91c09c3d9013ac182e651b0c53b65c7a118a021eda68a53a1e8641a0a8ee"; + sha512.doc = "291a1153ed32bce9c7b845a40b4de3f63715f2179765021c1ac3f678bf1594a0abe405824099826eeeae30a90a5fd773e6e5aa91fe66a08ed47c91f371fdb6cc"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.0"; + }; + kotex-oblivoir = { + revision = 70496; + shortdesc = "A LaTeX document class for typesetting Korean documents"; + stripPrefix = 0; + deps = [ + "kotex-utf" + "memoir" + ]; + sha512.run = "7a4d61b5e5c20b3ef673eae06b95403b7e3f65808f8bd1163f8d6a5fb33004a86991b5941da88cdd89b74ffb40bbfe14d0a51f062b51c7567b03609cfaf6ddc3"; + sha512.doc = "42c6dd702f21cfda0a1857f42832a53c0d936280e07c0a3700e39d614569bc5bdd0dd50daf4e01fcb0c3ab94c747645a1ee7298966b5c3ce16281b402bd1ca97"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3"; + }; + kotex-plain = { + revision = 63689; + shortdesc = "Macros for typesetting Korean under Plain TeX"; + stripPrefix = 0; + sha512.run = "940f6672fd2d490cae446408ed6421c77ada3ea9c0c4820b00a0b38026ed5d30fa2b0f8bf86a5904a8c04b15e561e3f146ae4f817e7e2ef8c3a9284f9c841350"; + sha512.doc = "34a45ea6cda9fa9b6ba453fef795740869b1cc3c3eec84b467847b7221a916f4eada3bac97b78dc6e5a545e12f87f1d56c3540fafa658535f9ca89335bc6b534"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.0"; + }; + kotex-utf = { + revision = 63690; + shortdesc = "Typeset Hangul, coded in UTF-8"; + stripPrefix = 0; + deps = [ "cjk-ko" ]; + sha512.run = "be75556f3857a405d235f920866f8089f105a57f9accff07a541fe110bb8124e049ebe75368ce3282bcd329cc6a02eed0ccffdfad49020986d61221839cae4b5"; + sha512.doc = "7226874594b10ee48e8aea30a72e6d6f4db9f770d5d5830dc83a41f828bfe36b0b11f679aff02722e457150548860f1ad719758e6ffd239bbf9ac18d907acded"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.0"; + }; + kotex-utils = { + revision = 38727; + shortdesc = "Utility scripts and support files for typesetting Korean"; + deps = [ "kotex-utf" ]; + sha512.run = "569e9677ef0f346e5a53f4cc84302a8ddf2b4ad85708f4ab8ba7d076ebf339ec60998a41fa92fa815167e9bfc37085ebfd921dd13a60b017a0574e4a5d205802"; + sha512.doc = "a46c5d09d119fa2fe8b9acea87a37776536e3216b776af6b7037fc5b0a522af5c1a58baf081e60f06c9a4054e8ac2372458c276c779038a030dc92efdfa3aef6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + kotex-utils.binfiles = [ + "jamo-normalize" + "komkindex" + "ttf2kotexfont" + ]; + kpathsea = { + revision = 69121; + shortdesc = "Path searching library for TeX-related files"; + sha512.run = "08b2ebc546de9615927f9933937c81a5fbae702e20e389055c62f13b70ce81a87995dcf402d8b94d0025eea80f9fbc1500270b615fe3f26f1e9c12a245dbd1d4"; + sha512.doc = "17687e289d912120a0dc0b79829145521dcb660fee024f249153235bb2591936bedae9370ff20d8eb137d54d40d73d2854e4312651eff8a6763bf70040e0bf47"; + hasManpages = true; + hasInfo = true; + hasRunfiles = true; + license = [ "lgpl21" ]; + }; + kpathsea.binfiles = [ + "kpseaccess" + "kpsereadlink" + "kpsestat" + "kpsewhich" + ]; + kpfonts = { + revision = 65583; + shortdesc = "A complete set of fonts for text and mathematics"; + stripPrefix = 0; + fontMaps = [ "Map kpfonts.map" ]; + sha512.run = "d4d035c30acd5d5731a16e144cb45df6a3ce12c06d290f50c9e721ac67aa4808eade4eeae4c91a5093e29c64f91ec4d7a8d65d42307238c472d87d22eb5298c0"; + sha512.doc = "d030abf78988bc21f0e4afc06f0fda95339864036883877f5ceec11210640fcea8cd0ba54eb4d7b7dcc33b9eee8a0b2593739b4e2260b9db6e23cd480861e79d"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "3.35"; + }; + kpfonts-otf = { + revision = 69636; + shortdesc = "OTF version of the Kp-fonts"; + stripPrefix = 0; + sha512.run = "5c90bbd34da4ff9b610e5d1d407787cf658cc1a649c42c43d64bd374d04f43038956a5dcd159efbe912fb952d5a11370388870c87bf0a4094f19c019965a173b"; + sha512.doc = "677dc5c94ab24a047028b403db43a0493acb4bf8644ff6b63cbdfba12f1de11541eaca6836290c4ed822c1800dba299e2b5afb9f5455164db038c01e7ef0f17a"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.62"; + }; + ksfh_nat = { + revision = 24825; + shortdesc = "BibTeX style for KSFH Munich"; + stripPrefix = 0; + sha512.run = "8893133ed49c9b4ba7472bc80a4e5583ec2546838e261fa2cf9aee188a0b00bca45de05c4e969af0b6f222a9668c3a7fac0caadbb180c10500fc53ae8c9f56c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ksp-thesis = { + revision = 39080; + shortdesc = "A LaTeX class for theses published with KIT Scientific Publishing"; + stripPrefix = 0; + sha512.run = "3a250167d8810e3e81c5b6f86dad57e191a2a8387b5c7701e9b176cb007ebed79bd11867caa63e9cb9d3412fd59baeca7ff8e7589b11c4ef1144678552957216"; + sha512.doc = "ea4ff7ccabb237b113511b58ff767b494b213cec1382467ea8b95b72abe9c0d361f39781940c976075157bae93e8e32364f716cdba2a07b8a7d72c0970a31cf9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + ktv-texdata = { + revision = 27369; + shortdesc = "Extract subsets of documents"; + stripPrefix = 0; + sha512.run = "c2f3e86494993e6e56f131b9e7105ee2d15179b96580982ae7fba9e32c3e9889159ae767d96d95111f2eb052bd61f0c3c15406ae3af70b359e3b5ce081a6978a"; + sha512.doc = "d930db31105dbcfe3df4184422115d82fda7efa93d00eb8f9fefa0eff3893602fb4db9e7be26d2a44c0b3cb56e8e9810f61bc660c15e49c23880c3f0cd44025b"; + sha512.source = "1f7eebfcdbdeae66dbff4037a01173bc9383f75b5d7704755a10c442d63380d286bb4532546e036d5c558dc399defe3f9d3d035bc67a5ba90f8482e427b507ce"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "05.34"; + }; + ku-template = { + revision = 45935; + shortdesc = "Copenhagen University or faculty logo for front page"; + stripPrefix = 0; + sha512.run = "4603e59129f749b0eb065283bff9cddcafcd1096627f196749be09c19a4a79848564ee9343f14f31dddb2e37a01e222bf08531d5b3237bb906cf88efb427fdb9"; + sha512.doc = "6b8535ef84bd1ccf70d16f7098826b5acea602b22cd461df66cdda64c4afe36f9ef6c4386227c5317a31767e4694c388f7a2fd87fe8fe06697af4bf5202b29bc"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.02"; + }; + kurdishlipsum = { + revision = 47518; + shortdesc = "A 'lipsum' package for the Kurdish language"; + stripPrefix = 0; + sha512.run = "d7160d78d7f0d8d7771740f030cf1c76b57aa9ec2d179887fe4065337e35bef528b522c666eca0974aea6696033678dec5446a9a198fb139f2d2469c8cd47eff"; + sha512.doc = "6af516595f4cc5b090398078977bb37e97a5aa4b28a578c068931eff7d34fa2cac379b53e70c8bcf270c998fa6fbcbe354b56d0299657fcce9a4e076a87b36d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + kurier = { + revision = 19612; + shortdesc = "A two-element sans-serif typeface"; + stripPrefix = 0; + fontMaps = [ "Map kurier.map" ]; + sha512.run = "4f727e8733824e8c516e3ab1286cf0c834413a6ab52bccb5519c9a14a526cd3397a6d0a264679dc8b7d80cfc1d75ab11dcd2c02734ea63d5a2a5cebd3ea3c24c"; + sha512.doc = "7fda14c05f105d341a31561e761517ce12b3e5ceabc01e0c5c8552ddaf55be1863a22545b268026c844b23f03e8700350f0dede79ca8fda62e7a2672fa510407"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "0.995b"; + }; + kvdefinekeys = { + revision = 53193; + shortdesc = "Define keys for use in the kvsetkeys package"; + stripPrefix = 0; + sha512.run = "2a03840307805bd6fe30be9c108982bc472912c11c8cec25737ebc4042e48af8fe4f1a76124536874bea8c554f003a9c52b8a72d2f6900bc6872ffef8649c40e"; + sha512.doc = "c540045ec1c8bd7fea3000dd0ebc8adac64da7ccc24b0becb9b9c32c9dda6e5e11a77b57bee667bd2ddbddf347bd8af069907e087d543898a92ebaedf3fa4b7c"; + sha512.source = "0944a3f6f8e8cd8c189767944a74d5dbf09fcccd94cfdd2e67018f4a3542ce2ca4b8b7e3cb440345eb299584707962ed903f2fd8c832fad6cb850b29c7a99af6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + kvmap = { + revision = 67201; + shortdesc = "Create Karnaugh maps with LaTeX"; + stripPrefix = 0; + deps = [ + "amsmath" + "l3experimental" + "pgf" + ]; + sha512.run = "ea3659bf10ca08945ade08c52b4eba46fa01e28443bffd672a1614f917fe71f68a63d98568e23266d7becf6f6a4fed48f2d2367256a39e956bd2f1d40aff6f71"; + sha512.doc = "96f3738d31a6d9fe8f8f8624448749fea3aa2d6edac1442eecd70d570954692eb9e1756c1b4f4cb02a8dc17cde37ea0012824fccc5b567250c8ab6715150c796"; + sha512.source = "24103e29f4268d4ced68d5d1bb342c0e0155fe56e1ca07caadeda841795e44b0b246d2cc39a97f8c683a9ba71160ac774bcd194177352d6e29c079921c43c5b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.5"; + }; + kvoptions = { + revision = 63622; + shortdesc = "Key value format for package options"; + stripPrefix = 0; + sha512.run = "8e4189334b66ed38279ec0deebb12769453db802b1538e8ef47598de08123006a5f65b4b86c144aba5c7ef21abb95c65196e314e4b80e9b513103354e4b29619"; + sha512.doc = "864fd685912d7bdac610c16508efdfadf82c9c2efb8ae3c9b5a0d16c1dffd91822a1389109b3de1ce63dd74bb1aff5efa534c134ee06f1e61df9c867aeea608d"; + sha512.source = "38168cf3c486866ae79eac1708ed93f117187cd7404d852020cd9b70b3a518ca50d641db564d5d1d36b7e2a2c9beaab27e45abce93d01db4c37de7d9ad36bdf9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.15"; + }; + kvsetkeys = { + revision = 64632; + shortdesc = "Key value parser with default handler support"; + stripPrefix = 0; + sha512.run = "8acc4b9069c3baadf9a9802546d636fe8268afb97416b47d79b0a0306d90104fbb86b8ec1b4492f3134357564bb81eba1ae0e84a38f5b94a556de45525777431"; + sha512.doc = "127d4a03b26c9adb92254b08f0aac6039e39ff961539e253bccfdc1ee3598dd5e10608b8c8909708c041f5134c549f9af550bd1371a1e7b90003f77ef53bbf33"; + sha512.source = "696e78c295f0ac2a4d4c69e0d855925d46fee487da25ff238546033cae5e3b9042f66b924d1535ee41afc6142234fbef63ecf4df5b0c6c191b395109244e19e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.19"; + }; + l2picfaq = { + revision = 19601; + shortdesc = "LaTeX pictures \"how-to\" (German)"; + stripPrefix = 0; + sha512.run = "c6ea1d8ac189784d6581eaf9cae83a83beba9adfd32536f43c04633f7cc457353f0dbb69407332a29856633552910bfdd31cf85332c6dfb05da2cbab88ec67a2"; + sha512.doc = "e4202740ea2842296338e9d635b27c35801f4a5f8b21eb8dc0c1db572da0718fc5adcefc5c122793618336272606ec27f02f13825f8d2a6cf4b83583ea372288"; + license = [ "fdl13Only" ]; + version = "1.50"; + }; + l2tabu = { + revision = 63708; + shortdesc = "Obsolete packages and commands"; + stripPrefix = 0; + sha512.run = "2e3dc6f2707cc6b9ef6daba6f18099665e279b90ac85d6c391d33dcaf1511b1d85cc8348b259163ac6fc96879053364423510b199da3af81f1fcb2674b983db1"; + sha512.doc = "c6913d96a1821725c0d1a91cabf2db7a8afe692c1dbcd23113c3df63793653de48aeedf142d2dc81ec81c863d16583767766955a7ba0cba0de09840b9d3f74b6"; + license = [ "free" ]; + version = "2.4"; + }; + l2tabu-english = { + revision = 15878; + shortdesc = "English translation of \"Obsolete packages and commands\""; + stripPrefix = 0; + sha512.run = "66e1d62c731a021c1be2fb6e9e3034c7dec59edfd03dc2bb0042a37ff6f0d967e59a023fee994f45cf2c9b15e64445b45c48a207e21b7edb81d8a538b6c8eb6b"; + sha512.doc = "250ebdbd2a6dd3dd7d05c35cea0ea8fdb969bef983bc0a5f2c804129091f22ac0a499df482a1a990bf278ad94befc774d354341b30f9a0cd67539e1f63074ee4"; + license = [ "gpl1Only" ]; + version = "1.8.5.7"; + }; + l2tabu-french = { + revision = 31315; + shortdesc = "French translation of l2tabu"; + stripPrefix = 0; + sha512.run = "8478211e871e38765cbbd36f8f571e63b5cfb9dc652107a4a9178c11a16b419eba7314246878507f22bf7f66818f8c5d1516a527deda5a2dc6c30f9260f23b59"; + sha512.doc = "f489b0bd07b60797b53fc9010c699029dabccbf326767948dd815224f1c591cb59d6da7bbac0d0385ddfb6f0e885e187b2385bfcdbb88933588b06dfc34f640c"; + license = [ "gpl1Only" ]; + version = "2.3"; + }; + l2tabu-italian = { + revision = 25218; + shortdesc = "Italian Translation of Obsolete packages and commands"; + stripPrefix = 0; + sha512.run = "5b2348bed7ce47d7e2b8de6642e14b24ab440226d0de46a51eab08b3d11a39bada93d890e1ab9e2dbd3ce253b3263460fe7114baf9bc7b5c775a7d806c731ab2"; + sha512.doc = "c76981112631423d5d92ee9236d9b5b076e3d71086f9dada77de51362a5d5e01d82d5b018a68950c2b7f4b10eff1882d677243594436bae41bcc6ab996aa900a"; + license = [ "free" ]; + version = "2.3"; + }; + l2tabu-spanish = { + revision = 15878; + shortdesc = "Spanish translation of \"Obsolete packages and commands\""; + stripPrefix = 0; + sha512.run = "73cecbb031be2d421c25a7d6a5c04d08e30d83a88b4132682d434a879da915f1d4af56980f1bf04f7df5a3e881ecdd940a058a2dcf89b5e9f48c378eb322da06"; + sha512.doc = "a6886d54c0f5e1915ff9efbc4974ab1ef7f6dc026d67a0596ed47ac9e94da098e690bc70d5ed3e45a4d8cbd0f877f0cd6cd3a3757288dfc2df284e9c040b7c1e"; + license = [ "publicDomain" ]; + version = "1.1"; + }; + l3backend = { + revision = 70027; + shortdesc = "LaTeX3 backend drivers"; + stripPrefix = 0; + sha512.run = "b0fa82d3f6ad4ece3ce1e0b254ee52c97f30b143e458ad4a2f96d530f787650ae2cafa20801b865e696fb4deaed2fdba3e82ab938e09d563569ab13d6abb331f"; + sha512.doc = "68c69840f18a1f2c0442a008d632d5bd1295390a11208b8b94391564cdd0095aced7ecd3ae59035ec55faf267266115c76adf3839eb22f084ae348fd051547f9"; + sha512.source = "4fc5659fefbcdb53f30f6852b38ebe2e05238637ebbcf9885fef6496c5f4e54749f341bc492bc65c17e268c71bdfd6ee5add0bdcde9baf8e527ae48a4915fc14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + l3build = { + revision = 69748; + shortdesc = "A testing and building system for (La)TeX"; + deps = [ "luatex" ]; + sha512.run = "32999f257488429d109eecff598df6f7cba7e4511aa2b9cedcdd7cdb9acbbb959f13a1d3253d73f75e02c5c91e29744fdd934230d186ae7e76c057e51145cce1"; + sha512.doc = "aeca997d50468e929d32c727606273fb01ddbce1fde2ec8f03f7e92f3f334ff7cf537432516b584f0420b9a93d7dfdf1f277d789222d9a3fe346009d2d46d72a"; + hasManpages = true; + sha512.source = "5969f5f85c71844c7d3abea497059f2bcf8b7bf96294ad746d2acfb876f3edc5e573aeee081f2ef45baee4eeef5465e69c1591412d45d2912f0391d6dfe35d18"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + }; + l3build.binfiles = [ "l3build" ]; + l3experimental = { + revision = 70027; + shortdesc = "Experimental LaTeX3 concepts"; + stripPrefix = 0; + deps = [ "l3kernel" ]; + sha512.run = "c25e7d14f3208e59bca4da786df9f63bf64455e9adf3517438e4065e99dc0e89fdfdc0325f7aa26aec7e9622b99029a370a5d0fed6bcc780a62094cf26b1a03b"; + sha512.doc = "4606266a1a8d5022594e7239821afc9d02b735b68bab4da681699851f748c0893763cb1943fe20eb7484f16ba955ee193e961b7f6235710f8d813198529245db"; + sha512.source = "834b404c08acc25cdcc1124512d527e7f094c18ca6283ddecf85bebe25ed8bbcd40f2c9dbf56c19280f8dc1db3a2f35a6bb996175ef2a85a15280c9be6cd3ce2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + l3kernel = { + revision = 70027; + shortdesc = "LaTeX3 programming conventions"; + stripPrefix = 0; + deps = [ "l3backend" ]; + sha512.run = "0908782021ed4318ee3d43eedd7b0a9b83621fc04f9e6ad3d540d2f87b24cda8bd69accdb9691495bb3f7320808b976d1b798b3c4c95778b9b2804f4401ff893"; + sha512.doc = "d57cc53087b1a164c9cf7586313acc176a4de52b3da6734df1e36603b5ccfdae9fb19542e46246474936363020ecfa65e12f024b1fb50097c3205bb6b6aa2961"; + sha512.source = "e9b7b0e179fb168106277716bc8519b6a39d8062e3dce86212d582d42680ff7bb594542210a8ed1ee969226485db1d4055df071da898234cfeb9edad92d675fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + l3packages = { + revision = 69992; + shortdesc = "High-level LaTeX3 concepts"; + stripPrefix = 0; + deps = [ "l3kernel" ]; + sha512.run = "906dd058afdec3fdc416e1a39e3cddc0b8c8079dea35bc1dc453ca4f287b849aef55b71bf9d8fac9a0c428d1ea3c6f0bccb0dfb9e895a2511cf31852024e3cb5"; + sha512.doc = "49e8d52bf64ccd22827ca9faf65dfbe3a4af727feb089509fb512aa5ca8263be2c10294485e6da5bdd6a3426215ec5c83a434322ead9604aa029414b1047cf33"; + sha512.source = "9afaf6e363b3a1a3402b64bbd6ef2236dd062c933583ab8be5f57217d90196b456aa477f5c9c830fe6fffcb79d2e0f2dc3ad51ab3c9cc764b61b5252cb211aa2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + labbook = { + revision = 15878; + shortdesc = "Typeset laboratory journals"; + stripPrefix = 0; + sha512.run = "92bd582cc729bcd3cea6979771e934d5a4a194536ff89a475309d3999ab0a2ab70d5ba5be6f0353e97498ab4e971e3209df9a3ca4ac99a8c9de27586a0f4a3b0"; + sha512.doc = "98758f4cc186df470e8a16b2e9365f3bec585be18c0fa8700df238befe052ad69b697357c7d89b19233a9cf2b308c29a54bf84215fa3ca8859111b0214971ed2"; + sha512.source = "23b9f993dbd431328590617c6715bb082cd1dac757db003b05296d318a002e85c8c541f5ce6a45703fa2cc481c7af98fe41e483c77b5025e50de324b68fcf525"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + labels = { + revision = 15878; + shortdesc = "Print sheets of sticky labels"; + stripPrefix = 0; + sha512.run = "b1cd175e1c5ece09926ad3fb5ef3b2dbc528435e26c81df563f674388083b481e6a6f072724254302c243a640960a942a6b356664675f4041c94962155f5ee62"; + sha512.doc = "0ac61f3a1ec027dd3631a4e6ffabdbf71ca27eb19c877a0beef8d7d991989d613769474e99770e9edc74dffc8b59981da8666e5dcb26450717be37b098a028b9"; + sha512.source = "debc22ed66f978aed88c84a0756677cc5faed39ef47ad37f8fcd4d6dcd02ce6b3a582ea6edc73ddd96ae04e7a50d43eddaba8404ceadb8c49439927f41f8c210"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = ".13"; + }; + labels4easylist = { + revision = 51124; + shortdesc = "Add reference labels to easylist items"; + stripPrefix = 0; + sha512.run = "1f792dfc8c3d51cbb3ec4370e4ea36612d503a9a92d088f0d8b03ccc78c480118308aa48e4dba66dcfd55c8a3442950242742eddd557bd6b44c925e01e361163"; + sha512.doc = "1ca630c5aa01e53d6a7fa65d9ebb4ccf5bc43af7d3cb66a6bbb287398e28764dae0b535eb4b821c2c406e22e239e8a88fc63a010d4e79977ef6e8cfd563afde2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + labelschanged = { + revision = 69400; + shortdesc = "Identify labels which cause endless \"may have changed\" warnings"; + stripPrefix = 0; + sha512.run = "9d40f477089880f8e0c61f95af1e94848dbac11a8ea5ee3a0c0c33a5883a8aba4c0471d2e23319667aa0dbf0699599372c8267588247809f316304e868ebaaf5"; + sha512.doc = "ca1f6dd7d4be5c9b130a17c75cfe927e354ffd5756bd893ef99c2f67dfef69a585e139d9d3b44e0828cf0928197bfcc8a909e5a32ca386380ca2a203a8ad0fee"; + sha512.source = "e3e5187658e31d0391910a1d4610cdb5572ddf13006423aa673475e165b04bcca56f6d324f0b383a6e7faf0a3263e68f5727c39eef38e903ee2950981c5b290c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.01"; + }; + labyrinth = { + revision = 33454; + shortdesc = "Draw labyrinths and solution paths"; + stripPrefix = 0; + sha512.run = "06c61f5a0a2b39d644d5b741877f445dea48fefaaddfb7f60251ecb328f16ba2ec6f09731608ac5ca7b288fe77fc193984dad25b8f0ad0da5f35bdd43fb2f8ee"; + sha512.doc = "980a3bef8b8eb51cd454c835ba09205f8dedab92f747db9704c72d5433db75f68df298ee4ca06c6d68e0cb4c4b733c882d14bbbb9d877406163b0f95730a10ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lacheck = { + revision = 66186; + shortdesc = "LaTeX checker"; + sha512.run = "5a27d940fe59c61539d053bc6602bf37df1f538679eaf34d0e8b3ec3aed74ff619e4843ae2769aeafd10074328e9e27255376bc9e809d373d3913995a2a95b87"; + sha512.doc = "cf4355d56985f9335270e4280d10602299fadfd01605e83edb4e8b89cf0d91b3e8ca671257a9599d5f5578e7a85140d390edd40c3b109f77bb9fca5ba47ca517"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + lacheck.binfiles = [ "lacheck" ]; + ladder = { + revision = 44394; + shortdesc = "Draw simple ladder diagrams using TikZ"; + stripPrefix = 0; + sha512.run = "bbe2f94442a4f308a416e9d849f9e4b8af12387e59e73931b563d5daaee312dbdf82a99f5122de897cb069a54f3bc13619e719ed717b38db4aebcac72c2c4f93"; + sha512.doc = "1cf2a2a2267e819c9ee723af9cf51d711f778c3583c859eb01f2b2faebfd0f7a6fc4f4ab6caa83a9df6a797175ec27d29f0debbeaeb39387954070623ab60b29"; + hasRunfiles = true; + license = [ "mit" ]; + }; + lambda = { + revision = 45756; + shortdesc = "LaTeX for Omega and Aleph"; + stripPrefix = 0; + sha512.run = "54da97daf172e3dae434e75425b80d1c617ddc9991f6ee804cd812e2c4bd70b49eb1a01318e243c10998870877d4f76e084b5ef0b0eaa89afa66f77a124a7c02"; + hasRunfiles = true; + }; + lambda-lists = { + revision = 31402; + shortdesc = "Lists in TeX's mouth"; + stripPrefix = 0; + sha512.run = "caeb3a547eb68d3e255d729cb6ec390cfaeb3bd9d4b4b6e8f877140fe24f4ee3ff0ddccd4107fa836faf5163d3d71209fed4a9e052d3329ff22a892d62b43b92"; + sha512.doc = "846c403f99194a19cd21e4d7367a1b43a8ad608055315bb36a1113fb37dd3d922dd8c5cb8474ae52ed3006be520b7e9023680e85f0dbb17f69a41c8c17e81a5c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lambdax = { + revision = 60278; + shortdesc = "Use Lambda expression within LaTeX"; + stripPrefix = 0; + sha512.run = "63ce2370079b4b2a286355d05d40771658e35fef085570aaf07d264d81571378a6d76db128e3fcea1c6c27632cb37f317ae28300059027979114e9eefcb5cf53"; + sha512.doc = "203a8ecde6022efcaba0680a507833ec56601887b47dbd563683195b828cd246d55cc9a44b91cb6ec2a3d0b8d7ce6d0777aa9519b93ca2b4b0f96f643df35dd9"; + sha512.source = "2790c5696eaa95b18c4c301d3a72d5aa0a72566cfebd514dab3546738897f2d0aafe55ef96ba51073fd07e98f0052eaca4cc9bd8d46f5fd9cf7b544b4f103c64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + langcode = { + revision = 27764; + shortdesc = "Simple language-dependent settings based on language codes"; + stripPrefix = 0; + sha512.run = "bc3e601701732d3ff533a7415446c2aaf7306732fdd6a8ac8aee6571cbdfc02b38f51fffde3a80cf5df6b0dd5e649971406f76d394500a74f1830139ea0bc0bb"; + sha512.doc = "7ac261071a2902d1e24cbe4bd43bf1baef418bdeb4d3c1dbee4db273d29918649f346e97b5ead3e3de2820110c0cd11dc58c78f765dbd07f7221f28ede5242a8"; + sha512.source = "60baef83840b42deb38d8ae66e18484e4a0431fedd23b1a8dc96c426840ee57f37ab613d93409c3ad8660eef2e759757daf39ec9aace30350623accbd21d2de8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + langnames = { + revision = 69101; + shortdesc = "Name languages and their genetic affiliations consistently"; + stripPrefix = 0; + sha512.run = "16d4b14025e142be2c0d21509041d99ee2eb9b4b765abfa3102cf79759c79e79f43191f8ba1fcea3d8c7269bdeb6feb0a9efafb1f1ea195b58ed97a307386bdf"; + sha512.doc = "0cc3548f9a640e3c6756298ff609bc5458f30fe096fb8557881356624dcfc6f81068af21731df3c5635381ef98c9b30c1f297213b8489e2bab8840c78f723ed8"; + sha512.source = "dba944b6330ed6ec883ae6bc0fddb724b74d5ea31d703cd89e85e9cf91642d9edcfdc4710e812bbf658774611bb29764fa8e2a3e1df678e70aab6fa160cad50b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.0"; + }; + langsci = { + revision = 70028; + shortdesc = "Typeset books for publication with Language Science Press"; + stripPrefix = 0; + sha512.run = "02e572eac6731aae4dbf7db5c1e4652dc34cea9dd6a43f0f63b7d7e4aa79113ca5ba4122758303d33c94f33e42513e4d7b51d22e4b7c17fa8b7ebacf8e5024b7"; + sha512.doc = "05c1231243e03156ffa01cb84f16708542598fcd5349c858913c2d0c6f0962871ee70034fe8c2255ee6338d7d659ef0262a408650a262ea8c6c1e8e173ca4e12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + langsci-avm = { + revision = 66016; + shortdesc = "Feature structures and attribute-value matrices (AVM)"; + stripPrefix = 0; + sha512.run = "00cb724f7783d4f6d088f38bd60c816afe8c117b338bf3ae320e4b8118416f025b535989a48262d13d210087560ae01d850f2562f3d75db38210fcb6c012ab38"; + sha512.doc = "618e957df349847fd4828b07ad44e9a8247bcaba893704379471afbf9348c310da92fde003bbbe963b3249ba532982483ad7eb53950a5f39b27f9c17058f7bd0"; + sha512.source = "bd2a2411ad9e5d418f33b3c758bcc7f572aff8be2a8b757c247bf099d246f4b658602cdda97e12de0e784259e13b3e4840b5789baf35606ebfc3baf2629bea10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.0"; + }; + lapdf = { + revision = 23806; + shortdesc = "PDF drawing directly in TeX documents"; + stripPrefix = 0; + sha512.run = "10bb6891b82334f7dad4a1cf48c78b2b55c3b4a8939628a26576e99495f00e2bb8ee82028b13db4de6224e58e421402794feb2591842030cd47898506589ff6d"; + sha512.doc = "6e561e0d513f7b18e4e40d11fc1f077a061e6cb08ed072de1d186bb86ab1fbd3905af6a79f9dbb0c201e437a1a8716706a83f1709d580c293961ae454699c9c0"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + lastbib = { + revision = 70377; + shortdesc = "Record the number of citations in a document"; + stripPrefix = 0; + sha512.run = "e2648c74401833e4be62ba616e146bd662626b1e6d9dd3e6fb3b1c371634e3cc022dbd1b4f670d957d239ca9ae776dec94ff63306d54b9dc571ab6d701850c8a"; + sha512.doc = "45ce82d5721d79e26e1d7f034764b526315add13e6943fcfcd6105b9040b7ff4951e7c8482be15d2366880286e1caea8ef47aa8a6fce92941e9f19be1e7003b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + lastpackage = { + revision = 34481; + shortdesc = "Indicates the last loaded package"; + stripPrefix = 0; + sha512.run = "f4d30e327704b32afe1bcb81023a247095203a9b47357f9a6dc4b631f4bb669255ba899cf1c8378b42ebd16f2608d8a649a0999f26e3d05c963eced1cc955ee2"; + sha512.doc = "f31731b5a93c154db123e66699ac5175fb63b965522bb511d344577645f9b8ac6d78c6a1a108cad8914b1c01b1c7a6e656743b075a03322c306aaa5417f62be2"; + sha512.source = "f894a701e4f30797039bf60e98f9f9e6cc730a167fcccf88075802c0a5a0244eefce9f854b95207b7a0714984592030965f818ecd72c98af199c07f3400eb74d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + lastpage = { + revision = 68557; + shortdesc = "Reference last page for Page N of M type footers"; + stripPrefix = 0; + sha512.run = "058f7b1e73340b5290beb22054c1bc0b97cd64a3051e90a4359ac7916ba033ce0817e6a1139a8b6b301bc0f68176bd882e8bdc7a7b59a719f0d090dc7cd76242"; + sha512.doc = "e72576d702e2e76242c18d645351568f4adaa468b5946fca30c9ca7b9d2c36a703ad91df3b898089499c0127aeeef79e904652f35ab6bf98f5126ec6c387baa2"; + sha512.source = "3b0f6326e815812644493e1a0ff422520e9e555f87f93d1c3f31a3b4a1250254ff0f4161e36785cdefb09833c9a3ae93e005cb4d5a4c3157372f79e00e23a779"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0e"; + }; + latex = { + revision = 69443; + shortdesc = "A TeX macro package that defines LaTeX"; + stripPrefix = 0; + deps = [ + "latex-fonts" + "latexconfig" + "luatex" + "pdftex" + ]; + sha512.run = "b6696892356c87acc788255f0023f081078878f4f76408be138b8b9b62f0fe01f8dd8bb68c8049fea319b41dfe4dafadb3237869fcde797ff5580ba94d68a473"; + sha512.doc = "d599e1fb7c4433658aa65df89ca318467b3c6689d3e4e2d16bddd9397968888052937900d382fdd43fe627813e40d242d7728325a1bc15c8ab5658fd6ea4c912"; + sha512.source = "4b156445e50bd24dc3ab2f90088b0ae5e25930818fa14b7db3ccc1aec4642cb3172f07c57bf0dab3e17f91cf22e1b5d5fa08e705e392635328fd366514da7a24"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2023-11-01_PL1"; + }; + latex-amsmath-dev = { + revision = 68730; + shortdesc = "Development pre-release of the LaTeX amsmath bundle"; + stripPrefix = 0; + sha512.run = "e36a09409559a415c14fcd5e5aa8afdf268ac8b099814a1eb6fec88aeaef17ed2bfc1649b1859d8f5d4c90b25af520028c184a01866e9cc25bfd5ad7e945f84a"; + sha512.doc = "609a298efbf504274793777b78af7db57b3e161ca8a49abb2cf9b095162a93c2eb0b796f24183d512f4ad30375401a56c6e238b1c18e61038b51bdf3513542a2"; + sha512.source = "abd63e1e75b661b4301e90ec60015073e42f2686f2e639e2c264047c3d6f071c10cb933049baeea3b49734ffa0596253be65644d8ad54253443e8ba42d09d30a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-06-01_pre-release_0"; + }; + latex-base-dev = { + revision = 69872; + shortdesc = "Development pre-release of the LaTeX kernel"; + stripPrefix = 0; + sha512.run = "d24b56bb77ada497449c501c549cb6fd06246f899d4f3a2d979292ffe85f80f532c5cbb8b3e49b6d1bc0f8098d56c34e87f15e8123247ed7af59c9a33b815a64"; + sha512.doc = "4ec2405d8d3e3c92666bbab01cdb065b174f82bb9c3b91f0bd7af23dd2fe3e8cda98060cf1e08df349ea32386da911ee4c7a28dc29bc52ec6ac02a46cab98b66"; + sha512.source = "83f7103d961f186fadd6feaf63cfb4f9fd6cc2aae0d5c04b6ffbd0c0eee2d51cad4b2458491cab7760a29155682d806fcc3c1ca1dc8d788ad248a58dc071a361"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-06-01_pre-release_1"; + }; + latex-bin = { + revision = 66186; + shortdesc = "LaTeX executables and man pages"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dehyph" + "everyshi" + "firstaid" + "graphics" + "hyph-utf8" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "latexconfig" + "lm" + "luahbtex" + "luaotfload" + "luatex" + "pdftex" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "dvilualatex"; + engine = "luatex"; + patterns = [ + "language.dat" + "language.dat.lua" + ]; + options = "dvilualatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex" + "lm" + "luaotfload" + ]; + } + { + name = "latex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx *latex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex" + "dehyph" + "hyph-utf8" + "latexconfig" + ]; + } + { + name = "lualatex"; + engine = "luahbtex"; + patterns = [ + "language.dat" + "language.dat.lua" + ]; + options = "lualatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex" + "lm" + "luaotfload" + ]; + } + { + name = "pdflatex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx *pdflatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex" + "dehyph" + "hyph-utf8" + "latexconfig" + ]; + } + ]; + sha512.run = "4067db41ccc58892a4683c2ce5e15784e9aeebea88a9d9302dffc36fedf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898a71e492ce778e58122a6a62"; + sha512.doc = "763c7e3df586a275b2a756b591c96ae98ca1a2b5f0c694e9b502d55e7c4a0ad1d40b15ff4987e2be6a06f2f11afe99a4f7fcace22c45877dc54741383a55df25"; + hasManpages = true; + }; + latex-bin-dev = { + revision = 66186; + shortdesc = "LaTeX pre-release executables and formats"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dehyph" + "everyshi" + "firstaid" + "hyph-utf8" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-base-dev" + "latex-firstaid-dev" + "latex-fonts" + "latex-graphics-dev" + "latexconfig" + "lm" + "luahbtex" + "luaotfload" + "luatex" + "pdftex" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "dvilualatex-dev"; + engine = "luatex"; + patterns = [ + "language.dat" + "language.dat.lua" + ]; + options = "dvilualatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex-base-dev" + "latex-firstaid-dev" + "lm" + "luaotfload" + ]; + } + { + name = "latex-dev"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx *latex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex-base-dev" + "latex-firstaid-dev" + "dehyph" + "hyph-utf8" + "latexconfig" + "pdftex" + ]; + } + { + name = "lualatex-dev"; + engine = "luahbtex"; + patterns = [ + "language.dat" + "language.dat.lua" + ]; + options = "lualatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex-base-dev" + "latex-firstaid-dev" + "lm" + "luaotfload" + ]; + } + { + name = "pdflatex-dev"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx *pdflatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex-base-dev" + "latex-firstaid-dev" + "dehyph" + "hyph-utf8" + "latexconfig" + "pdftex" + ]; + } + ]; + sha512.run = "56988a74dc1969af32a87890a930eae5d1c41cc7d78d84d5293836c139885e1bca3103304d0083583e0a9d9ad1ebd76b11f86df67887de6ebec7b36137755075"; + sha512.doc = "2166531c752eb0295b643f0e20f518011d2c3063a9a5de5e7e913b2cdf8efcb382a9460ef95a711420e9a9f49fc2ac77a538361c4cdc7d730af5acb43f15f2ab"; + hasManpages = true; + }; + latex-bin-dev.binfiles = [ + "dvilualatex-dev" + "latex-dev" + "lualatex-dev" + "pdflatex-dev" + ]; + latex-bin.binfiles = [ + "dvilualatex" "latex" - "latex-fonts" - "tex-ini-files" - "unicode-data" + "lualatex" + "pdflatex" ]; - formats = [ - { - name = "cslatex"; - engine = "pdftex"; - enabled = false; - options = "-etex cslatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" ]; - } - { - name = "pdfcslatex"; - engine = "pdftex"; - enabled = false; - options = "-etex cslatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "cm" "csplain" "everyshi" "firstaid" "hyphen-base" "l3kernel" "l3packages" "latex-fonts" "latex" "unicode-data" "tex-ini-files" ]; - } + latex-brochure = { + revision = 40612; + shortdesc = "A publicity flyer for LaTeX"; + stripPrefix = 0; + sha512.run = "de98a91947d5cb919b6a2c6e6a87f63499c8c5975992d039bb8d2a4662ed597cbdad99668b006cf775f71af936e5ad285958b48b57eac61783460fe37ed76298"; + sha512.doc = "f057b86b61ee1f50430cdb83a56c27896e052047bbc93c4f09884b7d76f16f73cb1b570341faa2b8c771c0d42bb4d6450b8715c921fe866a57727eb4ffdd329a"; + license = [ "lppl13c" ]; + }; + latex-context-ppchtex = { + revision = 66687; + shortdesc = "Legacy stub to allow loading pictex as m-pictex"; + stripPrefix = 0; + sha512.run = "6ab0e6d04cbf49cc78ed8f45d65837055d73f55ceea9014e5178bb30f7a322137856d187b7e0808f08df48408b57635537bd8dbbb1157d1508728aa2bf7e1190"; + sha512.doc = "130b525dbf4172306b9bf6b74defccbaa17ab1871d044ce693ba2c0ebf568adce98eacc6cebae94bca425c7b8cb7bd2860747768a03380018a9abd33175786c9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + latex-course = { + revision = 68681; + shortdesc = "A LaTeX course as a projected presentation"; + stripPrefix = 0; + sha512.run = "533e270cadcee8dd7510368c596272d9e877c753f76246f11d8b3db6a3eed96319284c15a872d1fcbdb0557c7a267eae4beb9cd2d618f98759456357fc2b6087"; + sha512.doc = "56f0cdd7a50b396657d60d3d10586e0472e18f3b66005df08746fd93cd481742bec1f1e820248185f9b25d6b58251dd8a4715231272324a5208e25335ede85e9"; + license = [ "gpl1Only" ]; + version = "2"; + }; + latex-doc-ptr = { + revision = 57311; + shortdesc = "A direction-finder for LaTeX resources available online"; + stripPrefix = 0; + sha512.run = "22017cc47746d2e14436915a0d649b31050debff1827cca44a3ab7bf9b240f40450d445a8eaab811b8737f589839ab7f2078aced47b65b320237ddbcc443b99a"; + sha512.doc = "c7d7217a9136785cfd6ddb000e51d455e7482bfe395a9131329767bfffc71f918c2349b1426b615a6740263c958530c68c044ee3ae78300a004a8acf20bd8bdc"; + license = [ "publicDomain" ]; + }; + latex-firstaid-dev = { + revision = 68730; + shortdesc = "Development pre-release of the LaTeX firstaid package"; + stripPrefix = 0; + sha512.run = "837b36861d1c5c42107ebfca9de78df1e4426b2466c001532ff3717743babecb8f574c5b431cc821f27a8cf20e88fa7e6dda5633fa8fac28084007183621ac08"; + sha512.doc = "2f0676b179ec977da7d91135d2e9330bc37a67eba038754998445c49523d1630c34360bb857c108ab47a185a409d3924039d7b03f3b420d74c52fc98606ff408"; + sha512.source = "c783d78612a76b55f49828ccd3f719ad94ab3a2a3d8b936e2049322c0c5fa773b8db76bc1a8d471d443bf3bc0d7897df7db628866287b64ee281764ae258f839"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1b"; + }; + latex-fonts = { + revision = 28888; + shortdesc = "A collection of fonts used in LaTeX distributions"; + stripPrefix = 0; + sha512.run = "98549dd0c7b29511abc3a1a6b6803a86af0b48121d47e292066f3b67e4b5847efbb7025352c1ec996778c7ea3a5cba552385e9b4dfd6ab005d716f503e37a26e"; + sha512.doc = "4d3162776a17f31caa8e6a0fe05eed9447b681d77e653371cb5fa5d8dd2f01bddddc9f95ca916f233c11f8ec7d15e02fe575dc953fdd18c34ba877829a142bea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + latex-for-undergraduates = { + revision = 70210; + shortdesc = "A tutorial aimed at introducing undergraduate students to LaTeX"; + stripPrefix = 0; + sha512.run = "bc5dd03127625a8440ce605d8f4e8de65615f330dc9194e0e096175095263eec3ce2790dcccd96d32118492fa71483645510675f4868580fa00daf95f12f1aa1"; + sha512.doc = "b21b7a6a759eba0ae086ba3492266b9784aa651a727b22b671b3e3668197727118f35095245ad8d4b99a40f6c5c00500f7791b3cb6a6237493b7656a17abdf3c"; + license = [ "publicDomain" ]; + version = "1.0.3"; + }; + latex-git-log = { + revision = 54010; + shortdesc = "Typeset git log information"; + sha512.run = "15994c6eb9ba1b194df270c68a3d74ab3db11974875ce192559182b2dbfa9b308d598056a3145f2cc2f6718865a5b140ccb95dea22a9e23edee527e5b86362ff"; + sha512.doc = "52bc94324c64caac9a5b25b49c9ea01b8560433d640646ee70830d27637482cf50da95bbb86db93006f2be4ab9f5f79fa144e4b631d62c05f0a11ab45e639cbf"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.0.0"; + }; + latex-git-log.binfiles = [ "latex-git-log" ]; + latex-graphics-companion = { + revision = 29235; + shortdesc = "Examples from The LaTeX Graphics Companion"; + stripPrefix = 0; + sha512.run = "3148a646539db3622096f9aeefd7ca2d44b0cf83cd454673893978897d07cfe7107b8f5bc745bc6b60734d4ad3429be1ffc2edaa8c9dd1721b41bfe913fa0dbe"; + sha512.doc = "ab9d885c811af3964e8cdd8576349059bd45d660e6b9a7e931697f7c7fa5282c725e044817de8f2648ded59519d1592945e0804ba7cbe0054ce2bd4d44606af5"; + license = [ "lppl13c" ]; + }; + latex-graphics-dev = { + revision = 68730; + shortdesc = "Development pre-release of the LaTeX graphics bundle"; + stripPrefix = 0; + deps = [ "graphics-cfg" ]; + sha512.run = "a6357498f8bb7b6e47dc78f22163955e6f207df84a5270bec98d003ff7c0c31d82a13f3ca8e6d1242721bbeee6d5c8bc4e6bf744708fda9a3e5e9ebe30eaf9bb"; + sha512.doc = "0edf4d8f6b4d48df6e5f46ea5836a30f7608701a0470fdb713333b4e17c0348bbbde8df2e9dbfafb8bae924eb70c34e351aabe4a0e460821790adfa0ee52e384"; + sha512.source = "f2d2b4e1c67d5159c14426df49065edd0605a1db88ee0c2d72d582edab070c6f8f11bb517f969893761c0c22935df69e5b9dc6d981e0f6136326277e1e2be927"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-06-01_pre-release_0"; + }; + latex-lab = { + revision = 68720; + shortdesc = "LaTeX laboratory"; + stripPrefix = 0; + sha512.run = "ede4176b7ca60193acd644f572db5d1611a6940027f7641ca755634401b19e20eca65915d57e6a0859e465e818d6854ca98dc16106782bee0f817d776c056a10"; + sha512.doc = "eda6ca871645fd6fe60424329e4c4d8d9817039d9cc30bd6f710c30675a3e8f0b7f7523b081b871e9e5abbf62a0ce0e22854aa443684818771ce2022f4887e7e"; + sha512.source = "acc092bf6cc685cf8c9d5a0cd5af47022c3936ff0e509a3743ae22ab888daffd0c1b7b657c5a1e1019232c4047e89626963ec1784b406ad16d3dd3f10f6e19b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + latex-lab-dev = { + revision = 69872; + shortdesc = "LaTeX laboratory: Development pre-release"; + stripPrefix = 0; + sha512.run = "7812684eb2629b139e5871b5b916e2344b85d8bb88bb983d57d292d9873147d51b60177733e61180d86b95d185e456710acc5037f56fbfeea52ab1d3e04433fe"; + sha512.doc = "7750fea3ff6ed1352db54674844367b3ecb400cd4e306e3c130acabcdbe59b3abdc7508dd12e5febea2381cd74407aa3cb3bcc25f5d7b34401e75e1eebde2529"; + sha512.source = "d1ea2349dde66988f51b9d1f37875a2d02a4b44499f3551152ce3bf38460d31e5cbd423e17ac72dade53eaac00720d547b460bda25f29821875605b02c51ccd0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-06-01_pre-release_1"; + }; + latex-make = { + revision = 60874; + shortdesc = "Easy compiling of complex (and simple) LaTeX documents"; + stripPrefix = 0; + sha512.run = "de9a924c38afe1abcd0802a17de4c5fd2cb444809dc81e00b6964cf3d0c81b8d8796a1bfa804250701ac4d71f42bb9d2a9ca1ec0740f59a8feb329d26aa605e3"; + sha512.doc = "aeef6568aec936c43dd0bfada1245a0d353faf2329e6e66e9d49ca8a1a2f9eb738ab1667934cd0a160e074c2e2da85aa8b068bed0bdb1ab1b944cf62f42af087"; + sha512.source = "521a553ebb556cb6df809ea5f830c926101dcd06f147544c19476a0b0ba82154c3b0316d795f4057a906370972648b485a96dd7386c8e6541160af469a74487f"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.4.3"; + }; + latex-mr = { + revision = 55475; + shortdesc = "A practical guide to LaTeX and Polyglossia for Marathi and other Indian languages"; + stripPrefix = 0; + sha512.run = "eb9b8b12f15a8662eea0e3df907264093074cac1d8f8e1f027186b35f3f3318c4b8c120d261be21350fa660b51a5f33e196d957864b0676395ded0f70940464a"; + sha512.doc = "51dcfff4a8df46a8715d07d2528d3a1960479ce4bffba9b8eb5170d5d6307f0c776e197bdbe788d316067070c1d5f5d1382c32430e94ea83664868931a844e52"; + license = [ "lppl13c" ]; + version = "1.0"; + }; + latex-notes-zh-cn = { + revision = 15878; + shortdesc = "Chinese Introduction to TeX and LaTeX"; + stripPrefix = 0; + sha512.run = "5e5b3bb01456fec3dc22cb5d0d4f521b4d4f5f8f3119fdd76ea9cc55a70a2ad8a2b72e36471894ee448c1d40d887d20ac8fda39c4a3fe2cd111d2850eec12071"; + sha512.doc = "477df31445a2991db3c2b8cafaa97662d722f3f7171c2f756cf025717cb3b896c1773adadbc42c22cb360f7542a0e658547f15cd71c54e9b79f76fb1e2097e90"; + license = [ "lppl13c" ]; + version = "1.20"; + }; + latex-papersize = { + revision = 53131; + shortdesc = "Calculate LaTeX settings for any font and paper size"; + sha512.run = "00010f764235c6d9e4d6667c8c8b9f0ec6ae4b65afb53109f8179e0429d4b3787bd6b0985cd511f770cd74512483d1077e0f42136fe7ce1871984b372f2f2e54"; + sha512.doc = "8ebddd884e3e533d06332f2d6f8657ed54c9c376b3de68c7e7652f3b2835ec6601f5326ea70dc830b645440f0bd9ba2281e4f71a847946bb595771c6a950c0a6"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "asl20" ]; + version = "1.63"; + }; + latex-papersize.binfiles = [ "latex-papersize" ]; + latex-refsheet = { + revision = 45076; + shortdesc = "LaTeX Reference Sheet for a thesis with KOMA-Script"; + stripPrefix = 0; + sha512.run = "ea6751fc09aada1b8ebcca08ecdb10279b6df881b3b373b04e8c238609de92b4cdc4f1e7321f178b15637c0b712e9781317af07030f2f9297a3ce23a5f46cb32"; + sha512.doc = "77149dabb1fe5c4a46591b3b307d02b2e2b33a07267afcdb44b77a2a823dcea9ea76b4be5ddad530151b638cfbcaf5d87ed0fed59a9e8ed99acb0895717bc71a"; + license = [ "lppl13c" ]; + version = "1.2"; + }; + latex-tools-dev = { + revision = 69872; + shortdesc = "Development pre-release of the LaTeX tools bundle"; + stripPrefix = 0; + sha512.run = "04828515f6eb9382d3c3d9c2ae8fa52bfe42fcb511b36840add979901b4a7535ec5a40d75113f0240299ec3bb07b59fc54fa65539389467f402a7ff15714ccf2"; + sha512.doc = "7136ae8556c19d2eaab7891981cb10b52e4538d10fd82073843744996de3ba2919b07ca63d5fc2100d093b9e9db862dc1a4f7d19615f96d164aa2431ee2f9b8f"; + sha512.source = "2073e38c2dc81da1d79fe6567bb99cc5f2649a8352b5e4164ae21cb0efa9d7697a1e9e8e71b5d3ae636eb215ce14c5b202cca88ebc6ba18c15524d0f566568b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024-06-01_pre-release_1"; + }; + latex-uni8 = { + revision = 49729; + shortdesc = "Universal inputenc, fontenc, and babel for pdfLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "1e98eb60547932eb218f30cc713b94e8c7ee5861e66cc600b01f577a37e318a5b440b65c2aef1c770ef94bb4c4cf86d5d1636943de60f78049d2286a92ba5d81"; + sha512.doc = "201de55826ce4911153f079e1107e2f4d2399d3d3cca95bc669cd958d09839ed7de778d644502cb6af8429818834027c9d3f3255fe58f95c985d1a96e4682f22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + latex-veryshortguide = { + revision = 55228; + shortdesc = "The Very Short Guide to LaTeX"; + stripPrefix = 0; + sha512.run = "5c32c836c5ada42858de4579167848ef51c4b7626601fa95fe56175f406cb747bba5015ffe369ebfa93e789d29ba5329e1ab3e42262699695fa59b6cf047a581"; + sha512.doc = "e2c521e768ea425312a400d88c893404c0f86c5886f595162b2a03493836ee1a949e2feebf8a8b3c9d6450630ff644b8973374f9963c67478af29e2a432d2f9d"; + license = [ "lppl13c" ]; + version = "0.7"; + }; + latex-via-exemplos = { + revision = 68627; + shortdesc = "A LaTeX course written in brazilian portuguese language"; + stripPrefix = 0; + sha512.run = "d98f99d1da5b8192cfd824829ec31f09f3178b0682885e5f497203c6f3f73bedc0a4f0a766ccde2f4f8a0e68b231f4d1213b3586fd1093588f3a9312716f072d"; + sha512.doc = "605dba889bfa1ad23b2990b2f0f40db42947b718cd272d8f61243818d40ad9a552fb61f87ff4e3844e580d3acaaa9842c2484c62c5c5dfb4450755db3fb02758"; + license = [ "gpl2Plus" ]; + version = "0.5.10"; + }; + latex-web-companion = { + revision = 29349; + shortdesc = "Examples from The LaTeX Web Companion"; + stripPrefix = 0; + sha512.run = "5f45c7f74a0e97b938009ada69146875e141edd556165b62185553b0ce5f590d5ca6f93a875dae1c546ebc788156d5cfc69c46535000adfe6933abe79a2fb06d"; + sha512.doc = "a972860f65d763c6fb45e9726e5dd7b8234509b90634f45b8b25e090da92d0ac577bf8b33ea7b0a0f91e4e5639bf62c07086dc36708ae697c1e16e644acc83f0"; + license = [ "lppl13c" ]; + }; + latex2e-help-texinfo = { + revision = 65552; + shortdesc = "Unofficial reference manual covering LaTeX2e"; + stripPrefix = 0; + sha512.run = "34b91b19e1b71b1df6d0f57dda4d6976a93b16afac259656c9d4e331b0c23a9b0550563c1a10dd7a95640e3740b3b15597c1023f6c2721bf2a64800466b9cd09"; + sha512.doc = "d4584d9259f3c1867e7445d4a219e4decc5ba3b305e20d1e780180a47fbad8df4d55552726d8288e78c8388823a2b652b81080c8139b00f4ea3ca10e5789375b"; + hasInfo = true; + license = [ "free" ]; + }; + latex2e-help-texinfo-fr = { + revision = 64228; + shortdesc = "A French translation of \"latex2e-help-texinfo\""; + stripPrefix = 0; + sha512.run = "96366ea420532f56ae076da48f5402c2ee78ca27fae8180795d6cd18aae118a8c7060208ff43ab64526addcdce9e4d90790583842b20c751f37865cf616e04e4"; + sha512.doc = "52f6aea9ac2393a73d7dc7ce8ad4d6f08e0a224397199d5def97412502026717e8cb966552368899c50718a1049b1ad4610d2d23150a45bee55cc2c776003db7"; + hasInfo = true; + license = [ "publicDomain" ]; + }; + latex2e-help-texinfo-spanish = { + revision = 65614; + shortdesc = "Unofficial reference manual covering LaTeX2e"; + stripPrefix = 0; + sha512.run = "870c8f3af54ac42df5f4958669cf730cd16084c985f0b377c5aba9d526b8f7be14b367791d2c0a1f1a715739390ab63777ff2a92e7f9aad09897c8bbecff495e"; + sha512.doc = "4c751a7305e089dab61bf991436ab1e612cfca0d17e416e21d659c04ef32eeb2d14dbeb09d63649a2b79f842766a218c43ae2c6fbeeba5549f039f991049a79d"; + hasInfo = true; + license = [ "free" ]; + }; + latex2man = { + revision = 64477; + shortdesc = "Translate LaTeX-based manual pages into Unix man format"; + sha512.run = "2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95"; + sha512.doc = "390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50"; + hasManpages = true; + hasInfo = true; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.29"; + }; + latex2man.binfiles = [ "latex2man" ]; + latex2nemeth = { + revision = 65269; + shortdesc = "Convert LaTeX source to Braille with math in Nemeth"; + sha512.run = "f2669a9e58857094c922b968f337e2cb2cf475b07811d53c61a8e0b4dc8bcc41d95186940361676bc62c0f235edb4fe7a7c0d5ee0f6d74c541d1108960e18e7e"; + sha512.doc = "7fa7ae1c628e29549fc3cb2c98164e27f60cc0bcbf14e26b7a325aee313a5f41c3144d5adf2993c20999016f4798dcd436d96c637c4258ace0efc3bda4a54a43"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "gpl3Only" ]; + version = "1.1.3"; + }; + latex2nemeth.binfiles = [ "latex2nemeth" ]; + latex2pydata = { + revision = 68919; + shortdesc = "Write data to file in Python literal format"; + stripPrefix = 0; + sha512.run = "7da5e33f287bac42a378bf33073ec6a982dff7000097fdb865844299efeb9e7a1647ae49bd3332b036755dd4da6be34fbb197c8148d2c2af5c60b7580d0420d1"; + sha512.doc = "8d78f4bfe6ddd1742baaa792842ab9ada5cdf4e1eeb3fb3496780e3a31120406d56be4be7cbbade5815f72cab57b76a5218e3bd86ef4593d1fc75fa2196e7212"; + sha512.source = "fe7111c44158c400af7d0feda67e2bc8a1cc313ab8bca7c101ed75e57ca1a00fe434232ad4c5b78a19fad388d8a8cfa0af6cd53c7f84b809209d7bf955f8e05c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + latex4musicians = { + revision = 49759; + shortdesc = "A guide for combining LaTeX and music"; + stripPrefix = 0; + sha512.run = "a37c75d55857e9680b8e4b0f59f1889f3b5198477212ea531aa6bbf9ea11dbae06fef7fdba9e706f016c6c0618eebe4ddb81ba73b48979683a22592a0adb119a"; + sha512.doc = "738c2c467d9df87cb1eccf0442b5c94a97a3c4c2b329d78d80b05d2adf9e3be11aaf2fb407ebc29f07e6455e6533464d981ae65122b080aebabdfaa29cf71b61"; + license = [ "fdl13Only" ]; + version = "1.0.1"; + }; + latex4wp = { + revision = 68096; + shortdesc = "A LaTeX guide specifically designed for word processor users"; + stripPrefix = 0; + sha512.run = "0111de0987679fe40b14a4ad0dfa098fef36acf15e099f932e75121c26bdadc2e493c77b1d5b4208e662f2e5893955cfad639bf018d48aa5e7a7c77e5d009c6c"; + sha512.doc = "eae8e0b5e4fe28311508b09b4b8b03ac31469e32772427c5d016bf43d48e458fea06f9dcf9ed696e1eaaea7bfd6b0ef4661d8b84c2bdedec44ca35c782079bf9"; + license = [ "fdl13Only" ]; + version = "1.2"; + }; + latex4wp-it = { + revision = 36000; + shortdesc = "LaTeX guide for word processor users, in Italian"; + stripPrefix = 0; + sha512.run = "691d8936d71ca825da3a5fb193f8f7067480981b1b9bc93100f54834a7f9500e66785a216110cb1eb5cdd41b538333b693dab8e0e855e546a3eab90c43c48630"; + sha512.doc = "c0c527bc7e9e71038316be5c6a57f4200ed69e7ed6fa0f066923cb14d14e20e90213cf0b989d3ba746bdb3e2263cf1daba56db3073017a0d7582e40640d35fd3"; + license = [ "fdl13Only" ]; + version = "1.0.10"; + }; + latexbangla = { + revision = 55475; + shortdesc = "Enhanced LaTeX integration for Bangla"; + stripPrefix = 0; + sha512.run = "8b61b8aee0e95339b356fa85b9bb7ad3833ccf410267eb31a84a811c25c4e34ac350952fa26ed6461468bfeca37121e809ba560fbed7a0d8e747613708ff7795"; + sha512.doc = "8d8c686edbf3e70e70fa577c7d09f2e3d3f1ab938253ed01892ba030be0ba948bba48d67503a6f215628e03160bb32878f868d8a72b5a0d65ce3400fb9011ac9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + latexbug = { + revision = 63596; + shortdesc = "Bug-classification for LaTeX related bugs"; + stripPrefix = 0; + sha512.run = "343629bebcc022be463cfb13e155c372436b6138a3ce641ddb7ff17286788b6db438d040a8fa76bbd0354b880e5455a1aeb5060202b99de2cff1bddafdafac35"; + sha512.doc = "67209c3221ddf31ea4ba6a9678d340a590feebbe4965750a65037e3c8546d4a3db0b43d0ea5fe178eaa5e4d1500304b2a3fc04bc8e65781da2a5bf22e702fd0c"; + sha512.source = "28e88cad4c3b0e676e95d3b4be46285a73036af1662156d298bc288cead111425d956352cb94165ff515d5b725f1aced863e6cca917d6cb100ca71affb5da7d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0n"; + }; + latexcheat = { + revision = 15878; + shortdesc = "A LaTeX cheat sheet"; + stripPrefix = 0; + sha512.run = "530041d286048809968d91b20fd40c5ec41eb440fec25bf08f92af0f0fd5e1481a1344ba3c659da4477de353d222f3cb160d75eea2241ccf19b05e63e059ed6f"; + sha512.doc = "28abbdc3b53c245b0cfb6ab68549661a72d37df004a5c760f5021e91b1df892b02872c7e20f328c7dd4624edff96f3b1fadfb46cf35d080c6b7c5635dc36adfc"; + license = [ "lppl13c" ]; + version = "1.13"; + }; + latexcheat-de = { + revision = 35702; + shortdesc = "A LaTeX cheat sheet, in German"; + stripPrefix = 0; + sha512.run = "84de8075c1ba86467c8b34ed614462953ca8b9a237bb84453b2f9a1482eebfdb628c3e460d38da126416cc111387d68d3f479c5806ecbf06d079e47c35b88ca6"; + sha512.doc = "dda8002178b55e155f7ce1f49f57f928b6c5097007daf36aa473c1a2d07aef4c3ec5e1c238537c0531731af0cb0d51804b0c0310be63954f112f266e737c7d37"; + license = [ "lppl13c" ]; + }; + latexcheat-esmx = { + revision = 36866; + shortdesc = "A LaTeX cheat sheet, in Spanish"; + stripPrefix = 0; + sha512.run = "ab9965189096647e8af9aa58a937fa15595bed32055b3819bfd12334cf60e01d18b12563de8169ea28e3c0a7768864e51631c29bbbe47d45e09ffb2b87c5d524"; + sha512.doc = "a45f2db2445e2daec8b31e995669a189c1d201f457e06de7fc2a85ad85686b31fcf70040e7840e1168e29b2e5caf796c45b6ce934780fa5982d0750438263606"; + license = [ "lppl13c" ]; + version = "2.00"; + }; + latexcheat-ptbr = { + revision = 15878; + shortdesc = "A LaTeX cheat sheet, in Brazilian Portuguese"; + stripPrefix = 0; + sha512.run = "e50cd94941704f1a620a7411624ffd61d47aa4ef2944220ef0bfa9fbc428d8ea46be17bb3b18b30d645dcddf3c8091dafa9532f809dee7af230e2133c86b9bf5"; + sha512.doc = "00369fce725567a85310afd3063a4a20e670d8a0c57ef7e4515579ee0f91157f44bac2471b076c2ba51253e2c172447cc4b915877d80b0c43874c4e125f5f9d4"; + license = [ "lppl13c" ]; + version = "1.13"; + }; + latexcolors = { + revision = 49888; + shortdesc = "Use color definitions from latexcolor.com"; + stripPrefix = 0; + sha512.run = "b22521df5572411a33ba84b2d7560f0735a6f3a3bab0c6d7ca460e19333fba20ec8852becc618274ca7b7461fac1c42d0e6ce7fb9b7e4349c74bd05e8e1b5faf"; + sha512.doc = "5f6f26c2ece42c07b2b2e634308a2a417e12a105d9856d630f483443825615d770ed35f7322f59904b1d8fea9425e0222fe9deff27451a5aec52fac39eb9369e"; + sha512.source = "369c0cb2c019ef227c41d38a193f82ca1417158065cf6f0f913d9e4bb7030e6ff3b34fb49157d3e81b9917bd38db454194c3576009be76d9293b365e59619a59"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1a"; + }; + latexconfig = { + revision = 68923; + shortdesc = "configuration files for LaTeX-related formats"; + stripPrefix = 0; + sha512.run = "22e233cad5742691da573249b3f9cd4ea0c6ccf4e31a757837d710ca863e0cccd089106e523e40fb541255f3795d963273ccdf70211f19ff3caecb30d7fefcbe"; + hasRunfiles = true; + }; + latexcourse-rug = { + revision = 39026; + shortdesc = "A LaTeX course book"; + stripPrefix = 0; + sha512.run = "ab31ee52beb0fe100f4798e6e42673d5284f6f85ccdecf8875f4d058928cab7363507f8cafe6c3c6f437a682f3e0017923d138ff671eea118ca8d2339627fbe0"; + sha512.doc = "aeaeeef2c43a5ddf782a91152c9e2e18f00d9b3e18b7023837920a53eb390652d7ea85afcae338519a00b84a972a723eedd7819e73944ef7015f8c028822fea9"; + license = [ "free" ]; + version = "1.1"; + }; + latexdemo = { + revision = 67201; + shortdesc = "Demonstrate LaTeX code with its resulting output"; + stripPrefix = 0; + sha512.run = "e8444a7362e06fe225e9033fb4fd69a5dbdae2e6b18ff50b860e327890cedb5ccc92a2aa977d5349346dcbc0da91644729d292e08cd9651e096362df43f1b5fa"; + sha512.doc = "b704b4f266b2106d6a48dd5fca3af644ffb750c7a183d0ceb31db06c98802faff451d4a224289203174f086c7ac46bb83b5296115fc2bb0241b213ebf631115f"; + sha512.source = "cd9ccedf50931754ebd4f3a9cdf5df651be802fd31622a7efa945d41e3d2d4325827dc12983f17761caec0458a02d69eabb717c9ee0a80973b4f055d8bc1b7e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + latexdiff = { + revision = 64980; + shortdesc = "Determine and mark up significant differences between LaTeX files"; + sha512.run = "ae7179b5a9d410302d750233b6b22d29382406f3222129155c98b1f2ddc23d22ca7abe1683fd013c7302fe8e21e82a376499ae33d83c15a01fa2720696e5b718"; + sha512.doc = "2f484db22ec12886a4d76fabde3a65a982d3e659f524120b377221f91c7ad5973ad6023aa3226dd35baa687c86ec8dd8e736553d1604690d87e68d3cf7be84f8"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.3.3"; + }; + latexdiff.binfiles = [ + "latexdiff" + "latexdiff-vc" + "latexrevise" ]; - sha512.run = "a5ea5d33fcf2573f772541cf03cb660fbc4d32d4d1e145fabc07781f5f664369f0bce9e8434f403beebb3a6c17c2da43d7727fecf6944db1bc9d36796e8470da"; - sha512.source = "8ea942f9cf3b9939311ae29bc4badbb2a67c6f4f2e03a4745142a0b570aeb0e668dfc47dea278f960e6a11231856464370507379cdbd77588720a16ff5e25d17"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -csplain = { - revision = 67934; - shortdesc = "Plain TeX multilanguage support"; - deps = [ - "cm" - "cs" - "enctex" - "hyph-utf8" - "hyphen-base" + latexfileinfo-pkgs = { + revision = 26760; + shortdesc = "A comparison of packages showing LaTeX file information"; + stripPrefix = 0; + sha512.run = "b08fbfeb87299273a0e087e7cfe0e9df9bf50b95503a3110b9b329a9a41931f34f65661e219c6adf377e3448536d5aac8199799821f7057a67a4680a24f30ad0"; + sha512.doc = "af5ff5d84fbbaf299be548d13163c8e5e83b73ce795bc1236a204f4025e34d9ef0c587702ea5d6b234791e16e7cd1930a63f3839c20caefad7610de125a583e6"; + sha512.source = "b204065af499edadaf997f6a6cb1be474d02d03c1e37f94b33dc7d290f934c4a453fb648588482821f52f7b0b80f5edafa9a034f8eb2a9287ef06e753b8c1e96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.22"; + }; + latexfileversion = { + revision = 29349; + shortdesc = "Prints the version and date of a LaTeX class or style file"; + sha512.run = "3a017b8a367864358370f0063957c301014df2aa039566ef33ae78dcf428235ccc2a88e19c917c940e186371e2c0b747887cb04e7cb78b9a04ac1720dbd94cf9"; + sha512.doc = "b1df01f8bc7daed937cd20d1ab7cce443a3d1fbb58e04cb18f0c0b30ef0795c988cf51bf49ace2f960c173f6a95fe982ee9d29d7650dcde21784c788165094c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + latexfileversion.binfiles = [ "latexfileversion" ]; + latexgit = { + revision = 54811; + shortdesc = "A LaTeX git wrapper"; + stripPrefix = 0; + sha512.run = "4e3787d5e9bf950e796e7eb475c825f20628ec5ed5b99cb145036fba99c4941ed81b347acba1548dea624d87a03e0cdbbc28fc579cc8edb0aa36460e9df0b6d8"; + sha512.doc = "bfc6ce99ca1b66c0b1d5d98453716cf9e3a7e65ac55d7d17e5b06417f57d13f532602b537c804581e2e81b5265d554dd99e4d4307ef6d634d25916aae1892cab"; + sha512.source = "8a09f128428644335c9d909d23acc91ede2020304ebf009be00928cdef670aba23d245b979e5fd8d927c9d0e652bc195c717a744015a31fbb2aed1c566abfaf4"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + }; + latexindent = { + revision = 69472; + shortdesc = "Indent a LaTeX document, highlighting the programming structure"; + sha512.run = "23c35d38e78c3debf1c89cad7f719727edaa21e93d1cdc3f845f3badc0e4211919bd8e8a495010fde7eef78f9784f04c545d67546f30f16179624e36f82d31e8"; + sha512.doc = "6b0de79326494370b3fba30cf44b0edf7ec925462152c6c11d7e4b9de489b58a94ea64b0e9059b28ec17817cd73e75f0f327aff2ef190dc9fe35aca2b24af66b"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "3.23.6"; + }; + latexindent.binfiles = [ "latexindent" ]; + latexmk = { + revision = 69657; + shortdesc = "Fully automated LaTeX document generation"; + sha512.run = "ce495cf39bfc7a113d53427eec1ecd6fc62038c91cf5b97b0a7dd6fdf719b15425b6adfe1c734e5eae5330e5f8d15e3f9bf808d8e324afd53b8915d55e505935"; + sha512.doc = "0ce5229b80291809437e57518551e0ab0b06bdc381e07ae100ac2fff3f66965b64c4df096dc90fc5814b1110a9080322742b92af57675cc53b26ab1548a37582"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "4.83"; + }; + latexmk.binfiles = [ "latexmk" ]; + latexmp = { + revision = 55643; + shortdesc = "Interface for LaTeX-based typesetting in MetaPost"; + stripPrefix = 0; + sha512.run = "e32eddbc519ed33687c1fbe36b2cf45f9ee886a78c0a088f6648da42dbebb0a72064ec4b9d5333656cc3bed7b251ef3a758926db88e6bb79ffd4536489717db5"; + sha512.doc = "02cda290799bde7288220d0b634b970a6ac543fd63318bcf90c4ad06eab074f5851e7bc42c9359af709eccc0c8847a0d3d1a9e27cdfd3f60c7143de7ac4d3901"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2.1"; + }; + latexpand = { + revision = 66226; + shortdesc = "Expand \input and \include in a LaTeX document"; + sha512.run = "e5b63c9aa31f3b5885b1a61503998ce949021b448199538ac385d3fe687156ce6669cd3610a7c3387592d968b0707f7122f35fd50402616470e34bb49f341bf4"; + sha512.doc = "c06bbb57bc006aebb644fc4a8edc1f89e10617c67bb77193bd2f4dc3eb7b04b55fb1f239d7d6979f9b385134f3b1e584d9f10521efe704292b7e64865f78d156"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.7.2"; + }; + latexpand.binfiles = [ "latexpand" ]; + latino-sine-flexione = { + revision = 69568; + shortdesc = "LaTeX support for documents written in Peano's Interlingua"; + stripPrefix = 0; + sha512.run = "e498d5ec469420db789dac92e314f9ac0355b4afa2c43d4dce2de3eb23481db2687283f9ccce2ffd6edfd7b8f2d7ca3bf7425f0ff43ed46d7ca2dc9e3bc16797"; + sha512.doc = "ead89b61f23f527d4b545775c821792aaa5a4c3a6290767139dd8872ff6419de248d2f1d657589f469b49bc7b8a68a3368d5c26aa61a39ef6a0e6835cea97389"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + lato = { + revision = 54512; + shortdesc = "Lato font family and LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map lato.map" ]; + sha512.run = "2f8454888913ec6a024c53cf157509b8b769f948ac2c92d0683e80ff8e22865545a6a65864876be35569bf4a5d56ed871c8112b216561e3ce585136bd062c9ce"; + sha512.doc = "0965bdda9b3c106bc49d8156f497c4c85a80d76a4740964b2d24c58155e8afed57989166bc5ac3eb44daf377b7e8985b406a0955dc419ced4a7011f328ce0c62"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "3.3"; + }; + layaureo = { + revision = 19087; + shortdesc = "A package to improve the A4 page layout"; + stripPrefix = 0; + sha512.run = "849b0e0fbd15b45cb31ed4856b0eaa190c26437a1965da2c860af62b65cbb000b590320611e96c5a6c4cc63c029c31fb352ec44d96e0704eb52c70ee460abcd3"; + sha512.doc = "b4333e1361b352689dfd67e13a694a304449eac61ef8189957356bd94e5745f4c15fa38bc21219c8a21805dbecd44a51e719bbcd884b850ba1276759bdebeb94"; + sha512.source = "054df6aade854320987e605aad0a641778336ef918ef086dd097db8d1a2fc8d623f0335aa4ffb98942e157438ba06b6e75411b48db541779fc2a6e08e5b1c594"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + layouts = { + revision = 42428; + shortdesc = "Display various elements of a document's layout"; + stripPrefix = 0; + sha512.run = "9db14862ac1bea22096130ddac071a9b058e4cc1309917d2f8e8c536f280d2f4efc9a8dad9a5dbec0824b94f92c290e82820ec1628f0e4b72aa8fa617b72d981"; + sha512.doc = "aa6639c5ca0029efda9af523a0a075ef2b60ae9e031bd68232ee03792bb2f7452e2201e7223735e83b7979f2c057674fcedde4ed416254ab4b5b8a6cd9bb002e"; + sha512.source = "1abb95aa76cb3dc55d7426b8f98923662b48fa91ae8e5e2c3c01fb14dc28c8ceae90c01c9a22b1f59103e56d1818675d6da6223be6771083562ebc50ceff07b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6d"; + }; + lazylist = { + revision = 17691; + shortdesc = "Lists in TeX's \"mouth\""; + stripPrefix = 0; + sha512.run = "5ceccebce9cf3ff0574c471141f94b919d14a7faf1b5c7b5e09eb079aee11cb95bdfa7d8b26fb83e99875818d842cbd64733ab7cf7b7024f04f661f732a3fb04"; + sha512.doc = "1ecf491370fd7ba0fcd3ef1ce11df768509c32bc9bf14978e3d6f36e39094570144b897337bbc481bfeb8b74354b36f66d561a33e255ba50aae0a5c42f002e7e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0a"; + }; + lccaps = { + revision = 46432; + shortdesc = "Lowercased (spaced) small capitals"; + stripPrefix = 0; + sha512.run = "98d57c77a3ca19a067c04c9cef06d632e56f42daaa70ec729a7cbf3ff68ef3e7ab95e1d0d25cf853d85dd1916668dd5601ba6feb889d1eda344b3ebcb31da333"; + sha512.doc = "ce14177476624831de64a12ef858516a2df28a3e194748a1c759d7a41743a93e03a7d96bff3acd85f9db0f5d4c96a53aff7b73077e131bc6fa807c8b36844bef"; + sha512.source = "cb0f4f8400542d9d15e55dd8d9b55ecc1aad60dfda5de9ab342e8e02d075123e9b32b1c19dbed700ad8626d754a11be6e694a86b6eef757db3a6f47f9f5a22d8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lcd = { + revision = 16549; + shortdesc = "Alphanumerical LCD-style displays"; + stripPrefix = 0; + sha512.run = "829c0fbed639619707023c1df1fa511d584e4805aa4f26b0ba5e5c5dd85d927901f4ad949e4a171d9765995c9ccfd34e5d45aa44dfef2508d5ec84c27712e05a"; + sha512.doc = "385df3ec85fdbaa579b15f0ef0fa2347e15cb796a84265b1cc7a9e2bc520c0c98d0703615ed28c68ce5ab7cbca6f2699502ec26a31297c14b0039dd4b584fd86"; + sha512.source = "1d788d589c959240c92775455ee3272b8014a9491f2299c4d6f4d9aff66681100a6352bfbb644e0c4cb770e27152bb5b3fdf0f347aff489c172189c542a02e58"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + lcdftypetools = { + revision = 52851; + shortdesc = "A bundle of outline font manipulation tools"; + deps = [ "glyphlist" ]; + sha512.run = "3f3cc8f7cce233eb36315b21db408847a267ff393d6d4118de61c4b03ec408f3f29b2d41fdcf84995bfbf5d07bcb25984d7ffc76458d4f2dc12fdb6dfb85e23f"; + sha512.doc = "5a1dd1e2fd79351afc65d6786b24aebd9681a2b9e92755b44a836b47da5ceb1817f085483f306991a113dc0c26edfcd84839dec93bb46a003034536f31b31e5f"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + lcdftypetools.binfiles = [ + "cfftot1" + "mmafm" + "mmpfb" + "otfinfo" + "otftotfm" + "t1dotlessj" + "t1lint" + "t1rawafm" + "t1reencode" + "t1testpage" + "ttftotype42" + ]; + lcg = { + revision = 31474; + shortdesc = "Generate random integers"; + stripPrefix = 0; + sha512.run = "6ca6f347b6ca4104ec376554ff7ba5d19002b2b4174fa491f3fec87d6c75c3ed11c1d13b9e7d30e6c086b2a12dc3013f21ee10b482c95b177f0eaff02d953fee"; + sha512.doc = "5674612693481265f72420ae10914329029f9af2f526e6b59ba2614d4d2994a0033cb3393d2751064987698f819cca8e0fa3783555db3fa6cc5849f337b1cfd5"; + sha512.source = "b26dc9e706b14c304a282d2b5abc2d0fdb81799238c3951badb6152f8c83f6a2ace579ea0c2fb782bdfe0d02448cf716e77c3114ff0be594b12bcabbe138b17a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + lcyw = { + revision = 15878; + shortdesc = "Make Classic Cyrillic CM fonts accessible in LaTeX"; + stripPrefix = 0; + sha512.run = "324a9eb8f1a68124888ad7d4f35dd0446c917e643e2cdcfa041ca26b719ccdc541b9b89857aa05dea2d599912c506561c762d288ccc86d637fd927cc70bf910d"; + sha512.doc = "c063b6b5d23bd0a7197f5bd3121c93237c24f0a77fbc72cb370a7cd535282151731ef03098c36d8152707c50808c1b996fd1adaf16185bd3d0e3589e85b67981"; + sha512.source = "5303052e625fa1e07a3e54a682a11469f0b14697fad5658f2eb6d0266dfa25e6f66bd752265a3ca99dab138200711b48cadb29d8b1a1a878a59f5c5e112aa860"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + leading = { + revision = 15878; + shortdesc = "Define leading with a length"; + stripPrefix = 0; + sha512.run = "c326950e6c4b07782148ee4c9ac5b22f7e42512e0bc6e5e1f75be6ed757ca90ebf2bb6b30b91ceaac32c761d595ba5799f0f40ca15954f150d481ea366f1c72d"; + sha512.doc = "3ede6910ccb0a30c3ae9c78b86cf00cd7e2c5d8905b648861d2113d0af6225b2ffdc30509a72a5f69dd9e1164525c3225cd4ecaa04471ddf5c346a862fe097e4"; + sha512.source = "b42b230efc2508f4b3901de791424251c6e0ff003bb342fa11ea282f46b2dfd5c68a63c95fbb9aee146839944586218a3cec0ef182575a9760d3ed3f5924d78f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + leadsheets = { + revision = 61504; + shortdesc = "Typesetting leadsheets and songbooks"; + stripPrefix = 0; + sha512.run = "026e310ee9617108ac60fca69b0f08b2031d9c9dc583a400095765458bc72681c5c39332602994fd8a7dd4757b5214924d4f5d75bc5861365ef65e8e33b6e143"; + sha512.doc = "dafae48e690e6f0a2272d268204cbe58967eec5dc895987ecbff563061f23a53bf9d0d39f4a269b852524c1cad8de08fb121aa8291d2c723c01615f4c83b3231"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + leaflet = { + revision = 56878; + shortdesc = "Create small handouts (flyers)"; + stripPrefix = 0; + sha512.run = "ec809f2aa4cbc16dd26aae988e2e3b5fcef9284cd31deb126d26989358e52596a50fd63df07095f0bf081c46d1e8af3b3f59572d372be873d9afe1f3db3cee95"; + sha512.doc = "ccfee44447524b112f47211729bcd2c78021dfd19394b82eb7024bd10a68d1a04789d01d16cc9f3b5eab7feda884eae6bbd47b6abe8023893587c49613b44d6a"; + sha512.source = "cb505761b78adbc0dd69fba2888ab86394c7c32fd590969f721cebac249ab8298c87fad284fbb8bd9d557e4f7741559536e504155ee3b4f771dd135204857337"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1a"; + }; + lebhart = { + revision = 70050; + shortdesc = "Write your articles in a colorful way"; + stripPrefix = 0; + deps = [ "colorist" ]; + sha512.run = "693591f7f1316f2e04408500a958db59528cf12e9c93bc38b9fb88edad1e3bea01d8adbe00546cfe8d448c30e1f34144b53ab9182f81a18c4b30b2167fc86306"; + sha512.doc = "9932c964d79640a85a28dcbf523625c4b291f9a2a6f89be6a4c416c7318a7e55c15923406457ad5ccac8ab4257aba21b1f97ca3e2acba6339178c7307895ee10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lecturer = { + revision = 23916; + shortdesc = "On-screen presentations for (almost) all formats"; + stripPrefix = 0; + sha512.run = "e0c217ed089dccb7cb526e62456bf72d186bf8cdc69b2014bd4210b6f1225277d1afb514f381e4581727900c6ebf34780bb4df01c3682580cea0418fa9caa1db"; + sha512.doc = "97892442ebe9263cbdc8e35ecbc2f3acebdaa886e5fe814bcc0ada98b0cecd9e140a0d103adc9eb0aab1e5e48e9d7f4ab42e786d52f8fcc96d03db17c51fc17b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lectures = { + revision = 53642; + shortdesc = "A document class for quickly drafting nice looking lecture notes"; + stripPrefix = 0; + sha512.run = "e3fb80a67dcb5198503050d61266cbd3890c91c1c5c93042a17f2aa410223c3943e3dcb73d7d6e7a4d5888d87ae9613fc89025f0435c122ab44a8f822732250f"; + sha512.doc = "bc50485fd0a8782095bbc37b9185bbc61df2a6bdccaef359f2cedd553cedc14ffd0bb8e6690578f1d57b85e2efa650a68af3b579a7c360a737791ddd74373424"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.5"; + }; + lectureslides = { + revision = 62292; + shortdesc = "Combine single PDF files into one file"; + stripPrefix = 0; + sha512.run = "48d99cd8a5b0c730af30c9c3585f0d2c9d9bf88f359f591bb769d5744412f5b76fe7151a744cfa194dc77f53da2737895fffc9b0e81de216d6d3f5bf4831d26f"; + sha512.doc = "8bce5395c30b16ea534071464941e4d4df7622946f09daf4e1dd4f63f79dcbc05f350353bbfa474e1d990a37c0a61368aa34683ee251a4e34da5ad5c896ab84e"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.0"; + }; + ledmac = { + revision = 41811; + shortdesc = "Typeset scholarly editions"; + stripPrefix = 0; + sha512.run = "b465117d5634dc4eeaefbc2c12a4d0fb892f4a27ed66057938701fe51e4dedfb5b7f28d796145d89a59b2667cf61c7175803f72e5970cf81244329130d173136"; + sha512.doc = "7e7fa49106457f13aed11bcf80a1e38f000f5161e9a67bdbb174371db63a3953109f26da3cef8781d2c13abb4b86d5cb0c2b1b41e6f2cd3584512bed1a67cf6a"; + sha512.source = "918f3009f11e3fa2b5531c5cf8ffe9d835e331793abe1241f01f01b14d990ffd1f3aac6ec153b17f77099f38c284965209cff8f9105c340bfdadc85f78fd5d5c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.19.4"; + }; + leftidx = { + revision = 15878; + shortdesc = "Left and right subscripts and superscripts in math mode"; + stripPrefix = 0; + sha512.run = "a01d085af4ac4048b5659e7f2f1692dd787b7c4cc9a0c06acf9852ad9d5aaa9790bdad6db7a76ec2f1a268af520ac35975a7fc55ef0d6373f244c85b8b6e116c"; + sha512.doc = "1e372c7d307b4bae8fc5673c9654785db1fc7c510e188e7e0945e01dd502580479b7910e19132c7b8b169acf7d9de84504de2aa9fb580c9a526a5700114f009e"; + sha512.source = "3339968b569bf6fba6d7332399d0727148add95c1c0dc2ae06626269c156a4e365dbbf672b652d3c5d097d0570b0955e6cb34255e3f8383f05ea52fa2c12e375"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + leftindex = { + revision = 69660; + shortdesc = "Left indices with better spacing"; + stripPrefix = 0; + sha512.run = "3fad2e822408843bef73d95b5c7eb99840e9a3b9cc3f5815197ca735d8953a30a271c9609c7fb34eb4c8a7bed1a637a3421fe8a1380b5972e342997cff2ea247"; + sha512.doc = "482b46b33ea20c85765b6b1e4920b96e8f94347aebb057f2958ff2bc6884e8c1a5f121b31f1aff79deed93209940d37fe1fc33199a3f25b81dda74f02326a862"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2beta"; + }; + leipzig = { + revision = 52450; + shortdesc = "Typeset and index linguistic gloss abbreviations"; + stripPrefix = 0; + sha512.run = "6811c2259558856d930901d2d82a47774c4c37ceb5d1309fa6b78ebb031685405e334e8de7cd63b1998bf673d5210aacfd096b1c6570ed26840fe4ec22359c5c"; + sha512.doc = "a701d8c9ffc741099aa09f75dcef117db6c64a832dd51f57dfe07cee694a177a3a8be824560308b9cdd483013d4e69b77ee8755972b9ed504e033db6396532a0"; + sha512.source = "957fda848d5d4b5a07aa0150019670058343764434b5a7151131ac1d401e4de60a6f57af72eb485f02d0e3b63a60edc291ce1692d408363b23f811d1c97fb389"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + lengthconvert = { + revision = 55064; + shortdesc = "Express lengths in arbitrary units"; + stripPrefix = 0; + sha512.run = "7796d45d91e157f2e901a1a48a7841bf222f86540ac00d59250e3f47568ab86832bc115340c0b65b27c12eb1a39cc2729cffb5da71afc413dbae737341d8eb63"; + sha512.doc = "4191c3ce9b546f885c61243a343761a9dbc1ac031b3878a87c292d99a70effc89d927a1fd35eeafdd6523aea7c4bde0c90255057177767f534b471d4e098d3d4"; + sha512.source = "ae8d4f8563c86a5fbcd56d40dc39df2bf52bf4dd5098b4976ddc6ec00b8512e2d6cf4a4b3f6fe83e27188ea24ad954c8043daf49aaaa15e503bc2f84f740ae75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + letgut = { + revision = 70496; + shortdesc = "Class for the newsletter \"La Lettre GUTenberg\" of the French TeX User Group GUTenberg"; + stripPrefix = 0; + sha512.run = "26c67af52a69cf3c9eff59e1e3af2cdf1450caba17938ded0c6c8d090cba120809d4eaa981c2934a62e9bcc78a0430053f55e1c4ac241770c779c4a5a8cbcce0"; + sha512.doc = "13fca9f0e879d4838cb7e05e2978c5a63bff21b14f7da80e82030916218d49c870f97037f88ff4316bd220e5c318d2f7d568ddda9f787618aab31478e1a0ad63"; + sha512.source = "5057d1ddea61c0fc43a4b7cdf3f749b08bf14e443eb29a315d74a3f7a2de9ba3a41fad379c62cce83d15984c0d9ae484d738d6a875627cc4706bb708a2cac290"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.9"; + }; + letltxmacro = { + revision = 53022; + shortdesc = "Let assignment for LaTeX macros"; + stripPrefix = 0; + sha512.run = "c9c1f5c3b9aab6b31750011cd45c42bdb32ecd712ced8f8cdafe1aeca532159051d1cff1449b06e3d35fbefdd44f2332805cb1618ff1da022d405a88d600083b"; + sha512.doc = "8be12930acfaa79dbf3d7d3e0a60a518b12392c094e1dc531bfbcd8d9517d4744e99d339b3b7bcfb1e156d0ccbd17ca464126d8530e9f9c13e29d19a6aaeea99"; + sha512.source = "86863fc9935ac5044f2e3b3013b0df39cfe95f54fff5c6b1af0297b828fc88353243b117caf79cafb7f8c17d9fa90b2e0e8ca753573baa06db7acb26a978f30d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + letterspacing = { + revision = 54266; + shortdesc = "Letter spacing"; + stripPrefix = 0; + sha512.run = "30fdc0f87976feb698b9736e9deb6726746e4c25e4ed4a4637ff26699e171738be6447e8e2d02d154cf57944aa988208ee97859c0a7fac784d55fa6ef889b86c"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + letterswitharrows = { + revision = 59993; + shortdesc = "Draw arrows over math letters"; + stripPrefix = 0; + sha512.run = "dcfd59b7a51100a4e1d856d3cbc0d4f2ac258e745566b278e275d8ebd0273e7f96fa1431b681d42e10b1c7496596f1ecdd92753b8b58df4fe352c51b9b009bcb"; + sha512.doc = "a21ff5d9a4c2e409cd7a32207e1e162b263dff46919fdad25bd5fbc1cca86329efebf847ed24ff7401293d8a318bde9fe7fd2c9def69f39740d5e0686c0ab849"; + sha512.source = "50e2521b55a238cd6e461b3bcde326c5948573363988bf3bdcc428d04341728dbf73e891d09af65ca1832924cdbd0b0320bd94d662afdf78b3d1039ca3519231"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lettre = { + revision = 54722; + shortdesc = "Letters and faxes in French"; + stripPrefix = 0; + sha512.run = "308dc21e8be8d8f6952eadf9b5e9002fe32e8ea3b79ba679606badef75ae346721270e85e3fbcd269ee86b9ae049390164c57cfd73d7f2efe22fe82c7466a813"; + sha512.doc = "9962763ae46836874eccf4ea5a2dd695eaa1ab890224d6a54e83670618e2cae4a917fb6bf05610c5104f4d241e0163e079628e79ddad3edf374b513cf6a457f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.002"; + }; + lettrine = { + revision = 69508; + shortdesc = "Typeset dropped capitals"; + stripPrefix = 0; + sha512.run = "759f71e952f99425e2425f938164a402b86bb2e83a298e08bc4905007e7805f5856a3f90067c0d08003c409282c79a9c3edd7095bf105029e05addea8dd328fe"; + sha512.doc = "5618801ec7cdeab3b378cfb55748016df58fe00851a09a0a7929ea97de49b11c7cb2c6877e54d1cca93cfeece45c53f869e47ad3a9715a9ab8b7f414a8216cef"; + sha512.source = "004cbdd91606755b80857ac3b0fee75ba686a4d73010799fb1086c37b626ee2974bf9401d272763a58dcad7d4ef92cbd3cfbfe752bdde365bc88637da73fc429"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.60"; + }; + levy = { + revision = 21750; + shortdesc = "Fonts for typesetting classical greek"; + stripPrefix = 0; + sha512.run = "a71294df1b2bdb1402892ebc0c82dd60275cf41f6844cdd284e1ba73c8515e98258118c5a1e5158fb6d09acdc53427eb4e3f62f24591fd2eafc90d0bb69b71ea"; + sha512.doc = "e69a1e2e421100a50416f86bda40702aa9a4d5c5b0b8c783e328e56e1ce587f832cad984fee2cad259603e893413155bc4539e853e1df0d95c89e9167c67b2e1"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + lewis = { + revision = 15878; + shortdesc = "Draw Lewis structures"; + stripPrefix = 0; + sha512.run = "7dbe24061df0d0bb4762e7d308c895c99d8f9a9105137bce8c4e589c7fdc80f989aa8c3ebbe40708a8b6fa2a2df5542ce25fb16f528344ca46d50c47724e006a"; + sha512.doc = "b267e3c79dfacdd7ed8c931a0e5954c9fd2ea0cfc12beceef3b40bbbed30bbb421d29afd263a25a5b0b5b77a6bc74ddf38e609262485eecae065d65e23200bff"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.1"; + }; + lexend = { + revision = 57564; + shortdesc = "The Lexend fonts for XeLaTeX and LuaLaTeX through fontspec"; + stripPrefix = 0; + sha512.run = "6a9e4ab844e5189e996b73ee95d5ea5bda0d5d9f7b00a707d5bf9b7ceb97eb2f37baef9310252227701d6fc280a14a8a79ff524b5cdee3610c4dc48968f6b3b5"; + sha512.doc = "fa21e0311899513ca5f7031471189ce0269fcb35b5bb38d2e3d2e8015dab11ab2a10cc086ba6d41f24c25d99b32f91750371e3297c505ef4a522d61aaa24e5bd"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + version = "1.1.0.70"; + }; + lexikon = { + revision = 17364; + shortdesc = "Macros for a two language dictionary"; + stripPrefix = 0; + sha512.run = "7c0642f9e727d34175898138d27a838f0432a68659acd7986acb0b74183f28467351c169c52ab057daf46546d8ef9f9bdf30dcb1846b458b6b718ae38633b275"; + sha512.doc = "4f1329d49d92d93743127e4f3ad9401e07529d31d2d68af86373f08b56ae69c22c70b89151461548aefb7fc1f7eca66cc1a4ac73407d82b65bd007f3372243cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0c"; + }; + lexref = { + revision = 36026; + shortdesc = "Convenient and uniform references to legal provisions"; + stripPrefix = 0; + sha512.run = "f9bf7792ac09a6b5a69ae642e0becbcb1ed0c2eea3254b31da62bb9b7e3e161c24109e0bcacc8b89e3d03426710378f04e13a05be467115eaea2be028f8e5812"; + sha512.doc = "6a348acfd0e0701954195210bc717666308743f5f282b9efb7a253ab860a0372ed383cc2c8811527eeb2ed72c46be95cfb9e133d156fe8b906b67ed5140437af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + lfb = { + revision = 15878; + shortdesc = "A Greek font with normal and bold variants"; + stripPrefix = 0; + sha512.run = "5b1386321f8c24673531b48d996a20cea9ed527ae60e608f63a790a2cbbea573d01e0351c1ef695b11f14d31d5c482ffa02b337ea04e649b7b758eef713f3bf6"; + sha512.doc = "59eef59a1be002d28ce802617ee638b6c0e74efb391a502fa9593bf19e54f563f819f45442714b46a2e97f49bd561d2a2df631e53ad3847b48a881c8762d2d9d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lgreek = { + revision = 21818; + shortdesc = "LaTeX macros for using Silvio Levy's Greek fonts"; + stripPrefix = 0; + sha512.run = "f0b5cc9b7267aa07dc0b0f8c6d23a164bc239591fd13b5d77c5c840d33e131546c63c63a3bbbee2851000bda2e8593e7617f8a7ae381e7cd0561302a667acac1"; + sha512.doc = "915df985f4766f492a70a35342e086567d17c155ea0dfce5514c6edebaf1dacb78998dc4bf5cc44415fef580a7779083bc2261a22dfd668e8f2023f1f15bff35"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + lgrmath = { + revision = 65038; + shortdesc = "Use LGR-encoded fonts in math mode"; + stripPrefix = 0; + sha512.run = "415c04ea9add325ad71e678cafa99fe896d02c8b16facb0c4f69d656f0621e131c79be9470d15c755bfc4f63d9b6611e58829281c0e5c7209ac7c10ecc456b0a"; + sha512.doc = "c68c01069ef48b668f471c86d0b562f2455e9bf022ee7a9d9a9b2c6475b9fd04b4e1b9b0eb7cac215f51ca965d35a1cc80102a6d862b2d72f9d9c72f07fd5900"; + sha512.source = "044fc3ae8aad6637cb8489f1cb0fed9e5cbe7435a7615fb20b77c749fee43de1de6740b0212239c71106d7615c7a54eee36bb9fb35be571220744d6ae41da90d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lh = { + revision = 15878; + shortdesc = "Cyrillic fonts that support LaTeX standard encodings"; + stripPrefix = 0; + deps = [ "ec" ]; + sha512.run = "265aeba5ee99cbec2eca77a273a9e4857d78280e0ff17089a358e7f85d0595025e259b2edd471ce5287479531fe37cfeeaeba405ac9cabc7ac9616242815b6cf"; + sha512.doc = "33f1cd39b2e68caa750ca5867bebbbc43c9948a7606f6fe44ba3bd8be84661fb562b5472ec57ccc3f6c18ef2823188c2f81ca4444b562f935e6f041d8ec0f39d"; + sha512.source = "a81d3d7295101718dc4e66c6daafca8c480b281d7219956b0007adb4fd7e0f35959277931254fc778bf69c581b7d15ccf445f5037b589cee937211c39f59529e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.5g"; + }; + lhcyr = { + revision = 31795; + shortdesc = "A non-standard Cyrillic input scheme"; + stripPrefix = 0; + sha512.run = "55cf81c051e8f23fe4f085990bc72a5b1dfc276e3ae1721680ad033deae1e3eafb1b9dcff3380ee20b72623b1ab8f117aca66f61441387d914dc29dc91c78448"; + sha512.source = "18fc370261acff25634107705a36d06ec6367da95526a79fdd78c887234a2f2a6a17147eb317e97effa2ae8fe8e21e8df71cff3da5572055356386d26d2b06d8"; + hasRunfiles = true; + license = [ "free" ]; + }; + lhelp = { + revision = 23638; + shortdesc = "Miscellaneous helper packages"; + stripPrefix = 0; + sha512.run = "3a5bb1d95c300e9546b67c48cc2c3e1a5c3089c4430d76172a8d7f3cdc59fe03de1fafc6a1babeacc9259444e09e85e02a64f3b3f8ddfe3883511482b9ff0985"; + sha512.doc = "2411bd37dba9c4afe1ac4251c9897c99e5934938bd802dbe89993d5b6ec0d19e1cba8b143ee5febd9ad73f0ef823eb79f34587e6885250a2bce8eebbdbf06fd6"; + sha512.source = "42e419f41c8d8c00a4d27b4bd4499097b7c4c2b8b2e75c68fedd224796dcc9b9dd09054f90cc525286ea6b72a579120c3fc027239bd0f0630ec471bc870ec02b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.0"; + }; + libertine = { + revision = 68981; + shortdesc = "Use of Linux Libertine and Biolinum fonts with LaTeX"; + stripPrefix = 0; + deps = [ + "fontaxes" + "iftex" + "mweights" + "xkeyval" + ]; + fontMaps = [ "Map libertine.map" ]; + sha512.run = "5c1dfc8bac01acd0e6e0d3412c08ee8672f01ebe1c7e22f36f313541139bea13d8967e53f5959a04b31d08c0ba88334b30c3e909eef310567b07ead39edafd3f"; + sha512.doc = "54963a7cf440750aba83feb1a55d1de26ea6995716049d22d3f0ff742364db4c4ddc366d2937d022a3a8ed9951a114367a6ae1bef74c0a655b47007d38c2422f"; + hasRunfiles = true; + license = [ + "gpl1Only" + "ofl" + "lppl13c" + ]; + version = "5.3.0"; + }; + libertinegc = { + revision = 44616; + shortdesc = "Libertine add-on to support Greek and Cyrillic"; + stripPrefix = 0; + fontMaps = [ "Map libertinegc.map" ]; + sha512.run = "0af71c5bd17a2c89d85c2df056e76e4f8ff98b24de40dd306a9c4207c15dbe9dfd08864736a3a45f1c82f51717396ea843082f6798b89f7e9ea8c316453a707f"; + sha512.doc = "010db594b034a5e401fd17a7772dd3dbf95c37d533fad97f7b1568336beca31523384da1eab42e74b2e8bf294b25a8d19df7469eddd65cc1bb61abd5dbe79d03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + libertinus = { + revision = 61719; + shortdesc = "Wrapper to use the correct libertinus package according to the used TeX engine"; + stripPrefix = 0; + sha512.run = "93fc163a66e711943c22f383187d4f7e81aaca32f36eac6e6f944682169282544c9233d05a2b5e6d263dd95de3d8a8106871a0ea1fd2028899031e2cde1244c4"; + sha512.doc = "8865b61037690bd3569654879866592750561d3fdeddd7943280ef772e7798194cf0bdb95809ab4373e1f082d1a1468b3b4456971b72dc892b07e73e2dcdecc6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + libertinus-fonts = { + revision = 57948; + shortdesc = "The Libertinus font family"; + stripPrefix = 0; + sha512.run = "5deeffa40e2399169a7ec16fec4d417c27350cb5ccb7f59eb1638172758e88167d24470d889b311760b0739b9fa0251e2389f7ccda0e4e8e2ce3a454406f13be"; + sha512.doc = "410edfda953b321c9fa53e99854eea206177e4486c0fdd6ae3cc20eddb31111f28f17dfd725c5f2dc573d82ba5daa1f75c544709accae84292cff45d52b10c18"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "7.040"; + }; + libertinus-otf = { + revision = 68333; + shortdesc = "Support for Libertinus OpenType"; + stripPrefix = 0; + sha512.run = "74e8f653e1bfd28b11932b0a5e524e823dbc1759566a3a6fd3d74b854f40df7a78b5dd3845e2b8e217fe9608cdb116d1216a3139e21d4498bccf62b8d8e42742"; + sha512.doc = "e708bc00e33f6cbdb1b21b1f62e968896f373301b8a3662fa32016c30bf913831d14258b9e1ceef3da39fc468dfabe0f9e4ff6f8b0e4357fe15bcd80c7e859bc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.32"; + }; + libertinus-type1 = { + revision = 67450; + shortdesc = "Support for using Libertinus fonts with LaTeX/pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map libertinus.map" ]; + sha512.run = "6c84de57b1778ec35d9f56b00e577f9f8c1293132cedba43e657f4425e9bf01ab4243fe6ffb872aeb99b446019539a640d29c88cf29cc86d649d2a00f77952f7"; + sha512.doc = "c656af53b98735bec8c63c3e56160da943379f4b908f553a27cd1c82111b201eb15c1f1eb1b6ff89fee281c27ea36d6fffc5592b75722cd561c8770ef2d3f6a6"; + hasRunfiles = true; + license = [ + "gpl2Only" + "ofl" + "lppl13c" + ]; + }; + libertinust1math = { + revision = 69440; + shortdesc = "A Type 1 font and LaTeX support for Libertinus Math"; + stripPrefix = 0; + fontMaps = [ "Map libertinust1math.map" ]; + sha512.run = "ad93607e4accadbc0a429bab7d6bb8ba964a98324a9c65fc1993db025a728dfb8b3e48e3d67552a88bbecad247db573d1b1f7386e1aacce7954b00ace4feacb3"; + sha512.doc = "012227a7d46da30dc4a20b403a0f0abc0010d6902585c18a0bb3fea1e4b7cf58b629ae8c49597c6c39a264cf25a7a80877cb09e99b0f59b01d37198c5c4db769"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.0.4"; + }; + libgreek = { + revision = 65004; + shortdesc = "Greek letters in math mode from Libertinus or Linux Libertine/Biolinum"; + stripPrefix = 0; + sha512.run = "bfd9b373b9dd5bf637dba467b32a8b15965407ff1f6d47629f400b919d7126d5f37e1f35b8624cc5505869d8a649e25db2a175de4aaedc50a3607d90848c6cf6"; + sha512.doc = "94f7022093b0b1c3903b214a3e874751884020a78355e13ae101a2d336eb25796ec0f8388884f5dd9600badd15992978f3c9516a5a6d8ac1d7d3b92046ecde96"; + sha512.source = "7a04909b6663987eb42f690355b91ba72056540f5e4cb7e8998ef04db7bfa90d33f605103b01a383107a1c0629c9a328006ec2d5b2d0d98777bd4b69db779db9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + librarian = { + revision = 19880; + shortdesc = "Tools to create bibliographies in TeX"; + stripPrefix = 0; + sha512.run = "2a01755bec49fa8c78680b0599b58649b803694f339383ad168bdc06554dabeab3047d1b17d63f7487860a5d0102dd8f68a78d5ad5ba94a2f8b29db7329e1ebb"; + sha512.doc = "6d95e43b1f9965fe016bd9fc7ba3f9df56716d8f6c89948417643bffc4b9e89f8a5e6cb045e873daff819a16cc10cd61e74e73e98119a076580967187338be37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + librebaskerville = { + revision = 64421; + shortdesc = "The Libre Baskerville family of fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map LibreBaskerville.map" ]; + sha512.run = "671894db7ebd325e35efba47a8b84dc9afbeb213358503f65e246e97af090be03f6591fe124d4f5b4c53ae99bdc7a56bf84d385597ed7564fa63f7fad5265e4e"; + sha512.doc = "9cfecbbfea90ff99af78bac088674061c7123ea046aa42da806fc09d6fe5e88c94fbaa3053bf87b563e55f514eda5cda108d5bf6b096253e79fa0d09567221ee"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + librebodoni = { + revision = 64431; + shortdesc = "Libre Bodoni fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map LibreBodoni.map" ]; + sha512.run = "e1bc9e0560febac6f6e56737ddc070fb9642ca6e701699dd3546e63fa681ce28a995e61b4190edaf4d9b9f9a4131b77436d69cbce47e601b11b63caa25bccc7a"; + sha512.doc = "be63dcbe34c1f09f560f85aba54e469b3b14331a4ccaf8e44ce7ffcc649ec1a0c4ba2494ff844cede73943a646cc8c62c8bf7a949b602389e4abf9ae5181331e"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + librecaslon = { + revision = 64432; + shortdesc = "Libre Caslon fonts, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map LibreCaslon.map" ]; + sha512.run = "96c3193cfc16b5cb312ff67303825c7e9733642108a601ee2b8dccc6e8d6aaa0db28e2da7c84faf71eaa1576ddab230bb6f385972d95f4aaba547e57a82b1e54"; + sha512.doc = "9f7c6662af462f0c73b97de098cc4bbff5a3060e44a72ce294b175c5d5a3f520a93026b1bab17bdaf5c48d2de55c4045730386f7f8f046b3ff797c4d715acb8f"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + librefranklin = { + revision = 64441; + shortdesc = "LaTeX support for the Libre-Franklin family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map LibreFranklin.map" ]; + sha512.run = "35b304ca5b24ea88fc6a5227361db7f825a99eeba4b1ddcc31e5e71bda3f6ec911b00e2ec7ae9f54022748f39a26baa61aecff267628343dceae8eb8cb07bfd2"; + sha512.doc = "092dfd68010c10942f030828552e4609ded2b27bbd13d213556ad301629893748ace3380aefda1adc8ad23261b2de253599f6784b461fac8a1bf49cd6e1370d8"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + }; + libris = { + revision = 19409; + shortdesc = "Libris ADF fonts, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map yly.map" ]; + sha512.run = "1a754d896846d0db358cf4f878928dcb511d76a7de6e7dfabee71970908e3ed7caab98f854695318ead334e052282b690712069597f42505b00c41e328ad141d"; + sha512.doc = "04378b8461d6ea0284f038974fed6ae6fc48fc362f63dfb8b8d57a81a721da7bf17ca3aeabb198c373a68a4c8e5516b66f12c240e081dabcf1b9c79fd2d2b388"; + sha512.source = "8ccb8a6beb30c508d582dc905136cc8b1b053a8d71a7701bdeccb0ff1eecfa69e32d7167b871d4e38eb0c98ef49c8ee9a00a9ea3bbc30e51c8a81d903ac147ff"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.007"; + }; + lie-hasse = { + revision = 61719; + shortdesc = "Draw Hasse diagrams"; + stripPrefix = 0; + sha512.run = "b71ed475c73a94a92b8a8078a4edccc73f7d688bad7a1a5e6218bafba823b76a20b79da83c7591903fa234c6f0e7f776317dd8b740e5fd7cd014821f8dd77c94"; + sha512.doc = "d846971b6b8429e58521ad0cc564906fc06623a3764117069fdb1912aeb84858e7af93ea2f4a7732c6e677f260f10a6a9b79488d43caf56ad158152245f8e4aa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + liftarm = { + revision = 62981; + shortdesc = "Draw liftarms"; + stripPrefix = 0; + sha512.run = "a4938aa3e9a7c844766c2b6ef5959fda39f4de50325545d64a319a9d7f80ac2b3b5c4966e1db249e83d4cca7b82a3a7a60bff90c5d425f32a2a5c5b55b2fc4e9"; + sha512.doc = "1d4917e9a032e459ed1922b4d1ed5b525d3cc8799dedb8d435b0a387fb9c529159b620668bf5e737e87c68e434f2c01004d6f6b2100ea2484f179f2105901a73"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + light-latex-make = { + revision = 66473; + shortdesc = "llmk: A build tool for LaTeX documents"; + sha512.run = "1ede05b31d3b7acdd0f38b19e83b4258f05ddb184343dd36a46f142adca9f4081631d687411a1370be880dba5e3c6ad3f1c21108232e8b8f4fd03fdc1f3ad60e"; + sha512.doc = "f5bb10465cf3dd983f59b101f6c631e202ce655282319c773cd0d83c0a9a8a3b9cee7790ef1f803b0c68215b553a2668d861a51dd9ec35b2dfe4b07ef0cf3a08"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "mit" ]; + version = "1.2.0"; + }; + light-latex-make.binfiles = [ "llmk" ]; + ligtype = { + revision = 67601; + shortdesc = "Comprehensive ligature suppression functionalities"; + stripPrefix = 0; + sha512.run = "f75a730290acd024eff3ebad6965fbea0e3388c98e0b6f325183758a7771de4b165810e7cfe05c43b12fb0cfcf71c51665c082bab82e44772ad0e0fb4b21c0ba"; + sha512.doc = "dee12f5e8abdff666582edde442085e8c937b39fcc5ad37759f0cfb683cdeafb63afce7a051573db307d2c416eca46bd9bf626f0cc3cd44bc6e1379c428d2e09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + lilyglyphs = { + revision = 56473; + shortdesc = "Access lilypond fragments and glyphs, in LaTeX"; + sha512.run = "2616757691d289e859fb2bc161c2a5b5312bb1cd824aa15854520e004a639e597f42515756b3cad383e4e33b3057a1579ff5c2ea7c39d8f9bf9d36e9c9b58b70"; + sha512.doc = "4d9ac765c6a4b2b736d08569eeb6d0d8b168fe96563526264f2485d3d27a944a3e81c6144cd8f1d8cb5162d425b436fc688172db18b09610b3088df4ce868a27"; + sha512.source = "e0a1db8b5c4e57374ea19a7f8da3f4a89a2947869eba3f57411a9e815d645f4cb4200832276e3d3c869e2b3a8e3018e8e0f20f942f2396395b7739d7e9b23951"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "lppl13c" ]; + version = "0.2.4"; + }; + lilyglyphs.binfiles = [ + "lily-glyph-commands" + "lily-image-commands" + "lily-rebuild-pdfs" + ]; + limap = { + revision = 44863; + shortdesc = "Typeset maps and blocks according to the Information Mapping(r) method"; + stripPrefix = 0; + sha512.run = "eae51f72a65d407b091244ed926ec98a7bf02ed8c360fcea2d614011555195992d315bb22b3697c8220f8e91f34a1c2f88092f34697dc9ac42f757e066198650"; + sha512.doc = "748504c008704d2aa1c763920c03c72372c89368e245fbf4172b442b6e9efe11b3754f37c37a864ab19301c8822aa31f0d25f80edbe26405c043aab8a0382739"; + sha512.source = "2fd49d1313293fdda8726c84438a742095ef9a917369d8ac62d619507f540b4a9ced794472441f8d48edd5a5cc575ac2ac8ff43b3a50ccff70af0416808dd611"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + limecv = { + revision = 61199; + shortdesc = "A (Xe/Lua)LaTeX document class for curriculum vitae"; + stripPrefix = 0; + sha512.run = "14c7bb278113e8d8ec249e18fe7a142f5216984468a51a2c64926b2dea6e79d928310600cee498cb3773b0ae70e97199b4800a8c5df94431df121ccf62955b5a"; + sha512.doc = "7e64c4a940dfb321da2c81ae84e709e1601068935f2531c8e6fdf514b5cbca6407485005f60e4f410a303b97557986f1962dfad976a3c3914d01309c67ae8049"; + sha512.source = "43ab876f14fa2f920741f26252b852e5d579e9394efa1d5e00753f23365b62192293aa48850275c2aeadfebae4c2f8e0a929d4459c5feecedd7176514dbdcc9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.12"; + }; + lineara = { + revision = 63169; + shortdesc = "Linear A script fonts"; + stripPrefix = 0; + fontMaps = [ "Map linearA.map" ]; + sha512.run = "b87051ba4647ed2f0beb8e5bfe8419d8558421f509cb6eaa931f47a10488dfac4e36b3ece1cfdbf3e46eb431c3d15e7a7005f27522dbc4cfe6de52ce6127bea5"; + sha512.doc = "4c87a47d08606416e5d6605edb3a89bb3a67babcc621dd28b8ca02bfcb5ba6108e56e76fc166ff0d6a54c058459acfc8ee6b46d49309d6333d13305d00d3179a"; + sha512.source = "6476de5673f0e0f4896b0f579bd37e31c7301916dff1de1a957044b7782c04c43b5b5add887960d1a7013648a7e352d2655bd9a8e57dd0cafd31c851cef5f21e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + linebreaker = { + revision = 66639; + shortdesc = "Prevent overflow boxes with LuaLaTeX"; + stripPrefix = 0; + sha512.run = "282c1687acd1843f43d281804ef4860967c069b38c415cb015c0694ddc9d78e03a5f3456a8331d3aec341d856474fe95a2f4fd92b786c2834d65cfaaf4b9198b"; + sha512.doc = "d39b7d5ec0712e3e26ef76f9e1177f6de5413dce21b143e791d79c8980be640c785448fdc8fffe48fa5ebdd9d2d594518b73e8db21cb16cb99a8d9377ce8f9ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + linegoal = { + revision = 21523; + shortdesc = "A \"dimen\" that returns the space left on the line"; + stripPrefix = 0; + sha512.run = "87a062513ff7674f315472cc46e13fbce99057c3b7083a2b9c93b92f09d538af29f5d1e3664dd5273080b9037ac232dc0d7491753b83136d2d3558ada1b81976"; + sha512.doc = "9c61ec4fa6bc63a57f7b272c7dfc55035e8e4f14225bbd2763157915fd351a2bb4f179150801f06682fd9bd59f756edbb127e7bd68592ffee5c1cfbac91b10a6"; + sha512.source = "69133c573e53608e6b341abd7e745ba6b532eba05bb9a2ff2105bb9da69e31bf590fdc3f06241e5b667ec7f0c9458a908f5ad72304c7a5c9e412c0057611c5cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.9"; + }; + lineno = { + revision = 67171; + shortdesc = "Line numbers on paragraphs"; + stripPrefix = 0; + sha512.run = "7171da9917c0218a0c55c43126ecfe07b9e55e9633b673c89ae18f08897bb1634cc8412cc3051ebf6640afc228e246f1e5549ddea45261a6ddee01d158f3b9e6"; + sha512.doc = "ab4aacda9d0f4a9a2aefdf37b23067ad27eaf40500fd92f7a4c619f9c012a40ac0c69fae32c425d6c12d2b89e6d6c2ad9585fd75b2af8447c9f7d333473add73"; + hasRunfiles = true; + license = [ "lppl13a" ]; + version = "5.3"; + }; + ling-macros = { + revision = 42268; + shortdesc = "Macros for typesetting formal linguistics"; + stripPrefix = 0; + sha512.run = "686dbb33df2670af909a80863943a8870ecef128679ab679f3d90d1747042b752c9aea15660c962b0f02418233d4d152e64357d5b57884a2fc2371acb3d90a52"; + sha512.doc = "fe424a7db4be743168c4b1016fc25c95d33cf9d66767b39db0e79a5ba1bb667c76b9b5f10b23a08449362a3fef281d60f0b53e2b0f196846efe9f4765f3f08c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + linguex = { + revision = 30815; + shortdesc = "Format linguists' examples"; + stripPrefix = 0; + sha512.run = "36fab316a894029feba86bf771d4e600b3e7f5d766deb9d844605979b066483500c8fa0a425718d22e9a2bc14d74aada16ca8deb7ee744a81e18fee8c77a7b50"; + sha512.doc = "7a5d84d5425031d341deea8f37f1d8a9f6eaee820ef66661e8e38eafad2b20a5e9b04b81b1a0db0b11ab70fb0adc9c81cef886978626008eba6aa3c32bc0c848"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.3"; + }; + linguisticspro = { + revision = 64858; + shortdesc = "LinguisticsPro fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map LinguisticsPro.map" ]; + sha512.run = "6bf94e8910ae03314a3ff55157e52586b5f2550c2aaca1a8989b1f02400c87363c74e00658ee953c13a44dd69cb253bda6128e66a96b865e6169310165a7f9e4"; + sha512.doc = "8f0c8937cacdec2e2ea4999dd1bb45af96a99a3707ef22b54a2bf1e0c745d663550ff0b68d80cf895e8bdfa1f279873c4725c7851af547f06155589d8e5bfde5"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + }; + linop = { + revision = 41304; + shortdesc = "Typeset linear operators as they appear in quantum theory or linear algebra"; + stripPrefix = 0; + sha512.run = "ba0c5e053399c44203d6eff42252854a16ccbf12132ee6e26fa577587554234b36ed31a63f1a6c40059e0aab8d9367a5b6aa6f34d552d64866b46e68478c36b4"; + sha512.doc = "e63f09e370a53dadc92591d105c677f2a5eea4cbcbc4e3133448df64b10abf2eae1d76cdeed5e288f610be13eb4baf8f248a6e9df92ab79066078ee165b9fdc8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + lion-msc = { + revision = 55415; + shortdesc = "LaTeX class for B.Sc. and M.Sc. reports at Leiden Institute of Physics (LION)"; + stripPrefix = 0; + sha512.run = "8eed5de445edcd936654a9d7ef8e227d43b479f39279025115fd8586cb7fa107dbacd8c7272e868eb11de0e320740fb8dc5c1fd26327fc6e8394c8924ff37cf0"; + sha512.doc = "87d5b7e8fec95c857f6c45aeeab3cd6eb70e9b7a237eea3b5a4deb8e92ec8ddd5a381c88ae4919bc1841df15a4b93a569a996ed032cf2b0b7a5bb088c779e873"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.30"; + }; + lipsum = { + revision = 60561; + shortdesc = "Easy access to the Lorem Ipsum and other dummy texts"; + stripPrefix = 0; + sha512.run = "24697be378aa490bf71194c8622400c11e27d5c6549caf2362250017ac97b4443986a4ad5f8d2d96aa53cfd7bcf5cd7ada0e1ddbbbfd27135e2a23bbad21563a"; + sha512.doc = "ce44b2d4acab295bdcb2d0edcefedea449c4dae7cc4c0d62ef73e36169b0858863003bec1575000bfb78b1ecd9e5413807a89bc464b5d173f05a43313c7a22de"; + sha512.source = "5984bb97fbecbecb5aaf26f788a6879682f6ec39c87e01c834533a779384b20ad02f1825cf5c2339b288cc61ed716eb3a76e51c45ccf80849b4434132e0c4081"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + lisp-on-tex = { + revision = 38722; + shortdesc = "Execute LISP code in a LaTeX document"; + stripPrefix = 0; + sha512.run = "67817d9894ac5bc8d456ce2b114eba81b0c444bf53422c4acb5066b42cd5cd55d73c46fb2b443db9fe3b13bebb58d6fd7f2bb31686dc4ac2295447285295c602"; + sha512.doc = "fb3a8ef4ada38d910b3055f408059daf700946c84b17873846175e6cd3075ad7f3889d2af154adc3a7898ac33646251bdbe0d8cda17ccf354dee526a96476432"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "2.0"; + }; + listbib = { + revision = 29349; + shortdesc = "Lists contents of BibTeX files"; + sha512.run = "e71bda783acbb8ab6ccab3d8af535034caf0eea919bbd175685fe50585970b87613e0df5ed076967aca395cd8c7f1317e805fb1cf765897b03d6cc131d3d98b8"; + sha512.doc = "0ec0970f591fd3a840c27730d41f0b817f631727c9c7219880b45209c21fe0d3aa616eb6eb94bc7016a9acabfe9c50846d872d3b36a104e1f4eb74dd003a16d3"; + sha512.source = "441b13ec75d91c68b8e7253a5dc9a6e515c5bb0df81a4784dd414b1956be6f2c9189051ae9090a04bd4d11919945a38ad6563f41c27d1b8d03ad283f71c9a19d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.2"; + }; + listbib.binfiles = [ "listbib" ]; + listing = { + revision = 17373; + shortdesc = "Produce formatted program listings"; + stripPrefix = 0; + sha512.run = "154a9eb9da19d4a1d9f6ed421bc13f1f83279cd456b95ab8b7d84f9c48d6aae5548b7357e46041580d4b457758aa090e6352aca9d9e20f1739dc589d4fa24bdd"; + sha512.doc = "11ef594d55ee823dab2a88ad5882e1ea89d7741f1038d3782ac43fa43cce948c1ed72096ddd11d1efbcc3b43ac9bc4dd23713f725aa71807ea174548d9a5c968"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + listings = { + revision = 70052; + shortdesc = "Typeset source code listings using LaTeX"; + stripPrefix = 0; + sha512.run = "233399d89e14afdf7c8f8856e61e3d5bd81781a795087447b7332353a3a71b5c9514c39bea39a851fccadce2234e0fb9af537dfa10fc4be2c25051261f7c67de"; + sha512.doc = "7fe88b4098e5edb4a7e548688e3b12f66714e6cafd35492e816385563039ed81e03b25406a9aa1dd231cf89d2b4616cc838ee352ad1468a756ee00aa291c297c"; + sha512.source = "185f23319d2509c9eef88dd36edf55b7f144711c9836b6ea9072dbbdfe62908f4d556957fd62eee5d50a82f7635216d7069be0c9fcaf646de84a330f56011719"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + listings-ext = { + revision = 29349; + shortdesc = "Automated input of source"; + sha512.run = "c68752d0e7a1ffb7d08f153bf337849164d0287f20ff8f092635ad7083b2e5a6c487bcd9dff913dd029f4ea92750768d23583eed53a0c2d3bf012e4db059708c"; + sha512.doc = "82491f81dfc89950d085f7cc41dabdf7b895b23c8a69f80c1b4f4c420fe8f036ac181b56e3ab60496910d0f1165ce19b2f94c5e268dc1d59e352ab6747e3bee5"; + sha512.source = "fab34f07d6384a5474f3ac30e2e00a75398418668134ac1041cabded6209c9521244e1637e4037e7346bc70b3247ebcd90526d5e34fc3c4e388fa978382bf228"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "67"; + }; + listings-ext.binfiles = [ "listings-ext.sh" ]; + listingsutf8 = { + revision = 53097; + shortdesc = "Allow UTF-8 in listings input"; + stripPrefix = 0; + sha512.run = "846cc046ced340cafd98f009a55e891bfa6bd5715c94c0dbd5b124599c8e3aed1f248f56592795184fa040285001b0d967dfb26b0fb764bdfadcc2eabe8c3122"; + sha512.doc = "fd15657a8c7e8af4d21721f64ee0c2a77606d965698fdfeb581116f3b13dbf95bf774b77f019bef4cdb4565cd1957cf040818b1d9f78425eecfccc48ab6c5e28"; + sha512.source = "9ee30440400c6cba5726ad3e15e0044fb18b74613237da64eca9e188246193b6e0ac205af9a3e7e1b566503330a85bf6507db7c3ac4caba6c31033f9f87404e2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + listlbls = { + revision = 67215; + shortdesc = "Creates a list of all labels used throughout a document"; + stripPrefix = 0; + sha512.run = "bb0391bd671c306bb34abc336f74e203141fb0b2ae131dc36820e24716ddb5b7a1bfe9650baa5ba4cb4078e6f9d097a9a464aba1022b36f76c3257e25e583979"; + sha512.doc = "773bb3996ee16ca65ef8a91e42e6d1641d42ae50de7fbe4b8324ad9e70d326d0fbca85e245d48bfea137a65f33ffc6e81add6208d239992012ac1851ca12d4a8"; + sha512.source = "441fa4a8ac0e618a997078368794800f57e25545134533b81121718bcec912c1c367b193bf7cb3756102ffad4f75497e63c9cef611319aa478fee955c9cea780"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + listliketab = { + revision = 15878; + shortdesc = "Typeset lists as tables"; + stripPrefix = 0; + sha512.run = "0aead2b70e314639aeb98c199d051fb0701570df0263f452bb2e65408678d437c7eb071c41d8674971e42a0961da30754696a58eaaa41dc32d33ded58a833153"; + sha512.doc = "70ceddb9c59981319ec33fba05c663ecaf549b5dab56f29fa07f9c314d97d999c762ee1efff0d20b5e35b39e89b031458fdde4c5c708e0a1c2dbfdf17d710c2e"; + sha512.source = "68b75e9dcce30acb59d928f4ff95732cd7e37061d31625f8c1835ef6b8da85ef39f4d8ee86b50e299e71cace2ca5307c25641042f325a93a93bd04bf804ec5b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + listofitems = { + revision = 70583; + shortdesc = "Grab items in lists using user-specified sep char"; + stripPrefix = 0; + sha512.run = "d6262c85d8df67b4e85e8d80caf776f723dbf68f71e604c012965ddb1469c2cc3d965f84fe26ef245b6788de4c5e9e5b6f2b97938a0b1c5c67ce8661877a2295"; + sha512.doc = "a1a5cfc935658cd452b08ec422b6530a2d7fa49685b226a27760976ae652fcc0e7c6a239050d2a70aa34b0933b5e5c14c072b6ef7ec294182c274412d830703f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.65"; + }; + listofsymbols = { + revision = 16134; + shortdesc = "Create and manipulate lists of symbols"; + stripPrefix = 0; + sha512.run = "dd32fbcd59fa9ec599b0a06672d2e810b5b8172a96a4170cad03a93be3da21a02a036967d0e7e3a617bad6535aca2b1a34a114c383b5ed1aca22bc45239266d2"; + sha512.doc = "ff8bb87ee326f0b0df175eb41d634d67cf2f1ecb76f1f8dacf2e19d061e54c4f5cf8e01c7e8c41087ca6b69a04f5a3184ee8ee39f00758d3df2f24a4b2e372d3"; + sha512.source = "b232671411ada9bee8e9408ac9f7bb94e57010a39d916beb78d3f04dd1826203b37f8b8d4f040cce5bf0cc6b7ca97eab97d6f764ffe370b09c361a44af530837"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + litebook = { + revision = 70583; + shortdesc = "A fresh cover and chapter design for books"; + stripPrefix = 0; + sha512.run = "46946e4546edce653f21a71689352b8a582f76bd61fa91da3178ac09860a878b38a3fbf72d6a57f6bd94120fe5ded01b598e6516d5f8a2acaabaf6b2ebde4680"; + sha512.doc = "4b91e32193a2fce61dfd96feffc2f7cf5211982d7676c37ed44e32cd03665bce80911f636eecfa6039263875e81f1cf5135b06faae57134d88372156b5576abb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + litesolution = { + revision = 70608; + shortdesc = "A template providing a light design for solutions of test papers"; + stripPrefix = 0; + sha512.run = "15a900b8789ed60364c2c8880522963484d9397f0774c1b945b109c0e320ff191e600e0db7878186444707582bf1411db18145c6ce2545f141be9491ff9335f2"; + sha512.doc = "fe0ff414190a8d2c9bd9752df294007f4681360bdc07cd23547d519e0f7db0972900a2420bb761e28ca54e0a49eeda1d7cb1a2f20f3d3c6eb0cb3e5b09da9938"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0a"; + }; + litetable = { + revision = 70355; + shortdesc = "Class schedules with colorful course blocks"; + stripPrefix = 0; + sha512.run = "a77145b829bfb5ff6d943f11e687f54ccb3abb3784ce9e3bdf145bb66e5c808a46a802eaec1f6932a2917683d64df41cb44b8ec90499a8e93928b46913d099bf"; + sha512.doc = "b4080e8d6243b8e6353f12b090c481cc63fafa7c1c20596467dec79340a8fc1060431f9576d9742c901e45cc1d7285686356bd64cf0d274a7a8bc2c0de8162f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4c"; + }; + lithuanian = { + revision = 66461; + shortdesc = "Lithuanian language support"; + stripPrefix = 0; + fontMaps = [ "Map l7x-urwvn.map" ]; + sha512.run = "c2cd1b54daf74e78e6087159fa827ece77f2dc835eda81e03fce861581e812536292f3f0b70b8bb77107c0a4032d12006e870303156a3f3c7cb653020ed9b97c"; + sha512.doc = "ae7a5e3bea2bd62a0cdbbfbde7e0d9e06554fa4b3bb825b45febed42556fa101fd2e6c611ad9fc1cc87ed5c92540977780fde47ae78a89dd37b70f89c94b5e8d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + liturg = { + revision = 15878; + shortdesc = "Support for typesetting Catholic liturgical texts"; + stripPrefix = 0; + sha512.run = "e97da4e9046fbd60ac2b22bc3753db7a75b5b6aeeb6c37293c5dd1e4e8fffd18b32818b9038b816a405033ff74d9c19ec2443b0169721656af687f1c5d62cf9d"; + sha512.doc = "6b342e85917d5a70dc32461de01ae3c6ac66ca247b4ba3d812b7645f1cd1d961c914e584cabf743bb03ea74cac144ec05b03cc09d0c23cf7bbf4b8ce7d01937c"; + sha512.source = "07bfbe684ae7584cac1dceb3d9012607ee24639a0e4e858d2f570f4aa3c21280bb6116123910a111c729dab794e568c05f8778d3b71612ebc288b0c268eab920"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lkproof = { + revision = 20021; + shortdesc = "LK Proof figure macros"; + stripPrefix = 0; + sha512.run = "58c211cf1ed20b36e69ceffc8568fc1cbdb51cb812af79d16a64cbe8a8e7e672a2d49e672501b2cb23ef72c4a04c59017e17e538061159c8b9e797624f8334ca"; + sha512.doc = "01c3f1b50147c73294dabf83d79811862d4742f5a76f69ff6f6a1d5a2b0a8462e3728ba6e4d6fea57d3703c638f6cf04568948d45d4ec8d1dfe59571ff2933b6"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "3.1"; + }; + llncs = { + revision = 69629; + shortdesc = "Document class and bibliography style for Lecture Notes in Computer Science (LNCS)"; + stripPrefix = 0; + sha512.run = "0c50b5bbb2a6c72d61fdac915b1918b76323b715f71ffe42e1575d21f5c3e39fdf0b802c3d139d07894b4ec351a779dfdab53834dff83e09cc20de07736bb031"; + sha512.doc = "be33f338c2243da8c20677c485be4de3a9287b953137e00a5f1b7b04fa9a9c452cd32b5b5adac55626ab84c36d065c958ac505f4a63da32c25cd26ab5f69f2a5"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "2.24"; + }; + llncsconf = { + revision = 63136; + shortdesc = "LaTeX package extending Springer's llncs class"; + stripPrefix = 0; + sha512.run = "ded1d0ad62120e6665653575e6641a9bacb1fdd18b168f7c4389e2d8bbca6afa8cf15bbb7cf087f2ba502f85bb492dfd5d79862e03d909227666af7d8860d47f"; + sha512.doc = "1fc61aab273b9ba1ffaa95cc2716f36d61bc5d7d7c03a2470e3dff5fbee20dda933e4a38e5b39a7e165f68408f993de693ba5547b673e9faa9e5115358c9bfb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + lm = { + revision = 67718; + shortdesc = "Latin modern fonts in outline formats"; + stripPrefix = 0; + fontMaps = [ "Map lm.map" ]; + sha512.run = "9e05642ab07ebe05c13d5fa98f3212527aa66a9d049f8eade506cbd9f0652315363a01ae20a9df873055e5283bba7574d51251c7dd86e56ebc37055b92379421"; + sha512.doc = "d15569c1f55553b068b8d3a73efdbdb74137d02fdda5db5d57f29203dcd92dea7746b73a3f30293b2932f046e60697ea015b83d2587cde2783300fa41967c5b0"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "2.005"; + }; + lm-math = { + revision = 67718; + shortdesc = "OpenType maths fonts for Latin Modern"; + stripPrefix = 0; + sha512.run = "2fad475b347824d564525de51ed5bd1cc7ab2fc27fd826a00e86ebabd7d85afce2f7a4c85d9620c9b66d14ea0c813a269a13843a0b27eb7d0ca3e294114aad26"; + sha512.doc = "fb1800349628229dd522d4dffa182ffd2bc9411803f5b349c88f4046d81117d050a3b681e3021a514a6ada5bc49b648b8dda8b553f9294f6d4fc317db0cd5990"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "1.959"; + }; + lmake = { + revision = 25552; + shortdesc = "Process lists to do repetitive actions"; + stripPrefix = 0; + sha512.run = "3613e9d53808b2d1e326175c28acb672c1f244b2e00ea1d544e1e05c73e2a93e49b5e8b187a8a73e87ffbb00c22235781983a2c0a733a6ae5598db12c278a763"; + sha512.doc = "08fa487d9151ea6a49a73044d1f6b41ed0c636a69e04a2c9f04bce996f915e9d267383a6fc374f3292c01244981fdebf6d9fc462ee0fc151ded2601e4554593b"; + sha512.source = "d18894108d2b4b5d46d4e212648b6c7d76894faf4dd45555371d17df5f6d186d4d2b5c8878e745520441eba2459c5fce320bef28e23bb59c09f01fee44a6041e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + lni = { + revision = 69361; + shortdesc = "Official class for the \"Lecture Notes in Informatics\""; + stripPrefix = 0; + sha512.run = "5b091deac5f045af63d4351abfe70e28343ee46fa9e9c62d2cec409b0453b1c391a07abb743be24c8d01f8e5063964574ee684beb7b91126da55fc8e0663a831"; + sha512.doc = "da89225db988132af56a8f6be0330e5ea761d1a8da1237c966c3b30f91c776e7e2c118e8aacc843c23f58d3f514c5e0cc6c2d06a689c886be90f8d309215095a"; + sha512.source = "e02d92d0878fe98ce533ad9fcf058325c7d82f9548cc3211d34ba0d9d83e515c41cc77f588455d589b50ebc41358ecafe0c84e501ac60a402f8d548a1fe87671"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8.1"; + }; + lobster2 = { + revision = 64442; + shortdesc = "Lobster Two fonts, with support for all LaTeX engines"; + stripPrefix = 0; + fontMaps = [ "Map LobsterTwo.map" ]; + sha512.run = "ff9a64e40eb1e8d19ed353e4c6e46472f48eaa057a1283e8203eafd895cc622c031a849cf2cd941a664b07c4acc0e9fa18ca65acf6420cb3d40ce09c6ab6f391"; + sha512.doc = "a02034161dcd7d09ab14d907fde0b4cbc570ee7e13fc1945e18c71eaffe90e5dc039266f0ac83dd7887fa1e298add0d2be9e4259cb58f6dbfe13b7bce228ab8c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + locality = { + revision = 20422; + shortdesc = "Various macros for keeping things local"; + stripPrefix = 0; + sha512.run = "c7fde4ad74b339d340a046a4f59ff73da45942631c6b68275d365c18ee80b213d18b84540b8ee535f012aa18ef559e88b1df3fcff4560d241ee1147695824a2e"; + sha512.doc = "5b7fde689fc764dc75930522416cfeb51ec30eec64080b289c085be4b00a0da1c5d6d79d2734502ca8a329bc2935216a8b298495e0ad1ac8331c6d3a5718bb5f"; + sha512.source = "bb1e55107d9b16460b8990f35461bbe775c674ecb2dabb78d19514e365cc97f0b03ad5884b310edc60f2fea9366ee2633ddf4280165cab562038e024ea9267fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + localloc = { + revision = 56496; + shortdesc = "Macros for localizing TeX register allocations"; + stripPrefix = 0; + sha512.run = "abd3aaa28d6c90182990890ebc8aa0ab1d71833549e9a1ed9a09d7fc2db01cad45efb231cb8d3b09a849c948a6f7ba309954d38152af88fa8cd3e38cc857fe68"; + sha512.doc = "40fa07b0d5a5fe0603a087ce9440dd6d95ab188b83b4adf847d7145f9e1f1cc8e2d8ef49c7ee206e341db26afd885308ef349ea5a8c2b826ba6664c347c7d8c5"; + sha512.source = "9a19531358e4809a90c1e571a8f7c507ec1b0807a009627ad2dfa3ebdf97fb749a4f57441b0855e44cae93ccbdc64e79b640de078fb9ccdca1de891a2d156eae"; + hasRunfiles = true; + license = [ "free" ]; + }; + logbox = { + revision = 24499; + shortdesc = "e-TeX showbox facilities for exploration purposes"; + stripPrefix = 0; + sha512.run = "0c6f9d401c81344465d6eaa6eb6e655443c4af1622bfb6751db508638e2625aba7b5e77780fbb6453eee40b8a7ddba84d70ceca8882049779db61f83e7a15aee"; + sha512.doc = "21f379c88638ee8499e7e47abb0850822a08d520aabb352e0f85ed0c38950aa71b4f9b3d430c31193de5640a915d0c84dc28fba71443d3f2e461a2dac53e2b9a"; + sha512.source = "3123ed1fef39d4a252159c65e0cf938933f2ab4c693d8f7364f20e60accb20e32fcd9da8828019a8cefae1fb874605ffbcf88dd7123fff91871858cb5694a985"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + logical-markup-utils = { + revision = 15878; + shortdesc = "Packages for language-dependent inline quotes and dashes"; + stripPrefix = 0; + sha512.run = "87f7fc345935804705ab25ab010376fb72bc4722c75bb115b0c9dd0e0a51fc8bdd6dd4051b76dd083ec07d80b8c59c5d18423da55e0430db7a9f94ad0bd45906"; + sha512.doc = "80c44068a6e474071e40a0bf3dc67f0201b21eb84a041fad8423c59c9e34ce138833c54ead638979357dc3026eea55da034daa05e71a56ecabe701ebf53faf24"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + }; + logicproof = { + revision = 33254; + shortdesc = "Box proofs for propositional and predicate logic"; + stripPrefix = 0; + sha512.run = "d5b15ee5f35a9ef94618f8b092e97ccc4f1959a617c2e604b99ba56eef14c4a1a078d66f2c77d02239289e30878293ea6c9ff4134bd003331fc41fd3db19cec5"; + sha512.doc = "bf8a33c5db05a30cb4f520fa2f73f572a90c3803c4b6dc1709f9e2c80f67e32e7665ce898852dedcd3daa8974bf909034d06f805ce473318f0f512645ceaf9da"; + sha512.source = "4cde464059a65161c6ab069ef0c8905e4e6cefb7ebfd8c7c3b2af909209af4a911dd1bb0daee5b27868305660601187fe7a105660b395de98ae3d30864f012ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + logicpuzzle = { + revision = 34491; + shortdesc = "Typeset (grid-based) logic puzzles"; + stripPrefix = 0; + sha512.run = "2c642c7aa6d6f12e51228432f8bd9fab906ff4dd3354a49f636582a065bff0f534222161ce11306ff6bf3e354a9ca6f6394cf9826b321ac94e9ef5ee8c0621ff"; + sha512.doc = "872a72ed13f7dcb43df3bd2f2b7bd504e3e430030115faadf0a130d2fd94331a335c4853e37c78e4b8aa7c59a44bfd87ad2a484b1b836c2a7526b97ef26ddd56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5"; + }; + logix = { + revision = 63688; + shortdesc = "Supplement to the Unicode math symbols"; + stripPrefix = 0; + sha512.run = "29a2701ae91a5d7fec49e564b90b8a7e31374d2218680f4fa0c65c9df6dadae78c6599977e88cbf293fe2435d8b7403f41748abfb1cd5f9b00e94c76ff43e139"; + sha512.doc = "7b655c727fdb2775a0d980bc54198d1b2c262842fb278f94caa764204022f8da4bdfef8e40a8560359e6fef23e28aa97da4c08a44c80140ed337010d47173eed"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.13"; + }; + logoetalab = { + revision = 68916; + shortdesc = "Insert Licence Etalab 2.0 logo"; + stripPrefix = 0; + sha512.run = "1b3f01a1acc23b17e30185b3bf2b4e965d047bffc7d87649a40e52e4fc9de36518e82335055c66f221cf10b7c6a1cfdf9f51641f5ea945aa0f7d7efd76780fac"; + sha512.doc = "93e17e5c624aa8a6f826294fc33de8a66731020696525821f4e14a5bfe0f3033cb6ae21abef41d408e627a6ca8d6e12ddfc7aa30d02152e6aadef3fb88fe92ce"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-20" + ]; + version = "0.1.1"; + }; + logpap = { + revision = 15878; + shortdesc = "Generate logarithmic graph paper with LaTeX"; + stripPrefix = 0; + sha512.run = "159876dc23e96f65fbb29278e30baa497489331fcf52ebda2adcb19098c2519044ce54ee590c3d91f80bf27b6df0a49aff455da54748c3e04c7e81c2be108e4b"; + sha512.doc = "f85a52b9d95247ce5eb537cc677aff184a434a41fa9c3433955b43eec3e3cf2deaa701718fe77dd3b3cfad5811c5275a097d980e157130705ad5cd3f14276dff"; + sha512.source = "c6c2127c2789c2717072d8d08043ac73a86248d71dd542d38dcedb3a36947f7ceb99f0246787e279b22fa03dea554a6afde6438ffda3fda6143027a7e6f1d78a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + logreq = { + revision = 53003; + shortdesc = "Support for automation of the LaTeX workflow"; + stripPrefix = 0; + deps = [ "etoolbox" ]; + sha512.run = "df61c0c6c0b8520f5ec38780d8eb69cfd5fccd21f5120e48eee71e02b004d3da4cc9cb9371a36766852e3ca09a3db86655f1a2639a49741f00134cff1246acd2"; + sha512.doc = "fa9277da81dfb3aa235bd795780e8d3e629558fede90fa9234528b50a11507e59e65e49a0ca787af037186890392dfd45bf6de7bd859cec369626fb7d57b543f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lollipop = { + revision = 69742; + shortdesc = "TeX made easy"; + deps = [ + "cm" + "hyphen-base" + "tex" + ]; + formats = [ + { + name = "lollipop"; + engine = "tex"; + options = "lollipop.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + ]; + } + ]; + sha512.run = "03a780145d4e761f3d494ccc54117e2f92f1c32b8f35a88a77b3145442b040c195b2bae10aaf39557530e548961230c7550e25ea77472a8b0e272f0e72609a8c"; + sha512.doc = "3ee627e18491a48c58132b85cc1079b2a2f857b9453cdda113bedd7c9393f04e15c6215e6cbae99fe3d4c24a297d230a687e3bb7aeb67cc45ef105051838c6dd"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.07"; + }; + lollipop.binfiles = [ "lollipop" ]; + longdivision = { + revision = 68609; + shortdesc = "Typesets long division"; + stripPrefix = 0; + sha512.run = "2f1f1e6a6b93266a1c6e1c3fbc33e4f9719b6ed06390d2e277e811f429f0b71c3e3133e2e406b837c109672b725bab29534a8e9c9b380128cba6901d5082c53b"; + sha512.doc = "8314b4fd0802dc541d640a706b0bdc3b10f909365372ad9432c49e533f95103643c1171038b7f346b9f92688d27338e81fd5c803070d99f10a61adf690ee6389"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + longfbox = { + revision = 39028; + shortdesc = "Draw framed boxes with standard CSS attributes that can break over multiple pages"; + stripPrefix = 0; + sha512.run = "43164941fd7ad91fa304aee01c3d34ec1faf8672549ae3b2711bdd4c91ae57ecbdcd8b29080d6c96cc64a73f7d7fd74c8621a70604a29dc1474f3c922c34a4c7"; + sha512.doc = "fb319a679631e56122535b99a187d3c2ad5400d4a1f00275b73420c43f98e8b421a4b86f77b868c68edb39870132117de3310a00bde82f6387559c6adf34a8a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + longfigure = { + revision = 34302; + shortdesc = "Provides a figure-like environment that break over pages"; + stripPrefix = 0; + sha512.run = "984f10c8a2196b490dbffb015f2aa6449e8db6475c2f02dd71c92d5a3f6cb5dccb98a4c4f923f6efd3bbb1056aa8e64f324e3d8a051c11879677addaed8d3f06"; + sha512.doc = "1f949e3ada113710f40b6d2960bb01ffffd3f9d26a65fd0482644da2a20c5375454c430e1c7d3b74cf872cbe486ccab9a4e71567592da5d39ad9e72102c382db"; + sha512.source = "03d73c0d0c30d0c69f1fb878dcf843b26480c5005d88034e6f09fce485db3cf249240f2e39f591acd13556cf06677bd567857ceaaf96ec9cd0178f8216323be8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + longnamefilelist = { + revision = 27889; + shortdesc = "Tidy \listfiles with long file names"; + stripPrefix = 0; + sha512.run = "1d16ee9c76784c5124de3abe62b6e916d0f65e979a18a721ef688a960e5d20382dc976de0b68d95c47e9651ad71a67ca97a828f1bdfba8e4a77ac084d7561386"; + sha512.doc = "d909908d763342790b8ab56d333e60d7047894472f3922a2554581a5455539845af72d3867d0a55f5a27e982aa8128ae1a948f40e106fa127f2d01156b55ccf6"; + sha512.source = "af1383755b422a3bdbf7af7437b732a39aaf666c7244e75d498b1252d3644e58a18115a744c4b4c7fe1433f415b40886868faeb064b13647452d444f64fd6f9b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + loops = { + revision = 30704; + shortdesc = "General looping macros for use with LaTeX"; + stripPrefix = 0; + sha512.run = "60ee6999e43ba9082c5a283dac5a930c9075b24f6bc7cd3f719b0336b01dfcb17fb2d5e3c82b9f1636c9bb3e6c923607a3d9237d08fbaf17bbfc1196d0a75281"; + sha512.doc = "9d70b3ae88d64bf2710157db88113224a95947aa03f11a2eb659c61109a451e2a93b2aa5ffd6ce9cf2f1b5fc8e0ef815850a0a9f27c7ec5ddbfbff1fe98ecaa4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + lparse = { + revision = 65693; + shortdesc = "A Lua module for parsing key-value options"; + stripPrefix = 0; + sha512.run = "a5f16ff6e4b9ad5ba247205952a1a2b6ec26ea3f307e7e61527b8c9aad860b0d3cffa4166a4fcde56b2d54f3ae1f22bb33bb892c90f896015b0fa4cfc73a13f7"; + sha512.doc = "0c08dc7cf19169e33ad0c4695dbc2a5ba6f16bb328879d2ab9ffe3cfedccaf65499ec0865783947a7db873b20f573e4443368d39d5ad7ef959b3f24770ec9c72"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + lpform = { + revision = 36918; + shortdesc = "Typesetting linear programming formulations and sets of equations"; + stripPrefix = 0; + sha512.run = "91d5748629ad72ca421834ffc61c13f71240bbcaedf9f0e4279bc6aa0bbdc817f093c24cf5a9c50d5a4a132208969bd356642fc5704ebd5c4ef2b7eef23f27ac"; + sha512.doc = "92ddf3b473e13fe8b77ad955d55acbe7a6da34381bfaac78184342a900f2c9bb1e0981d5ebdb440cf0f44affe2eb0dd862f9b51d2a40c9abd90f1dbe81584c9d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lpic = { + revision = 20843; + shortdesc = "Put LaTeX material over included graphics"; + stripPrefix = 0; + sha512.run = "d918fdc8744a9f5e0d24f6ba4f19bbc4cbd9a5ba4b3c559ab1321c36a9e3599ccf6ee849bd7f2ef6c3156cec6e526a44d27bc033b7dc5b217e289fdbff0bf149"; + sha512.doc = "307109b75129099c191a65a7632ad0cbc903cb2b621b199dcceb7cab5ab5ddeff7ee504d7da3afd653e1aac04236efb6a3c1225f9e533a777295052bcc28d2ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + lplfitch = { + revision = 31077; + shortdesc = "Fitch-style natural deduction proofs"; + stripPrefix = 0; + sha512.run = "189b9d6000d4b762a3c64652bb05f9465d5c789b7e2413e8f0ca281a8d4729a3044aa955ad7eb82c7b8513bd547bb76c2ad2b609e902b07f8f4f018698e17071"; + sha512.doc = "a690ee2c1f9cf5eb36693a4a9385c047a31d29387930211bf6384d7cbedb3d1f1696c0c04269b02ef29b13ebccc69bbc329772f3fee209a1b1d51768484f9a50"; + sha512.source = "b06b45d992045111d1a8aed78267519f8b959415b00b94f75602b35cb7d37c47092e726db881d9094e82d3e25492513db66b210603730f8119d10e60819ec89e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + lps = { + revision = 21322; + shortdesc = "Class for \"Logic and Philosophy of Science\""; + stripPrefix = 0; + sha512.run = "8bc59b5d8874fca88bfe62822f2050f5dee0461523d853a1c92a051e854ddd6a8b2ce235a674bda383f26ad01d6e18a83cac87db2ea73b4af7e22e74ff823d0e"; + sha512.doc = "a8ad542b5d2c28a9a02b5e4d4a43a13e2f3469512cf7264eb7ed78e2c5a29228531de3be7e84e557e3cc8a9ad60e59ca426da3d5e034dae6b40088ee99d2fd94"; + sha512.source = "d1ae82c4a55280183a85fb3eec77306990f694f85c5d6b543b4ce4bbaf87a01b7fae2d6892bbf23587738079be503ac94b6a68b372ca1948863ceab826975a85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + lroundrect = { + revision = 39804; + shortdesc = "LaTeX macros for utilizing the roundrect MetaPost routines"; + stripPrefix = 0; + sha512.run = "6e4968db6d4593fb0ad66c58b7977b77cfc5ad29a8ae8648bfa0f7844d71a809e0b381acfa4563cb1795177374963ddc10e8fad8a62c1523ea82288c7bd02087"; + sha512.doc = "12e6bccf3875f4045558df6e274a13f60fb7845a998de2e8a722168cbef2d9003224f02e379bcf0752770542aed15ec1d1e680a54e347763b554535ffc2e1042"; + sha512.source = "cf39670d2c17420b2283be3264b163f7d4df70288b6c974674cb0ca4d52e3d7f99766f9f0c5b8636348aaad2ca851d1c4b3d530a2a85567a1bec2804ac5d70a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + lsc = { + revision = 15878; + shortdesc = "Typesetting Live Sequence Charts"; + stripPrefix = 0; + sha512.run = "f61d81a49c25972e03120cbf6557d356d6df6937af6e0443e47305312485217b6bb5c0818adf248fb860ec5d42c07fc22fdc0c54f9dd1f3bdcb12486350316da"; + sha512.doc = "5d0550421ee0657c378cc1ad8159e16e43644f533e3d8a013d917c494bbb8d11cba79b99fcaa7bdcf8ef5f5deb88d144ed64d75a5682fe4c4187c60c634297f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lshort-bulgarian = { + revision = 15878; + shortdesc = "Bulgarian translation of the \"Short Introduction to LaTeX2e\""; + stripPrefix = 0; + sha512.run = "b528c16903ca8ed5ce69f5e2397dff8f05b13016384bc1304980cad71d86bbb55004d41db92dc29dd412a12b9a0a1b1ea99afcbea621a25bb20da4639d008776"; + sha512.doc = "7cd22cad45d7ef2972679cf2a3653c3bbcb1d9bcfe94a65fb9dac23760de05b659470ca45cf8be13513924fa1cbb98599a304a51bc18f8f4d6631f082e662bc4"; + license = [ "publicDomain" ]; + }; + lshort-chinese = { + revision = 67025; + shortdesc = "Introduction to LaTeX, in Chinese"; + stripPrefix = 0; + sha512.run = "6d6ac34f79c3d5447c1bbd7f2c87071a92867bd770fd023bc4d6fb48500d27f1b1a8706a727b0d0a7b47eaa9a639c6b5a691b7d21a5e178eb79131cb4bd75b6c"; + sha512.doc = "c220f086c2e0c9bd52ba3ee1eddd2afcb0aaed1c4fc4b9ebf854ce57b4720df7ab3c5475f3164cf740b3020c14c5682e1798e43c8ad9e39eba596a24b04644d3"; + license = [ "fdl13Only" ]; + version = "6.04"; + }; + lshort-czech = { + revision = 55643; + shortdesc = "Czech translation of the \"Short Introduction to LaTeX2e\""; + stripPrefix = 0; + sha512.run = "dc967aae970e535c5dea48264c30f01d5ff3521851abd718905b78497c3d95d403c4f1ec8633cd2a7a55fe0a6bc1e1523391b214fbb8a0e2ed03737b09080e40"; + sha512.doc = "10de238b8152907ec04834d6b4737cebb13bd6567c9867e19e2003d123299c733012569cd64a66d31a79894f9b37c1fc409cd5b76ed10832762988fc318875e5"; + license = [ "gpl1Only" ]; + version = "4.27"; + }; + lshort-dutch = { + revision = 15878; + shortdesc = "Introduction to LaTeX in Dutch"; + stripPrefix = 0; + sha512.run = "c8635db5888817d392706b8b65aa5158a4973cf236dad7fe31a9545857daab15a6c1f2f82ab06e71e50a4af94824b17ac89c394a759721e192966a1f78433d47"; + sha512.doc = "29fc8b6a2645f241e8af437de3a295be8d56a088bd7c7666c35b14f104f242e68ecef2757d62a393400d9f337eb685e48ebac06769259c723d634312a7288ab9"; + license = [ "gpl1Only" ]; + version = "1.3"; + }; + lshort-english = { + revision = 58309; + shortdesc = "A (Not So) Short Introduction to LaTeX2e"; + stripPrefix = 0; + sha512.run = "73e7cebb51b9ae5ce2c6ddfd191a1d7e5358e5a1bfc61ff8d921cf0928e2cde839f232dae6cb0d9dd1b05df907c8c56c3f72a4d89917a6930762a46e1b1aa286"; + sha512.doc = "ab6dccb0110d7033a36d743b9f8132ec5ab4a0b4b334ab7800dd68f9e65bdc7de6c5e766fba6a7a3596d3fd8d6a3a16299344fcbfd67585f1fbe5e519876d7ba"; + license = [ "gpl2Only" ]; + version = "6.4"; + }; + lshort-estonian = { + revision = 39323; + shortdesc = "Estonian introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "6bd3c07c1e5f9d543b0f67a5585cc33252567cc346a8d7feca050baf8ab437be97e73d2c4b4b159102e9c4772f8cce2abcbc25486d73e976b83a3d2f4b9e9487"; + sha512.doc = "e16397fac3e6cefa699b412ada1851c7792520da8af1230274fa1a337b890629b68f71d94b3894044f28e687c6aa60d766377e12232d0e522e82e18dc97428e3"; + license = [ "gpl2Only" ]; + version = "5.05"; + }; + lshort-finnish = { + revision = 15878; + shortdesc = "Finnish introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "997db393d16942e78e4f52eef886ac7b14cba7ec3fd0c88f8c2cc74fb6b35f3802c58c51ac0112cc2b086f9c3b965b5f8d508ea81a36edb7da1ce84ef83cd203"; + sha512.doc = "71c2e5c4d49a779f529a527cda5fcc6e55cfa0149fc2d9272ae7e69aecf2a8a361b057bcfdf5deaa7791073bc6252c3101f5ce0b8d231c779e99c34910a3343f"; + license = [ "publicDomain" ]; + }; + lshort-french = { + revision = 23332; + shortdesc = "Short introduction to LaTeX, French translation"; + stripPrefix = 0; + sha512.run = "1b2ab00e9e69eb058afd96c1ed099b8c783bb97bb52411cc907afcc82d43167ad6e2023a95671e90d059ee43ae335dae3401cc0d1b53c19c186992756aad5060"; + sha512.doc = "2974f067584486528adf42a13cad28afd205f2f52680e89e8de33c4c0debdccb2d0d9d8259d6e2adaa5f86af0b9451232450d40ffacd9f63c43af2519cd8a06a"; + license = [ "gpl1Only" ]; + version = "5.01fr-0"; + }; + lshort-german = { + revision = 55643; + shortdesc = "German version of A Short Introduction to LaTeX2e: LaTeX2e-Kurzbeschreibung"; + stripPrefix = 0; + sha512.run = "c937bb8da86a3ef6d428d134903bf8af74a286d644bedfe4766841b2b5234b34e2caed70460ecaf7a1b1dc57f1faf1396435cca7f714f84d75f15acea12e79f8"; + sha512.doc = "69cebdd6a1444670a154d5cdd199022f6f1d6612b24b05fc8dc1e9f54a89fb65cda1f545341cd37616dbf6dd94077ccb924bf4b49f1473e45eb0bcd33f5f33a6"; + license = [ "opubl" ]; + version = "3.0c"; + }; + lshort-italian = { + revision = 57038; + shortdesc = "Introduction to LaTeX in Italian"; + stripPrefix = 0; + sha512.run = "05435f3a1af4c589267f1841e9af267fc12e2a3fe5b3ea2c586fd352f4a1184f1fc4be408780ff6db1b9212e1e4d1bb7263e3b35e7be9358e97e1712e9abcd6a"; + sha512.doc = "6caa8b7d2795779ef010c0ef9ac387c73b15715929557a6227e0a8112f4d99717ad82fdcdf8d1fe18ad5ea9b502ed559bd7b44f73381475034b481eeb6ab1c9a"; + license = [ "gpl1Only" ]; + version = "6.2"; + }; + lshort-japanese = { + revision = 36207; + shortdesc = "Japanese version of A Short Introduction to LaTeX2e"; + stripPrefix = 0; + sha512.run = "25de64f37ca5811ce39c8efc3e895c1deea317c8dd02ac3e091a41ff11ab7a4730a0e476d323d8375c41fd60401cf441c2c15d614a090092d66413701500d43c"; + sha512.doc = "83292d42fa21614a055420eeb372ae5cf21a9a15b999e0b39f1063f63ee7fe53f77ce771a8aa649e860827214138fbd435161cb3dc4b3fdf2b75775979d904cd"; + license = [ "gpl1Only" ]; + }; + lshort-korean = { + revision = 58468; + shortdesc = "Korean introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "3050ad46874a78c36d8bf247c00e2369c18e122ec89a36b0423df290ba8e06e9c5dbd1d9bba5485e370cd73dc500a6d2415b3d8f6de0eabb3932b9ae5515fb8c"; + sha512.doc = "6789054257f176828b341fe9ad258b1f7100d2fc880aab68244842317b45cea872ee49031ad2c1d376011772fb39d2ef05a700f962279f5ce3a286270b77ee1d"; + license = [ "fdl13Only" ]; + }; + lshort-mongol = { + revision = 15878; + shortdesc = "Short introduction to LaTeX, in Mongolian"; + stripPrefix = 0; + sha512.run = "464b6638ca4bf859ff178238625ecdb7016598fc98c476d3e4b2a24e2f34e6096edef5864ab325ab4df21bcf309a8467deda80b385b624685b38b538a0d40b8d"; + sha512.doc = "cb60632992b187e5cc80973b9e9848675b464b075b13356db171c1a7613c94dd9bf8ea53df47e0c36c910772316f4c43857c8e638819d8ece7c1ce1790fc9d29"; + license = [ "lppl13c" ]; + version = "4.26"; + }; + lshort-persian = { + revision = 31296; + shortdesc = "Persian (Farsi) introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "6430462b11786fe3703e78efc9f1486da78db15601ae31e72a95d516d10a098c8b4c5dc9079490e652c57369698d3b4fe4d75b32c44ddd2a470aa5cbc79ab492"; + sha512.doc = "9e7c43f3df8299db4bfad3c0b270c5b54a1448370e6782d095dd9a9b82ccc186aae98da86b2efe71c34031a5f4a07f54f4640de6d8b6fad913252979d440ccd1"; + license = [ "publicDomain" ]; + version = "5.01"; + }; + lshort-polish = { + revision = 63289; + shortdesc = "Introduction to LaTeX in Polish"; + stripPrefix = 0; + sha512.run = "c61289a35103ecfab025169d432be2b3c7f2fd4ff1eb094b345feae6c9a30bd2cee70e0402eb6c2ea330254cf00d04c02649a40d6bd011f9cc612521c88b94a6"; + sha512.doc = "abc5162a490b9646649dfdf50779ab12632eb3ddc6d1c2bae93a4bb00ef1f9387bc8d873a7b5c062b92a999c9d62b74e64b1688dd3582255f7386958649ee009"; + license = [ "gpl2Plus" ]; + version = "6.4PL1"; + }; + lshort-portuguese = { + revision = 55643; + shortdesc = "Introduction to LaTeX in Portuguese"; + stripPrefix = 0; + sha512.run = "70031c79e7124b9c839571fa95d8b141035a0d8f79665f1e79df8a3154b81f0a7f8b7d371cd00cfec11c141165ca5e1fb0e1cbbc4d0de8c52cc5e0b77c885f5d"; + sha512.doc = "19c55e5547d83fbce705121dbb09fe329c23cd42c1cedb812cc282bb447f9cc51ce0861e61a984e2863103a2bccaa6a4c7ffe8bd2913637930e42747c6947b02"; + license = [ "publicDomain" ]; + version = "5.01.0"; + }; + lshort-russian = { + revision = 55643; + shortdesc = "Russian introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "d6641dc4f19c740898dccc357aa1004860952d0a2add37c6c37fe69ac222dd8396e506ff6a00ef98f77d8cdcea2287c96258214159f08d8b63184eb014ececc3"; + sha512.doc = "b991cb5fc833446ab36c82beefa82afa026eda6b1084d99e6c4525687b82bf7c2f64f9cea38d244065cecf1b12a00331d4e70716880c5bf2509add05257accac"; + license = [ "gpl1Only" ]; + }; + lshort-slovak = { + revision = 15878; + shortdesc = "Slovak introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "bf3821d0846701c2e45d89578625f517567d401d613f5aa7aaa4cdfdf8c4c4f87abec22d6fccac21b274afdba9c29c21a6918fabef77f4cca506071341b7cdbe"; + sha512.doc = "8ee79c17e5ccc9dbb9f833b4f8927b22e7ce368f49f4d016fb936d2a5ec964791d9473b679a037d704efb269dc6caa1344168927a90a8e859527c64b0410996b"; + license = [ "lppl13c" ]; + }; + lshort-slovenian = { + revision = 68204; + shortdesc = "Slovenian translation of lshort"; + stripPrefix = 0; + sha512.run = "b053e42404063ed3275363c361ec85de69dd92281070f0c88afc860cf2ac07b3fef1a98598ceff52308e36c9f2b5e6c406df591481533b80fb0258ae20f32ca4"; + sha512.doc = "851951cd5822f257ecd23d73901d833ba6067d3860002a4dd4449f23d5e7a50fa97ed579f5cbab8bc9494801055ef8f23f6f3249d9f6843a28f7da1b4f15409b"; + license = [ "gpl1Only" ]; + version = "4.20"; + }; + lshort-spanish = { + revision = 35050; + shortdesc = "Short introduction to LaTeX, Spanish translation"; + stripPrefix = 0; + sha512.run = "127fc2d598f16d38b075b4a9668ded064537f7056aae34bdde22f89aa8d301d77cca818976e22aa036f47867929d30cc47e02ed3f724ea26279ecba723e5baf4"; + sha512.doc = "f968352fe1e32a918c1d5ebfce16d3975c436539349af22b32bfae1ab06061ac2b2b85feaed3e8a28da89956f4d5948e7d1a6426766144b0c0ebec72ecfe99cb"; + license = [ "free" ]; + version = "0.5"; + }; + lshort-thai = { + revision = 55643; + shortdesc = "Introduction to LaTeX in Thai"; + stripPrefix = 0; + sha512.run = "e81deefb7fa47e336a6b9fc363fa75c35576fa40de1771fff207dff22106b33d185c267d76a3897f2188d2dbdf9d2b93a1caddcdae38eb770cd7c5d6f1ccdbb2"; + sha512.doc = "fc805e2749305cff0164ccd8d0b043d26731fd6f39e19c0023c87e4812f8509b923d4c1a97594563394dd7bbbe4a99d3b25aa37366f6e5bfb3cc1c2aa21c0606"; + license = [ "publicDomain" ]; + version = "1.32"; + }; + lshort-turkish = { + revision = 15878; + shortdesc = "Turkish introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "769036083d282ab95c5f1fed08d669dd4fb1d2dd7937e5a4e2fad54e20cf56ce3d5100b7aa612cc59dca50b6ff67fbbd5bbe05c085b6121654f873fcb991609c"; + sha512.doc = "3aad40a5de5eee9e59064b15fe3e9c6a2585146fc21fdaf4683bfcba6786366c4ff1b3c38b6932426f53a6a9211809d4173f688f0878cbf2011d8982e3732834"; + license = [ "publicDomain" ]; + version = "4.20"; + }; + lshort-ukr = { + revision = 55643; + shortdesc = "Ukrainian version of the LaTeX introduction"; + stripPrefix = 0; + sha512.run = "82600643c91120d732d50dcc6e14a4b4b4c471bf6c0031890487215d952cbb9675210f11fc40b039aff529bef90282d432966ef9547fc7d0272f85c02a288f4c"; + sha512.doc = "f707d0491bb6a246243035d1cad265787ec4aeb7cbcc73e3500295dc67bf3a3a06b316f9f82d559502b7f108ab636b90fd01c3d1b0ee5f13fa3418910557c8b3"; + license = [ "free" ]; + version = "4.00"; + }; + lshort-vietnamese = { + revision = 55643; + shortdesc = "Vietnamese version of the LaTeX introduction"; + stripPrefix = 0; + sha512.run = "6192e85537e184137189771d2180f1760db5930ad5a8c3dc8788ab5ca502a92b433224b1cc1afcc4e2a493fd17d4e4c43edbc84e4893ecf0770bd07579444eb7"; + sha512.doc = "a0bad6d83fbc288ac1f39bee6bf1cfb3267a47852a0860f56b8251b67b2dbcd526d203c20b91f7adbe42034481255e5e3128b525e49f8cb341f18d9fc2407e14"; + license = [ "lppl13c" ]; + version = "4.00"; + }; + lstaddons = { + revision = 64967; + shortdesc = "Add-on packages for listings: autogobble and line background"; + stripPrefix = 0; + sha512.run = "ad18d38c13dd5076a9213d8a6723b069dd75e546919f106be54a26cd63c3a4186fefdc463e52cd926e85c8020460cde516d12e900c51448440bdc165d4312f19"; + sha512.doc = "38a3b1cdea124cf0cf0951fdcec168b6baa33cec75924687b0a49c1c9713cda847ace0b8bb01ba60fb8945ec2ff421678cd501fa6f5a446ce2ccdd15b2ac34d5"; + sha512.source = "4bcd82c3b8178b1b4ab486fe8e0cb9393ccbca4612bfd7f7507213cedffe8ec92753e16f647eaf28f6a69fc0bdae655228bcae5fe5f1dad2c62c753433142601"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + lstbayes = { + revision = 48160; + shortdesc = "Listings language driver for Bayesian modeling languages"; + stripPrefix = 0; + sha512.run = "8089546f54a849fdd2b8cd1bb2430927a03249f1acb72bd9d37e9ce42770be2413c6ba8186a45eda8f52a3ba2f34e01e6073ed7acce5883d9407e4ccd86cc12e"; + sha512.doc = "9e256d20493164eb1ed01bb6f7dc7f555d9617492fe14688c0852b85e27c1f8f7f1978b1352ea3294bea41f77ce505c6a5bf2910514240e62ce19c47c8da0ee6"; + sha512.source = "9378291c820b65d1f1f126a47d6db40ad757009d71327f84e5b78fc4309d77272231cc892fb6881426130d6571b0e7caca7ee910117a9e2660cef42f6f0d7827"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lstfiracode = { + revision = 49503; + shortdesc = "Use Fira Code font for listings"; + stripPrefix = 0; + sha512.run = "d2752c177194f4926191245f6397ca1ad613e66708e245b29ed6719bfb7438cbbde8dc69a639bdaf7a4447d7737909a5dfdb465a0f0b446c0d30900b7d279c6c"; + sha512.doc = "ab396312abc4174267184dc2d5f4dd61e4510d3b70bcf1b6b84685cbe2e5941d6325d4abeb1d08f85cef62adc953d4a59ebc5d99fe9d7c643f7d25c3d36bfde7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + lt3graph = { + revision = 45913; + shortdesc = "Provide a graph datastructure for experimental LaTeX3"; + stripPrefix = 0; + sha512.run = "9a3137a56952d18f41337f3ea1412180d6a0d7732178fe4855d23647d01648ddefd57859f786534c5bf39cb622da11e113a028135429ca38e6ea3bcfde41b5ca"; + sha512.doc = "efa314f54f3d7444931f4b7410c406fc89c35fc318882683cc97cd479faae00d3aeb58be06c9b174e59bbcc2bae57ff712983ba0c216a270441490866646fcfa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.9"; + }; + lt3luabridge = { + revision = 69867; + shortdesc = "Execute Lua code in any TeX engine that exposes the shell"; + stripPrefix = 0; + sha512.run = "132009434c830ebc5d78978cd1258861c86d53529cd0cfd30e26ed0516767b6dfd7f4a8f9252610394a87a1e42e011499c4f7bcbc7bf6748c9b4ca9eb09b2168"; + sha512.doc = "ff386128898be97c5388c4a3265d7c22c83def095d37aa0c27c167cba95d2e176da519878d53d60b0c7ed60a8b8fe8b5aa987c583dbe87138c54a0533eaeae69"; + sha512.source = "45e1698f7b0cae5dc127d3cada726333878fa39a753c62f6762c5fec55d95d21e4e05fa8fbedeaf7d8861ebe030a6c99ebbf66cf367921a3320443efb0115da5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + lt3rawobjects = { + revision = 66619; + shortdesc = "Objects and proxies in LaTeX3"; + stripPrefix = 0; + sha512.run = "05b70d22b56925542bd3f2ce832b1ed71759cf41f8ccce3d892c5bc6e17fb8ebfe8843a82d0aab6b6e88f38e84819b25bd18344683d182fdcfebcf81a47d27fd"; + sha512.doc = "3aacb576ebf0233692b81daa231ae8a93b392d07a261011e41dd4eac34e295f288f9fe7ca1abc208534393bec1e290362b32ce0906d4c97fe56a598c49e6f135"; + sha512.source = "2e09660f1a59fce87af33d5fd80a59a83ba856233db4032bec88ba8b6f5a8a6306de7416289c51043f8a947dc2481ed90cfecae095425144b865d7a1095cde92"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.3"; + }; + ltablex = { + revision = 34923; + shortdesc = "Table package extensions"; + stripPrefix = 0; + sha512.run = "5a64bd2904338fc45d6150c6be6497d56cf2e190c41018527a59ef075db41f94378f8981d4b92e211f60f2d641408144c546f2de0bbe4a8e94b0a3cadf4311a8"; + sha512.doc = "c3ab3559880077f63523c84cfc5cf363cf9f1d2c4d8aa9cb173b4a2dd07e5afbbdc9b1ea1b29cb50b64c68d65f4470dd9c1656703e0a1ac8955b72b87e33e804"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ltabptch = { + revision = 17533; + shortdesc = "Bug fix for longtable"; + stripPrefix = 0; + sha512.run = "15c839c34935ee27b0b741325a13cbe6ec2f918b007ddd691029ce341173d12ca0e5cdef3a0111c3148257babf686815c5f81c92b6019cbbb022608535f17283"; + sha512.doc = "d85ff06112e540d5bd3cac2bc6100d7d922e44d3388d247e521119ee4145716ef52889515b640e85c8a21405a35fbf63b168af09253e772e826572b0560305ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.74d"; + }; + ltb2bib = { + revision = 43746; + shortdesc = "Converts amsrefs' .ltb bibliographical databases to BibTeX format"; + stripPrefix = 0; + sha512.run = "42e634e7c3018b87825e2bae40513eeb757520e1dba1b1b20244bee2d0fadc4663cbfa0dfdf74fa71f7821f47c41bb7c873a64cc68e153f9b7207f6a8bf3f8a9"; + sha512.doc = "c26b018043c14022acc64bfaff6377988b5e40d09ac10916479079550bdbcfa5219df13988327679e7647c4a679490645376ed23be0601dc4df0528d45725325"; + sha512.source = "0ed23f0084e3afbf51cb6a5c6079db62fd8dca9ef12a159b4be1d68ede6b632155ebc0ee9d6fc91cf93d2cddb5463b5d52b14cb72e7c1d61b975c891f710af3f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + ltxcmds = { + revision = 69032; + shortdesc = "Some LaTeX kernel commands for general use"; + stripPrefix = 0; + sha512.run = "9d9a9835f4547200b160b42c07e918fb8b2cdf9eba91c30647c6fb1c74cb6f9ba60ab40bed63514ecbf334d527148b31fb1ec90af60075d19e28d10d675ded68"; + sha512.doc = "21be07f4f98531621f90b7ed23c06fa4b39fafa12a83c45784b83b5f9728817657b5c2ac2c09e4988ce0c6df0918a7c93d29d7ab89159cca5ce5fc9e0eb017dd"; + sha512.source = "becad978f8b2303a44057f165cdc6d22ddec03e58a26a0d6350bfbaf6d681ba43b105b65492c5be2382ee1e4f814129f86abc2ce376d2d42ddb0fdbdd2671d01"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.26"; + }; + ltxdockit = { + revision = 21869; + shortdesc = "Documentation support"; + stripPrefix = 0; + sha512.run = "1144bd68bec92b4ac9ec8763e2e7df7c6018cd8b88c7ed2f02e7597c3bc13608a562551d80fab2a41b8aa9881848fa1b3501da7ae9c39edaae3720875ff65bd8"; + sha512.doc = "a47852f464e8c31d9a2926e55d62c090292337acad6398568c7082012899045ce32163b798b25ac090e7fbd6ebec95f17a83ee1fdfe5f1f33d0b423dbeed94a1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2d"; + }; + ltxfileinfo = { + revision = 38663; + shortdesc = "Print version information for a LaTeX file"; + sha512.run = "ca078af6b822747e9b337eb5694c1b019444e55f5f9f9dbdf59fa1a65c9445b19a62b0d610514c9231365017d3ea95ad9288a37b62b400c12df74c0c7f774a44"; + sha512.doc = "0020ffc5874e0545c7ae4d1f6f9c0d5d598786444f4e98369e0c5fc872c5d63f235222594a9b0f5d2def5c3dcafc5ad660a4fd5a9e4551dd7717bc6ac06189d5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.04"; + }; + ltxfileinfo.binfiles = [ "ltxfileinfo" ]; + ltxguidex = { + revision = 50992; + shortdesc = "An extended ltxguide class"; + stripPrefix = 0; + sha512.run = "bb808c7fc1d3fdc7a4d065822a5ff67113bd9fa47a60762b5674040c52149cad14ecd2d0612216b15bcb9684e65e9b51312f83f14030e66de37ee30dabbad434"; + sha512.doc = "534e51a54903e1bbc783b5120015178c48a1a9ff3b06b2121bc9f79c95b7fdc1bc64c374af27a357a44c67df45bb70699d788c150c625d7d949acdce5b109a3a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + ltximg = { + revision = 59335; + shortdesc = "Extract LaTeX environments into separate image files"; + sha512.run = "0c91f46da529823a96ef441ec88d6d3c077a8bd5997bc291f55012e0d227cc24f00081f846ae127a364cba26498a74f2769d401e6d5fe0057afdb2a76a875f4a"; + sha512.doc = "05f9639a0224c779276a3b7f19450c93e255c70680fd54292e1ad41b3c89aa15dc187d58a73475ed9a8f7279faa0f3a0ec15042e75a52c70d78416ec46255b44"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.1"; + }; + ltximg.binfiles = [ "ltximg" ]; + ltxkeys = { + revision = 28332; + shortdesc = "A robust key parser for LaTeX"; + stripPrefix = 0; + sha512.run = "f99008a8d6d18697d095721dfd741ed2dc48f6edad09b15d39ce2c37f05e6f9c9d613a4ca7ba7fce8755f9dc5659e21f7e7961a7e38dbe17b7114c2337103d8f"; + sha512.doc = "ab28eae4955de3e5a23be1d718fd1e23384ec0e4a8c4b86348bd83ff501ec2e51a3981c60babd478bca0c115ba524367f77f3cabd3f733b82a9fe4cc5fc06878"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.3c"; + }; + ltxmisc = { + revision = 21927; + shortdesc = "Miscellaneous LaTeX packages, etc"; + stripPrefix = 0; + sha512.run = "3433a283f52c41f198b944eaf58a961751e7fd3c0991960a2516fd72af61671e776f48c6a5e241e379b54a08af6fba732ab1c35e42b8c93a62937b5a38cdb767"; + hasRunfiles = true; + license = [ "free" ]; + }; + ltxnew = { + revision = 21586; + shortdesc = "A simple means of creating commands"; + stripPrefix = 0; + sha512.run = "7dda3fd3638ddf528adda0430cbd32cd8fe410a743b7af5bf76e651ee98b10f2481723665a19fda2f2b468ca5c4a838144cbd6e9c457f50362f7b0e83106de26"; + sha512.doc = "91e07169ac377570382b9bc7044c0d66b61268fca38e2fcff4d7075322dbed0d3151976848c93b5d0a2088676e67f3a79d2a555829f170ca61a37b7c40fbdf66"; + sha512.source = "0718785df4355f264738d8929128e4024eae629dcc1fc51e0d408ace6be8688b9281bc0e352e401a6fba71b0a3f376610fdbea7520443233d088e93740e0dbc7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + ltxtools = { + revision = 24897; + shortdesc = "A collection of LaTeX API macros"; + stripPrefix = 0; + sha512.run = "aed74d79bd9da7f7303cd14db5c2a74aab51de03e87a84986b294019a971eb68a445cace8af2394631fc4ec6963ad32347c47a80612f70a7427adeb689d3cf36"; + sha512.doc = "e0a8b28f512a15fec379aeb3350c0611a77652531a66ee5a39010400fe5d1416c40bf6bd89d4e967851b09ad5d11b1d83ead675a0a722255a0e941980d74d1d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.1a"; + }; + lua-alt-getopt = { + revision = 56414; + shortdesc = "Process application arguments the same way as getopt_long"; + stripPrefix = 0; + sha512.run = "60ad4731ac61f9b5c4360bb3d0c6475e2abd358418e20bed29cc94761fdfb97fcf02829b9785e559ca6052a1e82ee7f0b104b166592b9fd87237679ac3caa2e6"; + sha512.doc = "5921a3fd6846b15b0564b9182fdaa5aa62ee6897f3ea55eefbfd07f30f556633668755ee6e356dac23c9b61fd7ecf4013da8f87ebe151a2bd855c36d45f60434"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.7.0"; + }; + lua-check-hyphen = { + revision = 47527; + shortdesc = "Mark hyphenations in a document, for checking"; + stripPrefix = 0; + sha512.run = "89cd0a13578d386bbf584f3c74c6c3ee1a45a7c0bf40480e5396f86b2af29b26abe3ab8aac69be0f1fe23cceb6da33237ea38384854fdfc7be6939832a8cad08"; + sha512.doc = "cd756e0356b36ccd26d1d78c67026f5a27272ac383bdfc6f44ddb630f58d067c05fb9152f1ed9793d71a63af6607107b8d4b5af311563e2c3d966079b2d3e0c1"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.7a"; + }; + lua-physical = { + revision = 59138; + shortdesc = "Functions and objects for the computation of physical quantities"; + stripPrefix = 0; + sha512.run = "b28768f63c2b34930a073139be3e6e90a0086a561bdcdb6aa6c8111db4e6def819c0a3a6af2b5b274d009d3c9b390c6da91416189718a67a4e1efd7eb547c500"; + sha512.doc = "52e764b0492aeb423d8c267f43436821a239e9ad019e43f7fcb881fbec31f9a56b690d792f15f954cec91ba7e3d32f70cb567994a82f3030870b44d0490fb593"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.5"; + }; + lua-placeholders = { + revision = 70055; + shortdesc = "Specifying placeholders for demonstration purposes"; + stripPrefix = 0; + sha512.run = "480d898d4c0e03776fbbb45243cf813a1a7d87b041b70566d74a1b89601602b8b3890f6d0395bead0cc6e9a876f5e154883035e1318ed0781302c2aabdc4a1b7"; + sha512.doc = "13fd2c68dbe7f3672dd6e4d560db81f4b1583cad137ff6b38b82f73ec4e8d20c5b1ca87d10d05b9566805a4f06aa97725d0aa12d5838e4ca146890c824eb57d6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + lua-tinyyaml = { + revision = 66776; + shortdesc = "A tiny YAML (subset) parser for pure Lua"; + stripPrefix = 0; + sha512.run = "3144093c160dd1bbfcef7c0d56a3ff2a6354ed2c5ad30a4201706dea66fb8cb19b4be71087c078c4e36d163e6a785827c378303bfd700c086a7ea6b9d7eb2135"; + sha512.doc = "1b0932800ff6fbad87c2a87e68e433d46de5a0c2543c8fb0c7b7b6f60749db98d9863ad4debdcd508bf1a613d32c8a8fa5d7e23f177517e4f7735f2c3b63c616"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4.3"; + }; + lua-typo = { + revision = 69403; + shortdesc = "Highlighting typographical flaws with LuaLaTeX"; + stripPrefix = 0; + sha512.run = "177b89a930ed061d18e25bafc230b402976e25ebc88d09a0a42c70b5848fdf5b7964fa69160c3456a02f207dce39363c9fbf603c928cd50b373be6ba8a2c8ab3"; + sha512.doc = "60a9e3560c35583377d4629ee4885ad5e8bf52773927c9d3e2b06a2385196303df704bbcc6245a2e0fc93c396b4a6252309180af270d9bd13fada543c9f3b7b1"; + sha512.source = "65eac5cf5c4af2eebbc7d6412cf6ba17a4de37c6c47caf7667e047edc6697a0e93f9f3a334f3ace081127654b6337ebbe5db767d1de2eb48a275c22c0617ca08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.86"; + }; + lua-uca = { + revision = 61023; + shortdesc = "Unicode Collation Algorithm library for Lua"; + stripPrefix = 0; + sha512.run = "e6c703b5576c7d66372a3989618609f2fe4a2b41de78c624e15bd0905744559b2adb3f70536b9680f83897a3997a492a558e285818d38b63ee7e99798bf376c0"; + sha512.doc = "a842063786a53c558bcd4bead5b6affbe9e448618d421435f49722e0a55087c28b36bc9d6bbcb874c3c794a9f5b303c62429b4386801e03f78e2f60c83cb1d1d"; + sha512.source = "7bea2f473bf12fccdc21534653f6237ea3b71c57bdaf651b8f543c5447ba25b3ae3bf735c3a0e7840b31907b777aa87215b358d152c1ba29c0e372a2672b0e44"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1b"; + }; + lua-ul = { + revision = 70206; + shortdesc = "Underlining for LuaLaTeX"; + stripPrefix = 0; + sha512.run = "158abe2f05bc7e00e6b7876023a0763e4a4f4178b5816fc4c5509342cb0b5db0a96fe16083b10f9150e1a7f089a64ade43fe1059a5c970b484d6b0e58adc1691"; + sha512.doc = "3c5c4cac2c17c2eb31af2602b73d3be28928ce72e84b1b84fdb5165463d9f563b20a741a1934f9587e2235ba2f4755cee4767b32fb02b09631cc2afd6af622dc"; + sha512.source = "0e2b2664b7f5fc711ee8213cf5790dd0bed5c9961af0f7abc2bd32c331e3d852cb80fcc350e8d9ff5878ab299063a96774f175c7ff24eef65636713bf240902d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.1"; + }; + lua-uni-algos = { + revision = 62204; + shortdesc = "Unicode algorithms for LuaTeX"; + stripPrefix = 0; + sha512.run = "01307963a88c4507a7864272f321580898e107601fc3784ef46122dd3361f4a272285836e186df8a5454a9825c608071caf79976323e84102eae6f59296f3a9f"; + sha512.doc = "5f667cebc56682225d8a68668bf7e02545e6239b6fba3f8f6ab49bc34d50d537d39484b060d8239631bc4a0de42b63824af04e5e3cc33c528c0925de8419b5c5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.1"; + }; + lua-visual-debug = { + revision = 65464; + shortdesc = "Visual debugging with LuaLaTeX"; + stripPrefix = 0; + sha512.run = "4d75ff11873d88b0914545e2233b7f49e6caca18a73aa71b74844ff516e41399c99c1fbb7f3bfcf420bcdb91bdfd10e42f4e8f7bfee05af284cea78e25718343"; + sha512.doc = "99736a1b08c2eba032d749686d30df9384fec22ae65878162436105ff9edc4c781bee5d6407612edb53edad73cf38aa84c870c612663c5b8e2262b191c526f76"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.9"; + }; + lua-widow-control = { + revision = 70602; + shortdesc = "Automatically remove widows and orphans from any document"; + stripPrefix = 0; + sha512.run = "1e489f819959a321b0baf60420dc25a217b0ed380067bc440307e500295b059f450c961072c001708affec4ad353477627095e71b75ff961f69c7d1f00fd8953"; + sha512.doc = "dc01e75eccbd0650ee0126348ba38c25fbe0a303a8317f7255c7f6efdeff66cc1603fa181bccf4371b0f4c56fa664d2ea99822914c1db9bf6e282f74c4c79f5d"; + sha512.source = "3add66b2dc968e7ce1b56ea4efced89e04f388b7f37f8be8d8d935df42c60fbceddbca6142a168f2a83493ed1fac3617971b7e342d9cf29f793a12ba429e5ab1"; + hasRunfiles = true; + license = [ + "free" + "cc-by-sa-40" + ]; + version = "3.0.1"; + }; + luaaddplot = { + revision = 62842; + shortdesc = "An extension to pgfplots' \addplot macro"; + stripPrefix = 0; + sha512.run = "8834dcf95f0cd2260423ef2a65599c0ebd948c67b61b97ebca8fefd36134d995630238b6ca01b5b9aa8b6fe50bd10b0cd49a350b3e2c3dfcfea00cac56a777eb"; + sha512.doc = "166ad5662521aaa4808ad1031ec922609f7a5049d9d219dbcb41ea4c7f777776794b34e356564cbf03628e6065e1eb4354366e3bc2c2bcae2b6e83344f6f810f"; + sha512.source = "11f90c6f468fd67f58bc7ed6d468873d9c12989b5a4d86563f35ffb9b62219def0d2cc36d45362cbb2fd957928b673b93e52437d26ef3e69ef7edba0b4645009"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + luabibentry = { + revision = 55777; + shortdesc = "Repeat BibTeX entries in a LuaLaTeX document body"; + stripPrefix = 0; + sha512.run = "ea46242da727c40f24fa232e1cd1db4bdaa7391aa372ae7dcb0210e2755fdfa2155de5c80a61b0c4554ab1c23a14bf286d00f07b34aef5edf416ac6b06f031ac"; + sha512.doc = "9b4954e294173699cef6ba965948bbc2518d42158c3f80cfa5bec17c5e58166240f8c8d3864f5dda94ae325aef688db7003138ccdf3d6eb249b544baa72ec13e"; + sha512.source = "d43a9d2024e5293966335df592451e3bd44e3f3522a06163c93da3d242b3e70377dda3612333a64e57d9db8ae8052753cebe9a73e01125b41e495c7a0f3a7592"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1a"; + }; + luabidi = { + revision = 68432; + shortdesc = "Bidi functions for LuaTeX"; + stripPrefix = 0; + sha512.run = "10a304c8844ad7b8f5e1832d59e678599f503c1eda38e1a1e29438abf6304fc44d8d4235e1308d661fa0879494c1779b7110853305b645ff1d2d35cf575bf07f"; + sha512.doc = "8276f91aa767b9c066bf6271f57a929aa21c7ff19a49db5db2e4eb68bae7613a13473cc23b7f5e60232148b46ff33bb86366320d730ba67918e2b009e5f22463"; + hasRunfiles = true; + license = [ + "lppl13c" + "mit" + ]; + version = "0.6"; + }; + luacas = { + revision = 67247; + shortdesc = "A computer algebra system for users of LuaLaTeX"; + stripPrefix = 0; + sha512.run = "21a488b33ef09db0e0fc2c479564cb15f1f2afb4c790ed8e64baa9b10ec1ad3a36486261218959f8c7951bc06d234f0516bed5d31201adc8d573c7490658764b"; + sha512.doc = "45f583d602c6afd13cd32d4049d4305d23ff8b47866a9d95b873e7533d3a46d2e357afda82819dedd450e95e3300aa34a4abfece9e0b90c22d6b2c3dc8cdc701"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + luacensor = { + revision = 62167; + shortdesc = "Securely redact sensitive information using Lua"; + stripPrefix = 0; + sha512.run = "6dbcc3a2870106eb49955b6e67fd621019fcd759b9d68d37e86af9d4121231e50ecaab7abe7fdc7720021575b8f6a28f28c4a11edc72f6ea71f7cba2b76909c6"; + sha512.doc = "95cf6068dd5812806f3a7fb40349f8adab9099c453459789937c68d49e8238016575148254b436724b7764a0eee7caac2459b96ab214746d3c12ba1d268cef45"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + luacode = { + revision = 25193; + shortdesc = "Helper for executing lua code from within TeX"; + stripPrefix = 0; + sha512.run = "b107c9cf774608782c1ba1ce3ebea8d330ff9762046eaa9b9de112b704df1d0da1bd7e33b15e9d847f232b7594d53fb2678cdb78b23d87aaac73cc2517ac8e1e"; + sha512.doc = "622a2417490fb818d5021bb519ea7ac8d886df5002534c4d269268ca4d2119ccc15b029111edb42d04a546e7a46a60bc8eaa6a0a108e9231cc49fc2141ed8ec7"; + sha512.source = "fe53aa46157e24f7f637584faa0c18de62ce3857d9841598f51e09a03354e9cd44bb8fc150e91d5b9ad6d1ca150a065fb1507847cc385ca67bf67679669d7ef0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + luacolor = { + revision = 67987; + shortdesc = "Color support based on LuaTeX's node attributes"; + stripPrefix = 0; + sha512.run = "142376345f25de68236e56fd334d8f24af90f510abc0d2314049bb03142df76988cd5451e22cf98df4443348f7686bbf9c269e311d5036cf8ae621200ae585ba"; + sha512.doc = "d6654c3ac1ca1c18cc60cea463cc3b4b4ed902ba6c29521883079123b9906f089ed25e2268e7a1f92800d9b1158225b50c0b019ea28c68b846e73bcb350dee6a"; + sha512.source = "8b29907f0e0d865704e5de710ac2dd37607330d66a4282ff1f4673306be40ce366a0c2eccdf4dd25c3592e804cd6fa1e2a35044c494c4a3c73e64bd0c264d102"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.18"; + }; + luacomplex = { + revision = 68883; + shortdesc = "Operations on complex numbers inside LaTeX documents using Lua"; + stripPrefix = 0; + sha512.run = "dcbb87d1c5776f20aeebf0748d348ab748e98fdc95427404f252f55fd1df9dc607aace2f6b4bfa086016eec7c4bae295979773d3a70d20a9e32da47974911949"; + sha512.doc = "a892f4360b52ab22dcb282c5bd6e538af83836d40e7467453ad345e2d272363efdef83b29b76864dbccaba1ad3589f2a3a47d20415842f727212d3923191b052"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + luafindfont = { + revision = 67468; + shortdesc = "Search fonts in the LuaTeX font database"; + sha512.run = "0d02fd925b33616d3f23df0609ea6fc1595b830cff8a712f6f93414cf80b51b2b1dde2b29e71084aad89377084b606ee7eeebcc2b5e8342b74fab23d8c97aa82"; + sha512.doc = "fd16f72bba665cffaad3102d6573117300c7df4ea7b4a3104be3de7c26c9f127fccdb54e373cf47220df2652fd405c6dd3f956d2278ec9339e70ea390333af75"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "0.13"; + }; + luafindfont.binfiles = [ "luafindfont" ]; + luagcd = { + revision = 68893; + shortdesc = "Computation of gcd of integers inside LaTeX using Lua"; + stripPrefix = 0; + sha512.run = "d9b770680bc147b45c3bcd984f58335d4e4d53f97ffecf85eb1c017a1c61ef6ddc06ae3230740769e199dcf674aeb92b5ebc10cb29863bcc4f67caaf9a41d15d"; + sha512.doc = "98905c9e829d1d96a44b25236a1181d5b96b75ca8a05293b185b9f372067cbf35d3db2d0e3343aacfdf840981bcd2af19e089b4a1ca7ae79a7a52b70c6828862"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + luahbtex = { + revision = 66186; + shortdesc = "LuaTeX with HarfBuzz library for glyph shaping"; + deps = [ + "cm" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "luatex" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "luahbtex"; + engine = "luahbtex"; + patterns = [ + "language.def" + "language.dat.lua" + ]; + options = "luatex.ini"; + fmttriggers = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + "hyph-utf8" + "luatex" + ]; + } + ]; + sha512.run = "30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8"; + sha512.doc = "3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664"; + hasManpages = true; + }; + luahbtex.binfiles = [ "luahbtex" ]; + luahttp = { + revision = 67348; + shortdesc = "Compile-time internet-interactive PDF-documents using Lua and LuaTeX"; + stripPrefix = 0; + sha512.run = "ec1ce2020efcfa3288c70d79756fd221a2cbcfc873b4f7f77d23bb18ce16764873c30a6d24a36dfd86af5ffbd8563c0c9e863cbeb78b8487725fac7f6c153bc9"; + sha512.doc = "cd4f2a818a31b8f9df2dd83590d8cbcb01cb6b06309a7a001711f990250d31232680ef2f10b252704eab611cc20c78cca51331db00f17eabad40ea88a8d2860c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + luahyphenrules = { + revision = 56200; + shortdesc = "Loading patterns in LuaLaTeX with language.dat"; + stripPrefix = 0; + sha512.run = "01025f1aa9abf7fb0c06045e8bebba3572b1aad06bb6edafd916e721c8ecb295fc680bc4da968e4fb059173ed9ba8e8de72ed42923b458a8dc42de4424b6ef9c"; + sha512.doc = "1487269c78bdef7aa626bee1c339358aea03af7df17cf92d48e56a1530b5e4bb7a5dd56fd7e094512fc3c149343e35e9e1683ffcdb8634042f26e86083f3ca69"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + luaimageembed = { + revision = 50788; + shortdesc = "Embed images as base64-encoded strings"; + stripPrefix = 0; + sha512.run = "c0ba8a3164f1a87cd12a5699e9caa23ff7a85debed9881798502436bbb594d48a2e15a135e3a18efb9f3d825af98303a46495148142c810e4601641fdf925654"; + sha512.doc = "188049c30c2c845d18e1a20af3d5ee009eab6064321b1f09aee4b77c3111317755e698e28876561440695c910cbfea6f67e41a5195a5f7b50d45831d7b78d76b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1"; + }; + luaindex = { + revision = 25882; + shortdesc = "Create index using LuaLaTeX"; + stripPrefix = 0; + sha512.run = "baafe2dbcfcc07293ec04f775becef7b59a2349ed5c98333c5a4e680fb3f8561f8749a6abadc6901cfbeae1b6e9a47cca05e8ae76064372585b7d7f4978dc844"; + sha512.doc = "c90deae24da8584170bc2247d5f6ee22ba522c21d3d0e05a6ec2b9594645a022eed1fcf12c3ffbaa03ce0d92a16f75550dc7e0694920ef58b17bdacae02d6fc7"; + sha512.source = "aa97d6618e7af11a7d5aaee332736aa60a8ba5a2cf796296368736c7d12b1e6eeccbd5c807cc2129fd3e4310617dd92e14aeac053753fe7267899b9b3459d8db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1b"; + }; + luainputenc = { + revision = 20491; + shortdesc = "Replacing inputenc for use in LuaTeX"; + stripPrefix = 0; + sha512.run = "bc3f05260800cc537436377c1f9fbcfc6a1a60a7fd892af23ab323171208b083c08c8bb2a5d299e4ce09468f66197d43f68717a57e649c50caf74b736cdb06db"; + sha512.doc = "7c6093b3fa622007aa7e6cc852076090e1bcc64e9b890d1ff0cf6ae552a21e930e791d32cdc2238a0f60c605c92a2192dad7e9d423a2d6e013582926957da58f"; + sha512.source = "a9ae3dcacf7ed85f5ff63e32c9fd66ad6860e149c3d2737bcfad870137b242797b8a3f62e90f290931e6884c74f70a0716c72f2e5414cb8406e5ec0141f13831"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.973"; + }; + luajittex = { + revision = 66186; + shortdesc = "LuaTeX with just-in-time (jit) compiler, with and without HarfBuzz"; + deps = [ + "cm" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "luatex" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "luajithbtex"; + engine = "luajithbtex"; + options = "luatex.ini"; + patterns = [ + "language.def" + "language.dat.lua" + ]; + fmttriggers = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + "hyph-utf8" + "luatex" + ]; + } + { + name = "luajittex"; + engine = "luajittex"; + options = "luatex.ini"; + patterns = [ + "language.def" + "language.dat.lua" + ]; + fmttriggers = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + "hyph-utf8" + "luatex" + ]; + } + ]; + sha512.run = "21313a5786f2bea08ce55db3a7beedabaf66f3331bd0eac1f8f3d7b926f68e103b14b1a5beaa271c37b60fc56735cc180e424f91db62f6e740530a65495d8e82"; + sha512.doc = "7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129"; + hasManpages = true; + }; + luajittex.binfiles = [ + "luajithbtex" + "luajittex" + "texluajit" + "texluajitc" + ]; + luakeys = { + revision = 65533; + shortdesc = "A Lua module for parsing key-value options"; + stripPrefix = 0; + sha512.run = "618719877ab11bb672c319bcc078a625bc92b4d3a783eff8414f6c9597ec8ea3225822afbeb0d1bb04e8889cc3003f4a1ed8063e1ecca410ec6f0170fa55eb00"; + sha512.doc = "be88aac81b85730c0cd85ab76541b8af01ca85326a4449168062ff80690db7d90669dff794b3f5926f1344a0de03289958fd4d2cf0cd2eb4b593dd052577e01c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13.0"; + }; + lualatex-doc-de = { + revision = 30474; + shortdesc = "Guide to LuaLaTeX (German translation)"; + stripPrefix = 0; + sha512.run = "c1bf1c7f367e5d15cb1a5ba0878a4f02dfe25772bed22b48f7376e8448569247233ee41ee8b58c156494d9cf0c0956dc23f4576f053cc349896247de0a96444b"; + sha512.doc = "b615887d8b543af1c125b6e9fb9c533f52816f8087075a8bd4e6ef752ff48f51169f5945ccb067228612cbdeb10dbeb298a090bdb93d201b9629b128b0c5a466"; + license = [ "fdl13Only" ]; + version = "1.0"; + }; + lualatex-math = { + revision = 61464; + shortdesc = "Fixes for mathematics-related LuaLaTeX issues"; + stripPrefix = 0; + deps = [ + "etoolbox" + "filehook" + ]; + sha512.run = "16c945e72165acd9f4bcf20f81e6c5df9ec22f19d45cbb8f076763d2d1a1a2e230938dabbadfcc065e3a060487885ac2edb223aae22d12f6981f5fca5c0f951f"; + sha512.doc = "f5a8db238ae096b7b1a2eaa84643f063cd28e08b328cbcc780171a60c571e858a1cd1941a8ea9053392a8c65b965a81c8cd585ce2accb27e797e3e4e8ad3a127"; + sha512.source = "e04a36a2280fbccb9572539ebc9bafba4edb7ccada25c4b3faadaa61c2f4458d9e9a90e54fa00b5ba675e59f42ed2d076b39918e5c126e2f619f2f69ff904d81"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + lualatex-truncate = { + revision = 67201; + shortdesc = "A wrapper for using the truncate package with LuaLaTeX"; + stripPrefix = 0; + sha512.run = "e896a6e065b5dcc49c24f8492f640f5ebc06c4f1ac8bbb57e8f76768ec20b14a016f2f801a5c5c855d03f72808b5844011aef7ac377a38a388cd843120b4edc7"; + sha512.doc = "242cabec009e94adb1582874f959b10871531b433679c2f66ba9f82af02150d78b8acb8b486a182c5e41f2d0b7fee9a7294ab2d8977c9a6f0c021fde8678a4a8"; + sha512.source = "fbe5c95820b8f94773f8f7e33b554e05a5d8ab2178472a6a6c27a24e08dc7dceb3bc1483999b3b13db389b46ba6f5be1532927adfd1623f0ec003da2a96e5793"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + lualibs = { + revision = 67994; + shortdesc = "Additional Lua functions for LuaTeX macro programmers"; + stripPrefix = 0; + sha512.run = "4387311fb78a29d63959114e401a2b97a8743a50c76a22163e0d14f15cd7b51a50f4be7a19232b32fa4152eac71c73fbeebcb8e38fee3bfc997aaea37bef78bf"; + sha512.doc = "a4c878209934b2b044688dc77b4b467ae4e106adfb5f728f398d7adaa279ba612883ae22f30e667a79a22d633a507b689525356ff24daf12c50bc84dfa798ca5"; + sha512.source = "98fb3af23ec41561f0ffb12461ec2977472f4182b49a37c0365c16bc3d52ce61c382e6ca172ef92638cc0496d5e3073e4c96b13acf390e783f1bf46d34226d2d"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.76"; + }; + lualinalg = { + revision = 68918; + shortdesc = "A linear algebra package for LuaLaTeX"; + stripPrefix = 0; + sha512.run = "91c466d51adeee70e9504deb30a623c41d4fd6b461e76f4a6dba2529ffb3e879ac9bd706845b00354418d6a600b3c774029000b3495ebb4711b152e274b87d0a"; + sha512.doc = "21d4a285713b962e17ae2f83be803abb77813bb6fceb085787fba35f2a1956b88cb199e057c1f49d15ded68c3fa186a5af0dc5bb1ba99db07dc557c3a2da1a44"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + luamathalign = { + revision = 63226; + shortdesc = "More flexible alignment in amsmath environments"; + stripPrefix = 0; + sha512.run = "61a2960d103cad9cd9776de0c08b8d2167f6272484da2a7ee067951f7bcbeaa683e046a053c1f4d35ab83c8d70fb96e9b7b55566852d2262162b90c1a63f0b80"; + sha512.doc = "96a1fd4016b189d31c966faeba0942d4b3bf24208ebc6c03281336af6d86504f552f0bb705a30e6ff108ff692de969900a229b061f7bc91c6cbae68fa42e8143"; + sha512.source = "7f4c636a013d6fe8f0771ff3d3234cc2b5f098d0369d9ca73f3aea29dd47e609ce56ba20cec0dbeb782988200b8fffbf62c1957055d074d21b98051d8c155ea1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + luamaths = { + revision = 68883; + shortdesc = "Provide standard mathematical operations inside LaTeX documents using Lua"; + stripPrefix = 0; + sha512.run = "1c5a53bd44f062a4531bf4099c0dc1e76a47f5475901bac7f1fccea0005f9704df257044b76063d51158beb0d66d18e41ed6a4873388f0e531b1ff21ee1042e7"; + sha512.doc = "0846e5ece550ec73aa65b07993faab7151efb100f6e5cbba8a4e73b595b012f031435ecae7d1100690395bc973fc82b617a0463bd3388e38081ad32b8d16d78c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + luamesh = { + revision = 63875; + shortdesc = "Computes and draws 2D Delaunay triangulation"; + stripPrefix = 0; + sha512.run = "e30e6f2bef6958c2f76df6aae5ca5899b91f41fc35afdce24840e2d028222c31a0613ba3c7eef27629686137f15eac24d3b97b7e0fc33b5d91adb7b766c0279a"; + sha512.doc = "286dc5fb713f06fccf7195f317791a8c775ddcaeb8cea4004fb7a77882bec36c60679ed9ef725128ff354c7230becdcc623683fb78eac9b24cf044f9cc97af1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + luamodulartables = { + revision = 68893; + shortdesc = "Generate modular addition and multiplication tables"; + stripPrefix = 0; + sha512.run = "0b390717c538a8c44cc7e8214908149c3705d5cb453d7776015eed27638ed0c0d16ea0b5be5abf2b6bec6e410b849f35796f574923303ebc883c75f7221f7634"; + sha512.doc = "dba85f4e58f7a7d8f1f81d0051a0305cdf51e7bd1ad4220cebed513871c6a3d816d9a6048cdce352f48527da2b04700b94210eedce5104af289dd0508fc72f63"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + luamplib = { + revision = 70583; + shortdesc = "Use LuaTeX's built-in MetaPost interpreter"; + stripPrefix = 0; + sha512.run = "97551597042f2b609abfb7c275e3f371a57aa6948b4085017926ff8a8adba02ee68dcbc84d3cfcf4eb3ccb93ff1c61157c9dab2e2b3bc945707ce106e17d169b"; + sha512.doc = "6c366637d27c498cedbeb6222ea8b48a807ce806bcee89cbbba7f7fb5d6b3bacc7fa4ffb3c1288a02b803bfd7b96725b12fd46eb2e9ec965e2b69f057b1c2c03"; + sha512.source = "546d9403d20ed58a470b9e2fbd5b34c1863c4ef69e90156a6c0071f09ff425f6bbd9d39813b870f55997cafa520caa9326b79e31708630f9b3a44b0b0ceddc3d"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.26.4"; + }; + luanumint = { + revision = 68918; + shortdesc = "Numerical integration using Lua inside LaTeX documents"; + stripPrefix = 0; + sha512.run = "f34fdf0308fe4c9aa36d59e11862958ee1824761e5aa8ee62e6df81b335ec8dacb203a64ce5e26395ab612583126093dcddbc42dbeb927c90bd3bec73c1b5485"; + sha512.doc = "e8718322381688bc306871de22d585ad50128f45d25ec6864034a42cc661e78c510dbfffee46ab5a6da0e3018f1cf3d35974d9e4cf27e4208e9a8186aa03e656"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + luaoptions = { + revision = 64870; + shortdesc = "Option handling for LuaLaTeX packages"; + stripPrefix = 0; + sha512.run = "0169029e4eefcb746f48b266d590c7d9f3d4d376070c762139accf27adb8e48badce38769d22250519b3482b4752c55f66a165f4a6c59b20c3048738dcd65a72"; + sha512.doc = "8731eb75ed8dd7089a6825350c2cf335049ce80c1ff378ec26dfe32423e4278737abadf7c83bc100837b2676866d38fdff50024845dc78c1625e64f8748e140a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.8"; + }; + luaotfload = { + revision = 70234; + shortdesc = "OpenType 'loader' for Plain TeX and LaTeX"; + deps = [ + "lm" + "lua-alt-getopt" + "lua-uni-algos" + "lualibs" + ]; + sha512.run = "3882508595c12b7eedd7bd657e28e33d1d1ffc546ba6b281e6e212b1f9492a124e06b0d27da28b5ddaaff05728b231fe044be581bf001ed1441fedc284b2f436"; + sha512.doc = "bcb4147d4713fcbc28094209d9234aa95e5bceaae53acb97674cc4a458daa8ed3db4685a8d2dcf7da29218e06daaa4a727c3ed2c9c5d991904054fbd1a023459"; + hasManpages = true; + sha512.source = "5ff132658ec2fab529595dc150674f19fcb266f87b6f294f42de04c4aa2c067091cec7a416c201b5970e56dfa3adb6772ed4276370aef7bd97eb6bf661bf2e8a"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl2Only" ]; + version = "3.28"; + }; + luaotfload.binfiles = [ "luaotfload-tool" ]; + luapackageloader = { + revision = 54779; + shortdesc = "Allow LuaTeX to load external Lua packages"; + stripPrefix = 0; + deps = [ "iftex" ]; + sha512.run = "7f2558dc265746f143520c2c6f3bf2ed05ac8c54988e573519321a7fb5a2a991220d0eb8906893f77964dc01f0e3f16b783dcd20f809042a11d29cd137f557fd"; + sha512.doc = "64719d715fc98bc09ab17db5f2053ea3e34d703adda6677f50ffe178a974230e8a03a9019b995238d073580e1faa745e655a7207468965ccb9f67bfccb5b5a49"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + luaplot = { + revision = 68918; + shortdesc = "Plotting graphs using Lua"; + stripPrefix = 0; + sha512.run = "99bb803fa2eb46b33e2f3d7bfb1b307dd268df91d392f8fe7bce5e45db65fb8b1de66d8d62f0bb2912fbb5521a73ea60b6627fee3fad23262fb92485a7858c80"; + sha512.doc = "b34d3b67d1603fbb940856d9da2eb4ee57afd87923c2a1c4541d5d9325cfd597bb47b2ecdc829b2ce4eb3bfb35eb9b968e0cdba2cb9d557d12ccbca959506f53"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + luaprogtable = { + revision = 56113; + shortdesc = "Programmable table interface for LuaLaTeX"; + stripPrefix = 0; + sha512.run = "68ed668fcc84eddad444edfdd18ede2c94ad81fd61162d62c5a052fabcda6e5bcb519d6eb473721fc2cc090bb7f642dd55ac35b9f1f0a682b2fb8c480a0a1014"; + sha512.doc = "d91bb2fdf9851b1aeb3dba0b5eeb75bd1f9aa8c806fc3a99e063af7f56e0878152630aa18731c1c40aa00de72a0d192981a272d586fb25f7a19d14b4fc25b5e6"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + luapstricks = { + revision = 67207; + shortdesc = "A PSTricks backend for LuaLaTeX"; + stripPrefix = 0; + sha512.run = "742b75749754c3370c64c50bc8138474f0181b4777875227cccf749851aa0d42cb490cddbd72a9624b931fe99f02e2727fea4e54d36b1d46cb084c666dca445e"; + sha512.doc = "634cd9587c4fd9c6fc558bf9369b191e0901b58d75d871815592f3e6959bb103d32026cd9ed48ce448a497833c30916d39b92cbb85c6544b41b7341277dc6820"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10"; + }; + luaquotes = { + revision = 65652; + shortdesc = "Smart setting of quotation marks"; + stripPrefix = 0; + sha512.run = "20c0c02ec0a89e37d82d6ba10cdd9fce632189c442950f325ebc09f5cc2a1e798238ac9d3e31245e113d4909dd0b37e3a145b471f7facacb285a2a2450bc8998"; + sha512.doc = "3a9b36054a67ff69ed8dcba75a6d5bb5bd4783ec301e59f491b82954184ff7793e68120762ec95182d6dd00afa1fd4421d2f87fc8294ac39061c88f50c37d803"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-30" + ]; + version = "1.4.0"; + }; + luarandom = { + revision = 68847; + shortdesc = "Create lists of random numbers"; + stripPrefix = 0; + sha512.run = "1b5f4f420fe5acd552e7ff34459184319337a586b19f3b53111940fa648b09924f03ce7ce4da7463cbc894e65ef87647ada660922ab252b560dfe99295255097"; + sha512.doc = "4be8b8d72bdd6d4eb33999d662e06a60c8971d5a990b649e37c990dcc6f708856ee61a59ad1dddb6c083eab09e809ddfb65a1730a8e76bb6aadb1a240c809a26"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + luaset = { + revision = 68883; + shortdesc = "Set Operations inside LaTeX documents using Lua"; + stripPrefix = 0; + sha512.run = "97617f8c763ec968750949f5050ae8682b179caf6433ca036c820017c4ef73aad3f96a1f8071be490c029db25afc6b85c45310ffbddcf3c8ed7b4b5547cc6e58"; + sha512.doc = "546beb759fe4f6e6a6a9814eb46935a3d1245bc2a48878c8391738e92e79c7df2148e564b2eff0cdc60281b6f071d8fad2edbf171d7c1130b1068aad11aa5a19"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + luasseq = { + revision = 65511; + shortdesc = "Drawing spectral sequences in LuaLaTeX"; + stripPrefix = 0; + sha512.run = "b77936a1b92ec8b3889ec9ba8b356fa235da6eeca98d6a86f315723c64b4c0a7d8db2213cd9fdad4d2b38cfa8af1bc00c7861f15a9f4f1a809ec86bab8a16f77"; + sha512.doc = "82825043ea6c04a76cbf0440d9de08ee281b843342c6385f11cccf06bd11320138119fb90944f6f3fc5aa8ff9854f1934f7890809f0a8175de389ef5cd448cab"; + sha512.source = "3a6b4fa48956e2f448a1be96eb9d05f236c9e1b2177de13ad16aa942c9b4ef5d4d4585bdb6f5d9b1a19901375f34cbd381430c629e037be500d84cf626065500"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + luatex = { + revision = 69182; + shortdesc = "The LuaTeX engine"; + deps = [ + "cm" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "dviluatex"; + engine = "luatex"; + options = "dviluatex.ini"; + patterns = [ + "language.def" + "language.dat.lua" + ]; + fmttriggers = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + "hyph-utf8" + ]; + } + { + name = "luatex"; + engine = "luatex"; + options = "luatex.ini"; + patterns = [ + "language.def" + "language.dat.lua" + ]; + fmttriggers = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + "unicode-data" + "hyph-utf8" + ]; + } + ]; + sha512.run = "5ddb75ca2e358bea261363cc19d39a37a9e467f9cbf4f8006f036a96fea61cb00f86c4000c09d7dd07f71f9b9a01ec165ddefb862aa84f0bc3da6a387ca1f42b"; + sha512.doc = "36a5dfb6b7ca09adad807d2fa74df854363107eb3fb514977e3ed8c69eeb1181a19a55a49eb8c001a3532601c0a222a3ae9d130827caa19864df03705af7271c"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + }; + luatex.binfiles = [ + "dviluatex" "luatex" - "luatex85" - "pdftex" - "plain" - "tex" - "tex-ini-files" - "xetex" - ]; - formats = [ - { - name = "csplain"; - engine = "pdftex"; - options = "-etex -enc csplain-utf8.ini"; - fmttriggers = [ "cm" "cs" "hyphen-base" "plain" "enctex" "hyph-utf8" ]; - } - { - name = "luacsplain"; - engine = "luatex"; - options = "-etex csplain.ini"; - fmttriggers = [ "cm" "cs" "hyphen-base" "plain" "tex-ini-files" "luatex" "luatex85" ]; - } - { - name = "pdfcsplain"; - engine = "luatex"; - options = "-etex csplain.ini"; - fmttriggers = [ "cm" "cs" "hyphen-base" "plain" "tex-ini-files" "luatex" "luatex85" ]; - } - { - name = "pdfcsplain"; - engine = "pdftex"; - options = "-etex -enc csplain-utf8.ini"; - fmttriggers = [ "cm" "cs" "hyphen-base" "plain" "enctex" "hyph-utf8" "tex-ini-files" ]; - } - { - name = "pdfcsplain"; - engine = "xetex"; - options = "-etex csplain.ini"; - fmttriggers = [ "cm" "cs" "hyphen-base" "plain" ]; - } - ]; - sha512.run = "5c0d9f12254d2b61a9ab34cb447dcdda56b032c5d4fcd1b4ee2ec2f3999e5b5317e067c7e03814598add15ecd56449ace1bd1a67b6d87bcc6adc2122bf7b5083"; - hasRunfiles = true; - license = [ "free" ]; - version = "Mar._2022"; -}; -csplain.binfiles = [ - "csplain" - "luacsplain" - "pdfcsplain" -]; -csquotes = { - revision = 64389; - shortdesc = "Context sensitive quotation facilities"; - stripPrefix = 0; - deps = [ - "etoolbox" - ]; - sha512.run = "68427cbe486f3b53bdb24869a3ad52cf6a006d7872ff9408560d9e4b0f1e8184fcb437d54e10f11d7a3585ff8ff7ad40ab4a95aa66091bb69a75a3e8e60aede8"; - sha512.doc = "ceba04fab9ec257c6bbc2fc903e3888bae9ef6bfa5664c8e01da14ee2b1482005aece22b6bf4fa7fb893c2dc1b0cb7f762eb048e0b2c039be80ef73b0bfef131"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.2n"; -}; -csquotes-de = { - revision = 23371; - shortdesc = "German translation of csquotes documentation"; - stripPrefix = 0; - sha512.run = "7d4667b77f1e27acb1d3c8becaad4889910edaab4b9da6b0fe821db262f3a31672050f5985a56533003178fbf1d579d170be3fcd22c31bbf41af9bcb68fb7c40"; - sha512.doc = "1e8829faf2cb23b2e565a4b5daa5a09ef01d590d920444ee4659964bee042148ea19e9fbcb63e4c4ea1e2698697554e0bc532fa0fb7610bbf9bb4bca234d33d5"; - license = [ "lppl13c" ]; - version = "1.01"; -}; -css-colors = { - revision = 54512; - shortdesc = "Named colors for web-safe design"; - stripPrefix = 0; - sha512.run = "cebeb4e7cd71ecb1a502f6788fa62284f2d9e3e4afcdc1ddce585e94683a42b20e7b9838ff5c85fc0634894898d8061e01de79e062946e943b315d2970ad126c"; - sha512.doc = "6299617c5740f104b59e850ca826a2906d63ef3564b6730b01decb4f7707828e28ae3de2d44dc851c094abb702a00a9a4cb2bc61f18f020dc37c04e189521c1b"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.02"; -}; -cstex = { - revision = 64149; - shortdesc = "Support for Czech/Slovak languages"; - stripPrefix = 0; - sha512.run = "cc0f0d0e2af2c210cb7888e90d668016dba4cfce3ae90faf0597a7f8c2058dfe56b92b71d185705c7d3b19d53b989724a9106ab56664fd2e6f4e95da5c0a48b8"; - sha512.doc = "e84c12eed94f459a7769527197f8b4b2f638297eec5d41bc7e4e3cc86c593cf957158946eb495947ff557ff323a085212b61cb3233972238d3afa2fff54e367b"; - license = [ "free" ]; -}; -cstypo = { - revision = 41986; - shortdesc = "Czech typography rules enforced through LuaTeX hooks"; - stripPrefix = 0; - sha512.run = "ecc9054a0866e4926277bf5f52faf97b0b07f0ea660b7c4d089a552ab57d3a900cd1d688981770df9b3a4285c3d451fb23f1b69757381f3cbdf88cf0c88cf61c"; - sha512.doc = "1ac42bcd1cadde9165f8edceadb438c4c2e91d6a89486e56e31623cf1ffdd5f38ec800d836dc90a5a6a0bc48dfac4a8ec90192319f8f046665c77e91fc51b91d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.03"; -}; -csvmerge = { - revision = 51857; - shortdesc = "Merge TeX code with csv data"; - stripPrefix = 0; - sha512.run = "f3f679127d912a8df32893f0afec13b21a272b6e5ed2d2c147e1bcbea5698e043d88d5dcadc0c772f5640945fdbbf4ff43655d6d4450b48966740cd3cb936829"; - sha512.doc = "b090bd51f547f16270534c2305ba68af9f86800f55809b050eea25d5566be3a3ce245ad0f79a76ed21ac64b68b6650800fba5a5ad942cc1f3f8e982f56ba5286"; - sha512.source = "b189b456daf9a54cf8fa09706f93de7e8365d75b792336a8328414d589ffa178ff0c39c17064b532316fc778b73b000610b3f966f9eb0d8e526cf1fd5b4bdd58"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -csvsimple = { - revision = 69494; - shortdesc = "Simple CSV file processing"; - stripPrefix = 0; - sha512.run = "ef7d09c254982998b009c4856b69b263e7ee5df3b54c7513aa5459651d12989f38b1593ca9e3d4d3de51ae6cf8b02c89a8a9298213c7872157712fb4c1c61900"; - sha512.doc = "c6934e0bfc8448008c0fbe7ed06da871aa9a9073f7948551881e00dd8ca0d31f7da5132d14282a9b08564a2aa8e875f36cf67db900b94dcf4381530a2b6843c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6.0"; -}; -ctable = { - revision = 38672; - shortdesc = "Flexible typesetting of table and figure floats using key/value directives"; - stripPrefix = 0; - sha512.run = "3192df463eb4d307ba886b82d586580a741da8d901dc560c06d293e04c5d5af9efff56a1482bc41b03aeaade2cc25cdf6f4dda3e1baa26da1f7d4d138f44bebc"; - sha512.doc = "a32bc9c82a87f1f9327d5cbf4c15052124608f970ecda1909aa67abcc2fb4f10bdfcbb5568d8af9332687817f6f5bd6aaa0ce4843490e8ffac22526bbe123fdd"; - sha512.source = "9886347fdf0a1a7105ab33bba00877ce22df66b1d82a60b8818af063da371d8c0c6d8f60252342dfe44bbaa65ba9a93ac8f972c64439bea7296b9e98e1be4b41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.31"; -}; -ctablestack = { - revision = 38514; - shortdesc = "Catcode table stable support"; - stripPrefix = 0; - sha512.run = "3485fbd1bebf80814645c1be3e7358a959637439fa17cbbf7c2478ca73c4312cab82eed2aedb5403dfe94b0cfc09ee3e9c8182c08d3708608a267da235ab30a0"; - sha512.doc = "2c74b9d2aa44b25952307e4593b4a792cb5d98b78619efef82ddfb134ee3da64de87973db30f3e5d5788ce5e6ef138fca2cabc4ed412c97cfa7b3dc6c3ed1060"; - sha512.source = "c39356d4d78cc8121b20e572fe59879541ab533ceab64e68f17a346723aad4f73103df79b1711feb12337e5e2dcb56222b00a9b36ddcbc04fb5e946831340d6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ctan-o-mat = { - revision = 51578; - shortdesc = "Upload or validate a package for CTAN"; - sha512.run = "a995dfc6d79ba77fe673aa501f28eaf9f057c34501fa032423569317e5a4eed048c3375d806eafacedefec02e91bcb587fa6bfb8c0ff980395bb877b2ce88c4c"; - sha512.doc = "423efc3f2f850c5a9bcbe787edb8155ef76e56ce5e3a1ba3332bb465b8239616bd1fcff2e8a58db6f5ce9d5191ae3209a5451f746250a3b081fe9b35d024eebd"; - hasManpages = true; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.2"; -}; -ctan-o-mat.binfiles = [ - "ctan-o-mat" -]; -ctan_chk = { - revision = 36304; - shortdesc = "CTAN guidelines verifier and corrector for uploading projects"; - stripPrefix = 0; - sha512.run = "6eabd7281d79ff0ad19080350dfcca8ee3a33ddfa6d17827a7851cc53f09f627729c8d715a1dfe50e0c079add44331a07d543cb8b6a57000efa6d73c30f2ffe0"; - sha512.doc = "c61bc0d70cadcc4382dae55cdc1af076882801321a2de16f164223267732e476e41f949f566808c928f446d69aa22bd9965adb155c97905e32b93808810c76c0"; - license = [ "gpl3Only" ]; - version = "1.0"; -}; -ctanbib = { - revision = 68650; - shortdesc = "Export CTAN entries to bib format"; - sha512.run = "1d89c7bab95472d993c6e685880d513f9cd4ac57af87c7656bfb8423b2e5c9c1ede851da01e638558edb37e85caca3080293a7df9b0ad9e87b2aee84a6680a52"; - sha512.doc = "760b98e3c4d7b07e2f15d7e2b1705f10eb697f5e7f2aa03de97a3ce347d7495f3595d9ed0518c0aa5d38d2eb0b20c3a889e6e66416587a4d15b89a9965986d04"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2d"; -}; -ctanbib.binfiles = [ - "ctanbib" -]; -ctanify = { - revision = 44129; - shortdesc = "Prepare a package for upload to CTAN"; - sha512.run = "6774b151bb0fb052d41d8447c7e8d378d7f31b0a5aea5f2f00b93669b8c2f629f479ae21d40480fd62f468d866cbe0c6f0dedd8a0248f8d83cd1039131849439"; - sha512.doc = "f9b636cb41b126809d808c167410a37052b1c6c385fe4eb8df3b819c0cf2cac2c7c1c74d7ea15d2916c1cbc563e078845e451000e3a08cd9a8e0696a342b22ac"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.1"; -}; -ctanify.binfiles = [ - "ctanify" -]; -ctanupload = { - revision = 26313; - shortdesc = "Support for users uploading to CTAN"; - sha512.run = "4464bdfbf72318b24abcd88e1c25dae5925a96e867c694f3f02a594ed7b8b24cffdcdb345f0054e200a6af63f88b591ff84058af0adfb4a1b3feff2a057d9d72"; - sha512.doc = "9e027f7ce08041be7668a7a404fad6b6c7cfc71e581ad1216956d0b53c379d204bd84d2d55d186c74f784df8911770b96f934775f44f7141a5f1b9b5e773cb7a"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.2c"; -}; -ctanupload.binfiles = [ - "ctanupload" -]; -ctex = { - revision = 66115; - shortdesc = "LaTeX classes and packages for Chinese typesetting"; - stripPrefix = 0; - deps = [ - "adobemapping" - "atbegshi" - "beamer" - "cjk" - "cjkpunct" - "ec" - "epstopdf-pkg" - "etoolbox" - "everyhook" - "fandol" - "fontspec" - "iftex" - "infwarerr" - "kvoptions" - "kvsetkeys" - "latex-bin" - "ltxcmds" - "luatexja" - "mptopdf" - "ms" - "pdftexcmds" - "platex-tools" - "svn-prov" - "tipa" - "tools" - "ttfutils" - "ulem" - "uplatex" - "xcjk2uni" - "xecjk" - "xetex" - "xkeyval" - "xpinyin" - "xunicode" - "zhmetrics" - "zhmetrics-uptex" - "zhnumber" - ]; - sha512.run = "43954ec2acfd2a0e37acb55c3bc7496a9959abeb60787a4daa742cfccc3bfe5b88542d341552aa9bfef6b4224c79a14c5a5e9a7221cc0ecf83d22c9e6ce6a48b"; - sha512.doc = "475eb846b55672b23769af8757c7532b30d3d13d6667fcd71b8783ab291dd3a39fef6d255080745d4d609276f9074896fae7e674e8abeccad7c5984db5f88636"; - sha512.source = "59df412a321a4ad75e1b948dd12d250a844c042c9a7c5ef24f0108591fbb087ec6949b537788f070d496b9ead0e8b8de120b37f6977dd536bf10ac353d5da6c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5.10"; -}; -ctex-faq = { - revision = 15878; - shortdesc = "LaTeX FAQ by the Chinese TeX Society (ctex.org)"; - stripPrefix = 0; - sha512.run = "39ff8931e0007a78e4fa0788d7c7fcd8f25dd4cf4fa3f34b694e681e10dfb3d804842daf45a6e56b5ff450bb965bc322dcf593bdce176ffec27f4696c1c99fc0"; - sha512.doc = "0942a249a30f97d56bf5cbac2eb4de285a63406620b825a36d9ff8d46fbccd614af488f89e2af7472f1a9075a0e2b7228bb65a5804451df6945ce6bf4287b0a2"; - license = [ "fdl13Only" ]; -}; -ctib = { - revision = 15878; - shortdesc = "Tibetan for TeX and LaTeX2e"; - stripPrefix = 0; - sha512.run = "8999ea42b82e56cbb06e2485060b829a0781550834ea421607b4621199692976488f4031266eee1a6b1443b12828e2fb5148ff43eff137c01ee9db8770bb1565"; - sha512.doc = "65d8f613ddb651cef4c345791a4a849e3f672930fb94d1ba789e827b466c459bc321762c71675cb4c5fdec8fc456520bb7013d5b737b4ff2bd049bb5917a98ef"; - sha512.source = "b387b2cc636f98bf7bf43fc3be04cbb62dfd6597c419b7791605011f59981cd9e90737f9d2f0f668f63bf9abff854219a75a7527d881c991190188f307f3642d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -ctie = { - revision = 66186; - shortdesc = "C version of tie (merging Web change files)"; - deps = [ - "kpathsea" - ]; - sha512.run = "0180080c48fea7b717ff0ad27e060ad4564841fe2929b8db919aa0402886a00e0fa40f1398ef82bbf9e983343c9f9f6c797606045d55ed07e572e006588c7353"; - sha512.doc = "178a88260131781b6678ee63b1b35ecc0734525309b99c0d5bd4498127970bd67e30c23072392b6678186532a845c7e27188b1902b5dca52180720bc98fe3dd6"; - hasManpages = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -ctie.binfiles = [ - "ctie" -]; -cuisine = { - revision = 34453; - shortdesc = "Typeset recipes"; - stripPrefix = 0; - sha512.run = "cb594c2ef79a1d1614ad2b7bedff3b5bd9853bf36947751c880c36c73a458152eb7036861d0292614992623192841c28a3f4010bc0c4107fd8a4277154a1baf5"; - sha512.doc = "9e4f55bf8199b4bd06847dd39e67e91a8a6885b3903c9ea772199d9b9fd9d7cade173dff6f785d143b4e7c3b154477622a4c2cad14576b22068a6729693a8227"; - sha512.source = "1df5e248af42513b212d4c18cd95c8c9f2155598604624cf3b5e5e5b020643bdbb9c3addf03d8ff111c14185234d42f0db8a06a9de040fa0b58cec3895f32731"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -culmus = { - revision = 68495; - shortdesc = "Hebrew fonts from the Culmus project"; - stripPrefix = 0; - fontMaps = [ - "Map culmus-new.map" - "Map culmus.map" - ]; - sha512.run = "4f6f370a13ce2cdea9a1dd32bb1e2243000f4cd566f1a7698c641b9ad4793b3c1148fb914dd748e37b5e7bd6802144d4e1b9fd4c536df58bcb4863ad4f9cd2dd"; - sha512.doc = "4c1217f0cd27bcd56c11006b7b3749e661aba567798b2e397a21b3b0df39a35acb6355836d4eac4fd619509b09b57c7e39a97068343b6e28005944ebf0430adc"; - sha512.source = "2dc2e6bd71ee949208625fc259cecc6a0ffdd0701416c5775cc32855a2bbf8a533238e07d4fa08c090ed3ff627613c27f0cddeb2c86eda1b320cbc68e236a6a0"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; - version = "1.1"; -}; -cuprum = { - revision = 49909; - shortdesc = "Cuprum font family support for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map cuprum.map" - ]; - sha512.run = "578ce2e5af01e81ba80c0cfcc0225985722c1515e8f98460a1cb5d71d8ee4630d400f28dee04bb505c429b13f5cb604364d26503af0b5d9bf98164b218b09413"; - sha512.doc = "b9a9bda8eab6087a134b3b0660282998c7c3fa7fda8890e61ba107b9f7576d85ca01b59664c1c198679151e01cef6ebce5b8de29644a2e249a6ca2100f526fe2"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -currency = { - revision = 48990; - shortdesc = "Format currencies in a consistent way"; - stripPrefix = 0; - sha512.run = "d975cbe846ad5708a3558252094f4568c3ea4c5bc840dea7ade74eb8f6d90f4527b417a875a7bc286010473078d895cf510560f1287013e70498c983c896750b"; - sha512.doc = "1f32fed0bf778b3460e094239afd76b4be9915be8a3e8ea20b7e48b02f1ffdcffdd1e588a507b8145ed232a38cee43db1bac0e232c472d5b5dd85f1cf3954c8c"; - sha512.source = "c7a99bf685283b415c7cf71a6700bcf2928d2342f5db8a3b78e96148fc01ad028b0921a7c048f345dd5d5fbcb3f47618390fd580b02fb4ab1594e7bf5def9904"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -currfile = { - revision = 64673; - shortdesc = "Provide file name and path of input files"; - stripPrefix = 0; - sha512.run = "4c63d6d33c21a0ac9aed990fa79eb1457908d9301dfb81b3dc7167d5b8089ebd20abfbcf29380a7dd348c6ca8c131260e366aa55819a6affde146408a8e80014"; - sha512.doc = "e891b03438257ae5e8eb3b6bf21a44b05df274cc18877a6c39569e94dcc9f5e678aed5a5858eb2e9762b4a8ac6b04856839dd47d81b5de55e4023a369e09ba7e"; - sha512.source = "e68a86c05be5c92eb8a7a224bb404cfbf96e7950e6154e2446237692320f06368c0097d7ad0b57438012a36994e838b514e4588b6eb7d31478160bdf66bce4d7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -curriculum-vitae = { - revision = 68211; - shortdesc = "Lightweight class for CVs"; - stripPrefix = 0; - sha512.run = "a650807bb2a12df8460ff4b450af6bb7122a8629aa72d5e180e196ed3f904ab70e04fe0ae79474649d22534a0a7cf0342f4a1ff953355b8003e9d8eea0016d10"; - sha512.doc = "5c07bdfa540b65a6df224bea38b5865e44f08ce042e4b465be83f580a08976236442d7bb96573ea8c5b089aeff8f02e2a9b556997a24a73d264a557e775f8d3e"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "1.0"; -}; -currvita = { - revision = 15878; - shortdesc = "Typeset a curriculum vitae"; - stripPrefix = 0; - sha512.run = "c555b0e9c7a500e086f0435a2dc6cde8da8b02df4d27be14534d28c77c1f546aafecb863bc652922e07191d0441a77db647f8d1d11e33ec9bc6014f73a5822c2"; - sha512.doc = "b3de1ad371cead2829225015d60a4defe604e63890ef06da65fa9223cce4e748707f0b6f4f0b0dcdf22c3096e381adc3432a7b21b36f834c18ae4eb32bfba024"; - sha512.source = "a1dc7d983ac6badf9ced1492c712373205d5b0a91934f0a76eb1ac546470292e6c9dda4cd5f5d721e06c90d6237eb39236f1417d1c6992a774f7a9f7df9213bb"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -cursolatex = { - revision = 24139; - shortdesc = "A LaTeX tutorial"; - stripPrefix = 0; - sha512.run = "6c58f5a0f6fb8f129e202b786c258ba088efa44639f162b9e0109182072c16bfc6ba928953d6e9b31b2b1c2f693fe064476095c232dcb9e0c6bfcf18bfb7994e"; - sha512.doc = "a0f726330a5b2d8da94cbf25fb1b1a2b22e5e9010e0cafdfdee3781bf518f0cb48adb27dce0fe2e46572460f8c1749c0db1c16e06343cabb8cb94227e3da58b6"; - license = [ "gpl1Only" ]; -}; -curve = { - revision = 20745; - shortdesc = "A class for making curriculum vitae"; - stripPrefix = 0; - sha512.run = "9d318d35ef04d171da1c36ab4646465d4aa0feebd90fd3e97db5f1cf09c28c174d0c3be288c369215812f51ca83b341abbfdf3fa44458d1994cf68dfaeef0615"; - sha512.doc = "7a56d7c3bd8b9b13ee675b99a2f5a8a27fb3dfd81dc5225f3a880f338d5390c893ca887cbbcd9ad8deae2a1d6b6620ef664ea64384f93fd93a75a5c886641a2d"; - sha512.source = "8e5026da24dddda0f266b8431fb28c27037ad920e37010fd97fdbfb5dae8024cb687b681356a6e27244dd4812bbd043e12c91508978dbe796a119e3e8633566e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.16"; -}; -curve2e = { - revision = 67599; - shortdesc = "Extensions for package pict2e"; - stripPrefix = 0; - sha512.run = "36b8d1ebbc07ea1cb78b85fe2c327a4c932ef0a88881ef9185654cda6865ea5ca017aeb33334f603fad74fa0245a531f50e2016c912da4355cb552ee5e069f97"; - sha512.doc = "d28134fe19310084b6ffee13bea26b7dd131789a124041cbecb500e070bb134db98d4cf01d7d970781ad1823327f363fe886be9615d3458ca6763fbd7039f0db"; - sha512.source = "7a9207da9be81c2dd9de00adf25f81adc2bec671e4fe281904410e964670968103a4e556806a287e830aa9aba908c353606884079f3509a66975dd9411d2c886"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.1"; -}; -curves = { - revision = 45255; - shortdesc = "Curves for LaTeX picture environment"; - stripPrefix = 0; - sha512.run = "b2ac96620bdcae2263e0ff37ef0975fc705efd2ec30fa53a5cc50d54378cb29c6ef44543cc321e6cb37dfca0ea9a6cdf85777825703b866bcbad9729235c9722"; - sha512.doc = "afd68373952dbf2a97944bcd7b36dcb62d5b65727c660af56dd8da97137ef4845037988e211996289fb54efa435833fa4a503ae4bba70ab38cd6e55f1966db1e"; - sha512.source = "cdef0242776f9976f72d953ac743a4771ac5d5aaaabf6988ef37d695c78e206f43d546bf21621c5a9f91e191c95c02ecbe9fc9d7e3f1eb23372a755856d61d2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.55"; -}; -custom-bib = { - revision = 24729; - shortdesc = "Customised BibTeX styles"; - stripPrefix = 0; - sha512.run = "95b485e330c97242bbea4b989ea9e70882d796f7ff8fdbb10b0627d102ef6177c8cdfca976a89853170a9171a69499c58711d1deeb0e420f9cb268e336d4f663"; - sha512.doc = "3d5fe696f095ef5661418e3066f2f98768968eddbeb24ce9ec84647b78452f97482ae1dd17cd9c84cfb81fc4a43052b05ef6aa4080e32a464d2ba4e8ce33869b"; - sha512.source = "e17d437ae7fb0c1328c2fa333f1f7d286a517bb536f7cf2d66ced327d1ddc78b97791852cac8fc9de4994b41f1433da17fa1e41838ddf90f1fe387eaa9e477c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.33"; -}; -customdice = { - revision = 64089; - shortdesc = "Simple commands for drawing customisable dice"; - stripPrefix = 0; - sha512.run = "d537d8357fa1d718f685d3bd05afe849eaffcd63050b8ef5f85dfea39260b9268e7ed12e727ac3a14a7194f21e4de158bc0a8143408c45e5f3718ea143a27aff"; - sha512.doc = "7512a7fa81198895666d135bd50d75345e8d7152289f51126fa3fb68a028f05666d4807e63c82db5068a9aeaca11fcb06d7b0edd4d77804bee195409bf042144"; - sha512.source = "8ab4af162c7abb96a129934f5c6b1471ba781d43dd7d0dd220a53638010c9c082d26c634a3e65c02f51bb92a7603a3aea9f370e82cea1d8de17afb9d815d1a33"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.1"; -}; -customenvs = { - revision = 68637; - shortdesc = "Custom environments (MCQ, list with picked items, ...)"; - stripPrefix = 0; - sha512.run = "d58a216909f8bf7c425f0836c05842ca918b03b928a57ab06223a82fa588a3bd3d515f6beb5ed27330d5566192a234a08385ac387563db8ad171b928749b488c"; - sha512.doc = "d807f71f40367888621fefb52ff3fbba1d5b301b670710461b0feb79eb61171ec6208de41ea15ab39c14650734f2ba6a2c5f89182f27072c87c9564fa462544a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -cutwin = { - revision = 60901; - shortdesc = "Cut a window in a paragraph, typeset material in it"; - stripPrefix = 0; - sha512.run = "922ab4c0f1158fa699c883e0fd8ed942a077c3b3109b048087756895d0ab6ead05182fbe17ab19310b78691fd77444d1460c7e021689c2eab092ed82974ed6d7"; - sha512.doc = "f37bc538e4affa716aa315535fad7fdb2bb0e5188844d028b8bda4935339965e3f375439ab0abc62d63f2f57c3d439a25888f29cdf3be484092a57ff86c86c72"; - sha512.source = "d3a544d356d4afb5599379a1c767d2aed9ace420d4540a1c62b617cb8f542fbcb225ec4e42ab65f7ddebf91df3c77a6b9bf0f59de9e6a11e06ae68fddd5b21ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -cv = { - revision = 15878; - shortdesc = "A package for creating a curriculum vitae"; - stripPrefix = 0; - sha512.run = "624d9bd1578e0d2e40e2ca76cd97d7f44d9da5c71daf737e06e6b6b15c64911af17f0da197afa17b5ff3b145461cf7efb058a5cbcd02e7c21642e660cfa3ca4d"; - sha512.doc = "c04b207a635f1b6f76e316284da987b45fd4387961c59b7b1f1b947284937f91f4d95ade824195d1f0db00766fec870e6859a6dd27cf3b6b426d095866f17d6a"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -cv4tw = { - revision = 34577; - shortdesc = "LaTeX CV class, with extended details"; - stripPrefix = 0; - sha512.run = "607745abedd1325c59bc8ae360a1c5d00834ec7bd050b057ba5427c135f17046027da3fb6130a0718e8d33bcab74eaf235f2de7a1ace483da1af87be5e559867"; - sha512.doc = "d9166421ab15d7569a4db66970486c78af43ddbda9d7f9c9488dbc46eed91ab5079c0f9b7851835afeed6045ee4c65c888e1be93a95cda14623405847267880b"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.2"; -}; -cvss = { - revision = 65169; - shortdesc = "Compute and display CVSS base scores"; - stripPrefix = 0; - sha512.run = "563d310188adc99e14bc93772f8f94af0741665c15d8013d9cc98fa5d86129d48b62473835973bba90fcb4117fbd782b029b87045e5b392fabd308c8f1a6de42"; - sha512.doc = "604139dd0e636b5b050d07417f7990c741e7400c7c656d76fb15d56a76b869a2805e43236ac2ea062826df5f102753c8f1450a4e09b24dbc2f96b6668975bbe3"; - sha512.source = "771545e51e6066529d43edd5f14f070c816c8b86478f5e2598929f34838dfd0e90d9ed666d478e8f5c3aa14da9f6f7b8658e6b1527f212c775cbc2c7645e9e2f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -cweb = { - revision = 69586; - shortdesc = "CWEB for ANSI-C/C++ compilers"; - sha512.run = "6ba6d7e560abe642d30e4b9eab349eeb0135666a8f6f27d1e0e12d825048ec772305e0870edbe85dd3b977fb3e3ea0c7d3de84d9c6a02316be9691092c6b34bd"; - sha512.doc = "306eb00fed91a6a7ec679b9ffa46a9f5a8747817cdb3230accc5f322505aa928bb670eac09c77b508186cb3e308ac347bea3107ea0a5dafa2aa6075555e0c61d"; - hasManpages = true; - hasRunfiles = true; - license = [ "knuth" ]; -}; -cweb-latex = { - revision = 28878; - shortdesc = "A LaTeX version of CWEB"; - stripPrefix = 0; - sha512.run = "5d94dd53bf3212967ae38c094115c4ae581ec15a49e3d0f64be311cd1aa190eb9efdfec2cd83bbc3bd89250efef9470a6a6af342247fb9670992546a976a5886"; - sha512.doc = "16c8cd2681e216084564cec718401b9e8d98228e6597d38c42f8ef4cc4775e8e606fa11c84d21f0450d85ee18c7ed1e5fd9e1f54bcd0e8c2927b1147ecd4591b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -cweb-old = { - revision = 49271; - stripPrefix = 0; - sha512.run = "efb1c9b65f7c628905d2dac1373da96346b6b6c78f15e8c0c8055e86c1a52b09bdb5f78fb06106e350d10a8daa378eb45f5fe788c6c3d8b23f0b47c3db6f256a"; - hasRunfiles = true; -}; -cweb.binfiles = [ - "ctangle" - "ctwill" - "ctwill-refsort" - "ctwill-twinx" - "cweave" - "twill" -]; -cyber = { - revision = 46776; - shortdesc = "Annotate compliance with cybersecurity requirements"; - stripPrefix = 0; - sha512.run = "f79e9ce92036c8a106de0a5da06f5c2b833683527f1225f5b69298b6d886cb967f9d1eb459b7a0543d89b0943a8425dc802619fadb9d69aa4f57a5ccc71a593b"; - sha512.doc = "4dfc2289e92552dde5cd1703e5644e6a19f4281dd16cb80d86caa35cfbc07eaf0f5cd57686e185adafce3883433fc87b1fcb590cd65087571115dd4b98023d02"; - sha512.source = "cf9beb92528c860a3ec39041c0436d40d113bb0cfaf89ae9c5b76dd44ca18b846b14739c1a2b447ea1ff84042dbecd48ac2cc118615ebd30013da305e822c81d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.2"; -}; -cybercic = { - revision = 37659; - shortdesc = "\"Controls in Contents\" for the cyber package"; - stripPrefix = 0; - sha512.run = "f3bfbece973cb3b9a3077c160b0212561056cbf7733e1c011b39fa1dbf94395937f4858964acd0874f1cd3ba283df9797cdf19e8e71e7363a7619c5ae653881c"; - sha512.doc = "dc72453f55c6a72913865f584b026baf287a35885548ee5c2c8d29cefd60595f4aa9f7c456f59ebf3ed3e3b72711beaf90cf85f24c2ce6773146fd2a4724767f"; - sha512.source = "55223353fadf2986f777b4a61b2f34662f493d2c70e29cba8712625c16dfa49ba50644d406f49a908afb0e4b6816666c1cf5f060685d5428eb2787b6b4ef233b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.1"; -}; -cyklop = { - revision = 18651; - shortdesc = "The Cyclop typeface"; - stripPrefix = 0; - fontMaps = [ - "Map cyklop.map" - ]; - sha512.run = "dd6584831fae3eb388f66e42f289f9bdeff401412c7df471752c4aa56bc67c16c56f6f271d11c289a1389faae138ac15abc41bb716bf344bc2f49fa087ecd380"; - sha512.doc = "4d81a01eea30a4f86b2f0a7c9c21923196dbd28c7d5ba5c1639068318ef227720550b3052cf0ead6f3194450d50dce9acaa325a0dace0e6fd230e0ed11d9b106"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "0.915"; -}; -cyrillic = { - revision = 63613; - shortdesc = "Support for Cyrillic fonts in LaTeX"; - stripPrefix = 0; - deps = [ - "cyrillic-bin" - ]; - sha512.run = "1b8889d33e5433b32d0b84bd31ef7ea96fe338456ef8e1732ea6c254dfe2f21d3600766b1e51bafa4ddbf0144e8420ad8ba6ad593eaa32c3d45dde99b0b4ec8c"; - sha512.doc = "b0b1d24d3e8887c5b9c251922157de7cf042845009c07e62fd324ba850dff9f39bc6ebad04ab216ad69070da93f77f68693d1be57cd15b038374f0253329c8fa"; - sha512.source = "4dc564f475a883cb75ae0fad6b5aecb936c1ab9cdaae857dc7cdfb3d8f06f6534542c36b053cc7b74f455a2646f081060c670b35f1eda5fa69418b1c1f97e5dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2022-06-01-PL1"; -}; -cyrillic-bin = { - revision = 62517; - shortdesc = "Cyrillic bibtex and makeindex"; - sha512.run = "30d3bdb0f92a0006613dee654714818b6961207029982d62b9933829b3d044bea0b2d9a30d0007dac23c08358a7ada2df9ac25ee92398cb32d47e9c29c503c67"; - sha512.doc = "91da42251e165d17507b37eb48b35e157c75b06fa8822c9717fafd5e7aadc60bfeb084dc30a5ec32df22ae4e69c03c3f00e8a243d187881212ffe62c96b6235b"; - hasManpages = true; - hasRunfiles = true; -}; -cyrillic-bin.binfiles = [ - "rubibtex" - "rumakeindex" -]; -cyrplain = { - revision = 45692; - shortdesc = "Support for using T2 encoding"; - stripPrefix = 0; - sha512.run = "84651aeb63d3e47f208732f3c0d54ba86862d0ff7da7c56b3d8b8d1b49b6b88ed4c5f9abfb4c1c9d8a1ef8a455632aaa69408651e238bdc4aeb4eb7709f62096"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dad = { - revision = 54191; - shortdesc = "Simple typesetting system for mixed Arabic/Latin documents"; - stripPrefix = 0; - fontMaps = [ - "Map dad.map" - ]; - sha512.run = "600bd3267a47e5513f51e67135920c15aa7aefb51f2c3dea6e912f26d1a45071f936e4c568afd322aa7e89d5139e68398b394c287d5076c17e310297fa7f8fa8"; - sha512.doc = "97d4596972c436762e33bd1d5077f7fdbe7da2a74b016a8841ad98536c2e9d9a2bd01a91b1ad2fb306c7ba06a0a5532d47c7b813d42b0bd82a3390f3bd17760b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -dancers = { - revision = 13293; - shortdesc = "Font for Conan Doyle's \"The Dancing Men\""; - stripPrefix = 0; - sha512.run = "f570e4c775a7e4cdbeaf2ad764ee147a685b5332369aea29175a76fdc9fb37f052da295d20a177eda8e4b8352d733034eba36882c2507fe804d7b996c0e0537a"; - hasRunfiles = true; - license = [ "free" ]; -}; -dantelogo = { - revision = 38599; - shortdesc = "A font for DANTE's logo"; - stripPrefix = 0; - fontMaps = [ - "Map dante.map" - ]; - sha512.run = "883c5d6f8368bed41002eae123329954fe38cc23a5e6db7feecd57c16540b6b9277cf7d13af6ce8f63994c11148708e1d3dd10ddd9d17457b015d40477f91eac"; - sha512.doc = "4612de774c6a39c7f09dfc99aa182fd37d9f3e32dece37726f1e87e48e5faae246f2959992267f5b2cb685c26177e47c5112fbe42b8f1ac3a60da92e6276a681"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -darkmode = { - revision = 64271; - shortdesc = "General Dark Mode Support for LaTeX-Documents"; - stripPrefix = 0; - sha512.run = "f844ce29d5147d9a558f257bfd1a6c32f2f1de1fcca4f3319d22528da052fc228e61606623820fe078db208509774dfc87dcd82058a2e744e703d03edc0bdec1"; - sha512.doc = "db103f2257b3d844592ba12c0e2c22d6ae97e8dc5e47521392ddd59951d9f9a56004d0891f0a5e84d511ec2043f1fa26c4cca4ddfa23ef7abea39637e6d54a99"; - sha512.source = "39a760fd973d56c94f60026906597bf74b57ddc8a0bdb913856a06358b849999e7f7c49c54e102160771e599bc3177da5788651f48abaffceb14d9e77465ac0b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -dashbox = { - revision = 23425; - shortdesc = "Draw dashed boxes"; - stripPrefix = 0; - sha512.run = "a52bac248fa26031db34686e57cd3c9be90bc18b41339d7e2dc85a68de1de23a627648599e5fdb207d3364b2b4e3651aaf9c2d90e6c3bd0f0fdcaa30fbc8932d"; - sha512.doc = "26672278ffdbdaee64b82f4e7554b5664ca3410ce8009454cfc229e3590439b4a4e212b77568605adda885761f5ad456bca022f198e259ff9a33b8e0abc1ea6d"; - sha512.source = "833bcc8f98e6fbf3e205b54311dddb9377026234132e5f988abd25e3ace36b9f3b54a95e98a5c4cc40ef1f049536093b0f779517c6f5a63a08459bf0a7ace741"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.14"; -}; -dashrule = { - revision = 29579; - shortdesc = "Draw dashed rules"; - stripPrefix = 0; - sha512.run = "4b1b993e9044eb2ed4bf6bde0c114b0cd1fe7daed38f8bc5d3e25a2705d55cb41b8a372cce84b0d61093044d970003a4317de98cb468978c8cb1a8315f980940"; - sha512.doc = "f45e0785d7c6522683e724ca27f7505e3da6bf5923d5a8c71a75ef8c67ffba8a4e4711b91b64f25dca95566448cbf74b5937dcecc73f5ec0aeff7ace8d0e4c1f"; - sha512.source = "0cf95a6d5fe3e80e9f77266033d64186300676d74a7cc39dd6f907784d1a6f7c9f83ff5a50198eec8bfc075ef5adecf58d226063f3f0e02f55dd7cc0daf691a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -dashundergaps = { - revision = 58150; - shortdesc = "Produce gaps that are underlined, dotted or dashed"; - stripPrefix = 0; - sha512.run = "c3ecf5c63fad14f82228913e0b12c6596a9aee24b6de3419a4e95de8de94e40e3d43c2b163a30cf221602ad9c1aa1c3ba42429ac2adac9d13888d74ee1f4e900"; - sha512.doc = "88ca6be34c5d68ee4f983b9385bd83047e59bbeb94af12d2bd16105bc8afb99b8e6db9d0e25717fe5bd517d7e834d8795bed30ba24455d8f09760d1ad2c47803"; - sha512.source = "1fce3d4ccecef6c2f5775792162a9cf21951f0006e168df236884f89a4bcc662c1ab9028e856805ebdf19dd410c109ca3de993c088aa9c0611ec98565be06be4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0h"; -}; -dataref = { - revision = 62942; - shortdesc = "Manage references to experimental data"; - stripPrefix = 0; - sha512.run = "da099bb462ae2698784097cb04268b039f0900fbe57d77284532c0ef694c50d422436e5e0d8ffdc9442b98c12d52c72629b29f772b0d66f226ebabca579b2249"; - sha512.doc = "6f51ed66ef467438a856ed22a7644d2bc574c789e89025cead65393d701abaee299861873d97c9509522ac7e478a35693e34d2afc0bee3d08d862b11992e4230"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -datatool = { - revision = 52663; - shortdesc = "Tools to load and manipulate data"; - stripPrefix = 0; - deps = [ - "fp" - "substr" - "xfor" - "xkeyval" - ]; - sha512.run = "323b1526a32eb4e0d81db77278d66ebb6ac91fa357f7f76c8ac1f199efdc4be17ae4f8fb83fe55f3ac9cfb8a18d163a85d6c21cc11c26e4dea0db5f85dc12dd5"; - sha512.doc = "32b5391c7197bc29783bab0c93a5225784fea999f69bdd8b1b5c152ed338716f82dbedfdb6cd19064ee409407c0b808e5f410e6090cda6d1f8ded2ca41f3ace9"; - sha512.source = "e149a3be96ee0161b2bd872ab73e74c36ea638f0a1f0a48e0268093bdff2c2c1cfabe5c0a4d3ca8ef7ee4c02bd03710c5c1b2ff9c1b543ed792a444160814493"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.32"; -}; -datax = { - revision = 61772; - shortdesc = "Import individual data from script files"; - stripPrefix = 0; - sha512.run = "04de65ca5219e0e3b53fd0c0b92fa514bec77be2f889e48ad100f93113f54e738016fdd93ae59d79ae7f4ea31108efb9cbac87a6db010b71008fb17dcfa19900"; - sha512.doc = "e1dd35b5dce9a4ea5b1bb9d9db14b8e6b6f8ab1a8f374079c2328862fb231b4eb69a05e1bddac424401d063925b4a75a9994000ee4c36c43e3fa6344badd6f5e"; - sha512.source = "076509cc39ab41b028cc17551342bcc26cf8bbcd5c12d25d291e2eafb3610d390610d36e917a192b38fd7870c6ddee60a365bfa9711b024c6de2a3494dcc498a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -dateiliste = { - revision = 27974; - shortdesc = "Extensions of the \listfiles concept"; - stripPrefix = 0; - sha512.run = "6da6a802994a06e040d43ac7fc9db0515d9273ba9d4cac061e04b05922f9eb9fecaf138eb641b3149be7b98f9139c428084b6470bc177a020386e0dc053427b6"; - sha512.doc = "53ca32cabd7e3a32d02c77beb076b08ccaa782b6a2ae249b932242987741f0e255bdc83a2b6ccc7ed2e0efbec66923798026040745152f7244984a0843c8c23d"; - sha512.source = "563840e069cd1e1c1e9b1774c5c3ee8b1703305fac3fd5f58a0afe76f154210150be05f779a94717c227978d2a1317a10f5b6232f51dc7b3e422638b84b2ce95"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -datenumber = { - revision = 61761; - shortdesc = "Convert a date into a number and vice versa"; - stripPrefix = 0; - sha512.run = "5c7d23f949684000d0e38855e11e4869433c33f82fc42da0568d4b74fb0e69fe3fbcd5f72516222059ee446938144c18b10552290e24e077f2e624286e729d28"; - sha512.doc = "18f2573f8c02685d20085c31384b75dd1ab5a47a5bb2b9dcda036a7cd1ecec80db175a674c1f148cd51a078721ed88a3c9b7a0915acd7c023c02ea9a16e2a1f2"; - sha512.source = "7835857f1c4f3e59918fe9ecc903dc09139191b050b1b0166e4e1fbe4a5d0c95f33b8591f30012ef5d69af324e8a71cf24b39893029519c13e13d8044b191261"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.03"; -}; -datestamp = { - revision = 61719; - shortdesc = "Fixed date-stamps with LuaLaTeX"; - stripPrefix = 0; - sha512.run = "558e8ec60ec317f8342efd63d0146b92e43ca37a772b8fb200a40234d48a71e5374cb3f3f15bfdef129fd1fee8ed27491bcb8b69ae2b681abee72a3dcb8f18af"; - sha512.doc = "d9627cbb294f0bcb96b019d3497b12ecd4b4eb656a1dfd70d1adc6cc4cd217bed9d4f9e209497c683f925cff4063d759b02b44bfc1f38421a9044aa8ef8bc988"; - sha512.source = "3afaedee82a4e4c6f92f465fa59ccb29976272a75aeb523d8c161b07bbe313b5e79dfd96195d0426926a3ddb3117944ab21838d085e1cd59256bae31419e243d"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "0.3"; -}; -datetime = { - revision = 36650; - shortdesc = "Change format of \today with commands for current time"; - stripPrefix = 0; - sha512.run = "3d033ee164d52f7085bffdc12f2062be7e94a644d9ed731b4d1b97a3a46838dabadcf6687063e165c65fc938a51a4adf8078339b720a305175d6cd6a3b889f07"; - sha512.doc = "510449d17b09d9207b76e732b5d426121888cf653f29bb3be8872b74a243596ac339f09d11a14a4a3007f8818171aab28727cd1713ee35c8908d2d168a57d9b0"; - sha512.source = "3e03ba12952ad5dafa701c7ddd5d79097890d13d3510d420cc399b30b1c60c2b6f72bc5caa2a6d2f53ec50430d13582c5c6fb549dcb3566f827af0d4abeaa011"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.60"; -}; -datetime2 = { - revision = 63102; - shortdesc = "Formats for dates, times and time zones"; - stripPrefix = 0; - deps = [ - "etoolbox" - "tracklang" - "xkeyval" - ]; - sha512.run = "7f2ad65f95e3881e5016647bff85b10138faaa7d26d097bdce0ec7b30cc0d913a43c2a45b0caa69a6669e54725122cf1a86117d0d4f543caba67058423af7f62"; - sha512.doc = "d43970aea6c7971ed6a3564a6681caea0e0f5606607496d9ec51d6c2fa741dd6c28754c9e9f06cde0ad1a79280b53629eb427faf820d00549468a650cbd0eac8"; - sha512.source = "511c10e67c7d77ee10d8d75704628313a1598636ce82a5ce114942854b3a9d2da237ed12fdab986f13b04ce3c2123933db91b850360b309aa52305575a7cf2d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.7"; -}; -datetime2-bahasai = { - revision = 46287; - shortdesc = "Bahasai language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "6bc05fa0f1cfbf05008de715f9b278948272cf7894e8c29b52b6ee4ba436e01e5588356fa020fd5453ed2e9bee185cb46c54ee3e808417782587c9509bab17fc"; - sha512.doc = "d9542fe7057b9972c6e0b9ebc1360c2fde8f9b3538e70efd7249f0bb344f2d5c2845acac9ce39fec6f9f7197b47e65496ffc662b9f3a3044829e4709d6202995"; - sha512.source = "7edf39f7e2c5b44923e66cf3dee57e7681c549b7ae944ba2f4593e4643e9d50b686b8c1cb6905326899b6974ec5c0587ec7a5f4f880b5b1e81c94667240c601c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -datetime2-basque = { - revision = 47064; - shortdesc = "Basque language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "73d7dcb4a2d13d4ad4747d4d2a19b839bd9a1bd55793657315832178091357f61d9b748d5aaefd317baa7f52df2a4926dad6196d11d11cbce0df78168b2ad380"; - sha512.doc = "ce083f982f95f5e4beb33a706144d26f6f09de8ede946ac89d28ad5e5c75f9a475e4e9bca5fbc7773ee90a91ca095f0b1a9908fc0f74fcbb4117ec7511d603b2"; - sha512.source = "a2bab4c1956a0471571221a57f85e9f4260e349a9b775540638255d8313f5db2c9922120e045b8c769b7b7fe1698c7fcfae1e1aa101e858e84aac32673f6fb86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -datetime2-breton = { - revision = 52647; - shortdesc = "Breton language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "725766f3227119012a79807c5909daab83e8056718cc4e116d8992d13e11867439d71392cdd8a2118f2d8ead61b1d36af5ae42438f8ca68f26ea14f0bb7cd0c7"; - sha512.doc = "f421a467caa9202ec50678d398e31e1c4cbb4e98805bf86114c97fd49479670e825c1c091955a41056adf0f9c7596dbf5dd14397326c1b88fbc2b6f75ec8ec55"; - sha512.source = "0d1d5ab08bd27ca1e322ee25f8a6d58733d29291439c2e901d971969f4f05148b2c1d660567ef07ef9d002e7939dc10d5bf37f03fb23728e6242b3db783928b8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -datetime2-bulgarian = { - revision = 47031; - shortdesc = "Bulgarian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "fe0cf5eb73c5253467a8d2b972cc20825b5179ccd3964f64656ee8f4fa5d7fb7bf1660a7e79d58c491fe74e8c9421b75c177d4c8bf7309782c81ddeb69ff1203"; - sha512.doc = "f07df79af157b8ed471f5c8021719d8ac4dea9075885cc42ed0d64405692efc5ea59b6a77448225aee477b8fb05d564ce9155b7e1efb3d9cd7b7baa794783cb7"; - sha512.source = "9692b6932f74a7e15a625612dfefd975a948f8a2111401c44b156702fad868d7d34381191b5cf675f0c17aaa6234071e10722f6b912e80f8afc4af69353dbc6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-catalan = { - revision = 47032; - shortdesc = "Catalan language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "7a414761760e3fb61ed12c656a88b6ae4d36b8268998f10ffc85a9cd362a6ee60b73b37c0994aa47603e805d785a3a0faa7266efa46c3e017535b864f2282e5d"; - sha512.doc = "d1613bf5d8a35f69bf3dde127a764434b8527f0e627cecbdda43490642cb8d0a10ae629bf5f1359b7a87c12b3845bd468fb2c00b508be1d2cd80b6ad98904ebe"; - sha512.source = "35fbd618c48265f4cd6bdccca100396f54b6379111189f8fad705e93f69026fbbba21f246074a3d154855b0a04e83c4a310b99c78e2105f821d109cfdadff6a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-croatian = { - revision = 36682; - shortdesc = "Croatian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "603052fb5cff6ea8fa5b951623efb1fc72aa6583fa1ed560b4c5266ce96cdd209423773ee0d3a592465247343f3fff966d7a9cd9698e02e339d5a1c579591f37"; - sha512.doc = "a56060b84fc6d2917fd0cf160f0405104a3413e02456ce91cbd97aebd746b0e91c730d2e2e4bbbb46f39521b5c6cbc45558bb4327c7260719ce21e8226fe5910"; - sha512.source = "5eca1a663801a65b79e0cc069bfa8840e04e08e589445713ea0646f104f5acba51d6f925d2d4ea1c36a83b8f4e095693767a3ca71a33af1015fff5f396c51bc4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -datetime2-czech = { - revision = 47033; - shortdesc = "Czech language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "048ffe6258ce1d4bf9d098e7623d3c5e25ef8215a538e33806c4d35d6368fda81941ff9adbb394085c9b4f058fe9a3b02cbeeaae8cb1f7b2bb55aaa35c743d61"; - sha512.doc = "976e98000a80e15a4ea5204f15a5288781ab35089bcd9427b62fb445f28a25ba0c03af4e64a3de688a51c5c94788732fa199705a68de3e9925f1db4ec7dcead7"; - sha512.source = "9ef924462b97d29d6102cb691d1845f68ec50054a71d93222b61af91f510211016fdaa4861433a65c589263af11a62cb23d64a79f5bb26624395589dfa812515"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-danish = { - revision = 47034; - shortdesc = "Danish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "b9e5b442282fcebfc114a772af8317d8888cdf24cd5cafebd5d3c79e3ea8790a4fd082c2facc1a466e7e5b4266b0d93ea5fb6cae64f96f3d131fd4869a465a4c"; - sha512.doc = "1d933d9d48ad6ef3dd0716fce0b2da6de6700bcd8c1d729d8216145dc5f243ea83323b0fefb6adeaf10a9fb264343e1b429044aaf86e6a77a121b0c951c2c77a"; - sha512.source = "dbccc381f173d7204eeaeb8b8a4fcf59e6f0750213986207afbef3754554e4524e1ceb3620135a93ed43d786210583b3f931b41a1c645bfb22e33dcaa45a6c85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-dutch = { - revision = 47355; - shortdesc = "Dutch language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "c14fcbb882183095c60f0e881ad1668f90855b90cce352922a562371bf2cdd556bd196ec85068775b9aec590f098c956c784b98da283ee1117bec68ee585f5fa"; - sha512.doc = "e5f2fe126eaf87ef34dce686db6e9b9c3c322a2266293517e803435dfa67b55da6a771f6c7253203dcae0dd1237096093a6463f6bbbc096c108b73bac4a641d8"; - sha512.source = "32036be5e4e8643da1cd0a2a291db4875328c5e8685f711e247eb7fc38b6b25b92db2f98bfa3769a02c982ea09cbedc75bb963d3f39c36860f9c335e73e331c9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-en-fulltext = { - revision = 36705; - shortdesc = "English Full Text styles for the datetime2 package"; - stripPrefix = 0; - sha512.run = "19f08e264921b8b12def2b20bb1d904f90dae712bcbe579a9697d1f657f148ad8311c6d7a8621f336dc82518ec64438640b49776fdab62f302b0919cc7de8e4a"; - sha512.doc = "a6ed1e804d8229d735aaf1874458dda3206ecb5e648c35af82a1d3fe524e65aeb7669088dc4bd9fd83919263d59035fd539a8318a24b2bc2470f14670e28eced"; - sha512.source = "9bf741dced10ac57d7c4fbc3a8a26b49b35d07a221f4d7ecf56ddfdea6500edeb39ef75ed0234d6e510ea07da5da06cf29691a36545dc4367b3682e879d92b10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -datetime2-english = { - revision = 52479; - shortdesc = "English language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "2faf2dbcc9e49a9c30e5af599a26bb6925c6cb6831c1eb38bb58e08f50314cde1f3ebed343fc43ff50c6338a089caf90b8aaa53093f1284c583ba217c25cafa0"; - sha512.doc = "ff904eb3279062f6573aa0190bd2f7426a18f4b67564b9b10673a88c4583c580cb88b33ccbfc0c8a979b10f6d2379bd22ad8483f19b1c4baf3f66e06d2ec52f4"; - sha512.source = "f5177d83f75709135356331615baa47cdea2a01fc706bb507391c40866b1d072260bbba4ec33fe88ce44e9995bec77941d636e5ec6132b6c4f07d2f1f25fffae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.05"; -}; -datetime2-esperanto = { - revision = 47356; - shortdesc = "Esperanto language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "6406e5a6708c1c97da6e0f8460ba70d61c403875497c57008013a3d1a8a9100b344b3d7267ed869f777566aa403110e17d778e2a47b3970846324bf08e8ae046"; - sha512.doc = "c200c3f39ed756765876ca5655b99025a898719f9723a996bd4772974643e0421edd8d36a8eeb00d29dc75ae715fb55927e31f067b1159bbb1f4dd218de780a7"; - sha512.source = "799b2197ce9f0950889a933952dcc33dc0ad2cb97d906baa61bdcf8d32bbf341d65aa2c2f1509fa59f366cb570e9ba6b4946d4d5785c5022c55117297192a32a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-estonian = { - revision = 47565; - shortdesc = "Estonian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "93e8ebc62b48da8f5c159822f53c35aaa2cbd2fb6bc701108cf6452db7eca3df39de3c1ba9b84136683d22d65a975dc138aace0a81960d1c9382309a4cee5f3f"; - sha512.doc = "268b873d870ff19a3151d4244b0329994e559ab61198ab3d76d830b1bdd6a05e8b5a7a7df2fd6eec8d57b9e28626f80af755b1866f4ee90eb0c7e94b85f3c087"; - sha512.source = "2cccbea84fc47da4668a06154b97116b39e1aa51e31196c7c9a41d517aa5f24924c86474fa8f7f1252e356a85392977553b6a28ad154d246bd5192a7e7f07b4d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-finnish = { - revision = 47047; - shortdesc = "Finnish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "45f971bd3711d1424b002f32e0535465658e50cd9abd9758faa3685aad6a6e74747e7b3cc840a38968ef49ecb91b3007ec678f63f0c0ad3b77ae0c39bdab2457"; - sha512.doc = "01470814a87a5c87bb54b17a763011872864aad8d1f78f82c2325defb7f135daf34aa2b721bb4cbe7ec80efcf839372de07c29245ecc477708fe60f3d501a258"; - sha512.source = "56f4b99f506673c89115e37dfd9458f5e3e55b62dc9dedca98747bcbc7e6e27306dc2711c05b0c8e2844aa03a4c8f7835bf6643ff082b7d1ed246a68b2af37d3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -datetime2-french = { - revision = 56393; - shortdesc = "French language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "b786e4534dad90a76fccae091d86396324c4f5ddeffed4a2aa44d2df53cc3a05556265603accbc5f07bd1464f00caa9fd5ddaec0faf8e10b4edc9ea036c3f82b"; - sha512.doc = "6744ddc0a8cd6f190de4462a4629d01b57d3a3bbd33f7c2fda8529685316565a579903bcf4192b5e811cb879eb01427c3d03c9c94ea59828b03f1763ced586c4"; - sha512.source = "0566b2fefa4f170bece84fc5cf76ebea6805f96d48476f1314d2cd51252bfdc9814ce5b46de2a78a808ff1d8a60026753ead89bad17f022b717d36c0d6e8110c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -datetime2-galician = { - revision = 47631; - shortdesc = "Galician language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "050dd3e5db5aaae106804a315e679cdee0a4e9fc2d10481f21059c410a73492d6e41d9db070bbe5112377a4f1dbec3345bc5f87efba998130cb20e31a443bf34"; - sha512.doc = "881250aaf53eba33ee223e5d87f0d8d4081785ea723d5f2e605d04767aed63b2fd8a592eabddd4343c489f1abd809218c600aa5df2447b24bf0465e7a31c8ff5"; - sha512.source = "671230a9b4da0cfec5c1afd50db2ec103c1712006c70be0c9d6d1eec637461005673c73dd1c457561e54af1409072fab111e7d93e785a91ccc6dd0cbbb497127"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -datetime2-german = { - revision = 67201; - shortdesc = "German language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "1c020ab84d3c6f5b5dfa8170d9be8344c6a63bc3a7f462b29697fbb892eb4061a502801177bf21408f3a6eb68fafb8b77711c125d23e662ce1510f75117c1d03"; - sha512.doc = "f050add5492691986f50007fcc48fc36a0a19e6a23303062c5a865be753e0c56f4f5f955efc22c4c838fbf9af79f91e0f488e00027f4bed045af483ce06cd24c"; - sha512.source = "f131874dc61bc52d040dd25ce684782d50c0519c03294f23f9c6b717a8f574751e8f2df18de0b74bb3a9026718b6beb299435af6c990e4e2d7c891e831fae7d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -datetime2-greek = { - revision = 47533; - shortdesc = "Greek language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "d067dc579e739c8ebfee602d667042c4727e73595fc199197d58d0c6caad4460401bc9d08965292b36811e38be5424c22d6dc4f49c4a9682da3ef34d46e35cdd"; - sha512.doc = "5025cf0113e24efaa2bc413da5d2c14c58ead82ceb07fedad299783c5e445a40295d54e0d5ef3a5937586c484ccaf80e40fcb95e5592266fc82e5e52966af6dd"; - sha512.source = "b0cc23d43a600f72a13234938b2d1e26d011e416b5f979f86003b4ba4cf53f3fe76db4eb5301db23263490b59735d0226f0b27e10a8f521febe52758a3f63ade"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-hebrew = { - revision = 47534; - shortdesc = "Hebrew language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "c9bfe10e1cda7e3890cd79fac15a8f629ece47971caa43229fe73236e80e1f476411aa4d05be61f7f03bc34324b114ccac2585b83cced2d38a28f279639523d1"; - sha512.doc = "636dd01321842cd0ae1c3a1ed8ef41e1704d720aeb830f03a93c921c4735c1913211a1d987a1b430e312c57440a11cf8cb80f4336b4770a13fddbd9d6a5c3cbe"; - sha512.source = "9d1cd5f81a144ebe0efed5773ccc480fa2a14fca7411ac621a489884873dc7fcc6d877c66c7e70ec6736f4e2f6a90b57c9db0516baec961230f14dc6fb55d404"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-icelandic = { - revision = 65213; - shortdesc = "Icelandic language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "020254357b8f32dc146018f3eca4080f239203128671d8e99b712dd038e39bfbdabbabc2e62bf0782a86a3f5c6742d8ae130dd589cc6ea28f87a3ebdc9e9d994"; - sha512.doc = "e3cd7b3a0d8ef17d5b5baee057a0b5c4a445c3b8ebd2894b27d5dea9e7373fe4798bbd48b83a1a96704661b935c3196f52ee8b21d624a91ad75ec51e5a246aef"; - sha512.source = "4b9c797ea798156c88f4e4350e28ce3a63111a6c8cbf7399676ccee60f117196cb32dda2bc56b7a2386756afbe6e5207d83e59405d8e0f96f59f85f2359b80be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -datetime2-irish = { - revision = 47632; - shortdesc = "Irish Gaelic Language Module for the datetime2 Package"; - stripPrefix = 0; - sha512.run = "8c1d54d5fc80b2f7dd8faabc31df20253c9ee48987c268ae685144b02acccb5c3ec6bdaaa5bc420e90ecf4ec7d421afc96d82aef1a76ec7e01fb8e5f81d0a036"; - sha512.doc = "692acb7c50c30e6790344b37e9fe3cb07f2a0e10b9d63b47c78df1b2d1bd1f8f186107acf4d75dabc14a99db57cb32810989bf7af817bfdd16fa694bfee5f17f"; - sha512.source = "1e829006f0182374511addef820ef08868eb1c00b5e82d0da82efadb4df377531755a4212fb0e2f4a5df0d06aaed39863094524b351c29dd88dfd5ee71c84860"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-it-fulltext = { - revision = 54779; - shortdesc = "Italian full text styles for the datetime2 package"; - stripPrefix = 0; - deps = [ - "iftex" - ]; - sha512.run = "29a67f9c4414d08adce673ac2b501e92be5822470511b55677b041fa1d89b55760246fea08ba0f4cac7ef6f8e7ff52498f0459d50f94bf2bc6b3e4a944976a99"; - sha512.doc = "24bceb74337abc4ae74bbf9101bd32cc65371d60a0461cec91c8e3ecc3822c848eb8c7f0bc8706ec1b2118294df659b44f3139c3a3ed1c0c243f9654ae1b3d6d"; - sha512.source = "89a91a69a45100324b24c5cca3e0bdedc8dec2a466c414e65044f55a6c1ec3c715946dd5c5ed942fc9dc8f6a597fe5f2075dd7d05c88d241da4bccb27ba9cb3d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -datetime2-italian = { - revision = 37146; - shortdesc = "Italian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "d099d05904e416d44e9a9ffb337b23e2c1f908dfddbb41cfd7629c4abaa7769c76f50ef687751224ab4ae94a0df4d1962adbad602ed3a7473566e16c5c4bea48"; - sha512.doc = "963759f5e07e01315b827d4c67364d9367d114a09d518154524ba4496aee69f1ef08acbdeb67522d3b350a6f8abf8bf571171d4c380bc3f093d59ea3207beea1"; - sha512.source = "4036338ded2298c97e49173758317706452c254bbf07dcbe83080e28b6d59415d0ff14657cd11b9a5981ca893a4033db338518e251d59d0c4eaddaa9498189f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -datetime2-latin = { - revision = 47748; - shortdesc = "Latin language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "25f4e92c72abe14db9340aae354e0f598aadf88ec109b6dbe6b48e12f55926f63fc80ca420ccbbbf8fcc8dac066520d69b653981ccdd41b2e8588d85d4f11a99"; - sha512.doc = "f683c8764e99edcd9d9a449eecd3f1e4a10a2803a20bff7be22568a69ee1b06c5d054d6664a051b0eef8cdac5bc2387175cb582d005e1af31a5be8bbac4a0de4"; - sha512.source = "9270951371b2595f59a5dd8f8214603d9a72856caeb7902488fd7e7068b16c09b7ebd8f94cf10b99d31fa95777b475d403d49429944bc79f20faf37ae9192f8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -datetime2-lsorbian = { - revision = 47749; - shortdesc = "Lower Sorbian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "04fcebad65bee525697ba96cba9d66d6acfe9bc602b6cfb207103a2bfba0d3cbbef948d614930c1a2bc785a6ae2ad6c4e0b06db58d562681225d67b7a5f2f8a6"; - sha512.doc = "7bee606e0c48dcfa676835e3a313ec8c3b79f566fba6d6b65cb34c4f939e7a7df34d73e24f0f03d569e0f6a01cb244a90b9023e2846c597eb589e984ad9d1f18"; - sha512.source = "9dee46b9c2290e00c1a9f9d7e63b3872ec206f7afe9ff0ca592824319b035da1295f566a8934d7d4e87f47b8061311682d2a6ace9a9ea15180433279759d847a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-magyar = { - revision = 48266; - shortdesc = "Magyar language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "4d3b27b0409d26431cc06a1ac83485b6d4d63b9bba30a862ac043cc27c25a77805d5c3aeff3a329e1348a32ca4ceaea917f2f840ce1696a58f00325775ae5009"; - sha512.doc = "1eff11bc2c7cdae101331521f08d3a9eb878e8d1695b35724475eb5b99e0a537bf16a00bd3c13760cb36306e84b72f15e5ec294ed958ab5d67e75ad8571ac9a2"; - sha512.source = "674e795a5b3d49665bba89c7f01abdf4c366a72f9968ea008455179319f66061ef2f73e21c6ae736e6dd960aba1184b7e374eecff8429d1b533078202f294ad7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-norsk = { - revision = 48267; - shortdesc = "Norsk language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "9ebcd994305b3b3aad61383b9ece13425b4c34432dae0aac2ce38c0219b2f19871f89cb30bd774a7db9be45cc8a21f7856f1f568c32941502b18f6089b787066"; - sha512.doc = "3d834d8572cb8f1237b4b9e69bcbcf1a5eb0a1e5c001e8610a00ec377204c570218f6d97765c3efbad9130cb2ad9ced3cb80b32bcdfccfd62d7069ece93ab1da"; - sha512.source = "7dbb4161731dceac735ce39e042713a07d3d63dabac0a4dec870a022ba79c2637d7fbde4715936908d39f3475746f243dbe2e39d88040f35822503f59c0f87d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-polish = { - revision = 48456; - shortdesc = "Polish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "3b63541325de4082a828af5131a639c11f2562b8e2951f50199f7281e7c59e2a2deaf8cba124cc8679a4de5da3e95d988bb3533eed6cdbc9471a95476ec59bc4"; - sha512.doc = "6bcccc320063567e2527ca6acce6180c9d19a3ec8a1e922e640e82d3ad2a244cd455741e059e385fa26ee6479ddd5086b9dcf73a705988adec96a311cfc5e40b"; - sha512.source = "0adc45a662620826c90aac5f0372d83462eb571b7dc0751465ea246602ffe4f7b43f6a5b3153cd04681ee8baa23703784e15b79e5ae2c15cc9e6db5808265b8e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-portuges = { - revision = 48457; - shortdesc = "Portuguese language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "976ad1440f05bd166659b5b950691b4d0ce988a3d71bb91525e4448b1520a6ead37bbb3ef9a899bac08c7dfe8cc7b9b7e15174c8ef143891133bc00e5c39e9fe"; - sha512.doc = "3cd176813f3b0bb16341ddeee4d0a848b4eee9bacfb90734d97fd9ddc3e88285057dd0bf4f0f3ebb5641ebee48b15161feb3e4e75032e32368a51bfb9ca4a8f0"; - sha512.source = "71b769e4a63cf02cf6c2794d3fb876a33d9c8b150059a2bc0960b8cd1b355e5ebde3d02b48ea47653cf781721fcec118d78301021e8b95543d32215e690a3c12"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-romanian = { - revision = 56394; - shortdesc = "Romanian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "fed59ecdb496fbad41a5558526671cddf9cb487f50cdf103f61141fb1955170e54dbc3fc134ef51a2867715e7bc714dbf81bbb11e6d30c324a87492870738d39"; - sha512.doc = "7c65be46449bf92e2c41623e785c6262c710de23527ea54c505cbe155af50dd9e9831780dd380b3d0c44af7607bc59fd3b168d700c1a8041642bbe4b4ae9cd08"; - sha512.source = "58e3773e40d6116f5cbb6f2a46d33fb6d557d42887efb130c051c24fd991d8f0709f5afbc8e6ee9b5ada21d613d4d8975488f2e691bd0951c5f5429eda7de61e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -datetime2-russian = { - revision = 49345; - shortdesc = "Russian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "2821680ce189aacf8b0303d5698d9359f240ab4e470c0e2b052235e6aaeeffc882ea4b9c9c4f91d52b1402ef7486c7115bab8058e2223b7ebd3186fbd4c4c34f"; - sha512.doc = "97c1b02377328ff75775194baeb2c3e15f2dafee303dbb85c47a0baf7f6edb4323f754578a9caf9db609477204c1310dade3b87d5a768a16fa940be2fe320081"; - sha512.source = "f9055eefe76d9844e8764ec766c0e1da7d3c61db65c754115cdc47419ab68d84685688e59939f219cc5ab87f79570cd4c28011ca597ee4f89fcdc38c42e82a75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-samin = { - revision = 49346; - shortdesc = "Northern Sami language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "fc4e6401ce02b1aa7be5fd78e5d5e74aff6ac35cbb6864cbce6d93fe0b2716510f6ccdd290c82286b8e51f37abe8460c0f8340ce0f9135838ecace7502f72784"; - sha512.doc = "e5879faedd4d4fa5ac40575e0ccd1d0db94a80d78c3d01f8d36bb37875e2b9025537c876087b85626ccaed5c90f505a98fd3e5adee64ac1bc72f48ff66114438"; - sha512.source = "4aa4d272188a8a2b6e40792b97df9b205857870f3787153502c12fbaaf81ed61d9d823a7966e147fbc1d94f761c40f179d4025166a48f358821134559a7bee3b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-scottish = { - revision = 52101; - shortdesc = "Scottish Gaelic Language Module for the datetime2 Package"; - stripPrefix = 0; - sha512.run = "b3f8c2e2c61461c162f4b7c029ced53b5f0c61398415d17044a5189c08460550bfd0ddd15c693dc959b5cb5bacef63a1d4de8a9fe11108843edeff475964aae6"; - sha512.doc = "87035e38cea316b776f2c61d0c1522e61c560602650bf6955fc7330536fac42dcb17bdad1c3828f2accd10cef009efcd805ed917352ff921d03b46ed3d0bea18"; - sha512.source = "4e4c7d02ea59a5d7592660e80c996adc11968433a2d88b54179ff15ab577a487789cba6fee4131511a5c22de2025879800544689653c48c0f7560a311b264c02"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-serbian = { - revision = 67201; - shortdesc = "Serbian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "55ddf54bb1ba9cca7836ef0ec082d98d9d280b92e1d2d108c3a4d11b5c5d89f43098215eff675e8ff5b42bd8f446c6361a98f544f2d4bcb4ae684f69597eecb2"; - sha512.doc = "b3b25cef5afc1481617cc3edbbe0aac242b1dacfdfdb9bbd30fa9d2c0f963605ead09bb9a91b016d0739b848cafce18ab17d3fd0750e589faeda0c434b4ac73e"; - sha512.source = "c36f353d307bc2a49844dcc53837ab6ff2cb17a10973419ccd848c752f0eb53b369d4f0e123e3992f96d5fcde30f204e830093d6421f3544be693a9369c43129"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -datetime2-slovak = { - revision = 52281; - shortdesc = "Slovak language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "c69d8eacf36fb7232a85d92e5db277b281b631c0c8f63df7fbba51876d1be782b7196efaaea0ac25140716f983ada40aedaa550102fbe0d445e5cddd41317a09"; - sha512.doc = "c40e20b000f3fd5ac368c310d1f11519566410963cadaf4aabfb0c9cae05e0d3e8a3810c7da451a5e206e8b5b174ac0b837c1beff207597e050ec529e82acf51"; - sha512.source = "19547ebf7016d1e416227830b81e95dd6d91c7ab7823d3fc2d6890d628a51074e4ba7b8b5f31020bf86c2fe447b60f22754bbecb3f7e65dc908ffcfa9087e12f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-slovene = { - revision = 52282; - shortdesc = "Slovene language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "1d0a73d3781fcc9ea0df63e391f6b7a0a254bfa920c63ad1a0c76b56d4770822bc4e049ce18c554974bbb20478150cd7a4f545ef8983bacd31a112fc3acd5419"; - sha512.doc = "dfb2a9808488ab0e0b225d0a397490f7e1cd2343caf0a685d8e3f48feff2ce549092771f0b4017a3c45640067ad1ede8a852e714b313d9abfc7c9642f983cb46"; - sha512.source = "f1a60b0173e8c1f6f245459ba35014e4cca9308e2c5aea203d6123cb88f6de945a6f80ae350ecbfce6554f6d2b671f32487825c5f01093c3bd3fc7a1902231b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-spanish = { - revision = 45785; - shortdesc = "Spanish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "07c321a300d779e39de46628b8e1b95d383e2a1a0af882cc607929d894f11b2e8329cb256014193d428182e78f2cbd5e3e277bc7821d3ad7a2740fedacf14e28"; - sha512.doc = "629b4a2771fe68715978afcb202d984e1032d2e0f1af95d4971a980e14baf4b0705187f4a7ef9748c024eb27780f7720d8d5010ebfb23026ad8605a42730293f"; - sha512.source = "78565125794ec1f5cf762cc27fd24c96eef5a1792941d4ce88c85bbecbec777da239db94118260feed6502e55f81b45f105a170e4b6207ec5e4201f043fa67e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-swedish = { - revision = 36700; - shortdesc = "Swedish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "b904b21b593e529ffb714f3762ca5b8de37e87fe25df593873defa43de3995d1c72b0500217182728eaee6030cacaca969376a5623bc0baf48fe33aafafc0a66"; - sha512.doc = "7d6f2468aaa20da4e086201c0ffa6e6ae031e2a23db7fcccbb9ee8776c59b56a51cda9a03dfcce9fbf81b618f2e7543272f4ae88871f2b5380d1b98ff89e451f"; - sha512.source = "bcdb2b0eb40b7acad86b37e215cf4bd3c5376cad8fbd10d7f1af32a5983243aa28d950116d40abf4ae10bd28e32c10022297b77ca40daeab15b6f88ed33758d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -datetime2-turkish = { - revision = 52331; - shortdesc = "Turkish language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "7d4b756ab2f102c7981376d6f87e5a7f7b47d57b1ae9f821185bd5b04e7a5d9a81aebc7835a9bb43a217dffcfceb5b2c46b838bc652dab7c2f468d9510c2ee4a"; - sha512.doc = "6c95641444f2eb510a330c7002bba2c40cf28daeb63fd9092d74846673c03d2aeafd1e7d61d5a7470bac95117c3717cd75566907a896f5cb4b54ccbe952c6d65"; - sha512.source = "da530162bdacda3904b07bb2d9b0ab74c56cec0341f0c0457d6bd2e27e45b2d8c1f5ca298718d96924e3dce30e83beacd0fef919d1b5bdb5dedae29c7b3edcc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-ukrainian = { - revision = 47552; - shortdesc = "Ukrainian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "5e3d412b8a5b73bb6bd2ee176305806d9b41c5a67196ddd28640e958a7019b3e73f961964b7510be4cd69833c4599db1fed05c6a6f66d4d0b3bc5ad73b5d6dbc"; - sha512.doc = "df40b4e156164a1c05a94c926d691b887a56ef8f42baee26e684383871edff05e5c6e87eba95994783cac2fcea1a5c72347c8eb86f0cca360faa8dd4829349b5"; - sha512.source = "36c7db71bd063a87e8b9f2958217c71c7e6820b4e5536a5cc46db35ef69e83dd5e7b0ddd57038b66f8405d5a24afd21253ca34f7a8d174a26b4a67607048caf4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -datetime2-usorbian = { - revision = 52375; - shortdesc = "Upper Sorbian language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "bae799fc523f01f7c70c7818ced0294bbb57a849567e05768c4f1c3f9cbe241755ac2dbda0a9ce0e3bb3f70eec45bae1c0607410302b458370a4c05951d791cf"; - sha512.doc = "bacc067e851e4b58b2978472551cf869cc9d3d4412ba930b2ab81f39c4fa9ca352188b6a6bffc5b5dc4a6bcf611146b3d1344d221732a7caaf45f95bb67d5589"; - sha512.source = "dcc7b42ec9873ef0d23026d07165301deda63b829462ab7f4074ae7c828945bc5cff2e2dba372782e250175b596b1be536dd27271e4b2f0913f42fb1a17ff320"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -datetime2-welsh = { - revision = 52553; - shortdesc = "Welsh language module for the datetime2 package"; - stripPrefix = 0; - sha512.run = "2c3b56f2e2796840fec8a60b4f75800743a4d71128cb900ed7419a7a01acd306a9ef86c2b1587e661833f8de48ef89e22c11589af21c9abfa2cedbf709c4c340"; - sha512.doc = "7abb3d603eb94f99c1fc49e53ee28996d2a536d647b0940db20e5a9aa70eb10d7e00385300bfb3adbaf4f463db20c4277a8afbf0f174c449e402c02954c57243"; - sha512.source = "92b71dbc5a21f650de8e9ef42bab3e3cdae1f4f1a48b34db9b656d894edc678e79e27dfe8b2143d85dd69aebf6e1cc9156a9b72d632065a2d146084f7da0f12f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -dblfloatfix = { - revision = 28983; - shortdesc = "Fixes for twocolumn floats"; - stripPrefix = 0; - sha512.run = "05931528012077b92702926856b1e0d1aa6472188f9b1fbff74e5534a41a3260e53b82bcdd0684ff045aafaf4b427dab6d8e06fc7a5d11cb42a545949bc6bfc8"; - sha512.doc = "5790850d01d9f3734cb89146c23077bc852d84242352718ee655f1410ee84b77366bef133d8df49fd46ad976aa007fe2c4039a08035122f93e719c5f0f7563f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -dbshow = { - revision = 61634; - shortdesc = "A package to store and display data with custom filters, orders, and styles"; - stripPrefix = 0; - sha512.run = "339bd686c658c462c9da56018234c6a31e72a3def962798772bed17bd453efa94c5f8e2d72a2f033714eaabbde8b45bbeed07d302e311d65a27c37f8ef177a2f"; - sha512.doc = "4d4ff36d121b950d7569f4ae8e7fee7e0a4790f61e8d2b58c136644d0ce455e8b8f4c1857c8df68d2f230016e5ea28a35047234ee101b3f949d1598f4e15e52c"; - sha512.source = "189d3f8bd131bb3fb8bc7481215fa670001ec9bbe20a4d1ec99a9864005b44fe9fb582ad5462ef23f62ec538fe8d2dd9136cf79e94756c4b6e02d644e2d66a1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -dccpaper = { - revision = 67890; - shortdesc = "Typeset papers for the International Journal of Digital Curation"; - stripPrefix = 0; - sha512.run = "16a507603bffd0fd0e305c9e2d21927f0788dcff750ab276349919cc2e1036b41f57696e088ab5596bd714f890ea68ece629980dc613581d5c90f586f7e4117c"; - sha512.doc = "7793786d0c34ab72954fe189bbae96a388f61f789b845b42d7fb062bab3858643e8ee730d11a5d4209fb0d728220e7ea89bceb3684118978dd8119aedf167a89"; - sha512.source = "bf4bb7b3ed2cae28c3f3d15758a48fcea3e737872b27af3ded1cda51f5b1c84ac200116fa7019972c65aa2a4966885582956bdbb717b6b427ab42f2f7b7fb00a"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-40" ]; - version = "2.4"; -}; -dcpic = { - revision = 30206; - shortdesc = "Commutative diagrams in a LaTeX and TeX documents"; - stripPrefix = 0; - sha512.run = "6cfae1fe50baa81ba778ee1b8cc76dd2d0e66e3cd4a868364857f2338b1078ac81178dbcea81d4edbe013726b7cb14700506f38e49eb528701bf784280ca7de8"; - sha512.doc = "25f768812f31cfc3e4d00717ed8d77392272f2480efe3311ecf5e922b18e1f5b6fa36892c7eb69cc077e350d5d7e55b7201673fc653c188ec8a76205f90b681c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.0.0"; -}; -ddphonism = { - revision = 52009; - shortdesc = "Dodecaphonic diagrams: twelve-tone matrices, clock diagrams, etc."; - stripPrefix = 0; - sha512.run = "9ccd7a8715af4a808a72d4dbc96a1216663c7eddb7a0fea48b77bbcb546a12d0e9de00928189b424e9db8e612778ed53231456d087a1eb83bca827852c9691c8"; - sha512.doc = "d75ead2518ae448eba251b3f43431751f415c9650e9ac023e1647fbfa828f700ef2fa3a19f53fdd6e28c9e8461e071fabb7c016aeaa62678ada20ed0b96017bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -de-macro = { - revision = 66746; - shortdesc = "Expand private macros in a document"; - sha512.run = "6847ee60de3e70db18f402744ce0edf926fa2ba1ccd64faaa9844aeca85809efdab740d99f1ddcaddb74fa54c70d0c2dc0a7e8d15575e574ce8d451e0b6248e4"; - sha512.doc = "21065d2ebaee0a2c82e5d41ae6a5ddb071623f9e405262de404557053c2f402f9166e7c3c939ec57e3d3a1842397143c16bfee9d219eb84ef613b74474538052"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.4.1"; -}; -de-macro.binfiles = [ - "de-macro" -]; -debate = { - revision = 64846; - shortdesc = "Debates between reviewers"; - stripPrefix = 0; - deps = [ - "listings" - "listingsutf8" - "pdfcol" - "tcolorbox" - "xcolor" - "xkeyval" - ]; - sha512.run = "88f9ff3f473dfbd84509adfe4491d15b7c20229361afde9cbce382be0441378cd6bb7d306c9b0a424dc065f34ab2d86eca8a0334d00fd3a5bae513776c418815"; - sha512.doc = "ba5e90ecc8c1733cdb78233099cdc95e09d02786df11606b3f823f2b1b60934cd2881c873ad7afa192ee1b0ff5ad91121896cb30e7405ee3ae9bc960d26e7f9c"; - sha512.source = "b9c0b94eea82d7b684aa358788a5ee3cb9709738137827b7a4f70ddd0d02ad92b6feecf03d0de7dd08c1ab233f17db3c973cfafef98134be33a41d6a8d7c4da6"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2.1"; -}; -decimal = { - revision = 23374; - shortdesc = "LaTeX package for the English raised decimal point"; - stripPrefix = 0; - sha512.run = "9a0d0947eacd52800b3b2cbc36d6e866c1876bd5f929896825dc604d9d633cfb169d93de0f86b0e78e3274936bb47834c222ee54b3571bfcdc0fe81bb2821776"; - sha512.doc = "977fc97627bbdbf4d65844dcb7ce267cb2291b102b718ca36ba2fee881d5fcf359d6d0dae839d4e640200d3b8a31cba301d20560f5002344b8ea256266efc9e4"; - sha512.source = "a880091295229345290acf605feb833489976ed3b661b403c8effaabd07c48730ac958a4b48dd48d429a3f031413c1392f4006b820f04e3dde6b2035a948747e"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -decimalcomma = { - revision = 69251; - shortdesc = "Comma for decimal numbers"; - stripPrefix = 0; - sha512.run = "78d257b6a3b65c44e9cff04093896240c7a9401af04b028fa79bf29dc436a18d163049d34a9a7c92c193ce07085aa877e69399f79da22696da800f72de20eb37"; - sha512.doc = "21f1a61e45fe9d83f4ca7d01375c832b230485035f39277e18a3062da98f7d0bc63aa1703258c7fbbb6330dfde15153ed9bab60afe62db9bca4250033a12fb0d"; - sha512.source = "56906bcdf0d1ed82de86cb39994682705b5e19504a97d2deabf34ccba239c499ca3b613e013c04c2726155b49a7971b9ad450d248acbeb5bddcdf4c4c7e8d687"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -decision-table = { - revision = 60673; - shortdesc = "An easy way to create Decision Model and Notation decision tables"; - stripPrefix = 0; - sha512.run = "8a0bbe49c3ef76a7a60fff1778bfc06c2e11521e028bfcb190c85e8a38932bb1f2a97c26293a2965ee8d2e4e6d2cdda54dd2954881ac9b1b8e2506529af1ec97"; - sha512.doc = "d5b9301a4308a4e2709b4c82a621fbea2af0cbd767252446f698f269b3ef131502d3db3aaec6d192642b154b546124326280ca4c1331dce64b36517db51c3bc4"; - sha512.source = "c24db9cf19bf41d714d643d2be4bad5e339ba8f57175186793db0ae03b941ddfcc3584061ec4ef2aa2de550103346381d31c19a054d428210b35ef083866ba28"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.4"; -}; -decorule = { - revision = 55230; - shortdesc = "Decorative swelled rule using font character"; - stripPrefix = 0; - sha512.run = "783f09b3810616b14f04dace838ed1ed2faf32ea4df84dd0973df375928e16fb129ddf6429fc54560a317da0a9422630becc92543e1a1da76809c4962c423fc7"; - sha512.doc = "0c13e2ff2744ca2d0e32446a85cbec06d832ce1fc8af5a719f3c73ed59e1a85461d5f51d33fe5a51a89b209f80196ad52609e83adbf7cc41336f5bfae8c4389f"; - sha512.source = "84ab7801ab7b0772ffa3520a42e132007e05152e206072fc1ebb43d8d9675ac4929ad1abb30d8111db7d825f05d37b038ecc923267c5095ed62a34cf3955dc20"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -defoldfonts = { - revision = 68234; - shortdesc = "Define old font commands"; - stripPrefix = 0; - sha512.run = "f6823da220c00ffd688d0b25d06109f0f3a7ab606d535631d9197a26b02388b11e4dedf41829c94ca4a414cbc1cee81c425d006e7567116b243272fa8d8659fd"; - sha512.doc = "d799609d039e98e2b737fcff5bef277359818838a8cc1489dab934d6b890ce480b7d6e935a84562662e8f130873d1a2dc777e08b229b7d5c0b431b8fde5d6978"; - sha512.source = "5bc0c27101fac6b15e8e792bb4436c4f5ada6684bdcc254eae8466ef07ed7896957544186c09ab43d8ed278efcf44f07c40c9ce5c194fff081bd46a6e628704c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -dehyph = { - revision = 48599; - shortdesc = "German hyphenation patterns for traditional orthography"; - stripPrefix = 0; - sha512.run = "2dc4ee5b4389549c032f3a4d87740ab3c5e296a1ef109a6b673656a82ca4c317ca774f39f61417568b8ccbeac787c4058184fc893d53799bbf0b042ba5aca9a2"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -dehyph-exptl = { - revision = 70496; - shortdesc = "Experimental hyphenation patterns for the German language"; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "german-x-2023-03-06"; - synonyms = [ "german-x-latest" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "dehypht-x-2023-03-06.tex"; - file_patterns = "hyph-de-1901.pat.txt"; - file_exceptions = ""; - } - { - name = "ngerman-x-2023-03-06"; - synonyms = [ "ngerman-x-latest" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "dehyphn-x-2023-03-06.tex"; - file_patterns = "hyph-de-1996.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "3bf6178cdff605d289bd5b035416953b26911b636786340fb08eeedebc8a0a6ab45712547f6b6eb312751514216aadf36357b344e38fb3bf1dac84bdd6fe97a7"; - sha512.doc = "3e41d2581f5b96afbea332529ee3d9523d935fec0e517a1a39ce04a405328241cc3bff97a00af3ac363a2a413c4dd70c9e38102d1ecd65ab8aae994abc46e4ca"; - hasRunfiles = true; - license = [ "mit" "lppl13c" ]; - version = "1.0"; -}; -dejavu = { - revision = 31771; - shortdesc = "LaTeX support for the DejaVu fonts"; - stripPrefix = 0; - fontMaps = [ - "Map dejavu-type1.map" - ]; - sha512.run = "a26a57bd02b14c6e67d328c2c00174730b819f7da37ac147ec7f34f37195b6aa17e3223ac4d03617f5239700b1dfa45ca1741eed7b4488d2e604f02ac34ef2a3"; - sha512.doc = "7e3364a3e0863c63f2a66057780fa922cb53f4da2f81e42ce9e200d5a034854216f4d4b833756a6d4d6837385e48aa8d03f608846f2f95caa84a7ebffe3257b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.34"; -}; -dejavu-otf = { - revision = 45991; - shortdesc = "Support for the ttf and otf DejaVu fonts"; - stripPrefix = 0; - sha512.run = "d0d32f3c9d53a1a61e6e717a6275f3fc934c0815fddc3b36fe2afbf7702e5128d4cf15e8cdfe8b02009a6fb7c203ea42b134eeeb080b9765ff99c4143f887744"; - sha512.doc = "212663371f747b03694327a40de3bec0be8efd5cda15c0cc343284f3a427890e8d16c4223098fc16a260b837a9d522c9cd35876a4c1004e09ee9ee29c05ec7b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -delim = { - revision = 23974; - shortdesc = "Simplify typesetting mathematical delimiters"; - stripPrefix = 0; - sha512.run = "c18dc230c5bac8db3d66f062402392761467ad18f48a65930a960c0772be30a7ed729a50657b12f533d72086563a67a98e8f5ce7afdc9947b52146e76e22b157"; - sha512.doc = "c343842bcc03981c1814f5cffa2ba3eacc2e6abb5673ba700859406869a2398518e9abf02e159f4d92bf91383c3a6cdaa9f5720adaec81715fa30f4b8f36ff9d"; - sha512.source = "8ff42847f918ab8d65eca86ee8daadd14ee138f984e06e1c4d66704ab4b6c53c1271b23aeb33003f9a7489e22e29850711efce99459f10764150742854570034"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -delimseasy = { - revision = 39589; - shortdesc = "Delimiter commands that are easy to use and resize"; - stripPrefix = 0; - sha512.run = "7f9b1d77e9b9bdc6e5c45ed3c38606fb0d65113f7303e03f591c1b84aa83748d72fb8ecde0cd0c7b19d1bc9fcb454834e156429fd9080660aec77ddfd7b53e42"; - sha512.doc = "bc9c1ff757a9d98ff9b84993cedb62ee024d0f4aafee301db0d862be3d45c76d8d164d2d3099ae37d41017316282db1e7882330dd10de43a9539ba0b10e86b08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -delimset = { - revision = 49544; - shortdesc = "Typeset and declare sets of delimiters with convenient size control"; - stripPrefix = 0; - sha512.run = "5c19bda2a87de91ac1d32981198ce7718d490184d4d65dade231b66c3f46621af91dbeb89bb79ba1370fd82a0527d01d0aa7cd9dddeea818e8c4b4380a7b63ed"; - sha512.doc = "9e671fa601b878187b5b3ae1a47feffb6c451fd42f202f948a87b02f35385b47239947a3e91260e699c64c453df161d9ae734fa3a8e241b0e47056181fefc46c"; - sha512.source = "d5618af6db29684ddd58164c9f55fbee73417d6968550361d7277558de98e621e2d1233b593c87860ccd8f7beb66a3c2369518736e14c86472d77425d6499869"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -delimtxt = { - revision = 16549; - shortdesc = "Read and parse text tables"; - stripPrefix = 0; - sha512.run = "25332ff7d2602047938630668c849829844fcbd622f911542bccd59d2eb1293e406cc79aca08ac3acaa98828b4a6fa4da98feb08fdf678ad3863c70cc2fc1817"; - sha512.doc = "cd9363d8d44309c2ca51431bae067d87c790180eb884888144cd089cc9c14f83e1e7ea2389650d547e47d4575755a5b6b369e82b76cc19150b1dc973e99109fe"; - sha512.source = "487557d866b99ec0fed6d9bf18c4bdaffa4ad6a8294cd2e9c681a4f65fbba051a97577b82e7170464daf4eb9f154e66478f46512331e1f4f41b48e61d65a86a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -democodetools = { - revision = 64314; - shortdesc = "Package for LaTeX code documentation"; - stripPrefix = 0; - sha512.run = "f1c15d50ff6078ecfb012e5235736785aaed4cb59ebb8f4d54c06865d5299b7b32ab436b79671d68c8557b12de65cb50f162424affb7a91aefd4fe4dfefae04f"; - sha512.doc = "ac49187b57e75bcad5d70960711b5a34162a7c97b237a1fed19d08089f3b7abdd7db9ea24368b8f0f2e9e4124c5f8832ea0570d8f37e002d00ec7007c784386c"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.0.1beta"; -}; -denisbdoc = { - revision = 70611; - shortdesc = "A personal dirty package for documenting packages"; - stripPrefix = 0; - sha512.run = "ffae3c7f741d9a6c53ad3681d929d26d1ac7679477cb66d3bb3e7cb4bb81966137aa191810526b322f13c52aac31111ee4fc4bebdc49f8be78b40b26bb4f3e6e"; - sha512.doc = "1bd19497dd7fcbc7df9416a43e09dd68a825fcff6411f81b9a19b100915296f094898a8b746ff7dce263a7facf5b776c08d93e4d70052b26e180a58079e62cf5"; - sha512.source = "437387ebdf81424660fb88dbd758720ce709b1c771a979b83b462f08fe923b393cd6235f373aa20c91aca43e1cff850e19c6abb8dc34cfbcd42902fadd479754"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.5"; -}; -derivative = { - revision = 69746; - shortdesc = "Nice and easy derivatives"; - stripPrefix = 0; - sha512.run = "a936429cc5b9933deaa349121fed565fd46e2d81f8d5a5be3b282f3a5107c13e2ff29e159759c10dad12bda9d5fefc5177fbba636dac0dd31aedb0074cb5ea3f"; - sha512.doc = "8951a888d07fa9136a71c0b0fb25b7f3925e137100460fb41cae0766c56cbbadad6b58e0afd690a608306032f5c2d95c6d4bc8f07651a1354b184fc28b9fd2b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -detex = { - revision = 66186; - shortdesc = "Strip TeX from a source file"; - sha512.run = "e258d80d1509831132c4f70df81b8e93cfc9d92ee74c5d39e7f35bd4f71a3eb93fe3594afbd5ab0e33cf0b6f45c816506e32ca8f41427f3c3fe661f3086100d1"; - sha512.doc = "3d5a3b371e007bda61441460479a208062fd0d477d1fc9ab9a6764c1969fd383acec9e336e8d0b16aab5606444f5d87335320e010657cf088e9caeb18d6dddf5"; - hasManpages = true; - license = [ "free" ]; -}; -detex.binfiles = [ - "detex" -]; -dhua = { - revision = 24035; - shortdesc = "German abbreviations using thin space"; - stripPrefix = 0; - sha512.run = "c6e6187bdfc80cec3ce092a4dd3605055f3ad67ff49777bf0948af128c8b48118247ed9ca6f5feb1a69d32719f81968d8259794082a28277796eb6beccf9cedb"; - sha512.doc = "a2f9f61ed61c5476d5f70fdfe59a451e7b3cafd3412336c5767b53b0157416149ee9ae924834f8a05beaedabb9e4a8dd3e4dbcb2f17b733af113c0a8085e363c"; - sha512.source = "ff72f267dcbd05830664f9ebc328fa1b6b80eb579627c5ae78965b47b8b8605ddf33c6b6a9b343774b2944d985afc9a9816924f23e8e7ec9fbc807f00bddb143"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -diabetes-logbook = { - revision = 54810; - shortdesc = "A logbook for people with type one diabetes"; - stripPrefix = 0; - sha512.run = "427912b3eeac373ba82f99b30a6ccf360b285a119248e9dd2aa175cfb7f2538327331d9e8eab7ff62cfd987466352c08016313f51b8651c4b42484fb6f089bda"; - sha512.doc = "3a8c1c45b24d23ff236ca2d8bba6ff6d9ad055a688b5621a660cefbdff4e1407d71d96420cfa39dbb896f8035e6d5a2bf3f33fc2e80074527c9a41fcab72f976"; - hasRunfiles = true; - license = [ "free" ]; -}; -diadia = { - revision = 37656; - shortdesc = "Package to keep a diabetes diary"; - sha512.run = "55a246d4e3ab86d6300210d830ce464a935bb83c9ffd29b5387f0a56f5c82d4c5a71cf107f78ffe0cde07f17897e2f949acf1fe70da9da7c7992b330a07b1c68"; - sha512.doc = "e7487bb47fbe8aee714304150c00866780782a9ad32bf6ccbb02799aeb251345ce1cf042e8b4d7b4011083a3be2fe3b16b78f25a4a4206d173ac1384716592ab"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "1.1"; -}; -diadia.binfiles = [ - "diadia" -]; -diagbox = { - revision = 54080; - shortdesc = "Table heads with diagonal lines"; - stripPrefix = 0; - sha512.run = "34d2530343877efebe9ee53027253ddce0e59df3cd70900bf0f040905f34a8ad9d41328aa3c6ecbb622f7731f3bc9c4fce289caa58e2c1db46a6ec1bafefe6ca"; - sha512.doc = "96310db4878e417f09e6202e5ca86f29524af5c1292ad8fed2563f1872e094be1249c4753eac5129c68492a5fe9ea87857783e2ca9af1ab77dfd1ca9b3309b2f"; - sha512.source = "65ac012205c309099ca2f1a23f6446abb434a1a9c66a36d75d15021eead74feeb70c21024386fc11b223386100404b35a0ec3571d24aeec13b5513e60b11b3c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -diagmac2 = { - revision = 15878; - shortdesc = "Diagram macros, using pict2e"; - stripPrefix = 0; - sha512.run = "553d3610ef7bba5bf669040cfe6b51b26718b9f04835413d43c3f8a018a8a37274b445bbdbaa4a512aaefc8327f6a2c7abd8d754b3d8cbd4687c9c518265ad09"; - sha512.doc = "37952cbaa4c20180a2d09455c748b245927245c40093510a79fa0461e5836197d8bc05bdc3cf5c7bafa72c54cb503fa9722d7a8ff9a0630ad1b5e8382b4029d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -diagnose = { - revision = 19387; - shortdesc = "A diagnostic tool for a TeX installation"; - stripPrefix = 0; - sha512.run = "91fd8eb4b7d896f27c15c2b3b2a0a9bc839bb736a1fa053d47896c6b989729c3dc3a644ad59f6b3bd4164c150034f6ede5d52b680fb1c8cea6838dc70713f654"; - sha512.doc = "f3e7152e656ee4c5f6ac28205b1dd5e9c0cf19c3d9400e2c40c8d8e9fecbcbc01cb1f7a36534849b6ba26f222f9547e3d669114a7d8923645528b7150cd10de4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2"; -}; -dialogl = { - revision = 28946; - shortdesc = "Macros for constructing interactive LaTeX scripts"; - stripPrefix = 0; - sha512.run = "68fb25b66499e289c7615fda04fec859d2a3a6105ecb3bc69ecd0e5af8f87027e74170495fa587f21767028d9f423cf04e3d11768ea0581a7474e9a66d62882a"; - sha512.doc = "cc1fa10345fa089cd86ea4b0a638334c55c6a57cac3a9c549469cd52cff27b8eb3d349ce14d49de14fbb65f41d1887bf98e9c69081688703d8eef06e6324f684"; - sha512.source = "0a39faa751021dbfe7638f139e50689201f93d4490339af70b4ddd42a77cec252cffe7a18a5ddce43ce8dde7f9645dd088fbe9c6cbdc4efefa65280f70c54d23"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dice = { - revision = 28501; - shortdesc = "A font for die faces"; - stripPrefix = 0; - sha512.run = "7ec762fccc174a13f2a84ee43aa49319548aa970f017cd17bca73add506ca270a6ac621f51ff96d47a4f5eadeafc89ecc44f1c99b31a2e76722e648519e1fd69"; - sha512.doc = "9c09c47b70e28e4c8ccffd4c75f8cac7942767279d0e01e543538ddf0ee70fe60cd15d1e3ddce27b56e1a9f865d5ad9b1794a875e41d131d763c11a3e0fb96ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dichokey = { - revision = 17192; - shortdesc = "Construct dichotomous identification keys"; - stripPrefix = 0; - sha512.run = "8ed4f0010546af68390f93642cab4495226387fd7461383e32fd3dfa72867050d0da05ba90cb768c6893afeac9bfe55d23b7299ef4a76432e8d11252012b47a4"; - sha512.doc = "16a75d20463a0b0b508c2d50aa67a77999cab525e003704ab34663d1f0212c39432caab0e4df1c69b540be014bc86901031c7c8f647ff18ceda77dcef7239233"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -dickimaw = { - revision = 32925; - shortdesc = "Books and tutorials from the \"Dickimaw LaTeX Series\""; - stripPrefix = 0; - sha512.run = "8e478160699ca5dd9c52ea7e6b0a7be491d0af44b3022c22797b02b9e6ba6ef67ce9dc35649d9a2ebb9b123e3fbcc02c0602271bd8049a12c4520a32a15d4ef3"; - sha512.doc = "5ebe8605d1a4ebeb11896919c39aa736220e9ca247912b5655dbcadf03bfa45b4cdfe44ee6555bf8d5ecdaf63b0d2527d3d58ee6d7056a194a6a42f88ab0aa41"; - license = [ "fdl13Only" ]; -}; -dictsym = { - revision = 69720; - shortdesc = "DictSym font and macro package"; - stripPrefix = 0; - fontMaps = [ - "Map dictsym.map" - ]; - sha512.run = "1f1c145c9231616b8fd603604b252903938ced0d0a85f4ce2bf6775f123d47a153d0f1231fc78e965da56befd94b71901c5ae441253d0266fc984d47e9b113b3"; - sha512.doc = "787f3d06b1239c95022c8dd64f07d98cca654250f9846e70f2e7571def724b0e316d66d60289ebbcef204088d6f603d7702af36b985cc640a4f963adb7d347aa"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -didec = { - revision = 70237; - shortdesc = "Fixed-point arithmetic with two decimal places"; - stripPrefix = 0; - sha512.run = "ed59a87d35b2ace9bf525634d1993400348a114669c9a358aa18836a152c5d973584a10f9514014336ca0a90a2050abd5cbf69d305cbae547d644f17c0873d64"; - sha512.doc = "a6a46f0b9e57e3e3e124ec719026e75516722d32d9b0e29d49a736b57123c7d916551a5ddc26a60d972932a2134a236efce0147d13ce645ba5c198bee574ff39"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -diffcoeff = { - revision = 68838; - shortdesc = "Write differential coefficients easily and consistently"; - stripPrefix = 0; - sha512.run = "a40e95018d471504d5d0cfa2d6ed3c43bb7d4a749a97200b2ed682905d6b448cbb51b80d27d772673b747fdfa3c9b02515ffb32ee9e44efc67445bc4c8cba3ba"; - sha512.doc = "65646cb4ad22f5755be51c5c8e1ff907803d9d3817b76da8146d81b7b42ea4c9af07710d55d861795a2e7f25f0adbf4f0c55bdce208a563c3ad34d32992c17ec"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.4"; -}; -digestif = { - revision = 65223; - shortdesc = "Editor plugin for LaTeX, ConTeXt etc."; - sha512.run = "098d625749cee42f965d21ef5ec2843211db36fd0f4cced882ed15f32a20a2d70bf292b01e6797e7ca097adfadf2fd40d3c5eef6c694da39e8302770cfb784d3"; - sha512.doc = "fabc6d0ea5a1e55b7ecd6430b2373c15e413c985485331bd7bd5bca437947a76ac7d8ac6ed2ea3d6afe687284aef673b0e302a1c9925737c6e1d95cecf2ea8cb"; - hasRunfiles = true; - scriptExts = [ "texlua" - ]; - license = [ "gpl3Plus" "lppl13c" "fdl13Only" ]; - version = "0.5.1"; -}; -digestif.binfiles = [ - "digestif" -]; -digiconfigs = { - revision = 15878; - shortdesc = "Writing \"configurations\""; - stripPrefix = 0; - sha512.run = "a1d5cf0e93aa2722087a491d49c87c1b6c1dc863a39807f28dca198d4c52d8add42706f992ee91b6a42fdbf379293a2aaf3a21199094526c545f41002e8992d3"; - sha512.doc = "95e948491a51321671b15aab55dddd7c6b8bad78bc67bcc25db0970dc478d1bba898fc2efe44537a18d46f3fcc73bd2af600c4a74af4982e8de8a5fc0345a134"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -dijkstra = { - revision = 64580; - shortdesc = "Dijkstra algorithm for LaTeX"; - stripPrefix = 0; - sha512.run = "5662fff484dc88098c2bd22784aa95c4d990c5a725eedabaa1f542c53671783fc89ea1a4d6f7450483dcdb2cc8ce758a8a26c40d7ad27b93d7e3eef4d31d2ebc"; - sha512.doc = "474f8fedec9daf17363773a200b81ba57f57175b1c52de5b7a7c8f7395996725284056ddf4a9e3e68baa1197dce84ed2767795956a403946f530492b6713b8d3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13"; -}; -dimnum = { - revision = 58774; - shortdesc = "Commands for dimensionless numbers"; - stripPrefix = 0; - sha512.run = "636543ee5f2e027ec242d59ab8af28e8aa6f35d3e91480e4812a72df3c1636fdfeed2cf472c79b29fae5ed65224da4ca4a0bf5040e2a4360b73fc5f4cec85bb0"; - sha512.doc = "a00eb3157b84a22afeb66c6f918fb434bb2a183afba110340b93cdb7dc33152f4b9472da134f999f36057b7ddc221a2a78bbaac5fa0509e452c4d8d6e96ebcf3"; - sha512.source = "2d729252a866edd8039c2d09b8ebc92c28aad4b0863777460c69075d7c4e1065ad515937e13f2de5b0578a89c4693cc508dccf002823e5591a6960c6d2752456"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -din1505 = { - revision = 19441; - shortdesc = "Bibliography styles for German texts"; - stripPrefix = 0; - sha512.run = "cb9b819eb69ce4870dd36da844b1d24e4f678ad05f43eabbe861e9de5b53258e45e70530ca76c0aa9fcf54232e8f33dc55623f94c1d9e5fc3dfc48481093c3cc"; - sha512.doc = "4479f5ea1e1ade4bc7951d5722e397a688e75293da55ec57dd0f3d32add2bd551844da81336be0a77cc783e4c9af958be46501c4b78adbbf8a5463770b5cbb2c"; - hasRunfiles = true; - license = [ "free" ]; -}; -dinat = { - revision = 15878; - shortdesc = "Bibliography style for German texts"; - stripPrefix = 0; - sha512.run = "0b22f43a5088f669820674b46af72e66f3f2714a36052bc7d18c334b202d0060fd07b1a608626adf183314d2380fad672baf58307ed83aaa888231e75c63b1c8"; - sha512.doc = "f4491ab35e2ae8003faa8220e88c0abd2d970cc6b985d2baf993effd2ebe94a964ae8ece6db70a55f922abc83c91cce5f598ac2e722b5eb7e1584aee436e4393"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.5"; -}; -dinbrief = { - revision = 15878; - shortdesc = "German letter DIN style"; - stripPrefix = 0; - sha512.run = "0c2679265417acb042f81300895be7dc7d6b8d8f0bfa2ff8853b9c1adbb6bae78598c7eb4b7c2c91a9f95959ff7a7945f846e1f262f923d741e6fc77458be9f0"; - sha512.doc = "5182bf0761a484e89331ced44d05f82da097cb7be010333ad3eea1b987119af3f3e2a3cd8ac2c4b2b6149a09a5789325edee49205fdfe52d2960c12edacad0af"; - sha512.source = "0f81c2cea6799ccd39039b3fc9c45ab38b2041d0eef6efad245cae9fdfc17a7f967c24509b241fd19870170b4028ebed40db25884556bdf74e0ce2fef1a6e1ec"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dingbat = { - revision = 27918; - shortdesc = "Two dingbat symbol fonts"; - stripPrefix = 0; - sha512.run = "d6bdfc62eff8816e03eaea41ffbabf2d3af7194edbb2f9073c8d8b3d333c75f0b587a74556b916efb40afe41c88a8029f0dd764d7dc5894aa50e66e06fccb77a"; - sha512.doc = "993ef5169759d86641e2a3185064f94df858d81d9b7ba4b0516b22abc51eab887b5d02ca487ad85b007e7ee3117563a257d80b803a361ea1d32857921e794b9f"; - sha512.source = "01e935a99ff83496cd1e5c9e297d316f879fa8e54808c33a2daa54c78e1afc5048d3fabbf93450d15d6fed09eb59389348da266c751782cf017f383a97214d2a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -directory = { - revision = 15878; - shortdesc = "An address book using BibTeX"; - stripPrefix = 0; - sha512.run = "c07947f06fb08da461391cf6101a7a2e55875179c5d19b41007b0d11ff1881623e353b813dcca1da1f09e55beb80bf412f85ea6c9f7e3dd6e52a875770a5ffdd"; - sha512.doc = "24bf3fe447363c20e4ace4fb326c329a244aaeaafbf6f596ec91a3975e7cba86a2d711f9a5f10c2a70d72d74bc08dd2540e5139b4c4b525103e867a9d8e62bf9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.20"; -}; -dirtree = { - revision = 42428; - shortdesc = "Display trees in the style of windows explorer"; - stripPrefix = 0; - sha512.run = "5faecc2a6d79ae79929481c283b01e69df482267635957c5eb11c264d924ce299021d95baaf8cf6f9cb10e57f5fe14820c6b3506021b4d0213494bdeff5746a2"; - sha512.doc = "9edfb6fbcf4278c2b24599b58e10f64918d901bdd19dc0e9e8c8bd77756f2f3ba5dc13e31fefd2bd5f1467a0fb0dc0e765fe4e0515781103bdb1b81f687def7b"; - sha512.source = "4939918ace772a76142674410f9a1e91c698e02c113517385814346399cc94e031384905dc2719d717ac1dc65ff04d1d5a7049408ec55e20b4c0000f4b8a7049"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.32"; -}; -dirtytalk = { - revision = 20520; - shortdesc = "A package to typeset quotations easier"; - stripPrefix = 0; - sha512.run = "d5cf28f17a68cd064a290769aff11e656debe87ff0c04e61d4dd4fe87d285daab6dab9516b80b33b03680d50c420a4f3a9858ed5d2d3d5c96fa7fbf9989d29d6"; - sha512.doc = "8cdbdbfca4bdc58a560703b6406c98334ea0b5d9920cbc98ea0fdb7b56c9f1d48844167201829cef83fa84f0e21530baf2fcf4a3f8f8b5e44c5e792864ebf94f"; - sha512.source = "448c9b5765cb054981e306b795f7747e6e5a9219f00a4698d6f5ee36ebc56c80a1adc857212b3baa1a065b9a8f585f9938e2d20d8f6d30f8d17aff9fc80b11c4"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -disser = { - revision = 43417; - shortdesc = "Class and templates for typesetting dissertations in Russian"; - stripPrefix = 0; - sha512.run = "98c497bd8d422cacf639cb38ff3a489b5fcda3f92cb5a734287fc930666867eb0e9e6f6014ad42df527d3999eb5a87da28d7178b47cc53eb44a338567f952ca4"; - sha512.doc = "ed0c04c0afccd7f9f68bb8f65a6497b9cbfb2bbcb5333852da7b790083e71ceec8348f6893f1e0f16bef7e4b5ca0b9d1a58ca46898dc58a02f0324a62971b916"; - sha512.source = "9a9770eea5ab44b2265cb191bd113be4e98038a0ba8f3c92ffb837791cf59447c82caf63d50af6bace698a3b5b8a2bc25f427add6cefb436a6377df4816524b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.0"; -}; -ditaa = { - revision = 48932; - shortdesc = "Use ditaa diagrams within LaTeX documents"; - stripPrefix = 0; - sha512.run = "1aa2fab8150212ae8dbda9d0138a4c396f47256f93582ed38d9449f9440daba9e07dc0be397c49981e2d1813b7e41d2002fb7ff914382606f417f2738a8d2735"; - sha512.doc = "345d6d7d3f21d2dc728b93e2cbfeb4fc1f589797e852604809b1ff3e7bca53414d684571faf8245c740a50205e7d8787afd5304beb89efd3545a389ec4a74331"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -dithesis = { - revision = 34295; - shortdesc = "A class for undergraduate theses at the University of Athens"; - stripPrefix = 0; - sha512.run = "b11165408ccd30427390e9f409e8f561122d1a2dbe821ce90687df9feb2faef692d8ccd75fd8372b975a06e3f11bca0ba6e873d59b30aabfa95015ca35e557a8"; - sha512.doc = "25058b262f803fbbf3c41fa62ae8983ade351fc7bb65be7d886a4300390f836ef5d1240e59571839b407afa2ddb363e6c31e76e36c160ed3fe0c6d0e0ef71fbf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -dk-bib = { - revision = 15878; - shortdesc = "Danish variants of standard BibTeX styles"; - stripPrefix = 0; - sha512.run = "9de9e026b9e3de53b297d7925bd0e4e9ab08562e798a8f1b9e6988ecb891067534a741aefbbb81f1c53d7ae6b6cd0e0796d8c0690c5af661e76a5c6d9ea876df"; - sha512.doc = "258d8413d860f6a30c597c10b8c25f352166f8bc39cf23714a137e46f4748ba716dcae8eb8b6e17378f6a850ae64a68a9f331c8301c938f0a8042d967b3e62b3"; - sha512.source = "ddb3927504b35d025c339bfd1c072e9ef770a159f046bf86220ea675df481e5b781026ed6395a776f27518ffedef83b7c5f95be30f1be49747a76bb2e2280817"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.6"; -}; -dlfltxb = { - revision = 17337; - shortdesc = "Macros related to \"Introdktion til LaTeX\""; - stripPrefix = 0; - sha512.run = "d1d7bd6a855d131324fee30bcb920e0dfa6ba733a1d52f94c59e8f328b533d63444b5ce7e5fca9dcc7f21833a9cef84460106aab0a578fd17974c0e348f1ee07"; - sha512.doc = "171d6661ca71533fb869832be2bf6f7d26244bb5735fb884b5b1ce7c27d291b3e9518a902d6c7565d94d2c55c37b00564184bc5851824a00b5a71963a577128f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dnaseq = { - revision = 17194; - shortdesc = "Format DNA base sequences"; - stripPrefix = 0; - sha512.run = "b4a83c42e16aa734611dd8295aa033904828ac1825ccdd41f297586c0667ebec4a43606740fde56bd01f58ffee1b1f4afa647ce196ed042a5dfdb641f0ee2d7d"; - sha512.doc = "089352ea3210231ad158ecb0bc17d5ba0a9efe49ee4c609554f08dceff9ef534185a7f9f17526910d3b602c4c6c358f211fec4cfe27bd6df61555bce4f9d795f"; - sha512.source = "f4357ef3a23d8b1c7ca3168441ddda57fe725c4c17022807464e61035b89a8a8334684144d86f3d6ff0f3955c1c928903b80a61e6b1792cab633d6dab51d44df"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -dnp = { - revision = 54074; - shortdesc = "subfont numbers for DNP font encoding"; - stripPrefix = 0; - sha512.run = "27a4c150b3b5e3fa23e0df55289154d44e3eaa55330544e426cdd3126f8ce0308abcc17fa5a011e12d83460616cad039cc483f08d7254b64d4dae933db6273d9"; - hasRunfiles = true; -}; -doc-pictex = { - revision = 24927; - shortdesc = "A summary list of PicTeX documentation"; - stripPrefix = 0; - sha512.run = "c866f0855f701917fa81966c16a7f1c869320ddaf38e2c1c2a71844fa7b224fe2216f267b7b700ef6e36a13f97fa6f33a1d05342d5a7a8dd47ccda761fc577f4"; - sha512.doc = "3440fd4d0e2117594d6b350dcfed891506ce7fc0500ecdd4f156431363a38e399061469f5def9082d59c39b14b65ebc19ccb3204fef71ade300825cf35659158"; - license = [ "free" ]; -}; -docbytex = { - revision = 34294; - shortdesc = "Creating documentation from source code"; - stripPrefix = 0; - sha512.run = "0b212fe2131eb4070e08efad7f1e0745d0538b2173b274a41c113ae6dfce46d7d1fc8ebd22f16b3a956570865df9cad668866fc2038687ad6c0b7b72e76a79d8"; - sha512.doc = "0daa32aa23ca248dce228b8029cb19c6d4509114094d46efdcc45b52d6593176c44da88040b37d83054ec286c4b79727ea4ab2cf07c4522e5f597750d85118fd"; - hasRunfiles = true; - license = [ "free" ]; -}; -doclicense = { - revision = 68441; - shortdesc = "Support for putting documents under a license"; - stripPrefix = 0; - sha512.run = "f312fe38842267c1a35ab506354717a0ffc3d4b2684769965b7b94ca5fd6b137d0b13fdc98943b1fe0f635bd673c331ccc53faf5667b75d1192d786972008dc3"; - sha512.doc = "162af038ac645790412ea0e07771c39bbc3706ee3ccd6b8a496b166e7ef51e7802a225b00f1cceb0bdb0c8661ab51a79d4eb40a52c0348f1565fc83dc7efed9f"; - sha512.source = "2002418b83eb7117195e60a6f0211a395febe6455b210068db7fe1d99738820ba111e14fd6f61bf53020a78ce1bb7d0bd12b57294cf5081d37d5002dcf641253"; - hasRunfiles = true; - license = [ "cc0" "lppl13c" ]; - version = "3.3.0"; -}; -docmfp = { - revision = 15878; - shortdesc = "Document non-LaTeX code"; - stripPrefix = 0; - sha512.run = "55f68d7affd8d82631eb0e67c6232330bdff97ea908259a5e14255058d88f9f745afe55bd4a15eb91bff959b7cfc31835fa22196d3d0edcafa40da521b3105b6"; - sha512.doc = "fc3721046105ae78b19b61a45fd01570873842c6786a096575efae282e4fc884f5f5dfd5ea6888a25ddc82077340bf0ede4a36977cd33d2b555ccfc3d0ff2c02"; - sha512.source = "90c38a698f428980635ab3a826f35adb65a1f9b2a2dd385da8ff41ffba01870c071b7ce100dea1142d85ca216a68a0170aa8fdf92feb80a8ae055899f6b05633"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2d"; -}; -docmute = { - revision = 25741; - shortdesc = "Input files ignoring LaTeX preamble, etc"; - stripPrefix = 0; - sha512.run = "5c01f4e6922b7a23e753edf9110ae7f1386a4d6ca719ac898b058068a754a6c3bb123f918bdb1087baf5efd1176545f543ab8b93bcb6c9529c9000ad6a3b1e97"; - sha512.doc = "8207eade8841747201656a7e6edc789926a9dd411946a860e4d865fed618392bb9159245f7162adb4a58c88d00191d83f2daef49f610c3d8e5e231ad7f1fcb7e"; - sha512.source = "1809026635be9610b39f5f428dfeb2c323b4588dbc6306a50e00f092910fd449921a2cd797fdbf3408442b9f24cfeaf7c69e75db9bd217dce975eee2f1a4b930"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -docshots = { - revision = 69676; - shortdesc = "TeX samples next to their PDF snapshots"; - stripPrefix = 0; - deps = [ - "fancyvrb" - "iexec" - "pdfcrop" - "pgf" - "pgf-blur" - ]; - sha512.run = "55d866be055e8ef97014bae75355f9a3de111527d96475b604154566b5d92b74788c1f6d250b3f58bb35e9133bef5d923b1aba309704375fe19d85559600b23c"; - sha512.doc = "aef2d08ba7bab13a3ee496409601aa3cdb20612daa6866521bc70952032386f45fc64223ad5a2f188055053f372a0d70a21ea111901230f6dcb53f210a9c50ca"; - sha512.source = "ddf9a609829d07da413738be5b22454f8079d9e8985a7d8305ce1c00ae41625f7f145f3b806b996947b4836793193735df57da831d81dcf37ca61521f32cb464"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4.3"; -}; -docsurvey = { - revision = 70449; - shortdesc = "A survey of LaTeX documentation"; - stripPrefix = 0; - sha512.run = "ce94e7c797ec87694ab4df4ad3eba18586c0251d6cf4a5ef3d615062125a1cbd46ac2e9b7d822cfa07e44961d5354fec093cadbbd48cef403f9ac2c0ca665fed"; - sha512.doc = "4edd65ee2c7c910fc8bcfec3f33bc1f390ab1bb67bd06a84e84eea8421775b28c519615b23d2c25fe4524f79e8e295778fef6868d741f4484f42b1265d49eef0"; - license = [ "lppl13c" ]; -}; -doctools = { - revision = 34474; - shortdesc = "Tools for the documentation of LaTeX code"; - stripPrefix = 0; - sha512.run = "5c621b063d752fbcce773f2b209d358de1588e7c4edec017eb45a74c350e86932ac9c4e0662415ba7ad5bca8ca86d1255b15f4e5572ea949a5d6404b28f14025"; - sha512.doc = "a78cec3ce74e4689c848b49af7da035cc7c684730f78acd7a7f8d8f78194492e53880e7884eb00dd22d4bbca4f370aabe8175048503959f88023a12ee4f26598"; - sha512.source = "bf61b5c519ad73fa8187797367355c195ed2048d83cb4842862edca740f51d60bc421881da10c474d950485faf701631af6299033d2005f0d2aa8c6561625864"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -documentation = { - revision = 34521; - shortdesc = "Documentation support for C, Java and assembler code"; - stripPrefix = 0; - sha512.run = "330534f15cafffa56dc35e5b4de8caac66a87ccb0b834df5419a68a7cb136136263af14ef14ee7ecaf01fedb2803c2653dab7570ec2535ad1ca3033e1afd64e2"; - sha512.doc = "09854b00d86dd902c26c1b4f8cda942ea09796911939a20014b6d50d01b052e04007b55fe814877cb4515a6aa1f4ca1a7ebb39a6a6ac1bfc89b98d1f910329ee"; - sha512.source = "7e32523123407b913662fd7bbdedf5d3058e1e7e3592649b7afdd4d4df6bb704c7b1c3153fb0fdf3b8bea183259a64b8ab6ec17d74ee74ea086a56ef1dc90bc2"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.1"; -}; -docutils = { - revision = 56594; - shortdesc = "Helper commands and element definitions for Docutils LaTeX output"; - stripPrefix = 0; - sha512.run = "13a31f6925efd5cb0e0ccc632d7b8ff80e15a2e95399779ba33ee6e0f1d3c1a3f4a397dcb7fe33455471ec65e6fbb18d681349a43b24a083882c23aed5a0b036"; - sha512.doc = "1748ee0bfe61704d8174202dfaf6a674fd52ba154456f6aa18cf90b2248be90f12bdb36993cfc4a701a8aa3037614c2f86be93ac8528f3da3bce96a611cb5748"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -doi = { - revision = 48634; - shortdesc = "Create correct hyperlinks for DOI numbers"; - stripPrefix = 0; - sha512.run = "7a041a56ecc0f88d5200d39d7611c74f955e79e5f5f887d26a70c76624c334b6229f7b937426cbbabfd7de7ae0f9cd2aee70c502981c46fcc3f18fddd62261bc"; - sha512.doc = "3dd77559fbcb32d8bee7121f62bc37ca14c14c8e62f8d2ba44978438920dcdd54605a543135a6294e2ea9742f5fde4862a2efe3eeb6bf22b6d7418b4b01a2ebd"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -doipubmed = { - revision = 15878; - shortdesc = "Special commands for use in bibliographies"; - stripPrefix = 0; - sha512.run = "3f313afd9cee76d11b5f957a3e9f7cc0d5d2d04003c285df7cd872adc0cdd26d0248c03f0642d62af53f23c4399e7e5ac3ffcde38da782f64ab265e5879a7f60"; - sha512.doc = "0298b7f4a408f2092bb7ecd8d5b0cee745f442bdcc2bae463d922ae4511d5b0fd79b8f78d1de49f77b4fb158937fcb752d919239efc25829228c1f75185454ae"; - sha512.source = "ce8a2d5300a2a3555cef789064047d49810f1f7d9d00429eea8122cde3e4cf75b41d5cec901a3d6cb3596e83bfb43e8ccb2558c64ac3d0574970e9980ceceacf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -domitian = { - revision = 55286; - shortdesc = "Drop-in replacement for Palatino"; - stripPrefix = 0; - fontMaps = [ - "Map Domitian.map" - ]; - sha512.run = "f228d1670e7904b08ba6064d0d1e8c23432fa826d52229d575bc2067e27adc904c3684d76889a8beb4885c3c9de5cd4a5004b9afd3f7140ae5e90d36b4961b9a"; - sha512.doc = "81af6be4f2707ec5d46d5f78d459f42d81e0cf62a17a8e695e42b666076637183447a9f1888b3f4c84e4832362eefe01b8d8dc5d748a640eb8e20c72bdfc1f3e"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" "free" ]; - version = "1.0.1"; -}; -dosepsbin = { - revision = 29752; - shortdesc = "Deal with DOS binary EPS files"; - sha512.run = "7f31d47d60b0bf151cd6e6516e29a8414c6344657c133e726e6e8dfe23818995b10b9a2898b1801c4bcb9219969a8af1d2725b75df514ffb119730b3e49008f1"; - sha512.doc = "b9edce9984698db8e50f9183f89b025cfa89dca8a8725054af80f379c88ff1d2b02cef8f3d5f37ee5b8585a59d1a4d0f0ee0e541a7784f3f3f4e382d78e6a47e"; - hasManpages = true; - sha512.source = "d5739533a9d10e584ed7de4ec033b4a31be5681fd06fd9a2268f924d4434df902fc1f346ac2636f4ba7b7dcc6b5804a80b5431f7055fe8eccfeeea09915ad2e7"; - hasRunfiles = true; - license = [ "artistic1-cl8" ]; - version = "1.2"; -}; -dosepsbin.binfiles = [ - "dosepsbin" -]; -dot2texi = { - revision = 26237; - shortdesc = "Create graphs within LaTeX using the dot2tex tool"; - stripPrefix = 0; - sha512.run = "20cc54f907b00e2eb14e4641d5098dd4886ce8d4627f391421bc5e819614dec97e0ec42c92794bacb8ffcb03737cb8736c308fad6984abf13c127f6d1174ee0f"; - sha512.doc = "9e8461946582e0c99ee35437522e25769e2afe5d7051f072937a57c5d4e1a0c8e144509c751f9ddb7ef576f43ca408ffca663f81c8b5e69fb176a4233ff45ea3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "3.0"; -}; -dotarrow = { - revision = 15878; - shortdesc = "Extendable dotted arrows"; - stripPrefix = 0; - sha512.run = "43ff7e4e163764e703673312a1213c50f0a77da98f3f36b726e87042d082f3d2433e35156e1c963d1c6287aa4cea5ccc64f140f89b82569b0552f406b29813c9"; - sha512.doc = "7b5a4d0b2b31f55e657eed5b7cc0185a8895df77895bbe40f27c4d29d1086c9fef1779f7c4c726faae25821972fac418c379e9e68ad4cd059b1c6f5b0420e9fc"; - sha512.source = "3d756e93ba60153727d1719f3eb77d278ecae65c08f18529a6352707b655bf39f01152f13b60490ce21ba358e2021681a64de8e9fa6f46f9f4bae5b3a754f1a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01a"; -}; -dotlessi = { - revision = 51476; - shortdesc = "Provides dotless i's and j's for use in any math font"; - stripPrefix = 0; - sha512.run = "348be296d710fe22d8122b45437d91027913b90ef36fa7aa365ad49dbdea566506c80072623ccc95170227e77ee2fc2fb3f711772afe4e7e7b83195eb3110b61"; - sha512.doc = "c77fed1f0b8ddbd6ed141fe8c9f914cbd5592820ffe3e457ecf35952817149d1315598f449dfe0e15e0e50328e45b408d3f1ef91fe83154f5374bcc62041ba77"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -dotseqn = { - revision = 17195; - shortdesc = "Flush left equations with dotted leaders to the numbers"; - stripPrefix = 0; - sha512.run = "794be5110d50ff9134471aedec8adaf7267f112012d962ee6e1cd7ddaa36cc37d993517cf4663686c90df891fe2e912d260cc9c9945aaee25925c2915afcc45f"; - sha512.doc = "aeb026d83497b78725d623b52223877d4d5a0a745312511f007d69395b87ba5362904cfa26bb24f2f2c7d0e0ae14bb82699d6108533260d736c0e85bc29ceff2"; - sha512.source = "7cd2a4a2001a38e999e0632222116f32b559d8f004c9e378493d84486028e5c1cd5268f63a0eb93f9d1402b2c2e11b2db2429547f300809cca3d9f39efd6b17e"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.1"; -}; -dottex = { - revision = 15878; - shortdesc = "Use dot code in LaTeX"; - stripPrefix = 0; - sha512.run = "037586577425d8a38a2170bc4bb9a7fa28a7886ad852d1c85483f7c3b625321c41a204b613479382ff5fb9e8cc3f8f9d8ff6e0a07c14b71ce6fdc68280515e33"; - sha512.doc = "3708e08c630e27d744c3a865cc02e91868a32b1648b4d390cea0f20ea6340c56ea1720348f6b82796df6cc3f4d5b7feaf59ffe7e24c32e34535a4e5763318df6"; - sha512.source = "adf26c722ad1e2fa26d10488125267516923db87c1185068a33a082c6f51bf5ec644ace69aefa0630eab9a604bfc28032cb5d10db15ef0c80ab28fc93839a13b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.6"; -}; -doublestroke = { - revision = 15878; - shortdesc = "Typeset mathematical double stroke symbols"; - stripPrefix = 0; - fontMaps = [ - "Map dstroke.map" - ]; - sha512.run = "ff1be47939d9a2e8ec4fe8e6852d9fa31c2776511de158611ef8b853ac73291d1aa4ffe81985bed60c75a16e3cfc963a3a8ce3fb9494dcf6664cd6d92a549e73"; - sha512.doc = "2cf0cc8936393be2b01ed06158b250a43514098aeec4007bf493bd9232fda911f4a59f45716fba5837e475bdc39a86cf6e1180d4220e6aef26ff9e0315389200"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.111"; -}; -doulossil = { - revision = 63255; - shortdesc = "A font for typesetting the International Phonetic Alphabet (IPA)"; - stripPrefix = 0; - sha512.run = "02e347325823f5b8359bbf192965b58a2b1907dce315277a65dc573b1d2e612fde821455dc8f8afc69dcc532f43a20d0f78d0b0f5649641c8ce6dde73525fc4d"; - sha512.doc = "360c64adf1eface29c60c18e4b20c4aa382713f0e4a59ecab2737135a422178238214c9cb567669bdee82519e0658497bf409f92733403a1749730986be71d5c"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.1"; -}; -dowith = { - revision = 38860; - shortdesc = "Apply a command to a list of items"; - stripPrefix = 0; - sha512.run = "7c9bc25d94364ea13326ebc010d15c92b27ffad08b68fa5c3b5034e6bbd6a96370d159727270adf76e6edca15d08de86c13ca7ede009a445b500ac22b151c05c"; - sha512.doc = "2fb2234cdf6b42bd3f9f991b3d2d76473c45c51ffb67e7c12e7976310e0fa562cb8d1f01b347e9b8140c854e1ede865cfed17f5748ded909dc8d983d4f246961"; - sha512.source = "44d331b8f99533a6bb3b150748245787f686a807b22dcea3dd9bef311000881fcf0870d19d6718574d56adae79451ef05aca1bddf1904a76d50dd4e74529fd47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r0.32"; -}; -download = { - revision = 52257; - shortdesc = "Allow LaTeX to download files using an external process"; - stripPrefix = 0; - sha512.run = "051fdf31160c95e88c8ed1214311b0ec8eda80b7128752c27a203c7e7dc5cee6d275dc4ed93f06308b71d199d9216b18600a2b6b219f852fc256eb2486c2bfd2"; - sha512.doc = "388fbef93df8f76de34e7968b8a1925f294b87972e2e26cb1ae92145b252b5a88fc06254453a6bc15eab14a4532e1a18e3b719ea243142c09239e3521ff8f7d7"; - sha512.source = "6090434f8a33e1ac95363082c0536a9990ea6c4936adbe151c1f8e5ad20e7ad9635ee656c9c29af9360b5d8bd427f78d26c9527c4a84dfefec7dd73a007e9839"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -dox = { - revision = 46011; - shortdesc = "Extend the doc package"; - stripPrefix = 0; - sha512.run = "dc37733e7253d457b2fe09b72b808c5198f222dcde12e0d36ae546a8ad0537419fe7f27945625bb3cd3efd2b5b63991e89dede1199e89c67fe7d6917370cab67"; - sha512.doc = "4474e38d3dd35dd14b281f7d2e5ad1d6104d95579901a50b3575e846532c279111c81f813b78c4d16ca6c78ac627a30e51515ee7b178602b7338c1c799c62609"; - sha512.source = "08cbe72a2af77f3cd34a78d0743ede6f0017e7edc275e56c66defd51b1550990cf00d9327ee9cca5c44b7c73870ead063346754c4dc1f1aafc00614a5d5c0707"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -dozenal = { - revision = 47680; - shortdesc = "Typeset documents using base twelve numbering (also called \"dozenal\")"; - stripPrefix = 0; - sha512.run = "ca4171da87126231a791f432a6015cc069f0eb0d540f8b79b3b5028f3f3e30d9202622886b582f2e351049603d0323a458fbce3d6b2565af5391a4aa94b734c0"; - sha512.doc = "e7c180bed185135cfba31acbf4488ff0991066be7456a7c54625df458a24819ef8b41bc19eec955967f22fc156ad6efc9e194489178e2cffb806bf066ea42520"; - sha512.source = "4e8c3cc35fc2d429fa286fc68eb92d2d290bbbbeabcb714d849f9132ff71bf99edfc5b08a0ae596f98e900e1b49d658af2b2b9daf1fbacf57e2b3aeefa15f6ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "7.2"; -}; -dpcircling = { - revision = 54994; - shortdesc = "Decorated text boxes using TikZ"; - stripPrefix = 0; - sha512.run = "d102312ce1c70eeb9cfb279b065197ebd3ec6d3f54a47de55a5cb9828e76b2e690823a2ea19a935151c972f791783fa41a55adde03aefa54eb2b3fe3da0ea677"; - sha512.doc = "b1b01183f3490897b9681927676a7eafd01367eee6ea2fcb82fdfaae59294c67d96036ef67093fab13f0493adb9dce56f4e420b486bdc5f94e8a7801efcffc4a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -dpfloat = { - revision = 17196; - shortdesc = "Support for double-page floats"; - stripPrefix = 0; - sha512.run = "df136498f7ba41b1335ac109667d07dd9584e6682e1d75fc82a80839bf0f6d7a4de1f5750aa738eefb96d14d2adea20a3ec9fbc92130481d9bce0abb6c6f175e"; - sha512.doc = "2cbdb8711556580d14a01b9daf03b1a1095387c077413b2815bfaef1af2781fc8bc56fa7a6a36abee60d6ce6928f920c9d9c3deecc2e071e8e99d51c1421508c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -dprogress = { - revision = 15878; - shortdesc = "LaTeX-relevant log information for debugging"; - stripPrefix = 0; - sha512.run = "4f56a2d6e345cb98eba3ffddfa977bd48661d90bd10712387141b3398c9a85e8b9d7b0f33e75635b7a98e91176f1e866ecf0b14ef0197fc488bf976dd4889673"; - sha512.doc = "455451396b22b3d38288a5c51f6c2413c56ffd07ac1331c3727c4f382eaa07f0a128373ba033ae58e53411e69a4ec0eca67609fc3c111c91f24f2adb2536a2e1"; - sha512.source = "de6166c9c79f62c0f3eb973b6383f2bb486a8f7673628862d54af8e00a5ddcdf78419ea819c95e750f47fa3e65cd58b598e3a3510d43ec3d4d3fa9538a846a79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -drac = { - revision = 15878; - shortdesc = "Declare active character substitution, robustly"; - stripPrefix = 0; - sha512.run = "f45c94e222a6bcae0d87ab5aebf0f594f1674a49787391dfb9cce32f9b36a0aa6a81e84ea4ca345e0918ff2166e36738ae9969e4d9e4653bbb99ac6a7f0cc63f"; - sha512.doc = "7e6debf9580d7c145d8f95329aeadd63012bcfe3ac04fb9c4a3e815391757051ce021e4e2659c96fd7ff5066e3e324ac947cfaca16e52bf5895fd5724f81f552"; - sha512.source = "a56b3648bc75174179ac74eda67d84226985d18863270cdf6b6c1688ff1405389ad27f20abdc6a41f68520e1d95890fe021d1896d00a5c44a6a4ec2b9c380944"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -draftcopy = { - revision = 15878; - shortdesc = "Identify draft copies"; - stripPrefix = 0; - sha512.run = "f1f2ac803e1858ffab880c7427ed2dfeaeb435255e83ed795e0d5b4262fce1fbf7593653035af2e45d4731107c8f886938015ee1a7fd0018001c0e39e9f1018d"; - sha512.doc = "f7a4941c26c92223a9dde51e288380efe3b701d847051c13345e97f5a082cb3cd9e5d5421dfb2b1f1cdc12214df1ce6970a8ca6fe7463faad73af1a12c3542e7"; - sha512.source = "9320e076a200fa5d7fa297c7d3228ce77ad9a9a56f57e4ef250a21320e9f2e429004ab716747499a264108ece97ae03388df084c24e2a370f57ee22b80628cba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.16"; -}; -draftfigure = { - revision = 44854; - shortdesc = "Replace figures with a white box and additional features"; - stripPrefix = 0; - sha512.run = "e8ced947e69803243543657185e8fb28e67776dc9eee5e095126ec712fa368c32903f53243aaabb7308c895cf8e0c10a6d89c33e6b6c5d109f0300dab5213e60"; - sha512.doc = "f0a9a59ee326746802fb33412c44148ed8c836a24653df6685ecb69bc76870cae63ac8955274705639e658491566da0d0633ee8d57cf57d58fe43a971252ee05"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -draftwatermark = { - revision = 70401; - shortdesc = "Put a grey textual watermark on document pages"; - stripPrefix = 0; - sha512.run = "39bff239cd08c6c57c445944ba3fca6af408b2ae32212555c9e9dd64c8d7fead3eebd35a48e6c68f139d65ac5404efb60182993ab751df8d8670e646f06cc97d"; - sha512.doc = "1783cd72d65658df483c8c3f4b0b27b7a5e354e8686d08f08ece7cf6e15947bbab6ec9a07efa233144eca4ce3c015027093b4d502c39d2057555fab9ab07fd8d"; - sha512.source = "7c58ad08143158711945af36d5d9b77a32cc4b800144a7cf55b777047c08f7267731344997354bce0fcafd9b3eae17cd39659660784c9a1a47b307708b6f45dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3"; -}; -dramatist = { - revision = 35866; - shortdesc = "Typeset dramas, both in verse and in prose"; - stripPrefix = 0; - sha512.run = "d61da72538a7d83ee902081aefc23f3addf2fd6e5fa7ebb207fdac16546d13602c50419682e842df8f36a899c2c0aba0aaf615bf64202135dd9f470f5391838d"; - sha512.doc = "fc28e1dc8614d836637350a20478a0e8a03121909cb42bfd1cf4caf8e7adc01a4ac3eba08e82c389c41a567cd00f191ecd8938ac40a0a226e2fbdac047ecb733"; - sha512.source = "a364353dbbb9540a9f43c26fbfe6be8f814452a23e9f25c5a4c4f45a65534e0696dee993bddea4eb20eed284b892d258f6947fb0f96af63a0516f9f0fae01651"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.2e"; -}; -dratex = { - revision = 15878; - shortdesc = "General drawing macros"; - stripPrefix = 0; - sha512.run = "1a18f8866d1cffb0ac3c277bf27e1585c7596eab60ed51756077abe3154b6d67ea95205f60b5a244e9acabb05e8dc95a792d48f0a2fc492f90d224f85895fdd8"; - sha512.doc = "0ff34bd23dd8718f4f8b0dc3e84068ca2b38a9758849d98230f1a8d4561705d6db7be3b0fcb34621054993f27df7a9215267b3ebbd7fb3d77b8cd9cfefa0ad60"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -drawing-with-metapost = { - revision = 66846; - shortdesc = "How to draw technical diagrams with MetaPost"; - stripPrefix = 0; - sha512.run = "9e9deb95f1ca68c4f7b2a1e82bbc213da68e60bea65510e18dfa12528dbf65b20d06769c766009a1db49b9b7a649598f64a513957a4874f6c657ea0c1bc99901"; - sha512.doc = "9d3ac79b2d4165a3e7fe1675826db2190b7bbdeaf8b14460a618ae909e29dcd9796aff70af98bae5307f67945434ab3a304d955ed5d56e17ea94a67f83f2ef09"; - license = [ "opubl" ]; -}; -drawmatrix = { - revision = 44471; - shortdesc = "Draw visual representations of matrices in LaTeX"; - stripPrefix = 0; - sha512.run = "6be4d4ee6970956dd2f3b31d31ca0cfbad268e2f98ae64fd87a49de9ab26765447531121aa0edc157779f3f9c0dd76ab2ec3f747912f4204aab9e2e7181368f6"; - sha512.doc = "07eec69024d4daff597f2a937178f66413e6dc4974a2044f983e809b046f09140db7eaf3cfd68833bd95be0d56b4a564dfc9ad4d771fa124f55ea3783eafca1b"; - sha512.source = "8125f7c3b0867df9d8f21e45d89a03e6ff0f946d946646c26b0ca825a30c62051264f45e5c2da5bbd45b35afbc2f7f7120e9ea3d2d289f6a228385860d25f523"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.5.0"; -}; -drawstack = { - revision = 28582; - shortdesc = "Draw execution stacks"; - stripPrefix = 0; - sha512.run = "383eab0b77675ae418a775a413c37720d6f74d51d1a31bdb2923b45ced53afa576f10304e372171298ddbd566a8418526d291f74a1871eaba36ea3793d7d0173"; - sha512.doc = "d435447ec29bc26262886b3dc4c41cefae81d24e0704857a9ea61f1fc08ff8e4bfb4ead7686a9f49808dff30da47fc5638e2c0dbea4c6a551800a373f68df0e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -drm = { - revision = 38157; - shortdesc = "A complete family of fonts written in Metafont"; - stripPrefix = 0; - sha512.run = "662a2593713dc02debd4702b5184586736f12200aba4079154e6890b49d581810e1a7a94f0d3b6750ecd241dc03cd5a638a3ea5bd4792f13829e7812f5620b36"; - sha512.doc = "7821503ea6548fa200221d2c2234389a252ddc61498d66389f0afd13b6c36536b744f060f42bf26c4e2be722a7cbca8841b1b76510391da4960dcfbfb9956177"; - sha512.source = "a505f89568d63bc36799a3802fdd4e5a4903a10226b565c58b1b6d0900f0efeb699838ef17f84d9720558c7e1959e33d97c387b371862366726c6b99e30e838c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.4"; -}; -droid = { - revision = 54512; - shortdesc = "LaTeX support for the Droid font families"; - stripPrefix = 0; - fontMaps = [ - "Map droidsans.map" - "Map droidsansmono.map" - "Map droidserif.map" - ]; - sha512.run = "e57eba23d2b7a84ca36be4b0a2988870a89b69a5c2f423d8961c8fe38c074cead0760c0061a545518959145ead02a13e321c5719cfcd7d6a575b7050cd74ef2d"; - sha512.doc = "d1f86ef4fd82d955e5f6560b1eb56805bbea621358c3e708f5c07d6539d278a4e61fed680afba425a212eb7383bcdc1d663d492b4cd716ba2c1872f9006350c8"; - hasRunfiles = true; - license = [ "lppl13c" "asl20" ]; - version = "3.2"; -}; -droit-fr = { - revision = 39802; - shortdesc = "Document class and bibliographic style for French law"; - stripPrefix = 0; - sha512.run = "76c928be0648ae7bddc76f654b65a99ae6670cb17b0ae9a54596599ff655636d4520b31d4e802a15af65637c5bf956d41a2095762a3c4bb77052c9f74da5e7af"; - sha512.doc = "6129658aad2fae20dd12252941ee774393e262d9322ec2163ebc964ec27c4ffb63f2ce0faf9b74a90717c137065e9af238d45c623cc58d52b1e4776da221e231"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -drs = { - revision = 19232; - shortdesc = "Typeset Discourse Representation Structures (DRS)"; - stripPrefix = 0; - sha512.run = "5054b389c79b6895e648d3d4fcd1a3f7b06b213963245702e5bc4c0e8b6e3a87c6a2d3f72509998216e25553148008e597c6dd3015ef0b94724e84f3fade5936"; - sha512.doc = "c265c462094e50872fc2748167226319a5723aabe54ca057661b95c7cff897afd08f42ce6d520b7ab35f259b760800e79ac6deae0f1ca0c776c2c2aa7839cf80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -drv = { - revision = 29349; - shortdesc = "Derivation trees with MetaPost"; - stripPrefix = 0; - sha512.run = "b7f2b56f305d552bd857a5950fad2dadbf800857d4c8ee411fd2f5786697385404fce3956e59b5928ed5f0a688117dd740c0f56806674d08cd8cb1d52b79a9d8"; - sha512.doc = "a79d9883615568bd6c0d5aac44cc2ce28e0bd08e96f802d500515428ffb5400beadea94347abab7752904ae01342049b8d6687f6047aa9d8b27f5fe3a647bd02"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.97"; -}; -dsptricks = { - revision = 68753; - shortdesc = "Macros for Digital Signal Processing plots"; - stripPrefix = 0; - sha512.run = "f51353329034141f52c38563f79de526b7b47de3435e14dcbf91f658a0f64a7b23075e8cef98d0f948ab54b57681c7d9fcec417b59871ff908c00e12d1711b6e"; - sha512.doc = "0cfcb4e1094284ae954da49c1212bb793831861b57316f48fa93e20e92c8d35e1ee8e02bb1be8ecb52442dd80e3f0f921d024bdc8797a843ea0fcaad29759d01"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -dsserif = { - revision = 60898; - shortdesc = "A double-struck serifed font for mathematical use"; - stripPrefix = 0; - fontMaps = [ - "Map DSSerif.map" - ]; - sha512.run = "7fa159e85b370a1327a8cace1a20ed54b37f2413e553dbcd42c6e75cd224da35b47402d89d39971873e888cc9f89117fe5403887299ad8c43e6bf2f706df357d"; - sha512.doc = "e831d9ba6233cd260cd6f212f4f8b3adb360f6d701d121d26f0de95360dd56ccf7e3a5fb6fde990d875e60ca20f7632a4badaa9df8e3b98f16bfa5b176308761"; - sha512.source = "dcdf454c0d970338951b5b458df039ecc0287020fbf13c3ef46d2effc4aace39cdb424937d506783f572ccfd7cc136e9059e9894d4339b53f4b1be4b52d93579"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.031"; -}; -dtk = { - revision = 70117; - shortdesc = "Document class for the journal of DANTE"; - stripPrefix = 0; - sha512.run = "c9f59b7a80c40d4a1a9749ab3b5c48ab7dcbf213166454edcef30226f001d37724967e0306486892a64e1b16fcfd45f9d507f4e467642150ef90a75a5296471f"; - sha512.doc = "2cbf434924fe1b7ce9ed50f647069ab8a278f4be1f65981e7d9f6027f6f0f6b7465e7f2f169e860314f84fe38032ce0cdb0d96b55f281a04b7f830216498b46b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.10e"; -}; -dtk-bibliography = { - revision = 70517; - shortdesc = "Bibliography of \"Die TeXnische Komodie\""; - stripPrefix = 0; - sha512.run = "c6e8940feb04015e068e70a80b1b7058b451f324a2b7ad87644e011364077630b2fae6f8b292bd7cf426b3b4036279bc4ab449f182326b84016b39d66ae62f05"; - sha512.doc = "9fbbf62c28b5dd4f561e3aef62c033b7cf11eb8276ee1137752d36bd0b018e40cb477f0ea0dabad277ca5c541ef2fe84a968affe606da0cc3fb9123c246ce337"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-01"; -}; -dtl = { - revision = 62387; - shortdesc = "Tools to dis-assemble and re-assemble DVI files"; - sha512.run = "c2b7f3ab778c01979b158c335e4bff7bbb677fe8c5bc3202a5f43c747119dbc4a7e348c5fbb0bf2a487a49430939fae6abc855392da92ba65441b87e08585189"; - sha512.doc = "476723cb714863405daaa5fdc35557ffe7cb1149735272cfec2f14473ee65b93da90648abf73b4cf09799b1595569513f3735a07173b50eb6db405d526d40660"; - hasManpages = true; - license = [ "publicDomain" ]; - version = "0.6.1"; -}; -dtl.binfiles = [ - "dt2dv" - "dv2dt" -]; -dtxdescribe = { - revision = 69507; - shortdesc = "Describe additional object types in dtx source files"; - stripPrefix = 0; - sha512.run = "232d7cbd4d1d65740e97b608d3fca9da8ec4d06faea3fb39fdf49b829704fa269dc6bdaf4235d308fbd0f4027cf2b8fa48312320b4e972940118d69d17ec80ed"; - sha512.doc = "96b2397398fb9a1a59de1ca97543c7bc84892d5eedc5935fedbed753577d77428f58587b42e55a5e69b5c03c68eaa176c51c037340eff4cf19596203051452a2"; - sha512.source = "cfb804d222c7073b1cf4f143d2a98af9203623bc215b9747ffcfbf2e5b0935e56a9072027d8462f9c17e10a447c8bac7f3a30f93b6f692240ec3a472718493e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.09"; -}; -dtxgallery = { - revision = 49504; - shortdesc = "A small collection of minimal DTX examples"; - stripPrefix = 0; - sha512.run = "c4b164fc1fe9230aa92bd38689ffa67391aea511af59e74b93c9379f1d027f07091f98734af837a1af90b35b0e2e5245f78f0198f4a09465a8c59c18077a2457"; - sha512.doc = "ea56d62e0fb8b168461f8d01a08a9829ed00db4e2d6a460791de3018be21b4b446ad8ebf4a1c4a69e99a0989b85b55cbaa8aed171a53479df0501ea36cf03bdc"; - license = [ "lppl13c" ]; - version = "1"; -}; -dtxgen = { - revision = 51663; - shortdesc = "Creates a template for a self-extracting .dtx file"; - sha512.run = "b197684c1e941a64b606b472fb9e0f1ed4f5d0b0db2df59202712c0e3f3b3993106b8d493d707c4875e90dacd9dc7d12bba784ef7c8d04984a38708073b1b92d"; - sha512.doc = "f666a2b5d3cb32d43a23cc3edcd92bfb727d500a8c439b4b78bae89ac73c317adac9786e4702e78b5b4861b76489ff7af5cfd115a80b96cd6298c65412d56a50"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.08"; -}; -dtxgen.binfiles = [ - "dtxgen" -]; -dtxtut = { - revision = 69587; - shortdesc = "Tutorial on writing .dtx and .ins files"; - stripPrefix = 0; - sha512.run = "5b8dcf885fb0e3361154f6981efa3fa00c8ea9b11da7aa5f739f87b97b8a89226a4b150b97bfba33d0fcdebe11e7d900ee881203ea707cd8a3fcde16866ce54d"; - sha512.doc = "f7d37f9d766175c816eaad931a7623c3a537d4d8d73c28b57802c417bbd954b1781cee8bcc7445ed09fac9a6f36b2336aa6a9b5b769bba877f72754bc713eb4f"; - license = [ "lppl13c" ]; - version = "2.4"; -}; -ducksay = { - revision = 64655; - shortdesc = "Draw ASCII art of animals saying a specified message"; - stripPrefix = 0; - sha512.run = "d89900ae1247eb6706719ce472964a2d3b82c2826e18b3965de12d0c0503d77968edd9faffdee9870089de19e10319f94b1c6374371d387a50ebab414934bb61"; - sha512.doc = "1231fbd9920d0f9cc6c848df09c175c8bf47771e909463331a593bc71a7656948541e66bff507250030a88a362265531c7997f90fd23b4dde40e555d02b75760"; - sha512.source = "594c31ff9f2ac3274a275ba0f9b40a20b113f7357aba2755ca684e88f77e00dff220204908709b0cfe678a83fa391fd6728455123dbd53160a5edb5be3c64de2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6"; -}; -duckuments = { - revision = 52271; - shortdesc = "Create duckified dummy content"; - stripPrefix = 0; - sha512.run = "77c975ea3e42faee4db5d99d692220884b24ccce2d69a30ce484d113cd261ddf5cf5a13ee04d9e8a95572e98c8c4bedfd901db34379af6a567777f9358e4bad5"; - sha512.doc = "0c9e24cc988b9350d188878dd8b463428133fe30c00218eed3d67917ace24412e55c396422890fc6c02030378b560b3d374970e879e3a331db7d8e34b3302421"; - sha512.source = "528db05e9c1c0232fae271aff911f35cd55f85bfcdc931820f5a74d6f490fa3fada99c274b36fdddc6163cad6f779183b0056b1a6e003c4c2737282fed608497"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -duerer = { - revision = 20741; - shortdesc = "Computer Duerer fonts"; - stripPrefix = 0; - sha512.run = "15f39b70d6b595a1c4d6594a2908fc07e3597bf1bf88ba25b24ee545d473c709a15b52ad0bd367b0cb1a47ff9548a110c6dce6c2a2b2402f655c21f6dac5a393"; - sha512.doc = "babbe18510ab7acc910639e2993858b2cf27c4414772d2a03fd2d3576f7dd64f4c7b1aa05d9a7913b4eb8d4eddc942137b41b87816631b34cf35e0120dd3ea40"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -duerer-latex = { - revision = 15878; - shortdesc = "LaTeX support for the Duerer fonts"; - stripPrefix = 0; - sha512.run = "e474634e00b86878bc0c09ff247a930e102621d3606079d72e7c284a8ec61d2a2b36f1d09c171b7a4953981dea65df49da1962f01df272fa80354281a3209bc6"; - sha512.doc = "d1ea1a023e9f2f1ea4e0fa045d8831f764dbef34d1ef2ec96090f7f7a49aa1f4ed2df63bb611ee354a1e816a204841fbd7f4059a14ed06d758a31ca9f460d50a"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -duotenzor = { - revision = 18728; - shortdesc = "Drawing package for circuit and duotensor diagrams"; - stripPrefix = 0; - sha512.run = "33990302586baf5731976a27a8268986db6917137219248e559900fc2e64e5ef443bfd14a0472194a962f6fa59a8ed8bb1caadd46badf157fbe39f36815eacd7"; - sha512.doc = "83a811a37004975e4b3fca67bfed83d8fc85fe97a07a20f624d321c62efddf2ce188f1748a5cea47185675e8d5226433b48327d8d7daf87465471b89b652f2fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -dutchcal = { - revision = 54080; - shortdesc = "A reworking of ESSTIX13, adding a bold version"; - stripPrefix = 0; - fontMaps = [ - "Map dutchcal.map" - ]; - sha512.run = "308253e2b148cab892ef0ea5004cce0c3e3fbea4c0555b67f49e554734b16bc5be9baa08119fd0a2186360cef20e165b5133ce85c793eceaa9955673ec4594ec"; - sha512.doc = "1ac89d2c4ef090edc8c354a3f869485d3af9c374da012fb51edfd22f0644d63a5c380aad115b6dbe83e70846904b722b69fe4093f4a7ac8a4a3eb1c1c97f25b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -dvdcoll = { - revision = 15878; - shortdesc = "A class for typesetting DVD archives"; - stripPrefix = 0; - sha512.run = "e6b553b2e13e87e105ba1c64422e5269e2f285754f12db1d43f475e0f94dbd32253620c1e71ef08de106d5a050c531e058e529264478e7f4545ed83dfffdd233"; - sha512.doc = "59b152b1922bc79ec3a132902547e8ffebce8cc05e2933b3b54292b507d1ac1810cd0aa2c974045b9b996fd14445126e3eebe6ae3d6ec45e1fdccea9a6ca35e1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -dvgloss = { - revision = 29103; - shortdesc = "Facilities for setting interlinear glossed text"; - stripPrefix = 0; - sha512.run = "51227cd1323c6ef94f8e0c537289abd3812f39109ce178793347d6615a718109f120bf9e6a4dac1ea801effb6f2b9425c376fdcfd5db6a5409887a8b9b49dff8"; - sha512.doc = "4e59a568e0230e5e5dab7968eb27a8bda4680ed31b23d21fe3dfc15d0e3d8b3d6599535f91a092e2f9dea69402ba8ef07291d2cadc1e1cce28aea927fbb84341"; - sha512.source = "a4df82b4ea3e57de02e61e28cf4b9e8fa91e385534d7676fe3e287c49148849dc736003b867f1b481d56466847f9f62f020bb2e826ec81dc31be3d2b6f6a47d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -dvi2tty = { - revision = 66186; - shortdesc = "Produce ASCII from DVI"; - sha512.run = "1051c3448703fdd6395d78b0d8b7658197da6114fb7455b31502bad5c2eda24fd4eba2ceaba1f65d106f981bbc60caf9f3bd0db29403e898b293514d086bf91d"; - sha512.doc = "3ee736f5fbf91472008a5c8613c0e629a9f76f61fee4c4491b67045ddaad7aa2f89a22937b172e058b072ae1a013478fdf5a9f68dd2e225e8a8e77c8e3b3a289"; - hasManpages = true; - license = [ "gpl2Only" ]; - version = "6.0.0"; -}; -dvi2tty.binfiles = [ - "disdvi" - "dvi2tty" -]; -dviasm = { - revision = 68043; - shortdesc = "A utility for editing DVI files"; - sha512.run = "aa75c4d37cce8087658b66f8559cd31add027eaaf9b4fe4075f42f1bb4cbd30e57ca1125c8ae42852d17d51709b6c368bacc7146f16dc4f0d2ceb56b327dd824"; - sha512.doc = "116a7b02005ced75ae3e712de7d66513ce7d6d3ae9ee4e6e94b347d6000b27bb58d4fc1cf76cec7f19fd7cdd316f42c02e8ad7b8e0f0ccf88d405e17ef2ff155"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "gpl3Plus" ]; -}; -dviasm.binfiles = [ - "dviasm" -]; -dvicopy = { - revision = 66186; - shortdesc = "Copy DVI files, flattening VFs"; - sha512.run = "60f44492a3d1af9686de3118af37f1d054068527f50765e21773f76ec406b4ec0f419d6298dab6b5d33e2fb740bd740f2037f711e8993bf9d3ab8f611bebb2d0"; - sha512.doc = "40dd53fe878937846f003d3b72b7d474c13ad07156e78679501d01c020380a3fcc450aee7a72c0155a950429c258b8fab253a7ce3043d58d88300d0c1037da56"; - hasManpages = true; - license = [ "gpl1Only" ]; - version = "1.5"; -}; -dvicopy.binfiles = [ - "dvicopy" -]; -dvidvi = { - revision = 65952; - shortdesc = "Convert one DVI file into another"; - sha512.run = "81c58f4e1352a8e5133de1ad86b6b37c47f9b0d29307354001693ebc4975c30808e349c73a477283a16df4219fd5702b733ecb5abe2043aff1d1b537b7fa6a3c"; - sha512.doc = "b571021445b822e9824782ab35a0743ca23f69b809354dea6676c58209a451be5bf595641fbcb461211e6dec15e765bbfaf8164c0ce1ed4204ea72a2073ecb92"; - hasManpages = true; - license = [ "free" ]; -}; -dvidvi.binfiles = [ - "dvidvi" -]; -dviincl = { - revision = 29349; - shortdesc = "Include a DVI page into MetaPost output"; - stripPrefix = 0; - sha512.run = "dc09380d453b2c83359fa1862f6d289162ed4ec12e7f1b2842789db26e780713981261369dee0d03561a6864bb8bb25e071ca73c3d85e6218667587fa78f55bd"; - sha512.doc = "3418aa91ac8daf98f2ccbe67c2ca13bcf8fc5adb380f7c56e133f4487bc3ab701be1925d7a5878fc02ab7b8607e70991887a3d875d25b777b5489b7ae904aa7b"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.00"; -}; -dviinfox = { - revision = 59216; - shortdesc = "Perl script to print DVI meta information"; - sha512.run = "d366c28a88f488418405944e299b8e8c681a2bfbe1fb8d37847d89920ab41d3103d52072c7455ecec2451702cbbea02971ac6f1e1d609bde9a2f5e8abd345ef5"; - sha512.doc = "4da7f09620beb3aa7e5a572f31c1d53466607ec0f6401b687ac1da624ea435f0efb3e0e2074252f49a720cb6d53412658a8a45dcba5553315fc9423233755dbe"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.06"; -}; -dviinfox.binfiles = [ - "dviinfox" -]; -dviljk = { - revision = 66186; - shortdesc = "DVI to Laserjet output"; - sha512.run = "0d34e837c0f67ac43dd8ef5bfb9a11d2821188ef8259f41b0cf9454bfa6641f956c21d63fe15fbd68dd59f89c1da820cab4ec5c4579fc0255a771c47010821cc"; - sha512.doc = "4b5815d766a41eb74125269e297eb6f7d1626d68b3f2cf9d6c4f8734721e3c71b63e84e729c39fef41320e4f728888796e421bb5c7ea5ffe76cd549400d18d37"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -dviljk.binfiles = [ - "dvihp" - "dvilj" - "dvilj2p" - "dvilj4" - "dvilj4l" - "dvilj6" -]; -dviout-util = { - revision = 66186; - sha512.run = "684f5efd93c0c12a07b753f169f44e764b01e4994faa86df8361ce38c15675a0601f61bdfc9702508f66273ac8c69250db65fa0d10d3c544fb78fcc824d4ff3f"; - sha512.doc = "d10e8c9343f9065499e2c06b5eecce4047730875ccee29d6a09d1608e2334f7310282cff765c88c7da8ed8a52816910c79f3fad58d118f047d04b4bb7ebf44ca"; - hasManpages = true; -}; -dviout-util.binfiles = [ - "chkdvifont" - "dvispc" -]; -dvipdfmx = { - revision = 69127; - shortdesc = "An extended version of dvipdfm"; - deps = [ - "glyphlist" - ]; - postactionScript = "tlpkg/tlpostcode/dvipdfmx.pl"; - sha512.run = "75703f600365c90379c5d009e00d35d2e514a76b2556c96c84fc2a717287441af419a26fc9ef087d111f2e77c7180f6371ca2ec33b66052ab63ca3d11f48e788"; - sha512.doc = "d2fb71e116470d2d629613401f448ad9aa8cfdfa9ada68ed324061e4ac614efc4fd2c4ea2542c8fae32f476b92aafbabe4a5be648f28f16708c43958d7aa99fd"; - hasManpages = true; - hasRunfiles = true; - hasTlpkg = true; - license = [ "gpl1Only" ]; -}; -dvipdfmx.binfiles = [ - "dvipdfm" - "dvipdfmx" - "dvipdft" - "ebb" - "extractbb" - "xdvipdfmx" -]; -dvipng = { - revision = 66203; - shortdesc = "A fast DVI to PNG/GIF converter"; - sha512.run = "a1693423389d56570a3fa1ac1eb45bffdef5fa9bf26d738adae1ac2361fc9aa7985d4ed0908b5f8aa49e2425da9821989a61a3ac925ac4432c9caa49f66a95dc"; - sha512.doc = "a4473f728047cdf06743520a5cd4c79d7aa41818c44291abf4781f04b87822b03fe5db9f42d489d7542ca259070f71a3f255507f3dc8fbe772e30da8cc88722e"; - hasManpages = true; - hasInfo = true; - license = [ "lgpl3" ]; - version = "1.17"; -}; -dvipng.binfiles = [ - "dvigif" - "dvipng" -]; -dvipos = { - revision = 66186; - shortdesc = "support DVI pos: specials used by ConTeXt DVI output"; - sha512.run = "9e949fb402facda9c30fa2f388b80f2cfc530670b33cbd78559e4449fa6004c5d4082e4fb895ea397a334a333e5d5ae1a4f66fde3885f0a9eb28c9d9ebbecd0a"; - sha512.doc = "254a1db41636608a133e7807a8d4ea8ddd99ac646f35b66a43205ac7fdaf4a15c21eafbb85e23a182506e509895776d1fcbe63b3b8a7f197d577c6405ece5c44"; - hasManpages = true; -}; -dvipos.binfiles = [ - "dvipos" -]; -dvips = { - revision = 66203; - shortdesc = "A DVI to PostScript driver"; - sha512.run = "fbaf1dd979ceed4f7146d8aebc31ba7d770a8389b4ac214086db5951c485a2a3e3a62b2772394c8053444dfb8de0d22b3501c2ee3ee1e4e7493a1df5a34cc275"; - sha512.doc = "ac2518c20c26dcda42df79be79ed24e2c021af2084ede43f51a5589b1023c9c94a307bd0a4742880e2c89d7620b2889f3a675e30a449d699d15db98922b0da71"; - hasManpages = true; - hasInfo = true; - hasRunfiles = true; - license = [ "free" ]; -}; -dvips.binfiles = [ - "afm2tfm" - "dvips" -]; -dvipsconfig = { - revision = 13293; - shortdesc = "Collection of dvips PostScript headers"; - stripPrefix = 0; - sha512.run = "ff7ad395329dd1cc5d21d5459916d0f10a8c03399d733048bce0a8aaa4e3a955f3ad3dbb228319d4bfb96e0694069002507bc294ed81fda5a48ad93f8cd82589"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -dvisvgm = { - revision = 70496; - shortdesc = "Convert DVI, EPS, and PDF files to Scalable Vector Graphics format (SVG)"; - sha512.run = "94bcb0d873e30ca7d876eb28dc9951462fc28d6961beb11dd8b33fdb0c265614f506d27abfce6b8a540bee55bc489ce2243690341eaa509ba329c88ebcdc28ff"; - sha512.doc = "eee54ef41b2962cad615be1b6082e99087a3790ac057d280481ab1fbc50f3c525c732cb038dd324b757c0cc738e0a26a0193faa79637125858ffea285be61196"; - hasManpages = true; - license = [ "gpl3Plus" ]; - version = "3.2.2"; -}; -dvisvgm.binfiles = [ - "dvisvgm" -]; -dynamicnumber = { - revision = 38726; - shortdesc = "Dynamically typeset numbers and values in LaTeX through \"symbolic links\""; - stripPrefix = 0; - sha512.run = "802df3848c8ace40e1eef5c1d30c07a6a5f30fc902a9bb18581b79ff322921e7235ab05981625eb289f093f4486f0aec2e9c83bf669a9afa993a86146317b619"; - sha512.doc = "3eeb8617b33d45c1f97756f58bb87fa1244cd3089e0ed64f363f2909480459ce17e30d54bfbf948642856984618081d0fd15c0721d0190c187b375fbdfcfcebd"; - sha512.source = "8a4ed9566201af2835190f574c3316f5eff4258ef0e9b25b62b146b483c14e9fcf66abc2e1c4b3512f12969bcee1a8102ba020ea78874e0c7f3e68c0a64232ea"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1.3"; -}; -dynblocks = { - revision = 35193; - shortdesc = "A simple way to create dynamic blocks for Beamer"; - stripPrefix = 0; - sha512.run = "bda4ad43754e7d4fa87cc4ac5bdb772cd24a4e613bcf7993e3d448a9c884aad5ad484c6dd7739f4c6edb983560181717319dc26376a6025f3847afb588fa47a1"; - sha512.doc = "4f4084cc4dd913bcff3e71286fa4e881c7d577afd8e0669396de2ab18ccbdbc8649117bb931e365fa5999c5c842a71cab18da5573e83c1d721c87256e614c321"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2b"; -}; -dynkin-diagrams = { - revision = 67267; - shortdesc = "Draw Dynkin, Coxeter, and Satake diagrams using TikZ"; - stripPrefix = 0; - sha512.run = "4c7d15e3e04cc562e1f4a401546223af6e53f47f8edcaab6e82bb84246bb6c72b1acc15437402b161a123d11c21ac350d01b33ef7c8d8b7bab6c8dcb9baf7723"; - sha512.doc = "94d9a69e3603664d9f81da2887dfdcdb70d9318ecc13c0232da64cf23e6d6dbcd072807035771c519d58283ac40f306901db8699061305b3c97a3f7ee42ecf65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1415926535897932384"; -}; -dyntree = { - revision = 67016; - shortdesc = "Construct Dynkin tree diagrams"; - stripPrefix = 0; - sha512.run = "e8591951639020398e8f6bd892bd2d43217871fae4e94ecb09bc6005f1857858edb5b3b9330c5d08e8490598fd2f3d45bba4d99a9b33de464d0c5e6478399689"; - sha512.doc = "c2b2368a88648efe795a633f00ac826fff3b53029f557a4c5eb7dadbe882f560c768754adbbac09347b6bf44ee3bf77ec4b5ad57e9d5726e2c51519e0d02814c"; - sha512.source = "8df01c048b52cad5fa5862b16d16672eda36158936af1bd8254ef6b9574ecf84263f5f70a466f2846e653e1565e2f57f297c4b05c281c16ec72a4fd1e1eb8f25"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.0"; -}; -e-french = { - revision = 52027; - shortdesc = "Comprehensive LaTeX support for French-language typesetting"; - stripPrefix = 0; - sha512.run = "ed14a41b05d47117fc354bb5a1782338ed91ebbd6071af96f4bb94fcefed31048ef3ed1301686dd720d7f1c9ee59c518adbf83c6c7de2c35e3d50cdd65c0b0bf"; - sha512.doc = "d76ba6c016c8a48a06ed126d0d011e1336203cc8182f744de9d238e723019156f369574b7090cfcc943829ef058b77ec536ab6bb7c054e5e2587dc92998258d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.11"; -}; -ean = { - revision = 20851; - shortdesc = "Macros for making EAN barcodes"; - stripPrefix = 0; - sha512.run = "8a44b134d612ad4908a3ec025b0934feb56a8a8d7c7dce91f7ff152fda91c99c0c557ecacf7b22d8e9abf8e99d28b09b21abc8658e598baf37bfbbaa885b86d4"; - sha512.doc = "35c7d054236569b03082af07412f00dd08d760547433ec8da1876a83546c7432c4cdbffb617ff34b4e48b86873d699d41749bd838e12ffe32980b3d6e92865b0"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -ean13isbn = { - revision = 57514; - shortdesc = "Print EAN13 for ISBN"; - stripPrefix = 0; - sha512.run = "84f73871c0ddf2d6d2ae0d23f6d27c1cc985ac1c42345ad339d55762ac9e109f8d33dbf27105ae470ec2d2f127918c3fa0a3c49d9fbff8a7c67b3d20f36d2e8d"; - sha512.doc = "e7c474d1d488d95786d5f061412d051c9306cedeb86f6e31915d44e6fb71f09303b8f0e782be393e56dc6887730560825ef29d57af5a20f7bf02d96f77eb554b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -easing = { - revision = 59975; - shortdesc = "easing functions for pgfmath"; - stripPrefix = 0; - sha512.run = "3ed041546ecf6e921ce60f48365a1ba81ebaa8420f8f6d8e1c9ba1b38b20ea2a8c13392295d31a784bcc2fbf135ae37e5b89af794603b98492a4fac9c6dc6861"; - sha512.doc = "bbd559d63635d83e00924a9d40258f3edc32519524dcdc4bd3d7bce0487eec01900eeb26070cd4abe372150f013ab3206b075aaf530de6d395a938465de072bf"; - sha512.source = "dcbac9aef840277651060def21b4bac6f26572d7a0dbc7524788af224934c6344ac47af13e85a4c4d8f0857227b5ba8b5401081d34b7d5929747f510288dad37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -easy = { - revision = 19440; - shortdesc = "A collection of easy-to-use macros"; - stripPrefix = 0; - sha512.run = "fbc84351fe02c560ffa1c6b1713e762810123e7abee47bb31899d4baed353928350422e7d237abca758753ad306f927466919ce6b160a3820d1d5101c0b71ee9"; - sha512.doc = "27bfb9792f0c8261cd2de9bc95dc4023c69a37e12037855e31c606f0dc18d47e45f8299d385fa1dfcabaf6df298bb529e9da41f6d9d36f38f8d7fb5ef7930886"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.99"; -}; -easy-todo = { - revision = 32677; - shortdesc = "To-do notes in a document"; - stripPrefix = 0; - sha512.run = "88b496c1f4f56d26ac2fcc6d82e28d71bf11418368d82d3dcb193f8299672bf41d6c15938f3f6af5ac28141f2a52d132844fd178ebb9694de7f7a22fe8f13eaa"; - sha512.doc = "b2c49273445084f94083ed11f43492ed8ca32582fd9ffe9d12ccb7afe316b06b1924a507c5a12ab5880cae40ef4ee196c6d3e5d05f916356fdc026acc0a9acf1"; - hasRunfiles = true; - license = [ "asl20" ]; -}; -easybook = { - revision = 70236; - shortdesc = "Easily typesetting Chinese theses or books"; - stripPrefix = 0; - sha512.run = "b4abd45311a400ba7812dba5ff6ca299326b1e062c4dfc301ba5e5733fbaf6ab131cc285314396003dc616f40ffb98987279e80575326d4b3258023ec6a8e577"; - sha512.doc = "01d8ce41bae5faa8f818b3a0f95c37827d6a7aa50fe5a74e7ad5e57bd40159b77351467d0c7c71f9513bef32739786078c2295ce3cf62207891f3bdba660ebaf"; - sha512.source = "3789d9428ff0ecb54b113d61160db88cbe86f40e097dc17d386ad471af388188a189008bc5000a27cf0643634c1bc7c8df59130c82388f1cadeb4b1ac506bb1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024an"; -}; -easydtx = { - revision = 68514; - shortdesc = "A simplified DTX format"; - sha512.run = "f3297c900999197a5acbd73b931bffb21cc989296777b4884d62792d283490e46b06282ae5ce0cf3b0411690432dfa442a4f00c693f4d6677b9ced6037234914"; - sha512.doc = "2f9fe3dd6b2ee2d326a05de9f38966f26ea5baa154c3d7fdecea4af944dd041858b9e66f593b1a246bc6a3fe7d44d64fe1ddcb72e2495917bf8f4ad38b6531c5"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.1.0"; -}; -easydtx.binfiles = [ - "edtx2dtx" -]; -easyfig = { - revision = 64967; - shortdesc = "Simplifying the use of common figures"; - stripPrefix = 0; - sha512.run = "37a8654ee9f53ed35003d7d78fdae32ef195aaebc0530310e7f00829cec431d7df4f9bd807da8dae844731650a79a7cb9f7a7ca20c5dd540bafdca7975237503"; - sha512.doc = "1a197fa61d347919b34bd8735f5265d058e5a932a638ca91d34f43ceecaa155b9277db8ea40178b37bd2bbcaec4f0853c2d42ebdaf16d37e223da45f305c330a"; - sha512.source = "7fc5ad4208c6f1da261180edbe2cb1c11c8a34f87479199c7701986e516be43f05be6a226f75828aa2045a7fff0ad735b192e02e9739e381e8c64c66dba33310"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -easyfloats = { - revision = 57204; - shortdesc = "An easier interface to insert figures, tables and other objects in LaTeX"; - stripPrefix = 0; - deps = [ - "caption" - "environ" - "etoolbox" - "float" - "pgf" - ]; - sha512.run = "2d02a55fc3d50e5fb79ebe8188300db47aaecb42089843033c569ee0508a38f81e9409d872535e1f7fe3b13a067bdabbf8249073b803c8d232d08aa1d5520d48"; - sha512.doc = "d6e96d7af908e83b67b77f0432e6ffcdcc55b64bc63ac360e42291f16adec4ab6655a423f5fc8f31180071afc5645f47b7ecb2c1c80af719b6cb0cc6e77948da"; - sha512.source = "b21681d30b8963127d603bf81b140851b5e8ea17b63d5979bc05bcfa68efd67460b9f0d0419a69c44606a4d569f5840b3c8d6f0ce7b0cf18d86c1fa104776b5a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -easyformat = { - revision = 44543; - shortdesc = "Easily add boldface, italics and smallcaps"; - stripPrefix = 0; - sha512.run = "f952227a7b0e579d2bf432b3a72e80a45e8adc22ddd9e7af380de54c12f04acf6c4a88dde5a8e7027d11fb820448fdbcc6a343500ae493fa20341634fc64aed5"; - sha512.doc = "99b5f56c6004b72bfc7289905d2808b5e3c743449896e2af88a7b5c23bae3c62aaf2da9bee43192c662be28372bd856dec1b78a56626d5b1eb91b5e21a759356"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.4.0"; -}; -easylist = { - revision = 32661; - shortdesc = "Lists using a single active character"; - stripPrefix = 0; - sha512.run = "b1ddb6242b9ad2e40785602f942d4381a5d72a7d35784bbc2a1732ead1fbd9d730b580226452e9f56fda873b174c56f9b433f1193e0e3424efba4821f7b714ad"; - sha512.doc = "518258b7d24763477376657e128ef3504d2c8e0f71187edf9edd34825d567f9cdcdb09d61a37d99655959d7c76edfbe550bd08ebd7760735e46fff33bddfbf0a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -easyreview = { - revision = 38352; - shortdesc = "Package to provide a way to review (or perform editorial process) in LaTeX"; - stripPrefix = 0; - sha512.run = "4efa69b2e6280333a89022f93a95c8af4d22cc9b82c4e8692291470af83696e7ed524c77cfe9d9c397c4136c0ebd8399a8ca4ab47d42b84da35bb79189ff1b6f"; - sha512.doc = "4f71891df0b1dfbf32be06a427f34e5c45f73543b3acb9117487d2bffa46f5b61b74f795249cf3d806705beab710c5a7934a59a8e215c87678e778db517a0832"; - sha512.source = "8e4375d0711a1fd8ffb3c43a53b62e5e9b84ea90217c21a7155e514a4a42b8b34c36a0f0a839766d7e9b4eee05a6cb36ffd1da98f1c9f756d67fc8ba0acd4807"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ebezier = { - revision = 15878; - shortdesc = "Device independent picture environment enhancement"; - stripPrefix = 0; - sha512.run = "ccd80579b8c7e7e3500ad644f8a418bbd48ad1f2e1cb2aaa82836477553332b43092bb760c01cd7412393ee5b8bf23c055361f111467c71bd7061459781557ac"; - sha512.doc = "b81d28abf5c8b4a3dbed9219e6519e23fa5b94428baa8aef0ff32dd4893b24524e49cbb8ae08327a7ee59eba93cb0fa2950883d22296451c1f7949225f42b1f1"; - sha512.source = "ee742d7061a7891ad2b9cebabe827a408750f00ce2012bee8ae787bfd7b6d7ce8e968614d3d3f9eee72072560d47d871fc0022bac8ca8231643f85adf31218db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4"; -}; -ebgaramond = { - revision = 66604; - shortdesc = "LaTeX support for EBGaramond fonts"; - stripPrefix = 0; - fontMaps = [ - "Map EBGaramond.map" - ]; - sha512.run = "4a676d0016c5b3c4e513dca01e7e2f1b5bfbc061e111935380af4937bdfe2493927b226b28972c060ee0c09e7c27c6bf828ea09151eec0b8df67530f62e30aac"; - sha512.doc = "82713ea36e1eeb1d2673a049d9ffcae97627406571e6e8e47fa6a6853511beb5a5eeef8a63fbe88e6c79539b1fbde880d0b2779f6f01f20eb7b1c7fc716104bc"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -ebgaramond-maths = { - revision = 52168; - shortdesc = "LaTeX support for EBGaramond fonts in mathematics"; - stripPrefix = 0; - fontMaps = [ - "Map EBGaramond-Maths.map" - ]; - sha512.run = "5d65f676daee62f96875def0faf6d1fa217143046768985956372473b4cd3c6c00ca650cdedcdf677d6ae6a03c65743d30df6d32c36cc8366d8a1a9961bc11d3"; - sha512.doc = "d2207e0f6535be6ed1a53fc15717a60fab0d473da4f307cfc70c7271fbd93e7f6cbd92d1c0f0738da6d1b607832cbed95e5c87edd53cc5423f35f287289b4573"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ebong = { - revision = 67933; - shortdesc = "Utility for writing Bengali in Rapid Roman Format"; - sha512.run = "c38185b31613af4d6b27ffb5442cd404c1eb05669605a2140db85ae3074a3a7739c3e375e3cc16736f9c2889224f33f685d503b3908f4009fa308be7737aa499"; - sha512.doc = "a3337ca9bfe756672a66554b88feb59a49f66ecd7d1aec3702d74f29bc53ac1052394bda679a4cb4aa7509c5eb712938ed943a28c6f56a749c926b8d566eecf2"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "publicDomain" ]; -}; -ebong.binfiles = [ - "ebong" -]; -ebook = { - revision = 29466; - shortdesc = "Helps creating an ebook by providing an ebook class"; - stripPrefix = 0; - sha512.run = "3345ec303d77965800fb78a1a6b0645c206534bdf84e5b5287d23fb273a720025ec770527d662a5a535e98fb6cb9a6d37d50569963ca24225af8d626ea7d4dfd"; - sha512.doc = "0aba8d5010ece8e6e3c155d05a87eea960d8ec1b4deb1cd7ba948b4106eb8e20d752d3032696bb98c1d23b1927317d3d53a79fdf0b62e9053245aa86ef6e79e5"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -ebproof = { - revision = 57544; - shortdesc = "Formal proofs in the style of sequent calculus"; - stripPrefix = 0; - sha512.run = "e2b130cbc7b98555ad010ab5bc5226c68f413581b3128245500ad3ba734e4291c91cc42c96ee4108a1f359fb7cb4c884dd717aedba9e594865466e6c29d13be1"; - sha512.doc = "d5a1b900c73969c590921f3fea138e1ece49d9c9c4f1ccf7d3c1c877f501196a08d8099afde9913b83e653f4a8937e91878640975233f5482b6538d262a6139f"; - sha512.source = "16145b4ae4c6998533ed85df9a19abe7108ac13208f19fde0906280f68d96817df87db2db89ef77e1734e5c9ae6f2825939ce670856d6f35429cde10442907f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.1"; -}; -ebsthesis = { - revision = 15878; - shortdesc = "Typesetting theses for economics"; - stripPrefix = 0; - sha512.run = "37df2bd7749bf91c2e2a6e27e92a9222ed9b9d499b3a9bdb63f7751008bf7a4bea20d62bd59e8672b7fbc7bf0caa1ca77ef797c42224fc4167e5212f21cafbd3"; - sha512.doc = "5c508fdf7304668a371966d1be0198d71cce4ec762aa1b5b480dc495f47dd13d88f678d8613ed266e1d8e1353811e3058c31aaa5ae9f181c34c6bcf40adf5ae9"; - sha512.source = "0e35721d759fac3af82d3c627c5520ed60c36a83e50f10a717db990f2bcf5a3b22a0b28cce5f3926ec0a9859d5b08124efbe24ffe9a64f9ddd15f45f3246f596"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ec = { - revision = 25033; - shortdesc = "Computer modern fonts in T1 and TS1 encodings"; - stripPrefix = 0; - sha512.run = "a967804b42bcc11e766d5b74de28c54d167625d2b108a34bc5e49351533ddcfe3334e4a7a34966f8d159bbde6a80f84b4d216553ce03fbcfb7a4b6267574538f"; - sha512.doc = "bcf6617cf66af91312aea98f6c4a034f3af4ada14687414e7c3572e319fa4bd957dd25ebf557078297950d8ba8fd02229c5ad53464077feda462263b52536f29"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -ecc = { - revision = 15878; - shortdesc = "Sources for the European Concrete fonts"; - stripPrefix = 0; - sha512.run = "0f91383595d8606d0a118f8111af0531e0c53fe383511b6424f7cbbf70ace9c4d94dd379813bfceafcea11f6be361bf7d8df2088fad98a42a5e5d31476581f11"; - sha512.doc = "e3263aab5c8ac9985c579d4fba121085419d5c28e4813798402ad67213f96575dac0776d18918edaa18d42d458937a1e60ad666b2a01dea445675eea7e32b2c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ecclesiastic = { - revision = 38172; - shortdesc = "Typesetting Ecclesiastic Latin"; - stripPrefix = 0; - sha512.run = "f2518f8f25bf4b7c7fd34ee5fc271d08c3262ca2d90e271e02db96ef4826bdee53565f004fddd89e886258716874b101e7fb63b46a6124ed13b67facded6ddcc"; - sha512.doc = "35902f78af7c9acc42e23ae1d5c39ead5d92f0cf73f9c27b3f15d025555ed08502709638dec3788305fa776bb2924eb43e691c6e69424b23c21110de3160b60d"; - sha512.source = "9661b16b8d3af5e205e99a7b8da8ce1913ac1ef495f3e02202ce7cbe1fe786692c64b4a82913190db42f922f33d939069cf423b55af53792808900ebbe728b8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -ecgdraw = { - revision = 41617; - shortdesc = "Draws electrocardiograms (ECG)"; - stripPrefix = 0; - sha512.run = "419650d8ad24b9e08523953596a79c318740b2dcb7fd18a7c7a17019fe17cc66439c0acf56a7a7f8176349df0d80b44640511269d498cfa19aba6fb1f353923f"; - sha512.doc = "24968ada8568861eb973967b33827642e1201d002f73d40de5183a38d5f447a2fb93feb1db32807829c071d1a1147039e34ed4c287886260453b9c9737693986"; - sha512.source = "27ea4e0f4d184883eb0515cc95b7b797ea215626fb5c4003fc02bb490b6f3edf1d9422a7f764df28372d9ded429dbe47645bdaa8fa57c4517ef438096ac68801"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -ecltree = { - revision = 15878; - shortdesc = "Trees using epic and eepic macros"; - stripPrefix = 0; - sha512.run = "7461fe472dbd2ecb4e692cdbd58d5b801960d160bd7e18fa7d5ebe3e42defd11faba318d5d9134fd17275a4271f4c7761fa2d65fc1f202b4eb7b0fe3968a9fbc"; - sha512.doc = "3dc607ff60f9e738476b1f5c801801e3dc10713d7f5dc4b790b92f454fec1e68e9abe8efa7e4b0464ed6ad854d7971e241987fd63d406ba9deec9c99f8bf229a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -eco = { - revision = 29349; - shortdesc = "Oldstyle numerals using EC fonts"; - stripPrefix = 0; - sha512.run = "7bed893bb3f379d61dc874280ccc26db037511ea69faf37076f3cfbf01cf3d747706d40086eb99c502f215f026b2e357e44e8940a859559c3a5d9876bfd70c00"; - sha512.doc = "3c2042779dd30c8ff0e8f09580b3173f3dd43659ff2ca94c52500f989a338a29799c22eb08c493dfa82496117d7fd7548f903f71fe488727acf4e517dc6c0377"; - sha512.source = "355f1a47eddba5eedf9933d0a137045d9cb06e3918814754079e7dca0852d2fb10969f0c48a030ef9dad923e7131b6e77af8e1e8b2954b3d70409fad400ebe05"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.3"; -}; -ecobiblatex = { - revision = 39233; - shortdesc = "Global Ecology and Biogeography BibLaTeX styles for the Biber backend"; - stripPrefix = 0; - sha512.run = "bfa49fbd340223db68ae6d0906b617c06605a41aa141ce7863d5ab85b4da44eaba554b93bf163f7e4b7cd2c5131e22ba30161082663588ce85240fe2147433a5"; - sha512.doc = "e12bf5be5028e848baf10fed969a5ea94e2246153b481fc1b8ab55a6fbb5c356391ec4ccdb37ae7c71d76885000d9d74e46271402ed83ed08d1d67a94cf372d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -econ-bst = { - revision = 68761; - shortdesc = "BibTeX style for economics papers"; - stripPrefix = 0; - sha512.run = "e46ee69626bcf1fbb051d66572e1335496bf7981023540707cd267624798d4b4e75022cd85e0bfee05a227cb20b65c3b70053a4262b662269f905ee89569d2f8"; - sha512.doc = "dfda5046d25922e563df6deb93a9d4402f75c883a8b449f70430c7ab7465e8d8cc392b585e5aead7fe499ed9143d5928bb556ad7ab4c563d54be11270cf8cdb7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -econlipsum = { - revision = 58390; - shortdesc = "Generate sentences from economic articles"; - stripPrefix = 0; - sha512.run = "e3b007e83980cc9d7ef7fbc1f7cf067d757ba29c886d20f6c53d028236cc688fad23d7ad24cbfde19b6adb77a159b10f2bad617de009b2fa769aaba042a8ff01"; - sha512.doc = "a540e4cb09c88d1614ea0dd46bc35396d9f11a39089dfc9d83c31587a2f72c0537f5d7fe3c8ba1a25559d8b7fa4dd75a577820eeb02386d50fe418b50c6fb8b9"; - sha512.source = "bcbd36e3ee0ed9e941e34dece41fb4e927f5f826fccfda3612f4757d72b7485cd34e9569d867435eaddaa763b28199db765f9caec107b2e6954a3b9da8e44a37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.2"; -}; -econometrics = { - revision = 39396; - shortdesc = "Defines some commands that simplify mathematic notation in economic and econometric writing"; - stripPrefix = 0; - sha512.run = "40c205421ca11111d2aeae9f84b4e418e6b4f260858805c03029753af03def61221b81eabc18dea5fd4cf5722e3dca1ff9f575264257db3a8431b061177530dd"; - sha512.doc = "b5992f38536f0e4ec1c570d78523530b53e428d922517d0ad380ec76dcd2ee21243b9979e876a7f809b1581f4c4b6907bcd3f581dff97c13a0fea2a0fca1d790"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -economic = { - revision = 32639; - shortdesc = "BibTeX support for submitting to Economics journals"; - stripPrefix = 0; - sha512.run = "d8bad4a76eefc8729ea06e93a63adadfeed57de5694775bc44f1dfe03217101609ada6d12b7a2382b9d80d068f0c51fb2ef45c2cf289fe294efe23fcf0bd028a"; - sha512.doc = "39c319f14ee3d6fb10fa3c4f5d3a873322d332bc181a33a70020a9fa787383b72809b3b9aea5fcf4a3cff9930543e0d0269f74146c12f2b0d77a4f77c159eeb7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ecothesis = { - revision = 48007; - shortdesc = "LaTeX thesis template for the Universidade Federal de Vicosa (UFV), Brazil"; - stripPrefix = 0; - sha512.run = "bed57bb0ea79c74517b26e51d88966f9a05943c4df6464200ffe36f486e9cabccaef2fced0a231b40b40410ef32c44a3ebaa984e6def30bde5d426dc68e42309"; - sha512.doc = "7e1e3716de1eb964142a85ab31e28fc807ca1433f964e44cc8a7103b9ed023457bcdb01af2797a5e22fcf75a2e851d9c534f17937fdc44e4ebb6b5a670c6c115"; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ecv = { - revision = 24928; - shortdesc = "A fancy Curriculum Vitae class"; - stripPrefix = 0; - sha512.run = "0ff0a352516aa90a19eb1a0a9bdc651601edc63f03c5cce9face4bd45b359734d954e2b7859a0244015e3933eaa2d3803d5579ab9260dde51a0ec89db8034910"; - sha512.doc = "1cb8871b552a3d91fb59c644ea98373742ba9bfea64a92911f67f2795afaf01babe82a691fb3344f236e42b92860b754d7e92132b266713948cd1a6af13c58d7"; - sha512.source = "e17e9d577cb3a562a381c8ee8a09e7b3bbdd236812fd9e647b72fa18d6f7b11c9a44f70376d5dfdf2a3b81d1480b055d23e8889661b557e88c03f02eed033946"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.3"; -}; -eczar = { - revision = 57716; - shortdesc = "A font family supporting Devanagari and Latin script"; - stripPrefix = 0; - sha512.run = "47906067bd5e2bfe28e6451456e2187fc655986d4eacc89e9c3edf67bdffe7f54ef2c14029c9934db6c85acdacb006cd829255c2209d2d1dbcf57a98fde40e3c"; - sha512.doc = "03fc47faa72ccbfbe696e68bc5f9c332eb7262cf1b3129c6b83fc5f5e2b5c3e0ba93b047dd9eb6d92c32e218d303896272d0c1d3d3dc7fd07b80757ced9f231f"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.1"; -}; -ed = { - revision = 25231; - shortdesc = "Editorial Notes for LaTeX documents"; - stripPrefix = 0; - sha512.run = "a6999fbe2a9a44f961ef60d3da65ea306809d1ee5c39d2fc605982083d69c3c723a0e18f4042cbd441103421cb569008925279871ea8ceeb0af4c4a21b746943"; - sha512.doc = "cd7bac245c14e969b5162b86cfc76e0673da357fb1492ba311930ea7e20a6db61e3a13be2069f4f589ab57cba9fdfb0fcc8779ec8607a624437d1b2bd746825b"; - sha512.source = "7736dd9bef8c265437675d87a6b70bf0bb67ad736b668210b7187ddfde899b145050e18a9d54629b966cabc8b46028dc982b107c0f869e581669b663d3267ba7"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.8"; -}; -edfnotes = { - revision = 21540; - shortdesc = "Critical annotations to footnotes with ednotes"; - stripPrefix = 0; - sha512.run = "3ffca21a97b1e54045129a8894db25d677a54c791e3453f53285741bceff0eb4c7cc00e81706ef77ac475a0f54a7868f2e9b444df0c4e4ba6b161fdfa954dc07"; - sha512.doc = "144e2e22c4ceb6ea46235ed51b9a1ad4b20aa524af7b6eff617194aaec4f1606d857a8575e95816b4ef089e5c7d3fc1e2fc8e622486bafe9e5a9ace22bb44105"; - sha512.source = "9fb306c9b77f0988fcc2dde74336687e8678364e2d53167bff8053a5888de1cf51240778281a7c864a7b8a66738d2c894e7e4b7a88871f0f7ce0e40c61b706be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6b"; -}; -edichokey = { - revision = 56223; - shortdesc = "Typeset dichotomous identification keys"; - stripPrefix = 0; - sha512.run = "c598495449919a67650e7afcc10924cf93f4c29e1dd32305f0581910aaea288d43e6c8c1b91ae9d849b354e343538350ef0d6e78513998a9d2fc6023cd3cf941"; - sha512.doc = "07a8689d20663340d5398a26cd548bbd53c5e6d5c7eac00e9e6478c780e397e765a8cca0e4b41a7b70f09130a1c7fac5326e5f2c46b95f40e11f0ba88b1b3039"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01y"; -}; -edmac = { - revision = 61719; - shortdesc = "Typeset critical editions"; - stripPrefix = 0; - sha512.run = "12395b2429372cbf88794c197e28ceab4b69ca7d14cf78524e9538491b2ca8d14714e1ef00f2643a0e3e62db559f12a9a53a56d4bc7f54420d3f125727fca557"; - sha512.doc = "d78db33bf2b2fdd17f23eae23ab9605efb29a217e52d89df5feb64db1907c1b5a497441eeb1fe2373342b7c9b09296c06efa24d6776edce84406e22a1967bb64"; - sha512.source = "995092e2ea0776377938076b67f25042329ab76ef31f83f6f40aba449a735a90bc697be52f16fa6a2ac02cbe4ff2ef99762fdc03bd14eebff7a363f6c7f46c13"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "3.17"; -}; -edmargin = { - revision = 27599; - shortdesc = "Multiple series of endnotes for critical editions"; - stripPrefix = 0; - sha512.run = "242e7eff25ffb539353b73c18d31a268efaebe4fb51d9ba1cf376346e559ea2fb380743b29056aeb8e4db2065a660bf59e7c8dcf5469f91c39135be2b8c9527c"; - sha512.doc = "da77df03b3eb89daa0a544d61c88956a7105073110dd9e1f4d1a753805bdf722a63f5a9674897f4f09a92f689d6bbafc190c870cf5784e02df7efed781dbbcee"; - sha512.source = "6f3b848e12b92f773ed23f51bcfcd52fbb8209906b937486c87ee34cbe29d40739cb6c20799ce64bfbe7b0e3dfb96d604aaccd005ecc1dbb7126bf5302d3c814"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -eemeir = { - revision = 15878; - shortdesc = "Adjust the gender of words in a document"; - stripPrefix = 0; - sha512.run = "81679a08a320275221058cf0a73d71489621bfa4322a4b90759f67253df06e5c98c1325846966924c145092d9f63d9ba51544d0640c7f0827c7ebc42fddf9f3a"; - sha512.doc = "4f7a67d76504c4fa8de1f7f4e5db19c1ed1509a3ee68d93811c84e3ca523b8ff040d61e14881ccf75d20edc7c6b52550b3b3fdfa58a9a73bf21ec7f8b0b719aa"; - sha512.source = "a75e1bc385293e5e418af04a1c03ab606c5c77fa95bc6830a029e53e4298edd853c0bdb92ec0b97994fb8d2b7af293c3ef60f3d14974b87e079f15f904436d4b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -eepic = { - revision = 15878; - shortdesc = "Extensions to epic and the LaTeX drawing tools"; - stripPrefix = 0; - sha512.run = "37930ecdebd43ac8ac1dcb42da4d4eb4b5ff371605b9bfe4675ea861f4edff7cb19703669c8356c3d69e7ccc09789bc536714114397c3bca74fcb4a22b6f4d9b"; - sha512.doc = "02efd8775f6d0db35fa4682c6bc715fe619037a6531de60a2955fbd7fca01d97a8e6dee0109a8cd7cc8237bd694c64797392991e5c203baab49dd9857b0ccb4c"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.1e"; -}; -efbox = { - revision = 33236; - shortdesc = "Extension of \fbox, with controllable frames and colours"; - stripPrefix = 0; - sha512.run = "5091324e7f5c05385296d570027a8546db4220a24da330ab85ef5d1185772f51b4f200f63eaad0cfa3eaeafd3d055509f4ffbdf798c1139a60c5e572ea46926e"; - sha512.doc = "394387e09ecb0d497014a62fc1caedcb3e00148f6e0a9a16ae1b53efbb4d5cf749e154e4c905d197280e4ecd9bc88ea07ab7e0c004b8c30eadbe7f9f414c1345"; - sha512.source = "4739cf6bbe23b69605079bdd8c39eddd6b44e192c5c335001c9612598f2a005e98b853bc02ff67996b63a971b200996f35de2331f230d9c43ed73ad9a8a98a7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -egameps = { - revision = 15878; - shortdesc = "LaTeX package for typesetting extensive games"; - stripPrefix = 0; - sha512.run = "b8d1c056783c4a71484a00f0d80de4eb9de3beaa54cc4dc71e5a7c171871b5dacba753ad03ab196661b1bd73cf9d2eaf202a813b73bea405f807319a143644cb"; - sha512.doc = "0216a85d539ab19aef8c2c4f313f5095aa39e4955ae9610c14d0243081b7af98f50a74a2f7720b376493e660a5486f83e69b41f8cb8017ff66a8e706eb9ca71b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -egpeirce = { - revision = 66924; - shortdesc = "Draw existential graphs invented by Charles S. Peirce"; - stripPrefix = 0; - sha512.run = "fb91855cd9264b72df852d4adc5d369b26efc5305c032120013d6cb18e99a94c8123cc7c9a4cad86ef3144609f0a34f3645597c91aabaf165a51b903b24c9d11"; - sha512.doc = "c78830f07e8e3caf99f51b53783112fbc7b6ada78ecc284a53e90c532331ce9e4430540e5cffed679b447b9e23cd5bb25c4d437d07a127e65e142322cabd65fa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -egplot = { - revision = 20617; - shortdesc = "Encapsulate Gnuplot sources in LaTeX documents"; - stripPrefix = 0; - sha512.run = "c96cc3185c09f66fc6a4c19958b88d178cf0b6ea9d889938df5a07d4fb7b19962a9c17ebe0a906ab19a8725808aa09ee41b39a0379fefbf8816a5e78abf9201f"; - sha512.doc = "e6e55708004cdf3dfd753071e2fc242428a6636944f3ea65510d2e9f8e2921b869ff4a22d100b43d70ba0708a5b19f002bbe21f57c858ec72b11ffe82e161e50"; - sha512.source = "45c810de39612dcd60d71b4acc8aa9a7c2c22c1eab8e1ca1628ced9873c86b0ff31035ec5f72d89decf91ba552c4e3473249138f557bd650b9863c5385502436"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.02a"; -}; -ehhline = { - revision = 54676; - shortdesc = "Extend the \hhline command"; - stripPrefix = 0; - sha512.run = "759e123a2418acd7239c4b897e64c146ffb84cc1646d331acc5ca498f707b916c1392f3fb9b97d2916d745e9afcf9c630a5a94e413ecd0c17fc2a8b13f773d3b"; - sha512.doc = "79db947da1c51811e834999889c3d089e2c5077d2d21fe133f6879a87afae4e2c7fcf1f07981ef9335a6b7234f083e74e21364be3526448ebdeda6ba75815fac"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -eiad = { - revision = 15878; - shortdesc = "Traditional style Irish fonts"; - stripPrefix = 0; - sha512.run = "3123d601a5f5c34c45bff20eb052a0934a2bba9d693e460fdb84908ed327eff8b3a022a5c617c8818bd48b1fe72b9b0c48443e0cb290f15e94334152f1f5e5cc"; - sha512.doc = "546bbad79f9f13e420b05b318010f078ea8844a02cedf11faa506d41073e2e0668356291a4e12758e5a37586e4aa9c79c17c8135f244756c39b61076038fb8e6"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -eiad-ltx = { - revision = 15878; - shortdesc = "LaTeX support for the eiad font"; - stripPrefix = 0; - sha512.run = "e052333d39e72562e8e84d0e7f6af7066c2068a782422f612a26bd2903d8143874cd4dcc556d7406f3601a6b3a28506a3c0edc92e4029d124f02fe91edf0163c"; - sha512.doc = "907a20283eb78965dc4d8fdb46c542937c70c7a3f2849984034f9f37872d4d3042064fad0ee232132aadcb7daa4d4ec4b9745f8a6d0406dfa7b929ea68be0d96"; - sha512.source = "dcdb63542954048aa74a1a412cef02c16706bb7f66870e72ab4c772e2e41048c255bd02877fc60ffdef15b09e229ba721054cfbcbea5ce16fdaa181ca0bc8283"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -eijkhout = { - revision = 15878; - shortdesc = "Victor Eijkhout's packages"; - stripPrefix = 0; - sha512.run = "448f3b51c984a1ec81428c1840ba01d072cef4d1110b85f8d4f4d786d02e8d08e702e0b33e757035aecef1f43b604746c7b6f492905fbb201fc1a34ca6fb859e"; - hasRunfiles = true; - license = [ "free" ]; -}; -einfart = { - revision = 70318; - shortdesc = "Write your articles in a simple and clear way"; - stripPrefix = 0; - deps = [ - "minimalist" - ]; - sha512.run = "5e15f55394c35e033661c00295fcde0ccd424532ecdcf3c55f134ba7f990ee95961fe9b620a1addb2cfaddc97b030296b4ec9dae29a1d025aa2944d7130574e0"; - sha512.doc = "56b8b1415b0526af7610502a65d13f304f05f18def4fd4c2870be9adaacefbd6e9cf34d318f135d358a85d56eb57f4f2fb583a529c43d4ffe9bed729310ce4ca"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ejpecp = { - revision = 60950; - shortdesc = "Class for EJP and ECP"; - stripPrefix = 0; - sha512.run = "160b09a6c0abc694831cdbcb17c8fdd2feddeb27c82c06d70e31a5991c8488864cfc99b7e5768fe745a09ba811a5cc0c108428c6c7f3dbf3d8da7455074bffe7"; - sha512.doc = "206012655184167bc27c73f4fb3b4cd14e6a85dc2c3faea1eaf98d74c89a8e34765aa1f6c47c6a9aa1bf862c98b1273d19e33ebdf099ecbce674b6f7aa39e7e8"; - sha512.source = "01f26bcc15dc2e3b926524e6e0f1dd9739f7c5333bd947d5a1c83bd285e34e3c997c68acb6b33993a281f0dc81d751a9b8eaaf17753531553c6a366b6b60d635"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.11.3"; -}; -ekaia = { - revision = 49594; - shortdesc = "Article format for publishing the Basque Country Science and Technology Journal \"Ekaia\""; - stripPrefix = 0; - sha512.run = "97479cb146f37e0fd80fbcf67db44a474d96da9897fb058073b75bbd9a109f16dfa36bdd97c5fed5397255cf0320028ca687955fb40e069bdfa262af50773c99"; - sha512.doc = "f95512969ca475b87f09fa3b61e2be1ebf949161b7209721579f7ec1399e6873186535ec30dbee092fd69dc427a199daa4f94ee47cc08a0fc37fbac6213429de"; - sha512.source = "f39b1a8a90bfe899fe914b6a4e99e08334ecf01ca54bbd6275ab9edfefc12f7f165eeca09b6195532ff92d72e4aeba63e94be7afe00d8215a86dca3695d523c7"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.06"; -}; -ekdosis = { - revision = 69568; - shortdesc = "Typesetting TEI-xml compliant Critical Editions"; - stripPrefix = 0; - sha512.run = "2b69616e44379680fa41e2e3f42dbac8d052c7d12e6b59e7e56fbe3c7d7f581a44d3cd2cb91d6473b8fd0cbcdadc68f184feb2f7cf0fc2c868f03edef7369f85"; - sha512.doc = "7332370e43de4076fb6f595df6d24419e210c866e79630c3fde4cc50b8e7d7127232ee123443a2443b3f236bfa7721dd43e2dd78d81820f61a5fbe92245dc66c"; - sha512.source = "dffd9d9cb8bbbdef03c491d2ad6283d9b474ed4c5a7337a85aadce978ebb4ea35c161c11427d0fc09ecf61b9e5f10dd7e3c69b1e00d2f63ec2c27b2ba8bd7c87"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "1.4"; -}; -ektype-tanka = { - revision = 63255; - shortdesc = "Devanagari fonts by EkType"; - stripPrefix = 0; - sha512.run = "7bef493207c3de9580b8daf3af8cde6e5ae616cc94334b3d8b3de8c117262c0002ae73740df4fbf3f30df913cfcd7c5c51d8c9659c83d6ec060bd54ae3c96368"; - sha512.doc = "ebb43cd9951d120bf664ab177c70ab2f912e9ff0080cd42fdf1ba695ae13f766d75cafe77794fe69b626895b89956801a527a7ebdb2f87fb48d263f2c3e6ecca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -elbioimp = { - revision = 21758; - shortdesc = "A LaTeX document class for the Journal of Electrical Bioimpedance"; - stripPrefix = 0; - sha512.run = "4db2b191fdb73854bfe605efed30c4835a77180fc865eaf201f8405fccaf880e02ac9ef7802c2d215df8ad77d01fff611114c391a6c43190f95dc2b40cabd596"; - sha512.doc = "5097310e0e400c269a30ef8ea26f400ac7768f4a790ca5b79222c0480553434343de7b0976b18bb6d67bc89dc2b2ad2251c24e94e4747450275fd52a8c9d3285"; - sha512.source = "00fb96c43b0639f88b582bb26b6306d1ff112e9277c34f6a623d7643ac7a003b31a14b5a82b3b03680298e5c054c137f44a186804a90127ebba14442d5c71d6b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -electrum = { - revision = 19705; - shortdesc = "Electrum ADF fonts collection"; - stripPrefix = 0; - fontMaps = [ - "Map yes.map" - ]; - sha512.run = "c12af3a1e6a76d4a94f0d02fa5802179fd1f47e31be29e2151e7be3f569f027137c9d0268c86696d822b8d7a4c88ae2ef264341345c6a7421a8ec1026c104213"; - sha512.doc = "b840b153a134fd9cd923aa9f70576b7e586bca87d7f1b9cfbf7a1f25ac4972905989876545a914ce845096dd32579901ece93851012d057114c0c61b1eceffa4"; - sha512.source = "caec0c43c2870a6640863bc060e02c764b235336123777181ae1fab42e32053af0e2c09c226dccbf8bc31b450c720b69ae67f01b66b36d0ba308282637afb414"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.005-b"; -}; -eledform = { - revision = 38114; - shortdesc = "Define textual variants"; - stripPrefix = 0; - sha512.run = "4103aa370bc8314433b5cc9242390340467591bc38e2f5b820f9d35a1951bb9fe9e384b1d3c64a0434b3c3dc87c42463a0af5d9ff872180bc2b7a08d4b40c080"; - sha512.doc = "c59cfa6957a21c5e74d9a15b7621536170137447111f9a88295e79aa7a29dcbb3d1f1f1367afd7243d2506b864a53df41b0e10419592a5e4e12af8e1e90216d4"; - sha512.source = "3bf4fe6df4cb16c8ab7a3fc366754321c5a1056cbdd51a787da33d212c39ffa0bc73d394944b7b2cfe52b4f41abe0e3df7156571d3acc1d1c3ccd4d467798430"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -eledmac = { - revision = 45418; - shortdesc = "Typeset scholarly editions"; - stripPrefix = 0; - sha512.run = "644df002adf2f39acd9a6704a5c2e18e02f30d17c8e04173fb0f68e9daf5469bb6290c7e98ca181ebd45b40d54dbdf4a14fbbbe7dbe8f945b226ee086efc3972"; - sha512.doc = "14c8b024b6cc817a025b6a4870d3edcf956ac9e358107c80d29fcab41f343efba5b5832dc22cd11fe2e92bc74b58fc5d67982ab26a60230a5b92af4223543e04"; - sha512.source = "8d3436d3e3cf377148a52ea77ac93491abc66bfb1271538aa85f6cebc559ca225221b4b7dfaaf33426505b792ca57697d6edf5903b5d0e306434a4c32e06e8bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.24.12"; -}; -elements = { - revision = 61792; - shortdesc = "Provides properties of chemical elements"; - stripPrefix = 0; - sha512.run = "576b318c0972e8862b8d4cb9c248a3303125019a321b2f5efcc0b6d6c7dbc5cee4a1db725af49754360633d654447d83a58dfc7e25c13e91e034e73ccd5765cc"; - sha512.doc = "6adb7fd993275022e49bda34889a21ce000ff7c247d6c3747494bd67adbfc1776f4c2e8d9affd57dbe659740cd9a5646bd34ab87975d306e8568a27899555e9e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -ellipse = { - revision = 39025; - shortdesc = "Draw ellipses and elliptical arcs using the standard LaTeX2e picture environment"; - stripPrefix = 0; - sha512.run = "edcbca8843239eae7bd927d9bc6b5095d1b9a4d8db213e22c77ab4a7c5bf7a09781aa225af26f1e4127f263d5322c8138cf38ad1a7b19688468ba2ba56f840f9"; - sha512.doc = "722d50daf9863145c81ad2b97d6acf6b6229d65f868985878651b506b00f52c4a556b888ed848ac1194c4a68e793bc498b2b6b09132c8070b61b103e6ca9137a"; - sha512.source = "29736aeb1a6d64d0e94124e6c67246650f517fefc9761f58e70e1438c8380a25ce48d2deb180683da02f77ebb508302b3e446b534b7e56ba257e61ac6f5fd62f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ellipsis = { - revision = 55418; - shortdesc = "Fix uneven spacing around ellipses in LaTeX text mode"; - stripPrefix = 0; - sha512.run = "009bc55dac8eab88e27124317acbf9f3101959cefa4419b507ab74f49453f72f272db2b4826424f3d8c76efb50163c11d6eed63e1219cae2a2632bb629fba96a"; - sha512.doc = "7d0b4c51008203729df1bd50d2c2a2568f2426b7284f0d58eae4720a032e4ab469a5db6cf5656e57ceb0cc9062a7bfe1f3cfe20c51a3d08c85d55c110ce7ddcb"; - sha512.source = "65b536bdd6d5b429e2f1832b3d466bfe055be6074b43b60305b79ae9ea09172e3e7e82bf7cf3b4dfbf73507135ec4caa3d713c5cfe060fbc925ba7d2a8c09dea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -elmath = { - revision = 15878; - shortdesc = "Mathematics in Greek texts"; - stripPrefix = 0; - sha512.run = "66e11b5d5166fc6399337183dea142ecd045050176384e71993c76aeacf57c693495b5153887a95051a902167a8444c24ba6fe2ab2fcfc699abfd41ffaa96b18"; - sha512.doc = "3454096f8ddd220820709a83f4b5b741e80213bada631f5fd78292ff77f3a1963a487b07bb6c227451568c594c5bcaec9c1fe9724345a35478a68191305d5a97"; - sha512.source = "0ff2b6fd17db3dbae757d4e015007ac99628f0d1940e584643f9df2247279cbfe3ebb81e057884a38ab167aa18b60a8db5eb7b88e777653ec68675205ca0fcc6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -elocalloc = { - revision = 42712; - shortdesc = "Local allocation macros for LaTeX 2015"; - stripPrefix = 0; - sha512.run = "7bd72984c7bc1530e2659364b5e93b643db1accc8a034f6fe8333e26ecc12b8dca9cf40ada0b5986576e266e0eb7c801f9a3e4c2cb7dbe4d8c373ba0f0486ba9"; - sha512.doc = "6b2d6f65683912405cc97b81a7cef07b4eb21be4304a12b5e0e11087d809d32023ea8067a81c01d45851943af2efc4eb4018f3a0e7a39e08bdc821f87264d9cc"; - sha512.source = "c1dfe4848af6e1cdb57496b8f42f5f1744494857648ca1db92a770f9983d0ec7a4c3398a3a7b7d473204da475ffd0e33ea10606201edcd86f9cda3bf5bdf24f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -elpres = { - revision = 60209; - shortdesc = "A simple class for electronic presentations"; - stripPrefix = 0; - sha512.run = "6470db4f68936b14fe514828455d7fd96ff9393990982b805e5ba08e2281aa0a98c46551297dde6243e4ee3c5894d87d6fc48fe843177f9dafae102afab4aeb9"; - sha512.doc = "0c3a7e151414e8ecc2ddcfedf55571db3d09e3a3cdf58d42b3cfefc82e160ac2487b6001d6da152b7a7f192a21c2e54b1593c01c7376c359a342f7e5410d16eb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -els-cas-templates = { - revision = 62931; - shortdesc = "Elsevier updated LaTeX templates"; - stripPrefix = 0; - sha512.run = "ecb340e796a94aab2e26abeb7d4d72ba5d68adcb15a0d99d3511236b8be5f8ab21d8d32995b1dcf1b0a3ea15eb321df75bbc016c52630b06498b75e9e5f164f8"; - sha512.doc = "b616f6a170484f75dea1134f0570133b63ba40fd1bd474e13ae3e46249224b8ee7a777d0d18e11e828d0e5e59c2635acfecea99537060a7cea03fc2761dca892"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.3"; -}; -elsarticle = { - revision = 56999; - shortdesc = "Class for articles for submission to Elsevier journals"; - stripPrefix = 0; - sha512.run = "5a0a7c98a8e255e55468f9b01a43c33d757a38faa1b3130b1c3613648dfcbd0fbedfc69db99727c4406ddc0601249b2d021c680f83edd34bc3d64dcd4a7af64a"; - sha512.doc = "47fe52924e95cb8267d0f65ee6962fd56fdc4ce00ccdf49533ff7af0916a962bd8c045b31f2159d7c70d8a041f7c20aafc73b23a8982572d456223afbb85e718"; - sha512.source = "5887604f9a6ed0077bbbb2498f6ba7c1a3c8a74485688d40a6fb0e9e9765035d22e928b104876a19e42775fb766502ef71446e659f6d75a519e2b84ffdd2a01c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "3.3"; -}; -elteiktdk = { - revision = 66821; - shortdesc = "TDK-thesis template for Hungarian TDK conferences, Section of Computer Science"; - stripPrefix = 0; - sha512.run = "01ad0912bd93cb849013665046de7ec3773d90860b92c98201a7b075799cf6adcaad6f820abe95520e848f088c85b71afa78e49067da8a1abdea093de4476935"; - sha512.doc = "5d0fef08a196fd796fcd3ea74f5385b83b361c8e7f1bc2bb4a5f663a5d5a86820b7bea137790a973152e5f475008423ddc55f18613da3bc48be211bb79e3dc9a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.0"; -}; -elteikthesis = { - revision = 66820; - shortdesc = "Thesis template for Eotvos Lorand University (Informatics)"; - stripPrefix = 0; - sha512.run = "e533636f732fead1525c3264f96f69e19074728955772c92c381dedc42e0ed5b14bbdccfe5f9663a8a54a530f52d0c8e2fea556778751214cd626372004872cf"; - sha512.doc = "a3f8102e22a12d0a970e881d3937cde9a4f71550132067ef844fd72e35c6210dd6feef56d236837a2183fa5d749287dc3c4db4cad00dd4c09cbe47fd431a7571"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.3.1"; -}; -eltex = { - revision = 15878; - shortdesc = "Simple circuit diagrams in LaTeX picture mode"; - stripPrefix = 0; - sha512.run = "6de1507df2fe408081aad0f75b69d7c21807f238d37e3c6d9cd243b741ae1761aced90e948a0c570f28db5a39616954412fc77a87482c890183f039923915c05"; - sha512.doc = "1bdd0f64c524def46dd0a20482b9ad6925b0d06ea272b05d6163a23f61ad1727b099a893f5af7a7de4140bd264b1d3503794a4c9c11cf8137c5c6070d08fe0e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -elvish = { - revision = 15878; - shortdesc = "Fonts for typesetting Tolkien Elvish scripts"; - stripPrefix = 0; - sha512.run = "ca1496b488a85a32364b264706c9b4e4edde5c92681493b150942a3a8a2a32158b314a163ff4be8afbea489a75feb5dbb1c96e8e70f730530cce6472f9e46912"; - sha512.doc = "e296ece5bb11d273b33e801ecddb1b9bb93e5f8cfc4a7d62b1555ddca89661557149935b7c5a71880efb888364989715b4e39585b2de1bcd8ecc24203afef199"; - hasRunfiles = true; - license = [ "free" ]; -}; -elzcards = { - revision = 51894; - shortdesc = "Typeset business cards, index cards and flash cards easily"; - stripPrefix = 0; - sha512.run = "436449b4e8d6368fee200dd810b05db570d27846a56a5159422e7af74348f08e6f2f4c45cdc1aaf21d31cf0ac6e8552cc7f0968c2178ad4e65163294d771e027"; - sha512.doc = "c24119acc3aebfc676641b17a0db75edc30dab7eb3aa766e35291463ee6049c9570ebe05d456e0bc0fff3765bee514332cde7b80e7d1479ed440c621143b7457"; - sha512.source = "59f09337eeafa9b2ec6ff7bbfcd1d04535fe7d3defb942f858ef57a8007422358a68a72894ed120c3792da7c0f397d1a50dc093cc1dd2058d598649ab905d354"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.60"; -}; -emarks = { - revision = 24504; - shortdesc = "Named mark registers with e-TeX"; - stripPrefix = 0; - sha512.run = "8e5f2d559958083abbde5efe9e70b3cb3dc71cdddd3066ac305c310fd5a8b2652bc6b5ce66531963c5a5f9426ccfed7eee0700938ed6a515865ac8e1718de5aa"; - sha512.doc = "4deafa2295612c7428b82a4c8c2c19811f91c2d456b430b6ab59014b3cdb42a86a84e67319745dea469ae40f89b36d104d30db28228c825ba0d86436a37cc7df"; - sha512.source = "d7ded6022917a50689905c953808e9f4a43d03811bda490721480f823c4ffd36d15948e5693d73cb061a97f775e6590cd376ec20e0093af3af5b792d7d67e2c5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -embedall = { - revision = 51177; - shortdesc = "Embed source files into the generated PDF"; - stripPrefix = 0; - sha512.run = "c531feeb7557cfca45127d9c37c93bf5835e35efa7c8aab65d58594c30d6864deaa22b64ba90cebcb1e9dcb139b00ad64ff96238835b8e059169278fb602ff2a"; - sha512.doc = "be228eb577bb2a59b93c7684bc1fd47e9a4a505f6c66eabf434ad29523f978c877608fe76cd6ee24c8942889710270b8f304170f445e2a1408303d7c5a8a52b7"; - sha512.source = "f1d3527809502aafa0a0b9aafd02d25fdbb97ab795cf4306a4ac84dccb873111e580390eb0499dfe13ef3f0bd7ea1a61e90220688dc814de7ff21ab4ccdbb1c2"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.0"; -}; -embedfile = { - revision = 65528; - shortdesc = "Embed files into PDF"; - stripPrefix = 0; - sha512.run = "5fe36b7666c58f676b48fde16ca5f07296dfd2f6d28cb8861ae3d341020552a509dd79695afa73fe20c6a5e6e87d3557f89f66902e8f02f39665efd9fac8120f"; - sha512.doc = "bb2e63963298b2c3a35c71b83eecd6464c7e4841e1098177ee78e56d15e072a88e6c58964e9292d70d495cce513b46d7b542d30574a41f4d0643df1f3b6842fd"; - sha512.source = "6a8c7c8ccdaa01f7e36ba6fad9e1d1f3873e77523d4c8b6b1de222292515016ee9aba5df53846d1367e2d5be90f7c912eb4828c4145575e38cb940db65e62e9e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.12"; -}; -embrac = { - revision = 57814; - shortdesc = "Upright brackets in emphasised text"; - stripPrefix = 0; - sha512.run = "930b42ef834a50dab0889598e1cdc531a610c9a5a8cffa31f7bea5f3c55d947db59453f71e061c8d055da53fb50fe20c17341e47c2fe5bb35a604ceac71922d9"; - sha512.doc = "f56db972f586aab767cf7300a3fa34a62564a67ede77ab8f8b6fa03ecf07680692eb0023cd3ed99656235c5afe80b672a4b3e50ec8f0ef95c9744a48ee99c399"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9a"; -}; -emf = { - revision = 42023; - shortdesc = "Support for the EMF symbol"; - stripPrefix = 0; - sha512.run = "bc1b601aa523b30a54493ac92e15bcdb918775e9f57514b62357b85b5919fb05cc945b3120cea474fab714585fe2a81603f43eae51bb266e8989af6105ebc65c"; - sha512.doc = "f2e37967476ed678dce7c01f195ec03f77327d59beb2b15cc6a64ef92cc377700a2b7b528ae6c42497cde0ac127cd10c51e3ecf5fda0cf7954d598a0dc92b5df"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1"; -}; -emisa = { - revision = 60068; - shortdesc = "A LaTeX package for preparing manuscripts for the journal EMISA"; - stripPrefix = 0; - sha512.run = "dbe700eed5cb82ed687a5650fb58f07cd588d7a759ef67f0b015a795a732ec1b2d3019f637ecfe39fa240c93816c41084c5448d107371d209d40ce122fbda821"; - sha512.doc = "48529f12758cc7874b45ff5fd418641b322ac33541aee2665ee309a6b0bee8362c97fc2e31870fb34430d60343cae433f5a2793dc785c5a88d4f2e5518317433"; - sha512.source = "98437def2e985e2186bdee4f1ba1200807c1c1dc9882b41e60acf620907933417c774dc217c67e86a667fa84ca66ddb07f9132c7e3e8a105638097bc66b7d940"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.0"; -}; -emo = { - revision = 66944; - shortdesc = "Emoji for all (LaTeX engines)"; - stripPrefix = 0; - sha512.run = "633c92dde16b5170d5ea27fbb5e72e865300abf27054cd167652ebe598b90a8788d129c950e5a230f75201648b25aaacfb6b47aa44e994d05549c31a82600da5"; - sha512.doc = "e60b38c75c23bb4ec5d453d76fd2c815abe712d1c602eac6897eb1ec9b51f1d6a964fd5aae5c7ecf17956eb9d39104708e887b0efab0830b72b9ad37c8c79af2"; - sha512.source = "79cdc96d441c82b4f59b6f2bec0fb82b047d1b9540b0f29946c2d41f355118e3a9cdad2da2463ea4c9a0e26ca832a98db5b88f4445baf6ac41abff8b443ad1d5"; - hasRunfiles = true; - license = [ "lppl13c" "asl20" "free" "ofl" ]; - version = "0.4"; -}; -emoji = { - revision = 59961; - shortdesc = "Emoji support in (Lua)LaTeX"; - stripPrefix = 0; - sha512.run = "5c87970b1d47489027ef1a13bd35958b54c7c8b7bb59f7a97a5293d2156e3acfbef13c3a83b5eac3ce8297aa01b25423add40d3d0e654b5e0007f34556449e5a"; - sha512.doc = "170a8e35c4f4c86751db4d357df39dbc215126465e784829cbd15e9226d04b92aca0d7836312c114d1c699daa5054883f364377d1f355f97024b63741aeede0a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.2"; -}; -emojicite = { - revision = 55131; - shortdesc = "Add emojis to citations"; - stripPrefix = 0; - sha512.run = "351fd8292800ce22d821351a6f69afadc87a24e4077dafd7a83b5f70b3f700c44764f2434255fde29532007faf952cb39d97f642a0b91c1cecc3b58d85753ab5"; - sha512.doc = "642c3656e3f6e89deab561df4253bcac0f98f1b65537ba3c78079ebc4d3a9336ce40fe8abb1955583e404b3945d76fcbca19845dbde7bd7c8f4db0a6209d80bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -emotion = { - revision = 69881; - shortdesc = "Make emojis more easy to use in XeLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "17516f0c2ffee5a1045fbb11b4f49f09b3cb14ae0dd223c8427a107a625b7910ffc4085ec3937a28a4cdc58614ae41512ed1059edb0835007b8b19d6ca1526e0"; - sha512.doc = "5cf42cff3b1730fa8fe9bf5268018a2ec7d39fa599528794eb01d5906f2dc6a85be5508651d5828c014b06fa4b1efd24821fd68a6d454649b1a8d0b1aec669e5"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "0.2"; -}; -emp = { - revision = 23483; - shortdesc = "\"Encapsulate\" MetaPost figures in a document"; - stripPrefix = 0; - sha512.run = "5028360a2b412232b06b0bc53352c7a0a379943c14781b49b45cb75aef044df5bda24449dbf13601d1a574e5349bd0f2d2f7b7969f10bf72b3aeebe9e81b6ecb"; - sha512.doc = "480edb224fcb42457c6252d4b6fd8cf42796e9b2ac72aa8d4bb22b3840cb10a55a509a47b8c504efbdba3e28192acee367e99638dfdbf9cab4fc5628496cd5db"; - sha512.source = "e80aeb8566f31c3582423abc2794cd468b2a7b3505d4d01cbcf261201e4e8a95ca6ed87c6deffa03c9f868762fbe8b2078bf8327172ee9a172605fa0e6e72c40"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -emptypage = { - revision = 18064; - shortdesc = "Make empty pages really empty"; - stripPrefix = 0; - sha512.run = "6379cbd0983ca7b58d2c94ce02a76e054faab1afb2942227469dcf2c4d572d9946921b6d24e9c7d2b5a82cc45e7e380a8ffae671f165ad0e2a3a611b95841352"; - sha512.doc = "11681a155df95f913c3d25cceb32b54ace35bfa5aa7541916c15473b951b02a7417380dfa5c30f5dc3de1259d6cad99859c31bad4c2f2056ffb4608c614a2e14"; - sha512.source = "1bdfdd32ed844651a109b54c65e7297222cb065a122269bd5c10cf77c6ae0e38b717fe182dad6bd0432b5eafb38b3d8631218599a46bb61a598eef4093a8ce1c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2"; -}; -emulateapj = { - revision = 28469; - shortdesc = "Produce output similar to that of APJ"; - stripPrefix = 0; - sha512.run = "12b73ef4234af72358c1f120d860b7ba823bb4d65f91cba348a4a136b57f8edccf3849eb36e95c50cc40445a5fe3908652c221b938ee34a17aed6b4cb265744e"; - sha512.doc = "2d226b60313de3387d87c373a23e490a66c2fe1a94e97ef2364e65fafb037a148db7f5162ab9d3f1d788a037fdebe02ddedaa772eb715dc1ec8fea941b0e6708"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -enctex = { - revision = 34957; - shortdesc = "A TeX extension that translates input on its way into TeX"; - stripPrefix = 0; - sha512.run = "e6dc0988bd10dcefd63db2a57999637b63187d8a234c46dcb148e9dfe8388800e61237d7b58d271b735d2658d40c1f81016b5018e239d556fb9615d35b4129a0"; - sha512.doc = "2bf47c879c6ed0fc539763c899d8db261135f1a0ef0052904d03a72663cff38d40d2fe7b0daacaf2d54771c7b9eb5e98b73ef71d2a733899d458803f8caee723"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -encxvlna = { - revision = 34087; - shortdesc = "Insert nonbreakable spaces, using encTeX"; - stripPrefix = 0; - sha512.run = "f6aa0a954affda9152f5b15958ea453e3c2979205f25a5d9f15e3fb189b2352a87256a345d382a3c7dc401eeb55360afa9cf942cc4779406b97cc8f8c47eba81"; - sha512.doc = "01f44c8205daf33006eaa73061d27c9e17ce5b456e73f427f797023cf94d7380e44180c347021cc5c17870550fc7e626bab8de6219d6b56000526aa54ba34efe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -endfloat = { - revision = 57090; - shortdesc = "Move floats to the end, leaving markers where they belong"; - stripPrefix = 0; - sha512.run = "9c3820ddd36934dcfd049ab766ed037119459d02e9c049401b910b1c14ae2aed93d94110db66f0cdd2149451e152b5bcac14866c7844ba4a47f8c0a27756f733"; - sha512.doc = "0004d60fe959415670b5173bbab6d37733ed82b537d714c7357dae85ff8f7204e316c48d2651b1b53cc9b6ad0206a47c9cde1acdeb6aae676a25e50f363238c2"; - sha512.source = "bc5150716b23d3aa1e3a66e29fca3e8f9703199feb05b4bf76834e79654c39b0f6790ef1f0c193abeb0acfd0b2717076d4e2c89069221e1bc45716e0de314e85"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.7"; -}; -endheads = { - revision = 43750; - shortdesc = "Running headers of the form \"Notes to pp.xx-yy\""; - stripPrefix = 0; - sha512.run = "55f01774d62616b81fc846af275067445c8979d50cbb67c8f6cdc362a26999c83c9ce5428af28170ab9e4c6262fc4ed8bd0431c5aee8aafa89e38bf4cdc30989"; - sha512.doc = "bbed9408161f827ebe39ae2161e89f1f15d8327f29f7eb18bf58f3cac7c58492529caf05ebe3111891520c406c547b2f1aa57d2927c5f857ea6e02ecfa9cf84b"; - sha512.source = "c58d68a17da865391ce4480dc02f3375ee6d311a2590f8505885c3ce7fed65b2e7d6c6dd5838f55f4fe3d7192b56217b7146646269938a3a10cdefd3c55bd0c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -endiagram = { - revision = 34486; - shortdesc = "Easy creation of potential energy curve diagrams"; - stripPrefix = 0; - sha512.run = "50cda29c5f045e45e0421efe11128b11be1206b4ea3b183d401562a9c8afe214031c993f885bfca67f81e8b4827e024a0aeb1d95e5a8a03426f72f414cfd17fe"; - sha512.doc = "0807629080916e9ca7451fd1975da985ac786326914521c21155c337acbf48888620e3bac03b00fbbf45bbb47740faaa40d1db768a296e4a6b1cf6c6671357ca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1d"; -}; -endnotes = { - revision = 53319; - shortdesc = "Place footnotes at the end"; - stripPrefix = 0; - sha512.run = "3b4d5b55dd1ef844b96d30c7d40d5ea56ea3082a9e6740e3bffb837b864823a2c5545a13fa79eb49f79b47ee86aaa28e15c64f676bd27e4987aaaaca76bb2f31"; - sha512.doc = "e4de81d6cf0d7bc686d84420dff1e390ad18747ebc9381c6df006f871f9d5e000aae5cd43a3648dfdab2806da83efc6b375ceb4a9110137ed6b373538a7a8b57"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -endnotes-hy = { - revision = 54758; - shortdesc = "Patches the endnotes package to create hypertext links to the correct anchors"; - stripPrefix = 0; - sha512.run = "abd177ac968efce6749d8bb80c327bd8c3617e14045d124e036f2e503eed7bc33c72112d46acebe84d8a0a2f25cf3d99fd02a514d3673f38ada9e7fef879e3f5"; - sha512.doc = "46b7ea667c12de23f0491af714e5b86fb7fdbef0e3c03d7c31e242dc715745824be08028861c0e72244695aee8bcb0ce2191746c8d1f906523dcbe6b39958281"; - sha512.source = "6771356602da1fef77f350eb8390abcda0f1267c0761bf255f4aedeca79fadf1c0255bb267b456469c1d8dffb1ff052e567d0bb6b07035c1f5d676d5ae2d4cdc"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -endnotesj = { - revision = 47703; - shortdesc = "Japanese-style endnotes"; - stripPrefix = 0; - sha512.run = "acc3ecb055add319d5cbfc4e542c1be490c00187153990dd42d5b9a23adfd19795bebe4648129bc1cd8aa8cc243111602b287183803db8b5962b23b6c60487e3"; - sha512.doc = "71e52552f4a432b8743e448142fdc8e49b9e1ff1d290b6d20731c083f62bb5be823db76720fcfa40cbb8bf75968b80875926aea8a7f67808555fdec160de1911"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "3.0"; -}; -endofproofwd = { - revision = 55643; - shortdesc = "An \"end of proof\" sign"; - stripPrefix = 0; - sha512.run = "a4b62882d4111a916588298415546fd402abf15ad89177fc2f57b983ef4060b49c7f73677add54c683e0ac8d40b91280453f8a239bb9da5e262cca20d12562d7"; - sha512.doc = "5953acfac90a34bb2c57cd813d220279fb96fa74415f0d7677ed7b7a8839b858f64b3c96d1dfd2dce5a8704e76ffc7eda1e5aa337585f6715ae229a759148ec3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -engpron = { - revision = 16558; - shortdesc = "Helps to type the pronunciation of English words"; - stripPrefix = 0; - sha512.run = "e525f8d2ad25b93566c101edd29a70d49d9f65f591e15bf3457671aaf748da1afac5d483389eada870cefc9e144010e16c561d0561d97ecb3ae240e21b5c5b39"; - sha512.doc = "dfa3ba98bddd11db47f308c988735967d1ec92c688081bad0deba88c29bd01c976bd1180342b890489f3026c964520ec1fa399fdb52f484c24285e3540a12859"; - sha512.source = "b47f186eb08ee68b769d61954b705fb5e0575f9af90968569a1928a6b97bbe5bbbd8b65dbd2f946a40ebc7dc1fc676a03effd7cc51924356531ce18fcc3c8dee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2"; -}; -engrec = { - revision = 15878; - shortdesc = "Enumerate with lower- or uppercase Greek letters"; - stripPrefix = 0; - sha512.run = "3856199a11043eb42062122d99f11a64791113ebee137b588b69eab7ba79d721349c2268440a4b801b0e7bc293fc99011fb9a70a732a03a5656cc6302cbd0054"; - sha512.doc = "f5402766dee90ec0cd2aad59db562a7314805072d4247e5930e59f5aebda9c1b87c4b6935028ec960bca4eb27a1bb1c7ff31b2a671ae0338e1058e24323d4cec"; - sha512.source = "ff2e4447135db1164447ed8502f45e9dc647cc3b8c9329fe21d3a279b40c2da0923fa78be44ef52d4d9a4781945976714140bd2837268d0537cd6bd6c430501f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -engtlc = { - revision = 28571; - shortdesc = "Support for users in Telecommunications Engineering"; - stripPrefix = 0; - sha512.run = "c1ad2ed5337168c70bcfddd35c72b83b19a1596bc7d9c71298eb82ad8637c984253c79216606060753d1cc5ad4f961095eed8be2381b786b12202f5b0bc748f1"; - sha512.doc = "4c6cbcf337eca115a856eda24924588208ed9e7491936640c8875d49d649d6012279e4eadfa7cdb6544e08fa283c341754d896c921402a2b1180764e8a8ff233"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -enigma = { - revision = 29802; - shortdesc = "Encrypt documents with a three rotor Enigma"; - stripPrefix = 0; - sha512.run = "70cf80101d3fe9a75e750f5b3df4db79f30f5ef76ed65f4bfb40f36e5c8c5f0d22468396fe3a531508dd484ed5929cd14d4e22734a92814a4eae9ae2ec3e2b07"; - sha512.doc = "b0509d252a2dd7b61339ed084dcb8dd4c3ec0e63aa6fcb7fd81302b82bbd3ddb0b68d0460e5970798a12b2b66e1f560b80c7bf36187553abf6531e0916ddb71a"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.1"; -}; -enotez = { - revision = 61490; - shortdesc = "Support for end-notes"; - stripPrefix = 0; - sha512.run = "0f292fbfa3ad395857bf04c50817376152765c1511bc1b922fb6612033a0924a416b83b38e15a36ee792ec5ba351614e93cf6b70c6b2eb8cf78ca74cce6438ec"; - sha512.doc = "6a52564111cc5af280ecb578c916a340ae0f0a8e1848f6d19d97d4c8dae863af7c8c0ecd057f5eb54ee701fb1f3f0b101bb4b6fde2500af71867b5d38a29cc8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10d"; -}; -enumitem = { - revision = 51423; - shortdesc = "Control layout of itemize, enumerate, description"; - stripPrefix = 0; - sha512.run = "d49701368b0ce611f5cfb52ec06616edc27b2dedb99230983ffc59c4c1eadc265a8afd3c94f1e57920de875c4ec684fec007dceca59fd4f4008bb5572c13880c"; - sha512.doc = "b61f62bb0da61c7124f661739ebfaff6147d73899511d8b1a1d4b98b31bc596c3994acfd73c3c1922f5cc8a05c6a98572254067718be394c48976a10b2351503"; - hasRunfiles = true; - license = [ "mit" ]; - version = "3.9"; -}; -enumitem-zref = { - revision = 21472; - shortdesc = "Extended references to items for enumitem package"; - stripPrefix = 0; - sha512.run = "5cd16cd19d63d4825dd1f726ad7617bc892a0d80e41f559234b3f82950f589f044a9816005a089f6837805ab08f07b507e47c5d2d389728adaa5350a76d1c1ea"; - sha512.doc = "af4404c0f76f6f693d1fc0a82e0673c461a1acd6a0d7e9cbac10719790e54199deed1b87fae59db4826c2d1874ce59c7c2a1e5ae33286369a4f7e495223fe2e3"; - sha512.source = "7f5642d0d3f3779b0d66832f509265a17e66c6e3ab4a74e7fdeb0bf4af9c66257eb78a9bb3a1a7dc1747a07ace12607031f861a14664addcc9d707d3f8c5d5ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -envbig = { - revision = 15878; - shortdesc = "Printing addresses on envelopes"; - stripPrefix = 0; - sha512.run = "e39ce40decbb52360cfe465d8a5147f9eb5bfae8dd42b86a868a46f1d3c2544d14035d6c307e116c0d08e6ecb62ba5943de803ee9d40a0a8cdf94a88aec8f808"; - sha512.doc = "cd8c32d4694252449e78736be1697f9a8da01079a8aeafb774d92ded858de9ee7ae163b3758710df466dd0f75fb8b325e86e575457b66c8107f3c580fe0fc737"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -environ = { - revision = 56615; - shortdesc = "A new interface for environments in LaTeX"; - stripPrefix = 0; - deps = [ - "trimspaces" - ]; - sha512.run = "c8dec70e56651a89ae8da15abc0ad81cc2edb4487837469238e2adc0e7c58cae4c5da82b637a3336839b50103e3d846c5cee8c73141488f644469a0f3e9d363f"; - sha512.doc = "78d4d3f570470619c938687a6c9a6925aad901d781e3e893bd731a49bb8eca62bf1870e68d84f7125e10d91d7bec02a323ae42278ff59c04d7e33eefa2261496"; - sha512.source = "b30607d21bbf5ddf1c7d36bd9173a16d91bdfcfa004782be50e50f17bf54d94e943d5e524e2331b75f3ce65e81193ba98e69ab56c38959d632007f5b0a87bd6a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -envlab = { - revision = 61937; - shortdesc = "Addresses on envelopes or mailing labels"; - stripPrefix = 0; - sha512.run = "d4272cd079bc0b48835d675f1b36d0155d7da4cf920785dc7fdf608c311f43afb88e6861087c79774af6a434aacce05dda59f9e53aa7b2f3f37e06415eafa01e"; - sha512.doc = "dfc28fe6df6822fd8f45b3bd31a66e635cf621daadd5465408dfdca47a176e0f23e66501b5b89a8f803265c68a02db6a7ba1e05e0f9ba0f35287bc582d1f48a0"; - sha512.source = "39ba3371b9aeab277968d8847ba5fe519ea3035306fdcb2a6376b6fec881a3d443ae7f4912039216058fcf7918ddeace617ca08e85c6f21c70820e8d379805bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -eolang = { - revision = 69868; - shortdesc = "Formulas and graphs for the EO programming language"; - deps = [ - "amsfonts" - "amsmath" - "fancyvrb" - "iexec" - "pgf" - "pgfopts" - "stmaryrd" - ]; - sha512.run = "67a51c2a83fed799f07eaa226c21a50b38cf5109bfb06f7adae4933f2f9fd474bc8ac6e8528f1134273550a9834b4da6d42dd7d8274d6d76a80880b4cf221c4f"; - sha512.doc = "752cf6a65326027af32d69cd86e1d1c703cb8f506b686cbb2964593c505813b0785352399752802358e10d6fab1e55e09554b34b3b928f43afa3c5724c1eec88"; - hasManpages = true; - sha512.source = "dc0992ad4576ec3e4eafcbf0a4039ad3b15bc97e18dd0a9dadce418d9e2b9c29b24dbe3900142692c1248f898744bfbb6b4c59237c2df4d62fa454f535d0c6c8"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.18.1"; -}; -eolang.binfiles = [ - "eolang" -]; -epigrafica = { - revision = 17210; - shortdesc = "A Greek and Latin font"; - stripPrefix = 0; - fontMaps = [ - "Map epigrafica.map" - ]; - sha512.run = "82e5dd9f781b6c3ad0bef743b117d9658ae9e0162fec524fbb59f35f13008d3ce9b37daef8d6b977a5ec4834a1ecdc06346627857445c5f19c89f4b202706beb"; - sha512.doc = "c90061813a408ea74da7c0a9a53c1dc0f4ef65a9ec1d96e92002127ef401abb5211b7f029630fa445725497018a6e5ed3415e31c40001674405b13a4b4ebf6de"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.01"; -}; -epigram = { - revision = 20513; - shortdesc = "Display short quotations"; - stripPrefix = 0; - sha512.run = "8952dbb6f7c573028b1f9621cd9c947a264847e59e1ead9547d386d71c2c15ab5f9c26088568b023030645b02191c9b72d827a80706ca1570785876c6acac6f0"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -epigraph = { - revision = 54857; - shortdesc = "A package for typesetting epigraphs"; - stripPrefix = 0; - sha512.run = "bfcc661316dadf02c8bc1c4378b04c588ef612f030c764af3119e5c9eb42df667f7da9ad71b90fc2b5dbe7adf4094b05d792ca2fb2292c96035384ce65578293"; - sha512.doc = "d8d2ac763e6bdcbcc200fa21995ea5044b4adad11f147b3d7e9f212274c1678cbba7661cc93df8cd013470a5397ca257690d85b8fe55704800284805abac7c62"; - sha512.source = "566c5d132b17c806ee51d60122c9c89f7e1d3e6b6df1444bac715c5e77e2522513a2971f86c495b7fc654c684b07dc53982436aefa0544955e0bae30479b42b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5e"; -}; -epigraph-keys = { - revision = 61719; - shortdesc = "Epigraphs using key values"; - stripPrefix = 0; - sha512.run = "5e92bae46fec0037bb0a2b92c2b44de0c73ef4b434584a0bf13aa4e6f09e89e5e4b7fcc3e4809cd0f5e574d627285b8eb97f3971c65745e48591bd8e4a60f7fe"; - sha512.doc = "21c4e1f6b5c3a5b4402e3d3189b6b2424aa952e777994d330e4905393563030f9cd2dad9cc20c2157accc0e78fe98e7828781d5d63a7fb1c6f1ecd504c67f037"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -epiolmec = { - revision = 15878; - shortdesc = "Typesetting the Epi-Olmec Language"; - stripPrefix = 0; - fontMaps = [ - "Map epiolmec.map" - ]; - sha512.run = "5cbe40240b14ed494500c3831a02659be437ad9710708929a69670d00b788ffc99d4d35e66fba04f170c9844faf2432c116d75e6b01988736ab483e7d0255a8c"; - sha512.doc = "d2c54da2821e850f17ea0a21d0bc67385e2d986948503fbc23ce6df5229708f0700cdd30a94d09cb310cbd911c183c40935e944341b6ee7ec56cdd9c2602011e"; - sha512.source = "a52ef99c57524444151175f8e345cc59ae99c962e31420363c01e3121e1b4ecfbaeed28a01c3185d9d57beae90aaa8fe55dec15fd0790088f72fc4ee8860ea12"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -eplain = { - revision = 64721; - shortdesc = "Extended plain TeX macros"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dehyph" - "everyshi" - "firstaid" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "pdftex" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "eplain"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx *eplain.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "dehyph" "hyph-utf8" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "fda8158ae2bdc96187b6e6ace2a94be3e0f68201adbc02553b48a3848481352ac10ddd72babcbc2835e089ce751ade7dfa6cfd1c642c94155c2861db865f5c29"; - sha512.doc = "60902b2422d2f5d7570a19daf7f586df7882505d7c156539699a0aa47a0f3bde5688dcbdc92c8a6a9878f11392bc9b9f147626aad230eecd2740d56f104928ed"; - hasManpages = true; - hasInfo = true; - sha512.source = "015de2eeeaec99bd15882a190f9ef3f2112520f8c591c7e6d2351c52d8690b024750adea426bcf95f438aaa20c97dd321881ac7212ff181e148337b57f6d386c"; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "3.13"; -}; -eplain.binfiles = [ - "eplain" -]; -epsdice = { - revision = 15878; - shortdesc = "A scalable dice \"font\""; - stripPrefix = 0; - sha512.run = "acc0ceb408f320570a93a52132d3e37d43d4be65a31a038187edd6de9899427f08d7859dbc383b7b27e9d9b5a635ae94ea97f0be4ab8386b5991089a1435c350"; - sha512.doc = "6d9db45832d3e26e79a518f06d00db992ddfb2999099d32b415891e8d05b51803dc4f03d097cdcb04e5ccd6073606d4c7a87a07b9dd20d8d257456f927ee7427"; - sha512.source = "9bc8b64a815e9aa14b6ef09e9ea6328e338e9539ebefbe3df805d3fe05ba3aff61750fd98033be72ed7a7cb4c3d5aa6152b557c9a1dfb0272dec856968171d29"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -epsf = { - revision = 21461; - shortdesc = "Simple macros for EPS inclusion"; - stripPrefix = 0; - sha512.run = "4c3698edc9ef386b08a2ed7c360d926be6ca5a8284e3e53e0dcf5f222eeb27d4d33b4547b42dd2e5544ab381397aafcd58899376d26a4d9d47beee00ad1e9bda"; - sha512.doc = "52be704eec6159e70d99ae2a4823c1da0790f41da9e6de130c84cc77e0d8d29aae145ccb9b416ddc5c9641100821f5099b5c597a350438652381be903e7681bb"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.7.4"; -}; -epsf-dvipdfmx = { - revision = 35575; - shortdesc = "Plain TeX file for using epsf.tex with (x)dvipdfmx"; - stripPrefix = 0; - sha512.run = "0f210b940d55bc2e85b3c86318be82fde1bf2b6fa2e5d498101036a01cec3b09cd8081079476f128f21881b14a13c7fa248c758a7a33ab0770f261505260992d"; - sha512.doc = "e7b770f6880bfa8001851cfdcf2f2d03117fba3a2d38514bd7e23683aae08d57774bd1bfa4d0f75df443d9111a5472ba96bf8129e45b618b39f1798b27fb533c"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2014"; -}; -epsincl = { - revision = 29349; - shortdesc = "Include EPS in MetaPost figures"; - stripPrefix = 0; - sha512.run = "f9251142a990038acde2f1e7b61b94eba39b2c4f5c43a1151af29a17d5f0efb0cddc0af1ac8d056d8617b5ab4eef29bba14a4731ef933480a9bdb95fcc15d023"; - sha512.doc = "2cac5738a39157563707879656b473e7ac7edac2f304c209c8164c7878b10f0d5dcba1d38232ed6ba8e20fe21b3a0cf78dfd51733b993ccd5fcb2c0a05ea31c6"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.2"; -}; -epslatex-fr = { - revision = 19440; - shortdesc = "French version of \"graphics in LaTeX\""; - stripPrefix = 0; - sha512.run = "f3e90ecb487259301c20ab4c4c28702b9cadfa844a49361fee0881a26f827ae602f954e4a3e824e910d2e098097c387aa5311c5f32cb58df5a0a1e2fcd9d2364"; - sha512.doc = "7965e6094535d22b04193619842bc0bd090c2b47139e65498dcdf428f4ce2ec54e7da5edbdf9015c9d8f2013642d11347373e625a3884c629d9d807af2a9880a"; - license = [ "gpl1Only" ]; -}; -epspdf = { - revision = 66115; - shortdesc = "Converter for PostScript, EPS and PDF"; - sha512.run = "3dc467713b1d90b96a8fd3903effe209fe15be82463a1ef4693e29e7d145220936bed0e75dd3824a1e520f778ab9b96fe29389037e14690352db136e642f6a2c"; - sha512.doc = "ee5687a3add6773e127a1e83c91683b5c6ea5e37dd98ec5f5558a32015d292c31f1a456c985ee5d2e4201c0a47324dbac4a7129529236438676f587985bca64a"; - hasInfo = true; - hasRunfiles = true; - scriptExts = [ - "tcl" - "tlu" - ]; - license = [ "gpl2Only" ]; - version = "0.6.5.1"; -}; -epspdf.binfiles = [ - "epspdf" - "epspdftk" -]; -epspdfconversion = { - revision = 18703; - shortdesc = "On-the-fly conversion of EPS to PDF"; - stripPrefix = 0; - sha512.run = "a1f328125f82f33bcc881adacec981f4ce8aefd4cbbe160de66397ed3b1d4c2ed980f5e1c17c63b75973e3c253d76afc2f1227272ab7f0236e47e8e48f0f015c"; - sha512.doc = "dc09e2ef835a85bbfc7c399b7c7323d64c312b04143e8070fc403fbd484bd893be1e4b532580efea93baffe64625c33004405eb0ed9bf6295646cfc260d72c40"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.61"; -}; -epstopdf = { - revision = 68301; - shortdesc = "Convert EPS to PDF using Ghostscript"; - sha512.run = "fcba30848cb2a5bfb12cf89e1ee6d54bb89e7516789738e1fc7d9b1d47c403ff6ef1d679c9fed214669e8d06fc5e76eec2af0ef513d2649cd1d44b535287455b"; - sha512.doc = "9d9068ce64a2e14ad72de11c6a608bf9379240c0fab77a7bd29fbf2774515c5eff12b375a592d3ad6c8accb06021309768c3965284d18b89fb0a57487e2dba06"; - hasManpages = true; - hasRunfiles = true; - license = [ "free" ]; - version = "2.33"; -}; -epstopdf-pkg = { - revision = 53546; - shortdesc = "Call epstopdf \"on the fly\""; - stripPrefix = 0; - sha512.run = "3e2177a1c6cbf8850026f981ce3ec5e6a24c4fdf8c40716e3f18ba7233cc7a5115e5b74d60aa077575f41bafc58af966ab55c189de4d06863ab2a38551ff0dca"; - sha512.doc = "c098251d55112c0c630e007c85d1c7271e32bba9443ca3c2590b51987053e945e3c52030ef4bd1f6758894cc263e9316bc31683572bd07c24fd0855f01c68be4"; - sha512.source = "0816a754b15e42d6f43ef333c6f508988c861c04f7f6f53a370777ca85633a981948c10a13f3180797c1f5af1ed156b60a29c608d7387a53756f2e440f38bd99"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.11"; -}; -epstopdf.binfiles = [ - "epstopdf" - "repstopdf" -]; -eq-pin2corr = { - revision = 59477; - shortdesc = "Add PIN security to the \"Correct\" button of a quiz created by exerquiz"; - stripPrefix = 0; - sha512.run = "631f8dc9f50f7a45a0d03f0c4210af427cf8492d56886cedeff6cb0e9587453976beb1ac960afb53b7a31538a176bb63f55afd330ca2463847f86e57c3d545c3"; - sha512.doc = "4e704295ff398a2e167293178d69edc4882e9b9f37dae4f9debda7edd921a7c2d19c036b4d1424405ac1b9853e57615d9183fbf56a763088dc58919842da2720"; - sha512.source = "eb40f073d1763c59f9a0ed0444930f6698fbde754e213a73bff251df7f83b2c5a730345104d3b947ee8400363d324f968e3ebb7b74ed6f484d0c3589d5134b37"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -eqell = { - revision = 22931; - shortdesc = "Sympathetically spaced ellipsis after punctuation"; - stripPrefix = 0; - sha512.run = "b3544579e03c33b7a5a10f1fbcb22735d1bbcdb9fb5ac94330ec1eeb6f6ae646935a46f4c7c3bdb4305368b2e9aa9eba244c80f08f3127fad2080b610f1041a1"; - sha512.doc = "9210b85937d0bae3eab982f45b1f38f7020327c9b4cfc6604de5b171ecc84f54f5bfd088a3f06ba7123a7fc01a6fb09953015b1813db9ab2fbabf2a15bca955c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -eqexpl = { - revision = 63629; - shortdesc = "Align explanations for formulas"; - stripPrefix = 0; - sha512.run = "75f328b6b1e729b76b9be92ec7ad9844e5a41d8b6776700175af98ec217ef93df6dc56b92b49892090523e9308afa069ba3e6beaef8ca6712aa2fc3995417103"; - sha512.doc = "2ad0eb828e3ea2484220335d61102e0ccdf9787b0165d6f8ebab2073ad2407757c04165d5f872a4b3c674d2c27b952ce9ce1bdc09a626b8e4fe804a5ddc5b1ba"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.1.1"; -}; -eqlist = { - revision = 32257; - shortdesc = "Description lists with equal indentation"; - stripPrefix = 0; - sha512.run = "1af830f51ce25946ac8bc6a4cca323dffeff20389ec998b74afd49a8edab5ad7a453818d4799e55ca564153a87b85e2a6b03ed67e53cc5ae6fa74c45edf3aeae"; - sha512.doc = "a5b22b8e9300064d77d02ca6f5652659293c6fedb792be2f0664a2383b3167ed7bf8796af26edfabfdcab8d75ddf30f3815be36e8f38fda30f1609b56c16ac61"; - sha512.source = "15817915c95c5f609c3def3bce324e6ca362408aa862e7b3548a67225bc1c33bf8a5c8f924dcbb1951958beaccbf86071b4e866f0e7a4d55a09456412fe70223"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -eqnalign = { - revision = 43278; - shortdesc = "Make eqnarray behave like align"; - stripPrefix = 0; - sha512.run = "6793d24d272ff5f95b4e37fa3f4206e7358e0f5b51c51bcf4c61908e3fa554d8c8a53d888c7d7b1adde09f5d308c19944e93abccdb7846c88544abc90bbe4924"; - sha512.doc = "65847f34d7d1c76dd4d87ebd7e46aa1bb9e9a34ecf04cac6e58c18f9f4949d3e82325dac982f6d704fe6013e2acf718f0372873e547434c15a4a07c07ace27c9"; - sha512.source = "124449d3ce1f3b120f152c1eee49447f640f97d01f1d5a6f79ef72d1465cdd31de896049a5a7163e4e366ca9454b0f78723c4a94a24b8d83e2c4540d613bfaa3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -eqname = { - revision = 20678; - shortdesc = "Name tags for equations"; - stripPrefix = 0; - sha512.run = "1717aa83439019ba2c07ced56ca5dc969a68b78c9a711d97d0a168d432c6e26b53f30b2a3f6f8d241acf465fe8817d7e4fc4238982a68bf2ae143c5fdc2ca72e"; - hasRunfiles = true; - license = [ "free" ]; -}; -eqnarray = { - revision = 20641; - shortdesc = "More generalised equation arrays with numbering"; - stripPrefix = 0; - sha512.run = "f5abd20910152cf65d92c7e44930729c1052f72441f162de2f4ad869f0ff37b669066f43089a1369298e9ebdb536ed62d437b3f34be5b3e417d8b0bf34d9c870"; - sha512.doc = "7ea3d87f81eca28dd52f9e9cf4f7df1ce4f7b9cd82cc40d0a7fff234415b2a3e033fa1c8a11594b2c08e5edf87ae265e5f7a65eb92a79cd523568f37853de30a"; - sha512.source = "9dd02c43fca4f6e8dba0bd44292c8f97aef4cbf39d521b9df10206a2309e82492f344fb65c35ac0509532e9efb2571aecb2a5894e639de5efa1444bba9916587"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.3"; -}; -eqnnumwarn = { - revision = 45511; - shortdesc = "Modifies the amsmath equation environments to warn for a displaced equation number"; - stripPrefix = 0; - sha512.run = "ddfee700caa63f65fb4f53fe2469d1e6ef6338843738dd2c06989f23b6f4b40dd1dfe4b5979a04b34a9430d7cdd4d0f3ef14e3ce39613c8961fb0266e4ce6af3"; - sha512.doc = "e6dddee646be40e01c211854d3fa04855286e24a39b8217380e555eaacfad50fc66a57e89336d505c80a8df77ff7885922195423d11c2acefce583c9cb9fce81"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -eqparbox = { - revision = 45215; - shortdesc = "Create equal-widthed parboxes"; - stripPrefix = 0; - sha512.run = "b6e64a4d30840933614a42b16ffec215d1e01138c42805ed20bfab6ec03e232f87fcc2c20decb2e7e75234b7bd5fc2ebe5477808756ec92e6e724acb3482afca"; - sha512.doc = "1b0f7e6249e114bb6371d19f941cd2308f70ac4f1c831ce5a1c15551bbd65a4289b0b0e718580cc7df97bf4732ad3a76b3f22ea12f7caeaa2ea6362fabab2074"; - sha512.source = "2998b3fce2cce05512a41b4700905adb78d421302ed0275e7f263f891a0d8e9d5d8793ce2fb80cf1ca3e8f5f148e530a48c3c701f72729e6f4667382ad9247b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1"; -}; -erdc = { - revision = 15878; - shortdesc = "Style for Reports by US Army Corps of Engineers"; - stripPrefix = 0; - sha512.run = "56754f7ca1872837a362b1f5cc929fe5ed8bbd59a1a45eb2fe20b071f7c44362b0d98764c6d2870d275d0f0216a9543cc1e9f671f92de1b6b02136f9076f5f95"; - sha512.doc = "3e9d2dbfb3bd877c6bd105ca8cdff87cad9cf801797cea39e760ceaa1f27ed802795d728f9bd675c6553a88e22c03a035436abb19dacd38c774b94a0e2bd1567"; - sha512.source = "afe35b5120001d40259065ba25a9c5720f78fb1a679ed984727b89076bc265113e93184bc8ffbf998f069f85636f332ec5c93a40ba39aef4d4b7a3884da42446"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -erewhon = { - revision = 63312; - shortdesc = "Font package derived from Heuristica and Utopia"; - stripPrefix = 0; - fontMaps = [ - "Map erewhon.map" - ]; - sha512.run = "760818dc93dc0564680d76c152f6db9f69870008f50c43227b329df3403e7b6b50f241b96822fa63aee6b6c64ae42ecc69369e8e94f43836d6cbb9125f197e94"; - sha512.doc = "bf9219328f592300b90c3aa0ad425a4adf6e6cf2e190dc21cccb4b15ebe9db8f3dcb88c3e72b6f89f7b9085ecaf28f8ef628fa3175e7fb7d59545c61e2d76f42"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.12"; -}; -erewhon-math = { - revision = 70336; - shortdesc = "Utopia based OpenType Math font"; - stripPrefix = 0; - sha512.run = "f92ccc2cbb8edcdfcaa5d4c27192aeebe75cfbaa3d42077d3a1e87309b381798d8bd6836082e4302006e51d0a79e8676d0f831a790aa7436e0b992d4bdc78d8c"; - sha512.doc = "ccf0b4ee3b6914e26e485c8c292bf421da30a76a1e0dfc03f61a290186920f37163b0ff2ad1102b30049b58844f06c888d70d2f6e506ad7ddc2a0ed45ccdc711"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.66"; -}; -errata = { - revision = 42428; - shortdesc = "Error markup for LaTeX documents"; - stripPrefix = 0; - sha512.run = "ac3b99ef6e120a5b488cf79f3e942c10a47ee92e84a04d3667f99810ef365aac66598908c491897ef7a99df268a0bbc7185d49aed2313487712e300383356ec5"; - sha512.doc = "7fb625a66efc914e2eacc45696ac43112d7ca49b668ffbea179f47f04746509f981141a77d2948f30b8c56e4a2ff06f6af3047fe494e4f084237891fbbf6710f"; - sha512.source = "ecc57287f78000349f4999d1f85aeaba0206a898ff2d97a1fa9b4f94acffd76099cc0f92a88e5a38153f71570f62d9616e0332edeb987e468a6483de0dfab5ee"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "0.3"; -}; -erw-l3 = { - revision = 61799; - shortdesc = "Utilities based on LaTeX3"; - stripPrefix = 0; - sha512.run = "551a7c38657547038a8bcf5973ecaec81cccb4b803961145d4aedf7416834e3cfefe736a59e20c80cc1621d415216371d58f3d0c7d2b0fc3dc0a182e1ba91acd"; - sha512.doc = "8a0a823482fd19c80471e9c1a38312b5db7f04f618c8fd8381324c38bb9b9ebe8eb8fc9ce90137d4a4f1de7b6b65aa1c1820cfe0f009f4ad743613f53b549323"; - sha512.source = "babe7d5b286f4c20f469112efd76e4a37980bdb709ca9cd058263bf74a5d20b4b7c0aa3a4aba7fba512b5c63b538b6da1ae90f1903bd58ddeb36e2dfa4339e32"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.2"; -}; -es-tex-faq = { - revision = 15878; - shortdesc = "CervanTeX (Spanish TeX Group) FAQ"; - stripPrefix = 0; - sha512.run = "33f66e4f928591188289f07e003cac10229735e69ee7390020748e119930ea7b74ad69e5eea991d8e34325ac4d548ce0b843a00b3ca50b9e6fae3e96526a4ad8"; - sha512.doc = "5b5d0ebda1bde2c1c67fd4853a41bb10956487fa5ad2686d6814dbdd51f68dde2a3d294797b7b1602d587a44ea6acbd8260ab9965efab81d91eb9d9fdb93da69"; - license = [ "lppl13c" ]; - version = "1.97"; -}; -esami = { - revision = 67707; - shortdesc = "Typeset exams with scrambled questions and answers"; - stripPrefix = 0; - sha512.run = "e5e2656b1f1dcb224652ada214871004828ac04c2ad316250e4ce1ae54f509df5607248eadcb018308ad2eb14ea761224962b751c7998b935540b4de516d4e1c"; - sha512.doc = "7eda39cb0372f0f500b05196d526a215efddc58aadd1ee6c66504f73129936fbffc65d80183662de665b6fd54d4a9eeb5bdb2c7d5e11ff645c712ca6d712fc18"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.8"; -}; -esdiff = { - revision = 21385; - shortdesc = "Simplify typesetting of derivatives"; - stripPrefix = 0; - sha512.run = "84b2490e6ff743f0133deacc22c8e0368368e961d634239694ccf7b5cde7826996e080077baa0e0045230b6d2c3cad53ee055c05b17c89ca735dc2e40a01fb5a"; - sha512.doc = "97dbb512437c868f2b15ebd1271f51a7f196e40c70043c224617378e6c9333f19e2c18666f64fe6ea323c7aa5a58438944d8c6f5b1a9c0d36a239caee972eb08"; - sha512.source = "983f7f7cee22e442768ae56fac614d569eef18bff35c52c669d51079a61beca395c06e7fb9bcedde338bbaa1b3775094ce9b77fe7c043df2e1e25975410ab7d2"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.2"; -}; -esieecv = { - revision = 59638; - shortdesc = "Curriculum vitae for French use"; - stripPrefix = 0; - sha512.run = "c39e028de2f9cfb981baa2d36335863d6e3252a3bc3e1ef283905fed24daff609a85748dfbd34db0cbdcf7131f4db3aa6d66d0e714f0359b287cb14efb95f568"; - sha512.doc = "8bac60946fe2a4bd5c1ddd55dd314c59dc7fe45ce33a214021de68bbe03b610b8bf1d6ad426e855e10340953176285132017563c41f0326c273f2ca790be4acb"; - sha512.source = "73f00171770070e8d71396540fb8adeb79804b341c7906ac7ebaf67d8d9696a178b5458d6b4d7bbf2949c9d7e3a6d142bf682931763714c5d0ce0a77416bd28a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -esindex = { - revision = 52342; - shortdesc = "Typset index entries in Spanish documents"; - stripPrefix = 0; - sha512.run = "4e3fe4402e025dbbf300b509954600e3a1eca221a448d32ff2399aaf552ff930e6921bed6f0e1aadb20d6453848e235e42e8b809c4f4280d39c29937615e90f5"; - sha512.doc = "6db4b39371280b0f3a3e0be9e18337a75611410ad25e7953742247e750ca439c92c614edeffa03c4a7f39d8aea447037a6e25cb8f6f0d22a190f359c9cc35f8c"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.7"; -}; -esint = { - revision = 52240; - shortdesc = "Extended set of integrals for Computer Modern"; - stripPrefix = 0; - sha512.run = "d0eda90d6a890b7813648516f21e3a88213b1374df0c418895301354de402b9634492a1fd89193f34c6db6b9fcc0cdd0f8f46472e0e3a210234c7d8cab1bbed8"; - sha512.doc = "aeeaafe3746b8fd75ba80fc36b1610a3e4f7c7f26044ca82c2c8091139e0294275a1dde9dd73fb3e5b013ff04e4d0f26422e8c2a44a88beab167353e7686b3fe"; - sha512.source = "242e864b822f5deac76740d7a00edab9b6ff77e260b3e1adb6676dda009a8c200b9352e87998b76ac3047f0eacb9bd5ef87ac554c7c20ae649e91f1fcad889b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2d"; -}; -esint-type1 = { - revision = 15878; - shortdesc = "Font esint10 in Type 1 format"; - stripPrefix = 0; - deps = [ - "esint" - ]; - fontMaps = [ - "MixedMap esint.map" - ]; - sha512.run = "5a663d01e9241adf1961c922c588888561f495e6378fdd7aaa90954c3e51c5f0f8e6dc1e1947c9f03ce3472e1aab3dde1b35e6b5f0814f5e2cda564a31a45a1f"; - sha512.doc = "081a225225f503fac403d306fac3ee3b2747341ef5c4ee9420f49a56ca959c7757f154c24f90ed9506041b13464ea216e6edb52f29790d189ea7b33c7c797f8e"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -esk = { - revision = 18115; - shortdesc = "Package to encapsulate Sketch files in LaTeX sources"; - stripPrefix = 0; - sha512.run = "584d9b9abf202d93826c690545206c3b7276d6b3a4b717ed3671f9cbd2a1c6c6503d3352471fe60232e75d63632e021fb0ed34ce49d5a1e72ae58b08fbdd7211"; - sha512.doc = "acc40c8829e69c681d3bcfd5aa7223b3f5320c1ed5fa3f4a9a700f203b622f300b73912ef5df2c163d2cce1b40aecfdf1eb880dcba48e94783c14054981e0e11"; - sha512.source = "8f7123816c718d86eb1b362369dc10a745a003e8e79c54b8edb90813382528466a7e0fe3eb6b579372754d03888065b6f5c48a0682c6288905e93cebfb1b4a4b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -eskd = { - revision = 15878; - shortdesc = "Modern Russian typesetting"; - stripPrefix = 0; - sha512.run = "d0c1745172683bcacfb061f48bee10f78dbc849657295f5e7714cca949afd586c441f727e909c627b595ccdb50b81d813538e6837a00809ee884ffe1acd6b25e"; - sha512.doc = "01a0be9d02e7fece62cfd1bc8ceb26b2036f3d2e374794f3c4aacbfe004cf4059346510009760fe48fc0141c4e9f3cf1e40088203d31b7bbb31ec375cf5f70ea"; - sha512.source = "88b3edc0487b638142ba353ef108558b8fa6d420f2560a4fb1c189829af87d877a8900566c042556b15d654d11d2a0def58fa958fb9b234fca84419b2621cba4"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -eskdx = { - revision = 29235; - shortdesc = "Modern Russian typesetting"; - stripPrefix = 0; - sha512.run = "e5ef11cba6b0251844200093445f5183de60e0c0198da9c7000ef5c05a2a9a4303a15dc77ed03e9874e452ffdd283016cedb8901e78cd0312ea5bbcc529b74d5"; - sha512.doc = "748dec387a09546b28718e943e05772cd56c75a0066793332b343e7f604e607efd37a071c1f4f32fbd20d7427277bf2d598b355b8ea3a0a04943ccb90f4f249d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.98"; -}; -eso-pic = { - revision = 67001; - shortdesc = "Add picture commands (or backgrounds) to every page"; - stripPrefix = 0; - sha512.run = "ee2a5c75fb02f94feabff9107d8e183cb3ce2dc7d38f8c82b2748a67718286a824e839443a9cf00edc142148271c83ae08017f2d5b8e6bc01faf50455187e75e"; - sha512.doc = "ed03cbb8e57d28abbf3260c4a97c10833c89a603e219882920ed95fc2eab404c461a9c89b21772757a37245783c3ee10743f7ed248d4915d04a0619508469095"; - sha512.source = "988e2f00cec99ab76b95bbb1a64a47bd11a3bc258bf04fb26db8825f381922d6d4db5f4059e09d9969c6a00926a8f6b4b235be82027368812fce493f5f16854b"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "3.0c"; -}; -esrelation = { - revision = 37236; - shortdesc = "Provides a symbol set for describing relations between ordered pairs"; - stripPrefix = 0; - fontMaps = [ - "Map esrelation.map" - ]; - sha512.run = "a6d8a0a9bde08e3582826affa52142fe5b5a0dba43c4ff15f5fdd19cb24b561bcdcdd761c2a84238c9b31d3fe0a023949d2d0c716e105852443e06ced9df13f1"; - sha512.doc = "6698e9f57df458d9652ae98abbea08ce1f14c6c31677c32ab8cdf9b8fa0866a57c50028ea36d2c7cde133588358dce0b2bb37b7085995e4bab9ce7d3de1a541c"; - sha512.source = "17b0495b4b19ca5166835549c62c9c5e1dbcb59e2252e321860dc7254b9ebc9d073f317a344a2a8a4ec772ee1a931a5181d9d3b1af45f913b0ad04ebf189bd3a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -esstix = { - revision = 22426; - shortdesc = "PostScript versions of the ESSTIX, with macro support"; - stripPrefix = 0; - fontMaps = [ - "Map ESSTIX.map" - ]; - sha512.run = "e503f25cb713918329f297a4ed088b63967eb06828fb753653aaf60ef99c5fb7db6507d6f0f74080b9fad2050ca1917f7ab873be2fb0bd3fcd126f29a43eb775"; - sha512.doc = "1233a284b88e5c8bfb29350b3b534e7a4c81b5692a9ac7aff5d69f77210e026dede300b511bc45efd18d6a96f6df9be2add166c80f0ee5d17c93732c0c242bf0"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.0"; -}; -estcpmm = { - revision = 17335; - shortdesc = "Style for Munitions Management Project Reports"; - stripPrefix = 0; - sha512.run = "20213ddd795e862dc924ddd71df08752f6adda4be7a06237507cec84abf6a6ccd664fa9676cb9b275ca9de8647011da0bc731fef9344945404f885b56b75aea1"; - sha512.doc = "c240305f2ad7a841c1d9309d1934001fc42d68819505b5c862ca8c97c5ecd7b6d2fd8a79a4273be79126d1503d968fa4649ad06e0c001f3b731e300341802dfd"; - sha512.source = "f867a24f4bde53c0de195874f1717fe49a3869755834ba1dd0a9004e3085f06076eefaca2e83c59cdf5cdf65fa740d0df898e0ee75f88a5cb516a3cfa404c164"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -esvect = { - revision = 32098; - shortdesc = "Vector arrows"; - stripPrefix = 0; - fontMaps = [ - "Map esvect.map" - ]; - sha512.run = "1a6940862940d8ca29bcb19c69817b84a7f71f7a8762d3a63829fb0e0e88eccd940f3e2973d8d05dbe9323aa1f80dc9045b531e3509239eab399f02a55e7988c"; - sha512.doc = "502d2cce629280d7c192ad11764c0c12e65f9f1318286d1acdc3e08c9d7d36b07fc3e5939c053aa57ad59ee91e73b4035c9bd1aafee3672ddeed4a64bf3cd7ad"; - sha512.source = "658e98e4c97dfdfcb34b396ff644fda060a645d15760bd975ad1397ca73f4ed24331a77bfd914bfe6f8f218aec9ab3fcc0a2a48efc19a0c6adc1024943584a47"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.3"; -}; -etaremune = { - revision = 15878; - shortdesc = "Reverse-counting enumerate environment"; - stripPrefix = 0; - sha512.run = "511f84d8cb951caaea65cbe839fe83c9c2dcd7dbe0e0c3db3611d914dea475b60de029d4dbe482616e9d219929c50b2a87f6c33451d0d880e3b368fbc9f7f612"; - sha512.doc = "4d7728be13e1454b2456e543ffb89a19fc5204e8025f949dcda7ce3b8a8b898dd9a6d96e44477cd158baad4d462afbcc17b6df6ddd9982232891e7b4ccb112b7"; - sha512.source = "17c0b9d705cd5ea494428bbfacf73d12f0f40d5eb4be2a3b1a4e2aeb97af61d184ae6a471505d6dd604174cdf34976f9e64de5366be7877da26141720f542953"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -etbb = { - revision = 69098; - shortdesc = "An expansion of Edward Tufte's ET-Bembo family"; - stripPrefix = 0; - fontMaps = [ - "Map ETbb.map" - ]; - sha512.run = "e034a9a750043f459b8682229bf01c08b341b4494fd6fc6669e1065652ae9154e0eef74038f1e5f16c2d57390ebfa70056198d563f3e454ee3e4806971a707d5"; - sha512.doc = "cc4ebfcb831cdd9f02c93248d5083b81a69c59163fec85d469a17841607affb51310858b022ea819055c6bdade821d330599c97838ab9f92de7b8fa4d8f8f0a8"; - hasRunfiles = true; - license = [ "mit" "lppl13c" ]; - version = "1.057"; -}; -etdipa = { - revision = 36354; - shortdesc = "Simple, lightweight template for scientific documents"; - stripPrefix = 0; - sha512.run = "88502eeb78f2f5901cdfc192638501690aea861de2105445de226261c62f526d6602ab5c63f02974d067e229b12441ee6663b54769236a1e0e125896b869301d"; - sha512.doc = "6aa2ecdb393932a485857222e66471b9c52388e726edffd0b4357e340e8a5092af96ad1847486a58d6a8485a4ce0e80e25e80ad58f60991004136739d26aa996"; - license = [ "lppl13c" ]; - version = "2.6"; -}; -etex = { - revision = 70496; - shortdesc = "An extended version of TeX, from the NTS project"; - stripPrefix = 0; - sha512.run = "3ed4f77ffb42e86877ae448acbc84d4ecc7003b9ac4f4c80e88bacd23d729db991c115a736e798245d4b81825f12247ea68ae35e4a9ec3dc6fc147b6153d0a98"; - sha512.doc = "1b5225821ea6faf8721f6ec6ebfba649d2d14496274b625daf8374ca50e72f94030fd8570e0bdef0bd8ad249f378bd4cfc4d46c1d959eec2d1af01335631c15d"; - hasManpages = true; - hasRunfiles = true; - license = [ "knuth" ]; -}; -etex-pkg = { - revision = 41784; - shortdesc = "E-TeX support package"; - stripPrefix = 0; - sha512.run = "e2afebc530bdab4d5384170dd807d6e39c96d5a18af0defa534106103243b0e52d926e09f3ba62378452ef643bfa8f0e4d92a3c0256847c91e561707410052f4"; - sha512.doc = "2ef9984629ffdafdc799041127e31360c8eee80726d8c410130d61f12de306e7b4c2cc892e8012029827e8ed470f9191eebcf758830cd34b8d01593ff78cef1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -etexcmds = { - revision = 53171; - shortdesc = "Avoid name clashes with e-TeX commands"; - stripPrefix = 0; - sha512.run = "b0be75d3c8eb92407f21111e6c9d397ab5de39b96b99403a149a9554eff523e99cdacc9c1c37ef47cd190487511c6fc6b7c91b617e889eac1d6d8b6aa61c0c6b"; - sha512.doc = "841ff47f9cefecefb241cb81602b825c07d4d0eaf143343eb9bf6c35ca66194c98f851e4aa27a369d60927fe96968bf7a1c1d8dfc7bb5be092e77330ad8ac6f2"; - sha512.source = "057bd48b4c4455f3641c961b6337127c6f84c72dd89615197c095b13846599f1fd8016ffb7fe22be820f16f7b012ee0991d8e959e59a3393694239c1abd610e7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -etextools = { - revision = 20694; - shortdesc = "e-TeX tools for LaTeX users and package writers"; - stripPrefix = 0; - sha512.run = "ed7e514441de2fd296c372d9c56dd71ebd5318bd67eb4611c4bf784b16b045a08338ca4456899739dc023e5bc4695a6fd1784e592e542cac6a0564a68307a983"; - sha512.doc = "5a8d722f9e2e59d483c7421909b4a0f8719b0de81f2b8b95801f905d478624eb4df936f193eb3e4ad1e3f0c2d844c7672a5e2ab1c0ff0654ed88c66bee4802ef"; - sha512.source = "a2535e9648828eee76f6fe48d7c85ab4211c2c107bc91f72a944f8a9eae384205ef371459fe2df743712039eb745e48dfbcfc42cd39b7d5391263711ba027862"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1415926"; -}; -ethiop = { - revision = 15878; - shortdesc = "LaTeX macros and fonts for typesetting Amharic"; - stripPrefix = 0; - sha512.run = "ad9da81e2a9af7f93c3a9677a72b80335562677d552511463c20b73df25adb0a6765463273306486e295b8c5994af03fa1df8f1e70cc48ed7df44698637f8459"; - sha512.doc = "13e9149433cee0c44d8eddbcc6f738cf113581e4890a8728aff08a6f3f26a62617e1770b4875668dcd75a3714925db9cf5c5d9fb58a9870292bc0d22005c844a"; - sha512.source = "46bedb27b22953ee6aab0b372581fc58186f3208c985a88006846a1f7917d998b5b8abfe463c3f415100f27aae20ae1d1648044850e6e7d095afa480adbe5837"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.7"; -}; -ethiop-t1 = { - revision = 15878; - shortdesc = "Type 1 versions of Amharic fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap ethiop.map" - ]; - sha512.run = "84f97fb5320ada95562aade797fdb62577e533feee9d7ece5cc51e17303012b198c0b1e6b4f720dc1539c4cb917ac71e3da6f48776d6fcfe84d4527ffd7b78dd"; - sha512.doc = "81f2ed72d5cef9119c94c4b0025e31be6739153e36b7b31a2c59b0cbe5a683a67746da8346345d561472fdbb760c07831d1936222ce1388ee12d70c9053ca8ac"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -etl = { - revision = 60998; - shortdesc = "Expandable token list operations"; - stripPrefix = 0; - sha512.run = "14c5db74da0c3878609323b450c99dbc186c97997079d09acf55bc8fe78a2cf9f7fccf7c89c1fe02ef8fe9d532fc3d33e85d77e374d4f0c601c6251a04472dca"; - sha512.doc = "2a1dca3962826cf749d67799c6d871b7822b16f81c7ff3473628926db217812ed5d85ee2da351245f6ff7a973bb1b90b61951101978693fb92f07bc86425bb2b"; - sha512.source = "1be3c92c55576ea6906f08461f08269fc4840815124c3f1f09ed145a680de3763e3bcd88aae61c46d872e05ea34c302625e439ffdbcbc15d7565eeb250b177e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -etoc = { - revision = 69343; - shortdesc = "Completely customisable TOCs"; - stripPrefix = 0; - sha512.run = "ee9e46861d53c0cf3f0807f55a78b2e9c24ed6d5b37037b87f162a297421548561728dbe268927e7155a16da256e61b24c74ee9b1c18addbca937b8c85ce21e9"; - sha512.doc = "693a6589f33a93e9086342d093b8801235d9e7d8e1729400e4e1069d0bd9457bf8b96c0a946110f12e2cf6ae646dfea81fcb9a795724558f73e53bb87b300957"; - sha512.source = "0311468458efe4ba2b12bb0917dcc4bc763a1f7e1e6f2621843358afea9edc5a96373f5beb74224df33be1276b36cf53f7d45fd7183574acc38057b31c51f01a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2d"; -}; -etoolbox = { - revision = 56554; - shortdesc = "e-TeX tools for LaTeX"; - stripPrefix = 0; - sha512.run = "b4c2ba570b1636b7ccd741c8960335f4863fb7242253be6c071100b64ce0d6ffc1bcc9da5e9bc65830ae5e34cb4cf887220585c0006d7afce0af3ca95f96b36e"; - sha512.doc = "15f5f37471b991c1363e7d34c419c4defe1920522d6f666c383ce31b25b412d40a1dd6ca1c0fdb0e56ef3c7e529215964957c5a2dc55522bec60e79bdd972947"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5k"; -}; -etoolbox-de = { - revision = 21906; - shortdesc = "German translation of documentation of etoolbox"; - stripPrefix = 0; - sha512.run = "cbddbd599e10b6409db5c9f9d27f35b5922bba82da39b19aac010ef77e76a29465d91c10a40c578e834acf5d9ade2d52baec5cca06eddc802eabbe599fb3dd28"; - sha512.doc = "4c966dc094430caf72e462c1a854995fb78b54dca84322233a16508e41f33f0dd71db2b997b26beb7fd4722f0df1695a118ef782d7954983e9df3ba2132b828b"; - license = [ "lppl13c" ]; - version = "1"; -}; -etoolbox-generic = { - revision = 68513; - shortdesc = "A loader for etoolbox.sty in non-LaTeX formats"; - stripPrefix = 0; - sha512.run = "12bb7835b59a33026a0acff3c8f8204bf9b159fa84538332ebd7e4ce7116f3ab0dcdfda075555e595c050dcf96525a67f13ab33757df5e55e21b62c3d08488cf"; - sha512.doc = "f877ad6a682abe82d84bbd1e9bd2870d80d5b79a63ef150f0eb4cc9abe0cf07c485b59d55281709027d705843bb7da33cff2eac6d382885ba806068a3a651c7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5k"; -}; -etsvthor = { - revision = 48186; - shortdesc = "Some useful abbreviations for members of e.t.s.v. Thor"; - stripPrefix = 0; - sha512.run = "c70654c50e186f73bd6dbbb65cc40cbfd809a86de223f96b4bbd1af94fc5fa928f2400eca58d6a97e5578186c58cd038a99264a412d9bb7fe15a01d7f3aff8b9"; - sha512.doc = "47c9d66a720a8225b34bd0571c0f0da18fc72fb5f37e4204e7d4842facade9a0b72550351c0743dbb9296ca8bd2ad61036361f0cb7447b06e0994fcdb7c657b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -euclideangeometry = { - revision = 67608; - shortdesc = "Draw geometrical constructions"; - stripPrefix = 0; - sha512.run = "8aaf01108b5d96000d909e3d041a7e9c00cfa85043b25fcf4029238f2570330b2402a2faa4f63f80ed84d5dbd3c12cd4690668714ca1bd75c14673b2828619e4"; - sha512.doc = "21d80f3152ecf31c62d203b77ec42c183e2a6058faa173163fe456d521e89cc514f83b0ad60684f2b29c7952428670afccda79372bbea1727d797dc78de04bf0"; - sha512.source = "e48b5ced844b3ad25f11c6afc93fbf5bde4693d9977106ab175c369bfda583c0725aa77185458a88d2e38797b31ff074a48999774ee9ab8cc76480684a815f77"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.2"; -}; -euenc = { - revision = 19795; - shortdesc = "Unicode font encoding definitions for XeTeX"; - stripPrefix = 0; - sha512.run = "f5968e42b36d9c3ab7ae17d156283f8fc09f0c725dd1037cae3b232f94af11a8ee84507efd87cab901bdc8a34f0f72d831a078de205e9beec81c574bb65f79fb"; - sha512.doc = "ac8d4e83ab23bf692d609a617bf8aacd8b33949e0bff1070301b8cad4e91f2a651555ffb44ad70be99791e64020984fe07afbb25976b73963abc79660eab96dd"; - sha512.source = "4037c8f9961be1f4cd6a41d0cced28f4bcb54e5b7c4f9681b702f1d90e425ab0c772561b662fded93a0c469cfa1c43967fdfb3eb8c9e0e8c86d8340930565910"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1h"; -}; -euflag = { - revision = 55265; - shortdesc = "A command to reproduce the flag of the European Union"; - stripPrefix = 0; - sha512.run = "6d6b156148fd6aee2f82ca489263de2fc37103e00aed4a287eb10acef95c60902d3c0c329eb904d2b808e5844f9d6ce92fd8afa4e9abf187d4f8bc7b8f4b75ad"; - sha512.doc = "68eda595381f5f22bcd819ea4d2a4ee430ec555c92594ceb581a9e566de648a74ca3fd53ecd4566d17d3b54dc05b7909bdc3dd805e8c70fb68520b299da355c8"; - sha512.source = "ad66378d43f833c0713593db5875cb0431a251e6443a939389551a4a4e5fe8c76865d1109ee0aac1b9213ccf6f375b1e4ac5a2dbdf347a88aafd86a0af721e90"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -eukdate = { - revision = 15878; - shortdesc = "UK format dates, with weekday"; - stripPrefix = 0; - sha512.run = "4f64df42384897fca09574330d919704bfac2115f330f8ef085c9be60b51c64a9f1f46c10b863e989b9eda6559a3e2cb2388a59a997afad73632d83b02177b3e"; - sha512.doc = "7c79bb48296d491816b5e5cbcec389fb7a2a200a9b8e544394a8363b5b99c7ad36b332c05968b98c1bfa1caf04fb554318494cafd0781e25ecbed532c752c65b"; - sha512.source = "114d472984fb42b7043762f7f76e1ac384ca4efd338b7ea1815d25178256dafdc2c83323cdc3e4c1835fa8d3cb019bf0d73dd3fe82acae16b41db4e0c76e81d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -euler = { - revision = 42428; - shortdesc = "Use AMS Euler fonts for math"; - stripPrefix = 0; - sha512.run = "3b3d383a2f715f14dba0ab926d3df9d10ab63c06d203c59e551732a7f6af4ff8965750404a37863c91d3fc3db7d44d1a279d03839162fde9d8d9fd849f0047c3"; - sha512.doc = "789c0b35257ad74dcddea589eed36f0a3b86eae3b201fc708c13cb11dbedc5b489d1495c218f9e10558b8977658b72c345a5622c10b8b1d7ceb3065a6c8fb9a0"; - sha512.source = "59e262e4ebd3eee88828fb2cbc91b55ffe962e2bfe662df5c052075cf4fe4b9b8580ce217e38e4709789a0e77c810f9681ed3cef95f10709c54da5f1dbebd73b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5"; -}; -euler-math = { - revision = 70335; - shortdesc = "OpenType version of Hermann Zapf's Euler maths font"; - stripPrefix = 0; - sha512.run = "331055a1c53976130824f826da975e7ec49d84b993be8a2e4330dba4ee8a48df209140879405307a3d635eb264831b790b05850ed00e8eec98d9f649443e650b"; - sha512.doc = "31b74c70d914e16a7e4f0bf4a6d94bccdb7656b71eb5024dbe01d25f72612c22577248b3d8ab695a32e58377f315f59ad679b30ceee23f2d7b66444710062f5b"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.61"; -}; -eulerpx = { - revision = 63967; - shortdesc = "A modern interface for the Euler math fonts"; - stripPrefix = 0; - sha512.run = "86f23cf10d19427876caa9e21bdce3adcfa7ca06578e7ae05f20529333e36b7135695c1c3990c6700e0ad365fed41634de5d152813ccde20cf642d7e2b282455"; - sha512.doc = "997bfc34f084027c6275d41d4fd8e1eafc55a6aa1aae66895c6bf8a3ddc8a7b411052a126cb87b9900829b933175c6be942e1dff4713633b5fc12f6688799753"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -eulervm = { - revision = 15878; - shortdesc = "Euler virtual math fonts"; - stripPrefix = 0; - sha512.run = "f497e30a188bd0d6cb66795253b35f6a108ef11a2924da94110e5a2c913af64826a21789265bf7f2b15a31a914b74ec171fe3c3d299b1164801898c0d7b0e7b0"; - sha512.doc = "dce6b483aa0d8ed6d6e607a0a518060fb290b25f04306ea4ba50f863034aa3184118a7a13f42e89fb2706daa173abb7eb5c2bd433eb038aafd1f3a8eb9c17995"; - sha512.source = "33ad15486b813b4c4cb7758cb22acd59a9578df070857483e6cf7997997437df954619a197c4bd762c38417bf9841c06db446ee74939b8eeeb6a0d3bf893f5e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -euro = { - revision = 22191; - shortdesc = "Provide Euro values for national currency amounts"; - stripPrefix = 0; - sha512.run = "35a1c763998bdbc3b3b54ade3e4887859aa9d166699ccfc73db432aab3439be075d858e88d3542c25f8a0065301f0b1fea9bc368f85ed767e9deafa090f35beb"; - sha512.doc = "896a040cf80bec968e4fed5b2bd774e433997d336855775c1e6e5215cd6d9bb094550da324a2433d4da94ead4af3cfa6b192382efa73bb7c6bc951c22bb02fb3"; - sha512.source = "cf587911ccf53bd78d100221518aa62595279fd5880152d715950ece34b23eb5ef39b0ec190d2c5b5060a4f68861a8b9ac2ef93a3a6f3dbe3b85223dc386bef4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -euro-ce = { - revision = 25714; - shortdesc = "Euro and CE sign font"; - stripPrefix = 0; - sha512.run = "c1a864ebf022c8949b62195be6ce857ba108b7f930cf6e0152d70b7e3283e09c2f93fc670732cac79e3f48b860431186ea903324a02597b2a92fa43a0819b57b"; - sha512.doc = "3a44189546231f3bfde594142e6901a69f6e351e1d04203d1d646c476ca330431c0560faa79fec79485a4092b667864dcfb522ddf9a56bfc2b2ab76764b3852e"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "3.0b"; -}; -europasscv = { - revision = 56829; - shortdesc = "Unofficial class for the new version of the Europass curriculum vitae"; - stripPrefix = 0; - sha512.run = "35aa159fd84082e1cfb65bd05ea83462400e12edf5a40a89740373954d72b42cc33516452691814359d3bbfae1e96f4605e0d19592c54f4e2e5328542cac42a6"; - sha512.doc = "834c4266e343a8b615a45a2c4b064170bf6c9516a8631342ff02d4de7154229458818192670f3f73aac5600407c830c1be384226bb3b0923af964905a39d99b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -europecv = { - revision = 69661; - shortdesc = "Unofficial class for European curricula vitae"; - stripPrefix = 0; - sha512.run = "8e71b214a28fa5cda60a769cc9584d030e348e3236ea57e932ef3bc7d02fc07969e31f83ad2cba0f7bc7a32c41d9f478881b437e003675fa26031da7552116c5"; - sha512.doc = "ce96aa71bf8886c67c65d0ec4e24e97d45ea4b4a948d9b1b6dd51f79781f0667798fbee8fc2577c13b13860c5a886be2b4eb6bf743500a01e1982e5c8e29ac9b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -eurosym = { - revision = 17265; - shortdesc = "Metafont and macros for Euro sign"; - stripPrefix = 0; - fontMaps = [ - "MixedMap eurosym.map" - ]; - sha512.run = "9624b0a91a8491d4178051e8e8264e506725ace0eb1b4e4ee9f3cf38cf7868d392f0f4fae92947c74182a6cdf7d4cfb46319a269e4e3aac686ecf4a4cd2f7b3d"; - sha512.doc = "db226757ec82087da3e67fe69b5e9c2429e3cc2addb126bc528dda8bc421a4e9da2a367e64f119eb109e8898409a4e50177b81f9035ed1e0672bb902836bb61f"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.4-subrfix"; -}; -euxm = { - revision = 54074; - shortdesc = "extended Euler by DEK"; - stripPrefix = 0; - sha512.run = "2f786231f801ba9a9c5f5176bfbd01f8e952c33c722c7508988628afa66d1ddd55c4de02c0ed9cfbaa35a8764833e822046f7125330145995433b517f7051bd8"; - hasRunfiles = true; -}; -evangelion-jfm = { - revision = 69751; - shortdesc = "A Japanese font metric supporting many advanced features"; - stripPrefix = 0; - sha512.run = "ff08a32b6283fc7ca0454e0071ce1d90b7a6fbf8989ca3eb4cc1f804f002f920890b083e5aa81a9455f57659a4df52b6c4677096621d9dffefa37c318e79a0f9"; - sha512.doc = "ef98234e6c6609dc9ea6f60027c3dad1f417d677d5177525945330122b9b513a90bd296ba86a1d96eadb52792b5d162264578118872d5a7b1794b4a1a7fe06a4"; - sha512.source = "348b751825e0ad309ba4d37709d9ea5949448e1a3985b69ba446404316486e40a4fcd3a5c337c26b10c63a6b9051ed4c88cbd1f31a0707ec15242f7fd19ac7e8"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.5_c"; -}; -everyhook = { - revision = 35675; - shortdesc = "Hooks for standard TeX token lists"; - stripPrefix = 0; - sha512.run = "56547973d184de21ff5d6d3eaf1baf9b8cdbcf93307c31fbbcf658350ef0d441509ce359266ea6f962ef9b40b1680b47e4c14a822aa043ab8174ab0610df1665"; - sha512.doc = "331def0138dac385605b3ea1d88af6d5d1ae29bac696b76f41cdcfd070d50915eb3371a14a894b1e59bf35d55eb7dabecfe18e89f0bfbe6f028ce5fedfe1bbc2"; - sha512.source = "ba0d5e3f2661c4b5ba765b7509675f301dffa3fb3d9f158b3c3255d84b3a5620ec4d883a9c2f116319e6c70784eb5efa4a1cac270d1a299b23bd6fdcbaf60b2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -everypage = { - revision = 56694; - shortdesc = "Provide hooks to be run on every page of a document"; - stripPrefix = 0; - sha512.run = "032713896e2704667582aa03e8d542062a5eb26188d41b08968955fbd8535aacc8288559112aa264c542e3523f452dd9b2acdd1dc3f66450cdc5c5c902e38b80"; - sha512.doc = "4c19f905b5a16674980da2569b2994382a2eb108fd20bfdd29a6ef4220e00aa390c197dd86ecd093a9acb83b9a2d64521f732083e3c2828478a8c8c45463d180"; - sha512.source = "f01679f5ac00d3c75a0595496b489a008c664d7197af6d267226498b821ca83d34ae842c212756ccef81aae40f4447ddae2146b5651084dc55081f75c1ec04f8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -everysel = { - revision = 57489; - shortdesc = "Provides hooks into \selectfont"; - stripPrefix = 0; - sha512.run = "79b83d48e3e6eedcf1673a30c28fc06eb2ed8e3bd292d6cf914faf5ce2929795e6dd11baae3a207c796abb67ced2a2442af11c2618fd7d565696f8bfd121a0a2"; - sha512.doc = "5efdce418de6d29481a8a8a9bb89fa561e865f5628dd67ce88fd648f54a40c6a90c625700d053d741b650c568eb6b63da81b68bebf89bb618a398a223a5b08a1"; - sha512.source = "c288dd88a266e87bad6880e36a681e29f5f52f02b5f7b86133daae2972932572f0e529945acc6a0f00b844909da8f77cf3a524bece531667437a5ffa0dc2a684"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -everyshi = { - revision = 57001; - shortdesc = "Take action at every \shipout"; - stripPrefix = 0; - sha512.run = "b6219fdc669847a30ad2359d6b0888eec0980114d5385c018e9ddfd0876dc52390e1e8ffae5d2850cfa140833365c30024456bfacde6615bdbe5101e7059d52f"; - sha512.doc = "2a05f4b42c1a85b4af8fb3881d1e32d0cb8fad7070bd8eb83632b50e387083a5c8fd264b61b70416451f56a97e1c0702507bd50c534ab7baf975372d854a97a5"; - sha512.source = "4ae653fe3cf9dcfa51f461ca72954eeef666a6324321cb5e6416d7e2baa5320115818a26f1970bf7654acec9454e5174262578fc4d28f251d3476d27d6d4d9d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.00"; -}; -exam = { - revision = 67600; - shortdesc = "Package for typesetting exam scripts"; - stripPrefix = 0; - sha512.run = "99621f442f2a36e661f98e2722776e2e9dc394abc39cd20d45bb6bcff3ed362a942dc79d386ebf45efe053fc6abe2524d95fc85c4c766d241385970fa00e5f65"; - sha512.doc = "abcc7ead3c7d4847537476969bb708f61430940e7572e078e26baaeb6f2493309dcb996bac0796870825d4badb7bcabc81fc49aa7f4e71c0c816fd7e1ec875a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.704"; -}; -exam-lite = { - revision = 65754; - shortdesc = "Quicker preparation of exams in LaTeX"; - stripPrefix = 0; - sha512.run = "f1f16566eb49d5514bff3076f1c1837cc933278f3b0e8b1d6541f158ce4922daa43585057666e66ef80366d36b4b28793b930421ed8901d456405e52469e0e43"; - sha512.doc = "a1a2ea02e4ed3d846e428f5ae43f25150a982f2d490d9753071345d53e640f3ef05b43e812ff84155a44f369ab49e294050bbc53823da4e899c7e1b6c2d1f36c"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -exam-n = { - revision = 64674; - shortdesc = "Exam class, focused on collaborative authoring"; - stripPrefix = 0; - sha512.run = "bdd3f8a1e7836ce86fe022e27c554c125403247a9ca4e4cec7a0f32937eb517351d815248ce67815610bd063a9d0e5111868c301847aa5b6e5d666dd1cfc2f8e"; - sha512.doc = "3cd31c7cb86e66901eca162e7bd0ced047fdf22f2d8306d9f8cc8dffb299d027305e950ff1f188d366226614aaa2db2ece78008bf1a34d4076eaf3db7edab319"; - sha512.source = "4234bf167451fadba8b098e686490b517c44063c76bb4a780aa0d585db0df75fb30050efbe539cf6ce2658414db6a69c5f0c6e63de6e024a825ea45070ee894d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.0"; -}; -exam-randomizechoices = { - revision = 61719; - shortdesc = "Randomize mc choices using the exam class"; - stripPrefix = 0; - sha512.run = "bc29ee238d430b0d1b536084568ec8e68381c827c7ea7a4742eb497c7092ac8eb0bb990c3356eaf5939420e37979412c61ecd2e83a98a0e36739f1d6c73be3e1"; - sha512.doc = "0cc99d67ba7b1d8d27048b33a1f1b9864e35c542ba8683c590598d5da3d4be5d3f93c9a01f339dde6fb0945982e20de19847805d185b4b28aee2c7d86bfc631f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -exam-zh = { - revision = 69920; - shortdesc = "LaTeX template for Chinese exams"; - stripPrefix = 0; - sha512.run = "d4d15c90b4718be8deec3042d4fcbe8ec497417a3761d8e203f6e17079c613a3ec621d58ce388f26353a5d4d668546aae40ab7d0248ae577e1609e18186b19a0"; - sha512.doc = "b00e5d88a1d801e38b3ab2fa8286b880348e99ac0f9daf8b28174a6d04b862c995331136a3236801812e05b9bf15e1288268414753b99545abed856141868215"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.1"; -}; -examdesign = { - revision = 15878; - shortdesc = "LaTeX class for typesetting exams"; - stripPrefix = 0; - sha512.run = "bf052063b16056faed35007a5e1b6e2bf4f116388b2698c24c7c00ff257fde4f0225f138af6c011f99d051085169b51357c8661647f28be07a7f6dfd330ac10c"; - sha512.doc = "1870e3732933e0d69f52eff2c403011b09814938083b91bb428c776ef50140e1b43713837e018b09e8340dd5e47811aa1050bb9f90b350aa341216edb00c2a9b"; - sha512.source = "8f755df76be154c4a2a1aa6d2814774a0b9398d0b64f7a59cd865e92e805dc3bfc84026a18dc449a2ebd6cb6215097e351037430de19960e957f314ae724e244"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.101"; -}; -example = { - revision = 33398; - shortdesc = "Typeset examples for TeX courses"; - stripPrefix = 0; - sha512.run = "2f790c1bb8934e1127ba64c61ccf0d9ed503c01cb8975c114257a2179db7d88b4c969475b0e357d17785fcf7e42487e991e176df3dd7a1be5db4cdf87abb9cad"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -examplep = { - revision = 55265; - shortdesc = "Verbatim phrases and listings in LaTeX"; - stripPrefix = 0; - sha512.run = "689c71afd2f5733b669b12c27014edc260ffca597b197ec0a91b5cc476bc6458699510bc5053863f9fa8ca47b9e2cda18939e734d3c23c7507f0646e0cbd9afa"; - sha512.doc = "09fab96fddb1f42c6c5484e1716d1f2dda3f51c6c6f666343a79070aae079ad2bb67f210e51875621c4b4f8a30f9908d4bd53caa74c57ea8ec4ba330dbd721ea"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.04"; -}; -examz = { - revision = 67303; - shortdesc = "Randomized exams with multiple versions"; - stripPrefix = 0; - sha512.run = "7394aaadd38993f44b63409c28517af05f9875840d094fa4467e8bfcbf1be4af41327683264ad81107f2f84f024fd683a62fe32c04d9f61ee0532b100fec93f5"; - sha512.doc = "400eb0b85928fdb12e1afc58036f6cefadc301ae4a3e659d1cd1f2fe122231729cafbab7a05910cb47d969839041ea240df26e510b43a6728e2d1794271442e9"; - sha512.source = "df30d1ca746c4c4efaef640884ea93eb3d97288addc5571db4ae76454ec26e2b57df5e401314b9628454774c8d29b4e69b2a2e6391c30da2c29a7b7330e670ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -exceltex = { - revision = 26313; - shortdesc = "Get data from Excel files into LaTeX"; - sha512.run = "ef8495b4ef6937af022951044652ea1fb1dcd3f65961408e84a52f9053db8f4fde6703f18833ee9cd002bc058f01813ddf765f575200211563d6e16a956d3613"; - sha512.doc = "a6c4ae60f2922af773f67494c30407b5b6ead39def9253b4710940774e619496a3c242f7e9bcc8733fc733234679bb2b01c6f4571e30dca16c8eb15ad8d6d01c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.5.1"; -}; -exceltex.binfiles = [ - "exceltex" -]; -excludeonly = { - revision = 17262; - shortdesc = "Prevent files being \include-ed"; - stripPrefix = 0; - sha512.run = "b83426d7ff334e64f8a5566fa905f1c03478ff68da5b74b85dfd6c872db7a63454f627db4e6bea48f8048da0d84bd80b269cf5cd3a5b487484dcd8f2e21c5058"; - sha512.doc = "11f1a4e7b0bfeb5728ab632756fb612b784e7a8b46e68c2e5cb3681928811d394ac0b7f508e7c655945209b1e75837d4ec1a69bcaa6b0ac8d45d66302b4bcb13"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -exercise = { - revision = 35417; - shortdesc = "Typeset exercises, problems, etc. and their answers"; - stripPrefix = 0; - sha512.run = "8de2044404690716d781a3b081181d9a14596487213762bb1ef426a0951dc18b1097a4cd8255bc7094d9d5e7f874e68181849c173a4932e7d07c46e14d1609b1"; - sha512.doc = "3059c297ecb8a990bac32e1e52bcd6fe39e6958c96c145ad70b937ba89284a6f447a84e2f144d31aefa1c446331c7ce80ccba926e288d7ade917c7aa68095076"; - sha512.source = "fa76e8b16def4f53a968c897e12e37707c054c3a964f14ee9654bae4e7285a3d300d62f0a79ba7fd80b2fa15e9a334bf38f3a744f0c0f6c32659853bc9b57855"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.6"; -}; -exercisebank = { - revision = 50448; - shortdesc = "Creating and managing exercises, and reusing them as composed sets"; - stripPrefix = 0; - sha512.run = "6398abee37218c1c4b0e21f7dcdc82b49985888c8e5cc4702fbe20942471cfcdb8bb37c66edf2c6764d9a38dcc932b8584f65bec8dcf75ba11c738705a71048e"; - sha512.doc = "d7b262b7a9ae3a45b69112e2924be8ec7cb2c13a8b973056e849cc5a0f4c82f85d4b5887a3286360b38c3459bc99ea9d917cd1084d6abf1ffc343d7ab522fed8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.0"; -}; -exercisepoints = { - revision = 49590; - shortdesc = "A LaTeX package to count exercises and points"; - stripPrefix = 0; - sha512.run = "cc706842f62ffd982dfde7f503f226c7f7050099b581dbef6e5e7f85269e3110a738232f1a99752b353a54a91ae5ef145697ff36ad9df1fb69ce1051bf92858c"; - sha512.doc = "81493e680086ce4d833e8e9107a056daa4e74e321964f914d8824e25b4dbd6c181b1e10d41ceecf27d18baa53958babf77b0edf4c0234e0b80a8a3f5ae49c348"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.3"; -}; -exercises = { - revision = 55188; - shortdesc = "Typeset exercises and solutions with automatic addition of points"; - stripPrefix = 0; - sha512.run = "90ca30f7417076a9933970d6c8559317861015480ae5da813e19e0114a6838084317fad6a0b1aa295b7a8a8c49038007a36ebcf4ee83f54fc0e454a317943923"; - sha512.doc = "ba5b8125bf2a59646f401c5d4968f1e00b5d9a35293bcfd7c67c54d275b8e4b1586a5f07ddd097065259935a541551a8b990f5dc737e1be8e78343382b7be72a"; - sha512.source = "32728c5bd1bc6465bb82ab95f9c2a4fa4a403431a8369373d75861ef0d6af8850c108c223b6e202f03b53f87d52bbf45f07a81e75175c0896951cda89cf20ee1"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -exesheet = { - revision = 69885; - shortdesc = "Typesetting exercise or exam sheets"; - stripPrefix = 0; - sha512.run = "80b24d8740ff9d633b852fd27c2bf6c6ba00465c620780a0184fdd2c0944a3d84fb467561602cff66c96657d6feb983225f529c72419c81579aefe2a10885735"; - sha512.doc = "b6e1f6534deaaf685428d83ca76716309c33f9bba4799a59d9a5223d1594989c81bdb568b4591ef3c58fece8cf4b9849c309e34b2b482478d1b4994d3edf3455"; - sha512.source = "efe535af2043be2f2328b52c2c5fccd3aaaa1e84b839d0b793f1fddaf18b277b9cd1f325f94fd9cdd87159b28928b4ec2085830a5a1bac0daa2b31d98b165a2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -exframe = { - revision = 53911; - shortdesc = "Framework for exercise problems"; - stripPrefix = 0; - sha512.run = "426128ad41db65598a47e0baf0e019b6592c996b10442edddd624d86524116df4e0fd01411c3ac2f4153ab1af6f3a960680a085a556f07a90ff2b326bfbc26b2"; - sha512.doc = "c8f9913899a52815ddf7d96f033db62e248a92ddfbafea2091a93b55fd1bdcb01734177c7e234ac2de51383eea7e21afaf77164ce496c7858f95d63800461007"; - sha512.source = "1a42fbe43846bf5e3a87b43b4e855a0f7b198aad0f0aa311a4e7c3632b4d45ef338f107484190461fa15dbfa8a52dc7fbbcf95ac00cde18281b2d58e931df060"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4"; -}; -exp-testopt = { - revision = 15878; - shortdesc = "Expandable \@testopt (and related) macros"; - stripPrefix = 0; - sha512.run = "26b5af9bdd06a3bbd231b1b55c4ae8929efa06655656747b804425e802fa7d07355e510ac673590cef235cceaf88fc03e1493f4bee9c99ce2a32c32b9a3f9aca"; - sha512.doc = "f4f7cda5cc8b3f8900cb12989834e5b1702f751248f58fe65a8d65ab69eb2a4118002212eefb609e251d4437579e635173366beb471e32d07d45c5c645ca506c"; - sha512.source = "a41951719a9a4bc391216d3c5ed796b0f285a1a7049fa3617bae689127cffd32590ebd3212bf24b221bd7214128aaf564fa62e0a511f98f03961c16a39bc6fb9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -expdlist = { - revision = 15878; - shortdesc = "Expanded description environments"; - stripPrefix = 0; - sha512.run = "fc0f0473faea3d8ffe917e654909374bef6b6d7e41d14c32acb3ee822748c6f37d1f5ab562b4bbfe35dde983f12cd9e1469bd2061aff32e3f79de66e6b3a6c32"; - sha512.doc = "624bbc4ce685589e7e6393cd991b6305d8a20419b4538f2e1728f9ffc004ef4d724831515b77a607093bf45b8cefefe3e6a352403ddcb543b690b314fb469ce4"; - sha512.source = "6713de4d316d2be62338ac94d465393a9e20e16eb2a088ca9086f2e9ad0052f799e47d89768e38fb04a38ed07800cfe9cc505b578b517c2f4cadbe520ee1bda3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -expex = { - revision = 44499; - shortdesc = "Linguistic examples and glosses, with reference capabilities"; - stripPrefix = 0; - sha512.run = "b447a885d65a000f0b79b4c9b050bc89bb32b71426a29261d282fad72428fcf64dc6c660d9142114094bba32040c8e723190e553260c3899a1c1923ebb9f765e"; - sha512.doc = "b0dce6401ccdef7fbfebbcdef9d68f073058f935eabc95fa45619f4d4d85e6b53e15091d845593255c000c3e672dabadb1cef024b2b0c79765f4f6a231de86e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.1b"; -}; -expex-acro = { - revision = 68046; - shortdesc = "Wrapper for the expex package"; - stripPrefix = 0; - sha512.run = "303eec6a2ff399771eb33ecaeaf85fa4a95dcd6bfcaf2a99d702dd148c90b99dcb6ec292170406e497839d5c64ca1a5a6faa20e6cd64a497eae7900b2f28f098"; - sha512.doc = "cb24be981f9ef838be718f44f2b69ee03f81bdd0c6bb49ffe632214f3b6029293d92bd492f59b0c34bc39aeb506204f747a6e02064a9f222cd01053fa1ebe98e"; - sha512.source = "c07114ec326345002f5a4379125516083452e7bc38ce949280a850095d260d8545fc1a3672206163dd43985a48a1e249038daf401359be8383c889a01397982c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.3"; -}; -expex-glossonly = { - revision = 69923; - shortdesc = "Help gb4e, linguex, and covington users use the ExPex glossing macros"; - stripPrefix = 0; - sha512.run = "367021fd290eda11945ba892fee935bb6c86d10427c86232acc000e409d254f410fe7a1012f1870f9c6911a2e1172dd27eae3ee922daf5804433120ccba46015"; - sha512.doc = "fe033244e38a76c3dc6cd3da6189980184e0dd95d74b006011881218e6a385e468c7e59c6dd0da60967f3a8a31c030a1ab70e209c054f89ff1d90e802519edd9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9b"; -}; -expkv-bundle = { - revision = 65623; - shortdesc = "An expandable key=val implementation and friends"; - stripPrefix = 0; - sha512.run = "969711569e1a27e2b08fb7aa9049413ab55c6799d6e1b6cd1c92a79f82214e36d26608fa0613bc3299385a94919f8f2d0029bd28ff2a649873ba6f5da74d48fc"; - sha512.doc = "091fa4f7e8a3b321f02c874160eb92aaca0bbb9b0abb895c74f398c879cf52945ff3468f5f9f4f9d5ada750c47c817be3f9280328e6958ad7de470a11ca340b4"; - sha512.source = "aa9721025f7ccf9091933d95ff411a7fdc763f9d34bc191eb693dd2fdf4e8056e6db929977c89956cd4bbf0804a2c6f1e902b06e26047f55e11e6e2c15fb17ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -export = { - revision = 27206; - shortdesc = "Import and export values of LaTeX registers"; - stripPrefix = 0; - sha512.run = "04b5eac3e263fd692a1f4796ddccf7c5f41398075c9b15e65a0712cc83dcd85a65ae4506a882249e09c9ceea37f973be3398a0c31d2590e0c3e57549f07e9116"; - sha512.doc = "169236b497ce09d685c71bd21eb6c35ac260d5978c03f074371386062ce8219bac1e501878ba13b60677c423904ed11b37d8e018adae573d135a1e1cbfdb84a4"; - sha512.source = "844f1bb688d389fba93a7350b884b4cd5298ed6974d48218cd1cd2c863b9193e6d4d177f3ca1e905dfaa028f626fff4af4b9912ab9bf3eabd2bd9f4ce5d5da7d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -expose-expl3-dunkerque-2019 = { - revision = 54451; - shortdesc = "Using expl3 to implement some numerical algorithms"; - stripPrefix = 0; - sha512.run = "9a642f593f0440159d802bfd78a472645dc1c320a43e8bfe91fd7eba3c0b67bc3ad9477c17b36f6ac08b39ddbaff11687e78694bc81134c33e1af085a9384a24"; - sha512.doc = "d3b09af828ace720aa3f7b0fe979893f9fca3d358a69abd818bca7a81d45928cd02e0557bd607bcd91f223ad9f4808b0aeb61ba7269728d467eab46999ea5f92"; - license = [ "lppl13c" ]; - version = "1.2"; -}; -expressg = { - revision = 29349; - shortdesc = "Diagrams consisting of boxes, lines, and annotations"; - stripPrefix = 0; - sha512.run = "d380b7ca2efad2cdafc3ea6f2265452a85035765a221dd5cfeb33a03859dfca0e4cd01219995870c8943657d2525e25d32bf7e5b9fe8aa9afa8d17c1ac4703df"; - sha512.doc = "9287376ba5aa36088b4a99455b727c0f60648d50421ebf2fd125542f208f490c5b57af256bf2b704f01a3e00e85e6023c69cb6dad529fb7521ee8cde74ae9559"; - sha512.source = "4fc193835f6b283ebeb0906d847d54e99e5026ae53929b8855d78208212bc4ce6133359191830803298c1dfd07bcf7eb1e163fa12f8bf799a9eba381e11f7f82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -exsheets = { - revision = 67300; - shortdesc = "Create exercise sheets and exams"; - stripPrefix = 0; - sha512.run = "475b2508bedfef0f537b02dde56e489ec464ab500e1b6b63e7d8accaf9d5c17e8973d9aee8d370494115592febe684262fbad239fabe5a314c5d89e781506377"; - sha512.doc = "8a00471bef6ab06927fc7c3a4c33e32a2f6de376cb238fa3e06e3e5a44c98b2ed413f74e60bb207c99c6e64f934bcb406d898bdaa0bd6d9c70b3b5133f4e8178"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.21k"; -}; -exsol = { - revision = 69343; - shortdesc = "Exercises and solutions from the same source, into a book"; - stripPrefix = 0; - sha512.run = "b29f3f9e3ba9d4b98b5db23876e69cce17740923419bc2999c742bd24ecf8f6434bc6226bf4f0bbbd17de79b45653b97ea85866b76892f07d696b0ab5b6afb46"; - sha512.doc = "8be8c7e37139dabc5095c1c77f21a55e60666067ffaed66448db31a3cdf1ef2c21cfa4cd8e4021ecdb6586f1a7b0ece40ebd79f485f878fb25249e1094b7b316"; - sha512.source = "d48acde6262a2eb4fcb2de2f0e3da5f7b0c33418d896235b2ec656df5fa946872c8cd4b266b8801fea5f9a30bae24154ab663358013e450736742604742578d8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -extarrows = { - revision = 54400; - shortdesc = "Extra Arrows beyond those provided in amsmath"; - stripPrefix = 0; - sha512.run = "ebaceefc82c42bd0b0e341d6d2cc589f9369fceec0a71dd7da40f0228b0ef1fbdcc9ba95ee0990b47b4a202d15c87630e46867afd8e9d69fe02fa721bfd590c5"; - sha512.doc = "c51c13205ebb78eabf181b4a927bf92ccfe6756d732162407d1e98961c6b50fc20143de05c992feab2b6622a80ad7556eb173d87264e4c0059cddd10eaf8506d"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "1.2.0"; -}; -exteps = { - revision = 19859; - shortdesc = "Include EPS figures in MetaPost"; - stripPrefix = 0; - sha512.run = "1991bc0b471276ca3db68a8ba7611becc4557de4335a321b5c3e92c1fefbe34dc0488ab44850835b5ceb1684ce429e7756fb86d885e2da2177e0d9081797aa0c"; - sha512.doc = "aac2e20a993818576f9e1efb153e9285b17b48827a1547a0c1033f22fa1a52f84ede214b4322ce4c6ddff69b8736f214f27370b3f1c006ea6e5fe2ab9fd64304"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.41"; -}; -extpfeil = { - revision = 16243; - shortdesc = "Extensible arrows in mathematics"; - stripPrefix = 0; - sha512.run = "5cfe0172ad420c3ca53c57be33fc56b205ba05a11876e4d14c6d86387788c73370bc0708bee46e43a02f10ce9db4b3611b4ee337ace44fe8fbcb2ca82f88b2f7"; - sha512.doc = "8c2983b2e777e21e95d6ce1b9b4732491ad8a931205adb071877bf966fbbdc4306b88b35db87db4c3fa0bc52cfd333f721de2e1e7d233ba3c91d192a3574171a"; - sha512.source = "6dfefa85e111b39bd46b2f39ae52e94a053569fbb0b263bdf02996bcb122913cbb999ed6c060e00a12a88e0ea9b187fe2e33a990bd75fd1f6f78082d8859071a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -extract = { - revision = 52117; - shortdesc = "Extract parts of a document and write to another document"; - stripPrefix = 0; - sha512.run = "32889da48868c2335866bb5c229728f9a37dcfe552830ca03ad3b704d1f7a471ee120de2ffed07bcf50797f7e34dd6fce53c77f1b63d15071888171d44cc938e"; - sha512.doc = "64fd270a61f5e5f39442a56bb7a20606854b45a995b9a455604139df8006a1b198ae332669de09c1baa5dee5ccdf59e5989d21c17376a764a096f535ceff3f48"; - sha512.source = "c94663034b4069bb47f611b761f08df36e2e69705d491ad0405d826d81d07f0862dd2a7963cc1bfb0f071ca4ac56aedc96debdfbbb35b097a6a49f863ac3de2a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9a"; -}; -extsizes = { - revision = 17263; - shortdesc = "Extend the standard classes' size options"; - stripPrefix = 0; - sha512.run = "5b000d25ff594af2895408f0d83eeb0e7d6dd5604c53d5acd835898197e44fb88ed2469039489b75b45678f28182dc88a0af56ed1b1730be2ce41e6e81f13b7c"; - sha512.doc = "9bfa898f7eab416beaee2938902fc0f3a5ddcf1ce972f30d18a683756fb53bc8f66ef1220bd3bbe6ca6a473959a67c55c18a7996eb095ef301da8b594f42d3ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4a"; -}; -facsimile = { - revision = 21328; - shortdesc = "Document class for preparing faxes"; - stripPrefix = 0; - sha512.run = "3a179a3abcc33bd0f48bf267338c8a7dc0186f7eed097af74cfd8a936956952fb50876dea447839738842fad34c724c057f577d427a82fd82f85c7e8ab80c8ab"; - sha512.doc = "36da402d7b15601ad768aa1e07f356812ddf0a09b30d19c13bfecaeac847537caa3be31036cb80441370b6c046dee24b13aa3e04f339476e9ecd18cf09c8c9cf"; - sha512.source = "ad8f90796cdeefe11e6c12e254c4571f2be57f5cbeca8b68e301d857a0ef8e52fbb1e32eb2d39e6d6b8c7ea19af58f6087c67c9bcee58e84a32038f18bde223b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -factura = { - revision = 61697; - shortdesc = "Typeset and calculate invoices according to Venezuelan law"; - stripPrefix = 0; - sha512.run = "6a90efed09588600991644ba847b16641aef40dd0b989b1944f7b48581d6bae642645fc97023e6cb0f1dde76593086c3007580df25e5997b92593020140dc212"; - sha512.doc = "f449e749dc4b61a8a15062fc9e5556414868cf904bb279c5e997402fbd6d7f21f3e8f19c19af5ab4049a1512070d8e74064d4823d56ee7a20ed03f2a2eaa1b91"; - sha512.source = "d26418ce7f0c6d95a1019f16406f39e791ba79733632cf5072b041a3ea3b70530d08356590aa5305b9d52fda0d882669d52b1bada9a3d0c458c2888cebe35b9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.32"; -}; -facture = { - revision = 67538; - shortdesc = "Generate an invoice"; - stripPrefix = 0; - sha512.run = "30ed6e76f8801f61eeea27679c8c23c050c7d17c334eabe0a00984b1117f046314e59c2c52225ca7d38eb71b93efa57dd563fd582eed500fdf238fac9540b606"; - sha512.doc = "c84aeae53d8324b9e4f1d386dbbc8774d1b9266ca5c8b893a7280bdbc2578dc9e2ca9975874f4d0cbfc5dc10455cac322d9642534b0fc1384a6d7d192a816d51"; - sha512.source = "5d2f865404607f25af2c0704d83b88a359ed5601a970c6798eaca104a2b61bf45745e271c9f19a6b41977cef1119e6981f986a20e05a07ba6053b24c5fcc4832"; - hasRunfiles = true; - license = [ "cc-by-sa-20" ]; - version = "1.3"; -}; -facture-belge-simple-sans-tva = { - revision = 67573; - shortdesc = "Simple Belgian invoice without VAT"; - stripPrefix = 0; - sha512.run = "b37887eff90040c6705396b81ecf753289974f1fc5e7e348db2f0414ed7f1afdc0179814a6c89f0843f310b6afb56e8a3680c787fcdec886dceb49ac5f25be9a"; - sha512.doc = "5d5bd334d970ea18e5e041e629893fa42c391a3de0652516efa258b8919429d1d6fe7b43cc4bb104d762e5a5770fe3fe8ead51c61c40ebaabe25e3d15311bf0c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -fadingimage = { - revision = 70610; - shortdesc = "Add full width fading pictures at the top or bottom of a page"; - stripPrefix = 0; - sha512.run = "c86ff2a9387a4a1e0713a42a6a95bfac953bdbdcd2d0a5b1de918d7f5bbdc39a00950ad7e9ad1705245a7f8f6021a4b3a676540930c81d9cddb7f87fd9bc8477"; - sha512.doc = "1350c995bc94b4d5c8a0d8c0e88dbbe1dadc82cf5b75be09be3a0c3fee90ee6451934154488d5c2a21ce8451fcc7ae8544f7938aa692f96bb133766a05b49730"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -fail-fast = { - revision = 67543; - shortdesc = "Turn warnings into errors"; - stripPrefix = 0; - sha512.run = "dbe4eed6fd1b3bd3c2d48ab4590043c2bf95871350bc1b56f47bb4dc27ef3010097741920ce0a935aaa03fe9e2e8de49db7906dace3be314fca49e816c7451b3"; - sha512.doc = "6c5bcd8329cd21f13a1e0074ef4c4b5bc474babd663d444d9ce48d23ac775dfaaa7cefec393a6ce2bf81ca67c1429c65dbd41511162030b80fd1445c9aa5b541"; - sha512.source = "0703b26d3675c57d5d81de357fdf1b50133dbb2a07710338a243dff8b04370f2af0d1c216d1b1751e1e281436427635a6bb5b226e0f35085f9dfaf9378bc6777"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.0.2"; -}; -faktor = { - revision = 15878; - shortdesc = "Typeset quotient structures with LaTeX"; - stripPrefix = 0; - sha512.run = "5c598fbb40d7b37ee5b66bc1bfa8b0b2a0b45f7e22c992e6d0c85ed952a79a120803d41f9b4a13bcbbd6424c555c8b9ba6adb4eb79d1056fbf759008f9b741af"; - sha512.doc = "57934606287afaf1471f1207af5d0e97533a504aa83324069154e88e70f10779d2eb19ed2a9e177c5a4b2cce4203b576272fd2513d989d4ee276330305597034"; - sha512.source = "01f22e60260621a41e4efd6681b6fa226f7461f47348a79dbd75f214d606c6af2fa54d904792e653d1accc22298385d4cd658c204e653e4320e2932d742da28e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1b"; -}; -familytree = { - revision = 63739; - shortdesc = "Draw family trees"; - stripPrefix = 0; - sha512.run = "2f3cbff39c42d0d6414b372c165bbbf3a4dbafa28bf16ca47a89445066480317caedc9b371f9deb348ba986de2c14b71b1820aa731e74d72a4b0b39a413bf9a5"; - sha512.doc = "55f035425d11f070870cdd8ccd555447861823754a91b0a31f54403013a6427197b3ea893fa7e75e63577635a5896288f29ef052c9431aff3f1a9c2038ccdb1a"; - sha512.source = "b6f8e0cfa54b13a95b4ab39e8a249d50f5d09fd325ed8acde8b7fca736d6aa05432fe3a40554f3c289a678c1349db542c6f321e8a35f5bd486ce6b0675450911"; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "3.1"; -}; -fancybox = { - revision = 18304; - shortdesc = "Variants of \fbox and other games with boxes"; - stripPrefix = 0; - sha512.run = "752e26abee96dd2bbf77b30a6d98d48a1673632d5601d28bba5799e845a015357b96302f3f1d8977f0458003d3456df4694884a05ccb6124b76ca8f7fc84fcbf"; - sha512.doc = "2c3e0466198d392af57b2bda16f80589a9aa9db992272980a2e7ab9d7d1842d7e8f2980003b3b09648cfe0b9a1977562534ca54fae120bd7e4d950d25a83c0c2"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.4"; -}; -fancyhandout = { - revision = 46411; - shortdesc = "A LaTeX class for producing nice-looking handouts"; - stripPrefix = 0; - sha512.run = "0091703483cab573f9c9202603d31e310baafe932f929ad852c23d2ca97f21681637bb3ae34fd3d916f3e50f553b42ab1682b437f5a63b67c6dc4b7b7f202c80"; - sha512.doc = "be4c7b2caf2e85ec192f3aded87309ee2361fbb7e8fd1225f8f98f96446251aacd69e04e306473d06e14c8a8b686dd7a1c54cb0311bc4138fc9c34fa2d528ddf"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fancyhdr = { - revision = 64977; - shortdesc = "Extensive control of page headers and footers in LaTeX2e"; - stripPrefix = 0; - sha512.run = "51254df035199653a78cc06c6b62f3d9edf3fa8c78911c0c667d5043376c9d449ce5a412ffb4e9df2bbd7b7459be8bf43f5ff296015ab2b2e146673290211a3f"; - sha512.doc = "3c3a1f01fd799b8530634ea917523f6a789f7f1b4dddf16e269ebb78ddaf749fff6ca07984044128147fbf5e568837688906c36c409688150f61490565b1a06e"; - sha512.source = "57db137f52c1f93ac8cb70e234985f6290d326f073a30a2eff4806da756126238f36ee87d123dccc71d4f73968e1342006fae63a96604e2b1b858d798f42c287"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1"; -}; -fancyhdr-it = { - revision = 21912; - shortdesc = "Italian translation of fancyhdr documentation"; - stripPrefix = 0; - sha512.run = "6899f3c11ed4a8f7476fe954166ea7576446b670d0b22737766927fcd29eb24e6143ff3031b974856562a7ff55e68f208164729618a4d28d28b856919f2a666b"; - sha512.doc = "cda5ff0581545e4eca9787b27dddcdad226b5dc9a630773b13073e9248b7b30b985fa5f5fc1bc5380e5a0d96f06c666d4e7e73168afbc2fa4ed0dd202967dafa"; - license = [ "lppl13c" ]; -}; -fancylabel = { - revision = 46736; - shortdesc = "Complex labelling with LaTeX"; - stripPrefix = 0; - sha512.run = "950455301b0bf3ea3be0817a45c4e7453ba95c8afd397c1cf9ebf559f160e2828f414f0dca4647a80481f6e8daa0902e24692469023c21ba844afe1edda60b2f"; - sha512.doc = "3a05f2b388eb2a22a0b48b4761b3964c7b0c616eaf0c8adcbd4f375a3dd059b3d3b0831e754842bc084123fff7a12f59c87c5c5b362739c062f36a215dca2ca3"; - sha512.source = "5d0ae7fd455b679221c1877a5a8fe58da76d3db96de7bb6eaba24c50ef9a0bbc3252858276e4f0c6b81161f65e985911ab1608bca21418335e23189a2ddac425"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -fancynum = { - revision = 15878; - shortdesc = "Typeset numbers"; - stripPrefix = 0; - sha512.run = "93e1b88ca722b4169a572285443fad53b66ac59a3c0b6465aad54bd8d416046bfd79897db3d8f318f9d6e004c958b94bbcab16b1183d66197e1078840934689c"; - sha512.doc = "4be390bfd7562e0c94dc19fad3e0f34e52db393878290773517d6d7951e428cd3d0dccf5f47f6f03e5f0b380ebb386c8d89373e8c8e4cbd16463a9cdd2f2417f"; - sha512.source = "8f2f569fbb2a6ddaf371814e26b251286f8046e8a1e923f18e67b165c26c69cd09b46e39dae5fe00a427dbe4f95172680973b3eda7be16c60cbdfe6daf37710c"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.92"; -}; -fancypar = { - revision = 58895; - shortdesc = "Decoration of individual paragraphs"; - stripPrefix = 0; - sha512.run = "2f4e242eabb151834c6014a15d0ae012949e5e35f87bc32374e12f032bbb0fa21d6562b207ba855afaa28c36497cda3ca51eaefa579956f51283c84be8cefbba"; - sha512.doc = "1d972212b86e56eb692cbcca5d7d47b9454a6c0900803818c286b6cc071df93c5444d36eb29a8035e53c65fc9c30582686a6b9203af8e142e1cf1c31a6e4d58d"; - sha512.source = "3f88c040637b50d49981474b38d50cb5c3ba7baa5b6390b53f98e3315d1f17f0b0c48780f4c719583f3e452041ddaeb36fdfa367a616ce07a2758b11db152d39"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -fancyqr = { - revision = 64182; - shortdesc = "Fancy QR-Codes with TikZ"; - stripPrefix = 0; - sha512.run = "fe2a8078e8491384ca4cc25fd058433dde3d4d4fdbd5784ad67150169f1ff5eec85c6f2c2ae7efb6aff6e6fc731c18cc4a156d968872b69d58a36bc042825c2c"; - sha512.doc = "afd49422e17012b84a9ddf9ead15af3eb4f5b0e8291f76b9a672d4a3097d9f390753e0090cb67df94cbd5cc88c45ec2bd67b55594bae9ed4b945ad293e4f07df"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1"; -}; -fancyref = { - revision = 15878; - shortdesc = "A LaTeX package for fancy cross-referencing"; - stripPrefix = 0; - sha512.run = "8f4ea5f16bfdbd06bdbaad76da724a1aad82263f4db2c24cf5f2e9f2db9f2afd9d4004d629098f936e0c2d4dcfa5fba8bd278746b90542f87b547e20abb0bcba"; - sha512.doc = "2231f5fd45d45cb7b538852c95b90db35fde9b66629d17ec9288de6ecf5339359c17fdc8931019fd4acce61ec2927a0cd494cc7462cab0df13d7660106b6a142"; - sha512.source = "65de000487a8d317f0d05ff6d35574cf0bca521e4ab029637fd459b34f8640c53fed78bb9a54c21e4f5cc7c03dab221995810057350c46690c948a9e436c74f3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.9c"; -}; -fancyslides = { - revision = 36263; - shortdesc = "Custom presentation class built upon LaTeX Beamer"; - stripPrefix = 0; - sha512.run = "a0b9ef4ce804b78a60b4c3a25d5d70bb7ec17324d295cfaccb64d166bb1a704bbd2baa5cf6edfed7adff03f48bd3f3e7854e2fbfbbfdc7eb953d567a257a6e46"; - sha512.doc = "77e1839377ba440d4009f30ae6e58d843ec4b7a1bf7f0d3414700e32c9a01062cd6506cb589039299e7a4fd945f9ee5cd951a62fe9795f822089152ca19f3441"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -fancytabs = { - revision = 41549; - shortdesc = "Fancy page border tabs"; - stripPrefix = 0; - sha512.run = "0cd45edda0062f4a0fbc26a0516d7f5b35cb4f8dfd4072830da880369d71d8a4aea6a7d5dd95a0b479ec3128170108f114aa00ef4b0c8324c60ddd214568f5cf"; - sha512.doc = "0113da627d27fe88c4faa87e1564851344dac2efb75c78facc4da49a8937e2bda8e1f22997a2018b368001c24e721cbf623fc199d03673701a55c7ca45404770"; - sha512.source = "4a7c92f30414a595cc8c928b181565e3d50614fb4e5a128197bb4a8f90a50cbd9c75ca447bf37c41e9fe3c05d4422d6e3618da63edc51f240dc3e8d55c8d61dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -fancytooltips = { - revision = 68931; - shortdesc = "Include a wide range of material in PDF tooltips"; - stripPrefix = 0; - sha512.run = "b24e747d4ad811002cf742f6c74855a85b69745661de1cd1d4bcf41ec18ff62d34b39adf56393f79214a1cd4e54f72c54796b00d573e29414825b8c1a3cff317"; - sha512.doc = "4d567cc367e19727815efd49392ed0455dd47d9416d6c1a4cf846eb017b3b3cb0c8060fb0fdae0a93cd05a156422f5ece0ba15e54bf3fef9b2aa8ad6a7c4166b"; - sha512.source = "96485cec2bf6d02338699203cf0afb06a43156a66c7c55153bcb158256bc816550b2a0dd7a20cebc8bdffa84c1e40d1652b9a829746880203b49e80dd0297c47"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.8"; -}; -fancyvrb = { - revision = 69536; - shortdesc = "Sophisticated verbatim text"; - stripPrefix = 0; - sha512.run = "816a42630da356afeba3d7f0dcab924edee8a0d349412cb920a3ee21d9e1a57cc65e1655ba6759e7acd6508532f4ee059512a8997b964f923a59a57f548aabcd"; - sha512.doc = "4dd0ce373ac1fe5b44c6e9470790e372e240f91a8b7add6ed4e0237a22a68309bf8326607679817d5b4db975a286340c469457d8ff4664a7d7a74e65e92a4a5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.5c"; -}; -fandol = { - revision = 37889; - shortdesc = "Four basic fonts for Chinese typesetting"; - stripPrefix = 0; - sha512.run = "309b19d6bff9d3e009610d698a73ba191da70cabd57157f274dfca7583a9e9b31fc30ea52b2b2ab3386be7290a680f8eb47dc92381c3da8251b01d8c6a65c3ff"; - sha512.doc = "d74e78a1c863d3865ec4b21a4c762bf6e2c30a8656fe0ec830d1e56b9fcb48861f316ccf8d8641e7c674e25f1ac2292d10ff2127315275347096ad325828d7e5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.3"; -}; -fascicules = { - revision = 54080; - shortdesc = "Create mathematical manuals for schools"; - stripPrefix = 0; - sha512.run = "0d6318bea8660796a5ddeab06c416017ec2075633a391a536c7c3355de7b7e7f711e74f0e43e8b4fd39debfec797164f1961eb27776ca3b53eee729d0e27a479"; - sha512.doc = "ee9a54c4b2d746577e94abb6d458c473f88bff18e4f0f57bed5923a1ef08c6ca533183ad9e9eb1d1bcfae6aa5082d88a9c08fe7cf96c3ab9d71ab099ec64c1c0"; - sha512.source = "c5fec67754d84dc42dd6c62267c8a906a5717f53d9c063efc51b6cc45f3f616d270fa3af2658deac438739cb231bcf9b2c9497477c910f576ca943b80e03f3c9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -fast-diagram = { - revision = 29264; - shortdesc = "Easy generation of FAST diagrams"; - stripPrefix = 0; - sha512.run = "cedc8305ba0a7b1d22274d869629a1872a80a4001b443c8baa93e44198a5dd88e39c16c28bb5edf9fedf4f8f2f68c6964f009cbf6feb21c7c14974c4b598acbb"; - sha512.doc = "cd8e3edf882fc16b5757f59d16ed1a479e437eba36c783cd86cdfb9cb81f8b30e8b95a522ef6fe4b6e22b4b0bf6637e72bff734f7771034cfaf85df935e4a003"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -fbb = { - revision = 55728; - shortdesc = "A free Bembo-like font"; - stripPrefix = 0; - fontMaps = [ - "Map fbb.map" - ]; - sha512.run = "d63e140b60941f114b7aa7c82888c224715d6d173b88ca85aacdb3f7635aa928846e804e807830674d3bec0fc801435eb9e07406270c156d40e8c1994f50aa3c"; - sha512.doc = "c63214ea5a91ea6bab66a866a65c2ee43c64f49afbc3235e2f55cc0de89fb3a269bea45fb7d67ccbcda4bac3249b2f2ab14f780fde7cbd112231b16e58eac67c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.16"; -}; -fbithesis = { - revision = 21340; - shortdesc = "Computer Science thesis class for University of Dortmund"; - stripPrefix = 0; - sha512.run = "3e593e312ac8efbbdd294e6a00ec020678dcb12259ae778ddaed4d43a800aa19ba16f8eb15b5122ab22f44c5e23c77e4fe733c7772929ef55589d387985db694"; - sha512.doc = "92d0ae3382aa71260f6ed204f6bce1bcbac26985f41789e00c5d3186dcd448bd169b7641fa40d34cf87c556ca10573b0d8cd4235aaea8a0d1533dc40c71b3779"; - sha512.source = "a931b41de1feb5b0a78bc40c20bafebeb529a8a8b351344020032641ecf9673168328dc271228130ff22ea17190cf021b1dbe01635d7cf77984f69861c84c02d"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.2m"; -}; -fbox = { - revision = 69041; - shortdesc = "Extended \fbox macro from standard LaTeX"; - stripPrefix = 0; - sha512.run = "705a0f1f6d5009f0ac2fa1059f3029ef7bf7e8fdab6e85bddba822eb50dfcc049f94b7ff43afc97234d44f42505e1cd4e6caac1f22178949dcaea0a60e572281"; - sha512.doc = "19a61ddc64c3c5108ec05089e988a07f0e10d772bed810898bf82046922eab58a389c3816b15055b5c2e8a4d1392305a351802eaf3f1e72799c9c192eb8c1484"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07"; -}; -fbs = { - revision = 15878; - shortdesc = "BibTeX style for Frontiers in Bioscience"; - stripPrefix = 0; - sha512.run = "2d5bce7890fd8e087e035e60064bf134d8ac7ca2646f7b846df8fca7c594843c2778d0ad1752ffefed40283153194b5da97156e866bb4b8bd10b14c8ee3f2c4d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fc = { - revision = 32796; - shortdesc = "Fonts for African languages"; - stripPrefix = 0; - sha512.run = "12bb408f7ba4774d943aa954bd3d2558a329d383a65cd4780f6c5bdc39f51b943f01d87ad203aea3b02768dc0b9ab42f681175c18a1e1dd901255aae05156558"; - sha512.doc = "a7495a0d6bd394811ff22438a42afe3c5109633da7c606a732f4c5746cc4162fa1c86ac3774aa7754e9b07c499f3519423d4b6fb212ecae156b0b8e8f848d914"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.4"; -}; -fcavtex = { - revision = 38074; - shortdesc = "A thesis class for the FCAV/UNESP (Brazil)"; - stripPrefix = 0; - sha512.run = "db440d7310805a7f3d918996e577a07c5d8dff72e6d667f00c1ffe5d88e3bcb689e794837609d9a0760530e923f9a28d3e5c052cad4c38e23ae03454e0ec26c4"; - sha512.doc = "2060c70b6a926aae23c145f11c7c6e255f684f925bf5447ee98fdd6f6290d64fc5a92ccf8cbf85e0c6f0d6fee869a2d947e3df8726fffa4a5d2c87c217beef59"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -fcltxdoc = { - revision = 24500; - shortdesc = "Macros for use in the author's documentation"; - stripPrefix = 0; - sha512.run = "c14db194a73247122e589024824a53125ff10e15f8bec2475530aa41e78d74993f73474ff9b3899bc499c0cd8dd3e1ea034ea821d233c2a512f8c4d4d06d095c"; - sha512.doc = "4aa6aed9c5b4ddaa63eb2aa7e529da03dcfc57723a6cb40cbbfc729636e459f4df1e292bdcd20093595cc3ea154787fda41abb4f6f46db2a7331626f181f47d0"; - sha512.source = "6b16053cf7941063e4f08a249d1b4dcb61127eb0f22938353b17b959e7a9cb78d7953b81346f25a6e49f4a7c8bc602b3f820c3b9acd3b84215796b3ef1a63550"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -fcolumn = { - revision = 67729; - shortdesc = "Typesetting financial tables"; - stripPrefix = 0; - sha512.run = "0edaa6ad0c01a2cf9cc06c65fec3bc13b85be893d7fcf4a92b0c8760d1999e5c3b90975e44c586ef104b020eaa0a18cfc4476b3abb243c5f2862941864113bd2"; - sha512.doc = "9be3c50f25522c3fafb52432b74f6ab755afc02df04da84383ebb466bd9424c716082d3d6ff176d32c03c9097b6e39c6f54e70cd8218784492d2ebe37de0ebd8"; - sha512.source = "e122343109c0367d3f22bfc2b3775ae10545a01d18908cd227422060ba3c685e35beae26c6892479e03c3a4f774e2f9edfcfd60d6cba0880a4279e610de1050a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.2"; -}; -fdsymbol = { - revision = 61719; - shortdesc = "A maths symbol font"; - stripPrefix = 0; - fontMaps = [ - "Map fdsymbol.map" - ]; - sha512.run = "e8b2d08c3e64def77a688dc9d96c0b9da9eaa4c942e571578fa0a7e6dff9eb3910ecc66a7be9334ecd41fdc0023f89d8c98facc2d42cd0095c75d6e1b4da69ac"; - sha512.doc = "88efcb300a84b6c214fec37603ea23cb51043af78e1af8aa6e3ce157bab1c8e395e71991c7ea7854051f4706c6b702fe0d48edd76e919a4592e57320b1f77b98"; - sha512.source = "7be26193e05d57fba2a91d57b49cbadaf5594d9ea843b9d9f1ae15608cf7d45e40112aa286bee73ee16da976c7ca7bb7aef5627cf8f0023cded506a493426b31"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.8"; -}; -fduthesis = { - revision = 67231; - shortdesc = "LaTeX thesis template for Fudan University"; - stripPrefix = 0; - sha512.run = "e495c127884aecc1856b99705c262882b390f9e800dca59c2fa1200ae584a424ef4ce7752a9bb5dd7aad9a94c4a685af557163f2b07327e80f5b99153532d915"; - sha512.doc = "31a91fa609f3ef8631d6ed57526e932d5c110e4d84cc78862d1bf4c682f8de97c080a1e2d82e60842b731e33505b99dd2a85ae899705ebc45de44e526358703b"; - sha512.source = "d2cee0822ae532782bf30e1cd8b07b65a4c7ec3cc29901b10a25d81c4cbc224a9724a6ab2a1e7bcd8ebdb05f6936176d95783198f6bef20dbefd4e80ffbd7349"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9a"; -}; -featpost = { - revision = 35346; - shortdesc = "MetaPost macros for 3D"; - stripPrefix = 0; - sha512.run = "9d7c35499df5c8c8efe8ea51d88c4cd9ddc6bd5238ec527d842aaa9ce42c30bb1d73c667f5aca22f385d3725c7443f043a2b63cd337a7f6d5b5d5810ea34bf64"; - sha512.doc = "e4eefb43d63c6522c3080a76b4df3a369932bc9e2f868ed0143d62fd2365bb74e6891705b287d19b4ca4b2560b0573d6ff9a0e5cf2a3da2e4b21482cd6cdd0b9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.8.8"; -}; -fei = { - revision = 65352; - shortdesc = "Class for academic works at FEI University Center -- Brazil"; - stripPrefix = 0; - sha512.run = "2be4e4d83c5a02bfd43eed59741e07868e0e22489bb087f91de0681dbb04e999cff2bb9441b87937c3e2cfa60b7d4a1641dce4529a5aabc15df12d70e22e521a"; - sha512.doc = "adb30683e075801f74cd87bad431c880ffe410fdba738b197932af4f0efdb1c6530ddd66c6c860c1097b4f9e37601a1a9c744a1b573396c29898f130988174ea"; - sha512.source = "4241c9b50e339c450ca124285205d6fd7d2d2f73cab829c0248204012420f5ccd0615a1d1986cdec8efa15b2c8b8ed54ffd1d815f22ad0f9aa8e05b9ad485c07"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.10.4"; -}; -fenetrecas = { - revision = 68779; - shortdesc = "Commands for CAS-like windows (Xcas or Geogebra) in TikZ"; - stripPrefix = 0; - sha512.run = "6337deecbd49a9ef9d19ab31cdd705cb49bb127ff451d9f3790a3ef8fa95ee7b65f52d49d22b1698d039fe268fcc178c07f30dd66ba7aaff69e883594e6956c1"; - sha512.doc = "8fda8eeac400f810e3839f5197c53b808594c2536b1d4a5c7c96c788b8faec40a4efe403b065519d20f09cc1d14fe80e9e060d2b8e4a396cc9c1ad34dd16fc42"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.4"; -}; -fenixpar = { - revision = 24730; - shortdesc = "One-shot changes to token registers such as \everypar"; - stripPrefix = 0; - sha512.run = "1b09294b430bb9ab6a4eae11549500b224514e55bb99329a4ee3d9d72ab906128063537302f672a772c02ff4372d46649656a88c4a303a9301976fc7a804387e"; - sha512.doc = "6ee02d615438e99df82f939a8104097e43802b00af2a0e7be56f329061722cfc7df0edf84c82ac73754d63a703533bd6d5b88b6e648bedbc47be712ff86ec5c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.92"; -}; -fetamont = { - revision = 43812; - shortdesc = "Extended version of Knuth's logo typeface"; - stripPrefix = 0; - fontMaps = [ - "Map fetamont.map" - ]; - sha512.run = "20c5c83119d70a94e66aeec0bbb9a0494525deaf9addb9b91d8d5595397ab5a1195eb9d72056a5fd1c3ca490aef66b43558f5c5b86688e7d164360a697c331a2"; - sha512.doc = "16cfb520cf8b3030d546e1c7f7cd41772fc9d16ea55db6920a50945a7aa3034050d873d3d5da05c108ee303dc1c77217c8a1f014c2e9beaf36d932e33aefeb93"; - sha512.source = "de4a25f0a86f29d10fd1cf799ac6c8efc58633a7ba0c48bb33716c46e6b0e1c9d5be6ee4e8e4955739ddb324270e44d6fa658c360d03123c18cc275ba6abff06"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fetchcls = { - revision = 45245; - shortdesc = "Fetch the current class name"; - stripPrefix = 0; - sha512.run = "6cd8e2016f7ff344aa06587fbfeb4e498d1b2e76d9a6ff64f167dad71c4ce6ae867d791660f50e80b6f2e59a9f2fff4c4c9b7c1cdf84cdbbec5113081b24a25a"; - sha512.doc = "ebf9aa0150b06a0b4674e7be076fa5ae4b2ba4542aa28e1b9d4320ea0152a5cc9cbbf926d713f877e74ea948d6132fc36898647e4790c67aab651502c4e5d57f"; - sha512.source = "067385746ed2cdba4501038cbc4565bef431f2e35e9069fe883c0de8669cbf6f59d8233ff2f561e8590fe8b32a7613a195104f89774bdae4ddd63d65deb3123a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -feupphdteses = { - revision = 30962; - shortdesc = "Typeset Engineering PhD theses at the University of Porto"; - stripPrefix = 0; - sha512.run = "b4d4285b33f314720cd07eea903bb2fc6092f96033f75d4b06cf315fd24d1a34722aa73db4cb6410a847e1d23a131ae329f8ebe75fca15dcaffb99097768f55e"; - sha512.doc = "d87c0a7722f62a599bcc63f7ecfea190c64d82a4a4a1ba21d18c69866f80ec77a527a82cb94b0d081002073f5faab95119c6902e8f8f2c10d815ca2d206b1d4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -fewerfloatpages = { - revision = 58058; - shortdesc = "Reduce the number of unnecessary float pages"; - stripPrefix = 0; - sha512.run = "4f5637bf431b54590e8c2a8ec27e3da3d801205b8cba053c8c1294ba0882bf8aef17a0e291c149799cfc3530a415202014570460a6e2e8986ef71bd2cc05567c"; - sha512.doc = "a18d15933e6efbbe3428f366bcc5ba5ec0b254dcf77f7ac2e72c19bba00e78b44c98df34f57468902101f547fe9e88b2033430a02098805c6f0072e68ac82513"; - sha512.source = "e98684d4cb79477c66e4a831c8571729b3da021bf9945bdecfe8a9ff57fb1e2948c42c3481adea0fb702ce4d56ac533b14f76e78c182500431af7f3671491d7c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0b"; -}; -feyn = { - revision = 63945; - shortdesc = "A font for in-text Feynman diagrams"; - stripPrefix = 0; - sha512.run = "30e3ca5e633d040fe2eaa88463a8c9fa6004b86c4ae264af9b8a9a3bf55f71f7e1eb21e656f2fa194ebc751648f411a094fe40fc6a2cade1fc31aa586da1317c"; - sha512.doc = "b420c19b69caf39cfa0e54bcfc90f291d9ddbed21d771669bf82a0fb04b4099fd494d2287144655366af7d0ea9594a74d64867a31754278ab1b97ffa507dfc5c"; - sha512.source = "578f093c588cd577ff696dd052ba969769f418dffa3b2450b71efeefd885105efcdc7be4ef9693bedc911940d2707eb084857f5db9197e74040211a9952d2209"; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "0.4.3"; -}; -feynmf = { - revision = 17259; - shortdesc = "Macros and fonts for creating Feynman (and other) diagrams"; - stripPrefix = 0; - sha512.run = "d4eb87e3f086f2d39c87eba057fc490ce5d39e9c5ae39aa1c04ee8c3be9c4a188ef123f860fe74d31e0e9e9182909c39df3434ddcc618632723f00627f66397f"; - sha512.doc = "933edaceff112f7442f7c662fda43f343b0e7e41f65aae4f1a45bfd2de18c1e4bda505a235eebc4daf2451846dab376449242217ec803f2932a4a1584038f4ee"; - sha512.source = "bdc4dbbc449c911c0d516b10da18c1d541645ec57fd95c163d571a039c70ad46e6111717ffc86c802123c272509c85ce1d71d90f49578b2e228a9229f4d40f02"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.08"; -}; -feynmp-auto = { - revision = 30223; - shortdesc = "Automatic processing of feynmp graphics"; - stripPrefix = 0; - sha512.run = "64ca275292b12847d823322ced9dbad615a34089c8cbe43262e676b34db205ed56509f641e18e949523bd252ed1ea73eeb5f019e2cd052274c02b1df67860a25"; - sha512.doc = "3dd88f5af739013ace4fd8eea70ce247b997e887c0f7067040ff9bf4e0300126aff53845ecefafa7bb52dfc4d05d181a1e96847e6a534c718c5a7447231539ba"; - sha512.source = "ea29f32f9f1c628d63b81c958f7c8064e884ba1764953dd62fbe5d90506547846f52fe378f813a09090ef6991c9b7d2905095b04fdc0e26aea4c8cbcb5e2b2b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ffcode = { - revision = 69706; - shortdesc = "Fixed-font code blocks formatted nicely"; - stripPrefix = 0; - deps = [ - "environ" - "microtype" - "minted" - "pgf" - "tcolorbox" - "xkeyval" - ]; - sha512.run = "0047a3b5ae171d3636a80ae583e2413b805546baa662862894dbe6dba92f3e4c20fa1b55d1862dfe968f0b738f2067a4aab294278b1003c864b5c6a8702590eb"; - sha512.doc = "72f09440fd91ecf532ada964010fcd364ce30abb200da2285aec45a2bc1d11b97b7b557f19473e26cc4d690e96a9151f3cd8129aaeb28eaa3d3f26ed5d230333"; - sha512.source = "eaad3fcdcfbceeda1c991c5961094cd470b384e4c749ebec657c5b575190b35eb28ea7ee88aa113b829f1fffc225a61f38d5c61e28bdbefc133c55565ef03daf"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.9.2"; -}; -ffslides = { - revision = 38895; - shortdesc = "Freeform slides based on the article class"; - stripPrefix = 0; - sha512.run = "393903c180f2fd554178c909bf9a4c060707d8f2fac44022b4811526c7b505a0354afed77f8ae0fa3fbcebed3918a6b46f9e81206be78d7ed6b1c959cd3473a2"; - sha512.doc = "4a8e176b7bce3d54464a30497e41d5a899905a0029199710aedca7234612092f0b2e265a465084536434c9b8c7f45eec3f2ac3df5eef66cecfdae5cdae36c798"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fge = { - revision = 68353; - shortdesc = "A font for Frege's Grundgesetze der Arithmetik"; - stripPrefix = 0; - fontMaps = [ - "Map fge.map" - ]; - sha512.run = "0f97109ffa1daa97d4ad496c2e948a123a9fb04393e668c9c3b1a14131f6ed7a21ac9056c6f3766e3ab2d3a2caa2baeb67c4b59d6c6489299090976d697e10f8"; - sha512.doc = "8505aadb706e79e6e1d0faec203de577cf76acef5360ed7c29febc2239d2719a717a59e9d4f8fbf5d2eefe67be1ec3cc1ebbf9be47930750582df29bef2fa9fe"; - sha512.source = "c1d966e094ce4a61c6250717731a20c3db0a0e438b5d8acf1b5332cd05a2f6dfde1d0e99bd02ef5ee725c1242da9ef183f680a03bb7f10d7ed50d0ce4c2bb1ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.25"; -}; -fgruler = { - revision = 63721; - shortdesc = "Draw rulers on the foreground or in the text"; - stripPrefix = 0; - sha512.run = "d30678e5f84074c9844845bcb527333a7040b9f9e787f8aad92103eaf880e89bb1747946cd91fb9b8229c9a8fcc8e2ff81c3dc69804d37de3be1b1f6a4cc5a00"; - sha512.doc = "74747c385452b4d996f70413a88920d59b4ac8f4f61c92516e4e60f36cce68c8ce9bd72f621aa52698679aa10542bb2118088058c489230e7c2081b17d8f987f"; - sha512.source = "3d7017aac6c2d07cd73166b1aab65452b11a97a7e34516c75c1a8e5123a3587eb90b0455846b82084a6e997340624c1a1053fa079bfb202a558ff4dc08398cf4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -fifinddo-info = { - revision = 29349; - shortdesc = "German HTML beamer presentation on nicetext and morehype"; - stripPrefix = 0; - sha512.run = "86767390bc9946b8f8d47dae0334d7cfc21ac2b064b00ab70732f7ca3f50d875a35dbb0e477ef1c014452fc14c177a1c5c6b96ee334c99bbc2bb49eee9ffe6b9"; - sha512.doc = "e6635f5cc989bfa0da9b2b0cbd5c3719aa793552f4c1adbc1ee218a78b6b116d2c2046b04254e3294834e63901ece9489b8c86421afd3c58aeb8615b5859ee92"; - sha512.source = "f01f2453c206cc7fefaafd1269c77b43bf1f24a8fef034ebdc40ac2be5c4ef553d2096f4168e7933e63aa816b1397c74fe21d725f0a6bc3d8187c751145a44a7"; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -fifo-stack = { - revision = 33288; - shortdesc = "FIFO and stack implementation for package writers"; - stripPrefix = 0; - sha512.run = "4121e3cefed7ffe80bfaa8b054ba0825ab0fc2b4073a845386de4db3650b4d68c48a4f7378ffcfc4a221b21ad30ac6e199920e7d8c44f503b35c14cf4c001462"; - sha512.doc = "220d9b2796c20251ae568d1dc5a7eee1fad5cf6aff26a2b94c1a2c9dd6d853dfc9c25377ec8c3d6edfc43f5b4cf645c459754c5d6a642506fa7779cf79f1a901"; - sha512.source = "3ab0e67acb7895c527be3cee1ab0fe7ba03397410f9970dc7c286418ae6e785d8051b82add959ff7d0596d6983ae6514f70c631672fce5c66bdb6542a3b7d777"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -fig4latex = { - revision = 26313; - shortdesc = "Management of figures for large LaTeX documents"; - sha512.run = "3f01676ea85d64e09376da4481794e1537b9e19c0ff0bac77c022b10b5d49c39d789de6e4f0356b4ea4b23326f9ef320f4b08035bc04a827951cbf44ed7c6228"; - sha512.doc = "c05d3c08b916785b765694e68b8f7cd96c3c359325e8f84166102beb4caeada7490ed24ad0b4f52a66cb822000f8b4d75d1013b93055898e88e82d7f23d5095a"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.2"; -}; -fig4latex.binfiles = [ - "fig4latex" -]; -figbas = { - revision = 28943; - shortdesc = "Mini-fonts for figured-bass notation in music"; - stripPrefix = 0; - sha512.run = "2fdc1114b03123c35eccd6b617310c714f37015620551538458a1a49b1e9a583aa55b3cb661f204bb9168cee0a7325b066d64315a15a94daa01e43d05bbb2561"; - sha512.doc = "7dc8140b3b545d2683c471e2e2907a58e2c995f23acea26d763da8989c3288940dcc154ffc0f81ea99169ce574bf90543e94f86bf8217996b7c83474a300806e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.3"; -}; -figbib = { - revision = 19388; - shortdesc = "Organize figure databases with BibTeX"; - stripPrefix = 0; - sha512.run = "1632b372b06d8ef3cc363d6b05e70b8a493f357fb947ca1b8fbb7752d7ffc4ec09904e747a3e9b91b61e5d094c96eee954d533d1b286b372aa57244ec2abc63d"; - sha512.doc = "ba42f6cc811fc9e00c41bb6fb410a57a2efe759a0fd0621cd83801963d0ed138dc66a1a245a4b7256cb056f3fe71e883a8fa84d19dda785ba24825e85edfa044"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -figchild = { - revision = 62945; - shortdesc = "Pictures for creating children's activities"; - stripPrefix = 0; - sha512.run = "74775cfe7d7ef14acdb22bc6c60aa4db512183441828025c8e68f30e9e95c4e5a1492c99a31f459035956a0c50de054bbdb664f9cc68b73879d96a4ead5f2dd9"; - sha512.doc = "68cc451292f68cb433ff567252837c438938a8d16c4e48987abdd76bcafc9dca9482ad29c540ec24cfdd66f55da801b9c3e052615e805de055c944df82f3971c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.1"; -}; -figflow = { - revision = 21462; - shortdesc = "Flow text around a figure"; - stripPrefix = 0; - sha512.run = "f75517b5c43119d33edf46fbe124523cacf0d7d837cdf66af702ba563392a96323b266bece1ec9e7f87df34d684a87ab38f9ddafab6c3d069dca8ee22c3bf25a"; - sha512.doc = "c972bfb356731aa119e8cdf1292a3bcbfc08a74453feb7e509a5cc519f62ae6c7e6b0c087973549b9d860b97ff1a3bae9cfd1166c4ac6a74553ca6c0f463694d"; - hasRunfiles = true; - license = [ "free" ]; -}; -figput = { - revision = 63957; - shortdesc = "Create interactive figures in LaTeX"; - stripPrefix = 0; - sha512.run = "4ea2768b272f9be270f1ce3edf02cd73b8d8c792d8b92c20a8d38b05649e43e8441d6e439f0e1be8ca906c5b9a47db1d6a48ff7ee136f53dc4ae09cc6172d46a"; - sha512.doc = "54c8428c9b0bd267389a9bf25b005b31365fc9451d0e3ca4632e52a07af9c02a24aa1c7c9b5f19eac196f4dbfad9db91647cfef82c301496ec4be58d9e2360cd"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.90"; -}; -figsize = { - revision = 18784; - shortdesc = "Auto-size graphics"; - stripPrefix = 0; - sha512.run = "3c7523b05d04363c57c1ba75a39d9698b1648ab6a858be15112b6f47c052742033e3ed16752a9b9ef3854ab93f547f0841c32f1cc68fb9d4538fc02a7bb19ad6"; - sha512.doc = "598f631423a97e189c21e117a7da23c95bbf4dc3b616e62fc6738674848fc46be4d7dd43832ff58ef834c0fdbe35d8923ba9729d5c48f90b0431a22bf86f79d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -filecontents = { - revision = 66740; - shortdesc = "Create an external file from within a LaTeX document"; - stripPrefix = 0; - sha512.run = "bc51c03ea84130753cf4c6a6e6efe39403bc48a47b4c40f177d3ae17808c63a346a2b361ef61b0e0421094b6b64e20a972c6bcad305228ce0991818a62344296"; - sha512.doc = "15f34d023a498c733810ddb4b04c1672507d97d731a579246fcfc3f29afcb47da73429807c4fff018708ddbac76851ab8357dc274cb6c2506cd37d075d2dbb44"; - sha512.source = "8b93ff5a1cce54150c67bc607e67a40788dd0af08bd55163380756ce6979f3862b4cf1d70888b7b4ddd7accf078a387bf8540cb97af491b4d67bce31600fb8f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5a"; -}; -filecontentsdef = { - revision = 52208; - shortdesc = "filecontents + macro + verbatim"; - stripPrefix = 0; - sha512.run = "63b399a5e21d2d4946c195f380a0d5f269f8c978c0b504cda80c0796604dfcb66df38ca79d31078efa03c7475967bc0ebfb856e933bce6b21d12836368780e2a"; - sha512.doc = "26e7ca9971a0683325b62e2feeeb0db6ecdd3a732f07ae93515f2300ed58e97a44ff8a7504d194119c1e27d1d9bc4f367f29c17458c0e7f0b6a0a61fe18ea0ca"; - sha512.source = "f6e822a28e074fece05b911f0bf9d262e2b925c2a73559764e1eb5131d9081b48ace0ead5f46bb250bf648eac204eb1d5d7b362be508f58b40a50f70577de534"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -filedate = { - revision = 29529; - shortdesc = "Access and compare info and modification dates"; - stripPrefix = 0; - sha512.run = "5e2789c065459e82f073599c4d5f04c626fedae7e02c8dc58d6595d81ec8281c9c362592eee9547369b7a8e9cd2aed1ec526d69a8ae22f35771d5494e3109032"; - sha512.doc = "cfc2eb596e6b6d17015ab2ca061da39e673376d6f4c526dc045c8d2514fa8372f1a853a97425b4bcb9eb0bdc522c6b482a9bc3da9f56f8a4e0c22e4970a40575"; - sha512.source = "cc2a12c8f3b9e7391d6b57eec6c0f486137524022d89d3d3e7c037ab468a4858b253e8baa1cc8eeb731510c5e221b7cbe9a9f22a972023b3d1fe2f975e4751dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -filehook = { - revision = 64822; - shortdesc = "Hooks for input files"; - stripPrefix = 0; - sha512.run = "caa1f239fc8300f2925e94e860df3ac76637e337d57f599446c6b5f059fbba026fa9e440f4272b7e37ca9921731cddcbdd403c16e42b9c49e302452dc940fa27"; - sha512.doc = "7c86e322cbdade28c03b65580c992adff2fa112ae65b28c1485419c457a7f930614337eee70bb6cc2e9c386dab866e4e657c0b8d394c975c6af3a8b2fe651cec"; - sha512.source = "c9683da993eb365559e7d47e6c81235065e9ac74c9c334e9e1d9c040c9cde0ae135301b83e49c27307a6f3bc529c24d8f597dbdf377256d03c8d149e69c03bfd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8b"; -}; -fileinfo = { - revision = 28421; - shortdesc = "Enhanced display of LaTeX File Information"; - stripPrefix = 0; - sha512.run = "2e5914e32af48db731aa83c3e51e6d9128dc969891bce21e1e2f859cab79130c9f5caa0f591765fa8a9b48c38eed8d19305f4be598430ab1e2cb3276b6faf191"; - sha512.doc = "03b4ecbd21ec39d98949f2e8ece7e48bd539a75051350d1a9ea19e3d32ecd620c0f1a5dc454e626237534114d0430e2ad7c175e9c1b27ba15c78a35aeca3e3b9"; - sha512.source = "6875ecef667da4476def344901db38f38e988d2345c2afff42fb812c01c356df8bf1dd3c8c9a563a883fcb9e22e85b8813bbf50905d711004a439767ac0f7227"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.81a"; -}; -filemod = { - revision = 64967; - shortdesc = "Provide file modification times, and compare them"; - stripPrefix = 0; - sha512.run = "e346e795df32a3b0cec0232da9c2b190bede65d905035a758b949c9cf01219e0880ec2ce2e83201f8dd9dcc77a98b29df2b463edf8c44cb1c220a7efe7c9f24a"; - sha512.doc = "3e8c5a26b5c2fc8a6f713f006d091c0be719bde7bbe237e49d2496032289d67624fbad1319db421a0471a60aa8c11c97bbc60127053904725e53e75a2ae6fd7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -finbib = { - revision = 15878; - shortdesc = "A Finnish version of plain.bst"; - stripPrefix = 0; - sha512.run = "14f08cdc92a2d6d511c112c480efb0112d45c199023e89c9314740c2b9b83598bc9f8917ce616bb2493671f408f946ada3de4535136eff48b7bbf72e7436f912"; - hasRunfiles = true; - license = [ "free" ]; -}; -findhyph = { - revision = 47444; - shortdesc = "Find hyphenated words in a document"; - sha512.run = "aea6305dc0d9b31367638078a7958933468e761ef4cf47a1c44d9fd5ab2e25f7af22273c4631946a90edc9b51947c2e56b3d4b74c8c59f0a79250c2edf5bc137"; - sha512.doc = "97f3fa22fe490d21bc9e5ce5ea0b23ff25ab9afd9c5dbf6e8d78b24fd306ddc132c5ba7ca7ea7e3d7aaeb48993c7968b0c02ae0b765416a939d84b53171f4179"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "3.4"; -}; -findhyph.binfiles = [ - "findhyph" -]; -fink = { - revision = 24329; - shortdesc = "The LaTeX2e File Name Keeper"; - stripPrefix = 0; - sha512.run = "837a470970c8376e1d699b28954cf2ac6ed849c2f96a4c17ced56ebf142297c36d3f856f9cbf4db920ae33f491738f7891433c5c6627565a48fb5391b663634f"; - sha512.doc = "7b1d9d1c62766082030d7632bd91c65328d1bf3e8bb6abe4ed64ec5188d9f38d3b2a99695f32c2bf04e2fcd634819926ba923eeea915186eb9fe96bcb43954ca"; - sha512.source = "e37a35a9c292ad3f213c560505ca6c446eda397771c18bb1fa2b64df70cd667b58ca03b6f821aa0a9d6bedb3910b66c411349f70dfe3eb5ca2f1fbdb9f925a35"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2.1"; -}; -finstrut = { - revision = 21719; - shortdesc = "Adjust behaviour of the ends of footnotes"; - stripPrefix = 0; - sha512.run = "8b360a3426056b61e58e577cc68ba9e2f55b63a3b4a0a2eb76ebee53e9ff327da9235e9da5cbb85e3cf369cd48354c00a79cd46110ba4adb4b64192b7ff7b603"; - sha512.doc = "8cc27d82f7125b5ee82585f97385924737406e45d9739ec9cd57b76736e902a588c7258628bdcc4841e3e23f359a4d8ad22a31ed6f821f1d1c59798f4e8f3d56"; - sha512.source = "c06f1b10815444ed51b13d83258e1f3d246da65a581a0946e7a05a9c8432e78ae395efe18ff6c0a84db8fdf6016ab8dbcc6f3242e72936f46e522d1074ff1b87"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -fira = { - revision = 64422; - shortdesc = "Fira fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map fira.map" - ]; - sha512.run = "5faf4cdf1690f9d6c690cddbef813c8973517309144495016ef5d61ff5e5df9ce73f70b262d1c36ba72fa92f93c7a1d550b96acc4965d7ab88efce21ee20d682"; - sha512.doc = "b97fa7ebaefc3a057eae0a3fd14f43fad1a9789af0b2c43ca8a0c6969610b1786e24508b1367002527841a8095486d6eea180c59d95b1df904df846c943b88f2"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "4.3"; -}; -firamath = { - revision = 56672; - shortdesc = "Fira sans serif font with Unicode math support"; - stripPrefix = 0; - sha512.run = "c18ab8b2e12b947144528b196c9b1de7f1930f3a38338bd114bb61205d7f910fbf1e3b20ce48ad8228fc24b14d734ae68c3c8542218a058120a62783b007461c"; - sha512.doc = "4e434c757b4ad4c82397224ab275db9a0783994dd9e3acffaecf19f73b3bfb86dc6f70c2833b2f203ec354aa275384d1e97f48deea9a765b3d972eede02a35f1"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.3.4"; -}; -firamath-otf = { - revision = 68233; - shortdesc = "Use OpenType math font Fira Math"; - stripPrefix = 0; - deps = [ - "firamath" - ]; - sha512.run = "6c713fe81dd006707b987930e8c8835c21122607d9488ce997bd9b76cbe85bb91fe7017f4282fa91c11ab41827ce70de62d0baccc78a543d56b0d873ad153c12"; - sha512.doc = "39c2eab4cf1dc638194d81effa1b442b87e96b1ebb2efc72d0ce26041bb04fc3cee8f44b939f904b07cc0332708d8ae8cd7a1f41087d363888306c0f0583274d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03b"; -}; -first-latex-doc = { - revision = 15878; - shortdesc = "A document for absolute LaTeX beginners"; - stripPrefix = 0; - sha512.run = "39641224689a1d45d59b5643e5037599d03df3ecbe95090d565778758d334bddf832e867a25c1688adbee1f99eea23b3ed21fd6729fb3d4e50f1503537c9a400"; - sha512.doc = "497080fdad8195bdc43bef476f9e678b49d83829f10a6653c9443d327cb0da8505623e941cd3038349b6307ee37a65ce1a3d3eb48e4c6262f9d636d10d96e17b"; - license = [ "publicDomain" ]; -}; -firstaid = { - revision = 70324; - shortdesc = "First aid for external LaTeX files and packages that need updating"; - stripPrefix = 0; - sha512.run = "610aa5b4c12511436b7b26145f24c294a3c98e75a9b4211198c144e8c0cd58142853d0d581ea0bd620a4f01f48bcc186c40db1d0a27ecc559bc5ba012508bf59"; - sha512.doc = "36a0180f0ea5410157c03fa26a7c185229f5a6fefe517659f6cd1d5cce7425ee18c58909f985f500987bdf1d9993bb0d24d58dbac21121cd0bfedc384b3de57d"; - sha512.source = "374f4edef549e60798f9a44ba2e795f2b4145acf7164fab9ea170baf294670878499ab9770dd3c0a1d1df49396db17b827076b3e5049437e0d8d7ea1e7686f64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1c"; -}; -fistrum = { - revision = 66461; - shortdesc = "Access to 150 paragraphs of Lorem Fistrum very dummy text"; - stripPrefix = 0; - sha512.run = "7e0a92affb0fbe23b9d08e525f6e2878e3bfc10133fc95b41bbdeebca5c02c988b2c4033e50969212b5889dda4f9e2f043dd65688ea33d81b5bd138d49af5777"; - sha512.doc = "15b50530a68fbb2b330aa972640fd85207dedc0b0e640f830940cd712a16fb001e60b59c22ff81890ed810a7aba9f1e150deb3f91ad1fc4bf52680d9d1735342"; - sha512.source = "88fcdc104594951933fee790a45efde2cfe3665673b2589bd4f2972f15e8dc1f91b85c5e04dde3866688fc2b76d2692caa2f4dfd3353ca9416002126be408cda"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -fitbox = { - revision = 50088; - shortdesc = "Fit graphics on a page"; - stripPrefix = 0; - sha512.run = "5244567062493fcb5300048be6786f1ac48c72c363220b894a2695e78646f461584e189f227d04f55e9127a66ab966dc04cbd762fd08277774fe1c0fcc7d3c96"; - sha512.doc = "71d77dd1879a2b9b20f9c4934af8bd696de567b5c0187e7a5bccc9e225fec5793bff6bc670ce0bbe1065cb67de73f518942ae48aa0a27e46c2aa47dcad6856e8"; - sha512.source = "406ae04d838114e9cb7205c9e704b95e8ea8c4747827bb82fbc53891ca552042e5742f7e524361f2a797a77d8b7286dca3512ce7099ec8fa23101668d4bad5b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -fitch = { - revision = 69160; - shortdesc = "LaTeX macros for Fitch-style natural deduction"; - stripPrefix = 0; - sha512.run = "ec44706fa5f5fc258666e343569f695db0d26f6628aac1ac6eaae12377f23138c49ce29d03dc5b08cb1f5427cb5ad612cbbf9aad5a9270f4b31f43679023e73a"; - sha512.doc = "3a32fa5657e0042588c82ffd7d32f11dfc8e9d29ba268700092d26d32d24afdb3baa1f02b8ca4e248a19413aba0421d991809cac5db0d5d38aba8389b43709b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -fithesis = { - revision = 70536; - shortdesc = "Thesis class and template for Masaryk University (Brno, Czech Republic)"; - stripPrefix = 0; - sha512.run = "09bbae20efbe651a7cc5ec01c0a3f2b97aec3af24efaf21935992c7ee63841916cb29ea81ce7a916bb6ac4cee74cbbd3b02629b9c8c7467397dfb871e863fe54"; - sha512.doc = "4a476ca775b7571d4bf88e20e76f0acd8d36778a516ce5c778682b92f0de92eaafcd671d8ee756b9ce18f136855752963e994eb8f6e37611517b68abc9a6737f"; - sha512.source = "51b654e9880727283aaa5ea262dadaaf95f801980bfa2bf43c495e9315e60684566bf6972934ee95863c31e9e827462200527e1df26251cdb62caf0e660f2fc8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.1"; -}; -fix2col = { - revision = 38770; - shortdesc = "Fix miscellaneous two column mode features"; - stripPrefix = 0; - sha512.run = "b3f096a64fcea6c6b2864d4e8a86733afb852f3decae4704e6c275c41e1295622f1eb1c8db0e0d33a29e369a9b757495477c9ebcf82ae0003c4316967c03f0dc"; - sha512.doc = "302ffac957bc37305fc5b6f458c4b7dcb06b65408131bcf64c0132638a110813eb6c748270ead340f3d864b927aa7bbfe0a16c3722cbd8334b1d8ba8ca72e7d3"; - sha512.source = "af17350815d50b2f880cfdc9cdefe457e541041e311e886a87fe45e53e7e48ed12ad83c27b6cddb0b3f719469d6c0e379a68860d13892879cb89678f51607e97"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -fixcmex = { - revision = 51825; - shortdesc = "Fully scalable version of Computer Modern Math Extension font"; - stripPrefix = 0; - sha512.run = "fc3a1ba6c5516378182373b89b71ddaf22e713c0be959e8d5afa1cd57c50f363e68669049750f286142499961c56f6bacd60c63b0211d5e6ba01d7f25d58f759"; - sha512.doc = "e6f65b38a4baddf6c1840b0bb18464b6c94f97163672b67a87c693af19030bc3ab2db7607646d73f8f684e08258906da2380e7b1637ba85f80c49cf7d5045bc5"; - sha512.source = "2967a93b0d041ff868b4f894a2b9e1d59d445e601af982d576a8ddcaacb00d4688eccdfd56d51beffd19c90903fb15fbcfdb0cba08983e78636757daba176cc5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -fixdif = { - revision = 66606; - shortdesc = "Macros for typesetting differential operators"; - stripPrefix = 0; - sha512.run = "655c9733d727189d7b2aaef2b629e67cf5c7401ec2a8ffd179fb450cdf1746a40571e0b8be56f4202e31d752c35c7255fe01cf0b36917c582f24415e8e842273"; - sha512.doc = "e17648e54c68ebea15be76a8cf1406fd42858bca77be938efeedd72bcc8fe92ff016427ef815dcb590b8f900ce0efd87d9bb96f37afc8d79bcafcdb1e5d23bca"; - sha512.source = "4c96dd12535cbc852d4d24623295d1d7236f8f4773e5dece09ffa99f7fe8bf24efbba89dedfa069e32af53b1d88afa109a5e1075aa368ed6331fb462c57d80f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -fixfoot = { - revision = 17131; - shortdesc = "Multiple use of the same footnote text"; - stripPrefix = 0; - sha512.run = "52c25b4d5bb9e34fe3f8d2b122e68352ad572ff9ecf1011f3e9fbd67319d0781a48ca08ab03ad3201f1d1d2bd6d4e35fa3818e695a741a8ab440ce81f7724039"; - sha512.doc = "bfe0e39165be8f9a56e2cbd4b91c0b7b7448d0b9d8a4a0b62d6c0d45e542a9964af3d34233ec777b69f0666a0945513a8475629f0b084f72a0b349682e8ad6f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -fixjfm = { - revision = 63967; - shortdesc = "Fix JFM (for *pTeX)"; - stripPrefix = 0; - sha512.run = "afa050087607d8eb5f36923d6ec72daff7f1bab0154edd08900486fee152068ebbfe97d87ae29cca7d8f4048e0c6091933d0b71d4a0266950828881b55aa6b59"; - sha512.doc = "d1c39e4d0dcc1a8eb5510e3306d68f0bae6067d358bfb458127ff8f5d5223576f270cf628bf8ca2c3e8322d6cf1b52b936db0c2a431e4258591057a7f50513d9"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "0.8"; -}; -fixlatvian = { - revision = 21631; - shortdesc = "Improve Latvian language support in XeLaTeX"; - stripPrefix = 0; - sha512.run = "48d39745498c187d23c62191d7da6341ecc13d6c43ac97deebf453046e78a26d221b5c7b7ed22aa8909476a754e877de26c20391bccb5cddb2db1fa7b238d643"; - sha512.doc = "07dc4fa87b8564c3ff3144936ae4374e0bc7cf37a5a3e4b5d0724681859a41d30d714e96742253bb9a269116dd32d2ab0c1e5e1965242e88ea12fdcd224ace31"; - sha512.source = "04903bf5ba774034c0b3dbec7c7d37ca5a802b3d104670d259667f8a965da26e7e954ce9272e14b6bab058a7e6a4b8ad42b710e22f85f2d0320a7827b2c7e173"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1a"; -}; -fixltxhyph = { - revision = 25832; - shortdesc = "Allow hyphenation of partially-emphasised substrings"; - stripPrefix = 0; - sha512.run = "df41497da718b157073b6ad2a4b9cea3f9ee0a0824698f47d4441b76261efb21271f1605f69b1c0de8a99e3e636587a25b4efdb4d578683ef0c89d7f849d2c8e"; - sha512.doc = "37d6b9903a56d33577c8aaabd40de592bd78dc6b2f5a2c82457f6d5b499d1d6f9a9bdaff29bb9f9511365d32e160f92c85c6c0d93ed065fdd1688aaeae9ab246"; - sha512.source = "321e52dbc69bceea16f03d5d280ae10f497278876cdf3b7f64cbfb6f31993c18afc5bf4c38f424c9a84ffa55b235b73b4daf7d68dfd115c31dc3a237a6b64eac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -fixmath = { - revision = 64648; - shortdesc = "Make maths comply with ISO 31-0:1992 to ISO 31-13:1992"; - stripPrefix = 0; - sha512.run = "e3aaa53832094173eccbb1cb3aa2f2876227bf9b1c023d2b6f18e7df49d97bddefd450a53ba717fe54ad7cd8e8f36452ff54dc7cb67bf518037fadc6eccf40c8"; - sha512.doc = "5fa1aa4433ded289ce899004eaa165117a77ad6b4846624bc8c4ff5e203af701f1065683466998a5502ea13983bc9092ca3958059c047957e41555c753c1b11f"; - sha512.source = "7f2e12e15c0d23b9803f6cf97c52327e6f111e8e14d39b78d7519c81df5946c1db18c2fa93c84fc3734bd2f9fe722ae716781d5ebb502c56546f9007decfe5b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.1"; -}; -fixme = { - revision = 63708; - shortdesc = "Collaborative annotation tool for LaTeX"; - stripPrefix = 0; - sha512.run = "a5fc18a3560f5908521fdaec0f3e20f25f124e7ded9de72b36d81ad573726af7399d223c70dd11a8ea50e47e05e3549b785ee5c64215fcc1bf6a5a9ab2e5769e"; - sha512.doc = "89036e19b4c7ce8d9266ce6dcc5bb449c5de11ec74ce13b5208eaeb81054330ba53a0b01370b7e21d1d3d7486ddb7343f4cab946e1c3cb1387965b5e434e5b08"; - sha512.source = "061d7bc9a8813accf165c98f9d386b3ead721a7a893ae55ee0bc895f6623e4fbc52988c5933ca71223094fdbfc6f7ab71ab18a2df00715299158d58668117e22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.5"; -}; -fixmetodonotes = { - revision = 30168; - shortdesc = "Add notes on document development"; - stripPrefix = 0; - sha512.run = "d327d19ac0e9041da98458e9147b3d1a9c9182bfe5c893c03ab9ef42b9c8044314f4024503327594bef337c1af6aad0b4f2046ea2d6a433947c6c45ebdf8838b"; - sha512.doc = "7d7f8b049feb8e70c5d1ab0c71147f1f398b098f9c961267c3e90dc5e9ea9a8317361a0dacd8fe581e17cd85669bd39e83a1391641d353b01265a6195af33714"; - sha512.source = "1a4028aca8ae5fd53dd8068d17a5331ad9011d72d668f9ca8242862599edf7709e84a8848bad35fafd790ec756c972488ac8db53a240426dc5dc95dfe18385fb"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.2.2"; -}; -fixpdfmag = { - revision = 15878; - shortdesc = "Fix magnification in pdfTeX"; - stripPrefix = 0; - sha512.run = "733995ec82df92bea5a674fc25a3a6af2102739c3c73eeed7c9f40cd54bc4c5d65cafb35366b70641ff0661dc83700071054f7af274487474c3893ce5a44c9ad"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -fiziko = { - revision = 61944; - shortdesc = "A MetaPost library for physics textbook illustrations"; - stripPrefix = 0; - sha512.run = "4ad67bab5850464deee4a3a29fd7c02d011eca50dbba03dafc5059ee54aa434bfae5c173e6022fef4cb761f2c760b6dd5aff403b33b7ddc8e632961ce4f8dccf"; - sha512.doc = "e719652f76de617201a2562ac5b3a04df1577ace8fbcbf10b874326a85cc0ebe3549b0b427f39cfbeda0f34f7f3fe4ab6458ad1df2613572260fa77cb8601dcc"; - hasRunfiles = true; - license = [ "gpl3Plus" "cc-by-sa-40" ]; - version = "0.2.0"; -}; -fjodor = { - revision = 53207; - shortdesc = "A selection of layout styles"; - stripPrefix = 0; - sha512.run = "adf4d23888c6c778ada6d7cf930d4aba68b1cc20c64c571c17017b11c115452e5a4eb766d03ca03f27f9de46a5027590cd806b17fe94dbc4c5026948d3ec74d5"; - sha512.doc = "a0a0e01d4d40f1b847f40401d20604bafd2723097e72c208df2a5acb30f57042b35df4cabfc93108d4278f5725dd4b50539f7e17b7c51adf875898071a368fbd"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -flabels = { - revision = 17272; - shortdesc = "Labels for files and folders"; - stripPrefix = 0; - sha512.run = "b05d66f1181eb9d7eb80636b69ea3af7a29ae7011f6888438cf80a7fa6fde44666f9fa7ee71620055f6882e73b6f5e211a2a65ca003d903cb26cc4f9571257d9"; - sha512.doc = "cf9b774ef4e1336a123d48b3797d8122c5b9128324a9f6c0c1497194e8d3a3d9ee46a5a58470074c0dbc02f8c0aaeb1da3b4d5683ba9faf6e479a6790bc599cf"; - sha512.source = "26b2a3e7fbdfe3523cad96880dc6b168cf633a115f6b8d794709514013a79eb2ab6d1545769b74236248b73c3b08d5b52e02fdac9cdb420e3a4f1ac5cad55d32"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -flacards = { - revision = 19440; - shortdesc = "Generate flashcards for printing"; - stripPrefix = 0; - sha512.run = "45cf4fc3f4678a5242873f80ff1ab328e7675107d14052be90308d94d44a931ba8b2cf3eec67e7456a21168aba168fe848979a8d45ef07bfc62613ad9174488d"; - sha512.doc = "087d2c5500b5ab51280bf3f57362f00723856b041f520d41849d21043859bebc106ff9af33dcbf044aabd838f68d1165f74645360247de2c3feb9a8493ecc441"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.1.1b"; -}; -flagderiv = { - revision = 15878; - shortdesc = "Flag style derivation package"; - stripPrefix = 0; - sha512.run = "a7618ffc60c548fb98a581324901af09defd9226a655163d967e251b090b6ea74d91ec10bbe1e5d685a83d147818ecbf8b66d84c972cacaf3e270baf39293200"; - sha512.doc = "8c9731aec45eb594b95e1c89a1967f169bf8394664977059af0fd77aa40ebf3769200925382694e221a32ced470161f505420539b5e3f7f00be4688e308ff54a"; - sha512.source = "c81038f892b37dc2759251cc14d8bfe11d0aff056b95204cfe1a4434ef1bdc6fb3c035edca0e01282ca019193871dd6044a8b9b64f3b6051c24f041700f2b71e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.10"; -}; -flashcards = { - revision = 62104; - shortdesc = "A class for typesetting flashcards"; - stripPrefix = 0; - sha512.run = "0c336f9609fbb81bc373fad344a44b8159c7d142d2a62de795dc7f1b7a8aadba563ab7a4788164058c19ab6f6c9835af1f1a0dc275377f51aca9520b3a8a2327"; - sha512.doc = "6ef79cf1f91bb8dc7b9b3785da64af582891d1536962ea9ac9232bfb8fcb156e7c33319970793fc6776db2224ac991796a93a287aa3eed2e0cd0ea741c6ef9cc"; - sha512.source = "9d428930e3993de9d2fd407a78b19d2b851d9e7faa88a5d5c0bb44ec014432518fcd4ebb6cf68e5b3a0693cb4ab7bbee0068f431e0ca169423ecb5959ec233e9"; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "1.0.2"; -}; -flashmovie = { - revision = 25768; - shortdesc = "Directly embed flash movies into PDF files"; - stripPrefix = 0; - sha512.run = "99ae914e1fa627f462be84f7bed923c638bf493ca183f010bdeb5d607ab00abaff7a1fe3d0f8613e6fb9df7cd5047b99e99a5da18470df25e7507259a441e188"; - sha512.doc = "016331e7328732f5549487f8b2edbeabc9548eb81201584d3d3f7e0ff41a9a962761a8af867dbee8951bf4e99ea4eeecec7e9230868c23abc95260f288ca7958"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -flexipage = { - revision = 66614; - shortdesc = "Flexible page geometry with marginalia"; - stripPrefix = 0; - sha512.run = "1e16b1722a4c4349879c4556338c9d72eb4fe8364d0e19e0237b3a269b85ef19bd68d4334e190b7e0cae6e3ab1551381bc2e46fbb265ce36e839a967fb114220"; - sha512.doc = "5670616faa6646b68d3b3b2724f5e324cd1ef3595a0da3b8615d364f908f684f98d641754b71498cb2b61853192859dcf602a2925cab145292b1cc7a21f99766"; - sha512.source = "72458fc100c39b56a6f5ce173fa1149997fec0e4b7040f9a6ff2a2f671e27a33a4cd326eefa48bb81ec53bd53147bc4065d677fc1aebd9620da1d869336b495b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -flipbook = { - revision = 25584; - shortdesc = "Typeset flipbook animations, in the corners of documents"; - stripPrefix = 0; - sha512.run = "8e3140fb417115ada958bf6dab1a22b39779926b47938bb49cf86499d64ae16d321e6e6bbc8482ee7e6a2d79d8341a227785ecf04c66a15f7e5c0ccaea016d21"; - sha512.doc = "a5f6aa188e7a0aff29d4e693f0f8e52512838278e12d13c29706c7bd5c1c1c2a8d70beb619195d8572ca5a3920205380d586d02580bc747acb8e3259c79c3fb0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -flippdf = { - revision = 56782; - shortdesc = "Horizontal flipping of pages with pdfLaTeX"; - stripPrefix = 0; - sha512.run = "17773b1ba5f40d694cddb3d2e2742650bde889d53302e6fa6ef0686ea4cd3fe393ca2e5b31842e93e5588631ee53ebb668cb035b2843fc5bd57911167074edaf"; - sha512.doc = "d5191d079641c9a06336498c396cbcc7585c983924a646bcd3b26889ca51a08eb166ced560f45f834281fae9abaa47d02fdd4ddadd3348cef704dd9b818e7675"; - sha512.source = "95e86fe1e8ce5cbba8745123dbf6c352545d0a75f3ce679e2cf132e46184efa28123f9f9ecf805939c10f59af5bbde84bd2a75eba8f0aae3628b41226059bdfd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -float = { - revision = 15878; - shortdesc = "Improved interface for floating objects"; - stripPrefix = 0; - sha512.run = "4a5270ca2945915464ba25b7996dfbd4771ca5f477e4bf248183bc340b7051c042d9566908acac881782af74a59154f4163bc7879a21e042e1c31d67237fc6a8"; - sha512.doc = "6f713c71361c1536bb086e7638b770ffe58e97aa01bd59bbab779f71cb485b9c06322d7d89e7d87cc8f77a0c7f18f4174fd4ec47b62556faa32d82fead0b7377"; - sha512.source = "9e577ba84dcac612e4105e597ca2385da3dafb39327189caf30e5728b85a380b5a90363b8bf9070a0464aca2130bcf9419d030bd6c39d51f9a17b0a7dd578d5f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3d"; -}; -floatbytocbasic = { - revision = 67945; - shortdesc = "An enhancement to package float using package tocbasic"; - stripPrefix = 0; - sha512.run = "01f45baf2f0713a229bf6b6d59e02c8a05f0478331c3c6c7ca7dae050db94d7497a87acccda1cd7c022b79b54ef5088f6af181429e60154ac8e1ada081062dfc"; - sha512.doc = "0d6f29221ddb39019a9c6d308f77200279144efa9de35d5fcad8518de9ecdaf840179887282840cf7b31e7eb286f0fa41bec93e8a1f3682873adb791a467e22d"; - sha512.source = "4b3c146a6e9960f77532bf2fc23cf686a092f00da541a0c0fc1243a3bb623b16e19de8e9bd1e792a9134cc1dd3d429fce17ce372da03f0abf3176ee4b722cf69"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -floatflt = { - revision = 25540; - shortdesc = "Wrap text around floats"; - stripPrefix = 0; - sha512.run = "1f7de96ac5e82cc4bbfab3fdb665a18d20413cceea097e1407dee2073109ee1b82d7d3ea82c80630d9aaf445f14a8497aee7e3824458dea8b40b270135052ef5"; - sha512.doc = "7ca1c6ed832bb3d697685cad5575e02b531c0469095468fd40eb3131d89b68dfa0fcb9c882965aa7a9cc9c60292f64bdbf6264d3d990bd697dc27b23a46fae47"; - sha512.source = "6d243fd8c9a2fb7bbc242ececd19d94916de97fd3583095e8342d8e7c56decdcaceac8038eee9a774950d9261979150035e8c9175175ad7346b0eb1fbea6c5bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.31"; -}; -floatrow = { - revision = 15878; - shortdesc = "Modifying the layout of floats"; - stripPrefix = 0; - sha512.run = "c650b5c856bd625ad192901f3c056171f790c549748d5de5675f14cedca5cf32931ece537ce2280c0e4895895a8eff0cf140c3408dffc2b081ebc8c62d2ae1e3"; - sha512.doc = "b721ebbf59ca3744f1834c130da1a859cd4a98e9f5f977f5d35eef77b420deee303c109439fa70f89757cb9f57114bc74c5d527cafacc1daf2125b975621b525"; - sha512.source = "033c5c65c9676054e209c64dd065f86631c9765b1582e4042e72bfd247a49602dd97ba4dcd5afa1fe2f7e3d252e4b6ef2ff1a2b00eec3156937fc214d7cf0c3f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3b"; -}; -floatrowbytocbasic = { - revision = 67946; - shortdesc = "An enhancement to package floatrow using package tocbasic"; - stripPrefix = 0; - sha512.run = "3554c3cd560d5203b650bd32fa39aa4372f935bcbc757d1ff93fbde3fcf1a395bac4676e7029ec58fd79ce0089595858707880e35fdc98a65615fa27a555ea3e"; - sha512.doc = "1ee0174dff4209c1bcc3764c89ede858174e1aea624a0032c0af8bf61c1cb4082517ee2713fff0f5a5687ae4d63ec67c04f4a14eb5479edab183d0487241c37a"; - sha512.source = "126754a11d2a5f47d2406bfdea43ee33371ed1eb8f6b94bcc48b71fcedab4f468e3d0fbbdd7f0229780a70b5d337aa3e443046346b1c53e968a585c6d44c1c66"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -flowchart = { - revision = 36572; - shortdesc = "Shapes for drawing flowcharts, using TikZ"; - stripPrefix = 0; - sha512.run = "9adc1f823378fcfaed58e99727b68389b97bc489ba38995e5e7451608cb712dd7fe02b2686f692328b73d1bc8011131017b8edcebcda5e886f3bb4a0f6aed65a"; - sha512.doc = "0bbc3f1f56f5adbabca07096804412b33e93669e20af345e57bc9ad42133ab629b9546887599b472dacc8ee43b9c395f8c2e58a288c487e78920be1db5a110aa"; - sha512.source = "5ea69b98cca431225564482ed0597be71fe45e9ed933f4417059f4cf16401ba82987f90617e57a5428a42d03c0877969579a2b976a2c48d439d0dab7af0a6179"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3"; -}; -flowfram = { - revision = 35291; - shortdesc = "Create text frames for posters, brochures or magazines"; - stripPrefix = 0; - sha512.run = "880869c22914392c4ade9dddeaffb20d6c6edb6da78d30705d9f6aa1b1352ba2734565fa8c2a6851e81f1107573753748d3f4d208bbbc4c0dc443c066e912719"; - sha512.doc = "25924c121d2feedc7d815e4510b89f05000eef87efae8039c6566136b7fa92d6d4d9f25f2938363dcce8222d5c824d42894e4863b95e422b7949207a1e1daccf"; - sha512.source = "993d60da76f1144524f9ece2c5c9ba0eb38526111a7cbaf6bb5c669eea790c1ab9519f4e7dc2bc955c611fadf5771f2d9b6582d753b4cf3b79038b2bdd29837a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.17"; -}; -fltpoint = { - revision = 56594; - shortdesc = "Simple floating point arithmetic"; - stripPrefix = 0; - sha512.run = "906155f3bb5fa81cd4e97a375c37774db1ad4db388f334867cb5ba30735ec4ded5461eabcc833951b5d8a6e2403eec02e0f464d35f109304b9d6152638949b00"; - sha512.doc = "3c023dcb86eddffb28e0937f9d31dada6c82852e44a430c892feff9572c81d9830e4524f742afd958a79f0af63e72311ece43c9eb0e2d8434d871fe144b7fab5"; - sha512.source = "cf5031d06ada079028382b5e845df5b69330fe23412aeb2226af725333dd9d5f4b0915f5de2c46bcfaf6809c9f85479f6257c6e7825c076f896c5f411e3ba9ef"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.1b"; -}; -fmp = { - revision = 15878; - shortdesc = "Include Functional MetaPost in LaTeX"; - stripPrefix = 0; - sha512.run = "b87a361454199c16e1fbf97bd2b82f8b5569bbd71b7beaa780a6d88357e9262f77c9c3ce17d2ab0ad9b043ed7a1dd721e533c516e1b927f0439e13ced6598a30"; - sha512.doc = "461ee793dc8156b0ecd6931b9d4c56f368ce4938838b042abae5d6475ca3739c4fe47517168dba742f03c98229376f59f8654a89f1d65ab394c0dd907ac48ba1"; - sha512.source = "912cfb9e0d4669c5d128ace088190ab4c5f90e371b45f1e399346816d606ef3f96901775a51b5f89a8670abd1b08e159587c9eab4ee6383c12e260d26e070034"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fmtcount = { - revision = 53912; - shortdesc = "Display the value of a LaTeX counter in a variety of formats"; - stripPrefix = 0; - sha512.run = "ec5e10be2b93adbfa0e1ac710c7df37457e8d14dc5c7fe1cd13e062f136c63bd20a3e42d57c237fb4ae5c1be936e1d821d0a6568ca0c22b41948660f0848da43"; - sha512.doc = "fa0955c7d08dca99d3323b9cf364edd8b4b305723a3fd3ae38687c6473ea2af3593c47384a61feff0071199b909e1424d422eed3864866b28c7d27b1f42c3994"; - sha512.source = "1325ecfee60e7b602e5ca2fffa2b95a4ad11d04b5e986413af57da19cb75e2a268356f33ad64355511d526ed144e14e2abab4b84e5ec5e4faae122eff9914104"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.07"; -}; -fn2end = { - revision = 15878; - shortdesc = "Convert footnotes to endnotes"; - stripPrefix = 0; - sha512.run = "6be5c07123cf2470ca88b7c28c068c6dd308824138fd2f645a1a7c04c69fe84953468733ca2994faa42389b5889990941c8e09dc543b66a1589f3cf22df1e017"; - sha512.doc = "17f0a1d12afd607a26687b675ccc65a150e4ae67785389fe9582a3b05ee383f078bde35f296941ea069323757e1fccd1ae0e76e5e24f3446b4154738c1a45385"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.1"; -}; -fnbreak = { - revision = 66615; - shortdesc = "Warn for split footnotes"; - stripPrefix = 0; - sha512.run = "15d3ba5ef30d8ebc23be3f0c412f7457960a7032f3c78ccdeba6342852a3b7db699b8792b6f981659268fb28c74e5cd93bfabde2b584f7eade98e6b422127d9e"; - sha512.doc = "44837191d22ac8185b7748fbf32769a1d2299b92a313da918e6a03d78f56206e76d73990cfb1f94d956835f369adb4008df4da117a20984afc48289b1291fa4d"; - sha512.source = "7ebefbbe46d0c4db1244ef699e454c0b393285a489bc20b0fd78bdd5da0ddd00982f063c25dbe78c4aa1661402a6ca8ea492774e9aeb5aed3d7fbd460ae2f58f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.40"; -}; -fncychap = { - revision = 20710; - shortdesc = "Seven predefined chapter heading styles"; - stripPrefix = 0; - sha512.run = "83d74f4bcd8fa90cdf5d0b6e03e9e8e36ab09884998f9955647928ed0a33924735d236a82cc730412edbf54485ec8c357ba3954a264965f67752e397908ba295"; - sha512.doc = "6a8c6910f0790457c71cd55c8d30d07df81c97f80a8b6b7930c067966c76c47848142cdcb7454c4b63a154c5c653933bf71acbd792c06eafdc496c92e4bc5806"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.34"; -}; -fncylab = { - revision = 52090; - shortdesc = "Alter the format of \label references"; - stripPrefix = 0; - sha512.run = "47aafab923d6455da7e63eb24e0fefa8b869efa5a04bb301000cb2eb658893927dd9f9aeb8e6919ea29e0caeca235b1883106228f6acddc667117a3ba1136974"; - sha512.doc = "a987a6efd0964bd5ab5328658e011b5c8da56b404d233c55d96541ec2f37cc72faacd934908c7346041ec8bab3866dd1f171e1c5de5eb528b0f0e80969c0bba6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -fnpara = { - revision = 25607; - shortdesc = "Footnotes in paragraphs"; - stripPrefix = 0; - sha512.run = "620aafcef4ec7fdaf5cd732551fddbfce53222cb7540dd370f2cda425e1782c907e59868953f50acfff993a8fd8a84d108da7992f1c1565cbfa889a5ca0ef5d0"; - sha512.doc = "798c7fb03a8fb20695ed63ba1333686d21832a936a74a93ca77c7614346316234b2255b8e0340dd87fd57bc1480f23df24381107fc81c68cd4c0cd594ddf5329"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fnpct = { - revision = 62248; - shortdesc = "Manage footnote marks' interaction with punctuation"; - stripPrefix = 0; - sha512.run = "35b1fc24b9cc8ae46104ed20023bc3e1a5a83cfb857cdedc3e6631b8ac4315a79dec012793174fe239898460ef0247f2726b3a7c0f07561a58178ff754b513e7"; - sha512.doc = "2f986edf21052a8e008a64493787139ff9fa5f65038eede1c87e59add2c496f23fb20e7b33d632dc598318dfafbbcbdb7a938a7f04bee6c72884565c104df7a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -fnspe = { - revision = 45360; - shortdesc = "Macros for supporting mainly students of FNSPE CTU in Prague"; - stripPrefix = 0; - sha512.run = "5e9af6b3b3136f49e49524c7fc85074fd75fff30826fcbb8dad358102e3eee6fa44037b7dde99b6556a063dbe4e819b27ef5a522999eb304f70c2785642478b3"; - sha512.doc = "733a099cac2d96ddf6593b9e0195b85c8d5e86f6a1b283f011a55acc4a1bb7391bfd4356c6aaa40d9b2c70a7c180886d64162eaa396a5a457fbea491af1b47c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -fntproof = { - revision = 20638; - shortdesc = "A programmable font test pattern generator"; - stripPrefix = 0; - sha512.run = "c1cdc018808a2b9fb5b91c54b55eddf3d517b8dc6062db1ffda3db154efe6f3abb91e61ce90a68743ce411ec614785974b4362f20f03ae398488ac1f816b3ba6"; - sha512.doc = "cf9e8909ed030b27a57573cc257682da84b7f14c3c3775e17fdc8a2203fe99dda8797ae7b2599dc92e9684140102f6d1ca2147bbb437edcf8eb41ffd28b9a576"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -fnumprint = { - revision = 29173; - shortdesc = "Print a number in 'appropriate' format"; - stripPrefix = 0; - sha512.run = "7f43363ff861fd4f887df68dd6daae6c97940d4cdd60b19563a966dc7c08cb88356a150eab0cb5b91bd4c3d5d47e324dbbfd43cf45872a5738c5f9b70766e047"; - sha512.doc = "44d6fdf74bf6c231a57b3fad63efa7eb1bdf5b4342cdb38e0d504c4c09190130d37534769e17c3f60bbad668d50aab064bc5c0a1ad99808a6d084dd1921769a9"; - sha512.source = "3f6465877aa1dbf5ab021e8397725ec83217bd774ee0623e71cf15d746d7d0edeb2f78ce76dfd607568be75b67f4cfa8d3e1ddd29c0ada6d376f7b4fdfad86a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -foekfont = { - revision = 15878; - shortdesc = "The title font of the Mads Fok magazine"; - stripPrefix = 0; - fontMaps = [ - "Map foekfont.map" - ]; - sha512.run = "45342633aec41f2a5fe7213dc418960d76ff196a08b906965e3b68f2c5ed264b3192ea45756133f12662e451fcad11d08232995c0de2493495c40b9b59cef7ea"; - sha512.doc = "7e1aa7a240d825c014be6af7be5cd7c1bbcbc6e52bd55be36f987b4a25223179bcc4c4d342906c10f9df624536252fe4dc5a45cd3b5ddb63f91e9f4c7401a239"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -foilhtml = { - revision = 61937; - shortdesc = "Interface between foiltex and LaTeX2HTML"; - stripPrefix = 0; - sha512.run = "88bd7239cc37cc4429be37de0e68ffd6291844bb81f34a3e9e8c0dab14641d66b6d3990e44d58e5322d2cbac8da27901fe7dbb3b64a59be577ec0f94a036bafa"; - sha512.doc = "c444f13c4c60cd7a723d9bca8d687a3f995438767d077c812797b91e0111372fed6c76fb51f264c0332cffb1a598e5f2a17a63882dc18b4e682f08a3ffee0900"; - sha512.source = "9904924a8b8b1723e7496960fb9856e91efce76313cb49e756d99be5f6f97022e1cf8f27edec0ee738281137e3fe4d251448caae54335d30b0772a1be44cb8e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -foliono = { - revision = 58877; - shortdesc = "Use folio numbers to replace page numbers"; - stripPrefix = 0; - sha512.run = "e5082c626e22acbaebbc7abadee75a71e3902af989767bcfba5d851fc89e771cf8a331ea540c05e6455b894351fdb6af6c598b5440e55c553662efdcb73cc093"; - sha512.doc = "f03abc88291b2591b509a575735f6fe3e29ffeff52e0d2cbea287efe5426b7668462e6133394374f01aa3b968fec035e6a40a8bee01b12cbacf90fd0bca80b2e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.000"; -}; -fonetika = { - revision = 21326; - shortdesc = "Support for the Danish \"Dania\" phonetic system"; - stripPrefix = 0; - fontMaps = [ - "Map fonetika.map" - ]; - sha512.run = "4db9e50fde60ac69373f5abd151f3e17275f5c492b6855a7f5dd8895650a79cda1feda43398fffebbecdd6f7e032f8935972ef573f79ae1cccc5844dc148352b"; - sha512.doc = "ac3f0de2a9a5b5052d4ae626b4368f8b1fef419503cab9a88d4bf89db348c1a756555a6cef7aa70bcf733fa032840fe9ae7cfe347fb40bae32b54506e60ccf37"; - hasRunfiles = true; - license = [ "free" ]; -}; -font-change = { - revision = 40403; - shortdesc = "Macros to change text and mathematics fonts in plain TeX"; - stripPrefix = 0; - sha512.run = "8ec91864d719d20ff66195ec1bab456d772417ff2d4d9ae75ecccafe0da616d1dfdf5b965be489a65eb28130b3672a5b55c33f3254f59c00cf204dcae6fd4eb7"; - sha512.doc = "75f7e45fb5313d0bc1c333253aba2bcd1d650fb6c0baffce6e5c558b0e7aeaf2e697ea9412860b4049d2685cdee26d19f12d9a28184084ab9df66101b78b0361"; - hasRunfiles = true; - license = [ "free" ]; - version = "2015.2"; -}; -font-change-xetex = { - revision = 40404; - shortdesc = "Macros to change text and mathematics fonts in plain XeTeX"; - stripPrefix = 0; - sha512.run = "17de7c596a774c5c2e115704c2c57385f3fa90bf2dd49362547873453c27700537ab7f1e8a143c2ed49c90efe6aec234d3cf61643228bcba5b51c5ddcbb8bba9"; - sha512.doc = "138375750a4d493774cbd558c6aa910d04bf3f32337f773438d6bb31e16df3d96af3a6ea12d4940c785c04f98130977750058f7c0ef2425e0d8147b4ab882a64"; - hasRunfiles = true; - license = [ "free" ]; - version = "2016.1"; -}; -fontawesome = { - revision = 48145; - shortdesc = "Font containing web-related icons"; - stripPrefix = 0; - fontMaps = [ - "Map fontawesome.map" - ]; - sha512.run = "e08643104006c9e14c40bb965b4401a8fe296f43e5f39b285cd19d5aa0ed33602cc0eb6ffcc996e1d6e5aaa57dd906903324626ee40facdcb3cedc5216a3deb6"; - sha512.doc = "bbd18a60db734922ea006ebd00b0c9f90c34907a7b519a08bf007daf01cceaaf6db3b31c3dd8c76e1dac199d4f7c312116f6935b764afb62248b7dcfd92ac78c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.6.3.2"; -}; -fontawesome5 = { - revision = 63207; - shortdesc = "Font Awesome 5 with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map fontawesome5.map" - ]; - sha512.run = "d7f6a40797b2968c31b28f1bf273af9d27b7a87e7c2953748f354db2e760b027feb5a8fd52c8f367649fba24cd629d71c1b1368b8864d42eb84269e0b22b59d4"; - sha512.doc = "1727133ca0e1713c356a647e08a7e22af50ad6a67e66c54f3d9e9a0601bd4a693c365cda625b37be83cb4ece42aba8312488f4ba5e885cc44f68f7930dfd7add"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "5.15.4"; -}; -fontaxes = { - revision = 55920; - shortdesc = "Additional font axes for LaTeX"; - stripPrefix = 0; - sha512.run = "49a2a2a3cc34370fc8db7c08446b2d12cb7b8a9ce6913568d7588c051683e24b859af23c440df1c815ab1b65f5b5de32242df344dad8102eba7ec1383b02c112"; - sha512.doc = "c37621f082498bfc4c2ed0717fbe18b56032a7d5faef1ca7a73c4fd22adcfb8f7e517ced768511636d4c8488932d3b33a96137837f34c79416b9c5d8d852456c"; - sha512.source = "f0bb1bdb666c9afc19ea333ec3919716565be9454970e7a9e3930f503ea7e31ebc4273a16dff6fb2ae44701ccab1ffa2e9c285ac145ed32294b47b68fff91267"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0e"; -}; -fontbook = { - revision = 23608; - shortdesc = "Generate a font book"; - stripPrefix = 0; - sha512.run = "55ee9dc22aefcf91c7fe30f516bfbaea5d0b8c5423cec204bfb208ebfb4b2331ebdd65032eb6f2a9f8958f15fd47433a9c7884f49ff1f3900f1538f9f25d4fe4"; - sha512.doc = "65eb7d3f6426d3dcb13ac9a0d5b396eb4c03586d9d2b3d842af9ae4ad98119e8721034de499eae485c5803873946f04af992ddd860d09a7131021027c14b5d4b"; - sha512.source = "8ecb0b7b4e5f00806a377acfa0198ef217faf0573930be1272d13d743d1e84db76f067afa7e7a665c4540536c1d888bdb702ea9c203a2a405389079aa49f71f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -fontch = { - revision = 17859; - shortdesc = "Changing fonts, sizes and encodings in Plain TeX"; - stripPrefix = 0; - sha512.run = "c8354fbcb6a13f2f874dd3df71f23ee1fcefdaaa1eab5166f35001811b9788ea2b53e5d5653437071d02978dc94b0a658bca5e2cfe825a0315d3389446b6c138"; - sha512.doc = "a7c5f6622414d943a20745f7b02c3859d43d4f4ec0f9ffd3b2baec34e142c01474d8827c7b0fe5d1bebfa25d33224b26cd876e3457b7179097fd9539cb9d9444"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -fontinst = { - revision = 62517; - shortdesc = "Help with installing fonts for TeX and LaTeX"; - sha512.run = "c3668f79f4b926090188386044fd68b0f13913168cdcb2aa23ccfd3aead488dec03e79133669bac3d2b719fdd2d5ef735fd46cbb27fd26fe560368f9e0cda05d"; - sha512.doc = "23c569bdd6f12dd4cd0b5673ed9efde2c7c7988d86bf2f89409bc22c80f64ea80ca6824745b50ea3ef30f70e4bd7c8d7005a9e05e511c1e917a12630f4b4bdb2"; - hasManpages = true; - sha512.source = "1645dfe5c6cd0efc8d8af966eb7363176ee7a44646b5860a3c137dd70c7e130340887e8690913d03be84eb1d84134c4ec2add713e4583a0feeefe4a1c4554402"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.933"; -}; -fontinst.binfiles = [ - "fontinst" -]; -fontinstallationguide = { - revision = 59755; - shortdesc = "Font installation guide"; - stripPrefix = 0; - sha512.run = "c3f9820453f9cc3fcf4323f382a35255d2dc066dd0c090f55d15b2b28d64d8e3935e85b3dc8f30d9ee50408a48aba0ba4278d4985ead454f177ab1d484fe7b01"; - sha512.doc = "785a84a3bbcf67fcbb878f331815fd585093de89faee6f2556727ef820e392131545646242ebdef603e85e22e86b1e97f5369db4e1c565875e79683ff4987198"; - license = [ "fdl13Only" ]; - version = "2.14"; -}; -fontmfizz = { - revision = 43546; - shortdesc = "Font Mfizz icons for use in LaTeX"; - stripPrefix = 0; - sha512.run = "43febb41a8bd7b0a89a2b60b52f9b83e0d0fa8303c0a7986658a95c93307ba6642fe07f8ac935ccb50b3047bc74100cc7268fde438d3ff80c944ac59afa6e3df"; - sha512.doc = "6dc0f6c10d44a17d42d8ed4148f39bf89c84dd5a3a672755340456b0ab983b1b52cbd3bb62cd6f5ef4c3f6dfed8a39568d5ca35598c4b016483fcf7d3cdeb360"; - hasRunfiles = true; - license = [ "mit" ]; -}; -fontname = { - revision = 64477; - shortdesc = "Scheme for naming fonts in TeX"; - stripPrefix = 0; - sha512.run = "424da4dbbc07c41840e6aeb6fabeef5d4778d206b9cb8a90e752ebeb65d962b96ad41a7e20c86a16665e2bf48ad795d85001da66ff41b01ae3c949c6eefa4593"; - sha512.doc = "78199996913192f5f69423b6f412acc52b74f051b01d3e345b97b7f1d9ea4aea762a7b83488068f3091b41da69471d56b3f18ab4d299cc6adfe4e004072db303"; - hasInfo = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -fontools = { - revision = 69241; - shortdesc = "Tools to simplify using fonts (especially TT/OTF ones)"; - sha512.run = "5144f4a0636b49e63bf04f518b6c416623e2228615e33169839547cbaca574bed78777ab20f4db7e5820c1acd401b756896b39998c43f21f93de6cf8f987f6ab"; - sha512.doc = "bcb3ab7f49e817ef5b6f710bbc227309f28396c6f4233e39e94163663f10db3daaa41b6db93a9ae85a26599dfce352a0c132a36b0c047ecf8f5269f428af4f6c"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -fontools.binfiles = [ - "afm2afm" - "autoinst" - "ot2kpx" -]; -fonts-churchslavonic = { - revision = 67473; - shortdesc = "Fonts for typesetting in Church Slavonic language"; - stripPrefix = 0; - sha512.run = "a6e3759ee4fa9cb50a8b7bb55f162ddf6644c3d2ab61da514ae902c99868f34e3de67f1207ac003f98a872b1b1daafada441e888efe2f0482ddc6b9132374c03"; - sha512.doc = "9fcc08b521d9706c3775d33ed7391553e855ef43a49ef1c6cc92ecc1f21677909eaf5c5d231fe86f232d3a092e3f913012d8d96f35b3344e0a774c4e5c8f1476"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.3"; -}; -fonts-tlwg = { - revision = 60817; - shortdesc = "Thai fonts for LaTeX from TLWG"; - stripPrefix = 0; - fontMaps = [ - "Map nectec.map" - "Map nf.map" - "Map sipa.map" - "Map tlwg.map" - ]; - sha512.run = "3b1894d677b63c88010fe583381ff7c0c8a7c5c6753e62e166ffa8ae7f18d6a521b12a4e57f16634855f3b807605407cfad110eb405a3ad334f8a14bfacb6338"; - sha512.doc = "93de1f1c668d460644f8246ac25c47f10d99e91c878c50c3096e2df373e521e54412c239d89f5372c767cd768f7973b06f97f25705e865dd5c36cc3674496c0e"; - sha512.source = "555a7e3fb1f1202412dda95924b692f21b6ad7d1abb68b5fa789e360667b6a23bc377651d592d43aa67728a8bc9f2a20ad5b1cbca85c412b90ce8a8654b07b17"; - hasRunfiles = true; - license = [ "gpl2Plus" "lppl13c" "free" ]; - version = "0.7.3"; -}; -fontscale = { - revision = 70541; - shortdesc = "A flexible interface for setting font sizes"; - stripPrefix = 0; - sha512.run = "95ac9aaa5ff2ff9b9108bea483b23ef415e825beaea1b1573b1869d441c9ce34188b47241c5eed9b5762931823f015c0f05897d7085b2462f1f401c98ddcbaa3"; - sha512.doc = "28eb33adf132aed909f74211c538ab82f4cd5a958692a20a4692f9774a60c44e984fea28949366e3ae28d507088eeb1584592fefa1abced2b7bbf29bf9c56c41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -fontsetup = { - revision = 70135; - shortdesc = "A front-end to fontspec, for selected fonts with math support"; - stripPrefix = 0; - sha512.run = "e599ae4f458be9375343dc4eade6c4ea56175224b785e48193af974d0b8f4a0d1f9426f8bd0fa22b15c962b7e10ef856f938699324c4b51e46d3e06602952e02"; - sha512.doc = "18c8d669b19274eda6e8daffe5fa3e6906a98026052ac668ef51e97e2e49e73b749dba7ac369d532020faccff121d210b5c1ec3540f353a98fe276f4aebd4c2f"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2.1.1"; -}; -fontsize = { - revision = 60161; - shortdesc = "A small package to set arbitrary sizes for the main font of the document"; - stripPrefix = 0; - sha512.run = "8e89cde1cdcc388a5e8ef48ccfeecf6f1f25e938c7513081bb17bb4b65f889c2826a929baf4833b2191554f3ddef2dd9c5bbf50f53ff14fe7463ebd1e494aa4a"; - sha512.doc = "0b4cb325f4ca5b94a1757aea9ab3dc00dc92ee2b095dd35f176e7acbad7e1ec87a7e2b7cdf9ed19bf50095c41f221f8c791c0e7c9d541021768945a84a30e51e"; - sha512.source = "42b9a587d63a2a0190776851b86eb66c4e7e2811a4367ba659ebc996fcdf365b9447c94a4d04af5129a6b95d119e37735df9b26fcf12702f157d61932f64eef3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.5"; -}; -fontspec = { - revision = 69880; - shortdesc = "Advanced font selection in XeLaTeX and LuaLaTeX"; - stripPrefix = 0; - deps = [ - "euenc" - "iftex" - "l3kernel" - "l3packages" - "lm" - "xunicode" - ]; - sha512.run = "3d49ce69d6830cb4bcc16b0df3fe86335761d71fc8b930470ecb4e38f4131c40c534d8c613a252d552b1d298d61968e5bc2aa574b0299a9f7b9e79b63711d442"; - sha512.doc = "1ae04a6e17c2ef6413e9cf21ec7934502a3fff3324bbd274dec1837916accc6da5f09a25816d99abc5cd0a431b0e652c44a2f570ecd69f400f56421ed172e58f"; - sha512.source = "48177f9500a5248dafb333965cd640e600aff2591a4e53f17b9b32a6c7042559e32d907ae5e2e6978389caaf13dddcd0827503fffba35b647974dd67d13f5c4f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.9a"; -}; -fonttable = { - revision = 44799; - shortdesc = "Print font tables from a LaTeX document"; - stripPrefix = 0; - sha512.run = "f8db43eedd7f9e43b0cfb8c37e2687321fe236daa4bee898141c305dd2e59fb40bf3e8b3cabde561c75fb65dd053de33e45b90a8ab9518b0b30aedf35f6af1f2"; - sha512.doc = "1d2b27ac253df62568087abb8f9e0f0054e3bb98cb62e65784192b281722e69e8565fa569eef4d061684e8965e0b05a0cd6dcbf7e632af7f68f97e8d4747426e"; - sha512.source = "56210bc42e0716196bed05a35ef9ff7ffb40a17a8cfe8cef4d31e2c8ea28bfb75ee035bb887ca62387460cb7f99eb4f2b408cea767ce824124116caa6ae7d15e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6c"; -}; -fontware = { - revision = 66186; - shortdesc = "Tools for virtual font metrics"; - sha512.run = "7cec7df72b76ed64b864401c809b48e51f69338c7cb3ed05ac4ea69899a077983763c728543f99130f18afdd2a03c955d848066a239c97547ab0240d87c97d7e"; - sha512.doc = "ccd22e262e5fa2cccd5da0ff016447d2df04aefcdd6960f226762667ea2e81b4afd406ea9f822b74d07c8f93cbe70ef90cfcc4040cae2820cf5ace94ce8d1113"; - hasManpages = true; - license = [ "knuth" ]; -}; -fontware.binfiles = [ - "pltotf" - "tftopl" - "vftovp" - "vptovf" -]; -fontwrap = { - revision = 15878; - shortdesc = "Bind fonts to specific unicode blocks"; - stripPrefix = 0; - sha512.run = "5bad0487f5cfa4119d7baafccc6178925baea12f1cbed5912211c52f2c4ea01eb00f9dacd300c24b93f48e5f13197a86ba1e37c35ed69fb1031281fdeb08edf2"; - sha512.doc = "857be54c81d9bfb14277c17638ec24c643c278d660b56e18a4701aea0ad28e496df0aec191b12d93bb29b7ab326b39ad9cc7ddc3615871d1b70fdf6e44ccdc6e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -footbib = { - revision = 17115; - shortdesc = "Bibliographic references as footnotes"; - stripPrefix = 0; - sha512.run = "0cadef58331d5d51aeba1f69d0c9ceae99104f7c31ea79e0f5dee33c8612bc52cd0c8551abc6da1799705c879cc88535b46e4ef15232d3c4a0f7136e0fe46e05"; - sha512.doc = "27d1f0e6bf0ef526f2b3c4852c53b78fc60fc10ec526796447940565ad75fab023406bd28548170f7382e822c3b0f43d96181233bc772ea58f8ac195f71cf495"; - sha512.source = "120d5c14a1b12b15a39792d2cae0bfee5b1695af1c014708c65d61eba6f2fd52f17e2b61b576e192a2d2a9abfb3aa2e059fcd9ca17e48e8a3ee6e9cc2150f119"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.7"; -}; -footmisc = { - revision = 69729; - shortdesc = "A range of footnote options"; - stripPrefix = 0; - deps = [ - "bigfoot" - ]; - sha512.run = "7e205e392bbc933c6592f91afa053573f174ea83b07d81a17a144b29bc3837ba4e6639c56f5b07a9840e141e408163cbc2edbcee5fb7b159264ebc54f4a09645"; - sha512.doc = "93d3ca6476356b7a0ed955edbe442764740d32db58dba91276f6bd891ca4009c3731872a703f1621e344a69c401cd70a7cd9e5fe2845d7667a8e0dc61e2ad2a5"; - sha512.source = "6b2960dd45ec7ff85cbeeac863a068c3eae5d161b19811f447fe31b572a7a11006c3608ddd34a677ade6c69e781bcd7938dbe451b0dbebb6c82708b393d363e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.0f"; -}; -footmisx = { - revision = 42621; - shortdesc = "A range of footnote options"; - stripPrefix = 0; - sha512.run = "591f181c8103ebd7a86440b27992df9eaea91d5998caa0f52dbfa48b7afc4791ef8c1f5a95d85b7cafd56113726beb74268b7498ec489d7b3142dcdf7f07adba"; - sha512.doc = "8c36c6eb169a804769ece280c2210949db96bbe57d6dacc1a0952fc1338d619334d3d8b46cbaa3dcac09e05a0c015f37146d8bed315238b5e918c373b2b42155"; - sha512.source = "5b069985c3a55240d762ee67a1da66895c304b5ac82bc0ce80c9e5fe9e77906cc0810dcb11c39b3ab63ce39f5d52964b7fb3319d49c0b18c85bc1410bad84ae2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "20161201"; -}; -footnotebackref = { - revision = 27034; - shortdesc = "Back-references from footnotes"; - stripPrefix = 0; - sha512.run = "8c18d95a4c74a7fe2ea4cc98df6bdb6813d9cf8323e44474330f03694758ee53da46d0d691164f6d90b2148a7cf9dc253dbc93548a3b33df3b0344096e4a90c9"; - sha512.doc = "685484323b721c5277aeaa041b1d40b0d4675bc901a371f36dbff6246063252bca69261748a096919c7345a4a6e6284a6093068555bb43eb92fbf7cfea41facc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -footnotehyper = { - revision = 60374; - shortdesc = "hyperref aware footnote.sty"; - stripPrefix = 0; - sha512.run = "24d270cf9fdcec81a91be4084e371338f1daa0a12c8344b850860bddef360c97d66e7475711106ee0d1d2f4df359abdb2f0005740aaca83651ce92f1d6c89140"; - sha512.doc = "605c22ffce3c413a0f9caa41a3ff7a43022a9c7a26e43fb177c107c2bc156c93a75f392b29d46880793788f9b5f0ac9e87cdb4c5075a247c17abec2e41527ef5"; - sha512.source = "77f579a0e7422a98e0fa9898ea5fb36223f66a2b9889a0da1b4cb40736d88d11ca87820503ea934e6b7e41033ca18974df4d4f585d8283a0e62959c9c16ab7c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1e"; -}; -footnoterange = { - revision = 66149; - shortdesc = "References to ranges of footnotes"; - stripPrefix = 0; - sha512.run = "b2c20e7b528219e0eee9ca32da40982670d3fa88938a58251e1ce6aca26b831d9ffdd89752ac19b78bc148c11c265374d2f679e7e3f54cff0ba445acc4025922"; - sha512.doc = "bf5b704bb39a8d369093feecd02da251eb45790381605495960dabb9a4ef099f9118dc7a791c9d9db74eb19739628638a8c003256a42890d64ed821ebf2b8c12"; - sha512.source = "22665f8b1e912c325a0ba7b8b05ca7da54f54b92e8f7700d045a837e98a544c651c479dff88937615ea1d13a25ae3f6d6f3a5a60c1c7402c8a892dae0fa0a62e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -footnpag = { - revision = 15878; - shortdesc = "Per-page numbering of footnotes"; - stripPrefix = 0; - sha512.run = "a1ce9661f0f6a69d1709ea053fd548aed428a9cc8ef0445b9c4b897eeef349bb9767c219f5d860ab4d7d264982c1f4404d33619c80dec8411350bb965b19d709"; - sha512.doc = "f83c9cc0701c63dbd5d3b7dd6038e1bb2c427e6edaca05b814778592587b066af3c4f7f12646f7b2ff7cc1c2ab8d2ffd99480dbfe72e50c9bce907e8e2d4c509"; - sha512.source = "a44b0ba4ef7b6328d6d307eca25c34d494000a238c69fec3686a55057ff56ae1ada7cacc763ff1cd26aaa83962257442060fbd795c76d61f92761bd66be81378"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -forarray = { - revision = 15878; - shortdesc = "Using array structures in LaTeX"; - stripPrefix = 0; - sha512.run = "f818d0899fcba2d61ad119698d3633a28d5300098a4bd56a82b7b1c9cfc12c47a9457efed7cbdf8aee3ba9ba4143eefbdd54bc995c84c9bbe99dd5717030bef5"; - sha512.doc = "e292418f60b290bf0567ea70169d66557a8408b2933221e0658d6d8e807b6495258a6ea33d65d14e13129ff8e58dc9cb50115459b014ec00e0b084f3d3fd55fd"; - sha512.source = "4a9574868753faa19d0e80bd08c524445a015bcafe241a85d59832fb308981d12dd133fa64e65804ac5c3d86617046f06a17a4667e8cb382676dfbadd6f012a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -foreign = { - revision = 27819; - shortdesc = "Systematic treatment of 'foreign' words in documents"; - stripPrefix = 0; - sha512.run = "e886be0cbbb64b11b6c54d6b62d6b38db1bb7e65b7a3a9cc951ad71d4cc1a93c323d8a1e17ba863daa6535c747c9801b06bc4d3c664bfb8da38518a9c93d45b0"; - sha512.doc = "d3804dd1b83ba173e4098696656c814629ff099699f332c3b81136c4519bd577aaabd4d2601893f88a58009f00e8c8ba44fcf2c4a3b72ce90af4d4febb510ec6"; - sha512.source = "d91bd89508318df931629678cdd0415da8baed9efcb55f965d71e26a61db705acc6abe14c6f7c17b61f54e32ae123ecd48cd018920b1f43626559e2b0b4a3c16"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -forest = { - revision = 57398; - shortdesc = "Drawing (linguistic) trees"; - stripPrefix = 0; - deps = [ - "elocalloc" - "environ" - "etoolbox" - "inlinedef" - "l3packages" - "pgf" - "pgfopts" - ]; - sha512.run = "edc3341b84e7e89fba3bb76004562c0bc889f944ed33474ba9cf5ed5e63a690202e851a30f44158caa8351b874b8e91659bd91c50d59ec43de9460869e4213f1"; - sha512.doc = "fdaec77023176fc2f7510a9e3b4dcc587898e1f96886340222f932c0d93b1002ad35fba8a38a036f713e41814f3dc6b3f75a5657ae485b15ffea43089895bcae"; - sha512.source = "45f912d17d29568e6ee267814d63bc14c20bb0d91c62b39c21301dd611c50db3b5f7de5f16b519da0f2b4d15609727144c34b16a620abb85114a42344cdaf24f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.5"; -}; -forest-quickstart = { - revision = 55688; - shortdesc = "Quickstart Guide for Linguists package \"forest\""; - stripPrefix = 0; - sha512.run = "52e77fa1a6aca02eb15838d7c04e37744cb4f37f0bb078fa571c1309244fc329d92b553f3e7c62f574561929b5e4964b71cd2cca3d17d4f9d13f9bdb9b0ab8b5"; - sha512.doc = "974a0d0e5a5e7e640e4e18cc5eb59b5a10efa7c5ab4f81e2915e9bbea30bcd68323cf95c62891ce1711d822336e5ee054735761a474d186e3c9f11fd4dcf6f9a"; - license = [ "fdl13Only" ]; -}; -forloop = { - revision = 67017; - shortdesc = "Iteration in LaTeX"; - stripPrefix = 0; - sha512.run = "e4cf4d9fdf01b753b40d4fb2c5edac94756ccf60a7e0b1bf0da8b5b0c433eff5669858fcc35096967f9a53e6a365880e6677956ebb86764cd68ba3093fa4be91"; - sha512.doc = "7315a8e90a83bbb73cb82525fec32c750d97f62fadcf1cd1faa816aeb2c54b5183c8fe659a19f213764979d495d7774df7aab7c950fa9886c6911e526712f0ff"; - sha512.source = "fe9aa2c7836a17debbfc392b44bcccb09de5b978224b2ec81e17daa07eef3eaf508206f1d54cc9dc7897122ceffb9d1b8d5957c26f2b4bcaed4ee93ebe3436df"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "3.0"; -}; -formal-grammar = { - revision = 61955; - shortdesc = "Typeset formal grammars"; - stripPrefix = 0; - sha512.run = "9a14266ff45b4d153000f27694869ce0b3a159d646ec0343726e4510ed8444d9e1ea08209f64ac2b88d8875e860880d048fbc67c5dd5292e60c02521f89de3be"; - sha512.doc = "48d80287ee514f4a846e45b3c0af655644817a3a8dfd2e95e7955fcf4866cb15d5b771e73076cd8cb6717d2d70bfd615e2b613ba58e79380905d3cbf23beeb9a"; - sha512.source = "55c30bdefed19d9a794cccef0a437cac4fcc8d36b62f3fed1a8fee4c8ee68414fcbb5bf14203eb6510d4be32058388adc4829be1572aa9fc44915bfd362f67ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -formation-latex-ul = { - revision = 70516; - shortdesc = "Introductory LaTeX course in French"; - stripPrefix = 0; - sha512.run = "f5f29f4a61b1c7145d03985079bdb3fb26a4a627a6f839b3c9020569388abacf501e9a285d29de66e7e3d6287d255c5549aa389c5fe42fe0093315b01bf963ab"; - sha512.doc = "2a64b940b37d3c460db5c31434a650cbe5d61d361ecb6d3ced250c65a4d817eff324fd296c137fb26a144fab77cdb2c93132bbab11a3f50f3cd0acff87812178"; - sha512.source = "d2c09f1700193814485fd25ef4a119875821a39a54a52429ef2f3889d276a9a50d74cab2df73e77c4ee62d96a413a5a8b488e216f9f11e5d6410fc0337662156"; - license = [ "cc-by-40" ]; - version = "2024.03"; -}; -formlett = { - revision = 21480; - shortdesc = "Letters to multiple recipients"; - stripPrefix = 0; - sha512.run = "9d984435565a9354d03f7ef1307d543e3a0bd3a8d398f6dec426f7ae16fe3c6b20e60cfb5daeca7be092427606b5a5886a31dc05d023d0f26d61aa1c07be4b8a"; - sha512.doc = "8eee17c77620f48319e862f2e7d8ae4b979c84250dd17f33cae9db52b1f219f2f86c690969a783648ee3979f24ef58e410cee47afcb12bcd26e4278af4625c6c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.3"; -}; -forms16be = { - revision = 51305; - shortdesc = "Initialize form properties using big-endian encoding"; - stripPrefix = 0; - sha512.run = "9d8b0c7aa2314c81afe09cdd9ba3455e3ff7e3000fa9de0e99da935b282c3d32bc60aa7f97a27450ce999ff101b606fadae3dbb4965cbfc1d4a8ca5c29eb719e"; - sha512.doc = "52bedc12e5ad33ac78c906f9d60284ed079b0f6d66e578f826c946c28de3996c70da0b11284e774ad56196875b3bd166962eeead9282f3d71f6c6a0d4a8cba68"; - sha512.source = "19e3efc0f73c919c7e74eaabc4b7f9b70be4dc2776b22719eec4f373e180f3ff736ac3ddc26209acfc9f9f9de9c594467cb6f67899f21f563386a44ff58c9135"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3"; -}; -formular = { - revision = 15878; - shortdesc = "Create forms containing field for manual entry"; - stripPrefix = 0; - sha512.run = "0be09e33fc3cf97552dc9e960979447de61c53bea46205a52b37094f7ce39f10309f559dc99c0037392d4924bb688e27bc8d26e5f6fc69dfbc3d3c41736223ab"; - sha512.doc = "09550cdf735f340a13c9104b86b37dfca67e39c277ec9f98bab08754f393368bea8379019c402662b7e7df351636e44814bb45c0970cb24db10bf3efdd9dd7c7"; - sha512.source = "12a7c774c2b6638d610c3277246ced4c8946f0393527ecd0da101481b1b85d1418537019962f86aa8b7657a0159f7c210acb3eea1386e8a528a09428619f0b6f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -forum = { - revision = 64566; - shortdesc = "Forum fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map forum.map" - ]; - sha512.run = "17336de3385fe31437577e541a63fe10a9ff6f972e02776448a2012337499633eb118d86f7c1995cfbfd5b84360370c614a3687b18880e24a7e4ce06c1874117"; - sha512.doc = "6598777d072ce157440923c767ec77f710ef38bfb019b7134d0ef8ee216d1a66af185a63a54a6af0c17d537a4027c7fa322ebdad07466787e400b6ff4fd77d99"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -fouridx = { - revision = 32214; - shortdesc = "Left sub- and superscripts in maths mode"; - stripPrefix = 0; - sha512.run = "01a2cc941482972cb8ca3f5402bef75f53d5e7db2b42f8bdf614c34faab3805c3548d3786c3e7cd9d8d8f7691cd5e8e71e056ad8afc24d52444c6969c11eaa14"; - sha512.doc = "8bc55b8e191b83ea42e228b47621780f4aaeec65248f5b3e9aad94443eeba08b1bf1bf44b7cf252f66466e5b0170260ad202c13abf2d76d4576833224212ae44"; - sha512.source = "c29e1c93e31da33a3ba3914ea2992a53b52bc18a4da0d20cdfec712037f98058be5113dc65d731253aff8c4e1b0fcac4afe3da36b972f1fb23ce45a795c546a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.00"; -}; -fourier = { - revision = 61937; - shortdesc = "Using Utopia fonts in LaTeX documents"; - stripPrefix = 0; - fontMaps = [ - "Map fourier-utopia-expert.map" - "Map fourier.map" - ]; - sha512.run = "127699baefe3be6cf18d50da60d162ad0daa8794797b2200d91d11f290de4f209f2d6097283e9340fb49f20810bac7fb376e014e419994444a6611718670c301"; - sha512.doc = "7f6ac2665a52e2bf4fd4769629e00ac2192c68628784e3bb9bc5cf4f9f4c99e8e46485344e7a1019182be0af086e2b5b0ed557650b1d02ed8a9f6e2dd075d59e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -fouriernc = { - revision = 29646; - shortdesc = "Use New Century Schoolbook text with Fourier maths fonts"; - stripPrefix = 0; - sha512.run = "904b464fb9066100512cfd8a8998bb089113b443e2df1fb77100f9b5a26d48a5b3512931c00292d19764eb4f068f207eb38dab78798f217f2533a65229411df9"; - sha512.doc = "039ce79d06bd1fb55b257f1c65c53412b15c26d4eafb9d3abe9bb7a7fa836c8b545718f70d935f1449fa235f33d07c81ad8f228608de20ffdfa99b9f532e059d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fp = { - revision = 49719; - shortdesc = "Fixed point arithmetic"; - stripPrefix = 0; - sha512.run = "27e60a78da80caf0e50d1fc83d227d19982e30950650845df710949f4d88db67dad96212331182561c43d37cdeabd3b68f9af55763f30175ab27a6b5f089870e"; - sha512.doc = "79b62424943f725ffc6c1698cadb9ba2fa6d9f0694741a951bbed23c43f870b930d966f110bbe722c17249c7211f08a3a95a5ce7e9da69b7487aec37e99e5152"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1d"; -}; -fpl = { - revision = 54512; - shortdesc = "SC and OsF fonts for URW Palladio L"; - stripPrefix = 0; - sha512.run = "9c8ca7ebe7124afec8ba3f4ba4fc27c0a54ab460e53afeab599dcc619f81e5f8ad744a3cd68df33cb6ce456d0db0fafe7ee04d585dbc3fc123e5758a1242cef7"; - sha512.doc = "7b951310a10295bb453eed81ae668f042262094971dcd48c83ab721220094b3a62b79b5090002cc8a7a1fa12b4e75157fd8ead7c4deed8fa1d3629cc6746e8d8"; - sha512.source = "64da822f5b40bb6abfa33d19bec50d8e002452a710d0d6ba3c5e66097e9a33f6718524471fdc716ecb951fcb2ad82659288a08ef85b72229ba40297fc33f7727"; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; - version = "1.003"; -}; -fragmaster = { - revision = 26313; - shortdesc = "Using psfrag with pdfLaTeX"; - sha512.run = "dc5d80aa4bab7a0a66258face6cf8222d03b12ea492f7cf568ef815a6d5950a8a2b36c7403ab466141f49cb8faedfbb33146820b88da17d8b8fa18a2b16235e4"; - sha512.doc = "61f0bd7dab46bfb91b634006217f01648007cbce3c9187b0811a5cc1755ec19654da94b47866ad9873fd57629f1561d1cc46bf3a4d62db618502aa0e67500637"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -fragmaster.binfiles = [ - "fragmaster" -]; -fragments = { - revision = 15878; - shortdesc = "Fragments of LaTeX code"; - stripPrefix = 0; - sha512.run = "adab94e7cc71c6ed2d881d13254793df16eaa08d1e37e4d3f0344e7a56cf08a4ffdca784871e8939f5db8e868b7166846843492ced0071c9dfbf56e39d20ec0e"; - sha512.doc = "dcf795392d989fdea695512c8f7011f783ea9091bfcc238ad296b0cdf1775bcf631c3097ede09a138117e39c7fa71da7eb355878c8389bdab2deb76a319102e1"; - hasRunfiles = true; - license = [ "free" ]; -}; -frame = { - revision = 18312; - shortdesc = "Framed boxes for Plain TeX"; - stripPrefix = 0; - sha512.run = "b66df0a91a8605aaeef2452236b5169cd363689a40f4a35ab9006ac18c21d4ae2a070407f84beff7de0be246f2f1e55c8b06f234921c4d7153fea9a7f2df1679"; - sha512.doc = "b61a3dfbc23031a39bbe01788f0f1d51750a3aa9132671917ed8d14c57453d588c75f8cd54beac9ac120f26b09fead55b871d53e918a735ee172f1603e4cd1ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -framed = { - revision = 26789; - shortdesc = "Framed or shaded regions that can break across pages"; - stripPrefix = 0; - sha512.run = "06f0da36c24ba42959b2176066d3e95f23dfed41753f4e4b07c1f92c4789e68d1b246c61cbdeacbb9c00b6eb990ea2b3ec75dff8ac57845102a867dfdf2c72c7"; - sha512.doc = "1f48ac19f74f5003df88700ff85c072c8a655d4623b82bc3b7c6570a548c0a7b7e97fe292f8557a72188c0047fc28e280bc3ab65f58559804fa78e89317fd67e"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.96"; -}; -francais-bst = { - revision = 69866; - shortdesc = "Bibliographies conforming to French typographic standards"; - stripPrefix = 0; - sha512.run = "02581d45d6d205f0251c216435e068a44b7733ca23dd8f47df119a7aaf6db8efd9eef892e71219219713ab8031a77c373826c8b259e5c7f4f54f6b6edb2d8f5c"; - sha512.doc = "1f4a474fa1b953e9809315509c664fba06490dcef123ff8d1de32f05831fccafe45788a8754bcc70d6df687a1b75645d6f36ccfbe56958166e51a471e6c703bf"; - sha512.source = "3125847740194c77fd502d723fccdcc69e5ef93a1997ae46f1dac1b5a7b2a2978fe8a8f55346b67f2bc5b5c442f562a4ec3dd39466663750c7af7bfbd17f216e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0a"; -}; -frankenstein = { - revision = 15878; - shortdesc = "A collection of LaTeX packages"; - stripPrefix = 0; - sha512.run = "1d94962185391dc1fa9edcadd67a60d9a4b59592442ffdd45badea6279db8dea101b418ab3e03284e6e88c247fd213887f06e72fb6c4a002a66acaee82d8d4bf"; - sha512.doc = "8d8a404aa0a61fb76104bc57e1c2b837ddf68516c4d4fdc1af0a84425943f4e23a4f660b28b02e088db8849090e3734915ef7e0216f578a5199cf12115c498cd"; - sha512.source = "8481205c937e58fc0b46eb25e4f7c8b28becc7ebf2529ab784f0bbb7292dc21faa9ebd1ef3be2a98950f1d2570b23eb13f7d6e134b8c8c5eea25e81c0e6c6eb5"; - hasRunfiles = true; - license = [ "free" ]; -}; -frcursive = { - revision = 24559; - shortdesc = "French cursive hand fonts"; - stripPrefix = 0; - fontMaps = [ - "Map frcursive.map" - ]; - sha512.run = "5ac038493648ad14626e2a015c7dbf96a41257ab1d1086f9e79b0128df2c85af1a279e021e52c722636f8647364791bcf7580cccc1d80d60084f5a9a55a23317"; - sha512.doc = "eb0559574af52a711f61ab84cbda996c7cf4b2314b4d5faaa18824ae3396f041b7a5948151b2b5cffae6675bbe09c2e4358b81e9ad7792e5ece8a2912d7ff030"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -frederika2016 = { - revision = 42157; - shortdesc = "An OpenType Greek calligraphy font"; - stripPrefix = 0; - sha512.run = "b7b271af72364e0d2d00ac499bc1e419534d479d27fb424b7046373323354c47da29b888f0d765e3ff4725333ab3d407cd21a064bc4d063adf890de75aa49e3a"; - sha512.doc = "e205744d689113870fce9cf791f089ccb59cb6fa326c811f34db7183588df3de9b946cddba2a02128a9b88490e9326bea6563fa0fd9a3cdc76467555b7b8d198"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.000_2016_initial_release"; -}; -freealign = { - revision = 69267; - shortdesc = "Align math formulas in different lines"; - stripPrefix = 0; - sha512.run = "ca74fc018fe0162cbc403c32efa1101edc215bdfcb9e5432c8d395cdad4f26550df6447b7cef9ffb103863052886b608c89ea5ad56a8a909822e7fc49f3241b2"; - sha512.doc = "ea7ea3cf64373fb06372d4452d3b66654813f52e221fd1a002c5b95c63604d0aa3b3a21ca6dc70e406b51e18628bd6ce55a74b1e2562b9140811f4d860cef91d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024A"; -}; -frege = { - revision = 27417; - shortdesc = "Typeset fregean Begriffsschrift"; - stripPrefix = 0; - sha512.run = "39d359f01256f2399cd9226744aa9735543d5c9eb26104855bb52efaf51b8c720cb85e5be08241d72d3b2e1c2deb9cc7a10dd90ffca789ae91b6ea6b7cffb879"; - sha512.doc = "28c5cb420f25ed57a03f3914ce2286732ab8e06cbb0b8446ab3112ccb79b34814762becb7ac7457593e1b5b1579613a76a8b21fe2c43ac9f08175495ea87bd1c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.3"; -}; -frenchmath = { - revision = 70163; - shortdesc = "Typesetting mathematics according to French rules"; - stripPrefix = 0; - sha512.run = "dc8bfa123818c5e3ae96194158cccee72c29bae0b59dac01014750d1907039eed6ef3f24f08a32f08f15320c28e03bac3a9f052010e4609108bb5b4a4ff97397"; - sha512.doc = "1a1146f868e4d68014b080462cfce94f0f8362d23ccd42fe2a16fc526834850939aa10bc60dc65e5a66c35d40632f7c7b1fc607548b966424ebcda59104264bf"; - sha512.source = "9a3c55e4d175635953917751c57b9f762a20046f1967c47a022703249a0fdedae4264810b16bc4188d6b19ec3836835e2d911c78fa7769bc1701b906b8898f65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.10"; -}; -frimurer = { - revision = 56704; - shortdesc = "Access to the 'frimurer' cipher for use with LaTeX"; - stripPrefix = 0; - sha512.run = "81057096f64d8ed53fb8afb9bd72eac6538f5babdcc054f422c7d6d0fa73b88459d250ed56b1666ec8d6c936b52102a9a1988d04ccc2efe76761e945d9027145"; - sha512.doc = "d2c8dd345fed5935fe2e329ebfe7c2e9a5c836f3af5d52605e35ce32ebf51cee529c182505db8eaec7772476f758bc5905a8b57cad5ebd162732801c2cf6d352"; - sha512.source = "a0fc0076cb4beaf081f21ca474ee287cfcfac07c889907d690093ff7b188214875766746bfade8f7de9182e5c32c7bdf912b71336f078bee120b042615056e46"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1"; -}; -frletter = { - revision = 15878; - shortdesc = "Typeset letters in the French style"; - stripPrefix = 0; - sha512.run = "5f6c61585ab0626931cf7f19d18138ec70572f3531f36cf94eecd82d93855a2ec8ed2ed0146971e035f8b5119df7c602c6279a9976e024ac85869953448d51de"; - sha512.doc = "36fbbc422eed8e577e054067e7b442cc84b640fcbd0706e3d8cb503884a5208e0a5bbe0c40b67cb5b495bcdd0ba7a78855338588757e5a9d26dce21f9bedcf3e"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -frontespizio = { - revision = 24054; - shortdesc = "Create a frontispiece for Italian theses"; - stripPrefix = 0; - sha512.run = "6045214cc6a8325d8c828c2591fb43995f098803b031adf50bf8b4dddfa0047ce110dd25e5db71b068376893b7ee83a70806713a83b90a26c4d1c8553e4f00f2"; - sha512.doc = "beb8cec7ff51ff9b85e2a650bd7931070c126ea3b126051eb63194e8a071f6dd92d0014953afd85b0e73095208fdcefbf202d9c0ac22003f71d7f7a72f4a4034"; - sha512.source = "690c42ad3b6db68c8d4305fd9c402126013a26a28049f5cdbaccc455effacf9bbf86ba77d91c518d88b72e48930939389ec33620e8adf06eb20762606ad53daf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4a"; -}; -froufrou = { - revision = 67201; - shortdesc = "Fancy section separators"; - stripPrefix = 0; - sha512.run = "06c13998e051544b8fad8c65dad787b670beed1ec177262d3076b77d805423196b1b9092c0c2acf383450ebfefc4e670406dd7ab4413217c492759335a2d8310"; - sha512.doc = "fd49cc43d8479aa952b68b42bdc58a1e6256048027eed2d50ee80d2312f375956d6936f91b7a1d0d6ea2cdf5414b09f987e4bbd0f7ba279ecaccd8cfc9f6dd48"; - sha512.source = "bab0baff37c117b842d341045b3bc01ca9722f92c5b0b18c8e777dcbd06a8e6bb8a13432f44b561ef5857a8f8538e2ef47a9bc5a1f012addaa2accc1cffe971a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.0"; -}; -frpseudocode = { - revision = 56088; - shortdesc = "French translation for the algorithmicx package"; - stripPrefix = 0; - sha512.run = "f8807f696b69f5ad8b08ee24c210c084e11652d8f00b996e48f5e08c894e991b0f2cb288ac72e6b45208add3185a3e14fcfb432d8b2d2844359f54811859cb07"; - sha512.doc = "6c22157462f55d2c19a8da146558556eef0e28ed7f79c5231b282ad218b041d1d850ffd24c8f06c914ae5d9efd04d442061598f6f427ffe9393cb2ff1a4324ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.0"; -}; -ftc-notebook = { - revision = 50043; - shortdesc = "Typeset FIRST Tech Challenge (FTC) notebooks"; - stripPrefix = 0; - sha512.run = "9dca1b2e09293df3a12df85f843e1701e1ac428f4caccbc196f43cfd02517cbc98908fe95fcd3e26685cd95dc8565aa5e29ad79f7d42ec5cdeca0346db6a759a"; - sha512.doc = "36022ae2df65e45e2fdd2a01e2c95502c3acee0e8fb0b738ef06b313f47cf8798df30a41a6f5e7b4021a556ebdfd17f84b4a79d54d2b6e88c8044f0a67a87f8e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ftcap = { - revision = 17275; - shortdesc = "Allows \caption at the beginning of a table-environment"; - stripPrefix = 0; - sha512.run = "1287e0bd63fc92ef3e3c77ae3a6113cfcca38dd63f4a90948baadd2a365c07b38631d916230baeaf550b1aeff07f9cac3a26a07301838716d8d70fcf0843953e"; - sha512.doc = "afa317f10c600c88bb96fccb0383b291e1fb7c11abba5f6bd1efb05e7d2ce117c4ece7bdf9a9ea16c71c116143aa65ba26cf7c2e1dba68f225b655d122169001"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.4"; -}; -ftnxtra = { - revision = 29652; - shortdesc = "Extend the applicability of the \footnote command"; - stripPrefix = 0; - sha512.run = "df8395b996f96ed72505ef1ef7f0e8e6101d4b26059831b227344023514d377eb189961a240e83ba42ac4ef7e8086b8ffcda347290014fbb1cf1531371c20eff"; - sha512.doc = "fc16ff992e3339480a4154169665be49f51e56f361d0b1f97842c555be59485fd7edf3cf815e32642826224e188c5377fdb2ab36746cdaef7f552399a4b7119c"; - sha512.source = "87e580467312c6198fd7106b6fdfdac994c5f9fae3d131b793da60ebc9d852141ed6630aa0d4273e50e7311b6e10499a3e4e2cf141ff197d5ed72822f0c15be6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -fullblck = { - revision = 25434; - shortdesc = "Left-blocking for letter class"; - stripPrefix = 0; - sha512.run = "b298f55ca3afe8819e44704329c06be2867b00c1a2a399b5db8de8477751f9945bce1041450c7e91559eeee65c9bae5e76b57469c956239c9752341b820047c7"; - sha512.doc = "9da7587195a077f8218abc6a7df98bd15369650e00ab3893b6cd70a268bf34431b8c2c49b3415269bf6b8d1ddf51a8e23e76ae87667309f8466ad69da87f05a0"; - sha512.source = "2ccd2da9f1924a1547f4a6b870ce150e6140abc9c1984f1a951a59146944d50c6f8e115ccfe79232f941dbec756e26d460037d92af191eee644bb2dcbe986c6e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -fullminipage = { - revision = 34545; - shortdesc = "Minipage spanning a complete page"; - stripPrefix = 0; - sha512.run = "7ca92205caae688761ddeadfc0a37173b37e285adf3c1f54c4b2994a0c82c90713a255d5068784e3f3866a7f1af603906513a561632b2d09c68477e497330d2e"; - sha512.doc = "111145d2f1c81f74692df8ef397d36c4c0d7b6c89efe0250571c0153b22b9d562df0dcefa90e3be96f8eb518af75ee8a23d42ad898e23668265dcf39d3c678ff"; - sha512.source = "d95dabc4565fd48b8a6e8b35777fd456934a3cba8bac34629ee6ff4847cd1578f70a06e6b87a9b76d26e341a502d1c284e4e155aaea9c92a12dbf6d0043d8249"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.1.1"; -}; -fullwidth = { - revision = 24684; - shortdesc = "Adjust margins of text block"; - stripPrefix = 0; - sha512.run = "c9b9c37991365346804b51aae7b4645e5b63eb6a3c5c60a953cbe0583de0960e8a9d6cc99dc7526944415764869308d778fb85e7cde821792bec940f6c19072b"; - sha512.doc = "55892645ce01b31dd0285749091b8fbcab0061a7190f7a426379f6d3ea8bece8a5c054cad8b53efe1bb69a68fd3e49c3e8c8afb94954ff4ba8838142ab4576b8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -functan = { - revision = 15878; - shortdesc = "Macros for functional analysis and PDE theory"; - stripPrefix = 0; - sha512.run = "0899d9a3c30e701d5ba6a0275521a40a3cf2df680e9d4a95624730184fb370ae2537bec1becc3b185647a988af5fa8e4bda5198f42cbe68cbc848d8915f1c9da"; - sha512.doc = "c824825fd424316701e25fc573a431aa5967af0d520b631489b20608459dcd0f7abfac277c5b1e7b60e0a2888e0b37d787755acd6f671e48d4911969e3058692"; - sha512.source = "f83465845900ae5bc872fceead5a83fa972c9fa8b858606007237251ee2dd77cbd095376194aca0356e5c8be53fe653a88f5a10c1f73effa8201b3adf55c5a17"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -functional = { - revision = 69929; - shortdesc = "Provide an intuitive functional programming interface for LaTeX2"; - stripPrefix = 0; - sha512.run = "efd3de1e1944193caa18069a1478e19bf602f1110c880ea14d9d7af146d4ef0da5c84078afcda4a26a326f01978240f6c011212424f029c491148317a9b60e43"; - sha512.doc = "1943c1451b357fe05d2586651cf52e8593927847ad3f88ab21d89626c8dba63e0bdac8e702dc79f7a8fc4ea8ea73c7b6fd05e19e57caac28adf5f1d53acbafb1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024A"; -}; -fundus-calligra = { - revision = 26018; - shortdesc = "Support for the calligra font in LaTeX documents"; - stripPrefix = 0; - sha512.run = "a999f372ef266e66a199935a0783d99293141aa08586a38d65a3748c1a239eca7b0faa74d537085852e79520343ca937943b30ce38820fdc925d75b1a334aabd"; - sha512.doc = "93aa54f12ade2eab798bd84596ec3b366db0a15eb05b5279261af8bc13bc1ce782077de36465e8e29d11ea1b89456ab207c33ab907e5c31af95e63d5d897da88"; - sha512.source = "bc5cfc694592c7a0fb469f752a6ec854d11d9f69588fa6e42390080e88cca3da2fbe888b826ae7a3c07505bc418129237faa791dbf4f3dd9a31cb8e06ad1a9af"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.2"; -}; -fundus-cyr = { - revision = 26019; - shortdesc = "Support for Washington University Cyrillic fonts"; - stripPrefix = 0; - sha512.run = "de84ebbe6e70f61bf9765b9368df95fa5ae607a8d6e1c5535240e8665bb097c6958956d1b19ccf12a2a510672675c7ffa08ab98bd80b6ae2973fbe65d0e8d343"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -fundus-sueterlin = { - revision = 26030; - shortdesc = "Sutterlin"; - stripPrefix = 0; - sha512.run = "b15a1fa2ee3272f25a616234a335d0bd5c8ac810724ecf453e172d2b68293b55f01f3e57acf81c17721cd3f489b35cde077d5456b78afacc589853224f1bce94"; - sha512.doc = "7162188682c9129e1788104fe94aae2a70607e276eeec4367ae60ff9e50d26aa88a73998028b99ee42627aa27e8868ed2fe72063db2e033798b09ff0b7a13477"; - sha512.source = "59f5e1e7f338445d3e8430c5c7cf69de9499a659ad5f32566c26166bc2997eab82964919c50aa15311d19c80a14a1a7bc4380e985f382d4ee89c387faef38b37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -fvextra = { - revision = 69001; - shortdesc = "Extensions and patches for fancyvrb"; - stripPrefix = 0; - sha512.run = "42c77e74ff16a7aee9f79f8a6f08309742c1168138ccec2a085baad525422119bff6c10ee323e29aa45509789af188eead92379c5bd0d30c5e4a9ae557a0d991"; - sha512.doc = "27ee96621793f4da2cf719c49edeb3cb272fee6b31b13cfd86653ceb027c84dfaa1885b82510de22e0ca1e365ed783b745190809482a9f20796617e3fbc059c2"; - sha512.source = "49252913e7683100f1f12c5bf85420b6de4832d68af740fd8bc0f7fd1a18aa9e39005f6217c89c4a532aa72250bf0dbfa6de7f5991dc48fd6fc8b91e84606a5b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6.1"; -}; -fwlw = { - revision = 29803; - shortdesc = "Get first and last words of a page"; - stripPrefix = 0; - sha512.run = "ac2c981bcc4da92a7f91c3ac17d66c4e0e7c94ff1bdb3bf3c7f6a4eef19fad1ecbbc6048a5c74627126c7e1190ee18c2c9373e80d52130a2d272c58ef70de6fc"; - sha512.doc = "bb55ca044aafb5b11b89b3c817066c4fb20facba8812667398ecf945bd8ed4b11bec2dfd21455db9cfa5e81e5f865655a3e6f4d3724bf40e47ad1db708896902"; - hasRunfiles = true; - license = [ "free" ]; -}; -g-brief = { - revision = 50415; - shortdesc = "Letter document class"; - stripPrefix = 0; - sha512.run = "6c0a8e653cab5f67a85d25e18b98371323b3dd09365f6a3d1b47eee409b233db4290f6e6de70128f5b45facfc7771475671990bb2c79a1718c74972bfba78070"; - sha512.doc = "147d30be05a9224e141d9dc23a81750d0c43bf590d6e1dcb3e92fda6c668031522ef410904e5c7621c9b98879d6809fe604cf47de7f24891bc7e15c7be5ad05c"; - sha512.source = "447a25d983f71d109bc747ee8ab9e120a0b7c698a9238ea5363d4d826383af5587f78f21c442d4e1d999eaf4cbfee813063f7547e786df962866e57c55673c8c"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "4.0.3"; -}; -gaceta = { - revision = 15878; - shortdesc = "A class to typeset La Gaceta de la RSME"; - stripPrefix = 0; - sha512.run = "54c42cde3613f1fc28ba0a675281e64d2596e8f3c7831e1b1611c34fed1a82c01da2d6eb98058d5776ffc625d04e62359f63819307d04c6296705de74bfcef66"; - sha512.doc = "594fb3b44492018c6777e014ccc4784813784d3e282cffec0f6b6410a59f088ee30c8113a714fa41369eb795b35a1c615f3069a43697d0bed887123a44c02bf7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.06"; -}; -galois = { - revision = 15878; - shortdesc = "Typeset Galois connections"; - stripPrefix = 0; - sha512.run = "0c864940c2a47ad82f031868c1933679f9ee0e5ab01e98386433311a4230a77c7a5d41016619fbf7bb1957fecc259bd092d7a0894eedef91143a0d85e68a6978"; - sha512.doc = "7c71fe703efe235b3d1cf3298c99f2ba7dfbdc8d7c20861e8738070ef03b9671b1a4f6df40b2238d4b7cf9e765a1cfdc6210ea63ad06dfc60e0ac7a101735315"; - sha512.source = "f1f62a005edc9b6b5c1b294aedbfe00cff61c48f22d2fd0b90d76b1c6144fd9c8b885890e4a6c6e64e054ceb67b851c6fe3d9f2f1baf2801f070f0bd269d4925"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -gamebook = { - revision = 24714; - shortdesc = "Typeset gamebooks and other interactive novels"; - stripPrefix = 0; - sha512.run = "4af22bc285bac3f368778dae5c91cf6a1999748a6dfa5fba96e166ed320e124c33f2b6d6bee16ad8d00d0f8067b24bb3567a1aba849b74a6b02fed3bb85dbc0a"; - sha512.doc = "58493c9b39343846913263f53b3bfe0fd89e4adb4154580d1bb0ff5d32b5b91ddc75511a0241fa3b98faef8b2d9d7c1846aca486e0c7262f8b3ea7a6bfddc619"; - sha512.source = "793f5cb23ef53b3d24d10ac5d52cf1e8bf90438571e23b5171c778ac720fb2c52a03a90e1f83f353df0b5410e94b5551d0855284df72c34a0f212842a3f96c41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -gamebooklib = { - revision = 67772; - shortdesc = "Macros for setting numbered entries in shuffled order"; - stripPrefix = 0; - sha512.run = "b100e95290634e0697bc420259b287650c8bc436a950749c8f60955b4bb1f622f692730640c8b882400d7f1ac7a9cd847cfeacbd5310a5bd57f3925f21766159"; - sha512.doc = "f34592d3d47f5cff749fc0bc44b4de233a13bb962674cb22e06dbabadfedfc303049c73b18cc0807e0f1827ab583732a0019345991b3bedd6daa1f3e84c40108"; - sha512.source = "0c97580b9451a154838e8e32a67f3dd2af36d1a9e3a464d0912a0ec2e6a1338f617855ff49b199cdea21dabb2678b1e99c58dbe2a3ba5c976eebbdd87edd5a20"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -gammas = { - revision = 56403; - shortdesc = "Template for the GAMM Archive for Students"; - stripPrefix = 0; - sha512.run = "8ecc1d5209ee6492e032b30e217dbbd0ae4c1ad9ab5a42e7e042eee63809aa257c8cc5d720f54be5553c8999f78334b8057bdac1134d4788144a3cafade7154e"; - sha512.doc = "62ec08047df846d2e32be9396356fdbdb9eb9c1867079a891bececc1d56275666127d997ddd4ed2c2f73423dc4a2e051586a1b06b516fb77372b04c60a4ca342"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -garamond-libre = { - revision = 64412; - shortdesc = "The Garamond Libre font face"; - stripPrefix = 0; - fontMaps = [ - "Map GaramondLibre.map" - ]; - sha512.run = "2c8a9057bccac0b8187e7e7b38445102e2ee89885595d93eb3dcd88bea4fe18d73786b471812f9a0ba256a6fe16ceb3724902e587b3ce6a98a1461d554182698"; - sha512.doc = "b8a575d15c7020287313aed6fc7f08d4d6d9cc02633527a657db4fd0fe39a25154f7dbbd9d6516ecd4662d08644d803822a19da43348f955f553725558c0dd6a"; - hasRunfiles = true; - license = [ "mit" "lppl13c" ]; - version = "1.4"; -}; -garamond-math = { - revision = 61481; - shortdesc = "An OTF math font matching EB Garamond"; - stripPrefix = 0; - sha512.run = "fcab922fc4faa8468a2d8076664567c8533e95dc6767eabedee5c053bbdbb721890731f0d976a2d6047709f058a4d5e029996a5a5574912d21cb493f2975a76a"; - sha512.doc = "c7c5795e7d9de09a590dbfd7311786027be9dcbe51b1f40284639341953effbb0dfcb331061cad0a8d01df55c52611a8d61a6b62fba701565bb643826ba55734"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -garrigues = { - revision = 15878; - shortdesc = "MetaPost macros for the reproduction of Garrigues' Easter nomogram"; - stripPrefix = 0; - sha512.run = "e1440fcf8eb0ccd3b140649c590c902882a8a5a02d4cc14589ed44193f3a70bf13839e9de9663c500bb6874d6fce34f5a21c07e38a7456738548b6ebf449b258"; - sha512.doc = "0c91f7e1c8fe4910fa7052440edd9afd81c8932e99368219c8a5037bddfa4c8c11037576e9c94721062df9cf7fd5d467389ddcf3aed3e1853be38846c049100f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -garuda-c90 = { - revision = 60832; - shortdesc = "TeX support (from CJK) for the garuda font"; - stripPrefix = 0; - deps = [ - "fonts-tlwg" - ]; - fontMaps = [ - "Map garuda-c90.map" - ]; - sha512.run = "a806538598cae0365968ab20936631a052dc65f9f6056c39197f7b1c7a5aad717a7a8b72ed2a1af347f8ce91f27d7dcd74b758db8f01fc7810a8d658990bcc28"; - sha512.source = "58f62ec8020489b69743c0591129967730f9ad0729f7cca343ab6e6fa6675122a1e37bf73f090cae050cb695a14dbfb3c52346e3c528e660484d2cb576aaca65"; - hasRunfiles = true; -}; -gastex = { - revision = 69877; - shortdesc = "Graphs and Automata Simplified in TeX"; - stripPrefix = 0; - sha512.run = "1716d7e7a0327fbde392a435b783da48382adc8e5751f06730dabe655422b2bedbe6d6ddb589de67d3d15df0b97354bae10aaff81df1795f01e44d6c7f90681d"; - sha512.doc = "417c7ac005a4d754dc5d6082e5453f400aea53f61848efd244e97a3c6449346d2fb77989598113b15d16d81d70a9abaaa06f39ebccb542fdb88265e1dbf170ab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -gates = { - revision = 29803; - shortdesc = "Support for writing modular and customisable code"; - stripPrefix = 0; - sha512.run = "704126d5e113b9718654e5d611d169df17b45ec09f187d86d1c108a331e80939d0266c4473233277e1b465a70775da1ea9576744171209ab45203b4059b96b83"; - sha512.doc = "a9cd7d2c616021d429b299027503fed60e8474774b6d57095371f1afaba68709770857ba09f74e8e5223dcbdd1d9f1f70a0ec81c3801b1a77c3a494336fa86bd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -gatherenum = { - revision = 67201; - shortdesc = "A crossover of align* and enumerate"; - stripPrefix = 0; - sha512.run = "c700375b321db078bc99492ba42c03855a80db6c1661590dba6763d52c65ec7c86a9889a38956a5015b78416d8c7a296efd764d1eaa758891cd8c7f7d4cef8b4"; - sha512.doc = "a1f184ec862cb4d343b4dbb8014faee217a61e1f72418a8472a2a46b6731af4e3e767755f4f367631f40199aafd449aaee9bf409e9358822ed6006eed495d4ad"; - sha512.source = "378a9b33f0b370fdcf8b068e8cb58def5b9c66b7cae4a72cd02d4fee61edb060bac43fd30180c5709b2e7367861430bbad0ebc812fae9520fe72382ead5b0354"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.8"; -}; -gauss = { - revision = 32934; - shortdesc = "A package for Gaussian operations"; - stripPrefix = 0; - sha512.run = "9dd3f7685a8b7bbdfbee1fbe5dcc5d2819091c7c20df7979b1b0fb7971e613e45b6321a18674e88bb0d6222f050f0ab3959b087be70b90b5bfefaeffacc733f9"; - sha512.doc = "50de7e9af2360367de7f7136def2536a82348752656b1c40022d7e13271cfde64e67bcd482c2d208f47b88a30560f8179b7b8706288809b41d023c037147f0c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -gb4e = { - revision = 19216; - shortdesc = "Linguistic tools"; - stripPrefix = 0; - sha512.run = "1ec519ad5f22e6d61d16a0233a73065b45e8628549bfecd109f968b8749c362cd04f358d67e96b1311577f94f6152e7de7a9e3264ffcff5c5769662b52df7e29"; - sha512.doc = "9b8c8e2590a1a515aa84e11a4028aadeff9e4acb7d3ce99b0d21009e17443db3d2feee85d888a333595e144244efbf978239e6dbf48c68a43bd5709d9489c203"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -gbt7714 = { - revision = 64633; - shortdesc = "BibTeX implementation of China's bibliography style standard GB/T 7714-2015"; - stripPrefix = 0; - deps = [ - "bibtex" - "natbib" - "url" - ]; - sha512.run = "f2f869bf4d507ac76ee576f1bb739bc5e5681d3f2cb1db64841f90dfb22a9b18aab04c5722e231280cb94f055ab002ed99fc965bdbb3d2bdeb8d953f704e73b2"; - sha512.doc = "17b79fb795d0b2a0f2c696da83ee1196750c1fef15c77d33353d6742443d43287b5bb96c349be8e58b0df538f4585f45b353234bb100318cbbc6de6f14192da9"; - sha512.source = "0d7e44fdd1106800d2dac2cac49dfe4c9154498837e27880f0193fbc8033f2a74fe5670f79c929ce2216fef216288e5e072f1ccddd23cec85b6265ad569d21d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.5"; -}; -gcard = { - revision = 15878; - shortdesc = "Arrange text on a sheet to fold into a greeting card"; - stripPrefix = 0; - sha512.run = "de462bff229779faa33c546d525e3624f1ed372c09c1b90fa9270928caf0a2604f2bb9d3ef0768de7dd0646202d7a59995b7252c0b83b19eaf777438bd1acc47"; - sha512.doc = "f7fd3c07e053962c88d0a0b8e5899272a3bd9af4cf1731f88a7014773d8f0ecc91fb45e1e59b1a372d8c8977e1dce91c5162558d0245d77a187ac7787a3710ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -gchords = { - revision = 29803; - shortdesc = "Typeset guitar chords"; - stripPrefix = 0; - sha512.run = "7fd655af5446982b450e3eec2b8966f2fc17c11686bb75f516ce0043af651b90e4f88c9cfac133929fbb686fe3f7be6de64d89bda6822f218b691791c9207950"; - sha512.doc = "26818218c9e3142f4bba491e996556b28266953c6b84f1c3de58d60b1bf100d15513fd2898507cf43226eec127942dede647784060668d86bcb22e3fdaee96cd"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.20"; -}; -gcite = { - revision = 15878; - shortdesc = "Citations in a reader-friendly style"; - stripPrefix = 0; - sha512.run = "169d9e96121d80bcbe7580e7ff447e8df252b19dca5b304514a792764344df679e9275b1a552d67070d3f5b0fc41c70a6cf1ce9c90358dd9ab58878643be6015"; - sha512.doc = "d9b50778855efc00ba4d6d6f48891865853b8de8e55c3432140b0ba69767c6c13ab934c2be43b2556a862bbb5413ddccce158ec4130576617a75708919f1ab0c"; - sha512.source = "44e8fdfff2e015a9bb034496454016f8f03e08e2f5b8ca907670447694877a383ca99a5673db107397dba07142e99cf01d9ee59a4a360d6146a389de7d103cb1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -gckanbun = { - revision = 61719; - shortdesc = "Kanbun typesetting for (u)pLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "ccea354895392747e5c84d750ece8f3717a0f9c529fd5b8b7ae2554bbe607b4497b9a8d213c479d5ad11e8ebc40187799ffced6f08f4fefb4e6d3cf223566c98"; - sha512.doc = "4a885440883d615ad20dc083c768c3b64c3cdc627e1daca4008dbf07672ad62e8020a9b14f732d181c4a902adddd49908c4a0e41b3afbe2d68d2f90c5989e78b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2"; -}; -gelasio = { - revision = 66805; - shortdesc = "LaTeX support for the Gelasio family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map gelasio.map" - ]; - sha512.run = "d5ef910eee7b3e26a180c88ae104da77becb4bed3a955938486d6763c2a0dc51e71ab6f9351304894d5e531fab714cf75f6a0cc421d074b3ac86931698582274"; - sha512.doc = "aa49c6e0bebb4c097b78ba11781f7027b783c6280a5fa0e3077f9c1eb20f6b372b3910f5c78b0103afa2429938a94b277bdcacd210afb8bad2bac92f5022ed8a"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -gender = { - revision = 36464; - shortdesc = "Gender neutrality for languages with grammatical gender"; - stripPrefix = 0; - sha512.run = "261d57b05993954b80f82844f590f952fedaa4ade8f89704f2e2b4e2d18441ab5c8adef2ba3dfd81b61bed53150b737ef72964e1faa44ca48e923cfeb5a1bc14"; - sha512.doc = "7c8bf143cb7ae1d22416df88aecf7e004eb02bf199f74f8003aeb9ae3923a3db42f1735650fac8aa908bf220f16ca48b3e4f9dbc312668d87df65149ea674be4"; - sha512.source = "ac76060cc1b8c3bd876ccece1d82127575b956fa1bd3bed63d9d8a927845c8477c903b47be3a6e2d85de06899957d273d981f250cc7d02a12830a8cbfa6f6183"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -gene-logic = { - revision = 15878; - shortdesc = "Typeset logic formulae, etc"; - stripPrefix = 0; - sha512.run = "b7cdc0d653aa8e25d763ca4115fa6fc857ddae35ed835aee6b6a204ba83d01ab91928b00248c40677ba132ef113276912a6b85dfd456d937114a3263a1ef4c7f"; - sha512.doc = "db358777af18e7d2e93dc23084bec0f47270b4cb6c6078382a1eb9ce288aed06a6f55fc30ce728b1312d06f871458fc6b5b697b1073316e8f727b5ee80f99468"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.4"; -}; -genealogy = { - revision = 25112; - shortdesc = "A compilation genealogy font"; - stripPrefix = 0; - sha512.run = "907394cb0ca9b3d339d78595e613236038ea2acce27c4468b7d028d0db7ddf36f7037c4f0bc63d5970e904d0675bcaf057c769239a79f064fa6aa9dae4f2014e"; - sha512.doc = "34c9d737d31626331a18051a5b04584fd896d7cb8ea1814ff2fbf30486ec3578b2bef16155b9c8f2ca645d42f797f3101c799d3422c05f824026e268fa4f94e8"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -genealogy-profiles = { - revision = 69580; - shortdesc = "Genealogical profiles for LaTeX"; - stripPrefix = 0; - sha512.run = "36b0b0107bf8999ce6d2a0ec46b792dcb9cbd5313734e2cdb2879bd7a15d8f70af09fbc831b6183412cb72c44eb6fe3202d00a0dc510e1314ce7115d78be12dd"; - sha512.doc = "52f75186e84f03f21e33bc1b5ca935bddf8f45b348ee5dc93d82506b444cf72a1a51c4a33b0510cccd8e89cd46a74215e6acbeaa5d2f32953ff7ff3629bea5b2"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -genealogytree = { - revision = 66513; - shortdesc = "Pedigree and genealogical tree diagrams"; - stripPrefix = 0; - sha512.run = "603091897c07e0d6643482ee754aa9f0a49ba4e71e3a426c35404f46c6f6fc43a6d24f721023706cf0c03b152ad3153a8322b440a89ee6542edbb8aa71a384f1"; - sha512.doc = "88757eb6be6ade83a5125da7bb7bd0abb3d56367a330607fdea9b05929c8caaa4fad0be79863006e9048daa66aa0ce7ddddd1a2100ae9dfcfc835456c08453f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.0"; -}; -genmpage = { - revision = 15878; - shortdesc = "Generalization of LaTeX's minipages"; - stripPrefix = 0; - sha512.run = "b2618005fc0f00a636e3a307ba1038f8dd39798e2ee2afa4d9169eb45ed4b38a67a57bfb516e9dd8d93ea0210a7fcde21b26c0564b974442e18021d83f905265"; - sha512.doc = "c428886adead6fed52f0d249db34a950b4f22b03770ce1bff0831fca29477ab92b5d83a9719b73aa45aeb5f2067f31afc810b6cdfdd69e709ec5e61a08f45472"; - sha512.source = "563042ab68aaab51d357c957111419012a0edfd27332bf30be0985e8625abce945ca6a6a081e62f6d0ee29b6885a55270553b622bbcda5f369ad61b53d4ea723"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.1"; -}; -gensymb = { - revision = 64740; - shortdesc = "Generic symbols for both text and math mode"; - stripPrefix = 0; - sha512.run = "311de4fa6c68b21cdc8c655a7092d98772398e82bd9790e0bf00898a6575e234da44534635dfdd500eb7815d302a4487162f528452caf373ed11b7994682a43b"; - sha512.doc = "4175231e5b998f26e913374ad20b2718d4c566e5b220bfe4de9f89ffc4422b2aa4c941acc067d392eb43a725d93457b1c10d8568f5ad0eb7c1aecd4fa83e9746"; - sha512.source = "56cc850ce5a2fb0d84b2232f591d3f1e3ed18d1924d365fdb6349237d98ac655b0881febaaed414f4903eeed7889385b4cf985eb3cf72c3fbb37392e8586f848"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -gentium-tug = { - revision = 63470; - shortdesc = "Gentium fonts (in two formats) and support files"; - stripPrefix = 0; - fontMaps = [ - "Map gentium-type1.map" - ]; - sha512.run = "03a32d7926747e42f25daf87ef08f866b9145a7782fd372a4688404951211a3528bcad7ee5e4a6888cd8ede2602930f628141953c840268041edbde2624006ec"; - sha512.doc = "7cef5c563fa13b5b8458e2932be450edd48168da9db9ac45ab16ba608323beb4ea79f8dabf2c38b13b479de9ff3065a0cfa84ff5c259aea95495248e9794ec18"; - sha512.source = "b2743e38fe079ca3d46711fbcf810f4feaa1bf781e35bbe33b62cf45cca3b2ee1ab6da22d61965c440f987f9850e614d3f1691f8aa0d01beb0f56984c31e66f8"; - hasRunfiles = true; - license = [ "ofl" "free" ]; - version = "1.102"; -}; -gentle = { - revision = 15878; - shortdesc = "A Gentle Introduction to TeX"; - stripPrefix = 0; - sha512.run = "b244b249329d1ee622686d2a44d1469ceeed7e2adec5d82a2482e8659266a8224490531e0ed971b56f945b63fd1081f29aded9c43cea78fa8a9aec836301b26b"; - sha512.doc = "fe296c5bc38a1e6d13d2b46dc8081a6658764f7017d0831cfd46dd86082371d6ae095ec3b52b3aaaacc0a57cbcee066b94644a5746391fae4129eebaa246e146"; - license = [ "free" ]; -}; -gentombow = { - revision = 64333; - shortdesc = "Generate Japanese-style crop marks"; - stripPrefix = 0; - sha512.run = "4aa08751c2fc9c6709031d53637e0c2dc734926160f357df53bed6e4c33c4340e33f9dbb92d3ec2bf5dcc7b552c9508622986edc3c30d6fe15cc8334a0773779"; - sha512.doc = "af1d418f108bb050d8380223548d7fd77681e942a1a48aff8b7fb2c7e7a4d79b288e47099382e6ab9218bca78dc5406a57a42de00c2029f080285d6f11183a5c"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -geometry = { - revision = 61719; - shortdesc = "Flexible and complete interface to document dimensions"; - stripPrefix = 0; - deps = [ - "graphics" - "iftex" - ]; - sha512.run = "ed64996404299bd8379197b293baed752ff064e04eec87ffafdfd55cf21c2c48174560eb1c3bcdb0b06190badb9d9cc699aaa7a2ac8a5c537b0c818a423770fc"; - sha512.doc = "a58ab22ae6df349d81b5ddf18a4e9b7dbb5804a497bbaff42acde18ca59fe8a19bfee34293debc23e44c690456e6a1b1d87614fbb85dc6cb3b3b7d330fc866d7"; - sha512.source = "f4e1e8c0f5b8f443c8f5e6ad948cb1736ed944384daec20e9402c871872e86248b3167c72e07fc94fe32ef6ab36c17d2f177135ccf99f68d1c892af0a695bcbf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.9"; -}; -geradwp = { - revision = 63134; - shortdesc = "Document class for the Cahiers du GERAD series"; - stripPrefix = 0; - sha512.run = "b5b4cecbe95f3091348b917d9cafa31a5249bcf0b11b5a0be405d980c3a22d7af6f241af12ff999b5bbdf0aa3aebfff537e8c01fea9bdc904709eb66b3fc78bb"; - sha512.doc = "e12924c6e3437f0d2665bbfd97aa7d88c491a159866a3ec7ffdf9f84298e4bc0ff336487a194b68f0ebfea67dbf415749118328ac1606f02f32193963f6339c9"; - sha512.source = "faf85f46bfe88f5ea1220e69b514f6c026096ca331f53bb19d2ef2f1cc728cf8b9c46d394579bf78ef60d1b75c3164c2c8c204e959d4a298dbbef2f9f2dbe5e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -german = { - revision = 42428; - shortdesc = "Support for German typography"; - stripPrefix = 0; - sha512.run = "6cc469012ca6cb76baf2bbea00d198b97c2694d9388e90d2ded6b27da30f8d56aa2e6742ecabbdd335b7299c0c7476cc5479b59fa94468c9354f35ce18b59732"; - sha512.doc = "b9795ae418790119ca923079221114b9bf608ce2460b810cb39575910c0b173ff445c428a2ce6260bf90a993fb354d2b5c300ba58344d907965b65bb6f2d4ee3"; - sha512.source = "9064ca69c304f86eaaf2530bafe353902de078530f57f39cfcc0a9dc0d5a04ba5329ac9d0e7e10e3ddbbbd380c14b4efd8a5b7a6b0099f2c504563af74469c42"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5e"; -}; -germbib = { - revision = 15878; - shortdesc = "German variants of standard BibTeX styles"; - stripPrefix = 0; - sha512.run = "a7854f834c868ad80bcf986380f19139687eb80309e3aeb9a001d2030c5bca51de617394f920801834df460d05b52878301c6b45a52666984b3ba2d0910c416f"; - sha512.doc = "53dd4fff2fbb7044436f37e8a2baf48877699db4f99b92a701d10c0230439b00b48ee09051839efe4392abdb4335c3998d92d6239802c765bde4aa2df3d34ab6"; - hasRunfiles = true; - license = [ "free" ]; -}; -germkorr = { - revision = 15878; - shortdesc = "Change kerning for German quotation marks"; - stripPrefix = 0; - sha512.run = "6819a79268da2704a3fa6baab74be48ccd591ba998a0b012d323cb0149273deba6298a92629f0d19c19725ef0b41db9dd28adf9bb898c1c637038f9c22ad4b16"; - sha512.doc = "ab5362e069674c2c53709bc776be9fcbcfd3e56226a8fa7b9230c2f4ccb6fb74bba20485362f48130c153d81df838281620a628671c202cd60a52bf8ab5b89cd"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -geschichtsfrkl = { - revision = 42121; - shortdesc = "BibLaTeX style for historians"; - stripPrefix = 0; - sha512.run = "24cad33dfcbdb8ab91a80509771bd130ea6682a14fea5510ea202af73155653471deab91abb43a302b9717c252475db58135ad465f28509adae5d8583bf98e0b"; - sha512.doc = "6d1097dd0047c029100358bd3161f2ca515a09cf9a62b2633d4797059688bd5c30e4eab11c31081faeefacf892415c5d9a4985d20245ea9cf79b4197925ed2e7"; - sha512.source = "28c6a7181bb91d32ddcdbed7dd9824c8a63a351acc39f4c2e60ca507630fc23b0afe62380a64618d882fe742388d5537a435dc0b6738ba8d5288c5f2894a4064"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -getfiledate = { - revision = 16189; - shortdesc = "Find the date of last modification of a file"; - stripPrefix = 0; - sha512.run = "017b3ad95801da2788f2c5040225c6a8a2ac6d005c1d68d9eba0be061dfc9fa6f088a0279a75d25bea8ba380e4a92cfbd9b6a6b812d08cd2f86de097f7974fb7"; - sha512.doc = "490daffa0b0b28c9c02d745d8de50f22395f6ae773e07f6e826a8ddaff0d38f9ee48e822953e9642e46be26084ec2919bcac76c388cb3f42965f1b662e4e43a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -getitems = { - revision = 39365; - shortdesc = "Gathering items from a list-like environment"; - stripPrefix = 0; - sha512.run = "8797c7e70f1c81330b68b6c386116b0caf2c350a2b75724d796f0ab7380a2ea4cb2ae293ac3e6b941887b30faa2b73775c2bfce7c674ee98c4256a23231443b0"; - sha512.doc = "95302dae67f3193dc3d52b4e5724584ee066eee1dbba30b1233faa0c65fc568f932805b18b8054165760a2b655b486e7f3115d3b37be780f8f5a7220f2f924fc"; - sha512.source = "1bc8b4c2b75c5cf43e18a510e5e479a7109ac440266e0dc7d748d6ef391280d81f72a07f6bfc518c6c0c313b7c8e1e11cfe9ccaae33540e1b48988414bef5ad1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -getmap = { - revision = 50589; - shortdesc = "Download OpenStreetMap maps for use in documents"; - sha512.run = "e5287152442820e20087b45c50a750af621e71e2175cd6790231d81e1f338e50aa75f29d9fbc31c2e5802229c8f15c4e0c7769d0513f1d1b0bafc96a8a3b120f"; - sha512.doc = "bb55c60ec958182aaaa6dfc292a06fbad8a0ebdcb56a6799f1358ad2009bcb72b06611672219c5e9bd6d7cb4db76c4fa030be5e06f9bb38d04fa6744f8bca330"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "1.11"; -}; -getmap.binfiles = [ - "getmapdl" -]; -getoptk = { - revision = 23567; - shortdesc = "Define macros with sophisticated options"; - stripPrefix = 0; - sha512.run = "6a2e543d0997c52155807d0d2641af9714cb09531286a58bcb2d5fec0e70c694edb7d603a250281a641610d1c39495d5f93417da5cfea7a86da1fd53a98ef77f"; - sha512.doc = "fba54e8acd4f494c4e859c8705cb97923e477ed909720adb8c4735c527c3b13799ad74ac1700099bfa282144f2b38358b890bc52d4ae4a9e16699c2d0e10619c"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -gettitlestring = { - revision = 53170; - shortdesc = "Clean up title references"; - stripPrefix = 0; - sha512.run = "101ad92c2fba5c43321d8e12754190e09b0442508799dbb6bac23d5cbe96c470425a4cc10a28441408ac5a1c406e18aab7567f2464e48c2692fa38af1e23a16f"; - sha512.doc = "f9e33fbe89df368c4c5dfd855f2fc0fa8c4d1eec5c0ab925b0a28b9f021fd2d88521895233d12783a023e40d70b05a0e849d4551f79fd4b8d0af72fb60a1af32"; - sha512.source = "9bddc79e0f839a21ebb76e21e20ba5a26971f4192ebc2209468a780a15e5e5f61a328df5f033c115452751a31d1e6dc2e6e238097d2cbdbffa33f56ca420b602"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -gfdl = { - revision = 65415; - shortdesc = "Support for using GFDL in LaTeX"; - stripPrefix = 0; - sha512.run = "d93bba6171e3179b559a26ce246b6de423c06d0ec4e360e33b4d140be07645b90aea070d41d988d0ddb22f6686789e96d9df5e3f1c8ff8cc23829b7be0d015db"; - sha512.doc = "24034eb02baab28efccb6569425229f6e2dd4a0254c926e9153eb6e8802d0cd18d9af7ff4229dc1f8b39fb5dddff767b33e026b12a3443cb3c62f1f0f5e64ade"; - sha512.source = "be816d4aa6547ae5e48201b5ec61618f2868422f2a3bb87422543ef4faa1461b8b7368a1dee29d36881e0e051b7d684ad90f5dac4b5f43dda70b5e11540c5b76"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "0.1"; -}; -gfnotation = { - revision = 37156; - shortdesc = "Typeset Gottlob Frege's notation in plain TeX"; - stripPrefix = 0; - sha512.run = "4f99442eacf28ea13cd98ee4bbe981b95ae9d849e6bf2682cac2305fd793f6e9f5e4211362385890956fdb24ef03748e9cb0184c7ba9ed89e7985b2caa3e2da2"; - sha512.doc = "b65d173c11400a7681510cd837ac6e8ebf65a458327bfdee140013d49a0c6fcc339f6c45d4b4ee918585acaf785c12e66b3df5f73f01a1f2d8c5b8db58b9c47e"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2.9"; -}; -gfsartemisia = { - revision = 19469; - shortdesc = "A modern Greek font design"; - stripPrefix = 0; - fontMaps = [ - "Map gfsartemisia.map" - ]; - sha512.run = "28cb811a30c06bd6390b9268dd2a7a4dadcb2fa9d426d9461af1ba5593b2c419ed1c7886c3aef9bdbb0f1fea3d6bf127ff6088a6b2c2048dcccfb21c2a06a5ee"; - sha512.doc = "9f2efd76c243177240f237f7232fc87eb33d7ea1177a7bfdf7d506077e19c40d3fd923a960595c46f50fa19979598bd06a1865cae8794d45f91da1d6a9a60a7b"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -gfsbaskerville = { - revision = 19440; - shortdesc = "A Greek font, from one such by Baskerville"; - stripPrefix = 0; - fontMaps = [ - "Map gfsbaskerville.map" - ]; - sha512.run = "b545ec586b3bdfe3da2cabaa959ceeeb4ff513b48024575b1b5e3c57bb2d10a0b4e2cd7507726275eed0826dabf03d05c20eb9d5ec341aaedc0313264214ef78"; - sha512.doc = "a45ed2b35774755a6558431f784faad4bbd63aa81ad5d80c3cfe3f7726604aea3e4de2baa72bb27a4e2271e9bfe180c8963d06b880a0efd2dc5f7789dcabb51b"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -gfsbodoni = { - revision = 28484; - shortdesc = "A Greek and Latin font based on Bodoni"; - stripPrefix = 0; - fontMaps = [ - "Map gfsbodoni.map" - ]; - sha512.run = "e01cca38176330bdc0a4b523bd2bd4f73a497d90a34682d29920e145d11ea099f163fa08470c79e10a27a137a5901d7da9db54e461667af61c687adca1960249"; - sha512.doc = "c70b1a32e945d82e50b8a37319ee2bf63d4800b381f317168fd945311485cf6c41c7a3112e89457f4ee40bd29736accf681bd61494120e3d41f0c8fb28ad466a"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.01"; -}; -gfscomplutum = { - revision = 19469; - shortdesc = "A Greek font with a long history"; - stripPrefix = 0; - fontMaps = [ - "Map gfscomplutum.map" - ]; - sha512.run = "4013ef92910c3c1145708afa5a9ff13cfb0aae05e6b225c56c98090ea7cd223799e73212982312a14cf504a355dddce08e3364df8c046dfe462d07429cfa617d"; - sha512.doc = "5854b000522120f6a1b065300943fd8aebcd75f57da15d667616a3706d35ffa35cac0422712d0b008dc2abf2b9deceb0248fc044be68f893f6ad0eefcd50b316"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.0"; -}; -gfsdidot = { - revision = 69112; - shortdesc = "A Greek font based on Didot's work"; - stripPrefix = 0; - fontMaps = [ - "Map gfsdidot.map" - ]; - sha512.run = "436a8cb4ea88663ff3358d6991fce9364f197027797903eb1b5c74ec0a857059579f0a58597ca6427c1651bf89440d7b7c8965e79fc668ecf444dbcc9f7ed4a3"; - sha512.doc = "29b49271f62496e6537e84301b361d372b24cf208365d97f3ac1d6d5b82fae84ff82954ad45e87201eee0df9dfc58f3486049e219480d20add06e9eef934f17e"; - hasRunfiles = true; - license = [ "free" ]; -}; -gfsdidotclassic = { - revision = 52778; - shortdesc = "The classic version of GFSDidot"; - stripPrefix = 0; - sha512.run = "7b07a974f5447917d0a10a964011f2ed57db2dc9155384117310eadbe1dd05067dea6d617a598545713fb9250bda4241b0b2d5bdd84be4fb8c994d8d8c4e5ac4"; - sha512.doc = "3256c1af2f7b0d15625eb3a7250e15b9645991b3a7408d11afc77aa65bb067cfc3682fac334a61d67f894468b3a14c21e694e4b7445a01ce88203af06a269031"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "001.001"; -}; -gfsneohellenic = { - revision = 63944; - shortdesc = "A font in the Neo-Hellenic style"; - stripPrefix = 0; - fontMaps = [ - "Map gfsneohellenic.map" - ]; - sha512.run = "7290de85142975c61b28cc8d3e5919805590e2be5f5b442f0c371c393f92012ef6b00997bbac1aa1fb63914578e99eb5e6b26f6af8f51cb5ec7f4c53ede51fd6"; - sha512.doc = "231ea0eb57834e5b781cc3e8f49a85e2564756abe3812a432212fa7e85468117a1d80d6af5db8cec754eb1996d3b9716c12c403b1865d60b18660f454a2323b8"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.02"; -}; -gfsneohellenicmath = { - revision = 63928; - shortdesc = "A math font in the Neo-Hellenic style"; - stripPrefix = 0; - sha512.run = "17e81da77241b3dcf6727ee8e954d9ea24a59a235d8e454b77204f99bec343d020803790ce6ce82a22226ef48ff29e65d84b6ec90e44286addd3ca727e8fbf1c"; - sha512.doc = "efb0faa6617a402b6d840d9f20303a8acaf4140c60b8de285dbbb9794dc6212715cec6d1fd2cdee65aaf348ed1184ad66c480e00843801203f47fd3a4058250a"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.02"; -}; -gfsporson = { - revision = 18651; - shortdesc = "A Greek font, originally from Porson"; - stripPrefix = 0; - fontMaps = [ - "Map gfsporson.map" - ]; - sha512.run = "f52d6cd8d0b674771dd56a5d2974fd3edd8b4685bb201489e578c62d1e31b5dcb6f2cb2e9b05702ec439ec7f0b35740e291d3a92de53b75870fd791858f8a474"; - sha512.doc = "3dbcafd00a88537db9e27aece276df08da805b59076d5e65395a4752d8ce57a794f23508238e96ec26b8d7e6d25e11992c2a567e44ca2f930bc44b9dc980202c"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.01"; -}; -gfssolomos = { - revision = 18651; - shortdesc = "A Greek-alphabet font"; - stripPrefix = 0; - fontMaps = [ - "Map gfssolomos.map" - ]; - sha512.run = "6e6ac03cf7ee20accfb67855b3dce136e3caa2466fce760adef0a2c1633e0a170543cf861a6a07a0c80344ab026dc2f74a35c5543ea92a53f7ce8a1042f778b7"; - sha512.doc = "67640d1a95ad7ec43d7df407916cde264c5460cf400011cf0cdb3dc4caffabba370f2fc15ae945e20b6a9bb6623645f6ffe80034a781cdeb11c400bd23985e3b"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.0"; -}; -ghab = { - revision = 29803; - shortdesc = "Typeset ghab boxes in LaTeX"; - stripPrefix = 0; - sha512.run = "7e919cbb0c84fe337dd05c749a3288990e750ff0aeaf119736108463a1684a18a66be94811a31156f951c871b2f073627914629756b06e747f3220d2ce08950f"; - sha512.doc = "2cb7dbf5b43130b122618c50c18e513dc0ee0ce267cdfa6e710451d1fa7fce8965617d74d48748241321948ae8c5eb9cfa4945df146ed8e5d476d0fc5caaf204"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -ghsystem = { - revision = 53822; - shortdesc = "Globally harmonised system of chemical (etc) naming"; - stripPrefix = 0; - sha512.run = "42f94adda3268ce20f664113211d3c32e7ee005db053f3daecf72d381dd4c4cc2e78610b821cd4b43c4543610bc66170513c4fd9357445977a8a2ffc6bf140f2"; - sha512.doc = "d2f1f42177ea820d209e9574def8efc0dcf9fac0c73ce1c9eeaace7bc0b25fc470ff7265ca8a4f42f6482dba61d7d764b2171268c168aa7eb154bb6f9672f52a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.8c"; -}; -gillcm = { - revision = 19878; - shortdesc = "Alternative unslanted italic Computer Modern fonts"; - stripPrefix = 0; - sha512.run = "37c8141eac6b1636292479299f7df6b3dc128addf8f7ba680cef2c75d2f7ab04686134b243a86168c54052d4dcbc33f13c13a6629d7c98d3908e4cce5fb53f06"; - sha512.doc = "55e02d36c12bd12932c2d220f892852dd1c8c947cdea09d058ad38e5e513dfb684e75a8ecf07f5711200f942ea7732519c739866458c330ee271bf45af32ed45"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.1"; -}; -gillius = { - revision = 64865; - shortdesc = "Gillius fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map gillius.map" - ]; - sha512.run = "f2ce20c1650588af9f446ffc6d69835e4e970def915e3912ef36ed8d065d717ccbeb125a783768c360328ba6d44e15f954348957d774dec8eb3b84f4b8e00406"; - sha512.doc = "df8f143a6a80e9e5038744744b649fc26d042672eca7080fc8493a965ef4e3bcfb714735e83ae9a3bb500e3a298bc9bc9d940ff343caaed4ebfb8bf8d8101fb8"; - hasRunfiles = true; - license = [ "gpl2Plus" "lppl13c" ]; -}; -gincltex = { - revision = 64967; - shortdesc = "Include TeX files as graphics (.tex support for \includegraphics)"; - stripPrefix = 0; - sha512.run = "2137967697765b1167f36a858d2eda778b43ff1d681ec0d8af7963d2ab4a92448c6c1ad6933975afcc211d301cf168528e7ded7c3114c4b5ec580f42d8a7b664"; - sha512.doc = "86ee14069c5522d7c0713a532627bf29e8cf71ec4c86184377cdcd8a73dcf0f034be9e92b8ff7c2caef8310f968c956d712f3281eb6e4d36e83a3464149489b9"; - sha512.source = "ea7bb92e9f71606b39374bf43704187bd627ffa20e686d2ca09a8ea4c825e5cc363cf7cfb2a6811df7c82ff8773aa058362b9103052646e7ef5febf690abad22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -gindex = { - revision = 52311; - shortdesc = "Formatting indexes"; - stripPrefix = 0; - sha512.run = "b65317c570c923c7b6b84c2923122d844f895657267b694b46fed2d505348833a57700e4da93cde3d5a81e7589a456eea179a455dacb7c9324e0f65d9c718c9b"; - sha512.doc = "2a3ed388473c669874b0474b9b1f45c60e2efd69e8c589a9f9086cecaeb5f1e3192fbb949c3d0b485422c7f6b49075d3db4cb8ba03bbdde0f5f77089331f770c"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2"; -}; -ginpenc = { - revision = 24980; - shortdesc = "Modification of inputenc for German"; - stripPrefix = 0; - sha512.run = "20ea4e42fa07c21d8f2ae5d4419e6382141e6babca0b89b508744ea22d6310052f2c46e6ba0ad32b06f5623daee07a16eeaaa98378c9ad04dacb78634b9a583d"; - sha512.doc = "4e343ab469e2445f6a2fd5297ae38d1cb42d4db1a3c438885815a2e4c5d367bfae3226a628e11152826fc5e4fd28a9c4bc5c393acea550c5ab33cd854d4f3e8e"; - sha512.source = "b28077cb4b369567952e77198cb77f4edad02f0949d4f46836ae59d75a2f113f64446fba83a88e6155e9356797577fea72c79244808d575359eb7ca10d029940"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -git-latexdiff = { - revision = 54732; - shortdesc = "Call latexdiff on two Git revisions of a file"; - sha512.run = "74077b3dd1a91a734af6d668b309f804dc58a282393d88d8d5d74a5e6fc73c197e49b462369f829cc7151e20aaf8085c0587428ed61ce7957a1ef173d92c5481"; - sha512.doc = "bfda354f808c1f94dfac207d1526409a160b89292e44541930dac34383e3ffec9ce63d04db041ea5ac529e1e01fdc80c4c64cd43e8cdc14aac974094732d6fe8"; - hasManpages = true; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "1.6.0"; -}; -git-latexdiff.binfiles = [ - "git-latexdiff" -]; -gitfile-info = { - revision = 51928; - shortdesc = "Get git metadata for a specific file"; - stripPrefix = 0; - sha512.run = "7d3577b55f0154dd9c0a1aff3d46741631fc561b4c730a4f55a84dff361e6c27f327979638946d89ceb35370bb4051b1471481e6bd761fbed66757bc613abb2c"; - sha512.doc = "ac2083dea1ae4373ee2482f41f9c66ab93a2b66699fa01449c712c219ec0c53635230b062ba58b4107eaf7fb54fb7eed76c5b9346ffc60f6f35b18a72ed0a08e"; - sha512.source = "7b15a31e0ad37c75fc1e64079edb4ffe93d9e9a71fba7db13bb9ca7b68fa8dda0244fc0da473ecff8456459bb3f6f52e3edec2ac8513433d03ab107715ba5258"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -gitinfo = { - revision = 34049; - shortdesc = "Access metadata from the git distributed version control system"; - stripPrefix = 0; - sha512.run = "099bcb4970827cd3309f88278d8ed993856d5ebdabb22c3a3f558787bc6cae46378f7a92b88c5cbaeef496f40a8adf1e0740e685d667ba2376b5852a12af9e5b"; - sha512.doc = "c5a9c948ad8cf8f2bc3cc134d60165ca4fc79117a6597a5981b39e26e25f4334f479f2bc1a0e22c52fc48794224115c0c170612c8088a414544d9f51b18421f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -gitinfo-lua = { - revision = 70117; - shortdesc = "Display git project information in your LaTeX projects"; - stripPrefix = 0; - sha512.run = "cbc201f194a95f27ed11a12f555b8296dc68b4b0895ec2eec65d4f22dbc005716bfb92f46b342acddf023475a9eb7571ce3410efca50755589b6513e025cab8b"; - sha512.doc = "b5b284e2d6abc36e97aab127592c6c928d737b8d94178201191905b7179786cc6a5520364d1ce0ff92551de5ecf89aafc4ed336b145591b747d43d6380bf8815"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -gitinfo2 = { - revision = 38913; - shortdesc = "Access metadata from the git distributed version control system"; - stripPrefix = 0; - sha512.run = "7dd68c7b1d5ea49dcaae8ba1a1582676617bcfc6f5c6ba34eb1c62e60ea5b8ac3a50841a93394b640e8a79c3cfe447858fdd1630e4095683958f8d36439a84ca"; - sha512.doc = "872b7fa8e0c97e4f6e0e1989b7c45507773b4f96cd56f7aa7064376b520d8f2beb4acfe71a21e295a8a457b86fcf7521809fa59ad02875466cf426fa09bd8aa9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.7"; -}; -gitlog = { - revision = 38932; - shortdesc = "Typesetting git changelogs"; - stripPrefix = 0; - sha512.run = "2fc9830dd1c43cf0c32fd743c9fa001287f5753dea38d8491af43803a1d98a0e09cd05641484fd2f7c47e68c8c6919c2eb9fc298ebd761166eb5b77c54d7f00d"; - sha512.doc = "c1bc22cdf9b23baec98ddba49784a09c97e9e5f8c1a471dc39b3d58d67bb3ad2559f25766debeaf613b3c4e8d8bb4b22244de07d09e957ff09a94c0254fd3e64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.beta"; -}; -gitstatus = { - revision = 64662; - shortdesc = "Include Git information in the document as watermark or via variables"; - stripPrefix = 0; - sha512.run = "153b9df6e1629d42a1c96a4f6c4c25dbe180db8976a102d633cd54ac36b75c1650328f8c5039ebb10c7927f7d6717a9260f39b7de6c0f9f9f37fb6fcfa9dffad"; - sha512.doc = "e7741e738bafe379f71bd77aaa9b2a33c26b5da13f659181eddab01fcf8209ffbd0604d0b374368b7d814ca9608503f9e4004730871845e8f7b491e40bcb79f3"; - sha512.source = "23ab1b1fe293fc842eb9ed3306e2b70d2fae8ba62178b64b29872f933bdd8f80b0991358fbd6aadfa194185790632acf2ec5249ef2fa9d490913072ba1b0660a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -gitver = { - revision = 63920; - shortdesc = "Get the current git hash of a project and typeset it in the document"; - stripPrefix = 0; - sha512.run = "c2a82b062f130225f36c66827deead41ad644512160351e216fd047b6f4bde03ee4798e5a753f319ce83b74cfe0ada5a9346b1ab12ee1058ce073ba114ed890f"; - sha512.doc = "08f5ad70d40a3eab79a260958baa2e4d75872a93a33ac3398ad54049231693d3cb4f659ea91e3a53af8c19fbf6b8ca537c66f907b4592a45b155d895471cba63"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -globalvals = { - revision = 49962; - shortdesc = "Declare global variables"; - stripPrefix = 0; - sha512.run = "815a1aff9e889313854962e44c1c09a41713f4efae915a1d1a65a3f0777a4c36e9987c588c0d6f2f1ea91cfed6c28ffbe045a842ad71fd6babc91ae1bb16aa5f"; - sha512.doc = "36a8b35ad90d9fb797a03b48f8cf818c9514ffe6e7c24be157e04455559d3004ac6011e2dbd16a4c478105b39ec0d2597f74e484a1913bcb180a7209b9191fb3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -glosmathtools = { - revision = 55920; - shortdesc = "Mathematical nomenclature tools based on the glossaries package"; - stripPrefix = 0; - sha512.run = "38d5eb1cc7337e81a1d824fcd3d6820928e06b421e1bd1141bc4cd859a32aaa1a10062e6a7a2512687245996c8848b42720085271c1cf6a24957bbe96ff824e9"; - sha512.doc = "511c901bf123984727ccf8bc4e2449738a66fe866418f23b923391d30f6ad46ac260b5684b73b89616c07cff9bec0475e3553a70ba608c58873751d9a6dcbed2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -gloss = { - revision = 15878; - shortdesc = "Create glossaries using BibTeX"; - stripPrefix = 0; - sha512.run = "399bc1b809c01fd60934e28834dd7d6f263aded75bbede67507a5dc7bdbcdef725248b9a10d4ebf3cfaa981be33fd35a4ade78eb20b2b23cbf851376ad5e58f8"; - sha512.doc = "871760a86ffb9d50cd480e2cd234a9873de48ce620f57a6538b36b0c1fd5e7f11342fa435e147ee1fb47ed08b8e855eba8168c8b755ed67ed7fffcb8f0e0ac86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.2"; -}; -gloss-occitan = { - revision = 52593; - shortdesc = "Polyglossia support for Occitan"; - stripPrefix = 0; - sha512.run = "ee68a2f0c41dac79d00a4103804ad735b5bdc78bad660d5933e61e88290a2dea17a695ea45129a672cdb301e1c89e4fc319173df1fbfd87f944abbe46f7f1dd0"; - sha512.doc = "1325b4c8c0ff8c1e53d27b5696da419f99852bd6c272176bab4e03f91bb6a715de51d24317b9cec1af50ee0ae2b34c03c51afe9cedb8903a1e8f74bbee3cc06f"; - sha512.source = "043c132580baf8e66ac76a01312706996902c448cbd81f596db732cbb90d66be64d8a1f673275edaf11031d1f878587270663bba7db32da37360ed024e210280"; - license = [ "lppl13c" ]; - version = "0.1"; -}; -glossaries = { - revision = 68437; - shortdesc = "Create glossaries and lists of acronyms"; - deps = [ - "amsmath" - "datatool" - "etoolbox" - "mfirstuc" - "tracklang" - "xfor" - "xkeyval" - ]; - sha512.run = "bb81a95a1e379ec87b569d94ebf08f83823f825a70138a3770a3d1236424b976a98cd1265e7d68771460e6e96827761d697ddf0dbe48872c802414236e0065ba"; - sha512.doc = "d11140ef1a6933170e59d497c57723e62d7ba7abadcbd9d3ee91e50171101d3e0740b0853da803bc7b9f56f86d7fc6cfedbe985e5e341cb775e850ee7c8ccd40"; - hasManpages = true; - sha512.source = "01ebc5d8d91a666a2693a039305103a98de9b2c7a958a40be04275e948664b3c5dd4818e4bb686a3a2a681b0ee38360a43fa795ac4537f8d083a2637ccd3df72"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "4.53"; -}; -glossaries-danish = { - revision = 35665; - shortdesc = "Danish language module for glossaries package"; - stripPrefix = 0; - sha512.run = "d9551aaa01e6f6720406a58f869048fbeac30fd629edd7fcdef657525dd1f7fb3faa2127cd81fb777d339ae65a1015e9cea7e5fe26a7de10db3a387152aaf0b3"; - sha512.doc = "8e6097ced6686f3f5f0162c7deb11de9acfd55ca152c8ba3d4eafe155f645f33ec32dc495e3b4f4832e33300cd63d2d4ba56d018177f96426ee72e14cc60e230"; - sha512.source = "f8a52fad43c5a95989ed8da27ad5a15da56e5cb2b08797bd70879327a512d9bad44fd217270940ca1ac541a880bb939b9e360fe5a686b0b25d779baa1bd01de6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-dutch = { - revision = 35685; - shortdesc = "Dutch language module for glossaries package"; - stripPrefix = 0; - sha512.run = "0e3d2607caa6032c8c768c1bd7c84808f6b836d6c167b1e0c720b57c3033c175269663f6e21edc248676bb2b73142c20c85cb6c3011586cf17d876e540a435dc"; - sha512.doc = "c2d6ce929bb9e7482413886967beb598b6cfb4a2f84d5a2e5edd7039b94e397ba9ad2e63954178d6fae91c5e3aeb080a68ed466b609ba0adddf98003f570cfd1"; - sha512.source = "5088bafba48d95e4392a5891ba3566d37a708cc7ed002243995d67ad6f6cd1eed19f6a572e5e3234c8e4ce58e815b4cc79e97d2644bc5341911388f7b80030aa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -glossaries-english = { - revision = 35665; - shortdesc = "English language module for glossaries package"; - stripPrefix = 0; - sha512.run = "f62c43c9cb5a10fe5e364e6aa4ca500aae8b89e71f6bc80831a8c8211ca640f3631f011735ee5c82278b188bf896360b69502da2128e1db1287d24e44805ef97"; - sha512.doc = "40c30888541114f5594403ddf251f0c209daa57c6b6f2d3d75b4a51416bf3011bea70cdc5f461e80a1e148181d6ecc2b2d7c891a7c75b1c577a72e5ee8ddc8e9"; - sha512.source = "4a1d9cbf515c52d8f8a787970bf5537f25d6de7a66c3a1819cc5dec05df0f004aaac3734dba6ef813473db0cd5b08db4ddebca8dbc8674c2582abc7e9e85524a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-estonian = { - revision = 49928; - shortdesc = "Estonian language module for glossaries package"; - stripPrefix = 0; - sha512.run = "48eac96868bbeb636bc8d4352cbc1959829daab75716b3dea2ef98d98e388a2668a2ea1e35cc46f53e9ee030aa07dcef3e528f056f59d49883f0a00380785bcc"; - sha512.doc = "5f957f53acaf6b56e338b606843cfa2ddd16dccef6bd2c74844e514c157ddbc3c5c24168cbe28c67894afab8d115460fd497de91f0142bbec3d1987d5889925f"; - sha512.source = "f2d2ddecc5a338f844a9b98d50e636d69d31866e723e3aa261ddc5ac2d8349d01e76afdf9cc6b7a4b4d96dadee78ea6933c0d1c69d1196f11770c92cef356fb2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-extra = { - revision = 68409; - shortdesc = "An extension to the glossaries package"; - stripPrefix = 0; - sha512.run = "65f5a9e3aea0c8f419c530a9b989b0296830347cd0f1ad4deb0d879ac82970d546be4a907f90c917e35b7197dfa6b16fa6f1b4318a2b7aae74bbe924580fd0dc"; - sha512.doc = "f90103cdaae2e6ba00cfdc82865a4beeab9f76d364579396b8710d81a14a71cbbd6168a307889664b0a289a34f9f7f9c1c69f449b09e90669184a0159c8aaf90"; - sha512.source = "3eaf0e0f29949277c66928fb0952cba6e568d700c118e32e7045628da340bfa12aad6b1b6c794c9dd79d73bdd7e0e120a4ba2418e7390115a611696520e39488"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.53"; -}; -glossaries-finnish = { - revision = 54080; - shortdesc = "Finnish language module for glossaries package"; - stripPrefix = 0; - sha512.run = "ad6109c67ecfc88da631b3f42aa91b95720619599721a6c6d87b4d8a668cdcfd5bdedd333a43bfff663f5f26df64f4fd8268054dc2dca089ad34177e6e5b9078"; - sha512.doc = "ddc0047503a68316c3d2e18d22c7ebb861aacbf649366a60ee186ff31ba79846b461d3fde029bb5b0a3ce8f07ef25b89bc46898047176160815570f68b022b10"; - sha512.source = "0be0af63020fe9bcde5ef0f3b832d5fe90325de0412f32b3c0f34b6b00126bd2b139f0b3be376d54a41794447dd38564fd248ce30fc08f68a607fc65daa5d503"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-french = { - revision = 42873; - shortdesc = "French language module for glossaries package"; - stripPrefix = 0; - sha512.run = "8516e94f69248238b0e94099b67c9807f02587e934e6fd2c9ef23befcfac783297cc4df71b8e41be77fdab85abcb4103435c3fd24584b46a3b473fc4489d5d82"; - sha512.doc = "c26b40d499199c15c875cdca901a3168ab72e4009a04e92f3b1ae9010d7912484b1185453d117154eb5b9e63358b36cd58aeff3d0c4727945a343be4c3c2ede0"; - sha512.source = "9c6b0b1d851c88c757e87c8b29b2cfaa3886efb00433a9c3744e175fd4dfd4433de3b80b9d70df89f879536b1058ddb1baeae41c5cdfc6c47377256df8e63882"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -glossaries-german = { - revision = 35665; - shortdesc = "German language module for glossaries package"; - stripPrefix = 0; - sha512.run = "e0b8e18dbe4d4e503c144be2406b99b56ef0a48847b4044665ac178dffc59d2b8ea95873ee5f2e64fcfb8379a44ee8761ee84ae44fddf996d1029372d5185d58"; - sha512.doc = "0ad0d7d8f41e52613d049fe3ec6e48d5ceb77e768c7b9ee6b3b0978eeebe6abfc803df44bbb7f90b4e487de074a2cc174224ab0e89d5fe7bc896adff495abfc6"; - sha512.source = "7d34e603e6c667fad268f4d16edd7b066d3f6fb34739ae5e7620cfb2024fb6c7882862845055205d3a3c14f2c60bb3b304cbb1871958c17427107cc245e10bcd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-irish = { - revision = 35665; - shortdesc = "Irish language module for glossaries package"; - stripPrefix = 0; - sha512.run = "b59add658270f734a8fcb70bae29ac210c84472f0f7ded62baa647bdbdbcba2e63dab71aca6f8c524eae9e3d80bfa7bf96bef45bef7039c3eeff738055a93acf"; - sha512.doc = "9ce14ee4ca3ac1eed10f8c356fd6561f7ac43abcde46009a6d43245395985f045e9ecb83a38a190ea3a5cabf462a233967993bcaa40211cd7e64791dc2a583a5"; - sha512.source = "cdc7332678be3abc86804b9b674aab88f087791c8418e6273cc07f2c2b4bc8316ad21a3421af9ca2f87f76a3ce42a6fc5e7343e006120dcbe1c7cb14901d7ff9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-italian = { - revision = 35665; - shortdesc = "Italian language module for glossaries package"; - stripPrefix = 0; - sha512.run = "aeeeb9fcd98e55ed64c918276e0bf0b25489538da80f96030a85225635e7e0ca3d1c93c65aba8b97b486f086a50504c257ba478bdba28de92058053dcafe323b"; - sha512.doc = "f1ee5a84c9a67b88087f657c259a3700fcd1fa4ad8c765cfae11cde2d54c4a71e69dc57bf626ead0d2cf1057750e284a31443c72e994e37a62715548fa9dbadd"; - sha512.source = "9a014922abb8be849e97660f2aabff49413a56c06a93f5a3fb0cb89f972b54fc371bff8dfd6a758196d941efbc9281c5cab3fcf047901ab08e296d55e529206a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-magyar = { - revision = 35665; - shortdesc = "Magyar language module for glossaries package"; - stripPrefix = 0; - sha512.run = "66847635e1f00af9191cef210c19ed154dc1e5405ef0d2ad38485a913626ab9cd93b7c35395feedefcc04bfd1b46112e6410154c2ff26be51553619326d1e55e"; - sha512.doc = "a6bc19bf794943b1b15c8cbece363f644671f912bb71d8b2f0a9e75d05886ae4af4846c78cd060099bb78872e4d7991a9a3274fd1343a07bf73c3ba1d475241a"; - sha512.source = "e0e90ed2fb01df98b20a7807a0dc1155b108c35788ea952f753ee9033d2c7e516086c6380b8617411392198c5469b57b96aa35f8903e44ce44d30f5758acb75f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-norsk = { - revision = 67141; - shortdesc = "Norsk Bokmal language module for the glossaries Package"; - stripPrefix = 0; - sha512.run = "8e718082194eabed6a4448b89a703a3b63873286899df02824cb4582dd7fea0cf0c1496aff95139b8a4f0770d6d49c5257ca3db14b3581eb529f2a7e95858308"; - sha512.doc = "fac57f6cecf17f22de50fd360e4069d2c0eb8dc3283e00ef1a46d86827a411e15e3a2228db08165b158d384448aaf6beeeeacace05390c428bbfba3bff553ae8"; - sha512.source = "f90b767ec7d7a3ba384198942ca6502e33f6885cdf9cebfb00299e7909c10d70a4b5cab58dfd7b0a39f366b667a1ae0c1d3cc89ed91db415625ea0b2b0367fb3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-nynorsk = { - revision = 67201; - shortdesc = "Nynorsk language module for the glossaries package"; - stripPrefix = 0; - sha512.run = "eab5020321d14af5af78a3449dd2b99333bec3e56014b00c5c7a1a4410c26ab715ee8d3631c5a19b4356af61ee1904650704c623b7d36f783424409481424dd2"; - sha512.doc = "e123e0024f750a28fb3778ca6e4880c070524837dcca5bdb628d0b32fa647c8b2a5595a76d436567caabbe88d309a1711d81d5bef1c33542206bd3c8e56f3e22"; - sha512.source = "ac2286ac8a06a40d0d15d5e4200c14d1c242ebb35c5e9d0c9a0138cbafcbde4f220798082dad3b521b33cdde9c569403fbf23066104daf1ffefb28078a9e0fb9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-polish = { - revision = 35665; - shortdesc = "Polish language module for glossaries package"; - stripPrefix = 0; - sha512.run = "7ad5a924f24acb052c16436f1d1eb198bf10c65ed3f77fb8911cc8b390cf286581a6d7ed409211993545d597a4dee4318e1d9b820dca6f831ca215986ec4a1cc"; - sha512.doc = "cad7bbadda3e690ce56c75d2dfc92b02576226cb31d848b0c96d6115d18d222a50e514a6c6b5db9907d6a0e542824e229b063a0cec49dd726246f3dc5d4b41ed"; - sha512.source = "5f7ba658feb54089405ed6a2fbab3a279143205438a9dbf6ba0a49d38245799cfac6369c48f9ea1e5eac2125cf475e26a3b31dd3745f283a21f3ed07aa8e64be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-portuges = { - revision = 36064; - shortdesc = "Portuges language module for glossaries package"; - stripPrefix = 0; - sha512.run = "64582081553f90a5000992f9db3f79aae7ddfedc6f128ddc09ec7878576b0e17a580f7c58515c2696e2c46ce1ba49c2cd756687c144d0134d91cb6c5e0506ec0"; - sha512.doc = "5f1692f14e2e4a596555cc426a556d069fcf710775d9a039f0143eddbafd0502e4f4a10e677a43589b1f91cddedba6dc9358b6015801e68f1b3d1e908e57dc09"; - sha512.source = "a7cb8046b8ce5d122f691170804acbcd39b5ae367cf66057d12fb24d58f142e2a4cf52a1039de9cd73a0f8c0bf851f07367c180eedb12923ab3398189de29652"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -glossaries-serbian = { - revision = 35665; - shortdesc = "Serbian language module for glossaries package"; - stripPrefix = 0; - sha512.run = "7360d33c1d3912802be171ecf8c218fad45719ee6dfa0596904484ebf9dcebcc0d926112e40fca76a196ec6081fafc4524c81b366008fd20207f8150dd82be29"; - sha512.doc = "1ce493838bdc59521728b6856d2cc2df26f44f3bcfcfc04d32fc20d3e416639b1420e1451acad8b8bb0597336a77b553ac599ec0c541527ab4d8e56765f07f3f"; - sha512.source = "9097fda313f9cd3e0db095c27fa534269e2460c6b5efa3e6681471590591b0931c52f28374ee33404ae0491297d1047dac8b7ce7a525a46b01873210b6242515"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-slovene = { - revision = 51211; - shortdesc = "Slovene language module for glossaries package"; - stripPrefix = 0; - sha512.run = "d569d73cbaad175549fe5d4000ac73b0fb65d00598dcab0f3a7c7b384682568d21016fb50d7dc6d2f6a1b250ef34c44c784eb99a1ff042bc3a52bf1c987e0b55"; - sha512.doc = "63d212e4c04dd7c7e663de230274b9111b8025839c8136313677d13e967a23870927a49220aa1efa0702422e8ad4cf683d1e5e09fcf291873d78bcb055e24003"; - sha512.source = "0e779292973bed40b3e077058aa99ceaa851ef516af7be57a21bd378492f77b87e65ca95f9f8fdbebc8818dc820108e598ce93efb8c6129560e0ed40f3633b48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries-spanish = { - revision = 35665; - shortdesc = "Spanish language module for glossaries package"; - stripPrefix = 0; - sha512.run = "6c92de5e24135a9c47d200f8f0c0ce7dff8a01f8c13bfb49d4090d1c195052559f75763c0ed68d633b40cf18bc89bc51e7b6c2aacdec05376a3c2e1d1b7a31b2"; - sha512.doc = "5fc58f64a7f54b50dcfd632e700805bab2f46a92b727853b147d9f7156b2fddd50a8fac08d0ac59bf5f89e0ecf1d5ddf7c22482e661f8a5e7b5568832168bd5c"; - sha512.source = "8bccb84eec75980107ed08b9f7e1ef0a595f7eb0c270ccbff77f4ea176fb5e17292b7d34d081ffdaa7d7be82fe40f71bbc30a65904892400536c51ea777475df"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -glossaries.binfiles = [ - "makeglossaries" - "makeglossaries-lite" -]; -glyphlist = { - revision = 54074; - shortdesc = "Adobe Glyph List and TeX extensions"; - stripPrefix = 0; - sha512.run = "c050808623d162ffbfba8742c9aee6c92555717eb3ed0a0cfb0e3cd6696c4f6d940aa494582011e6d0becc3c5572ddccac2598ac8d521b58a323768272f9125a"; - hasRunfiles = true; -}; -gmdoc = { - revision = 21292; - shortdesc = "Documentation of LaTeX packages"; - stripPrefix = 0; - sha512.run = "cfe29d7bd5e7936c2a40292fe2518dcd79dbc105f08d3f0dfa11ebdc4693ff207a1b312e6160fad4c089bbe5012697bef1122a893b1d42d59fc39fa5c48d2ccf"; - sha512.doc = "68825a5fe89383d68b2829bc7e2fe230d717104a2ec56010bc7e67fcb14f9191bf47594cd0387b490debb5e752670048404a7985ab0b5dc039f4764d7926192e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.993"; -}; -gmdoc-enhance = { - revision = 15878; - shortdesc = "Some enhancements to the gmdoc package"; - stripPrefix = 0; - sha512.run = "481bed630ec444fda66a22656c2cdfcbd931a6743823c36f570ede09038ec4f219ecd1985243a4fc8d852f38512c6b369227f559d3874447144e0cd62d7949a7"; - sha512.doc = "0cbecac4ae6f70ed01a407a9e5fa388f2c142b7bf77d219429d6685bf7d7c6bb3f324694286e6fe49bc2eff287faba901b7eba44f8bde1894e8cb09527c289a8"; - sha512.source = "131afb02bafe204637f0cd1589db70584071d9f2480d2a11c03de4b0c14ed79500fe0e811a035a761ae4e6084d63a89e1dbcfd40edd24b4715db55d206f5206d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -gmiflink = { - revision = 15878; - shortdesc = "Simplify usage of \hypertarget and \hyperlink"; - stripPrefix = 0; - sha512.run = "768353fee03e36d5f13e5ea8ca2cf0925fb5dc3c847680325a0961b78a3ed6c30859bc57de7b927cd9e782f85539c97183687755c31738e1da3cc27a08f52387"; - sha512.doc = "4fea41151ea197efdacd9e5756043b87500af8445769d0d0f69560cb94decd4f097bcdd52041706ada9b1ee7826f3c56aa30db473c472b1c74553cebb5231072"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.97"; -}; -gmp = { - revision = 21691; - shortdesc = "Enable integration between MetaPost pictures and LaTeX"; - stripPrefix = 0; - sha512.run = "79ec2dd12610086eb5e7b582f5296fe7f1101c20b6d4edf10d47c5dbcdd506ff7c5f326af7600287a148031be060b3e8319d20d8267933b94b6c8a53e7753bf8"; - sha512.doc = "d3d4bdbc5b1c4618820247ec101e43c1c28b9e023e7613d5256456424fa95a54f23463ff1336f2586359a6078aa733de77cd7ccb892b367cdd00215ac7b67512"; - sha512.source = "13c602f735e86066e87231dd299680739af8ab526d55897c8a972b177ddda6a92277c3455208a11184281332d94f924b59dc845b51d7288c7c6ed750c45a3fc0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -gmutils = { - revision = 24287; - shortdesc = "Support macros for other packages"; - stripPrefix = 0; - sha512.run = "af0fa2ec7a3ce1414bf5d48d0bd8ce9de1b96b2bfa4f9c2babc6b27c52d11a7e5024bcf66938f3566cf6cf331b154f7eb4ca9d1cbe7109cde939829ea5be55a5"; - sha512.doc = "f1d6205f39f573b0c9b28f0ebca03b32e20e27c0be12adeb7eb23e12daf41a9590733270661aa29d6b8393dc87855f293437617cd8598f39082db8a33e9281ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.996"; -}; -gmverb = { - revision = 24288; - shortdesc = "A variant of LaTeX \verb, verbatim and shortvrb"; - stripPrefix = 0; - sha512.run = "18038202bca3493596925d9d7c65612434ccddde4b301134f1f57706e5d2978025fead598751e27a29d23f66ed12306e6092461aac1d9d921ce818b0a49cdfbd"; - sha512.doc = "6dfcc27b38639d4a97ed311bf7c6f1faeb1a023abc27d53e272f334b232a52aa0edc030b0c53d6587845da64097496696ceb03cbd6aa13c8ca5ac12c1772860c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.98"; -}; -gmverse = { - revision = 29803; - shortdesc = "A package for typesetting (short) poems"; - stripPrefix = 0; - sha512.run = "98692f781fead4dc292648153ca18a05d03f2c44174bce8b2f72e85fd1e98cb5ef0fb67c12f33dc982f1d04958873ea4e78f486fadb0c94544ecb66180ee52bf"; - sha512.doc = "7e37c0c2e8443aedd6462251f603e2eef9cbacc45d980d79bf42cdc64b7ab0a5d81f50ae65251c17115265c45e641a5930de640099f04dc8112155f68ce9adf0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.73"; -}; -gnu-freefont = { - revision = 68624; - shortdesc = "A Unicode font, with rather wide coverage"; - stripPrefix = 0; - sha512.run = "8889c49137ab983c2744a6ec26dab4c1cdf2de3e6809c620b5f2fed51d3025bdc018a9d85b93b85235053d6c0f672f8cb1c074e64b8cd971d53dba3535d212a7"; - sha512.doc = "232e8d0be31f77adbb62383da35e1e37d7b952cc2e6157d6eeb4cbb7d5e1dc0794d9fb3185e68073c5cb2980a3d5a6c447f878ea8cd45c7e2b806afdab21f8b5"; - sha512.source = "b81ca0245e9a7b1bdfb0745ade7cd9da0734a407dd8c5cf3859a7fa269b949f38a3ca18341b6ff0e1c3d99ca04282ed6dd9fe2923901a06506fc9bd6b677006e"; - hasRunfiles = true; - license = [ "gpl3Only" ]; -}; -gnuplottex = { - revision = 54758; - shortdesc = "Embed Gnuplot commands in LaTeX documents"; - stripPrefix = 0; - sha512.run = "5bc237b3bfa3b31eb4d6d2fb63280ab89fa929b531ec83dec362947f49ad0316b9107abe3a876f79e4c5b283134c859e4908b300a592aa69fc7ea20b80af7fa9"; - sha512.doc = "c0e56811b5b4340c770d61ab605961bcdd5ab1abf72b9fcdb0c13c5e56a7481944aedbab70bf5d2daa90751528f0b9d7efd04a1453c08a4a6e40a46a41a1296d"; - sha512.source = "9db5deaac39afbef502db7cca3c28d0669803af3d927d6650ff39abe365c39be8dff8d7ae7537ab139fe747b7acd7e9fbc3a66dd30ac8495f30dff143dcbdb5e"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.9.5"; -}; -go = { - revision = 28628; - shortdesc = "Fonts and macros for typesetting go games"; - stripPrefix = 0; - sha512.run = "772772146ad95f2ebff85a2f3064615c26300a6a4050c1a6c7207d53e12b41477b0936b1c3d182f1c5db0aebd8499de19e0c23283c2bccf753addb2623dfd1be"; - sha512.doc = "c65516b11156d4fef5104a36cb361bf59be244555233cb5d9692892da06d3bdecd0b09866db136aec177a2bcbacfae6bb41c606f6b9da0329a00c614055905d0"; - sha512.source = "54cbaf16bd4a1a9bdd02b7811120cc82269be40e97853d94b1d526eef98e7df8e7ab8de2e7abcdd7e7db4c1f7fdf3d7355d511ed57c44c09643ea291e5b1c6d0"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -gobble = { - revision = 64967; - shortdesc = "More gobble macros for PlainTeX and LaTeX"; - stripPrefix = 0; - sha512.run = "a3490d91422940763da75ce023ae032a3d3dffc7114c02edab40399a1ef11e5fb2c3f8f3bcf27ba5fc089b4d961bc3b99f45351f43eb2f4b31d6a425a9df40e5"; - sha512.doc = "cb1bf320485624448d9456c44056fd5c43792db4ef2a4211c37acbe54bc4be7a8eba0b7cd2a10446efd1591b631d6a3adef26b5440b1a79739af095a831b4300"; - sha512.source = "f430253f8b2534f1eb1a2be289f7356792ee12b5be6f0847715974e5ed0303cd12f437723e93cc00616a4b55d4874d43477ebcf62c5b03a038a6bc76d838a597"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -gofonts = { - revision = 64358; - shortdesc = "GoSans and GoMono fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map go.map" - ]; - sha512.run = "c30a0fa1e76d0d287ed9296bb379bbb284873593f8136aa567e2573ec9d20310ad5d2ff993b00714fc472b6d365e2556c488278216c95898ca44f1f5b5c681f2"; - sha512.doc = "6a9d31a1d55f65d05922b71d9651198f9f9a8c6df754cdc93c4605fb6bc241b5c7cb56d0313a2681f60f4d92c45cbc42a9f61eba0c1eb1ba447a0363ff72593a"; - hasRunfiles = true; - license = [ "free" "lppl13c" ]; -}; -gost = { - revision = 57616; - shortdesc = "BibTeX styles to format according to GOST"; - stripPrefix = 0; - sha512.run = "13bd2ec15fb4b61fa1a318092e27f9e94761af1fbb379e52c5143f10802a4bb77be35f152e33973d078e7e3d4554f89f66fc344a7efec9d5a1e0593f4eea0e5e"; - sha512.doc = "af9cbcd39b0ed78157040634ea949152f972a02e2b19c4ffc679decfc4d76b161b591ebe915298bdb6927bfdf70b6a6e80bd119f52355fceec8829b20909c4c5"; - sha512.source = "d375e1f17a9693ed87a840ea11157b5c496ad2495dfeb21bcf67e0b82ee6866ff7072c132c0bbadd5655ec50d791454d63290c32be04be63eccb11617ae58223"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2l"; -}; -gothic = { - revision = 49869; - shortdesc = "A collection of old German-style fonts"; - stripPrefix = 0; - sha512.run = "0c3fafd295fb087d3ace144df7253ff09fb3d79091dcd49003964a7ce57308cb4e86f3c3158a5e3d7e509e9958f77d5cc6da03fc41b585ec4ea397822ac29a7a"; - sha512.doc = "8f2495f3f9c72e5a5b01e17e1a9f80bae3ded97b902765dd2fa9b43ff87769a9ac2b972aa660344bcc8e29af3824985c49639477ee96213c0ee7d9d411e8ebad"; - sha512.source = "f6e600c736989ac81cde1fd51306ddb520e693b6a5ee8338c3413b5656aaacade8d4f1ca7aa316589c4d49fa8b96b598637792825b03ab0fe3efa4bb584067b2"; - hasRunfiles = true; - license = [ "free" ]; -}; -gotoh = { - revision = 44764; - shortdesc = "An implementation of the Gotoh sequence alignment algorithm"; - stripPrefix = 0; - sha512.run = "478d51d4f8af849180d1e21ea21c6404f6eb1d13cd70d232f7002f62a588ed2de40e2950699c1bc0e5442069a957b05f3128430ef421311737cf55a6df868a12"; - sha512.doc = "3aa9837e81bc59adaba5b1cc3908738451fefe2645bf1422e0c6b119e4ff94ad85a7c2ddbae798e1e1ced95a530ab95b2f7a5a92da827c9f6d9bdc574b5f3231"; - sha512.source = "8ae972cc1f0095c442241e5340c3688021253d135167a89c67000c74a53418c48c3fa13b4b2007dbbf598abd1445ef06a9113a32a1fa37b0b8a5dca6c050ba5e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -grabbox = { - revision = 65223; - shortdesc = "Read an argument into a box and execute the code afterwards"; - stripPrefix = 0; - sha512.run = "f592b70d4b3bf02e442725ab3a17e3ebbfd3e69d7a790c01be44fa7dbca66b6df76d036b3aaf9f8ce4944bcf370dc626a07e94f5edeec11eb8dbf04c49bd3ff7"; - sha512.doc = "52e91ad758b653bf6ed804009f3aadf575925f9ce4f52225c1d5e1fb30a79907a587914b265471ff7bdefd5132b6b2d6baac6062193f498e127fb29c34107fd4"; - sha512.source = "c49132a855bd7e3ed4a98b6af13866bae68301927b22757c824497a778d2036b30307cd262630d336be7e569744b7667d554fd4810aebc0646dc90b6ff196baa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -gradient-text = { - revision = 65567; - shortdesc = "Decorate text with linear gradient colors"; - stripPrefix = 0; - sha512.run = "87ecc935dec50f43fb4079a86c0fce5de8d4222f941f346ba6d9ec67bf3c623351fd42fb88989e4d1de17c36a82259aa61b7baf9a9227eea3f8e5caff3ab8bf9"; - sha512.doc = "63894d303192ea56d1f29b33ed8722352a83e6fb58f05c639a9b930794ed5e7f2634690c5049dc62989e286464fc9f48d537e77fca234061dfedf755231b59c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -gradientframe = { - revision = 21387; - shortdesc = "Simple gradient frames around objects"; - stripPrefix = 0; - sha512.run = "31612230548e2167c7f1d6a13029ecc202675d6ae3e681fd915d38aa116374214916155453616da51ef3dadab06955fcbfa9bc383f12b5008adaa8a60e24e6a1"; - sha512.doc = "8b010be9e222609d13015176dee4bcc196d953caf7a8c1814e49f9e50325bc33362975338241bd5cef27d59516114113bd5ac81e3dcc6e89ea7f4d53465b3cff"; - sha512.source = "7ac2eaaff343101c1e9501104e2be138bbbf85d009c2eff98f10876ee814762ac2198bc800ca43b9573e206241b9e3f196ab24e053078f78138415db8ed8fb51"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -grading-scheme = { - revision = 62505; - shortdesc = "Typeset grading schemes in tabular format"; - stripPrefix = 0; - sha512.run = "d68e5f9110738f2ac7258c312045b40db3ce20ea8fd80e6feab47164091cf2dfa460ff7ab5fc794cfe2895f5df5733ed67429f3babafc448448aa99d52bc9ee0"; - sha512.doc = "337f873bbb07432ec9e5c20484d82e65d315921411757c295af78e521075a16044943f41bfe6daba9f0efca56d33b372ebd177420d13284a44b0251409277ec4"; - sha512.source = "47de7e1c71f78bc472500b44aba2cb4a606a6219737913bc07492bdc485fa7ec1bee30ee04311bc3b278b8017180e98e032e4f2d1cdcccf561e42f1a9bbadadc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -gradstudentresume = { - revision = 38832; - shortdesc = "A generic template for graduate student resumes"; - stripPrefix = 0; - sha512.run = "b66b3b8f7cf16f17758e4dae3bcd45f6e6e5cbc0dcfd6fc42f8dbc08abb572f16b96d5de4ba634b27cd16a1c4177bc62644d3eb5ac6060e66d9ca6d3f5df4eee"; - sha512.doc = "e7b166b87a5dce9941d6bd931dec91124a118ba127075aedbe70fc9fe415a8083911f90f094ddede551eef197baee9cfa4ab6ac65c8ae081cd8938f872ad7bb2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -grafcet = { - revision = 22509; - shortdesc = "Draw Grafcet/SFC with TikZ"; - stripPrefix = 0; - sha512.run = "d322b1b45762c65232f6f66adcc12955d85d4bfddc08655cba8e11903f6403f2031a78d7e566f4d9b5eaf950aa8d2a53472038e204a1d18517c754c379c60bc6"; - sha512.doc = "b02bfb612cd5fd85c1839307a016bfc4c3d472ddbd591d1318bd7c5fcca42cc1200da07f2105ec429768cb0f9270273425b01df1242e475946bd37658e692f41"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.3.5"; -}; -grant = { - revision = 56852; - shortdesc = "Classes for formatting federal grant proposals"; - stripPrefix = 0; - sha512.run = "212fec263131499530ecb81d7dd23ad5d162928d4bf8a888b29c190f15d1d15df71f50ba5c243cc1cfffd324cde3362e98d2932e7562f69cdb77eb09025ac7cd"; - sha512.doc = "5170e7f01087c8198220977c1c5bef2bcd2d1a2b824122a9727fb1504576433d682caaa6c9a93454aab756dcf654875fe129c0fbe32452934b1a8b08fcac079e"; - sha512.source = "7894584e5cd67051423ec0febc19e67ddb83e6e183748f9bbe7f037073f8f3d271a6903b535cf699960ea8e8bb5a7fd47a8108cd7ca32e12d309133b9497248d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.0.5"; -}; -graph35 = { - revision = 66772; - shortdesc = "Draw keys and screen items of several Casio calculators"; - stripPrefix = 0; - sha512.run = "6449e4a42b8de0556d9ab46b3c5f4e0da94fe015b289877e1e9a5ca6f5e84d2f0d621e8f02bf4cf3959807f830f2671124e725147fa033d25444eb14048fd77e"; - sha512.doc = "bbab6b3a5a8ddf69de43815fe54a29ea376839f0dc8e1af47cfcdc55cbeb6ec93005c1c137fe717b8b5c81ca5ac87e0d2d7b0f181608fa1d7714ac2aa37f1e3f"; - sha512.source = "f058197a060da4bb7525398bf51f76b595464cf2253fbd8135d20e0e9b66d12def451eb687c229a96a7f2f79afcd66b768a4db37d448824ff9597eeb3a7ae903"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.4"; -}; -graphbox = { - revision = 46360; - shortdesc = "Extend graphicx to improve placement of graphics"; - stripPrefix = 0; - sha512.run = "d78f870b4cd54f7c6819413fd8acf0e3e1fe9b3b44f3b68ff3a20ad51aa6fde69c52b336b57285db1f6d5465204beb8a1179f918a71922889297cf6925282d14"; - sha512.doc = "342c9018116e80ebf3414358320df55e456581630e7e266ff868e6c624baec0b7209ad3895d3232cd0bf35a9677b8c3db800b7772606afa928ed3424ac16c71f"; - sha512.source = "1e97e3a1a91d007309c091fde6f05a7c1b062b715ee1f35051b20ad5fa119ccd415fa3741cf0d5e4f2a090ee9acb090c06b5467294ca26ac8f25a11971ca7530"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -graphics = { - revision = 66204; - shortdesc = "The LaTeX standard graphics bundle"; - stripPrefix = 0; - deps = [ - "graphics-cfg" - "graphics-def" - ]; - sha512.run = "cd36d380c8315829f3bf711dd970d5460f00e19961671714dbdf5928c2e842d33438221ee1fd9e45061a2adabb7f75eb34209914229eca872f2bb7fe7b346a16"; - sha512.doc = "b2a23c52e19eb8f6eeb53951f5fee9015f6d0ebeeb8a97f1bf4db217498ddb27b62d028b3554be3e5ec3b866d1d4bcce6bc805761e981c718f123f6688ba153c"; - sha512.source = "45f998e3729e81f50cf7c064d1a3926c18007069b4a89b478e87a6f97f3e6820eb5d58be6025f374b05d9c443c8a101918ebff84de512366f5415e041356a848"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -graphics-cfg = { - revision = 41448; - shortdesc = "Sample configuration files for LaTeX color and graphics"; - stripPrefix = 0; - sha512.run = "e1015d360b56f63f1b9790daf16e2101e6af995bd1e45288ea604ae94e20196cab22e7e54d318aa79fa386123032a928be70a57154d409321e04f03ecf97ab75"; - sha512.doc = "dbcfdf635c2816f305205915119e1f6acba816c17b683622a8a32c361d75338376426b258c1fa3271abc1d7ad2a520ac85092a7b3bfbac6463106449bc906ae4"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -graphics-def = { - revision = 64487; - shortdesc = "Colour and graphics option files"; - stripPrefix = 0; - sha512.run = "7f811afae5119a42f97c23f65bfead8e7ba7e64796688b219eff78914115f8dbffa6e3aba97208f67d38b6463819ed2cf49e173aebcbe73aef8c2cf399ef803c"; - sha512.doc = "b52099d553c2bdf52ddb7b50231303f106db445d58e675ad819dd0dd84750f0fc6d164fa21deb1f622644a6651e6bdbe41ad3362fb021f4a7da2e7599fe0a526"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -graphics-pln = { - revision = 68760; - shortdesc = "LaTeX-style graphics for Plain TeX users"; - stripPrefix = 0; - sha512.run = "33c1b9a4db0c564df07360c17ea89a7cabd557b21e2703e68532388f7b977a2f99f12c6d7002e9297b8e35259a42fb713fa0d2c49e6c9a347845755186437c24"; - sha512.doc = "27600b6127990a06a75ad8aea49a86b8f16b68ed306ca3ec54762124af02ddd1859adb714eb0dadcacc652578427d230d37416cf3326f567239dfa4b9d8b53e8"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -graphicscache = { - revision = 65318; - shortdesc = "Cache includegraphics calls"; - stripPrefix = 0; - sha512.run = "90e4df3ce08bc12f0d5c2e8b66687c79fe7b791708bec5990f8e11590b64bcdf50ec393244ee85af7bd6f644787d56626f08c31fb1ca1b354b64ffb5527a960e"; - sha512.doc = "749c11a534cbad3f32a7840097e6d42c70f99aa684b5971ccdac4e6a0bd668465ed4a7850bbfea61e14d396440754bfc0d1fe45a9ce71a57908b1c94ddae5444"; - sha512.source = "c730c10210c785ff27f319990b24af529a44c365d675f294401d363c1e5901af4b0e198c93a147ccf85fc440da99bf577063ed207d1d172ca4008fc9215586ef"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.4"; -}; -graphicx-psmin = { - revision = 56931; - shortdesc = "Reduce size of PostScript files by not repeating images"; - stripPrefix = 0; - sha512.run = "d0cb1283998d0ba654ec75e0696bb2b6102968a504e3dee457826cdf82d7cc5793dc8407d0145f314a780b3e015a7be49e70ed21c21e68a3735bede1aacde6fa"; - sha512.doc = "149f130b4e47f60ed3484267486033fa92aa7529169061a2dd9582daef579b6aeaaef4001261ff7bc301c17ef2817bf7bfeef909d22be44079a2c3c145c92040"; - sha512.source = "20cdc55b6645f661f5ae9ebdccbec0506c4e2a4a699dfc88aac9bb6d0ea1b0c308f7ef08abb4525faf498edc77eed5051d9130cc12769dbad7c2a31a814e46ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -graphicxbox = { - revision = 32630; - shortdesc = "Insert a graphical image as a background"; - stripPrefix = 0; - sha512.run = "032168dcdd5eab142cd6bf24eaccc3fc6482e3eba7e0fd2600322b4a6f2bcb1ceb8e30a64dd811b500af37c94e7de3ec25c60c437ba9afa7ba4d8a9af8b79a19"; - sha512.doc = "6fd432f48c05c486963b8058025dda2a65b5cfa87b6ae03581009dcdeafd26396bf16e04fecd0e68a896a99d5c3e09e43902bcfd3f58fa9a9b393cf64406e160"; - sha512.source = "a563a3c1e81496da30aca7256b5b2afc57d9df9e9aab2b6f5bf908691961f736a616f7c5f86647b94a6dcf36d3732bd68b75f5a4ba7d7d049bb67789ec48449a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -graphicxpsd = { - revision = 57341; - shortdesc = "Adobe Photoshop Data format (PSD) support for graphicx package"; - stripPrefix = 0; - sha512.run = "c1327b1adc6657f423bf8eb0d29224773055f434cf749da8a8b2d1713c2a90a6fdeed2bded223c7cc941cb2b7403cb68927d72b0eb085e906750ce64ffcad3b8"; - sha512.doc = "082a8e580113ef796be4cc750d98f6dd0bf783298fef80a06f5387f352183d513e0d8b90dfb684bcaa575ff7b9307fe11e55f84aa66d7f29b411e06af76e70e7"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2"; -}; -graphpaper = { - revision = 63116; - shortdesc = "A LaTeX class to generate several types of graph papers"; - stripPrefix = 0; - sha512.run = "1a850300bad30f7139032bf12c26cdd120e62342e09d7d742067c2f040f171a5a20bda2d57fad0aa769d0a337cb7373cf0f5f4d3932ed65ae589e4feecdd5738"; - sha512.doc = "dda173040d6d492a96e8ecfc374f1a8f01b30689f6f97be6c2c530f2653c70340c7f8c2181fd4a854f2b25e5b4b835f67056b1a95892fb328d8f5c75152f36e0"; - sha512.source = "fbef9be61d0bf8e35e61a596a7297e1eb78308004786f2d48b66ec3fda045784ebba80d7fb66094dda99dc54b751710998dd96c013ac92e97a1c4e60d0b795f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -graphviz = { - revision = 31517; - shortdesc = "Write graphviz (dot+neato) inline in LaTeX documents"; - stripPrefix = 0; - sha512.run = "9065f2316f423697c8f815ddcf91254f22e44d89964196d971c3a42192bb1e20f9152c5a98375060daffbb295f8885899d2800728de31ecf60e1a25cf7bce31e"; - sha512.doc = "688f17db6771785753797edccd141470517dbb2ee875e2a70769754bbd314cf8af46b3dd89d5c340e7da7d81d86895894baa2b9e8facc0a54ad91cd1a3947722"; - sha512.source = "c3e4fc091b5b64924e886435667049ec2dbf91c20fd7d1678f40990e66aa9d94fd7b40b30dd359be0fd1fba0e169b29058337ede8232189dad3dab7bb34af869"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.94"; -}; -grayhints = { - revision = 49052; - shortdesc = "Produce 'gray hints' to a variable text field"; - stripPrefix = 0; - sha512.run = "45d0736b5b600aa3ae524e0ff2471846cf48105464710fc7bb7f8d27326275d1accc63b5a0726c5d43e5af487207eba105e1d5e4f59913a1b27d33e950122574"; - sha512.doc = "85a6b8e44ec045ec00b7526f034e5b15d71fc8e439bfbbd43e1c8f85d4400318d8dfeee4bece211705c351e2b5afc9ddc89073fa14c1d90756bdf458d7b5b100"; - sha512.source = "7342b60e1957297f41970fa2af45a8736f438e6560e4cb6bd279516fa40ca283d7cd60e5faad2959aba12958c0fa70a95d94bb9c48e7ad47956bbc646af82173"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -greek-fontenc = { - revision = 68877; - shortdesc = "LICR macros and encoding definition files for Greek"; - stripPrefix = 0; - sha512.run = "24aded84aee9dbe4674a019fb3ffbe0d48fb51d88908e532cbfbafbebd8dda63ac6d2d47c907d32063bd57c3c9d90d51b1e8f1f59ee4fecb451f20002d4a1115"; - sha512.doc = "67f22594152f543a1b59e91a49168b92d6e9870f0c362a69746c6d3ac9fa4918980df4708bf1a6697fedcfd519153b9a29d92114b6567a2ec03e65210eba3d7a"; - hasRunfiles = true; - license = [ "lppl13c" "bsd2" ]; - version = "2.6"; -}; -greek-inputenc = { - revision = 66634; - shortdesc = "Greek encoding support for inputenc"; - stripPrefix = 0; - sha512.run = "47dbf3388943440918879234037ddb08a8ea7f2851945273af2a01b032484e849af3898860f1daced148b770c4146701a987afe3ba3b8b66dd030bce36c4006d"; - sha512.doc = "2f85fc72c0415b48fd74ebe9d19e5ce86440c57c08038e96a2d99673143f2848bc347e95f7beab7753d0921414fc635aa9b4f98eafc91fabf64155a55a407bee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -greekdates = { - revision = 15878; - shortdesc = "Provides ancient Greek day and month names, dates, etc"; - stripPrefix = 0; - sha512.run = "7f350b4db9578f9020b28bc217e508574b697749c1d2e10c9de9c6499e26605da8334583ea7fb56d74bae77bc30e5835653014f5f8f594d3f35d04478ccffa9c"; - sha512.doc = "979353f7cdeb127e12388e1eeea4903a929d911f6f8fd42cd814b6cbea09a64d0ab9c8118968bf218330dfae64f9147621d23d2955fb85291f484d0b5eb92a00"; - sha512.source = "16a5fe04bd6a598a09c7f326f6848074782e8801d0723366e5ae2b1ae51580319210c64f5e7dbae7eca5cfe3573b0f24d689c802d9594d18dc7c8f4126d9ff49"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -greektex = { - revision = 28327; - shortdesc = "Fonts for typesetting Greek/English documents"; - stripPrefix = 0; - sha512.run = "d7aeb9640061341ed39a71f7f69036f892bbe60b9db2236660e163b42fede81d6be58627b0163d3a183c120c9c8fa54f91a1a036ed9e50d2a72d5eac7f8a79a5"; - sha512.doc = "b58305d403a58a60ac0cd6ebb60afe3058430eae15774895e03e41b331824673c128c5f06b583525e2311dd8ee5166549ea831e756e8c934c73ae911a0adbaa7"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -greektonoi = { - revision = 39419; - shortdesc = "Facilitates writing/editing of multiaccented greek"; - stripPrefix = 0; - sha512.run = "a19dd42de4bfdc3c068169bbf32c55fbd76135a8138d41e0726b421d3cd5e20483f77d7b78f85e54571381f780568f1fa1ebc57d23ca460b33e4caa256c4894a"; - sha512.doc = "94da0bcac7b513fb9f720c0bc6d7ca8d822956b1517a95335b415e477d3144063bbff65d57978421b6b9611c6b4a866701762cbb2ab09351fe6c5d02e4b02f39"; - hasRunfiles = true; - license = [ "lgpl3" ]; -}; -greenpoint = { - revision = 15878; - shortdesc = "The Green Point logo"; - stripPrefix = 0; - sha512.run = "2ab6b0a9d12c12936362e9e1ff387c393bcd2e9769357dbc74a5d9bcbbe027424f5d58d85d608c2c519d615f01e6e809f6192280c8c60aa53fb8d96dcbdeb8dc"; - sha512.doc = "84143440a421999f0a59461652be21d49d8ace66fd3b8d9d89132c6f06f67ef4b571522d6ed54d87f614a15dceb99cdf4c3caecb54eed9a4bbf49401de20ada5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -gregoriotex = { - revision = 58331; - shortdesc = "Engraving Gregorian Chant scores"; - sha512.run = "00dcd5bc7c12374a15d778cb903715036bd29a7a07522446cb5a5cb14509956db71df518d97e44d1e89366402281c26b96eaf39cc9f97d624ecb40107eae3db4"; - sha512.doc = "67f018fe0eb9568b0ecc6977de8eb8fc1b0b9503372e2f674a97723c537d8a8fb4f48d48b95ee8979e4d4490d3725cf4a1411ab9d7da2ea14f72d0dad0fddd95"; - sha512.source = "0ae6211b33a256f1b10a2b167f3f5886f712688ae73baf13f698af37f69f83a9be754efbc6b0d5b3a1cdf11e7d459a98986b27c27b6318cba8fbb3e48d7f682a"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl3Only" ]; - version = "6.0.0"; -}; -gregoriotex.binfiles = [ - "gregorio" -]; -grfext = { - revision = 53024; - shortdesc = "Manipulate the graphics package's list of extensions"; - stripPrefix = 0; - sha512.run = "a5f68f2bb2ea26d4b8f963a1b8fb8adfb3bd32e3a139dca57e6b45d80fcdd94c5e846549b1292224b9d845fd6a4d0ee56d4c2d2fbfc12c24806eca8551b9dc96"; - sha512.doc = "4337ae578d9e524e2da8564a1b736eac1dd50c1e4495d027c44f3841eb65c6c494527109e32f00844c17a5973a94572569a429ceb95beec98d2b19e84735eaaa"; - sha512.source = "cb7dcf9b3860b90bc8618c6d964fb7e9f5e056882bd5e6739a57564224f970ab9cf0ba136ebd88072541b8d169245ccaae90f714392a30f83c73e82281a07359"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -grffile = { - revision = 52756; - shortdesc = "Extended file name support for graphics (legacy package)"; - stripPrefix = 0; - sha512.run = "3f1f5e4f258e4ab1f51fdb44fa0b49e80df21a6c35dccad16a6b70ad76489cb4fdfff7e6c4dd07821c54543fdaeecae32cfd8037d4920ce60db02be9a2f8fa07"; - sha512.doc = "2f2285ad44d0c585cd02b85359eb31f885f7c704f6da5f906240c1094ef8d347d33ba6beb31cf34e09a5e39e618a27a7ea263a63d6a887638d8f761e3cd4b61b"; - sha512.source = "6538e5cf13f8212b5b231637a4abb68bc97330e123432922e403ae7321439bef910a0d1839abf394518ad274ed232c4c2e19671c8e6aaa55e2525708f305c679"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -grfpaste = { - revision = 17354; - shortdesc = "Include fragments of a dvi file"; - stripPrefix = 0; - sha512.run = "e7c28c38a20e01b05c5839dc7d011ef5769b3344fd4321f68e1189a830a90e6ccf9edd596e248489a0a578b2aa4e5e5f3bd1ec21c76b3dba86a91d5e431d0617"; - sha512.doc = "63719b8f7904baccddc9e68d1fc7d609453b2eb9feeee95bb077b82d1345c40db7a92c649c3d9abae6b9c2e19090163b6a227418f4d9d4d91b1e8b1c0438005d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -grid = { - revision = 61719; - shortdesc = "Grid typesetting in LaTeX"; - stripPrefix = 0; - sha512.run = "312b142c43ef4bb9624fd6589d086d733593dc0d387894bf58749b3f6251f33df415656b974935352a0d4fff090953f136d0353b98329ed3051ad179708af12e"; - sha512.doc = "c3559726bf89f766b0d95e3b493046ee6b4c0edee43e4c581adb150e6ad5358ad0a1a3a67b75ea1095f2da87393734972a59693332de10b7b459579a7f73e534"; - sha512.source = "dd59a48ee18940509d89ea55219706f7c0ae6d7f699b77137495fd4a850cd9d373f01cd9f2485a2ec47204c380c0a17c4986940e0a0ef21740c383e0eec81f0e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -grid-system = { - revision = 32981; - shortdesc = "Page organisation, modelled on CSS facilities"; - stripPrefix = 0; - sha512.run = "b9846f467854538c488ae444645fcfb962c1aece34e3847dc3dfdd4a2aadf8339840c09243448922ce184f6211bb3b95c6fe9675b5bae0e3b3756b2787e7e87b"; - sha512.doc = "659b426e99db9152c64f37a4c977176ce1a24c324465399f3e481cffef505044aa820f1a445a79c68f069702c07082d3d5c73c5fa762068a44acdc21221cce68"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "0.3.0"; -}; -gridpapers = { - revision = 58723; - shortdesc = "Graph paper backgrounds and color schemes"; - stripPrefix = 0; - sha512.run = "17f9b6b16a0d2f45648b131623c243e0b62f5e2d2fb1c1997af921a1307d941ffb07729d5e4787b4627961160a75de98165e97a42331b07a3259e91c987f27e0"; - sha512.doc = "0f4fed3e0d17f317f3d56f69a7100d36ac6d022f7c7c81c8dd0bb1f740f782ca5a4064cc2c80daf865c85e7ee84027a97fe675a13f9d0d348e489a2a8afa2ed9"; - sha512.source = "962b9dd3c99ce419e58cc1f146406b0703807d365069a333971c1b0ad3409f64c9c89d6dfb9c4ce80731164af1d6dcde6b510c156602b0bdde2f231d7da45406"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -gridset = { - revision = 53762; - shortdesc = "Grid, a.k.a. in-register, setting"; - stripPrefix = 0; - sha512.run = "296200c463b67ce45fd7c9625298b5e0b83b730055830b3affcdc0c329a2ebd5f89c5da93e004b056efb63f8e43771824c7f0adfe435461943cc68aea4bbc480"; - sha512.doc = "54fd48dce732ee11a7279eb663bcadde958f2ec9d3307194000dae2ced43f604a54e44174ca36dec389c9ce8e5e0809849b5c66aebd9527337ea3273353142aa"; - sha512.source = "fc25880cbaa087230b0106a40d2c945809f09200c7e25de88588ab0075e06b91efd362453c599397e29f5e9a053f9554e0496cf03f4f134bd74678d1534ba07a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -gridslides = { - revision = 54512; - shortdesc = "Free form slides with blocks placed on a grid"; - stripPrefix = 0; - sha512.run = "9f9c3fc88cdf9e3641aae264eac0c116c3dc410ddab4c688521289baaf67cb4c8c605c734fbf45538b6498f7c337aeaaa4b90d2584c6becf06a97b81894c63c9"; - sha512.doc = "ea3a2ed6334a5e160cb27b096e0868aae28908f77d67626b9d1d86840e615bf1b296ff5813ef5ed24ca0435eea39f4afe601216f243f2be585eb952f4df33255"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; - version = "0.1.1"; -}; -grotesq = { - revision = 35859; - shortdesc = "URW Grotesq font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map ugq.map" - ]; - sha512.run = "30d0d52c98f44945ed40f45f1e73ed60e6b98a8a74dbf57cdae5c2d400ef613f8bed2b89b3b6afbf7b98e449738f637911dc1becf0c0dd33c21a23ecac9a9767"; - sha512.doc = "d41ae946f315d87b483a03d8b5a1034706f5bda765c69fa692f117b79bd5046b409e42c7b17577ee086ec98795e8a93acd761e30815c6083520b4bd244c33cd5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -grundgesetze = { - revision = 58997; - shortdesc = "Typeset Frege's Grundgesetze der Arithmetik"; - stripPrefix = 0; - sha512.run = "f9912e5daab42e6aaec946ea34f420acc194ce88ef75135ebedcdddd5f70fbebc81c250f3368bc8f65cf3952d0229fc450ab40b58bd02473ae4eecee783f3f09"; - sha512.doc = "7dfacbd4686f5296cc1f677b99f42946f6ba1e761454308568ecb013df3eb0a505273e1cc357d11780f7d4762d03007ab44b87343062c50666bc8e89e1512ed6"; - sha512.source = "dfa00982121cd247149768a95ac8555a2061ebfa1bcc154ff944d07843d213ab7c7bf0931cad3dac118cd995abf0fcfe03f12285e2e7fc3e808223939d4c1d58"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.03"; -}; -gs1 = { - revision = 59620; - shortdesc = "Typeset EAN barcodes using TeX rules, only"; - stripPrefix = 0; - sha512.run = "d12c13d30c9e0303bf6c6bfb833d673cf673de3c60cb9d637aeff80470d34e04653860e2186c16c55660faa107bf583409a9891ac8d5ebf1612c8410cf60d10d"; - sha512.doc = "b3757db8c56cbacb87bd17d578be51321b0ac06a3cbcd75b136cdf52bc66a046f0db42af84e5fc33bd347fb52950448a352027713ad01263fe6344a75576efde"; - sha512.source = "bc9f08753c9663ecc056de0ca7662dbecdec18ab9346e8590fc1ecd373392bce8af50a4a5f37eb6301a2cebce0dffdf0025a3d036f14ad0f696557abdb8f2716"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "23"; -}; -gsemthesis = { - revision = 56291; - shortdesc = "Geneva School of Economics and Management PhD thesis format"; - stripPrefix = 0; - sha512.run = "42d5d8461d5f8ccf461e24d04fa61991507eb545a60b7f7bc3980d39c9f767aa155164cbb914ce961204316b1be61f5622f21236154013c6404a86ec30ec18ce"; - sha512.doc = "3497f766bc496369a2eb9f829b8ba3f0d73bfe7ac11c4afd7f9ce06c21f9aaceacdee0456a14624ffb38bafeb978c5a4787ce824143693e4c3d99a227a994cb8"; - sha512.source = "813f4825450b66024ea804e0f36d1df721565b046979d822830b87ef9cbd8a01300d50947ba9344c3e21f9624af573d7a9844d60432dacbeb0890944a9e11dc2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.4"; -}; -gsftopk = { - revision = 52851; - shortdesc = "Convert \"Ghostscript fonts\" to PK files"; - sha512.run = "cb9aebd7428d10b627d80ea40d297f3e6de006859c7dd713478ff193458494f90017ecd0737376ac1f47638b059e02e8a46ea53a7c56b8561af75f770e214413"; - sha512.doc = "0a597e2908438fc00fc2bafa7ec635a82b70aad9d7f7e86851a654c0b72b719b8c550be0c20ecf6c8d96627863a48e6a387156ad2c7e71d1e296dd4937d60805"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.19.2"; -}; -gsftopk.binfiles = [ - "gsftopk" -]; -gtl = { - revision = 69297; - shortdesc = "Manipulating generalized token lists"; - stripPrefix = 0; - sha512.run = "18cac75f4370c759fb74079c6647553f5d91a8aaab946c46a54c40b8ed757e3c14fbb2f2f5b375e691c8599a7f7d3ca4ebc5a748f18ad35e507305a5e5d8f73d"; - sha512.doc = "ca1fd56abaf08f10fc6c830b51d799a71ba00c11d94e48619f6ac44f151920e8e53df450c23426a860266d5c6347b7c24c9373d152be80c2ba5023836df6f89f"; - sha512.source = "e1ca28c2729e2a4b10ba53cb3f18a657ea1ac7cc0b3eae8b7d13b70ee510008b90d900eea9f5f48ec8b0541638e76ae73e533493ab5b1b0de020d3ad39b95561"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -gtrcrd = { - revision = 32484; - shortdesc = "Add chords to lyrics"; - stripPrefix = 0; - sha512.run = "dabadc0fba92f6da23830069e533e8d4fb234bb679aa355382c03bd3ac13924328ea8fcece3186f36d33b7d7f6cceaebb23f1158b855673160f183991e880796"; - sha512.doc = "d8e715d1c4d9c7ebb0c34c690a82e338733501012ad19cd9e2c52e6b39dff352a4e042bdc5f54e63a03a38eb9c76b5aed2ec3afae88ccd63f56663ada32e828b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -gtrlib-largetrees = { - revision = 49062; - shortdesc = "Library for genealogytree aiming at large trees"; - stripPrefix = 0; - sha512.run = "320b5993b676d803b235d0a10cfbcdde966c3e9415f164da6f45dbd2f6f201750b84cf9dd8ce5383afd92c72acd35aa8a44d0c6518e359615b5b2009e772bc6a"; - sha512.doc = "6558466d513a94cc98e5fe97d5e3bc89f518128dcfe411e27d0af171716545557096a6cdb103511157f0cd93540ea784f97d688ba271d9b2f1918f11608bb437"; - sha512.source = "258780013cefe87f8fed74b0e3251f64da8fe700b13f45dcdf20e9d9215a5b7b74e931bdc1da944e70b5a6c9d87516eb2618546994b5b45193112fa9af74cac3"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2b"; -}; -gu = { - revision = 15878; - shortdesc = "Typeset crystallographic group-subgroup-schemes"; - stripPrefix = 0; - sha512.run = "243eb6ca0af62518d60134a8fa66f91ab05e39c96fa9c0ebeb2232d27f46679da0a634b64273608028bef7f80bfaaf049dcd9f0cd935d5f66b0d5054b2d21a20"; - sha512.doc = "151f9765d6da2312a10523ffca06cb4e0529d4ebf8189e9ddc00f86510c9cd13be9a04e47b85dc8cd815461c17f7e4b8be9604a1a605c86d7228d1113f985a23"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -gudea = { - revision = 57359; - shortdesc = "The Gudea font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Gudea.map" - ]; - sha512.run = "e32cd699f60de092f9bf04e0eae725555735478db9ae7bf0a01a8aa78ff303c5dedee7eefcfa94bc1d8012f4062160dcbcb25cd405debccf7eed20abec056cdd"; - sha512.doc = "633f6cace4db98c88e3a7ea1f68deeaf9b0fe980ace490807688b629b1e3b2b00a12717b66b641dd9949065e4f72f423f78788693ddfe2128752f8ac990fd43c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.1"; -}; -guide-to-latex = { - revision = 45712; - shortdesc = "examples and more from Guide to LaTeX, by Kopka and Daly"; - stripPrefix = 0; - sha512.run = "cc569e242b42361e6506144257db1109f1adee52915f361ed330699edea1895b78ac64488ae8b9e2224bd3baab01515be86486113afc1ed9b072a400ca736695"; - sha512.doc = "bba47b9a9e5223e558244029e258835a865b90824c7069287f0c996a36c4fb78d21e62e88e52ea008dbc573e7a4ea34843a646eab11d8377a5167724286c397e"; -}; -guitar = { - revision = 32258; - shortdesc = "Guitar chords and song texts"; - stripPrefix = 0; - sha512.run = "fed7be24d0bff6d2a0022374e4cbb60cda508b0f99a5a96d59060247aad561c1124728f00a6d0a51b3b22f4490c6153df740a5e9d8106da23c85bb18db385195"; - sha512.doc = "4a2012e693257c2bdb4daf46a2402882caf0c8efbc65bd6679c9eb11440ae75f09d31369839f84312bd1028207d8aa23a745847be1e762dea977ecd7f73b4a87"; - sha512.source = "26b552a91240900b54a3266f26e9f439c46315bb9558d95ae5b27f518a7f5ffdcc1990a4ef676e9186b5492d4a66826754c4d34e13e82b9bd912ff74d14cd185"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -guitarchordschemes = { - revision = 54512; - shortdesc = "Guitar Chord and Scale Tablatures"; - stripPrefix = 0; - sha512.run = "777af4d4ad1a35bef3f0075e2df707c3a3c98969ee688b71c3d13449b04ecfcb2d82ed9332a8aae81a3bd825462c2cbbf840b16a72fc6e3f65e7565ef6b1b164"; - sha512.doc = "f7508a78fd341e4d4d0fa8a0f89a14420ca50d590bc4a1f5208d4130a3aa84048faa8720545c24e8f0243b1f062a6f40cb5cccdd9ed7db583a11fff1a40c7eeb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -guitartabs = { - revision = 48102; - shortdesc = "A class for drawing guitar tablatures easily"; - stripPrefix = 0; - sha512.run = "a4866683cb639b63d455f40da2ef58ee4c69d0e29e5071437a07922a0a45598677557ce609905dd8fc5c3e40a98bceb9a753cf4506342585e6cc2c37fa591271"; - sha512.doc = "ef5f516db586d1473d949f44a2eb9fb307b84ea5a7dcc3c9419298203b41c54ff4dad75d3b24cf30fbc24f4c60ad4b79b9c1fd58804667732a66b0ccb52cc3b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -guitlogo = { - revision = 55741; - shortdesc = "Macros for typesetting the GuIT logo"; - stripPrefix = 0; - sha512.run = "42fe915cdb69b18182222843452627655ba1d619c2ae9eb469673a35aab31967afc3cc2abadbc2fd13d9215555a2f97a54a6d3b1ec895fc3d3f6388819bbb9f1"; - sha512.doc = "505a1f12e772f2f1cebae02164793b0416322aa60cde58a18ba0e3fea0a7072d07d0d8b1bad9aaeb9248dfa89b4b1730e0e5c2a2581b41a7a3a80636fc161b66"; - sha512.source = "600881490f339ffe540248d7c497a970ee606a9e8167036043b833b24630171d44a58a262e79ddf72fa9308b45bd70c28893251b8c185aeb955114a11c70794a"; - hasRunfiles = true; - license = [ "lppl13a" ]; - version = "1.0.0-alpha.4"; -}; -gustlib = { - revision = 54074; - shortdesc = "plain macros for much core and extra functionality, from GUST"; - stripPrefix = 0; - sha512.run = "e752e4b53191a9c5b46d1aa5797d491b98ab2585873e9a9a1471aa89accd898cadc5a9332ab36828b4baa6a3d3d69b311794e1948b788db755dc8f066a68550b"; - sha512.doc = "9c1c0279f18a37b2a500e415364dd4404a7dca8b6e0f85b053db5511826eb401865984ee3471fbe607e4cfa605ab50c08e6c11b166dd629e84d9f07db4af7114"; - hasRunfiles = true; -}; -gustprog = { - revision = 54074; - shortdesc = "utility programs for Polish users of TeX"; - stripPrefix = 0; - sha512.run = "bd9cf1c174a5674a0b71f07bf76f46ca4e15dfa194372cb04e63467c29ee1e07b03d0e611afceae80ea192b6f842fdbfae0bfce7eab2ce43a4e448058521cef6"; - sha512.doc = "268a01f59660e5225c1c21539076e6239381294e6aaa31992032ff8e3d777cb7e4195247c92d9f22efbee498c8bac34cdb915e0a5b0f6cb2b5c0b72c15695d72"; -}; -gzt = { - revision = 70535; - shortdesc = "Bundle of classes for \"La Gazette des Mathematiciens\""; - stripPrefix = 0; - sha512.run = "8c6cf2243e7539b0ba4f84e36a634e46f6a59d57a5d5c58df0ab77ceb031301048800c35c092e3cdfa4ee08d1d61a1a5ca27a6648f9be5e658deb3ca16cf6698"; - sha512.doc = "08272184765997826e89cba2ef02c4695956f14ed603e32f602884dc191b1a81b60e654abad20cf50bb377b96ca50f39fd89234deaa81cf3a66a311445c98f07"; - sha512.source = "6654412d1c9eafad470db5dcc6045f2872f1b505e498d1243a9f26ba76e3b3af11567af78e242268d3d338bf7ddc9e5f2546b730b0772718bb0afbe1cae99827"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.4"; -}; -h2020proposal = { - revision = 38428; - shortdesc = "LaTeX class and template for EU H2020 RIA proposal"; - stripPrefix = 0; - sha512.run = "ddee9c5c1838bad606f212c1a7ebb7ac4d7ae571f1e29e83d55744dd50afb55e302f4f20a3cedd0d4446886cfa515371fb913b862d4549618858896de2a543ef"; - sha512.doc = "5ffad62ed8eb39c8cf07d4840983990009e5696a2d7714d2cbab13a69c77634d01f10a18f612c853a09dfd91ae1ea453bb3373681e89a6994ff4924dd64c3093"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.0"; -}; -ha-prosper = { - revision = 59651; - shortdesc = "Patches and improvements for prosper"; - stripPrefix = 0; - sha512.run = "fc78d9c422c05e4d5b859d39f4b681c5deda4d6850ea383f33b71b0e2aebc5e4740811a831e8e364122c7f451866751d77af8d5e4fd6b8b9f5dbf76f23a7d09f"; - sha512.doc = "939e86ee09351991654d8542cc21667e16d64dc56f0e9d29932b816458319c3ba8e0632e92bc8c17cd104fd10dd7171a89f9026fc9faaa197fd7376c61377d63"; - sha512.source = "0ef051d229ef636232751d77ead251622845f9b973ee32cfcdf67c046423334c0fff283fa1f569464931ff8a6ec139e9fb16acb133874bb56aa11684b7388f00"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.21"; -}; -hackthefootline = { - revision = 46494; - shortdesc = "Footline selection and configuration for LaTeX beamer's standard themes"; - stripPrefix = 0; - sha512.run = "223fb22b01327fb63ff16684d578f89ee583d5c7700dbfd5966aa8cb94ca4e280e4409620b0d261bf2a80a57f51658990b0a221c0dd311e3eae1f39d459e8098"; - sha512.doc = "960c6a0bd61210b097710cc6715012e4406b54dafcf070659228074598a05e0dbb65669ef77c3f6ca2cf80001e95c5f801070be29d416d2bd552d6c2a1d27f56"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hacm = { - revision = 27671; - shortdesc = "Font support for the Arka language"; - stripPrefix = 0; - fontMaps = [ - "Map hacm.map" - ]; - sha512.run = "6f4373f4e30d95c747ecbec45c53a9af23b78acb84a063dc0b2d4d5ed218e7c5f70d4f29817d39f6cf62cacc455cc3117ced589d41bf3f321a6f9d882823164a"; - sha512.doc = "bb6d5cd50e68ce84abd5f7296d8216d929b772f30e946508ca9bad2ffcd8d077d1927fcc76a5ea2e338799109b34adc8272f9f7f6d316f5af1312070f57fcc3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -hagenberg-thesis = { - revision = 65819; - shortdesc = "Collection of LaTeX classes, style files and example documents for academic manuscripts"; - stripPrefix = 0; - sha512.run = "bba9dd22c1e4cf082697c555f2bca5b53af2f3684c47c8911cd11af9f35c9e16e60c5d6e7941436f0a584cc98f882f22c5c855194cc71df7e928f105bcecf9a3"; - sha512.doc = "9e73ee93a231c319ed65a2c23d23d28ad224367ef7773a9d5c1de474eaf6f9d2a402ae1afa4138ec172ca9e07a5fe64c47d57e16ceaf24b203390a0adbf645fc"; - hasRunfiles = true; - license = [ "cc-by-40" ]; -}; -halloweenmath = { - revision = 52602; - shortdesc = "Scary and creepy math symbols with AMS-LaTeX integration"; - stripPrefix = 0; - sha512.run = "1c897f5582e26a42799065d9b105bde3ab7823e9320912eba72654d00624a3796f468d9138fcd47c32e021b31bffb1a618f3ce0024ce753005236a9e08ed05d1"; - sha512.doc = "aea1397af446f64f4d8bacb03f0f2d211a44f0f85d93612db840f198a1ed894e1b0a3680005a002808fbe5b8b367f8a8d79b9b99908a4be0891c0d5b43c730e2"; - sha512.source = "dcefec44ecf9cd8488b756c70624e3cce53ea6cb2c98acd09948d08fa0f4292ea20fd19156189329f30b47a0a3f7f7fee96e633125eb55eee066ee87b09981cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -hamnosys = { - revision = 61941; - shortdesc = "A font for sign languages"; - stripPrefix = 0; - sha512.run = "36af23f5eb95a743a691047d9dc02a19825e88e8fa62f1931f5c2f13e95f89351b42dda6a204493d5f2a147e0d8c039b6b5bbb2aa82bec00824c7c5612d5056c"; - sha512.doc = "068e8232cf97513c69845e66eb6772e80de0dcf9422a3547db3b002ada137a1b385829a7e8258145ec2b5a05becfd08ad5ee40fce71326b93c3241bbc9f8c0b6"; - sha512.source = "bacd0fdea3934bcfd32749c759d1e57e740c0e47e477790dd3c706d252c9439182c0af36eba30b8c00c785bf782605c319bf63b7d9ab677c799a5997f63af32c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.3"; -}; -handin = { - revision = 48255; - shortdesc = "Light weight template for creating school submissions using LaTeX"; - stripPrefix = 0; - sha512.run = "361fa013f1932da2370ccbd67e70acaac725349e4fd4fea28a6b676a5459aa8ce8fbc1edf42f3f3fe234e12771c5be8bc463ef758f823a3b43fcb7191bc1a660"; - sha512.doc = "cf91e16a8f04835a47da1a5ccb31711fd9317db557f0152689a93c4f58de33c8e7c8be1f7c5d9eac599bf8dceab3f4d3e84831efd0612a58571d3c71f508f20c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -handout = { - revision = 43962; - shortdesc = "Create handout for auditors of a talk"; - stripPrefix = 0; - sha512.run = "9c5da5e16df3bfb4eee1ff7b8c6881e7faeba7001fd7f0ecb8b3027a464d611149c8768b8d8853c07417d67a723fe5b1de19620593a177139241b47c7a814285"; - sha512.doc = "6da7783c7a0dcfee168ec4ad6924fca636ccb5fc965e326d9c38ff31c9d2c7942a820165232e4e89b7c1e4857e81952156198de55d7990ba01e5abcd4c31bfcf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6.0"; -}; -handoutwithnotes = { - revision = 62140; - shortdesc = "Create Handouts with notes from your LaTeX beamer presentation"; - stripPrefix = 0; - sha512.run = "cac79ba06d60e99e151b272f28d6a8a04f1f766f406801c6f4fb24f4b4c74cc59d78fc6961624b1f77405bab6687ad896826426d8bad30b3b210e7ad5be035af"; - sha512.doc = "f4f604fd888f5e072d8c002fcd72edb726d3f5512b5fd511446f3fa1295f5a6608510dabdfc6a162d648a3e020489d1e1ecaccb7e563f54e8ec156df51be6dd8"; - sha512.source = "b41429450b42e341df413bc1d7e4266836370617ee94fe685710ce66c7b559b0ed44e3ecf95963fd84595845eef57b695982b9ce300f214901bd967a06f09269"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -hands = { - revision = 13293; - shortdesc = "Pointing hand font"; - stripPrefix = 0; - sha512.run = "77c1742d045110ee4da7473b14c1804fcfab3772ae10223848fee99c7c8a8fb3809aabeb82e4c99460f3cfa0e009ee8d470d60e8be4c79c25c3ff990b7d1595a"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -hang = { - revision = 43280; - shortdesc = "Environments for hanging paragraphs and list items"; - stripPrefix = 0; - sha512.run = "4a8227707b6878ab010b595296dbc96f0b31489dfc0abf0116e00d6b0acf54e91bad1ec182169357e4a2e1f14ee27afcaa23bd35db1fed7e4e972e66eebee042"; - sha512.doc = "bb0af0db38793e12dbd8d33e2df613d581a1809e0661138a3e75cabac1aee2aca942aaa429678a817f487fda82f3ffa3a631d98c3129853ba6a5ce4175346b09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -hanging = { - revision = 15878; - shortdesc = "Hanging paragraphs"; - stripPrefix = 0; - sha512.run = "54bd2269c169bfe2a28513354407de22948658e8067cebafa3a3b3d88040acc318f3f3aa375798e36bafacecfa10c4ab5500095b92328e6cbfc12a541a8a7b3e"; - sha512.doc = "a1e7e9d0d5b85e43ebd7ad88b39d6d5629807f668040041fd1248239c02394cf3c51aa676065c1d1d9e9ba8d1ad20f00e46d25025ddc0db7ec15148280a5b9c0"; - sha512.source = "d982182e5c6c19d6dfaf527f5ff95c0a1d15cfa3078205c73d9ac894d24ebeea31a636d66356387996fc0faf9815242661c884dd566c0dd1d90779d61ba93c28"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2b"; -}; -hanoi = { - revision = 25019; - shortdesc = "Tower of Hanoi in TeX"; - stripPrefix = 0; - sha512.run = "efc8c4892ea4cc8ae395907fc428fe74d535d689a68b3b21422c5c944d4defd57747e519dbca9bd2df2dd010b99e3132afceadee36d547fc11b04480147626c4"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "20120101"; -}; -hanzibox = { - revision = 63062; - shortdesc = "Boxed Chinese characters with Pinyin above and translation below"; - stripPrefix = 0; - sha512.run = "125406446426da598ff92398a7d0de5ea26e866d4f9248269191d113f50e8a613075e3e3d3f9d625ad3e9e0b1c5ca978a0420c2de9f31f12958d5adf7e2cbdeb"; - sha512.doc = "87ef15dc7f3920e11d0cc678f56365ba9dde31210e0add0d80763c1d271baae5b7e905f72f2081f5712c286edacc6943e38df4eb112c7ba17c125edb4d0582d5"; - sha512.source = "d3d557b65df0809561c99431377585a119994d516dc9e30f0011e423abba27eaa545af6a76a0eea7269d1e2ef57a77c316f7aca5b0f9134b709635f87df14e38"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.0"; -}; -happy4th = { - revision = 25020; - shortdesc = "A firework display in obfuscated TeX"; - stripPrefix = 0; - sha512.run = "45492a6becc7496ec6ca6adca474aa141b9c68b06aeed46bb1459f15b6cd1df9e4e2de3842a91ae0121d83269c1fe4f772418a93da67031bd14b6649f3a80657"; - sha512.doc = "78fe311673e370b867ad209fc1c62acd7aeb515e4b145bb7c487d30c121715994803e6dd540bcbf1b9b0776014327c7ca2f6c03437d9ff0b40f477ebff9cf254"; - license = [ "publicDomain" ]; - version = "20120102"; -}; -har2nat = { - revision = 54080; - shortdesc = "Replace the harvard package with natbib"; - stripPrefix = 0; - sha512.run = "b88cc102c09fc86a762da6c16802241af705a0a7da8707d072f051dea7b5836af9bd5cd46e7c80922877dfa389aace6b7713b10c4f1da75cd0d03c7bb3e68745"; - sha512.doc = "de971a2f65481fda590a1ecb254663778a9260e65d26efdd67c739f02099baddd4937edd1bdadbce5020fbd9ad227cd525ad524dc4ea5fc1e563369313f5ae22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -haranoaji = { - revision = 68501; - shortdesc = "Harano Aji Fonts"; - postactionScript = "tlpkg/tlpostcode/haranoaji-tlpost.pl"; - sha512.run = "2ff313007fb9b93503ed6d703c976f639d878ccc706060e0a26ab8a21ffe1d4669aca9df9fb001c886a1b1f7a0e140403253aaa5ef76a6e91d327c504fc251f3"; - sha512.doc = "1c294bbfbbcc6abbbcb0cdf6ea29335d2b1b039545c1dccfe60e8ae4f1883d2564a5924bec22b0dc817e4eef0009108df348d7af788afee1dba4f1b7f1ae30d0"; - hasRunfiles = true; - hasTlpkg = true; - license = [ "ofl" ]; - version = "20231009"; -}; -haranoaji-extra = { - revision = 68500; - shortdesc = "Harano Aji Fonts"; - stripPrefix = 0; - sha512.run = "79b1d71d80bc73681f1d1d48679c2f4586834d7dcaebceadfcc17ba49fd6c41849cae77a88ae4e45f7b2f535352a27aeb91089cdfd5a75b0af88024988617422"; - sha512.doc = "3331b5113f2f8634ddbf4e280aa7e7b8f82a2ecb494b29d2a1587ab338130340084b1f70402e70fe2c0039ce57a4665030581323c703ed504caebac823a712a1"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "20231009"; -}; -hardwrap = { - revision = 21396; - shortdesc = "Hard wrap text to a certain character length"; - stripPrefix = 0; - sha512.run = "eeb0f1da2161dae80d292db7b3289a307d892b8967ecf16021b8ed73c5fe724d914dda356bb8fbb48786760698e0060b39349b51886e13289524ed9d45463106"; - sha512.doc = "6dbb83fc5d4b82d11bc8d97d0ded3bcfe583c2b21ec2a260000b6bfb0bdea9c10df834735ffdcddfa9785b7c86b53920a20146d020b0435b8dc04610f05b9b16"; - sha512.source = "9a40a2a441e9f47b3d681dcd064fad48fe90999b34b57c85b7112e518c99d3b87a9bfc3867beb66e76499bb53ff3c14837f71f2d261ed4c78cad447f185d0ce5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -harmony = { - revision = 15878; - shortdesc = "Typeset harmony symbols, etc., for musicology"; - stripPrefix = 0; - sha512.run = "25e84addf5ac4c67985e1e433f795f377accfdd4dc56eae0ffb25ddffeb52e0a44278ce1a936406105ff5b7e9541452a103e0bb4ed91b8949facee75ca7c11ae"; - sha512.doc = "3226831df9702b669ba4c269549927563ae321e8e10e0e41c6bd1a8d6522dcdaa4ae6a25a907a84cc1dc324c516a53754c81a0e1296fd8e3afbbb29f0992ead9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -harnon-cv = { - revision = 26543; - shortdesc = "A CV document class with a vertical timeline for experience"; - stripPrefix = 0; - sha512.run = "5acef7bfd07f896f4251fe922cb96f71e9f289205eebfa83dd6aadd241f20eec5d9ecaa3d70d6df3dd61fbe7523f568407d89b7c32c27aa719a6f97b89f4cd33"; - sha512.doc = "1a8d96a152f9ac90f3a6e546c03652ebcde8f8d88a7282626d44177854aa41ec1c66eb6f4d787853711b80935f5e3e3c31d726d0e49d60841119db7ae278de96"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -harpoon = { - revision = 21327; - shortdesc = "Extra harpoons, using the graphics package"; - stripPrefix = 0; - sha512.run = "1894f54ff9eb98975f4eec9250a382534a0ede5312b4b540223d298a0fe5d7d8d24abe2018d07b30773e14bacdd97b60039a458fd274bb446aeb2e26b91bf96f"; - sha512.doc = "4d69050cd2a7c57219a7c55e8d97656fe6f130936d2e79a00d3760e9139799cbb98db2f338586b65412402069b22971ac73e5b722a3911bf1402625dac3e7d52"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -harvard = { - revision = 15878; - shortdesc = "Harvard citation package for use with LaTeX 2e"; - stripPrefix = 0; - sha512.run = "64781bb5c419248934f259dafba2c43270396a1d3f49bb9a79050ebbb5655a5836a07fd69720f54f009501c5294a62f344f6b6c76adb89114a8c60d1e149e612"; - sha512.doc = "291c2a530da6d24ecf1a87818d27b6141e99944eed10cc2dced2537f30ecfc12580c2f58d01245ef53f7d2b803853ce9bf72c03f8a2c3267dde0f4c799a991bc"; - sha512.source = "58720acea1588f742d95d2916f8b1a5c8cba391243a433ae9b2cc4845dd3949c7b2a7a349b87fd663023e4d26b15b15dfb89b7f8db92e14e52f2f7ab835a160a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.5"; -}; -harveyballs = { - revision = 32003; - shortdesc = "Create Harvey Balls using TikZ"; - stripPrefix = 0; - sha512.run = "c282249d5758f6c8aa9dfd06cc4671211e76adc2e7c4f5cf925e713472e60f3d44c8a389c9ab4db5b8096336d46d99b62bde0f8c1f9fb5d22857e3cba98994e0"; - sha512.doc = "89ede2f13e82600a2e78047a08766e99879ef5c64dcbcf747a2c21b1a395f4c1a1184921a8a0064b15b86f574834f602870f6641f0f265f92dce506959c6c4e7"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1"; -}; -harvmac = { - revision = 15878; - shortdesc = "Macros for scientific articles"; - stripPrefix = 0; - sha512.run = "7acf7eb52104bab80b0b9995cf43cac842c106b8aecdff8245b0d1ce8440823e65ead75e470f00923764eadd32e936e02192ec7bbe70295ca254aa57f9b5f662"; - sha512.doc = "a0f3308b938ae73c66398c5a3140662240603248cd6fe338a22f3ca6b23f28789dbccee48dcd94a8bf84de029ec103aa35c5b9a78151ceaf61a9cb60b832c484"; - hasRunfiles = true; - license = [ "free" ]; -}; -hatching = { - revision = 23818; - shortdesc = "MetaPost macros for hatching interior of closed paths"; - stripPrefix = 0; - sha512.run = "71983591270b533a6824a836948fdd15d19c3f966c8277d8948b13c5f38b29c29c0b7fe577661f1ecc570dd71d89fa964afd254d50556b6893667cda95e21aa7"; - sha512.doc = "02c2eb4991aa9775feec0846eaad9ddb74123a64eba8a3731c8e40c689844e542793e0f6884df8666f3cec2ed43af26b2d25254cd0536920c6ff0b107f35bf5b"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.11"; -}; -hausarbeit-jura = { - revision = 56070; - shortdesc = "Class for writing \"juristische Hausarbeiten\" at German Universities"; - stripPrefix = 0; - sha512.run = "bfee6719ea75ee672a39234d9416a0415a11658c45f4e5958bb12fa67ea416f9da83d2583e7007e3dad860a18d207c42e3e0fbaa3f09afd0b3825c170d00c63a"; - sha512.doc = "76898cfd9d4bd0f34632092ac7c1d913f4d460beb9b9fd3d98c249156c406b81fe42a4bed754fde79c497f9e674f50c698de598c9bb675270e7ada1c0002bba4"; - sha512.source = "3346edf31e0f7545c1c53fbe88fd12a902ef673cf5dff0858caec415e1b30e3c26a2bad613a947f5897b6867ac5730deff8c7cf24f51d9078ed0494104bf5a1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -havannah = { - revision = 36348; - shortdesc = "Diagrams of board positions in the games of Havannah and Hex"; - stripPrefix = 0; - sha512.run = "f19498f0f9a7ce349fab4291fef80ff2f2f9eb88c60edeb76174918955fab51f22a0d06b533112e594c0f4cfba23feab58c41fe75e1c4fa2fc4db7cd9f473d0e"; - sha512.doc = "ee1a90d491debac3f22f470e5df79e11152d153cef97e8d2e38c5d8a60a1931384d65bb91a6d459e6aeba39741763fa67d589bf9004efc5059699ec621b99e43"; - sha512.source = "9831ea87fbe6e12af8c7fb49d321049316221f4dd33b79a9495c5205b60ddf2f3593c8dfe2f4157e3934f21e69e3004b05802a0d592ae608b2de69cceb2f0c7c"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -hc = { - revision = 15878; - shortdesc = "Replacement for the LaTeX classes"; - stripPrefix = 0; - sha512.run = "17c7037eb04c1d0064dbb637f51947243d1b8f07d46245dfb8f2a38a1ea068ebe41da7e2346ccedf02979003a0a2fa0fbd25eaebf7847b266e21b7c873b032d4"; - sha512.doc = "18aaf579ef82a11ea1e752524d9a04a4a0aa5d6cbb496bde380664723dd30cd421c77dfba1ee6bd88def576c76e202b328198fa6dfb4a9ab451875c3753a515b"; - sha512.source = "42d3f57fb2c38823875116a67e3e71a3b1aeccdfa00c7a201163325c31fbd47d60a1dd028c6d9102d38d6490424bb118178c7589a433a69ec26e505b805418f8"; - hasRunfiles = true; - license = [ "free" ]; -}; -he-she = { - revision = 41359; - shortdesc = "Alternating pronouns to aid gender-neutral writing"; - stripPrefix = 0; - sha512.run = "726954216d3f8328eb7868553875651c2dbc3f626a9eb60fddd770b0e236a4e09a45872020589d8f263cb9f39300d1743e0a35676947752f33933db1e766411d"; - sha512.doc = "580702222de769b066b01af45aad75717d11f46178a2b1f19e0bdc85b67497d9aed8b7ad642f76b8b85c5513f4921f58af8bcb80d1fcb88307f8ca8b07c8307b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -hebrew-fonts = { - revision = 68038; - shortdesc = "Input encodings, font encodings and font definition files for Hebrew"; - stripPrefix = 0; - sha512.run = "5c27626c22275c42c25737d35af3c39a98a921037f6b9165a3222e168dd2c679e75e6854f88713681bdaa8eb8961bf58cff3b34c207bd1775ffea474b3524ffd"; - sha512.doc = "bc7f81a0f09b544bee91bd387504f5a764e7a6df207f3255f5ba25b1fe654532b14e2c7ea9d1d2804db875b05e210b11058eecf7c15fd1fa7a7b516e2bb20207"; - sha512.source = "21203d9e15eb6d3533c7a50c5fadf2cae403dbda8316a57d2a7e834ccbbcedd483f11fdbe12d1ab72ef9039e195f31e57eee1e0df8548da052bb030576557eb2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -hecthese = { - revision = 68584; - shortdesc = "A class for dissertations and theses at HEC Montreal"; - stripPrefix = 0; - sha512.run = "ca64dc8ca2265ea038ac3c2250c4ead4aedcfda74ee28077db2b9f4019f2ea304ed02e7349ad0a191012d2c903a1ed21b879459c048b29827ea3478115c935b0"; - sha512.doc = "28e1e4940bad5a6f76160f42adbf3f5f793cc9a7cd869dfee2389229335c09036044d79d3e14f179d5e8bf32304c04fd23ff997a116338c4a3500906fa6bd1c0"; - sha512.source = "348f79081082f3b1c6362b2bc7a59b7d55947955a482bc5f323119ce3a47158ac07f44c2a95aaeaa3a3c9f2d99f322f3a163b90bc7522d613d55311973639ee4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -helmholtz-ellis-ji-notation = { - revision = 55213; - shortdesc = "Beautiful in-line microtonal just intonation accidentals"; - stripPrefix = 0; - sha512.run = "2c91c08df5e97f9f7ee17f40408d8810cfc3099b5e125b5445a89d2f0d35849f32be0d4150bf7b9f812d5c9c0994c714430fd8d015b9d4ab3bf9879deff5bb43"; - sha512.doc = "20c9b9fce33ec63cd635751acec1d25fb8c5cb4171ea06f3313c839ea400943926550098cc520c4d5fced46c61756977c6294e435821330715ab82cb894222cf"; - sha512.source = "bddeab10a607bf0cd194f9725ffe66e103605c5910abd6fce216c579ba2722afbec724f8717b52b2ad6fdc8f472553519e000d7df41c5a26a157e8eedb41fee4"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.1"; -}; -helvetic = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map uhv.map" - ]; - sha512.run = "243904e50c3458e62bf346f5a48332709db226e54b17c731ed0bdac5fce04d76b19411a12b01b51ca93b5ff7f06eee38f78a8375f6244d7b7d53116713d601b8"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -hep = { - revision = 15878; - shortdesc = "A \"convenience wrapper\" for High Energy Physics packages"; - stripPrefix = 0; - sha512.run = "9cd27826b7dde1ebd5830cdd17423f4092c9833c962be7e73b515de2e624a7853badde0c244dc26be6b7d3d9f9c3932fffc48bb4e86e06b90d6699dcebb0d497"; - sha512.doc = "1d77a9bd31e982a8ff908f772d8cf67692145624bf00db2745afaf1aa59fc1da7cae6d2e094379077a550e4d76338a5a82bef8e25c8d733547751a24c84035f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -hep-acronym = { - revision = 67632; - shortdesc = "An acronym extension for glossaries"; - stripPrefix = 0; - sha512.run = "3eeaf8ba9215868df3ad2d8eee5ed17aee0f91c5404b8c93a7ab378ff6d928660853f8dbbab4cc52421f0d902936983a8cb34badd675453d2fc30344de19fb1c"; - sha512.doc = "a17c6f61a44253d6f9db070392b146f0fa297c080f04577f30e190a2742e344c22b3d70a58d3609eea6d981e843bded2a1a01b3fda356c822b1f60ef7ed05271"; - sha512.source = "83b2899d05ac7f8b2e1525e76327303a135860a358c08dcfc6f9d1c66e79c1d743f77a625b225c477a39c07a091d282ea2869fa9f5189ae4e3007e7e792fefb3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-bibliography = { - revision = 67632; - shortdesc = "An acronym extension for glossaries"; - stripPrefix = 0; - sha512.run = "8fa9f0a0f19f7dcadc88e727c461af05f3c0723d2eef1c4c7cc91fa0b507a6cc20f0414c82f7bc3ef12932ea54e8fd9c7c402fb2041032e23ee14c6dafc3a467"; - sha512.doc = "388fed1b3b5b9de09ae4b1cb73de2f618f99293e1b3a4cba5ffaa2d5ae611e454688bea2ce01780ad844380e2de56e62c38013677bbc3a9194d0831de4cc97bc"; - sha512.source = "5e82014ec9abfc9ff19d01c929d7475f6bbc38d0e77b9888f884862f17c1332a868153315af6d13c023e8f94b3d8b567e73d610ebc17c2df799692c603d5b509"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-float = { - revision = 67632; - shortdesc = "Convenience package for float placement"; - stripPrefix = 0; - sha512.run = "ccfbce04c651a478a811b2148141090fffbdb3851a05b9d3fa7683943fde9e6579eb75693c4b2834741b6cf02a5b381d1f80bcec5d44783e71605e445840145a"; - sha512.doc = "11c922d42d6793dffab0cf82f228f554510dc089956030c9c5e76b0a17e4d96ce2ae4d95533f0f704be1d4054f35884901a61ec851fa73f68b06c87b93f18821"; - sha512.source = "c896cd60a4b8b4bf2bd46425dc615a55132fda57b42ad536807bba8cfafb65feef34cdacd4efc2b90de2b30bd859d6695b4f670d5f507786c48d19b8d0dea842"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-font = { - revision = 67632; - shortdesc = "Latin modern extended by computer modern"; - stripPrefix = 0; - sha512.run = "a70b15ded3774985b31a78ae5d05572922133d3fb59abcb482677ccefb6767726b902b62007e9d0e14950ca9e9f133c8677d6c2d352e0f529a3909b5f6da867a"; - sha512.doc = "97a4c20933260eb24a935ed7a780a6e0a49f8b305872a33de5fe6df439ead0e555b909b04bd559016451bbf5cdc3494a3854d257b1804bc022a8925166103877"; - sha512.source = "d85c106c458ebb002830f7f0cae13996f203bbc3377c66bc2776b7c501e6c2bea26530955b250eb5dd96fe4b6a18af18c9b616ca49096b9133d0041782e2ebbd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-graphic = { - revision = 67641; - shortdesc = "Extensions for graphics, plots and feynman graphs in high energy physics"; - stripPrefix = 0; - sha512.run = "59dc1363cdcbe8376b5d5de1a2220c9d70c7022d1d943f657ff226a9ec1bafc302b30255983c090656d293c0995095dc325e1cafed113ff43ea74d2a85add741"; - sha512.doc = "9398029fe703f385decf3ed9295cf64501a9ad7efc3c50bddf1ac261e780dbe5a4ad9fe5f1871c2a8f081909741ec11a93b2b399b89c841cb9b661d812f326b2"; - sha512.source = "fcd58e2b778eb16b6b0cc9d36d44f233b9f2e40a243dc8792f37b8159c4ec3b9500df418465ee2c809bffb24d919d8295dc83b661553ab413390b0b5cf32b9c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-math = { - revision = 67632; - shortdesc = "Extended math macros"; - stripPrefix = 0; - sha512.run = "4446d255ec62b12b2eec1958696c10f4d55d83e3ccf30590f40d146d1305db3a351894c73d03baf6327834d0cee4592491c0a3a57bcfa7f95af0e172fef3148d"; - sha512.doc = "5110d1cd03ca6b925ba6872932cb53c99068399a5329d7368189229103e13f79296bf6b97b2097ab800823eae6dd14ac408fe404d309c37b1e6e9a20c6543ba5"; - sha512.source = "d853885d8f6910843558fa4854b51719e3d4917a324096e5dc38cbd7b701e8e250dea3a86fb803637268f36858760c2ac82ee147cd982df0b1516b93cd92150a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-math-font = { - revision = 67632; - shortdesc = "Extended Greek and sans-serif math"; - stripPrefix = 0; - sha512.run = "0bf2ac1f414216568cfe4247f1c1c9187fbc8133831ebe7a55b2c2d3d30555db36b0c0c1edc2e8bdb799a34b20650990d26c1cc838c5a3a31c55bd9160ab1efb"; - sha512.doc = "eac39c9916a87efd036b9f680ee9b774584845d1a3451b192857d5db72cafb1eae5ce580f1225fc6afdffe80e136f69ed2447f87986cdd3afb34adc9f9d9a49a"; - sha512.source = "ff88e396d084bd47256015530ed0d9b6a2f29f67a0a88db018fa6c1efe5d949449a8ecb339e4ad438ebaec4f57792b8cd83496ccab23ca64e383e28ac3929cba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-paper = { - revision = 67632; - shortdesc = "Publications in High Energy Physics"; - stripPrefix = 0; - sha512.run = "2cb6988dccd76f121a7aa39de3246559caedc0cc697a25382f7edf6cab36af32b03db915898f6073b31cd459e8dabb3da3acd387bd0c027e44d40af917613c76"; - sha512.doc = "dcb2f4aff93c609edae00fa44c285cc6f5d5bed76026c8d5f3f722deee19dc197a28dad7372f2b44466036d6e8aa0e576457e07f953d36953219175224fc6818"; - sha512.source = "ca7865f2f8ce574fec8d7b3a9faf77ae3899d75a2c2bc7200b8d355b89149cd88e0fbba66d5060f5b5cb567aa6a355d5ba45d34863f7fbd5749b4073e6114437"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -hep-reference = { - revision = 67632; - shortdesc = "Adjustments for publications in High Energy Physics"; - stripPrefix = 0; - sha512.run = "9cc4b4b63f41b28fa95fa6a81e47b5028c8ed0bdd03670c6d239bbcc09922265dc69b443ab2b1a4032cbf966a5202ff6e8b1a8c61afc2072e6628d11e071391e"; - sha512.doc = "588d2c5a2990b44d64598cf698cc1d6e04e92991e5319167e412692d62ee54de5c6053e4e10ce719f470ed08c028d03f9dd301afb65be4f5370742fe621a80b3"; - sha512.source = "84ca10f669a9541f7c51609b72d2caee0bee956489b4b9efeacd356548ea573457bc5cfed865b3806b1175d0d6b3b47793283589eda435b065668395a01a255a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-text = { - revision = 67632; - shortdesc = "List and text extensions"; - stripPrefix = 0; - sha512.run = "bbbf90b0e85a9b962267f42a2ced125448f8aa85bb93e347214164167a151e663f647b754e4b55faf42041ede7b6e90b6a073290056e00814ed25bf554eb20b7"; - sha512.doc = "5c914c5b3bbda70d93fb340b863c656d67a480eb3f59c51f05fda65396d408ecc26229992bf4a0161fbbfe0801e8807381ffe7fa3a502ca68b56f5a3afc88caa"; - sha512.source = "0052e0357e20251faab93ac645cec196a504881db615869e18073124671005a5c942e791705f2460f55bbc8bf4aa4906b74ff6cacc7174c59aaec6106afb5291"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hep-title = { - revision = 67632; - shortdesc = "Extensions for the title page"; - stripPrefix = 0; - sha512.run = "6da28ecfebbb06469fc666978d8674e81b60ce019e0f9a730bafab928d95af4d92bb8783275bc261a43cc61efcb14cfdd4973fa9f52b92f33d70890983d89e53"; - sha512.doc = "3841dc3378d6f8fff0783815f68d75581dc5623961799a034410de2e37224fbf0b1d9ea6b0b65b9b5c339cad565520960d51f7077f7c785807e9afb5acf83d3c"; - sha512.source = "40f64530f2328fafe8163d4bf0ce2eaa7ff34f3d1661dda967bf14593af9270e33c8e3eaadd79b7d9b70e065a8876afddeaba059c64a7b0759f1cffe3bf565b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hepnames = { - revision = 35722; - shortdesc = "Pre-defined high energy particle names"; - stripPrefix = 0; - sha512.run = "ec893de8b4cedd1b18dd16c3237fa79b434e91cbab4b856c4fbe11afef162b560bda18c0fd75ab2c47b863cdcca1d64809a139d51f04e9c2f45eab6ba4036c28"; - sha512.doc = "36a0966b755b6bb0f0dd27c80235e66af7c5252df1ae27652e59fd65fc5f280eb487666eef04206813438204dc592c0295651ccf0bce1e5f85f4797cdb439850"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -hepparticles = { - revision = 35723; - shortdesc = "Macros for typesetting high energy physics particle names"; - stripPrefix = 0; - sha512.run = "fb9229745b601b6f731c959856fe46d6871dd3a1c7fec2bac8116f4d74a575ff52523f610599979e25e7147b4ae6d36906d19ba66260356f15bc1a47a2d57460"; - sha512.doc = "539025b2f0998bf031f417d002028e29edc58c1818d0dc9c07ee58c6877b5709936be23985ecd5a518c36187f451a2d5df66b5832d0019ff8b755c763b903aa8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -hepthesis = { - revision = 46054; - shortdesc = "A class for academic reports, especially PhD theses"; - stripPrefix = 0; - sha512.run = "ea6543fec07480af8db52e43ea5fda346ed4e9ea245af0810a6988d864675a903841849e502506b333cef0b1685a6946ebf1f686bbc74f4ddcc7eea676c019ed"; - sha512.doc = "e456a0ca03da4bf71d767616a140b6e1d922e05944a4db2c0cbb360dff39fc7e8bae741ae5adb49972253f38774f1a9c65393bcf4e38e3c568b0215a04f63d48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.2"; -}; -hepunits = { - revision = 54758; - shortdesc = "A set of units useful in high energy physics applications"; - stripPrefix = 0; - sha512.run = "eae3b071eb3c81e79f166a925f5a3b16ffa3e992073f318b8a193a8188bff5b5222cef7533e398f1481671e17849123947577c13a182f40136124fe6368547ff"; - sha512.doc = "86f0080a818aae8743f9c2ef20a3c87f2f23e29641037e91a89e3f195f55fb6653c1ebf1e990b1a984f2acad26243bc07afda6cb2b00d58e5f2416a0f8fddc04"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.0"; -}; -here = { - revision = 16135; - shortdesc = "Emulation of obsolete package for \"here\" floats"; - stripPrefix = 0; - sha512.run = "35c9ac325579de5d3bac4b8d16b1f30355398037cd0ad1c52b1585eb7ec666e743680eb05bec7b1f8cfa3bba3d7f5c0e6e06cddde6ca879ea708388df140eef0"; - sha512.doc = "482a2ef8edbe41ce76e2c32bb579b132c84306cbd5387cb5249b10a02826e610229ec9c75a1df53b5b930bb982e1157ad9ffa63a77f84461cb6cc6332f6d6e54"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -hereapplies = { - revision = 68638; - shortdesc = "A LaTeX package for referencing groups of pages that share something in common"; - stripPrefix = 0; - sha512.run = "b796f6f276bd9cdea0f469482c96aa42956417c544647df201a8dfecfc5041b726a1ea1084a51b392b6f71b3172961689cce0cc7be63c146ba7edc3dc8bcac35"; - sha512.doc = "185798c65981f2d09b5c49ac3bfcca8763ca929399a9f534316ee8345f5550a437be10dd39bc886febc5d9de4156c0642c125ca2a033d129479c9cf98bc885c6"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.0.2"; -}; -heria = { - revision = 69058; - shortdesc = "A LaTeX class for Horizon Europe RIA and IA grant proposals"; - stripPrefix = 0; - sha512.run = "2ddbf4e07a47f72b402087046e4778d7d655af7243465bb7ca4ec10c3c15b72c49d8c6343e4ece780ac4aa1e2007e3fff4f8eb395673952d8050e7b6803b275c"; - sha512.doc = "08e4a34df324d61089a7632b2b8d2b41ff4df47fe633803c1c246525b86ec25ec40f6b56182432488a3cf4d1d90b36038773104d2c78a809b12d04f7a9a23bfe"; - sha512.source = "307a67c4095b52687fd978da3a1aa90b4cfb484d5f00876c86bad6c7103d926cda269ea081781b08a4b3cc2990e6570f60590b2b431f6a3f9c4d5c58d43016fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2.1.0"; -}; -heros-otf = { - revision = 64695; - shortdesc = "Using the OpenType fonts TeX Gyre Heros>"; - stripPrefix = 0; - sha512.run = "370ee21398ddc2f3bf285a7c6c545e998a192d4dbb5790a7d2a9b6835d9076871a349001901764761fbdcac0e29d5c0fae8800dab4a34918998b54b7a83275af"; - sha512.doc = "fb99aa73c128cfb184a097b0d9a32a007ffd9e135d74b543cd23689bf5284176642c1f7a635b1a24ee167b5ee44daec090f7f78dfe9636fbe88351aef125d8ec"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -hershey-mp = { - revision = 64878; - shortdesc = "MetaPost support for the Hershey font file format"; - stripPrefix = 0; - sha512.run = "8759bfc2237fc1954e3ea3a47355cd42c48479ce01d959cf0b072ffba4f26068e99f32737bf8669a509f53085b8d8e5c5b0b02f9a7fa6ba73a38bc996539d902"; - sha512.doc = "d869c70b0919380ae4d88d9cded20baf9a8cce0946550d1a3b80056f80bcf2eaa7fbffbe16a3101c2a04fda512ff1b9160786c05c279a78732e1909782cb2b23"; - hasRunfiles = true; - license = [ "free" ]; - version = "2022-1.0"; -}; -heuristica = { - revision = 69649; - shortdesc = "Fonts extending Utopia, with LaTeX support files"; - stripPrefix = 0; - fontMaps = [ - "Map Heuristica.map" - ]; - sha512.run = "de0cae8f801f690e2d07ef7b63ad4c91d91ddafb8c3044441acb9d6a8e943f1c1667e17c0d2d9e4677b3a1a562b072747bebeeb01ded4bbd713b4e6103221a4f"; - sha512.doc = "406d07cc807454c429e644b7572456b2d9f49d2f48093007c43cbd3087d108beec1806f810508a849bfced690c97141ab34a2daec7ec641c8bdc71cbb55a43cc"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.093"; -}; -hexboard = { - revision = 62102; - shortdesc = "For drawing Hex boards and games"; - stripPrefix = 0; - sha512.run = "e82683253d7790448bddbcefc617d0f0e91b5373de477f1c78a5db9256d632983b1d5f700a0c6fcb4490b746e932de3fe40a22875a6c0d37f6d0ae728867b73e"; - sha512.doc = "97c92b9c8644cf060da8b3306c8a3f26d1c59f36b1731ca4b6af06ec77211ab676963d5ed8fb70c6a63096a7224cfaac22cf77d5dc39f937902815bea778f323"; - sha512.source = "f2ab006e01d1ff8ed68252f594d3340441a5a6bed7cc0cbee6c28e119a923a20b186e1f08db7444c75de52c86afdb9aa86767278f0b506a9c601064783baef95"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.0"; -}; -hexgame = { - revision = 15878; - shortdesc = "Provide an environment to draw a hexgame-board"; - stripPrefix = 0; - sha512.run = "b16abb669f6bb5c3111e6c333353cc37a76431c49920a4cd22af79f6237f78a5c56124c5854b7665e9dcf963fb2715c488dd7ef4df86d5582aa7b3dbe3d08822"; - sha512.doc = "0fad11a5510dd1a2ceec227c46c3f8c0c387ab3e2819bd70765d363ca5f97822147bfac62e69de773a96d24a881394c35c1542a8f08a1828a82f94aaa7f02644"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -hf-tikz = { - revision = 34733; - shortdesc = "A simple way to highlight formulas and formula parts"; - stripPrefix = 0; - sha512.run = "47ca98b066829e6ea2009c4beb92db2c7671642c495f1011df9be00d546f3613b7853aba5db88e3805441eab66c873e15b60f5ef75cf21e906f80b5f11aa30a7"; - sha512.doc = "234a8ccdd9cd921368f700fdcca818d0c76265371ac89e09c1a54454fa3e00f0f28fdc7f962c227f9bb69d851585f2c65e20b4a4093aacc3ad0aa84d1abc7f87"; - sha512.source = "74fd110da2d0d248d70811db52f220012c0a41cecfaf702765cf8bdeae98d9e1a96c6087770de4fcc1ec249901ccc79837ed4e89b4527dd3f746ecf503c201ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -hfbright = { - revision = 29349; - shortdesc = "The hfbright fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap hfbright.map" - ]; - sha512.run = "91c8b007dd8ce71af9dbc98a66a82a395d68fc87a0abcf9518b5b89a98dc23b28f1b9b9aa551f82b920dc3e2d8b6500884eaa3bc98be48371a9774f9f283a641"; - sha512.doc = "7de24b513093d965fab1f8d7d13ec4b356e7f5495cb3a8f17204b1a786288488b4921df6b7e184262bdd3aa11fed6483a25d0bf8e898db05c8b1f7dff769c175"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hfoldsty = { - revision = 29349; - shortdesc = "Old style numerals with EC fonts"; - stripPrefix = 0; - sha512.run = "5ff36855df468bf59d387d56f4ea65c86ba304eb2495f2ca110558ef48c528ef444c7ebfaa378a454c311c806525ddaa639a32d3d1b16ca492b641f223133390"; - sha512.doc = "1f88ae3c13857be317ac2097093bb368a9f1ffa2a8fe1b5e15f59622dabdce2f2b3aededbca31a4d17f05c2dcb28f8ae0c9be3cfb1758bab4501a99efc68612c"; - sha512.source = "5ccd5708962e9ddeea3ac41426cac6469ae22914fc4bbb5779e25d592d1cfb0df78f73d79c969e00b68b38eb9ae7016cf394f9592c14d9400bba152e6fc91092"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.15"; -}; -hfutexam = { - revision = 68829; - shortdesc = "Exam class for Hefei University of Technology (China)"; - stripPrefix = 0; - sha512.run = "4ebc270b01ed4f0e9d1aa501cb16cc0594c209cb77423b3b83b43600cb1080fbbfa8ecd9d2512e460d7215260a3045f1f33f469762e8a7321ace472d69e0a43b"; - sha512.doc = "bc70bcca6f0dc432fe6fbf1c92ae8a364a93a8e94d65cbd22939ee2313bd5d82e2446e60b6dc0f8a4b88e49f5cb2b3fef9ea5502e5362860eff10a8123645c40"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -hfutthesis = { - revision = 64025; - shortdesc = "LaTeX Thesis Template for Hefei University of Technology"; - stripPrefix = 0; - sha512.run = "928dc93116a78a440fd1dcb163ccd5d88daa4b96a6850f5bb45c996c3c81249982588ffda7f51f4c76f153f3df6f85e033ce15d28593c4d6235f7781a829ddb6"; - sha512.doc = "491a841f563a79fbbc71d19bc9aa259ffc4429db53c86812724306432dcd7a5d3af98eb2ce1defd4f6af02fd5f4b34d4b5a96de540e95bd59fd7991ddd5dbc85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.4"; -}; -hhtensor = { - revision = 54080; - shortdesc = "Print vectors, matrices, and tensors"; - stripPrefix = 0; - sha512.run = "ce772bed045b85de5032e3b4beff52958e18513e2c9628e67505b75baa17befe4e3a5eb86f812305b87dbd15dd2f483df78ca7c5db54b64cf18abc75a2ae8f59"; - sha512.doc = "aca1224b327f448bbb3f598b350fd4e569960bac9d05b8674b4cde79c4a13b376dc2a932b8fbd315f63f9dbc930ea28599afc18340eb36d4a38d967c14b62152"; - sha512.source = "6cf27dcfc865514e9274053bace69bd71e6699a501195c553ab3386723b375714f14829e70163539443c4c63b2821be8357653f137943cf49f26e0569c0fb0fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.61"; -}; -hideanswer = { - revision = 63852; - shortdesc = "Generate documents with and without answers by toggling a switch"; - stripPrefix = 0; - sha512.run = "9124e631262dce82cea19158e34353817129e014ec5808dbfbe87df661127d516664de2a895622344dc663c68ca51731bb6d887a5043789e3d830fa908b82cdf"; - sha512.doc = "f9bad79f55157a0f9007c1f551592d0e054f2a519aeda36c175afa807a70542068cce1b9bffb31855de8e99e8460fa22f41f046be25c2bb4757ba859300b77b2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -highlightlatex = { - revision = 58392; - shortdesc = "Syntax highlighting for LaTeX"; - stripPrefix = 0; - sha512.run = "befd40ea2efc15015a76f97add004e33da86c628b3bf58277f8a9feff9396544acdc6603cae74e7bb88d2c819656edcbce9897e32f65156f39a0667c087a491d"; - sha512.doc = "20760262af6cfeccf512ab205fb874b3f1c9b3c15637ed6500bf5b627ba2f319963eee0f76aa480e1257b0cb31288829bfe324f05afde290c3433aa9a018c10d"; - hasRunfiles = true; - license = [ "mit" ]; -}; -highlightx = { - revision = 68756; - shortdesc = "Highlight formulas or paragraphs"; - stripPrefix = 0; - sha512.run = "64919a37471b4ed0520cfcf8685a67ba2f9f84a278b9dc7524a484876e95072906cc5a7d40bd8c751ea2d4ec65633e589274e0b729f43625b46f91928a50b3e3"; - sha512.doc = "ff1b00aacdf83fcc54021520bc447184ebf29498d2b5ea66b3c3266560066bc1b05d7f9edf61eee810100531c76db4c65814cb1d6c3051dd1e3d4911e41c145c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.5"; -}; -hindawi-latex-template = { - revision = 57757; - shortdesc = "A LaTeX template for authors of the Hindawi journals"; - stripPrefix = 0; - sha512.run = "1f6651a4aa033a7cff44caff62d01f3dc5dc280bd19d8a0541c78cd35116e9f765517a078f6f6f7a25f9ee42fc4e4e743b86a746e80583b491ac399d46e94ff1"; - sha512.doc = "459a131616a15431dd489aaa87a23533ae5eb58575f38757a81af8eba425bd4e5c0c0f3a11a3c030d04ecd7d29e9ab08b3f4e270961c4c8e8791c15a497ba7fe"; - license = [ "lppl13c" ]; - version = "1.0"; -}; -hindmadurai = { - revision = 57360; - shortdesc = "The HindMadurai font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map HindMadurai.map" - ]; - sha512.run = "24a585a4452895c901b41e64613d0bf3b2438c0bdded45b38ec6b61206cca96d5f0dc12ee5fb0073bcce95f208971e0838469e000108bb2d24567b2c239ba936"; - sha512.doc = "9cde302caf78d14cef5c191c6df0179991d07d8dcf40dd46941a966062d3df2ed5ccd21b6f5e5333bbab9245962cfed9ba75161c16bd8e0a914c231f9f420ef6"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.1"; -}; -histogr = { - revision = 15878; - shortdesc = "Draw histograms with the LaTeX picture environment"; - stripPrefix = 0; - sha512.run = "987c392828a4995afdb37b10194c7735a7dfe3375bcc6efda6592d3f35351c369c045a2c1464cd2653d6275913a335ce3d527afb44c51ee38d3038d4751eaadf"; - sha512.doc = "6cebdf9d6000ba48dd8106645e7a05709ced06c8790f8383a036629d8d53ca434f5c5aa0ff511754ea9e00fa743e435a304dacc16edf18098409972f763f9087"; - sha512.source = "f5e764adfe67c9e07261ff1211cc08ac9b4b076e67683dc50f9759e942f50810a72222a9669770b9f281b7f821d50a7da85014ad65461dcaf1117d54b98d89a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -historische-zeitschrift = { - revision = 42635; - shortdesc = "BibLaTeX style for the journal 'Historische Zeitschrift'"; - stripPrefix = 0; - sha512.run = "da501792653c77f7cdac978a348e1267d4abc2e80d8b5565b47fdab4a1e2204f9544bab972a291d191ce26bd29203ff28a6440e2f8969cf1b33a5cea48998b04"; - sha512.doc = "1b091b850e4936e8e6484ca484f740005c66458655a0cbe24938c3f33f23807fe9b7a0ab93b38f6a3481c684e35031398860d5452f6bc3fc8a8e6f4c2e82f927"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -hitec = { - revision = 15878; - shortdesc = "Class for documentation"; - stripPrefix = 0; - sha512.run = "d7ebe166a23c05a1b78552c102507e697c07b955cddc8f4061d22fc42fc414664d3a1bc1c08e0dd122a987c736d24d4935dd944b37f62fe260b3c811678a3b30"; - sha512.doc = "f166b529f29f0470770d5a24e0f3ea2be9021732fb5373611b87cda10ff2196d1d121258fda75369a2f0f9a65324f4a8dc0d3c5f377cf994c04807b18b5a46f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0beta"; -}; -hitex = { - revision = 66924; - shortdesc = "A TeX extension writing HINT output for on-screen reading"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "etex" - "everyshi" - "firstaid" - "hyphen-base" - "knuth-lib" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "hilatex"; - engine = "hitex"; - patterns = [ "language.dat" ]; - options = "-etex -ltx hilatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" ]; - } - { - name = "hitex"; - engine = "hitex"; - patterns = [ "language.def" ]; - options = "-etex -ltx hitex.ini"; - fmttriggers = [ "cm" "hyphen-base" "etex" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "b831998a078c61be41f376c73a63d2996ebbb128aa90dcc9f21e1e80d2e834d6628d150d9e98819defb4b38fcfd9e1ddd0239fd0ddea19d0086c7187d3d80a7b"; - sha512.doc = "f278d0d4a4b37e4489ba46ee3325a9af5bd7205359b55f30a3de10de36182c754974e0b7a0f506ac233280ee395bfdb5a8f7f5c3ee1cbcb0c30480338968e0f9"; - hasManpages = true; - hasRunfiles = true; - license = [ "x11" ]; -}; -hitex.binfiles = [ - "hilatex" - "hishrink" - "histretch" - "hitex" -]; -hithesis = { - revision = 64005; - shortdesc = "Harbin Institute of Technology Thesis Template"; - stripPrefix = 0; - sha512.run = "d4060e3b06d2a103f414402e83bf5f5277c2af784b00abc7c6c0468518b0bbeded50f08735573e4a170eedd46227957127e3c3d2ab44edebe7386a7893af432e"; - sha512.doc = "c5fe2912c4429fc14fb43aa7de9ef76e30b0354f8e673ab9ce693c75a85f5c6dbf77927d1dcd82c0c5aae4a84a665d37fdd505f1bb2dd0e1ade7e5dad3ba5ad1"; - sha512.source = "64515fa70127ba17b9a8d846c9670bc93f16db80db83945037a4ae8b505979202a16e0fc7187731ead320078b8d9277337b555c2b2a271e99677e0330940b9f9"; - hasRunfiles = true; - license = [ "lppl13a" ]; - version = "2.0.11"; -}; -hitreport = { - revision = 58357; - shortdesc = "Harbin Institute of Technology Report LaTeX Template"; - stripPrefix = 0; - sha512.run = "e91894f8589f029d9cfe58d743d495131c24f0f6d6705d52d34ef34e1cbde5ba6dfd8e256cdd09ad7fa3080c613c3feaeaa15d3ca6ddb51fb82ba0a4bc333b99"; - sha512.doc = "e7f0b2566042a8442d5fd5cf36e4eeaffdf093a682b8c640ae8b059016997148d17d9449fdfc6026ba169731e0a7e2bb60c525a4ace29e296fbf1a910e887e9f"; - sha512.source = "7abb2458fa0a46e21c4d7e88699a3768555e954b37d2406a11d26925f520cad6a02e22282367d6787c560d0cecd34a1ecb6e96335b3f22930a083db5aa50e649"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -hitszbeamer = { - revision = 54381; - shortdesc = "A beamer theme for Harbin Institute of Technology, ShenZhen"; - stripPrefix = 0; - sha512.run = "a90ea22943c228d15f659bc562d79b9e50b157451ee9d06b02cbcdf5a1ef4c1eb353c756e0963d113d6258c1799ab22f71a79905387c78638c01abeb3d936e00"; - sha512.doc = "84d8a9edf719b1af7ee9d8276d91bfb15306bc3a5632c5c0290412533a5c321c1087bb642104d47137007c9328a346f72c8ab87b9d5f8b94e3ca0b6d2fd18a70"; - sha512.source = "4e62661f3e51baede19234e9bea18065833ee07d1edb6efbd434d8cc194f04adb3ce48e74f93050a4e9fae1d4b77f5efd0346925b6ead46a344503b9af96a23b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -hitszthesis = { - revision = 61073; - shortdesc = "A dissertation template for Harbin Institute of Technology, ShenZhen"; - stripPrefix = 0; - sha512.run = "b7a3dbbed2d9520aa26fbf88e9fd5f864912dbf0ebdf052cf65fe888676b9d5ce9917d154bef8bed2c5cdbec6bba5ce57cd434bdf3d9ff8c41ca6fc12f07a8ce"; - sha512.doc = "577c2dace816b5356e3a2da21f8e95aa165e55b75f5df0524d5abe6649d6e1879b7a2e97d0da88890e37baa05becfbcd567b977d62c58f17e0f372234cf00b36"; - sha512.source = "cedf9d399434f48032d4bde2fb91088320b2bd8b939629ee71fa98e744e8de1dfe14b4a01787fc9eecaa7ce8931b322bc0fccd7d96c7eb5e24f2097362063fa5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2.1"; -}; -hletter = { - revision = 30002; - shortdesc = "Flexible letter typesetting with flexible page headings"; - stripPrefix = 0; - sha512.run = "bd79dec347980624c634918880718af9e434e24acaed206815e974c2db856e8f424e12b6870d920079626423f18a02fd326bdc387c256ae9c3a1dfa4ae26e71b"; - sha512.doc = "67a9a39cf0c8ac1054588ad542a8ba3705e94445920d4ca85b46423a4cea364c58e8d2b02b7d7579c9684653734f0766e8ddced28a7c5ec77e0daa3c3dee26b9"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "4.2"; -}; -hlist = { - revision = 44983; - shortdesc = "Horizontal and columned lists"; - stripPrefix = 0; - sha512.run = "9e2150f08a7fac07a0e2e36edcecbd5c16ab3c119d8532fbae9399f14c6c7567d2cf4e2a92eda9a650049a901a35b6a9a0dd3423a06da6a9d266a3859392334d"; - sha512.doc = "5b3748d7f67fb51dc0df2a03318e96ac9224abc42291ab475a907befa14fc210d9d2371005150404480900865e8ffa9f97e3ab122109bb5454c3b061f66a064d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -hmtrump = { - revision = 54512; - shortdesc = "Describe card games"; - stripPrefix = 0; - sha512.run = "34b2e61744e3f8cf180a61ca13788834466dad7bdf831e576829e0f6613c5e8a6330075e89516915728a5936a68c14288c79e0f050e5956964d69bab3784d9c6"; - sha512.doc = "36c1a35cb4efb4dc340a439a921252cbaf48d3f0b7fab0010a7fa22d8b03e7b5b644244410efa9fdc63b5fbf69eb9396cc048908d00210e650941a0647d3f4d3"; - hasRunfiles = true; - license = [ "cc-by-sa-40" "free" ]; - version = "1.2a"; -}; -hobby = { - revision = 68137; - shortdesc = "An implementation of Hobby's algorithm for PGF/TikZ"; - stripPrefix = 0; - sha512.run = "0caaaf772dc325e70594f909f1a58740224195aa7af7ef86571e7a97e1245cea5ad6a704415a3275719fadaf74ec55605e66af55dbbdff4c524f529e121035ad"; - sha512.doc = "3e418503ef48dd0be479f17171d8c6767c77da95d43a2f31a374cbb6ed47c5129e2baa64ca15128240856790ea92acd2b090364384c29954266d2b9ec6aed362"; - sha512.source = "5978e0c2f5c30145a9a5562661004a50cbb5054ea98907c25690bfd1c55f13190d74283ef79e7995d6f63d2d1516919062fe746b989227a4e95fe091ff5c9acd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -hobete = { - revision = 27036; - shortdesc = "Unofficial beamer theme for the University of Hohenheim"; - stripPrefix = 0; - sha512.run = "d2c79f5d39fbe82b43704a78add3a016768ff282d48ed1f49d1991c6ab56bef5266e8cfa7b3b03bcc944990d407ae43eca99930270ab84679f51323407b861a0"; - sha512.doc = "ef7b1bd487c496cb2ffc01fb2940a72ac69edb1a5516d19ce6a6e6cb197ba6f517e03ac673b2372cc9cd4f40e5c6ea2469c2712528a10a3f5ba09e9d3a46f209"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hobsub = { - revision = 52810; - shortdesc = "Construct package bundles"; - stripPrefix = 0; - sha512.run = "586189051038582c9303935c70bed67975f51472d28b533e4b72ef341d4d93ad8f313774a5c585baf4b72d607101941f01176892499c7ecc5cec3ede2e28a693"; - sha512.doc = "8cf2210285b162e52e2cbaf0d1a9e7027ca3aeb7da81ba238fff97a9cb10c7ba9058f5eb4f28303031a7774f457207ace1f30610cef2f733dd65b35d9ab6b1b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hologo = { - revision = 61719; - shortdesc = "A collection of logos with bookmark support"; - stripPrefix = 0; - sha512.run = "d4c5899f35a7405ff19ba810af17a86c25ba76cd01597dd19e074ec468052a95c85f8a80e1f0467f48f72280246c152bb24928a68fbbdb2cf6f0788cf94703b0"; - sha512.doc = "f92326ed2d0bb3ac455a54889b469f69563d4a91e80883bfcf0ce92fb55c0dd63423be8ec800696f8c078bede28929e8a79d43174e8cd1a802b4a6ac88cff178"; - sha512.source = "38d75dffe94c9af12005254231b3fb7fc8bf577993aec3ac3e132d14f304e400806627058a98f5ed1f8f9dd5f4ce6d8caef1214ab8d5dee31aa66f47126bf22a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.15"; -}; -homework = { - revision = 70050; - shortdesc = "A LaTeX class for writing your homework"; - stripPrefix = 0; - deps = [ - "einfart" - ]; - sha512.run = "df7e3907150a637b948ead1db86158058a096ca1df98789f012a6e2ad2aef2d4b84c17dbe0d11ef2a459f1fcf9708d5775bbdee25c4542eb3f5439b95c346c89"; - sha512.doc = "6dbf5889b71e0022f87c59008b884b49c7e882d99dc2e7dd39a2e04d8429a71064b71ea389279dcbe919b1d04da9dd3bb6a4998c066aa507ae64f96e95c1e94c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hook-pre-commit-pkg = { - revision = 41378; - shortdesc = "Pre-commit git hook for LaTeX package developpers"; - stripPrefix = 0; - sha512.run = "6fb3009d4bb4016f0d6e92571d52aaf7e3780d39a6b2ec73ffb37112b3f153ed71ecbcd985b81dd841f296a39da83e9004a2d6e6e85e9a49765e1682563cfde3"; - sha512.doc = "3873c4714a8a6d221f860a5d0606113c64482b363727067e0017d27e99d73f31cfdac88a799fb1412225baffaecd7bb03dbdc66b607a075b1e4539ffc0df2a9d"; - license = [ "gpl3Only" ]; - version = "1.1.2"; -}; -hopatch = { - revision = 65491; - shortdesc = "Load patches for packages"; - stripPrefix = 0; - sha512.run = "6c0f9549ce0321d9080cd0dfd3062eab47722bedac79293a14019c25edfdca7afd0cd6bd3b7be67a99a93ea0b347ac798a7b24909886d300e7085ca67d1a5c42"; - sha512.doc = "4fbf84371053bd67fb3d4b370bc335013cb62042cf9c13d2fc1c63a582a56885a93f73a44aff8986b4c657f7d172a1bd75cbde556633647a1abafb72746f9150"; - sha512.source = "bd32091e28973236d4de3255642677966c4c856da4d53ab811780536e3c564956ec8299d75f553790f2208ce2ccf9356fead39a5f501f53e91d108782bc3bcb2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -horoscop = { - revision = 56021; - shortdesc = "Generate astrological charts in LaTeX"; - stripPrefix = 0; - sha512.run = "d00c8ecbc9c76c2864a52a8bc9f802477e402a59c86789252bce1b8296735035b7b9cbb1c3a18baa76cd1d308d4af53d7d2f64ee9aa37a70e33bf27e1465207a"; - sha512.doc = "9bdd655263da0847bed65c71e423e301a35e69d7cceacd650c0e9d4be91800c0de5fa0d7aa917a6d5f5abcc585ed031e6ec84ef003bb813be41e3daa3ab95f82"; - sha512.source = "40627807a0ccda26d1ffd1e2340542644b9d38f5344e427bf33c2e6ef72acbe9de9b7c11366d5ad258361b217373c13a9c8fa88da7f8176af6c738440d054626"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.01"; -}; -hpsdiss = { - revision = 15878; - shortdesc = "A dissertation class"; - stripPrefix = 0; - sha512.run = "4905368d081cc6e7f2c7b43b28d4c6e22081796d8594e5a07e521bb7ab0fb14c9ccce1dcbe135b0cbc5a7b2671e3041d7764ff80c7e1543b4ac4cefe945794b4"; - sha512.doc = "566f0509feee0bc5c28481fb62f2c991827cd5855f9696fdda79628f5c43329b39dd508fe9613d2c0f823bef421a97393fd303d830c779c42ac67f88303a239b"; - sha512.source = "8337cbedc42502ececcfd60adf422e15aba32381c46489a82d8b618286a4d8848c0288136771b8acdbb03af9f39029e4be8e1c287f6dac9bd3ade3b727e8ec8e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -href-ul = { - revision = 69359; - shortdesc = "Underscored LaTeX hyperlinks"; - stripPrefix = 0; - deps = [ - "hyperref" - "ulem" - ]; - sha512.run = "e8e5d7767c93d0f30a7cadadfb2c7644078b590e46fa073db9251426f961dbec4abbd0dfcf6db6056f9a03342a01d706e19da027f64a01adcfa584a9b1becd2e"; - sha512.doc = "56babcea1003db2bc7456ccc77e004814d9dbb7711289e2a0af89548ef2e6b146f027ab7d0503628c7e61ba25691b1b2c7d5a24253e0fb08a30256cfde0c1e5a"; - sha512.source = "eb842f9a9b01a36dd033f2079f0f4508eacad634c89c33e6c2607e78c6016fa441cecffe82fdab65c27870af5b3eedd4e0af45a9db224cd7c60c43a24b1b0d93"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4.0"; -}; -hrefhide = { - revision = 66189; - shortdesc = "Suppress hyper links when printing"; - stripPrefix = 0; - sha512.run = "f62671bc667f8a0eccf2d63b06b55e5483a7f5d1f97e4a1f829c898fe947adf048c21cac10b659160d6ee51f0ad4a48a3998a1e820e387881b6df390ce9bbd0f"; - sha512.doc = "0ade5f947160493a66f8772d6980db65d0c52ef03b1c12cc2841ae40eeebaddb8b0af50a8c28b010cfe7689dd1bfaa136b80c419fe26ecad302699e754f372b0"; - sha512.source = "51373bd9570c5df5ff388e9174875db7144e5868a0da8d5d27a9f4c332dc37c97436d1ebedb60c18b47a1e6befa07e5703fb1d6d5d5f872d46f3bc3e2ef71b84"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -hrlatex = { - revision = 18020; - shortdesc = "LaTeX support for Croatian documents"; - stripPrefix = 0; - sha512.run = "14bd6fdf4a60ec599971b1f5ee7ae5fc649b0d1382f9dff8bf9905f4623f3964c2d552bbc4485680d22cf04651a5e49b71220ec2c05e6599356b6dcee6e4d122"; - sha512.doc = "ecd67675466d365f00e49b775ae3e5264e2d10d574dbbe913d52b3a5b553fe942e06fcca26cb2357fa76688c55fc4268bf7d18f5cb2a90663bfe47c11a5bbde7"; - sha512.source = "01f47918a1926f36840fd4d78debc70cbe09fd2a52b06ede7b40d7c3ce0d42e6385d54cd2cc96eed8bc222ebcbd2e7ab191c41f8c8df82f9b5ff93d2e0f54a16"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.23"; -}; -hu-berlin-bundle = { - revision = 67128; - shortdesc = "LaTeX classes for the Humboldt-Universitat zu Berlin"; - stripPrefix = 0; - sha512.run = "57b3122fb063e5f930e5d94aaa94dd00fccbe865570c345abbb6252c42d3f67ed7f2dd163d9474452142ada7691783b7b4e0aaa8a23fcf6320c4bbc581e5391d"; - sha512.doc = "91483639fbbe4b073eb299b0153eb57383dc59c7d669bfc07e275bf445b22f2eff35a7abd632388d701eb23eb833561d9ad4d865f3e8d7495bf44c74be8dd12e"; - sha512.source = "eaea8de8f9ff48ee7cc3d1d91819cfad340f9f8aa2b666bc23fd28489c585b4344a946cfca6334620acbefa2602f90050476c5da56552088b1c1ddd3c483af0f"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" "bsd3" ]; - version = "1.1.2"; -}; -huawei = { - revision = 69871; - shortdesc = "Template for Huawei documents"; - stripPrefix = 0; - deps = [ - "anyfontsize" - "biblatex" - "caption" - "catchfile" - "changepage" - "currfile" - "datetime" - "enumitem" - "environ" - "fancyhdr" - "ffcode" - "filehook" - "fmtcount" - "fontsize" - "footmisc" - "geometry" - "hyperref" - "lastpage" - "libertine" - "listings" - "listingsutf8" - "makecell" - "microtype" - "pagecolor" - "paralist" - "pdfcol" - "pgf" - "pgfopts" - "ragged2e" - "setspace" - "svg" - "tcolorbox" - "textpos" - "tikzfill" - "titling" - "transparent" - "trimspaces" - "wrapfig" - "xcolor" - ]; - sha512.run = "0678b16b3fd681a0d1b8da43f87ee2d0d42510de15fa84733c008c8e8298de0f9172ed0046ca58862539564e960b94b3786233f277734320e74678492e5bb3a4"; - sha512.doc = "640d3b244481aed907025fce0271a81cf31a55ba991f599c87e146c005c6349078993b43df7d8260475c82d5abd6d23e77988cead11f0b74422c6bb231bf3595"; - sha512.source = "dcf0989d3769ff2e43580953f009efa4d9372e58d45af5821e81e8766096568a59ebb1ec21e68e2b1696edd5e2cb6f9fa4ee39daf3e2d46d10c56a2f0dcb0e5f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.18.3"; -}; -huaz = { - revision = 64723; - shortdesc = "Automatic Hungarian definite articles"; - stripPrefix = 0; - sha512.run = "78331527a14c974923706a26527c8b42e1467935a741d28e81e7ba0510b29cc26242f8b811ac7025a9be3da1d92a2d65fb47dbd798fc1ddd985d58ad96e82c9b"; - sha512.doc = "32c2279e927dfe4fce1554b2dc9a747aa274c6406a0b98fe4477fcf159d3b978f46035badb293bea596067583ad738373e2bf3680fb1d5e20284a0d45b3900a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -huffman = { - revision = 67071; - shortdesc = "Drawing binary Huffman trees with MetaPost and METAOBJ"; - stripPrefix = 0; - sha512.run = "0d78c3874045ce45d703f443817d9b20b5baca0e3b713bc5f09e18a64102af3d349ebb5b7051a5152eaf06c8d9cd01c3a00b5a3c0f5b4db12f566b5f5356c991"; - sha512.doc = "3c1651e5cb8b527e1c55aaf682003c1639c91efd9bcaa4fa51779fac572550195979c0baf2bb4738f8b5e2628b6deb4af6109938ce70e4238696ca35f7e4ea34"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -hulipsum = { - revision = 56848; - shortdesc = "Hungarian dummy text (Lorum ipse)"; - stripPrefix = 0; - sha512.run = "32e981937f3077fb1310205f17bd10c93ae20c98e098f766b0a90218d81c7708071aa4ca605bfc55da1614116cbd8299f9cf1853426dae04a99669839b2d5c83"; - sha512.doc = "862a91b902cc8bb0d71efe3933bd0a1b0f3aba1023586595d57cd45e15a0b961cc3c56a59315eee02337f89d35582497dd6894bf3ead060d2863823765211e1f"; - sha512.source = "6de61158c97297d4c76691f6aa2686d8ff88317de0dcc951a23e6aa93c63a4fecfdcabb74629e2e12ed7878a8a74987834f36faeae3c5fd661bacf99aa7f7962"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -hustthesis = { - revision = 42547; - shortdesc = "Unofficial thesis template for Huazhong University"; - stripPrefix = 0; - sha512.run = "508c86a6cf5e3d952dd43786f78952cc8bbe635620a913abd82b49c2cfade29875bc924d5ea89803b03008328c7297010e98f70b62b5191d9855e0cc1614d3d0"; - sha512.doc = "5c114cda4bd4264904b7fdfedd55720046403b8cd3c1bce4181dffbf319a9107ec0ad8cdd092922c8c5268aac62437d1128a45ea0cdff4121a40f02e26dc0148"; - sha512.source = "61b6147d4bd063995900479b894b60d929445e60855c522e46abaedfbd33f7516f90a99d5052b3241d7070d375504cd660446d6647c28284e76d0ff9ec5aaf76"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -hvarabic = { - revision = 59423; - shortdesc = "Macros for RTL typesetting"; - stripPrefix = 0; - sha512.run = "2f9af35f3e3ebf6d90ed05a77fcd6d6c079d3a476c26e0704e6f6b74899badc3eb0cc79d37f5f9e8b6a2846edb869bf57fc5b4bf14e834629d126bc71b77e42a"; - sha512.doc = "8508cab70c4cc87665790dcfd34a4465fa22002ca19a41d2d24e21ae0a2ed833a7f3c0e346d36e8c95411ea925ad3ebda8b6d1ee4179610ce0e3f673e6226246"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -hvextern = { - revision = 69651; - shortdesc = "Write and execute external code, and insert the output"; - stripPrefix = 0; - sha512.run = "2a2237872220066195c4ee4458eef20c01d6d1b9bffbb82efff08522052eba3775820bde7133cf9417ac591d2196f06d0f8400edae1fb15c82489731e4b9b28f"; - sha512.doc = "c77b44743e598b7bc3c7963a21d02bbd50e53b3346c102aa72926a46280a7aa39c6e48eb220ef1f8744f4f1dd2252dcefb3d876e788ccff1616fda4d55862a5c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.39"; -}; -hvfloat = { - revision = 70400; - shortdesc = "Controlling captions, fullpage and doublepage floats"; - stripPrefix = 0; - sha512.run = "dd24119659fc1b0d359488451218cabba05b226469c9a56997f6ae491fea42cf58d7b131f7e6ddbd576ae98d94575a9518aa4bb5d10a97875c0e19b647f0c250"; - sha512.doc = "98b26dee51f787d82e49f37fda6e902c39af3c5e0618090bd78e2577d0a080b7cd511064d7b41aa4e356d4ff176e87c9b68399d1e06532e20b6d392d3e714851"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.48"; -}; -hvindex = { - revision = 46051; - shortdesc = "Support for indexing"; - stripPrefix = 0; - sha512.run = "12e47531ca8dcea2f195d86b5721f2a62d2590de5a0b464e5e6de5484ee34803eac14f2474e4a00938f6d5e5b307ed3183ea3aa0a4f0d5874877356de6e8c83d"; - sha512.doc = "2a10c26537e550e3d51330c704711c2c43b872f90db15ee709dcfe603a5fc64102a8b466c5d5b7ab4706d5e96e91b11559305ac607477776f34da97590151368"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -hvlogos = { - revision = 69581; - shortdesc = "Print TeX-related names as logo"; - stripPrefix = 0; - sha512.run = "eabf4a92462aa7ead3ae7930400c641d6e64b520867c9e7cceaa48872dca31716ce965cf105c784b725878fad05e6d082a9f9e9cde94b254c780ce55f7daf515"; - sha512.doc = "3124f1521eee4688e6cde38bb39e9c4a123d5d06d008b23447495fdf11f3b3f8ff98f138f2096c322ebbd8f714e60208958b0b01e98c6b81c09c80eb2908424a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12"; -}; -hvpygmentex = { - revision = 62405; - shortdesc = "Syntax-Highlighting of program code"; - stripPrefix = 0; - sha512.run = "5770b9933ad2dc7c844ba2281a3717bc1d27f67a834de45a87effd400551fc74d111ba5087ceab96b2a9e6ed11293fd0d3dfbaf7ac89c4d9a1434911a2fbf734"; - sha512.doc = "cd7b3a615ab8ca79e0d0e9feb7804cabd9036831d2f9761429b7bf528125d055e29f3f7a2e1eeb8efd4c73c1f6f8e0ed03a2ba47dbf9504fc1a750b4c278843c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -hvqrurl = { - revision = 69723; - shortdesc = "Insert a QR code in the margin"; - stripPrefix = 0; - sha512.run = "cfeaea8387dfd425278cc9a8f278d7a0a1590336e24a8b8112b6407a808688012c970822973fa7b4a2816fdf0422171ec6e2926bb51a012f02c7a5b273465a9b"; - sha512.doc = "ee7e0e77406e2e486a2898710953db49aebc28a9bf39d0e40cda20c38a1aa67d0f48f7936fd36bd417658600f82641f6f7d39d12b328d615ac694abd49d76f69"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07"; -}; -hwemoji = { - revision = 65001; - shortdesc = "Unicode emoji support for pdfLaTeX with sequences"; - stripPrefix = 0; - sha512.run = "fb29647b4b81c5c4cc389fe4957400e01dd408f9b915fa4062218af3b2a8eb852315399251c257ed1220ff48359940c59ab9a09dc7a67fa8f0817e39636a1312"; - sha512.doc = "ec35434e49038755dfaef171273e70baffeb3021d002c83703bdc18d0f181f8027a01272bf5b3ce02ceede62495dc9dc1f1c390323e73d77b1bb6adf226f74b1"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-40" ]; - version = "1.0"; -}; -hycolor = { - revision = 53584; - shortdesc = "Implements colour for packages hyperref and bookmark"; - stripPrefix = 0; - sha512.run = "5269044c5b462f13c78e80d28f7237f2d6e353da98db50267a5c4f01b22d565b0300c689470f6eb1ef9af7b66c1068c1d40d7a30ae01f30e7b3649189a7e7fbd"; - sha512.doc = "79e4c83b952182ea89b2ae7a1abdafd771359baadd34fce8d573d7449b24908a5bbf515d16d73fd088e7add82c143a458b2c196c125e5b492033cb36da63eb6d"; - sha512.source = "587ca9470aaa935119d142a970931d89444d2d64ec311ba74a697fa4cd982be999e7e62ee9924dd6028f2b9411657d6b1cf4b6cb9887d08cdb0b969e8a334fd7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -hypdestopt = { - revision = 56253; - shortdesc = "Hyperref destination optimizer"; - stripPrefix = 0; - sha512.run = "784fbff599b60abebd3ae794376a65b460c0ac4aa189319e3f245c1feefa5bb501acf75ed345bb6099e301070d0c1e1eaca62129c4e82fae5611526b6aff370d"; - sha512.doc = "cde846c9c4da226d27bd15881577ad3f1c3f0639c3e37fc86486af40939b0efb2d22d522646136b1b2fe2ebbfd5f2338e347b7476be7289d2a3710d43c2fc8ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -hypdoc = { - revision = 68661; - shortdesc = "Hyper extensions for doc.sty"; - stripPrefix = 0; - sha512.run = "bdd5a75f53b714976f54f0fea68093d79dc0d781a708dabbd3cb90e49d77f282ee15cbf8c1082cd5746bbe6b701e58e71bde38141db56cab5042d7556771d286"; - sha512.doc = "cece39375981cc4adb60b20387ca441404a69c734f686cbe51df759b3025833814e9ec09aa4b720359cce4c4ae14b12cc03ff38954c3fb12ef268304a60f9dfd"; - sha512.source = "3bf5a01f6ce3ec8cacc04fdd4d3b83d9cbdced6dc75120991e031a56a3dc4e5958c367f009c4f5fbbdabb02d0d7b391fb8fbbcdc2c4d5f68b9c0cf8d68259d1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.19"; -}; -hypdvips = { - revision = 53197; - shortdesc = "Hyperref extensions for use with dvips"; - stripPrefix = 0; - sha512.run = "515089c437413d6d21c8d2987b8917aca7c046e42c0dc9212b39be1c9119bcc867f70c37087f9f3709db8c9f824ffe16d1b261f34d06d66e12857db9854892f7"; - sha512.doc = "ef485ca27145ffc614c78547f68d574a0b27cd1a7cd5abd5752681e20ad6612e280f34f85c3e1c753bc6cfea976c9801da1768bda1dcea377c19b138ec9f2777"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.03"; -}; -hyper = { - revision = 17357; - shortdesc = "Hypertext cross referencing"; - stripPrefix = 0; - sha512.run = "6e5bbad0a682440e28be67fc893a970de315671e1f4987bebff4a163d9c38bb33d8de9557765f1d8c74386556c59e332ef5855a3f1fe36d08eddcbd2a77179df"; - sha512.doc = "41fafe8bcaf651994c45abd0040e2123caf8e33fd2d06fafd310d978c10ae5c705f7dd64d9b4740bacee51f11fe52741ed64f83d6b236d298cb6c932fd3ba06e"; - sha512.source = "50552c5d6650973719d892d2696ee4885f8fa78d9e9c62e3fabd8ac42f35610c025c508aaa250f52c5c7676cb5e0e6aa4b75efdd19d3c9e1f3b3ac6981ab1342"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.2d"; -}; -hyperbar = { - revision = 48147; - shortdesc = "Add interactive Barcode fields to PDF forms"; - stripPrefix = 0; - sha512.run = "80077002a3bdc99339749e2f76687a0f8597a786fd3ca3f5207ec44dc2037dbec1e696ab58d77ee6b067d6e958357cb8f0c9805621c3feeb40dde004851311b3"; - sha512.doc = "0598acd8fb945605b204c5c99982db63f4fc06fc82c47f7b301ead30be0474c7dde5eb4f78f3aa698160cd068d38aa2aabe3a1fae3c49cc32194e7cd796839c2"; - sha512.source = "99555f8a939783db613ceaf509fbf2d95352ce8e774e750a9d552717eb538a64663a905a063b6b93aa83384ce322079656c61eeccc9678bdee47b2c56e52220b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -hypernat = { - revision = 17358; - shortdesc = "Allow hyperref and natbib to work together"; - stripPrefix = 0; - sha512.run = "0a803b9e7d23d364122869a89a6f181132f00b54d39f677a9d9471c336c933ba0e743fa4100636a6d3e929714a8896ce964e7614800c675ab9df7cce7e6d732c"; - sha512.doc = "04a3f646e1595404513149f0ba56a36f0cc21a29f3ab455f38c4a7c3f5a282199208ac3aad329f38aa9fd5086762d326d85fa5052dba125d944969bfc0446489"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0b"; -}; -hyperref = { - revision = 69523; - shortdesc = "Extensive support for hypertext in LaTeX"; - stripPrefix = 0; - deps = [ - "atbegshi" - "auxhook" - "bitset" - "etexcmds" - "gettitlestring" - "hycolor" - "intcalc" - "kvdefinekeys" - "kvsetkeys" - "letltxmacro" - "ltxcmds" - "pdfescape" - "refcount" - "rerunfilecheck" - "stringenc" - "url" - "zapfding" - ]; - sha512.run = "71d43dc16443357600d83779628922c0f6e4ee1b57b562b9a47cb7c11a2710ac1b573040c661819e71086107fbb6e7a98851c1a99a10fe5db19d406e98c0ed95"; - sha512.doc = "a2893e722d6aa2be885ebb15a96ab0f30c71811dc3b4e9791e2a6c2ea78c2cd6fdf90e485c7267e533f3e90eb71278074d6883cf4e6fd6c7d9f2a2c744ea6012"; - sha512.source = "1fcddde0f8e9c057d1ddfdc31616f1e362c57ee645f23c71cd9e94bc86f41de8ea32dd478f9df91cadcd66f1814072c5b0dbb2c2ee89f3f477302577ac603edb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "7.01h"; -}; -hyperxmp = { - revision = 68251; - shortdesc = "Embed XMP metadata within a LaTeX document"; - sha512.run = "79dfcb70b4df1be8ada345507f0cece0b36c38f57c1b5e92fa008af3ceb5209c5df10d9144a24af4473a2f640d2adb59054cd9985f762b9b6cf7db45ed99c4cf"; - sha512.doc = "b56e9ef7beb7502ba2e952267fddeb3a26597e9e5193ed66369dc3c78f5a08d34b5fca0685cab8f6ec67e12167a1aca309a18b85073b8e9c497641cf062be6b1"; - hasManpages = true; - sha512.source = "02ca43c9809c347a6db12e0a8ffb2ec96db3b27d4c89ceea10091235c6b411de38d76f976a08d139bad0b0efa0b181e2e2fe5e2edd8cdf41ac5043fcc8758bbe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.12"; -}; -hyperxmp.binfiles = [ - "hyperxmp-add-bytecount" -]; -hyph-utf8 = { - revision = 61719; - shortdesc = "Hyphenation patterns expressed in UTF-8"; - stripPrefix = 0; - sha512.run = "64055aa046fdbc721fda474b7848b37d094b1a8f5f01e507df80003ba591dd959871c880f04d5bc6e0bf169e99bf89f5a1a7dad1195c8839773fc613f3719d9f"; - sha512.doc = "c4aac42267b75a16559705e7de3716eafbec96a285d523d5e7b2f77f345d8e344e174571e247b9c5de8fac75942bc1b0f924e81efd8356b52c9ed91a149d8f09"; - sha512.source = "2ed5177a81f46bb538517447d89129d82bab87f937c98e4afc6c74863d5f4cc3342470f66d2f5d05247fb3ac26b23ed4b6ce4fd093fcb61fbabac6dd330889f2"; - hasRunfiles = true; - license = [ "mit" ]; -}; -hyphen-afrikaans = { - revision = 58609; - shortdesc = "Afrikaans hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "afrikaans"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-af.tex"; - file_patterns = "hyph-af.pat.txt"; - file_exceptions = "hyph-af.hyp.txt"; - } - ]; - sha512.run = "0f969847994b3b377c752c23f802e8c51b4076efc2d43ad2560a72b83cea3bf0a64d7df18a59afe4289a4547a9f23cf81b0c365a499be85a2467579941fa9700"; - hasRunfiles = true; -}; -hyphen-ancientgreek = { - revision = 58652; - shortdesc = "Ancient Greek hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "ancientgreek"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-grc.tex"; - file_patterns = "hyph-grc.pat.txt"; - file_exceptions = ""; - } - { - name = "ibycus"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "ibyhyph.tex"; - luaspecial = "disabled:8-bit only"; - } - ]; - sha512.run = "3f91560ecf78c5540fd4f5d9890f6aa7a57bcd3a41095985785505b82e40793b91a5da3a01bdc021b11c32db3dd7030a104686b34b496c9094acfb85509cd007"; - hasRunfiles = true; -}; -hyphen-arabic = { - revision = 54568; - shortdesc = "(No) Arabic hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "arabic"; - lefthyphenmin = ""; - righthyphenmin = ""; - file = "zerohyph.tex"; - file_patterns = ""; - } - ]; - sha512.run = "85012062097dd4b624cb39c68b293169a25ab3c9cd15b4474c3a3ffbe4b8ab13d6856c6c70a580da45a2d210952df2d9760682da3917cfd24d17772dc2ccce7f"; -}; -hyphen-armenian = { - revision = 58652; - shortdesc = "Armenian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "armenian"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-hy.tex"; - file_patterns = "hyph-hy.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "59538414bf5a4701199100fbd9d5247999a36bc28c7c6ef2a28deb9024e01605d48839f00f345c848365853ac3a9f1aab7402f44860532d7a5c099d2f27ee189"; - sha512.source = "d25e6347545e00a809db1dc8e48ef3fe67678b9ec93a1f3619d2a5a3d786d6e411c2e9f905120e3c5d01d9489c0a83035ce8025836249c88ee768bf07b8e2ca7"; - hasRunfiles = true; -}; -hyphen-base = { - revision = 68321; - shortdesc = "core hyphenation support files"; - stripPrefix = 0; - sha512.run = "d3f2749cc6946702ff0d51c1d823531bc92b77c1106aec252c84cc8649aa56048556c90e9792f1b0749bba0b86b7c34aa2b04fe2946d1226315dbc73add36913"; - hasRunfiles = true; -}; -hyphen-basque = { - revision = 58652; - shortdesc = "Basque hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "basque"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-eu.tex"; - file_patterns = "hyph-eu.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "b90680dc5692824d60ca603e8bdd2fcade7cc772c8c0f9538d579704fb16165db2baf0c466ccaff46d92491b4a678fa86a127c0d106dbef6d640dfd2f887663d"; - sha512.source = "75a20da77fa056c719ecc1f014bb09c67f62f1c4a3abe04b7cadf45c7a4e06e4492cb0d34a8025f19f3ee5e3330e488212885095335d4a7e97baa5b106576223"; - hasRunfiles = true; - license = [ "free" ]; -}; -hyphen-belarusian = { - revision = 58652; - shortdesc = "Belarusian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "belarusian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-be.tex"; - file_patterns = "hyph-be.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "19b9bd10d2357d0cb6ecc9ddb5e46b65b3c0eec1b2917a78311f255c1609bbb86595ce617d331271a72de934ae4001597f4a04d61b3810e34f3b197b21cab193"; - hasRunfiles = true; -}; -hyphen-bulgarian = { - revision = 58685; - shortdesc = "Bulgarian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "bulgarian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-bg.tex"; - file_patterns = "hyph-bg.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "9763e6ece053594b01cd9255a8a3551eb6b86ab082f6f9283664e256c55d43b9513b624774a650d83215d656334751f569496030187c1c78e2fe80f2d10f2f1f"; - hasRunfiles = true; -}; -hyphen-catalan = { - revision = 58609; - shortdesc = "Catalan hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "catalan"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-ca.tex"; - file_patterns = "hyph-ca.pat.txt"; - file_exceptions = "hyph-ca.hyp.txt"; - } - ]; - sha512.run = "37189e09ee902f2c5145f30180b51211091b07d7d04125c98f1b7c424ad27f6899424b78cd17c559509076eeeb957b4f268fb4130807e7fafb461174fed8200b"; - hasRunfiles = true; -}; -hyphen-chinese = { - revision = 58652; - shortdesc = "Chinese pinyin hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "pinyin"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-zh-latn-pinyin.tex"; - file_patterns = "hyph-zh-latn-pinyin.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "a78b70095fcfe297e2d85a49108affd5d48451ff4740461eed46d395410a665011614c9a89dff37e9477ee3803de6ebaa68595ac39222f2968a4124355ea7fa7"; - hasRunfiles = true; -}; -hyphen-churchslavonic = { - revision = 58609; - shortdesc = "Church Slavonic hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "churchslavonic"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-cu.tex"; - file_patterns = "hyph-cu.pat.txt"; - file_exceptions = "hyph-cu.hyp.txt"; - } - ]; - sha512.run = "c44b3f5fec7b44958336dcfb1a43c5b71fd1715262278863f5fcd74d7ec0cc6f1d572b741256d791e6979f15e4b0fcda8058725e27f17e1deb6e5df5fdb007ab"; - hasRunfiles = true; -}; -hyphen-coptic = { - revision = 58652; - shortdesc = "Coptic hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "coptic"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-cop.tex"; - file_patterns = "hyph-cop.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "fe36adfe900e23f2b0c3e9c3a3d96b608c49bf597222537d355d6a68e2f87f587db78a1921ab1c9a80ea175529e353524c35e99b83ef7f5515ab7c0aacd2f680"; - hasRunfiles = true; -}; -hyphen-croatian = { - revision = 58652; - shortdesc = "Croatian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "croatian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-hr.tex"; - file_patterns = "hyph-hr.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "8355d0aa95bb2e72bfc45015f9ae9f6a138f94441387a4daadfec5be4060878f6e69d05eab15432d99c256c1a3f68c122d5c915164fe343459d658a4543ddf42"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hyphen-czech = { - revision = 58609; - shortdesc = "Czech hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "czech"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-cs.tex"; - file_patterns = "hyph-cs.pat.txt"; - file_exceptions = "hyph-cs.hyp.txt"; - } - ]; - sha512.run = "f5c8b08c2db716dfa6d36fcf337b4e18372978d04e28ff2c8ed0a0b3866f4bb3efb7b498fedbfde5052fc504b8677ae553c2dce73701e219632d8c5460d7e826"; - hasRunfiles = true; -}; -hyphen-danish = { - revision = 58652; - shortdesc = "Danish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "danish"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-da.tex"; - file_patterns = "hyph-da.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "954543a3fb81ff00d9c58315ba59d7a5e3430217dda6c1453bcb7ffb0516025dea4b877eb9d66c9f80ccc69d3d4895bdc6ae1b611d8394435fa647b8b806559d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hyphen-dutch = { - revision = 58609; - shortdesc = "Dutch hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "dutch"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-nl.tex"; - file_patterns = "hyph-nl.pat.txt"; - file_exceptions = "hyph-nl.hyp.txt"; - } - ]; - sha512.run = "111371e47ca29069a5a9144d694858dd899b19e2b38d0c793b1e4884c69ae2d62398aacb4cd89e23246fc025e42872875bc808c1f327ac1502fac88c962e6c14"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -hyphen-english = { - revision = 58609; - shortdesc = "English hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "ukenglish"; - synonyms = [ "british" "UKenglish" ]; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-en-gb.tex"; - file_patterns = "hyph-en-gb.pat.txt"; - file_exceptions = "hyph-en-gb.hyp.txt"; - } - { - name = "usenglishmax"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-en-us.tex"; - file_patterns = "hyph-en-us.pat.txt"; - file_exceptions = "hyph-en-us.hyp.txt"; - } - ]; - sha512.run = "a305cf89138e4327844d43a7e21773e31ac97a4655e4d58ae9a46dc0df565e432330debf704c37b4ad552561357521eba0b676755544ceb9c4f21ace09d6dd2c"; - hasRunfiles = true; -}; -hyphen-esperanto = { - revision = 58652; - shortdesc = "Esperanto hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "esperanto"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-eo.tex"; - file_patterns = "hyph-eo.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "ed2976e9fb3eec5d2f0759348b284129e43bf161db571dd21270335388b8aec57e1b8393bc9b246f8a6e9cde22f93a4cb3c1a03dcadd64fdda3d70b576789050"; - hasRunfiles = true; -}; -hyphen-estonian = { - revision = 58652; - shortdesc = "Estonian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "estonian"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-et.tex"; - file_patterns = "hyph-et.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "0eb91153214aaca8c3b5816f5315f9afdeb7c19521c87c79ea2b35e82217bfb23c8bb774baf810206f4413fc663e441ebe6b4962880ca0dbcda9209d2acce3b8"; - hasRunfiles = true; -}; -hyphen-ethiopic = { - revision = 58652; - shortdesc = "Hyphenation patterns for Ethiopic scripts."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "ethiopic"; - synonyms = [ "amharic" "geez" ]; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-mul-ethi.tex"; - file_patterns = "hyph-mul-ethi.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "a1532603758e7f774acba7c13ee74f0046ff187598ca86b2e93b91da31317f03fdbab5d4d7c0814978fb2ac159bd6e5a48e6e734c19758da21ad0a031844f52b"; - sha512.source = "9d6c8c1b0ce5c40d388937328461336a97fcf1fe780fa6198e029f12ef118d9d98f6eec03ea217743851f0217217d6548298df9336fcf33e6c4c196bbdb9eef0"; - hasRunfiles = true; -}; -hyphen-farsi = { - revision = 54568; - shortdesc = "(No) Persian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "farsi"; - synonyms = [ "persian" ]; - lefthyphenmin = ""; - righthyphenmin = ""; - file = "zerohyph.tex"; - file_patterns = ""; - } - ]; - sha512.run = "5b02582769a55bb07d81e748e83170c16aca1c33b0a240cf547fa9c2212f2be52223e258229c760ddc5dd730419bd9e761614cc4fb3b3ba8102841bb779af511"; -}; -hyphen-finnish = { - revision = 58652; - shortdesc = "Finnish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "finnish"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-fi.tex"; - file_patterns = "hyph-fi.pat.txt"; - file_exceptions = ""; - } - { - name = "schoolfinnish"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-fi-x-school.tex"; - file_patterns = "hyph-fi-x-school.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "6aa171d77952165cdcb1b667885f16dd382124ed70ed1db80a9a89553d972720d8ff5f0da1b36669e02c3030d9ff362ab77ba1fa2ba45cddfb460018f0c0191d"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -hyphen-french = { - revision = 58652; - shortdesc = "French hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "french"; - synonyms = [ "patois" "francais" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-fr.tex"; - file_patterns = "hyph-fr.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "b9d2d05311a90f4caa6c4e8aa8a2e80e9c15fc3552f03f0ac6ec70d386610612715deb6e778247248355a3a209fb2413d6d2aee12f18bc35d5a334870b612507"; - hasRunfiles = true; -}; -hyphen-friulan = { - revision = 58652; - shortdesc = "Friulan hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "friulan"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-fur.tex"; - file_patterns = "hyph-fur.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "d1775a9b6e6b7fa155e44c93271e2ccb41bd1ec143ea0cf624841ad48a123db924dd134e6e60b862a808ad2058ed5b86cb34d98e5728b9dccd3997ba2f06932e"; - hasRunfiles = true; -}; -hyphen-galician = { - revision = 58652; - shortdesc = "Galician hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "galician"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-gl.tex"; - file_patterns = "hyph-gl.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "2d707542f80dc94ad20c0daa776df23b773a5e6ccb261e11db675e1e89f5f303a4f5cd50d97f491cc7ea8b0f3c0d3f6391707812a95d4e72cca3afa7815e566f"; - sha512.source = "b9925168b1f9ae5139ffc3bd34810cc05a27475cfae31e98fd0d7618575fc994ca95d7479506024abec2c33bb20121811244d69c490df18a29d6c93fe02174c6"; - hasRunfiles = true; -}; -hyphen-georgian = { - revision = 58652; - shortdesc = "Georgian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "georgian"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-ka.tex"; - file_patterns = "hyph-ka.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "edaf041a2f92b0f7dbf28042c81838e8fd781cf9c3ad529c314227c94917ce4e8728ca676f8bd42e2a81bae76b11aabc1e22896e3ef9cd38ca4b718bc58fa0cb"; - hasRunfiles = true; -}; -hyphen-german = { - revision = 59807; - shortdesc = "German hyphenation patterns."; - stripPrefix = 0; - deps = [ - "dehyph" - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "german"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-de-1901.tex"; - file_patterns = "hyph-de-1901.pat.txt"; - file_exceptions = ""; - } - { - name = "ngerman"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-de-1996.tex"; - file_patterns = "hyph-de-1996.pat.txt"; - file_exceptions = ""; - } - { - name = "swissgerman"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-de-ch-1901.tex"; - file_patterns = "hyph-de-ch-1901.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "c27389dea67ffd0d45419d484b0c72577b2d5b8234266483add078b970d5d994d41f7cf9a1509ad93efe9489501f986127ea717135c5f57588094393e0d7219e"; - hasRunfiles = true; -}; -hyphen-greek = { - revision = 58652; - shortdesc = "Modern Greek hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "greek"; - synonyms = [ "polygreek" ]; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-el-polyton.tex"; - file_patterns = "hyph-el-polyton.pat.txt"; - file_exceptions = ""; - } - { - name = "monogreek"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-el-monoton.tex"; - file_patterns = "hyph-el-monoton.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "3da84f41aaf7e5d4be0ce609e4d119e65c9189ff6662051cb7e879e9e373d990ef1c59ac7cfead1bdbc6e55b52d4b3ed28d157b22dbec43e5226f16872d5a7de"; - sha512.doc = "865aaf1f9f0fbe130f9006e41ef677713667832745fc24c28cffe805a540a19f7104a3f0fef3258ba0e16c1c456959904887899a4c584338c58de7fcc80c5419"; - hasRunfiles = true; - license = [ "free" ]; - version = "5"; -}; -hyphen-hungarian = { - revision = 58652; - shortdesc = "Hungarian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "hungarian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-hu.tex"; - file_patterns = "hyph-hu.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "868a4c3f4d0eda078054026bd1ec35e05c2f4013e093bf58147bfa2d861814242b55a900ce60384767558c9552ff9d41cf447e2a157bae83bd2877251012d96b"; - sha512.doc = "164180f0485e16a49ba83dcb4721902e8a29f399032d4f5a59d55e424b8178a25dedd9fb99919d9d772142342fb78fe0dbf7a5303382a0b7feae4a381b76f8bb"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -hyphen-icelandic = { - revision = 58652; - shortdesc = "Icelandic hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "icelandic"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-is.tex"; - file_patterns = "hyph-is.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "69add7ccde189e86810e2a82692a260de9a9fcc0ba011352881d202d4f4c94c4dbd84fe36dff40ef9b9ad3e8e990947cc61022307790f13cad56744f3ef5e41f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -hyphen-indic = { - revision = 58652; - shortdesc = "Indic hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "assamese"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-as.tex"; - file_patterns = "hyph-as.pat.txt"; - file_exceptions = ""; - } - { - name = "bengali"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-bn.tex"; - file_patterns = "hyph-bn.pat.txt"; - file_exceptions = ""; - } - { - name = "gujarati"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-gu.tex"; - file_patterns = "hyph-gu.pat.txt"; - file_exceptions = ""; - } - { - name = "hindi"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-hi.tex"; - file_patterns = "hyph-hi.pat.txt"; - file_exceptions = ""; - } - { - name = "kannada"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-kn.tex"; - file_patterns = "hyph-kn.pat.txt"; - file_exceptions = ""; - } - { - name = "malayalam"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-ml.tex"; - file_patterns = "hyph-ml.pat.txt"; - file_exceptions = ""; - } - { - name = "marathi"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-mr.tex"; - file_patterns = "hyph-mr.pat.txt"; - file_exceptions = ""; - } - { - name = "oriya"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-or.tex"; - file_patterns = "hyph-or.pat.txt"; - file_exceptions = ""; - } - { - name = "pali"; - lefthyphenmin = "1"; - righthyphenmin = "2"; - file = "loadhyph-pi.tex"; - file_patterns = "hyph-pi.pat.txt"; - file_exceptions = ""; - } - { - name = "panjabi"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-pa.tex"; - file_patterns = "hyph-pa.pat.txt"; - file_exceptions = ""; - } - { - name = "tamil"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-ta.tex"; - file_patterns = "hyph-ta.pat.txt"; - file_exceptions = ""; - } - { - name = "telugu"; - lefthyphenmin = "1"; - righthyphenmin = "1"; - file = "loadhyph-te.tex"; - file_patterns = "hyph-te.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "765be1c13ef3445b056b61c24460cc2f18bad038c04541bf4773c7f61c6d26be25d3079b260a1b9623e2f01155ec52eb5bc87b0ea9234e50a5ca24dd8a7a5937"; - hasRunfiles = true; -}; -hyphen-indonesian = { - revision = 58609; - shortdesc = "Indonesian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "indonesian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-id.tex"; - file_patterns = "hyph-id.pat.txt"; - file_exceptions = "hyph-id.hyp.txt"; - } - ]; - sha512.run = "3f04a63010c02d77cb229c90aec9f1079557493958573be9ce992ac5ae3c229f01f9abc0cac785d9340ff48aa169a01f8b327ecb2e255bef57f1fe85d04d1d2a"; - hasRunfiles = true; -}; -hyphen-interlingua = { - revision = 58609; - shortdesc = "Interlingua hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "interlingua"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-ia.tex"; - file_patterns = "hyph-ia.pat.txt"; - file_exceptions = "hyph-ia.hyp.txt"; - } - ]; - sha512.run = "dfed82ea70f25d452726b5cd03d8e060bddc23cbbc5deebab2ddad93ce6744c38d357327fbe570bf7a1444f62cee0cc422a6c7d066d6693a238d851b4fe46e32"; - hasRunfiles = true; -}; -hyphen-irish = { - revision = 58609; - shortdesc = "Irish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "irish"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-ga.tex"; - file_patterns = "hyph-ga.pat.txt"; - file_exceptions = "hyph-ga.hyp.txt"; - } - ]; - sha512.run = "478a77c4ab8231a3041c3427075f16c072f58a394eced8ff0cd5da6544f3f2fd65722f33fd8344e18060c96f09bd18b90af71f8508639fc9c59d29d704d9e348"; - hasRunfiles = true; -}; -hyphen-italian = { - revision = 58652; - shortdesc = "Italian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "italian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-it.tex"; - file_patterns = "hyph-it.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "4e79ee31893d6c948a3aac8588d4beb75d89f89df973b1e39cd63894e008af55f8dca774194d7eb105fb0aef692b17bb645d5bd85cca7debafd74aabf241bc30"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "4.8g"; -}; -hyphen-kurmanji = { - revision = 58652; - shortdesc = "Kurmanji hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "kurmanji"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-kmr.tex"; - file_patterns = "hyph-kmr.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "e5114da178fc841b1079130c01f8729ac94f0e3592dbd479f44a978ea009fd75b410d6130d9badd6227d115d8f6dad3ed4b553dbfbf4f80be5d1c2adf108e2fa"; - hasRunfiles = true; -}; -hyphen-latin = { - revision = 58652; - shortdesc = "Latin hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "classiclatin"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-la-x-classic.tex"; - file_patterns = "hyph-la-x-classic.pat.txt"; - file_exceptions = ""; - } - { - name = "latin"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-la.tex"; - file_patterns = "hyph-la.pat.txt"; - file_exceptions = ""; - } - { - name = "liturgicallatin"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-la-x-liturgic.tex"; - file_patterns = "hyph-la-x-liturgic.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "9d0db7fcad4ca764379957fa22f9daede79898bcacfbdb62abe54318a52dd82a66f8e39542c18008e3f6b6d0db284b1e9b891531d3c8f3c9cf22c764e83d57b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -hyphen-latvian = { - revision = 58652; - shortdesc = "Latvian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "latvian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-lv.tex"; - file_patterns = "hyph-lv.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "85aeadb0cb3c5de9ef48057132ccd958d17f014b07b56b9ebe2186a709c4e7646fad260e156718e43ec3eac88681654f88c9b53a6d71fb3eaee934dcb4439ed9"; - hasRunfiles = true; -}; -hyphen-lithuanian = { - revision = 58652; - shortdesc = "Lithuanian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "lithuanian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-lt.tex"; - file_patterns = "hyph-lt.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "7a691e3c55c768b9ea5ef13552dc42025ab613df0a0d5c0d54aad58b63da11a93e59bc53e6a8211d5e054cbea8500846da01e9619bbee723d648e2d369a49d55"; - hasRunfiles = true; -}; -hyphen-macedonian = { - revision = 58652; - shortdesc = "Macedonian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "macedonian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-mk.tex"; - file_patterns = "hyph-mk.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "f88208291212874df493151581205d1b270b2d4278176c42e11edac9b344b73c2ee859f93b6947e4a6003a00abc4d3753024add9caf84f114c8a0cec72aa8c8d"; - hasRunfiles = true; -}; -hyphen-mongolian = { - revision = 58652; - shortdesc = "Mongolian hyphenation patterns in Cyrillic script."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "mongolian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-mn-cyrl.tex"; - file_patterns = "hyph-mn-cyrl.pat.txt"; - file_exceptions = ""; - } - { - name = "mongolianlmc"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-mn-cyrl-x-lmc.tex"; - luaspecial = "disabled:only for 8bit montex with lmc encoding"; - } - ]; - sha512.run = "159562a8feb25918bc422e7dc78a46423c7fff2f3c61016a0162761411999a5555be3c6e36cf967d5034f65c12f4b0834ae0c0423c2f3ab17a65034b1803dc72"; - hasRunfiles = true; -}; -hyphen-norwegian = { - revision = 58609; - shortdesc = "Norwegian Bokmal and Nynorsk hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "bokmal"; - synonyms = [ "norwegian" "norsk" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-nb.tex"; - file_patterns = "hyph-nb.pat.txt"; - file_exceptions = "hyph-nb.hyp.txt"; - } - { - name = "nynorsk"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-nn.tex"; - file_patterns = "hyph-nn.pat.txt"; - file_exceptions = "hyph-nn.hyp.txt"; - } - ]; - sha512.run = "8b02e90bfcdf3c6d4bd1966b21e0512069f1749c638d537e9553f68e61e0bc325db8d3b462f45650db4376c7a769c2cde3e0c0601d7de272898a23cd2251c064"; - hasRunfiles = true; -}; -hyphen-occitan = { - revision = 58652; - shortdesc = "Occitan hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "occitan"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-oc.tex"; - file_patterns = "hyph-oc.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "b0743d1f6083dac7a347e22aed19d0c5d76119582e4862557a55b817b17dddaa69a2150f14daf6b08689278dd61b27c1b6ed45df5601dd6327bf185a7a46a5c6"; - hasRunfiles = true; -}; -hyphen-piedmontese = { - revision = 58652; - shortdesc = "Piedmontese hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "piedmontese"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-pms.tex"; - file_patterns = "hyph-pms.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "fa7fc73edd582ba20b8236507385f0a30f477bb9c79e35fea56aa4020be966b9c4a16a327848dd051fa4cf6e6117ef8a51eb92ed6cb72f6993cb290fa5cd5ca3"; - hasRunfiles = true; -}; -hyphen-polish = { - revision = 58609; - shortdesc = "Polish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "polish"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-pl.tex"; - file_patterns = "hyph-pl.pat.txt"; - file_exceptions = "hyph-pl.hyp.txt"; - } - ]; - sha512.run = "5580b3865ff8d20d475cb962b0257b909ff0e410b6776cb8153145fb0ee42b2f777069413bc6b3622c8c52318aba1ba836210e8972c5b6a47ef978c24fc8848a"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "3.0b"; -}; -hyphen-portuguese = { - revision = 58609; - shortdesc = "Portuguese hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "portuguese"; - synonyms = [ "portuges" ]; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-pt.tex"; - file_patterns = "hyph-pt.pat.txt"; - file_exceptions = "hyph-pt.hyp.txt"; - } - ]; - sha512.run = "9d9ab3e616522ab9837bb7c7509127f998c442e96f96ee6b6fc0fdc9ac53fd03319d0c0ce28e23a35f1ae0ebb840cdeb19e8ab6444549c33059b28e7b307486e"; - hasRunfiles = true; -}; -hyphen-romanian = { - revision = 58652; - shortdesc = "Romanian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "romanian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-ro.tex"; - file_patterns = "hyph-ro.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "124a93a633731dc1b3d6cbf2fc9b8489bf0737911a0c25ea44dbdfffa07c165ba5804dfd7e9cbe0be3b6eceb9fd6e95daefcae2356ee140f644416bbe1b13507"; - hasRunfiles = true; -}; -hyphen-romansh = { - revision = 58652; - shortdesc = "Romansh hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "romansh"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-rm.tex"; - file_patterns = "hyph-rm.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "a69d3881493c70cfd58e3d79ed76ce6f18bbcb43e1683f31270eafeb743b366a3c52c9945ff94db333e88ca18145263ba74002f5e78bb42d7aefa48c66af7955"; - hasRunfiles = true; -}; -hyphen-russian = { - revision = 58609; - shortdesc = "Russian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - "ruhyphen" - ]; - hyphenPatterns = [ - { - name = "russian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-ru.tex"; - file_patterns = "hyph-ru.pat.txt"; - file_exceptions = "hyph-ru.hyp.txt"; - } - ]; - sha512.run = "f17852dffbb8f5c337b8316b92c2b0a60a318df491231047d9c0930d55d8b2be3274ec94d0d87085d53e06e89c585d47250f046300bf3890ce751f6f2052d348"; - hasRunfiles = true; -}; -hyphen-sanskrit = { - revision = 58652; - shortdesc = "Sanskrit hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "sanskrit"; - lefthyphenmin = "1"; - righthyphenmin = "3"; - file = "loadhyph-sa.tex"; - file_patterns = "hyph-sa.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "e84b6ca93e922c9c6edf03f4dbec1fae9eef2462379ef2fd0f3508a5048b54819c5ba12e0d76bafe1336666ca74ba95e27f63224fa048068bc515f3bc41f6eba"; - sha512.doc = "95c6ae15687118ffc9019c8634347a602e6590b4a1d18bc060e57fe548a81f097070322975be1f62fa2685c5affff7f31b4854b0ec941bbcb9377ecf16986cea"; - hasRunfiles = true; -}; -hyphen-serbian = { - revision = 58609; - shortdesc = "Serbian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "serbian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-sr-latn.tex"; - file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt"; - file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt"; - } - { - name = "serbianc"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-sr-cyrl.tex"; - file_patterns = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt"; - file_exceptions = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt"; - } - ]; - sha512.run = "390aa9c116b6db7b362fc57aa0758a4c489c5fe33c718fb37675b17a9772a463ce532a2ace3e1ef90275b4afef5ea8d6cff71a7abe625d84e3f461c115306452"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0a"; -}; -hyphen-slovak = { - revision = 58609; - shortdesc = "Slovak hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "slovak"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-sk.tex"; - file_patterns = "hyph-sk.pat.txt"; - file_exceptions = "hyph-sk.hyp.txt"; - } - ]; - sha512.run = "a0786980e0cda7029a72075023520acdc998b83226e85deb0b8186ee4293560321517d507f74fbe68f1d68a16cd8af67aae68baead9176f9cc687bcc7d0a72e1"; - hasRunfiles = true; -}; -hyphen-slovenian = { - revision = 58652; - shortdesc = "Slovenian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "slovenian"; - synonyms = [ "slovene" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-sl.tex"; - file_patterns = "hyph-sl.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "a605c9149ae452df8b2c25aa0f6bcdde53150e4485147a065f1f56c9740c3544c5c7f9c6049aea913916a62aabaf40777cf6f0f76a858e485c0bd09826a6ef5b"; - hasRunfiles = true; -}; -hyphen-spanish = { - revision = 58652; - shortdesc = "Spanish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "spanish"; - synonyms = [ "espanol" ]; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-es.tex"; - file_patterns = "hyph-es.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "d6783537ff44a326b83c2004afd63f5bdbd162fa4865138c2e6d34c9e6a103ac41dd7b382454646b09c74970f8e0d5827a5f4af617936f74fd300b2054a096d4"; - sha512.doc = "263fd9480c5f225c7e36169b86e846baa64745b83c1072c9602e873f2e7cf8e63b07ab85b29e9d4263656faff58a39fe83e1eba34517b8ba34720f189c8e7f43"; - sha512.source = "b1ceb7602a46ecab68fb767ffb154f0dea9626d81bf6c46dd43be328204f72141842c81efda9d7d51997ed25356746e345f7cd9f9ed88ac2f99746794becb75d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "5.0"; -}; -hyphen-swedish = { - revision = 58652; - shortdesc = "Swedish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "swedish"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-sv.tex"; - file_patterns = "hyph-sv.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "5f993ae6b22eadb87b6a1839bfa7d78a0dccc1107c5afbec8c248ed001018da38bb179e29f2430cffa90283221b20c5475346a8d5566edf16152266257f2a37d"; - hasRunfiles = true; -}; -hyphen-thai = { - revision = 58652; - shortdesc = "Thai hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "thai"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-th.tex"; - file_patterns = "hyph-th.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "8336eee03250859ab4328ad3c1fe437d2af688ef56b43be49c45838965ffe033befa84cdf600e9f48cdf60cbbfbff44450c830bd4c34556f680c5096ed3aecc4"; - hasRunfiles = true; -}; -hyphen-turkish = { - revision = 58652; - shortdesc = "Turkish hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "turkish"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-tr.tex"; - file_patterns = "hyph-tr.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "5c7023e01bf59af4d36bd451f51ae00c445711c7ecf109c9d835f1d689446d7b0b1b2627b7f9e84e4f4a8ceff52227ff280ac64481e1d29d538a30e093dace85"; - sha512.source = "2aa80889b9657b03b6beb6510b6790fba13811b97abbac186eaf4d3f40212b41db0dd2d21583429820faad558b0415a09aa8254d2edd96812cf6396fb18ccf5c"; - hasRunfiles = true; - license = [ "free" ]; -}; -hyphen-turkmen = { - revision = 58652; - shortdesc = "Turkmen hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "turkmen"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-tk.tex"; - file_patterns = "hyph-tk.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "c984bb7f09c5816c36a7a790f16df1750ee90f36e2130994ecd1db63f26afb650245985699a80da9b4d7004ad67106771d8c7b79262438369aee3f52fd8374cf"; - sha512.source = "a496f681db0b4b85d82ec1dd60c057f63b6d1c1b52d391e7bee98d3d6e1fb596701c91f2ca400d0df13b96ec7a43d275646b7d2874fe1e4efc9d9b2b47f6cc5d"; - hasRunfiles = true; -}; -hyphen-ukrainian = { - revision = 58652; - shortdesc = "Ukrainian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - "ukrhyph" - ]; - hyphenPatterns = [ - { - name = "ukrainian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-uk.tex"; - file_patterns = "hyph-uk.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "05a9111b358c659159c6edfd38b9ce3d78febd794cc82968dc3e2acdc3612786304721fbd07f00f0a8278f4c2e46a1bfad821b5da45e60546d6acb5bf9068d08"; - hasRunfiles = true; -}; -hyphen-uppersorbian = { - revision = 58609; - shortdesc = "Upper Sorbian hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "uppersorbian"; - lefthyphenmin = "2"; - righthyphenmin = "2"; - file = "loadhyph-hsb.tex"; - file_patterns = "hyph-hsb.pat.txt"; - file_exceptions = "hyph-hsb.hyp.txt"; - } - ]; - sha512.run = "b2cb1bcd953ffabbd3f5acd8c72e9c60415fd300004de56ee446fc77d381aac1db65d613a2f591d3d0e45f2a12ff5340457ae3061b4c77de502923932383bdcb"; - hasRunfiles = true; -}; -hyphen-welsh = { - revision = 58652; - shortdesc = "Welsh hyphenation patterns."; - stripPrefix = 0; - deps = [ - "hyph-utf8" - "hyphen-base" - ]; - hyphenPatterns = [ - { - name = "welsh"; - lefthyphenmin = "2"; - righthyphenmin = "3"; - file = "loadhyph-cy.tex"; - file_patterns = "hyph-cy.pat.txt"; - file_exceptions = ""; - } - ]; - sha512.run = "12a23e0b9d00eb4381e3c97ecbb449faf5a73b755a17fc0301f1cbad5d0babb370aeec16dcdd316cefb56e142873abaa685288b1a1d3c7dcb76a07a9ef127ac6"; - hasRunfiles = true; -}; -hyphenat = { - revision = 15878; - shortdesc = "Disable/enable hypenation"; - stripPrefix = 0; - sha512.run = "5af847cd55cc1b455b1928f6ba275054209ad5c9c2f81a7ae648d87eaa39353e842b2df4e91cf530909a46b4aa226228978d771b35e46b7e12f1a08a08faa181"; - sha512.doc = "57f8a5d71763cac73635fddba75eb59faaaed01d47bcbb7ecc96b80fa5a926bb0091d3cd3448c6f53ad82cd44c9244ee631fb5b56141351b578cd899509eb323"; - sha512.source = "781337dbca0ecf6155221b768ace1fec364bd1ddf29e3df36b2da64b6137a09996423466c8241cc5107c3eba056b4bf5c54572af77e781fe8e1e7f02264d9577"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3c"; -}; -hyphenex = { - revision = 57387; - shortdesc = "US English hyphenation exceptions file"; - stripPrefix = 0; - sha512.run = "77ad574e0786d7cd8e7d731fa7666a6a531b29a914759ecbb9b5d6e5f62e9ec9027aae7e3b9ffd62bd918bb0354c41e865779b044381bc1b7256528eddb34754"; - sha512.source = "d93fbc4f3f1a711967f40bbb492e9f6497b7a91b90d42eab92f3815fd0d15b239286c96519acff2d6609be00809a86846ba2cea4bd94719a35aae024e5785a4c"; - hasRunfiles = true; - license = [ "free" ]; -}; -hyplain = { - revision = 15878; - shortdesc = "Basic support for multiple languages in Plain TeX"; - stripPrefix = 0; - sha512.run = "f2968e8baf048329d8c78934770aa5d0a364ac7b3f77dc00a163e085e4fe45420c180acd05b281016aefdfa6523bed234e75ca07da0d133438798c1e51330d83"; - sha512.doc = "cc64c35df85ba832f18f153d0f0cdc9f153ac4a9db0a175a1961a353f59ba585e19b6607e0c4cd1a832d921aa3451687427965cbef4fcb2a87488895e6643bb3"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -ibarra = { - revision = 66892; - shortdesc = "LaTeX support for the Ibarra Real Nova family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map ibarra.map" - ]; - sha512.run = "7de51f4d206481dadbd4409a0c98dafb36a415e75053b78f40349edfd8b122e9449e749967eada07507ada1f6f22658c02b0a4993e39c2b0e97334076072d6a8"; - sha512.doc = "318a4bb5d2fd012c783053f457023604d53cdb2b02739ef8a1780f1856d5a63713774568cfa7a230f8ca1eb4711fa65f99d5a99b5c4e9235fb1b449751bc50b0"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -ibrackets = { - revision = 67736; - shortdesc = "Intelligent brackets"; - stripPrefix = 0; - sha512.run = "fee99798386a5a6b9b8ff2ae9d2eecc5f4dc835b825795400777780f567ade13d789e81de3e841a54653226098ec602fa91839ec86f25ac0ce2033b31508b4e6"; - sha512.doc = "1d6bd5b4a22a44f03006c1fee3d94ad2760042ac98835d1ab043905595f435b583ba2b65fb6f0f881234085f028f492a283a5593d9a8316eec6fab541fc3c6a6"; - sha512.source = "766f93cb337190246b6a446407c8ed75b1ff35edf61cae443798d1f049639bf277951d59b5d8ee7f953be848f81a74b991856d328910e9237206f47a1b4a3a1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ibycus-babel = { - revision = 15878; - shortdesc = "Use the Ibycus 4 Greek font with Babel"; - stripPrefix = 0; - sha512.run = "30f810bd70555df4f05fbc0b073456c030a0768372bd3c681921f41fc31bfbe0570a39e474ab26aeeacb142622154e5cab3714412b09f89d1260fae8b60e817a"; - sha512.doc = "f09dfd00f35f653defd756b72437dd712ed1ffceb05beeadfb34c1c5163559ee7c0ae6ce0420f57b722e93080248cbcfd678d811f1383fa5fa1ab76db52a060b"; - sha512.source = "13e3ad11b56a70d7752209feaa9437bda4979c40a25597114bfc5b4e26a889c623aa7266959a212de6b7e74ebe75fb38b36767fa95f692adae027e5d025a4702"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -ibygrk = { - revision = 15878; - shortdesc = "Fonts and macros to typeset ancient Greek"; - stripPrefix = 0; - fontMaps = [ - "MixedMap iby.map" - ]; - sha512.run = "89002af0024ec804ebffcc45f3a33337ffdb66f71e1ca70224b0936388892dadf99605a8ca3f59a2b879e76e24acc91b1da92622d602f49b236aecb8aafe64b9"; - sha512.doc = "9dd3bd7a8ef3267965f30048e4a71314b6a9813cb400b7a94dfe285606d7554cde80aa429603d0fb1f587935e193e5ece5ed67870fc4e0c66eb5152c392a9cdc"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "4.5"; -}; -icite = { - revision = 67201; - shortdesc = "Indices locorum citatorum"; - stripPrefix = 0; - sha512.run = "23f4f25a72f77cca2585bd390ad1828e04a70b73fba0a86f0622e29b6bfee596a9a3172a8e8b2531c3bac60f8e4d840301d200ff4a4ec20d5332de62766020a3"; - sha512.doc = "a84ba9a33de8ceffb8c92b0555daa1a39fb822a272af2192513ce0c03ffd7c97a413a5916f3f5745a1b36b8e5aafdb081ee301d613d645e66e0f2ba2b7484a0c"; - sha512.source = "227acf7dd54f4ae1e23c753bc9c8a0ad82e275eac2d406cf6147d986d5e93ba2483cb7f9abe3e31d347218d853e6a8bcd4d015b7b9b3afeab901a1a40461924a"; - hasRunfiles = true; - license = [ "gpl3Plus" "cc-by-sa-40" ]; - version = "1.3a"; -}; -icsv = { - revision = 15878; - shortdesc = "Class for typesetting articles for the ICSV conference"; - stripPrefix = 0; - sha512.run = "e865708ef636c7c917cc9a870eaba4b8c0249acba01bd2cd3fbfc9d95672405db133bbf0faf9f2d299bc4024118b80b4354ecb8216427507f66817cac085e01b"; - sha512.doc = "dd06bf5d8a087bcb20c63a61cb9867bda3df35e8adf30a3d4ca69ab149772d46e3b83f168a8fc1c597aa2536a14b98561f42226a59b6663f58de4e338f9b4e82"; - sha512.source = "9ee3fecec68c7719a39d83860e8efaca3f5daafd82b9ed06af9ac38ffa3659d03f7ecec5407d568ec5f071c22c0cb33166449b64757be7b740943472d9ca1941"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -identkey = { - revision = 61719; - shortdesc = "Typesetting bracketed dichotomous identification keys"; - stripPrefix = 0; - sha512.run = "3f41af7a6b1f253dd34c670c3726f9b5fba2849230787827f69dfffd7008ec7bdf8bf84d11e7151b9e0a47b486f60ed2e475f30ed3f6cf35d68e283ff6a9c558"; - sha512.doc = "58574d462eee30612617c9340e00e956968f04b8da292babced36016516272e4d190f06862c9bc41466c85ced264f380192c4e9376c4b0ed58e673f37efd3cd0"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.1.0"; -}; -idxcmds = { - revision = 54554; - shortdesc = "Semantic commands for adding formatted index entries"; - stripPrefix = 0; - sha512.run = "ba1737eac5f6985ab4a0bb25aece07fd0668533ba046d9f980e4c4ba4862c9045e19c06a477e498df027fc0cc2af5503683389377287d58ae89690c58b5f6683"; - sha512.doc = "1894abf19f05ea74aad0ac1fed2409478dac130a019a44d6bf2c909cb1de66e4c9ec543c75db6d9238982f51af066a4287bd8827f89a59d3d9ba6d3f79aed4cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2c"; -}; -idxlayout = { - revision = 25821; - shortdesc = "Configurable index layout, responsive to KOMA-Script and memoir"; - stripPrefix = 0; - sha512.run = "968d869a0b635b14ce8ce85e710c987ecd8ea2efb97a03314098014366ece450b4566d626031e11b52d7ede53a019665640fc1626dd1e24651275b35a8f2cac6"; - sha512.doc = "469a20893247406856f15dad6b14050e221299dc2adc40f1547361d74d3f7ce90ba6eabde06402bdbe22c845119df4bbfa8b999931e99c1b944b165f3b245892"; - sha512.source = "a2fac68e0c6c0f2cc0c9472d9d58882c337f519caa3b2bb088a330bda4f65b43a1acbbdf936e4975f3c628ce1f5a45f58def28cb129a0708a0b4168cbcdcac0a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4d"; -}; -ieeeconf = { - revision = 59665; - shortdesc = "Macros for IEEE conference proceedings"; - stripPrefix = 0; - sha512.run = "1a0bf2fe8e019b55ac1ed72a9d428c3e90653183918f2c1ff22e9ea468cb3b3fea424fa3de2a46b9534086138f1130105672ac217ba7172354c51bbf384ba20d"; - sha512.doc = "a0133638d4da1822c2cc7c41052fc69d71feb89bfe0351594343166cdb217a62cb849d2a355bbaa3a12e38882ca76c94740f9f4711b42280c81a58bcc9fd17f2"; - sha512.source = "9badadaad5c47d067054176f8c979b4472ff57db1746ec2f2adbbb39fd75856d2145e120de78e51388d064765a018a06a71bcf75f078f3a4a958754c6f565c5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -ieeepes = { - revision = 17359; - shortdesc = "IEEE Power Engineering Society Transactions"; - stripPrefix = 0; - sha512.run = "60ae4ff80be5c2b02e2ebeea5954ed61b73dbc085a4d282004796d9be6038cc7c8020b7c81226d7dc7b121683e4196e461c7c3d101bb460eb8c39bf2da179bb2"; - sha512.doc = "ae2413800f1bd4c0467321a7332fac15a8010e31ba7a4effc0fdb44e9e7a0001ba62d6acb44a72eb6f996560ddf96231b7355c4b9ad8b816be102a143b7c8011"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -ieeetran = { - revision = 59672; - shortdesc = "Document class for IEEE Transactions journals and conferences"; - stripPrefix = 0; - sha512.run = "d688e4be2d145652c16b028cccd05ec5f41a94ca190caff0c6b3fbadaa5c859516a28e4555569d072dd1d550c8794c1ddaaefecce49945284dd304938360f419"; - sha512.doc = "241119c6d2848d5f63e2afe8f1e07c263fea526c9c7ef21ecc533f27c92a67b1baf9a33122fed6ff491b2ddaddb0e02ce138164c8b9ff2f5db11d1ff802f73b8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8b"; -}; -ieejtran = { - revision = 65641; - shortdesc = "Unofficial bibliography style file for the Institute of Electrical Engineers of Japan"; - stripPrefix = 0; - sha512.run = "16dde97354dd4c4ff2bfbbb9ead8ce7141a253afe2ec5b39cebe3239d40827d73c83ae90e79be77c5e5a799b40dcf5a3074f2659feb5add8b62d4491097a6cf1"; - sha512.doc = "41ffd8978d9a591c4aa711c4b2f1dc73a4d18a39e67003494c4c9a86d5fd24acf40b6c79dcc139cb46a36dda96d1e0a26a7d5336683c3d7d11eb6e46765c03e9"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.19"; -}; -ietfbibs = { - revision = 41332; - shortdesc = "Generate BibTeX entries for various IETF index files"; - stripPrefix = 0; - sha512.run = "ad8796bf4e492072dcc9335f913ae2b5d81f2152289ca76cfbb61a63577c631bc38f5cad6860aef47b1fb54c02157f509c23c3f903b34b8e7a82b8604eaa449a"; - sha512.doc = "586dc66004dcf4abed254d223394badd45557d79c7e1b56bd20080f41185ea8dca28b3d501e708cc3ed4088f1368f153ba2d2af313d5d6add2d072b46954952f"; - license = [ "mit" ]; - version = "1.0.0"; -}; -iexec = { - revision = 69420; - shortdesc = "Execute shell commands and input their output"; - stripPrefix = 0; - deps = [ - "pgf" - ]; - sha512.run = "c9b89b8d93868060d969ff2943fc5915b831f5354a78b87fe99edc3b475875ed10349934e6cc23376d23d3fbd8e84234028bb4d2ccd49a30e8cd3e3b20035311"; - sha512.doc = "7226a854dba47fd91eca3ff5781e312fdf1650b8b3596d4232b353e8854d5cc213cb3f31ba4010016daf4d8683249697290b7886ca8db651b0bce2856bb7e08c"; - sha512.source = "53b295fced75d6a8451d1d6e9130b3aad977fe7b1e0ad57d67e899920dbedefc297b36636772cedb94bace189efa7f2a65172e44069ba62609961ea0cf8fe2f2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.14.0"; -}; -ifallfalse = { - revision = 60027; - shortdesc = "Compare a string against a set of other strings"; - stripPrefix = 0; - sha512.run = "2117368f9114bfe20c7fcd387c47d27d59cb2af720eb6c55f2a8254067e2dbf7be21b9081a244367d46d5deae8150f915b17431296b02de486f4147e5ade9b87"; - sha512.doc = "c952a3f591c77df2b2443352783606e57ccc35d45769d1e7892b12399de5253af174a739c7283a28463536394430d0582852abb677fd87015bada501b0bde95e"; - sha512.source = "3070c2a5beefc8ce8b29f8216a66b5636aa71f6f68aee9734eba78e487110efa67a405ed4b87d4a550bd3fe45df3a8f3da10ae717d0c31cd98bb2465bb903bb9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.0"; -}; -iffont = { - revision = 38823; - shortdesc = "Conditionally load fonts with fontspec"; - stripPrefix = 0; - sha512.run = "a2a329da661f003edac0e0bc701958e0744864f8693ffccce7f1ea6867eaabe7d71b38a1dbef8bc27f770e8b4c30a4480ede1dd575d26860095575020db987f6"; - sha512.doc = "95a8f7357f095dc39ff642edeb6d7df206c37ef01c14a1daa280939d44047c5a935eb18049c280ce00238ad4fdfef6abe7399dd8c6fc815b7c70b22072465453"; - sha512.source = "2a12158850d95a2008e5a845914293cc9aae54dedd54e4a13a27899b0bb8c272e43bba374447b34913f7b4aae01aff9b9fee981240bed93f8995dfc53eefd2e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -ifmslide = { - revision = 20727; - shortdesc = "Presentation slides for screen and printouts"; - stripPrefix = 0; - sha512.run = "c9027b8bb34f15e667e530a8b8d57b793ed16a7ea33feabe58f22cd71230945905054e01853561f4cbaf5fe22f4aa140cbc95072f375d567f57bcce3c4d07d09"; - sha512.doc = "4e7a64773cc1a14df0d2f58ae0b66d1769b44958bafa8fdd4e51bc294555e7895632b741b47edbc29fc5f5ac0ddd73dddcc16723a7297c12311d3915e88f633d"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.47"; -}; -ifmtarg = { - revision = 47544; - shortdesc = "If-then-else command for processing potentially empty arguments"; - stripPrefix = 0; - sha512.run = "b04aebac5acfe90a149f417cdf0d45b3a7cbe53d53d4d9f39d5badddfcb894e07f397933199bca702f3f0e66458133ba17feb5ace2ebda4a25bb24bf1af5d259"; - sha512.doc = "8f456c15ecd5090d2124a85b02c1ad100dc999064b258678cad3c444acae3e88b95e38f7ad1785bfc91f385d6bc1664c0b58282d5ef36e6cff9857b81176ab7b"; - sha512.source = "e30806ba6fa85737f67dbfbf7cc1556781bd4cb2179672e5b9980e7f625366d5627c69411dae34a9e1c0fc29c16acaf302c344d9d93b9dd4afdf23bea020cc63"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2b"; -}; -ifnextok = { - revision = 23379; - shortdesc = "Utility macro: peek ahead without ignoring spaces"; - stripPrefix = 0; - sha512.run = "a56c703e1830fa64432d1b3aa72d3dff52b17c0e5b90b2cb34f7dff974e51331f5d9daa2b5aba578a8bc4a73b693c9a3dd811c6d7e32379165cc7ec1349c541b"; - sha512.doc = "1eeb8d7627ad8887761e66704a8f3c848b633a4f3a5b094626b3c64888e6db95c25b8dbad4332887a6d9e866e4aada2816b7c7e7fd19c07dba03db38842886fe"; - sha512.source = "05422af6ee53e12ad124b314388811490304c5f42b81b17aa899e7cea5c548395043abf4abfd0d4819e6338b6d93e99c57929d18312f49500f0368038e440495"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -ifoddpage = { - revision = 64967; - shortdesc = "Determine if the current page is odd or even"; - stripPrefix = 0; - sha512.run = "2a750da3db6bcc2c08f4240874d57c4aee1df4fa42e695156ad08ea5c1e187061c8071f621d3cae9365f28853c44e53a94d7702ccb4972656d096ed4d1272524"; - sha512.doc = "924f08c94634f1149f8873c626c4b73cbbd2a6fba0ed28f1199b6688fd8940720643ba672d781b28f6802c1fc5dfed5928784a70436d492f4bc51c6d43006119"; - sha512.source = "1a77f0234475293f72afad4b2db4e5b861236b30a80172460be7a4bf0b734a4a06a2f69018415b80bba11bd68bf4a36a953eaccaf11efc93698f1f779f80f071"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ifplatform = { - revision = 45533; - shortdesc = "Conditionals to test which platform is being used"; - stripPrefix = 0; - sha512.run = "952f87877c058c1e8ba3df227ed7332501e7861bdfd2a29878dc4b14e6b95a1b116459bef7f65c5bf277c95d08120c7e9fa9576a7654739e4a26125ca4d5c724"; - sha512.doc = "520004cfa412c2a24ece0e00b11d457405e71a446e554a1d930e60ea7dbd00f61b2b6a7ecbe89b62610316fd3b6fad685d7013042fa71fd7fb270b40748dee56"; - sha512.source = "a3c33b16decd5fb443d9b5bb13f3a5e0ed56705d353b0260772d81f963460ff7e914fb1d7f4ee24e249bf15af77368ddc6fea49014202389baaf035f2165e17f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4a"; -}; -ifptex = { - revision = 66803; - shortdesc = "Check if the engine is pTeX or one of its derivatives"; - stripPrefix = 0; - sha512.run = "9b0588af312fc3627687703f030f40ae421d9949d696891e9a60aca3c7582f0a534099685e8b8d5535df0d2f9dcd452f4219092d70c285d0fa65af6d140b7afa"; - sha512.doc = "a65a583b033509fc0a41fb65c6ec17357c0e095cf09d6f5d2b9b1f8e5fa323f368cd381941e8850bc1fe81a213dd2bbcc3d9877c08d50a5a78efedca05a7897e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.2c"; -}; -ifsym = { - revision = 24868; - shortdesc = "A collection of symbols"; - stripPrefix = 0; - sha512.run = "ef6615a3768f87009d22c3feeaa074a0589b17efc8585a509e21692195a100e5b11e2d0849fa2eaf8f80cbe0d96ea12e773aee0be28e7120ee80a86dcfa6f8e2"; - sha512.doc = "10dca0c00a52d9d9775bd2ae35b50d7d56294da9b8eb21f2bc35f7863cbf1ab357cf8f3e1d949570ebf4908a60d9ccfe604e69fe779780c8e7527172f3f0e999"; - hasRunfiles = true; - license = [ "free" ]; -}; -iftex = { - revision = 61910; - shortdesc = "Am I running under pdfTeX, XeTeX or LuaTeX?"; - stripPrefix = 0; - sha512.run = "ac7958c10c0cd5ee3a82273632445423c347bc9c5fc2015b97fdb7018d7a07b7e1316761698973b325314e945fba6c86be0dd49e058ecf74a55ccf2b9df8774f"; - sha512.doc = "d51b452532fcffce4b1078ab26396bc4f8739e2c3025917b4ce88af2e5aecfbe0a54e481f1683afe2d25259c6f73e27be8f257beb1b599f9817dc37df427fd70"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0f"; -}; -ifthenx = { - revision = 25819; - shortdesc = "Extra tests for \ifthenelse"; - stripPrefix = 0; - sha512.run = "76235d3f8dc4e62604828beaf87327d11d4a9ff69061edf1a3ed4c874983251fba75d80973e54fb3daa2d160b27000089f4cdf1c29748124825fb4075b6f7148"; - sha512.doc = "efc4fa3b5d6e91d1d5af27846bf2652672a233537810051b2858c1c4ffacafb9771b2c3a222cea4d490e0478eef96b205c4043f4957b876b7f4d57903b26454d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1a"; -}; -ifxptex = { - revision = 46153; - shortdesc = "Detect pTeX and its derivatives"; - stripPrefix = 0; - sha512.run = "7bc52847fe21879614ffe673ebec74c735c70e07d63649def00f70d22db80faa920f0764f76c5094ef982abbff8202ca55410ee92d033c45ec43fd25adabb23b"; - sha512.doc = "1bc4feaacbdd33ba6f46c699969638cdc8a4b962287332476d0d163a10141136f9b913027ccc3418033dee0862d5e572957dbe07d47371c1d932103958151e27"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "0.2"; -}; -iitem = { - revision = 29613; - shortdesc = "Multiple level of lists in one list-like environment"; - stripPrefix = 0; - sha512.run = "b2b37e68db2b33e414ecbfb9078b60ce5571b7ae931ca828a3c668ea7cccd7b93a2919cadc7723daa3f63a7015939a8046973ade140fba01025dde0d5212edd0"; - sha512.doc = "f9f001123e1f49bd90cb3b24448e423068565c9256129e23126791e2ea2bc39788ff5769939d90018087beb1b31fbf3568c6d4962f2e92205717c84aeee54a21"; - sha512.source = "e24eb4a7a6a635b95b6a1b40d27651eccf86a6c5276aad3ca46cfde08185371fdb34ac2732d87750db74605c14e087d2102399e23ad85a236a68dd5987784c0f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ijmart = { - revision = 30958; - shortdesc = "LaTeX Class for the Israel Journal of Mathematics"; - stripPrefix = 0; - sha512.run = "a1fc1aca9f557ea9c8c70343ad1e5712a846b8a7edddf2077e78fabc3919b928a5d7e8b1fee0f0bc29ebf7887e26dcda5bd95f2ba613051e52f13f1ee24001d3"; - sha512.doc = "502aebf377c8b13d7699761651cfd67e1e2d10a8e8a022303921aa1e708fe913b217e186b4e2527d8ed81e3db6ff055dba5edbea218d6b9a92f679da66fefe97"; - sha512.source = "e42bfa6ded16f78b764d1ca55e905ae0b2c0a5611b8ffb2e882f121d04855b5f72bf925002bc322cc1106f68c7c68ebb412acc71789d560fbca12051a75860e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -ijqc = { - revision = 15878; - shortdesc = "BibTeX style file for the Intl. J. Quantum Chem"; - stripPrefix = 0; - sha512.run = "55f7693a820f0cdaafe8697ad352cef2748471711113cfa4738931926cb4d49497f4e825b0a737c233541203cb5c8f23dc4f8326950520e8aa0f4ad27f353347"; - sha512.doc = "6b94eb95d58a06b54a1fb28b26ddec15528ae99286a37631a64b4ced32343872a04b96cb2de540d54c54f02361981ecc575ef7d014a17e1d0111883e92671fad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ijsra = { - revision = 44886; - shortdesc = "LaTeX document class for the International Journal of Student Research in Archaeology"; - stripPrefix = 0; - sha512.run = "9d5db4217675af4577fbf9b7e8a5dc4a42f447e7af60a818d740327326d478afa9071be37c80315b0822fec48d1fefe4e3d6a8dfddb6f34fbc11cd81a5d05a12"; - sha512.doc = "a3424b8ed16d1881c5a2c4d80a42277a1c0e3a62484a0d5ee6a18a9ed9fd39fe0de241fefbc723960bfee331908bb5c95a0b1b95ecf5e06d6425ac8e6c2dc342"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -imac = { - revision = 17347; - shortdesc = "International Modal Analysis Conference format"; - stripPrefix = 0; - sha512.run = "5e51d080e18f2a5d9529705d0e8745a8c7b2d0186c929e04434b71ed356df3ee2456c268ce2232da9cdbf6c15182f6580b2b96995a6c48e40fcff1efb001cef9"; - sha512.doc = "df4232356db6e2001277bdd8de706549d2f91b2d59d4a55f39c4aa9628e1a2b6ce092a7630ed4fc20096d069d19f2ecdf445129a870ca8bfc9d87e522350798c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -image-gallery = { - revision = 15878; - shortdesc = "Create an overview of pictures from a digital camera or from other sources"; - stripPrefix = 0; - sha512.run = "0435d5011bdaac97c6f36202a03cbe52cb45f83d7dcf37111b9c68706e4cc971b5b13ab5fe0b29cb296f7af4b217a64b5507ea00dfe63e8496e10b5adefeed8b"; - sha512.doc = "ae9c965bcaeaae17b8a815bac824093a5834f2b96c99bf44527d915ae251cf1dc818279f78d3cbe75e51875e658d47baa3b9657e27f5121ed4e259ae5cc052b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0j"; -}; -imakeidx = { - revision = 42287; - shortdesc = "A package for producing multiple indexes"; - stripPrefix = 0; - sha512.run = "6ca0680f29daf88dfbd26fa87d47a65c8b2c2d534321b814ff78d77d0b97d7fc5654b4dc0b91d12eb0c9373cfaff5fac59f24def8d0f50d97da34fda6f839d84"; - sha512.doc = "a07d9461013045274f03145e97d286d930055c4573e917a78e8913841cae30fb61b99e66d098b4ba014cf44e92982301c7d72414e3ce1df176bfd35ecd26ddf0"; - sha512.source = "f3fd8e1a5057cbbfea56a0d21f16bb310fb815ad7363e284083f2c313ac055b1b335fc1c43bbddd1b1beae64ec42e29bb4a194056be658cfd3ee24e49d5e5804"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3e"; -}; -imfellenglish = { - revision = 64568; - shortdesc = "IM Fell English fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map imfellEnglish.map" - ]; - sha512.run = "59c575a0c08ea995ebdf871c627734e47d48de927f3176f7ebfe54fc9f73d0a026159ac75e5673b180ac3cd5b8af9bc59aecc9879ee1a30084609c3d5828ede9"; - sha512.doc = "ca9e465e985ad5568713c5cd79f4b6d8b0474ecff9e35356bb2c88cbd6e71e451c44cd9e407bf0e8b15b4267d44bfce2a64fcc052a7f4be662b560695c34a865"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -impatient = { - revision = 54080; - shortdesc = "Free edition of the book \"TeX for the Impatient\""; - stripPrefix = 0; - sha512.run = "8c606388baf92ebfd113a2e7332c479f1428f4c9b2c5b27f04d9504be29ad20e38b3b538366c2feb78a43998460d362156e9abf8fdb3f8457ff4c8452aeb2141"; - sha512.doc = "7b0811a691b9ff35fe245df7929164420f2155b4797d372988c7cb7f6052291c5735fdf44a0cd3f7a956be9dec424b5b59385b3f147f39b5beab7b56d1eeae1a"; - license = [ "fdl13Only" ]; - version = "2020"; -}; -impatient-cn = { - revision = 54080; - shortdesc = "Free edition of the book \"TeX for the Impatient\""; - stripPrefix = 0; - sha512.run = "e75363bb36568ec42f13217dc740b839e109529e41ac9cc713e8c7eb620e557dcc08d20f36cbdb5f0e3145d9201d659fc8478d40fae4862fefd3eec005a3463b"; - sha512.doc = "ea0918afe1c785d864bc280a6b64a87cc62cabb02540cdf64a7cbf4b8f81afcef9ac85a6f28b5bdbb42a75b6ce1e12139c12d0e1af4183a28115f8d740c6e78e"; - license = [ "fdl13Only" ]; - version = "2020"; -}; -impatient-fr = { - revision = 54080; - shortdesc = "Free edition of the book \"TeX for the Impatient\""; - stripPrefix = 0; - sha512.run = "f6a9a69ded33199fcd46d518fe8ed7dca48677c78fac5f90cdbbed2290558c4a9d7c9b0721c188023384acc97ad95df29565b06abc16fa33deb04490ca50b4ac"; - sha512.doc = "963a379e3fbf422f4f4d53a41d6bd074fd077360908eb0db1db0a50699e12f37dc6b3ec8b42812604de4ea444ecb38cbfc81d3445cd67626a65fa9b520fb8550"; - license = [ "fdl13Only" ]; - version = "2020"; -}; -impnattypo = { - revision = 50227; - shortdesc = "Support typography of l'Imprimerie Nationale Francaise"; - stripPrefix = 0; - sha512.run = "7afd6cf1fc2738bda4f390fe7f2f9d5e1bdd33c2e6bd32b4dda5b232005589f38436813d9e5effb6feae6371896be453b608ed61c64b9bf38fd25ec400c4b101"; - sha512.doc = "086b106a965e0f469cbf3560561da7d84e4151d5430d42d87c2c52568243305e20a1bc99ec4b252237f4c61369127683ff7b629013af8c76e9dc8ea6e551e24c"; - sha512.source = "5bf181ff35a90a1d5c7656f7ae9778305088035370cec3542fa451b055cdad6d3b1ac1cf830fb7ab7ba3d4d89ce7b96a1112575f924fb13f24b1a90fc84e24a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -import = { - revision = 54683; - shortdesc = "Establish input relative to a directory"; - stripPrefix = 0; - sha512.run = "96a92584b4ff4a4bd3b345b446f2802e34d59ebf8c14469a5b5331e6d2f92b63f42d8f5799bdcefc9ae3f74e5e6f93aad7d5371dbe7d21e84ced3890a76c7a19"; - sha512.doc = "967d456dd18c8838db7d2ed64016fa0f77f2ed475e5cbe36389414849786d7e7850ea43e8bb00d8aa06e3ba06f62970a6525ee1b5a5109f8cbc77a0baf894b50"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "6.2"; -}; -imsproc = { - revision = 29803; - shortdesc = "Typeset IMS conference proceedings"; - stripPrefix = 0; - sha512.run = "12ce0d8ccdcd54890f846b501cc5cf7af00f7759c916147c676358b689b852a86a1981b76a14e455a4edece20ad1857100123f91469dfb23ba168177e15fcafc"; - sha512.doc = "a4007fe80cca88525dcade8d8201fb82a2c35cafd7bf92a8ebe6b4668ddce6bd43e958e1223d5c212e91ca692df39aae84c4a25b6862afa3aed2f1f646eabba1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -imtekda = { - revision = 17667; - shortdesc = "IMTEK thesis class"; - stripPrefix = 0; - sha512.run = "ae95a9d52ed07e962a9d98cdcad868a9d2dc6e1eee82c38fceda7f7668934caab5062727e75ee3b1824ec60ad112f15541c9519fd494fa8199caaf0e83906484"; - sha512.doc = "6f854d85a7649b49b3c88d99f1f011df514b39064e2c340ae1e807de3e730a46a432afe178574105a414bbd46ae0509b9e88d6c0ff825e74dd55772ed189427f"; - sha512.source = "c4285c9099d8a2582570d0d7df327e6f693825a63c7dbbd6626361d9ceea83a039425b295e17de133fe51e43a23ada74e5fa83d0995fd4a6528eceaad2f59461"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -incgraph = { - revision = 60810; - shortdesc = "Sophisticated graphics inclusion in a PDF document"; - stripPrefix = 0; - sha512.run = "06c7228e1ef4d760f6d7b1d308d4946eef7a55a60ff39bba6bdc6a96407cb6fab9f47dfd2c26f37d4f674d815e0ab7196badf2590638e214c980d26343a6bd55"; - sha512.doc = "3e37591fd1c239d2feb262434a5782be0160104392f6b6c2f330aa30d8e8af5905694a125d29045b403239d67952bb88d1194a1d1e61194e82426405fa11c772"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -includernw = { - revision = 47557; - shortdesc = "Include .Rnw inside .tex"; - stripPrefix = 0; - sha512.run = "a2b43d658ed62ff3a301a1b190cc46f04a4a46f413ed4af3e0f84f1873efc6841cd23fc07d68a90cca50b6ed00ccf654aef9dcb6a8b4863277b06c7e8c666e6b"; - sha512.doc = "8ebde646868cebadd8d50cfca25cd8d924c0112129ea86b0ca3ae5b9f9f4e4fec3c1e464486ec0f92e5cf7b7fe3df1fceb1a7967bfec755c57645e6909705c0b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -inconsolata = { - revision = 54512; - shortdesc = "A monospaced font, with support files for use with TeX"; - stripPrefix = 0; - fontMaps = [ - "Map zi4.map" - ]; - sha512.run = "3b33a1627083b50019e0c66ad49319d3ae699943f217daa21f57b19dd2733d29c6f1e9fbaddc1e3e39ea96623581b1d6a388f1a0009e84e4c3f381887b05d4c7"; - sha512.doc = "9139f7769536398c2822c41fe1fd0850a81fb54d70524904b266c8e231c95e344e27468187f474d51a9ab8c4028d6e5f9cc4513d1b38e306b739a1572c387e88"; - hasRunfiles = true; - license = [ "ofl" "asl20" "lppl13c" ]; - version = "1.121"; -}; -inconsolata-nerd-font = { - revision = 69061; - shortdesc = "Inconsolata Nerd Font with support for XeLaTeX or LuaLaTeX"; - stripPrefix = 0; - sha512.run = "dc202282d55ad63ffbf39fe7b36edbe42391fefd1c1cb0fe2410d01c562fe8024ac007ba235999c5e369a0d80763fdf80815d2beeb7dadba0f39d027fea507f7"; - sha512.doc = "00fa8ab8a508a3bac281ab2d7f63fbabfb6958770d308184e0fda7924383dc22a3b36d5f4dff701cda63e847cca819d38b45a0d51f634e1f503d5964fa60d9e5"; - sha512.source = "867f875d6b1211fbc8d223df7f00030d28ed13336c639f83251fc3b930e75f61d12daf93cf46943a9b2a3db883cd2e9c8b759f19f85562fb589ffbe2f01ea344"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.4"; -}; -index = { - revision = 24099; - shortdesc = "Extended index for LaTeX including multiple indexes"; - stripPrefix = 0; - sha512.run = "2b9bed00e12b5aa7b1813be766ba7c2e1eb750dc270e9eb585b1cc3d559a3f0c9094919344aaaa51cb6cf7cc132a5f89f8c07c96a12c5b1a5446524d07f4121e"; - sha512.doc = "0e68aca1c5dda444aa42cb1883821f2003c450291191b2eef16169f3f76e03e5ec9d31577574afd8d3b10237309be303538ccd1d4c8edb9757e7c910da7c5f51"; - sha512.source = "fc9e646c54415a14e41f1adf9894e723ea8d25e1d151b56fe40e5dd437a4659535b11eccbe9e2b6077d01a7a83b044c2d1d2b9aa1b08243d82b5a37a70641c11"; - hasRunfiles = true; - license = [ "free" ]; - version = "4.1beta"; -}; -indextools = { - revision = 68555; - shortdesc = "Producing multiple indices"; - stripPrefix = 0; - sha512.run = "decb4d3e7a2504f0f08f5e907eabcd961d1900cfce98e79cf8d7745868564eace7f3fd1217de69d615f9267630c71f9289a0519dd9f3b8603be6544ce6d1cad9"; - sha512.doc = "d2b1ed9f2d79bab4dc9b69b09eafc3657c2f60002d53703ec01e7cfdd29e8e9ad4027fa46563d50ea89bc2e63fa7b6c71ce2e37caa5e37838b6cde2f99ed97d3"; - sha512.source = "2d4d637e3cd9e6dba00104c0ae58021211cf8b10d8d44bcb9c3d9af1d0680e4539187947f6c685acb8ec194e8e60c447e6dbd02cdb6b8915c8abaaf8b991b39b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7.0"; -}; -infwarerr = { - revision = 53023; - shortdesc = "Complete set of information/warning/error message macros"; - stripPrefix = 0; - sha512.run = "a41fd6f2ee199e460950fdd31484be7e949a5e36ca740daaf3a1ffa01103d865f573c8ffe0859a8629456786cabf2f1751dbd828cb5d26356b1973960c854261"; - sha512.doc = "2830f622e2ea8e5b3427a9d924dd5f45f0c63a8a6de82e261102ca2c3f3afd7b781a7e0d50903dc8d8c1bee0674503f3ab935fe81dd9490d4310650097c4ffa6"; - sha512.source = "ccc6e1f7a63c10fed449c390b2283ac44b94c33a453f1146658082c888723ad8223bea01b71545d7f57f89fb8c8373f1a8329aab7255b7d17fd36853456cfbe9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -initials = { - revision = 54080; - shortdesc = "Adobe Type 1 decorative initial fonts"; - stripPrefix = 0; - fontMaps = [ - "Map Acorn.map" - "Map AnnSton.map" - "Map ArtNouv.map" - "Map ArtNouvc.map" - "Map Carrickc.map" - "Map Eichenla.map" - "Map Eileen.map" - "Map EileenBl.map" - "Map Elzevier.map" - "Map GotIn.map" - "Map GoudyIn.map" - "Map Kinigcap.map" - "Map Konanur.map" - "Map Kramer.map" - "Map MorrisIn.map" - "Map Nouveaud.map" - "Map Romantik.map" - "Map Rothdn.map" - "Map RoyalIn.map" - "Map Sanremo.map" - "Map Starburst.map" - "Map Typocaps.map" - "Map Zallman.map" - ]; - sha512.run = "442ffe7585c725c62cf9edf86bccabfcc0406b7517f145567c952ff0de65dae94158f586a1c0081afc5fe3320494750ddc6f455c78ba96e91f409bb0f5905d8a"; - sha512.doc = "c8e837291eb7dced1d4bc4d94e7e6bc042ebeb5c561ad3688a491f451991f122896d7df01040575ac6fd705d3ad55350e12afc986dd619c4303ba2919f64dc6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -inkpaper = { - revision = 54080; - shortdesc = "A mathematical paper template"; - stripPrefix = 0; - sha512.run = "d07bd9d2f32981607f4baf3bc348fdd99aae0c331423bf1f678231a2ab9830e4a824357df067e52643e6c89ecd1b850afb2444686fa33d75e6a3e598b003553b"; - sha512.doc = "acc6ffc291db3164d8428a50ee0792907435b90d3677a0e9ec883e0d3b81b6c04785a08217bd6c9554545eb5bc328a702c2958301245bcce68949ce76726c389"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.0"; -}; -inline-images = { - revision = 61719; - shortdesc = "Inline images in base64 encoding"; - stripPrefix = 0; - sha512.run = "8cb6a0ba51ddbc06a795dc21c40ca4f18921fa978cf17254aed279e85e769b29e7dd6a0266738e5f52e22bfed87599e6b2099bb04aa656397f04d6d51722c56d"; - sha512.doc = "ce56e90e90da8ed441213eaedaee7bc388714248547524701ad49021899ef439ae78884ad1de6e60cd06b5916649403d75ea7fda051fd3b87e89bfead9ccdf10"; - hasRunfiles = true; - license = [ "lgpl3" ]; - version = "1.0"; -}; -inlinebib = { - revision = 22018; - shortdesc = "Citations in footnotes"; - stripPrefix = 0; - sha512.run = "42e158a9ff10dc165345bd08b18fc0f90b463482fbb824872289edf93269b36b04faaf35cd12538e83ef1e509b7400ee61e604c5849922106368624c6c20f507"; - sha512.doc = "2a00d2f51daca68362b5243d8cc485bff6f64fbb9156d1a221d75dc5eec001c3377e6d67afe5d6384ba3f7504eafd65919f5afca8e1170f8b584eb101c947faf"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -inlinedef = { - revision = 15878; - shortdesc = "Inline expansions within definitions"; - stripPrefix = 0; - sha512.run = "b98b83ff26b5ecc9826f111d9faef5aa0f51ebcec7978881da2a61287af7aee022dc1b7812ee457885c7813eee0d2200d250ef45648619f3d105e2df54cd21d0"; - sha512.doc = "6bf73914a9eff5d774ca7b7e37a859b0e7da3d408bae603b74c9f76e379ff6d3558d7e30ee4a246bf3f7d40f18446fc78299edf4eda0228e2f22e47ad09ea024"; - sha512.source = "ccac53e2ce8ad0fcfadfedeca45d136ba94bd51d46fb4b860269f2efb7c0996823d32ee1935a0dad79ebe69c9794e2882e6dabca0c5751b3e8b25e5329623953"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -inlinelabel = { - revision = 63853; - shortdesc = "Assign equation numbers to inline equations"; - stripPrefix = 0; - sha512.run = "66d105c71bd5896019ec584a4ca0a26fadadd8d922be95ec7c8e0ee8f9b5a265304359a19ad77036e8bc885ec0e786e03ee8e1edb72addd1adb5d064eb40ab08"; - sha512.doc = "0d70c8f7d7b9f022444c95657b3ecef395790ca80697511e8ebcef975ae19edbfc43abb223bed03888943203e870e8732cfb37f2f07e0e4e2575b8e2d495f8ce"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2.1"; -}; -innerscript = { - revision = 68776; - shortdesc = "Small modifications to math formatting"; - stripPrefix = 0; - sha512.run = "7b647763f5a535f45a7741c3264fb59e2223837a9c99617aab870b624122783e25d1ce2f48e14fa5c1f01b660e5372eefbad3df51c52cb414ba675b8bea18e51"; - sha512.doc = "406d30155e73e13eb51967e3902e1fd2d76a92aa29323306a8769f9b4900323d288d1620a2a85ff76062e1a7b610bdddc06b113e15cd1479cbcb1bbb25b4c79a"; - sha512.source = "caf662052e89c10a1f6da8f671aa3e30eb4738a68b095146339f9c0cd95cfdeaebee30869b5c7c92bcff6ebfbfe526ad6ab032d26bae93e671707dbcf3835218"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -inputenx = { - revision = 52986; - shortdesc = "Enhanced input encoding handling"; - stripPrefix = 0; - sha512.run = "5550c1d76a0906f47ac3e2303fc57ef9ad1c8442e12e3522826dbe7fa8c971c7ca4241e0a1707f6e10336855eded20e94130a6db212b787383282326aee8886b"; - sha512.doc = "087bca2b38a73530b19dba7343cc488b39ab505ce00b4c622f56f9d40c448e6349052e12358cc8fe6d8db7039c6af4f06910784795a2cb1e69b85eed423d1314"; - sha512.source = "a633d0ba777e0342fe99d1ee8d9c955fe159c4a881f31c46fa205078c3b1786edc2025f58ac88b7dccce0c6bed50e8f44025ebd43b28871db953a34e54b3aad7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -inputnormalization = { - revision = 59850; - shortdesc = "Wrapper for XeTeX's and LuaTeX's input normalization"; - stripPrefix = 0; - sha512.run = "ea1b93d71757875867fb9d899399ad5cf95d2a0560b3caf2569d08480f4d65dcf4a963632dd27b1e28674a9b5c6496f769c17ae08494a6c37ca2d0e6a8fd8f04"; - sha512.doc = "ade22bfe8534389f117f0f99dfefd7e27f84ad653419929ab86ab045ff08c1d08952178c6c8d42b3b22d575e371ad4b77c2efda436e4b8ff89dad2bcb67c7d65"; - sha512.source = "048bcdc198cb028863f2f3f30366ab209f18fa2d3f76cf42ebd795cf34d92734e617fdd7412c3f5e43127a4853f1f2b3fe928c8cd554b5e5fde430b5c9170d47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -inputtrc = { - revision = 28019; - shortdesc = "Trace which file loads which"; - stripPrefix = 0; - sha512.run = "e6450fbeb0f9033b0bcc586c34f5bb8e9c3a6aae102c15912be315d14fe883b8bea62a59a4a65d0ebbfa9cebcc518b9dedf59297f026423ef14aed2c0a2004ab"; - sha512.doc = "4fe7894ee87bcb81566d1838f52c02902d8f5668662fdc016005e9a44b31f35eef8831143cdf5321717ee590ed14fc6c35305f584a0b63254549f96149ae2a50"; - sha512.source = "942d536481750f2272cf8b1420e13703d16231a0998b90c7f3335d4aa6dbd0cf1ff3b6ce072970b182fffdf14614422cc794798632ecc5ff41dfffb18c836398"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -inriafonts = { - revision = 54512; - shortdesc = "Inria fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map InriaSans.map" - "Map InriaSerif.map" - ]; - sha512.run = "9c960dca72d433a5ee20b2afe843b92fa98060e67638676a8e92ce9c7dde872be4bfdda6be7a76ea90db97e51784db4487ce22c79cd110ba0214ba54bc8fbe18"; - sha512.doc = "352e35b1b748f502db20c76f670c8eb6d02f672ee743518113a7b7807678ab45f2a628980229d8dae67df0dcd3581a5a28492adce8752a1a5f914fe550bab01a"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.0"; -}; -insbox = { - revision = 34299; - shortdesc = "Insert pictures/boxes into paragraphs"; - stripPrefix = 0; - sha512.run = "98398c838689cfe22ba859e2983f374ecf94b21bcf46de362056821af31285754717f7b2169f8bfb6fbbbee849449a1f3caf52d1397a901133d0364b392654ce"; - sha512.doc = "53baed8af86447a60bb1a97774778256fc4ad1f08f73e2172a68fa091c32e41bf84d10642ebb426be610e34ef5575999d15be7f0c5a966618cea5b3a3832c9a4"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.2"; -}; -install-latex-guide-zh-cn = { - revision = 69264; - shortdesc = "A short introduction to LaTeX installation written in Chinese"; - stripPrefix = 0; - sha512.run = "f93859b38da5da139942105175bb9c4f399934777fc04a7d267b45d7fd42cb792de40217221c6e0fee7db3b62ec3592ad0744f0f1a7bff52864e8762d58e216a"; - sha512.doc = "13042cd81cae222dab8ca8966702a28938f7f4b4a734905d64dba2bd819e610108078f0f81b3999b28a63dcb015bcb7941b177be9cab243fc9d01b6808ddf587"; - license = [ "lppl13c" ]; - version = "2024.1.1"; -}; -installfont = { - revision = 31205; - shortdesc = "A bash script for installing a LaTeX font family"; - sha512.run = "cd5133b93c5daabaa0ea13649f3d34c28f9af9f92db54917e64cafca5f5e7fe5169d87e36783036850ccde0002d34860eceaea528ad06e21f08141106e6599ae"; - sha512.doc = "2b61c4b229e0c4ec89c591075e52bcf8c150f5f9584bff94f81ec1f229940dafef11d6b6f84dd086692cbd99e6616685533d4313ef5bc48c56a7494fef3583b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -installfont.binfiles = [ - "installfont-tl" -]; -intcalc = { - revision = 53168; - shortdesc = "Expandable arithmetic operations with integers"; - stripPrefix = 0; - sha512.run = "e1087a7ab3f1d695bc20435ef0bb2b806d1cca71eb792fcf46e6c2fc6d819de2ff623a65593b65d5bf228309e3e3d5210ae1fb1452356f97a5ecb45921a7ce0f"; - sha512.doc = "f3cc5dba031957d77cdf39d902eeda96c8405efef52352109a7bfb187e363321d31120b4c66ed4b2e990fbd7085b927599a0956749e4303611cdbec5d9d7179e"; - sha512.source = "c3fc56d3ece265756a6c19684e7c2f9717df7f65176a640bcf6fede941468c8a426abb610ebf9955de920adaf2c96165f91f7314f48701121dfc4381f921d42b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -inter = { - revision = 68966; - shortdesc = "The inter font face with support for LaTeX, XeLaTeX, and LuaLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Inter.map" - ]; - sha512.run = "3e2799fdcbb3648912d99ae0fee49b3e34098204e742ffd8bac5fda212f3e452606124e5503f99a52f7f647b54c31858256e7e1dcee4a566f3ca8e9d5aab5eb8"; - sha512.doc = "64260a91b781bc0ca36a73e1b44ffc34847b26b977a950cefa27649d7382e9cb9d34f70f982831912489d86e343d4abfc81ae0d91302d3276aaa5c8567c3ba42"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -interactiveworkbook = { - revision = 15878; - shortdesc = "LaTeX-based interactive PDF on the Web"; - stripPrefix = 0; - sha512.run = "2afca3ee8051065d4014cae8ee751f085abe6e62ea0af7d6c036bfd9ae6c3f38a295857d67c7e8f75a049fd618c82ad8b28a66f5c83a387969549cbf20ef159b"; - sha512.doc = "cdc12a36f547787fd1e6aaa5f9dc38b99092f4fd7e71095c1b5ca25730b4d2a5a5fc1636798978741538624091721c96220d91b8f1cc29d7f4698767ce0269f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -interchar = { - revision = 36312; - shortdesc = "Managing character class schemes in XeTeX"; - stripPrefix = 0; - sha512.run = "8beb2e016e1a6af0199708355b8f13aa1accc614135cdf1d6dd534eceb6fd5a8d9e611e4d6fe0d72da9effdef446549b01d5ea2aad043f3fe94b81fd3d4aa188"; - sha512.doc = "c36dfea3f3f62660cae4f4653136269247bd109931b2eb6478eba29af089d42b6ea9f8afaf0c345c9364a68c1645e288d289345e13c8582e1639edaea20a26be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -interfaces = { - revision = 21474; - shortdesc = "Set parameters for other packages, conveniently"; - stripPrefix = 0; - sha512.run = "3c726602547ae05d0ca055d92b98a3cd5fce9709329fe9e769e5bb02c401a28b9b4cee53e5b1ee21dbb6c1c4223cf7a098aea227d615a45ced885c7c4ccab93e"; - sha512.doc = "a9b44711b1f38c48886f7b4a49b3a58ec5514995c9bed9a067d41cbf35dcc0093fcade7ef28693970f1f017924dc2f6f79d8c89a1efc847f7a8c264cb8f98ea9"; - sha512.source = "a93e77e7d12c91515e2d67f926ff6bfb76a278eae5880c60d2575580517d31f82d45656061f2999d5c4e73279a09dc5c5437351f10419b6ea92424d555e7e3a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -interpreter = { - revision = 27232; - shortdesc = "Translate input files on the fly"; - stripPrefix = 0; - sha512.run = "6dbbf39f9f0f357f45ae275458f03abfee625720b5f2dd3bbb5a78f60f4c0e8972d153c8d1647f147403f7c665e25147fd0c576cccb226a74630348a9f0a7381"; - sha512.doc = "3408bcb3cd3e6da67294c830870534d3cd620b7abc3ad35d4833e30c831bf93d11dc06d00547888268870c75f6a6e2e861448a0fa197e3e5a3c10aaccc6e4dd8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -interval = { - revision = 50265; - shortdesc = "Format mathematical intervals, ensuring proper spacing"; - stripPrefix = 0; - sha512.run = "2a2fe0ebdc4754ca74962270ec48c69e6574c13e446628f34604b13584e7b14ff33add55744f03a1d28443b5ae87ba79926816bf44781951a729913ceeb4d6c9"; - sha512.doc = "22dcf2288d7f888e76967209ef1fd31bef66dcb9784a45126a945c4a0ea302c67ab4a35bd864355b29679131cf2cf36fc6172017599ccf3025c4ae1537362b9b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -intopdf = { - revision = 63987; - shortdesc = "Embed non-PDF files into PDF with hyperlink"; - stripPrefix = 0; - sha512.run = "77477057b8c49400059eb2ec0ed1ec6ab8c5b80ad661871c5b179af60abd0a5904ccd1faf045951d83e29aec560a77188c8468cb9f854ed28676ce52c3bbbd83"; - sha512.doc = "07abc35842c8170da6763d070180f63505ce5fcc98ec9966b3e0b7502191ad267b4b6b0a9bbc6fe1fe037b0eb6e249c9ba9080669abeaaadfaa6be26ea86e5f7"; - sha512.source = "ab22656c6f47d03fd416e7340438a1c57e9ec1bcf360ec3224aa7c37859b1210807c3ba7b94d9fcf7e4a6878c9874332d3bd030cb7e1baf3f05f10077169d75b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.1"; -}; -intro-scientific = { - revision = 15878; - shortdesc = "Introducing scientific/mathematical documents using LaTeX"; - stripPrefix = 0; - sha512.run = "9919021461485fc22ed6ecc0b30d0a23c0a2217c76a07dd8acd87c9091c9d71be0e370ce1373f90e6f5a36a9638ce4312fc674b16ccd0846aab97d1b05674391"; - sha512.doc = "0daf84bdf7821aeb2f7971ed15de5546a13a444f3dc1b757f31490679350199fc893111109fc564aae2c8786fefc9e198e79e817bb318a1ad62698b6a5c79af5"; - license = [ "lppl13c" ]; - version = "5th_edition"; -}; -inversepath = { - revision = 15878; - shortdesc = "Calculate inverse file paths"; - stripPrefix = 0; - sha512.run = "d0d95399067922172799d17cc9b9b4fa7a79cf2928630c63441114c479bc60e72b3e5133b54f8f7925cbf90f5b419c89e07699ecf8e8269b43f969e584698043"; - sha512.doc = "a9dba77a8aa851a5e915e368c5090fc83fd894c22efedffce97ee0915b4ec50fa72efc30f377891b5efc0749c12018228ce400cd4024369cfb81ff3fe62567b8"; - sha512.source = "de5bfe7ac5967f4ab02dd0931c5799c6c68c5c7a57d8b6c40a205e76546d8a23a6ac6be292c6a1cd4c8475bbf0eb229b6d198eabc66a17b2ea4b0ffd0c798323"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -invoice = { - revision = 48359; - shortdesc = "Generate invoices"; - stripPrefix = 0; - sha512.run = "7ddb8e05d88321f45cfe8618c740671e17e79ddf53fc2c11a3b9224a27ba1ebc815635484f3dfb4c849d90efb859412028df1e7f91a4e746cf812b19e5d1a269"; - sha512.doc = "7b827f575eca669f15767be9fd215e827a3e98b03ea3e1f353039f5190fa7d75a5e59dd5d89ada982518101fc5164449843656c60a65679dd82061dbfcb95ea2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -invoice-class = { - revision = 49749; - shortdesc = "Produces a standard US invoice from a CSV file"; - stripPrefix = 0; - sha512.run = "d31a445c1696741dbbdeb4f035358cdabc9a4ff74855c432dd2b6d66b0d690e65e400207bafdb643a1ae7bee3b3472393043088521a685251acaf9abadb08769"; - sha512.doc = "a3ab71dd11f6aedcb7ce8a89f8b97f8a18ac4c610e3460fd13c1d31b8db0d347d25ff6520af7bd4d37453759d03db384df9e69b281307a36a1d05b4beed0a60f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -invoice2 = { - revision = 67327; - shortdesc = "Intelligent invoices with LaTeX3"; - stripPrefix = 0; - deps = [ - "booktabs" - "l3kernel" - "l3packages" - "siunitx" - "tools" - "translations" - "xcolor" - ]; - sha512.run = "7ef03f3c3a5c23774c0f3a495f949d5761f28a5d6316be7bc2a7b4039612fbab3f4aca9d29b6881a04948b9be2f0e6f7199d4ab8a41362e2d848f2ae8a090c30"; - sha512.doc = "9621a018752d18d9a5dd069e48a3baf3fa2f11c378304573a5bd9b9bc37ddd79366732f0b47f3acc878cdb68e04374db8371a1f7efec6ec6fca251a6c2b95025"; - sha512.source = "eb17a9ad06f67433b749e798783676212ca16dd78ab9a2029335c923235110e9c8bd8fb0654fc47417c60cd263d868789d8f86fb075cadcbd19fcd6142872121"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; -}; -iodhbwm = { - revision = 57773; - shortdesc = "Unofficial template of the DHBW Mannheim"; - stripPrefix = 0; - sha512.run = "a0a6807c8715dfa5f4ded44f66509ecd6af804d5dbfa44adb4fec3454f39be633fe17b79458106be0a6c35086dd1d3e33aec19ec657a6cb6b3903695b5019cac"; - sha512.doc = "ed3c906cdbb26c095f5078dbe961781ab1a31f8c1a7b926b0a8082b7bb41b71a8912774829135651937bdcc5f2e53880300cf9b21b6ce35430fc443d30423244"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -ionumbers = { - revision = 33457; - shortdesc = "Restyle numbers in maths mode"; - stripPrefix = 0; - sha512.run = "f964955ea6470a8906dd7623bd6959aad72ab4da5cbd4c32aa78cb2350cda05a1f577316ef97cdec9658deda027429462b70bcdad18024f255191b2f6cd7f99a"; - sha512.doc = "5bf57ed5617846d10834f880e4a1c029547f1ac678a52be3e79613803b4e6cd0986887f2a44a0a4bfabaf9134ef39c44e420a12047fee81fd34243ec42c5262e"; - sha512.source = "f7d0f56de1a00761104fa7e9aa13f1ca4b9ef97051ef2dd6d28dba3066998d53aeae015d956dec0d3c771d85f6553c5835e4a9bd9d83dd4feb65591d6c613fb4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.3.3"; -}; -iopart-num = { - revision = 15878; - shortdesc = "Numeric citation style for IOP journals"; - stripPrefix = 0; - sha512.run = "49fadfe2a8a1796131be814b170e270e7d39c035419d7e546e57d2ef1fea13d48b2b022eda463829e1bdbe60233d361773321d86070420ad2b63b48154adf18d"; - sha512.doc = "167b0612883558f74d7696a6c9481fbb75e9ef6e7760edc4f79d81b3e1d7a344dc1efbf638eb4f5ba69be7002391211024f7aafed2e08e19fe559b58b0f7b1b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -ipaex = { - revision = 61719; - shortdesc = "IPA (Japanese) fonts"; - stripPrefix = 0; - sha512.run = "dec0527223fdb0f897ccf54e96691cd68b933ac61de4c036e21fd35bff93d32766444fe6971492ce64328f92621bd2949ebb669ab33b6b6f4ede88280351292d"; - sha512.doc = "c53cf11bc81d9a8f5aa19c264a1970d4819400ceaffa20b688d0709546113f932b82b6b6d12cf9fb31b2a3d2c0d45b6b33ee3cb3bd0060c961360389839b1475"; - hasRunfiles = true; - license = [ "free" ]; -}; -ipaex-type1 = { - revision = 47700; - shortdesc = "IPAex fonts converted to Type-1 format Unicode subfonts"; - stripPrefix = 0; - fontMaps = [ - "Map ipaex-type1.map" - ]; - sha512.run = "0dd513aa3cbb9dba7e1099f7f08d839e80002fc5f5bcfc2a2a013dc799a0a6389f128fe72ebc32b673afd66f3ebbc7fab9b97c31763f94b7ad64eebc83b2f569"; - sha512.doc = "1c2974ec35c0291207ddf560b6cef4cb5b161fb59e80a6508b4f88aab5ecf93c6a3dda2a3107a40e838235f5af22ce23704bf4f13fc4a0b344f0805c29655605"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.5"; -}; -ipsum = { - revision = 68861; - shortdesc = "Insert multilingual placeholder text"; - stripPrefix = 0; - sha512.run = "72ba4708735350c0b1c6521d3ba09ca0477b203328c1452033755da7eca159b82e50ca0950f2eaba7cac41c1f27cfb28951716887e2736d9e69f29f91acd29cc"; - sha512.doc = "b53fd7756b3ac604583d95f6cf9b90d322ebee9e6a1f085607de710a2bfe3257d29394cc816f1817b0cb499a550202a0dd1578c9e7e04152e8aa132fea05bd3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.2"; -}; -iran-bibtex = { - revision = 69347; - shortdesc = "Iran Manual of Style Citation Guide for BibTeX"; - stripPrefix = 0; - sha512.run = "0dd643474cdec8c5d15ce28dcad815978d9e3a76d0327cffeff021ff6811ba2313e44a5f21a4ed23a1bbf09433c479e551ad0a49c0d074d38a777df66daefa9a"; - sha512.doc = "51f903f7ee725dc2ffe58d594e64bebe5639e5efcabcde15206ec5e9583f8d4771fd2b457f8a79b2fe691fcf77d03854d1f5cb291d0b33fb7f2d5272a17a18bd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.0"; -}; -is-bst = { - revision = 52623; - shortdesc = "Extended versions of standard BibTeX styles"; - stripPrefix = 0; - sha512.run = "491b40704ad4c36e7ffac12bd5b823a4d796a9d52b82176cbd9654b6fe07d3a8a0c63f9756070bd4a971a33836e179ce6c7609e5de2eebddfac9c6aaecb92b43"; - sha512.doc = "bbd5aa6261779b7d395a89c04421c680b6906f795ec713b9c72bbdc282fbf459c443a08ccc7c395ac5274ef5aa1b3f56cd773e50faa7ced4ab4629f1b91e73e9"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.03"; -}; -iscram = { - revision = 45801; - shortdesc = "A LaTeX class to publish article to ISCRAM conferences"; - stripPrefix = 0; - sha512.run = "6111c93a14c28572c17a1336fdf00ddd16b6c04b34b4a10a1b4a5e46742852b949cc99438397895de36632c9f2fd57c4940a0ffa458ac148b4a5e49707e5ca79"; - sha512.doc = "24f5ebac7b8bfa826cb9ebaaeac0ec82db18807c5c3417dac53c6b636f6cb32b60901ef51f0d545cbe185ef0eef034404d3120c1211bf65c4ed4d155c67e19d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -iso = { - revision = 15878; - shortdesc = "Generic ISO standards typesetting macros"; - stripPrefix = 0; - sha512.run = "1ee4026383b28594c02ee7a3fde24228ac777814456fd8580954b1708ba3f735b563beaa291cea859c6492f8b9cc488635b67e373fc3afbd8f884a3b6d30a392"; - sha512.doc = "f5c874d3e00fb451f81a52f5711ac0b1c39ce48eca50a6edc0b1049bf4aeec43830fb534e207d852bb440c96bcb86d960d5e2e0670610d7cb9eabad2ff1451a3"; - sha512.source = "c40bd267337a62dc7dbf437087e36e569b83da7806f801017ad3aa8b3059409cfc51c32d83e9991b7fa0c9b2e7eb5aed22f841670196fa9f7080e5398a098d74"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -iso10303 = { - revision = 15878; - shortdesc = "Typesetting the STEP standards"; - stripPrefix = 0; - sha512.run = "40a36335c15b453d2e5b5abc29b2ec1891c6f1502ee2f8ffdebd2f9a159cea3aa28eba7c661c12a0445a4f713b77079d8b965ac955123fc81225cfd4491e5317"; - sha512.doc = "24c2a83508282a348d6748bbf722962f3ffcd193cd1cfafc4ca1e87c60622e463e5fd382ff65235590f2a9d629e8f40588630810036d2195172f61d1448e3dfa"; - sha512.source = "27cb8dd236ad5f249595d963282054eb40de35d135cbd6ad6a106941955e0abf8777602fc341233d22feb1073980341d31b6e939a69097d3776d7e20096fdc18"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -isodate = { - revision = 16613; - shortdesc = "Tune the output format of dates according to language"; - stripPrefix = 0; - sha512.run = "5fa145cde64155e9a4ca7236cf41449169ce0d1aa88381b46935641ed94d166429c1b139c852f96526dda270fb85736ca54e8864c32452996109b0061003639d"; - sha512.doc = "75118f62de8568c9826dcc11b753511f57b7fd237cac6aab1c75377121fad2179c81ae5ec5f64ec127a299beb88abc209727d17b1ded623718c7594bb7ca5da0"; - sha512.source = "43bfcc11aefd2c68ec96cf05f7609cab4009f960b5220bc15d982ad384e062bc42a791f269d5480bb1582ceda68f8c7d36e1308129aaa3df41d25d35cbbb96d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.28"; -}; -isodoc = { - revision = 59709; - shortdesc = "A LaTeX class for typesetting letters and invoices"; - stripPrefix = 0; - sha512.run = "5bdd4158aa30923d2f06513dd2f1a729077eef05f8f6e068c1e376f931558b9ad786eea871396ca3d16778692f010bc39f25da3993c74776bd746ed5355fc0e4"; - sha512.doc = "ebf8ac1221592472837590973700603e0cef6b459dae92cc28ba751f5c3c0c49a686b4224c83502b09cec26ba306e44fc00f19b0f9e9c83b26f582a9923f76dd"; - sha512.source = "9240f497398b77b6633f5be4040d13053abe51d64189e6678beccc1110f9e97b24422105bb3a552ade1f33c1af3ca2f8941b5c86548fbf7885a799fa69345b90"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.14"; -}; -isomath = { - revision = 27654; - shortdesc = "Mathematics style for science and technology"; - stripPrefix = 0; - sha512.run = "c9ed49ca5df0932ab59de0988de688fa119682810c3163ec530a8cd80f439eab858bca4dfad85567dbc2de08d226117b4df5249ff29f247c208ae2b1739165f2"; - sha512.doc = "55d94c6b4cf4c2ebc0eae4998f8ed6a1f450efa70e1644549e169cabcc782f1acb879c99bec5237e3147886c696c36f675e9f3c452da9f9880570dabf7adc5ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6.1"; -}; -isonums = { - revision = 17362; - shortdesc = "Display numbers in maths mode according to ISO 31-0"; - stripPrefix = 0; - sha512.run = "d82a96c2208dfd59f091b8316d8b496115ee56d51e5418344f128418c3b202f0ee20bea505c05f5e81f76006e2efcef48b2d3592bb5c550e219b5c8e4a6e5f4e"; - sha512.doc = "5ecd4587ad6d782182986592bb7f76fd62ccd2e9245921b48ae28e9e381f4084e0d5930b32815ebd074be4190fcfd6beec8be890014edd76e9a5b4958f71d6f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -isopt = { - revision = 45509; - shortdesc = "Writing a TeX length with a space between number and unit"; - stripPrefix = 0; - sha512.run = "2e313aa3afe2e1457a794834c1c5eddec66ac2d17fb614e15e6781a23ca0834a3fc2d68632b07e55618c6d8dc28de5bb8bf435e34f61a419cb27fa53042d4a7c"; - sha512.doc = "94498c64a4acbb2b41a7e4869b628c683a975f1ba28a8b721b9c44843574610a47a39883f5333b405bb8c02d49f50c3d9ee4f344c27b5e5c0d22c181db46bac7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -isorot = { - revision = 15878; - shortdesc = "Rotation of document elements"; - stripPrefix = 0; - sha512.run = "788b712fc11f3e4dccd58a75a950752d0492dbc30f0475dedeb26b86e500d0d23c4babf0dfc2361fe16e74d7b37d8f5605b4d4faf1e7018642a5e9dd1be73be3"; - sha512.doc = "4aed42e6fe61aecba99783a1173d903daec621e7d5e0867f6f73319804bfa7727a2a2dac204d792b76a98f8e291bc563bff364360b19ccede2b79600a59260d0"; - sha512.source = "99767e98f2eca92d4f0d8e32024805bea9646f10eda7cdc7fa5b325de04d6e70648c1e1421172e2358d7a6ef7eeca718db3e31e7f272160ddba2f24e4c516888"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -isosafety = { - revision = 68801; - shortdesc = "Provides ISO signs and colors according to the standards 7010 and 3864"; - stripPrefix = 0; - sha512.run = "4f3997e5ab414bea29e986e1edd7b1436f82bd22b32e4047814d48058a57aa7ba042c88808784ddf5dff3926a1ec366f374e5e275df8e16e8d8a9b9c07982ac1"; - sha512.doc = "905fcdc25540ca0db66cc8fd6057bb71ded0016180b4efbcb5855e9ece8213d2091f387201ab44a2827fc4bb897f8cd9209b570b9bc23ab5c4b4293f5848c1d5"; - sha512.source = "38427c445a9a816c674a01e3ce85b1a30b6ccf06f7097e82bceaddf72e7d178bac1873e57061d76c37cd3b73abd783b1d35b16648f43485b3d80cb7ce5158278"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -isotope = { - revision = 23711; - shortdesc = "A package for typesetting isotopes"; - stripPrefix = 0; - sha512.run = "27c03c4c6519c038185ee485e94ac51d90c21fd095e4a4cb6d91b06f98e7adb7a423a53b1df035514f58cd0556ab0ecb1afd55c05008e558812d95de2159c8ba"; - sha512.doc = "e1a6e798f894f9455e5d2144a935ee2960199e65db0499c4a900f888065eacfce72269f6808e01e98be3ea3440144eb4004c53af26d80d6ddda1be5df5492b1f"; - sha512.source = "555ad9d5db22d4efe1373bf971f441391371c91538b73f3140996d3a2dda85fc3003f6d685c3e54c06be216e5b54493d07f165c0a7adeb00845e79bbd9958c5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -isphysicalmath = { - revision = 69343; - shortdesc = "Simple way to write nice formulas"; - stripPrefix = 0; - sha512.run = "5329b97930fbe9cc13c275132a32cfe4293bc23b2c1911089aaaa80baeb0437606c73503b4430574e88da61615d0649fea6f5666a5609a79ac5ca37cc90294a5"; - sha512.doc = "f044b6cbdcb63a5e66b6dfd396393a99d605a219ede55317c759c28c3890a7c79ff6c0feb1de8f6517350d15a6422dc54426b7b5169ea1865024e5a335fe5517"; - sha512.source = "d68bb0b9753303e844476ec27156dc22ba7f3c4456a26870edb080709efb88a2485f2b41bd3c15a89d7d665f22acbd206c951d0f817742d352f6997621188734"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -issuulinks = { - revision = 25742; - shortdesc = "Produce external links instead of internal ones"; - stripPrefix = 0; - sha512.run = "2ac24eb0e19b92e29fa898fcb8cca7e2f64cf87fac408aa0c834f6afc0ef262560a512637b30dcbee2ec06e9f0fc32f344258bab983b1b1d6fd4da85c821c056"; - sha512.doc = "2605ffe2f42560b04fe781efe3c1972ad76f6cbddc7ef68bdb0ece9b0573b8cec785c2bf4befdf339935730a728bf19b83f3597119d3f9705f571350e963801d"; - sha512.source = "c66f332f9dea7a03a0ecc7844d99375fbb91ca262aa50faac13b9b396db0991411b33616aec6c1af22e915e3643e7340e0083635fb40b6e693a4e487e1e45fed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -istgame = { - revision = 62946; - shortdesc = "Draw Game Trees with TikZ"; - stripPrefix = 0; - sha512.run = "40ea41a683ecff33942fb3287f57489079be48eb5e7512b04f5b7038da34bf9daeb523b9d15325444f27493119d2258302838b4a44becc7dad205504064cb5da"; - sha512.doc = "275d45c62d3e140b5a292e0499c555716a43ed4cd06c69c59edc49b0e832371d39b320de954452226dcdabce7a140a622f3d3d1e8acb69fdd4aa0c62b39fe0f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -itnumpar = { - revision = 15878; - shortdesc = "Spell numbers in words (Italian)"; - stripPrefix = 0; - sha512.run = "73770854d45bf404e874aeda0d0bc95dac7ba266cb012fe4af7c4e7686c078b1314500ddaa767b1652e9b05b02691c93cd24b34d6b145fc30c0a3f56693f6a17"; - sha512.doc = "b7c81a74d816508121f0449580e4599092bcf3d176cbf9f754fe9e662d83a5c8b66e52e43b2621338a13b09c44babac6a575f1e8894863402c028dc3ed792486"; - sha512.source = "72ad2e68d946f5a862e97c3cd3f20f94c23a2a85fa5183a6da9b1f03be60067a482b2f22e7560c5c731df18f910f643f0c991a2b0c09925cc270287290654c86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -iwona = { - revision = 19611; - shortdesc = "A two-element sans-serif font"; - stripPrefix = 0; - fontMaps = [ - "Map iwona.map" - ]; - sha512.run = "2a125919a015c82e00bff575407f02a6c9a176f83a6017df682b98af55473e7e36ca0a94ff27091a3a4279d42fea9c49f0d8ae6da7e852ae9c44389dd5d8f7fe"; - sha512.doc = "87128ca46f7f2f13f8f886fc1c3da11f17636637632c0d39ebae07dfe70ec92024e1136da7a736a3fc8d494e856b86407ef9c01cd54a56fc2e41372bc0f1c4fe"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "0.995b"; -}; -iwonamath = { - revision = 68144; - shortdesc = "LaTeX support for scaled Iwona math fonts"; - stripPrefix = 0; - sha512.run = "e0b87b6815ffbec37a52e0ecd1d31daacd46c222abb71566ab3476cbc2ec28128f5977367715bf1eac439f978d750b6ce7e7bee589de7a1f18bf70ab8ce166ab"; - sha512.doc = "81fb0f9b7b738994a4af09a8dda8b580f4d59a92f790f8b285c2b1a252e672786296472847a6d4d8ce804a757248dec04e02894d1550cf0791863d25d22f35d5"; - sha512.source = "b7aa315eb74b6fdbfdd75dc176ede1841406efb9bf5ba584fe090123f3e93b1f7db9719a321833d2486b0e5e7a0a214a4b91a8c1afb2443e126ebcf96bea5b70"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -jablantile = { - revision = 16364; - shortdesc = "Metafont version of tiles in the style of Slavik Jablan"; - stripPrefix = 0; - sha512.run = "40fb96443b2194adf8477a68d9d435101dfa42471d02ec48a37968d21e12802ff1feffa830484642b457562392b6ea147d394734acdffd735a8a5db421d0eefd"; - sha512.doc = "00e753a85f3521ac0c6f336e0e563bd0a68a5e2ae756dfce72d3cf59a01eb9654b6f5c9ad9b83047d3d4f7743b7cce6f2d0d734510532db13942ef6619ae813f"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -jacow = { - revision = 63060; - shortdesc = "A class for submissions to the proceedings of conferences on JACoW.org"; - stripPrefix = 0; - sha512.run = "7482562b56521fbb70325ad3b633ebfc82165d65149dd85b89697ff9b5941f580f43e42da9775c659fa4fceb8a2908a200258dc31162b013ad8a207b88a5152f"; - sha512.doc = "b53a0cdf5c3fe1eedeacbb438fbb453f844eff9c669946963e18c0c787aac744307d51804327dfbfebba1f88332dc01c40c43d3a4a50b5d2c9c8a0bf67840dd9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -jadetex = { - revision = 69742; - shortdesc = "Macros supporting Jade DSSSL output"; - deps = [ - "amsfonts" - "atbegshi" - "atveryend" - "auxhook" - "babel" - "bigintcalc" - "bitset" - "cm" - "colortbl" - "cyrillic" - "dehyph" - "ec" - "etoolbox" - "everyshi" - "fancyhdr" - "firstaid" - "gettitlestring" - "graphics" - "graphics-cfg" - "graphics-def" - "hycolor" - "hyperref" - "hyph-utf8" - "hyphen-base" - "iftex" - "infwarerr" - "intcalc" - "kvdefinekeys" - "kvoptions" - "kvsetkeys" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "latexconfig" - "letltxmacro" - "ltxcmds" - "marvosym" - "passivetex" - "pdfescape" - "pdftex" - "pdftexcmds" - "psnfss" - "refcount" - "rerunfilecheck" - "stmaryrd" - "symbol" - "tex" - "tex-ini-files" - "tipa" - "tools" - "ulem" - "unicode-data" - "uniquecounter" - "url" - "wasysym" - "zapfding" - ]; - formats = [ - { - name = "jadetex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "*jadetex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ]; - } - { - name = "pdfjadetex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "*pdfjadetex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "amsfonts" "auxhook" "bigintcalc" "bitset" "colortbl" "cyrillic" "dehyph" "ec" "etoolbox" "fancyhdr" "gettitlestring" "graphics" "graphics-cfg" "graphics-def" "hycolor" "hyperref" "hyph-utf8" "iftex" "infwarerr" "intcalc" "kvdefinekeys" "kvoptions" "kvsetkeys" "latex" "latexconfig" "letltxmacro" "ltxcmds" "marvosym" "passivetex" "pdfescape" "pdftexcmds" "psnfss" "refcount" "rerunfilecheck" "stmaryrd" "symbol" "tipa" "tools" "ulem" "uniquecounter" "url" "wasysym" "zapfding" ]; - } - ]; - sha512.run = "7406670d136a018d8cc7a7e39d4ce6a2b4b58e48c8947eb257a2d014cf69e923fe770f8fd8b38c726b66f6924d36adbaadf59dd9b6f1638a598dcb812a84f926"; - sha512.doc = "16e2a21e6e724d194f4af66dd67e66fa294332f05222384ba63d5ec76a52d0da12e6381b60735111078cbab8129bb7f7f039487a7a0fda61466e2409f4ce3428"; - hasManpages = true; - sha512.source = "7e28b294c84333b5c8b4ab769fd0907b6ee3b05e8cc6f729c8925029c9a9d03f5b81b000abd26a5b6d7158ed7465efc2f403a7c5a28786f2a23592e0deeea6cf"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.13"; -}; -jadetex.binfiles = [ - "jadetex" - "pdfjadetex" -]; -jamtimes = { - revision = 20408; - shortdesc = "Expanded Times Roman fonts"; - stripPrefix = 0; - sha512.run = "72e2dc3995f173f75aa4714c397bb036c140bace3b17ddbf321afad677ad397c2be804c890df472f89e15300d4645d02d8ce3746c33fa37be85a9d9312ece3a7"; - sha512.doc = "bc14db250b9d34e700c0fed6390948b39022f7ba39cc0e083c6a1355517fd10aaf7065f6ca90f40a50aa0cd6557a35cdfb1534aabff12ec6c462a2fc87ec699a"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.12"; -}; -japanese-mathformulas = { - revision = 64678; - shortdesc = "Compiling basic math formulas in Japanese using LuaLaTeX"; - stripPrefix = 0; - sha512.run = "35245333f0ad08ba0772aff54e5ed1b252ad1b1d298c55934ade4a0e33dec29fc67adfebcce22f10b61b9469a2a2d208c4b9977519271457f1538c4bba8bce24"; - sha512.doc = "cfa07138896028186773970685309030f587fc39f95b2fb0d993e2827a124ae4172acc91f9276ae65b32fdc614cd9525d557505b2f1fc11750a982a5c9cebb42"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -japanese-otf = { - revision = 68492; - shortdesc = "Advanced font selection for platex and its friends"; - stripPrefix = 0; - fontMaps = [ - "KanjiMap otf-@jaEmbed@.map" - "KanjiMap otf-ko-@koEmbed@.map" - "KanjiMap otf-sc-@scEmbed@.map" - "KanjiMap otf-tc-@tcEmbed@.map" - "KanjiMap otf-up-@jaEmbed@.map" - ]; - sha512.run = "30821d9e8a8de886fcd6ac64801771ee7ff48c7523e38946a8127579bf53d7ed730867d78573dfdcdc88017743929064eed1d4a5b474328ee2cfa7f889905026"; - sha512.doc = "80fec029e80a451eb9f53efc6e69935f9ee42063784a5f92784a595dab76532837062da90f3c3ccf8fea4e14b3cfcd339ba4e5fc539257c11e7726cb70ad2cc0"; - sha512.source = "c5ee59b3741e19c96f151483ab5444f3fc41dd498ef8a8a34f87dd087439d29b614fe3d9597d1a29e65bcafa47b570bbe119fbe6d705436fbf1dcbf9a6b76576"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -jbact = { - revision = 52717; - shortdesc = "BibTeX style for biology journals"; - stripPrefix = 0; - sha512.run = "0f1cd72dca41b37c26d863aa734737ad128f5c39c508db13a3e91e4088477a99d9978aa1ed003ba0812e276bb4d80e527c80915cd7a08fd1cbe968816359814e"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.30"; -}; -jeuxcartes = { - revision = 68266; - shortdesc = "Macros to insert playing cards"; - stripPrefix = 0; - sha512.run = "ad90719dd34791c88a5300d33ad7d633e650b3de6d61f493cf9069c39429f57ffbbde7aca1d2356a9cf6486701511fb7805049ed6a53ccbf49daa7a3dc5ab4e3"; - sha512.doc = "9c918a0cb97ac3b82a88fd104a2e084404b83b2c04acac44e5f566774a3c01d8c91b0a73b49325ab6d7d366c5849e69a60c28a9686049c009bc249cc9b04c7a0"; - hasRunfiles = true; - license = [ "lppl13c" "lgpl21" "publicDomain" "cc-by-sa-40" "publicDomain" "mit" ]; - version = "0.2.8"; -}; -jfmutil = { - revision = 60987; - shortdesc = "Utility to process pTeX-extended TFM and VF"; - sha512.run = "11f0ee88997b197ccb4cf249a92f90ecd08227b0086861b59752c2e17fafb1e1fec7a1cfc701d5df91497d4cb9e61d13f892d776ded07c34d7dab09a2a65eed4"; - sha512.doc = "045b74024de9798fd7c74442404dba0610a94f66b60455d84fc33bfe56e8612b014fbd83cfa3edfb0c3a8acb31c0dece69ebefb58294b2d271dc1dc2e95d094f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3.3"; -}; -jfmutil.binfiles = [ - "jfmutil" -]; -jieeetran = { - revision = 65642; - shortdesc = "UnofficiaL BibTeX style for citing Japanese articles in IEEE format"; - stripPrefix = 0; - sha512.run = "79433835a06c0fe268d90ad11bfe6a9956e49284cb2ea2255c4577883f2087c0c6b823121a563cb76f666ce74265a056f0e0b470dd2542a104894adb0242d083"; - sha512.doc = "ccdbc9aafd94956f43c7f78c93b02f067defb038ba6b9c649e38d1e0c02647c853ad391a1c2b10b60e14255b38c5d77aae9ddd260c8297e06084236c27d70073"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.19"; -}; -jigsaw = { - revision = 66009; - shortdesc = "Draw jigsaw pieces with TikZ"; - stripPrefix = 0; - sha512.run = "3ad1aab51b4fbd99efc6bbfabf716cfd27e4af71674b094053f4866e38ab4c6c3f8d1884bfc4e4f7cf0fef11abfc488cafdb696238c5af1440255151b1b2ca77"; - sha512.doc = "92d04e7497c19471f8aaa5344a1cc3824e18691daffab637a1822f900468269367244c984e4420efc94014cfc849ebfa4fd0db6e5b37cb1e89aa5493bdbbdb87"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -jkmath = { - revision = 47109; - shortdesc = "Macros for mathematics that make the code more readable"; - stripPrefix = 0; - sha512.run = "8e549db42b25c2edac71013afba0ebe3e09859ce4ef104da2b969663014cb88c10bf1c8899ee181070e6cec1b28d0ec9e5966d27f2176e2032d6855ded8ea941"; - sha512.doc = "99a954f6eb917333a8e6c4e3437fcd16f6950e0473fc1a48c99d748246c97d5a3df5b96e0314a9ec5e7c6bb0b318b934c40070ec94df00546e49cf140aef23c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -jknapltx = { - revision = 19440; - shortdesc = "Miscellaneous packages by Joerg Knappen"; - stripPrefix = 0; - sha512.run = "0369405034393ea8de2cd94497a97ba6c40264ec9142eefee09647fd4e51f83e169a99757a4b92c1c9d911637f137404fa54231de452bcd208ba3f9982984153"; - sha512.doc = "cadb522c007963278990e75a011e22d2c6bd8429e55fe5ecba3c2f20b9ae13fda4eac304bc405440c1c1566b1458e0f3e77a6d4adc77117b20673204bf502131"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -jlabels = { - revision = 24858; - shortdesc = "Make letter-sized pages of labels"; - stripPrefix = 0; - sha512.run = "5077471a09df4090e087a465e9d1823668ab80f088a7d5fea7d14559e9ea8906dae029a2093038ce5e9f013bbe3a9bcd74d8626e6ccbcaf7ebedd5c2f1e3521e"; - sha512.doc = "7736480f6736d8b623fac61683321eb7444ca8672eadf0da200eeca928de9dc031152e4599783d602e9c11b58463b03fc1162756edbaa5bd3dc1f6c5b64e08a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -jlreq = { - revision = 69932; - shortdesc = "Japanese document class based on requirements for Japanese text layout"; - stripPrefix = 0; - sha512.run = "a6ed1fc8706d9aa3bb759bfbf85f451db0f5f941b46c607217a0d1af653e617e56c50d4b82e0f376d212dfff5e4fc46f922e5397940931cdf2acc191f7c34ce6"; - sha512.doc = "01b804ec9c3447f50666e5bea40a3142c29b66aca69f69b2ea5cc7f4696b569744e55b148da26f6dd9698ad4cf580a738196c5b09fe0a0b831105251ebcf1855"; - sha512.source = "e6f452eaebc5b9a3b7a257dc1754f6aac822a92acac243b3301475f38828787972f8c15a34d92117c3036fd38f6a3c0b8895979234a52f3a65f518b129a601f0"; - hasRunfiles = true; - license = [ "bsd2" ]; -}; -jlreq-deluxe = { - revision = 69971; - shortdesc = "Multi-weight Japanese font support for the jlreq class"; - stripPrefix = 0; - sha512.run = "bf50a2ffb569202f6bf182637482005543ec24ac214287c3dcab234b6613430f4cb0e8d7a987bbd674e1c3442d57f03bee2df5cd1384eb29298b9f304a07099e"; - sha512.doc = "8a8dc59a0db9128c3d4db9a207beae6fca412ff9da59b7dfa32741f3cb770ecfe2d5ac1dd02521a938d82c5c15735f8e42ac56906ad59a097a5a150bdde1bc57"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.5.0"; -}; -jmb = { - revision = 52718; - shortdesc = "BibTeX style for the Journal of Theoretical Biology"; - stripPrefix = 0; - sha512.run = "6317f3437416ead3fa1224432bd2cae247614e614f888ea074cfc442b8c7c3832d0243988269a1d772172008fa377b142288f9644bb1e2954c3758c1b75f78a7"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.21"; -}; -jmlr = { - revision = 61957; - shortdesc = "Class files for the Journal of Machine Learning Research"; - stripPrefix = 0; - sha512.run = "95a5e59c8f4617b8d3d459a2cfe0730465d46a98781e4352debb9eb0c4357e74c8f519e77873a236f127dbecc235f611e30fbd7348818d9024a27fb8f0ff1eac"; - sha512.doc = "a481634eac642925340aa02323deee2aeee1577696abd435814a2f27d6e4bf6e61be2b2618778c762f3ec60a1e5067d634da74125dfacccfd940488b6a812175"; - sha512.source = "1dee8b499ad2c5427082a69b5a3a65c173a96ea298a05f94b96d448d8d7554d96819798dc724e1e8f55afdd1b25d9e6ed6e7f3474bd83af83b2f89add907f2c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.30"; -}; -jmn = { - revision = 45751; - shortdesc = "special fonts for ConTeXt"; - stripPrefix = 0; - sha512.run = "2e250c3f115911c56f9b8d46d358fdef289c624a5b24c9b4213bbf7818bf42c7b778df55d4bf181bce115b388915cedc90ef7cfa99ee6ad8dd621e7853fc7c29"; - hasRunfiles = true; -}; -jmsdelim = { - revision = 62630; - shortdesc = "A package for compositional delimiter sizing"; - stripPrefix = 0; - sha512.run = "83a76c353b38c9d5e432606c2f1667dac10adf54f844d9c4c7a9b8b8733a44d63db9e2c9e46b2ca54f427bca1d3bf4ef49d016c26dbad361b83d091c78708918"; - sha512.doc = "ef6f90a4b7d3738ff857158822fbc7b3dc23752b5da5845932f560fcaf83d67a22920e045448caae26eded760e34aaab375f29993ffb503d0b5ef3c8185ae737"; - sha512.source = "bbb2b6acb1e2a4be8fd02ea84f3f43b14675b7c02fcb036fbf10e59553411d4a19ad5bd6c087e7aebb5c7309d3ad6d19ccfc67d9186799159e0209f45bdbc5bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -jneurosci = { - revision = 17346; - shortdesc = "BibTeX style for the Journal of Neuroscience"; - stripPrefix = 0; - sha512.run = "1ea3d11a66045784c2d1abe0290d95482c5a2a65a21963a58d9626872b25bb0d20f8d1c3c3b8173bf7f63ed71f7c33e13c8f6dab0918585b36d72fa37dc35714"; - sha512.doc = "2ed6a342b376ced405a75da39fff51d03e9fffa89341522555d2edf8d8eca701013a95f09f01cbf642d3ed1ba93a1aecc89682986ae5c94d784f3c857eaaadb1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -jnuexam = { - revision = 70117; - shortdesc = "Exam class for Jinan University"; - stripPrefix = 0; - sha512.run = "bb4bd96084b70e0808ee15cf23f0ab721b6268074cc5544aa80c9a8b3f6c8a1784591859215e17846a606d7ca76d93ce103c70a8805a321d5833d59061e71192"; - sha512.doc = "45b3a04be31cb9fd778a2a264575a536750bf0c73b0ccb0fb68fb83d99fbe370a70c119e962a1dfbfdcc3da4056439e271aea0e06d7b7289e0c97f3bfff1d6e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.1"; -}; -jobname-suffix = { - revision = 64797; - shortdesc = "Compile differently based on the filename"; - stripPrefix = 0; - sha512.run = "b2e5a82d5bb8575e3708a3e2c30e23a3ceb129c6cd78882126061321350c3ad72e36ccf41392eca7556203be713530d3169bcb39210f91d720159c49975eddf7"; - sha512.doc = "fbe45bf364098e30deb8e040dfbb59b3b81cf53720793ca02dce59ec113ea57b86c1a3a8465ce6029ac1fa7b19b2220fdddc71f71285969e8f91eeafcabc3bfb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -joinbox = { - revision = 68003; - shortdesc = "Join boxes vertically or horizontally"; - stripPrefix = 0; - sha512.run = "c7ef7c28e11a64f060b37e1e17fbe54a80e1c5050bde043e77c42385037974a462598b66c3ab48a9d3317a6ce55a0af3a434465657e0a42d5568a127779c765d"; - sha512.doc = "ed665aeb55d066887e536ad545199809216a2eb84d9d81fd81e40798c7a69c5d14a191a73a8c2ee9fdcc6d36a8d206d07fbd72d427172eb9a182bbb3b4751cf1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -josefin = { - revision = 64569; - shortdesc = "Josefin fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map josefin.map" - ]; - sha512.run = "6be43db9172d51a84374aa836cf9e2baf02f087336685a37c321449ba06461f08b08a8d98c12cb3aba0dbc9c0e2e8b3316362f65c7393b9286ab50b11f70174d"; - sha512.doc = "cc41ce980515708238256db38ff05c74a22f78ee5a8f4dc63d68339a064799e1beacab7be71ec15b2c97a6d9aecc7a39064fcadf4d7c67ff172eb9b8f7a939db"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -jourcl = { - revision = 65290; - shortdesc = "Cover letter for journal submissions"; - stripPrefix = 0; - sha512.run = "6039789de2a03ec2568597cfee911d20b66db75ef4ca3c48cf9481ed2debd0226ccb605a083ba53bce91b74768e3d70a2e2ac077c630b8de33c010f917d68335"; - sha512.doc = "873b2e5636f6409f7b6c4c8c4a8c8988108ad4740df9fdcaef4e7998d3eeba0a2a26e84fac5e6c7b6534bafd120a3dcf066974fc9419e4544cf597bc99fdaeb3"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -jourrr = { - revision = 68556; - shortdesc = "A LaTeX template for journal rebuttal letters"; - stripPrefix = 0; - sha512.run = "cbd5484b622c865b7c42f8ce54a76e54a5cbde6045701cd8fbba54d17c8abc510c79125e7d335c3509cb9c674ce233005f9fcac703fa95f3297239c00c3be682"; - sha512.doc = "395fadb1bcc91eb1c3090f57d783b0b2deff507d22a4221258dd826d635ba382c4c4d00c0d341402374ba4bb037e39cb23efa2bb323652d73b0940ea89eb9f7b"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -jpneduenumerate = { - revision = 63893; - shortdesc = "Enumerative expressions in Japanese education"; - stripPrefix = 0; - sha512.run = "10bb936cbddc6e88979ceed208bdba424d4e4c9c388cadd3a9b84a767c59ea43362f11092907f98c16696f07134ed66765a8bc7b02ea0a8fbe9eb7b814760780"; - sha512.doc = "447c925bfe05d1c6657bbf2592bfbd16f80d9bcc1a3320635231153b90198f2e8010cef5d13573e84504d5a41b9cc6ec750054c00a9178154c4e210684919d0a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2"; -}; -jpnedumathsymbols = { - revision = 63864; - shortdesc = "Mathematical equation representation in Japanese education"; - stripPrefix = 0; - sha512.run = "c4f23412a83fed8ee870922d1e8e0c2e8a881989223b340de7ecda0851d45d504fa6c5f0cb70ceb65e2c07f5df0154f77f343787573a6265a709bc398e3add9a"; - sha512.doc = "0589ea6fa4dee93900753dc170aea295e9bf1103687fa146633589897292dff8c472ee95607a2d0b682321a5a33e22220234e2a396cee4ec2abc54fa4276459c"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -jpsj = { - revision = 66115; - shortdesc = "Document Class for Journal of the Physical Society of Japan"; - stripPrefix = 0; - sha512.run = "de1383f7c52d4a43b0ecd2677314a88181e2702ae487b0ce3140b3048c1820bd504b6743002733e2da3e45553aaf911fe2c6ff552f77e706cbcd300570a34c03"; - sha512.doc = "65c25cd1540664e4e529be67851e5198761cffd6eea495d1f60963dd9deb911ebe8426391fc456f08bb6f640040790fbe7d7702b21f7ddcfca5d246c02791764"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -js-misc = { - revision = 16211; - shortdesc = "Miscellaneous macros from Joachim Schrod"; - stripPrefix = 0; - sha512.run = "6dd7920204cc66ff28c78f54bd6432a71d77ae2f4463bd997d2a4170465053eb86d61bc35d8da66377b47cb1eba88c6ed0918142910a5bdd4e44aec41d3ec4d0"; - sha512.doc = "507cc8c04589dfa7b4d36bf32e4c1d18af42b90df58fee128c0ad37284a87aa1adad32623591d0e8ca880c53a1f583b0bd8054487e231bb2a58ed06d1bf6c6e3"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -jsclasses = { - revision = 66093; - shortdesc = "Classes tailored for use with Japanese"; - stripPrefix = 0; - sha512.run = "aeba8c75d3af2077763da1846e09b6d51ce0f5935cc4e8a09fb6c747d9321161996423ce620d04c15cfe3a4f9af3ea36f90ccbded6fa03dcc088c5e71be74295"; - sha512.doc = "0ce0175fc4a3ea36154c329961d7604bb06431b586dc1bc928afd5b2ada528bb79349a833504ccc93525addde80818210cfa2a1803ecb319032bc8eda034f18c"; - sha512.source = "4b8e605a8f9d3de33b9deef3dd58ae2984881f9716b0a9647fd794a3c97549e50ffe3f2556bb4b4ebc5938ce3516abda9445d4ddff21882b53ccfd9276b37e02"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -jslectureplanner = { - revision = 70448; - shortdesc = "Creation and management of university course material"; - stripPrefix = 0; - sha512.run = "8a94f190abadb4e8d4293782984f94b17f5d3c352d4a0c4f9368327df0e27a416d2f584ee44c4829f05afebeb8a4bba2770086d8094c54cdee887f11620da808"; - sha512.doc = "0907581fac47177633defd0f55a6a8373078224e2edc62b0c8f5e2521464d179833b9a50d513ca52ae1994465f75b129fc34cf81ff54fa904fc7a7622b4a0128"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.13"; -}; -jumplines = { - revision = 37553; - shortdesc = "Articles with teasers and continuation later on"; - stripPrefix = 0; - sha512.run = "e09ee044fe7d5692fe4f1098406e33481ebdf81698168223235e735637499053c66f278a1f7e27585aaa1a586ccf85b4f5afdccfa3ac35950475f56e46324103"; - sha512.doc = "c7f56f012d6eca83e54610aabf1530889c01c1b28e9b790b220726bff860504a3e46ad4fd8d88ef50d3fff17507710bc168fd2d5861e9f2cdae69cff6f95ae71"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -junicode = { - revision = 69355; - shortdesc = "A TrueType and OpenType font family for mediaevalists"; - stripPrefix = 0; - fontMaps = [ - "Map Junicode.map" - ]; - sha512.run = "e368f15bb9adcf7ed15527e4e381424896590866cdb9a214b7f8310e9fd0c660ff5abe442a2206aa88f4032665f40fbdc21b33eba910ff1b299c5940eba82982"; - sha512.doc = "937127e4089bf632b62dc1a218645b1c2903a700183e9d9e7456b16a47b089846509d5d3f89424417a19dd540badabdc6a8a6024826e5cfbad97c19ae9f4bdd4"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.206"; -}; -junicodevf = { - revision = 69374; - shortdesc = "A TrueType variable font family for mediaevalists"; - stripPrefix = 0; - sha512.run = "1c227ce22bb32e8799cabfb943fcd38a4ccc6c07aa7d9dc9708c9bc84352c4a660cbf8c6d31249e47825b961f67a0d7da59349c827a97eada6a37a327091973e"; - sha512.doc = "c96e5c1887f39a2151bf697353b84d9049ca3686a61568f1d99b68596d1b7f6363810962652813403881754ac412240a9d557a7053803172ba45a8c7c7057c13"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.206"; -}; -jupynotex = { - revision = 56715; - shortdesc = "Include whole or partial Jupyter notebooks in LaTeX documents"; - stripPrefix = 0; - sha512.run = "3b5cca7c6b8b14eda35d52a6db5e7ac027c0b29ee08a7b8f58411886963d8dc69348752d6cc1f010d11b9216026b705fe4cc915d2c60cb3ee9f3950fcc6bb308"; - sha512.doc = "35b8d2dbcbecfb4e7b2bfb0ef39f2d076d6f4eec9189e89cee3bdfdbb6f57d5c1dcefbca3eeecf4842f7f94616030d2e73588074618b39e232f40104e371f3ea"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "0.1"; -}; -jura = { - revision = 15878; - shortdesc = "A document class for German legal texts"; - stripPrefix = 0; - sha512.run = "08426bab6c0627e945d620a338c6081a8a21d80567d4a4b686617d0d57c99b1e148f5e5c3406a0337ee4ad61bd795dca353c28b0f33d397c5b47515969fa5951"; - sha512.doc = "4d19c663f73791712d9c24361d8e2a0c2faf25bdac15dcce48825f02468f6a798eff7e147f531368bcc8d7e2a1938202b5614e2434cd46866f359f8349564adc"; - sha512.source = "7c83d639330c1bd405b2439b5e85dd723f476f8ed5096c8085180f03d63ffdeb834639fc8a49a454d50df9f882f27dd42782741fed89f8bafe45b6222bd43239"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "4.3"; -}; -juraabbrev = { - revision = 15878; - shortdesc = "Abbreviations for typesetting (German) juridical documents"; - stripPrefix = 0; - sha512.run = "4d6fd00247c6c915956679674dd029048cb96ac3bc97606c0a299bbaff24a4cbb9440d557eb2945151720265ecb27bf15c638c003e1039dafee56471dfa03945"; - sha512.doc = "ede48ff67dacf107baf50be345b042a7b64c815442875281241b7de4c3be56ec40c969e40ec69669f31058bbbe9b27c51cae25938d93bec99a8c57dfb8e9cb75"; - sha512.source = "3a92a5231317d6f7d7b1afdf5df14997e17217e10b694ad97a9a2f3984b0afdfe5a3edeb4368108e4fb389a98a7f5414409e5fc7d319f4c78802cdc1a350d6a2"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -jurabib = { - revision = 15878; - shortdesc = "Extended BibTeX citation support for the humanities and legal texts"; - stripPrefix = 0; - sha512.run = "12a1d9402ca15ff23cbb9818f07290f0b295c9844bc4cf02e1332eb27a26a3a8d0ed3199df1c4f4f85c9ff5308e7426d0c7adad8dc587fe905c5a15314863b3b"; - sha512.doc = "3f804537752bfd7b6780d082b37834c805e521491f39bd76b52541707e69f8b775b9e18bfcba0b0827133be8cf82bab86651f2a7ec351f9cc140427056ca0dc0"; - sha512.source = "349a2f55265584d73d0a1b0cdd00f0fdb384c87f8b1399acf62f14229ec4cb03919bb1c37d3c8ed992f72f3cd846c93bb13f25bed052edd80810bb6a92665e75"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.6"; -}; -juramisc = { - revision = 15878; - shortdesc = "Typesetting German juridical documents"; - stripPrefix = 0; - sha512.run = "cbf6ebe12bf72dfb823578ed49066f34059e5ab1beefe0eeee84c7df55135644eabdea7582dc848b52cd575579d8807a2a2723bdb697e851eb8aef88f8a5e533"; - sha512.doc = "3925418b9e4d05def76b9e0ebcf882c4b7061ff7ae446aa63d412c093caa04536ad45c757e04e088c3b4099c569885c6e6708ad31b866ebe89ecabb8395964b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -jurarsp = { - revision = 15878; - shortdesc = "Citations of judgements and official documents in (German) juridical documents"; - stripPrefix = 0; - sha512.run = "511130814ed94c7f0829802a0c3e8e613b0c4aae50854f6e06779448f430e78c8712142fe04d3662b799a488d90944072847dd223b01b642de78c1f98649e79a"; - sha512.doc = "1c439e351102ae3f768ae38404cc5d98403028fb6fa6088cd53eea40593ee03c10d20955f3fadef41f41af6d23f139ba356a9b06ed735644b67d3f42a076e0af"; - sha512.source = "8853060222f8f45e69fd7d3539534ed6a0762cb7f97d4c140dcb4ac59fcf1fe339d7f6cdca6e035d4e9bbcd730746e1311885d837fbedf65e208be2100ec2a90"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.52"; -}; -jvlisting = { - revision = 24638; - shortdesc = "A replacement for LaTeX's verbatim package"; - stripPrefix = 0; - sha512.run = "70626cd23359751909ce385a7ed4415c5641e9c303d0dafeb99e36d0151f382c02c2f6818a135bc92fb156d4fa25d1976b2c906074fcc112e56a1a7a458801c2"; - sha512.doc = "de6a694c26332d9c97bf4202bec0989370226b7381d080c4d6f5a106cd8f2bf352d756cbe7cede2a4ba3e17f85ad553e5c24e874a00cc1dd307325125e6d0bcb"; - sha512.source = "776fe9200a5447c151f11ee09b0f3d95aa5f07ccd427607b12ad7069aa70084d99c7d620261797e6c147ab134bf3a151bb739eadc8e3898dc8b16f284c66a965"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -jwjournal = { - revision = 69162; - shortdesc = "A personal class for writing journals"; - stripPrefix = 0; - deps = [ - "einfart" - ]; - sha512.run = "9778eb2f8a5999584afdb07b9604691d9ed1253a8a2bdedf569a10e892e876288a74c525bab2e0d26f8ed851d94f81e4a3625a54f1246cb0428a24308546d502"; - sha512.doc = "dde16cc247d095b61e09b62039f081afa1855778b7d804e6e5692213c25a14c2746204a730f7934a531142f5b9151dc183b20f1d2aa14429d448cc5d4e543996"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -kalendarium = { - revision = 48744; - shortdesc = "Print dates according to the classical Latin calendar"; - stripPrefix = 0; - sha512.run = "fea39ce08f6028f078e2d87ec73aeeb56d72006d24d316f8e257b3c71604efe2b4ea2fa698f79798ec5c9b3d271d758d4c0699ffce1bf380a74d21158224eabb"; - sha512.doc = "60a1dcbaa92fcb4438f4a2416dc4784fc30af34c6e1511533b8827a266b61a62a6c0e66f51b27ce81dd879d774e9fee6b155a048ddb9f68e1f991294791739e1"; - sha512.source = "a1668bd43e489002ff365f5f90c6f9f8d6acb752256159f223a444b41ac1398e8d0bde50a63deac11f8d3a22f792278891cb05109b5af4c2efc1e8c278f01a76"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -kanaparser = { - revision = 48052; - shortdesc = "Kana parser for LuaTeX"; - stripPrefix = 0; - sha512.run = "a9db1fc66330bafc5fc26ed600f1779dce328d6234ebe930aaff65a02a0d740188e73c5f73a9c75d69926323a610dca4b37044e7357a141eae9bb3231fd3e272"; - sha512.doc = "9eb00a9652f22411f9ae0123bd2bda62af617f39ed3eb8266c4ca38ff0783722a3d1eb05a0fe1ef6a238a3132ade65c5ebd882309f154ca416e2191b9db44c4c"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.0"; -}; -kanbun = { - revision = 62026; - shortdesc = "Typeset kanbun-kundoku with support for kanbun annotation"; - stripPrefix = 0; - sha512.run = "2ca12d697ed80a1f3182ac2e28897f670f8d770d99ce6fb3d8cb692e8e40d45afb463959ac8668b60ac7d67c9d8dd8f88ff5ec9e83a96f656ea8cd59ac419187"; - sha512.doc = "853230ef31da0bab5215f62e68162553b5ba54619e1e6b6e84c9c57fbe43b5af5715af2696c384a14807a1cd6507dee600d37bb205e5b82d42cdae15ce30e940"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -kantlipsum = { - revision = 68983; - shortdesc = "Generate sentences in Kant's style"; - stripPrefix = 0; - sha512.run = "bc863e42abe6397617c588c85936eec4dec5fd9578b26cdfaa80e25abd29ae814a009952f246a4920a3da43e0842a9b113d0c73eb7514b72a9c5a16193f914bb"; - sha512.doc = "97f15c38fff7c30d99313be71a6908f5391bb15a3e363fd00bf6a6563a2abdca2d98969d5299ba644d33917b48da41985c5ea6d9238e2e8a7fbd285262bcb8d5"; - sha512.source = "873c0b66e7d83fc93d916d4599e96ff8ce8cd045ad2220914cd4161e15e8f357676b86a35dccdca927c03abbe224f604dca187eb58cd3bc42ba78ed70b9130d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8c"; -}; -karnaugh = { - revision = 21338; - shortdesc = "Typeset Karnaugh-Veitch-maps"; - stripPrefix = 0; - sha512.run = "344027bcf79a9b1d3c408aae774bc532a39e7c638c4831d2566e7cf5ba5780161c6314bc0f9337de21fa08a2a2d72f3b5ccf9df7a521d7c95b4dc6e62cf2136f"; - sha512.doc = "379638ab38cdfe3d94d049fec7701995566df9c5451f4f6a862c7cde232ceea899222b13f3c40398676bd2746305ee48e8b43781804cd24f48f36946526d23e4"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -karnaugh-map = { - revision = 61614; - shortdesc = "LaTeX package for drawing karnaugh maps with up to 6 variables"; - stripPrefix = 0; - sha512.run = "789421645939ff491e3ee00aa06813a5e194108c2d55a5e06ffb4dba593a095352ec54c5194ef8ac536f4226007d2323a923ada94966b5cdbd147117856ba680"; - sha512.doc = "6a04bc71128802a62fa2dbf92a513c9859f9bab336cd2208d05fcd3b9404a1531e4f20cfd69a1d58186cee6660582ab03e89ce87511c3e1173f84bc6ac132f29"; - sha512.source = "520bcc77beb97f2f106c92682898244160c2ee45ec85118776dc375763363b272e1459e73d3cfe1c27c7f82f24f723953bc9705cf1f506e7c4b679c0f3063804"; - hasRunfiles = true; - license = [ "cc-by-sa-30" ]; - version = "2.0"; -}; -karnaughmap = { - revision = 36989; - shortdesc = "Typeset Karnaugh maps"; - stripPrefix = 0; - sha512.run = "72c5ee674d7719b535a03cb9180a605fce2ac089c875cf57b95739b5c139bc45552960faf8f3287731fbe12c8402ce3c2c6517513d20bbc484e12a44468d6ec7"; - sha512.doc = "c79e28dbfb45764c3f5feff21bf3cb8ec5ee41380fe43d35b2b091b1e263db1eb417a19c74987743c04a2f41fc2c3655fdc531c8971320580be48beeb4d3d6eb"; - sha512.source = "ff5bdbaebaf55faf2d617b1e3634e52a6ec52c9d56932653d9b13a8aba94db101c4afbccdabd916d51be201135de2e739295b8a0523b63def160f1c07171e4a2"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.0"; -}; -kastrup = { - revision = 15878; - shortdesc = "Convert numbers into binary, octal and hexadecimal"; - stripPrefix = 0; - sha512.run = "d7cbd22ead6633284e9d114d90b2cb47924bfeb10c15eb350e4c2f82b883930c953410362313cdf8ac476a68cfa3a9b020217097909504b97a8ecd7addbc8d97"; - sha512.doc = "32883a008b0f44c341fbd5f65f9783e403fb5751201235b0c4a2dfd9af8400e1a36adaf4573165688d78cacdaad3c8b2ac1b92ba87ef6951d3bc5330537d1f9e"; - sha512.source = "60390a053fe2fa53685403df1d67a2bf8795f49db0f4eaa5a147ccaed951a55c1ed50c9cc5802bcdb5e356b694c2b4be78715022842c958f784908cab89a3f75"; - hasRunfiles = true; - license = [ "free" ]; -}; -kaytannollista-latexia = { - revision = 69876; - shortdesc = "Practical manual for LaTeX (Finnish)"; - stripPrefix = 0; - sha512.run = "e7b939930e9c0952cf67e402b363a00a7aba9ad226bf4301650553ab8117a78dc415f81c31e8ca6a8eeaefffcf3fe95a57cd93164df01b63f74c0513f0e8469d"; - sha512.doc = "f44779f63f301091ac2119f6c5002c29d2969509775acc752ca4aefeca8b16bbc02f352c36e3b869ea6070f3fd70bacecf3e7d41d00bc5007d0176e5cc489f3e"; - license = [ "cc-by-sa-40" ]; - version = "2024.2"; -}; -kblocks = { - revision = 57617; - shortdesc = "Easily typeset Control Block Diagrams and Signal Flow Graphs"; - stripPrefix = 0; - sha512.run = "1cf755fb680b13d5298c306698bf41cd0446f7ec8da321b065ed549c1bc83bc352bd4a44d67eaff6fd1c253b2d92768f8ddcdb6a986febc4dd1abe6884a2354d"; - sha512.doc = "7aa79c73b32d4098bdbf6152f28de628083639fcea2b7338e64fe6108aa605662f36002d93268f67fcfac59798369d392c5c4b79adcb18d0600faed8d804d8df"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.0"; -}; -kdgdocs = { - revision = 24498; - shortdesc = "Document classes for Karel de Grote University College"; - stripPrefix = 0; - sha512.run = "79b64f2f20b9da908fd9acee1033fdef290c30e99794c37f5020f33dc5fdbb670383463bc17614f4ecaa1d5d4c03b4ffd3aa4f2b7c53f27455740adda9d0545a"; - sha512.doc = "6b579a44d041a10eb9224aa80c1b59b113492cb12c121b1ca5f57625d044b52a80cbfab63d7a3160043b41b1b4e27d463f5ef8c9688f620f431fc1937a8bc561"; - sha512.source = "256c4c4e0a8dddf39fc6ce14f17313f2bee7c967dac21910fb44fd674573de113e78b0beaaa979d3c7f3fba06ad15d24d6243b8716b0114507331f267144d6f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -kdpcover = { - revision = 65150; - shortdesc = "Covers for books published by Kindle Direct Publishing"; - stripPrefix = 0; - deps = [ - "anyfontsize" - "geometry" - "graphics" - "microtype" - "pgf" - "setspace" - "textpos" - "tools" - "xcolor" - "xifthen" - "xkeyval" - ]; - sha512.run = "d68fa467a50f7d1648e51b918201b76c199920e39915a3c5fcc72cd75c4b11b0924082cf8c01363fe5af998c66ffae71137e7f9635e147ed40ed5e7cd4fd63cb"; - sha512.doc = "880f981153526b41cc128677d950e52b4ff5449adc4fbb3b0004a983bcc7222fb64714ca033b605172fe0b52107e6cc8ff0fcbd1778bf7aa6b9d20fa994ef452"; - sha512.source = "e67cc3eede96c42506beb03d8e4e7db1b5fd4a7ed15026a060c3a5db559c0abc7fe0f9e24c22b23d2aff7c7979005f0c26d250607129d29b6d4bc9babc0e11be"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.5.1"; -}; -kerkis = { - revision = 56271; - shortdesc = "Kerkis (Greek) font family"; - stripPrefix = 0; - fontMaps = [ - "Map kerkis.map" - ]; - sha512.run = "b4a8465264a174320180ac5f9bd89900f7a3b351af21d3a138db40b0781228bac8f8e9ea66a54a1910b3750d65eed17f74880f1c7396780dcd631eda164aff58"; - sha512.doc = "b9c57f71b2c5e48ab3b96984b231f5ad418d884caad0a3747c78bdf0a5688c4ac05993e43707236b02650750d5b7507d39e50668b7cc16e00a35547d63d0bbb3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.11"; -}; -kerntest = { - revision = 15878; - shortdesc = "Print tables and generate control files to adjust kernings"; - stripPrefix = 0; - sha512.run = "9f295c253228745bdd91db65f2e414bc6113d246242ea1717db6659c2ccbf72530fdc326c0ec499f6d6c2af3ec8df2b78965666dd8544e07bce864716804e76b"; - sha512.doc = "b471544af9d1ecfd6225e4b9d61f05b4da950a6512ac4c4bab54b1ef9befa859ee5aee2498690e724d84313808d2abc8f005fd4e121891878cd2dbd03ae36415"; - sha512.source = "8d7c2a8e8881f361c67ff71a57056dbabd3e0af5d24cbbc5f9e7e6e321504482469809f8bf349b5fd4d65e011049d5a67e7570c0b364cfe178b0fe377da82c31"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.32"; -}; -ketcindy = { - revision = 58661; - shortdesc = "macros for graphic generation and Cinderella plugin"; - sha512.run = "da33a0bdc989fcb6f4521d23e5d44bae70d608ed8ac10f05d6962a252e99bbd80380afa2cbe9e02b9c652b044dfff79218f951144da6ce55f8a53033c11ff346"; - sha512.doc = "1704411b3e7c41b6318ff6f8da56007dbf1bec67bb495d25364d6274d9b8acf234430081c22bab6ad13ffd0ea47586e6e24c9f27da8a97a309e2128ec74f89e9"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "gpl3Plus" ]; - version = "20191225.0"; -}; -ketcindy.binfiles = [ - "ketcindy" -]; -keycommand = { - revision = 18042; - shortdesc = "Simple creation of commands with key-value arguments"; - stripPrefix = 0; - sha512.run = "90c2246edbfd199d98a05df336ee228c65f26073f3c95c5ae55c3201cf59453bb5afb95ad367ab4af6b36dc4e0c52a25bb10f80fba265003c701122247be50d9"; - sha512.doc = "b99b58407f5d93fb868bf525ab199c41e07fcf5f31c7a6a14cf68622ef3a34e44d1014e4d34594441144af5c7d9a9853cef1505311928b32a9fcbd41c7bf4284"; - sha512.source = "44b63a11f08c3bd47ab337ccfa1b0b2737624f77228ca1d745020e2c1ca1b1616c1bfadda1b99c362c0b372bfbdf37d839f0d0457082922a54a66608c82aa928"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1415"; -}; -keyfloat = { - revision = 69399; - shortdesc = "Provides a key/value interface for generating floats"; - stripPrefix = 0; - sha512.run = "b3bbbe74c5db4eeb1a74d49e0fe9608df347921caa0814faca8eb62cad674fc3977c7af1cd58849fe6abab5a1231b4ac3999d5af7aceb7655f12d883e41148bd"; - sha512.doc = "43771371d9f81311e29be4b7ad2b1876299d6ff4ea740e9cd759a01701665bb6bd37983828238e13141e39c253b6d3d92b566fc97ba2944d7967cf55e492913a"; - sha512.source = "89f10c6c68e6941de535abfc4e86a0e019a1bcbd2cf10f0fa542adc208f5ee8c1c7884f679d87186c2103b4b1f69b36b50e3c73512fd9209db1be4f5c87f05c9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.09"; -}; -keyindex = { - revision = 50828; - shortdesc = "Index entries by key lookup"; - stripPrefix = 0; - sha512.run = "93de5becfa1b4950f518bc004f0dbdfe96f567e17ec4b7656326b89201f1f85edcbdaa771dc8568fc0c87bcbd8877b618d0d00ce387ca70036f6794a8b870695"; - sha512.doc = "4be79367bed5a7bc3f5bfd6c10f7ba6a4c87ed51139e8f8a7f55c59ae3ce6c1aa10df1c88728f7dbb4573634bba2ee599378755cf6c77a2ccf8d93ece5540736"; - sha512.source = "3f177cf8d323fa6dc0b47742a27cada66cc505777a20c26864dcee73c272e46ba3867c4120f480be8ce5afcfc6896d908eae0f336cf306a13019bd0f0206f9dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -keyparse = { - revision = 60277; - shortdesc = "Key based parser"; - stripPrefix = 0; - sha512.run = "f3ca8d0b78d9e20bf99e46ebf181d670fe6d936f9d91f1059056820f8be1a9be6eb6278fdda8b118a5f82d376440681dc4cf9a063bb6693df67d5e2d47b3a5dc"; - sha512.doc = "01b6aa91350a1ebad4f37be4051a4bdc97939392a6ec2b7708de77d06a575c14fa3f9bc9a8b98ac5d73428555389aa6bd0f9439dd299c2b34e19b7800eb2a27a"; - sha512.source = "2eb4c90abed3e2676bce4865ad4254b6f572a69edf63ba82a5a9b3c994343f8d3a3523dd465b94d6afe814364c41a581dc84d49c9e21be6dc4231c3f850eafe9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -keyreader = { - revision = 28195; - shortdesc = "A robust interface to xkeyval"; - stripPrefix = 0; - sha512.run = "d1786b07a3dc87f94248043f0bd941dcd8dccce29132e67118d3fedc0fe207a2df846d850851217fa87ed2219915719e70fa73ec284ed420072654c578ee0b3c"; - sha512.doc = "05c45cb13bd2612dd5b048f296437b605117c71a52cef2a1b90ad58b693a31d05da9491464ea9b208dd7eed3f3cfc96e9b5a00f5a77e5d492208fe1e924dde4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5b"; -}; -keystroke = { - revision = 17992; - shortdesc = "Graphical representation of keys on keyboard"; - stripPrefix = 0; - sha512.run = "e04e13e23b3342686078c2278d3b6f7c8678d99acda197f50296ade3dd91bc4316323a669efd7238fd246c60f169c694677252601a81d9e23b49a1e37049c93a"; - sha512.doc = "bac7f2e879796c0ccd5ee28c47aa79e9208ce0d01456de9ada6cd00d822c098cfa318615311c43b1815de0e6968252f6005a3dfd9d0475ee7dec25f7d24d1d86"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -keyval2e = { - revision = 23698; - shortdesc = "A lightweight and robust key-value parser"; - stripPrefix = 0; - sha512.run = "08495711a9b509707ce6da359f9743b267baaa6ba6e18e41c965ce016c4c51e1bb7353769ecc9596e9bc415976449612f602e291608d306ee5baa69a4e823160"; - sha512.doc = "424035c6250990b4104200fdab744d50643b6ce36ea717f50544fecd40746d47d7d2145203f0d6f19652a7217c99eb599a1c7d8b0e3a0fe00e1355c416cd4294"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.2"; -}; -keyvaltable = { - revision = 65416; - shortdesc = "Re-usable table layouts separating content and presentation"; - stripPrefix = 0; - sha512.run = "733d7e2f07b07b1b7f0538f54c0dce33a706210203c9aaeb203c7c4129859d025d20a1afc973f5320102c89bcac78547213707802726367311625ab89566492b"; - sha512.doc = "7b3cf84548c2a8d997b8cb5ff3cdf77a40ff309220fb6d109fcb8215e78c8b93f44e495f3da7d92a3e144c1635473fe8780cc45acd9e978f12faa7dcbbff9893"; - sha512.source = "0bed97c004ebb8aa8af13d226c10fa01e00459534a061d5bb9500e7d5376fd379f67310cb169e2c1fbcc0e07f4e5c35d096ef1ab65b92a1b78481fbd7e90e1b0"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.3"; -}; -kfupm-math-exam = { - revision = 63977; - shortdesc = "A LaTeX document style to produce homework, quiz and exam papers"; - stripPrefix = 0; - sha512.run = "cb050347cc1cfab5e2ef5c248b6460edb50779b81216f3b9277700780922c94e44ea2c14696b470111421de1e049378811645cde6dba004c23631f2111cadab9"; - sha512.doc = "8cebb9035b23e1919fc9428e9f57335ecfda9c98214fec78f95d665f44060cdab2aff6a9ae22eb124a6da7716e88971f559084f64f7b1c1456e95dcd03c00307"; - sha512.source = "0a7dbdfb80a3ae91b23256839c8174b3db13ec23f3dca35bba422440897ade8b33c0ecd8d8c76367241e71abe9b12c5d69a07bb9d0a1962d080a6d89e76a50e2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1.0"; -}; -khatalmaqala = { - revision = 68280; - shortdesc = "Arabic font for university articles"; - stripPrefix = 0; - sha512.run = "78481f7d494a7c1d9312e3c11a700e43b007660aaaf28f74a3aae4966b2387088bb891cc8e73bd431ad992395f7b66a10b9b326d2262509fdac3e153473d37dd"; - sha512.doc = "ec0f8ec3213a009899134fbf2389f9f33e2747175bf94246c0e035c424728251c0e16a3391e598007b83262353db66acc87431f6856dc1df6e784d5f40b4a2a0"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.0.2"; -}; -kinematikz = { - revision = 61392; - shortdesc = "Design kinematic chains and mechanisms"; - stripPrefix = 0; - sha512.run = "6f23b8084247aa807c5738468f005fbaaed59559828247f269dcc24e62535984bf7805c69aea27b889d01b2afa04ad67811a0cc8e0ffdea7e263f9ac9c384fc4"; - sha512.doc = "b5fb6a456f042a677866f9fee3bc7a13a8405ab6fcad590ba37dc9d681e61d04abdfe6bbab5009cc1d79f73859a1fdec137c92e6c0d367b1d801ca2d41d69160"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.0"; -}; -kix = { - revision = 21606; - shortdesc = "Typeset KIX codes"; - stripPrefix = 0; - sha512.run = "dd819518a80ca0486a191361625b58f91d00ccac88a2f69269bd6e1753f6c87dd3c97d39a14a5dc3768c9ecccbc981106eba1f495cb7870103a828ea69ed8bef"; - sha512.doc = "3d3816d395e69ec83c88fe55801cab052b12f5e38702edafec2d3f9225c80a31165dca553b60401dedac7689c583feb00615e41c7179fd19ccdc420fbd5e6d86"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -kixfont = { - revision = 18488; - shortdesc = "A font for KIX codes"; - stripPrefix = 0; - sha512.run = "a866364705d75ab560488c84a5e403755acfffe7b49b8e6dd65342f45f852a5be9d4072d750fae606c3d5789e1d46458da66f0af6fb9f9e0225c1d9acf69d4a5"; - sha512.doc = "ca250703364924daf9827ddeb48126fb21ff5ec3230afbc3f6778d23e96dbbb16173e5504900032ddbe14920cb40adf8130be50ee92f3c9c2dbceb95b8ecb90f"; - hasRunfiles = true; - license = [ "free" ]; -}; -kluwer = { - revision = 54074; - shortdesc = "Kluwer publication support"; - stripPrefix = 0; - sha512.run = "25210201032ab5cf867e8e46de560a2232e36cb636db8d6d533a6052ae125024f2fdb3d016aa68d49d5be4ded676a1e02108094c366fbc9cc443035edbc82107"; - sha512.doc = "0908a60833ebab53fda54708cb332f0b3e2ed6c071daa1b231570c6dca57b09b6c9e7e52afb606300b04f9c42794d6d6b7c2387ab35fdebae0ef4d346ca068e4"; - sha512.source = "12f20e51c0c7668761c2894ac6559f16f853c4d255331db36d9d50e21ac92103828d661d2df8358de24c8403f7a0292866ed4edd5c64e54e555e979475bb5adf"; - hasRunfiles = true; -}; -knitting = { - revision = 50782; - shortdesc = "Produce knitting charts, in Plain TeX or LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map knitfont.map" - ]; - sha512.run = "af3f7d2355054293c2c7973cfd40f0b741c8821884cca6ceec7562efeb92433bb81aa204b7b0ed4dae77cf674f4a63005f36133fbb5bf3d239f0cd5ef61a69ac"; - sha512.doc = "effaaf06a5593a9d73f2e93a722355009a0a957a2067a1432edb40d8dda7649c42571cbc37fc7aa4103ae2094dea7b1bfd861273566102c55546f71b326e7118"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -knittingpattern = { - revision = 17205; - shortdesc = "Create knitting patterns"; - stripPrefix = 0; - sha512.run = "cee26b0e6fd54a43a12e0e48fd5b4bf381816dabb6019cbd7c13ab5e2561b9f191d9fce4c75a513c06530077bba8d383b26552e2e6f4e97600aa2216547a08b5"; - sha512.doc = "d391a25a224713092128af5adf68e5331c530a67a763dc37f657d8bfcee0d904632e86ae2f3745ec2c4bb0cea5e886c85da15b064780dbe997104b9afbef9e4e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -knowledge = { - revision = 70609; - shortdesc = "Displaying, hyperlinking, and indexing notions in a document"; - stripPrefix = 0; - sha512.run = "8c97dc4a8a0ab5fcd2ae59da3b4217fd1e6171d788197c3755577a89fb86c6d7d7075778c669bdee8c0ff8157583695dd20c1186b54f80b87c968add98970f99"; - sha512.doc = "a0058b7065a25ced7469000536321cd830503fc3e3f1bdc00d44ec4dcd7eded837f62ccca4ea49d46c9262c7bf8accb2f29d6564f39e9c3acedb163817098da9"; - sha512.source = "f7586aa134293da41c4920402aba230c12e5f14fa9e7675206fd270203bedfa42426e1ffd56f4289980b5a49877f8179cacf4ecba8f2a5fb857fc891087a2531"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.29"; -}; -knuth-errata = { - revision = 58682; - shortdesc = "Knuth's published errata"; - stripPrefix = 0; - sha512.run = "f74443cd6bd0ebc039ff7eb0f5df2709b28c34c1fbf49793ee6d8ba2477337d8b7d0072573c32d67da17f7796efa058aa0d2d7cc2f7e196111c9ff90668ddb97"; - sha512.doc = "86abd134ee7d4afd4398735964c83340b67edb9b41a960d205aacb3dbf1c702a854eb469d3c39b06a7ed1974c8e2a951dcb1c3fcfdeb2c394b7d21e4205ceca4"; - license = [ "knuth" ]; -}; -knuth-hint = { - revision = 67373; - shortdesc = "HINT collection of typeset C/WEB sources in TeX Live"; - stripPrefix = 0; - sha512.run = "ffe5a785191fe8506f59557546b3bce29a236ed5e23a6766941b37dd134bd00ff1ec5dad0278d837bfe2cf8a0e69e5ab5921daa320184ee259580c9b41d92ede"; - sha512.doc = "5b47b3cbf6164bce8cf6903702b5a6ed93fcd13def2de2e6b30e3c8e758fdf076a1c14f1bc452768c9841d967e932a6597ff0a1a7c9140ce2100036fa04f031b"; - license = [ "publicDomain" "knuth" ]; - version = "2.1"; -}; -knuth-lib = { - revision = 57963; - shortdesc = "Core TeX and Metafont sources from Knuth"; - stripPrefix = 0; - sha512.run = "47d50b1966dc5a3adf4921c297d9ed5917035e917098154fc08d1c72ebd0ba70ebfa41735c7ae52c5087d62242bcfa9b0b49914c6da4f392e2d4c56a6d72807d"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -knuth-local = { - revision = 57963; - shortdesc = "Knuth's local information"; - stripPrefix = 0; - sha512.run = "91962f359e8b2f668130a6511e7fafad26a0c4c14a46f715172aa28723f743e08c50be666cadafd7a591f2283daec4fdd45039afc714115077667b66e67cedb5"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -knuth-pdf = { - revision = 67332; - shortdesc = "PDF collection of typeset C/WEB sources in TeX Live"; - stripPrefix = 0; - sha512.run = "ab6e1db43370a551700c4ad8ca9e3787a7be7a06da2a72fd4cb0faa7091fefa1847d143bdf9c8d603ad7d307495ad34faca4e5ef054fa011d0137ba90f888a5d"; - sha512.doc = "0f16994ee8e64478d01f7b0f2c54c55369b5f661abe7f4db347cb2b7d146c4efbf337e20fd7eba1cce497d8cfa5058bbf4c013073028c364678334c524aea155"; - license = [ "publicDomain" ]; - version = "2.1"; -}; -koma-moderncvclassic = { - revision = 25025; - shortdesc = "Makes the style and command of moderncv (style classic) available for koma-classes and thus compatible with BibLaTeX"; - stripPrefix = 0; - sha512.run = "68aa7ea875f46a4c1d1bbf29d4abb77f4ec729242fab41f3e79caf95a925a076ec3d37ce7d98b44aecaaf9edce541d1673780238786b36cee0621acf4212a1ef"; - sha512.doc = "968f5303bc7b5fa3df39a2a44c38b63e54059a94ac7df2349b45cbc0855d22ec64ec39feaafd761515720d306d5e5ea8a223ca74790ba160bd093f989d8b69c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -koma-script = { - revision = 69755; - shortdesc = "A bundle of versatile classes and packages"; - stripPrefix = 0; - deps = [ - "etoolbox" - "xpatch" - ]; - sha512.run = "610827993fa3d94f1b914ee24be0c0a2ec1062c1d1863dac8687e6ccf9c7866b7ea56fb45363587138d7d7842ff58cf1aa4e1c7970f48ca8f7a783e0fafea1a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.41"; -}; -koma-script-examples = { - revision = 63833; - shortdesc = "Examples from the KOMA-Script book"; - stripPrefix = 0; - sha512.run = "03941b9cb516d836b59f493e1e6af7ef409306cc567ace2abc467c7b6c73156819fd23212668ab5506c03697e29840073162dff5f912f605354cf9851ab6dda8"; - sha512.doc = "d355edd3348b454015a390449e251bf476350385b062d314d9e924b187e85802e815cca97c550073605ec3a91a38a15d2a9af79b7771ec74557067dbedebdbff"; - license = [ "lppl13c" ]; -}; -koma-script-sfs = { - revision = 26137; - shortdesc = "Koma-script letter class option for Finnish"; - stripPrefix = 0; - sha512.run = "3b281a1e94c73e1d8224f6ae552be91e3df344f9031e139334fd7256e38dc70bed4132164935845c710bef9dfe0e8c439c229d3415ff835e48777aea182e7fae"; - sha512.doc = "84f7fb5c11c9b40029bc481d34ef7cca39baa2a3872f22fd5b656e324aa5cc0becf3ff6d894ceaf26e8ddea0d8cc14d428a140e1f19ff2e060c6d32390d51070"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -komacv = { - revision = 57721; - shortdesc = "Typesetting a beautiful CV with various style options"; - stripPrefix = 0; - sha512.run = "028e8d2a7e5ea450ad8d6f2b14ad0b84b319db0a234f03f8a6e1efc781fa7e60a67a67e4aa5cd101eea59e2c93a073b635d74bc6443d84b01599575466994a6f"; - sha512.doc = "d016f4bd23fb08fb932c3d1516167619d239f8cebe8d2ad8e6fcd07aa945c2df17d6e05e5474dc5522ce4bff1d72fa7879bf9dee4348eb8aa8624d1fe30ea86f"; - sha512.source = "ab1dd4f3976bd0b1a81c7772a92f1c015f2a0a662c65f474bc36b9bc6edfce6756f428fe9e45d969dcbbbeda41a0b1ffd463c3fe5cb286fa9722de22c59847c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -komacv-rg = { - revision = 49064; - shortdesc = "LaTeX packages that aid in creating CVs based on the komacv class and creating related documents"; - stripPrefix = 0; - sha512.run = "6d400b0f228d42aaabf9527bbd3447fdf92eeff81f1fb7978cf90c3afa9835e4731a9da938bbece65034476ac2e2f7afff19000d9012ddd76b6f65618bea7223"; - sha512.doc = "58236086df2335cd167a5d475cb0e223747d43d81d23c0c0ace1cd711a19ca371426d36e199d69a9fd5414a33872dc4ab3725850a6677440484daba0e55d5208"; - sha512.source = "512fbddc0b233061afd3a2af20846e8eefcb9d1dc00b29669e45499b62289d842053201b208819536af0a2a7db56cfbf2346210775412035fcd13d2b2593dcf1"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.9.2"; -}; -korigamik = { - revision = 68204; - shortdesc = "Typeset articles using KorigamiK's document class"; - stripPrefix = 0; - sha512.run = "8218a2e5d09cc572c3e3bcba6d49ad9ef9be5016cbf2f3bb57c7f649fc638f718f5d91c09c3d9013ac182e651b0c53b65c7a118a021eda68a53a1e8641a0a8ee"; - sha512.doc = "291a1153ed32bce9c7b845a40b4de3f63715f2179765021c1ac3f678bf1594a0abe405824099826eeeae30a90a5fd773e6e5aa91fe66a08ed47c91f371fdb6cc"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.0"; -}; -kotex-oblivoir = { - revision = 70496; - shortdesc = "A LaTeX document class for typesetting Korean documents"; - stripPrefix = 0; - deps = [ - "kotex-utf" - "memoir" - ]; - sha512.run = "7a4d61b5e5c20b3ef673eae06b95403b7e3f65808f8bd1163f8d6a5fb33004a86991b5941da88cdd89b74ffb40bbfe14d0a51f062b51c7567b03609cfaf6ddc3"; - sha512.doc = "42c6dd702f21cfda0a1857f42832a53c0d936280e07c0a3700e39d614569bc5bdd0dd50daf4e01fcb0c3ab94c747645a1ee7298966b5c3ce16281b402bd1ca97"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3"; -}; -kotex-plain = { - revision = 63689; - shortdesc = "Macros for typesetting Korean under Plain TeX"; - stripPrefix = 0; - sha512.run = "940f6672fd2d490cae446408ed6421c77ada3ea9c0c4820b00a0b38026ed5d30fa2b0f8bf86a5904a8c04b15e561e3f146ae4f817e7e2ef8c3a9284f9c841350"; - sha512.doc = "34a45ea6cda9fa9b6ba453fef795740869b1cc3c3eec84b467847b7221a916f4eada3bac97b78dc6e5a545e12f87f1d56c3540fafa658535f9ca89335bc6b534"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.0"; -}; -kotex-utf = { - revision = 63690; - shortdesc = "Typeset Hangul, coded in UTF-8"; - stripPrefix = 0; - deps = [ - "cjk-ko" - ]; - sha512.run = "be75556f3857a405d235f920866f8089f105a57f9accff07a541fe110bb8124e049ebe75368ce3282bcd329cc6a02eed0ccffdfad49020986d61221839cae4b5"; - sha512.doc = "7226874594b10ee48e8aea30a72e6d6f4db9f770d5d5830dc83a41f828bfe36b0b11f679aff02722e457150548860f1ad719758e6ffd239bbf9ac18d907acded"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.0"; -}; -kotex-utils = { - revision = 38727; - shortdesc = "Utility scripts and support files for typesetting Korean"; - deps = [ - "kotex-utf" - ]; - sha512.run = "569e9677ef0f346e5a53f4cc84302a8ddf2b4ad85708f4ab8ba7d076ebf339ec60998a41fa92fa815167e9bfc37085ebfd921dd13a60b017a0574e4a5d205802"; - sha512.doc = "a46c5d09d119fa2fe8b9acea87a37776536e3216b776af6b7037fc5b0a522af5c1a58baf081e60f06c9a4054e8ac2372458c276c779038a030dc92efdfa3aef6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -kotex-utils.binfiles = [ - "jamo-normalize" - "komkindex" - "ttf2kotexfont" -]; -kpathsea = { - revision = 69121; - shortdesc = "Path searching library for TeX-related files"; - sha512.run = "08b2ebc546de9615927f9933937c81a5fbae702e20e389055c62f13b70ce81a87995dcf402d8b94d0025eea80f9fbc1500270b615fe3f26f1e9c12a245dbd1d4"; - sha512.doc = "17687e289d912120a0dc0b79829145521dcb660fee024f249153235bb2591936bedae9370ff20d8eb137d54d40d73d2854e4312651eff8a6763bf70040e0bf47"; - hasManpages = true; - hasInfo = true; - hasRunfiles = true; - license = [ "lgpl21" ]; -}; -kpathsea.binfiles = [ - "kpseaccess" - "kpsereadlink" - "kpsestat" - "kpsewhich" -]; -kpfonts = { - revision = 65583; - shortdesc = "A complete set of fonts for text and mathematics"; - stripPrefix = 0; - fontMaps = [ - "Map kpfonts.map" - ]; - sha512.run = "d4d035c30acd5d5731a16e144cb45df6a3ce12c06d290f50c9e721ac67aa4808eade4eeae4c91a5093e29c64f91ec4d7a8d65d42307238c472d87d22eb5298c0"; - sha512.doc = "d030abf78988bc21f0e4afc06f0fda95339864036883877f5ceec11210640fcea8cd0ba54eb4d7b7dcc33b9eee8a0b2593739b4e2260b9db6e23cd480861e79d"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "3.35"; -}; -kpfonts-otf = { - revision = 69636; - shortdesc = "OTF version of the Kp-fonts"; - stripPrefix = 0; - sha512.run = "5c90bbd34da4ff9b610e5d1d407787cf658cc1a649c42c43d64bd374d04f43038956a5dcd159efbe912fb952d5a11370388870c87bf0a4094f19c019965a173b"; - sha512.doc = "677dc5c94ab24a047028b403db43a0493acb4bf8644ff6b63cbdfba12f1de11541eaca6836290c4ed822c1800dba299e2b5afb9f5455164db038c01e7ef0f17a"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.62"; -}; -ksfh_nat = { - revision = 24825; - shortdesc = "BibTeX style for KSFH Munich"; - stripPrefix = 0; - sha512.run = "8893133ed49c9b4ba7472bc80a4e5583ec2546838e261fa2cf9aee188a0b00bca45de05c4e969af0b6f222a9668c3a7fac0caadbb180c10500fc53ae8c9f56c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ksp-thesis = { - revision = 39080; - shortdesc = "A LaTeX class for theses published with KIT Scientific Publishing"; - stripPrefix = 0; - sha512.run = "3a250167d8810e3e81c5b6f86dad57e191a2a8387b5c7701e9b176cb007ebed79bd11867caa63e9cb9d3412fd59baeca7ff8e7589b11c4ef1144678552957216"; - sha512.doc = "ea4ff7ccabb237b113511b58ff767b494b213cec1382467ea8b95b72abe9c0d361f39781940c976075157bae93e8e32364f716cdba2a07b8a7d72c0970a31cf9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -ktv-texdata = { - revision = 27369; - shortdesc = "Extract subsets of documents"; - stripPrefix = 0; - sha512.run = "c2f3e86494993e6e56f131b9e7105ee2d15179b96580982ae7fba9e32c3e9889159ae767d96d95111f2eb052bd61f0c3c15406ae3af70b359e3b5ce081a6978a"; - sha512.doc = "d930db31105dbcfe3df4184422115d82fda7efa93d00eb8f9fefa0eff3893602fb4db9e7be26d2a44c0b3cb56e8e9810f61bc660c15e49c23880c3f0cd44025b"; - sha512.source = "1f7eebfcdbdeae66dbff4037a01173bc9383f75b5d7704755a10c442d63380d286bb4532546e036d5c558dc399defe3f9d3d035bc67a5ba90f8482e427b507ce"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "05.34"; -}; -ku-template = { - revision = 45935; - shortdesc = "Copenhagen University or faculty logo for front page"; - stripPrefix = 0; - sha512.run = "4603e59129f749b0eb065283bff9cddcafcd1096627f196749be09c19a4a79848564ee9343f14f31dddb2e37a01e222bf08531d5b3237bb906cf88efb427fdb9"; - sha512.doc = "6b8535ef84bd1ccf70d16f7098826b5acea602b22cd461df66cdda64c4afe36f9ef6c4386227c5317a31767e4694c388f7a2fd87fe8fe06697af4bf5202b29bc"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.02"; -}; -kurdishlipsum = { - revision = 47518; - shortdesc = "A 'lipsum' package for the Kurdish language"; - stripPrefix = 0; - sha512.run = "d7160d78d7f0d8d7771740f030cf1c76b57aa9ec2d179887fe4065337e35bef528b522c666eca0974aea6696033678dec5446a9a198fb139f2d2469c8cd47eff"; - sha512.doc = "6af516595f4cc5b090398078977bb37e97a5aa4b28a578c068931eff7d34fa2cac379b53e70c8bcf270c998fa6fbcbe354b56d0299657fcce9a4e076a87b36d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -kurier = { - revision = 19612; - shortdesc = "A two-element sans-serif typeface"; - stripPrefix = 0; - fontMaps = [ - "Map kurier.map" - ]; - sha512.run = "4f727e8733824e8c516e3ab1286cf0c834413a6ab52bccb5519c9a14a526cd3397a6d0a264679dc8b7d80cfc1d75ab11dcd2c02734ea63d5a2a5cebd3ea3c24c"; - sha512.doc = "7fda14c05f105d341a31561e761517ce12b3e5ceabc01e0c5c8552ddaf55be1863a22545b268026c844b23f03e8700350f0dede79ca8fda62e7a2672fa510407"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "0.995b"; -}; -kvdefinekeys = { - revision = 53193; - shortdesc = "Define keys for use in the kvsetkeys package"; - stripPrefix = 0; - sha512.run = "2a03840307805bd6fe30be9c108982bc472912c11c8cec25737ebc4042e48af8fe4f1a76124536874bea8c554f003a9c52b8a72d2f6900bc6872ffef8649c40e"; - sha512.doc = "c540045ec1c8bd7fea3000dd0ebc8adac64da7ccc24b0becb9b9c32c9dda6e5e11a77b57bee667bd2ddbddf347bd8af069907e087d543898a92ebaedf3fa4b7c"; - sha512.source = "0944a3f6f8e8cd8c189767944a74d5dbf09fcccd94cfdd2e67018f4a3542ce2ca4b8b7e3cb440345eb299584707962ed903f2fd8c832fad6cb850b29c7a99af6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -kvmap = { - revision = 67201; - shortdesc = "Create Karnaugh maps with LaTeX"; - stripPrefix = 0; - deps = [ - "amsmath" - "l3experimental" - "pgf" - ]; - sha512.run = "ea3659bf10ca08945ade08c52b4eba46fa01e28443bffd672a1614f917fe71f68a63d98568e23266d7becf6f6a4fed48f2d2367256a39e956bd2f1d40aff6f71"; - sha512.doc = "96f3738d31a6d9fe8f8f8624448749fea3aa2d6edac1442eecd70d570954692eb9e1756c1b4f4cb02a8dc17cde37ea0012824fccc5b567250c8ab6715150c796"; - sha512.source = "24103e29f4268d4ced68d5d1bb342c0e0155fe56e1ca07caadeda841795e44b0b246d2cc39a97f8c683a9ba71160ac774bcd194177352d6e29c079921c43c5b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.5"; -}; -kvoptions = { - revision = 63622; - shortdesc = "Key value format for package options"; - stripPrefix = 0; - sha512.run = "8e4189334b66ed38279ec0deebb12769453db802b1538e8ef47598de08123006a5f65b4b86c144aba5c7ef21abb95c65196e314e4b80e9b513103354e4b29619"; - sha512.doc = "864fd685912d7bdac610c16508efdfadf82c9c2efb8ae3c9b5a0d16c1dffd91822a1389109b3de1ce63dd74bb1aff5efa534c134ee06f1e61df9c867aeea608d"; - sha512.source = "38168cf3c486866ae79eac1708ed93f117187cd7404d852020cd9b70b3a518ca50d641db564d5d1d36b7e2a2c9beaab27e45abce93d01db4c37de7d9ad36bdf9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.15"; -}; -kvsetkeys = { - revision = 64632; - shortdesc = "Key value parser with default handler support"; - stripPrefix = 0; - sha512.run = "8acc4b9069c3baadf9a9802546d636fe8268afb97416b47d79b0a0306d90104fbb86b8ec1b4492f3134357564bb81eba1ae0e84a38f5b94a556de45525777431"; - sha512.doc = "127d4a03b26c9adb92254b08f0aac6039e39ff961539e253bccfdc1ee3598dd5e10608b8c8909708c041f5134c549f9af550bd1371a1e7b90003f77ef53bbf33"; - sha512.source = "696e78c295f0ac2a4d4c69e0d855925d46fee487da25ff238546033cae5e3b9042f66b924d1535ee41afc6142234fbef63ecf4df5b0c6c191b395109244e19e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.19"; -}; -l2picfaq = { - revision = 19601; - shortdesc = "LaTeX pictures \"how-to\" (German)"; - stripPrefix = 0; - sha512.run = "c6ea1d8ac189784d6581eaf9cae83a83beba9adfd32536f43c04633f7cc457353f0dbb69407332a29856633552910bfdd31cf85332c6dfb05da2cbab88ec67a2"; - sha512.doc = "e4202740ea2842296338e9d635b27c35801f4a5f8b21eb8dc0c1db572da0718fc5adcefc5c122793618336272606ec27f02f13825f8d2a6cf4b83583ea372288"; - license = [ "fdl13Only" ]; - version = "1.50"; -}; -l2tabu = { - revision = 63708; - shortdesc = "Obsolete packages and commands"; - stripPrefix = 0; - sha512.run = "2e3dc6f2707cc6b9ef6daba6f18099665e279b90ac85d6c391d33dcaf1511b1d85cc8348b259163ac6fc96879053364423510b199da3af81f1fcb2674b983db1"; - sha512.doc = "c6913d96a1821725c0d1a91cabf2db7a8afe692c1dbcd23113c3df63793653de48aeedf142d2dc81ec81c863d16583767766955a7ba0cba0de09840b9d3f74b6"; - license = [ "free" ]; - version = "2.4"; -}; -l2tabu-english = { - revision = 15878; - shortdesc = "English translation of \"Obsolete packages and commands\""; - stripPrefix = 0; - sha512.run = "66e1d62c731a021c1be2fb6e9e3034c7dec59edfd03dc2bb0042a37ff6f0d967e59a023fee994f45cf2c9b15e64445b45c48a207e21b7edb81d8a538b6c8eb6b"; - sha512.doc = "250ebdbd2a6dd3dd7d05c35cea0ea8fdb969bef983bc0a5f2c804129091f22ac0a499df482a1a990bf278ad94befc774d354341b30f9a0cd67539e1f63074ee4"; - license = [ "gpl1Only" ]; - version = "1.8.5.7"; -}; -l2tabu-french = { - revision = 31315; - shortdesc = "French translation of l2tabu"; - stripPrefix = 0; - sha512.run = "8478211e871e38765cbbd36f8f571e63b5cfb9dc652107a4a9178c11a16b419eba7314246878507f22bf7f66818f8c5d1516a527deda5a2dc6c30f9260f23b59"; - sha512.doc = "f489b0bd07b60797b53fc9010c699029dabccbf326767948dd815224f1c591cb59d6da7bbac0d0385ddfb6f0e885e187b2385bfcdbb88933588b06dfc34f640c"; - license = [ "gpl1Only" ]; - version = "2.3"; -}; -l2tabu-italian = { - revision = 25218; - shortdesc = "Italian Translation of Obsolete packages and commands"; - stripPrefix = 0; - sha512.run = "5b2348bed7ce47d7e2b8de6642e14b24ab440226d0de46a51eab08b3d11a39bada93d890e1ab9e2dbd3ce253b3263460fe7114baf9bc7b5c775a7d806c731ab2"; - sha512.doc = "c76981112631423d5d92ee9236d9b5b076e3d71086f9dada77de51362a5d5e01d82d5b018a68950c2b7f4b10eff1882d677243594436bae41bcc6ab996aa900a"; - license = [ "free" ]; - version = "2.3"; -}; -l2tabu-spanish = { - revision = 15878; - shortdesc = "Spanish translation of \"Obsolete packages and commands\""; - stripPrefix = 0; - sha512.run = "73cecbb031be2d421c25a7d6a5c04d08e30d83a88b4132682d434a879da915f1d4af56980f1bf04f7df5a3e881ecdd940a058a2dcf89b5e9f48c378eb322da06"; - sha512.doc = "a6886d54c0f5e1915ff9efbc4974ab1ef7f6dc026d67a0596ed47ac9e94da098e690bc70d5ed3e45a4d8cbd0f877f0cd6cd3a3757288dfc2df284e9c040b7c1e"; - license = [ "publicDomain" ]; - version = "1.1"; -}; -l3backend = { - revision = 70027; - shortdesc = "LaTeX3 backend drivers"; - stripPrefix = 0; - sha512.run = "b0fa82d3f6ad4ece3ce1e0b254ee52c97f30b143e458ad4a2f96d530f787650ae2cafa20801b865e696fb4deaed2fdba3e82ab938e09d563569ab13d6abb331f"; - sha512.doc = "68c69840f18a1f2c0442a008d632d5bd1295390a11208b8b94391564cdd0095aced7ecd3ae59035ec55faf267266115c76adf3839eb22f084ae348fd051547f9"; - sha512.source = "4fc5659fefbcdb53f30f6852b38ebe2e05238637ebbcf9885fef6496c5f4e54749f341bc492bc65c17e268c71bdfd6ee5add0bdcde9baf8e527ae48a4915fc14"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -l3build = { - revision = 69748; - shortdesc = "A testing and building system for (La)TeX"; - deps = [ - "luatex" - ]; - sha512.run = "32999f257488429d109eecff598df6f7cba7e4511aa2b9cedcdd7cdb9acbbb959f13a1d3253d73f75e02c5c91e29744fdd934230d186ae7e76c057e51145cce1"; - sha512.doc = "aeca997d50468e929d32c727606273fb01ddbce1fde2ec8f03f7e92f3f334ff7cf537432516b584f0420b9a93d7dfdf1f277d789222d9a3fe346009d2d46d72a"; - hasManpages = true; - sha512.source = "5969f5f85c71844c7d3abea497059f2bcf8b7bf96294ad746d2acfb876f3edc5e573aeee081f2ef45baee4eeef5465e69c1591412d45d2912f0391d6dfe35d18"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; -}; -l3build.binfiles = [ - "l3build" -]; -l3experimental = { - revision = 70027; - shortdesc = "Experimental LaTeX3 concepts"; - stripPrefix = 0; - deps = [ - "l3kernel" - ]; - sha512.run = "c25e7d14f3208e59bca4da786df9f63bf64455e9adf3517438e4065e99dc0e89fdfdc0325f7aa26aec7e9622b99029a370a5d0fed6bcc780a62094cf26b1a03b"; - sha512.doc = "4606266a1a8d5022594e7239821afc9d02b735b68bab4da681699851f748c0893763cb1943fe20eb7484f16ba955ee193e961b7f6235710f8d813198529245db"; - sha512.source = "834b404c08acc25cdcc1124512d527e7f094c18ca6283ddecf85bebe25ed8bbcd40f2c9dbf56c19280f8dc1db3a2f35a6bb996175ef2a85a15280c9be6cd3ce2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -l3kernel = { - revision = 70027; - shortdesc = "LaTeX3 programming conventions"; - stripPrefix = 0; - deps = [ - "l3backend" - ]; - sha512.run = "0908782021ed4318ee3d43eedd7b0a9b83621fc04f9e6ad3d540d2f87b24cda8bd69accdb9691495bb3f7320808b976d1b798b3c4c95778b9b2804f4401ff893"; - sha512.doc = "d57cc53087b1a164c9cf7586313acc176a4de52b3da6734df1e36603b5ccfdae9fb19542e46246474936363020ecfa65e12f024b1fb50097c3205bb6b6aa2961"; - sha512.source = "e9b7b0e179fb168106277716bc8519b6a39d8062e3dce86212d582d42680ff7bb594542210a8ed1ee969226485db1d4055df071da898234cfeb9edad92d675fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -l3packages = { - revision = 69992; - shortdesc = "High-level LaTeX3 concepts"; - stripPrefix = 0; - deps = [ - "l3kernel" - ]; - sha512.run = "906dd058afdec3fdc416e1a39e3cddc0b8c8079dea35bc1dc453ca4f287b849aef55b71bf9d8fac9a0c428d1ea3c6f0bccb0dfb9e895a2511cf31852024e3cb5"; - sha512.doc = "49e8d52bf64ccd22827ca9faf65dfbe3a4af727feb089509fb512aa5ca8263be2c10294485e6da5bdd6a3426215ec5c83a434322ead9604aa029414b1047cf33"; - sha512.source = "9afaf6e363b3a1a3402b64bbd6ef2236dd062c933583ab8be5f57217d90196b456aa477f5c9c830fe6fffcb79d2e0f2dc3ad51ab3c9cc764b61b5252cb211aa2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -labbook = { - revision = 15878; - shortdesc = "Typeset laboratory journals"; - stripPrefix = 0; - sha512.run = "92bd582cc729bcd3cea6979771e934d5a4a194536ff89a475309d3999ab0a2ab70d5ba5be6f0353e97498ab4e971e3209df9a3ca4ac99a8c9de27586a0f4a3b0"; - sha512.doc = "98758f4cc186df470e8a16b2e9365f3bec585be18c0fa8700df238befe052ad69b697357c7d89b19233a9cf2b308c29a54bf84215fa3ca8859111b0214971ed2"; - sha512.source = "23b9f993dbd431328590617c6715bb082cd1dac757db003b05296d318a002e85c8c541f5ce6a45703fa2cc481c7af98fe41e483c77b5025e50de324b68fcf525"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -labels = { - revision = 15878; - shortdesc = "Print sheets of sticky labels"; - stripPrefix = 0; - sha512.run = "b1cd175e1c5ece09926ad3fb5ef3b2dbc528435e26c81df563f674388083b481e6a6f072724254302c243a640960a942a6b356664675f4041c94962155f5ee62"; - sha512.doc = "0ac61f3a1ec027dd3631a4e6ffabdbf71ca27eb19c877a0beef8d7d991989d613769474e99770e9edc74dffc8b59981da8666e5dcb26450717be37b098a028b9"; - sha512.source = "debc22ed66f978aed88c84a0756677cc5faed39ef47ad37f8fcd4d6dcd02ce6b3a582ea6edc73ddd96ae04e7a50d43eddaba8404ceadb8c49439927f41f8c210"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = ".13"; -}; -labels4easylist = { - revision = 51124; - shortdesc = "Add reference labels to easylist items"; - stripPrefix = 0; - sha512.run = "1f792dfc8c3d51cbb3ec4370e4ea36612d503a9a92d088f0d8b03ccc78c480118308aa48e4dba66dcfd55c8a3442950242742eddd557bd6b44c925e01e361163"; - sha512.doc = "1ca630c5aa01e53d6a7fa65d9ebb4ccf5bc43af7d3cb66a6bbb287398e28764dae0b535eb4b821c2c406e22e239e8a88fc63a010d4e79977ef6e8cfd563afde2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -labelschanged = { - revision = 69400; - shortdesc = "Identify labels which cause endless \"may have changed\" warnings"; - stripPrefix = 0; - sha512.run = "9d40f477089880f8e0c61f95af1e94848dbac11a8ea5ee3a0c0c33a5883a8aba4c0471d2e23319667aa0dbf0699599372c8267588247809f316304e868ebaaf5"; - sha512.doc = "ca1f6dd7d4be5c9b130a17c75cfe927e354ffd5756bd893ef99c2f67dfef69a585e139d9d3b44e0828cf0928197bfcc8a909e5a32ca386380ca2a203a8ad0fee"; - sha512.source = "e3e5187658e31d0391910a1d4610cdb5572ddf13006423aa673475e165b04bcca56f6d324f0b383a6e7faf0a3263e68f5727c39eef38e903ee2950981c5b290c"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.01"; -}; -labyrinth = { - revision = 33454; - shortdesc = "Draw labyrinths and solution paths"; - stripPrefix = 0; - sha512.run = "06c61f5a0a2b39d644d5b741877f445dea48fefaaddfb7f60251ecb328f16ba2ec6f09731608ac5ca7b288fe77fc193984dad25b8f0ad0da5f35bdd43fb2f8ee"; - sha512.doc = "980a3bef8b8eb51cd454c835ba09205f8dedab92f747db9704c72d5433db75f68df298ee4ca06c6d68e0cb4c4b733c882d14bbbb9d877406163b0f95730a10ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lacheck = { - revision = 66186; - shortdesc = "LaTeX checker"; - sha512.run = "5a27d940fe59c61539d053bc6602bf37df1f538679eaf34d0e8b3ec3aed74ff619e4843ae2769aeafd10074328e9e27255376bc9e809d373d3913995a2a95b87"; - sha512.doc = "cf4355d56985f9335270e4280d10602299fadfd01605e83edb4e8b89cf0d91b3e8ca671257a9599d5f5578e7a85140d390edd40c3b109f77bb9fca5ba47ca517"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -lacheck.binfiles = [ - "lacheck" -]; -ladder = { - revision = 44394; - shortdesc = "Draw simple ladder diagrams using TikZ"; - stripPrefix = 0; - sha512.run = "bbe2f94442a4f308a416e9d849f9e4b8af12387e59e73931b563d5daaee312dbdf82a99f5122de897cb069a54f3bc13619e719ed717b38db4aebcac72c2c4f93"; - sha512.doc = "1cf2a2a2267e819c9ee723af9cf51d711f778c3583c859eb01f2b2faebfd0f7a6fc4f4ab6caa83a9df6a797175ec27d29f0debbeaeb39387954070623ab60b29"; - hasRunfiles = true; - license = [ "mit" ]; -}; -lambda = { - revision = 45756; - shortdesc = "LaTeX for Omega and Aleph"; - stripPrefix = 0; - sha512.run = "54da97daf172e3dae434e75425b80d1c617ddc9991f6ee804cd812e2c4bd70b49eb1a01318e243c10998870877d4f76e084b5ef0b0eaa89afa66f77a124a7c02"; - hasRunfiles = true; -}; -lambda-lists = { - revision = 31402; - shortdesc = "Lists in TeX's mouth"; - stripPrefix = 0; - sha512.run = "caeb3a547eb68d3e255d729cb6ec390cfaeb3bd9d4b4b6e8f877140fe24f4ee3ff0ddccd4107fa836faf5163d3d71209fed4a9e052d3329ff22a892d62b43b92"; - sha512.doc = "846c403f99194a19cd21e4d7367a1b43a8ad608055315bb36a1113fb37dd3d922dd8c5cb8474ae52ed3006be520b7e9023680e85f0dbb17f69a41c8c17e81a5c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lambdax = { - revision = 60278; - shortdesc = "Use Lambda expression within LaTeX"; - stripPrefix = 0; - sha512.run = "63ce2370079b4b2a286355d05d40771658e35fef085570aaf07d264d81571378a6d76db128e3fcea1c6c27632cb37f317ae28300059027979114e9eefcb5cf53"; - sha512.doc = "203a8ecde6022efcaba0680a507833ec56601887b47dbd563683195b828cd246d55cc9a44b91cb6ec2a3d0b8d7ce6d0777aa9519b93ca2b4b0f96f643df35dd9"; - sha512.source = "2790c5696eaa95b18c4c301d3a72d5aa0a72566cfebd514dab3546738897f2d0aafe55ef96ba51073fd07e98f0052eaca4cc9bd8d46f5fd9cf7b544b4f103c64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -langcode = { - revision = 27764; - shortdesc = "Simple language-dependent settings based on language codes"; - stripPrefix = 0; - sha512.run = "bc3e601701732d3ff533a7415446c2aaf7306732fdd6a8ac8aee6571cbdfc02b38f51fffde3a80cf5df6b0dd5e649971406f76d394500a74f1830139ea0bc0bb"; - sha512.doc = "7ac261071a2902d1e24cbe4bd43bf1baef418bdeb4d3c1dbee4db273d29918649f346e97b5ead3e3de2820110c0cd11dc58c78f765dbd07f7221f28ede5242a8"; - sha512.source = "60baef83840b42deb38d8ae66e18484e4a0431fedd23b1a8dc96c426840ee57f37ab613d93409c3ad8660eef2e759757daf39ec9aace30350623accbd21d2de8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -langnames = { - revision = 69101; - shortdesc = "Name languages and their genetic affiliations consistently"; - stripPrefix = 0; - sha512.run = "16d4b14025e142be2c0d21509041d99ee2eb9b4b765abfa3102cf79759c79e79f43191f8ba1fcea3d8c7269bdeb6feb0a9efafb1f1ea195b58ed97a307386bdf"; - sha512.doc = "0cc3548f9a640e3c6756298ff609bc5458f30fe096fb8557881356624dcfc6f81068af21731df3c5635381ef98c9b30c1f297213b8489e2bab8840c78f723ed8"; - sha512.source = "dba944b6330ed6ec883ae6bc0fddb724b74d5ea31d703cd89e85e9cf91642d9edcfdc4710e812bbf658774611bb29764fa8e2a3e1df678e70aab6fa160cad50b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.0"; -}; -langsci = { - revision = 70028; - shortdesc = "Typeset books for publication with Language Science Press"; - stripPrefix = 0; - sha512.run = "02e572eac6731aae4dbf7db5c1e4652dc34cea9dd6a43f0f63b7d7e4aa79113ca5ba4122758303d33c94f33e42513e4d7b51d22e4b7c17fa8b7ebacf8e5024b7"; - sha512.doc = "05c1231243e03156ffa01cb84f16708542598fcd5349c858913c2d0c6f0962871ee70034fe8c2255ee6338d7d659ef0262a408650a262ea8c6c1e8e173ca4e12"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -langsci-avm = { - revision = 66016; - shortdesc = "Feature structures and attribute-value matrices (AVM)"; - stripPrefix = 0; - sha512.run = "00cb724f7783d4f6d088f38bd60c816afe8c117b338bf3ae320e4b8118416f025b535989a48262d13d210087560ae01d850f2562f3d75db38210fcb6c012ab38"; - sha512.doc = "618e957df349847fd4828b07ad44e9a8247bcaba893704379471afbf9348c310da92fde003bbbe963b3249ba532982483ad7eb53950a5f39b27f9c17058f7bd0"; - sha512.source = "bd2a2411ad9e5d418f33b3c758bcc7f572aff8be2a8b757c247bf099d246f4b658602cdda97e12de0e784259e13b3e4840b5789baf35606ebfc3baf2629bea10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.0"; -}; -lapdf = { - revision = 23806; - shortdesc = "PDF drawing directly in TeX documents"; - stripPrefix = 0; - sha512.run = "10bb6891b82334f7dad4a1cf48c78b2b55c3b4a8939628a26576e99495f00e2bb8ee82028b13db4de6224e58e421402794feb2591842030cd47898506589ff6d"; - sha512.doc = "6e561e0d513f7b18e4e40d11fc1f077a061e6cb08ed072de1d186bb86ab1fbd3905af6a79f9dbb0c201e437a1a8716706a83f1709d580c293961ae454699c9c0"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -lastbib = { - revision = 70377; - shortdesc = "Record the number of citations in a document"; - stripPrefix = 0; - sha512.run = "e2648c74401833e4be62ba616e146bd662626b1e6d9dd3e6fb3b1c371634e3cc022dbd1b4f670d957d239ca9ae776dec94ff63306d54b9dc571ab6d701850c8a"; - sha512.doc = "45ce82d5721d79e26e1d7f034764b526315add13e6943fcfcd6105b9040b7ff4951e7c8482be15d2366880286e1caea8ef47aa8a6fce92941e9f19be1e7003b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -lastpackage = { - revision = 34481; - shortdesc = "Indicates the last loaded package"; - stripPrefix = 0; - sha512.run = "f4d30e327704b32afe1bcb81023a247095203a9b47357f9a6dc4b631f4bb669255ba899cf1c8378b42ebd16f2608d8a649a0999f26e3d05c963eced1cc955ee2"; - sha512.doc = "f31731b5a93c154db123e66699ac5175fb63b965522bb511d344577645f9b8ac6d78c6a1a108cad8914b1c01b1c7a6e656743b075a03322c306aaa5417f62be2"; - sha512.source = "f894a701e4f30797039bf60e98f9f9e6cc730a167fcccf88075802c0a5a0244eefce9f854b95207b7a0714984592030965f818ecd72c98af199c07f3400eb74d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -lastpage = { - revision = 68557; - shortdesc = "Reference last page for Page N of M type footers"; - stripPrefix = 0; - sha512.run = "058f7b1e73340b5290beb22054c1bc0b97cd64a3051e90a4359ac7916ba033ce0817e6a1139a8b6b301bc0f68176bd882e8bdc7a7b59a719f0d090dc7cd76242"; - sha512.doc = "e72576d702e2e76242c18d645351568f4adaa468b5946fca30c9ca7b9d2c36a703ad91df3b898089499c0127aeeef79e904652f35ab6bf98f5126ec6c387baa2"; - sha512.source = "3b0f6326e815812644493e1a0ff422520e9e555f87f93d1c3f31a3b4a1250254ff0f4161e36785cdefb09833c9a3ae93e005cb4d5a4c3157372f79e00e23a779"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0e"; -}; -latex = { - revision = 69443; - shortdesc = "A TeX macro package that defines LaTeX"; - stripPrefix = 0; - deps = [ - "latex-fonts" - "latexconfig" - "luatex" - "pdftex" - ]; - sha512.run = "b6696892356c87acc788255f0023f081078878f4f76408be138b8b9b62f0fe01f8dd8bb68c8049fea319b41dfe4dafadb3237869fcde797ff5580ba94d68a473"; - sha512.doc = "d599e1fb7c4433658aa65df89ca318467b3c6689d3e4e2d16bddd9397968888052937900d382fdd43fe627813e40d242d7728325a1bc15c8ab5658fd6ea4c912"; - sha512.source = "4b156445e50bd24dc3ab2f90088b0ae5e25930818fa14b7db3ccc1aec4642cb3172f07c57bf0dab3e17f91cf22e1b5d5fa08e705e392635328fd366514da7a24"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2023-11-01_PL1"; -}; -latex-amsmath-dev = { - revision = 68730; - shortdesc = "Development pre-release of the LaTeX amsmath bundle"; - stripPrefix = 0; - sha512.run = "e36a09409559a415c14fcd5e5aa8afdf268ac8b099814a1eb6fec88aeaef17ed2bfc1649b1859d8f5d4c90b25af520028c184a01866e9cc25bfd5ad7e945f84a"; - sha512.doc = "609a298efbf504274793777b78af7db57b3e161ca8a49abb2cf9b095162a93c2eb0b796f24183d512f4ad30375401a56c6e238b1c18e61038b51bdf3513542a2"; - sha512.source = "abd63e1e75b661b4301e90ec60015073e42f2686f2e639e2c264047c3d6f071c10cb933049baeea3b49734ffa0596253be65644d8ad54253443e8ba42d09d30a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-06-01_pre-release_0"; -}; -latex-base-dev = { - revision = 69872; - shortdesc = "Development pre-release of the LaTeX kernel"; - stripPrefix = 0; - sha512.run = "d24b56bb77ada497449c501c549cb6fd06246f899d4f3a2d979292ffe85f80f532c5cbb8b3e49b6d1bc0f8098d56c34e87f15e8123247ed7af59c9a33b815a64"; - sha512.doc = "4ec2405d8d3e3c92666bbab01cdb065b174f82bb9c3b91f0bd7af23dd2fe3e8cda98060cf1e08df349ea32386da911ee4c7a28dc29bc52ec6ac02a46cab98b66"; - sha512.source = "83f7103d961f186fadd6feaf63cfb4f9fd6cc2aae0d5c04b6ffbd0c0eee2d51cad4b2458491cab7760a29155682d806fcc3c1ca1dc8d788ad248a58dc071a361"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-06-01_pre-release_1"; -}; -latex-bin = { - revision = 66186; - shortdesc = "LaTeX executables and man pages"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dehyph" - "everyshi" - "firstaid" - "graphics" - "hyph-utf8" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "latexconfig" - "lm" - "luahbtex" - "luaotfload" - "luatex" - "pdftex" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "dvilualatex"; - engine = "luatex"; - patterns = [ "language.dat" "language.dat.lua" ]; - options = "dvilualatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "lm" "luaotfload" ]; - } - { - name = "latex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx *latex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "dehyph" "hyph-utf8" "latexconfig" ]; - } - { - name = "lualatex"; - engine = "luahbtex"; - patterns = [ "language.dat" "language.dat.lua" ]; - options = "lualatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "lm" "luaotfload" ]; - } - { - name = "pdflatex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx *pdflatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex" "dehyph" "hyph-utf8" "latexconfig" ]; - } - ]; - sha512.run = "4067db41ccc58892a4683c2ce5e15784e9aeebea88a9d9302dffc36fedf48f51c469bb1e99035ebafc58aa0a8a442c12b06457898a71e492ce778e58122a6a62"; - sha512.doc = "763c7e3df586a275b2a756b591c96ae98ca1a2b5f0c694e9b502d55e7c4a0ad1d40b15ff4987e2be6a06f2f11afe99a4f7fcace22c45877dc54741383a55df25"; - hasManpages = true; -}; -latex-bin-dev = { - revision = 66186; - shortdesc = "LaTeX pre-release executables and formats"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dehyph" - "everyshi" - "firstaid" - "hyph-utf8" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-base-dev" - "latex-firstaid-dev" - "latex-fonts" - "latex-graphics-dev" - "latexconfig" - "lm" - "luahbtex" - "luaotfload" - "luatex" - "pdftex" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "dvilualatex-dev"; - engine = "luatex"; - patterns = [ "language.dat" "language.dat.lua" ]; - options = "dvilualatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "lm" "luaotfload" ]; - } - { - name = "latex-dev"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx *latex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "dehyph" "hyph-utf8" "latexconfig" "pdftex" ]; - } - { - name = "lualatex-dev"; - engine = "luahbtex"; - patterns = [ "language.dat" "language.dat.lua" ]; - options = "lualatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "lm" "luaotfload" ]; - } - { - name = "pdflatex-dev"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx *pdflatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "dehyph" "hyph-utf8" "latexconfig" "pdftex" ]; - } - ]; - sha512.run = "56988a74dc1969af32a87890a930eae5d1c41cc7d78d84d5293836c139885e1bca3103304d0083583e0a9d9ad1ebd76b11f86df67887de6ebec7b36137755075"; - sha512.doc = "2166531c752eb0295b643f0e20f518011d2c3063a9a5de5e7e913b2cdf8efcb382a9460ef95a711420e9a9f49fc2ac77a538361c4cdc7d730af5acb43f15f2ab"; - hasManpages = true; -}; -latex-bin-dev.binfiles = [ - "dvilualatex-dev" - "latex-dev" - "lualatex-dev" - "pdflatex-dev" -]; -latex-bin.binfiles = [ - "dvilualatex" - "latex" - "lualatex" - "pdflatex" -]; -latex-brochure = { - revision = 40612; - shortdesc = "A publicity flyer for LaTeX"; - stripPrefix = 0; - sha512.run = "de98a91947d5cb919b6a2c6e6a87f63499c8c5975992d039bb8d2a4662ed597cbdad99668b006cf775f71af936e5ad285958b48b57eac61783460fe37ed76298"; - sha512.doc = "f057b86b61ee1f50430cdb83a56c27896e052047bbc93c4f09884b7d76f16f73cb1b570341faa2b8c771c0d42bb4d6450b8715c921fe866a57727eb4ffdd329a"; - license = [ "lppl13c" ]; -}; -latex-context-ppchtex = { - revision = 66687; - shortdesc = "Legacy stub to allow loading pictex as m-pictex"; - stripPrefix = 0; - sha512.run = "6ab0e6d04cbf49cc78ed8f45d65837055d73f55ceea9014e5178bb30f7a322137856d187b7e0808f08df48408b57635537bd8dbbb1157d1508728aa2bf7e1190"; - sha512.doc = "130b525dbf4172306b9bf6b74defccbaa17ab1871d044ce693ba2c0ebf568adce98eacc6cebae94bca425c7b8cb7bd2860747768a03380018a9abd33175786c9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -latex-course = { - revision = 68681; - shortdesc = "A LaTeX course as a projected presentation"; - stripPrefix = 0; - sha512.run = "533e270cadcee8dd7510368c596272d9e877c753f76246f11d8b3db6a3eed96319284c15a872d1fcbdb0557c7a267eae4beb9cd2d618f98759456357fc2b6087"; - sha512.doc = "56f0cdd7a50b396657d60d3d10586e0472e18f3b66005df08746fd93cd481742bec1f1e820248185f9b25d6b58251dd8a4715231272324a5208e25335ede85e9"; - license = [ "gpl1Only" ]; - version = "2"; -}; -latex-doc-ptr = { - revision = 57311; - shortdesc = "A direction-finder for LaTeX resources available online"; - stripPrefix = 0; - sha512.run = "22017cc47746d2e14436915a0d649b31050debff1827cca44a3ab7bf9b240f40450d445a8eaab811b8737f589839ab7f2078aced47b65b320237ddbcc443b99a"; - sha512.doc = "c7d7217a9136785cfd6ddb000e51d455e7482bfe395a9131329767bfffc71f918c2349b1426b615a6740263c958530c68c044ee3ae78300a004a8acf20bd8bdc"; - license = [ "publicDomain" ]; -}; -latex-firstaid-dev = { - revision = 68730; - shortdesc = "Development pre-release of the LaTeX firstaid package"; - stripPrefix = 0; - sha512.run = "837b36861d1c5c42107ebfca9de78df1e4426b2466c001532ff3717743babecb8f574c5b431cc821f27a8cf20e88fa7e6dda5633fa8fac28084007183621ac08"; - sha512.doc = "2f0676b179ec977da7d91135d2e9330bc37a67eba038754998445c49523d1630c34360bb857c108ab47a185a409d3924039d7b03f3b420d74c52fc98606ff408"; - sha512.source = "c783d78612a76b55f49828ccd3f719ad94ab3a2a3d8b936e2049322c0c5fa773b8db76bc1a8d471d443bf3bc0d7897df7db628866287b64ee281764ae258f839"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1b"; -}; -latex-fonts = { - revision = 28888; - shortdesc = "A collection of fonts used in LaTeX distributions"; - stripPrefix = 0; - sha512.run = "98549dd0c7b29511abc3a1a6b6803a86af0b48121d47e292066f3b67e4b5847efbb7025352c1ec996778c7ea3a5cba552385e9b4dfd6ab005d716f503e37a26e"; - sha512.doc = "4d3162776a17f31caa8e6a0fe05eed9447b681d77e653371cb5fa5d8dd2f01bddddc9f95ca916f233c11f8ec7d15e02fe575dc953fdd18c34ba877829a142bea"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -latex-for-undergraduates = { - revision = 70210; - shortdesc = "A tutorial aimed at introducing undergraduate students to LaTeX"; - stripPrefix = 0; - sha512.run = "bc5dd03127625a8440ce605d8f4e8de65615f330dc9194e0e096175095263eec3ce2790dcccd96d32118492fa71483645510675f4868580fa00daf95f12f1aa1"; - sha512.doc = "b21b7a6a759eba0ae086ba3492266b9784aa651a727b22b671b3e3668197727118f35095245ad8d4b99a40f6c5c00500f7791b3cb6a6237493b7656a17abdf3c"; - license = [ "publicDomain" ]; - version = "1.0.3"; -}; -latex-git-log = { - revision = 54010; - shortdesc = "Typeset git log information"; - sha512.run = "15994c6eb9ba1b194df270c68a3d74ab3db11974875ce192559182b2dbfa9b308d598056a3145f2cc2f6718865a5b140ccb95dea22a9e23edee527e5b86362ff"; - sha512.doc = "52bc94324c64caac9a5b25b49c9ea01b8560433d640646ee70830d27637482cf50da95bbb86db93006f2be4ab9f5f79fa144e4b631d62c05f0a11ab45e639cbf"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.0.0"; -}; -latex-git-log.binfiles = [ - "latex-git-log" -]; -latex-graphics-companion = { - revision = 29235; - shortdesc = "Examples from The LaTeX Graphics Companion"; - stripPrefix = 0; - sha512.run = "3148a646539db3622096f9aeefd7ca2d44b0cf83cd454673893978897d07cfe7107b8f5bc745bc6b60734d4ad3429be1ffc2edaa8c9dd1721b41bfe913fa0dbe"; - sha512.doc = "ab9d885c811af3964e8cdd8576349059bd45d660e6b9a7e931697f7c7fa5282c725e044817de8f2648ded59519d1592945e0804ba7cbe0054ce2bd4d44606af5"; - license = [ "lppl13c" ]; -}; -latex-graphics-dev = { - revision = 68730; - shortdesc = "Development pre-release of the LaTeX graphics bundle"; - stripPrefix = 0; - deps = [ - "graphics-cfg" - ]; - sha512.run = "a6357498f8bb7b6e47dc78f22163955e6f207df84a5270bec98d003ff7c0c31d82a13f3ca8e6d1242721bbeee6d5c8bc4e6bf744708fda9a3e5e9ebe30eaf9bb"; - sha512.doc = "0edf4d8f6b4d48df6e5f46ea5836a30f7608701a0470fdb713333b4e17c0348bbbde8df2e9dbfafb8bae924eb70c34e351aabe4a0e460821790adfa0ee52e384"; - sha512.source = "f2d2b4e1c67d5159c14426df49065edd0605a1db88ee0c2d72d582edab070c6f8f11bb517f969893761c0c22935df69e5b9dc6d981e0f6136326277e1e2be927"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-06-01_pre-release_0"; -}; -latex-lab = { - revision = 68720; - shortdesc = "LaTeX laboratory"; - stripPrefix = 0; - sha512.run = "ede4176b7ca60193acd644f572db5d1611a6940027f7641ca755634401b19e20eca65915d57e6a0859e465e818d6854ca98dc16106782bee0f817d776c056a10"; - sha512.doc = "eda6ca871645fd6fe60424329e4c4d8d9817039d9cc30bd6f710c30675a3e8f0b7f7523b081b871e9e5abbf62a0ce0e22854aa443684818771ce2022f4887e7e"; - sha512.source = "acc092bf6cc685cf8c9d5a0cd5af47022c3936ff0e509a3743ae22ab888daffd0c1b7b657c5a1e1019232c4047e89626963ec1784b406ad16d3dd3f10f6e19b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -latex-lab-dev = { - revision = 69872; - shortdesc = "LaTeX laboratory: Development pre-release"; - stripPrefix = 0; - sha512.run = "7812684eb2629b139e5871b5b916e2344b85d8bb88bb983d57d292d9873147d51b60177733e61180d86b95d185e456710acc5037f56fbfeea52ab1d3e04433fe"; - sha512.doc = "7750fea3ff6ed1352db54674844367b3ecb400cd4e306e3c130acabcdbe59b3abdc7508dd12e5febea2381cd74407aa3cb3bcc25f5d7b34401e75e1eebde2529"; - sha512.source = "d1ea2349dde66988f51b9d1f37875a2d02a4b44499f3551152ce3bf38460d31e5cbd423e17ac72dade53eaac00720d547b460bda25f29821875605b02c51ccd0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-06-01_pre-release_1"; -}; -latex-make = { - revision = 60874; - shortdesc = "Easy compiling of complex (and simple) LaTeX documents"; - stripPrefix = 0; - sha512.run = "de9a924c38afe1abcd0802a17de4c5fd2cb444809dc81e00b6964cf3d0c81b8d8796a1bfa804250701ac4d71f42bb9d2a9ca1ec0740f59a8feb329d26aa605e3"; - sha512.doc = "aeef6568aec936c43dd0bfada1245a0d353faf2329e6e66e9d49ca8a1a2f9eb738ab1667934cd0a160e074c2e2da85aa8b068bed0bdb1ab1b944cf62f42af087"; - sha512.source = "521a553ebb556cb6df809ea5f830c926101dcd06f147544c19476a0b0ba82154c3b0316d795f4057a906370972648b485a96dd7386c8e6541160af469a74487f"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.4.3"; -}; -latex-mr = { - revision = 55475; - shortdesc = "A practical guide to LaTeX and Polyglossia for Marathi and other Indian languages"; - stripPrefix = 0; - sha512.run = "eb9b8b12f15a8662eea0e3df907264093074cac1d8f8e1f027186b35f3f3318c4b8c120d261be21350fa660b51a5f33e196d957864b0676395ded0f70940464a"; - sha512.doc = "51dcfff4a8df46a8715d07d2528d3a1960479ce4bffba9b8eb5170d5d6307f0c776e197bdbe788d316067070c1d5f5d1382c32430e94ea83664868931a844e52"; - license = [ "lppl13c" ]; - version = "1.0"; -}; -latex-notes-zh-cn = { - revision = 15878; - shortdesc = "Chinese Introduction to TeX and LaTeX"; - stripPrefix = 0; - sha512.run = "5e5b3bb01456fec3dc22cb5d0d4f521b4d4f5f8f3119fdd76ea9cc55a70a2ad8a2b72e36471894ee448c1d40d887d20ac8fda39c4a3fe2cd111d2850eec12071"; - sha512.doc = "477df31445a2991db3c2b8cafaa97662d722f3f7171c2f756cf025717cb3b896c1773adadbc42c22cb360f7542a0e658547f15cd71c54e9b79f76fb1e2097e90"; - license = [ "lppl13c" ]; - version = "1.20"; -}; -latex-papersize = { - revision = 53131; - shortdesc = "Calculate LaTeX settings for any font and paper size"; - sha512.run = "00010f764235c6d9e4d6667c8c8b9f0ec6ae4b65afb53109f8179e0429d4b3787bd6b0985cd511f770cd74512483d1077e0f42136fe7ce1871984b372f2f2e54"; - sha512.doc = "8ebddd884e3e533d06332f2d6f8657ed54c9c376b3de68c7e7652f3b2835ec6601f5326ea70dc830b645440f0bd9ba2281e4f71a847946bb595771c6a950c0a6"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "asl20" ]; - version = "1.63"; -}; -latex-papersize.binfiles = [ - "latex-papersize" -]; -latex-refsheet = { - revision = 45076; - shortdesc = "LaTeX Reference Sheet for a thesis with KOMA-Script"; - stripPrefix = 0; - sha512.run = "ea6751fc09aada1b8ebcca08ecdb10279b6df881b3b373b04e8c238609de92b4cdc4f1e7321f178b15637c0b712e9781317af07030f2f9297a3ce23a5f46cb32"; - sha512.doc = "77149dabb1fe5c4a46591b3b307d02b2e2b33a07267afcdb44b77a2a823dcea9ea76b4be5ddad530151b638cfbcaf5d87ed0fed59a9e8ed99acb0895717bc71a"; - license = [ "lppl13c" ]; - version = "1.2"; -}; -latex-tools-dev = { - revision = 69872; - shortdesc = "Development pre-release of the LaTeX tools bundle"; - stripPrefix = 0; - sha512.run = "04828515f6eb9382d3c3d9c2ae8fa52bfe42fcb511b36840add979901b4a7535ec5a40d75113f0240299ec3bb07b59fc54fa65539389467f402a7ff15714ccf2"; - sha512.doc = "7136ae8556c19d2eaab7891981cb10b52e4538d10fd82073843744996de3ba2919b07ca63d5fc2100d093b9e9db862dc1a4f7d19615f96d164aa2431ee2f9b8f"; - sha512.source = "2073e38c2dc81da1d79fe6567bb99cc5f2649a8352b5e4164ae21cb0efa9d7697a1e9e8e71b5d3ae636eb215ce14c5b202cca88ebc6ba18c15524d0f566568b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024-06-01_pre-release_1"; -}; -latex-uni8 = { - revision = 49729; - shortdesc = "Universal inputenc, fontenc, and babel for pdfLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "1e98eb60547932eb218f30cc713b94e8c7ee5861e66cc600b01f577a37e318a5b440b65c2aef1c770ef94bb4c4cf86d5d1636943de60f78049d2286a92ba5d81"; - sha512.doc = "201de55826ce4911153f079e1107e2f4d2399d3d3cca95bc669cd958d09839ed7de778d644502cb6af8429818834027c9d3f3255fe58f95c985d1a96e4682f22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -latex-veryshortguide = { - revision = 55228; - shortdesc = "The Very Short Guide to LaTeX"; - stripPrefix = 0; - sha512.run = "5c32c836c5ada42858de4579167848ef51c4b7626601fa95fe56175f406cb747bba5015ffe369ebfa93e789d29ba5329e1ab3e42262699695fa59b6cf047a581"; - sha512.doc = "e2c521e768ea425312a400d88c893404c0f86c5886f595162b2a03493836ee1a949e2feebf8a8b3c9d6450630ff644b8973374f9963c67478af29e2a432d2f9d"; - license = [ "lppl13c" ]; - version = "0.7"; -}; -latex-via-exemplos = { - revision = 68627; - shortdesc = "A LaTeX course written in brazilian portuguese language"; - stripPrefix = 0; - sha512.run = "d98f99d1da5b8192cfd824829ec31f09f3178b0682885e5f497203c6f3f73bedc0a4f0a766ccde2f4f8a0e68b231f4d1213b3586fd1093588f3a9312716f072d"; - sha512.doc = "605dba889bfa1ad23b2990b2f0f40db42947b718cd272d8f61243818d40ad9a552fb61f87ff4e3844e580d3acaaa9842c2484c62c5c5dfb4450755db3fb02758"; - license = [ "gpl2Plus" ]; - version = "0.5.10"; -}; -latex-web-companion = { - revision = 29349; - shortdesc = "Examples from The LaTeX Web Companion"; - stripPrefix = 0; - sha512.run = "5f45c7f74a0e97b938009ada69146875e141edd556165b62185553b0ce5f590d5ca6f93a875dae1c546ebc788156d5cfc69c46535000adfe6933abe79a2fb06d"; - sha512.doc = "a972860f65d763c6fb45e9726e5dd7b8234509b90634f45b8b25e090da92d0ac577bf8b33ea7b0a0f91e4e5639bf62c07086dc36708ae697c1e16e644acc83f0"; - license = [ "lppl13c" ]; -}; -latex2e-help-texinfo = { - revision = 65552; - shortdesc = "Unofficial reference manual covering LaTeX2e"; - stripPrefix = 0; - sha512.run = "34b91b19e1b71b1df6d0f57dda4d6976a93b16afac259656c9d4e331b0c23a9b0550563c1a10dd7a95640e3740b3b15597c1023f6c2721bf2a64800466b9cd09"; - sha512.doc = "d4584d9259f3c1867e7445d4a219e4decc5ba3b305e20d1e780180a47fbad8df4d55552726d8288e78c8388823a2b652b81080c8139b00f4ea3ca10e5789375b"; - hasInfo = true; - license = [ "free" ]; -}; -latex2e-help-texinfo-fr = { - revision = 64228; - shortdesc = "A French translation of \"latex2e-help-texinfo\""; - stripPrefix = 0; - sha512.run = "96366ea420532f56ae076da48f5402c2ee78ca27fae8180795d6cd18aae118a8c7060208ff43ab64526addcdce9e4d90790583842b20c751f37865cf616e04e4"; - sha512.doc = "52f6aea9ac2393a73d7dc7ce8ad4d6f08e0a224397199d5def97412502026717e8cb966552368899c50718a1049b1ad4610d2d23150a45bee55cc2c776003db7"; - hasInfo = true; - license = [ "publicDomain" ]; -}; -latex2e-help-texinfo-spanish = { - revision = 65614; - shortdesc = "Unofficial reference manual covering LaTeX2e"; - stripPrefix = 0; - sha512.run = "870c8f3af54ac42df5f4958669cf730cd16084c985f0b377c5aba9d526b8f7be14b367791d2c0a1f1a715739390ab63777ff2a92e7f9aad09897c8bbecff495e"; - sha512.doc = "4c751a7305e089dab61bf991436ab1e612cfca0d17e416e21d659c04ef32eeb2d14dbeb09d63649a2b79f842766a218c43ae2c6fbeeba5549f039f991049a79d"; - hasInfo = true; - license = [ "free" ]; -}; -latex2man = { - revision = 64477; - shortdesc = "Translate LaTeX-based manual pages into Unix man format"; - sha512.run = "2617f6e8059f30c0098ea896cff69f585ea2ddbd3bbbd8066e7296dd833d3a246b8fefc0af71a92abf7e2051c754c0e3e6098175a4b181780563416bc9146b95"; - sha512.doc = "390666cc56ad70342c9a24ca593fe65b3760674a882ed8bba383d193f2578285727a085f823afc03fa0dbc9966612caf9a29222fd2a9f39214f01aa268acdc50"; - hasManpages = true; - hasInfo = true; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.29"; -}; -latex2man.binfiles = [ - "latex2man" -]; -latex2nemeth = { - revision = 65269; - shortdesc = "Convert LaTeX source to Braille with math in Nemeth"; - sha512.run = "f2669a9e58857094c922b968f337e2cb2cf475b07811d53c61a8e0b4dc8bcc41d95186940361676bc62c0f235edb4fe7a7c0d5ee0f6d74c541d1108960e18e7e"; - sha512.doc = "7fa7ae1c628e29549fc3cb2c98164e27f60cc0bcbf14e26b7a325aee313a5f41c3144d5adf2993c20999016f4798dcd436d96c637c4258ace0efc3bda4a54a43"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "gpl3Only" ]; - version = "1.1.3"; -}; -latex2nemeth.binfiles = [ - "latex2nemeth" -]; -latex2pydata = { - revision = 68919; - shortdesc = "Write data to file in Python literal format"; - stripPrefix = 0; - sha512.run = "7da5e33f287bac42a378bf33073ec6a982dff7000097fdb865844299efeb9e7a1647ae49bd3332b036755dd4da6be34fbb197c8148d2c2af5c60b7580d0420d1"; - sha512.doc = "8d78f4bfe6ddd1742baaa792842ab9ada5cdf4e1eeb3fb3496780e3a31120406d56be4be7cbbade5815f72cab57b76a5218e3bd86ef4593d1fc75fa2196e7212"; - sha512.source = "fe7111c44158c400af7d0feda67e2bc8a1cc313ab8bca7c101ed75e57ca1a00fe434232ad4c5b78a19fad388d8a8cfa0af6cd53c7f84b809209d7bf955f8e05c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -latex4musicians = { - revision = 49759; - shortdesc = "A guide for combining LaTeX and music"; - stripPrefix = 0; - sha512.run = "a37c75d55857e9680b8e4b0f59f1889f3b5198477212ea531aa6bbf9ea11dbae06fef7fdba9e706f016c6c0618eebe4ddb81ba73b48979683a22592a0adb119a"; - sha512.doc = "738c2c467d9df87cb1eccf0442b5c94a97a3c4c2b329d78d80b05d2adf9e3be11aaf2fb407ebc29f07e6455e6533464d981ae65122b080aebabdfaa29cf71b61"; - license = [ "fdl13Only" ]; - version = "1.0.1"; -}; -latex4wp = { - revision = 68096; - shortdesc = "A LaTeX guide specifically designed for word processor users"; - stripPrefix = 0; - sha512.run = "0111de0987679fe40b14a4ad0dfa098fef36acf15e099f932e75121c26bdadc2e493c77b1d5b4208e662f2e5893955cfad639bf018d48aa5e7a7c77e5d009c6c"; - sha512.doc = "eae8e0b5e4fe28311508b09b4b8b03ac31469e32772427c5d016bf43d48e458fea06f9dcf9ed696e1eaaea7bfd6b0ef4661d8b84c2bdedec44ca35c782079bf9"; - license = [ "fdl13Only" ]; - version = "1.2"; -}; -latex4wp-it = { - revision = 36000; - shortdesc = "LaTeX guide for word processor users, in Italian"; - stripPrefix = 0; - sha512.run = "691d8936d71ca825da3a5fb193f8f7067480981b1b9bc93100f54834a7f9500e66785a216110cb1eb5cdd41b538333b693dab8e0e855e546a3eab90c43c48630"; - sha512.doc = "c0c527bc7e9e71038316be5c6a57f4200ed69e7ed6fa0f066923cb14d14e20e90213cf0b989d3ba746bdb3e2263cf1daba56db3073017a0d7582e40640d35fd3"; - license = [ "fdl13Only" ]; - version = "1.0.10"; -}; -latexbangla = { - revision = 55475; - shortdesc = "Enhanced LaTeX integration for Bangla"; - stripPrefix = 0; - sha512.run = "8b61b8aee0e95339b356fa85b9bb7ad3833ccf410267eb31a84a811c25c4e34ac350952fa26ed6461468bfeca37121e809ba560fbed7a0d8e747613708ff7795"; - sha512.doc = "8d8c686edbf3e70e70fa577c7d09f2e3d3f1ab938253ed01892ba030be0ba948bba48d67503a6f215628e03160bb32878f868d8a72b5a0d65ce3400fb9011ac9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -latexbug = { - revision = 63596; - shortdesc = "Bug-classification for LaTeX related bugs"; - stripPrefix = 0; - sha512.run = "343629bebcc022be463cfb13e155c372436b6138a3ce641ddb7ff17286788b6db438d040a8fa76bbd0354b880e5455a1aeb5060202b99de2cff1bddafdafac35"; - sha512.doc = "67209c3221ddf31ea4ba6a9678d340a590feebbe4965750a65037e3c8546d4a3db0b43d0ea5fe178eaa5e4d1500304b2a3fc04bc8e65781da2a5bf22e702fd0c"; - sha512.source = "28e88cad4c3b0e676e95d3b4be46285a73036af1662156d298bc288cead111425d956352cb94165ff515d5b725f1aced863e6cca917d6cb100ca71affb5da7d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0n"; -}; -latexcheat = { - revision = 15878; - shortdesc = "A LaTeX cheat sheet"; - stripPrefix = 0; - sha512.run = "530041d286048809968d91b20fd40c5ec41eb440fec25bf08f92af0f0fd5e1481a1344ba3c659da4477de353d222f3cb160d75eea2241ccf19b05e63e059ed6f"; - sha512.doc = "28abbdc3b53c245b0cfb6ab68549661a72d37df004a5c760f5021e91b1df892b02872c7e20f328c7dd4624edff96f3b1fadfb46cf35d080c6b7c5635dc36adfc"; - license = [ "lppl13c" ]; - version = "1.13"; -}; -latexcheat-de = { - revision = 35702; - shortdesc = "A LaTeX cheat sheet, in German"; - stripPrefix = 0; - sha512.run = "84de8075c1ba86467c8b34ed614462953ca8b9a237bb84453b2f9a1482eebfdb628c3e460d38da126416cc111387d68d3f479c5806ecbf06d079e47c35b88ca6"; - sha512.doc = "dda8002178b55e155f7ce1f49f57f928b6c5097007daf36aa473c1a2d07aef4c3ec5e1c238537c0531731af0cb0d51804b0c0310be63954f112f266e737c7d37"; - license = [ "lppl13c" ]; -}; -latexcheat-esmx = { - revision = 36866; - shortdesc = "A LaTeX cheat sheet, in Spanish"; - stripPrefix = 0; - sha512.run = "ab9965189096647e8af9aa58a937fa15595bed32055b3819bfd12334cf60e01d18b12563de8169ea28e3c0a7768864e51631c29bbbe47d45e09ffb2b87c5d524"; - sha512.doc = "a45f2db2445e2daec8b31e995669a189c1d201f457e06de7fc2a85ad85686b31fcf70040e7840e1168e29b2e5caf796c45b6ce934780fa5982d0750438263606"; - license = [ "lppl13c" ]; - version = "2.00"; -}; -latexcheat-ptbr = { - revision = 15878; - shortdesc = "A LaTeX cheat sheet, in Brazilian Portuguese"; - stripPrefix = 0; - sha512.run = "e50cd94941704f1a620a7411624ffd61d47aa4ef2944220ef0bfa9fbc428d8ea46be17bb3b18b30d645dcddf3c8091dafa9532f809dee7af230e2133c86b9bf5"; - sha512.doc = "00369fce725567a85310afd3063a4a20e670d8a0c57ef7e4515579ee0f91157f44bac2471b076c2ba51253e2c172447cc4b915877d80b0c43874c4e125f5f9d4"; - license = [ "lppl13c" ]; - version = "1.13"; -}; -latexcolors = { - revision = 49888; - shortdesc = "Use color definitions from latexcolor.com"; - stripPrefix = 0; - sha512.run = "b22521df5572411a33ba84b2d7560f0735a6f3a3bab0c6d7ca460e19333fba20ec8852becc618274ca7b7461fac1c42d0e6ce7fb9b7e4349c74bd05e8e1b5faf"; - sha512.doc = "5f6f26c2ece42c07b2b2e634308a2a417e12a105d9856d630f483443825615d770ed35f7322f59904b1d8fea9425e0222fe9deff27451a5aec52fac39eb9369e"; - sha512.source = "369c0cb2c019ef227c41d38a193f82ca1417158065cf6f0f913d9e4bb7030e6ff3b34fb49157d3e81b9917bd38db454194c3576009be76d9293b365e59619a59"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1a"; -}; -latexconfig = { - revision = 68923; - shortdesc = "configuration files for LaTeX-related formats"; - stripPrefix = 0; - sha512.run = "22e233cad5742691da573249b3f9cd4ea0c6ccf4e31a757837d710ca863e0cccd089106e523e40fb541255f3795d963273ccdf70211f19ff3caecb30d7fefcbe"; - hasRunfiles = true; -}; -latexcourse-rug = { - revision = 39026; - shortdesc = "A LaTeX course book"; - stripPrefix = 0; - sha512.run = "ab31ee52beb0fe100f4798e6e42673d5284f6f85ccdecf8875f4d058928cab7363507f8cafe6c3c6f437a682f3e0017923d138ff671eea118ca8d2339627fbe0"; - sha512.doc = "aeaeeef2c43a5ddf782a91152c9e2e18f00d9b3e18b7023837920a53eb390652d7ea85afcae338519a00b84a972a723eedd7819e73944ef7015f8c028822fea9"; - license = [ "free" ]; - version = "1.1"; -}; -latexdemo = { - revision = 67201; - shortdesc = "Demonstrate LaTeX code with its resulting output"; - stripPrefix = 0; - sha512.run = "e8444a7362e06fe225e9033fb4fd69a5dbdae2e6b18ff50b860e327890cedb5ccc92a2aa977d5349346dcbc0da91644729d292e08cd9651e096362df43f1b5fa"; - sha512.doc = "b704b4f266b2106d6a48dd5fca3af644ffb750c7a183d0ceb31db06c98802faff451d4a224289203174f086c7ac46bb83b5296115fc2bb0241b213ebf631115f"; - sha512.source = "cd9ccedf50931754ebd4f3a9cdf5df651be802fd31622a7efa945d41e3d2d4325827dc12983f17761caec0458a02d69eabb717c9ee0a80973b4f055d8bc1b7e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -latexdiff = { - revision = 64980; - shortdesc = "Determine and mark up significant differences between LaTeX files"; - sha512.run = "ae7179b5a9d410302d750233b6b22d29382406f3222129155c98b1f2ddc23d22ca7abe1683fd013c7302fe8e21e82a376499ae33d83c15a01fa2720696e5b718"; - sha512.doc = "2f484db22ec12886a4d76fabde3a65a982d3e659f524120b377221f91c7ad5973ad6023aa3226dd35baa687c86ec8dd8e736553d1604690d87e68d3cf7be84f8"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.3.3"; -}; -latexdiff.binfiles = [ - "latexdiff" - "latexdiff-vc" - "latexrevise" -]; -latexfileinfo-pkgs = { - revision = 26760; - shortdesc = "A comparison of packages showing LaTeX file information"; - stripPrefix = 0; - sha512.run = "b08fbfeb87299273a0e087e7cfe0e9df9bf50b95503a3110b9b329a9a41931f34f65661e219c6adf377e3448536d5aac8199799821f7057a67a4680a24f30ad0"; - sha512.doc = "af5ff5d84fbbaf299be548d13163c8e5e83b73ce795bc1236a204f4025e34d9ef0c587702ea5d6b234791e16e7cd1930a63f3839c20caefad7610de125a583e6"; - sha512.source = "b204065af499edadaf997f6a6cb1be474d02d03c1e37f94b33dc7d290f934c4a453fb648588482821f52f7b0b80f5edafa9a034f8eb2a9287ef06e753b8c1e96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.22"; -}; -latexfileversion = { - revision = 29349; - shortdesc = "Prints the version and date of a LaTeX class or style file"; - sha512.run = "3a017b8a367864358370f0063957c301014df2aa039566ef33ae78dcf428235ccc2a88e19c917c940e186371e2c0b747887cb04e7cb78b9a04ac1720dbd94cf9"; - sha512.doc = "b1df01f8bc7daed937cd20d1ab7cce443a3d1fbb58e04cb18f0c0b30ef0795c988cf51bf49ace2f960c173f6a95fe982ee9d29d7650dcde21784c788165094c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -latexfileversion.binfiles = [ - "latexfileversion" -]; -latexgit = { - revision = 54811; - shortdesc = "A LaTeX git wrapper"; - stripPrefix = 0; - sha512.run = "4e3787d5e9bf950e796e7eb475c825f20628ec5ed5b99cb145036fba99c4941ed81b347acba1548dea624d87a03e0cdbbc28fc579cc8edb0aa36460e9df0b6d8"; - sha512.doc = "bfc6ce99ca1b66c0b1d5d98453716cf9e3a7e65ac55d7d17e5b06417f57d13f532602b537c804581e2e81b5265d554dd99e4d4307ef6d634d25916aae1892cab"; - sha512.source = "8a09f128428644335c9d909d23acc91ede2020304ebf009be00928cdef670aba23d245b979e5fd8d927c9d0e652bc195c717a744015a31fbb2aed1c566abfaf4"; - hasRunfiles = true; - license = [ "gpl3Only" ]; -}; -latexindent = { - revision = 69472; - shortdesc = "Indent a LaTeX document, highlighting the programming structure"; - sha512.run = "23c35d38e78c3debf1c89cad7f719727edaa21e93d1cdc3f845f3badc0e4211919bd8e8a495010fde7eef78f9784f04c545d67546f30f16179624e36f82d31e8"; - sha512.doc = "6b0de79326494370b3fba30cf44b0edf7ec925462152c6c11d7e4b9de489b58a94ea64b0e9059b28ec17817cd73e75f0f327aff2ef190dc9fe35aca2b24af66b"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "3.23.6"; -}; -latexindent.binfiles = [ - "latexindent" -]; -latexmk = { - revision = 69657; - shortdesc = "Fully automated LaTeX document generation"; - sha512.run = "ce495cf39bfc7a113d53427eec1ecd6fc62038c91cf5b97b0a7dd6fdf719b15425b6adfe1c734e5eae5330e5f8d15e3f9bf808d8e324afd53b8915d55e505935"; - sha512.doc = "0ce5229b80291809437e57518551e0ab0b06bdc381e07ae100ac2fff3f66965b64c4df096dc90fc5814b1110a9080322742b92af57675cc53b26ab1548a37582"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "4.83"; -}; -latexmk.binfiles = [ - "latexmk" -]; -latexmp = { - revision = 55643; - shortdesc = "Interface for LaTeX-based typesetting in MetaPost"; - stripPrefix = 0; - sha512.run = "e32eddbc519ed33687c1fbe36b2cf45f9ee886a78c0a088f6648da42dbebb0a72064ec4b9d5333656cc3bed7b251ef3a758926db88e6bb79ffd4536489717db5"; - sha512.doc = "02cda290799bde7288220d0b634b970a6ac543fd63318bcf90c4ad06eab074f5851e7bc42c9359af709eccc0c8847a0d3d1a9e27cdfd3f60c7143de7ac4d3901"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2.1"; -}; -latexpand = { - revision = 66226; - shortdesc = "Expand \input and \include in a LaTeX document"; - sha512.run = "e5b63c9aa31f3b5885b1a61503998ce949021b448199538ac385d3fe687156ce6669cd3610a7c3387592d968b0707f7122f35fd50402616470e34bb49f341bf4"; - sha512.doc = "c06bbb57bc006aebb644fc4a8edc1f89e10617c67bb77193bd2f4dc3eb7b04b55fb1f239d7d6979f9b385134f3b1e584d9f10521efe704292b7e64865f78d156"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.7.2"; -}; -latexpand.binfiles = [ - "latexpand" -]; -latino-sine-flexione = { - revision = 69568; - shortdesc = "LaTeX support for documents written in Peano's Interlingua"; - stripPrefix = 0; - sha512.run = "e498d5ec469420db789dac92e314f9ac0355b4afa2c43d4dce2de3eb23481db2687283f9ccce2ffd6edfd7b8f2d7ca3bf7425f0ff43ed46d7ca2dc9e3bc16797"; - sha512.doc = "ead89b61f23f527d4b545775c821792aaa5a4c3a6290767139dd8872ff6419de248d2f1d657589f469b49bc7b8a68a3368d5c26aa61a39ef6a0e6835cea97389"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -lato = { - revision = 54512; - shortdesc = "Lato font family and LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map lato.map" - ]; - sha512.run = "2f8454888913ec6a024c53cf157509b8b769f948ac2c92d0683e80ff8e22865545a6a65864876be35569bf4a5d56ed871c8112b216561e3ce585136bd062c9ce"; - sha512.doc = "0965bdda9b3c106bc49d8156f497c4c85a80d76a4740964b2d24c58155e8afed57989166bc5ac3eb44daf377b7e8985b406a0955dc419ced4a7011f328ce0c62"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "3.3"; -}; -layaureo = { - revision = 19087; - shortdesc = "A package to improve the A4 page layout"; - stripPrefix = 0; - sha512.run = "849b0e0fbd15b45cb31ed4856b0eaa190c26437a1965da2c860af62b65cbb000b590320611e96c5a6c4cc63c029c31fb352ec44d96e0704eb52c70ee460abcd3"; - sha512.doc = "b4333e1361b352689dfd67e13a694a304449eac61ef8189957356bd94e5745f4c15fa38bc21219c8a21805dbecd44a51e719bbcd884b850ba1276759bdebeb94"; - sha512.source = "054df6aade854320987e605aad0a641778336ef918ef086dd097db8d1a2fc8d623f0335aa4ffb98942e157438ba06b6e75411b48db541779fc2a6e08e5b1c594"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -layouts = { - revision = 42428; - shortdesc = "Display various elements of a document's layout"; - stripPrefix = 0; - sha512.run = "9db14862ac1bea22096130ddac071a9b058e4cc1309917d2f8e8c536f280d2f4efc9a8dad9a5dbec0824b94f92c290e82820ec1628f0e4b72aa8fa617b72d981"; - sha512.doc = "aa6639c5ca0029efda9af523a0a075ef2b60ae9e031bd68232ee03792bb2f7452e2201e7223735e83b7979f2c057674fcedde4ed416254ab4b5b8a6cd9bb002e"; - sha512.source = "1abb95aa76cb3dc55d7426b8f98923662b48fa91ae8e5e2c3c01fb14dc28c8ceae90c01c9a22b1f59103e56d1818675d6da6223be6771083562ebc50ceff07b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6d"; -}; -lazylist = { - revision = 17691; - shortdesc = "Lists in TeX's \"mouth\""; - stripPrefix = 0; - sha512.run = "5ceccebce9cf3ff0574c471141f94b919d14a7faf1b5c7b5e09eb079aee11cb95bdfa7d8b26fb83e99875818d842cbd64733ab7cf7b7024f04f661f732a3fb04"; - sha512.doc = "1ecf491370fd7ba0fcd3ef1ce11df768509c32bc9bf14978e3d6f36e39094570144b897337bbc481bfeb8b74354b36f66d561a33e255ba50aae0a5c42f002e7e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0a"; -}; -lccaps = { - revision = 46432; - shortdesc = "Lowercased (spaced) small capitals"; - stripPrefix = 0; - sha512.run = "98d57c77a3ca19a067c04c9cef06d632e56f42daaa70ec729a7cbf3ff68ef3e7ab95e1d0d25cf853d85dd1916668dd5601ba6feb889d1eda344b3ebcb31da333"; - sha512.doc = "ce14177476624831de64a12ef858516a2df28a3e194748a1c759d7a41743a93e03a7d96bff3acd85f9db0f5d4c96a53aff7b73077e131bc6fa807c8b36844bef"; - sha512.source = "cb0f4f8400542d9d15e55dd8d9b55ecc1aad60dfda5de9ab342e8e02d075123e9b32b1c19dbed700ad8626d754a11be6e694a86b6eef757db3a6f47f9f5a22d8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lcd = { - revision = 16549; - shortdesc = "Alphanumerical LCD-style displays"; - stripPrefix = 0; - sha512.run = "829c0fbed639619707023c1df1fa511d584e4805aa4f26b0ba5e5c5dd85d927901f4ad949e4a171d9765995c9ccfd34e5d45aa44dfef2508d5ec84c27712e05a"; - sha512.doc = "385df3ec85fdbaa579b15f0ef0fa2347e15cb796a84265b1cc7a9e2bc520c0c98d0703615ed28c68ce5ab7cbca6f2699502ec26a31297c14b0039dd4b584fd86"; - sha512.source = "1d788d589c959240c92775455ee3272b8014a9491f2299c4d6f4d9aff66681100a6352bfbb644e0c4cb770e27152bb5b3fdf0f347aff489c172189c542a02e58"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -lcdftypetools = { - revision = 52851; - shortdesc = "A bundle of outline font manipulation tools"; - deps = [ - "glyphlist" - ]; - sha512.run = "3f3cc8f7cce233eb36315b21db408847a267ff393d6d4118de61c4b03ec408f3f29b2d41fdcf84995bfbf5d07bcb25984d7ffc76458d4f2dc12fdb6dfb85e23f"; - sha512.doc = "5a1dd1e2fd79351afc65d6786b24aebd9681a2b9e92755b44a836b47da5ceb1817f085483f306991a113dc0c26edfcd84839dec93bb46a003034536f31b31e5f"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -lcdftypetools.binfiles = [ - "cfftot1" - "mmafm" - "mmpfb" - "otfinfo" - "otftotfm" - "t1dotlessj" - "t1lint" - "t1rawafm" - "t1reencode" - "t1testpage" - "ttftotype42" -]; -lcg = { - revision = 31474; - shortdesc = "Generate random integers"; - stripPrefix = 0; - sha512.run = "6ca6f347b6ca4104ec376554ff7ba5d19002b2b4174fa491f3fec87d6c75c3ed11c1d13b9e7d30e6c086b2a12dc3013f21ee10b482c95b177f0eaff02d953fee"; - sha512.doc = "5674612693481265f72420ae10914329029f9af2f526e6b59ba2614d4d2994a0033cb3393d2751064987698f819cca8e0fa3783555db3fa6cc5849f337b1cfd5"; - sha512.source = "b26dc9e706b14c304a282d2b5abc2d0fdb81799238c3951badb6152f8c83f6a2ace579ea0c2fb782bdfe0d02448cf716e77c3114ff0be594b12bcabbe138b17a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -lcyw = { - revision = 15878; - shortdesc = "Make Classic Cyrillic CM fonts accessible in LaTeX"; - stripPrefix = 0; - sha512.run = "324a9eb8f1a68124888ad7d4f35dd0446c917e643e2cdcfa041ca26b719ccdc541b9b89857aa05dea2d599912c506561c762d288ccc86d637fd927cc70bf910d"; - sha512.doc = "c063b6b5d23bd0a7197f5bd3121c93237c24f0a77fbc72cb370a7cd535282151731ef03098c36d8152707c50808c1b996fd1adaf16185bd3d0e3589e85b67981"; - sha512.source = "5303052e625fa1e07a3e54a682a11469f0b14697fad5658f2eb6d0266dfa25e6f66bd752265a3ca99dab138200711b48cadb29d8b1a1a878a59f5c5e112aa860"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -leading = { - revision = 15878; - shortdesc = "Define leading with a length"; - stripPrefix = 0; - sha512.run = "c326950e6c4b07782148ee4c9ac5b22f7e42512e0bc6e5e1f75be6ed757ca90ebf2bb6b30b91ceaac32c761d595ba5799f0f40ca15954f150d481ea366f1c72d"; - sha512.doc = "3ede6910ccb0a30c3ae9c78b86cf00cd7e2c5d8905b648861d2113d0af6225b2ffdc30509a72a5f69dd9e1164525c3225cd4ecaa04471ddf5c346a862fe097e4"; - sha512.source = "b42b230efc2508f4b3901de791424251c6e0ff003bb342fa11ea282f46b2dfd5c68a63c95fbb9aee146839944586218a3cec0ef182575a9760d3ed3f5924d78f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -leadsheets = { - revision = 61504; - shortdesc = "Typesetting leadsheets and songbooks"; - stripPrefix = 0; - sha512.run = "026e310ee9617108ac60fca69b0f08b2031d9c9dc583a400095765458bc72681c5c39332602994fd8a7dd4757b5214924d4f5d75bc5861365ef65e8e33b6e143"; - sha512.doc = "dafae48e690e6f0a2272d268204cbe58967eec5dc895987ecbff563061f23a53bf9d0d39f4a269b852524c1cad8de08fb121aa8291d2c723c01615f4c83b3231"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -leaflet = { - revision = 56878; - shortdesc = "Create small handouts (flyers)"; - stripPrefix = 0; - sha512.run = "ec809f2aa4cbc16dd26aae988e2e3b5fcef9284cd31deb126d26989358e52596a50fd63df07095f0bf081c46d1e8af3b3f59572d372be873d9afe1f3db3cee95"; - sha512.doc = "ccfee44447524b112f47211729bcd2c78021dfd19394b82eb7024bd10a68d1a04789d01d16cc9f3b5eab7feda884eae6bbd47b6abe8023893587c49613b44d6a"; - sha512.source = "cb505761b78adbc0dd69fba2888ab86394c7c32fd590969f721cebac249ab8298c87fad284fbb8bd9d557e4f7741559536e504155ee3b4f771dd135204857337"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1a"; -}; -lebhart = { - revision = 70050; - shortdesc = "Write your articles in a colorful way"; - stripPrefix = 0; - deps = [ - "colorist" - ]; - sha512.run = "693591f7f1316f2e04408500a958db59528cf12e9c93bc38b9fb88edad1e3bea01d8adbe00546cfe8d448c30e1f34144b53ab9182f81a18c4b30b2167fc86306"; - sha512.doc = "9932c964d79640a85a28dcbf523625c4b291f9a2a6f89be6a4c416c7318a7e55c15923406457ad5ccac8ab4257aba21b1f97ca3e2acba6339178c7307895ee10"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lecturer = { - revision = 23916; - shortdesc = "On-screen presentations for (almost) all formats"; - stripPrefix = 0; - sha512.run = "e0c217ed089dccb7cb526e62456bf72d186bf8cdc69b2014bd4210b6f1225277d1afb514f381e4581727900c6ebf34780bb4df01c3682580cea0418fa9caa1db"; - sha512.doc = "97892442ebe9263cbdc8e35ecbc2f3acebdaa886e5fe814bcc0ada98b0cecd9e140a0d103adc9eb0aab1e5e48e9d7f4ab42e786d52f8fcc96d03db17c51fc17b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lectures = { - revision = 53642; - shortdesc = "A document class for quickly drafting nice looking lecture notes"; - stripPrefix = 0; - sha512.run = "e3fb80a67dcb5198503050d61266cbd3890c91c1c5c93042a17f2aa410223c3943e3dcb73d7d6e7a4d5888d87ae9613fc89025f0435c122ab44a8f822732250f"; - sha512.doc = "bc50485fd0a8782095bbc37b9185bbc61df2a6bdccaef359f2cedd553cedc14ffd0bb8e6690578f1d57b85e2efa650a68af3b579a7c360a737791ddd74373424"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.5"; -}; -lectureslides = { - revision = 62292; - shortdesc = "Combine single PDF files into one file"; - stripPrefix = 0; - sha512.run = "48d99cd8a5b0c730af30c9c3585f0d2c9d9bf88f359f591bb769d5744412f5b76fe7151a744cfa194dc77f53da2737895fffc9b0e81de216d6d3f5bf4831d26f"; - sha512.doc = "8bce5395c30b16ea534071464941e4d4df7622946f09daf4e1dd4f63f79dcbc05f350353bbfa474e1d990a37c0a61368aa34683ee251a4e34da5ad5c896ab84e"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.0"; -}; -ledmac = { - revision = 41811; - shortdesc = "Typeset scholarly editions"; - stripPrefix = 0; - sha512.run = "b465117d5634dc4eeaefbc2c12a4d0fb892f4a27ed66057938701fe51e4dedfb5b7f28d796145d89a59b2667cf61c7175803f72e5970cf81244329130d173136"; - sha512.doc = "7e7fa49106457f13aed11bcf80a1e38f000f5161e9a67bdbb174371db63a3953109f26da3cef8781d2c13abb4b86d5cb0c2b1b41e6f2cd3584512bed1a67cf6a"; - sha512.source = "918f3009f11e3fa2b5531c5cf8ffe9d835e331793abe1241f01f01b14d990ffd1f3aac6ec153b17f77099f38c284965209cff8f9105c340bfdadc85f78fd5d5c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.19.4"; -}; -leftidx = { - revision = 15878; - shortdesc = "Left and right subscripts and superscripts in math mode"; - stripPrefix = 0; - sha512.run = "a01d085af4ac4048b5659e7f2f1692dd787b7c4cc9a0c06acf9852ad9d5aaa9790bdad6db7a76ec2f1a268af520ac35975a7fc55ef0d6373f244c85b8b6e116c"; - sha512.doc = "1e372c7d307b4bae8fc5673c9654785db1fc7c510e188e7e0945e01dd502580479b7910e19132c7b8b169acf7d9de84504de2aa9fb580c9a526a5700114f009e"; - sha512.source = "3339968b569bf6fba6d7332399d0727148add95c1c0dc2ae06626269c156a4e365dbbf672b652d3c5d097d0570b0955e6cb34255e3f8383f05ea52fa2c12e375"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -leftindex = { - revision = 69660; - shortdesc = "Left indices with better spacing"; - stripPrefix = 0; - sha512.run = "3fad2e822408843bef73d95b5c7eb99840e9a3b9cc3f5815197ca735d8953a30a271c9609c7fb34eb4c8a7bed1a637a3421fe8a1380b5972e342997cff2ea247"; - sha512.doc = "482b46b33ea20c85765b6b1e4920b96e8f94347aebb057f2958ff2bc6884e8c1a5f121b31f1aff79deed93209940d37fe1fc33199a3f25b81dda74f02326a862"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2beta"; -}; -leipzig = { - revision = 52450; - shortdesc = "Typeset and index linguistic gloss abbreviations"; - stripPrefix = 0; - sha512.run = "6811c2259558856d930901d2d82a47774c4c37ceb5d1309fa6b78ebb031685405e334e8de7cd63b1998bf673d5210aacfd096b1c6570ed26840fe4ec22359c5c"; - sha512.doc = "a701d8c9ffc741099aa09f75dcef117db6c64a832dd51f57dfe07cee694a177a3a8be824560308b9cdd483013d4e69b77ee8755972b9ed504e033db6396532a0"; - sha512.source = "957fda848d5d4b5a07aa0150019670058343764434b5a7151131ac1d401e4de60a6f57af72eb485f02d0e3b63a60edc291ce1692d408363b23f811d1c97fb389"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -lengthconvert = { - revision = 55064; - shortdesc = "Express lengths in arbitrary units"; - stripPrefix = 0; - sha512.run = "7796d45d91e157f2e901a1a48a7841bf222f86540ac00d59250e3f47568ab86832bc115340c0b65b27c12eb1a39cc2729cffb5da71afc413dbae737341d8eb63"; - sha512.doc = "4191c3ce9b546f885c61243a343761a9dbc1ac031b3878a87c292d99a70effc89d927a1fd35eeafdd6523aea7c4bde0c90255057177767f534b471d4e098d3d4"; - sha512.source = "ae8d4f8563c86a5fbcd56d40dc39df2bf52bf4dd5098b4976ddc6ec00b8512e2d6cf4a4b3f6fe83e27188ea24ad954c8043daf49aaaa15e503bc2f84f740ae75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -letgut = { - revision = 70496; - shortdesc = "Class for the newsletter \"La Lettre GUTenberg\" of the French TeX User Group GUTenberg"; - stripPrefix = 0; - sha512.run = "26c67af52a69cf3c9eff59e1e3af2cdf1450caba17938ded0c6c8d090cba120809d4eaa981c2934a62e9bcc78a0430053f55e1c4ac241770c779c4a5a8cbcce0"; - sha512.doc = "13fca9f0e879d4838cb7e05e2978c5a63bff21b14f7da80e82030916218d49c870f97037f88ff4316bd220e5c318d2f7d568ddda9f787618aab31478e1a0ad63"; - sha512.source = "5057d1ddea61c0fc43a4b7cdf3f749b08bf14e443eb29a315d74a3f7a2de9ba3a41fad379c62cce83d15984c0d9ae484d738d6a875627cc4706bb708a2cac290"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.9"; -}; -letltxmacro = { - revision = 53022; - shortdesc = "Let assignment for LaTeX macros"; - stripPrefix = 0; - sha512.run = "c9c1f5c3b9aab6b31750011cd45c42bdb32ecd712ced8f8cdafe1aeca532159051d1cff1449b06e3d35fbefdd44f2332805cb1618ff1da022d405a88d600083b"; - sha512.doc = "8be12930acfaa79dbf3d7d3e0a60a518b12392c094e1dc531bfbcd8d9517d4744e99d339b3b7bcfb1e156d0ccbd17ca464126d8530e9f9c13e29d19a6aaeea99"; - sha512.source = "86863fc9935ac5044f2e3b3013b0df39cfe95f54fff5c6b1af0297b828fc88353243b117caf79cafb7f8c17d9fa90b2e0e8ca753573baa06db7acb26a978f30d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -letterspacing = { - revision = 54266; - shortdesc = "Letter spacing"; - stripPrefix = 0; - sha512.run = "30fdc0f87976feb698b9736e9deb6726746e4c25e4ed4a4637ff26699e171738be6447e8e2d02d154cf57944aa988208ee97859c0a7fac784d55fa6ef889b86c"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -letterswitharrows = { - revision = 59993; - shortdesc = "Draw arrows over math letters"; - stripPrefix = 0; - sha512.run = "dcfd59b7a51100a4e1d856d3cbc0d4f2ac258e745566b278e275d8ebd0273e7f96fa1431b681d42e10b1c7496596f1ecdd92753b8b58df4fe352c51b9b009bcb"; - sha512.doc = "a21ff5d9a4c2e409cd7a32207e1e162b263dff46919fdad25bd5fbc1cca86329efebf847ed24ff7401293d8a318bde9fe7fd2c9def69f39740d5e0686c0ab849"; - sha512.source = "50e2521b55a238cd6e461b3bcde326c5948573363988bf3bdcc428d04341728dbf73e891d09af65ca1832924cdbd0b0320bd94d662afdf78b3d1039ca3519231"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lettre = { - revision = 54722; - shortdesc = "Letters and faxes in French"; - stripPrefix = 0; - sha512.run = "308dc21e8be8d8f6952eadf9b5e9002fe32e8ea3b79ba679606badef75ae346721270e85e3fbcd269ee86b9ae049390164c57cfd73d7f2efe22fe82c7466a813"; - sha512.doc = "9962763ae46836874eccf4ea5a2dd695eaa1ab890224d6a54e83670618e2cae4a917fb6bf05610c5104f4d241e0163e079628e79ddad3edf374b513cf6a457f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.002"; -}; -lettrine = { - revision = 69508; - shortdesc = "Typeset dropped capitals"; - stripPrefix = 0; - sha512.run = "759f71e952f99425e2425f938164a402b86bb2e83a298e08bc4905007e7805f5856a3f90067c0d08003c409282c79a9c3edd7095bf105029e05addea8dd328fe"; - sha512.doc = "5618801ec7cdeab3b378cfb55748016df58fe00851a09a0a7929ea97de49b11c7cb2c6877e54d1cca93cfeece45c53f869e47ad3a9715a9ab8b7f414a8216cef"; - sha512.source = "004cbdd91606755b80857ac3b0fee75ba686a4d73010799fb1086c37b626ee2974bf9401d272763a58dcad7d4ef92cbd3cfbfe752bdde365bc88637da73fc429"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.60"; -}; -levy = { - revision = 21750; - shortdesc = "Fonts for typesetting classical greek"; - stripPrefix = 0; - sha512.run = "a71294df1b2bdb1402892ebc0c82dd60275cf41f6844cdd284e1ba73c8515e98258118c5a1e5158fb6d09acdc53427eb4e3f62f24591fd2eafc90d0bb69b71ea"; - sha512.doc = "e69a1e2e421100a50416f86bda40702aa9a4d5c5b0b8c783e328e56e1ce587f832cad984fee2cad259603e893413155bc4539e853e1df0d95c89e9167c67b2e1"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -lewis = { - revision = 15878; - shortdesc = "Draw Lewis structures"; - stripPrefix = 0; - sha512.run = "7dbe24061df0d0bb4762e7d308c895c99d8f9a9105137bce8c4e589c7fdc80f989aa8c3ebbe40708a8b6fa2a2df5542ce25fb16f528344ca46d50c47724e006a"; - sha512.doc = "b267e3c79dfacdd7ed8c931a0e5954c9fd2ea0cfc12beceef3b40bbbed30bbb421d29afd263a25a5b0b5b77a6bc74ddf38e609262485eecae065d65e23200bff"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.1"; -}; -lexend = { - revision = 57564; - shortdesc = "The Lexend fonts for XeLaTeX and LuaLaTeX through fontspec"; - stripPrefix = 0; - sha512.run = "6a9e4ab844e5189e996b73ee95d5ea5bda0d5d9f7b00a707d5bf9b7ceb97eb2f37baef9310252227701d6fc280a14a8a79ff524b5cdee3610c4dc48968f6b3b5"; - sha512.doc = "fa21e0311899513ca5f7031471189ce0269fcb35b5bb38d2e3d2e8015dab11ab2a10cc086ba6d41f24c25d99b32f91750371e3297c505ef4a522d61aaa24e5bd"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; - version = "1.1.0.70"; -}; -lexikon = { - revision = 17364; - shortdesc = "Macros for a two language dictionary"; - stripPrefix = 0; - sha512.run = "7c0642f9e727d34175898138d27a838f0432a68659acd7986acb0b74183f28467351c169c52ab057daf46546d8ef9f9bdf30dcb1846b458b6b718ae38633b275"; - sha512.doc = "4f1329d49d92d93743127e4f3ad9401e07529d31d2d68af86373f08b56ae69c22c70b89151461548aefb7fc1f7eca66cc1a4ac73407d82b65bd007f3372243cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0c"; -}; -lexref = { - revision = 36026; - shortdesc = "Convenient and uniform references to legal provisions"; - stripPrefix = 0; - sha512.run = "f9bf7792ac09a6b5a69ae642e0becbcb1ed0c2eea3254b31da62bb9b7e3e161c24109e0bcacc8b89e3d03426710378f04e13a05be467115eaea2be028f8e5812"; - sha512.doc = "6a348acfd0e0701954195210bc717666308743f5f282b9efb7a253ab860a0372ed383cc2c8811527eeb2ed72c46be95cfb9e133d156fe8b906b67ed5140437af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -lfb = { - revision = 15878; - shortdesc = "A Greek font with normal and bold variants"; - stripPrefix = 0; - sha512.run = "5b1386321f8c24673531b48d996a20cea9ed527ae60e608f63a790a2cbbea573d01e0351c1ef695b11f14d31d5c482ffa02b337ea04e649b7b758eef713f3bf6"; - sha512.doc = "59eef59a1be002d28ce802617ee638b6c0e74efb391a502fa9593bf19e54f563f819f45442714b46a2e97f49bd561d2a2df631e53ad3847b48a881c8762d2d9d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lgreek = { - revision = 21818; - shortdesc = "LaTeX macros for using Silvio Levy's Greek fonts"; - stripPrefix = 0; - sha512.run = "f0b5cc9b7267aa07dc0b0f8c6d23a164bc239591fd13b5d77c5c840d33e131546c63c63a3bbbee2851000bda2e8593e7617f8a7ae381e7cd0561302a667acac1"; - sha512.doc = "915df985f4766f492a70a35342e086567d17c155ea0dfce5514c6edebaf1dacb78998dc4bf5cc44415fef580a7779083bc2261a22dfd668e8f2023f1f15bff35"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -lgrmath = { - revision = 65038; - shortdesc = "Use LGR-encoded fonts in math mode"; - stripPrefix = 0; - sha512.run = "415c04ea9add325ad71e678cafa99fe896d02c8b16facb0c4f69d656f0621e131c79be9470d15c755bfc4f63d9b6611e58829281c0e5c7209ac7c10ecc456b0a"; - sha512.doc = "c68c01069ef48b668f471c86d0b562f2455e9bf022ee7a9d9a9b2c6475b9fd04b4e1b9b0eb7cac215f51ca965d35a1cc80102a6d862b2d72f9d9c72f07fd5900"; - sha512.source = "044fc3ae8aad6637cb8489f1cb0fed9e5cbe7435a7615fb20b77c749fee43de1de6740b0212239c71106d7615c7a54eee36bb9fb35be571220744d6ae41da90d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lh = { - revision = 15878; - shortdesc = "Cyrillic fonts that support LaTeX standard encodings"; - stripPrefix = 0; - deps = [ - "ec" - ]; - sha512.run = "265aeba5ee99cbec2eca77a273a9e4857d78280e0ff17089a358e7f85d0595025e259b2edd471ce5287479531fe37cfeeaeba405ac9cabc7ac9616242815b6cf"; - sha512.doc = "33f1cd39b2e68caa750ca5867bebbbc43c9948a7606f6fe44ba3bd8be84661fb562b5472ec57ccc3f6c18ef2823188c2f81ca4444b562f935e6f041d8ec0f39d"; - sha512.source = "a81d3d7295101718dc4e66c6daafca8c480b281d7219956b0007adb4fd7e0f35959277931254fc778bf69c581b7d15ccf445f5037b589cee937211c39f59529e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.5g"; -}; -lhcyr = { - revision = 31795; - shortdesc = "A non-standard Cyrillic input scheme"; - stripPrefix = 0; - sha512.run = "55cf81c051e8f23fe4f085990bc72a5b1dfc276e3ae1721680ad033deae1e3eafb1b9dcff3380ee20b72623b1ab8f117aca66f61441387d914dc29dc91c78448"; - sha512.source = "18fc370261acff25634107705a36d06ec6367da95526a79fdd78c887234a2f2a6a17147eb317e97effa2ae8fe8e21e8df71cff3da5572055356386d26d2b06d8"; - hasRunfiles = true; - license = [ "free" ]; -}; -lhelp = { - revision = 23638; - shortdesc = "Miscellaneous helper packages"; - stripPrefix = 0; - sha512.run = "3a5bb1d95c300e9546b67c48cc2c3e1a5c3089c4430d76172a8d7f3cdc59fe03de1fafc6a1babeacc9259444e09e85e02a64f3b3f8ddfe3883511482b9ff0985"; - sha512.doc = "2411bd37dba9c4afe1ac4251c9897c99e5934938bd802dbe89993d5b6ec0d19e1cba8b143ee5febd9ad73f0ef823eb79f34587e6885250a2bce8eebbdbf06fd6"; - sha512.source = "42e419f41c8d8c00a4d27b4bd4499097b7c4c2b8b2e75c68fedd224796dcc9b9dd09054f90cc525286ea6b72a579120c3fc027239bd0f0630ec471bc870ec02b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.0"; -}; -libertine = { - revision = 68981; - shortdesc = "Use of Linux Libertine and Biolinum fonts with LaTeX"; - stripPrefix = 0; - deps = [ - "fontaxes" - "iftex" - "mweights" - "xkeyval" - ]; - fontMaps = [ - "Map libertine.map" - ]; - sha512.run = "5c1dfc8bac01acd0e6e0d3412c08ee8672f01ebe1c7e22f36f313541139bea13d8967e53f5959a04b31d08c0ba88334b30c3e909eef310567b07ead39edafd3f"; - sha512.doc = "54963a7cf440750aba83feb1a55d1de26ea6995716049d22d3f0ff742364db4c4ddc366d2937d022a3a8ed9951a114367a6ae1bef74c0a655b47007d38c2422f"; - hasRunfiles = true; - license = [ "gpl1Only" "ofl" "lppl13c" ]; - version = "5.3.0"; -}; -libertinegc = { - revision = 44616; - shortdesc = "Libertine add-on to support Greek and Cyrillic"; - stripPrefix = 0; - fontMaps = [ - "Map libertinegc.map" - ]; - sha512.run = "0af71c5bd17a2c89d85c2df056e76e4f8ff98b24de40dd306a9c4207c15dbe9dfd08864736a3a45f1c82f51717396ea843082f6798b89f7e9ea8c316453a707f"; - sha512.doc = "010db594b034a5e401fd17a7772dd3dbf95c37d533fad97f7b1568336beca31523384da1eab42e74b2e8bf294b25a8d19df7469eddd65cc1bb61abd5dbe79d03"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -libertinus = { - revision = 61719; - shortdesc = "Wrapper to use the correct libertinus package according to the used TeX engine"; - stripPrefix = 0; - sha512.run = "93fc163a66e711943c22f383187d4f7e81aaca32f36eac6e6f944682169282544c9233d05a2b5e6d263dd95de3d8a8106871a0ea1fd2028899031e2cde1244c4"; - sha512.doc = "8865b61037690bd3569654879866592750561d3fdeddd7943280ef772e7798194cf0bdb95809ab4373e1f082d1a1468b3b4456971b72dc892b07e73e2dcdecc6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -libertinus-fonts = { - revision = 57948; - shortdesc = "The Libertinus font family"; - stripPrefix = 0; - sha512.run = "5deeffa40e2399169a7ec16fec4d417c27350cb5ccb7f59eb1638172758e88167d24470d889b311760b0739b9fa0251e2389f7ccda0e4e8e2ce3a454406f13be"; - sha512.doc = "410edfda953b321c9fa53e99854eea206177e4486c0fdd6ae3cc20eddb31111f28f17dfd725c5f2dc573d82ba5daa1f75c544709accae84292cff45d52b10c18"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "7.040"; -}; -libertinus-otf = { - revision = 68333; - shortdesc = "Support for Libertinus OpenType"; - stripPrefix = 0; - sha512.run = "74e8f653e1bfd28b11932b0a5e524e823dbc1759566a3a6fd3d74b854f40df7a78b5dd3845e2b8e217fe9608cdb116d1216a3139e21d4498bccf62b8d8e42742"; - sha512.doc = "e708bc00e33f6cbdb1b21b1f62e968896f373301b8a3662fa32016c30bf913831d14258b9e1ceef3da39fc468dfabe0f9e4ff6f8b0e4357fe15bcd80c7e859bc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.32"; -}; -libertinus-type1 = { - revision = 67450; - shortdesc = "Support for using Libertinus fonts with LaTeX/pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map libertinus.map" - ]; - sha512.run = "6c84de57b1778ec35d9f56b00e577f9f8c1293132cedba43e657f4425e9bf01ab4243fe6ffb872aeb99b446019539a640d29c88cf29cc86d649d2a00f77952f7"; - sha512.doc = "c656af53b98735bec8c63c3e56160da943379f4b908f553a27cd1c82111b201eb15c1f1eb1b6ff89fee281c27ea36d6fffc5592b75722cd561c8770ef2d3f6a6"; - hasRunfiles = true; - license = [ "gpl2Only" "ofl" "lppl13c" ]; -}; -libertinust1math = { - revision = 69440; - shortdesc = "A Type 1 font and LaTeX support for Libertinus Math"; - stripPrefix = 0; - fontMaps = [ - "Map libertinust1math.map" - ]; - sha512.run = "ad93607e4accadbc0a429bab7d6bb8ba964a98324a9c65fc1993db025a728dfb8b3e48e3d67552a88bbecad247db573d1b1f7386e1aacce7954b00ace4feacb3"; - sha512.doc = "012227a7d46da30dc4a20b403a0f0abc0010d6902585c18a0bb3fea1e4b7cf58b629ae8c49597c6c39a264cf25a7a80877cb09e99b0f59b01d37198c5c4db769"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.0.4"; -}; -libgreek = { - revision = 65004; - shortdesc = "Greek letters in math mode from Libertinus or Linux Libertine/Biolinum"; - stripPrefix = 0; - sha512.run = "bfd9b373b9dd5bf637dba467b32a8b15965407ff1f6d47629f400b919d7126d5f37e1f35b8624cc5505869d8a649e25db2a175de4aaedc50a3607d90848c6cf6"; - sha512.doc = "94f7022093b0b1c3903b214a3e874751884020a78355e13ae101a2d336eb25796ec0f8388884f5dd9600badd15992978f3c9516a5a6d8ac1d7d3b92046ecde96"; - sha512.source = "7a04909b6663987eb42f690355b91ba72056540f5e4cb7e8998ef04db7bfa90d33f605103b01a383107a1c0629c9a328006ec2d5b2d0d98777bd4b69db779db9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -librarian = { - revision = 19880; - shortdesc = "Tools to create bibliographies in TeX"; - stripPrefix = 0; - sha512.run = "2a01755bec49fa8c78680b0599b58649b803694f339383ad168bdc06554dabeab3047d1b17d63f7487860a5d0102dd8f68a78d5ad5ba94a2f8b29db7329e1ebb"; - sha512.doc = "6d95e43b1f9965fe016bd9fc7ba3f9df56716d8f6c89948417643bffc4b9e89f8a5e6cb045e873daff819a16cc10cd61e74e73e98119a076580967187338be37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -librebaskerville = { - revision = 64421; - shortdesc = "The Libre Baskerville family of fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map LibreBaskerville.map" - ]; - sha512.run = "671894db7ebd325e35efba47a8b84dc9afbeb213358503f65e246e97af090be03f6591fe124d4f5b4c53ae99bdc7a56bf84d385597ed7564fa63f7fad5265e4e"; - sha512.doc = "9cfecbbfea90ff99af78bac088674061c7123ea046aa42da806fc09d6fe5e88c94fbaa3053bf87b563e55f514eda5cda108d5bf6b096253e79fa0d09567221ee"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -librebodoni = { - revision = 64431; - shortdesc = "Libre Bodoni fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map LibreBodoni.map" - ]; - sha512.run = "e1bc9e0560febac6f6e56737ddc070fb9642ca6e701699dd3546e63fa681ce28a995e61b4190edaf4d9b9f9a4131b77436d69cbce47e601b11b63caa25bccc7a"; - sha512.doc = "be63dcbe34c1f09f560f85aba54e469b3b14331a4ccaf8e44ce7ffcc649ec1a0c4ba2494ff844cede73943a646cc8c62c8bf7a949b602389e4abf9ae5181331e"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -librecaslon = { - revision = 64432; - shortdesc = "Libre Caslon fonts, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map LibreCaslon.map" - ]; - sha512.run = "96c3193cfc16b5cb312ff67303825c7e9733642108a601ee2b8dccc6e8d6aaa0db28e2da7c84faf71eaa1576ddab230bb6f385972d95f4aaba547e57a82b1e54"; - sha512.doc = "9f7c6662af462f0c73b97de098cc4bbff5a3060e44a72ce294b175c5d5a3f520a93026b1bab17bdaf5c48d2de55c4045730386f7f8f046b3ff797c4d715acb8f"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -librefranklin = { - revision = 64441; - shortdesc = "LaTeX support for the Libre-Franklin family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map LibreFranklin.map" - ]; - sha512.run = "35b304ca5b24ea88fc6a5227361db7f825a99eeba4b1ddcc31e5e71bda3f6ec911b00e2ec7ae9f54022748f39a26baa61aecff267628343dceae8eb8cb07bfd2"; - sha512.doc = "092dfd68010c10942f030828552e4609ded2b27bbd13d213556ad301629893748ace3380aefda1adc8ad23261b2de253599f6784b461fac8a1bf49cd6e1370d8"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; -}; -libris = { - revision = 19409; - shortdesc = "Libris ADF fonts, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map yly.map" - ]; - sha512.run = "1a754d896846d0db358cf4f878928dcb511d76a7de6e7dfabee71970908e3ed7caab98f854695318ead334e052282b690712069597f42505b00c41e328ad141d"; - sha512.doc = "04378b8461d6ea0284f038974fed6ae6fc48fc362f63dfb8b8d57a81a721da7bf17ca3aeabb198c373a68a4c8e5516b66f12c240e081dabcf1b9c79fd2d2b388"; - sha512.source = "8ccb8a6beb30c508d582dc905136cc8b1b053a8d71a7701bdeccb0ff1eecfa69e32d7167b871d4e38eb0c98ef49c8ee9a00a9ea3bbc30e51c8a81d903ac147ff"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.007"; -}; -lie-hasse = { - revision = 61719; - shortdesc = "Draw Hasse diagrams"; - stripPrefix = 0; - sha512.run = "b71ed475c73a94a92b8a8078a4edccc73f7d688bad7a1a5e6218bafba823b76a20b79da83c7591903fa234c6f0e7f776317dd8b740e5fd7cd014821f8dd77c94"; - sha512.doc = "d846971b6b8429e58521ad0cc564906fc06623a3764117069fdb1912aeb84858e7af93ea2f4a7732c6e677f260f10a6a9b79488d43caf56ad158152245f8e4aa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -liftarm = { - revision = 62981; - shortdesc = "Draw liftarms"; - stripPrefix = 0; - sha512.run = "a4938aa3e9a7c844766c2b6ef5959fda39f4de50325545d64a319a9d7f80ac2b3b5c4966e1db249e83d4cca7b82a3a7a60bff90c5d425f32a2a5c5b55b2fc4e9"; - sha512.doc = "1d4917e9a032e459ed1922b4d1ed5b525d3cc8799dedb8d435b0a387fb9c529159b620668bf5e737e87c68e434f2c01004d6f6b2100ea2484f179f2105901a73"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -light-latex-make = { - revision = 66473; - shortdesc = "llmk: A build tool for LaTeX documents"; - sha512.run = "1ede05b31d3b7acdd0f38b19e83b4258f05ddb184343dd36a46f142adca9f4081631d687411a1370be880dba5e3c6ad3f1c21108232e8b8f4fd03fdc1f3ad60e"; - sha512.doc = "f5bb10465cf3dd983f59b101f6c631e202ce655282319c773cd0d83c0a9a8a3b9cee7790ef1f803b0c68215b553a2668d861a51dd9ec35b2dfe4b07ef0cf3a08"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "mit" ]; - version = "1.2.0"; -}; -light-latex-make.binfiles = [ - "llmk" -]; -ligtype = { - revision = 67601; - shortdesc = "Comprehensive ligature suppression functionalities"; - stripPrefix = 0; - sha512.run = "f75a730290acd024eff3ebad6965fbea0e3388c98e0b6f325183758a7771de4b165810e7cfe05c43b12fb0cfcf71c51665c082bab82e44772ad0e0fb4b21c0ba"; - sha512.doc = "dee12f5e8abdff666582edde442085e8c937b39fcc5ad37759f0cfb683cdeafb63afce7a051573db307d2c416eca46bd9bf626f0cc3cd44bc6e1379c428d2e09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -lilyglyphs = { - revision = 56473; - shortdesc = "Access lilypond fragments and glyphs, in LaTeX"; - sha512.run = "2616757691d289e859fb2bc161c2a5b5312bb1cd824aa15854520e004a639e597f42515756b3cad383e4e33b3057a1579ff5c2ea7c39d8f9bf9d36e9c9b58b70"; - sha512.doc = "4d9ac765c6a4b2b736d08569eeb6d0d8b168fe96563526264f2485d3d27a944a3e81c6144cd8f1d8cb5162d425b436fc688172db18b09610b3088df4ce868a27"; - sha512.source = "e0a1db8b5c4e57374ea19a7f8da3f4a89a2947869eba3f57411a9e815d645f4cb4200832276e3d3c869e2b3a8e3018e8e0f20f942f2396395b7739d7e9b23951"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "lppl13c" ]; - version = "0.2.4"; -}; -lilyglyphs.binfiles = [ - "lily-glyph-commands" - "lily-image-commands" - "lily-rebuild-pdfs" -]; -limap = { - revision = 44863; - shortdesc = "Typeset maps and blocks according to the Information Mapping(r) method"; - stripPrefix = 0; - sha512.run = "eae51f72a65d407b091244ed926ec98a7bf02ed8c360fcea2d614011555195992d315bb22b3697c8220f8e91f34a1c2f88092f34697dc9ac42f757e066198650"; - sha512.doc = "748504c008704d2aa1c763920c03c72372c89368e245fbf4172b442b6e9efe11b3754f37c37a864ab19301c8822aa31f0d25f80edbe26405c043aab8a0382739"; - sha512.source = "2fd49d1313293fdda8726c84438a742095ef9a917369d8ac62d619507f540b4a9ced794472441f8d48edd5a5cc575ac2ac8ff43b3a50ccff70af0416808dd611"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -limecv = { - revision = 61199; - shortdesc = "A (Xe/Lua)LaTeX document class for curriculum vitae"; - stripPrefix = 0; - sha512.run = "14c7bb278113e8d8ec249e18fe7a142f5216984468a51a2c64926b2dea6e79d928310600cee498cb3773b0ae70e97199b4800a8c5df94431df121ccf62955b5a"; - sha512.doc = "7e64c4a940dfb321da2c81ae84e709e1601068935f2531c8e6fdf514b5cbca6407485005f60e4f410a303b97557986f1962dfad976a3c3914d01309c67ae8049"; - sha512.source = "43ab876f14fa2f920741f26252b852e5d579e9394efa1d5e00753f23365b62192293aa48850275c2aeadfebae4c2f8e0a929d4459c5feecedd7176514dbdcc9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.12"; -}; -lineara = { - revision = 63169; - shortdesc = "Linear A script fonts"; - stripPrefix = 0; - fontMaps = [ - "Map linearA.map" - ]; - sha512.run = "b87051ba4647ed2f0beb8e5bfe8419d8558421f509cb6eaa931f47a10488dfac4e36b3ece1cfdbf3e46eb431c3d15e7a7005f27522dbc4cfe6de52ce6127bea5"; - sha512.doc = "4c87a47d08606416e5d6605edb3a89bb3a67babcc621dd28b8ca02bfcb5ba6108e56e76fc166ff0d6a54c058459acfc8ee6b46d49309d6333d13305d00d3179a"; - sha512.source = "6476de5673f0e0f4896b0f579bd37e31c7301916dff1de1a957044b7782c04c43b5b5add887960d1a7013648a7e352d2655bd9a8e57dd0cafd31c851cef5f21e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -linebreaker = { - revision = 66639; - shortdesc = "Prevent overflow boxes with LuaLaTeX"; - stripPrefix = 0; - sha512.run = "282c1687acd1843f43d281804ef4860967c069b38c415cb015c0694ddc9d78e03a5f3456a8331d3aec341d856474fe95a2f4fd92b786c2834d65cfaaf4b9198b"; - sha512.doc = "d39b7d5ec0712e3e26ef76f9e1177f6de5413dce21b143e791d79c8980be640c785448fdc8fffe48fa5ebdd9d2d594518b73e8db21cb16cb99a8d9377ce8f9ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -linegoal = { - revision = 21523; - shortdesc = "A \"dimen\" that returns the space left on the line"; - stripPrefix = 0; - sha512.run = "87a062513ff7674f315472cc46e13fbce99057c3b7083a2b9c93b92f09d538af29f5d1e3664dd5273080b9037ac232dc0d7491753b83136d2d3558ada1b81976"; - sha512.doc = "9c61ec4fa6bc63a57f7b272c7dfc55035e8e4f14225bbd2763157915fd351a2bb4f179150801f06682fd9bd59f756edbb127e7bd68592ffee5c1cfbac91b10a6"; - sha512.source = "69133c573e53608e6b341abd7e745ba6b532eba05bb9a2ff2105bb9da69e31bf590fdc3f06241e5b667ec7f0c9458a908f5ad72304c7a5c9e412c0057611c5cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.9"; -}; -lineno = { - revision = 67171; - shortdesc = "Line numbers on paragraphs"; - stripPrefix = 0; - sha512.run = "7171da9917c0218a0c55c43126ecfe07b9e55e9633b673c89ae18f08897bb1634cc8412cc3051ebf6640afc228e246f1e5549ddea45261a6ddee01d158f3b9e6"; - sha512.doc = "ab4aacda9d0f4a9a2aefdf37b23067ad27eaf40500fd92f7a4c619f9c012a40ac0c69fae32c425d6c12d2b89e6d6c2ad9585fd75b2af8447c9f7d333473add73"; - hasRunfiles = true; - license = [ "lppl13a" ]; - version = "5.3"; -}; -ling-macros = { - revision = 42268; - shortdesc = "Macros for typesetting formal linguistics"; - stripPrefix = 0; - sha512.run = "686dbb33df2670af909a80863943a8870ecef128679ab679f3d90d1747042b752c9aea15660c962b0f02418233d4d152e64357d5b57884a2fc2371acb3d90a52"; - sha512.doc = "fe424a7db4be743168c4b1016fc25c95d33cf9d66767b39db0e79a5ba1bb667c76b9b5f10b23a08449362a3fef281d60f0b53e2b0f196846efe9f4765f3f08c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -linguex = { - revision = 30815; - shortdesc = "Format linguists' examples"; - stripPrefix = 0; - sha512.run = "36fab316a894029feba86bf771d4e600b3e7f5d766deb9d844605979b066483500c8fa0a425718d22e9a2bc14d74aada16ca8deb7ee744a81e18fee8c77a7b50"; - sha512.doc = "7a5d84d5425031d341deea8f37f1d8a9f6eaee820ef66661e8e38eafad2b20a5e9b04b81b1a0db0b11ab70fb0adc9c81cef886978626008eba6aa3c32bc0c848"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.3"; -}; -linguisticspro = { - revision = 64858; - shortdesc = "LinguisticsPro fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map LinguisticsPro.map" - ]; - sha512.run = "6bf94e8910ae03314a3ff55157e52586b5f2550c2aaca1a8989b1f02400c87363c74e00658ee953c13a44dd69cb253bda6128e66a96b865e6169310165a7f9e4"; - sha512.doc = "8f0c8937cacdec2e2ea4999dd1bb45af96a99a3707ef22b54a2bf1e0c745d663550ff0b68d80cf895e8bdfa1f279873c4725c7851af547f06155589d8e5bfde5"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; -}; -linop = { - revision = 41304; - shortdesc = "Typeset linear operators as they appear in quantum theory or linear algebra"; - stripPrefix = 0; - sha512.run = "ba0c5e053399c44203d6eff42252854a16ccbf12132ee6e26fa577587554234b36ed31a63f1a6c40059e0aab8d9367a5b6aa6f34d552d64866b46e68478c36b4"; - sha512.doc = "e63f09e370a53dadc92591d105c677f2a5eea4cbcbc4e3133448df64b10abf2eae1d76cdeed5e288f610be13eb4baf8f248a6e9df92ab79066078ee165b9fdc8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -lion-msc = { - revision = 55415; - shortdesc = "LaTeX class for B.Sc. and M.Sc. reports at Leiden Institute of Physics (LION)"; - stripPrefix = 0; - sha512.run = "8eed5de445edcd936654a9d7ef8e227d43b479f39279025115fd8586cb7fa107dbacd8c7272e868eb11de0e320740fb8dc5c1fd26327fc6e8394c8924ff37cf0"; - sha512.doc = "87d5b7e8fec95c857f6c45aeeab3cd6eb70e9b7a237eea3b5a4deb8e92ec8ddd5a381c88ae4919bc1841df15a4b93a569a996ed032cf2b0b7a5bb088c779e873"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.30"; -}; -lipsum = { - revision = 60561; - shortdesc = "Easy access to the Lorem Ipsum and other dummy texts"; - stripPrefix = 0; - sha512.run = "24697be378aa490bf71194c8622400c11e27d5c6549caf2362250017ac97b4443986a4ad5f8d2d96aa53cfd7bcf5cd7ada0e1ddbbbfd27135e2a23bbad21563a"; - sha512.doc = "ce44b2d4acab295bdcb2d0edcefedea449c4dae7cc4c0d62ef73e36169b0858863003bec1575000bfb78b1ecd9e5413807a89bc464b5d173f05a43313c7a22de"; - sha512.source = "5984bb97fbecbecb5aaf26f788a6879682f6ec39c87e01c834533a779384b20ad02f1825cf5c2339b288cc61ed716eb3a76e51c45ccf80849b4434132e0c4081"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -lisp-on-tex = { - revision = 38722; - shortdesc = "Execute LISP code in a LaTeX document"; - stripPrefix = 0; - sha512.run = "67817d9894ac5bc8d456ce2b114eba81b0c444bf53422c4acb5066b42cd5cd55d73c46fb2b443db9fe3b13bebb58d6fd7f2bb31686dc4ac2295447285295c602"; - sha512.doc = "fb3a8ef4ada38d910b3055f408059daf700946c84b17873846175e6cd3075ad7f3889d2af154adc3a7898ac33646251bdbe0d8cda17ccf354dee526a96476432"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "2.0"; -}; -listbib = { - revision = 29349; - shortdesc = "Lists contents of BibTeX files"; - sha512.run = "e71bda783acbb8ab6ccab3d8af535034caf0eea919bbd175685fe50585970b87613e0df5ed076967aca395cd8c7f1317e805fb1cf765897b03d6cc131d3d98b8"; - sha512.doc = "0ec0970f591fd3a840c27730d41f0b817f631727c9c7219880b45209c21fe0d3aa616eb6eb94bc7016a9acabfe9c50846d872d3b36a104e1f4eb74dd003a16d3"; - sha512.source = "441b13ec75d91c68b8e7253a5dc9a6e515c5bb0df81a4784dd414b1956be6f2c9189051ae9090a04bd4d11919945a38ad6563f41c27d1b8d03ad283f71c9a19d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.2"; -}; -listbib.binfiles = [ - "listbib" -]; -listing = { - revision = 17373; - shortdesc = "Produce formatted program listings"; - stripPrefix = 0; - sha512.run = "154a9eb9da19d4a1d9f6ed421bc13f1f83279cd456b95ab8b7d84f9c48d6aae5548b7357e46041580d4b457758aa090e6352aca9d9e20f1739dc589d4fa24bdd"; - sha512.doc = "11ef594d55ee823dab2a88ad5882e1ea89d7741f1038d3782ac43fa43cce948c1ed72096ddd11d1efbcc3b43ac9bc4dd23713f725aa71807ea174548d9a5c968"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -listings = { - revision = 70052; - shortdesc = "Typeset source code listings using LaTeX"; - stripPrefix = 0; - sha512.run = "233399d89e14afdf7c8f8856e61e3d5bd81781a795087447b7332353a3a71b5c9514c39bea39a851fccadce2234e0fb9af537dfa10fc4be2c25051261f7c67de"; - sha512.doc = "7fe88b4098e5edb4a7e548688e3b12f66714e6cafd35492e816385563039ed81e03b25406a9aa1dd231cf89d2b4616cc838ee352ad1468a756ee00aa291c297c"; - sha512.source = "185f23319d2509c9eef88dd36edf55b7f144711c9836b6ea9072dbbdfe62908f4d556957fd62eee5d50a82f7635216d7069be0c9fcaf646de84a330f56011719"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -listings-ext = { - revision = 29349; - shortdesc = "Automated input of source"; - sha512.run = "c68752d0e7a1ffb7d08f153bf337849164d0287f20ff8f092635ad7083b2e5a6c487bcd9dff913dd029f4ea92750768d23583eed53a0c2d3bf012e4db059708c"; - sha512.doc = "82491f81dfc89950d085f7cc41dabdf7b895b23c8a69f80c1b4f4c420fe8f036ac181b56e3ab60496910d0f1165ce19b2f94c5e268dc1d59e352ab6747e3bee5"; - sha512.source = "fab34f07d6384a5474f3ac30e2e00a75398418668134ac1041cabded6209c9521244e1637e4037e7346bc70b3247ebcd90526d5e34fc3c4e388fa978382bf228"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "67"; -}; -listings-ext.binfiles = [ - "listings-ext.sh" -]; -listingsutf8 = { - revision = 53097; - shortdesc = "Allow UTF-8 in listings input"; - stripPrefix = 0; - sha512.run = "846cc046ced340cafd98f009a55e891bfa6bd5715c94c0dbd5b124599c8e3aed1f248f56592795184fa040285001b0d967dfb26b0fb764bdfadcc2eabe8c3122"; - sha512.doc = "fd15657a8c7e8af4d21721f64ee0c2a77606d965698fdfeb581116f3b13dbf95bf774b77f019bef4cdb4565cd1957cf040818b1d9f78425eecfccc48ab6c5e28"; - sha512.source = "9ee30440400c6cba5726ad3e15e0044fb18b74613237da64eca9e188246193b6e0ac205af9a3e7e1b566503330a85bf6507db7c3ac4caba6c31033f9f87404e2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -listlbls = { - revision = 67215; - shortdesc = "Creates a list of all labels used throughout a document"; - stripPrefix = 0; - sha512.run = "bb0391bd671c306bb34abc336f74e203141fb0b2ae131dc36820e24716ddb5b7a1bfe9650baa5ba4cb4078e6f9d097a9a464aba1022b36f76c3257e25e583979"; - sha512.doc = "773bb3996ee16ca65ef8a91e42e6d1641d42ae50de7fbe4b8324ad9e70d326d0fbca85e245d48bfea137a65f33ffc6e81add6208d239992012ac1851ca12d4a8"; - sha512.source = "441fa4a8ac0e618a997078368794800f57e25545134533b81121718bcec912c1c367b193bf7cb3756102ffad4f75497e63c9cef611319aa478fee955c9cea780"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -listliketab = { - revision = 15878; - shortdesc = "Typeset lists as tables"; - stripPrefix = 0; - sha512.run = "0aead2b70e314639aeb98c199d051fb0701570df0263f452bb2e65408678d437c7eb071c41d8674971e42a0961da30754696a58eaaa41dc32d33ded58a833153"; - sha512.doc = "70ceddb9c59981319ec33fba05c663ecaf549b5dab56f29fa07f9c314d97d999c762ee1efff0d20b5e35b39e89b031458fdde4c5c708e0a1c2dbfdf17d710c2e"; - sha512.source = "68b75e9dcce30acb59d928f4ff95732cd7e37061d31625f8c1835ef6b8da85ef39f4d8ee86b50e299e71cace2ca5307c25641042f325a93a93bd04bf804ec5b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -listofitems = { - revision = 70583; - shortdesc = "Grab items in lists using user-specified sep char"; - stripPrefix = 0; - sha512.run = "d6262c85d8df67b4e85e8d80caf776f723dbf68f71e604c012965ddb1469c2cc3d965f84fe26ef245b6788de4c5e9e5b6f2b97938a0b1c5c67ce8661877a2295"; - sha512.doc = "a1a5cfc935658cd452b08ec422b6530a2d7fa49685b226a27760976ae652fcc0e7c6a239050d2a70aa34b0933b5e5c14c072b6ef7ec294182c274412d830703f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.65"; -}; -listofsymbols = { - revision = 16134; - shortdesc = "Create and manipulate lists of symbols"; - stripPrefix = 0; - sha512.run = "dd32fbcd59fa9ec599b0a06672d2e810b5b8172a96a4170cad03a93be3da21a02a036967d0e7e3a617bad6535aca2b1a34a114c383b5ed1aca22bc45239266d2"; - sha512.doc = "ff8bb87ee326f0b0df175eb41d634d67cf2f1ecb76f1f8dacf2e19d061e54c4f5cf8e01c7e8c41087ca6b69a04f5a3184ee8ee39f00758d3df2f24a4b2e372d3"; - sha512.source = "b232671411ada9bee8e9408ac9f7bb94e57010a39d916beb78d3f04dd1826203b37f8b8d4f040cce5bf0cc6b7ca97eab97d6f764ffe370b09c361a44af530837"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -litebook = { - revision = 70583; - shortdesc = "A fresh cover and chapter design for books"; - stripPrefix = 0; - sha512.run = "46946e4546edce653f21a71689352b8a582f76bd61fa91da3178ac09860a878b38a3fbf72d6a57f6bd94120fe5ded01b598e6516d5f8a2acaabaf6b2ebde4680"; - sha512.doc = "4b91e32193a2fce61dfd96feffc2f7cf5211982d7676c37ed44e32cd03665bce80911f636eecfa6039263875e81f1cf5135b06faae57134d88372156b5576abb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -litesolution = { - revision = 70608; - shortdesc = "A template providing a light design for solutions of test papers"; - stripPrefix = 0; - sha512.run = "15a900b8789ed60364c2c8880522963484d9397f0774c1b945b109c0e320ff191e600e0db7878186444707582bf1411db18145c6ce2545f141be9491ff9335f2"; - sha512.doc = "fe0ff414190a8d2c9bd9752df294007f4681360bdc07cd23547d519e0f7db0972900a2420bb761e28ca54e0a49eeda1d7cb1a2f20f3d3c6eb0cb3e5b09da9938"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0a"; -}; -litetable = { - revision = 70355; - shortdesc = "Class schedules with colorful course blocks"; - stripPrefix = 0; - sha512.run = "a77145b829bfb5ff6d943f11e687f54ccb3abb3784ce9e3bdf145bb66e5c808a46a802eaec1f6932a2917683d64df41cb44b8ec90499a8e93928b46913d099bf"; - sha512.doc = "b4080e8d6243b8e6353f12b090c481cc63fafa7c1c20596467dec79340a8fc1060431f9576d9742c901e45cc1d7285686356bd64cf0d274a7a8bc2c0de8162f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4c"; -}; -lithuanian = { - revision = 66461; - shortdesc = "Lithuanian language support"; - stripPrefix = 0; - fontMaps = [ - "Map l7x-urwvn.map" - ]; - sha512.run = "c2cd1b54daf74e78e6087159fa827ece77f2dc835eda81e03fce861581e812536292f3f0b70b8bb77107c0a4032d12006e870303156a3f3c7cb653020ed9b97c"; - sha512.doc = "ae7a5e3bea2bd62a0cdbbfbde7e0d9e06554fa4b3bb825b45febed42556fa101fd2e6c611ad9fc1cc87ed5c92540977780fde47ae78a89dd37b70f89c94b5e8d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -liturg = { - revision = 15878; - shortdesc = "Support for typesetting Catholic liturgical texts"; - stripPrefix = 0; - sha512.run = "e97da4e9046fbd60ac2b22bc3753db7a75b5b6aeeb6c37293c5dd1e4e8fffd18b32818b9038b816a405033ff74d9c19ec2443b0169721656af687f1c5d62cf9d"; - sha512.doc = "6b342e85917d5a70dc32461de01ae3c6ac66ca247b4ba3d812b7645f1cd1d961c914e584cabf743bb03ea74cac144ec05b03cc09d0c23cf7bbf4b8ce7d01937c"; - sha512.source = "07bfbe684ae7584cac1dceb3d9012607ee24639a0e4e858d2f570f4aa3c21280bb6116123910a111c729dab794e568c05f8778d3b71612ebc288b0c268eab920"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lkproof = { - revision = 20021; - shortdesc = "LK Proof figure macros"; - stripPrefix = 0; - sha512.run = "58c211cf1ed20b36e69ceffc8568fc1cbdb51cb812af79d16a64cbe8a8e7e672a2d49e672501b2cb23ef72c4a04c59017e17e538061159c8b9e797624f8334ca"; - sha512.doc = "01c3f1b50147c73294dabf83d79811862d4742f5a76f69ff6f6a1d5a2b0a8462e3728ba6e4d6fea57d3703c638f6cf04568948d45d4ec8d1dfe59571ff2933b6"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "3.1"; -}; -llncs = { - revision = 69629; - shortdesc = "Document class and bibliography style for Lecture Notes in Computer Science (LNCS)"; - stripPrefix = 0; - sha512.run = "0c50b5bbb2a6c72d61fdac915b1918b76323b715f71ffe42e1575d21f5c3e39fdf0b802c3d139d07894b4ec351a779dfdab53834dff83e09cc20de07736bb031"; - sha512.doc = "be33f338c2243da8c20677c485be4de3a9287b953137e00a5f1b7b04fa9a9c452cd32b5b5adac55626ab84c36d065c958ac505f4a63da32c25cd26ab5f69f2a5"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "2.24"; -}; -llncsconf = { - revision = 63136; - shortdesc = "LaTeX package extending Springer's llncs class"; - stripPrefix = 0; - sha512.run = "ded1d0ad62120e6665653575e6641a9bacb1fdd18b168f7c4389e2d8bbca6afa8cf15bbb7cf087f2ba502f85bb492dfd5d79862e03d909227666af7d8860d47f"; - sha512.doc = "1fc61aab273b9ba1ffaa95cc2716f36d61bc5d7d7c03a2470e3dff5fbee20dda933e4a38e5b39a7e165f68408f993de693ba5547b673e9faa9e5115358c9bfb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -lm = { - revision = 67718; - shortdesc = "Latin modern fonts in outline formats"; - stripPrefix = 0; - fontMaps = [ - "Map lm.map" - ]; - sha512.run = "9e05642ab07ebe05c13d5fa98f3212527aa66a9d049f8eade506cbd9f0652315363a01ae20a9df873055e5283bba7574d51251c7dd86e56ebc37055b92379421"; - sha512.doc = "d15569c1f55553b068b8d3a73efdbdb74137d02fdda5db5d57f29203dcd92dea7746b73a3f30293b2932f046e60697ea015b83d2587cde2783300fa41967c5b0"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "2.005"; -}; -lm-math = { - revision = 67718; - shortdesc = "OpenType maths fonts for Latin Modern"; - stripPrefix = 0; - sha512.run = "2fad475b347824d564525de51ed5bd1cc7ab2fc27fd826a00e86ebabd7d85afce2f7a4c85d9620c9b66d14ea0c813a269a13843a0b27eb7d0ca3e294114aad26"; - sha512.doc = "fb1800349628229dd522d4dffa182ffd2bc9411803f5b349c88f4046d81117d050a3b681e3021a514a6ada5bc49b648b8dda8b553f9294f6d4fc317db0cd5990"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "1.959"; -}; -lmake = { - revision = 25552; - shortdesc = "Process lists to do repetitive actions"; - stripPrefix = 0; - sha512.run = "3613e9d53808b2d1e326175c28acb672c1f244b2e00ea1d544e1e05c73e2a93e49b5e8b187a8a73e87ffbb00c22235781983a2c0a733a6ae5598db12c278a763"; - sha512.doc = "08fa487d9151ea6a49a73044d1f6b41ed0c636a69e04a2c9f04bce996f915e9d267383a6fc374f3292c01244981fdebf6d9fc462ee0fc151ded2601e4554593b"; - sha512.source = "d18894108d2b4b5d46d4e212648b6c7d76894faf4dd45555371d17df5f6d186d4d2b5c8878e745520441eba2459c5fce320bef28e23bb59c09f01fee44a6041e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -lni = { - revision = 69361; - shortdesc = "Official class for the \"Lecture Notes in Informatics\""; - stripPrefix = 0; - sha512.run = "5b091deac5f045af63d4351abfe70e28343ee46fa9e9c62d2cec409b0453b1c391a07abb743be24c8d01f8e5063964574ee684beb7b91126da55fc8e0663a831"; - sha512.doc = "da89225db988132af56a8f6be0330e5ea761d1a8da1237c966c3b30f91c776e7e2c118e8aacc843c23f58d3f514c5e0cc6c2d06a689c886be90f8d309215095a"; - sha512.source = "e02d92d0878fe98ce533ad9fcf058325c7d82f9548cc3211d34ba0d9d83e515c41cc77f588455d589b50ebc41358ecafe0c84e501ac60a402f8d548a1fe87671"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8.1"; -}; -lobster2 = { - revision = 64442; - shortdesc = "Lobster Two fonts, with support for all LaTeX engines"; - stripPrefix = 0; - fontMaps = [ - "Map LobsterTwo.map" - ]; - sha512.run = "ff9a64e40eb1e8d19ed353e4c6e46472f48eaa057a1283e8203eafd895cc622c031a849cf2cd941a664b07c4acc0e9fa18ca65acf6420cb3d40ce09c6ab6f391"; - sha512.doc = "a02034161dcd7d09ab14d907fde0b4cbc570ee7e13fc1945e18c71eaffe90e5dc039266f0ac83dd7887fa1e298add0d2be9e4259cb58f6dbfe13b7bce228ab8c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -locality = { - revision = 20422; - shortdesc = "Various macros for keeping things local"; - stripPrefix = 0; - sha512.run = "c7fde4ad74b339d340a046a4f59ff73da45942631c6b68275d365c18ee80b213d18b84540b8ee535f012aa18ef559e88b1df3fcff4560d241ee1147695824a2e"; - sha512.doc = "5b7fde689fc764dc75930522416cfeb51ec30eec64080b289c085be4b00a0da1c5d6d79d2734502ca8a329bc2935216a8b298495e0ad1ac8331c6d3a5718bb5f"; - sha512.source = "bb1e55107d9b16460b8990f35461bbe775c674ecb2dabb78d19514e365cc97f0b03ad5884b310edc60f2fea9366ee2633ddf4280165cab562038e024ea9267fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -localloc = { - revision = 56496; - shortdesc = "Macros for localizing TeX register allocations"; - stripPrefix = 0; - sha512.run = "abd3aaa28d6c90182990890ebc8aa0ab1d71833549e9a1ed9a09d7fc2db01cad45efb231cb8d3b09a849c948a6f7ba309954d38152af88fa8cd3e38cc857fe68"; - sha512.doc = "40fa07b0d5a5fe0603a087ce9440dd6d95ab188b83b4adf847d7145f9e1f1cc8e2d8ef49c7ee206e341db26afd885308ef349ea5a8c2b826ba6664c347c7d8c5"; - sha512.source = "9a19531358e4809a90c1e571a8f7c507ec1b0807a009627ad2dfa3ebdf97fb749a4f57441b0855e44cae93ccbdc64e79b640de078fb9ccdca1de891a2d156eae"; - hasRunfiles = true; - license = [ "free" ]; -}; -logbox = { - revision = 24499; - shortdesc = "e-TeX showbox facilities for exploration purposes"; - stripPrefix = 0; - sha512.run = "0c6f9d401c81344465d6eaa6eb6e655443c4af1622bfb6751db508638e2625aba7b5e77780fbb6453eee40b8a7ddba84d70ceca8882049779db61f83e7a15aee"; - sha512.doc = "21f379c88638ee8499e7e47abb0850822a08d520aabb352e0f85ed0c38950aa71b4f9b3d430c31193de5640a915d0c84dc28fba71443d3f2e461a2dac53e2b9a"; - sha512.source = "3123ed1fef39d4a252159c65e0cf938933f2ab4c693d8f7364f20e60accb20e32fcd9da8828019a8cefae1fb874605ffbcf88dd7123fff91871858cb5694a985"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -logical-markup-utils = { - revision = 15878; - shortdesc = "Packages for language-dependent inline quotes and dashes"; - stripPrefix = 0; - sha512.run = "87f7fc345935804705ab25ab010376fb72bc4722c75bb115b0c9dd0e0a51fc8bdd6dd4051b76dd083ec07d80b8c59c5d18423da55e0430db7a9f94ad0bd45906"; - sha512.doc = "80c44068a6e474071e40a0bf3dc67f0201b21eb84a041fad8423c59c9e34ce138833c54ead638979357dc3026eea55da034daa05e71a56ecabe701ebf53faf24"; - hasRunfiles = true; - license = [ "gpl3Only" ]; -}; -logicproof = { - revision = 33254; - shortdesc = "Box proofs for propositional and predicate logic"; - stripPrefix = 0; - sha512.run = "d5b15ee5f35a9ef94618f8b092e97ccc4f1959a617c2e604b99ba56eef14c4a1a078d66f2c77d02239289e30878293ea6c9ff4134bd003331fc41fd3db19cec5"; - sha512.doc = "bf8a33c5db05a30cb4f520fa2f73f572a90c3803c4b6dc1709f9e2c80f67e32e7665ce898852dedcd3daa8974bf909034d06f805ce473318f0f512645ceaf9da"; - sha512.source = "4cde464059a65161c6ab069ef0c8905e4e6cefb7ebfd8c7c3b2af909209af4a911dd1bb0daee5b27868305660601187fe7a105660b395de98ae3d30864f012ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -logicpuzzle = { - revision = 34491; - shortdesc = "Typeset (grid-based) logic puzzles"; - stripPrefix = 0; - sha512.run = "2c642c7aa6d6f12e51228432f8bd9fab906ff4dd3354a49f636582a065bff0f534222161ce11306ff6bf3e354a9ca6f6394cf9826b321ac94e9ef5ee8c0621ff"; - sha512.doc = "872a72ed13f7dcb43df3bd2f2b7bd504e3e430030115faadf0a130d2fd94331a335c4853e37c78e4b8aa7c59a44bfd87ad2a484b1b836c2a7526b97ef26ddd56"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5"; -}; -logix = { - revision = 63688; - shortdesc = "Supplement to the Unicode math symbols"; - stripPrefix = 0; - sha512.run = "29a2701ae91a5d7fec49e564b90b8a7e31374d2218680f4fa0c65c9df6dadae78c6599977e88cbf293fe2435d8b7403f41748abfb1cd5f9b00e94c76ff43e139"; - sha512.doc = "7b655c727fdb2775a0d980bc54198d1b2c262842fb278f94caa764204022f8da4bdfef8e40a8560359e6fef23e28aa97da4c08a44c80140ed337010d47173eed"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.13"; -}; -logoetalab = { - revision = 68916; - shortdesc = "Insert Licence Etalab 2.0 logo"; - stripPrefix = 0; - sha512.run = "1b3f01a1acc23b17e30185b3bf2b4e965d047bffc7d87649a40e52e4fc9de36518e82335055c66f221cf10b7c6a1cfdf9f51641f5ea945aa0f7d7efd76780fac"; - sha512.doc = "93e17e5c624aa8a6f826294fc33de8a66731020696525821f4e14a5bfe0f3033cb6ae21abef41d408e627a6ca8d6e12ddfc7aa30d02152e6aadef3fb88fe92ce"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-20" ]; - version = "0.1.1"; -}; -logpap = { - revision = 15878; - shortdesc = "Generate logarithmic graph paper with LaTeX"; - stripPrefix = 0; - sha512.run = "159876dc23e96f65fbb29278e30baa497489331fcf52ebda2adcb19098c2519044ce54ee590c3d91f80bf27b6df0a49aff455da54748c3e04c7e81c2be108e4b"; - sha512.doc = "f85a52b9d95247ce5eb537cc677aff184a434a41fa9c3433955b43eec3e3cf2deaa701718fe77dd3b3cfad5811c5275a097d980e157130705ad5cd3f14276dff"; - sha512.source = "c6c2127c2789c2717072d8d08043ac73a86248d71dd542d38dcedb3a36947f7ceb99f0246787e279b22fa03dea554a6afde6438ffda3fda6143027a7e6f1d78a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -logreq = { - revision = 53003; - shortdesc = "Support for automation of the LaTeX workflow"; - stripPrefix = 0; - deps = [ - "etoolbox" - ]; - sha512.run = "df61c0c6c0b8520f5ec38780d8eb69cfd5fccd21f5120e48eee71e02b004d3da4cc9cb9371a36766852e3ca09a3db86655f1a2639a49741f00134cff1246acd2"; - sha512.doc = "fa9277da81dfb3aa235bd795780e8d3e629558fede90fa9234528b50a11507e59e65e49a0ca787af037186890392dfd45bf6de7bd859cec369626fb7d57b543f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lollipop = { - revision = 69742; - shortdesc = "TeX made easy"; - deps = [ - "cm" - "hyphen-base" - "tex" - ]; - formats = [ - { - name = "lollipop"; - engine = "tex"; - options = "lollipop.ini"; - fmttriggers = [ "cm" "hyphen-base" ]; - } - ]; - sha512.run = "03a780145d4e761f3d494ccc54117e2f92f1c32b8f35a88a77b3145442b040c195b2bae10aaf39557530e548961230c7550e25ea77472a8b0e272f0e72609a8c"; - sha512.doc = "3ee627e18491a48c58132b85cc1079b2a2f857b9453cdda113bedd7c9393f04e15c6215e6cbae99fe3d4c24a297d230a687e3bb7aeb67cc45ef105051838c6dd"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.07"; -}; -lollipop.binfiles = [ - "lollipop" -]; -longdivision = { - revision = 68609; - shortdesc = "Typesets long division"; - stripPrefix = 0; - sha512.run = "2f1f1e6a6b93266a1c6e1c3fbc33e4f9719b6ed06390d2e277e811f429f0b71c3e3133e2e406b837c109672b725bab29534a8e9c9b380128cba6901d5082c53b"; - sha512.doc = "8314b4fd0802dc541d640a706b0bdc3b10f909365372ad9432c49e533f95103643c1171038b7f346b9f92688d27338e81fd5c803070d99f10a61adf690ee6389"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -longfbox = { - revision = 39028; - shortdesc = "Draw framed boxes with standard CSS attributes that can break over multiple pages"; - stripPrefix = 0; - sha512.run = "43164941fd7ad91fa304aee01c3d34ec1faf8672549ae3b2711bdd4c91ae57ecbdcd8b29080d6c96cc64a73f7d7fd74c8621a70604a29dc1474f3c922c34a4c7"; - sha512.doc = "fb319a679631e56122535b99a187d3c2ad5400d4a1f00275b73420c43f98e8b421a4b86f77b868c68edb39870132117de3310a00bde82f6387559c6adf34a8a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -longfigure = { - revision = 34302; - shortdesc = "Provides a figure-like environment that break over pages"; - stripPrefix = 0; - sha512.run = "984f10c8a2196b490dbffb015f2aa6449e8db6475c2f02dd71c92d5a3f6cb5dccb98a4c4f923f6efd3bbb1056aa8e64f324e3d8a051c11879677addaed8d3f06"; - sha512.doc = "1f949e3ada113710f40b6d2960bb01ffffd3f9d26a65fd0482644da2a20c5375454c430e1c7d3b74cf872cbe486ccab9a4e71567592da5d39ad9e72102c382db"; - sha512.source = "03d73c0d0c30d0c69f1fb878dcf843b26480c5005d88034e6f09fce485db3cf249240f2e39f591acd13556cf06677bd567857ceaaf96ec9cd0178f8216323be8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -longnamefilelist = { - revision = 27889; - shortdesc = "Tidy \listfiles with long file names"; - stripPrefix = 0; - sha512.run = "1d16ee9c76784c5124de3abe62b6e916d0f65e979a18a721ef688a960e5d20382dc976de0b68d95c47e9651ad71a67ca97a828f1bdfba8e4a77ac084d7561386"; - sha512.doc = "d909908d763342790b8ab56d333e60d7047894472f3922a2554581a5455539845af72d3867d0a55f5a27e982aa8128ae1a948f40e106fa127f2d01156b55ccf6"; - sha512.source = "af1383755b422a3bdbf7af7437b732a39aaf666c7244e75d498b1252d3644e58a18115a744c4b4c7fe1433f415b40886868faeb064b13647452d444f64fd6f9b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -loops = { - revision = 30704; - shortdesc = "General looping macros for use with LaTeX"; - stripPrefix = 0; - sha512.run = "60ee6999e43ba9082c5a283dac5a930c9075b24f6bc7cd3f719b0336b01dfcb17fb2d5e3c82b9f1636c9bb3e6c923607a3d9237d08fbaf17bbfc1196d0a75281"; - sha512.doc = "9d70b3ae88d64bf2710157db88113224a95947aa03f11a2eb659c61109a451e2a93b2aa5ffd6ce9cf2f1b5fc8e0ef815850a0a9f27c7ec5ddbfbff1fe98ecaa4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -lparse = { - revision = 65693; - shortdesc = "A Lua module for parsing key-value options"; - stripPrefix = 0; - sha512.run = "a5f16ff6e4b9ad5ba247205952a1a2b6ec26ea3f307e7e61527b8c9aad860b0d3cffa4166a4fcde56b2d54f3ae1f22bb33bb892c90f896015b0fa4cfc73a13f7"; - sha512.doc = "0c08dc7cf19169e33ad0c4695dbc2a5ba6f16bb328879d2ab9ffe3cfedccaf65499ec0865783947a7db873b20f573e4443368d39d5ad7ef959b3f24770ec9c72"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -lpform = { - revision = 36918; - shortdesc = "Typesetting linear programming formulations and sets of equations"; - stripPrefix = 0; - sha512.run = "91d5748629ad72ca421834ffc61c13f71240bbcaedf9f0e4279bc6aa0bbdc817f093c24cf5a9c50d5a4a132208969bd356642fc5704ebd5c4ef2b7eef23f27ac"; - sha512.doc = "92ddf3b473e13fe8b77ad955d55acbe7a6da34381bfaac78184342a900f2c9bb1e0981d5ebdb440cf0f44affe2eb0dd862f9b51d2a40c9abd90f1dbe81584c9d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lpic = { - revision = 20843; - shortdesc = "Put LaTeX material over included graphics"; - stripPrefix = 0; - sha512.run = "d918fdc8744a9f5e0d24f6ba4f19bbc4cbd9a5ba4b3c559ab1321c36a9e3599ccf6ee849bd7f2ef6c3156cec6e526a44d27bc033b7dc5b217e289fdbff0bf149"; - sha512.doc = "307109b75129099c191a65a7632ad0cbc903cb2b621b199dcceb7cab5ab5ddeff7ee504d7da3afd653e1aac04236efb6a3c1225f9e533a777295052bcc28d2ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -lplfitch = { - revision = 31077; - shortdesc = "Fitch-style natural deduction proofs"; - stripPrefix = 0; - sha512.run = "189b9d6000d4b762a3c64652bb05f9465d5c789b7e2413e8f0ca281a8d4729a3044aa955ad7eb82c7b8513bd547bb76c2ad2b609e902b07f8f4f018698e17071"; - sha512.doc = "a690ee2c1f9cf5eb36693a4a9385c047a31d29387930211bf6384d7cbedb3d1f1696c0c04269b02ef29b13ebccc69bbc329772f3fee209a1b1d51768484f9a50"; - sha512.source = "b06b45d992045111d1a8aed78267519f8b959415b00b94f75602b35cb7d37c47092e726db881d9094e82d3e25492513db66b210603730f8119d10e60819ec89e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -lps = { - revision = 21322; - shortdesc = "Class for \"Logic and Philosophy of Science\""; - stripPrefix = 0; - sha512.run = "8bc59b5d8874fca88bfe62822f2050f5dee0461523d853a1c92a051e854ddd6a8b2ce235a674bda383f26ad01d6e18a83cac87db2ea73b4af7e22e74ff823d0e"; - sha512.doc = "a8ad542b5d2c28a9a02b5e4d4a43a13e2f3469512cf7264eb7ed78e2c5a29228531de3be7e84e557e3cc8a9ad60e59ca426da3d5e034dae6b40088ee99d2fd94"; - sha512.source = "d1ae82c4a55280183a85fb3eec77306990f694f85c5d6b543b4ce4bbaf87a01b7fae2d6892bbf23587738079be503ac94b6a68b372ca1948863ceab826975a85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -lroundrect = { - revision = 39804; - shortdesc = "LaTeX macros for utilizing the roundrect MetaPost routines"; - stripPrefix = 0; - sha512.run = "6e4968db6d4593fb0ad66c58b7977b77cfc5ad29a8ae8648bfa0f7844d71a809e0b381acfa4563cb1795177374963ddc10e8fad8a62c1523ea82288c7bd02087"; - sha512.doc = "12e6bccf3875f4045558df6e274a13f60fb7845a998de2e8a722168cbef2d9003224f02e379bcf0752770542aed15ec1d1e680a54e347763b554535ffc2e1042"; - sha512.source = "cf39670d2c17420b2283be3264b163f7d4df70288b6c974674cb0ca4d52e3d7f99766f9f0c5b8636348aaad2ca851d1c4b3d530a2a85567a1bec2804ac5d70a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -lsc = { - revision = 15878; - shortdesc = "Typesetting Live Sequence Charts"; - stripPrefix = 0; - sha512.run = "f61d81a49c25972e03120cbf6557d356d6df6937af6e0443e47305312485217b6bb5c0818adf248fb860ec5d42c07fc22fdc0c54f9dd1f3bdcb12486350316da"; - sha512.doc = "5d0550421ee0657c378cc1ad8159e16e43644f533e3d8a013d917c494bbb8d11cba79b99fcaa7bdcf8ef5f5deb88d144ed64d75a5682fe4c4187c60c634297f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lshort-bulgarian = { - revision = 15878; - shortdesc = "Bulgarian translation of the \"Short Introduction to LaTeX2e\""; - stripPrefix = 0; - sha512.run = "b528c16903ca8ed5ce69f5e2397dff8f05b13016384bc1304980cad71d86bbb55004d41db92dc29dd412a12b9a0a1b1ea99afcbea621a25bb20da4639d008776"; - sha512.doc = "7cd22cad45d7ef2972679cf2a3653c3bbcb1d9bcfe94a65fb9dac23760de05b659470ca45cf8be13513924fa1cbb98599a304a51bc18f8f4d6631f082e662bc4"; - license = [ "publicDomain" ]; -}; -lshort-chinese = { - revision = 67025; - shortdesc = "Introduction to LaTeX, in Chinese"; - stripPrefix = 0; - sha512.run = "6d6ac34f79c3d5447c1bbd7f2c87071a92867bd770fd023bc4d6fb48500d27f1b1a8706a727b0d0a7b47eaa9a639c6b5a691b7d21a5e178eb79131cb4bd75b6c"; - sha512.doc = "c220f086c2e0c9bd52ba3ee1eddd2afcb0aaed1c4fc4b9ebf854ce57b4720df7ab3c5475f3164cf740b3020c14c5682e1798e43c8ad9e39eba596a24b04644d3"; - license = [ "fdl13Only" ]; - version = "6.04"; -}; -lshort-czech = { - revision = 55643; - shortdesc = "Czech translation of the \"Short Introduction to LaTeX2e\""; - stripPrefix = 0; - sha512.run = "dc967aae970e535c5dea48264c30f01d5ff3521851abd718905b78497c3d95d403c4f1ec8633cd2a7a55fe0a6bc1e1523391b214fbb8a0e2ed03737b09080e40"; - sha512.doc = "10de238b8152907ec04834d6b4737cebb13bd6567c9867e19e2003d123299c733012569cd64a66d31a79894f9b37c1fc409cd5b76ed10832762988fc318875e5"; - license = [ "gpl1Only" ]; - version = "4.27"; -}; -lshort-dutch = { - revision = 15878; - shortdesc = "Introduction to LaTeX in Dutch"; - stripPrefix = 0; - sha512.run = "c8635db5888817d392706b8b65aa5158a4973cf236dad7fe31a9545857daab15a6c1f2f82ab06e71e50a4af94824b17ac89c394a759721e192966a1f78433d47"; - sha512.doc = "29fc8b6a2645f241e8af437de3a295be8d56a088bd7c7666c35b14f104f242e68ecef2757d62a393400d9f337eb685e48ebac06769259c723d634312a7288ab9"; - license = [ "gpl1Only" ]; - version = "1.3"; -}; -lshort-english = { - revision = 58309; - shortdesc = "A (Not So) Short Introduction to LaTeX2e"; - stripPrefix = 0; - sha512.run = "73e7cebb51b9ae5ce2c6ddfd191a1d7e5358e5a1bfc61ff8d921cf0928e2cde839f232dae6cb0d9dd1b05df907c8c56c3f72a4d89917a6930762a46e1b1aa286"; - sha512.doc = "ab6dccb0110d7033a36d743b9f8132ec5ab4a0b4b334ab7800dd68f9e65bdc7de6c5e766fba6a7a3596d3fd8d6a3a16299344fcbfd67585f1fbe5e519876d7ba"; - license = [ "gpl2Only" ]; - version = "6.4"; -}; -lshort-estonian = { - revision = 39323; - shortdesc = "Estonian introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "6bd3c07c1e5f9d543b0f67a5585cc33252567cc346a8d7feca050baf8ab437be97e73d2c4b4b159102e9c4772f8cce2abcbc25486d73e976b83a3d2f4b9e9487"; - sha512.doc = "e16397fac3e6cefa699b412ada1851c7792520da8af1230274fa1a337b890629b68f71d94b3894044f28e687c6aa60d766377e12232d0e522e82e18dc97428e3"; - license = [ "gpl2Only" ]; - version = "5.05"; -}; -lshort-finnish = { - revision = 15878; - shortdesc = "Finnish introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "997db393d16942e78e4f52eef886ac7b14cba7ec3fd0c88f8c2cc74fb6b35f3802c58c51ac0112cc2b086f9c3b965b5f8d508ea81a36edb7da1ce84ef83cd203"; - sha512.doc = "71c2e5c4d49a779f529a527cda5fcc6e55cfa0149fc2d9272ae7e69aecf2a8a361b057bcfdf5deaa7791073bc6252c3101f5ce0b8d231c779e99c34910a3343f"; - license = [ "publicDomain" ]; -}; -lshort-french = { - revision = 23332; - shortdesc = "Short introduction to LaTeX, French translation"; - stripPrefix = 0; - sha512.run = "1b2ab00e9e69eb058afd96c1ed099b8c783bb97bb52411cc907afcc82d43167ad6e2023a95671e90d059ee43ae335dae3401cc0d1b53c19c186992756aad5060"; - sha512.doc = "2974f067584486528adf42a13cad28afd205f2f52680e89e8de33c4c0debdccb2d0d9d8259d6e2adaa5f86af0b9451232450d40ffacd9f63c43af2519cd8a06a"; - license = [ "gpl1Only" ]; - version = "5.01fr-0"; -}; -lshort-german = { - revision = 55643; - shortdesc = "German version of A Short Introduction to LaTeX2e: LaTeX2e-Kurzbeschreibung"; - stripPrefix = 0; - sha512.run = "c937bb8da86a3ef6d428d134903bf8af74a286d644bedfe4766841b2b5234b34e2caed70460ecaf7a1b1dc57f1faf1396435cca7f714f84d75f15acea12e79f8"; - sha512.doc = "69cebdd6a1444670a154d5cdd199022f6f1d6612b24b05fc8dc1e9f54a89fb65cda1f545341cd37616dbf6dd94077ccb924bf4b49f1473e45eb0bcd33f5f33a6"; - license = [ "opubl" ]; - version = "3.0c"; -}; -lshort-italian = { - revision = 57038; - shortdesc = "Introduction to LaTeX in Italian"; - stripPrefix = 0; - sha512.run = "05435f3a1af4c589267f1841e9af267fc12e2a3fe5b3ea2c586fd352f4a1184f1fc4be408780ff6db1b9212e1e4d1bb7263e3b35e7be9358e97e1712e9abcd6a"; - sha512.doc = "6caa8b7d2795779ef010c0ef9ac387c73b15715929557a6227e0a8112f4d99717ad82fdcdf8d1fe18ad5ea9b502ed559bd7b44f73381475034b481eeb6ab1c9a"; - license = [ "gpl1Only" ]; - version = "6.2"; -}; -lshort-japanese = { - revision = 36207; - shortdesc = "Japanese version of A Short Introduction to LaTeX2e"; - stripPrefix = 0; - sha512.run = "25de64f37ca5811ce39c8efc3e895c1deea317c8dd02ac3e091a41ff11ab7a4730a0e476d323d8375c41fd60401cf441c2c15d614a090092d66413701500d43c"; - sha512.doc = "83292d42fa21614a055420eeb372ae5cf21a9a15b999e0b39f1063f63ee7fe53f77ce771a8aa649e860827214138fbd435161cb3dc4b3fdf2b75775979d904cd"; - license = [ "gpl1Only" ]; -}; -lshort-korean = { - revision = 58468; - shortdesc = "Korean introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "3050ad46874a78c36d8bf247c00e2369c18e122ec89a36b0423df290ba8e06e9c5dbd1d9bba5485e370cd73dc500a6d2415b3d8f6de0eabb3932b9ae5515fb8c"; - sha512.doc = "6789054257f176828b341fe9ad258b1f7100d2fc880aab68244842317b45cea872ee49031ad2c1d376011772fb39d2ef05a700f962279f5ce3a286270b77ee1d"; - license = [ "fdl13Only" ]; -}; -lshort-mongol = { - revision = 15878; - shortdesc = "Short introduction to LaTeX, in Mongolian"; - stripPrefix = 0; - sha512.run = "464b6638ca4bf859ff178238625ecdb7016598fc98c476d3e4b2a24e2f34e6096edef5864ab325ab4df21bcf309a8467deda80b385b624685b38b538a0d40b8d"; - sha512.doc = "cb60632992b187e5cc80973b9e9848675b464b075b13356db171c1a7613c94dd9bf8ea53df47e0c36c910772316f4c43857c8e638819d8ece7c1ce1790fc9d29"; - license = [ "lppl13c" ]; - version = "4.26"; -}; -lshort-persian = { - revision = 31296; - shortdesc = "Persian (Farsi) introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "6430462b11786fe3703e78efc9f1486da78db15601ae31e72a95d516d10a098c8b4c5dc9079490e652c57369698d3b4fe4d75b32c44ddd2a470aa5cbc79ab492"; - sha512.doc = "9e7c43f3df8299db4bfad3c0b270c5b54a1448370e6782d095dd9a9b82ccc186aae98da86b2efe71c34031a5f4a07f54f4640de6d8b6fad913252979d440ccd1"; - license = [ "publicDomain" ]; - version = "5.01"; -}; -lshort-polish = { - revision = 63289; - shortdesc = "Introduction to LaTeX in Polish"; - stripPrefix = 0; - sha512.run = "c61289a35103ecfab025169d432be2b3c7f2fd4ff1eb094b345feae6c9a30bd2cee70e0402eb6c2ea330254cf00d04c02649a40d6bd011f9cc612521c88b94a6"; - sha512.doc = "abc5162a490b9646649dfdf50779ab12632eb3ddc6d1c2bae93a4bb00ef1f9387bc8d873a7b5c062b92a999c9d62b74e64b1688dd3582255f7386958649ee009"; - license = [ "gpl2Plus" ]; - version = "6.4PL1"; -}; -lshort-portuguese = { - revision = 55643; - shortdesc = "Introduction to LaTeX in Portuguese"; - stripPrefix = 0; - sha512.run = "70031c79e7124b9c839571fa95d8b141035a0d8f79665f1e79df8a3154b81f0a7f8b7d371cd00cfec11c141165ca5e1fb0e1cbbc4d0de8c52cc5e0b77c885f5d"; - sha512.doc = "19c55e5547d83fbce705121dbb09fe329c23cd42c1cedb812cc282bb447f9cc51ce0861e61a984e2863103a2bccaa6a4c7ffe8bd2913637930e42747c6947b02"; - license = [ "publicDomain" ]; - version = "5.01.0"; -}; -lshort-russian = { - revision = 55643; - shortdesc = "Russian introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "d6641dc4f19c740898dccc357aa1004860952d0a2add37c6c37fe69ac222dd8396e506ff6a00ef98f77d8cdcea2287c96258214159f08d8b63184eb014ececc3"; - sha512.doc = "b991cb5fc833446ab36c82beefa82afa026eda6b1084d99e6c4525687b82bf7c2f64f9cea38d244065cecf1b12a00331d4e70716880c5bf2509add05257accac"; - license = [ "gpl1Only" ]; -}; -lshort-slovak = { - revision = 15878; - shortdesc = "Slovak introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "bf3821d0846701c2e45d89578625f517567d401d613f5aa7aaa4cdfdf8c4c4f87abec22d6fccac21b274afdba9c29c21a6918fabef77f4cca506071341b7cdbe"; - sha512.doc = "8ee79c17e5ccc9dbb9f833b4f8927b22e7ce368f49f4d016fb936d2a5ec964791d9473b679a037d704efb269dc6caa1344168927a90a8e859527c64b0410996b"; - license = [ "lppl13c" ]; -}; -lshort-slovenian = { - revision = 68204; - shortdesc = "Slovenian translation of lshort"; - stripPrefix = 0; - sha512.run = "b053e42404063ed3275363c361ec85de69dd92281070f0c88afc860cf2ac07b3fef1a98598ceff52308e36c9f2b5e6c406df591481533b80fb0258ae20f32ca4"; - sha512.doc = "851951cd5822f257ecd23d73901d833ba6067d3860002a4dd4449f23d5e7a50fa97ed579f5cbab8bc9494801055ef8f23f6f3249d9f6843a28f7da1b4f15409b"; - license = [ "gpl1Only" ]; - version = "4.20"; -}; -lshort-spanish = { - revision = 35050; - shortdesc = "Short introduction to LaTeX, Spanish translation"; - stripPrefix = 0; - sha512.run = "127fc2d598f16d38b075b4a9668ded064537f7056aae34bdde22f89aa8d301d77cca818976e22aa036f47867929d30cc47e02ed3f724ea26279ecba723e5baf4"; - sha512.doc = "f968352fe1e32a918c1d5ebfce16d3975c436539349af22b32bfae1ab06061ac2b2b85feaed3e8a28da89956f4d5948e7d1a6426766144b0c0ebec72ecfe99cb"; - license = [ "free" ]; - version = "0.5"; -}; -lshort-thai = { - revision = 55643; - shortdesc = "Introduction to LaTeX in Thai"; - stripPrefix = 0; - sha512.run = "e81deefb7fa47e336a6b9fc363fa75c35576fa40de1771fff207dff22106b33d185c267d76a3897f2188d2dbdf9d2b93a1caddcdae38eb770cd7c5d6f1ccdbb2"; - sha512.doc = "fc805e2749305cff0164ccd8d0b043d26731fd6f39e19c0023c87e4812f8509b923d4c1a97594563394dd7bbbe4a99d3b25aa37366f6e5bfb3cc1c2aa21c0606"; - license = [ "publicDomain" ]; - version = "1.32"; -}; -lshort-turkish = { - revision = 15878; - shortdesc = "Turkish introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "769036083d282ab95c5f1fed08d669dd4fb1d2dd7937e5a4e2fad54e20cf56ce3d5100b7aa612cc59dca50b6ff67fbbd5bbe05c085b6121654f873fcb991609c"; - sha512.doc = "3aad40a5de5eee9e59064b15fe3e9c6a2585146fc21fdaf4683bfcba6786366c4ff1b3c38b6932426f53a6a9211809d4173f688f0878cbf2011d8982e3732834"; - license = [ "publicDomain" ]; - version = "4.20"; -}; -lshort-ukr = { - revision = 55643; - shortdesc = "Ukrainian version of the LaTeX introduction"; - stripPrefix = 0; - sha512.run = "82600643c91120d732d50dcc6e14a4b4b4c471bf6c0031890487215d952cbb9675210f11fc40b039aff529bef90282d432966ef9547fc7d0272f85c02a288f4c"; - sha512.doc = "f707d0491bb6a246243035d1cad265787ec4aeb7cbcc73e3500295dc67bf3a3a06b316f9f82d559502b7f108ab636b90fd01c3d1b0ee5f13fa3418910557c8b3"; - license = [ "free" ]; - version = "4.00"; -}; -lshort-vietnamese = { - revision = 55643; - shortdesc = "Vietnamese version of the LaTeX introduction"; - stripPrefix = 0; - sha512.run = "6192e85537e184137189771d2180f1760db5930ad5a8c3dc8788ab5ca502a92b433224b1cc1afcc4e2a493fd17d4e4c43edbc84e4893ecf0770bd07579444eb7"; - sha512.doc = "a0bad6d83fbc288ac1f39bee6bf1cfb3267a47852a0860f56b8251b67b2dbcd526d203c20b91f7adbe42034481255e5e3128b525e49f8cb341f18d9fc2407e14"; - license = [ "lppl13c" ]; - version = "4.00"; -}; -lstaddons = { - revision = 64967; - shortdesc = "Add-on packages for listings: autogobble and line background"; - stripPrefix = 0; - sha512.run = "ad18d38c13dd5076a9213d8a6723b069dd75e546919f106be54a26cd63c3a4186fefdc463e52cd926e85c8020460cde516d12e900c51448440bdc165d4312f19"; - sha512.doc = "38a3b1cdea124cf0cf0951fdcec168b6baa33cec75924687b0a49c1c9713cda847ace0b8bb01ba60fb8945ec2ff421678cd501fa6f5a446ce2ccdd15b2ac34d5"; - sha512.source = "4bcd82c3b8178b1b4ab486fe8e0cb9393ccbca4612bfd7f7507213cedffe8ec92753e16f647eaf28f6a69fc0bdae655228bcae5fe5f1dad2c62c753433142601"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -lstbayes = { - revision = 48160; - shortdesc = "Listings language driver for Bayesian modeling languages"; - stripPrefix = 0; - sha512.run = "8089546f54a849fdd2b8cd1bb2430927a03249f1acb72bd9d37e9ce42770be2413c6ba8186a45eda8f52a3ba2f34e01e6073ed7acce5883d9407e4ccd86cc12e"; - sha512.doc = "9e256d20493164eb1ed01bb6f7dc7f555d9617492fe14688c0852b85e27c1f8f7f1978b1352ea3294bea41f77ce505c6a5bf2910514240e62ce19c47c8da0ee6"; - sha512.source = "9378291c820b65d1f1f126a47d6db40ad757009d71327f84e5b78fc4309d77272231cc892fb6881426130d6571b0e7caca7ee910117a9e2660cef42f6f0d7827"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lstfiracode = { - revision = 49503; - shortdesc = "Use Fira Code font for listings"; - stripPrefix = 0; - sha512.run = "d2752c177194f4926191245f6397ca1ad613e66708e245b29ed6719bfb7438cbbde8dc69a639bdaf7a4447d7737909a5dfdb465a0f0b446c0d30900b7d279c6c"; - sha512.doc = "ab396312abc4174267184dc2d5f4dd61e4510d3b70bcf1b6b84685cbe2e5941d6325d4abeb1d08f85cef62adc953d4a59ebc5d99fe9d7c643f7d25c3d36bfde7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -lt3graph = { - revision = 45913; - shortdesc = "Provide a graph datastructure for experimental LaTeX3"; - stripPrefix = 0; - sha512.run = "9a3137a56952d18f41337f3ea1412180d6a0d7732178fe4855d23647d01648ddefd57859f786534c5bf39cb622da11e113a028135429ca38e6ea3bcfde41b5ca"; - sha512.doc = "efa314f54f3d7444931f4b7410c406fc89c35fc318882683cc97cd479faae00d3aeb58be06c9b174e59bbcc2bae57ff712983ba0c216a270441490866646fcfa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.9"; -}; -lt3luabridge = { - revision = 69867; - shortdesc = "Execute Lua code in any TeX engine that exposes the shell"; - stripPrefix = 0; - sha512.run = "132009434c830ebc5d78978cd1258861c86d53529cd0cfd30e26ed0516767b6dfd7f4a8f9252610394a87a1e42e011499c4f7bcbc7bf6748c9b4ca9eb09b2168"; - sha512.doc = "ff386128898be97c5388c4a3265d7c22c83def095d37aa0c27c167cba95d2e176da519878d53d60b0c7ed60a8b8fe8b5aa987c583dbe87138c54a0533eaeae69"; - sha512.source = "45e1698f7b0cae5dc127d3cada726333878fa39a753c62f6762c5fec55d95d21e4e05fa8fbedeaf7d8861ebe030a6c99ebbf66cf367921a3320443efb0115da5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -lt3rawobjects = { - revision = 66619; - shortdesc = "Objects and proxies in LaTeX3"; - stripPrefix = 0; - sha512.run = "05b70d22b56925542bd3f2ce832b1ed71759cf41f8ccce3d892c5bc6e17fb8ebfe8843a82d0aab6b6e88f38e84819b25bd18344683d182fdcfebcf81a47d27fd"; - sha512.doc = "3aacb576ebf0233692b81daa231ae8a93b392d07a261011e41dd4eac34e295f288f9fe7ca1abc208534393bec1e290362b32ce0906d4c97fe56a598c49e6f135"; - sha512.source = "2e09660f1a59fce87af33d5fd80a59a83ba856233db4032bec88ba8b6f5a8a6306de7416289c51043f8a947dc2481ed90cfecae095425144b865d7a1095cde92"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.3"; -}; -ltablex = { - revision = 34923; - shortdesc = "Table package extensions"; - stripPrefix = 0; - sha512.run = "5a64bd2904338fc45d6150c6be6497d56cf2e190c41018527a59ef075db41f94378f8981d4b92e211f60f2d641408144c546f2de0bbe4a8e94b0a3cadf4311a8"; - sha512.doc = "c3ab3559880077f63523c84cfc5cf363cf9f1d2c4d8aa9cb173b4a2dd07e5afbbdc9b1ea1b29cb50b64c68d65f4470dd9c1656703e0a1ac8955b72b87e33e804"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ltabptch = { - revision = 17533; - shortdesc = "Bug fix for longtable"; - stripPrefix = 0; - sha512.run = "15c839c34935ee27b0b741325a13cbe6ec2f918b007ddd691029ce341173d12ca0e5cdef3a0111c3148257babf686815c5f81c92b6019cbbb022608535f17283"; - sha512.doc = "d85ff06112e540d5bd3cac2bc6100d7d922e44d3388d247e521119ee4145716ef52889515b640e85c8a21405a35fbf63b168af09253e772e826572b0560305ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.74d"; -}; -ltb2bib = { - revision = 43746; - shortdesc = "Converts amsrefs' .ltb bibliographical databases to BibTeX format"; - stripPrefix = 0; - sha512.run = "42e634e7c3018b87825e2bae40513eeb757520e1dba1b1b20244bee2d0fadc4663cbfa0dfdf74fa71f7821f47c41bb7c873a64cc68e153f9b7207f6a8bf3f8a9"; - sha512.doc = "c26b018043c14022acc64bfaff6377988b5e40d09ac10916479079550bdbcfa5219df13988327679e7647c4a679490645376ed23be0601dc4df0528d45725325"; - sha512.source = "0ed23f0084e3afbf51cb6a5c6079db62fd8dca9ef12a159b4be1d68ede6b632155ebc0ee9d6fc91cf93d2cddb5463b5d52b14cb72e7c1d61b975c891f710af3f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -ltxcmds = { - revision = 69032; - shortdesc = "Some LaTeX kernel commands for general use"; - stripPrefix = 0; - sha512.run = "9d9a9835f4547200b160b42c07e918fb8b2cdf9eba91c30647c6fb1c74cb6f9ba60ab40bed63514ecbf334d527148b31fb1ec90af60075d19e28d10d675ded68"; - sha512.doc = "21be07f4f98531621f90b7ed23c06fa4b39fafa12a83c45784b83b5f9728817657b5c2ac2c09e4988ce0c6df0918a7c93d29d7ab89159cca5ce5fc9e0eb017dd"; - sha512.source = "becad978f8b2303a44057f165cdc6d22ddec03e58a26a0d6350bfbaf6d681ba43b105b65492c5be2382ee1e4f814129f86abc2ce376d2d42ddb0fdbdd2671d01"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.26"; -}; -ltxdockit = { - revision = 21869; - shortdesc = "Documentation support"; - stripPrefix = 0; - sha512.run = "1144bd68bec92b4ac9ec8763e2e7df7c6018cd8b88c7ed2f02e7597c3bc13608a562551d80fab2a41b8aa9881848fa1b3501da7ae9c39edaae3720875ff65bd8"; - sha512.doc = "a47852f464e8c31d9a2926e55d62c090292337acad6398568c7082012899045ce32163b798b25ac090e7fbd6ebec95f17a83ee1fdfe5f1f33d0b423dbeed94a1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2d"; -}; -ltxfileinfo = { - revision = 38663; - shortdesc = "Print version information for a LaTeX file"; - sha512.run = "ca078af6b822747e9b337eb5694c1b019444e55f5f9f9dbdf59fa1a65c9445b19a62b0d610514c9231365017d3ea95ad9288a37b62b400c12df74c0c7f774a44"; - sha512.doc = "0020ffc5874e0545c7ae4d1f6f9c0d5d598786444f4e98369e0c5fc872c5d63f235222594a9b0f5d2def5c3dcafc5ad660a4fd5a9e4551dd7717bc6ac06189d5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.04"; -}; -ltxfileinfo.binfiles = [ - "ltxfileinfo" -]; -ltxguidex = { - revision = 50992; - shortdesc = "An extended ltxguide class"; - stripPrefix = 0; - sha512.run = "bb808c7fc1d3fdc7a4d065822a5ff67113bd9fa47a60762b5674040c52149cad14ecd2d0612216b15bcb9684e65e9b51312f83f14030e66de37ee30dabbad434"; - sha512.doc = "534e51a54903e1bbc783b5120015178c48a1a9ff3b06b2121bc9f79c95b7fdc1bc64c374af27a357a44c67df45bb70699d788c150c625d7d949acdce5b109a3a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -ltximg = { - revision = 59335; - shortdesc = "Extract LaTeX environments into separate image files"; - sha512.run = "0c91f46da529823a96ef441ec88d6d3c077a8bd5997bc291f55012e0d227cc24f00081f846ae127a364cba26498a74f2769d401e6d5fe0057afdb2a76a875f4a"; - sha512.doc = "05f9639a0224c779276a3b7f19450c93e255c70680fd54292e1ad41b3c89aa15dc187d58a73475ed9a8f7279faa0f3a0ec15042e75a52c70d78416ec46255b44"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.1"; -}; -ltximg.binfiles = [ - "ltximg" -]; -ltxkeys = { - revision = 28332; - shortdesc = "A robust key parser for LaTeX"; - stripPrefix = 0; - sha512.run = "f99008a8d6d18697d095721dfd741ed2dc48f6edad09b15d39ce2c37f05e6f9c9d613a4ca7ba7fce8755f9dc5659e21f7e7961a7e38dbe17b7114c2337103d8f"; - sha512.doc = "ab28eae4955de3e5a23be1d718fd1e23384ec0e4a8c4b86348bd83ff501ec2e51a3981c60babd478bca0c115ba524367f77f3cabd3f733b82a9fe4cc5fc06878"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.3c"; -}; -ltxmisc = { - revision = 21927; - shortdesc = "Miscellaneous LaTeX packages, etc"; - stripPrefix = 0; - sha512.run = "3433a283f52c41f198b944eaf58a961751e7fd3c0991960a2516fd72af61671e776f48c6a5e241e379b54a08af6fba732ab1c35e42b8c93a62937b5a38cdb767"; - hasRunfiles = true; - license = [ "free" ]; -}; -ltxnew = { - revision = 21586; - shortdesc = "A simple means of creating commands"; - stripPrefix = 0; - sha512.run = "7dda3fd3638ddf528adda0430cbd32cd8fe410a743b7af5bf76e651ee98b10f2481723665a19fda2f2b468ca5c4a838144cbd6e9c457f50362f7b0e83106de26"; - sha512.doc = "91e07169ac377570382b9bc7044c0d66b61268fca38e2fcff4d7075322dbed0d3151976848c93b5d0a2088676e67f3a79d2a555829f170ca61a37b7c40fbdf66"; - sha512.source = "0718785df4355f264738d8929128e4024eae629dcc1fc51e0d408ace6be8688b9281bc0e352e401a6fba71b0a3f376610fdbea7520443233d088e93740e0dbc7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -ltxtools = { - revision = 24897; - shortdesc = "A collection of LaTeX API macros"; - stripPrefix = 0; - sha512.run = "aed74d79bd9da7f7303cd14db5c2a74aab51de03e87a84986b294019a971eb68a445cace8af2394631fc4ec6963ad32347c47a80612f70a7427adeb689d3cf36"; - sha512.doc = "e0a8b28f512a15fec379aeb3350c0611a77652531a66ee5a39010400fe5d1416c40bf6bd89d4e967851b09ad5d11b1d83ead675a0a722255a0e941980d74d1d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.1a"; -}; -lua-alt-getopt = { - revision = 56414; - shortdesc = "Process application arguments the same way as getopt_long"; - stripPrefix = 0; - sha512.run = "60ad4731ac61f9b5c4360bb3d0c6475e2abd358418e20bed29cc94761fdfb97fcf02829b9785e559ca6052a1e82ee7f0b104b166592b9fd87237679ac3caa2e6"; - sha512.doc = "5921a3fd6846b15b0564b9182fdaa5aa62ee6897f3ea55eefbfd07f30f556633668755ee6e356dac23c9b61fd7ecf4013da8f87ebe151a2bd855c36d45f60434"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.7.0"; -}; -lua-check-hyphen = { - revision = 47527; - shortdesc = "Mark hyphenations in a document, for checking"; - stripPrefix = 0; - sha512.run = "89cd0a13578d386bbf584f3c74c6c3ee1a45a7c0bf40480e5396f86b2af29b26abe3ab8aac69be0f1fe23cceb6da33237ea38384854fdfc7be6939832a8cad08"; - sha512.doc = "cd756e0356b36ccd26d1d78c67026f5a27272ac383bdfc6f44ddb630f58d067c05fb9152f1ed9793d71a63af6607107b8d4b5af311563e2c3d966079b2d3e0c1"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.7a"; -}; -lua-physical = { - revision = 59138; - shortdesc = "Functions and objects for the computation of physical quantities"; - stripPrefix = 0; - sha512.run = "b28768f63c2b34930a073139be3e6e90a0086a561bdcdb6aa6c8111db4e6def819c0a3a6af2b5b274d009d3c9b390c6da91416189718a67a4e1efd7eb547c500"; - sha512.doc = "52e764b0492aeb423d8c267f43436821a239e9ad019e43f7fcb881fbec31f9a56b690d792f15f954cec91ba7e3d32f70cb567994a82f3030870b44d0490fb593"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.5"; -}; -lua-placeholders = { - revision = 70055; - shortdesc = "Specifying placeholders for demonstration purposes"; - stripPrefix = 0; - sha512.run = "480d898d4c0e03776fbbb45243cf813a1a7d87b041b70566d74a1b89601602b8b3890f6d0395bead0cc6e9a876f5e154883035e1318ed0781302c2aabdc4a1b7"; - sha512.doc = "13fd2c68dbe7f3672dd6e4d560db81f4b1583cad137ff6b38b82f73ec4e8d20c5b1ca87d10d05b9566805a4f06aa97725d0aa12d5838e4ca146890c824eb57d6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -lua-tinyyaml = { - revision = 66776; - shortdesc = "A tiny YAML (subset) parser for pure Lua"; - stripPrefix = 0; - sha512.run = "3144093c160dd1bbfcef7c0d56a3ff2a6354ed2c5ad30a4201706dea66fb8cb19b4be71087c078c4e36d163e6a785827c378303bfd700c086a7ea6b9d7eb2135"; - sha512.doc = "1b0932800ff6fbad87c2a87e68e433d46de5a0c2543c8fb0c7b7b6f60749db98d9863ad4debdcd508bf1a613d32c8a8fa5d7e23f177517e4f7735f2c3b63c616"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4.3"; -}; -lua-typo = { - revision = 69403; - shortdesc = "Highlighting typographical flaws with LuaLaTeX"; - stripPrefix = 0; - sha512.run = "177b89a930ed061d18e25bafc230b402976e25ebc88d09a0a42c70b5848fdf5b7964fa69160c3456a02f207dce39363c9fbf603c928cd50b373be6ba8a2c8ab3"; - sha512.doc = "60a9e3560c35583377d4629ee4885ad5e8bf52773927c9d3e2b06a2385196303df704bbcc6245a2e0fc93c396b4a6252309180af270d9bd13fada543c9f3b7b1"; - sha512.source = "65eac5cf5c4af2eebbc7d6412cf6ba17a4de37c6c47caf7667e047edc6697a0e93f9f3a334f3ace081127654b6337ebbe5db767d1de2eb48a275c22c0617ca08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.86"; -}; -lua-uca = { - revision = 61023; - shortdesc = "Unicode Collation Algorithm library for Lua"; - stripPrefix = 0; - sha512.run = "e6c703b5576c7d66372a3989618609f2fe4a2b41de78c624e15bd0905744559b2adb3f70536b9680f83897a3997a492a558e285818d38b63ee7e99798bf376c0"; - sha512.doc = "a842063786a53c558bcd4bead5b6affbe9e448618d421435f49722e0a55087c28b36bc9d6bbcb874c3c794a9f5b303c62429b4386801e03f78e2f60c83cb1d1d"; - sha512.source = "7bea2f473bf12fccdc21534653f6237ea3b71c57bdaf651b8f543c5447ba25b3ae3bf735c3a0e7840b31907b777aa87215b358d152c1ba29c0e372a2672b0e44"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1b"; -}; -lua-ul = { - revision = 70206; - shortdesc = "Underlining for LuaLaTeX"; - stripPrefix = 0; - sha512.run = "158abe2f05bc7e00e6b7876023a0763e4a4f4178b5816fc4c5509342cb0b5db0a96fe16083b10f9150e1a7f089a64ade43fe1059a5c970b484d6b0e58adc1691"; - sha512.doc = "3c5c4cac2c17c2eb31af2602b73d3be28928ce72e84b1b84fdb5165463d9f563b20a741a1934f9587e2235ba2f4755cee4767b32fb02b09631cc2afd6af622dc"; - sha512.source = "0e2b2664b7f5fc711ee8213cf5790dd0bed5c9961af0f7abc2bd32c331e3d852cb80fcc350e8d9ff5878ab299063a96774f175c7ff24eef65636713bf240902d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.1"; -}; -lua-uni-algos = { - revision = 62204; - shortdesc = "Unicode algorithms for LuaTeX"; - stripPrefix = 0; - sha512.run = "01307963a88c4507a7864272f321580898e107601fc3784ef46122dd3361f4a272285836e186df8a5454a9825c608071caf79976323e84102eae6f59296f3a9f"; - sha512.doc = "5f667cebc56682225d8a68668bf7e02545e6239b6fba3f8f6ab49bc34d50d537d39484b060d8239631bc4a0de42b63824af04e5e3cc33c528c0925de8419b5c5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.1"; -}; -lua-visual-debug = { - revision = 65464; - shortdesc = "Visual debugging with LuaLaTeX"; - stripPrefix = 0; - sha512.run = "4d75ff11873d88b0914545e2233b7f49e6caca18a73aa71b74844ff516e41399c99c1fbb7f3bfcf420bcdb91bdfd10e42f4e8f7bfee05af284cea78e25718343"; - sha512.doc = "99736a1b08c2eba032d749686d30df9384fec22ae65878162436105ff9edc4c781bee5d6407612edb53edad73cf38aa84c870c612663c5b8e2262b191c526f76"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.9"; -}; -lua-widow-control = { - revision = 70602; - shortdesc = "Automatically remove widows and orphans from any document"; - stripPrefix = 0; - sha512.run = "1e489f819959a321b0baf60420dc25a217b0ed380067bc440307e500295b059f450c961072c001708affec4ad353477627095e71b75ff961f69c7d1f00fd8953"; - sha512.doc = "dc01e75eccbd0650ee0126348ba38c25fbe0a303a8317f7255c7f6efdeff66cc1603fa181bccf4371b0f4c56fa664d2ea99822914c1db9bf6e282f74c4c79f5d"; - sha512.source = "3add66b2dc968e7ce1b56ea4efced89e04f388b7f37f8be8d8d935df42c60fbceddbca6142a168f2a83493ed1fac3617971b7e342d9cf29f793a12ba429e5ab1"; - hasRunfiles = true; - license = [ "free" "cc-by-sa-40" ]; - version = "3.0.1"; -}; -luaaddplot = { - revision = 62842; - shortdesc = "An extension to pgfplots' \addplot macro"; - stripPrefix = 0; - sha512.run = "8834dcf95f0cd2260423ef2a65599c0ebd948c67b61b97ebca8fefd36134d995630238b6ca01b5b9aa8b6fe50bd10b0cd49a350b3e2c3dfcfea00cac56a777eb"; - sha512.doc = "166ad5662521aaa4808ad1031ec922609f7a5049d9d219dbcb41ea4c7f777776794b34e356564cbf03628e6065e1eb4354366e3bc2c2bcae2b6e83344f6f810f"; - sha512.source = "11f90c6f468fd67f58bc7ed6d468873d9c12989b5a4d86563f35ffb9b62219def0d2cc36d45362cbb2fd957928b673b93e52437d26ef3e69ef7edba0b4645009"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -luabibentry = { - revision = 55777; - shortdesc = "Repeat BibTeX entries in a LuaLaTeX document body"; - stripPrefix = 0; - sha512.run = "ea46242da727c40f24fa232e1cd1db4bdaa7391aa372ae7dcb0210e2755fdfa2155de5c80a61b0c4554ab1c23a14bf286d00f07b34aef5edf416ac6b06f031ac"; - sha512.doc = "9b4954e294173699cef6ba965948bbc2518d42158c3f80cfa5bec17c5e58166240f8c8d3864f5dda94ae325aef688db7003138ccdf3d6eb249b544baa72ec13e"; - sha512.source = "d43a9d2024e5293966335df592451e3bd44e3f3522a06163c93da3d242b3e70377dda3612333a64e57d9db8ae8052753cebe9a73e01125b41e495c7a0f3a7592"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1a"; -}; -luabidi = { - revision = 68432; - shortdesc = "Bidi functions for LuaTeX"; - stripPrefix = 0; - sha512.run = "10a304c8844ad7b8f5e1832d59e678599f503c1eda38e1a1e29438abf6304fc44d8d4235e1308d661fa0879494c1779b7110853305b645ff1d2d35cf575bf07f"; - sha512.doc = "8276f91aa767b9c066bf6271f57a929aa21c7ff19a49db5db2e4eb68bae7613a13473cc23b7f5e60232148b46ff33bb86366320d730ba67918e2b009e5f22463"; - hasRunfiles = true; - license = [ "lppl13c" "mit" ]; - version = "0.6"; -}; -luacas = { - revision = 67247; - shortdesc = "A computer algebra system for users of LuaLaTeX"; - stripPrefix = 0; - sha512.run = "21a488b33ef09db0e0fc2c479564cb15f1f2afb4c790ed8e64baa9b10ec1ad3a36486261218959f8c7951bc06d234f0516bed5d31201adc8d573c7490658764b"; - sha512.doc = "45f583d602c6afd13cd32d4049d4305d23ff8b47866a9d95b873e7533d3a46d2e357afda82819dedd450e95e3300aa34a4abfece9e0b90c22d6b2c3dc8cdc701"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -luacensor = { - revision = 62167; - shortdesc = "Securely redact sensitive information using Lua"; - stripPrefix = 0; - sha512.run = "6dbcc3a2870106eb49955b6e67fd621019fcd759b9d68d37e86af9d4121231e50ecaab7abe7fdc7720021575b8f6a28f28c4a11edc72f6ea71f7cba2b76909c6"; - sha512.doc = "95cf6068dd5812806f3a7fb40349f8adab9099c453459789937c68d49e8238016575148254b436724b7764a0eee7caac2459b96ab214746d3c12ba1d268cef45"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -luacode = { - revision = 25193; - shortdesc = "Helper for executing lua code from within TeX"; - stripPrefix = 0; - sha512.run = "b107c9cf774608782c1ba1ce3ebea8d330ff9762046eaa9b9de112b704df1d0da1bd7e33b15e9d847f232b7594d53fb2678cdb78b23d87aaac73cc2517ac8e1e"; - sha512.doc = "622a2417490fb818d5021bb519ea7ac8d886df5002534c4d269268ca4d2119ccc15b029111edb42d04a546e7a46a60bc8eaa6a0a108e9231cc49fc2141ed8ec7"; - sha512.source = "fe53aa46157e24f7f637584faa0c18de62ce3857d9841598f51e09a03354e9cd44bb8fc150e91d5b9ad6d1ca150a065fb1507847cc385ca67bf67679669d7ef0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -luacolor = { - revision = 67987; - shortdesc = "Color support based on LuaTeX's node attributes"; - stripPrefix = 0; - sha512.run = "142376345f25de68236e56fd334d8f24af90f510abc0d2314049bb03142df76988cd5451e22cf98df4443348f7686bbf9c269e311d5036cf8ae621200ae585ba"; - sha512.doc = "d6654c3ac1ca1c18cc60cea463cc3b4b4ed902ba6c29521883079123b9906f089ed25e2268e7a1f92800d9b1158225b50c0b019ea28c68b846e73bcb350dee6a"; - sha512.source = "8b29907f0e0d865704e5de710ac2dd37607330d66a4282ff1f4673306be40ce366a0c2eccdf4dd25c3592e804cd6fa1e2a35044c494c4a3c73e64bd0c264d102"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.18"; -}; -luacomplex = { - revision = 68883; - shortdesc = "Operations on complex numbers inside LaTeX documents using Lua"; - stripPrefix = 0; - sha512.run = "dcbb87d1c5776f20aeebf0748d348ab748e98fdc95427404f252f55fd1df9dc607aace2f6b4bfa086016eec7c4bae295979773d3a70d20a9e32da47974911949"; - sha512.doc = "a892f4360b52ab22dcb282c5bd6e538af83836d40e7467453ad345e2d272363efdef83b29b76864dbccaba1ad3589f2a3a47d20415842f727212d3923191b052"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -luafindfont = { - revision = 67468; - shortdesc = "Search fonts in the LuaTeX font database"; - sha512.run = "0d02fd925b33616d3f23df0609ea6fc1595b830cff8a712f6f93414cf80b51b2b1dde2b29e71084aad89377084b606ee7eeebcc2b5e8342b74fab23d8c97aa82"; - sha512.doc = "fd16f72bba665cffaad3102d6573117300c7df4ea7b4a3104be3de7c26c9f127fccdb54e373cf47220df2652fd405c6dd3f956d2278ec9339e70ea390333af75"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "0.13"; -}; -luafindfont.binfiles = [ - "luafindfont" -]; -luagcd = { - revision = 68893; - shortdesc = "Computation of gcd of integers inside LaTeX using Lua"; - stripPrefix = 0; - sha512.run = "d9b770680bc147b45c3bcd984f58335d4e4d53f97ffecf85eb1c017a1c61ef6ddc06ae3230740769e199dcf674aeb92b5ebc10cb29863bcc4f67caaf9a41d15d"; - sha512.doc = "98905c9e829d1d96a44b25236a1181d5b96b75ca8a05293b185b9f372067cbf35d3db2d0e3343aacfdf840981bcd2af19e089b4a1ca7ae79a7a52b70c6828862"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -luahbtex = { - revision = 66186; - shortdesc = "LuaTeX with HarfBuzz library for glyph shaping"; - deps = [ - "cm" - "etex" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "luatex" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "luahbtex"; - engine = "luahbtex"; - patterns = [ "language.def" "language.dat.lua" ]; - options = "luatex.ini"; - fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ]; - } - ]; - sha512.run = "30b1fcd361cff27688c65ecffbcffc65053696200abfccd543a14253b53a35de2af53b37f7ed1580510a8c63293d2d002cf4d9fd2d44f86678e2ecb09f02e4b8"; - sha512.doc = "3016c12de8386af715932819701a6da1b106c504a7d13ba9bb5a04999737709f474b50c08311c1d4c23b5532ba7c1546cb0585e5375babbcd2091adf52d05664"; - hasManpages = true; -}; -luahbtex.binfiles = [ - "luahbtex" -]; -luahttp = { - revision = 67348; - shortdesc = "Compile-time internet-interactive PDF-documents using Lua and LuaTeX"; - stripPrefix = 0; - sha512.run = "ec1ce2020efcfa3288c70d79756fd221a2cbcfc873b4f7f77d23bb18ce16764873c30a6d24a36dfd86af5ffbd8563c0c9e863cbeb78b8487725fac7f6c153bc9"; - sha512.doc = "cd4f2a818a31b8f9df2dd83590d8cbcb01cb6b06309a7a001711f990250d31232680ef2f10b252704eab611cc20c78cca51331db00f17eabad40ea88a8d2860c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -luahyphenrules = { - revision = 56200; - shortdesc = "Loading patterns in LuaLaTeX with language.dat"; - stripPrefix = 0; - sha512.run = "01025f1aa9abf7fb0c06045e8bebba3572b1aad06bb6edafd916e721c8ecb295fc680bc4da968e4fb059173ed9ba8e8de72ed42923b458a8dc42de4424b6ef9c"; - sha512.doc = "1487269c78bdef7aa626bee1c339358aea03af7df17cf92d48e56a1530b5e4bb7a5dd56fd7e094512fc3c149343e35e9e1683ffcdb8634042f26e86083f3ca69"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -luaimageembed = { - revision = 50788; - shortdesc = "Embed images as base64-encoded strings"; - stripPrefix = 0; - sha512.run = "c0ba8a3164f1a87cd12a5699e9caa23ff7a85debed9881798502436bbb594d48a2e15a135e3a18efb9f3d825af98303a46495148142c810e4601641fdf925654"; - sha512.doc = "188049c30c2c845d18e1a20af3d5ee009eab6064321b1f09aee4b77c3111317755e698e28876561440695c910cbfea6f67e41a5195a5f7b50d45831d7b78d76b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1"; -}; -luaindex = { - revision = 25882; - shortdesc = "Create index using LuaLaTeX"; - stripPrefix = 0; - sha512.run = "baafe2dbcfcc07293ec04f775becef7b59a2349ed5c98333c5a4e680fb3f8561f8749a6abadc6901cfbeae1b6e9a47cca05e8ae76064372585b7d7f4978dc844"; - sha512.doc = "c90deae24da8584170bc2247d5f6ee22ba522c21d3d0e05a6ec2b9594645a022eed1fcf12c3ffbaa03ce0d92a16f75550dc7e0694920ef58b17bdacae02d6fc7"; - sha512.source = "aa97d6618e7af11a7d5aaee332736aa60a8ba5a2cf796296368736c7d12b1e6eeccbd5c807cc2129fd3e4310617dd92e14aeac053753fe7267899b9b3459d8db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1b"; -}; -luainputenc = { - revision = 20491; - shortdesc = "Replacing inputenc for use in LuaTeX"; - stripPrefix = 0; - sha512.run = "bc3f05260800cc537436377c1f9fbcfc6a1a60a7fd892af23ab323171208b083c08c8bb2a5d299e4ce09468f66197d43f68717a57e649c50caf74b736cdb06db"; - sha512.doc = "7c6093b3fa622007aa7e6cc852076090e1bcc64e9b890d1ff0cf6ae552a21e930e791d32cdc2238a0f60c605c92a2192dad7e9d423a2d6e013582926957da58f"; - sha512.source = "a9ae3dcacf7ed85f5ff63e32c9fd66ad6860e149c3d2737bcfad870137b242797b8a3f62e90f290931e6884c74f70a0716c72f2e5414cb8406e5ec0141f13831"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.973"; -}; -luajittex = { - revision = 66186; - shortdesc = "LuaTeX with just-in-time (jit) compiler, with and without HarfBuzz"; - deps = [ - "cm" - "etex" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "luatex" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "luajithbtex"; - engine = "luajithbtex"; - options = "luatex.ini"; - patterns = [ "language.def" "language.dat.lua" ]; - fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ]; - } - { - name = "luajittex"; - engine = "luajittex"; - options = "luatex.ini"; - patterns = [ "language.def" "language.dat.lua" ]; - fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" "luatex" ]; - } - ]; - sha512.run = "21313a5786f2bea08ce55db3a7beedabaf66f3331bd0eac1f8f3d7b926f68e103b14b1a5beaa271c37b60fc56735cc180e424f91db62f6e740530a65495d8e82"; - sha512.doc = "7637835fae934f4fb1aea954270281a986733d0e0592204346edc290f2cd7d5200ee2fa0d9e15a27be8221c3c990a8c3d4654e314f96441a65c197d3bd259129"; - hasManpages = true; -}; -luajittex.binfiles = [ - "luajithbtex" - "luajittex" - "texluajit" - "texluajitc" -]; -luakeys = { - revision = 65533; - shortdesc = "A Lua module for parsing key-value options"; - stripPrefix = 0; - sha512.run = "618719877ab11bb672c319bcc078a625bc92b4d3a783eff8414f6c9597ec8ea3225822afbeb0d1bb04e8889cc3003f4a1ed8063e1ecca410ec6f0170fa55eb00"; - sha512.doc = "be88aac81b85730c0cd85ab76541b8af01ca85326a4449168062ff80690db7d90669dff794b3f5926f1344a0de03289958fd4d2cf0cd2eb4b593dd052577e01c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13.0"; -}; -lualatex-doc-de = { - revision = 30474; - shortdesc = "Guide to LuaLaTeX (German translation)"; - stripPrefix = 0; - sha512.run = "c1bf1c7f367e5d15cb1a5ba0878a4f02dfe25772bed22b48f7376e8448569247233ee41ee8b58c156494d9cf0c0956dc23f4576f053cc349896247de0a96444b"; - sha512.doc = "b615887d8b543af1c125b6e9fb9c533f52816f8087075a8bd4e6ef752ff48f51169f5945ccb067228612cbdeb10dbeb298a090bdb93d201b9629b128b0c5a466"; - license = [ "fdl13Only" ]; - version = "1.0"; -}; -lualatex-math = { - revision = 61464; - shortdesc = "Fixes for mathematics-related LuaLaTeX issues"; - stripPrefix = 0; - deps = [ - "etoolbox" - "filehook" - ]; - sha512.run = "16c945e72165acd9f4bcf20f81e6c5df9ec22f19d45cbb8f076763d2d1a1a2e230938dabbadfcc065e3a060487885ac2edb223aae22d12f6981f5fca5c0f951f"; - sha512.doc = "f5a8db238ae096b7b1a2eaa84643f063cd28e08b328cbcc780171a60c571e858a1cd1941a8ea9053392a8c65b965a81c8cd585ce2accb27e797e3e4e8ad3a127"; - sha512.source = "e04a36a2280fbccb9572539ebc9bafba4edb7ccada25c4b3faadaa61c2f4458d9e9a90e54fa00b5ba675e59f42ed2d076b39918e5c126e2f619f2f69ff904d81"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -lualatex-truncate = { - revision = 67201; - shortdesc = "A wrapper for using the truncate package with LuaLaTeX"; - stripPrefix = 0; - sha512.run = "e896a6e065b5dcc49c24f8492f640f5ebc06c4f1ac8bbb57e8f76768ec20b14a016f2f801a5c5c855d03f72808b5844011aef7ac377a38a388cd843120b4edc7"; - sha512.doc = "242cabec009e94adb1582874f959b10871531b433679c2f66ba9f82af02150d78b8acb8b486a182c5e41f2d0b7fee9a7294ab2d8977c9a6f0c021fde8678a4a8"; - sha512.source = "fbe5c95820b8f94773f8f7e33b554e05a5d8ab2178472a6a6c27a24e08dc7dceb3bc1483999b3b13db389b46ba6f5be1532927adfd1623f0ec003da2a96e5793"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -lualibs = { - revision = 67994; - shortdesc = "Additional Lua functions for LuaTeX macro programmers"; - stripPrefix = 0; - sha512.run = "4387311fb78a29d63959114e401a2b97a8743a50c76a22163e0d14f15cd7b51a50f4be7a19232b32fa4152eac71c73fbeebcb8e38fee3bfc997aaea37bef78bf"; - sha512.doc = "a4c878209934b2b044688dc77b4b467ae4e106adfb5f728f398d7adaa279ba612883ae22f30e667a79a22d633a507b689525356ff24daf12c50bc84dfa798ca5"; - sha512.source = "98fb3af23ec41561f0ffb12461ec2977472f4182b49a37c0365c16bc3d52ce61c382e6ca172ef92638cc0496d5e3073e4c96b13acf390e783f1bf46d34226d2d"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.76"; -}; -lualinalg = { - revision = 68918; - shortdesc = "A linear algebra package for LuaLaTeX"; - stripPrefix = 0; - sha512.run = "91c466d51adeee70e9504deb30a623c41d4fd6b461e76f4a6dba2529ffb3e879ac9bd706845b00354418d6a600b3c774029000b3495ebb4711b152e274b87d0a"; - sha512.doc = "21d4a285713b962e17ae2f83be803abb77813bb6fceb085787fba35f2a1956b88cb199e057c1f49d15ded68c3fa186a5af0dc5bb1ba99db07dc557c3a2da1a44"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -luamathalign = { - revision = 63226; - shortdesc = "More flexible alignment in amsmath environments"; - stripPrefix = 0; - sha512.run = "61a2960d103cad9cd9776de0c08b8d2167f6272484da2a7ee067951f7bcbeaa683e046a053c1f4d35ab83c8d70fb96e9b7b55566852d2262162b90c1a63f0b80"; - sha512.doc = "96a1fd4016b189d31c966faeba0942d4b3bf24208ebc6c03281336af6d86504f552f0bb705a30e6ff108ff692de969900a229b061f7bc91c6cbae68fa42e8143"; - sha512.source = "7f4c636a013d6fe8f0771ff3d3234cc2b5f098d0369d9ca73f3aea29dd47e609ce56ba20cec0dbeb782988200b8fffbf62c1957055d074d21b98051d8c155ea1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -luamaths = { - revision = 68883; - shortdesc = "Provide standard mathematical operations inside LaTeX documents using Lua"; - stripPrefix = 0; - sha512.run = "1c5a53bd44f062a4531bf4099c0dc1e76a47f5475901bac7f1fccea0005f9704df257044b76063d51158beb0d66d18e41ed6a4873388f0e531b1ff21ee1042e7"; - sha512.doc = "0846e5ece550ec73aa65b07993faab7151efb100f6e5cbba8a4e73b595b012f031435ecae7d1100690395bc973fc82b617a0463bd3388e38081ad32b8d16d78c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -luamesh = { - revision = 63875; - shortdesc = "Computes and draws 2D Delaunay triangulation"; - stripPrefix = 0; - sha512.run = "e30e6f2bef6958c2f76df6aae5ca5899b91f41fc35afdce24840e2d028222c31a0613ba3c7eef27629686137f15eac24d3b97b7e0fc33b5d91adb7b766c0279a"; - sha512.doc = "286dc5fb713f06fccf7195f317791a8c775ddcaeb8cea4004fb7a77882bec36c60679ed9ef725128ff354c7230becdcc623683fb78eac9b24cf044f9cc97af1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -luamodulartables = { - revision = 68893; - shortdesc = "Generate modular addition and multiplication tables"; - stripPrefix = 0; - sha512.run = "0b390717c538a8c44cc7e8214908149c3705d5cb453d7776015eed27638ed0c0d16ea0b5be5abf2b6bec6e410b849f35796f574923303ebc883c75f7221f7634"; - sha512.doc = "dba85f4e58f7a7d8f1f81d0051a0305cdf51e7bd1ad4220cebed513871c6a3d816d9a6048cdce352f48527da2b04700b94210eedce5104af289dd0508fc72f63"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -luamplib = { - revision = 70583; - shortdesc = "Use LuaTeX's built-in MetaPost interpreter"; - stripPrefix = 0; - sha512.run = "97551597042f2b609abfb7c275e3f371a57aa6948b4085017926ff8a8adba02ee68dcbc84d3cfcf4eb3ccb93ff1c61157c9dab2e2b3bc945707ce106e17d169b"; - sha512.doc = "6c366637d27c498cedbeb6222ea8b48a807ce806bcee89cbbba7f7fb5d6b3bacc7fa4ffb3c1288a02b803bfd7b96725b12fd46eb2e9ec965e2b69f057b1c2c03"; - sha512.source = "546d9403d20ed58a470b9e2fbd5b34c1863c4ef69e90156a6c0071f09ff425f6bbd9d39813b870f55997cafa520caa9326b79e31708630f9b3a44b0b0ceddc3d"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.26.4"; -}; -luanumint = { - revision = 68918; - shortdesc = "Numerical integration using Lua inside LaTeX documents"; - stripPrefix = 0; - sha512.run = "f34fdf0308fe4c9aa36d59e11862958ee1824761e5aa8ee62e6df81b335ec8dacb203a64ce5e26395ab612583126093dcddbc42dbeb927c90bd3bec73c1b5485"; - sha512.doc = "e8718322381688bc306871de22d585ad50128f45d25ec6864034a42cc661e78c510dbfffee46ab5a6da0e3018f1cf3d35974d9e4cf27e4208e9a8186aa03e656"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -luaoptions = { - revision = 64870; - shortdesc = "Option handling for LuaLaTeX packages"; - stripPrefix = 0; - sha512.run = "0169029e4eefcb746f48b266d590c7d9f3d4d376070c762139accf27adb8e48badce38769d22250519b3482b4752c55f66a165f4a6c59b20c3048738dcd65a72"; - sha512.doc = "8731eb75ed8dd7089a6825350c2cf335049ce80c1ff378ec26dfe32423e4278737abadf7c83bc100837b2676866d38fdff50024845dc78c1625e64f8748e140a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.8"; -}; -luaotfload = { - revision = 70234; - shortdesc = "OpenType 'loader' for Plain TeX and LaTeX"; - deps = [ - "lm" - "lua-alt-getopt" - "lua-uni-algos" - "lualibs" - ]; - sha512.run = "3882508595c12b7eedd7bd657e28e33d1d1ffc546ba6b281e6e212b1f9492a124e06b0d27da28b5ddaaff05728b231fe044be581bf001ed1441fedc284b2f436"; - sha512.doc = "bcb4147d4713fcbc28094209d9234aa95e5bceaae53acb97674cc4a458daa8ed3db4685a8d2dcf7da29218e06daaa4a727c3ed2c9c5d991904054fbd1a023459"; - hasManpages = true; - sha512.source = "5ff132658ec2fab529595dc150674f19fcb266f87b6f294f42de04c4aa2c067091cec7a416c201b5970e56dfa3adb6772ed4276370aef7bd97eb6bf661bf2e8a"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl2Only" ]; - version = "3.28"; -}; -luaotfload.binfiles = [ - "luaotfload-tool" -]; -luapackageloader = { - revision = 54779; - shortdesc = "Allow LuaTeX to load external Lua packages"; - stripPrefix = 0; - deps = [ - "iftex" - ]; - sha512.run = "7f2558dc265746f143520c2c6f3bf2ed05ac8c54988e573519321a7fb5a2a991220d0eb8906893f77964dc01f0e3f16b783dcd20f809042a11d29cd137f557fd"; - sha512.doc = "64719d715fc98bc09ab17db5f2053ea3e34d703adda6677f50ffe178a974230e8a03a9019b995238d073580e1faa745e655a7207468965ccb9f67bfccb5b5a49"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -luaplot = { - revision = 68918; - shortdesc = "Plotting graphs using Lua"; - stripPrefix = 0; - sha512.run = "99bb803fa2eb46b33e2f3d7bfb1b307dd268df91d392f8fe7bce5e45db65fb8b1de66d8d62f0bb2912fbb5521a73ea60b6627fee3fad23262fb92485a7858c80"; - sha512.doc = "b34d3b67d1603fbb940856d9da2eb4ee57afd87923c2a1c4541d5d9325cfd597bb47b2ecdc829b2ce4eb3bfb35eb9b968e0cdba2cb9d557d12ccbca959506f53"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -luaprogtable = { - revision = 56113; - shortdesc = "Programmable table interface for LuaLaTeX"; - stripPrefix = 0; - sha512.run = "68ed668fcc84eddad444edfdd18ede2c94ad81fd61162d62c5a052fabcda6e5bcb519d6eb473721fc2cc090bb7f642dd55ac35b9f1f0a682b2fb8c480a0a1014"; - sha512.doc = "d91bb2fdf9851b1aeb3dba0b5eeb75bd1f9aa8c806fc3a99e063af7f56e0878152630aa18731c1c40aa00de72a0d192981a272d586fb25f7a19d14b4fc25b5e6"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -luapstricks = { - revision = 67207; - shortdesc = "A PSTricks backend for LuaLaTeX"; - stripPrefix = 0; - sha512.run = "742b75749754c3370c64c50bc8138474f0181b4777875227cccf749851aa0d42cb490cddbd72a9624b931fe99f02e2727fea4e54d36b1d46cb084c666dca445e"; - sha512.doc = "634cd9587c4fd9c6fc558bf9369b191e0901b58d75d871815592f3e6959bb103d32026cd9ed48ce448a497833c30916d39b92cbb85c6544b41b7341277dc6820"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10"; -}; -luaquotes = { - revision = 65652; - shortdesc = "Smart setting of quotation marks"; - stripPrefix = 0; - sha512.run = "20c0c02ec0a89e37d82d6ba10cdd9fce632189c442950f325ebc09f5cc2a1e798238ac9d3e31245e113d4909dd0b37e3a145b471f7facacb285a2a2450bc8998"; - sha512.doc = "3a9b36054a67ff69ed8dcba75a6d5bb5bd4783ec301e59f491b82954184ff7793e68120762ec95182d6dd00afa1fd4421d2f87fc8294ac39061c88f50c37d803"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-30" ]; - version = "1.4.0"; -}; -luarandom = { - revision = 68847; - shortdesc = "Create lists of random numbers"; - stripPrefix = 0; - sha512.run = "1b5f4f420fe5acd552e7ff34459184319337a586b19f3b53111940fa648b09924f03ce7ce4da7463cbc894e65ef87647ada660922ab252b560dfe99295255097"; - sha512.doc = "4be8b8d72bdd6d4eb33999d662e06a60c8971d5a990b649e37c990dcc6f708856ee61a59ad1dddb6c083eab09e809ddfb65a1730a8e76bb6aadb1a240c809a26"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -luaset = { - revision = 68883; - shortdesc = "Set Operations inside LaTeX documents using Lua"; - stripPrefix = 0; - sha512.run = "97617f8c763ec968750949f5050ae8682b179caf6433ca036c820017c4ef73aad3f96a1f8071be490c029db25afc6b85c45310ffbddcf3c8ed7b4b5547cc6e58"; - sha512.doc = "546beb759fe4f6e6a6a9814eb46935a3d1245bc2a48878c8391738e92e79c7df2148e564b2eff0cdc60281b6f071d8fad2edbf171d7c1130b1068aad11aa5a19"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -luasseq = { - revision = 65511; - shortdesc = "Drawing spectral sequences in LuaLaTeX"; - stripPrefix = 0; - sha512.run = "b77936a1b92ec8b3889ec9ba8b356fa235da6eeca98d6a86f315723c64b4c0a7d8db2213cd9fdad4d2b38cfa8af1bc00c7861f15a9f4f1a809ec86bab8a16f77"; - sha512.doc = "82825043ea6c04a76cbf0440d9de08ee281b843342c6385f11cccf06bd11320138119fb90944f6f3fc5aa8ff9854f1934f7890809f0a8175de389ef5cd448cab"; - sha512.source = "3a6b4fa48956e2f448a1be96eb9d05f236c9e1b2177de13ad16aa942c9b4ef5d4d4585bdb6f5d9b1a19901375f34cbd381430c629e037be500d84cf626065500"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -luatex = { - revision = 69182; - shortdesc = "The LuaTeX engine"; - deps = [ - "cm" - "etex" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "dviluatex"; - engine = "luatex"; - options = "dviluatex.ini"; - patterns = [ "language.def" "language.dat.lua" ]; - fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" ]; - } - { - name = "luatex"; - engine = "luatex"; - options = "luatex.ini"; - patterns = [ "language.def" "language.dat.lua" ]; - fmttriggers = [ "cm" "etex" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" "unicode-data" "hyph-utf8" ]; - } - ]; - sha512.run = "5ddb75ca2e358bea261363cc19d39a37a9e467f9cbf4f8006f036a96fea61cb00f86c4000c09d7dd07f71f9b9a01ec165ddefb862aa84f0bc3da6a387ca1f42b"; - sha512.doc = "36a5dfb6b7ca09adad807d2fa74df854363107eb3fb514977e3ed8c69eeb1181a19a55a49eb8c001a3532601c0a222a3ae9d130827caa19864df03705af7271c"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Plus" ]; -}; -luatex.binfiles = [ - "dviluatex" - "luatex" - "texlua" - "texluac" -]; -luatex85 = { - revision = 41456; - shortdesc = "pdfTeX aliases for LuaTeX"; - stripPrefix = 0; - sha512.run = "fbc1306d40e1c329a106d7ec4ef79ebb99b2869ce72c45212b87fa03f66a18b1636324dafc739a33500be77bee2c71ebeff02c97c42f85716f5bded4dcebc021"; - sha512.doc = "4bf353f60c305ea76e66848920e521dec0c66c80f71ebdfb0593acfc9e2914eac272eba3d69f63f43fe8be903cfbb2da7edd82cbc3d38a897934d91f1ac276b7"; - sha512.source = "40f2732ba0eea372d084c7a9096e12de76a6f7c4ee2c8c9c042ae51696ca46fb527aa73dfb37b7c6a1a75f9753ed32b28fb9d3f2474cfd54528336b4a3cc95e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -luatexbase = { - revision = 52663; - shortdesc = "Basic resource management for LuaTeX code"; - stripPrefix = 0; - deps = [ - "ctablestack" - ]; - sha512.run = "cb187dcd0f9e454a3b9d021b802ac6f7d09c3eee68adb5da31035f5b7bb36d2938ca940505ee08c8410ee0e5e5c81ffdd21617ea5ba0e9ca7b58abb6ede3defb"; - sha512.doc = "5dc696009e84662fc56443d7a5d61b3f30adbfeae3cf7176e81e676087d0fe580cb0575add49999ea8d5651850b7562c775b0727de01934465f3613ab7344be3"; - sha512.source = "ebb46d5d4c3f6ccfdbc758f9dab64d7e83c2fe988f7da6852dfd5e786bc757f2438f86010a695eb2e780a02830f15dea941de7fb5bdd6e6561df0774b476dd5a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -luatexja = { - revision = 69988; - shortdesc = "Typeset Japanese with Lua(La)TeX"; - stripPrefix = 0; - deps = [ - "luatexbase" - ]; - sha512.run = "07d0f7ff77fd6f59561c176e6fc25d4b1d4860696aa728c0f9586921f1f32c5a3e01a2f463d5ad3830648fb19ebf6899857259cfa042263f3f17a66b1ec6e0de"; - sha512.doc = "bf01874cca52c561a4ce76d7111596b5a0a20dc0c6f7c383f8bbc9149f4fbe31aaf652d4902ab0b8d10f4719811fd16b9e8d5cfc97740429dd67f3c6a8bdf312"; - sha512.source = "5a92e1abd52c044957a160e41b74b15094b3a85bd8d29ac06ad35b8117ab9ece4d98b93e988994811846ba8bfa4d56f27b41708776489fd9957ecb0ae783ade8"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "20240219.0"; -}; -luatexko = { - revision = 68243; - shortdesc = "Typeset Korean with Lua(La)TeX"; - stripPrefix = 0; - sha512.run = "7815d0d6caada77e5d72c410a299de6349a81f635cf9f2ae5b61a73e5619808b8997de70a35a0a6e8cfa1250d413645a9f90f398582e061c92138dbca97d4117"; - sha512.doc = "cd1d68f9fa8d5bc5491f4a58f465ea8ddc4a0c500f7c24c2034c75f33ad31d869d2d63d836ea6699b02b04b69406290e7f98eef1294ce8be0f9358f9b207c9ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -luatextra = { - revision = 20747; - shortdesc = "Additional macros for Plain TeX and LaTeX in LuaTeX"; - stripPrefix = 0; - sha512.run = "03c95a5e42d8fc0ed88704799a36624ebb48b9c7606acbc09de29e5da845ede3f239a6dda43cbfb4377971cecb55b1f5280cf0ea1aae5057f3ab8df2e0870745"; - sha512.doc = "f1c0d31fbd66f4e78eb638a9bb336f49de3d19b29bf276fb6fd0d976ba2f33599c1536ec82f7887af1c1ee359b48b1048d400b7faf0cd8016b914f4c5318c849"; - sha512.source = "2050bf6c907f6f4e210b400cc93b1786a7ea8407eb64e90054b2ac8408d31689fdb1ffcf4859f1bf6c24c298e5d07fcbd201574b9b397de192609dda504502e0"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0.1"; -}; -luatodonotes = { - revision = 53825; - shortdesc = "Add editing annotations in a LuaLaTeX document"; - stripPrefix = 0; - sha512.run = "4cc24f72014d50179fa1cd3630a483677a98a5dedd28e94f2c7003c3c61eae66bf9b6787bcde81b654f4187d873440828655be372b4d6bbf59c802da23beaeea"; - sha512.doc = "2b7298a56975f0ac71bf6c0327d95531622de23a33c4a1999cdd35ae960766342071722e388fd3d9fc10fcbd23c0752e5e5399516c8465f7e66f5ea8b952e447"; - sha512.source = "0ed8cbb2160246c499ed98a7865216e8f5739a7c87a1b9a6ef8b63944a4b3f2c6a011ebb4276486d2ff8fca96428b0c25e87936fade5967cf41f7cee79307880"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.5"; -}; -luatruthtable = { - revision = 68893; - shortdesc = "Generate truth tables of boolean values in LuaLaTeX"; - stripPrefix = 0; - sha512.run = "3f239ac9d477c456881921140345415d2bc9f0db00c9180bdfac2120c86669f2a52fe8dc92752535b2dacbbab626e51ef614da7fc10a93ad90a2322dd1821343"; - sha512.doc = "5e17243dfe5343e211991a9e7b73d8b2d454042bea5cd15fe5bdf257344b4953d9a3e3ed9c2bfa66263c32c53a93be233715f2d524bf78c682a57b67332744fa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -luavlna = { - revision = 67442; - shortdesc = "Prevent line breaks after single letter words, units, or academic titles"; - stripPrefix = 0; - sha512.run = "012bdbcca4062a2f551b28dbbd781c885fbb557f5c1258157db01fff7141c8380341f53a9e58c3f844c022af64a748299efb703de5e37f05acaa0d385b8ab8ed"; - sha512.doc = "a785d65816ff637c4c08f6a0ce95e5a65c4121885f6af32b3e68574845adc10886685451cf3fb68cff05b4ab29c792b3c02f793d912e86ace55f2602af6d63e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1l"; -}; -luaxml = { - revision = 70117; - shortdesc = "Lua library for reading and serialising XML files"; - stripPrefix = 0; - sha512.run = "d337c443f09a8fed88a3530e94326660ebee59260e873e7581226aadc622fabfb37ace31ee105fc321b6633d4fd8c8117739ba6884b367cdaf708f81f686f3ce"; - sha512.doc = "ad30466499514af7dbb5425f560953c23e94f6af468b2e693a560de249eec4b5db913371884fdaa36c22693b5175d40da297fa98e22906fc4c501b9f3b7de2d4"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.1r"; -}; -lutabulartools = { - revision = 67714; - shortdesc = "Some useful LuaLaTeX-based tabular tools"; - stripPrefix = 0; - sha512.run = "eeb781b572beed01f5a787a4d0351289c90751ff49a289952a150e3aa013b10f4b0f69fea546709ce9c6ee077a08a551ac9e03d192c1064205eb2af6e907be1d"; - sha512.doc = "9595cf869f480951f9d0d142abb05548e4f71d8af6d62c4ff0626ad9d9019d63b91333bfc8ba1f6948c9075d62fb7b7956658079fd17ea5e86f920eb7c6ed49b"; - hasRunfiles = true; - license = [ "mit" ]; -}; -lwarp = { - revision = 70072; - shortdesc = "Converts LaTeX to HTML"; - sha512.run = "db403b10401780ea2e7db5d849627e3ce5ff4ddbf3fe9c4e0251c29da5e49f7cfda768c9ea8c397e7c8ccef2c25b3db88db0c406a4fff4ddef081a7bbd32b88a"; - sha512.doc = "1f818d8419e2e7d986fb35ef662f95a3ec24c6a3f439c3ee08f9ca9d8917871d4d21a8ba8f960346479bccf8c926b32751604912fa0274786bfdca641f83b803"; - sha512.source = "70fbe22a77b4494f2dff7e09448a1dbba42d115ef1a8739a305dabba55f8bcdf47cc3e632f09285c6de0442a5050551f7f13d15f573c88459ef8bec2f29a5f70"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "0.916"; -}; -lwarp.binfiles = [ - "lwarpmk" -]; -lxfonts = { - revision = 32354; - shortdesc = "Set of slide fonts based on CM"; - stripPrefix = 0; - fontMaps = [ - "MixedMap lxfonts.map" - ]; - sha512.run = "aa732f403af1adc898e6ac462412a59e4d2c8821ef47807ec5d8c1ce565a73299d472377117bca3fb30add468b546280b1603feff95d35090b338f87b279bdf4"; - sha512.doc = "fed48ea91eb5ad414463d3b929dd4deb5cf433be63aa2753acc251aa1e8b85f0db7307a0ea96ea0bf9c4d9b14d0b90d26cde703bed2761a4a1b789ab3d117eba"; - sha512.source = "18da6f216135745887160dcc1df6ed72eb0e49f60a445e45326c84bed8fd98cd66316e21a6e0e7528d551917092f9715641fc68e02371b609690e00403ca5d96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -ly1 = { - revision = 63565; - shortdesc = "Support for LY1 LaTeX encoding"; - stripPrefix = 0; - sha512.run = "79ec3f1971587a3266d3351cf4d97e44d7871ace695c7f229b92c819f1334c2032a3c906a2e7e74e98fea5f01ef4dabac9c2dbdbecf68f0d5512c637288e8297"; - sha512.doc = "c1a39c96000fa3e929ab6518acb71c26bb06179cf06af4f4eb1f2bde0d21816e108c6a89dfa2f7dd71f95887a37d532bb2914a03732dfe4080541ffa204e8e43"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -lyluatex = { - revision = 66880; - shortdesc = "Commands to include lilypond scores within a (Lua)LaTeX document"; - stripPrefix = 0; - sha512.run = "8d8491e9760f7464cc420b2b457f61c6f9e8e08b7de11dd9194f39330bb193b534f5ae3ea981317e4b2bce536149ca002f532f98bba5e0d8cfee5450c6b9b171"; - sha512.doc = "96d99f944aed67d9e59714deaba08a5b41cd8d63f7c8a38151b2d7952817d5096517d1c643246dac8bb3616efa9c44180264794b90175aecef9362d32a83bf3b"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.5"; -}; -m-tx = { - revision = 64182; - shortdesc = "A preprocessor for pmx"; - sha512.run = "b56bc4432bcd340f3e92f5043c38bde7f14b5f2d32b9433fa21c73c20f7ebb981714175aa6f4f871636efb62a52cd24aa639e87a320039313b16db1b027ee2f5"; - sha512.doc = "316fbc2b37b903cae8da6bb9f44b8afad0e3e577c6fd84664e1724ffe318bbdbf9609dcadd5cde6a14cc5acbc134f69bd7a87dd90d9da7d4442a5f913b8132f5"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "mit" ]; - version = "0.63d"; -}; -m-tx.binfiles = [ - "m-tx" - "prepmx" -]; -macrolist = { - revision = 60139; - shortdesc = "List operations for LaTeX2e"; - stripPrefix = 0; - sha512.run = "d722a58921aa7f6c5a887c022027df5d04c905f9c1cd7a95df31e1e3d9ad8c583028436eeb35217cb186aee6ea21efff09d3f52fa5284963789ccaeedc3342e7"; - sha512.doc = "21893f581ee47e136a47c56deaee6f9c4e6c5e4380027e22bfb62cf6258502ecb1a647f11dd5468b8687c033e0cc708397efc2499307db320963598228dd3b4b"; - sha512.source = "ee930f3a9d8a909c9c139f47b9022badf50ead0fb95a87a38dc2850e1bf7ea38d346ac362e1aeeb8c2dfb661ce5dca0c3cb78fadaadc0524b080d73d3241d0fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -macros2e = { - revision = 64967; - shortdesc = "A list of internal LaTeX2e macros"; - stripPrefix = 0; - sha512.run = "4b11fe67e0a57f98bec13e9ce928664dbeee189a2eb303312632a881ba4f321fb5acdfbec9d14544782b86a961add6154a21c731f58e889ea58e98459de05c39"; - sha512.doc = "71db4e3a595508119b1a8059c25b7a38e3252398186386519e7edc28b3a75cb6d6954f274795b9ef88e360b1e0998e4da2a29ba1f5ebf464e535ea90c498e8a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4a"; -}; -macroswap = { - revision = 31498; - shortdesc = "Swap the definitions of two LaTeX macros"; - stripPrefix = 0; - sha512.run = "39af1bcf247986c1f7559e1523d1d33680270602bda1d904404db0700452d203f950eadb2d9808a1cd3098bccf070218bd791fdbe5be4a3b0f539f013ef226a6"; - sha512.doc = "4e46c824a6a5909fca7d8a4628c87cc7a372ae5eab0d2f5110dc1f205e072e53a817043cbead53dde55e71c7c1c0e23695ba963c27e46bc70e2f84d430b656d7"; - sha512.source = "43ac07d97c89b821f89f7308acc21521d025bad0dcc82f281e011254b163a54cc457db5bc0dc74419cc5bdfc4297e18cc886bbb1b22715dcb7d41e6bcc0c2374"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -mafr = { - revision = 15878; - shortdesc = "Mathematics in accord with French usage"; - stripPrefix = 0; - sha512.run = "802d108e7deaaa1a42b7f1eca5059f9547f0f4edb2eb5f8f3f0b68d03c05662f37d2bf7b25844dcec6b89d6d1f0babe93614cbc87fe1e2ca0ac2153602c0cad7"; - sha512.doc = "5e3a0c42944944fc467e09751c1881dfd16ee526c78e509acbad394725703771893770d11e5aa16b09b6b5d1059331b72ce0f1e85c6ec61677d101276398624c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -magaz = { - revision = 24694; - shortdesc = "Magazine layout"; - stripPrefix = 0; - sha512.run = "5c35baa39a8b26911b2c2dd875576a0f875f5edc37fb497dbd403720855861219fdced11ee3fbbdee8e63f0817b6c2ee6a20e6ec3bcc9a5183465c22caf7735d"; - sha512.doc = "78c9163951f269a489f6e8a48cce7d9ca46aa5c7f2f2567f8e50627ddc32920a8a5b54bf141ae881c2863de6bad4f7a954588fef9469291f18e65b7fadbf051b"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.4"; -}; -magicnum = { - revision = 52983; - shortdesc = "Access TeX systems' \"magic numbers\""; - stripPrefix = 0; - sha512.run = "305d94ec07468511e7ada667ded30a1c3ba68835d5bdd03a9a32c7bb7c0d274d5ddc77a5ad02712faf10aba5eca73c6708cb2bf497bea0b73b3f99b10923a8bd"; - sha512.doc = "084bdeb7d422a5e79f4a53864ea0c94b09962e159e103fe3ea77163a9a549605f7139bb2ba9d1a57877b3453162a99470f48a691ff78289a1caa5389b2a7f67d"; - sha512.source = "3bc74965fdc7ecfe7481e426e3cd2c9a27c8752fec3248e707c1f0ee1fcd03205540d6cbde05b82c9313c567b7e689acc9b1146f53962eadfef22d7006c896fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -magicwatermark = { - revision = 63656; - shortdesc = "An easy and flexible way to set watermarks"; - stripPrefix = 0; - sha512.run = "87dc295ac046213ed1a0b3c1b2b415edb3f65cd1e213b101ed3125df663fc4261fd54c07343ece9dcb4e345f134e7d9caff2791e0b8ff507b8d006d5c2dd1430"; - sha512.doc = "76504a77b18c8fd21d27cb26092edbca6e1e9470c006bd486ab4412116f30b833f3a92cac216c73318372da4fe3ccc7342effed2cfcafd09fb8efb1770582d5f"; - sha512.source = "4f42f8459f7ae28a4799473b57f0cbeea59de0f6b1cb065a0e2f27a8ab5698512bf3845b275e488c7157d3504d79680e679c88fbd510bce485a89b72671fc98c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -magra = { - revision = 57373; - shortdesc = "The Magra font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Magra.map" - ]; - sha512.run = "2b182272dcf5bf3469ccc38daf9ad24081002d118de77d2dd012b136152f2147a63c6c8fad5ffe2f758efbfbf7665ae0c61ef6281cf16112b740da95d2334b63"; - sha512.doc = "8364aaf47ee07d7462dcb13bb370c88c47556e23491233e580dee165528b417bf3dd139f0cdb3db6c565c0ffbac40ea2fb995a0dd2981dd227d1a70561f2f619"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.1"; -}; -mahjong = { - revision = 58896; - shortdesc = "Typeset Mahjong Tiles using MPSZ Notation"; - stripPrefix = 0; - sha512.run = "697c0a634304e4e94a6165fd033d906209fa6811cf6297868b76389165bf557f3b6abd419582d200bb252365f790ce53c98e1da75c8b6d3d061cb5d6b635ef38"; - sha512.doc = "622a34f880eb02813e7f4c1f6eb7199194c3ee0e62df534e7832530c34f09e2abfa7f1d491b4840310841e230e3ab5080cbfa5370e9366c0f9b8fd9000b0ef38"; - sha512.source = "6b64551b9cf9d4e79875935d2b37af602be7d3b001a3ef441003136b950741adec8d4b8521ca9a49d744d2173c0b053f025af909fe320edf08f1b3d7c131055e"; - hasRunfiles = true; - license = [ "mit" "cc-by-10" ]; - version = "1.0.1"; -}; -mailing = { - revision = 15878; - shortdesc = "Macros for mail merging"; - stripPrefix = 0; - sha512.run = "33fca4d77b34e3390de647e7e39d6240344f2a90c6067275bdb0e7dd1a3deaf5d5cdaa84dc4a49a0c817bc6923eb593602653b0d0ae4b794510a272b78498be9"; - sha512.doc = "2fd2d4dd5c1896d0849294a1911ae3682b7331cfa574bd46aa047f118fdcb09b4da3e29f6d5412d23ea49f776cd042694508e8b5492ec53cb44a6acafec110c5"; - sha512.source = "5adf58b4bc60e939906b8ae587829937afffc54af81623e640a513ed8522984c2308d3af1631857f4469a5774a844e3655bc3a9ca8ee09445b545d10dbcfea5c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mailmerge = { - revision = 15878; - shortdesc = "Repeating text field substitution"; - stripPrefix = 0; - sha512.run = "1930b0c554dfa36514d0c0b33749d506d6e5acfcf65e3c1dde3ed75a7c45bafb74db8d83f1b286c1a623acb32b2047dcab566ad85e3676c67c0ce1f7722d24f4"; - sha512.doc = "3e8aa80211af8f59289b87dece6cc2a1c5eccf02805e3e7927c78cdac66cdb6afaacb07b1114f8c67105289e4d4f7188043cc28f00365c1f5c3f353a53f14922"; - sha512.source = "d894133e294ea440e1916a04f28a738930ea0ae80ad96e148434c84a02a388735d00778ff4850306ba7336c915a9b2992f41c496149447e6189db82c59a66138"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -make4ht = { - revision = 70117; - shortdesc = "A build system for tex4ht"; - deps = [ - "tex4ht" - ]; - sha512.run = "f16c8062b72932b24673df223850f58521ee5766536c9c210eed123b62c77efa3829f7cd38e2f9f7b62a516dd8fca860def52599be702f22e2d60a8683b52138"; - sha512.doc = "f7f45fcbf92488c2c97fd2b8916b1715cbf76512f43f7e60d29293ae7553416f9a7969e1b5a9e29c88319a5d0ecf6b8fb8a2254b201cafba597122a6d594ff11"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "0.4"; -}; -make4ht.binfiles = [ - "make4ht" -]; -makebarcode = { - revision = 15878; - shortdesc = "Print various kinds 2/5 and Code 39 bar codes"; - stripPrefix = 0; - sha512.run = "a19268b5e63e577b4df9255e4c0eac640c73ac9e08f6d4b4baaff7920f714b7dd961f8143587b59478df2d854dc2f363312833c7636d08c2aab644a25b54bb40"; - sha512.doc = "ecd0121f679d7e4ffb162c151dc4b60acc78f9297d3bf0003882b914f0b1a10a52b43e844c5bb085d73ac08f9f0aa2e768ec4fe7374067ae2fcf304e842a29e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -makebase = { - revision = 41012; - shortdesc = "Typeset counters in a different base"; - stripPrefix = 0; - sha512.run = "cf36d0bad24180f48a7cddae8fa19c6260ceb5076b21f05e48360a30ec259b342e6a17f1c5d299ce5fe02a8dc5ed7934dd55c5529118bb24dd13cd36242b0d6a"; - sha512.doc = "2f7eabf88fe3777ebb1455caed5a339c3b56e0e7a97d34aac0b4c461e7ccf6450de936678ce00e64e39f308167ec55a6b3ec42f7428a7a9c87d2607570e1576b"; - sha512.source = "734e05be1aa54da7bf484fb9211b1f5d6d076c9a87c3287ebd1fe0fa965f542e4e8e14a6df767ccaa23063fc263e66d52b42df54fe3c3142bcf0b3d7f7fd8de0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -makebox = { - revision = 15878; - shortdesc = "Defines a \makebox* command"; - stripPrefix = 0; - sha512.run = "918052ed5c358e12ac7ca7c93f25a43fcfa8f7ba261fdf652d7ccbbcc27e3e0f822813d8297d3b75450c443687bd97e93416624b51da61572557d6a337638bc7"; - sha512.doc = "807d495fdef601fff666acb79c7f3fa43d1aeebf8aed77bebc02f90dca4fb9c36ae1bc911a9af1009538f3d3e2c4c7f9ceb0111d091dd4c1691a1520e089a697"; - sha512.source = "04ab9a02882a505f4393288ae8e5d6be374bdd6aa8a4472da1fb7e2c9e3b4bfc58132921a3287a4c8fe4d8d3fb91ddc33496a088431862407988ade1f716ee85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -makecell = { - revision = 15878; - shortdesc = "Tabular column heads and multilined cells"; - stripPrefix = 0; - sha512.run = "ba32b6a68b0a4cd6df36d460832e5cd9664a9c305c24dbca93a4fce69e97b6db3d86e3f219a0511c7d70378ddd9424d3685d60cabbc8554077c6bfbd8847789b"; - sha512.doc = "7c762852f1c7b4609fa823117e765d2b42ad857e2ffa1ca84aa3df74497c88dfc0a2cf05747f11f14453873ee70c4b0f2f890112c567d04ad0d61ada37e14335"; - sha512.source = "bb2d33b674b612e67bbbc1bf04a68f3804fc37b9e22e19c9af05746efa869ef52db48c5828724b88de130b15120e9ae003f49ea6389f7add98c712550af87d4e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1e"; -}; -makecirc = { - revision = 15878; - shortdesc = "A MetaPost library for drawing electrical circuit diagrams"; - stripPrefix = 0; - sha512.run = "9bba91e5139b90201e232aa3fa21254c5bf8d989aedaec8310209ae6b772d24d7b8c3be379909f04c2c7ff079cca10f43a1f74091a77bb1b8ca637a0743a2ef2"; - sha512.doc = "25190b3a5d911de1d02fa596f604527006f3adf7512afae397e5ba15ab62d6471ab834f92437d35a9f37ed83c8b84990d79ef0fd9ce2b0edfffdfaa2ec97a345"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -makecmds = { - revision = 15878; - shortdesc = "The new \makecommand command always (re)defines a command"; - stripPrefix = 0; - sha512.run = "fb63fdc9cc0aaa531b25417f0c23348971c306b1a93d99e7efdbbfd7c3907b50f28c67f36a88bb2a94154bcbde937e63246ece577ee2440ad4f5c2935eb25b99"; - sha512.doc = "f69dbf682df7e3089727570417be3624b496b5ad7db627b344d32b106606cab5299dd23497e137770fdfb9f940503a65e1074e06dd67e0561b36729ab6c3d428"; - sha512.source = "380eca4f5fed0ae72cded8f6d3a201cacb05a57851c4c207f086dd17762689cd53a6b27daa23d8043c311adc9baed32808d2c7eb1855892f8113ec7f13c02946"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -makecookbook = { - revision = 49311; - shortdesc = "Make a Cookbook"; - stripPrefix = 0; - sha512.run = "a4fdb7a7553a08b51d15c038187ef621ca6852c20a033b1751c544634c3092f93c3db5c1f4d744732ff6696509d8fa406251e9d14e619397ca4202b55c1b9c64"; - sha512.doc = "84c97dd438e3d3abedce031da5841f789f3b8c28672c9e3b6c53929e2e781a9d51adaec6d883d0008b42f1eae2ed5bbf992ec229bb8b2f7f510346d10dbc31fb"; - license = [ "lppl13c" ]; - version = "0.85"; -}; -makedtx = { - revision = 46702; - shortdesc = "Perl script to help generate dtx and ins files"; - sha512.run = "e083fa791975cef84b2e2ba3472984e354d5ced50ae7fb96dd8239cfffd379e7a25fdab80abcb721e63dfb10d9557bce69e97c5624d1635f894bcd26e22b5f4d"; - sha512.doc = "913f6f02ff478ab5edeed4792846ee6bc06d28c16fd3d7396d394f4a964d6f39a12c8163d66a50a5bf53add151317184b09a712dfd32f9ff783bda7f520c7eef"; - sha512.source = "84e12e7798c37a598a2d37fa7faa206ffb6f5c1f9c21af7130a9f05bebf9857f2a4fb7988be55a9936199694a0d74595ff75a1261187d81fd06beda5e0628931"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -makedtx.binfiles = [ - "makedtx" -]; -makeglos = { - revision = 15878; - shortdesc = "Include a glossary into a document"; - stripPrefix = 0; - sha512.run = "477523d4663e1e4a1fd6bb830e4574d6d116180b06a3199d6ba27f7cf704a1906a2812496e9a7ba8063690a2095fbd5022a5eb8c2448b1e0341c8a961cf05794"; - sha512.doc = "c580a23d65422d8405ce011fb6b088f53836811e3da517423f6d0dce098ffbd64c0648318eb9fb74ab637e1796d19247ee87ca8a25c7d306e3dc35a5d6d79f99"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -makeindex = { - revision = 62517; - shortdesc = "Makeindex development sources"; - sha512.run = "5967ba4123fd4c708ce841d29211fdb66c28518f4b418903be0ddf2a49964f706af96b250eec814c547e0703460c1273ce72a7acf3ea9fe28cc1c7073af29d3c"; - sha512.doc = "40b9ee1ebf7dba9a4bb4bb3077cdb1e88b07f276a9d0ae9c2817bd76a2f742ec9237d1b6d9658694fc5fc4e8f82591194862637bd83ea8e106c0541591d343ee"; - hasManpages = true; - hasRunfiles = true; - license = [ "free" ]; -}; -makeindex.binfiles = [ - "makeindex" - "mkindex" -]; -makelabels = { - revision = 60255; - shortdesc = "Add a '\makelabels' feature to KOMA-Script letter classes and package"; - stripPrefix = 0; - sha512.run = "4f58301507896c2e719f2607e1e456aeb25cc78913ed02d9eaa12489aeb643e73bccaafd1f219c1c8b485d77aa64e99d64166b63e8a2c7a7c3c8cfb77ac23bc6"; - sha512.doc = "da01e167d1be1d4831c1bd0aca43472aae12a8204ab844f9964e60f57cf22312532c52cae85964f10780aaa0e4f84015f6ceee8ebfa042b184fb1ecc7c174585"; - sha512.source = "588029533fc25c2501cb8a72cd4226c878a0c419e42d6e4269b68224d9992d298a01019c59c794eb1c9cca14b3efaf758f5c97b6ef90451a6e6d1fb56233a5ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -makeplot = { - revision = 15878; - shortdesc = "Easy plots from Matlab in LaTeX"; - stripPrefix = 0; - sha512.run = "366e9ec4ce551e17ae6e77f068b0d2fb46582c033eb27781cd620a87731eba744212db8dde9ce8e50318f280dfe31e61a344ab4232c3bf26040dd7a2290d4fef"; - sha512.doc = "9aa863af450a66201e7cb3d3a58d9248430aa26cca9b50de4c71c350314ac9c0f6fe54e5eb1b37917a75030a60ca18102933f154bdeb7831ca02bdaa65b3a6bf"; - sha512.source = "b4f0e0de72c005124b7e83f214111931ca2ba03ae5f1270b5d10ff790c6fd84cb02950aed7377deae2c432de55b7822ddc68b9911b608b0460c7800f375fcecb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.6"; -}; -maker = { - revision = 44823; - shortdesc = "Include Arduino or Processing code in LaTeX documents"; - stripPrefix = 0; - sha512.run = "d8cefc4d4389e4024c448400f02bc0ef0a21146c1d079f804f5e102ee3f2977be7fdd2c1011672b70192af48693ab1fcc38bc1d6f7711fce217792e82f0e5e54"; - sha512.doc = "fb7f68b4c48de87e6c1e380525a998bd1cf7578c2e4a51551b5ab4909481e66faf38f0a74083f25954b5d05e9eda12e56734351fab063f80955abf24eadc0e21"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -makerobust = { - revision = 52811; - shortdesc = "Making a macro robust (legacy package)"; - stripPrefix = 0; - sha512.run = "502b4dd65ae3535a2519c696b8b2ef73b3eb8f19d20af7dce94e24c8f718f827e55ddf7ff229bfc0810ab8747c94720cc7a66335a7d44065d0a0ac6b156a683e"; - sha512.doc = "4503551b0085c7c829d41042083209bc02dfd2391f99cf0fabafb363e288a455e51273bf0f9d4ff5a5fe17050fb5288a7835742e06865407b8400c88244f4e6e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -makeshape = { - revision = 28973; - shortdesc = "Declare new PGF shapes"; - stripPrefix = 0; - sha512.run = "b13358696b16b41a69e5a207fcfb717b417ec191ae9f6ad4408422b1ce99c3785a3328cf9bd2e87ade3ede4998ba76ddb2f640e06ef5ce88172942e4d0cf2bfe"; - sha512.doc = "a249c636b414203e75225af611173add2e90af306d4a78c7d865fdd0e76b23637fb3b8eb41f127905bbd0065cc7b941d3d26e3ee73b9aad56e05ed0a44f67d57"; - sha512.source = "43886cdf9c2da20943bcf0403e05fe19c035cd3d49af9afa52212c376a2ecae9ad963a24c257b70e3dcee448f42ee1464e63dcb0c5addd7018234658867d3179"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -mandi = { - revision = 70235; - shortdesc = "Macros for introductory physics and astronomy"; - stripPrefix = 0; - sha512.run = "e5c8cb0ca16c5b34097aef6e3bd00e452bf6382f6f9f5c3213a42463181a4b7f17df8025d479559b281dde7eb61ed2f79f4b9b6c3a37bed6cb3ea1bb9b428eed"; - sha512.doc = "b1d5662645562102719eebb2d349f8a0a2a047ff3303abd076bff1b5888dc897e39034d027eadfd9ba03f1de26b0e0e6c8ccd226ee7f3a7b8545320023e47fbc"; - sha512.source = "e1bffb5b494059bb194496a17957b8adde0247178ee32baa9771ad47616f4dc101c7ad4423c62c50c94f7e62ac59d4ba7b7fa3983dd5503b441b882565db808e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2.2"; -}; -manfnt = { - revision = 54684; - shortdesc = "LaTeX support for the TeX book symbols"; - stripPrefix = 0; - sha512.run = "492dff2a46b9c0e89b8e29149546dfc736195f7f264b156fd91f4e8d1396f43b149948df656c7b148a2d54064fba89e033179b31eeaf03d0037875e36e9b4244"; - sha512.doc = "469280a4576d3b8396f310ba627f5a69f8fe47604f39562321d9b3b7d2f3e81f8d2c0ff7cd18ae4a93d9125df0fba79744edf0b30d036916a8259dc39adbdddc"; - sha512.source = "c90ac97080e2c0c767673f7128e1850427218bb4b05024401fe37aae71ae65f1feae2e11301055dbe6b74fe56e7b16bee4ba1fe0f1a1defbc07763fc5f5cdeb0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -manfnt-font = { - revision = 45777; - shortdesc = "Knuth's \"manual\" fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap manfnt.map" - ]; - sha512.run = "fe7ddf667368990f988005a44013aab80af9c097f4f824f717d84fddfd61dfc658f507d5b1bf8f7c076be1bd5a4363f117b388ecd39b0ce2b0ee5fc8aa83fd4c"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -manuscript = { - revision = 36110; - shortdesc = "Emulate look of a document typed on a typewriter"; - stripPrefix = 0; - sha512.run = "24e4c800ba6f5089ae76b6d444c81689fa696cd2fd9e62281171d771f8f9f065320b53b058cc6adf836f36d378f6f7fece98e8c09e2b655ecaa8884067bd696a"; - sha512.doc = "baaa102f870cc307fe96b583f74c19c7ef2c7649f01fe7985c3dcd331539bc9d839f6e34aa238354b6932d14638b77e83b7bf8e62296c36fc2dba18f776271a6"; - sha512.source = "0cc418f2b5538035123d81f6702031d97bf99fa6733d491b306981ae698f3cad9bd121a20410329b8428b5c14749e825052544cdc52b9c8457d7e302dfc64888"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -manyind = { - revision = 49874; - shortdesc = "Provides support for many indexes"; - stripPrefix = 0; - sha512.run = "e08291b4cb0d2c18e6b97cf6a287d7cf5b49eb312138910185845b6c0a075981a15548de2dded6f597605aef885e736c17b5306328574473aa56f8f11b6b8288"; - sha512.doc = "e8d9c687c1b3525c5e4d218a380781f1b2e7d512b053a583b00c97f0b7eefa1202dea310454065194039841bf8763acc2b0c4712ca8d5e9d31b57cf03c50b928"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -marathi = { - revision = 61719; - shortdesc = "Typeset Marathi language using XeLaTeX or LuaLaTeX"; - stripPrefix = 0; - sha512.run = "5ff1e45d4434c68f09fd011fb0d0bf7652002a9ef6c36035e953a5bb9871baec4dc1998b0c0ec1749ef93cbca8bd40512457d962bf0e9f3bb4c0d36fbeb6f301"; - sha512.doc = "8ef83a4eef0d877473a24ad3d5efb9e4d374dd1c2e00b210251ce145d889d8cf8eec7ff368d94db888b134104770901877fb4e943bf758f921b341bb7bfb5f3c"; - sha512.source = "6cd0135286dbc64b59628e7af8e84e3c4277705bca226155ca899f9ad438751cf5f5da73dfcaa500fdc1d4779f707f8290922098409c69216a5c66e2bdbb73e5"; - hasRunfiles = true; - license = [ "gpl3Plus" "free" "fdl13Only" ]; - version = "1.7"; -}; -marcellus = { - revision = 64451; - shortdesc = "Marcellus fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map marcellus.map" - ]; - sha512.run = "b6ba86cea7e275ae2cb6f35468300035fec789b85280307e65784bca9844aa8c834aa23e9f7e59de75d53879dbc609e64c084adcb1c38811483eeab15543f95f"; - sha512.doc = "5267a43751ac7a0aadfba28ec4427da7c1afbafac2425f09582a736520ab4bbd769e08ef02b86816225cd76bedcbb23f6cfd3e77352c9e4008f9443b826b48e9"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -margbib = { - revision = 15878; - shortdesc = "Display bibitem tags in the margins"; - stripPrefix = 0; - sha512.run = "7f734e46e72badf838397305ca926f4589b9aba7a0e91e21313f6a733f7cd09db959f30e3694490633713b1a77c8d11a521b2892722496fb162d7c25c7b8641a"; - sha512.doc = "c4f93e442d1337cb5a1825b4f7e6fe5ae0a759c32837a896852ec5592b3c31a9c473789db35c147b67360ed662b1e9ae42a59fed446dde234b174f65e358662c"; - sha512.source = "7a9aecd832d34d1225606a905558f5ae33befaaf20f8fa1e6e5263850d2c72273be5a4a05e96d15225b7a2853212e3de28455c856c17e42838406862cadcc344"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0c"; -}; -marginfit = { - revision = 48281; - shortdesc = "Improved margin notes"; - stripPrefix = 0; - sha512.run = "dafe223cc6120beac7ce419c5f5eb72ece9be2a21992e829a8015f7e05ca22c40d5196d26d21d8febf3459bfa58c7defc797ce7bd4ee1e3dda28761594240b3e"; - sha512.doc = "fba2ff6febb4acd0dad443221c6146fc2b3818c4948827b827fe2ff2df82f4e2843520f1f4cd41fd64900012d64d973d9b649e65b1c5ee4e74757344ab423dc0"; - sha512.source = "89892d83570cad7c46b5fafcf8a7d87b660d898afde97c2fed03f82d3cbdcea9bd11baecd19d3aa958305cac0d9f7163e00fe262a0738e7f89b62f7d1bdf0df8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -marginfix = { - revision = 55064; - shortdesc = "Patch \marginpar to avoid overfull margins"; - stripPrefix = 0; - sha512.run = "70dc40b9823cd82a52a7e55e5af47e5b2373fd7cf16567f6eca2bb886d3612473141435444b538f81ab9467d1b3e5ba04424b1ca47d95cc0869dea02faf82b03"; - sha512.doc = "16ab654dd8957bcf37351b7c766b787f27baddd4e73a6a4c3a07f5b1486f5ea73c9028675b5830b8dc1224eae29f50d61bb579aeecd9af4aaafaf78259bca900"; - sha512.source = "5e94ffc102902ff040162f5d9fa39f1d812801d0413befa5db7cc2c23d91ce24d47317f411e64f2fb2e22fb782c9cf1f87780c2cf2eccc50214b502402032eb3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -marginnote = { - revision = 68204; - shortdesc = "Notes in the margin, even where \marginpar fails"; - stripPrefix = 0; - sha512.run = "6643a77d01d59bc371d301e738b59957bd63cfa0fc98a554f853d1599392ceb5e88663651563445633df704bbc3ef74510ebd6150c44911314225259982f114b"; - sha512.doc = "18882e317048606324338ff765cd11e972c3dedcdbfe2407a3f9643b3efe6a7d173561726d4221618ac510a447cec7b1aa13a46ca45a091ac76e601c55c551e7"; - sha512.source = "edcdc3acba09440dd7d1594a1813fd205447c672e0bb73e3b968ac6e211365c488d3ce0287b7df5e198a75e12d3301248e39674be831387cdd06636e97d76138"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -markdown = { - revision = 70583; - shortdesc = "Converting and rendering markdown documents inside TeX"; - stripPrefix = 0; - sha512.run = "0b133a8f7a4d9315365569698cf2f6897b46ac0c49eb6f6a7697735e209e6a45354101cbeafe7504aa18a39cd514332db204b4b53051a4a9e7380ec581be6d23"; - sha512.doc = "ca199c02ee60ebe597bc0c7324b910d78c58457e614bc23be98720e301bd501540b52325fda4a0b6eaed15859820f5eba4e4749dd4163057c6731c1d1643f27c"; - sha512.source = "b33cf8d6604aa6acd27a67ee5ec5ec1a84fb91c77a0d5f830f6dcbc78343420036175bfcc1cf1665f23804ee9d06e58029fbf4e533a75dae29e8d7b1ee6297cf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4.2-0-ga45cf0ed"; -}; -marvosym = { - revision = 29349; - shortdesc = "Martin Vogel's Symbols (marvosym) font"; - stripPrefix = 0; - fontMaps = [ - "Map marvosym.map" - ]; - sha512.run = "64093dc5de012c6a50762ef34001ff2305e6b59b667ac7b1ef72cc53f8b0ed3852b4d307a8d421ece996e78f2e32c8871038b6b66659b0866dbdc536445dc7a3"; - sha512.doc = "d6f72ee7ed64404acce5c37c216a7e23193f2053c18910d80fc6d5fde73ba86c07045102488f17f4cbeb9e1d148567973713bb4d9ce2cdd3cb166936ba5623e1"; - sha512.source = "c28a69567c593160c7d04b4fc0fe7f0106db12ab588d3f02139e55ad99a1b4e33f1bba92f5af103b6f2a7e720d243b919d1f39f28031ad95dde3ae7e723f6e36"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.2a"; -}; -matapli = { - revision = 62632; - shortdesc = "Class for the french journal \"MATAPLI\""; - stripPrefix = 0; - sha512.run = "b8330a2fbbcb2b6c65a1f056fdf572cf14b6c3b8aff3abf91cd40a150a12feb37cb4a43b41e8239fbe00bb4a2168894c375f0bb35c7dbe2f1d8de0d5ae2ae476"; - sha512.doc = "6c24ac9fc5b1968ee8c675c7aef8c8fcd3ce813e407886a412419a4a894942d6928d49cfebaf1d7ac7be7cc5c08847e8ba2c70390e3ea7973b0882a51d039ae1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -matc3 = { - revision = 29845; - shortdesc = "Commands for MatematicaC3 textbooks"; - stripPrefix = 0; - sha512.run = "19996040ec55b000d84637070a21fa9fc216eb3cf8ec75f7c408925e0d7a716a7dca0eff4887778f666be3e857b589cd033c53d3859f84226416ad069720f7be"; - sha512.doc = "68f65e9171eb03fed79dc9bffadb725dc7324fd9696ff9f6f0a13233327f47474477180c6e17b5bbb9ee2ee02996ebd6213b43eeb7e9b7eb7dca2caac2db470d"; - sha512.source = "efc84a936de1ab0905e94937d00c3ab2f371412975786c3816cb3b8fdf98482943c1f18a08422ea95d7a7bda6607ffd1dcb6b5c28101c7f5348260a088cf1233"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -matc3mem = { - revision = 35773; - shortdesc = "Class for MatematicaC3 textbooks"; - stripPrefix = 0; - sha512.run = "e0736f75126aca9506e1cfcbd321645e731e2dec7f3ae2c045201dd8c729044689e358724b77ef9d99aaf3ff742802857d488e3f2f78e781b64af711c7fdce12"; - sha512.doc = "2038d84ab20c6763163769b62a35fa4e95dbd3e76b0e2cf1c4a25694488ddb5b9be8b40f81a1702600d918618455bcae46d22fa101a1a95978b996714de41dfe"; - sha512.source = "cd8ad4afa288ca175c06df2de15cb7ae048f3b69ff6b96225f134c022efaaa5223fdba1b2b80f75ad3ab6e3ac79d38b41794cdbfecce1ac6ffd2ed47cfb69649"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -match_parens = { - revision = 66681; - shortdesc = "Find mismatches of parentheses, braces, (angle) brackets, in texts"; - sha512.run = "ed3286292a5480d73db2d3e231663c37eac6a17a50d4bc37131bb5d5627d445560c1bd47a3ea05dd4d9439ad97c275a05542c5664ea0460e2c596eda75aa56ac"; - sha512.doc = "8ff55ae4caaa0ec44f2c44c21d08e977467e6a1a1471f0d361c428a2fd552907a3bff6a88a4f7fa40f3fac7f5ee0a62b2471d5966430b533ef5dac554d919a99"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.44"; -}; -match_parens.binfiles = [ - "match_parens" -]; -math-into-latex-4 = { - revision = 44131; - shortdesc = "Samples from Math into LaTeX, 4th Edition"; - stripPrefix = 0; - sha512.run = "d5739155ac3cd6a02f356bbb600f7f76022faa4a5c004a93531678ead3c2f0a9f8e1419044883306ce453ac96ab8726ee45d8e49c86b0fca6a9232010a8927e3"; - sha512.doc = "5fee7c89fc9f273817b23fa25260733ee0552df7bed0333bbe604c17bdecfc28d7e386478f7b42d3c2aef89f80ce7a1d35215fdc386ea47e4db3a334bc6a9597"; - license = [ "free" ]; -}; -mathabx = { - revision = 15878; - shortdesc = "Three series of mathematical symbols"; - stripPrefix = 0; - sha512.run = "400bb43207c43192321cfe1b658c85a07410778e7694ab1604b992025d69300bb2d4c2cb7866a255dc4988c843dd3b92c33e527c12f087bb560cba4520115643"; - sha512.doc = "e1f9f96794f6d20dd75bd7ceabd40993e56d5315848bbea8a6812a16f74c0fb92ddc6356c71aaa1367c47b1dc26a3711793ec88cf0b90d391f8157fe20f77196"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mathabx-type1 = { - revision = 21129; - shortdesc = "Outline version of the mathabx fonts"; - stripPrefix = 0; - deps = [ - "mathabx" - ]; - fontMaps = [ - "Map mathabx.map" - ]; - sha512.run = "ae2272ac7d79a3bb1a655000a2d5fa1c3d948363763abe194cbac4084d5ef60492648977660c3d9dfbc2c70bea3c207d031d2147097fb1d7af503aa80f257d1c"; - sha512.doc = "2504e85d659cba06fa25ae4e154309a6d3dcba2ac8bae0d4066b6637f19081987b0bc774902365e5b723f4b6c35cad07709e316ec1893a018baabc699d755e8b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mathalpha = { - revision = 61089; - shortdesc = "General package for loading maths alphabets in LaTeX"; - stripPrefix = 0; - sha512.run = "9c56ad5cabba0fc7ff7403882cd46161be0b4d7bcaf632e48eab5170b1350a1c780a9f98ed535466ae7c17a387a461fa4663ffd3c4fac5cb01ecb77bccdcfec6"; - sha512.doc = "5de9923e39ccf9b55f10f0b97067d001ead5598423174808d2a7636c96f8fbd2e8a8e6c0d66140f62d51b9263a736cb6106cf6db0e16e62ee5d9f3887baa3159"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.143"; -}; -mathastext = { - revision = 69237; - shortdesc = "Use the text font in maths mode"; - stripPrefix = 0; - sha512.run = "057e16f2b729c1e6fd6857da04ae30b2d2bb42bf185cfba01dfd2753303e6d2668e5c48362799ecff40318bf709c348818f0529f6f8971f9cf6f66cb1960f03f"; - sha512.doc = "632a36650d095b8a9f49ecfac9fbfb896ee29f18e81adece341026291fa945e361ea2f4678bde9b31166f2d7b0d7224c8be856184871e85b31d5e7613f950785"; - sha512.source = "7c9499486765d4b59320a67e057d3550e46d1434a730ba06d288b869468203e89b9b73b7c96b4904def75e6193fc4e0f79e814e9cd3acfd088c6da9b6dd4b856"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3zb"; -}; -mathcommand = { - revision = 59512; - shortdesc = "\newcommand-like commands for defining math macros"; - stripPrefix = 0; - sha512.run = "4be34084705419757f92b8f31be35a606689c25786bc5b95a0531d572ce21601881cbd7548b7d380241089d4473fbfb70debeab9b30633671b3494d66bfbb9f6"; - sha512.doc = "80191b36dd3e34193c2aff764b7ffcf274a4d9fc41b1d19fc92ac807e03809069efbcace953fdbddd481db7d6604a859eab44a2c93024ecd59968c9e24e2630f"; - sha512.source = "99fb6c9f81e72c3b78807ff1d073ff4c6e193a163c3aa6aaa2e45d94ca246933733b1b35a671557cf40fdb33184af6ea28fa8a590b0339db373820ad9c38d514"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -mathcomp = { - revision = 15878; - shortdesc = "Text symbols in maths mode"; - stripPrefix = 0; - sha512.run = "7dca82aff58606afd315bc18c6908946193be75f04ec456e2cede8184867543437007b27f04f4363a026a0db83da3fdf963afecab7330e9419b1ac5376efcdd8"; - sha512.doc = "6135b3d06908c5c359cc432a7406f146ea6b0bb614ba0b983738230ca2073f4348a6ff139bdc4b43325a8b67ef59a6db8e60ecefd88af5c8ff0eddceb0f279fe"; - sha512.source = "3578e5e31ac3cfda23381e348dfa9e4da6993a9cefaa73b3746be0f2719d04dd37d04e75925414f4f0083b0971222da5eced4bd582e405031f29899faacecf57"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1f"; -}; -mathdesign = { - revision = 31639; - shortdesc = "Mathematical fonts to fit with particular text fonts"; - stripPrefix = 0; - fontMaps = [ - "Map mdbch.map" - "Map mdgreek.map" - "Map mdici.map" - "Map mdpgd.map" - "Map mdpus.map" - "Map mdput.map" - "Map mdugm.map" - ]; - sha512.run = "cc8a1c58348f8f81417178434c9bc3d9edea79dc5d300753f41870734f8fca8f43325d56f73e3113aee8e9f38be1fbc6abd3cefe4458af1e1e22900ce889c315"; - sha512.doc = "f6c0a3595beb7b25ab5ef2c8a08b3e0be90cdbfa20c946b7b3f5cfd29f5c9a38963262818990ef78be02d95c2d2a5991581be77834048fab4eb0e4c0252e6871"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.31"; -}; -mathdots = { - revision = 34301; - shortdesc = "Commands to produce dots in math that respect font size"; - stripPrefix = 0; - sha512.run = "1235583223f831852458d53e1e8cb767495987829d4930387f4dccf7ab060b9f0af8722d6c1aaa820c1a371f8ce1c0222633e6feb064e0344e639eedbaa4129d"; - sha512.doc = "b1ce238b3abb3397b0085983e752dbb9eb9d9c1026046726360498d089304f7f4deecd656dceee27b63934092568f0ca46620231f03e0952c43f28ae73e97dc0"; - sha512.source = "dd590187fadbf0eb788eade245d4198a4c1075433db1a0df00ce2d5cf2b6f332e09ce995292d21ad46f13ba68284808cfea6c7818a47bf99a61ae44e5381fe55"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -mathexam = { - revision = 15878; - shortdesc = "Package for typesetting exams"; - stripPrefix = 0; - sha512.run = "30fc0cc9c44f2b7a64860a7d8eeecd25eec7e888f4ebdafade236edebecbd79f5d832566d151243430a60c5995807ea77d34e19cfd5e0d8cb037ca67d3e933bc"; - sha512.doc = "6af2944d12d09f1ab593a7002b9de71d14c5436885b79e5e495dc0ba1fdf9dc6b9080bd009bafff988b019ec3e75da934a7c8c043870fdd52a9a46b36c9d646d"; - sha512.source = "f2324e1f9e0fe8f259b6e1d2a1370ddfec87091c82650432e24b08c598fd6ce57334b88ab53a6049f416ff14c3ccfc7c250029767eccf05456d6c233e665f6a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -mathfam256 = { - revision = 53519; - shortdesc = "Extend math family up to 256 for pLaTeX/upLaTeX/Lamed"; - stripPrefix = 0; - sha512.run = "20912d6df0f287c14300e4598400cc2da676f7e484757e3a9a0c41ef6861d7180cf7110fbc7b5668ba8a713cb66b9120736b64a1f5098df25379ebc7b14e44f5"; - sha512.doc = "26aa672bc55de7c45a857d1ae26e156fe19f4ffa05417a7a4163526d01d5f58576f8d6db951e377b646e1ff25167571587d09f21eadecb95bc96e6b85707a9bb"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.5"; -}; -mathfixs = { - revision = 49547; - shortdesc = "Fix various layout issues in math mode"; - stripPrefix = 0; - sha512.run = "513e5dd9eb58ca5b1eb8daec663c48577fa2102ade0234412dbb22b6d756ad37009c689746c57c6624c731df64fa8d58eabfecbd4cdc31c576eb0ecd1e232fdf"; - sha512.doc = "c9ad8dda9ffaa77ba727f536016ba1dcbfb91c4d7ab98b1e4b72156591e8ff0359f623475324e57c6b22f509cdfe7e30ba67c3fb22f9dd152e59f1557c96a6a6"; - sha512.source = "f08a26458ed871a11a44a1e957a1e9140b3e95c98ba1bd958cb9d63cbe483ee94e91217a5a7e54745b2cf245ee7f898fb64238941d1a8fce04699a3b8a06b7e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -mathfont = { - revision = 68241; - shortdesc = "Use TrueType and OpenType fonts in math mode"; - stripPrefix = 0; - sha512.run = "9ebe3acb43ebd09a537b99eee5047d2abf28a019017ebb434684864104892093e4451ff3ecd0393c4f56d4f94efb16cdefaa58b073b517e7dd01adc04f5f9a69"; - sha512.doc = "304bdf738ca94eb7c5ae708ecf0400cce1af9c09f05056b3718bc0ea5352e1d06a2a1cc3c037c8569bb26d33268e14ab660e627da0d9df075af1b36f6bf718bf"; - sha512.source = "771062f0f60be1c0d3a300ce74ca9ca00a56b6042e3980da47590116c08f39c8b4f0bdb756e41654481615fa1896f53963abd0c322817c57cb78247505abde9b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -mathlig = { - revision = 54244; - shortdesc = "Define maths \"ligatures\""; - stripPrefix = 0; - sha512.run = "1ec5761aded23b8ebd4b9afece00ab1f3f9a18886edd12ffd2a2e0b5b9fe9adc9a4ee6fb629933f36f6a161c76e85b54e3d9855871c3387cb0f70f90194b2615"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -mathpartir = { - revision = 39864; - shortdesc = "Typesetting sequences of math formulas, e.g. type inference rules"; - stripPrefix = 0; - sha512.run = "8e1c99db2d64e9c815bf8b6784d1c717969a5ecc96281df2f815ba7c0d779b53484c61ca233468de793be94cf636373f4fc0e3413c0ce32d4715db30cafe5471"; - sha512.doc = "fca6b3e2650ada022617af137dc86858c83c51c55fcadf2ff21832a1fcd9fc44f371f89e8943c5e1d117a09893c3587f15a3e8021b11f7472dd3c9d37383f8a0"; - sha512.source = "f5c5b328745494965d1907f6dc187859a5f9bda5a8beda164e7317dc1b8a6e886073f9d2e9b564c6aa56d55e7cb7191afeea38edc059b2dd55066e68ff826dd8"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.3.2"; -}; -mathpazo = { - revision = 52663; - shortdesc = "Fonts to typeset mathematics to match Palatino"; - stripPrefix = 0; - deps = [ - "fpl" - "palatino" - ]; - sha512.run = "72bfba52e37abd933cb7b1b19dd813c3c76438591c94f9c407cabb8a44c8c67f78fae04442027287e5bf30b7239c3703ece4271194716882773eeb50d4cb2f47"; - sha512.doc = "94e624f2cea50bf3534300d3332dd61e1bc5b4c834603356831d0f9bf4c6bdc34af5d31df002c10430d4945c2c71dbf7c156b7b05ba08c657cc2d960839c2a35"; - sha512.source = "bd6aba477ca38c9778d7d23460420f485ac5658e9514ac2260475a50b6ee7e2ff736bac81a4548fb4aebae952a406a0de1bef01bd7d8fe4984080ab835d328d4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.003"; -}; -mathpunctspace = { - revision = 46754; - shortdesc = "Control the space after punctuation in math expressions"; - stripPrefix = 0; - sha512.run = "81d1fa6ce0e96190516f2440517d554e259013869065a4242c55bcc06f2d9eab1f8102464da71fe72dd0d231248b637d54733b2a11b832d2153f151dc5513339"; - sha512.doc = "ce318466af0c6690a905c92e9f24f9a7c2891c4afac7c51eead8ebf211bf13e2c20d368782ed41f20a2bb2d6f3a6cd6bf44eb6a0c848ff8006564ec98aeae2d7"; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "1.1"; -}; -maths-symbols = { - revision = 37763; - shortdesc = "Summary of mathematical symbols available in LaTeX"; - stripPrefix = 0; - sha512.run = "f2028a2b8dad52aee2db1fcf679647192cb926e13cca831a419d876783e492dbc590e4745302addae7d3f01eabf7eaa1fd7cc6f757eff2ab9d9b5c39a1b0b785"; - sha512.doc = "b60a66b3cc67e4dde62b0fc0552233ab59b1981ab92cedbe4c0de31a4c9e9d3207cf54ec5d2361f81937867d81bd345e77c4ab3e36fcd8588851765ec3267864"; - license = [ "lppl12" ]; - version = "3.4"; -}; -mathsemantics = { - revision = 63241; - shortdesc = "Semantic math commands in LaTeX"; - stripPrefix = 0; - sha512.run = "e8cd9b91b758317d310265c41f565481a9a18c9a345ea3c8b3f771de637f0a144d131cda93b7771ee7b28563fe1e6d42a410cbc7c9fe08532a5821ca84d5a101"; - sha512.doc = "3f0b2120c9551e498d71ace121985553d1d40f2b242887fe0e6e31a9e25dd62d32fd44d3bd1b50233cbebbbe70201162dca838ede7409512a91d5e522149b479"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.0"; -}; -mathspec = { - revision = 42773; - shortdesc = "Specify arbitrary fonts for mathematics in XeTeX"; - stripPrefix = 0; - sha512.run = "7e9838ad2f212354b103b9beb61d60f124d2f47e52a04e2fad61de01e2e8220ca5f19f5b2188cbfefb379f94dc4b76573355dbde563f887beec29c57b3648ae9"; - sha512.doc = "d22c19bd2114bc48f438d820177006170d52d1a261f3cfe69452148f4e11a0ddeb1bb25e1c1fa22ef8d2284c7f34f7ef41bcf9d8e90a89705b3a7515a679a922"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2b"; -}; -mathspic = { - revision = 31957; - shortdesc = "A Perl filter program for use with PiCTeX"; - sha512.run = "e556960f07a003e877ce678110e724ef94d34aabc0ae52c59ec2ae487fc7d3e5de169844baaefd61e467e98a7a9718d94d881c3f0d43855e133040bdbddb6a62"; - sha512.doc = "1702071f4c26097e241ba161258a51461405954105c8a7f2d92a552d6397ef69af029652ba5528df999c569fae32955d1b194b0f7c4475b3fc870656b473386a"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.13"; -}; -mathspic.binfiles = [ - "mathspic" -]; -mathtools = { - revision = 70607; - shortdesc = "Mathematical tools to use with amsmath"; - stripPrefix = 0; - sha512.run = "68ed026c12d7fc07b1d7881654a197e1fabd7bfeae278c3243bbde9449aeef3ecb4e7606e24e964f2cd488e475f39cbb9a632ba077c1229067df883e853186cd"; - sha512.doc = "fa3bbad3d9fa4bf678cbb2254cd2329c515cac6387d17953e66f273a48500f1a04b25b4de4c8a8a94cf79d86572be56bd2ceba01de8c9a72a92844a127b3c8ad"; - sha512.source = "edcb96fc22f68a3cc78b13fbac2f73fa54aea36b6e57b0af12eb7b21a449044eeaca9157caaf9770b0d93f9c2511926452919fda5d03903f36fb5b4e3540b2af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.30"; -}; -matlab-prettifier = { - revision = 34323; - shortdesc = "Pretty-print Matlab source code"; - stripPrefix = 0; - sha512.run = "840d860303925d148c10a980218018ed14e2d0ba2b1638f8328308a0400e8862ced7cd28822fd81c3c3533d2ef4cd37e1c4009065b1300011898fefb407ac202"; - sha512.doc = "22b783fbe09f661d1e5034cb623fab29e54df35b4f0379579f430b17a80236a843c15201b6583bf58f22ae39dba34d7f5a4f8482b1c6d185822940c67ac06942"; - sha512.source = "25daf7d57d376a2a218a48c275b07459b512bb0e6ab95e78969883a3ca26f010c2e3204c0fe9af0922a50b48aa0f87c6b47973cc7adf9678d351faf9e263a9d3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -matrix-skeleton = { - revision = 65013; - shortdesc = "A PGF/TikZ library that simplifies working with multiple matrix nodes"; - stripPrefix = 0; - sha512.run = "55a7bc16ea6afd1e9e623b2fe9e8eea8e7db2a98be58432a296500a246dba7556bb5f79c062b72c0ae957822760ee2494cc3bb2ceba7ab54860f96e87dea53ec"; - sha512.doc = "acf72a0c4e065137df6a803891fc804579e799d5aa3ec2d509f26284e64bb86e52c4c4f287dd87e5d0c1f3f73ef9a13e2af2459223f3441dda2b74588f7f6ec2"; - hasRunfiles = true; - license = [ "isc" ]; - version = "1.1"; -}; -mattens = { - revision = 62326; - shortdesc = "Matrices/tensor typesetting"; - stripPrefix = 0; - sha512.run = "3b58af4da3a0c8abb4499a28e993dc3bf128fc24188bc906d3bed69ba3040aca66d341122cb0e57adb18ccb4320736d7b27423ec8f6f6dacce4fb7bf4bfc5d08"; - sha512.doc = "6139624ff7f8b5063e69c07738e07ae8a1bd1dd48c155b73d17466d4ee5aae25d377e7b7c0726e84e89010d99731d337187ea017f934889843360533c7218c77"; - sha512.source = "d8b01f5c5d7c730e412eb1fc9beb7ffdc60b4b6021968803f24362cf558660074e3d94050878f09513221b6d670ab195b1c2020109e03c9c53c9d485355fe740"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3b"; -}; -maybemath = { - revision = 15878; - shortdesc = "Make math bold or italic according to context"; - stripPrefix = 0; - sha512.run = "32520ff01d76e11bd70694a07b86272425680ca8bf21b6da9412c133836f9ecbc9a9537377ee67cf9292e33dedaa1d33e906b4f681b89f075d1fcbbbbdc989dd"; - sha512.doc = "b0f978f89ebb7f681e7b045d03a9a6e7e9083d7c468c91d52ef417c85d707243fa0ef253b3e2d1f1737a9c7235fefae06c4a8fe2975cf2c13f7f09ada7752f26"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -maze = { - revision = 65508; - shortdesc = "Generate random mazes"; - stripPrefix = 0; - sha512.run = "e09c0b0d00301dc1d90f66e774f6fe0ffb1c4305498f9aa4b41bbf0460940a2570e40bd8359e30d1d521418111ee9c6e6c8e61a6a2efbdaa484d3f8436f44fd4"; - sha512.doc = "cfa47a5d16d4533fdcfdf4ad19c5560fc897da669c4b9bc5a5f7723a6082fcf1b29fbe410117bab9249a526d7c720cab400afec1945b24868f7b73e46690a2ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -mcaption = { - revision = 15878; - shortdesc = "Put captions in the margin"; - stripPrefix = 0; - sha512.run = "c3e1c2948e2687bf720dc05dfa1ed6140a1ea55de3cad7ebcfe518d720ed96793b6bde32fb0882cae773f986b11150482fdfb382391650a8c513131b7041555a"; - sha512.doc = "e803f5731e6ac1c299bc3a42666acb81a75a3f110be729639357a15633e0e7b8ad0a244820b96ae9f8b435d9d1fea54a0b7f14c5db02799b3a632b2f0c5cb4b9"; - sha512.source = "e859c83efb88fa03790b2ddbe18cea57ee489dd59679559f8d7f3b93a0804d93478412414e131f39bece090ed5b3433e2784facbff9b3ad705a81d1adc542e77"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -mceinleger = { - revision = 15878; - shortdesc = "Creating covers for music cassettes"; - stripPrefix = 0; - sha512.run = "0792d7a5289965b2379001a54177e1aed4a3356d8611e52ef77f5097bed1918dac324bdf5c618ca76d2925d11539b623cd9d4016ff0f4d1f9283137816ec145d"; - sha512.doc = "2dab78fd096927e3958d7270ddf15de9350ec30d1d000e7cf92be3b249ccf70e6faa1dce482a07995e65b4a4549693ce3b34d1a63bcc403ebe81f3d1887ecf90"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -mcexam = { - revision = 60481; - shortdesc = "Create randomized Multiple Choice questions"; - stripPrefix = 0; - sha512.run = "3c75869bd0e65798fa451d971ff441f3a42daa0647c31458631c388cd14cbb36fe4f4dc9178e59fdb307de590d201e8716b1a86dc9b995aa184090cbdc95c9d2"; - sha512.doc = "30a7f5cf9b01e8619c95d63ebc2e3dce27beece3a4da6ed4d68843c171257f37d7883969edc94766e065c5bbdd78a2731d38666d2073fd5d77873d5a88b3f820"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -mcf2graph = { - revision = 70167; - shortdesc = "Draw chemical structure diagrams with MetaPost"; - stripPrefix = 0; - sha512.run = "4e243f8410b3ff8688365ff1fc90da5c81adc1a3ea426d2ba92c18a1378f76e5f00bf2f7aa97c39387caec9b1803fe0603632d1197f31fcad4a860dc3b93b579"; - sha512.doc = "ddc7500877bf459121a7ffe242618efdabe2e201da58f9038fe863451456a013816d66b807df74735a6bd1701cb72341bce771489e186b21c404d623d58b8205"; - license = [ "mit" ]; - version = "5.12"; -}; -mcite = { - revision = 18173; - shortdesc = "Multiple items in a single citation"; - stripPrefix = 0; - sha512.run = "71276681ec29d3d77450a8c343d64a1ea734bb48de0d693a4e9ca795e4a4c9a3d5f4103b5641c8684d49b5c95f56bfd08bd12e1d7e37d06f9170008b51804897"; - sha512.doc = "8c5ae4b1beb334ecba3294108345bd616746ee651f03d39a7bd5f5cac97f671a861fb046e29ae7565863aecf4b043ebe25bf9a4180889c39e48735251e430004"; - sha512.source = "9f6e6edf49906bf3300123f8fe265ac8f8580c6838d59f7147e9337e67bff71325ee41a3993b3d1cdc9c036b5d519834261fb0a2a9cfe4d3afdbe070b454af8f"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -mciteplus = { - revision = 31648; - shortdesc = "Enhanced multiple citations"; - stripPrefix = 0; - sha512.run = "5be1980964ea8342321964f0db1c750c33fee9f21724608a260ebed22500d1fcfb0fcb7e588a0dd030a6c534b0da904b8bfc3eb0da7b2df34c0b3f2b1b8fb637"; - sha512.doc = "5e720fc2b32ca00d71ade77fd0a47c6ef44d9b7692a8160ddc55a5f60495a40272a7a0c6c2f5bed923ea10703654f155701d4571d72805c1ef900780a209a0a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -mcmthesis = { - revision = 69538; - shortdesc = "Template designed for MCM/ICM"; - stripPrefix = 0; - sha512.run = "8730424989cd18392214aa59d34b0885fc7966d3b2728fe8a4c05ddd042ce3a0fe54bf0ec6e602a9a7a6ead6df67b653b09c6cc360a14a9bf17bf3dcec3fc2b8"; - sha512.doc = "8beb47651814e5f6268da9d3b40d99e4cf1988d4ea10498d42af648c9e0a37e3e73392ecf91259a3164c06287c8db59392454f49aaeb480e4d5e2b350e7f8c64"; - sha512.source = "318fc5ba9034d304986a77c86f78c31197d5522f8c1471de8d25c7bd4f6c7c38f58a7f5b41420fad24bef7f8ff4fe75e179e4be21dd1270d5b36c57fcb631db5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.3.3"; -}; -mdframed = { - revision = 31075; - shortdesc = "Framed environments that can split at page boundaries"; - stripPrefix = 0; - sha512.run = "0cff0945adc04102e0b0a154cac1f78e9ea903b29e3f880156b888abeb4ca23565d39a7b66d8097c35534baebdf6af152c5b3830d08e1287e8e8d18e8f6344d0"; - sha512.doc = "06822404872899d6f509fa94f69cdcb81dd69866fbc5a82fd54ca361aaf27133140290cec2d08800dbb39c896ebb7cc19dc4cce38d2a0e45de9c658bbadf3352"; - sha512.source = "04fa6379f9840676b4fbc31029f091d9112524f8450747ce31687c9ba77a02e41c25ff51676424e97b788c48bf0bbab690459b6b84e128514cda8efd459255d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9b"; -}; -mdputu = { - revision = 20298; - shortdesc = "Upright digits in Adobe Utopia Italic"; - stripPrefix = 0; - sha512.run = "2720c63845939d2befea3af157eae95d2550a216cd22634ab0a923a06d50b48e7133e914d210c5d3aaae6fd620312d23d2e55a015c2a24ee1881bc7ed4868778"; - sha512.doc = "8c8097552ffa1f11944203e818742bec244abc5a7708207cbb69c46ffc64acaac28ca390c1ee256cd1cf2af093e39189cc9bcf655e948062cd217b58acee7628"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.2"; -}; -mdsymbol = { - revision = 28399; - shortdesc = "Symbol fonts to match Adobe Myriad Pro"; - stripPrefix = 0; - fontMaps = [ - "Map mdsymbol.map" - ]; - sha512.run = "49b52141928fedfdf5fdd63251de182761825a6cdcbf423bff562a863df159ac0d1c001239f777e7aef68ddce23c52407758c70f7da42f066775e204ac8c841d"; - sha512.doc = "ea4ddd0fd65204ec0ed980108d86e97be267ba46c1cf45711c36721bfab9302766ec1d0849b38de75003af564a797f8566def377d8d947d464367bfa40b91399"; - sha512.source = "0b649eba13871f6da834bbfb2c6523db6d50bd6a491b042a19f0e061ce9794d2ca03c39d277669b6698b48806fd0b705f322a69743c4fc50233559fd10406280"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "0.5"; -}; -mdwtools = { - revision = 15878; - shortdesc = "Miscellaneous tools by Mark Wooding"; - stripPrefix = 0; - sha512.run = "bd78773e42fe20cce637a8fbc7c0e3f4f37ed50810190ffcc035a20c83508b6b7de7f7432b7bba8fbd039ba62f43a5b5e1f4839acb3fe62b425b650f23ff71bd"; - sha512.doc = "06c8619d8bcce2c5cf9f5fce65318521bbb0c2ce53acd6b1793d0fe19a8f7a32c36ff68f355b6809491cec365d09f5f14b0589ddcbea6c5b48900d11fda4867f"; - sha512.source = "b3e6ba09116dd83187a55f205527c318d9afb4742404bc21b12e0be3b754140ecba82642154d92947cbc0706f0f9d3e6d876bc27108f13373d3c9d6ede4d7f5c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.05.4"; -}; -mecaso = { - revision = 60346; - shortdesc = "Formulas frequently used in rigid body mechanics"; - stripPrefix = 0; - sha512.run = "b240bfbeda5a18fd24625444403f508e3dffc5b3631a8ff6e88db6aebcc97da3eaa2ebb3ebb0d15b0c1bca0d7f62a72511a00c0ca1870f6d0d3e90398bbc5754"; - sha512.doc = "42744543f456f1c77a30be81b4dc47f69b220d2d0abd8cf7f05ec7136bda9f55f98e63a48cb9b2fb65d6fdb3270bce7a31cbcbece15527d4141bac301dd55963"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.0"; -}; -media4svg = { - revision = 64686; - shortdesc = "Multimedia inclusion for the dvisvgm backend"; - stripPrefix = 0; - sha512.run = "b5f9ffdd5fa9c28b2d4fa71bf7e6b207ca1632d98ee7a9018f2eb84cc602edcb6434917c2cacd2bd51b7f34c893c099e94e9518905700218f03da224a3df2fbc"; - sha512.doc = "50fc60d4bd74cf3c009501d37f02c9cbc98b11a5b498a55edce56801fe3e6b4e247c038525c9c76df108df0d991d797935ba131cf8b74dc27439f75b4a3890f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13"; -}; -media9 = { - revision = 64047; - shortdesc = "Multimedia inclusion package with Adobe Reader-9/X compatibility"; - stripPrefix = 0; - sha512.run = "3eab7f0687395941f6805db51fff943b6bc795a8a5cf2fb2ed9f03f0103b4fef0bfebdf449701a051b72d8f18a8e332ec02f1893812e4be6d31a56980d50a1e4"; - sha512.doc = "e3f97ec8b1fbb345e42f641eb37f6210d4ebc2e791f6ca21af6c7ac7c7f86c149fa874cafe6a2eb1d47508e2a72aded6ea40b381393ae79e9baab5ecded73c6c"; - sha512.source = "907343fbe326e491f543f104ea9335d6c69848b3d4a69469587bc5d417e3a58e2d18567a0377c71a28e8e7ee6d94959ee8a7e632819773692d34b6cc47a3cb09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.25"; -}; -medmath = { - revision = 69510; - shortdesc = "Better medium-size math commands"; - stripPrefix = 0; - sha512.run = "29039ecd484047454355d009688d5ac4ab4ed5d79a90039025454d13985971659b33476cd0306da52c1afa1a5fa87855b37a8c32b072a094abec28af204abfc6"; - sha512.doc = "19f64ba210e9f3b7a03775cbd3de1b9fc1df69b9e29034f0e46a5ca5a480905565ecc484c6fc5b0b5b7eb9bcff79b8faa8a05a0bad1128f7c224ae732c2973f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024E"; -}; -medstarbeamer = { - revision = 38828; - shortdesc = "Beamer document class for MedStar Health Research Institute"; - stripPrefix = 0; - sha512.run = "731eb6f78875aa38a90a228626d7cb5b7129c60085418d7ddadff056c9b82f8db95ee17f20ec8cd4611aa90bec391868f6b0b16fa0eae518358a869b576c150b"; - sha512.doc = "1605cf9ac4eba56059b6e90e6a6e7f3cba9a924df1cf3dcfed300e218bbb71d79bd69b47a5e376da209490a8869061d6de8415e1670b4ac5b0fa977f74d7c035"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -meetingmins = { - revision = 31878; - shortdesc = "Format written minutes of meetings"; - stripPrefix = 0; - sha512.run = "315897eff4ae50257057f8191ff92535b669fb174a2eca5c368a9a4b9f75cd71ad745f3feff1c6863705b3e9e4a954afa449cf56f86bf60c389250842aef5215"; - sha512.doc = "6afbfe02ee39e26e2f38ce462affa66e7e0acf5f26534ff9ace0b26b4e63514a3b1702e34bf478988a50c55fbb09b7d9421a8e79da6a6c46de88c6a958afa874"; - sha512.source = "3f4a274000889e9160943ca0b7a7af30bdbf7aa9a33c8cccd0e938ad3ab94ad8f24a6685bc99596a1046a22d32855061a7c511046dd6c306353c4f5979e1f230"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -membranecomputing = { - revision = 64627; - shortdesc = "Membrane Computing notation"; - stripPrefix = 0; - sha512.run = "831c579f8d66e265125e3a730338d01fe98d87241f2b52c7060ba3f852667a30afe256f37327497ea21e77cbbbee0017f23bd1f51c59f6445b4552e7cfb52ba5"; - sha512.doc = "5b6479efc72f8e06e54d17c5a3ca4e63f0fe942bec8f0a1504365a97b59ea260891f959939165879aab0d23887b98b2ebce8fab4789959d1c2de3b37c3162aa0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.1"; -}; -memdesign = { - revision = 48664; - shortdesc = "Notes on book design"; - stripPrefix = 0; - sha512.run = "42949db3193952d1ae75855110ed40a1ff467b3cef0bb6d43195bac960a0873a47fad002695ad1376da2d4a1df5e1e05f89289102780d27b173da2e852b53cdc"; - sha512.doc = "f4dfa00676379ce33857cc0fdeae867d1ae5c99e6767884a029285a94d2197926a68cd85c574bd876a2eeb85f0453520ef5efcb7f2a71a77c725f8066e7adf8d"; - license = [ "lppl13c" ]; -}; -memexsupp = { - revision = 15878; - shortdesc = "Experimental memoir support"; - stripPrefix = 0; - sha512.run = "74931ebb1a146edadcde19d8c404ff8df750c4eb8f2f59fa83e6da9f8dc6567005d51f58e4b7bd2cdfa6b960adb072e9fee7b1842142076df88887c3c2b41051"; - sha512.doc = "645bb189fca1c74e249745ad42c470dcd5d9fa4412a6dfefbcb6377555047bdbcf005f1c07977762e0026e8a4f8ea49e6965a7d50b0d5d5e7efd0228ac2141a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -memoir = { - revision = 69600; - shortdesc = "Typeset fiction, non-fiction and mathematical books"; - stripPrefix = 0; - sha512.run = "ef905bedb5b27fcc0e65e2b86ce9f949135e0bf4c857431a0af68eaf5a4472e69ffc687d243560d69a3727d8db2388ff9da7c86283e625964ffea677f7e80c0b"; - sha512.doc = "4e2b4f36a5a894ed7579e1018e0ca2309791716fb9e36623237c9c4021441893c634ffabdbb33bc23b63a599d4576bd1ce2f1c549d424c9d87c6df2b12e43a09"; - sha512.source = "31d3120456a4451e955c0476846c057591836de72c76b8de9b421d2e22d7f1018d01073e8f9354ae82d9603ca9fd153a617cf9699b31a1c79254eaf2094503ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.8.2"; -}; -memoirchapterstyles = { - revision = 59766; - shortdesc = "Chapter styles in memoir class"; - stripPrefix = 0; - sha512.run = "0a109f84bc4d908b1d32bfe3ea0591c81f3de757cc5a5cc1aff3e60b1d2fbfec2e8b760fc0d07faf1fec62348933149a03c8c6147fbc5ffddae30b74a131a100"; - sha512.doc = "2f8a20d21dc1db21017435cd58c4ae3ff744b5f5605aafcfef6dfbedb1461a8fbee456ffb8ac1399416f7ae6b8ebec5d59b5d50886182ba5116e22e3768fd530"; - license = [ "lppl13c" ]; - version = "1.7e"; -}; -memoize = { - revision = 69522; - shortdesc = "Externalization of graphics and memoization of compilation results in general"; - sha512.run = "ebe8082704f8276468b392fb0efa92ccd65616fe48296160669ce10b99b31a6d73ccbd9078ecc9c8fa520c31130bc57f3dc8561267ed64d9d6ea14b28a32f909"; - sha512.doc = "635e985c02d8867acebf493cead0e80ea7b481c98c5615cfde781ad850bfbfbf606d2dad5579dfe22085f7947b2976d9e26b397b8509e31fc5018e074f852848"; - hasManpages = true; - sha512.source = "06f1c38900d1daf52ceef138a658937dd85e1cae8280afdaa44e32eb9049ce444970becd3e0936a9f8f732ec8b32120cb55a343f5c8c523e217d8b7172de763d"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -memoize.binfiles = [ - "memoize-clean.pl" - "memoize-clean.py" - "memoize-extract.pl" - "memoize-extract.py" -]; -memory = { - revision = 30452; - shortdesc = "Containers for data in LaTeX"; - stripPrefix = 0; - sha512.run = "9b760613dc36895edf50a592aa5ef994a30117cc9da6ea256835cd3ad9ed62ab8d8c39de95bda5058d1bd3f06451d1c79d78d52ff6d068c28d75410c5ad98516"; - sha512.doc = "479428f1af468d909fa291388cde319aff1ac9ef6d7c0168577c5f6978c0fa7e6b23f8f81dedaf746b7e394c92d51d5799bd17aa3488207be494621b77220cd3"; - sha512.source = "731d4e4c874a58c2c1ddf6a394dd9eb67e557608b0d2a736cb500e4e299be2a726d4312d2eb4a05008684cf5fe14d458a7c020bd31fe134f8208d9fb618b312b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -memorygraphs = { - revision = 49631; - shortdesc = "TikZ styles to typeset graphs of program memory"; - stripPrefix = 0; - sha512.run = "e35c7e727cf5d6e496c9c0e52252b5169670006b9bc9e96b1c95584085d57a3f25cb9464bb55fc4138640ebb6fdb079908cc49c0f1bfff130a509b6866d3eec1"; - sha512.doc = "1c04e25d1c16348e594191c17f9f104e9388bb608b10783927ab3412f2f316138d6b41242046f12853b37560873bb61e0a0ec3f884cf8fc26ae2ba5809b094c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -mendex-doc = { - revision = 62914; - shortdesc = "Documentation for Mendex index processor"; - stripPrefix = 0; - sha512.run = "76f59e31e7d2a4240ab7b258745a7c94b8d78f8e308ad2bcf0ab85fc2d4b0ad77f7e1268014960cd29913bc3a81fdf2d6bbf6a8ab0b0845f2587c3134efb20c0"; - sha512.doc = "1a56d1ceab9536869e6d7da57146bc126f45893bfa998ab42eaddca7c48a9ee9d5b69abb31cf02cb6590d7acab68029f5eacb8547de6e877ed893c5f51acd923"; - sha512.source = "e22c3a7573e8f57d8324d7ca74b3c6b4c716dfa0ea6f43ba3e6eaa63aecf0fe0591ccf9cc4b18984ed2730fc5b9e0b84287bca677717f81c583e0c3c3e0c564c"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -mensa-tex = { - revision = 45997; - shortdesc = "Typeset simple school cafeteria menus"; - stripPrefix = 0; - sha512.run = "c453044a7f744cf89605996d0b913c56208f10c46e26e0ba37a85bb1d63ed08426a18d87cc7841aabcf44231c71dc33a5c858de482c6d48759893066168d5fc8"; - sha512.doc = "8297e3f69517f3bace8f509dfb42616e223073f5d428c2269d9dbeeb53579f105fb65755b22ab552e5635f1267e437c4aaeda284a8325b2d95717cf7adc2de01"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mentis = { - revision = 15878; - shortdesc = "A basis for books to be published by Mentis publishers"; - stripPrefix = 0; - sha512.run = "ee03fae28adbf147945a88548e8223bfe8c8ce220a61726bc6738f34cc90ec776aa468a1cf7fc862d1f7f091cf87964cf665839922819130f3575d56301a5d26"; - sha512.doc = "2e869d1368b807a70f3de5550d2c79f229dbeb8d888a927005fcc43c70644da0ccd36eb2464fa6437c9947c78d59e77c4013824b1e8d5a4bb517b80f1cfb5a8e"; - sha512.source = "10858cb9cb2db0f7db31d371e42436ca001ef20fede5f6b34dca61fa48248383e32547576a2dd3a4a98acddfcaf9e1d3fec89183c48ae76d5b3b677fabda7549"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -menu = { - revision = 15878; - shortdesc = "Typesetting menus"; - stripPrefix = 0; - sha512.run = "2b2560a1df5091d19ff37bcbac1465fbfc54a848e4d19782602d656bf42abe47bd2bb1946f87a127c70725cf508ff9712337f3a8719d1fc0bcd4dab4473c7bc4"; - sha512.doc = "ce8ddeed4e1bd859865f548d8ffc6978a620d9003f908d360e656085f6010a0f179218cc8b2bda4f754685369b53ad59245fef8d8f8a766b241f092162bb76b5"; - sha512.source = "6c96cb64584802af2248bf43ccb7cc5215d8a2d2c13f1d6cf8567934938979095bbd51760bad7892a6d894a9651304dc9f5e4ed038f68ba0af087567de0777ad"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.994"; -}; -menucard = { - revision = 55643; - shortdesc = "Typesetting menu cards with LaTeX"; - stripPrefix = 0; - sha512.run = "2cdbe2b8acdc12e4fc0b7d8a93afacd30ea2a8bef6a3f1766d219227e77cf06d26f1fe24206f15dbfd6d0a7507780955060df1056f14cc546e9a3c781c36f307"; - sha512.doc = "0133f249cdaed1bd565047974868953dce96c4b9ce143cb8c1170194d0ef1b1e6d2e4088004edd831ae0ee1f5e736a1a297bfce75c1bd4b600b3b14a270e746c"; - sha512.source = "d493d78656919b30822bf5e95024b3a85c8912936d2c7835af1ecf50eeb04c81e6262da230241c9bd78f0ca5073a1a4cfca4bcb43ef528b8623f0fc21671d38f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -menukeys = { - revision = 64314; - shortdesc = "Format menu sequences, paths and keystrokes from lists"; - stripPrefix = 0; - sha512.run = "624bc3f2c0cbcf4cceacd555619b5e3932c7c8623e44f4b313390af47143908d019fa7e83d28f8ce94a5e44df40aa73d6823edc931bf8b289d20fc2bf42616b6"; - sha512.doc = "5edf9b9e2accb846aa352046e37af630d997480a3483c53796e56066c1df00798b7615d13bf69d822ed9caa300f6abf624174cf7136caff8fd14c5d23ce2b68c"; - sha512.source = "724478484b110022c6bb591d92829042299226595fe9974a41efe9c6fa9b67c4a1c617690a2518e6bacd1f903bb020c1f815f4c3186ba2ceb185f624a869fabe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6.2"; -}; -mercatormap = { - revision = 56060; - shortdesc = "Spherical Mercator coordinate systems and Web Mercator tile integration"; - stripPrefix = 0; - sha512.run = "552c0fcb0eb72d55c51a2e9e4d055cefa27859d8e1a4410934fbbe6c139b4ddbad7e2444974acf4035fb29cc4bc8c3f76d33ef6c6e73e91e57e4225c102afd9f"; - sha512.doc = "446be6f13150ba3490890b528fe04c8a8080213aa6a5b66fe61e3e58ea4fc0bd03581aa96b0ec355c5ec725187b7b681507f961a9b29350cf07bc19bd2c0fdf1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -merriweather = { - revision = 64452; - shortdesc = "Merriweather and MerriweatherSans fonts, with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map merriweather.map" - ]; - sha512.run = "363cf63b7211464fba6fd7686dc7d1ab6914c64d724128eeaec90b3dac39002c0653a2c54ff6932c8ce1f16577cf27b1e4665a3e1dbe92bbb81e0a15419ae36d"; - sha512.doc = "8762dfd5b3f3443177e0900c434c74d4b8ccca6c8817b1d8353c41ee8310b2299e2fa67113881bb47dd6def3295663aeeefafb15d7b808def000b6e253ac2d3f"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -messagepassing = { - revision = 69123; - shortdesc = "Draw diagrams to represent communication protocols"; - stripPrefix = 0; - sha512.run = "8a2243bb9b788a4dbb1caf14368fdd4df3919d9d407b65f2d4f49af16a341a030bd9114f86078623760dc3ee5db060060c58c6f675f4e8bdbc3c1c7c9b7a1d3e"; - sha512.doc = "c26c14eccc615a306b8ebe1a5c80a09249d5ba8668a34e2f7141b034df70634a277ad94078f2f50e51e53c514340571f9cb766232c3e2dc0ef5dc28336ec4e4d"; - sha512.source = "6ed92b15d4f17613ba540069b4d5f4bae5b7ce2850594377ecebeed76b92c61f672da8f95628d46db87dc9b44ef7dc9c8561736bcc9500d1951f523dd43d7378"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -metafont = { - revision = 66186; - shortdesc = "A system for specifying fonts"; - deps = [ - "kpathsea" - "modes" - ]; - formats = [ - { - name = "mf"; - engine = "mf-nowin"; - options = "-translate-file=cp227.tcx mf.ini"; - fmttriggers = [ "modes" ]; - } - ]; - sha512.run = "2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e"; - sha512.doc = "48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0"; - hasManpages = true; - hasRunfiles = true; - license = [ "knuth" ]; - version = "2.71828182"; -}; -metafont-beginners = { - revision = 29803; - shortdesc = "An introductory tutorial for Metafont"; - stripPrefix = 0; - sha512.run = "39352d8b181f3010fd4dbfbfad18a8cd3f68f0c38bdb89996ea4c77a649acbbd15e9a7fa318193db08733b3722a07a8ebfb17a6430bcc9af8101dc444608d75b"; - sha512.doc = "4fb7148b0668845447fd38411df0288972312a56897b1d5bce69a7e57ae632aacd12c273a911045204705a5534ac1d1c290af08a7057bd62184a59eb7146feb6"; - license = [ "publicDomain" ]; -}; -metafont.binfiles = [ - "inimf" - "mf" - "mf-nowin" -]; -metago = { - revision = 15878; - shortdesc = "MetaPost output of Go positions"; - stripPrefix = 0; - sha512.run = "e7b3661d99ea50f7b20fe3af370e59e960fc0599409b5c11bfc9618c12c38e44b89e4e81d69ae7ba5e2565e46078ee52ed0bef46aa619408b386bb73926caeb7"; - sha512.doc = "8396725c0afc87c63d16256d5ab0d575a19f05d78ed245099a60785f0810a012e8c0026cf13d03781d09d7c0007bb9ed9b87072ed732ba706c893e5465461052"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -metalogo = { - revision = 18611; - shortdesc = "Extended TeX logo macros"; - stripPrefix = 0; - sha512.run = "20d5a9b8454166535aa3aa80da7d2931937fc6a4d730c1ab70c856311c223d466e9fce2ed6e3b2fbf4b4fc75778d7d4c2649111df5f92dd58b6fc42b3ec72696"; - sha512.doc = "48318b396e4e227dc1b80e21474a296ba4dfd37e81b95f9669dd8c96ca7318abd8a1e21ceb95e0ca7832ed64a85ede985fae7e2e52b3aa742c64b86e54fc563c"; - sha512.source = "bf240b77ef00d5351218674baf851b0eabcb22257fd6ce9dbd6b66afec5323a730df7b27d522f5130830ecf92af377edb3ec7906be206e760971dbe8f6266942"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12"; -}; -metalogox = { - revision = 70496; - shortdesc = "Adjust TeX logos, with font detection"; - stripPrefix = 0; - sha512.run = "b78976ad7e84e59ecca68c0e7ecb496f99f4e50ed5e1636b5675bb0c290f3f4d4d00b02dfe55c78ff4c5ae936e19c8110cdbc1fa76fefc1ee8b31a2c481625bb"; - sha512.doc = "64211eefedc7175e4859deefaaf89d021763b76cfa3509c8f6da27017993012471b3b894949d3c70eb1f5286bbbc545c712b041440e05df46bbe0ea82eb090fe"; - sha512.source = "89d9eb81eb883c8aec531117b0a62b838e8a1b0b9396eff4ad690aff37363aad31d6ef045621736e2961977c40e96fc54b4a72aa291863465318fc89b9c5006b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.06"; -}; -metanorma = { - revision = 55010; - shortdesc = "Write Metanorma standardization documents using LaTe"; - stripPrefix = 0; - sha512.run = "e9ca6b583cfc64ee78abdfca2520083dc231afd7bcc0b1b8373273c23da3f3bb961bad04d752cca38113d3a4d8e1ce54b401b96ea29e00e78be97d73bc528b4f"; - sha512.doc = "3750e580e3d7d0d69515e0de7a88a161cd8e7092af41be10fb4092cb519ecfebfef900e691d0c92ceb95df236cf040b2a314d54bfd8a6f7a09cb3c9585f15a32"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.5.0"; -}; -metaobj = { - revision = 15878; - shortdesc = "MetaPost package providing high-level objects"; - stripPrefix = 0; - sha512.run = "cf587c174e44da9496ece876bfcb8330bc52173cc3bd6d1b1351efc75a7c333ed8c7cbd41c079d492947a1ee43d8043fabebc80b4c7a5d348eb054e82c704e3b"; - sha512.doc = "0bfe1fa6a4b3a8923cfbe9bdc4fa1b27567df66365db447346fdcc739675d1d815515e09fbe96f44369643c38e6a8007a0f8d089ed8504020fe0a0e2a795ea9a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.93"; -}; -metaplot = { - revision = 15878; - shortdesc = "Plot-manipulation macros for use in MetaPost"; - stripPrefix = 0; - sha512.run = "eb083316720a5d7379c0ef7c1afa0e82ea5df63a3a98200b7041637a6fa47aa33dc20a265e05bdbc63abfc375e6b59fa199d4091875c057a044821c557963dab"; - sha512.doc = "1732b5a572a3d4c0a646308d3c102be29de845030a624763dd6075a44a739a29e65fd9f224229eed6dbe8dfc6b590a3df1cc07c184881dcd2f3dc5b0642a48dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -metapost = { - revision = 66815; - shortdesc = "A development of Metafont for creating graphics"; - deps = [ - "kpathsea" - ]; - fontMaps = [ - "Map troff-updmap.map" - ]; - sha512.run = "fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a"; - sha512.doc = "6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58"; - hasManpages = true; - hasRunfiles = true; - license = [ "lgpl2" ]; -}; -metapost-colorbrewer = { - revision = 48753; - shortdesc = "An implementation of the colorbrewer2.org colours for MetaPost"; - stripPrefix = 0; - sha512.run = "e59dd121f9a176e628697e31b720507723867a0b7b68b73531aa825bb02b07d04ff705bdfbeb369fe3a2d304f4c6c5aad3f823aaa4c82257540f1459cf099cb1"; - sha512.doc = "59f17d78ef78a142bde5783996f149b3a7c740c2b3ec6f90133115ebddcf6c460dada543482f5379872054a74eb772bab8afd96fa48b2484f7932a478b8bde2d"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; -}; -metapost-examples = { - revision = 15878; - shortdesc = "Example drawings using MetaPost"; - stripPrefix = 0; - sha512.run = "95942b1b110e65274839ba01c16fed3e63a0ac99aa564d7a000bc9d9a0f5625ddc1dca13e786d0721bf93e76410722d4d76c86a05297bc39cd9af6dc91c2e6f8"; - sha512.doc = "2a3aec80b511864878e07ff973e17ed4fe1aec692c7e6983b57dde586aa19500cdd373687b0e081dc80c8584f116f0fa3de7ed4f09ba232eee8adce5e998c954"; - license = [ "free" ]; -}; -metapost.binfiles = [ - "dvitomp" - "mfplain" - "mpost" - "r-mpost" -]; -metastr = { - revision = 56246; - shortdesc = "Store and compose strings"; - stripPrefix = 0; - sha512.run = "fb3a0484636e17b763c1229eee4736a13820a852d977b11d9e8672e08a8ab2f9438bba0ed53286dfc5b1422adef1cfc1c393d1eeda5d3172848c051d6aacd211"; - sha512.doc = "367ccc05eb31c50519e7324093759d6452081075d7e9435cb9e37e9787fd35666c1c18c822bfbff2b6dba0b312cee727ce8b7fa94ed627eb439c3c00e5b3d4e6"; - sha512.source = "904c3cdfcade4637a16366bf511094f4a33cd2614ee3f47bcf4cae7c2ffc0d0758633a8ff556ef9494eddf76969b235ae599e1df28bf9cc7537ddddfe33db157"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -metatex = { - revision = 15878; - shortdesc = "Incorporate Metafont pictures in TeX source"; - stripPrefix = 0; - sha512.run = "8d438cf0f3bd375c169681b242b7f00dca96cd3bcfb167c6aa664e27dba59eefb53a6d28ef537802d584b17bc578b1d63ca25799146ee6d986bc647ae1b0af2d"; - sha512.doc = "3c2918a3bbb30b4abe2395baf32ed2fd5fb1ce3541f86250f0c4037aeb127fe7e90cfced87144d564813a437b39b184503ea9a2c0c61b979907db74d91860677"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -metatype1 = { - revision = 37105; - shortdesc = "Generate Type 1 fonts from MetaPost"; - stripPrefix = 0; - sha512.run = "1dc34e3f826ebf09c6f3baf358aa0e5ee4ecbe86e2f82a7da12c706f443f5eba7fd8582bf46612b2fa3588515dac34c49d47cfa2b9c3ae905cc51dbe7779eb28"; - sha512.source = "26f891bb5a62da78763df29f1d9caf26588c6dff57e063eb445ae23a5dfd7108956068de991bbb514ee394c49d4ad119d4a0fdb5398aad48d9be223b8f13d388"; - license = [ "publicDomain" ]; - version = "0.56"; -}; -metauml = { - revision = 49923; - shortdesc = "MetaPost library for typesetting UML diagrams"; - stripPrefix = 0; - sha512.run = "96773f0d0e2788d13738930fa1aa727c7ca2edee020f3848326d7be3533c177ac977564aed533c59695b1e6c4c65e191784cbc3e7e70becdd651cd702b462ef5"; - sha512.doc = "6c649c32111a6350d36c69405fc272a917144be429bd84c0f118a74e1232c06744e66fb6647c5a742f58c6c78b46830a1484bbed3a9a962380ece6b16c555169"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2.6"; -}; -method = { - revision = 17485; - shortdesc = "Typeset method and variable declarations"; - stripPrefix = 0; - sha512.run = "9b71ed52073f831431ef6a3a81afe7efac97a6dd39d772b8f48cfa639dfec01411a5654830fcbaef6a3bef7aeb718bbbc38cbd18c592a080e67175dabc7e9919"; - sha512.doc = "2a211d1325322bfaf57c81a534f29fde51ef2e0dad8d7697c3af9fe10745c5f6245bb689b65d54c39a66b34ccec69d055f201aba34b2a4957ce2fea0827eab45"; - sha512.source = "ba90537e63493073509e9407aeecb28797370d75aada1835d5fbbbf991ea9b933226950765b61ab831a708d5fddc10c2fccd624d2872148bb77759a3595cd275"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -metre = { - revision = 18489; - shortdesc = "Support for the work of classicists"; - stripPrefix = 0; - sha512.run = "29d99fe061c828b4eef12047215451eaf6d603106b0ebb0b7c83c8f8b5ffd360160e29a0c86bc0cd329e6f694efae695ef03282885e872cf26c8177f951b705b"; - sha512.doc = "73ca10e1d2b32d4f7b37de6c409b68dc38b3dd165f47f52714c3a17e7a5dc6c1562928e7a7f8c5a3ed9aadfe1324e451baf6cda5dce69043fef3811cb6ff8cf7"; - sha512.source = "d11bfb161dd68208b4f4e29b67131618a02cb60f4e87c3f2809759ab42c44603e790876ea84c6c9f4f053c3cac1bf189344110ff5b4acdc97d7ddfe4c466c977"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -metrix = { - revision = 52323; - shortdesc = "Typeset metric marks for Latin text"; - stripPrefix = 0; - sha512.run = "00cbb4d0cd9417c57ae2cf701f0a485d296e17b95eb56a7a3b0acf328c4eadf3d8ddb7d4c3442ea26ef019dd4a6b5c95af9f718cd4e31b5e5d29301ce8e82edc"; - sha512.doc = "e5f8654272e8a85366c226113d3815ffb1e539237bdace71da55e30864f8c746162ce1b3f3023e3e62616b286145157816aedc871c6c42dcd3d4b76092d8ea46"; - sha512.source = "51a355ceccac5ff53cc98baf6d8fb3c36949f620a51191899d272ecca9671819c740703af1c47856b4c171757de68df839959388c2d87b2f43f54aaaf219b7a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -metsymb = { - revision = 68175; - shortdesc = "The package provides dedicated TeX commands to generate (vectorial) meteorological symbols"; - stripPrefix = 0; - fontMaps = [ - "Map metsymb.map" - ]; - sha512.run = "02864640550428b4869f0682d5571f463d21089f85e4e03336890cd7d37d08b9ec89b9bdc7b09b0f3ff5ea8bd612acfc2974655439fdcc5b617846d5f3d1c2a4"; - sha512.doc = "a3afc302c345de9e00f89f6e0781d4763d4ca5461f498e2cedcd0ee0494483db9cf7cd0ceb68823e7b1806caebc85a22751d5d4ce3b8041968036c8b2514e5d7"; - sha512.source = "29ccd5eb8915077ca09b568c7fd1924d61243266dc2fdfebba00691bb35a0dd908f2311caee865a044a78a9e485f78a4b91065c8d17f08b13420bdcf1b64a05f"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.2.0"; -}; -mex = { - revision = 58661; - shortdesc = "Polish formats for TeX"; - deps = [ - "enctex" - "hyph-utf8" - "hyphen-base" - "hyphen-polish" - "knuth-lib" - "pdftex" - "pl" - "plain" - "tex" - "tex-ini-files" + "texluac" + ]; + luatex85 = { + revision = 41456; + shortdesc = "pdfTeX aliases for LuaTeX"; + stripPrefix = 0; + sha512.run = "fbc1306d40e1c329a106d7ec4ef79ebb99b2869ce72c45212b87fa03f66a18b1636324dafc739a33500be77bee2c71ebeff02c97c42f85716f5bded4dcebc021"; + sha512.doc = "4bf353f60c305ea76e66848920e521dec0c66c80f71ebdfb0593acfc9e2914eac272eba3d69f63f43fe8be903cfbb2da7edd82cbc3d38a897934d91f1ac276b7"; + sha512.source = "40f2732ba0eea372d084c7a9096e12de76a6f7c4ee2c8c9c042ae51696ca46fb527aa73dfb37b7c6a1a75f9753ed32b28fb9d3f2474cfd54528336b4a3cc95e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + luatexbase = { + revision = 52663; + shortdesc = "Basic resource management for LuaTeX code"; + stripPrefix = 0; + deps = [ "ctablestack" ]; + sha512.run = "cb187dcd0f9e454a3b9d021b802ac6f7d09c3eee68adb5da31035f5b7bb36d2938ca940505ee08c8410ee0e5e5c81ffdd21617ea5ba0e9ca7b58abb6ede3defb"; + sha512.doc = "5dc696009e84662fc56443d7a5d61b3f30adbfeae3cf7176e81e676087d0fe580cb0575add49999ea8d5651850b7562c775b0727de01934465f3613ab7344be3"; + sha512.source = "ebb46d5d4c3f6ccfdbc758f9dab64d7e83c2fe988f7da6852dfd5e786bc757f2438f86010a695eb2e780a02830f15dea941de7fb5bdd6e6561df0774b476dd5a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + luatexja = { + revision = 69988; + shortdesc = "Typeset Japanese with Lua(La)TeX"; + stripPrefix = 0; + deps = [ "luatexbase" ]; + sha512.run = "07d0f7ff77fd6f59561c176e6fc25d4b1d4860696aa728c0f9586921f1f32c5a3e01a2f463d5ad3830648fb19ebf6899857259cfa042263f3f17a66b1ec6e0de"; + sha512.doc = "bf01874cca52c561a4ce76d7111596b5a0a20dc0c6f7c383f8bbc9149f4fbe31aaf652d4902ab0b8d10f4719811fd16b9e8d5cfc97740429dd67f3c6a8bdf312"; + sha512.source = "5a92e1abd52c044957a160e41b74b15094b3a85bd8d29ac06ad35b8117ab9ece4d98b93e988994811846ba8bfa4d56f27b41708776489fd9957ecb0ae783ade8"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "20240219.0"; + }; + luatexko = { + revision = 68243; + shortdesc = "Typeset Korean with Lua(La)TeX"; + stripPrefix = 0; + sha512.run = "7815d0d6caada77e5d72c410a299de6349a81f635cf9f2ae5b61a73e5619808b8997de70a35a0a6e8cfa1250d413645a9f90f398582e061c92138dbca97d4117"; + sha512.doc = "cd1d68f9fa8d5bc5491f4a58f465ea8ddc4a0c500f7c24c2034c75f33ad31d869d2d63d836ea6699b02b04b69406290e7f98eef1294ce8be0f9358f9b207c9ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + luatextra = { + revision = 20747; + shortdesc = "Additional macros for Plain TeX and LaTeX in LuaTeX"; + stripPrefix = 0; + sha512.run = "03c95a5e42d8fc0ed88704799a36624ebb48b9c7606acbc09de29e5da845ede3f239a6dda43cbfb4377971cecb55b1f5280cf0ea1aae5057f3ab8df2e0870745"; + sha512.doc = "f1c0d31fbd66f4e78eb638a9bb336f49de3d19b29bf276fb6fd0d976ba2f33599c1536ec82f7887af1c1ee359b48b1048d400b7faf0cd8016b914f4c5318c849"; + sha512.source = "2050bf6c907f6f4e210b400cc93b1786a7ea8407eb64e90054b2ac8408d31689fdb1ffcf4859f1bf6c24c298e5d07fcbd201574b9b397de192609dda504502e0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0.1"; + }; + luatodonotes = { + revision = 53825; + shortdesc = "Add editing annotations in a LuaLaTeX document"; + stripPrefix = 0; + sha512.run = "4cc24f72014d50179fa1cd3630a483677a98a5dedd28e94f2c7003c3c61eae66bf9b6787bcde81b654f4187d873440828655be372b4d6bbf59c802da23beaeea"; + sha512.doc = "2b7298a56975f0ac71bf6c0327d95531622de23a33c4a1999cdd35ae960766342071722e388fd3d9fc10fcbd23c0752e5e5399516c8465f7e66f5ea8b952e447"; + sha512.source = "0ed8cbb2160246c499ed98a7865216e8f5739a7c87a1b9a6ef8b63944a4b3f2c6a011ebb4276486d2ff8fca96428b0c25e87936fade5967cf41f7cee79307880"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.5"; + }; + luatruthtable = { + revision = 68893; + shortdesc = "Generate truth tables of boolean values in LuaLaTeX"; + stripPrefix = 0; + sha512.run = "3f239ac9d477c456881921140345415d2bc9f0db00c9180bdfac2120c86669f2a52fe8dc92752535b2dacbbab626e51ef614da7fc10a93ad90a2322dd1821343"; + sha512.doc = "5e17243dfe5343e211991a9e7b73d8b2d454042bea5cd15fe5bdf257344b4953d9a3e3ed9c2bfa66263c32c53a93be233715f2d524bf78c682a57b67332744fa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + luavlna = { + revision = 67442; + shortdesc = "Prevent line breaks after single letter words, units, or academic titles"; + stripPrefix = 0; + sha512.run = "012bdbcca4062a2f551b28dbbd781c885fbb557f5c1258157db01fff7141c8380341f53a9e58c3f844c022af64a748299efb703de5e37f05acaa0d385b8ab8ed"; + sha512.doc = "a785d65816ff637c4c08f6a0ce95e5a65c4121885f6af32b3e68574845adc10886685451cf3fb68cff05b4ab29c792b3c02f793d912e86ace55f2602af6d63e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1l"; + }; + luaxml = { + revision = 70117; + shortdesc = "Lua library for reading and serialising XML files"; + stripPrefix = 0; + sha512.run = "d337c443f09a8fed88a3530e94326660ebee59260e873e7581226aadc622fabfb37ace31ee105fc321b6633d4fd8c8117739ba6884b367cdaf708f81f686f3ce"; + sha512.doc = "ad30466499514af7dbb5425f560953c23e94f6af468b2e693a560de249eec4b5db913371884fdaa36c22693b5175d40da297fa98e22906fc4c501b9f3b7de2d4"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.1r"; + }; + lutabulartools = { + revision = 67714; + shortdesc = "Some useful LuaLaTeX-based tabular tools"; + stripPrefix = 0; + sha512.run = "eeb781b572beed01f5a787a4d0351289c90751ff49a289952a150e3aa013b10f4b0f69fea546709ce9c6ee077a08a551ac9e03d192c1064205eb2af6e907be1d"; + sha512.doc = "9595cf869f480951f9d0d142abb05548e4f71d8af6d62c4ff0626ad9d9019d63b91333bfc8ba1f6948c9075d62fb7b7956658079fd17ea5e86f920eb7c6ed49b"; + hasRunfiles = true; + license = [ "mit" ]; + }; + lwarp = { + revision = 70072; + shortdesc = "Converts LaTeX to HTML"; + sha512.run = "db403b10401780ea2e7db5d849627e3ce5ff4ddbf3fe9c4e0251c29da5e49f7cfda768c9ea8c397e7c8ccef2c25b3db88db0c406a4fff4ddef081a7bbd32b88a"; + sha512.doc = "1f818d8419e2e7d986fb35ef662f95a3ec24c6a3f439c3ee08f9ca9d8917871d4d21a8ba8f960346479bccf8c926b32751604912fa0274786bfdca641f83b803"; + sha512.source = "70fbe22a77b4494f2dff7e09448a1dbba42d115ef1a8739a305dabba55f8bcdf47cc3e632f09285c6de0442a5050551f7f13d15f573c88459ef8bec2f29a5f70"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "0.916"; + }; + lwarp.binfiles = [ "lwarpmk" ]; + lxfonts = { + revision = 32354; + shortdesc = "Set of slide fonts based on CM"; + stripPrefix = 0; + fontMaps = [ "MixedMap lxfonts.map" ]; + sha512.run = "aa732f403af1adc898e6ac462412a59e4d2c8821ef47807ec5d8c1ce565a73299d472377117bca3fb30add468b546280b1603feff95d35090b338f87b279bdf4"; + sha512.doc = "fed48ea91eb5ad414463d3b929dd4deb5cf433be63aa2753acc251aa1e8b85f0db7307a0ea96ea0bf9c4d9b14d0b90d26cde703bed2761a4a1b789ab3d117eba"; + sha512.source = "18da6f216135745887160dcc1df6ed72eb0e49f60a445e45326c84bed8fd98cd66316e21a6e0e7528d551917092f9715641fc68e02371b609690e00403ca5d96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + ly1 = { + revision = 63565; + shortdesc = "Support for LY1 LaTeX encoding"; + stripPrefix = 0; + sha512.run = "79ec3f1971587a3266d3351cf4d97e44d7871ace695c7f229b92c819f1334c2032a3c906a2e7e74e98fea5f01ef4dabac9c2dbdbecf68f0d5512c637288e8297"; + sha512.doc = "c1a39c96000fa3e929ab6518acb71c26bb06179cf06af4f4eb1f2bde0d21816e108c6a89dfa2f7dd71f95887a37d532bb2914a03732dfe4080541ffa204e8e43"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + lyluatex = { + revision = 66880; + shortdesc = "Commands to include lilypond scores within a (Lua)LaTeX document"; + stripPrefix = 0; + sha512.run = "8d8491e9760f7464cc420b2b457f61c6f9e8e08b7de11dd9194f39330bb193b534f5ae3ea981317e4b2bce536149ca002f532f98bba5e0d8cfee5450c6b9b171"; + sha512.doc = "96d99f944aed67d9e59714deaba08a5b41cd8d63f7c8a38151b2d7952817d5096517d1c643246dac8bb3616efa9c44180264794b90175aecef9362d32a83bf3b"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.5"; + }; + m-tx = { + revision = 64182; + shortdesc = "A preprocessor for pmx"; + sha512.run = "b56bc4432bcd340f3e92f5043c38bde7f14b5f2d32b9433fa21c73c20f7ebb981714175aa6f4f871636efb62a52cd24aa639e87a320039313b16db1b027ee2f5"; + sha512.doc = "316fbc2b37b903cae8da6bb9f44b8afad0e3e577c6fd84664e1724ffe318bbdbf9609dcadd5cde6a14cc5acbc134f69bd7a87dd90d9da7d4442a5f913b8132f5"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "mit" ]; + version = "0.63d"; + }; + m-tx.binfiles = [ + "m-tx" + "prepmx" + ]; + macrolist = { + revision = 60139; + shortdesc = "List operations for LaTeX2e"; + stripPrefix = 0; + sha512.run = "d722a58921aa7f6c5a887c022027df5d04c905f9c1cd7a95df31e1e3d9ad8c583028436eeb35217cb186aee6ea21efff09d3f52fa5284963789ccaeedc3342e7"; + sha512.doc = "21893f581ee47e136a47c56deaee6f9c4e6c5e4380027e22bfb62cf6258502ecb1a647f11dd5468b8687c033e0cc708397efc2499307db320963598228dd3b4b"; + sha512.source = "ee930f3a9d8a909c9c139f47b9022badf50ead0fb95a87a38dc2850e1bf7ea38d346ac362e1aeeb8c2dfb661ce5dca0c3cb78fadaadc0524b080d73d3241d0fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + macros2e = { + revision = 64967; + shortdesc = "A list of internal LaTeX2e macros"; + stripPrefix = 0; + sha512.run = "4b11fe67e0a57f98bec13e9ce928664dbeee189a2eb303312632a881ba4f321fb5acdfbec9d14544782b86a961add6154a21c731f58e889ea58e98459de05c39"; + sha512.doc = "71db4e3a595508119b1a8059c25b7a38e3252398186386519e7edc28b3a75cb6d6954f274795b9ef88e360b1e0998e4da2a29ba1f5ebf464e535ea90c498e8a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4a"; + }; + macroswap = { + revision = 31498; + shortdesc = "Swap the definitions of two LaTeX macros"; + stripPrefix = 0; + sha512.run = "39af1bcf247986c1f7559e1523d1d33680270602bda1d904404db0700452d203f950eadb2d9808a1cd3098bccf070218bd791fdbe5be4a3b0f539f013ef226a6"; + sha512.doc = "4e46c824a6a5909fca7d8a4628c87cc7a372ae5eab0d2f5110dc1f205e072e53a817043cbead53dde55e71c7c1c0e23695ba963c27e46bc70e2f84d430b656d7"; + sha512.source = "43ac07d97c89b821f89f7308acc21521d025bad0dcc82f281e011254b163a54cc457db5bc0dc74419cc5bdfc4297e18cc886bbb1b22715dcb7d41e6bcc0c2374"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + mafr = { + revision = 15878; + shortdesc = "Mathematics in accord with French usage"; + stripPrefix = 0; + sha512.run = "802d108e7deaaa1a42b7f1eca5059f9547f0f4edb2eb5f8f3f0b68d03c05662f37d2bf7b25844dcec6b89d6d1f0babe93614cbc87fe1e2ca0ac2153602c0cad7"; + sha512.doc = "5e3a0c42944944fc467e09751c1881dfd16ee526c78e509acbad394725703771893770d11e5aa16b09b6b5d1059331b72ce0f1e85c6ec61677d101276398624c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + magaz = { + revision = 24694; + shortdesc = "Magazine layout"; + stripPrefix = 0; + sha512.run = "5c35baa39a8b26911b2c2dd875576a0f875f5edc37fb497dbd403720855861219fdced11ee3fbbdee8e63f0817b6c2ee6a20e6ec3bcc9a5183465c22caf7735d"; + sha512.doc = "78c9163951f269a489f6e8a48cce7d9ca46aa5c7f2f2567f8e50627ddc32920a8a5b54bf141ae881c2863de6bad4f7a954588fef9469291f18e65b7fadbf051b"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.4"; + }; + magicnum = { + revision = 52983; + shortdesc = "Access TeX systems' \"magic numbers\""; + stripPrefix = 0; + sha512.run = "305d94ec07468511e7ada667ded30a1c3ba68835d5bdd03a9a32c7bb7c0d274d5ddc77a5ad02712faf10aba5eca73c6708cb2bf497bea0b73b3f99b10923a8bd"; + sha512.doc = "084bdeb7d422a5e79f4a53864ea0c94b09962e159e103fe3ea77163a9a549605f7139bb2ba9d1a57877b3453162a99470f48a691ff78289a1caa5389b2a7f67d"; + sha512.source = "3bc74965fdc7ecfe7481e426e3cd2c9a27c8752fec3248e707c1f0ee1fcd03205540d6cbde05b82c9313c567b7e689acc9b1146f53962eadfef22d7006c896fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + magicwatermark = { + revision = 63656; + shortdesc = "An easy and flexible way to set watermarks"; + stripPrefix = 0; + sha512.run = "87dc295ac046213ed1a0b3c1b2b415edb3f65cd1e213b101ed3125df663fc4261fd54c07343ece9dcb4e345f134e7d9caff2791e0b8ff507b8d006d5c2dd1430"; + sha512.doc = "76504a77b18c8fd21d27cb26092edbca6e1e9470c006bd486ab4412116f30b833f3a92cac216c73318372da4fe3ccc7342effed2cfcafd09fb8efb1770582d5f"; + sha512.source = "4f42f8459f7ae28a4799473b57f0cbeea59de0f6b1cb065a0e2f27a8ab5698512bf3845b275e488c7157d3504d79680e679c88fbd510bce485a89b72671fc98c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + magra = { + revision = 57373; + shortdesc = "The Magra font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Magra.map" ]; + sha512.run = "2b182272dcf5bf3469ccc38daf9ad24081002d118de77d2dd012b136152f2147a63c6c8fad5ffe2f758efbfbf7665ae0c61ef6281cf16112b740da95d2334b63"; + sha512.doc = "8364aaf47ee07d7462dcb13bb370c88c47556e23491233e580dee165528b417bf3dd139f0cdb3db6c565c0ffbac40ea2fb995a0dd2981dd227d1a70561f2f619"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.1"; + }; + mahjong = { + revision = 58896; + shortdesc = "Typeset Mahjong Tiles using MPSZ Notation"; + stripPrefix = 0; + sha512.run = "697c0a634304e4e94a6165fd033d906209fa6811cf6297868b76389165bf557f3b6abd419582d200bb252365f790ce53c98e1da75c8b6d3d061cb5d6b635ef38"; + sha512.doc = "622a34f880eb02813e7f4c1f6eb7199194c3ee0e62df534e7832530c34f09e2abfa7f1d491b4840310841e230e3ab5080cbfa5370e9366c0f9b8fd9000b0ef38"; + sha512.source = "6b64551b9cf9d4e79875935d2b37af602be7d3b001a3ef441003136b950741adec8d4b8521ca9a49d744d2173c0b053f025af909fe320edf08f1b3d7c131055e"; + hasRunfiles = true; + license = [ + "mit" + "cc-by-10" + ]; + version = "1.0.1"; + }; + mailing = { + revision = 15878; + shortdesc = "Macros for mail merging"; + stripPrefix = 0; + sha512.run = "33fca4d77b34e3390de647e7e39d6240344f2a90c6067275bdb0e7dd1a3deaf5d5cdaa84dc4a49a0c817bc6923eb593602653b0d0ae4b794510a272b78498be9"; + sha512.doc = "2fd2d4dd5c1896d0849294a1911ae3682b7331cfa574bd46aa047f118fdcb09b4da3e29f6d5412d23ea49f776cd042694508e8b5492ec53cb44a6acafec110c5"; + sha512.source = "5adf58b4bc60e939906b8ae587829937afffc54af81623e640a513ed8522984c2308d3af1631857f4469a5774a844e3655bc3a9ca8ee09445b545d10dbcfea5c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mailmerge = { + revision = 15878; + shortdesc = "Repeating text field substitution"; + stripPrefix = 0; + sha512.run = "1930b0c554dfa36514d0c0b33749d506d6e5acfcf65e3c1dde3ed75a7c45bafb74db8d83f1b286c1a623acb32b2047dcab566ad85e3676c67c0ce1f7722d24f4"; + sha512.doc = "3e8aa80211af8f59289b87dece6cc2a1c5eccf02805e3e7927c78cdac66cdb6afaacb07b1114f8c67105289e4d4f7188043cc28f00365c1f5c3f353a53f14922"; + sha512.source = "d894133e294ea440e1916a04f28a738930ea0ae80ad96e148434c84a02a388735d00778ff4850306ba7336c915a9b2992f41c496149447e6189db82c59a66138"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + make4ht = { + revision = 70117; + shortdesc = "A build system for tex4ht"; + deps = [ "tex4ht" ]; + sha512.run = "f16c8062b72932b24673df223850f58521ee5766536c9c210eed123b62c77efa3829f7cd38e2f9f7b62a516dd8fca860def52599be702f22e2d60a8683b52138"; + sha512.doc = "f7f45fcbf92488c2c97fd2b8916b1715cbf76512f43f7e60d29293ae7553416f9a7969e1b5a9e29c88319a5d0ecf6b8fb8a2254b201cafba597122a6d594ff11"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "0.4"; + }; + make4ht.binfiles = [ "make4ht" ]; + makebarcode = { + revision = 15878; + shortdesc = "Print various kinds 2/5 and Code 39 bar codes"; + stripPrefix = 0; + sha512.run = "a19268b5e63e577b4df9255e4c0eac640c73ac9e08f6d4b4baaff7920f714b7dd961f8143587b59478df2d854dc2f363312833c7636d08c2aab644a25b54bb40"; + sha512.doc = "ecd0121f679d7e4ffb162c151dc4b60acc78f9297d3bf0003882b914f0b1a10a52b43e844c5bb085d73ac08f9f0aa2e768ec4fe7374067ae2fcf304e842a29e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + makebase = { + revision = 41012; + shortdesc = "Typeset counters in a different base"; + stripPrefix = 0; + sha512.run = "cf36d0bad24180f48a7cddae8fa19c6260ceb5076b21f05e48360a30ec259b342e6a17f1c5d299ce5fe02a8dc5ed7934dd55c5529118bb24dd13cd36242b0d6a"; + sha512.doc = "2f7eabf88fe3777ebb1455caed5a339c3b56e0e7a97d34aac0b4c461e7ccf6450de936678ce00e64e39f308167ec55a6b3ec42f7428a7a9c87d2607570e1576b"; + sha512.source = "734e05be1aa54da7bf484fb9211b1f5d6d076c9a87c3287ebd1fe0fa965f542e4e8e14a6df767ccaa23063fc263e66d52b42df54fe3c3142bcf0b3d7f7fd8de0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + makebox = { + revision = 15878; + shortdesc = "Defines a \makebox* command"; + stripPrefix = 0; + sha512.run = "918052ed5c358e12ac7ca7c93f25a43fcfa8f7ba261fdf652d7ccbbcc27e3e0f822813d8297d3b75450c443687bd97e93416624b51da61572557d6a337638bc7"; + sha512.doc = "807d495fdef601fff666acb79c7f3fa43d1aeebf8aed77bebc02f90dca4fb9c36ae1bc911a9af1009538f3d3e2c4c7f9ceb0111d091dd4c1691a1520e089a697"; + sha512.source = "04ab9a02882a505f4393288ae8e5d6be374bdd6aa8a4472da1fb7e2c9e3b4bfc58132921a3287a4c8fe4d8d3fb91ddc33496a088431862407988ade1f716ee85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + makecell = { + revision = 15878; + shortdesc = "Tabular column heads and multilined cells"; + stripPrefix = 0; + sha512.run = "ba32b6a68b0a4cd6df36d460832e5cd9664a9c305c24dbca93a4fce69e97b6db3d86e3f219a0511c7d70378ddd9424d3685d60cabbc8554077c6bfbd8847789b"; + sha512.doc = "7c762852f1c7b4609fa823117e765d2b42ad857e2ffa1ca84aa3df74497c88dfc0a2cf05747f11f14453873ee70c4b0f2f890112c567d04ad0d61ada37e14335"; + sha512.source = "bb2d33b674b612e67bbbc1bf04a68f3804fc37b9e22e19c9af05746efa869ef52db48c5828724b88de130b15120e9ae003f49ea6389f7add98c712550af87d4e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1e"; + }; + makecirc = { + revision = 15878; + shortdesc = "A MetaPost library for drawing electrical circuit diagrams"; + stripPrefix = 0; + sha512.run = "9bba91e5139b90201e232aa3fa21254c5bf8d989aedaec8310209ae6b772d24d7b8c3be379909f04c2c7ff079cca10f43a1f74091a77bb1b8ca637a0743a2ef2"; + sha512.doc = "25190b3a5d911de1d02fa596f604527006f3adf7512afae397e5ba15ab62d6471ab834f92437d35a9f37ed83c8b84990d79ef0fd9ce2b0edfffdfaa2ec97a345"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + makecmds = { + revision = 15878; + shortdesc = "The new \makecommand command always (re)defines a command"; + stripPrefix = 0; + sha512.run = "fb63fdc9cc0aaa531b25417f0c23348971c306b1a93d99e7efdbbfd7c3907b50f28c67f36a88bb2a94154bcbde937e63246ece577ee2440ad4f5c2935eb25b99"; + sha512.doc = "f69dbf682df7e3089727570417be3624b496b5ad7db627b344d32b106606cab5299dd23497e137770fdfb9f940503a65e1074e06dd67e0561b36729ab6c3d428"; + sha512.source = "380eca4f5fed0ae72cded8f6d3a201cacb05a57851c4c207f086dd17762689cd53a6b27daa23d8043c311adc9baed32808d2c7eb1855892f8113ec7f13c02946"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + makecookbook = { + revision = 49311; + shortdesc = "Make a Cookbook"; + stripPrefix = 0; + sha512.run = "a4fdb7a7553a08b51d15c038187ef621ca6852c20a033b1751c544634c3092f93c3db5c1f4d744732ff6696509d8fa406251e9d14e619397ca4202b55c1b9c64"; + sha512.doc = "84c97dd438e3d3abedce031da5841f789f3b8c28672c9e3b6c53929e2e781a9d51adaec6d883d0008b42f1eae2ed5bbf992ec229bb8b2f7f510346d10dbc31fb"; + license = [ "lppl13c" ]; + version = "0.85"; + }; + makedtx = { + revision = 46702; + shortdesc = "Perl script to help generate dtx and ins files"; + sha512.run = "e083fa791975cef84b2e2ba3472984e354d5ced50ae7fb96dd8239cfffd379e7a25fdab80abcb721e63dfb10d9557bce69e97c5624d1635f894bcd26e22b5f4d"; + sha512.doc = "913f6f02ff478ab5edeed4792846ee6bc06d28c16fd3d7396d394f4a964d6f39a12c8163d66a50a5bf53add151317184b09a712dfd32f9ff783bda7f520c7eef"; + sha512.source = "84e12e7798c37a598a2d37fa7faa206ffb6f5c1f9c21af7130a9f05bebf9857f2a4fb7988be55a9936199694a0d74595ff75a1261187d81fd06beda5e0628931"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + makedtx.binfiles = [ "makedtx" ]; + makeglos = { + revision = 15878; + shortdesc = "Include a glossary into a document"; + stripPrefix = 0; + sha512.run = "477523d4663e1e4a1fd6bb830e4574d6d116180b06a3199d6ba27f7cf704a1906a2812496e9a7ba8063690a2095fbd5022a5eb8c2448b1e0341c8a961cf05794"; + sha512.doc = "c580a23d65422d8405ce011fb6b088f53836811e3da517423f6d0dce098ffbd64c0648318eb9fb74ab637e1796d19247ee87ca8a25c7d306e3dc35a5d6d79f99"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + makeindex = { + revision = 62517; + shortdesc = "Makeindex development sources"; + sha512.run = "5967ba4123fd4c708ce841d29211fdb66c28518f4b418903be0ddf2a49964f706af96b250eec814c547e0703460c1273ce72a7acf3ea9fe28cc1c7073af29d3c"; + sha512.doc = "40b9ee1ebf7dba9a4bb4bb3077cdb1e88b07f276a9d0ae9c2817bd76a2f742ec9237d1b6d9658694fc5fc4e8f82591194862637bd83ea8e106c0541591d343ee"; + hasManpages = true; + hasRunfiles = true; + license = [ "free" ]; + }; + makeindex.binfiles = [ + "makeindex" + "mkindex" + ]; + makelabels = { + revision = 60255; + shortdesc = "Add a '\makelabels' feature to KOMA-Script letter classes and package"; + stripPrefix = 0; + sha512.run = "4f58301507896c2e719f2607e1e456aeb25cc78913ed02d9eaa12489aeb643e73bccaafd1f219c1c8b485d77aa64e99d64166b63e8a2c7a7c3c8cfb77ac23bc6"; + sha512.doc = "da01e167d1be1d4831c1bd0aca43472aae12a8204ab844f9964e60f57cf22312532c52cae85964f10780aaa0e4f84015f6ceee8ebfa042b184fb1ecc7c174585"; + sha512.source = "588029533fc25c2501cb8a72cd4226c878a0c419e42d6e4269b68224d9992d298a01019c59c794eb1c9cca14b3efaf758f5c97b6ef90451a6e6d1fb56233a5ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + makeplot = { + revision = 15878; + shortdesc = "Easy plots from Matlab in LaTeX"; + stripPrefix = 0; + sha512.run = "366e9ec4ce551e17ae6e77f068b0d2fb46582c033eb27781cd620a87731eba744212db8dde9ce8e50318f280dfe31e61a344ab4232c3bf26040dd7a2290d4fef"; + sha512.doc = "9aa863af450a66201e7cb3d3a58d9248430aa26cca9b50de4c71c350314ac9c0f6fe54e5eb1b37917a75030a60ca18102933f154bdeb7831ca02bdaa65b3a6bf"; + sha512.source = "b4f0e0de72c005124b7e83f214111931ca2ba03ae5f1270b5d10ff790c6fd84cb02950aed7377deae2c432de55b7822ddc68b9911b608b0460c7800f375fcecb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.6"; + }; + maker = { + revision = 44823; + shortdesc = "Include Arduino or Processing code in LaTeX documents"; + stripPrefix = 0; + sha512.run = "d8cefc4d4389e4024c448400f02bc0ef0a21146c1d079f804f5e102ee3f2977be7fdd2c1011672b70192af48693ab1fcc38bc1d6f7711fce217792e82f0e5e54"; + sha512.doc = "fb7f68b4c48de87e6c1e380525a998bd1cf7578c2e4a51551b5ab4909481e66faf38f0a74083f25954b5d05e9eda12e56734351fab063f80955abf24eadc0e21"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + makerobust = { + revision = 52811; + shortdesc = "Making a macro robust (legacy package)"; + stripPrefix = 0; + sha512.run = "502b4dd65ae3535a2519c696b8b2ef73b3eb8f19d20af7dce94e24c8f718f827e55ddf7ff229bfc0810ab8747c94720cc7a66335a7d44065d0a0ac6b156a683e"; + sha512.doc = "4503551b0085c7c829d41042083209bc02dfd2391f99cf0fabafb363e288a455e51273bf0f9d4ff5a5fe17050fb5288a7835742e06865407b8400c88244f4e6e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + makeshape = { + revision = 28973; + shortdesc = "Declare new PGF shapes"; + stripPrefix = 0; + sha512.run = "b13358696b16b41a69e5a207fcfb717b417ec191ae9f6ad4408422b1ce99c3785a3328cf9bd2e87ade3ede4998ba76ddb2f640e06ef5ce88172942e4d0cf2bfe"; + sha512.doc = "a249c636b414203e75225af611173add2e90af306d4a78c7d865fdd0e76b23637fb3b8eb41f127905bbd0065cc7b941d3d26e3ee73b9aad56e05ed0a44f67d57"; + sha512.source = "43886cdf9c2da20943bcf0403e05fe19c035cd3d49af9afa52212c376a2ecae9ad963a24c257b70e3dcee448f42ee1464e63dcb0c5addd7018234658867d3179"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + mandi = { + revision = 70235; + shortdesc = "Macros for introductory physics and astronomy"; + stripPrefix = 0; + sha512.run = "e5c8cb0ca16c5b34097aef6e3bd00e452bf6382f6f9f5c3213a42463181a4b7f17df8025d479559b281dde7eb61ed2f79f4b9b6c3a37bed6cb3ea1bb9b428eed"; + sha512.doc = "b1d5662645562102719eebb2d349f8a0a2a047ff3303abd076bff1b5888dc897e39034d027eadfd9ba03f1de26b0e0e6c8ccd226ee7f3a7b8545320023e47fbc"; + sha512.source = "e1bffb5b494059bb194496a17957b8adde0247178ee32baa9771ad47616f4dc101c7ad4423c62c50c94f7e62ac59d4ba7b7fa3983dd5503b441b882565db808e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2.2"; + }; + manfnt = { + revision = 54684; + shortdesc = "LaTeX support for the TeX book symbols"; + stripPrefix = 0; + sha512.run = "492dff2a46b9c0e89b8e29149546dfc736195f7f264b156fd91f4e8d1396f43b149948df656c7b148a2d54064fba89e033179b31eeaf03d0037875e36e9b4244"; + sha512.doc = "469280a4576d3b8396f310ba627f5a69f8fe47604f39562321d9b3b7d2f3e81f8d2c0ff7cd18ae4a93d9125df0fba79744edf0b30d036916a8259dc39adbdddc"; + sha512.source = "c90ac97080e2c0c767673f7128e1850427218bb4b05024401fe37aae71ae65f1feae2e11301055dbe6b74fe56e7b16bee4ba1fe0f1a1defbc07763fc5f5cdeb0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + manfnt-font = { + revision = 45777; + shortdesc = "Knuth's \"manual\" fonts"; + stripPrefix = 0; + fontMaps = [ "MixedMap manfnt.map" ]; + sha512.run = "fe7ddf667368990f988005a44013aab80af9c097f4f824f717d84fddfd61dfc658f507d5b1bf8f7c076be1bd5a4363f117b388ecd39b0ce2b0ee5fc8aa83fd4c"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + manuscript = { + revision = 36110; + shortdesc = "Emulate look of a document typed on a typewriter"; + stripPrefix = 0; + sha512.run = "24e4c800ba6f5089ae76b6d444c81689fa696cd2fd9e62281171d771f8f9f065320b53b058cc6adf836f36d378f6f7fece98e8c09e2b655ecaa8884067bd696a"; + sha512.doc = "baaa102f870cc307fe96b583f74c19c7ef2c7649f01fe7985c3dcd331539bc9d839f6e34aa238354b6932d14638b77e83b7bf8e62296c36fc2dba18f776271a6"; + sha512.source = "0cc418f2b5538035123d81f6702031d97bf99fa6733d491b306981ae698f3cad9bd121a20410329b8428b5c14749e825052544cdc52b9c8457d7e302dfc64888"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + manyind = { + revision = 49874; + shortdesc = "Provides support for many indexes"; + stripPrefix = 0; + sha512.run = "e08291b4cb0d2c18e6b97cf6a287d7cf5b49eb312138910185845b6c0a075981a15548de2dded6f597605aef885e736c17b5306328574473aa56f8f11b6b8288"; + sha512.doc = "e8d9c687c1b3525c5e4d218a380781f1b2e7d512b053a583b00c97f0b7eefa1202dea310454065194039841bf8763acc2b0c4712ca8d5e9d31b57cf03c50b928"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + marathi = { + revision = 61719; + shortdesc = "Typeset Marathi language using XeLaTeX or LuaLaTeX"; + stripPrefix = 0; + sha512.run = "5ff1e45d4434c68f09fd011fb0d0bf7652002a9ef6c36035e953a5bb9871baec4dc1998b0c0ec1749ef93cbca8bd40512457d962bf0e9f3bb4c0d36fbeb6f301"; + sha512.doc = "8ef83a4eef0d877473a24ad3d5efb9e4d374dd1c2e00b210251ce145d889d8cf8eec7ff368d94db888b134104770901877fb4e943bf758f921b341bb7bfb5f3c"; + sha512.source = "6cd0135286dbc64b59628e7af8e84e3c4277705bca226155ca899f9ad438751cf5f5da73dfcaa500fdc1d4779f707f8290922098409c69216a5c66e2bdbb73e5"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "free" + "fdl13Only" + ]; + version = "1.7"; + }; + marcellus = { + revision = 64451; + shortdesc = "Marcellus fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map marcellus.map" ]; + sha512.run = "b6ba86cea7e275ae2cb6f35468300035fec789b85280307e65784bca9844aa8c834aa23e9f7e59de75d53879dbc609e64c084adcb1c38811483eeab15543f95f"; + sha512.doc = "5267a43751ac7a0aadfba28ec4427da7c1afbafac2425f09582a736520ab4bbd769e08ef02b86816225cd76bedcbb23f6cfd3e77352c9e4008f9443b826b48e9"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + margbib = { + revision = 15878; + shortdesc = "Display bibitem tags in the margins"; + stripPrefix = 0; + sha512.run = "7f734e46e72badf838397305ca926f4589b9aba7a0e91e21313f6a733f7cd09db959f30e3694490633713b1a77c8d11a521b2892722496fb162d7c25c7b8641a"; + sha512.doc = "c4f93e442d1337cb5a1825b4f7e6fe5ae0a759c32837a896852ec5592b3c31a9c473789db35c147b67360ed662b1e9ae42a59fed446dde234b174f65e358662c"; + sha512.source = "7a9aecd832d34d1225606a905558f5ae33befaaf20f8fa1e6e5263850d2c72273be5a4a05e96d15225b7a2853212e3de28455c856c17e42838406862cadcc344"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0c"; + }; + marginfit = { + revision = 48281; + shortdesc = "Improved margin notes"; + stripPrefix = 0; + sha512.run = "dafe223cc6120beac7ce419c5f5eb72ece9be2a21992e829a8015f7e05ca22c40d5196d26d21d8febf3459bfa58c7defc797ce7bd4ee1e3dda28761594240b3e"; + sha512.doc = "fba2ff6febb4acd0dad443221c6146fc2b3818c4948827b827fe2ff2df82f4e2843520f1f4cd41fd64900012d64d973d9b649e65b1c5ee4e74757344ab423dc0"; + sha512.source = "89892d83570cad7c46b5fafcf8a7d87b660d898afde97c2fed03f82d3cbdcea9bd11baecd19d3aa958305cac0d9f7163e00fe262a0738e7f89b62f7d1bdf0df8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + marginfix = { + revision = 55064; + shortdesc = "Patch \marginpar to avoid overfull margins"; + stripPrefix = 0; + sha512.run = "70dc40b9823cd82a52a7e55e5af47e5b2373fd7cf16567f6eca2bb886d3612473141435444b538f81ab9467d1b3e5ba04424b1ca47d95cc0869dea02faf82b03"; + sha512.doc = "16ab654dd8957bcf37351b7c766b787f27baddd4e73a6a4c3a07f5b1486f5ea73c9028675b5830b8dc1224eae29f50d61bb579aeecd9af4aaafaf78259bca900"; + sha512.source = "5e94ffc102902ff040162f5d9fa39f1d812801d0413befa5db7cc2c23d91ce24d47317f411e64f2fb2e22fb782c9cf1f87780c2cf2eccc50214b502402032eb3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + marginnote = { + revision = 68204; + shortdesc = "Notes in the margin, even where \marginpar fails"; + stripPrefix = 0; + sha512.run = "6643a77d01d59bc371d301e738b59957bd63cfa0fc98a554f853d1599392ceb5e88663651563445633df704bbc3ef74510ebd6150c44911314225259982f114b"; + sha512.doc = "18882e317048606324338ff765cd11e972c3dedcdbfe2407a3f9643b3efe6a7d173561726d4221618ac510a447cec7b1aa13a46ca45a091ac76e601c55c551e7"; + sha512.source = "edcdc3acba09440dd7d1594a1813fd205447c672e0bb73e3b968ac6e211365c488d3ce0287b7df5e198a75e12d3301248e39674be831387cdd06636e97d76138"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + markdown = { + revision = 70583; + shortdesc = "Converting and rendering markdown documents inside TeX"; + stripPrefix = 0; + sha512.run = "0b133a8f7a4d9315365569698cf2f6897b46ac0c49eb6f6a7697735e209e6a45354101cbeafe7504aa18a39cd514332db204b4b53051a4a9e7380ec581be6d23"; + sha512.doc = "ca199c02ee60ebe597bc0c7324b910d78c58457e614bc23be98720e301bd501540b52325fda4a0b6eaed15859820f5eba4e4749dd4163057c6731c1d1643f27c"; + sha512.source = "b33cf8d6604aa6acd27a67ee5ec5ec1a84fb91c77a0d5f830f6dcbc78343420036175bfcc1cf1665f23804ee9d06e58029fbf4e533a75dae29e8d7b1ee6297cf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4.2-0-ga45cf0ed"; + }; + marvosym = { + revision = 29349; + shortdesc = "Martin Vogel's Symbols (marvosym) font"; + stripPrefix = 0; + fontMaps = [ "Map marvosym.map" ]; + sha512.run = "64093dc5de012c6a50762ef34001ff2305e6b59b667ac7b1ef72cc53f8b0ed3852b4d307a8d421ece996e78f2e32c8871038b6b66659b0866dbdc536445dc7a3"; + sha512.doc = "d6f72ee7ed64404acce5c37c216a7e23193f2053c18910d80fc6d5fde73ba86c07045102488f17f4cbeb9e1d148567973713bb4d9ce2cdd3cb166936ba5623e1"; + sha512.source = "c28a69567c593160c7d04b4fc0fe7f0106db12ab588d3f02139e55ad99a1b4e33f1bba92f5af103b6f2a7e720d243b919d1f39f28031ad95dde3ae7e723f6e36"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.2a"; + }; + matapli = { + revision = 62632; + shortdesc = "Class for the french journal \"MATAPLI\""; + stripPrefix = 0; + sha512.run = "b8330a2fbbcb2b6c65a1f056fdf572cf14b6c3b8aff3abf91cd40a150a12feb37cb4a43b41e8239fbe00bb4a2168894c375f0bb35c7dbe2f1d8de0d5ae2ae476"; + sha512.doc = "6c24ac9fc5b1968ee8c675c7aef8c8fcd3ce813e407886a412419a4a894942d6928d49cfebaf1d7ac7be7cc5c08847e8ba2c70390e3ea7973b0882a51d039ae1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + matc3 = { + revision = 29845; + shortdesc = "Commands for MatematicaC3 textbooks"; + stripPrefix = 0; + sha512.run = "19996040ec55b000d84637070a21fa9fc216eb3cf8ec75f7c408925e0d7a716a7dca0eff4887778f666be3e857b589cd033c53d3859f84226416ad069720f7be"; + sha512.doc = "68f65e9171eb03fed79dc9bffadb725dc7324fd9696ff9f6f0a13233327f47474477180c6e17b5bbb9ee2ee02996ebd6213b43eeb7e9b7eb7dca2caac2db470d"; + sha512.source = "efc84a936de1ab0905e94937d00c3ab2f371412975786c3816cb3b8fdf98482943c1f18a08422ea95d7a7bda6607ffd1dcb6b5c28101c7f5348260a088cf1233"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + matc3mem = { + revision = 35773; + shortdesc = "Class for MatematicaC3 textbooks"; + stripPrefix = 0; + sha512.run = "e0736f75126aca9506e1cfcbd321645e731e2dec7f3ae2c045201dd8c729044689e358724b77ef9d99aaf3ff742802857d488e3f2f78e781b64af711c7fdce12"; + sha512.doc = "2038d84ab20c6763163769b62a35fa4e95dbd3e76b0e2cf1c4a25694488ddb5b9be8b40f81a1702600d918618455bcae46d22fa101a1a95978b996714de41dfe"; + sha512.source = "cd8ad4afa288ca175c06df2de15cb7ae048f3b69ff6b96225f134c022efaaa5223fdba1b2b80f75ad3ab6e3ac79d38b41794cdbfecce1ac6ffd2ed47cfb69649"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + match_parens = { + revision = 66681; + shortdesc = "Find mismatches of parentheses, braces, (angle) brackets, in texts"; + sha512.run = "ed3286292a5480d73db2d3e231663c37eac6a17a50d4bc37131bb5d5627d445560c1bd47a3ea05dd4d9439ad97c275a05542c5664ea0460e2c596eda75aa56ac"; + sha512.doc = "8ff55ae4caaa0ec44f2c44c21d08e977467e6a1a1471f0d361c428a2fd552907a3bff6a88a4f7fa40f3fac7f5ee0a62b2471d5966430b533ef5dac554d919a99"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.44"; + }; + match_parens.binfiles = [ "match_parens" ]; + math-into-latex-4 = { + revision = 44131; + shortdesc = "Samples from Math into LaTeX, 4th Edition"; + stripPrefix = 0; + sha512.run = "d5739155ac3cd6a02f356bbb600f7f76022faa4a5c004a93531678ead3c2f0a9f8e1419044883306ce453ac96ab8726ee45d8e49c86b0fca6a9232010a8927e3"; + sha512.doc = "5fee7c89fc9f273817b23fa25260733ee0552df7bed0333bbe604c17bdecfc28d7e386478f7b42d3c2aef89f80ce7a1d35215fdc386ea47e4db3a334bc6a9597"; + license = [ "free" ]; + }; + mathabx = { + revision = 15878; + shortdesc = "Three series of mathematical symbols"; + stripPrefix = 0; + sha512.run = "400bb43207c43192321cfe1b658c85a07410778e7694ab1604b992025d69300bb2d4c2cb7866a255dc4988c843dd3b92c33e527c12f087bb560cba4520115643"; + sha512.doc = "e1f9f96794f6d20dd75bd7ceabd40993e56d5315848bbea8a6812a16f74c0fb92ddc6356c71aaa1367c47b1dc26a3711793ec88cf0b90d391f8157fe20f77196"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mathabx-type1 = { + revision = 21129; + shortdesc = "Outline version of the mathabx fonts"; + stripPrefix = 0; + deps = [ "mathabx" ]; + fontMaps = [ "Map mathabx.map" ]; + sha512.run = "ae2272ac7d79a3bb1a655000a2d5fa1c3d948363763abe194cbac4084d5ef60492648977660c3d9dfbc2c70bea3c207d031d2147097fb1d7af503aa80f257d1c"; + sha512.doc = "2504e85d659cba06fa25ae4e154309a6d3dcba2ac8bae0d4066b6637f19081987b0bc774902365e5b723f4b6c35cad07709e316ec1893a018baabc699d755e8b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mathalpha = { + revision = 61089; + shortdesc = "General package for loading maths alphabets in LaTeX"; + stripPrefix = 0; + sha512.run = "9c56ad5cabba0fc7ff7403882cd46161be0b4d7bcaf632e48eab5170b1350a1c780a9f98ed535466ae7c17a387a461fa4663ffd3c4fac5cb01ecb77bccdcfec6"; + sha512.doc = "5de9923e39ccf9b55f10f0b97067d001ead5598423174808d2a7636c96f8fbd2e8a8e6c0d66140f62d51b9263a736cb6106cf6db0e16e62ee5d9f3887baa3159"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.143"; + }; + mathastext = { + revision = 69237; + shortdesc = "Use the text font in maths mode"; + stripPrefix = 0; + sha512.run = "057e16f2b729c1e6fd6857da04ae30b2d2bb42bf185cfba01dfd2753303e6d2668e5c48362799ecff40318bf709c348818f0529f6f8971f9cf6f66cb1960f03f"; + sha512.doc = "632a36650d095b8a9f49ecfac9fbfb896ee29f18e81adece341026291fa945e361ea2f4678bde9b31166f2d7b0d7224c8be856184871e85b31d5e7613f950785"; + sha512.source = "7c9499486765d4b59320a67e057d3550e46d1434a730ba06d288b869468203e89b9b73b7c96b4904def75e6193fc4e0f79e814e9cd3acfd088c6da9b6dd4b856"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3zb"; + }; + mathcommand = { + revision = 59512; + shortdesc = "\newcommand-like commands for defining math macros"; + stripPrefix = 0; + sha512.run = "4be34084705419757f92b8f31be35a606689c25786bc5b95a0531d572ce21601881cbd7548b7d380241089d4473fbfb70debeab9b30633671b3494d66bfbb9f6"; + sha512.doc = "80191b36dd3e34193c2aff764b7ffcf274a4d9fc41b1d19fc92ac807e03809069efbcace953fdbddd481db7d6604a859eab44a2c93024ecd59968c9e24e2630f"; + sha512.source = "99fb6c9f81e72c3b78807ff1d073ff4c6e193a163c3aa6aaa2e45d94ca246933733b1b35a671557cf40fdb33184af6ea28fa8a590b0339db373820ad9c38d514"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + mathcomp = { + revision = 15878; + shortdesc = "Text symbols in maths mode"; + stripPrefix = 0; + sha512.run = "7dca82aff58606afd315bc18c6908946193be75f04ec456e2cede8184867543437007b27f04f4363a026a0db83da3fdf963afecab7330e9419b1ac5376efcdd8"; + sha512.doc = "6135b3d06908c5c359cc432a7406f146ea6b0bb614ba0b983738230ca2073f4348a6ff139bdc4b43325a8b67ef59a6db8e60ecefd88af5c8ff0eddceb0f279fe"; + sha512.source = "3578e5e31ac3cfda23381e348dfa9e4da6993a9cefaa73b3746be0f2719d04dd37d04e75925414f4f0083b0971222da5eced4bd582e405031f29899faacecf57"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1f"; + }; + mathdesign = { + revision = 31639; + shortdesc = "Mathematical fonts to fit with particular text fonts"; + stripPrefix = 0; + fontMaps = [ + "Map mdbch.map" + "Map mdgreek.map" + "Map mdici.map" + "Map mdpgd.map" + "Map mdpus.map" + "Map mdput.map" + "Map mdugm.map" + ]; + sha512.run = "cc8a1c58348f8f81417178434c9bc3d9edea79dc5d300753f41870734f8fca8f43325d56f73e3113aee8e9f38be1fbc6abd3cefe4458af1e1e22900ce889c315"; + sha512.doc = "f6c0a3595beb7b25ab5ef2c8a08b3e0be90cdbfa20c946b7b3f5cfd29f5c9a38963262818990ef78be02d95c2d2a5991581be77834048fab4eb0e4c0252e6871"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.31"; + }; + mathdots = { + revision = 34301; + shortdesc = "Commands to produce dots in math that respect font size"; + stripPrefix = 0; + sha512.run = "1235583223f831852458d53e1e8cb767495987829d4930387f4dccf7ab060b9f0af8722d6c1aaa820c1a371f8ce1c0222633e6feb064e0344e639eedbaa4129d"; + sha512.doc = "b1ce238b3abb3397b0085983e752dbb9eb9d9c1026046726360498d089304f7f4deecd656dceee27b63934092568f0ca46620231f03e0952c43f28ae73e97dc0"; + sha512.source = "dd590187fadbf0eb788eade245d4198a4c1075433db1a0df00ce2d5cf2b6f332e09ce995292d21ad46f13ba68284808cfea6c7818a47bf99a61ae44e5381fe55"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + mathexam = { + revision = 15878; + shortdesc = "Package for typesetting exams"; + stripPrefix = 0; + sha512.run = "30fc0cc9c44f2b7a64860a7d8eeecd25eec7e888f4ebdafade236edebecbd79f5d832566d151243430a60c5995807ea77d34e19cfd5e0d8cb037ca67d3e933bc"; + sha512.doc = "6af2944d12d09f1ab593a7002b9de71d14c5436885b79e5e495dc0ba1fdf9dc6b9080bd009bafff988b019ec3e75da934a7c8c043870fdd52a9a46b36c9d646d"; + sha512.source = "f2324e1f9e0fe8f259b6e1d2a1370ddfec87091c82650432e24b08c598fd6ce57334b88ab53a6049f416ff14c3ccfc7c250029767eccf05456d6c233e665f6a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + mathfam256 = { + revision = 53519; + shortdesc = "Extend math family up to 256 for pLaTeX/upLaTeX/Lamed"; + stripPrefix = 0; + sha512.run = "20912d6df0f287c14300e4598400cc2da676f7e484757e3a9a0c41ef6861d7180cf7110fbc7b5668ba8a713cb66b9120736b64a1f5098df25379ebc7b14e44f5"; + sha512.doc = "26aa672bc55de7c45a857d1ae26e156fe19f4ffa05417a7a4163526d01d5f58576f8d6db951e377b646e1ff25167571587d09f21eadecb95bc96e6b85707a9bb"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.5"; + }; + mathfixs = { + revision = 49547; + shortdesc = "Fix various layout issues in math mode"; + stripPrefix = 0; + sha512.run = "513e5dd9eb58ca5b1eb8daec663c48577fa2102ade0234412dbb22b6d756ad37009c689746c57c6624c731df64fa8d58eabfecbd4cdc31c576eb0ecd1e232fdf"; + sha512.doc = "c9ad8dda9ffaa77ba727f536016ba1dcbfb91c4d7ab98b1e4b72156591e8ff0359f623475324e57c6b22f509cdfe7e30ba67c3fb22f9dd152e59f1557c96a6a6"; + sha512.source = "f08a26458ed871a11a44a1e957a1e9140b3e95c98ba1bd958cb9d63cbe483ee94e91217a5a7e54745b2cf245ee7f898fb64238941d1a8fce04699a3b8a06b7e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + mathfont = { + revision = 68241; + shortdesc = "Use TrueType and OpenType fonts in math mode"; + stripPrefix = 0; + sha512.run = "9ebe3acb43ebd09a537b99eee5047d2abf28a019017ebb434684864104892093e4451ff3ecd0393c4f56d4f94efb16cdefaa58b073b517e7dd01adc04f5f9a69"; + sha512.doc = "304bdf738ca94eb7c5ae708ecf0400cce1af9c09f05056b3718bc0ea5352e1d06a2a1cc3c037c8569bb26d33268e14ab660e627da0d9df075af1b36f6bf718bf"; + sha512.source = "771062f0f60be1c0d3a300ce74ca9ca00a56b6042e3980da47590116c08f39c8b4f0bdb756e41654481615fa1896f53963abd0c322817c57cb78247505abde9b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + mathlig = { + revision = 54244; + shortdesc = "Define maths \"ligatures\""; + stripPrefix = 0; + sha512.run = "1ec5761aded23b8ebd4b9afece00ab1f3f9a18886edd12ffd2a2e0b5b9fe9adc9a4ee6fb629933f36f6a161c76e85b54e3d9855871c3387cb0f70f90194b2615"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + mathpartir = { + revision = 39864; + shortdesc = "Typesetting sequences of math formulas, e.g. type inference rules"; + stripPrefix = 0; + sha512.run = "8e1c99db2d64e9c815bf8b6784d1c717969a5ecc96281df2f815ba7c0d779b53484c61ca233468de793be94cf636373f4fc0e3413c0ce32d4715db30cafe5471"; + sha512.doc = "fca6b3e2650ada022617af137dc86858c83c51c55fcadf2ff21832a1fcd9fc44f371f89e8943c5e1d117a09893c3587f15a3e8021b11f7472dd3c9d37383f8a0"; + sha512.source = "f5c5b328745494965d1907f6dc187859a5f9bda5a8beda164e7317dc1b8a6e886073f9d2e9b564c6aa56d55e7cb7191afeea38edc059b2dd55066e68ff826dd8"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.3.2"; + }; + mathpazo = { + revision = 52663; + shortdesc = "Fonts to typeset mathematics to match Palatino"; + stripPrefix = 0; + deps = [ + "fpl" + "palatino" + ]; + sha512.run = "72bfba52e37abd933cb7b1b19dd813c3c76438591c94f9c407cabb8a44c8c67f78fae04442027287e5bf30b7239c3703ece4271194716882773eeb50d4cb2f47"; + sha512.doc = "94e624f2cea50bf3534300d3332dd61e1bc5b4c834603356831d0f9bf4c6bdc34af5d31df002c10430d4945c2c71dbf7c156b7b05ba08c657cc2d960839c2a35"; + sha512.source = "bd6aba477ca38c9778d7d23460420f485ac5658e9514ac2260475a50b6ee7e2ff736bac81a4548fb4aebae952a406a0de1bef01bd7d8fe4984080ab835d328d4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.003"; + }; + mathpunctspace = { + revision = 46754; + shortdesc = "Control the space after punctuation in math expressions"; + stripPrefix = 0; + sha512.run = "81d1fa6ce0e96190516f2440517d554e259013869065a4242c55bcc06f2d9eab1f8102464da71fe72dd0d231248b637d54733b2a11b832d2153f151dc5513339"; + sha512.doc = "ce318466af0c6690a905c92e9f24f9a7c2891c4afac7c51eead8ebf211bf13e2c20d368782ed41f20a2bb2d6f3a6cd6bf44eb6a0c848ff8006564ec98aeae2d7"; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "1.1"; + }; + maths-symbols = { + revision = 37763; + shortdesc = "Summary of mathematical symbols available in LaTeX"; + stripPrefix = 0; + sha512.run = "f2028a2b8dad52aee2db1fcf679647192cb926e13cca831a419d876783e492dbc590e4745302addae7d3f01eabf7eaa1fd7cc6f757eff2ab9d9b5c39a1b0b785"; + sha512.doc = "b60a66b3cc67e4dde62b0fc0552233ab59b1981ab92cedbe4c0de31a4c9e9d3207cf54ec5d2361f81937867d81bd345e77c4ab3e36fcd8588851765ec3267864"; + license = [ "lppl12" ]; + version = "3.4"; + }; + mathsemantics = { + revision = 63241; + shortdesc = "Semantic math commands in LaTeX"; + stripPrefix = 0; + sha512.run = "e8cd9b91b758317d310265c41f565481a9a18c9a345ea3c8b3f771de637f0a144d131cda93b7771ee7b28563fe1e6d42a410cbc7c9fe08532a5821ca84d5a101"; + sha512.doc = "3f0b2120c9551e498d71ace121985553d1d40f2b242887fe0e6e31a9e25dd62d32fd44d3bd1b50233cbebbbe70201162dca838ede7409512a91d5e522149b479"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.0"; + }; + mathspec = { + revision = 42773; + shortdesc = "Specify arbitrary fonts for mathematics in XeTeX"; + stripPrefix = 0; + sha512.run = "7e9838ad2f212354b103b9beb61d60f124d2f47e52a04e2fad61de01e2e8220ca5f19f5b2188cbfefb379f94dc4b76573355dbde563f887beec29c57b3648ae9"; + sha512.doc = "d22c19bd2114bc48f438d820177006170d52d1a261f3cfe69452148f4e11a0ddeb1bb25e1c1fa22ef8d2284c7f34f7ef41bcf9d8e90a89705b3a7515a679a922"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2b"; + }; + mathspic = { + revision = 31957; + shortdesc = "A Perl filter program for use with PiCTeX"; + sha512.run = "e556960f07a003e877ce678110e724ef94d34aabc0ae52c59ec2ae487fc7d3e5de169844baaefd61e467e98a7a9718d94d881c3f0d43855e133040bdbddb6a62"; + sha512.doc = "1702071f4c26097e241ba161258a51461405954105c8a7f2d92a552d6397ef69af029652ba5528df999c569fae32955d1b194b0f7c4475b3fc870656b473386a"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.13"; + }; + mathspic.binfiles = [ "mathspic" ]; + mathtools = { + revision = 70607; + shortdesc = "Mathematical tools to use with amsmath"; + stripPrefix = 0; + sha512.run = "68ed026c12d7fc07b1d7881654a197e1fabd7bfeae278c3243bbde9449aeef3ecb4e7606e24e964f2cd488e475f39cbb9a632ba077c1229067df883e853186cd"; + sha512.doc = "fa3bbad3d9fa4bf678cbb2254cd2329c515cac6387d17953e66f273a48500f1a04b25b4de4c8a8a94cf79d86572be56bd2ceba01de8c9a72a92844a127b3c8ad"; + sha512.source = "edcb96fc22f68a3cc78b13fbac2f73fa54aea36b6e57b0af12eb7b21a449044eeaca9157caaf9770b0d93f9c2511926452919fda5d03903f36fb5b4e3540b2af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.30"; + }; + matlab-prettifier = { + revision = 34323; + shortdesc = "Pretty-print Matlab source code"; + stripPrefix = 0; + sha512.run = "840d860303925d148c10a980218018ed14e2d0ba2b1638f8328308a0400e8862ced7cd28822fd81c3c3533d2ef4cd37e1c4009065b1300011898fefb407ac202"; + sha512.doc = "22b783fbe09f661d1e5034cb623fab29e54df35b4f0379579f430b17a80236a843c15201b6583bf58f22ae39dba34d7f5a4f8482b1c6d185822940c67ac06942"; + sha512.source = "25daf7d57d376a2a218a48c275b07459b512bb0e6ab95e78969883a3ca26f010c2e3204c0fe9af0922a50b48aa0f87c6b47973cc7adf9678d351faf9e263a9d3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + matrix-skeleton = { + revision = 65013; + shortdesc = "A PGF/TikZ library that simplifies working with multiple matrix nodes"; + stripPrefix = 0; + sha512.run = "55a7bc16ea6afd1e9e623b2fe9e8eea8e7db2a98be58432a296500a246dba7556bb5f79c062b72c0ae957822760ee2494cc3bb2ceba7ab54860f96e87dea53ec"; + sha512.doc = "acf72a0c4e065137df6a803891fc804579e799d5aa3ec2d509f26284e64bb86e52c4c4f287dd87e5d0c1f3f73ef9a13e2af2459223f3441dda2b74588f7f6ec2"; + hasRunfiles = true; + license = [ "isc" ]; + version = "1.1"; + }; + mattens = { + revision = 62326; + shortdesc = "Matrices/tensor typesetting"; + stripPrefix = 0; + sha512.run = "3b58af4da3a0c8abb4499a28e993dc3bf128fc24188bc906d3bed69ba3040aca66d341122cb0e57adb18ccb4320736d7b27423ec8f6f6dacce4fb7bf4bfc5d08"; + sha512.doc = "6139624ff7f8b5063e69c07738e07ae8a1bd1dd48c155b73d17466d4ee5aae25d377e7b7c0726e84e89010d99731d337187ea017f934889843360533c7218c77"; + sha512.source = "d8b01f5c5d7c730e412eb1fc9beb7ffdc60b4b6021968803f24362cf558660074e3d94050878f09513221b6d670ab195b1c2020109e03c9c53c9d485355fe740"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3b"; + }; + maybemath = { + revision = 15878; + shortdesc = "Make math bold or italic according to context"; + stripPrefix = 0; + sha512.run = "32520ff01d76e11bd70694a07b86272425680ca8bf21b6da9412c133836f9ecbc9a9537377ee67cf9292e33dedaa1d33e906b4f681b89f075d1fcbbbbdc989dd"; + sha512.doc = "b0f978f89ebb7f681e7b045d03a9a6e7e9083d7c468c91d52ef417c85d707243fa0ef253b3e2d1f1737a9c7235fefae06c4a8fe2975cf2c13f7f09ada7752f26"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + maze = { + revision = 65508; + shortdesc = "Generate random mazes"; + stripPrefix = 0; + sha512.run = "e09c0b0d00301dc1d90f66e774f6fe0ffb1c4305498f9aa4b41bbf0460940a2570e40bd8359e30d1d521418111ee9c6e6c8e61a6a2efbdaa484d3f8436f44fd4"; + sha512.doc = "cfa47a5d16d4533fdcfdf4ad19c5560fc897da669c4b9bc5a5f7723a6082fcf1b29fbe410117bab9249a526d7c720cab400afec1945b24868f7b73e46690a2ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + mcaption = { + revision = 15878; + shortdesc = "Put captions in the margin"; + stripPrefix = 0; + sha512.run = "c3e1c2948e2687bf720dc05dfa1ed6140a1ea55de3cad7ebcfe518d720ed96793b6bde32fb0882cae773f986b11150482fdfb382391650a8c513131b7041555a"; + sha512.doc = "e803f5731e6ac1c299bc3a42666acb81a75a3f110be729639357a15633e0e7b8ad0a244820b96ae9f8b435d9d1fea54a0b7f14c5db02799b3a632b2f0c5cb4b9"; + sha512.source = "e859c83efb88fa03790b2ddbe18cea57ee489dd59679559f8d7f3b93a0804d93478412414e131f39bece090ed5b3433e2784facbff9b3ad705a81d1adc542e77"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + mceinleger = { + revision = 15878; + shortdesc = "Creating covers for music cassettes"; + stripPrefix = 0; + sha512.run = "0792d7a5289965b2379001a54177e1aed4a3356d8611e52ef77f5097bed1918dac324bdf5c618ca76d2925d11539b623cd9d4016ff0f4d1f9283137816ec145d"; + sha512.doc = "2dab78fd096927e3958d7270ddf15de9350ec30d1d000e7cf92be3b249ccf70e6faa1dce482a07995e65b4a4549693ce3b34d1a63bcc403ebe81f3d1887ecf90"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + mcexam = { + revision = 60481; + shortdesc = "Create randomized Multiple Choice questions"; + stripPrefix = 0; + sha512.run = "3c75869bd0e65798fa451d971ff441f3a42daa0647c31458631c388cd14cbb36fe4f4dc9178e59fdb307de590d201e8716b1a86dc9b995aa184090cbdc95c9d2"; + sha512.doc = "30a7f5cf9b01e8619c95d63ebc2e3dce27beece3a4da6ed4d68843c171257f37d7883969edc94766e065c5bbdd78a2731d38666d2073fd5d77873d5a88b3f820"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + mcf2graph = { + revision = 70167; + shortdesc = "Draw chemical structure diagrams with MetaPost"; + stripPrefix = 0; + sha512.run = "4e243f8410b3ff8688365ff1fc90da5c81adc1a3ea426d2ba92c18a1378f76e5f00bf2f7aa97c39387caec9b1803fe0603632d1197f31fcad4a860dc3b93b579"; + sha512.doc = "ddc7500877bf459121a7ffe242618efdabe2e201da58f9038fe863451456a013816d66b807df74735a6bd1701cb72341bce771489e186b21c404d623d58b8205"; + license = [ "mit" ]; + version = "5.12"; + }; + mcite = { + revision = 18173; + shortdesc = "Multiple items in a single citation"; + stripPrefix = 0; + sha512.run = "71276681ec29d3d77450a8c343d64a1ea734bb48de0d693a4e9ca795e4a4c9a3d5f4103b5641c8684d49b5c95f56bfd08bd12e1d7e37d06f9170008b51804897"; + sha512.doc = "8c5ae4b1beb334ecba3294108345bd616746ee651f03d39a7bd5f5cac97f671a861fb046e29ae7565863aecf4b043ebe25bf9a4180889c39e48735251e430004"; + sha512.source = "9f6e6edf49906bf3300123f8fe265ac8f8580c6838d59f7147e9337e67bff71325ee41a3993b3d1cdc9c036b5d519834261fb0a2a9cfe4d3afdbe070b454af8f"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + mciteplus = { + revision = 31648; + shortdesc = "Enhanced multiple citations"; + stripPrefix = 0; + sha512.run = "5be1980964ea8342321964f0db1c750c33fee9f21724608a260ebed22500d1fcfb0fcb7e588a0dd030a6c534b0da904b8bfc3eb0da7b2df34c0b3f2b1b8fb637"; + sha512.doc = "5e720fc2b32ca00d71ade77fd0a47c6ef44d9b7692a8160ddc55a5f60495a40272a7a0c6c2f5bed923ea10703654f155701d4571d72805c1ef900780a209a0a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + mcmthesis = { + revision = 69538; + shortdesc = "Template designed for MCM/ICM"; + stripPrefix = 0; + sha512.run = "8730424989cd18392214aa59d34b0885fc7966d3b2728fe8a4c05ddd042ce3a0fe54bf0ec6e602a9a7a6ead6df67b653b09c6cc360a14a9bf17bf3dcec3fc2b8"; + sha512.doc = "8beb47651814e5f6268da9d3b40d99e4cf1988d4ea10498d42af648c9e0a37e3e73392ecf91259a3164c06287c8db59392454f49aaeb480e4d5e2b350e7f8c64"; + sha512.source = "318fc5ba9034d304986a77c86f78c31197d5522f8c1471de8d25c7bd4f6c7c38f58a7f5b41420fad24bef7f8ff4fe75e179e4be21dd1270d5b36c57fcb631db5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.3.3"; + }; + mdframed = { + revision = 31075; + shortdesc = "Framed environments that can split at page boundaries"; + stripPrefix = 0; + sha512.run = "0cff0945adc04102e0b0a154cac1f78e9ea903b29e3f880156b888abeb4ca23565d39a7b66d8097c35534baebdf6af152c5b3830d08e1287e8e8d18e8f6344d0"; + sha512.doc = "06822404872899d6f509fa94f69cdcb81dd69866fbc5a82fd54ca361aaf27133140290cec2d08800dbb39c896ebb7cc19dc4cce38d2a0e45de9c658bbadf3352"; + sha512.source = "04fa6379f9840676b4fbc31029f091d9112524f8450747ce31687c9ba77a02e41c25ff51676424e97b788c48bf0bbab690459b6b84e128514cda8efd459255d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9b"; + }; + mdputu = { + revision = 20298; + shortdesc = "Upright digits in Adobe Utopia Italic"; + stripPrefix = 0; + sha512.run = "2720c63845939d2befea3af157eae95d2550a216cd22634ab0a923a06d50b48e7133e914d210c5d3aaae6fd620312d23d2e55a015c2a24ee1881bc7ed4868778"; + sha512.doc = "8c8097552ffa1f11944203e818742bec244abc5a7708207cbb69c46ffc64acaac28ca390c1ee256cd1cf2af093e39189cc9bcf655e948062cd217b58acee7628"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.2"; + }; + mdsymbol = { + revision = 28399; + shortdesc = "Symbol fonts to match Adobe Myriad Pro"; + stripPrefix = 0; + fontMaps = [ "Map mdsymbol.map" ]; + sha512.run = "49b52141928fedfdf5fdd63251de182761825a6cdcbf423bff562a863df159ac0d1c001239f777e7aef68ddce23c52407758c70f7da42f066775e204ac8c841d"; + sha512.doc = "ea4ddd0fd65204ec0ed980108d86e97be267ba46c1cf45711c36721bfab9302766ec1d0849b38de75003af564a797f8566def377d8d947d464367bfa40b91399"; + sha512.source = "0b649eba13871f6da834bbfb2c6523db6d50bd6a491b042a19f0e061ce9794d2ca03c39d277669b6698b48806fd0b705f322a69743c4fc50233559fd10406280"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "0.5"; + }; + mdwtools = { + revision = 15878; + shortdesc = "Miscellaneous tools by Mark Wooding"; + stripPrefix = 0; + sha512.run = "bd78773e42fe20cce637a8fbc7c0e3f4f37ed50810190ffcc035a20c83508b6b7de7f7432b7bba8fbd039ba62f43a5b5e1f4839acb3fe62b425b650f23ff71bd"; + sha512.doc = "06c8619d8bcce2c5cf9f5fce65318521bbb0c2ce53acd6b1793d0fe19a8f7a32c36ff68f355b6809491cec365d09f5f14b0589ddcbea6c5b48900d11fda4867f"; + sha512.source = "b3e6ba09116dd83187a55f205527c318d9afb4742404bc21b12e0be3b754140ecba82642154d92947cbc0706f0f9d3e6d876bc27108f13373d3c9d6ede4d7f5c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.05.4"; + }; + mecaso = { + revision = 60346; + shortdesc = "Formulas frequently used in rigid body mechanics"; + stripPrefix = 0; + sha512.run = "b240bfbeda5a18fd24625444403f508e3dffc5b3631a8ff6e88db6aebcc97da3eaa2ebb3ebb0d15b0c1bca0d7f62a72511a00c0ca1870f6d0d3e90398bbc5754"; + sha512.doc = "42744543f456f1c77a30be81b4dc47f69b220d2d0abd8cf7f05ec7136bda9f55f98e63a48cb9b2fb65d6fdb3270bce7a31cbcbece15527d4141bac301dd55963"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.0"; + }; + media4svg = { + revision = 64686; + shortdesc = "Multimedia inclusion for the dvisvgm backend"; + stripPrefix = 0; + sha512.run = "b5f9ffdd5fa9c28b2d4fa71bf7e6b207ca1632d98ee7a9018f2eb84cc602edcb6434917c2cacd2bd51b7f34c893c099e94e9518905700218f03da224a3df2fbc"; + sha512.doc = "50fc60d4bd74cf3c009501d37f02c9cbc98b11a5b498a55edce56801fe3e6b4e247c038525c9c76df108df0d991d797935ba131cf8b74dc27439f75b4a3890f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13"; + }; + media9 = { + revision = 64047; + shortdesc = "Multimedia inclusion package with Adobe Reader-9/X compatibility"; + stripPrefix = 0; + sha512.run = "3eab7f0687395941f6805db51fff943b6bc795a8a5cf2fb2ed9f03f0103b4fef0bfebdf449701a051b72d8f18a8e332ec02f1893812e4be6d31a56980d50a1e4"; + sha512.doc = "e3f97ec8b1fbb345e42f641eb37f6210d4ebc2e791f6ca21af6c7ac7c7f86c149fa874cafe6a2eb1d47508e2a72aded6ea40b381393ae79e9baab5ecded73c6c"; + sha512.source = "907343fbe326e491f543f104ea9335d6c69848b3d4a69469587bc5d417e3a58e2d18567a0377c71a28e8e7ee6d94959ee8a7e632819773692d34b6cc47a3cb09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.25"; + }; + medmath = { + revision = 69510; + shortdesc = "Better medium-size math commands"; + stripPrefix = 0; + sha512.run = "29039ecd484047454355d009688d5ac4ab4ed5d79a90039025454d13985971659b33476cd0306da52c1afa1a5fa87855b37a8c32b072a094abec28af204abfc6"; + sha512.doc = "19f64ba210e9f3b7a03775cbd3de1b9fc1df69b9e29034f0e46a5ca5a480905565ecc484c6fc5b0b5b7eb9bcff79b8faa8a05a0bad1128f7c224ae732c2973f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024E"; + }; + medstarbeamer = { + revision = 38828; + shortdesc = "Beamer document class for MedStar Health Research Institute"; + stripPrefix = 0; + sha512.run = "731eb6f78875aa38a90a228626d7cb5b7129c60085418d7ddadff056c9b82f8db95ee17f20ec8cd4611aa90bec391868f6b0b16fa0eae518358a869b576c150b"; + sha512.doc = "1605cf9ac4eba56059b6e90e6a6e7f3cba9a924df1cf3dcfed300e218bbb71d79bd69b47a5e376da209490a8869061d6de8415e1670b4ac5b0fa977f74d7c035"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + meetingmins = { + revision = 31878; + shortdesc = "Format written minutes of meetings"; + stripPrefix = 0; + sha512.run = "315897eff4ae50257057f8191ff92535b669fb174a2eca5c368a9a4b9f75cd71ad745f3feff1c6863705b3e9e4a954afa449cf56f86bf60c389250842aef5215"; + sha512.doc = "6afbfe02ee39e26e2f38ce462affa66e7e0acf5f26534ff9ace0b26b4e63514a3b1702e34bf478988a50c55fbb09b7d9421a8e79da6a6c46de88c6a958afa874"; + sha512.source = "3f4a274000889e9160943ca0b7a7af30bdbf7aa9a33c8cccd0e938ad3ab94ad8f24a6685bc99596a1046a22d32855061a7c511046dd6c306353c4f5979e1f230"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + membranecomputing = { + revision = 64627; + shortdesc = "Membrane Computing notation"; + stripPrefix = 0; + sha512.run = "831c579f8d66e265125e3a730338d01fe98d87241f2b52c7060ba3f852667a30afe256f37327497ea21e77cbbbee0017f23bd1f51c59f6445b4552e7cfb52ba5"; + sha512.doc = "5b6479efc72f8e06e54d17c5a3ca4e63f0fe942bec8f0a1504365a97b59ea260891f959939165879aab0d23887b98b2ebce8fab4789959d1c2de3b37c3162aa0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.1"; + }; + memdesign = { + revision = 48664; + shortdesc = "Notes on book design"; + stripPrefix = 0; + sha512.run = "42949db3193952d1ae75855110ed40a1ff467b3cef0bb6d43195bac960a0873a47fad002695ad1376da2d4a1df5e1e05f89289102780d27b173da2e852b53cdc"; + sha512.doc = "f4dfa00676379ce33857cc0fdeae867d1ae5c99e6767884a029285a94d2197926a68cd85c574bd876a2eeb85f0453520ef5efcb7f2a71a77c725f8066e7adf8d"; + license = [ "lppl13c" ]; + }; + memexsupp = { + revision = 15878; + shortdesc = "Experimental memoir support"; + stripPrefix = 0; + sha512.run = "74931ebb1a146edadcde19d8c404ff8df750c4eb8f2f59fa83e6da9f8dc6567005d51f58e4b7bd2cdfa6b960adb072e9fee7b1842142076df88887c3c2b41051"; + sha512.doc = "645bb189fca1c74e249745ad42c470dcd5d9fa4412a6dfefbcb6377555047bdbcf005f1c07977762e0026e8a4f8ea49e6965a7d50b0d5d5e7efd0228ac2141a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + memoir = { + revision = 69600; + shortdesc = "Typeset fiction, non-fiction and mathematical books"; + stripPrefix = 0; + sha512.run = "ef905bedb5b27fcc0e65e2b86ce9f949135e0bf4c857431a0af68eaf5a4472e69ffc687d243560d69a3727d8db2388ff9da7c86283e625964ffea677f7e80c0b"; + sha512.doc = "4e2b4f36a5a894ed7579e1018e0ca2309791716fb9e36623237c9c4021441893c634ffabdbb33bc23b63a599d4576bd1ce2f1c549d424c9d87c6df2b12e43a09"; + sha512.source = "31d3120456a4451e955c0476846c057591836de72c76b8de9b421d2e22d7f1018d01073e8f9354ae82d9603ca9fd153a617cf9699b31a1c79254eaf2094503ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.8.2"; + }; + memoirchapterstyles = { + revision = 59766; + shortdesc = "Chapter styles in memoir class"; + stripPrefix = 0; + sha512.run = "0a109f84bc4d908b1d32bfe3ea0591c81f3de757cc5a5cc1aff3e60b1d2fbfec2e8b760fc0d07faf1fec62348933149a03c8c6147fbc5ffddae30b74a131a100"; + sha512.doc = "2f8a20d21dc1db21017435cd58c4ae3ff744b5f5605aafcfef6dfbedb1461a8fbee456ffb8ac1399416f7ae6b8ebec5d59b5d50886182ba5116e22e3768fd530"; + license = [ "lppl13c" ]; + version = "1.7e"; + }; + memoize = { + revision = 69522; + shortdesc = "Externalization of graphics and memoization of compilation results in general"; + sha512.run = "ebe8082704f8276468b392fb0efa92ccd65616fe48296160669ce10b99b31a6d73ccbd9078ecc9c8fa520c31130bc57f3dc8561267ed64d9d6ea14b28a32f909"; + sha512.doc = "635e985c02d8867acebf493cead0e80ea7b481c98c5615cfde781ad850bfbfbf606d2dad5579dfe22085f7947b2976d9e26b397b8509e31fc5018e074f852848"; + hasManpages = true; + sha512.source = "06f1c38900d1daf52ceef138a658937dd85e1cae8280afdaa44e32eb9049ce444970becd3e0936a9f8f732ec8b32120cb55a343f5c8c523e217d8b7172de763d"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + memoize.binfiles = [ + "memoize-clean.pl" + "memoize-clean.py" + "memoize-extract.pl" + "memoize-extract.py" + ]; + memory = { + revision = 30452; + shortdesc = "Containers for data in LaTeX"; + stripPrefix = 0; + sha512.run = "9b760613dc36895edf50a592aa5ef994a30117cc9da6ea256835cd3ad9ed62ab8d8c39de95bda5058d1bd3f06451d1c79d78d52ff6d068c28d75410c5ad98516"; + sha512.doc = "479428f1af468d909fa291388cde319aff1ac9ef6d7c0168577c5f6978c0fa7e6b23f8f81dedaf746b7e394c92d51d5799bd17aa3488207be494621b77220cd3"; + sha512.source = "731d4e4c874a58c2c1ddf6a394dd9eb67e557608b0d2a736cb500e4e299be2a726d4312d2eb4a05008684cf5fe14d458a7c020bd31fe134f8208d9fb618b312b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + memorygraphs = { + revision = 49631; + shortdesc = "TikZ styles to typeset graphs of program memory"; + stripPrefix = 0; + sha512.run = "e35c7e727cf5d6e496c9c0e52252b5169670006b9bc9e96b1c95584085d57a3f25cb9464bb55fc4138640ebb6fdb079908cc49c0f1bfff130a509b6866d3eec1"; + sha512.doc = "1c04e25d1c16348e594191c17f9f104e9388bb608b10783927ab3412f2f316138d6b41242046f12853b37560873bb61e0a0ec3f884cf8fc26ae2ba5809b094c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + mendex-doc = { + revision = 62914; + shortdesc = "Documentation for Mendex index processor"; + stripPrefix = 0; + sha512.run = "76f59e31e7d2a4240ab7b258745a7c94b8d78f8e308ad2bcf0ab85fc2d4b0ad77f7e1268014960cd29913bc3a81fdf2d6bbf6a8ab0b0845f2587c3134efb20c0"; + sha512.doc = "1a56d1ceab9536869e6d7da57146bc126f45893bfa998ab42eaddca7c48a9ee9d5b69abb31cf02cb6590d7acab68029f5eacb8547de6e877ed893c5f51acd923"; + sha512.source = "e22c3a7573e8f57d8324d7ca74b3c6b4c716dfa0ea6f43ba3e6eaa63aecf0fe0591ccf9cc4b18984ed2730fc5b9e0b84287bca677717f81c583e0c3c3e0c564c"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + mensa-tex = { + revision = 45997; + shortdesc = "Typeset simple school cafeteria menus"; + stripPrefix = 0; + sha512.run = "c453044a7f744cf89605996d0b913c56208f10c46e26e0ba37a85bb1d63ed08426a18d87cc7841aabcf44231c71dc33a5c858de482c6d48759893066168d5fc8"; + sha512.doc = "8297e3f69517f3bace8f509dfb42616e223073f5d428c2269d9dbeeb53579f105fb65755b22ab552e5635f1267e437c4aaeda284a8325b2d95717cf7adc2de01"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mentis = { + revision = 15878; + shortdesc = "A basis for books to be published by Mentis publishers"; + stripPrefix = 0; + sha512.run = "ee03fae28adbf147945a88548e8223bfe8c8ce220a61726bc6738f34cc90ec776aa468a1cf7fc862d1f7f091cf87964cf665839922819130f3575d56301a5d26"; + sha512.doc = "2e869d1368b807a70f3de5550d2c79f229dbeb8d888a927005fcc43c70644da0ccd36eb2464fa6437c9947c78d59e77c4013824b1e8d5a4bb517b80f1cfb5a8e"; + sha512.source = "10858cb9cb2db0f7db31d371e42436ca001ef20fede5f6b34dca61fa48248383e32547576a2dd3a4a98acddfcaf9e1d3fec89183c48ae76d5b3b677fabda7549"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + menu = { + revision = 15878; + shortdesc = "Typesetting menus"; + stripPrefix = 0; + sha512.run = "2b2560a1df5091d19ff37bcbac1465fbfc54a848e4d19782602d656bf42abe47bd2bb1946f87a127c70725cf508ff9712337f3a8719d1fc0bcd4dab4473c7bc4"; + sha512.doc = "ce8ddeed4e1bd859865f548d8ffc6978a620d9003f908d360e656085f6010a0f179218cc8b2bda4f754685369b53ad59245fef8d8f8a766b241f092162bb76b5"; + sha512.source = "6c96cb64584802af2248bf43ccb7cc5215d8a2d2c13f1d6cf8567934938979095bbd51760bad7892a6d894a9651304dc9f5e4ed038f68ba0af087567de0777ad"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.994"; + }; + menucard = { + revision = 55643; + shortdesc = "Typesetting menu cards with LaTeX"; + stripPrefix = 0; + sha512.run = "2cdbe2b8acdc12e4fc0b7d8a93afacd30ea2a8bef6a3f1766d219227e77cf06d26f1fe24206f15dbfd6d0a7507780955060df1056f14cc546e9a3c781c36f307"; + sha512.doc = "0133f249cdaed1bd565047974868953dce96c4b9ce143cb8c1170194d0ef1b1e6d2e4088004edd831ae0ee1f5e736a1a297bfce75c1bd4b600b3b14a270e746c"; + sha512.source = "d493d78656919b30822bf5e95024b3a85c8912936d2c7835af1ecf50eeb04c81e6262da230241c9bd78f0ca5073a1a4cfca4bcb43ef528b8623f0fc21671d38f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + menukeys = { + revision = 64314; + shortdesc = "Format menu sequences, paths and keystrokes from lists"; + stripPrefix = 0; + sha512.run = "624bc3f2c0cbcf4cceacd555619b5e3932c7c8623e44f4b313390af47143908d019fa7e83d28f8ce94a5e44df40aa73d6823edc931bf8b289d20fc2bf42616b6"; + sha512.doc = "5edf9b9e2accb846aa352046e37af630d997480a3483c53796e56066c1df00798b7615d13bf69d822ed9caa300f6abf624174cf7136caff8fd14c5d23ce2b68c"; + sha512.source = "724478484b110022c6bb591d92829042299226595fe9974a41efe9c6fa9b67c4a1c617690a2518e6bacd1f903bb020c1f815f4c3186ba2ceb185f624a869fabe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6.2"; + }; + mercatormap = { + revision = 56060; + shortdesc = "Spherical Mercator coordinate systems and Web Mercator tile integration"; + stripPrefix = 0; + sha512.run = "552c0fcb0eb72d55c51a2e9e4d055cefa27859d8e1a4410934fbbe6c139b4ddbad7e2444974acf4035fb29cc4bc8c3f76d33ef6c6e73e91e57e4225c102afd9f"; + sha512.doc = "446be6f13150ba3490890b528fe04c8a8080213aa6a5b66fe61e3e58ea4fc0bd03581aa96b0ec355c5ec725187b7b681507f961a9b29350cf07bc19bd2c0fdf1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + merriweather = { + revision = 64452; + shortdesc = "Merriweather and MerriweatherSans fonts, with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map merriweather.map" ]; + sha512.run = "363cf63b7211464fba6fd7686dc7d1ab6914c64d724128eeaec90b3dac39002c0653a2c54ff6932c8ce1f16577cf27b1e4665a3e1dbe92bbb81e0a15419ae36d"; + sha512.doc = "8762dfd5b3f3443177e0900c434c74d4b8ccca6c8817b1d8353c41ee8310b2299e2fa67113881bb47dd6def3295663aeeefafb15d7b808def000b6e253ac2d3f"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + messagepassing = { + revision = 69123; + shortdesc = "Draw diagrams to represent communication protocols"; + stripPrefix = 0; + sha512.run = "8a2243bb9b788a4dbb1caf14368fdd4df3919d9d407b65f2d4f49af16a341a030bd9114f86078623760dc3ee5db060060c58c6f675f4e8bdbc3c1c7c9b7a1d3e"; + sha512.doc = "c26c14eccc615a306b8ebe1a5c80a09249d5ba8668a34e2f7141b034df70634a277ad94078f2f50e51e53c514340571f9cb766232c3e2dc0ef5dc28336ec4e4d"; + sha512.source = "6ed92b15d4f17613ba540069b4d5f4bae5b7ce2850594377ecebeed76b92c61f672da8f95628d46db87dc9b44ef7dc9c8561736bcc9500d1951f523dd43d7378"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + metafont = { + revision = 66186; + shortdesc = "A system for specifying fonts"; + deps = [ + "kpathsea" + "modes" + ]; + formats = [ + { + name = "mf"; + engine = "mf-nowin"; + options = "-translate-file=cp227.tcx mf.ini"; + fmttriggers = [ "modes" ]; + } + ]; + sha512.run = "2ba715c32631b3ce24aba65e7e1df90a7beabc52b855f5e81cd383f94399e439a344f8a8a21f38648d34d546ca8f1890a74922836557cae5cd05ac945013d71e"; + sha512.doc = "48b1def32bfba5ab1123712fe41d69f979e33a77456801c21f030de8a39b37fcae179db44a517d7b194d7e6e6eb93d770e179ca49db9014cd433c86ef91b07d0"; + hasManpages = true; + hasRunfiles = true; + license = [ "knuth" ]; + version = "2.71828182"; + }; + metafont-beginners = { + revision = 29803; + shortdesc = "An introductory tutorial for Metafont"; + stripPrefix = 0; + sha512.run = "39352d8b181f3010fd4dbfbfad18a8cd3f68f0c38bdb89996ea4c77a649acbbd15e9a7fa318193db08733b3722a07a8ebfb17a6430bcc9af8101dc444608d75b"; + sha512.doc = "4fb7148b0668845447fd38411df0288972312a56897b1d5bce69a7e57ae632aacd12c273a911045204705a5534ac1d1c290af08a7057bd62184a59eb7146feb6"; + license = [ "publicDomain" ]; + }; + metafont.binfiles = [ + "inimf" + "mf" + "mf-nowin" + ]; + metago = { + revision = 15878; + shortdesc = "MetaPost output of Go positions"; + stripPrefix = 0; + sha512.run = "e7b3661d99ea50f7b20fe3af370e59e960fc0599409b5c11bfc9618c12c38e44b89e4e81d69ae7ba5e2565e46078ee52ed0bef46aa619408b386bb73926caeb7"; + sha512.doc = "8396725c0afc87c63d16256d5ab0d575a19f05d78ed245099a60785f0810a012e8c0026cf13d03781d09d7c0007bb9ed9b87072ed732ba706c893e5465461052"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + metalogo = { + revision = 18611; + shortdesc = "Extended TeX logo macros"; + stripPrefix = 0; + sha512.run = "20d5a9b8454166535aa3aa80da7d2931937fc6a4d730c1ab70c856311c223d466e9fce2ed6e3b2fbf4b4fc75778d7d4c2649111df5f92dd58b6fc42b3ec72696"; + sha512.doc = "48318b396e4e227dc1b80e21474a296ba4dfd37e81b95f9669dd8c96ca7318abd8a1e21ceb95e0ca7832ed64a85ede985fae7e2e52b3aa742c64b86e54fc563c"; + sha512.source = "bf240b77ef00d5351218674baf851b0eabcb22257fd6ce9dbd6b66afec5323a730df7b27d522f5130830ecf92af377edb3ec7906be206e760971dbe8f6266942"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12"; + }; + metalogox = { + revision = 70496; + shortdesc = "Adjust TeX logos, with font detection"; + stripPrefix = 0; + sha512.run = "b78976ad7e84e59ecca68c0e7ecb496f99f4e50ed5e1636b5675bb0c290f3f4d4d00b02dfe55c78ff4c5ae936e19c8110cdbc1fa76fefc1ee8b31a2c481625bb"; + sha512.doc = "64211eefedc7175e4859deefaaf89d021763b76cfa3509c8f6da27017993012471b3b894949d3c70eb1f5286bbbc545c712b041440e05df46bbe0ea82eb090fe"; + sha512.source = "89d9eb81eb883c8aec531117b0a62b838e8a1b0b9396eff4ad690aff37363aad31d6ef045621736e2961977c40e96fc54b4a72aa291863465318fc89b9c5006b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.06"; + }; + metanorma = { + revision = 55010; + shortdesc = "Write Metanorma standardization documents using LaTe"; + stripPrefix = 0; + sha512.run = "e9ca6b583cfc64ee78abdfca2520083dc231afd7bcc0b1b8373273c23da3f3bb961bad04d752cca38113d3a4d8e1ce54b401b96ea29e00e78be97d73bc528b4f"; + sha512.doc = "3750e580e3d7d0d69515e0de7a88a161cd8e7092af41be10fb4092cb519ecfebfef900e691d0c92ceb95df236cf040b2a314d54bfd8a6f7a09cb3c9585f15a32"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.5.0"; + }; + metaobj = { + revision = 15878; + shortdesc = "MetaPost package providing high-level objects"; + stripPrefix = 0; + sha512.run = "cf587c174e44da9496ece876bfcb8330bc52173cc3bd6d1b1351efc75a7c333ed8c7cbd41c079d492947a1ee43d8043fabebc80b4c7a5d348eb054e82c704e3b"; + sha512.doc = "0bfe1fa6a4b3a8923cfbe9bdc4fa1b27567df66365db447346fdcc739675d1d815515e09fbe96f44369643c38e6a8007a0f8d089ed8504020fe0a0e2a795ea9a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.93"; + }; + metaplot = { + revision = 15878; + shortdesc = "Plot-manipulation macros for use in MetaPost"; + stripPrefix = 0; + sha512.run = "eb083316720a5d7379c0ef7c1afa0e82ea5df63a3a98200b7041637a6fa47aa33dc20a265e05bdbc63abfc375e6b59fa199d4091875c057a044821c557963dab"; + sha512.doc = "1732b5a572a3d4c0a646308d3c102be29de845030a624763dd6075a44a739a29e65fd9f224229eed6dbe8dfc6b590a3df1cc07c184881dcd2f3dc5b0642a48dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + metapost = { + revision = 66815; + shortdesc = "A development of Metafont for creating graphics"; + deps = [ "kpathsea" ]; + fontMaps = [ "Map troff-updmap.map" ]; + sha512.run = "fb50b9d45a36cbe11d07fe2d0a1307bf257132e195825a2007894d5accb33ae1d10e0ca6d6a27405e79d3c439fca4dc1df00f21814eb530ac3707ca516bb9a0a"; + sha512.doc = "6b10e2a6183e6c7b9515ebfa0186b13d48bd87fb25cb69b010ac82b885fbb1f88f31340f7161e34f61cfa7478d50ebad6e82eddb14d8c746ef1bd4c480fe4b58"; + hasManpages = true; + hasRunfiles = true; + license = [ "lgpl2" ]; + }; + metapost-colorbrewer = { + revision = 48753; + shortdesc = "An implementation of the colorbrewer2.org colours for MetaPost"; + stripPrefix = 0; + sha512.run = "e59dd121f9a176e628697e31b720507723867a0b7b68b73531aa825bb02b07d04ff705bdfbeb369fe3a2d304f4c6c5aad3f823aaa4c82257540f1459cf099cb1"; + sha512.doc = "59f17d78ef78a142bde5783996f149b3a7c740c2b3ec6f90133115ebddcf6c460dada543482f5379872054a74eb772bab8afd96fa48b2484f7932a478b8bde2d"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + }; + metapost-examples = { + revision = 15878; + shortdesc = "Example drawings using MetaPost"; + stripPrefix = 0; + sha512.run = "95942b1b110e65274839ba01c16fed3e63a0ac99aa564d7a000bc9d9a0f5625ddc1dca13e786d0721bf93e76410722d4d76c86a05297bc39cd9af6dc91c2e6f8"; + sha512.doc = "2a3aec80b511864878e07ff973e17ed4fe1aec692c7e6983b57dde586aa19500cdd373687b0e081dc80c8584f116f0fa3de7ed4f09ba232eee8adce5e998c954"; + license = [ "free" ]; + }; + metapost.binfiles = [ + "dvitomp" + "mfplain" + "mpost" + "r-mpost" + ]; + metastr = { + revision = 56246; + shortdesc = "Store and compose strings"; + stripPrefix = 0; + sha512.run = "fb3a0484636e17b763c1229eee4736a13820a852d977b11d9e8672e08a8ab2f9438bba0ed53286dfc5b1422adef1cfc1c393d1eeda5d3172848c051d6aacd211"; + sha512.doc = "367ccc05eb31c50519e7324093759d6452081075d7e9435cb9e37e9787fd35666c1c18c822bfbff2b6dba0b312cee727ce8b7fa94ed627eb439c3c00e5b3d4e6"; + sha512.source = "904c3cdfcade4637a16366bf511094f4a33cd2614ee3f47bcf4cae7c2ffc0d0758633a8ff556ef9494eddf76969b235ae599e1df28bf9cc7537ddddfe33db157"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + metatex = { + revision = 15878; + shortdesc = "Incorporate Metafont pictures in TeX source"; + stripPrefix = 0; + sha512.run = "8d438cf0f3bd375c169681b242b7f00dca96cd3bcfb167c6aa664e27dba59eefb53a6d28ef537802d584b17bc578b1d63ca25799146ee6d986bc647ae1b0af2d"; + sha512.doc = "3c2918a3bbb30b4abe2395baf32ed2fd5fb1ce3541f86250f0c4037aeb127fe7e90cfced87144d564813a437b39b184503ea9a2c0c61b979907db74d91860677"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + metatype1 = { + revision = 37105; + shortdesc = "Generate Type 1 fonts from MetaPost"; + stripPrefix = 0; + sha512.run = "1dc34e3f826ebf09c6f3baf358aa0e5ee4ecbe86e2f82a7da12c706f443f5eba7fd8582bf46612b2fa3588515dac34c49d47cfa2b9c3ae905cc51dbe7779eb28"; + sha512.source = "26f891bb5a62da78763df29f1d9caf26588c6dff57e063eb445ae23a5dfd7108956068de991bbb514ee394c49d4ad119d4a0fdb5398aad48d9be223b8f13d388"; + license = [ "publicDomain" ]; + version = "0.56"; + }; + metauml = { + revision = 49923; + shortdesc = "MetaPost library for typesetting UML diagrams"; + stripPrefix = 0; + sha512.run = "96773f0d0e2788d13738930fa1aa727c7ca2edee020f3848326d7be3533c177ac977564aed533c59695b1e6c4c65e191784cbc3e7e70becdd651cd702b462ef5"; + sha512.doc = "6c649c32111a6350d36c69405fc272a917144be429bd84c0f118a74e1232c06744e66fb6647c5a742f58c6c78b46830a1484bbed3a9a962380ece6b16c555169"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2.6"; + }; + method = { + revision = 17485; + shortdesc = "Typeset method and variable declarations"; + stripPrefix = 0; + sha512.run = "9b71ed52073f831431ef6a3a81afe7efac97a6dd39d772b8f48cfa639dfec01411a5654830fcbaef6a3bef7aeb718bbbc38cbd18c592a080e67175dabc7e9919"; + sha512.doc = "2a211d1325322bfaf57c81a534f29fde51ef2e0dad8d7697c3af9fe10745c5f6245bb689b65d54c39a66b34ccec69d055f201aba34b2a4957ce2fea0827eab45"; + sha512.source = "ba90537e63493073509e9407aeecb28797370d75aada1835d5fbbbf991ea9b933226950765b61ab831a708d5fddc10c2fccd624d2872148bb77759a3595cd275"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + metre = { + revision = 18489; + shortdesc = "Support for the work of classicists"; + stripPrefix = 0; + sha512.run = "29d99fe061c828b4eef12047215451eaf6d603106b0ebb0b7c83c8f8b5ffd360160e29a0c86bc0cd329e6f694efae695ef03282885e872cf26c8177f951b705b"; + sha512.doc = "73ca10e1d2b32d4f7b37de6c409b68dc38b3dd165f47f52714c3a17e7a5dc6c1562928e7a7f8c5a3ed9aadfe1324e451baf6cda5dce69043fef3811cb6ff8cf7"; + sha512.source = "d11bfb161dd68208b4f4e29b67131618a02cb60f4e87c3f2809759ab42c44603e790876ea84c6c9f4f053c3cac1bf189344110ff5b4acdc97d7ddfe4c466c977"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + metrix = { + revision = 52323; + shortdesc = "Typeset metric marks for Latin text"; + stripPrefix = 0; + sha512.run = "00cbb4d0cd9417c57ae2cf701f0a485d296e17b95eb56a7a3b0acf328c4eadf3d8ddb7d4c3442ea26ef019dd4a6b5c95af9f718cd4e31b5e5d29301ce8e82edc"; + sha512.doc = "e5f8654272e8a85366c226113d3815ffb1e539237bdace71da55e30864f8c746162ce1b3f3023e3e62616b286145157816aedc871c6c42dcd3d4b76092d8ea46"; + sha512.source = "51a355ceccac5ff53cc98baf6d8fb3c36949f620a51191899d272ecca9671819c740703af1c47856b4c171757de68df839959388c2d87b2f43f54aaaf219b7a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + metsymb = { + revision = 68175; + shortdesc = "The package provides dedicated TeX commands to generate (vectorial) meteorological symbols"; + stripPrefix = 0; + fontMaps = [ "Map metsymb.map" ]; + sha512.run = "02864640550428b4869f0682d5571f463d21089f85e4e03336890cd7d37d08b9ec89b9bdc7b09b0f3ff5ea8bd612acfc2974655439fdcc5b617846d5f3d1c2a4"; + sha512.doc = "a3afc302c345de9e00f89f6e0781d4763d4ca5461f498e2cedcd0ee0494483db9cf7cd0ceb68823e7b1806caebc85a22751d5d4ce3b8041968036c8b2514e5d7"; + sha512.source = "29ccd5eb8915077ca09b568c7fd1924d61243266dc2fdfebba00691bb35a0dd908f2311caee865a044a78a9e485f78a4b91065c8d17f08b13420bdcf1b64a05f"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.2.0"; + }; + mex = { + revision = 58661; + shortdesc = "Polish formats for TeX"; + deps = [ + "enctex" + "hyph-utf8" + "hyphen-base" + "hyphen-polish" + "knuth-lib" + "pdftex" + "pl" + "plain" + "tex" + "tex-ini-files" + "utf8mex" + ]; + formats = [ + { + name = "mex"; + engine = "pdftex"; + patterns = [ "mexconf.tex" ]; + options = "-translate-file=cp227.tcx *mex.ini"; + fmttriggers = [ + "hyph-utf8" + "hyphen-base" + "hyphen-polish" + "knuth-lib" + "pl" + "plain" + "tex-ini-files" + ]; + } + { + name = "pdfmex"; + engine = "pdftex"; + patterns = [ "mexconf.tex" ]; + options = "-translate-file=cp227.tcx *pdfmex.ini"; + fmttriggers = [ + "hyph-utf8" + "hyphen-base" + "hyphen-polish" + "knuth-lib" + "pl" + "plain" + "tex-ini-files" + ]; + } + { + name = "utf8mex"; + engine = "pdftex"; + patterns = [ "mexconf.tex" ]; + options = "-enc *utf8mex.ini"; + fmttriggers = [ + "hyph-utf8" + "hyphen-base" + "hyphen-polish" + "knuth-lib" + "pl" + "plain" + "tex-ini-files" + "enctex" + "utf8mex" + ]; + } + ]; + sha512.run = "a79d6a1ecb15f7962826773d7eab4b1ffd86a5c15f8076f096fecf63df1bd661449eb7d14251a57a1eb2bede030ddf93aac170fc3c59ae0a124da6cef69e55be"; + sha512.doc = "091f2825376718d8c2190555af7ef54d0ae5202425d57b986fba861df2f8604301df5a121ccfcfcdc91032d07dcda8289fb8de5d81c487b93b0e202a2a5a658e"; + sha512.source = "6f20a7e4f80670f7dfe5b2cfe3357a5d16b0f627b5e9e95c2d7d46598e00b989d5ae8c797589c56c594b7d3610f5f79cad42f3bb64a628be968e4e9e5d541e98"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "1.05a"; + }; + mex.binfiles = [ + "mex" + "pdfmex" "utf8mex" ]; - formats = [ - { - name = "mex"; - engine = "pdftex"; - patterns = [ "mexconf.tex" ]; - options = "-translate-file=cp227.tcx *mex.ini"; - fmttriggers = [ "hyph-utf8" "hyphen-base" "hyphen-polish" "knuth-lib" "pl" "plain" "tex-ini-files" ]; - } - { - name = "pdfmex"; - engine = "pdftex"; - patterns = [ "mexconf.tex" ]; - options = "-translate-file=cp227.tcx *pdfmex.ini"; - fmttriggers = [ "hyph-utf8" "hyphen-base" "hyphen-polish" "knuth-lib" "pl" "plain" "tex-ini-files" ]; - } - { - name = "utf8mex"; - engine = "pdftex"; - patterns = [ "mexconf.tex" ]; - options = "-enc *utf8mex.ini"; - fmttriggers = [ "hyph-utf8" "hyphen-base" "hyphen-polish" "knuth-lib" "pl" "plain" "tex-ini-files" "enctex" "utf8mex" ]; - } + mf2pt1 = { + revision = 61217; + shortdesc = "Convert stylized Metafont to PostScript Type 1"; + sha512.run = "ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5"; + sha512.doc = "6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2"; + hasInfo = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + mf2pt1.binfiles = [ "mf2pt1" ]; + mfirstuc = { + revision = 64743; + shortdesc = "Uppercase the first letter of a word"; + stripPrefix = 0; + sha512.run = "2fde98490744da1823c5d90b8fabaa9c02d33f3f974fc7f0f6b8ddae4d8ec86f563a4fb491644d53a13b8632fbca2c7768970eea018c6112dc76d21307d89166"; + sha512.doc = "43fd4ec0bc778fc110c0002ebd8a1fd25374d9167c8b64857b29bc3642870c89f02deb406378bfa0fbc46825af6fc6622a1029880189f37d58efea74a983f5a3"; + sha512.source = "cd46a05b9b90c3e703c5970ac46b8fd59d94dcdb83dfd38a1038bb2197ebd0b8a89ef9582dabf1ee8665abba4905548706fcc08ced7966fadaedb333bae968db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.08"; + }; + mflogo = { + revision = 42428; + shortdesc = "LaTeX support for Metafont logo fonts"; + stripPrefix = 0; + sha512.run = "a1c5168e37fd9cbe5fc2714ee43143f36cec662441a7a9d33085652a5d6f769838d351faf416df6fda78529b5f8712f1a056afa47577fe925dcca5249f1fda38"; + sha512.doc = "6d1dabc636d22c824838a82da83a4676b20bb8a55dd1ab5628d00b4543096f91d234a51a312eb83544891910d923650f09e8911ec9db668f411735de6ef5bf3f"; + sha512.source = "7078092cdbcba668ebb440ca6214eb155221427ceaf4d1f574d1055d2f1f52d288cfc0f1d2212f2a62903e447c4aeb378fade068ab901833ab9c251b1890e15a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + mflogo-font = { + revision = 54512; + shortdesc = "Metafont logo font"; + stripPrefix = 0; + fontMaps = [ "MixedMap mflogo.map" ]; + sha512.run = "4b2552a2f38c68c755f3966aedee8e054af48e0b0a61267d7a4b1a29a4bd6be15c8754d657a2f08d88dcd42a03ed768d336747d2c35107b4dd2d5bb0e1f649aa"; + sha512.doc = "8ce49b7bf7bdbc46589da02c461f98746e13e13f19eb79af1c2ede084174204c128b27f88e164d5192415b6f464238e7f04fe95fe8e0873ce8aac84bc1e56713"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "1.002"; + }; + mflua = { + revision = 62774; + shortdesc = "configuration and base files for MFLua"; + deps = [ + "luatex" + "metafont" + ]; + formats = [ + { + name = "mflua"; + engine = "mflua-nowin"; + options = "mf.ini"; + fmttriggers = [ + "luatex" + "metafont" + ]; + enabled = false; + } + ]; + sha512.run = "fa735fa117e7bd433339efbb709caa5fc25007088500dd5e4f6999cc417d188fd43435f74d526186880ac857f9bfc52e1fb7f1055974cea959e28536150b1a19"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + }; + mflua.binfiles = [ + "mflua" + "mflua-nowin" + "mfluajit" + "mfluajit-nowin" ]; - sha512.run = "a79d6a1ecb15f7962826773d7eab4b1ffd86a5c15f8076f096fecf63df1bd661449eb7d14251a57a1eb2bede030ddf93aac170fc3c59ae0a124da6cef69e55be"; - sha512.doc = "091f2825376718d8c2190555af7ef54d0ae5202425d57b986fba861df2f8604301df5a121ccfcfcdc91032d07dcda8289fb8de5d81c487b93b0e202a2a5a658e"; - sha512.source = "6f20a7e4f80670f7dfe5b2cfe3357a5d16b0f627b5e9e95c2d7d46598e00b989d5ae8c797589c56c594b7d3610f5f79cad42f3bb64a628be968e4e9e5d541e98"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "1.05a"; -}; -mex.binfiles = [ - "mex" - "pdfmex" - "utf8mex" -]; -mf2pt1 = { - revision = 61217; - shortdesc = "Convert stylized Metafont to PostScript Type 1"; - sha512.run = "ca93a3ae439f9cd8029720bd1d90fbe75a403e7ab4ebcbe1ba1e5a7a28aa9269197f90a4aee849fea59d734d5dc38f04eedc140ff1be64fd805a10ab5510a2f5"; - sha512.doc = "6c10831fdcc48d25645be675fbf5da29da945bd79032c60e73e04a39d61c287a64e7b884381ac0b08e48f5dc9b6dec27efea874f6e13d6e4a5e3f32c22fa3ce2"; - hasInfo = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -mf2pt1.binfiles = [ - "mf2pt1" -]; -mfirstuc = { - revision = 64743; - shortdesc = "Uppercase the first letter of a word"; - stripPrefix = 0; - sha512.run = "2fde98490744da1823c5d90b8fabaa9c02d33f3f974fc7f0f6b8ddae4d8ec86f563a4fb491644d53a13b8632fbca2c7768970eea018c6112dc76d21307d89166"; - sha512.doc = "43fd4ec0bc778fc110c0002ebd8a1fd25374d9167c8b64857b29bc3642870c89f02deb406378bfa0fbc46825af6fc6622a1029880189f37d58efea74a983f5a3"; - sha512.source = "cd46a05b9b90c3e703c5970ac46b8fd59d94dcdb83dfd38a1038bb2197ebd0b8a89ef9582dabf1ee8665abba4905548706fcc08ced7966fadaedb333bae968db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.08"; -}; -mflogo = { - revision = 42428; - shortdesc = "LaTeX support for Metafont logo fonts"; - stripPrefix = 0; - sha512.run = "a1c5168e37fd9cbe5fc2714ee43143f36cec662441a7a9d33085652a5d6f769838d351faf416df6fda78529b5f8712f1a056afa47577fe925dcca5249f1fda38"; - sha512.doc = "6d1dabc636d22c824838a82da83a4676b20bb8a55dd1ab5628d00b4543096f91d234a51a312eb83544891910d923650f09e8911ec9db668f411735de6ef5bf3f"; - sha512.source = "7078092cdbcba668ebb440ca6214eb155221427ceaf4d1f574d1055d2f1f52d288cfc0f1d2212f2a62903e447c4aeb378fade068ab901833ab9c251b1890e15a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -mflogo-font = { - revision = 54512; - shortdesc = "Metafont logo font"; - stripPrefix = 0; - fontMaps = [ - "MixedMap mflogo.map" + mfnfss = { + revision = 46036; + shortdesc = "Packages to typeset oldgerman and pandora fonts in LaTeX"; + stripPrefix = 0; + sha512.run = "33206fb4cb7ce8f18050d713be415abb95323599270b2b91c886e2ac3f24a58786a480e5d4d1ad6ad2083456231eacf94dc769b26e6cae7288e996c6e14bea29"; + sha512.doc = "f8421e58ede77c8817679fcdcb43fecfc519427b3cb93ed2594fef5c8ac8124e0563a2182803a2a6bc417982df298abc7fe092f1cae5ed7583e2fa6fe94c8345"; + sha512.source = "2bd5aee80abf38884cc4a3ad6d6226243a6ffe0d2e879101aee56168a10cd0c7293eec7ccf53c7a7e8087ca94398e3f4ef38d71ccbbfe48677ffee3f8b813bc9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mfpic = { + revision = 28444; + shortdesc = "Draw Metafont/post pictures from (La)TeX commands"; + stripPrefix = 0; + sha512.run = "361983a020165d094bcd0fc9616be74bd2b5c72542b1e1b257b5ec42ac6be1175caf59c79e156da2bf6fecfe3746b4e33a4a8fc978eb124939ce0ffd2c383081"; + sha512.doc = "97ec26cc1ed8e181c7d69af264204772c9075e3650044b58cad938fd6918f9cbf5c849699e31846f437e41410492b67668a7ec33e848cf6b5fb9c2d52d7a7947"; + sha512.source = "609b960a70d47edbb814c981c5cb03b91fd19e905f8caed599be2488e0ed9ef0bfe01af79353015e0d6dd2fcda6810bde10ec4d8e993356bb7371ed2805988c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + mfpic4ode = { + revision = 17745; + shortdesc = "Macros to draw direction fields and solutions of ODEs"; + stripPrefix = 0; + sha512.run = "4f3a314afb6b1f8c4fb07421244f2a05747f5d24194659053c561ba24ed90f325e82ab9d97981af6455081580f75e9e8f75d11f06aef9e1c027ed0f9bf17696b"; + sha512.doc = "9d5f38873cd94fc3248b619f68e04bdb1824eb1249cf02e555a60c3e84dcab78d3e04f9451e1803943e898ed7f55e33615f673da8c58569219650976c25f0ae4"; + sha512.source = "b5de6dee490578bc460f76ccb606b5d62d4f6f2c43e2f9967085f1a323ba287cfc596da70905a40e1ac602074323940a9e42ba8096a9a35190ca280217b2e10e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + mftinc = { + revision = 15878; + shortdesc = "Pretty-print Metafont source"; + stripPrefix = 0; + sha512.run = "64fa5f38398a626d5a351be7ad866c75feb4549f836932dc936cb99f921e7b8abe5b3d6fc1e1e6c427344606ee5dacaf067d8678e7b199fa1ff8d5c94cbffa49"; + sha512.doc = "0846744cfd86bbcd8b6ad90d58bfe5788a79f43d05f3cf6f438fdef50cc4872ad8ec4d32005ced9ea9c424f3e86a799d79b0baf2a9544a3018531a99cd81fd5e"; + sha512.source = "50ca90a2f48970b3cca5552a361337ed138b4a9e31bca2766eb429cdceac2a09adc1cafa6c444c514fabe71c38ed82a63b847e1da014f2c131a15c362efaf09f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + mfware = { + revision = 66186; + shortdesc = "Supporting tools for use with Metafont"; + sha512.run = "f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea"; + sha512.doc = "ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db"; + hasManpages = true; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + mfware.binfiles = [ + "gftodvi" + "gftopk" + "gftype" + "mft" + "pktogf" + "pktype" ]; - sha512.run = "4b2552a2f38c68c755f3966aedee8e054af48e0b0a61267d7a4b1a29a4bd6be15c8754d657a2f08d88dcd42a03ed768d336747d2c35107b4dd2d5bb0e1f649aa"; - sha512.doc = "8ce49b7bf7bdbc46589da02c461f98746e13e13f19eb79af1c2ede084174204c128b27f88e164d5192415b6f464238e7f04fe95fe8e0873ce8aac84bc1e56713"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "1.002"; -}; -mflua = { - revision = 62774; - shortdesc = "configuration and base files for MFLua"; - deps = [ - "luatex" - "metafont" + mgltex = { + revision = 63255; + shortdesc = "High-quality graphics from MGL scripts embedded in LaTeX documents"; + stripPrefix = 0; + sha512.run = "920784d4332e4e1635e089878a55848ef4ad82a7b23e24a1bc81f71a08bb7af411ea54710533bf1f429e506c4ca5e94855c73d890929dc558274e108155e1a71"; + sha512.doc = "a8954ba22a30368ce01329b930486c02b317375636d85c7fdb7f14cf032173ab3f7a28ff6261d20cebdb8995560d4c7f41c03ed6285cfcaa555d405a06891432"; + sha512.source = "63b874341f2e18f88862ec5e6cf7064e9d4219070d274f0daa2dbacf8eb0eee5b4206167bd86520d10ffa0316d7ffe93615604932924b4cc04936db352073d1c"; + hasRunfiles = true; + license = [ + "gpl3Only" + "cc-by-sa-30" + ]; + version = "4.2"; + }; + mhchem = { + revision = 69639; + shortdesc = "Typeset chemical formulae/equations and H and P statements"; + stripPrefix = 0; + deps = [ + "amsmath" + "chemgreek" + "graphics" + "l3kernel" + "l3packages" + "tools" + ]; + sha512.run = "5b85541e565ad80891ba56375bb3c2d6720c7e0acc9e96d611626eace4daafeb078fe08fe4e6db4875823bf570f8af1dd4b319d38b41fc4c3ae9696772e7996a"; + sha512.doc = "487a5d90782d1c0814c7110388e5277e70dff9adc82048f8b5c33ffbf8c82e9df73293b4ab78bc83c2ef23674e341a2fb15f6b3268d1fdff1aa57d4d3813ea1e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mhequ = { + revision = 64978; + shortdesc = "Multicolumn equations, tags, labels, sub-numbering"; + stripPrefix = 0; + sha512.run = "bf1e2b11a9b4930a9ac364ad1b6e6f6097f346494196ef64fcb76dce00c9d3c3d145e852ddf321c0c8ee7444d52656e2db27e6a80c97b4c18c5fae283b8fd88a"; + sha512.doc = "aee8ac5b73692b37a9f0541c07787eef3dc173996c92aca250c35227f095416dace1e18be9fe6f2ae955610dcca9fea031a6b787fd2185138d7668d0cd269caa"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.72"; + }; + mi-solns = { + revision = 49651; + shortdesc = "Extract solutions from exercises and quizzes"; + stripPrefix = 0; + sha512.run = "ac5beb872c78675bc9df379f8a2afe533647a1c39781c57fed2cec6e610cafbbb45a4fdcbd9826cb123a584e121ff752633d6c990109bb1f619b1d9fac6906de"; + sha512.doc = "cfd36e0a1476e0d148fb36f350ec236d57beb2c0b27f08eb56f69683790b16425a6f95b4f93a010fe0d450863fb34a7eb31b1c8e40fbe5319df128439dfa5372"; + sha512.source = "cf41fb6338270f2fbf56b33b9d0b3b6904f06a84b99dc8fc0613e10644b3f198b22634cd82b78bd50b236415ec6b8d46c9d0d99728480782459f514d2086426c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.6"; + }; + miama = { + revision = 54512; + shortdesc = "The Miama Nueva handwriting font with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map miama.map" ]; + sha512.run = "b9a5416b1de4cb487575894f3dacac8b07eda2b37b90fa0c5ca0ebc5d9d412c896fb7cd028c6af5627368c44d442670990949c9ceb9fe3a60179d3f70874135a"; + sha512.doc = "a76db9f49bcdc225d9206ebaa3b7ca42bc7148a44d1d66b72d2033b68fe9a1137eec265316d3a24077e3e3712687e80ea948d4f1c9cd819e6a4afb8c9bbf91df"; + sha512.source = "2b9e1a649f944ce6b36b1dc09d28112f7d5ea3c0a26a1f292576448171aa2f51449988ce85703ba7c2098f6dce62093ccf5af256bff1993268f31dc884bd3b63"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.1"; + }; + microtype = { + revision = 66587; + shortdesc = "Subliminal refinements towards typographical perfection"; + stripPrefix = 0; + sha512.run = "c80e6bb2c13432ecae2be22622e3bbfe82342ca138f61870cb8f3c2d7ec93f431bee5ae0a9619d4ad6a842b0752ecb73131452d6ac5c5fba7732ad4d5c979fa6"; + sha512.doc = "6f7eb5d18fc2864c0bff52f7af82b3284766cef64d2ba8f4aa9f2f6d26af3e47e3be9d486f29e646e92ca597cc1129dacb5d1c03dbe155503ae046e4badbecf7"; + sha512.source = "77d5f0e22a97ac0291e891df206618460a2672fc36c79a91db2b5212092d65acb0e1cbe0ecf82e0a31704baef207a48f817b5fa65abc4d6e6c031acdd85ed602"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1a"; + }; + microtype-de = { + revision = 54080; + shortdesc = "Translation into German of the documentation of microtype"; + stripPrefix = 0; + sha512.run = "cde294b4dd73d5948ef16b314e70745eb98bed30b4343c04885686533e2457a4aee07616e84eba6b0a552fb342331114de835d777d882308bdc1dba75927b17f"; + sha512.doc = "fa524a0225a57fc60bbad95cdd7855f4ba73691a6787c906ef5091183425a650f583340d65ce8b11792046c767b0b31e5131c62dcc281898457234134aec291b"; + license = [ "lppl13c" ]; + version = "2.4"; + }; + midnight = { + revision = 15878; + shortdesc = "A set of useful macro tools"; + stripPrefix = 0; + sha512.run = "8f8bf1d8d3c5c12147dd61a4d65d311552877a9f5eb7ebcce71602dc69ed5459187134d3a1e346a15255f2c4ba57f054c3d020817df0d5d89c7fc2f216b19cc3"; + sha512.doc = "0c594cac3c7e8d3064145f1b2b088d74a5445b7a7506fc2629b3df6f63419b025779e348116f7dbc859d7c406d87e5b5988d529e5da61d01b0759b0f0fec2382"; + hasRunfiles = true; + license = [ "free" ]; + }; + midpage = { + revision = 17484; + shortdesc = "Environment for vertical centring"; + stripPrefix = 0; + sha512.run = "9a13760b776cdce28cf3eb1e28e957265d7d4e83b23234f1590285bc83409f1d5b09040fc6cacd3b9f7a5ec2f61a4e5431fea92a5fcf20032c7bb919ed59612b"; + sha512.doc = "25f41bb8cb12c6d310da66d36032eb4933248f0c84a67216cd0981fda7e61343c0dee03e96f522bddf969e925e6cf495754e52e863672f1cab4e94ae3b0400cd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + miller = { + revision = 18789; + shortdesc = "Typeset miller indices"; + stripPrefix = 0; + sha512.run = "a1415d82a2a81c3dccdea1b59c4c0e8d2cb3902dbc6816cf7615fa3e571de26168a6a066f52bad94c38595102afcd1447721095bd084befc20b3fb3ad420e129"; + sha512.doc = "3f888fed2b909c269ead9e5191a788828048a21103c881a9b769fb0e8a3c0f3e6c41467827143f6b79a45d2497e3ac21d5c6da8727be3c987ab8a1fdbcec59ca"; + sha512.source = "06e15ff6c146685a8b4d13c5d4e23de4ea343afe684924694f86104f362df7dfaa975b25e850b685e05efeeddf2ed079038cafff8a495116f27dd756e4dceab3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + milog = { + revision = 41610; + shortdesc = "A LaTeX class for fulfilling the documentation duties according to the German minimum wage law MiLoG"; + stripPrefix = 0; + sha512.run = "126942c7be2217843d5dd0a6a927d1a47537ced3b1a083caa54b4905625b57238cc0a3a8d1652da076144b8c2469f418077eb4051527e5d351c2d95f3d3a5f79"; + sha512.doc = "251b73ab0f52ff2672733c3855289e012965151e07ff447da373bea083b1ff6bfeff38adef72419f03ca153545fdb90bb18f3aa254fa7b59d3c5c061ec5d15ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + milsymb = { + revision = 66697; + shortdesc = "LaTeX package for TikZ based drawing of military symbols as per NATO APP-6(C)"; + stripPrefix = 0; + sha512.run = "fdd01cd6a9a5b27ceb741ba689a82f1e695132d78b59c818fcf2e3ce63526109173b978246b1b556e355237ce456b6f632effd555c27b3096ecc1cd5f5bd22ed"; + sha512.doc = "7baa8152b3968047e66990eeeb94b601a0667a7db598a4403930328f6fa18595c46979772b8b496dd7b076e99e19969d22c8a3f4f19d3b82f01bd84bfa920db7"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.03"; + }; + mindflow = { + revision = 65236; + shortdesc = "Write your ideas in a clear way"; + stripPrefix = 0; + sha512.run = "35d1b4fd39bb64fb1e9c89ebaf33d54051f0f550967362dee15294aeac0066f92b0437e688b5065795dc19a680a9f26c99cb1647c3ddacbe0054ecf553c2f9eb"; + sha512.doc = "4ad9f6c4e024f782dd1f0ec2e4847c45690c4c39410395cc4fb122f340b2dba0dbea5664f65640d2fc53ea301bba9e5758c7e29f3556511e307b6c0c2c46653e"; + sha512.source = "1a267ca0f437c707ba05b65aa4355ad721aa2de26518143aae4e752ce1dc69d12f6e4b42b670c032d82ae15f5a6753cbc29f56bc44f4bb48d63ff6dc0afb9e1c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + minibox = { + revision = 30914; + shortdesc = "A simple type of box for LaTeX"; + stripPrefix = 0; + sha512.run = "18d409728f57cc2e423b5c74ad7ff4a9e93f2405497a96024769fb01f7604e019d914365f82fa5908bb679ce4a48cab64fd4435b531ef72235067481b8dbc96b"; + sha512.doc = "0404b375fb0ef258d0e5acb8e7a78a60a55d08ce7339b9b63b1711dcc6d40b6f302b0f35f7d1fc8bfbf431b66bb5aaa2c94e92ee8e788a5f2156031425c0c4a3"; + sha512.source = "6aafb14003afb2ee18390391e15fb00f73a16f568158d72fea348e7052bf1ec5f25cd446569bb3c6dd815577fca7b2522d4474681b560ee3ea65b6053509df92"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2a"; + }; + minidocument = { + revision = 43752; + shortdesc = "Creates miniature documents inside other LaTeX documents"; + stripPrefix = 0; + sha512.run = "33a7938dc25833faef05245d00219ad4d94902d1b5a8f63de8c08448da1f4ddd8e305cd261a3051df919b097f0b3b82081b57fa420e773dc89a1c8cb801ba463"; + sha512.doc = "03ac398f6f8e79003b155434992a53b1485032ef779e5fa05a43adf7528fec1966ba94731ab2fc11cdfadce51bfca6ca9d1a88f882ca87f08d8e4077896af4c3"; + sha512.source = "556f1c482366f1bf2bd6e2f4e92f0fb811d97e91e057994605a2794f9441f2df35bcd2e2dc4d6218e980e921b7d7a03e5ea2613b6d27d8258985521ecde2dbf0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + minifp = { + revision = 32559; + shortdesc = "Fixed-point real computations to 8 decimals"; + stripPrefix = 0; + sha512.run = "412bbd3466eee82a99b43d6f4a5998a0a22b20c2d51621368ecba1084010a5333bda9e221b07dcfc6ddea8810edd0dcf60c2be6f926ca0da33071e6a812108d9"; + sha512.doc = "56e1b71f8289c126df12091cf155c8c05f05a391abd40ff6ce0b84bb7620630a80747e23c25bbb4276aa5d110314076f61da72683b6846a44a53ad3515b91670"; + sha512.source = "32cd837a6c750ae92f9662db289a5479a102d09058bb4c85605820d6ced83f237d684fb07c9ba59f76062d6d383d1b45485ac2f2ec4e5bd43f780254facac1e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.96"; + }; + minim = { + revision = 70320; + shortdesc = "A modern plain format for the LuaTeX engine"; + stripPrefix = 0; + sha512.run = "5c2905e433d296d4645a7f4b9ea4e8d952d3b97b3977a88dfbdb36278f399ea9be02a14f866c4615290a6ca617cd0d29498f330239832fcc2d2178bf6dca7515"; + sha512.doc = "35ac9d101c958af4ffe7909762edb173ad7af619d870dfe44408634160446568cf480c209ef5546142d390e89a155d902ec6dd921cc33511e5d84cdbd68a2a4f"; + hasRunfiles = true; + license = [ "free" ]; + version = "2024-1.5"; + }; + minim-hatching = { + revision = 62395; + shortdesc = "Create tiling patterns with the minim-mp MetaPost processor"; + stripPrefix = 0; + sha512.run = "3d6720c4bbce847f1ca08279593398d162c80c14034ba6b8d168517ab30af883ce4fcc6cb0cea4dac0b0720be8fb8f67ddd131a026ed6ca5ea46182af1c41110"; + sha512.doc = "895a0b7731af0ea67e581ff4cc0208aca12d04ca862a15bc897d6e104a1bd9d7ef27f3a8c2a24c8533f16d0ceae1eab05a3dd923ae829529a223ba76d94485c1"; + hasRunfiles = true; + license = [ "free" ]; + version = "2022-1.1"; + }; + minim-math = { + revision = 69352; + shortdesc = "Extensive maths for LuaTeX"; + stripPrefix = 0; + sha512.run = "b733b6fb53b450bcb4afd2265f65e64b6087d08d385a746ea78720efedc4d1aa14bf6fba21fcfdbef7a331d1c657674caace33f9a213d34d0b56604a4d0067ff"; + sha512.doc = "d3754968215fdee2a31db13934c22a06998f93a11b80ba46e30231176e1583a8df86dcc8ed91b582a8b6f1427d9bf121f0f43cf297edb3e4a79250b9d703cb76"; + hasRunfiles = true; + license = [ "free" ]; + version = "2024-1.4"; + }; + minim-mp = { + revision = 70322; + shortdesc = "Low-level mplib integration for LuaTeX"; + stripPrefix = 0; + sha512.run = "99fc9ec8eec155bf404274bde2981ab791bae041860e184242cf5ac06b7c0a149ce70adfae1b2088a773114564afe93ece070cbae5fd77088a637bc27f830c95"; + sha512.doc = "ab83c7e366b87d42ae6351ef505c21c14cd39fbde5020f59595ce3534338b38cf2911496fb196226d012ec0337424047c158477721434fa0f08e2207b0fa5e1a"; + hasRunfiles = true; + license = [ "free" ]; + version = "2024-1.5"; + }; + minim-pdf = { + revision = 70321; + shortdesc = "Low-level PDF integration for LuaTeX"; + stripPrefix = 0; + sha512.run = "da700da69e8f6e82c47a08b0e54fa0cb959fb7950544a9dbd49d9b0883620434144932301c2dc68f03d45b5f7d3b6e9521a7d66fd820f8b91c6bd8364e0338e8"; + sha512.doc = "f9e3735b6a493c2ad07b1b39c1393eb39dce3250afa358f15c6870fd02c527342198f8198b710db298baac4309544fcb457589aec75e4f54a5817fb8072fab7f"; + hasRunfiles = true; + license = [ "free" ]; + version = "2024-1.5"; + }; + minim-xmp = { + revision = 69352; + shortdesc = "Embed XMP metadata in PDF with LuaTeX"; + stripPrefix = 0; + sha512.run = "4df50df08721b8c6cbc2314a36f08776766164c57fffa387d4804afae2fc1f35deb386f2c01e81da8a18b535c7103b7e07ffc51b37d4c621d8c5ac5248f4d960"; + sha512.doc = "a6c524225e0e9c5ffe620950474ea7f0f16780d555e354a14885d81066228d350a14399a78cda455677fd116e752f3637e73ff3e9aa342ff4036363805d736cf"; + hasRunfiles = true; + license = [ "free" ]; + version = "2024-1.3"; + }; + minimalist = { + revision = 70329; + shortdesc = "Write your articles or books in a simple and clear way"; + stripPrefix = 0; + deps = [ "projlib" ]; + sha512.run = "899476ca5e7ef145520819cf365e1afd9056b377e5eb3d64e63743d1eb041e6775d9d6ea616e241a6575e57789eea70dee3651a1dc4098c32b72021835d330f8"; + sha512.doc = "9f887a4043097a7fad52699d2568bf3e534d27df57f0567e392560e5153d7706068f2835ed03f5543bcb8e9021393e526b1499180bf00da851ac661cc86e2443"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + minipage-marginpar = { + revision = 15878; + shortdesc = "Minipages with marginal notes"; + stripPrefix = 0; + sha512.run = "acf33aac7dea3c20986a9ed1f76efbb470d9fa1cbd31f29ed4fddd0e16835ace1946278fcfd04ea179122e603f63b269872953e40f8a64843ae8e60ded769356"; + sha512.doc = "20d503697a246b8b56a71cf324e4daaec436b62e9c3b9556095670c2b461d273e8b77e24da3cada37106c350304827a37bd6f658727373e384f11fe064e07992"; + sha512.source = "1050833e51b5a00963b616b496d9b18e49cc8ded901ccdffbaf949eac12fe8d31219c650936c083767e39a39dcd08686ef049ce11abbaad5daa998f4e9c1b7c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + miniplot = { + revision = 17483; + shortdesc = "A package for easy figure arrangement"; + stripPrefix = 0; + sha512.run = "2c5d08c2476871dd182bb320c50ec96f202ef65a417e65d1de8aec391fb60dc66c1e9e4642ad2207f7f4bfdd12e83bfe2cf75e9fa4f0fff0f4ee72769f7ca84f"; + sha512.doc = "6ae8000b3d0ef50e37dfbda399396a42bd348d6ed9ee485ff01ded9d850693f43b0c1945dfde93d9ea0f17494ac2e03391824f2f0c0eff67355c3d3f3ad6cccf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + minitoc = { + revision = 61719; + shortdesc = "Produce a table of contents for each chapter, part or section"; + stripPrefix = 0; + sha512.run = "e2d2503ac4888198c56e9007b20f489a04e31fcd29c946c5504b7d193506fb58e2577c6085be5d9d17c6f5b21ff77208810385c73688468f3988f0b651fb81a4"; + sha512.doc = "15955f17dfe2916081156e1464299b598f1bba780518516f6bee7da55cd1c45e2fc90c27402ba9d8ab4a994ba5ea1675ca9593699792a08407cda5b3a2230908"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "62"; + }; + minorrevision = { + revision = 32165; + shortdesc = "Quote and refer to a manuscript for minor revisions"; + stripPrefix = 0; + sha512.run = "d76224254aa18dd80f9bab56f055fde5bb7ee6b5c3dd88e6ce19667c939fb2dbd1e5cb987522a3f1c50082f46ee20cf918f1e01fb00f588ce11d30d300fcf574"; + sha512.doc = "ab1484f7ec214d43b95a8bd5cd78ee28bf0055d99d8c63c424c5c1db1c77b41a8631ea35bef745ab0399dd1c8dd9c9ab66b60033bb151f46afb023b6b5e1ab44"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + minted = { + revision = 69163; + shortdesc = "Highlighted source code for LaTeX"; + stripPrefix = 0; + deps = [ + "catchfile" + "etoolbox" + "float" + "framed" + "fvextra" + "graphics" + "ifplatform" + "kvoptions" + "lineno" + "newfloat" + "pdftexcmds" + "tools" + "xcolor" + "xstring" + ]; + sha512.run = "d9bf72028b4aeb2febd7e2ee8f44297f047b5eab76fca8265a56dbcde4d921946bce15af5a89bc110b8ba25d234925172822e045670cd9795f13e38cd0e90f18"; + sha512.doc = "6ddf64e40d3d28ca2bedd8a8a9789f1839c63a96f5aee3f71155722876f8ddf0634c2022ae4c02e1e9336a76dc8477994654d20e9d5949f2054017fcd09a9146"; + sha512.source = "2cab20988a7fae52fdeacfca9e0f30fb1d471ea1a93f7f76c6812f9c6d15e5c4949aac1a904341be30387ea1030c67100cb696a861b114bdf8b7d348c9d1a808"; + hasRunfiles = true; + license = [ + "lppl13c" + "bsd3" + ]; + version = "2.9"; + }; + mintspirit = { + revision = 64461; + shortdesc = "LaTeX support for MintSpirit font families"; + stripPrefix = 0; + fontMaps = [ "Map mintspirit.map" ]; + sha512.run = "18167b9d0b5c167e2679cfb135812e3cbc20a90a182acb3eef15a54f4029298ebb39f6db626b5cbd8368389c9f0656f7575eb4f1970fd242d77d976762ca8d5b"; + sha512.doc = "8a7855b5cd117a5a11eda118b8a4b08eff4183a427655c501c5e3c40e1e9617397d58e6622058187a48d04948fad9164b866e58c76080404d7bdf4ff9fbc4d9b"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + minutes = { + revision = 42186; + shortdesc = "Typeset the minutes of meetings"; + stripPrefix = 0; + sha512.run = "3abd6c4963ceec3cf073048c21d2abc236d58f522000195fd459c554c10d2af9afaf772b0fd1545fdf72decbc7e1c62a0bb12d7bc1dfd9d5b025f5131ca5f145"; + sha512.doc = "a069ea537eb1fc572c842a26dd406b1ef2f1343ef6066d266642dfe37515a3679c3a9e64eb37e1e992fc40281d855b817edf9116aae3922abc60e3c01106e3da"; + sha512.source = "09b6260de696981f020835c61e20f23bfb81404df44af477f62341b9b07c65a1be58098d33dc876d6f07f3a5aaf6df25c8e3e7707c0f238ae76094ff0bfe5a2e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8f"; + }; + mismath = { + revision = 70260; + shortdesc = "Miscellaneous mathematical macros"; + stripPrefix = 0; + sha512.run = "21714883ae8a8640bdacf7c70b06153914cafa03ca546902017d98b24931d9cee041197fae2b31b317917351294addd8c9531c80586aa14924cd57120f37780d"; + sha512.doc = "faf0bcb6b8f2c9ac698bdc3df87001dfcc7488449972bfd5a4ec2fa619d1ab88e9764f4b9773788902385d6887d56a9d51edf16631dea8a0379921f380996878"; + sha512.source = "4c8a203150e5c7c8a291f57cd5a87686c05114d220d427ff34d4255542a9f02bdada4805a28edf7deb479a4529ff841f89253043ae648a55f650dc6f212efe25"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.12"; + }; + missaali = { + revision = 61719; + shortdesc = "A late medieval OpenType textura font"; + stripPrefix = 0; + sha512.run = "552f53302060b3f4c764a669feea4fe1dbadfa3abf53c226f9fde2d0e876bc8992ff2dbd4be6cd3e261ab0e01ed4d1ad2b5a38c2cfb780c4fc099a79ae52b46f"; + sha512.doc = "c80c201b7d3fa5808bc337415e86fe7e009ceccaf8020e587fae72f7024452f7c02b65ce48b2e8543c9796e8b3ea6431e0b8a5f1dc25b5adbd6f2ae7146e75a4"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.0"; + }; + mitthesis = { + revision = 68732; + shortdesc = "A LaTeX template for an MIT thesis"; + stripPrefix = 0; + sha512.run = "7f7fb74329217ceaba1cb55e8dc6d52216327991f397b01b7603d8a797ad214bb0f62c51e237a14e388ba5110d558716436218a511647336115b9653c61fa801"; + sha512.doc = "315fe938373d4fca5cb740067855cf38b52c00b49926baf2a61613ed5353bb81e4b156bc43ee3c67dd8414d5cb9f9fc1b36a215d67b04e57ce4ad4967456a021"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.11"; + }; + mkgrkindex = { + revision = 26313; + shortdesc = "Makeindex working with Greek"; + sha512.run = "bbb0b306f30b4fe898f5d5bfdcb1eaa4d2d88a95cfa1ea0da51957aad1de028928562c930180f6c0a7d66b5cdfd804d52afbd229e7ca43173477a229cefff192"; + sha512.doc = "5a5b14d4282e97420f796456155a71c23a44d4197d4d92bfea1f0f20e95b42e506c7be3f2b0aba37508415341e999522bd823c649cc6259a6e26d42399c6b8cf"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.0"; + }; + mkgrkindex.binfiles = [ "mkgrkindex" ]; + mkjobtexmf = { + revision = 29725; + shortdesc = "Generate a texmf tree for a particular job"; + sha512.run = "c0dffdb276141b78bd2c47e6d2bfddcd13c1800d3a0806a05ca1fba72a91621364b827801430bc757601e07f2a5130366ade49d7ac1df27901fbec29827739c3"; + sha512.doc = "3ef5c333cedd5104b63c1457fff2eee40aea7d1f1b187d34ce4cfccd5b6bd38809b7686dc7b41a147fbee2ae0e951470f3ae574bd3c10a5f9b6fb76b686ce4f5"; + hasManpages = true; + sha512.source = "7f9de9bafb890d12ef2f07d3b8596dc31c4bb97079f826c9efd4f318383f64d8250099a937d8d692fecf703e626b42f942962f4d906e705cf4b0155e354bff0f"; + hasRunfiles = true; + license = [ "artistic1-cl8" ]; + version = "0.8"; + }; + mkjobtexmf.binfiles = [ "mkjobtexmf" ]; + mkpattern = { + revision = 15878; + shortdesc = "A utility for making hyphenation patterns"; + stripPrefix = 0; + sha512.run = "0395c9258e6c4a8459e69ff2fbdfe511b0c6863e02333d9481a8a1e82362cf9e1be7e89e7447bda497e7ed2bc18e1986e0a5461e9f49c63ff869f39a4da4f007"; + sha512.doc = "8232866143444fab1ed1f15255dc5f8c1c5050812e2882d2e20636bfd300216815a53aa03cd4f69ed7f45aab255a8efae9bfdc10df6b7a246d36d4db075204ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + mkpic = { + revision = 33700; + shortdesc = "Perl interface to mfpic"; + sha512.run = "7814f14293e10a23bc9348dcaea9af326ab4dd93cc55865320706984e50883742381b5df3e77774e7a63fbba7ebcbe0fae7268a3d1a34ebb2d8a0303f5b53034"; + sha512.doc = "bfaf4232fc39c13fefd86c21b2f9f76cd93761c58e39c1420c601627e95adf9e6c5c06db73a0afda6621acef374089dd93afbd2a3bd761cf5aa8db29883375e2"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.02"; + }; + mkpic.binfiles = [ "mkpic" ]; + mla-paper = { + revision = 54080; + shortdesc = "Proper MLA formatting"; + stripPrefix = 0; + sha512.run = "e82a0f04441b08a8f5b2dc0bac9480ae9ae8c169c7e5a1d1795315d3e103cbf3a07f726eb41d7dd7b1ffd1443fe00bc686b37c62edb59481a110bfd34944daeb"; + sha512.doc = "6bf3856fced879c5dce5cf1442ed0302453f7a02ec30b4d1a2cd63228baeef58d11999d56f505c1aab6a78eff1e4671665da381b7e319a467e42f70c56cfc89e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mlacls = { + revision = 67201; + shortdesc = "LaTeX class for MLA papers"; + stripPrefix = 0; + sha512.run = "7d0ccccd52f39b97f5448674dd961dd230b93799f71871bab7d5cce5b77e60788029795436765b6678b4b9e89f9f370ace2a43c99a9c185c216335e7ddaaf5b3"; + sha512.doc = "c4ed81865684aaa5d15679ce667d41604a2f9d7431b06a258ec2d8f5f0f22aeacea5f944e39faca856cc84139b730d33f407147deb07f7ac5da70fb82341153f"; + sha512.source = "c8a602a2ab7dbe1c0ecef7a1d4288eea10b0d8e5bfc15319d31c2f417a6ea2190576c986088b8da8aaff317ffaa0f0f41d0025e8e16a02503f2d96a91835382d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + mlawriter = { + revision = 67558; + shortdesc = "Write MLA style documents in Plain TeX"; + stripPrefix = 0; + sha512.run = "67e9de777a464cf7ecdff6c821ff31d73f31f5f69cc5e6800d740ed6df296b5fc3a584b34e60be025f91b96a609e392198b67d386b60fd24deefb11746ecd439"; + sha512.doc = "7d05bea21e44c771cf86e94b03ff2960419fa99e44adb1e7cc9a2398eb0647d0a177ffb9e2b8bbc74775946e2b438c51b8dacdea916311c967a02c34dfd1a2fe"; + hasRunfiles = true; + license = [ "cc0" ]; + version = "1.1.0"; + }; + mleftright = { + revision = 53021; + shortdesc = "Variants of delimiters that act as maths open/close"; + stripPrefix = 0; + sha512.run = "d1423d7e794ff011e6bf436d85bc3d2d933263bee059cac910e1a3375140d0eb0f1682e38c675afe17607d71d253b656a81cc927d22f54a8add2df01571a5e95"; + sha512.doc = "193d3fa473d136c11ad8a1b4f707d286cb0243bd32c020c1c5343c23a5d6347c2ba2ccc5c11e5bf835b4666c8e4a0ca2d234661e155c0f5fdc32e7b85cf2d253"; + sha512.source = "365cdce5350ecad7f1ea2fe478ac4c7414c9e8c5053c480229cfed7a478f135cb033e67070f327956cb5aadf862762e270726bbeaf8e511b10fc96e996e06d64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + mlist = { + revision = 15878; + shortdesc = "Logical markup for lists"; + stripPrefix = 0; + sha512.run = "23466ef3b73d8476c69632fe0c701f3ec675250b534fb4451cb0dcaf93c30a649ca07bb58cfbac89054cc31cc1219daaa1e7f746e6689927573175d42f78bfc0"; + sha512.doc = "771f51f52e47aceb7da064a0bf8ba4b19f0255fbd14d3b6d301457ad0dea80836f3e4c449611f5574c12e87185ab5ac9668404c5f1f97100971293425c7ecd13"; + sha512.source = "6112422b62304d0dafb8e4fa43239dd0899327dc952db6d1179af684049b46482a30675b8c44be534213d9b2fd9ff6bab267997bb0b08102e35e1ebdeca9956b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6a"; + }; + mlmodern = { + revision = 57458; + shortdesc = "A blacker Type 1 version of Computer Modern, with multilingual support"; + stripPrefix = 0; + fontMaps = [ "Map mlm.map" ]; + sha512.run = "6fe8c67f768cde92e38741885c336786f65f9793fce0027b0476a8e45366e33c4a559c3bb6367014646e89f0ac39bd92219bc59921c3b3e0fa3a9c4314f2a632"; + sha512.doc = "bd5ac414d3b3ff53b059543d25cf0296d59365dc219748d849f89a085225d864361923b4220a0a989585d99e9dc221f9a4209b622be5f279e0f02e5e1cc2d966"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + mltex = { + revision = 62145; + shortdesc = "The MLTeX system"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dehyph" + "everyshi" + "firstaid" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "latexconfig" + "plain" + "tex-ini-files" + "unicode-data" + ]; + formats = [ + { + name = "mllatex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "-translate-file=cp227.tcx -mltex *mllatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "dehyph" + "hyph-utf8" + "latex" + "latexconfig" + ]; + } + { + name = "mltex"; + engine = "pdftex"; + options = "-translate-file=cp227.tcx -mltex mltex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "e04f33b83474e58c4725abbba21ae56659920ad2929faba7f25b47befeeb7e207e36888e1dbf7260ecc95c126e1732f6f5dced3d277db7c3889f2b08590b04dc"; + sha512.doc = "e9d5a1cfdc6183bf99ef369b447c73e9ec5926952a80a75708db4fc6343ffc1a10d599276c13f295005f7c8c56e2e35ad9edc9dee3ee06928fa8c7b267d82bbf"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "2.2"; + }; + mltex.binfiles = [ + "mllatex" + "mltex" ]; - formats = [ - { - name = "mflua"; - engine = "mflua-nowin"; - options = "mf.ini"; - fmttriggers = [ "luatex" "metafont" ]; - enabled = false; - } - ]; - sha512.run = "fa735fa117e7bd433339efbb709caa5fc25007088500dd5e4f6999cc417d188fd43435f74d526186880ac857f9bfc52e1fb7f1055974cea959e28536150b1a19"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; -}; -mflua.binfiles = [ - "mflua" - "mflua-nowin" - "mfluajit" - "mfluajit-nowin" -]; -mfnfss = { - revision = 46036; - shortdesc = "Packages to typeset oldgerman and pandora fonts in LaTeX"; - stripPrefix = 0; - sha512.run = "33206fb4cb7ce8f18050d713be415abb95323599270b2b91c886e2ac3f24a58786a480e5d4d1ad6ad2083456231eacf94dc769b26e6cae7288e996c6e14bea29"; - sha512.doc = "f8421e58ede77c8817679fcdcb43fecfc519427b3cb93ed2594fef5c8ac8124e0563a2182803a2a6bc417982df298abc7fe092f1cae5ed7583e2fa6fe94c8345"; - sha512.source = "2bd5aee80abf38884cc4a3ad6d6226243a6ffe0d2e879101aee56168a10cd0c7293eec7ccf53c7a7e8087ca94398e3f4ef38d71ccbbfe48677ffee3f8b813bc9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mfpic = { - revision = 28444; - shortdesc = "Draw Metafont/post pictures from (La)TeX commands"; - stripPrefix = 0; - sha512.run = "361983a020165d094bcd0fc9616be74bd2b5c72542b1e1b257b5ec42ac6be1175caf59c79e156da2bf6fecfe3746b4e33a4a8fc978eb124939ce0ffd2c383081"; - sha512.doc = "97ec26cc1ed8e181c7d69af264204772c9075e3650044b58cad938fd6918f9cbf5c849699e31846f437e41410492b67668a7ec33e848cf6b5fb9c2d52d7a7947"; - sha512.source = "609b960a70d47edbb814c981c5cb03b91fd19e905f8caed599be2488e0ed9ef0bfe01af79353015e0d6dd2fcda6810bde10ec4d8e993356bb7371ed2805988c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -mfpic4ode = { - revision = 17745; - shortdesc = "Macros to draw direction fields and solutions of ODEs"; - stripPrefix = 0; - sha512.run = "4f3a314afb6b1f8c4fb07421244f2a05747f5d24194659053c561ba24ed90f325e82ab9d97981af6455081580f75e9e8f75d11f06aef9e1c027ed0f9bf17696b"; - sha512.doc = "9d5f38873cd94fc3248b619f68e04bdb1824eb1249cf02e555a60c3e84dcab78d3e04f9451e1803943e898ed7f55e33615f673da8c58569219650976c25f0ae4"; - sha512.source = "b5de6dee490578bc460f76ccb606b5d62d4f6f2c43e2f9967085f1a323ba287cfc596da70905a40e1ac602074323940a9e42ba8096a9a35190ca280217b2e10e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -mftinc = { - revision = 15878; - shortdesc = "Pretty-print Metafont source"; - stripPrefix = 0; - sha512.run = "64fa5f38398a626d5a351be7ad866c75feb4549f836932dc936cb99f921e7b8abe5b3d6fc1e1e6c427344606ee5dacaf067d8678e7b199fa1ff8d5c94cbffa49"; - sha512.doc = "0846744cfd86bbcd8b6ad90d58bfe5788a79f43d05f3cf6f438fdef50cc4872ad8ec4d32005ced9ea9c424f3e86a799d79b0baf2a9544a3018531a99cd81fd5e"; - sha512.source = "50ca90a2f48970b3cca5552a361337ed138b4a9e31bca2766eb429cdceac2a09adc1cafa6c444c514fabe71c38ed82a63b847e1da014f2c131a15c362efaf09f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -mfware = { - revision = 66186; - shortdesc = "Supporting tools for use with Metafont"; - sha512.run = "f14b1f8876f8a4f2ba8954459c2a3739e0537d800fc1fde11aaaaa61400c18b9419edd3c7884ecac499da3efbd5219244c06ccab1efe17674b5458b464abd3ea"; - sha512.doc = "ec469dc655be20598ae40cdccd8360252cb216039cfcdfaab5f45d0276fee272a463f19db7f98f6d35b3e6930098536fe8eb4a453161646aa0ed33dd3f8773db"; - hasManpages = true; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -mfware.binfiles = [ - "gftodvi" - "gftopk" - "gftype" - "mft" - "pktogf" - "pktype" -]; -mgltex = { - revision = 63255; - shortdesc = "High-quality graphics from MGL scripts embedded in LaTeX documents"; - stripPrefix = 0; - sha512.run = "920784d4332e4e1635e089878a55848ef4ad82a7b23e24a1bc81f71a08bb7af411ea54710533bf1f429e506c4ca5e94855c73d890929dc558274e108155e1a71"; - sha512.doc = "a8954ba22a30368ce01329b930486c02b317375636d85c7fdb7f14cf032173ab3f7a28ff6261d20cebdb8995560d4c7f41c03ed6285cfcaa555d405a06891432"; - sha512.source = "63b874341f2e18f88862ec5e6cf7064e9d4219070d274f0daa2dbacf8eb0eee5b4206167bd86520d10ffa0316d7ffe93615604932924b4cc04936db352073d1c"; - hasRunfiles = true; - license = [ "gpl3Only" "cc-by-sa-30" ]; - version = "4.2"; -}; -mhchem = { - revision = 69639; - shortdesc = "Typeset chemical formulae/equations and H and P statements"; - stripPrefix = 0; - deps = [ - "amsmath" - "chemgreek" - "graphics" - "l3kernel" - "l3packages" - "tools" - ]; - sha512.run = "5b85541e565ad80891ba56375bb3c2d6720c7e0acc9e96d611626eace4daafeb078fe08fe4e6db4875823bf570f8af1dd4b319d38b41fc4c3ae9696772e7996a"; - sha512.doc = "487a5d90782d1c0814c7110388e5277e70dff9adc82048f8b5c33ffbf8c82e9df73293b4ab78bc83c2ef23674e341a2fb15f6b3268d1fdff1aa57d4d3813ea1e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mhequ = { - revision = 64978; - shortdesc = "Multicolumn equations, tags, labels, sub-numbering"; - stripPrefix = 0; - sha512.run = "bf1e2b11a9b4930a9ac364ad1b6e6f6097f346494196ef64fcb76dce00c9d3c3d145e852ddf321c0c8ee7444d52656e2db27e6a80c97b4c18c5fae283b8fd88a"; - sha512.doc = "aee8ac5b73692b37a9f0541c07787eef3dc173996c92aca250c35227f095416dace1e18be9fe6f2ae955610dcca9fea031a6b787fd2185138d7668d0cd269caa"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.72"; -}; -mi-solns = { - revision = 49651; - shortdesc = "Extract solutions from exercises and quizzes"; - stripPrefix = 0; - sha512.run = "ac5beb872c78675bc9df379f8a2afe533647a1c39781c57fed2cec6e610cafbbb45a4fdcbd9826cb123a584e121ff752633d6c990109bb1f619b1d9fac6906de"; - sha512.doc = "cfd36e0a1476e0d148fb36f350ec236d57beb2c0b27f08eb56f69683790b16425a6f95b4f93a010fe0d450863fb34a7eb31b1c8e40fbe5319df128439dfa5372"; - sha512.source = "cf41fb6338270f2fbf56b33b9d0b3b6904f06a84b99dc8fc0613e10644b3f198b22634cd82b78bd50b236415ec6b8d46c9d0d99728480782459f514d2086426c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.6"; -}; -miama = { - revision = 54512; - shortdesc = "The Miama Nueva handwriting font with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map miama.map" - ]; - sha512.run = "b9a5416b1de4cb487575894f3dacac8b07eda2b37b90fa0c5ca0ebc5d9d412c896fb7cd028c6af5627368c44d442670990949c9ceb9fe3a60179d3f70874135a"; - sha512.doc = "a76db9f49bcdc225d9206ebaa3b7ca42bc7148a44d1d66b72d2033b68fe9a1137eec265316d3a24077e3e3712687e80ea948d4f1c9cd819e6a4afb8c9bbf91df"; - sha512.source = "2b9e1a649f944ce6b36b1dc09d28112f7d5ea3c0a26a1f292576448171aa2f51449988ce85703ba7c2098f6dce62093ccf5af256bff1993268f31dc884bd3b63"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.1"; -}; -microtype = { - revision = 66587; - shortdesc = "Subliminal refinements towards typographical perfection"; - stripPrefix = 0; - sha512.run = "c80e6bb2c13432ecae2be22622e3bbfe82342ca138f61870cb8f3c2d7ec93f431bee5ae0a9619d4ad6a842b0752ecb73131452d6ac5c5fba7732ad4d5c979fa6"; - sha512.doc = "6f7eb5d18fc2864c0bff52f7af82b3284766cef64d2ba8f4aa9f2f6d26af3e47e3be9d486f29e646e92ca597cc1129dacb5d1c03dbe155503ae046e4badbecf7"; - sha512.source = "77d5f0e22a97ac0291e891df206618460a2672fc36c79a91db2b5212092d65acb0e1cbe0ecf82e0a31704baef207a48f817b5fa65abc4d6e6c031acdd85ed602"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1a"; -}; -microtype-de = { - revision = 54080; - shortdesc = "Translation into German of the documentation of microtype"; - stripPrefix = 0; - sha512.run = "cde294b4dd73d5948ef16b314e70745eb98bed30b4343c04885686533e2457a4aee07616e84eba6b0a552fb342331114de835d777d882308bdc1dba75927b17f"; - sha512.doc = "fa524a0225a57fc60bbad95cdd7855f4ba73691a6787c906ef5091183425a650f583340d65ce8b11792046c767b0b31e5131c62dcc281898457234134aec291b"; - license = [ "lppl13c" ]; - version = "2.4"; -}; -midnight = { - revision = 15878; - shortdesc = "A set of useful macro tools"; - stripPrefix = 0; - sha512.run = "8f8bf1d8d3c5c12147dd61a4d65d311552877a9f5eb7ebcce71602dc69ed5459187134d3a1e346a15255f2c4ba57f054c3d020817df0d5d89c7fc2f216b19cc3"; - sha512.doc = "0c594cac3c7e8d3064145f1b2b088d74a5445b7a7506fc2629b3df6f63419b025779e348116f7dbc859d7c406d87e5b5988d529e5da61d01b0759b0f0fec2382"; - hasRunfiles = true; - license = [ "free" ]; -}; -midpage = { - revision = 17484; - shortdesc = "Environment for vertical centring"; - stripPrefix = 0; - sha512.run = "9a13760b776cdce28cf3eb1e28e957265d7d4e83b23234f1590285bc83409f1d5b09040fc6cacd3b9f7a5ec2f61a4e5431fea92a5fcf20032c7bb919ed59612b"; - sha512.doc = "25f41bb8cb12c6d310da66d36032eb4933248f0c84a67216cd0981fda7e61343c0dee03e96f522bddf969e925e6cf495754e52e863672f1cab4e94ae3b0400cd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -miller = { - revision = 18789; - shortdesc = "Typeset miller indices"; - stripPrefix = 0; - sha512.run = "a1415d82a2a81c3dccdea1b59c4c0e8d2cb3902dbc6816cf7615fa3e571de26168a6a066f52bad94c38595102afcd1447721095bd084befc20b3fb3ad420e129"; - sha512.doc = "3f888fed2b909c269ead9e5191a788828048a21103c881a9b769fb0e8a3c0f3e6c41467827143f6b79a45d2497e3ac21d5c6da8727be3c987ab8a1fdbcec59ca"; - sha512.source = "06e15ff6c146685a8b4d13c5d4e23de4ea343afe684924694f86104f362df7dfaa975b25e850b685e05efeeddf2ed079038cafff8a495116f27dd756e4dceab3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -milog = { - revision = 41610; - shortdesc = "A LaTeX class for fulfilling the documentation duties according to the German minimum wage law MiLoG"; - stripPrefix = 0; - sha512.run = "126942c7be2217843d5dd0a6a927d1a47537ced3b1a083caa54b4905625b57238cc0a3a8d1652da076144b8c2469f418077eb4051527e5d351c2d95f3d3a5f79"; - sha512.doc = "251b73ab0f52ff2672733c3855289e012965151e07ff447da373bea083b1ff6bfeff38adef72419f03ca153545fdb90bb18f3aa254fa7b59d3c5c061ec5d15ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -milsymb = { - revision = 66697; - shortdesc = "LaTeX package for TikZ based drawing of military symbols as per NATO APP-6(C)"; - stripPrefix = 0; - sha512.run = "fdd01cd6a9a5b27ceb741ba689a82f1e695132d78b59c818fcf2e3ce63526109173b978246b1b556e355237ce456b6f632effd555c27b3096ecc1cd5f5bd22ed"; - sha512.doc = "7baa8152b3968047e66990eeeb94b601a0667a7db598a4403930328f6fa18595c46979772b8b496dd7b076e99e19969d22c8a3f4f19d3b82f01bd84bfa920db7"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.03"; -}; -mindflow = { - revision = 65236; - shortdesc = "Write your ideas in a clear way"; - stripPrefix = 0; - sha512.run = "35d1b4fd39bb64fb1e9c89ebaf33d54051f0f550967362dee15294aeac0066f92b0437e688b5065795dc19a680a9f26c99cb1647c3ddacbe0054ecf553c2f9eb"; - sha512.doc = "4ad9f6c4e024f782dd1f0ec2e4847c45690c4c39410395cc4fb122f340b2dba0dbea5664f65640d2fc53ea301bba9e5758c7e29f3556511e307b6c0c2c46653e"; - sha512.source = "1a267ca0f437c707ba05b65aa4355ad721aa2de26518143aae4e752ce1dc69d12f6e4b42b670c032d82ae15f5a6753cbc29f56bc44f4bb48d63ff6dc0afb9e1c"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -minibox = { - revision = 30914; - shortdesc = "A simple type of box for LaTeX"; - stripPrefix = 0; - sha512.run = "18d409728f57cc2e423b5c74ad7ff4a9e93f2405497a96024769fb01f7604e019d914365f82fa5908bb679ce4a48cab64fd4435b531ef72235067481b8dbc96b"; - sha512.doc = "0404b375fb0ef258d0e5acb8e7a78a60a55d08ce7339b9b63b1711dcc6d40b6f302b0f35f7d1fc8bfbf431b66bb5aaa2c94e92ee8e788a5f2156031425c0c4a3"; - sha512.source = "6aafb14003afb2ee18390391e15fb00f73a16f568158d72fea348e7052bf1ec5f25cd446569bb3c6dd815577fca7b2522d4474681b560ee3ea65b6053509df92"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2a"; -}; -minidocument = { - revision = 43752; - shortdesc = "Creates miniature documents inside other LaTeX documents"; - stripPrefix = 0; - sha512.run = "33a7938dc25833faef05245d00219ad4d94902d1b5a8f63de8c08448da1f4ddd8e305cd261a3051df919b097f0b3b82081b57fa420e773dc89a1c8cb801ba463"; - sha512.doc = "03ac398f6f8e79003b155434992a53b1485032ef779e5fa05a43adf7528fec1966ba94731ab2fc11cdfadce51bfca6ca9d1a88f882ca87f08d8e4077896af4c3"; - sha512.source = "556f1c482366f1bf2bd6e2f4e92f0fb811d97e91e057994605a2794f9441f2df35bcd2e2dc4d6218e980e921b7d7a03e5ea2613b6d27d8258985521ecde2dbf0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -minifp = { - revision = 32559; - shortdesc = "Fixed-point real computations to 8 decimals"; - stripPrefix = 0; - sha512.run = "412bbd3466eee82a99b43d6f4a5998a0a22b20c2d51621368ecba1084010a5333bda9e221b07dcfc6ddea8810edd0dcf60c2be6f926ca0da33071e6a812108d9"; - sha512.doc = "56e1b71f8289c126df12091cf155c8c05f05a391abd40ff6ce0b84bb7620630a80747e23c25bbb4276aa5d110314076f61da72683b6846a44a53ad3515b91670"; - sha512.source = "32cd837a6c750ae92f9662db289a5479a102d09058bb4c85605820d6ced83f237d684fb07c9ba59f76062d6d383d1b45485ac2f2ec4e5bd43f780254facac1e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.96"; -}; -minim = { - revision = 70320; - shortdesc = "A modern plain format for the LuaTeX engine"; - stripPrefix = 0; - sha512.run = "5c2905e433d296d4645a7f4b9ea4e8d952d3b97b3977a88dfbdb36278f399ea9be02a14f866c4615290a6ca617cd0d29498f330239832fcc2d2178bf6dca7515"; - sha512.doc = "35ac9d101c958af4ffe7909762edb173ad7af619d870dfe44408634160446568cf480c209ef5546142d390e89a155d902ec6dd921cc33511e5d84cdbd68a2a4f"; - hasRunfiles = true; - license = [ "free" ]; - version = "2024-1.5"; -}; -minim-hatching = { - revision = 62395; - shortdesc = "Create tiling patterns with the minim-mp MetaPost processor"; - stripPrefix = 0; - sha512.run = "3d6720c4bbce847f1ca08279593398d162c80c14034ba6b8d168517ab30af883ce4fcc6cb0cea4dac0b0720be8fb8f67ddd131a026ed6ca5ea46182af1c41110"; - sha512.doc = "895a0b7731af0ea67e581ff4cc0208aca12d04ca862a15bc897d6e104a1bd9d7ef27f3a8c2a24c8533f16d0ceae1eab05a3dd923ae829529a223ba76d94485c1"; - hasRunfiles = true; - license = [ "free" ]; - version = "2022-1.1"; -}; -minim-math = { - revision = 69352; - shortdesc = "Extensive maths for LuaTeX"; - stripPrefix = 0; - sha512.run = "b733b6fb53b450bcb4afd2265f65e64b6087d08d385a746ea78720efedc4d1aa14bf6fba21fcfdbef7a331d1c657674caace33f9a213d34d0b56604a4d0067ff"; - sha512.doc = "d3754968215fdee2a31db13934c22a06998f93a11b80ba46e30231176e1583a8df86dcc8ed91b582a8b6f1427d9bf121f0f43cf297edb3e4a79250b9d703cb76"; - hasRunfiles = true; - license = [ "free" ]; - version = "2024-1.4"; -}; -minim-mp = { - revision = 70322; - shortdesc = "Low-level mplib integration for LuaTeX"; - stripPrefix = 0; - sha512.run = "99fc9ec8eec155bf404274bde2981ab791bae041860e184242cf5ac06b7c0a149ce70adfae1b2088a773114564afe93ece070cbae5fd77088a637bc27f830c95"; - sha512.doc = "ab83c7e366b87d42ae6351ef505c21c14cd39fbde5020f59595ce3534338b38cf2911496fb196226d012ec0337424047c158477721434fa0f08e2207b0fa5e1a"; - hasRunfiles = true; - license = [ "free" ]; - version = "2024-1.5"; -}; -minim-pdf = { - revision = 70321; - shortdesc = "Low-level PDF integration for LuaTeX"; - stripPrefix = 0; - sha512.run = "da700da69e8f6e82c47a08b0e54fa0cb959fb7950544a9dbd49d9b0883620434144932301c2dc68f03d45b5f7d3b6e9521a7d66fd820f8b91c6bd8364e0338e8"; - sha512.doc = "f9e3735b6a493c2ad07b1b39c1393eb39dce3250afa358f15c6870fd02c527342198f8198b710db298baac4309544fcb457589aec75e4f54a5817fb8072fab7f"; - hasRunfiles = true; - license = [ "free" ]; - version = "2024-1.5"; -}; -minim-xmp = { - revision = 69352; - shortdesc = "Embed XMP metadata in PDF with LuaTeX"; - stripPrefix = 0; - sha512.run = "4df50df08721b8c6cbc2314a36f08776766164c57fffa387d4804afae2fc1f35deb386f2c01e81da8a18b535c7103b7e07ffc51b37d4c621d8c5ac5248f4d960"; - sha512.doc = "a6c524225e0e9c5ffe620950474ea7f0f16780d555e354a14885d81066228d350a14399a78cda455677fd116e752f3637e73ff3e9aa342ff4036363805d736cf"; - hasRunfiles = true; - license = [ "free" ]; - version = "2024-1.3"; -}; -minimalist = { - revision = 70329; - shortdesc = "Write your articles or books in a simple and clear way"; - stripPrefix = 0; - deps = [ - "projlib" - ]; - sha512.run = "899476ca5e7ef145520819cf365e1afd9056b377e5eb3d64e63743d1eb041e6775d9d6ea616e241a6575e57789eea70dee3651a1dc4098c32b72021835d330f8"; - sha512.doc = "9f887a4043097a7fad52699d2568bf3e534d27df57f0567e392560e5153d7706068f2835ed03f5543bcb8e9021393e526b1499180bf00da851ac661cc86e2443"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -minipage-marginpar = { - revision = 15878; - shortdesc = "Minipages with marginal notes"; - stripPrefix = 0; - sha512.run = "acf33aac7dea3c20986a9ed1f76efbb470d9fa1cbd31f29ed4fddd0e16835ace1946278fcfd04ea179122e603f63b269872953e40f8a64843ae8e60ded769356"; - sha512.doc = "20d503697a246b8b56a71cf324e4daaec436b62e9c3b9556095670c2b461d273e8b77e24da3cada37106c350304827a37bd6f658727373e384f11fe064e07992"; - sha512.source = "1050833e51b5a00963b616b496d9b18e49cc8ded901ccdffbaf949eac12fe8d31219c650936c083767e39a39dcd08686ef049ce11abbaad5daa998f4e9c1b7c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -miniplot = { - revision = 17483; - shortdesc = "A package for easy figure arrangement"; - stripPrefix = 0; - sha512.run = "2c5d08c2476871dd182bb320c50ec96f202ef65a417e65d1de8aec391fb60dc66c1e9e4642ad2207f7f4bfdd12e83bfe2cf75e9fa4f0fff0f4ee72769f7ca84f"; - sha512.doc = "6ae8000b3d0ef50e37dfbda399396a42bd348d6ed9ee485ff01ded9d850693f43b0c1945dfde93d9ea0f17494ac2e03391824f2f0c0eff67355c3d3f3ad6cccf"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -minitoc = { - revision = 61719; - shortdesc = "Produce a table of contents for each chapter, part or section"; - stripPrefix = 0; - sha512.run = "e2d2503ac4888198c56e9007b20f489a04e31fcd29c946c5504b7d193506fb58e2577c6085be5d9d17c6f5b21ff77208810385c73688468f3988f0b651fb81a4"; - sha512.doc = "15955f17dfe2916081156e1464299b598f1bba780518516f6bee7da55cd1c45e2fc90c27402ba9d8ab4a994ba5ea1675ca9593699792a08407cda5b3a2230908"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "62"; -}; -minorrevision = { - revision = 32165; - shortdesc = "Quote and refer to a manuscript for minor revisions"; - stripPrefix = 0; - sha512.run = "d76224254aa18dd80f9bab56f055fde5bb7ee6b5c3dd88e6ce19667c939fb2dbd1e5cb987522a3f1c50082f46ee20cf918f1e01fb00f588ce11d30d300fcf574"; - sha512.doc = "ab1484f7ec214d43b95a8bd5cd78ee28bf0055d99d8c63c424c5c1db1c77b41a8631ea35bef745ab0399dd1c8dd9c9ab66b60033bb151f46afb023b6b5e1ab44"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -minted = { - revision = 69163; - shortdesc = "Highlighted source code for LaTeX"; - stripPrefix = 0; - deps = [ - "catchfile" - "etoolbox" - "float" - "framed" - "fvextra" - "graphics" - "ifplatform" - "kvoptions" - "lineno" - "newfloat" - "pdftexcmds" - "tools" - "xcolor" - "xstring" - ]; - sha512.run = "d9bf72028b4aeb2febd7e2ee8f44297f047b5eab76fca8265a56dbcde4d921946bce15af5a89bc110b8ba25d234925172822e045670cd9795f13e38cd0e90f18"; - sha512.doc = "6ddf64e40d3d28ca2bedd8a8a9789f1839c63a96f5aee3f71155722876f8ddf0634c2022ae4c02e1e9336a76dc8477994654d20e9d5949f2054017fcd09a9146"; - sha512.source = "2cab20988a7fae52fdeacfca9e0f30fb1d471ea1a93f7f76c6812f9c6d15e5c4949aac1a904341be30387ea1030c67100cb696a861b114bdf8b7d348c9d1a808"; - hasRunfiles = true; - license = [ "lppl13c" "bsd3" ]; - version = "2.9"; -}; -mintspirit = { - revision = 64461; - shortdesc = "LaTeX support for MintSpirit font families"; - stripPrefix = 0; - fontMaps = [ - "Map mintspirit.map" - ]; - sha512.run = "18167b9d0b5c167e2679cfb135812e3cbc20a90a182acb3eef15a54f4029298ebb39f6db626b5cbd8368389c9f0656f7575eb4f1970fd242d77d976762ca8d5b"; - sha512.doc = "8a7855b5cd117a5a11eda118b8a4b08eff4183a427655c501c5e3c40e1e9617397d58e6622058187a48d04948fad9164b866e58c76080404d7bdf4ff9fbc4d9b"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -minutes = { - revision = 42186; - shortdesc = "Typeset the minutes of meetings"; - stripPrefix = 0; - sha512.run = "3abd6c4963ceec3cf073048c21d2abc236d58f522000195fd459c554c10d2af9afaf772b0fd1545fdf72decbc7e1c62a0bb12d7bc1dfd9d5b025f5131ca5f145"; - sha512.doc = "a069ea537eb1fc572c842a26dd406b1ef2f1343ef6066d266642dfe37515a3679c3a9e64eb37e1e992fc40281d855b817edf9116aae3922abc60e3c01106e3da"; - sha512.source = "09b6260de696981f020835c61e20f23bfb81404df44af477f62341b9b07c65a1be58098d33dc876d6f07f3a5aaf6df25c8e3e7707c0f238ae76094ff0bfe5a2e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8f"; -}; -mismath = { - revision = 70260; - shortdesc = "Miscellaneous mathematical macros"; - stripPrefix = 0; - sha512.run = "21714883ae8a8640bdacf7c70b06153914cafa03ca546902017d98b24931d9cee041197fae2b31b317917351294addd8c9531c80586aa14924cd57120f37780d"; - sha512.doc = "faf0bcb6b8f2c9ac698bdc3df87001dfcc7488449972bfd5a4ec2fa619d1ab88e9764f4b9773788902385d6887d56a9d51edf16631dea8a0379921f380996878"; - sha512.source = "4c8a203150e5c7c8a291f57cd5a87686c05114d220d427ff34d4255542a9f02bdada4805a28edf7deb479a4529ff841f89253043ae648a55f650dc6f212efe25"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.12"; -}; -missaali = { - revision = 61719; - shortdesc = "A late medieval OpenType textura font"; - stripPrefix = 0; - sha512.run = "552f53302060b3f4c764a669feea4fe1dbadfa3abf53c226f9fde2d0e876bc8992ff2dbd4be6cd3e261ab0e01ed4d1ad2b5a38c2cfb780c4fc099a79ae52b46f"; - sha512.doc = "c80c201b7d3fa5808bc337415e86fe7e009ceccaf8020e587fae72f7024452f7c02b65ce48b2e8543c9796e8b3ea6431e0b8a5f1dc25b5adbd6f2ae7146e75a4"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.0"; -}; -mitthesis = { - revision = 68732; - shortdesc = "A LaTeX template for an MIT thesis"; - stripPrefix = 0; - sha512.run = "7f7fb74329217ceaba1cb55e8dc6d52216327991f397b01b7603d8a797ad214bb0f62c51e237a14e388ba5110d558716436218a511647336115b9653c61fa801"; - sha512.doc = "315fe938373d4fca5cb740067855cf38b52c00b49926baf2a61613ed5353bb81e4b156bc43ee3c67dd8414d5cb9f9fc1b36a215d67b04e57ce4ad4967456a021"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.11"; -}; -mkgrkindex = { - revision = 26313; - shortdesc = "Makeindex working with Greek"; - sha512.run = "bbb0b306f30b4fe898f5d5bfdcb1eaa4d2d88a95cfa1ea0da51957aad1de028928562c930180f6c0a7d66b5cdfd804d52afbd229e7ca43173477a229cefff192"; - sha512.doc = "5a5b14d4282e97420f796456155a71c23a44d4197d4d92bfea1f0f20e95b42e506c7be3f2b0aba37508415341e999522bd823c649cc6259a6e26d42399c6b8cf"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.0"; -}; -mkgrkindex.binfiles = [ - "mkgrkindex" -]; -mkjobtexmf = { - revision = 29725; - shortdesc = "Generate a texmf tree for a particular job"; - sha512.run = "c0dffdb276141b78bd2c47e6d2bfddcd13c1800d3a0806a05ca1fba72a91621364b827801430bc757601e07f2a5130366ade49d7ac1df27901fbec29827739c3"; - sha512.doc = "3ef5c333cedd5104b63c1457fff2eee40aea7d1f1b187d34ce4cfccd5b6bd38809b7686dc7b41a147fbee2ae0e951470f3ae574bd3c10a5f9b6fb76b686ce4f5"; - hasManpages = true; - sha512.source = "7f9de9bafb890d12ef2f07d3b8596dc31c4bb97079f826c9efd4f318383f64d8250099a937d8d692fecf703e626b42f942962f4d906e705cf4b0155e354bff0f"; - hasRunfiles = true; - license = [ "artistic1-cl8" ]; - version = "0.8"; -}; -mkjobtexmf.binfiles = [ - "mkjobtexmf" -]; -mkpattern = { - revision = 15878; - shortdesc = "A utility for making hyphenation patterns"; - stripPrefix = 0; - sha512.run = "0395c9258e6c4a8459e69ff2fbdfe511b0c6863e02333d9481a8a1e82362cf9e1be7e89e7447bda497e7ed2bc18e1986e0a5461e9f49c63ff869f39a4da4f007"; - sha512.doc = "8232866143444fab1ed1f15255dc5f8c1c5050812e2882d2e20636bfd300216815a53aa03cd4f69ed7f45aab255a8efae9bfdc10df6b7a246d36d4db075204ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -mkpic = { - revision = 33700; - shortdesc = "Perl interface to mfpic"; - sha512.run = "7814f14293e10a23bc9348dcaea9af326ab4dd93cc55865320706984e50883742381b5df3e77774e7a63fbba7ebcbe0fae7268a3d1a34ebb2d8a0303f5b53034"; - sha512.doc = "bfaf4232fc39c13fefd86c21b2f9f76cd93761c58e39c1420c601627e95adf9e6c5c06db73a0afda6621acef374089dd93afbd2a3bd761cf5aa8db29883375e2"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.02"; -}; -mkpic.binfiles = [ - "mkpic" -]; -mla-paper = { - revision = 54080; - shortdesc = "Proper MLA formatting"; - stripPrefix = 0; - sha512.run = "e82a0f04441b08a8f5b2dc0bac9480ae9ae8c169c7e5a1d1795315d3e103cbf3a07f726eb41d7dd7b1ffd1443fe00bc686b37c62edb59481a110bfd34944daeb"; - sha512.doc = "6bf3856fced879c5dce5cf1442ed0302453f7a02ec30b4d1a2cd63228baeef58d11999d56f505c1aab6a78eff1e4671665da381b7e319a467e42f70c56cfc89e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mlacls = { - revision = 67201; - shortdesc = "LaTeX class for MLA papers"; - stripPrefix = 0; - sha512.run = "7d0ccccd52f39b97f5448674dd961dd230b93799f71871bab7d5cce5b77e60788029795436765b6678b4b9e89f9f370ace2a43c99a9c185c216335e7ddaaf5b3"; - sha512.doc = "c4ed81865684aaa5d15679ce667d41604a2f9d7431b06a258ec2d8f5f0f22aeacea5f944e39faca856cc84139b730d33f407147deb07f7ac5da70fb82341153f"; - sha512.source = "c8a602a2ab7dbe1c0ecef7a1d4288eea10b0d8e5bfc15319d31c2f417a6ea2190576c986088b8da8aaff317ffaa0f0f41d0025e8e16a02503f2d96a91835382d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -mlawriter = { - revision = 67558; - shortdesc = "Write MLA style documents in Plain TeX"; - stripPrefix = 0; - sha512.run = "67e9de777a464cf7ecdff6c821ff31d73f31f5f69cc5e6800d740ed6df296b5fc3a584b34e60be025f91b96a609e392198b67d386b60fd24deefb11746ecd439"; - sha512.doc = "7d05bea21e44c771cf86e94b03ff2960419fa99e44adb1e7cc9a2398eb0647d0a177ffb9e2b8bbc74775946e2b438c51b8dacdea916311c967a02c34dfd1a2fe"; - hasRunfiles = true; - license = [ "cc0" ]; - version = "1.1.0"; -}; -mleftright = { - revision = 53021; - shortdesc = "Variants of delimiters that act as maths open/close"; - stripPrefix = 0; - sha512.run = "d1423d7e794ff011e6bf436d85bc3d2d933263bee059cac910e1a3375140d0eb0f1682e38c675afe17607d71d253b656a81cc927d22f54a8add2df01571a5e95"; - sha512.doc = "193d3fa473d136c11ad8a1b4f707d286cb0243bd32c020c1c5343c23a5d6347c2ba2ccc5c11e5bf835b4666c8e4a0ca2d234661e155c0f5fdc32e7b85cf2d253"; - sha512.source = "365cdce5350ecad7f1ea2fe478ac4c7414c9e8c5053c480229cfed7a478f135cb033e67070f327956cb5aadf862762e270726bbeaf8e511b10fc96e996e06d64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -mlist = { - revision = 15878; - shortdesc = "Logical markup for lists"; - stripPrefix = 0; - sha512.run = "23466ef3b73d8476c69632fe0c701f3ec675250b534fb4451cb0dcaf93c30a649ca07bb58cfbac89054cc31cc1219daaa1e7f746e6689927573175d42f78bfc0"; - sha512.doc = "771f51f52e47aceb7da064a0bf8ba4b19f0255fbd14d3b6d301457ad0dea80836f3e4c449611f5574c12e87185ab5ac9668404c5f1f97100971293425c7ecd13"; - sha512.source = "6112422b62304d0dafb8e4fa43239dd0899327dc952db6d1179af684049b46482a30675b8c44be534213d9b2fd9ff6bab267997bb0b08102e35e1ebdeca9956b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6a"; -}; -mlmodern = { - revision = 57458; - shortdesc = "A blacker Type 1 version of Computer Modern, with multilingual support"; - stripPrefix = 0; - fontMaps = [ - "Map mlm.map" - ]; - sha512.run = "6fe8c67f768cde92e38741885c336786f65f9793fce0027b0476a8e45366e33c4a559c3bb6367014646e89f0ac39bd92219bc59921c3b3e0fa3a9c4314f2a632"; - sha512.doc = "bd5ac414d3b3ff53b059543d25cf0296d59365dc219748d849f89a085225d864361923b4220a0a989585d99e9dc221f9a4209b622be5f279e0f02e5e1cc2d966"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -mltex = { - revision = 62145; - shortdesc = "The MLTeX system"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dehyph" - "everyshi" - "firstaid" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "latexconfig" - "plain" - "tex-ini-files" - "unicode-data" - ]; - formats = [ - { - name = "mllatex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "-translate-file=cp227.tcx -mltex *mllatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "dehyph" "hyph-utf8" "latex" "latexconfig" ]; - } - { - name = "mltex"; - engine = "pdftex"; - options = "-translate-file=cp227.tcx -mltex mltex.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "e04f33b83474e58c4725abbba21ae56659920ad2929faba7f25b47befeeb7e207e36888e1dbf7260ecc95c126e1732f6f5dced3d277db7c3889f2b08590b04dc"; - sha512.doc = "e9d5a1cfdc6183bf99ef369b447c73e9ec5926952a80a75708db4fc6343ffc1a10d599276c13f295005f7c8c56e2e35ad9edc9dee3ee06928fa8c7b267d82bbf"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "2.2"; -}; -mltex.binfiles = [ - "mllatex" - "mltex" -]; -mluexercise = { - revision = 56927; - shortdesc = "Exercises/homework at the Martin Luther University Halle-Wittenberg"; - stripPrefix = 0; - sha512.run = "9af80a432fdcafefdabe9697cdfc16dcdee9f6a15d85d3e15774860e94bd579ad523c370b289e823f82372dfaead086ae0ed175fcdc51cafa53bd98076a8664c"; - sha512.doc = "bafd00d7a14ddafeccdfb2bb4df613dc0ad6428445722b29ba6875d0dbc3feea9ab5ff86d8e7799f4a907840c584c2e37cb54e89b5d978e67b8f7e4b7fc7ef51"; - sha512.source = "aebb67b8257f675b1237a362ae5ddb523d983717056915db5e482da90fd5674d7620aadc9b81b2667c9e78ad590b2cf670463eada81154f379e5693f411bc3a6"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.0"; -}; -mmap = { - revision = 15878; - shortdesc = "Include CMap resources in PDF files from pdfTeX"; - stripPrefix = 0; - sha512.run = "a2427b9863ef37385507783dba7bdfd65bf022d1c7322e7560b78222c3d4e0ddfccfc70aa927196e64ca1a520e985eea8cb78a4129a39e73a8410bc210b801bb"; - sha512.doc = "95a71c9a9b9cd46c1723c986ba41c29a7204fada2cd7bdd14ebfe5e0c4e1b06106f9c13469edd9caf0b94615bfbea9cc8a1f56a4f83cec37de481b39d2b4bd91"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -mnhyphn = { - revision = 69727; - shortdesc = "Mongolian hyphenation patterns in T2A encoding"; - stripPrefix = 0; - sha512.run = "e580c984d9a2242eb7f3a356b222dc6fc4f2fb1e6194f09086e265e253746ba1d94cff324a30c473724410d1d6b0bb7b8bc162cadb63ed96f0837e996c39f988"; - sha512.doc = "3645bb53bc2aff292dd5a70e3020898b969422b9e21fd11354e2ce60a6c7e668afe149263ee02e3588e0c3803c9568d999a6a6bb067a5941ec288923e167b2f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -mnotes = { - revision = 63406; - shortdesc = "Margin annotation for collaborative writing"; - stripPrefix = 0; - sha512.run = "834350f6b4bcaa9b84c18d526072ebcbb260c501b08fb81fd40d3d4ebe015392ec94f6dfcb0fd751716f213afbb4615bfa3e1c729eca416c9d499d0eb784686c"; - sha512.doc = "198f7b4e402a71e6617a1c7a92a54fd2a742c8c1748bfa17f71102a833b1fbb656dd5b85f7f7a58bfe05588525e07cf978278d6758448c4dd69d48275eb0be01"; - sha512.source = "db27a6007ca0bc687bef6298246d5a3a72c232c8728f3dfc8d0f8c8fd62990d98d9e13b57916ac1a4562cc521610f2625f90172b76afcd4b5600e7c571b9a1ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -mnras = { - revision = 68878; - shortdesc = "Monthly Notices of the Royal Astronomical Society"; - stripPrefix = 0; - sha512.run = "cb8e7cdcef07bead94509ab42af1e3d6a966b7266b75473f5a6107d2fe7f3f4c2f732c9544072def55d923883b5ad495a166cb128bf67e10211919be9f4fdda3"; - sha512.doc = "be0eaacc684772a599ef62a782d73b41e0e9963cc9ab0624805cac56af8b8f8dc529405588c687a018ffe888b643902ddfbd0f833cb7cb67a3053bd5c34e373e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -mnsymbol = { - revision = 18651; - shortdesc = "Mathematical symbol font for Adobe MinionPro"; - stripPrefix = 0; - fontMaps = [ - "Map MnSymbol.map" - ]; - sha512.run = "68df6dcaca1d2f3b743c62e205a22427152ec6ac1deaa126e7511842ad7817ba4a7a232b72b45c6dae88d930837f46597c5f89e50b1057ba313a590157342ff5"; - sha512.doc = "bf06a1534665ad50d33073e5d7332337c05f5d5315ba41af399f73f98d54b22a0610c65fa0e96b311925f40bebc1458fd0f0fa9c5fb41330f6d0b9b49aa12aba"; - sha512.source = "1d622e81bfa0c2e61ab64f058a356e66c98f75a2511728bc49c6cb3d998caf132def2f092db7ff18b4283829e7c118368fb09a39ba2e9c05b0a0be5e4cada210"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.4"; -}; -modeles-factures-belges-assocs = { - revision = 67840; - shortdesc = "Generate invoices for Belgian non-profit organizations"; - stripPrefix = 0; - sha512.run = "0b0e546eef6640b70dbb07bbe6401983fd0547357dad47a854b4c87119727d79f5ef54789394ebd5923474d2ad95e59a55d9340cf84811b5f2d5a94e406e8c7f"; - sha512.doc = "0bee390919ce8ce6082c2373f639db7de1029d0830d4cf9f1c807ef044e0ba27c8f0e4dd37677df63c03b64ad00b27825cd703973776377f844324846a908edd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -moderncv = { - revision = 62128; - shortdesc = "A modern curriculum vitae class"; - stripPrefix = 0; - deps = [ - "etoolbox" - "fancyhdr" - "graphics" - "hyperref" - "iftex" - "l3packages" - "microtype" - "tools" - "url" - "xcolor" - ]; - sha512.run = "988cc5f400af4ecdfc0730a63d7f2a13fde81b9120f198622a5e2d145ca94e1d5bc952e261ef2f4cacefda8a23626119975fd1e00b44f4a66b1fbb7f4c011d40"; - sha512.doc = "9527fa84fffc4eb2ac92dab59cf0e5ae87a6f5befd4ed05acdd85cc7050dcc669f8b814ef928e69bb1c1e8bb3bd774aca1f85acf6b750a1c9555a3165eba0281"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.1"; -}; -modernposter = { - revision = 47269; - shortdesc = "A modern LaTeX poster theme"; - stripPrefix = 0; - sha512.run = "d631f058a0a17a841d4026c43fd086cbefd50d0ece85563ee81e34440650bdd7d3db6dd6f49d5e74278872961300bbd443b896586f5c7ea00a9ff816ef20b7a9"; - sha512.doc = "385c8b97c57053d861d72b4f10134cbf2d943e4bcedb55ec42bff51000843db3fe30737f7ada3ce569c1d96584ec0df80afadc39be98c16950828647165f6801"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.03.1"; -}; -moderntimeline = { - revision = 55518; - shortdesc = "Timelines for use with moderncv"; - stripPrefix = 0; - sha512.run = "3e32e360bd8249cded439fc563c8fd38e53314fb468251368aa5311463665771748b605c247c63e8e5aea2654dd05c4b12aafa073190b883d21469bb14333de5"; - sha512.doc = "018ad6b095dca602021c45e04a526597ca61f5bb6ec7adb52d86c221649c4b3be94761e826d09ed9772c0628bd9d719f6a4db6ea1411e6d34f94f8c049130855"; - sha512.source = "e86a6e1175c1d86e5c0b035ff925107ad0dc80e00f1815161348608e90a7ed5bc9828f896c0d072c386cf695a5f9d1b894eef2c864d403b74a75bc89a9910510"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -modes = { - revision = 69113; - shortdesc = "A collection of Metafont mode_def's"; - stripPrefix = 0; - sha512.run = "71e00fa0f1c3cdf01a6d49567df15b5a9119005ea63a2411680afdd0b423fe0f66a13f01579a379883969cbaee5535a4d338a9659196d4c95404b2cccc321cee"; - sha512.doc = "32135a28343fdf1de2ff2cc25ae78920729c34f777ae6b147ff85f80953eb7610bad5e1a8919d6d873ad45fcc9b51cc9152e9e2fc566d47a57f7df4e6f63f5b6"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "4.3"; -}; -modiagram = { - revision = 56886; - shortdesc = "Drawing molecular orbital diagrams"; - stripPrefix = 0; - sha512.run = "3da30c6f2759d1beebc0f33c61846343b505da9527f2a34ad7e622958802cfd08e1da9ca297003330451aa913b45c872b4eed4cad3f5bf5f8e597a2b0800a09f"; - sha512.doc = "cc0513fdca073761b8f6f9e34c826af2de587c9c6ef47bbe54b45e60427c5536a2c4743e2c187a9b089eeefe82359962d1081f5dd66fad9072e4c7adcb580763"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -modref = { - revision = 15878; - shortdesc = "Customisation of cross-references in LaTeX"; - stripPrefix = 0; - sha512.run = "ef5d822fedbd5026903fb7d2630a837a3a1b0222150ee1a9f72a54e13d626a0387abd1fc20b18a257714c63cb65868ac885f8340d35c5453b42323da3b9b0782"; - sha512.doc = "f7539376630672b6fc67821045eb8c891b4781d233e1b914f8fc5c255fdcc57ecb6e5ef4d36ae72ceac185e8d2e4aee42741538f27fb3ab1f5160855cfbc8def"; - sha512.source = "370a7287ed60084ce3d92ef722bb1b1c5f49faf6563a154dc2fa2442a60eb2ab06ea1c82d63e5c887b8aea859f9e647a5d80455f9cc87746d2c9be25f4920b47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -modroman = { - revision = 29803; - shortdesc = "Write numbers in lower case roman numerals"; - stripPrefix = 0; - sha512.run = "3314a474cdb88e517fd16943b8f1f1da252608bc5505bd91581e87bca19ea317718d36694abc670d471d0028dcb5fe502a3be1b1294604cecf619de235fe63c8"; - sha512.doc = "5c6ad1cdad66a5a7285b7c51074f724670880d4417df45cae51e5b3b35bf5cf99f374f7abca73c7ae68d12f626e4b9bf0dddd6b2bc94250c4e6146598d4c5ac6"; - sha512.source = "21e8a2bf6f1d58800452dee77d7a7dc89bd8c952ced6f485b42a2e0b6300df9c823c23f4ab3327d9a367ef8e8d6ba1bae27d3c9bcf875270053c7fa65bcf9f70"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -modular = { - revision = 44142; - shortdesc = "Relative section headings for modular documents"; - stripPrefix = 0; - sha512.run = "13d80f572497551551151c35ac32c09cec70cd40c6d99d36c22ed84bcef509cbfafd511a8e2e284cd06ab1a57f4be7fe556d7e390f9d30135bd20cd49acf362a"; - sha512.doc = "7d7201db0a2791700748d440fdc5cca9d8d274ceeacddb3715d99b68b4c04f52949e8b9897377168463059deec86177470a997bfea7a32a2765afda713aed499"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -modulus = { - revision = 47599; - shortdesc = "A non-destructive modulus and integer quotient operator for TeX"; - stripPrefix = 0; - sha512.run = "e5dde62c2e0730befb63612bfd6ea3626463db85b74291df5937d8f7e1995f6b63c8bc6d7e08536ae761457ab1e9a0ddeccf11afa4108910561075dcc03201f6"; - sha512.doc = "965d03005ef257526ffa6667d889a4b238ca5314f4fe8714bc8219ace1e909eb5765da6c0dc94e9b312635e0f9ca096f1d14364effb0045ed467da7c1d735474"; - sha512.source = "0f33d1d241e0155eae39875b0ce72019740771c2e36b337255a0865cabeae78c93e24d7f7eddbe7cba9ce312090b251b26a632c260e097a2619d35b47fb050bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -moloch = { - revision = 70496; - shortdesc = "Beamer based on Metropolis theme"; - stripPrefix = 0; - sha512.run = "58af737c14943781d96c8a8fbd6004a207281329973bec3ac0166d117af0d6cd4ce38174d4bae4e9a4e5c6eb6c7bf1be9205539afa8267e166656e74932f6e90"; - sha512.doc = "df09576955c0cdc3dd439e1a15df6b77d27dbc7f4ad876b06078823bf37c17db436cc5b75afac8aedf6622dad706a124cb01252e05345cedd2d305c593a82bab"; - sha512.source = "55084e06291835c8642d6313dd3a8a34071286c0bffb4988a8787913b38816cbfc26895cc1198fd58feae934400b5c4b5e06f78c5959329a784f7bf32ddf6c68"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.3.0"; -}; -mongolian-babel = { - revision = 15878; - shortdesc = "A language definition file for Mongolian in Babel"; - stripPrefix = 0; - sha512.run = "a4e7abdc0b5817d88ad442e693fefe79df224a74f37d09b630fd7ded16e1335f563ca00a26aee8ba4b46b7516c0fa2f5dc9d37ec00455b11223e46a6e289cc01"; - sha512.doc = "d0aa4f4a7f1b22d3d3a6a96b85d4d72acb71ee6b1374b70008b966ca2401b7b9434bca675601cc1cdf2f013520eb82c2cb193634b3ac9f9b9d40a201d10dbd58"; - sha512.source = "07e75b2c9bb6c7596d698e0f31d8194ab5cc4e06f5ca472cc706214c342960378376406bdc0eef0940ac0179e989a92af496069ffb25ed75f5b3a0d5fe639517"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -monofill = { - revision = 28140; - shortdesc = "Alignment of plain text"; - stripPrefix = 0; - sha512.run = "6b9a45c32bd44aa01119c7bd8304ba8e5953422c14bfeaacad20f012188f9204c19f432719c74d9481a00611a18d4ef1ba2c1dc858b83b8a25205d40568e5fa3"; - sha512.doc = "edb00621e74238c09d0ca0c04e5c57589012ef2272f0b470345845ddedd647c73fffc0fcaf4741726214b2419e9581127375ba2b36948ec73f4caef561c3e57c"; - sha512.source = "fba90d74e9b12086fb4dd431eba4bb3349a83a2b839db1f1a1f7f076e3568cdada03de56570bd38e937eb51a76990ab39778a1832ad233067025ae24877b279d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -montex = { - revision = 29349; - shortdesc = "Mongolian LaTeX"; - stripPrefix = 0; - deps = [ - "cbfonts" - ]; - fontMaps = [ - "MixedMap mongolian.map" - ]; - sha512.run = "9676cef9e0fbe7a0196b1ea0fb3ea4f0399a3ee8ed76ef06e824848a57922dc4f7cc1f50a1fcea47fc265465407653447ab80e80dbac3c4bc00488d0929f87bc"; - sha512.doc = "1965f31e28a9f54d86a495b4b8cea50dc59f409d066918dedf77f86448b60ea547565dcf2069ee0e0a646d53f34d244868600951c4b1a4d4e099fe50e3c2b477"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "IVu.04.092"; -}; -montserrat = { - revision = 54512; - shortdesc = "Montserrat sans serif, otf and pfb, with LaTeX support files"; - stripPrefix = 0; - fontMaps = [ - "Map Montserrat.map" - ]; - sha512.run = "58c8b4a1f6eceb10c7fef8e6dd951985ae6108cb3f93eedf20949923237cb8af6a834674dcea48b1c68b51284ef37fe2d4120d52fee82753fd873f60b585e685"; - sha512.doc = "694ee7f51b0fe1622981bfa636263bbe18f89ec481071af587a683648f4ee900d9100864e51669d65b9952e6acf64794b5610989d2bd86f6e4701e1e41193242"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.03"; -}; -moodle = { - revision = 65672; - shortdesc = "Generating Moodle quizzes via LaTeX"; - stripPrefix = 0; - sha512.run = "0a297097f864ed3dc8c9d263a6a3aa8930732679a585aa34e2e5b31852bdfc3cff40118d3b67566816dfeda0f74282a476ad8b5ad793d2c433cf44f41f7c91bf"; - sha512.doc = "ee40b07bc0ff2ff75f18eeb9ea68dec0a624a1b75b81ac00ea9c5caae3f6232213e1a5ff7028be28372cfc43685f4004059d972176eaa2b18688f16f8ef2ba09"; - sha512.source = "02754bd2d6ec9ca07e07b3768855cf100d09de057ad7b3605dd7a97574c7f8024028ca882b3b6a1cfa25e49ec40400690ed7e7e1404f0836a9d6158cfec30bca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -moreenum = { - revision = 24479; - shortdesc = "More enumeration options"; - stripPrefix = 0; - sha512.run = "069ef44faaa8847a07ad00dae31c1b63278d59a560ed90823100cd601850a798f574d8210c07854a8b1a90165efb3bba852e100e53aee496f78395e3d6defade"; - sha512.doc = "987a1dd96669b9202846fc604fbcfb935b68c79d13bbe4599f32fab9e869ca5b60f3b4bdfcf78d3b3f5102db9ab16955ec13958c4cf3df7ec64649268c226d1c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -morefloats = { - revision = 37927; - shortdesc = "Increase the number of simultaneous LaTeX floats"; - stripPrefix = 0; - sha512.run = "28fd471aa854852cc2a48597dda19cadda3c92c589d0419b8d36e044f9c04e406037f162e1d02c1f4b20a6288efe4a689fe4e03aafbfc6b06cf14019f7e880f0"; - sha512.doc = "f542aecb6d3868559cee66a7c153dc80cb6aacebae40c0cd0dd120c4230cd358b4d2787286cb3e7bdfb5565949861a35af65ca616369585b8f28462a2b1dbcf6"; - sha512.source = "7f527c20294826a6d7e1c3ff390ca02f521e9b6824db41d078b4132201d1d7575cb43eebda9e66e8226ba2a641db692ae2d1f1ccac5c4f027851b75100e261db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0h"; -}; -morehype = { - revision = 38815; - shortdesc = "Hypertext tools for use with LaTeX"; - stripPrefix = 0; - sha512.run = "698ec10d9e70dc1b89ed5094369359fdeffb663ca95513b7207aed065515a66dd2c82b4e43d14fe271c9851e72a44e9c2f6e3baa177ed9430f89e88bdd692172"; - sha512.doc = "2600045257c75dd15320a2f188f5b043358bfdb21ce4a19af2d1a696141a2f553da42c13143d14c8ba136fb1ef7a560684ac47c5274738c747f729a00b02a099"; - sha512.source = "f710fd59d5c99d7df8b84a365a8f8c110ac7086699f36d1851eb7fdd27ed43212c403c14d9f9105c78402b278d66fa77ca2f50a0253073f55842a60fb19b4c1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r0.83"; -}; -moresize = { - revision = 17513; - shortdesc = "Allows font sizes up to 35.83pt"; - stripPrefix = 0; - sha512.run = "92f67234dd9c0429798f9e8001a2d4b7004e11f2fa90130b738670e6228f45ebca3ba26ed98616e3af5c86148992f9915e3e6a1cfeb4c875fbd20fd818743525"; - sha512.doc = "3c1ed984163e2adbdaa7e94439e160327515f1c6999e40114819d8e5250e090c932909217d37d1d07fcb108c56ec50f294324c32523995f68f57fd918983a412"; - sha512.source = "701a2ba72c22bed8397350f92023b0b1d1587b837c4fd247dabe5860cc32e58499e8803a0286aa9f9e3831faff8b9ce0e74ac1a0f82d798a2f7f461b015b5809"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -moreverb = { - revision = 22126; - shortdesc = "Extended verbatim"; - stripPrefix = 0; - sha512.run = "673b7ab5951e418fe10622fb1a4b4a420c4c436684afbb1474c58b7aa7b235f7063555a220133257b351b5847be5e880714e44ca49bd9198a4306c0e821dcdde"; - sha512.doc = "27e4f361f5d7193c97629debec048168045bc38e353f677829677cb5ce5c0a9ad8f5b2576bd9f870da8dfbf16d745e489ba79e3dfe6aa1da8a9cab1ad72ace06"; - sha512.source = "55ec67b5b9616459a776b0ca386be19cb6ae57fa2a7bde1f6a1896233f4f303277474d629c884e40bcd8d076522ab4e41fbe8850304dbd33469a1f21750c81ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3a"; -}; -morewrites = { - revision = 69679; - shortdesc = "Always room for a new write stream"; - stripPrefix = 0; - sha512.run = "738ea602368142999aa6f5d99226767fe9d6613b3e5d58687d787e8e470bfbff3ec2fcabeb5931454754ad80661a5925f337ba600fa62f021ae99363451c4c75"; - sha512.doc = "a8aad8b575785ee7b36f6946ea2228c507745c4f7ca61e05e46c9b0824e84880e355264e45540b61022010943f2cd63cf051ed1d4b9b438a6eceac840cb2e6d4"; - sha512.source = "e3db6542cdd4548e0a9fa10a40b333e48ad4ab713acf8f38389f8ebe5113b598f647e9eb11047339ae09ae344aa22ea3ccc0f782c35dca2552fdf8707d4926c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -morisawa = { - revision = 46946; - shortdesc = "Enables selection of 5 standard Japanese fonts for pLaTeX + dvips"; - stripPrefix = 0; - fontMaps = [ - "KanjiMap morisawa5.map" - ]; - sha512.run = "7f149fab67905d6b21670becb1c3e3afbc8fb4c45fa3c376960e5a87d7fe17abe091af63930a8385b5bcb63e550fc0b9bb16d522f50f90b911b09599dc5ccafa"; - sha512.doc = "7af68b3a8233cec22efb49e8131c65e33db4076ed4f254f2d62f629c03d0122e8dddc3ba68d283affb5ca663d3b1f744780dc98c14eadfa1a69028df281e5bb2"; - sha512.source = "7e3821bc1f5dad076307ebf00cacb68cdeb9e18a060c9c024c0fea85c558f7373f214f16952fa643f8b832376101ec8c8bb839a902e6e8213912a4cbc10862ad"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -movement-arrows = { - revision = 67270; - shortdesc = "Drawing movement arrows on linguistic example sentences"; - stripPrefix = 0; - sha512.run = "42adce39a6f06212f5d6c3c235ad79772064d8b0588e3f79b34ba7f3a8530e08857e5a1612051ce6c58e419b0ea4f1a6012b19d8e37ae20ccb1a20c11f9894d8"; - sha512.doc = "d1f1856297ccfbcd42d05524d633857ce548fe5b5c5fc84d76239a2cd62989015ea62f2fdcb509e918e47cc176002fc5467c7d721942f674eb4cb405dbec1be7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -movie15 = { - revision = 26473; - shortdesc = "Multimedia inclusion package"; - stripPrefix = 0; - sha512.run = "a45726b24f76683c44b0f006d720695c14ef51a260fa00f3223a075e48173638dbc9d9d361fb4e1f8f567cbe80f65d990aae485b669901a50d5b18750640b103"; - sha512.doc = "4df2fec7f0abac6ef4d948285b3156bb9489a3b7b18939fa109abcd9c537e383d505e308516e1bc852aa5c5bdd6b8825e8f7e887c9787d7c2d337124942cc9e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mp3d = { - revision = 29349; - shortdesc = "3D animations"; - stripPrefix = 0; - sha512.run = "e5899aace25cef3a690150cf09e76bddc008f426800588ef7d21361229b0040dff74af7b43d563b05d8c3d16166e34b5a21e8e25ae3e97ca80e5ffe5c4925392"; - sha512.doc = "2b64199f50ae5b0e6528bf041ac2422574f9adf467183f3ee3d58ebd91317ce25937699be29d0a5954565a4fd326719f11bc04a35cb4938489696ae479d5d7f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.34"; -}; -mparhack = { - revision = 59066; - shortdesc = "Work around a LaTeX bug in marginpars"; - stripPrefix = 0; - sha512.run = "9a4e5a08320095095538eea8c5c5db5dc6d6c99ca3e3a3f5568228b8b52a4b1de98c1118b09626b58ef897f6810d2b43d2b5b416b3687e1bfd3a01506460bce5"; - sha512.doc = "fc4cff80bbf20460e28f8d5a142e8994cea7e017391b147a47332b444fad0ff8cde1e7bb29159e39f8c14f4c9881ab91dcc0e2f108cca1534d4335f5b6b32a1a"; - sha512.source = "1eda2d1f370141d0a5b0bc15f68dd40b9dd72017e8cfc75c71b19e2fa2ccfef7b1652d5c035c8ab6120e12089bf469b6e6edadd7997329da6409e6248bccc5a2"; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "1.5"; -}; -mparrows = { - revision = 39729; - shortdesc = "MetaPost module with different types of arrow heads"; - stripPrefix = 0; - sha512.run = "58e4a909374486cd2d4313d62a49e4e30a5e85f8ef2cc0d9a7e734b546ad8b36e3bbfb96f3eecaa9c10b8d7b3b1557aa9e0b5dae5b4547d42cabc64d2f2949d3"; - sha512.doc = "d1ca204228c1bc76d4f15257687a865c650fa83742dd126b3d7cd5e93e725b2da31eedfbca9a86e93eaa08df487b0432cc41f0d4fd2f99951f874691acf47016"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.1"; -}; -mpattern = { - revision = 15878; - shortdesc = "Patterns in MetaPost"; - stripPrefix = 0; - sha512.run = "1efc3f1f1c93456a3038ae5037ad5dcc4b177c57852f7db475a7ce6d2002559b370ba22dcc6d312c68ba75c03523cdf0df8546fff8dab032832d3ff3148b5d65"; - sha512.doc = "4ec7cadd89449ca049fdd723de9e29f20199a630fc28585a4802e3ce3666783822e4f0769907cafbfb0fe097b1da4a08d3e5e5f4038ecebbe9fe3543dd3413d6"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -mpchess = { - revision = 67704; - shortdesc = "Drawing chess boards and positions with MetaPost"; - stripPrefix = 0; - sha512.run = "b65838b9b3177b069a2e8e4141fdb9ae68ac1dc9378c9fe7534fd23556d93ace29ba1ed9deaeb53fd54d709b77ecd98d9d0fc79dfc8e77b8eec899d4a332bc3f"; - sha512.doc = "c859e9f5df0d24bd1eb59dfd39dc97cd1ba6e713b33e37d17128388928071e2da8f41180da333fea34ee6215585208de193a381205fd866142f341e1856485d2"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Plus" ]; - version = "0.7"; -}; -mpcolornames = { - revision = 23252; - shortdesc = "Extend list of predefined colour names for MetaPost"; - stripPrefix = 0; - sha512.run = "9808706010059e8d2683f88a47535b8039049681e5a9fdc013cc384bcacb1910cc7ab2f7614d35ed964c28507bf5fc062fe4db852afa45f9d9383c367838eeba"; - sha512.doc = "bfb9ce4c85de655b890948897deba96a5ff60cb7518b3e198cd0b088b63670531f29bd84dbde4837298a24f36dac0652f2d2d3491dbcd7ac8f9e57de6500c6dd"; - sha512.source = "ec29085382f6464b10323680488140b483aa09c9df050806a154fce60bf92feb7d4e04de444d0fb4b1623c6ea3506ba619bf0fb2477f048fd4c5f2f0be9f272c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.20"; -}; -mpfonts = { - revision = 54512; - shortdesc = "Computer Modern Type 3 fonts converted using MetaPost"; - stripPrefix = 0; - sha512.run = "7d602bca0f33f83033cbe15cb2376d0ae023a4d02218f10b64965580842f269a7065e6c2154bf78c7a72a46abd0e41214dea4d2f012f1945a17fb5b8cf0fa832"; - sha512.doc = "4aa1296012f4ed3483f444320d7d28d942823da0cd58c1350dc4a90da1fa5e51cd5bac86f257290c720f9808b74c2cc87c49f18882073ac44ef7f577248f57be"; - hasRunfiles = true; - license = [ "knuth" "lppl13c" "ofl" "free" "publicDomain" ]; -}; -mpgraphics = { - revision = 29776; - shortdesc = "Process and display MetaPost figures inline"; - stripPrefix = 0; - sha512.run = "5d711f7a981f701e11874916fe8d22fa237404dc119fc2d5c8f8e9b3eaf8feb59a63023ec30f0c67d304839e4971288a669d70a697260af35e401edf00673adb"; - sha512.doc = "954c8e3a8a0deafea163c9bea9da6bd1c27fcc9b5270408fdd29f0051ece1f4138a0af99808cf85279823cb48475b8e21b3a450f021d678fc5b2fbdf28e55320"; - sha512.source = "30e7324760efabffddf6920362ba213eb05fce2658d9a442677a2f8f322695d5a361b1d183c4f775b289ac116d586e2466be46d4ea1798cde251132b95a98bdd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -mpman-ru = { - revision = 15878; - shortdesc = "A Russian translation of the MetaPost manual"; - stripPrefix = 0; - sha512.run = "e234fc25e9d8e5aa89a59e21186a16de3c695ce45c9ee8d132546381cb18e9be681bd4ee9c70bb10b4769ada5e5874b500d2a3cd7d264d89610dcda35fcba9a1"; - sha512.doc = "57f2449eaed3651b808095348f056fdfa90b00979ba2e21fad120efe096dca9a9e48474e9dbb539f347ffe20ccd5582f4815ff4552c54e9ea5f9df391dd75edb"; - license = [ "free" ]; - version = "1.004"; -}; -mpostinl = { - revision = 49559; - shortdesc = "Embed MetaPost figures within LaTeX documents"; - stripPrefix = 0; - sha512.run = "0749fdf4c54efe9b8c9ed9f735a851a0c0b08a9092679bbb80eb32a80ed6e7284094a043e27721dacf8112b6898a8c5f47bf0b0dea4af9082a40bead0599ee76"; - sha512.doc = "ad639ec50e5b71a1ef02bcc04cb1c0b195e9ed2cdef9ff8e145d17cfb34dd853d96449620f5d0eba614154cdf6291902316f4fdfbd179a112cebbe2a059acc70"; - sha512.source = "44ff22f1fb0496422dd760b786174e520643ae9c2b8d3b922a08f9e065708fb4c292169e58cd328381c29672d0526c13506429c55eb57100e96f876324e6fbb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -mptopdf = { - revision = 69363; - shortdesc = "mpost to PDF, native MetaPost graphics inclusion"; - deps = [ - "pdftex" - "plain" - ]; - formats = [ - { - name = "mptopdf"; - engine = "pdftex"; - options = "-translate-file=cp227.tcx mptopdf.tex"; - fmttriggers = [ "plain" ]; - } - ]; - sha512.run = "680851a49d124cf0e2ff0c7626dbb5c5e48358ab08c94906cfe019fa2066dd3b47c763c7985a101d44ef6a6bfab3b3f72c88bbc1ad0eca0258b8f6467ffc0ede"; - sha512.doc = "46b4dbe5a903601078da34238dc449ad932dbc44fdbb6df33b53554fbbe8d47307ba99e971ab197e468a8689d731f989c02097ca2b8ab07c575ec05e2866e81a"; - hasManpages = true; - hasRunfiles = true; -}; -mptopdf.binfiles = [ - "mptopdf" -]; -mptrees = { - revision = 70117; - shortdesc = "Probability trees with MetaPost"; - stripPrefix = 0; - sha512.run = "64efb9355c79a8145e0bd4e44922c789a718f389ecb59ac186ec32da8e37323d09cc33d558cbf67ca5550f68501282dc429b784f483df1e3df5b9d5bc3b5ddd6"; - sha512.doc = "de5d2c52ebd3651ff42812fe4ea74a4ed92cdd8d0452f2e83af9723581820ee07e2e9528cdc254410193d8b82f8ede7554e182c1fee104333715f253d3ad0d41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "24.02"; -}; -ms = { - revision = 57473; - shortdesc = "Various LaTeX packages by Martin Schroder"; - stripPrefix = 0; - sha512.run = "73d46ed7ba85773f4ba7c261ff0ea8f2e751e53659fc19686bddd9523b160dba5e367c8fcb30a20678e4a3df26c0812a6b771736eef8616e112cbac3a25e7b48"; - sha512.doc = "d112ff182da85ee8d84d8e7cfc50e5c13ad2e555ffe4dd2867a3439d69193ec7bc24fa87d2527936a57dbdc8e98df8d2862a740f91d497a8eba7108973a637aa"; - sha512.source = "b03f9ac6bc7ab56bacac4053d278d0c826925f4f81df80e73ee2a48209e1e51c48b0706dbd0d69ec9a068e4a59a12df104b8e7dfd60cd0cd5c6210f43d528ce7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -msc = { - revision = 67718; - shortdesc = "Draw MSC diagrams"; - stripPrefix = 0; - sha512.run = "103ff1fd368f97920f5403691ccb5fafb34c6a291db5d76a83d56f64d1ec452386cb844dfea7462fcec573d86b05fb183034ae8968d7127f4bf425aebac1f087"; - sha512.doc = "e336c0969d2f39c06baab3f7573109e11f76acf47767f0653996ea772bc5fc4ac801154c5fa0df2eeaf999699aa0d61c1e7d223b44248fba72dccc8bc1b86663"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.00"; -}; -msg = { - revision = 49578; - shortdesc = "A package for LaTeX localisation"; - stripPrefix = 0; - sha512.run = "9419f306ccde237320abe22fe192a2473785244fd337063332a242e029b8650404df7f7d150b196d3bccb0e10e58e25e2b8aefb15627e89eda8636ddc50599e1"; - sha512.doc = "85db0022daca5aeeb50e2eded6214a3b144012bfd0bd433b4f9474307c2a37e57c7a311385b8de4efcdc4e462f39c53f6a5fcfac2eae7263e2d1583b0ba584df"; - sha512.source = "988d410412b2e7b3617678d0cdb2e8059f7261d48b942eff588c472ccb29e022a3e10ae2302268789331c20705ce062f0930ef53bb785245923ba199ed71b15f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.51"; -}; -mslapa = { - revision = 54080; - shortdesc = "Michael Landy's APA citation style"; - stripPrefix = 0; - sha512.run = "28a13eda4b10f25e4887feb44f64e23cfa683d28e57b66a64d2a15c627e5f7aaef36e9fbbbf3c2320891a0bb9a5270fb59ca9044f1822402d82bc494f41dc3a9"; - sha512.doc = "b53311156cb6872ec996130474f18d8735f9fbba8d53258638f78d498b3cb294eb490b6eb1460546dcec39258e0785401dad5ecb66c82e2cfd7814bfa852908b"; - hasRunfiles = true; - license = [ "free" ]; -}; -msu-thesis = { - revision = 68480; - shortdesc = "Class for Michigan State University Master's and PhD theses"; - stripPrefix = 0; - sha512.run = "a25f539ee6eb50450a603b25d6639918118a8882df16fdbe71dee49f09045480b80514994079f291120d6f3132753a90cfe3a7eb5e366a6c8b15b6674735fa85"; - sha512.doc = "da32f1f22664d0bf05561a4d99977b942c95167a2e325928fc05714bf59a9f8aaec302f278685d0fae90b8511d246a156936101f6a12fe76a31d7aaef5dd762b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1h"; -}; -mtgreek = { - revision = 17967; - shortdesc = "Use italic and upright greek letters with mathtime"; - stripPrefix = 0; - sha512.run = "fbc20f61e1d4e9d3ebf4a92216c7c007f2aec2b2cac0aca6e08f0e1ea5f6f405a32d947efcea0057a025a138afc85e0d1486191ee82fa9a0e9f2f6e2542a9e11"; - sha512.doc = "49631058e9bfc59dd38a7e0e2134f6d9ddf68779a6f8087a056a89fef975154510496415b782102dfeae6b5563527fb6178ce301b004fe33a4dfa8dbeb4474ac"; - sha512.source = "d69c6248a4d8fbb9a64cd539e7f66db5373f9551d27c98b755377594f9b1680a323719599f5963972d169399a0686b5e6f500148cc54881d23d8adb3b91bf4f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1+"; -}; -mucproc = { - revision = 43445; - shortdesc = "Conference proceedings for the German MuC-conference"; - stripPrefix = 0; - sha512.run = "02ee23aa25152e80e8dc2c57f14b99c70ff57c38175498c179e505a76d967f826acf076cae2085d305cde93964f03134fc6d1027e0669acdbaba5ed5ff6efa8e"; - sha512.doc = "01d154fab3c0ad8db790b5a22fcc4cae7a5beea1a2850f5e9d6fb1fcdc6c1071c2dc294568451f40db5455826f78ae910be9572de5a4a7d870e3a18a74fc0082"; - sha512.source = "f1ce5b80ed1c79cdb5939fda97b18bd263b313496a98cd7940e990ff719dff9e633d636505c0d538f37ff26a81c33d6f625f51a479e5ed6f949f7b3ebd845917"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -mugsthesis = { - revision = 64259; - shortdesc = "Thesis class complying with Marquette University Graduate School requirements"; - stripPrefix = 0; - sha512.run = "f86bfd4362af798bc435bf6ad1f6ed6f8cbafa61a4bf273a196160bedff21d349c1d4294e63de5a2c925ec3f5918dbb6ac4f5c8cd41785ee715cbc4e903aa226"; - sha512.doc = "18b239e98e97512030a55a6a9d071e2b53ac34147f121d14687dd2e68acf3cba3bc7c36c7b64dd3221121a37cc7665cc71ce0012218ca2f8a28eefd6ef46bc3d"; - sha512.source = "8615a13f214ceee375685ab995ed91cf8521d213e311809561009f2d43745c5dae8b126ce09412a23007376e02a0b9a8abc021b2e5b8ac5e390e07640704f255"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -muling = { - revision = 66741; - shortdesc = "MA Thesis class for the Department of Linguistics, University of Mumbai"; - stripPrefix = 0; - sha512.run = "5a955e229ffe00e276c4ee4590473ba9d137d668c63294735ecefb031f2a01b310723dd2a5cf37b4c9613793df39146d08c01e2109ca37fe1d9136903cd6aaa2"; - sha512.doc = "9eea5504062340098751c51d99433f91e95bfe74b93f584e08d3c6d1ae516f6d8a18e8495d10a90a4c5f751f44854758a3a8779d56ae158397f35419218aa01d"; - sha512.source = "fd0a41543e4d20ece031b9d2143a6f4196010141dac7c3525d7dfdea17e93ce1c6602e78c00d4d310a9ceadce2d9042140b8b53deaa95d665b3fc043042505ad"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "0.5"; -}; -multenum = { - revision = 21775; - shortdesc = "Multi-column enumerated lists"; - stripPrefix = 0; - sha512.run = "e73e2d3fe45f562398de752520628032fea310e5345a247472a2807618b72467b245995f32f21474dcb5702106bf32d6394508a96c4aeae4dbeaf6fdda7bdf4e"; - sha512.doc = "889ffbce149b1f0a98e22a1ebcafc60e29858d08b57e2e567956830c679515759a6c8209901641e3d77ded31238e8fe93f7e4cdff95d1be925e3972c9005f4a7"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -multiaudience = { - revision = 60688; - shortdesc = "Several versions of output from the same source"; - stripPrefix = 0; - sha512.run = "a7d89874dbe314ab37cf42d8d520e234764bfc3fbbb6c89e47be95ef83bacd170c290bae005830286e206da25a68939ed8ee60cf11ad3f5ff9d994d568638b86"; - sha512.doc = "b6023873f5843ec7db13e551417ef4c31a2f622372f32b4ad7af1ab155e3902185b06d6f2fdd432bf582f3da8a5e32e985fde93ae88b7916062db25021a641a1"; - sha512.source = "8d528b7e27f8883846386374cc936118a9537f0dfabc71c3b993f105dee381f0cd2b40e16d5c48df01b9709f902479ba87c6b94278f6e8be98beafbf9dd3e4ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -multibbl = { - revision = 15878; - shortdesc = "Multiple bibliographies"; - stripPrefix = 0; - sha512.run = "419f7bcf8f2226cf8c60119e30da278bf6138f4e1903dc322da33ca2b22120e50b205dc0bb01b46cab0c93fdaacc37b823a812121a731fdea4cf03354d1b0690"; - sha512.doc = "68a3f99cbde27d15fa8b56730f4e9f7587bcecfc9a6ebe19a7811a29278cbe21f214465942bd4ee6cc28833b9614dfef14714dceddcdb041d5676ee7ead810bb"; - sha512.source = "be2bb39e0267d6a008dd3dab1d1fbfc22e38017656f6fd717e35d3252def115d451a1eddadc6fbb3787bee901b43b09327ebb0f676ee452db71196cd2299778c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -multibib = { - revision = 15878; - shortdesc = "Multiple bibliographies within one document"; - stripPrefix = 0; - sha512.run = "82cd48cf9097b36664d4dcfb5d73dbd6e961c2f0a8bf7816d1bc59a33cb6d2c65e0f63a9d1d596dc9faa4339536746089e34bd1b510e1b2c0ea272df5840e396"; - sha512.doc = "1d4536094c09755fc91b2657cc0eb0b0b2fd8d1c5ca37bf2f046b62a4b0be6f83a93debac8be3c5481651dc75cac2066962556370bd84face6b03aaba24bbcc6"; - sha512.source = "c7777e3c32833538893ae463d8396f894b390f642fa697b8ba237cd7183e2bc7cb86a9773530962f41372e4ec016eb96c7a060dc63081b2faf29248a65f14a1f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -multibibliography = { - revision = 30939; - shortdesc = "Multiple versions of a bibliography, with different sort orders"; - sha512.run = "faa2e16b8bdb9309e2f16cdb2c717b59c8ecd5d73e4819d72ee3226a80fe0c0ff6b4d686d0f1d009601e0d6dea140cd4812c2f4cb94f37b5bd9cc1bd19137965"; - sha512.doc = "3e13c8c60ab8091a363b63a63259e53e3c5076feb224a6f426e55a351141f007ea8bf7526b0f80684c83e4e97b43f5f05217e254f978e8b69665c736efbe8512"; - sha512.source = "544b3778bd0a51e99e89e18e606d37551576d655a01b46523786d6f910cf84b3886a8b29c72b9e0c25b3ae629045470b24e2741d7894f867437ca069cd692cb4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -multibibliography.binfiles = [ - "multibibliography" -]; -multicap = { - revision = 15878; - shortdesc = "Format captions inside multicols"; - stripPrefix = 0; - sha512.run = "5e4a4eebd7560d4aebdaf7035b9bc14116a32cb2e043aa93afb9f95eaf271fdd75fe7d2b6296d36327d7aa5b14b52046b0c941ae949584ad27a2b89ebe54b6de"; - sha512.doc = "644f46fa6431f0f7bbbdfed8a346887d107c8ff7c8d5b2c826b16994faa48d83ca59cd139c16fa144122e0425e6a2c592762b86568f17fb914dd943cdb7eb808"; - sha512.source = "95df0571a8741db7d0b4d3ab0fd0d1469c531a00e3cf524977fe2cec57c3cb9ce9cf3c3136b42a8d0fb8f9dea2e8f4cc6f07fa48490167094e04c0e688d45527"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -multicolrule = { - revision = 56366; - shortdesc = "Decorative rules between columns"; - stripPrefix = 0; - sha512.run = "46c8745965a2863f3ded3aff6a910e1971d9aa3127a33c36431d68d1150075f52444495c0fd16fa1b737d2f1dfe7058879f7a50003f763cd0d28781f62bfea0e"; - sha512.doc = "42d7798d38abce4454a726dd2998b94e4171bf963108a8ed18b05b5acae739e19e8e1189e74cfaad02f4ca92b32e7fd0afe9496fbd35983574da8607441a2295"; - sha512.source = "53c008ef7b7b6505a592ac3684ae51224e9a1d7def82822a376b7b4b6e6f1ccfe3cb2e2dc677efce6ac3807b5ac7424c34003df2006b8682c89ea78a060178b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -multidef = { - revision = 40637; - shortdesc = "Quickly define several similar macros"; - stripPrefix = 0; - sha512.run = "2d15975c8a191cc08925cc8cd74b982af909a7488a68e4b6f5eb4c2ba0dc94dbcb40c4347c5c4774fda24f98efff52131f6a243e1e6bdcb4dde7e683e408d6a9"; - sha512.doc = "50b26f8fcfde20dd04f3e3701d611631c8914e9488a3f87d25e0c60803090133f9abe889b449c67a09ccd5053c67c4a3ea699d52d44480051391edaaa7ff9ef7"; - sha512.source = "4f506eef5dc2bbb8c740d3b25c00e21a56ccb02410adc85788f2cf2ec7da81531ec5843d0a29931ab1aea0b4e8280eeb235b6a97505fb777068d902199cfd084"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -multido = { - revision = 18302; - shortdesc = "A loop facility for Generic TeX"; - stripPrefix = 0; - sha512.run = "5c861bddcb8b2bdb654dc4438621834a68b2bca102799317c9a220f9bc9bc4c9d70775375302a85736f8706bb7fbfc1a4c24fae2f850237e8f54ad521b1cef83"; - sha512.doc = "8cef36438fbe57c54f625b178331f7a6ca19854abcddb475283fc0cb4a362764c443de05989245e962dba9e2e4f17734533502fbd4b2ef4fc8e8c36b96bc68ab"; - sha512.source = "3f3f6f5813ab1da542ebc9c4837da72339804866875bf225292d8a36ebf54b33f12d3e84de9d0b5027d3e8889e10180649a19e25c7ec6bb532296e9e204e25e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.42"; -}; -multienv = { - revision = 64967; - shortdesc = "Multiple environments using a \"key=value\" syntax"; - stripPrefix = 0; - sha512.run = "04090331e44ac252dcc6929ec995cb0e6d38922729a6af99ba103a833d1ac93f7553d9314359cc5b1ad16d16757828e57059a6f1f8bf2892abc41b2d901fb15d"; - sha512.doc = "29dfcd04a9b88d6da8a279b021e3178652c388a9afce5063e863307b8030fce66dafd48ae2a7e18f1e5e207f0f11b4d6c8da035f0799ddfc47856b7651d7fd9a"; - sha512.source = "5c636e3040ec84931a7188151eff2eb4bd2696c4137c2e2dc27dcd2190cc316e3c75ebf74c49f0eb6c8e43900e87410c3ad414dd623c045f58ba1d198ef630bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -multiexpand = { - revision = 45943; - shortdesc = "Variations on the primitive command \expandafter"; - stripPrefix = 0; - sha512.run = "63f512ca5b9649c86a6936cc2407737e41afd6c6a3b4810fe81155a5b4127aecc538303e26b91f53decee900fba7946e90a46a545b3c9caafb3e0863940e0009"; - sha512.doc = "6b8a727aae2d314877df551ca5804e84be0bc530b4f09d8bfe6a9c1a4c1eb98647257beeb1813a183f0aa5422b0041443e817ce11b6db70e4129e3edc664e788"; - sha512.source = "197ad74e02212405fee0c79ea03021172e7ac5a99222e0c0d300da6a141bc694a2957c544bd357fb67fcac24acbbb4059041bd37f607b29f5f763b59b70613f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -multifootnote = { - revision = 63456; - shortdesc = "Multiple numbers for the same footnote"; - stripPrefix = 0; - sha512.run = "928a2086fdf167ae23f851ec6da8cd84a012e85c97f56b7ed62fbb2873cbc6cf2793a02c8c23bc76f0bae3089edf9c594141a9029920d9f1038f7cf4b39c5e23"; - sha512.doc = "9e74a56d5d27506e354d0d68b4639df92ba4d017354e3f12bb2c9be33c210eef6cd2ad3dbcf0fa17b75b0c938da9407f0b4f9ce3e5fee000e2840d702d28fca9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -multilang = { - revision = 49065; - shortdesc = "A LaTeX package for maintaining multiple translations of a document"; - stripPrefix = 0; - sha512.run = "57f9829b100068a84feb8a09a94066b93ec5fe70daf831ea99604089a4fc2f67af76f79505a2eab6dbc8f2b025feed6d908a1f24630e27e0f7606c4a3ebb71ca"; - sha512.doc = "e611f2195fc4f7083d6343eb3554a2e786fd6522383456544e45346481cd57d54b0899cdc6ffd9edc4b75567b1e092ecc597bff660d849e0ce2b3e2d1bd55507"; - sha512.source = "1e52e9c740d0eae4f89eb4a65e1d12b3d5f159cd6c938f729bdd019ccb8bcf98300a544fa7131fe214cde9b7b58f9b64a771a49513f45943c681893fbfc78b6e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.9b"; -}; -multiobjective = { - revision = 15878; - shortdesc = "Symbols for multiobjective optimisation etc"; - stripPrefix = 0; - sha512.run = "80b0f340f19dff329cd9f0fc32cbb9a8cf690243aa925d6687b9da345984f9eba9c0db7b62fedd2a54f077d841b9cbe91e47c98140f1cfeebdb16fc05408898d"; - sha512.doc = "3a7c68054a85bbad36b6516c52ea74c35ce11c5ffd6f3d1f235ecc2ea55209343a4ff609857877094fb7f8861e8b7c54c8c979d06cc3b3583fb64e997372ae9c"; - sha512.source = "99b9d17438d9f3f8a6ac40d0e705371d255af957fa5dc78dd6d98c89b515cb5af7377b5ac11558c84c7908b7efc7faadc9be83b86c2a255ba8c4033a69be3f4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -multiple-choice = { - revision = 63722; - shortdesc = "LaTeX package for multiple-choice questions"; - stripPrefix = 0; - sha512.run = "975e7ba809ff551faacfeb8c40f0965da34068b4d4d2d0d14d9334996a245682e74ee05a4ef99fab064263c14c0ee4e7fc50372184c2db7ea90572eb9f4beaeb"; - sha512.doc = "334d989ca885f640b339028d85acefc8d1762b587e652805ef49a97c0cc1cff9f87fdae884c613719b5c377eda17f85c22137db6a368b663a389661bf34f6e4a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -multirow = { - revision = 58396; - shortdesc = "Create tabular cells spanning multiple rows"; - stripPrefix = 0; - sha512.run = "7591c7994fcac6fe351189c1364b448ac8b82e88bdaa50ec87c72123961a1bddfc02b397d5955eb96b9d47b4bcc9b6c1352eab0016b1dec24e034a95c53323fd"; - sha512.doc = "c02af3deb73b076662da0f45769dc57a7e11546e225f0df76f1fb163251e070b09203c4434382b7d4c3ad110460d0a1b6b0b384079b4a7cb54d105173fc7c575"; - sha512.source = "0b6880a377534734eec1945b91a8479bbbaccb61c3da5b4986e53ed0d9e0837f88ddc6c1718a36482070a12dfb490c0295123684707ad531213b219f314d2d1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.8"; -}; -munich = { - revision = 15878; - shortdesc = "An alternative authordate bibliography style"; - stripPrefix = 0; - sha512.run = "d8d2de2245f24c6993fcd178e2a21891e66b5b99039e8969639d2a9cba15abc6c3c50374db61c8082695a969a69ddce902ff8b5fb8104fe66ba1384ef99b93f2"; - sha512.doc = "ed2dc99df090a012f1b1b922659eebe4c2d8523127e17341b9c4b66413acfc89f8b64ed639c8fd40ace0f4fddc8662f42630411c67026311a26fed436a363b78"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -musical = { - revision = 54758; - shortdesc = "Typeset (musical) theatre scripts"; - stripPrefix = 0; - sha512.run = "4bb8bd0781cd49950f2a80ed9527de1b0e49ef6eefea5787d1d13efa3893d57b48a9b69ddf0f62bd2695a61d9b785cfa1dfad2217f8cd97929e1dfefac9333c6"; - sha512.doc = "c06f45815ff65fa7c492575731bf1aec0e774cf5a81907d1e381ac8ab366c167ada688b8c8fc82293c96980c5361a688eda666b130c1ac3f39976d49bf78f60c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -musicography = { - revision = 68220; - shortdesc = "Accessing symbols for music writing with pdfLaTeX"; - stripPrefix = 0; - sha512.run = "310c10402a269d7bf44a811b841be8a8058ef8eefdfa4440fa64ac27983fe1212134e4a616b3979ffa4f63c8ee86a7ccc5568d49c195dc1683b326a501cd83fe"; - sha512.doc = "52dc06ba9b0394c0ea66fc02094174b45733002a3a492784b1e67670614caf57a162d5ab74cd51bbe6d884fbf0f04458d6eeafa2faf637ccfde4fbbfa435cb7f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -musikui = { - revision = 47472; - shortdesc = "Easy creation of \"arithmetical restoration\" puzzles"; - stripPrefix = 0; - sha512.run = "602132bc51f1ed20f045bf0c822f201f7bbf3386f9181599894e66cb3c59f4ed15364013a5e30bfc59b22ab3fe4931872b779d1e7f34b8dbcd1eabe058b1f5e3"; - sha512.doc = "29cc8526543698f218e8c9c20b424fb2b05d3ee0a67c70a2afadd33dc49f0030ceb440b349898b8bd66a53a5682aa8289d081e4502fa5ccdfe481b4e2430de03"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -musixguit = { - revision = 21649; - shortdesc = "Easy notation for guitar music, in MusixTeX"; - stripPrefix = 0; - sha512.run = "6262e1b447f517680ddfd9e5e076ea384dfa7fc8d219e7a2613a80ba66a0f0435d9dc31502f6abbfc150fa1e2de001afbdec25dd5778e3ffe559ea389d57208a"; - sha512.doc = "8a6c9a42383d6b35c1300b958a7629306a6883bec1bd68751165eb3514f8f069c9995247142bad459e06fa42378a9ddd23093cb749bb2ccd58743312f83425dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -musixtex = { - revision = 69742; - shortdesc = "Sophisticated music typesetting"; - sha512.run = "ee6f9654d867c1f8a4e4a5744a927f511510ef2397d8b452f635704154692cdd128a73fe6c6719099e9794e727beb1e38b211a61d15caa3649a5c059b0be8376"; - sha512.doc = "942fca6475fdff821fa847c06d6dd8f92cf786e8f0f79d8edeab6276dad177fe97b8c70adb86db424b99875952b93151db35007575744fbc1d814e28ea03b949"; - hasManpages = true; - sha512.source = "61984af8c6a5b024a6e5afa310b42953bb12c68cbcde2af24dc885bcdf28854eb0bc44a764d6ee25d6dacdb7395c62941964fea8768f11e75e11835dfc6e1363"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl2Plus" ]; - version = "1.37"; -}; -musixtex-fonts = { - revision = 65517; - shortdesc = "Fonts used by MusixTeX"; - stripPrefix = 0; - fontMaps = [ - "MixedMap musix.map" - ]; - sha512.run = "53c6f1b80b789608ad1187a2d593474c12d71b27ce9bd8c9c0cc7d2ba1bf3501c2dbab6375f51eb4841646b1f0dc7ed1c641efef6bc32dbaae3cec56f6583e09"; - sha512.doc = "eff2e4596dd426f1f57003d6441eb0632f7b9bbbb216ab4e2b069a1a624e77e06f032f191ba13afd2e55b472f5a719936f34fcf2ba6997336a3c3716c4d936c3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -musixtex.binfiles = [ - "musixflx" - "musixtex" -]; -musixtnt = { - revision = 69742; - shortdesc = "A MusiXTeX extension library that enables transformations of the effect of notes commands"; - deps = [ + mluexercise = { + revision = 56927; + shortdesc = "Exercises/homework at the Martin Luther University Halle-Wittenberg"; + stripPrefix = 0; + sha512.run = "9af80a432fdcafefdabe9697cdfc16dcdee9f6a15d85d3e15774860e94bd579ad523c370b289e823f82372dfaead086ae0ed175fcdc51cafa53bd98076a8664c"; + sha512.doc = "bafd00d7a14ddafeccdfb2bb4df613dc0ad6428445722b29ba6875d0dbc3feea9ab5ff86d8e7799f4a907840c584c2e37cb54e89b5d978e67b8f7e4b7fc7ef51"; + sha512.source = "aebb67b8257f675b1237a362ae5ddb523d983717056915db5e482da90fd5674d7620aadc9b81b2667c9e78ad590b2cf670463eada81154f379e5693f411bc3a6"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.0"; + }; + mmap = { + revision = 15878; + shortdesc = "Include CMap resources in PDF files from pdfTeX"; + stripPrefix = 0; + sha512.run = "a2427b9863ef37385507783dba7bdfd65bf022d1c7322e7560b78222c3d4e0ddfccfc70aa927196e64ca1a520e985eea8cb78a4129a39e73a8410bc210b801bb"; + sha512.doc = "95a71c9a9b9cd46c1723c986ba41c29a7204fada2cd7bdd14ebfe5e0c4e1b06106f9c13469edd9caf0b94615bfbea9cc8a1f56a4f83cec37de481b39d2b4bd91"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + mnhyphn = { + revision = 69727; + shortdesc = "Mongolian hyphenation patterns in T2A encoding"; + stripPrefix = 0; + sha512.run = "e580c984d9a2242eb7f3a356b222dc6fc4f2fb1e6194f09086e265e253746ba1d94cff324a30c473724410d1d6b0bb7b8bc162cadb63ed96f0837e996c39f988"; + sha512.doc = "3645bb53bc2aff292dd5a70e3020898b969422b9e21fd11354e2ce60a6c7e668afe149263ee02e3588e0c3803c9568d999a6a6bb067a5941ec288923e167b2f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + mnotes = { + revision = 63406; + shortdesc = "Margin annotation for collaborative writing"; + stripPrefix = 0; + sha512.run = "834350f6b4bcaa9b84c18d526072ebcbb260c501b08fb81fd40d3d4ebe015392ec94f6dfcb0fd751716f213afbb4615bfa3e1c729eca416c9d499d0eb784686c"; + sha512.doc = "198f7b4e402a71e6617a1c7a92a54fd2a742c8c1748bfa17f71102a833b1fbb656dd5b85f7f7a58bfe05588525e07cf978278d6758448c4dd69d48275eb0be01"; + sha512.source = "db27a6007ca0bc687bef6298246d5a3a72c232c8728f3dfc8d0f8c8fd62990d98d9e13b57916ac1a4562cc521610f2625f90172b76afcd4b5600e7c571b9a1ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + mnras = { + revision = 68878; + shortdesc = "Monthly Notices of the Royal Astronomical Society"; + stripPrefix = 0; + sha512.run = "cb8e7cdcef07bead94509ab42af1e3d6a966b7266b75473f5a6107d2fe7f3f4c2f732c9544072def55d923883b5ad495a166cb128bf67e10211919be9f4fdda3"; + sha512.doc = "be0eaacc684772a599ef62a782d73b41e0e9963cc9ab0624805cac56af8b8f8dc529405588c687a018ffe888b643902ddfbd0f833cb7cb67a3053bd5c34e373e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + mnsymbol = { + revision = 18651; + shortdesc = "Mathematical symbol font for Adobe MinionPro"; + stripPrefix = 0; + fontMaps = [ "Map MnSymbol.map" ]; + sha512.run = "68df6dcaca1d2f3b743c62e205a22427152ec6ac1deaa126e7511842ad7817ba4a7a232b72b45c6dae88d930837f46597c5f89e50b1057ba313a590157342ff5"; + sha512.doc = "bf06a1534665ad50d33073e5d7332337c05f5d5315ba41af399f73f98d54b22a0610c65fa0e96b311925f40bebc1458fd0f0fa9c5fb41330f6d0b9b49aa12aba"; + sha512.source = "1d622e81bfa0c2e61ab64f058a356e66c98f75a2511728bc49c6cb3d998caf132def2f092db7ff18b4283829e7c118368fb09a39ba2e9c05b0a0be5e4cada210"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.4"; + }; + modeles-factures-belges-assocs = { + revision = 67840; + shortdesc = "Generate invoices for Belgian non-profit organizations"; + stripPrefix = 0; + sha512.run = "0b0e546eef6640b70dbb07bbe6401983fd0547357dad47a854b4c87119727d79f5ef54789394ebd5923474d2ad95e59a55d9340cf84811b5f2d5a94e406e8c7f"; + sha512.doc = "0bee390919ce8ce6082c2373f639db7de1029d0830d4cf9f1c807ef044e0ba27c8f0e4dd37677df63c03b64ad00b27825cd703973776377f844324846a908edd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + moderncv = { + revision = 62128; + shortdesc = "A modern curriculum vitae class"; + stripPrefix = 0; + deps = [ + "etoolbox" + "fancyhdr" + "graphics" + "hyperref" + "iftex" + "l3packages" + "microtype" + "tools" + "url" + "xcolor" + ]; + sha512.run = "988cc5f400af4ecdfc0730a63d7f2a13fde81b9120f198622a5e2d145ca94e1d5bc952e261ef2f4cacefda8a23626119975fd1e00b44f4a66b1fbb7f4c011d40"; + sha512.doc = "9527fa84fffc4eb2ac92dab59cf0e5ae87a6f5befd4ed05acdd85cc7050dcc669f8b814ef928e69bb1c1e8bb3bd774aca1f85acf6b750a1c9555a3165eba0281"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.1"; + }; + modernposter = { + revision = 47269; + shortdesc = "A modern LaTeX poster theme"; + stripPrefix = 0; + sha512.run = "d631f058a0a17a841d4026c43fd086cbefd50d0ece85563ee81e34440650bdd7d3db6dd6f49d5e74278872961300bbd443b896586f5c7ea00a9ff816ef20b7a9"; + sha512.doc = "385c8b97c57053d861d72b4f10134cbf2d943e4bcedb55ec42bff51000843db3fe30737f7ada3ce569c1d96584ec0df80afadc39be98c16950828647165f6801"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.03.1"; + }; + moderntimeline = { + revision = 55518; + shortdesc = "Timelines for use with moderncv"; + stripPrefix = 0; + sha512.run = "3e32e360bd8249cded439fc563c8fd38e53314fb468251368aa5311463665771748b605c247c63e8e5aea2654dd05c4b12aafa073190b883d21469bb14333de5"; + sha512.doc = "018ad6b095dca602021c45e04a526597ca61f5bb6ec7adb52d86c221649c4b3be94761e826d09ed9772c0628bd9d719f6a4db6ea1411e6d34f94f8c049130855"; + sha512.source = "e86a6e1175c1d86e5c0b035ff925107ad0dc80e00f1815161348608e90a7ed5bc9828f896c0d072c386cf695a5f9d1b894eef2c864d403b74a75bc89a9910510"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + modes = { + revision = 69113; + shortdesc = "A collection of Metafont mode_def's"; + stripPrefix = 0; + sha512.run = "71e00fa0f1c3cdf01a6d49567df15b5a9119005ea63a2411680afdd0b423fe0f66a13f01579a379883969cbaee5535a4d338a9659196d4c95404b2cccc321cee"; + sha512.doc = "32135a28343fdf1de2ff2cc25ae78920729c34f777ae6b147ff85f80953eb7610bad5e1a8919d6d873ad45fcc9b51cc9152e9e2fc566d47a57f7df4e6f63f5b6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "4.3"; + }; + modiagram = { + revision = 56886; + shortdesc = "Drawing molecular orbital diagrams"; + stripPrefix = 0; + sha512.run = "3da30c6f2759d1beebc0f33c61846343b505da9527f2a34ad7e622958802cfd08e1da9ca297003330451aa913b45c872b4eed4cad3f5bf5f8e597a2b0800a09f"; + sha512.doc = "cc0513fdca073761b8f6f9e34c826af2de587c9c6ef47bbe54b45e60427c5536a2c4743e2c187a9b089eeefe82359962d1081f5dd66fad9072e4c7adcb580763"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + modref = { + revision = 15878; + shortdesc = "Customisation of cross-references in LaTeX"; + stripPrefix = 0; + sha512.run = "ef5d822fedbd5026903fb7d2630a837a3a1b0222150ee1a9f72a54e13d626a0387abd1fc20b18a257714c63cb65868ac885f8340d35c5453b42323da3b9b0782"; + sha512.doc = "f7539376630672b6fc67821045eb8c891b4781d233e1b914f8fc5c255fdcc57ecb6e5ef4d36ae72ceac185e8d2e4aee42741538f27fb3ab1f5160855cfbc8def"; + sha512.source = "370a7287ed60084ce3d92ef722bb1b1c5f49faf6563a154dc2fa2442a60eb2ab06ea1c82d63e5c887b8aea859f9e647a5d80455f9cc87746d2c9be25f4920b47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + modroman = { + revision = 29803; + shortdesc = "Write numbers in lower case roman numerals"; + stripPrefix = 0; + sha512.run = "3314a474cdb88e517fd16943b8f1f1da252608bc5505bd91581e87bca19ea317718d36694abc670d471d0028dcb5fe502a3be1b1294604cecf619de235fe63c8"; + sha512.doc = "5c6ad1cdad66a5a7285b7c51074f724670880d4417df45cae51e5b3b35bf5cf99f374f7abca73c7ae68d12f626e4b9bf0dddd6b2bc94250c4e6146598d4c5ac6"; + sha512.source = "21e8a2bf6f1d58800452dee77d7a7dc89bd8c952ced6f485b42a2e0b6300df9c823c23f4ab3327d9a367ef8e8d6ba1bae27d3c9bcf875270053c7fa65bcf9f70"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + modular = { + revision = 44142; + shortdesc = "Relative section headings for modular documents"; + stripPrefix = 0; + sha512.run = "13d80f572497551551151c35ac32c09cec70cd40c6d99d36c22ed84bcef509cbfafd511a8e2e284cd06ab1a57f4be7fe556d7e390f9d30135bd20cd49acf362a"; + sha512.doc = "7d7201db0a2791700748d440fdc5cca9d8d274ceeacddb3715d99b68b4c04f52949e8b9897377168463059deec86177470a997bfea7a32a2765afda713aed499"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + modulus = { + revision = 47599; + shortdesc = "A non-destructive modulus and integer quotient operator for TeX"; + stripPrefix = 0; + sha512.run = "e5dde62c2e0730befb63612bfd6ea3626463db85b74291df5937d8f7e1995f6b63c8bc6d7e08536ae761457ab1e9a0ddeccf11afa4108910561075dcc03201f6"; + sha512.doc = "965d03005ef257526ffa6667d889a4b238ca5314f4fe8714bc8219ace1e909eb5765da6c0dc94e9b312635e0f9ca096f1d14364effb0045ed467da7c1d735474"; + sha512.source = "0f33d1d241e0155eae39875b0ce72019740771c2e36b337255a0865cabeae78c93e24d7f7eddbe7cba9ce312090b251b26a632c260e097a2619d35b47fb050bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + moloch = { + revision = 70496; + shortdesc = "Beamer based on Metropolis theme"; + stripPrefix = 0; + sha512.run = "58af737c14943781d96c8a8fbd6004a207281329973bec3ac0166d117af0d6cd4ce38174d4bae4e9a4e5c6eb6c7bf1be9205539afa8267e166656e74932f6e90"; + sha512.doc = "df09576955c0cdc3dd439e1a15df6b77d27dbc7f4ad876b06078823bf37c17db436cc5b75afac8aedf6622dad706a124cb01252e05345cedd2d305c593a82bab"; + sha512.source = "55084e06291835c8642d6313dd3a8a34071286c0bffb4988a8787913b38816cbfc26895cc1198fd58feae934400b5c4b5e06f78c5959329a784f7bf32ddf6c68"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.3.0"; + }; + mongolian-babel = { + revision = 15878; + shortdesc = "A language definition file for Mongolian in Babel"; + stripPrefix = 0; + sha512.run = "a4e7abdc0b5817d88ad442e693fefe79df224a74f37d09b630fd7ded16e1335f563ca00a26aee8ba4b46b7516c0fa2f5dc9d37ec00455b11223e46a6e289cc01"; + sha512.doc = "d0aa4f4a7f1b22d3d3a6a96b85d4d72acb71ee6b1374b70008b966ca2401b7b9434bca675601cc1cdf2f013520eb82c2cb193634b3ac9f9b9d40a201d10dbd58"; + sha512.source = "07e75b2c9bb6c7596d698e0f31d8194ab5cc4e06f5ca472cc706214c342960378376406bdc0eef0940ac0179e989a92af496069ffb25ed75f5b3a0d5fe639517"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + monofill = { + revision = 28140; + shortdesc = "Alignment of plain text"; + stripPrefix = 0; + sha512.run = "6b9a45c32bd44aa01119c7bd8304ba8e5953422c14bfeaacad20f012188f9204c19f432719c74d9481a00611a18d4ef1ba2c1dc858b83b8a25205d40568e5fa3"; + sha512.doc = "edb00621e74238c09d0ca0c04e5c57589012ef2272f0b470345845ddedd647c73fffc0fcaf4741726214b2419e9581127375ba2b36948ec73f4caef561c3e57c"; + sha512.source = "fba90d74e9b12086fb4dd431eba4bb3349a83a2b839db1f1a1f7f076e3568cdada03de56570bd38e937eb51a76990ab39778a1832ad233067025ae24877b279d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + montex = { + revision = 29349; + shortdesc = "Mongolian LaTeX"; + stripPrefix = 0; + deps = [ "cbfonts" ]; + fontMaps = [ "MixedMap mongolian.map" ]; + sha512.run = "9676cef9e0fbe7a0196b1ea0fb3ea4f0399a3ee8ed76ef06e824848a57922dc4f7cc1f50a1fcea47fc265465407653447ab80e80dbac3c4bc00488d0929f87bc"; + sha512.doc = "1965f31e28a9f54d86a495b4b8cea50dc59f409d066918dedf77f86448b60ea547565dcf2069ee0e0a646d53f34d244868600951c4b1a4d4e099fe50e3c2b477"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "IVu.04.092"; + }; + montserrat = { + revision = 54512; + shortdesc = "Montserrat sans serif, otf and pfb, with LaTeX support files"; + stripPrefix = 0; + fontMaps = [ "Map Montserrat.map" ]; + sha512.run = "58c8b4a1f6eceb10c7fef8e6dd951985ae6108cb3f93eedf20949923237cb8af6a834674dcea48b1c68b51284ef37fe2d4120d52fee82753fd873f60b585e685"; + sha512.doc = "694ee7f51b0fe1622981bfa636263bbe18f89ec481071af587a683648f4ee900d9100864e51669d65b9952e6acf64794b5610989d2bd86f6e4701e1e41193242"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.03"; + }; + moodle = { + revision = 65672; + shortdesc = "Generating Moodle quizzes via LaTeX"; + stripPrefix = 0; + sha512.run = "0a297097f864ed3dc8c9d263a6a3aa8930732679a585aa34e2e5b31852bdfc3cff40118d3b67566816dfeda0f74282a476ad8b5ad793d2c433cf44f41f7c91bf"; + sha512.doc = "ee40b07bc0ff2ff75f18eeb9ea68dec0a624a1b75b81ac00ea9c5caae3f6232213e1a5ff7028be28372cfc43685f4004059d972176eaa2b18688f16f8ef2ba09"; + sha512.source = "02754bd2d6ec9ca07e07b3768855cf100d09de057ad7b3605dd7a97574c7f8024028ca882b3b6a1cfa25e49ec40400690ed7e7e1404f0836a9d6158cfec30bca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + moreenum = { + revision = 24479; + shortdesc = "More enumeration options"; + stripPrefix = 0; + sha512.run = "069ef44faaa8847a07ad00dae31c1b63278d59a560ed90823100cd601850a798f574d8210c07854a8b1a90165efb3bba852e100e53aee496f78395e3d6defade"; + sha512.doc = "987a1dd96669b9202846fc604fbcfb935b68c79d13bbe4599f32fab9e869ca5b60f3b4bdfcf78d3b3f5102db9ab16955ec13958c4cf3df7ec64649268c226d1c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + morefloats = { + revision = 37927; + shortdesc = "Increase the number of simultaneous LaTeX floats"; + stripPrefix = 0; + sha512.run = "28fd471aa854852cc2a48597dda19cadda3c92c589d0419b8d36e044f9c04e406037f162e1d02c1f4b20a6288efe4a689fe4e03aafbfc6b06cf14019f7e880f0"; + sha512.doc = "f542aecb6d3868559cee66a7c153dc80cb6aacebae40c0cd0dd120c4230cd358b4d2787286cb3e7bdfb5565949861a35af65ca616369585b8f28462a2b1dbcf6"; + sha512.source = "7f527c20294826a6d7e1c3ff390ca02f521e9b6824db41d078b4132201d1d7575cb43eebda9e66e8226ba2a641db692ae2d1f1ccac5c4f027851b75100e261db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0h"; + }; + morehype = { + revision = 38815; + shortdesc = "Hypertext tools for use with LaTeX"; + stripPrefix = 0; + sha512.run = "698ec10d9e70dc1b89ed5094369359fdeffb663ca95513b7207aed065515a66dd2c82b4e43d14fe271c9851e72a44e9c2f6e3baa177ed9430f89e88bdd692172"; + sha512.doc = "2600045257c75dd15320a2f188f5b043358bfdb21ce4a19af2d1a696141a2f553da42c13143d14c8ba136fb1ef7a560684ac47c5274738c747f729a00b02a099"; + sha512.source = "f710fd59d5c99d7df8b84a365a8f8c110ac7086699f36d1851eb7fdd27ed43212c403c14d9f9105c78402b278d66fa77ca2f50a0253073f55842a60fb19b4c1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r0.83"; + }; + moresize = { + revision = 17513; + shortdesc = "Allows font sizes up to 35.83pt"; + stripPrefix = 0; + sha512.run = "92f67234dd9c0429798f9e8001a2d4b7004e11f2fa90130b738670e6228f45ebca3ba26ed98616e3af5c86148992f9915e3e6a1cfeb4c875fbd20fd818743525"; + sha512.doc = "3c1ed984163e2adbdaa7e94439e160327515f1c6999e40114819d8e5250e090c932909217d37d1d07fcb108c56ec50f294324c32523995f68f57fd918983a412"; + sha512.source = "701a2ba72c22bed8397350f92023b0b1d1587b837c4fd247dabe5860cc32e58499e8803a0286aa9f9e3831faff8b9ce0e74ac1a0f82d798a2f7f461b015b5809"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + moreverb = { + revision = 22126; + shortdesc = "Extended verbatim"; + stripPrefix = 0; + sha512.run = "673b7ab5951e418fe10622fb1a4b4a420c4c436684afbb1474c58b7aa7b235f7063555a220133257b351b5847be5e880714e44ca49bd9198a4306c0e821dcdde"; + sha512.doc = "27e4f361f5d7193c97629debec048168045bc38e353f677829677cb5ce5c0a9ad8f5b2576bd9f870da8dfbf16d745e489ba79e3dfe6aa1da8a9cab1ad72ace06"; + sha512.source = "55ec67b5b9616459a776b0ca386be19cb6ae57fa2a7bde1f6a1896233f4f303277474d629c884e40bcd8d076522ab4e41fbe8850304dbd33469a1f21750c81ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3a"; + }; + morewrites = { + revision = 69679; + shortdesc = "Always room for a new write stream"; + stripPrefix = 0; + sha512.run = "738ea602368142999aa6f5d99226767fe9d6613b3e5d58687d787e8e470bfbff3ec2fcabeb5931454754ad80661a5925f337ba600fa62f021ae99363451c4c75"; + sha512.doc = "a8aad8b575785ee7b36f6946ea2228c507745c4f7ca61e05e46c9b0824e84880e355264e45540b61022010943f2cd63cf051ed1d4b9b438a6eceac840cb2e6d4"; + sha512.source = "e3db6542cdd4548e0a9fa10a40b333e48ad4ab713acf8f38389f8ebe5113b598f647e9eb11047339ae09ae344aa22ea3ccc0f782c35dca2552fdf8707d4926c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + morisawa = { + revision = 46946; + shortdesc = "Enables selection of 5 standard Japanese fonts for pLaTeX + dvips"; + stripPrefix = 0; + fontMaps = [ "KanjiMap morisawa5.map" ]; + sha512.run = "7f149fab67905d6b21670becb1c3e3afbc8fb4c45fa3c376960e5a87d7fe17abe091af63930a8385b5bcb63e550fc0b9bb16d522f50f90b911b09599dc5ccafa"; + sha512.doc = "7af68b3a8233cec22efb49e8131c65e33db4076ed4f254f2d62f629c03d0122e8dddc3ba68d283affb5ca663d3b1f744780dc98c14eadfa1a69028df281e5bb2"; + sha512.source = "7e3821bc1f5dad076307ebf00cacb68cdeb9e18a060c9c024c0fea85c558f7373f214f16952fa643f8b832376101ec8c8bb839a902e6e8213912a4cbc10862ad"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + movement-arrows = { + revision = 67270; + shortdesc = "Drawing movement arrows on linguistic example sentences"; + stripPrefix = 0; + sha512.run = "42adce39a6f06212f5d6c3c235ad79772064d8b0588e3f79b34ba7f3a8530e08857e5a1612051ce6c58e419b0ea4f1a6012b19d8e37ae20ccb1a20c11f9894d8"; + sha512.doc = "d1f1856297ccfbcd42d05524d633857ce548fe5b5c5fc84d76239a2cd62989015ea62f2fdcb509e918e47cc176002fc5467c7d721942f674eb4cb405dbec1be7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + movie15 = { + revision = 26473; + shortdesc = "Multimedia inclusion package"; + stripPrefix = 0; + sha512.run = "a45726b24f76683c44b0f006d720695c14ef51a260fa00f3223a075e48173638dbc9d9d361fb4e1f8f567cbe80f65d990aae485b669901a50d5b18750640b103"; + sha512.doc = "4df2fec7f0abac6ef4d948285b3156bb9489a3b7b18939fa109abcd9c537e383d505e308516e1bc852aa5c5bdd6b8825e8f7e887c9787d7c2d337124942cc9e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mp3d = { + revision = 29349; + shortdesc = "3D animations"; + stripPrefix = 0; + sha512.run = "e5899aace25cef3a690150cf09e76bddc008f426800588ef7d21361229b0040dff74af7b43d563b05d8c3d16166e34b5a21e8e25ae3e97ca80e5ffe5c4925392"; + sha512.doc = "2b64199f50ae5b0e6528bf041ac2422574f9adf467183f3ee3d58ebd91317ce25937699be29d0a5954565a4fd326719f11bc04a35cb4938489696ae479d5d7f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.34"; + }; + mparhack = { + revision = 59066; + shortdesc = "Work around a LaTeX bug in marginpars"; + stripPrefix = 0; + sha512.run = "9a4e5a08320095095538eea8c5c5db5dc6d6c99ca3e3a3f5568228b8b52a4b1de98c1118b09626b58ef897f6810d2b43d2b5b416b3687e1bfd3a01506460bce5"; + sha512.doc = "fc4cff80bbf20460e28f8d5a142e8994cea7e017391b147a47332b444fad0ff8cde1e7bb29159e39f8c14f4c9881ab91dcc0e2f108cca1534d4335f5b6b32a1a"; + sha512.source = "1eda2d1f370141d0a5b0bc15f68dd40b9dd72017e8cfc75c71b19e2fa2ccfef7b1652d5c035c8ab6120e12089bf469b6e6edadd7997329da6409e6248bccc5a2"; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "1.5"; + }; + mparrows = { + revision = 39729; + shortdesc = "MetaPost module with different types of arrow heads"; + stripPrefix = 0; + sha512.run = "58e4a909374486cd2d4313d62a49e4e30a5e85f8ef2cc0d9a7e734b546ad8b36e3bbfb96f3eecaa9c10b8d7b3b1557aa9e0b5dae5b4547d42cabc64d2f2949d3"; + sha512.doc = "d1ca204228c1bc76d4f15257687a865c650fa83742dd126b3d7cd5e93e725b2da31eedfbca9a86e93eaa08df487b0432cc41f0d4fd2f99951f874691acf47016"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.1"; + }; + mpattern = { + revision = 15878; + shortdesc = "Patterns in MetaPost"; + stripPrefix = 0; + sha512.run = "1efc3f1f1c93456a3038ae5037ad5dcc4b177c57852f7db475a7ce6d2002559b370ba22dcc6d312c68ba75c03523cdf0df8546fff8dab032832d3ff3148b5d65"; + sha512.doc = "4ec7cadd89449ca049fdd723de9e29f20199a630fc28585a4802e3ce3666783822e4f0769907cafbfb0fe097b1da4a08d3e5e5f4038ecebbe9fe3543dd3413d6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + mpchess = { + revision = 67704; + shortdesc = "Drawing chess boards and positions with MetaPost"; + stripPrefix = 0; + sha512.run = "b65838b9b3177b069a2e8e4141fdb9ae68ac1dc9378c9fe7534fd23556d93ace29ba1ed9deaeb53fd54d709b77ecd98d9d0fc79dfc8e77b8eec899d4a332bc3f"; + sha512.doc = "c859e9f5df0d24bd1eb59dfd39dc97cd1ba6e713b33e37d17128388928071e2da8f41180da333fea34ee6215585208de193a381205fd866142f341e1856485d2"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Plus" + ]; + version = "0.7"; + }; + mpcolornames = { + revision = 23252; + shortdesc = "Extend list of predefined colour names for MetaPost"; + stripPrefix = 0; + sha512.run = "9808706010059e8d2683f88a47535b8039049681e5a9fdc013cc384bcacb1910cc7ab2f7614d35ed964c28507bf5fc062fe4db852afa45f9d9383c367838eeba"; + sha512.doc = "bfb9ce4c85de655b890948897deba96a5ff60cb7518b3e198cd0b088b63670531f29bd84dbde4837298a24f36dac0652f2d2d3491dbcd7ac8f9e57de6500c6dd"; + sha512.source = "ec29085382f6464b10323680488140b483aa09c9df050806a154fce60bf92feb7d4e04de444d0fb4b1623c6ea3506ba619bf0fb2477f048fd4c5f2f0be9f272c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.20"; + }; + mpfonts = { + revision = 54512; + shortdesc = "Computer Modern Type 3 fonts converted using MetaPost"; + stripPrefix = 0; + sha512.run = "7d602bca0f33f83033cbe15cb2376d0ae023a4d02218f10b64965580842f269a7065e6c2154bf78c7a72a46abd0e41214dea4d2f012f1945a17fb5b8cf0fa832"; + sha512.doc = "4aa1296012f4ed3483f444320d7d28d942823da0cd58c1350dc4a90da1fa5e51cd5bac86f257290c720f9808b74c2cc87c49f18882073ac44ef7f577248f57be"; + hasRunfiles = true; + license = [ + "knuth" + "lppl13c" + "ofl" + "free" + "publicDomain" + ]; + }; + mpgraphics = { + revision = 29776; + shortdesc = "Process and display MetaPost figures inline"; + stripPrefix = 0; + sha512.run = "5d711f7a981f701e11874916fe8d22fa237404dc119fc2d5c8f8e9b3eaf8feb59a63023ec30f0c67d304839e4971288a669d70a697260af35e401edf00673adb"; + sha512.doc = "954c8e3a8a0deafea163c9bea9da6bd1c27fcc9b5270408fdd29f0051ece1f4138a0af99808cf85279823cb48475b8e21b3a450f021d678fc5b2fbdf28e55320"; + sha512.source = "30e7324760efabffddf6920362ba213eb05fce2658d9a442677a2f8f322695d5a361b1d183c4f775b289ac116d586e2466be46d4ea1798cde251132b95a98bdd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + mpman-ru = { + revision = 15878; + shortdesc = "A Russian translation of the MetaPost manual"; + stripPrefix = 0; + sha512.run = "e234fc25e9d8e5aa89a59e21186a16de3c695ce45c9ee8d132546381cb18e9be681bd4ee9c70bb10b4769ada5e5874b500d2a3cd7d264d89610dcda35fcba9a1"; + sha512.doc = "57f2449eaed3651b808095348f056fdfa90b00979ba2e21fad120efe096dca9a9e48474e9dbb539f347ffe20ccd5582f4815ff4552c54e9ea5f9df391dd75edb"; + license = [ "free" ]; + version = "1.004"; + }; + mpostinl = { + revision = 49559; + shortdesc = "Embed MetaPost figures within LaTeX documents"; + stripPrefix = 0; + sha512.run = "0749fdf4c54efe9b8c9ed9f735a851a0c0b08a9092679bbb80eb32a80ed6e7284094a043e27721dacf8112b6898a8c5f47bf0b0dea4af9082a40bead0599ee76"; + sha512.doc = "ad639ec50e5b71a1ef02bcc04cb1c0b195e9ed2cdef9ff8e145d17cfb34dd853d96449620f5d0eba614154cdf6291902316f4fdfbd179a112cebbe2a059acc70"; + sha512.source = "44ff22f1fb0496422dd760b786174e520643ae9c2b8d3b922a08f9e065708fb4c292169e58cd328381c29672d0526c13506429c55eb57100e96f876324e6fbb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + mptopdf = { + revision = 69363; + shortdesc = "mpost to PDF, native MetaPost graphics inclusion"; + deps = [ + "pdftex" + "plain" + ]; + formats = [ + { + name = "mptopdf"; + engine = "pdftex"; + options = "-translate-file=cp227.tcx mptopdf.tex"; + fmttriggers = [ "plain" ]; + } + ]; + sha512.run = "680851a49d124cf0e2ff0c7626dbb5c5e48358ab08c94906cfe019fa2066dd3b47c763c7985a101d44ef6a6bfab3b3f72c88bbc1ad0eca0258b8f6467ffc0ede"; + sha512.doc = "46b4dbe5a903601078da34238dc449ad932dbc44fdbb6df33b53554fbbe8d47307ba99e971ab197e468a8689d731f989c02097ca2b8ab07c575ec05e2866e81a"; + hasManpages = true; + hasRunfiles = true; + }; + mptopdf.binfiles = [ "mptopdf" ]; + mptrees = { + revision = 70117; + shortdesc = "Probability trees with MetaPost"; + stripPrefix = 0; + sha512.run = "64efb9355c79a8145e0bd4e44922c789a718f389ecb59ac186ec32da8e37323d09cc33d558cbf67ca5550f68501282dc429b784f483df1e3df5b9d5bc3b5ddd6"; + sha512.doc = "de5d2c52ebd3651ff42812fe4ea74a4ed92cdd8d0452f2e83af9723581820ee07e2e9528cdc254410193d8b82f8ede7554e182c1fee104333715f253d3ad0d41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "24.02"; + }; + ms = { + revision = 57473; + shortdesc = "Various LaTeX packages by Martin Schroder"; + stripPrefix = 0; + sha512.run = "73d46ed7ba85773f4ba7c261ff0ea8f2e751e53659fc19686bddd9523b160dba5e367c8fcb30a20678e4a3df26c0812a6b771736eef8616e112cbac3a25e7b48"; + sha512.doc = "d112ff182da85ee8d84d8e7cfc50e5c13ad2e555ffe4dd2867a3439d69193ec7bc24fa87d2527936a57dbdc8e98df8d2862a740f91d497a8eba7108973a637aa"; + sha512.source = "b03f9ac6bc7ab56bacac4053d278d0c826925f4f81df80e73ee2a48209e1e51c48b0706dbd0d69ec9a068e4a59a12df104b8e7dfd60cd0cd5c6210f43d528ce7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + msc = { + revision = 67718; + shortdesc = "Draw MSC diagrams"; + stripPrefix = 0; + sha512.run = "103ff1fd368f97920f5403691ccb5fafb34c6a291db5d76a83d56f64d1ec452386cb844dfea7462fcec573d86b05fb183034ae8968d7127f4bf425aebac1f087"; + sha512.doc = "e336c0969d2f39c06baab3f7573109e11f76acf47767f0653996ea772bc5fc4ac801154c5fa0df2eeaf999699aa0d61c1e7d223b44248fba72dccc8bc1b86663"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.00"; + }; + msg = { + revision = 49578; + shortdesc = "A package for LaTeX localisation"; + stripPrefix = 0; + sha512.run = "9419f306ccde237320abe22fe192a2473785244fd337063332a242e029b8650404df7f7d150b196d3bccb0e10e58e25e2b8aefb15627e89eda8636ddc50599e1"; + sha512.doc = "85db0022daca5aeeb50e2eded6214a3b144012bfd0bd433b4f9474307c2a37e57c7a311385b8de4efcdc4e462f39c53f6a5fcfac2eae7263e2d1583b0ba584df"; + sha512.source = "988d410412b2e7b3617678d0cdb2e8059f7261d48b942eff588c472ccb29e022a3e10ae2302268789331c20705ce062f0930ef53bb785245923ba199ed71b15f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.51"; + }; + mslapa = { + revision = 54080; + shortdesc = "Michael Landy's APA citation style"; + stripPrefix = 0; + sha512.run = "28a13eda4b10f25e4887feb44f64e23cfa683d28e57b66a64d2a15c627e5f7aaef36e9fbbbf3c2320891a0bb9a5270fb59ca9044f1822402d82bc494f41dc3a9"; + sha512.doc = "b53311156cb6872ec996130474f18d8735f9fbba8d53258638f78d498b3cb294eb490b6eb1460546dcec39258e0785401dad5ecb66c82e2cfd7814bfa852908b"; + hasRunfiles = true; + license = [ "free" ]; + }; + msu-thesis = { + revision = 68480; + shortdesc = "Class for Michigan State University Master's and PhD theses"; + stripPrefix = 0; + sha512.run = "a25f539ee6eb50450a603b25d6639918118a8882df16fdbe71dee49f09045480b80514994079f291120d6f3132753a90cfe3a7eb5e366a6c8b15b6674735fa85"; + sha512.doc = "da32f1f22664d0bf05561a4d99977b942c95167a2e325928fc05714bf59a9f8aaec302f278685d0fae90b8511d246a156936101f6a12fe76a31d7aaef5dd762b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1h"; + }; + mtgreek = { + revision = 17967; + shortdesc = "Use italic and upright greek letters with mathtime"; + stripPrefix = 0; + sha512.run = "fbc20f61e1d4e9d3ebf4a92216c7c007f2aec2b2cac0aca6e08f0e1ea5f6f405a32d947efcea0057a025a138afc85e0d1486191ee82fa9a0e9f2f6e2542a9e11"; + sha512.doc = "49631058e9bfc59dd38a7e0e2134f6d9ddf68779a6f8087a056a89fef975154510496415b782102dfeae6b5563527fb6178ce301b004fe33a4dfa8dbeb4474ac"; + sha512.source = "d69c6248a4d8fbb9a64cd539e7f66db5373f9551d27c98b755377594f9b1680a323719599f5963972d169399a0686b5e6f500148cc54881d23d8adb3b91bf4f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1+"; + }; + mucproc = { + revision = 43445; + shortdesc = "Conference proceedings for the German MuC-conference"; + stripPrefix = 0; + sha512.run = "02ee23aa25152e80e8dc2c57f14b99c70ff57c38175498c179e505a76d967f826acf076cae2085d305cde93964f03134fc6d1027e0669acdbaba5ed5ff6efa8e"; + sha512.doc = "01d154fab3c0ad8db790b5a22fcc4cae7a5beea1a2850f5e9d6fb1fcdc6c1071c2dc294568451f40db5455826f78ae910be9572de5a4a7d870e3a18a74fc0082"; + sha512.source = "f1ce5b80ed1c79cdb5939fda97b18bd263b313496a98cd7940e990ff719dff9e633d636505c0d538f37ff26a81c33d6f625f51a479e5ed6f949f7b3ebd845917"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + mugsthesis = { + revision = 64259; + shortdesc = "Thesis class complying with Marquette University Graduate School requirements"; + stripPrefix = 0; + sha512.run = "f86bfd4362af798bc435bf6ad1f6ed6f8cbafa61a4bf273a196160bedff21d349c1d4294e63de5a2c925ec3f5918dbb6ac4f5c8cd41785ee715cbc4e903aa226"; + sha512.doc = "18b239e98e97512030a55a6a9d071e2b53ac34147f121d14687dd2e68acf3cba3bc7c36c7b64dd3221121a37cc7665cc71ce0012218ca2f8a28eefd6ef46bc3d"; + sha512.source = "8615a13f214ceee375685ab995ed91cf8521d213e311809561009f2d43745c5dae8b126ce09412a23007376e02a0b9a8abc021b2e5b8ac5e390e07640704f255"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + muling = { + revision = 66741; + shortdesc = "MA Thesis class for the Department of Linguistics, University of Mumbai"; + stripPrefix = 0; + sha512.run = "5a955e229ffe00e276c4ee4590473ba9d137d668c63294735ecefb031f2a01b310723dd2a5cf37b4c9613793df39146d08c01e2109ca37fe1d9136903cd6aaa2"; + sha512.doc = "9eea5504062340098751c51d99433f91e95bfe74b93f584e08d3c6d1ae516f6d8a18e8495d10a90a4c5f751f44854758a3a8779d56ae158397f35419218aa01d"; + sha512.source = "fd0a41543e4d20ece031b9d2143a6f4196010141dac7c3525d7dfdea17e93ce1c6602e78c00d4d310a9ceadce2d9042140b8b53deaa95d665b3fc043042505ad"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "0.5"; + }; + multenum = { + revision = 21775; + shortdesc = "Multi-column enumerated lists"; + stripPrefix = 0; + sha512.run = "e73e2d3fe45f562398de752520628032fea310e5345a247472a2807618b72467b245995f32f21474dcb5702106bf32d6394508a96c4aeae4dbeaf6fdda7bdf4e"; + sha512.doc = "889ffbce149b1f0a98e22a1ebcafc60e29858d08b57e2e567956830c679515759a6c8209901641e3d77ded31238e8fe93f7e4cdff95d1be925e3972c9005f4a7"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + multiaudience = { + revision = 60688; + shortdesc = "Several versions of output from the same source"; + stripPrefix = 0; + sha512.run = "a7d89874dbe314ab37cf42d8d520e234764bfc3fbbb6c89e47be95ef83bacd170c290bae005830286e206da25a68939ed8ee60cf11ad3f5ff9d994d568638b86"; + sha512.doc = "b6023873f5843ec7db13e551417ef4c31a2f622372f32b4ad7af1ab155e3902185b06d6f2fdd432bf582f3da8a5e32e985fde93ae88b7916062db25021a641a1"; + sha512.source = "8d528b7e27f8883846386374cc936118a9537f0dfabc71c3b993f105dee381f0cd2b40e16d5c48df01b9709f902479ba87c6b94278f6e8be98beafbf9dd3e4ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + multibbl = { + revision = 15878; + shortdesc = "Multiple bibliographies"; + stripPrefix = 0; + sha512.run = "419f7bcf8f2226cf8c60119e30da278bf6138f4e1903dc322da33ca2b22120e50b205dc0bb01b46cab0c93fdaacc37b823a812121a731fdea4cf03354d1b0690"; + sha512.doc = "68a3f99cbde27d15fa8b56730f4e9f7587bcecfc9a6ebe19a7811a29278cbe21f214465942bd4ee6cc28833b9614dfef14714dceddcdb041d5676ee7ead810bb"; + sha512.source = "be2bb39e0267d6a008dd3dab1d1fbfc22e38017656f6fd717e35d3252def115d451a1eddadc6fbb3787bee901b43b09327ebb0f676ee452db71196cd2299778c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + multibib = { + revision = 15878; + shortdesc = "Multiple bibliographies within one document"; + stripPrefix = 0; + sha512.run = "82cd48cf9097b36664d4dcfb5d73dbd6e961c2f0a8bf7816d1bc59a33cb6d2c65e0f63a9d1d596dc9faa4339536746089e34bd1b510e1b2c0ea272df5840e396"; + sha512.doc = "1d4536094c09755fc91b2657cc0eb0b0b2fd8d1c5ca37bf2f046b62a4b0be6f83a93debac8be3c5481651dc75cac2066962556370bd84face6b03aaba24bbcc6"; + sha512.source = "c7777e3c32833538893ae463d8396f894b390f642fa697b8ba237cd7183e2bc7cb86a9773530962f41372e4ec016eb96c7a060dc63081b2faf29248a65f14a1f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + multibibliography = { + revision = 30939; + shortdesc = "Multiple versions of a bibliography, with different sort orders"; + sha512.run = "faa2e16b8bdb9309e2f16cdb2c717b59c8ecd5d73e4819d72ee3226a80fe0c0ff6b4d686d0f1d009601e0d6dea140cd4812c2f4cb94f37b5bd9cc1bd19137965"; + sha512.doc = "3e13c8c60ab8091a363b63a63259e53e3c5076feb224a6f426e55a351141f007ea8bf7526b0f80684c83e4e97b43f5f05217e254f978e8b69665c736efbe8512"; + sha512.source = "544b3778bd0a51e99e89e18e606d37551576d655a01b46523786d6f910cf84b3886a8b29c72b9e0c25b3ae629045470b24e2741d7894f867437ca069cd692cb4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + multibibliography.binfiles = [ "multibibliography" ]; + multicap = { + revision = 15878; + shortdesc = "Format captions inside multicols"; + stripPrefix = 0; + sha512.run = "5e4a4eebd7560d4aebdaf7035b9bc14116a32cb2e043aa93afb9f95eaf271fdd75fe7d2b6296d36327d7aa5b14b52046b0c941ae949584ad27a2b89ebe54b6de"; + sha512.doc = "644f46fa6431f0f7bbbdfed8a346887d107c8ff7c8d5b2c826b16994faa48d83ca59cd139c16fa144122e0425e6a2c592762b86568f17fb914dd943cdb7eb808"; + sha512.source = "95df0571a8741db7d0b4d3ab0fd0d1469c531a00e3cf524977fe2cec57c3cb9ce9cf3c3136b42a8d0fb8f9dea2e8f4cc6f07fa48490167094e04c0e688d45527"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + multicolrule = { + revision = 56366; + shortdesc = "Decorative rules between columns"; + stripPrefix = 0; + sha512.run = "46c8745965a2863f3ded3aff6a910e1971d9aa3127a33c36431d68d1150075f52444495c0fd16fa1b737d2f1dfe7058879f7a50003f763cd0d28781f62bfea0e"; + sha512.doc = "42d7798d38abce4454a726dd2998b94e4171bf963108a8ed18b05b5acae739e19e8e1189e74cfaad02f4ca92b32e7fd0afe9496fbd35983574da8607441a2295"; + sha512.source = "53c008ef7b7b6505a592ac3684ae51224e9a1d7def82822a376b7b4b6e6f1ccfe3cb2e2dc677efce6ac3807b5ac7424c34003df2006b8682c89ea78a060178b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + multidef = { + revision = 40637; + shortdesc = "Quickly define several similar macros"; + stripPrefix = 0; + sha512.run = "2d15975c8a191cc08925cc8cd74b982af909a7488a68e4b6f5eb4c2ba0dc94dbcb40c4347c5c4774fda24f98efff52131f6a243e1e6bdcb4dde7e683e408d6a9"; + sha512.doc = "50b26f8fcfde20dd04f3e3701d611631c8914e9488a3f87d25e0c60803090133f9abe889b449c67a09ccd5053c67c4a3ea699d52d44480051391edaaa7ff9ef7"; + sha512.source = "4f506eef5dc2bbb8c740d3b25c00e21a56ccb02410adc85788f2cf2ec7da81531ec5843d0a29931ab1aea0b4e8280eeb235b6a97505fb777068d902199cfd084"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + multido = { + revision = 18302; + shortdesc = "A loop facility for Generic TeX"; + stripPrefix = 0; + sha512.run = "5c861bddcb8b2bdb654dc4438621834a68b2bca102799317c9a220f9bc9bc4c9d70775375302a85736f8706bb7fbfc1a4c24fae2f850237e8f54ad521b1cef83"; + sha512.doc = "8cef36438fbe57c54f625b178331f7a6ca19854abcddb475283fc0cb4a362764c443de05989245e962dba9e2e4f17734533502fbd4b2ef4fc8e8c36b96bc68ab"; + sha512.source = "3f3f6f5813ab1da542ebc9c4837da72339804866875bf225292d8a36ebf54b33f12d3e84de9d0b5027d3e8889e10180649a19e25c7ec6bb532296e9e204e25e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.42"; + }; + multienv = { + revision = 64967; + shortdesc = "Multiple environments using a \"key=value\" syntax"; + stripPrefix = 0; + sha512.run = "04090331e44ac252dcc6929ec995cb0e6d38922729a6af99ba103a833d1ac93f7553d9314359cc5b1ad16d16757828e57059a6f1f8bf2892abc41b2d901fb15d"; + sha512.doc = "29dfcd04a9b88d6da8a279b021e3178652c388a9afce5063e863307b8030fce66dafd48ae2a7e18f1e5e207f0f11b4d6c8da035f0799ddfc47856b7651d7fd9a"; + sha512.source = "5c636e3040ec84931a7188151eff2eb4bd2696c4137c2e2dc27dcd2190cc316e3c75ebf74c49f0eb6c8e43900e87410c3ad414dd623c045f58ba1d198ef630bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + multiexpand = { + revision = 45943; + shortdesc = "Variations on the primitive command \expandafter"; + stripPrefix = 0; + sha512.run = "63f512ca5b9649c86a6936cc2407737e41afd6c6a3b4810fe81155a5b4127aecc538303e26b91f53decee900fba7946e90a46a545b3c9caafb3e0863940e0009"; + sha512.doc = "6b8a727aae2d314877df551ca5804e84be0bc530b4f09d8bfe6a9c1a4c1eb98647257beeb1813a183f0aa5422b0041443e817ce11b6db70e4129e3edc664e788"; + sha512.source = "197ad74e02212405fee0c79ea03021172e7ac5a99222e0c0d300da6a141bc694a2957c544bd357fb67fcac24acbbb4059041bd37f607b29f5f763b59b70613f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + multifootnote = { + revision = 63456; + shortdesc = "Multiple numbers for the same footnote"; + stripPrefix = 0; + sha512.run = "928a2086fdf167ae23f851ec6da8cd84a012e85c97f56b7ed62fbb2873cbc6cf2793a02c8c23bc76f0bae3089edf9c594141a9029920d9f1038f7cf4b39c5e23"; + sha512.doc = "9e74a56d5d27506e354d0d68b4639df92ba4d017354e3f12bb2c9be33c210eef6cd2ad3dbcf0fa17b75b0c938da9407f0b4f9ce3e5fee000e2840d702d28fca9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + multilang = { + revision = 49065; + shortdesc = "A LaTeX package for maintaining multiple translations of a document"; + stripPrefix = 0; + sha512.run = "57f9829b100068a84feb8a09a94066b93ec5fe70daf831ea99604089a4fc2f67af76f79505a2eab6dbc8f2b025feed6d908a1f24630e27e0f7606c4a3ebb71ca"; + sha512.doc = "e611f2195fc4f7083d6343eb3554a2e786fd6522383456544e45346481cd57d54b0899cdc6ffd9edc4b75567b1e092ecc597bff660d849e0ce2b3e2d1bd55507"; + sha512.source = "1e52e9c740d0eae4f89eb4a65e1d12b3d5f159cd6c938f729bdd019ccb8bcf98300a544fa7131fe214cde9b7b58f9b64a771a49513f45943c681893fbfc78b6e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.9b"; + }; + multiobjective = { + revision = 15878; + shortdesc = "Symbols for multiobjective optimisation etc"; + stripPrefix = 0; + sha512.run = "80b0f340f19dff329cd9f0fc32cbb9a8cf690243aa925d6687b9da345984f9eba9c0db7b62fedd2a54f077d841b9cbe91e47c98140f1cfeebdb16fc05408898d"; + sha512.doc = "3a7c68054a85bbad36b6516c52ea74c35ce11c5ffd6f3d1f235ecc2ea55209343a4ff609857877094fb7f8861e8b7c54c8c979d06cc3b3583fb64e997372ae9c"; + sha512.source = "99b9d17438d9f3f8a6ac40d0e705371d255af957fa5dc78dd6d98c89b515cb5af7377b5ac11558c84c7908b7efc7faadc9be83b86c2a255ba8c4033a69be3f4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + multiple-choice = { + revision = 63722; + shortdesc = "LaTeX package for multiple-choice questions"; + stripPrefix = 0; + sha512.run = "975e7ba809ff551faacfeb8c40f0965da34068b4d4d2d0d14d9334996a245682e74ee05a4ef99fab064263c14c0ee4e7fc50372184c2db7ea90572eb9f4beaeb"; + sha512.doc = "334d989ca885f640b339028d85acefc8d1762b587e652805ef49a97c0cc1cff9f87fdae884c613719b5c377eda17f85c22137db6a368b663a389661bf34f6e4a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + multirow = { + revision = 58396; + shortdesc = "Create tabular cells spanning multiple rows"; + stripPrefix = 0; + sha512.run = "7591c7994fcac6fe351189c1364b448ac8b82e88bdaa50ec87c72123961a1bddfc02b397d5955eb96b9d47b4bcc9b6c1352eab0016b1dec24e034a95c53323fd"; + sha512.doc = "c02af3deb73b076662da0f45769dc57a7e11546e225f0df76f1fb163251e070b09203c4434382b7d4c3ad110460d0a1b6b0b384079b4a7cb54d105173fc7c575"; + sha512.source = "0b6880a377534734eec1945b91a8479bbbaccb61c3da5b4986e53ed0d9e0837f88ddc6c1718a36482070a12dfb490c0295123684707ad531213b219f314d2d1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.8"; + }; + munich = { + revision = 15878; + shortdesc = "An alternative authordate bibliography style"; + stripPrefix = 0; + sha512.run = "d8d2de2245f24c6993fcd178e2a21891e66b5b99039e8969639d2a9cba15abc6c3c50374db61c8082695a969a69ddce902ff8b5fb8104fe66ba1384ef99b93f2"; + sha512.doc = "ed2dc99df090a012f1b1b922659eebe4c2d8523127e17341b9c4b66413acfc89f8b64ed639c8fd40ace0f4fddc8662f42630411c67026311a26fed436a363b78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + musical = { + revision = 54758; + shortdesc = "Typeset (musical) theatre scripts"; + stripPrefix = 0; + sha512.run = "4bb8bd0781cd49950f2a80ed9527de1b0e49ef6eefea5787d1d13efa3893d57b48a9b69ddf0f62bd2695a61d9b785cfa1dfad2217f8cd97929e1dfefac9333c6"; + sha512.doc = "c06f45815ff65fa7c492575731bf1aec0e774cf5a81907d1e381ac8ab366c167ada688b8c8fc82293c96980c5361a688eda666b130c1ac3f39976d49bf78f60c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + musicography = { + revision = 68220; + shortdesc = "Accessing symbols for music writing with pdfLaTeX"; + stripPrefix = 0; + sha512.run = "310c10402a269d7bf44a811b841be8a8058ef8eefdfa4440fa64ac27983fe1212134e4a616b3979ffa4f63c8ee86a7ccc5568d49c195dc1683b326a501cd83fe"; + sha512.doc = "52dc06ba9b0394c0ea66fc02094174b45733002a3a492784b1e67670614caf57a162d5ab74cd51bbe6d884fbf0f04458d6eeafa2faf637ccfde4fbbfa435cb7f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + musikui = { + revision = 47472; + shortdesc = "Easy creation of \"arithmetical restoration\" puzzles"; + stripPrefix = 0; + sha512.run = "602132bc51f1ed20f045bf0c822f201f7bbf3386f9181599894e66cb3c59f4ed15364013a5e30bfc59b22ab3fe4931872b779d1e7f34b8dbcd1eabe058b1f5e3"; + sha512.doc = "29cc8526543698f218e8c9c20b424fb2b05d3ee0a67c70a2afadd33dc49f0030ceb440b349898b8bd66a53a5682aa8289d081e4502fa5ccdfe481b4e2430de03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + musixguit = { + revision = 21649; + shortdesc = "Easy notation for guitar music, in MusixTeX"; + stripPrefix = 0; + sha512.run = "6262e1b447f517680ddfd9e5e076ea384dfa7fc8d219e7a2613a80ba66a0f0435d9dc31502f6abbfc150fa1e2de001afbdec25dd5778e3ffe559ea389d57208a"; + sha512.doc = "8a6c9a42383d6b35c1300b958a7629306a6883bec1bd68751165eb3514f8f069c9995247142bad459e06fa42378a9ddd23093cb749bb2ccd58743312f83425dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + musixtex = { + revision = 69742; + shortdesc = "Sophisticated music typesetting"; + sha512.run = "ee6f9654d867c1f8a4e4a5744a927f511510ef2397d8b452f635704154692cdd128a73fe6c6719099e9794e727beb1e38b211a61d15caa3649a5c059b0be8376"; + sha512.doc = "942fca6475fdff821fa847c06d6dd8f92cf786e8f0f79d8edeab6276dad177fe97b8c70adb86db424b99875952b93151db35007575744fbc1d814e28ea03b949"; + hasManpages = true; + sha512.source = "61984af8c6a5b024a6e5afa310b42953bb12c68cbcde2af24dc885bcdf28854eb0bc44a764d6ee25d6dacdb7395c62941964fea8768f11e75e11835dfc6e1363"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl2Plus" ]; + version = "1.37"; + }; + musixtex-fonts = { + revision = 65517; + shortdesc = "Fonts used by MusixTeX"; + stripPrefix = 0; + fontMaps = [ "MixedMap musix.map" ]; + sha512.run = "53c6f1b80b789608ad1187a2d593474c12d71b27ce9bd8c9c0cc7d2ba1bf3501c2dbab6375f51eb4841646b1f0dc7ed1c641efef6bc32dbaae3cec56f6583e09"; + sha512.doc = "eff2e4596dd426f1f57003d6441eb0632f7b9bbbb216ab4e2b069a1a624e77e06f032f191ba13afd2e55b472f5a719936f34fcf2ba6997336a3c3716c4d936c3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + musixtex.binfiles = [ + "musixflx" "musixtex" ]; - sha512.run = "cd36d0240d3874930da5ceb759254e6b6e3d7cff6ef12aa74ce3d532580b731fe79cce0ce729d4304659691c13a5e28e3c02098cff7ece22f010e8051afcbf56"; - sha512.doc = "9d5646e3657c74a6d6c6be0c3f07e91ece88c9f0430e7cd54fec45769ac308b813a0f39ed202b518092d856e3fa0876c589f36f37c38b62adf078647aab42a63"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -musixtnt.binfiles = [ - "msxlint" -]; -musuos = { - revision = 24857; - shortdesc = "Typeset papers for the department of music, Osnabruck"; - stripPrefix = 0; - sha512.run = "3ad7bc18f20b0df70f6c92f7816d4e5bc90070a392788d93caffaba39f25e516a1ca4a6ef5438dbe55b514822d2882e7dfb809eaa4fb1380475fd624ec3efb9f"; - sha512.doc = "a2bc27d789cbd6833961d41ee6d697004fa7539810aafa8749af918572dbd20e2f267bb7435c068fd604540d0a75d1a558fea38a8cc7748c9dcf087c17469a61"; - sha512.source = "55cbd375a48388b310c52e26b02b6dcd56f7d50761addaf275de656a2668bbb0c436c742649cfa07355e626c3ee01572960fc0177ce4226f764db2b5c3e04598"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1d"; -}; -muthesis = { - revision = 23861; - shortdesc = "Classes for University of Manchester Dept of Computer Science"; - stripPrefix = 0; - sha512.run = "66345512d1713dcd352feeb46d8ad9c609d4c9364a37b47b5fc0207800f6576831e15d7be59ce13f560ebedaeac9a595f2bd7045b621fbdc8e20a3b3c553524d"; - sha512.doc = "5ed08b459ffdc954f5857be1a1970e9a23d2cfc23cbb04e820b82368b1febb9bf04811e53ce6fd05cc12da302d182179d29b278fb99157e801afd05db15cbaa1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mversion = { - revision = 29370; - shortdesc = "Keeping track of document versions"; - stripPrefix = 0; - sha512.run = "3031b6aa9408bfb0994ff23c36f6b3f770aa8beac0e94bfe1361dc2ec6ac47859a996ddea9f5283833e5711d0308ebfe5aae91bc0ab564c6e83056d7394f14f5"; - sha512.doc = "bf7639f024b214c2b8b73cbe4f87848f390d106f46afff6f6a1257d80b37a6b7b02d8d9224580d945b93b3f86a43495d00c5c07d22e8428703036dc43273ad41"; - sha512.source = "22ea633c451f88302061c2d3427ed52e561bf31bde30456e632f3abbca918a329c40e239ecf0a2f2b219a23da063101ebc9a23ea5fa355e479ee28a9404d50b7"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0.1"; -}; -mwcls = { - revision = 44352; - shortdesc = "Polish-oriented document classes"; - stripPrefix = 0; - sha512.run = "045fbe4985684ff7bad3a7c493fa0b37e412e698ee5eaf31b4ccdf3e185433d185faeb78bbbae7e11b84354e4dcbc24c8f2cf549a64b81ed0b6adfceb4bc8d8a"; - sha512.doc = "17b548e9db8a842c16367cd27b3f5639fdaf418f1967155a72c90e3e91d47a121c87dcf2bf0c6eb9042005d54e04ee40b367e0d81c7e2ff57de04da617f8b1b2"; - sha512.source = "aff2829633113538493a5634fa11d11a65d643e65afe74255ab31141ddd5fb39f6da59764507af10314b1d458c5c75b1f970b808b1e90c53d211cb4bc11f3b55"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.75"; -}; -mwe = { - revision = 64967; - shortdesc = "Packages and image files for MWEs"; - stripPrefix = 0; - sha512.run = "707e5fbc793f608432e0c565311964a8b92ce55dfae43649cab61b767b22d35029a781fe9cf5997505afae4ff75a48d82acff95cd18b27b72033616ab06e22e0"; - sha512.doc = "d6cb1e619dfa4e99128e4fbb95605eaeee694c59636f6759055f3ffa7ff13f12fa1a6d73a26e72baf63bcdb9737ebb41795b79367498e2c1122ca2b15c4fbee0"; - sha512.source = "aebd949d303f0de76079b78fa94f6c9d941c2cde5f35b25dd8a9b3db9dafbd4fffa73e5edc216d1b68ce15daee383794a0553b905ce29977c56b03d4cc6136ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -mweights = { - revision = 53520; - shortdesc = "Support for multiple-weight font packages"; - stripPrefix = 0; - sha512.run = "50d675bdee00625b5fbdcc1ef923a48abc19af890faab90ddde4893081dd2a5de6b5ce9165a4bece512c885ba3f3990d8dc300a873177c725a5aa16b434d4e77"; - sha512.doc = "b103ae1a7e4072e646aa70ccd660cef52b6954deec6425fe2007c15a1f56fb45d43d276449e436f188e52192609766237ec22b69c7782af5c0e3f15081989dc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mxedruli = { - revision = 30021; - shortdesc = "A pair of fonts for different Georgian alphabets"; - stripPrefix = 0; - fontMaps = [ - "Map mxedruli.map" + musixtnt = { + revision = 69742; + shortdesc = "A MusiXTeX extension library that enables transformations of the effect of notes commands"; + deps = [ "musixtex" ]; + sha512.run = "cd36d0240d3874930da5ceb759254e6b6e3d7cff6ef12aa74ce3d532580b731fe79cce0ce729d4304659691c13a5e28e3c02098cff7ece22f010e8051afcbf56"; + sha512.doc = "9d5646e3657c74a6d6c6be0c3f07e91ece88c9f0430e7cd54fec45769ac308b813a0f39ed202b518092d856e3fa0876c589f36f37c38b62adf078647aab42a63"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + musixtnt.binfiles = [ "msxlint" ]; + musuos = { + revision = 24857; + shortdesc = "Typeset papers for the department of music, Osnabruck"; + stripPrefix = 0; + sha512.run = "3ad7bc18f20b0df70f6c92f7816d4e5bc90070a392788d93caffaba39f25e516a1ca4a6ef5438dbe55b514822d2882e7dfb809eaa4fb1380475fd624ec3efb9f"; + sha512.doc = "a2bc27d789cbd6833961d41ee6d697004fa7539810aafa8749af918572dbd20e2f267bb7435c068fd604540d0a75d1a558fea38a8cc7748c9dcf087c17469a61"; + sha512.source = "55cbd375a48388b310c52e26b02b6dcd56f7d50761addaf275de656a2668bbb0c436c742649cfa07355e626c3ee01572960fc0177ce4226f764db2b5c3e04598"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1d"; + }; + muthesis = { + revision = 23861; + shortdesc = "Classes for University of Manchester Dept of Computer Science"; + stripPrefix = 0; + sha512.run = "66345512d1713dcd352feeb46d8ad9c609d4c9364a37b47b5fc0207800f6576831e15d7be59ce13f560ebedaeac9a595f2bd7045b621fbdc8e20a3b3c553524d"; + sha512.doc = "5ed08b459ffdc954f5857be1a1970e9a23d2cfc23cbb04e820b82368b1febb9bf04811e53ce6fd05cc12da302d182179d29b278fb99157e801afd05db15cbaa1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mversion = { + revision = 29370; + shortdesc = "Keeping track of document versions"; + stripPrefix = 0; + sha512.run = "3031b6aa9408bfb0994ff23c36f6b3f770aa8beac0e94bfe1361dc2ec6ac47859a996ddea9f5283833e5711d0308ebfe5aae91bc0ab564c6e83056d7394f14f5"; + sha512.doc = "bf7639f024b214c2b8b73cbe4f87848f390d106f46afff6f6a1257d80b37a6b7b02d8d9224580d945b93b3f86a43495d00c5c07d22e8428703036dc43273ad41"; + sha512.source = "22ea633c451f88302061c2d3427ed52e561bf31bde30456e632f3abbca918a329c40e239ecf0a2f2b219a23da063101ebc9a23ea5fa355e479ee28a9404d50b7"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0.1"; + }; + mwcls = { + revision = 44352; + shortdesc = "Polish-oriented document classes"; + stripPrefix = 0; + sha512.run = "045fbe4985684ff7bad3a7c493fa0b37e412e698ee5eaf31b4ccdf3e185433d185faeb78bbbae7e11b84354e4dcbc24c8f2cf549a64b81ed0b6adfceb4bc8d8a"; + sha512.doc = "17b548e9db8a842c16367cd27b3f5639fdaf418f1967155a72c90e3e91d47a121c87dcf2bf0c6eb9042005d54e04ee40b367e0d81c7e2ff57de04da617f8b1b2"; + sha512.source = "aff2829633113538493a5634fa11d11a65d643e65afe74255ab31141ddd5fb39f6da59764507af10314b1d458c5c75b1f970b808b1e90c53d211cb4bc11f3b55"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.75"; + }; + mwe = { + revision = 64967; + shortdesc = "Packages and image files for MWEs"; + stripPrefix = 0; + sha512.run = "707e5fbc793f608432e0c565311964a8b92ce55dfae43649cab61b767b22d35029a781fe9cf5997505afae4ff75a48d82acff95cd18b27b72033616ab06e22e0"; + sha512.doc = "d6cb1e619dfa4e99128e4fbb95605eaeee694c59636f6759055f3ffa7ff13f12fa1a6d73a26e72baf63bcdb9737ebb41795b79367498e2c1122ca2b15c4fbee0"; + sha512.source = "aebd949d303f0de76079b78fa94f6c9d941c2cde5f35b25dd8a9b3db9dafbd4fffa73e5edc216d1b68ce15daee383794a0553b905ce29977c56b03d4cc6136ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + mweights = { + revision = 53520; + shortdesc = "Support for multiple-weight font packages"; + stripPrefix = 0; + sha512.run = "50d675bdee00625b5fbdcc1ef923a48abc19af890faab90ddde4893081dd2a5de6b5ce9165a4bece512c885ba3f3990d8dc300a873177c725a5aa16b434d4e77"; + sha512.doc = "b103ae1a7e4072e646aa70ccd660cef52b6954deec6425fe2007c15a1f56fb45d43d276449e436f188e52192609766237ec22b69c7782af5c0e3f15081989dc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mxedruli = { + revision = 30021; + shortdesc = "A pair of fonts for different Georgian alphabets"; + stripPrefix = 0; + fontMaps = [ "Map mxedruli.map" ]; + sha512.run = "f721b48b71ae2eb74104e23989cae84d3316b322ebff4703d9bddf74e0ddacf742e279813977bf29883fd17f01049112169d02aa3e4a9be887c049f8484ca0fe"; + sha512.doc = "ea9de17ac138af2fdfbd624e0c516faa2eca674ae1c423cc7f972f87c1bfbd37812e199f68b463c07213fa263636490b7207baf68506514f73fdef1d6c041a49"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3c"; + }; + mycv = { + revision = 26807; + shortdesc = "A list-driven CV class, allowing TikZ decorations"; + stripPrefix = 0; + sha512.run = "72e74c30c994441aac708e719e894d01bc3d1a6570863a589dbacae8e3c69f70d192abf7473b58a026b2859f7f10dfd1e56827cc759898248e3cfc9d36f37583"; + sha512.doc = "892d0c10fb8a2dd9a65bb6fa4dd48fc3ea49803a7e633cd390427bfbcc8f16f6d213f9ef511c7202521b518db4c94bfdad5197c30b2c8786bbbb6c6f188293a7"; + sha512.source = "56901df8931579aae3cc8f51e7c6c6542cca3b1b231512e6cc27b88104c39dea50026f0cf21b2b4251f4e1ddfe4119de7ddbde6f50bde743296bb84195fb5f05"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.6"; + }; + mylatex = { + revision = 56751; + shortdesc = "Make a format containing a document's preamble"; + stripPrefix = 0; + sha512.run = "b7ffebb46952c41818081cc14545d429fa65e376a2214d0ed41b56cea05cb1d3146d87513b4a701825b01bcf1ab268cefe6e9d709cb627dbe7b95daaf439d509"; + sha512.doc = "791cce1eb8370e62642b64389b26a91af563ca875268039ffa978cd07a743b999573199f1a3851ee65f8118cb462ab5d5c658118a735875db90eb8482246e889"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + mylatexformat = { + revision = 21392; + shortdesc = "Build a format based on the preamble of a LaTeX file"; + stripPrefix = 0; + sha512.run = "476e2c739c9a99a53a9f6bb7eb32e6122c149fe224497cd8e777af0ebd139ffadfa792090d8673ff96b4e17466e918f9af4ecb7a12c608d4c33d4e17f2b26f0a"; + sha512.doc = "c0754ef147a457e7c91b16a50dab2220fbf2f5385e126e796b1c65025f0fd998371b4e58d96ae72b8c6eb21b2030906729270c88c0914b1748714455e78d1bbb"; + sha512.source = "4f172517cd3e0bec77bc9003201a4488acfedcbddbca217ecac4878d3df9ab86719c5d9fc645671bbf3a5d5b66a1c4e80f9acc01ef27c82a3eaf13aeed45f857"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4"; + }; + mynsfc = { + revision = 60280; + shortdesc = "XeLaTeX template for writing the main body of NSFC proposals"; + stripPrefix = 0; + sha512.run = "6736bcfc3e0285b4def1b690fa0be98da319ce91f3e77978f08afc81289bc64b9a7aaae1d23a535a437c68037ba3cf0c068846ded35e3a6f4a26fbb7fa1be382"; + sha512.doc = "0b8936f3a2f36f68be9b1b9ba7c90f60babf6a6c9c81ab165ea947829ce0cf4230cf9f53d0acef3dde83c2fad10867e7316f9dbee0757a7fb9dac98b683d811b"; + sha512.source = "613c70050fcedf8917d39d2cc212b19fc2b1bc983e442d33bbce4f1fcf99cf73a8ee8a51c44eea090deb76fa57ed6b075b9fad12ed00516b80a2314d0202b988"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.30"; + }; + na-box = { + revision = 45130; + shortdesc = "Arabic-aware version of pas-cours package"; + stripPrefix = 0; + sha512.run = "8b0659454d8324ca51c9e97f7957a3c14230dca0b4b8e047b961bad1b81d2a8b0220cf275bf84e9aae6a3d601fe93df3de94f603a198f6bea716064ae8675d0f"; + sha512.doc = "2c78a71155eab3cfdf551830051dd360f6e9fc8085ebe364c13a79a1ebda0693d633e7ba08e31c356e46140c33bf3b190365cb88d944d2b3e8c0799ff68cdc8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + na-position = { + revision = 55559; + shortdesc = "Tables of relative positions of curves and asymptotes or tangents in Arabic documents"; + stripPrefix = 0; + sha512.run = "fb88693c5d626331b9deab494bdb0fececfcb3d6f76e91f76f467ab8f152fe857e4ef41f87b38092118646961c0f64f82501f0f75f5610d793b8158d77bbbf9e"; + sha512.doc = "abe7a0a765cfdd1d4ff454180b32d4153cd715d9af333221ed3213082dfbcf5ae0562617a2b30835a8aaf2a65c166e6fb3941d3bd6c781d83d65e971bd53f356"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + nag = { + revision = 24741; + shortdesc = "Detecting and warning about obsolete LaTeX commands"; + stripPrefix = 0; + sha512.run = "a2d239ed1e12fd1b082c8df5531c9b83cf55c39b13781aa01848f3fd06136a9522598abf9e63580a93fb12ad7c392061b14d5e96b4d4f4dcf8180180280224a0"; + sha512.doc = "9a4859b67182b40428f720e2e955b591fd3fdf30acbe7c3214548766312833b3ebd5a046d1ca2e2b824e3bad95bde635a1cd112e8023395333cdcdb9cdf55ba9"; + sha512.source = "969b7e463e6e8eca51af114ba51d538d0a1f7b9ed3cb5dfecab92ec7eb913a872b740b2f434e854a7c11b31c7b3364120379a5732220833235912e73ee202878"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + naive-ebnf = { + revision = 67892; + shortdesc = "EBNF in plain text"; + stripPrefix = 0; + deps = [ + "filecontentsdef" + "l3kernel" + "pgfopts" + ]; + sha512.run = "52780f4292abba6d621638637f8c3d11a3a39d4e26c3e7a10e077f4369624ed0f1fead7aa781d9d0017b000618bf08ade1bddb78e9d773c3abd9c6124ba00068"; + sha512.doc = "f2abf68012f902440e17235fd49c55c4776d79c3e7db46d18e203b47160a427545201170c6644a18d33874a90c6770d83fae576da68befde87da17606ed577e6"; + sha512.source = "a149e3c6ca7f22ed9b9d7a03c0d5bb941af809b6145967bfbc63ff96aec966eeb5e657cc0bc099c7727af6c2ebffaeb6f45474104c2c7c1462295ea115ad0d87"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.0.15"; + }; + nameauth = { + revision = 69758; + shortdesc = "Name authority mechanism for consistency in body text and index"; + stripPrefix = 0; + sha512.run = "2b27daa9547563ba455b9b3722c8726c1ea5c71d1c4976857add784efd95202cbdd2ed631096e85a0408deefa8e43c95dbb8ad7c0b6f1ef3da1f8476737c341f"; + sha512.doc = "f8d9f727c25cf50b31d28a3e4a53a7694c5462997f60060e7a2db15e38b14554df00f5afcc3675c5b6bbab477a11f499e79e7a98988b7bc0ef0146a43da5c239"; + sha512.source = "73615d907733c3252cae3e861a531fc57dc15b2b2ac0149b976f0a192d75c4463fdbed60cd25a19231b5e10e1d017d1e1ce27a4006488ed02ad2dd185e693342"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + namedef = { + revision = 55881; + shortdesc = "TeX definitions with named parameters"; + stripPrefix = 0; + deps = [ "l3kernel" ]; + sha512.run = "c413d600911ab1107554ec2aacadc80fad12a95e7486817c002274f282e047915d06f4878e68e423af649569752cd27d7c1b3a802a9abff68e91038719b2fd28"; + sha512.doc = "72031cf2858a3b68092c852c216f96aaea212c721e47d90e870c8153f83db921590246fb11b59009d431754720791e3c625fb3abd7bdd9010cd1a49894023ebb"; + sha512.source = "adff08a774126c8faff52ba14044a8e2140f9586358dab6ce95e7a941706bf57c32acf0ad75282bd3b01dec8a73fea105c0c65a1453f5903d5eaeb3fe0349b15"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + namedtensor = { + revision = 65346; + shortdesc = "Macros for named tensor notation"; + stripPrefix = 0; + sha512.run = "0925bc8a0a9f0cfee910470318fe00972d604e815aceaacc358fc412f3382c5cb5a4f9b1a337b9f609f0060fbd82bf1a7579ff611685a992b68eddd5348a8dac"; + sha512.doc = "9127b5d7c44a4b2a1cb28062f3a0c18f61711dd72aba86ceb9b948563ea5cbaedcd0539e0ef8608222f957f6fcbe878848095fa48131b564e26b1bb654ac8395"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4"; + }; + namespc = { + revision = 15878; + shortdesc = "Rudimentary C++-like namespaces in LaTeX"; + stripPrefix = 0; + sha512.run = "71ec09a2aee5f299e9620b9b90558bca11415cdbf4304d0e5777896f85cf4e30cc39508fd69ff831a86707e230cfca1773fd9a8bc50c37f310f8bfeff629d2d6"; + sha512.doc = "4bd240f3ce155ea517fc267af1925f2e84f7af694a1ee4a068a2679d97cb6f97fd77f8812017e05f33c935bb54a34459a9deeaaf43cdb4ed69d792676316734f"; + sha512.source = "33579dd40ba708e2e8a727f923f727f893f2f8e9562d369b1e025b50300250010d2829217a7aa72c1ee5781f3ed501e60b010cfc3cf3211b4bed1168494fa4ab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + nanicolle = { + revision = 56224; + shortdesc = "Typesetting herbarium specimen labels"; + stripPrefix = 0; + sha512.run = "e9f90cb21730e34fe03961281527cfdea0f7c15e349b9d441747be7ba591c40ac876ebed92f884bd502c3cf7a99f2f6f6328bce515680100c2f9a3d7e04a4aa4"; + sha512.doc = "3d159eb9fd84aa8bc6c183ae6a42aefc331b9bd606abbc1b2c3c53776d5b8f1554a4ad304d0555b8d2c95be2e8000eab0a3ec6a167e089292099bac6751782d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.03y"; + }; + nanumtype1 = { + revision = 29558; + shortdesc = "Type1 subfonts of Nanum Korean fonts"; + stripPrefix = 0; + fontMaps = [ "Map nanumfonts.map" ]; + sha512.run = "fc775dae204d8f1ca7e05005ccba0bd568f00819519d34b2282028d7f2b89b9c1f9a091ed192def7281de97ea97c75b9327727489e8ff88585bb97cf5e8b8f10"; + sha512.doc = "ff0bd0bcc32eb8166e7bff9d440692a3c21c5cc7fd7b8139b472fbc2e079cba0591d162e2a81090919990dba31d1e04b57d50c35ac1d0670ef9102c64abc88ad"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "3.0"; + }; + nar = { + revision = 38100; + shortdesc = "BibTeX style for Nucleic Acid Research"; + stripPrefix = 0; + sha512.run = "212f1a002743ba14eac41de05a88325533db8b25d9f12b141064b9aa98f78dd5c28caa7cdaa4419829e6180e56ff93e42b069cdebb52fb8ef40c9652b8a23c79"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.19"; + }; + natbib = { + revision = 20668; + shortdesc = "Flexible bibliography support"; + stripPrefix = 0; + sha512.run = "7e78ab76bd86a864eeccef86a64fb28b6b063d5a12210da80f0c5a5608df429fc2939580b88263dc50fd68d841580a12358617e20a0048ccbc9e148ba04d5f26"; + sha512.doc = "afe78103a6ba2d58c6f6ba6927101cb481abb1b028c4cc09dca59296d30978c636e837c248eb4f8fa44aa8fa7f6db1e1b6855afac9d99b0cfa030dbad6e59edc"; + sha512.source = "ac850d6b92e7cf538f564d052593319ec1b1366d74dbf86e55f0c59ab3a01ad79b780378e816289aedf9b645774cbde56b7d186abafa8d1ddaa6c32d676141eb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "8.31b"; + }; + natded = { + revision = 32693; + shortdesc = "Typeset natural deduction proofs"; + stripPrefix = 0; + sha512.run = "85568d2bd3b729cda5e4512a2e3309353e7abdcd6a02ee3f86e07bf65cd74ca9581d7b2746d582b704a116313b77cc5ea94f19fe0d233a3b41c4ae88a8704f12"; + sha512.doc = "5cc23aaaf6006c1f77d676ad1f20d3a62d9ac8d8be6f41e68085844f6060d570baa04000bf3108c975add502c7ad62086509464753474a74c43d045122b28294"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + nath = { + revision = 15878; + shortdesc = "Natural mathematics notation"; + stripPrefix = 0; + sha512.run = "2eed9bc55d9d994df8710703c5acee9fb07d8c9732288740cc3c20740bd8db1e3d22617886818ceffb0346110dcd0dbfafaf192878500b2865523d00c6e02bf0"; + sha512.doc = "ea75b3f282f81963484b2f6b29513a99f3153f222931dfa811deca40cc79a814a225a0a79e67237f53e3aabd33f7749095d3c7fb8f374ec802ee054ebca291d4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + nature = { + revision = 21819; + shortdesc = "Prepare papers for the journal Nature"; + stripPrefix = 0; + sha512.run = "78b6e945642bf2073e49acb318a0ff78c1ad24d38c28133b08d5e2881e6e5ee2dd6e8634b467047145dd72d08bfefefc631fd81c7e0facb590be2f9f4798ff6d"; + sha512.doc = "cac72025fbb65e32fff8dbe3a457e28b2953ce2a14b9359b93724073d1c56761524f2e3200f80aabfea1aa0747fb010bb78586978856c89348fcb255630e5d9a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + navigator = { + revision = 41413; + shortdesc = "PDF features across formats and engines"; + stripPrefix = 0; + sha512.run = "868f3c08b71f670010fdad0320e4792929d31c2be1b29fbb38da518288596dc299b58635ebc8e7551b9191954b76280e87c47b1eb3c4987fbae3afcd133a5c2d"; + sha512.doc = "56605790284309e8b6432152bdd6765172e9e7c9c6ca88b07ce5b4b19ac792df21879999a47663dbffe7b3dfcf6da0de3e8f8399cc65fc96dc2e8e3a57350f47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + navydocs = { + revision = 41643; + shortdesc = "Support for Technical Reports by US Navy Organizations"; + stripPrefix = 0; + sha512.run = "b1a5afb90babbdf8fbba1915b88cdbf30a0244d8363c25dd9ce33bb153f9e8e0437146d9883016a40b1cf55c1dc02a06a7d2b72947326f5dc13998beaabff923"; + sha512.doc = "2122252986f1fc852a121e09ac4f6a6a6c23f9227e374809f2968e729602f6d870bd9293fe1d456c4cc04aa48ee01361d37695c7290bb047f2c8f9a41981d3d0"; + sha512.source = "aedc1a3bde2379780b1042f9fb103081acde19e4f76f5608d0382756b8f9bf0d4743aa3aa66556bfc9240d2044336a609f3b1efbf0b4780af87b66109293b225"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ncclatex = { + revision = 15878; + shortdesc = "An extended general-purpose class"; + stripPrefix = 0; + sha512.run = "88ec3d2c350521fdb978734d32bb7eb9bacee0ecb95ae051d7bb039cb86e6dd1eba3b4ae93881ef8fa2623e99f6dba9b126373f181c4668176eaaafa94aa992e"; + sha512.doc = "e9c08ac08ee2316b07610bde89aee98289b937e8dbfdc86b392cae02037632d6d303c799f74f381f89a6bd4f4397a8c4d78025a88b8fa4ebbce4be663167f2ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + ncctools = { + revision = 51810; + shortdesc = "A collection of general packages for LaTeX"; + stripPrefix = 0; + sha512.run = "f7ec6f6c51d2a4f071b85cf28299a4a11eeabaf225c85cd0144bb0971ec3da44ee9aeac7cdd7501d258b7e8cf25b3e3484cd60dbadf0ff3ee05767c713c12dfa"; + sha512.doc = "a594e74455024dff7d38a8a750ee02637341f84d342a83409ad0e20a1b0f292c370e16c1b267c2d6a58975f45a6b4c1092c8518653994392cf4dc08fe8553644"; + sha512.source = "9fd3fccd2383ba6dd9f32766fbabb5a2c108c335eee1b5fd6dd11d93d5d6944bed22877b640ea676bf9721a69e34f0500a3bee131a4bc65feafc348207d131b5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.5.3"; + }; + nchairx = { + revision = 60196; + shortdesc = "Maths macros from chair X of Wurzburg University"; + stripPrefix = 0; + sha512.run = "3ebdb5c11c57818018172d87f265760039f4de415eff568271dacdccfae4aa1b8b3c646d5c68b4df55b66f631679c0a72c17283d949a35047f1cb8a536f582da"; + sha512.doc = "2c58e3cc770a2180d010688683117a8beb4c8dfc17d0f6502647b5030ec3f6db1131201a352e0ab0247df158b4d5c61ba60995dfc8ffc7fb5e50e6a03b16c2c3"; + sha512.source = "f1621721f65fce09ed2abcee3997dc1d2eecbcedb651641a99922362d4586be53c5fbf3c9d07cf1834ee6dfb79d67d7b20ba070ddb80f6c302d053979e3d59e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + ncntrsbk = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map unc.map" ]; + sha512.run = "cafa6f6ba366c07bfa0fe37ae415cf924ca54249288a52726eed52b9c8147925b6ac4a85fcb69a19596944ed8585cab4ce8fc2710a7c32998b360ea2ab143d56"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + nddiss = { + revision = 45107; + shortdesc = "Notre Dame Dissertation format class"; + stripPrefix = 0; + sha512.run = "62f951bce52bab564ab2671bd5d019ff9f6f5ad1d8a18ae9f8b574226aa83e4d3a9c6c931f4830f71c43499f68b8b06e539d55a027e712ce4cd2c03e349d3fd1"; + sha512.doc = "bd92c614f160c50a22ff83d296f0e511909906459cfcb7100c615170ee9fadbd38ba032bf95f7b25a083cae33c80ede96964d3b81e23c481fe5a836d91967ad1"; + sha512.source = "498e13f4e4bbf8e2133870854f75feb5617a517b55593ab90c203ba860f95599ac5b010bee58d4f35706a6e17bdba54c66e02e04281bb548e62b335c576a6357"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "3.2017.2"; + }; + ndsu-thesis = { + revision = 46639; + shortdesc = "North Dakota State University disquisition class"; + stripPrefix = 0; + sha512.run = "d79b603726abaa506ec0cd59c30e4c341839c1dd6f7b7aaeb536385d22d69a37d764499aba390fe7e1efc6a6e25ae6dbb7e92bf659a771b6f4d6ae3b5a2c98d9"; + sha512.doc = "8e93554ef50d43562d1c42fff3da81b77b4ae444d644e5b1a818571e80cef88a2006f1b1c61c320e467724df7847be50f4f3ec1663bd767261720cc1a80419ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ndsu-thesis-2022 = { + revision = 63881; + shortdesc = "North Dakota State University disquisition class 2022"; + stripPrefix = 0; + sha512.run = "98f01d4d37fc1661c117027c7dd83e4c74001cc7d03adc854c6f869503e5700512186585b15d1b7dd7a40ec6a526f1e6eaeed1332ba9531850e6506ce2feaf47"; + sha512.doc = "ab0c8ca7aa865052422192b51d1affe2c26af465dfe3de9a0bd10a30e5cbaa8f9f9594e1337bf175a069ff189c8924c844acff0b7788692f19e44198c1f578d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + needspace = { + revision = 29601; + shortdesc = "Insert pagebreak if not enough space"; + stripPrefix = 0; + sha512.run = "663b2ffe30b1d9a588183916ccb0e3fecf3098d3e67f2a40fc49e1db1e5c1a892bfb56eb177bccd923415dfe51d4a225e2017be3b2f3f7185071836cb2e04391"; + sha512.doc = "3af05a6704a8d3c9539cab0871f9f9c8b7a241549c1b3127dfce2a0eaf77b87d54fdafff4b2749eb4614ad9aba45bd2e3d695a92243ea30472e62f7945eff004"; + sha512.source = "a629e9b798ab772feed1e66b773fbc141b0b2c2cb6c336acf61e8e3884246da1b36f90260fd47121e53e552f6569528e81ee788b6d1779c9e87eb54517a2d787"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3d"; + }; + nestquot = { + revision = 27323; + shortdesc = "Alternate quotes between double and single with nesting"; + stripPrefix = 0; + sha512.run = "cc75905a3423deb02f226340eeb6a5f97d9d83470f156bc75cdf39569da845279fe8d4a3907fdf269bac75e7afae02faa04dea367cf0326720301ba3f1c31395"; + hasRunfiles = true; + license = [ "free" ]; + }; + neuralnetwork = { + revision = 31500; + shortdesc = "Graph-drawing for neural networks"; + stripPrefix = 0; + sha512.run = "ba66b86e10f4425c063c76ffcc97759863677a673960255d5c335d215ff8c0eeb4d0f12fdac584ae1fdcec00ab04705cad716ff9290f6b1ca9c8635841f580ff"; + sha512.doc = "fc2cda90284e4360c9dd9c03611f582c7c4569331a3bf04d51152408ff8533dcc1f398f641ece389e63f9b7dd12ae471c3f6b5d8fbdea5d206afb1ab15df4852"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + nevelok = { + revision = 39029; + shortdesc = "LaTeX package for automatic definite articles for Hungarian"; + stripPrefix = 0; + sha512.run = "01d207fe9d77df0a225cd5fe718f118bc755c1e23c9dcb2bc4e0b4c2983205469baeeefcc195b150cc54f4540ea71d96cfc393fe61a32f7e85d5c9b5944c5938"; + sha512.doc = "653fea96310508e8a30c76821d1cd83dbf579052fecbb8c859d40cb39926d24ae0141b4788901b34b4839615b33d5995eed2b6a27f6abcae981b9d47b6ebeb34"; + sha512.source = "455ceb971d4617b096bb2d1c42fdb487208e8c6ccb3fa94869df08c9e89516e0f5c9e5513b0573d17929bc3284fa41ec19ef092ac7c7c99ca8a7f9e63a1559c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + newcastle-bst = { + revision = 62856; + shortdesc = "A BibTeX style to format reference lists in the Harvard at Newcastle style"; + stripPrefix = 0; + sha512.run = "bc3f53c76ec9711d2ad9878dd12a62ed5fceba680dfd89d55ad81df0bf6e63e49e8660e1aa0726ac8ef545fab1e924fcae938701a59117bb42a59a016a349944"; + sha512.doc = "c00154d8a4abc12d57d1760383a5da13af16ba5340edcdaaeeb4e61b5ceb42d0776c0967af7814bb3bc6a8669a61998b212fe62b190458a50ae1e6a03c2a3645"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + newcommand = { + revision = 18704; + shortdesc = "Generate new LaTeX command definitions"; + stripPrefix = 0; + sha512.run = "e4716ec35793f0ed4140ed3bb221bbaedaf121b2529dbde5114a575bfb8aa32a8fc56e79e43068adf560423aaf68c5f09dd5d6b624e37005bbaa4def2b280060"; + sha512.doc = "84f71adb1cdf4213f34e30a2737f41c93fd0e8ac4970b2adb832570c98c5f3876502556392fa077a8cb647a552a8e914b2a30e4e38a039c355802e2c85c5f3e1"; + license = [ "lppl13c" ]; + version = "2.0"; + }; + newcomputermodern = { + revision = 69379; + shortdesc = "Computer Modern fonts including matching non-latin alphabets"; + stripPrefix = 0; + sha512.run = "140226a635763be7a407910980664b38323dc3634980452fe9eb4395194e7bdc0144715f13d79b9f108630aebd393073135328c98fa34310e3b8d4150e2a5fea"; + sha512.doc = "dd8cc0f43cd3a1d19a6666ce39d0d4024f8ce1ea8c51c0809878f8b886b286558d78f91cfe962b7cfa0e83c8abdde5912c4913c9c67be5d2b5ae81c274803fde"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "5.1"; + }; + newenviron = { + revision = 29331; + shortdesc = "Processing an environment's body"; + stripPrefix = 0; + sha512.run = "4ddcc24de158fb1a5b585c65adf769c3f92c4598355306e08257f4ef62718c6ca7f2dea80d742759601b37133a951d031445a39ed5d8062496459cc2f98a71b4"; + sha512.doc = "cadfcd8ecc9c0904bc9a45542a24c1b6907dabacc94f45a1ed1b885557304a27e7e836b55cbebcc6130da0bffeff7c56fd89f0b7a16430dacccd670c8c6ddc7b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + newfile = { + revision = 15878; + shortdesc = "User level management of LaTeX input and output"; + stripPrefix = 0; + sha512.run = "b949934073af1aaaada73c93e493fd39ca01ad625d72bcfa5df915b2c2f759a39d77b7c2a0a952711c8c3e0af5e6cca59eb7f333fcd27e7232c3780ad5400ec8"; + sha512.doc = "c2c0e825ae7fee4fa551e831c822190f7682392d47bd8bffa3ee947900d6eaf00a363edd204f7404c834ade0bd5a05e9bb0a8284f8c660eeddf7f75179c0060f"; + sha512.source = "9cc5d4e1ac98c2884af3a2e5d11e9cf573660679658450d0705d6d0c4004a8994c3b471078db8a6a95527f5aa84b3a7ea18a1c00b7cdcd9169fa1cb870a277f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0c"; + }; + newfloat = { + revision = 68434; + shortdesc = "Define new floating environments"; + stripPrefix = 0; + sha512.run = "6b7ec618044ee10c16722460fccf4e3b71092ed5fc902b0aff431c7407d50e97bc27a2e9bf4c561df50da7d605a3a1ea95c20f47727111e7077e338f0c0e483e"; + sha512.doc = "e3faedb4cdb78304c738a4437fa503f7870c81c13eb82652ebf5a5ccb2befa1180683a5704b16891715c60445eac214cf8e6fb01f1d9675954d45e1a7535d659"; + sha512.source = "150ef59ef64c4378dda85cf5472947575bf78ede8c080ebc9f2ad37ef8928c1d59c50c5772cf48683330bce60ce633e2295493c7bd65b658e3538628cbbbfd37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + newlfm = { + revision = 15878; + shortdesc = "Write letters, facsimiles, and memos"; + stripPrefix = 0; + sha512.run = "72f7b087ba1002541e3d26d5b41b58380443e30061b92885bbd3bcc017b17cbad9227c14074a53706b98c785117c7b07c6d49639c84c617782066491dc0cabf5"; + sha512.doc = "8391122e13223055582bfe0f9e6d62315c9a48588848ab02cebd5b2d7045be5f1d476145e8ca29392820d4ee018b9f84380408331b3ea56e7e99071024a8c369"; + sha512.source = "fa807aaba787c52d3e769e240a04f5fa23e469908d2eb5a60967e2b08cfb7a694612e85514a56c3138925ce2f3c480bd5b6d0f701031d8ee8e646c3017cd0022"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "9.4"; + }; + newpax = { + revision = 68762; + shortdesc = "Experimental package to extract and reinsert PDF annotations"; + stripPrefix = 0; + sha512.run = "88888718c7ddd02cd3fa3286ee63d7d527d836f0df15250d9ddde12be475275bd7517f4a0562f30d738d4a007d61c4a417a7f03c8fb628b3fc981e7a6f643ba0"; + sha512.doc = "7edcf5fc73e0b28d92b8f11f42e47bec9a6b2327cc23a146fcc65143a30aba16d839579d94de7001b5937fcb241e977d9933e44fd5947da06907dbe4c327e70c"; + sha512.source = "00ebef49ba9b5bd4ddc4c6889d0d9479fe8d1921f94170c51a2c5583f4d59f2bf533db3348e2b595758f377d4e6c504ec6b9c582c5fcc8c4468d782e68416bc9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.55"; + }; + newpx = { + revision = 69777; + shortdesc = "Alternative uses of the PX fonts, with improved metrics"; + stripPrefix = 0; + fontMaps = [ "Map newpx.map" ]; + sha512.run = "979e5e67eaf5891a96c127f9726061bb0a480388b0f67cf27bf753f0171521118f68bb82beb127bb2c18d866643830125089518436d1be56c58acf49ba0ccd75"; + sha512.doc = "fcea214e98b92d697699976c245f841f87bb5a314ec738fb551e6f546e32e79fcfc0b1e78d9cf1ad5299bf691a833b2ba69aa9c917a6cb1abe891c39556123dc"; + sha512.source = "7928e84f2c5523c72a30061e99fac64c37e1c5fecbeaf6ad9aa8ddb1be55c26bb4198adb8c303afed7267d33c12f9f73336453bf32bef98c999547e7f9f4a952"; + hasRunfiles = true; + license = [ + "lppl13c" + "gfl" + ]; + version = "1.536"; + }; + newsletr = { + revision = 15878; + shortdesc = "Macros for making newsletters with Plain TeX"; + stripPrefix = 0; + sha512.run = "e2f1995420ed7b94b980fd794df5dca89e89dd96daefa43559d568881ffd17668717de1baaff18bf27e8519663203e0ea7fef214b8f7541bde81d436a3a5c378"; + sha512.doc = "aff23fd9e3397c52a1566930d6da6184786f07adc64c63e5d9e0062451014d261db8dab06e9d393cb66b3b56a51b57f494f01c9ab27b05bbe2a226cd4623d590"; + hasRunfiles = true; + license = [ "free" ]; + }; + newspaper = { + revision = 15878; + shortdesc = "Typeset newsletters to resemble newspapers"; + stripPrefix = 0; + sha512.run = "227fd249bba9deea4f191c59060c49d2d1cb8e367bb3007d3b123c17dd4328206962946ce3f637c8e6ae079a9c95244ce9027b0c9f83e0901801dde066a0405a"; + sha512.doc = "b08d57346ba93e37e93f3c6e2487d56a0ac67eac0e4d9db564d221319e6403a1055729a2a1e43db4e161877b7300aa90e1853d75843c95295481d7cfaa3f6c1f"; + sha512.source = "172e832bd15e8aecf6f80f8cb768d2d7b3721975638007ce631b78cf5f6dab27ef24ff63f5693f5c46cc430bfecae577beefe4fd2f6fef22d6f5fdf9ff20dfe7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + newtx = { + revision = 70496; + shortdesc = "Alternative uses of the TX fonts, with improved metrics"; + stripPrefix = 0; + deps = [ "kastrup" ]; + fontMaps = [ "Map newtx.map" ]; + sha512.run = "140e03a3dd5a59ee6b5a81b7cbc5531e92bd2d2296ff74df4f1805d44f6d136dde2aadb0af145f4f7f0a9e223d39122a8320b3858850fb49dd8cb59e80d692f9"; + sha512.doc = "c0344d8e74e412b1ebc8b9db86579672cd878eaa004adc081c73ba48258a57e4093361237410122198f71ed0a6c3f1fd1989e9ca028118d5f93dbf9b21f6e5d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.742"; + }; + newtxsf = { + revision = 69597; + shortdesc = "Sans-math fonts for use with newtx"; + stripPrefix = 0; + fontMaps = [ "Map newtxsf.map" ]; + sha512.run = "4d44962a7bc466faa60d39791f18be3b5d3bc5a1eb2b22e233c80a81ad3280b0a89c03717881ee858e327b67040f5859fcde7d465420e43df547ee56f00f5b93"; + sha512.doc = "992123b7b5f30b827b4cb49b933cdaa323a007c1d41632993a2a8d52588b5f5d97612808dcb48423dba309f025d851cf15aeb892c8bfe10d0929cb5744515b7c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.056"; + }; + newtxtt = { + revision = 70403; + shortdesc = "Enhancement of typewriter fonts from newtx"; + stripPrefix = 0; + fontMaps = [ "Map newtxtt.map" ]; + sha512.run = "fe95d2c4d2ff7a83f362f55bf2579576b94251fdeb3556c2f417e0118b2dd215a705d06d79e66b9aadeca09cadd5c19f2898cbba8624ea089fef804749d350cc"; + sha512.doc = "02879af2ae05a703502966acc561df08762a9fe01a873180672652a9c931ceadcfb85d411523eb81425e7f1944f514673e8d04a208d54b27d0d26916077a81a3"; + hasRunfiles = true; + license = [ + "gpl3Only" + "lppl13c" + ]; + version = "1.058"; + }; + newunicodechar = { + revision = 47382; + shortdesc = "Definitions of the meaning of Unicode characters"; + stripPrefix = 0; + sha512.run = "8e1748abc585f51033a857db126c4b18f0c42e015d7193f8bc7b69493fb13a218db38da97f3a6733df01dbc247093beb544651a050c5a690f3cd5479c4ad9e6a"; + sha512.doc = "9ec3bdc81587e8b2553dd4ff45ca4ba0bb504ded0726aa44d1e88423cdf425124334d04ebfbdbbe57b576b0fa52cfe1771c97308f146ea19d89d41eb4475eb9e"; + sha512.source = "0464584e516c8f5d9c7ab4db114fbe3ea9e07d33c1544109ebd0d3b25e4e3ddac222dd69b6a8222e290ae2b6a7d7166a76b54ff9fbe7ffd5225368986e2af6d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + newvbtm = { + revision = 23996; + shortdesc = "Define your own verbatim-like environment"; + stripPrefix = 0; + sha512.run = "029829b1da07d7e2fcc5950c32021707058f3d7228f6ff82404aeb962663277ed107934f04a93e7f43bd7b67f7034821437f3a8116f21028b7c9a154449ea53e"; + sha512.doc = "dda7ae47bb076f03cba83438c573405f1c67e5407d83fa0894e9575952c284010b62f62720022ffb7a8e723e829610d1e8ff6a8b5098c92207e8ab8755dcb409"; + sha512.source = "8d58e55977d708c8e3fd9ea6394494f68ccb21712703b2302355234d12355c23de97cb392d7ceda95bc078ddb2cbdd2030461b5b4069805d4ba01b5e3a8b8f59"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + newverbs = { + revision = 64833; + shortdesc = "Define new versions of \verb, including short verb versions"; + stripPrefix = 0; + sha512.run = "f2e2cd3fd2712d3333c7caa9e74a16300d7f08327b9bc7f44362570377feed31a206e6b09df15c524dcbfe39ffc54388de4fca90e180e38d28cf9cfbba79ab2e"; + sha512.doc = "7524a6e767edc5f55d96026f947e17e42f54138157bfd1851832dd139617939661ba5a4e759b4cf313990077dc9ed240c032cfe706b595af4d9a4197e519fd1f"; + sha512.source = "ddb1f40238ca2f622180ea640a86abf993add81c44ea3a459c54b1c114c0b78d4940536b712ab444e93495492b5c0deb02c211b06e00f8fbbdc69ebc4097f786"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6a"; + }; + nextpage = { + revision = 15878; + shortdesc = "Generalisations of the page advance commands"; + stripPrefix = 0; + sha512.run = "fca0aec60c5c7277dcadb0f86d757617484d700575fae13df8b386775e153ea89c52935ffdb2448c52e351593b396fdf3394f5b97e23a0d2d40dac339e584f59"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + nfssext-cfr = { + revision = 43640; + shortdesc = "Extensions to the LaTeX NFSS"; + stripPrefix = 0; + sha512.run = "5083d4ff4168b857a7391855ce02ea354cb17a26242a3e3b2693d6bbb35f722f750299669a37afbb99a52180433d697fbf65a6fb6afd6bd58d4b16c63e5b0d67"; + sha512.doc = "28b2aff47d74de3a42c441dafc156297904b5db20d267f1af07d1e3210e7f9959474b3cec387be7d9b20dc04560b4100a0d9da6979ab8ad2a7cd1e4518cec278"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + nicefilelist = { + revision = 65842; + shortdesc = "Provide \listfiles alignment"; + stripPrefix = 0; + sha512.run = "deaf84bd004172584e0437f3f15dacbed3d49ef6bfdba15e77e0c888bc03e35a634107469ae979b38d1e5519f4c8236cafed71c0ec46b9e7735041f234c03f96"; + sha512.doc = "efbc5965c9658e1f44182bf92f695b2d200cbdb8c5c70e23631b31603682168c0cfa5e114615483f7d897fec175267ef9d7fd0040f653e75defbe88bfb395bc5"; + sha512.source = "f520f4114d7f44b3361fead74f19750a4765f0397b158d2cf8c0076dff4689418bdfa0f731dc9383a74da6ff6e36a84f9658432a271352b904cd816409b026e9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9b"; + }; + niceframe = { + revision = 36086; + shortdesc = "Support for fancy frames"; + stripPrefix = 0; + sha512.run = "539d4a6f3a192188064fafd94366ad2f8a9146175d9e04b08cd83d1386bccc730a0e3be4a9fd45e4f47152f10710191b063138ba504fca95e4226fc179f70a29"; + sha512.doc = "aaf777520d300b5e8c9a17c2dfb5b12406f5e6926b17c4244feaa8d6c5bc28d87277f23fd814304a7efb91dab8a42e1ed88f6568b96f13f30c831e81201ff4f7"; + sha512.source = "fb0106ee32e36d34767c6200be1d2415e11c275e5540dbd54777a6876474424f1c82ba52bcc0fd76da9ecf3b37671d37c762834b3e6ef714028c1917dee45235"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1c"; + }; + niceframe-type1 = { + revision = 68091; + shortdesc = "Type 1 versions of the fonts recommended in niceframe"; + stripPrefix = 0; + fontMaps = [ "Map niceframe.map" ]; + sha512.run = "b43c19a164d9d6eeadd11072f07d29d00763863724a5b5168ef8640b2411fa4c02c4955e769b23a39e06db8d02d168ac7b2a987e1ab8a9dbe4c19063b8f4bbac"; + sha512.doc = "9f30b52e177fd2fe5bb3ef1f23a16b29a80f049cf33d8ade3dbfb187663e4a8872a18bef0fec1531cabe610839ba21b118623db244b52ab16418a7ad4dfb3d67"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + nicematrix = { + revision = 69991; + shortdesc = "Improve the typesetting of mathematical matrices with PGF"; + stripPrefix = 0; + sha512.run = "936cbf7f65d1c34986bd6113e07885051e3213dfc98d4102564e0d3749bfe68a0beca8637a34da833e45ad8f5d1eb13ed6f7c75c402158e9638f4f2548ef2b8d"; + sha512.doc = "f9255154b3f69e14c82f9816a9c2b9b2a171311501c0d68904443a4ac8a05518164ff80b9428922e62fa0b62bee61557e12cfb20c9a53625c3a6ac0ed369592d"; + sha512.source = "7ce23449d29a57d58305bd77b00de46677e39143e75580236c846cc6e572c4929374329cd58ef9a4b6747ab66e586a0665b7768232703fc9d792b59907dbe6f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.27a"; + }; + nicetext = { + revision = 38914; + shortdesc = "Minimal markup for simple text (Wikipedia style) and documentation"; + stripPrefix = 0; + sha512.run = "04a555a82287a39249cf6b0e18d890329098a1d0d6957fe9a1c535024b63a5f50b6487dc1fe4fd69d87908abd385b0366474ebe3af0b31f41f6a35c519a6ba9c"; + sha512.doc = "96cd1694ae0cb116bb4620f7cdc1f9e24385886c78cf87466cd329c5ca0d78111005ff89e9be50f07078eaedb69c4f3d495b1fc5063a1a69e483b86a6c8534b1"; + sha512.source = "d7c556fb2fc34e7eca9038667842825053ac03478e32a6a58cdda2209b33ece494071e47d54bb24f7c085f90b45375bb5db7781db642bd9f8cf661853d077f60"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r0.67"; + }; + nidanfloat = { + revision = 48295; + shortdesc = "Bottom placement option for double float in two column mode (nidan-kumi)"; + stripPrefix = 0; + sha512.run = "42ef65277deaf474a619e5ffd570309db8c8349f32e9bcfdf216251e81136a3da87a745b3dcea5212f636396179210c6acaa96a957ffd9588d1f414d6a59bded"; + sha512.doc = "2be76c8e243de71698ae5264a8e3af4da8dcfcd130b0554d1547a0a238e55ee71ec57d8757648b162a6ebd17ce1047206979cf139003a02921a4308a852f0030"; + sha512.source = "8a778b33036445dbe375af746244433470e5d10a963ebbfbc397c0376d5c4f7c23cdbc2ff3ff6455e274e83b465a64d8bac5023e8537d5b949fff038098d862e"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + nih = { + revision = 15878; + shortdesc = "A class for NIH grant applications"; + stripPrefix = 0; + sha512.run = "5f016d57b1b55c698a902c7a85a652fdcd40062b409a14e38c1356b9030129b46631929e49c6fa70db7ed499043a75060c97919f15876ac7a647d31c2f0bf729"; + sha512.doc = "1c209615f0745ed0ae4d2f4c55cf9447ec4711e9345ca3db778fbf45ccca76792039e6a7e51f2e7286034ae229b5c696ba7deee5bb8c224dbf95a4cccca650f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + nihbiosketch = { + revision = 54191; + shortdesc = "A class for NIH biosketches based on the 2015 updated format"; + stripPrefix = 0; + sha512.run = "ce64ef60a007e8a955dd48f9f9f748a738aa57829116f060b3fe353308244db0a2c1d56d139e2b1cc1a6ee4f243eb7ea2339a2c927966d7418e6b553600b9e53"; + sha512.doc = "4315c32e1ba43339b609c272fab7aa0b18c44b2c323f43cc303210f37c44c5a08d0dfcbf62e450bdd9ce899d69afd5eceafad91074fec73ac9bcc1e5c8c8540e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + nimbus15 = { + revision = 58839; + shortdesc = "Support files for Nimbus 2015 Core fonts"; + stripPrefix = 0; + deps = [ "fontools" ]; + fontMaps = [ "Map nimbus15.map" ]; + sha512.run = "9e39f92dea1fa293d6249d16877dd6b2d990d1d48cfd31f4ac1d66233b97ff178d2b70f428978a084fc9a50b9dd994adb6a8ad29375e54f5d5ccf6ca7ed62f64"; + sha512.doc = "8fb9ece6ca17549572a0d79a541397c6545dc01ac0422a5270314bba1cb83b1451fb0f56e34f449cc3d3de326e063e4ea1f2ea03a0fbda7342e9d0a101fb5ed1"; + hasRunfiles = true; + license = [ + "free" + "lppl13c" + ]; + version = "1.014"; + }; + nimsticks = { + revision = 64118; + shortdesc = "Draws sticks for games of multi-pile Nim"; + stripPrefix = 0; + sha512.run = "0b2485f7833cc8f4912a035284fcc4d0e710d942330a16a36788f7d80ebc5d9eb9ceb98f6a15b11e6391429d4684c985a83753696c1202bff5f0c5f4e528ce59"; + sha512.doc = "6848acf10eb3c4b2e0dbb9e33868ac4a1c639771c1508a19e4d41512750cb0978dbb61a570830f2f555e09ade976d9cd5c91d23da73013a7310b9cae02b6ee1a"; + sha512.source = "76903857b5e115f5c3462e114ef7a142855c7606e78f0ed96de54b4c810cdac596b39f38333db445387264ed6723c6c1788b13c17c6c9702407aec267d4b38c5"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.0.1"; + }; + ninecolors = { + revision = 62006; + shortdesc = "Select colors with proper WCAG color contrast"; + stripPrefix = 0; + sha512.run = "f755768830e02aa434432ab4e879646ad43d092f50b7e38e39009c98327c5ddcd23d0b5a7ee8d8afad30e69b6219bb871a14dc7b274ae11a60aec33df2c94ae6"; + sha512.doc = "0550d7b4a8b7040541edf156c5b82bf61d350a21c732c4ef324c58289eda288b7e30edd1f36d8650d453a590bdeb97b61d0c782f3d945b033b0fb746b6c802f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2022D"; + }; + njurepo = { + revision = 50492; + shortdesc = "Reports for Nanjing University"; + stripPrefix = 0; + sha512.run = "a62efcf4630d7c26bbedb19e0c4405e730733b71361cbec9abed7a06a377c230bee561d8b48427104bef8dbd4e0bd56b0eaf9f0f7bbcdc8b289c726cd7b6cef7"; + sha512.doc = "61f32efbea3b94749fa0cfc3ef2a3b3a34ccfb4ed3b6b09afa74e4f6dbd2540c1a263c81ca6406288f015303250f51acab0b6a4a4d51c95a2f9bbf1f3360f8e9"; + sha512.source = "6a790ae4e533c8e040ede3355967ee030e136d42afbe222a8fc4b7c3810817901aaca1625199d88443c8dd64d3d6b52ef9364d706fd1cfd5a6dd8a7916890df8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + njustthesis = { + revision = 62451; + shortdesc = "Thesis template for the Nanjing University of Science and Technology"; + stripPrefix = 0; + sha512.run = "829c4af6651ce3119dcfb0f6975289bc6cc4a8a7dee4a382ec8f63c1b876cd972452b766ed13e6aec1fb4d4613255a9ef206f1b7d8c03207c00a52876f22533c"; + sha512.doc = "fdf843b266b0d2ac780fe934d4ba55c6a3b470fcf81bcf71f2ffa0a689020ed343768650cce06c5cbed0a35d9178723b0d2caadf5038871c55fbc47f244ce15d"; + sha512.source = "bf0f1bfa5d6a9367bee61c90b35c4f8492ad072ce44b0fefe43c1251fa0e7fcb4c4f92392d5d317d808e6f3ab1fd8f7e274407dcc815e2f7e281297b53e5d7c0"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.0.1"; + }; + njuthesis = { + revision = 69051; + shortdesc = "LaTeX thesis template for Nanjing University"; + stripPrefix = 0; + sha512.run = "da5a4d00161d7904d58d745df89dcb1270eab27c291866300fb5a7293db2a078777c9fd234a3972d75d5d6208acda160921a603b45d72f4c235dfa09f2421038"; + sha512.doc = "12f094efb1a86dc3ced366f3f5a2cc7ef5042ed109e30c3d4130f7de9b514a437029eceae67786e7af1159c0ecee1ea1298efca7a02eb8d9c85253c0acdb43ac"; + sha512.source = "078e7e50803f934601b30042b871cca6a0bee5d66fcc1275c227aca20cbf5e098bee5ef95b728a2d4b6fc0f7e5a27e0042b385c07d8b4e6f8df71ceec0c67f47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.2"; + }; + njuvisual = { + revision = 65261; + shortdesc = "Display logos related to Nanjing University"; + stripPrefix = 0; + sha512.run = "48f446e5aec77be8e9ebeba59779c990ed4ec5fc3f533fd22807e8415d9bf962075e940d4f789e3809c8ab4c75be6fc505d42cf37bd9e1d5b9e1a02d78e7523b"; + sha512.doc = "351f6cccc1a7d91f953c4dcce294a0ca81a0e687ebdf2ee676aab18e299b8095d089d7691b58316c8955e06e341f78674bbd52b6073e010a3facb6184cb0a8d2"; + sha512.source = "0129998a16bc4ee8c9345bf0519ce561360e11860a148252550b3536f2152175dae5af414d586a906adea275d0fb1fee1c4f31a2a18f23571a2a4dd5ef9120e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.0"; + }; + nkarta = { + revision = 16437; + shortdesc = "A \"new\" version of the karta cartographic fonts"; + stripPrefix = 0; + sha512.run = "60537472bed0bd22d64789008ff8bbbab92ffcde68cbd74eb0b6d9910705f9f476e8f2c4dafa0020a24b0ff2e27c42a39de1791f2c91040af07dd429e0fa28ad"; + sha512.doc = "b3cb0205fdc567fbed23f797031e7336fb231c11490f463ee3bb3887e5d8ad1aba90bed1b14178b1d9ba15d76ba02ba93598362b9655eea78bf086c7df6c8b61"; + sha512.source = "f96b85f2a779ae64c9c2a056e16d2d8473844b45c0d906f97a3b62f6f517ea614600312d44151d9b9b676f3ec7360638c72fd43c7a35e183bad0d4602dd84aee"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.2"; + }; + nl-interval = { + revision = 58328; + shortdesc = "Represent intervals on the number line"; + stripPrefix = 0; + sha512.run = "486597624d640ccd13b4cf4e913b5735b0f2a36910f563b87c6ebc6f38e2ad8df99591fe8dfcb503750eb6a98204ded9bc80d3cc0f8e2441257d6f9bd2167cb9"; + sha512.doc = "8c9bb64229464a05f51396d50143688b8f108ba47ad23a01ddc97039133cc3dbfd51a6a58e36e946145ea483d3d06f36926d8e881b2e07c005e637338092f75b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + nlctdoc = { + revision = 68448; + shortdesc = "Package documentation class"; + stripPrefix = 0; + sha512.run = "ef7f443bab4a6608b506ff65bd885965c23607aa5a93a721a021e741eb85a757de021eec7b8b247c9b5a41cad3f3f06a90ce44c143bfbe6ab79ec253eba06264"; + sha512.doc = "e887bbbc705456c084c26b1bd02677a185e7c7ac615b9711821233e6ee3a62de91c4cfdd3bbc353b0775b9fb99dc42e3447d7ef51492f4abf0c519ff1af42af6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + nmbib = { + revision = 37984; + shortdesc = "Multiple versions of a bibliography, with different sort orders"; + stripPrefix = 0; + sha512.run = "c915b266e2a7644a88de6476bd4cf81943f7da31472f1b8eb889e048df8acc4afc36e247b8fc63bfdeb8c0384d87fc59f43d87f3ff09822d076c62a0edd1c110"; + sha512.doc = "0014c7fdade3685ce03bf9fcc2725b430f6272025809e224b88361960cb47e5b533d88d60f0ce55e011dbb943c8fc025340fadc506eedf10189724ae79dd2bda"; + sha512.source = "52297a890da760e2c945522094f128612ceb521500c81ce54da2f481581000bf42302665585fa056b31ff0f096a3a170ce56013e0979ae2043a94b68e7d32a5a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + nndraw = { + revision = 59674; + shortdesc = "Draw neural networks"; + stripPrefix = 0; + sha512.run = "0a3ef1e6654d191c588f8269c674e5d7542785aadd97bf96101be8627f4a4746e443083a0403b8710f2e8036f0d69be1db6d40cfc1865aed89056d84ee4a512f"; + sha512.doc = "0ee7cb24d7cdfc708a3ea7bc4588259ce92723e3c4be295b85d689750ed81ece2a575ceeb9d6959692e36e363bd6ca26615fa598080977cb62de9a641da44322"; + sha512.source = "c97381de546d0e4173c7d34ddc8f9098359a3ec8b84c78d155efc49cba120a3e59f64c3c43eaacc07196df86402a084558ca20a5ddc52733134440e21fc0bc39"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + nnext = { + revision = 56575; + shortdesc = "Extension for the gb4e package"; + stripPrefix = 0; + sha512.run = "406e846ebe7ed721218368cd00a021edc41af41f1ccb5989925abad92d4cbf4d604abac8144945599530c85917d9404141052ba9891b778d1006b7d339499041"; + sha512.doc = "6efbea453691fe2af7f436e79e1a486abf5dda14e2457ca3c1c2bda9c8461016d4436eee82a18b079a2491e1c4eb2f7dcbaeaf8fe8b8c7846e744f02da8e3b6f"; + sha512.source = "a0cc70a3bed51b403ee26c2fc583642ab25565c1ebc69945a831827bfd2c192946142ad92bbfa130f891bf9a36c18bf50e5b424ecc119081d72c7efa1654310b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0"; + }; + noconflict = { + revision = 30140; + shortdesc = "Resolve macro name conflict between packages"; + stripPrefix = 0; + sha512.run = "660ea2bc008866130d0955eabecf0afa1e21ce38fcaa0ff0d4364ebc32ea8af6a2ba57c80b340f824b14f0488d2b40e5c7ddcf663e37d6170a7ac0aa740ca260"; + sha512.doc = "b403c57b0d794bd95416ae09ed3fbc0c4a164689f9885dbb15e8a4c25ff8751376e6e61b622c9a94feacc4dfb905a7926500368bf51e5e568efa31e1dc5c785f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + nodetree = { + revision = 68244; + shortdesc = "Visualize node lists in a tree view"; + stripPrefix = 0; + sha512.run = "8c451fff46fda636b2b1284d8751e070bc47526d7dc94acceddd49e8eea3f951526c1680f330042e51f61752795b4c8ebaa490cd93a736747e1bc554126bf7f0"; + sha512.doc = "3e69dd9f6ef63f3ca1ed8c071510a5b6946037d9ed76449fd14c16ce0892ca50031ec594f6bca7423d3669270b4e2821311a53b852f906ecbd22035dbf9c2858"; + sha512.source = "ded67b13d69785d978a4662fc62cf0c76b63bb931b94ca2407b9b8021857cb1d6609b466ab9f552d11765f7b612386e9fdf0fec02e2a77a5cef459ecc4324b35"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3.0"; + }; + noindentafter = { + revision = 59195; + shortdesc = "Prevent paragraph indentation after environments or macros"; + stripPrefix = 0; + sha512.run = "8445839068a264cc57df9b0e9cce4562b3e70ef208baf32fb2aaabf7ce95804a31f0f8b65c8ce2f2f0fc809a07cb864ff977af31d8162cf10560c39f9d2b78a8"; + sha512.doc = "95f0e11cc91dce0e970caa703149b602150426df174044b0a2fc7d902f040fa4fe6fc3014bcf49d240bc9612c5c61a5a40124d5b49ffab1bdbabab0cfe55889d"; + sha512.source = "e3a12b14ad4571a3fbaf4d4297da28a69cdba7bcf57a365dddb163d88a0b1f7acd20d600ab6353b4ea110d4a0a72c9bef365a3b1fd866448f65318bb5940dd7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + noitcrul = { + revision = 15878; + shortdesc = "Improved underlines in mathematics"; + stripPrefix = 0; + sha512.run = "1629f5c0f832927093283cd5cb534cfb7ee35bd74f306fdf6cc18cfca3c72d5c1501139c180b7cf3fe71ef7131dd6a42465ee666c7bbb5c83a86f2a69a5a3c8a"; + sha512.doc = "c9c3adf9742b329ddbfdcfc41126c22039e89642f0c0d93ad064ff2160f7708b62ab28994a81860aa08d83f11a111bc11a2a54bbab88bf3713f3f6ee4aa2e641"; + sha512.source = "5be6bf65ca4dc0c5819a1bc870f704b595b25e5ed6900beb8a53fa8167680929a7fe038e80fef120e77d5b8731c13f92f7907469ce7aa4825ee4e207c09268a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + nolbreaks = { + revision = 26786; + shortdesc = "No line breaks in text"; + stripPrefix = 0; + sha512.run = "4057a988b0357e2256eea6ae47c560d8535528e63b93d648c45d65ac44c4894104015e3411b7046606b9a68afc44033d037229d684f0c5427d9dd2ff5b272279"; + sha512.doc = "8cd5d7336097abd2d873af36b2ba6ebc8cd1c405c9a715c67e6c04d02dbdea067c0b7a8603418005ce223e0f1bff161a3dcb669da7c07c30b2ccdccc7f953fa0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + nomencl = { + revision = 61029; + shortdesc = "Produce lists of symbols as in nomenclature"; + stripPrefix = 0; + sha512.run = "ee20b8a21b03cb02ed2ef37d38c219841d4a07e17ff781c067906ecbb8f5383d8558c20164f7db79af0c8cd11c5ad8d76142b15ea74674593bb52a5a5993b6c3"; + sha512.doc = "1caa5bcde6c1a3ac5de024f513793c52011285e70e32664d6c5d1a103027c74d45c716d01aaf849726b5b7ffac511ebe6cd16ba669bfeb5fdf37addc59e24a6e"; + sha512.source = "0fda8a0c5e46933cf991bb4120e4bdf98a8ba05e1ca96600fc9e6abd5d3a5c78ce50ae9e625fdda956c90a8f9f569f18d9ebd96b6de4e0e5bb0fbd2b5b00889b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.6"; + }; + nomentbl = { + revision = 16549; + shortdesc = "Nomenclature typeset in a longtable"; + stripPrefix = 0; + sha512.run = "195cd134db2faf9c7405d040d0d3b4a71ec39ac201fad47c855d34d8f734d069c03424ddec6b1af978e7b244b3907f846fbd80fff6063e7b25df3de508fc51ed"; + sha512.doc = "4ea606a78da4c0c4f5c35b38b9a430de8dcea49c8662081a85f3aa575523c40f5951bd54e2c8acb368b52f75a3214c0a4b0d178dc262a64b8f6485852c4458ba"; + sha512.source = "5cf26c7871ccb841bb8350d594ed9333d7b46c7d2e3db70080ce743fdfd7c7fbfa3c8f7f976bf8f37decc653e54954a5e0a90385fb99ac3428a8dea4a5311719"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + non-decimal-units = { + revision = 69742; + shortdesc = "Display and manipulate historical non-decimal units"; + stripPrefix = 0; + sha512.run = "0aff79bb4d211419da92ec10b0e9139f2fd0e939e57fb8a6ada437ffc71c0d42394c5561894e2f2537a24e466aad7e86aeb40e6ffcacc04963c8c88268bc1cc1"; + sha512.doc = "fe3e393e6f2de3d5678f71fcfc0e98577ae77d063b8d09966cde4d5145a9a4c0696f4c09d24757e18d8adf75a9473eda57fa5bc1218ca96c2b4594bbecfb5d3a"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + nonfloat = { + revision = 17598; + shortdesc = "Non-floating table and figure captions"; + stripPrefix = 0; + sha512.run = "39f8f0a4d9ef1cf8f1dc02c63612980f25cee80cb545bf405d9d2a080256ba6799ff3030c98c26e6f2aaa10ac71015e58e4233bf84703b290220b12db45c70c0"; + sha512.doc = "2d090fa397a385cb32c26957b5c4c05ba8443fb1bb7ce7e3eda777ddc2d3af11ec3ae6297bf014f40e71d4668044ab729a6dedd74e8802ce9089b59d57663374"; + sha512.source = "be5e0b078adb8c530d8255bcc72daf50ad8cbb48343fa76f132e1b75fd64d033c7caf287b6901f1bc49422956f6901dec0f7e7b7639dd71c10c1a76ec958aaf6"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + nonumonpart = { + revision = 22114; + shortdesc = "Prevent page numbers on part pages"; + stripPrefix = 0; + sha512.run = "e97fcc36af3e86c1a432d0e425dd86308429e764c976a2f7f8106c3433ae5a148bf3abc45706bcc3090089911e2dfe175156eccaba7d97f544154ad0b288e58b"; + sha512.doc = "0cd6b115638c3151e5983845dd2964ed90f24bd35a06e904a005755696d6faccd90bbf88c7bbb5a0282ffcd266cb55e9eb1d058fd78432ba062fb4fd723348f3"; + sha512.source = "46130f9c35465685dc690096405791f82d70e73091f6654b5bbdaebc71b5fa3703a013461aedbe2cfe59975dd6233668f0c204e817ed65fc83c30be59be52505"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1"; + }; + nopageno = { + revision = 18128; + shortdesc = "No page numbers in LaTeX documents"; + stripPrefix = 0; + sha512.run = "0e152caa8b8df06444f50e2f9ca93f18088a0c58e2d5936f612a770b90cdb8f4bb0142064f56573d8569eee274adbc2703037ce4d7477c24d23c7c8de8748a62"; + sha512.doc = "5988c42840efc02f816ca0f9ff7ad2d731c66563c0c4de21b857de975bbec08962cef4ed1dad096abc39ecd8489d3a34a66809e98f49b0a280c186d03e6540a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + norasi-c90 = { + revision = 60831; + shortdesc = "TeX support (from CJK) for the norasi font"; + stripPrefix = 0; + deps = [ "fonts-tlwg" ]; + fontMaps = [ "Map norasi-c90.map" ]; + sha512.run = "5f65927546348815b07c93003a2b0922403d274bfa3d1665d4649c9dbc737df924958c2fd61c1d06cd5e7c1862aff392c8d1e9d827f4ae79e70d9b76467f651d"; + sha512.source = "8fb30cc3a1e762ec15c813fff0191b08b64a0d259dbdd21a9edcf70c6eb1b327cff5ef3f48b9dba0b7d99d1ec31b3accef65deca7285e27790261ca659bd525d"; + hasRunfiles = true; + }; + normalcolor = { + revision = 40125; + shortdesc = "Changing \normalcolor"; + stripPrefix = 0; + sha512.run = "013354a5f7514f6267d57d098ca93eb48970df0ce1cb2db0c60ecf664cbcea177b934ab8f252cfb9dd4c0979417937462ef55e51502bca7f32a7de1a0e820e32"; + sha512.doc = "ca7a9c008f72aa1287092f881f9ffcbe58ed45bfc97ec3231fbeceeb007f6248629d9cf49598afe604ac8cc30a4e8117f54fe517fcbf52548add2f6ac6fdb662"; + sha512.source = "ac6fcbd939d13714f21106c6b0786a9ede4ae6a3023348678ce22bca59343d7379fce9ef12bde91fd05b4912c70c8b4eb64b95f2869f4a30c03c4443640b9d80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r11"; + }; + nostarch = { + revision = 67683; + shortdesc = "LaTeX class for No Starch Press"; + stripPrefix = 0; + sha512.run = "3646dcc196a2b0fc4389d8c7ddbce263126ec88f33749e7b290bdd5ef1800cc8142c35fd87635c7df2b0768c3be03a25bf4e3b84162119c859f278d70bfd4fa4"; + sha512.doc = "279cacf2c378e30468748f3e92ae30d3085fa93bc38b43e7a2b423d06de056fbb2135f9aa5d243fadf504c60628b1048dbfa4f8c9e60fee2f844247f093bd7b4"; + sha512.source = "1fde1f24f5d0f009025f1391b360ebb1e4eeda6fc571c6e41bfbd4620b7dfbe739e60b660fc034f3d2f0e1e5a101b1e8c5c8f187e5a3f38c9734f35dd6742bbc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + notebeamer = { + revision = 68871; + shortdesc = "A template for printing presentations on notepaper"; + stripPrefix = 0; + sha512.run = "87870abd8c42303024df10a6339f6973e83e61fbbffd8851526683ad672810929b1e2f2fb2c9ade58a155b063fa39932122c6e21c652df1a4f7ad60f64c5ab7f"; + sha512.doc = "d9b9bdeff61fac3e6bea8aea4611cd46cc08362cc104bb30e4a67638ddb9d45c91059606d016be559c4926b0450bbef3962eb75d6d6c1fc14f262ef3acac2510"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3a"; + }; + notes = { + revision = 42428; + shortdesc = "Mark sections of a document"; + stripPrefix = 0; + sha512.run = "7b569f27ec34c103c5808036a6ffd7f97f9171287883f38c048b8eabbd979559fbf15b20c7002dc9b8b0577889482c4347e4986e076079809a4a5656aed46101"; + sha512.doc = "4e66790b76290925f49ab7f56175e2d41a20e715c43518edbae39e444d02b945ec05ca918574f52fbb6ca10fbbb060242c688fb9344094df2e025de83272322b"; + sha512.source = "f5405540929d6d99471bac43d89b01ed7ba59bdb8f1e7d978dc9a43a563e6b16c9cc4645d291054308f06b3d4df10547e09a72081c210063d37810da511dcac1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + notes2bib = { + revision = 52231; + shortdesc = "Integrating notes into the bibliography"; + stripPrefix = 0; + sha512.run = "019645974d270df27f5c5bf22570e26b5bfa5c076739824eff60a40d1c246010fe0e599eb2fb282cc08aa2161ec7ee753b734548ca04370d9bf923f357ced1f0"; + sha512.doc = "f4b97327b98e86c64620e975130a7fe790489d16135667c95ec7a368591084c381362e1447dfd1b3afb4f57ed2657a43f8623942f6618d839cb9b1c0995234e3"; + sha512.source = "04cd8f2ac89b8f4fdb20a445cd98ac382a082114eca90306eb0cdb793fe088ef1d1ba9e35dd9c9b2c98238cee6ed9519144c012973d7c2e1928c11f7350091fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0m"; + }; + notespages = { + revision = 41906; + shortdesc = "Filling documents with notes pages and notes areas"; + stripPrefix = 0; + sha512.run = "f5f6960bfade079642a4b4f221a7b762cfb5276a74b20bb3eada51706cd2e3496f91ca23e35cb39f221c57da19012597eabc8d3aa63c58e0749c8a01b6a28ab4"; + sha512.doc = "8af2f746d4484a2e06bd0f7f766c49cc9b0b790da2cf0faf1c83d959f2e2f60fcdcb7cdb6f1ffed89c2b03846215b589de332dc20935d0c0add4e3dc025c42cb"; + sha512.source = "96b547ad56fc2e503c2cf9b6089dd74e2902831d99fc8899b57affdcc1c1d23463dbc7472878cf30ee26078c30cac9bdc20975925de01a86982af19b6a3113fa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.1"; + }; + notestex = { + revision = 45396; + shortdesc = "An all-in-one LaTeX notes package for students"; + stripPrefix = 0; + sha512.run = "64f9704fd3646cdcfdc03f6a3e03f9fb37859b9f11463fa77e1d3d076115297fac9c0b8d6875c8b6b7f3d37127a400e6205239957526018d9ad5cdf36a984269"; + sha512.doc = "c47bd3a4153467a63ac2e2b149f498f9458132e841cd70da9871f10674e77d928f7f88e58855c139dacdc225d286615caf0297077b843750e6940482398f02a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + notex-bst = { + revision = 42361; + shortdesc = "A BibTeX style that outputs HTML"; + stripPrefix = 0; + sha512.run = "68627ca4a07ed0228b9b9ea4b70cdea5196e907f71f343310259d19464d503e76e2ea8fb5f59f01337916ee1f2ef398bdb1d3e4d97f0d49eac660fdce20590ff"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + noto = { + revision = 64351; + shortdesc = "Support for Noto fonts"; + stripPrefix = 0; + fontMaps = [ "Map noto.map" ]; + sha512.run = "6b1c2961ca9199ec9f0c9eb6e8c2ce61eda6d4eb0157ef292a176831df2df83bf09c3aea23825818ef5ed03128ba838f4377e42b53409c96d388422ce9dfd467"; + sha512.doc = "20b8371eec90440f2a491e1f34a0fce79b700e7b2f0aea2a808baaaf4e3275dd253b65d32429a78be6ed2b31b576f4291cc1f3cc2f625a675cd7a317bab90759"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + }; + noto-emoji = { + revision = 62950; + shortdesc = "Noto Emoji fonts"; + stripPrefix = 0; + sha512.run = "68400eedc7540f11c0d3649558ce14ac1bb0bf7f2ed56dfda355fa08c7bf37e947a4c48040075e52b4f4205250df2688a7de22fcbde8285ae4549deb5e02e263"; + sha512.doc = "6c0d286c903b49e6c09c570a8586b0f480497f5b64eaf7e9a99d81a143ff9c383cc281d2d1c06293d82c459b5ac108cd960f1d5e4ddd80a70f6c39b4ae3a7d75"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.034"; + }; + notoccite = { + revision = 18129; + shortdesc = "Prevent trouble from citations in table of contents, etc"; + stripPrefix = 0; + sha512.run = "b63b890933b27717625383488d2cbeb1501ace58b83e5af66a35ba440816527dc879df444af78090294df6d4d412d21fddbab43068a6d677b22d750ddb4105e6"; + sha512.doc = "83b3d2c7b97bb88af13d888d04f08ebb7e79661b4924ed6e328f26b9d19e4c6eea6719b49e6f227dc37c96201a901fe57da3745dfa7151bec27c7e8bfb81b236"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + notomath = { + revision = 68014; + shortdesc = "Math support for Noto fonts"; + stripPrefix = 0; + fontMaps = [ "Map NotoMath.map" ]; + sha512.run = "908ef695e1eeeeee1bbff53956b1d890fc9327cf985602877abc26aa787bbb7a09c18d592c2f5b2d1840aa91e0c1c0b071b8af0d576c5110eba5f62cc1f3184e"; + sha512.doc = "708eab7029720af202b7af3d45becbdcd8c8fe6def7327b70f3c67bdbbe6c17c53c1e42912f4dedde1f805f7d7009a75e7d8279f7e3a6faf091ca6990cd4f5ca"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.03"; + }; + novel = { + revision = 69945; + shortdesc = "Class for printing fiction, such as novels"; + stripPrefix = 0; + sha512.run = "35da534328bd371913fb43dfebb29dd1dcd88b92f1c39fad6c6248bb14982538b4babc7fa91a54a0c424cf1c3d6dc7d17dcecf5acfaa3979ca37c7fc8a45c9df"; + sha512.doc = "ecea10182e63c454a78c746946d47017d9c40592a6fcf2053319bf7fb06ccc1c0e655d213b5eed760d44e81195165cf6dea6288c8ff2aa59f5170c337f5ad114"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + version = "2.1"; + }; + nowidow = { + revision = 24066; + shortdesc = "Avoid widows"; + stripPrefix = 0; + sha512.run = "2dff380964c5c487a015073ade0cef996f5786b204657ec5c8948748f485c03b457f6d8caa5bce8148cdbba2623489a01b5370bcd38eb73469d07da4afb8a216"; + sha512.doc = "b11e2051543215f3f19c4d1e3398564093202be07771b7b3711e9ba5359e750bd8f73118b099f82fc3bb1e9a5f202027b168c371ca6587703d82f853ced4d538"; + sha512.source = "862f3fcfb0a165473657d8e8616fa200a017c410e162bc8ce95376028fa4f2c0959e7d116152e73ba6c6cf4d39ad34d1c57f2320dc20f637e1d3a0e2cb2ec7b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + nox = { + revision = 30991; + shortdesc = "Adaptable tables"; + stripPrefix = 0; + sha512.run = "0061e0bc12a06b79c4339684d0598587f3aaf1c2aeacc7aa32118d7b91d3937ffe0ca50b55f5ba9d1b7a4a1c511811191160c58bc51b68dfdfa2b0cee900b409"; + sha512.doc = "2383ebed9a9c6f65d6271317b46147915afdfd6caf39893e4cfe470e302f9ed6f30ca9f725bc2bec296cc88027462765b4ca5731cd5ccf98fa5c8156b1d88987"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + nrc = { + revision = 29027; + shortdesc = "Class for the NRC technical journals"; + stripPrefix = 0; + sha512.run = "2d93fc25d0305b8bee0e5e9ae61bba492bc265e023980a411ffa521f15746c6d73940e352c886ed5dbe08502f472a63559191aea44c3801518bca8b28d0b753a"; + sha512.doc = "35f86598105db616ea379175f3a098cf7c94f4a0a8836302de664c7bb65bbb5f72f41c5c9dc58bf336781a23553ec49e0a5c4d7d0be12b1cff68108aba77e88d"; + sha512.source = "3404facf13d3ddaaf4a9aa295cd7c0777308502075d1ba70bfd6be6e8158eea6ff4b88db2414f8ea5e758ebdf52dcd5f44b6bb55e903c0e11dc6260b02a1779d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01a"; + }; + ntgclass = { + revision = 65522; + shortdesc = "\"European\" versions of standard classes"; + stripPrefix = 0; + sha512.run = "f0bfad104459f2740712d186f7f9aab20e9860ccf75f8c552a4c80d8b14ece4d503d2aabbd7d3000e1bf05203f41ebd49f2c693b4d36478b631cd27ce71c9c0d"; + sha512.doc = "c6a6d7302edac0aef33d1747900c3781683c2a0deb4d9dc3cafabda375e9cc92d9b57b6638442c164b7435279d43f208d2ebbdacf944e96c71ee368087d70922"; + sha512.source = "60cc5982eeabb092b53f1bda76c12e3c090d9777d6a39ebe7b675dfa5dfab27450edac8da7e44539a67af1cf737060e0e52dd80116b8b7f784f46efc9fe7df82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1f"; + }; + nth = { + revision = 54252; + shortdesc = "Generate English ordinal numbers"; + stripPrefix = 0; + sha512.run = "e94365bee89f78b13ec22d8d34ac78aaf50f060f9282c0529d98518ce1e5b7f7995bd2da1d17654ed795f7555e7dcfd9d51399f4a83affc059eb3a760a76bf97"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + ntheorem = { + revision = 27609; + shortdesc = "Enhanced theorem environment"; + stripPrefix = 0; + sha512.run = "aabab9d6f1a5d9e9bd2ee2ec4b9ca8200098a8f3dc786b9c06d4b0e00431dd66f32a254d452bce7e1bb595454e178dcdd71d724b8d835b6f1c9ad9de41107295"; + sha512.doc = "fdea81cedc9ceca6ee29ee006867a05f018f210db2cb59c763adc4bc15db65a7e96ffc93bcd576a4c1a50e7e55d4b199132371686538216eba6fed65dce77ba1"; + sha512.source = "bb0eb98e3344c4be782d113a0e5f1c91d615a5530e1c0a786938b1cf608fe8828d59d365c0d1011e62517f0f76139ea13bad1857f2e1315a2b919af1de3335d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.33"; + }; + ntheorem-vn = { + revision = 15878; + shortdesc = "Vietnamese translation of documentation of ntheorem"; + stripPrefix = 0; + sha512.run = "90460e92cb52bbf8ac9b56bb950d36551b40ba260a9745e8f4d339bbca855286f8682c1a5bd7dd4ecb53e85448f96d558e6c35ffb42d8b862d4680930f3a64ab"; + sha512.doc = "e097290ec9f9696aaabaef4dce11bec4337050848ee547535c30a9ecdf12a1e0be014f905b235fa1d851ad2c20426cd4a9a442a19475063dd4fa73945c3e1780"; + license = [ "lppl13c" ]; + version = "1.203"; + }; + nuc = { + revision = 22256; + shortdesc = "Notation for nuclear isotopes"; + stripPrefix = 0; + sha512.run = "d540e5dc8a3edb41994ef4ed8af6a51fea544ac929ef059fc50cd561891e02e9ee9b55a62782757101cfc5eface3a170bd585c144e7c8e79e191299527f979c6"; + sha512.doc = "ac118243f5fa4c7a4000344dfd5793dfbacc4d7a16a7031fca6305578e06bdd627473eb065a13c4d9cc5d9ef3c1712202c2d65a913c75043e36221fc7df25ac1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + nucleardata = { + revision = 47307; + shortdesc = "Provides data about atomic nuclides for documents"; + stripPrefix = 0; + sha512.run = "68f9d542701bb9d2db956e70784dfce8a14058b5cab5c8316f9d76d59d20de4bc7fa05f22cfe318312b9ecd823a0d0b5cd084b809bcd615217f14e9e0ba76de8"; + sha512.doc = "3d03a8b301c91fcc3e8221f913574b4542e0aa645d83e443d117ad0d69b7198c4780207f0a5e36f7e24f538a249097e1ac4d828e192f6dd22684e905ce9f1cb6"; + sha512.source = "cf26f591795ce6db64ee7548c0384764c42f2eda260b5e5c1d56f7f08c54e13fef84616ea0a3bf9a9bfbf95ca139adf675eaae3047c80faf49e14d6330cb25c9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + numberedblock = { + revision = 33109; + shortdesc = "Print a block of code, with unique index number"; + stripPrefix = 0; + sha512.run = "d45a69881dee3aa3b6de69587b8c59d889fcae528c3c66f10cc14d653dbf7281e9ef4045dd2595d1a5c7305686bb0d12696bc00b672c5907dc58481a4e00d70e"; + sha512.doc = "99443d809e77b32fafaf59b3faecbd121f038e3ce8e054304e8fdae6b145a0d19a67b5e7d003db72f06528d975c3e543a2fb9bbfbae9f48be460b1a344a0d2c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + numberpt = { + revision = 51640; + shortdesc = "Counters spelled out in Portuguese"; + stripPrefix = 0; + sha512.run = "c23fc54514b98cbc31e095f6b1ff37d37eef75146a3eb14e230ee75b71f6d506f148de643ec5e890a565b544b6d05436d47033f0c00ecdccdab697336b61dbf9"; + sha512.doc = "8b3723dbcbfa0163d7113c96ebcdc5a2262c169a94b733dc4af3bc263b119addf58042817dc8437ea5583ed93be1f3d5485ed76c2d704b20d303b5efa8bf41cf"; + sha512.source = "967569a1ca42c00cac46f77cf2dbe61d1aebbb89d3754d69ff3beb848d174fbf544374723d33a8c4ec8b98b2c4d93f32dfd1570112a149afad934eb07bff4ef1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + numerica = { + revision = 68021; + shortdesc = "Numerically evaluate mathematical expressions in LaTeX form"; + stripPrefix = 0; + sha512.run = "56dea9cc66c348affa62820c78bd92b793f6ca18c4581bdec25e4579ebea16bef934e1243fb18f35bb3ac62e1499dcf441099932c05f016f5edc32fe85a564b7"; + sha512.doc = "321c27897e1d1fd615cd8e1d122cc6c0271e5dbe72c7179ad2dcd0e06c6084bfb1e0a6a244b55cc41bbd8658f5ff9fbcc0962e950564a3fe3fbd7d179f0317f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.0"; + }; + numerica-plus = { + revision = 68019; + shortdesc = "Iteration and recurrence relations: finding fixed points, zeros and extrema of functions"; + stripPrefix = 0; + sha512.run = "803e50eefdeedbfdf610f4084eb8574246a3f0c56e647a1105df410254fe7d965faadb397690aa8df08e488c5462af2404293f7deae6f8ae5810bb34488f29fb"; + sha512.doc = "aa8be0b87a737a956c5f69b84a9760ed76de6d0c4a6c27bbdf0a08e9d3cafef977c4a0c22f7d2ec088c278e8333cf85e7d84a8054ce8a7fcacac6cb8a0e2a5e8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.0"; + }; + numerica-tables = { + revision = 68193; + shortdesc = "Create multi-column tables of mathematical functions"; + stripPrefix = 0; + sha512.run = "1244ae95394a7e28ff9281d1eb4f81de88a7e83e7dc880ad6c185591b2aeb3fb826113f83881811e19385aad5dceecb79d99fcab53f6d313b63b31235228643a"; + sha512.doc = "f926645cf5f512dc655e46f6fdeb54b5c12050d66e9408690e0980843a291d2056a51915a44f2fbef6564f85344eea46ecbbf1859d79443952e989e6b8ad5e07"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1.0"; + }; + numericplots = { + revision = 31729; + shortdesc = "Plot numeric data (including Matlab export) using PSTricks"; + stripPrefix = 0; + sha512.run = "6b51a7c68357dced9627d3c618a167d689b573ea44c2f36de5417735f39f5b3d1034558cf188bad2da5eb25f81a2bdee3df6059b8c14879770c3b300422cf016"; + sha512.doc = "1c9f9856ec2f8cfef61829256f1076099e6bcb79cb45e8155116d6c24feaa52f481c739593c6cc51df803fa76e8ec38b8d276e796660327a2bd1d86957896332"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2.0.2"; + }; + numname = { + revision = 18130; + shortdesc = "Convert a number to its English expression"; + stripPrefix = 0; + sha512.run = "b2859430992fa6ee99f4d96f58cabe26b0f216d5e3b512c69b4db74738d933ea8d54503a61257d304201ac3fbc2ba49e908eeca5953ccc0f0023cbbe8b3df76c"; + sha512.doc = "41aaa9057415ad83177f416e43fde4c8c81e335b2f3c025cbc53ffe1d9d61fc05dfe33221c16f1d652837e4ab5a797f60391fb4c319339517090ad0e2ffe66bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + numnameru = { + revision = 44895; + shortdesc = "Converts a number to the russian spelled out name"; + stripPrefix = 0; + sha512.run = "c6f92a720fc5baf6f55c3bc18e22113de0f7cad8a051c2019360f5f3c64eaa450bb12d6c361c52a5a802f558ff8d2cbfaa35897682d6ad218e9adbbc788f3c57"; + sha512.doc = "5e67f1908356e1f21e672e63a8873e46ebb36af39e55a64c174c3bc5c49057c6d19ac36523c34a7f1c1fc53346f6ddde8fd239ca88b5790ebba1eb8b7dbeb0ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + numprint = { + revision = 27498; + shortdesc = "Print numbers with separators and exponent if necessary"; + stripPrefix = 0; + sha512.run = "cdebfa502a461292b02186b146ad8086f46447b5d8a0292fd7943d93a39796eff1710563866506679e903b7a4d415af9a8d863fa81a62395c7bdeec2cd68e66f"; + sha512.doc = "b821566e6fc532425c8f1b901b5613c763eb392461644850428707105626b6eb1a53784d6a693e7f9fe2aa612b72b4d5a38ddf65f22a0d022981771b2b303d04"; + sha512.source = "d4af01527564c9818840a87d9c876ec8d8cf6e7712913ea3deae4012fd0d4f0dae19e4016fc205814620d1cf97f3c12b98f1003fc6fc81857101d2ecd90fbe83"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.39"; + }; + numspell = { + revision = 61132; + shortdesc = "Spelling cardinal and ordinal numbers"; + stripPrefix = 0; + sha512.run = "4db8e16d137f47681f754cb2bc1b9b6fb404676f57c5696ef044287a3f0052603978997e597a2b8b13393d59e6531298daa127d72a381770cadef1a29944948b"; + sha512.doc = "8bcc1bcca230a7829a106c66904feb70de818dde2d6c4c7be3a5df3078482bba001a35db85b1c548fdb5aada0018cf6f0dee936641ae5959ebb84dfe953b6b9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + nunito = { + revision = 57429; + shortdesc = "The Nunito font face with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Nunito.map" ]; + sha512.run = "920e074987e7e75fa6db92e3c05d76f7aad3e7d9b4f0166a8a8ca79bc5183549299b56a10f1cb6c7fdaa63f7f55aa6b9c1b2bcb4cbf03567b26e9fcb0240472e"; + sha512.doc = "e0de75f22da96d229a6465a4d47baa8e4c3199567f8d2e3255893e5b2a2d16ab73eabec1a103b355518c4cb98ea3146ff067af54938c21a910aa65aee3f429db"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.0.1"; + }; + nwafuthesis = { + revision = 66895; + shortdesc = "A thesis template package for Northwest A&F University, China"; + stripPrefix = 0; + sha512.run = "f3bbd684f063f59ea0fc53df99ac0e84f3106651d6ce5cd48d58cbcc7cfc205a9330db5d4c7988a213563d6fb215a1c6d90c240396894ded1b7ccef0ea4253c8"; + sha512.doc = "4a5395c215dd135488bec466dd4fb210402bdca2e54deb727264b02bd621bdf16ea60b4c16c86497b016f30f2dc5c291d0d432bbd99beea84d59533d29c2557d"; + sha512.source = "d6188d94c3c35c2fc63efbbc37263a3f0c584974de022978671701e8e0d25d26b11e3dc92edb594ffadab231e754745b35498f09d9f95e00a114f09f790d103f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.25"; + }; + nwejm = { + revision = 70606; + shortdesc = "Support for the journal \"North-Western European Journal of Mathematics\""; + stripPrefix = 0; + sha512.run = "1d54bf4f1ed74ca7ea51761ed8381b170e6d66e35513b272ab22267d799e8ae562c5532bbf3212a9300c0bfb19201cd999eede311387645e66ee6cf03693e98b"; + sha512.doc = "456a5e6f5bcd21557ec0faef50fccc95f2d7f07fe26f705c88bf1ec601e94bf34847c2cc3a8763af5a65f6b2ec3183c97f8f1878bb09ca4b7f2c2997eedfe1b3"; + sha512.source = "00302f0628e72c6329f03d65f57a9bb78e6e46647247801ad15d0f2785a067c0d1b84fa8ea2af02fb4c4d6c02d8d46288f6642cdaf74eb3d6bc88aceae183a6c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.6"; + }; + oberdiek = { + revision = 69038; + shortdesc = "A bundle of packages submitted by Heiko Oberdiek"; + stripPrefix = 0; + deps = [ + "auxhook" + "grfext" + "grffile" + "iftex" + "infwarerr" + "kvoptions" + "pdftexcmds" + ]; + sha512.run = "d8c75685ac77c9b8f3259952cead1d5d46dc7bc556044daeecccbe1229da7566c0a31dda776356a6bddd0b710b8e8e3e84612c3ea9e9691bb486e154d9e121be"; + sha512.doc = "728d95ced0404da11e4dffbde075eb02803a09d5c89fc34b6ffe78e47c78837c105a85827adaf8974d2edc84ddf1e7eb0ff20846a2712d152011b2198bcbf18d"; + sha512.source = "726481c21c3bda68ab4050c8dca78cfef2a9e7fdd6f8ee21540fc1dcd629383e21db06588cfd836915a58e4c8da7fa7762f4e65bb01da8d0ba94e874c1d04742"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + objectz = { + revision = 61719; + shortdesc = "Macros for typesetting Object Z"; + stripPrefix = 0; + sha512.run = "15aab03ef1773a4ec72a3dea3fe036cca671abd3e55721d69201c43902d9655a9b71b6b109c13824015a9db740cd8e463016f59dd84a22a3648c14cf7e95f2cb"; + sha512.doc = "b1918ee04b6b1755b947d12485abd250ec91ce4dfe52403631e00b6c3dac88db2c3c3801912c952d26a00b06d8dbf7a9d88586ab7aa348aa0b2ec7cac1e4fb2d"; + sha512.source = "77332f847ae68cfcbe61b1568e7079a9d2c5a51012c0de3bbad166df71f3cc2af61317d886e4092192e647ad2ac13c7f768b9397770587910ef63a89acff117e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + obnov = { + revision = 33355; + shortdesc = "Obyknovennaya Novaya fonts"; + stripPrefix = 0; + sha512.run = "8adb7a1e6183576b4ed9d709b2f64cc778217602c807fce0daaa62b59786d5629fded5e7ad4824cdee90ad5333b9fff4fd47d462e38005fcd1026af8838f04ed"; + sha512.doc = "6fca30705b614ede4e055a39b92deac91daa6e9ca0922725f29c801e58b4a1ddc7176148b03de147aa906289962a3ff45a743828c0636d7f8fa3279b88e5103a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + ocg-p = { + revision = 28803; + shortdesc = "PDF OCG support in LaTeX"; + stripPrefix = 0; + sha512.run = "23b0b4377ec615d8d334d09018629f524a775311c3d227b350e7dfe95c6154795d1d3e44e7e1e405d45b623ecc614892d0996631615efae2ad6f040c1c4d8dd0"; + sha512.doc = "c51169bf3398b17f3dfd2e0aa0efb574cedf40c4739f1b4693f9282042fe9f024dd48675bdf5ec04895c49e0583ac436bfb36e12ac51ce89bc23ac587b3f92f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + ocgx = { + revision = 54512; + shortdesc = "Use OCGs within a PDF document without JavaScript"; + stripPrefix = 0; + sha512.run = "33b8ab1b03b7a887127dbe589212747c8cfd794c1b1c9525222cdede3f941812007441ff2835386e59a19b253e5cdef27a83dd958506dbf7dce6988007befa3c"; + sha512.doc = "c3c28d54a06a5010d8b1c266b1b9689cbf41050e8427689015ce0016131cebaec87ca0c416b865b5bf9a386a2cc33326da5720d326d797e94c41b8f02e160889"; + sha512.source = "633326b032b98f52375e75cdbc55165e35ee4d531d4436df6575ef54c7897187030d99aeeb0de26622ce4f5e56a10df3c381ab72c0731fd8150d677f1fa3c09c"; + hasRunfiles = true; + license = [ + "lppl13c" + "lppl13c" + ]; + version = "0.5"; + }; + ocgx2 = { + revision = 65292; + shortdesc = "Drop-in replacement for 'ocgx' and 'ocg-p'"; + stripPrefix = 0; + sha512.run = "dfc6fb9f004ce6af6cf0af6f057ef3db0bb8957b52f2e1ecc262da1f2b2fd556626560062a712ba8b45adcda1ef0f1414b54d78f58b68f1b13cba913a9df71a4"; + sha512.doc = "c09b684bd181579f6e773b295344ba78b6058f87d76d0ef3272bf5f80691bb40de49554948be53f9bad7779c0b4b8e3adb9fae1e12e0c4403962bebe4f949350"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.56"; + }; + ocherokee = { + revision = 25689; + shortdesc = "LaTeX Support for the Cherokee language"; + stripPrefix = 0; + fontMaps = [ "Map cherokee.map" ]; + sha512.run = "9638c408e96fa861d395881d1bac87b55048a25de61561823242d78f836522205c9621f5a01bbb5ad1c8390230dac727b4fae333c22966a04ff5df1f923b5909"; + sha512.doc = "40bb5e47b2ac627007d349c0b043f299f09321aa0d6fc11ad9f345576fd7a902be4d012d56ceede9e66c8a5972828e7b5a5646c101c08fd28fa3ab1c935f8256"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ocr-b = { + revision = 20852; + shortdesc = "Fonts for OCR-B"; + stripPrefix = 0; + sha512.run = "30b658802a2a30776cef18c2ea0f1a71044b5b7819c75ec58df9acc04134cf1aaf85b97f93231d439d79c47f66d7bc57b43494aca073871ec3479ae70178fc58"; + sha512.doc = "6d162b10b558a9db8269b2535ac9df4f76973c54d7e23dea20efb29974b839278888fceab2da85f945da483415bbbafc614c8ae4c1cea6d262d6a46dea5b69a2"; + hasRunfiles = true; + license = [ "free" ]; + }; + ocr-b-outline = { + revision = 20969; + shortdesc = "OCR-B fonts in Type 1 and OpenType"; + stripPrefix = 0; + fontMaps = [ "Map ocrb.map" ]; + sha512.run = "ac15acebab9c9f81f0e7786cb3222b336aae3fa4a379592d5fa231e145cfcab536e28c9078ac617bf9b8b672f6dd24b30caa998242ba1e3f4633873ae8d54609"; + sha512.doc = "7bafe00b9c5d846f21cac682d9577ffe696eb54a55f4bee9314646451fec37d883eca7531f594a7994fa8038f7bb5c78a55dd8a8264255a6e60ff90929596d00"; + sha512.source = "b2fa5f4561a4fe61c216e800fcb47bf99a09a62d41d62e30669753139484b58b137649248ec152f7631461c54ab4e51873f3c7a42d43ccf2db86d3cd21d3493f"; + hasRunfiles = true; + license = [ "free" ]; + }; + ocr-latex = { + revision = 15878; + shortdesc = "LaTeX support for ocr fonts"; + stripPrefix = 0; + sha512.run = "d6a4377f66293f8f7ad8b7f8fe3a3a3dd294a302dabb33e193921882d6681fc1c5537b8de2bb188396139bbdd33f14d4f1c20f6edf44ce680df837b250ee83b4"; + sha512.doc = "d0de99d5cf93517f5be8627d649a1d8018766cbba44c40cfbe0f93a3b69c1a5f10b4057dd79194d148030948509a26ef45ea83208c2922cc64b10473d663d591"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + octave = { + revision = 66115; + shortdesc = "Typeset musical pitches with octave designations"; + stripPrefix = 0; + sha512.run = "03db52eae29898d00b407af64fbc8aca35cd5c6165c3f7c890dce1f8218df65c3df447801d8c68d29af67f62de3057feff203de7486f192d9e7e6a59d4f28e02"; + sha512.doc = "13cf74923401dfd58978c2365e27aa394aecf01849543cb6f65a52b3344902c546599c350927950f63e3faf1b81667e9329b9c18aca6cbb87327046f0d695988"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + octavo = { + revision = 15878; + shortdesc = "Typeset books following classical design and layout"; + stripPrefix = 0; + sha512.run = "06de0f1e69c4bd8bf0a65e08515994a10ae8df83e6e8981daf70b6eeb424fd59b58808249782d76b9373d9982aee50e7c12c17e090e3697533b87d35480f94a2"; + sha512.doc = "daa628a0c047ece5aaf15425c0123128a771a17f08fe9212856e2d63b40340dbd7a50a4ed1e19b04198637e11b530239f4280b810ee3813fc6275b78d37bd8a6"; + sha512.source = "3632856effd0e32e8595bca0f2a1ea569261cd0d273fa200d9cd9c70908a96da613f06eb315389fe9b8e6fcdcd9db233ca8c148120625f6813848a930fdeea67"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + odesandpdes = { + revision = 69485; + shortdesc = "Optimizing workflow involving odes and pdes"; + stripPrefix = 0; + sha512.run = "57a0af92aea846e23c0dd05b896af1eb7538f0bc20e957ad3a528212101adf2a1e03bf661b0af2881320e4363edba32c0653a533c74b536d91e86e27666e14ed"; + sha512.doc = "ea581c7e77c0ac143a10caee59ed2d0cd7de439966974ad80bbe472e3c5cfa746e9cd43da677c42297792ac157e0a3fea25666f55c3e1cc3c38cc22475b1b26b"; + sha512.source = "428bf6bea18ab29fee6b642ea27676de099072791b72716cffb7670eb274658203bdd53529d8be0dc7918f2db9dc0ffe56baae9986e41ea772fcdae548906443"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + odsfile = { + revision = 68204; + shortdesc = "Read OpenDocument Spreadsheet documents as LaTeX tables"; + stripPrefix = 0; + sha512.run = "0c663510fd84f116cb2cf12c41a59faec219b774fddec215ade16b9299db1e445e46deb565c4b0acad18ad2b0ac3c5f54c9b8d7b2ea3fa3bfd43cf86716969dc"; + sha512.doc = "e76be0163772f0bb905cfc4987dd2d1083decc706e521647217b7ecb09214c29bb1118867bbe8d20bd2aabb1648bbfb3ac12ba072c38ab7242d3b1a86df5f6ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + ofs = { + revision = 16991; + shortdesc = "Macros for managing large font collections"; + stripPrefix = 0; + sha512.run = "347dc05e8742fa09679e3f16465077b0bbf5e34a4be5a5c2e1da094ad22c0e69ff9f4abb4aacb9be2c698b27da7e169adb0c1840da3e56b277514a9f9631dd02"; + sha512.doc = "13f7fd3ab4cb31ae521827b703cf4c3a0c796b6a33f46b2a24a2a8c488e92d6039a9b136440b00b6a0aba14a2dbad832b777cd5a3aa120ccfc4888ee147954e7"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + ogham = { + revision = 24876; + shortdesc = "Fonts for typesetting Ogham script"; + stripPrefix = 0; + sha512.run = "fe651bcbdb0e8f9ded07fdc412f1273cc8d473894f06af69ae65ac4c6895daba3f61571eac9a49d16de043ae6ed6e03ea386f11dd6b395347d98784bece4c8b1"; + sha512.doc = "6d406cd0a2ba68946be8d2eb148a6c9286a164ae701f66802ecabe6661807ea54eba175617e00920d37a88dee376c1bfcecef6184320ef1790716d53e5a07871"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + oinuit = { + revision = 28668; + shortdesc = "LaTeX Support for the Inuktitut Language"; + stripPrefix = 0; + fontMaps = [ "Map oinuit.map" ]; + sha512.run = "4d6b72ce539766a3453f7edb24c243a2a495f3916ee9fd650917c510a0e8fe36e12399843c1de3dc0b0de704bf5362ea20e9bd0d6c3100e659c5641395d658dc"; + sha512.doc = "dfb7275002731695086aa8733a543ca1eaa207bc57cd0b324666940ab932cd9301cb1c0b0bbfa4df36278ac8e289ac1be78a2e0a58ec656c470ff4b841a70803"; + sha512.source = "0d81c9803b9b45b20c096ab00d0c0e5ca26e71d5af463e511660c5bbd28b5b962afe243f21418883575b5d40f503bada65b5c34ba48486aa74a6f9ddcbd48680"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + old-arrows = { + revision = 42872; + shortdesc = "Computer Modern old-style arrows with smaller arrowheads"; + stripPrefix = 0; + fontMaps = [ "Map oasy.map" ]; + sha512.run = "2b67317d41349c6d601d8ddcba6ba58cf503756f5bb2f4343c1447cbe4e24c8949a4de58e7cf3863a730bfa809dd09f5f1ce9944e3dc5d4de104e4817d6add17"; + sha512.doc = "d142a95119386f85d1e6ff0f6a24bcf09b9bf7ec83a581ca43be67376cd4a44453d090e4eedf97bcba1026827eff29f97add3a6ed676833b02b718da4811a3ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + oldlatin = { + revision = 17932; + shortdesc = "Compute Modern-like font with long s"; + stripPrefix = 0; + sha512.run = "02ba84762eccf816178cc652d7f8d8f7d962db7d5386de4a8274dbc9524fd7a212116de0d7a53886bd5b431ddb8a5cd8ffca7defe3174cbb50f417172d2963f2"; + sha512.doc = "1ed3c1640420272b33178c62aaf4c0d538f5f1ffc5350c377788210128c74eef4e6023fa20b3d9f214f518079e8a8c3753c74d30084f5a71a994dd4b5534635e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + oldstandard = { + revision = 70428; + shortdesc = "OldStandard fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map OldStandard.map" ]; + sha512.run = "838a3c6e29a37b060c2f5e158a7145a6119432006b213e4fb3da956d7df66e76e1fb6d963c67d4833b5d45bbdd203e689c9a54302dc3ee28de5d630b200f3dbb"; + sha512.doc = "7933ef5fcdd97201d269547c981bbdf50ebf11b5a11d417cdd1df9f3e0f35fd5fd618a198050865746f9fcb31cedd61abeea25540d2a70bac45b0ad9065c81d5"; + hasRunfiles = true; + license = [ + "ofl" + "gfl" + "lppl13c" + "fdl13Only" + ]; + version = "2.7a"; + }; + oldstyle = { + revision = 15878; + shortdesc = "Old style numbers in OT1 encoding"; + stripPrefix = 0; + sha512.run = "968ff7b641f6ae6e8aaf43d1ae9617710b0bfed9894dad135cfd11050eef1c35c48d589d58d3a94e34f93c22d85c58b047ce8d0bbf0ae5c2e645de72e327f9cb"; + sha512.doc = "79e2c2d155bab57456cf7d2ec08930d54e538a830c1e7fb12c0731b246b917840d0ba06d31939ca97e7a20e53a061caa5a5a3beb139fc1a05f32dd9497a37ca7"; + sha512.source = "a9200c32d19045cd56121a64727c1465ef16f48269e4b9bc6957106451694707fc0fc3db253e0db425fa8396b32560b5922f8556fafdeb68ad129d90f027d944"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + olsak-misc = { + revision = 65631; + shortdesc = "Collection of plain TeX macros written by Petr Olsak"; + stripPrefix = 0; + sha512.run = "f2bd1c22a294c89c171d3df5ff9fc77d2c4476c7e44e7f0e26b07780467570ef852384e510a959f75b9226d4962b6163d890dacfc9341a8657d9b9d5d6e76834"; + sha512.doc = "856c8ff6d539198f7057e45d5da22bd4120bbe1915fa11b5cd6dacf6b13354df49370dee55d024ed8ff8be29ab83dcc0a786db5fd1f72857bcef7f47d3167f8a"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "Aug._2022"; + }; + omega = { + revision = 33046; + shortdesc = "A wide-character-set extension of TeX"; + stripPrefix = 0; + fontMaps = [ "Map omega.map" ]; + sha512.run = "bd07f654ad56219136e2f9e7612b87892bf8c6d0c8f2e41434a7fabb8b159bc43f79444301383adf560f1985f64e639dd496dad6d3ea97ccbd85fcee4d7a36e0"; + sha512.doc = "31eb2aa643ec37d68d902f4de7be391e7da3af61bde93e78beb1e6df1c6367fcfe00f88e29c8cc878b9cd40f2e3a45f9e46bf24ca3a5608aeae09be491130fef"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + omegaware = { + revision = 66186; + shortdesc = "A wide-character-set extension of TeX"; + sha512.run = "9978e66b66e988d49f3dea44b947585e5ec4fd61f204ee06a56a9d32df721c1bd66ab32a05c3d36ca92e740aaec2b478261f3eaf8c48c0cb30fbf9bbb410d804"; + sha512.doc = "e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + omegaware.binfiles = [ + "odvicopy" + "odvitype" + "ofm2opl" + "omfonts" + "opl2ofm" + "otangle" + "otp2ocp" + "outocp" + "ovf2ovp" + "ovp2ovf" + "wofm2opl" + "wopl2ofm" + "wovf2ovp" ]; - sha512.run = "f721b48b71ae2eb74104e23989cae84d3316b322ebff4703d9bddf74e0ddacf742e279813977bf29883fd17f01049112169d02aa3e4a9be887c049f8484ca0fe"; - sha512.doc = "ea9de17ac138af2fdfbd624e0c516faa2eca674ae1c423cc7f972f87c1bfbd37812e199f68b463c07213fa263636490b7207baf68506514f73fdef1d6c041a49"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3c"; -}; -mycv = { - revision = 26807; - shortdesc = "A list-driven CV class, allowing TikZ decorations"; - stripPrefix = 0; - sha512.run = "72e74c30c994441aac708e719e894d01bc3d1a6570863a589dbacae8e3c69f70d192abf7473b58a026b2859f7f10dfd1e56827cc759898248e3cfc9d36f37583"; - sha512.doc = "892d0c10fb8a2dd9a65bb6fa4dd48fc3ea49803a7e633cd390427bfbcc8f16f6d213f9ef511c7202521b518db4c94bfdad5197c30b2c8786bbbb6c6f188293a7"; - sha512.source = "56901df8931579aae3cc8f51e7c6c6542cca3b1b231512e6cc27b88104c39dea50026f0cf21b2b4251f4e1ddfe4119de7ddbde6f50bde743296bb84195fb5f05"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.6"; -}; -mylatex = { - revision = 56751; - shortdesc = "Make a format containing a document's preamble"; - stripPrefix = 0; - sha512.run = "b7ffebb46952c41818081cc14545d429fa65e376a2214d0ed41b56cea05cb1d3146d87513b4a701825b01bcf1ab268cefe6e9d709cb627dbe7b95daaf439d509"; - sha512.doc = "791cce1eb8370e62642b64389b26a91af563ca875268039ffa978cd07a743b999573199f1a3851ee65f8118cb462ab5d5c658118a735875db90eb8482246e889"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -mylatexformat = { - revision = 21392; - shortdesc = "Build a format based on the preamble of a LaTeX file"; - stripPrefix = 0; - sha512.run = "476e2c739c9a99a53a9f6bb7eb32e6122c149fe224497cd8e777af0ebd139ffadfa792090d8673ff96b4e17466e918f9af4ecb7a12c608d4c33d4e17f2b26f0a"; - sha512.doc = "c0754ef147a457e7c91b16a50dab2220fbf2f5385e126e796b1c65025f0fd998371b4e58d96ae72b8c6eb21b2030906729270c88c0914b1748714455e78d1bbb"; - sha512.source = "4f172517cd3e0bec77bc9003201a4488acfedcbddbca217ecac4878d3df9ab86719c5d9fc645671bbf3a5d5b66a1c4e80f9acc01ef27c82a3eaf13aeed45f857"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4"; -}; -mynsfc = { - revision = 60280; - shortdesc = "XeLaTeX template for writing the main body of NSFC proposals"; - stripPrefix = 0; - sha512.run = "6736bcfc3e0285b4def1b690fa0be98da319ce91f3e77978f08afc81289bc64b9a7aaae1d23a535a437c68037ba3cf0c068846ded35e3a6f4a26fbb7fa1be382"; - sha512.doc = "0b8936f3a2f36f68be9b1b9ba7c90f60babf6a6c9c81ab165ea947829ce0cf4230cf9f53d0acef3dde83c2fad10867e7316f9dbee0757a7fb9dac98b683d811b"; - sha512.source = "613c70050fcedf8917d39d2cc212b19fc2b1bc983e442d33bbce4f1fcf99cf73a8ee8a51c44eea090deb76fa57ed6b075b9fad12ed00516b80a2314d0202b988"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.30"; -}; -na-box = { - revision = 45130; - shortdesc = "Arabic-aware version of pas-cours package"; - stripPrefix = 0; - sha512.run = "8b0659454d8324ca51c9e97f7957a3c14230dca0b4b8e047b961bad1b81d2a8b0220cf275bf84e9aae6a3d601fe93df3de94f603a198f6bea716064ae8675d0f"; - sha512.doc = "2c78a71155eab3cfdf551830051dd360f6e9fc8085ebe364c13a79a1ebda0693d633e7ba08e31c356e46140c33bf3b190365cb88d944d2b3e8c0799ff68cdc8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -na-position = { - revision = 55559; - shortdesc = "Tables of relative positions of curves and asymptotes or tangents in Arabic documents"; - stripPrefix = 0; - sha512.run = "fb88693c5d626331b9deab494bdb0fececfcb3d6f76e91f76f467ab8f152fe857e4ef41f87b38092118646961c0f64f82501f0f75f5610d793b8158d77bbbf9e"; - sha512.doc = "abe7a0a765cfdd1d4ff454180b32d4153cd715d9af333221ed3213082dfbcf5ae0562617a2b30835a8aaf2a65c166e6fb3941d3bd6c781d83d65e971bd53f356"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -nag = { - revision = 24741; - shortdesc = "Detecting and warning about obsolete LaTeX commands"; - stripPrefix = 0; - sha512.run = "a2d239ed1e12fd1b082c8df5531c9b83cf55c39b13781aa01848f3fd06136a9522598abf9e63580a93fb12ad7c392061b14d5e96b4d4f4dcf8180180280224a0"; - sha512.doc = "9a4859b67182b40428f720e2e955b591fd3fdf30acbe7c3214548766312833b3ebd5a046d1ca2e2b824e3bad95bde635a1cd112e8023395333cdcdb9cdf55ba9"; - sha512.source = "969b7e463e6e8eca51af114ba51d538d0a1f7b9ed3cb5dfecab92ec7eb913a872b740b2f434e854a7c11b31c7b3364120379a5732220833235912e73ee202878"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -naive-ebnf = { - revision = 67892; - shortdesc = "EBNF in plain text"; - stripPrefix = 0; - deps = [ - "filecontentsdef" - "l3kernel" - "pgfopts" + onedown = { + revision = 69067; + shortdesc = "Typeset Bridge Diagrams"; + stripPrefix = 0; + sha512.run = "bc62aac04466286d07ffaf65b31c4d7ecdc6f4194f99192700774a213ca52861b0296c3f9864c187a83926696ad3a3a139ae7c00be2167b970159a7605fb4570"; + sha512.doc = "4fedacde595f96c2bd8babf38d4aae73b3bd9f73572547ed5b93e98c16dec50e89651c42aa4d90046464c765aa2f4d5f32d8aeb6ec5de2bb30f6599e53314e81"; + sha512.source = "aaa8de7cb8444749e1e7671406229d222c36b35f2bb676208c22ce8708a4e1cdc791ae99abad9b55fd877cf97573006c41c5aa2fabc573df589d059924f64626"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + onlyamsmath = { + revision = 42927; + shortdesc = "Inhibit use of non-amsmath mathematics markup when using amsmath"; + stripPrefix = 0; + sha512.run = "5452647ee6eb939c292457ee26cb3639560eb55893e44ebbbeaf27ef1c2ed30346d91d733422e65f6780af7c434cf02ac740d722612f888fca8dc45538d81303"; + sha512.doc = "154273f8589b0d8bfa0ed46cfb297d44000eaa750e8d34b1a7aad9f7b26cb19423d7f7ba362e3739cb7d22b2aa077fa44e59d9c46a52db5a82a57659e86a6dcf"; + sha512.source = "2a3568cde9264ed3f074ad47fb5afa22f4c4835c7e0eb53699f691bf4c52b829c31724e56b9bbc84bffab76d425d9fb72b2bbb49ce14ff7cff0d57f538218783"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.20"; + }; + onrannual = { + revision = 17474; + shortdesc = "Class for Office of Naval Research Ocean Battlespace Sensing annual report"; + stripPrefix = 0; + sha512.run = "0c9f717c54d70ad24a1d3b08a6bd44a4e96e932af4d78ba2895f40e16ae5e5b841cd421b71ff3e90490c13e0843d48b8a28efd49b33ee3f74ef9b6476c88f8ae"; + sha512.doc = "4a4f46965a0de8ca99585d4af31aa2f0f94e51328c8cf1ed29768bb9e2f8cb7e14d63315a008a1d0446d7496ce4f8abb224946277ddf47223808f8f2277cfb64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + opbible = { + revision = 68465; + shortdesc = "Creating a study Bible with OpTeX"; + stripPrefix = 0; + sha512.run = "8a4fe7d1241a1f1f431a666f0d6fecaf330cccfe19c2047d2e244b06838310dd106d2ff8dcd029301cbdbb0f2627e46a4f4c37b9a81104eb695d62f78d835ccd"; + sha512.doc = "691b79162654071d39ebfa448203bec2c7dfec8091e781f44d7a48d4c16b884459bbdc4230626999349c6822b17ac5f6f4aba1a8dbd6c7e2a1d6127132faa2e9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.31"; + }; + opcit = { + revision = 15878; + shortdesc = "Footnote-style bibliographical references"; + stripPrefix = 0; + sha512.run = "4514d83e3554810da7fec3cc165c89a87a4aef04866755a5b42861b484ffea81bfff694609d18fb5e3bbdacc3723cbed96305ba0c09bc48af92456cef3b7b5a5"; + sha512.doc = "6c4e48aa8ea0dd464d7d2902513b1640437518661e9d7237b958b95ad091053b41c6c5ed4407f9c9d87ff5f0ce0b2bda3a99947d3bb0cf70352d5737419e22aa"; + sha512.source = "031596b3dceeda2782e355e3b19c23a1a31f71295d9ac763055a2ba07eb550a501c9672cbd63929984a3c65108e6084ff6a46fb03e885510e9d696df220b1e70"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + opencolor = { + revision = 66363; + shortdesc = "Definitions from the Open Color library"; + stripPrefix = 0; + sha512.run = "b6b9368a3167db0f71fdd4cf9c369f43be2934060b79bbb2b477d8a247456a7f69932bb92bf8bb8c1e1b5e7721383079947fc40e1a5d7bc6f84a2e3fe9e02646"; + sha512.doc = "ff198447e40d71f447688b5fb28385d9fe34265e520496f7d77acf7947569dbd6cc7a98802bb353648dc50979c4be889cef1417f2d15f98bc3ebf95e4a843963"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.1"; + }; + opensans = { + revision = 54512; + shortdesc = "The Open Sans font family, and LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map opensans.map" ]; + sha512.run = "d92d10da8d6d8adfa62d440767ed1fa9abf413a575b122dff275eb2e46d501436edd90c215611cd943308f32a197c72b8fcdf56b72268f76237c2227cc9dd5ff"; + sha512.doc = "00e5243e465d948b6bd63bfd161d4e549cc6e5b008a8cf8aff1ea5a31bc7a1406858c045cf6fb52c254d61869f1bcd5ef8c6a43ea66164e842fe3fcff2b26540"; + hasRunfiles = true; + license = [ + "asl20" + "lppl13c" + ]; + version = "2.2"; + }; + oplotsymbl = { + revision = 44951; + shortdesc = "Some symbols which are not easily available"; + stripPrefix = 0; + sha512.run = "bb894b28fd62f95807bf00856aa2250bbe58b0c1def385d6528b50ba925410ff177ebef97279338bff7ab70db012ba916edad067584989f86797b1fbd7e21863"; + sha512.doc = "cd4ceb0b923da7c0f56817602eca672442d03f628440c8beb82c953cf73a9d1bf8e24939a3ba4c813c99b7a2aa98adede0c98b4678b06fffd3f0bdfe8fae52ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + opteng = { + revision = 27331; + shortdesc = "SPIE Optical Engineering and OE Letters manuscript template"; + stripPrefix = 0; + sha512.run = "1af8edfbde5ac2abae770765a437bb42d5852877438d283d8021493c621e94d09bd62d9012556024ddecbeaddd838b37ae9abd0486d73e2698956ef49ab585e9"; + sha512.doc = "b1dc3f9f107e1e8313bfa25b843a4959522eec2e6bc886e8b6271c2175258d7108c824bcbed8d243f0e51b70851e68246fd572bcf6afa6aecdeb86a946bc247e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + optex = { + revision = 69864; + shortdesc = "LuaTeX format based on Plain TeX and OPmac"; + deps = [ + "amsfonts" + "cm" + "ec" + "hyphen-base" + "librarian" + "lm" + "luaotfload" + "luatex" + "rsfs" + "unicode-data" + ]; + formats = [ + { + name = "optex"; + engine = "luatex"; + options = "optex.ini"; + fmttriggers = [ + "amsfonts" + "cm" + "ec" + "hyphen-base" + "lm" + "rsfs" + "unicode-data" + ]; + } + ]; + sha512.run = "f8c0c0ac739e52ea2e468041b50a690999ed7c7ad4ceddc6a915946c6679e60fe4919b7f1d8b0cba49f2e47e54137e0c7a92ebb92ce7ec0ffbb2e3b7cce5ed9a"; + sha512.doc = "0b807209aa67fd18f6c40baf4ccf4e1faa0e4ef28c25df16569f266cf6d3d05e318a25e2af623db92832ff124cde5c7ec81638ae50bd9211f61acd52347701eb"; + hasManpages = true; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.14"; + }; + optex.binfiles = [ "optex" ]; + optexcount = { + revision = 59817; + shortdesc = "Python script for counting words in OpTeX documents"; + sha512.run = "88a35391d3deb37dd6466e903f3cdd7d134eb9fb8c0a9ab548ca2eeee86687544e1b499248c2d0a7aa3b801d9604913e763128309f88f768d0dafb8ac1fd6998"; + sha512.doc = "7f0d33068083736fe58c08dc9e37929efcf65de3b62a3afb51077a21d0e27b473a65ee1b333a0dd31b1d39e7f6ce79cae3343e8b7a9742199fb409e90030f7aa"; + sha512.source = "c62820e25f1251b6baba3095afa41a39616e49147fc88c5ddd00fe56e0eb2d20a6b2a0ab633b01f2578819308fa0f05e53fd1daf781e276b08ade1407024c46e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + optexcount.binfiles = [ "optexcount" ]; + optidef = { + revision = 50941; + shortdesc = "Environments for writing optimization problems"; + stripPrefix = 0; + sha512.run = "dfd704e585df8d01b279e67ea3a2baba6e86ddb9f38bc9747e370580a5f218e7ae4446d2429fc6bffc605ef0ea56c8077a8f41f3ca6a8e857df29d0e3f328143"; + sha512.doc = "3b80346a15a6e1d7209c3584d4fc9de944c55867ee7f21b018300b87615c0ff4fbe290a8683088c0e81f0eb20cf514f13fba0eb141808d8e5f5986c75bc9546d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + optional = { + revision = 18131; + shortdesc = "Facilitate optional printing of parts of a document"; + stripPrefix = 0; + sha512.run = "3f6d031b4bf863a339a80c3a05b101393f88dcefb67c61a67e01d9647e74def1fbf30f3d018158a83c8a171b875959bf57d7a3e90dc724c32868f9aafcd5cabd"; + sha512.doc = "d975e4f1b31e2335e55a41b317096be36161fc36fd589255a461772eb701376ce3fe714d727c4de9663ed8e4300bf0b570855b6b3ccb6b55fccd56206ac69692"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2b"; + }; + options = { + revision = 39030; + shortdesc = "Provides convenient key-value options for LaTeX package writers"; + stripPrefix = 0; + sha512.run = "3cdcd07f3c279a601da49a843169f0cb44aea573ac6c1c67a347712e5a087df4b21c6481168407ac6383e8fd5cdc511ea29fd7ec944edd2d514ac88b560633a3"; + sha512.doc = "f23bc3575d6c93d056c752c63bb39e3ef9c92de1a90177e204e4d6a1fd90ce8c9afb36e727ac8ce827a59dad96a3b236e5c3c09af081160113cee1b529bc1973"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + orcidlink = { + revision = 69253; + shortdesc = "Insert hyperlinked ORCiD logo"; + stripPrefix = 0; + sha512.run = "fc1b4a63ce470c910737593ac877b58dec0e77de2a258fe7943b156a31c5f224389f5be5cecfc9d3098cac690a627cea41993d7c47b4510762b3e5c04f63db2a"; + sha512.doc = "ddbea7f5c36f26e329c8e58c4d8ab3ba6aa2371a564505bf1a1a80a2f89dacfaeba706ac99940da6a742df262a25acce0f7b812817cc4db99793ad11e06cf6cc"; + sha512.source = "93e268f12d314647f19ab92910eddcc68811e4db66a6c57bae504525469e24e3e30752cdfadb44d36ea866719765c76d89ac8011e0e50f4ce6f930c476c2e4c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.5"; + }; + ordinalpt = { + revision = 15878; + shortdesc = "Counters as ordinal numbers in Portuguese"; + stripPrefix = 0; + sha512.run = "c494aee642949d56d8fe4aa28c18e38faf5f66ca8d9f1990419b7197ba6d8547004bb11c3d7b1d63cfcb7414b5c618af81425e4fd61fcf114dc36f9b7fcfb039"; + sha512.doc = "dbcad860dd1fcff2e44f568caac9d3d60f4e9ac2312c672b9e9b46f9b31a2498a7e92bd646df8c622b024aefa8f2ecdc9c24e3f95f72f30f1e9b213d6bc4a53b"; + sha512.source = "c4264de0f61c1d2abb6785f2a19e76578a154bcdb5314a3016c3a8bf700725294847a482f33095bf7173885e765db2afb4a3a34de3fdeb1d0c2a213c1e60b614"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + orientation = { + revision = 57390; + shortdesc = "Set page orientation with dvips/Ghostscript (ps2pdf)"; + stripPrefix = 0; + sha512.run = "729921d3152b76fc4c6c8385ce0b5a8ca2491670a7082133084c2e09774bd5c94b7c6c6b8ace1db787b4626f68a9b184550d43adace8dc6646ad36d2d9703f8d"; + sha512.doc = "75d3d1dd0a71d34429584dc1519b9ba26e329f58f468ae8548e7f9ec9f92e6877917bda790b61af9642e595d6b42370e8fc511b2e1d9b974617a6f5bddf96821"; + hasRunfiles = true; + license = [ "cc0" ]; + version = "1.0"; + }; + orkhun = { + revision = 15878; + shortdesc = "A font for orkhun script"; + stripPrefix = 0; + sha512.run = "c1e52283e54e4de7caccfe605438e2775ebacc9c3fd21c143e29d7966c591ccc3fba77019e4f9ed9850762a0c80475edb6c9142d7ac2e3ba54007f3dac8b056f"; + sha512.doc = "ad0c15ca89057f2ff7d43a1bb8ea4513973978e1316e661a0e32ad8fb8005257a634954e85990958ba22360d29eea2d6ea9d87049435416616349874617d9dd0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + oscola = { + revision = 54328; + shortdesc = "BibLaTeX style for the Oxford Standard for the Citation of Legal Authorities"; + stripPrefix = 0; + sha512.run = "831e450ea6fa77f521eca76aaf281a0f7425e28d889c7bc919cd04c52a78c3a0665abf011ec4ef722f47e737c1dfb48f8aac231aa3f370d594cf5300d84c2456"; + sha512.doc = "6024d48e3b6f68037a68dc04051451be2ea7a952e5d8f55b9bd1160d11900751b5a58cc8662e5c38940bee01a442f3691a8cd8329ee4bd5749cf7698adf72cef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + oststud = { + revision = 67217; + shortdesc = "Templates for the student organization at OST FH, Switzerland"; + stripPrefix = 0; + sha512.run = "9ffd86c1fddc4667f6d02a9ad91ce0a3e562147dbb8453c474ad5595a77df8ae77a4defca5f6fdec2ea837e37ab23128be1b00d4ec15f20cb0bbc2e591fdf0e6"; + sha512.doc = "700021abdba0ba3484a0f11600564ffd372bd998f889da1cfa26ff505395844b958468675eae6465af4010e417a56df45c2226d6543d1bb6f2331099e08d9ac6"; + sha512.source = "5a35d201ffaa677d464e0dd8f2f5a474099505d341ead2e00970be39523199a2e3ddec73da19e7ec329a53cdedad495640dd1385fd6e5d005dca9a5027ee8f90"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.4"; + }; + oswald = { + revision = 60784; + shortdesc = "The Oswald family of fonts with support for LaTeX and pdfLaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Zeroswald.map" ]; + sha512.run = "92d4d3a7d8bd09031368a89ab7b49483e653750e1c348908aa3fdb62cdb8ce14ecb7d7a29b37e6774c613e658591622891e4bd6b348492c669716f220b46f9ec"; + sha512.doc = "1f6606c8786b0eb54a4c3aad0220347eac3b2bead83ca5540345737cfae509be42b9eb10f27a5ff1ced559aacad7413b69708eacd215afd47636d17194b40082"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + ot-tableau = { + revision = 67813; + shortdesc = "Optimality Theory tableaux in LaTeX"; + stripPrefix = 0; + sha512.run = "57ee595a08f2a30174215056300ed4f8ca496976ef7d0f80627b32d45bff7af85e8a33d8d37decd61883ab3cc61f74ce411687c260d2a427c96014d3defe9758"; + sha512.doc = "45bcff2db460c23e543434ec46b8a168498ccf1fc1ac977f72f3022ac7ec02a874eda98a3bb6814edd22d86915b354fac5105efd1bcdb8eb979837edcada699b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + othello = { + revision = 15878; + shortdesc = "Modification of a Go package to create othello boards"; + stripPrefix = 0; + sha512.run = "cddd446d5b63ed22ebc4e561e43fa8b4b1ab2cdb1ecc45ab98e60d6799646845a9d432aa45248e7cf70bfc4aea10cd42960a8846479df46a7cd701f792b4ca74"; + sha512.doc = "8ba85bf32ff739e4588512c2b33bf242b00e3f38a7ddb1b3f5582cd19b925e1adf52b4243857f1ef4b9d8198e8dc80a9aff8a63a7b3ff926978dc7e5c81262de"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + othelloboard = { + revision = 23714; + shortdesc = "Typeset Othello (Reversi) diagrams of any size, with annotations"; + stripPrefix = 0; + sha512.run = "c975c73b8737f008b7f31af86e6c8a89de3f907c6fe782f075b04819bd936da3853a8ecf15935c04970777a4873b5baa38f9c675cc8943190df84ddc511dedba"; + sha512.doc = "af025805142a845bde22a5fe095fb96cd533d69c50bfcea8716dd7d61fc95c41727c16127c2f2b60c5bf2b55870d698db54d307c2b025aff3e251419ed58a3ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + otibet = { + revision = 45777; + shortdesc = "support for Tibetan using Omega"; + stripPrefix = 0; + sha512.run = "8fdc06f22bc9d25b61cb7b3b151919b7d2d6cf3d78f3cfe5a11284d9246acb858410ccab56996cd521eb98518be9c232a4c8e0f8ebbe52d7e93c510e3a0ac070"; + sha512.doc = "96f9d64c8f668f67afe20dad97d1cd3cfec19df3300204831fbfe0d245c1e15d8d0cea48bb94fb002cfa18db45d3ade730848908b0d77b867fff7557b0fb826f"; + sha512.source = "4b51b49e3d3a802a3a19aea604a63f1e9503f7d9d86c81200dc5e2f2051b06e184add9292321f4895905a07595de6771eeda2463ae0c1b096a98f2d2fd210721"; + hasRunfiles = true; + }; + oubraces = { + revision = 21833; + shortdesc = "Braces over and under a formula"; + stripPrefix = 0; + sha512.run = "8a0a6e0648cc3dd9a342a960dec6512fc9153a083c8fc74eb08c4e0f46d091e5f2c71bdb69bae80fc13a857175ec6bab4b18cc81a0963d794028f4faedd0def3"; + sha512.doc = "c97f91df77f64d824605c56669136585b94d95031ed5a4a67f3404c54b2c96f32bafaecc06d114755d0e65c3fcd0379d63f28f94aa32ccb8d23730f5f3eaf63c"; + hasRunfiles = true; + license = [ "free" ]; + }; + oup-authoring-template = { + revision = 64491; + shortdesc = "A general template for journals published by Oxford University Press (OUP)"; + stripPrefix = 0; + sha512.run = "b4d2d3f66092fd8d65cb8539cb0038e7437d2a7613e36404f0a225462686051833c8335f2aa56f31e8bf3623f799f96f5d63710d638645b390c0f0947cf53213"; + sha512.doc = "00987789fcc1c209d08464b919079b5d17535dee92da189180087f5ec67c78eb384f9622f965ccaedd3434c6f097433fbce75be6c459c08e494343217db2129d"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + outerhbox = { + revision = 54254; + shortdesc = "Collect horizontal material for contributing to a paragraph"; + stripPrefix = 0; + sha512.run = "954af6a75833dc388c430faf538415457d0526b85060602b93584a45e6b0ff9bb83ab1d2117ef58817f08b138146873ff74ab045f174e949a0c9fb9f042b1121"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.2"; + }; + outilsgeomtikz = { + revision = 69124; + shortdesc = "Some geometric tools, with TikZ"; + stripPrefix = 0; + sha512.run = "ff64c7a149bd0d890896936c1f5c818cc6f9c34a50b6f0312134dd47819b45df36a769ddd5b4db903c441217062bbbd44da086fd0bfd863ba8bbbbf6f96a764b"; + sha512.doc = "0cebb1b166aa5b6628eb9aa88788beec5da60d7b25b9d110465ed25b130bbba2636209e151a9633171bc016e0953b5f27780ffa02ca4bb2f0dadc902e998141e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.5"; + }; + outline = { + revision = 18360; + shortdesc = "List environment for making outlines"; + stripPrefix = 0; + sha512.run = "ccfb49c4e035f0d246f00aae56efa9d6570ad3997c44e2bf70588ce67a0bc3fb7bccff19b65629fb27158b0156a9802d97ea1f8edf6f4494f644f40df5d97118"; + sha512.doc = "301ad12a8f964a7dab05b208649c74ad39a64264f113963ebf36dbf83c90ed8ed042d8cc15f626f6081bd41f51d66dec592eaadabec32c65a0d67d15e8ead37a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + outliner = { + revision = 21095; + shortdesc = "Change section levels easily"; + stripPrefix = 0; + sha512.run = "9251cb4154042c7620f545b2fb305cb996af9ff51c44259287a1f5ec490cd83bfb82321c4d8512ca2d22e5d2a7409ac5dad9f7a7d51f38a76bfe77faf2ca4af2"; + sha512.doc = "024095493b4b7301597798285afbdaca9fad291dffec9707b82da9f23b1ee0585345e4f201d6b322a1a65ceb6f703ab5430d14973c3fb25970b04d2785ebb9d2"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.94"; + }; + outlines = { + revision = 25192; + shortdesc = "Produce \"outline\" lists"; + stripPrefix = 0; + sha512.run = "1611e4ba3b8fe21db83a542da9d7e0c3431330bc24e3733d28c8c5b3172ce3e4b46ff5b7dda41f95b4edb6502236f6d558608487ac47f8726420a2afafed75db"; + sha512.doc = "bdc507a3f3cb966d03df37d9385145811c5750bce6341935231ae987b0a30dd65424a1bbb772920586721e25711caa429cd6d8b8149088f753f36b9dd69ddaac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + outlining = { + revision = 45601; + shortdesc = "Create outlines for scientific documents"; + stripPrefix = 0; + sha512.run = "0d2b7dbe710d1ccd54a70cfbf6464a3ee5ad0fab8ccfa61306d5d5d83252c0f3b64f1caba6b5e8e75f7e6237fdfc675981acb67fbb730282978071e76e92ee40"; + sha512.doc = "c083046671d159fc118f25e56ba34d04f8011e0c49169920fe679ffcb78d93e52a6f8bb5bcfb34c47f0b23f73579519c431976229ef143a31ab059cde6dd64ce"; + sha512.source = "8a2f640df3572a5cb8336342b49035ad97513ac97eb87483a73c0d41ef4b98e2ec39b994f9a7005c7c6cdc2564aa55fdd8cc0e34bd79b189882df34ab10e6cb0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + overarrows = { + revision = 65853; + shortdesc = "Custom extensible arrows over math expressions"; + stripPrefix = 0; + sha512.run = "5c2d386bea3d2358e7c6baffcabdbb00411895a45b0500f60f139435b55fc86e6c2c7d7bf96a9bf38300f4d217606ffcc4f212523dc5a7fa1e35b7eb4358fe3d"; + sha512.doc = "1e5c39621f3790fe752c8785f5264b842ad00d7eb3a5fa91c41fb8f3c0a84c85d8be00b553a74f1750bfaebb6f97f7c462d9181c7b6afe9547a38b9d3f431b5e"; + sha512.source = "57b1da2b639cd7b2abcfd8b98c8e73a704b5a247b78ed8373aa3059744eaa127314abe34fbca474106b5a3fda4bdc6dd8f2d399e082eb7a6e6396f77b35309c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + overlays = { + revision = 57866; + shortdesc = "Incremental slides"; + stripPrefix = 0; + sha512.run = "93d1b7bff165da32f509e820cf88c08e8dc17ae688814a6913357ad9884ecf9fe94334be82e54c4e902935fcc38a6dab5687a3f5d4e333268d03df8e977611b6"; + sha512.doc = "d1db70b9ca58bf23946a824c9b9ce173f008b45b608f409c6230403c5f5c1c2e6dbd22f7ec416e9869d3dd98bb0cc2b5a4a0e1d5bfd0a39bac36675d46a5b4d2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.12"; + }; + overlock = { + revision = 64495; + shortdesc = "Overlock sans fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map overlock.map" ]; + sha512.run = "0c934c6f34922772336f39dae801a83c705197d7a7dbcf95cb890c25b8209697b3cfacc6899c57016ff32066979b665198d30ae45caf60748599e4c6ac052ad2"; + sha512.doc = "44aec04d96e2867a074ca1ac85fb3449cd276d6a14c893c8cd73dfaa91e60ef5f98ec7ed3859cc57efe746ae1454a5fcd01b44ac580369a87f69bf5cff3e3b22"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + overpic = { + revision = 69343; + shortdesc = "Combine LaTeX commands over included graphics"; + stripPrefix = 0; + sha512.run = "6663af049c657a947c3894157eb21c38f8f240250894ee1c8e34e3ae7cfaec294670dcb053d36fbb7749c383b8e9645d25f583670401c7cacc232eb64996dcd1"; + sha512.doc = "005e2aabb66cb7904544463274add08f9680a38cb608c9d8976e4c8cae114658278d2fb3dae55af989c21825dc9d71b4a28202eb68566ab462d1a4bda76ad54c"; + sha512.source = "3d0e1d66a6ae6835eaa1e5342a448895d6cc6ca5b0f9a300113b2c43d276ec9e1785c41700895f4fcfa19d4fd3098e476dbdd320eccab3c2facc855a85f63870"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + pacioli = { + revision = 24947; + shortdesc = "Fonts designed by Fra Luca de Pacioli in 1497"; + stripPrefix = 0; + sha512.run = "a82b391630b5f572d8ded331ae98f480fb0cf7f3eaefdcab3100bc839e2b026f012320e334e82d04e01a27657f36927a4d1570086899ad637f8c47ddd0f22b2f"; + sha512.doc = "fa911ec25c0d6cfa62a2d5396aedf893b9078604611ae5d34b06f24740f65fd62895e4d53a10931071d19ddd24244e3c7ee9893f4eff03efd0920fd1c1626610"; + sha512.source = "d9347b85cd548f5861b83ef2f213760805c3cb76fe0313f02935bf28baae72caf2d548459aed2acb7ad5061e49c6e6694e46e88bccc1164e83f63a6f97045d04"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + padauk = { + revision = 42617; + shortdesc = "A high-quality TrueType font that supports the many diverse languages that use the Myanmar script"; + stripPrefix = 0; + sha512.run = "fec57c3e7bd299671ae8d6489723a4d33c54b11223f5f37f3f3b3cc148fcbb6d9a9aa46587ab83e414221cde3a7d0e4493877d90e9536952d9069a4cec7c758f"; + sha512.doc = "ffa9d45c971b7fe4fbc55644be4093268f842e13a2ffb1713be401cc88934dae86f012741951f30580a94a57f35b85cac9525869e0abca5601278d48a19782c0"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "3.002"; + }; + padcount = { + revision = 47621; + shortdesc = "Pad numbers with arbitrary characters"; + stripPrefix = 0; + sha512.run = "9378dbaa1d3a569a3cb4bd70fa1b5a6dcdb0fe089d3a2c3eecef4cfdb776607f42b7fb018461c00781f8b022dd962e790146297f5df29889db13794e25c1cbb0"; + sha512.doc = "68ffec3a80473b3b2899ae262fcbca47198c61bf1363b9c167986cc95214c778fdd49ed65e8fda8f15d48d3d9941ac54c6660f28729dda176123fa1b3f7e8631"; + sha512.source = "088fd314ec5717f6b40f66762af47a32eb01f40259948945b48bfde12923474cbf0a7aa8389b4ea83127915782bffab4d9cc0be40d2f7d752dca734b0fc0b62e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pagecolor = { + revision = 66885; + shortdesc = "Interrogate page color"; + stripPrefix = 0; + sha512.run = "7cd71dac6790eaf48afb107310961bbe37f04199b70316009f6e62c064c23f0bc7e4601765fdc03c98b1a39c35f9f53a7b83023e5f29ec0a273d7130b13802e2"; + sha512.doc = "ff3cad39418f1a6a1b4e31788d79eb83d33cf7d04fcc8f5ad4703b60db1a581ab2de158f0b4d24d42c13fd2ddd6c85ad4eb3f9f4db09927ee2c97eb7d4e4a063"; + sha512.source = "4fa8f8d617bf8cb1d8a2399ddc88ee37778f1a7de904385351fdad3c4267c1d27e8b6157a206ee0b434991da0a508c42afd71fcc4cea81477e44849c15f81384"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2c"; + }; + pagecont = { + revision = 15878; + shortdesc = "Page numbering that continues between documents"; + stripPrefix = 0; + sha512.run = "53b0f558c6198181349a66b39f0b54108a931279766882bfb713390e79ad0f62218ed841416e143c6909161ffec548592ffccb337505eba61f643a05d49f1fa6"; + sha512.doc = "634110b7cde040e5ae7be237abd6817055f7886d9fed5ce1a00b5ea93e9bc885f0c15398c280abe8472e27ce89aade2a827e66fc041081c8d31cdaf7755119bc"; + sha512.source = "86417ff0f398efbf5b6abf2272df933734724a7d94f93d0a94704c393e195ca0a5828698d4d91527fe1bb0d70a26af49998513f0e9d80e1b8966239555a3dfab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pagegrid = { + revision = 64470; + shortdesc = "Print page grid in background"; + stripPrefix = 0; + sha512.run = "587c09867ebe999b3490d2b6dbd541acf4631a3d40ce1c0dd102b3ca4801ba5774f60ae86f27cd34bf32f324d54bef305f365cc1a8565ab54d84925861082b8e"; + sha512.doc = "3c5d05229ac51f2013017372cbe1df54709b604e170bc4aefdf26a1a017ded6124fba4922ec7609f72c059e45e1ebf1a1eb838c89f4c1564c518469333afb5ba"; + sha512.source = "f9f5f7ef9f3b0509ae0f52fbb9afaafd96396777862c2976550ceefb88d10feb7eeabec2dca561f5a55ce5f4ae6034be4db94da07209652bc6a85f5b4f2b4a56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + pagelayout = { + revision = 69486; + shortdesc = "Layout graphic rich documents"; + sha512.run = "d68bf1937910d93d028757ee0fe06ceaa222b29239d7decc1479c78dd3bfe7a210349562718c87173f26bb34eea142eac4764e013a33d63d0dbe3b6204e60124"; + sha512.doc = "8b2fc3d9fc36b821dc1082d9fd980fe7280ccdf9d44218a84dfd5ca00aaf79df8b78c674a3460bf2ea8c93d977006bcefb053b8d55d46591bbce2b88822d4891"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + pagelayout.binfiles = [ + "pagelayoutapi" + "textestvis" ]; - sha512.run = "52780f4292abba6d621638637f8c3d11a3a39d4e26c3e7a10e077f4369624ed0f1fead7aa781d9d0017b000618bf08ade1bddb78e9d773c3abd9c6124ba00068"; - sha512.doc = "f2abf68012f902440e17235fd49c55c4776d79c3e7db46d18e203b47160a427545201170c6644a18d33874a90c6770d83fae576da68befde87da17606ed577e6"; - sha512.source = "a149e3c6ca7f22ed9b9d7a03c0d5bb941af809b6145967bfbc63ff96aec966eeb5e657cc0bc099c7727af6c2ebffaeb6f45474104c2c7c1462295ea115ad0d87"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.0.15"; -}; -nameauth = { - revision = 69758; - shortdesc = "Name authority mechanism for consistency in body text and index"; - stripPrefix = 0; - sha512.run = "2b27daa9547563ba455b9b3722c8726c1ea5c71d1c4976857add784efd95202cbdd2ed631096e85a0408deefa8e43c95dbb8ad7c0b6f1ef3da1f8476737c341f"; - sha512.doc = "f8d9f727c25cf50b31d28a3e4a53a7694c5462997f60060e7a2db15e38b14554df00f5afcc3675c5b6bbab477a11f499e79e7a98988b7bc0ef0146a43da5c239"; - sha512.source = "73615d907733c3252cae3e861a531fc57dc15b2b2ac0149b976f0a192d75c4463fdbed60cd25a19231b5e10e1d017d1e1ce27a4006488ed02ad2dd185e693342"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -namedef = { - revision = 55881; - shortdesc = "TeX definitions with named parameters"; - stripPrefix = 0; - deps = [ - "l3kernel" + pagella-otf = { + revision = 64705; + shortdesc = "Using the OpenType fonts TeX Gyre Pagella"; + stripPrefix = 0; + sha512.run = "feec3cb6db5c10b2ae3d4d4e58cd21b1e425be368e3002914823120b1396622fd2e6de09bf0a892759f3e9629deaa1c419da59bb858dc1263cc271fb33d46564"; + sha512.doc = "6cc07f42d696c04156c0da6610ceb562174dd5e00d1eba96c7b1813e86b53081245e45f835309db257cb1d157d6a77a3d453ea1f689400cab9fc08cbda21b8ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pagenote = { + revision = 63708; + shortdesc = "Notes at end of document"; + stripPrefix = 0; + sha512.run = "085f824f879091e479635e2da9d375f51217f00dca5cc51f6b3dfa43e8a54197e4f2bb0f1748e7fa5dfdb522afcf177c67c9e47f4a9e756ba71ba6394fcd56da"; + sha512.doc = "20ac52f56753f0166829aea56e2b1514a34f67eea08ac8f2fbc505dcb046d2cc4168156b8db8691b426e35bbc83295454eb299a443e44d236fd31b695bb8bb44"; + sha512.source = "1926eca304ce92b3ec5fe2e06fc62a2bd8a7bdb45038050b5cf0871b35265f7149803ab32a28af057b7c3c1ff0deecdf0ae6cd4afb950d45679624a317b68651"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + pagerange = { + revision = 16915; + shortdesc = "Flexible and configurable page range typesetting"; + stripPrefix = 0; + sha512.run = "9216d443f44deba5cfc4ce04174031cae55f2adffa0f3400bf3f315c3b9003d1ee015fb6df69cb2cba23eb117f2ed191b7033ad46a51bc718260a44778783c47"; + sha512.doc = "862ed02746c6d91a2b8d9e19bb2e943e251dd18f0d94562bce9cc9e8ad603f7554e77ccfa2485b9a4eb7a2d6d5185756985f104d870e95823a4b33072f24bc9b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + pagesel = { + revision = 56105; + shortdesc = "Select pages of a document for output"; + stripPrefix = 0; + sha512.run = "c07cd3b48fd5cd59ca685b1ae39da7e7d8774348241c26d29a74b41ee6c29fdae0c01a47a79aa669cf6651b0b83a5b79f8424c139c17db5bca20d30186e5b655"; + sha512.doc = "eeb70877276b393cccb1c0e301c191480e5aa52715738ac6d01b58be864b065b3b72afdbd90d3a398284671682370300537d4953aa2adf4355fc6d2278d2819e"; + sha512.source = "457c52df8dca820c8ee39494630a077d0a14f58f7308805dd0b5f5dc374fdaee83581cab3543d7a9ded91ef94f7555f2d2b2420a6ff2c9ddf7c790b5407f468a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + pageslts = { + revision = 39164; + shortdesc = "Variants of last page labels"; + stripPrefix = 0; + sha512.run = "7db146bce45ee5ceeec5904e8f3ed6efe0010885b657b0f74546644c3ce2a018deafa95a11390da3d8a62eef16508b82c3efa9d02ac1662cbed18e905cf869b5"; + sha512.doc = "58fe6250af4ecdd6d62c231778c89e0b049995feface3af66dc73b920f4dcdca8838d3274a7648caf2b38746fbdaaddd1b4f87577c77dabad2096e9c8b681619"; + sha512.source = "99db221ae4c7795ca4093b7708aac14fededf3c55aaf314433602906d8b0f3d9c074fc0b8cc6807474e81e510f35bca486db3aa525e95a5486c7ff379cdd5e18"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2f"; + }; + palatino = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map upl.map" ]; + sha512.run = "5db043495b8daf0a5a854367ca1c82007a154d09b2bcae9f399e8f851f30a554fa98970cf45ccd8f0681f70ae7e01f54dfd414bcbd888b802e93993c2ed172df"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + palette = { + revision = 60119; + shortdesc = "Create palettes for colors and symbols that can be swapped in"; + stripPrefix = 0; + sha512.run = "0583223e81139040de67fa9a1fd93479dd2024c19d34e775a71b9fc03d7b01799c2dd58736d431307cb067d2d3130fb495aaa002425a8c0c80ddbc3e33679693"; + sha512.doc = "16934d0cdc60fe7c1d6d2cbd0dfb640a13d8282d98e322c98853b71ab7fe38a33241857ae98fd8ffd9f2e5c009327889f4c42a89af4370fc7d4608b457b1cb4c"; + sha512.source = "ea0e817ec066450c3bceae8ff9859f9b4934dba86f1ef850bfe8d566ac1da8296d780313962ab63babdfb822d1c72e686dca2925f809baa3a62eb2d744e8e6f8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + pangram = { + revision = 66300; + shortdesc = "A LaTeX package for testing fonts"; + stripPrefix = 0; + sha512.run = "1a74fb3bb7d1a4c9dfdb594bcbfef7b716affa55bbc7010fed6937708f9ca0d9f644c2d56a557737b56c1b8386de90a4b4df699aa50631c1e94f1e4e3c9d3465"; + sha512.doc = "eb031dfabc359fecf7316cfac1d799f8377b38d2e86922a52e2409214f9dc251d1ec5c5ea439ce2830ed21ac9a02925f442e0930f845b849b7ef662c30a70955"; + sha512.source = "8d5a945567245da7bdf69db5cdaa72d693054828d948700210e8a71c3f1178e7c690c7fb912275cbb1b3700f812482aaac896875ebbfcc33d3b9531f37b6cf89"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0c"; + }; + panneauxroute = { + revision = 67951; + shortdesc = "Commands to display French road signs (vector graphics)"; + stripPrefix = 0; + sha512.run = "d904edbcc40640e89e3399a5e00310174bc9317a1ac87da86ad15dfb2ec24757b21cc9ec1d9e562547b6637bc63fb1d58bc5373d4b84f4b53c0194c001a2ae59"; + sha512.doc = "b0fc8b96588dbe692eebec332da0cd3fbea74090b566a9afddad30b6028d3592e95f729d7d8f6f198c14e2cbe63e821715ddd2678bd4a58865c5a159d8d8ce4b"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-30" + ]; + version = "0.1.0"; + }; + paper = { + revision = 34521; + shortdesc = "Versions of article class, tuned for scholarly publications"; + stripPrefix = 0; + sha512.run = "484964a6da8fffb001e29b471f7c9fa52d2f1aecf66da8f9365376b987c79e8e39cdede0f0d61977381aea78f9e6429216c0cc2eaa67a831e4f1ace29e2c9503"; + sha512.doc = "2fd771d5f1035cb48c0a4de89f1174a988b3b8254caf535ca75633efe2ddc0483d095a720a9dae93aa7e832b0d4e63bc49cbdcd801e4190209f56bb0632c5aa6"; + sha512.source = "74ad404eaa44a523f97d245d6ccada1546d9c991bfc64186ab1ee7f6efdecddf87897d7e64136c0285e4d6541f1bf164173efb020adc113893d8e9309a687967"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0l"; + }; + papercdcase = { + revision = 15878; + shortdesc = "Origami-style folding paper CD case"; + stripPrefix = 0; + sha512.run = "8f2c923e72c7f16b394222ad86bc3f07304e6c39965473482c708b15574b0475af6eb6aaa085b94be6b0ddcce3324cd5639a8317caad55844998868ff18f0e73"; + sha512.doc = "01d43ccf0be5caa114f1b406e5cd4c1f8f44f06ea92e6d3fc999a5bc71e911d6c99dbcb8a1b9c49105b978d0d36e6ad2642f73446e3ba6a55edb11f82f40638a"; + sha512.source = "7bce5742cc7504e789011ec877fc2a934300b0edfa2e6b8f89d625184e5dd0c8cc6116aae7701c313e133d8669522c1414a2a16d11e7e6eec0d1c7112fc44d56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + papermas = { + revision = 66835; + shortdesc = "Compute the mass of a printed version of a document"; + stripPrefix = 0; + sha512.run = "a9c2fed35bcabf0e3feb98fede1f66f0c60dbe6a40b50c3818cf88821712ae4ef789fb5a080113f31cca4851767e4b607c623454f06a8dfbe1542bc3897dd7ea"; + sha512.doc = "2837d42a830f3a4517b7a0bddd9271264643198be3b1d805e471a62c9c87df81944a088b448829c26e05868cbb5f6a12480a6faa9a8c5d3f56e0c52c38c8cb75"; + sha512.source = "b64f9a1940169e858a51f94eb03ab1843398deeee001fd63bc97ca0a24d385d8f8d6b65a4195fcfe52fe76493c78506a7e68c1e32be1d669b16087a741122ee4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + papertex = { + revision = 19230; + shortdesc = "Class for newspapers, etc"; + stripPrefix = 0; + sha512.run = "489718b18bff9055917d9aa1329c34218282c2dec743c4a136625b6c39dc5102bc85d7da6dfb5e2b6a0f4bfe5a8fe27341ba9c7cd205cb8435ed3bc81a7a5c1c"; + sha512.doc = "aa36046e89f7e4486020a62dc8cb10f0a680247a3148149831153400a4ee935d3120525de3fbf29eac5c6cd58b655c1a2dcc2c4a8baf7d849a40f842d3b895fa"; + sha512.source = "9afa6d8e8d23108266bae48e78caedc5bb20c06eb15e3de8969a2e8bfaea880901a184fa8f2409e6d7ec0a4341105151049e1763fa4f4cdce8150e6bb3a52174"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2b"; + }; + papiergurvan = { + revision = 68239; + shortdesc = "Commands to work with Gurvan Paper"; + stripPrefix = 0; + sha512.run = "0f79f739273caf08126817ac44fa0c02bef9fc2e2bdad32eee12d1e377bca14618b426bc71f4f9cf734a5e63c319ac019de2c7959d25a0e31f594aedf1ec6d98"; + sha512.doc = "c9b4f46772ca50c8ca89d7d3d35719d8b2a7dd7ffc9d09a39569500047640404d1d3937ebbd4b3380a4e13cf56fc2f722d444f71afe464df332a69dfcc6049e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + paracol = { + revision = 49560; + shortdesc = "Multiple columns with texts \"in parallel\""; + stripPrefix = 0; + sha512.run = "ff7f60734dcf6d1db89a0b80747b31eb95bb28ac90ea5d83546feb08389fe890c6e3b4c44995b115d3e9d446823e81e27bf08337ae2d236a5a89c2c79258f741"; + sha512.doc = "a5711614d817193cf34cce405fc57f00dc17f3757b8c945dd174ba03453943c22e9c66b19a0f83444abd61f486e5df10246556e59d281f10f95452ad1931fb49"; + sha512.source = "cfa0bb83368dc27a7d71fb5e8772aa1c0ab69f597b2b00630fa1a95cf448684e6b59d46bd6dbe011953c51c0195b5cd0981a2df8d7d5fb951aecdee0a9ed0576"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.35"; + }; + parades = { + revision = 40042; + shortdesc = "Tabulators and space between paragraphs in galley approach"; + stripPrefix = 0; + sha512.run = "6eda005756083b1ca0c1ee09efe44830874d8090c25aaddb8d6631284a057130d2f03ca7f88b460fbeb7bea90ad31da8242028a70b07f6a66bfb978cd7390e26"; + sha512.doc = "eca6b66f0bb424730177498fd6310718a78ffdd031961f8de877bd6f9d027430143c19310b158abf26f92b4280016cdac696f423b493aa49d60b06cefc546688"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + paralist = { + revision = 43021; + shortdesc = "Enumerate and itemize within paragraphs"; + stripPrefix = 0; + sha512.run = "e05bbd65ae7146515dd5dcc6ad7e40fc8437fae29ee26861aa9c2b4b6da0015fc00974f0a2328a72e6487660794a822bb64b35ea3282eac980c3e7fd23f4b899"; + sha512.doc = "5f103c629d1c0bb94aaf6c86f7baefe3e99a854e764306cd21e256011ae5ed95601416e33677f73f6471bf4ce2a375b6dc98b8aaf35b8dab1c41ca91b7ec3ec5"; + sha512.source = "1cb11b8e7792df9be259e1a5ef3b2efdc85b5454265deb66e2a527c4696d7e9297e2022d5191b1d666996f1be1f638517ce4441d0bb696f6b33ae490f4138e78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + parallel = { + revision = 15878; + shortdesc = "Typeset parallel texts"; + stripPrefix = 0; + sha512.run = "975bb869ea0df9236f0e86cbfe880e9bd59ab2d6aeb98f0a399f5bfc7e4367b3f14eb64e707e4e7ba8bd3e0ee641765b9ddfd79ee1abac61f96414f215fa5cbf"; + sha512.doc = "ab4c283176cf1fd3d524151cc647c1da360a1772e57b282a91007edb1269d6bade379775d0efe6731fee18b3f3bc02292057d67795475a291a4dadc748d5b185"; + sha512.source = "6dde2ae1a2ee65decf5c1ba547d2683948d58a7955b75e5a3bd74d0b6705e7c6a75f2fe4dbed01562211b670d455a0360d0fff3ac0f24e3e77b4bb01a65577b5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + paratype = { + revision = 68624; + shortdesc = "LaTeX support for free fonts by ParaType"; + stripPrefix = 0; + fontMaps = [ "Map paratype-type1.map" ]; + sha512.run = "b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef"; + sha512.doc = "ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + paresse = { + revision = 59228; + shortdesc = "Define simple macros for greek letters"; + stripPrefix = 0; + sha512.run = "1604c9320918893633af8318d049194158daaf458bbafb5ce34b2ecf39896eae4591989117bd1ecdc3a86d4728a4c477f32b82b38315aa0693fb5978a81d2b21"; + sha512.doc = "f25aae5058f765f5f141c1d2ba537db5395384f64b1e0aa803e486eccc1a9c958dcbf6b1dfb0aca331a5d20a798c2107092f79b9e8ec44e342ba52964ed43b06"; + sha512.source = "5acbb82be5b06506d603eb19b01770806e515b1d496a2b51ecbab0a6c5fb4b6a0842764fb76446c09eb9a49a9a9cefb571e5133a0f72917de989814cfb3bd00a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.0.2"; + }; + parnotes = { + revision = 51720; + shortdesc = "Notes after every paragraph (or elsewhere)"; + stripPrefix = 0; + sha512.run = "798ac362fa4b67dacfe9b744163555d3c25c9e4487c5d2e2fa47be12d8d4b41bf89cb24a04f6434c804e9ca1f45e6d1f22ec234ac04596d5e1905589cf1eb558"; + sha512.doc = "e9728eb1025e80f41ca07632cc2625ee670a61ebe06d003585645e6aed183087df460a1dea4f3a8b17013af6fb3e974a95b33d848d2502435a37b1aa881ce833"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3b"; + }; + parrun = { + revision = 15878; + shortdesc = "Typesets (two) streams of text running parallel"; + stripPrefix = 0; + sha512.run = "1a09e6dbde9c24d88e21fffe24ead7ee7567a2c7bccd2ef33e49eb1bc8eff2befb3828a87616872f63d1d8eeba21814cefc8bbe756b17f887558449aaccb1668"; + sha512.doc = "cf284387780c9b2f4a79ebdd781388525aeb2a03ad9d85048061a6c43728bb6f2f4fc840ebb499a44a3fdf612ff4a20f36c17a377f959be813b4ee4d12288fb7"; + sha512.source = "9a4fb32c53f5bd2f6f79992b4ce076ab211c24e2c0f4ca2665c903b2e3d5268b5615bb5e9c8107d1d44df6a9e50a9f942f61cbb1fd05a388738449e4b312f306"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + parsa = { + revision = 54840; + shortdesc = "A XeLaTeX package for theses and dissertations at Iranian Universities"; + stripPrefix = 0; + sha512.run = "76edfb996d6354536b009066d4916b5864b0be1a55954a627380d4927eb05bb888d80c0259d52d367a8be58f5b20309cf65cbec0e8d4ebc6bef2b3840bf4d207"; + sha512.doc = "9cf2df697f90c46bc119f4df1816a734344066fefc54acb37a6fd2c127401a4f8ba12dafe0350d7bde90212924e40f08a500fddceaed44d735bcaf0ae9e48cb7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + parselines = { + revision = 21475; + shortdesc = "Apply a macro to each line of an environment"; + stripPrefix = 0; + sha512.run = "81d18bfa1f70157ca04383a2f6e4cf228f23d878a9e157e79ea0bbbb743090046f5058ff0731ac42f881f5cef13063fa0ff2fa9b80992b334e02dd7f2a1a33d2"; + sha512.doc = "b6dfad3ceac162f9c122c2b18fa168469cb6c4befce1c4b2c8f003507ff4b2aed30e6728bf29f04545a080efada1fd98a9c8c064f4ac1eea521fb486624e60b2"; + sha512.source = "454fd4c9032ff1075237294f346d55fdd0926c316813c3eaa487e1649db569455f89a364b9688d024567a15edfd16c397bb1ab76652b46112791874bae5db36f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + parsimatn = { + revision = 69090; + shortdesc = "Contemporary Persian font for scientific and formal writings"; + stripPrefix = 0; + sha512.run = "73bb90c41be56b880b11114110a69cc206640ad97a2193a9557447ca8c901bba3485a971e31b6888b671b938a24d8bc880b532b5638a4a726fbe7978b1417bc7"; + sha512.doc = "c2e6b53ae9e2c8c949ea843654eb9d1545907a539af43f0b6f1728d78f7b0fed3ed1f92b8650aef85c0cb34e9cc91ab9ab8e1e7e4c406f9a9bf0f02ade10c243"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.1a"; + }; + parsinevis = { + revision = 68395; + shortdesc = "\"Scheherazade New\" adapted for Persian typesetting and scientific writings"; + stripPrefix = 0; + sha512.run = "bb783a5c4d45e32cf5298d5407b3fcc98d64cb0f5c66a5f45a564acd3fc90faa6006d5d649597fb293aff746cef1be3d1304a7ec223e1fa604f7eed4fd705746"; + sha512.doc = "4509dd23bf7baeee99ced80e0b1d225dc2d616c992f44e5ed5fca7a75bd71dbb97081ca04b96477d26897f6481c929f469bc2483fb0483485406a90962ffd6a4"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.1"; + }; + parskip = { + revision = 58358; + shortdesc = "Layout with zero \parindent, non-zero \parskip"; + stripPrefix = 0; + sha512.run = "2d64232f41b2607712bc67ce77ebc987502924ebaad4f799b6ae2163862a8b833a9c1a7c8871a33b4ed9fdeb74c8368897e1b831c485ab82e084fe3ff0552af3"; + sha512.doc = "759e9e8d698f8ad77ce388ec127f158a7280586338c6e56e1f9188a9a2e8106cb482f8ebc4e252749331e65ac2a771884124b16e3ea5e9ac76005439ca85876b"; + sha512.source = "4783fdc97f269963e4d5998b2d8066a676f371f5034bf5204bc9e5935928f153dc0a4aaaeb11a403baa0631d545a18a1cc19dec4ee42314e1f33b239a9cbeeaf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0h"; + }; + pas-cours = { + revision = 55859; + shortdesc = "Macros useful in preparing teaching material"; + stripPrefix = 0; + sha512.run = "a2a96c526de2581461941553b0c47bb4b08b3a9df03ffd121d14f3ea6e8bd62227f12acb4853f04240608a805189f4d90459324801ee25def1b44c48ebc83bb1"; + sha512.doc = "7bbfff0a879ba2287e528a63815b005a2159800656078db2ea2c0460887dd15772e04b1eb8953446c86281037180d82d84172370e015d2c66dcbf23651c6a182"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + pas-crosswords = { + revision = 32313; + shortdesc = "Creating crossword grids, using TikZ"; + stripPrefix = 0; + sha512.run = "cc93ed7340380b2072ac7df4c0d343e43e1a3ae4252c42d9914edcb33232597a5c86d22cce3dc02218e6e725191f056ef9fb342e88d1a60dcadd8d011723b649"; + sha512.doc = "65baac7fa63a01c70293baa26d99d21dc999f959074a3d2668cf6661d3db059b47d2f577f8c9f5d7ac6014e601f50e547283c55541c492b3c2df4e5f01b65be5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + pas-cv = { + revision = 32263; + shortdesc = "Flexible typesetting of Curricula Vitae"; + stripPrefix = 0; + sha512.run = "4dc3203c5888aeb3c613ddc16446d7ced1dbb8ee1c0f0d983fa010eaf81d5a0a7a9364381be04e10bb15a9f258d4ae086fdbc650ab8ca627b07cc286be1ce1ec"; + sha512.doc = "93460e4435546cdb2df20e4e1fd555a726e909e411d42068b6f16f8bce2fa90144e1db95cad4cb94430f65b9614d766be00fa8c3e781a1de733b189a0b4585e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01"; + }; + pas-tableur = { + revision = 66860; + shortdesc = "Create a spreadsheet layout"; + stripPrefix = 0; + sha512.run = "3457ffc6633ecd2eddccd0070a1ea5458d5126c1a42684991229c7eb8ec7e64db31fd809623b930cf4bb39c928cea2bd6ee2eb5ade840ba9ad36cc28b8d307b7"; + sha512.doc = "495b121c5860a96603a060e925173a7d197d0d22e13ab26857de5f7453f061847620b44b95c6494dc8e1f8108e58d987cec5728507cda2b61e40173c1b6d6a95"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.05"; + }; + pascaltriangle = { + revision = 61774; + shortdesc = "Draw beautiful Pascal (Yanghui) triangles"; + stripPrefix = 0; + sha512.run = "0736284ad69dc62a9f97887f09aaf4e527438d068147319be8710c53708bf88c156964c9737548df4b2210b1e6bf5219d157e5d5baff53a510fa373684a8eda5"; + sha512.doc = "137c13f7878fcb5f3f2e7d4d47d05e8a25f7fd19f58672d7b521ba944a5eea22e90dd12418d4b056dbb1a94faaae750a9f2e06e4dfc8fcd206609f5f95e97a5f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + passivetex = { + revision = 69742; + shortdesc = "Support package for XML/SGML typesetting"; + stripPrefix = 0; + sha512.run = "2253d07d753a5c20c29c2ebb97446453d2c0912c9f26b2e3bd78676e7c3c2ee82953e188e62253c80da538546481da58602b5478b2b8ccb3a6f7554ee41d228b"; + hasRunfiles = true; + license = [ "free" ]; + }; + patch = { + revision = 42428; + shortdesc = "Patch loaded packages, etc."; + stripPrefix = 0; + sha512.run = "0ddcaa07696216f9fdea55471e1265fcaa71dd8ba2b8a50690dd519ad8b9442015502ec59b8f9f05c79f5031be3de2956cd71af58153dea8e1917f33c246fa63"; + sha512.source = "ada97aba615160b3c30c9cdccf3360f3692612bc702247ae3fa44f7821aefa2ee60c89ab79417b0ff658335768512a0d8d9b5b17df619c57d169f6487d39e5bf"; + license = [ "lppl13c" ]; + }; + patchcmd = { + revision = 41379; + shortdesc = "Change the definition of an existing command"; + stripPrefix = 0; + sha512.run = "a98085cb274c189644fa1307cf4ab5949a9eda76936fd6b74a7ba366b04d58b2a213c1a5ede53f644bdb76d44eeccd919176fb1934b8eda55489fee16f0c349b"; + sha512.doc = "3c65e6b1fe2b25efb45853deb5b3111dbfa03de7c0b154fcd86719a81bbf725e1872a6e6b5a9955e63f410ff3c05bce5de336f4ab1e612ea0d82b8d44d5fe960"; + sha512.source = "d3effea39c2dd33c9b40dd12304973d2d96457bea7b7f233f196c2ad0ca9819e57b38ab7b44e9532350b6c1cb519b184882ea924dc198dbaadf185ac177bea63"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.05"; + }; + patgen = { + revision = 66186; + shortdesc = "Generate hyphenation patterns"; + deps = [ "kpathsea" ]; + sha512.run = "f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de"; + sha512.doc = "c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6"; + hasManpages = true; + license = [ "publicDomain" ]; + version = "2.4"; + }; + patgen.binfiles = [ "patgen" ]; + patgen2-tutorial = { + revision = 58841; + shortdesc = "A tutorial on the use of Patgen 2"; + stripPrefix = 0; + sha512.run = "0db7759a327066df9aa738a977d664b8e150405fd2e57e5532a7f9e2cc6a9cb0c6541cb37b916f8506589ea02e36eb4ca404ec1b8ace3726ae431a6c78f86db2"; + sha512.doc = "5abe4de29113af4db20d85ed0089190f5ae82ef1573d8ffffcb9f5f03a4417dacbea5aebd0b274ea27dc54255f8ac6792c841a9bf77ee39628c8bb1dca49b084"; + license = [ "lppl13c" ]; + version = "1.1"; + }; + path = { + revision = 22045; + shortdesc = "Typeset paths, making them breakable"; + stripPrefix = 0; + sha512.run = "6a1fad600e4683476206385504ab5fb916caecc1101ac903d23042c25e055c6d4a73b85a57a3293929b1effd7d4af6db26c36ff994d76efd1c4f81073cee785a"; + sha512.doc = "e52367b81b9042af70e940aab99fa13140c31d58768ce94fb86df74ec9b52fb365168e7e325d8b2e304094e5a35fbd9fd687305062b5b606bb9e5748f143ac2f"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.05"; + }; + pauldoc = { + revision = 16005; + shortdesc = "German LaTeX package documentation"; + stripPrefix = 0; + sha512.run = "36e67d812dd0218d013808879eec1150d6029e13519b0796f061a850d2dca99b8c07a2ec2fe9c49004b0f9947db10ac8d02d47a858b8b27852744cea58779d13"; + sha512.doc = "178950b84cc4d5e1d78001aa75fd8cd5f0b3ca8e800b15fa1b65e19968a4642fc8ab2a3c2a95ab661155437790f100d48730d40a701dfba3a21981e93e35ba6d"; + sha512.source = "7b35faaaa89048952de36bb0b340dcc367610d87ab104cca82ea8e38493babab9fea26d30cf4eabe7d6bf64552cedaddc57f49c129076a1311c2e50f9a991add"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + pawpict = { + revision = 21629; + shortdesc = "Using graphics from PAW"; + stripPrefix = 0; + sha512.run = "426fe59ed20c41d3b11c87814b5f3737271d20bfb2cbc45142a36a42cb5aecc1555ea69a8ba1a1cac7bab323d8c9f23720601934f183d197b25e84d2037f057b"; + sha512.doc = "5f8fb39ccf22aea8c40e3fb5d2babd757447e089da79a9df35336c56049872f45bb04fb76ad08d8d8a8404523666841fc757e7ebbb5201a156274ec2c29958b5"; + sha512.source = "29f272c3d643ce366b3f82b3a5a913534e9b1833677540834bc48cecd946be0b5cf9d4de9e22012452a33c448589506d865db4ad589425634d80fef1562ecba4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + pax = { + revision = 63509; + shortdesc = "Extract and reinsert PDF annotations with pdfTeX"; + sha512.run = "71a2c105a7d593ca432a50a68fbcd16d876c8a28ce25be99326f323bcdba997b000158514328542378384f55a0ceadd9d34b71840980346b0b5c1c63843f7c1b"; + sha512.doc = "a2e0e7129e98efc8a44184d445118220e16f8149166c2093b7c44a936885845c0d49d37a7588f32e2c06fc834f808b0e4a1b15808a32183bf9e457a9a1c19ba7"; + sha512.source = "3920502e3ef59332129792eb87b771bac81ec3061d6cf35d77fcf785fdc88434824592b6f0d5b74041d372977e17b85d9253e7280a5ce9bc361ce56857397dd1"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ + "lppl13c" + "gpl1Only" + ]; + }; + pax.binfiles = [ "pdfannotextractor" ]; + pb-diagram = { + revision = 15878; + shortdesc = "A commutative diagram package using LAMSTeX or Xy-pic fonts"; + stripPrefix = 0; + sha512.run = "6e2e18f93d5575e3f9db1147a9e255d2ab8a3918e25f53315f91ec395962a3c65d7321c1d162ab7510f16b25e4bdc5c8e4688e56820759baef06dcb08833a0d4"; + sha512.doc = "4b12c7f67411ed86eff674665f61b6b2e34694c937222c7adceaab453d78a6a1f23c58d3abd7ed2320ccf05c40e6b38ff2280bd498e7b71e857bd6fc86de3067"; + hasRunfiles = true; + license = [ "free" ]; + version = "5.0"; + }; + pbalance = { + revision = 67201; + shortdesc = "Balance last page in two-column mode"; + stripPrefix = 0; + sha512.run = "3b9579669a9bf79892e433eb5ad7203254fa99615398e9ec58d1438d4b57fb94a5fc0dd14867b6ac18a874af3c4faa1d072a9009086b125a18ed21de144fd40c"; + sha512.doc = "d02220c268923d141faa2a4249d50c8fc9f119e1703475f1ba979903a79df79b6ce48b70e113c0193a9b953f935446486e7d926ff52ac1eaf5f2c193638f9a87"; + sha512.source = "141d99a8fcb9ba830c6df2b74fdb00dc8aa22781c6da19785c9b6b04ad7717b8f8e04315d5f9ec7ba2939f469d6728fa845c1ba9e6da1bf3cc0a8aeac0291fa8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.0"; + }; + pbibtex-base = { + revision = 66085; + shortdesc = "Bibliography styles and miscellaneous files for pBibTeX"; + stripPrefix = 0; + sha512.run = "6be03a9f18741e16104d620effc7c0669e12ccde1aaa7d4332ada2fee95ceb1a6b30db4df41386995367b565b437174c0d4cae6e330c8181ee47095fb9bd5a5d"; + sha512.doc = "69a7e564464d8b1c31474ca37b5e9fadeb4c2d4f4d25dad5f884317b226c6b7f8f467cd1809e1330cb64fe2006f1ab397cf4f163e469a14fb8de5b778dc70c08"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + pbibtex-manual = { + revision = 66181; + shortdesc = "Documentation files for (u)pBibTeX"; + stripPrefix = 0; + sha512.run = "ca4690e0ce37561dcb877d17310f498b5b528cf6892beb075b4ed87f1a4432957c2ac56ad29f66da1452794c587f2d9343fdf7715c670ac7c3f7880f620f698e"; + sha512.doc = "152ac93c6e1bf07d90434581a8891f293527d4ff93f7d439e7e15c99d53b0cf43872c9f8a6935fe314614b9c3fe3cbe7bb3dfdbba486dc7248fffc60742f37a0"; + license = [ "bsd3" ]; + }; + pbox = { + revision = 24807; + shortdesc = "A variable-width \parbox command"; + stripPrefix = 0; + sha512.run = "cf2ea3781aac3d0b8619c46513bf9894c4b4efd8ba89eefe2e5fbe4e8f82fedd3b17f64467598080a577c65cc21713671c68763ff2600ce24fb6f6ddfae83a3e"; + sha512.doc = "1955a1cd5336a7d71483f49bbc8c65426485fd38447282262b58b4633398cda0753c5574455421b19d92d5c88c599f9c227b54a7c340a35daf233a4f48a1c276"; + sha512.source = "67cf5bae9494a81b97738ca8ed5877c009d631cb8ac681915559bc4919f536c657fe4e3ade36b8e4a0ee3b614ca4a23bde8a9cae19f3a9aca12cb2e3926160b1"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.2"; + }; + pbsheet = { + revision = 24830; + shortdesc = "Problem sheet class"; + stripPrefix = 0; + sha512.run = "4fee9d64b1988f9981a056adc10de3be6940cb2cc7e23d9bc4effa8647e27601e5b74d2c15289ed5cc96c3f42d4f2569d897be111e2dff064a4c5d40445c760c"; + sha512.doc = "d929cb815e8204268f17d9e71f53550b7647d39fd50782c1e6bb848a6a8840ef8389d2f3359bef554450179bd9a638ea80a1c7ec018c7275165622f1ba645a95"; + sha512.source = "7790c2a14e44ff68071c4b3f0017c5b83a2fcd50a110d05b55297f07b4b313ebe8d5ab3b4d071bab5b575ded1323bb26b828aabc7cd20522a4298827d1686c12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + pdf-trans = { + revision = 32809; + shortdesc = "A set of macros for various transformations of TeX boxes"; + stripPrefix = 0; + sha512.run = "8e3d1526b0373113064e4812003b84fd78dec65ce4946ef991f09efcb6ffab8e89a9a655c8a0582e1f4452feb526c077ec9cff30b1ad7f3c59f07bc715e643e6"; + sha512.doc = "a275e35947c38b93f5ade7a812d7938d342b25460e2a29e16a1431c7fff5939826ffe0bab30aeaf504a57ded91925e85853f93611702ee6dfec713031edf9306"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.4"; + }; + pdf14 = { + revision = 17583; + shortdesc = "Restore PDF 1.4 to a TeX live 2010 format"; + stripPrefix = 0; + sha512.run = "6291a2cbe2fea33d2a948a8ce58415de875cb09df1eaeb674f2a8fd3e3eb9fd5897d73e2ff613cb71562299ac22b07566b3c8730c807928e5a12f3e572f99622"; + sha512.doc = "1b848dc73554175d33b7501fe83f1689e5181bddc6f59db00829ea39ac6aa7f91ca4f936f93a66411ebb257fd77132c6a4fd3371c8c28f0258cdcca31b8f0b38"; + sha512.source = "81e13e0e9d0b6c4c0d6a764c94c6958a437a2e2fa186532607058c09f1c3ca2a6187a778ced20e67b7d70079395be11de7e2237548b12843f4f5ff80cb82c732"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + pdfannotations = { + revision = 68958; + shortdesc = "Annotate PDF slides"; + stripPrefix = 0; + sha512.run = "22bf69647c957f3235fe1be6d90cb75e66188722e3308f80724dcccd9766a470fad09d0b6510fdf7d7e012d595726b5053ca727ca813a2771cd601f8761c97e6"; + sha512.doc = "900b6383a998afb3593c6e588220341f73d3a03ea81e3bd4f71369b889ebf722dc921da4607342f7e35fa22e62b6f11a22af1c3e8d64acfad9ebc13ff1c5e66d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + pdfarticle = { + revision = 51127; + shortdesc = "Class for pdf publications"; + stripPrefix = 0; + sha512.run = "50cabf25f9da7b9adee489fd0a01fd9e5da2115d1dd09111507143a99a605cbc7e2de5a40a0e963b68942a601b7f0b753fdaf9cc1eadcdfb1261730fff5b4875"; + sha512.doc = "d77754cf21565337f6db1b984dd3812798833f61fa263e39f9a929b25391a3b31a55df97a7f0db4fd379e4bf3855c51b61a719c30187865f67d7d37444e17de3"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + pdfbook2 = { + revision = 53521; + shortdesc = "Create booklets from PDF files"; + sha512.run = "dd87268e3856eb26b37f025ac62f24cd5e680e92e727588d36878de9df799f49254ef2259c29de15db11d5888ada83110a39aaa3116aa6f6aa290d3e64f1231f"; + sha512.doc = "3048de4be891e270e8efe9f9d85524aff948c9483da25f491669a7181967dc281f42b984c9ee46464bc563c42a4f171589066f67818a291a136e1f49d40912ef"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.4"; + }; + pdfbook2.binfiles = [ "pdfbook2" ]; + pdfcol = { + revision = 64469; + shortdesc = "Macros for maintaining colour stacks under pdfTeX"; + stripPrefix = 0; + sha512.run = "c9d9350a68513b9c7fd1d99138cf93aad74b76ebac4e5a55de483501bc5a6ac42a366e60e15a6d7e81149355dd6ea87b968bb070e05f04848e4a167422f645c1"; + sha512.doc = "d2b5b5e1681092d024e0e0d47d3252e915cd3456b9bd27e1d2b871688ff2d805b385d864088e8a9ec665d7a0b495811b3ba6e8237363448d378072ac0c12072d"; + sha512.source = "fed939659d5d9223e184f3a47a681b298bd6d076ab807eb164082d273da35a16126bd4b0b3c647c0a40d23abfa2974bd566aaaaa4f5d7864022e2c769870be3d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + pdfcolfoot = { + revision = 65512; + shortdesc = "Separate color stack for footnotes with pdfTeX"; + stripPrefix = 0; + sha512.run = "40db84311e460e79e6627bb3692afa56abe6c0f335f054955fa4f75c11b4c2a4f65c9c77ca225e1ceb37b3dae6727f27ee4b6e27a155eb1fdf9b053693490537"; + sha512.doc = "afd7cfdef3e0290360251ff1de1fee17053229d89dc88e2275a3b94df8a9b5235ba462cb66eb741e541e8d59a9d0eece345c521c87f33fa5fa99e5d69d139ac5"; + sha512.source = "e857b9d671a5be1737ea4d3a002aa89d6155aa6e89fbd336ee77189fc61a85b8a3713a631efa8078894261748d39ad029e2ac40a91ac1b97ba4b82f6fc054b3a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + pdfcolmk = { + revision = 52912; + shortdesc = "Improved colour support under pdfTeX (legacy stub)"; + stripPrefix = 0; + sha512.run = "ddcc125c608eea472c06981c9f5a901a431da978fecaa2a5ecdd08e2f6499ad25632e4de86f7e92445a8e276403ee92bca636b80e5216e78b21ce355910ead67"; + sha512.doc = "e2bb876ad74381fb441d870422186f4cee76bb4cb5f721334b7119fe83b2ab0565ffd5300575ab52e8d25a263d87739a1e114cffed44ab3e25d8d5cff2006456"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + pdfcomment = { + revision = 49047; + shortdesc = "A user-friendly interface to pdf annotations"; + stripPrefix = 0; + sha512.run = "82e1f9e9dc35f652d1ad348c6f2e03c1472c36c113cb17080061f66777d129f55f56a29c2a94292974ed759d12727d93e1724a8b529ed0b4c8c3e53511ab1934"; + sha512.doc = "a7b6f568daa2d2c01574f56641326c1cf46c692d247fb8a8fd7485d6e804241a43691ac42923df35dac4453a23a5433fe1d7a063a88f4675a00780e89675a169"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4a"; + }; + pdfcprot = { + revision = 18735; + shortdesc = "Activating and setting of character protruding using pdfLaTeX"; + stripPrefix = 0; + sha512.run = "d046543b42966f8a566be0c89d78ca26b26d4095d99d5b16045283f0eb52a90a92122c1e87a2842d12d7ef2f865fbeaa69315a51bb922f713d33b9ef2e270fac"; + sha512.doc = "ef19fdf93050dfe35df88163453067e589307b2173481d4f3b6943411bbaabda94b472622b93485637de5c2f885f9153d5078f5d3bccafb52bb28d3e25f39ca6"; + sha512.source = "fbbfba0b35c70cc847a6ccbef17a1f506d26070d616254cd415eb6cdcf1b74c5a09baee420012fd88c11e4b4f8f45c5b7d4e2f5767e9621974a8d941a460360b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7a"; + }; + pdfcrop = { + revision = 66862; + shortdesc = "Crop PDF graphics"; + sha512.run = "d2f33ad228c2cadc78cc8f16bae747ff1aaf98094a5dbf16462bdac0957f14aa32636b3ee0e16603e7e3caacfbd0d76526502911cacab29dc0a3d85c46a36e44"; + sha512.doc = "0e3eb0d735d146c98bd9a34170afdfe73fc987b4d4a7102fa220e4d6e7bbdc185cd0d3bc219ffb7fa14c6fc1a971225ed24335e4ec9fd2ab9d3923dfb2f15137"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.42"; + }; + pdfcrop.binfiles = [ + "pdfcrop" + "rpdfcrop" ]; - sha512.run = "c413d600911ab1107554ec2aacadc80fad12a95e7486817c002274f282e047915d06f4878e68e423af649569752cd27d7c1b3a802a9abff68e91038719b2fd28"; - sha512.doc = "72031cf2858a3b68092c852c216f96aaea212c721e47d90e870c8153f83db921590246fb11b59009d431754720791e3c625fb3abd7bdd9010cd1a49894023ebb"; - sha512.source = "adff08a774126c8faff52ba14044a8e2140f9586358dab6ce95e7a941706bf57c32acf0ad75282bd3b01dec8a73fea105c0c65a1453f5903d5eaeb3fe0349b15"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -namedtensor = { - revision = 65346; - shortdesc = "Macros for named tensor notation"; - stripPrefix = 0; - sha512.run = "0925bc8a0a9f0cfee910470318fe00972d604e815aceaacc358fc412f3382c5cb5a4f9b1a337b9f609f0060fbd82bf1a7579ff611685a992b68eddd5348a8dac"; - sha512.doc = "9127b5d7c44a4b2a1cb28062f3a0c18f61711dd72aba86ceb9b948563ea5cbaedcd0539e0ef8608222f957f6fcbe878848095fa48131b564e26b1bb654ac8395"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4"; -}; -namespc = { - revision = 15878; - shortdesc = "Rudimentary C++-like namespaces in LaTeX"; - stripPrefix = 0; - sha512.run = "71ec09a2aee5f299e9620b9b90558bca11415cdbf4304d0e5777896f85cf4e30cc39508fd69ff831a86707e230cfca1773fd9a8bc50c37f310f8bfeff629d2d6"; - sha512.doc = "4bd240f3ce155ea517fc267af1925f2e84f7af694a1ee4a068a2679d97cb6f97fd77f8812017e05f33c935bb54a34459a9deeaaf43cdb4ed69d792676316734f"; - sha512.source = "33579dd40ba708e2e8a727f923f727f893f2f8e9562d369b1e025b50300250010d2829217a7aa72c1ee5781f3ed501e60b010cfc3cf3211b4bed1168494fa4ab"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -nanicolle = { - revision = 56224; - shortdesc = "Typesetting herbarium specimen labels"; - stripPrefix = 0; - sha512.run = "e9f90cb21730e34fe03961281527cfdea0f7c15e349b9d441747be7ba591c40ac876ebed92f884bd502c3cf7a99f2f6f6328bce515680100c2f9a3d7e04a4aa4"; - sha512.doc = "3d159eb9fd84aa8bc6c183ae6a42aefc331b9bd606abbc1b2c3c53776d5b8f1554a4ad304d0555b8d2c95be2e8000eab0a3ec6a167e089292099bac6751782d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.03y"; -}; -nanumtype1 = { - revision = 29558; - shortdesc = "Type1 subfonts of Nanum Korean fonts"; - stripPrefix = 0; - fontMaps = [ - "Map nanumfonts.map" - ]; - sha512.run = "fc775dae204d8f1ca7e05005ccba0bd568f00819519d34b2282028d7f2b89b9c1f9a091ed192def7281de97ea97c75b9327727489e8ff88585bb97cf5e8b8f10"; - sha512.doc = "ff0bd0bcc32eb8166e7bff9d440692a3c21c5cc7fd7b8139b472fbc2e079cba0591d162e2a81090919990dba31d1e04b57d50c35ac1d0670ef9102c64abc88ad"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "3.0"; -}; -nar = { - revision = 38100; - shortdesc = "BibTeX style for Nucleic Acid Research"; - stripPrefix = 0; - sha512.run = "212f1a002743ba14eac41de05a88325533db8b25d9f12b141064b9aa98f78dd5c28caa7cdaa4419829e6180e56ff93e42b069cdebb52fb8ef40c9652b8a23c79"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.19"; -}; -natbib = { - revision = 20668; - shortdesc = "Flexible bibliography support"; - stripPrefix = 0; - sha512.run = "7e78ab76bd86a864eeccef86a64fb28b6b063d5a12210da80f0c5a5608df429fc2939580b88263dc50fd68d841580a12358617e20a0048ccbc9e148ba04d5f26"; - sha512.doc = "afe78103a6ba2d58c6f6ba6927101cb481abb1b028c4cc09dca59296d30978c636e837c248eb4f8fa44aa8fa7f6db1e1b6855afac9d99b0cfa030dbad6e59edc"; - sha512.source = "ac850d6b92e7cf538f564d052593319ec1b1366d74dbf86e55f0c59ab3a01ad79b780378e816289aedf9b645774cbde56b7d186abafa8d1ddaa6c32d676141eb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "8.31b"; -}; -natded = { - revision = 32693; - shortdesc = "Typeset natural deduction proofs"; - stripPrefix = 0; - sha512.run = "85568d2bd3b729cda5e4512a2e3309353e7abdcd6a02ee3f86e07bf65cd74ca9581d7b2746d582b704a116313b77cc5ea94f19fe0d233a3b41c4ae88a8704f12"; - sha512.doc = "5cc23aaaf6006c1f77d676ad1f20d3a62d9ac8d8be6f41e68085844f6060d570baa04000bf3108c975add502c7ad62086509464753474a74c43d045122b28294"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -nath = { - revision = 15878; - shortdesc = "Natural mathematics notation"; - stripPrefix = 0; - sha512.run = "2eed9bc55d9d994df8710703c5acee9fb07d8c9732288740cc3c20740bd8db1e3d22617886818ceffb0346110dcd0dbfafaf192878500b2865523d00c6e02bf0"; - sha512.doc = "ea75b3f282f81963484b2f6b29513a99f3153f222931dfa811deca40cc79a814a225a0a79e67237f53e3aabd33f7749095d3c7fb8f374ec802ee054ebca291d4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -nature = { - revision = 21819; - shortdesc = "Prepare papers for the journal Nature"; - stripPrefix = 0; - sha512.run = "78b6e945642bf2073e49acb318a0ff78c1ad24d38c28133b08d5e2881e6e5ee2dd6e8634b467047145dd72d08bfefefc631fd81c7e0facb590be2f9f4798ff6d"; - sha512.doc = "cac72025fbb65e32fff8dbe3a457e28b2953ce2a14b9359b93724073d1c56761524f2e3200f80aabfea1aa0747fb010bb78586978856c89348fcb255630e5d9a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -navigator = { - revision = 41413; - shortdesc = "PDF features across formats and engines"; - stripPrefix = 0; - sha512.run = "868f3c08b71f670010fdad0320e4792929d31c2be1b29fbb38da518288596dc299b58635ebc8e7551b9191954b76280e87c47b1eb3c4987fbae3afcd133a5c2d"; - sha512.doc = "56605790284309e8b6432152bdd6765172e9e7c9c6ca88b07ce5b4b19ac792df21879999a47663dbffe7b3dfcf6da0de3e8f8399cc65fc96dc2e8e3a57350f47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -navydocs = { - revision = 41643; - shortdesc = "Support for Technical Reports by US Navy Organizations"; - stripPrefix = 0; - sha512.run = "b1a5afb90babbdf8fbba1915b88cdbf30a0244d8363c25dd9ce33bb153f9e8e0437146d9883016a40b1cf55c1dc02a06a7d2b72947326f5dc13998beaabff923"; - sha512.doc = "2122252986f1fc852a121e09ac4f6a6a6c23f9227e374809f2968e729602f6d870bd9293fe1d456c4cc04aa48ee01361d37695c7290bb047f2c8f9a41981d3d0"; - sha512.source = "aedc1a3bde2379780b1042f9fb103081acde19e4f76f5608d0382756b8f9bf0d4743aa3aa66556bfc9240d2044336a609f3b1efbf0b4780af87b66109293b225"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ncclatex = { - revision = 15878; - shortdesc = "An extended general-purpose class"; - stripPrefix = 0; - sha512.run = "88ec3d2c350521fdb978734d32bb7eb9bacee0ecb95ae051d7bb039cb86e6dd1eba3b4ae93881ef8fa2623e99f6dba9b126373f181c4668176eaaafa94aa992e"; - sha512.doc = "e9c08ac08ee2316b07610bde89aee98289b937e8dbfdc86b392cae02037632d6d303c799f74f381f89a6bd4f4397a8c4d78025a88b8fa4ebbce4be663167f2ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -ncctools = { - revision = 51810; - shortdesc = "A collection of general packages for LaTeX"; - stripPrefix = 0; - sha512.run = "f7ec6f6c51d2a4f071b85cf28299a4a11eeabaf225c85cd0144bb0971ec3da44ee9aeac7cdd7501d258b7e8cf25b3e3484cd60dbadf0ff3ee05767c713c12dfa"; - sha512.doc = "a594e74455024dff7d38a8a750ee02637341f84d342a83409ad0e20a1b0f292c370e16c1b267c2d6a58975f45a6b4c1092c8518653994392cf4dc08fe8553644"; - sha512.source = "9fd3fccd2383ba6dd9f32766fbabb5a2c108c335eee1b5fd6dd11d93d5d6944bed22877b640ea676bf9721a69e34f0500a3bee131a4bc65feafc348207d131b5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.5.3"; -}; -nchairx = { - revision = 60196; - shortdesc = "Maths macros from chair X of Wurzburg University"; - stripPrefix = 0; - sha512.run = "3ebdb5c11c57818018172d87f265760039f4de415eff568271dacdccfae4aa1b8b3c646d5c68b4df55b66f631679c0a72c17283d949a35047f1cb8a536f582da"; - sha512.doc = "2c58e3cc770a2180d010688683117a8beb4c8dfc17d0f6502647b5030ec3f6db1131201a352e0ab0247df158b4d5c61ba60995dfc8ffc7fb5e50e6a03b16c2c3"; - sha512.source = "f1621721f65fce09ed2abcee3997dc1d2eecbcedb651641a99922362d4586be53c5fbf3c9d07cf1834ee6dfb79d67d7b20ba070ddb80f6c302d053979e3d59e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -ncntrsbk = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map unc.map" - ]; - sha512.run = "cafa6f6ba366c07bfa0fe37ae415cf924ca54249288a52726eed52b9c8147925b6ac4a85fcb69a19596944ed8585cab4ce8fc2710a7c32998b360ea2ab143d56"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -nddiss = { - revision = 45107; - shortdesc = "Notre Dame Dissertation format class"; - stripPrefix = 0; - sha512.run = "62f951bce52bab564ab2671bd5d019ff9f6f5ad1d8a18ae9f8b574226aa83e4d3a9c6c931f4830f71c43499f68b8b06e539d55a027e712ce4cd2c03e349d3fd1"; - sha512.doc = "bd92c614f160c50a22ff83d296f0e511909906459cfcb7100c615170ee9fadbd38ba032bf95f7b25a083cae33c80ede96964d3b81e23c481fe5a836d91967ad1"; - sha512.source = "498e13f4e4bbf8e2133870854f75feb5617a517b55593ab90c203ba860f95599ac5b010bee58d4f35706a6e17bdba54c66e02e04281bb548e62b335c576a6357"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "3.2017.2"; -}; -ndsu-thesis = { - revision = 46639; - shortdesc = "North Dakota State University disquisition class"; - stripPrefix = 0; - sha512.run = "d79b603726abaa506ec0cd59c30e4c341839c1dd6f7b7aaeb536385d22d69a37d764499aba390fe7e1efc6a6e25ae6dbb7e92bf659a771b6f4d6ae3b5a2c98d9"; - sha512.doc = "8e93554ef50d43562d1c42fff3da81b77b4ae444d644e5b1a818571e80cef88a2006f1b1c61c320e467724df7847be50f4f3ec1663bd767261720cc1a80419ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ndsu-thesis-2022 = { - revision = 63881; - shortdesc = "North Dakota State University disquisition class 2022"; - stripPrefix = 0; - sha512.run = "98f01d4d37fc1661c117027c7dd83e4c74001cc7d03adc854c6f869503e5700512186585b15d1b7dd7a40ec6a526f1e6eaeed1332ba9531850e6506ce2feaf47"; - sha512.doc = "ab0c8ca7aa865052422192b51d1affe2c26af465dfe3de9a0bd10a30e5cbaa8f9f9594e1337bf175a069ff189c8924c844acff0b7788692f19e44198c1f578d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -needspace = { - revision = 29601; - shortdesc = "Insert pagebreak if not enough space"; - stripPrefix = 0; - sha512.run = "663b2ffe30b1d9a588183916ccb0e3fecf3098d3e67f2a40fc49e1db1e5c1a892bfb56eb177bccd923415dfe51d4a225e2017be3b2f3f7185071836cb2e04391"; - sha512.doc = "3af05a6704a8d3c9539cab0871f9f9c8b7a241549c1b3127dfce2a0eaf77b87d54fdafff4b2749eb4614ad9aba45bd2e3d695a92243ea30472e62f7945eff004"; - sha512.source = "a629e9b798ab772feed1e66b773fbc141b0b2c2cb6c336acf61e8e3884246da1b36f90260fd47121e53e552f6569528e81ee788b6d1779c9e87eb54517a2d787"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3d"; -}; -nestquot = { - revision = 27323; - shortdesc = "Alternate quotes between double and single with nesting"; - stripPrefix = 0; - sha512.run = "cc75905a3423deb02f226340eeb6a5f97d9d83470f156bc75cdf39569da845279fe8d4a3907fdf269bac75e7afae02faa04dea367cf0326720301ba3f1c31395"; - hasRunfiles = true; - license = [ "free" ]; -}; -neuralnetwork = { - revision = 31500; - shortdesc = "Graph-drawing for neural networks"; - stripPrefix = 0; - sha512.run = "ba66b86e10f4425c063c76ffcc97759863677a673960255d5c335d215ff8c0eeb4d0f12fdac584ae1fdcec00ab04705cad716ff9290f6b1ca9c8635841f580ff"; - sha512.doc = "fc2cda90284e4360c9dd9c03611f582c7c4569331a3bf04d51152408ff8533dcc1f398f641ece389e63f9b7dd12ae471c3f6b5d8fbdea5d206afb1ab15df4852"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -nevelok = { - revision = 39029; - shortdesc = "LaTeX package for automatic definite articles for Hungarian"; - stripPrefix = 0; - sha512.run = "01d207fe9d77df0a225cd5fe718f118bc755c1e23c9dcb2bc4e0b4c2983205469baeeefcc195b150cc54f4540ea71d96cfc393fe61a32f7e85d5c9b5944c5938"; - sha512.doc = "653fea96310508e8a30c76821d1cd83dbf579052fecbb8c859d40cb39926d24ae0141b4788901b34b4839615b33d5995eed2b6a27f6abcae981b9d47b6ebeb34"; - sha512.source = "455ceb971d4617b096bb2d1c42fdb487208e8c6ccb3fa94869df08c9e89516e0f5c9e5513b0573d17929bc3284fa41ec19ef092ac7c7c99ca8a7f9e63a1559c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -newcastle-bst = { - revision = 62856; - shortdesc = "A BibTeX style to format reference lists in the Harvard at Newcastle style"; - stripPrefix = 0; - sha512.run = "bc3f53c76ec9711d2ad9878dd12a62ed5fceba680dfd89d55ad81df0bf6e63e49e8660e1aa0726ac8ef545fab1e924fcae938701a59117bb42a59a016a349944"; - sha512.doc = "c00154d8a4abc12d57d1760383a5da13af16ba5340edcdaaeeb4e61b5ceb42d0776c0967af7814bb3bc6a8669a61998b212fe62b190458a50ae1e6a03c2a3645"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -newcommand = { - revision = 18704; - shortdesc = "Generate new LaTeX command definitions"; - stripPrefix = 0; - sha512.run = "e4716ec35793f0ed4140ed3bb221bbaedaf121b2529dbde5114a575bfb8aa32a8fc56e79e43068adf560423aaf68c5f09dd5d6b624e37005bbaa4def2b280060"; - sha512.doc = "84f71adb1cdf4213f34e30a2737f41c93fd0e8ac4970b2adb832570c98c5f3876502556392fa077a8cb647a552a8e914b2a30e4e38a039c355802e2c85c5f3e1"; - license = [ "lppl13c" ]; - version = "2.0"; -}; -newcomputermodern = { - revision = 69379; - shortdesc = "Computer Modern fonts including matching non-latin alphabets"; - stripPrefix = 0; - sha512.run = "140226a635763be7a407910980664b38323dc3634980452fe9eb4395194e7bdc0144715f13d79b9f108630aebd393073135328c98fa34310e3b8d4150e2a5fea"; - sha512.doc = "dd8cc0f43cd3a1d19a6666ce39d0d4024f8ce1ea8c51c0809878f8b886b286558d78f91cfe962b7cfa0e83c8abdde5912c4913c9c67be5d2b5ae81c274803fde"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "5.1"; -}; -newenviron = { - revision = 29331; - shortdesc = "Processing an environment's body"; - stripPrefix = 0; - sha512.run = "4ddcc24de158fb1a5b585c65adf769c3f92c4598355306e08257f4ef62718c6ca7f2dea80d742759601b37133a951d031445a39ed5d8062496459cc2f98a71b4"; - sha512.doc = "cadfcd8ecc9c0904bc9a45542a24c1b6907dabacc94f45a1ed1b885557304a27e7e836b55cbebcc6130da0bffeff7c56fd89f0b7a16430dacccd670c8c6ddc7b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -newfile = { - revision = 15878; - shortdesc = "User level management of LaTeX input and output"; - stripPrefix = 0; - sha512.run = "b949934073af1aaaada73c93e493fd39ca01ad625d72bcfa5df915b2c2f759a39d77b7c2a0a952711c8c3e0af5e6cca59eb7f333fcd27e7232c3780ad5400ec8"; - sha512.doc = "c2c0e825ae7fee4fa551e831c822190f7682392d47bd8bffa3ee947900d6eaf00a363edd204f7404c834ade0bd5a05e9bb0a8284f8c660eeddf7f75179c0060f"; - sha512.source = "9cc5d4e1ac98c2884af3a2e5d11e9cf573660679658450d0705d6d0c4004a8994c3b471078db8a6a95527f5aa84b3a7ea18a1c00b7cdcd9169fa1cb870a277f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0c"; -}; -newfloat = { - revision = 68434; - shortdesc = "Define new floating environments"; - stripPrefix = 0; - sha512.run = "6b7ec618044ee10c16722460fccf4e3b71092ed5fc902b0aff431c7407d50e97bc27a2e9bf4c561df50da7d605a3a1ea95c20f47727111e7077e338f0c0e483e"; - sha512.doc = "e3faedb4cdb78304c738a4437fa503f7870c81c13eb82652ebf5a5ccb2befa1180683a5704b16891715c60445eac214cf8e6fb01f1d9675954d45e1a7535d659"; - sha512.source = "150ef59ef64c4378dda85cf5472947575bf78ede8c080ebc9f2ad37ef8928c1d59c50c5772cf48683330bce60ce633e2295493c7bd65b658e3538628cbbbfd37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -newlfm = { - revision = 15878; - shortdesc = "Write letters, facsimiles, and memos"; - stripPrefix = 0; - sha512.run = "72f7b087ba1002541e3d26d5b41b58380443e30061b92885bbd3bcc017b17cbad9227c14074a53706b98c785117c7b07c6d49639c84c617782066491dc0cabf5"; - sha512.doc = "8391122e13223055582bfe0f9e6d62315c9a48588848ab02cebd5b2d7045be5f1d476145e8ca29392820d4ee018b9f84380408331b3ea56e7e99071024a8c369"; - sha512.source = "fa807aaba787c52d3e769e240a04f5fa23e469908d2eb5a60967e2b08cfb7a694612e85514a56c3138925ce2f3c480bd5b6d0f701031d8ee8e646c3017cd0022"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "9.4"; -}; -newpax = { - revision = 68762; - shortdesc = "Experimental package to extract and reinsert PDF annotations"; - stripPrefix = 0; - sha512.run = "88888718c7ddd02cd3fa3286ee63d7d527d836f0df15250d9ddde12be475275bd7517f4a0562f30d738d4a007d61c4a417a7f03c8fb628b3fc981e7a6f643ba0"; - sha512.doc = "7edcf5fc73e0b28d92b8f11f42e47bec9a6b2327cc23a146fcc65143a30aba16d839579d94de7001b5937fcb241e977d9933e44fd5947da06907dbe4c327e70c"; - sha512.source = "00ebef49ba9b5bd4ddc4c6889d0d9479fe8d1921f94170c51a2c5583f4d59f2bf533db3348e2b595758f377d4e6c504ec6b9c582c5fcc8c4468d782e68416bc9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.55"; -}; -newpx = { - revision = 69777; - shortdesc = "Alternative uses of the PX fonts, with improved metrics"; - stripPrefix = 0; - fontMaps = [ - "Map newpx.map" - ]; - sha512.run = "979e5e67eaf5891a96c127f9726061bb0a480388b0f67cf27bf753f0171521118f68bb82beb127bb2c18d866643830125089518436d1be56c58acf49ba0ccd75"; - sha512.doc = "fcea214e98b92d697699976c245f841f87bb5a314ec738fb551e6f546e32e79fcfc0b1e78d9cf1ad5299bf691a833b2ba69aa9c917a6cb1abe891c39556123dc"; - sha512.source = "7928e84f2c5523c72a30061e99fac64c37e1c5fecbeaf6ad9aa8ddb1be55c26bb4198adb8c303afed7267d33c12f9f73336453bf32bef98c999547e7f9f4a952"; - hasRunfiles = true; - license = [ "lppl13c" "gfl" ]; - version = "1.536"; -}; -newsletr = { - revision = 15878; - shortdesc = "Macros for making newsletters with Plain TeX"; - stripPrefix = 0; - sha512.run = "e2f1995420ed7b94b980fd794df5dca89e89dd96daefa43559d568881ffd17668717de1baaff18bf27e8519663203e0ea7fef214b8f7541bde81d436a3a5c378"; - sha512.doc = "aff23fd9e3397c52a1566930d6da6184786f07adc64c63e5d9e0062451014d261db8dab06e9d393cb66b3b56a51b57f494f01c9ab27b05bbe2a226cd4623d590"; - hasRunfiles = true; - license = [ "free" ]; -}; -newspaper = { - revision = 15878; - shortdesc = "Typeset newsletters to resemble newspapers"; - stripPrefix = 0; - sha512.run = "227fd249bba9deea4f191c59060c49d2d1cb8e367bb3007d3b123c17dd4328206962946ce3f637c8e6ae079a9c95244ce9027b0c9f83e0901801dde066a0405a"; - sha512.doc = "b08d57346ba93e37e93f3c6e2487d56a0ac67eac0e4d9db564d221319e6403a1055729a2a1e43db4e161877b7300aa90e1853d75843c95295481d7cfaa3f6c1f"; - sha512.source = "172e832bd15e8aecf6f80f8cb768d2d7b3721975638007ce631b78cf5f6dab27ef24ff63f5693f5c46cc430bfecae577beefe4fd2f6fef22d6f5fdf9ff20dfe7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -newtx = { - revision = 70496; - shortdesc = "Alternative uses of the TX fonts, with improved metrics"; - stripPrefix = 0; - deps = [ - "kastrup" - ]; - fontMaps = [ - "Map newtx.map" - ]; - sha512.run = "140e03a3dd5a59ee6b5a81b7cbc5531e92bd2d2296ff74df4f1805d44f6d136dde2aadb0af145f4f7f0a9e223d39122a8320b3858850fb49dd8cb59e80d692f9"; - sha512.doc = "c0344d8e74e412b1ebc8b9db86579672cd878eaa004adc081c73ba48258a57e4093361237410122198f71ed0a6c3f1fd1989e9ca028118d5f93dbf9b21f6e5d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.742"; -}; -newtxsf = { - revision = 69597; - shortdesc = "Sans-math fonts for use with newtx"; - stripPrefix = 0; - fontMaps = [ - "Map newtxsf.map" - ]; - sha512.run = "4d44962a7bc466faa60d39791f18be3b5d3bc5a1eb2b22e233c80a81ad3280b0a89c03717881ee858e327b67040f5859fcde7d465420e43df547ee56f00f5b93"; - sha512.doc = "992123b7b5f30b827b4cb49b933cdaa323a007c1d41632993a2a8d52588b5f5d97612808dcb48423dba309f025d851cf15aeb892c8bfe10d0929cb5744515b7c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.056"; -}; -newtxtt = { - revision = 70403; - shortdesc = "Enhancement of typewriter fonts from newtx"; - stripPrefix = 0; - fontMaps = [ - "Map newtxtt.map" - ]; - sha512.run = "fe95d2c4d2ff7a83f362f55bf2579576b94251fdeb3556c2f417e0118b2dd215a705d06d79e66b9aadeca09cadd5c19f2898cbba8624ea089fef804749d350cc"; - sha512.doc = "02879af2ae05a703502966acc561df08762a9fe01a873180672652a9c931ceadcfb85d411523eb81425e7f1944f514673e8d04a208d54b27d0d26916077a81a3"; - hasRunfiles = true; - license = [ "gpl3Only" "lppl13c" ]; - version = "1.058"; -}; -newunicodechar = { - revision = 47382; - shortdesc = "Definitions of the meaning of Unicode characters"; - stripPrefix = 0; - sha512.run = "8e1748abc585f51033a857db126c4b18f0c42e015d7193f8bc7b69493fb13a218db38da97f3a6733df01dbc247093beb544651a050c5a690f3cd5479c4ad9e6a"; - sha512.doc = "9ec3bdc81587e8b2553dd4ff45ca4ba0bb504ded0726aa44d1e88423cdf425124334d04ebfbdbbe57b576b0fa52cfe1771c97308f146ea19d89d41eb4475eb9e"; - sha512.source = "0464584e516c8f5d9c7ab4db114fbe3ea9e07d33c1544109ebd0d3b25e4e3ddac222dd69b6a8222e290ae2b6a7d7166a76b54ff9fbe7ffd5225368986e2af6d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -newvbtm = { - revision = 23996; - shortdesc = "Define your own verbatim-like environment"; - stripPrefix = 0; - sha512.run = "029829b1da07d7e2fcc5950c32021707058f3d7228f6ff82404aeb962663277ed107934f04a93e7f43bd7b67f7034821437f3a8116f21028b7c9a154449ea53e"; - sha512.doc = "dda7ae47bb076f03cba83438c573405f1c67e5407d83fa0894e9575952c284010b62f62720022ffb7a8e723e829610d1e8ff6a8b5098c92207e8ab8755dcb409"; - sha512.source = "8d58e55977d708c8e3fd9ea6394494f68ccb21712703b2302355234d12355c23de97cb392d7ceda95bc078ddb2cbdd2030461b5b4069805d4ba01b5e3a8b8f59"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -newverbs = { - revision = 64833; - shortdesc = "Define new versions of \verb, including short verb versions"; - stripPrefix = 0; - sha512.run = "f2e2cd3fd2712d3333c7caa9e74a16300d7f08327b9bc7f44362570377feed31a206e6b09df15c524dcbfe39ffc54388de4fca90e180e38d28cf9cfbba79ab2e"; - sha512.doc = "7524a6e767edc5f55d96026f947e17e42f54138157bfd1851832dd139617939661ba5a4e759b4cf313990077dc9ed240c032cfe706b595af4d9a4197e519fd1f"; - sha512.source = "ddb1f40238ca2f622180ea640a86abf993add81c44ea3a459c54b1c114c0b78d4940536b712ab444e93495492b5c0deb02c211b06e00f8fbbdc69ebc4097f786"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6a"; -}; -nextpage = { - revision = 15878; - shortdesc = "Generalisations of the page advance commands"; - stripPrefix = 0; - sha512.run = "fca0aec60c5c7277dcadb0f86d757617484d700575fae13df8b386775e153ea89c52935ffdb2448c52e351593b396fdf3394f5b97e23a0d2d40dac339e584f59"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -nfssext-cfr = { - revision = 43640; - shortdesc = "Extensions to the LaTeX NFSS"; - stripPrefix = 0; - sha512.run = "5083d4ff4168b857a7391855ce02ea354cb17a26242a3e3b2693d6bbb35f722f750299669a37afbb99a52180433d697fbf65a6fb6afd6bd58d4b16c63e5b0d67"; - sha512.doc = "28b2aff47d74de3a42c441dafc156297904b5db20d267f1af07d1e3210e7f9959474b3cec387be7d9b20dc04560b4100a0d9da6979ab8ad2a7cd1e4518cec278"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -nicefilelist = { - revision = 65842; - shortdesc = "Provide \listfiles alignment"; - stripPrefix = 0; - sha512.run = "deaf84bd004172584e0437f3f15dacbed3d49ef6bfdba15e77e0c888bc03e35a634107469ae979b38d1e5519f4c8236cafed71c0ec46b9e7735041f234c03f96"; - sha512.doc = "efbc5965c9658e1f44182bf92f695b2d200cbdb8c5c70e23631b31603682168c0cfa5e114615483f7d897fec175267ef9d7fd0040f653e75defbe88bfb395bc5"; - sha512.source = "f520f4114d7f44b3361fead74f19750a4765f0397b158d2cf8c0076dff4689418bdfa0f731dc9383a74da6ff6e36a84f9658432a271352b904cd816409b026e9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9b"; -}; -niceframe = { - revision = 36086; - shortdesc = "Support for fancy frames"; - stripPrefix = 0; - sha512.run = "539d4a6f3a192188064fafd94366ad2f8a9146175d9e04b08cd83d1386bccc730a0e3be4a9fd45e4f47152f10710191b063138ba504fca95e4226fc179f70a29"; - sha512.doc = "aaf777520d300b5e8c9a17c2dfb5b12406f5e6926b17c4244feaa8d6c5bc28d87277f23fd814304a7efb91dab8a42e1ed88f6568b96f13f30c831e81201ff4f7"; - sha512.source = "fb0106ee32e36d34767c6200be1d2415e11c275e5540dbd54777a6876474424f1c82ba52bcc0fd76da9ecf3b37671d37c762834b3e6ef714028c1917dee45235"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1c"; -}; -niceframe-type1 = { - revision = 68091; - shortdesc = "Type 1 versions of the fonts recommended in niceframe"; - stripPrefix = 0; - fontMaps = [ - "Map niceframe.map" - ]; - sha512.run = "b43c19a164d9d6eeadd11072f07d29d00763863724a5b5168ef8640b2411fa4c02c4955e769b23a39e06db8d02d168ac7b2a987e1ab8a9dbe4c19063b8f4bbac"; - sha512.doc = "9f30b52e177fd2fe5bb3ef1f23a16b29a80f049cf33d8ade3dbfb187663e4a8872a18bef0fec1531cabe610839ba21b118623db244b52ab16418a7ad4dfb3d67"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -nicematrix = { - revision = 69991; - shortdesc = "Improve the typesetting of mathematical matrices with PGF"; - stripPrefix = 0; - sha512.run = "936cbf7f65d1c34986bd6113e07885051e3213dfc98d4102564e0d3749bfe68a0beca8637a34da833e45ad8f5d1eb13ed6f7c75c402158e9638f4f2548ef2b8d"; - sha512.doc = "f9255154b3f69e14c82f9816a9c2b9b2a171311501c0d68904443a4ac8a05518164ff80b9428922e62fa0b62bee61557e12cfb20c9a53625c3a6ac0ed369592d"; - sha512.source = "7ce23449d29a57d58305bd77b00de46677e39143e75580236c846cc6e572c4929374329cd58ef9a4b6747ab66e586a0665b7768232703fc9d792b59907dbe6f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.27a"; -}; -nicetext = { - revision = 38914; - shortdesc = "Minimal markup for simple text (Wikipedia style) and documentation"; - stripPrefix = 0; - sha512.run = "04a555a82287a39249cf6b0e18d890329098a1d0d6957fe9a1c535024b63a5f50b6487dc1fe4fd69d87908abd385b0366474ebe3af0b31f41f6a35c519a6ba9c"; - sha512.doc = "96cd1694ae0cb116bb4620f7cdc1f9e24385886c78cf87466cd329c5ca0d78111005ff89e9be50f07078eaedb69c4f3d495b1fc5063a1a69e483b86a6c8534b1"; - sha512.source = "d7c556fb2fc34e7eca9038667842825053ac03478e32a6a58cdda2209b33ece494071e47d54bb24f7c085f90b45375bb5db7781db642bd9f8cf661853d077f60"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r0.67"; -}; -nidanfloat = { - revision = 48295; - shortdesc = "Bottom placement option for double float in two column mode (nidan-kumi)"; - stripPrefix = 0; - sha512.run = "42ef65277deaf474a619e5ffd570309db8c8349f32e9bcfdf216251e81136a3da87a745b3dcea5212f636396179210c6acaa96a957ffd9588d1f414d6a59bded"; - sha512.doc = "2be76c8e243de71698ae5264a8e3af4da8dcfcd130b0554d1547a0a238e55ee71ec57d8757648b162a6ebd17ce1047206979cf139003a02921a4308a852f0030"; - sha512.source = "8a778b33036445dbe375af746244433470e5d10a963ebbfbc397c0376d5c4f7c23cdbc2ff3ff6455e274e83b465a64d8bac5023e8537d5b949fff038098d862e"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -nih = { - revision = 15878; - shortdesc = "A class for NIH grant applications"; - stripPrefix = 0; - sha512.run = "5f016d57b1b55c698a902c7a85a652fdcd40062b409a14e38c1356b9030129b46631929e49c6fa70db7ed499043a75060c97919f15876ac7a647d31c2f0bf729"; - sha512.doc = "1c209615f0745ed0ae4d2f4c55cf9447ec4711e9345ca3db778fbf45ccca76792039e6a7e51f2e7286034ae229b5c696ba7deee5bb8c224dbf95a4cccca650f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -nihbiosketch = { - revision = 54191; - shortdesc = "A class for NIH biosketches based on the 2015 updated format"; - stripPrefix = 0; - sha512.run = "ce64ef60a007e8a955dd48f9f9f748a738aa57829116f060b3fe353308244db0a2c1d56d139e2b1cc1a6ee4f243eb7ea2339a2c927966d7418e6b553600b9e53"; - sha512.doc = "4315c32e1ba43339b609c272fab7aa0b18c44b2c323f43cc303210f37c44c5a08d0dfcbf62e450bdd9ce899d69afd5eceafad91074fec73ac9bcc1e5c8c8540e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -nimbus15 = { - revision = 58839; - shortdesc = "Support files for Nimbus 2015 Core fonts"; - stripPrefix = 0; - deps = [ - "fontools" - ]; - fontMaps = [ - "Map nimbus15.map" - ]; - sha512.run = "9e39f92dea1fa293d6249d16877dd6b2d990d1d48cfd31f4ac1d66233b97ff178d2b70f428978a084fc9a50b9dd994adb6a8ad29375e54f5d5ccf6ca7ed62f64"; - sha512.doc = "8fb9ece6ca17549572a0d79a541397c6545dc01ac0422a5270314bba1cb83b1451fb0f56e34f449cc3d3de326e063e4ea1f2ea03a0fbda7342e9d0a101fb5ed1"; - hasRunfiles = true; - license = [ "free" "lppl13c" ]; - version = "1.014"; -}; -nimsticks = { - revision = 64118; - shortdesc = "Draws sticks for games of multi-pile Nim"; - stripPrefix = 0; - sha512.run = "0b2485f7833cc8f4912a035284fcc4d0e710d942330a16a36788f7d80ebc5d9eb9ceb98f6a15b11e6391429d4684c985a83753696c1202bff5f0c5f4e528ce59"; - sha512.doc = "6848acf10eb3c4b2e0dbb9e33868ac4a1c639771c1508a19e4d41512750cb0978dbb61a570830f2f555e09ade976d9cd5c91d23da73013a7310b9cae02b6ee1a"; - sha512.source = "76903857b5e115f5c3462e114ef7a142855c7606e78f0ed96de54b4c810cdac596b39f38333db445387264ed6723c6c1788b13c17c6c9702407aec267d4b38c5"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.0.1"; -}; -ninecolors = { - revision = 62006; - shortdesc = "Select colors with proper WCAG color contrast"; - stripPrefix = 0; - sha512.run = "f755768830e02aa434432ab4e879646ad43d092f50b7e38e39009c98327c5ddcd23d0b5a7ee8d8afad30e69b6219bb871a14dc7b274ae11a60aec33df2c94ae6"; - sha512.doc = "0550d7b4a8b7040541edf156c5b82bf61d350a21c732c4ef324c58289eda288b7e30edd1f36d8650d453a590bdeb97b61d0c782f3d945b033b0fb746b6c802f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2022D"; -}; -njurepo = { - revision = 50492; - shortdesc = "Reports for Nanjing University"; - stripPrefix = 0; - sha512.run = "a62efcf4630d7c26bbedb19e0c4405e730733b71361cbec9abed7a06a377c230bee561d8b48427104bef8dbd4e0bd56b0eaf9f0f7bbcdc8b289c726cd7b6cef7"; - sha512.doc = "61f32efbea3b94749fa0cfc3ef2a3b3a34ccfb4ed3b6b09afa74e4f6dbd2540c1a263c81ca6406288f015303250f51acab0b6a4a4d51c95a2f9bbf1f3360f8e9"; - sha512.source = "6a790ae4e533c8e040ede3355967ee030e136d42afbe222a8fc4b7c3810817901aaca1625199d88443c8dd64d3d6b52ef9364d706fd1cfd5a6dd8a7916890df8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -njustthesis = { - revision = 62451; - shortdesc = "Thesis template for the Nanjing University of Science and Technology"; - stripPrefix = 0; - sha512.run = "829c4af6651ce3119dcfb0f6975289bc6cc4a8a7dee4a382ec8f63c1b876cd972452b766ed13e6aec1fb4d4613255a9ef206f1b7d8c03207c00a52876f22533c"; - sha512.doc = "fdf843b266b0d2ac780fe934d4ba55c6a3b470fcf81bcf71f2ffa0a689020ed343768650cce06c5cbed0a35d9178723b0d2caadf5038871c55fbc47f244ce15d"; - sha512.source = "bf0f1bfa5d6a9367bee61c90b35c4f8492ad072ce44b0fefe43c1251fa0e7fcb4c4f92392d5d317d808e6f3ab1fd8f7e274407dcc815e2f7e281297b53e5d7c0"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.0.1"; -}; -njuthesis = { - revision = 69051; - shortdesc = "LaTeX thesis template for Nanjing University"; - stripPrefix = 0; - sha512.run = "da5a4d00161d7904d58d745df89dcb1270eab27c291866300fb5a7293db2a078777c9fd234a3972d75d5d6208acda160921a603b45d72f4c235dfa09f2421038"; - sha512.doc = "12f094efb1a86dc3ced366f3f5a2cc7ef5042ed109e30c3d4130f7de9b514a437029eceae67786e7af1159c0ecee1ea1298efca7a02eb8d9c85253c0acdb43ac"; - sha512.source = "078e7e50803f934601b30042b871cca6a0bee5d66fcc1275c227aca20cbf5e098bee5ef95b728a2d4b6fc0f7e5a27e0042b385c07d8b4e6f8df71ceec0c67f47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.2"; -}; -njuvisual = { - revision = 65261; - shortdesc = "Display logos related to Nanjing University"; - stripPrefix = 0; - sha512.run = "48f446e5aec77be8e9ebeba59779c990ed4ec5fc3f533fd22807e8415d9bf962075e940d4f789e3809c8ab4c75be6fc505d42cf37bd9e1d5b9e1a02d78e7523b"; - sha512.doc = "351f6cccc1a7d91f953c4dcce294a0ca81a0e687ebdf2ee676aab18e299b8095d089d7691b58316c8955e06e341f78674bbd52b6073e010a3facb6184cb0a8d2"; - sha512.source = "0129998a16bc4ee8c9345bf0519ce561360e11860a148252550b3536f2152175dae5af414d586a906adea275d0fb1fee1c4f31a2a18f23571a2a4dd5ef9120e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.0"; -}; -nkarta = { - revision = 16437; - shortdesc = "A \"new\" version of the karta cartographic fonts"; - stripPrefix = 0; - sha512.run = "60537472bed0bd22d64789008ff8bbbab92ffcde68cbd74eb0b6d9910705f9f476e8f2c4dafa0020a24b0ff2e27c42a39de1791f2c91040af07dd429e0fa28ad"; - sha512.doc = "b3cb0205fdc567fbed23f797031e7336fb231c11490f463ee3bb3887e5d8ad1aba90bed1b14178b1d9ba15d76ba02ba93598362b9655eea78bf086c7df6c8b61"; - sha512.source = "f96b85f2a779ae64c9c2a056e16d2d8473844b45c0d906f97a3b62f6f517ea614600312d44151d9b9b676f3ec7360638c72fd43c7a35e183bad0d4602dd84aee"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.2"; -}; -nl-interval = { - revision = 58328; - shortdesc = "Represent intervals on the number line"; - stripPrefix = 0; - sha512.run = "486597624d640ccd13b4cf4e913b5735b0f2a36910f563b87c6ebc6f38e2ad8df99591fe8dfcb503750eb6a98204ded9bc80d3cc0f8e2441257d6f9bd2167cb9"; - sha512.doc = "8c9bb64229464a05f51396d50143688b8f108ba47ad23a01ddc97039133cc3dbfd51a6a58e36e946145ea483d3d06f36926d8e881b2e07c005e637338092f75b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -nlctdoc = { - revision = 68448; - shortdesc = "Package documentation class"; - stripPrefix = 0; - sha512.run = "ef7f443bab4a6608b506ff65bd885965c23607aa5a93a721a021e741eb85a757de021eec7b8b247c9b5a41cad3f3f06a90ce44c143bfbe6ab79ec253eba06264"; - sha512.doc = "e887bbbc705456c084c26b1bd02677a185e7c7ac615b9711821233e6ee3a62de91c4cfdd3bbc353b0775b9fb99dc42e3447d7ef51492f4abf0c519ff1af42af6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -nmbib = { - revision = 37984; - shortdesc = "Multiple versions of a bibliography, with different sort orders"; - stripPrefix = 0; - sha512.run = "c915b266e2a7644a88de6476bd4cf81943f7da31472f1b8eb889e048df8acc4afc36e247b8fc63bfdeb8c0384d87fc59f43d87f3ff09822d076c62a0edd1c110"; - sha512.doc = "0014c7fdade3685ce03bf9fcc2725b430f6272025809e224b88361960cb47e5b533d88d60f0ce55e011dbb943c8fc025340fadc506eedf10189724ae79dd2bda"; - sha512.source = "52297a890da760e2c945522094f128612ceb521500c81ce54da2f481581000bf42302665585fa056b31ff0f096a3a170ce56013e0979ae2043a94b68e7d32a5a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -nndraw = { - revision = 59674; - shortdesc = "Draw neural networks"; - stripPrefix = 0; - sha512.run = "0a3ef1e6654d191c588f8269c674e5d7542785aadd97bf96101be8627f4a4746e443083a0403b8710f2e8036f0d69be1db6d40cfc1865aed89056d84ee4a512f"; - sha512.doc = "0ee7cb24d7cdfc708a3ea7bc4588259ce92723e3c4be295b85d689750ed81ece2a575ceeb9d6959692e36e363bd6ca26615fa598080977cb62de9a641da44322"; - sha512.source = "c97381de546d0e4173c7d34ddc8f9098359a3ec8b84c78d155efc49cba120a3e59f64c3c43eaacc07196df86402a084558ca20a5ddc52733134440e21fc0bc39"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -nnext = { - revision = 56575; - shortdesc = "Extension for the gb4e package"; - stripPrefix = 0; - sha512.run = "406e846ebe7ed721218368cd00a021edc41af41f1ccb5989925abad92d4cbf4d604abac8144945599530c85917d9404141052ba9891b778d1006b7d339499041"; - sha512.doc = "6efbea453691fe2af7f436e79e1a486abf5dda14e2457ca3c1c2bda9c8461016d4436eee82a18b079a2491e1c4eb2f7dcbaeaf8fe8b8c7846e744f02da8e3b6f"; - sha512.source = "a0cc70a3bed51b403ee26c2fc583642ab25565c1ebc69945a831827bfd2c192946142ad92bbfa130f891bf9a36c18bf50e5b424ecc119081d72c7efa1654310b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0"; -}; -noconflict = { - revision = 30140; - shortdesc = "Resolve macro name conflict between packages"; - stripPrefix = 0; - sha512.run = "660ea2bc008866130d0955eabecf0afa1e21ce38fcaa0ff0d4364ebc32ea8af6a2ba57c80b340f824b14f0488d2b40e5c7ddcf663e37d6170a7ac0aa740ca260"; - sha512.doc = "b403c57b0d794bd95416ae09ed3fbc0c4a164689f9885dbb15e8a4c25ff8751376e6e61b622c9a94feacc4dfb905a7926500368bf51e5e568efa31e1dc5c785f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -nodetree = { - revision = 68244; - shortdesc = "Visualize node lists in a tree view"; - stripPrefix = 0; - sha512.run = "8c451fff46fda636b2b1284d8751e070bc47526d7dc94acceddd49e8eea3f951526c1680f330042e51f61752795b4c8ebaa490cd93a736747e1bc554126bf7f0"; - sha512.doc = "3e69dd9f6ef63f3ca1ed8c071510a5b6946037d9ed76449fd14c16ce0892ca50031ec594f6bca7423d3669270b4e2821311a53b852f906ecbd22035dbf9c2858"; - sha512.source = "ded67b13d69785d978a4662fc62cf0c76b63bb931b94ca2407b9b8021857cb1d6609b466ab9f552d11765f7b612386e9fdf0fec02e2a77a5cef459ecc4324b35"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3.0"; -}; -noindentafter = { - revision = 59195; - shortdesc = "Prevent paragraph indentation after environments or macros"; - stripPrefix = 0; - sha512.run = "8445839068a264cc57df9b0e9cce4562b3e70ef208baf32fb2aaabf7ce95804a31f0f8b65c8ce2f2f0fc809a07cb864ff977af31d8162cf10560c39f9d2b78a8"; - sha512.doc = "95f0e11cc91dce0e970caa703149b602150426df174044b0a2fc7d902f040fa4fe6fc3014bcf49d240bc9612c5c61a5a40124d5b49ffab1bdbabab0cfe55889d"; - sha512.source = "e3a12b14ad4571a3fbaf4d4297da28a69cdba7bcf57a365dddb163d88a0b1f7acd20d600ab6353b4ea110d4a0a72c9bef365a3b1fd866448f65318bb5940dd7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -noitcrul = { - revision = 15878; - shortdesc = "Improved underlines in mathematics"; - stripPrefix = 0; - sha512.run = "1629f5c0f832927093283cd5cb534cfb7ee35bd74f306fdf6cc18cfca3c72d5c1501139c180b7cf3fe71ef7131dd6a42465ee666c7bbb5c83a86f2a69a5a3c8a"; - sha512.doc = "c9c3adf9742b329ddbfdcfc41126c22039e89642f0c0d93ad064ff2160f7708b62ab28994a81860aa08d83f11a111bc11a2a54bbab88bf3713f3f6ee4aa2e641"; - sha512.source = "5be6bf65ca4dc0c5819a1bc870f704b595b25e5ed6900beb8a53fa8167680929a7fe038e80fef120e77d5b8731c13f92f7907469ce7aa4825ee4e207c09268a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -nolbreaks = { - revision = 26786; - shortdesc = "No line breaks in text"; - stripPrefix = 0; - sha512.run = "4057a988b0357e2256eea6ae47c560d8535528e63b93d648c45d65ac44c4894104015e3411b7046606b9a68afc44033d037229d684f0c5427d9dd2ff5b272279"; - sha512.doc = "8cd5d7336097abd2d873af36b2ba6ebc8cd1c405c9a715c67e6c04d02dbdea067c0b7a8603418005ce223e0f1bff161a3dcb669da7c07c30b2ccdccc7f953fa0"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -nomencl = { - revision = 61029; - shortdesc = "Produce lists of symbols as in nomenclature"; - stripPrefix = 0; - sha512.run = "ee20b8a21b03cb02ed2ef37d38c219841d4a07e17ff781c067906ecbb8f5383d8558c20164f7db79af0c8cd11c5ad8d76142b15ea74674593bb52a5a5993b6c3"; - sha512.doc = "1caa5bcde6c1a3ac5de024f513793c52011285e70e32664d6c5d1a103027c74d45c716d01aaf849726b5b7ffac511ebe6cd16ba669bfeb5fdf37addc59e24a6e"; - sha512.source = "0fda8a0c5e46933cf991bb4120e4bdf98a8ba05e1ca96600fc9e6abd5d3a5c78ce50ae9e625fdda956c90a8f9f569f18d9ebd96b6de4e0e5bb0fbd2b5b00889b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.6"; -}; -nomentbl = { - revision = 16549; - shortdesc = "Nomenclature typeset in a longtable"; - stripPrefix = 0; - sha512.run = "195cd134db2faf9c7405d040d0d3b4a71ec39ac201fad47c855d34d8f734d069c03424ddec6b1af978e7b244b3907f846fbd80fff6063e7b25df3de508fc51ed"; - sha512.doc = "4ea606a78da4c0c4f5c35b38b9a430de8dcea49c8662081a85f3aa575523c40f5951bd54e2c8acb368b52f75a3214c0a4b0d178dc262a64b8f6485852c4458ba"; - sha512.source = "5cf26c7871ccb841bb8350d594ed9333d7b46c7d2e3db70080ce743fdfd7c7fbfa3c8f7f976bf8f37decc653e54954a5e0a90385fb99ac3428a8dea4a5311719"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -non-decimal-units = { - revision = 69742; - shortdesc = "Display and manipulate historical non-decimal units"; - stripPrefix = 0; - sha512.run = "0aff79bb4d211419da92ec10b0e9139f2fd0e939e57fb8a6ada437ffc71c0d42394c5561894e2f2537a24e466aad7e86aeb40e6ffcacc04963c8c88268bc1cc1"; - sha512.doc = "fe3e393e6f2de3d5678f71fcfc0e98577ae77d063b8d09966cde4d5145a9a4c0696f4c09d24757e18d8adf75a9473eda57fa5bc1218ca96c2b4594bbecfb5d3a"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -nonfloat = { - revision = 17598; - shortdesc = "Non-floating table and figure captions"; - stripPrefix = 0; - sha512.run = "39f8f0a4d9ef1cf8f1dc02c63612980f25cee80cb545bf405d9d2a080256ba6799ff3030c98c26e6f2aaa10ac71015e58e4233bf84703b290220b12db45c70c0"; - sha512.doc = "2d090fa397a385cb32c26957b5c4c05ba8443fb1bb7ce7e3eda777ddc2d3af11ec3ae6297bf014f40e71d4668044ab729a6dedd74e8802ce9089b59d57663374"; - sha512.source = "be5e0b078adb8c530d8255bcc72daf50ad8cbb48343fa76f132e1b75fd64d033c7caf287b6901f1bc49422956f6901dec0f7e7b7639dd71c10c1a76ec958aaf6"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -nonumonpart = { - revision = 22114; - shortdesc = "Prevent page numbers on part pages"; - stripPrefix = 0; - sha512.run = "e97fcc36af3e86c1a432d0e425dd86308429e764c976a2f7f8106c3433ae5a148bf3abc45706bcc3090089911e2dfe175156eccaba7d97f544154ad0b288e58b"; - sha512.doc = "0cd6b115638c3151e5983845dd2964ed90f24bd35a06e904a005755696d6faccd90bbf88c7bbb5a0282ffcd266cb55e9eb1d058fd78432ba062fb4fd723348f3"; - sha512.source = "46130f9c35465685dc690096405791f82d70e73091f6654b5bbdaebc71b5fa3703a013461aedbe2cfe59975dd6233668f0c204e817ed65fc83c30be59be52505"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1"; -}; -nopageno = { - revision = 18128; - shortdesc = "No page numbers in LaTeX documents"; - stripPrefix = 0; - sha512.run = "0e152caa8b8df06444f50e2f9ca93f18088a0c58e2d5936f612a770b90cdb8f4bb0142064f56573d8569eee274adbc2703037ce4d7477c24d23c7c8de8748a62"; - sha512.doc = "5988c42840efc02f816ca0f9ff7ad2d731c66563c0c4de21b857de975bbec08962cef4ed1dad096abc39ecd8489d3a34a66809e98f49b0a280c186d03e6540a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -norasi-c90 = { - revision = 60831; - shortdesc = "TeX support (from CJK) for the norasi font"; - stripPrefix = 0; - deps = [ - "fonts-tlwg" - ]; - fontMaps = [ - "Map norasi-c90.map" - ]; - sha512.run = "5f65927546348815b07c93003a2b0922403d274bfa3d1665d4649c9dbc737df924958c2fd61c1d06cd5e7c1862aff392c8d1e9d827f4ae79e70d9b76467f651d"; - sha512.source = "8fb30cc3a1e762ec15c813fff0191b08b64a0d259dbdd21a9edcf70c6eb1b327cff5ef3f48b9dba0b7d99d1ec31b3accef65deca7285e27790261ca659bd525d"; - hasRunfiles = true; -}; -normalcolor = { - revision = 40125; - shortdesc = "Changing \normalcolor"; - stripPrefix = 0; - sha512.run = "013354a5f7514f6267d57d098ca93eb48970df0ce1cb2db0c60ecf664cbcea177b934ab8f252cfb9dd4c0979417937462ef55e51502bca7f32a7de1a0e820e32"; - sha512.doc = "ca7a9c008f72aa1287092f881f9ffcbe58ed45bfc97ec3231fbeceeb007f6248629d9cf49598afe604ac8cc30a4e8117f54fe517fcbf52548add2f6ac6fdb662"; - sha512.source = "ac6fcbd939d13714f21106c6b0786a9ede4ae6a3023348678ce22bca59343d7379fce9ef12bde91fd05b4912c70c8b4eb64b95f2869f4a30c03c4443640b9d80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r11"; -}; -nostarch = { - revision = 67683; - shortdesc = "LaTeX class for No Starch Press"; - stripPrefix = 0; - sha512.run = "3646dcc196a2b0fc4389d8c7ddbce263126ec88f33749e7b290bdd5ef1800cc8142c35fd87635c7df2b0768c3be03a25bf4e3b84162119c859f278d70bfd4fa4"; - sha512.doc = "279cacf2c378e30468748f3e92ae30d3085fa93bc38b43e7a2b423d06de056fbb2135f9aa5d243fadf504c60628b1048dbfa4f8c9e60fee2f844247f093bd7b4"; - sha512.source = "1fde1f24f5d0f009025f1391b360ebb1e4eeda6fc571c6e41bfbd4620b7dfbe739e60b660fc034f3d2f0e1e5a101b1e8c5c8f187e5a3f38c9734f35dd6742bbc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -notebeamer = { - revision = 68871; - shortdesc = "A template for printing presentations on notepaper"; - stripPrefix = 0; - sha512.run = "87870abd8c42303024df10a6339f6973e83e61fbbffd8851526683ad672810929b1e2f2fb2c9ade58a155b063fa39932122c6e21c652df1a4f7ad60f64c5ab7f"; - sha512.doc = "d9b9bdeff61fac3e6bea8aea4611cd46cc08362cc104bb30e4a67638ddb9d45c91059606d016be559c4926b0450bbef3962eb75d6d6c1fc14f262ef3acac2510"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3a"; -}; -notes = { - revision = 42428; - shortdesc = "Mark sections of a document"; - stripPrefix = 0; - sha512.run = "7b569f27ec34c103c5808036a6ffd7f97f9171287883f38c048b8eabbd979559fbf15b20c7002dc9b8b0577889482c4347e4986e076079809a4a5656aed46101"; - sha512.doc = "4e66790b76290925f49ab7f56175e2d41a20e715c43518edbae39e444d02b945ec05ca918574f52fbb6ca10fbbb060242c688fb9344094df2e025de83272322b"; - sha512.source = "f5405540929d6d99471bac43d89b01ed7ba59bdb8f1e7d978dc9a43a563e6b16c9cc4645d291054308f06b3d4df10547e09a72081c210063d37810da511dcac1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -notes2bib = { - revision = 52231; - shortdesc = "Integrating notes into the bibliography"; - stripPrefix = 0; - sha512.run = "019645974d270df27f5c5bf22570e26b5bfa5c076739824eff60a40d1c246010fe0e599eb2fb282cc08aa2161ec7ee753b734548ca04370d9bf923f357ced1f0"; - sha512.doc = "f4b97327b98e86c64620e975130a7fe790489d16135667c95ec7a368591084c381362e1447dfd1b3afb4f57ed2657a43f8623942f6618d839cb9b1c0995234e3"; - sha512.source = "04cd8f2ac89b8f4fdb20a445cd98ac382a082114eca90306eb0cdb793fe088ef1d1ba9e35dd9c9b2c98238cee6ed9519144c012973d7c2e1928c11f7350091fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0m"; -}; -notespages = { - revision = 41906; - shortdesc = "Filling documents with notes pages and notes areas"; - stripPrefix = 0; - sha512.run = "f5f6960bfade079642a4b4f221a7b762cfb5276a74b20bb3eada51706cd2e3496f91ca23e35cb39f221c57da19012597eabc8d3aa63c58e0749c8a01b6a28ab4"; - sha512.doc = "8af2f746d4484a2e06bd0f7f766c49cc9b0b790da2cf0faf1c83d959f2e2f60fcdcb7cdb6f1ffed89c2b03846215b589de332dc20935d0c0add4e3dc025c42cb"; - sha512.source = "96b547ad56fc2e503c2cf9b6089dd74e2902831d99fc8899b57affdcc1c1d23463dbc7472878cf30ee26078c30cac9bdc20975925de01a86982af19b6a3113fa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.1"; -}; -notestex = { - revision = 45396; - shortdesc = "An all-in-one LaTeX notes package for students"; - stripPrefix = 0; - sha512.run = "64f9704fd3646cdcfdc03f6a3e03f9fb37859b9f11463fa77e1d3d076115297fac9c0b8d6875c8b6b7f3d37127a400e6205239957526018d9ad5cdf36a984269"; - sha512.doc = "c47bd3a4153467a63ac2e2b149f498f9458132e841cd70da9871f10674e77d928f7f88e58855c139dacdc225d286615caf0297077b843750e6940482398f02a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -notex-bst = { - revision = 42361; - shortdesc = "A BibTeX style that outputs HTML"; - stripPrefix = 0; - sha512.run = "68627ca4a07ed0228b9b9ea4b70cdea5196e907f71f343310259d19464d503e76e2ea8fb5f59f01337916ee1f2ef398bdb1d3e4d97f0d49eac660fdce20590ff"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -noto = { - revision = 64351; - shortdesc = "Support for Noto fonts"; - stripPrefix = 0; - fontMaps = [ - "Map noto.map" - ]; - sha512.run = "6b1c2961ca9199ec9f0c9eb6e8c2ce61eda6d4eb0157ef292a176831df2df83bf09c3aea23825818ef5ed03128ba838f4377e42b53409c96d388422ce9dfd467"; - sha512.doc = "20b8371eec90440f2a491e1f34a0fce79b700e7b2f0aea2a808baaaf4e3275dd253b65d32429a78be6ed2b31b576f4291cc1f3cc2f625a675cd7a317bab90759"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; -}; -noto-emoji = { - revision = 62950; - shortdesc = "Noto Emoji fonts"; - stripPrefix = 0; - sha512.run = "68400eedc7540f11c0d3649558ce14ac1bb0bf7f2ed56dfda355fa08c7bf37e947a4c48040075e52b4f4205250df2688a7de22fcbde8285ae4549deb5e02e263"; - sha512.doc = "6c0d286c903b49e6c09c570a8586b0f480497f5b64eaf7e9a99d81a143ff9c383cc281d2d1c06293d82c459b5ac108cd960f1d5e4ddd80a70f6c39b4ae3a7d75"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.034"; -}; -notoccite = { - revision = 18129; - shortdesc = "Prevent trouble from citations in table of contents, etc"; - stripPrefix = 0; - sha512.run = "b63b890933b27717625383488d2cbeb1501ace58b83e5af66a35ba440816527dc879df444af78090294df6d4d412d21fddbab43068a6d677b22d750ddb4105e6"; - sha512.doc = "83b3d2c7b97bb88af13d888d04f08ebb7e79661b4924ed6e328f26b9d19e4c6eea6719b49e6f227dc37c96201a901fe57da3745dfa7151bec27c7e8bfb81b236"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -notomath = { - revision = 68014; - shortdesc = "Math support for Noto fonts"; - stripPrefix = 0; - fontMaps = [ - "Map NotoMath.map" - ]; - sha512.run = "908ef695e1eeeeee1bbff53956b1d890fc9327cf985602877abc26aa787bbb7a09c18d592c2f5b2d1840aa91e0c1c0b071b8af0d576c5110eba5f62cc1f3184e"; - sha512.doc = "708eab7029720af202b7af3d45becbdcd8c8fe6def7327b70f3c67bdbbe6c17c53c1e42912f4dedde1f805f7d7009a75e7d8279f7e3a6faf091ca6990cd4f5ca"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.03"; -}; -novel = { - revision = 69945; - shortdesc = "Class for printing fiction, such as novels"; - stripPrefix = 0; - sha512.run = "35da534328bd371913fb43dfebb29dd1dcd88b92f1c39fad6c6248bb14982538b4babc7fa91a54a0c424cf1c3d6dc7d17dcecf5acfaa3979ca37c7fc8a45c9df"; - sha512.doc = "ecea10182e63c454a78c746946d47017d9c40592a6fcf2053319bf7fb06ccc1c0e655d213b5eed760d44e81195165cf6dea6288c8ff2aa59f5170c337f5ad114"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; - version = "2.1"; -}; -nowidow = { - revision = 24066; - shortdesc = "Avoid widows"; - stripPrefix = 0; - sha512.run = "2dff380964c5c487a015073ade0cef996f5786b204657ec5c8948748f485c03b457f6d8caa5bce8148cdbba2623489a01b5370bcd38eb73469d07da4afb8a216"; - sha512.doc = "b11e2051543215f3f19c4d1e3398564093202be07771b7b3711e9ba5359e750bd8f73118b099f82fc3bb1e9a5f202027b168c371ca6587703d82f853ced4d538"; - sha512.source = "862f3fcfb0a165473657d8e8616fa200a017c410e162bc8ce95376028fa4f2c0959e7d116152e73ba6c6cf4d39ad34d1c57f2320dc20f637e1d3a0e2cb2ec7b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -nox = { - revision = 30991; - shortdesc = "Adaptable tables"; - stripPrefix = 0; - sha512.run = "0061e0bc12a06b79c4339684d0598587f3aaf1c2aeacc7aa32118d7b91d3937ffe0ca50b55f5ba9d1b7a4a1c511811191160c58bc51b68dfdfa2b0cee900b409"; - sha512.doc = "2383ebed9a9c6f65d6271317b46147915afdfd6caf39893e4cfe470e302f9ed6f30ca9f725bc2bec296cc88027462765b4ca5731cd5ccf98fa5c8156b1d88987"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -nrc = { - revision = 29027; - shortdesc = "Class for the NRC technical journals"; - stripPrefix = 0; - sha512.run = "2d93fc25d0305b8bee0e5e9ae61bba492bc265e023980a411ffa521f15746c6d73940e352c886ed5dbe08502f472a63559191aea44c3801518bca8b28d0b753a"; - sha512.doc = "35f86598105db616ea379175f3a098cf7c94f4a0a8836302de664c7bb65bbb5f72f41c5c9dc58bf336781a23553ec49e0a5c4d7d0be12b1cff68108aba77e88d"; - sha512.source = "3404facf13d3ddaaf4a9aa295cd7c0777308502075d1ba70bfd6be6e8158eea6ff4b88db2414f8ea5e758ebdf52dcd5f44b6bb55e903c0e11dc6260b02a1779d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01a"; -}; -ntgclass = { - revision = 65522; - shortdesc = "\"European\" versions of standard classes"; - stripPrefix = 0; - sha512.run = "f0bfad104459f2740712d186f7f9aab20e9860ccf75f8c552a4c80d8b14ece4d503d2aabbd7d3000e1bf05203f41ebd49f2c693b4d36478b631cd27ce71c9c0d"; - sha512.doc = "c6a6d7302edac0aef33d1747900c3781683c2a0deb4d9dc3cafabda375e9cc92d9b57b6638442c164b7435279d43f208d2ebbdacf944e96c71ee368087d70922"; - sha512.source = "60cc5982eeabb092b53f1bda76c12e3c090d9777d6a39ebe7b675dfa5dfab27450edac8da7e44539a67af1cf737060e0e52dd80116b8b7f784f46efc9fe7df82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1f"; -}; -nth = { - revision = 54252; - shortdesc = "Generate English ordinal numbers"; - stripPrefix = 0; - sha512.run = "e94365bee89f78b13ec22d8d34ac78aaf50f060f9282c0529d98518ce1e5b7f7995bd2da1d17654ed795f7555e7dcfd9d51399f4a83affc059eb3a760a76bf97"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -ntheorem = { - revision = 27609; - shortdesc = "Enhanced theorem environment"; - stripPrefix = 0; - sha512.run = "aabab9d6f1a5d9e9bd2ee2ec4b9ca8200098a8f3dc786b9c06d4b0e00431dd66f32a254d452bce7e1bb595454e178dcdd71d724b8d835b6f1c9ad9de41107295"; - sha512.doc = "fdea81cedc9ceca6ee29ee006867a05f018f210db2cb59c763adc4bc15db65a7e96ffc93bcd576a4c1a50e7e55d4b199132371686538216eba6fed65dce77ba1"; - sha512.source = "bb0eb98e3344c4be782d113a0e5f1c91d615a5530e1c0a786938b1cf608fe8828d59d365c0d1011e62517f0f76139ea13bad1857f2e1315a2b919af1de3335d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.33"; -}; -ntheorem-vn = { - revision = 15878; - shortdesc = "Vietnamese translation of documentation of ntheorem"; - stripPrefix = 0; - sha512.run = "90460e92cb52bbf8ac9b56bb950d36551b40ba260a9745e8f4d339bbca855286f8682c1a5bd7dd4ecb53e85448f96d558e6c35ffb42d8b862d4680930f3a64ab"; - sha512.doc = "e097290ec9f9696aaabaef4dce11bec4337050848ee547535c30a9ecdf12a1e0be014f905b235fa1d851ad2c20426cd4a9a442a19475063dd4fa73945c3e1780"; - license = [ "lppl13c" ]; - version = "1.203"; -}; -nuc = { - revision = 22256; - shortdesc = "Notation for nuclear isotopes"; - stripPrefix = 0; - sha512.run = "d540e5dc8a3edb41994ef4ed8af6a51fea544ac929ef059fc50cd561891e02e9ee9b55a62782757101cfc5eface3a170bd585c144e7c8e79e191299527f979c6"; - sha512.doc = "ac118243f5fa4c7a4000344dfd5793dfbacc4d7a16a7031fca6305578e06bdd627473eb065a13c4d9cc5d9ef3c1712202c2d65a913c75043e36221fc7df25ac1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -nucleardata = { - revision = 47307; - shortdesc = "Provides data about atomic nuclides for documents"; - stripPrefix = 0; - sha512.run = "68f9d542701bb9d2db956e70784dfce8a14058b5cab5c8316f9d76d59d20de4bc7fa05f22cfe318312b9ecd823a0d0b5cd084b809bcd615217f14e9e0ba76de8"; - sha512.doc = "3d03a8b301c91fcc3e8221f913574b4542e0aa645d83e443d117ad0d69b7198c4780207f0a5e36f7e24f538a249097e1ac4d828e192f6dd22684e905ce9f1cb6"; - sha512.source = "cf26f591795ce6db64ee7548c0384764c42f2eda260b5e5c1d56f7f08c54e13fef84616ea0a3bf9a9bfbf95ca139adf675eaae3047c80faf49e14d6330cb25c9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -numberedblock = { - revision = 33109; - shortdesc = "Print a block of code, with unique index number"; - stripPrefix = 0; - sha512.run = "d45a69881dee3aa3b6de69587b8c59d889fcae528c3c66f10cc14d653dbf7281e9ef4045dd2595d1a5c7305686bb0d12696bc00b672c5907dc58481a4e00d70e"; - sha512.doc = "99443d809e77b32fafaf59b3faecbd121f038e3ce8e054304e8fdae6b145a0d19a67b5e7d003db72f06528d975c3e543a2fb9bbfbae9f48be460b1a344a0d2c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -numberpt = { - revision = 51640; - shortdesc = "Counters spelled out in Portuguese"; - stripPrefix = 0; - sha512.run = "c23fc54514b98cbc31e095f6b1ff37d37eef75146a3eb14e230ee75b71f6d506f148de643ec5e890a565b544b6d05436d47033f0c00ecdccdab697336b61dbf9"; - sha512.doc = "8b3723dbcbfa0163d7113c96ebcdc5a2262c169a94b733dc4af3bc263b119addf58042817dc8437ea5583ed93be1f3d5485ed76c2d704b20d303b5efa8bf41cf"; - sha512.source = "967569a1ca42c00cac46f77cf2dbe61d1aebbb89d3754d69ff3beb848d174fbf544374723d33a8c4ec8b98b2c4d93f32dfd1570112a149afad934eb07bff4ef1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -numerica = { - revision = 68021; - shortdesc = "Numerically evaluate mathematical expressions in LaTeX form"; - stripPrefix = 0; - sha512.run = "56dea9cc66c348affa62820c78bd92b793f6ca18c4581bdec25e4579ebea16bef934e1243fb18f35bb3ac62e1499dcf441099932c05f016f5edc32fe85a564b7"; - sha512.doc = "321c27897e1d1fd615cd8e1d122cc6c0271e5dbe72c7179ad2dcd0e06c6084bfb1e0a6a244b55cc41bbd8658f5ff9fbcc0962e950564a3fe3fbd7d179f0317f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.0"; -}; -numerica-plus = { - revision = 68019; - shortdesc = "Iteration and recurrence relations: finding fixed points, zeros and extrema of functions"; - stripPrefix = 0; - sha512.run = "803e50eefdeedbfdf610f4084eb8574246a3f0c56e647a1105df410254fe7d965faadb397690aa8df08e488c5462af2404293f7deae6f8ae5810bb34488f29fb"; - sha512.doc = "aa8be0b87a737a956c5f69b84a9760ed76de6d0c4a6c27bbdf0a08e9d3cafef977c4a0c22f7d2ec088c278e8333cf85e7d84a8054ce8a7fcacac6cb8a0e2a5e8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.0"; -}; -numerica-tables = { - revision = 68193; - shortdesc = "Create multi-column tables of mathematical functions"; - stripPrefix = 0; - sha512.run = "1244ae95394a7e28ff9281d1eb4f81de88a7e83e7dc880ad6c185591b2aeb3fb826113f83881811e19385aad5dceecb79d99fcab53f6d313b63b31235228643a"; - sha512.doc = "f926645cf5f512dc655e46f6fdeb54b5c12050d66e9408690e0980843a291d2056a51915a44f2fbef6564f85344eea46ecbbf1859d79443952e989e6b8ad5e07"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1.0"; -}; -numericplots = { - revision = 31729; - shortdesc = "Plot numeric data (including Matlab export) using PSTricks"; - stripPrefix = 0; - sha512.run = "6b51a7c68357dced9627d3c618a167d689b573ea44c2f36de5417735f39f5b3d1034558cf188bad2da5eb25f81a2bdee3df6059b8c14879770c3b300422cf016"; - sha512.doc = "1c9f9856ec2f8cfef61829256f1076099e6bcb79cb45e8155116d6c24feaa52f481c739593c6cc51df803fa76e8ec38b8d276e796660327a2bd1d86957896332"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2.0.2"; -}; -numname = { - revision = 18130; - shortdesc = "Convert a number to its English expression"; - stripPrefix = 0; - sha512.run = "b2859430992fa6ee99f4d96f58cabe26b0f216d5e3b512c69b4db74738d933ea8d54503a61257d304201ac3fbc2ba49e908eeca5953ccc0f0023cbbe8b3df76c"; - sha512.doc = "41aaa9057415ad83177f416e43fde4c8c81e335b2f3c025cbc53ffe1d9d61fc05dfe33221c16f1d652837e4ab5a797f60391fb4c319339517090ad0e2ffe66bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -numnameru = { - revision = 44895; - shortdesc = "Converts a number to the russian spelled out name"; - stripPrefix = 0; - sha512.run = "c6f92a720fc5baf6f55c3bc18e22113de0f7cad8a051c2019360f5f3c64eaa450bb12d6c361c52a5a802f558ff8d2cbfaa35897682d6ad218e9adbbc788f3c57"; - sha512.doc = "5e67f1908356e1f21e672e63a8873e46ebb36af39e55a64c174c3bc5c49057c6d19ac36523c34a7f1c1fc53346f6ddde8fd239ca88b5790ebba1eb8b7dbeb0ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -numprint = { - revision = 27498; - shortdesc = "Print numbers with separators and exponent if necessary"; - stripPrefix = 0; - sha512.run = "cdebfa502a461292b02186b146ad8086f46447b5d8a0292fd7943d93a39796eff1710563866506679e903b7a4d415af9a8d863fa81a62395c7bdeec2cd68e66f"; - sha512.doc = "b821566e6fc532425c8f1b901b5613c763eb392461644850428707105626b6eb1a53784d6a693e7f9fe2aa612b72b4d5a38ddf65f22a0d022981771b2b303d04"; - sha512.source = "d4af01527564c9818840a87d9c876ec8d8cf6e7712913ea3deae4012fd0d4f0dae19e4016fc205814620d1cf97f3c12b98f1003fc6fc81857101d2ecd90fbe83"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.39"; -}; -numspell = { - revision = 61132; - shortdesc = "Spelling cardinal and ordinal numbers"; - stripPrefix = 0; - sha512.run = "4db8e16d137f47681f754cb2bc1b9b6fb404676f57c5696ef044287a3f0052603978997e597a2b8b13393d59e6531298daa127d72a381770cadef1a29944948b"; - sha512.doc = "8bcc1bcca230a7829a106c66904feb70de818dde2d6c4c7be3a5df3078482bba001a35db85b1c548fdb5aada0018cf6f0dee936641ae5959ebb84dfe953b6b9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -nunito = { - revision = 57429; - shortdesc = "The Nunito font face with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Nunito.map" - ]; - sha512.run = "920e074987e7e75fa6db92e3c05d76f7aad3e7d9b4f0166a8a8ca79bc5183549299b56a10f1cb6c7fdaa63f7f55aa6b9c1b2bcb4cbf03567b26e9fcb0240472e"; - sha512.doc = "e0de75f22da96d229a6465a4d47baa8e4c3199567f8d2e3255893e5b2a2d16ab73eabec1a103b355518c4cb98ea3146ff067af54938c21a910aa65aee3f429db"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.0.1"; -}; -nwafuthesis = { - revision = 66895; - shortdesc = "A thesis template package for Northwest A&F University, China"; - stripPrefix = 0; - sha512.run = "f3bbd684f063f59ea0fc53df99ac0e84f3106651d6ce5cd48d58cbcc7cfc205a9330db5d4c7988a213563d6fb215a1c6d90c240396894ded1b7ccef0ea4253c8"; - sha512.doc = "4a5395c215dd135488bec466dd4fb210402bdca2e54deb727264b02bd621bdf16ea60b4c16c86497b016f30f2dc5c291d0d432bbd99beea84d59533d29c2557d"; - sha512.source = "d6188d94c3c35c2fc63efbbc37263a3f0c584974de022978671701e8e0d25d26b11e3dc92edb594ffadab231e754745b35498f09d9f95e00a114f09f790d103f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.25"; -}; -nwejm = { - revision = 70606; - shortdesc = "Support for the journal \"North-Western European Journal of Mathematics\""; - stripPrefix = 0; - sha512.run = "1d54bf4f1ed74ca7ea51761ed8381b170e6d66e35513b272ab22267d799e8ae562c5532bbf3212a9300c0bfb19201cd999eede311387645e66ee6cf03693e98b"; - sha512.doc = "456a5e6f5bcd21557ec0faef50fccc95f2d7f07fe26f705c88bf1ec601e94bf34847c2cc3a8763af5a65f6b2ec3183c97f8f1878bb09ca4b7f2c2997eedfe1b3"; - sha512.source = "00302f0628e72c6329f03d65f57a9bb78e6e46647247801ad15d0f2785a067c0d1b84fa8ea2af02fb4c4d6c02d8d46288f6642cdaf74eb3d6bc88aceae183a6c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.6"; -}; -oberdiek = { - revision = 69038; - shortdesc = "A bundle of packages submitted by Heiko Oberdiek"; - stripPrefix = 0; - deps = [ - "auxhook" - "grfext" - "grffile" - "iftex" - "infwarerr" - "kvoptions" - "pdftexcmds" - ]; - sha512.run = "d8c75685ac77c9b8f3259952cead1d5d46dc7bc556044daeecccbe1229da7566c0a31dda776356a6bddd0b710b8e8e3e84612c3ea9e9691bb486e154d9e121be"; - sha512.doc = "728d95ced0404da11e4dffbde075eb02803a09d5c89fc34b6ffe78e47c78837c105a85827adaf8974d2edc84ddf1e7eb0ff20846a2712d152011b2198bcbf18d"; - sha512.source = "726481c21c3bda68ab4050c8dca78cfef2a9e7fdd6f8ee21540fc1dcd629383e21db06588cfd836915a58e4c8da7fa7762f4e65bb01da8d0ba94e874c1d04742"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -objectz = { - revision = 61719; - shortdesc = "Macros for typesetting Object Z"; - stripPrefix = 0; - sha512.run = "15aab03ef1773a4ec72a3dea3fe036cca671abd3e55721d69201c43902d9655a9b71b6b109c13824015a9db740cd8e463016f59dd84a22a3648c14cf7e95f2cb"; - sha512.doc = "b1918ee04b6b1755b947d12485abd250ec91ce4dfe52403631e00b6c3dac88db2c3c3801912c952d26a00b06d8dbf7a9d88586ab7aa348aa0b2ec7cac1e4fb2d"; - sha512.source = "77332f847ae68cfcbe61b1568e7079a9d2c5a51012c0de3bbad166df71f3cc2af61317d886e4092192e647ad2ac13c7f768b9397770587910ef63a89acff117e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -obnov = { - revision = 33355; - shortdesc = "Obyknovennaya Novaya fonts"; - stripPrefix = 0; - sha512.run = "8adb7a1e6183576b4ed9d709b2f64cc778217602c807fce0daaa62b59786d5629fded5e7ad4824cdee90ad5333b9fff4fd47d462e38005fcd1026af8838f04ed"; - sha512.doc = "6fca30705b614ede4e055a39b92deac91daa6e9ca0922725f29c801e58b4a1ddc7176148b03de147aa906289962a3ff45a743828c0636d7f8fa3279b88e5103a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -ocg-p = { - revision = 28803; - shortdesc = "PDF OCG support in LaTeX"; - stripPrefix = 0; - sha512.run = "23b0b4377ec615d8d334d09018629f524a775311c3d227b350e7dfe95c6154795d1d3e44e7e1e405d45b623ecc614892d0996631615efae2ad6f040c1c4d8dd0"; - sha512.doc = "c51169bf3398b17f3dfd2e0aa0efb574cedf40c4739f1b4693f9282042fe9f024dd48675bdf5ec04895c49e0583ac436bfb36e12ac51ce89bc23ac587b3f92f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -ocgx = { - revision = 54512; - shortdesc = "Use OCGs within a PDF document without JavaScript"; - stripPrefix = 0; - sha512.run = "33b8ab1b03b7a887127dbe589212747c8cfd794c1b1c9525222cdede3f941812007441ff2835386e59a19b253e5cdef27a83dd958506dbf7dce6988007befa3c"; - sha512.doc = "c3c28d54a06a5010d8b1c266b1b9689cbf41050e8427689015ce0016131cebaec87ca0c416b865b5bf9a386a2cc33326da5720d326d797e94c41b8f02e160889"; - sha512.source = "633326b032b98f52375e75cdbc55165e35ee4d531d4436df6575ef54c7897187030d99aeeb0de26622ce4f5e56a10df3c381ab72c0731fd8150d677f1fa3c09c"; - hasRunfiles = true; - license = [ "lppl13c" "lppl13c" ]; - version = "0.5"; -}; -ocgx2 = { - revision = 65292; - shortdesc = "Drop-in replacement for 'ocgx' and 'ocg-p'"; - stripPrefix = 0; - sha512.run = "dfc6fb9f004ce6af6cf0af6f057ef3db0bb8957b52f2e1ecc262da1f2b2fd556626560062a712ba8b45adcda1ef0f1414b54d78f58b68f1b13cba913a9df71a4"; - sha512.doc = "c09b684bd181579f6e773b295344ba78b6058f87d76d0ef3272bf5f80691bb40de49554948be53f9bad7779c0b4b8e3adb9fae1e12e0c4403962bebe4f949350"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.56"; -}; -ocherokee = { - revision = 25689; - shortdesc = "LaTeX Support for the Cherokee language"; - stripPrefix = 0; - fontMaps = [ - "Map cherokee.map" - ]; - sha512.run = "9638c408e96fa861d395881d1bac87b55048a25de61561823242d78f836522205c9621f5a01bbb5ad1c8390230dac727b4fae333c22966a04ff5df1f923b5909"; - sha512.doc = "40bb5e47b2ac627007d349c0b043f299f09321aa0d6fc11ad9f345576fd7a902be4d012d56ceede9e66c8a5972828e7b5a5646c101c08fd28fa3ab1c935f8256"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ocr-b = { - revision = 20852; - shortdesc = "Fonts for OCR-B"; - stripPrefix = 0; - sha512.run = "30b658802a2a30776cef18c2ea0f1a71044b5b7819c75ec58df9acc04134cf1aaf85b97f93231d439d79c47f66d7bc57b43494aca073871ec3479ae70178fc58"; - sha512.doc = "6d162b10b558a9db8269b2535ac9df4f76973c54d7e23dea20efb29974b839278888fceab2da85f945da483415bbbafc614c8ae4c1cea6d262d6a46dea5b69a2"; - hasRunfiles = true; - license = [ "free" ]; -}; -ocr-b-outline = { - revision = 20969; - shortdesc = "OCR-B fonts in Type 1 and OpenType"; - stripPrefix = 0; - fontMaps = [ - "Map ocrb.map" - ]; - sha512.run = "ac15acebab9c9f81f0e7786cb3222b336aae3fa4a379592d5fa231e145cfcab536e28c9078ac617bf9b8b672f6dd24b30caa998242ba1e3f4633873ae8d54609"; - sha512.doc = "7bafe00b9c5d846f21cac682d9577ffe696eb54a55f4bee9314646451fec37d883eca7531f594a7994fa8038f7bb5c78a55dd8a8264255a6e60ff90929596d00"; - sha512.source = "b2fa5f4561a4fe61c216e800fcb47bf99a09a62d41d62e30669753139484b58b137649248ec152f7631461c54ab4e51873f3c7a42d43ccf2db86d3cd21d3493f"; - hasRunfiles = true; - license = [ "free" ]; -}; -ocr-latex = { - revision = 15878; - shortdesc = "LaTeX support for ocr fonts"; - stripPrefix = 0; - sha512.run = "d6a4377f66293f8f7ad8b7f8fe3a3a3dd294a302dabb33e193921882d6681fc1c5537b8de2bb188396139bbdd33f14d4f1c20f6edf44ce680df837b250ee83b4"; - sha512.doc = "d0de99d5cf93517f5be8627d649a1d8018766cbba44c40cfbe0f93a3b69c1a5f10b4057dd79194d148030948509a26ef45ea83208c2922cc64b10473d663d591"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -octave = { - revision = 66115; - shortdesc = "Typeset musical pitches with octave designations"; - stripPrefix = 0; - sha512.run = "03db52eae29898d00b407af64fbc8aca35cd5c6165c3f7c890dce1f8218df65c3df447801d8c68d29af67f62de3057feff203de7486f192d9e7e6a59d4f28e02"; - sha512.doc = "13cf74923401dfd58978c2365e27aa394aecf01849543cb6f65a52b3344902c546599c350927950f63e3faf1b81667e9329b9c18aca6cbb87327046f0d695988"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -octavo = { - revision = 15878; - shortdesc = "Typeset books following classical design and layout"; - stripPrefix = 0; - sha512.run = "06de0f1e69c4bd8bf0a65e08515994a10ae8df83e6e8981daf70b6eeb424fd59b58808249782d76b9373d9982aee50e7c12c17e090e3697533b87d35480f94a2"; - sha512.doc = "daa628a0c047ece5aaf15425c0123128a771a17f08fe9212856e2d63b40340dbd7a50a4ed1e19b04198637e11b530239f4280b810ee3813fc6275b78d37bd8a6"; - sha512.source = "3632856effd0e32e8595bca0f2a1ea569261cd0d273fa200d9cd9c70908a96da613f06eb315389fe9b8e6fcdcd9db233ca8c148120625f6813848a930fdeea67"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -odesandpdes = { - revision = 69485; - shortdesc = "Optimizing workflow involving odes and pdes"; - stripPrefix = 0; - sha512.run = "57a0af92aea846e23c0dd05b896af1eb7538f0bc20e957ad3a528212101adf2a1e03bf661b0af2881320e4363edba32c0653a533c74b536d91e86e27666e14ed"; - sha512.doc = "ea581c7e77c0ac143a10caee59ed2d0cd7de439966974ad80bbe472e3c5cfa746e9cd43da677c42297792ac157e0a3fea25666f55c3e1cc3c38cc22475b1b26b"; - sha512.source = "428bf6bea18ab29fee6b642ea27676de099072791b72716cffb7670eb274658203bdd53529d8be0dc7918f2db9dc0ffe56baae9986e41ea772fcdae548906443"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -odsfile = { - revision = 68204; - shortdesc = "Read OpenDocument Spreadsheet documents as LaTeX tables"; - stripPrefix = 0; - sha512.run = "0c663510fd84f116cb2cf12c41a59faec219b774fddec215ade16b9299db1e445e46deb565c4b0acad18ad2b0ac3c5f54c9b8d7b2ea3fa3bfd43cf86716969dc"; - sha512.doc = "e76be0163772f0bb905cfc4987dd2d1083decc706e521647217b7ecb09214c29bb1118867bbe8d20bd2aabb1648bbfb3ac12ba072c38ab7242d3b1a86df5f6ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -ofs = { - revision = 16991; - shortdesc = "Macros for managing large font collections"; - stripPrefix = 0; - sha512.run = "347dc05e8742fa09679e3f16465077b0bbf5e34a4be5a5c2e1da094ad22c0e69ff9f4abb4aacb9be2c698b27da7e169adb0c1840da3e56b277514a9f9631dd02"; - sha512.doc = "13f7fd3ab4cb31ae521827b703cf4c3a0c796b6a33f46b2a24a2a8c488e92d6039a9b136440b00b6a0aba14a2dbad832b777cd5a3aa120ccfc4888ee147954e7"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -ogham = { - revision = 24876; - shortdesc = "Fonts for typesetting Ogham script"; - stripPrefix = 0; - sha512.run = "fe651bcbdb0e8f9ded07fdc412f1273cc8d473894f06af69ae65ac4c6895daba3f61571eac9a49d16de043ae6ed6e03ea386f11dd6b395347d98784bece4c8b1"; - sha512.doc = "6d406cd0a2ba68946be8d2eb148a6c9286a164ae701f66802ecabe6661807ea54eba175617e00920d37a88dee376c1bfcecef6184320ef1790716d53e5a07871"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -oinuit = { - revision = 28668; - shortdesc = "LaTeX Support for the Inuktitut Language"; - stripPrefix = 0; - fontMaps = [ - "Map oinuit.map" - ]; - sha512.run = "4d6b72ce539766a3453f7edb24c243a2a495f3916ee9fd650917c510a0e8fe36e12399843c1de3dc0b0de704bf5362ea20e9bd0d6c3100e659c5641395d658dc"; - sha512.doc = "dfb7275002731695086aa8733a543ca1eaa207bc57cd0b324666940ab932cd9301cb1c0b0bbfa4df36278ac8e289ac1be78a2e0a58ec656c470ff4b841a70803"; - sha512.source = "0d81c9803b9b45b20c096ab00d0c0e5ca26e71d5af463e511660c5bbd28b5b962afe243f21418883575b5d40f503bada65b5c34ba48486aa74a6f9ddcbd48680"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -old-arrows = { - revision = 42872; - shortdesc = "Computer Modern old-style arrows with smaller arrowheads"; - stripPrefix = 0; - fontMaps = [ - "Map oasy.map" - ]; - sha512.run = "2b67317d41349c6d601d8ddcba6ba58cf503756f5bb2f4343c1447cbe4e24c8949a4de58e7cf3863a730bfa809dd09f5f1ce9944e3dc5d4de104e4817d6add17"; - sha512.doc = "d142a95119386f85d1e6ff0f6a24bcf09b9bf7ec83a581ca43be67376cd4a44453d090e4eedf97bcba1026827eff29f97add3a6ed676833b02b718da4811a3ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -oldlatin = { - revision = 17932; - shortdesc = "Compute Modern-like font with long s"; - stripPrefix = 0; - sha512.run = "02ba84762eccf816178cc652d7f8d8f7d962db7d5386de4a8274dbc9524fd7a212116de0d7a53886bd5b431ddb8a5cd8ffca7defe3174cbb50f417172d2963f2"; - sha512.doc = "1ed3c1640420272b33178c62aaf4c0d538f5f1ffc5350c377788210128c74eef4e6023fa20b3d9f214f518079e8a8c3753c74d30084f5a71a994dd4b5534635e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -oldstandard = { - revision = 70428; - shortdesc = "OldStandard fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map OldStandard.map" - ]; - sha512.run = "838a3c6e29a37b060c2f5e158a7145a6119432006b213e4fb3da956d7df66e76e1fb6d963c67d4833b5d45bbdd203e689c9a54302dc3ee28de5d630b200f3dbb"; - sha512.doc = "7933ef5fcdd97201d269547c981bbdf50ebf11b5a11d417cdd1df9f3e0f35fd5fd618a198050865746f9fcb31cedd61abeea25540d2a70bac45b0ad9065c81d5"; - hasRunfiles = true; - license = [ "ofl" "gfl" "lppl13c" "fdl13Only" ]; - version = "2.7a"; -}; -oldstyle = { - revision = 15878; - shortdesc = "Old style numbers in OT1 encoding"; - stripPrefix = 0; - sha512.run = "968ff7b641f6ae6e8aaf43d1ae9617710b0bfed9894dad135cfd11050eef1c35c48d589d58d3a94e34f93c22d85c58b047ce8d0bbf0ae5c2e645de72e327f9cb"; - sha512.doc = "79e2c2d155bab57456cf7d2ec08930d54e538a830c1e7fb12c0731b246b917840d0ba06d31939ca97e7a20e53a061caa5a5a3beb139fc1a05f32dd9497a37ca7"; - sha512.source = "a9200c32d19045cd56121a64727c1465ef16f48269e4b9bc6957106451694707fc0fc3db253e0db425fa8396b32560b5922f8556fafdeb68ad129d90f027d944"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -olsak-misc = { - revision = 65631; - shortdesc = "Collection of plain TeX macros written by Petr Olsak"; - stripPrefix = 0; - sha512.run = "f2bd1c22a294c89c171d3df5ff9fc77d2c4476c7e44e7f0e26b07780467570ef852384e510a959f75b9226d4962b6163d890dacfc9341a8657d9b9d5d6e76834"; - sha512.doc = "856c8ff6d539198f7057e45d5da22bd4120bbe1915fa11b5cd6dacf6b13354df49370dee55d024ed8ff8be29ab83dcc0a786db5fd1f72857bcef7f47d3167f8a"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "Aug._2022"; -}; -omega = { - revision = 33046; - shortdesc = "A wide-character-set extension of TeX"; - stripPrefix = 0; - fontMaps = [ - "Map omega.map" - ]; - sha512.run = "bd07f654ad56219136e2f9e7612b87892bf8c6d0c8f2e41434a7fabb8b159bc43f79444301383adf560f1985f64e639dd496dad6d3ea97ccbd85fcee4d7a36e0"; - sha512.doc = "31eb2aa643ec37d68d902f4de7be391e7da3af61bde93e78beb1e6df1c6367fcfe00f88e29c8cc878b9cd40f2e3a45f9e46bf24ca3a5608aeae09be491130fef"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -omegaware = { - revision = 66186; - shortdesc = "A wide-character-set extension of TeX"; - sha512.run = "9978e66b66e988d49f3dea44b947585e5ec4fd61f204ee06a56a9d32df721c1bd66ab32a05c3d36ca92e740aaec2b478261f3eaf8c48c0cb30fbf9bbb410d804"; - sha512.doc = "e3312826fc6f2bb7fb8f116f7d73f4f113e2b4fda8acdce29668ffc324bdc90f26dfe21becccea36e53f22707067c19116fa2942fb4165aed3d7c28da88992ce"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -omegaware.binfiles = [ - "odvicopy" - "odvitype" - "ofm2opl" - "omfonts" - "opl2ofm" - "otangle" - "otp2ocp" - "outocp" - "ovf2ovp" - "ovp2ovf" - "wofm2opl" - "wopl2ofm" - "wovf2ovp" -]; -onedown = { - revision = 69067; - shortdesc = "Typeset Bridge Diagrams"; - stripPrefix = 0; - sha512.run = "bc62aac04466286d07ffaf65b31c4d7ecdc6f4194f99192700774a213ca52861b0296c3f9864c187a83926696ad3a3a139ae7c00be2167b970159a7605fb4570"; - sha512.doc = "4fedacde595f96c2bd8babf38d4aae73b3bd9f73572547ed5b93e98c16dec50e89651c42aa4d90046464c765aa2f4d5f32d8aeb6ec5de2bb30f6599e53314e81"; - sha512.source = "aaa8de7cb8444749e1e7671406229d222c36b35f2bb676208c22ce8708a4e1cdc791ae99abad9b55fd877cf97573006c41c5aa2fabc573df589d059924f64626"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -onlyamsmath = { - revision = 42927; - shortdesc = "Inhibit use of non-amsmath mathematics markup when using amsmath"; - stripPrefix = 0; - sha512.run = "5452647ee6eb939c292457ee26cb3639560eb55893e44ebbbeaf27ef1c2ed30346d91d733422e65f6780af7c434cf02ac740d722612f888fca8dc45538d81303"; - sha512.doc = "154273f8589b0d8bfa0ed46cfb297d44000eaa750e8d34b1a7aad9f7b26cb19423d7f7ba362e3739cb7d22b2aa077fa44e59d9c46a52db5a82a57659e86a6dcf"; - sha512.source = "2a3568cde9264ed3f074ad47fb5afa22f4c4835c7e0eb53699f691bf4c52b829c31724e56b9bbc84bffab76d425d9fb72b2bbb49ce14ff7cff0d57f538218783"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.20"; -}; -onrannual = { - revision = 17474; - shortdesc = "Class for Office of Naval Research Ocean Battlespace Sensing annual report"; - stripPrefix = 0; - sha512.run = "0c9f717c54d70ad24a1d3b08a6bd44a4e96e932af4d78ba2895f40e16ae5e5b841cd421b71ff3e90490c13e0843d48b8a28efd49b33ee3f74ef9b6476c88f8ae"; - sha512.doc = "4a4f46965a0de8ca99585d4af31aa2f0f94e51328c8cf1ed29768bb9e2f8cb7e14d63315a008a1d0446d7496ce4f8abb224946277ddf47223808f8f2277cfb64"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -opbible = { - revision = 68465; - shortdesc = "Creating a study Bible with OpTeX"; - stripPrefix = 0; - sha512.run = "8a4fe7d1241a1f1f431a666f0d6fecaf330cccfe19c2047d2e244b06838310dd106d2ff8dcd029301cbdbb0f2627e46a4f4c37b9a81104eb695d62f78d835ccd"; - sha512.doc = "691b79162654071d39ebfa448203bec2c7dfec8091e781f44d7a48d4c16b884459bbdc4230626999349c6822b17ac5f6f4aba1a8dbd6c7e2a1d6127132faa2e9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.31"; -}; -opcit = { - revision = 15878; - shortdesc = "Footnote-style bibliographical references"; - stripPrefix = 0; - sha512.run = "4514d83e3554810da7fec3cc165c89a87a4aef04866755a5b42861b484ffea81bfff694609d18fb5e3bbdacc3723cbed96305ba0c09bc48af92456cef3b7b5a5"; - sha512.doc = "6c4e48aa8ea0dd464d7d2902513b1640437518661e9d7237b958b95ad091053b41c6c5ed4407f9c9d87ff5f0ce0b2bda3a99947d3bb0cf70352d5737419e22aa"; - sha512.source = "031596b3dceeda2782e355e3b19c23a1a31f71295d9ac763055a2ba07eb550a501c9672cbd63929984a3c65108e6084ff6a46fb03e885510e9d696df220b1e70"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -opencolor = { - revision = 66363; - shortdesc = "Definitions from the Open Color library"; - stripPrefix = 0; - sha512.run = "b6b9368a3167db0f71fdd4cf9c369f43be2934060b79bbb2b477d8a247456a7f69932bb92bf8bb8c1e1b5e7721383079947fc40e1a5d7bc6f84a2e3fe9e02646"; - sha512.doc = "ff198447e40d71f447688b5fb28385d9fe34265e520496f7d77acf7947569dbd6cc7a98802bb353648dc50979c4be889cef1417f2d15f98bc3ebf95e4a843963"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.1"; -}; -opensans = { - revision = 54512; - shortdesc = "The Open Sans font family, and LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map opensans.map" - ]; - sha512.run = "d92d10da8d6d8adfa62d440767ed1fa9abf413a575b122dff275eb2e46d501436edd90c215611cd943308f32a197c72b8fcdf56b72268f76237c2227cc9dd5ff"; - sha512.doc = "00e5243e465d948b6bd63bfd161d4e549cc6e5b008a8cf8aff1ea5a31bc7a1406858c045cf6fb52c254d61869f1bcd5ef8c6a43ea66164e842fe3fcff2b26540"; - hasRunfiles = true; - license = [ "asl20" "lppl13c" ]; - version = "2.2"; -}; -oplotsymbl = { - revision = 44951; - shortdesc = "Some symbols which are not easily available"; - stripPrefix = 0; - sha512.run = "bb894b28fd62f95807bf00856aa2250bbe58b0c1def385d6528b50ba925410ff177ebef97279338bff7ab70db012ba916edad067584989f86797b1fbd7e21863"; - sha512.doc = "cd4ceb0b923da7c0f56817602eca672442d03f628440c8beb82c953cf73a9d1bf8e24939a3ba4c813c99b7a2aa98adede0c98b4678b06fffd3f0bdfe8fae52ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -opteng = { - revision = 27331; - shortdesc = "SPIE Optical Engineering and OE Letters manuscript template"; - stripPrefix = 0; - sha512.run = "1af8edfbde5ac2abae770765a437bb42d5852877438d283d8021493c621e94d09bd62d9012556024ddecbeaddd838b37ae9abd0486d73e2698956ef49ab585e9"; - sha512.doc = "b1dc3f9f107e1e8313bfa25b843a4959522eec2e6bc886e8b6271c2175258d7108c824bcbed8d243f0e51b70851e68246fd572bcf6afa6aecdeb86a946bc247e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -optex = { - revision = 69864; - shortdesc = "LuaTeX format based on Plain TeX and OPmac"; - deps = [ - "amsfonts" - "cm" - "ec" - "hyphen-base" - "librarian" - "lm" - "luaotfload" - "luatex" - "rsfs" - "unicode-data" - ]; - formats = [ - { - name = "optex"; - engine = "luatex"; - options = "optex.ini"; - fmttriggers = [ "amsfonts" "cm" "ec" "hyphen-base" "lm" "rsfs" "unicode-data" ]; - } - ]; - sha512.run = "f8c0c0ac739e52ea2e468041b50a690999ed7c7ad4ceddc6a915946c6679e60fe4919b7f1d8b0cba49f2e47e54137e0c7a92ebb92ce7ec0ffbb2e3b7cce5ed9a"; - sha512.doc = "0b807209aa67fd18f6c40baf4ccf4e1faa0e4ef28c25df16569f266cf6d3d05e318a25e2af623db92832ff124cde5c7ec81638ae50bd9211f61acd52347701eb"; - hasManpages = true; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.14"; -}; -optex.binfiles = [ - "optex" -]; -optexcount = { - revision = 59817; - shortdesc = "Python script for counting words in OpTeX documents"; - sha512.run = "88a35391d3deb37dd6466e903f3cdd7d134eb9fb8c0a9ab548ca2eeee86687544e1b499248c2d0a7aa3b801d9604913e763128309f88f768d0dafb8ac1fd6998"; - sha512.doc = "7f0d33068083736fe58c08dc9e37929efcf65de3b62a3afb51077a21d0e27b473a65ee1b333a0dd31b1d39e7f6ce79cae3343e8b7a9742199fb409e90030f7aa"; - sha512.source = "c62820e25f1251b6baba3095afa41a39616e49147fc88c5ddd00fe56e0eb2d20a6b2a0ab633b01f2578819308fa0f05e53fd1daf781e276b08ade1407024c46e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -optexcount.binfiles = [ - "optexcount" -]; -optidef = { - revision = 50941; - shortdesc = "Environments for writing optimization problems"; - stripPrefix = 0; - sha512.run = "dfd704e585df8d01b279e67ea3a2baba6e86ddb9f38bc9747e370580a5f218e7ae4446d2429fc6bffc605ef0ea56c8077a8f41f3ca6a8e857df29d0e3f328143"; - sha512.doc = "3b80346a15a6e1d7209c3584d4fc9de944c55867ee7f21b018300b87615c0ff4fbe290a8683088c0e81f0eb20cf514f13fba0eb141808d8e5f5986c75bc9546d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -optional = { - revision = 18131; - shortdesc = "Facilitate optional printing of parts of a document"; - stripPrefix = 0; - sha512.run = "3f6d031b4bf863a339a80c3a05b101393f88dcefb67c61a67e01d9647e74def1fbf30f3d018158a83c8a171b875959bf57d7a3e90dc724c32868f9aafcd5cabd"; - sha512.doc = "d975e4f1b31e2335e55a41b317096be36161fc36fd589255a461772eb701376ce3fe714d727c4de9663ed8e4300bf0b570855b6b3ccb6b55fccd56206ac69692"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2b"; -}; -options = { - revision = 39030; - shortdesc = "Provides convenient key-value options for LaTeX package writers"; - stripPrefix = 0; - sha512.run = "3cdcd07f3c279a601da49a843169f0cb44aea573ac6c1c67a347712e5a087df4b21c6481168407ac6383e8fd5cdc511ea29fd7ec944edd2d514ac88b560633a3"; - sha512.doc = "f23bc3575d6c93d056c752c63bb39e3ef9c92de1a90177e204e4d6a1fd90ce8c9afb36e727ac8ce827a59dad96a3b236e5c3c09af081160113cee1b529bc1973"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -orcidlink = { - revision = 69253; - shortdesc = "Insert hyperlinked ORCiD logo"; - stripPrefix = 0; - sha512.run = "fc1b4a63ce470c910737593ac877b58dec0e77de2a258fe7943b156a31c5f224389f5be5cecfc9d3098cac690a627cea41993d7c47b4510762b3e5c04f63db2a"; - sha512.doc = "ddbea7f5c36f26e329c8e58c4d8ab3ba6aa2371a564505bf1a1a80a2f89dacfaeba706ac99940da6a742df262a25acce0f7b812817cc4db99793ad11e06cf6cc"; - sha512.source = "93e268f12d314647f19ab92910eddcc68811e4db66a6c57bae504525469e24e3e30752cdfadb44d36ea866719765c76d89ac8011e0e50f4ce6f930c476c2e4c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.5"; -}; -ordinalpt = { - revision = 15878; - shortdesc = "Counters as ordinal numbers in Portuguese"; - stripPrefix = 0; - sha512.run = "c494aee642949d56d8fe4aa28c18e38faf5f66ca8d9f1990419b7197ba6d8547004bb11c3d7b1d63cfcb7414b5c618af81425e4fd61fcf114dc36f9b7fcfb039"; - sha512.doc = "dbcad860dd1fcff2e44f568caac9d3d60f4e9ac2312c672b9e9b46f9b31a2498a7e92bd646df8c622b024aefa8f2ecdc9c24e3f95f72f30f1e9b213d6bc4a53b"; - sha512.source = "c4264de0f61c1d2abb6785f2a19e76578a154bcdb5314a3016c3a8bf700725294847a482f33095bf7173885e765db2afb4a3a34de3fdeb1d0c2a213c1e60b614"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -orientation = { - revision = 57390; - shortdesc = "Set page orientation with dvips/Ghostscript (ps2pdf)"; - stripPrefix = 0; - sha512.run = "729921d3152b76fc4c6c8385ce0b5a8ca2491670a7082133084c2e09774bd5c94b7c6c6b8ace1db787b4626f68a9b184550d43adace8dc6646ad36d2d9703f8d"; - sha512.doc = "75d3d1dd0a71d34429584dc1519b9ba26e329f58f468ae8548e7f9ec9f92e6877917bda790b61af9642e595d6b42370e8fc511b2e1d9b974617a6f5bddf96821"; - hasRunfiles = true; - license = [ "cc0" ]; - version = "1.0"; -}; -orkhun = { - revision = 15878; - shortdesc = "A font for orkhun script"; - stripPrefix = 0; - sha512.run = "c1e52283e54e4de7caccfe605438e2775ebacc9c3fd21c143e29d7966c591ccc3fba77019e4f9ed9850762a0c80475edb6c9142d7ac2e3ba54007f3dac8b056f"; - sha512.doc = "ad0c15ca89057f2ff7d43a1bb8ea4513973978e1316e661a0e32ad8fb8005257a634954e85990958ba22360d29eea2d6ea9d87049435416616349874617d9dd0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -oscola = { - revision = 54328; - shortdesc = "BibLaTeX style for the Oxford Standard for the Citation of Legal Authorities"; - stripPrefix = 0; - sha512.run = "831e450ea6fa77f521eca76aaf281a0f7425e28d889c7bc919cd04c52a78c3a0665abf011ec4ef722f47e737c1dfb48f8aac231aa3f370d594cf5300d84c2456"; - sha512.doc = "6024d48e3b6f68037a68dc04051451be2ea7a952e5d8f55b9bd1160d11900751b5a58cc8662e5c38940bee01a442f3691a8cd8329ee4bd5749cf7698adf72cef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -oststud = { - revision = 67217; - shortdesc = "Templates for the student organization at OST FH, Switzerland"; - stripPrefix = 0; - sha512.run = "9ffd86c1fddc4667f6d02a9ad91ce0a3e562147dbb8453c474ad5595a77df8ae77a4defca5f6fdec2ea837e37ab23128be1b00d4ec15f20cb0bbc2e591fdf0e6"; - sha512.doc = "700021abdba0ba3484a0f11600564ffd372bd998f889da1cfa26ff505395844b958468675eae6465af4010e417a56df45c2226d6543d1bb6f2331099e08d9ac6"; - sha512.source = "5a35d201ffaa677d464e0dd8f2f5a474099505d341ead2e00970be39523199a2e3ddec73da19e7ec329a53cdedad495640dd1385fd6e5d005dca9a5027ee8f90"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.4"; -}; -oswald = { - revision = 60784; - shortdesc = "The Oswald family of fonts with support for LaTeX and pdfLaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Zeroswald.map" - ]; - sha512.run = "92d4d3a7d8bd09031368a89ab7b49483e653750e1c348908aa3fdb62cdb8ce14ecb7d7a29b37e6774c613e658591622891e4bd6b348492c669716f220b46f9ec"; - sha512.doc = "1f6606c8786b0eb54a4c3aad0220347eac3b2bead83ca5540345737cfae509be42b9eb10f27a5ff1ced559aacad7413b69708eacd215afd47636d17194b40082"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -ot-tableau = { - revision = 67813; - shortdesc = "Optimality Theory tableaux in LaTeX"; - stripPrefix = 0; - sha512.run = "57ee595a08f2a30174215056300ed4f8ca496976ef7d0f80627b32d45bff7af85e8a33d8d37decd61883ab3cc61f74ce411687c260d2a427c96014d3defe9758"; - sha512.doc = "45bcff2db460c23e543434ec46b8a168498ccf1fc1ac977f72f3022ac7ec02a874eda98a3bb6814edd22d86915b354fac5105efd1bcdb8eb979837edcada699b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -othello = { - revision = 15878; - shortdesc = "Modification of a Go package to create othello boards"; - stripPrefix = 0; - sha512.run = "cddd446d5b63ed22ebc4e561e43fa8b4b1ab2cdb1ecc45ab98e60d6799646845a9d432aa45248e7cf70bfc4aea10cd42960a8846479df46a7cd701f792b4ca74"; - sha512.doc = "8ba85bf32ff739e4588512c2b33bf242b00e3f38a7ddb1b3f5582cd19b925e1adf52b4243857f1ef4b9d8198e8dc80a9aff8a63a7b3ff926978dc7e5c81262de"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -othelloboard = { - revision = 23714; - shortdesc = "Typeset Othello (Reversi) diagrams of any size, with annotations"; - stripPrefix = 0; - sha512.run = "c975c73b8737f008b7f31af86e6c8a89de3f907c6fe782f075b04819bd936da3853a8ecf15935c04970777a4873b5baa38f9c675cc8943190df84ddc511dedba"; - sha512.doc = "af025805142a845bde22a5fe095fb96cd533d69c50bfcea8716dd7d61fc95c41727c16127c2f2b60c5bf2b55870d698db54d307c2b025aff3e251419ed58a3ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -otibet = { - revision = 45777; - shortdesc = "support for Tibetan using Omega"; - stripPrefix = 0; - sha512.run = "8fdc06f22bc9d25b61cb7b3b151919b7d2d6cf3d78f3cfe5a11284d9246acb858410ccab56996cd521eb98518be9c232a4c8e0f8ebbe52d7e93c510e3a0ac070"; - sha512.doc = "96f9d64c8f668f67afe20dad97d1cd3cfec19df3300204831fbfe0d245c1e15d8d0cea48bb94fb002cfa18db45d3ade730848908b0d77b867fff7557b0fb826f"; - sha512.source = "4b51b49e3d3a802a3a19aea604a63f1e9503f7d9d86c81200dc5e2f2051b06e184add9292321f4895905a07595de6771eeda2463ae0c1b096a98f2d2fd210721"; - hasRunfiles = true; -}; -oubraces = { - revision = 21833; - shortdesc = "Braces over and under a formula"; - stripPrefix = 0; - sha512.run = "8a0a6e0648cc3dd9a342a960dec6512fc9153a083c8fc74eb08c4e0f46d091e5f2c71bdb69bae80fc13a857175ec6bab4b18cc81a0963d794028f4faedd0def3"; - sha512.doc = "c97f91df77f64d824605c56669136585b94d95031ed5a4a67f3404c54b2c96f32bafaecc06d114755d0e65c3fcd0379d63f28f94aa32ccb8d23730f5f3eaf63c"; - hasRunfiles = true; - license = [ "free" ]; -}; -oup-authoring-template = { - revision = 64491; - shortdesc = "A general template for journals published by Oxford University Press (OUP)"; - stripPrefix = 0; - sha512.run = "b4d2d3f66092fd8d65cb8539cb0038e7437d2a7613e36404f0a225462686051833c8335f2aa56f31e8bf3623f799f96f5d63710d638645b390c0f0947cf53213"; - sha512.doc = "00987789fcc1c209d08464b919079b5d17535dee92da189180087f5ec67c78eb384f9622f965ccaedd3434c6f097433fbce75be6c459c08e494343217db2129d"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -outerhbox = { - revision = 54254; - shortdesc = "Collect horizontal material for contributing to a paragraph"; - stripPrefix = 0; - sha512.run = "954af6a75833dc388c430faf538415457d0526b85060602b93584a45e6b0ff9bb83ab1d2117ef58817f08b138146873ff74ab045f174e949a0c9fb9f042b1121"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.2"; -}; -outilsgeomtikz = { - revision = 69124; - shortdesc = "Some geometric tools, with TikZ"; - stripPrefix = 0; - sha512.run = "ff64c7a149bd0d890896936c1f5c818cc6f9c34a50b6f0312134dd47819b45df36a769ddd5b4db903c441217062bbbd44da086fd0bfd863ba8bbbbf6f96a764b"; - sha512.doc = "0cebb1b166aa5b6628eb9aa88788beec5da60d7b25b9d110465ed25b130bbba2636209e151a9633171bc016e0953b5f27780ffa02ca4bb2f0dadc902e998141e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.5"; -}; -outline = { - revision = 18360; - shortdesc = "List environment for making outlines"; - stripPrefix = 0; - sha512.run = "ccfb49c4e035f0d246f00aae56efa9d6570ad3997c44e2bf70588ce67a0bc3fb7bccff19b65629fb27158b0156a9802d97ea1f8edf6f4494f644f40df5d97118"; - sha512.doc = "301ad12a8f964a7dab05b208649c74ad39a64264f113963ebf36dbf83c90ed8ed042d8cc15f626f6081bd41f51d66dec592eaadabec32c65a0d67d15e8ead37a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -outliner = { - revision = 21095; - shortdesc = "Change section levels easily"; - stripPrefix = 0; - sha512.run = "9251cb4154042c7620f545b2fb305cb996af9ff51c44259287a1f5ec490cd83bfb82321c4d8512ca2d22e5d2a7409ac5dad9f7a7d51f38a76bfe77faf2ca4af2"; - sha512.doc = "024095493b4b7301597798285afbdaca9fad291dffec9707b82da9f23b1ee0585345e4f201d6b322a1a65ceb6f703ab5430d14973c3fb25970b04d2785ebb9d2"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.94"; -}; -outlines = { - revision = 25192; - shortdesc = "Produce \"outline\" lists"; - stripPrefix = 0; - sha512.run = "1611e4ba3b8fe21db83a542da9d7e0c3431330bc24e3733d28c8c5b3172ce3e4b46ff5b7dda41f95b4edb6502236f6d558608487ac47f8726420a2afafed75db"; - sha512.doc = "bdc507a3f3cb966d03df37d9385145811c5750bce6341935231ae987b0a30dd65424a1bbb772920586721e25711caa429cd6d8b8149088f753f36b9dd69ddaac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -outlining = { - revision = 45601; - shortdesc = "Create outlines for scientific documents"; - stripPrefix = 0; - sha512.run = "0d2b7dbe710d1ccd54a70cfbf6464a3ee5ad0fab8ccfa61306d5d5d83252c0f3b64f1caba6b5e8e75f7e6237fdfc675981acb67fbb730282978071e76e92ee40"; - sha512.doc = "c083046671d159fc118f25e56ba34d04f8011e0c49169920fe679ffcb78d93e52a6f8bb5bcfb34c47f0b23f73579519c431976229ef143a31ab059cde6dd64ce"; - sha512.source = "8a2f640df3572a5cb8336342b49035ad97513ac97eb87483a73c0d41ef4b98e2ec39b994f9a7005c7c6cdc2564aa55fdd8cc0e34bd79b189882df34ab10e6cb0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -overarrows = { - revision = 65853; - shortdesc = "Custom extensible arrows over math expressions"; - stripPrefix = 0; - sha512.run = "5c2d386bea3d2358e7c6baffcabdbb00411895a45b0500f60f139435b55fc86e6c2c7d7bf96a9bf38300f4d217606ffcc4f212523dc5a7fa1e35b7eb4358fe3d"; - sha512.doc = "1e5c39621f3790fe752c8785f5264b842ad00d7eb3a5fa91c41fb8f3c0a84c85d8be00b553a74f1750bfaebb6f97f7c462d9181c7b6afe9547a38b9d3f431b5e"; - sha512.source = "57b1da2b639cd7b2abcfd8b98c8e73a704b5a247b78ed8373aa3059744eaa127314abe34fbca474106b5a3fda4bdc6dd8f2d399e082eb7a6e6396f77b35309c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -overlays = { - revision = 57866; - shortdesc = "Incremental slides"; - stripPrefix = 0; - sha512.run = "93d1b7bff165da32f509e820cf88c08e8dc17ae688814a6913357ad9884ecf9fe94334be82e54c4e902935fcc38a6dab5687a3f5d4e333268d03df8e977611b6"; - sha512.doc = "d1db70b9ca58bf23946a824c9b9ce173f008b45b608f409c6230403c5f5c1c2e6dbd22f7ec416e9869d3dd98bb0cc2b5a4a0e1d5bfd0a39bac36675d46a5b4d2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.12"; -}; -overlock = { - revision = 64495; - shortdesc = "Overlock sans fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map overlock.map" - ]; - sha512.run = "0c934c6f34922772336f39dae801a83c705197d7a7dbcf95cb890c25b8209697b3cfacc6899c57016ff32066979b665198d30ae45caf60748599e4c6ac052ad2"; - sha512.doc = "44aec04d96e2867a074ca1ac85fb3449cd276d6a14c893c8cd73dfaa91e60ef5f98ec7ed3859cc57efe746ae1454a5fcd01b44ac580369a87f69bf5cff3e3b22"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -overpic = { - revision = 69343; - shortdesc = "Combine LaTeX commands over included graphics"; - stripPrefix = 0; - sha512.run = "6663af049c657a947c3894157eb21c38f8f240250894ee1c8e34e3ae7cfaec294670dcb053d36fbb7749c383b8e9645d25f583670401c7cacc232eb64996dcd1"; - sha512.doc = "005e2aabb66cb7904544463274add08f9680a38cb608c9d8976e4c8cae114658278d2fb3dae55af989c21825dc9d71b4a28202eb68566ab462d1a4bda76ad54c"; - sha512.source = "3d0e1d66a6ae6835eaa1e5342a448895d6cc6ca5b0f9a300113b2c43d276ec9e1785c41700895f4fcfa19d4fd3098e476dbdd320eccab3c2facc855a85f63870"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -pacioli = { - revision = 24947; - shortdesc = "Fonts designed by Fra Luca de Pacioli in 1497"; - stripPrefix = 0; - sha512.run = "a82b391630b5f572d8ded331ae98f480fb0cf7f3eaefdcab3100bc839e2b026f012320e334e82d04e01a27657f36927a4d1570086899ad637f8c47ddd0f22b2f"; - sha512.doc = "fa911ec25c0d6cfa62a2d5396aedf893b9078604611ae5d34b06f24740f65fd62895e4d53a10931071d19ddd24244e3c7ee9893f4eff03efd0920fd1c1626610"; - sha512.source = "d9347b85cd548f5861b83ef2f213760805c3cb76fe0313f02935bf28baae72caf2d548459aed2acb7ad5061e49c6e6694e46e88bccc1164e83f63a6f97045d04"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -padauk = { - revision = 42617; - shortdesc = "A high-quality TrueType font that supports the many diverse languages that use the Myanmar script"; - stripPrefix = 0; - sha512.run = "fec57c3e7bd299671ae8d6489723a4d33c54b11223f5f37f3f3b3cc148fcbb6d9a9aa46587ab83e414221cde3a7d0e4493877d90e9536952d9069a4cec7c758f"; - sha512.doc = "ffa9d45c971b7fe4fbc55644be4093268f842e13a2ffb1713be401cc88934dae86f012741951f30580a94a57f35b85cac9525869e0abca5601278d48a19782c0"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "3.002"; -}; -padcount = { - revision = 47621; - shortdesc = "Pad numbers with arbitrary characters"; - stripPrefix = 0; - sha512.run = "9378dbaa1d3a569a3cb4bd70fa1b5a6dcdb0fe089d3a2c3eecef4cfdb776607f42b7fb018461c00781f8b022dd962e790146297f5df29889db13794e25c1cbb0"; - sha512.doc = "68ffec3a80473b3b2899ae262fcbca47198c61bf1363b9c167986cc95214c778fdd49ed65e8fda8f15d48d3d9941ac54c6660f28729dda176123fa1b3f7e8631"; - sha512.source = "088fd314ec5717f6b40f66762af47a32eb01f40259948945b48bfde12923474cbf0a7aa8389b4ea83127915782bffab4d9cc0be40d2f7d752dca734b0fc0b62e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pagecolor = { - revision = 66885; - shortdesc = "Interrogate page color"; - stripPrefix = 0; - sha512.run = "7cd71dac6790eaf48afb107310961bbe37f04199b70316009f6e62c064c23f0bc7e4601765fdc03c98b1a39c35f9f53a7b83023e5f29ec0a273d7130b13802e2"; - sha512.doc = "ff3cad39418f1a6a1b4e31788d79eb83d33cf7d04fcc8f5ad4703b60db1a581ab2de158f0b4d24d42c13fd2ddd6c85ad4eb3f9f4db09927ee2c97eb7d4e4a063"; - sha512.source = "4fa8f8d617bf8cb1d8a2399ddc88ee37778f1a7de904385351fdad3c4267c1d27e8b6157a206ee0b434991da0a508c42afd71fcc4cea81477e44849c15f81384"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2c"; -}; -pagecont = { - revision = 15878; - shortdesc = "Page numbering that continues between documents"; - stripPrefix = 0; - sha512.run = "53b0f558c6198181349a66b39f0b54108a931279766882bfb713390e79ad0f62218ed841416e143c6909161ffec548592ffccb337505eba61f643a05d49f1fa6"; - sha512.doc = "634110b7cde040e5ae7be237abd6817055f7886d9fed5ce1a00b5ea93e9bc885f0c15398c280abe8472e27ce89aade2a827e66fc041081c8d31cdaf7755119bc"; - sha512.source = "86417ff0f398efbf5b6abf2272df933734724a7d94f93d0a94704c393e195ca0a5828698d4d91527fe1bb0d70a26af49998513f0e9d80e1b8966239555a3dfab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pagegrid = { - revision = 64470; - shortdesc = "Print page grid in background"; - stripPrefix = 0; - sha512.run = "587c09867ebe999b3490d2b6dbd541acf4631a3d40ce1c0dd102b3ca4801ba5774f60ae86f27cd34bf32f324d54bef305f365cc1a8565ab54d84925861082b8e"; - sha512.doc = "3c5d05229ac51f2013017372cbe1df54709b604e170bc4aefdf26a1a017ded6124fba4922ec7609f72c059e45e1ebf1a1eb838c89f4c1564c518469333afb5ba"; - sha512.source = "f9f5f7ef9f3b0509ae0f52fbb9afaafd96396777862c2976550ceefb88d10feb7eeabec2dca561f5a55ce5f4ae6034be4db94da07209652bc6a85f5b4f2b4a56"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -pagelayout = { - revision = 69486; - shortdesc = "Layout graphic rich documents"; - sha512.run = "d68bf1937910d93d028757ee0fe06ceaa222b29239d7decc1479c78dd3bfe7a210349562718c87173f26bb34eea142eac4764e013a33d63d0dbe3b6204e60124"; - sha512.doc = "8b2fc3d9fc36b821dc1082d9fd980fe7280ccdf9d44218a84dfd5ca00aaf79df8b78c674a3460bf2ea8c93d977006bcefb053b8d55d46591bbce2b88822d4891"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -pagelayout.binfiles = [ - "pagelayoutapi" - "textestvis" -]; -pagella-otf = { - revision = 64705; - shortdesc = "Using the OpenType fonts TeX Gyre Pagella"; - stripPrefix = 0; - sha512.run = "feec3cb6db5c10b2ae3d4d4e58cd21b1e425be368e3002914823120b1396622fd2e6de09bf0a892759f3e9629deaa1c419da59bb858dc1263cc271fb33d46564"; - sha512.doc = "6cc07f42d696c04156c0da6610ceb562174dd5e00d1eba96c7b1813e86b53081245e45f835309db257cb1d157d6a77a3d453ea1f689400cab9fc08cbda21b8ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pagenote = { - revision = 63708; - shortdesc = "Notes at end of document"; - stripPrefix = 0; - sha512.run = "085f824f879091e479635e2da9d375f51217f00dca5cc51f6b3dfa43e8a54197e4f2bb0f1748e7fa5dfdb522afcf177c67c9e47f4a9e756ba71ba6394fcd56da"; - sha512.doc = "20ac52f56753f0166829aea56e2b1514a34f67eea08ac8f2fbc505dcb046d2cc4168156b8db8691b426e35bbc83295454eb299a443e44d236fd31b695bb8bb44"; - sha512.source = "1926eca304ce92b3ec5fe2e06fc62a2bd8a7bdb45038050b5cf0871b35265f7149803ab32a28af057b7c3c1ff0deecdf0ae6cd4afb950d45679624a317b68651"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -pagerange = { - revision = 16915; - shortdesc = "Flexible and configurable page range typesetting"; - stripPrefix = 0; - sha512.run = "9216d443f44deba5cfc4ce04174031cae55f2adffa0f3400bf3f315c3b9003d1ee015fb6df69cb2cba23eb117f2ed191b7033ad46a51bc718260a44778783c47"; - sha512.doc = "862ed02746c6d91a2b8d9e19bb2e943e251dd18f0d94562bce9cc9e8ad603f7554e77ccfa2485b9a4eb7a2d6d5185756985f104d870e95823a4b33072f24bc9b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -pagesel = { - revision = 56105; - shortdesc = "Select pages of a document for output"; - stripPrefix = 0; - sha512.run = "c07cd3b48fd5cd59ca685b1ae39da7e7d8774348241c26d29a74b41ee6c29fdae0c01a47a79aa669cf6651b0b83a5b79f8424c139c17db5bca20d30186e5b655"; - sha512.doc = "eeb70877276b393cccb1c0e301c191480e5aa52715738ac6d01b58be864b065b3b72afdbd90d3a398284671682370300537d4953aa2adf4355fc6d2278d2819e"; - sha512.source = "457c52df8dca820c8ee39494630a077d0a14f58f7308805dd0b5f5dc374fdaee83581cab3543d7a9ded91ef94f7555f2d2b2420a6ff2c9ddf7c790b5407f468a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -pageslts = { - revision = 39164; - shortdesc = "Variants of last page labels"; - stripPrefix = 0; - sha512.run = "7db146bce45ee5ceeec5904e8f3ed6efe0010885b657b0f74546644c3ce2a018deafa95a11390da3d8a62eef16508b82c3efa9d02ac1662cbed18e905cf869b5"; - sha512.doc = "58fe6250af4ecdd6d62c231778c89e0b049995feface3af66dc73b920f4dcdca8838d3274a7648caf2b38746fbdaaddd1b4f87577c77dabad2096e9c8b681619"; - sha512.source = "99db221ae4c7795ca4093b7708aac14fededf3c55aaf314433602906d8b0f3d9c074fc0b8cc6807474e81e510f35bca486db3aa525e95a5486c7ff379cdd5e18"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2f"; -}; -palatino = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map upl.map" - ]; - sha512.run = "5db043495b8daf0a5a854367ca1c82007a154d09b2bcae9f399e8f851f30a554fa98970cf45ccd8f0681f70ae7e01f54dfd414bcbd888b802e93993c2ed172df"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -palette = { - revision = 60119; - shortdesc = "Create palettes for colors and symbols that can be swapped in"; - stripPrefix = 0; - sha512.run = "0583223e81139040de67fa9a1fd93479dd2024c19d34e775a71b9fc03d7b01799c2dd58736d431307cb067d2d3130fb495aaa002425a8c0c80ddbc3e33679693"; - sha512.doc = "16934d0cdc60fe7c1d6d2cbd0dfb640a13d8282d98e322c98853b71ab7fe38a33241857ae98fd8ffd9f2e5c009327889f4c42a89af4370fc7d4608b457b1cb4c"; - sha512.source = "ea0e817ec066450c3bceae8ff9859f9b4934dba86f1ef850bfe8d566ac1da8296d780313962ab63babdfb822d1c72e686dca2925f809baa3a62eb2d744e8e6f8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -pangram = { - revision = 66300; - shortdesc = "A LaTeX package for testing fonts"; - stripPrefix = 0; - sha512.run = "1a74fb3bb7d1a4c9dfdb594bcbfef7b716affa55bbc7010fed6937708f9ca0d9f644c2d56a557737b56c1b8386de90a4b4df699aa50631c1e94f1e4e3c9d3465"; - sha512.doc = "eb031dfabc359fecf7316cfac1d799f8377b38d2e86922a52e2409214f9dc251d1ec5c5ea439ce2830ed21ac9a02925f442e0930f845b849b7ef662c30a70955"; - sha512.source = "8d5a945567245da7bdf69db5cdaa72d693054828d948700210e8a71c3f1178e7c690c7fb912275cbb1b3700f812482aaac896875ebbfcc33d3b9531f37b6cf89"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0c"; -}; -panneauxroute = { - revision = 67951; - shortdesc = "Commands to display French road signs (vector graphics)"; - stripPrefix = 0; - sha512.run = "d904edbcc40640e89e3399a5e00310174bc9317a1ac87da86ad15dfb2ec24757b21cc9ec1d9e562547b6637bc63fb1d58bc5373d4b84f4b53c0194c001a2ae59"; - sha512.doc = "b0fc8b96588dbe692eebec332da0cd3fbea74090b566a9afddad30b6028d3592e95f729d7d8f6f198c14e2cbe63e821715ddd2678bd4a58865c5a159d8d8ce4b"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-30" ]; - version = "0.1.0"; -}; -paper = { - revision = 34521; - shortdesc = "Versions of article class, tuned for scholarly publications"; - stripPrefix = 0; - sha512.run = "484964a6da8fffb001e29b471f7c9fa52d2f1aecf66da8f9365376b987c79e8e39cdede0f0d61977381aea78f9e6429216c0cc2eaa67a831e4f1ace29e2c9503"; - sha512.doc = "2fd771d5f1035cb48c0a4de89f1174a988b3b8254caf535ca75633efe2ddc0483d095a720a9dae93aa7e832b0d4e63bc49cbdcd801e4190209f56bb0632c5aa6"; - sha512.source = "74ad404eaa44a523f97d245d6ccada1546d9c991bfc64186ab1ee7f6efdecddf87897d7e64136c0285e4d6541f1bf164173efb020adc113893d8e9309a687967"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0l"; -}; -papercdcase = { - revision = 15878; - shortdesc = "Origami-style folding paper CD case"; - stripPrefix = 0; - sha512.run = "8f2c923e72c7f16b394222ad86bc3f07304e6c39965473482c708b15574b0475af6eb6aaa085b94be6b0ddcce3324cd5639a8317caad55844998868ff18f0e73"; - sha512.doc = "01d43ccf0be5caa114f1b406e5cd4c1f8f44f06ea92e6d3fc999a5bc71e911d6c99dbcb8a1b9c49105b978d0d36e6ad2642f73446e3ba6a55edb11f82f40638a"; - sha512.source = "7bce5742cc7504e789011ec877fc2a934300b0edfa2e6b8f89d625184e5dd0c8cc6116aae7701c313e133d8669522c1414a2a16d11e7e6eec0d1c7112fc44d56"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -papermas = { - revision = 66835; - shortdesc = "Compute the mass of a printed version of a document"; - stripPrefix = 0; - sha512.run = "a9c2fed35bcabf0e3feb98fede1f66f0c60dbe6a40b50c3818cf88821712ae4ef789fb5a080113f31cca4851767e4b607c623454f06a8dfbe1542bc3897dd7ea"; - sha512.doc = "2837d42a830f3a4517b7a0bddd9271264643198be3b1d805e471a62c9c87df81944a088b448829c26e05868cbb5f6a12480a6faa9a8c5d3f56e0c52c38c8cb75"; - sha512.source = "b64f9a1940169e858a51f94eb03ab1843398deeee001fd63bc97ca0a24d385d8f8d6b65a4195fcfe52fe76493c78506a7e68c1e32be1d669b16087a741122ee4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -papertex = { - revision = 19230; - shortdesc = "Class for newspapers, etc"; - stripPrefix = 0; - sha512.run = "489718b18bff9055917d9aa1329c34218282c2dec743c4a136625b6c39dc5102bc85d7da6dfb5e2b6a0f4bfe5a8fe27341ba9c7cd205cb8435ed3bc81a7a5c1c"; - sha512.doc = "aa36046e89f7e4486020a62dc8cb10f0a680247a3148149831153400a4ee935d3120525de3fbf29eac5c6cd58b655c1a2dcc2c4a8baf7d849a40f842d3b895fa"; - sha512.source = "9afa6d8e8d23108266bae48e78caedc5bb20c06eb15e3de8969a2e8bfaea880901a184fa8f2409e6d7ec0a4341105151049e1763fa4f4cdce8150e6bb3a52174"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2b"; -}; -papiergurvan = { - revision = 68239; - shortdesc = "Commands to work with Gurvan Paper"; - stripPrefix = 0; - sha512.run = "0f79f739273caf08126817ac44fa0c02bef9fc2e2bdad32eee12d1e377bca14618b426bc71f4f9cf734a5e63c319ac019de2c7959d25a0e31f594aedf1ec6d98"; - sha512.doc = "c9b4f46772ca50c8ca89d7d3d35719d8b2a7dd7ffc9d09a39569500047640404d1d3937ebbd4b3380a4e13cf56fc2f722d444f71afe464df332a69dfcc6049e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -paracol = { - revision = 49560; - shortdesc = "Multiple columns with texts \"in parallel\""; - stripPrefix = 0; - sha512.run = "ff7f60734dcf6d1db89a0b80747b31eb95bb28ac90ea5d83546feb08389fe890c6e3b4c44995b115d3e9d446823e81e27bf08337ae2d236a5a89c2c79258f741"; - sha512.doc = "a5711614d817193cf34cce405fc57f00dc17f3757b8c945dd174ba03453943c22e9c66b19a0f83444abd61f486e5df10246556e59d281f10f95452ad1931fb49"; - sha512.source = "cfa0bb83368dc27a7d71fb5e8772aa1c0ab69f597b2b00630fa1a95cf448684e6b59d46bd6dbe011953c51c0195b5cd0981a2df8d7d5fb951aecdee0a9ed0576"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.35"; -}; -parades = { - revision = 40042; - shortdesc = "Tabulators and space between paragraphs in galley approach"; - stripPrefix = 0; - sha512.run = "6eda005756083b1ca0c1ee09efe44830874d8090c25aaddb8d6631284a057130d2f03ca7f88b460fbeb7bea90ad31da8242028a70b07f6a66bfb978cd7390e26"; - sha512.doc = "eca6b66f0bb424730177498fd6310718a78ffdd031961f8de877bd6f9d027430143c19310b158abf26f92b4280016cdac696f423b493aa49d60b06cefc546688"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -paralist = { - revision = 43021; - shortdesc = "Enumerate and itemize within paragraphs"; - stripPrefix = 0; - sha512.run = "e05bbd65ae7146515dd5dcc6ad7e40fc8437fae29ee26861aa9c2b4b6da0015fc00974f0a2328a72e6487660794a822bb64b35ea3282eac980c3e7fd23f4b899"; - sha512.doc = "5f103c629d1c0bb94aaf6c86f7baefe3e99a854e764306cd21e256011ae5ed95601416e33677f73f6471bf4ce2a375b6dc98b8aaf35b8dab1c41ca91b7ec3ec5"; - sha512.source = "1cb11b8e7792df9be259e1a5ef3b2efdc85b5454265deb66e2a527c4696d7e9297e2022d5191b1d666996f1be1f638517ce4441d0bb696f6b33ae490f4138e78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -parallel = { - revision = 15878; - shortdesc = "Typeset parallel texts"; - stripPrefix = 0; - sha512.run = "975bb869ea0df9236f0e86cbfe880e9bd59ab2d6aeb98f0a399f5bfc7e4367b3f14eb64e707e4e7ba8bd3e0ee641765b9ddfd79ee1abac61f96414f215fa5cbf"; - sha512.doc = "ab4c283176cf1fd3d524151cc647c1da360a1772e57b282a91007edb1269d6bade379775d0efe6731fee18b3f3bc02292057d67795475a291a4dadc748d5b185"; - sha512.source = "6dde2ae1a2ee65decf5c1ba547d2683948d58a7955b75e5a3bd74d0b6705e7c6a75f2fe4dbed01562211b670d455a0360d0fff3ac0f24e3e77b4bb01a65577b5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -paratype = { - revision = 68624; - shortdesc = "LaTeX support for free fonts by ParaType"; - stripPrefix = 0; - fontMaps = [ - "Map paratype-type1.map" - ]; - sha512.run = "b6f50e5c3063357e04e94a9454cc34b17e522c54effe14696d3d81e6de1f4732953b608c0c0d13965dde5c9c95e125d967afc888ecc9396001c1deb89e9b70ef"; - sha512.doc = "ba91b90030c703dc35a77b9a51a23d90e5cd6f0a6490f74e151023248b05a6a0ea5bcf188e3c8e69611b9b7d5f72b4569538a9da02193ca737e94e744c83c107"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -paresse = { - revision = 59228; - shortdesc = "Define simple macros for greek letters"; - stripPrefix = 0; - sha512.run = "1604c9320918893633af8318d049194158daaf458bbafb5ce34b2ecf39896eae4591989117bd1ecdc3a86d4728a4c477f32b82b38315aa0693fb5978a81d2b21"; - sha512.doc = "f25aae5058f765f5f141c1d2ba537db5395384f64b1e0aa803e486eccc1a9c958dcbf6b1dfb0aca331a5d20a798c2107092f79b9e8ec44e342ba52964ed43b06"; - sha512.source = "5acbb82be5b06506d603eb19b01770806e515b1d496a2b51ecbab0a6c5fb4b6a0842764fb76446c09eb9a49a9a9cefb571e5133a0f72917de989814cfb3bd00a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.0.2"; -}; -parnotes = { - revision = 51720; - shortdesc = "Notes after every paragraph (or elsewhere)"; - stripPrefix = 0; - sha512.run = "798ac362fa4b67dacfe9b744163555d3c25c9e4487c5d2e2fa47be12d8d4b41bf89cb24a04f6434c804e9ca1f45e6d1f22ec234ac04596d5e1905589cf1eb558"; - sha512.doc = "e9728eb1025e80f41ca07632cc2625ee670a61ebe06d003585645e6aed183087df460a1dea4f3a8b17013af6fb3e974a95b33d848d2502435a37b1aa881ce833"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3b"; -}; -parrun = { - revision = 15878; - shortdesc = "Typesets (two) streams of text running parallel"; - stripPrefix = 0; - sha512.run = "1a09e6dbde9c24d88e21fffe24ead7ee7567a2c7bccd2ef33e49eb1bc8eff2befb3828a87616872f63d1d8eeba21814cefc8bbe756b17f887558449aaccb1668"; - sha512.doc = "cf284387780c9b2f4a79ebdd781388525aeb2a03ad9d85048061a6c43728bb6f2f4fc840ebb499a44a3fdf612ff4a20f36c17a377f959be813b4ee4d12288fb7"; - sha512.source = "9a4fb32c53f5bd2f6f79992b4ce076ab211c24e2c0f4ca2665c903b2e3d5268b5615bb5e9c8107d1d44df6a9e50a9f942f61cbb1fd05a388738449e4b312f306"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -parsa = { - revision = 54840; - shortdesc = "A XeLaTeX package for theses and dissertations at Iranian Universities"; - stripPrefix = 0; - sha512.run = "76edfb996d6354536b009066d4916b5864b0be1a55954a627380d4927eb05bb888d80c0259d52d367a8be58f5b20309cf65cbec0e8d4ebc6bef2b3840bf4d207"; - sha512.doc = "9cf2df697f90c46bc119f4df1816a734344066fefc54acb37a6fd2c127401a4f8ba12dafe0350d7bde90212924e40f08a500fddceaed44d735bcaf0ae9e48cb7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -parselines = { - revision = 21475; - shortdesc = "Apply a macro to each line of an environment"; - stripPrefix = 0; - sha512.run = "81d18bfa1f70157ca04383a2f6e4cf228f23d878a9e157e79ea0bbbb743090046f5058ff0731ac42f881f5cef13063fa0ff2fa9b80992b334e02dd7f2a1a33d2"; - sha512.doc = "b6dfad3ceac162f9c122c2b18fa168469cb6c4befce1c4b2c8f003507ff4b2aed30e6728bf29f04545a080efada1fd98a9c8c064f4ac1eea521fb486624e60b2"; - sha512.source = "454fd4c9032ff1075237294f346d55fdd0926c316813c3eaa487e1649db569455f89a364b9688d024567a15edfd16c397bb1ab76652b46112791874bae5db36f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -parsimatn = { - revision = 69090; - shortdesc = "Contemporary Persian font for scientific and formal writings"; - stripPrefix = 0; - sha512.run = "73bb90c41be56b880b11114110a69cc206640ad97a2193a9557447ca8c901bba3485a971e31b6888b671b938a24d8bc880b532b5638a4a726fbe7978b1417bc7"; - sha512.doc = "c2e6b53ae9e2c8c949ea843654eb9d1545907a539af43f0b6f1728d78f7b0fed3ed1f92b8650aef85c0cb34e9cc91ab9ab8e1e7e4c406f9a9bf0f02ade10c243"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.1a"; -}; -parsinevis = { - revision = 68395; - shortdesc = "\"Scheherazade New\" adapted for Persian typesetting and scientific writings"; - stripPrefix = 0; - sha512.run = "bb783a5c4d45e32cf5298d5407b3fcc98d64cb0f5c66a5f45a564acd3fc90faa6006d5d649597fb293aff746cef1be3d1304a7ec223e1fa604f7eed4fd705746"; - sha512.doc = "4509dd23bf7baeee99ced80e0b1d225dc2d616c992f44e5ed5fca7a75bd71dbb97081ca04b96477d26897f6481c929f469bc2483fb0483485406a90962ffd6a4"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.1"; -}; -parskip = { - revision = 58358; - shortdesc = "Layout with zero \parindent, non-zero \parskip"; - stripPrefix = 0; - sha512.run = "2d64232f41b2607712bc67ce77ebc987502924ebaad4f799b6ae2163862a8b833a9c1a7c8871a33b4ed9fdeb74c8368897e1b831c485ab82e084fe3ff0552af3"; - sha512.doc = "759e9e8d698f8ad77ce388ec127f158a7280586338c6e56e1f9188a9a2e8106cb482f8ebc4e252749331e65ac2a771884124b16e3ea5e9ac76005439ca85876b"; - sha512.source = "4783fdc97f269963e4d5998b2d8066a676f371f5034bf5204bc9e5935928f153dc0a4aaaeb11a403baa0631d545a18a1cc19dec4ee42314e1f33b239a9cbeeaf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0h"; -}; -pas-cours = { - revision = 55859; - shortdesc = "Macros useful in preparing teaching material"; - stripPrefix = 0; - sha512.run = "a2a96c526de2581461941553b0c47bb4b08b3a9df03ffd121d14f3ea6e8bd62227f12acb4853f04240608a805189f4d90459324801ee25def1b44c48ebc83bb1"; - sha512.doc = "7bbfff0a879ba2287e528a63815b005a2159800656078db2ea2c0460887dd15772e04b1eb8953446c86281037180d82d84172370e015d2c66dcbf23651c6a182"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -pas-crosswords = { - revision = 32313; - shortdesc = "Creating crossword grids, using TikZ"; - stripPrefix = 0; - sha512.run = "cc93ed7340380b2072ac7df4c0d343e43e1a3ae4252c42d9914edcb33232597a5c86d22cce3dc02218e6e725191f056ef9fb342e88d1a60dcadd8d011723b649"; - sha512.doc = "65baac7fa63a01c70293baa26d99d21dc999f959074a3d2668cf6661d3db059b47d2f577f8c9f5d7ac6014e601f50e547283c55541c492b3c2df4e5f01b65be5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -pas-cv = { - revision = 32263; - shortdesc = "Flexible typesetting of Curricula Vitae"; - stripPrefix = 0; - sha512.run = "4dc3203c5888aeb3c613ddc16446d7ced1dbb8ee1c0f0d983fa010eaf81d5a0a7a9364381be04e10bb15a9f258d4ae086fdbc650ab8ca627b07cc286be1ce1ec"; - sha512.doc = "93460e4435546cdb2df20e4e1fd555a726e909e411d42068b6f16f8bce2fa90144e1db95cad4cb94430f65b9614d766be00fa8c3e781a1de733b189a0b4585e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01"; -}; -pas-tableur = { - revision = 66860; - shortdesc = "Create a spreadsheet layout"; - stripPrefix = 0; - sha512.run = "3457ffc6633ecd2eddccd0070a1ea5458d5126c1a42684991229c7eb8ec7e64db31fd809623b930cf4bb39c928cea2bd6ee2eb5ade840ba9ad36cc28b8d307b7"; - sha512.doc = "495b121c5860a96603a060e925173a7d197d0d22e13ab26857de5f7453f061847620b44b95c6494dc8e1f8108e58d987cec5728507cda2b61e40173c1b6d6a95"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.05"; -}; -pascaltriangle = { - revision = 61774; - shortdesc = "Draw beautiful Pascal (Yanghui) triangles"; - stripPrefix = 0; - sha512.run = "0736284ad69dc62a9f97887f09aaf4e527438d068147319be8710c53708bf88c156964c9737548df4b2210b1e6bf5219d157e5d5baff53a510fa373684a8eda5"; - sha512.doc = "137c13f7878fcb5f3f2e7d4d47d05e8a25f7fd19f58672d7b521ba944a5eea22e90dd12418d4b056dbb1a94faaae750a9f2e06e4dfc8fcd206609f5f95e97a5f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -passivetex = { - revision = 69742; - shortdesc = "Support package for XML/SGML typesetting"; - stripPrefix = 0; - sha512.run = "2253d07d753a5c20c29c2ebb97446453d2c0912c9f26b2e3bd78676e7c3c2ee82953e188e62253c80da538546481da58602b5478b2b8ccb3a6f7554ee41d228b"; - hasRunfiles = true; - license = [ "free" ]; -}; -patch = { - revision = 42428; - shortdesc = "Patch loaded packages, etc."; - stripPrefix = 0; - sha512.run = "0ddcaa07696216f9fdea55471e1265fcaa71dd8ba2b8a50690dd519ad8b9442015502ec59b8f9f05c79f5031be3de2956cd71af58153dea8e1917f33c246fa63"; - sha512.source = "ada97aba615160b3c30c9cdccf3360f3692612bc702247ae3fa44f7821aefa2ee60c89ab79417b0ff658335768512a0d8d9b5b17df619c57d169f6487d39e5bf"; - license = [ "lppl13c" ]; -}; -patchcmd = { - revision = 41379; - shortdesc = "Change the definition of an existing command"; - stripPrefix = 0; - sha512.run = "a98085cb274c189644fa1307cf4ab5949a9eda76936fd6b74a7ba366b04d58b2a213c1a5ede53f644bdb76d44eeccd919176fb1934b8eda55489fee16f0c349b"; - sha512.doc = "3c65e6b1fe2b25efb45853deb5b3111dbfa03de7c0b154fcd86719a81bbf725e1872a6e6b5a9955e63f410ff3c05bce5de336f4ab1e612ea0d82b8d44d5fe960"; - sha512.source = "d3effea39c2dd33c9b40dd12304973d2d96457bea7b7f233f196c2ad0ca9819e57b38ab7b44e9532350b6c1cb519b184882ea924dc198dbaadf185ac177bea63"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.05"; -}; -patgen = { - revision = 66186; - shortdesc = "Generate hyphenation patterns"; - deps = [ - "kpathsea" - ]; - sha512.run = "f37ecebfd74a30b2f4fcba5db893b31e7672f2d91d2be7f003bf625512dd54be056a23165ba8b1f5ed2165595405220df20dbd711e63a3be9901424aaf1fb0de"; - sha512.doc = "c7bf5af0965cb675a82ee13c6ec467f88395438d07d59379f4850a36c783cfd6661d6fa6493e67bf39e78be615e3148cda9452003b5e9f5d5ceb1fbd305d4ee6"; - hasManpages = true; - license = [ "publicDomain" ]; - version = "2.4"; -}; -patgen.binfiles = [ - "patgen" -]; -patgen2-tutorial = { - revision = 58841; - shortdesc = "A tutorial on the use of Patgen 2"; - stripPrefix = 0; - sha512.run = "0db7759a327066df9aa738a977d664b8e150405fd2e57e5532a7f9e2cc6a9cb0c6541cb37b916f8506589ea02e36eb4ca404ec1b8ace3726ae431a6c78f86db2"; - sha512.doc = "5abe4de29113af4db20d85ed0089190f5ae82ef1573d8ffffcb9f5f03a4417dacbea5aebd0b274ea27dc54255f8ac6792c841a9bf77ee39628c8bb1dca49b084"; - license = [ "lppl13c" ]; - version = "1.1"; -}; -path = { - revision = 22045; - shortdesc = "Typeset paths, making them breakable"; - stripPrefix = 0; - sha512.run = "6a1fad600e4683476206385504ab5fb916caecc1101ac903d23042c25e055c6d4a73b85a57a3293929b1effd7d4af6db26c36ff994d76efd1c4f81073cee785a"; - sha512.doc = "e52367b81b9042af70e940aab99fa13140c31d58768ce94fb86df74ec9b52fb365168e7e325d8b2e304094e5a35fbd9fd687305062b5b606bb9e5748f143ac2f"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.05"; -}; -pauldoc = { - revision = 16005; - shortdesc = "German LaTeX package documentation"; - stripPrefix = 0; - sha512.run = "36e67d812dd0218d013808879eec1150d6029e13519b0796f061a850d2dca99b8c07a2ec2fe9c49004b0f9947db10ac8d02d47a858b8b27852744cea58779d13"; - sha512.doc = "178950b84cc4d5e1d78001aa75fd8cd5f0b3ca8e800b15fa1b65e19968a4642fc8ab2a3c2a95ab661155437790f100d48730d40a701dfba3a21981e93e35ba6d"; - sha512.source = "7b35faaaa89048952de36bb0b340dcc367610d87ab104cca82ea8e38493babab9fea26d30cf4eabe7d6bf64552cedaddc57f49c129076a1311c2e50f9a991add"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -pawpict = { - revision = 21629; - shortdesc = "Using graphics from PAW"; - stripPrefix = 0; - sha512.run = "426fe59ed20c41d3b11c87814b5f3737271d20bfb2cbc45142a36a42cb5aecc1555ea69a8ba1a1cac7bab323d8c9f23720601934f183d197b25e84d2037f057b"; - sha512.doc = "5f8fb39ccf22aea8c40e3fb5d2babd757447e089da79a9df35336c56049872f45bb04fb76ad08d8d8a8404523666841fc757e7ebbb5201a156274ec2c29958b5"; - sha512.source = "29f272c3d643ce366b3f82b3a5a913534e9b1833677540834bc48cecd946be0b5cf9d4de9e22012452a33c448589506d865db4ad589425634d80fef1562ecba4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -pax = { - revision = 63509; - shortdesc = "Extract and reinsert PDF annotations with pdfTeX"; - sha512.run = "71a2c105a7d593ca432a50a68fbcd16d876c8a28ce25be99326f323bcdba997b000158514328542378384f55a0ceadd9d34b71840980346b0b5c1c63843f7c1b"; - sha512.doc = "a2e0e7129e98efc8a44184d445118220e16f8149166c2093b7c44a936885845c0d49d37a7588f32e2c06fc834f808b0e4a1b15808a32183bf9e457a9a1c19ba7"; - sha512.source = "3920502e3ef59332129792eb87b771bac81ec3061d6cf35d77fcf785fdc88434824592b6f0d5b74041d372977e17b85d9253e7280a5ce9bc361ce56857397dd1"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "lppl13c" "gpl1Only" ]; -}; -pax.binfiles = [ - "pdfannotextractor" -]; -pb-diagram = { - revision = 15878; - shortdesc = "A commutative diagram package using LAMSTeX or Xy-pic fonts"; - stripPrefix = 0; - sha512.run = "6e2e18f93d5575e3f9db1147a9e255d2ab8a3918e25f53315f91ec395962a3c65d7321c1d162ab7510f16b25e4bdc5c8e4688e56820759baef06dcb08833a0d4"; - sha512.doc = "4b12c7f67411ed86eff674665f61b6b2e34694c937222c7adceaab453d78a6a1f23c58d3abd7ed2320ccf05c40e6b38ff2280bd498e7b71e857bd6fc86de3067"; - hasRunfiles = true; - license = [ "free" ]; - version = "5.0"; -}; -pbalance = { - revision = 67201; - shortdesc = "Balance last page in two-column mode"; - stripPrefix = 0; - sha512.run = "3b9579669a9bf79892e433eb5ad7203254fa99615398e9ec58d1438d4b57fb94a5fc0dd14867b6ac18a874af3c4faa1d072a9009086b125a18ed21de144fd40c"; - sha512.doc = "d02220c268923d141faa2a4249d50c8fc9f119e1703475f1ba979903a79df79b6ce48b70e113c0193a9b953f935446486e7d926ff52ac1eaf5f2c193638f9a87"; - sha512.source = "141d99a8fcb9ba830c6df2b74fdb00dc8aa22781c6da19785c9b6b04ad7717b8f8e04315d5f9ec7ba2939f469d6728fa845c1ba9e6da1bf3cc0a8aeac0291fa8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.0"; -}; -pbibtex-base = { - revision = 66085; - shortdesc = "Bibliography styles and miscellaneous files for pBibTeX"; - stripPrefix = 0; - sha512.run = "6be03a9f18741e16104d620effc7c0669e12ccde1aaa7d4332ada2fee95ceb1a6b30db4df41386995367b565b437174c0d4cae6e330c8181ee47095fb9bd5a5d"; - sha512.doc = "69a7e564464d8b1c31474ca37b5e9fadeb4c2d4f4d25dad5f884317b226c6b7f8f467cd1809e1330cb64fe2006f1ab397cf4f163e469a14fb8de5b778dc70c08"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -pbibtex-manual = { - revision = 66181; - shortdesc = "Documentation files for (u)pBibTeX"; - stripPrefix = 0; - sha512.run = "ca4690e0ce37561dcb877d17310f498b5b528cf6892beb075b4ed87f1a4432957c2ac56ad29f66da1452794c587f2d9343fdf7715c670ac7c3f7880f620f698e"; - sha512.doc = "152ac93c6e1bf07d90434581a8891f293527d4ff93f7d439e7e15c99d53b0cf43872c9f8a6935fe314614b9c3fe3cbe7bb3dfdbba486dc7248fffc60742f37a0"; - license = [ "bsd3" ]; -}; -pbox = { - revision = 24807; - shortdesc = "A variable-width \parbox command"; - stripPrefix = 0; - sha512.run = "cf2ea3781aac3d0b8619c46513bf9894c4b4efd8ba89eefe2e5fbe4e8f82fedd3b17f64467598080a577c65cc21713671c68763ff2600ce24fb6f6ddfae83a3e"; - sha512.doc = "1955a1cd5336a7d71483f49bbc8c65426485fd38447282262b58b4633398cda0753c5574455421b19d92d5c88c599f9c227b54a7c340a35daf233a4f48a1c276"; - sha512.source = "67cf5bae9494a81b97738ca8ed5877c009d631cb8ac681915559bc4919f536c657fe4e3ade36b8e4a0ee3b614ca4a23bde8a9cae19f3a9aca12cb2e3926160b1"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.2"; -}; -pbsheet = { - revision = 24830; - shortdesc = "Problem sheet class"; - stripPrefix = 0; - sha512.run = "4fee9d64b1988f9981a056adc10de3be6940cb2cc7e23d9bc4effa8647e27601e5b74d2c15289ed5cc96c3f42d4f2569d897be111e2dff064a4c5d40445c760c"; - sha512.doc = "d929cb815e8204268f17d9e71f53550b7647d39fd50782c1e6bb848a6a8840ef8389d2f3359bef554450179bd9a638ea80a1c7ec018c7275165622f1ba645a95"; - sha512.source = "7790c2a14e44ff68071c4b3f0017c5b83a2fcd50a110d05b55297f07b4b313ebe8d5ab3b4d071bab5b575ded1323bb26b828aabc7cd20522a4298827d1686c12"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -pdf-trans = { - revision = 32809; - shortdesc = "A set of macros for various transformations of TeX boxes"; - stripPrefix = 0; - sha512.run = "8e3d1526b0373113064e4812003b84fd78dec65ce4946ef991f09efcb6ffab8e89a9a655c8a0582e1f4452feb526c077ec9cff30b1ad7f3c59f07bc715e643e6"; - sha512.doc = "a275e35947c38b93f5ade7a812d7938d342b25460e2a29e16a1431c7fff5939826ffe0bab30aeaf504a57ded91925e85853f93611702ee6dfec713031edf9306"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.4"; -}; -pdf14 = { - revision = 17583; - shortdesc = "Restore PDF 1.4 to a TeX live 2010 format"; - stripPrefix = 0; - sha512.run = "6291a2cbe2fea33d2a948a8ce58415de875cb09df1eaeb674f2a8fd3e3eb9fd5897d73e2ff613cb71562299ac22b07566b3c8730c807928e5a12f3e572f99622"; - sha512.doc = "1b848dc73554175d33b7501fe83f1689e5181bddc6f59db00829ea39ac6aa7f91ca4f936f93a66411ebb257fd77132c6a4fd3371c8c28f0258cdcca31b8f0b38"; - sha512.source = "81e13e0e9d0b6c4c0d6a764c94c6958a437a2e2fa186532607058c09f1c3ca2a6187a778ced20e67b7d70079395be11de7e2237548b12843f4f5ff80cb82c732"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -pdfannotations = { - revision = 68958; - shortdesc = "Annotate PDF slides"; - stripPrefix = 0; - sha512.run = "22bf69647c957f3235fe1be6d90cb75e66188722e3308f80724dcccd9766a470fad09d0b6510fdf7d7e012d595726b5053ca727ca813a2771cd601f8761c97e6"; - sha512.doc = "900b6383a998afb3593c6e588220341f73d3a03ea81e3bd4f71369b889ebf722dc921da4607342f7e35fa22e62b6f11a22af1c3e8d64acfad9ebc13ff1c5e66d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -pdfarticle = { - revision = 51127; - shortdesc = "Class for pdf publications"; - stripPrefix = 0; - sha512.run = "50cabf25f9da7b9adee489fd0a01fd9e5da2115d1dd09111507143a99a605cbc7e2de5a40a0e963b68942a601b7f0b753fdaf9cc1eadcdfb1261730fff5b4875"; - sha512.doc = "d77754cf21565337f6db1b984dd3812798833f61fa263e39f9a929b25391a3b31a55df97a7f0db4fd379e4bf3855c51b61a719c30187865f67d7d37444e17de3"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -pdfbook2 = { - revision = 53521; - shortdesc = "Create booklets from PDF files"; - sha512.run = "dd87268e3856eb26b37f025ac62f24cd5e680e92e727588d36878de9df799f49254ef2259c29de15db11d5888ada83110a39aaa3116aa6f6aa290d3e64f1231f"; - sha512.doc = "3048de4be891e270e8efe9f9d85524aff948c9483da25f491669a7181967dc281f42b984c9ee46464bc563c42a4f171589066f67818a291a136e1f49d40912ef"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.4"; -}; -pdfbook2.binfiles = [ - "pdfbook2" -]; -pdfcol = { - revision = 64469; - shortdesc = "Macros for maintaining colour stacks under pdfTeX"; - stripPrefix = 0; - sha512.run = "c9d9350a68513b9c7fd1d99138cf93aad74b76ebac4e5a55de483501bc5a6ac42a366e60e15a6d7e81149355dd6ea87b968bb070e05f04848e4a167422f645c1"; - sha512.doc = "d2b5b5e1681092d024e0e0d47d3252e915cd3456b9bd27e1d2b871688ff2d805b385d864088e8a9ec665d7a0b495811b3ba6e8237363448d378072ac0c12072d"; - sha512.source = "fed939659d5d9223e184f3a47a681b298bd6d076ab807eb164082d273da35a16126bd4b0b3c647c0a40d23abfa2974bd566aaaaa4f5d7864022e2c769870be3d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -pdfcolfoot = { - revision = 65512; - shortdesc = "Separate color stack for footnotes with pdfTeX"; - stripPrefix = 0; - sha512.run = "40db84311e460e79e6627bb3692afa56abe6c0f335f054955fa4f75c11b4c2a4f65c9c77ca225e1ceb37b3dae6727f27ee4b6e27a155eb1fdf9b053693490537"; - sha512.doc = "afd7cfdef3e0290360251ff1de1fee17053229d89dc88e2275a3b94df8a9b5235ba462cb66eb741e541e8d59a9d0eece345c521c87f33fa5fa99e5d69d139ac5"; - sha512.source = "e857b9d671a5be1737ea4d3a002aa89d6155aa6e89fbd336ee77189fc61a85b8a3713a631efa8078894261748d39ad029e2ac40a91ac1b97ba4b82f6fc054b3a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -pdfcolmk = { - revision = 52912; - shortdesc = "Improved colour support under pdfTeX (legacy stub)"; - stripPrefix = 0; - sha512.run = "ddcc125c608eea472c06981c9f5a901a431da978fecaa2a5ecdd08e2f6499ad25632e4de86f7e92445a8e276403ee92bca636b80e5216e78b21ce355910ead67"; - sha512.doc = "e2bb876ad74381fb441d870422186f4cee76bb4cb5f721334b7119fe83b2ab0565ffd5300575ab52e8d25a263d87739a1e114cffed44ab3e25d8d5cff2006456"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -pdfcomment = { - revision = 49047; - shortdesc = "A user-friendly interface to pdf annotations"; - stripPrefix = 0; - sha512.run = "82e1f9e9dc35f652d1ad348c6f2e03c1472c36c113cb17080061f66777d129f55f56a29c2a94292974ed759d12727d93e1724a8b529ed0b4c8c3e53511ab1934"; - sha512.doc = "a7b6f568daa2d2c01574f56641326c1cf46c692d247fb8a8fd7485d6e804241a43691ac42923df35dac4453a23a5433fe1d7a063a88f4675a00780e89675a169"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4a"; -}; -pdfcprot = { - revision = 18735; - shortdesc = "Activating and setting of character protruding using pdfLaTeX"; - stripPrefix = 0; - sha512.run = "d046543b42966f8a566be0c89d78ca26b26d4095d99d5b16045283f0eb52a90a92122c1e87a2842d12d7ef2f865fbeaa69315a51bb922f713d33b9ef2e270fac"; - sha512.doc = "ef19fdf93050dfe35df88163453067e589307b2173481d4f3b6943411bbaabda94b472622b93485637de5c2f885f9153d5078f5d3bccafb52bb28d3e25f39ca6"; - sha512.source = "fbbfba0b35c70cc847a6ccbef17a1f506d26070d616254cd415eb6cdcf1b74c5a09baee420012fd88c11e4b4f8f45c5b7d4e2f5767e9621974a8d941a460360b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7a"; -}; -pdfcrop = { - revision = 66862; - shortdesc = "Crop PDF graphics"; - sha512.run = "d2f33ad228c2cadc78cc8f16bae747ff1aaf98094a5dbf16462bdac0957f14aa32636b3ee0e16603e7e3caacfbd0d76526502911cacab29dc0a3d85c46a36e44"; - sha512.doc = "0e3eb0d735d146c98bd9a34170afdfe73fc987b4d4a7102fa220e4d6e7bbdc185cd0d3bc219ffb7fa14c6fc1a971225ed24335e4ec9fd2ab9d3923dfb2f15137"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.42"; -}; -pdfcrop.binfiles = [ - "pdfcrop" - "rpdfcrop" -]; -pdfescape = { - revision = 53082; - shortdesc = "Implements pdfTeX's escape features using TeX or e-TeX"; - stripPrefix = 0; - sha512.run = "ca908d58a9a0c0094fcd9bad550bf493a0dbea9e90702534a7418f9a5f506f5cedd42663f154bd227349e4e57e223b6360871bdc995eaea221c07cccaa780327"; - sha512.doc = "d95aa97463b20c178a04f9f2cb71011985eb5242ec620adb9911bb5f1103f71e9fb0feca5704a9339b9490a71ed67c8c038efcf6cf43e16fcd20ba2eaeff8161"; - sha512.source = "b6edb668b4803c91288b0f149e2700213ecab7725310d7d4bf499cf557590cd4356d9c79a6bfaf17a50ce85f4951a1e996ccf6725ea6da000f0c316f5a0466d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.15"; -}; -pdfextra = { - revision = 65184; - shortdesc = "Extra PDF features for (Op)TeX"; - stripPrefix = 0; - sha512.run = "84a84fe75512fce734c9c6ad3eb2b44091ed07ab69e202b64d0d86f143166a4ab511350120b75a8f71f5c88b8d9b175fde9b5621bea23aa5017e28f0c5c2e2f5"; - sha512.doc = "644bc2b11ae5a538172eccd92e64bfa60b6fb3d5463e3fd897f46086dd84c9bf098d91565b2d88b24d5c481bfc7595f999a7b4a78c8bf74b130fe243abc9f2c4"; - hasRunfiles = true; - license = [ "free" ]; - version = "0.3"; -}; -pdfjam = { - revision = 68597; - shortdesc = "Shell scripts interfacing to pdfpages"; - sha512.run = "ce5f86bc1091795bd749d79b348d5f2e5e9e012925222552c9b9431100d1608a20356fb6379c15cfcbc76096e65b2fac6725ecaa485952a28408191db2c46652"; - sha512.doc = "c72b039c93eb3ae542351117de5d52eaec2bb7a191092ff8547947b11e9d1a6a921010d211a1366f71846121576cd6ac105d3002f95ebd3fd4aaa8106855ba5e"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Plus" ]; - version = "3.10"; -}; -pdfjam.binfiles = [ - "pdfjam" -]; -pdflatexpicscale = { - revision = 46617; - shortdesc = "Support software for downscaling graphics to be included by pdfLaTeX"; - sha512.run = "d36dcc4d70156d52bcaf668d620c8eee5db8914473f943412ea5ad5c8bde673a6715fd5a69d13e502a5d4fe0b1e0e55099432c4e0e5e02bd5f6155ca5804c3f3"; - sha512.doc = "64440f794e88c08bfeeac75d6d4174eccb800125c8d57e3b0be3ac6883c04790d422cb05cbed6be7335ab2e4d2e6bb2c8c0137c04160db126674960ddb7603e1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.32"; -}; -pdflatexpicscale.binfiles = [ - "pdflatexpicscale" -]; -pdflscape = { - revision = 64851; - shortdesc = "Make landscape pages display as landscape"; - stripPrefix = 0; - sha512.run = "13c581f774e61de70e97b40c54a59054b9ab0a9fd6e1b71d94fc5d0e072aa96661d8b72bc99c083b322df974f75b2f415a6fcd8bc23f95d2d999a03ffc0a3188"; - sha512.doc = "c59c598fa494e5a57d2ba058dd6d096edc96aa958bec7ea1240195022b670f0cfc45d15eea0d0b68b499975811505a6fe9a209c7630c74c861fc42ce3904284d"; - sha512.source = "f844e74588ae5982f1122d9826caa8a93c229d2169813a074537053e0a8387c3917b110ec1653fdddb31513124b4f6974a2e3ba4e96f714a57a03155646bf115"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13"; -}; -pdfmanagement-testphase = { - revision = 70328; - shortdesc = "LaTeX PDF management testphase bundle"; - stripPrefix = 0; - sha512.run = "3dde6bdb63f0758ccdaf62f6ad928e241afb7e7033e05c7d40ff36a2eb526ab1fdde01fddfb96a11856aa59a29272dce2740456c72fd23ce0e450f4f48195448"; - sha512.doc = "337bea25f8e865fbb70b86318bb806210e8f9e284fb0cd03d11e8998601f9e4d627d616e74f5d9bd23a171700b17e7eb4b3c8ebfb07da8e8e66c0bc72dee0d97"; - sha512.source = "4c23bb2485c3fbf18beaabe0cc219faa28400a9178703f983e81d8ec412e597b0ac48c98b1ab6e6c188cfae23ea675d2fa077740684181d812e082228cff14dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.96f"; -}; -pdfmarginpar = { - revision = 23492; - shortdesc = "Generate marginpar-equivalent PDF annotations"; - stripPrefix = 0; - sha512.run = "1cfb39ec9982fce753e3c0040123fc0faf39d94a41cac95dd0d189f2f5dd21f0a03c2f7e26de999097905b2bb32ec8d73e6dfa808c8ed2a49610da436639767c"; - sha512.doc = "24f2fe0616b0e6872da321bc7878f423df54057c9ed7b62eac4e3de36df4ba9a5f0c4481392902130038c8f2da098d2fc48be34056a03d6e764a01b66c2649db"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.92"; -}; -pdfmsym = { - revision = 66618; - shortdesc = "PDF Math Symbols -- various drawn mathematical symbols"; - stripPrefix = 0; - sha512.run = "f424a0fcaaf484f919b1e6646c63eff6550711e23cf938886b9cdbcef8719defd1d23efe949916cdf27dda54a87a8eb5448d4c9e8234ffc043dd295937ea5365"; - sha512.doc = "a40e39c7ce6e5d93339aeb6a1ffbb23dbecd11656b6c698362157c0fb46477dc4506d6b40269b3e9f10cf8fc0b2c982049d4e732b92c0a3401a0a40614b631e7"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.1"; -}; -pdfoverlay = { - revision = 64210; - shortdesc = "A LaTeX style for overlaying text on a PDF"; - stripPrefix = 0; - sha512.run = "e167d180f13a5d15684072f2b9df8521e5c2dd89ee1eb6d515d6a73452508c083ab3b188fa856b571a0d41c0d490b65705631c236e677b4c58bcb0505c310cc2"; - sha512.doc = "c77f221b34d01653995bb15ea7c05c13089d99a5d213b4f991fd09ef96dd8ac9a12e9b58f39b8216b1421d84204ffff8413694f4cbfe571a7225930a7c3b244e"; - sha512.source = "4b4b18a150e6de4d4e40daacb06faffe0b838dafe619ccc065f88777cda32b765939bc38d9e72fcd7ab9be49063e26c42b6590a9a5905d541e3fb3c1e1bea8b8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -pdfpagediff = { - revision = 37946; - shortdesc = "Find difference between two PDF's"; - stripPrefix = 0; - sha512.run = "ce28e8160b14d0833b57445392237dceab536108a9d96942dcc0adf5305c149ba08269d697ab8508d8ba05dbc59dd972dd242cf7c4cd12e3d3e857eb885e5277"; - sha512.doc = "dbdfc61b7f7bcafa597e439085f9624a48b734b2adbf53dd58ba6186b3597180b7ad3fc757acbd07c6466276a9e865bc154245e84d28b1e291004cdde64f55ea"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.4"; -}; -pdfpages = { - revision = 69524; - shortdesc = "Include PDF documents in LaTeX"; - stripPrefix = 0; - deps = [ - "eso-pic" - "graphics" - "oberdiek" - "tools" - ]; - sha512.run = "09586903b55b92d16ee3e3cd205ff8e9a3b7ec07f4261019a340a1c128a9370ece443de314c8922ea5ff8822c9297132e399be2f7ef95949bc7f218535980a7e"; - sha512.doc = "c1620dcd50cd5b8735645fd001eb2c09d13f1f2edb73d4aee14c55e63c2a10b278be6b71c2bba0c5b4999539dbb74ab3f67f718a192a1fcb6f2a51c93e5b16df"; - sha512.source = "6c3c6c357eda878895f9bfb49040394c52a764db8297fd3a90087dda851eaa1375b93276917bb8e010575d24939a51b23d5e3acb695e4f1ef540be6759dac31b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5y"; -}; -pdfpc = { - revision = 68610; - shortdesc = "Define data for the pdfpc presentation viewer"; - stripPrefix = 0; - sha512.run = "f94232b95cefe880b963755f18d71e4d4c00eec6a095a3ada786bba4036c8ac1bbf92377fdc64d6a4fa1fd8a3eb2f308a5edd451646f8d552dc1c29f7e93dbeb"; - sha512.doc = "762933c4c5864e8f94a0719f4c26e5b1e576e11353553875df690fe9f2546c08dcd2f35e7ae46fda6960781fa2223d874acfb5c0c8f6a7f1732e2ca227001f46"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.7.1"; -}; -pdfpc-movie = { - revision = 67201; - shortdesc = "Pdfpc viewer-compatible hyperlinks to movies"; - stripPrefix = 0; - sha512.run = "55d8f438a458048893cf6cdb56969b84c5e0d195346a0d79f4e097a6ea336623133c42efedd1416e294d474f44bd01c9fd5efa6e38d44fc49194fc5de9a965bd"; - sha512.doc = "96eb1120fadb2fa47cea38fb9fac189d8e142f9fdfaca5f6c46b5b0fabf603f7fbfa013715d589b25ef928bd69ffd273afcfd5d1fa0d8a30f2f8dc6c50c20cd9"; - sha512.source = "891864cdee43d1c4da7ab9cefd3ba751ec7f574811ea09f680fc704475fada67c3b2fef727abc254b83269bb169f8d8f2269e5d938b9ffebe624cf9c31e5cf93"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pdfprivacy = { - revision = 45985; - shortdesc = "A LaTeX package to remove or suppress pdf meta-data"; - stripPrefix = 0; - sha512.run = "8ec360bcfa5056b240091f1b2b5e6562656b15379bcf74b161899ddce41cb70d08cfdfb73b9497efd48e192fde11bfb4ffc59ed99059e1b6f6619e34b7f39bcd"; - sha512.doc = "81e2d8a0e5f5889efbf96eae5e879378fd0b4cdfa9db66283e34836b767d27d216e35822f9225eadd8816e46c503443055dc822f221b35134ecf95fa2e0d22ab"; - sha512.source = "7c31f0fc5836adffb8bb9417fa90c5acdd1cfab2f653d79c00cf5c4552435ecbf915cdc53ff4cbed796013c0c737c25fe779e9410ccf646090d5071139df5069"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pdfrender = { - revision = 69058; - shortdesc = "Control rendering parameters"; - stripPrefix = 0; - sha512.run = "507450ada31750d833e46a74ab38570bab964c4d36224482d0aa14b2f846a10c34c21735cbf7c4a8bd7f6c10dab5932830ceeef8198b98f72a716aed27a0714f"; - sha512.doc = "447336df8ed6b0f026e9b99a5a45481fb04da0dfe009e091727d99ef536c5e073ca90bb9e4268104146908f5bd6588dbb8d294cceb0acb3f46763e0f835b6803"; - sha512.source = "83e6d5dcb7aabd6bc3e84d273687b91326209dd78b8c91acb256e5c42566a4e441e526de9b64fd8d5310a6f393ee7e66c6f561f87721959fe2cc9e41aca02fc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -pdfreview = { - revision = 50100; - shortdesc = "Annotate PDF files with margin notes"; - stripPrefix = 0; - sha512.run = "1cb41c081230f601eb627d81118a3832597e97c2e0565f48f584e8f4b6d039ce903cdca54fea4591a5c9707d5145ff45470858dd2e39d3b18a2e964cb380301f"; - sha512.doc = "72f7a2083c7bfae24d3a4cae397925f9d02555587c59cfea8d78b8fcc0de5db24367968fd27799f4148865ca7c2a4c2dacd11269d1d71c36f039fdc913a532e2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pdfscreen = { - revision = 42428; - shortdesc = "Support screen-based document design"; - stripPrefix = 0; - sha512.run = "e8a3fecc3aedfb87156c1dfeff4673650a8dfd31109e3d76e7f51dd99b1610aee086a2fd183d48cfe1403dadbc6a8ba84fcfab5ea832b43b8a5128bd07612112"; - sha512.doc = "8f4b1f6876b0adfcefb4a9b1ea5f9c8ffae0fb4ffc245fd75f631b172dc592dc82ffaf68b37e9c1907db5275f317b444966a466ab6c8e7b20b80535842230794"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -pdfslide = { - revision = 15878; - shortdesc = "Presentation slides using pdfTeX"; - stripPrefix = 0; - sha512.run = "bdb1d91b587375a0d72e317e4a762b9cef984dfa36d94fd7bd13a3e22941f0f1f4c981138b805613f7a62f4d09c7c781fa9e4e5d4b5019a749a8f8a700bf5540"; - sha512.doc = "92008d1e461e5309649ec5160b7dd3796455f04e923f4e5c8593a3a4cc76f704639206c48a4af13bfa9fa3fd735b03ad419f07d1222a45d093a6824aafcb8df1"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pdfsync = { - revision = 20373; - shortdesc = "Provide links between source and PDF"; - stripPrefix = 0; - sha512.run = "0a7f183fd83f52016d499f8aefface745fee8351bafb4abb467166553d742f91ead7377fc3ce8111bc57253431aedf70f4b540975a1c139017f7d02ccebb6ca4"; - sha512.doc = "7e103ba84fd41acbed007f4acceb0188372a4984977a3fbee3bf4484612c6e0621a934709982407bd1d59a69167c1d2f5ebd4b94f73bc502baa8a4830fe3f983"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pdftex = { - revision = 66243; - shortdesc = "A TeX extension for direct creation of PDF"; - deps = [ - "cm" - "dehyph" + pdfescape = { + revision = 53082; + shortdesc = "Implements pdfTeX's escape features using TeX or e-TeX"; + stripPrefix = 0; + sha512.run = "ca908d58a9a0c0094fcd9bad550bf493a0dbea9e90702534a7418f9a5f506f5cedd42663f154bd227349e4e57e223b6360871bdc995eaea221c07cccaa780327"; + sha512.doc = "d95aa97463b20c178a04f9f2cb71011985eb5242ec620adb9911bb5f1103f71e9fb0feca5704a9339b9490a71ed67c8c038efcf6cf43e16fcd20ba2eaeff8161"; + sha512.source = "b6edb668b4803c91288b0f149e2700213ecab7725310d7d4bf499cf557590cd4356d9c79a6bfaf17a50ce85f4951a1e996ccf6725ea6da000f0c316f5a0466d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.15"; + }; + pdfextra = { + revision = 65184; + shortdesc = "Extra PDF features for (Op)TeX"; + stripPrefix = 0; + sha512.run = "84a84fe75512fce734c9c6ad3eb2b44091ed07ab69e202b64d0d86f143166a4ab511350120b75a8f71f5c88b8d9b175fde9b5621bea23aa5017e28f0c5c2e2f5"; + sha512.doc = "644bc2b11ae5a538172eccd92e64bfa60b6fb3d5463e3fd897f46086dd84c9bf098d91565b2d88b24d5c481bfc7595f999a7b4a78c8bf74b130fe243abc9f2c4"; + hasRunfiles = true; + license = [ "free" ]; + version = "0.3"; + }; + pdfjam = { + revision = 68597; + shortdesc = "Shell scripts interfacing to pdfpages"; + sha512.run = "ce5f86bc1091795bd749d79b348d5f2e5e9e012925222552c9b9431100d1608a20356fb6379c15cfcbc76096e65b2fac6725ecaa485952a28408191db2c46652"; + sha512.doc = "c72b039c93eb3ae542351117de5d52eaec2bb7a191092ff8547947b11e9d1a6a921010d211a1366f71846121576cd6ac105d3002f95ebd3fd4aaa8106855ba5e"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Plus" ]; + version = "3.10"; + }; + pdfjam.binfiles = [ "pdfjam" ]; + pdflatexpicscale = { + revision = 46617; + shortdesc = "Support software for downscaling graphics to be included by pdfLaTeX"; + sha512.run = "d36dcc4d70156d52bcaf668d620c8eee5db8914473f943412ea5ad5c8bde673a6715fd5a69d13e502a5d4fe0b1e0e55099432c4e0e5e02bd5f6155ca5804c3f3"; + sha512.doc = "64440f794e88c08bfeeac75d6d4174eccb800125c8d57e3b0be3ac6883c04790d422cb05cbed6be7335ab2e4d2e6bb2c8c0137c04160db126674960ddb7603e1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.32"; + }; + pdflatexpicscale.binfiles = [ "pdflatexpicscale" ]; + pdflscape = { + revision = 64851; + shortdesc = "Make landscape pages display as landscape"; + stripPrefix = 0; + sha512.run = "13c581f774e61de70e97b40c54a59054b9ab0a9fd6e1b71d94fc5d0e072aa96661d8b72bc99c083b322df974f75b2f415a6fcd8bc23f95d2d999a03ffc0a3188"; + sha512.doc = "c59c598fa494e5a57d2ba058dd6d096edc96aa958bec7ea1240195022b670f0cfc45d15eea0d0b68b499975811505a6fe9a209c7630c74c861fc42ce3904284d"; + sha512.source = "f844e74588ae5982f1122d9826caa8a93c229d2169813a074537053e0a8387c3917b110ec1653fdddb31513124b4f6974a2e3ba4e96f714a57a03155646bf115"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13"; + }; + pdfmanagement-testphase = { + revision = 70328; + shortdesc = "LaTeX PDF management testphase bundle"; + stripPrefix = 0; + sha512.run = "3dde6bdb63f0758ccdaf62f6ad928e241afb7e7033e05c7d40ff36a2eb526ab1fdde01fddfb96a11856aa59a29272dce2740456c72fd23ce0e450f4f48195448"; + sha512.doc = "337bea25f8e865fbb70b86318bb806210e8f9e284fb0cd03d11e8998601f9e4d627d616e74f5d9bd23a171700b17e7eb4b3c8ebfb07da8e8e66c0bc72dee0d97"; + sha512.source = "4c23bb2485c3fbf18beaabe0cc219faa28400a9178703f983e81d8ec412e597b0ac48c98b1ab6e6c188cfae23ea675d2fa077740684181d812e082228cff14dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.96f"; + }; + pdfmarginpar = { + revision = 23492; + shortdesc = "Generate marginpar-equivalent PDF annotations"; + stripPrefix = 0; + sha512.run = "1cfb39ec9982fce753e3c0040123fc0faf39d94a41cac95dd0d189f2f5dd21f0a03c2f7e26de999097905b2bb32ec8d73e6dfa808c8ed2a49610da436639767c"; + sha512.doc = "24f2fe0616b0e6872da321bc7878f423df54057c9ed7b62eac4e3de36df4ba9a5f0c4481392902130038c8f2da098d2fc48be34056a03d6e764a01b66c2649db"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.92"; + }; + pdfmsym = { + revision = 66618; + shortdesc = "PDF Math Symbols -- various drawn mathematical symbols"; + stripPrefix = 0; + sha512.run = "f424a0fcaaf484f919b1e6646c63eff6550711e23cf938886b9cdbcef8719defd1d23efe949916cdf27dda54a87a8eb5448d4c9e8234ffc043dd295937ea5365"; + sha512.doc = "a40e39c7ce6e5d93339aeb6a1ffbb23dbecd11656b6c698362157c0fb46477dc4506d6b40269b3e9f10cf8fc0b2c982049d4e732b92c0a3401a0a40614b631e7"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.1"; + }; + pdfoverlay = { + revision = 64210; + shortdesc = "A LaTeX style for overlaying text on a PDF"; + stripPrefix = 0; + sha512.run = "e167d180f13a5d15684072f2b9df8521e5c2dd89ee1eb6d515d6a73452508c083ab3b188fa856b571a0d41c0d490b65705631c236e677b4c58bcb0505c310cc2"; + sha512.doc = "c77f221b34d01653995bb15ea7c05c13089d99a5d213b4f991fd09ef96dd8ac9a12e9b58f39b8216b1421d84204ffff8413694f4cbfe571a7225930a7c3b244e"; + sha512.source = "4b4b18a150e6de4d4e40daacb06faffe0b838dafe619ccc065f88777cda32b765939bc38d9e72fcd7ab9be49063e26c42b6590a9a5905d541e3fb3c1e1bea8b8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + pdfpagediff = { + revision = 37946; + shortdesc = "Find difference between two PDF's"; + stripPrefix = 0; + sha512.run = "ce28e8160b14d0833b57445392237dceab536108a9d96942dcc0adf5305c149ba08269d697ab8508d8ba05dbc59dd972dd242cf7c4cd12e3d3e857eb885e5277"; + sha512.doc = "dbdfc61b7f7bcafa597e439085f9624a48b734b2adbf53dd58ba6186b3597180b7ad3fc757acbd07c6466276a9e865bc154245e84d28b1e291004cdde64f55ea"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.4"; + }; + pdfpages = { + revision = 69524; + shortdesc = "Include PDF documents in LaTeX"; + stripPrefix = 0; + deps = [ + "eso-pic" + "graphics" + "oberdiek" + "tools" + ]; + sha512.run = "09586903b55b92d16ee3e3cd205ff8e9a3b7ec07f4261019a340a1c128a9370ece443de314c8922ea5ff8822c9297132e399be2f7ef95949bc7f218535980a7e"; + sha512.doc = "c1620dcd50cd5b8735645fd001eb2c09d13f1f2edb73d4aee14c55e63c2a10b278be6b71c2bba0c5b4999539dbb74ab3f67f718a192a1fcb6f2a51c93e5b16df"; + sha512.source = "6c3c6c357eda878895f9bfb49040394c52a764db8297fd3a90087dda851eaa1375b93276917bb8e010575d24939a51b23d5e3acb695e4f1ef540be6759dac31b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5y"; + }; + pdfpc = { + revision = 68610; + shortdesc = "Define data for the pdfpc presentation viewer"; + stripPrefix = 0; + sha512.run = "f94232b95cefe880b963755f18d71e4d4c00eec6a095a3ada786bba4036c8ac1bbf92377fdc64d6a4fa1fd8a3eb2f308a5edd451646f8d552dc1c29f7e93dbeb"; + sha512.doc = "762933c4c5864e8f94a0719f4c26e5b1e576e11353553875df690fe9f2546c08dcd2f35e7ae46fda6960781fa2223d874acfb5c0c8f6a7f1732e2ca227001f46"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.7.1"; + }; + pdfpc-movie = { + revision = 67201; + shortdesc = "Pdfpc viewer-compatible hyperlinks to movies"; + stripPrefix = 0; + sha512.run = "55d8f438a458048893cf6cdb56969b84c5e0d195346a0d79f4e097a6ea336623133c42efedd1416e294d474f44bd01c9fd5efa6e38d44fc49194fc5de9a965bd"; + sha512.doc = "96eb1120fadb2fa47cea38fb9fac189d8e142f9fdfaca5f6c46b5b0fabf603f7fbfa013715d589b25ef928bd69ffd273afcfd5d1fa0d8a30f2f8dc6c50c20cd9"; + sha512.source = "891864cdee43d1c4da7ab9cefd3ba751ec7f574811ea09f680fc704475fada67c3b2fef727abc254b83269bb169f8d8f2269e5d938b9ffebe624cf9c31e5cf93"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pdfprivacy = { + revision = 45985; + shortdesc = "A LaTeX package to remove or suppress pdf meta-data"; + stripPrefix = 0; + sha512.run = "8ec360bcfa5056b240091f1b2b5e6562656b15379bcf74b161899ddce41cb70d08cfdfb73b9497efd48e192fde11bfb4ffc59ed99059e1b6f6619e34b7f39bcd"; + sha512.doc = "81e2d8a0e5f5889efbf96eae5e879378fd0b4cdfa9db66283e34836b767d27d216e35822f9225eadd8816e46c503443055dc822f221b35134ecf95fa2e0d22ab"; + sha512.source = "7c31f0fc5836adffb8bb9417fa90c5acdd1cfab2f653d79c00cf5c4552435ecbf915cdc53ff4cbed796013c0c737c25fe779e9410ccf646090d5071139df5069"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pdfrender = { + revision = 69058; + shortdesc = "Control rendering parameters"; + stripPrefix = 0; + sha512.run = "507450ada31750d833e46a74ab38570bab964c4d36224482d0aa14b2f846a10c34c21735cbf7c4a8bd7f6c10dab5932830ceeef8198b98f72a716aed27a0714f"; + sha512.doc = "447336df8ed6b0f026e9b99a5a45481fb04da0dfe009e091727d99ef536c5e073ca90bb9e4268104146908f5bd6588dbb8d294cceb0acb3f46763e0f835b6803"; + sha512.source = "83e6d5dcb7aabd6bc3e84d273687b91326209dd78b8c91acb256e5c42566a4e441e526de9b64fd8d5310a6f393ee7e66c6f561f87721959fe2cc9e41aca02fc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + pdfreview = { + revision = 50100; + shortdesc = "Annotate PDF files with margin notes"; + stripPrefix = 0; + sha512.run = "1cb41c081230f601eb627d81118a3832597e97c2e0565f48f584e8f4b6d039ce903cdca54fea4591a5c9707d5145ff45470858dd2e39d3b18a2e964cb380301f"; + sha512.doc = "72f7a2083c7bfae24d3a4cae397925f9d02555587c59cfea8d78b8fcc0de5db24367968fd27799f4148865ca7c2a4c2dacd11269d1d71c36f039fdc913a532e2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pdfscreen = { + revision = 42428; + shortdesc = "Support screen-based document design"; + stripPrefix = 0; + sha512.run = "e8a3fecc3aedfb87156c1dfeff4673650a8dfd31109e3d76e7f51dd99b1610aee086a2fd183d48cfe1403dadbc6a8ba84fcfab5ea832b43b8a5128bd07612112"; + sha512.doc = "8f4b1f6876b0adfcefb4a9b1ea5f9c8ffae0fb4ffc245fd75f631b172dc592dc82ffaf68b37e9c1907db5275f317b444966a466ab6c8e7b20b80535842230794"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + pdfslide = { + revision = 15878; + shortdesc = "Presentation slides using pdfTeX"; + stripPrefix = 0; + sha512.run = "bdb1d91b587375a0d72e317e4a762b9cef984dfa36d94fd7bd13a3e22941f0f1f4c981138b805613f7a62f4d09c7c781fa9e4e5d4b5019a749a8f8a700bf5540"; + sha512.doc = "92008d1e461e5309649ec5160b7dd3796455f04e923f4e5c8593a3a4cc76f704639206c48a4af13bfa9fa3fd735b03ad419f07d1222a45d093a6824aafcb8df1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pdfsync = { + revision = 20373; + shortdesc = "Provide links between source and PDF"; + stripPrefix = 0; + sha512.run = "0a7f183fd83f52016d499f8aefface745fee8351bafb4abb467166553d742f91ead7377fc3ce8111bc57253431aedf70f4b540975a1c139017f7d02ccebb6ca4"; + sha512.doc = "7e103ba84fd41acbed007f4acceb0188372a4984977a3fbee3bf4484612c6e0621a934709982407bd1d59a69167c1d2f5ebd4b94f73bc502baa8a4830fe3f983"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pdftex = { + revision = 66243; + shortdesc = "A TeX extension for direct creation of PDF"; + deps = [ + "cm" + "dehyph" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "kpathsea" + "plain" + "tex-ini-files" + ]; + formats = [ + { + name = "etex"; + engine = "pdftex"; + patterns = [ "language.def" ]; + options = "-translate-file=cp227.tcx *etex.ini"; + fmttriggers = [ + "cm" + "dehyph" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + { + name = "pdfetex"; + engine = "pdftex"; + patterns = [ "language.def" ]; + options = "-translate-file=cp227.tcx *pdfetex.ini"; + fmttriggers = [ + "cm" + "dehyph" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + ]; + } + { + name = "pdftex"; + engine = "pdftex"; + patterns = [ "language.def" ]; + options = "-translate-file=cp227.tcx *pdfetex.ini"; + fmttriggers = [ + "cm" + "dehyph" + "etex" + "hyph-utf8" + "hyphen-base" + "knuth-lib" + "plain" + "tex-ini-files" + ]; + } + ]; + fontMaps = [ "Map dummy-space.map" ]; + sha512.run = "c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e"; + sha512.doc = "d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + pdftex-quiet = { + revision = 49169; + shortdesc = "A bash wrapper for pdfTeX limiting its output to relevant errors"; + sha512.run = "7b33e37a4b33060abee48ccf825cacecdee552d641da48dae47e3615fa0ab91ea9912b52fbd5c5ba6cdaa9c0d2cc7baa7c48a80bebb6d1887e5c633dacb4d104"; + sha512.doc = "e13392cfefaed2c154c086ffcf85e21725e4230ce78d10e07dcb0a1c8b3685bef2572c5f5e249c56120320f2b0167cd5055ade50625a296446a197c0ba4b85cc"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1.0"; + }; + pdftex-quiet.binfiles = [ "pdftex-quiet" ]; + pdftex.binfiles = [ "etex" - "hyph-utf8" - "hyphen-base" - "knuth-lib" - "kpathsea" - "plain" - "tex-ini-files" - ]; - formats = [ - { - name = "etex"; - engine = "pdftex"; - patterns = [ "language.def" ]; - options = "-translate-file=cp227.tcx *etex.ini"; - fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" ]; - } - { - name = "pdfetex"; - engine = "pdftex"; - patterns = [ "language.def" ]; - options = "-translate-file=cp227.tcx *pdfetex.ini"; - fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" ]; - } - { - name = "pdftex"; - engine = "pdftex"; - patterns = [ "language.def" ]; - options = "-translate-file=cp227.tcx *pdfetex.ini"; - fmttriggers = [ "cm" "dehyph" "etex" "hyph-utf8" "hyphen-base" "knuth-lib" "plain" "tex-ini-files" ]; - } - ]; - fontMaps = [ - "Map dummy-space.map" - ]; - sha512.run = "c0158cb19918ea2bba57cc68e32af1d2c4ef50ba45bf05e0c8b7e64057daee19843ff77633e4dd0ad660df39983c46f755c691f85d4aa2000086c02d48498d0e"; - sha512.doc = "d059f01596573efacc4ca80333b07236f860375f49b82d0cd3ab6b3f441f379163a37c820e713a2d96a8f69b821b3dbd68f360c5b5f005dccac54575df4b5d4e"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -pdftex-quiet = { - revision = 49169; - shortdesc = "A bash wrapper for pdfTeX limiting its output to relevant errors"; - sha512.run = "7b33e37a4b33060abee48ccf825cacecdee552d641da48dae47e3615fa0ab91ea9912b52fbd5c5ba6cdaa9c0d2cc7baa7c48a80bebb6d1887e5c633dacb4d104"; - sha512.doc = "e13392cfefaed2c154c086ffcf85e21725e4230ce78d10e07dcb0a1c8b3685bef2572c5f5e249c56120320f2b0167cd5055ade50625a296446a197c0ba4b85cc"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1.0"; -}; -pdftex-quiet.binfiles = [ - "pdftex-quiet" -]; -pdftex.binfiles = [ - "etex" - "pdfetex" - "pdftex" - "simpdftex" -]; -pdftexcmds = { - revision = 55777; - shortdesc = "LuaTeX support for pdfTeX utility functions"; - stripPrefix = 0; - sha512.run = "91054b61b76382813d80e873d908cc07f8571b7651f49a3dc3e87063507af43bf31107c34187b703b0c4462eafe0cd605159803c72cbf2821cf6ab3afb78fc6d"; - sha512.doc = "a16db56366e80b1694b78919a245336c37690ea9a1305a606a3bfa85a73c854e92d1cd8b9ddb0bdfdea82f1ef684d06d8b4649e4111c39f24f321dbcb01aa036"; - sha512.source = "f3e62a5f9029f71c652105b137048cef4f5562dd0848bb7a94d251e2af579c394322a70f40aadbed3ac56312005d59124ef3fd5a2436127a72c430d344ecede1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.33"; -}; -pdftosrc = { - revision = 66186; - shortdesc = "Extract source file or stream from PDF file"; - sha512.run = "8cb175ce464b0ec0bf74c39ddcf381daf9e27635098e775d929f5cdc60858d39cdbac1a4302446f9368a274ce4c3afda9636d882ef4097d2272d22e190d8d272"; - sha512.doc = "01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e"; - hasManpages = true; -}; -pdftosrc.binfiles = [ - "pdftosrc" -]; -pdftricks = { - revision = 15878; - shortdesc = "Support for PSTricks in pdfTeX"; - stripPrefix = 0; - sha512.run = "f7c0a71e44d0d388ab952ff820e5af63fe0f94acb2feb3415a2d1b3cffd94efc7e8bd17efbb7b608d082ab1b7d7ba1b780c63088df54a8db241c9b3d133eab1e"; - sha512.doc = "0e3ec1f3b7d7c9bda1e08060f0ee0615244863e513a25370b598f22bef00e6ece79592a105eb13cc913c169b1994c8a38fd60be0566e1c52e1ce2f97dc1e5995"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.16"; -}; -pdftricks2 = { - revision = 31016; - shortdesc = "Use PSTricks in pdfTeX"; - stripPrefix = 0; - sha512.run = "e50406cd680e1d5cfabcfd8000b743fde61dcff7e3c686b06f58fd1fd36e414d53140b5d244ef65931aeec67dbf458e5e2d43266f26ee9de301babbc0f88853d"; - sha512.doc = "4a22c280a28e4a45f068d52f4d75f19b5ccfec30609d7c8d143cccc67d16fc04cd1ae63e7d6a5a659a0805ed85d96d57ff5fba4b246f67029457088e7696ad23"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.01"; -}; -pdfwin = { - revision = 68667; - shortdesc = "customizable windows for screen viewing of TeX documents"; - stripPrefix = 0; - sha512.run = "1064e81793884565568f6bde33072dc007c9b9a07c010be602111ea4429ccb803c18a3af13c85bc1367279624266063756bc59c72e6190e70090eadc8857b8b1"; - sha512.doc = "5055cfb0e2cf0e1cc105a43fb82c05e133863cd22278792de5aa931afd84afe7cc3b35566a399dba97645da4495d16e47d723155991ecf1bb3e13a892f230787"; - hasRunfiles = true; -}; -pdfx = { - revision = 50338; - shortdesc = "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"; - stripPrefix = 0; - sha512.run = "c1e1be225efd5bd66873663ccb134521b40253875248096a66a8499609e62e481fa64e563afd75952b2dc0041fa1fce594f4047c3c91fe6b9443493ce8899ae7"; - sha512.doc = "22b7e52295ab8da136e584f545001d0db480cefb06b7d595133ff3508c9ee3e7b7d8c8a93c41ebf24a9e313b4e40fdf355a88ef0a65b629c3b27f5f4bcec906a"; - sha512.source = "31c9d2e7fb89f9405f26a18dce6a5066958867ca03ee793e46f9676022ecda77074eef23fb4a238af5b077d642107c372e268ce5b4e7c0358d7ca8c0ed6daddb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6.3"; -}; -pdfxup = { - revision = 59001; - shortdesc = "Create n-up PDF pages with minimal margins"; - sha512.run = "f5b7623c1ecd132bb3646af5953245bc7378901bd5ded2e910487770cd79bb3d248cad426aafd18dd12a28bdd46be0f89b81dc95959f06688fb6a7a8f96dd11b"; - sha512.doc = "23db38fd8ebbd04bf6fed3b2814360cb6d0b736db1540d0298e9ab6edd449894c420078adae11d97998fa1fceb8e7083adacc0048337afbf4b6fbb253c8ed21f"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.10"; -}; -pdfxup.binfiles = [ - "pdfxup" -]; -pecha = { - revision = 15878; - shortdesc = "Print Tibetan text in the classic pecha layout style"; - stripPrefix = 0; - sha512.run = "12092c82c52e34259fb0894b8375c45fd94b9aead121085736a0f7bac90b7e156906a22d233c596c79880aa0b858f7213f37b2059cecbb4627ce2e4163f22335"; - sha512.doc = "3d0d9184aa0009ab67f299a87b3840513229a93ec08e33208fc7b3c1a69fe043b02844ccf7569d14c5d5cdf0546224b320970caa080458c92cc299853b021c98"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.1"; -}; -pedigree-perl = { - revision = 64227; - shortdesc = "Generate TeX pedigree files from CSV files"; - sha512.run = "4aca97c3d231e3c68a8372d6d8c970aa681fef3d1b7061fbea1648a188c03e06221bf83d2ed0678390780e9a3c2edfe425ea0050172e837ef1a1a62369c41909"; - sha512.doc = "b0b251fcf40185b017835a7a47e32736ce0d49c56be134bf93619dffedae4ecf44d36050e4515fa681c8c37707a933d8faece2943b4eddb58dab6ba3a2df113d"; - hasManpages = true; - sha512.source = "febf928301eddf00aa84ede679712a3e58520368f7ecd488e9d696b82dc6ed5afc403d88b344071b4291391528a4552620c4882ba2d2e6ee518fc3a8733a2f41"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.1"; -}; -pedigree-perl.binfiles = [ - "pedigree" -]; -penlight = { - revision = 67716; - shortdesc = "Penlight Lua libraries made available to LuaLaTeX users"; - stripPrefix = 0; - sha512.run = "7765a7beaf9d2f99f383c6723fb7ddf3968f656a433bd519631b539e7c599e4ea26546585c1be6732a42e1632fc11b980ee9316de6cfb765332790f81d548aff"; - sha512.doc = "30307bc7774c3768227da33c31c6296e8d470f1f835f792248ed4ff40e261ea682fd967987396808fcd36e7e0a74c3da2bb947de7eab7af5783e3790857b081e"; - hasRunfiles = true; - license = [ "mit" ]; -}; -penlightplus = { - revision = 70319; - shortdesc = "Additions to the Penlight Lua libraries"; - stripPrefix = 0; - sha512.run = "97de3ce726fc5469bf1230edba37728a332e91dae33a9498b4e32c474694866e95abfe9156dee1e4c4a7b4f9b07922741c87519ab892c01f037db04a92150238"; - sha512.doc = "e35a2d252d8377efd170d9b42ac233af921b34b2a9a91248ed7640d9b79809debaca54451251fe5cc1394df73f0ef476c72f614ae5aefba5db319d7f38aae7b9"; - hasRunfiles = true; - license = [ "mit" ]; -}; -perception = { - revision = 48861; - shortdesc = "BibTeX style for the journal Perception"; - stripPrefix = 0; - sha512.run = "669bf4b618c4120d6cd7b574352c38d0fb3ab7bd949e26ea239f4ceb0fccbe102dcc6644ad2cee9eb79385f590918a12bb2c065f80b54e8343223056df448060"; - sha512.doc = "35428e19d9e2429691948331ef574168a3eb5dd3e09f4286c66003ced8c0a65da9853de4dd57a1920e2f2315b8543f9ec9e096bbd26123554455dd8c23b33f55"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -perfectcut = { - revision = 67201; - shortdesc = "Nested delimiters that consistently grow regardless of the contents"; - stripPrefix = 0; - sha512.run = "5c3963a08f1041e78f871084531187214f3735b15409cbdcb4491046feba1fbe44887b23f450d40eb3a697a49e0ecace584b96cb10a7f959e28afc642259b5e2"; - sha512.doc = "4a978f726c8b5a69006f293b8428978a1a6185df27f2d26a0be06309fc55ec3b8cd6117cbb4ee732f6c2d0ddcfe8ad66d86f7f838ee2e386931e41c0ab043e2c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -perltex = { - revision = 52162; - shortdesc = "Define LaTeX macros in terms of Perl code"; - sha512.run = "af7cd6b065f2405a514d20cb386b34399742a42286002ab3e0f795b64dcb434ae97470ce9cbf25cb27a9b124ebe56844b47c7cf89e1f83a4bd35f1bfcc98163a"; - sha512.doc = "d39c93f4bf3da08266bb0f10b06582db2bf96bee73faafdb191af3770c7c24abde407774f21d3c97b1f2453a8a9bd24576acaf0606796d7439334b8b1e42ac7d"; - hasManpages = true; - sha512.source = "99a8e27c23a7056496c56e734fefa1e921a002d7b86c153b3a209f7c3d7c415dac05e77b0ce5bc8685bd622243d6ed53be4a7f570a3ed487c3d55baa5b5af06e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -perltex.binfiles = [ - "perltex" -]; -permute = { - revision = 15878; - shortdesc = "Support for symmetric groups"; - stripPrefix = 0; - sha512.run = "2b1ea22ff45718a12f5a031a60a2780a43b324afb3a7c4b3bf2e1a9808f5eb789938f0e084214912a50dc1a8ebe76c58cc39dccd5a411ce001fafc8fa5c41ea4"; - sha512.doc = "f0f9f8d4e7e9b7cf5794529bd5febb0bd58f1ba0e95a72d688280ac3e6837cf39bdfb62ac29584fbf8cb37e1dafdcb971b9333a0306fa867fa4a1a256dd5a4e3"; - sha512.source = "4273fc09b30de6ea203e13b09822a07b222de8d1abc143e67c0c465bd8c31ca4648b83a7fbd895a8865b7793462bd020642d383e761c926504a6d40e785c0108"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -persian-bib = { - revision = 37297; - shortdesc = "Persian translations of classic BibTeX styles"; - stripPrefix = 0; - sha512.run = "e6650399eb5129dd0ad08c3ff93843da47287ce641a65826545b10a9213437da56467eabd8c37f1a7fc17086af968043586c53bdbc7485e9a4453b3f5b23bf83"; - sha512.doc = "a18f3652bfa8cccd8d574e475859bde8d41de04d3093f05222dfe5687460b8eb29a1e9bc258cb73cca69dad52f567572a654f46414a0d513ec27e462f4787f35"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -petiteannonce = { - revision = 25915; - shortdesc = "A class for small advertisements"; - stripPrefix = 0; - sha512.run = "8ff32eaddcc84973851b93f0c1c1b250b596a080669ef60ea2c115098c4984d426e37240ae8781fa3b95ce494e9fecccdd259fd25b47402498028f2b8e5f9fe3"; - sha512.doc = "d171f31889fbf07b727c78a99bc91a2e6a8231faa25944a600ddb17ba32273ffa40a39a56e6e9b2c35ebfd0bb396ee699ebd9ab179577ab07e63feb8686d4af5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0001"; -}; -petri-nets = { - revision = 39165; - shortdesc = "A set TeX/LaTeX packages for drawing Petri nets"; - sha512.run = "0807444f934acf16b052dc499a097a2a645d037622a71430cd82fcef85d11bc652341ce6396a27d717effd08bde8ba3224c5235351fa9146000c01abd522f644"; - sha512.doc = "cf03048e2bccded143fb493b100fd19103ab90f40713441c5380446702d6c57ac3820f2892a3dfdb80880952e09de78e69b309783767a3e157f76b81c9360535"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -petri-nets.binfiles = [ - "pn2pdf" -]; -pfarrei = { - revision = 68950; - shortdesc = "LaTeX support of pastors' and priests' work"; - sha512.run = "2022347ebca4dcb71e1dda7d8ac906733a664b98d14660e48b16e6592ae229641b8c7bd10602d89b3b01535d2851f9504e3329a9f82f4adb5a4c68dcd69c6ce6"; - sha512.doc = "4e5eb99b0e0409395954170339a744d18f8d0f8ee389ad1bacc684a037cc8b2b6121850a7674ec9b699596bcfa8e9e36521d13571bcad0db271cd1f9fa619488"; - sha512.source = "65d865d2e79ff7476a3629fd3ffaed09b3edc8fea9224fd7126cce0203bfa6f5ecb5caee6727bd6d01196666f138786ca409f3530a577efae4fccd405cbd845b"; - hasRunfiles = true; - scriptExts = [ - "tlu" - ]; - license = [ "lppl13c" ]; - version = "r37"; -}; -pfarrei.binfiles = [ - "a5toa4" - "pfarrei" -]; -pfdicons = { - revision = 60089; - shortdesc = "Draw process flow diagrams in chemical engineering"; - stripPrefix = 0; - sha512.run = "cd09de584483a1493648e9f842b743c43d7712b35f9d315ab34871a964b6ea7e8bcb0ff4b8d4399f5ce7d5ebadf41c94e8b88772b15155d4c21e17e4c62ecd2d"; - sha512.doc = "cb9f0ae2a1b7a3c8cbb12f859c9cd9d33e447652ceacec2642e45c7db7a96ec6cfb9bf63ac8f711c1661557308ebc3c6c04604412d09cf16d232e23c805e395c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -pgf = { - revision = 65553; - shortdesc = "Create PostScript and PDF graphics in TeX"; - stripPrefix = 0; - deps = [ - "atveryend" - "fp" - "graphics" - "ms" - "pdftexcmds" - "xcolor" - ]; - sha512.run = "d7fbf0dc83f88a2f6d2de3117365d3f4ac2379ecbc530e343bc3e02ac8083e9a9843d479d375d086e39b6377b21d2fcba22883485e040fab1601642ba80128b9"; - sha512.doc = "e3be45f63b46124218592ffb8083998b9d25e81dbba7ec8ee58d578335247b05ecc46c145f5de8b859c72dd54cafac58ee784f9aa33888fc129817c66a819568"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" "fdl13Only" ]; - version = "3.1.10"; -}; -pgf-blur = { - revision = 54512; - shortdesc = "PGF/TikZ package for \"blurred\" shadows"; - stripPrefix = 0; - sha512.run = "95093365a79d7f8a2df134decbac172a080711bcf8e8f77267ea4520ccc9aa398f5fbedaaa5500fa189b3873d8897350dc2c99f142b6bed1a6e7705293a3b8b7"; - sha512.doc = "d313e5ed1a0b5637996d6bd1827b909a771fcb44490312c502acd89412966d7662b1482fb8f3347b8d658b336051773c3d10e70df9c1f22e810802936eee816f"; - sha512.source = "c8b7baeb30d520d05d53d6c37f70e028d8622d59eadb7b8aef9c26147e5ae4704fbf45798315597f6ecb65a15e4c8e8e18dcc0cac98b0cb69efb191645632710"; - hasRunfiles = true; - license = [ "lppl13c" "publicDomain" ]; - version = "1.02"; -}; -pgf-interference = { - revision = 61562; - shortdesc = "Drawing interference patterns with PGF/TikZ"; - stripPrefix = 0; - sha512.run = "569dc2b0f5b11d93aa447d54649df07c3df375dcdaab509229d0304bb25523bc45062916089b15776b727a9c05205688a161bc79cfb4abbc466a243b2c8c57a4"; - sha512.doc = "106f86c28759b0c105a6f57df9c8df416190f781b73f1bbb7398fde6e88192fca5aa3e198e7235dfc23c2fc3bb41a5cd0cfa060f9dbac4faab30bf04c484e9f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -pgf-periodictable = { - revision = 69924; - shortdesc = "Create custom periodic tables of elements"; - stripPrefix = 0; - sha512.run = "c640e847afc370fb47c39d44712c7fdce6078d39b4cbca9630708fa4374b8a9793100763a5a2734fc3a925d1b0dbfab28aab868f49750dfdabd4df69f0553af9"; - sha512.doc = "a148aa9df7e95c48f6eeb5a85323f68539ffbaa7deed7b3188b75c5827814d2b26e20c61995334e77a868831d5bb9b7881e8cb993967293f79bb327c387298af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.0"; -}; -pgf-pie = { - revision = 63603; - shortdesc = "Draw pie charts, using PGF"; - stripPrefix = 0; - deps = [ - "carlisle" - "latex" - "pgf" - ]; - sha512.run = "3e5cdb5def0918ab1c3d38d35bb85f07711144d1fcaf0f3af8b2c5e0eacd9af6c3b92bc6e1f45438e40d7f5838770b91ab513970cdd9a3f7dad2918eefb875f6"; - sha512.doc = "ac151cb61ea4fc440ffeeea9b987f6dd648b53596934900f41437f787bedcabe2ca8dd53c37828aab816e9334d0d26573f81000333e50d0761d70c586a5d87e3"; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; - version = "0.7"; -}; -pgf-soroban = { - revision = 32269; - shortdesc = "Create images of the soroban using TikZ/PGF"; - stripPrefix = 0; - sha512.run = "e0f85a77e9d81bf01f5516c3b3baa52a9b7f1b0faaa6f0aab1cae2182732eaf04ea2edb6b0f9091272849f1d7ccb3797cb2641090b926db7f3d0483d08569845"; - sha512.doc = "3f4c021cfb99a27778c250f9ac13e2abe48127731b54d0fca9e8e588f44ebf797e034a56d3ca19bc847bca173dfb03ef9a70e0fee71649188a8427d6eabceb80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -pgf-spectra = { - revision = 66961; - shortdesc = "Draw continuous or discrete spectra using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "723fcfd1b6827cf224fbbba91bbe4b65e8ea6b09cfc5eae2645144d2f64bdc0004f4f6184f2a310f7208650870041f12c4eb73e4d34c88fee5513d041ba88586"; - sha512.doc = "81e418c2539e9df982025478d552b947dc040a5fb3ac8250636e874e77c97c83d215df6b2e9208f660b8a928eb1dd0e059fae357aef1b71b6e959a37affac2d6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.1"; -}; -pgf-umlcd = { - revision = 63386; - shortdesc = "Some LaTeX macros for UML Class Diagrams"; - stripPrefix = 0; - deps = [ - "latex" - "pgf" - ]; - sha512.run = "a55281a157a2a347f1c9d82679cd663f4493e03123d14dbef0d71582613772252b693a25b3d3e5b72b948c4fd12d0d7b0354d2e38083583b550d7cfb5e634d93"; - sha512.doc = "6d798d93590d859d69bda9f0bd391049db91e2d4fb6f0b019a6f76eeaae9e73c9f249ec356cf5a5d4505af6948d4c70c2ad4685c1c41a7ba40ec62d3d8a9dd00"; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; - version = "0.3"; -}; -pgf-umlsd = { - revision = 55342; - shortdesc = "Draw UML Sequence Diagrams"; - stripPrefix = 0; - deps = [ - "latex" - "pgf" - ]; - sha512.run = "6b015603e3daa362e473d795d32fa785ce247b58ec9f88872fe4bdb4fa660000bd87da2369de556f998485a6fcb6dd49aaca549b0470b41adacba5a278453197"; - sha512.doc = "968d23fcc4f114bab204ec53281975a6fee5f81635ece256351198075cd8463a706954f463beacc162180459fdb3652657f2c060a71c588681f8de6e788a4e6a"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.7"; -}; -pgfgantt = { - revision = 52662; - shortdesc = "Draw Gantt charts with TikZ"; - stripPrefix = 0; - deps = [ - "pgf" - ]; - sha512.run = "0269703fc00f10981d5ce8958159a24814b9f410c1b00516608c039b1ea8a3381392bf1d89e98f3011d42210047bf2e1fec2f103467087f9172e143d9ab6fcf1"; - sha512.doc = "4890ae174c92db8df7befcef30d03724ae52fa4b26ac796d247a703794ce745ee892f0d2ab8a4f62e96a5e5f792791a6f7e8b9e71f1c0f11b68e8cbcf5165472"; - sha512.source = "668987bd37aebd38697c02bc39d85371c7d40613aba13c0f3b62ece8145608057cf3f76cda03de6df25f7ba820359ff2ba1c340aa1b9ebff94bbd42aed39e401"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.0"; -}; -pgfkeysearch = { - revision = 69385; - shortdesc = "This package offers a way to find keys in a given path 'recursively', unlike pgfkeysvalueof"; - stripPrefix = 0; - sha512.run = "c90dd895a9c4d3ba737f6dca0a618af781ef712f7254f80c4f6bf222db80c8e7f010e9e2b2a0fd4a125154586d1b1532881f1e29dacc677c416dc8b5857acd51"; - sha512.doc = "8ba4bc32f3a0393ec32e387110a725d10ec67793867ff7efbe8bc6047a6fe7c2e19970f091f96e2cc4d756809301864c48ce550f46240e22aaed885d7ebb57d1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pgfkeyx = { - revision = 26093; - shortdesc = "Extended and more robust version of pgfkeys"; - stripPrefix = 0; - sha512.run = "c2adb44ef34930aef1d78aed2025a2dc17c69ed641b59af29bcb93c9c9532785090f30834d52c415116ab4a9477d83e5a46d1509e6bd41f47fd4e37cc8ff2933"; - sha512.doc = "2a596ee81d2af4992dc23d6f28f788ef1d3e9a528992f01b7113de726898ae3007b685c4c447d2fcad640403d1bdd8a0eb07299ac9ea81f41c4158eb21b8e9e2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.1"; -}; -pgfmath-xfp = { - revision = 59268; - shortdesc = "Define pgfmath functions using xfp"; - stripPrefix = 0; - sha512.run = "c82fdb2b540dc37393610199581416b4256d9cf382da4238625b9ae29f6d7ea6150925c6837ae1f4b55fa10239f8563fb8abd042d5533080de7283246ee69ed5"; - sha512.doc = "f48114bf89d4d5aeca399c44bf6a6fb26567d7692de319e7d457d3b753df8e302871e9901d98bf8697680125fb8fad56ac8675dd339bc420b439aaa4cc93dbb0"; - sha512.source = "18571bdab8756f25c357ceab0cd82f242007c22ae0b6b5cec17ece221137607a6d245ece8dd90c427d0eceda63749f0d75e77c2974e9dfa8509a1bd34768b5c7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pgfmolbio = { - revision = 35152; - shortdesc = "Draw graphs typically found in molecular biology texts"; - stripPrefix = 0; - sha512.run = "bdbd89379ed7310b78a3847c43022f6cd65f5fccfabfc4723551f5ef4f4cad3e3dcf596ff65cb4c5ba4a354f9bd59fa4aa39147782a0ed369a7dfcb68ef7f9cc"; - sha512.doc = "a9dbe657b4037477adcf3ead4ad4ca5b703ee8c53739da9de0bed8e02c8e14961a963e9a4a5a86b3f53348da9eab5cdbada1b5ddd073bc18c82177abc92023f2"; - sha512.source = "1552182819893f7538ee5b38816d339639ff6e6ed3e092a67dde1dfa2a73eb7bca1490909fa34d4999399a8328b2ec8885ad86e76438e4f177dd81e2e6accdd0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.21"; -}; -pgfmorepages = { - revision = 54770; - shortdesc = "Assemble multiple logical pages onto a physical page"; - stripPrefix = 0; - sha512.run = "9a4fd2f42276cb72cd39dfe3cb5b6c43855e1d7f01f47c53b23c8aae7bee98c89e8a8f784a917c0c4ebc35f9dcaec18b8d4f6bbeb05ec5a80647ff7ca23c02ab"; - sha512.doc = "3bef05b263791c9b1e92868ae22966f5638a900d44ed9ab9de5beeb0dd25c7e8745d09da4cd3c2c7a9e9e5c710126cb7bbcb67579e770c43e6c7e057dcfdd1b5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.20"; -}; -pgfopts = { - revision = 56615; - shortdesc = "LaTeX package options with pgfkeys"; - stripPrefix = 0; - deps = [ - "pgf" - ]; - sha512.run = "7d672d626428c37fa749a810c57be43c6102e1325a6d3e16c57bc560b6d65a57bae94e619a73f3e0efb46ce7b4783d05a6e98c64b1e90c6e0f94f1dd9acd676f"; - sha512.doc = "ff82e0502fdeefe6afe90aad4e7615de9be4ef8e2e6a69e7a537202af77aed00c0895269ceed3d38e0f34345efbdd771d22b0c8759fcb46ff8e91ce639dcd21d"; - sha512.source = "758da1f3daa0ef888b484ea657fdd4384102868e4eee543bc97e73f103b67c367277f5c00efd06a2080f9ac3fb82c909cd30f641363120e70357450179dab6c5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1a"; -}; -pgfornament = { - revision = 55326; - shortdesc = "Drawing of Vectorian ornaments with PGF/TikZ"; - stripPrefix = 0; - sha512.run = "3d5742197af0b6bc11a14ce5b2198aa7a580655f29757f825c24b4081dbd318d45d4dfca065fc04f0d5f47d92fca166a185c878c8d7a506e4ae7547def41592b"; - sha512.doc = "b35295915c86e4ee5c2fb9b1ec2d545c8d4fc1cf5e65f3e6247e4de1e77e2f789f7842cf234546d6e658a73b4837cd50f8216cd9425f588cfe4a12c76bd134d1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pgfornament-han = { - revision = 68704; - shortdesc = "pgfornament library for Chinese traditional motifs and patterns"; - stripPrefix = 0; - sha512.run = "7337b577e10f2a6306badaa45ca57614ac0da6b3c12ca5c9c3978f1358fa88a352cd092452ef3b6e86d01ccd05f1cfae663f914956b74d184c08a21d2e484e01"; - sha512.doc = "7b9138088db1581571508ccb550b1b128ce0b574dcb2a903f5311b9a6e63e9d9c6e56eca0e46ffb5224f5685c5b047a57e5e7d292e7d6de6a9bfb06ee568d9b6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pgfplots = { - revision = 61719; - shortdesc = "Create normal/logarithmic plots in two and three dimensions"; - stripPrefix = 0; - deps = [ - "pgf" - ]; - sha512.run = "8244e65860f37d74d05535a627ef6cd321407a69a142d156bae190c562a9402a0d7e927df732c32cc5f556dede1b51f7aeca5d7d3a26167348a21f2e3d8be5ac"; - sha512.doc = "720a77c574c81e7c3619e3b988c8a359bd6cf284ad3fa7c795eb01c371ede85ad727dde8e5f19d8f683947b5dc5752324581e364c59e8a644b5ae34d6b75a96f"; - sha512.source = "d840015854794de1a311f1d8a9935a93c71a098c46fb1c5cec8a57228a924685f75ea76fc9cf2a9f9f30ed39920bbf2092fbdef2645ddaa5ad5a3787839c1d2a"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.18.1"; -}; -phaistos = { - revision = 18651; - shortdesc = "Disk of Phaistos font"; - stripPrefix = 0; - fontMaps = [ - "Map phaistos.map" - ]; - sha512.run = "d5cb8a051e1e80629385bff368896c47bdfccfcf38a24a723ddc5f9056a59c57703986799253812c9a4651f4e16dc55cee0876ddd0552900f978dab0381c9aac"; - sha512.doc = "96eb22628467289f72aaa0d4983e494c75b3a2315d8b9d2921f8ab29d93fffae4f459ef852529dfa4ff48a65e25d652662c54d84db54e0118b1c021bbe39eafa"; - sha512.source = "5ba2b04fe4e3aef136de2dc40568ecb81f437561ee8e6c320927bb816819889666f57ad07c3b8bf6eb7f6eb84b69147f9233449a26529b61712d158abf889f91"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phfcc = { - revision = 60731; - shortdesc = "Convenient inline commenting in collaborative documents"; - stripPrefix = 0; - sha512.run = "1d1f6387db333cee296545663bc4e2026fecd0f381cf4e45b42c8b297a4ae9bccfaa8e9791f92cf59bccc428b3f63b944d9173660c3606f1f49ef1878caf2181"; - sha512.doc = "ac10825535fbf1e5173d5d209c26d665a128473c3100e349a63ccd921534c9645ce3c7b7391aac56de70f23657db8e1496f6afc0b2d112a45f3ae84d87220498"; - sha512.source = "31c59c51bb48a722e4962986bef69619ca1ffd80bc25ee1308cef80e78246811ee169ca6a0c9ea5e257626e55fb04bfe40bb1ec53d09c81b2fe636e6ce215a37"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -phfextendedabstract = { - revision = 60732; - shortdesc = "Typeset extended abstracts for conferences, such as often encountered in quantum information theory"; - stripPrefix = 0; - sha512.run = "0e1f0f232c7216d654a41ab750477a5a6efd1a2dcb15b2114eefe1ffcb582bd0512bc8592111904c550badef12a3927c5ee2af58548dab5015901165b35a8bd1"; - sha512.doc = "aad67fc68996c032bca758b44eb65288f2245f780e9e4200888fb027b4638963e2f3b9c771a5ec78f8c65fd0c86c8b55b16d8cdad44fdcf9cc6622a766175e00"; - sha512.source = "a5d3ae9a1bc6b8859e998bb3561a63e99d9a4f30da3e3c2dd918ba7f23a09362bd8f123e2bfbe2af4ff7f2204c969ad487ddf389fa04287eacf0abe9f251391e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phffullpagefigure = { - revision = 41857; - shortdesc = "Figures which fill up a whole page"; - stripPrefix = 0; - sha512.run = "4d443d5ce4dfd4805eaea4ecfe11bc94b9e92bc4d68f8fdd001a72ef09f519f11e20517d01722f5c7f79eeb9b92d0a6099d620e5c54dc0845b7ed5cc762c260d"; - sha512.doc = "837b57707c0d37d20b02ed83ca32768c4b2718958ba3124650604f4de0bb11528c2d5fed95f942545db400eca0517ef59fb168408ea9960f0a894a777e9f2681"; - sha512.source = "f0abc0f77efc7460907cd18282ccdf2ad15687b3d891a72e8fe756c16d1d715cd6f7eaabe09898c2bd88ebe54d16b86115c06b4d56fe1f2f4b8e3e952292a107"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phfnote = { - revision = 60733; - shortdesc = "Basic formatting for short documents"; - stripPrefix = 0; - sha512.run = "ddaea70a5bb3aecdf634b44dcf5f006db479a4d47e44e96f92bd390c2c0e166b741ea31a0f22ac39770ff0c92590a261c18fe5096bf97997743684a95a82da2b"; - sha512.doc = "2dc4e7d3615d8f185bf1bcfeb5a90d51f362538691444355ad6820f8bdcfcd68f1dcc69486c0b630d1141db1b4bc10bd17abcfb93cf37b778266090f29ec946d"; - sha512.source = "15c0614cf6bf41c94513475d0b65f7053970505fcaa3126550d283b8597c49e30b86e716d3b643fceeee2bae37f81a65d8f65859847bee6f0aa4e508102f6617"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -phfparen = { - revision = 41859; - shortdesc = "Parenthetic math expressions made simpler and less redundant"; - stripPrefix = 0; - sha512.run = "c184623f226f9bc9926eef0b5e23443bec20e66c6641196bc90daf27a648d9f0db70ad176488fe061d44746b6cf46a3217eeb42f6a95f2e37c20d641ba2838c6"; - sha512.doc = "5c34575950ee1a9616408f293319eb0634795e07173677cae112466a298dbfa5cc18fbead8e92e459718df91326d27cc7baf0414a1f1e8613a5c115c070b5016"; - sha512.source = "ca94f1756265e0f92e8808b7dac74eb57f62eedcdefbaf6e4059c8a7ffa51819da979a70203b11250d329ec9000b454067c101b25753673add4b35c40fe1e882"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phfqit = { - revision = 60734; - shortdesc = "Macros for typesetting Quantum Information Theory"; - stripPrefix = 0; - sha512.run = "604093594d05e5f331d27bf5b0d6c40b631934a2872841f2534f69279542a6bd26ad758712b9b24c5490c4e9396ac147f46a9d0790cd29f56c0d2b13d876bd56"; - sha512.doc = "738e5f61c0318f331ea2a7f1e0d5d019969636917fcc18ca19a72ed42b1207f4025c58ea886c4758b64c61cb33faf8ae5b4d5f2f7a55a9ce9758b9fec00508ac"; - sha512.source = "0d0ce4d75bb6d73e24a47c8d66ac0b72a0cfe273a6daa4af1fd3a89f853c3c5c1f856d749321fc9ef79b0e0a9c27465045a48202536b73270971deb2d4cc7a30"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1"; -}; -phfquotetext = { - revision = 41869; - shortdesc = "Quote verbatim text without white space formatting"; - stripPrefix = 0; - sha512.run = "809820fd3108cb5b33c5f3129fb3ae8251476161aca5936b966219a49a29204107375a33e6bfc452d2aef8b0cefb30f8ab0e53984f39d5c3228ded25ca19c37e"; - sha512.doc = "501d652782670318fdb45368e01dbf76de7cb46f0f1584bc7dbf1242a71a42e7bc870c5cbf7dcb33d41463c550a0803226860a0aa64e75952f717436e8f6501a"; - sha512.source = "fa812150acf519ca0995afeb9b3dde9c1929b945bb964612319f7065c6c303641e2a245397e7271eb777af9f6cfd310ca1ec7f9974c0bf9c329a0f006df2b9dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phfsvnwatermark = { - revision = 41870; - shortdesc = "Watermarks with version control information from SVN"; - stripPrefix = 0; - sha512.run = "38dae3ef3fe183bf5149b91050afd5bc9c934d01332b021ce87e9ea412008bc22d42d25a389e82b02ccc4cc4820a10d821c228c02c4f08fdca89ebde69c6e2d0"; - sha512.doc = "7f35bcb41618c7e14e7e9f8fb289231a8032f7f1cd2e6333982a346c5f8dd24e5733f70c03ddd183d170361b2b3af4115f6fa9b788c4dd2a020020ba525aff18"; - sha512.source = "6c5e113bb45ce6b11768c711bb59743b75bf4b95e9d84c045b59f502f181e80a67be56b3b5153364c29ca5c36f6adb73dac4a5d3051a8dc3ea275a43277732ec"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -phfthm = { - revision = 60735; - shortdesc = "Goodies for theorems and proofs"; - stripPrefix = 0; - sha512.run = "2a608898b9038cc46e4720423a42f403abcd105700e20e90274ca6e01ed3c4428a443466d0e32b0cf0da9735c0b7ea74b82e90a3d0b72583d38fa5a14094f806"; - sha512.doc = "bb0c2da2d17b0c3c3550569428fbdb5532d1fe79b325289d71f35659d749fb952bacfa6140210ebbbdc661dc445ae8add1be6cc79b77bf6346fadc70553bf189"; - sha512.source = "7c234459aaa013a9d2d0c719791d99ad6db252e152a53f7111e6d9e04fed3c718efb4fedc85fd064825d40ef80fec2643d6310e582bf830486b8e43efa27c966"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -philex = { - revision = 36396; - shortdesc = "Cross references for named and numbered environments"; - stripPrefix = 0; - sha512.run = "0b6ce5d281836926d6807dda7a8a4eace43a25160b8bdfaaded7ef9838f933db7a7bd4859019555002b662ca01800e64c4f6228427b4f40c9a79e71759aca6e0"; - sha512.doc = "ec8eafe3e1b5e7cdeeb2554c3e34036c808f33b4f4bd2e5fb8b2e10e4366f51db02b2bf3dd52e46c92d600cc092f30c4db6cb6f69cc66cafde5c11a53a883839"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -philokalia = { - revision = 45356; - shortdesc = "A font to typeset the Philokalia Books"; - stripPrefix = 0; - sha512.run = "6a7b76995074ec233d4922de96f727ed031b21abbaf1a423bded6bcd964e8e503d7d3d84d8d4eb1ca42ebd99e1af50a244238f668db245ff4810176abefb0976"; - sha512.doc = "8cefb15592711d19d3fbe5fbbe6efb219ce081dac6d8bfb12ebc57ac807a30aefbaa37f371e70b7141876333ef408ae5fde177add749faf2302b2d7f60a1bf00"; - sha512.source = "975d97494ed2fceefd6d7fae5cd7916689087d5f51136398b19d233e88335c373bbd572aeca930e3be212ae30b7d8b34e0070650aac5a9c391793fd6a5c1e394"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -philosophersimprint = { - revision = 56954; - shortdesc = "Typesetting articles for \"Philosophers' Imprint\""; - stripPrefix = 0; - sha512.run = "8b4a1b9bebf971b0963fd20c01807d5d541a978b88a1b07bdb950c1e39fcb20b8750cc0c78bb97d663c00bac2a714fa95f0a088a1c84f371261d236c941cec4a"; - sha512.doc = "9c6d1f01b2e815c4c33c4e95be40d1a7819568bbf22edacc202c3346ac4f7373ce4b6e8316ed194a32551f07296628d1d8f971ea856ddc33c1d964efd6388d4f"; - sha512.source = "12c557b2f273c06ccdc322195340e10f50d54986ec8aea4ac103a173c9a31514d5fbce39413472fd530f0c41a21e1e5d7fb5ba03b8dd3008efb8056adc22dbee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -phonenumbers = { - revision = 63774; - shortdesc = "Typesetting telephone numbers with LaTeX"; - stripPrefix = 0; - sha512.run = "328a221086c26804d8655bd38f4a302b9d76b25e1a6238395f342bba8d1f6206b1d64a7a2fe4de41940015701e8fb8bcf33a0ed5d7298b8c7642429d93a85f8f"; - sha512.doc = "ec94445c39683298feaf57ac7d074147fa094aeb3fad983b85fd922ec8baf533160a865997c246a62677ba79bf85ce8f385ede4bae159667ecae6eec2cf84824"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5"; -}; -phonetic = { - revision = 56468; - shortdesc = "Metafont Phonetic fonts, based on Computer Modern"; - stripPrefix = 0; - sha512.run = "655dda5113926fe28ee0695d8d87a18c1ae63599a2d476f7d9b3e3a28bde475cfe33fd06aa70d709fc05a2d43026e91348bc0c5435f4a9132859b7afcdf41a7f"; - sha512.doc = "626ca0614b723fc3e4b75ca977c7a12e77908ca710ec52994e62e9e89e2064f973ab2bda3182a3b466eb2df2bdf030e0e6432cbf9f984bd7316b483f9c310b47"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -phonrule = { - revision = 43963; - shortdesc = "Typeset linear phonological rules"; - stripPrefix = 0; - sha512.run = "0465e183077f7daa57d2bbc5f1a76afa72770718d2dc969ebc3078b213738f5ae3919f3ebbee04ae54ff7b8ad6e35630fb22293b5cdac31ee5bf31680433ad15"; - sha512.doc = "80ea19243537e769c49a3411e036c5811b19586fda3878894126a151af4ddff46a554db7bc07f488f692fe9efd0934149c8c94cde75b92c880bfcc28218ae5a1"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.3.2"; -}; -photo = { - revision = 18739; - shortdesc = "A float environment for photographs"; - stripPrefix = 0; - sha512.run = "11727df46b85be20802588a6c5743a9ae70a89ea73b5f16b8a4a3d3f1d3a9ab3194f56f0ef9d79947b14fe3f6b3e05cbd291dad8346cdb128b4d1c8c22d50bf5"; - sha512.doc = "037466dff8edee9f6218b1fddfe579b2f82491746e22886ea5f8496b5f564084d81e35ed549ddfc42855c850913cf8c587806d71b7a531ec3ea3056962c54e48"; - sha512.source = "644303a7eda6cbe50db8cf871ffd642dde5115d4f1a72edde65e9218337faaa63ffebc94bca96da28a4a2d7568ae0ea124f1aa12fe5402cfc1c57619e86746ab"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -photobook = { - revision = 68313; - shortdesc = "A document class for typesetting photo books"; - stripPrefix = 0; - deps = [ - "adjustbox" - "atbegshi" - "changepage" - "colorspace" - "environ" - "eso-pic" - "etoolbox" - "fancyhdr" - "fancyvrb" - "flowfram" - "geometry" - "graphics" - "hyperref" - "iftex" - "kvoptions" - "listofitems" - "mdframed" - "numprint" - "pagecolor" - "pdfcomment" - "pdfpages" - "pgf" - "textpos" - "xargs" - "xcolor" - "xint" - "xkeyval" - ]; - sha512.run = "1ceac5c208ff577c3072b96bd3c98e03a75126c25c5bdb8a88c3a253623b2f089d4bff17bcc7cc14d522461df2f95a44ba784ff8108a6b2d284127d20b75d4d1"; - sha512.doc = "fc29b76cded75fdc20eceb668cc0bda2346bc5e11c5df2d860e90999e48b73a3e44c985048174cc54f42aca2dec3d195b765ffae923a1eb78b1d7da180e6a966"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.1.29"; -}; -physconst = { - revision = 58727; - shortdesc = "Macros for commonly used physical constants"; - stripPrefix = 0; - sha512.run = "3655aa79c067d01831e6f30d85f13ba7b06742d4731f2f2bbea8066205256fd4f6a5d3290812e667bde8805b9bcad82c4713d49e3eb357cde56a1f50ad065877"; - sha512.doc = "1824589dccba975de608260ab460a8a6be0d8aecb099571fb9e088e0ecd53f2f6e854a3f21eebacafd06717bfd53290ce23fbdc85467798c8f9b1189d64a58e9"; - sha512.source = "9e21baa7fe13e2ac201ce8d3d01e5217d078a5300c580fcb9e32fa321fa02ae5da58a4d44f81b4acdb31dc219ae6544196ab6580a123c891021185b65583362c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -physics = { - revision = 28590; - shortdesc = "Macros supporting the Mathematics of Physics"; - stripPrefix = 0; - sha512.run = "e394a7f8eda4583cf196dccbd9d52122d0ee630a411630f11d432018c5e9696a9b3feacfa2f881d82090df165a73ee0fa610ad86422123a9e1502ccf4b695be0"; - sha512.doc = "40a85407502116954024d51361dcbfdf36cac07aae382ada1f96d413f9b838ea5a11d7014722b5641a75b6c9bb8a5c6c134c8c0d424788f47f45fc80b277b3ca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -physics2 = { - revision = 69369; - shortdesc = "Macros for typesetting maths faster and more simply"; - stripPrefix = 0; - sha512.run = "1a598dac27ac5e1fa163493c307e48ff2e8c31d9c1c51a676a1b05bfde7af2a558fce4bf410a2c70837d128121331d6aaa393c6e7a84d8b98f9e271184e78a50"; - sha512.doc = "0627e9882b0ff31f2d6db46a9437c536c29aff39a1a1929784fe4bb16dde1a18aad351819d36a7578bc71664a4313c918623a87cbfaa36738b19ee9a9f4769c0"; - sha512.source = "3709f7455ffe7d21a1e5f04f08fb36edf1fdf9664c32aa942856248527fbb735dc6664b971bb2de961ac5fa1f8dee14a2ad06b39903e6ca83e639a18b71b01da"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -physunits = { - revision = 58728; - shortdesc = "Macros for commonly used physical units"; - stripPrefix = 0; - sha512.run = "96f700e6dd103f768383a78645cb32e363b83c459a0c764a77d127bbf2aa7c143105752ef9910a2d9d6e659547931b01a2bb0683b41d8870c0fd850d7e01de3f"; - sha512.doc = "e0a3fe337242d4da26153258f16dd8f71c2a704ed89fea8dc0f58b1fca7ecbf9fb168bc05adee988aca61883bf94272ec2f1ed841d99e47f0992b04f6c5bc371"; - sha512.source = "59ebd20b6658b4f4082e56dbb2017b4f63fbf9d7a61dc6c5b91a1da1be4794b1e555f2c6e68cb19ee6bd4c0e860eab77905eadd7fd4f72ea83f4b251bc8fae14"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -piano = { - revision = 21574; - shortdesc = "Typeset a basic 2-octave piano diagram"; - stripPrefix = 0; - sha512.run = "49c3b29f48211ac6ca04ef8f9df74cd3f4673a84e9d84c2a9b06bbc958abd640116673abd751be40adb470907bcf65a42756c22996f0adc4e2c0dbf3d6afeca4"; - sha512.doc = "50609a17b51de85d5f9df4da91c0c1c421a86ff222d08268fd0145e248eea740c68445724fee425a2adbdab85e0cf5b4a9bb4ee5cf3bfcb4a3d5cf4f1868df47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -picinpar = { - revision = 65097; - shortdesc = "Insert pictures into paragraphs"; - stripPrefix = 0; - sha512.run = "114b1e715384513f87f2a6772a6176ade44ac7053a8eb19410fb92862e721865dcc9350f08d77874296ae6402eb8d8da4b4b26ff4a96d035666814a3d3e21682"; - sha512.doc = "3b972c49a8c2ba7de3e21c065faef96125b2b275b25f7e8a35c72e28f27156414a558e290ed4b84d6ba49921a0c858867a0a7cfd5db87a501b3ac1a0ee6594a9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.3"; -}; -pict2e = { - revision = 56504; - shortdesc = "New implementation of picture commands"; - stripPrefix = 0; - sha512.run = "04c4fc0ea9647c0a434be2ba709f539392685233adc92da262fee4d081b6d31bfe88d8c537c19a102bc7200e2adffac4f7a4cbb3a7a47ca47c26e93e96772e6e"; - sha512.doc = "90fe6e6d6fce7d2a679bb511e2b0bbca2edc42f332886962aa227536558083897e1e3425b6c7efadaee6aa46d1e404ab5d4c18e21db52e723be8d4f0566eb5c5"; - sha512.source = "0c637f9979672267e73dd762b43c3339f41ed8965c12fff1141c757572ff7cef7d7f2d8faf50d855cd22a3810b9ead5318b6c20c3e5218f01fc32252f93d29e7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4b"; -}; -pictex = { - revision = 59551; - shortdesc = "Picture drawing macros for TeX and LaTeX"; - stripPrefix = 0; - sha512.run = "cca6216568bead5120ef39eb2743897ad97d285b55e7d9b0723b3f6c7fa94ab17cb8cecb946845aefc57eae3c69305de6d839feb9df8212be83d2c7f242c2fd4"; - sha512.doc = "e5bdad8dfdeaf3e3427d37b35641f37c8bb8005aea3773a914967a10b2583e1721fe0afeea0b8cb7f230edfa7b7d33c2d6fe023c229de4a27d6c979f6830088a"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.1b"; -}; -pictex2 = { - revision = 15878; - shortdesc = "Adds relative coordinates and improves the \plot command"; - stripPrefix = 0; - sha512.run = "26b608cc8409c62f4c0130cc032f2ca5929886fafb9d22d93aa23af5a6dee62bbde83926bccbcb4fbd3d86a43810d751eb43a2a94be9528e1639c59fb61e5446"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pictexsum = { - revision = 24965; - shortdesc = "A summary of PicTeX commands"; - stripPrefix = 0; - sha512.run = "a24861e4b6184084fffa783918db485e5c7cacf7a6528681e7d8d4212287f1f6687604bd4f347e9e34ab7d29867dec2b30c9871a13b9bedae31b5dbb82ba1ed2"; - sha512.doc = "148b7c29cb8189174442b95cd39b0d5fdf9f937a7a44a17314b93cce555cf3db459e21ae2c4eb9098c15551bd7aada2804855d68f9408fdbe974f6c12dd724a2"; - license = [ "free" ]; -}; -pictochrono = { - revision = 69865; - shortdesc = "Insert \"chronometer pictograms\" with a duration"; - stripPrefix = 0; - sha512.run = "3c6d73efad12ff4b3c10c1a09e36fb489a75998e556f6042db8f11dfd157cbb27a488eaa1f12f7c72de5d2ea5deff14cb8d2659b1d4618dd91e5bee84f72eb82"; - sha512.doc = "fe015528ac5b4c2f2f7f955d23372c1a3066e0569e50a9e38699e44c305d588727f0570c265c79aec82f8f8c02f6b671183426c3a58f6f1f339ca40415967b24"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -picture = { - revision = 54867; - shortdesc = "Dimens for picture macros"; - stripPrefix = 0; - sha512.run = "9dbb4e17b455a6a18bae6309864412b975d07a1a11e908e1023ab8e990ded0956ccf3826e72d9878f3597eaa4d185c8b147d2c7d2149618bdb0b09fce8e20e90"; - sha512.doc = "ce60fbc915b3c07db6ebf4bccbd0e2e8ed6f38fe0c07075af2c433b2bd7f82cd191c314ef3ae1fe9b4a02c2c27d75e97a5831c45b833a33373d545a977a162d8"; - sha512.source = "599ad9e192d2ee50b7037d93c3a8541014ada30c13a9a8b637ee33ee9dec476a46779b06a44f56288e6fc08b29408af30310fbf0ec951aef3a8b0d8dd776aa2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -piechartmp = { - revision = 19440; - shortdesc = "Draw pie-charts using MetaPost"; - stripPrefix = 0; - sha512.run = "e4ef7bdc43280c4311a6e8abf2719815196fb0ed0a8450501061e0b3b0bb44cd60947d6d623ff753c5ad1384d98219df695865e6459eef02b2b96f00906d023a"; - sha512.doc = "f74c3c34d37eabc3b5e857a90e8da2c6ffaa3b4a6974c6b1127f898fb727ff18f0f399e9c4ccde8d4d198bece0ea83fbbac37a1ba1d381576166b5a2742113c5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.0"; -}; -piff = { - revision = 21894; - shortdesc = "Macro tools by Mike Piff"; - stripPrefix = 0; - sha512.run = "79b804dfdbb12b8d2e854341062f2a149f9b0e061385a30650c39b877cce72d1af4ad1644d73fb3ca733a171aa61d1b533295818dc10a92eacbce2ca60722de7"; - sha512.doc = "ef9d14cf4a38315e4d523082db9baf8d0f89e5963001d12ba7ffe260ca2255a6aa99dc38392a6ceb0fe24e6abb8c77b9343f29300ff5c814c01adfff3321923c"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -pigpen = { - revision = 69687; - shortdesc = "A font for the pigpen (or masonic) cipher"; - stripPrefix = 0; - fontMaps = [ - "MixedMap pigpen.map" - ]; - sha512.run = "54e472281b1ad2f98b8f49df945fc89ea2e28bbec4088c15b4b73a411ad42936f408926a006e46656eb70b90172f39dec376b2eace6fd22923dd4881e1659618"; - sha512.doc = "94be29262f4d00ff65c1679029bc76b33ebc10051862cdbd4da08ef9802975378efda5c2b2cbf85877382d093bb408feda0d53d3458337bdff5239cc851c1dc6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -pinlabel = { - revision = 24769; - shortdesc = "A TeX labelling package"; - stripPrefix = 0; - sha512.run = "56ed76be6c634b3c1fd3f83e12304d0d0e078e027754ac7619d680d2072ac7b67c527a4d23dda8feb6496e3808b3414bec65a48d4750d44405fa4574f122880c"; - sha512.doc = "c56fad48b7cad065196cecdb64e501555d2a8f3ca098f001123215f8e21968cdec2da28f2a68f7e07ee9b1c2d961a82590aa136b15bdc87e9176462cd706b0a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pinoutikz = { - revision = 55966; - shortdesc = "Draw chip pinouts with TikZ"; - stripPrefix = 0; - sha512.run = "88ecb08a15725e4afbd296cc7eba16583cbe260989784e625eecf008441ac54ea53cba81801d77ab8439bc076c32d6c09d62305ef589d739ec1ed59e1f907755"; - sha512.doc = "9fb1acfa981b7d38b312d089be9b9d5dad22334960133377b06910cb0df39c8e556ca86d5f9b959b27ef4c7fc2211b97507b138f026df58d439fe3ae9fd3f420"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -pitex = { - revision = 24731; - shortdesc = "Documentation macros"; - stripPrefix = 0; - sha512.run = "dcc4280ef914ba66210ce471dc276042070b3246bc95ecb93b3d8af55393f49921a1d5e6851223299831344503dfc77fc2893f4cf1b78351dad40058979c20aa"; - sha512.doc = "c3765f6acd4a147ffd2c216b1cda58e5e6ac8dc1202b444fe80d0dd69449b01df3eb17069842ef745e76e88371bf71c178d06c5ad2bc85e3427726bb30b74002"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -piton = { - revision = 70446; - shortdesc = "Typeset Python listings with LPEG"; - stripPrefix = 0; - sha512.run = "c6bf65efaa6dbab5d75aa789df37c823a8b2bcaf28a42e476ee5cc7d36c5a3e830407bde7ac7c365e4dc31fb14b873e2e25aa94f7867fd73c6f8e16d25610f08"; - sha512.doc = "3b5d8305bc3fbab8e3805a9d7f9a5c76c6ea1d6cf45ce31a121c2071fb0de71d275acae3e2225e85aa78c3d24dda559b52842072e917d07788c25b08dedf9066"; - sha512.source = "db4ac567e3d6741a650ed8cf7098fde78a8a0d26225c485c9fbb954494f500d9304719a9f5f32f9277811923aa323e5970c4826a2177a8c0034f50752468f756"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6a"; -}; -pittetd = { - revision = 15878; - shortdesc = "Electronic Theses and Dissertations at Pitt"; - stripPrefix = 0; - sha512.run = "5bd78a90b4c7b9cfa8fbfad66e0de79d09762e06d3bb35a7aaa13ef8ba73aacaceafd8d5b5468de8fb59c6f4c76d364af145e101543c7ef2089dc9fe00e5e9db"; - sha512.doc = "e72d325fbfd3159699621fd703fd539259d1b13ae69d00e771291e156e3ce6cc15a0d7e4d2e74a3ad3492c39c67adfdca5491b68dd6e8ac78ac1213400f091fe"; - sha512.source = "fc1afca13fa1d4b6b0f77dcf693939be3d6423ebf15dc6354b955e1a02ea5655933470de740d0d626d718bd48b5f4dd1ed92263d8524d0ba38b2e4c328bbc135"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.618"; -}; -pixelart = { - revision = 66012; - shortdesc = "Draw pixel-art pictures"; - stripPrefix = 0; - sha512.run = "0643246fbed81ac008f675b9cff8d3194f8eed02937816c41887ad84268850cab50e5c6a7c8df5148f04cbb43c6ab80d5fa4d960d541b42f505f95f554fa0602"; - sha512.doc = "2823d82ac741954d19afcdf74a1b2071591a904183877ee54e8eb9a4dc2d63716f05bd1886691e87d36010fffb929e9d31aee05ec707a929a5fc74c01ed6077d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -pixelarttikz = { - revision = 68520; - shortdesc = "Work with PixelArts, with TikZ"; - stripPrefix = 0; - sha512.run = "c3aff99cc3027fc32f191f6a3329b397d23a11267e9fb89cec0bc5ceac875144375b3b16cdab42b471f16153cb75b21cb25cf38a74eb22c9ec0990f062245827"; - sha512.doc = "e06e2dd718c81822b0701390d8df193ce68d491138e75e929ea0c75881466b4e190cc52cbb58d69e2f3619b1f2ee4ce8489ceff9a35170256d02057cab6b9483"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.2"; -}; -pkfix = { - revision = 26032; - shortdesc = "Replace pk fonts in PostScript with Type 1 fonts"; - sha512.run = "b4d374e5b771e131075ec59ef6713c6433cc3cefb6331a933e791c3774a9d54d6c8427d70a4aadb2c6326c3733abdb562ca103f0b6a9dbcafd87856d20b18a24"; - sha512.doc = "c6819c63aa4cf7df5879a796e08299f2fa132e1244648d17a7fb0b3c28204b0641e56fe4661887c257ca4f5998786c31b1cae2aa64e3163340f08d02fda4c8d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -pkfix-helper = { - revision = 56061; - shortdesc = "Make PostScript files accessible to pkfix"; - sha512.run = "e5151d85d2db65f41b69320ad92611adcc8d211719aa06f39488ba75972f6bd4eda3a9ebd9f13e8889eb84451a640bbdbfd8862c95620304917cca3dcff4a194"; - sha512.doc = "50103799bbfc18a728b6510f9cd3d9aa4cbafaebb1e68f2f3280b3a57efbdbf75ff68f36e72b4442e49bbb04801795250fb3e2d0728968e30c1e70fc5b7d15d0"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -pkfix-helper.binfiles = [ - "pkfix-helper" -]; -pkfix.binfiles = [ - "pkfix" -]; -pkgloader = { - revision = 47486; - shortdesc = "Manage the options and loading order of other packages"; - stripPrefix = 0; - sha512.run = "2b9af06a79f484ce948b98d8ac09f3327a64e2299770ae6746d9762fc6b339d68aa3ad2abc5e67dc385bf4675cf406f170ef706fc101e87f6b58c839b6d3a3e2"; - sha512.doc = "231038d0af3e7293cec5b5e3a9835b1ddfcb60d5c8006009998e5a04638e0ff818ed36abcb2326a56149af0884297059577a3437e9bb144264cf42feed055cb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7.0"; -}; -pkuthss = { - revision = 70496; - shortdesc = "LaTeX template for dissertations in Peking University"; - stripPrefix = 0; - sha512.run = "ce10fdec461d1de90a7b3256db0c29c508427c4b21ae77ed7d08b75d3c95b46bea27c7ed869c1bc8828d40cba05ab84fd7288fa6ae553d786e1ee18e3c468b8e"; - sha512.doc = "7093f5e5d39576e9b57b08d528675d43460713050af48c77f9b7db78be74b16490dda55f1ab8fa425436d59f6428a3e244ee9490d22ca70eb141a68fe14835c2"; - hasRunfiles = true; - license = [ "lppl13c" "bsd3" "publicDomain" ]; - version = "1.9.4"; -}; -pl = { - revision = 58661; - shortdesc = "Polish extension of Computer Modern fonts"; - stripPrefix = 0; - fontMaps = [ - "MixedMap plother.map" - "MixedMap pltext.map" - ]; - sha512.run = "bb0d16d92272c6233284fbcd94864c381ce60343e5b9ac23a04871a515f36c18d5eca92e7ad4f80b1335348f62baa703671984db2c85d5a35d84f725f699db9a"; - sha512.doc = "efde952f17a904492b2c36e49801514b97ac5302b406beca7680a893051bc3821e70cdaad8d01dab479476298154c5ce2db99d43b04cf51cbcc5e16358c9b9f0"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.09a"; -}; -placeat = { - revision = 45145; - shortdesc = "Absolute content positioning"; - stripPrefix = 0; - sha512.run = "476dac5b149811659c663751478f9f224e209dd63954cb88baadcc94c70a4861673512e01c4a5f30097d242f56f1a6edbf4fc225f8b561e49a4e60b02020488e"; - sha512.doc = "0fc82d9b448c85eb3d77a7943b9243720f41894f062d9723b3dd56f2d3e9cd8fcb87a3d57f387f1c87b3ea132fee2e0e08962d9044aa7c756f0db979f4c06a3c"; - sha512.source = "c24fb52958d4bf39ea7925b1b68f2b2a5eea95c4c7bad8193d272111d6cc896b89e1b7ffd923a0e6fd9fd231dba3d1038a8730ae58b4ba059738da646e6b7bed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1d1"; -}; -placeins = { - revision = 19848; - shortdesc = "Control float placement"; - stripPrefix = 0; - sha512.run = "618eb33f1fce0b089fe111b083b0153c146e0d8abbcfc235a86dc6a698a2fad080f8ac38e04037e06b0e1e2782291ca6d01ae69922d181b26b4c809d6aba262a"; - sha512.doc = "2ac2312083ae8abd3fe3f85da7dc65032a4c6bed4d1778c058120b48292f459d1b77d40e4eb6f0afaf88a5160d4fb0eb7f353ba1d93b7ec672f054e58de4d6f5"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.2"; -}; -placeins-plain = { - revision = 15878; - shortdesc = "Insertions that keep their place"; - stripPrefix = 0; - sha512.run = "ba143fda432b8ff9f96d48218ea3b3d29308db3a403c64af5f4a89b8305ff835481d9e0e77bff92530207359115f6a44b006cc58bce99c0f7d3924d1134ef60b"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.0"; -}; -plain = { - revision = 57963; - shortdesc = "The Plain TeX format"; - stripPrefix = 0; - sha512.run = "0010ad47f363ddad3a0433fbc48f4e39950eddab3d08e2eaa6d5eacdc620265d45b09ca23c48f92ac8bedf222f98095c4f91d424a27ef0e8e50ed6d673780c57"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "3.141592653"; -}; -plain-doc = { - revision = 28424; - shortdesc = "A list of plain.tex cs names"; - stripPrefix = 0; - sha512.run = "bae58c957de52e1a45f91d8ea49579ea9c5b50b641331ae8d27146b6bbda1cf93e09abe58a011164ef99e5513cc32d346da7d693e975271e1892674aa5799406"; - sha512.doc = "03f17a65680e4fedd76abf2ec46dbac4b7871c3106c74d3d7c7f200bd6124146b2f78848a3761eaf63b2c909eb5925b78441d73a48a4437ef496b8643777d847"; - license = [ "publicDomain" ]; -}; -plainpkg = { - revision = 27765; - shortdesc = "A minimal method for making generic packages"; - stripPrefix = 0; - sha512.run = "aa1158f3958013b133dd3f9308063543268181296274a40e2ca606c8e684105e89b79cd9bb45d225e14865ca0e998e0412e8edf8057445bde549f249a6d69b2e"; - sha512.doc = "684b4f193f29336d5bd2c494c0c447cf0ac28090a156ae286437033e14507607582b3b9b40bc7b82fd92661a4bdd75f953e7c0b675f46418bb585b6a9492eaa1"; - sha512.source = "44138ffb31ad8f78b0ab917302f48f0bbea871ef390c52b211ac25dd9c16f0687f02348c96682d89c9fdb5586b157c9d6d4ab3f404f40ab173835997ffe7c237"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4a"; -}; -plainyr = { - revision = 52783; - shortdesc = "Plain bibliography style, sorted by year first"; - stripPrefix = 0; - sha512.run = "a42c5fc8c9a530f91d467ab3707fbec05f49764e85b906510f4605749c60bdda224a4ba23be85acd722f48b0958ed7184b4bfe88dc7c3fea4a64e70f9407afc6"; - hasRunfiles = true; - license = [ "free" ]; -}; -plantslabels = { - revision = 29803; - shortdesc = "Write labels for plants"; - stripPrefix = 0; - sha512.run = "7e1724b32035ee32325c491bce57ead23f40ad7377b4c1d5572499fef920b874bd57298e654429203cbea726b8d645a0899807547db80825be163538c1d91537"; - sha512.doc = "999f132df73c15a7b3501487f350e48777543745c5cddbbaf314bcb62eca9b3ba41b51324b61d04e9f1d9cef4b9b8ab851d3528f8893bb21e612a7f50511da65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -plantuml = { - revision = 67097; - shortdesc = "Support for rendering UML diagrams using PlantUML"; - stripPrefix = 0; - sha512.run = "97af8222b28309bd5d8ce5d083ab54bbf550b6327d463de8b481cf4a5f62c0c82b33718b5c95301204bfe8e4858039a0811f491d97c02079d723e66c3549c90b"; - sha512.doc = "b76c635cd30ad2638619b1ded721d468eec92033206cda03cbb638b14be082de1360efd2048f2cb1ac787a4c9232416cd18a82ad7b261ec785468ffdc003b86c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.2"; -}; -plari = { - revision = 15878; - shortdesc = "Typesetting stageplay scripts"; - stripPrefix = 0; - sha512.run = "86e91b884be131df6b4da6441a9fbeb872e0f345eed49005ef74d58eb3ef8a2724da98cc810a51b58d45047d77545ac6b9512612b5946ba29d443dd14bbdb263"; - sha512.doc = "befa46f8ef7c4c89e18339ececbd53341aa50d6bfc8927001d17395cba42db0f0ca3414619c746c78e4f5f4f9cb1f6db813defc7b89299f5b29e9c0866852c82"; - sha512.source = "e03c7b5fe7406c447509d4ae841c13c579c608564f45b83e1fddb066248b53e46f83a2760d745db1a5acae08dff493686d667f0328c9c3d467df6a92d8304a5a"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -plates = { - revision = 15878; - shortdesc = "Arrange for \"plates\" sections of documents"; - stripPrefix = 0; - sha512.run = "f662191f6a053585bbcf5a71635b6f63ee5d713086bd24f3c879f73868b5ab42b6434860b68408fcade7b7ba448845d1dd6a5be12b10bc25be8032b9dcef9615"; - sha512.doc = "12779b285951d5e3d7a0f9d3ded736d5368291b678fd884262908897c4e32bd5fdbdd6bb4eeea59bf922555d5dc8daf6b0e06a174fba2605d4357dcf1f09c6d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -platex = { - revision = 67315; - shortdesc = "pLaTeX2e and miscellaneous macros for pTeX"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "everyshi" - "firstaid" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-base-dev" - "latex-firstaid-dev" - "latex-fonts" - "ptex" - "ptex-fonts" - "tex-ini-files" - "unicode-data" - "uptex" - ]; - formats = [ - { - name = "platex"; - engine = "euptex"; - options = "*platex.ini"; - patterns = [ "language.dat" ]; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "latex" ]; - } - { - name = "platex-dev"; - engine = "euptex"; - options = "*platex.ini"; - patterns = [ "language.dat" ]; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "ptex-fonts" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ]; - } - ]; - sha512.run = "4a2682c51dc82e078ad14b30545dccd95f600ab02d5d05fb5c44c214221a3947562432783b43ea505b5199f37a1175a792c709282999f77b17b532d2a61c6e54"; - sha512.doc = "faf91bdbc3e0d2ba0b13a914d54fbc4ce47e27c1225e5412b78c1217b2e3f6c22886a9f6f85b06e5e3f38a8b0c7a9aaadb4606721799749ae6ef5018f7bb08bc"; - hasManpages = true; - sha512.source = "a1ba3fe817e5f4aa23c2c4c9b7397cdda6ecc889ee244a05fd7eeda59fba1baa02fd29820107c887982983b2115631f1aac7d19ae281f88779b3e99253b12036"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -platex-tools = { - revision = 66185; - shortdesc = "pLaTeX standard tools bundle"; - stripPrefix = 0; - sha512.run = "87646f8cd885b75c3e7dc0edebc32675afe2d02f87c37ebf6abda7b68256f002440fd1a94f3f13dffbd8a7b694f3813d4115621f931b9a3a9d73491bda7c4296"; - sha512.doc = "cf04b2c5d4df6d68bfdc3b0a3a8dc0f988cb0549252b3a6ccba58df685c41a9312197a63c97c3ff63c1ec15177a43d1e8064fd449054eed3df968fe213703552"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -platex.binfiles = [ - "platex" - "platex-dev" -]; -platexcheat = { - revision = 49557; - shortdesc = "A LaTeX cheat sheet, in Japanese"; - stripPrefix = 0; - sha512.run = "1409c7311eaa82811236d869b04e9f55fa2a96804faacef4820072a4813055e70ecce0e8c155ec19016f1ed4e57bebe0b362c5457d1258f317a40fc475d42aff"; - sha512.doc = "bfe47b947a915099de15e5519a3aff201b327c31d29c1966d4fd3e9b73581792d918b461ed1944aaf5e8a5eb7956c38579a3fd972f189b1e3abb903c7c904cbe"; - license = [ "mit" ]; - version = "3.1"; -}; -plautopatch = { - revision = 64072; - shortdesc = "Automated patches for pLaTeX/upLaTeX"; - stripPrefix = 0; - sha512.run = "1313cf815568dc385d5d1691bba7e57e246c45e71242acb94904ca0fe796940afb59bd3d07f728a9e407a9a0914b3890a7e7dc3c8bde3ddab7b36c3ed9ffcefd"; - sha512.doc = "e4bcfbe263cd17dcefdc239f06f1287ff8d936f0a6b5ea89f914d7a4254e08040c076be0317f4e3cf2aa96542878e1c93fd3ad5b9633f4c3c3d85ee9d719f4d2"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.9q"; -}; -play = { - revision = 15878; - shortdesc = "Typeset drama using LaTeX"; - stripPrefix = 0; - sha512.run = "040468367a783e7bc49dd4b51e22a72c41ff2985a52e2551b3be6780767e17c8d11178f097cc66f5683033eb03cc2ebc2c08c1f4477daa7b8f9e22d8a40dd385"; - sha512.doc = "97c882b12ab350c5b0fe066e04ea7c2c136b1dc7ca29e51d8f89ed695769c9ef1ed255c3c109ff71838bde91d25167a398230cd25809f1374ca306fbd9ae68fa"; - sha512.source = "3bf9b5449611ce72af26a68c99a7ea813c7eebce59336d5c7bf65da1a870e6c26238f803ba8e07ee2a084826e6bee7ec819a919e7abbbbf11946f611cab17a03"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -playcards = { - revision = 67342; - shortdesc = "A simple template for drawing playcards"; - stripPrefix = 0; - sha512.run = "3c7b076044328ceed3005de84d628d6d926f93c1d759982c2e37c8831093aa12c0dbff71f8b8bfdbd171dc545f313729c7c11086a3e529858086896bb64899f2"; - sha512.doc = "396118759c2f02c709ede5e6b4be042d2348cc38ce4783fd9f612a6bca887f9237f86662b8ce84a78a6abbedc8e2ce9e2c61be2f2c818e262c693149b7125019"; - hasRunfiles = true; - license = [ "lgpl3" ]; - version = "0.2.1"; -}; -playfair = { - revision = 64857; - shortdesc = "Playfair Display fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map PlayfairDisplay.map" - ]; - sha512.run = "2c75ccda034c607fa67993922e498347cf8a708c31360ac63d8304ebcf538e2012529864c6c3102a63b0320db68101fddae021ec396efaf0396d4d609cd0d711"; - sha512.doc = "006319162a3a7035955064d7ab99e704bf828cc7441a9c930cfccf4cb7e70ac52ff672de3ce8b415fbfb20f29a0b4c09703fe0e3715d15e38c1293973bd3a86a"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -plex = { - revision = 69154; - shortdesc = "Support for IBM Plex fonts"; - stripPrefix = 0; - fontMaps = [ - "Map plex.map" - ]; - sha512.run = "4180d4b5ff2d6843ac375a52bc3c63570638cc29f7d3bbda476dee962998293ce4b201817e056d5e87c20bd8280336b65bc689a8e1580ab8aa6f24164002732c"; - sha512.doc = "175abcc07f213d5837070171b7fc483aec2c26b80f530ca7ad7a6f571de028c833e32d71a4c465fbfbb803afcba934e68df560944b8b54b20827d31cd21fa9f0"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -plex-otf = { - revision = 68238; - shortdesc = "Support for the OpenType font IBM Plex"; - stripPrefix = 0; - sha512.run = "1dadbb3073ccdf40e496f89cdbd31af8ef37e810178eeb7aee49e9c1abdef42f28e58bf12988a59b9aee95384de842cae8a827e8ad8968c7ef37e8442e596d21"; - sha512.doc = "226ddb9c201dabf158e0e9a5480995539d20d14ef34f5ea9498f9fe5966a1f7eaed00e1bac62fe17eeb710d0d3f68f9397fa568ee1a91076552130661dd6e3f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.08a"; -}; -plimsoll = { - revision = 56605; - shortdesc = "Fonts with the Plimsoll symbol and LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map plimsoll.map" - ]; - sha512.run = "c0b44cf022ca470767d296af1ad80b2d5ede92adb22635f7ef34b9fa81ec523f769dfbfa6a78005a46bd9a4886507fa7b3a4f761bcb8f686dbf736e3ad92676e"; - sha512.doc = "9ee880e89387986e228f357f59981b18fa8565d60e88d6f1b15c4109f9f7f20108c447fb995f0edaf64723ac37635b56cb5d097e93e0374a0f64adda4215eed5"; - sha512.source = "2967c9b53daaeba02405da837050a53c69b725da8daeba1d6a9c58dbef0387628aa6dceb07815c5bb0d2cc37c6a1b66f5c64037ad33d74e1179dc3fc0f0431a5"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1"; -}; -plipsum = { - revision = 30353; - shortdesc = "'Lorem ipsum' for Plain TeX developers"; - stripPrefix = 0; - sha512.run = "203b9cf56acbc53b2a3c195ba0a27728c93db91bd4be48441e61967fd0488cbc4ef96485ff0b567be64ddba798bb44308cb7cfabd2a2ac89d294203d93ff4d29"; - sha512.doc = "6d5c77102abf42304f8480f74a073ba25b8cf317c3a6cf4c22af6035b17b07ac213866a10ead2a53d033b214e4a6d6e642d043d847e61fb165aa8a02ef90f7b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.3"; -}; -plnfss = { - revision = 15878; - shortdesc = "Font selection for Plain TeX"; - stripPrefix = 0; - sha512.run = "0ae352953c5981b791379d9da9b61ad8837c22053f3371f351152078f4dce6b12615ed771987115cc094613ddeb0c275568e1d7404f321516418d218d9c68473"; - sha512.doc = "9569a4f77dead68ad8c76794f03e6ffe147e1801324291fc13487b05051fcb7f307971e65edf66024c169411cee9b2940eb4daac4d073773e67f2f303b364870"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -plstmary = { - revision = 31088; - shortdesc = "St. Mary's Road font support for plain TeX"; - stripPrefix = 0; - sha512.run = "72d54627fd8a10215ae9fe417423c46240997f865da8b4f4b976290ded7fbb0360477db27f140bed0ceb4dfc57c42a23fe5ce780ec5eeebb9b3e30b372adfe9e"; - sha512.doc = "6e5c425b7d484bbe187eef030fbc9d6a0ad50d6d8e22c5f08d3762cf8082b434de8a4c5d13251d90a016715c9a85aa82dd2637abb6e17a6973a08514baeef7fd"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.5c"; -}; -plweb = { - revision = 15878; - shortdesc = "Literate Programming for Prolog with LaTeX"; - stripPrefix = 0; - sha512.run = "1899a3498d10950f67d24d2d7bf0488cd8867bd862960fa892581137bb1fb3426dea9e193f8993ffa93df11684dbd1f25bc79a98489317998936ab4186e9a22d"; - sha512.doc = "9a510c4fd534c9451863a47fb8fa3911cf5199b295b1e3e2739cfc37ca0351d28fa1876e5456cf05ac7cc05f9f60761578ba6d77841ca575908cf4f0c9f0e3bd"; - sha512.source = "09039cddf52bb2080fa6f9dad964f267e43d04504dde81e010727f4957a4de0225b0e23c1cd9ce7222ee1ddbf0d6f1ed1405d0405cb849adda77d99086402d1f"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.0"; -}; -pm-isomath = { - revision = 60368; - shortdesc = "Poor man ISO math for pdfLaTeX users"; - stripPrefix = 0; - sha512.run = "89e11156c2a4b7d05fc3404b4badcbac94ed190db4c215e573c84cdbc8fd46c5775b19272e423df1806e8a38d61d8c071aca7d38380637c79f06c411a05ee468"; - sha512.doc = "92366bb3963f1615de3cba205345d5d799fac04bf4935574868be140109756fe9a9a2d7cf7a685918018919ae2350e9ff717cd898fc0404205f21d56a359ebd0"; - sha512.source = "fac0256323bf26f55e5908c718b8622f4996b2b792ec3770b1db4a31d91ccba84a8e21e839710e1d6305448044c5140fc38a4eab06954783e428dd94008d2fc4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.00"; -}; -pmboxdraw = { - revision = 53046; - shortdesc = "Poor man's box drawing characters"; - stripPrefix = 0; - sha512.run = "d229b15e57fa76a9e8e9b903b5fbbb99d81d3c8a2b1818d71c103df7f2a1e9bcf79aa8396b6ab7a2ce054371d212375b968a4a5d572fa8686223baa8dccf4eff"; - sha512.doc = "42a439f2f88235faf7302400432d49166861476cdc43708f84780d153bdcbcb55dea1a6b31cde2045d0b99d48c2a4f51ddae8bdee08937308c5de02e9b16a523"; - sha512.source = "77220cba1cb61836f0be161566d1f177f2c503901b0fd4c0052dae81b457f59364596eaa4a32071b5c90623509f646ef3140f67e29a558b4910beb3a1d63cca6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -pmdraw = { - revision = 69366; - shortdesc = "Draw elements of partition monoids"; - stripPrefix = 0; - sha512.run = "ab2b72364f2833ec7362d7284bfc10033e72c3f20c1b4f6ff7a89a8368bebd5aea2120c5cb82c27bf924fc1342030d83e61a8b4b0343aacadd09247890495325"; - sha512.doc = "60a9292a2705281b8f32a2789b34e0dbc46cd8d475d7c946e00e8f0951b5cdd5a29cc145e0cc270ed87b52a23f819552081fd78f99fcd529aea57027d4d71b23"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pmgraph = { - revision = 15878; - shortdesc = "\"Poor man's\" graphics"; - stripPrefix = 0; - sha512.run = "b6e9f00789ad102b6cdcfb0fe48e5ca4f6976a7c207088c0c3e8b0c2d4fa376bbb932500d42133571a6e18747615c77eb6df2b4872ba86f853e3069ef198a671"; - sha512.doc = "35f45f43c95264d4dbac5d12a71270fd15280f9008d204e12ab0a3bc6a62939e6de87233c94eeb7cf9627464d5f383c3d8c2cdeaed6eed9473a3e5fe380cc5e7"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -pmhanguljamo = { - revision = 66361; - shortdesc = "Poor man's Hangul Jamo input method"; - stripPrefix = 0; - sha512.run = "099517421e9590597157121de5d53eccaae0784969288762ebd8e35a31eb12ce6d5466f890204bbb69d0d9c805c314b6a475653a1cb26ef270672683e2625a24"; - sha512.doc = "12f324ea6c852b134868f4365a53c2f434adac235d01efdbdad0d5df138587acb28fa7324e10f5fc996c44f43289322bdbaf764107cea4e66d7f999b71807384"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -pmx = { - revision = 65926; - shortdesc = "Preprocessor for MusiXTeX"; - sha512.run = "433287732fbb2cb47886c6c78c923d5b6a1b5c1e71e3990084cde9bb288a282fff7fb9134a5165e0fc0908b8e60547e23cb900bc82b99717133d7600fa17dc31"; - sha512.doc = "dedba4570b68a8628442716dc3a9b1699e5f531aef2737e4b3f47862a91ba69bda91d6fe6692914d2bd7b8fe3188a83fdfce8bdd219ab7c4f238a9c6ec273ffb"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "3.00"; -}; -pmx.binfiles = [ - "pmxab" - "scor2prt" -]; -pmxchords = { - revision = 39249; - shortdesc = "Produce chord information to go with pmx output"; - sha512.run = "0a8f4a88834eb22d3f11ca567f37189af7834370530c6dbca4d83482e94cfb48b128bc1290e7f3ee718bffb4df445a300ddf5081805f88002f53bcf8b434bb3c"; - sha512.doc = "d4075306620fa1ce037a37b9d2646d197348f6482e1286ff6fd99641a8b441b3d830a1420dbf6c025b8d11af78363b717a1acc7ea6b9e2954aa4f11ef04452ad"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl2Only" ]; - version = "2.0.2"; -}; -pmxchords.binfiles = [ - "pmxchords" -]; -pnas2009 = { - revision = 16287; - shortdesc = "BibTeX style for PNAS (newer version)"; - stripPrefix = 0; - sha512.run = "5e20303db90b2db63a3d6026db582026df8b9e910942303c952753d5dc27928ec70a8dc21edaf44cd57e04d25e93a87a5f28caa769a0425b47c78ea9d56ffa86"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -poemscol = { - revision = 56082; - shortdesc = "Typesetting Critical Editions of Poetry"; - stripPrefix = 0; - sha512.run = "e9bba80cd6fcd7b1e7b0e46fe594b3e25986dac5fe39d329ed4b8e15bc6b542e033a392abcad4e0c67d5401066703a1a89658ebc612d2adcf846de81b34fb78f"; - sha512.doc = "e8e3ffc366be12ec5273c85a352a6c44ee22af072fdc9e63db390c0d3435e390c28ca83279a1a54f95af991890b7e47ba896612407ed605e229ec184cb1e5096"; - sha512.source = "cbb9340d8241dc8616f997dd962fb913ac6d8d46241c55e37bd30fbea12cbe8f331d07268653c9100928b92a171245489685761e091b6d3e2b6be6558779b683"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1415926"; -}; -poetry = { - revision = 53129; - shortdesc = "Facilities for typesetting poetry and poetical structure"; - stripPrefix = 0; - sha512.run = "1f618b339fecd44d21029ff9ecfb95a97e47fd5d20089a2115d70c8336738c794e1c639c78a16b5756d591fbe3ad52576e3923f6f86245fcc9f7501008382eb6"; - sha512.doc = "540a209251cebb31bdc87143fc8b60627a9296f488f58a81faaefb3c3cb66517e8a670e81b4363840cfa1220697d26517fc1bebedf43f62a4f1c18e3e14a8d65"; - sha512.source = "59132d5d5deb62236ebdb4ec0335f3557cb4a99d4a5871ec40669801338f5f1b72fe3023a09160feabe2e0e1d2e1a78c8b803dc4d21c63cd3efafd4040224f9d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -poetrytex = { - revision = 68353; - shortdesc = "Typeset anthologies of poetry"; - stripPrefix = 0; - sha512.run = "f56937e0c18fcc1db0872ed27d3ab9497e42186552f5eb26015f7c28f1d38091544212767de088e8d94f6d1e15a5ab973bb1b4960f8d4633964ad9aa295e3b87"; - sha512.doc = "3db45607b5d95695c3f54ab924912c39ed3c06d956374039656d2a2d3c25d1261541124d7a89ba05cf935ddc4b36b7cbf4c907d02a6b774748ae96d032b30d4b"; - sha512.source = "8c43393c86bbd430b0e98695dcecf110a08c5f35f152c56aaf8fce946467803810ca87a3b81fea10302b5dd079d817e4874440c069fb466a2773a7c086af40d1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0.1"; -}; -poiretone = { - revision = 64856; - shortdesc = "PoiretOne family of fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map PoiretOne.map" - ]; - sha512.run = "07e1479df1d89b568388a855236d997580cb76ca6ea8f45b55622425d10584037cec5e17a734c24a0eb0a9746966e94137026c37d4696b475e641806d07a7ef5"; - sha512.doc = "c164f53258e08e74cade46f03f1e6d3d538a0f65cf3086629150c2741488bd33a82fca89d91bcbb83045d126defc3ee9493fc5e1d05e2c567464d4d29afc0cd9"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -polexpr = { - revision = 63337; - shortdesc = "A parser for polynomial expressions"; - stripPrefix = 0; - sha512.run = "4d04a0a61b5f50c61eef41360aaec305b727e6d8686e8ef1742098a7980a6508e3455a8282a9cb0b4549d7dcd49cf065c49bbb7e710ca5120cb32567fd58fb8b"; - sha512.doc = "d2477a275477b6e47461e769fbf43abfc746769582cc916eab153fb7ee19e85285561601169dea0335d0c525b79c5435ee2d44ba931739eb9d903a3f2e3b670f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.7a"; -}; -polski = { - revision = 60322; - shortdesc = "Typeset Polish documents with LaTeX and Polish fonts"; - stripPrefix = 0; - deps = [ - "hyphen-polish" - "pl" - ]; - sha512.run = "24bdb98990f66e89085056e6ad3e0930dd16d0f4bbd07a2c9a49931796e143505276d2025fee21b2b52d927c3b2992d31f4edae4668cdb549f6f00ef43dc1c69"; - sha512.doc = "755e7625d5ee1e4457e7ee518469d585c9c1e566c57bf147c62195555ae91dadb68f469127cb18a7c30cda1468129db09cb09b1974f5273d41c9491a6e1d5ffc"; - sha512.source = "8e216956a95df02134cf411d170a75309c3f167a5bf7d78f77c4e47950c8a5da52e523e367f5ce60492fc0ab7cb205e9b57835b883225752731ca094d7c507b8"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3.6"; -}; -poltawski = { - revision = 67718; - shortdesc = "Antykwa Poltawskiego Family of Fonts"; - stripPrefix = 0; - fontMaps = [ - "Map ap.map" - ]; - sha512.run = "620708dd3f1d2d8b2601377486631c2bdc779d06d2016e1c9ab5869afe00cb88dcb1ebd055b6859ad3e3dd25200c1079b723613283f048c7cd7354977b66b8b9"; - sha512.doc = "51067d3e930f9cae71d5cdf11d6ac83738e23539c020c93e6f4d8b460e63b04e77caaa41927ed8658056d96ff4fdcfc087e591be991e10c7e95a6b58d56ee368"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "1.101"; -}; -polyglossia = { - revision = 70496; - shortdesc = "An alternative to babel for XeLaTeX and LuaLaTeX"; - stripPrefix = 0; - deps = [ - "etoolbox" - "filehook" - "fontspec" - "iftex" - "makecmds" - "xkeyval" - ]; - sha512.run = "d34cfbeffd1cb2eaeef0d7d625a1f1ef7e2835e93eb88a53b2d44f21562c76cab82e1f5637ebf05b25c0fd0b56738ef7946bf7f9607766ca57a7658f98cb2647"; - sha512.doc = "f59aee2cdfd6ba067e4ef5c20503cdd9317ab854ae35b0a04044b94116d4fea9fd6b839bd4f33af934b207f1c660e126c223477cc57b7a1ad81db54bda2507d5"; - sha512.source = "cd285a93795e6b0861eb6e930384c836c83463cb2c4806dcdfff2966f23cd28604bc113b48916332d60ddd7cf2e747ece902b7040c41ff3d95b9eb99b0c9ea56"; - hasRunfiles = true; - license = [ "mit" "lppl13c" "cc0" ]; - version = "2.1"; -}; -polyhedra = { - revision = 68770; - shortdesc = "A TikZ package for drawing polyhedra"; - stripPrefix = 0; - sha512.run = "26169961ab8e21114a4c44470da03fa510822b495f36afaad745c0324d45d5bd64e4e5587b7601fbb97156ba02ff18a2c253e175296f15f2fb3915f7bc15e060"; - sha512.doc = "6a083101ebef3810467cfe377a820ff178e752c62655462153c661222da3c75034a1735a4a39d76e963fc6773441df423444d40e040f39d73dccb5adc6fbc34b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -polynom = { - revision = 44832; - shortdesc = "Macros for manipulating polynomials"; - stripPrefix = 0; - sha512.run = "bbff103f5828757f9c58c768ba46dcd9197629273b12d997e80e299dc1cf6a34e851fa4ebe088d131781eb6efc1fbd39cab602ba23b791c68fdb0e12f69440aa"; - sha512.doc = "b0fdee90082414d88469ba5067f1c16279ddfc8c13627098bb3c2adfaded3c355cbb161193160fc5b9682d45a10216c56fe2613855528f9f4965479c681e6355"; - sha512.source = "cf9dc9f13290bfd84e2956630eed115a132bcedfd34e6da076b2fa0fd4840fc5fabaf995b44f2a8f3c3d9ba9de851683a306271b272a83331a92fac367d82a57"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.19"; -}; -polynomial = { - revision = 15878; - shortdesc = "Typeset (univariate) polynomials"; - stripPrefix = 0; - sha512.run = "46324509f078d9e83f4d94893454061636fd1148d5a2e9b59af640f617d82ba1d7397c7f7bb68ac99a83945354c875d3f29853e5ba38da59a2812f5f45ccacb1"; - sha512.doc = "b570f3abf21a480e0bce2c08e44d97b488e9a0758d712cfde3ccbc45348eb95486c121662e296049220dd2802edb387651e839c2a819058111a2839049fc5964"; - sha512.source = "db4c1d698b2a096ce6c848922beb747f70a874914d4ad1a468080c55ac0afbd89330c0665006f787c32c6c444ab601c64e7173ce9a5bd9241c1ba71582c0ea0f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -polytable = { - revision = 55837; - shortdesc = "Tabular-like environments with named columns"; - stripPrefix = 0; - sha512.run = "2ff55bb460357dc11b274ad3233e5ddd67fbfe05e60d25bcc69f1d06f9b0f247831cb5db4123b7ff859dfa88bd56fd5bdfc24aa992e98f5a17d0f883b40fcd2e"; - sha512.doc = "5bdc4a4c8f95255343fccb6db79da434a6b883e0e2a769eac5c8accbb6343d3f5b8de2fd465c5e229ca0ac3e9964fbd96c50062440970921ebf70f01a3097943"; - sha512.source = "dc5c2c007012a4a57a20b569adf784afef0db7b22ae88ac91f54bcab5f8a25a3dbde48a118ff5090d806d42954ea28276ed2adbddfd974972012a645805d9fc3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.6"; -}; -poormanlog = { - revision = 63400; - shortdesc = "Logarithms and powers with (almost) 9 digits"; - stripPrefix = 0; - sha512.run = "e67561e7818e8ff9e02a43c02b8b992a26bef477176ce36eebaea37f56ea182bc9bedcfa56ffd8581b5d696698718d87f5319ac93d79032c4c27780ceb964851"; - sha512.doc = "7d99c4036411bd892bc0a520a42c5e2a1c1077c89e58e1be8a9fc991b87da3d22871e75669c814358701d17add447a7e6546a33a8ada55f55ce0814296273f91"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07"; -}; -postage = { - revision = 55920; - shortdesc = "Stamp letters with >>Deutsche Post<<'s service >>Internetmarke<<"; - stripPrefix = 0; - sha512.run = "1b7ebc9b82ae1dc0a642892b6d74ef94ff0810ff3dda1628f741244dd17dc8d5013b42e2369c1dd6c27e65b965a1482814c62eaef582cd3bcb4c945fe0aa76da"; - sha512.doc = "5f0d2dc0a4986509862b17af55f590f110b3dbdc697ed4cc704d31215945e224a0029087e04cc8602b059455447fa9214bede0aa63509958972c9dbe2cc4a0e9"; - sha512.source = "68d0ae1488f2288b7b5ae3aba79ca877ce6f97e1134e61859a81c77bbed47c9b79d3eae07a6ce0bb5fb3645078fc67d2c6cd4a5baaad1460e09b4b34d3d597a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -postcards = { - revision = 21641; - shortdesc = "Facilitates mass-mailing of postcards (junkmail)"; - stripPrefix = 0; - sha512.run = "0e358697b47ee74afb9fb6bd339ea4a76457c78a76a37de6039ac44cd9ce1fc28a3866c42d988ccebf025d0e08c4c092a2b647cce4841662242f740f12297338"; - sha512.doc = "936c1f923bea76aa323d2c8ce9949cea3364eeb1a145e735ff5bdf609de4c54cc78125392e9e3cc914180815bb9dd5bae63e50c0000b2143fe7de94c199bc50e"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -poster-mac = { - revision = 18305; - shortdesc = "Make posters and banners with TeX"; - stripPrefix = 0; - sha512.run = "f685c2c6d7d2795cf80702c0f8b4da6661a6d076dfbefeeeb071f21ffebd4420c7777681e550ed8ce05726a4392f526da42cecd6e3f26b5dc8ba775494589297"; - sha512.doc = "d06f06a4432638ce7780923818cbe638edbb21f836566fb984353aff0bbfbe0905adfa39cc69fc59c87c9e6f7f2c3c268b7f2ef9a55a0f0a2bf0b5212d9e2124"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -postit = { - revision = 67344; - shortdesc = "A LaTeX package for displaying Post-it notes"; - stripPrefix = 0; - sha512.run = "cb825667ddd1379b07870c388915abf36efa1249036795d3cd5ed7f41a87c046c00c7e292e542dad6a8b3b3090f327c5cff5e173220d49cc829f0fe206676aae"; - sha512.doc = "2754e847a190afa3ac22166365a0ea12557d939fe4d2f06dc0c34a518da82dfbf7ab33c8ab1ddea5d3d95dae13c013f238abcabcf6444d956393fe61b00f4a6d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.3"; -}; -postnotes = { - revision = 69102; - shortdesc = "Endnotes for LaTeX"; - stripPrefix = 0; - sha512.run = "a2b8a54ad8062e550af61a6f51d816d11891976525aeedc5267923665ea63967a388bde67dd2ad537b2c4d8fc3ffc738f05064d2fd26b0fbf7328eb806dfc0c0"; - sha512.doc = "28537fd0437da707dfaa5dde2fdc92d11d4de5bdf99e8fc7655cc60533d8ed5bd5b9e1d680f0269b2d60e498fee577a3b069957c6a5ba41fc55dfc1631297853"; - sha512.source = "b3050fd301f1a332622912a082dfffbb8ec4d172d4e7a808491f84b2ce7e494d16756a5ac7412cc5d1590d6a0f1ea5ec5a20bb7abb61b051e9f4a5179351d39d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.8"; -}; -powerdot = { - revision = 59272; - shortdesc = "A presentation class"; - stripPrefix = 0; - sha512.run = "c8ab1d65e2ac0695cac0e8a0a683fe712ba51e8aa028316901e1ab6e31b0be68348066fcf290b03321c0bacbf5c0b16265b28022ef38137a3d89bd25aac58dd7"; - sha512.doc = "99e602f4f96d6b805a8cb255d72f49c62e75543df2348471e31952a2588125724dfac07cd82865e9559220ef98a7b8847ab9ebd1ab803d5e155804f3669abe3b"; - sha512.source = "cc32d07b304d6214fca1244823154290c68131111c2144592fb1b4134c59dcd0ab110542bcb64e7462c6959bff1bc9d1e2706bea66b0bed2abfde9c80255af4a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -powerdot-fuberlin = { - revision = 52922; - shortdesc = "Powerdot, using the style of FU Berlin"; - stripPrefix = 0; - sha512.run = "73026a8e853bb9141ef3d8915768ca07a9f5caba4e810cf08ab2f41b8c6ee42071065e347ecdc1da070686765591d5cca02a372bd256fc1f9871547a7e1657a2"; - sha512.doc = "f2011b2d9362cdd1006714e71c3178b279cf764dc82f10ac31370d197de98a5131dec0c64bc17d4746a554396687e115e6880ae6940d902b34dbd91aa75ba308"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02a"; -}; -powerdot-tuliplab = { - revision = 47963; - shortdesc = "A style package for Powerdot to provide the design of TULIP Lab"; - stripPrefix = 0; - sha512.run = "91a8008d0675ea36676682d741ffad1e2f842ae37b47da628bade8391b2c775d7a756d31d5169e087ca0c4c0b0e958a2bb34d5143f905439e9572a6e72c4dbf2"; - sha512.doc = "5805d79f125ad94bc0818f52d31e14d786f4f032e03a89a0ec8ae69433d56654b6acc864563e3273664576a59880bf86de81756f76cf9b920a21ca8331ce117c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -ppmcheckpdf = { - revision = 69527; - shortdesc = "Convert PDF to PNG and compare PNG files after l3build"; - stripPrefix = 0; - sha512.run = "9c6612db37dafa8ab2771e42443f528806542b0c949b67adc861440bbcc85492a726524f543406daadde3d66d20bd32eb521cb96c719f948732c3a84e4702d7e"; - sha512.doc = "5bf1e2df2c702a3b447787cfdc77b243578f6c59ea4c46ac352628dc647e55da9837375d5d960e17d8baf3d1fe538abb81cd33f08e6b0f501159be8f84131ef5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024B"; -}; -ppr-prv = { - revision = 15878; - shortdesc = "Prosper preview"; - stripPrefix = 0; - sha512.run = "4bbd2404d9cb4bee9de81d463a6f4966e28409b07aa744e155f398f07e513dac4ad262fb3ac81717dafc9dd9abaed2789c08d0cbf0ce29137739886b2ad1dc74"; - sha512.doc = "b8228988551d32a5d5b3ddfc59dde6af1f48aece8f5c0f8889fbe479db6c962d77b687fb5593079796393a255350dfc90965fac07e241d4f0a48027927065e67"; - sha512.source = "cccb93596677625d323b0ceb6743fab15c4300f3baf09846054aae249608f61ab2a0a5bcfd9a7baa2b3a9ec86b2fb90aaee284608bb908229a918436c9acd772"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13c"; -}; -ppt-slides = { - revision = 69568; - shortdesc = "Good-looking slide decks a la PowerPoint (PPT)"; - stripPrefix = 0; - deps = [ - "crumbs" - "enumitem" - "hyperref" - "pagecolor" - "pgf" - "pgfopts" - "qrcode" - "seqsplit" - "tikzpagenodes" - "tools" - "varwidth" - "xcolor" - ]; - sha512.run = "9206d0b59cb501b129ffcca39639593317d2941ba1a982d036296800ce9486bebbf87d0194b43ca811365044a9dc8d27ad59169b2e187d229511db4b08b878f7"; - sha512.doc = "4565f7aadae38518e2e5f68fd9994670a62b492c2e57344cbeaff4a60d601bd95da23f0c5a74c98507f5023d87d24c73199bcda6fbf7cbae6719951debe7ec77"; - sha512.source = "2a7bf0d2b9229678565ccdce5c8d01fafd07cc5bc3b2000add41e027ecff7a38149bee9bb04d841dfe0e9993e91c0b9456bd5039c2479b775e4710169540bde0"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.3.2"; -}; -pracjourn = { - revision = 61719; - shortdesc = "Typeset articles for PracTeX"; - stripPrefix = 0; - sha512.run = "ad416756dca8491f2920d13b8374157bf1b49f236cf2ce1f66d6415c8de7282801645f5cedc31f2652304b1133f787a32ca4afa9f0e65a8bd5cbde956e54b82d"; - sha512.doc = "2cc3efac5b128bc6873034fc451124cbb9d6c4040d9d1c1053367aa99d57687eff642cc55a52d833732cfe88c5e139c67998020ae220a1657744140745ffec30"; - sha512.source = "819dcb9329ec553889d50646b7ac4ec52e2d82b329ad48d6b1dd391a7f575115c49c317497ebd32237c3925741cc6f7d497851bc5fd938d3f8e7341a05150d21"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.4n"; -}; -practicalreports = { - revision = 52312; - shortdesc = "Some macros for writing practical reports"; - stripPrefix = 0; - sha512.run = "71b180b863f5405c145fde98bcae5942ed186de52654dabda4ef1a859ea292e6c2e6f1a29fa4c4320f2f9a442699844d4268fddf0200281c0f1a7477b49d9f5b"; - sha512.doc = "48159a00f0c64c6a05e56d9c01b1e7c1fcc8342df3f762775c33377d45b0621e0e933db3097a5d489ddefeed1e0c155893e99ebf98c98fdd11df9b33e05e113c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.3"; -}; -precattl = { - revision = 63967; - shortdesc = "Prepare special catcodes from token list"; - stripPrefix = 0; - sha512.run = "35ce5ceaa53d3edc0fa92c8d9e5979255fa94bfa6818f8100b29f6fddda22f947c0fd2899efa5b4c72bb124fa5edd4f25b512460e7d370068eeff3d0ae0cfd2d"; - sha512.doc = "869b3ccb9aa47107b759fbaab3980168332d51eb07e4fc77f5fa31056f1260e5d89ed54e4a3329afeb828445dec17e43df899358e7880ebe364705006a3571ab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.0"; -}; -prelim2e = { - revision = 57000; - shortdesc = "Allows the marking of preliminary versions of a document"; - stripPrefix = 0; - sha512.run = "9f9fa79056db5be108c3b34b2ad61d964ba35fc1b6f7e9375c9e2ccbf66cd2028ef9e6689751c90c9ca236719ed1a001ae26753305fa3454bd88650cb12ae82c"; - sha512.doc = "196640bfbf73f3f269f5b27f024f4c1e677b61b6cc452d796f025196786c166f60bd2f41ad83ac6cc6b9eca56778a07b77af05fc68f05330f14c92cf391bbbc2"; - sha512.source = "1f2629a45183a026fe7bb3c83baa96ccf437846f902b5075fc210e47b6e3b99e81e5983bdcf617ba7bcdea60851154cb70bee3abe227420b5cc3c5a65e631973"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.00"; -}; -preprint = { - revision = 30447; - shortdesc = "A bundle of packages provided \"as is\""; - stripPrefix = 0; - sha512.run = "66ef40f1f9bc1ef3348923e781ad92dd0174b9c45e16c97662f30971a449dd74580391e1f23fed031a41995e65ff90a6785328de0372cea53e3ce946da469d60"; - sha512.doc = "b5e5fa40832249c5a0faa24c26e8b3a2a73036ef007dd3a61adb6a7989926c80e018fba52a66078c3d7b39e76901cc041ebcb9985ff29b53ade2c057abaf1376"; - sha512.source = "a7fe23d21dfee4071285ac0ca77a0b8936e8c149b804e9fc19e42cb5fa5eeac23ef3ed59e0433a965ec6203a1b031d2a76975248e624a6452e8fe6ea016be1c9"; - hasRunfiles = true; - license = [ "free" ]; - version = "2011"; -}; -prerex = { - revision = 54512; - shortdesc = "Interactive editor and macro support for prerequisite charts"; - stripPrefix = 0; - sha512.run = "4238f65f9ef42d218f092bc436fbbe95ddcbcee44a9032b74020a989696db3ce1481460162171f5feeb16f7507a41643443429afb8000d5bea0d7bf16e8dee96"; - sha512.doc = "af17b95e20638fecfe6d431cc320b6d3207dd739779636206899d7bf39c26018718521dabf76adab33db28f975e99d2b2dcd9b13a164dc24927d2017e947bdba"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; -}; -present = { - revision = 50048; - shortdesc = "Presentations with Plain TeX"; - stripPrefix = 0; - sha512.run = "b22c0bb6803ebed5cd26aca4a9b55f2c7b506cc7e8910346a07437d60007310a3d2e3549040ffb2616df7f173279342f2334100aab14b589d0cc9e710ea89369"; - sha512.doc = "e43a5de9c4bcf9281416963a898e350ba0a0b2d1cad92cbc97d99e2ee9d25f8407a09f024ec5d03a43fd3eee58e1c40bf99ebfff13913bbf85465588b4cf9710"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2.1"; -}; -pressrelease = { - revision = 35147; - shortdesc = "A class for typesetting press releases"; - stripPrefix = 0; - sha512.run = "0f983d4f836c03ede4ed6bd8c2c41dc69ad75a28d9006ff7ab534c6e483e84e2151bfd93fefa43ca327fbeec14787b43205457a9cf1e733f8a4c3a7c561498fc"; - sha512.doc = "f107b506ba50ba8ed1b655f13049210ec4b90620348ac708afbba4d992470dd5aa8eabe84e2c0b926a55afce49e0a2cee28ecb3877550fe81099f7e5b40e9f40"; - sha512.source = "57e94723413ce6fbb1405dacce4af0ab9f7b5e5fc9d091fcf3054fe9505cfda885ebf00b3242ad341325d982d223438e1a2b6cd1f9286cbf5621feb5ae9b1a2f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -prettyref = { - revision = 15878; - shortdesc = "Make label references \"self-identify\""; - stripPrefix = 0; - sha512.run = "06e3ee942b9a30ff866abf8f6a46b6960321c0aaf2516ce48f587a55ffcb66f158887cbb9a476bc6323e90edd22766fec19d0cfcc2be8805eedd175fdf08ef42"; - sha512.doc = "abcd8cb7e7ab78511d953d95699060581844dda67b3489317057782d97388f7cba990735b395e9563e15fd1fee137a86e8198d2d545f437a2d105bfd3e95bc12"; - sha512.source = "d4793c0cec0e56a74d05c08547b68a83e5af33464b3c29a50189696c4d000ffff370422192a289a734e42cb4ef6bf2b95866523f3d6257961608e95f13dfb87e"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "3.0"; -}; -prettytok = { - revision = 66884; - shortdesc = "Pretty-print token lists"; - stripPrefix = 0; - deps = [ - "filecontentsdef" - "l3kernel" - "precattl" - ]; - sha512.run = "d08eacff02fadea3aeaabecd957c4e32881de942a3199bad1bf9e8fd80639ace3d819f9a7ef875c77fbc95eb8e79281ee7bd93ed0f113f9058aad592c70422c2"; - sha512.doc = "c0fbd26422e6399ccc4aed70e3e8dba976447161d008d440728fee07443caf35845c28acd86af860e9782a171e3e48a6e1e9a92c6ca44d8d7433c561408831f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -preview = { - revision = 69470; - shortdesc = "Extract bits of a LaTeX source for output"; - stripPrefix = 0; - sha512.run = "b7ed05c49ee852d23da47c4dab53e5116b1dcafe4ae404220e10fb9622ee6a593346ed7474a2d13c64d6d3782b5894f01758cd267bfd269f54778d2af46e8bb2"; - sha512.doc = "d0f797210790ee1ed8a80df8090f9273cdab22de2bbe8d72b609385ff2f0e2004dcaf2a91d0ebe3fcbf0693cf4f83b2a978f7b02744185ebc9c803205e88d7a0"; - sha512.source = "e2dde7963e5337c8d0b0f0fd2a7adee2f09e8bd3900d2d8d6cca7d612e3401fd6567a42141734e72e6cdb043aa1fd786ca0dcbf42a776880447f81d0ba4e8838"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "13.3"; -}; -prftree = { - revision = 54080; - shortdesc = "Macros for building proof trees"; - stripPrefix = 0; - sha512.run = "d73717b68ce3d12108a76a3850f3a09b9e1100969e79c745b7b08340175ea9599f10f928809fcdbf8ffbece3a60baa41d84dae182ace8b85ff511082f1db70d4"; - sha512.doc = "3b4d81db24039d15e76e0b237ecae6454d54b452b542e26ba8e0c45faf4f512124f0c1d1f5fef3ca6e6dcb3c7cc09eead3003a53a59a689e5e917583585c045e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -principia = { - revision = 66625; - shortdesc = "Notations for typesetting the \"Principia Mathematica\""; - stripPrefix = 0; - sha512.run = "ef88cb4dd25ec8cd3d50a7f152698e771c8b5f1fa18adad21d55bcd3a8088a38b09eb19873c6a3d1883101d27f318bc092c9c1219a2be76bbc07bfd2eee9711b"; - sha512.doc = "8dbf4e19a3c688278c52299731ca24fef83d08886a179f15cbc58038fe92d5ddd6e57bce1451a0af686593f98adf9ed3f52ef0b20cd68f65df52b8b6a2576dc3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -printlen = { - revision = 19847; - shortdesc = "Print lengths using specified units"; - stripPrefix = 0; - sha512.run = "bbb48c169f31a1f93024195056c323ce67afa1fcc00f309ef1b820dd40e0b86ca98d05f6cd4af66379682813a3807f24295a803fdc91d8b9f19972e1520d5eaf"; - sha512.doc = "25d00eec6c6bd069675cf7d980886b12444e41d18a83ed8e650923d839da8dca21dff65b110105458767b95c50b52a0143b2f7d88b6567ab3aa9953f4ec32a88"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -proba = { - revision = 15878; - shortdesc = "Shortcuts commands to symbols used in probability texts"; - stripPrefix = 0; - sha512.run = "33ef76474e7183c32b5f982347ed414ae7616484ff5a5d8564574220d3757688a3a47aad000c5b0a66a39dbbef20c789dd1445d872b025c274585248176c86e7"; - sha512.doc = "960887501b74d2c5e8a00c09464ff17dc9c733dd663fb35c32b34bd8b79b2a813536b6c0f9c5df4340dbd3adf1f30f569aac678e90d5f328e1c33130767fdf21"; - sha512.source = "d1305e797d8884f264a20df021b6b0619cee1df1aba8943f5533c2cd839e093420e43ebd1aa46282457a650569a883f4f11a9319f6b6612dbec5b99d29f37087"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -probsoln = { - revision = 44783; - shortdesc = "Generate problem sheets and their solution sheets"; - stripPrefix = 0; - sha512.run = "f0c63a327569410af7eefa9f87fed56a6a2db78b05133c417afd245958a7f10dac965270fe00e7fe5de6ddfcc4a1cec446df819728e76ad347c7664fcfe849ec"; - sha512.doc = "c79babc397260f03e2ad66556230966d1af97bbd5703c25cd09ff3aaad48b49d464672c501df047cf5226370b80588705c59212e75d0d1970337fd446d86e70e"; - sha512.source = "53ce8efe56938c3e16da53bb1255d86b1ae9cc546cbf4983156c098ac07f1e7c16a998a7dc53fd445efa9f42a6b82889e50c188aa57a72aa9186177fbd744f5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.05"; -}; -prociagssymp = { - revision = 63242; - shortdesc = "Macros for IAG symposium papers"; - stripPrefix = 0; - sha512.run = "f85716931c9fb7ac695db838d5e76160c485dac5f5f6a8f1c27cb7e375d78b385dce513103fdef30eca238fed78734661e192d712e74d948fbce0ccd209a1066"; - sha512.doc = "9d7e118fb0b704649176bb51f523d8a64ed11fb8e58cd1cafc7ffe3f4ad5005366cf518df9d7a4577b600524e19f089a4086d46f946668e82a1272b28c750f8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -prodint = { - revision = 21893; - shortdesc = "A font that provides the product integral symbol"; - stripPrefix = 0; - fontMaps = [ - "Map prodint.map" - ]; - sha512.run = "ab2b0ababfad124b38b018c7313df0114c36fed0dbbaa42de04295b09142740ef43f34c4c6ad926c97c1ce28521c1d87274486588609197c2178b631b4ee6876"; - sha512.doc = "addad035cb9e7b88d9da2bf161723db51897342872dd6c671695bb7bb0a6a4c7bac872ce40f31b22f5fdd84cc03994562a6f78f14d9203977d5b7c8d17130db8"; - hasRunfiles = true; - license = [ "ofl" ]; -}; -productbox = { - revision = 20886; - shortdesc = "Typeset a three-dimensional product box"; - stripPrefix = 0; - sha512.run = "9b243f6558dd449ddb9d9190ea53a71ed5b28d25f5fddc64eddb194144aa688e8d8e946c53f115d40813d0933b77d5d2c78023f24a1887d8eeb70e6c1ad0bc1d"; - sha512.doc = "73f8e1afbbfd9d4047120280e746ae1349225dfa84b98b288e23f477d2eb83310271610d6f4e40cdeb0d124788a97c1f8aaeb182a03cf2b1311e286f7299aa45"; - sha512.source = "064e591694d0c7f6c9c981ef4038175cdb1fc9a120daaf954051dc05bb6b602bc7fdbf961a25d5cc490380028564316adf5714a151e4606aca31d1f4bca09a54"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.1"; -}; -profcollege = { - revision = 69539; - shortdesc = "A LaTeX package for French maths teachers in college"; - stripPrefix = 0; - sha512.run = "37e807c9a37384e55c799156dd3af4124345b46d0a25af7e878d675701715bcd8bb5809d5bc9bee6e31377e3d8c16e43cf0f99c4b8f9d16df68c299c04e4ced9"; - sha512.doc = "666699cdcb971ec304455569fbf8138fabae13a0edda0af06d50eb15ba54b68f90a9d83d4062ef6641476192ea0187c66e666a2098245a49231d84e4a925e59e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.99-z-z"; -}; -proflabo = { - revision = 63147; - shortdesc = "Draw laboratory equipment"; - stripPrefix = 0; - sha512.run = "7270b65b821c303e84eec760126ad421dd65fbb5ff81309142690f8820c4865c3b1ff39b22b2cf700a10920b973e18085a1e73ea3f6c9d90da984d48a19bbca7"; - sha512.doc = "567ba9cd2d7eb724fd4ab20ec417f6804a795ff506bf8df582df9d7ace7ef2c5a8f95b46ff374391fed44918c6a536f6b14348ea3e0f3ff149fbe4fdafba9fa8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -proflycee = { - revision = 70513; - shortdesc = "A LaTeX package for French maths teachers in high school"; - stripPrefix = 0; - sha512.run = "e71feda42148721f3605c48271f51db60fc8826401c97372794b799d24183da186ac33d352534d216d642ba85a4a62606ae893ee11414144eca7aa9fddadd162"; - sha512.doc = "ecda097d113be20b48dcf933647d9e7d2adb6589b1d27058ff06f6a984b0b109fa383d406207119348388a50ce33521432960bac27f91dcb27561e09f0bd8e22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.02f"; -}; -profmaquette = { - revision = 70496; - shortdesc = "Use exercises in different types of documents"; - stripPrefix = 0; - sha512.run = "17223e35f30ac30274ab96d236903eed3343e8c8b7ce9915d82e430fecd36c7d8586fdbde6ab0f3e91694bbeedc9fe1e1c084fb8e47f08af53424452732e6f94"; - sha512.doc = "0c93574c3090cbe5959db0b3eb9ed46a45f5256bd8ac3915155b4e7fe44391dce10f6ef6d380da1340234c2fe341ab6bed3975743b4eab3794b4b48db5922b75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.88"; -}; -profsio = { - revision = 70211; - shortdesc = "Commands (with TikZ) to work with French \"BTS SIO\" maths themes"; - stripPrefix = 0; - sha512.run = "b4e8dcaf48a7b9a6e5cefa8b188e36d4f017afad476f6441e0718d89a497d2bdff06ea3380917a836309de371446602bdee51fe12f42aee0fcbe189b4c1d57cc"; - sha512.doc = "846703236b09ec68c49ec05c5fc817e109914d6f2449d652876371e92ea1e5c0ac98697886ca81d2bfe6bbc7deb6537f5d828140d380e459f706c9f902dd1502"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.1"; -}; -program = { - revision = 44214; - shortdesc = "Typesetting programs and algorithms"; - stripPrefix = 0; - sha512.run = "a9ef7d68ad86b42657681e2b798899b5c7c472c5e272a9098a1424a35a109dc4a946be54c4007db73edb861cb475f293e404cee9fa0dca8cdf086eb6c4790319"; - sha512.doc = "4213b5bc9cd6b2604bf1c667dd123729c0674d1c74338ebeb86b1551af14be3e24c4e94b4e5cc2c06a25ebf934d56eb6d3b5ce80e452798ea02fbb0ac6533580"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "3.3.14"; -}; -progress = { - revision = 19519; - shortdesc = "Creates an overview of a document's state"; - stripPrefix = 0; - sha512.run = "df21ec7e4adc36a420959550376fff5b8a55fb7dccc064476b2306226c1776fb2075994d9ae63bd5bde0b68571671bacadf9285f53bc9e639c2afd59e5b6814e"; - sha512.doc = "e88280bb1a93d34dd5597627d763d1b2a21a56990ede2e029246dac84f3bb22e05a08a9a94c0790a9c8a87698684816ace02149562785cf36f2b6af82f89c130"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -progressbar = { - revision = 33822; - shortdesc = "Visualize shares of total amounts in the form of a (progress-)bar"; - stripPrefix = 0; - sha512.run = "d12161aa891ea45cec2a4511c48a1c338de5acd512e426a24988b79b7d9d1734479a1cd93e3e8ee11da67858d97260b71ca35a3a7a3dbbcd2bae746221a7bafa"; - sha512.doc = "a60ee29da0517d6769e09f12af7b600284f32478aef1d28cdf167610c45bd87f841500c2bf718ff9b6678a171f3138f4a7a6ac45bd41500510f509e8e7067efd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0b-4"; -}; -projlib = { - revision = 70327; - shortdesc = "A collection of facilitative tools"; - stripPrefix = 0; - deps = [ - "create-theorem" - ]; - sha512.run = "180698941fa86735f83bb4d93886c2cd637aa7ac50103ba68d3369bcefcbe6200a377a9975e04db9f0e528a0b821bbd82a5fe6deb4e85832523798e1523fd976"; - sha512.doc = "362d152dd0c82a9807cba5b6fe49da6b4a8335af6b23f6958273e370140f3b48e1a52424cfd9c41736bf672f4552afb43f897a8624bdfc300e09db363d501dde"; - sha512.source = "0d943cd81f384da704841841fab42276b66db825258b4aaa0392ee651527960be60a80d87469a679ee7292a0096c5d438f4c76ad39154981b113cfd12e273d44"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -proof-at-the-end = { - revision = 69602; - shortdesc = "A package to move proofs to appendix"; - stripPrefix = 0; - sha512.run = "7859a8ab78c39680922e7131f2b95ca1b253b5e1252aa14fe219c3c7fe9c4357ab30d4b58a54e84c3188fab87de9cc14a23925dc1fc1563a7efec400481d572e"; - sha512.doc = "5c3e4eacadd2aafe86c231d44a340b2567ddcd9d9b737739c3b2e2ed69c0e14d6966174e3026cd10cf4ca4696af61cf305c25584e0df959e49f01b2d95a3f9ed"; - sha512.source = "088cefbdb746236e400b232079c54c6e8f73d8adf94f022c842f45d5bfe0e83cdcf8540c0dd51214c5538d6609dc0a0cec7fa3b5a2458a28eccd288249f4f9fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -proofread = { - revision = 61719; - shortdesc = "Commands for inserting annotations"; - stripPrefix = 0; - sha512.run = "79787978d7888ba127b9b72ea38f0f3e7ef9d427cf8e493120849cf7c2852ffe79b5fbf349160bac419be0725a9d79f33a00c13d6b3eded2cf0600b7d0994513"; - sha512.doc = "e33aa6e720a22bebe6f64d90b00bc4e01b0892ae66c5f9c4dc8758e6494fe2bbb9ba84df442471b9db652223fd3e7f40fae486f09c7500095f7a2d1cb2280b3a"; - sha512.source = "b1b334a3bc3dc61dad0eb071a1c5dc3595cb9231a3b7e50856bf0d5c50a4ecf188f5efbaf7a0065ad51341c2408cbf3d81a6e7c473bbd003289cca02d1962f46"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -prooftrees = { - revision = 67399; - shortdesc = "Forest-based proof trees (symbolic logic)"; - stripPrefix = 0; - sha512.run = "ee4feb832296a512e180b4d38e5989a87d6884c3c84ea2b224754201e42fe2fb6c4f68461a0cf3d3cda10b263c88c6da9e082572093f53ce2e8c62473d4707a5"; - sha512.doc = "67cbbd3068410bf152d54c2f25821b5672c33b68e76fc7ebe02f0df160cc658b20e072379035f090beb34a7d4d5ca21809965bd8e44a554e5ae65039a12f4850"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8_svn_9582"; -}; -properties = { - revision = 15878; - shortdesc = "Load properties from a file"; - stripPrefix = 0; - sha512.run = "3bde5cf132c9013bcbb0eef439e61725ea41a09720f98bb53f8bbf39d56d6cde34ed1613b001a86b40221a36233b1d5c226819c94b41d49211065e1477a0bd42"; - sha512.doc = "eff6b91e8fdd7b0a6b0526c7dd2243e32586a5ce12071130f388a911fa34cbac4681d4118b601b9eb979a272bf89b82f00f8ba509fa996521e8a2861f8e84a80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -proposal = { - revision = 40538; - shortdesc = "A set of LaTeX classes for preparing proposals for collaborative projects"; - stripPrefix = 0; - sha512.run = "d9a352995030efd57ecd46028147a6326ede0695545194a01846d4a3e2d29096ace9e6f69900766906f3ecfa05ce566ebd1c2c5f76a3b2b2646c1e0f865093ba"; - sha512.doc = "53c1d47f2f42c9ceed73f350c2aff9b229d6dc8dfde9e3fb8109971905c5d6430ca52d72551d540f5a1727a767d6cf485d8bca2489f301edfbf964490ecfb5a2"; - sha512.source = "39ec30b5c0d94a2beb6d83d796ed13ca95b5e0045edc8e7828f5528e44e9f24350fceef93ec2c3bf9cdbf3766d7ddb0b72d6e10a909a6fc92e393681d425d8b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -prosper = { - revision = 33033; - shortdesc = "LaTeX class for high quality slides"; - stripPrefix = 0; - sha512.run = "bf2285803a71b00c67a9e64ca5e51bdd880856338b0bf3e95bfb2ff2e78d5cdd0617424ed95918b5982d5befa71476b89567b2107eb0c206f9a9f53966a983b6"; - sha512.doc = "21593ccdc8231e37f0b2938d3978205ab3ed61f74a6e8a4b1dd2cf82da552bd920a7711c025964fdab5661207cbea1aee04244c93552e20d10df338c7dc5c138"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0h"; -}; -protex = { - revision = 41633; - shortdesc = "Literate programming package"; - stripPrefix = 0; - sha512.run = "be8ea34f282fdd739f72f9b33375bec3be5055bc953c7a441d769ac1e7568af9327ae6030f67a805188dbd485ee8223936921590ec86269e371da6d3ee353afe"; - sha512.doc = "95746823c32526fb5e2c9968749a7da2149d23c2ec9f1ced2a655a4fe54ad272bb414abd0be0d78775b0ac95e6440d9b6ead609de7615dcceb0186e4683e4138"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -protocol = { - revision = 25562; - shortdesc = "A class for minutes of meetings"; - stripPrefix = 0; - sha512.run = "e9555a25b0051592bd700df5b7335ad07eff024efd1efc4ef620fe7ad37866aa1edc8f354a7c772b3a298935bcffa9b5b2b49c2b0a14c868ae744cb9165bfd19"; - sha512.doc = "f047068c0b9176087cd56530c9b73d30bbffb0d4b958cefae39f1f3bc924fbe705e81b5c867735715566b674379d1731e1d58b123dbbda3686a2b84f42674338"; - sha512.source = "f41e90e822d9cffd941a9be8b918f5817c5757c2911a3c2162899d9e074390fc4500d8617e385f5edada4c2accf5a08421cab6192505721deefb4b1ceba136e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.13"; -}; -prtec = { - revision = 51919; - shortdesc = "A template for PRTEC conference papers"; - stripPrefix = 0; - sha512.run = "06e946526f194e36b55c91c46615c74a255411ff3de2fba005a672741830a5bfc162be122a7f03d00374917ab70dd789549a2976280db8c8106999ab7e0854e4"; - sha512.doc = "fb299846eca43fb054ff441c2eed6f87382cbb58419947092d04bfa99102e3db7a8395c9b974395b579f6b5700f55c2c730c162bcd19e5246fbc64b80acf5681"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.06"; -}; -przechlewski-book = { - revision = 23552; - shortdesc = "Examples from Przechlewski's LaTeX book"; - stripPrefix = 0; - sha512.run = "18b9546576957553b477a1c5a90e6780770f18d6aced92b17017c44770b6bfa9c3cf928500a9e56c6c67f45d375bc12ad8ebc97eb1589f3cf7b5b3ed2f7b55c6"; - sha512.doc = "0441621561c2c4208d083f84eaf47573de94248cc1aaf027061de636c1a65f35a307260eaf390257bd02acac34b42963f96030ee27c83650deb11234edec89bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ps2eps = { - revision = 62856; - shortdesc = "Produce Encapsulated PostScript from PostScript"; - sha512.run = "c43ba33d29d5b23ece2add44310b89036d5c4725ad76da1ed6e17bb93d0e7d103549f4a7e7807f89cdffcb19a95e0df2fe7851989b8a3b691aacfebfd41044ae"; - sha512.doc = "0194c8634c5d31cf441fb3d7fa171d85358db9831c03cc77bac37272ddfed81d8296e9b05eb4daa7c8012f3bad1a01625aeacb2232989969551e01a92912c409"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.70"; -}; -ps2eps.binfiles = [ - "bbox" - "ps2eps" -]; -ps2pk = { - revision = 66186; - shortdesc = "Generate a PK font from an Adobe Type 1 font"; - sha512.run = "764e6dc186bc0e9c1b5ee0a3c5a256e9d42d81645477bba49c59baafec55bc9af63124f77227ca5b6516bf3fa2bdb8d201af813cff09ac9da4574e70351922ce"; - sha512.doc = "032c5ab3442cf668d6b40851bdf710b4e4b9eca701bf04c87359c579a5fce52bedea15ee5dc9e4c5967fcc0e3b84805450987b73c204e0df4708b65a7cf74c13"; - hasManpages = true; - license = [ "free" ]; -}; -ps2pk.binfiles = [ - "mag" - "pfb2pfa" - "pk2bm" - "ps2pk" -]; -psbao = { - revision = 55013; - shortdesc = "Draw Bao diagrams"; - stripPrefix = 0; - sha512.run = "eb391c615ed622d928725b3a227ce0141e75ccb49a0e2e915d41bf12e343a9622d9032c4c3d6935cdf6e36c6afb4d3138d5acf17febe4691fa6e5c34da01c2b8"; - sha512.doc = "8fedc9f84eb5f640ff9644c933b5eea71c1d4f9e03f861ca7e8820a582cb31f38e3a9e4625fb1b28ff189f02b3546734eb71e1491f63d4508d3d7b5f7ac635f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pseudo = { - revision = 66638; - shortdesc = "Straightforward pseudocode"; - stripPrefix = 0; - sha512.run = "223e02f58f4b1cb137241a273cc6aec3c2923ea49bc74fcc220df449d01e6b3009ac6303a99a5d368ab3cee62d6542707feddeee30f527c2be1ad8771244ca85"; - sha512.doc = "573b023b0d9604ecc98b774f77016fcb971c7c5dd508fd272169ad5d3da9f5273d78c07801257cad5c1461de2ee425f036afdbc827ae343e9ae151a63c86db73"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2.3"; -}; -pseudocode = { - revision = 54080; - shortdesc = "LaTeX environment for specifying algorithms in a natural way"; - stripPrefix = 0; - sha512.run = "8335336bb46c0bc362bb10b6bed547d95230a29ba8144549476ec984323bc79475b11afef91409761e4f651dc4c28669639106d14c4dcceef7f90290e5f77b12"; - sha512.doc = "ad53ed572d7d79caa21baa8c34482ca6032369824967e2966479e85a95d140a6477acf0e69ca7bc2d6dda6f8b161253b1afd43cc53ce4d44641dda64d82abe13"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -psfrag = { - revision = 15878; - shortdesc = "Replace strings in encapsulated PostScript figures"; - stripPrefix = 0; - sha512.run = "71bf5c02e7a8a17eaa891f15c88777dcbbfc3ecf8b4a72dea49683f061bc86427ab813dbac5f5b8ab4742edcb92cd32d510675a80b0b3cdff2dc2cf127ee89fa"; - sha512.doc = "072210deb2635a2032f6ac2d100ef72aa4471f69dec03fbb25fbb0d78b89aa2df0972b244d4335e8ed16e1a5f0cb8e04d22ad44dd5740fda59f9a4e5300befaa"; - sha512.source = "fd02b807b47f3818545e48825ddb11d188e9e3fa384b0f3412bb09051daedf73c2587a74d70aeda472047c1eac039252a25cacbf74a3c8df76be13a2644372de"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.04"; -}; -psfrag-italian = { - revision = 15878; - shortdesc = "PSfrag documentation in Italian"; - stripPrefix = 0; - sha512.run = "4d26f0191ffbbe7fa6a9aae1ece6e72739925b59a1a1db5ad3cbe8f2b3ece92ec8265f008e91fcabfe2e04863300db833eff3104486e9c33985ce5c7f8dd7543"; - sha512.doc = "7a513ff265d259adfbaee9ffb47856602004f19679dad1316f04d36848f2e22bff8c3164ba9b045e7a4a57df76c2ad17b071a9cac68d4b92cff57a29f1e99f55"; - license = [ "gpl1Only" ]; -}; -psfragx = { - revision = 26243; - shortdesc = "A psfrag eXtension"; - stripPrefix = 0; - sha512.run = "b02063b8c1df58133b951eb10763d3b9099376a473dc980fef801ab565326ac1c5539be3ee94ee5c79837c1e6265cf41d6554f66e8900df2663d5d7e727e0df6"; - sha512.doc = "863df965aa6abb99c115b06ed7d1b1660345e9bca0d0f5d62b6a7ffb55391688a92114edae7bd28ef8b715515c8bcf3c5b4fb4970cc1b6bd9cc068b09595cb10"; - sha512.source = "f38ac5c21c7f366e952e71199321865a70376d1dfbcbed2ac993fa01f412f185a09725b9e6b1808167a5cf55d253b461a43a2f126cedd7d469645b7740702938"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -psgo = { - revision = 15878; - shortdesc = "Typeset go diagrams with PSTricks"; - stripPrefix = 0; - sha512.run = "75791ac8c340cd72139c50b2e2a05f6001edf2b79bbb9fcb4c9118f2acbc67643469c8f6da34122bf001e85af60b5b0050bf3c7b5bcce7c393e7930e3cfe7eaf"; - sha512.doc = "9d061c884f76eb87e86cb441ebb693a9c64daca024c35dd631d660f3d1f8b1541c40e285d5f4115b36e2b02b7640ea7be70f4527e7ae92c6d6173625b215b7cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.17"; -}; -psizzl = { - revision = 69742; - shortdesc = "A TeX format for physics papers"; - stripPrefix = 0; - sha512.run = "7dce0f9b7781ca89ba93c1607acc0b440ffcf482a1927d0709aa0e914531e250a4f1ef24b64ee63008351c7b206fc092f9211966fb92bb6e0214f296da872677"; - sha512.doc = "c337900dc35cf0e02667d0eed6ac28aafc5336fa39bd7cd90dcf910ab27ebb741abe0ad7b0182fa8018c945cf9d4951db062d1ecfa9a9758e6e9940a0af0b0b3"; - sha512.source = "7294b45fe17bcea21243b7c719d151a6fd87fef9e641b5a3a193e355df660f7adf5e52dcc22ad7b8998f8d882973e32bc3d9af57b33223c39ae0079e1829fbb9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.35"; -}; -pslatex = { - revision = 67469; - shortdesc = "Use PostScript fonts by default"; - stripPrefix = 0; - sha512.run = "b08cbb8ed7a4b89b9018b5b31bbaaf8ae9c520ffbf47b54d239b30ca67a26e138206c1f2f9951f8cc5da49357c0eca9a3df9eda4f02119355cf2be0a85c3a825"; - sha512.source = "9943941967009a9d3cac0841318c6a31818f7496ded89fe6cf4d6ee8718913d0145497443762d55e4f80a1fee496b5170ff4b6c13266f04e6ce4c5bc2bdb5728"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -psnfss = { - revision = 54694; - shortdesc = "Font support for common PostScript fonts"; - stripPrefix = 0; - deps = [ - "graphics" - "symbol" - "zapfding" - ]; - fontMaps = [ - "Map charter.map" - "Map fpls.map" - "Map pazo.map" - "Map utopia.map" - ]; - sha512.run = "f7d1acebcd1d32a691221f396220358f3bb15dff2e2cebec4b537b1b790b68d8ce1164711983a52b4f04d6e470df2e3e5fec63bb1d3bf39fe205d5f0351299de"; - sha512.doc = "d1c14edccdf43ed2c786394bc04e9fd683b683532a9dc18d592f918ee8899234d23feb738128aa1418f441288cdbf0c6de832f8c4d98023926baeace36365a1d"; - sha512.source = "6862a7e74be6a575996e6f45a2236db810f1c030d3a0c53b2b97c2e803fc7e29010108e4597d637b8abedd63b1f956da268f62ca2c609accaa4d035be7bfd8ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "9.3"; -}; -pspicture = { - revision = 15878; - shortdesc = "PostScript picture support"; - stripPrefix = 0; - sha512.run = "139d160fa67dbb7cc932fc75dba80dd46a55a1dd5973b27a6a5dd38a6035cb367441b178acaf3c11859ad60103283774ee5e2623a083a0336d5c2ff74a7b82fd"; - sha512.doc = "a743397a0d48c587b60db5f1dcf9e1c22f67ba15dbbce241a2584c95456b3546aebdfaebec9fcfb3dedcac65f7f053ec52cb479d726e5e3fbfe042efcf1ad702"; - sha512.source = "af1deb00966a7d4d1d68e156dd5fbc60e95f60a65a942f1bda1acbd579b932e0c81875386bd3eb1945fab211cc9ad5607c3e21e5d240048d775c28574cb754ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pst-2dplot = { - revision = 15878; - shortdesc = "A PSTricks package for drawing 2D curves"; - stripPrefix = 0; - sha512.run = "3109c2709323906ec39bd1be6e7c9151b7b07f9d2dafd5f7af61d3facd3e37ae35bd8bd923968102fc702f35fa4a903e9a50d3a7a85a1c088017aababd16d969"; - sha512.doc = "f46a0c8c94900d180fac92e7b393672d010388fe80867f01125cdc7c486eff97ee36cab1aeeeb224b9ab80739c2ddd9e89b84926948acaa8b2b0ae08457ac0ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -pst-3d = { - revision = 17257; - shortdesc = "A PSTricks package for tilting and other pseudo-3D tricks"; - stripPrefix = 0; - sha512.run = "dfd8a2b79d308cf4ae3bdcd438b967446f8601509fd4afb3f090d946df0cc2d66e9b7071ce33e51ad4cd53b7e62dbc02d861d46a302bfe2c901d1d8c82ab0649"; - sha512.doc = "e8355b936fbc1685edf205e88f2793ab298aac4e4c06de10dddbe1587b5401ba8cc4d2a01dbad3ad56da5eddb27bd6049a41e6da8c139727d36fcc94d93ac554"; - sha512.source = "fc50cff8bb86571d3827a03f3c64cb62a9fdab25e2595ccf9465e4ad39539ebc0a55da92519ef203da65da3a44e01ee28b39ef27a5af24d26463b215f96be313"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -pst-3dplot = { - revision = 68727; - shortdesc = "Draw 3D objects in parallel projection, using PSTricks"; - stripPrefix = 0; - sha512.run = "1fefbd8b34e49b7cf6bc35bb761ed9aa49d062d81f280936b86b58f123cf6023e038308f066a2f9e62c2fbd4181d3dad781525f289a9f5e58acefcdd344fd69e"; - sha512.doc = "7e15351efd6190ff52e10287a7797a6ef0944561e381793290fbb56f6f2f174447343d10c9cfbfd0f61a62755ea0b3eb7adf52dfacf1b0b7ef2ec159f393b4f0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.09"; -}; -pst-abspos = { - revision = 15878; - shortdesc = "Put objects at an absolute position"; - stripPrefix = 0; - sha512.run = "b56bed1fedb14fe7cc455fe4e87ec51085e8e09132ff5dbe52083701cdd0d63f2e6dac2ab55838fbefd8e7de9666d0239e9fba712573a51dce2804d31ab140c6"; - sha512.doc = "77754a1c27c083f60c2836483a60bfb6b4c826783d5acd16b1eaa9b7fe7aba8820886442ed28a5b334929a3f21f0f1b4487c7403f8dbfc3ad3cfc08407e35229"; - sha512.source = "faf4f7e2b94bd66d19be75c307c8a6b20a2c779a8e6783096b41e7b4da66ab07f7ecbaaedfa668c09089bea9c2c79af4cbc12aeafe949cb729c589989206cd0c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -pst-am = { - revision = 19591; - shortdesc = "Simulation of modulation and demodulation"; - stripPrefix = 0; - sha512.run = "a5f466dacd393ed7243fa2cb43aed0a5bb8469a51aa82fac4b53c47a474a1d9758db4d7a001cee49716714049499339567cb62a66f2731ffc7646fecc15c7784"; - sha512.doc = "edea0ddc3f5472a86706d1823fe78459d2908724daf2b9bfe44b41e749f2b41483000602817a45a5e41869f86d4034ea52640bdffa334af54e4964510768152e"; - sha512.source = "fca7f1f7769f839632eec75b3baa864b60f9ab3c1ff9cc08437fad4086cf9a063f283568163d1ebe3e5a2c87b06bbae1b11e5be07a8eca5030cccfc68392b40f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-antiprism = { - revision = 46643; - shortdesc = "A PSTricks related package which draws an antiprism"; - stripPrefix = 0; - sha512.run = "dc93e3a8a040a2712f701c2fa89924c45749824d20ad814a9f04aa423e15caed3a457b762dc7d30cf5c9e3afea378efc303851af919831c0969cde50b9adea57"; - sha512.doc = "df528e5693cbbdca80a88d02e2b8487b70c188109825da66c9d9042056c6ba62e361fcba2ac747d69a08a4c8d78f27534640ce55c583289c3f12c2eb4c57d861"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-arrow = { - revision = 61069; - shortdesc = "Special arrows for PSTricks"; - stripPrefix = 0; - sha512.run = "3e928de0ec8f1c9dd80143e35e3dcc9d51ff106fa12193798f5d2a77f49b3049f042273102b3dfd1460de68814ab32a3aa4eeb14daad846d729e7f6ddcdaa5fc"; - sha512.doc = "19878f237410d2db75096be382efef2ab1c5d169b4bf48b393956bf13a697d2c96b0da528c1044ee9b36ca8231ba4ad2b478bee24402033ebbcdf2778e4128a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.05"; -}; -pst-asr = { - revision = 22138; - shortdesc = "Typeset autosegmental representations for linguists"; - stripPrefix = 0; - sha512.run = "c5ae73e1553b564a90d2c77fa434c360fe2858657fb5ff4c6ce1cbb46838fea9c0dd7a8d92e2048a8ed0d748839518b461b0727db3b7937c4e39edf85277e081"; - sha512.doc = "560ea68a6f02dc3b79c64554652a9efd52c7fb00d07e7ffbc9b92ffab251854e07e87642028b94fc42bf7d01fedd82bfd50913f9c42d1c37d76c1eaba761ed00"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -pst-bar = { - revision = 64331; - shortdesc = "Produces bar charts using PSTricks"; - stripPrefix = 0; - sha512.run = "a4ca273cf21aade2adb15a8fae3d7aae9b24f4cc4a81002cfe0471aed7b5cc7be516aae26151a8bd2d98171f5524686105f3576df8cb0ecc6e16d690907f7156"; - sha512.doc = "7b090d51bd669c3b252f002855d60f008054f12966d01cffdf6163e4360fd88fc064459d42d756737b1a915d87ffb8f789900be480eb7be1f3925389e2873f58"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.93"; -}; -pst-barcode = { - revision = 64182; - shortdesc = "Print barcodes using PostScript"; - stripPrefix = 0; - sha512.run = "c79fc6d5ff483278210e654a3b325a6acd2492d6cdcb8958d5e4802bcec6aa119887bacb82a91e312c39ff5ac12a62d28c04528439684bf000dc1f1003ce8651"; - sha512.doc = "ff4d449709479f9e1218a2fa3ba642660b09556c96cc94a1b65984ae0723e8b730d09634053feb256bf196aa183e4f8a46ed3efdd9d91dc5a03b4a6d4d59c0f1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.19"; -}; -pst-bezier = { - revision = 41981; - shortdesc = "Draw Bezier curves"; - stripPrefix = 0; - sha512.run = "e2277175eb2087e13ee0a1100d602730514e1e5bb023d4db7163ba4113f69c9fedf74ff50369298ed970b89425b824cb8619e2cac4be463589edbfd747ccc6c5"; - sha512.doc = "5126769fb89900916a52135af0ba459651083b01db466471cc984b6dc837686cd780bda7c3295b6afe9a7bc85180b3acd95c015084d49f46049adb2fd84b5748"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -pst-blur = { - revision = 15878; - shortdesc = "PSTricks package for \"blurred\" shadows"; - stripPrefix = 0; - sha512.run = "5726819bfa08fbf6e9b5a2c6f93008e468b759a825fef04739a47e756d4b12a99aef604d64618081b1788b5fed9247c75dd3580a899771b148306880341f0444"; - sha512.doc = "5e483141d8f5ad03421d9c7c5feef8baaa3b522385d307022dd617af0889bf57d1cf603a1d519a5d17d8dc918441ca3310d766e4dddb7ed6b8155985186b5e7f"; - sha512.source = "2e7038a248c307c50d29a6171d1b52bc8d6fed76885ebc24480a3f679918fbdbf1e538f783d0f9e3792a3530e51e60da4873c5da0878e66672dbe13fc9b950d6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -pst-bspline = { - revision = 40685; - shortdesc = "Draw cubic Bspline curves and interpolations"; - stripPrefix = 0; - sha512.run = "1f39a02cb0d56b4fcb8ed3a3768b59a9d14ac14769783dfde7108d86a8c6d68d79342df501c60efcfb8aca4c7f97fffecfe4cd0ea0f4fb76e528f696180b6dfc"; - sha512.doc = "1f2b8c3f5d85db4215cb11fcd663c33fc1e34e764432a2285f879ec8bf7acb9d09368c6a9910618ee99c3305d701aff5e5d401c227d0c1db9028be3690b5216c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.62"; -}; -pst-calculate = { - revision = 49817; - shortdesc = "Support for floating point operations at LaTeX level"; - stripPrefix = 0; - sha512.run = "b40a89c1e0152459e9dde468379b1a848955d40b9d9e05223544347d6057affac092a503e6307904e485a81de781eb9455abd948bef7f343359d44abf37f93ea"; - sha512.doc = "d6e936e7bc53ae3296812b1d33ecf6ae890599cbb9fa6afac719d8ebcca4516772ff6c18f27e8d825ab959d430cbfe8876b2bb97e480bf6464690b28cedfc2bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-calendar = { - revision = 60480; - shortdesc = "Plot calendars in \"fancy\" ways"; - stripPrefix = 0; - sha512.run = "0e9bece02b9deaf677ef2d6f02999d3b4b7bc7028ec768fb57e69fcd3c1c26d1ddee1c261cbdce8eb8cb18c647dcdbca1448860d6139f01e17f234b3a8a0e793"; - sha512.doc = "07796be64b64e6c8eff2797d145933bb45c0e3ec0ba50e6fb41974d2dcabce09f2f781f989a62a5c5fe6295af3ddbce10ab811c2abeafe2d8b56b7a603f27412"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.48"; -}; -pst-cie = { - revision = 60959; - shortdesc = "CIE color space"; - stripPrefix = 0; - sha512.run = "fcddc7d04c259132a45fb30850c02b613ca71e9c3df26729166b142e953e997d3c618d835be472d98c0aa7a50caeaebaa5631cfa64cf132aa35c2d29be59c63b"; - sha512.doc = "431f1d8306bb623834ef5f5d732e8fc413947b5f3d31d07874fc9d7ad0897046a4cf919e6e2e520b23eb9f268cfbdaf547dfe7e8e72d44ba92ba9cf3b7a4fabc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.06b"; -}; -pst-circ = { - revision = 60464; - shortdesc = "PSTricks package for drawing electric circuits"; - stripPrefix = 0; - sha512.run = "2335b728be1227d4631e09c3994e9e1f559839e871e29854e700ed74b9031a7d2ea58cc744d20b459c99f1954b7faaecc2ced19c449e98b97fe26b2fa71755da"; - sha512.doc = "c2eb37603cbba656eb1282130e112d0c3bbb49d4b3703c3d9b19d0d250d272d31fd19d2790c97cf8cd5226b0735e8466eab824a35754f41d7584208e606a6ce7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.19"; -}; -pst-coil = { - revision = 62977; - shortdesc = "A PSTricks package for coils, etc"; - stripPrefix = 0; - sha512.run = "bf6e1671f6c1d6d7fe348958042892a10168cf96e8626e4d15cb34089110677ede3535abf96e76847b6ad8d3ca910030e975e7b52fe8b168136c98a05f6915f3"; - sha512.doc = "84fb627c91d56e1553325c8d87981ba6ab1001b8f0163b45bf1a7352026853c8d086350191a4f98c01bd6d59bb5f4b638275c38b45eae6d360c8dbba1a5b8867"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.07"; -}; -pst-contourplot = { - revision = 48230; - shortdesc = "Draw implicit functions using the \"marching squares\" algorithm"; - stripPrefix = 0; - sha512.run = "9930e77c3ac5adcd9e3f14c4785a52a79fe5068b5ee239d1c9f052181657d2c5f16b082a8900b9571094ec83b7326be28a567dd39876332e5f68aa6b1c1b7083"; - sha512.doc = "1a52121a22c829c9c5423810f529cbc4cf3e49a805ec4fae123dd795dfc8fc87bebb13653a9d173ca962bba716c8428effa4410e48085af4bb208331e4e89bce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -pst-cox = { - revision = 15878; - shortdesc = "Drawing regular complex polytopes with PSTricks"; - stripPrefix = 0; - sha512.run = "b7e0e787e5a6d825383a5c06d7aba34e5d7cb12258925b7f0384ec069e873a6652e421f963147648903f6bf063d9592089adee5b043f24dac10e30dc344f0608"; - sha512.doc = "1de830f83253ef11f092c9ec0e698ff36971c7b6d4237c8eb9f6712bde051b9302d657faa21bf56d34287c838453c611ef1a7c70c09e55ea647bad48ca216e1e"; - hasRunfiles = true; - license = [ "lgpl2" ]; - version = "0.98_Beta"; -}; -pst-dart = { - revision = 60476; - shortdesc = "Plotting dart boards"; - stripPrefix = 0; - sha512.run = "f8d2665eefeb791672864ae5fe17aebe6b83ca776a6170c46672cce02ab639fcffb011afd922b1dc9abb98a70d6f81cf4b00321e2b69542d532c3c72341e28ac"; - sha512.doc = "a0c747f8736607f920174b2a80ab07563d1cc7114d6e2e751f7e2d9835eed9f656f4b57b7b9061ad8501f4d6ba26c1fad37825b3819be1060782050ece94199f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -pst-dbicons = { - revision = 17556; - shortdesc = "Support for drawing ER diagrams"; - stripPrefix = 0; - sha512.run = "a09ba8f72ecc1b58298b436c47d3922b494337179bdf789468aa3a2236a5e2bd0f9ddd9b491c1a2eb181d08090cc1c6d8c4a0e9e56cb8619a65ce168d7efd355"; - sha512.doc = "fc0a74b0ca228ff598f3f88840ad1b87654cd7205afb757e6eb6d98abb0cd56cea0ac3ad7b3464a9a5b09d3d4f3a8489228b19c78edc8ceeb8b10f5d40e18540"; - sha512.source = "ad710329d577b7da464028bc0abe684d987a601b6ea68cbbbeafbc6135c3ade2ab124026ba0e1d714984251f800028ffd018863c9bb51aa8fae4b5b7ebff02f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.16"; -}; -pst-diffraction = { - revision = 62977; - shortdesc = "Print diffraction patterns from various apertures"; - stripPrefix = 0; - sha512.run = "15db0252472e17f5d4d702d98961babecacaf7753c15ff8e615199f868605e133188c996756cd6cb5b379616a494454dadeef36678709eae8128b0c69623f417"; - sha512.doc = "a90ff70c942ccf4526ad82b83c0666db05b3aecec3e3b00fc572a7aeeceaf6487407b178e00b929c6d3402752d0b96d345735c5731ce2046fabb156df2703c07"; - sha512.source = "b5df7c25649efb0fb2143428e7a67f3abffe9ace683c738a45e38a2c1714cbab6fbf009decefd829fd5f17c1c3cfc4859ee9abc3d428f110937f94f4bfa44070"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.03"; -}; -pst-electricfield = { - revision = 29803; - shortdesc = "Draw electric field and equipotential lines with PSTricks"; - stripPrefix = 0; - sha512.run = "db9f7474d8290640d960f411574b6dad9f9b705eaf68644e001ebfc5050328673f0c1c31f925c6a2cd2279b9bb7ff89cf8d21e71a99e4b937137af404d046df0"; - sha512.doc = "9d89a2818a56bed9e3cda9069f91cb49beb0182e0b24474051bb28c4299439a7b5477d09fa1caf23b855226d4d4441e48c9fba4a4dd1cd5eaf044a608876e5ae"; - sha512.source = "89d6b2314db2840f70d99f2f0e66a875b47cc2e653bbd28c80a71eaf6f7d269e647e84b5bbf5ab7349d8a45412b824f9ae7d0c4ce9c4703f82258418b82e8867"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.14"; -}; -pst-eps = { - revision = 15878; - shortdesc = "Create EPS files from PSTricks figures"; - stripPrefix = 0; - sha512.run = "90be1124bd22958b0a9cbb45a3b76513e514131c416c98d7f70ca101e7841980c33bd8380e888054cedb873143aad168b0dc25918d9e241f763b9be3ea1a76d6"; - sha512.doc = "70542680c550bc11bef851cfcd12010e17f35dd75adfa390ffadc7b920c2b357594ca514fcdeaafcf1bfcf1b9e622b23c680adbc64ae4787fa96ff94f9a62add"; - sha512.source = "97e2adee4ce93de77d4d46946795565dfa0e0da188fd686bf96917b1220661510c1777fb7d025ac6dfca816bb8575487d45b180e4e35cade21353dcf4a8e5540"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pst-eucl = { - revision = 66924; - shortdesc = "Euclidian geometry with PSTricks"; - stripPrefix = 0; - sha512.run = "9310a2ce965b8cf9b03aff8c505515cbe386e12fc5973a4d8f26bcf2541a856605c8f14849baf649b1d1c24219dd4fec6ea5375ea43e8ff533171dde4e7d5ea7"; - sha512.doc = "1054740975d1be6100ca269221925af22fd1760a5f88ad942be398a889f59209da79e31c53c702a02fe639d218d80820c3f1d1033349c283e9fb6e05c7e7643e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.77"; -}; -pst-eucl-translation-bg = { - revision = 19296; - shortdesc = "Bulgarian translation of the pst-eucl documentation"; - stripPrefix = 0; - sha512.run = "ba2a7a76db77f4db3a548654e53d587b8f5b3dab9fef56b1f8c2640bcace64237e0bea5129025a07a490a2660ccd019fc5e83e3db504c6cd30b12b19df755f8d"; - sha512.doc = "9f6d0153e79a205d0fce5b289fa43317ded0b70abc06139a503b98199584e8cb12b083c8235b6b53ff2a80cf249a4a43cefd3e0b39a9a406c62c1e684bcb35eb"; - license = [ "lppl13c" ]; - version = "1.3.2"; -}; -pst-exa = { - revision = 45289; - shortdesc = "Typeset PSTricks examples, with code"; - stripPrefix = 0; - sha512.run = "af3bf68bf2401e0bd7023762748180bbedae1a34fa749b02cccd6b498f1f7ed0ca0e929e1b290f9b4f56b7f30718cc602d54b348e23f73c4cfb4d72ea22ffa4c"; - sha512.doc = "9f0310ad130ad4693575e33bb2f2deb795a8eb4cc6b3f5fa946095d979ad8a1a348feca0ee5421b4831fd16a1de23608013b69d027b0dd37f782113e7de868bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.06"; -}; -pst-feyn = { - revision = 48781; - shortdesc = "Draw graphical elements for Feynman diagrams"; - stripPrefix = 0; - sha512.run = "c1ac123bac3f92fd92321387be28f519963ab196fde7ead8ed6b4c93ff9fe5cdf07bfee65bef67b9cd70d020adfa99c72592df9be376d69c5dadcb8bd0d6963b"; - sha512.doc = "e30fc57ace8fb4f0c36fd1a07415e894abe6840592a9a62b9e45c0663281a79532387f5d37136e9cb5e7b27f4c0d7722e6d1a9779e1a57a2fddbd8d0324d1424"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -pst-fill = { - revision = 60671; - shortdesc = "Fill or tile areas with PSTricks"; - stripPrefix = 0; - sha512.run = "5fa4ae2e862a9297073bf0559dc46d44109d1153571eb8538650410c96f5c43a9a8c85a379690820f63a5198ac1983fdeb514bf4b1342349352f1a16ef3ee375"; - sha512.doc = "ad51d3aba8d9ee19b4a53081a5956e8cf26f2673faf521af088076c6a356e321ca2fb9a0b504e61529c5a2ae49480b3918bd12235a66ad5c45035ce92e2eae92"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-fit = { - revision = 45109; - shortdesc = "Macros for curve fitting"; - stripPrefix = 0; - sha512.run = "ede8c3503963f44d65caf46975cebdad296576742a771243914b49c6d802deb2f24e816dde7fd9a4bea7fa0c39965693575676ebeb648da099d88ee50bdacb8b"; - sha512.doc = "c8619c7c98cd42884637de98c88d916e18db273371fd64090d5e9789570153b2508f0adb90fbec9c5184f6ef1ab24559b04daccf8dae7c5f65453044b9bfb73e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-flags = { - revision = 65501; - shortdesc = "Draw flags of countries using PSTricks"; - stripPrefix = 0; - sha512.run = "142a1d78f1423474a935bcc977964eeec310f0e8d8037149f4f5fbf691789f0a9f2986630f629cacf319e34ee640902556b0b59145ef2a763006618c65e21f49"; - sha512.doc = "4c8bed4fa6f527fd5e0262692cf4acfd52d36bfe8461acb97615c127ab54336ada7a274ed9e5a7a75d26cf764c2f63734aa75d5bc45ec833f3b77b6179fa74fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -pst-fr3d = { - revision = 15878; - shortdesc = "Draw 3-dimensional framed boxes using PSTricks"; - stripPrefix = 0; - sha512.run = "ccd418ac7ac5ee1885cd2b7008e867c08cc0fc13fa97e264377446d301cef1caa82b8552731a4c7d3131f0e2ddaa0267276d5b1726998a0be2f149ac67bbffcd"; - sha512.doc = "48c559c27999b06d63ab5c33c9779d0902e05c80c51ba9225f0def724e02892557deda44add976bd5fb73403bbc2615854ef9ea398b830357f0fa5be12702e74"; - sha512.source = "7fde5941ebf78da6f5142d07963aba36f2c298e46c2125f5ec210830f5f3694b3b1a8bd4b342b6065fdefcce1e5807321f379d030b0950d3ca5dcad30ed2ae3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -pst-fractal = { - revision = 64714; - shortdesc = "Draw fractal sets using PSTricks"; - stripPrefix = 0; - sha512.run = "c52e3684398956e0cb1c79c9d1fc145e3b012d011d60bae1a756686529cff076331bb1e8d1895fc2dc46fbda8616a1ecf5c30991778b6041cd40e79fcad32f25"; - sha512.doc = "657b15f4342764d64aa54c1bf8a86be16ff859c7810e86f85db0b5c5a32064b1caf57944cea09a267f7c5bebad9db7ffdbce5d33a57c65045dab7f3c1d5eecd1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12"; -}; -pst-fun = { - revision = 17909; - shortdesc = "Draw \"funny\" objects with PSTricks"; - stripPrefix = 0; - sha512.run = "68d0c52bb40354a72b2eb14d2c10a18266badedd452a57e4c2a9aaad343b94f5c13f89853962e85c94ebed9274e87c44cc4ac1fd0203ec54097f71e5c4a15fdb"; - sha512.doc = "b4f498e3f9d97be8fb8918abe5139d431656b52ac592ce9f3155c6dc7afcea17e51996dbb275968950dfae179b336ef923b2d88efb4b77506c64b5c775920d38"; - sha512.source = "4cdd6ea161216ee5d8be410b96749ae52d212e75691de0a9012ee6f0b5044d14c5be4e8615a6bc3b3b22f8a8fa99a75977fb264730ae64218b20898444793dd7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.04"; -}; -pst-func = { - revision = 66845; - shortdesc = "PSTricks package for plotting mathematical functions"; - stripPrefix = 0; - sha512.run = "28c50cbd77b2400cd262b8156c01c2adf655da279a33703502d79590174824b0470a788db1a04c7439c63d1870eefa19a559f6f76c0c80c076cfb259eb920970"; - sha512.doc = "b25be44e2e42b35ac48730aeb2d705082b99d5bead17119e1c5e353790f25aabd294043f753291265dd102ad7d8448c1592e5fa486fda317c1e8bd03aa1a3ca4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-gantt = { - revision = 35832; - shortdesc = "Draw GANTT charts with PSTricks"; - stripPrefix = 0; - sha512.run = "61b59f922129de60bf954145a0c83a5bb4c0232270b8213b45856a69ca56f32a9525d70ba86e51f95fa1c8836d4922a0dec971dea16f13f0c2f83c80fbfefc56"; - sha512.doc = "950a55218077d7203988c42c83445bfb10f53c7292cb85bb4178ab20b9f1404ab4a864266e52c3af074c45cc27b6777dae71af41caf270143160d3d59e222731"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.22a"; -}; -pst-geo = { - revision = 60387; - shortdesc = "Geographical Projections"; - stripPrefix = 0; - sha512.run = "4e97b80679129df2cf52a8998e1b131b7ed5ebd21046219843af1ca81272a84c3a8fca72810622a7215385207eb541cd2bfac65b791920da61c233f969423c3b"; - sha512.doc = "7dde4c2584eb3c538a21fadfb9c49db02ad190b0778b64a4a51be7b777b4971302151a4f6ee7c5fb29f6c156c34a420b1734471f550d541bd2eb87877ab1543e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07"; -}; -pst-geometrictools = { - revision = 61430; - shortdesc = "A PSTricks package to draw geometric tools"; - stripPrefix = 0; - sha512.run = "838ddf95e3ba7a13fcdb5cf97d85647cb6b15bb6735947d26e358af83a34a4d5bf55530c4624f006eff4a9f0794d1fd7f5a3ed351607243e31537e36bda33b96"; - sha512.doc = "4b7d2316dff80420ed5ce03046115670a4ad51c705dd960f56f6e7debf20b0d3c86030d93cc635410e01535aec1b42dd3497d18126e6c86bb9304c5cd506306d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -pst-gr3d = { - revision = 15878; - shortdesc = "Three dimensional grids with PSTricks"; - stripPrefix = 0; - sha512.run = "85cbaa41c3cce49aeda36ef55a89122370fc23dc91c5e5e63790aff2b8b748eb6a13a9a921836b2a471ab2deb9577ecf59be0bc6dfa4d2f1ddcf17bc33ca4264"; - sha512.doc = "bd9026c7730dce9c09a092cc420fa7ca8d7c85db4a1f9a665a64f933595b43397027904c08311ab2301305f79a426a1b726b8df2c237c8a545726fadf9b8ed30"; - sha512.source = "ce6786ec803ceeb33fd42d2d786d119ec2f604c1d4b4f7a51c6e9ce9e4171f01fff33b66b234a5af854e5bee24f23bb50abb898ab89c568150a50ffd8ff7d582"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.34"; -}; -pst-grad = { - revision = 15878; - shortdesc = "Filling with colour gradients, using PSTricks"; - stripPrefix = 0; - sha512.run = "f98fe4e4996e20947d90ef24d6825d72a8ceb6bbd586b0de9b90d5d73208816395e5b195dcda2816c8e709fa4c408f3b814c02911488c83a207039d28654b9e3"; - sha512.doc = "11f4a4de67f92bb2ba77457b5940e2b848985de111e3307215981e6d39617b8590316de5cb6e5002748d9e951be405e3f938d1708c28a7970be53808688c10ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.06"; -}; -pst-graphicx = { - revision = 21717; - shortdesc = "A PSTricks-compatible graphicx for use with Plain TeX"; - stripPrefix = 0; - sha512.run = "0d3f2d072a7bbb58ff555add4df7347a4dcba929bfba49d25dbf6b95956462a3fda07818135fe40f737151f323a27225983f656389f9a91a8295145ebf2877a1"; - sha512.doc = "8deba57cafa74987ff7dd22b52db699fef2067dfb62e8e2c7e8e17b662f1d7644278272ee97209b3c109345ae8c295e125d1b195ff68cdfa8362eb3b7ad1bc84"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-hsb = { - revision = 66739; - shortdesc = "Curves with continuous colours"; - stripPrefix = 0; - sha512.run = "d3eef4f4672b938b84d1fafbf22889f9d7116af9a0574a95bfe2a7225d4a7185abcfb862ba7309fca924993f9665f2086a35edde97306c4b2311cf18f1763929"; - sha512.doc = "a2664b558f51c43ead6c078f0895f4a6c5c55045b8485e7f564bac10279b997fe082279e3cf2c35a7f47f78fd826ecc5a65daff112dc8659768c3b6275b7c854"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -pst-infixplot = { - revision = 15878; - shortdesc = "Using PSTricks plotting capacities with infix expressions rather than RPN"; - stripPrefix = 0; - sha512.run = "a8e69a4bc20752d5f6d455f34fc4810e569a5f444de257c1b50c76d567a23d868b0e19c9f4656370a12d3a53ef35ad43e7dcc946782c19ef76091634bc2440a0"; - sha512.doc = "0b6958f851af834917ab04f39bf60d50e26eb61ea52c9dee91274714ec0a87519323b1f9ef7d665f0a6d05cc97e6f8b1bf51617f2c57a5d80ebb96ba1aa94306"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -pst-intersect = { - revision = 33210; - shortdesc = "Compute intersections of arbitrary curves"; - stripPrefix = 0; - sha512.run = "847a2532362e570d3e14ac4aadedf0cf1ac0f2da1991837abcb6cbfa607357d8a451d852bec9be50ea8b2995716613475c4c1ea1c3766169902eb82e70aaba0c"; - sha512.doc = "e8775b9d8adbab9e7ce63d595cb70747dc3d850c4b43095e1a35f6be8093b61ec92457c7fcf6565484e62b1aa7bec82700d8ccb2dc8dca0089e56bc8be5e762a"; - sha512.source = "87bbc6bb4d4b43d6c1e93e89d7d96c5f9941187181eb93814110e3930255d6ac6c95d81a53a6ed440f6bd4fd8c38725e4cf5763467722465cf941c4cc16b5841"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -pst-jtree = { - revision = 20946; - shortdesc = "Typeset complex trees for linguists"; - stripPrefix = 0; - sha512.run = "9947e00e7fdac25f25f1f828ff5b9a3b962b1d033c57232d2d47736ee7a675ee48367aa934153ec17ae3f2eaa763044dc067d83b2248c5f42a93eb5d9a79e292"; - sha512.doc = "4d0a2432e9880a71f1d7b6a9965dfacbebeb44ea2586fd428fa58f634d7670d763e9ac293aeec6adda6cdef98736a7b5d341ec41d89bf3999c4cfee9066001ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6"; -}; -pst-knot = { - revision = 16033; - shortdesc = "PSTricks package for displaying knots"; - stripPrefix = 0; - sha512.run = "f481b82e5d21dd86eef3cf64ecedc45420b33e43619574f072a050fd70a6446ef8d527607ed5a929443ff6976cc94a03817837c8776bb2ee9794fec80a4c0751"; - sha512.doc = "a8a82ce955b707c6ecb319783cdc4fc8406411dc8d711321919413d84ca42197828e69ae2b6b368a4b5b326650caf5393cb2214a7cd8b7bc0cff742b9b0d977c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -pst-labo = { - revision = 67147; - shortdesc = "Draw objects for Chemistry laboratories"; - stripPrefix = 0; - sha512.run = "d04fe4359a34f466d306265919bb13483d5105d6c77c8e297f1f964fc8224b6923773c4d3a0c58f8dd9b809deddb4dfd4f99f205f09de6a9e64a2398b17b7ae8"; - sha512.doc = "98d55a590607e78c55402af375fd25dbe1d44bb4793d5dd3327311f9e9457e8b6073cebfa3dc993560d5144426e8195ec450b030a8897c84c8b711afa28a3f91"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.06"; -}; -pst-layout = { - revision = 29803; - shortdesc = "Page layout macros based on PSTricks packages"; - stripPrefix = 0; - sha512.run = "6d4c06efe0d0095ba52eeee25ffdaf44f836e1e41840d8098e25c6fd3b5ee79d28663ef7f02ddd7d1ba21228bf4f9bd5a66548e3aef642a49cc9aab5b4b24fba"; - sha512.doc = "fa32cd065979fcaf2105372155ae8debb399a0f930d6b85e7ca4a69d8b76bc0d7fb717ebdc8fa4c9794ea03268c2079b93e0bd6453155bf5925defb75cf05e08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = ".95"; -}; -pst-lens = { - revision = 15878; - shortdesc = "Lenses with PSTricks"; - stripPrefix = 0; - sha512.run = "406bc53d476d47d464f7fb318e75a5aeac85cf4239ab916e91728f5d8c0c05a9fd4c4fbc24b4b058f1c15d1ee4c6a0d45511b8cf6b288bf10163523b2bed0f37"; - sha512.doc = "8d29f5014e0bae5d1fb22483ca3231e3631c76820be080b3a588660f868ece861c2d816291656a45c8a33356b992cd6e2396e9d73f4ab316b877b2ed8b778f7e"; - sha512.source = "7546475681934697c5fbe287d9d0c81c4532cfb07537ce0184addac26a3c29e4a37da5e12d9ac3e64f83436c07ccd9ca360ca276f77cefbb9c23c740b15bab65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-light3d = { - revision = 15878; - shortdesc = "Three dimensional lighting effects (PSTricks)"; - stripPrefix = 0; - sha512.run = "2bcfd2835e20302ec865667a44af8dec63c6c006c8a3e39b048464e129ef04300d0d7c2e23f324a8acee0e1ae1439e75ce642f7b76a8f1958d600546ac7c220c"; - sha512.doc = "166f47222230e24530508e3ca66c881dcc844cb8cb35b92fdbeab164b964ebf2928df3068d79467fc8a9a8a4db81d2be48350036169605365bda116cbd86d095"; - sha512.source = "8edab208ea567672bbfa0252fb4180abd8134702058223f04ab23c3ac92dca98f4946ffc31620b9d65376ae41c819038403ad3bd7c9162cabf8efcf7d4d57362"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12"; -}; -pst-lsystem = { - revision = 49556; - shortdesc = "Create images based on a L-system"; - stripPrefix = 0; - sha512.run = "0da3611c401895f508b6963c46f781863ab6b42ced2addf3413b74ff1c14daf42cdfb5c166072e18427871ed6d06c5cfe3b185f0af30cb25db2f346828ee1682"; - sha512.doc = "0b277cd979f4a12abb57b8e6d2562b156bba74e0ca46da10da17a6bc505c6747592b5f19c5a3e9b72f99bffabcb45298663c6dca33c875c923408646c4c5f6d8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-magneticfield = { - revision = 69493; - shortdesc = "Plotting a magnetic field with PSTricks"; - stripPrefix = 0; - sha512.run = "c0260df43810caa61a033b835e1e60544421e008832091ead56fde4140234a878ba31dd5e98777fc3a58b3e6247daef9a80da63d7131a717e73f1c935db7fcf2"; - sha512.doc = "98f0e0464e41b12474bb5b5c6e931d7da60206b766a39877f36d3d8f68a016ed7c9772483b1cf30d46a83a9a05576093b2048579ae8d4133806198602f3aaf10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.17a"; -}; -pst-marble = { - revision = 50925; - shortdesc = "A PSTricks package to draw marble-like patterns"; - stripPrefix = 0; - sha512.run = "e16ea0ed61c6548d43746f251bf8581a00863370b73d46077e5510fd167d63a539ab4543f0ad7db704571b5274cc5756fb713e5182c8abea404708215a98849b"; - sha512.doc = "5684abd4913353b7a4953ed1b5878183f1c10dcc1bdecea6f3e9e6adef7c73c7f16cdade2b5e18f4a645c203dfb15a3917740a7638c410002eab892bc5ca6acd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -pst-math = { - revision = 67535; - shortdesc = "Enhancement of PostScript math operators to use with PSTricks"; - stripPrefix = 0; - sha512.run = "12bd81bed4fc5de91cd4db49cb97a9911848c347a9a9325cb61637368bda4e0f35f9c5c348bd385d46907b61aa06682ae1a9d70616d4c5c81659550064d4cc0c"; - sha512.doc = "1b07b3086fa3e1d12f255632ceddf5b30c219472763cc43c0649b669a6014bb76e3a0fe7c182d0ea24c54fee8d2efe8399867321992e20f7f418d28198661bd2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.67"; -}; -pst-mirror = { - revision = 60506; - shortdesc = "Images on a spherical mirror"; - stripPrefix = 0; - sha512.run = "316a6cd32fb2b8c59f554a49695ad097627e641982d1a6a8b1e5db12949c2cc84dd150a190834604d57ca10735779cb09983c28e7339e92f3cb82d642dc9b61b"; - sha512.doc = "f577868d1cf76a372a3c248f6dde28ed423beaa5e445a6a343d9b5e4c2ab9f737e4266c12702fcbf6dda91a6639624ff99b4cba29d65ebd4c7a0c3f3ce1323b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-moire = { - revision = 60411; - shortdesc = "A PSTricks package to draw moire patterns"; - stripPrefix = 0; - sha512.run = "60fb7e65170ec16f08f4109794afd657436fbb42a18feaff2997fdef20e18376810c3b34e0e341a5e577a6d08d6bf6314adfa51611d83a4e66245f112581d678"; - sha512.doc = "f24fb6a5a34a09f7b519f864c40d4bb4afd4b37f12280877fa9e6edae48a655c12bdf13eb7d13e9ce43ffa849a183c6a81b8040f61d90e9ec514b07352fced3c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -pst-node = { - revision = 61838; - shortdesc = "Nodes and node connections in PSTricks"; - stripPrefix = 0; - sha512.run = "663d072baef5277519157175183313c9b80385d1574dbbc1502b60aabd111688286499426e88d28b3b5252b8ff23b3d325981b6e14b846fce3b92ff391ab5a7c"; - sha512.doc = "5cf9cb60b0c36915945a4e2fb4e79a35e2ff9e957df1b1e39d8158560843fe1dae6867aa6270e70cf3ba387b104e9dd8b6965434168d89748e65aa77368a0707"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.43"; -}; -pst-ob3d = { - revision = 54514; - shortdesc = "Three dimensional objects using PSTricks"; - stripPrefix = 0; - sha512.run = "19cdca2466071a1c6236fd4c149d4962dab3aa0b0c097fa408ea60c2bb46011173033bff02d33f596c8a413ad781c14f785b39bc28be4c85aa66480cb8a7e295"; - sha512.doc = "78ea80a6d63ccbc69640e6e18e8ef43526fd4d4b51a63dccd23429ea44843a0f99f522bc34a7cc88d6ffe48843313da64c550464f28ad48726554bf74b9e9cc5"; - sha512.source = "a0827ae0fb0ba2072894bfc284234eb301c982972d8333866cc8b66ff754e85b837fa024083ae31d637ba941569ae491a85bbe62ab32adf0fb99bbe3ecd019ed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.22"; -}; -pst-ode = { - revision = 69296; - shortdesc = "Solving initial value problems for sets of Ordinary Differential Equations"; - stripPrefix = 0; - sha512.run = "1474e118f16c644c7d63ec89a42ea598443cdeed56e965fb85bc75adea4a8d5572a49f07417786682844523d30438a0a2798e9e5635879891f039453e53c4264"; - sha512.doc = "f46dfac052060fbe8f41d74a59e85c3f7b0d0d25bf2b65209e7bb53d6478947fcd4a2af9b5e68bbe585afe94fa53ccd80aa80f2e1e21b68210d38fbd114b217b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.19"; -}; -pst-optexp = { - revision = 62977; - shortdesc = "Drawing optical experimental setups"; - stripPrefix = 0; - sha512.run = "a72c425dc808ab5a4507691c9a86ad2193c08f8e88d62ea558d2559b68e18e9dfd8e0295bc18fd66e3cf41236c17b85086dc218e46317c09867b5eaf024564fe"; - sha512.doc = "6c4f4427b023b6dccaf75ac2cab2c22da32d0fbe6007c68e05b9ced31b11da91e5537ae4dd174a726b36ff2657113bc07e1b054e9dff344a9dd99f3039be97f6"; - sha512.source = "8f3f7cdddc2b26ff9adce1cb60fd165fdecfc0b3b61cbb827e52f97702cce602312bad4838f2ed96a8d07d1deda4f5226a305c7796a8794b6cafb821c8b745a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.1"; -}; -pst-optic = { - revision = 67052; - shortdesc = "Drawing optics diagrams"; - stripPrefix = 0; - sha512.run = "132b3eb936678d51a4581efc14998c794047959f89789ed22098326912d00eaa0e39396608d3c1aa78f1fe8bccb21ba2ab454bd2b3744ba252c24f164c58e23c"; - sha512.doc = "a7169c870dbcb336025aec5d475afa9691ee524b35ef3404f2e3244c4e4c0f08def16a8eb458eed1a8ebce27c969ec80004904484615588fdbb401b863052efb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02a"; -}; -pst-osci = { - revision = 68781; - shortdesc = "Oscgons with PSTricks"; - stripPrefix = 0; - sha512.run = "c888d41f7e14cf311b359fd37aa0557fc9fc639b76dd5db782099f6d307c4e5e3214df2a670fcdd3625818e461c34ccc0e50ba617714e58aced1c71b484b63d8"; - sha512.doc = "5abb2eb53cb6cf1492c9bfad164ef8ed1088e6b6cbe1f0af6bf0ec10b34de3c5b17163e2bcfa52bf0b4394f3945887ed0e532fdc6a8497189325d10db50f4577"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.82b"; -}; -pst-ovl = { - revision = 54963; - shortdesc = "Create and manage graphical overlays"; - stripPrefix = 0; - sha512.run = "e3349edf9643e5d9e370b5dbf1c4dc3078ec82520c943a81ae353e1ccd0e2476105813b0cbbbeb707de5419035edcc39748c7e86a69cb90f8bc0d61d70f553c5"; - sha512.doc = "755c786cec204ad3dd41043d8dd1bebb33ebbd889580a0a85390ca8efc318076ec9300a8e38b99788bf348a49dbda8ba5f3c758ace788bd9de47c251dd4e0407"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.07b"; -}; -pst-pad = { - revision = 15878; - shortdesc = "Draw simple attachment systems with PSTricks"; - stripPrefix = 0; - sha512.run = "cf519f69dfd1003ab17a4a67f309336442bf35497cd0102e346ab8537865540c314666fbf01cf6e3e106ce922fd8922ac4bbb5b20ee90a7ce24a7a98ee974006"; - sha512.doc = "0a2206d3ef84dce88d3e0ea7899fb623d12f7f6a820298b031ff76044eb9ec49bb09f70f6ee0b00018fcc02f6260d67ee58c8a06a48ddbfd2e5b17f52d374830"; - sha512.source = "ffd5ef230c25a731e5127cda390b60fdc275d53a833f8fd02ef8fda7b959d7ef5e2074637af603f1e510cd558cb3de22245bc34f91bb7114269425d3b4db211f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3b"; -}; -pst-pdf = { - revision = 56622; - shortdesc = "Make PDF versions of graphics by processing between runs"; - sha512.run = "5f5850f0e908bf6b10977bf616aa82ce05d1f0afd4127b5db14379a510ca62614a3552cc85ec0136805fb479201c817442872f9d1074fa6cc1367f41403476e1"; - sha512.doc = "eb5013040f3774e81d019c0010e8fb507d22cb2fb9c74e75f2c14aa0e4edd20245ddaaa3744fec7204c607b5f6329425f8f2b6e09bd153e6df6a3ae39d1e1625"; - sha512.source = "1c353ad8d3b62fd5e5bb8746f69f00b8df2c7b53dd558ec8b24d571b1fe84fdab02daa4d7193f67a258c7390d50f25cd5270578d742b085634980eefc744b09e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2f"; -}; -pst-pdf.binfiles = [ - "ps4pdf" -]; -pst-pdgr = { - revision = 45875; - shortdesc = "Draw medical pedigrees using PSTricks"; - stripPrefix = 0; - sha512.run = "c42b723e2739eb3a70f7a984d45b6b738a1dab1f4f3bb7311850c344be736fbc97ababb6f744539deddc7d1cbde47830e81d1bfd42f705a7287b1fb970664823"; - sha512.doc = "006395a2e1caebf8c86f4eb41eeb03a35d47b82e65e18ce4045eb22f93bc78a38f7611a1328216712d29be852fa3431876254f3b41b8b7a2a7c453f32a8e1bf7"; - sha512.source = "e576ffab3eb1b0094bf7514ea996146c1d73abc5f68a47f3cdccf5e7fe7eec133a21511e9d1107ef20541750b12766899bd3c925e09be931b1e0e2a1cee376d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -pst-perspective = { - revision = 39585; - shortdesc = "Draw perspective views using PSTricks"; - stripPrefix = 0; - sha512.run = "b1c6c1313e0f87d7c4dbc7122d09777f14f02ad0908c6151fb5da905d908a9ca2d905c5a9e3fb1e54deb0b7b91dda1488de0b96ff40683488947985d68e2d331"; - sha512.doc = "df82bc95d3720f7da3c23736d83fbaeae5132f7b84aea9f2fd8ddf925f919e5d56f6701bf5b541446c024e8d2f6a5875d562d96cdb1564dae92d6ade759671cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.05"; -}; -pst-platon = { - revision = 16538; - shortdesc = "Platonic solids in PSTricks"; - stripPrefix = 0; - sha512.run = "8eade14982b0ffa2c5e7d5c68a91d4159ee6f3317b20836c3f470ed68940a522459bdce54b1e1dd4068173e50b0c611531d1210b1651d805602f952a1696626c"; - sha512.doc = "7c252b535853c4941fc4cdbe504a3c20ece2c04dd15e2bc5ea0c88928b5fdd7063035c329dccb7ed04d71606e70f632fc1d66847dd35ea46a4626c04070974be"; - sha512.source = "092665b806f358201f0dc1b0010796c2090b84cf31d1f0e9e33d2ce370049f0e7f65ebac23cf9841f770df8c61c22bdea60e583474694311c7e3fb4fd71ced6f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -pst-plot = { - revision = 65346; - shortdesc = "Plot data using PSTricks"; - stripPrefix = 0; - sha512.run = "a273a0999f14697ffec4165c8f6013821f9a3439bb7822963e79d4b362a89334090af54d591f7cbff1f59d0e15e9b18dbc3ed9d711ba90162913098dcec67684"; - sha512.doc = "870ef12eaebc4078ac0906cdfc225991714a55dd674cf7b757ab7b7925728ab771bc63612c61e26a997d900f8c03ec4d439d767b0a83fa54b8a65517399fbd7e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.94"; -}; -pst-poker = { - revision = 65818; - shortdesc = "Drawing poker cards"; - stripPrefix = 0; - sha512.run = "850b8302f7754e90559ba43ff3cd7440866b23cdbf7d3d577a75a232533d750917d3dc7ee9554ded07e6cc38346905da82e49bb90bbbe4de0f02c40fbebd111f"; - sha512.doc = "d021da1775a7f91968490bb4e2ef5fc8eac114fe33810d069882e72e381ec94e0cb81f4ea213edd394b5919e07873838996b3aa0f043fcc41814969e59db8a21"; - hasRunfiles = true; - license = [ "lgpl3" ]; - version = "0.03b"; -}; -pst-poly = { - revision = 35062; - shortdesc = "Polygons with PSTricks"; - stripPrefix = 0; - sha512.run = "badd0fcc2b439ba270d5375703f91df9009fb7eae920915eab8757185da0c6665c34d530d9b4d8bf469767dd79ee834ded104a0fd98243a1e8a17cda47be0f79"; - sha512.doc = "0facae2d565a22853a6e455534065f5954571311898e0850fcee7b18909f1cd0fe06b116138faedda6767d8514d44f7d843c13985f8723ccb8ec03a81bbaa46a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.63"; -}; -pst-pulley = { - revision = 62977; - shortdesc = "Plot pulleys, using PSTricks"; - stripPrefix = 0; - sha512.run = "e9e3f27eb01146a6aac0f9479f8c7bf120845a9c728f7e08296d95dc3cbbfd7d4eac6cadc0e7195848157929d5001fd9a1a7b9c2daf4ad97e28e0007ba8a22fd"; - sha512.doc = "f7a0820425a1d785a91ed2cd070fb371b6503f1116e1e08a6e97509133ec8d4892bf546deb5b7d3c0fcb343a65f2b41c1e2c2400e23ca8dacc075e2dbd27c3fa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-qtree = { - revision = 15878; - shortdesc = "Simple syntax for trees"; - stripPrefix = 0; - sha512.run = "5bbb7fdd477850e4e6c2bc395665c50668a427cbe176122d160fdfc2aa2f322ed83ec43929dd185fa1dec439bec3f5de719aa8d640d0bc498aa7ac9f9089cd5b"; - sha512.doc = "4a0bba9fa7072e5860403c3b22a23947045106fd4b89781af848d17afbc5ac456c77617979ebcb80afe07620ab8b990e868c688301c4637804d32790fa4bd7f4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -pst-rputover = { - revision = 44724; - shortdesc = "Place text over objects without obscuring background colors"; - stripPrefix = 0; - sha512.run = "3bd94d3a37fc8bbabba547a0072618c6e2bd2f6052f95cd4dd8cb973f64c4e97d0c7ef72fbe425df032aacbb8cb109b0eb06ee304b725ddcda6489da2c893934"; - sha512.doc = "16bc8c2500c19cdaeb701da98e4de0ffdc13116a0ed5802beae395e9664ee16acc6341db7d2c3ea7b2a16b0afac35503cd5a53e1ce1fbd67598be4c890b317d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pst-rubans = { - revision = 23464; - shortdesc = "Draw three-dimensional ribbons"; - stripPrefix = 0; - sha512.run = "360f1a04170358b976bc8b6d4d4ee138398f6b018b5611811fc41d90475c474e89fed214708d11b47bdb58cfcf983b37c3338c4d5b13b13825f3388d1562372b"; - sha512.doc = "086f80c0b99a0043769b159b6f52de125f01e6c3b00189b0924c62961b934121b09a2f1634fdeef737b2fc468c392051f8b117e1de5d7e6d223e79ff443c2cae"; - sha512.source = "f62e689c044a0600f4e303251329033e705f3d08b025214af34cc85488f347324d552594a321f88ecf91845b5db5011875436ba9fdb819dbe038dbbe012c4676"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pst-shell = { - revision = 56070; - shortdesc = "Plotting sea shells"; - stripPrefix = 0; - sha512.run = "e6c12f5a1c8eb6b521e6bd3d76609a750bc12633de1645f6991a177d633043f1c5597091b34639079bd007d81302ecfb6715f826ec42353720863885e1d3a1e7"; - sha512.doc = "72185b764b1c282e772341b9c616b27252759f8e0ca3a776770e976a31d160cea7ac74f23a982e088dee50a86a9af73d19f3f695a24f13381e88281c8c33577c"; - sha512.source = "b49620358aa5b8d57c4f227770a59ffe84a751a494ed459c8a61602b3a32621df6a31041311f939c4da6ac2114c5c4381d2ef0cf1ce870ea41081d9d920f5902"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -pst-sigsys = { - revision = 21667; - shortdesc = "Support of signal processing-related disciplines"; - stripPrefix = 0; - sha512.run = "db3d3dd31c4166a132a174cc9b2a86fb226496c663c1ba95b36f6590e18799c5eb4e8587ccc3db5de0d3833729ffa90080cf037519b2a7ba24c70fe381aedad9"; - sha512.doc = "ae2869eaa649898daf057875d28fef1be5f20caf0b7385ba7723e9be51e534cc69b953bba8ad4fa6d04a0d67f85659c82ec08043ba760279a6759c20a2c27d0f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -pst-slpe = { - revision = 24391; - shortdesc = "Sophisticated colour gradients"; - stripPrefix = 0; - sha512.run = "43905d7525acca6d10261e169a1c1ec1ee0cf0d4b7fcd05643dea3f705331588d774649ad5ca560111269025e92a1e91796693c5246e4d2b2816dd33d4eed87b"; - sha512.doc = "377a89c5dcc49e587e3e2d2e1221c289da9dc6b3cc0565bd182d0ec356835309c12eecf68680ac4083c906701365de0068608ee1e49ea9fb95c866a188931a67"; - sha512.source = "f8579912fb5477394f8eb150de776b9a15dad8f67b821a073748910388e06c70b23163fdabe260d55216add2924879f5380915c5d3ebbb21f0da3c65c6f82f73"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.31"; -}; -pst-solarsystem = { - revision = 69675; - shortdesc = "Plot the solar system for a specific date"; - stripPrefix = 0; - sha512.run = "8c977113eb47ea9139cdffe297f0b4e333ddddd5c7f54e2cab2dc29d65c11616e938d9d79a4362901b1715ca9be104ecb6eb72f43b779cb11644520306d8ba7b"; - sha512.doc = "3714132e0ed6d7fecad9215e6ec13af2a74576c43b21faa746adc6caeba16af479e9f35c7d3948ca69a82092d8d6ad2ca07b1b3ba9614dfdd043db1c57cfbd0e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.15"; -}; -pst-solides3d = { - revision = 68786; - shortdesc = "Draw perspective views of 3D solids"; - stripPrefix = 0; - sha512.run = "fef032b9aa9a87711e2c09e0a7213a2c3e70451e64060ba9fad81beeeababdc622ec46107f077ad2869a8ba9420fd81e3e9df96ba60f98530fb3238d4bec45ee"; - sha512.doc = "3bbdf115c8cb4e0dec4deebb1bf8af6317eb0deafa19054404f992f79361a913b26e1523a31105b7fe0addcfef438a016d6b5c5780da564fc108a58f449ee86b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.35a"; -}; -pst-soroban = { - revision = 15878; - shortdesc = "Draw a Soroban using PSTricks"; - stripPrefix = 0; - sha512.run = "c21d3f0e19c4cfcf79563e23e760178de6e39f1f42147f534946fef315c0514968548b30d24eb345f4f2c5cb7807fef4f0d45d8e345e9523806ce1e054d8cf11"; - sha512.doc = "b7c1422ac43df949426581f7dbe749300093ce2d20145df768e21e893b9d2c419ffa8ab16c60fa509f09317bee4c7f80bed4920b92a5f9f2e9289eb93cec5eec"; - sha512.source = "49fb276ae7277b1508ecdcc3132d103e26204f314f8779a556335e1875dd5c3c6768b6b152264ba5643d2c39eb275f7ef193ecb6a292135abba2d60be508d654"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pst-spectra = { - revision = 15878; - shortdesc = "Draw continuum, emission and absorption spectra with PSTricks"; - stripPrefix = 0; - sha512.run = "325e4f07e9c2788d571c6105e1fdc3a097881d1b472b038c365c65a84a4e69e15866750720b2c86f5b20e00fc3a054f619e79b6564fc3712194a1a5d05edf248"; - sha512.doc = "f3655f399c4986b122253c4849bcb15d0ea4d2390b0ec3b8328d8255e5e2d44481198d63c6ad9dc10365095414267285ff02a944c1bf5bfd8c458d1a7cd5a0c5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -pst-spinner = { - revision = 66115; - shortdesc = "Drawing a fidget spinner"; - stripPrefix = 0; - sha512.run = "ec6925c95e398426089234227b29a2129a58097d1536b0f1569c4a0e6b4d7deeb0eaf7d9d5ede851c93cff49da05772b6113ad7ba0cbb34b854e3b2261bdc41b"; - sha512.doc = "1cb4907c6b5feb39c947361176edeeb4da560935d53b3b56507642142f3dd61d98caff293c0d686bb33383c706f1cd865dc3644379564310b141c3f0204cdb57"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-stru = { - revision = 38613; - shortdesc = "Civil engineering diagrams, using PSTricks"; - stripPrefix = 0; - sha512.run = "bc0961c1f9afb68f66c4af9aa9d37cd8cc7c6047f55920d12cfb14a18b2c2288c8468c8d9f0e21eb7e395eaa884f0216b37a6fa947fb2c5ef51d57996ba8bb5f"; - sha512.doc = "b9352eb01e9d80049a474e0b5a513bb8835be16af4226b4f4269d9a94d64b81a842e640ab316f066595b0b6053080042deac4b0cce1bbc602ea0e029f7809cd3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13"; -}; -pst-support = { - revision = 15878; - shortdesc = "Assorted support files for use with PSTricks"; - stripPrefix = 0; - sha512.run = "05ddd6f09d603a2a6887f03aa3da0374ad061e2ab52ad25f0036192179f985f3695b0248c602607172c94c55cd9d2bb453e8f145d73f133bf79a881ccb1daacc"; - sha512.doc = "ab2adb2c06d4f7f4b4a4fbfec59e1fc8d6b9f4ccff5aacc29f0a1524759fc1f0792640e8cc301e614477ad45261bbedb3ede93de2463e0a655aeff846561c185"; - license = [ "lppl13c" ]; -}; -pst-text = { - revision = 49542; - shortdesc = "Text and character manipulation in PSTricks"; - stripPrefix = 0; - sha512.run = "6cf40d3dffb7803959a187f6a19b137b824d46ea73bd31430e983abec0b828d49c6d404287382242ad224e2f51feae74b3bee374443e9f421ae70d1ea2c0c3b6"; - sha512.doc = "87f213f037227c05ceefbcee7ab8a316b88ee6f9ddc366c40cfa7676a714ec6802f3781db8357224769216241feb9171668184534572ebe5c5776c1553c1b62d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -pst-thick = { - revision = 16369; - shortdesc = "Drawing very thick lines and curves"; - stripPrefix = 0; - sha512.run = "5eab2dfdad0c9fad21cbb7d4484f9701bd48b225e881e0c86a2418afa143582aef160bbf4cc9f5a773aea97d2c12c7f614f41fd87f0ff2952c27ddac91f75905"; - sha512.doc = "5d75bab3e4b5c18a14e7348dd97a3f7e0895a2b44111a72d87ff8ce7c7c0499062f61b4ff38b2d36b0632719fd58a33c91f077edc269d74fa58281a83752e9d7"; - sha512.source = "c3cbd54dab4d8e71a2d6e9f94cffb1dc0576344032d3af01c21a4ef0f493c5b886fe6f99e7361f4ca0c9b2e01e68e61e0f8e74b5f511cd1680b20eb01a068030"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pst-tools = { - revision = 60621; - shortdesc = "PSTricks support functions"; - stripPrefix = 0; - sha512.run = "591dbff503faef5316eda8364a422d8810524775e6c6b59569d24928c8702c54463e4433a3c28953d2f36c873aa6a6e52c71dd9cdcce5bb0c362ab2231f5a165"; - sha512.doc = "f61816b6be166d85ae238cf5651e2e1960a5303b3bd3c643e4fdbcc779b5e59f49ffbe53bd6e2830b2bc28289baad3b089eb01ccbd7bee4eb9805728cda4309c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12"; -}; -pst-tree = { - revision = 60421; - shortdesc = "Trees, using PSTricks"; - stripPrefix = 0; - sha512.run = "39d6f88d9b0dd4280cd08cad6524fa693cf727bdbacf16063d76e100e16f957602124ee71421e88f389a7ba5070a932d779a2abbb64d791bbc071398f09a8708"; - sha512.doc = "6ac862eff40eaa1a8cacc5c1a1d4886e82dee53046d3fbf631ec23bfb59490fe89bdde5f2767cba35e8d0439fa7b7688669b50ba3ce81698c34bcfc9d010a7e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.14"; -}; -pst-turtle = { - revision = 52261; - shortdesc = "Commands for \"turtle operations\""; - stripPrefix = 0; - sha512.run = "df30018ed03f10edbb9e215879f041ed6eb0db48cf0e7e2b5128cd3339d1005ef074aa0631c84bcfd2c8f9c1a1a69a26cac36248f3971a3b3302e2f763af750d"; - sha512.doc = "22c14f1eca2aa764bfc250d8140f0a24f3dab1cb8e755180167ddcd1ac9224aca07fb41408823b8933b73293204053f7f139513781ff37a67ca9e0ee7bec4fbb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -pst-tvz = { - revision = 23451; - shortdesc = "Draw trees with more than one root node, using PSTricks"; - stripPrefix = 0; - sha512.run = "79e206f5e4154a797cf168b1b490cac8e1ddf98a79de6ddbd9dc98cf53eae01301c034643f6660708b58e890ca94b7235e5b0f48e53136f32c12c0adf5749179"; - sha512.doc = "ffbba30214dce83e7f00aa7c6e126919cafe341dc727736e27a5af8ae212dc66dafa49afba553079d6857258ca72577950c06ba2deb21ca3c1b13231d1909935"; - sha512.source = "ea0d7dc35ccef586bbe4dc225886755b28524b4db4ebcede6fd41c51bcc0fc8e7fca1f7a326d12524dae478b5a9228cae413b80e7a2830f0cd729e7efa8bab4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -pst-uml = { - revision = 15878; - shortdesc = "UML diagrams with PSTricks"; - stripPrefix = 0; - deps = [ - "multido" - ]; - sha512.run = "e4ff8ea9b7fb9f530e33280de3e9eb20d653c0c062fa80611a544daf74da0b1dd2481b43d8f5258f9ebc1d1bf95b393b32c7152ab8464a9e980cefa105c45ceb"; - sha512.doc = "d8aa92785c241b6346762d98349d8464ce604afceb8774ef160e8c24e0a40d3fd8dba7cac3f78cbf38cbf6cfebb79939ad3c76e6b4014c1028859aba38123efe"; - sha512.source = "8b7e551154c1b1966046268ed3353b6c78c3a66bfa20f44c7fba3b58f661f2585b71d49d2dd673368f732b2f9446dc7783bad4ae5248169a79721d330a49514c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.83"; -}; -pst-vectorian = { - revision = 60488; - shortdesc = "Printing ornaments"; - stripPrefix = 0; - sha512.run = "e3898a6b489afe685bfc657760702bd5e2e44fce2ecf6e4af28c1a6eb36173fc653e003af7b7879fbd3a342adfb89b8cf47168b1f1868815fa44050495d15f54"; - sha512.doc = "6bdc368c391d12e6fb54740867631c7ba62b66a889e11dd40668dc7bcf5f9846e4414f84b706010505d3032b132735a9247e25193b952bd3272590d47d59172b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.41"; -}; -pst-vehicle = { - revision = 61438; - shortdesc = "A PSTricks package for rolling vehicles on graphs of mathematical functions"; - stripPrefix = 0; - sha512.run = "1cec74ed600c4c4df629942b158d47b33f26e3a38d3d363cd506e5dc7c9673e0da1af4af8bbf71bf735693d15f0b02a36d8b148e07405ff4181efc820e73eeaf"; - sha512.doc = "e252811d71bc400b3cb72a29fd9099247044cb1d1c79676cf4319d58cc60293839b022a73706a9685434d338c9daa24e8b9bc5b7390a75870379385dde0d9c7f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -pst-venn = { - revision = 49316; - shortdesc = "A PSTricks package for drawing Venn sets"; - stripPrefix = 0; - sha512.run = "63baf8075ef294bc3a909b3160fa7868a7f179c832d680728fe463f8b1c058411a1393614ade666824fa3233d6617b1dd4e0c50c299a620bc459104515c85727"; - sha512.doc = "e332f8ed24744c03c32bfd139a38dabfca1c6eaf9c5c4624d1579c16feda26e42e81b39dafc98527e8bdaacc2e3ff2d246c6f4b88d89bebfaadd57454e08af7e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -pst-vowel = { - revision = 25228; - shortdesc = "Enable arrows showing diphthongs on vowel charts"; - stripPrefix = 0; - sha512.run = "6ee1dd91b42e319e3a88966fe4cb7327211e5859ae9bc9e262afbfe1fb7f143386ecb70a71d6b24cb0c794cb0943a6cbab4eb40ac683c55a7ef1fbafc118e132"; - sha512.doc = "4fd8ba42b0d4ed821abe52e5848af0d19fcf12c2b9660f09a502561fcfbeffbe38bdf2a0540ee79b99f50cb3c783ab4b5d003a59cf84b3066c364daa7dca0eea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pst2pdf = { - revision = 56172; - shortdesc = "A script to compile PSTricks documents via pdfTeX"; - sha512.run = "a266409d6740653bacb23e83b98e545dc462ed879299b195d65761b10e4700a797005ca231fc24e37a42591c09ba93b5ea6b8b82ad8b14a29a7649cdb3f39b33"; - sha512.doc = "5805c535c8a043fea721093a4b7d2ab06c86c80d4a45eb3d603986b898b6d2053d041b638874e53c79e2d815a929749e02ca0986a2f8cbb400a2fa87581462dc"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.20"; -}; -pst2pdf.binfiles = [ - "pst2pdf" -]; -pstool = { - revision = 46393; - shortdesc = "Support for psfrag within pdfLaTeX"; - stripPrefix = 0; - sha512.run = "a97af35dfce4a137af97071b49e58c31739e6f271afc62a455db473e573148d25fc27937ce680c6f400a200151ffd73867d5dd8781b12a63c68b7bf256cff5d1"; - sha512.doc = "613cc4899b1d76e0686cd269568cfc0dda437cec0e50571086b3d44659dc4b3e3d567dec88b5420e4c802d676f21c2428b3930fb6bb3f7d7faa14c029d35d43e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5e"; -}; -pstricks = { - revision = 69674; - shortdesc = "PostScript macros for TeX"; - stripPrefix = 0; - sha512.run = "8c9d0a2c8355a338f459a34dee22893acd54fc314ef588a8fc6a727f4dc0d6fc34e64059479c096e490bb2c90d627b555d5052cbf871089099acd18fff0cebfd"; - sha512.doc = "10946b40abd2e00549abdc0e3d9067c74756785571b4f75f6baf6e6155f90087cba7eb35427f159571a04ba92e1819cf92ad12d9b4b02119ab957bb4b77da1d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.19c"; -}; -pstricks-add = { - revision = 66887; - shortdesc = "A collection of add-ons and bugfixes for PSTricks"; - stripPrefix = 0; - sha512.run = "073ce9b5f97c4432d87f51a3b239c758e2840ec894847c334dcd206433e6c0a45575ed2214c00bd013f9ddc0945a696a8eb45b2efc62d8425d1c9607da658850"; - sha512.doc = "552fcc2f0d448bd1d7f643a5c9f2521f72fd61a653363eab3bf6f31bae306a9c6694ca8d64ad5a5997adea9b92978aa366ece8bd7966c9d129942f8f487b99f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.94"; -}; -pstricks_calcnotes = { - revision = 34363; - shortdesc = "Use of PSTricks in calculus lecture notes"; - stripPrefix = 0; - sha512.run = "1b17e544484b71f3c29e5c3e1bed6021658ce7b9a256c21c004113b722a85be7ea6861753230910771b7c900184ca8cce146408301e75de79e0c2bf8939c49a6"; - sha512.doc = "bab8492549fd268f856e11f5f6db4e1ca878c67634387e7295bc163cd17080ee6b685893ddc85a882bd895adf3689639bfa7fc7d0da5e9916ef305c18d94ad65"; - license = [ "lppl13c" ]; - version = "1.2"; -}; -pstring = { - revision = 42857; - shortdesc = "Typeset sequences with justification pointers"; - stripPrefix = 0; - sha512.run = "d77c937467a9cd16f24fb1374a0d797db04bc301fa8a677712e09d83b58df6fd12aad8857dd83f4d5278d799a0d1d52ef12106e8106921d1ec1453ff6692605f"; - sha512.doc = "51c316c27c3d4083696dd9ee86e378c83ed09c75c632a7f0a580bd84d0033c7776008056a4b26d7835a4974b879c0f2b0389ae83c70cbd6ab093bc8b2add9ed4"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -psutils = { - revision = 61719; - shortdesc = "PostScript utilities"; - sha512.run = "1489c9cd3ae9e1063367301f038cd52f0fd7f5b2d548ea78c06a2bff56100aa613cd01026ce601527b6a32f88b6ed1df96f9c8c6a591d16a63dccdc8e32d6969"; - sha512.doc = "8b4814c2a769b1ea8831aa945352f31125267aeebedd8dc8abf6381928707799bcb1eb29214930152046bab63b1a56179ea035ae6568595fd5ac83bbbd22f588"; - hasManpages = true; - hasRunfiles = true; - license = [ "free" ]; - version = "p17"; -}; -psutils.binfiles = [ - "epsffit" - "extractres" - "includeres" - "psbook" - "psjoin" - "psnup" - "psresize" - "psselect" - "pstops" -]; -ptex = { - revision = 66186; - shortdesc = "A TeX system for publishing in Japanese"; - deps = [ - "cm" - "etex" - "hyphen-base" - "knuth-lib" - "plain" - "ptex-base" - "ptex-fonts" - ]; - formats = [ - { - name = "eptex"; - engine = "eptex"; - options = "*eptex.ini"; - patterns = [ "language.def" ]; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "ptex-base" "ptex-fonts" "etex" ]; - } - { - name = "ptex"; - engine = "eptex"; - options = "ptex.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "ptex-base" "ptex-fonts" ]; - } - ]; - fontMaps = [ - "KanjiMap ptex-@jaEmbed@@jaVariant@.map" - ]; - sha512.run = "dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f"; - sha512.doc = "160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293"; - hasManpages = true; - license = [ "bsd3" ]; -}; -ptex-base = { - revision = 64072; - shortdesc = "Plain TeX format for pTeX and e-pTeX"; - stripPrefix = 0; - sha512.run = "b937359bde7ade3645edb6435a824ee6af66e51e7cb518694706224e63e4d92391911f01745d331cb92e62c34c085aa5f284babacf6f7ab0a0474cbf06b00859"; - sha512.doc = "85b6422630754144e4f9c552899e588f1650af2837cf88e8f47106e2919bee8dd956002e102f83dd76107edb0e61e2a6d4ebfaaf6fc06289942fdb32385454ba"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -ptex-fontmaps = { - revision = 65953; - shortdesc = "Font maps and configuration tools for Japanese/Chinese/Korean fonts with (u)ptex"; - postactionScript = "tlpkg/tlpostcode/ptex-fontmaps-tlpost.pl"; - sha512.run = "b864c185b5718dfa76e0d4385654ca8e319ab0cbb59911defbec8d6198879265d064087df233d9020f3abc4bebe0742530f40b2ae6e584dbb4f5b6ed7ff28d07"; - sha512.doc = "4b21fe546634aad338630520bf68fce2a83f8e6fade99d170ef87a92c8308dd289ed130bf67bfc88419f8752454ab04730bfaa68de90535984590ce8435d87b5"; - sha512.source = "028304d777bfd5155baf89fcd4003bec43e5a7f3009aa9250cfd13277d085cbe52cf49511cf664efa0c886b1681475b0c25eaa65624bf0b77d4ab4403ebb457a"; - hasRunfiles = true; - hasTlpkg = true; - license = [ "publicDomain" "gpl3Only" ]; - version = "20210625.0"; -}; -ptex-fontmaps.binfiles = [ - "kanji-config-updmap" - "kanji-config-updmap-sys" - "kanji-config-updmap-user" - "kanji-fontmap-creator" -]; -ptex-fonts = { - revision = 64330; - shortdesc = "Fonts for use with pTeX"; - stripPrefix = 0; - sha512.run = "d625f45f7211eca1152a16814ce87814cc19eb7d6646d4f66971eb08eeec50bcf91ddcc253f4ffe24418a3e2a989ce10c03a3536730ac286980742cdfa22fe67"; - sha512.doc = "3a07313f79f31d09bf96c78a574d00d57641df75b9eeb89c76425ee3d6cd51d1e6ad6574fffdeb834d2bc2fa8c41511561aec34ca6be2be43d55da6227d19a19"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -ptex-manual = { - revision = 68147; - shortdesc = "Japanese pTeX manual"; - stripPrefix = 0; - sha512.run = "ffad7c7c67e7c6c92ec7b814cba8ca8cd7fc9935d5b6c7f685ee83b97cca56ac410ee2c15f8d86f4bbf443508f2e2224603c9abc64e734451ee94ce968425d62"; - sha512.doc = "dc2643c258a98410d9a456e16794d70bf6de6e1a40b8db2bcf7fb40e20953bbe482cb26cf3e65b0caa19806e915cfdd3787ddcbf69108e2af0d83e03d3b0104b"; - license = [ "bsd3" ]; -}; -ptex.binfiles = [ - "eptex" - "makejvf" - "mendex" - "pbibtex" - "pdvitomp" - "pdvitype" - "pmpost" - "ppltotf" - "ptex" - "ptftopl" - "r-pmpost" -]; -ptex2pdf = { - revision = 65953; - shortdesc = "Convert Japanese TeX documents to PDF"; - postactionScript = "tlpkg/tlpostcode/ptex2pdf-tlpost.pl"; - sha512.run = "6a4246d9fbc7cc6f37319d338df8320769cd4b1f0247186beea117b8bf228263f3a330146cf251a9e8e8c7232eb894ce6dad9eda840dd4a154f2502eae4c0f57"; - sha512.doc = "5635ead2dfa20ce9b616073272452de5c68c55104d88b2362b87cafe4762608d681b0c370169bff78466520d14f9055e509efdaa4ecdb083c3c3111ad829978c"; - hasRunfiles = true; - hasTlpkg = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl2Only" ]; - version = "20200520.0"; -}; -ptex2pdf.binfiles = [ - "ptex2pdf" -]; -ptext = { - revision = 30171; - shortdesc = "A 'lipsum' for Persian"; - stripPrefix = 0; - sha512.run = "ceb8844ff23034bf730823349e6251ef0c7f208ef74c3ed61fa212af89a3208e8f9f1b74b7877698d4459047b64376faea647a919b340d306d54de43ee9617a2"; - sha512.doc = "31ec6dea18c99aac831f4f180ccce47781ce98b2a8859bb62019cdffd690a8b803cba66728d1a9805a8a39de9ef43e357be8fb6a16e0602cf67f7f9dc6cb317e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.1"; -}; -ptlatexcommands = { - revision = 67125; - shortdesc = "LaTeX to commands in Portuguese"; - stripPrefix = 0; - sha512.run = "2a2924af70b0ed8d76f6062482a500371d67d5a3bc0b87382d76626b34da9c1acdf9c123ebfdab2e5e79041b10d0e327e9cd732781e5fa1620247bdf02dc21fb"; - sha512.doc = "5b9fc92a4cb3597c0c95936d5fb6ad475ca4f9896f8165a0e391e591bb3fc9ea75ae79c14ee62197200d69d577df8025e6017960beafe6bef0bda90a6a615118"; - sha512.source = "47c0d8ffd0f352a39f54ce32696fa67d25dd438de8fede88bfc5542409cf5576c953b40180b5ee1f469067e2ae5ea8543a68c84246ef9ffdc3c51c14866be690"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1"; -}; -ptolemaicastronomy = { - revision = 50810; - shortdesc = "Diagrams of sphere models for variably strict conditionals (Lewis counterfactuals)"; - stripPrefix = 0; - sha512.run = "58202171aa08b297e2999554d8b6ee43d4c5772e2f28fcf73c11a00ff8476dcdebfaa5352c7d248720feab2ba642947f07362cd9124dbed27e22086123da3de6"; - sha512.doc = "04997eb4bfd5c5e7789b5db02e9c27a9eb4d65e685be1428c5b81199957dff5aca626a76c719d871217ccaa2a6e6eef6c17ed94f4ea161f581b77a22306d61f3"; - sha512.source = "2a2d250d5deff043970037268b6f7400e073da58b1e6fce0d2a6e2b0c77a567dc683f616fd7ba67b659bec3f137349b37c84b808364bf5359392026730af3aae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ptptex = { - revision = 19440; - shortdesc = "Macros for 'Progress of Theoretical Physics'"; - stripPrefix = 0; - sha512.run = "a2c31b2e039c198d3c3c84cb58cc0b9326bcf11b4c361c1d5c9b8f5aa4943f14b30e722bc2425a38b69935f4c88c67439747ffd65e0a194f2e5dd54a6448bbde"; - sha512.doc = "0e754625fb8507591f21b860901de1b06bcb31f5c0b2fd7df1fa5257c7c611bae4f575f7387362bdd21d826a329a8af3ba00fd30c3bc9d91be7dea5d66e2fdae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -punk = { - revision = 27388; - shortdesc = "Donald Knuth's punk font"; - stripPrefix = 0; - sha512.run = "a442a536dbdaff9dfa9d1cdfe1a084d0f4e4e28174a424cf59a1da94013e115b9fc6294ea3362c85cb770028c62b21f7f7fa9817dbd68787498199ce585589dc"; - sha512.doc = "33842d1fb46a78654d7351ccf88b40b87e6e03d83598f661ac21ee99d45156dd8b37a652c5c8e55506f95fc57b83e7f62f6c90c3fea5443dc5bb6590302b3e7d"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -punk-latex = { - revision = 27389; - shortdesc = "LaTeX support for punk fonts"; - stripPrefix = 0; - sha512.run = "e44098c082465aa620d436a41306c9a1f36075c2612aa045e7c958151fc62e9a740584d9a9dd94b0c5631c00d406762a8e35f672931cccd3c09fe95850f3a2ba"; - sha512.doc = "36a3341d2dca08941a923a1f407b422e96438e79ba5e3911a89f13d48317ec5aa0f5afccc7539b0882996fb872b38bc3653f1e5b088805e5ef7c9d96a4546d01"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -punknova = { - revision = 24649; - shortdesc = "OpenType version of Knuth's Punk font"; - stripPrefix = 0; - sha512.run = "bcb37b02258ba406e8ef3965619c99193c08a4e1d11f771b3c6b06716eac16134be81585220a581176d9e8b4d7f488730ada3b5963238ff982be400cbb41d888"; - sha512.doc = "64df58c8996563a447ed7a012c6dd8f5248c8a7db06089d776e8ce64d516b4a0c4bf9042f587c996c7ab61582bba919551d352c9ca75f8696bcac5ad0e34866c"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.003"; -}; -purifyeps = { - revision = 29725; - shortdesc = "Make EPS work with both LaTeX/dvips and pdfLaTeX"; - sha512.run = "79d99ef7ebc462c7c65d03f23cc85b9f136df2b0c9d647fc0672584fa57bfb7447f6db0e6d6b11bfc738cfe8c8658f45fe0b4059ff00f355e4b21d44f0d4102a"; - sha512.doc = "3f9fadfb35596835b250cab98b0d1e3c6d537cfac5878e0b9788aeb5cc7ef455ce3d44f7d0f03e9002796a162d374f6aa8f9bce5bd4c3f0e8937040de0b82a8d"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -purifyeps.binfiles = [ - "purifyeps" -]; -puyotikz = { - revision = 57254; - shortdesc = "Quickly typeset board states of Puyo Puyo games"; - stripPrefix = 0; - sha512.run = "635d17a49a905c99e895df3e777eed02f4c5e91a38d083e57890cd13c927bc68098d5f0864d6e32b2585d288091d15e5cc1303e04e26b2267d7e78a07f77ea0d"; - sha512.doc = "64750274694fa8c7fc792d6f5ba19ab756366eb87668469aa6da9df74f4f7bc571772cc6a406f7c3453f306f36516aca9c2444ce126ff4968d1cc49d2c4585db"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.1"; -}; -pwebmac = { - revision = 69027; - shortdesc = "Consolidated WEB macros for DVI and PDF output"; - stripPrefix = 0; - sha512.run = "aed495ad3c056a34f63416e570db395125719e9a9cb05c5043bd4f0d58713c28ee548c931a5c18d316d0a2a39c81671788f87b422f01148cf9ecdb52ab2a87d2"; - sha512.doc = "0312806d06b3db91d2e0bf3df2c1f3dc8620c1f6b59e4e968232631edac217e99bccede5d9cf133f52409d8a664f69dfa072ab5d205f67fabafa0ee74db90d20"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "4.11"; -}; -pxbase = { - revision = 66187; - shortdesc = "Tools for use with (u)pLaTeX"; - stripPrefix = 0; - sha512.run = "34fef6f30f53ea2c67394f931168025f7dae7f6e12904b862ef821040a15eb3eac0949ebfab7b1b3dfae8e9944fdb85b99294fc6214df0ce8c1b82eac2702ed2"; - sha512.doc = "4e1fd7e88d8e17dbc4f65a7dab0f3c4bbcccf3b24b55085fafc9f393cd99a653ec2c4fa41ca85760436a1c7c6121848c57912ff649c302db6966a5c907dc0209"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.4"; -}; -pxchfon = { - revision = 68103; - shortdesc = "Japanese font setup for pLaTeX and upLaTeX"; - stripPrefix = 0; - sha512.run = "c79d32b99873e5262d3497846af0fe8c327d574ac61030241a8a1d95e4439794439cd3fb75cdcae51206e76bd4218a6778717492c036ab71aecd8e67a0040990"; - sha512.doc = "1f50dcd95cf37669330d426238d398d5bfb2503e4db06287f7a361ef87136547d1020bf1d35fcd9504ea5017dc9ec0a0cb8f9298e4d178ec4c7cd426d91f1d6f"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.0"; -}; -pxcjkcat = { - revision = 63967; - shortdesc = "LaTeX interface for the CJK category codes of upTeX"; - stripPrefix = 0; - sha512.run = "81a71b6cfdd280f65f392ad602291d468a8ffeda440609f513166b88bc1af298d6be546e953e4f3a9abac3f0bae235c12b124e11258c53c1abf778f3f78f3559"; - sha512.doc = "69fe6721aa9aa17aa1aac44680e7a520b7fd002c8fd06d2ccdde0e4d20a17875b9b585394159528fb9bf2c6e817c8e3762efce21a938217a199e49094592ec50"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.4"; -}; -pxfonts = { - revision = 15878; - shortdesc = "Palatino-like fonts in support of mathematics"; - stripPrefix = 0; - fontMaps = [ - "Map pxfonts.map" - ]; - sha512.run = "3b50d3f04c00cd080495c71d9387fe9c810ade7d83ead1178d661a618374a3a67c0fc70ae2a809d2b91db4afaf352b1596a588f6998a4eda220a6f181390b6d1"; - sha512.doc = "71898d307cabff64078bbb98bee9417c79504fd56f1cfc1427b9e4ccc9448b5e2e8436fa085a63d6fa6601e591673ef52eb2225ddfad5e34943456a2239206a5"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -pxgreeks = { - revision = 21838; - shortdesc = "Shape selection for PX fonts Greek letters"; - stripPrefix = 0; - sha512.run = "d3f8ff3c975643d74dd92e749397d01f8d3fd0087a838271a491791fa4bb2d65c852ff5989f79952d40547a601c97fe0274ab4407a8e73aa047221934b9b2e9d"; - sha512.doc = "22239223646ea121422016119b6d0edce32d002bf361d096c173857b36ce324ebe2e4107bc0eae650b50d0e94775c84f480768246ee65f975ad5a24af0335158"; - sha512.source = "9924c5b5a60d381efc41f77f9b5224a12a158fd7de6551a17b1d32eebb6ca6e80a7686648a81774398c4e25fef759612c652fff983a635f4cf56c5bbfb52858d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -pxjahyper = { - revision = 66272; - shortdesc = "Hyperref support for pLaTeX"; - stripPrefix = 0; - sha512.run = "f6e62e0dd4a5da2e9c702fc09c311a0661d58668c4999eaf5209792d3c88001b9e7d80cc1a9c259ec5e2668a7139a4fe90dac2b23ea756f238a387a6c7e66772"; - sha512.doc = "f08af33a25f837e86dcd6dcd0f96d9f7bb2570eeae9011201468fdc9bac50bb8ea72d4f069753bb0c93aa9d61952cebfbbe936f65220167e4648cb206b901aae"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3"; -}; -pxjodel = { - revision = 64072; - shortdesc = "Help change metrics of fonts from japanese-otf"; - stripPrefix = 0; - sha512.run = "a44871d5c059df8962a135b6f40c3ab4d5d751bcefa5565e428d4efd8f242f34bdbb142a065e011065a8791a141dcef022d5e6ddd6d22cf78e369413b62f046c"; - sha512.doc = "3a85af8fe9f557ae10468e5aab8c6a19c45cc1f99dbae5a3e66530484074ea91f152177ae3ba54cbff8869178055e53b7282674eb748d82d789e767f16e075e3"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.3"; -}; -pxpgfmark = { - revision = 30212; - shortdesc = "e-pTeX driver for PGF inter-picture connections"; - stripPrefix = 0; - sha512.run = "eb341eaebbe2fca860c2592c0d24f6b5c4ef0f1e6b2bd731d48c1994ded7afa01bd5cb365d3f30147f68855777defc3384038aa652240178fc948b5225cb4c08"; - sha512.doc = "8a80eade76fa7b5e5b919136e499eddb5ff534042fc56eb8223e80124bde97a39a65d31370037cf425042a1ae516e5888c8751388899ae65a8b561f091693c97"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2"; -}; -pxpic = { - revision = 67955; - shortdesc = "Draw pixel pictures"; - stripPrefix = 0; - sha512.run = "4eade52198c6ed8a9e04380cab15098435b2e158f8662d32c88599e02e49a2f7f6257bbd6fab8d3c660e61ff679aefb38d29b4787fcef0a3510776a21707526a"; - sha512.doc = "28151cfd56136ef07c9402fb8f4e0da4a2694164a38e7eaeb5045845731b0b204813b9c0f2b07f9998619feea24effd049cb42a0057841a6a3b3bd998dbc0124"; - sha512.source = "f5281b971ee70e963cb308a1906bfe8ef96939005f8b5972680db8565c1d0c9697d674426b0833064a07dbb086163c621d764125b3432af3d960a3e466b250b5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -pxrubrica = { - revision = 66298; - shortdesc = "Ruby annotations according to JIS X 4051"; - stripPrefix = 0; - sha512.run = "0ffdde0f17b1bcb90a858d6dd6ca204eea552b49e91cdc797e6364e8b59cca4808a293154426f9c3f52dd2bdc27e93c091bbddbe6c15862fec144b9e4cd6ea9e"; - sha512.doc = "e2a217a5029857d66882fb5a626e7846a2cd282b9cb2f5a65e6a61919bc7ce23a16294bfc27e9b189a8aee6bcc95cab24a94a6dca221f63d650f38c5e5fce28b"; - sha512.source = "f513b8bcc4e89323b199fd4c793a9405a94206e9498f3c298fd81a7fb07cc46a6e624e71d30b8a7951bb7b081be3ae8c621b992a0c290e0334c834d83244fed7"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3e"; -}; -pxtatescale = { - revision = 63967; - shortdesc = "Patch to graphics driver for scaling in vertical direction of pTeX"; - stripPrefix = 0; - sha512.run = "5198b276ba052495662e7adfba51b039bfc355edc01c206b6b5745338dc43e977ce7a48cd11fab3a71f6e8683f554920bfa41a427d587742d2f64f18e058c5b5"; - sha512.doc = "e3e3cf332727476e80c65118da7e7ad55f9f1c1f6658d2919aa37622bdbbc082858eef4ab718e0632752032e0f4e315c28ab8a218902509b3dbcc32377a02994"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.4"; -}; -pxtxalfa = { - revision = 60847; - shortdesc = "Virtual maths alphabets based on pxfonts and txfonts"; - stripPrefix = 0; - sha512.run = "33dfd01f714a662f351fbd3a0e0f36c413360adac666ca5665c628bf5d3acf732cb61e18190d340d144e146fa04116373259403b9eca314f48dba5ea4e6aa032"; - sha512.doc = "f547cbd3cc4a0e09034e98a27bfedf41e2e2ab9b6561e441d7656b99b6b883bb51f9fa24d731d403133358917428c53489eacf8c7ede08a963ff06c3d0404c1a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2"; -}; -pxufont = { - revision = 67573; - shortdesc = "Emulate non-Unicode Japanese fonts using Unicode fonts"; - stripPrefix = 0; - sha512.run = "370d82da425014bc4464415b4f0fe6fa1cb3375979734731ea829942ead4289e1ac6fc47c1b5c42185c97b9013da2e779c90c10454ea2e4b6e5d65540ce4179a"; - sha512.doc = "551f14e0603c0ebd59c1c250a1f9e894683f69d22de748ee6cca05ee78c75899aec8671fdc784ebc5219163068dad7a98cf94c831d81091892a72e7777bba5dd"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.7"; -}; -pygmentex = { - revision = 64131; - shortdesc = "Use Pygments to format code listings in documents"; - sha512.run = "097a1eec7e6a969b0c2aef3915d8231d7e6b6c234abe79caa7f7325df22f4976d1bcf2b111c87c9b457250a2c89b5b0a29afd7deb81ee309753901768fb3fd08"; - sha512.doc = "050bf2576a7305eda104ac928cb332e6fd1437e1852726442694fb7ec88ebe7fb9e7e54987a13b76aa103afcc446019a57b8e011f4e638469ea34a9788a8e7cf"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "lppl13c" ]; - version = "0.11"; -}; -pygmentex.binfiles = [ - "pygmentex" -]; -pyluatex = { - revision = 69372; - shortdesc = "Execute Python code on the fly in your LaTeX documents"; - stripPrefix = 0; - sha512.run = "7d400d0cd1af26732effc31e2b7a7e0cb501d712230805204362bb5fc456d379258ca2075f4c902dd6d4bb6004ba154d47ebd6cbbc5febae8d07c113987b1a60"; - sha512.doc = "3dea8e36fffdc92dd5dc68279e61d0d1bfa374373ada7236b1717b5df7c5cd1baaf2fe8fdfa02c5f64fb8ddbab209055cb707a72ca839e63ea00ffb480f6613f"; - hasRunfiles = true; - license = [ "mit" "lppl13c" ]; - version = "0.6.3"; -}; -pynotebook = { - revision = 69990; - shortdesc = "pynotebook presents (raw, Markdown or Python) codes (and execution with LuaLaTeX) as in a Jupyter Notebook"; - stripPrefix = 0; - sha512.run = "221b2167c77db3e434d253f04536398501e6bd9682e09c1984db040b9822b191366413f5dae85c84dfda5219f84d4f32dfa1366a5da6ca6b2dfc8a55389ce725"; - sha512.doc = "61d565169841a001608af347596e4a91f207ac65c45020fdf6b3a91d29b2c01192161ae1d5d274651ce90c017e27ac3d9e56041a4c2158bb43df2d07e6a9e3f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -python = { - revision = 60162; - shortdesc = "Embed Python code in LaTeX"; - stripPrefix = 0; - sha512.run = "3b2b55d1c8da0c253711ea5d6434ffe3537baf273d8a6798a5455b3170601aec0dfbb418969bd9d79f47ec502a73fa5bcbb3b74bbdd77d242859c0f7496bf8d0"; - sha512.doc = "c6785b22dc6820a84a9edc573e308a79991b4a67ff1c5b17553c05a75155ea9b981380098335162a6a7c3c25d2dc20665e35b9cf74317b5c865bc6d4fbed7a8b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.22"; -}; -pythonhighlight = { - revision = 43191; - shortdesc = "Highlighting of Python code, based on the listings package"; - stripPrefix = 0; - sha512.run = "1018d4383ba04f92d383d2c4f51d30f091528f7a89ff23614e0ebc9e488ef3cc8167de12a42e6a6465c2b3937d849bd5eecc94cab0a9b8003569b06ae2c91632"; - sha512.doc = "31297eb541060d760fd61ebe169b840cf182f8f857986aba5a2a578373037d3c99ee12ec9c707ab1f9d29564925821665997ea45f728273007f61a5f0bea5180"; - hasRunfiles = true; - license = [ "free" ]; -}; -pythonimmediate = { - revision = 69487; - shortdesc = "Library to run Python code"; - stripPrefix = 0; - deps = [ - "currfile" - "l3packages" - "precattl" - "saveenv" - ]; - sha512.run = "d780c2bb49199fdb77c28016bd50a229851580d8c48c45eb098ced2cbd66bd2a5e4b84493b65b160ae02e6a1c22e64ecdafd0718762c0355db13acd9cbc1f943"; - sha512.doc = "75d2a8ded38f8740e8ddbecf938388e06568a2a3648b94611b35072639af2ec128b687259aef2bd12a03b0e205f727532f633bd0163ef44e60a526ed38b30fab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5.0"; -}; -pythontex = { - revision = 59514; - shortdesc = "Run Python from within a document, typesetting the results"; - sha512.run = "2e67beb9974eb9a567726d8a68f7d565aeca97d20484ef6e36312100411eef9d9de937297399a98f367a756f6679314cc1a25201ff11936b8a61f8f1f148830b"; - sha512.doc = "3ec2fe0f095384734575c2c9fd1bc9d485b628485c8ee75cd8fb9ebd6d1f56edbec6f378c7c9e1d5ba9c10c4bbcc3934ddb957dc47a258ac81ca89b5ce3a2e92"; - sha512.source = "8a3cf562716df588d4ada0273c3340b73e16a01524e02a9c83c4ca781b8dd1763a1deb9e303635878721831e0d57b780c0666b694629106650f639061d2f32f4"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "lppl13c" ]; - version = "0.18"; -}; -pythontex.binfiles = [ - "depythontex" - "pythontex" -]; -q-and-a = { - revision = 69164; - shortdesc = "Typesetting Q&A-style conversation made easier"; - stripPrefix = 0; - deps = [ - "einfart" - ]; - sha512.run = "6a2ba84da635b700df2a39d69240b62749454d245ad6bb7e7ee8d87f8125f82575fa7c9e2ce4fb2b51bc0af2749135c5ba3bbfde443344ef950f6ce61a79b678"; - sha512.doc = "885a499e877514022277317c5f4d4fef22e5a0593b9a69cea2021e2326b4f57662daf55977da5078ac45f0146a76a0cc644498ae6c2c9dc49d5e5c8a39565037"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -qcircuit = { - revision = 48400; - shortdesc = "Macros to generate quantum ciruits"; - stripPrefix = 0; - sha512.run = "72dc726d377bfa13b30d5440f65e3f451a717c32785c9338bc95107a3fd29326d5011ea31a6805fd751e276279b8bb577f2b4a488ad0f380ffad84fbe46e272e"; - sha512.doc = "cb4d00d575ed8f859722b97af7f15323af85e69b7276947c05770a6c745dbf0e4b3aa1546b3cc82d9555a5ce839b142ea8edd3da166d2c109bf6b829b2ebb74f"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.6.0"; -}; -qcm = { - revision = 63833; - shortdesc = "A LaTeX2e class for making multiple choice questionnaires"; - stripPrefix = 0; - sha512.run = "f14457229f0cd0a291482b1fdab1970552257cc65955c9df43485c5af5a389d5323073c70b18ba0a6729ba4c7491fa4b2966f341b04ca6ea454d9e85e21ea904"; - sha512.doc = "f60d3cf3581f7f2fbf7a4fc18994bfdf77b3ff16d148f6036694e477f7b8945b25bffdb107f4fa11d90b65498f8abd034e24a73fe8bf3e610e2d158a08ed429f"; - sha512.source = "8cfe155d514e9b310b853b0c3b326104f26c207f49ebb0326e455e92e40f7848f3b3c89dffabe13f69cc73b9a561c79a334b4fdafa27cf8b3112977f1fe2960f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -qobitree = { - revision = 15878; - shortdesc = "LaTeX macros for typesetting trees"; - stripPrefix = 0; - sha512.run = "cd229c1611f269f904d73d276b8b36fb60a373130a3b5bf78508daf85d5ce50cdc4841a25e30c5a0925344eefd93f638e635be2878478f575f32fc458fa9a0dd"; - sha512.doc = "b3b587bbe835456cb6298804cac2a8d61c85d4bad6550cd355e6a9ba155e7b691c5b2f5f919ded355b21dde9c4009ee30466bcfc5cb6d81e0af0fdeb97aa3b64"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -qpxqtx = { - revision = 45797; - shortdesc = "Polish macros and fonts supporting Pagella/pxfonts and Termes/txfonts"; - stripPrefix = 0; - sha512.run = "7387592a338e7ba10942e4ed96364e36ca325040bff02cd69bf0f98d471775d38bd63e54bad494f64874e2fd0462762595c5796d7453aa6909fccc2d9d6bd27c"; - sha512.doc = "6b6fc20f5ec1269d318813b1ad34020e2b5341ed8891c11d2eda6b84884b3782e992dd9dde16d14b2030f2b57e1146fb6da6e761a35b12a3d88e8d865285668d"; - hasRunfiles = true; -}; -qrbill = { - revision = 67724; - shortdesc = "Create QR bills using LaTeX"; - stripPrefix = 0; - sha512.run = "61a65a020fb5cf012cc08d6d852481ce8712c214fa7cc446ecd0d5a68221f29ecfa710e81889cc92d3f3895105f153ca5fd54b798261ec095a5f06ccc75cc4e8"; - sha512.doc = "e348c90fb8ee446551fa2747763ad611344279ce00e0b8fc3772f1ca0b9bea674d1d759fc26b8955261d853b264d9e598862f0bf80561f23b4d3eb038a45f248"; - sha512.source = "0466344e7d7fb00449bad39b5c42b259a8fec4d8472bee7fbca7acb702777f7b30f0a9469e97b3b6d03ba851b13a66cfbb5d87898881ea35089976c0a7258798"; - hasRunfiles = true; - license = [ "lppl13c" "bsd3" ]; - version = "2.01"; -}; -qrcode = { - revision = 36065; - shortdesc = "Generate QR codes in LaTeX"; - stripPrefix = 0; - sha512.run = "65ecc00d46d06f8a36cb1f170c12692cf7ef8c0cf9e68bbdc6a7da6b0a7f5fcda6a2e065b8a474609556518ab07c2d12f19a9fdaa0b6339aba94cf35184e26f9"; - sha512.doc = "406d1cf238b397412a57ed695a39af0ef32de007b94e8650cf591c63882d05d7df18061fbd2b350347c052091202a38de1ceef19f61fa58de38c2e73de6b01b2"; - sha512.source = "3e344af4bcd4e0d2b49638c33177f600f1e3ff24416ad503f55b3376fe7323ab381c7ee695351923cfc06b54c9ba8b3d1f4705f5377164f2b43ee04ccc565955"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.51"; -}; -qsharp = { - revision = 49722; - shortdesc = "Syntax highlighting for the Q# language"; - stripPrefix = 0; - sha512.run = "29aa0808112111d088f8795ec87ca3df6f2e10f0a8e91347ddc7101733aadc72ba90356f7e4b39fce6484e04975d3e151205a5d5272789ecd414cd0a6afc243b"; - sha512.doc = "69d74a3ed755d16957a2a844ae624a15e18813fdf02595c2e4ae2dc0cf13b20a1db1c4f49c20db3e4d3343c586411a88c7ecfe6367c4c1efea1a8cb2730cf8f3"; - sha512.source = "d8ad97902be6b5f29db2cdd7d27049407ebffe5efc8bf0f0ac64e64ed2e3df8f4fe86b8e023ae7dde4368740fdebf22ff6420a32854d5745e8fb147005788226"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.1901.1401"; -}; -qstest = { - revision = 15878; - shortdesc = "Bundle for unit tests and pattern matching"; - stripPrefix = 0; - sha512.run = "1461a7e5a88a75d1976b8bf0b6b9a685c7e68bd5983ea1549b277627e20b8e7d0b890536c8e8357e168914220c168cc2be2e9a688b512e16d613107c50622f79"; - sha512.doc = "a2e138b5de9012b637cc98b18e5aa64b2c9384f03beceda724c86f1e81e03b6da6b19de27fe15724463edc61520d035495f2f039a2d541b4761c44c55473d1c9"; - sha512.source = "1ff5ae66e8620b298f4cb5ca4d53e420ed0e89e476edae48f1f37fb1785e8bf4693da410cf2149d690734ad11fcd669152ffa7a560bde94e923e772560f8ca19"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -qsymbols = { - revision = 15878; - shortdesc = "Maths symbol abbreviations"; - stripPrefix = 0; - sha512.run = "b910db8e0e33bbc111a95db914958a3261fa89061677d999876b026d25609326b83444a7c6b77ee4a39d60eaedff448ec662dddf9511e99c826a3bddbf0b2861"; - sha512.doc = "c633094c09c291666f1953d8d8d8570d71b773e70f90c805cb01981117ea4212ce8cbd4ffabd9ca5aaee07637d19c6e627856115b3943f9d5c414034eee500ea"; - sha512.source = "5c88d0d929f6491b6b9df65ac3ce2be28ee5461d5cae5bc2ecaba64a9012ce4d84cf3f63bec19971ca2e8ec37fa869b8707c8d6ebb9e80f8302cc04127873962"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -qtree = { - revision = 15878; - shortdesc = "Draw tree structures"; - stripPrefix = 0; - sha512.run = "9f381007c2526f51483d7c190cd7cf86cb399e95475841900ffa8f522d3da71f4f451b42562783d756e252e513ca1f9e9e8586517057a8f6b881cbbecb5c3987"; - sha512.doc = "c16142acf0c3f9e4f347c9ceff7a6c29557c0c2c4d2232ce9df146279b3cd4e1019e703479f426709a3feeb6ac46fb91f7dcee8cad35b19c83c9893661322f96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1b"; -}; -qualitype = { - revision = 54512; - shortdesc = "The QualiType font collection"; - stripPrefix = 0; - sha512.run = "c507e8b712f2ce40474ebf2c072654f00d71f1c21156cecced7ed40ea9beac07790a67250ebb7a535c19a266573edb5dbf8d1fe4d661b7828428cd1c7574a1c9"; - sha512.doc = "20ddd865622520e4f9a7a1472c03f3c18bac039dbbe10849364a8ae1d0ee7d8771f30a02511a701962b2db25c79c74d3c2aa14f42951c7df9c0feb199092d510"; - hasRunfiles = true; - license = [ "ofl" "gpl2Plus" ]; -}; -quantikz = { - revision = 67206; - shortdesc = "Draw quantum circuit diagrams"; - stripPrefix = 0; - sha512.run = "af7a59b5fa4111199351b3ee6a14ecbcd6f6e86041a7f516c97f0cd4349a2d96935f138969e0029e4f5f8b8650b7efcef9554bd631c1231d371ec323d7b41024"; - sha512.doc = "a5efd5af9c89a13afd29a06215becf7544e9643697759695f8be2ea39bd62f99748369591cdc619c18b2bba9f0a0529ea6ba0a7be1d9b4ea1c9a8a8042ff4426"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.0.1"; -}; -quantumarticle = { - revision = 65242; - shortdesc = "Document class for submissions to the Quantum journal"; - stripPrefix = 0; - sha512.run = "432dd6c4365dd1e6dfbd9ea4de2f29f0bf0fe3bb7f29b110354ad7d42c4675acc4df84cbcdabc8a476ff8de260e083d32c1b3e63bf7b6122dbc0d5373847bef9"; - sha512.doc = "791b37745fd91a13638cd1689478a35272e4b1b04ea1fc5dfe16d8d320576fbcfaf8b2929b3afa12e783fa148cf3d5f422354d8de0976d808f0921839ea3659a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.1"; -}; -quattrocento = { - revision = 64372; - shortdesc = "Quattrocento and Quattrocento Sans fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map quattrocento.map" - ]; - sha512.run = "cc6819b03992528b4a564757caf4767c92a00b8ecdd6053595c5561483287be88014b6cfe60c1eedde75160669981baaef1e71cc293d1585e9a7c54e0186fe35"; - sha512.doc = "f3881de285a603b1fb11c470f0c16698cdb4a4b165750a2bcc17fd4deaf44d5d94a7af531ddb1135d12556317731639ea779d25663a81bd25b578241ae3fab1d"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -quickreaction = { - revision = 66867; - shortdesc = "A simple and fast way to typeset chemical reactions"; - stripPrefix = 0; - sha512.run = "9915f2032b336f50f784dddf14f69df6bf59ea0c1df668adbd36cbddf98df601605ec6a245e3fc2011742f6349c830add2ffadd49e4389c088bd15bf5bbe7a7d"; - sha512.doc = "c71b5b5a52e12a50cb52632225e9c70acb40ad4796b4b8a922d810e8d5d34da532e3f2b0b708a7a896756f18edc2c39376eef4748e80ebde5869ec44e6af0765"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02.01"; -}; -quicktype = { - revision = 42183; - shortdesc = "LaTeX package for quick typesetting"; - stripPrefix = 0; - sha512.run = "4950c1c7a4536cb64d70fe8c08a69fd9336825973a7c8a669ba48bd66476888775d1ad288d34d4b83a9d674624960e3d17de1c972f52bd7f329eff971ec0f185"; - sha512.doc = "6e43ad0d932eb2237106fd991dcd25e5bd536cb64db5988c958b138af294fbc777dc6ce2c2b791e3875a2bdeaf5a10be7d15585b44e7487017925e0068e898f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -quiver = { - revision = 67779; - shortdesc = "Draw commutative diagrams exported from https://q.uiver.app"; - stripPrefix = 0; - sha512.run = "b7eda520bdfeebff570458d36e22b1779bd16c14070192072987c7f1131efa33c6f1e7ff8c16f73c338fbfe6ef80e656c2ef061ad9ee15885b7f5e8f1195ffc0"; - sha512.doc = "42bff285adfadd6655941b0221b2cf0d9a457a638997591220b564040acb94b4c57bb9dfccf90679c81e301618e8e4b5ea19c1dad9fb478dbabe1c2dbe4da991"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3.0"; -}; -quiz2socrative = { - revision = 52276; - shortdesc = "Prepare questions for socrative quizzes"; - stripPrefix = 0; - sha512.run = "f4fba8eb850a90288a9b3e7f4571f5df560e09e7cba608f7bf2bb3090db5a2c6bc7fc7240ef2e3cef9d37fe1a0105e74c4c63c39a7c1793a1fedc6f86772eac5"; - sha512.doc = "a51cc19b7d13c0bd4f1ed07c6292940176104b5fb381dece7709a5bc1332edb4606cdd4a66ee5a4e4886754c4d274aeab40666eb45328dcc6c465a29a1c4ae29"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -quizztex = { - revision = 68823; - shortdesc = "Create quizzes like in TV shows"; - stripPrefix = 0; - sha512.run = "dbf234ba1d366bdd2a1be442c4bb670efe34d67584386ab1dadfa8afa2ff8551ff03ed9c441f6dc480bfed36ea79082048aa6f0e182f4b9bb5dbce7782c81391"; - sha512.doc = "5c9242df37a22ebdc33d834acd95f760681eebf32516857d6b7ef866ebd00060017ec058c7a628239aa65cfbe62d0335ec00d786d4f9558ec754687b161ea017"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.2"; -}; -quotchap = { - revision = 56926; - shortdesc = "Decorative chapter headings"; - stripPrefix = 0; - sha512.run = "7d94162630e53133b79e33b60abb7c4664d3e486da611e37d48593757f39b0526831cedd0c236ce9b4d8ffc85b35734acadc98236435345180b999d7ea68c1f9"; - sha512.doc = "e2fa71ee21ad019ef785a3c74ddab5f232d3a6d1e9fcdcedb34c216eb5e6d44abbafcaae5d1c4557bc1e4aae92561a75ba2c3723707328a12cdb6ff4c1b72dbf"; - sha512.source = "eed36464f1b04852e8af08c5fd91c42ccccbbaeccad565e6f338ed5c87b003b2dd1704e1dad0ce0e49651461b637e8ed613399a0ae8122081e9084e47704665a"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.3"; -}; -quoting = { - revision = 32818; - shortdesc = "Consolidated environment for displayed text"; - stripPrefix = 0; - sha512.run = "44a9c726a5a9158fcd13fd93785101d2a9a940f34da3d52efd5be1a0467cd76aeaf4706b945a8de0b4e0b4a90740567cfad87f08aaa92e7d4eeae8eb9f7bbc73"; - sha512.doc = "b3990965effff7529a7c18cdd3a08af337be3766ffe535feaf54db504a47b0f054af41511a635c3e70c34d3025df419af702d319240ee673f7462d2cf4ccbbc2"; - sha512.source = "a50186cf1b8b0f55ffe4b2e8447b1232c14c6b36aaa4635bba464de1648ed01adbfa13d8a184bdda8398573b2b9132948577e47e252bcb1014761f4318a76ede"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1c"; -}; -quotmark = { - revision = 15878; - shortdesc = "Consistent quote marks"; - stripPrefix = 0; - sha512.run = "9f21ef20aa9354b1347f00a52df65ea691fe4a00b05b794815279c070d05544611ccd8773cb7c9f8146a3a135f3100a06aaec48acacba255bae9a0654a2a9b53"; - sha512.doc = "6507fcf8639e780ab844700f6356abd8eb69df6158ee638d8471a112159f95a3df8f358fa40479eefad0cf09c34fc37d9292904ae159f2a79fea5acb93f6e542"; - sha512.source = "bbc423a9d6f6fca00c5c8dd9ed5dc084d094898ad5b27397147c8dae1f3bcb8a09f137f1c2c7066fb92d1cab1f5d16681612a528fc28ec4e7901b660f6c8eee8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -quran = { - revision = 67791; - shortdesc = "An easy way to typeset any part of The Holy Quran"; - stripPrefix = 0; - sha512.run = "d725825669bce286e05ba5a6a4034f2a485434d40cd32d7f9cad42c1bc7e74001a0a0d1784b5af73c1075166835042406c42839bdd6fca40cbb06b349cc685d4"; - sha512.doc = "1d706f0ed780efb7529eec16dc9e76182c584113f6d5bc58521de023611401963636e6370c8e06082548da191c4523c7017c59f164d1cf5b234fe7fbd4522689"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -quran-bn = { - revision = 68345; - shortdesc = "Bengali translations to the quran package"; - stripPrefix = 0; - sha512.run = "24694bd309d78e2c0315d60027502a93f3beedc436e3b5dbdb3491d9320ff4e2439914a3d3b84c70644ccab3858d184d948a006b13e622af5cb6c1211cf6f5d9"; - sha512.doc = "d82f949a61f668b6577527d8ee329cd7e23fa7d584eb1c7258be3afe819d6bcf249d9db9778b6da4f57cc1f239d0340cc8b64855eb25d5825d47cf1e298dfb80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -quran-de = { - revision = 54191; - shortdesc = "German translations to the quran package"; - stripPrefix = 0; - sha512.run = "d969c3fd171102e4c47bf4eca383a22498fb6e95a5f8be288a137e12e1c92adda9e92587c402ccf87fcb116597c6074e64eb70b8249b208e7d1bd684d6ffd6d3"; - sha512.doc = "4a371576e7754789ec67cde04f533ade561d770cbf410e31c8fdb737d127dd36e0f8f6a233512b147ffd5692acecc43e1977c76efe04b1a65de3c6297038a954"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -quran-en = { - revision = 68790; - shortdesc = "English translation extension to the quran package"; - stripPrefix = 0; - sha512.run = "75ed9751d6d9517970ca0cf842eca390a172ae24eb12be04a2b97ee1d2673446064489bf594a172677cd785c05ca31587db8b3f64f8d8a1080ce0be0bf191356"; - sha512.doc = "7e5999f4378a32dca0b47ebe63a1fbaa331110d638f1b2d3308964a1a61d4036967aa1712e1c07bb0d3bfaa2106abca72302df06a811b1412d5029fd94588d2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -quran-id = { - revision = 68747; - shortdesc = "Indonesian translation extension to the quran package"; - stripPrefix = 0; - sha512.run = "88328a074b74b6197079c9fbe92170989a1c4ba139e2a84ae96f803ca5805000e11024861e9f033fcba5f346b6bcf38a59231b6849fb4af586eab33795efe7f7"; - sha512.doc = "42d6c03ff54e65e94196ea0b66e77921dc6bfed3f45605835fd6721aae3b97ebb69acb2362bf0fb6158348fedafb8d543f32602358f3466ecfd89cb56650a074"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -quran-ur = { - revision = 68314; - shortdesc = "Urdu translations to the quran package"; - stripPrefix = 0; - sha512.run = "af8d0d7c10d3b9dea55cb4339982196d5dc33204fb9ff368591e50f48b8fd5ea741207466f158a4ce7da1125cadb5240bda38cd4bc5093966fb42f7de77beed0"; - sha512.doc = "17d660971e942478baabe2e98eec7da096c37b13f9da24a8e8e4139d0dffccb280b0a464a0fe76f47ff39f899e8ae0d9a582a01be927ff8529e14c097b81090d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.22"; -}; -qyxf-book = { - revision = 56319; - shortdesc = "Book Template for Qian Yuan Xue Fu"; - stripPrefix = 0; - sha512.run = "be1be15996d6db58200ced70e6b17d29ad015bd1f1ae1dccb7cb50e225e9150db76511fbec37d17711e10104322782f92bf9fedecf990fb4358fefc2df7a78e8"; - sha512.doc = "5bd3f6f9576ae2cacf3351db9cfe59ba519953a6e25e32b2ab4215a928d7a0f2903a9c75f9432c8fff3d9b7221d6ea09c439421eb5c5ec6830665d89836b9d63"; - hasRunfiles = true; - license = [ "mit" ]; - version = "3.1.0"; -}; -r_und_s = { - revision = 15878; - shortdesc = "Chemical hazard codes"; - stripPrefix = 0; - sha512.run = "86b219305e4e085af2a22d34bc586253b5674abb18e257fa96bab1d45695f841020c0004f1da51fcfca0fd0b325e4043f2e368740841a5a2e8db774711ac6348"; - sha512.doc = "26e227f106bb9303c4823f0230b689d6ed883580051e1bd5ec2e16ad796a3e33df2caa389c309b21b010bb43b07e5ec1027d6c046af55193deb0e4d975288846"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.3i"; -}; -ragged2e = { - revision = 67441; - shortdesc = "Alternative versions of \"ragged\"-type commands"; - stripPrefix = 0; - sha512.run = "363d952daecbd0c4d57e7d2aa5bd28e32bd04efd1b26f5ab65c4874fc65948fb4258eb430560bb8d294406cf314778047b0027a45c21cf99f77119519878e368"; - sha512.doc = "be65fa8afee57fb8044ad9ec3ae1ee05ebaf0d8b40388f9876de7c25f6bc6b3a78221b393442e1c3bfe69450eb3c98b276b569540ea8a154a5297560f8a972c4"; - sha512.source = "56482d060b48c8433214b352efc1b2d6499aeb97a689fffd7e2ae5175f92033714aeb61250f79eb847ed3dc63db8e873ae8efab2aa8dd6d8824902a4c00517e2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -raleway = { - revision = 42629; - shortdesc = "Use Raleway with TeX(-alike) systems"; - stripPrefix = 0; - fontMaps = [ - "Map Raleway.map" - ]; - sha512.run = "8ce708ec993b1405dc04ddd96b6d39da324799f404e2798448c12cd03749f11685f840ba4f986b1b0f7696f9141923f3b91f5318de634979720af5af5b07781c"; - sha512.doc = "eae288de26c57ac27172e83bc6985b0edf80ac88538561468924c34656f31507e008097a1e8452ce47729ab501493733a1c022440c31c34cd99f8211383e889c"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.4"; -}; -ran_toks = { - revision = 59515; - shortdesc = "Randomise token strings"; - stripPrefix = 0; - sha512.run = "25b78e30d7e6a2f082a7740fcdb968cd4032e6fd612bafdbeb58613f45882e788809457d0fcf29af76d3eb82c57d8772960ad84f9ed5940fe670f8662853364d"; - sha512.doc = "7e837aba73d0d578494845f038f7616a64eaeecde059655c8ce3ed5a5bc2c5910086c955b6a16a42abd09dbbafb71409387959eaf2378618532d2e494bba42d2"; - sha512.source = "ad77e0842ddd144f49b26a548846f2058611336f51d7540e96ad63258ee46c2f0a139b6945c0fea1f26fbf61b5e1d21ec45f87a9f68009d87ea6b9b5634a2895"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -randbild = { - revision = 15878; - shortdesc = "Marginal pictures"; - stripPrefix = 0; - sha512.run = "b4fac4fe105366ae1047a1d4225bfbe8ecfe6e05c29e955bc91d591f25ad6a8ba0e2b81848f27af96a1509a278864393c8874b14f30e64c8d5b69b9db811ec41"; - sha512.doc = "fd8f83db389fa62ae8dd63a2c3bc8e4feb9beb6c56d7579fbd9e9065c399a73ad19563f22cdbe1dec78bd1c33056ed1cd4d9a534105b34a2ceae0cd8592326df"; - sha512.source = "6180472c45b6eb362076c50a6a813d5521fac11d92881639cfa3c7444fa456dbc7b453e4f94de147a635ce017bb21e30087ec7e6c39ead8778bbe9debb68a68b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -randexam = { - revision = 69965; - shortdesc = "Make an exam paper and its randomized variants"; - stripPrefix = 0; - sha512.run = "bba998f59e869c81278e5a174d3f7e66c6534531064e30152c3a7819b32f81ae2e75b11ee8190772c282d06f0b3b1aa84de2fd730f18edb8bc4244ee31eb60f5"; - sha512.doc = "251e4e88983af9bcda1024e014fb587ee6ae03840b0c59b141dca606271c582a1085b8a985a1d138781f9a3b6b629616ff4d6827a61ed95284a61dc123c39a41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024E"; -}; -random = { - revision = 54723; - shortdesc = "Generating \"random\" numbers in TeX"; - stripPrefix = 0; - sha512.run = "a93eb4d5b526285da18105f67bef5cb4451b7b71be50581936a4718ad99360dfd8141ee9437d374c56eb3db3aad9af4ec8e1555a4a5b8654711bf64aea3f419b"; - sha512.doc = "f2aa83c5e34707ce9f7cb46e6f3b1632784ec741a68ba9faec0d323aba2054de55f184aa9f1120491bbc60db2040087c4b2dadbb9a4b3763b84358c1855974dc"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.2"; -}; -randomlist = { - revision = 45281; - shortdesc = "Deal with database, loop, and random in order to build personalized exercises"; - stripPrefix = 0; - sha512.run = "895eb116868ced533e23d398d0f17bda2f55a2cea52ec46bcfca4004b9411fade8817af4fc9d3d91b2ab2959ea24027266d8fcac0c77a64d2a4b88fbed5d56a4"; - sha512.doc = "4c0ebff9275bbd1c8550902735b4ef0d04dbd688bb1abdf124560defd2e5d0cc23171e8034fc67b5379d0ec30395b4433ababf3c3a244cbb5ca5f15005057f58"; - sha512.source = "3ccb29c8a6b815484929b7bf0e142090bca848d3f5562533380b71e1be3c9fff2d7ed00f39fa68a745442ad45e1b07e4ed38ef2db55a2bf341e6adb0ce51c373"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -randomwalk = { - revision = 49513; - shortdesc = "Random walks using TikZ"; - stripPrefix = 0; - sha512.run = "3a1f08f41864cc3b855fc4a9f8aba298d92505231c728381f5c5aa29f21c73d6e10834ad589c114ae26ba97d092b33e9c83a30518a7f289aa0ec96c933471afd"; - sha512.doc = "00c23d42132d4a47973871bb9a2054385681898d6cd7e0a7a47337808187855812d98535428f6e37a3eb2da13680ac4128fce38db670a87a66483f6ece044c8a"; - sha512.source = "55bcb9c1acabef60ee605d9dbc0cf9d601a31528dcf444f2caf2f8b91867538549bd304b3a73b3bbefdc9e7ec82791264f054386c46b4fe67d20e8ff6a44ca8d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -randtext = { - revision = 15878; - shortdesc = "Randomise the order of characters in strings"; - stripPrefix = 0; - sha512.run = "6cd20551f4b48d30d4c830da395873bd20e11b930336f4fac0f0ccf09c9a956d18107c45aa2b1ecea51d1fc4b0c0fabf06d436e247aac6ff58548cbfd31d35b2"; - sha512.doc = "3bec31ca40816e7e86642e080021ab5faabb19656a15463f712e111485f1de00d698816e84b1ed7b63ea9380970d4e80b04aa0cf79442c7d1d77d5fa3f4d072a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -rank-2-roots = { - revision = 68161; - shortdesc = "Draw (mathematical) rank 2 root systems"; - stripPrefix = 0; - sha512.run = "c15a31fc178dbce9a776c8409d0df18e4ac05e2786aef486bd9a932c64ee6482ca15d6ca10eea70b98f9444f01d292a5e1032fb924cbd1add8e8bdae7a1bfe8e"; - sha512.doc = "b5b2bfdea68db76c4d52d45613cdd45d91e684f24739024c53a2e6efee83660c2534cc88d4aaad5b1e2c203cebf2244ccc4331935142661090b95e29aa4e9240"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -rbt-mathnotes = { - revision = 61193; - shortdesc = "Rebecca Turner's personal macros and styles for typesetting mathematics notes"; - stripPrefix = 0; - sha512.run = "15e5b0c52a70b406cb6de6ff55740206dafb75c8cc20dd45820059dcdb112c03ea0df0884b6caa12db0f792b97e0507f90d06644a8f78cd7569f9489a896b3cc"; - sha512.doc = "effd703a23c4eee3ecb385cf8ca891c50e373fdb91834f45f7ba414d6e69b5fbef8a1833db4cf76e27dc316b734b714926078e4d92de08122dc79948ba928f77"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -rccol = { - revision = 15878; - shortdesc = "Decimal-centered optionally rounded numbers in tabular"; - stripPrefix = 0; - sha512.run = "0a712f0918b4c0e4cf8cc2a0d442a681c6cd4d00b50478751512ed4588f070566f005717196f694c8d07e79f8ab6a49be6ddbda8db71af65e30cfbbceeab6d2e"; - sha512.doc = "56c43ee9f49764ce50da6b1b4fd736cfff16a1cf3907fc7189807e5c946f1c25c593ddc1aa22c2ce2e0799f7057efe2df35bfb9aef0fa1c31724110a352fe4cd"; - sha512.source = "bc0f7ee1a6fec9adf6d8ae77fb174fb0334030fcc504af46bb2cb88516c05b4b9539748b381a029b657f22d7ce6313b0f19471ef85b1064139e6cb7862c726e9"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2c"; -}; -rcs = { - revision = 15878; - shortdesc = "Use RCS (revision control system) tags in LaTeX documents"; - stripPrefix = 0; - sha512.run = "4a9d7cbc5c16163a5866bcc3c9fae95d8fc42b27d0d8dd8ceaf32e2b568bf9ac6b710a4124cbd255f1f2d18fbcf66ae020cca58ce6d16c6c5eb6e0a85e288419"; - sha512.doc = "71430d5e481dac53c3b1d5f86ec589fd855c244c6717f31c16e2fe00507850779fed3ef43db2deb546ec5b99ffe775a10711f1fd59c022f4223a8d3327424cdf"; - sha512.source = "3c2db69ab4106eac241e9126407e90d8b20cf3e186d50cabcb35041a68c1b670eb3bf9b571d00a52c8e4cd410cdd7cfb38e6bb4558560d46420d1074312910fa"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -rcs-multi = { - revision = 64967; - shortdesc = "Typeset RCS version control in multiple-file documents"; - stripPrefix = 0; - sha512.run = "597d15909aa4525608f649c08dcad66ea3e7bc41a5d3003c1fc2582ca459dab58bf9e8a909f92b3a5eb40397a2612d26601ef33fae3d151b7e5188a39ed3780f"; - sha512.doc = "7ff57e19f66f665b1b2e35b32f109f091b21300495177fdd63e60b26a8c8e1d7532e40bcdb2e01d3499b753bbb53b1dec6f70ed3273c43d3fd541a1fe63f82f8"; - sha512.source = "f86425b317ce13680ceb9f8bff961074f081e2381bcd46bd947f711835b64210452e6a230f1b5914e464b827106d4c7a8be5dff78b988d4d49cb7ad9fa98d749"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1a"; -}; -rcsinfo = { - revision = 15878; - shortdesc = "Support for the revision control system"; - stripPrefix = 0; - sha512.run = "6070a3f0b434b5339e527161b7c1e18dd21b23a9b57817a2699bc13369bf35110868e38d3e487b7b0b58ddb12699599a6e8ac4314b150ff2c8049ade5124f786"; - sha512.doc = "c7d149405b9824f7fb9a453386477ee3ebb7e265b29a004eeab687695667a9e8ddd7ca91ffdb4fe7f60716e6c1f2b39004aae82777c58cb60532bb2ace2bc846"; - sha512.source = "bb38328d3124adb4ca1734912bd0fb15040e7d390d886d3817ed547d08e4f6e5a134db6e4279ab2cf0a5b8d0216afaea475c3dceed7381bbc84adbd63bbf3b82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.11"; -}; -readablecv = { - revision = 67986; - shortdesc = "A highly readable and good looking CV and letter class"; - stripPrefix = 0; - sha512.run = "bfbc2764d56277d9a215d4366f812e53361faabd136ae86ae8152ab763742f51d27e9b61bf4a1d42fe2f14a90d5d3d0cf6cb513b3c6f5990ad34abeb26c22d44"; - sha512.doc = "6a337934b2f52cc8543ac0bee5dd52d2deff2e3fbf192977937c8331134227d816c846845923ead87615ddc117b44fb141239024e766e17e1896cfa1c4afbb05"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0"; -}; -readarray = { - revision = 60540; - shortdesc = "Read, store and recall array-formatted data"; - stripPrefix = 0; - sha512.run = "615f0be7efb7cd6954d36ad1dafc9f0f0a1632159247e7d6feb064e272c5753b26c5e07af709240a6e5f8bd7ceb7ca2c2c29842a5bd6e9e9efae2470f7a94107"; - sha512.doc = "d9f87dc14d40c33b06591b611e8a79df95fc62c32d16f72cff96222e7fe48f4c09c95bb0b02a6acddc8b4630158ed61c9375dd370c2f2d21ec8a9328f63fff47"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -realboxes = { - revision = 64967; - shortdesc = "Variants of common box-commands that read their content as real box and not as macro argument"; - stripPrefix = 0; - sha512.run = "2705000ece0e4bdc9b96929e853733eb594d6d12b1bbee97b3068f46ba2c6c3b2d06ed0f0eb5e34bd3e26e331722e51c1fd98ff36fa5c53473e99a7fb1610c22"; - sha512.doc = "aa3d6f25505cf1dba7c5ae5c364524cbed6c6a588073fb29e7d9b14706b8ffbe5998dca4f17e1039aa242ad4bbc29871c72686f920610d8662491e1c91e339f5"; - sha512.source = "096371da7866350529304b9be81460a2e081d4725c29ad423070253b7623069ee0d7ef7af6b2a88dba650231d972dceb74a70254765753f4227e39946245cef2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -realhats = { - revision = 66924; - shortdesc = "Put real hats on symbols instead of ^"; - stripPrefix = 0; - sha512.run = "9cd41126ccfdffe1322e0b49af113b65761a34fd8bffb96390f7c50d78739be06605fa2e16347a226bb7fba47bb832b1bfd19c8d836dd557fb41ae5dd0281d5c"; - sha512.doc = "94fa596ae22d6c4f75276b30e5fa0f0d03d575f01ef2d6e6a18454bce3c0328a8dd7b804d586af57363ca1c5eaf3c57a4d021fa37327920f123e7b8b2ab55df6"; - sha512.source = "87f5274eff261f29b387b8b171a1ea031e5373b282950c60517c66163c1f6b75cbe4bdd52731249b22348386fa3565952852efd5143c80edb8e6e070b0e77f5a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "7.1"; -}; -realscripts = { - revision = 56594; - shortdesc = "Access OpenType subscript and superscript glyphs"; - stripPrefix = 0; - sha512.run = "fc0c686971c536b3490438e74322aec06371857a987bd70a6def7310441229fc4813d2080c5aa9b5e22cf78dc8ab1c3ed75b301acd987117d3e6f1f589f78981"; - sha512.doc = "bddc4958f2c57e5e05fa31912a6c19ee123be463527f2e1121405194ac47b6a806790c204268bcf590785c927808b75305079ed44537ec84284c594d691c906d"; - sha512.source = "117c3dadf6aaf7a46a3290f6c49d23f62af1206e512bde7098068071e9edf00bc7da0fb34392b0911a4ae525eb0a99b946317d31d12d3312879debdfbb345a84"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3d"; -}; -realtranspose = { - revision = 56623; - shortdesc = "The \"real\" way to transpose a Matrix"; - stripPrefix = 0; - sha512.run = "413eb0a65d79521c81417afdb2d7f0ed8bc625d107d2fa19db84ae04a1f27f2da8f07fea27139dee411e1850d8646d63412eb581b08a9c4dd69c886457027cd1"; - sha512.doc = "a2382dcfa84f3a2773ef6cfdd5a10bf23cd541927e2844419d75be6206ff5b42f37243ab2157ed5765c0f9c090340b6b75b35271157daa3440ee9d81ecdff9b7"; - sha512.source = "5fd124830f8e5e29cc9b1a2ef967a21c2065d183bb8ae1560b95e66b09d1248b8bb6a65e6321651c23d309c2508c05629c2b7740e8c57e4130d2f06b99347097"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -rec-thy = { - revision = 63982; - shortdesc = "Commands to typeset recursion theory papers"; - stripPrefix = 0; - sha512.run = "0497b8d382cf239b6b8d2f4bf2aeb3af34c8d1f1ad94640f930c316f9b7bd7e6a150c3d344a555313a88cc848fdafb3e392ff6cec0caf72d3517dd1db4b7c2c5"; - sha512.doc = "0733917542d683cddfe9651bc9187d2dfa7a57e2bfbfddca687a5bda10609451a3f58cbfd7f5308647f9a3014f0a4adc36e9075cfc1a5b7db48c7d1063cc9b5a"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "3.8.2"; -}; -recipe = { - revision = 54080; - shortdesc = "A LaTeX class to typeset recipes"; - stripPrefix = 0; - sha512.run = "03e9e48a2e423f36ccfbeb2e61ffc7c3588658a158c1729f697ce44d98079f104cdf1c17d85ffd5700a7532f762e22da0c4388350007eb13226cc0da43b08678"; - sha512.doc = "4dfd27cfbb4f5f5f45a5fce25fcbee4c9881990dba1009337f41e4080686e993246189595a7c28b8d56bdd2e81a70e9c6fefcfef0897736d5400888bb9fca210"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.9"; -}; -recipebook = { - revision = 37026; - shortdesc = "Typeset 5.5\" x 8\" recipes for browsing or printing"; - stripPrefix = 0; - sha512.run = "c030f81bac27221f24b275d689fc7cf80bd6d97ccfecb0c5d51876ae825871854d7729e123caef3735a7b2a5608f070ce170709c8a1723b5c740f05371c82154"; - sha512.doc = "0c9d803360e1ef65b38f5b66c6d3eba6e9c38c371a430e2cca371594935fda16a051d6d1ee33e787114747b9efc36475c6c92b2c8b199aa1a5b48e214f7a4643"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -recipecard = { - revision = 15878; - shortdesc = "Typeset recipes in note-card-sized boxes"; - stripPrefix = 0; - sha512.run = "62778e7429aaa8e4bed6546c748a7e135c9edc4909508723e7931284c619d502e9efb0e6fa54c8c1d242858355c6d95bdc87959400c18a5648ef105035ace26f"; - sha512.doc = "0e62ac28631ee072c9b0b5dfe9995744c381f17b14da5e9c8f4159fb274cf2a7662f0eed8f728ec5990a6a957de051304601acde2d171e696e79284ab2faeff3"; - sha512.source = "d08838184d5d21107ee796835c95dd446242ea3433819229ab918a30e73a3e042e6f4cc8f75c144ced7a16391841177409567bdf3116632b0915ebe47378943d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -recorder-fingering = { - revision = 68595; - shortdesc = "Package to display recorder fingering diagrams"; - stripPrefix = 0; - sha512.run = "1a97324ac1264d293a05207a667255e5711cc13b6acc02acd5a170d776d357dae9158491bd0adf96a11e17fbdde1d24809940d323f417f31c5b73c55c7758031"; - sha512.doc = "ce1782952b53171c686d0f76d9f48a127e6c6bd6c1c2b0eccb00fb8968f31c809118f6bcce0503a61997907feb7d677ad23692c68427bf8666124bb0b040585c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3b"; -}; -rectopma = { - revision = 19980; - shortdesc = "Recycle top matter"; - stripPrefix = 0; - sha512.run = "17a297d7862eeb8c48788e40fd761fd42b37fa7b49b7447e00e828f1a7e0f2e411eee357507d79bfe0441c7feada9e06fb18ee5ce0af87e7aeec7ae618e22d83"; - sha512.doc = "27ae9a381a685373a980e13b9b5c3f6057f98224a7c9659edc0c056a6292e7289ed9772f3a503e8de3ea93b796f271dafeba57f6e240caaf738003e1ab848e46"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -recycle = { - revision = 15878; - shortdesc = "A font providing the \"recyclable\" logo"; - stripPrefix = 0; - fontMaps = [ - "Map recycle.map" - ]; - sha512.run = "3bc28ed41a8205534d34593429429768bdfa64e61cc212017ba4be32f7a985e8d65ab296137cffbb7ad5be4dec90bbfd30d675ab314bb79ec0ea10b277c33d66"; - sha512.doc = "3bbe68b48915c6fa662fb72072eb9e130613587e86d3d4172766c8fe690a995d23d252cbda9a226a7716c9da8741b3ed0e18eae1cab2f547d08265ee493a64dc"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -refcheck = { - revision = 29128; - shortdesc = "Check references (in figures, table, equations, etc)"; - stripPrefix = 0; - sha512.run = "46dde83ed04d4586eb6a2af393ab925aa7238a30c23f49ea33f0da331e2a5071447c5df22b31c2cd9b10bd37458794fe15e53e0e79f002bbcf95b0471d6a7d02"; - sha512.doc = "a87b6ab25848571770bc8a7ac1f47e139c7a2abebf36b9c72b65bc66e02c14b23f7b0d2246c7160b7669460f52afd29063449c6659336f01f3e99df53cbb4428"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.9.1"; -}; -refcount = { - revision = 53164; - shortdesc = "Counter operations with label references"; - stripPrefix = 0; - sha512.run = "da914e64de5b70e124d9eb62148f5650c9445d2fdb94272ce622478b9aa50a4c7625be9c2152fffe9ff9fd87ee19319a0bc31ec5fd82839a479faec687de4af4"; - sha512.doc = "5324828978e3c8c14e9a28b86cbf87de175b9908f460ce6090bf19944557cfe82b112c6543d2878b54f4a16b1a9f3f3ffc66eddf1234c04b8852dbfa3ebaf27e"; - sha512.source = "26c03363bd65be818d05792fc1c7e3a2e7e747a49382562eeebaefac35d5b4143b86bd46fce97fd4aa0f162ce7a1399e200f2593b3920091159bcfa08f0f8781"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -refenums = { - revision = 44131; - shortdesc = "Define named items and provide back-references with that name"; - stripPrefix = 0; - sha512.run = "7113ba67dcaf3ca2a070e42b4fa9660889bdf7803401cc0f8c3f9f62c59e467d9f637c526712bf9aa9fc7ac3df3c550a41f419de9cff375e24e68d102207e8af"; - sha512.doc = "3511419e6507d2c5a7b48679e9220e63643b38f803e8a5d7046a55ea6b6f4827fdfabb74336fe61ba35628868a7f042ad472567e73351d13ab9568c508468a97"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.2"; -}; -reflectgraphics = { - revision = 40612; - shortdesc = "Techniques for reflecting graphics"; - stripPrefix = 0; - sha512.run = "ad670c699d958eaf103db1ae65d79bad78dbb0677c7464144739fd67b63dc5acd3c298f81c81f258de477fe9f2d4a4177de887ce1c031ac9c701662167c1a5d6"; - sha512.doc = "78717728d537cf0dacaee67151cd7f19fef6fa031a856ac49a58bb576337690df4323c80e1ff0f318a4eda3689fbdbc2aa5a3bbcef69b957fc4615ff825e1e0a"; - sha512.source = "f228c9e8dedcd7d261269c896b0ef1ebeb7efc18a0137fcd64765ec92b957eb634d8e0e2d4f6aceebf1760e65936c6bb1a7b706c852e6c220282448830b7f672"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2c"; -}; -refman = { - revision = 15878; - shortdesc = "Format technical reference manuals"; - stripPrefix = 0; - sha512.run = "45f51a654703a7e749e7dbb08fd0ccedc86b5f264ce08b504ed11827799202583f81a4f3fe32dae0794e20cefe2e6bbd0ff8563955c3a85eac2642c307aaf332"; - sha512.doc = "560d70322bcedfd0ca6a10c161d3930d389e77fef25ed568f5a68ec87eaa63efd4f7dd2363bab283af00a49719c3c8ba38e8a35ca011ea349dd854a0698ec79f"; - sha512.source = "722e2493c24738bf767b271183eb1422ab103b84dec17d28f615a52d9b35e1671d3745fc5a6fc97b2a9d7934f314fbc7dba9734af8e0c802cc6760940112230c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0e"; -}; -refstyle = { - revision = 69680; - shortdesc = "Advanced formatting of cross references"; - stripPrefix = 0; - sha512.run = "05e95688dfa1e8a8a3be6937cf5c36c315371b66c14d5dc0e51862db7a5aa0307bda55848806c259b68be64bf2b36e6cdf6c328b41b84f839ec67abf2fa949dd"; - sha512.doc = "6b71671a5a7b472823e805f5559acdfbab76bbc06a063c7efec468122b3884dbe5a6229c5ed7ab4c0e1aecd304c3333a58fc5c75c22a66739fe0ca16b5c686b9"; - sha512.source = "60064112f68bf18d55c328da986c852b23fd2a9e8082221d4b4b29d901fe37de8c2ab5b9b21701e0db8ca2189945c25bd661ab9ae5a425351a3197bc0a528c27"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6b"; -}; -regcount = { - revision = 19979; - shortdesc = "Display the allocation status of the TeX registers"; - stripPrefix = 0; - sha512.run = "6481e37b45ec26aa270637b465d9fabef010c6717c0a402f0bc2afaf5dfcd877e46fd8699ff8fa39d80218e6f319e09acec1417a47fedefe6da5d90a81b2928d"; - sha512.doc = "19215d4d4e22777b236f4226d82cebb1d0f8ced841cb33a4b275f0cb558c3addd4a1fd76d3aae9cac5e275695e197574145649be5f767372bd1bff13ec76cbb7"; - sha512.source = "4b152aa79080914fa59e2b8a3103fea930ad3a0ab8959c570eba06ba36596d82ba58d03a4404cac9b2ebe3d073ca0eaff856a892b3d1e84d183a9ed60f32e42a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -regexpatch = { - revision = 58668; - shortdesc = "High level patching of commands"; - stripPrefix = 0; - sha512.run = "80b3be47155c8cd654d1b3ff7a1e261da826d97237b15733e6f63f6e3e9f1e40fb8f1cfbff48b38c4ca3acabdd3209147664aa8aa408b4601751f58d596c0f38"; - sha512.doc = "7cb6eaa1ba3e7ffcb80001b2380171204059907fa5345c3c684eb84861340f70590a8b5f1f3fb30a84516ccb2d49b3245a6a697b328157f7ed09bf9caa80982d"; - sha512.source = "bbe6ee9178c3f7d3272fd585f50f0ab66a86d38bbc65ba40a7deb8e22c6d300299c8f4203d3849b5f3c068f2194bc2ef0206ed0c0e5ebb3b235d8a83cd367d08"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2f"; -}; -register = { - revision = 54485; - shortdesc = "Typeset programmable elements in digital hardware (registers)"; - stripPrefix = 0; - sha512.run = "709694065b22e33c9d3f8d859ba8632672bd5e3fcf6102d0915c203b4fa6773e0e78f02b1af537b3ff2eabab5dffdae40e0dce63232037c37d4e50ff325e8116"; - sha512.doc = "08ee956f1f667245f3dc63a27f10b898a03929302f68f1fe19bfa3cc923a890ca72795d4500b16da31e7f69d375fc60e5023ebe404f3ee8b0ecc289fb7a6af5c"; - sha512.source = "9bccd74449f5b20fdaae9b1a6e9178a1849f711bee6ca23229c20bdb78f036a81d38a370cd8dbd0a092d0f9fbd0f97b71d61e81f337561e7345610e04412dcf3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -regstats = { - revision = 66795; - shortdesc = "Information about register use"; - stripPrefix = 0; - sha512.run = "4eaec929726cc9bce1481d4edd4222468c05aa30272b24e26b0c9737154316430ef91203531fbb94e3432fe06042de22d30a6253c1eaef6f1c9287b4f0049460"; - sha512.doc = "8c9f9156e513a4f29c7d362146056fd69f7eabac72e2747c1c93821c9ed69753630da257e1a250b415074c21c1793e4f5c57ea4022338b104871379717da37c3"; - sha512.source = "0a2b173393405c825dec83d5151b1cadd31a1e5b9b20210b7e46982836807a2e7e9c294cb3c184af2464334d43f9a5792f7ebd6c868ccba3f0b7879d34d747b7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -regulatory = { - revision = 69611; - shortdesc = "Flexible drafting of legal documents, especially in Dutch"; - stripPrefix = 0; - sha512.run = "5225692577191c662f7eabb217b9c969cd410e75f07f0ab6b2b8e7745b873249f6b56ca8b6f1b8be8fa538f566ace75af847b272045186487212d452dce9f007"; - sha512.doc = "ac792ec6ee63c2c69cd54fcbaf11e78c49fa819f3dc3bf3eca072ae76fce168c3cb5d3b26f3b0c8e31ed6118eb7787b6a043f0bbec298a80b129314d332c9a2f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.3"; -}; -reledmac = { - revision = 70207; - shortdesc = "Typeset scholarly editions"; - stripPrefix = 0; - sha512.run = "a342f8a3e20265013b493836e5b4297c847718bbf8a8cd0eba4e8efee53a2ed6e937766f67ea6b1dd3f09ae03d670f2e1bcb5bb9acb2d751d63264f1212266b8"; - sha512.doc = "45172bbd27094522f440d6df80826494381d876b715b849415fcbc13e4bc4a78a937b3dce3387540f514b9627413a3c96cfdbe390b101ffb2e2662a7ff716cfd"; - sha512.source = "67ab848a05a4592b2755c2e935f7613355881c32408c8f999b63815cb44315b72809c2287ce5aa7e27a80f5fdcc399f501a0cfd67428e86a050075e1dd54ed20"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.40.0"; -}; -relenc = { - revision = 22050; - shortdesc = "A \"relaxed\" font encoding"; - stripPrefix = 0; - sha512.run = "d638db869698a6b564f1482c3ffbda561bac0da00e008b5b3ddcbe267587813042bd3d578ea871f5ef48a27309baf8e290413b65f99daa26ba7a8b2a1dc62050"; - sha512.doc = "b5e81a7edf8e7d0c3be9ea46ffb2a43af5d58153ee91d656faba600d4082a8982706744ba1991c82ce8c119fd12fcc0eaee30353135338154b0445e48f33472f"; - sha512.source = "ef1a5c1034dfac3ed942354fad6a9e4cca44a33d2252120fe824bb41280453a6c8e00c259331e4159206f60e5043664bb4008e758d8b81dff06c7d68c3382e6a"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -relsize = { - revision = 30707; - shortdesc = "Set the font size relative to the current font size"; - stripPrefix = 0; - sha512.run = "90a4829b63d86214c44cadab6b9c9c114d6abfbd72dd4cd8bddb18add9b7fede2867f39d57b03ac9e7762950db71664767554b515b5409cc873d8b31aebb2c1c"; - sha512.doc = "45b6e38a14c31d7387a99d78c395fd0cdab5ee8bbbe72f840d511d14f6af73f749649b48977e8a995c2ee375358677b31a97646c8162c5fe2ee6c286a05a20b8"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "4.1"; -}; -reotex = { - revision = 34924; - shortdesc = "Draw Reo Channels and Circuits"; - stripPrefix = 0; - sha512.run = "e97663d414291b3d0a009143ea370676bdc69b1897492ef86bd2092e47fcead566151f175676b4a19e196054ecd4a41706a74e9d4e6ba353d9e346786d04a2d9"; - sha512.doc = "fbdfd00526129921896db36234343d991bba29b68adfdd06d9fce262a58b2cc544dbe49d28cb9722eff1fd03ba3a765e38368baeddff18e36bde436c56ce538d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -repeatindex = { - revision = 24305; - shortdesc = "Repeat items in an index after a page or column break"; - stripPrefix = 0; - sha512.run = "f700f201ff05d25fafde3eafd63ddb5aeba81dfe8be0dc4522a08459f35b3ab78cd06d215477ef5bd59c1dd6d1a05361ddfdc21159f3b6347f5a8271c4193192"; - sha512.doc = "031a5113799f662b88b2275f2f82467e2fd84ae58d18f4cb69e090aad7f2c8cb44eefc4c43f3fcda9e92de0c0027fd4ecaf9f152d33b73ebb69f06e6b4c8c1ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -repere = { - revision = 66998; - shortdesc = "MetaPost macros for secondary school mathematics teachers"; - stripPrefix = 0; - sha512.run = "502e1948f22a70003eb5ff4b6eed2790e28cd5acdadcaabcf1f0be699026fbb1cb7144bbb15f230a25f85abf00dc1de075ec44fcc6fa10e26550f85b50a272d2"; - sha512.doc = "c16864711c87f2632cfa56ba06968ed967874ca25139360476f6fa2bb7bd89b900ff8a98c4514b4664e5d623c9d29437e375284bfd0073b2cdda0eae13e896ca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "23.05.b"; -}; -repltext = { - revision = 56433; - shortdesc = "Control how text gets copied from a PDF file"; - stripPrefix = 0; - sha512.run = "a5deadeab45a6a2ab4732e91c26da32f276e2d5b35ff357faeb3361c917c3b47c81e59cb6934d052d3525df2a810510e6fa7a8b9e9d6d272c91b4b558de7132d"; - sha512.doc = "0694a76754c98bcfb6999ddb96c368701556eb1de025af1ae32ab8e39361d18405fbd2c1438c1ebafd2cb06f2d9884afc08e1c94f57eaa89313f54d58a289808"; - sha512.source = "79a4c693599b0f20e4e1b2210f65dab3b1cc276bf3a661f385a2ec70c703846e881bebd2d6ae8913a007b832206e033f178c4017fc69ef099c3ff87f4b40f651"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -rerunfilecheck = { - revision = 63869; - shortdesc = "Checksum based rerun checks on auxiliary files"; - stripPrefix = 0; - deps = [ - "atveryend" - "uniquecounter" - ]; - sha512.run = "464daf4ee4f443f4ff329e28b928df94e83e83696e3e5604de7b51beb61c25a0ce50dc00b35d2cc8d0cabb32d10bc28c3c06069f5dd7eafd9fdb2d44a3adf313"; - sha512.doc = "7c570d38c989aaeb7db5271501c5384ba8b8601396f629d7ffee32baaf1c289592bb5d69d2cb2784cfb2008fdc047098d43dc20803e4b90eac59848c15dd0cb7"; - sha512.source = "2d987c01bc0f67708080d4578f308444ed3220a37ee11ef1a95c2a9bfa0ab49a46ab46d291153f0c748935f473124d70212a821233b22f1e606be6183e4afe81"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -rescansync = { - revision = 63856; - shortdesc = "Re-scan tokens with synctex information"; - stripPrefix = 0; - sha512.run = "4ad1b90e89a005930d1ad5500418c0d867a1100d21429af64edcc803811e29bf4cd79815fc0018505c8d9504069f7f17bf6e09465484bff5ddb3dbc79f54aab1"; - sha512.doc = "602eaceabe16b326a1e2546b3fea21f22c17b92d01500dfc30f0659f0cad8d93c4e919a18af4a96e8633afcc4c08346dec8f5e84f55fb1f54cc2067e2b54ca42"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.0"; -}; -resmes = { - revision = 65375; - shortdesc = "Measure restriction symbol in LaTeX"; - stripPrefix = 0; - sha512.run = "b55b0ed4883dacc78d7d4406fff05ac80421259e85297ae8050b6a77539fd38655caa6afe6afb7c3d8654d9da0d965d7cfe52cbbcc6ed9f7be4d87aa9cd6abc4"; - sha512.doc = "f2faf70d393cead42f20aeb5fef487870c69c8fb557fcf6dc3c589fda448a73b2ca0a0a39e4d963e67a0b38f976cefe410b2c983f820dfe7aca2c255a24f4bbd"; - sha512.source = "67d88b13822d35065708d68b57c2013fd19276bed7cd433235f94b9af0c47b92c13307177c78cd16e3a87a6db634a3c93a1d8e8b30e8bca1babdece0defc8a0d"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -resolsysteme = { - revision = 66192; - shortdesc = "Work on linear systems using xint or pyluatex"; - stripPrefix = 0; - sha512.run = "b4d196ea41fd5f4c9d78df932516a8f1bcb2a8862a4b367a8a288678213fe7a7d6fa8f4ee531982dec11bf04576cc5836bf47368f282cd939464ea6df748eccb"; - sha512.doc = "3fe3d927326acf296c5cafed3c7ab5902ba7c8c943e6bab280b1e0f0a997f90c3e2676522f3dc7dae0436845b4caeb2c58804280d546dd4e6223bd1984659aa2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.5"; -}; -resphilosophica = { - revision = 50935; - shortdesc = "Typeset articles for the journal Res Philosophica"; - stripPrefix = 0; - sha512.run = "0ed9a50305132206585f322ba68fb514e0a4d566fc703a617cc6eda1de23b53820ee45231167f8b81aac826de732763e3c141a9ab65d13fac5d76e92d2101cde"; - sha512.doc = "30739549cd7295186c10a54232e4ed57d6c2a589acf6f27ee758a40880e7a4178375835662b88bd78bd50ed0f695c71650003ae5ea78c63f5dcbefa15c5dd770"; - sha512.source = "cfbaa18ff43da9287755c0cb3f218a57f034862ff9a63b3b77bc51e8171afc7c4042ee567230e7d1c263d7f993976bf4c2f3bfc055f0dd759b034d6d42d6df78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.35"; -}; -responsive = { - revision = 69147; - shortdesc = "Responsive design methods for LaTeX"; - stripPrefix = 0; - sha512.run = "13fd41361d1770d9fc58f1834adb312bde154800e5b1b6c39cb7c0b50dc5623ae3970d5d6fd179c706bcc6d92512f1af88b9dfd78440d47a9e330bff568d5ef4"; - sha512.doc = "840556a6a8ccce54850efce732e63e58078e12740c39c8b81ed47c470d39fdb8a9cd27dca9abb5380fe2d9afdc41c801d2beab4717933bd4ac110c26491ea082"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -rest-api = { - revision = 57068; - shortdesc = "Describing a rest api"; - stripPrefix = 0; - sha512.run = "a5a8f299d6feaaf4079e4a99fb84bdf7752016c92aaca0d0060692c13a7656c230e611e06bdb805712e7427d2e6cb599b96bee77e0c51ed769c4bc49cec32f1d"; - sha512.doc = "b823828c122f971101a161168cfbd489985c159278de80db86647b0c0adff207747b6877795ca97b27f541c7907aff90213feee61d4b039dffbb8b7514923e54"; - sha512.source = "2869854fc933ed536ef425d8418303e3558ed8e0b3681c2d7042e1386b0069dcf70286ee732e0f8ace19cf6965e3bb046caa0384ce1423e1c71d9591012e5a10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -resumecls = { - revision = 54815; - shortdesc = "Typeset a resume both in English and Chinese"; - stripPrefix = 0; - sha512.run = "1ee39179bba50d32bd3d6d9a00dc9f77a9a2b1822e13958b15804307e36ca208eed327f4f8ac144418e2ccde8d9e248dcf4c72bd137bf440f956d60d0bb11634"; - sha512.doc = "23a3484a598f3b18763443fd4131a2e0278f17788aac6b640b00f0935c43ee7c3da5850892b525eb6bdbb9fb01d543f7a22b93cd5ffc64290ca0fa4f41a31354"; - sha512.source = "a2c0f2062f30675fd4c336f618e7f25e1abb2737aa98f5bcb499c5941ad4615246046f9b8a5aaa57d94ed3b40906a73985c2045f8e571c2d86cc0e7dd2c243da"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.1"; -}; -resumemac = { - revision = 15878; - shortdesc = "Plain TeX macros for resumes"; - stripPrefix = 0; - sha512.run = "f944441058cbe8468ed6646dcb10e09cbac78d5c7408c2a81f2531491739034e47da9fe8f45583008892740a57a2d36bbd1417f05f8d998bd79f886bfbad87bc"; - sha512.doc = "5b89a7684cbe4da1c653d4a6253f82304b7b3634a9dc973e5f7da41967bdb034597e64a4fd82a922fac5ca62ee40e2ce35be6234deceb25000ff9103859e165b"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -returntogrid = { - revision = 48485; - shortdesc = "Semi-automatic grid typesetting"; - stripPrefix = 0; - sha512.run = "751eddac662b8ca6d61edde7a25b11c357c497743aa0edff92be2a672fa13e4a92e6aaf40a8ed69853db642d656c3f54ad0af6cb35c94fe59cd540fa19f7b964"; - sha512.doc = "6f5eb1997e25ceaa7a8956ced78c584058cb8f9fc112f98c350ff996826188f9b7748b7bedc6c19ec0912894500a4743dc7542532317016ef3d295563c450889"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -reverxii = { - revision = 63753; - shortdesc = "Playing Reversi in TeX"; - stripPrefix = 0; - sha512.run = "28117df00d778cfcc2ac035545c561ba1f078f024a8676e32d339f4c47b2206e2711474edde9c15987c397dc192528c8a584dc6bd4121e6da6588dc1a2bed71c"; - sha512.doc = "4d47dde91731affbaaf168e1a3ed79160312d9533636a95c6f9736e6f8c01f2514ec4e4c015bc9d68d0abf637b39fc063820c856693e8876ff7aaa1935f009f9"; - sha512.source = "2dd66631854044834677e0167545de184382c2f9a925b4761b041137ac957dfb2bc645f1065c675efc45e400f7d8ea2a79f0bdcbdc84bb29c1e4bad1d54769d7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -revquantum = { - revision = 43505; - shortdesc = "Hacks to make writing quantum papers for revtex4-1 less painful"; - stripPrefix = 0; - sha512.run = "0e69ce3a2a4a1c289d494e081cd28e9c14c84a45717880e92292cc94803783a350bbe33426c4f5e7ebf64e5b28876e656ab2f1ce681b86c27c7a3c6700563a41"; - sha512.doc = "16b8ff06bbc2155a853a26a0b622e3f89bb7d35439945948128fb37d342d293951526d415a3da9a01381f841dd61287317e52dddda8e8fa6e0eaa5d6a0006dc2"; - sha512.source = "47e7a900aaa9198875acb1a0727bd30b64c0d41e9c33cd6240c29b8d67b17960f1ff05f717701385f627e6827881d365c01ed68b1adea8bd3e1b5423700f9bc6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -revtex = { - revision = 67271; - shortdesc = "Styles for various Physics Journals"; - stripPrefix = 0; - sha512.run = "3c0c008929457a405cabd699a6bdbb0c4ad2afde1c7155b163c52e9564f15718bddec782abfb6336e55c77ba1d0d0d88a1da39420ed1116f21efc1e4c93d4751"; - sha512.doc = "de2053c650920b4e83183883b4fb15f25abde4210eb0c0a81adde4838c76db8e755a2afc74c8f3cafc0819d57b762e701380687e589ffc785cf6439d120c1474"; - sha512.source = "270c74b7f50c5c8ef4eb2f27dd72e5029d6d48083baa9b477506e1559fd6684aa9ff95f371c8a40fc1535455a89e13e625b1cd7c129ff18ff3101457794f34b9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.2f"; -}; -revtex4 = { - revision = 56589; - shortdesc = "Styles for various Physics Journals (old version)"; - stripPrefix = 0; - sha512.run = "cd1f83a7f2664c6002b93bf7ac3b5dfef4767b79f66cd03ed738e395027736d062d23f1a6a9354834093857d467664168295e615ed1c734b708c098943d7bf87"; - sha512.doc = "3e74689745c65b4ae0aa5afc946983aad0507de7cd382db5cddfad6bd13e1414d5f72d7fa1308b3fb65b34eca82ae632b772690a67c643eca6a26490508f7597"; - sha512.source = "32be85786fab483ac0bf8ce8e0bb314a3920e17b3102ef7ad719a4e43c3fdae113089c76587ff2075f7bedd1a6dde3fae6123a0f346082aa7a7645e7c76538e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0a"; -}; -revtex4-1 = { - revision = 56590; - shortdesc = "Styles for various Physics Journals"; - stripPrefix = 0; - sha512.run = "8c3e7c3845cd070ec51430a14a5b2d6f5b49821a837a6ac1f3a8889b353324479cf6121de0084b021c46722c425caa997b1b14df454f70bf7201ae4884de0f33"; - sha512.doc = "d17acddfc14e54d74b874d6d7599a3d20a2e314072a760b0d03ae7e17184e0264fc2d98f0d3b32109147f9b4e0a099e0c7f7e8747730a567d3a2b44d4e4d22f9"; - sha512.source = "d21d299085b7ce98e665cdd28754878c95beb7b0f0dbec970be3e39334bb520eee0ae4784cb4118b60edc0a92c6abb5bca8ad567cda65f5acdfd72449b15f2f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1s"; -}; -rgltxdoc = { - revision = 53858; - shortdesc = "Common code for documentation of the author's packages"; - stripPrefix = 0; - sha512.run = "85b9166bb4408d3b1091b033455650fdf53b24c2fce821c872420191390a1bfbf457326a1a85aab1bf0d6c15765275337764f87adcb393464f2533e2462f10c3"; - sha512.doc = "5e35c6d1e6883c895d031f047fff1ededd4629158a8958b61fb6fcbd885c57797726f595894081b4933c78e5f346289a020424405e0dcae6df40b279b86395cb"; - sha512.source = "8f94655ca8d0006aed02fa7e8fd28c5e3b8be6e92ab010a674d85bc88ce8f6e0120392540fcf5f7649a4af1e6bed4e0aec3d1d15cd095738beeb709fa2efe526"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3"; -}; -ribbonproofs = { - revision = 31137; - shortdesc = "Drawing ribbon proofs"; - stripPrefix = 0; - sha512.run = "88d1ea87819bef7f8e70e0df273315981c28ffdbc00247431afb8b92959aa2e0a3e489b01f7571d30ffaf3606d240f25bee6487fc704f39417146a93403bcb3b"; - sha512.doc = "d0efb33c19d632253384182b562cf0e0aa10be81ce2336992c83ca7d25abce37c44b152cc8e928cdac90709cb99a4a5caf3ce8a631b13762aee7b39ad92da3a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -rit-fonts = { - revision = 67659; - shortdesc = "Malayalam fonts by Rachana Institute of Typography (RIT)"; - stripPrefix = 0; - sha512.run = "6f9be849a018d8714d30dec2d9d745c745c48ded444601bf64136580999614b514ab23468a440e8811ffcd114d0968606bac269cc3bf27feb9a5cbe51a68810d"; - sha512.doc = "bcf029e75ed4d8fc403d8868bd8e01df2ca6c292766750ecd0e7c32ee6ac2e3a48527e321475c8f56ff7f38541aadbbfd8461fa59ec1ab911891bc73fcae1ec2"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.9"; -}; -rjlparshap = { - revision = 15878; - shortdesc = "Support for use of \parshape in LaTeX"; - stripPrefix = 0; - sha512.run = "9a7f5f821635f110d9bad0015d9fdf489f836cc6ec0c101f63a3bf5bf9235d7446dad98db1325b0720bab85d68432f4cbdbc6dfc78456329a8c48b47d9212abb"; - sha512.doc = "73987b63cd565766586dff08144bb9cfab13b7251053d5f008ccb7dd3091ec9d3bbe8ed92fd8e7dddce93afd13a649e68826468b87947a036a054fea76225921"; - sha512.source = "37af8ef7c124fc331a4156b177578aed29b99777a0270ef819b896e5f6dac9b694c3a05ea439cdc21533a405bd052e071036682b0846905c09ce95c32a986dff"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -rlepsf = { - revision = 19082; - shortdesc = "Rewrite labels in EPS graphics"; - stripPrefix = 0; - sha512.run = "198037c1fd20eaa28b727054607241b7ada10c9dbf4d48cd36f295a8b51a7d4f94859d2349d3d4e831a74e0da025ccaaf91fb53a3074a704f7a3216bb7df0cf1"; - sha512.doc = "fc06c857011fe01b07180c9530a334e021f5b9c034c65e15959e173a409670947c7aa406bf751d64d5d77d462139f4835824aa53203381d27d4ecb0e51463e7f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -rmathbr = { - revision = 57173; - shortdesc = "Repeating of math operator at the broken line and the new line in inline equations"; - stripPrefix = 0; - sha512.run = "d1394e40203bc7a0adffd26587870ad4aca0faaff6226047cedd5ece5e55e6a99e56829a38ce40b6736c1f9a03b9bc4b337a0e4f9eadf0617ddc385a60372176"; - sha512.doc = "e7c8d4f198399ac35e51a0d1c2c6ec420c746768de362a8179c0208325a45b11a8ba6445c2b7a433e7689e677505e3baa4b87d48a749bea5f3243d10f43deb83"; - sha512.source = "44e4859933c2a5f664feb1bd40ce1e51da845fed56b8594d3fcbbc814654c80b18d20760db3c2690fbfa74233523e4e8492471415154942cd2666cc52837a98f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.1"; -}; -rmpage = { - revision = 54080; - shortdesc = "A package to help change page layout parameters in LaTeX"; - stripPrefix = 0; - sha512.run = "13c05ff27a2b5979102c80bf30cda04d72fd144ecf43359cafd427417ed9f8921332a0cbba704061847c9f1d740f795ee1135f6ba2ba183311496884189e3fec"; - sha512.doc = "e4de990151be0c984486b833b9f883d1f3412371fdbcc09900b89849b943800cb269fe0164695e95472b463bb4dc81b92fdc532dd59a9c3ba451fb961b89211e"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.92"; -}; -robotarm = { - revision = 63116; - shortdesc = "TikZ powered LaTeX package to draw parameterized 2D robot arms"; - stripPrefix = 0; - sha512.run = "fa60eb073a9a47690935403a13da3570a4aa44e9ee13c12c5a4ff93a1f02509ab35b5f64a03a67be74190420d0b174fbb4b9a34070a646ea557f03a584fd354e"; - sha512.doc = "2d2838b21c1b0c8201375e0e4e4599c7ca11bfbf05a55e070db236ddd3793e51d1f809cb9c5e92bb9faa2e3b90b01cdc9579bbb44c653294e384c66b7628ae5e"; - sha512.source = "02b928d574b29d2de845421b650156432911c3a917c7b2f5f13a1e3decc513abf5a73fd1d8bc27563885c9502e3a6058258a79e4fca2a1cfd59437a033b3d58d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -roboto = { - revision = 64350; - shortdesc = "Support for the Roboto family of fonts"; - stripPrefix = 0; - fontMaps = [ - "Map roboto.map" - ]; - sha512.run = "d82d9ce9480bf0c9d7f6559e7bcbb5fe8f22179adc44113121f67fc0daadd66c938b9fcf9a41073843e1cc981162972a79f15fe6162f68ba7a01b74732b0f01a"; - sha512.doc = "2ceaedd2b273c252e8510a98cb05d581dad8aff94f3c8be1dc47fbbc9b52a0546ba8025c6bf0c51d97d0573d208af2f8a635c0cf405a980ae8cf8e4a1f13e499"; - hasRunfiles = true; - license = [ "asl20" "ofl" "lppl13c" ]; -}; -robust-externalize = { - revision = 70605; - shortdesc = "Cache anything (TikZ, python, ...) in a robust, efficient and pure way"; - stripPrefix = 0; - sha512.run = "d4abbe1a409b7f282985986d75032361a1c5b38fde2494a8249423edcb304c6aad8dd45484c2d3d7cd56dac9462226791cd73549b0403feb578d18032709662e"; - sha512.doc = "330f8b74e7514fdecffd7c2749fe29bebec019e69f2368b15d180c775ed85f61c90a1b59192c34d3b802dbe1cb45cbec6955e8d91e11ece6df1a1755c1a7aecd"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.7"; -}; -robustcommand = { - revision = 15878; - shortdesc = "Declare robust command, with \newcommand checks"; - stripPrefix = 0; - sha512.run = "806f997cf6c0eceec0c8d9b8f8207014c4ab9243f8007fc688674af2fd778455a787b9cf998262fb7d0a92ba8e2ffb597d61950c22a6122ad957a62ea54d9a42"; - sha512.doc = "4d5c8a994edf816d39af12d7881793f0fda0223a3545559255674fa5a08f2d0fc9ad8ea2779b3c8bfe476966045f996b8b8f5da6fdd028188d28ae724c24a222"; - sha512.source = "3dfb71a6a73f2ed968777eb1074d65773aaee7c1218b18fddd78e74a86f27d9cbf5fce79c41503c34e497b12543ec2e0c16d9f35d39b893e208a236fd66f4f50"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -robustindex = { - revision = 49877; - shortdesc = "Create index with pagerefs"; - stripPrefix = 0; - sha512.run = "3aeac1a43261302532d7b5ee309d6cd94f54a2b17954c023bc6a94fa89c51291f3c4fd3276b03aa3ec65f4e21556d302c81aec107fac5dcb477941cb474dbbf3"; - sha512.doc = "aab461e990176e1d0cb82573edcfe11a4bf668b2d09edff05f673fa20d24ec76464495bebc64086fe3bb4411d5ec9590f43cd57949bedaa3366f6c7313359f56"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -roex = { - revision = 45818; - shortdesc = "Metafont-PostScript conversions"; - stripPrefix = 0; - sha512.run = "7df2224f9970b72cfa1474898c057799fe42d717876eed864f35aab113d01dfb483edb71f7f4a0a98b6762bbc309ce6fb51e41dc222a6f19be2025f6448fb1cd"; - sha512.source = "d89d02dd79142344334678f2d8ec4f34eb825532e8be9260cd08a43b28e1aa94ff5655c1c1eadb2f9a365e51693f6195a4851e1420072c867d8b2c0f1cbcbbb4"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -rojud = { - revision = 56895; - shortdesc = "A font with the images of the counties of Romania"; - stripPrefix = 0; - fontMaps = [ - "Map rojud.map" - ]; - sha512.run = "cd7065dc6a916941a0fd05ea342d29499b6f7496d1934e06c49e7ea1a99c5be5cd515bbcbc2b5935ff8132adcc7b94e653d55de967700410ace55697f6fc156e"; - sha512.doc = "fb9c9f00433ba959ad8f7b5acc93b1e7b0db1cffec96b7c988eeaaae89ceecc815071a1e21f78d36279e529f4e9095602b1887d3c5d4164494be502cf4a19873"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -romanbar = { - revision = 25005; - shortdesc = "Write roman number with \"bars\""; - stripPrefix = 0; - sha512.run = "205ed0508765e58397953f28e6a1172d8684f8063fbaaf4d741f4f092e1f652879b414a3225c87bac01e4d41f01c2b0a44632e0cb3088c5c174fdbe42cf25272"; - sha512.doc = "a5fc8c5d6e6a584de4394c59f9bacddc23fbec8d4639a0476cc0814404f1413774fa2d6bae3d8438cad2eeaacb56405680c0c6bcc152a5e4155ecb73de72f07b"; - sha512.source = "9a96ef043dc3542251fab1dc299742b5c322518c61de8d365c290926f2365e5bd6b80a57fcaee19a30ad504ab51b2dcf71170303ab92eac97fe3db4a76dce08c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0f"; -}; -romanbarpagenumber = { - revision = 36236; - shortdesc = "Typesetting roman page numbers"; - stripPrefix = 0; - sha512.run = "7c8fbfcd5e9ec9e306e7ac836fb4c82db3bc42179bf77502b5299c17c4d3ad515b9397016d600011eb24c5d9f2eda23a485634c5aca3a765653cce32d7bf82c5"; - sha512.doc = "a46bbeef023b74c576da84f9791d4d6d47a08091b43c6bf6936c4e17ff54ab2bf5b517cbf1d07e59c077e0981ac989570265df1fde7237ff24727e33d6f1b71c"; - sha512.source = "953af4fff1fe7e6b3e4bfb7447a0da7207f93d7377ce365bfdf563c9dead97860826c8f5b8dc491164437523e27a040fee5b95b58f09f248166268197233f89c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -romande = { - revision = 19537; - shortdesc = "Romande ADF fonts and LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map yrd.map" - ]; - sha512.run = "874883eb3592852dd6dfe2dc675a768bed8db80c0c617cad7c28bbefb2ca111adb410a584f75fad935bfec330765650ea9d0f73c8c5a9fe567526b5fb46ff17e"; - sha512.doc = "708ffe5a4dccf8241eaee7d22787e0e30bbd10faa1cfd538836da676cbd4f67b16a80772f8a4cea08f59af6d41a697426c4a4254c481d13ac3a10157b2a679e0"; - sha512.source = "040b154c19ee55910b05d0bfe355bbf000403fcc5c536a081e4569390c599123d64000680cb847ad710204d1c33d7ceb0ab7ea049847ff4ad0762fd9c0acfeeb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.008-v7-sc"; -}; -romanneg = { - revision = 20087; - shortdesc = "Roman page numbers negative"; - stripPrefix = 0; - sha512.run = "4195303ca32b46d722bb148ce4079bbea7cec08fc74a7b0cb6232dcce517b7b5a10753be22fbaab62ec11d894955e1368f3a6dc2a2474cf9b9450e035bb73c11"; - sha512.doc = "cd583b94911ed57e6c61689d437fb4a55a868813fad5791dfa7231b4cbd8b7d22cf4e6f3fe90e2cd36eb08202f4058abf93b5df2d74e1841070378dc9c31db64"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -romannum = { - revision = 15878; - shortdesc = "Generate roman numerals instead of arabic digits"; - stripPrefix = 0; - sha512.run = "06fb28ffcf6c8212ba3bea5e3fd93fe4a5394ce1cd3977556bdebb982888c2c0f7e45dc751f94b1ecf921c701fe6783166e73a595d5da55e874359b7a4065182"; - sha512.doc = "60caceb87b6d866c905685cd180f0deb73f400b33007e0589e1aa5a0b42ed948d88c672a620ebdd4d78bbf92aa81c1094e4d4d6afcb981747e65596711e112be"; - sha512.source = "dd1a19bdb63aad8f3c3458bc000933b9c0d04a3b331c37d84a9e7de4a7027b6cbed113038129a789f43d1049dd72acc432e6cebbce365277026d5e6b5cde328b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0b"; -}; -rorlink = { - revision = 67461; - shortdesc = "Create ROR symbols which links to the given ROR-IDs"; - stripPrefix = 0; - sha512.run = "6dcdc3e26fa093346bb60d2346af7de4cae4ebaed024fa21de1f28cc462b956bb21e946e189804a69420ed26fee38b3a3f8d45cb5a04d16c2859f4f0e0caf8ae"; - sha512.doc = "cc711052ab363104748b944b0f9d32e6328e2613a100871a53a2b9464e4e4d16b6cbfa4c42bbbd5cd093bfac1518e605af4b43205fec40641a0e2465b50f7728"; - sha512.source = "105222e02016315b5cd5367e2a739db1c977f403e7cbc3172be8a2528e140197472785a7de48be8e252fa702941963ba2b4dbc75ce52929bea0d4b02b5b9399a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -rosario = { - revision = 51688; - shortdesc = "Using the free Rosario fonts with LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map Rosario.map" - ]; - sha512.run = "e1e200c49ba98fb1d2bd5cd927ff209a1f72b9681b1cf3b49baa263985790f7d4854ac1cd9fedd464e2076488b3042456c7fede5648dd8ef23d1ba6701705437"; - sha512.doc = "1e5a12a62b7e62587b452d0f8926757b987e83a2980698deb94c6955cff1e45ef634ec8ac1c1051f6567db8a3de9fe8d4df23a5f80317ddfd2ba863ef15935c1"; - sha512.source = "4c7613a697439feba9e52ebe40dcbf738370f3ad5278ef0232f0e0e13ba9ac2c46d60233c8159c626b97b53af5238f75c096106b0b8529423d5fa3feaaf57a87"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -rotfloat = { - revision = 18292; - shortdesc = "Rotate floats"; - stripPrefix = 0; - sha512.run = "2976812ba6d6bdb304d56c9f10f08c02aa8acceeeef6eb05ccd0ac7b3e3b86984794017627d8f939994ea0228bef5e9d6cab0b08843e87a840ee5c2390dd0bb7"; - sha512.doc = "020e080e047f20db45bf83ff32c267f5a10b7790adb64495d09ebb3795a55d953154b8afedcfa0214a77f11c35287b18949b8f1fb89b6ee51aac12a04832e922"; - sha512.source = "b3b986dc11e30b68f75bfa371c85eded713f759f6fa0229857cc05172edd70caafd9124098813cdafd1f060fe57a6667326ee84445fade50bb6acf9d1cb6a95f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -rotpages = { - revision = 18740; - shortdesc = "Typeset sets of pages upside-down and backwards"; - stripPrefix = 0; - sha512.run = "a206e4147a68ad0ae750e18ee6a360d6ed2ac91785b75f8fecda4b63db695a36a9602da8dbec1310feed4072f952dc49f4d2c5d2817fe74477759aa55246177f"; - sha512.doc = "2723d32029abfc773de8f26a1f08cb3535c5878f63effcb94fcc6a2f98f1a0f9ff3c53df8a4d9c1ce1f99b52b9fd7b2f5c919dd9cc915ea8266835aa85ddbda2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -rouequestions = { - revision = 67670; - shortdesc = "Draw a \"question wheel\" (roue de questions)"; - stripPrefix = 0; - sha512.run = "7eaa938339d1e59241b85cbbec4238be4fe2aaf4dbb3544c6d1511723c62b96dc5fe38c4fae062dd2d61760739caf0df3652b710546a6725d072969df8e68b0b"; - sha512.doc = "16ea492fabb90e0a649d5ff8e13b358a4ff7a612df34cd60a7023a1572337d237b87bdd5deadd206513562cfc1a3b27e834c49fbd5204277d38dfcf3a1e4e586"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.3"; -}; -roundbox = { - revision = 29675; - shortdesc = "Round boxes in LaTeX"; - stripPrefix = 0; - sha512.run = "078938229ca1ccba4c26f97eae59376afcee469629a7e8704d6e376d5bb256e8991ee1cff17f24e362772b78ed800b57bc6018b10e897daa73c142fafa1f62c7"; - sha512.doc = "cf0f56e42a82d6ab36fe6af2ba690024cb555192780c04ef1a01e71fd6cdfb803b0129aa95e304de4fc8c1e2d1015b14dbb6631d9773bdf463fa52c22209501f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -roundrect = { - revision = 39796; - shortdesc = "MetaPost macros for highly configurable rounded rectangles (optionally with text)"; - stripPrefix = 0; - sha512.run = "01cdc4c8443c50a91dd408c52122e8ae65257344176227a508cb082f92d61bc02756d47e27f75d7862d3c87c26add2003604956ad00b448f63b4f6417c520ba6"; - sha512.doc = "35289692327bdc68acbd442588fbd37185f9e00e3e4ca78fe500474c53ef96542042cebd18cba7720bdca0b72f19384fd3b8afcf45447644bb3c560a1385595f"; - sha512.source = "9866ae92b2c5f8c446ebca5c7afcdf3e8b52f12504b7d74c5ac4faa570a98ab6775c3ba5ad99d4300c1f9b7f92ffa423d5c73991ad47951a4e2bee3eb3bfe473"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -rrgtrees = { - revision = 27322; - shortdesc = "Linguistic tree diagrams for Role and Reference Grammar (RRG) with LaTeX"; - stripPrefix = 0; - sha512.run = "cf80b48866e36b983527f0646c94fc9776ea799ac475a2c5879a4dcb3b3b0d052e061f871b6eb0a8c0fb1153c0a9f6f0ccfcfb1c6b8f3ff4839c3d454ea3e62c"; - sha512.doc = "71992711c27e741403c5f7cc268e8597e2ea17abe42d953bf0c3caf255c0a8673f6210bb808fc70b741c694778f7cc7a45435afe39939b1377951e8e2343d73e"; - sha512.source = "8ef5cf9dd617b1f37c57cb70e2aa7b3706d171eaca5e5498fbb3f653f409667a058254fd618681dc2af701d1d9e544d97ebb65c24081ecf1e40cd81f442183af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -rsc = { - revision = 41923; - shortdesc = "BibTeX style for use with RSC journals"; - stripPrefix = 0; - sha512.run = "abd1d24110722545b93cc16ff35b70c87f467193a33e8da2a04eaff354d89782911e42a46da5d380b9406f923c6fc48d38950d7346cfc799abc0660efa23db8b"; - sha512.doc = "8569a90d7f5c532e366901d8bd2bab3d5a32d5b6d1c4cedcf179d1ae96a6c34ef5d294392f93fed589a55baf3ffddee2cd35a67c2aa8fc7e0477b47ce92eb411"; - sha512.source = "b3f097f76dcd1288a70d7aec88d7ae9fc58bb4b3f3a2589944c379aba887b3e7e6c2fd6b74b2a70de58e8cb078edc0d6ac0b1997078d0c322aca9928ba033202"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1f"; -}; -rsfs = { - revision = 15878; - shortdesc = "Ralph Smith's Formal Script font"; - stripPrefix = 0; - fontMaps = [ - "MixedMap rsfs.map" - ]; - sha512.run = "f5d52f49ead227b058841bb88571ae0d6fb40b95dd652536887acf13c0a5dc5b61e3813faaef2effc26539125c2776e113937a1612e7bc7146e7d5517b02aeb6"; - sha512.doc = "2d23715b38d90c686d7edae77f2a774041d3b679035e0399b7b6089f9b17db3ea4c6c3cdd655bb6e5f3a3cae782e30984c1fe89f5f263a0cd86b441c5376848a"; - hasRunfiles = true; - license = [ "free" ]; -}; -rsfso = { - revision = 60849; - shortdesc = "A mathematical calligraphic font based on rsfs"; - stripPrefix = 0; - fontMaps = [ - "Map rsfso.map" - ]; - sha512.run = "7632b0cafcb0d28f5f4b742f8c457634a9cd1ec7fd59e61e01fd5f3da3964ae941fdf2fbaba94b0d0934270ba56a2224352e11075970e28bcf16bd9b6f97f236"; - sha512.doc = "ccb3ce73add1f2a4f269728b8189569637327d85cd1a4d29a03904872cff10ce3057bd01a9d74a94373c3aaa52afe74a98d07bcad248fd18943efb0bace6db36"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -rterface = { - revision = 30084; - shortdesc = "Access to R analysis from within a document"; - stripPrefix = 0; - sha512.run = "3c3cd754ab17d03d50c35ec9824b76b9d4528276fe2b5a882d35df5537ca12f83956b2c596a269f9961f243bbd5e8c394c6f1bd508d07cecae50fa47bf05fd86"; - sha512.doc = "c8c38026ce2bf2a996ba40062fe3bce797b381633e4aac50ec438bc9fb567f73ad1c4e764af3cdc816e62713d4f1dd8bf2ab1814b50d086811359e999103c7bf"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -rtkinenc = { - revision = 20003; - shortdesc = "Input encoding with fallback procedures"; - stripPrefix = 0; - sha512.run = "a1f31a946838123b65124fc7220e77283cf89105ae439f1e851abfc3c30b6a6b7c83bebf676fe47de1dfa9668cfd22c638567ef9a097aa97dacef1f0e3ba1eb7"; - sha512.doc = "f3e7b1e7c95af7bf89b58ac949ab5b3fc12d991a436e28196f748ae033c46446a0cb885943777f44af1fe5ad4aa579e0fc43676c44812b01cc64d85e4ae15e4d"; - sha512.source = "9078c15d4c1531b9ca0b0ea6a2561815538de45dc33a9f8cd8f886cb7ced93a9fdf8296f409516480fb58861b599692982b503bd49568548b4d34743c44ca037"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -rtklage = { - revision = 15878; - shortdesc = "A package for German lawyers"; - stripPrefix = 0; - sha512.run = "6e39e34a7c293f503949da66f1d5ebc65ae0388dc56e87992e9fc4daff1a250196afe68150be14ee2ec3242393ce9e5ea7b681cba31b7ed1c2d58526f6506554"; - sha512.doc = "550c21bcd8af04041f1fac11f2be3ae2a1f01265ad6bf31243569820c7b8d83f32ccd0cdbcc4d5a7a5905ae9aa0512a449a1b2d6923affceb344152e6c12d72d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -rubik = { - revision = 46791; - shortdesc = "Document Rubik cube configurations and rotation sequences"; - sha512.run = "67931287ea126947b5b2d567ba355d44ce094b2b527288ce32329de4a73434be9a43cd520e6c24ef570a46a16c0edcf12212f46228ee1bcd2b8a8be7f9db3a7c"; - sha512.doc = "33d5c8210600cb4ce7b1313d1046f6644f0a6648f7ee9676d4d628d042f6501b5e92f2b56a31fbad6f637dc93a460a568be9e1335bd52bcea825f5772b2a9d51"; - hasManpages = true; - sha512.source = "3159acbc71a007877c046f6c075bf271e031feb00cda04c1818e4490396c3fb0651f160c7a98d8d3391efccae6a5b1dfde2155c6bde1c463e1c7416107b4ab90"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.0"; -}; -rubik.binfiles = [ - "rubikrotation" -]; -ruhyphen = { - revision = 21081; - shortdesc = "Russian hyphenation"; - stripPrefix = 0; - sha512.run = "d681972cad53b86167f4800f78b5d25de305d2f3f604e6b41b481c432bb9f09a964720fed5b5052cb8a30148da1bdc76306d8edb2139018d83c331d3439de958"; - sha512.source = "df587bb8c81e73f70a93146d6c3a50c2a66b16084e8eab0b01e0aefb3ce073c6b6e812cfd8c5a1520f98ca58e2e2e0634877ca2987742eccc4d7340a7d62e23b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -ruler = { - revision = 54251; - shortdesc = "A typographic ruler for TeX"; - stripPrefix = 0; - sha512.run = "a0ac63735eee4be96fc368bece6eed80058b79689954780990e1da5632448203c4f99d9b13f541a89e523f4a531983d5fefd836b99ed64c2f177723c822f8749"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -rulerbox = { - revision = 50984; - shortdesc = "Draw rulers around a box"; - stripPrefix = 0; - sha512.run = "197588dd36056d6b6e9f7772205cc44e81734cf63dfc83a7c987209df0c2b47f91f460d322df05f123768f3d10d9af8bcdda6619da394fdaf3367be88821a135"; - sha512.doc = "b4de5828d5602845217726ded4d56ce6f4008a599bb1ddba89745ab39bfc2ba9ed3fcd1f636cff4743252a975a18ba07925f1e78f81fc8cc2ded80a7cf8b74b2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -rulercompass = { - revision = 32392; - shortdesc = "A TikZ library for straight-edge and compass diagrams"; - stripPrefix = 0; - sha512.run = "8f2e8d9a4d61c3c79e3ef29ae554db2696b9c374fe10f59fe2a4baea33c679a0678a95c30ea1d4310662bb5af6a1b02d88db7bb43610545b1ffb39fba19b5001"; - sha512.doc = "6077a3c137269e5be37b62879c394d800f4bc80cacd1d9600b2aa81503958e2fa29f0364db58c1418bc206db916f84f46cbcf70d0f30a9276a6e78d154150425"; - sha512.source = "75765738f4d3b635468d8e1ebda805e0fc6e2bd3eccfbcc1594fcce89908834572aeec85fea189368d02d05ba1fff6d0e2bb454ad25bce2b92a45cffd74a979c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -runcode = { - revision = 69471; - shortdesc = "Execute foreign source code and embed the result in the pdf file"; - stripPrefix = 0; - sha512.run = "bedab511e29b368c929f688742dc59c36ee6416a8f362c2a24847dedf0eae472e64c060f26287c55b9b881804213ec57eb04249d9c031458fb3d642c01255e03"; - sha512.doc = "fe6b6af9efe7564e6c3ac6040f08ce30f17159b7a56ca983a9e8f97217706d75dc481daccc0c2594422d3c578edf0f00e5a72f5b06f7eecc8ea81f79ad27ac4e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -runtexshebang = { - revision = 68882; - shortdesc = "A Lua script running LaTeX document files with TeX-style shebang"; - sha512.run = "8e681e06b29e235d76b21370614c22ba57cf69debff19869f3589ac5a1342f368621083a17b7a1ddc1ddee37478bdb9b81f4050bb9a2f7d28a7d753909238233"; - sha512.doc = "4f2754641930105b1bd70a0a116e724e019c1930ec49e27c3ae895c35b7840c54082285cb6241554915234c16a59dbcea9ee07c509d09d5315ff6f04e0137168"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "mit" ]; - version = "0.5"; -}; -runtexshebang.binfiles = [ - "runtexshebang" -]; -russ = { - revision = 25209; - shortdesc = "LaTeX in Russian, without babel"; - stripPrefix = 0; - sha512.run = "11bceea67aae767037d728ab7892eedab312e9477f1f9f7501f9702fca4ceea4e21bd575b1589fb545abdbdc5f5f5315243f77adb4c9b9a2507fb255481c5541"; - sha512.doc = "876cba326071d0f347d9a1a4c1eca692ca743729b9604a51bb5b53de96da6006ff24168040e77df60b1999cb22901b7318669c32378a869081956dde40974802"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -rutitlepage = { - revision = 62143; - shortdesc = "Radboud University Titlepage Package"; - stripPrefix = 0; - sha512.run = "fb7d3aa93191c443ba31e1a366f34efa7dfcc896c534d3696002ebc54f3b24cb34131c50fc7d584f4b725d3b56a323628441398b2e1116789437460b97e21fc7"; - sha512.doc = "f8293227a99eb022a2c3a3ac75d7e8ba6f61880b62f5cce11eb791bb489386de93cefcc2b607cd4880ca58bb933328af66ad93b4c6ce0e16a842c56fed231206"; - sha512.source = "f42d310b3697077a842fc13f580adc605826c94984102769b6b27de26548792cfac59517319ebbd20719068c012389d0c0a10dc0a89986a89855c8ab8d039620"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -rviewport = { - revision = 23739; - shortdesc = "Relative Viewport for Graphics Inclusion"; - stripPrefix = 0; - sha512.run = "eb4bd4e75f021db40119cb4d4334611fa80d26885dd4229ace652bf8dbd7b4647a6dc4f45c8be78ad8db0cf1001b7117ce3c38de2483f0dd96da05473543ac10"; - sha512.doc = "10f94dd8b29d354eda99e8c0f15b53baef80714f7212714a94070061e403d45fc5a97d25174f268a14b0f4c924af9b25c81131929c08be1ed9a4e62204f17c22"; - sha512.source = "25e91e8c4f52b1752b32293828d174fcf3cbf6491f38dc2c58be23ef7f2a84570c96606472ed89ed837951bd2ab9bd1e48d4a126beef160c14899b0e70240eb7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -rvwrite = { - revision = 19614; - shortdesc = "Increase the number of available output streams in LaTeX"; - stripPrefix = 0; - sha512.run = "c187dcb7e1c72b727cfd0827a55d721c6a094679c1dae27438ed030209042b49c646af20e158900543369ca8ceee9896a9f36de76607f8514004df80e3be15fb"; - sha512.doc = "545e5b96a2bb3646a7b4a6eb31d5192ef85dee9ac0b6859f6b414f26c5235651294f486bd132af112a2c6021d6843e6ffef8a8f79b7389b974227bc1eee16230"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -ryersonsgsthesis = { - revision = 50119; - shortdesc = "Ryerson School of Graduate Studies thesis template"; - stripPrefix = 0; - sha512.run = "0846fb24c6b96cc30edf46d1311809e1170d3feb13b3c26be4dd330ef8dd856771f257ca197f562ed409815f0edb7e8ea744a38b9098b86a325eda9cd4ad360f"; - sha512.doc = "b0d57ce3dcab586fdc2e15f6c2291560c43dd772b693ec11e0678e083a1475c21b55601878cf938e666d0f8a5464ffb0b79281b62f4859200fc6cd67b33b8779"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "1.0.3"; -}; -ryethesis = { - revision = 33945; - shortdesc = "Class for Ryerson Unversity Graduate School requirements"; - stripPrefix = 0; - sha512.run = "63988ab74eda81270f0e470f3b1d1c772b17668fd9c6526fd8d53f588da8e52d3690b4c3ee898f2b460f83ac44ab4c528a0c6c48abf1a1cbe21427fb4e678a1a"; - sha512.doc = "03ef086a51a97ed93038338b99a516ba2898a0097326f4cff3c650c7035acc4bba7ee2fd6458c579a9f1af4ff31334dd22cc23b7004d08e58a259306ee1fbd8e"; - sha512.source = "0754857b37c510f7cc581201c516d3ca1f6e9ed9bcc0825968efbe728a281e2ec73f58f7415efdb07bcdaa66fbbab3178793907b3da17511e69044bbdb2d8aed"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.36"; -}; -sa-tikz = { - revision = 32815; - shortdesc = "TikZ library to draw switching architectures"; - stripPrefix = 0; - sha512.run = "e30f8b6dd6f082bd127077fc5040ffef53e2c2fe43afd023bf0fa9dd8094769e2d40734dcf412d477989b746e1e5141cc42cc082e9f5b26e5986cc91f8336ec1"; - sha512.doc = "d6586a6196fa9ec8c70ff6410873604d987394ff09e93462548baa202f22bda479fb4f76f66fb710b8daeb7b34e455225c997f07cc9360a09c5cbc4c45697a5e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7a"; -}; -sacsymb = { - revision = 65768; - shortdesc = "\"Sacred Symbols\" prepared with TikZ"; - stripPrefix = 0; - sha512.run = "59c61767c7f9cc782ca1a9cff78c0226f7860080453a772172f8dfba0c1deebfddba701704d15a2d05cfd010b4baae553d30207ff4701056a263a51f5a4e03e8"; - sha512.doc = "135724503c2c646bd49ad1e434f5e4c20335f23605839847b3c6729945e4550b6f855ea015e5020ff9de7ca4bc5a46d70e99dc9f372e6fbd2cbe8aaf55683984"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -sageep = { - revision = 15878; - shortdesc = "Format papers for the annual meeting of EEGS"; - stripPrefix = 0; - sha512.run = "d8e107109129636cf68d88c96a36de87b95dcfc4e154dae51a1145d7a0c58a17ca12e95b1b2fa1312c6c50c5cc02be35b23168d8eca69a7643695c38c5d0bcd6"; - sha512.doc = "7f92c14d432ca5960669a8faace80ff6d4e97d9a021281c847b7f19942f4c1a06da3657e8992998e91bd1d69398b3fe379da690f81be28cb4ddc3980262c56b5"; - sha512.source = "25f06543efc104bdcfcd81fbae6182498f23a7d1d958671cac945f5442a59a71033bf3fd174bd41c438c7a6a066d41b1e4a375b559b14bff6e705ad2ca894b05"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -sanitize-umlaut = { - revision = 67126; - shortdesc = "Sanitize umlauts for MakeIndex and pdfLaTeX"; - stripPrefix = 0; - sha512.run = "2f9514b9424a72762c9b4bfbe2bceca10dfe4e75a42e9fe2e26d6808d14fa2aab62a03f26becec8e80b00c658d4452e95c3b84bf692d64cc287693b2542ec3b5"; - sha512.doc = "2de8f2935de490e127f19b50f10698ad323e823ae4bcb7b357b6cfe084c9f6a48d2314889a54974a4b58275667da4eac89cebfac5c25e570c0172ecf9ca44af5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.0"; -}; -sankey = { - revision = 61874; - shortdesc = "Draw Sankey diagrams with TikZ"; - stripPrefix = 0; - sha512.run = "8a77f2ea3b4c2167d823a839fe2fda2c633ffeb775678e6fa9cb84558dad547f4fb03c3fda6c1f85c4984628ce1515ec874482e8a223385bf1c24b2c30dfb362"; - sha512.doc = "a3d18d1a43f22470ea5498423c10246c780116769b0493356174c8e9acc6d9aaa32657f7582b795d2cd720fdbb6786319090303548661f899a650da4a0442629"; - sha512.source = "92b3d428919f217c8c869d3896829e324670647c29321bd868753e3b408c5e227acdc15097c81dee01b3319c08fcd94da1cb5e11ceb5d5775a90235a54e997bf"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "3.0.1"; -}; -sanskrit = { - revision = 64502; - shortdesc = "Sanskrit support"; - stripPrefix = 0; - sha512.run = "85b4c707f00cba5b9be49f228f0466e3f0482562d481763b9cc7f269e84e4018e3c00668483b6ba798b0336781555e45c06a6be116c2c4b23a978defa8c8141f"; - sha512.doc = "16643e1c8e72e37ecdfae0176c415fd655619121cc75fe573dddf4a07a64161050a681f524747868101e72ee655de6935d3c21f68e74c31bcb7113d9942c818e"; - sha512.source = "e7836d95d46335a3e809fce62211029addb84ad586fdd74f2f8ea924e767bd7c800edac5b74c8660c10eec46b5a8f0b287121e83b48e029b98ae69cc19bdb14b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2.4"; -}; -sanskrit-t1 = { - revision = 55475; - shortdesc = "Type 1 version of 'skt' fonts for Sanskrit"; - stripPrefix = 0; - fontMaps = [ - "Map skt.map" - ]; - sha512.run = "50f7a12443730bb017334ed1bad840dd2086a0225586eeae02f1386f410ae802fd043b1ce8a90e495aac7bdb20e2a8532c4cf98d48f0fc32b96da24f28de26bc"; - sha512.doc = "11a0bbb4212f72a18df5eb1ce1e2259774c6376a3c107fe32bed4176d23da2f5bda5cab71a7df618c67113ac9d65969ea8e680ab939c7c6cb2542ebd4c7e5efa"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sansmath = { - revision = 17997; - shortdesc = "Maths in a sans font"; - stripPrefix = 0; - sha512.run = "075b9a32512f191767bfc739b833497eed371c2078fc8511ba507b19e2744675bfb3caeda40da484ae559aaff44aa4f6b2f7f5baaeb0c30076654593216fa5e4"; - sha512.doc = "7923dcfcf20c945dc61af747000694c59c61982417307356ef2ee335f7a3eac7e44974a334072125ed4a3ec3b29caf342f15dfda1fdbc348a5e2cfb8a4dc2469"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.1"; -}; -sansmathaccent = { - revision = 53628; - shortdesc = "Correct placement of accents in sans-serif maths"; - stripPrefix = 0; - fontMaps = [ - "Map sansmathaccent.map" - ]; - sha512.run = "685b0c604978aac45efd75c37652471aa165bfbbf12dfa686320a6a9ef926f9043382333ecc26db6d2ff4d12732d135947145ba937eb6d01d4a4e9aa17784315"; - sha512.doc = "c9bf7d65a232d668243df9867b2eca64e0288fd733c6b39ce200f64fc5b0a07c98ea6a971446f67f1766998e169c14a80eda71104c1653ed54d3865e6e145fc0"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sansmathfonts = { - revision = 68777; - shortdesc = "Extended Computer Modern sans serif fonts"; - stripPrefix = 0; - fontMaps = [ - "Map sansmathfonts.map" - ]; - sha512.run = "d31d37820883b0fa2a97dc878d11b6866554839acbae8c56fc10fb164fcfc2af5590d0d562512aa313ca950c32aecb4d4b89ea4113326446a75006b34a2f677c"; - sha512.doc = "5972253d34cb39cb0151050b4e9dab45dea50901a84f736ee8a25beb5ad647a112462ed5b3d46c61ff20a3a20852000c64736c88df9ed59defa2da5bf54b5638"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sapthesis = { - revision = 63810; - shortdesc = "Typeset theses for Sapienza-University, Rome"; - stripPrefix = 0; - sha512.run = "14ae91cff0c5487a6751d92f1ac4e252ba53feb74883c3e0f078f5269845fd85c906a4f962c4309f6765fcbadf934877a183659d68a88e1050fe636c0e5d54be"; - sha512.doc = "04c294886ecc33f3725222d9a44953dd2c4be7a5dcc5c9d08d8cc05c2d8dc9c003bfa80a7ec027956b1e680a555b1fa70af64a91c27833a77ad4469a1cbc6111"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.1"; -}; -sasnrdisplay = { - revision = 63255; - shortdesc = "Typeset SAS or R code or output"; - stripPrefix = 0; - sha512.run = "5f6483d066775682cd08b9f68b7f31f5e8bedaf9248b7345dd23a950d5e61e3d2664dc2cffe2a86b35273044f8d8df2694d4d3598d70b974d38e02ae8343a844"; - sha512.doc = "a99bda8628ed2b4cdc0ba24bdb0f514ecac643481d9d866c2992df131354a677ee6fe0244285ee4d9029eb10b219c9fd9dc5f7f93a01414a3db2cff8f58e08e9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.95"; -}; -sauerj = { - revision = 15878; - shortdesc = "A bundle of utilities by Jonathan Sauer"; - stripPrefix = 0; - sha512.run = "a4fe5bad7f3d5c895d6166846100cabb1b59e5f37c06d21e451acbaeed0847ab93d9995e70209ab18cc55bf8c78a6c83cbbdd49a45a4cfe511cdad41baf3ddfb"; - sha512.doc = "3ec0f5c2132a809b4f2f945255f0806508a3dfa3733119368ba59e4dcf5304ac9876ea5f05912faf926db651d1aaf4a3a1c40744fe7d3a077d8bd9dde2676754"; - sha512.source = "05d2adc3b802e3c338dd92818cf7ce4d3bd6964dba8522bf4628bfc2d13939bde47cd0892b4fb629270d5e9104b9577fe6e3ba6eb71ca60a07f5e6441b0f572b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sauter = { - revision = 13293; - shortdesc = "Wide range of design sizes for CM fonts"; - stripPrefix = 0; - sha512.run = "17fc32a3dae358be5215301abe13d9e865ff9f52f58cdc849d5fc80aeb1a79723d0a39282383086282fbddcaeda0fe586cd3043edd582e0addc0b223bc3ee756"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.4"; -}; -sauterfonts = { - revision = 15878; - shortdesc = "Use Sauter's fonts in LaTeX"; - stripPrefix = 0; - sha512.run = "4d7e491a7a6a22fd6ad8f407cbc8c041434466850e2e5efd46897843281cb71e046fc6cb849cb091cbf05191c45c52a6cb3e0d806eccb9133fddda9c8f305969"; - sha512.doc = "16647b89752d1871c798f80be91bacf375ae9a4d5199ef7417edb4ff019d7aae548fbbbbde47f84cd5c7c36ec4988ad1df82735f4aeaeb40180b07a86dceb5a7"; - sha512.source = "d8379fb3c2dfc5dcd9fc5c22101855a27ef5de3ac377f1e6a56bfd397888c5f7f94dd37c24c6625a9dc40f15160721c468b5a5bbe8a35f98f983755889e250d8"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -saveenv = { - revision = 65346; - shortdesc = "Save environment content verbatim"; - stripPrefix = 0; - deps = [ - "precattl" - ]; - sha512.run = "e0e368dcf3add9d59b22d8e04da1de9110d6f1ad2e31cd2cd44f894ea1d7f0cbd4eb41b500637e896eb179539e19c4a1d0601035e2404726dfc98677f9db0927"; - sha512.doc = "2016c815add27dca5b498f4cca3ce69c9c18f544b9651305d5d9a9a7a10b30fe187c526da37813218388f8305fc3df83257b2e9b6289171febb770c7d59d9274"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.1"; -}; -savefnmark = { - revision = 15878; - shortdesc = "Save name of the footnote mark for reuse"; - stripPrefix = 0; - sha512.run = "2d39c1246bc9c5c28222a6ce96b93bc0c1e93c3155f68f44843b5560b548191ad3b608f24b5c444b834fc441238a0d2174a9a8ec006f01b160f77159decfeeb0"; - sha512.doc = "9ca251e6d17373e5d6f308d2e75896aaa3e44d0f5883be65f7629f922f0eda296c963530e8fc1c80073e0706c2c72f97d062cd731481654c0564cdb695eaa86a"; - sha512.source = "984807d4efb4b24445dec6742e0328274527ef3c7ddb3df57a5d941531d1e634b5d672c9a510b62f7053d69c10668c311457b3a1065e1775f964e9a74ad027a2"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -savesym = { - revision = 31565; - shortdesc = "Redefine symbols where names conflict"; - stripPrefix = 0; - sha512.run = "212ea18ebb424f9b64ca9c75a783dee9ceebac09adcd6ff6c721d90796bf4121aa8710935529451e6f9a4de9c3cb5910b6c07d6fd6b7093c4b9904348f43a1fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -savetrees = { - revision = 40525; - shortdesc = "Optimise the use of each page of a LaTeX document"; - stripPrefix = 0; - sha512.run = "f31ac72f12ecbe2ab05bde14de907707988d6b9ba20414543b9176b71d2a0d5358a34348177857c56b961301678b612ee6f767d1b9cb671b9bab344bb8230e6d"; - sha512.doc = "3e5cfb62d4020d32d9bab01b3df2ea1cb485240aea5eda3541d29cbe38487ed8b242a1eb2b9d15d08bd742390a8d8a25b584e110145dab330580e69e2287f181"; - sha512.source = "2dcc671cae73824a2e4cf10682f0ad7d6236f5e856267663f14864804587e1394fe12de5e3e54e5a64abb798c16014fab07a462584eac3a561f971496c58b5b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -scale = { - revision = 15878; - shortdesc = "Scale document by sqrt(2) or magstep(2)"; - stripPrefix = 0; - sha512.run = "2d090a08c8f7d5d9b332f390b29b16e911f339071579cc09b954b2978df4b410ff3c47afd6b8bea0ce7eabac551b94f8630fdb7aaa4ef39f793748925157a19d"; - sha512.doc = "aa41f6de8baee992b123ed40086dd5d0aff63c187858502c66056a52f3b8bfb12a5b7dd15ae9279a224e9d67d717f3927e97f5879ab09ded9e0960a3eb910a90"; - sha512.source = "387efffefb6774f50165a0c3242005a52418c5c9ac3ff6d1b87f696eef7af8a57a19a4efe6066e7939fcd76ff8ff9ce3ab4941d30d36c6bf30beeea1a95d4eac"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1.2"; -}; -scalebar = { - revision = 15878; - shortdesc = "Create scalebars for maps, diagrams or photos"; - stripPrefix = 0; - sha512.run = "1e367f025943a56b6592238e2961f967beb1d5ff5b68ee83565b3926a392214557237e482ba0b174ddb2e6861e4690e636edef1a5fe0473c465a0deaa1e1bd0a"; - sha512.doc = "cada3793771a28c3ce30439c782d245b6b21cfa426d2268e7e072a8559a81692b6c4e9e26a8bd452fe5882f39e55fd061a1af4e9be362bdcdb1f6ff6bba781e2"; - sha512.source = "f6f3e8d007ab3efd6bf1d45b9e3af1fa846637a8b66226f9ae24d64b3be9938b547bc3879a33f44d465f8f62494d1f55141c713b18161ec4006ed76eaa52169e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -scalerel = { - revision = 42809; - shortdesc = "Constrained scaling and stretching of objects"; - stripPrefix = 0; - sha512.run = "0b0a996bbed0fc185714f84e32c76e5a9277137d3d8dcc6b12b516afa97f3c80b2684c3c22af8717bb3e6acca267a3862c1244df7cb71eca61b10074fe1c3a89"; - sha512.doc = "1533997bed3ce5499a1285a6db03be20f28fe70b1ebbac5d117e692c53068ecbe7f8082cd5f93c753bbfc1eb4fb3b78372c7b14f5e2c636398f37dbc17972d97"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -scanpages = { - revision = 42633; - shortdesc = "Support importing and embellishing scanned documents"; - stripPrefix = 0; - fontMaps = [ - "Map scanpages.map" - ]; - sha512.run = "e13f7849b2b1cbe9fc60fc2e3d3bb7f2879644c282e8664a5ec46b3143f4ac7fbd21f2976183ad410bf778a181d5063b23832734f0ff43a617c9020b16587fb6"; - sha512.doc = "34eb2549a4d809602cf69eb562fd3c03c8d3fc4063820ce41b52d733228a6a83ace819e5bb82e77cd3be3cb8093e7997377fadeded652d20509eecde458d9b78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.05a"; -}; -schedule = { - revision = 51805; - shortdesc = "Weekly schedules"; - stripPrefix = 0; - sha512.run = "c7d58c5e4ecdef504e1d32934ccf2c71cd36b073af4031ee83b0d0a3b3393a40acc26dd4e057f426561903d0d08297bb2a9849cad2cc5a11b02e15a3983f0e1b"; - sha512.doc = "ca5f9e2b27f0b01531e82e64e99f816aaa52f5f340bc2fdefac367918d50c564cd178709428554a908951c117dbcf3d24753f84d864fcdc546129c3de25d7e77"; - sha512.source = "e910feb417f9d1606b323a995026f3d3275523b4fcc53dd94d44c10b375ba13d322f32191dfec36b9606174240ec77de1b024c1f8ac14b94224d34e2aa0cdabc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.20"; -}; -schemabloc = { - revision = 68445; - shortdesc = "Draw block diagrams, using TikZ"; - stripPrefix = 0; - sha512.run = "7a99b1fee9c4436371f5228e969786518f55aa65dad3cc540be912d6123efbb5a25634d337bcc9a3f626d37f3408b08999378bdc9d32e1e1db2549499b59b1cb"; - sha512.doc = "eca5a57f53615a486b21fbc2a0870c5816decb97a1c6bb004d5a6f6faa89f1cd8c7a8a51135904d2ab53076b6ac239f3192c976b54672d45d1eeaed353d07055"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -schemata = { - revision = 58020; - shortdesc = "Print topical diagrams"; - stripPrefix = 0; - sha512.run = "d3c6418c699bb624287d7de3d64695e721fba3e44eb99df02ef58c02c7478f12ca329153295e076a126748239a483e941af3e8d9ade86e3f15a134424c6f4e5e"; - sha512.doc = "9f71ea989942daea92cce48f3a013fc1eca84ef4a36856e28f280f04efd21a0dd3cc5799f9308fb8fafe803c23106544ea85e2d094bf21f178158e30eab35b06"; - sha512.source = "55c041e627470133a7374e0a1f00079f5de58949a3c0e8d3c3c78857e7bac3d5afd33304d57f3c70dc98d682e4eec3f00e3624aa22a1310b56269b724df6c95b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -scheme-basic = { - revision = 54191; - shortdesc = "basic scheme (plain and latex)"; - stripPrefix = 0; - deps = [ - "collection-basic" - "collection-latex" - ]; - sha512.run = "027a1cd0dd4fc5da2427864bb49fc885a00bec6e8a74da24ce9cd781c69bf4288ddfc3c790307ed48052a8fc00c1989d3939b253da6638370adbb1c43348749b"; -}; -scheme-bookpub = { - revision = 63547; - shortdesc = "book publishing scheme (core LaTeX and add-ons)"; - stripPrefix = 0; - deps = [ - "barcodes" - "biber" - "biblatex" - "bookcover" - "caption" - "collection-basic" - "collection-latex" - "enumitem" - "fontspec" - "latexmk" - "lipsum" - "listings" - "markdown" - "memoir" - "microtype" - "minted" - "novel" - "octavo" - "pdfpages" - "pgf" - "qrcode" - "shapes" - "titlesec" - "tocloft" - "tufte-latex" - "willowtreebook" - ]; - sha512.run = "0ea47f8907821e273a581c52494b6a4e9a511a71e11ebfb05756eaded6e5132fc548312cb6365cc4c1906b4e8ffb14ee5ed496484fe5e2a2611e154091d23cf6"; -}; -scheme-context = { - revision = 59636; - shortdesc = "ConTeXt scheme"; - stripPrefix = 0; - deps = [ - "antt" - "asana-math" - "ccicons" - "collection-context" - "collection-metapost" - "dejavu" - "eulervm" - "gentium-tug" - "iwona" - "kurier" - "ly1" - "manfnt-font" - "marvosym" - "mflogo-font" - "poltawski" - "pxfonts" - "tex-gyre" - "tex-gyre-math" - "txfonts" - "wasy" - "xits" - ]; - sha512.run = "0b041f3c27ef88e7baec105b7cb24fa65c4b1f092f155482d584d9041ced4f329251f0b0d32f7019c15fff3c57b4d17f057cf39781f8be16a4e8c0ce4838163e"; -}; -scheme-full = { - revision = 54074; - shortdesc = "full scheme (everything)"; - stripPrefix = 0; - deps = [ - "collection-basic" - "collection-bibtexextra" - "collection-binextra" - "collection-context" - "collection-fontsextra" - "collection-fontsrecommended" - "collection-fontutils" - "collection-formatsextra" - "collection-games" - "collection-humanities" - "collection-langarabic" - "collection-langchinese" - "collection-langcjk" - "collection-langcyrillic" - "collection-langczechslovak" - "collection-langenglish" - "collection-langeuropean" - "collection-langfrench" - "collection-langgerman" - "collection-langgreek" - "collection-langitalian" - "collection-langjapanese" - "collection-langkorean" - "collection-langother" - "collection-langpolish" - "collection-langportuguese" - "collection-langspanish" - "collection-latex" - "collection-latexextra" - "collection-latexrecommended" - "collection-luatex" - "collection-mathscience" - "collection-metapost" - "collection-music" - "collection-pictures" - "collection-plaingeneric" - "collection-pstricks" - "collection-publishers" - "collection-texworks" - "collection-xetex" - ]; - sha512.run = "bda507842fde5239d7f45169ff78690bd96066d1834cdcc6a0dcbd3e3439308c694ce4be6a91d1f155ebe5e29d46173fe13c83bcd4356969da95fb7cca1b4e38"; -}; -scheme-gust = { - revision = 59755; - shortdesc = "GUST TeX Live scheme"; - stripPrefix = 0; - deps = [ - "amslatex-primer" - "amstex" - "antt" - "bibtex8" - "collection-basic" - "collection-context" - "collection-fontsrecommended" - "collection-fontutils" - "collection-langpolish" - "collection-latex" - "collection-latexrecommended" - "collection-metapost" - "collection-plaingeneric" - "collection-texworks" - "collection-xetex" - "comment" - "comprehensive" - "concrete" - "cyklop" - "dvidvi" - "dviljk" - "fontinstallationguide" - "gustprog" - "impatient" - "iwona" - "metafont-beginners" - "metapost-examples" - "poltawski" - "seetexk" - "seminar" - "tds" - "tex4ht" - "texdoc" - ]; - sha512.run = "2b3e2e3d31c8fca7297729e910ada06a0d0282b618c92487b7a0da686938dc1f6f3b0881c7d1f8f3d002806ad8860c25802637c77919e21ca54ae8a23ef08ae7"; -}; -scheme-infraonly = { - revision = 54191; - shortdesc = "infrastructure-only scheme (no TeX at all)"; - stripPrefix = 0; - deps = [ - "hyphen-base" - "kpathsea" - "texlive-scripts" - "texlive.infra" - ]; - sha512.run = "f3e449bf0b34deb9ae776685f386245c4ca9644f2175ae51e9c62faa00e3cfac30fa2aa07fbd83b15b21d487ca368c09a18742d2434047783350698ced3b20b9"; -}; -scheme-medium = { - revision = 54074; - shortdesc = "medium scheme (small + more packages and languages)"; - stripPrefix = 0; - deps = [ - "collection-basic" - "collection-binextra" - "collection-context" - "collection-fontsrecommended" - "collection-fontutils" - "collection-langczechslovak" - "collection-langenglish" - "collection-langeuropean" - "collection-langfrench" - "collection-langgerman" - "collection-langitalian" - "collection-langpolish" - "collection-langportuguese" - "collection-langspanish" - "collection-latex" - "collection-latexrecommended" - "collection-luatex" - "collection-mathscience" - "collection-metapost" - "collection-plaingeneric" - "collection-texworks" - "collection-xetex" - ]; - sha512.run = "fdfbbd8fc370bfb0ea35ed9f3137b62eddd3e54777963668b3dfe7af6328a92f37c74e190e7f506ec27a3efbe44458941360599a4061a2765d0072af56808d60"; -}; -scheme-minimal = { - revision = 54191; - shortdesc = "minimal scheme (plain only)"; - stripPrefix = 0; - deps = [ - "collection-basic" - ]; - sha512.run = "ac177b74d9d5b9fa599831275a4084a0eeb7b764a6ed837d8f14f8391f0e6c0757f7b2d4a8e71868e0c8ea4d497f29d78c4c73fb9e6311dbecf29626516bbf82"; -}; -scheme-small = { - revision = 54191; - shortdesc = "small scheme (basic + xetex, metapost, a few languages)"; - stripPrefix = 0; - deps = [ - "babel-basque" - "babel-czech" - "babel-danish" - "babel-dutch" - "babel-english" - "babel-finnish" - "babel-french" - "babel-german" - "babel-hungarian" - "babel-italian" - "babel-norsk" - "babel-polish" - "babel-portuges" - "babel-spanish" - "babel-swedish" - "collection-basic" - "collection-latex" - "collection-latexrecommended" - "collection-metapost" - "collection-xetex" - "ec" - "eurosym" - "hyphen-basque" - "hyphen-czech" - "hyphen-danish" - "hyphen-dutch" - "hyphen-english" - "hyphen-finnish" - "hyphen-french" - "hyphen-german" - "hyphen-hungarian" - "hyphen-italian" - "hyphen-norwegian" - "hyphen-polish" - "hyphen-portuguese" - "hyphen-spanish" - "hyphen-swedish" - "lm" - "lualibs" - "luaotfload" - "luatexbase" - "revtex" - "synctex" - "times" - "tipa" - "ulem" - "upquote" - "zapfding" - ]; - sha512.run = "6267151dd73cb8b751ad47b79f9c698b465ad5ae5494d462cf5b3b4e7446a3c014a715381bc6a79eaacfd1ba6efb37c6c1bafbd5e1f82e8db751bbaa9a943013"; -}; -scheme-tetex = { - revision = 59715; - shortdesc = "teTeX scheme (more than medium, but nowhere near full)"; - stripPrefix = 0; - deps = [ - "acronym" - "amslatex-primer" - "bbm" - "bbm-macros" - "bbold" - "bibtex8" - "cmbright" - "collection-basic" - "collection-context" - "collection-fontsrecommended" - "collection-fontutils" - "collection-formatsextra" - "collection-langcjk" - "collection-langcyrillic" - "collection-langczechslovak" - "collection-langenglish" - "collection-langeuropean" - "collection-langfrench" - "collection-langgerman" - "collection-langgreek" - "collection-langitalian" - "collection-langother" - "collection-langpolish" - "collection-langportuguese" - "collection-langspanish" - "collection-latex" - "collection-latexrecommended" - "collection-mathscience" - "collection-metapost" - "collection-pictures" - "collection-plaingeneric" - "collection-pstricks" - "ctie" - "cweb" - "detex" - "dtl" - "dvi2tty" - "dvicopy" - "dvidvi" - "dviljk" - "eplain" - "eulervm" - "gentle" - "lshort-english" - "mltex" - "multirow" - "nomencl" - "patgen" - "pst-pdf" - "rsfs" - "seetexk" - "siunits" - "subfigure" - "supertabular" - "tamethebeast" - "tds" - "tex-refs" - "tie" - "web" - "xpdfopen" - ]; - sha512.run = "fe8b53391733392a72be2e2c80892ec68fbdb749c70636c307825c8bfd6284945c9961610fd19f8b5d6b03ec50f0a1543c7d159f5f2a19534d71b221addfb708"; -}; -schola-otf = { - revision = 64734; - shortdesc = "Using the OpenType fonts TeX Gyre schola"; - stripPrefix = 0; - sha512.run = "3a59203e6586f2cdfed6d5a948e5c150da934a809c12ef7d55f04ba8a8b95b0f1365fe7e0d802d8097f48dbad753ae481c3e27d580eb050f75956d4d04ad10d2"; - sha512.doc = "14f9cc49ae04ec2f9d5ccb48d5267ef3843bf66a288e0dbc4e7cfd00b52331216e7ab179b506acd799b4031ef11feb7c333faebdafe9a3a94bf31da442bb4129"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -scholax = { - revision = 61836; - shortdesc = "Extension of TeXGyreSchola (New Century Schoolbook) with math support"; - stripPrefix = 0; - fontMaps = [ - "Map ScholaX.map" - ]; - sha512.run = "f7062ca975c2801c220c6c34844d87e410e501442313974c77281aaa0927b27fdfbd2328676405cd1820c809e0354edd332e9fba0d04fa1e9a8d28f91543905c"; - sha512.doc = "7c64a884165087b72f052e7d3fe8c57857d62b92532bdfc6bcd46e66b12f8b12112bd71ab88d4a9603237b612d1eab5ad10e7de0c14e69ccabeefafcfd380302"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.033"; -}; -schooldocs = { - revision = 69659; - shortdesc = "Various layout styles for school documents"; - stripPrefix = 0; - sha512.run = "eb9f95e2026935a9fde3c6a72600a8eb6683ae68ffcb48798c05f3cdcc4f1064fcfd72738dd734a1561de563e044913aa82294b88984cb84ae49947387592f4b"; - sha512.doc = "c67955fe6568f0a661a2b6ea4b186d133f393420ce20c2d38dc461ee0d551ec91eccd0da94492effe4faac8c5934dd6e59853af07dae9d415073874fcb8e8fdd"; - sha512.source = "1569b42e84b56ec417435d157a1c1999a9cf9686f72dcfbaa4d365a3efab15802390e594448d5f3816bb6a03b459b63dd85942fd16d0eafb597dd4c232f67d02"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -schule = { - revision = 68483; - shortdesc = "Support for teachers at German schools"; - stripPrefix = 0; - sha512.run = "6fd063de94d68e80b5e3d2e9699330453f82f43ccd059770e4d73097c1172ec0733012317aeba7bc5e55ed322936c20f97c6f53e9d7aed21a29e07151ec54d7d"; - sha512.doc = "6763529c688e540d937af7548a7e0b9003e5df74d643c3870a016bba105782435146d5771d4d8b69cfec90ece084c245a1825c5f3ae4a5429ad0626b07a9e4cc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.0"; -}; -schulmathematik = { - revision = 69244; - shortdesc = "Commands and document classes for German-speaking teachers of mathematics and physics"; - stripPrefix = 0; - sha512.run = "3258429a336a133334b5f170178b72e39fb3e63ca053a8b541136cc89e88caa991afa86439acffdd99f25a12b7b430d9ef45cdfa7c4ec6545fd1af2efba857c5"; - sha512.doc = "82ed02e73e3db3e2055725a4d5e11dc8f370ac4787e30987320ec52deefb8de75eecdfd2adda5e76d77cfd8bb1e749b4d0e6d6a75ae2f6ffb3201f193cdd5f86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -schulschriften = { - revision = 59388; - shortdesc = "German \"school scripts\" from Suetterlin to the present day"; - stripPrefix = 0; - sha512.run = "d24778c0ae93d06b42bc8d7eb8d84ab6e0f42b33352f2dbd79586a4ed9bb21fe99a61dc0eab375e56a20624fa5ad63ade3446d685dcf063d46c0f60264c431f3"; - sha512.doc = "c9b6b43bff7a90f158b0a10c431cc52e65c4c2d49c773aafe7e54d1283d97c3badfca5315ff982cf0a524b514594faff5666063164483987973ce60d2edcadb8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5"; -}; -schwalbe-chess = { - revision = 63708; - shortdesc = "Typeset the German chess magazine \"Die Schwalbe\""; - stripPrefix = 0; - sha512.run = "ad2f033f018767556e8e4c2b76f1d2c80e14780cc4b483e73bd165c0cfab11453514065597fd7dbce05e8acfd4c307219156abcbb3d59ccead70df61a128961a"; - sha512.doc = "2df38380cc26d4321d8b18facdc6c427d1986143ae1ef8227a2d536af2fda5f6bfb73ccc395156a7f018c9c9af20b3b89bc994d9021bb9ff3fe5d771f3a6bc59"; - sha512.source = "a75dd975edceca279cf120a08d0666e9227af96732ff3d71dd82068b0c185842902244baebb074ad1ab611fed8064772cc65dc2353a9a79633f8bbe21955dc95"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.12"; -}; -scientific-thesis-cover = { - revision = 47923; - shortdesc = "Provides cover page and affirmation at the end of a thesis"; - stripPrefix = 0; - sha512.run = "2427c534ad767f1e8f319aa24744346d4a0a39f73d93c779dc89d3cd0abfd683d7a33c81026c4a5823ad686084f026193c917ff173d639dfac2c99350a819c59"; - sha512.doc = "31bc280c96b87b079a7dfb6a0c2ff1a03f80c5a047bc2c11b9fb192c50b8e51a65cb3fd5c043c37124afe2383a611f38accd91d6202416451b3eb34bfe855077"; - sha512.source = "ac14306fa7591f6fa684dd8fb6d7c7335b6ce5c8e3099d80286f05a9f378b4d430b1210fec9c071aa8a4e430ff6cae9ea712ea504cc575e89b02751c02e60bd6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.0.2"; -}; -scikgtex = { - revision = 66764; - shortdesc = "Mark research contributions in scientific documents and embed them in PDF metadata"; - stripPrefix = 0; - sha512.run = "32433b1c031747037fa329d8b8048563cb53af867bebde85bd5fb95abbdfbd67434595d5fbe682f1247c23535d75929f341668fba9a02221b4864728a5f3cee3"; - sha512.doc = "217da3550e3752fe239831790294d158dd68d16545e5c9ef3e047bedcbe82acee7e34d4216ef843363979e269e03180f20ec9e83b033b44f28acabb67ee26f74"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.2.0"; -}; -sciposter = { - revision = 15878; - shortdesc = "Make posters of ISO A3 size and larger"; - stripPrefix = 0; - sha512.run = "1a4292c9fb6dd8a8780968c69ee70a88dd5d1c5d81df9a32e22e08c9115528d8af634a1681fb1672664d57f80ab333a1b811a9c0e17597afdc358988e14fae93"; - sha512.doc = "6ea102c2318e30080224684693806e16008f946a01fe9e1d232a871f231100d1491324a3ab0260746a61a10125afff6b20072c1a49c8da279a4c0b477361e46b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.18"; -}; -sclang-prettifier = { - revision = 35087; - shortdesc = "Prettyprinting SuperCollider source code"; - stripPrefix = 0; - sha512.run = "77f8909b870fbaa4f1a0414f75f08ac602051d26c0c935be8661be8820a0b77734b614b9f5c8333b1f1fd12f57a6ee3c4c403f151bc60300e454673a2a4235c2"; - sha512.doc = "7680fa17762f17d2d7f3c9d3062bd194394bbbfbee36e4704e8b95b2be568cab51fd1dac9d90c6034919b3ec61f75f0f7689478c16f53ac7b4ee820768eaffa8"; - sha512.source = "8a9188cccf4eece9844156747bdf8414bd42227cdb64ae79ce2e95c729ebed16c9af14abb943cb1caaaebb693bde4d39e39d1302afc0595444d16b3bafa98131"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -scontents = { - revision = 62902; - shortdesc = "Stores LaTeX contents in memory or files"; - stripPrefix = 0; - sha512.run = "692fbbe0cfe9153bb4782eabe8f1713e646d5a93d4b1b2fe0f7662bd995bfae25b8200acb9eccd0057b53bff7c33c0f9ff621cd37596e9aa4cd51f84c2a30dc7"; - sha512.doc = "f978650de27e8306d70612331c2c98b5e0c047bbf91908c9968c6d613311c034dd00816afdc30b63d7673a8627651467af64a99fb7fd3978947113f8fb6eb563"; - sha512.source = "d23c98c16b7f60a1a77c0dba32eb7886f5834c1d05455a172f38f984c7bb61ffc84bae147fa7d143c196179fd719887b160718e04ff3474c5ef176af4d99165a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -scrabble = { - revision = 69599; - shortdesc = "Commands for Scrabble boards"; - stripPrefix = 0; - sha512.run = "89ff7d5440c04e7910d3c001be2d4df7d08a53a47d05b161545fb8446977a8f2695cc722854ef040b59b334804297005baee9f2d3572b767d680925191abf101"; - sha512.doc = "e3d922722c51b71f9ac74e914cf189ffa8e8f53fea4eff7addd2ce5c7d99ac3ab360b50a3212a9ebf353114f1dcc82cedd5a9315b48f4828b1340a9867ef69fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.6"; -}; -scrambledenvs = { - revision = 60615; - shortdesc = "Create and print scrambled environments"; - stripPrefix = 0; - sha512.run = "075792b5d0fc5201d672e622a958c600ff479caba2920a32ed3d3f469c525d799d8bdef20b3a08391a22ed3eead6ab3f30cebbed36c469e423e2ea844c170651"; - sha512.doc = "339d1cd398e62d65c1c92927a07dd4bed740916f2a98dd8ba2d913976d69a70b0340b9cab35250ac3ee862f4572438f87562cb6f7b2031cbe0252d8cc781009a"; - sha512.source = "1a605abf62adf986a933b6d1723699e9920df07fe383527b5d8491aee5431b5f91354052a0810d8a0f8cb2b8b853a3945d38041fc6e9e573c159e7baeaf356dd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -scratch = { - revision = 66655; - shortdesc = "Draw programs like \"scratch\""; - stripPrefix = 0; - sha512.run = "bee431e5f45ef9f5dca39b7ed439dbf141141e4b0f40642c0fdec1650dae9f0e50353e21b58307e86f34e501e06083a6858c140c870752c45138ac6788080023"; - sha512.doc = "a93b672fe46f97c1311d79de5a9304111bb75983b6151e63276a0b84a660e7b917c36b1a99a28a0b6a268b3498dab9897980aa4ca161dd4b9d59a7b2baaa3be5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.41"; -}; -scratch3 = { - revision = 61921; - shortdesc = "Draw programs like \"scratch\""; - stripPrefix = 0; - sha512.run = "f33f18d725253b11097443116e6c0cf4930b7718a5f8678b0d8fd97d8e4854efb31bd016a40a7dec2701a99bf2b5ac6136a856798ead314a8c21cf38013bb513"; - sha512.doc = "97a8e684ff98c9aca2ab57cf93be2cf8bb4c0464fa772828c033622860e46d8c61bf563e346aeff1123665c878bf3fc68c58727ec2c1579e815c7a8ece078ff5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.19"; -}; -scratchx = { - revision = 44906; - shortdesc = "Include Scratch programs in LaTeX documents"; - stripPrefix = 0; - sha512.run = "793c4e96cedd97ca37b7906b6a9e78bb06f39572ddfb57d8e4b54dd9b2846b31bbdd835fe1a93517d1430448571a30d26fa8ad7cad0aa3fab6ca526bacb605b6"; - sha512.doc = "c87994e90a748fa8afba91b443850a2d9f555ff4ac6b264107b42981e078b6966e8cbffd75f071f3f69a78c9b9aa10db65c3e855a4920f3b732446df01da7d6c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -screenplay = { - revision = 27223; - shortdesc = "A class file to typeset screenplays"; - stripPrefix = 0; - sha512.run = "d14dd76c4b1abd9ff7adbef7e4c3bc1f732156dc2d989787bed7382e0288c44dcde18ce05143e6af03ebe83c753bd2b6682cb4f56c73934ca4209a114eb9e3ef"; - sha512.doc = "ed723ffc17a98c8d4a8c960f56a3550ea74db84fdd06d26b08b5c46b12310fdb9b7b7719ffa25e8ddd21f17642f5f64f1c96327066a131c468cee8ff185cb199"; - sha512.source = "f6ada6c467c3a9d11096928dc31c7f71131f0b40146a697bda2a3e194c86070a776323c76c8b6da0edd247f8fcd1a65c286801a7353bb53bc6aa364bb7a75944"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.6"; -}; -screenplay-pkg = { - revision = 44965; - shortdesc = "Package version of the screenplay document class"; - stripPrefix = 0; - sha512.run = "974795ca0b4a286077e38f4b3b120cf9fe243d450b87b8397adec2c5425b865cdfbe70b86b815d513edb6ae7051d9ad3003fcd6a15b5b02b624dcd4ee0534164"; - sha512.doc = "9aa4407d1b317442dd76f762af5b673460bbbcec89e47835521688085183e00ba9dbb70dc9e86a95235bd9a32da701c846ceb2985dc70894ca8abe334428a532"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -scripture = { - revision = 69232; - shortdesc = "A LaTeX style for typesetting Bible quotations"; - stripPrefix = 0; - sha512.run = "3b3e30f0c5bbc99a49c9aec873f2ad93535d8c1f3fa79f91619d30fdca347dcf1bad30485463ce875e4511ed857e358824197059732c2538bffebd97b017554d"; - sha512.doc = "1de0de0b83915b59b54b234daf51ea77aef3bc58a80251c7b055708b7eb8d457806d2b897cd3771f6a303e8137b5f5543dc06c97be94142edf44558cc92a1277"; - sha512.source = "555f72881eb6d76d9362598cc0e30f67cfe2dfc8747f68e5214258fb127947965e45f0bcd1eac5e173c83e7a4e25e3bb0ef6615fe31cac5f6e3f23814e7266c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -scrjrnl = { - revision = 27810; - shortdesc = "Typeset diaries or journals"; - stripPrefix = 0; - sha512.run = "39198edddb3a3ce24bdc0d9cc6f5d7ff204b142c200a9ce36060bb016f1e1e1750b83210a91f1eec90a205c5a4923704bdc0e44876c462eb768355407597a05c"; - sha512.doc = "bf6dc1704ce60f9323b68d39502fe95d4eaf8409bf65c278e64deb1ff80aaa84f16e294ab08629466b6f8c0ca02ec03142abdf3fe0a43f862352d0ec55dd410a"; - sha512.source = "05b0a8e50efd2f21699c3bd476cd308e02267a6dc2a9cd480e0f7b2e6d9633c830927c54eaf75e4d329a8f6a8d3993782ecfe2add7b450016f7e7bc92aea1b2e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -scrlayer-fancyhdr = { - revision = 63844; - shortdesc = "Combining package fancyhdr with KOMA-Script's scrlayer"; - stripPrefix = 0; - sha512.run = "4cd49bec1f3bec3bef5c54964b06fa78cb21cfe431a05741e69cfac59577a2d24cc5b32b6abd739a96a93441e8cab0db80640e5015dc70729ff32c27d26805f2"; - sha512.doc = "d4711f5178d0e654f80d2771519d6ddeca8b883f9bf3d0ba6e9524ad4541a9fbf9179fb69c356d1ab0050b051c28cb074680a6322fef41ee765ebef8fe476651"; - sha512.source = "4d0ae176e9d191b3773a39d7d4982e6957ae95fcc8b06f4233764e57b8954aab4ff0186415f1d8ed988c1473a8850fb99515c0966dd2ce8a7c8d99e0ddff5d65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.2"; -}; -scrlttr2copy = { - revision = 56733; - shortdesc = "A letter class option file for the automatic creation of copies"; - stripPrefix = 0; - sha512.run = "5b2f1c1c86a8b3df5bb4d5edfc002ff80449d2cdcf6ec7aea3732d0ba8e6bcaa105675f9f37dd5280d3b9061400d8edc0c67460ac9f1541159484aa51b851fc2"; - sha512.doc = "04728375909e27e0814f9c2dee14697711ceba7b132ee6de63f257e2a6c3eff11a8e808d7929bbd0c9346b459afec57dd62d523314381c0c19a5e2b8b3650f20"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3a"; -}; -scrwfile = { - revision = 66872; - shortdesc = "Use LaTeX .aux file in place of \newrite files"; - stripPrefix = 0; - sha512.run = "b4d306af1e0d3dcfa59ef14250f14125bfc4a0b9b0f3e6ab32b809f2e729cfa45e27549c8cb9c2dde2819d328c1a032eb6aae6f123f1c71efeba4c9d16611a34"; - sha512.doc = "6aab0a6af0c3f989788673c44bb8a885ddb259f0be3f69f0a32b0bdebdc8e607b32c8f8530cb99d59b1c7739b2c33446f8b7c832384d07158c90bd347704a1a3"; - sha512.source = "abd536d76460165077ca7dbdcd1801b018cae2d16c783e72502bcaf5ecb34562f273ca37cedb044a50e7d53fab84412bf9a5e804be064951ebf753aaa764526b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.99"; -}; -scsnowman = { - revision = 66115; - shortdesc = "Snowman variants using TikZ"; - stripPrefix = 0; - sha512.run = "2335082e981929d24b2dd327db68f101a93b0c2b9176c116d6ca9430ea45bd85c9669921980090554406a658821f3c68305250894fd710058e15ac6aa8ede1c5"; - sha512.doc = "e883b300888ebdf62af976a94ff29a3f621a92420c26553ca16497ffb57db0d1cec7f8a38a1996e080b660ee3ae0b7245688a7732c141b0a680b864f527069f6"; - hasRunfiles = true; - license = [ "bsd2" ]; - version = "1.3c"; -}; -sdaps = { - revision = 65345; - shortdesc = "LaTeX support files for SDAPS"; - stripPrefix = 0; - deps = [ - "environ" - "lastpage" - "pgf" - "qrcode" - "sectsty" - "translator" - ]; - sha512.run = "57559707a9a5a2a924a767b25ed2f86759826a31788fb2662aa2e3ad2889b2266009ec9754c48ce923561c7587c78b23ab56731322a619b4a225775b7beb91b2"; - sha512.doc = "fe1f636c2c21159e5c17aaa75ca0bc89fb1b6ab8dda8d475045efcb3eaf489a876fe9caa4cd077e27b51f37292c5141347233ed6103ebe4f20573ff0899e445b"; - sha512.source = "3f5d1073699a71e9e89a3c71704b8b2800925041145a60454cae0ce2fe7f468e5200c7273afb70c64306a347f4037bc0698b3af223f82d755658d54f2d8c08fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.10"; -}; -sdrt = { - revision = 15878; - shortdesc = "Macros for Segmented Discourse Representation Theory"; - stripPrefix = 0; - sha512.run = "6faa9948e5bb4369fefad7d2b1a5f2bf39baf8b98e8ad3b8f61ade2001b431894ddfbd61e2f1ec73ed767b102f79f8357d965a5c3805c082d8d88bda29e10c6b"; - sha512.doc = "570795dd0c4fe0450e628f61e43d05f3e969488890eab2ee1364712e812d839c7b3185c7ddbd27c44c486e234afe36aceb4824e828cb0c9253e8e5479b0b6c15"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -sduthesis = { - revision = 41401; - shortdesc = "Thesis Template of Shandong University"; - stripPrefix = 0; - sha512.run = "10f1c0a749b9b30dda0e1c7dce4ef2fdd29220b4d77d03b8e71d8c3a460a73c98f8d16e27e6bbab07a66bf7a23cc9d3bf2b12db523232df1142a8563e0068ed8"; - sha512.doc = "afa02606e7df5655ef46b59e92dc54bec9e8f05deb1d9ecd8a0546ee068f2595620cc8dd39d04ea8db53ac7f2e9983ff01ac2646b6946fd3619db64a0bdad332"; - sha512.source = "2c4dddfd7a6fa27ebb4e48e61f8d2887e116eab174e13d9b41efc9b7a3c2f5d5770f000b4acc4275fa82d54ad5ef2129bf614478d11b24a359a38a03d38caa76"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.1"; -}; -se2thesis = { - revision = 70117; - shortdesc = "A Thesis Class for the Chair of Software Engineering II at the University of Passau, Germany"; - stripPrefix = 0; - sha512.run = "4dd20b0d80acfe324039946be7383763bc704c5e468b79edbb079993ae89bd98fd10113c97075e2b2afcccf6c75438ff62bd32f509e0040a64de69fe4fa77784"; - sha512.doc = "42a8c89d3375e35454975b087a8670cb2cc95e29e130bdfd41afbe902b0dbb66e3219dd8873fd88970a6d4cf155d077e0b4a50755cf278cbadf71718b05e6f0c"; - sha512.source = "6529a9dbf2bf038f418964a9e8d6cd7423abc2ab4faf569b983469644098bf5cc80892b4db1d7a4c90771a9495d7b64de08944d2e502c2b6e37b5e0c503eff79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3.1"; -}; -secdot = { - revision = 20208; - shortdesc = "Section numbers with trailing dots"; - stripPrefix = 0; - sha512.run = "7fb101dcd377cb5e3d1dca352d266af419c6fd83e4f2d1701a3d598e69e8e7f70afc9791a76337f4833da612cf07989ef244af1b24eb62ee59dd5f76225aa037"; - sha512.doc = "7ca1b4102c6f92bfc6dd0571c489852dc5c1df4a58530aea490098192ee256a4df7e0bbee20adff78c2b35dfe39b8cd3f821c5e45dc6d78ab4865b6f08ad8488"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -secnum = { - revision = 61813; - shortdesc = "A macro to format section numbering intuitively"; - stripPrefix = 0; - sha512.run = "543d290e5ae38ac65cd22217aec417f4c1098d629ce9acfe03340b529a7bb89ca012e2edf5321fd90331d79bd87cb5e6f15eef3e599857c2aaaad22bdfd1be78"; - sha512.doc = "da4ec2a79e7a04bbf4296f1fd0929971bd577cf4f55d0852923a0bbb73e78e28eba392d203f1abaad1fcbcdffa9e2206fb7d78003b10a2ed428c87562b01de02"; - sha512.source = "ca61cea878ed892f46b4defcd0a05176578d01b01b5f3924dfe6278278fb77ed89df3d41bd788a06bd7af389904421439ca06afac2440ba557948aa4e80a5817"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -section = { - revision = 20180; - shortdesc = "Modifying section commands in LaTeX"; - stripPrefix = 0; - sha512.run = "8b3eaecd49f8b7046bc35df079541121d76757bc2a1b6a6ffa24357a20e9ec4bf5a7b65fae1673401ebf363e46ecffe3c64a2de9aac104594b2b111cd10426f2"; - sha512.doc = "91defb5391b9e607cfaf74ac3abe53127ddec379d7a7c052f5c8f776bcef1728010a94ef7b590ddac8df140ee11fff4fd843bdbe1a13efd322a9a939ea2df39b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sectionbox = { - revision = 37749; - shortdesc = "Create fancy boxed ((sub)sub)sections"; - stripPrefix = 0; - sha512.run = "d1a4da6a59c0411baaa785c58350c1d5be9c1081e0344d8a61fc009f49a1b751a09f358ba1baa3b645de4eff7d69e3781d8b44d90738105c0f56723da36efdb3"; - sha512.doc = "80ae58336eabd8169781c3c30b42b2583f78ffa4093a7d3f9d9e9c6e31a3fb8f457fd42d56f2ff75b2ff3c38b537642dd6f254e54b3112538657a37b3b4e0410"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -sectionbreak = { - revision = 50339; - shortdesc = "LaTeX support for section breaks"; - stripPrefix = 0; - sha512.run = "4b2c26642ba346acce5aff9678bf94f76d85005464f80eaae862a522bcbfa34c1671af79671982a91208ef104a21a532d851dcc785b5c40de4fe462d12488832"; - sha512.doc = "a98eede394708bf612f593e00c58b5500a35b5173381c1f149d0be29b49fe95f5162602177b7d4f23c5b5312d7cdf47ea6ced8bc285853d2b7d77926a6ca66b0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1d"; -}; -sectsty = { - revision = 15878; - shortdesc = "Control sectional headers"; - stripPrefix = 0; - sha512.run = "7e164b14f29a385f8a97e09ad124c347a154e316ac2eb41e0bf9f161d44f2782995fe271b5472ef90dfa4ffdd5495de81090b44f5777243ea76c9f75fcbde2b4"; - sha512.doc = "69d7fc032c06d015d7a6e6d2273c5240b146062565882fca0ddf5b7b795b788207bc9b478366a0a40e4acf223b07482f5cf41a65dd9b37047bcbf12566f6a826"; - sha512.source = "fc79d4c7c437d9c5ff7d8dc62439242cb772f250527ca099cd1180e58742a9ff42e7c63776c24fa5563c95b5d2bccd97df0e1c086869bbcf5ff2ed8ff5297bf4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.2"; -}; -seealso = { - revision = 43595; - shortdesc = "Improve the performance of \see macros with makeindex"; - stripPrefix = 0; - sha512.run = "4d52687aa57245d3be55bf486b100d61fe2e2d979447c2f123f566c3aeb13657e531ace55fe5d00eab57cebe89cfd3729a71dc7177831b5192b8c0fde452d7df"; - sha512.doc = "6baba95b6b08ef95f2966d227161ea39a4084b46371967057266ddae155b115fbe4fcf148e1afc4629e33f54d0329ebb6169f1be4fdcb801d869b212d056cc61"; - sha512.source = "981ed17cba32b2bdc4848c099038193dba2b39d04210cbb2851400044654234c75c160f9c775af2fad6b76b80c85c782fe6ea75a61728ab67193dcf414b0b4d8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -seetexk = { - revision = 57972; - shortdesc = "Utilities for manipulating DVI files"; - sha512.run = "1f217550f7455a82dd1771556045e10a39138eebddc90f4d38a274d56d9072501d94476c6045012f3c5cda43aea71924268fd222895079b225d893df3b78fa97"; - sha512.doc = "1b36ac131e25541123a7d18e9a5e3cb1fccab04ffca1b0d1e5a036a26de99fb05e6745d43cac6dc76a295eac5503f90eafdb2b40f96c88836123b5b599a47e2e"; - hasManpages = true; - license = [ "free" ]; -}; -seetexk.binfiles = [ - "dvibook" - "dviconcat" - "dviselect" - "dvitodvi" -]; -selectp = { - revision = 20185; - shortdesc = "Select pages to be output"; - stripPrefix = 0; - sha512.run = "1674c9c9d7afbc851f8c4fad1b46a1ec18161eb48375d892c947416ee97791addf92f75a69090c95a0f08bbaac1a7a745af93a7bcf91e2e0f8117ed3f3106dc9"; - sha512.doc = "7c99f0400841cb1d88af4c239f43eaec7c0b2358c2e581866d4361cd86b9eff413bc9e07d8df630ddff8d4f37193896bd430f4c357d9cc04591295f18ebd09aa"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -selinput = { - revision = 53098; - shortdesc = "Semi-automatic detection of input encoding"; - stripPrefix = 0; - sha512.run = "41888a394e4c9adc60242e4c689b272a7b4e2a2db2e4824e0068a305cdae59c1edd46b0a9e45909cf29381f240693234330fb3488be68831136f8f04a72faca6"; - sha512.doc = "918b0b2bbb8230a482418c56de8081bb455980e178843b0ea84b18435c1fbfcd50a71cd0491b89c5797a374479060175219333bbde2ab28b5147cb5c3fd65ff3"; - sha512.source = "c6b2c23826216a5c479c3cb3de1685dd4d695422ec67fa7109e7a1adb46dd7ad8cd21138a480e8e13bce1c4184fea0153114f338a5754778b22dc173d6f9445d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -selnolig = { - revision = 68747; - shortdesc = "Selectively disable typographic ligatures"; - stripPrefix = 0; - sha512.run = "8dd7baa476f72549830f2571615af2374b9d74da69c16f2999708201b7404c46118e7a6046ef8dff39935d3b94373140819497508b2a8982cc928a5dbfc6eaac"; - sha512.doc = "c36e55066eadd959f625fcb72fb89ab2ca51f3411ba9bc81c38d2ac3f18ffd792fd95c33178c0607e3958cdbd81c031193d1b6c712906a2c9cdac4178ace6ceb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.302"; -}; -semantex = { - revision = 65679; - shortdesc = "Semantic, keyval-based mathematics"; - stripPrefix = 0; - deps = [ - "semtex" - ]; - sha512.run = "156ef55009e52bc91bead46963d5f383c9b760d4c72a45097de1e3ce3fcb1aae4686386efbf8a3abc2f18d16f59d02f297acd825a9cfa21e544ba2dde9986c13"; - sha512.doc = "1f94edb17be3e148a913e98ce020f5273085507537b51b4737c5c4d1589e415aa361cdb25264c412af8b93025b6dde204c625180c5182d319c199d5e8e591757"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.525"; -}; -semantic = { - revision = 15878; - shortdesc = "Help for writing programming language semantics"; - stripPrefix = 0; - sha512.run = "d49c22d4982a33177fdd73c5ff15a68e663c3ff1ec9a45a40e5a8364371a25b536dd6c1dd963296ae998760178833b5f2c357119f41e7bb5a72061f0f9ad23fa"; - sha512.doc = "21e9a7efd9fd6dc28be30f284285cc8c13b266eb03c9212b30f97b761c1383e1fb84a18e92437d331d3963068a68c61276cc1fd3446807bedc954a490fc490aa"; - sha512.source = "4d513b6c9b320b9ddd8ec92fd8eae079134d351170122833e99557fdec7510938d8ef856c52e0a862a8cb8cdffa3894c160dfe085452e0cffc49db4d3fac6a79"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -semantic-markup = { - revision = 53607; - shortdesc = "Meaningful semantic markup in the spirit of the Text Encoding Initiative"; - stripPrefix = 0; - sha512.run = "f795c901ec0b133520cde8e269364977638d410d6d06207d868e6151e7f43a4d3c54a73780237e2dfb86b9077b0724fccbd7e9121d51a64034f4bd604a38008a"; - sha512.doc = "f1498e628054e91f7b0ecc0fea7c926aa55d7bec56c3c13ebcc5073f96df84e8c1e255532f9ec72b8133d21511e4f5f2996d95c39c15cb74ae39fffa87d5a785"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -semaphor = { - revision = 18651; - shortdesc = "Semaphore alphabet font"; - stripPrefix = 0; - fontMaps = [ - "MixedMap semaf.map" - ]; - sha512.run = "b8741be1544d8ab488632e05464cf607069f0d09df7a727bc05d06175dc16bff461d551e7130e01edbb53863d56fbf4cd0cc9085c51186e19e5f2fae986b400b"; - sha512.doc = "ef0c85ca5e86a17d59c03255d679d54cc8fb36eec02c8546f29e1c514408559788d1dbe3ac7565224b320b71e9ad77979b1092fb0f098a1c48c3a7093b72b172"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -semesterplanner = { - revision = 56841; - shortdesc = "Create beautiful semester timetables and more"; - stripPrefix = 0; - sha512.run = "26c7b18796dee2f703f22ace3aae21b38f98d9250b1896a3cfe5214b42551ae3fe4accd9e8bf905109c05169370317608e23363f4bb512e794cfaa528b645119"; - sha512.doc = "32c29aad8acf63e60f07262930f267a295daf9498621c48f0b9697fe31e4dffc63c8992b5c5f60b1d61188de893421906aa3abf160a79c6dd5429eca87c03fb1"; - sha512.source = "709556569a5defa5240781ac1bcac0af6e9cacc0016d6ff057a4414a67c69cf8d11a17c716748dfdc81fc31c2bdee230c9c4adb7c4978ccba20b7330db47ea81"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -seminar = { - revision = 59801; - shortdesc = "Make overhead slides"; - stripPrefix = 0; - sha512.run = "28795c64e4af5296e228986c28115305cb76087d241e91312cfff351f7e51833a0d76b2acd667fc5f7616dcb1685cd02b2d9352ef7f0e36d5bffdaa5f421e6eb"; - sha512.doc = "8b7364dc568d1fd78cce21ff1846a6369fe3fccf07bf16ece8383c941492404d6fdf3be1607aa2279a10d670803536474d7cc318b9b3dda24142fbcc69fe69e0"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.63a"; -}; -semioneside = { - revision = 15878; - shortdesc = "Put only special contents on left-hand pages in two sided layout"; - stripPrefix = 0; - sha512.run = "cb3f20a7f766681f9b7748ea3a816fcd477e6685a159b071502716c708e0e1d5a2a33a5b210cd1e2a684a288d07079870ad243218dd74e80853a227fd445c884"; - sha512.doc = "8d6b1ada214f99028ea9843b4d5a85a8a974a9ab52e8a7d9338d25341282d6f1c8ca4e7a24271ec20bc4be781f418f2ffb558ef4fe6e6f42d165bb24650b54da"; - sha512.source = "1b8d0d90db12b52add0f7dae10cb16bac8a9260e0a6783762908a07a014dca294ea6c631ceac3a5d063705cf39fd1a57ce6b99f72c5da4d57d4a30cdafd25767"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.41"; -}; -semproc = { - revision = 37568; - shortdesc = "Seminar proceedings"; - stripPrefix = 0; - sha512.run = "ac78e19197af3c72863ee4ca94842d596189d37c2d559ac1254f70fda1011943ddd7ce17b48f183b839a6610f8d7dbded2a0f2a18453823a0c0044a70841dcf2"; - sha512.doc = "2c7e2a40348b098037001928d6f21f5a66c23967dc63296ce26736b006a46f9d9536fae9480c1f0d0db72ed59973a6140471bb110702fd5cb997fafe03133dee"; - sha512.source = "7faf073ad7da9627b59509f41056df76658875d04651321389b3ae789e2d704691e494726635161eeab97786b8c8d6cd322e3ba83b3e1a779ff3d10a752fb51f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -semtex = { - revision = 56530; - shortdesc = "Deals with stripped SemanTeX documents"; - stripPrefix = 0; - sha512.run = "10d2b93b30581cede982f5d7ec1ee5bf6f60406e27e1750f2bc6b6dfe0f683ca922a762fafac0d5d037687c0a98188617ee48bb51ea132ccde7cd1c33bbdf273"; - sha512.doc = "316df9ed5f2d058e6c28e5e8e5f4bc3ed64439409d1ae1c608b2a75a23c40d438b657642093cb723b23da4f14382f1080aaa3a9a49d8ce143e26e494a3e7b3e9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.45"; -}; -sepfootnotes = { - revision = 41732; - shortdesc = "Support footnotes and endnotes from separate files"; - stripPrefix = 0; - sha512.run = "a7333a9779ebca371aeef0a1348968d8b4649ca037e88f6e8a6f5224d13265202c8de8d2ce5dd89de170ddc348cfb04f5df92e249c122a608efa8fbab4daba98"; - sha512.doc = "eb7d70eaec4bf58c85964f7a3692da09894c898f712a119fc0ffa42429be2e53b96ed6f569fcd37aff170d2b953543992bcc693e264ee1ec542c435be2723414"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3c"; -}; -sepnum = { - revision = 20186; - shortdesc = "Print numbers in a \"friendly\" format"; - stripPrefix = 0; - sha512.run = "4ba90558d397f0c047ffeb01620d2d5ed4bc38431ddbd75d9a381fac58360d78270b8f22e761693a8a39176d1ab92c9da3b6bf92aaaa90b8ee20490f5b70f50d"; - sha512.doc = "080b081b101ea57480e4c958e997f5b10d22c5de56a60c1f415248ba0564046560650ae589b29c73d185fa88334a26ca3412e996fcc1214ef0b9d20e71bf18fa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -seqsplit = { - revision = 15878; - shortdesc = "Split long sequences of characters in a neutral way"; - stripPrefix = 0; - sha512.run = "02413d104e12aad40f093731e2d28d0354216d3d57e6f811609f398b8122bdbf906f78cef38f355562efb4e7df6dca314f8548d8d8c03a2a9404addc42f0e1f3"; - sha512.doc = "0c49425b619ac62da4eb2392c51cb7726d9bab008910a88ec36b866717c8ac341be0903e3014ed36a30ac701fafc453a0e319470f2f65eb6775d6ff52b9f07e9"; - sha512.source = "7349cf842e7142c5c13e46d16acc35535cf34be8a4985f9a581a4338ca54beffbd80fe2820123652f3ffc868bcfe1c995200ab918c99b19d6c2ee339b61354e3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -serbian-apostrophe = { - revision = 23799; - shortdesc = "Commands for Serbian words with apostrophes"; - stripPrefix = 0; - sha512.run = "4e3998b6c3f5578929204c0b5f131b0ad4526057b50811253b6a90367327c63af5bec386aef54ae6c80be7a1ecdcc6875bbdca532fab864e61837cf16855750f"; - sha512.doc = "38c8ac74b304ac992bad807f2727a3e75a727a77c5bfe5042e24a39ad305162e828ca0333963a3f91c5f26ca0324e7feea97dc6ab84c1cfdb6c26b05ed5f4fd5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -serbian-date-lat = { - revision = 23446; - shortdesc = "Updated date typesetting for Serbian"; - stripPrefix = 0; - sha512.run = "420b77a36a08e75f8020edffed704ff0398115a6bfe694fa46957ad8b35c58435ecde4c16176a72bbcbcd16139502f8fb679399852bfc9000df6d5f305fbb04e"; - sha512.doc = "5c10fe13a4e1d6117ebfe8d737d50047dc97483c7a0cc287a9e79d367af50ec1cbdc0800161919b92c6d82774c9e756970db71344259028c254fbf2c1fe86219"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -serbian-def-cyr = { - revision = 23734; - shortdesc = "Serbian cyrillic localization"; - stripPrefix = 0; - sha512.run = "6cbd1da1160519914db1a2269a54f1f81442d84750b15179e4a0f4e5373512c959542a789ef39a2803b68030bd6a8001fde777e907e85852703ff696ec9e5113"; - sha512.doc = "0f2a2fb44eaef8e0eb01e12260fa310d661501c3e1dacde2882199ce4bd5323c837704fd50e8db5b4ba567a38038b37be28fd834874262de2e3ad36b65816498"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -serbian-lig = { - revision = 53127; - shortdesc = "Control ligatures in Serbian"; - stripPrefix = 0; - sha512.run = "d9b5d42c565d5704ab516302534238961ad42e971d3c3b4b4672d4cc19927ac22a871735d88c362b753640d457597911fa269ec30edb5c1c0af96820299c6720"; - sha512.doc = "6ed0551c176ddd34e1a4eb4449fd78ca38c166efd41b31c78dc1e192a714fdc81b195cf83587f256462b610681136b69960867d5f1a571a5b1b47256fca88f05"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -sesamanuel = { - revision = 36613; - shortdesc = "Class and package for sesamath books or paper"; - stripPrefix = 0; - sha512.run = "bb7b38ff9e6494fb3150602008a66df5fd8c35dcb52a2da196cd177bcffeb40e284fa493b296f01f22864a5bf25d89fb4c079ff4d9fffacdf37dfc9de9256518"; - sha512.doc = "cd144c93693367bdda658fb1ecd424715849fa57f0aded627125db2703947c8b5886df9ec08595592b6900327b42e8cff00f0c69967075321bd7cd1064054f3b"; - sha512.source = "4a5dd4a8da6a8719f47d4b4bfb5e3a6c0e1498369fbcf7f9fd48304906bbff383793329959b69f13a75bcf3d01b888325c23079b4503aa779f464c2864560416"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.6"; -}; -sesstime = { - revision = 49750; - shortdesc = "Session and timing information in lecture notes"; - stripPrefix = 0; - sha512.run = "5c5ab4808645230c6563a08b8243f27fad02a76fa56296f4c7e1b17d2140ad0c9ab0b6ed02e27240f596113019afbed52dc5a9f5efd874ba7783c921b81416c9"; - sha512.doc = "93b986ea6853761fae06b297b951a7a46ffee403a4fc980aa1afb7cc42c15fe753797eecbacacbfb49b0119ac9e24dc105975acf72852eb0265dc4586f397bc2"; - sha512.source = "8f3200ab63d77bf24aa9b2cd51ac460f086cb82599e9099b41614f039cf569f4fba23f2dcd59174623037046bacfd5a11ff59f140b09f373edb6346292db7910"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -setdeck = { - revision = 40613; - shortdesc = "Typeset cards for Set"; - stripPrefix = 0; - sha512.run = "817474bc928883f4bbe97391a477bf492a4e339879fc85d7aec3ca932f9b46c310f8fec5b732deb2196c705c2bd3a22721376ea8289a1bbdc12555447f12f757"; - sha512.doc = "c27f7ab563f35293ee6019560f643d562ff2bf06747402930c767031a8dccffac0ebae9cd16b9e3009b5883f594c541ccf4c38883aa89f4256f7db83e378e1e9"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.1"; -}; -setspace = { - revision = 65206; - shortdesc = "Set space between lines"; - stripPrefix = 0; - sha512.run = "9462cb011a2a13a962c08d7d962c120f2b459630f8ec1f96704c2878facf01a37118e9c94ff9cefcc9ac0e0e3c1bbedc158aaca24dcf13cad0973a6544e79651"; - sha512.doc = "0ff85289fb5ed620f208e3ba84e82efacc91da32611e95a4a99aa5c939c0400ddd3a118d460ef65d77b483678e5ce8c71b901ed0ee1f711cfaa29f26141089fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.7b"; -}; -setspaceenhanced = { - revision = 68493; - shortdesc = "An enhancement of the setspace package"; - stripPrefix = 0; - sha512.run = "594fc089440a356201122b33160a16785dcabbb2eeb1fdb2fdbbc1e53c83f0ffcbfc7b9c6be623e6a5e4ff23b933f25120ba1ecce72e73d8e32e1939a2744f8c"; - sha512.doc = "d9356a26bed9405fb9cb45eda3769dd5360418c02fb6442cb4dd64da5e70e9785b167e8406fc772fb7ca1cfc574b23a375916d0c5dd6a1afb09668f5e6c743e0"; - sha512.source = "5f16118ffc9b7572a18c485915a677b822c26ed0c4f885292c6779f91c0a9b6fb3d4f88dabb94798715efd880f6577349ede1936720ce2c6274c35671e2f0aa5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.02"; -}; -seu-ml-assign = { - revision = 62933; - shortdesc = "Southeast University Machine Learning Assignment template"; - stripPrefix = 0; - sha512.run = "929cf4aa8b1a55a74cc13e4f823f6d814fadb425f7a6ea53c18cf4244a14b9bee8afd8c06327add62b016ff36e7ecfddc29323105362a63342d382febbabc428"; - sha512.doc = "fa1d6be46bac0c2075b8e43c1f39d74092cf86b975b4c281c57b778ba16aa6345258261e26690fc84f79fdfd57082eba64d894002a723ee8bd821fd9d99e7774"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -seuthesis = { - revision = 33042; - shortdesc = "LaTeX template for theses at Southeastern University"; - stripPrefix = 0; - sha512.run = "a36006ff6a093cd589a0e328c60e7e78afc160ab45746e562a43a8944b2ab331643261f56890497b70449f76be43c0b226642cc5570dccfe0d6240181b20bcb3"; - sha512.doc = "5bbc5770bc42c62da7ca569b10558dc02bbe7fda2a463a3a2a78bc76fda3f1d0e7023c311f62a91bef73ae3c4026561403284404acc6bc72cb2e308ad4092ab8"; - sha512.source = "a442b5ca4e1e8a4a3f8d331e5575066a8c63d1521d1f774fa7d386a8e42b09a2c4727fae1f0a51a31c6a98c173113349738caac8991d50e4459082a874fed1ad"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2.1.2"; -}; -seuthesix = { - revision = 40088; - shortdesc = "LaTeX class for theses at Southeast University, Nanjing, China"; - stripPrefix = 0; - sha512.run = "8f2aa388faf3fc41cdda54ac44631dc2f0737b727f3af27c41bc268223d2f3f6353dc24f067ec487fe5f3ced5c7837ee6f60d46de3950a3a3c9573df77cc725a"; - sha512.doc = "1d54dacc742d558af5fb006cb4f26e073bbf6a3a572b7e81fbacf691995a4a96c72251225fb7cff598c930a4c9984d0d01d080c797f202f7e30aced20b8b3e5b"; - sha512.source = "fbc848315e2b76ac915aa6abc0a9e7bf2f63c4af716ccf65c9af3ae05e049952703c1f86db97a5825b92f43dc2d1163e6544c30fcfce4b672272b4ba9057c171"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.0.1"; -}; -sexam = { - revision = 46628; - shortdesc = "Package for typesetting arabic exam scripts"; - stripPrefix = 0; - sha512.run = "60fc18bf706b787b9bc59d1ff12e62fc3b69f5c6815a629f6743c8ff3fbbb2948c145278805888b235756beac5dde5613c10fe4ce20bb6536b4a3d77a2713569"; - sha512.doc = "0d2d5e2e5214622ea6b398c0b0f7a297a3f247ef3df0ed696c6faed94527b2edb6564c917d182177f8f3b44d7cd0e14ef4ac186c89113ad74e3ea70475ce1179"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -sf298 = { - revision = 41653; - shortdesc = "Standard form 298"; - stripPrefix = 0; - sha512.run = "c9a262481a01019010a645c321c675bc93e3e0c6627b693bce53a808bc9366d7915c19f97871786001fbf61b589f2cef274aba005681f9b32094644568d0f2ec"; - sha512.doc = "03b1d51626e6ec0b076f4c2fb5b34daf490a671df69edef7235a6c8c77b2475e79604c7d49aed3c7d756c9fb781a7398a27596ab9b183b942119ee86385ec612"; - sha512.source = "af4d0437e6c79c7bf0975f8e14bd8f19675223849b04b9e7b1d526ccc70a8a4a6d6773f86f9ddbcb98329368eff8c7f41cab4f2468f0100b8f5f840288184826"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3"; -}; -sffms = { - revision = 15878; - shortdesc = "Typesetting science fiction/fantasy manuscripts"; - stripPrefix = 0; - sha512.run = "ea7fbce545b9e9dc8b804e293239fdd491bf1293875fa841afc5a33ddcac7acddf243194e36f8958df4d23c71ad9b83348fda57dc261f211b49fc137b66ff6b2"; - sha512.doc = "e1702249f2516dde93887403833f9261f73e90ce04bb97d4052de1a28b9f5bcd5729d1d9a68759ea92271b46cbbebed39565e8c30248af4c894c347e4b9b75a9"; - sha512.source = "50fec199dddd2509682af8910db1cecaba7359be24a1666e156715e4613571c6f48c27eb813efaab2d6a4fd01e0e9d110021a42afca501a75a2ee02f7c80499e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -sfg = { - revision = 20209; - shortdesc = "Draw signal flow graphs"; - stripPrefix = 0; - sha512.run = "d90305b5fbac3e06bc3195b802b4ef78f7c6cfb4f0592dfd300839dd608150e1ad08fc7479fe6d8df4f2429ad6b7f81692d9723dde198991fc9626565cb38578"; - sha512.doc = "26c17b606f0cfb4e199755f7f16eec16cbe379a786a88bec2d77d983d17107d86bf8da23474bc3450f8467d18028f2f41a314c83565916cf3ac3e97c5c079267"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.91"; -}; -sfmath = { - revision = 15878; - shortdesc = "Sans-serif mathematics"; - stripPrefix = 0; - sha512.run = "7ba73610785c9270e8741ba0137701677575e38cac79976d89e2f5768804ff52117c5fcbaab9b260be522f174458a18d2d70d82c2da201e7fd6a91fe4bbdf6fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -sgame = { - revision = 30959; - shortdesc = "LaTeX style for typesetting strategic games"; - stripPrefix = 0; - sha512.run = "60e1c4d7f68bd6d39e081d49bfa1ecfa7dc56b940172719b4d6d0f2e87456c4b511ac29bb1884f7c290e7b226eb6ecae8f2ce4de3f7f5fbbd21934c440395ab7"; - sha512.doc = "29f4ee374c7b9d07274fb6f622c0769ff6977ce522ae25fa24571c0b7e60f1e120e4e26d37c6c340372fc0a2dde71a25121fa9538a35aa100e21637d5c79c874"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.15"; -}; -shade = { - revision = 22212; - shortdesc = "Shade pieces of text"; - stripPrefix = 0; - sha512.run = "968be382e1f82029e7e06f5ed34473fc20fd38dc758b97fec6dbf015ca13c3604dd6b7638dcad2f80be474ad001c47ec86e75e8d9947bde26053873376e9e068"; - sha512.doc = "0c9ec337ed4c9bba949e6b449368868856d652b2f5ac7c70dd08a9daaf8a3ed3be4008a91c003c731c97f7e4132f571c44ea9d4a4529f7b0ac9be11a673310ff"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1"; -}; -shadethm = { - revision = 53350; - shortdesc = "Theorem environments that are shaded"; - stripPrefix = 0; - sha512.run = "b9e15e017332eeadd3324afb858ab15a820e23da59f5bf7ea57dac719b9864304effd092c3cb2f25a6f29f22dd2b6f2585279edab4d77c62256582c66be550c3"; - sha512.doc = "c24f37f7f864283f9ced1da1728dd7ae137395ecda3010aeff8ad778b96723224df77755f8f71f7672f5870ad6832a22bce47bec88ae51d0992e39c0a00c8caa"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -shadow = { - revision = 20312; - shortdesc = "Shadow boxes"; - stripPrefix = 0; - sha512.run = "885bca1090b93545f59b387e952998f65dee0931fb5b680d06667c3bb8172e2aad37e840942b9495134b421bb40b871633eb5de941b3a257618751e789128ca6"; - sha512.doc = "402e64195e247cd2c5106e3bd621705b80c006b2f6cf0b1da14ea459acb7dd97e2ebeda87ec118be3e73bf76edebe3067330498a2875c52c4248add70d7a0a25"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -shadowtext = { - revision = 26522; - shortdesc = "Produce text with a shadow behind it"; - stripPrefix = 0; - sha512.run = "59ab708b0f8987838cafe864cdcd68aad5aceb7cb4b3ab2b479ec4fbd15e268ba4fdd1b0143b7c247cc186a825d99ad810839221a391eafd5146f0a46865e23d"; - sha512.doc = "a89bd6ab160e364af06e26d9bbb88988c286befb5dfe4e4bdfc7c511811ef4a1ef630708d4a7ff32cb0ab6831dbee54d49a84376ee9366bd422d5689d86db404"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -shapepar = { - revision = 69343; - shortdesc = "A macro to typeset paragraphs in specific shapes"; - stripPrefix = 0; - sha512.run = "24975c53f9b29ae8302dc4e169d7d176c4825a0033764c8a08aa610c184e79d249e849e2ac3ddbeccb3bb80a4a5e29ae1c474331de68000de1a63951079acb4d"; - sha512.doc = "69a5f9dba1683ed0302a3dc4edede537986ea473357c0c8c454c26eeceb2c51d31d87d139bc3eed39ef1862c2a6feef0e570e9fb12bf88f15ee7f34280f7daf2"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.2"; -}; -shapes = { - revision = 42428; - shortdesc = "Draw polygons, reentrant stars, and fractions in circles with MetaPost"; - stripPrefix = 0; - sha512.run = "4e082b6b61ae9f2d02c6bdf7fe5beeb6b6384b2718c1644b945b175bc17c951ec7890fe7e81eb59faea4ae86da93eaf51467450cd61d223e734408e624bd8abb"; - sha512.doc = "2c295a28748f8df117a5abf16a758b079d7481f579e1bb571fc758bae505860e1a1b82f9615259b14359eb4ea8f43be82de6ae6d761225ea76bc0da167b6786c"; - sha512.source = "58ccff2be6db013bb66e606ebec52b0f86b4ab3e2066d9191f18da0534d2187fe6a3944cf179b6b807025182cbd40be8c24f190c5938bf4e4264ba492a845be1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -shdoc = { - revision = 41991; - shortdesc = "Float environment to document the shell commands of a terminal session"; - stripPrefix = 0; - sha512.run = "e72e5d88966ab88ce2ea331f2989a949f3da30cb1066a0501fe8770f077f8aaf15803d9337ab266374364fdb7b35507c6d3cd181e1fb472f6d39b6ef94c08c1f"; - sha512.doc = "38c3a7302edd2e38e3196b4d3935bc001f83fc71ed50ca8c3563ccf82e9e0729c65baf0b95db0ac637cd037cd572ba557586bc85230ff6014f63a8fe0602d9d1"; - sha512.source = "8de0b05b8cfaf13d3f3c1192c718f5663bc5d1e5d9f67395956bc18d8f97c6acd0811660c02c3dd087f617098d0ec810a69dc31a20e157fde69431eaae4047c4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1b"; -}; -shipunov = { - revision = 52334; - shortdesc = "A collection of LaTeX packages and classes"; - stripPrefix = 0; - sha512.run = "e31326135e93eaddf9f07eb0a746c83b9b6b7a7569daccc2b4ae0439664ce4a9cb2edaedc0e3ff727a4896fea43411c9cef0f3fb8455b1616de04e03b54b257a"; - sha512.doc = "3c04f8dec84f3ad87572f6c180ec783f9a879b887b4c7f860097ac03b297dd7c4a4385cb402ea0b7f09176d711050ca7813e51607cf7bba871e191ec35d9af88"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -shobhika = { - revision = 50555; - shortdesc = "An OpenType Devanagari font designed for scholars"; - stripPrefix = 0; - sha512.run = "86050c89e5939b8ffc2148f9269a48dc66f8adf396cb883a7018a1a8f123cb602f216f652f56715bebbdb7b0577a8d0cc799c847898543a4cbd22e478524b127"; - sha512.doc = "f5d9d05f54876bab260043e698fd746c95b59b04ea5b2df7244b11af30bb78e5cbb6e3511bb75d775e1bc649082575192ccbcb68fcd32b9816879b5cbf3277ba"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.05"; -}; -short-math-guide = { - revision = 46126; - shortdesc = "Guide to using amsmath and related packages to typeset mathematical notation with LaTeX"; - stripPrefix = 0; - sha512.run = "6e2c131cb3a2ce85a6718a8dab1cc52fa5dab7a3db34575dcfb0a33e6a3f3ba6025eccb82a2e07a198243bd24c5070a931e591003a768c4a057f70659e442155"; - sha512.doc = "0feaf4b3cafbac8fc78855250dc39858b0b8326b803c851efd831f36476dac2f1ce86083c11476e36ac88b44a2a8d25094f9203c774044306536fcb2b261a184"; - license = [ "lppl13c" ]; - version = "2.0"; -}; -shortmathj = { - revision = 67201; - shortdesc = "Automatically shortify titles of mathematical journals"; - stripPrefix = 0; - sha512.run = "a8ec0460d532b657c6237d5d321852b0c8ff0807d8cf73a02e0d40bc6c86b2c776dbbc5ad694d3fe022f851f049dbba6fc11d57d5d6fdb8f168a935f9f443269"; - sha512.doc = "a1fee222b86efa1cdd1d35aa2eeaf84df25db25b1a68d56863a370fef11ae62a6a21ed2ecf0f563d8c00c38759008d26e7c43988538bab6ad6b2a52c68c74c46"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5.0"; -}; -shorttoc = { - revision = 15878; - shortdesc = "Table of contents with different depths"; - stripPrefix = 0; - sha512.run = "6e78bca7425e0b23d7520af19494d9de303b86fae7a013ef85b2d512ee86be1f478ede2293650b435ab579811e444b570995e2ae8720afc60b42c0c26d7489a6"; - sha512.doc = "03090924cdde619877b271fbd70761035b5da1f2278a3642b471a86e83559da316558a752d85716242001f40ca403a985d036750218e78d873a4920905c5a652"; - sha512.source = "2841e846e2e691864e3412c52c3cb2130462b2b94f01ab9ccfba7cad05392db2b63ce3cd3ce60896a7861969ea20fdd3b1918a69e122316149af3fddf1b9c492"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -show2e = { - revision = 15878; - shortdesc = "Variants of \show for LaTeX2e"; - stripPrefix = 0; - sha512.run = "702d0913a299b68bedec15c697868a70f058957dbd3a2dd2c503bc21c8a250dc7601e6348080bb394a38108bcd2f5ee67796a888183aa181c9f88a72e7666580"; - sha512.doc = "a427f7126ded4251c255fcaf2c381f7c00d0d0e55253804cbe631ac59be1bd51e7ba2ee51110af86bcee27d73698bb7baa323fef8e23a41000928b242b0be282"; - sha512.source = "3a6bb6fbc35b5f6b1cae00d5c63c16ea13af270cbf90f57761f71076b26130272924154b8b0aac60cda41d27b75db4f1edfc82101f38b29e9641a4e02cb6c2a2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -showcharinbox = { - revision = 29803; - shortdesc = "Show characters inside a box"; - stripPrefix = 0; - sha512.run = "9cb18e80701d22e167b026767068e0fc0a7b6c4cdbc9014991f10ecd76d37614983591c931972584c50e0d6e35abee70ae3079f7dd8c855d33d1e4ea06693d25"; - sha512.doc = "47dc7121ed852931bdc5bc38b7fb4dfda6616b8b0ce649d90da71c7a4cb6084ddd69e07596dd4179b5654fa9a54fcedef6949ac4778b449ad14740058e237dad"; - sha512.source = "0c3ee2d6c00183936b57ba8e44d274baae8d90b8c089f6b5f3384c5928c703f22c87ac2781a8399189e028d6503c3e154499e85ac6b1ae69c7cb27eb29ee11a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -showdim = { - revision = 28918; - shortdesc = "Variants on printing dimensions"; - stripPrefix = 0; - sha512.run = "07c409f3d30def6894a787d9c2f7366abf6ee4248386e9d5b2e4f7858d692c7cd3e72871ff02c73a39a190ac36ccbaf5fe16e8e1b7b328be80a9ba041d12feb7"; - sha512.doc = "ba76568009149bec7484b4dbe7bede8e516a2c2ad20c77c70f0357e865c66751aa4f3d8c92c59effa1ac12e03b3b8c500c65708547ddf52458b0ce90def8fc98"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -showexpl = { - revision = 57414; - shortdesc = "Typesetting LaTeX source code"; - stripPrefix = 0; - sha512.run = "d42f5d3570f252295a25c130c9ec9a94abaf9f28038fca163423a0aa44afee4f354aa2dced3ccd173e698a5da6ccfaa8284096742ba04b03f5aebf8fc502426c"; - sha512.doc = "a3f12a43edc3ffa5556bec25b8527fdb039aaa704b2ea37c723cff367d453b0ac53b14c1eff41bf6d3961cf1d4f11b70349c03d253336421031ef0ba81b56561"; - sha512.source = "52ff44163115b6ffa5a8e181739df2c8c5619a32af0aa7bfc773d84b12c0e85a67bf87823ae0dd47f7d40d9e12fb8bde039b935555a1cc220dcbf49d182f6da3"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.3s"; -}; -showhyphenation = { - revision = 67602; - shortdesc = "Marking of hyphenation points"; - stripPrefix = 0; - sha512.run = "0a3ca7d966edf0f4221dea2c084b428c9e248b3d223b57f3f210258918593d93518a5ebdce7d9de6b88ab040c0f2b632039e23f3339a729d1fe1391f8a51d4eb"; - sha512.doc = "9d7263e5f285f5d29738c7ff578a0bf9256d67e56b882e41f0578bf9b594225a6e0711d9fd05bbc89a03cc0bb56b1ea8c3ccb1f4bc4f91ad40dbe55849b20c99"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -showkerning = { - revision = 67603; - shortdesc = "Showing kerns in a document"; - stripPrefix = 0; - sha512.run = "37a913fa403c9760fd150cac3fb88e349e8c1109f51768ee202194e72232d6e16d8dac529872dd1df7896a40a79ddb72d65c9191f72337c806de307808d80532"; - sha512.doc = "39f8f12a70550a5864956c6145a2a19555c18ce60084b66d2b69b6a2ab8796ef2b911be39c59e736534749b42930bd055969ced8eb5cc03f1e5f2796a0d0b3e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -showlabels = { - revision = 63940; - shortdesc = "Show label commands in the margin"; - stripPrefix = 0; - sha512.run = "285389ed8ef5efcfc4855e2b8003cf94275de536c8f28a237fbdf856947d55c935bfde721a00eb3e2a0187bfe552ff97671197bf1c40492a2e5e700f9536e3e8"; - sha512.doc = "0e624e36f96b8f0d06abc41c301753e3d71671daac4ab01a3914cbd45a5b07f4574011f93c5ce62129fbd77021712fb39364c240eb9b394b204597033ab13df1"; - sha512.source = "b3bd2c4e750662b7a1728f0b100fdb1c78bd33ac95e976211156786833345f2b5a3b5744a29cc134d31b166f85064607d812f7ba1d73c00be421301f4e41031e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9.2"; -}; -showtags = { - revision = 20336; - shortdesc = "Print the tags of bibliography entries"; - stripPrefix = 0; - sha512.run = "b70dc03f22838dab65631d39d8690897d4a5c71b5451775e85cdc3ff600d63afc29bd28e49aa64a5a2467143f4a84d62f5a2a9af4a8365e0a867d6a46e9de93b"; - sha512.doc = "3e1efebe8edd469e66b18aea9d9a3614b753a43ac61f5a31b57fccc1b45047aaaee8f80d156932671f9ae7457fc627732f1f72c65fca42946280c1182d8960de"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.05"; -}; -shtthesis = { - revision = 62441; - shortdesc = "An unofficial LaTeX thesis template for ShanghaiTech University"; - stripPrefix = 0; - deps = [ - "alphalph" - "biber" - "biblatex" - "biblatex-gb7714-2015" - "booktabs" - "caption" - "colortbl" - "ctex" - "datetime" - "enumitem" - "fancyhdr" - "fmtcount" - "lastpage" - "latexmk" - "listings" - "lua-alt-getopt" - "lualatex-math" - "mathtools" - "ntheorem" - "tex-gyre" - "tocvsec2" - "transparent" - "undolabl" - "unicode-math" - "xits" - "xstring" - ]; - sha512.run = "da3b02cc3558a337d7d35018fad00faf6d9183f3f4bc5b5b31e168a11dcfa705a77cad6c42f3fe3d98ce67f50d94ca1f75a82999d5a27837ea8fba6c01602594"; - sha512.doc = "04f1ccf2bef9e11364d7f066ed1a7fc218e39ef7a08824eb65537d88ed03097399eb01d07ba6d0a34e7456fc6de1291ea4f1c9264074eecd2e1af341c42e9197"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.3.3"; -}; -shuffle = { - revision = 15878; - shortdesc = "A symbol for the shuffle product"; - stripPrefix = 0; - sha512.run = "62b456ae961d34908fc25cc085bfa04d39e70f2641d65dc8e0eda419ec96a328798cc258162ebe065285f3ee1088e6076525ccbd8c0f7c0800024f371bdee65d"; - sha512.doc = "1b6427fa0cf98651a219f1cf6f15a400c09ea924bf0dcea7d48ce0665a5f1828ad64513f87089ea48d02d489d8020c90c661bac60c069601be437c77364813d4"; - sha512.source = "250729a95e91eef9c1f9b5364aa3b0a1f03a75805845c773f82b26c3782764d6f866f33391aed2f0cbb167d016b06593c015e6fb2aa9b7ababf33f215fb92647"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -sidecap = { - revision = 65618; - shortdesc = "Typeset captions sideways"; - stripPrefix = 0; - sha512.run = "3133ceaf7db89d57e7dbdabc016491795b2dd67ecd614fc4125f41dfd08ba0a03371c446d1fd7e22d1c491ac3ba6ced2856c6c3c9497304f4c041c21c0c7f558"; - sha512.doc = "2ecf3e41c8840ab87b49f771d590f8ba0d05d205bd435571dd71f2ad1d1aa727f7151b9bd913c4d33ec16ccb5cbf513bb170e59e600bf64b7c69a08273580eef"; - sha512.source = "e961f8965d2f28da04a8c5369370ae6d07e54c1091ec28da87639c6ca737f028010b85d93943fa84a0472f6f42d52d0254fa3e916acada22358e06c420a60d57"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7a"; -}; -sidenotes = { - revision = 54524; - shortdesc = "Typeset notes containing rich content, in the margin"; - stripPrefix = 0; - sha512.run = "6cf38305b919deca31761f1420c18a0ffb5ba18e045515af058e9b7d73535730117f757f16a8030d97247378efa46428ed9f28757524b650a96133aae6fe4e11"; - sha512.doc = "db5f8666987eeb2c8e29426a91bc731f8c380176b3f0285c4c4ca8554b91c85af52d0ebe16d57cdb558d8c7d1e97c6f169addb12a57a107c00ff36486dd2d218"; - sha512.source = "6d237c8df983f2a3d056038067039c45604086a377cdf02b9adc0e1c125619ff911165891d27be7e30466d3cda03f62c32bc7edc73152460d21443a5cc6886f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00a"; -}; -sidenotesplus = { - revision = 69176; - shortdesc = "Place referenced notes, alerts, figures and tables into the document margin"; - stripPrefix = 0; - sha512.run = "d7d7be2971798a869308564095617484713471f4b1e46b5729f40871eaa3216285cb063d19a7d85a6db3f4b492c4af290c3c6d392d7a7fb78b4e7761255c0a83"; - sha512.doc = "d712e51374969ab345d8f641e4ee860bbd72e5f4aa759b0b00cb538c768f9e790265074003715252f8e6c8a6ca56a5513b0f4c2dc0c3d55214aa80a994ff5c08"; - sha512.source = "c87cbc1558e5985583116a4d587aba0a7f7f6a8e7103bbd5d2c146d250fbea2c5449515787080c49ed949a28071f49036bbc4fd343d4e8d063d5ddf50e42986e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -sides = { - revision = 15878; - shortdesc = "A LaTeX class for typesetting stage plays"; - stripPrefix = 0; - sha512.run = "739e26e0c0b77d75e91f2a3a18996aa55ee1163a2bee6d489db4ba3b0864b51572c55ec53441946f16cb87694425d09e613abd2223fba2941fea4be137341b10"; - sha512.doc = "653a8472a278bb1d33d9f86559398b62e32b521c6ce8dd977dbbc4f44183e37b95378ea4b29356948735c42925f9ed25153cc6a9009341ff01d80befe2bcddb3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -signchart = { - revision = 39707; - shortdesc = "Create beautifully typeset sign charts"; - stripPrefix = 0; - sha512.run = "d379bb1a9fecc06f4e48419d0f4f49e50b6b276e15e64992ee7e154154eefc24e71c060066de3bf9e97da6c8e62b78208f3a01918150cd2ef51231b5abaee44e"; - sha512.doc = "7b140f890f3342ba6b2d25385dcae6925d8e445a862af703578f455b73c69cb71f4b9b5a933ac8b1a16178874f71c80d124c352b5aff4d7bf3dad6f1aa5a3874"; - sha512.source = "c2f141c1e0a279d5a76cddf97d5dcf24e35cb219d0a0114d5d2f91a6b24bde3b900b168225cc6afa4c623c9011bd373388799a0448ff588ffefadf7109a24af6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -silence = { - revision = 27028; - shortdesc = "Selective filtering of error messages and warnings"; - stripPrefix = 0; - sha512.run = "95f4f095e0f70dcd11482be4f6d52c5ea7a06ad820c08386ad956b9bb9ad593410e59fe9bb5904c3242594d466c495e7793718d4cb707ed3edd1d17ac3c1c1a8"; - sha512.doc = "988df943eaf9337145d081de38ac22389bbffd3e94408b1cbb5de7605cccb47e2fa837813d4647c339d978b5b9b3e82e6d9859b840e89c09c95dd9572db0601b"; - sha512.source = "7a628ca9efcc34863f064783a1e65e7bfee2a735a2457413d5b938e50b823fdfc6137f56041885e2c4910119ac756a5d6eecff91d9e99eb2bb85d2cd73f273b3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5b"; -}; -sillypage = { - revision = 66349; - shortdesc = "John Cleese's Silly Walk as page numbering style"; - stripPrefix = 0; - sha512.run = "5ca2f89c924dadaa727aee6b6bf5b0a3c06fe1d841ec37cf1a6fbb7d3516cfe8f4e2823ad8f9acbdd85a333e3736985d139e44b907d3bcf793340d49a164405a"; - sha512.doc = "fd4ed28957de74aac2f90d2aa37e5014f423738f783f837fdea9c28db0d4b9ebc65c8017fbcb596f86610f712dcd38864356838c1e8da123c2eda1be4932b936"; - sha512.source = "460ed2ec718e74921711b29010138f5e6e544da8e91631b32144f3ee0ad377b815a3d974fdfea47ab231dbdf17d4894e6a73ea78b00ee03e8934219858ce43ee"; - hasRunfiles = true; - license = [ "cc-by-sa-40" "lppl13c" ]; - version = "1.6"; -}; -sim-os-menus = { - revision = 68843; - shortdesc = "Insert 'terminal' or 'context menu' or 'viewers' like in an OS"; - stripPrefix = 0; - sha512.run = "565fce3e9e13d14f7f52d3390e407b03ec680b21cef37e68439095d9e7cc813739853c9e3307dae040dcf60c6a6dc4934b0d8bac68b258af4c14aa22d8d9aadf"; - sha512.doc = "b2392fac63c75de85b89ca7037f495155cb749b17220cdc3fb2aca368bdbd593039425bf21a0341a4160935fba94d0a9bf5fcfa6c7d686178a715aab44a28ae5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -simple-resume-cv = { - revision = 43057; - shortdesc = "Template for a simple resume or curriculum vitae (CV), in XeLaTeX"; - stripPrefix = 0; - sha512.run = "996341ce711f6f9a68ccd7e0b315da98eed8f4737d44b8dbd9881c2a76c8ef2d04b1c956333b0e33997d57e0b62bcb2485029283bb4f4711c2f8e38c177755d7"; - sha512.doc = "a380b2a498bde69cef1ba2401e16886d35edb40e3338963bcbd6e862da3e54f547e7900a18f668515b3ff178462a4ea0d41bc228b6b6e7ea8b0693e295231e92"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -simple-thesis-dissertation = { - revision = 43058; - shortdesc = "Template for a simple thesis or dissertation (Ph.D. or master's degree) or technical report, in XeLaTeX"; - stripPrefix = 0; - sha512.run = "201826e649acbc8dde933da3d141408ef3e4f3bc5daffbd520a19885af612f17de2618fe7e8c78a419b6e5e4eeeaa36a2fcb3db6f610df2189e01e0b4a66e9e3"; - sha512.doc = "8dd82147b1096f728fd52a56c39309d0f421abdd972a1297b88b516e0a5ecf8387a3accc508047bcd3996ab81d778dbdd221934e2bb4c96e1ef2a59cd0fc6995"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -simplebnf = { - revision = 68959; - shortdesc = "A simple package to format Backus-Naur form (BNF)"; - stripPrefix = 0; - sha512.run = "87c6838d1a31f3a617752f428fdca3ccb7af22daace3caff307760f24fcf3092cff324db6357174599985bfbbba6a8c0f31a498481da3a7790ac653043c0683e"; - sha512.doc = "bfb6dcf8e843a42b5e7481e3ace572f55561418886cb0ed562fadd79a72eaac6c505b9a52ba37f0e3c2bfec7723a7334e81ab2dd6dbddca47ec2339f8a9b64cc"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.0"; -}; -simplecd = { - revision = 29260; - shortdesc = "Simple CD, DVD covers for printing"; - stripPrefix = 0; - sha512.run = "5fe4024ce7991242fd60b8a87c88605f68ef9595895857b56981b35dabe96c97f9af684fc5ca9c3089ba96791e076512ccd549ce70071d215eaed4e731145b30"; - sha512.doc = "5cd208f8869dc989542bf028c216fbddec5bfb285ffc18c25cfea928035946e903cc2b61de630125d8e8deea772f7f20cab552505538eaa5d3aecaef8192abec"; - sha512.source = "9b26b5fb78bfeb1115af219615c7bcf2ee85c5878ff18807444642e103abccda517c3d701bdfd655f5f9e3d1dc0374c316db96d5d7b0ab9addad74b8d7ecb5f3"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.4"; -}; -simplecv = { - revision = 35537; - shortdesc = "A simple class for writing curricula vitae"; - stripPrefix = 0; - sha512.run = "c67e9200925ac86386efaab35a8edbf20f0fda700c00c3b0350eadbe62f39fc02f502493a73acc768a4727ad1162561d7baf38193d57d1fefb4c8083ebe38c35"; - sha512.doc = "dbf087e0659f11b4dc0cf40a6826cc45f48b8155d9148262877a0d51f5766888780698d792f055666766f029ac6f5384b41c0fc41e1c84548582e665eccc0f20"; - sha512.source = "cc8f96dbb9c99cf9567171e65276d18bc8faf4fa9980ca1fb60fb5fe1ab250d462c22af29105501d72ac7ff0421104be78f097bf6afe8b88dfe48932ac19fd70"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6a"; -}; -simpleicons = { - revision = 70519; - shortdesc = "Simple Icons for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map simpleicons.map" - ]; - sha512.run = "336d8cc4f3a20bb6b9f7f956dc09dcb3184a333b0e82f9b72ebfdc7f73c757fa53a48ce0bc31a1b397c42bda9826944e3004d881ee1d6dac4f3430919b4cb9cd"; - sha512.doc = "93e23215d137d04ed4086269aa79dc8f81b70147f5115edbdf7e43865b20bb241275eda4b519db5d9a3857f36d956707d936156c002c155333d72b1f60edbed5"; - hasRunfiles = true; - license = [ "cc-by-10" ]; - version = "11.7.0"; -}; -simpleinvoice = { - revision = 45673; - shortdesc = "Easy typesetting of invoices"; - stripPrefix = 0; - sha512.run = "8d3d905dd9dc418503bde7cd51c90ff6fc6f688502ff871040f9eb6bf96b6c1ef999d3dd98b16c8739ce9518a22a8e99a23b5cc66c437504b3837c30ea19cca1"; - sha512.doc = "81e5ff2bf76f2b35549feb9b6336bd04b9273d4e6b951ee327101d4e5a5d3c429276735238b63c3b2ee03466b477ca2d7990a68615c1d0eee4f12a37d6b65472"; - hasRunfiles = true; - license = [ "gpl3Only" ]; -}; -simplekv = { - revision = 68439; - shortdesc = "A simple key/value system for TeX and LaTeX"; - stripPrefix = 0; - sha512.run = "16b0136de5c1c97ff19beca9f9488768adae2ce7107310aead9f9da82230e9d9cbec62badeacf66175fbaa181d691558dc4203e848b979dcbc23f8cf9bb8e669"; - sha512.doc = "586321e8c1597582d3be117e74ef97bfb0be59a75aae1d5bdc87b2a481b80cac350958ca77aec34148d5e54cd22a0b0b11306f445cd5abe5f1868ecb357862a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2c"; -}; -simplenodes = { - revision = 62888; - shortdesc = "Simple nodes in four colors written in TikZ for LaTeX"; - stripPrefix = 0; - sha512.run = "e92bb0c87e0c490702201fe8328f065d4307f4adfbc06a2e9dd74ee698434274ddbc065a600c5c0a36bca0c55b9cdcd7e3bd469af276585c09ba7d918b711e51"; - sha512.doc = "df7900304a63225b51ceebb02d387f172cc415c09a65209cc850485668f893e4effb3befe424164dc291e283f80054eb6ae18785024278e93739e9d98562eb21"; - hasRunfiles = true; - license = [ "mit" ]; -}; -simpleoptics = { - revision = 62977; - shortdesc = "Drawing lenses and mirrors for optical diagrams"; - stripPrefix = 0; - sha512.run = "2b53c2ccab2dbece85653ac4d40802a41c7dc9aabbb16022f08e351e77e7bd464e47a54005889707de15041a5f3565f40c97355dc3953249a951dd984311121b"; - sha512.doc = "36aa19521be45853d96c9a0406afa60a934ff5a701993fb33d2c4070e3e99822097b9daf100e9364f80a0779158a81f5acd6904f5050dc190fe22eb4ed65deca"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.1"; -}; -simpler-wick = { - revision = 39074; - shortdesc = "Simpler Wick contractions"; - stripPrefix = 0; - sha512.run = "2bead248c2380e19fb19012ba2cf7a41fdd113f48a372011c27ebac0820236500c5e49e5235e2c52fcc5a0f9c79f61cbf76a5d6de86322bc40382f5499216783"; - sha512.doc = "d8a45e06707d3e6c39e36d83020f0a2d4654cab508d91e47022320e67454d08958cfd6d3872c5ae40539f29b03080915e136746452afb9f2e74fe8be2ec20bc1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -simples-matrices = { - revision = 63802; - shortdesc = "Define matrices by given list of values"; - stripPrefix = 0; - sha512.run = "859e5e8c221deb1a40f08a0cc2ac6949cbb055791ae5435f97675aff4bb1e97caa2fa8c49b5735d31ee7b11ae8638af839affdd795d052d022890b267131dc75"; - sha512.doc = "8350ce5c4b504f955e7e2b214dfc7938e010ae440b0e51389f2013b8c9229db362938743e8da08d7fafaf1be67d29231d7fe6f92507399b838c65ce3890ec29e"; - sha512.source = "f88a1b06657e40cae2c505f56e35c8696f4f4d962376b5f8886965066fe21a4bc36edb7f467c29cfcd511b5564643699a54179b44f5187f1c193690485598a15"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -simplewick = { - revision = 15878; - shortdesc = "Simple Wick contractions"; - stripPrefix = 0; - sha512.run = "86aab23f8d19e9fa5a6251f8f725ada87b66a71a3024253d8b56f3edcc20f26695b2194b710f691ff9ed0713c993a8652447674ec84d4084c3354791244a6f10"; - sha512.doc = "bf0c3b8724ed8cc41635f45001fa04f655a7b37792c5b0e632578b066649c3bde1f894c3ab739ea2bb49f6e4f65e63fd7cd7d515ea15b53ab5894778a7918d13"; - sha512.source = "45d26e7044fe0928eb8e572f0333bee64c008c2e4d1536a0145939ce0f3392961e72bd7fc70c35b2607b2a241249d13e44e433b373b57898193185a808f128d4"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.2a"; -}; -simplified-latex = { - revision = 20620; - shortdesc = "A Simplified Introduction to LaTeX"; - stripPrefix = 0; - sha512.run = "31313aede3900675d183bfcff0045df5fa7719b982df1822823c15d645c7ef64c0b46e0f1690d98d30b2a6057e082684f23cb61a490fb2217887d0f20231ce73"; - sha512.doc = "f5bf92ed89cfc83f306cd4b2599446a11b73f73a0b82afbd0f441e26d837e6f436913bd2df18585c5e215fa0504bfee3d5d4f5ef4da8925161f85c70c14045e6"; - license = [ "lppl13c" ]; -}; -simplivre = { - revision = 70317; - shortdesc = "Write your books in a simple and clear way"; - stripPrefix = 0; - deps = [ - "minimalist" - ]; - sha512.run = "864101fbbd4d71ce75960255e0df965ff1dcaa7c323bcf34fe4893190c81877cb2b86d50559b20f8698ccf015cbcd111a3b6e052eb62cea28e9a5f62335d0121"; - sha512.doc = "890638ab256f56c1a964e89d990ba57288fe4ff2d8149065b1a6d24b056eca50751a932c5ac91a453bcffd1b909a7e8c277c3e240d525a97bee259d6a40bf91b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -simurgh = { - revision = 31719; - shortdesc = "Typeset Parsi in LuaLaTeX"; - stripPrefix = 0; - sha512.run = "11b77f831aff6796e41ccf2024496ae1c9d4b9b5f4c029daf33e0eb4b4fd3d1e5c78137b945e3c9fe7a16380365fb88165a46e614dc3078657ce025a55f90d44"; - sha512.doc = "30ddd7a9bbf3f568ad4876336228842651d8f95eb5f21df81ac524b99a7a695e68e0469f79867668dc3b9913cf223b72a22f6a0d0c818233c081ba90ac67de1a"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.01b"; -}; -sistyle = { - revision = 59682; - shortdesc = "Package to typeset SI units, numbers and angles"; - stripPrefix = 0; - sha512.run = "0423402d3fea5dbbb60abf6c763bd037982479557b84b6ff38f795168234cd3dc6eb0708fb7b5e76abb1f68560a884e7d8b4e3a256d78b23aa81dba9b6e70d4d"; - sha512.doc = "94fea0a472ccd43396921d957544ce6b0a1d6b9ca5ee63a01fb0f1fdd61e1cafeeca4c85366302117d852f20798c51b76966097bee3c2d7f6509e339720b744f"; - sha512.source = "bda83997fcdebffe1792ecf0678cb8065ec0f4dc37b2662fb515c8f314884799650a38efafea97e4103cc915d421b9cbc60ef9c4c81bc34a6b083548ebbf691c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3a"; -}; -sitem = { - revision = 22136; - shortdesc = "Save the optional argument of \item"; - stripPrefix = 0; - sha512.run = "64a34fcf0769ed4ab4b201facc056b890a89009e1847e9ca65fb405e1c1144225e8fff59c1a906341521bba5d39e3338900a9a35aff5bb716a5aff5e6aa4d49a"; - sha512.doc = "af74d7b4f4dfce45e543494344fa32f4f4d55435034cc1b23b24b333f89d54d0b8c9d0a1247561bb7182d3841fb04b7b3531be847a6fed3db212497ef2ccec3c"; - sha512.source = "9aa058eac9367ea31804b5c2983873f16d1c74f598fb0967f43257a963a38aeb7d578ddd596dbee87d942d87ece9188c6fe0f5e8734751325121195d9d348769"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -siunits = { - revision = 59702; - shortdesc = "International System of Units"; - stripPrefix = 0; - sha512.run = "01b2b83edba4482a6d0434efd4590b3b0fbbb596da6075632a215d60a16cc48d66f0f47d3ca61a0e73290e933952cac15fa2048f6ac12112dc603956f123f5b2"; - sha512.doc = "d6c34f20671b68a1ffdf47b32e037d7660b660fb8a8e3768083ee7e33b08e7c313eb5f2c585657dcfa258f85574bf6b13a86ef81e49c2ed1b407e4dfc8dc5d04"; - sha512.source = "8cd5d556cc4c6abc503b9882a7c2ff19052a9004d703b37383d6a6c6ec671ea434b03f6f1df362aef2fec06dfeefb7b231072c975eb946262b71b15131f38daa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.36"; -}; -siunitx = { - revision = 69922; - shortdesc = "A comprehensive (SI) units package"; - stripPrefix = 0; - deps = [ - "l3kernel" - "l3packages" - ]; - sha512.run = "df5ab6600630dbb86b496aeb3c048137a950ba0ff56275ed4fc37a8eab517f45e53cf5aacb69e21bad7799b15dc0e8d6c2f827b2a3e41abc972119174d2f2352"; - sha512.doc = "e0801e342de9483cb5a8cc24b63002c9cd01d2e38ab6945eb91b635ece0833cc1a1c6c12398a9e00eb6ffa284e11329ed53e7f5a708432d7ae1c361ce5390821"; - sha512.source = "6df46783a825446b651644bae7c5d5ad7c0abd970153de9b360376b30a1d61adef46ca3a9887689fc1fbba3427a3d634a3bfb499b3d933bc6670e02cc396c170"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.3.12"; -}; -sjtutex = { - revision = 69967; - shortdesc = "LaTeX classes for Shanghai Jiao Tong University"; - stripPrefix = 0; - sha512.run = "b9c366d594492e128f183bd1805626fc9cd7a226cfb2e8839047a7299027515213b279aaa46e51d3828997685625e5111d8da71b4f80e8063887612891594cc4"; - sha512.doc = "b996ff331e0522e6b95cdc17f289f50974d62983976611b428bb49ef170e12a94784f96774e99e6488c88749fd78cf304ed7bd041970e14a65c40531b4f71f73"; - sha512.source = "7a6fe3891a069b3f2bb9808a337b0812eb28b99f6502e0da539ec573b29892a63029f43e7aefb3e5d660e69ae8f26d6b4239cd34900776c1bb1cf49d3e420a26"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -skak = { - revision = 61719; - shortdesc = "Fonts and macros for typesetting chess games"; - stripPrefix = 0; - sha512.run = "df1a6adea32b01c8ad8ad7509c68e025ad2e1005d9aaf26cc35c67f82d21f510d1e414831f5df0a2f0703e295fb4c187d359ef7dbfe8afd76a8ce75a90f3b4bb"; - sha512.doc = "ffcb56dfae0a0ea91e716b99d1d91d4f20fedab8eb7b637f62630dbc4a8fad0562120cc02a754df475dc16c4b1a09fb2da48b8a9e22112d0c69550016026f76f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.3"; -}; -skaknew = { - revision = 20031; - shortdesc = "The skak chess fonts redone in Adobe Type 1"; - stripPrefix = 0; - fontMaps = [ - "Map SkakNew.map" - ]; - sha512.run = "879107f0bb96441082ccc4afb560e4fd0f625e7fb7cab84ebbd642af1ef180bc27540eb9ff26c689039dd6abb11e9b88bcea30d5b1e75b40f0e3499c981ae6e2"; - sha512.doc = "8c26115910f2e9a9ae28e1b6c0933db3308c9f59eb151bb37b23de3f0f790b9726aef895def0826e00928b75753d925c5c9db0a6b91ebf7035fad5a4e473a315"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -skb = { - revision = 22781; - shortdesc = "Tools for a repository of long-living documents"; - stripPrefix = 0; - sha512.run = "5c2e0e7310898e258505cf438ad91650fbcef6b720e9d05b9ddd241ceca3eea0ccc3a71b6ac38acee58d8e205b8352ad7abbdc277596ac74f6a5cf0ca805a0d7"; - sha512.doc = "29aa9629f84a481cee1871b92b49e1a34683092759864f1e612ef4f7b3862a9ddf567b2d20fae3f99d5946de43055de2dae8ad326000e344383c854eb9ff4f20"; - sha512.source = "fd0f3a1d4cf3fa189ef0fc8bbbb35586a39aabbc733fba3aa9d3fc48d920c416316a4a19d88583ea42b1a4c38baf4ec75cf0eec78b68a5434f3ac4578d56ea9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.52"; -}; -skdoc = { - revision = 56950; - shortdesc = "Documentation and extraction for packages and document classes"; - stripPrefix = 0; - sha512.run = "d00944f58e9842c0d1841b73fb1936dc14655f07d51c60140581d597a93a0e9ce9fe65941cc343979e549620edec6a8339cca6089df068d932e1344556c3449c"; - sha512.doc = "481e590c14396f3318999524157f8e5a8dafd0b6f553414d3ee09cb0dec6d356c2b422b6598b613ec4d29b35f27a59024dc9e5bcb49ea2643205f37c616788d6"; - sha512.source = "70343ccef329a3dce81aca0c0253b42450e7eae4560b58d69d9f12d7ef32d25023d5f09208f22f7d65414a089d2992c28079dfb708ab701803cb42fe41480691"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5d"; -}; -skeldoc = { - revision = 57922; - shortdesc = "Placeholders for unfinished documents"; - stripPrefix = 0; - sha512.run = "2bc1374e969e5b32e9a88b8240a94eac90066514c8dfcb91196a13a3774d200cb8a412fd490b581ba18e9e0047596d30296206b0607316554a361b6103ee33f3"; - sha512.doc = "13cb76835ff1eed119d8514aae495d6adaf8b4c3db17c660af29624247cba9c37d4f6991d6a99c566972e4032f14d62c21fb4f31b856c49de40d0a87def1cf95"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1.2"; -}; -skeycommand = { - revision = 24652; - shortdesc = "Create commands using parameters and keyval in parallel"; - stripPrefix = 0; - sha512.run = "0aabcf0a47ffbdaa2f88bfb970f844df36cfa30f2e5ff02cbd9dba2179fd871c2ae1f979a99e70f3f7f2ab2589b7ecbaa6f999352559100bfaefcbe7f6ec16a8"; - sha512.doc = "26f7e544e9b1b75fe7131d409c3083c39914424c66051e46535de5415383d82e48a3e2c1d35e34e5bac624a034f2e14623c8cd5b6844707b09fd531daaf7c544"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -skeyval = { - revision = 30560; - shortdesc = "Key-value parsing combining features of xkeyval and pgfkeys"; - stripPrefix = 0; - sha512.run = "151a705f5e62dc80e8a470a7ce39cf197933452a35b296e70790d7ec0f6667f24acbc0c643db6c402ca1e9b9735f34be388efca5a5e5951725e8f00bb8d2833f"; - sha512.doc = "97bf20706cd14e0b479221c6ed96e56754aca13d7b72f1d7bedec6117d159caca2a4e9a931d3d8311f593a538985d8e4e5bb9d5a76a653d72aa8d094a66e9e92"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -skills = { - revision = 56734; - shortdesc = "Create proficiency tests"; - stripPrefix = 0; - sha512.run = "0719d385343a79a261409a07d659c0fba4f861e69b082278b1442a12408bc3601de789575fdf566ce280a2699dc10b28aada80d490396498fa9a6bbc8d064eb9"; - sha512.doc = "9b2339a50fbc759d9e5bc907a4d8dca2f06293d5a5f38602213a859dfc34da1715105b2b5a46e82a23f71b741e4db713b0044f345767a1f87c32526b57fb0103"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -skmath = { - revision = 52411; - shortdesc = "Extensions to the maths command repertoir"; - stripPrefix = 0; - sha512.run = "6cbc67d9a6fb9cb6a3d8da38ff83bbb6dbd28c5e3e81a07a1b7292472d9064f321206ebd4ac1917d80f138f9b9cf91c008b8e3eac27ef0a77ff2073cab08eab1"; - sha512.doc = "ce579b82a84f81169bf1a6cc37fff0c2e7c4e1570d0cbe2eb143dc8ac6dc082fa3cdaecae5a31791aa590c89fb74a58a4451811ec66d38eaa146520ff16e7471"; - sha512.source = "d5101fecf8963f78b9e202c9d537723dbea069558cb764fc66344862cbcedfd81ecd3d923ee2f8b1167a65f8325e2f1fd66f16089a92ab419a580ca7313fa484"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5a"; -}; -skrapport = { - revision = 52412; - shortdesc = "'Simple' class for reports, etc."; - stripPrefix = 0; - sha512.run = "60ee0f76dbf9e1539c08a97cf25cf14d2fbf02527facc3764c57cf0812a67d740d5c3148a4a7e76a6880717166c935b34bcf38de0b4f7d02df9c1ab50046a2ed"; - sha512.doc = "986bb0ce679b69bd9a0958b6d4d1a3fac49ac6a5e31bafa5d556ac28c2bc3d0d8c892e998791e74172ec86c5899acba2cbd193dfc685e7dcb0b5d47b4c2e3576"; - sha512.source = "b2f63eda57ec7ecbac63c6f0b2dcc2175bde5618db88cd6270a27466178c39209418a94470d6f78b8ea22c5e6ce8d3dfc178f52cba943f9ccc98fea447ade818"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.12k"; -}; -skull = { - revision = 51907; - shortdesc = "A font to draw a skull"; - stripPrefix = 0; - sha512.run = "261ba31f30fa26e25f82dfe60ff7600c71db51f1dee68a5c094fa8a746995ee9031e41c0f24a4e83aec52c603cbea71a0773cae63481f167b81abdfb0ac3f782"; - sha512.source = "3967550eb9af93aaa3fb9c623437e2c6ceb90f52f20533832aae3be91c719a774e3fe6a51f4d1543d6547479a2efa6c1965f0870174cfcd5c93cef0c20aecddc"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.1"; -}; -slantsc = { - revision = 25007; - shortdesc = "Access different-shaped small-caps fonts"; - stripPrefix = 0; - sha512.run = "45d92cb8f2a5aeaecc9945ce2778f2fa330b703ea0efb2deb4407ac17d30ad3a3e1ae7966474af28a7816dee18254422fe7c72c50f11f47cd52a54522f05fec3"; - sha512.doc = "8f856a45e3088d2047157bc87d60a16b6c6e481334f4ee81a23e4cb8ecf53d1113849877ffb24ee4516dfba228c10c9974b0b0a148020d64e3069ed7a2d12750"; - sha512.source = "7e2af37c07b8ccae052c84ade3ad49fb4d93fb5fd97a5387b1ea8af523167f21d48e3961df58c7a93dfbd07f09ed1140839e48a57b3149dfa713e5945081f200"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.11"; -}; -slideshow = { - revision = 15878; - shortdesc = "Generate slideshow with MetaPost"; - stripPrefix = 0; - sha512.run = "f7bd44c9720512297f15ff6cee1c49ca52c29fc206f739e6aa447e778fed00a64e282aeab9d42b215cac69a64ab39f3919433bd0640d30d55ac540e2dde07967"; - sha512.doc = "d271c1f9e7b9c45694463982da8c9542fea326d7e191a705e92f5b423e054c3f926768d2209844ddabbe75eb610d4a5cb05ffd53098cdca9e35328c865027eff"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -smalltableof = { - revision = 20333; - shortdesc = "Create listoffigures etc. in a single chapter"; - stripPrefix = 0; - sha512.run = "50a4878bddc55e1b05ede3e770aad31f6c56b81f9e6d0a536ece25729e3c5a9a1720068534f26a9c224c101f0e0d833478f1a5c3b12759d7c3ffce027bbd5edd"; - sha512.doc = "ca62aa29f6ad62f149dd9c5077ee2b14ed69d8a750f33d3de274ae275e5d1528482e58140a78b0917cf02a879206194e24a6beecd33060544abb50dd6fc564a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -smart-eqn = { - revision = 61719; - shortdesc = "Automatic math symbol styling for LaTeX documents"; - stripPrefix = 0; - sha512.run = "03f69303ec66b59a7425e06a4e8941a5c93414514b5f80cbc138a75a5619791dfa3ff2f1435ddbfbe7fe5af298a1af5325f279f36d924e97a5074ef930b42997"; - sha512.doc = "85eb6e8ccbea66cb6e30f862491adc02316af9071753459eb56e8f19011e9ab7865f87868ed348e5b0f6192b2305dffe5272d885486b881e2d286ceb211c77dd"; - sha512.source = "f7bd8c3b2e616a739b0d5ad459e1041c492b1e00cb9258b55ce4631465e510e71c166a3f6a94b8244a7e1b4bf098ede5c9379a7a5a6baa90eb28026e9be0bad3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -smartdiagram = { - revision = 42781; - shortdesc = "Generate diagrams from lists"; - stripPrefix = 0; - sha512.run = "322589506d1cdaa30dd9f97b419347fba0d617a3ad35fd15fe91611b10382c595598ce1111a287f5b1aef617595cba77b53490da7744b23942f072f522a68ef1"; - sha512.doc = "1cc7abaed3dcdb11fca675bea8e458f1879bda4ac72278566a9247ec2cb0016f10467e3120e9ef688c5674af05559bff39862d4b3292596f0dafd5e13672a14f"; - sha512.source = "a1141f82e32b444951bac9fa0fd119e59cc2389577cd05cc19702582c64972602215648e727ccb338565edafb0116f6c50a033d9c3ce8664e97f392148f888d1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3b"; -}; -smartref = { - revision = 20311; - shortdesc = "Extend LaTeX's \ref capability"; - stripPrefix = 0; - sha512.run = "149dd95ca0677a4e273df64a589d1424b8dd89983adf3a3ef81f8236d1b594d35b851b4255fd9f0d05b4feb82db59d816408e3ca59f2b86b73a5724a8e937367"; - sha512.doc = "07eaecd9e924e5912e8e3a3ba6479412282e1408cbb59699b9e83006768c4042b173d38da2e8dd2c707b392cb48d99e4be25985023db4de80d69450fe95a338b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -smartunits = { - revision = 39592; - shortdesc = "Converting between common metric and Imperial units"; - stripPrefix = 0; - sha512.run = "d4c23a39d79cb5c0ba700da40b916ac6072e612d0e5b8ea1c189100cfe56fe77c9d1ff742d92fc44450255048d96f2e1dc2b5f0e098e56aad5efcdd423fec608"; - sha512.doc = "e85b83a090b3e352a0faa61ee0f3dfc84d3f2fad8f1ef503aef7bf571e706575b19c1da394b09e69968b10fff2542b5b749a895eb17e84ce1293273532d2e241"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -smflatex = { - revision = 58910; - shortdesc = "Classes for Societe mathematique de France publications"; - stripPrefix = 0; - sha512.run = "3723047537c97c42f23eaf15dd95941092300a86a5072cf261c2d9a4fdc09d17e3c09cefc6a1f632996b45300cfc5e3266dba4130decf4f6d33063b0b7f45d0f"; - sha512.doc = "a0ead1f76c26126c3cf00bd735ae8002648ac874511de92a73b756197328af3d81d66697c0fb3d210047570dd267b5c975b26a7c6e42b0fa61b9b77a29bbf113"; - sha512.source = "99a45d290c450301108b032830b02c81d3487ebb281f19f17826df8ed267dada23b5bb039874f97de29850c1d33bb775097d53d7e4d8d4373de9143219aa57aa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -snapshot = { - revision = 56735; - shortdesc = "List the external dependencies of a LaTeX document"; - stripPrefix = 0; - sha512.run = "2b9bba924070f81319758c4b8a8e85533ff5099e901598248d5a645aba249e7158587e7d90072d3e8fa4d544d09f800b94aa415117683a8bb8c6d7ff642c313d"; - sha512.doc = "b1dda7b3fa9195e5d0e425a4b7facc75f8737446b65b29cd5f3c954dad348055c8544968b3c68f9b2256e8d827ae73b54b765d23b958abc383bef072d9eacfe7"; - sha512.source = "ae57330c3c69e82c638e07ca7d2d011838a85ae79f3f16fcb8909076f375da51f2b1d3487aadf55cf93306c035099397fa826a7bd9654e6756cde66d2138b15b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -snaptodo = { - revision = 61155; - shortdesc = "A todo that snaps to the closer side"; - stripPrefix = 0; - sha512.run = "10d9e3d154a3713c1f494ae626c61a1275b902892ad7cb34f41c65a36335a7ea21bc9d7d77d00845c2e5f270edc91d1be5bfdfa34189a2ac6bd88ab83e78212b"; - sha512.doc = "ed3df0276b44e2539b9b8cd0b5f6b46f86b18723d0913ed29fba45e30a132b53f8e0206add2d31bc152c78f319b8f7671ea000a1f344dc7f7d80ad9de32cd66b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -snotez = { - revision = 61992; - shortdesc = "Typeset notes, in the margin"; - stripPrefix = 0; - sha512.run = "8e827171eb8ae6281d0be97bddd251db57349f935ac6309eace72396be37c33e8bd79d792701f56a5e338eccfae452411de520bdab5f5747e6fb741e5215c1bd"; - sha512.doc = "230cd4f3f8922fe520c7b476f8f7b31e3965029e72e58828107e5f7c761b87a64f5c5df9faadb610277d45ff95052878c070e690932759850da34fd82fb028d0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -songbook = { - revision = 18136; - shortdesc = "Package for typesetting song lyrics and chord books"; - stripPrefix = 0; - sha512.run = "06f81b35318ee9844565f622b5ecfb0f323373f14acfed3fdd042a244537c313fcc974c8cc556011baed16c5a7f90b8163342d36e360749db240e6eb639351b0"; - sha512.doc = "a8d98e2d3b90ebfc4e8df53ebaf92f2d0deb95034bf234dfeaef1d38213af9a36e38d48599e6e78a7e87fb966de87db821f4de7a6fd50f57c1afb515050bb510"; - sha512.source = "57fed8f034e860787cd72b2acece0a491832acc526964c75060258db6bd46d77a551b967af41bfeae47d83ab97e4d6c2799c0f4ade405a43812126acc1b3d390"; - hasRunfiles = true; - license = [ "lgpl21" ]; - version = "4.5"; -}; -songproj = { - revision = 66704; - shortdesc = "Generate Beamer slideshows with song lyrics"; - stripPrefix = 0; - sha512.run = "7c6341931e78dd362cd67062518f7f6d1725c239f20f65a7e345fed03787381af08b18102f671be4913ed53aeeb669f3744330d2eb2681878939a813ade2f1ad"; - sha512.doc = "1d219f70c51484b321b6c3b8fb63a81aaa311cecf5abdba6b5cc2662d528ce5fe78a400d81dd3dbfa0e3616a65bf124e3eb78ae94e57e1a87dbce83ba32b3b64"; - sha512.source = "ff8238a64adefe5fb2e2ff8b7541fce489c0759dbbfb5fa517458e404e6a7184b77782cc9ce30f2063a958e212b1d133c7c4a3b82518e7347b2cfdb930bd6cfa"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.2.0"; -}; -songs = { - revision = 51494; - shortdesc = "Produce song books for church or fellowship"; - stripPrefix = 0; - sha512.run = "dd1309fda1a7bff1236707cb45047dd5adc582d3e3f509f211af7a30c0469cde704773af48fed379a29307201d9781150487821219f76d45d556f1d27e420c08"; - sha512.doc = "72c374aab68334b050a5d801299179c8484b6fa46db8c8e20b9fceef3cb9a8c0c1dc51de93f34115d4e34767233179c5872054cd03ea3e622abb63a49ad81f24"; - sha512.source = "016d389033589ab9334180edf70321858ba3b6000d8f560a18631e13ef28130f4b39aed81f7ddf0a178540a463789955d14620b37b7979ac0ea6abeec77d29bd"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "3.1"; -}; -sort-by-letters = { - revision = 27128; - shortdesc = "Bibliography styles for alphabetic sorting"; - stripPrefix = 0; - sha512.run = "41e7db4a4c5242493aeb099ca103f4540e038b1e91ec0296629f4dab1ad013f98b26b664c7d661dd2f53c1e5c749509763c46f51bb823225a104c125a9f75f4d"; - sha512.doc = "e2b6c68a42b9364d44dfa06ea93d8c8ea2444d97a3cf3c111065b720d3706b36315a7c8650877f1d6a2a72c1aa42268af4f17fc4632032e1e3c0a2d0fa08e577"; - hasRunfiles = true; - license = [ "free" ]; -}; -soton = { - revision = 16215; - shortdesc = "University of Southampton-compliant slides"; - stripPrefix = 0; - sha512.run = "59e9e0bd127e44e1a80ff7dccf1fecb18b34a54c379a46632b13f82d80648229daa54c4655575c52ee718b02277c4e2b264451f8d3fe58abd60e593d0826c97b"; - sha512.doc = "de9b03e8626535d2633af3884e373d8b25fe6d203af75382cf329aeb7b79c745f94c6d08d49a69b42172f4bad3cab2048fadcc4ad826a1c1126425a40289ecdc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -soul = { - revision = 67365; - shortdesc = "Hyphenation for letterspacing, underlining, and more"; - stripPrefix = 0; - sha512.run = "233f1178521296d5cccc7db50c98425995b8708c97d750a5c24f698bd0de2e54ed5c57f9641f402bb8a42721e348355e6f7e9092b4056999b032d001c8203aba"; - sha512.doc = "c734b198050f5fda61e0477e7cadbb6f6f9257a0fa41babed664621d7b64c4971412d831b350879a5405976d4e35a11caa0519fb67f308bcd622f0c72f431b4e"; - sha512.source = "6a50fd644f99214a71f96994d52fdfd5f353a584ad73dca3b66829ee6094976eee8d4fec3f691149f634f27423ef5490bd4c1b781fb743bcf228e4b1e52e5d33"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -soulpos = { - revision = 60772; - shortdesc = "A fancy means of underlining"; - stripPrefix = 0; - deps = [ - "oberdiek" - "soul" - ]; - sha512.run = "2b4d2fcaa687ff7d229706e563f739356a450a8ef02180f3c98432b11d027cd097fa895c3c971a944329b8657c74b4d2cf566110919e511e6883706561332678"; - sha512.doc = "9577aa2c77e9cafea54eee0ee032acd7c1343d6eb66b76fc25d694b524630bd2f41043187671cd444c9cdd0ccc8b9064e6c71365492cbdbd46517a061efc87cc"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.2"; -}; -soup = { - revision = 50815; - shortdesc = "Generate alphabet soup puzzles"; - stripPrefix = 0; - sha512.run = "478c8cba8623b184db1c9237b7a805219bf1ffb7ef45280fecf7cd75a1720ca0ea2e1e1ad73465ee20dbc2bbaf14667d4707524edbc073dd4fbd0537dbeca8c2"; - sha512.doc = "318cb98167123bf8d9a5f80db8e31a31f6f61536e938da3b68efc0dfec6722bc898d8295d32896c24d2842b262f22f70e08014c07755b6728dbb2040f64aef5e"; - sha512.source = "41d74f1e6812f4b56b44e3a80abb398baf9eef5c6a361de98a1237fc6931952460450f3780f682d35bf9bc718d2902c9d82ce15994144b2a133dcda46b531774"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -sourcecodepro = { - revision = 54512; - shortdesc = "Use SourceCodePro with TeX(-alike) systems"; - stripPrefix = 0; - fontMaps = [ - "Map SourceCodePro.map" - ]; - sha512.run = "98ae07aa0c29c1c1cf2e181b1a5d68f85736b90b8f381bc9c1a2368cea2b8c62fb0c8007f5ce6b53b8e87195b8b0859c54bb2656cb7361119c29ed87d9259c62"; - sha512.doc = "e786d75bedbf5c5d155a69fda50e9fe6fe07914ca01aa10d7ab66800cd37a4bdfeb543ad34c9ca2eec53de226e68d7a1849a9a0510291d135001c5228f19e2e8"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.7"; -}; -sourcesanspro = { - revision = 54892; - shortdesc = "Use SourceSansPro with TeX(-alike) systems"; - stripPrefix = 0; - fontMaps = [ - "Map SourceSansPro.map" - ]; - sha512.run = "0511dcf736273d80f7143c9dad96dd9f631b016183b4078243ed061d35889fea62e50c5f48e9842ffae7b654fd2e08a21d1c46403e56349c0b515ff2eb62e164"; - sha512.doc = "174def8872588c27b8f90b3c384ee356aec43e4e42014bb1c02d648d8b309dfa8fb9cea03f65fa9bd86dc3ff1e64483f1312dbaca6e212f65d2d379a1d9935e3"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.8"; -}; -sourceserifpro = { - revision = 54512; - shortdesc = "Use SourceSerifPro with TeX(-alike) systems"; - stripPrefix = 0; - fontMaps = [ - "Map SourceSerifPro.map" - ]; - sha512.run = "5125dc5b72d960fefffcc4c8651f3d176c18c32d111440a16a0319f90b8dc973a4af0e20fc3b571578184e31749312c0c1f0ec3bba36b3715a3c59fc03768d65"; - sha512.doc = "c469f7beb0e99c8a9891c4222171525004c63e9feeaea9be57e663541ba4e2f259d2a3674f3029e4609fc08292d749f005f971bfcc542115d53e1845a02680f8"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.4"; -}; -spacekern = { - revision = 67604; - shortdesc = "Kerning between words and against space"; - stripPrefix = 0; - sha512.run = "005bf533b88e602779cb71c0ab7720492e5302f6c9321ef8d68cbcba8f4f9a0c7839c5408ff6c2a5f72c18c5bb5c8a7d41a5500aeecd29ba898c209c83dea6ea"; - sha512.doc = "8c24513b5f81d1f2df44a707a5e2ee6baf66af594507a545ff0c5e0fb90412b6c03831d73cb473dd32168a6f55f110fa699f941da0626aa0b3ce35bbbf1d9e26"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -spacingtricks = { - revision = 69048; - shortdesc = "Addressing various spacing issues"; - stripPrefix = 0; - sha512.run = "df9b7518565ee8f619aaedc82384497dfbad69911c66dd68f306010cee603ab307c3af89cc3f9901585de03e1796da3d8b96380e454ab0d3d24171187e39872a"; - sha512.doc = "76ebfa44b0f992db86452e5ca6bff7b4b5285e743de595f6963afca7eb0e80f287a1eb71b2f287edd33acbc7a9f24fe1876ac6f62d2812da2f1fd89c9650f814"; - sha512.source = "1f22a7811c34d834cae307a149fd993d87232c6e1ad6d9c22c79f005b6ba06a84daa5878caf189b44b8afd39a9ce41005973168b7198f04223becc2c0e90ff6a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -spalign = { - revision = 42225; - shortdesc = "Typeset matrices and arrays with spaces and semicolons as delimiters"; - stripPrefix = 0; - sha512.run = "6e00399e0940778a6ed8326abce14f15836bcb69f8e7c67d06cdf8567330ce0482a213c7b65c2662e0fddc47ce7b684a640e133017eca314b59eefc278eb6425"; - sha512.doc = "534f2c39076a6ff243a8e4cffe353a569b493b90fc1bdcc3db43229dda3955f013de15ce1db7beb38bc9b8d972c7430a24d64c263041c82e84c799f446faab0a"; - sha512.source = "3a12b34469bbefd61112b7338c8b5d440de46837632a695b52ae18e4f297d6ac0cde7ae71db7bb0a7bd3db0aeaa83e78f33a60e4dd496cf9c0ccda1a297b4ae9"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -spark-otf = { - revision = 62481; - shortdesc = "Support OpenType Spark fonts"; - stripPrefix = 0; - sha512.run = "787774aebfb3834f1477a8afc61d2f81c32fca5f69e5828b403b58a60c2047a5afb79d50f33be0376cee57fd30ee1c3af2a6428c08abc9a058e6a3b04b8fee0b"; - sha512.doc = "69fa7131b247a93b26fb98a8a4fc69b11fc8f9f05905948f530d78abebea76852baf4535768ea925839b0e3332fe9ac61e94ef7b10762afd61024bfa934f243d"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.05a"; -}; -sparklines = { - revision = 42821; - shortdesc = "Drawing sparklines: intense, simple, wordlike graphics"; - stripPrefix = 0; - sha512.run = "5dc74f46a819a6539034d570d4bc11403cb9f4617e2e6e373cced6cf335630e4e5a3d919041ac67a8b114b2d53c56871239b67a6acd6bc47f8c6130171d84824"; - sha512.doc = "4db42aec14145d4b73fce7940563f6771c3d994955006cceac7c93c9d5d5e2200fddf6d83d15e4dde0385f982c0ee85fc844914d80aa249c3ac2e86a49369b38"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -spath3 = { - revision = 64818; - shortdesc = "Manipulate \"soft paths\" in PGF"; - stripPrefix = 0; - sha512.run = "c066ebfc25685d450caeddced161ad5b4170453307cfd21fc2c85c113bab3271b001514481827149757e536863fc2bf9814e03720d9a934c4df02321d6c5bbd5"; - sha512.doc = "ce6fde7f6fe42711a2c685582dda0bb9a4715b12a43483a76824361561cf1f20b40bc85a3c2facc90783cbc46b632848a9701d28381f0eba343463ac03ac443d"; - sha512.source = "5d85d1f8370009e0ff5f7cc25f95a1daf3604ebf03e2dea28d3ca4f08f69bf4f86859cd63796b43eab7104945204f70448a90cf95234b574f8ab11f883a1bf09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.7"; -}; -spbmark = { - revision = 69927; - shortdesc = "Customize superscripts and subscripts"; - stripPrefix = 0; - sha512.run = "5734970852cffeddd5e926e407b15bb1058d010098a19ff0f96f5b292ad9b87a81e608400779c9b827e78db768a24f719f382e159ae1a472ebf1e7b7a2644aa0"; - sha512.doc = "17281bda5938984885102aad59bc815c0488277bd5e4b0dfa7f0c48f7ecc613b7b6716dddebecc97586e18059ec06ca95f6757ef3a355252f5d2b8cfd7b62f18"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.46e"; -}; -spectral = { - revision = 64528; - shortdesc = "Spectral fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map spectral.map" - ]; - sha512.run = "e260d7605cb89a7ff33f530c5f6448f2ae512e9ac1b22880f3d76147701ae458fa5acb3525d49cae3973c24b51858ad687b76f5a00ca8d914edf4e329f3dabc7"; - sha512.doc = "4fba6fa0576a84b05d0a0bc3520ac6e08dbedb7f37e5af5a0cc961c80deb98d53065be3c645c0eb0dc08a495d113e72f4474de32dad5d080ce67b000aaf4042d"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -spectralsequences = { - revision = 65667; - shortdesc = "Print spectral sequence diagrams using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "797f7ded1824a025337a12b47a8b85d16d69b8e0f7999015c0b8618ce639f97a5883f1a694a22b56de4a237901e1a43b7cb0f387bb02f567301e59203b16d31b"; - sha512.doc = "4c876bfdbdb40b6d1b58d1640aa39f02a29097f0ddc1015bbd6b415d0d7aa88c90c0d45edc444c69baeeb68741320745157466bff3242daa48526a1ebe21eaf1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.3"; -}; -spelling = { - revision = 30715; - shortdesc = "Support for spell-checking of LuaTeX documents"; - stripPrefix = 0; - sha512.run = "ec32c627f52e1cc08f893aff21d43519ac30169772e82793525cfd61c302883c9c0c8444f2d51cd03a94f55e1ad589afac1a404a47b87ebbe7855acde887e511"; - sha512.doc = "a51b8fb45701d318dd9b9736830b83ac34c84b781d61a3a247263167d527aad7cdb6e1917ce260d09e0304fba38bb2e2a25288f75aa2335bef479918036e1221"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.41"; -}; -sphack = { - revision = 20842; - shortdesc = "Patch LaTeX kernel spacing macros"; - stripPrefix = 0; - sha512.run = "b2cd588384770e0d95bf6e5c6b67df0ba8160e0a01e3f64932d67debcf9fa836212aafc78c79b8d28aae8124a25aff73f4846db514dbfc0a65a519eba75fc52a"; - sha512.doc = "6b490ee2e736a6bf1ddf32d5db605ab5fe77f079d585c2e377bda73a688a7de575b99d56c6626d9888c395f6a4d181cd0b42e77dd5673c8456bb0e029510b8d9"; - hasRunfiles = true; - license = [ "free" ]; -}; -sphdthesis = { - revision = 34374; - shortdesc = "LaTeX template for writing PhD Thesis"; - stripPrefix = 0; - sha512.run = "44c467fc1de689bc198acfa224aa1109c47bcdfce8b161673752f73d59877465b0c4b87f1fcd4a8f589a78fb05ef5efd42edaff2fbfe7910a1ab7b409d9a7e5f"; - sha512.doc = "cfcd8c02c68a990cda426d737914d195c78d98e0b8c9765128aa8319d47d27163e7d072ea50d312a394b85e8ac1e580dcbd204fcf6b670b4dc519d1f09ce8d72"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -spie = { - revision = 15878; - shortdesc = "Support for formatting SPIE Proceedings manuscripts"; - stripPrefix = 0; - sha512.run = "282ee645ea5022fc0e325bf211b358236f07c6509883a254fa4e1ca0728fd73a4be8889e4919eb5e0ea9c203300359808b4d141d71d0c158a71a3d10d982264f"; - sha512.doc = "1242f49f1499b798977eace516487543c23dca36471b1e49a2b1377a84083f40a3d5a2e316624f8ac458b61c2cfa406fc3580209c9629739dabaa2fa35e6b806"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.25"; -}; -spix = { - revision = 65050; - shortdesc = "Yet another TeX compilation tool: simple, human readable, no option, no magic"; - sha512.run = "e0447cedced73a9544b837c555f3d42995b5fa5e23ba737b6794e11e7fa391969c2156ae89d6e7e18140dae0e0c9b0f2d5d6036c4fda3d236790abb21fc8d9ed"; - sha512.doc = "b783636e01e976f3a0020d6e5b8c87918277fb0caae09057e68b2e216e504618f0b784b1214fdf99fde79cae5a6169c585bacf093de149a99534ef7069e6cb2a"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "gpl3Plus" ]; - version = "1.3.0"; -}; -spix.binfiles = [ - "spix" -]; -splines = { - revision = 15878; - shortdesc = "MetaPost macros for drawing cubic spline interpolants"; - stripPrefix = 0; - sha512.run = "f040046978cf51bbaf3347406e224fe60a85f449c1fac1703e7a2d936140b099c14ffd488ebe4c3d932b35a8380f943250734a054ea5165ed26b2be712ad577c"; - sha512.doc = "08532f43fb7aac979e78d30f27f36047d7b70733ef6bdd65d26a40e6818f2b73852d4a6ac5eeae8cd29fc86e1630d2ba068b9707666f66a13e2090a6da81ac25"; - sha512.source = "dd23ff4702f70ca2f29950e2e1c915dc96f9b0951b6f00ff94371ff80fe60f20d8de517a9d9157db9518cb51f96f1f52b8cd7f080af7760c926c5d29649844e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -splitbib = { - revision = 15878; - shortdesc = "Split and reorder your bibliography"; - stripPrefix = 0; - sha512.run = "2936732fdcebff683e240e139ba6e1e4268dc72e427bd30af0590cc3dd7dcc8dd49eaf6f007e549efc5c429fbcea2b37f9e68040d1ffb023162c571341abdb40"; - sha512.doc = "df266ae77aaccf91b08931c57b01a9eefffe6a469c4cc549ce41640dc9c9041676539e1302aecfed88d19baef277f507ede8ba6f794dae6ea4745b1338459d14"; - sha512.source = "72a8da016f943df7f5e2d7cb05cd1a64e222ec0c3be784ac21e6aa5f571c9e76cc3e8a5716444aa1033d5127af8d82df5cd632a884fe17f08c55e08d38956e3c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.17"; -}; -splitindex = { - revision = 39766; - shortdesc = "Unlimited number of indexes"; - sha512.run = "858033eadfa82b4e40a388356f64002370a5f4fc2c95565eae90c68373f708a3c9827fc4e0ba8094659382aba4e5925cba86632733b15d85ea6a82f73ace8737"; - sha512.doc = "c8dd92e955fcccf71b412d9750fff7b6f214e929ddf194a6496a79a146f4837af3d773ed3f2303546727cc4a8fb9d5366dd75b64d3877e6121ce20315f71997a"; - hasManpages = true; - sha512.source = "8aa928bdf6f2e8fb6274c1fe8d0b4567d03a1c6ffbd078726bf6a36ff1bdab981d5150cf0250602a64d2a0a9be92695fdd399c04d041b7a9579a7d3a71910151"; - hasRunfiles = true; - scriptExts = [ - "tlu" - ]; - license = [ "lppl13c" ]; - version = "1.2c"; -}; -splitindex.binfiles = [ - "splitindex" -]; -spot = { - revision = 22408; - shortdesc = "Spotlight highlighting for Beamer"; - stripPrefix = 0; - sha512.run = "95a7bf0a9e04e7157fe27499a7a2d2bf3e8d86f284e9c2d150c40b5efc1786d4820af20ccde7f5b649a775d7a13d25a78347138a200335fc0b9e4165dd3e1f0e"; - sha512.doc = "26ee8b13622a46078e8199c818dc353801af36afdbf67707a6942202fa458e7cbe9a000a4ea022d0dc4ec6ddb3a63c6adadf240cf207778765e47b2db636ea5b"; - sha512.source = "96438aef76ade4df7f4f49d819f96792a28dcf3a0f5e50498f854c047a7754accd31d679d034886eafbfd32c0d4eb941e8a888a1ea94fb332b8b48912d0f673f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -spotcolor = { - revision = 15878; - shortdesc = "Spot colours for pdfLaTeX"; - stripPrefix = 0; - sha512.run = "6748982e7007323414dd8ca5f1ede105bb2bfd0b0f8d2f83c8731926628c094c8c08f0cf4ddadbaa209e182f8af83ed6fb761142ecbb97371752473b33c44ffa"; - sha512.doc = "4055f42161bd45dee74974358eabda875e9a3d62690fec0486748cd7fe974af133c24e56bcfd240c6928334fd9c7e1e6a6935c45b974760b41f7ce080d44f568"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -spreadtab = { - revision = 68256; - shortdesc = "Spreadsheet features for LaTeX tabular environments"; - stripPrefix = 0; - sha512.run = "f808d82cde55b9b8fbe0cafe9f2e67acb19547e85f8d48965ecc6c8ea70302b9ebcf4097330707780fddaf1d9b2a2a12512fe4026a0d660c5a376fbcffdb6f19"; - sha512.doc = "a2b57066ab198d88be6736572276593cb2b31a9c6392f74c68358d39a8c88077266b2138730225b6ef54245a6f084aa73dad5bbd31a77fdd8b60f53f7342e25f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.52"; -}; -spverbatim = { - revision = 15878; - shortdesc = "Allow line breaks within \verb and verbatim output"; - stripPrefix = 0; - sha512.run = "0b26e941f77264ae2db7cdcf2c4459c26601f6079e0bad24a3ea0edbd22157c324bbf50426a794655dc1aee710092cd9b662bb401838186e42657fcef5c1121f"; - sha512.doc = "245825f18ae835b984eb6474b927a579f80b6c6feefbfe02a53f8b7ea5a48023e1bdb43b39f090afe4ae42937d053cbebfec6ff97d7732d754287401a95fc641"; - sha512.source = "23f8eb04b0debee1c9babc4ee6720740a4e64a28969365c27c96113cd777e0565b19d8f6db233470cc600733b1831463881d86eaf4b4119cf60bd3fbbf3d0597"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -sr-vorl = { - revision = 59333; - shortdesc = "Class for Springer books"; - stripPrefix = 0; - sha512.run = "8a9b0833bc518b12019d2d474a70760e3b44766751485215c746b8a7c3b9ee1f9e92a5cee09c5f961fe97387855627c6a385b7484564556e0901c08c922410dd"; - sha512.doc = "774c91361a95510a356fb7fbb70f753954d30d1ac309c1cf09727a2c9ea647b65f046d3eded8e631b512190f5705eab020abe8b7923ee9d6230c6c9fd782dea5"; - sha512.source = "fafacdaf874ec094aea5451962c3c79584da5fdc1e0aec34b9965b9c8531d19538d362b68ff1d07073aaa3c24483214168b942b6b4e0391384c69c690620d9a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -srbook-mem = { - revision = 45818; - shortdesc = "Support for use of memoir in Serbian"; - stripPrefix = 0; - sha512.run = "5cae41da74957078b2b0ed38c9fa4186006f24abca804b879641b4bff5324950b1a59296c5733fcadd2ef05661ff1dba8cd7d9a2c5f9e2a5c6bc1e6d993ff218"; - sha512.doc = "5e06fb85b3398cc65372fc0c82eaae3d807c6c908eedbfa8f4ea593ea6213790c3fe9c5142990a9b7d4c267ed01cd61aef4fb950a0c2b51424b0ef5e1f2aa520"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -srbtiks = { - revision = 63308; - shortdesc = "Font STIX2 for Serbian and Macedonian"; - stripPrefix = 0; - fontMaps = [ - "Map srbtiks.map" - ]; - sha512.run = "7caf4046990b6708f753ffe9eda73f564fd1d18a97fbb78d72fc0db72e0b8a2af2974e6348ab2f62973805398581c7bacf6b9937fcfffb33057cc3586e4de6cf"; - sha512.doc = "1b393eddee48395dcd94889c3e5d530c9c4ec736e41f901bf6a66ebb9d4929f363407d026ac9824ae82c852823e9f4d87a618ab4aaa0cc25247c3be03ec00f31"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.0"; -}; -srcltx = { - revision = 15878; - shortdesc = "Jump between DVI and TeX files"; - stripPrefix = 0; - sha512.run = "2edad3f8b56fafc034d94a3e3240190a8f4f1a1054c9b81d6dd9fa5426abaec0b29118f7bbec909ffc3534693b8941fd4e44b6670d7dbcb852fa3a056ba63fad"; - sha512.doc = "1f8428bccf142790a3221d470fb66dcfba40552da0d8aeb9cab62732c5a5ee0af3a565774e29822ebcf0c1e4d7a2bfffc61a0944b762ffbb7ff4e8901a61ab48"; - sha512.source = "497aa5f6bd5dcbb354a4abf74bf8276898148f42083a0657ac9dfeb4374038b4f8003b3ace3b4d65b2a08334c1cccafda371e8546def7e44f823212c257d42a3"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.6"; -}; -srcredact = { - revision = 38710; - shortdesc = "A tool for redacting sources"; - sha512.run = "9e11ed88fbbfc0130f43fdecd8fb0b3eecbdf50eb33bdca57bd34c860cdfe84dcd560371efba4cb261e65aaf4577306f478d1c43ed89152e7e21fd627eb7328d"; - sha512.doc = "dba9916acf75e800af1e581b4276e82bfe4c421a500a400773354766b37849568c1f19752a75983374ca41f793903f9776423888215f00376db1e0f5f3b3dbbc"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.0"; -}; -srcredact.binfiles = [ - "srcredact" -]; -srdp-mathematik = { - revision = 69288; - shortdesc = "Typeset Austrian SRDP in mathematics"; - stripPrefix = 0; - sha512.run = "168efb5c07ead0dc00c318928d717b2840e162517486ce1351412d7cf5f5cb8807d8016799510c6db48210fe517485fc344eec8f3edafa587cc55d1e6e60a005"; - sha512.doc = "318b530ec453df35135ea57a514574f71c83fca3f63c85e36405ed20f84a2438951325d9a30bb9c5abf2dbfcb5b2829811720b7031a68b2ecf9d19170e4ec235"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12.2"; -}; -sseq = { - revision = 31585; - shortdesc = "Typesetting spectral sequence charts"; - stripPrefix = 0; - sha512.run = "25d3d2af859d8ce83f7449470be02bc4bc77b8ac49c4e10f49fdca51b0a85488f01cbf5f826b07fba12806c932125a35197be2c7bcc330f9b6f51a331fbc77c6"; - sha512.doc = "3b5516fa412aa19fe8f3d23706b3046b6af698e8307db32cb895fb13eb876032c5c3fc908a69f0e18efc2ac5802a95957246d58248dd05e1fe25409d46a8bd20"; - sha512.source = "b86247430a144ef73ce271b904096368291a6581de3e1c7627d38751c102256e77d82963d86956d9a9dc8e2fa16aa6b8b0a15dd02b4468cda88f70b19e856711"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01"; -}; -sslides = { - revision = 32293; - shortdesc = "Slides with headers and footers"; - stripPrefix = 0; - sha512.run = "5809b9968b16d35d5f76f185687c683512883942f8ff3537a7dafef3a76e5fb017a4bed36dfd102fb5edb93648148861c78f6f7e93aaea8c5cbc8113c05278a7"; - sha512.doc = "4a0fde19b43390f80d6d671933ba51b0be854d774d6f35f3e8fb33653ef7784df85871dc4fdec03f2c734e819af6c1098e8be152e0bd42740ec2f4ae53c38f4a"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -stack = { - revision = 15878; - shortdesc = "Tools to define and use stacks"; - stripPrefix = 0; - sha512.run = "897ca71e1a8531485d9807743e4549a994f5e6e22dbb9a958466d4bfc7fb1b4579af0d7ef701146b8142c394fcbfca70bfdf28779530e487a0ec868c77985c23"; - sha512.source = "d10c0b9555df5643d266cfcbc51970cb7d606c80053225e4c3891b49f59fd9831c89f8be97d41e3e70b8855defb2af709190631e71a470a061959486162d5ed1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -stackengine = { - revision = 60019; - shortdesc = "Highly customised stacking of objects, insets, baseline changes, etc"; - stripPrefix = 0; - deps = [ - "listofitems" - ]; - sha512.run = "15327eda5a6eda2b58055efc419ef50b8d8cf8c35283bcc41ee85e354f61ede6efeabf5e75bbb4cd022b95e52109bce1ee2e28fc701c5940723f3b15dd44c75a"; - sha512.doc = "a0edeaed3766af88d1c5e0508fd285382850bfd072cf4f6fdc1c329c8ca9f5e1eb5fe75357d9a86dd8b2476381747c9a3f7cd7dad0d7c32419bef0d37849928b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.11"; -}; -stage = { - revision = 62929; - shortdesc = "A LaTeX class for stage plays"; - stripPrefix = 0; - sha512.run = "8472bc96265ea7fd3be748f147238b6852079ba002f9c7548f5a5e8cb0f34a8155a799635ee5e31b22bb30554795a6fd08e62312b25ce83e727e10f6ccd13f37"; - sha512.doc = "82df4a8fa154a09cd8231c21f3a450a089796306e8275b17291bfc903ef00b316a1ae0a4175637294ecbed0dd6eeffa7baf134d60352284aa07e0a1a0224c205"; - sha512.source = "82255aaf0407da34f219f220deb5b12edd5dea55f168a4ae11a5bc5fbc6144fb45d7e79a4d9562405f838955e72efc3a5533269f05b493a48027bd35713ddd65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -standalone = { - revision = 64677; - shortdesc = "Compile TeX pictures stand-alone or as part of a document"; - stripPrefix = 0; - deps = [ - "adjustbox" - "currfile" - "filemod" - "gincltex" - "xkeyval" - ]; - sha512.run = "8e74a676232ffe9fbe93ee3a1095c0c29cd65bd23f8e4602308d8fc1abfde9025c01e8ba379782d4c79d3349b4298806419735c624436a7b0c93e2170c592efb"; - sha512.doc = "358fb3b29f4c2d37d03b7d98ee02b35ff8571ffaf30b8d3fa1a9b0f74965ca4b0bcbf2a7172b8771dd3f1240c7dad1acccc7710dad302411dc43a301149597cd"; - sha512.source = "a29880dfca00e77b19ee828333c72f7c95a26470b8edd5ecea53bae3300868266ad4aa0db2bc6e16f72c14493b43659434ef4880b025b5bccad3305d0ea18b33"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3b"; -}; -stanli = { - revision = 54512; - shortdesc = "TikZ Library for Structural Analysis"; - stripPrefix = 0; - sha512.run = "2273ba6dc99762490a0cd7af09edd5c4a511ace7317e62874535946bafa69c14f02663afa21fbc54753d1b5d3884858ae93e4790de7dfe4a829e4cc4ecf4e004"; - sha512.doc = "e4405c8903478ad2b8a5c524666e2fd4aa99dc34dae2d15ace5de7ca4713a6964467f18d4ae2b73c02316bc7d0e51f12e82312544e2e44d50eb3e4ca51671ebc"; - hasRunfiles = true; - license = [ "gpl1Only" "lppl13c" ]; - version = "3.0"; -}; -starfont = { - revision = 19982; - shortdesc = "The StarFont Sans astrological font"; - stripPrefix = 0; - fontMaps = [ - "Map starfont.map" - ]; - sha512.run = "1f45f97813f5e51b45e1cbd3246b877aad823895a4b087294d0754c560db5796d8b4f9d09972b5c90c4c569db82a2d70bd1c39a9dfe6e1fcc4e0deeceb44f876"; - sha512.doc = "def94e1e2995e20e282d9319f763ddbc5e152a48c18ba98ef4d168e69a9a6deb5d7d87923a3259553f990f2da73c78929858852c6165acf7a94a6010382f786b"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -starray = { - revision = 70604; - shortdesc = "A structured array (of properties) based on expl3"; - stripPrefix = 0; - sha512.run = "69d5bbdd999a47e4dd15d01b9b34bbf4bcede27dd60e19c7c10b4d85257ca38448b924e900c109d2d40e5ddc1b7a0e1b9abf76248a60d08c44805c1d1ac7d814"; - sha512.doc = "1fe545c98ee814c1f6955a1b75ffdab665cb18b071bc1c833c9a595983c15eaa211b990666768ce0e4eabb336ec11876ebc72141e3cf9aca2dd9d6686d5476ba"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.6"; -}; -startex = { - revision = 69742; - shortdesc = "An XML-inspired format for student use"; - stripPrefix = 0; - sha512.run = "65d5b1c2f5b49f3ceba1fab6021ea4445aec25f302145586331468d727a9cfd992e444b0e53f3aae132308492f15d8f76c5c18cdcb405d9d06dcef6a443a4e23"; - sha512.doc = "a4693b80da94c5644e85c43b93a73ca385097fd2b395856d497e5a138b54063d98d59a8957937d2e2e6ef8948f59d0b1cf74defe50de0b7c5c0fe3c1da83c9a6"; - sha512.source = "e3d11a95d9705f18241f2f31e2dd21bace280b82d9edb5de765f0970ea9367b2f502111222837c328486b68875b59828d73b718e9fcdbc4b5b5b16da4fa900a1"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.04"; -}; -statex = { - revision = 20306; - shortdesc = "Statistics style"; - stripPrefix = 0; - sha512.run = "66fb0e346ddd4902ac98a90fb7d0b0193d8c8166aa30774dca1f5b6007a3e19c3b98e25bbc88abc379e199720b6c9a2c73caabbc515db2a54b2a8b437c5b270a"; - sha512.doc = "9851bb7e2e9af03affa1f4b5750817543be9e985e02d06ca4908ee1ebcf0eea2b8d75a25cefdde3492efc52d86be5bde6fc2f6a99f935c183cf3fc9041ee0e25"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -statex2 = { - revision = 23961; - shortdesc = "Statistics style"; - stripPrefix = 0; - sha512.run = "dc823a25cdc70bac79c69e721feba69883a99e9e0a5b211398ff0682af4fe4bb1c4a7feeaecfc7c12d2df876b8aab6be0cb8868df8b8eaaa10850042615226a7"; - sha512.doc = "6f0b45577bd4383359dbeb592c3f9e3c1a66d1b2540cf6027ffaa20f8f644316cf2feb0e585f42801b43b529632efdea52fc2c83f2a6d9347cd443da27259646"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -statistics = { - revision = 67201; - shortdesc = "Compute and typeset statistics tables and graphics"; - stripPrefix = 0; - sha512.run = "dc3e9516f7bec533adae533d73583871101f26a42a96e6e0afc99f57b2d11797c1850113630b128ead90997fcbacca1bdfc17ed70d4854756cb3a14fa4133d99"; - sha512.doc = "239231ce3eb6e75450e4eabd722a6fe2149e7825236c2d028a0923ad53ac4bfc2296a5d4d8f80b70bc24276f77f9b6b79f2e33debc03106b5915cacceb4d7040"; - sha512.source = "a35c628209828b5c595dbab9596a3e25255dd1d61986c8108125e45bbbef7806b9204791d59ee23ced7c486f0a39271b15f0bb6914f06cca379ee6072f31cf97"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.2"; -}; -statistik = { - revision = 20334; - shortdesc = "Store statistics of a document"; - stripPrefix = 0; - sha512.run = "2d2455227b5db15235763c4fa677b549380d66f2485d1d53c2c607f96bb4b4a176ae9868419351f691f3efc3117e6e54be3317040f2a6f8d1d105cb86709f86a"; - sha512.doc = "88b28820b5d2a4a304c26658e27da7d673bf430a6be3ddf46f5eb3103abb7e8d20b03e30b65b88583960f9cf3dbebb9088330621b99e1eb9f2f28c0684638240"; - sha512.source = "d37bf82f0830e14c500af27146a1ae1a80bf4aee3bb272429c7c2351366e2fdb51b7ba16ab6459b7cbb8abe2d37870b7bcb3fa43582e588c7cbbb889ac1e3859"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.03"; -}; -statmath = { - revision = 46925; - shortdesc = "A LaTeX package for simple use of statistical notation"; - stripPrefix = 0; - sha512.run = "128532a808c4f8cae9ad03d19d9f70673427f9335d298d4840776ecf59a78b0051de64093f00510ef34c61d3e2ab900d4494f800eff8183a4c8451bf90a1424f"; - sha512.doc = "14754afa159041c359c85d31d8cf3483789b02a7057f59f6772455ff7dfbaaf81e793db3bbdb8d1a67e25de7a00f32c22089e2cc908cb1c2e0abf6a17eceb7fc"; - sha512.source = "67329fcd533335927638057bdafd76c3db6e49abbc23c63027623397ab35450ba811acf61c5b3ef299077cc92a14df3f0d66076a8f8a2d009ef9e4828ebb533e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -staves = { - revision = 15878; - shortdesc = "Typeset Icelandic staves and runic letters"; - stripPrefix = 0; - fontMaps = [ - "Map icelandic.map" - ]; - sha512.run = "f6a1aea97a3293ffb514ccc526faa71ea5ea3ab32990da8725cc3ff998d15a2909001976d9705ba13110fbde869001bec2f286e58c05f1fe31f345ecd5882482"; - sha512.doc = "b839484325cc6d06a407ea685dd705b3616d1e87f22d4a625c20dbc507647b602417a085328f9ba886766ee0fca2516da397c742198569477bc1009271a4db23"; - sha512.source = "9dbe40efcd1699cc9267b739bc1b182fc0e5dc23ae52d19ea89c1742b815e4ea9b7612e4fb80aeb83f3d9206ab408cb0ca3fcb99c85883fb86f89f3ac26f0b5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -stdclsdv = { - revision = 15878; - shortdesc = "Provide sectioning information for package writers"; - stripPrefix = 0; - sha512.run = "88d8abc04d10f029a9ce0fe9025497afe3eba3dcc300631fd37baa8174bdec8dff44fbde07599ac8dd6635be27294c359c77178690a4e6c97f41d15f9d2abbd4"; - sha512.doc = "8321d823ffa159071f66d87d38fa38ba3af03f6c69999a041d765f0fda8549547da4b8eae86efce82109679284dd912f2c5494b5ef6e76c73c467cf4eb87aa2b"; - sha512.source = "4a9987bcbb557b7923c6c2a5c58dd117fd7b56f58b3df55154514075b68bc59a8928fdfe275dbf328ab2bd5b6608b193ad5ff07b95e7bfd2d79eb632837e5469"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -stdpage = { - revision = 15878; - shortdesc = "Standard pages with n lines of at most m characters each"; - stripPrefix = 0; - sha512.run = "a3835f211b744dd88e0238a01f0a5f960305f7eb92bbd9e3437474971173e66c84cbee1d5ab3f1aa1097a262a258b79085fd0d86884bcf3acc4017e7885968cc"; - sha512.doc = "77510670a49db00b185e6b502d07bd85f9ca18bedeed86277c7d51abb582f40c793c665f2ab87435e90380f7f6f740b64c937d2171531a419ccc59bed197b90f"; - sha512.source = "2973110831807b73409be0082c5aa281b176dbe7174b736cb9703b0c75ee918d1135fdf0513bca5dc48bb996d0067c9201702b76212eb632073f9b0a17b00d55"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "0.6"; -}; -stealcaps = { - revision = 64967; - shortdesc = "\"Steal\" small capitals"; - stripPrefix = 0; - sha512.run = "483580c347831e7623c75dd087fd6ce57f3af84d0bc28afb5a95f5193ac4e4594f8d9b6a45b8b62e988519208510e0acc7e32f720df3e1f90065e90d06b33900"; - sha512.doc = "3fea8ed1b6a50a2f5a95da2d9d65e26688886b55bad60e71404af7fb8d83664383e3e0b19cf3e52433ddad75da57a99abd16b6b40a89d620464b5cc4a64347fa"; - sha512.source = "7dbbb83039cd65e127705d7512cdc4bd4aedbce7837bee7f0372070aed8373dffd4fa0087c34707c0d5c18d3afc72e597e6514d82d390fa3e3ac1c308a1bb637"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -steinmetz = { - revision = 15878; - shortdesc = "Print Steinmetz notation"; - stripPrefix = 0; - sha512.run = "8ff095645447f9349d2b35ab5ccde72109eddcd85ad3c9de262833320ffcbe94c2fb08df5323c69fc64cdf173ee7193ce2ce887f1c033997455a33f290cf1884"; - sha512.doc = "e409db74c366c5f49011a6e21355150e3e97d16c1e3a7fcbf06cc8aa0db2c01288dfc60b3c79e539936077e452c40dd601490be8976c57d01f9a5a88a3798093"; - sha512.source = "c18fde06e32eb4155921bdd7e4dca7ca108139859545c638f562f82deb6feec904a53870c929482504ddf28858ce5ad3c5abf4148b3bfec0193f260af432ebe9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -stellenbosch = { - revision = 68039; - shortdesc = "Stellenbosch thesis bundle (legacy version)"; - stripPrefix = 0; - sha512.run = "8e368dbba7713051fd9a834223848a2dbce700d9ea8cfa2ccd04a3f2e88cb15d5ab1d881d4107dedc72bfe4e6876e5b7bfbd019cbf5d9d7fa152f4e6343b5aba"; - sha512.doc = "0996a6932b4a6953cac70299ee655349f6b7723b416e3fef10934de92844de2dc4da42dc5d3c3a3939edb0cca087c2fd28b0d222641197593e9697891891da20"; - sha512.source = "c1b4c3ac30f5f923a3b0893f4921fed69d99a0fd07f6de7cc728c7e95a2250c1544a5f60ec8331ca912dd5204f273c147492559ce08f6233fd509076db116d0d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "11a"; -}; -stellenbosch-2 = { - revision = 68183; - shortdesc = "Stellenbosch University thesis bundle"; - stripPrefix = 0; - sha512.run = "ff82ad0faba3b5742d1f31d22820cb4998e88630067dbfbdaa7bc01fe4927fc0d8f10afa1713551759048a9166bc6d86cf52561f72bb743197b7e5fbf911cecf"; - sha512.doc = "9314fac0288fcd9e0e6040b3fe3276d52848693d33dba16af0b2e6f4bb79a2ea3258dd29e5b62bd90b25d8a02e9cf160833750b0aa99b8d09acefb6c8727bad6"; - sha512.source = "bceed8029e35a4491999fa92d6fd046862895e4214f83fff06fad39cd82105d8c494d78d6a449c374ad678aaf727284e6367ab9136e106dc4266afbf1f01b367"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "2.0"; -}; -step = { - revision = 57307; - shortdesc = "A free Times-like font"; - stripPrefix = 0; - fontMaps = [ - "Map STEP.map" - ]; - sha512.run = "d1f19415ceeefb879a3b4017fa286e5e5806e193fc75159b515fe21a9a6093c6a95d04e2e2e3c7ee457edb8ad717b88043c58727fb3924cb192e05aec12c5c07"; - sha512.doc = "bbf49f36bf7588c83e237d58d49ff7453c368cbe7e3a32c431944a2249c0dd75c2c1081d10bc2279e0836384602268ad163ffa3eb7108cd28a6c510a18f001c5"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.0.5"; -}; -stepgreek = { - revision = 57074; - shortdesc = "A free Times/Elsevier-style Greek font"; - stripPrefix = 0; - fontMaps = [ - "Map STEPGreekTest.map" - ]; - sha512.run = "c322bb089a887b36c4008502160f0970ff2ca33f05391010adc38c12726b2079085bb1775934597fa1758effee14eda76647b886644971e7c40a451154e446f9"; - sha512.doc = "c3f4c2b1ea06a012ba4d5f5ca72faa0a6c1b4ae5c132b17bda0b6bb895f34e555724f93cd791fad8c6ff846027dbedd723f874ae1e772de95c64bf54f5fa0265"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "3.0b1"; -}; -stex = { - revision = 68569; - shortdesc = "An infrastructure for semantic preloading of LaTeX documents"; - stripPrefix = 0; - sha512.run = "dd17faf11269dc6dc5e6068bb956a36b2af86775e296b15110d0c9b6e1e8b8410b936deb690c7a89d604c012b5643849e8abd317ca67cd872469f863511deeb4"; - sha512.doc = "0a8571fab8eaefb365c52cdcca251f2582d4581f6243e678db90c2c05789cf55ae077ba3216a9318a1bacc172b259ec444b35d8de1622435d4a02b5611d141c9"; - sha512.source = "6efe24e0933790ad7c3477e9c1d25c37b585ed0e18ca937326102783362691d92b51486885a3d08c1581110a2e4e9f7182f706ae4896c70f69472e01ef1ddea2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4.0"; -}; -stickstoo = { - revision = 60793; - shortdesc = "A reworking of STIX2"; - stripPrefix = 0; - fontMaps = [ - "Map SticksTooText.map" - ]; - sha512.run = "aa2ede628a273b4fc0796153d243bf89dce6d3c1b0097b29327bf21836340d11f6e6368f312d76ff726030c05d012c3890f86277ac7eef79d5c5ca579f47cea7"; - sha512.doc = "e1437dd3b47c8799b4a8a60fcfc215a303f1eb289e0424e51d29fad78c9fb4cc4890896baa77251681d000f2eb08365f9f16a2fbc1c37881b852790257432088"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.035"; -}; -stix = { - revision = 54512; - shortdesc = "OpenType Unicode maths fonts"; - stripPrefix = 0; - fontMaps = [ - "Map stix.map" - ]; - sha512.run = "7e639f7a534e24afd9d009e224d87c9c2a502cbc77ff882c6dcc9ca0bff512f849d1f3e658dff8badab3843a658171b88ab66d8e731392dc456f9c5f4e032318"; - sha512.doc = "b01c3dfaa96a6bbcaa83e803514c8090546dcdd54595d7c66a1ac280286f5baa98947fe9d513da3d8baa1e83cdd174443751fc79c07cf66093af4e9044fd9010"; - sha512.source = "594af38fdb72d632c36cf6ae6165518553b10127281ef8a6ec71f4ced16481f2582a13f1f6f0ee98e900c3147c574647c508f7c9e51afdc57ce68614a394d007"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "1.1.3"; -}; -stix2-otf = { - revision = 58735; - shortdesc = "OpenType Unicode text and maths fonts"; - stripPrefix = 0; - sha512.run = "b966a7d18a471f13b5eb85115566ef4aa7c894b142561a46144e5cda6a0198dfcd83b776d19d605cffe482d07a4ac9d80acde7879892381e1a266e7af4f9f72e"; - sha512.doc = "15e370d490eb01022877ce01cb8e9954af89553bd0cb2b404820c8744271d13ea32c75d2971abed4cc64a692184fb0fe369bc97bf870524599b2011fec3bfec2"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "2.12"; -}; -stix2-type1 = { - revision = 57448; - shortdesc = "Type1 versions of the STIX Two OpenType fonts"; - stripPrefix = 0; - fontMaps = [ - "Map stix2.map" - ]; - sha512.run = "802ea99ccb3b8e2e727537113843846dd6629f722508219be88cddd9e7f1e6f67a1bf48ae3a61c51991ec91ba5c543467d3aaba64116e4be08707def58c70f34"; - sha512.doc = "b4f1e6e8962fd77ecaf0df94b156783d9f77c07231e6cc258e04c26a8190dcd0a3175c71bd3a1187ad6cc083595ee80925712f12e0f838c474ac93701b47401e"; - sha512.source = "5963bee636210eb89d31ea8d5954468fe9959429d516fb988c8ceab3c591f53b47a5a77df8f10d8e20f136adbf2fe23f546fa62b1768db7164ed74fcf706a228"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "2.0.2"; -}; -stmaryrd = { - revision = 22027; - shortdesc = "St Mary Road symbols for theoretical computer science"; - stripPrefix = 0; - fontMaps = [ - "MixedMap stmaryrd.map" - ]; - sha512.run = "8abe58b84fff2f4fd6846b6c267f3b245fb1dfc2f38d0db54ce7cd9d456abd07627247613073f09dcf7e11e3e9c5940d8ff657327232ce638abc6babcc5b3d77"; - sha512.doc = "caf883d1c5021b52d6471c4c2145e708ac3c05c8944eaae621a3ea7b602b683ba2ef2bc0052f9caf67adc1415e7db02b5b55d3642ed82727a926ec193dd984f4"; - sha512.source = "ebefe2836daed0dd4db99517af0f40c73f0a7b19453d5415c80ae6cf723f4ec4e4ae6f9700a21722b4c0d9b8507c58a596697017893716111b46222f54676aa2"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -storebox = { - revision = 64967; - shortdesc = "Storing information for reuse"; - stripPrefix = 0; - sha512.run = "8f414a7bef1e3b2be8c526e67dcec5a5878430891323ad5c4820e0b304fde35e9eb8ca69e2d1c6dca623387220114f7371ff54d2ba4297b8e7d923354d6e5ea5"; - sha512.doc = "09b0b2914d8cd87b6cf070d012a5e9581a399cdee4cf73e38b5f53dae613b3957a8fb8e0a2df6ec2953038ca984e3800b7ebe839ca01af556c655ec5e27f3065"; - sha512.source = "a48bd8d8d3fcca367265706cccf14e5b8e90a9d74528754ce96436ac1925457a78e5d1fbd73a6ebae998121b6da27595b573f15a46c573f1aae06168e0100836"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -storecmd = { - revision = 24431; - shortdesc = "Store the name of a defined command in a container"; - stripPrefix = 0; - sha512.run = "1987e3cffafe007d9f3cb9e0d53fcc648eca40140f5188dcb0202a0916296651c1ab02fc589339fc51999b56bfa4a06b29701aa598ec03f51d7b1ee66ecfde7f"; - sha512.doc = "feacd83403672380cc2cfe90ada2704f98bef63e905740f8f8d50767f86ddf95478efc38fb38fccadad172f27db56045f50a6af4a487f0c5cd2b6ebb5e7666f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.2"; -}; -strands = { - revision = 59906; - shortdesc = "Draw objects constructed from strands"; - stripPrefix = 0; - sha512.run = "bc902fcd06413468d2dd3f23aa774824602a910749bc2b2cc8d4c24decc184a088190422c0f2ea58995fe627f855f6fa6e0b5ad0490b1084fdd122abebb77cef"; - sha512.doc = "95cbfbe360a515fa94d0222eaaffc2cb5920a8a2f5b0ca0a052f29f7237b58214c8f39288d08db88e97ba0694f3ac6793c7c8c90d47295841e009db46b037b91"; - sha512.source = "7e95d4132e4d1c4bb319d3ae2f4ddb10b65ca7b30d2ba6942274e0169a8d69f39d7d552c7470adadf006ee0725bbc0862a1c1190f425643bba108542bd8e4b75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -stricttex = { - revision = 56320; - shortdesc = "Strictly balanced brackets and numbers in command names"; - stripPrefix = 0; - sha512.run = "5e823dde4f0b902f59327be2f41dabbe19f569d5d05941deda33b44664b736c9ec687e98a04635c6f2af2a0f894ad162bcc4b866e52b88e5db55228d4a35538a"; - sha512.doc = "9853efc6722d028c1ccbd90bdba2b4045c45b384e7fef1949ab51b7d2e6d29f1ea2c55c3a4a580a42faae9e03d38de258528af3e37c78f61ef8704798be5ccb4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2beta"; -}; -string-diagrams = { - revision = 67363; - shortdesc = "Create string diagrams with LaTeX and TikZ"; - stripPrefix = 0; - sha512.run = "9f05bf09bb74ab07ecf1a4e6aa1bb16db06961b1caf87c73f48fe33e8174081c38eab30b0249e219a936499a533d441b092e642c88a996193900fb0000708c35"; - sha512.doc = "3c692dbd5835abd3bb87cdc8b3abbfdcc63d233cd3275d92d5073772979349c759c391f254bab3f670d65ebb55b50b4d7024b748b538349428033971beb09bbc"; - sha512.source = "632a1fa22b3bef38b708169aecf1b9c3b9bdcf4cd07843a2b12893a996a98d41d397e3614e242d6021a385dde4e563aaa011e38400c216e76bf221548996d2cb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.1"; -}; -stringenc = { - revision = 52982; - shortdesc = "Converting a string between different encodings"; - stripPrefix = 0; - sha512.run = "a776ddb2378bea0880d7c17e1a87db5f66645c5856243e49de1c56bc427213098afbca34773a44ad955a0014b969c59454d3a0c0ec371d213481668f5f784ca4"; - sha512.doc = "a4f182559d37e45ca8b6c50656d2d520e3f0bf1ab63dc6477cd6e3abe6cbb5c4b89d779c380997b167019aae6fb12ae68d5fe37ea0c08945e3383f5d9905bf31"; - sha512.source = "3febbaa990eb691af640df745f36e289a7f2bfe6f52259d6693c6c9991d719e79edbd14b35c1eba5a9033b203531fceb4164303bd6a3dbab7238b814bdb5eda6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -stringstrings = { - revision = 57097; - shortdesc = "String manipulation for cosmetic and programming application"; - stripPrefix = 0; - sha512.run = "fbc29bbf65e7d4a1fd367b03490f73bf44349427f6c1a7e826135ee9092c9b592a4cf23454919e0bcc74dc59d3a6ad072dea16096e4850780ff295dc3caacc48"; - sha512.doc = "1779de4af914b69ab258bc1f69a807c12f750e5919936c78ace4496f86200bfc4c3146dffbb27ac5977c2e8d41ec8d0139cf2a2560ba7c627dacd70b34cc69ea"; - sha512.source = "94cf26d431d3638f769166c999e3dff156bd37e02a7099129f1259b7259be95896b694a64fea657aefce22f3a1e98ec2bbbf0f6f85171ccf977068ddafbb8078"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.24"; -}; -structmech = { - revision = 66724; - shortdesc = "A TikZ command set for structural mechanics drawings"; - stripPrefix = 0; - sha512.run = "a92eadf53e3bad0a1e54246b75b10c99d84dc509ea31cc9fb30ed5541e3d757afcb60aab7fbb7515be335a2caa2f29d7fc211b561f073e25a8a1cdbcf90d2d5f"; - sha512.doc = "e3ee8640eb6650f1cd18bc111d0e4f9b6e3a8cc8ac480bc05ae8251b0e620223aedbf59a54e16953edfd4faad8b05c78a51d5756f7b8660c612b5eaa32defeca"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.2"; -}; -struktex = { - revision = 47931; - shortdesc = "Draw Nassi-Shneiderman charts"; - stripPrefix = 0; - sha512.run = "3d81817eac5cc8b8bd468537406db6a26fecdaad1db269c2ceed582cae84fc2b549eaf527d4c356be7d4f2f16f9db4746251e9b69db0f0fc3cc8acd9f39d1f50"; - sha512.doc = "261a9f7ef5036bc8eebb87ba503b604b158647e82e88844758be506ac5d389103661f681689a836c0048529446bad0d6537a6fc6ba273dd2ed29abee40336360"; - sha512.source = "98b06394519aafc81a565c7b12fb1ad86856ca447cb5ccae14aacc95bded9663a72bea301e7f5998eb9cc2a6358c978881736e564c3672eef456c6c44efcce0c"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.3c-0-g7d3fc5b"; -}; -sttools = { - revision = 60736; - shortdesc = "Various macros"; - stripPrefix = 0; - sha512.run = "4e52219c4d3d668dd52d9a1e8e0de4f547871efb9f5515851b44e1c968cd564080c87c631d8cb53c76cdcfb8df884af0e9ea1492228929098a390b6184f5ed37"; - sha512.doc = "c07922c52f57ffeeb57a9bf3b444e251f01f859f2218933889112b86d9dadc5791d7d926091eb3a2753a6ebebe439bc7037ef857b6d19a1e6e7b516fe879f4d4"; - sha512.source = "65616cdefbe3d5b53f7f888412f8ada24860d33c2cd5babff26a3ae71c6c56a4d1a5eb5dd355d557c8fd947db82401746a4928a16587a88c3dfcc19f712f5e59"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -stubs = { - revision = 69128; - shortdesc = "Create tear-off stubs at the bottom of a page"; - stripPrefix = 0; - sha512.run = "fb8276d461883c289329a74f1ba3bba5e64acaf199f7739b013f32a4fd84ab5e2d94d73482a3b70c64e156ff9332b3c81bcfa74854edcf6cc3fd6ac89df595ac"; - sha512.doc = "b2822ecb49ccd9c707cf731490c628a75b278848dcec31283c782ba72a12da8e8b7282ddabe38939e5b0c01afdd222be6991618d4cf1b73a2e06b875fab4f82d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.1.1"; -}; -studenthandouts = { - revision = 43516; - shortdesc = "Management and styling of student handout projects"; - stripPrefix = 0; - sha512.run = "2a7d8cab28b58a26633fec5845498a2987763f61b896fb747d97521b569786f114d80979956a9b9c2b94b61f01677101248a1a4c1735415703398b57306b6c15"; - sha512.doc = "10e3ff558cd5c544d82a61bc67be8b7ed0c9ec9b01550bd3d1c9d3265d1de7153832983593c0be6f5a990d33063b065b397e4ab6b7ed12b0ea79e9e49e0a68f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -sty2dtx = { - revision = 64967; - shortdesc = "Create a .dtx file from a .sty file"; - sha512.run = "f95ad4f6260657ce329c10ae1306e5ec50965c2766c3c28f5a6dd77f4884637c36ecfae28b7853dfaf4e2e5bc256713abe4c8b3525e194fed1eccdd1ea24e1ac"; - sha512.doc = "1bc66506350b07341c8c4b858c6b1c637d9f0bf48323714ee7dedd701faf20e3cadb318f56bfb1a05f4fcaf84cdd6e9db18299801a69e0359937d7852ac6a824"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2.4"; -}; -sty2dtx.binfiles = [ - "sty2dtx" -]; -styledcmd = { - revision = 70496; - shortdesc = "Handling multiple versions of user-defined macros"; - stripPrefix = 0; - sha512.run = "59af3b3ab6b045533167dfbecc3a0a124fb3f8098112ab9b80cf49a3c5c20323122a488019ec3079dc596029a38e45ba679c2448611a8f90108f8b2b59f5568f"; - sha512.doc = "0c096994a7027873f97ac1bc5f9ff1439b32cdc9b6255e4ab9fb955b8c4e60406b152a56c3a6dabc0f5bc41b26fb60ee0ba94e4d9c0202d93d5bd8f0e422ac7a"; - sha512.source = "cc8de429174607b5a27123c2c580a9cd35858fd988bf4458d7522984f8ce0d24223f9f31bfef41152190f1533ceab9d87dd8bad368446292d9b495161d228b00"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "2.0.1"; -}; -suanpan = { - revision = 15878; - shortdesc = "MetaPost macros for drawing Chinese and Japanese abaci"; - stripPrefix = 0; - sha512.run = "a9fd27694ea7491321580ee325f8b151bbcfcf6da14ecce85b6d4e68b09cdf125c810a5170aacc966835fad8f2aaefd78916920cc3e896cad7738d026450ed83"; - sha512.doc = "667d3c5590468170acfded106a2a468d9abe7b4b34a9b56d153d401a60e8f24bce99a4f6c5f2761572a42b85c7faae5741ee5b6f22c3f1004e6d6685463b9350"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -subdepth = { - revision = 15878; - shortdesc = "Unify maths subscript height"; - stripPrefix = 0; - sha512.run = "7328742873abc42d2b9916161ca43e339e03ac1fd34479e93d9eccc98a065e95cffbc920395dd6f90d90989d29840cbdf2ca87dd1d0b293dfae66abbdc6e2d3a"; - sha512.doc = "6bda8b822a4f1ac2a181ce34f739449bfb976a4450a54589e0cb4a64a0f1ff358a469fc88a37639104f731671ec474088968ab3dc95552a2d92a073d91857668"; - sha512.source = "6a63a2d62dbc47d41e78004792e5c9e6ae7b2f3c435e95bc9969bbce109293a8257d4913a5b1959d95163c9aaae557daad53e950c5313faafbd8fb8d0de2c367"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -subdocs = { - revision = 51480; - shortdesc = "Multifile documents"; - stripPrefix = 0; - sha512.run = "a38c6e9bad66582914ad4acdae213e37c2bd5658d5e16482a1700f5869762b489f85b61fdb70c04578319f2772c974267b7c9a4e302c34df87f3a01128caf949"; - sha512.doc = "46bde174536e96bb78ba40990ae3b4b8cc1fe2ef26803b193afe2fccfc05bdb6644a548a712522596786847a8fe6071a52599a17ea52134bbed2e5495bbc401e"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1"; -}; -subeqn = { - revision = 15878; - shortdesc = "Package for subequation numbering"; - stripPrefix = 0; - sha512.run = "7d04ceeb8f75cae074f9bff3e8d0aac4b529d199343c59fae7715d1023aebc3cbf2b45614e0d5ef0a95ff9bca4ff9e8318c4ddd86ceaec42d271f8c0f71282cb"; - sha512.doc = "09f902bf3b4c8e2e1f9d805102c170b2bf2f4de067cdd590b22fde6b58f4e3042d0b14d362e0af587f9fff9e2c8789bb8af4b329bbfd721ca7dce8af01612c50"; - sha512.source = "f1f7229f058a7dd80a67f18692fad36601015ad6bd7994775b573193d74c0ff7f175397ad446384cb74b3797f9f17605ce2d381327249ab9e36ae0aab756d09d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -subeqnarray = { - revision = 15878; - shortdesc = "Equation array with sub numbering"; - stripPrefix = 0; - sha512.run = "846d822661b903328ee7b199df6bd7fe5b606c13a185cbb6e6fcccf3b009f2b94396bfc3f9e4b8eb5052688536867dee06c6b9571e051d477415e1ac999fc162"; - sha512.doc = "9f47b8fb760b51a87ce5f9728e9ff76dbbc10ae009e04c9bc0c91133941e5b528e09e5034156b1dc5ff9a0c74446b548bb69c389486e68a4b8a79a7c9ed1a7f7"; - sha512.source = "f41086ca65c7821167acada640a11768da429158b4da7caa398db254be156dfb291281b1e2f4f4f58f04c0c8041c45efd2072ddc40db8673808b83b3ca09a93f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1c"; -}; -subfig = { - revision = 15878; - shortdesc = "Figures broken into subfigures"; - stripPrefix = 0; - sha512.run = "ec7ae149b99fecae3b4ee7cf600811dcec9bc44eac762b5480c6df48b725db3c08a87922edb7a524d7d2b748bf7d25482e155fd40080cea9ac62f2575bf61d15"; - sha512.doc = "8cb67139bc1063fc4d5482b51f1c3ad690c85d4f7e022a99059a7b20176bbdc97a44af23756fa220b3f7f7afdf039c4a7b672700012e96b98ee25ebb9e5c99b5"; - sha512.source = "44e7113550dcac4b14ddab03ad5ba4bc86cb3a4dcb14a31f73e5caf0b02f9f3bd56fd9d18ddae002a981e9680bc6fae5850ed07ee94e60d858647136cf9243eb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -subfigmat = { - revision = 20308; - shortdesc = "Automates layout when using the subfigure package"; - stripPrefix = 0; - sha512.run = "d607d2e79b3b0d6e99c8577daa577aa25a0a7d9aecc00c8b7026ef3a923b0e2815837d257599dcfdb1e5320305f492bf17845f5c6cd487b476e789c5140e01c3"; - sha512.doc = "6cfbc274a466796ed0478e9c43cf68d51bbf5379691ea6848968c48cabcfd54525075727463905e48b64946df9822cd10903c562a2f7d546b3d2cd2e9ef11db4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -subfigure = { - revision = 15878; - shortdesc = "Deprecated: Figures divided into subfigures"; - stripPrefix = 0; - sha512.run = "d4ca2ef4c52c84ddda85ee95328c9d3e97ef601db4f08ea508bc53393e3b2722224273ac63f749d6a922c7b42787e932d7f60ed3ceb03667fcf8fc591d4ac97f"; - sha512.doc = "46c2950db73fb557e81887f605b866827b6ae7e027a684f0d24cb3f9d5962a3d83aad97b84e61617381af8d0949057df17ef45d629e992e51c80bce3474cc742"; - sha512.source = "1295290b8c5cc814f6cbadc2be418413d35a0a1cfd313a69b05fc8e5e47ecf5da0cbba73b81f499f0085a55b7e783b9bd82b29ce1072792fa34e422596a117c7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1.5"; -}; -subfiles = { - revision = 56977; - shortdesc = "Individual typesetting of subfiles of a \"main\" document"; - stripPrefix = 0; - deps = [ - "import" - ]; - sha512.run = "8f842b0debcae3110f0a4b2f59047cd55c2726d128bf3e159f2745a4b8a645c3f8471fe218ca34c32f2b35d42d1c5023a25f09fc3bf0c1a4f0c33197776b1cec"; - sha512.doc = "f54f52c5cee01b7ae8e01bff5a4d828b5c6708c31f2cf40d7e83c8a91c4c597945695dd7062b6088d3f91f7a9858e3227c850d658ae7a7bf94392e00e3eaf9c7"; - sha512.source = "2623a0ec244722c1e3194d9ff1237305c1b7bf8c3baf6f60edd69b165bbd5ea83fb73ad23bf9aac1937b4ecf1059754e798eb2c97f7bab5d550fabbe84b752c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -subfloat = { - revision = 29349; - shortdesc = "Sub-numbering for figures and tables"; - stripPrefix = 0; - sha512.run = "d5bd48fe7634ef6deec540595fd23aea21d95d7c68d053bc65eeebc950e35064add73e5b81e92d3a3d4a4dc938448d9c9a27bd0f1a625e4a9f425d4e2d55f237"; - sha512.doc = "400b9b272e51cd9fa7370f1cf7cb354dc1235fc41d57fb07061dd08b44e06cfc17d38c1be3fd5bafb5ed6bd0404660c46c9bbbfd2fb852297f283be85424c088"; - sha512.source = "e72b55996a07665b1deb038c5924e7a71c7b7aea761a1420d4c38d64c1ee98b8663b4a996ae39a869cb12b6ef99efd09c989f937bee18f05a1eba57856dc686f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.14"; -}; -substances = { - revision = 40989; - shortdesc = "A database of chemicals"; - stripPrefix = 0; - sha512.run = "c7e3d72a506242b79e99c531bc550c81081d59c5a850af52ca3b86054a5eae42f9f1ac5c7808f54c404bee829f4cafaa1807c46ac7b994cd0f88ade1aec94c5a"; - sha512.doc = "b2900ddbd6f8618522db171c5fb8b35ce5e5ab6b51fde609a18e6b5656437709772dba683767ad23ce955463a869c483e5e3fe81e1f9b5f7523f4f0cdb87a4d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2a"; -}; -substr = { - revision = 16117; - shortdesc = "Deal with substrings in strings"; - stripPrefix = 0; - sha512.run = "979aaff088f7bd521e2af3f008fd6fb9dc908ec7c9f3963ab7b6338ece92b2a7eebbf9b4974ab87f73cc71ecf7ba92c25d22be8d1fdd297d066da72f61ad1d4f"; - sha512.doc = "97adaaa986a8540364cd6901448eb47bfbe9d53842f412100696621c55d2209807d0d527c8126d9df7b5b38b0ba2f0598e79a467934d9069fe96a2d9125b701f"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.2"; -}; -subsupscripts = { - revision = 16080; - shortdesc = "A range of sub- and superscript commands"; - stripPrefix = 0; - sha512.run = "a1578fb66e6068955c4aa69b8ccb951e79fe55616ceaac8d5f01b62d8c6e862d816e0e1ff6c387bad8b8416a3993699872b0ee3df4f432a733ded0eaa60424fe"; - sha512.doc = "b1424b69633b1c09fde52a38c2e50b6c744671292875688b295586bfcd340283c03a122c83298e8be9bf714201db35f0000c41720a6db49cc09591ae69a3d176"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -subtext = { - revision = 51273; - shortdesc = "Easy text-style subscripts in math mode"; - stripPrefix = 0; - sha512.run = "0ab32328d346bddddd37094ec086727222bd386bd24c1aa164aaa0cba85d60cf6be2aa26d64bd0bcf63f49b0188e79a7212e8b98d2d7400f828ccf10f60272f3"; - sha512.doc = "cd3fdf312f2bd7d30c3aee67309220e8e75d20ea69ffcb17106812f0423791dbeb26a8ddd3621cd48e6b3cab5c910083f49aa18b439d9f8114c08002cdf8826b"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1"; -}; -sudoku = { - revision = 67189; - shortdesc = "Create sudoku grids"; - stripPrefix = 0; - sha512.run = "0cd82916142b881bc4ea7fb9885de56d3ee724fee637eab5f1bc6bdc6891360680132cb2c3d52028cc0ea9670efdaa4666d59a853ac3f850f2642954962de22a"; - sha512.doc = "6b44d22aa120727f8a7a55adac7bf71eb1eb57ea1f33d597f06923bbb50d88c088d431f463951c3db27c2c1d68024b44992e47c83eddce98ffbda054cf98a4e1"; - sha512.source = "eda0ed193fba97a2f0ee2d435d62110acbc054ca486a580fcf0a79f3c094d6e83b4a5732fffaf237978abd566794ca6f3be56f70a34a4cac05c867e9213cf1dc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -sudokubundle = { - revision = 15878; - shortdesc = "A set of sudoku-related packages"; - stripPrefix = 0; - sha512.run = "da5c7954dda7fb8076d9b2fbd8a379e416a162ce0039a0566799bba0ddea975f3b951b7615cf50819440b46c419277a080b6e1c3c514e73483b4f81420a4b6d4"; - sha512.doc = "6878ae9a2734e5efb51f04fe24cc30546a2c812ccfd5ae62cbbbc94496a081b03f7d2bfcfa6c7edd610cd6eccd741c3dcc3441a6d437eea5f310865dd13d30f9"; - sha512.source = "00b0b27e9b97dcca17113d8f314480b2617d18603bf022631f6553f2b8a7c4e7d30e1718cfe4ce1ede7996d7ebe7905d25480c6516df4b3df65403346c050beb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -suftesi = { - revision = 68204; - shortdesc = "A document class for typesetting theses, books and articles"; - stripPrefix = 0; - sha512.run = "627d002ed932ed3f55382b50e4f19c2e98284602bf3095f352f1ad3120f2586b7ebf12653279a98c794e34b97829bf30bea4fbcd06c4657c94cec96be233b3b7"; - sha512.doc = "af2b5317858ab9d19723c668fc6af548fb4bac805cca26e7dac31872e54c35c768c228763681db34722f2a1c4222e2f1fa45e5263b183ddd51e848e643b7f47b"; - sha512.source = "298a0a6a4d627d662c4a8ca6dc7312238dd36dd546c768fc16402fa6f630a224884d8223c30b69abd4f28ae7a19d02870b01ca71608ff37dc548ec3d5f854c95"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2.1"; -}; -sugconf = { - revision = 58752; - shortdesc = "SAS(R) user group conference proceedings document class"; - stripPrefix = 0; - sha512.run = "db7082941e64a24fd7b04fd48dae2b78d67314f7483256278a8d8eceb5aeea77e24bea7e7ebb9e3742fed7cbb4add6a5d97281819ccf307b102b8265d00723f6"; - sha512.doc = "4a64c9ff5c9350b80601052093baf0d9ebddf24de17c9ded5cffb299b94cb6b4e6f0beb03c058b8a7a4c4f7cfea118cf8e95b797881ad9f77e879b228ecc2165"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -superiors = { - revision = 69387; - shortdesc = "Attach superior figures to a font family"; - stripPrefix = 0; - sha512.run = "50c352d7ee3b267ff3c25f93d5ad9d32a80f0f09cb8e802f6426e9d415ebfd8a54d3d07425c2908c75f328309e4d21173feb768c63e931658d151274ef6f953e"; - sha512.doc = "da35e722be66689020ec2052f4e096502ad63121fcb3a55ffdb724d1b557122a401e7bfa8c4c0ea2c6881b0138bd155b1e5baa7886c2e0c7d1b693e56c9e7dc6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -supertabular = { - revision = 53658; - shortdesc = "A multi-page tables package"; - stripPrefix = 0; - sha512.run = "68ff94c82b9986983b0a8b0c1e60301067aa20c92c2576e6d0a9b9060d4db48e2770334ae941b6b7fd1a4914098e2125f324e0d5284da52b523a7616552604be"; - sha512.doc = "0a36abcb782ea20b3c45d5c42a55fb41c04c3707c9c5b0166f90b7494032376d6756f827f1293cf998b56a84192aed36b6224e4abe14646557d130427f3bb63d"; - sha512.source = "1c84cbac59404c9f2e1adca379d24168ee4a7f1639110c3c8c5031a17025efb06608a9e8e703395727d1cc4ddb8de87932af14da71475e16d850b78fd5de0b52"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.1g"; -}; -suppose = { - revision = 59281; - shortdesc = "Abbreviate the word \"Suppose\""; - stripPrefix = 0; - sha512.run = "b78fab6e7784cec1ad8c44c0ea6b2dabf7aeed133ae5dbf9c8044a5fd8af8509b68a1fb615a8bc33459676e4eb6f6d13f097cd689c35acf37beca4750ee09c36"; - sha512.doc = "c59de255274f2a8fb961b57e4c59e7020f990b15a54ef008b251380b63d3564cfab7ce434a3782d3f467561557eca9884745e12f3886416967ad26b0a95b1f5a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.2"; -}; -susy = { - revision = 19440; - shortdesc = "Macros for SuperSymmetry-related work"; - stripPrefix = 0; - sha512.run = "406a172dfb787c833d8d71e74cde627fad5dc168a1be7a71c4d0006e2f0a6625738ec11f99c9215af6973b101e17abe8eb8355206bdaa18ab3fa6328d7ea42bd"; - sha512.doc = "f802ccdadb5ac2bd96ff27396b020798ac023889f751bc3a286392f62341ee6ac50486899f4e633b90b85320f1bbb679dfba98aa3746d01f0220f07cf65549f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -svg = { - revision = 57010; - shortdesc = "Include and extract SVG pictures in LaTeX documents"; - stripPrefix = 0; - sha512.run = "fd2c051969ea85b2e5c2818292128044038003456f8019efc3c6decb7e811f3eeeed6f3505cb661ee2b4768fa7715f5b3aff4583124d6cc99fef5c5f6a2fed77"; - sha512.doc = "84f35fd26786e57a8eea08af996d6edc93116529ab364e2b2e23ea6826748435d8487264438f7ff6b44b6d6975e0f18b1f27599e0e554b3d664055296e8fb0d7"; - sha512.source = "834958e4f8a0d8102ff88af0c499455c9bdcf61b0bd2795e25a07507c55ad6e7a5bcd131bbac48e463bd93b4bf49dee9aebe46a8999d75c24218a332814d5974"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.02k"; -}; -svg-inkscape = { - revision = 32199; - shortdesc = "How to include an SVG image in LaTeX using Inkscape"; - stripPrefix = 0; - sha512.run = "e1708206e6fe85271e729ee8c9bf952f45af662a54ad2e816b449fed263fefd8527529ea777b85a50f736d0ec7875afcb3059ed2ac81afd45c54ccdc687c3979"; - sha512.doc = "609d1a7d2256461a749c3a74ac5dffdb7efec999faa15315872f4e61884933cf47c380bfd8eba53de491494cb498a45ba263dc889fa0fd337c48f82842fa6bdd"; - license = [ "lppl13c" ]; -}; -svgcolor = { - revision = 15878; - shortdesc = "Define SVG named colours"; - stripPrefix = 0; - sha512.run = "617a880e8e94e781819a8ab3a169325e667a18afd83a10f070a56dd9f1813153d8f52cbc3322c264ee249c0e70080421a9e1debf844ecbc7ea6c2368a6ac67e2"; - sha512.doc = "02a28da03f72cd85f30f73282558bd3aa05a82318cc90f56af6ff8ae29e1f205d3c05553598b88ea13206b4d54f64ca36d5a6a8d6f8913e08c185c7bce6011ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -svn = { - revision = 15878; - shortdesc = "Typeset Subversion keywords"; - stripPrefix = 0; - sha512.run = "a64768b2c5931ba6b9e0b910d7bdc1473a7dbc01a70e41fbda46b4064ca1c41592f3d704496199e41ff27ac4d0ccfad56d9d89e536176010e35c1c8f56312454"; - sha512.doc = "123ce3eda16e4a1c44a85c6d2ef2bf4e5f6b9e9d939cf66eee52ad1326f06b35c457f4df054956dc16c169031909f2ea93aca380d2ba080f6049795a841dc34e"; - sha512.source = "0033fe1be2ede6984cbc0397c20187cc03520b5d893f7ae239bb688354d7198c4e96cfed09dcdffe7160769f6dafc9995d77f8f0f9def753048d4ecb8231ee69"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "43"; -}; -svn-multi = { - revision = 64967; - shortdesc = "Subversion keywords in multi-file LaTeX documents"; - sha512.run = "cb2b1c9a95445b1b2cae4b4f8b7d22a417c766b8158a229712a2ecf8b5b2c731c4c4ee348e626a734406487327d7e0288df458329d1231aaa9c63c1283636930"; - sha512.doc = "6fb5e19bc88ab89fb7363587121374f08ebac0d3bc2868e27c43a8deb986cb5b1e82a665adfa56810ff70a49104007b056aefbb3e55cb821e0039eef0bf941eb"; - sha512.source = "b50a0401ac6e0f056fc029ae78ffd8cd4e64bbf677b654c0462d1d160d8f4b2a2895594b8f591fe6aa4acab0c01aa5633af9d9f7a24fbd6f177d2a717cd0f2a4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4d"; -}; -svn-multi.binfiles = [ - "svn-multi" -]; -svn-prov = { - revision = 64967; - shortdesc = "Subversion variants of \Provides... macros"; - stripPrefix = 0; - sha512.run = "319bd5de2870a3c8237aa5013f7807bf3c2c5ef7fa4618a400cd5ab60ec8cb88b94510b0129862c5d98a11e2241f9790f8c84473447df8e21cbe711d52268e98"; - sha512.doc = "01cfb48533e07065f477724efe4c3fcff13691da0393a0d8a9dc9cf4b5d3e3953ce233f8331c1e5857c2259ac6dd7e4859793bb194d750f35ecf3723dd7b4b0d"; - sha512.source = "1e0206e1506082c8ca5ece1e66b9c85650b986e92e5906a96e7156964f3004af2d008815f86c609eba48f02a0750403fa3860ef2a3bc14689140c8826cb3881b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1862"; -}; -svninfo = { - revision = 62157; - shortdesc = "Typeset Subversion keywords"; - stripPrefix = 0; - sha512.run = "ca2e0a3d0a5f4ab6950d5995b39f785ba071294134d947a47ca3e1f7e0bedc69398f9d0fc2162f349a635aa19ce8c963ec7c88d4bed2100d8f3da05219235655"; - sha512.doc = "aa4bd06d31bad0a2441623b80f52702d67fdef03912b6f96058f3a89d00f4601cc4bae76a24f49540169ad30883177d038ddc7dedabd8d643b59df5c94be4a65"; - sha512.source = "f9f65dcc56ae6b9cf2f5cd9dac27e3760f12428bee623e70018a767dbbf0b919178994349051893e52a04de75b8455b1c218b0f779f4a0ae4930480ba0ed24d1"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "0.7.4"; -}; -svrsymbols = { - revision = 50019; - shortdesc = "A font with symbols for use in physics texts"; - stripPrefix = 0; - fontMaps = [ - "Map svrsymbols.map" - ]; - sha512.run = "1fadd5259d527daf316502aae6072865b9c6e2efc1ab92f4bc0c3d1070ca4dd863b8f7366c9e6909b7885858c1745cd723003a9f4bd28e8208889da2c21f18d3"; - sha512.doc = "6ff7b9c1efa4b59c453b42fd37dc66e3c79912ff0bf9765b2745fd0cd946a4cfc4a063fc943d1b5919368f8a5809eef5cb7f3a4bf3b6cbdf8200f42180d21f92"; - sha512.source = "916ca0f14ff1b9ae99fc609c41fa655eef39bb053ad39274dbe43167dbeed06ebbb9990cde6c040fcbf9b432b4ff89651195df094aa9c35bc172e7932917148d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -swebib = { - revision = 15878; - shortdesc = "Swedish bibliography styles"; - stripPrefix = 0; - sha512.run = "c34174a73f2264bd0963bc6932f6ce840a84d3c48ec9aeae9f7f92ce25ce5f55dc2e4c05d1eaee54c18b4c0ef9adcf494310cdf0a3e1d73031910b75a6db30c8"; - sha512.doc = "a3db201554a0b828cfc72d47a22b777fd7b44b25c361a4d8f032cc62658780628e83f6eabfbf342b867fda335c1ddc228347f5fc66651193c8229e0bc6e46f67"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -swfigure = { - revision = 63255; - shortdesc = "Insert large images that do not fit into a single page"; - stripPrefix = 0; - sha512.run = "0cc77bbb379aca7561a6cff50be46dc43a1e064d6d4ea5f5b2115dc5907ceabb012d951c7dc5ee33bf0c8e824eb51a3eac54cd1b31e4dd974d226eb4bdb5ae52"; - sha512.doc = "64f3f91acb388322ab4ea30d4f0c65e029b1c32755e7769d7d4388d4971f518459106acbde1b4c4b0cd3d4796769289aecaac34be32383778d913cc628d9f57a"; - sha512.source = "02a5c33997f249a3f41065af3187516b27621c65f2b2ec82020b90b721221a2cc4c52e9b8ed65ae6d89559fbceb51da9f7eef00514bce7040822b280c3d6e505"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9.20"; -}; -swimgraf = { - revision = 25446; - shortdesc = "Graphical/textual representations of swimming performances"; - stripPrefix = 0; - sha512.run = "d4bd2097892db6467ae1c80032e4ff5f39e3da81f45ecf472d350297687609ff37b8498de9e44405ad9c7dd7b483599c844672233d289c6cc4ed1e2b9e2bb842"; - sha512.doc = "2394080a393e2a0cc8e8299dc4debbcc7548186a714454c87662c22a371308c7e8e6705c9dcbf6eca632f2f80788a733f9d5a9f3fddb2f46167fd50654c5bcdc"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -swrule = { - revision = 54267; - shortdesc = "Lines thicker in the middle than at the ends"; - stripPrefix = 0; - sha512.run = "fbb2a8fd060e41340a876595310b54d069cf808d4e2eacba0d913732fe45a3cea698c1e6e229dd152666f7b509eca424d17378c74ad14edd0d5f08ec85c6c65a"; - hasRunfiles = true; - license = [ "free" ]; -}; -swungdash = { - revision = 64204; - shortdesc = "Typeset a swung dash in LaTeX"; - stripPrefix = 0; - sha512.run = "fbfef096e662d2987dd9e4989fad28a93387722b29bf7974e47cb3a5c13b535df63113cfab6883d2c3c98cfb4b3272ad1de6c961e2818dab5e59661ca5d14630"; - sha512.doc = "6bb0c45931d2d028d5b337b7295e5645fb709eee6c30c3cf3bc539c7142cd8fa4a9543ce70a54cec9b12e7cb565366df674da7b85d32a24839d8bdd0d1cdee10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -syllogism = { - revision = 15878; - shortdesc = "Typeset syllogisms in LaTeX"; - stripPrefix = 0; - sha512.run = "6f74e300794afa114da0f498bf70a389500bd2346bd0bd3d9ecf0f30d6167bfc9ea094024039775c649f5feeaa4b62384072ff26fc0c0fb426634912f440999a"; - sha512.doc = "1d2f3cfb453a4964b0e64a486a7c466731fec93e3a4210b216ebe9bc311923f055bbb903c26b5177c34a16a343e5f4e1a0643c7f6bf635dc0762182185f6e362"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -symbats3 = { - revision = 63833; - shortdesc = "Macros to use the Symbats3 dingbats fonts"; - stripPrefix = 0; - sha512.run = "bf967082ea372ad1c752b6f4bc4201c0617390f23517cfc00fd5fc802d6e728f4ef81c1787fa86bd4aac4f8adeff89127b6bf1615b70f4733bd8d5b203b8a033"; - sha512.doc = "e7a1a3f915000ad773f47a5529fc0aa97fa6dc2a56feefb8ae55815580301704a3c49eb7ae92b7f1248fd7115d7d55a54a6f2b38f05825be57b1e155ab8997ee"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -symbol = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map usy.map" - ]; - sha512.run = "1a2d3239cf7c9910b19db527d5c2b43af2b399114b3186505e790a139ae5ef82c2ff1ecd5adc858a46febaf2e46e028037ba65bd5b84fec0737edd89d5061c09"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -sympycalc = { - revision = 67087; - shortdesc = "Work with SymPy and PyLuaTeX"; - stripPrefix = 0; - sha512.run = "98c46fc7727bbb8fdda4038f56482d5fbf1c88e3e869b5865f45392dfbeb5be545f754e6ba109b55e66c96d6cf733ac97b472edbd38e3c21c2f937ac9136f19f"; - sha512.doc = "52d163772f25442b32a5ac240d15ab2d606e4907c79682cd37ff45389beb41fc2eaefec9b85d0736e3490d0f4cd1d60a42091cf24aba1ede8aded1cf7a786a0a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -sympytexpackage = { - revision = 57090; - shortdesc = "Include symbolic computation (using sympy) in documents"; - stripPrefix = 0; - sha512.run = "9a1fa177703dbed088861ff47e5b53f3c0f433abe15d471d181368c52e0cdae7350090ce5cb3c25d4ca816d1132eb009359977ada3f3c0b5c3b80bc0873f8110"; - sha512.doc = "0013c9c1e21f70e36e6b30f12d777f9f78b727ee1beb2f893133248fffb75f0bc4523c0787c0e292f197ce1c01b5f37b34c33ae97ed713bd900848657d803c59"; - sha512.source = "45df3251efd8a8e5669f72b83fc8c07c9df777ec90bdae9b8a92ff3c1875fe623574365f69162cc4c2f89e4fc7ea32dd1ac0ce164ee804799496be25466a12bc"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "0.3"; -}; -synctex = { - revision = 66203; - shortdesc = "engine-level feature synchronizing output and source"; - sha512.run = "cbe1f8c6d64619f742003c01566d55b675724f5d03681ad53dc1f58ff7314af88000ba25ea74e4fcfb07ece6160be6976ac8e69a9a1b524f223f5b80f350deb0"; - sha512.doc = "14e1f266182ee0be47a7b3841435f79594cdeb959245e6226520e81248691beeaa73f365c1112ef3bb4eacf4ca77e55265bd0d13c190858144bdc3064fa88a59"; - hasManpages = true; -}; -synctex.binfiles = [ - "synctex" -]; -synproof = { - revision = 15878; - shortdesc = "Easy drawing of syntactic proofs"; - stripPrefix = 0; - sha512.run = "934235e8eb4ca51a906ca287c5524cc3b0b69c649b47a9fa0fc2c9fd664199eb6fce835d435e97e0b24bd0662ee68b8db471e3546c4bdb402bfcc19b1fd02c50"; - sha512.doc = "9a12fab29c7c0118bd97a7af1585ae97c5086e7a1e9529624b7fa43a723151e00537b9488a42628d7f6e93b87d092fe0dd18476c7d232e3ee74597186a92585b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -syntax = { - revision = 15878; - shortdesc = "Creation of syntax diagrams"; - stripPrefix = 0; - sha512.run = "be1e049a98cd7e45cec9675e707575107af9c613028012b8fbfa658c6c9cbbac5782d3a7111f37edc719fb90e7c168c9a98a3d30a4c997b6ac4ed0691fc7fdc3"; - sha512.doc = "7d0754c08081abc9867d0d40fc910ae5f8b34518004bf698dddc184f0b514d75a7feb3085870cf8322b3d6f3bc4c32ab50acdaeb56b574bf41604a18c23a6656"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -syntaxdi = { - revision = 56685; - shortdesc = "Create \"railroad\" syntax diagrams"; - stripPrefix = 0; - sha512.run = "79d5df672a25ed58919b7e054be992986edc8484348388d5eb318dfa99fc55ad3c452d6924c857c1bfb46361d59fe1d4e38cf84c9cfecd241f7d0c9d184f7995"; - sha512.doc = "a7c370c6b6c3877098e5cb216c4e82d382dfba0627de6abbca8f4e1bc6f94f53f11bac7456be213fa632d501dbabe910ef94680cb2cb20549c292ec5ffe79451"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.2"; -}; -syntrace = { - revision = 15878; - shortdesc = "Labels for tracing in a syntax tree"; - stripPrefix = 0; - sha512.run = "613c70859eb0c710c43fa4a62fe8b8d38a407ffe94c532d80927d00fd47c17b6570040f5d9ace5035f4dc53deef97419f52ecdf021ab11d5629445153b85ebd2"; - sha512.doc = "0349aba5e1455a6676cda43c7981677cfadf77b9898a79d90104808e77cd351f219392a91f83b670f7f1801babf53854f8719c32b8da112fde849b7b120e2327"; - sha512.source = "a6b5e08c1eae9b6c631f2d2316bf0d2afba452be7f8aed0d6f9724dedc7d50785ef09e1f29986d2cf869988e3b5c59332cd2b44d185b298e59333131413314f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -synttree = { - revision = 16252; - shortdesc = "Typeset syntactic trees"; - stripPrefix = 0; - sha512.run = "3fa23536373a41957d985e5a0aac744473459d195c1e7e00e60f2b4aeab15d8f150bc76fab05068d5ae4994ce52ba4dc35380ab042cc9917a23962b2f0a7094a"; - sha512.doc = "164c74dfacdb0cafab112d270b15ad0b7c58be0e8d65c5ce08f80182971b63026584c5c071988d9b7053f99b9d81c893f8b103a3145f1128ffad880259a16264"; - sha512.source = "3fcb8ccf6da19cb01f6a80f97bf98a84c86ca7d06a95b193cbb4b33968c80cd842554ab8d5a9127af0434b9abc83f2cbff428bf1bb976fba01e56d5770f6e20d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.2"; -}; -systeme = { - revision = 66655; - shortdesc = "Format systems of equations"; - stripPrefix = 0; - sha512.run = "ed93847bd9d5b9158026e364d98f7102e4040d19f8fe198565b8e6a9573ba1796a89b69f76dae76c40acd9ac96392aa75d2ccc006f8419b699f8f4c7b35c737a"; - sha512.doc = "97bc9240c34251e6b3cf0fe53fb5c5914e0bfc2cf852ca70aaa72213ac9e5ac7d55738f63e73aa8ebc4e320a3874b3ec84c3a0465b188c2fa263648306faeaee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.34"; -}; -t-angles = { - revision = 15878; - shortdesc = "Draw tangles, trees, Hopf algebra operations and other pictures"; - stripPrefix = 0; - sha512.run = "dae9953288c0067e233ca26d2d5e7ea32207790eb16bcff2f0f56180dd9a65e70c234de48652d053a858ec92940c3c5fea10c699c697b65a249a8c84fa050b71"; - sha512.doc = "32dc9adfda93bee5e61eb062e6970f6e093a09016a6ddf32f82d110b7717916fcc92f961c8be682958d1f3f345e02ad49cde4a85ad4a0d0add08a0bc80109d8f"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -t1utils = { - revision = 57972; - shortdesc = "Simple Type 1 font manipulation programs"; - sha512.run = "9065b22ec60747b603c758c3bae67ff06759ebf97c979028ac940a1b773e3a20f5f249a4a61b7564038dcda3c72ef635315e64a3b8692501cc8f6c30ff7fa989"; - sha512.doc = "34eacd2f14282108ba41d49cc68c066e12383c4873c9cb8a2389300f9c5685b3f3d7d0626e33008d28c229f8311daf2404b2bfa164fa550184f1e856163ab386"; - hasManpages = true; - license = [ "publicDomain" ]; -}; -t1utils.binfiles = [ - "t1ascii" - "t1asm" - "t1binary" - "t1disasm" - "t1mac" - "t1unmac" -]; -t2 = { - revision = 47870; - shortdesc = "Support for using T2 encoding"; - stripPrefix = 0; - sha512.run = "9a47581909735a9ba582b71a132c925beab45cbfeb0201c93d138c35670fdf65580e6dc20d9498458e01eba7088c81d67cce329465e4763235e3f3404959c5c6"; - sha512.doc = "8c30658eab02eb576963a6a2f722b143444abf5d286473f165b6cab84c75ef703462a1841121a5d12cf822b150ce8c23a96256754a2d662fbe6c451a058333ef"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tabbing = { - revision = 59715; - shortdesc = "Tabbing with accented letters"; - stripPrefix = 0; - sha512.run = "dcb4bf112afc6a2221030ee7cf0f0b3043dd12a178195ba57afd10702b3efd65948d58607334dd9445270cf69862011d97b72a0f8ca5868748174b1462988132"; - sha512.doc = "e056f857e62c1fe3f6b0183c0929e617525586068c62beee604b904695274d4c271d4b973a8a8c9b046792227df389a61591b528a8a4c1cb5c9916618206de48"; - sha512.source = "7ed54e677b3dbd8e10e85e84c69791339fefc223a753164c0e9aa8c47301ded6c0737cf62b25cd9d3b152eb63bc32406d9a8a86a620b0e8e00d562ee795f6aa8"; - hasRunfiles = true; - license = [ "lppl1" ]; -}; -tabfigures = { - revision = 25202; - shortdesc = "Maintain vertical alignment of figures"; - stripPrefix = 0; - sha512.run = "d2a1fe985a74427888995437beaafa62b5def851d6f2a7788ead9cddbfcefd7206366a6711f29e85d2705c0d787bfc88accc56c93b827fa372ebd9cfc562f2c6"; - sha512.doc = "5b2c7c5bd350c3dba68117151f3cfd6eac8f0e7ed602b44406ff9d15a79dd7de7e0ec303b1163e3c882412c86adc48afac6c9653cf1fbff86e7cf6a7ce852c94"; - sha512.source = "78602de26e50e0d9ee43b8289a96a3639904bdf79983d4633d6c11af1c8215d1e77649f640ecc6b3f37cce30e6cc6b4c204e2cec58a3454c8b8486104eb17922"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -table-fct = { - revision = 41849; - shortdesc = "Draw a variations table of functions and a convexity table of its graph"; - stripPrefix = 0; - sha512.run = "a6300b1989f536fecb27d300bc0b27afd93f7f72b894fdb87bae5b0756ab241985ee2e5b4c0b68d1b2cc5611aafdb62b300fe40e2a08df5f6b11774f13309756"; - sha512.doc = "a9108cee93e6c7250643636619f923659d468a2148f5b04168fb08738d85e794c1050fef8152fb95d114551f6967c955f3d6f548e1ede37711b98b1362e9910a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -tableaux = { - revision = 42413; - shortdesc = "Construct tables of signs and variations"; - stripPrefix = 0; - sha512.run = "1846fe9da749b92700be07c094556fd296d47123df3a5d6823570056e6ce2ca8ef365b70f6ab2a8577602d1be338867fd2610403f89729dd51632d404951f84f"; - sha512.doc = "cfa58a8e76dd61659f6c13ea6b3f97ae484715b735028c513576312dfa7dfe92c8c15a0858077e3ff2399807274dd5a836182ea65b948a976f6384bd8d1b19d6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tablefootnote = { - revision = 32804; - shortdesc = "Permit footnotes in tables"; - stripPrefix = 0; - sha512.run = "90812cecdbb464592b17b8faf4d81b221844a354b0a3d3ea30cb72d0b56c4ff7eee701caf113e13586315ce846d30de6ce8d5028966f2c310527e34e8ec90464"; - sha512.doc = "712c1ab696f5924058f4ea6ce12e3ff14fcbf79a78328259c4b9acfdaad33e9e4dddf36dbb322598f09a8fa3ca75d68b474fe1a4bcd4d25752704e0c4e6ba5d7"; - sha512.source = "70456471a5997592668198463d1e44af464e9c24619c09d186c952c5afe2bc5171d5c29442820b267d1782a966fbe63997694427f1c870d14ec6194ac99ded52"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1c"; -}; -tableof = { - revision = 59837; - shortdesc = "Tagging tables of contents"; - stripPrefix = 0; - sha512.run = "e577e1e8df3fd1ad12a2cbfcd05ffb1184fcd3555124986481c62a33ed7f5789bf1858a1370888887d2aae0d2a508a891e5e67bb0a4a1d9a924b3817c2d9e234"; - sha512.doc = "bd568b16c6e708e4d0ee9810ba97f8363c842c22156dc90a257fdb0319eb49cab4f6ac9faee0700687a8a6ee54ea02b9660635cfeddd5275365d9c7f38218784"; - sha512.source = "5086e314c042757a5e90bcbde9fdbcedeee689f89524df43ab390eefc7bf10eea6a9c5bc83b359b00c3ae351fa10f8e8a64b356adb8e7131d48568e06a8ed0d3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4c"; -}; -tablists = { - revision = 15878; - shortdesc = "Tabulated lists of short items"; - stripPrefix = 0; - sha512.run = "ed0ebef871c7bdffe93e2cc38b823dd13376c53e4388daa8aa1198cb213010594c9bfe468ec0e42901df2dbd1b938e7f037cf49ef2cf6d9ff3bc53502b220a14"; - sha512.doc = "afcfa520702fd873b4deb7c4acfbd4290262a0df133c87f01698d20b8d17fd5b5932384124f49fb4d90155da284b873bb3ee1a2281955449f8ca2f278c38d39f"; - sha512.source = "34ff94c3adfff4188daf4ff906721833dd925c84f107867d7931fe66c58ea8a8438737065f64a9aaf57acb0eeac9e17e8388dee7a0af93476f5add226d4481e7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0e"; -}; -tablor = { - revision = 31855; - shortdesc = "Create tables of signs and of variations"; - stripPrefix = 0; - sha512.run = "64169a74a787f8877d41d5e32c42e5659950854a1e20cc05103b3ed58c54fb800a9af0701a40a6c5b75553b86d675fbda51948106cac464785c3d46aac77c979"; - sha512.doc = "77a6d1b47337f015dbfd39074e1dae417c3bea3c9635955c6518d691ff336854cdd7587af54640282b45f5bf3885044d3b6789a0a73f39a726aeaf0afd27c883"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.07-g"; -}; -tabls = { - revision = 17255; - shortdesc = "Better vertical spacing in tables and arrays"; - stripPrefix = 0; - sha512.run = "1a341985ae61f047694470d19d4e192b4f4e01c0bb595d91b1f80080eed3077be4e40b431cc05b1bb482f18c30bf36e6076542f2cf37a49dd6b065b0fe044bca"; - sha512.doc = "f458058964660b2b1ff2a61ff8ff2ffcfe7ab103e9714cb1e7c307a8bd39c5a1a6990683c4ed7aa401cbe9b9dcc083dfbadd80a5aa00bcd64c0fb72638cf71f2"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.5"; -}; -tablvar = { - revision = 69212; - shortdesc = "Typesetting pretty tables of signs and variations according to French usage"; - stripPrefix = 0; - sha512.run = "0ecb62b92529825d893d5ae686aa7d66576da1915ff760ae80466e9c76c2951f1300e72b3bf039a61997ebfaa9f72a8c56fa58f53c65d0a75bbac71d830dfcbe"; - sha512.doc = "7cfea26a1abda9aa3642c5d48c763184fc0f7a18b77fb72b8083c7271847b6d7ce3bad33fca96f082abd171f5f013eafbed51bd84b3ec046d82be13c11043f2a"; - sha512.source = "871139aa0cecc116ef7e3bfe6cfd048cb804ccb108c18b6fd71bafdc02bfbce56d297b111ddff348e92f44fbe1a69e06a5be3693386f02766475004d78e54d06"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -tabriz-thesis = { - revision = 51729; - shortdesc = "A template for the University of Tabriz"; - stripPrefix = 0; - sha512.run = "b1e93632159fa6b5ce46a13b6d2bbd3115a09fd7c6908a8465934e37feb0633eea827fa1ba8521d91a0d30492135a428463f6aa99cca0c6fe7db640d1310c6ae"; - sha512.doc = "e56f4a93c7cdc68c227791a21fbb06e44193e9681e677f383d19994c714bdb8d0487f9550c0c94a78890f54c7342aa777349770b4ad04b58e191fa62b31a3462"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -tabstackengine = { - revision = 46848; - shortdesc = "\"Tabbing\" front-end to stackengine"; - stripPrefix = 0; - sha512.run = "2f6245d65a7d711d598b894c8acfd8d2a032ae210eabfa219934e8fa086bbe3edef81e73092234e5528f9f62a6856546aaec7eafe5572eded155ca8fa5fc3999"; - sha512.doc = "6ce0b2ec254e44bca6f6cb746d4e3762735e9bb85e561df7628d3a2e2e35ddaac1635c825f27900d06badeb310535e73c84495e24748c1181825fd61fb03105d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.10"; -}; -tabto-generic = { - revision = 15878; - shortdesc = "\"Tab\" to a measured position in the line"; - stripPrefix = 0; - sha512.run = "5b3bd8081ec6800c96ce4b4cbdd8091578ad1df2b625fb2792202a6c31f3f126d612f99f04802d82d490cb529e03e63f98b01c7842ec0df69b48c2fc289108fa"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -tabto-ltx = { - revision = 54080; - shortdesc = "\"Tab\" to a measured position in the line"; - stripPrefix = 0; - sha512.run = "8654a7e3b49bbfe6e861a6f757d8553f78149e7187809b03f6854f2173143e10195385d9e8b35510e49a5f941b27a5796070d6db1183b58e4eb71c452d4a34e7"; - sha512.doc = "35e98681472b9d6fefa25a534385133d630f072a75a045c9adfc4b0e775095609ece27322e3fe8af451db03c0ac3b63141c3cc7272924ff758a8985389040a31"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -tabu = { - revision = 61719; - shortdesc = "Flexible LaTeX tabulars"; - stripPrefix = 0; - deps = [ - "varwidth" - ]; - sha512.run = "b40dc1e91084912df03175a6529223c6f24ae3c0ec77cfb8f1f8625816ea78c044c8f01f1b473e84696421d6772d9201fa4b59aa93e6f014b73598d16c09a6cd"; - sha512.doc = "5ef0a71d643bf5069a622aa8c807bf87db7445caab1f17b5202ee25ddab5368e94e796eb16de4fb183f294cedc232d48cbdba68f45d2451e01a2483d6869822d"; - sha512.source = "7c80ee8d25933e5d1c579357cffdf7177b0a419a847ca1e671cb1dda19fbde9b3680658df6b814d5d92953dd13eeee5100a5aa2fdb5fec3cbc1e213545cb3a78"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.9"; -}; -tabularborder = { - revision = 17885; - shortdesc = "Remove excess space at left and right of tabular"; - stripPrefix = 0; - sha512.run = "a30f668ea84238df674c079fea6b05878776b26b4f6465385e26b01b16181825a8cc20767fa45eda8e7870d272875bc9664aed145885dd655d15258aa072ebb7"; - sha512.doc = "f0376dfe99c68523332be0e83c0a186d7e3051862fac22785b4ba1273673fb9b1776654a127ba1c617af67063763e5837723ca2f23b3f7dd012628bd40ad0604"; - sha512.source = "862ea87bf23f2e4f42bc15fb82d9e417b4e51d7fbd555383cb985892b9b40734b38dc4f0dfb09790040c64791beb2cb2c6bbd2df9373c75438929be011748978"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0a"; -}; -tabularcalc = { - revision = 15878; - shortdesc = "Calculate formulas in a tabular environment"; - stripPrefix = 0; - sha512.run = "7535398538d6802c4e70858028ce6e7414aa8a88336e71f90f7f909d015bf896eeb5e6652cc5bc5a2bb384bc25d280d8cd6506f7ba05823c20dda04fb3adf0ba"; - sha512.doc = "7e35cad1507cfb62117aaddae77c3faa5d19c4e320193afa0054415e84d49833ba64afdf743b6241d611dbb4d45c6a532779293924f20b6c748659a361d6f30d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -tabularew = { - revision = 15878; - shortdesc = "A variation on the tabular environment"; - stripPrefix = 0; - sha512.run = "512851ce7641e0904dd25ab8a5cd5ac0dd281154067e09c4389fa3d6f330d30099dc60b252de4ebee52a2cf28d6b7d10bcf63fe4ab1472238db35754adc1dba6"; - sha512.doc = "4b5b8aca9d9be8cc6618d9393278f8da2069341a982cf6cda9e561b64bc158e5c08cf9257b592f82134cd74ce0b69682e15339d9068d9fedcdb26626dc2b8a7b"; - sha512.source = "9779876bfc65936043b0b4918784888acc68a8e8aec3b5eab6eea5cba3fea10ff0f696d1c38f68b37227cc086ca519630a96b945b33e3c1b853ee8ad95ec08bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -tabularray = { - revision = 69926; - shortdesc = "Typeset tabulars and arrays with LaTeX3"; - stripPrefix = 0; - sha512.run = "bfbce523764d979d0ab24992be6b0c79dcc20dabbdab195496f11e21f01c349fcf0dff8f400b6833dc046a74e27468b496b99fb65d1aeb820d7c4077b21525ee"; - sha512.doc = "2b58577fde437018269468d81a9f50e39b6cd36803874dd2f09e7fe0ed0fc2f63c6bc195fc433b997e65dd43ae15cfbfeaadee8f46fe63bd32bc3ddf91fd8507"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2024A"; -}; -tabulary = { - revision = 34368; - shortdesc = "Tabular with variable width columns balanced"; - stripPrefix = 0; - sha512.run = "2c873a3840d8bf06a095ff3106b317ae6acfb8498d47b0229a37e247e0e0a9df80300759d65d13ebc9defb15d1cde0aa1e956d2f88bebab3311af459be47df0a"; - sha512.doc = "b619c6b3dce1421ad4f06ab5e6f0ecaa6dc4f55076b66303a4e5409b42a4a9e34d218251177234dc0f3dac13046638a75623db0094978badc4db93083660f5e9"; - sha512.source = "aa075526ddc2f793676ff45e9d37f02251660cec33b3f4a74da23e725181e48b2103fef16adcd6d622ea2c422a5fda1d46cd9fa1c35bbd72f06f77d05f3b4c58"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10"; -}; -tabvar = { - revision = 63921; - shortdesc = "Typesetting tables showing variations of functions"; - stripPrefix = 0; - fontMaps = [ - "Map tabvar.map" - ]; - sha512.run = "255b93a8eda59386b798e85741422c529903acfc0d06cb77f4b128c2e32e4a68ef32097888e921397c3e22434b581de30bb79c8cc6dc8357eaef94f26e6da04f"; - sha512.doc = "117158275aef7f9e5ee3e423e65d9ada5c2f6d28b660941a3d5d80ebb9716f4e35658e070911280e375b29290e2056ad3521acefa1eabfeda95ca9051d64a0c4"; - sha512.source = "48fd599f93d6a5310ebb7dab44aedc9ac017878bbd85d2f1bdb21a676ba95ce717be96f8a26f24d67c4ac4530d233fa8b9842f13fb124a8cc8ce3badf44c6bb8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.8"; -}; -tagging = { - revision = 52064; - shortdesc = "Document configuration with tags"; - stripPrefix = 0; - sha512.run = "8947ad0dc443891e0b5a395a27d2857acb5879821443ff64cb0b15b99eea7a69401ba165b26565bac1b0036032d49241504ea2e008106a85cdd896aa28abd9e4"; - sha512.doc = "06d470576136a96edb69bf595e55f16416da552a5f4a84980ff5393689cb58246d4fbe62b979c22b85c5abc58b926d9be63cd0ec734b43c653a0d0a5c4b04d8a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0.1"; -}; -tagpair = { - revision = 42138; - shortdesc = "Word-by-word glosses, translations, and bibliographic attributions"; - stripPrefix = 0; - sha512.run = "146c2e957965fb7ad9976a4b3b6c40d28b8d0cdaf0c8b9627f51dd55ba88b32ad7490bf000bb853a416b5dcc091243b9d6e92999431327a05879adcf89809d7f"; - sha512.doc = "af9dcc1c1dd0a5e44d3f436569cf5d36f8154b70219340dd914feb3d8c036164f1bd70eeb6819bb51a06c0f5c5dcab1b3ede8be4b4d22b2536529474d0d841ab"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -tagpdf = { - revision = 70259; - shortdesc = "Tools for experimenting with tagging using pdfLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "cf20cc71bb96599498e470f62f125a52f8457cd6a5f150a171c51c379c9d75d6ee3116d09a281dc0c2a079182a3ccb70c8eb12d5f8679b4f8839f63ce4da95fe"; - sha512.doc = "41c3de45c71f44af9c022c0a329b9e6e34956f15884d6da96373dba008b14058c851f7c51265b0f408f5154233a9e84979395a9a970aee36ac4d465209572722"; - sha512.source = "bddd07551ca8dbb27da3cf82b5caa8a6a89de15b4d13d50997ac0854e4e9b2e480cb371f7843af960f698ecb6f19ae376298fac3560488c3072b141fa1ccae75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.98x"; -}; -talk = { - revision = 42428; - shortdesc = "A LaTeX class for presentations"; - stripPrefix = 0; - sha512.run = "371c640254994616744b2bd0c9b4040415392bb2a3adfbe5f4656faaea5bf3e7d2d4ab35373a65a857fd57112f7fc628321492d5bf7c5b052e0026c277663d7d"; - sha512.doc = "d6a641789923559a94b0077d718e56258804caa1dec0c9ea0f9d010e92ffc361884664ac22b07b95d20f464d18ac76301a718430d8f1ee30172489cae3b844ae"; - sha512.source = "10661b5ee41914bdc60b5ab38c887087d6529b976a3acdbf95bf80160c6e432fe6f8a4d6030711f5672f8aea564fd23ada09f92b0e3a2a05ede903026d24bb36"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -talos = { - revision = 61820; - shortdesc = "A Greek cult font from the eighties"; - stripPrefix = 0; - sha512.run = "50a35159c65afa43900ee8633d2b86effa5aec6a430f2e8fa85f77442da35b140012b27959155564e29286aba465d9bab17c9f5ce5ec0a889ec4ed5dff1b4dcb"; - sha512.doc = "9bdbd72f86e0b957580bb008ba349eb428721913010e9fe2cd9ee9b01733d6259914712b60a4a7f0f5804041e6cf876d8bdda2910de1b191715c1d9c8d8fbf77"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "1.0"; -}; -tamefloats = { - revision = 27345; - shortdesc = "Experimentally use \holdinginserts with LaTeX floats"; - stripPrefix = 0; - sha512.run = "bd45962a9caa5b098b6a6a5c0bd3fb964e13cf2744a5fc960a97910183799d532aba24d5f4774ac29eef14bf1439e285010b2e22641167c826d5a36262fc39ef"; - sha512.doc = "2b9d013fcb93682e9be0fb1758fc871b4784eef72a0892383a35073aa177ac29acfda5e54b6a919379b43a3dd0fb0b22dd44476857665efb59b2e9cf27bb679a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.42"; -}; -tamethebeast = { - revision = 15878; - shortdesc = "A manual about bibliographies and especially BibTeX"; - stripPrefix = 0; - sha512.run = "75a71590f1d905bd2a78b508d66936975eeacbfa32e850f599e94efa92da2b043edb8b0899b7027268fa131d94283c13432d4c4126afb79d1615bd538af52436"; - sha512.doc = "0df79f434714deefd60b9b9d32dfbd47ac7e560c26ec0d02465538eefbc779f0252aef235ae2e0a2d2d634d618bb52c73b31c229b5245866239776c742ebe69a"; - license = [ "lppl13c" ]; - version = "1.4"; -}; -tangocolors = { - revision = 66733; - shortdesc = "Use colors from the Tango color palette"; - stripPrefix = 0; - sha512.run = "f33e7b7bf60f7e10f6b58e24a53c374ffe84a48a44bd6e0259dd741c91f94e61f71c6e6689e204017eff1b0050aba4e6eb5715b3978ec633ab0fb41317b1c835"; - sha512.doc = "051a1f028e4e77eb78a11dda00fa950f9405a4703dfde7fa61318482ece12ba16e16ed0dd035532cd272cf3d66efe03d212f44c03ffa342db76ead6de1a5a2ef"; - sha512.source = "d88a247cec1928a8178d189b812175df0a6f861f829fac382c952c0e1d6a5cd3ddcf4216e88a50676c831b1940d3593dc1e441bc45b827591039a13a31f27aa9"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "0.3"; -}; -tangramtikz = { - revision = 66183; - shortdesc = "Tangram puzzles, with TikZ"; - stripPrefix = 0; - sha512.run = "81446f01dd97ef332003f8cce4becb670fe3fa284e540c0dcefd6627b03efcc87874d12c7c7e399947a269cd4fd66deff2064cd1ba64cd34d6cac2b4c587e802"; - sha512.doc = "45435423e7b0a7d7aaf9db5cdbc682b9f62721b7fb333c64cd76a773fd67bb7faebe1bb11a6424c15a495f2c2269a78698a7846f2e8902c16023f2af91c9be9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.5"; -}; -tap = { - revision = 31731; - shortdesc = "TeX macros for typesetting complex tables"; - stripPrefix = 0; - sha512.run = "07ca34ae47976c65deba5443052001406390befb6dc675af7651141505f088e2f67f39648f14a94f70788eda79221efb05c2246d1991811e697e88c7408f6cf6"; - sha512.doc = "a61b861cdac25c0d8c7d48f67abb9eed88458d0d55e8afb706adabfbed0d1e7c7159fcf000b8012885f82f849ee965bf6a2607f1b67f2d9191f59f8538147230"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "0.77"; -}; -tapir = { - revision = 20484; - shortdesc = "A simple geometrical font"; - stripPrefix = 0; - sha512.run = "f3d93c9ad813008fa72cbe317d244bca9a70855c20f327d22d1720b79d70019af0f5d8aef237fc78a598a545f44a4612f1e5a7622b34247044ab230bd42eed5d"; - sha512.doc = "a32573ba9df3d0b30e796f7bdd03e63ba8a96559380895b8db2d33fd9812c8b781b75d19a12a24405c52df13acd9a5f2e925da64b019e92a124d143345bb5bb9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2"; -}; -tasks = { - revision = 61541; - shortdesc = "Horizontally columned lists"; - stripPrefix = 0; - sha512.run = "0625dd459eaf53f842f6c36a550808c3efa8004a76cf25bc892b4c50a640ba588c2d069ce8df10f5c8febf5461390517357040b8a472532fd1f9b9ceddd9e5c3"; - sha512.doc = "a3240edd6bd7e87b7e1b6292fc227e166b54cbda7f130dc5f03c92707577a9b51f4da5377375419feda6a91a710f48b787dc3da90a1befe1d1328ea9a799f649"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4a"; -}; -tblr-extras = { - revision = 69776; - shortdesc = "Extra libraries for tabularray for caption and babel compatibility"; - stripPrefix = 0; - sha512.run = "d47a63520ae3b3d8db6054357bace701b890d2b6c325d620d69d3185867b3c0092dc9702fdea4a84b56a3e192a9e01c083d3c449cc597877a8efa1abe9f6784c"; - sha512.doc = "c4f99c06e5ebea7bc88806252e8182cff3282ce6d3eb0a1a71cea97bb132304049a4077c57d0a0d0bc8ea20c20e63b4299cad0d9c06b49157ebcaa2e85d3af5b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tcldoc = { - revision = 22018; - shortdesc = "Doc/docstrip for tcl"; - stripPrefix = 0; - sha512.run = "82348df3f6dcedc17a3cd50f709d01b1f2b0e4be9345e63d40ee6ad2aff908f97c7d19d586431e3fe8399a8d076505ceaadb5afe0116093240a6e59a335934c9"; - sha512.doc = "61f24f628c2b62c02e08e1a2a3a2fd917d057baaf977e7837b1f62e4331e370b83f8a0b00e679c86ddb1893d21af13211185502ed7bb19699d4f33356d3a3a0d"; - sha512.source = "44a8d3661061ab7dd828fe1cfa8342384e2cd20f5338d54fb0a79516a2cf686a3a6d2a1648d18a4d0c1395a60fe8f8a7b5af0d0c2edc38385852117f408f9e26"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.40"; -}; -tcolorbox = { - revision = 69370; - shortdesc = "Coloured boxes, for LaTeX examples and theorems, etc"; - stripPrefix = 0; - sha512.run = "f62323c290e39f10555df66bfe43a3a199f99fd5ee81c13e450cab4736c805a21cd3d85ae710ccbccbcc552d5e0370245600a5e58e605d6b3d35a3fefa2a6fe0"; - sha512.doc = "7f4f312fee029753decd7456a6e2d8bc829484282f93d245e73a3ae706f7c948091694c05bd2b4f18982b4ed11662ec1868ef0dfd7bab3f35c15a1c1d486f41e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.2.0"; -}; -tdclock = { - revision = 33043; - shortdesc = "A ticking digital clock package for PDF output"; - stripPrefix = 0; - sha512.run = "29e2e50d9fa432b08ea730b8a12228cd2bd3eefe61946e576a262bab06a966c0b28c13d48b1074a838a1a567f9797a943282d17e936db146f15e7631261761fe"; - sha512.doc = "139c82690e2c9b695a10a6f3e6f94a54c3ae4d4a929ddc18763e248114926554206fb4c007ed758695476de3750ffc1dce3db75efdf2598434f27abd1ac84baa"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "2.5"; -}; -tds = { - revision = 64477; - shortdesc = "The TeX Directory Structure standard"; - stripPrefix = 0; - sha512.run = "b03911aa9711eb5eeed77c026c4bbcf952da80322b855ac631e78c07a48ad2ff1a4afdd6e25a00257d1b70e054645f07f65c98fe74f6b1389be46625f5eb8487"; - sha512.doc = "f4078e3b1693fedcbe139b67c50824845644a2b1e57dd27f9e46e44504d8fe8ac0ca706590e9149c06e71794a188b20777bfd6bf1afe85f16c806ba4f9b99cd8"; - hasInfo = true; - license = [ "free" ]; - version = "1.1"; -}; -tdsfrmath = { - revision = 15878; - shortdesc = "Macros for French teachers of mathematics"; - stripPrefix = 0; - sha512.run = "f2c7a19dc327230f46320c695eaf40e9ff17088a709e38ec7f8de23f5c0cbeb18f606bd41625a1229734dacc80edba9d052c21620f7cdf213f60e915b6128010"; - sha512.doc = "9b0e747f90b75f372f04eddfb1c17dc73c3ef6a95d576077790b23bb496cee07afd3af5d1a53581872255c4e71b933949beae909591d0e1c407d9efc3f1d227d"; - sha512.source = "f44f98be464973ef3596d6e0d77e508280b597e4010b2c94620aad0ff950c8328ba1d4bbcf22e0f71f091c311d9b99dd979c73c182debeedd90ab14bea9e1d7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -technics = { - revision = 29349; - shortdesc = "A package to format technical documents"; - stripPrefix = 0; - sha512.run = "8eb9eab801bd83fbf0d9365c36a202f909cbcd49b8da6887f3e26aa3fcd047b8085e0b405f0f5fa7f2b5ea0ef21a9956114ecaa7934e1b46b1abe55583d5e759"; - sha512.doc = "2158bee41c25a1fbbf8c963e3364cf7d08e160aa895f54c77ceeaab7da6963232af61b4c7349d1be7f0aa84097bc7c00cac7748bdb8ba523a899b9e7cf6ed11d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -technion-thesis-template = { - revision = 49889; - shortdesc = "Template for theses on the Technion graduate school"; - stripPrefix = 0; - sha512.run = "5e9c6bd47744601258bef52102acdfc744e0dd1219a7236a5710d6dd98ba5ebf1061bd6070c5d02707a7c8b895e362db51f48ee081126bcd9a99e523c6b9e5c0"; - sha512.doc = "bcc290eae933b00cb32af0da6d31c6190f3b38d02a599fec7f8cbfcdb6f8737380d4c440911b08de5d768d9925526a63521c97c20a8c075ce8e9500dd3a62c24"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.0"; -}; -ted = { - revision = 15878; - shortdesc = "A (primitive) token list editor"; - stripPrefix = 0; - sha512.run = "42b0fcded19e05d5cf316fdfc0f1f6474816b656a57bfb5214a76f47e644bc16a42bfa95a21b80251723e2c30651a284d873d898e84c277922120a9169d274df"; - sha512.doc = "a36387e2520d7afadeb270f7393ef45ac1b26673840d541a50ecf864304d529b24be7d107070c96cfa123801284ffc53c9daa60753640fcd2ad6367f88887069"; - sha512.source = "b134ab90045781a2a686206d4de20ebf63ffd678d47d81815365f67eecce60984d7e17e3b9098e42f06876b1f711609bfa4133efb4b74705f25ba0e4323984bf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.06"; -}; -templates-fenn = { - revision = 15878; - shortdesc = "Templates for TeX usage"; - stripPrefix = 0; - sha512.run = "cc61496f15f9c4060c8d42de23e3bf6f6d2be02d3a8b4fb761f2fda4a9c3565d74bf1f107dd9371e096bef79ddbdef56d2e696cd84cb4fe39a41986b8ffbbc78"; - sha512.doc = "2a96b0963b2d09edd3f6a6866ae298001e6ccd4e96b98a9002df6e6718284a786b63761441c287ddd63dd5eba636fcb8ce9769d498962ffe2565e771902755e1"; - license = [ "lppl13c" ]; -}; -templates-sommer = { - revision = 15878; - shortdesc = "Templates for TeX usage"; - stripPrefix = 0; - sha512.run = "55b47c4718786fd4910d099878d5808288e83714567adbdbceea32a76e92f7e36c3f850d8597b297445a6ff428d1d0dbaf9209a387485eca0fb1a85f4909ed59"; - sha512.doc = "543b5cce4842dc6b084d90f9bf4e3c19c18a690ebe85379d9d93a5998fed06272bcac4cb3ae44f965614962827b9926fec3439322e38a720c134133a88cd94f0"; - license = [ "lppl13c" ]; -}; -templatetools = { - revision = 67201; - shortdesc = "Commands useful in LaTeX templates"; - stripPrefix = 0; - sha512.run = "696727231a51c33d10ca7c18690d2f960cd01a72b4e928c581e2a7ed26770bf5ea18bdfbdfd56372fc7289b59323025ea7d30f208e991e1c6c89a659a240597a"; - sha512.doc = "55c03f8cf8313aed72c9434eb26b0623e55a5644a22914ed82c64c07834258f0d2f9f7c083b22677be854f69bcc6d980e45158caa4a530df517083c1c590089e"; - sha512.source = "a14dec17daec4f731aac48a155fcd306528ba106518db1b07fa1b77d9a90fef82746a4b173f1ec072ac73023469bea88d70f3b3cd106b3557ce426fbd05062e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -tempora = { - revision = 39596; - shortdesc = "Greek and Cyrillic to accompany Times"; - stripPrefix = 0; - fontMaps = [ - "Map tempora.map" - ]; - sha512.run = "0e1cc1a13f7937e5497f454b15ca66e0975b784b80223a902bf12a9587abdfdb56116b100e04306b1999e053b7c3716b32e1183dd7e6624162611f3b70388df6"; - sha512.doc = "18259e25b2c9f2a9cfbce9a9303d8827af069bbe2a7ade5c14518ce2c19dc973a86fadaa99b2abc8bc65644ee5371c745abba03cca76a685382b7d8b6d20bc6e"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.05"; -}; -tengwarscript = { - revision = 34594; - shortdesc = "LaTeX support for using Tengwar fonts"; - stripPrefix = 0; - sha512.run = "c6a29d928b1f25dc4b8893f9fc803f3a5deef9e8e9aa4803153fbae5cdd7170eea819eafba8a165203e48c8b2f443c55ce682df9f7e968ab621f2cf7eb082108"; - sha512.doc = "35825a4c1cac91c088daea643e8a8901f0c3ea15c44e8a9328883c22c1fddab95fb32a65372af3979698f81e68d77b34764a1c5748460a28396480075cb594d1"; - sha512.source = "4afbd079f20f9989a817acf49b46409bfab6ba0b328249eedf428a5a11e127fedc6c763c87db08b8b7c453562400878ea0c54d6d66c6bb7d407aa498a78dda38"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.1"; -}; -tensind = { - revision = 51481; - shortdesc = "Typeset tensors"; - stripPrefix = 0; - sha512.run = "fc20b6f6b705218b82b5788582d8b017be783e42c87b3f35e7aa99a8215ab0168b7da899c73ef1ebc282bedd5c715e69ed9e1c19b94d9b6369ba8e9986b5c5d6"; - sha512.doc = "12e443e2ffe876732759ddf91c8948e9cfcebc3c1c96949c51f090e15dadfbcaf801e488c8d043855b576404207612ae91d982279cf0b29bd73d4a5d1528bb6c"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1"; -}; -tensor = { - revision = 67667; - shortdesc = "Typeset tensors"; - stripPrefix = 0; - sha512.run = "4e19620df8703906c539541afca09ef871e1cf6a20315b246ebf758c5a0ff5f2095c51d312b19f818e89c9714a79a32fbee708d4ecd0a0b0257546b0d940ed1a"; - sha512.doc = "f60b5bdde9a29bf6a13ee94833b0d1fdaa1e7958d01a6a42b20a995263f398f7fbd761150b71f66490ece636ad2aa2c69a8ac9447a0000265ac480396822db2d"; - sha512.source = "4a90f092c167a905cf72abf029bce706cbbcefd4dd73ffe791a132f22268a5c0322c246877a387739bbb15697555fb021e6132538b5ab9b188a9fa9135b9859a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -termcal = { - revision = 22514; - shortdesc = "Print a class calendar"; - stripPrefix = 0; - sha512.run = "f28ee31f06cf2b3119df8010aa6a8312d5365452e19c3a278db7bee3bdeafe9ae0d3b07decdf1a104d8eb763abc5e02ff0e6c7030dce924596ac89d8e9508e13"; - sha512.doc = "44f54dedd59afad78eea60ccfd43805dca1a4dc87a3d827e0fda26db15505dec18d91cf0629ec937dcf3eb14d1244f80559a0fa1ef09b30288bf687099fcec1f"; - sha512.source = "0dd39a06088a0bd2bbcc3a9d6715816368deb07c55c85897f7c49d23553ff941f5f68d7b0ebf8fc54c4fd4d2bb8a510cec3ac9d9b509f27aeee29696c75a7ef2"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.8"; -}; -termcal-de = { - revision = 47111; - shortdesc = "German localization for termcal"; - stripPrefix = 0; - sha512.run = "9d4d0be3e26dc69fa3986fbe41099330e97cdd4d3aa0b12a180657577ef839878aea9e546a5651cdd0ea45e7af3968c5b83b509ad5bb3ef210d42af5c00fd91b"; - sha512.doc = "48f0ec01526f75e9e2b8369f8b30bbd8e4f093cc91fd5b485a36e225de35fa0afc750508b6533f2ec82ef123805788e40e98d5459dc85a73bef675162e682fa7"; - sha512.source = "51d257533f7897d6b605a2ac26f323e3c241cb6920b329387f1be3bfc8444e98570f2dc4f86e78e81f5838204a90a7f79074989737005f035e076c41be74f4a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -termes-otf = { - revision = 64733; - shortdesc = "Using the OpenType fonts TeX Gyre Termes"; - stripPrefix = 0; - sha512.run = "df52961346796914dca6c8f7c45671aa5da8c8ae4d55b951b5dcec6168c90082c02734db1133a119c951e50507ff1edf777b8976e34da1fc1cbc7ad783d4ae4c"; - sha512.doc = "221decd0f8193912d30032544095c3f30c4d8fd3b52ab74dd167bec1de528c8c9b753681985259dba859f8fd3d06ba239665bbdcc93d80904235c6f62685dba2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.02"; -}; -termlist = { - revision = 18923; - shortdesc = "Label any kind of term with a continuous counter"; - stripPrefix = 0; - sha512.run = "799d5fbfb9b055e8674a244ecaac65c2f0412a4c173e6608fff946544142d851d8dbba02505fa8be21bc37b15acc2ba99a6f0dc77a13dd241fedea1c1b38dec9"; - sha512.doc = "14add37c32500f246eea2a3219b58a232c9a8f41cf3cf5a0d1d2aaf4cba4d700c1ba5379b037fe10cfc06385ff0a7d0925b46beeef15dff2502142e56f37e597"; - sha512.source = "2d6a14828ca29c08d0b08f33749deaafef88ec73bdd72450468b5332e95c83ccc5d29d0a154a6cc49a04ca0a9e5a17d0f28f25139d928b87cb14a2059d51d848"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -termmenu = { - revision = 37700; - shortdesc = "The package provides support for terminal-based menus using expl3"; - stripPrefix = 0; - sha512.run = "5c3d4ac4a2bab5e18453b9de0b372b364981444df3550c3a195a8fee841a6d76e73835096ff1b71a37f5e5acf0fd2777dbc8846be9345f99b004adb560ced517"; - sha512.doc = "029f4ae3b57e0b226883e66030db2d3c41cffc0a4dbd4f8b3662562fd566d8a09b7aa0c83d98f7fb0cdfbd1226c5dde9c93211565292f037e5b5554e9a5d02b4"; - sha512.source = "56c1396e90a4c1db5dd28ae96c6f3ebe0310c163d7fdb2cb4e3ade78b522b349fba0bd43556165c282bedcab167241033b065feaac4c4a5e3dc2d8a8a55dca61"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -termsim = { - revision = 61414; - shortdesc = "Simulate Win10, Ubuntu, and Mac terminals"; - stripPrefix = 0; - sha512.run = "132615cbdbe257f2c7643414ef4b577053425e457a2e2ee2a9b4d8d56a7e6758db587b7f5223ef1a324931f5468ac5365b7dde7b971312bc8b8ea069ee5efb9e"; - sha512.doc = "af5047a490608fbb5769b6b4d3dad3fac6b9b20abb5dbaf20d08a633045ea45ca1a01f572d3f0701567a91a8429ae0c7279fa82f054e6fe0802d413765c46ccc"; - sha512.source = "45ad375a19ca939496f6f6546c9d2568367b3cd49c11fe1b2d94785448eb679d3e82c41a3282df054027636ca367b86b82dc3d937b42056398c23622ffa6e34a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.1"; -}; -testhyphens = { - revision = 38928; - shortdesc = "Testing hyphenation patterns"; - stripPrefix = 0; - sha512.run = "c16a9299721c571ce9bdc91e4ed4cc54c973b43fed5189d2f377b2a9143d94d3eeba6bd6b728e3df92a5436b3e2c5e07a21d4a6af0210bf87784d40d96caa42c"; - sha512.doc = "44cc1d9afa4e12ef2dc1f7be2d7718fa33b80e5ee16c7396053690bfea6246f444b50cb044d314ec677436a3559ff1ba9fa227acb446db37bacaa2829c309b2b"; - sha512.source = "2f84528ee4ca5d8434b0042f7b24908ff97c45f27580a5b59bfe226b195c295d4fa546fe240acb981db6deba970e2b020d38c00e6bbf5a0cc1b3caf2b3cbd506"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -testidx = { - revision = 60966; - shortdesc = "Dummy text for testing index styles and indexing applications"; - stripPrefix = 0; - sha512.run = "e4179ab827eb21f27fabdd06674302ac141b6abf889e87c4183b4d86253ae35b5ea277ecb8ac36e66d51a4e25556fae092f98bfdd768d34728412f3bb8b5faf7"; - sha512.doc = "60761fa19984e3ab2a0b5420320a43b84c1174a4e6722c75523fcaff43206ca2bd01f24af74ee307b5cd7d12196238f86539f8cfafc27168bf134df74e2736df"; - sha512.source = "358c712d4073983f872dc9664bd6e138c7c66a420d1253ec36646cefa584c9148573fd978026de87d98806c71ea8f8f45c1cd0160b3be738d6fb9cd535d774c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -tetragonos = { - revision = 49732; - shortdesc = "Four-Corner codes of Chinese characters"; - stripPrefix = 0; - sha512.run = "dbb37eec17d41633d951b3202289289bffd9bf9a8f509cfbb7f98baab9b7e684e7d7fbfb5f50ce41251d09d9f0ea81fd9e68fa91984e788e5e43f8e398463fff"; - sha512.doc = "f55cba055574e78934b8766f02de08f417f625042627c2c1e64cb7fe39ecb1e3553d5b862afe521f4d65805713c856ab000e3db3b7fc906266886f2ebec490a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -teubner = { - revision = 68074; - shortdesc = "Philological typesetting of classical Greek"; - stripPrefix = 0; - sha512.run = "c5f03b824d75099a38f8d203722d0edc4136392ff282489f6473a83dc178f536eb972ede3bd9371f47f39dfc2dbda6b4db78d282642889b4036dbbdb8e49a473"; - sha512.doc = "f1d7123e4438f781f6f4f7448119c7dc968be54888c027f8a7c95e5c70f06adcb58d127de21679bc125355f85f82ec94d2537cb0467f7c285427fba6b8f50775"; - sha512.source = "a44d484cc8de4f280f35648c93bc1c3673fff20a3477098d58342cb579b443f4a417f528e7b80787bf13fa8feddb05dc2cb5d7c261d812a5473236d00fac59bd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.8.3"; -}; -tex = { - revision = 66186; - shortdesc = "A sophisticated typesetting engine"; - deps = [ - "cm" - "hyphen-base" - "knuth-lib" - "kpathsea" - "plain" - ]; - formats = [ - { - name = "tex"; - engine = "tex"; - options = "tex.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ]; - } - ]; - sha512.run = "028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088"; - sha512.doc = "69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77"; - hasManpages = true; - license = [ "knuth" ]; - version = "3.141592653"; -}; -tex-ewd = { - revision = 15878; - shortdesc = "Macros to typeset calculational proofs and programs in Dijkstra's style"; - stripPrefix = 0; - sha512.run = "9850acafe002f1b6b147d00aee55e4cd9c1813edbea0f570282119fd8b2f134d3a48c113cc9957c69905c4e88a06097c45829026342d7ec88838870eedd7fc44"; - sha512.doc = "05f6414dd2309401d1800e2b053d7907703e144f829c2e7623a7c98c1313da50c0a659c25fa0d9a0fcb8b50891c575b47d8fb8a90b925e105ed9a6f8c45b8667"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -tex-font-errors-cheatsheet = { - revision = 18314; - shortdesc = "Cheat sheet outlining the most common TeX font errors"; - stripPrefix = 0; - sha512.run = "403b4faae7b16b1eea5a4d2a7d77bcd8a6e7a7b5be54299b79635280be8f82f59d281380754a0bd1b9e53ff4fb534fb3bca0cf8bbe1cf0ee88ee4d925fba103d"; - sha512.doc = "adc72626fcb4c5a9285ad4a7cfd1c6b984f1aa26c7732f35cdc241f7b00d623f6b646e878317f30d10b9f47f4eee33e923538be58f3c15bee668f4fe652f0170"; - license = [ "lppl13c" ]; - version = "0.1"; -}; -tex-gyre = { - revision = 68624; - shortdesc = "TeX Fonts extending freely available URW fonts"; - stripPrefix = 0; - fontMaps = [ - "Map qag.map" - "Map qbk.map" - "Map qcr.map" - "Map qcs.map" - "Map qhv.map" - "Map qpl.map" - "Map qtm.map" - "Map qzc.map" - ]; - sha512.run = "5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f"; - sha512.doc = "db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686"; - sha512.source = "e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "2.501"; -}; -tex-gyre-math = { - revision = 41264; - shortdesc = "Maths fonts to match tex-gyre text fonts"; - stripPrefix = 0; - sha512.run = "a50a9eaa30cfd7754ae702a3bd6fced2d07fac858215b913945665940c71a0aafd2b59a0d0baa0fb9d5090773ef69a86864cc11126a5e30adc3d0e94cdbd2594"; - sha512.doc = "cd346226dc36bb4fb5324a43dfab7790cd80ec6bba992849dfcca74ea6fe8d85fe7e0ac66408a41ac1ef644e6b32c9b06d337c4f394fbfd8fba4153fbc1abfe9"; - sha512.source = "3c58821e5307257578ec149317cb621331aafa00bfa465eeb055f1f93691ce57a489a32a7eea068b12b70228433031de33c0ffe36b0e8e10b368e0ef5e33fe24"; - hasRunfiles = true; - license = [ "gfl" ]; -}; -tex-ini-files = { - revision = 68920; - shortdesc = "Model TeX format creation files"; - stripPrefix = 0; - sha512.run = "58f8b1dd44be6ea67dfaaa67a4f7c6d27d222ccc7c7898c31ade4f23ae39a9a5aace902f05ff48bb3f6d63eae38f9db93b75c4d2efeacd394230694eebc33fa3"; - sha512.doc = "9caf187a5589e49f946a7fc5ad332073dd2a90d82f71587a57ee9d62e365321fbf14e69e3e3448d85302cf5418a2eb7d94a114f95c575867b52579f6c35d5e48"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -tex-label = { - revision = 16372; - shortdesc = "Place a classification on each page of a document"; - stripPrefix = 0; - sha512.run = "513310d4dc5240d0b290d0acc941455ba64e069d19c223670d05a632033aba8de367d5dce6acf073af4df476876d3ee414dcf9f1f579738bf9bdfe6738c19d36"; - sha512.doc = "bc705cf6812515923d60cf44b75830bd3ea78f078c9ef88ded3e94f060155e1fbf5dc1485cbaa8530e1f10b41b421e70bcec6c61066ee98b498aba7ea8799dc4"; - sha512.source = "07c29de4e85fc21404dad1da3a01a5037b641526110fe5410899c60aeae6a92836de322895afc83824df60f431955a4da959c4d4c21cf17dc32929f445cc1ed8"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tex-locale = { - revision = 48500; - shortdesc = "Localisation support for TeX and LaTeX documents"; - stripPrefix = 0; - sha512.run = "0e3aca622bb6fb49a06a3aea1d997414add9272dd39c10c3a1d80956dece59882993b24366a1126acab80f8a7c8328a30756f727210f829f5eb838ac0b9cb1a6"; - sha512.doc = "d3898da3687603b1f1f3f2f5b203d01c985ab0c3e39eeb05dc7c855c14fad8b73649777e4a0b7844c242bc8946cab80b585987eda37a1c10e3ba75c6955fee23"; - sha512.source = "b24a01b9845f79a86c12911e71ef179a4dd8f5a8284d067b760a8ac3cb906cbf2465ae3617e0196d9163348f3a865fea4e5869adac9921088b13d738803f87f4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tex-nutshell = { - revision = 70378; - shortdesc = "A short document about TeX principles"; - stripPrefix = 0; - sha512.run = "46f2ee7186bbeaebf250eaf2b5768ef4827bcd3c87a037fff5bc88d45c749f65e25f60a02639bf793e50bc66a11d9da365f4b1068143ab5edbf11c59818da02e"; - sha512.doc = "cb3d558047b0737a0dedc904f615c309be9b13ae53f99871d8facc62c3efcd00b933a67f496d24d9d896c1b96b8f21e257487b610633a73b30017b87e98bf70d"; - license = [ "publicDomain" ]; - version = "0.10"; -}; -tex-overview = { - revision = 41403; - shortdesc = "An overview of the development of TeX"; - stripPrefix = 0; - sha512.run = "1217aeba55d723dad2843509ad3adf205090298f2362ba4ce23d73ec581e439c344f055281a95f82bd8cec298c77da012cf892e60369562238bba7f8b8d258a1"; - sha512.doc = "0cd9941afc0e50d3d936f5ba1f9d2c7f16244899982ff7eaa44bb019653b5e4e142edc1ee608ca1664636c77178dd8a02f4625a2216a019e770651a718f0a27b"; - license = [ "lppl13c" ]; - version = "0.2"; -}; -tex-ps = { - revision = 15878; - shortdesc = "TeX to PostScript generic macros and add-ons"; - stripPrefix = 0; - sha512.run = "cc616b501be7c0724646d5e0f326a5729df8f4cb0c4070f92bdd3b5b370e496efd6208b3ec8b2387713810b9764c75525689f434b7f482a83fb0b8e9b0383cb6"; - sha512.doc = "2f82f63954c1407c2caa9c39a538ed1cffeabfde8ac0506906f0f28430d12e18d858040ee66f2326cad3fa758c23d1ed490b70c5d18eb68b699b7ddd0afd15d1"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -tex-refs = { - revision = 57349; - shortdesc = "References for TeX and Friends"; - stripPrefix = 0; - sha512.run = "aa03714a0ebb90c7431935608851c504080f8985db3bbba98cbfa9b957e0a3fbb87de8e0119bfdcc996d664aa46bb943c6f90b36c4408a42f14fcc8387508df6"; - sha512.doc = "f033d8d8bfafdece7b79c8417bce19dde484adbaa958497c0b4426448e6ebbfe8dcda07a34c336c3abe038447ea9e5177bce4660c9b8be36b0f94d02fc7a41d5"; - license = [ "free" ]; - version = "0.4.8"; -}; -tex-virtual-academy-pl = { - revision = 67718; - shortdesc = "TeX usage web pages, in Polish"; - stripPrefix = 0; - sha512.run = "23005895f708b07162b2b251be125b70dfa8ef6add8ef7c5dbab2c5a2e211f65fce8432cbf3ee324a9b72c2296d5dfffaaf5a52d77425e4d6fc3c042397d6bec"; - sha512.doc = "fd22d5a6c34e5ab7859bbb515d54e822eb5167853abba3e25d5137df1bc34f0bad9892c16f7ed5dfded8b90651551e1ed84a00d561c561ba18f50fa04e7bc7af"; - license = [ "fdl13Only" ]; -}; -tex-vpat = { - revision = 66758; - shortdesc = "TeX Accessibility Conformance Report"; - stripPrefix = 0; - sha512.run = "918054527c2d325ac0c1bdd621014fa4c79d7c6cf4ec8b5ac5d81dee84b9159fab0cc0047ea35eeb2de4460952126b3bdcd03395c29379e9df517ed7243206f0"; - sha512.doc = "f16ad935930ab663bb2e5b486c4fe53b3bd9e883c660d97893c4aa86bfe22f7ffed77dc66d88060f7eabb1daadd2dc77742c1d9604ea94d26594aba340693f35"; - license = [ "cc-by-30" ]; - version = "2.3"; -}; -tex.binfiles = [ - "initex" - "tex" -]; -tex4ebook = { - revision = 70117; - shortdesc = "Converter from LaTeX to ebook formats"; - deps = [ - "make4ht" - "tex4ht" - ]; - sha512.run = "7b2cc47523db8f9b987d2423e10d30d50684f2cdd45dceb846a0bec634ae5ee1514312d8cca46dce701ba1d86c9cfb21f0a0bccf67376f453fa5fec99165b19d"; - sha512.doc = "6011f8dbfe4308e17e8dae72227404374afd1c47e8ab2568248be67913ad1f170d7c83cd01a9e01e39607486579d2e9a1f0a1bbdd3230299109d12a3aba536db"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "0.4"; -}; -tex4ebook.binfiles = [ - "tex4ebook" -]; -tex4ht = { - revision = 69739; - shortdesc = "Convert (La)TeX to HTML/XML"; - sha512.run = "c78b1daae522e9dfb8a0c3b49e04cfa57d68bf96555cebb5ce2700f87748e7c7f5092ad1329f9bb03d1c3f2f11eec58653a66aaa51e295b8aeb7f3606d7d87af"; - sha512.doc = "135b1475d6b4f8650a6e9363caeed0c769ea6ea2512a585b19767ebd440123f39206ebf80b708c37dc3f269b9dbec9bc91a306c36055324e883f679338fcca16"; - sha512.source = "1366b563e320f55c4a005e25520b942c9d4e6a1dc6204a3f4e5416fdc6d682cf1b3829233780f4fb7ea81881b3b32f741ab87c2496bc75ef45993c4769fccda7"; - hasRunfiles = true; - scriptExts = [ - "jar" - "lua" - ]; - license = [ "lppl13c" ]; -}; -tex4ht.binfiles = [ - "ht" - "htlatex" - "htmex" - "httex" - "httexi" - "htxelatex" - "htxetex" - "mk4ht" - "t4ht" - "tex4ht" - "xhlatex" -]; -texaccents = { - revision = 64447; - shortdesc = "Convert composite accented characters to Unicode"; - sha512.run = "5a2a79c9faddebd523939cb3cf42236b1d2c441a036cd7fc6f6f62422e5142cdbc0a45ddaa9e642266c41c9fe5b723fc440d0372639cffd399a89d489bd11b66"; - sha512.doc = "87bc11f186513adbf32c15af2f1c1253dd72802fb2008b76b9d7d67fc0a039aab0d2424fb853b6bd8e968cd4e9c1cd93bff786fa07e84593fbda99191b053eaa"; - hasManpages = true; - sha512.source = "8bf5d4957008833d54f87eff9feb14f60694ea02e7e9fd2cd5c5d2e2db3f6de3a33784121208ffab516763fbf578125399cbd6f39750e6bb0162a65c2fc44f24"; - hasRunfiles = true; - scriptExts = [ - "sno" - ]; - license = [ "mit" ]; - version = "1.0.1"; -}; -texaccents.binfiles = [ - "texaccents" -]; -texapi = { - revision = 54080; - shortdesc = "Macros to write format-independent packages"; - stripPrefix = 0; - sha512.run = "e964e090b4bf4e924166d0fbd8daa2087a300d4da9d993bcabc624dc78c3f2db9984f2aa851740e61706af213d112cb32e80795ec2cd4e23a69c13ed92fd91d2"; - sha512.doc = "0f3886e76090beb0dcf295ba875b9ddcd950da4d50da710f1b4417ffc7c1ceb48223a20d7cc93cac3cbe2f19edcfaa74c801096fce33c55e9fbc6c57b1897b22"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -texblend = { - revision = 68961; - shortdesc = "Compile segments of LaTeX documents"; - sha512.run = "fc2026a5b2487af785957873f20fb91045262df7df2a2a71777da76727c054cae19b1e005d30b2616469cc009f680973091a7ce6d291d2ff29b3bcc8a47fc12f"; - sha512.doc = "936b56f3823567252297cc3a659d951b501a5f60b2d43f6d8b19fe803ce651d67363d026bd97d0aded3320148dc230ff81e8961cbfbdb5c9a822da94070bb945"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -texblend.binfiles = [ - "texblend" -]; -texbytopic = { - revision = 68950; - shortdesc = "Freed version of the book TeX by Topic"; - stripPrefix = 0; - sha512.run = "d2418ef6b672e82c08b2f7b7f0089a9dea1f514db584662351135b511912faab828956fc252cd854fd2bb1243bc0e1af428e294eb92935cb63b38e73078858d9"; - sha512.doc = "787b12bc92a17a00fd8278138d0e36d94be377fc23401c4bd677c372dc1d19b4b88c12395366b8ba5d766fbd7bc364588986d7528572510a43ba48ee0330b787"; - license = [ "fdl13Only" ]; -}; -texcount = { - revision = 49013; - shortdesc = "Count words in a LaTeX document"; - sha512.run = "82f51346d9474270af6374cc1619ca005206b1bd729ce1559b8b66e361b184a192c7fbe085216a3a64e656197756593f7d76e52437ac562fd33bf09504b0f58f"; - sha512.doc = "5141bdf4378cf87a19933945d6742427f4467dc73d92f4a470e34474232dbb2f60c4d8db065f812481520f1aa2f8a90d7e97dfc83f0f089d10386847f64f4d94"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1.1"; -}; -texcount.binfiles = [ - "texcount" -]; -texdate = { - revision = 49362; - shortdesc = "Date printing, formatting, and manipulation in TeX"; - stripPrefix = 0; - sha512.run = "c6f34d5ab0c54f799669c4c44e8c6e00381796ca76b9d2e8352a749effe65b9ffd6ebd139998ab9267d1e54da6471f5f38cc6931f7ff046882261cd5e5440bc7"; - sha512.doc = "2338dd99b32a1b2e04326e888b718f595a26848bbef17206f92a0a0f26556edddc3e0a06327d86e72fcb3e55270bcdff846cab3bfc37cbd61115b601164fc10e"; - sha512.source = "30a5c6401d66e7fc2cf0300341c7007881945fdfb267ce4c1f9930f6cb84d04d7895df613215be27da15e307baff361cba6bd4b530ac78f352b74aa81bb94356"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -texdef = { - revision = 64967; - shortdesc = "Display the definitions of TeX commands"; - sha512.run = "ad6b67da367b1cef01db4e7d912685ccfde58babd7dc4868325624114d85e89f5daf3a47fd855dc084ffff66e332ca85c5d77f682d7bfe1b507c43e0a0612977"; - sha512.doc = "bf84f04183654db606a7ebcd30d4986bca69e633439511cc7d9cf57a3a1210231ed158d2bcd86c5014065d355ec94faf3d5f9ab08be568eadc6637ae9cb72aaf"; - sha512.source = "d8c20d77f5b5c68e0acf2fc26a8a0d142aec1377554c3f6b6cf469aef28ae2b82ab4c6844ed8414cad073dada8a035175d6e48b53699daf029ca181cea41f112"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.9"; -}; -texdef.binfiles = [ - "latexdef" - "texdef" -]; -texdiff = { - revision = 29752; - shortdesc = "Compare documents and produce tagged merge"; - sha512.run = "26fa84b3090d641efb186947ce4d1d89c30a2c224cfc8fa759da3ba7ec9cc113c0ed4afc1c3d0fa5f9d0a88af4f9b3001d57651df6b5be6e0234fb78ec4f252a"; - sha512.doc = "d458fa8db6433b4c7fbd23a16f9be53c2c822e396e7f50844cfa6acdd2a08acf8efdd0bd946c8fdc09ca8aa28d1eb25708d3719184634abced92ea5c94d9a948"; - hasManpages = true; - hasRunfiles = true; - license = [ "artistic1-cl8" ]; - version = "0.4"; -}; -texdiff.binfiles = [ - "texdiff" -]; -texdimens = { - revision = 61070; - shortdesc = "Conversion of TeX dimensions to decimals"; - stripPrefix = 0; - sha512.run = "737074790de5c16de0e30dd6f708d6b8ec43e8d387ced2dc6b16b64f38854fad7367884abeab71fd41eaa79dc0c5939904314deed97331f9919a1fbefb0108d3"; - sha512.doc = "3ab30a8de33cedd4bdb9aa0a84104eb5b02be164de9f6fb81a51dbaa6caabe0029228c311970a3287cfbcf270a5430d6883756e9c28fc924a3286d76bb71217e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -texdirflatten = { - revision = 55064; - shortdesc = "Collect files related to a LaTeX job in a single directory"; - sha512.run = "3cd6cf4d9ff3a1a3daef0bd5a998417696f6645cb54679e99e5424ebbe3926c45acad7b999ee4371392a7ba13fe3f2899438ce66efca7829c7aa1eaef84aa6e5"; - sha512.doc = "1114dce13ac47c4352e968f42e89582b62b2702bc25ce3a9a4fd766b3bd63607e11eab52d19bc9f809b2b67cd92153c4f591632cfc72dcaf1c0a1b1cfb416b11"; - hasManpages = true; - hasRunfiles = true; - license = [ "artistic1-cl8" ]; - version = "1.3"; -}; -texdirflatten.binfiles = [ - "texdirflatten" -]; -texdoc = { - revision = 70583; - shortdesc = "Documentation access for TeX Live"; - deps = [ - "kpathsea" - ]; - sha512.run = "f81535eda231bd03ffcc2c46bc05d04f73f6ec7c6ff0c436da0d42417f0a8b21c444489762a33dec5cefebbee9113f403205b621e51ee2ac33a2b23aa0eff431"; - sha512.doc = "fc6d8041f21e00214dfed376b29bf47c52a24f09358255d0587c24eb1a046a6d8e65c448109c63d485f76b2cbe90ec8b609c20bbd8490206224457b1fca2499d"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "tlu" - ]; - license = [ "gpl1Only" ]; - version = "4.1"; -}; -texdoc.binfiles = [ - "texdoc" -]; -texdoctk = { - revision = 62186; - shortdesc = "Easy access to package documentation"; - deps = [ - "kpathsea" - ]; - sha512.run = "f3300a088f5ecedfe66ca277f793d3565b5b0f111721a0d73a788d65b72f09d0103a11edda13679fb9e919f11ce9ed3662717c18e46be99a83b744a1f7ec88fe"; - sha512.doc = "fb403dc17ad839ea64bcf6da84e59288a8745b5eb731051d7df8593138aa5d3b6891d56f52bdbe5c9a41e590f1f36db390e7e7a825d9aaf00d4fbc01c8dc16ba"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.6.0"; -}; -texdoctk.binfiles = [ - "texdoctk" -]; -texdraw = { - revision = 64477; - shortdesc = "Graphical macros, using embedded PostScript"; - stripPrefix = 0; - sha512.run = "f4d160e494b1579743a83b2a0926df9e8dd69fdaa79d3f4f97e0ed5f4ece31ab380ff6994a1c9015e0af9b842bdfb9b066442ca4b3018df6659922af9f746b0b"; - sha512.doc = "e177209a937fa1d9d683eb805e9e8929612b4b1ff750955d38ca681b657662712a59609990f77021063a223ce61a92fdd567eee91376ef4b67fd3a322db09463"; - hasInfo = true; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "v2r3"; -}; -texfindpkg = { - revision = 67027; - shortdesc = "Query or install TeX packages and their dependencies"; - sha512.run = "a6fee1faade94bc462dd4fd0e567b7716d0dd057e0c973b9a498949e701bd054fa4fce1cb8717f1d052ab03ef9b894e2f222e2e9a70957215f7266bcbef15f57"; - sha512.doc = "452df8270ee53864594cef99a7ce0fbb6b325547de0ebcecbecb4463646706fa9e726fd433f31c4f6c44d2bb915431aecd7150921043e50f6b3a2ac5e51eeb70"; - hasManpages = true; - sha512.source = "d784abf4241ccd65c8c910c16171b30d686a53933043d8f6ecf787866e5508d4e89866c90fe2627ae4b536ed7647006f6ce257c8b47676adb77221d08b6ef690"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "gpl3Only" ]; - version = "2023E"; -}; -texfindpkg.binfiles = [ - "texfindpkg" -]; -texfot = { - revision = 68110; - shortdesc = "Filter clutter from the output of a TeX run"; - sha512.run = "0886ab706ce0f18b0eab304afa1d570fd55b57bc02c8b3b1aacde77c73ee260f688bd395b2e362cb998cc1aa9a2d1e228b118f5234eb9c40ce867a97d86f4ac9"; - sha512.doc = "d652523552ad401598c68227b3e0e11c84261a3a243afc731f54892fc971c8f22e74bb58b6eb45ac15f70c8789e5a4a9c4dfca81a3dc304762ab97c8bc74e3c4"; - hasManpages = true; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.50"; -}; -texfot.binfiles = [ - "texfot" -]; -texilikechaps = { - revision = 28553; - shortdesc = "Format chapters with a texi-like format"; - stripPrefix = 0; - sha512.run = "b65e737c138a176e6674612dda6b066a9953d8b737fe2e947eb10c058d6b67eb27f154a3ca4f346481f4dc077fddc2c95cc302762a9e9eaa2f0f1d23160bd4be"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -texilikecover = { - revision = 15878; - shortdesc = "A cover-page package, like TeXinfo"; - stripPrefix = 0; - sha512.run = "fc73ce5601a10d638ea78fe815978d395001a73be75084539498644ac7f3fea0f3a57e95bd80e5f38659891adfd9c817e6068acfe04972a836938d733e0d4382"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -texinfo = { - revision = 69818; - shortdesc = "Texinfo documentation system"; - stripPrefix = 0; - sha512.run = "5a87395dfb732e8cd213d50c3bc3079c4c6dd6a070e1be580dbe45c02b2c9f0f3d5590dc36222d0833c262c6412024e55f0881e92358715a585dda064b964e2c"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "6.8"; -}; -texlive-common = { - revision = 68510; - shortdesc = "TeX Live documentation (common elements)"; - stripPrefix = 0; - sha512.run = "1d56101ace5038cd3b8d36c90e026a1c26363535fffbe1ffab64dfbd01408e7cdfb66045e11b13e22491f238e2d3a7015fdeb9bf75fa56f581d2ca5da8f1a01a"; - sha512.doc = "c9832e8249440656334db12b6ee54b467fdebe1194b6adbb8d28ee375250bc6458e8c1b48b5684eab0ff2f0b55db4f4ab6e77679df447a01070a15c1243e5d83"; -}; -texlive-cz = { - revision = 62854; - shortdesc = "TeX Live manual (Czech/Slovak)"; - stripPrefix = 0; - sha512.run = "5491e3ebe9c70887450f8404b64c01a8f4c4c54314d2acf3d33b8921f088b8885074d53bdb42351198daa9cd2c72b1ef97b1e9af5092aabded700ea6f2b995f1"; - sha512.doc = "ff1124b30be77782b5c5a1b80ae69c852a5a9e81446c0574007bc28910ea6202662514a34a85858c577bb528f9fbcc11f798614d11914876151d5aeadb3fcd7d"; -}; -texlive-de = { - revision = 67108; - shortdesc = "TeX Live manual (German)"; - stripPrefix = 0; - sha512.run = "521ce2f9dce3fb329de464ee847c077d449885869e964648e8f89d920231a68bf0d3562e5b54b3cf36716dc3d85b4f0d0591e06843796f216670f963c7191324"; - sha512.doc = "30eeabe60126b3cc7fb8bd400613a9a5cd0484ea73a8fd0e4c3ec7edee5e985c64c8073cf2b121446b9ea1b60ee54609687c168a75198408a30cb221d4a0ffc1"; -}; -texlive-en = { - revision = 67184; - shortdesc = "TeX Live manual (English)"; - stripPrefix = 0; - sha512.run = "d77184250d7014dc65e74baec435fe42e784f80349df81782e8e1f7681cd14e3cc99313d61d72c010e5ffb33a0de06890c359e7b582e94662f253f8ed29cb7eb"; - sha512.doc = "9da87903b5ebfb7ae0ea257ecb77654fe53d93b86fa73d8089b5b2adf46183862e6c67d3b93d6e112f750cbb4af6d6b034f35a1628adac413b61857a91dd962d"; - hasInfo = true; -}; -texlive-es = { - revision = 66059; - shortdesc = "TeX Live manual (Spanish)"; - stripPrefix = 0; - sha512.run = "d055fbb5a4cee9d207f60ee27033534917a0e91dd2e37791290737bd2727b47ccbb3199c0e18f4a564f15e5dbed3599203a7b3611558a26f784713714262311c"; - sha512.doc = "f124848f80289190abadca35a259d60781b5ae75771687ee44e863ddaace61227217a7c1ba888a85afd28583f1eadd4c91b03e224f5cb1b4516772243ac0fe63"; -}; -texlive-fr = { - revision = 66571; - shortdesc = "TeX Live manual (French)"; - stripPrefix = 0; - sha512.run = "2b5f6f94f9e9b3af2a18de94b85615bd09cab31d9e3f01b9ac78df5d22fae6ff84d300cc39aa92d1dac02d858c69e86d9d3dbda422574a4c3ce4652b08990090"; - sha512.doc = "5463c1ecd592e7d304325276f950964cb52cedeab20084137deb0f4b7de1b17b536e4b030cd0e961191d61912f9c4db27f16e6e196104c84ad16ff7b545a7e9b"; -}; -texlive-it = { - revision = 58653; - shortdesc = "TeX Live manual (Italian)"; - stripPrefix = 0; - sha512.run = "22874afcd046572176439818fd3a1c2200d00c0e184adc4fcbfa90b2ecc88dac7f5b28eb95c74bd546fd7472fcfdb2c5b74e5b1b5d08ffe4d4a5aa5f924da698"; - sha512.doc = "0c0d3585bb2c12476751bc5dafb5ea5e10dcaf5149b98e823e607d7a99e5bd9dfd698d73950ecb1efe353435ba2f88be2c45e18c6cde2245df90cebfdbad4417"; -}; -texlive-ja = { - revision = 66482; - shortdesc = "TeX Live manual (Japanese)"; - stripPrefix = 0; - sha512.run = "92f3767daa4e88bcbcff86aee215bac0ea945645a626e9612e033ad12513e41d15ce8074c22cd39b0fbff9d951608bee799dbefa431c31ca9e8f4681f15242fd"; - sha512.doc = "464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a"; -}; -texlive-msg-translations = { - revision = 69796; - shortdesc = "translations of the TeX Live installer and TeX Live Manager"; - sha512.run = "470b395fc5ae1271c39ca5e85d7432e46ee2379a338120fb442542fb3513508dfe8c1326cf60148a4a3f58cbc990913dd272661c6b9a942f167ee6d6d15ac7dd"; - hasTlpkg = true; -}; -texlive-pl = { - revision = 66576; - shortdesc = "TeX Live manual (Polish)"; - stripPrefix = 0; - sha512.run = "b43de2e6d5fe66c53370a4c43ab1a66cb08f353944f58756debc40d6651cb5df11824d1eb4ec79890b449ed611b8674c0773a4e477ad4abf30f162906c1f75ec"; - sha512.doc = "09319f848fe28ca344367f70c826380b3927aa26df7eeb195f6eb176d4951ded181cc47c772f401e1e7936de5fb3a9be3339c69f5bb4e8a5f9785f7313e6baa8"; -}; -texlive-ru = { - revision = 58426; - shortdesc = "TeX Live manual (Russian)"; - stripPrefix = 0; - sha512.run = "7658ab0d98a505eda9a86e9ecd64b0e35d9cd332b03066b46825c2a6252b9aa8edb24eb4af2bfc267127b349f741709ada836104dbfc2becadfd97d22e737365"; - sha512.doc = "40e8b29f29ed61addc2b9e7ce4b73d12bf2e59f1c50c65e59e9c8cac5e6c3ef264ce2071b0d54e15f5029c101a51d0efcda0144e113aaedc714eb1300aa9635d"; -}; -texlive-scripts = { - revision = 70585; - shortdesc = "TeX Live infrastructure programs"; - deps = [ - "texlive.infra" - ]; - fontMaps = [ - "Map mathpple.map" - ]; - sha512.run = "fb5abd894d2ac7021391b7ee270cc833131c2a30f406e8b63e1b3c713abda08c3a28a30067d89e905fa40d7092c9529e8ed954a020833724cc867c6f2eab5272"; - sha512.doc = "3d497cf7940b0b6410a537da324da33276b8af004c00b54462f40986d7a2af818c817b57663d47c714c3e4237dbbe622627bb64dedbaf2017732bc76e59492f5"; - hasManpages = true; - hasRunfiles = true; - hasTlpkg = true; - scriptExts = [ - "lua" - "tcl" - ]; -}; -texlive-scripts-extra = { - revision = 62517; - shortdesc = "TeX Live scripts"; - sha512.run = "46ac37826d3c60de6c9260bf83d6275d49a35cbde88fb03481a050f92e87b698e9a94b2e520a74edc0417419f5a2dee53000a529b9c81ea6f6244a83480e56e7"; - sha512.doc = "22cf59bf4dafc7ad9425086bc0aaedb2bf5f7d8aa6ea9c65abde2d523be37665b9c9bee4acb399857eae03613e7241ca1d6099f43cab77a95c10eced8813ad80"; - hasManpages = true; - hasRunfiles = true; -}; -texlive-scripts-extra.binfiles = [ - "allcm" - "allec" - "allneeded" - "dvi2fax" - "dvired" - "e2pall" - "kpsepath" - "kpsetool" - "kpsewhere" - "kpsexpand" - "mkocp" - "mkofm" - "ps2frag" - "pslatex" - "texconfig" - "texconfig-dialog" - "texconfig-sys" - "texlinks" -]; -texlive-scripts.binfiles = [ - "fmtutil" - "fmtutil-sys" - "fmtutil-user" - "man" - "mktexfmt" - "mktexmf" - "mktexpk" - "mktextfm" - "rungs" - "texhash" - "updmap" - "updmap-sys" - "updmap-user" -]; -texlive-sr = { - revision = 54594; - shortdesc = "TeX Live manual (Serbian)"; - stripPrefix = 0; - sha512.run = "de99d6d13c6b68f8327c0b72dd3ab8aef92d07085f3eb59d94aaf8901d11d542c0795a33cb2bff1ff0dfb1acc99e43fc767150956abd873536a7d4e3b8f031f7"; - sha512.doc = "4e07f6f015a023af113822e409e03405f49b9786f854308c14f2060cac75d8420ddab090696044860be75f1337b6d3b6e7a45fc0d56969b0894efce3a8c60ae7"; -}; -texlive-zh-cn = { - revision = 54490; - shortdesc = "TeX Live manual (Chinese)"; - stripPrefix = 0; - sha512.run = "1a7e43528c2dac5c623943b1b268b99f0db6a4876f50c5386a8ea160b8b5e066604d34c0a53cee25cc3f839eb7f4be177e3d98ed51c83c77df6293c77a02e0ab"; - sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d"; -}; -"texlive.infra" = { - revision = 69740; - shortdesc = "basic TeX Live infrastructure"; - sha512.run = "d3ef23150149d240d8b74f5b9f6126de90f44960238deefa94415310586790d5324f9fd83478fa4d726ef6dff516f5382222f56933599b384101521a66d0a248"; - sha512.doc = "fb06ad12bea2d062dd5e2049e74e096064198242f010cd6e04e2d4a92a7fc39ae829003c7ed3f8347f96c99c31e26ec44073b45ed3ebbe9e18fc78e801d00c94"; - hasManpages = true; - hasRunfiles = true; - hasTlpkg = true; -}; -"texlive.infra".binfiles = [ - "mktexlsr" - "tlmgr" -]; -texliveonfly = { - revision = 55777; - shortdesc = "On-the-fly download of missing TeX live packages"; - sha512.run = "63353a768b700ea11982e9552046dfd1dc3d844883f03099833cabe2af5ccddecebd7ef737fbcd256c90304174165a4d283d4912f8311508e61c723d751619a7"; - sha512.doc = "46d57a6ebd68a56d55ccddc68006693fcbad8ed8f809243a3ffac7adb82da58cbc28239b57556d5d8d6388ea034b6571557588ff9365d4891145d5cc3fabfaea"; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "gpl3Only" ]; -}; -texliveonfly.binfiles = [ - "texliveonfly" -]; -texloganalyser = { - revision = 54526; - shortdesc = "Analyse TeX logs"; - sha512.run = "85f491af4a3867283d56bc2d98ebcf491e622008b3a70bb2cae03b9deb38170e1c73088d109445fac11fcce6e10aac57f42f03066580a79c978dd19af1f74caa"; - sha512.doc = "8eb890f880dc56d37e29e2f0bb3228e36031d45010677097136d40959ba7ec0cdd10b5056169325f481318f137a9de2f180438f1716bfa12705fcf0db315e3cb"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.11"; -}; -texloganalyser.binfiles = [ - "texloganalyser" -]; -texlogfilter = { - revision = 69919; - shortdesc = "Filter LaTeX engines output or log file"; - sha512.run = "cd70a50317af4ed121bfca914ea3083d11be2087b9507a7caca97238ca5f62df418b2e059feb1d24492c87f57096f3e3268ba4921f9cff1709d43bfa6be29f25"; - sha512.doc = "7d83863001f4c57018253fc1ddcb08abb847a76307fda75c85f991670fcd8de006cee3c6292696596fc7be5eb752ff38fe63215e2a80a51d7a35e19dd8702914"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -texlogfilter.binfiles = [ - "texlogfilter" -]; -texlogos = { - revision = 19083; - shortdesc = "Ready-to-use LaTeX logos"; - stripPrefix = 0; - sha512.run = "d3b5f5ea0dd90e925bffc1ac0f790848d1c2abe50003e2591c8efb219b4a205d48e4420d2000b3de15b1ff9d4d0bd9e083ba1694d4ee34febd68f8db0df16ea2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.1"; -}; -texlogsieve = { - revision = 69436; - shortdesc = "Filter and summarize LaTeX log files"; - sha512.run = "a4e94f5674cc2bb54f03e285aa18a19d3c389455f2ab15e40998aed6d211435bde3fcf549c989364673bc77a93458e4146b0e662d4bd139e18880a36d4445832"; - sha512.doc = "47d11f611bc3a440dab6dea06cc55053802d2b78133eec21af4eb8d44e74b013a4dd8df0667b946afcbdd8132821ab1429f30f74da610bc1e1283793d465c454"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.4.1"; -}; -texlogsieve.binfiles = [ - "texlogsieve" -]; -texmate = { - revision = 15878; - shortdesc = "Comprehensive chess annotation in LaTeX"; - stripPrefix = 0; - sha512.run = "52c35f096426385f229b7ddb66c8ec2a20539bbad6296f2bdd230c2da79edf5668fdde0fc7ebac7099a414b622b31309fa7f610564c8212602f71dca7193c597"; - sha512.doc = "dc1ca347bfb0ba8c54403e643b4052604f98b39ced23d092808cb221e930384f49d1c34794a933b0a05c7691ef04158688653ce69eb8a4b72e9172b4254954ee"; - sha512.source = "b75362c3b748021934052ef38b9f95ad7047804d5100b2a00bd8f9e396103d2d641f1fc5a3c636cb42ed66fa88488f6c69d3b188e3a55f715df2d19c05331889"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2"; -}; -texments = { - revision = 15878; - shortdesc = "Using the Pygments highlighter in LaTeX"; - stripPrefix = 0; - sha512.run = "6b0bc365ff7ba6a8118a4e83350e73d5c4dc40e6c30a0ed3267f0f20178a08264866bd016aa3a9da72d4f27a20bf7e8f658417561468294745b78911ff46fd4a"; - sha512.doc = "67b7843546704e9b48f6ffe75a33ab68a5d8ededf3cd45ca329c6ca5ffcc783f4ecb9a663fc4eb94fb554e3c43e753512f82dc8f2f7924c1bf4bb8942aabf749"; - sha512.source = "92d2216144fcbcc96907fd09ece64428684476ab8e9f3a0c60e898f9f4cf7e0627fb145adbd8186d56a6d5a21563c41d62871e860ad51d9b74e5a0f6441a44de"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.0"; -}; -texnegar = { - revision = 57692; - shortdesc = "Kashida justification in XeLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "09e4b3753d99fb4f99c150da87f5602dad5a28778f9489e67f6e4e45d5f9dbdf0edac43826c1a162280e9399d28d050b5ff230713b2e45cc2804f21a76dba0f6"; - sha512.doc = "403e75ef47ffc6da77e4d61dcc95419932d2b62ebb0c107cf612a195b0e2a24862139a518ead801ee15f56546c44bf9cf0e56aad7b4d8a7ede8529063aa745d1"; - sha512.source = "9785ac1b0a7ce4f33458bfb3acc203098c8985d6381eec5c610de16b22e2e60ecb386bb5b98da0f9f082b901b9dee096135c5c2a38d5233e92fb09413de214f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1e"; -}; -texonly = { - revision = 50985; - shortdesc = "A sample document in Plain TeX"; - stripPrefix = 0; - sha512.run = "a51d7288abaa3bd03e8f3816eaf2d7f8931340e95e3897ea4a63ae3d251277a78e71ae66b617da6cc81a8100c9ffe64a1c9142369c67d58daf200ab2ed7c9682"; - sha512.doc = "5f03987ce079f21801f08a7e325a36c6f1065f5cc32ff2dbec7989bdd3a6b3c54ade8f96a71e19553972d3c36454a08b007adf3287a7be7972a8b3ce6961778a"; - license = [ "lppl13c" ]; - version = "2"; -}; -texosquery = { - revision = 53676; - shortdesc = "Cross-platform Java application to query OS information"; - sha512.run = "d454a95139920c24404a501ad3bbde4ae8e809e0f0b6b7c32053d375e0cac31d81087a53d65ab067c9c6dfd988ae90429adbc5d7cd2e1b23f41f46dbf6a25056"; - sha512.doc = "51bc4e5a9f62b4526198b380fa69dd2d79ff69ccf0915aef4269d890fed057c4130ccca65e0c279e58ebfb72347d627b186534138f9c4bc8d395677c73a2a0fc"; - sha512.source = "5ed0dddadb7e8f406635d7a2cc309a030826607a76b4520b1f47a07affb603d96577118ba1fb5b9797322aa49a68616acbbcdde39bc8538c54c5d2fa1aebe510"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "lppl13c" ]; - version = "1.7"; -}; -texosquery.binfiles = [ - "texosquery" - "texosquery-jre5" - "texosquery-jre8" -]; -texplate = { - revision = 67201; - shortdesc = "A tool for creating document structures based on templates"; - sha512.run = "44f2e0008d1b8629bfd15267e3add7490c9a21e28d7b29edc5e37ca51e60bfbc8b25035cbacb57bea5df762ff9783ccfdfe6d9244bced55961509c7ad97046ec"; - sha512.doc = "bfcbb319719b9f8d4473c50afcd435eaa1cfb906f6107dd7e859bf40a30b452dc135ea1ce0a733c297112647fbc76d6bef16b9474a65d85e6d93e5df96acc549"; - sha512.source = "e11a6716016b40525f3ecb4906dc1b54650177f28e7759499928ce78af410ea9a159fa3703cf2098aae227b6bc126cb4be35f8637ef6e15c7df94fb8ce4145bd"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "bsd3" ]; - version = "1.0.4"; -}; -texplate.binfiles = [ - "texplate" -]; -texpower = { - revision = 29349; - shortdesc = "Create dynamic online presentations with LaTeX"; - stripPrefix = 0; - deps = [ - "tpslifonts" - ]; - sha512.run = "7e2efadabaf173fd30c592cbcd2338563b8690048ccaffd86efb079a04b7b95c8ab113b99205cbb2912eae3a709a110d7b152270422cf2cbfd2ab85d42f12d69"; - sha512.doc = "e61965b5e31b487daba383a4e6ebc0dba85475f8cade2faae6adb8576ec7ec544b518a6e0e105aa185ff82fd6aba7a9ea4abda2a9446d52f5b3acdb42580e315"; - sha512.source = "3add8eeda886ce6422d3b7ea53a55dc69bb2f5c2e64cdede105a7b4756b008807bef6245ddc2596b45809311874e566263c51e98ec6751b4db9d3c5c5f58efd3"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2"; -}; -texproposal = { - revision = 43151; - shortdesc = "A proposal prototype for LaTeX promotion in Chinese universities"; - stripPrefix = 0; - sha512.run = "19265b32271b8603d8baf8b16f043c3228606230c1151a33e243e493b6306faa839860f2b07ec9d5d43c57f49e984134e760342bc6302186924e5c95cc1f3380"; - sha512.doc = "70c04643ced459099ae095c88c0316e96c75e99bba0877198c7800d3b5cc9ac872f74b36adfb03dde968150abb3cb99131fb52ecaff56dfbf1aa85379718a74f"; - license = [ "free" ]; - version = "1.4"; -}; -texshade = { - revision = 69371; - shortdesc = "Package for setting nucleotide and peptide alignments"; - stripPrefix = 0; - sha512.run = "28ec64b312161f1157511d4a4dcccb3378bd054ed6abe75830b2eb98b30c5afb2ccd1bc88b0ee0fb049a3610e97b4408b8e66675094a74abe1bde8abe5d1a1e4"; - sha512.doc = "e06fcb1e6d743561ecc1b6a1a14e252fa5a7eceb2bb0ceb27409dd52c62ec5a1397cdbde7bf61e62b143af2fe6787a49ad3b6b9117f8418e409e54b26deb2a25"; - sha512.source = "23bc248ea1ee572c6ac13fcf9697810ad6881530a44adf9a16927801b0a951c3fe012295ac2816c85f203fcadfb35f04460510ea7fbe2fd758b05098a4f06dee"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.28"; -}; -texsis = { - revision = 69742; - shortdesc = "Plain TeX macros for Physicists"; - deps = [ - "cm" - "hyphen-base" - "knuth-lib" + "pdfetex" "pdftex" - "plain" - "tex" + "simpdftex" ]; - formats = [ - { - name = "texsis"; - engine = "pdftex"; - options = "-translate-file=cp227.tcx texsis.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" ]; - } + pdftexcmds = { + revision = 55777; + shortdesc = "LuaTeX support for pdfTeX utility functions"; + stripPrefix = 0; + sha512.run = "91054b61b76382813d80e873d908cc07f8571b7651f49a3dc3e87063507af43bf31107c34187b703b0c4462eafe0cd605159803c72cbf2821cf6ab3afb78fc6d"; + sha512.doc = "a16db56366e80b1694b78919a245336c37690ea9a1305a606a3bfa85a73c854e92d1cd8b9ddb0bdfdea82f1ef684d06d8b4649e4111c39f24f321dbcb01aa036"; + sha512.source = "f3e62a5f9029f71c652105b137048cef4f5562dd0848bb7a94d251e2af579c394322a70f40aadbed3ac56312005d59124ef3fd5a2436127a72c430d344ecede1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.33"; + }; + pdftosrc = { + revision = 66186; + shortdesc = "Extract source file or stream from PDF file"; + sha512.run = "8cb175ce464b0ec0bf74c39ddcf381daf9e27635098e775d929f5cdc60858d39cdbac1a4302446f9368a274ce4c3afda9636d882ef4097d2272d22e190d8d272"; + sha512.doc = "01598180f8eff2913eeebf5bc3d5f3aba32029286fc6e0c072aa8c0f4dabaf0c6e71ae7451ba9a7b65b4d0075a7f0a3baf345b02c5826eab64d74e39eb82798e"; + hasManpages = true; + }; + pdftosrc.binfiles = [ "pdftosrc" ]; + pdftricks = { + revision = 15878; + shortdesc = "Support for PSTricks in pdfTeX"; + stripPrefix = 0; + sha512.run = "f7c0a71e44d0d388ab952ff820e5af63fe0f94acb2feb3415a2d1b3cffd94efc7e8bd17efbb7b608d082ab1b7d7ba1b780c63088df54a8db241c9b3d133eab1e"; + sha512.doc = "0e3ec1f3b7d7c9bda1e08060f0ee0615244863e513a25370b598f22bef00e6ece79592a105eb13cc913c169b1994c8a38fd60be0566e1c52e1ce2f97dc1e5995"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.16"; + }; + pdftricks2 = { + revision = 31016; + shortdesc = "Use PSTricks in pdfTeX"; + stripPrefix = 0; + sha512.run = "e50406cd680e1d5cfabcfd8000b743fde61dcff7e3c686b06f58fd1fd36e414d53140b5d244ef65931aeec67dbf458e5e2d43266f26ee9de301babbc0f88853d"; + sha512.doc = "4a22c280a28e4a45f068d52f4d75f19b5ccfec30609d7c8d143cccc67d16fc04cd1ae63e7d6a5a659a0805ed85d96d57ff5fba4b246f67029457088e7696ad23"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.01"; + }; + pdfwin = { + revision = 68667; + shortdesc = "customizable windows for screen viewing of TeX documents"; + stripPrefix = 0; + sha512.run = "1064e81793884565568f6bde33072dc007c9b9a07c010be602111ea4429ccb803c18a3af13c85bc1367279624266063756bc59c72e6190e70090eadc8857b8b1"; + sha512.doc = "5055cfb0e2cf0e1cc105a43fb82c05e133863cd22278792de5aa931afd84afe7cc3b35566a399dba97645da4495d16e47d723155991ecf1bb3e13a892f230787"; + hasRunfiles = true; + }; + pdfx = { + revision = 50338; + shortdesc = "PDF/X and PDF/A support for pdfTeX, LuaTeX and XeTeX"; + stripPrefix = 0; + sha512.run = "c1e1be225efd5bd66873663ccb134521b40253875248096a66a8499609e62e481fa64e563afd75952b2dc0041fa1fce594f4047c3c91fe6b9443493ce8899ae7"; + sha512.doc = "22b7e52295ab8da136e584f545001d0db480cefb06b7d595133ff3508c9ee3e7b7d8c8a93c41ebf24a9e313b4e40fdf355a88ef0a65b629c3b27f5f4bcec906a"; + sha512.source = "31c9d2e7fb89f9405f26a18dce6a5066958867ca03ee793e46f9676022ecda77074eef23fb4a238af5b077d642107c372e268ce5b4e7c0358d7ca8c0ed6daddb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6.3"; + }; + pdfxup = { + revision = 59001; + shortdesc = "Create n-up PDF pages with minimal margins"; + sha512.run = "f5b7623c1ecd132bb3646af5953245bc7378901bd5ded2e910487770cd79bb3d248cad426aafd18dd12a28bdd46be0f89b81dc95959f06688fb6a7a8f96dd11b"; + sha512.doc = "23db38fd8ebbd04bf6fed3b2814360cb6d0b736db1540d0298e9ab6edd449894c420078adae11d97998fa1fceb8e7083adacc0048337afbf4b6fbb253c8ed21f"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.10"; + }; + pdfxup.binfiles = [ "pdfxup" ]; + pecha = { + revision = 15878; + shortdesc = "Print Tibetan text in the classic pecha layout style"; + stripPrefix = 0; + sha512.run = "12092c82c52e34259fb0894b8375c45fd94b9aead121085736a0f7bac90b7e156906a22d233c596c79880aa0b858f7213f37b2059cecbb4627ce2e4163f22335"; + sha512.doc = "3d0d9184aa0009ab67f299a87b3840513229a93ec08e33208fc7b3c1a69fe043b02844ccf7569d14c5d5cdf0546224b320970caa080458c92cc299853b021c98"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.1"; + }; + pedigree-perl = { + revision = 64227; + shortdesc = "Generate TeX pedigree files from CSV files"; + sha512.run = "4aca97c3d231e3c68a8372d6d8c970aa681fef3d1b7061fbea1648a188c03e06221bf83d2ed0678390780e9a3c2edfe425ea0050172e837ef1a1a62369c41909"; + sha512.doc = "b0b251fcf40185b017835a7a47e32736ce0d49c56be134bf93619dffedae4ecf44d36050e4515fa681c8c37707a933d8faece2943b4eddb58dab6ba3a2df113d"; + hasManpages = true; + sha512.source = "febf928301eddf00aa84ede679712a3e58520368f7ecd488e9d696b82dc6ed5afc403d88b344071b4291391528a4552620c4882ba2d2e6ee518fc3a8733a2f41"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.1"; + }; + pedigree-perl.binfiles = [ "pedigree" ]; + penlight = { + revision = 67716; + shortdesc = "Penlight Lua libraries made available to LuaLaTeX users"; + stripPrefix = 0; + sha512.run = "7765a7beaf9d2f99f383c6723fb7ddf3968f656a433bd519631b539e7c599e4ea26546585c1be6732a42e1632fc11b980ee9316de6cfb765332790f81d548aff"; + sha512.doc = "30307bc7774c3768227da33c31c6296e8d470f1f835f792248ed4ff40e261ea682fd967987396808fcd36e7e0a74c3da2bb947de7eab7af5783e3790857b081e"; + hasRunfiles = true; + license = [ "mit" ]; + }; + penlightplus = { + revision = 70319; + shortdesc = "Additions to the Penlight Lua libraries"; + stripPrefix = 0; + sha512.run = "97de3ce726fc5469bf1230edba37728a332e91dae33a9498b4e32c474694866e95abfe9156dee1e4c4a7b4f9b07922741c87519ab892c01f037db04a92150238"; + sha512.doc = "e35a2d252d8377efd170d9b42ac233af921b34b2a9a91248ed7640d9b79809debaca54451251fe5cc1394df73f0ef476c72f614ae5aefba5db319d7f38aae7b9"; + hasRunfiles = true; + license = [ "mit" ]; + }; + perception = { + revision = 48861; + shortdesc = "BibTeX style for the journal Perception"; + stripPrefix = 0; + sha512.run = "669bf4b618c4120d6cd7b574352c38d0fb3ab7bd949e26ea239f4ceb0fccbe102dcc6644ad2cee9eb79385f590918a12bb2c065f80b54e8343223056df448060"; + sha512.doc = "35428e19d9e2429691948331ef574168a3eb5dd3e09f4286c66003ced8c0a65da9853de4dd57a1920e2f2315b8543f9ec9e096bbd26123554455dd8c23b33f55"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + perfectcut = { + revision = 67201; + shortdesc = "Nested delimiters that consistently grow regardless of the contents"; + stripPrefix = 0; + sha512.run = "5c3963a08f1041e78f871084531187214f3735b15409cbdcb4491046feba1fbe44887b23f450d40eb3a697a49e0ecace584b96cb10a7f959e28afc642259b5e2"; + sha512.doc = "4a978f726c8b5a69006f293b8428978a1a6185df27f2d26a0be06309fc55ec3b8cd6117cbb4ee732f6c2d0ddcfe8ad66d86f7f838ee2e386931e41c0ab043e2c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + perltex = { + revision = 52162; + shortdesc = "Define LaTeX macros in terms of Perl code"; + sha512.run = "af7cd6b065f2405a514d20cb386b34399742a42286002ab3e0f795b64dcb434ae97470ce9cbf25cb27a9b124ebe56844b47c7cf89e1f83a4bd35f1bfcc98163a"; + sha512.doc = "d39c93f4bf3da08266bb0f10b06582db2bf96bee73faafdb191af3770c7c24abde407774f21d3c97b1f2453a8a9bd24576acaf0606796d7439334b8b1e42ac7d"; + hasManpages = true; + sha512.source = "99a8e27c23a7056496c56e734fefa1e921a002d7b86c153b3a209f7c3d7c415dac05e77b0ce5bc8685bd622243d6ed53be4a7f570a3ed487c3d55baa5b5af06e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + perltex.binfiles = [ "perltex" ]; + permute = { + revision = 15878; + shortdesc = "Support for symmetric groups"; + stripPrefix = 0; + sha512.run = "2b1ea22ff45718a12f5a031a60a2780a43b324afb3a7c4b3bf2e1a9808f5eb789938f0e084214912a50dc1a8ebe76c58cc39dccd5a411ce001fafc8fa5c41ea4"; + sha512.doc = "f0f9f8d4e7e9b7cf5794529bd5febb0bd58f1ba0e95a72d688280ac3e6837cf39bdfb62ac29584fbf8cb37e1dafdcb971b9333a0306fa867fa4a1a256dd5a4e3"; + sha512.source = "4273fc09b30de6ea203e13b09822a07b222de8d1abc143e67c0c465bd8c31ca4648b83a7fbd895a8865b7793462bd020642d383e761c926504a6d40e785c0108"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + persian-bib = { + revision = 37297; + shortdesc = "Persian translations of classic BibTeX styles"; + stripPrefix = 0; + sha512.run = "e6650399eb5129dd0ad08c3ff93843da47287ce641a65826545b10a9213437da56467eabd8c37f1a7fc17086af968043586c53bdbc7485e9a4453b3f5b23bf83"; + sha512.doc = "a18f3652bfa8cccd8d574e475859bde8d41de04d3093f05222dfe5687460b8eb29a1e9bc258cb73cca69dad52f567572a654f46414a0d513ec27e462f4787f35"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + petiteannonce = { + revision = 25915; + shortdesc = "A class for small advertisements"; + stripPrefix = 0; + sha512.run = "8ff32eaddcc84973851b93f0c1c1b250b596a080669ef60ea2c115098c4984d426e37240ae8781fa3b95ce494e9fecccdd259fd25b47402498028f2b8e5f9fe3"; + sha512.doc = "d171f31889fbf07b727c78a99bc91a2e6a8231faa25944a600ddb17ba32273ffa40a39a56e6e9b2c35ebfd0bb396ee699ebd9ab179577ab07e63feb8686d4af5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0001"; + }; + petri-nets = { + revision = 39165; + shortdesc = "A set TeX/LaTeX packages for drawing Petri nets"; + sha512.run = "0807444f934acf16b052dc499a097a2a645d037622a71430cd82fcef85d11bc652341ce6396a27d717effd08bde8ba3224c5235351fa9146000c01abd522f644"; + sha512.doc = "cf03048e2bccded143fb493b100fd19103ab90f40713441c5380446702d6c57ac3820f2892a3dfdb80880952e09de78e69b309783767a3e157f76b81c9360535"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + petri-nets.binfiles = [ "pn2pdf" ]; + pfarrei = { + revision = 68950; + shortdesc = "LaTeX support of pastors' and priests' work"; + sha512.run = "2022347ebca4dcb71e1dda7d8ac906733a664b98d14660e48b16e6592ae229641b8c7bd10602d89b3b01535d2851f9504e3329a9f82f4adb5a4c68dcd69c6ce6"; + sha512.doc = "4e5eb99b0e0409395954170339a744d18f8d0f8ee389ad1bacc684a037cc8b2b6121850a7674ec9b699596bcfa8e9e36521d13571bcad0db271cd1f9fa619488"; + sha512.source = "65d865d2e79ff7476a3629fd3ffaed09b3edc8fea9224fd7126cce0203bfa6f5ecb5caee6727bd6d01196666f138786ca409f3530a577efae4fccd405cbd845b"; + hasRunfiles = true; + scriptExts = [ "tlu" ]; + license = [ "lppl13c" ]; + version = "r37"; + }; + pfarrei.binfiles = [ + "a5toa4" + "pfarrei" ]; - sha512.run = "f6ad2f3d49377de738bf37bcfa1658a2977ea3d399aa4625e2482c5292e65596c67c8912ed1b2d23b1a4611ea2cc2281585b558ba2a5e7f65638899f714c267a"; - sha512.doc = "283e9cfbef23e946a14869774649dc4afb821b9a284841c0d8ff45ebae4e931ba692600974afdf87752160dd71ed32496c46d3ca7e91cc26cfb4d5bf902b4132"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.18"; -}; -texsis.binfiles = [ - "texsis" -]; -texsurgery = { - revision = 59885; - shortdesc = "A LaTeX companion to the \"texsurgery\" python project"; - stripPrefix = 0; - sha512.run = "39c270382bb228beeb9ec61f744f66805c76a7fb1522158a59daa5dbbf29b3f4151c20d7dbadf404cab8ca023456b9988d45e53f65a1396da9259832390a0980"; - sha512.doc = "76fe49291714772ac56097e5869f82868d149959bc091d3e9b1810013c92440c05825e2d585841a3e7fe015d66e09c3e8a92847fe7fbb8bfbe308c62919e8c26"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "0.6.0"; -}; -textcase = { - revision = 67755; - shortdesc = "Case conversion ignoring mathematics, etc"; - stripPrefix = 0; - sha512.run = "1a4a29b33270f5100109f42f4caf529d3203a6bd1a934a06fba6ed3ed082f0bbdeecfeb7ff158182c88ca7d724422c83be2d170bba78738cb7417fecb13f65da"; - sha512.doc = "c8b42e576dc6458441703344724bb1ee8f441e79da8d59b1ccb0b6280de878ae65ac48e628f3230ee2094ee285a58636a6e37c29e4458d5f164c36cf4ec93d6c"; - sha512.source = "1e7e5e16c982ae65aab5cdb4c83e770336dc38833f6027de701114da45c0b45a1ef21dd3096de3933401a13222438a533397661d5654acb991c0ef5d6a8c29ee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.04"; -}; -textcsc = { - revision = 67193; - shortdesc = "Simple commands for caps-to-small-caps text"; - stripPrefix = 0; - sha512.run = "99429871433a809febd561793ae53253812792f7ff20f154cd9c01ae3df95c19b1927e677b686b7ef19c6e66cebe2047136810ad287a67ad524d905c6ccb20a0"; - sha512.doc = "a8b38f3c369c5603d1a696672fd8a2c7a49e1d60c011fd5d2158cb9daf37fb4ecd691d859376c55086f894a9a2769a1b8a78d6b63ea4243a27b02bb2247bfdd0"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-30" ]; - version = "1.2.0"; -}; -textfit = { - revision = 20591; - shortdesc = "Fit text to a desired size"; - stripPrefix = 0; - sha512.run = "96638c0bd5cb14b629f03e4b6a3266160c75bcf05d871ce3d4262ac1c070d9efc0532411f5d8774f97362b148ef6cd1c5dd5253e72e3aebb542fdf14aa6d78fb"; - sha512.doc = "b88df8c99662a182483fc6d12d33d0bac5f6a32c84be700146d048b799045800cbb69b21599e5debac122995800b0e48fd82395c498a58df503395fcedc92228"; - sha512.source = "cde6e37b48b1aa49811fd5ec29cf094c7b49d690fb4d884edc358bd3a8a5bf58a815e539eb5e56a95616f54b0737dde09e312c0d2baf37498ead691d4fe1dd72"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5"; -}; -textglos = { - revision = 30788; - shortdesc = "Typeset and index linguistic gloss abbreviations"; - stripPrefix = 0; - sha512.run = "1652260a3e946a8847ceb7f937893bad27a24737d9b3573466f7369ce9cdbf900af0ef6c7f0bf3033200664da736e8232c3fbf6db61bb7d51acec1010d13a3e0"; - sha512.doc = "922ce1569fce889bc4608e9a5da4a45b7c3d2e80303ac36167efe6767c266844664de00384447e288da70383fe91261e5914394a6fdf8644349f785600271e5e"; - sha512.source = "0dc80a20fcb8926b9bf586808bff2403452e43471983d0bf49bebd310d2bf78cb1e61cd4674f7bfcf86d94ee083d2c8e0099554858549dc5c6703d0f4ca57dbb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -textgreek = { - revision = 44192; - shortdesc = "Upright greek letters in text"; - stripPrefix = 0; - deps = [ - "greek-fontenc" - ]; - sha512.run = "2370f666c2cef43a579e32a755675431717ccfb4bad6f30261a6c67e0617816ffc272c25e0d076d91c4047c41926c92ae375507f36f2fab01673bd7e708f5188"; - sha512.doc = "9107ca31b645977d56a3b1e37f7b12f0302b1b2531bd2a21883f7931831e70c4383beae77469aab4663253da3109cdd9c53589cbab95f7f0126389d12509127f"; - sha512.source = "367b63cd318c1e69944444f4cab82af7a7b1dde667d6469ade4c6433960b21a6f8922280d5a46e96fc88ddf4c2d5d3f3a440b55045a67512459208ae181bda96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -textmerg = { - revision = 20677; - shortdesc = "Merge text in TeX and LaTeX"; - stripPrefix = 0; - sha512.run = "5ef9048849bd2515c1af0ff41d0b5189715b375464c15d4708e0152d99f01839c462a0c9d0a9a12f401375d38e2c53a0f0c314e6905e1bfb3171296448bab649"; - sha512.doc = "05a087347db5dce688065f56c106d022f3ac30d27ee5d2f420e7658c5b81df66549cda86193f3ce4fb2cbeaad37abe7eb32b984d00d4f25dd0ad51433f8d7a01"; - sha512.source = "bec01fd7721b5fcc61ac934ebffc3936492817662f4445f082601fe4b7aad576448d33b7ec16ce400c8185704e60238c56bb9e8e31c3b445503673145c0cfadd"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.01"; -}; -textopo = { - revision = 23796; - shortdesc = "Annotated membrane protein topology plots"; - stripPrefix = 0; - sha512.run = "89a415b1040ff44f62c452e61abf9a5760929953ff0a4740080f79e8343b2b4f4eef9340e5a83fded39a000947dbe7f2916fb18624c4512c5ab58171708de268"; - sha512.doc = "80bd54a9843fae371884b87710094f72926d5ad8a7e40308e9aa753b01533d3e649ff94831ea75aed264b5f9f5df482e157a1563dc85ab2976cbf9260425c5ce"; - sha512.source = "d426490fee0b747726dfd7df1f6f72677c9aee3d8ba56ec04dd55037aef563297d16d08a821c2e9a1493c5c29ad6b52c5af23b6bb1f4adec754bf530beb81571"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.5"; -}; -textpath = { - revision = 15878; - shortdesc = "Setting text along a path with MetaPost"; - stripPrefix = 0; - sha512.run = "7780972480a1355a05cbcca3c46f3e5284b120a93ed2265f0fcceb6965f55ed793756cf96df63aa8da589dd12fe1b8127bd470077b9f9dda758238ced566b3e6"; - sha512.doc = "5507082be0235ec2253ddc0b03e239607b9d140952799684e5193e4d3d584846d33a59aa9b1630d058f17cacf7cedd2fe0a180b40207ea8f10947b534784fc02"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -textpos = { - revision = 63967; - shortdesc = "Place boxes at arbitrary positions on the LaTeX page"; - stripPrefix = 0; - sha512.run = "77451d38b88f76b80b063267e2dde1e6e6c771c3e4b176a006d3e38351b823a9ac735455dffd6ffb3e23d6198ea7e2e7828c5d9a4e0b0bcfd5c07567901a05aa"; - sha512.doc = "0b17032df1840b6659c85e3d4801d36e3eb2c5887d03f6c37fcbcc1f030d75fb32991850ae39fccf4e2e9a6498500659ba5fbacad971071de608f4137900a392"; - sha512.source = "569ec215d0b9d8ea250b5f8fff39a332fcb5ec6dd2830b8d65145428bfd5de9c3f2320ef342a887b712d7e7078063ac3b3157609b57b947fbbfa8d5badd578fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10.1"; -}; -textualicomma = { - revision = 67201; - shortdesc = "Use the textual comma character as decimal separator in math mode"; - stripPrefix = 0; - sha512.run = "9437756da9639dc29fad64ea7bec0b2fd4ce783065ca00fb522ece24c33b99fb2f51f82564cb382f5f39ada825353f007d14a36ce5d9d5b1cc4015b71b8cd314"; - sha512.doc = "a1382aa53f3df15c57e391420e7f4164a3fcbc8e765cb53a87814a4fbff7e354268f8ff7e6bfb1113f269fa426aac480fb22c330f234d58492fc4f8960fa2960"; - sha512.source = "1a42e7e80fa555dbc81c7f133c6be0ed265756f826d701c3bee5dfb7b1e2a8c94c2bcafe6421d89ae82aed2c5e1a367d6d06df7d12941325c0d0148372a9091e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -texvc = { - revision = 46844; - shortdesc = "Use MediaWiki LaTeX commands"; - stripPrefix = 0; - sha512.run = "cc149d490180e58e9796ae0bc962e51794400384671eee53c932acef88512a129dc3d87ea4378247813acbd3ead010014ab71bd1717b6edb0bef4b7856be8aeb"; - sha512.doc = "e8639a2ffdd2d40b27545c3f4265e473bfbd81a028632a082199fb0dba7ea0b0468bdae488a9eeea63578bdd610f7e16d4f4da846f9316dabf5645af95fc8cab"; - sha512.source = "4bbcf12af602c328084e76e339d9ca33c205f08faf489be3008fa5fe0b424631e940baee1da9144fafac42e09fd2d27a7726c16e159cfe24c70d32ae1014d198"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -texware = { - revision = 66186; - shortdesc = "Utility programs for use with TeX"; - sha512.run = "532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729"; - sha512.doc = "c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383"; - hasManpages = true; - license = [ "publicDomain" ]; -}; -texware.binfiles = [ - "dvitype" - "pooltype" -]; -texworks = { - revision = 65952; - shortdesc = "friendly cross-platform front end"; - sha512.run = "2d0f90699f7ee4fa6dfa9eca4a62c8deadd9ee8303e17603bd32d0b2cd41875e76d1cb28879139dd62e534575f1dc8e71d6ec401a65ecc333f5b4bb636ea5a67"; - sha512.doc = "767bca3619a0f645f23b029e1d8b84fd7333bfff5df073026423e83681abb2c3e60a50f843aeecf95aaa54b29018f145a7b655e2dccae0465626e84ca00d1b99"; -}; -tfrupee = { - revision = 20770; - shortdesc = "A font offering the new (Indian) Rupee symbol"; - stripPrefix = 0; - fontMaps = [ - "Map tfrupee.map" - ]; - sha512.run = "ee935ea5c6563fd8da4f403a1c3583b289b64e212aed4b9e3703ec345dc47c5521d291e1ae0a10c9aec2ebfed407fbf14e804bf51ae4c4a1e03046fc7cd0ad5c"; - sha512.doc = "19da18d665a8369e58a26d4e979d5fd6c8b3187dfba97a281008627aeb8c5ee824dc2ad3f5c94c3b35c67fe28a646f44aa5f532912de5f5640b0a7d56afec2f8"; - sha512.source = "30133dbf65f1a33f79ad8b2c8ee84ff376b39d12cf0d48c4e72e86b393e0d55f5768c7af5f5f3f6ff1d78fe2c7d4f2b09d2980107dd5aa1d94fb5ea27545ee9d"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.02"; -}; -thaienum = { - revision = 44140; - shortdesc = "Thai labels in enumerate environments"; - stripPrefix = 0; - sha512.run = "25f6bd1e6e9586b261721b66b6b193c07f60dc074f7b7b1911b0a8ba4f33815c86945bcb3946ffe153f70f0dbaeec4dca8e5574f8369c754a6151fc271029f3b"; - sha512.doc = "246dbb624a2e2e30bd5468c2596e7b3f7183c7dd9d03eda42fbed88fe51f16b53801ed39f85590d2739a93d48bc413fce5c52685d5425615f650b19f56013261"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -thaispec = { - revision = 58019; - shortdesc = "Thai Language Typesetting in XeLaTeX"; - stripPrefix = 0; - sha512.run = "02434f56fcc8ab499b4f80439fe9099d5dedef00d6dd295dfc47644a7b1397486a419e1ae2b89a0aefd9cb3a093974158a72a2eb2921d25df3231a7628897968"; - sha512.doc = "26b88ea1b87d8391b8864011449116df3fccbbb978aa76e6cc51dfa893eac87851ee10b1320350de57103b80c6bfb30ca97dd1cdf13014157ea35eaff780843b"; - sha512.source = "e79096902654f302311ab531f8ead3ab9852323ed774fd217aff94c0e1ce456c01a5d8a28854b7c5d65d0274318a22cacd4dc04a00498eaacd92f538f20f6013"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2021.03.01"; -}; -thalie = { - revision = 65249; - shortdesc = "Typeset drama plays"; - stripPrefix = 0; - sha512.run = "695d16e6630efa10363d6c94f410cdf11947dd0c0e59987cdf01e0c699c53c994a702b3802b8830e38b6f5b0ce654af5710ef93b094fbc08954eb8d9bc5d2915"; - sha512.doc = "f2fce885e0aa65d42413ad7ba26a38ff787fed8c1ac5d6434e949e229d4f728a055a6a2ed80f36fe94f6fdf11cac3bafbd2a945cb9bf2ec0b436eacbe1ba58aa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13a"; -}; -theanodidot = { - revision = 64518; - shortdesc = "TheanoDidot fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map TheanoDidot.map" - ]; - sha512.run = "f7c8f9506516c52ef1714e0abbf594f1f6be8492aced3f502a7f49c2a1b12c69b6c57c01300f71f582639f42001c3ece2bad4f9b4ff2b1a1266c3e36e9bd0d91"; - sha512.doc = "0396291a9213e2b80607572a2313801a6a93f4ca2f54889a4c18e8330ffe9f057b856ff957d58d61ddc2828838c6db9e45e26cf611ff88ee80f3b2073668ed64"; - hasRunfiles = true; - license = [ "lppl13c" "ofl" ]; -}; -theanomodern = { - revision = 64520; - shortdesc = "Theano Modern fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map TheanoModern.map" - ]; - sha512.run = "c940c73df2143395fc4f2887e0273850787cda96cf586b0a2067ae39efdcde999338eb7826fac9af5e97bca978bb309b0478e1dcda43cae0a0b3266430d3348b"; - sha512.doc = "934ad9a47609277dc1a10bd20f55f0ca01b6f1167a574ee8609352d94f4aff6305db9ca0e3ca5b83cad1f1eac74e5227fa92acd65df9de3f91abcb653f60d21e"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -theanooldstyle = { - revision = 64519; - shortdesc = "Theano OldStyle fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map TheanoOldStyle.map" - ]; - sha512.run = "b2df891fef113bcd50ba63cea16942738a9c8665a1644187401ba471e53c2f35070c8a339c1281e4d679dae39e22497de92d854ab311720903e676dd7e7b7413"; - sha512.doc = "cb896fd78684c8c21ae5579da4b510636336e4959c0943577657aa90d2d843415eaaa2eb42e7d1cc031f6a50044a7702c7d01abb8af7dabd4b6132545c799a07"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; -}; -theatre = { - revision = 45363; - shortdesc = "A sophisticated package for typesetting stage plays"; - stripPrefix = 0; - sha512.run = "d450ef176d5543581316ff36590eba2ed829a3f2b8a019fa8ca379af0ae2aa4df4e4e3068b52ed91edec4df33d08aa78b1f5f21d0fdf33d0aa718704e3de2851"; - sha512.doc = "cb4920d5acfe0e1288c7d459d15b06b9ced1130b56ea92c9ed49376743cee7e3fbb694362bac51f2660269992d64717effc5d8e9f52a21337fe7eed51a4622f6"; - license = [ "lppl12" ]; - version = "0.1"; -}; -thematicpuzzle = { - revision = 69356; - shortdesc = "Horizontal banners in a puzzle style"; - stripPrefix = 0; - sha512.run = "3dc42fb8b0d1b5aa3f68af6efa29a683e4a2d7b14f9e8b79aa56cecb15356cd8a9ad6487267b2ca978363ed7e8b5988f3efbfb2136774e8c5d9be25ef65f0bd9"; - sha512.doc = "cc3aad57de0a8f2ed5bcd46d391820a2d8d316d7fd75d5d4abb8a6532fcf05d6643aad83570413dae441d14956747265e7137b05fe5512423d8fb3c1fdff5f89"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -theoremref = { - revision = 54512; - shortdesc = "References with automatic theorem names"; - stripPrefix = 0; - sha512.run = "ed6990b6c7a9ec4e72770252bcd07ad5ddf4015cde0129dc0a89cb95bc96958963209fe46f0ba9a614ebc0cdb358d8125ee3eb22b9a4249367d975ec12250a3e"; - sha512.doc = "022ef42c6765c661f5828a8adcad7710d74f168b3a2dfad0e73218d1a5295b25ea24d5fa010a01151939e87989cfd6457917167e69cebf5ee5a364347eea5f2f"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; -}; -thermodynamics = { - revision = 69086; - shortdesc = "Macros for multicomponent thermodynamics documents"; - stripPrefix = 0; - sha512.run = "0bae277827251a42a366ce85aee49d762e08025b96472f8102a54b7a9f1e74622bfa0064aeaa6dfee5248ef84977fd47389fc91049c057caf75c33930ade37ba"; - sha512.doc = "3e2ae382e61ec8734e6cffe6c4d5efbe853a3c6748e1d8e75c2e4fa0ed6e7ada7f8a79424f49c43a753bcf6ce867b84ee353c553ba412c0386d58d2d4f5f437f"; - sha512.source = "0ddadff5d744ca8f45bab8f471685e9afdcb494e60aa6ba0c32c8a75bce536adc6544c097e95da02457059b5bb96ed37508217577caf16c963af6e07651ae721"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.01"; -}; -thesis-ekf = { - revision = 60228; - shortdesc = "Thesis class for Eszterhazy Karoly Catholic University"; - stripPrefix = 0; - sha512.run = "7ef62e88cf25c1b7c37dcbdba00dca0fe522727cd6d1b5bf27cdea73e4638defd2430c2440879479427b2faea91315203179b8f45224d68067ad46810dfd6da0"; - sha512.doc = "50220e7cdded7a36703fe4e0965d19e18c6aca7a8f738b4808efc28d472f01522b456474bfb6c4d43ecc61d81173f0025918b302083829e849059fbcac5e096f"; - sha512.source = "a479e92491a962f549ba9a2863504efadfa5a1515d209eb26a541ad88a5bd8657ee3f3492e99068f3dca869e8394ca9008a074c17d139e2a22325364b0a7d89b"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "4.2"; -}; -thesis-gwu = { - revision = 54287; - shortdesc = "Thesis class for George Washington University School of Engineering and Applied Science"; - stripPrefix = 0; - sha512.run = "7001a1f11d069fd15894b34a2d220394924802c3ef1a37869e0d717bdb650bb53c01078dc14760f7887addece64bfb0f6662741bfb6dc4dd77d2ff1f3d0d7415"; - sha512.doc = "e53925a31286089cb5e8f051cdf969c6bbf29db0ae2629c1a584ead2885cc0e1f95c5b2cd9583056c8ab40b1c41d4f8203b876a1e6365d8967e3942440e04e2e"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.7.0"; -}; -thesis-qom = { - revision = 63524; - shortdesc = "Thesis style of the University of Qom, Iran"; - stripPrefix = 0; - sha512.run = "71aab07394cd5e4a433c02d80ae1b81c059edaec926e242861bd9a902ada1af25352f660d892718c88f0de05c4eb4a4dfe2c07f68f63f8d28d2d0c2923949294"; - sha512.doc = "47148e246b917849db3c280a1b6af3485d24a5d809cb252c597b4c731a058eda5824c99374bfe2bdb199057f1c9493506ef757f6c25e3f2d38a11c8bb8a5613d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -thesis-titlepage-fhac = { - revision = 15878; - shortdesc = "Little style to create a standard titlepage for diploma thesis"; - stripPrefix = 0; - sha512.run = "62cdba17287f90580fe6273d1ca9143c9fac01d7da214a20413995b925c6eced385b3a5c172e8bedb4f17396ed7e9b78e789ca475c5efe542283d9b421bd6ffb"; - sha512.doc = "13378f3ef37bd1033d009d03772244e048ff2a16b95ca8a0f14feeda8c44b29036276c41aae812cf1c28ac5684edad56b000f8a45576bd0065fb844f5b6dd189"; - sha512.source = "34b0f176df84b1b1d1f3e47c7c01d640b0e74e30a86488e07e9e67c61c80a96cb1b9ec835266dbee3e45a952f406ade5af5173e7df33f1d12d1b1f5d0611ac75"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -thinsp = { - revision = 39669; - shortdesc = "A stretchable \thinspace for LaTeX"; - stripPrefix = 0; - sha512.run = "ddc80b4de32524ce76fe34e8f88d01e2db18a8bbf60a718454a0303aea8082fc2e495c89c2ad0a7459ed3151e890e30a1263267f249581e24bac87113a5fd266"; - sha512.doc = "b5b50522a4a7b5f7772118d95fdf42e2f570ac35c49a8690560df27df0754a170acddd782b516fa185c0f6ef2abb3ff8a9f366370c2ad46e2e4d32dba21e634b"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.2"; -}; -thmbox = { - revision = 15878; - shortdesc = "Decorate theorem statements"; - stripPrefix = 0; - sha512.run = "83ceeb0cf84ff75afb734f41be5a5309692c6804a5a20627c54cc8760f8ac5e205cf1a24097c8b8624823668796092d620f5ffbc488f63b87e7cbf9365279aac"; - sha512.doc = "ad8e0710a15781eb3164527dd16ecc2050d3cd3317c386841ad8612a9ebc6055a1501272e3b01bcbc6a7f1ffa80455bf2ccdc0cc9ff4428c9688e9f6404a16ff"; - sha512.source = "1b559b9286a97c3157d568982513541028d96cfd5d67ac541909586251ac3729574c23a05ebdfc42ab06a92ab2ea0cef878b1f42983d06fd48f825962de57cb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -thmtools = { - revision = 67018; - shortdesc = "Extensions to theorem environments"; - stripPrefix = 0; - sha512.run = "7d150df3f868339c6bcccb2e881105d9eba11bab8cbbbf42d5a696a7496cfbb87f0ca848e5cf7a63239e563a75515b15d4acc4a72046ca9539c4597e077333be"; - sha512.doc = "939567cab1c401d0946de706105d23add703e991bf36dc58f4e1d40fa35b5b30b37a9e32bc2d252f247da1f1db654bf3aad460dd1882389c00a8e11106270840"; - sha512.source = "a086c028394cff2fcb5c011d2a69627ce2f9651694b8e1596ece652111e88d43c1f1e358ae4c1201ddb0166180d6dec9eb14ebec8a05469636061c224c6f39e9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "76"; -}; -threadcol = { - revision = 28754; - shortdesc = "Organize document columns into PDF \"article thread\""; - stripPrefix = 0; - sha512.run = "e75f887dc04aa55834c285d5e36babfd0844b79b9d1cc5cfb2eb6412bde9f42b651bfdca9f6819b27f6615aff6f96031135f1a6af3b59503fda34e7566cdb01a"; - sha512.doc = "626ac69b0a26fdbed51876782a9ac2e3b0ab9b32bf3b2f32ce19cce080b5cda40a62160f453199a76b58903d762cc8085a8541fa2de3adc5fea6266592c06bdc"; - sha512.source = "df757dcfd1eec3e8da04939ef69d04ffa59767544a1d5349eb538e111843f4c6dd4374e15bc6e586edac629f61d6979688c229381ad3cd4ad61dc2d48afa7c10"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -threeddice = { - revision = 20675; - shortdesc = "Create images of dice with one, two, or three faces showing, using MetaPost"; - stripPrefix = 0; - sha512.run = "66e6a27aa277b45b44c156d408c764da5bee6dc540f2058a783f02bbe806c95052267a5ed79ea49b5dc356d0f03747e9b186542640b34753a693ecffa158a6a4"; - sha512.doc = "c750497229b8bd41eca05b221ed2ca2ca49db8cbbff03bfce2712869d352ae0385e4c10e9730e0b2f8286db9af1e1b87f10d599788a3dfe8d41c28efb8b0e4a6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -threeparttable = { - revision = 17383; - shortdesc = "Tables with captions and notes all the same width"; - stripPrefix = 0; - sha512.run = "f947dd01e56f6f3db8a4ed0b8f3ec564a38486fcb27f30bb3bacdf31af8360590e7e3886cc00cfbab813213974f4b335ff06ceb521d25519e8b95e345a002692"; - sha512.doc = "6b5eb1d6ceea740ec54ba935c45f03c2e6328140e86122a38b90d84e375382adfcfe14e2e9f56384f825c913140f01a1eb6266d2d46f6b813a34b4da652ee31d"; - hasRunfiles = true; - license = [ "free" ]; -}; -threeparttablex = { - revision = 34206; - shortdesc = "Notes in longtables"; - stripPrefix = 0; - sha512.run = "9dd33dcb7f9eebb9396a6a05ac20e9bb221260cd80f355b23f60a0466c64847ebacd8b0d19c75b3d9cecd9c522a8633468e7cc86121f7626141c066e12f977d6"; - sha512.doc = "3dceb0aecfa2ef09bc20250cd38dd698e35b2cd2a33fb446e78a39fa654899c4f6658a18b95b39a5bff2279a0cbeeda71bcedcdb7fa91d148290302b73e7a64c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -thuaslogos = { - revision = 51347; - shortdesc = "Logos for The Hague University of Applied Sciences (THUAS)"; - stripPrefix = 0; - sha512.run = "584d8f130844ac834be8f061bd8078afcd8eae2e4d22e33d8a61dea8ea637476532181cdc7df9f1710ba5d8dd022a64dcb561f21334b830387e9a063ddbbe426"; - sha512.doc = "5a2298e713e4a0711b01fe7fceae12bf20d6a0fcf91cfda63313e74709586532bc407c07be1807eee5405a6b6de74fe976b2ac56fdebbc344d59255080d80224"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -thubeamer = { - revision = 61071; - shortdesc = "A beamer theme for Tsinghua University"; - stripPrefix = 0; - sha512.run = "8391507179c7237588645f08c0611ab441cb4f426808bece8122ddcccdec8c94457efb8db75f7078b6b2adb6430350d5279bf9efa091cecbc263d31fbbfc11c4"; - sha512.doc = "fb2383dc358f2d0990a3f697746b6941a04116af8f184dbc37cccb100bfb19fc72ecd876bc581234c6dafc2c897576992fe8f741fea07ee0889bb1f51555601a"; - sha512.source = "775b719a02f4ce703a37844cbff77e476c35dc105f8c370e6213f157053a397ac80295cf67c84229ff565e997bb89d89f7db209c7f84d8e47b4c92acca98ff48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -thucoursework = { - revision = 56435; - shortdesc = "Coursework template for Tsinghua University"; - stripPrefix = 0; - sha512.run = "6342b407dac5780e1e35f114978ed4466c547a49b1099ecec8cc6169817d3c1405be0edf5f7cd3d82e5d44f9a7e9d1ca762e82970898e92cc7ef06739eeb65ca"; - sha512.doc = "565d7846b45c8c0bece73da1010f835d5d54f9244648d61747c9fce7a8bc2559a3e53a2327e146f559a6df2809250d7057befbb6dcb9dd2026c76f1d1dd16fa4"; - sha512.source = "34da6d4ae8ad815881fc2f8b7df70889ff99adb3ebea2598e0502725b229cb5a5afea11847c8a1c5d56fd528603dc8aaf43c460394ab301dfae1abe6880f8616"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.6"; -}; -thumb = { - revision = 16549; - shortdesc = "Thumb marks in documents"; - stripPrefix = 0; - sha512.run = "30290cc3b8cc48de6c601fcb3d066f0533bb3f09f053d7912db7a127d8327c4aac0a96499b7eaed36b8caf4dcdda5c8f34a5430d69e1fac70510f426c92ab9f4"; - sha512.doc = "29abd2e57cf17edbfeea06c041666ba29e436defff1600df7222dca6160e7be740b64647d7a44a10f6f803011a1754abd693048ca36c4c372ee0da52df2562dc"; - sha512.source = "1712eaf8ef694998eab8cd0b95c6e8affc2a967c81cef6d6bbe8d985137662631254318ad2dad9a021a70ab849986e727699715b27fca1a5952df111474f92e8"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.0"; -}; -thumbpdf = { - revision = 62518; - shortdesc = "Thumbnails for pdfTeX and dvips/ps2pdf"; - sha512.run = "74d1b32b1a48825c423d4346258f6f1eea60d2054ed38b3d9d4e207a3375e35b6e80d87706bc2d265f62606a449a0a665c8698f4e1615b39df98f6f54b309fff"; - sha512.doc = "26f698eef73b85181abbd155e8ec8f6057f7ec0c5ed1448a256e4fc2e41cffc77474fe4c3695d611e8993bbb1afdf238e3db3a90bc2b7af145535f726af027ed"; - hasManpages = true; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.17"; -}; -thumbpdf.binfiles = [ - "thumbpdf" -]; -thumbs = { - revision = 33134; - shortdesc = "Create thumb indexes"; - stripPrefix = 0; - sha512.run = "58e489402fc44cbaece118203bbe7011494b7ef16ffa0e5d60be2daaec0c4ef2d048a71f0d9373a1683aa780fd20e3d64330e199596effc7cf2fcdac34f1faf1"; - sha512.doc = "4c58ff61d64b841b3a3bc018f94c193730129edf45c87fcb9c85685f748ca3db1f7d51969dd25882848cec906485f739f8f07c8bb2f8bded580b59ea93032a14"; - sha512.source = "26458ebc431f64a324c39ec370f2b0714a56563decc944c64156f0a6a3e22664e89239bbbfa7710d9b46706657b48470ffd1da7a1801aaca2732b30e01935fe4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0q"; -}; -thumby = { - revision = 16736; - shortdesc = "Create thumb indexes for printed books"; - stripPrefix = 0; - sha512.run = "485bb2670133c3c83f0f7aaa685defc6d36f5d24173652d869f526770e1f55c55a31f3a3180f115aef45fb824d9032ee915b91c1c59b9b33794c95c92f03c3e6"; - sha512.doc = "bac645197085968fe8a7bd41f4a9ec3c6e51e17e6750b87ca1a458acc9f6a4f244d1f3b36b9c622c98492b90abddf9a4df1636b1874c02820dcdb6340bad0910"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.1"; -}; -thuthesis = { - revision = 67127; - shortdesc = "Thesis template for Tsinghua University"; - stripPrefix = 0; - sha512.run = "8a70b2f51275494437fde3ef83e0f0d901b7164cf9e330d19e00ebe79bb9b4215a6cb3e7137970eb528904e35ba7bee3329f32b9fee64181f57dd09883582207"; - sha512.doc = "fabb0e47004a0fd21f06f442d0b7eb5384242e879af7b7303a7c354d7226213df082d3c38ce24cc571d667fa2b4d978741fda5518871d727ed491a60f1f1637a"; - sha512.source = "3f78020ca5563319ed78c851f781e1a40f16dd234207bdb2e6ddc38cff5f622ab7891c37bf7a187d927e81d9bed96686547d081156700654c23e410964894ab9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "7.4.0"; -}; -ticket = { - revision = 42280; - shortdesc = "Make labels, visiting-cards, pins with LaTeX"; - stripPrefix = 0; - sha512.run = "cefb3e06df2953063e9d12f19f03e973212e784cebfd2d6628d2e9ddb443159b285b34f12238f6b77813cc48e86aae7018cb5bccc4fd158f4d891f05fc51dab5"; - sha512.doc = "fde4b06ad09837d1d6b6efb275800e32f617619f9c18d2dda5924b094f860492053c4ee361a2fded1c9f4509ba5e615601b183191c0cf064af24cc59cfb23748"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4d"; -}; -ticollege = { - revision = 36306; - shortdesc = "Graphical representation of keys on a standard scientific calculator"; - stripPrefix = 0; - sha512.run = "92bebbf5a5e7ccf7be09c205d9007a780422c625d9a308eeeae50b2ec4ba3cc6755a37fd8a49e24b7a381894cc3791fbf50f54348c3ac584a2c0d9a693f93a56"; - sha512.doc = "f0049064eab926eefcf77fe5aa0606202cbce79ed7f0e0f1bafb171ad82b72daf09fe2c0cdf79720834d6349d9190f1d3069f155df922ceb469ad3453a6389b1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tidyres = { - revision = 67738; - shortdesc = "Create formal resumes easily"; - stripPrefix = 0; - sha512.run = "6ae766645bb046c18c0ecaab4d567ed3b66800696a37e28cbc0100dd50db7d89e03b5f2bfb8073a1d819f552f81ff8ecb692889ab7e2cf28210474663d4943e4"; - sha512.doc = "53b927e92aae7d598eef4de6035b8165665a7ed06f37a9457ff16b92eca2c075045f528c62b179923f03d790f163741f5a900b505a50baa8b299d6fb2513bd68"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "2.0.0"; -}; -tie = { - revision = 66186; - shortdesc = "Allow multiple web change files"; - deps = [ - "kpathsea" - ]; - sha512.run = "ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc"; - sha512.doc = "66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf"; - hasManpages = true; - license = [ "free" ]; - version = "2.4"; -}; -tie.binfiles = [ - "tie" -]; -tikz-3dplot = { - revision = 25087; - shortdesc = "Coordinate transformation styles for 3d plotting in TikZ"; - stripPrefix = 0; - sha512.run = "6d4aac2eaeebbe2a4827a5a40e8571c48ff4f5cc854daf130ec7f20f8fa06135bae1486a42b223410be848b72be2c19d6e2ed798694ef5dcdb5861846bd9c072"; - sha512.doc = "0fd9bde0f12ddf5a4bf6e2e1df66a9aafa42e81cd945b41e09e8d289c57b04faddd303a415c36239e6686be90f06e8a7cc794ea50d17ec54f1e25703314257da"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tikz-among-us = { - revision = 60880; - shortdesc = "Create some AmongUs characters in TikZ environments"; - stripPrefix = 0; - sha512.run = "13e082734e52205e78e804b708c920836c04e9b11dac23e49a8e86d40209ce1e074ab5ff30d97b528c027fd45252824a41daa850d1a9669987a7a59210f7b2cf"; - sha512.doc = "6146f3ee670400e39771a264eaa81a9b4b701a47487c7a4f9ec26ef26a93641062bc61893f71c4f66c8a035d52d763aa94740d9a00f5ce5b402272d67af93ff7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -tikz-bagua = { - revision = 64103; - shortdesc = "Draw Bagua symbols in Yijing"; - stripPrefix = 0; - sha512.run = "bb9444547aee41fe90a4f8b8dbdff080b594d05182798ce87274dab5cf3f0510d428c79ee21eb90107ce9b98a0cc906376d1b49ffa80ea57598c4418152f9ac9"; - sha512.doc = "894fcec05e43df7fd13fdcd5f51e50128defa5a3ac67c2681f509740906449322862d885e5188861a1b92d6aeee9b6d4454ab1aefad74c5585efd937fa789e0f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -tikz-bayesnet = { - revision = 38295; - shortdesc = "Draw Bayesian networks, graphical models and directed factor graphs"; - stripPrefix = 0; - sha512.run = "b3c535af8afe86e311e4c7371addfa484403a0a9571a17d1cb8d39dd7242aa4798476352bb04a6bb214086f1ed4985595c502723444a032f9bde04423c26bea8"; - sha512.doc = "2bdd764163c606579e68099873844fdef6b9a36495f4117b99ca483bbe43334965a177f398da60e82c11035b5c7b9e0513ae56e6868d6238cc0c798f47ab37e7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -tikz-bbox = { - revision = 57444; - shortdesc = "Precise determination of bounding boxes in TikZ"; - stripPrefix = 0; - sha512.run = "e68c3c6922c8529bea0b7c25bafc488d7aa41ad81afacae0f674caf637a1638dc8666bd16628b123063d94031d4cd4691ca127bbb648c1fb5a20d72ca8a41fbd"; - sha512.doc = "428d94e87d51e000c5fed4f5b0bd87b8fdb261b9550e0c67e05a69fcee7a4ce3ee070f262d278e21cbdc5bfeea790c6d17450bc91e1e51250b572e754ded3df8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -tikz-cd = { - revision = 59133; - shortdesc = "Create commutative diagrams with TikZ"; - stripPrefix = 0; - sha512.run = "abe5952a90172dd74ddfd02834ec9fc632f26da00450c310eab2528d5b52750e80225219b75e778d1f87b2279e654bb743804da19ec7da91f12e4105f9ec3447"; - sha512.doc = "ec354963bf8915a0c0b68fa0223c48ac48fc0450aff936c34e4c95fe15641319b711b753da7da542352e0fc6e9bbeec627de5a3023b4b90828ee05a81ca5d255"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikz-dependency = { - revision = 54512; - shortdesc = "A library for drawing dependency graphs"; - stripPrefix = 0; - sha512.run = "f13e652066ed2237c22b397b76f628e9108a999138ab5d8349792551205cada4709031f5c4b458982618871d4d65abfe5623f700ee9d8f474c66b1e31df374b8"; - sha512.doc = "3ab32e535d11802b3a828b8b49e78f31df5e5d3c7c36509a3b8aa0d81c02c465ec84d45b9d951ad833dea705381b4df05fa3d9a478db9af0622bc0d69008b227"; - hasRunfiles = true; - license = [ "lppl13c" "gpl2Only" ]; - version = "1.2"; -}; -tikz-dimline = { - revision = 35805; - shortdesc = "Technical dimension lines using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "c7a3b158a8acd100192b7dc936f2e452513125389f72c12f0c3818bb4e771abf0748338f13603765904adf1d808fc2b263d0f798999c52638e610d24addcc641"; - sha512.doc = "62edb9667ae4405c798a00c1d079ea9ed5bbdddd76e4a730aaf7405d175afa146fcb7bf43a551001eeff1f683ce3b47a0a79fab66b7410be59f18f4f6e409ef4"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -tikz-ext = { - revision = 66737; - shortdesc = "A collection of libraries for PGF/TikZ"; - stripPrefix = 0; - sha512.run = "83094598e986b8225ba72ca5a151b8d7b475b3fe41199209e816ef9e7d7b3609e693a321a219968d38d78aafb5fe1ac6058e6860379687077abe4921497d7cb5"; - sha512.doc = "ca2e8a322e3f3a63084d2c0b79d3491fdbdd1b6b363e66d721e691ebb73241e96ac7f4ec352588f46a49ee1b16b4ea214d145692f194f67b5ce23d12701e1eb0"; - hasRunfiles = true; - license = [ "fdl13Only" "lppl13c" ]; - version = "0.5.1"; -}; -tikz-feynhand = { - revision = 51915; - shortdesc = "Feynman diagrams with TikZ"; - stripPrefix = 0; - sha512.run = "5dcaa2f5c846957f3583ac5bfba14c668cc855c6dd930eb5851c19d448efdd207ff34599b09379354d0c772cb1890fac375d75d61524e64148602f4b5dde4355"; - sha512.doc = "b0cf316dafb9494fc21d5657e1e3c1b4780b7c30e2fe93235d6d8538979471c31989e4203575dc66204fdb1cb11386d290feba3070e43a273b62ec59a73047d9"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.1.0"; -}; -tikz-feynman = { - revision = 56615; - shortdesc = "Feynman diagrams with TikZ"; - stripPrefix = 0; - deps = [ - "iftex" - "pgfopts" - ]; - sha512.run = "34c147e6ee16643e99d2c8fa789b39aea6f3b9ae7de93fd5c65d1b0daca1e9514d484b5b38892a0cffa1aeedcd405df0bc6621bf68e587311bc9fe45205c29fc"; - sha512.doc = "ae0510a7971538fe458d83d4da4c78f7d607c7a1298344a139c02c49985f9005f6a81ab15f9dc621929d70d634c2cec4189ac4a2955e994611247af0c96986f3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -tikz-imagelabels = { - revision = 51490; - shortdesc = "Put labels on images using TikZ"; - stripPrefix = 0; - sha512.run = "b74cf7113b288af9e98ceb801eb4d72e4785ce30390718c4c0eeabae20c49ca8eba91342b89dda525f06b9f436a427277c4ae8415748f1487cdb073088ed26c8"; - sha512.doc = "843f943c4a0e12d1260ee17f9f908adee568100b1e415df3f1b383fd83d70065c57a21290b89923d7ee84819356a366a467e42fed61370b214621a9ee58ee97f"; - sha512.source = "2c6d1c0b599488bea8d53c136d81881d8cf15497e295b6e0701bc8570f2e868bdb1e0149f25943102cf6e9babfd53ad8401328224bc16a305f46748857c79572"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -tikz-inet = { - revision = 15878; - shortdesc = "Draw interaction nets with TikZ"; - stripPrefix = 0; - sha512.run = "0c4ecd55d10893ac8bca7b8ac38f2366f30cd989c5d6ab4dd501047f01c0285f8e4b78309dfce06525bf525cff77e2edd56429aa166f24b9a7e07586e3befe96"; - sha512.doc = "e61f0a7879dd0ec016b6c85d66e6ace6b953adc2b9abd87306dc4d071d82f44984e6e25530db3fc658650f5ca74e5c237aa64d18e60a3c5c8c7f57c6f42103e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -tikz-kalender = { - revision = 52890; - shortdesc = "A LaTeX based calendar using TikZ"; - stripPrefix = 0; - sha512.run = "8bda7464a62135fe2eb8739d428aca770ee6ba90d3fc08037ebd192f6e436116b59962ae7e0f0cce7addc6a44d0bb5eed47d8c0ff83371a070d3a5c0e8b1feee"; - sha512.doc = "d73e1427574212a2652191b0afce180155ff32b7d8d63f076f2b5dc71c64d1d8dd562666f8a7ebeff445409fb884ac79a66d0271582b0b6b72e84c5fe7c44f7e"; - hasRunfiles = true; - license = [ "cc-by-sa-10" ]; - version = "0.4f"; -}; -tikz-karnaugh = { - revision = 62040; - shortdesc = "Typeset Karnaugh maps using TikZ"; - stripPrefix = 0; - sha512.run = "aa7bb0cbaebbae2657002c01098e9904c21483bb9e67a415834d54b2bcdeae75514a2e98a53e98ba87996b3147af84226e43ec9d121eff52b4f77d57d1802db5"; - sha512.doc = "25ccf7b40c1e808bf5fc45241d3f811e603bdeb770b21e5d98779e04ccce1ff67e73012816b763a083d07f1c62a16cce8feffc0e1c87ced8b83339de84d4cd4f"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.5"; -}; -tikz-ladder = { - revision = 62992; - shortdesc = "Draw ladder diagrams using TikZ"; - stripPrefix = 0; - sha512.run = "c18340557f53f0617831e7e6dc904840e6f1e04938684a21f2897297c8a70b95cacabe4a00e66d632026d8ce7728334eadaf02cf5bfe4ffc0e746f3ceec36fb1"; - sha512.doc = "d77c8771b36df84e61cfada1f56300b10908727a164788b3c0665f14a26db5b03a3ea7f4a0fabf5ecc820e90a27a73c0ff0a7985e37e755852ac401b7143e7c9"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.3"; -}; -tikz-lake-fig = { - revision = 55288; - shortdesc = "Schematic diagrams of lakes"; - stripPrefix = 0; - sha512.run = "3c1c8d90d58c564f54abf0c34db63b3886f6e591dde8a2f7322f9ea2c6b51f10d1eba9d9f66cd1bf6e98e8ad57cd7a1d329e879381b164d4e1517331325ffa4f"; - sha512.doc = "86afa9db08487666cea340d81355e73e64f72566efed3d1fdc8dd86108eb4f82621850baab86e039572e0ca40d5a38157091fa15f7e1462cfabc73be2c5de0af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikz-layers = { - revision = 46660; - shortdesc = "TikZ provides graphical layers on TikZ: \"behind\", \"above\" and \"glass\""; - stripPrefix = 0; - sha512.run = "900f3cba19f723cd75f59f2d3380ac96c6bcd53f4d80ce27b2d393d4728f37b9d9d2bae414f20d38e4b3b93769374281d4e741ac2480986b1662696e08a9a207"; - sha512.doc = "617f1a53fa77f4a766157e72013227e992589b0030ac90ddd181643b1ef212f7e83b8f84f2520d64acf53f2cc76e3333e7ba56b78984b28c3320e2977a87cd56"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.9"; -}; -tikz-mirror-lens = { - revision = 65500; - shortdesc = "Spherical mirrors and lenses in TikZ"; - stripPrefix = 0; - sha512.run = "133199223a6b40d9f07dfffcf842bf3cc5b37f58858aaf96fc5304f72d590f7ea4c45349455fb41ecadcffbcfeb8dae2fcea79cc282038d2bedd589a3a7cceeb"; - sha512.doc = "6515311c8514384e205bb3f3f0859e33c05f3b4b1815c56d84c6c01aeaefce2fa9b4d8a87a882ab38afb6fdde7aa236966bc6ef775d4a29aa35fc8c1611d0eae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -tikz-nef = { - revision = 55920; - shortdesc = "Create diagrams for neural networks constructed with the methods of the Neural Engineering Framework (NEF)"; - stripPrefix = 0; - sha512.run = "27ca8ead5ab99566c3bc398b52df4da6bda646519fc5d84d4a8b5476fbf0e86d8b405f2c88a9be56f6f6f4def0e5174ab0b2bc8100300d6b32bbe025dd7bf9c3"; - sha512.doc = "07e9b26ecb4b334c4d7459e636eb116dbf03f7978f88d29f462cd2f9ad81bc24bef57dd659d23c39e8bcd81ba4fa74214c7c399c104fb5af35bf18dfc3e4d1e3"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.1"; -}; -tikz-network = { - revision = 51884; - shortdesc = "Draw networks with TikZ"; - stripPrefix = 0; - sha512.run = "e8100d04b9ef3336a514d18f43ffa6af5d4c2a2ce28663c9f4b40272f5619dbe11dc32f8d7399b7b730f8a90c5aab5fe18cc839d6736d7be6c8e37289e2dd30a"; - sha512.doc = "26cfe73177bbe885cbb224fcd9b4f136a224947a4d9000e24c7f4fd1c44194ab8d2e11dbfac558c68ce36a30c7a7b82f335e3275db22e599dfcddd48d91ab08c"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.1"; -}; -tikz-nfold = { - revision = 67718; - shortdesc = "Triple, quadruple, and n-fold paths with TikZ"; - stripPrefix = 0; - sha512.run = "d227be41f651a45240b3cb79f1aebea5015a06eb75c0a5aa69823731c69cad02c2f8b621de3d10d3b2a334781693f39c47f1b5b560c58ee9c5e7278258bebe5c"; - sha512.doc = "a6684f61e230a4de3cd1e4b0da5ce17aff301cd80c434b7c9375d1e4abf3d3b6f3295979153f957b1499894e59d1fbca23e639ee76db6ff6d719df425d1da56b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -tikz-opm = { - revision = 32769; - shortdesc = "Typeset OPM diagrams"; - stripPrefix = 0; - sha512.run = "eeb000cf28e2ff79106edd734ab71b9ec4ecb0db043a8b03764a98a33d3ef570711974bb13b58453362dd045b1019bfb4a1c1a856b74590110f7d8af308a3f01"; - sha512.doc = "a2ed9a4b52d34dece5b0007b9dc46cf8da8cee0a9288b8db79f38068db5227e35ef9e3fe1f93a4c53e994c06c2d5cf21257bcde24b02f1553cb21d9f7585751d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -tikz-optics = { - revision = 62977; - shortdesc = "A library for drawing optical setups with TikZ"; - stripPrefix = 0; - sha512.run = "ac0a42947cf864f28d5bc23aef1163fdee23e05d54ae570ed28e3445a66cf3e9345d6be7aa231496ad86065731ff0a2afa7ad0ce53332fbb3592c07bd396e297"; - sha512.doc = "7b088c27e6cdb4c2b7b44400a31353963b0b45cb26251edc60b4b8eb54663ce2cb76784c9850349e50728d6e7366be22ee6d84a79fccd5791cf713133079a1ff"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.3"; -}; -tikz-osci = { - revision = 68636; - shortdesc = "Produce oscilloscope \"screen shots\""; - stripPrefix = 0; - sha512.run = "93711a01365e992d47306bd379ebc8f72296554288c855dc1f678232e5030894a9241d195cf949133da45ac8df2de1b55244629999f0c311b55d51a2083c4693"; - sha512.doc = "356d60c65bde0d61207df028447409827888a420300a4b27867561494917e4a45db8e6a6dbe291fd19797d64d912089bacda9fd18ff405a28ff2d6512b3b43db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.0"; -}; -tikz-page = { - revision = 42039; - shortdesc = "Small macro to help building nice and complex layout materials"; - stripPrefix = 0; - sha512.run = "be0e43fc329a014b11fce907c6b073f5f4be64b4da4b184705aff2c08d82c1e644056491d01d59ef0ef8a22b4b4c3f22b9012953e00802a9b697a10f0a2f4920"; - sha512.doc = "896da337485c89508e7cb2adf377090b768beded3360a730a5a9c2400db73866b01e0091aaaaf8ce25b7444bf5c5a243f5eeff444d4588a4f8f8b5ac8aa9cdc9"; - sha512.source = "34741f8aec629a8d7929372f1fc5b51ffcef4d95fb95c039c9ba96e4fe05db366c09c88b6987b57ae0573ed067947e2a375f0bea96a74653133abba850453593"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikz-palattice = { - revision = 43442; - shortdesc = "Draw particle accelerator lattices with TikZ"; - stripPrefix = 0; - sha512.run = "6654ca0888b9a4ac7106d5d275a347e38de7dfc342d7c6228670e51a0285937015a39fd34e83e42a5ab8c2f4341e7f233535308bb2cd65a55227dba2d67ad79b"; - sha512.doc = "8fd0a5a2ca4371e021ccceef41115b6520df6437198fdcba7fc37aa600821a95e91696fabb19cb0277639ff7664574cc56a62e1edcc96e58f26dd65ef5c82fa2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -tikz-planets = { - revision = 55002; - shortdesc = "Illustrate celestial mechanics and the solar system"; - stripPrefix = 0; - sha512.run = "e990d8a92d8f34f3042117e289d7c385e17b973954a2286629c84cc2f13397159b75ec5ea1b032d710babf5b31d58d5f2b23a101b535b9d88328d797a36b952f"; - sha512.doc = "c92e05217a4e4aa6f49a5a400f2faea365483257b61db934351b0ec4c932e1d4d88e313f443cfd726db2b1234d0bb66f4f70064d690c554dcf4c4f16672b0c67"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "1.0.2"; -}; -tikz-qtree = { - revision = 26108; - shortdesc = "Use existing qtree syntax for trees in TikZ"; - stripPrefix = 0; - sha512.run = "5b00d147eef48e874d2d5c9b171e93703c728cb56f3882af4e63a41b36ebdadbd5bcae332bcfc8e091b16ee14a3a3e16c594b0f0879bdedeaacde1c1700c542d"; - sha512.doc = "0e2a19415d00cc6c94961dc2e8292038078334cbedeff63d889a3d843d9ca3e89533870cabe2068f5631b3f48fc456cac36b1720df175c20a9f6c986c388f799"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.2"; -}; -tikz-relay = { - revision = 64072; - shortdesc = "TikZ library for typesetting electrical diagrams"; - stripPrefix = 0; - sha512.run = "ac75431dfeae69fed707b99a42ecf64972436b22863e77586125fd6cde18e8e4d8bbdeaff839edc65aaedacbfd1c1e0ce776bde792b7613f810e7ac1f9102132"; - sha512.doc = "1194309c0892e7c35263389e96ec58121e9a82e887c4c702c69b381b75fd5f4f21df6c33440a746db6a944963d9a22a05b23e53f7c818901591499dddffa0087"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.3"; -}; -tikz-sfc = { - revision = 49424; - shortdesc = "Symbols collection for typesetting Sequential Function Chart (SFC) diagrams (PLC programs)"; - stripPrefix = 0; - sha512.run = "f31541b2333c5d8343143aad3a260e528523f78636cd772deae6e0eba81957ceeeb41491279dad621e4476bd9f5125ad994814cb2ab691e5039b54f9fffc7cc8"; - sha512.doc = "caaa3c08f358b7f920322c553ff77e1f42414f16c67d2dd77bde8992e545366224cd7070e833268437332c080d6c65ab244678a3e9d5888fa97d21aafaa2d2b4"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.0.1"; -}; -tikz-swigs = { - revision = 59889; - shortdesc = "Horizontally and vertically split elliptical nodes"; - stripPrefix = 0; - sha512.run = "f1e10c9cc4625fd2e61113f7d5c1cd637efd35ab9b0ccb4308837af3e384ae412bf068140a0924b0bad29e305fd4ba5a0770fdc1467e82cf85dd8eea8289190a"; - sha512.doc = "3ad431f150914461149b85fbc7ce05213c5176e6eaee553ecbf8d150644bc36fdcfa2d836e5201d9a8aecb58751eedd8b98a06ff305c60688766ce8dd00c817e"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; -}; -tikz-timing = { - revision = 64967; - shortdesc = "Easy generation of timing diagrams as TikZ pictures"; - stripPrefix = 0; - deps = [ - "svn-prov" - ]; - sha512.run = "2c3af958ff5509a470b4e1f93bdbb063f5b911a81de12d749fbd7dc6810715a473814d6d8694a81a49d2f45f1f468ef9d441fe07c2269c9c9a9094e350228b36"; - sha512.doc = "33ab52c8b2a60b9bad41a60375aa75432aea20a71c9fa7816d5dbc868e6a70b491dca9572d5c63ea486053294b6b709aa313de464e375e4f0a7a04f76764630a"; - sha512.source = "f1c7c0be255d533898bd65e85f2a36b2f86abb6580b716cb239821a243f67a2706cbcfffb99628b060aadc9b56dfee45f66e54851861df2e0cf12e6cd331aa4e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7f"; -}; -tikz-trackschematic = { - revision = 63480; - shortdesc = "A TikZ library for creating track diagrams in railways"; - stripPrefix = 0; - sha512.run = "421966536c63307c7fe9c194ebd4d5f8a724f99b9baba20a44e867382b1c08f934c9e88d02d834221671ec6e18d392e6ef4595b5a7bec9a18da03b84bbe06a71"; - sha512.doc = "f5d6c8b60da94b9471adb5faa8d159ed89a8ed4742049ae55da2aa615217215fa1334648c974e148031741fea1407b64297bea8f681cedc770ca13975cf289c9"; - hasRunfiles = true; - license = [ "isc" ]; - version = "0.7.1"; -}; -tikz-truchet = { - revision = 50020; - shortdesc = "Draw Truchet tiles"; - stripPrefix = 0; - sha512.run = "74cc5a05cd9558c68cbb7987671fe1e02a9a076049aad96d4c95d7471ff04e48f03c500f58b85bd8eead46e1af592a54ffe1ef0b0ea0644f4479a332a63dec4a"; - sha512.doc = "7fb291a9d7309c722fe31cbcea7a4004d44552f547e4d71fdcd667efb4aba41b6bf0be0cb941dd16e425eedc668dc6de3d2e55f964146a62b861296b0ed18579"; - sha512.source = "88a3d1ca19871e0329e40165b35ec90ce65b1565d42b4a678bfe611311a0cde68a6a8c67ff3ebdf78a1bafed1fec875a4f221efc6934724a265a3402d4970832"; - hasRunfiles = true; - license = [ "mit" ]; -}; -tikz2d-fr = { - revision = 67239; - shortdesc = "Work with some 2D TikZ commands (French)"; - stripPrefix = 0; - sha512.run = "87cf1fd8343df4c6960e4bc004da9154f98146b57a723022e5a81db506805ebdd60db1edafc03d9d787f151cb333c1d141c5407023493bba316b8b41bc245537"; - sha512.doc = "4951babe22ffa5985e3533970b88a8a92f626e18b34e8f7f11051db21accd2977a926fd7e668ecd018324fa62c8b539fe52c279f8ceddd5a037b76dcf03f399c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -tikz3d-fr = { - revision = 67774; - shortdesc = "Work with some 3D figures"; - stripPrefix = 0; - sha512.run = "6b60280f60ee690ade367eaa10a033cb9bb8452c5b5f6413b7ca4918d521638be357e6af6f760844046c15d1171f55b71f5210946ff4a6c6453a7fc332288b85"; - sha512.doc = "599bcf41c7de51c44c943d984bae860748324faf7981f754b44bf8125499822df505cebe2670229fd7429d5b6b0809f7c88649ad8996f8d2cac604b58c9e9522"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.2"; -}; -tikzbricks = { - revision = 63952; - shortdesc = "Drawing bricks with TikZ"; - stripPrefix = 0; - sha512.run = "3ea07c2c6c3ac86d8fa0308e438956e70e2584f7995b3188904e7cce7d311ad0999635ce77c134046da711a723bd36b9602fb60c21a00970503f572baffb6967"; - sha512.doc = "ab32949ad9502bea2ed2951db41029ef02672db38e7a28f02e90099dc1c1dc9b740f1539c3e7c9163b8da7dc2fb4eb21048ca17a0ce2366a364efe66e2a47609"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -tikzcodeblocks = { - revision = 54758; - shortdesc = "Helps to draw codeblocks like scratch, NEPO and PXT in TikZ"; - stripPrefix = 0; - sha512.run = "a19ee68d5d59d936f1882bdf1de5851b9cac48debc4754025d214cc6838173fd7090631b08dd1916043520e97cd479087ad4548c991c0631856510ee912a42dc"; - sha512.doc = "b75b6ddf66fedf1d69611ca0b817ad9c5d7c0bc162cca2f04794bc3723135032908148baf4aae1b486a0b5af9bc335b9e585943a3a2fd73ae55a0702236f5142"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.13"; -}; -tikzdotncross = { - revision = 69382; - shortdesc = "Small set of macros for defining/marking coordinates and crossing (jumps) paths"; - stripPrefix = 0; - sha512.run = "d99ba25a95558629b611e7ae2e845c9b87cc8766f468be6160115a8b26cc648e83351cf233f946f47889773907023c061faae7744e140129930db481b460889d"; - sha512.doc = "c481b80b675bb9cef760157b7b9ea7c790dc42c75624687231b603b39f3bb9835f642e50cabf4a046df67e3698032b644cdd1495d6a9932acfa3532a66b3b031"; - hasRunfiles = true; - license = [ "lppl13c" "gpl3Plus" ]; - version = "1.1"; -}; -tikzducks = { - revision = 66773; - shortdesc = "A little fun package for using rubber ducks in TikZ"; - stripPrefix = 0; - sha512.run = "73675b3ee47740e0c54c352a9cf3349b563cd22756a33aa1f56b6282a9cb4b2da3b851705e7574d5591190bf2392f8900a477d8f93b9102d831c01b2a8650dea"; - sha512.doc = "23fa53a7ee87b26dde5f9832c8b0b23466baaaed4be3ac361659828af6d611ee742b92531ee977fa0341ee5c3058a8ff77cf6ec1a7c3076f6ae4145328320164"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -tikzfill = { - revision = 67847; - shortdesc = "TikZ libraries for filling with images and patterns"; - stripPrefix = 0; - sha512.run = "4864d0859490cd07e123e1160a35fb7817c3ffcc1f409a8c61285823f655357473e0dc7ab92434b5b552cbfca3e88d9181e57cf944d2422467b466cbdcd743a0"; - sha512.doc = "f08d351db50d0ac3d6362c223e30b97b9a734a8b19fc426d5592a17692380667172ee6793064b8c2787ee9e1eaa1a38b70a821f53a2e0dc26316ba81f0549aa2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -tikzinclude = { - revision = 28715; - shortdesc = "Import TikZ images from colletions"; - stripPrefix = 0; - sha512.run = "1559c739ee5ce26c531ed1c989a2d986ee6da05880e6dcb8f14018c71c638028517d1c2374cb452421c92f5d430d4560ae4463732926c56ff33407941e70ffc3"; - sha512.doc = "9cf9e6f5e45f9dba8843684cce3ff395f18c485e30ad0d0566e947dfa69704cd99600f8673203ae212a1aaf77908715c2e5ddbaae0de3732b98564725297112d"; - sha512.source = "3c7b7da5f7fb09fb52a4517846d3cb380482a03a2506c0f2f04f4d71bb42c7ce6cbe4087fe772b45808ad497fc7ba353c9ab193e61c328d57a5dd58b607ad4e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikzlings = { - revision = 63628; - shortdesc = "A collection of cute little animals and similar creatures"; - stripPrefix = 0; - sha512.run = "c838782065c705dfd919708c281d97f1e399df4775ed1410473d392b0f1cd2c8e293cf608cdde5e3cc50a26c51ba6bff3c79b5e02216ae3d3318ab92cc0d6a11"; - sha512.doc = "0a728af74191084ad20d20ad2165bc7690ee805831541b5f2281117961fb9fa54e6f214a4ad570b63019fc8e7dae57c6a28ef37b18088a37f4fb4ca580c37b6b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikzmark = { - revision = 64819; - shortdesc = "Use TikZ's method of remembering a position on a page"; - stripPrefix = 0; - sha512.run = "21196deccbed47e7bd2a95adbe92e197f1073afd26da98ab92494e46ab7cef325c6005d8bcdffaa53a42de440cdf10c5d20370fa0a5f43894defc1a01a284310"; - sha512.doc = "c8222246f56882479a84f834b47332fa9a66d0dbb21ee3fb4018835aa9fcb26fa2204d70ca17d7c4609352648d76b1bcb4dd5a32eb7cb504035711643c944141"; - sha512.source = "bb2a0a621379392d5741296ad90d7ea7eaeb73496363e42e9be44642254f7db2fe8318572c6a44b0d0536cd33a96952c7d860024ab6c1d2ff2a2b2d85d78a46a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.15"; -}; -tikzmarmots = { - revision = 54080; - shortdesc = "Drawing little marmots in TikZ"; - stripPrefix = 0; - sha512.run = "c2ca7c1f66d070e1249b2ed9e88cadd482353140bc3add0146d7f67ffdd8c08cc3eb4b9c59f8e2d822000554a8bcf1e0f064c96ac0e002a6c80655c5eb909f81"; - sha512.doc = "03a4494458d7f053547952945e9ecf1c500dd3fafc665852498de05f38234c45f0972971e8278d279d36c81f2b920152f10ad1bda2c5b24e5957ad0846e77d9c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikzorbital = { - revision = 36439; - shortdesc = "Atomic and molecular orbitals using TikZ"; - stripPrefix = 0; - sha512.run = "cc0be76e583d67759d53ab89f777f137e7038eb8344e841a3a1c6e5327129063f2cdcb67c586546f8bec94e8e83d944ae864f291b5b7d384610f93c0ce604aea"; - sha512.doc = "676980e8772650f77ed37d545cbd4ac22af170e1a4541acbd0739f3b5c0aff91f3d48cd3b3fa3c562510c1c624f46de2218fe33a9e53532ca88ccbb929e3495b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tikzpackets = { - revision = 55827; - shortdesc = "Display network packets"; - stripPrefix = 0; - sha512.run = "65f07d48b37db0391081c8edeb97d59dbb7a261ad1320b3b018f14a2b4544bfad46964b82980b3135416ed75fd7f21d08df97179d1a3ae2fb55308d36e89d2cb"; - sha512.doc = "f669d0a09de871167915f4a6647791346703abf03b557c8afa03f5d3ed81754c4d175d211850b7d6f87c2b0a1077c8559093d9743130f10ef334c10df74ddc69"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -tikzpagenodes = { - revision = 64967; - shortdesc = "A single TikZ node for the whole page"; - stripPrefix = 0; - sha512.run = "f8e3258505ccb31b677212034c3300d442fdae73a45c0dc6e7bc0837cd716caa778ef9410f37ca1bd87c647d9cff28ec3d0f35496c8d1a5f940ce9e602dff475"; - sha512.doc = "daa0cc0d2125a41a6748a2b94b5f399c05d06c28479e1f1bcd188a647ad72048e17f1f851193dbc35bff58f6ed9696a4aa9885fdebadad3996d1e2bc9fda6347"; - sha512.source = "285249f6a0316dbce7b28c41afbcee367a4c682c75d0d31cd6cbbb2fa9ce68813839584e6c74c765ee0e03c4dec115091c99a6509328e2b2e5089a6222b42bf9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -tikzpeople = { - revision = 67840; - shortdesc = "Draw people-shaped nodes in TikZ"; - stripPrefix = 0; - sha512.run = "18621315d7bcec4bcca281b3c3410e281404fd29b0a5d2f4ad799aacb71a1c9d389db8bf1c9fc91b8cc279ec801f0cf8e31c826ded92d8476ce4ce5831754390"; - sha512.doc = "8b8ad4cbfc03663afa6064d4a81ea9c256b8c08522e455c5660c649fb9f1de7859f368d5252b348e0521d62fa3a446b6ef9ad2d1490f7afed8f5423a99b46d3c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -tikzpfeile = { - revision = 25777; - shortdesc = "Draw arrows using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "9da38e2e02c651e2f89a0e9ea917fc5147626026acc7302b7e32aa2cbee072f91311fbab73e44852a2c237290de76e560f2b45e88639936b542e6986d90a9b4d"; - sha512.doc = "a66c6ca303ab6afcea5d94b02936335d28077697d81632199de2678528100c3b5a754aa281fa83d93819a53eb2fc945ae899e254b6d6ccd926f8fbbd86d5ac2e"; - sha512.source = "0a2e2d5ec964bbe5e6230c609d1997fac779f1edb087fdf130b93ce3ae76fbc0b90f5af9076de3f969a8d69e4054571f63dea947113f7447b7fb1f526849929f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -tikzpingus = { - revision = 68310; - shortdesc = "Penguins with TikZ"; - stripPrefix = 0; - sha512.run = "78041352e86e68eb99f875a1c8bf7d4a50c527a4b405e4c93e9da6ecd716bbb0c5fad053fff80229723b4550345077371a52132258cb9d251c319f743767cb7f"; - sha512.doc = "1748e17af7b3190e19a0c446e78f5b40b6a135633850d610179f33927650c8cd92babca86e4fd10408586d1fd81814cbb54985ab0fadfbfd05219b033e4323c6"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1"; -}; -tikzposter = { - revision = 32732; - shortdesc = "Create scientific posters using TikZ"; - stripPrefix = 0; - sha512.run = "75fd7b71632c663329843a48bed32b2fd04cbac02d24271ff1a49bf03e2905ab8f94b5876ee68876bc6017455cc3272750e85eea6061dea57f47fe96ec9e1045"; - sha512.doc = "1bfdf7bc2aa38e876378a1dfac751a57ac93dcb0fc5abeff700107c8ef11423751dc69bd7502c9b2ad2641f7f760eb697a248833b6914111dcd86d7f8a32e9bd"; - sha512.source = "3d78ed0799114da415a112f6cfe73b84a242389d475e223db53a4c9b25d9d5c4ad3285910a3b24eb9fece2195dbbae72e18d57cc83f057fad6062bd5fd5325cb"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.0"; -}; -tikzquads = { - revision = 69409; - shortdesc = "A few shapes designed to be used with CircuiTikZ"; - stripPrefix = 0; - sha512.run = "104bdb76221a25a50644dd8c9a655d5adc4e6019a11c470fe24637a51bb91ac6fb718a4949bf940199aa47f43186f874aee59e5405db45a6497e45f84e69fd9b"; - sha512.doc = "5657179ce49163299bc91f3730dc3fcf77972597502f43822330199a20bc244649e6437a6bfb1c4e98bdbd02e30beee58b950dc73e8269b318801135025c6f1c"; - hasRunfiles = true; - license = [ "lppl13c" "free" ]; - version = "1.0"; -}; -tikzquests = { - revision = 69388; - shortdesc = "A parametric questions' repositories framework"; - stripPrefix = 0; - sha512.run = "616098fcc9f7867458edd525fc71d83786080b1f4ead9a007083d8347add52499b2fdf2c969213e06d43ffc59e9eb4d17bd7872404f1481138229c4f15c1aec9"; - sha512.doc = "433c1202106723c397b383edc37ecff762ce7910b4adf2e70a5ea2d2c823cac2f96147227eeffc71bcc2658b18ce875c780f91d8997f40ab823ab09eb1d84354"; - hasRunfiles = true; - license = [ "lppl13c" "gpl3Plus" ]; - version = "1.1"; -}; -tikzscale = { - revision = 30637; - shortdesc = "Resize pictures while respecting text size"; - stripPrefix = 0; - sha512.run = "73aa62d84417deec8085c3f46b1ababb756e32ae55c4af97def15816606df2b3df4a7735ab434d489d24dabf26806428d945ff3fced3c5eb7c19b36996f2f58b"; - sha512.doc = "d2ac9080a08d7d7e37ea2d1f801c4091cddf9540eb7c2cc2c0753ab0c07c2f0e7392742bc2e93274775c890184c126aa490c78fedf8827a6c787b951abcb6bf5"; - sha512.source = "e073c55b8101eca9f401dc58046cbae260cd9513945e9c7a2fadd0ef86886607d1f92b83a11258be94e0bca08dea87ee878af031c6b42e343b716a1c6af42a2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2.6"; -}; -tikzsymbols = { - revision = 61300; - shortdesc = "Some symbols created using TikZ"; - stripPrefix = 0; - sha512.run = "4e1a479e6e238026dfbdcf152d63c8b67419919f74bffe3c259828a5ab6bec62955cfe5f5a7f407646fc2e5b742fd009280ec4a57cf708317bd9dad95a35a1b2"; - sha512.doc = "7219e48fc2407bd44992378b24c5a1fd0b9c1a9a9c408de2734966657f83735b8cda336d207e9d1593afe0fc58aff7d83213a9ca4be61201df98757e2e4ade75"; - sha512.source = "546f813ef97e1c6d286b4c79e2320bae75e2d94e43d9a15b9d4c6786bab9027c2aa86ba1ff5f94149849f7c11834408106623929b732f8b54697dd7f2916df3c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.12a"; -}; -tikztosvg = { - revision = 60289; - shortdesc = "A utility for rendering TikZ diagrams to SVG"; - sha512.run = "0957b87c9a06771afab350de769e3fa9f97ec0aa09e4e740d0f916992948a65740a96446a0f8ac144273e94f228db2c6c0ddb22bd01ea9f0f66abe5adfe0125c"; - sha512.doc = "3d90c0963c570a115390603bcd5f39a224a155faea8ac6eec511b9689ab98383386d3d6e92076129e0f704d69bd18da52cf2f89f5db024a4d5c34a75c1edf279"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "0.3.0"; -}; -tikztosvg.binfiles = [ - "tikztosvg" -]; -tikzviolinplots = { - revision = 66659; - shortdesc = "Draws violin plots from data"; - stripPrefix = 0; - sha512.run = "00fde57102ed13eafb247859de00c62829ce60de361794afb9103e501033140baf9b474fa147b7282727f7294a0b337897985460526f573532d90117d5f8e552"; - sha512.doc = "5c7cd0990935fb05fa418ace90299532e3dea64e74789dafdff6aa9306e417a3fb170a2b5068045fe5069a08c4ccd97bf4c98ebf5f2102a2c9ca2564090ee52e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7.2"; -}; -tile-graphic = { - revision = 55325; - shortdesc = "Create tiles of a graphical file"; - stripPrefix = 0; - sha512.run = "b6235459600c5c8bc683c9fe778bf864f5ab3dfcc8c15afd7b997c45f349f05b57ded236daeeef1e6bbbb7e535a4f203625344a35d6e4de401c082a937090cfb"; - sha512.doc = "c945ece6ed1b83f4fd8923dd74d0c961c907071fd5d33feda3ea514beeb8b85878dc63011ba73edd1d4a62799ee2555cafe7d4c866d55d160c7e97168ab16038"; - sha512.source = "8334012b871abc58eb44f3b20f76d1afb2764f07be12b7122c81e5ab627a14fe2221596756868523ab8c6b11e0e7f4aba0b9740efbb221e569ab1889141b250c"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -tilings = { - revision = 67292; - shortdesc = "A TikZ library for drawing tiles and tilings"; - stripPrefix = 0; - sha512.run = "f0164d69df56b1b981aec352326eacdf0f79366852bba6eb010a3842c338c678f1f38d3a5b1043ac4ff681595cc4a14a127a40b383f7d5388d9c52776352ac13"; - sha512.doc = "13ac6a6e02a39420f0ed5e74d3f242561de4cd1e410fd6845e82b893c63d2becbf21064a676be29eed0c4b38251a78da55f43164eb2acccfb9f8d94fc72d6462"; - sha512.source = "d6ff1a0f7453df40b7873a5b64a6d449990a3f8459901a3aaa41a5977fa0049a6203bf1cc4802b3d7383d6c68b55abed99c13ff5c5e7ffef4dcfae0e36ed43d9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -timbreicmc = { - revision = 49740; - shortdesc = "Typeset documents with ICMC/USP watermarks"; - stripPrefix = 0; - sha512.run = "01e0e06769810e07389006e9443a836de76e95fea6133e7aab1f47cc554c3912a8aeb43bbf33d06cf9f3a8550a9eb9ec23830ab96ebbb84629ec957d7050e9a9"; - sha512.doc = "ebe4cf57814e6699127a30031c801efe583505098c707a97bece8dff93ff0cd4939cf047802ed38e645c339592e1a062c512dcb5d027192122e4c98ce41d1eac"; - sha512.source = "eae8ea0badfc036dd6c5908c95bda4e829bebc90e4d50cbf766937701a6f631ec9f39269d09889c5c2bf15a3dd24ddd8062829e5bf735c291e4338085749607f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -times = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map utm.map" - ]; - sha512.run = "06f93b823a6141a51554bbd682c128977676775b1c097f7787916c0c14b76d6e9c4041645003111d5a1b905de4faafde5b3efb61d9be9740b9627ab57f3f8eef"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -timetable = { - revision = 15878; - shortdesc = "Generate timetables"; - stripPrefix = 0; - sha512.run = "caee17cfe1a4bae7bae4479066e2f869e6ccee34d28a8952bed7a1409bd9ecb27adfd005f0e824d8ddacbd0e65762da79f9ea5b04d0332d643749ef36b908946"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -timing-diagrams = { - revision = 31491; - shortdesc = "Draw timing diagrams"; - stripPrefix = 0; - sha512.run = "0c07a24aea43b0092610cda5878a7e2be95777f199c9983e0aad42d83c1a6bd96dd4ca4caddef6b61165d62e924033eb01524fc925fdc8a4fd4baf44f568eec6"; - sha512.doc = "1882008e990cd6cfea47b35bd70a50f22972dab0470ada417edf1aa236d2619d57bd3b1d4a149ecc08c1a196c36c9dbf97328f58ea4aa25acb0a6addfcfe8651"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -tinos = { - revision = 68950; - shortdesc = "Tinos fonts with LaTeX support"; - stripPrefix = 0; - fontMaps = [ - "Map tinos.map" - ]; - sha512.run = "0212c5d1d87d1c73c66926a7bf06b2b62a0be51b3a03daec2086a15a4facd80e175ba3f4e23f486e181fb6d3910b77f7d26c28a8f76a9802b5112b010efccc2a"; - sha512.doc = "e7f6fa5253e729b602c1bde603e568d5cdcb953e2a4f1e478c52959d25f58f7678cd107466d7a99b459af70250076c5f16224e4ee549998356c1b1957aaa60cd"; - hasRunfiles = true; - license = [ "asl20" "lppl13c" ]; -}; -tipa = { - revision = 29349; - shortdesc = "Fonts and macros for IPA phonetics characters"; - stripPrefix = 0; - fontMaps = [ - "MixedMap tipa.map" - ]; - sha512.run = "7919b8f5a416cab24c02675ee0a24c60f64e9dfb3bbacb416eb74e29badf6b4dfd8a0528cc8b38dab6395b8c74ec5c808ad84d3a8d4ae5e8212691bed9066129"; - sha512.doc = "213c4eb24943e655c03087dbc5a51eb3cfeff09ece1d31fd11f1734ab3b219db94cc8b5f4735f3d6381b79a5d6ee2cfe727acd17f823b21163e910c09f48e413"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -tipa-de = { - revision = 22005; - shortdesc = "German translation of tipa documentation"; - stripPrefix = 0; - sha512.run = "45ce2504e63e517e76ebbd7b6bfc7b6a4b3a10d72747714c731b6af0b1a9de4d025bce996594449ea61e983097748389a6d878936078fb676ddd4d6f1f267425"; - sha512.doc = "c69333d9a7d335fb217dacb00610b9f0e5eaaf78e535d69998fc600fe53f0ba61c7e3cc1e82d75f52b435cd6945044560b2d275476e96d84d611ab4978c02e3f"; - license = [ "lppl13c" ]; - version = "1.3"; -}; -tipauni = { - revision = 65817; - shortdesc = "Producing Unicode characters with TIPA commands"; - stripPrefix = 0; - sha512.run = "4e628711f3f1efcf96787bd1ce489380a699c4f800edf79523c8d5929339db8ed2b7c2ba49a456bf71b8b280e006fc672ec186b92c35b83934adaa561ce9f296"; - sha512.doc = "9b4f7c48f48797bd4b40e3d823a0cc25f4edbaf1983067ec60ef1df6be58553c10438bca825c4315bee1098d57c8255e988b784660ab6c8ff9d34b11a42d3430"; - sha512.source = "c7e8ced6797fe52d534c30e216bf1f8a1a6154a60623201ed13aabae07ab68a67b1f3bd62c7651e36a059db3742fad364a8ed4eb26f72b1846090f0887f25b06"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "0.7a"; -}; -tipfr = { - revision = 38646; - shortdesc = "Produces calculator's keys with the help of TikZ"; - stripPrefix = 0; - sha512.run = "c8a8efbca7e1785dd81fd4695ed7e0c5dbe713d0a5632078bdba2f7df8e9358bc246d8f9d972ad3035106a7ef687f9229ed31bb630009eaec3b63170cf8933bb"; - sha512.doc = "bb739994051c5738ec0cacf1111d104b225593cbac1ee829057dce42017990483630cc062131ccd7d766d7400a252b1ff84744f91b77d0ca5a1f9ee195a28d5f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -tiscreen = { - revision = 62602; - shortdesc = "Mimic the screen of older Texas Instruments calculators"; - stripPrefix = 0; - sha512.run = "00682d70199d66b3f6a759a32a1cad6b14ef09eaa541cb0ef547d86fd512ffd525f2b53a8c1a7315462aed33148a0b769eea70c5c42213d0731a1034cd96d6d6"; - sha512.doc = "58add8332b25188cc4d7199cabc2ca49e3d08598f6ee2511bc525500b1ab0dd7cf8212d5310ee7fc803bf06c09e4c248eae6c52c52e0a3b3a6694ec1d36ec57f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -titlecaps = { - revision = 63020; - shortdesc = "Setting rich-text input into Titling Caps"; - stripPrefix = 0; - sha512.run = "c9a91646115722f41a82e4010e2b95090447e66864e1b7cab57f24dd797e299568d3c5422b3974829112cd118c4e40a2b14c04eb0e141105fea7f6ef8358bf9c"; - sha512.doc = "5b22152e9e3deedd0e6e19bff817030287b81849e76d0b926caec947e315e0ddef533cb911e0fd4f91346b0c6cd7cb87ac10f33c64e3dab6b70de09613949f1d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -titlefoot = { - revision = 15878; - shortdesc = "Add special material to footer of title page"; - stripPrefix = 0; - sha512.run = "aee68d15213c20d9ba0ef6e3a95f111804e4438d2c80a6cd83ae67725c3174db7f38b0d4280b26f7119e9e1c6477a0aa04d3ee5877e15b05ff2742d94a720c5b"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -titlepages = { - revision = 19457; - shortdesc = "Sample titlepages, and how to code them"; - stripPrefix = 0; - sha512.run = "affb8e221dd2ba1ad6e18d08dcbf3176bf65ae3006a732a7d2bf954fbfe90215175cd3de0dbb7546906b7d65eecb9aff06fabce86c46e88e5027851e11e52260"; - sha512.doc = "703f376c6bb2480f7a326f31ec277716073ddf67834930401c17627dba41c5321a0115e01ec73160917c68fb7ba4e0042e8ac40d968eef89f52b5dd27c2e0495"; - license = [ "lppl13c" ]; -}; -titlepic = { - revision = 43497; - shortdesc = "Add picture to title page of a document"; - stripPrefix = 0; - sha512.run = "753ff5c116f102ebd9fe59ea0ad1e80a7fd102f55588f9454fb3ef43fd5478add2d39984638e112dfcc5421f5f79b4c34c8c15d47845273744b6960946ad1805"; - sha512.doc = "6faaeeb6c7212e35c22321e279c08ac8a985ebb8ec66054b49456ee5a9491b88e48edcb20920d61a052b2df9617ddee7e40bb0e868fe082ce5889e63c193b641"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.2"; -}; -titleref = { - revision = 18729; - shortdesc = "A \"\titleref\" command to cross-reference section titles"; - stripPrefix = 0; - sha512.run = "73905fbe96bc095f602339e0c943048d775bf2a89ef9de3b7149dae7b76aef04e5c77803555450d931f3a4dfef16f5e72597a4d06052d4a852623516edd978f5"; - sha512.doc = "70db133fb8a5fa38a6f0f82912d19afe84e0f68820fe62b3835a6d237582a32fe6c2ba5ad05e46f39540d52d0aafa5a88325e1050e6102164a5753fd9c68d6ad"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "3.1"; -}; -titlesec = { - revision = 68677; - shortdesc = "Select alternative section titles"; - stripPrefix = 0; - sha512.run = "b738823380d594dcef104e3b7fa05d9df233385ddbadf6fc6bb45e8346311f5f58f5f605dcb4b6541f88b57a27b73236eb77a1d128430c6ede675625e2ec051a"; - sha512.doc = "b29c7b4dbeaee946e404166a4b1f4848ecffc4cc238534cf0c7248b1964146893125a9f5f8f87d6c2ea21c1e61304454bf7eb57d95842397363b88d438636363"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.16"; -}; -titling = { - revision = 15878; - shortdesc = "Control over the typesetting of the \maketitle command"; - stripPrefix = 0; - sha512.run = "2a321a17b1ff74f57e7bf3f9d72d1b66a0623ed286c8aa75df6d55f1e62b214954ff38456f27f172789bc4cb500688656ab156609933faef67e62954d05d0ce2"; - sha512.doc = "e69af16331da73c2a61b063ca4dc4c5f70f7958c366b06e96745a2bc92397f89210ebfe598f445ff33ce7705d0f0b56fc3a46f93bcc89145d50b92d56820f61b"; - sha512.source = "1b32988678f184fb335c70ee59d47cc3e20a7ee0f1606495d77880aa915677ed4a885557a406cfc5f5a67878cdd0675ecad503a6457056d901b96124f7eb171a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1d"; -}; -tkz-base = { - revision = 69460; - shortdesc = "Tools for drawing with a cartesian coordinate system"; - stripPrefix = 0; - sha512.run = "a26cb6c8fda3baad6d455a989a4c0f46b5e3b1364acb8f32a866f5ed946344574d29b310c2fbf4e3534dde555d068ae588f9e04b430d15a59ccfdedfe31bd2ca"; - sha512.doc = "9da2aa2bad4901e14cb4c8fa747af000de891005c38175bdce88d706fe83166b534f0d5b39c8557e5ae5975b8b58212cfafee7d2d22c07e76d41ba77ce1403fe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.21c"; -}; -tkz-berge = { - revision = 57485; - shortdesc = "Macros for drawing graphs of graph theory"; - stripPrefix = 0; - sha512.run = "1772cc37537ca421022c5b68536ddcd6cf0d5e88d428cd7682e7773a8290c4b2ad90a11b07dd8c4a4edce69497b63d9a87b5f113bc5857dd8e59e7b80d1340ff"; - sha512.doc = "84b5524a8a0cbce6f33611b77c451fd9a75f0d60375e61e2064b27ad4f28a579fddc9a9dae538cd1f540cfe78f98fa62d9b2df979b9a1ca8e73245245ac35f1e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -tkz-bernoulli = { - revision = 68780; - shortdesc = "Draw Bernoulli trees with TikZ"; - stripPrefix = 0; - sha512.run = "0824d03ce5cca5be08cd648ac3629094eb4607681601b5d75a56069df687054b5e88c3645367c0728de8f7cf43971b32286eff4b18dd094c620ce37e6c957880"; - sha512.doc = "ea1d787fc049cf42605d6adf107892aa4afdcceb32c874382453836d30b956e1599e2b9286a0e64b823d55005bf8ae2e81259d881b69172f6af5db4e01aab581"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.3"; -}; -tkz-doc = { - revision = 68665; - shortdesc = "Documentation macros for the TKZ series of packages"; - stripPrefix = 0; - sha512.run = "ba4c220f4a53089f8e6cde73cbdd7e1b8eb68f4828217dd5dbd3360086bb946fbfc30a993c678bb8c6e4987579016f610875fb2edc796fd19968c3940a0f4402"; - sha512.doc = "f4e798620ecafd750332e5ae7b3491eebc72c02ecad00e9a67247ed0eba56a537d8ea139bafa6bd9bb1c908dbcf0e13491d2c208805cce1f18db438e8da38a71"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.45c"; -}; -tkz-elements = { - revision = 69715; - shortdesc = "A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide"; - stripPrefix = 0; - sha512.run = "cf3694ee7c964b32572bbba7f0f90f9705f546ca074ca566d7f9e104424d9f3a06c804dda89e83496a5749341778d676742ccd1d11fbed4267b025944d876a03"; - sha512.doc = "041eacf3a2657e364db72c12defc437ae336bf4f4250d35de3272f27821b01b4589f102cb4232c7eb1afbf3fa6474df022a0f40a79129b17d2325f81694bb4ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.00c"; -}; -tkz-euclide = { - revision = 69702; - shortdesc = "Tools for drawing Euclidean geometry"; - stripPrefix = 0; - sha512.run = "ad51786dcfc0bb75edc35b53f753972be5112443901d9e3fb42707c33b08ce2ee16e66443f59b6e6d84767fe48088c1ad0532a7c9fccb70da29888db607f6b68"; - sha512.doc = "8225a344b3c73e3fe4bf00d36517f3fce40cdac5580b605b3571568c58737d8981db8de1639fc5d5cab4ae881898dffd7799b390d6535dcbdcbd3f9264aebd03"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.06c"; -}; -tkz-fct = { - revision = 61949; - shortdesc = "Tools for drawing graphs of functions"; - stripPrefix = 0; - sha512.run = "ce605595518cb9b400a5b49620b5f359de8e0fefbc939d88b8f5aa2113a856ce05f4e9f56bb149c73e5f46c65d7d340a65edd6f1b55f6cca68b10dfaf7e04a87"; - sha512.doc = "c2de4bd1cd9ebc5e0747608de7b1780ec97da00c512d3e1b2ce3150431c307c043f24b0bf1853d6c3e96203c33573322d66dbf0db7cd82f5b1a026ee5b7c6d77"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7c"; -}; -tkz-graph = { - revision = 57484; - shortdesc = "Draw graph-theory graphs"; - stripPrefix = 0; - sha512.run = "04cf17f69862b2ec068dfc061fb019b54352cab3fdebb3111de3c28bf15047e06c236d979e9a9a92140c2a59ac9c0813ed7006d0411737b1f04f71c3a5916cda"; - sha512.doc = "df2a31047ece6f5809db42be2243d00b0342d54d3b864de6a32a43257b0d8525170e9d642db495f876c12adf4ae5580252c1378356acdc5f18531aa3099e76d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -tkz-orm = { - revision = 61719; - shortdesc = "Create Object-Role Model (ORM) diagrams"; - stripPrefix = 0; - sha512.run = "41263c9ad122a3cfce3eca3cd4ba8798e61ef662ebf7f00be99dd16a25b50f5419fb6c04a84bae6bd0ce2b349d4b3216a1a88c6e3d081d8a064ff561536a7e71"; - sha512.doc = "ba9a6a67384478cbcf5b76f7148f60bb0f2f1932033f95945b28794f146d89b21e82c4d59b87735d46bacacd10c1ddca2b19e2e7ae4045a331383f4085a99221"; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; - version = "0.1.4"; -}; -tkz-tab = { - revision = 66115; - shortdesc = "Tables of signs and variations using PGF/TikZ"; - stripPrefix = 0; - sha512.run = "cfd37929060d7213d2294708a38a0ba9df8847b0539ae105ec99b4171083877714dbb19ba2ad5d89bd3ad474573f51e263f42b8bf9866cf010e30bf481f75861"; - sha512.doc = "6356829dfaa331e2e0af9edd044168e07bb8608c28ff386001cd06288da0a1517f7b1dc4bea31e1b06d0715620a4bac80a138bc1228a3ab15f88fa706a9c4b18"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.12c"; -}; -tkzexample = { - revision = 63908; - shortdesc = "Package for the documentation of all tkz-* packages"; - stripPrefix = 0; - sha512.run = "d312aa7220166853d5960301b1aac7917969d6cc3859bff6766d366836255cf46fa24f66ad3401243a0cd63b719428b848969bf66d51e5946f56e672eb10b353"; - sha512.doc = "30ad76a0efecf48067e2027eb713dc9af4ff1b0ac50e6c8dc2213a848a41e83d6f53aaf70f5db8654ac4d60b196dfa2ed465cc434010f5ad457bed8cad15f319"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.45c"; -}; -tlc-article = { - revision = 51431; - shortdesc = "A LaTeX document class for formal documents"; - stripPrefix = 0; - sha512.run = "80b2c0d5418e8061d07d502399895a8334003bf5ed574de8f4af0c422ff0d3a660a511b5064b48e65064a91ea0cd057c134f9651e001eb7d5fa9d981366374db"; - sha512.doc = "96535abc8bf54c62e22d4e47178c1cbbb1ca96bfca16df4cab37b182d50e872c57a2e6ebe65727121fd2682776905c962551639d9435e86ab3fbb5d3e05fb72f"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.0.17"; -}; -tlc2 = { - revision = 26096; - shortdesc = "Examples from \"The LaTeX Companion\", second edition"; - stripPrefix = 0; - sha512.run = "3ac7d28285b15d7e97839619a449c870b3f96e1c557470ba4bf680016c9834af9f09715e09525b00aa2b951bbe20e5d3b1d0a5e5f957de99c13fdb39f4267e3d"; - sha512.doc = "79eead14f268eab643f676c36b20ba89828928fb3b418956277304ac6cf7145d53b4f97c30605690cddce8660361614b58ac65e8454b7740dde17ff82a053818"; - license = [ "lppl13c" ]; -}; -tlc3-examples = { - revision = 65496; - shortdesc = "All examples from \"The LaTeX Companion\", third edition"; - stripPrefix = 0; - sha512.run = "2bdb38f294d1737c73068fa9d768d9a8f96ae858d400f1f8b651c4c51427bdb0e4d623fb8b9b0c0ab2adfe8d55fe472ffa4a27e7064b51528f3eb03ace111a06"; - sha512.doc = "b5bbeccc60b9754e888a0ce457cb88f5c86a6b20c3cdc7850d28c85c409057391355551a97e49bc964521c3b4b498927b499e21bfdcaf15b8b8266c7316ebd11"; - license = [ "lppl13c" ]; -}; -tlcockpit = { - revision = 54857; - shortdesc = "A GUI frontend to TeX Live Manager (tlmgr)"; - sha512.run = "50817d4c68d4e302cf0f4075ff9321bde2fd26336923efd2fb39bf097090b617a2a67ce75d1a14d562939514acb17b2a356bc388f72049dbe52a868ff3d63ffd"; - sha512.doc = "d40cec8456db0d9fdd55b76c84b40565a8b16d7639084eaa5dbc61c3bd2ebd73fdde6f40b11007835be242a9103cdc5ecbbecb6082ad650663968db18cc1b04d"; - hasManpages = true; - sha512.source = "01a9038bab5226f57922215e6dac5acf69ba2bae866f72df1d2d4a3a6252fef78e18d1e7b2a8baf327bd4b89262abe6750b0dd1166f47868e797e50b205322a2"; - hasRunfiles = true; - scriptExts = [ - "jar" - ]; - license = [ "gpl3Plus" ]; - version = "1.2"; -}; -tlcockpit.binfiles = [ - "tlcockpit" -]; -tlmgr-intro-zh-cn = { - revision = 59100; - shortdesc = "A short tutorial on using tlmgr in Chinese"; - stripPrefix = 0; - sha512.run = "a89c2f99ad63c8352462ef7139b36e8563e1db815dcb06bd2e0f8b96554c380b574f7d856aa6bffb3c972bd68e9505d7864d87cfb7bcfef1bdebacd10f14a96a"; - sha512.doc = "2b5a7672c600eb2f4cbfb2810090e4383a7032d851f35a74e36c75914d9813566603019f232715e2e39ab6d2f8a60273c01e5cbdcb345892b0bf8c99995e3d4d"; - license = [ "gpl3Plus" ]; -}; -tlmgrbasics = { - revision = 68999; - shortdesc = "A simplified documentation for tlmgr"; - stripPrefix = 0; - sha512.run = "53f7cc8c2a39ea21a8c5eeb57ae7f99759b364ff7f1b41e2f4599d464ce17920746b8a8e182a044faf0621fa3dc842e14cbe93652d351d9fe8e1fde8a7682daa"; - sha512.doc = "ee69a90ccf9b83396b0d9fdd5f030e673d00b2c372334378ad450089b40b93de8b596ed5bc8a459253689316a7219080b88248c1f65a475980ec270a6c84c8ea"; - license = [ "gpl2Plus" ]; -}; -tlshell = { - revision = 66771; - shortdesc = "GUI frontend (tcl/tk-based) for tlmgr"; - sha512.run = "b514f1c41c464300eeff261dc46004963e9ae6133dee084c39d8d7354510f37c3ebd8481daa377e057b48cf805ca87e7f247abe103c3a6404294b4b308361b69"; - sha512.doc = "a4e686c57454adbbead87afc078720e294bd865dc5f77905e0f8e183efe83fcd2f0057336aac17ba6bc91eccf785bf1b3b47959359fc3ea49069bceae3d21d6f"; - hasRunfiles = true; - hasTlpkg = true; - scriptExts = [ - "tcl" - ]; -}; -tlshell.binfiles = [ - "tlshell" -]; -to-be-determined = { - revision = 64882; - shortdesc = "Highlight text passages that need further work"; - stripPrefix = 0; - deps = [ - "soul" - "xcolor" - ]; - sha512.run = "a7c6b60844601f81bb659f57e212cfdc9e7cf72f24bfc662aed9dd26ebb9385187ebf44d82b59b637544b920c05dd5e3a698b69a0ef7ace4b57cd7531d240e3f"; - sha512.doc = "0df7f6b340c28d2ef9db73af4bbad364bbb238a42f37effbde69af30774de627d29b2f03e098482e6fe66d09bec49d7d4a4566ebb3125eb2f3423c1d5fdba066"; - sha512.source = "38d70708e3be579d46e086c2e1b227ac081da1d721fff64b51543269b9df11b7ebe67a8e95999bb3ca1b691b91a4c3e1a8d79bce2f367e6965e34a5577377608"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.3.0"; -}; -tocbibind = { - revision = 20085; - shortdesc = "Add bibliography/index/contents to Table of Contents"; - stripPrefix = 0; - sha512.run = "f373d6c98730e60d06790d1a219df26e60bbddd2aaffc3aefc5877ae6b2c10c1a08e21dfef82cc591e1c6f7c014e0843ae30be948b7eb55321dc94cfb7b16aa9"; - sha512.doc = "1521eaf8a15038a2a0b6136e444ac38d6033071b305f6de6db6a5f8ae34625a5b8bf654d7a97b5ebdfcf4efeae58c41a7c9c17005552314928e315295766c441"; - sha512.source = "fa8375bce4af25fec4743d0c0002f90dbad7240f7959ad843365b72502c8c2d2cc9047b21e01d68a6fc525fca132b3a4842481f808999cac40221af32ea7e487"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5k"; -}; -tocdata = { - revision = 69512; - shortdesc = "Adds names to chapters, sections, figures in the TOC and LOF"; - stripPrefix = 0; - sha512.run = "b1d8fc5f578eb9507e1271fb19d2e024b272b0c23fff4ca11177c46fc2ec69777adca4329960787bd52c8d9862010547ca8b4378ad0b8986c503576be2930cab"; - sha512.doc = "6fe648771c02287ccacf991b7b0e106e9e3917e882993c6203314f97cb20d8e0ce873246abf7fe11d107a22cef0fdc02a7bc89278a6d0a14d48cc6838f17158a"; - sha512.source = "c29fc710ccf0952570aa682af419d1fb2432a4825b9fc8fed5368f8004ff5355250df6deaa28d7168258914711f31b3f379fe7c9383255957092676bd36bad72"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.07"; -}; -tocloft = { - revision = 53364; - shortdesc = "Control table of contents, figures, etc"; - stripPrefix = 0; - sha512.run = "249b50b4dde3c9b14cfd3a7b00c441007643ad6638996b83a0274bf4126ca8a26f6cfff816c5efc9b6516953cfc29c18905138fe137877ae920e82376afeeab7"; - sha512.doc = "edd477e3c4b2a9f815c3e57a6b785c2237bc34435dd561d28b3e38bd8da5cc5d4d4de79a10dfbb55e920d69dab90d0a40efd3bcc44cad1c736a723b89f147af9"; - sha512.source = "a870218b7470962996f5bbab8c15f880d6aa863b8102dfccc67bbe3cdc3895785cc44624bd460d37a96da74d1ef28340535576aa481129e9ccda2e5ee1ee6256"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3j"; -}; -tocvsec2 = { - revision = 33146; - shortdesc = "Section numbering and table of contents control"; - stripPrefix = 0; - sha512.run = "685ff581b0cba155a763ba951b4f5b1e12a44741dc5245967cc2d2effad12127828e4d2f3adabb9fe3d126ffa1f76d43dc196b89faa39745ce85a7f96fb44017"; - sha512.doc = "9247adf45a6a8f18e03d7b93ea8de8decdd9f1ba15eed7ee28c356679a6f62bd8607b9c519448bae2234cec15b76a5155ad7efe99ceb9382022988a29c2ee85c"; - sha512.source = "c6af924f3d8e52028c7bfe7e27bab1420dec1fe6f3e948b09a131c65a37ec8e9baa594d725a4eca7b3dd10ed19ceb5f54f1ccae49706e9816c7e4e1d9f1212c0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -todo = { - revision = 17746; - shortdesc = "Make a to-do list for a document"; - stripPrefix = 0; - sha512.run = "e3cd06aa47c36344602a0dccfb48e43c0639cadcb91aa9e787d552c6d3ecca95da3b0f3af8d0f479caad41f657bbcc30016dfd3f80f42285fe8ab02e0a904601"; - sha512.doc = "c747b4cdcbe8533338a9120b06120b0daa68940ace4cf44d87882d5b5a5a42e2c062c667d2e3fbf8979e1385cd55dfd8747f4fcb044a4112f4b2a79588d0463e"; - sha512.source = "7f70973e13cba6c532d45af7f5c21264adfb75542a7a68e9bf23508955a553efee723edfe098c4a87015c463c99d4063a9bce6888e7bc9018999ab4721a524ce"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "2.142"; -}; -todonotes = { - revision = 69319; - shortdesc = "Marking things to do in a LaTeX document"; - stripPrefix = 0; - deps = [ - "pgf" - "tools" - "xcolor" - "xkeyval" - ]; - sha512.run = "6dbe5b58d44d900b7beceaf265fc0ab227e3f4a56a1f8c1ff4f186df0657a3fe0f674bd60411516e54d90627ec41ffa38d4bcda7f5dcc69632892ac2f0caf96b"; - sha512.doc = "e5a8937624df00f9aa487d43a449c7ff6181219c4dca0ee559b0a10c6fcdf83eec55f9afec7d43721bde0f60c0e8e3eeba55d85627be3af5d20fb9ea45592c30"; - sha512.source = "2ed0f6f85b777e49fb17df84ec97a7b4bb01000de19a578d28f5bdea038a13f360598f3e53b66d20a1584d483297e55df9b1be91ed016cadcc1e8eb9c00179ec"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.7"; -}; -tokcycle = { - revision = 60320; - shortdesc = "Build tools to process tokens from an input stream"; - stripPrefix = 0; - sha512.run = "fa7beb7d6dd1ee5a6caaa968d425143f946426e98a164d1f1b44288105a6c8f57d94931782616c3926493f0af9709c5836bece10aa7ed6c2f1623f8301ff9bae"; - sha512.doc = "dcae2b95cad3150dc8879061d8c546074116af04a970a7c2ad9a91292597f3c859927ebf56ffd58aecb995a9968fc8221b6250efddbdce80edce96fc9c906b48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.42"; -}; -tokenizer = { - revision = 15878; - shortdesc = "A tokenizer"; - stripPrefix = 0; - sha512.run = "5174ea1b9c6c02fb8245db5315ccc7b65239d1343f719ee23428bd530dfd70edf26822bde25d672603d268a63360ba31b4a9fdcddf426b82eef440cd7f449d8e"; - sha512.doc = "4e978a368cd7e97a1300addb739b457cbf4810ecb2d4e1161d931373d858573d8fe1688629cd7d23a44a4d5403e5d8d9dc92869be9809bddc9110c55879c940e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -tonevalue = { - revision = 60058; - shortdesc = "Tool for linguists and phoneticians to visualize tone value patterns"; - stripPrefix = 0; - sha512.run = "052216e492b58a5e8ad4cb3f346815924291f3d24c995d42f22f189e6601a7b4236d434684d5777ea10d50a3d77f033b02ab76ad1550c0ba1ec275a6d22bf4e4"; - sha512.doc = "b9bafeaf2a089f3537767a51923ecb6d7008009f4fe2fa74cff71f7d7358ab52afe4f39951efc04d29e2bca5cfab4ae70cf35a9f1e895377be4cef2ef0c523d0"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "1.0"; -}; -toolbox = { - revision = 32260; - shortdesc = "Tool macros"; - stripPrefix = 0; - sha512.run = "af5320de678474075998f9497be0b766e826b0105b344939a66c5c1377e7c345623e2de18b73cb43f93c8edc241fca7a99fff1ca4b6bd3dfba52bf2ff476f18f"; - sha512.doc = "ee800bb98c9577b12bf20a0b19ce27d9c6900f66e0920c922626599986b887e34513cca8474456aab7ae59aa5d5fae3c7c323ca4cc21372979ab3d545921ed34"; - sha512.source = "201c3153ceb48cc4f7a3b24babd95e78939f03a7d2f3992a73113d904c90e5c957135a0efab98cb2ed01f742c39cf84c4a12efb8bf9f9bb9a082d56f62c98255"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.1"; -}; -tools = { - revision = 68941; - shortdesc = "The LaTeX standard tools bundle"; - stripPrefix = 0; - sha512.run = "6da3f34edda1c3839737f6ce0db95a899af8c47fe9901a502dbc6a6c95ae9fbe317c7365d6cebe3a20bdce8af0e37b803480f8489de57ccc6daac8a758a5c9d9"; - sha512.doc = "614a64b6d5f25c4fd691d629f70f1fc0f614aa4ac1a1a5a6e06f6ab0edcc0a8e8cd14c2cce498aa75ef3320e493c7ef69cd6ac858505519e10b8414b9cbb13ca"; - sha512.source = "2bd6ea620d71ae1e5fab48f5b361560e290a2633668b03a36259228b0cf8f9eb5acecee705c66052dab306288c1defd46a366548f7aa66cf04e802bc40122caf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2023-11-01c"; -}; -topfloat = { - revision = 19084; - shortdesc = "Move floats to the top of the page"; - stripPrefix = 0; - sha512.run = "a4e4031292203a04a1df1dc5e6bd4f6b89c8806599d995707fa0dfc238bcb3dd1ecf185665db33a406302567607da5640f385f12cffb46f482993850b78155a0"; - sha512.doc = "6c37c3b9ad32a121eb03f23049e11fe52b7cf6d49353e94a18eb39aaed3c049bee86ef6c6984440c9700546f20023f7a71975591c1f3750d31e176e8ba4f4c47"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -topiclongtable = { - revision = 54758; - shortdesc = "Extend longtable with cells that merge hierarchically"; - stripPrefix = 0; - sha512.run = "3bd1bc743191a644cf9dbdd36890929003adfd8bc68372ff74882b3b37f2cbdfcd007222fbaadf4d73b5b1f919e1491edf8c25e9c69993be367d3816d06a6b12"; - sha512.doc = "c837a90b1c13f194d4bd41d1ef91e994c4027443169588622bab2613b57cc86c6a29b81178f257c2a6b36ea65c89e1b66791ed137c2b5c144deea8c7cb987a17"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3.2"; -}; -topletter = { - revision = 48182; - shortdesc = "Letter class for the Politecnico di Torino"; - stripPrefix = 0; - sha512.run = "1c583621d738ff203ef755c4ab6d4ad520fe25204c882b3b5b1dc719590cc4ae117502008f0b2ef67486f33127e6eab92a2177aed42a8e011c9309632ce1fda1"; - sha512.doc = "2fcaee9c15adec307e5cbbc4e71dadd2bfe2158f51d5bb842ea6faf1e10487f5881d171e29a48ac7c6c6ce52bae7bffee91772dd046311959167b11ddac8328c"; - sha512.source = "b22e020b8fc477da1316c9f36818d9508f45bd3259e03e2cb096aef984cf655b1171069135001301f9be631c7bfb99e63ed7dc95af968be0700c8027b6484f45"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "0.3.0"; -}; -toptesi = { - revision = 56276; - shortdesc = "Bundle for typesetting multilanguage theses"; - stripPrefix = 0; - sha512.run = "be7a920e195b9ffd3fcfc0bbe1647d1b47fb98743ec69ea9b23783f052d9c10c26acdea42d4d2c7501bd57d3853f53642a5328a1c6954294a2cd38d8aeeaaac2"; - sha512.doc = "7dd70306861e8528cd4c645893a3cb81c20a6f82db2237e595573226c77f8df71ecfa57909b9675e19e441301fecf38f1b1c4bb7b4ed2705a4e132d4bf19b436"; - sha512.source = "f127b3ece0428207e503bf2f9258da2c4128b524069c45c4d7b188ac06ef52527d04020a8f002c72a878a9cf5caa358323e5db9e0b65c46d6fafadc657ec014f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.4.06"; -}; -totalcount = { - revision = 67201; - shortdesc = "Commands for typesetting total values of counters"; - stripPrefix = 0; - sha512.run = "71523dddd67c44f4ef53c14833d4ea3f70603cc76f0495e5533e68eec99b1006796796b39deb40f6b36dd9ed03102ad859a7032bc6dd65137fd19c23c4027a07"; - sha512.doc = "2fb61446efe5fb3ca8c80099d19ecb7a281ea2ebfa756778e4bba8060e9331fd1b712b7b77c66ddbd3a5b60451d6007130803b6138f1eba466a5f210c1d3322d"; - sha512.source = "be9fc65fdcc7999279b5e4c5b495fd7fbab4606fe9f6dc96a5683ef0af41ac8f4fd8c3f5d2470224304a1bc974a6a9b40a7c017049507a7b6ad8db15d2dd2724"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -totcount = { - revision = 21178; - shortdesc = "Find the last value of a counter"; - stripPrefix = 0; - sha512.run = "03ece717c7db3820cf41192e3bad2711e159fcb8a5a5a185e1c55335364917a515d9dd691cf1890421a8c62c9e55bdc49cb13718f7d98d9df34a2470cfff0daf"; - sha512.doc = "46ef8cd2317108d0896b32ba9104c69fb34a6d13d1e123d6b8f1648bfdfffa6bb21f17207433dd763451b1f6c104ae3532e7aac43ef2ba73281842f0a3bcd05e"; - sha512.source = "1820b0b44434650c072a67a4c6144beb7a34129415a4ae298b9c97efd7e81d3396ddb6e4a03081a19962001c8c01a4cdda563c20ba19bda1411e4832d5e7fd14"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -totpages = { - revision = 15878; - shortdesc = "Count pages in a document, and report last page number"; - stripPrefix = 0; - sha512.run = "8dbfcf7728690d6c2a20f661daf62e80c00d3f08fd00aee7a07cbddd31f6adf8f38e32623b2963748367ea08dd3c95919ab576b22d70214a2f5f4f07c40374f1"; - sha512.doc = "58cb9d30644402a68462e0b00b6175ec4a002135eae0bb16ad2cb5b919d1dd6b93583074a0723e1c55946e7d94dab506b8527a67d7d7b39be20608207bae5626"; - sha512.source = "2ac7e8e8f7b79721fdbc6cfcf9d5d81d80b64f60a535435ec13335e1b6059c01001003ab87d9ab8fff4323575a0fbaf6e8a3569670eeb5411be495d9fd712a1a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.00"; -}; -tpic2pdftex = { - revision = 52851; - shortdesc = "Use tpic commands in pdfTeX"; - sha512.run = "fa8689bd257b6336badb8e5a742d5c5f12d9088b33b43bdc41474feda62358c754db05735fa471baa307907bcd61f68e8d061e66c400198d6a1dc165f39d2226"; - sha512.doc = "f24f8508279ded0689bb9dda8c653cfbd903c46782744fcb8d004f50a771ca74b86549c86abc765a408f2be67334048390e407be9446faa476a02ce9c27d5547"; - hasManpages = true; - license = [ "gpl1Only" ]; -}; -tpic2pdftex.binfiles = [ - "tpic2pdftex" -]; -tpslifonts = { - revision = 42428; - shortdesc = "A LaTeX package for configuring presentation fonts"; - stripPrefix = 0; - sha512.run = "0394101636f394f04c38b6677f921136f74e3c8abccff199d4c972ede085c3915e2fe9bbc5b239044dd8f24b405cfc34b5c736a7cd03b749b6aeaf7feb15f5e4"; - sha512.doc = "e5be9024a02669212044844ad0e99b72faae15c62fb0c9065c8a5e3beb852968cf4cd4744d01890534df5a540bd1066749d999e919afd7d791b4e9ca7dd3c26c"; - sha512.source = "d55ebdf58c24f9d68f7a69fab79b8486c46d4d23714d9e1d2365320457ca60275449492482d5d28c4c8a2c884074bbe74874f509c60d66f49b6deb2a06925c9d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.6"; -}; -tqft = { - revision = 44455; - shortdesc = "Drawing TQFT diagrams with TikZ/PGF"; - stripPrefix = 0; - sha512.run = "0bd44773d17cdaac4e3490dbca1fe038bb18e50d057d6adee53b32d6127ec844e3ae9b8f0f671969c8a00e0df01eca9fd93f27e85fc1ebcf03966e6c82b53f8f"; - sha512.doc = "0b6c66aefec59955214299a99eaf4949900fb294e7f1eb904efdfc0de3aa85c5fa38961073ba3f7a3c60f26688c28e6f1bb5ea2c32751062fb3231edc4607f0f"; - sha512.source = "afea6aaf0250f9c9307479d587e844b3f391e387a4d2b6bf83b1eb2e63459d132cf0da38160bbcbeba0eaf1fc8401c9c21dec9dbc8a5e54aebeb1bd25a357445"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -tracklang = { - revision = 65263; - shortdesc = "Language and dialect tracker"; - stripPrefix = 0; - sha512.run = "a8cb03ea2fd0063ad3e0784c1fb6085e623f08d2a8a8e1e5907a13b0d08c2a99c7e1f6d0e357dabdd4e655122b572dca2eee5855bb5fe9ca500715a4b8b4790f"; - sha512.doc = "42dd6cef4ebe9212277ed9cebdcf9875a73981ff88ebd19a5bb43296605087cceeb4095f5de1eef53b70f8edeea5268ce327d16545c55411c20880673f7fd651"; - sha512.source = "1ef4767d6a2a6f221d64544dfe3bc7c6db411b1b525dd887279d8454e7425122d1b0b7ee7b7ee65f2d006a12b76eb1b9f5fb23263da16937894209cb864ecb3e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6.1"; -}; -trajan = { - revision = 15878; - shortdesc = "Fonts from the Trajan column in Rome"; - stripPrefix = 0; - fontMaps = [ - "MixedMap trajan.map" - ]; - sha512.run = "66fe869b94f489a3240078fa28da32fab71767d93befefca62fda3a39ae53ab975b13b7ddf84e490658e915c100f16225ea0ed8e7787b099bf4cb067a9fd4e09"; - sha512.doc = "c6b6137d1952660b99bf077eae0ddc0f40b4ea9ff6308e4f461fd0e34c7b4b35b4ad79f3e42e4d0077c9d2947db642d0add032f2413d580748ba786a8abbf029"; - sha512.source = "36b85f870cd9b006f89df594193877a2188635be840636ae9300f511e5ab2a1ea60eac7f927ccb3e9832ab01972bf585460b47cf7ef30f36a6049ab0ce0fd95b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -tram = { - revision = 29803; - shortdesc = "Typeset tram boxes in LaTeX"; - stripPrefix = 0; - sha512.run = "4592a288c08f5bf6b41fdffee8129e08fec7397edb2b351617fe79571d2905be61cb776f87a5b152c4b62acefdf21ee2f0b293f210ce52f449d3b9e41833b2d5"; - sha512.doc = "bfc46f516c2f81530ed7e648ef6774443502b580cf580b5fd5ea9f7be0311b33fb14156aca3f36bb4d74cc165dd33d0b8ef3ebbab5624f38239c281c7d7bda09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -tramlines = { - revision = 65692; - shortdesc = "A package for creating tramlines (lines above and below a title used by lawyers in the UK)"; - stripPrefix = 0; - sha512.run = "d30a7a7ee30f933163f5462ce00b63e82bbe65b2d08b2b530004c22f7fdd884c99d44423aa98ee4176f0d7cab159799984a399ce26315d0af6522babf7b3f646"; - sha512.doc = "209f4af2dbc0993c3f3b454c2d030c2f69e43403d50721a2c1e7159c1ed1cd95a01c76bd1821d1f281c4b1fd516b3084799d5877acb500453008c3e7e1b15b5b"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-30" ]; - version = "1.1.0"; -}; -translation-array-fr = { - revision = 24344; - shortdesc = "French translation of the documentation of array"; - stripPrefix = 0; - sha512.run = "d32d6b397916bf631d65171f4f7de4bdb6049eec5414d1a9adbbe88d147ce2e4930a4f17b70c5c12b7ef9c3300d9eb099d63fb14ccd5478c6bfcd0557074b343"; - sha512.doc = "7d9b2e43f4fde3e6a3b7436a55b2095fbc4ffa31223019c1cbfdf3d623c48be406858cdb96c8693e10fd0023050ddfbb09b463a9a3804879945ac0d6aa616be4"; - license = [ "lppl13c" ]; -}; -translation-arsclassica-de = { - revision = 23803; - shortdesc = "German version of arsclassica"; - stripPrefix = 0; - sha512.run = "76ced8c2c93e35d6bee10f34a7de5709b8027f9d498f8fcd21ba776850c65e1e20eaf20528414b7d9da1891a2db7132b6e3b703c4f8d91f4ff0c69eb9159c996"; - sha512.doc = "58773adb7493e6ef31d8fd3854a51cd37921dd331f56f1d9eab5283c121fa8c3316ffc41242356a87af04bb6da68761ea15829e5e8555d2e6cdbb68833c8d313"; - license = [ "lppl13c" ]; -}; -translation-biblatex-de = { - revision = 59382; - shortdesc = "German translation of the User Guide for BibLaTeX"; - stripPrefix = 0; - sha512.run = "6256a868d6f6ea53107245574d3d7fe3f1b646cfa67dd456f88abbab980b4f9060c752faa14f185957762b76c159aa8d52b3ab8908c53c5938e415fa8e4d5f7d"; - sha512.doc = "e7e634d9d581f781f33ebcad17f4f496738d6364725dae75d7dae6d357bb7deb08a5e01de0e1ac6aa32cdc09ebefbf0190d9f6f11b286a20ce0fce23c0516fef"; - license = [ "lppl13c" ]; - version = "3.15b"; -}; -translation-chemsym-de = { - revision = 23804; - shortdesc = "German version of chemsym"; - stripPrefix = 0; - sha512.run = "e23821fc1bbdee758e534bb52c4e0f348d6be3396ca2d8e3c11c9425132fc9c28f2bf6c98cb1beee9b23716cc1a75704561d9d8f16d2f4e94851fc2f88e0895a"; - sha512.doc = "efe9f711c42925fd035339c25284e09ca7a99c246bf70ef2c15c4f1149accf5bab09e396b94d6d59d4e8c303bfdb3f40570912713dcbd33e7ae360a6b21c36de"; - license = [ "lppl13c" ]; -}; -translation-dcolumn-fr = { - revision = 24345; - shortdesc = "French translation of the documentation of dcolumn"; - stripPrefix = 0; - sha512.run = "8d2288707f13896dbb578b538b535efffc89991d56586f27a35b284b5be7c553df97a72ac163a625238e281bfe97bb79fa716855dc8e93f25f0a8af69674eb45"; - sha512.doc = "95d1633884f7237bf2a7abf8a43127ac1954fb5d0e308d676a7f4c3255d709496a382f01a8af6c28f793bcd1863e98f8ed1441e7cc288d3b8de3176631cdca1d"; - license = [ "lppl13c" ]; -}; -translation-ecv-de = { - revision = 24754; - shortdesc = "Ecv documentation, in German"; - stripPrefix = 0; - sha512.run = "33998fcadaf7b42874968348ef4e3232652ea401410eea6a8011db146a4989afb102a2bba247df53b875bc02b1ea8f21ec5c68783ae43f36a3f175e77dde6453"; - sha512.doc = "a86784aaeaa786251f35ddf273050e9c981a68d060ba1a2f186379e04f89edc696090b44b402996c4f2422d1cbfd7fd68136c29fc7c74a2fd32d6d230eb2e489"; - license = [ "lppl13c" ]; -}; -translation-enumitem-de = { - revision = 24196; - shortdesc = "Enumitem documentation, in German"; - stripPrefix = 0; - sha512.run = "7018a95d7b68b6b736472d6f43d356d25d2a73df4a5dbc080485f3b4e747d122889788b3d1a75ec4c479a84a4453128104f01b2e1788e9dc50d09bda0eb53cfe"; - sha512.doc = "bee33ecf7a3045c382242f4b6ec9599f32fb254053a6417ceb514f3aad64b2bf51c50f660b562a2a3f0207f7bdc4676527627f432b1556362e3a9f5e9eda8694"; - license = [ "lppl13c" ]; -}; -translation-europecv-de = { - revision = 23840; - shortdesc = "German version of europecv"; - stripPrefix = 0; - sha512.run = "6102a92b45fb7c19d2190bf4289e8b6b24ded67d0255ce2f483627bbdbee00c42c044be03bc10c9d0e23c2b911e781d21a7e6562e80988620a6da60562d98bf4"; - sha512.doc = "f50e761fc7925f0cf404788ad2ad70586536e1676bc7a026be5a81136a1323f011a281160a344c455346553e90cb632133668c2483200a05ecf961e46e50bfb3"; - license = [ "lppl13c" ]; -}; -translation-filecontents-de = { - revision = 24010; - shortdesc = "German version of filecontents"; - stripPrefix = 0; - sha512.run = "78dd9ee41d9b06438e01ec12f716929c4cf0fbf6ff209f45fadce9fad4bac0d1b31732b3f66896bf7526dac7532504e0913dbb69c3c7e13830e81297b2761935"; - sha512.doc = "17ed1c39c549b43c31c13dfd6ffbd968ecbdd3e64b00cbc66b0a8914726f4baa7faf98edf30c23ed81850cee98a732bbdd70ef667973163ccee0b35c160fdc64"; - license = [ "lppl13c" ]; -}; -translation-moreverb-de = { - revision = 23957; - shortdesc = "German version of moreverb"; - stripPrefix = 0; - sha512.run = "6b11a1b522c728722d4d5d5b38dd453ec017dc053d360180b943778923ca9a23b3ebb92516c1a6880e507f5e8b6d8d87878c92762637acc5ac93f42ad790446e"; - sha512.doc = "955070d4e92e38712a5df837fd0df716d1a597780a4b06046d5aac5164efc0fec1121c51ea09c3ef1a090d51732f57308f4db386440118548e2167f3cafe16ce"; - license = [ "lppl13c" ]; -}; -translation-natbib-fr = { - revision = 25105; - shortdesc = "French translation of the documentation of natbib"; - stripPrefix = 0; - sha512.run = "ff34cb7cece157b933117ba0e9aadb0e9caa759a406fabf7b0ebb89e5b03ee6db7aa493551816e9061ff91a460e46a58f1402b086d37c48863b4e093d19326a8"; - sha512.doc = "971570414f9705cc4026a21a557b2f1dfe8fc010feca4f1ada946d11aa30169746c2017fb3882e65e68520539974eaf2361ebab7bcd292eed177fa7f6eb7337c"; - license = [ "lppl13c" ]; -}; -translation-tabbing-fr = { - revision = 24228; - shortdesc = "French translation of the documentation of Tabbing"; - stripPrefix = 0; - sha512.run = "76f1c6318cd964b94d5a1d836b1a40fc58de49566cdc30b1ea60fc29fbcc8c6b01a477f4739a5fd9bb24998325dbf42817ad016fff27207e710bfc4b51b29985"; - sha512.doc = "ae2f1aa60162512287f15c770a465c2e39abe1fa5d1223d96c524dc81bf065d62f307893d22dfc06fc50da8d63d817ed60c8f07fd4fede984b6febe9c8b7b710"; - license = [ "lppl1" ]; -}; -translations = { - revision = 61896; - shortdesc = "Internationalisation of LaTeX2e packages"; - stripPrefix = 0; - sha512.run = "82d2a821c42bda66658f8557d85f2c52bee6324c88cf44e5440cac4de5bf7e938a3e37f7fe2371069a923c1f3fb794f8860274765054f902eaba560ea195297f"; - sha512.doc = "ab72edcca1d3407eaef679acd3f3d2a49f559e5ca6d9d1ad7221dd76152560be307722155cd4da54215e3b7f561f39e08ae737c70ff2e7fea1ddce2561b506fb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.12"; -}; -translator = { - revision = 59412; - shortdesc = "Easy translation of strings in LaTeX"; - stripPrefix = 0; - sha512.run = "5700b0b8a95b244c93f17c5e1bfc74d4defec842892eec358b308dc55f45ffd5bef050a1ed938c9100cad771ce5ccd53bfcc917083a9ba23a60a3b339d241f2f"; - sha512.doc = "abbe08cb16a39395b53d01f85172a11e339cd18f2c7f9dde8ab1d0cf353649c181f442fcb94c9add913b2b807ae9f6ba1ac54e9a6fed147cba1af335b6b73d8d"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "1.12d"; -}; -transparent = { - revision = 64852; - shortdesc = "Using a color stack for transparency with pdfTeX"; - stripPrefix = 0; - sha512.run = "58ffa6219576a994955be228a412835c8da328c351ca0cc5dfa9d3a9fdfe8b38324890ecde9ec8ed9ccc49231169786d704ef65cdd3dfd860f5aa761a18c57d9"; - sha512.doc = "73942fa07c9bcc6e8f08b91837f96a3c781f2f60443078b67232092b98e0bfaab07e57bd43e54345df7fbb9ea20bba8bbbc10c9dc58d5cf2d0b6f6bed469d894"; - sha512.source = "b37938a27dce42366234f7ec2ad1287e4864f53426584ae72dfd801055a06dfd15cd7abffcc0908e22971b01eafe11521c01eaa36a9d0f15fa8b1e61d3d250f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -transparent-io = { - revision = 64113; - shortdesc = "Show for approval the filenames used in \input, \openin, or \openout"; - stripPrefix = 0; - sha512.run = "69d27356f57d5b610fc9e6e839f6df111f6b98b8bf446327ecfba473dea6bc997cb6802ca382b3438d44de85fd5f50f82bd4e5508bfa43d08223463b5436950c"; - sha512.doc = "2e54e51744c482f98c1b35588cc934ba18e3358fc2be043459d7e16f8c85ee6aae7acf4b6c3b329cdfddcf1b3126000c6559d41d5b2c4e88d5018844717cb8eb"; - license = [ "gpl3Only" ]; -}; -tree-dvips = { - revision = 21751; - shortdesc = "Trees and other linguists' macros"; - stripPrefix = 0; - sha512.run = "6153417c5d2677a56adf031c5f2f27e4c2bf204c0acef1cc5cd49355370aa336814bad7d2be00e95d22bcf73b9b69105a255d15f29ed650511c0eccc3c9bda07"; - sha512.doc = "8c507ec7719b92f2cf82527c7799b073ff2679cf820528b489eb7d8c83d28d098033760cf092bceb9ee7e28fec15eb580122c080b982dbb12e0e65176121e84c"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = ".91"; -}; -treetex = { - revision = 28176; - shortdesc = "Draw trees"; - stripPrefix = 0; - sha512.run = "49202a38697bd9bd3bc6fcbf30d28047b8ddc4d737bfa68cfdb83197b484352997a33f55e195211eff1d548f95e2072f07ed18f1d7c6772a03c66a13051d1709"; - sha512.doc = "fb9e09bc2f6e45b854824c9c757733c2c17b4d48edc955ea48bea3ab3fb5dd914eb6427c8ae4f74ebc62b4715bada84c8f3fca0ee7d01f8d3c2526339a844681"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -trfsigns = { - revision = 15878; - shortdesc = "Typeset transform signs"; - stripPrefix = 0; - sha512.run = "3607b6371c2dbbd93524f0811dbf14cd93cb2556fc217899ef3a273c27158771f743bafff0fc90a582d65da431efd7ccc1f07bf92a6600a7bc301b5b6a308325"; - sha512.doc = "9bac4f4deafd62a8b113107ce47bb5ea3afe05078a3c5083b1ed790ed690bc3d73066e0abadc5cb1a3d45246f759941d6e2389105632bb6592c32a08e7b7671b"; - sha512.source = "71aaa336a9f66af6f682cadc72b2ae100c606be7d95d76c2631dbb03ff617718c1c322288c769bb1b9b19116a29baa208fa085e2868e67ce3f7a5552d823e6e0"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.01"; -}; -trigonometry = { - revision = 43006; - shortdesc = "Demonstration code for cos and sin in TeX macros"; - stripPrefix = 0; - sha512.run = "366a5e96499bd96d2eee38b78305d9fd7368d0b70f91acecd5a5337675002808a5695a525d011a1ab7b31ff34cc14c469970a3fe55c694f003d0ba7002795297"; - sha512.doc = "a9bd77bda2cca604a69ca1b60deeb8da3128c625b87d64ccf39aaae853a645e736b5350d3d575302ec2a35e9736e4133cd4ffd223b9bff6191b6fed9549a8092"; - hasRunfiles = true; - license = [ "knuth" ]; -}; -trimspaces = { - revision = 15878; - shortdesc = "Trim spaces around an argument or within a macro"; - stripPrefix = 0; - sha512.run = "09bfe50d1b14502311aea7a20df80e70c1907b1c8443aba9453aa0a3eb76cbd34728734b81df63bd5895a4a5a55ddfe6d0feedf7d5d28d6b5922a374bc550c9e"; - sha512.doc = "8e26064de0c14d6caa1d6cf625cbd2d598102056136dfa20d0a7ffb178c26829db0206d87893937b63f83171744a29bea3567e16e2a7a0d454734a0b72837277"; - sha512.source = "a34429fb9b8514d25ac523f0e3bfdc880b84951ff228ede3016e2d29c001b7f8058755870fc3c63e6041ef4768290177dabc6d520157082fb077497017065b65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -trivfloat = { - revision = 15878; - shortdesc = "Quick float definitions in LaTeX"; - stripPrefix = 0; - sha512.run = "25e07373c53a6d4c92a5f2f19fa0d70c86202435863b8b3cd036f2d12f74a477a33cca6508794f67256a877117bea821a11b9bff235e1a894c90b71810bbcca4"; - sha512.doc = "eb9fce19c495eedd728e87bf47f5d925a685a8b9e81e8de0e6c317f74af6c82352f403486f5a904849ed418722d830ae294a89eaa57bbff59eee8a03cf9b8af8"; - sha512.source = "9537944503c1606151207e75dd7a2bad64b34f82bb23d83e0eb93292ea9ad9edd0bd72a126de588125b6b425669f657506ca602796b6e2dd2997052b70f60dc5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3b"; -}; -trivialpursuit = { - revision = 68971; - shortdesc = "Insert Trivial Pursuit boarding game"; - stripPrefix = 0; - sha512.run = "62cc07c80aab3b4c35bbc5ec96d97204241b0e83248147b2875382657ccfe035567455bf8c689798b4c0dfe6bb8688da2ef9d4a89388521817dd09454867202d"; - sha512.doc = "59474350e6626440d5a5e4f5782135182c6c5e497a3fa6436264a6774ecf498f719b7469a69539766c5e0b10a13ad659e00bc5fec854d0e961032ea7ed13af71"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -trsym = { - revision = 18732; - shortdesc = "Symbols for transformations"; - stripPrefix = 0; - sha512.run = "e571d1c0c042e2fe75b992c6e0e9e07b04f0368f1e74a51ba91c34a642be148fb817027931ec35831672970725377038b5cc80d34bdb716d936f4aa59075d83a"; - sha512.doc = "d6cd64c1c4bbc927f4154c2281ef4c13ab145b750d92561235364a35082e497afc5d8aa5806452757b499b827305a0a183723deb38272ba43bcc38eedc367731"; - sha512.source = "bd9c99b4c5ac266696ab4c3557028d1776a1852000db2e8c1b5a4c2f78e58f25df379a71794faf49e2c0d2ca14116796d8f6d617f4bcbaed7f05a75ec06fd5a5"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.0"; -}; -truncate = { - revision = 18921; - shortdesc = "Truncate text to a specified width"; - stripPrefix = 0; - sha512.run = "b676d65803577b4bce5f6240a0d05a306199f24c2b14402954f4430f07fed9a8af574c4cf9cdc233824bb1a285eee0c531aa40ae31c782a43afd678d6e44f27a"; - sha512.doc = "78e9a96fc2e635237cae9ab4d7ac30cfee8582dde13331800ac9079d1e0726c597accb598b5e679b6643d27b2a53fb367e740b76d59e9a5d27226a4c829e8518"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "3.6"; -}; -truthtable = { - revision = 68300; - shortdesc = "Automatically generate truth tables for given variables and statements"; - stripPrefix = 0; - sha512.run = "1f8ddc2aa2c8672c876794eae7266f8a4a02382ed61eb00af972a2adc732fdcba89a7a7579f07d755eb4ab742018240ea69fa214ff0393b53b9c77ba0179b0bc"; - sha512.doc = "462a23fecb4c1f4a793200aa45d42bd325fad9abf9ea6481fd2c9d3f3993de657cbb7651c7ac1f4aca6d97626c751bc6d66285b8b3e9c06bdd216fbb5dfb9033"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -tsemlines = { - revision = 23440; - shortdesc = "Support for the ancient \emline macro"; - stripPrefix = 0; - sha512.run = "d4b6a929a403ed7fea409aa618e7ca021c2c7138a6b11c980430ba18f952ffba44df951dbc7b7f3a5ffcdace3b5f3a455eedc2a50b6e0e003ae3e17e8e7f9969"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -tsvtemplate = { - revision = 65333; - shortdesc = "Apply a template to a tsv file"; - stripPrefix = 0; - sha512.run = "36910e6a376f074b70f5fd35c8f9bf0ba1ea1f377d7b850506f8ade19e8442b8d9af3216485dd2ebac29534a5d5c59b447679a5e1a1e12c59f3661774d30b244"; - sha512.doc = "48a91c16fd0f819ae201027409e3482edb070762f446d271eabc7822938789d8eaf5255605f66c99c5a0ac303d1d765831ca980a3ed318064b8553d447e1c3da"; - hasRunfiles = true; - license = [ "free" ]; - version = "2022-1.0"; -}; -ttfutils = { - revision = 66186; - shortdesc = "convert TrueType to TFM and PK fonts"; - sha512.run = "2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7"; - sha512.doc = "bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc"; - hasManpages = true; - hasRunfiles = true; -}; -ttfutils.binfiles = [ - "ttf2afm" - "ttf2pk" - "ttf2tfm" - "ttfdump" -]; -tucv = { - revision = 20680; - shortdesc = "Support for typesetting a CV or resumee"; - stripPrefix = 0; - sha512.run = "957485431ecbdd31f180b36e7519c4bee8379f477b765ff5cebe57ffa3c95caa5556ed057943eb052d61e720074dc78035fe05b0023115caceb05bd2c3757183"; - sha512.doc = "750f739c7cc244ce52b4838009666c9b6196cee234e9bbf0028e3316c75a435b5038269e93f42d99116b9db3d93dc4710c03705b924d62f09a217f2acfe36303"; - sha512.source = "f754ab6d751eb5df0477802ab0a4d514aa0825e824531e76904ab474ed5423cbcaf773e37ce80e94c32236bee061f92c0782749c9196c3cc7fcb9249a57ea32a"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -tuda-ci = { - revision = 69351; - shortdesc = "LaTeX templates of Technische Universitat Darmstadt"; - stripPrefix = 0; - sha512.run = "d5a2887147c21caa4c3fa2d8f421a7e759998faa36ab2933b40f7ff43768677f982f5b730c593245c55d09dabdff7bfbc51e5765af897821c525c5510d513bba"; - sha512.doc = "c4a61e1ed259abea0d77fff546ba79eec85d0b5ec63422c8181ba5cae806b4180103361d3ed0eec3035279a13fe6e45166f6832a5de5a801e3b1564fba27be92"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.36"; -}; -tudscr = { - revision = 64085; - shortdesc = "Corporate Design of Technische Universitat Dresden"; - stripPrefix = 0; - deps = [ - "cbfonts" - "environ" - "etoolbox" - "geometry" - "graphics" - "greek-inputenc" - "iwona" - "koma-script" - "mathastext" - "mweights" - "oberdiek" - "opensans" - "trimspaces" - "xcolor" - "xpatch" - ]; - sha512.run = "4e17b12a82a18bb1f4babf123f1e84681c6f9524f2113725f14ad85042dcd5b1fb2aeaa45f709c1797512b8e0f35cd0ff743b60901e75676ec321f8bc682e793"; - sha512.doc = "3335c87afe969963718137a9f854e0a4935c34bd850471673a3914fb9666e8f3195962d3474df35b876741b37c231851d47b440d49c35e42533b3717be1f442e"; - sha512.source = "d317e3fc0624ec762293c972c9feaaf56186faf0962137f43f36b974ef223b094919cd84b9f5183e89e0ea6b922e4ae22b489bc619af466dac41c98fe0b651e5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.06o"; -}; -tufte-latex = { - revision = 37649; - shortdesc = "Document classes inspired by the work of Edward Tufte"; - stripPrefix = 0; - deps = [ - "changepage" - "ifmtarg" - "paralist" - "placeins" - "sauerj" - "xifthen" - ]; - sha512.run = "6dd01a5a6faf37439ca9aab23534f99050b84bfac16df48545417ee03e72700344c25b2de3262e8e28406da705d50296473a815fa14b701c609b3715f01405d1"; - sha512.doc = "11ac57e79a05db644235b6db851473c75d1538a1261d7022a63d9ab0cc54486cc13b7cc95c44d16912952e46bc9264c1bfb831a728b51a03495d01f1963410d3"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "3.5.2"; -}; -tugboat = { - revision = 68694; - shortdesc = "LaTeX macros for TUGboat articles"; - stripPrefix = 0; - sha512.run = "23c3ba2e45560d22a55c4eea733fbfc55466503631eb02c61527f0a73a595790ffe8c8143df2327af61ad8c23848309065fa69abcf181f584f64d03f437228de"; - sha512.doc = "d0482d7fe4ea30d21f43a9266c8ab4b85da66fbfabcf405ba8aee229c0081b623f1cb5862fd7e057d4080439275aa08212079bfed06f992553c4b0dec3a96798"; - sha512.source = "fec6b9556d9a945a3e9ccf73d0d043d099883d4c5c01c0d4a06e50b7900414c37fc62ec586e43526ee4c9e711c558b1601dc46248f2a97180bb75ebd79decbd1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.31"; -}; -tugboat-plain = { - revision = 68695; - shortdesc = "Plain TeX macros for TUGboat"; - stripPrefix = 0; - sha512.run = "e30aecd365721f9c986b70eedd022bde17ffcf348452d650144792bed0854f18547d837d0b3731cd0810d5f6f32f10778b1adf3b29eb07a8ed4d0765dd88cf61"; - sha512.doc = "c49683e2cef04b15c39dd275f950d602be8ecbc2e6fd644634a60100257f2367a623d06086558a69c469fb3597fd32e0a2ccee4ce9e90791daa8f8e67e1122f3"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.29"; -}; -tui = { - revision = 27253; - shortdesc = "Thesis style for the University of the Andes, Colombia"; - stripPrefix = 0; - sha512.run = "59e8af51c39984a42247435ad893c3b8e37eb9dc53634e0a5f30733ee0c973690b66d805079a0f5cf61762abe7fceb1f2dc91691df9be26f72a1a8edd2524ba3"; - sha512.doc = "b48d9811ac6414d96a7b5059b33c174464f262c721159552e48e6f5bcf5b969ae91bbac61aff6077304907d3d2bd8eb73774628458a7e740ea49fe433b9bbbc2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.9"; -}; -turabian = { - revision = 36298; - shortdesc = "Create Turabian-formatted material using LaTeX"; - stripPrefix = 0; - sha512.run = "fe4ec8291e8b1dfc6130bdc862384b8e7c6ea2d4db6baaf92e0b7b053ab8ed328ec452e0c1efc4da2eecc3f8b6c86e77cfd2100ea66e4f59276fb64683d55a92"; - sha512.doc = "3b4900c67c65ee1b20dedb2ffbc844ff22dc519dde0121b375dd13bcd80a0f2fdf5cef8c4e43a395ebe8fb4c82d463f18ca30ec65fe2be398c181af78ec0a0f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.0"; -}; -turabian-formatting = { - revision = 58561; - shortdesc = "Formatting based on Turabian's Manual"; - stripPrefix = 0; - sha512.run = "ebef1733d41cae66456e6a50c47ae0c66a7d7254a59e57f6af62e21cab73ae7a68092baa4706eb1f1e93ab152e0ab22550f0b4ce8cf9ac36eb3740530afe8499"; - sha512.doc = "6cac53c6fe5dd36702ec07e22a00871932dd4b2e421649d33e33f50e8b8b8cc57e42c752ff6e4e2a53610d28f42ddc68b0b6c1cddb0a7a045f3a547c04e77735"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -turkmen = { - revision = 17748; - shortdesc = "Babel support for Turkmen"; - stripPrefix = 0; - sha512.run = "437ff775642326f25f260280ca8d846e546f0f4b3c3082eb1ebaadcfc6ca5196967f82a00237367754b3ff307f983a828dba5c8117539d65634379567062a377"; - sha512.doc = "39014c9049322a1966951a242152b8774b2bc914bd620b6eba8c97e8ec457a1ed3547f2c211b3bba333cab21bac98882dbc9a1e9028443e7365780cf4d78b577"; - sha512.source = "1d69e90b8aa74db44b7b89c8a3346ffbfca2b8514205a04610b5049e50e61b19ef063d9b3e9c99bf4c141d52bb03d600ad5ce1a13494b06fb7d13d12f47b860a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -turnstile = { - revision = 64967; - shortdesc = "Typeset the (logic) turnstile notation"; - stripPrefix = 0; - sha512.run = "164b6b8f053b2daf93e8253df850c4aad793521848a93053f6b3879db5badc0b88b5f8f44487e5525c60e7ba7deadce53b2cecb00b7330b22b0815e01cb68338"; - sha512.doc = "de25995e56ac3fd556aa3c50e8b041b201e2f881d38ec2183b55c5799bc0f110e12e2daf387dc9a6d72a9a85377c6e4c1610f6b54811abe617e8698a40e659c0"; - sha512.source = "3364a27e7d174249212280536479d2ee32ee37b22f7c942858b023d9e7069c82ba80120c7d9eaafb90312dc313fb783073f08a2dd212d5ba380a386081abbc81"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -turnthepage = { - revision = 29803; - shortdesc = "Provide \"turn page\" instructions"; - stripPrefix = 0; - sha512.run = "446b0516264eac6b880048e16cf4ad7bb529718c726233fc645b8c32d625f3f6b505b72beef81994b61ddc77ec8ecfece907347be4f9e18a79fa36c2aef91b5d"; - sha512.doc = "4af8dc61e53df587f19b61f6260e7a7820a8334f2841a63f2ecc05b7197eb69596dc36163b39cdaff9258651241a334b6e3a814699065c8ce4f861fba6110f83"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3a"; -}; -tutodoc = { - revision = 69343; - shortdesc = "Typeset tutorial-like documentations"; - stripPrefix = 0; - sha512.run = "acd6fc6114ab1c25259485514b54d848b75cb5f45dc05cdb8324a91b127031c0db8c84c445b0e1b429dc1a5ca0a6a394987465363265c0f830ea60e72c6ab7de"; - sha512.doc = "8f58c8eaa4db17315d69088b9cb446b90504fe62395fcb07495742695f2c8e8215ab76596d4d98cad3c432f3e6079a2ec3088074345d0ace4d309db3163ce405"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.1.0"; -}; -twemoji-colr = { - revision = 64854; - shortdesc = "Twemoji font in COLR/CPAL layered format"; - stripPrefix = 0; - sha512.run = "abc9583bbfd3690ff52b2341e74166fb70eb0f6abbaf99b01b0f24b818abbe3cd7556ef9cdc3cf58c056a038fe6fc3bdd45199c437a7eab99b300622e8d7308a"; - sha512.doc = "90e01641e73702fe012510bf3c9cf741bbeb594d528b2eb69487bd57beeff59c27ab397902b3c42d5dd1b5745e5b69d0db80b3b2d399bb1ba67e2c85d14a88b5"; - hasRunfiles = true; - license = [ "cc-by-sa-40" "asl20" ]; - version = "0.7.0"; -}; -twemojis = { - revision = 62930; - shortdesc = "Use Twitter's open source emojis through LaTeX commands"; - stripPrefix = 0; - sha512.run = "d9204536ff2cf76cfb341bf8096ea71571663527dea945de901758032393f6e4f53c88f0d274e37da4cccf6b61149cb64f19a8712df80523c2f921354155b797"; - sha512.doc = "3f2f3b13f898545a32aeccef972ed52c448f3547a6834c8cc1a5589e2ff8479b822591d20acdc41f1cfaab1e43469d75abfd0841baed7b1a1dcd4000b87d1045"; - sha512.source = "e9c85a850603cfc49b5ab4f5c51a303dae326a3e44af547c5c9e77319422273c762facc885b76234e935c82b217e53945af524ec9e9431d834ad6645265f78bc"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-40" ]; - version = "1.3.1_twemoji_v14.0.1"; -}; -twoinone = { - revision = 17024; - shortdesc = "Print two pages on a single page"; - stripPrefix = 0; - sha512.run = "ffb9610d416a15f664bfc34772651af63f76843127290bd64462991b3b892a8bbe9b5a8251e278ce757883226bc07f89f54cf94be08d6bdbe6f68c5841e3a282"; - sha512.doc = "5b79b0b235fda5e32680884702a16fe033f3a617daa765a72233d22df5e217f6d2a617a2d067f6a230985e5144e6e6d733ef6e7060f267c6d22bf5de39361d41"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -twoup = { - revision = 15878; - shortdesc = "Print two virtual pages on each physical page"; - stripPrefix = 0; - sha512.run = "b3734b3818498a7038d544304d27376ff481b81fbd776cc44b9d246c3e69560364a784d897755cb69f9608c51135a1fdbb8ed370d624db64dd7b5f18a48bf754"; - sha512.doc = "2bd34ca3274a229949c322a543c2e1fcffac7383edab2cbb7f0c74dd43d3b9531f9ade43f6d0126f5fd43371093f92170f69fdcbc4f69ba7fdca1d1fad167c36"; - sha512.source = "d121f96d050e4dac6b2b52ff99b9b1ac5d5dc5e815c670f6458cdf8989a7be5e5a2ffcf4bb25d3f1ab6d5c02d1c67c15382ea266d0ef2e1f6e86e404fa1dff20"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -twoxtwogame = { - revision = 70426; - shortdesc = "Visualize 2x2 normal-form games"; - stripPrefix = 0; - sha512.run = "b2275f66d1e53f031b6c512754b7dd9fa2e7a078bdb08de64cfd51cb8c66919027397ecc6d740a7fad741b9468442aee0f93b7d9082ca75757d69437de05b001"; - sha512.doc = "1ea1154857058973b8ad02656caf68ffbec00ba7b3a51a985fb4367cf8622fc9a0d6848082c80cb2aa67fbae2fedb8d134ebf2361067704ece953c1b4651a17d"; - hasRunfiles = true; - license = [ "asl20" "cc-by-40" ]; - version = "0.2"; -}; -txfonts = { - revision = 15878; - shortdesc = "Times-like fonts in support of mathematics"; - stripPrefix = 0; - fontMaps = [ - "Map txfonts.map" - ]; - sha512.run = "2e6a195791067ec85f4eeaea5970467c97915dfa48f59d17b5a73c90ba221de1b41ed35502c6714335cd190af05ccaefc6cd5855c5f35f49bd8e15a2b4ca0726"; - sha512.doc = "f19a988305799931023026f714b63ee539ebaddcd39e9be1f1bf765cc4cc89428b626ff4d6bfc91ea2f324f08cf09b618b6a0f8db6b01dc9d8685618daa1e2d1"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -txfontsb = { - revision = 54512; - shortdesc = "Extensions to txfonts, using GNU Freefont"; - stripPrefix = 0; - fontMaps = [ - "Map gptimes.map" - ]; - sha512.run = "7b73b199b6d1f109b14154ff659089b2f3c36feaad10c26fdca80f5c4ab464f8a52fdd52a6191a89538661a3a9cac8fc45748cddd09b6e32e79f23db9e8586e9"; - sha512.doc = "982d29750320bc1709ff8329effb3f7bedc6ded888a537aeb7f080c6fc37414956b1b1e149225cea3f3a60982575fbc943433cd4f9cc5e5d61c596973c07b3ed"; - sha512.source = "f9e4d922abced380458f9fbb25c25a55d55e3a4b938c612bde03c0dd60d55573735816acd745c2785356e5956078615ada3c1396148f8d84a6ba9a805f4ae0fa"; - hasRunfiles = true; - license = [ "gpl1Only" "lppl1" ]; - version = "1.1.1"; -}; -txgreeks = { - revision = 21839; - shortdesc = "Shape selection for TX fonts Greek letters"; - stripPrefix = 0; - sha512.run = "05b24a0c9705589d2e04933a5e29b8a49de155ad0e9a4caa0c36785f7feafe475275b76c58aa50d9318df26342b800382d3c9e8164bd95fdf400f730191282f0"; - sha512.doc = "b671e433740ddc414e0a881d1f91a1311ab0957038ebeba23fe99d623a62e0499825548dd591d0adc67d32a5d7331cdcdc76be6ba87f77265bcf48758626919f"; - sha512.source = "09ffe315c18dfe3ce065a6a48dd17f1340c2381df2585a973b666d2a93f1560be11fec50c44e178a154bc39416437772ef1059c539e5934ca6b02866a087eecb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -txuprcal = { - revision = 43327; - shortdesc = "Upright calligraphic font based on TX calligraphic"; - stripPrefix = 0; - fontMaps = [ - "Map TXUprCal.map" - ]; - sha512.run = "f6840ff0846b52130b65c81513d4bf358dfea413ac6d7f324eab592b96d5277d7036e5d991dbfc1ecf6376fd35baaf0351818eed69a21b6ba88e25f878a41ef1"; - sha512.doc = "f5bd216c689b0368bbbfe29f7fbd57bb7c02344d8696af488fdd7f1078fc5ad9ac7ad5565f1408b7b7d19224093d1418c1e3d8920b8cb0cece770811576c894a"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "1.00"; -}; -type1cm = { - revision = 21820; - shortdesc = "Arbitrary size font selection in LaTeX"; - stripPrefix = 0; - sha512.run = "85a72c942e61dc0c0fd3fd7646d264ee692ecaf4e2badab4f68dbcc380a1c88a78d4ce066e23a08d1cfb29ed3af0115b08ea05a0e078283513eb14f9c6031863"; - sha512.doc = "6cd4061eced23057d860143dd7121b1e0ca1a17de1c2f08334c678c9623c0066ee77c1ab5036953ce390be7356d3fc0d155a5de1f0aa977e1e95296fe71d5199"; - sha512.source = "6a66a866c6edbe8c914bd3b0a7568c0e23914253fcb70fd849326e42b2c32860c97756fb94f5879dead5bc3f057cba64f639038b5a125f607c3f21abe4807bf7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -typed-checklist = { - revision = 63445; - shortdesc = "Typesetting tasks, goals, milestones, artifacts, and more in LaTeX"; - stripPrefix = 0; - sha512.run = "3b8cbfe59d50498fa196655596660c7cab045734e1c2f03843696c35b71ff5bd4af738a7e4fab2272c021558413adc3205efb0ff918ebfd6e46ad3cb6407905b"; - sha512.doc = "5fa0547034644134f207beddf56d523eaec47c1a2f9e2be5bd9d0db17b07874aa08b86a6c059d71ef6e7918dd326171955d9dfd921b28350860710b2935ed494"; - sha512.source = "8b5de72d3200e2c75ecf442b3cacebf6de88e4dd6473b97d4bbfa3ccc3e26a0506424854485d6f81c4c779834ed439017395a72dc7af22e2fe5d72e0e0bb5282"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "2.1"; -}; -typeface = { - revision = 27046; - shortdesc = "Select a balanced set of fonts"; - stripPrefix = 0; - sha512.run = "68a71a590aaf3c6defc28a52b47f38bd1d24ec034df904d7baf4e22f1d390ebbabe744855bda70e72986450b402f03295f772a9576a2bffcab5638f3f77718db"; - sha512.doc = "548caa57dcde46484ae947f46abbd8cfae54c0325b42cc32c23c092e23f7cfe6589b6ddcee1eef09ece3c5ce0328fa561c52234899d9544fdb86440c91c63ce9"; - sha512.source = "3c0a366505b9631e4240bc6a54619c8f526b18ddada30f2a88f8adb29916d0be755bc0643fcb40dc4d1a0bc371596774d029ab4c42d473ec09c36fb48e99cd12"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -typehtml = { - revision = 17134; - shortdesc = "Typeset HTML directly from LaTeX"; - stripPrefix = 0; - sha512.run = "9a158c2fd4c16a5dda1f8828ba32e082f5839fb841a8479563828b0085db4fbe28cb91674c6f22ab4965f8bf6f6cdc0f5b3113743113ca0188ff8bb851845ae3"; - sha512.doc = "0001ed86af90c4fba458d299a2651a200ece010ec76bd8e934afcbacb7d7684fcd6c9514d280bac886a41eb38b4630fa52b1ea18da70ef9c29bc04618e392673"; - sha512.source = "729bb6acd2e6ec28bb18972cc58b7ef8efae136bea2d96a38cedb4b0d40b02e00e2b21143706325bcf9add879e8adcc6b0194b6cbef3803c5566e7f6f0e63ca7"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -typeoutfileinfo = { - revision = 67526; - shortdesc = "Display class/package/file information"; - deps = [ - "fileinfo" - ]; - sha512.run = "6f448ade3e08de1512064cdefbc1811f97f0a32141dc6123788bbd1147fe3d5c3f8709f6316c0268529017e611cf455d1488a8565a128c4c45d1de0ee9311ede"; - sha512.doc = "d8c8e568d87a0107789db201875f2116df08a2c3dc9bf235951d5b675a8b1d01ab8b2170301581f18cfed4fec98e8d63fe127999f0273c9c59da163e72debeb8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.32"; -}; -typeoutfileinfo.binfiles = [ - "typeoutfileinfo" -]; -typewriter = { - revision = 46641; - shortdesc = "Typeset with a randomly variable monospace font"; - stripPrefix = 0; - sha512.run = "f8b9edca6a860f0acf0d676fff381276594f7c13fb13da2e54caf5513a8a65fde378b4c16dc621d89d25d7492318b006d7c5d863c1f96a0a246064c0dad1f2d8"; - sha512.doc = "12376247fd8500e7c147609bf47acab379e36126976ea9f2dc0a352b8b0d779b1cd43bd1394f3961b1a7fa894a8b6448b0369f612d8bbf8d1bec3175e850f89c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -typicons = { - revision = 37623; - shortdesc = "Font containing a set of web-related icons"; - stripPrefix = 0; - sha512.run = "38b0afff6e88635a2a27502f1abc279fd70e49f36d56bb44114895614cf80184ebf8b627bcd576d128b3557de08b3791c5c2e48f2adac9766f9a809ff0db3cba"; - sha512.doc = "36b9517833fa6c430671fdaf0ad0775813c22ea3b3f56fad96410dd90e052b76d81f0ecd411ec19b567cd664b7ca44b9268d05ce59fb9bea0429c8f91c3a4a55"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0.7"; -}; -typoaid = { - revision = 44238; - shortdesc = "Macros for font diagnostics"; - stripPrefix = 0; - sha512.run = "56553f1ea620566efdcd5dbe3710627d4c1b0be0ee294d256cec8cd633a4b24048012c108eac867427ddda28614eadd73172fcd2c57ac702d5f5e5c4a40769bc"; - sha512.doc = "fd4809e02b1167e16bdb75cce5837f6202cfb44e7a0204900f6eb70173aac984eb35b14f00a9d43d4a61a4fb3a00298eafcbf71de15c7531f043e64cef418d8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.7"; -}; -typogrid = { - revision = 24994; - shortdesc = "Print a typographic grid"; - stripPrefix = 0; - sha512.run = "4ef0239ae626245b25e43819bc05da7d22d89d1e33b94402f8bf2b24e2518bfa7ce6626d0c9deffba5d461dd65db0160bd9134b78cd9ba930d0e6315cd761b9c"; - sha512.doc = "d228343668d98616c6cab8a1c4b0cea313b4a7d2f25699a0f54f64b660b10869d2669d98f7f5b992ddff5a3202139ef1e278ebd40b3dd76466c6154a59804c90"; - sha512.source = "23aa23ca0ca597a03ffbcd0ea79c1341d52aecd41d363e6daeea8b35c74d59a4edcb6a0f2dd7fc05e0a1018ce375f77ef7c831cf093292dd3785f486b2397388"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.21"; -}; -tzplot = { - revision = 64537; - shortdesc = "Plot graphs with TikZ abbreviations"; - stripPrefix = 0; - sha512.run = "78d2a67470340caaf6ee286f0dbfb9b8706cd4b0a689a64592c11f6b8a5108a61d33a24d36262aa5b802b8893ba440365fcd1280eac4cf7d3e514f6820ad21ca"; - sha512.doc = "853cb61ef10c91e1392c23e2b4d389f0cf572b692a6eafb8bb9af35ad9b2f1e7a8630ec1df6faf1ac1bc83e88dca0146519f571917ed9ed57e6ded912fecd895"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -uaclasses = { - revision = 15878; - shortdesc = "University of Arizona thesis and dissertation format"; - stripPrefix = 0; - sha512.run = "4341612f18d6f5f4352ec0bf0018fe3115be73f479479586a81d7f994ec23adea7c38fd773022b4d81a126e43bcbfe5f97f4c36d61bad73509f2c1b97882c00f"; - sha512.doc = "63beb08274ed7db9a2d77761277d65f89988812765a2484d7db54a8419cf67dad3fbf76b46bdafd8bd7cf17a1d540deb83c00c7b6df01f6f023bbb5f098c2ab1"; - sha512.source = "ffc4902edf6b4007c3685a58d3e5a20a02a6ca3072466b7415cb4fa98de236e52c6a391c5e5cf30aabf37c7374cf00aaf2c7d6c845a3a61e2f9c0b0505e215bd"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -uafthesis = { - revision = 57349; - shortdesc = "Document class for theses at University of Alaska Fairbanks"; - stripPrefix = 0; - sha512.run = "52e0fde63c966392a235239725e2db7cea70a300837cf53003f961d32f54787d8c4e70ee76577889ea543f884ed5ec281b345bc9e83872e5a131e55429f7afe0"; - sha512.doc = "92c2a15a214f42a9dad8c0c50a67c68d037980b813e8ea4f6067341628f19f51de36a20b0e0d8fc49acbdf6ff026a729dc86e65dd4b8fa148a541d9535db0f85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "12.12"; -}; -uantwerpendocs = { - revision = 66819; - shortdesc = "Course texts, master theses, and exams in University of Antwerp style"; - stripPrefix = 0; - sha512.run = "88163f9a28d8027e1e223e551f1fb053751f849822727fde7e595423e6f10c67e2d389f515aeaec77a68a48d7b20600cf9cf3ae7adb02e72f45e4d6df48c2049"; - sha512.doc = "68dfb896b3b189ac38362a8826fb925c8e1af493029d04bf584a1a6e57c8e501689fad7b63c96fbec69d2aeb69965ff1cc7b544bf35161a6d90c4a54bc486438"; - sha512.source = "9efadf4bc9c217dbad28b57845ef9bc18bdae2e5b48887d1c6c3763a3867083138eaa0a693de0c407fb798e150b0737041789bef915216fd124351c1ee6b3b99"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.5"; -}; -uassign = { - revision = 38459; - shortdesc = "Environments and options for typesetting university assignments"; - stripPrefix = 0; - sha512.run = "3e61f381e23c30670fe78c4a54d99970bd05883e6fa03040e7123fb0936aabf51341d64aeff92109fdc33b7b97f40aa0cd81fd6624d9449584aef1fa3061070b"; - sha512.doc = "e6569cdac6854bc1856d6a4604589619ecbf317442018790eabc3332723dc167a879e7ca6be0da8c281847e757ddada005daaa3b8712f7697ea4052b9c9f7cf9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -ucalgmthesis = { - revision = 66602; - shortdesc = "LaTeX thesis class for University of Calgary Faculty of Graduate Studies"; - stripPrefix = 0; - sha512.run = "b836c6cd59559d6858b6ae98e04c8ac9734f8c9df34c103e6076911db5db6430d0b253c29414a63073216f2ec8e02ffafd69ea97750fa886859b9da1ca2cc07f"; - sha512.doc = "acd371ab0e495a664d37f5da31cfaa9d31edda71b2542afe9b4ece6e4845da19e16d4b84d64b0418b49696d080fc019e521874527ecc0aa8559f2c2341c80cec"; - hasRunfiles = true; - license = [ "mit" ]; -}; -ucbthesis = { - revision = 51690; - shortdesc = "Thesis and dissertation class supporting UCB requirements"; - stripPrefix = 0; - sha512.run = "b1a4258afddfb1283c3fa4f8e126dc63f1ac948ebee2d2fab3738e2f5228b0bda85e71ab3cc3ccfab0b8ae66b84547c5070e111e8c1516b54bcef721f935e63c"; - sha512.doc = "aa443fe9530f08dde9b0531e075052868524c7ff6052e8e93e384ee3c01a354fd1752664b602ff6c98ab5250d05eca910773236d55270c09a567c9b238fbcd7a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -ucdavisthesis = { - revision = 40772; - shortdesc = "A thesis/dissertation class for University of California at Davis"; - stripPrefix = 0; - sha512.run = "ce8191ad81027361c23175194bf23284bc2e43407f0047586a4a89a2c51f9823356e2e571639a1f76f6a1f2b43c08eeb134d874c03f559897b0cf50aecfc94a9"; - sha512.doc = "26ecd36ab09467341868d0ad7d71f39728f23688053ad4b8a89339238da5c96fcfe504d8e6403663eb6441a14333163f8998e00428609b161c3e9665a4ef0bf5"; - sha512.source = "759eab6cc5b63ac159e481bd012ce5da4d6ba35f459928d4e578b96bac60485df32771660b4f8fce08e73303e517c37aee1a5503a96c810506bb854cf7bb050e"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3"; -}; -ucharcat = { - revision = 38907; - shortdesc = "Implementation of the (new in 2015) XeTeX \Ucharcat command in lua, for LuaTeX"; - stripPrefix = 0; - sha512.run = "333e8f92394d89bdc3492606e467d4b664c5d87eb464e1c16ff293e3f87931c3c70308aeb523fb40f2e76e5d0aa2c1635402f40fc36ecfbb7ced98d232b8bcb5"; - sha512.doc = "b4615cefd26201509c908c2719519f927d61ad96367a612d654917819b2ac973fff85d081dad6e1d092e634388b16e83e440d3cbad4fc7c16f638f5e2853bb7f"; - sha512.source = "6ac34b38f4e0908d841ded4981d649c9202bd3bc277843e6e82bce629a245cea9c6ef1336d575d77139584f3940181c5e6f0abadf4ff71c42a97ccc33be59d9d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.03"; -}; -ucharclasses = { - revision = 64782; - shortdesc = "Font actions in XeTeX according to what is being processed"; - stripPrefix = 0; - sha512.run = "41e9f5323b62d529f0b0ddd1ae9c5d613df19190a2a666e1c1b35cadd8bd5411487ecee1419b7dc7f06183181f68ecbb8bf813537c6e711f926fa99fa74f249b"; - sha512.doc = "52fb328befc004024d10d4222eaa7d6d3d179523bfdd48ca8453d6023c118f328a1981b69c805660ee4ddef95df3b5b71e1c85f59f3cae92ac74898f50b52206"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.6"; -}; -ucph-revy = { - revision = 69750; - shortdesc = "Musical script formatting"; - stripPrefix = 0; - sha512.run = "f9fb2dd19b7a963308e5c5058ac990ce3b944377ff6eaf52b26fcd7a12087c75bbb464e5e1155a1c3340e8fb3fca65b6d344d76f47a9a386fdb6e5425303f81b"; - sha512.doc = "0ad9f32badd36c033dd3d368e507518bd27d79e3bb94747b86622c2e41b81e87b5db673ddb4cebf7a88df4180b7cbb2bb0826ee19990e572c5e5ff33394c05f0"; - sha512.source = "b8245b1d950ca2af99683fe87f3eb5211cb4990b0911d11963cadbcc9c9d23d29bda0e7bd18a12184c5ac2501e69b67c89844d061c00f0e1ddb842d5d51d7112"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -ucs = { - revision = 68759; - shortdesc = "Extended UTF-8 input encoding support for LaTeX"; - stripPrefix = 0; - sha512.run = "9adaa0a3fef64436b56d3e4e1c504b74c18dd795db15d193df0e0ced419490ab462cc61850d3bea6cde7928ddcd85cb872130d1dc9776aaf3bcd8f12cf144832"; - sha512.doc = "95dede76d97d0dce6cdaeb0acd128e89c2e98383e633925b40433c0d4e0e342fc3df94603f17370fb56b88c40effb99eacc4310e4de4231232a2be6892adbe87"; - sha512.source = "e2f0406d59b69bac26363cabe90364aa61513e3c20da1fb414ca683e830cdbc79410fbf9f9b36e60d467c989d03e942efa2b9905dcb2339bfae9267e49cbd00b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -ucsmonograph = { - revision = 52698; - shortdesc = "Typesetting academic documents from the University of Caxias do Sul"; - stripPrefix = 0; - sha512.run = "e4375327eabb390842ae833bceea1a554fd833b656e0ede5d56b1bd48a070dc0b89eb878db0c77e92865760755c006fffab8a1d0627f0acb6cc1485aa9a13c6f"; - sha512.doc = "00cfc843b8377d9390806d72a78c5c7d219adc0312a7472ad764bb777200265b6f2d6757f98c44ebdc671671df38e920fe488a2cdea0dab0a3953856b5233b57"; - sha512.source = "900c1f53d5f78fcd7e2fbab9a83130ff0d7233a4fc3a547fdecbb6c7ac35a7c3a32a10f74b00f959c8cc4afae98f97532f3baffe1db433053497db80ab74a852"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.0"; -}; -ucthesis = { - revision = 15878; - shortdesc = "University of California thesis format"; - stripPrefix = 0; - sha512.run = "5409e366c69372dd3a93b3755d185e0b96edf71c7a8de4d6cc3d41850e5b9915d2bbe68d3265b5facd52e7d8c00159031737dbcc26302a1a6a89425ac47f443c"; - sha512.doc = "7f7ec44a55e2d712af2204d883a7136b44192a402daff4376cd6cb217419179d2b46bc083688d9be9ad85d2b3daeb00305f2253196784ffc9d72c039f0aca5af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -udepcolor = { - revision = 69701; - shortdesc = "University of Piura (UDEP) institutional and corporate colors for digital and electronic media"; - stripPrefix = 0; - sha512.run = "010172b3730b31b12a6f9e425203f9064b7c880e5abcfa0ed538ffaedf3517dd394030d55501b48c1582036bb78153d7d4f581cd2c396d658db58faaa00c0cef"; - sha512.doc = "33e7057cdbcb2ee342d061194d5b0e36a1e3e7fd48c7e1d728b6b8b4a2b6fe1c4b0a4a9185b4cfa3a483cd084f93ac905a98f7140bdc0a8e4f37395bf9a55ffc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -udes-genie-these = { - revision = 68141; - shortdesc = "A thesis class file for the Faculte de genie at the Universite de Sherbrooke"; - stripPrefix = 0; - sha512.run = "01422998b27a84f3b892114fe468bd57ecfe37dfda68ff84f2cb95fc9ba589d74fa4874bb35419403269685c74607e647d98b1b443d8739c5b4c3335820f690b"; - sha512.doc = "c962a955f1d618232196eab7c87b301dbf725f8ab08156ed98d4819ba3be5a6873b81dd7deae65c0a36eced5e42be6415b78b06c5fe945b4d4492e98487bb91b"; - sha512.source = "77a91a01bc6e61de8d08048cd4d04ba6e6f2b2c082e14ea4100728bec3229f096089069188a523d3d213c3bc00d27065fb5949b622869fe419226705e357d802"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1.0"; -}; -udesoftec = { - revision = 57866; - shortdesc = "Thesis class for the University of Duisburg-Essen"; - stripPrefix = 0; - sha512.run = "56171faa46267dbd99185807f619a673cc1ace837eea3c0e8659c4d7fb50aab7f8842e259f433070b8eb54390d3426542c3443a62d37a1aa9ae7029f4d7f022a"; - sha512.doc = "463b9ca1c153da84ed0045a2adbe8129031bab79d0a586710b6cbb9fca9b84428b7036848efee27a075b40f0cb015081c89e6e7f5588f1e2bd011d81f40be721"; - sha512.source = "99273b3d809dec7f508bc3f1744143804edfbcc2b3ffbdd6fca4e51be2f98f3ac0ab6852ccd333c5a69a627dfb108952d511a5398eedef0af4306ab573ea54e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7.1"; -}; -uebungsblatt = { - revision = 15878; - shortdesc = "A LaTeX class for writing exercise sheets"; - stripPrefix = 0; - sha512.run = "e9ce935da13de8106d63f233349bd29e954538ad17de7505be14a4b5a2efa1e1aabd3ef46871e98d2f5d4730bcf6c49998187924328eed19a35a95bffdcb8d70"; - sha512.doc = "2853eae6fdddf889b305166c6c09351e8e7d7fb087c68a5ab9f4a7a282118200a5120c215708e7d2b9d4487457aa6330d11ec7f7a8e0139719b67217732f2633"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.0"; -}; -uestcthesis = { - revision = 36371; - shortdesc = "Thesis class for UESTC"; - stripPrefix = 0; - sha512.run = "aaeb270174e260230d527379ef0a7581ec9f78387aae8505ed5e88a04586dfbb1d90cb923181f34e92d5100bcece0da66e17452218f0c83bbb12b38cc517f3b5"; - sha512.doc = "e68e86bb446c1e79111948b004ece03e2110166d01966d562b1bac6c932385aeaa682f04262eccd822e01b93c66c77be53c947c1dbdbf5ce129a74efdacf5df6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1.0"; -}; -ufrgscca = { - revision = 70603; - shortdesc = "A bundle for undergraduate students final work/report (tcc) at UFRGS/EE"; - stripPrefix = 0; - sha512.run = "4232e58cb76fc9e6e9a24fdc760dd189004dc20a10c9b27265a8d2449d8ff4f741ad745e52815e2b729d78896d682a9b11b96b3eb01bcca7ec4a4cc8f4a3c893"; - sha512.doc = "efbfb6a83e5fcc88ce59b8b008c961b3e7e84266ee7b8c8f5f129f3625c1018352b701ef6fb7f8c1f41b21655da6b26d9add397d54b7bab4fe7dd74c91e327d5"; - hasRunfiles = true; - license = [ "lppl13c" "gpl1Only" ]; - version = "2.7"; -}; -uhc = { - revision = 16791; - shortdesc = "Fonts for the Korean language"; - stripPrefix = 0; - fontMaps = [ - "Map umj.map" - ]; - sha512.run = "b5e722e7a72d2efcd89c969c10291779a2885603817374e4318f59b4042b8890df967503016d08a91e30ba8cbbc6f1838843644f06cf44766a7096efdd3bf905"; - sha512.doc = "c37c5041d155f9a175a6761154211a683405d094850cc829a6b942afcb93af987b4049e663d260ae2b066827007d8c6576fdcd5d14d3ff599f031b13c00e162f"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -uhhassignment = { - revision = 44026; - shortdesc = "A document class for typesetting homework assignments"; - stripPrefix = 0; - sha512.run = "a394f6f161cb72ba42eccdaf26f08b12048cee56207f754dac157a2eede1b0867fa0d5916a37d5e3dffbf10237178f156fd3cb33c88be6a926208ca8dcdd0508"; - sha512.doc = "21054dc051229a338d2aa954cbf80893e156236329206ff3cb63f47dceda4c35c6fbf6c2d9492551b7609aa88dec74c507094e2d96f2f96432436e74e80a9c38"; - sha512.source = "0bd0fcb18d334c471fa7d4259cb7c511dc7917344ffcd724ea8bdf859272cc164649f01eb4e553deb5b44f91dfcaa1640b18ccbb5b10c1b0d3a7b585afa323ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -uhrzeit = { - revision = 39570; - shortdesc = "Time printing, in German"; - stripPrefix = 0; - sha512.run = "7b5c732258e25ecc2d429b09349b94cc4f24de77e8db40add018f42bf7658868e9c3730f0fed86312ea96625556fe02a276535eb14416d06fa5fd2cc1eff30c6"; - sha512.doc = "76c7bdb6c74ac05fd9b51366b68b0dae8180da51f506ba1793765d25de29582c8eba51826d6d6c6d3c3c1793f10fda3f6bb75c82d8d454fb19e1339eb98a9eb2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2c"; -}; -uiucredborder = { - revision = 29974; - shortdesc = "Class for UIUC thesis red-bordered forms"; - stripPrefix = 0; - sha512.run = "4a398e734fe551f1636a63ab3ac8b851ff1e445c8b15b6e48017ed7a81edbcf042750919db790d7e2e9d6b08132ec5a3c04195854315ba1c1c8e8712996dcb25"; - sha512.doc = "6e1c91389897853bada4b52c8350dfbbc321395cf1ff7991d7f29d5e64119c86c4e07fdad889f2a4a149e0e2db1a1e5cd9a44cf6f905d5030afa25cfb14d1323"; - sha512.source = "74256e3917f7d28adbcd5d08e4dad126dcc93019c852ff6307417b2e150cdefa986affb61d7b174bf510e5f75563bfde01fba9b4c588db3d41c2fca82e0c882b"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.00"; -}; -uiucthesis = { - revision = 15878; - shortdesc = "UIUC thesis class"; - stripPrefix = 0; - sha512.run = "565b499bcef08716d627e206a53f2f344a10a0e219876eaf4bd82a63accb2eb43c14c8c8b25236d336022900e9a7d5299b5a34d5e40eba0be6d7dc8ee4431490"; - sha512.doc = "798e7428988a622562b94bfd4ae389dcbba3524fda0d427aa4fbdaff0f1a437babb4e68b58350a3229fa078bf11e17af9f5eff61a5c9153960a941783cca623e"; - sha512.source = "3d1eb025e066a311e4ae28292b00e697cf4de63b1038944b41edfbdacbdfd246d5a49bd63f561c5d0d4bfadad8d2a4325a8784245c09308ef5d2380054b966ad"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.25"; -}; -ukbill = { - revision = 69362; - shortdesc = "A class for typesetting UK legislation"; - stripPrefix = 0; - sha512.run = "45a1b6be9d4dbe7a9cf47ff7cf07cd280069203eb9e3a5297e699e84bdffaf845c92a32136ba7e2f61db613a32dec6d37af3eed1a8dd52fdc652af207ef16d23"; - sha512.doc = "ad3076413ae87035b82d913c3772642aef429c7cc0efd7718f3838a5c7dae52e3954d0566c23c57f2f25d51ee9904dc8dc78b3d8a70bbe6554ce0c74d8703862"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.1"; -}; -ukrhyph = { - revision = 21081; - shortdesc = "Hyphenation Patterns for Ukrainian"; - stripPrefix = 0; - sha512.run = "043338c4e92d84bc2b7bd63610656b53b39bac225c5610089c0c8b58ce9bbe3f414129a6b043a5307ebb7b59cc062ade7bd803fb6949d06a0d0c87e2dd4a0bd3"; - sha512.doc = "a283d11ed922181d4f29f521e3019fbca2b1bba1aacb312e22dd8e69d05d7dafbabc5c23b63707f265bcd215d8f517f58ab2ffee2b87d9bc1a968d00e9542840"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ulem = { - revision = 53365; - shortdesc = "Package for underlining"; - stripPrefix = 0; - sha512.run = "bb7fc8d93d38a847431f9f62f1447520890f3904654ef6f3cdffd14537600da35d54bd0839cd8fd8d26e1e3146463cd9ced79f706df54df075292eea8a40ed4c"; - sha512.doc = "153dcf2057d267c2f59c7705c4997752e902aa004201f97d52a180419d7c0fea4173c0b5b1a1c8a11bc1703226e55ea55721a4d18c265b30343a5812d1f4e0e7"; - hasRunfiles = true; - license = [ "free" ]; -}; -ulqda = { - revision = 26313; - shortdesc = "Support of Qualitative Data Analysis"; - sha512.run = "228132cc464dfe171426fffec6103f0dd5eac61c112b03d64d98bc89a0af0ddb7f52f27f9bb5461c8be6f752ae30ef3d4c6b987e580d834eb7524d5c27d956cf"; - sha512.doc = "182dbcb73a25e05035f878696887ea219569a1a7ef44281bee14b4498b37e92346e0e97d187a5f3dbcd8d9783f260080ff10f58dfe41e69caec4888d901b9128"; - sha512.source = "352f1a739cb9c74c0dae529ff330f3269e763242af4dd1bc0aca963b3af03f02f5becad436cc3a93aa105359a1bf2f229b3cdb7175d539d58df67563b490de8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -ulqda.binfiles = [ - "ulqda" -]; -ulthese = { - revision = 60217; - shortdesc = "Thesis class and templates for Universite Laval"; - stripPrefix = 0; - sha512.run = "23a9ad74b214612051104fb111808caf9c6bb2056f129265e77bc76370c293248a7903a5bc99183998061bb18409d86508cd488a4e82487726e17599f5948101"; - sha512.doc = "f7e062e470c524746898e88e2f07cdbcc58c1bd3dd5c04b1f0f1e7e7e6c9fe9968ff68ef2f2a95f25405c7901d937a32ed92b752b6c74fa228237b08645a757c"; - sha512.source = "545c1b5e53c093a1ea29ca73fdd4c3c355dc34a225651d774c31a6dc64acb2dc20d78421fc939bae4d324d6c6e5ce2e4f82ddac6ed935ec8de7e1f530aa5f30d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.3a"; -}; -umbclegislation = { - revision = 41348; - shortdesc = "A LaTeX class for building legislation files for UMBC Student Government Association Bills"; - stripPrefix = 0; - sha512.run = "ea6a55698b51da3939a1bfc10963dd74d9e772ebd18ad9018f649077224f7ee30ca20f051a68c9bd8d8bac94baf1d0d28ab2f864419c61385ebf9bc82aacb7f0"; - sha512.doc = "d4d5f318baa1f1ecd446bb864d0670ed2dcd7208429bfd2ce587810b27dde22f49a6f7c072aad8f6515e721a98ea0ec356ee36eb970cdee385910a291d964394"; - hasRunfiles = true; - license = [ "gpl3Only" ]; - version = "2016-6-8"; -}; -umich-thesis = { - revision = 15878; - shortdesc = "University of Michigan Thesis LaTeX class"; - stripPrefix = 0; - sha512.run = "52bb76c9d9e3bb742c2049495a74d026a1803396bc5064a10f4da2e80390ae6c9c9c74326b14966e989c9edd1e29b797b89413ed6e87e90527ae470a8b731889"; - sha512.doc = "db85abee0ad37ce814c645c072399a6ab7e3307c623bd402a1b9ee8b69a1c2a8aa782b5007a433ebe9eaba984432223bd78f247fdcd0c6f50edeccc87b874173"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.20"; -}; -uml = { - revision = 17476; - shortdesc = "UML diagrams in LaTeX"; - stripPrefix = 0; - sha512.run = "b20da85c7166f8aec4309af3ab0b1319f37ada1513ff502555794b1721ac8c3f551afcdf49a58bf5c3c5e666e48962075f7711a45de003245584541175a6a470"; - sha512.doc = "d81393e3b6d9efc0177478e562dc0a22323e3e5913d7592cdb6ec595d525238e154d2a599380521652eda4fe75b12006cfdc907715b0a9d461f8df60ed27986b"; - sha512.source = "afc5aa7db53b82f6063abca35d8cde75659682525d939e2f55c375b89fa4cc196bca8852c91d12f7daae939c053f4c9ecf99b326361f051847e660af5afe3ef7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.11"; -}; -umlaute = { - revision = 15878; - shortdesc = "German input encodings in LaTeX"; - stripPrefix = 0; - sha512.run = "35188d3930b11c0d1b52a5032bcf9cea21a22ce8ca2930f69ad4ab54bcdf56b73858168cc62581aac1173452dd0f7d0da3de8ac21b0ca2255ef324ff63c89091"; - sha512.doc = "89f28b3b90f63ea4f367019f0b65aa1f8e9489ff0d897af6ea29b7455948e3e75ef003a5a2d5b4a88e00a5e415d409a577c03b63a330f93ed6804c99f951c68e"; - sha512.source = "494ee6d1432d783f9586c80cee044e2857d4d24358c7dcb7d3043945bb3f5331b8eee78a13ee759ed6260518dcdebab33d78bab4cec5d384c4773b502c96fb0b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -umoline = { - revision = 19085; - shortdesc = "Underline text allowing line breaking"; - stripPrefix = 0; - sha512.run = "db3b8216d50288ec096f3dea9db24dfbad76848d9b8ccdc5d1310f4b8bb1b37ef10fed74ee5e6e0b70cc3e0aaa73aea87354ad731e4057c888031eb4e1940539"; - sha512.doc = "64d559300349fd75af4bd98f0841aee5c5d622791cdd03373ea1e7840989b5175e300663023d0f08636b86337f66c6668871387a51a9a28e079111087265bb98"; - sha512.source = "13f53876f0b1c5921b480ad9d2c63ef3abf1e175006145f200f61f515e778161ba631c6da9ca4c4d928f94220e0964b64130638d7dd7195160b54f39e4bf868d"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -umthesis = { - revision = 15878; - shortdesc = "Dissertations at the University of Michigan"; - stripPrefix = 0; - sha512.run = "b2fb90713da6547b9d4cbea4f972144f70d7f1875e325225f0dfb90df1a04b4693c5a3dc651f0066ef7ba6456c7732aeb5272ccfd5e8edc24281c1b1bc9e4e32"; - sha512.doc = "fb43c7ab262d2a1eb70b80bf4ad66ae9e022c847451009372e1ee1fcc5250e93b0a4a2195f4208799ae78cbcb5fc24d48de0b2355884721918ae5d4c827c3507"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -umtypewriter = { - revision = 64443; - shortdesc = "Fonts to typeset with the xgreek package"; - stripPrefix = 0; - sha512.run = "e62f573d1dd79b27a9ed563a9081c94eeb483fe9904cf080209a198793bbd845e4ed29eb5849165a3880338a07dade313762c02a0e37c8b518752edede622950"; - sha512.doc = "8d8044cb196584c363006bafb7e31c023e1761bb23070ed56fa3eb84040861fa29cfae479ecad01050b9cea0f5ef408d551a34809362456e31fd53513d1bc90f"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.1"; -}; -unam-thesis = { - revision = 51207; - shortdesc = "Create documents according to the UNAM guidelines"; - stripPrefix = 0; - sha512.run = "aaa8c4029cfb130798c5e9401fde5dbc7943d7cb89c9a620e050e619ccc1950593b1d10bf6300958aede043ed0e4fbef371d0c40f055b259284f008463a64c40"; - sha512.doc = "ba6897f0b31953cc60bb49430de1b77d10d7656363d596d4160f96189c70417227193ac7d3809e1bd7518b89a871f5bf4b18004ff8185b2a03e0226536dc6a3a"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "0.5"; -}; -unamth-template = { - revision = 68681; - shortdesc = "UNAM Thesis LaTeX Template"; - stripPrefix = 0; - sha512.run = "c6b6d86dacb71575a7f76e33eac081f630b81815e3501ff5ba5a5e056d5bab76c709b19b8843adca39330fb644cc49e70c8687b5a66d0dc636caa74af6c3bf5e"; - sha512.doc = "e7e17ba71d47769db4766628d334ed66980d7f133ec0bf2bf21d7a00e92d661dfa624def736891c5d70f11755215bff47b8cc9ffaded3baebbaf52e0365227e4"; - license = [ "gpl3Only" ]; - version = "2.0"; -}; -unamthesis = { - revision = 43639; - shortdesc = "Style for Universidad Nacional Autonoma de Mexico theses"; - stripPrefix = 0; - sha512.run = "f48e7aab2c445c5e257bb39ea4dd880cf9334a5b1dcbf429e8d4420edbdc4621aa59548f31770d67698bfb4e59e239dbcddc959c1b010e012ad16971ee7956f0"; - sha512.doc = "240a697f242b880fd2436bbaa3752aae57ef3fd2e9ee63da173c78582c4bcbb1eb19e02a96607991d1d6a40157d52f00dadcd4956af230d429ad5223161a018d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -unbtex = { - revision = 70325; - shortdesc = "A class for theses at University of Brasilia (UnB)"; - stripPrefix = 0; - sha512.run = "0896c89b0fe51d943455fddd654f67b81aeadbc83d2a66eda450b9152f6d3ebceb4854c3bcb03c38f4ff0f0ced0b50c2e276b2ffb306ead72be05dc1eb02893f"; - sha512.doc = "e398de7bde9696776778314665d6cf37f55c0faf33cf3dd4acbd14d82d7d303d4a0750119aa0fc8e8b80288ae7219020ab43ac78c7d125a54845277a8ee2ead7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.1"; -}; -undar-digitacion = { - revision = 69742; - shortdesc = "Musical fingering diagrams of Pinkullo Huanuqueno, Flute (Recorder), Quena and Saxophone"; - stripPrefix = 0; - sha512.run = "933038ebcded30e59b2075a064c35a00e5523fae80a6a7091d8a0c44a043d4e9150b68f1cdd6814b3a0346286086b8f5af7b68b2de2c32be1c38684672afc848"; - sha512.doc = "bdb12e362af8ff816c0cc43a76974a8f1ab326486a6b103430fb2139f22cddd27514d2e486cd969179be75684bb6e5fc0bf959f8d8c868ce3d5fe466097a0224"; - sha512.source = "37d9e4d5872cca1cfe157233b56050a4f599038f3d552614ca11125dfe23596cb81cf5059244e6f3d702b338558d687b5a28a4f96a18c0c9d2b038a31484197e"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.0"; -}; -undergradmath = { - revision = 57286; - shortdesc = "LaTeX Math for Undergraduates cheat sheet"; - stripPrefix = 0; - sha512.run = "948d0f0ac20a63fb0c6de8003c572c11704d2016d2ddea6674f58742e997021d709d51806b5acb4716c79539b96086758814f4f5d303a257768c8716821e8451"; - sha512.doc = "6300a5d0781bae331091cfc8007e974ed3534ec3672dedc080c8e118e8526c98206438a6841d50d2e642e8d6c7859cabae14e140c211bc8175e7f9d1cba0ddfe"; - license = [ "cc-by-sa-40" ]; -}; -underlin = { - revision = 15878; - shortdesc = "Underlined running heads"; - stripPrefix = 0; - sha512.run = "b3afaf4c51b3da2d082e2cc742deaabe70cfbea7425e0c57f0d1d6696cd7d8f993707a219556a5c5bca925ea63373e3f0a716a82ead647e09ef2f716535886d2"; - sha512.doc = "d296a04d3a24b463de3e4fe99c96a2fd8afa7c4ed2fa17d1218ac9e4c17455b4752176be60743211d59657045c709c8b4bd66febf10c81a41879e8c7a67e9958"; - sha512.source = "8c534008a2cb0710b95333869536bdef5e3910e4a7c29ad2daabacd94bc5a34ea15dd3bd8439e7ebede0985831662d86f68815bb13b3fc36c82d83c51b16cb5d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -underoverlap = { - revision = 29019; - shortdesc = "Position decorations over and under expressions"; - stripPrefix = 0; - sha512.run = "3f94b5d33cfaa7f48441ba656e9498ea17ee5ca404e39486004e43bed71bab5f2140b391191e4d6f9575ca23e09b83bce343433c02cc394844270e563aab70c3"; - sha512.doc = "5214981a15d7f15cd361f007505a4a0060a2952d75ea28f4eaef01c19a5b79736512a2b0a8c5e6ece2d08c364780256963276a9bc9ea980e13ba292e3d0b8bc2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.0.1-r1"; -}; -underscore = { - revision = 18261; - shortdesc = "Control the behaviour of \"_\" in text"; - stripPrefix = 0; - sha512.run = "4fdc57d0a36aa5646c6b960b7579a8111441659469df32beaae06f54e6e835456810b1d9b5d36036510befd5e80b5b481b9179a6b24364bf8f858ebc97039ab2"; - sha512.doc = "e1f0730b39a5d25cc52160e090b797ed73a5becc16b6813cd0c2f4bf78696b23aec5c82367c347d0e734f3b92761ad2090e517bb6dd2a40879639f62149fdba6"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -undolabl = { - revision = 65846; - shortdesc = "Override existing labels"; - stripPrefix = 0; - sha512.run = "7a2a13c7cf9a5920278bfcc57c6670a3abe704ffe01f3d90e253dc974c601da9a65366e7dc49785c398e3040771f45fa67365ba4e2b32426380c70556e4337a0"; - sha512.doc = "dff0446c4efbc3ea2a8e379718ec977c53aa54c46c6703cc774db74e9e3d85c49dc83cbe0f1d8cd6450899af5929480968fea873333aea321d8742cb328105e1"; - sha512.source = "b5c0b41e71540e0a0b5cd7baacd702403b4611446a208186caa8f98eb840ae093b852e7b64451488ab7bdba4f3f5bcb8fadb79a9c81015de4989ffed1ea1a743"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0m"; -}; -unfonts-core = { - revision = 56291; - shortdesc = "TrueType version of Un-fonts"; - stripPrefix = 0; - sha512.run = "5476421a802ec3daa8fcb8354924ffb090aa9ea337db315c813637fafa445ef82601edc61cb7aa424bd7e2deee7607902ed33f0cfe70c214901d4c52dfcff6c5"; - sha512.doc = "8f51172be1093ff9da6ebb7071f5fea435e2bdace5619faa24ebdef52b3e34197d91b8f9d302844d4e1377a2a4712247743172afcd4b01367e9f166bd76112fd"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -unfonts-extra = { - revision = 56291; - shortdesc = "TrueType version of Un-fonts"; - stripPrefix = 0; - sha512.run = "9cf9a73ba3c2190da7999c3b770e92d8afb43c640d651173c126e930155e9f87f371392accd4eadae8922ee846a5e02c0eeab845561dea943b34b185164bba3c"; - sha512.doc = "6173d49bb64c9b162763ff08af445e518fa650fcc13e02f5c72454d335285d9c82347cf79f945fae94429f3a9d15f9c9b58ff1d175c8f59ea7b75766cd279303"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -uni-titlepage = { - revision = 68917; - shortdesc = "Universal titlepages with configuration options and predefined styles"; - stripPrefix = 0; - sha512.run = "980f748d37b5b4a3118b1f34db2957b71cdb7551595cf7673e64d75b70688e882b90bd83132ad43bfdbbbb2bfa2752fc2028f3164fb9ee5e9565b84740b303eb"; - sha512.doc = "1198414d70aac8b31e23c73bd167586be5bf2f2745ad492fe516381a1e202e9e0720a389fc8c12eec2a21747f7e5c85fd754243b09dd5a008b2dcfa9a7257e57"; - sha512.source = "3eb42ea4fc401d4a55362f66c96db5295fb6ee66cfd840786ea5aa640c9f2b92bb5718f614d832d7e84427af20334be407ab59e155d135212a00769bbbd50038"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -uni-wtal-ger = { - revision = 31541; - shortdesc = "Citation style for literary studies at the University of Wuppertal"; - stripPrefix = 0; - sha512.run = "d1b6186d50733f87576ef6509f7eebaa17651039d882f78abbfa8ae23ddf7b896a90065fd5ff83a2e216485c22e865057f715784fab37ad9440616297d67a26d"; - sha512.doc = "ffee19f2d4ac337f7615b99946287eb902d2841b48f9d5c49d51604b45b7eaa126538732d64b319a8ba320f1dcb9b62b45cf608dbb0059f37975a1220022c333"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -uni-wtal-lin = { - revision = 31409; - shortdesc = "Citation style for linguistic studies at the University of Wuppertal"; - stripPrefix = 0; - sha512.run = "803107d89b4ce6fe120bb528c684a65db3a9c70433abfd6bcebe2a5d05e6c7680256a407ef5f0515a56915c5c1e0637a183cc866631558e32afd96a0e45139ce"; - sha512.doc = "e88b2c8364eeebf3768d0d562447d29233280daf685d56fe791d25b352cc64c4c95be3bec198aa6e5502287a654f3088e643a3a58edf7e55d0d899eed5b704c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -unicode-alphabets = { - revision = 66225; - shortdesc = "Macros for using characters from Unicode's Private Use Area"; - stripPrefix = 0; - sha512.run = "5a4b043778811bfec1ecc847ee191dc64b3f99ae0adb8fda2b16fdfddabf195133d53acf295fb18dd70460e1c1d200d3e6889815edabcdd0bca9d007d7a309f1"; - sha512.doc = "ded2197bb621622c7f9947ce736814a6acb63ce86bd866792a8fe8e1f22a8131ee12c785a81c764ab707e5bf1b2c99df73c1214ff71159e3c9fdd34ee7aef7cb"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; -}; -unicode-bidi = { - revision = 42482; - shortdesc = "Experimental unicode bidi package for XeTeX"; - stripPrefix = 0; - sha512.run = "35e32b9959e698ab0d32ef578376fdeaac54c1acb9abc584e742a7caafbb2cf82364d58d73ad07de4cd273a5c9c60e4468df74fc4c21fb6552ddb5be725e384d"; - sha512.doc = "44b76c810988c541c5dc6cc85a56fb81e8c2aa97afb84192477e57f59423e508e34aaa0542009ceb5ddbf74c95cd662697544af1cdda1d0c114bb3f0507493d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -unicode-data = { - revision = 68311; - shortdesc = "Unicode data and loaders for TeX"; - stripPrefix = 0; - sha512.run = "9e74ad2fd167a913e004aa77c705f0f8b3ab3d8e717384ee150db076660bda4e2651bea97292ef9e747d4e2519d9ffaa113947dd5241f830c3e4d653ee061d71"; - sha512.doc = "a8e147ba4d30bf80e1c1bdfba67bb3a0ff9f765c5d41734aca1708adb58c5c357a17401383faab827477fc837ac1dbbdcb55ee0b3146acc737c094d6984709d4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.17"; -}; -unicode-math = { - revision = 67919; - shortdesc = "Unicode mathematics support for XeTeX and LuaTeX"; - stripPrefix = 0; - deps = [ - "fontspec" - "lm-math" - ]; - sha512.run = "181168b0560a67c98fc9df214f0bd37bd1314b2400622d2aa3eac6659db42aabd24ab724845190cba46fd9d53b7b1440c016a0c6fab49561c3d795fefc41550f"; - sha512.doc = "deffa8e0656c9e543e61228e4cba9a9cb31e137f6517e552f8b6243d14273b580b69e617c0473eb57a884972abfd07cd8cd9b4b836ffa1858aa1bf433375e954"; - sha512.source = "c221366b66e3f83910aca83dd8bd97591cca5e4a22244af77c87c2a8e161294ac7f3e89d2bd7cdbfd8236df93e60ee99c9e8e9fa2c20060938b96d93f1664ebe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8r"; -}; -unicode-math-input = { - revision = 69591; - shortdesc = "Allow entering Unicode symbols in math formulas"; - stripPrefix = 0; - deps = [ - "iftex" - "l3packages" - ]; - sha512.run = "23396fd1b313414ec1f6181646651a4c304a1f937458111bebebbb0234ef5e007e22dd2590d87c2a58514cb5794036da25801901f980eb3a08fb122e9a107cc6"; - sha512.doc = "e41a989367baefc296d7a890eba2a10f31df4e047b174f34d1843f632ae0d151e34e6290d6b1e86cbe949e7808d59b4523ceaca89aa69097b5e8233d901adb31"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -unicodefonttable = { - revision = 70354; - shortdesc = "A Unicode font table generator"; - stripPrefix = 0; - sha512.run = "08b2d90bed46237ebfdf0e98c45696b4dc1ba7f6f3ba2547fab2b129d6dd96e836dc23c345ccb45bdbd370fcc706e7a127a10f43aef9ea08ad75227f0b6b2857"; - sha512.doc = "823d26c705d4b6154ddd1324ac6297f97ef3244b815a7da23b0079c5bd94ece9391407432cf66b7bee7422dd55514c033839b31ee04262cdc1a75e5e11726e42"; - sha512.source = "ea0086f6d9c3838d0fde1baef225c4e9ab57470033749e6bd4a877d6aaf85a28ad4c557b44f7ef2970db1c636c9dfb43ace959c2e41bf20f2daef3418ad08b60"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0h"; -}; -unifith = { - revision = 60698; - shortdesc = "Typeset theses for University of Florence (Italy)"; - stripPrefix = 0; - sha512.run = "98eba02a617fa5d4349c5b17bc971cc0241d6d41fbe82af1fcbca1bf44faf901e5b13e786e62f26413805acb8efc941c3f1481307c69712aff55cf17b100b5d7"; - sha512.doc = "82620cf7a81f8502876edcbce06699a05f0e580760caab77cf56db89a145a3264202c8ab193a5a56df2f07b2b29d7d814b851dec7413fe0285124920f54baae3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -unifront = { - revision = 67054; - shortdesc = "Give notes a unique front page for every chapter and section"; - stripPrefix = 0; - sha512.run = "da1d02f97f5893d6f51b833e9919979e489ebef273922a01d0f5d48ed86ba9c401c11d5641da82f55be782dd215537159bc2c689309d3a4f730b93f2b739e74d"; - sha512.doc = "f66a3062ccf5d1bbe11e88cabcf7bf907487993cd83bcdc9bbed927a9f0c7fe06d9975ae5006441b7b71969c436a0faa0fc8808af35ba0d381d1dbecbfe921ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -unigrazpub = { - revision = 64797; - shortdesc = "LaTeX templates for University of Graz Library Publishing Services"; - stripPrefix = 0; - sha512.run = "e97b38083929bb67c306bb3c306c5293dd5a024ff58eef5d11d5742ae0cc2bbf39c8505c89014b4c0a769d0e923f91db39173da1a4b374f3d1179a017b8d6052"; - sha512.doc = "dd7a27267e4a7e16f9152ff393b15d4255aba7cbeeef7e5bd7211a8059dcf25473e244cdb02340e05324d982b4e973ac76a1812a82f787fa6bb504dc9713451d"; - sha512.source = "157f4f6770f276cb6567647321637a82df9c9562e9bc661723ca56c2a7893daef5de2e75a8d8fc93d1e80b646147f87e4c294d0b0d936d9c5d9784fda27bd652"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -unimath-plain-xetex = { - revision = 66394; - shortdesc = "OpenType math support in (plain) XeTeX"; - stripPrefix = 0; - sha512.run = "cca8482cad022f39faf3b0b0cdf20a7d209acf5041642bac0103a3dbd1dc832a61a17c442845752317515764ab3beefd6dfcabda8c3d03cdcb8471fdd3bff4fd"; - sha512.doc = "a9138d1b80d8d5db0f00682f213518df3a40e19b3e6f36a01e62ab020efbb9c468da282393cc43a515a39dd9ffb399801607e3ac59800dd7fef73f3007b137f5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2b"; -}; -uninormalize = { - revision = 57257; - shortdesc = "Unicode normalization support"; - stripPrefix = 0; - sha512.run = "b9b0e91a61d99005be4f37d2e5aababf70729c60d959cc57295a7197b5e360ed183bb9cd80bbb287508bf584db48f061bcbb25c6a5bfd0936923b106d9962f60"; - sha512.doc = "804c2e70ff09a677c30f531db5605512453506ab83dce8f9dab4bfbb5602f8605376becc8f65cf375b28c9d6d35ad9f3a92d6f185697e2e9f9d367638d58fb56"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -uniquecounter = { - revision = 53162; - shortdesc = "Provides unlimited unique counter"; - stripPrefix = 0; - sha512.run = "9769fcfd787f210e0653c971872aaad6e0ef1e5a066e392e9d599f8fc11ab9f6587d21db1100b643d09d4850cfbfbbc1d32f01fd1e86aedab8c92da4f5a7d614"; - sha512.doc = "4dc74aabd9288ae881c4513886ff917e1e8bf08446d3b34c946bded6a6fa71ea7b6786bf432fec2661cd1db1af6b5875ab329708cc3c443499b83b0325645d0f"; - sha512.source = "caac3c3445b2b9301d46ca94744eb600cc45b79f6946065f036f412d2d1b41716864d61e0cfb9e9d32ab8dbf870e5f4e302c96b388d680badb13c52821f7722e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -unisc = { - revision = 63178; - shortdesc = "Unicode small caps with Lua/XeLaTeX"; - stripPrefix = 0; - sha512.run = "41f9763e8d090ccf8669af560e53d0abdb4d3f81aaa8c88a97d3b72b8698e95b9ec3c81ebd7d863027f832a945fc11d7e225bb56711cd49b90d430107e9a1938"; - sha512.doc = "26e6907ee5f0d7e7093946cbb524e8dac63ed5c71f761875877a352f8f1454487a91ac46c6be16378c46540175d23d3d50a72eb32b3f3f96599fff9b00db1e48"; - sha512.source = "076c5e0cfa27c31226fd1d729ae8de7d0d009f6e4f3d4d1b9e1339e29ac2db19377d34d2c16b4d821bfca999b3c59826f3b263c6bbadf022aa24447a0ffcb85b"; - hasRunfiles = true; - license = [ "gpl3Plus" "fdl13Only" ]; - version = "0.2"; -}; -unisugar = { - revision = 22357; - shortdesc = "Define syntactic sugar for Unicode LaTeX"; - stripPrefix = 0; - sha512.run = "01dbe995d32b49121e28163c11f89e51d4c692ab864b3dbe6305a0e4364c025b13751c137df52d24160acc9a8080fbee56fc7a5af522405c3d0564486c151260"; - sha512.doc = "8e6fdec36271f3561c768acf095b6fc353da07864829322dd0b52b1784d74793828951e006f8c56a9c38849b28ce186682d906bd7bc906739b22782db2102021"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.92"; -}; -unitconv = { - revision = 55060; - shortdesc = "Convert a length into one with another unit"; - stripPrefix = 0; - sha512.run = "2d1b66ee4ea2cc4bbdf18c5fb88a3f6c2ec438361d3e1cb058f9c3cde3272e40d471b48ec24749ab8fb714eca4b2f6e311c7af951744edcd04154c0f016ca1e6"; - sha512.doc = "f01593365b13c8447c6a0ca34027956c9eba7daf4921e5fc5815fead966916b70ba5d6429ab068b3f0bbe98dcec903a59fcd6982d41769b6ad5dc0db86d7b60c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.01"; -}; -unitn-bimrep = { - revision = 45581; - shortdesc = "A bimonthly report class for the PhD School of Materials, Mechatronics and System Engineering"; - stripPrefix = 0; - sha512.run = "595883fa58169e9cd7a860933f19847895ca02d3a684b71536dfcdff54c5fe6410e6cf6fab8ae9574cb9a9180ce24f3ddf41f817ceeab85d0c65684cdc9b3909"; - sha512.doc = "3049a0bfcbae6666f309979e2c2b8d52647d3c445992201afbbfa28684b83adb2a1ad5f227360c49826ba2de2cfebbc87195801c38413f5eb26bcd793b77ca61"; - hasRunfiles = true; - license = [ "mit" ]; -}; -units = { - revision = 42428; - shortdesc = "Typeset units"; - stripPrefix = 0; - sha512.run = "a1c3266bd95d8668d67e7dc451258f7a3a0362e4435ab70a574be5f7ac44bb5fbb7b30ded852602c73f227f57e8f7bf61af148070b9eae6103a982f726869a2f"; - sha512.doc = "e8a1d929e9817539a5fef6cd89c8d4daf60cc0495fc7698e4708eefbf60fd36daf88ee5cb668e9f1d53978d53253bb52ef6b3e6d1a313708022e5218c99e89d2"; - sha512.source = "a6aff8a5917b48ce17a62de74bf327e0bc2b4a8cfc8a77fde67cfa710d8715b0d8dda54837b3f895cd769649444691df5fafd9e486bb37f4e9af110584f676da"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.9b"; -}; -unitsdef = { - revision = 15878; - shortdesc = "Typesetting units in LaTeX"; - stripPrefix = 0; - sha512.run = "048b2d4f3b160a359a8db5a66b9bc3bf68545384c39c7c4964521aa2067a35e4524734e082d5bedeaf3ff52b6a5043717ca6f510cce0d041b0968968ffd232b5"; - sha512.doc = "c1e6de470c8b290c66f71020794fa5a855a0c9b22d90f629c8ec0f6ab110ff780c0f39291f0309348711cc2acb60cf52f38538da8894803cfee54f9fd6fdc9c6"; - sha512.source = "9ab403624c578eb8f33801309e8c7ab0bb0b53f5bd0de0ad912a5ed6955a5d3ea0d44bb43b61fbfe5cc60a667cd908f85061c92fd397931a2a4780d0af58646b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -universa = { - revision = 51984; - shortdesc = "Herbert Bayer's 'universal' font"; - stripPrefix = 0; - sha512.run = "f21f9bbc0c4e730cd1b115a5dbab22df9519d4a364045e292eae6b73741dabe0117c53759b7db7696c88241800970801335f7537e19d448fda6f72569c4eba50"; - sha512.doc = "3d5ae6da093d5671b369f7db4920baab6fea25e58e11926e2fffaedf1b0699885005f3d0158eb2a6afea9ac4f08ec63c577e99da7cbb75e33727f9a97c8157cd"; - sha512.source = "2040de94a8a45c28a6c8c50d16a5d72297c1c8680f778a3fcf341cc35622c46219945f89d6b5ddffdcbc32be29b93505624fa450ae202f3ec53d61befb0d248d"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.1"; -}; -universalis = { - revision = 64505; - shortdesc = "Universalis font, with support"; - stripPrefix = 0; - fontMaps = [ - "Map universalis.map" - ]; - sha512.run = "4fee20d63395348a021573af4e4e8897f267d69cc59dd7dd8e9fd6ec06041fbb00608dd3adc103b1886638e9783fdb010fbccdebd3ee7cf91a4b57dfd85b67b9"; - sha512.doc = "79c500724365b3fec6f25dc49dd019ca23d0d3bfc9889f75f10a090250eb1614549c8f3ef215102fe5d5ea8c317bd1f1b60557133be0afe376cfd74d73d67fea"; - hasRunfiles = true; - license = [ "gpl2Plus" "lppl13c" ]; -}; -univie-ling = { - revision = 66728; - shortdesc = "Papers, theses and research proposals in (Applied) Linguistics at Vienna University"; - stripPrefix = 0; - sha512.run = "5ba91b2cdb6001a42426b77284aa68b82575997ffe1c5c62afedffd6a74710dc0e4af25df1cb4025a8ffc619376333b318a8be828490d45c7b55126e4c7848eb"; - sha512.doc = "bd576c575776ae2467f146f2cb344c97db797babce5c06a7785449010187a6ce8217b082ae84e0d045b543a4f3ba204f207d8c4ee61b7115f2b484ed4f237e6e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -unizgklasa = { - revision = 51647; - shortdesc = "A LaTeX class for theses at the Faculty Of Graphic Arts in Zagreb"; - stripPrefix = 0; - sha512.run = "ac96ff7105cc0a6eefa7a797b325c6e3cd7a0e59d31a6ead1f715d37d326450fbb3d39d6bc5228df5861c5633ab8be027f7652426c10e0ab23a2c9ab68bcfd98"; - sha512.doc = "00e373b284ea78d596519d982efe8d4c8f59f8abbec67c314bf361b1744d35fe2846615b8cb7d38e1516503c6ed49f9ea38718c31a760f3d19ed4a7686e8bebf"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -unravel = { - revision = 69308; - shortdesc = "Watching TeX digest tokens"; - stripPrefix = 0; - sha512.run = "36afdd36eac84c2421e745b4f21dd1f00e357769df37482fbdd697b7dc27904234e89dfe7c3c61313307522c7c06264290c4e805651024390af7700379f71ae4"; - sha512.doc = "05f27d954122d3225e43412518e3c76be1c9ff4a93f9d27c06dd57bb2f42974608960f931ebf1e8f82dfc717c51f82bcff4b34a480aaa5d0fa90504d6c7a4130"; - sha512.source = "25047c5229041ed87e062c277603be51687b1b29296a83c87f514a6630bc89f42979059251de8f8c1cd1b01c95f0dda23926097fafa1e6863a98c46e0edce874"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3c"; -}; -unswcover = { - revision = 66115; - shortdesc = "Typeset a dissertation cover page following UNSW guidelines"; - stripPrefix = 0; - sha512.run = "4080e5cb6621c3f265245540b22ae026e9c29c37739f7ae955a90ec107199bd2b52b9e2301330a630f535c05004ef762cf058b70ea5d44f65844790156379322"; - sha512.doc = "e3b10ddf23708fa8ea68a8d5d11152812a1832f4c8d87e03a697b81f69b94167d1ac8c70824d7434fdd022f4dc10bd823fa3c177a4f0a282cd60ec166ced6420"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -uol-physics-report = { - revision = 65761; - shortdesc = "A LaTeX document class for writing lab reports"; - stripPrefix = 0; - sha512.run = "ed6b2af5ee9c0ff53cd282b0a7c8cd26e07a5823f00abaa03471707f116f14e04c874548ccfabd2858ebb0c4bf56fe55d19f09dcf865521277cfa04491d3ea8c"; - sha512.doc = "117ed58415a3502e75d10d2f6d6a34d43180294ad9b3a33d12e971ac20e4092a4a50f815390c7f158e79b7f5cc246616cd84a07eb76a04be1286a54a78378883"; - sha512.source = "eca0d3706ae7428a72da99a7ffb123f471ba731f26d3260a5aa7f55b843d25c3ab837ded478263b78fb3530f7f64077488b52160806b248968f46981496e5ab3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -uothesis = { - revision = 25355; - shortdesc = "Class for dissertations and theses at the University of Oregon"; - stripPrefix = 0; - sha512.run = "8549715b39426264ae94d5618f13837bf20e48a350cfccc5642ff5e246ad84e04050e2def0780e8f3da69647d86b6795a009215da1277f43ab9a8a3b5acb798a"; - sha512.doc = "16af5c258ae738401885a1451675ace657e169deb37670336ab87ac39d30128c98bff91b5f9f6f2de9961d981b2719f94472692c5456913bada6e7ec6bbb60c6"; - sha512.source = "3b6a5f3ccc28877e4e48000ec88c480b70f5f454c481f970e6ba409fe71e19cee64293cdbc9fe46c8d0a498401fb2f46f2bd6c1662c3bf19a2c24e1c10c3895a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5.6"; -}; -uowthesis = { - revision = 19700; - shortdesc = "Document class for dissertations at the University of Wollongong"; - stripPrefix = 0; - sha512.run = "060684c777f377fcc98b371123cfcd9717a113deb0f7fbd99cdf6cec65e66b77fc44d50a3475c8b1e8071eec80c2e6b1c20437a4432d6d5fba208fe3f06fe127"; - sha512.doc = "00386265fd93cc89146fba04eff87b55fc250e3429ca5d769f006ee1e8c581fdd96702830a90ca4eeedd35e0d90305b5ce19dea6f16ef5600479d1fc1ab2e35b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -uowthesistitlepage = { - revision = 54512; - shortdesc = "Title page for dissertations at the University of Wollongong"; - stripPrefix = 0; - sha512.run = "3eca5009deb6ccf7daf6d31ffb5e6d3c08ff26395e03b80617411c4dc4049bb2ebd68628f285b95b547bc512fd1cc83246afd5513dc54cb1900edb813f77ede4"; - sha512.doc = "e5e2ec32edb38ea3960922c5f38c9dd9705914f49421b89cc1cb8e6f1d8213512c804c084f1883d1682d5c65b9c54511ec47cf700ca731c4bc352b0bc4e85ffb"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-sa-40" ]; - version = "3.0.1"; -}; -upca = { - revision = 22511; - shortdesc = "Print UPC-A barcodes"; - stripPrefix = 0; - sha512.run = "3423a3a7d42273bfb28642d250d5000fd55d5cfe2dfb5ba0c2f875ced6c6df344866a5512a624dedb12d6bb9357f02a831297f4aba463dbd5e69e5e8dd9941dd"; - sha512.doc = "f19dd751bffb9ee92ee80f74f692ac410781e87817ee841c01f37bac87fc770b9fc97d488ffbe97490206899653d329034d82cf649de0ee52cfa4643f956d7de"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -updatemarks = { - revision = 69989; - shortdesc = "Extract and update marks from boxes"; - stripPrefix = 0; - sha512.run = "7d2f78253c7afcb0ae7e98ca467e6d00dafb92bbe232e99cd11f2756c3277d4bca1688e2d88cbd214580c99fac539c9d01af50115647d5609f239be906c3ddce"; - sha512.doc = "03595b62f116276240b44ef558fcc164e49c8d831dd068280b5f8be70caecb9f165ae3340c2824803ac829f38ea3eb143955a59c3ef71ddde873a2a873185ad5"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2e"; -}; -uplatex = { - revision = 66186; - shortdesc = "pLaTeX2e and miscellaneous macros for upTeX"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "everyshi" - "firstaid" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-base-dev" - "latex-firstaid-dev" - "latex-fonts" + pfdicons = { + revision = 60089; + shortdesc = "Draw process flow diagrams in chemical engineering"; + stripPrefix = 0; + sha512.run = "cd09de584483a1493648e9f842b743c43d7712b35f9d315ab34871a964b6ea7e8bcb0ff4b8d4399f5ce7d5ebadf41c94e8b88772b15155d4c21e17e4c62ecd2d"; + sha512.doc = "cb9f0ae2a1b7a3c8cbb12f859c9cd9d33e447652ceacec2642e45c7db7a96ec6cfb9bf63ac8f711c1661557308ebc3c6c04604412d09cf16d232e23c805e395c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + pgf = { + revision = 65553; + shortdesc = "Create PostScript and PDF graphics in TeX"; + stripPrefix = 0; + deps = [ + "atveryend" + "fp" + "graphics" + "ms" + "pdftexcmds" + "xcolor" + ]; + sha512.run = "d7fbf0dc83f88a2f6d2de3117365d3f4ac2379ecbc530e343bc3e02ac8083e9a9843d479d375d086e39b6377b21d2fcba22883485e040fab1601642ba80128b9"; + sha512.doc = "e3be45f63b46124218592ffb8083998b9d25e81dbba7ec8ee58d578335247b05ecc46c145f5de8b859c72dd54cafac58ee784f9aa33888fc129817c66a819568"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + "fdl13Only" + ]; + version = "3.1.10"; + }; + pgf-blur = { + revision = 54512; + shortdesc = "PGF/TikZ package for \"blurred\" shadows"; + stripPrefix = 0; + sha512.run = "95093365a79d7f8a2df134decbac172a080711bcf8e8f77267ea4520ccc9aa398f5fbedaaa5500fa189b3873d8897350dc2c99f142b6bed1a6e7705293a3b8b7"; + sha512.doc = "d313e5ed1a0b5637996d6bd1827b909a771fcb44490312c502acd89412966d7662b1482fb8f3347b8d658b336051773c3d10e70df9c1f22e810802936eee816f"; + sha512.source = "c8b7baeb30d520d05d53d6c37f70e028d8622d59eadb7b8aef9c26147e5ae4704fbf45798315597f6ecb65a15e4c8e8e18dcc0cac98b0cb69efb191645632710"; + hasRunfiles = true; + license = [ + "lppl13c" + "publicDomain" + ]; + version = "1.02"; + }; + pgf-interference = { + revision = 61562; + shortdesc = "Drawing interference patterns with PGF/TikZ"; + stripPrefix = 0; + sha512.run = "569dc2b0f5b11d93aa447d54649df07c3df375dcdaab509229d0304bb25523bc45062916089b15776b727a9c05205688a161bc79cfb4abbc466a243b2c8c57a4"; + sha512.doc = "106f86c28759b0c105a6f57df9c8df416190f781b73f1bbb7398fde6e88192fca5aa3e198e7235dfc23c2fc3bb41a5cd0cfa060f9dbac4faab30bf04c484e9f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + pgf-periodictable = { + revision = 69924; + shortdesc = "Create custom periodic tables of elements"; + stripPrefix = 0; + sha512.run = "c640e847afc370fb47c39d44712c7fdce6078d39b4cbca9630708fa4374b8a9793100763a5a2734fc3a925d1b0dbfab28aab868f49750dfdabd4df69f0553af9"; + sha512.doc = "a148aa9df7e95c48f6eeb5a85323f68539ffbaa7deed7b3188b75c5827814d2b26e20c61995334e77a868831d5bb9b7881e8cb993967293f79bb327c387298af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.0"; + }; + pgf-pie = { + revision = 63603; + shortdesc = "Draw pie charts, using PGF"; + stripPrefix = 0; + deps = [ + "carlisle" + "latex" + "pgf" + ]; + sha512.run = "3e5cdb5def0918ab1c3d38d35bb85f07711144d1fcaf0f3af8b2c5e0eacd9af6c3b92bc6e1f45438e40d7f5838770b91ab513970cdd9a3f7dad2918eefb875f6"; + sha512.doc = "ac151cb61ea4fc440ffeeea9b987f6dd648b53596934900f41437f787bedcabe2ca8dd53c37828aab816e9334d0d26573f81000333e50d0761d70c586a5d87e3"; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + version = "0.7"; + }; + pgf-soroban = { + revision = 32269; + shortdesc = "Create images of the soroban using TikZ/PGF"; + stripPrefix = 0; + sha512.run = "e0f85a77e9d81bf01f5516c3b3baa52a9b7f1b0faaa6f0aab1cae2182732eaf04ea2edb6b0f9091272849f1d7ccb3797cb2641090b926db7f3d0483d08569845"; + sha512.doc = "3f4c021cfb99a27778c250f9ac13e2abe48127731b54d0fca9e8e588f44ebf797e034a56d3ca19bc847bca173dfb03ef9a70e0fee71649188a8427d6eabceb80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + pgf-spectra = { + revision = 66961; + shortdesc = "Draw continuous or discrete spectra using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "723fcfd1b6827cf224fbbba91bbe4b65e8ea6b09cfc5eae2645144d2f64bdc0004f4f6184f2a310f7208650870041f12c4eb73e4d34c88fee5513d041ba88586"; + sha512.doc = "81e418c2539e9df982025478d552b947dc040a5fb3ac8250636e874e77c97c83d215df6b2e9208f660b8a928eb1dd0e059fae357aef1b71b6e959a37affac2d6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.1"; + }; + pgf-umlcd = { + revision = 63386; + shortdesc = "Some LaTeX macros for UML Class Diagrams"; + stripPrefix = 0; + deps = [ + "latex" + "pgf" + ]; + sha512.run = "a55281a157a2a347f1c9d82679cd663f4493e03123d14dbef0d71582613772252b693a25b3d3e5b72b948c4fd12d0d7b0354d2e38083583b550d7cfb5e634d93"; + sha512.doc = "6d798d93590d859d69bda9f0bd391049db91e2d4fb6f0b019a6f76eeaae9e73c9f249ec356cf5a5d4505af6948d4c70c2ad4685c1c41a7ba40ec62d3d8a9dd00"; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + version = "0.3"; + }; + pgf-umlsd = { + revision = 55342; + shortdesc = "Draw UML Sequence Diagrams"; + stripPrefix = 0; + deps = [ + "latex" + "pgf" + ]; + sha512.run = "6b015603e3daa362e473d795d32fa785ce247b58ec9f88872fe4bdb4fa660000bd87da2369de556f998485a6fcb6dd49aaca549b0470b41adacba5a278453197"; + sha512.doc = "968d23fcc4f114bab204ec53281975a6fee5f81635ece256351198075cd8463a706954f463beacc162180459fdb3652657f2c060a71c588681f8de6e788a4e6a"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.7"; + }; + pgfgantt = { + revision = 52662; + shortdesc = "Draw Gantt charts with TikZ"; + stripPrefix = 0; + deps = [ "pgf" ]; + sha512.run = "0269703fc00f10981d5ce8958159a24814b9f410c1b00516608c039b1ea8a3381392bf1d89e98f3011d42210047bf2e1fec2f103467087f9172e143d9ab6fcf1"; + sha512.doc = "4890ae174c92db8df7befcef30d03724ae52fa4b26ac796d247a703794ce745ee892f0d2ab8a4f62e96a5e5f792791a6f7e8b9e71f1c0f11b68e8cbcf5165472"; + sha512.source = "668987bd37aebd38697c02bc39d85371c7d40613aba13c0f3b62ece8145608057cf3f76cda03de6df25f7ba820359ff2ba1c340aa1b9ebff94bbd42aed39e401"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.0"; + }; + pgfkeysearch = { + revision = 69385; + shortdesc = "This package offers a way to find keys in a given path 'recursively', unlike pgfkeysvalueof"; + stripPrefix = 0; + sha512.run = "c90dd895a9c4d3ba737f6dca0a618af781ef712f7254f80c4f6bf222db80c8e7f010e9e2b2a0fd4a125154586d1b1532881f1e29dacc677c416dc8b5857acd51"; + sha512.doc = "8ba4bc32f3a0393ec32e387110a725d10ec67793867ff7efbe8bc6047a6fe7c2e19970f091f96e2cc4d756809301864c48ce550f46240e22aaed885d7ebb57d1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pgfkeyx = { + revision = 26093; + shortdesc = "Extended and more robust version of pgfkeys"; + stripPrefix = 0; + sha512.run = "c2adb44ef34930aef1d78aed2025a2dc17c69ed641b59af29bcb93c9c9532785090f30834d52c415116ab4a9477d83e5a46d1509e6bd41f47fd4e37cc8ff2933"; + sha512.doc = "2a596ee81d2af4992dc23d6f28f788ef1d3e9a528992f01b7113de726898ae3007b685c4c447d2fcad640403d1bdd8a0eb07299ac9ea81f41c4158eb21b8e9e2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.1"; + }; + pgfmath-xfp = { + revision = 59268; + shortdesc = "Define pgfmath functions using xfp"; + stripPrefix = 0; + sha512.run = "c82fdb2b540dc37393610199581416b4256d9cf382da4238625b9ae29f6d7ea6150925c6837ae1f4b55fa10239f8563fb8abd042d5533080de7283246ee69ed5"; + sha512.doc = "f48114bf89d4d5aeca399c44bf6a6fb26567d7692de319e7d457d3b753df8e302871e9901d98bf8697680125fb8fad56ac8675dd339bc420b439aaa4cc93dbb0"; + sha512.source = "18571bdab8756f25c357ceab0cd82f242007c22ae0b6b5cec17ece221137607a6d245ece8dd90c427d0eceda63749f0d75e77c2974e9dfa8509a1bd34768b5c7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pgfmolbio = { + revision = 35152; + shortdesc = "Draw graphs typically found in molecular biology texts"; + stripPrefix = 0; + sha512.run = "bdbd89379ed7310b78a3847c43022f6cd65f5fccfabfc4723551f5ef4f4cad3e3dcf596ff65cb4c5ba4a354f9bd59fa4aa39147782a0ed369a7dfcb68ef7f9cc"; + sha512.doc = "a9dbe657b4037477adcf3ead4ad4ca5b703ee8c53739da9de0bed8e02c8e14961a963e9a4a5a86b3f53348da9eab5cdbada1b5ddd073bc18c82177abc92023f2"; + sha512.source = "1552182819893f7538ee5b38816d339639ff6e6ed3e092a67dde1dfa2a73eb7bca1490909fa34d4999399a8328b2ec8885ad86e76438e4f177dd81e2e6accdd0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.21"; + }; + pgfmorepages = { + revision = 54770; + shortdesc = "Assemble multiple logical pages onto a physical page"; + stripPrefix = 0; + sha512.run = "9a4fd2f42276cb72cd39dfe3cb5b6c43855e1d7f01f47c53b23c8aae7bee98c89e8a8f784a917c0c4ebc35f9dcaec18b8d4f6bbeb05ec5a80647ff7ca23c02ab"; + sha512.doc = "3bef05b263791c9b1e92868ae22966f5638a900d44ed9ab9de5beeb0dd25c7e8745d09da4cd3c2c7a9e9e5c710126cb7bbcb67579e770c43e6c7e057dcfdd1b5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.20"; + }; + pgfopts = { + revision = 56615; + shortdesc = "LaTeX package options with pgfkeys"; + stripPrefix = 0; + deps = [ "pgf" ]; + sha512.run = "7d672d626428c37fa749a810c57be43c6102e1325a6d3e16c57bc560b6d65a57bae94e619a73f3e0efb46ce7b4783d05a6e98c64b1e90c6e0f94f1dd9acd676f"; + sha512.doc = "ff82e0502fdeefe6afe90aad4e7615de9be4ef8e2e6a69e7a537202af77aed00c0895269ceed3d38e0f34345efbdd771d22b0c8759fcb46ff8e91ce639dcd21d"; + sha512.source = "758da1f3daa0ef888b484ea657fdd4384102868e4eee543bc97e73f103b67c367277f5c00efd06a2080f9ac3fb82c909cd30f641363120e70357450179dab6c5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1a"; + }; + pgfornament = { + revision = 55326; + shortdesc = "Drawing of Vectorian ornaments with PGF/TikZ"; + stripPrefix = 0; + sha512.run = "3d5742197af0b6bc11a14ce5b2198aa7a580655f29757f825c24b4081dbd318d45d4dfca065fc04f0d5f47d92fca166a185c878c8d7a506e4ae7547def41592b"; + sha512.doc = "b35295915c86e4ee5c2fb9b1ec2d545c8d4fc1cf5e65f3e6247e4de1e77e2f789f7842cf234546d6e658a73b4837cd50f8216cd9425f588cfe4a12c76bd134d1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pgfornament-han = { + revision = 68704; + shortdesc = "pgfornament library for Chinese traditional motifs and patterns"; + stripPrefix = 0; + sha512.run = "7337b577e10f2a6306badaa45ca57614ac0da6b3c12ca5c9c3978f1358fa88a352cd092452ef3b6e86d01ccd05f1cfae663f914956b74d184c08a21d2e484e01"; + sha512.doc = "7b9138088db1581571508ccb550b1b128ce0b574dcb2a903f5311b9a6e63e9d9c6e56eca0e46ffb5224f5685c5b047a57e5e7d292e7d6de6a9bfb06ee568d9b6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pgfplots = { + revision = 61719; + shortdesc = "Create normal/logarithmic plots in two and three dimensions"; + stripPrefix = 0; + deps = [ "pgf" ]; + sha512.run = "8244e65860f37d74d05535a627ef6cd321407a69a142d156bae190c562a9402a0d7e927df732c32cc5f556dede1b51f7aeca5d7d3a26167348a21f2e3d8be5ac"; + sha512.doc = "720a77c574c81e7c3619e3b988c8a359bd6cf284ad3fa7c795eb01c371ede85ad727dde8e5f19d8f683947b5dc5752324581e364c59e8a644b5ae34d6b75a96f"; + sha512.source = "d840015854794de1a311f1d8a9935a93c71a098c46fb1c5cec8a57228a924685f75ea76fc9cf2a9f9f30ed39920bbf2092fbdef2645ddaa5ad5a3787839c1d2a"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.18.1"; + }; + phaistos = { + revision = 18651; + shortdesc = "Disk of Phaistos font"; + stripPrefix = 0; + fontMaps = [ "Map phaistos.map" ]; + sha512.run = "d5cb8a051e1e80629385bff368896c47bdfccfcf38a24a723ddc5f9056a59c57703986799253812c9a4651f4e16dc55cee0876ddd0552900f978dab0381c9aac"; + sha512.doc = "96eb22628467289f72aaa0d4983e494c75b3a2315d8b9d2921f8ab29d93fffae4f459ef852529dfa4ff48a65e25d652662c54d84db54e0118b1c021bbe39eafa"; + sha512.source = "5ba2b04fe4e3aef136de2dc40568ecb81f437561ee8e6c320927bb816819889666f57ad07c3b8bf6eb7f6eb84b69147f9233449a26529b61712d158abf889f91"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phfcc = { + revision = 60731; + shortdesc = "Convenient inline commenting in collaborative documents"; + stripPrefix = 0; + sha512.run = "1d1f6387db333cee296545663bc4e2026fecd0f381cf4e45b42c8b297a4ae9bccfaa8e9791f92cf59bccc428b3f63b944d9173660c3606f1f49ef1878caf2181"; + sha512.doc = "ac10825535fbf1e5173d5d209c26d665a128473c3100e349a63ccd921534c9645ce3c7b7391aac56de70f23657db8e1496f6afc0b2d112a45f3ae84d87220498"; + sha512.source = "31c59c51bb48a722e4962986bef69619ca1ffd80bc25ee1308cef80e78246811ee169ca6a0c9ea5e257626e55fb04bfe40bb1ec53d09c81b2fe636e6ce215a37"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + phfextendedabstract = { + revision = 60732; + shortdesc = "Typeset extended abstracts for conferences, such as often encountered in quantum information theory"; + stripPrefix = 0; + sha512.run = "0e1f0f232c7216d654a41ab750477a5a6efd1a2dcb15b2114eefe1ffcb582bd0512bc8592111904c550badef12a3927c5ee2af58548dab5015901165b35a8bd1"; + sha512.doc = "aad67fc68996c032bca758b44eb65288f2245f780e9e4200888fb027b4638963e2f3b9c771a5ec78f8c65fd0c86c8b55b16d8cdad44fdcf9cc6622a766175e00"; + sha512.source = "a5d3ae9a1bc6b8859e998bb3561a63e99d9a4f30da3e3c2dd918ba7f23a09362bd8f123e2bfbe2af4ff7f2204c969ad487ddf389fa04287eacf0abe9f251391e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phffullpagefigure = { + revision = 41857; + shortdesc = "Figures which fill up a whole page"; + stripPrefix = 0; + sha512.run = "4d443d5ce4dfd4805eaea4ecfe11bc94b9e92bc4d68f8fdd001a72ef09f519f11e20517d01722f5c7f79eeb9b92d0a6099d620e5c54dc0845b7ed5cc762c260d"; + sha512.doc = "837b57707c0d37d20b02ed83ca32768c4b2718958ba3124650604f4de0bb11528c2d5fed95f942545db400eca0517ef59fb168408ea9960f0a894a777e9f2681"; + sha512.source = "f0abc0f77efc7460907cd18282ccdf2ad15687b3d891a72e8fe756c16d1d715cd6f7eaabe09898c2bd88ebe54d16b86115c06b4d56fe1f2f4b8e3e952292a107"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phfnote = { + revision = 60733; + shortdesc = "Basic formatting for short documents"; + stripPrefix = 0; + sha512.run = "ddaea70a5bb3aecdf634b44dcf5f006db479a4d47e44e96f92bd390c2c0e166b741ea31a0f22ac39770ff0c92590a261c18fe5096bf97997743684a95a82da2b"; + sha512.doc = "2dc4e7d3615d8f185bf1bcfeb5a90d51f362538691444355ad6820f8bdcfcd68f1dcc69486c0b630d1141db1b4bc10bd17abcfb93cf37b778266090f29ec946d"; + sha512.source = "15c0614cf6bf41c94513475d0b65f7053970505fcaa3126550d283b8597c49e30b86e716d3b643fceeee2bae37f81a65d8f65859847bee6f0aa4e508102f6617"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + phfparen = { + revision = 41859; + shortdesc = "Parenthetic math expressions made simpler and less redundant"; + stripPrefix = 0; + sha512.run = "c184623f226f9bc9926eef0b5e23443bec20e66c6641196bc90daf27a648d9f0db70ad176488fe061d44746b6cf46a3217eeb42f6a95f2e37c20d641ba2838c6"; + sha512.doc = "5c34575950ee1a9616408f293319eb0634795e07173677cae112466a298dbfa5cc18fbead8e92e459718df91326d27cc7baf0414a1f1e8613a5c115c070b5016"; + sha512.source = "ca94f1756265e0f92e8808b7dac74eb57f62eedcdefbaf6e4059c8a7ffa51819da979a70203b11250d329ec9000b454067c101b25753673add4b35c40fe1e882"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phfqit = { + revision = 60734; + shortdesc = "Macros for typesetting Quantum Information Theory"; + stripPrefix = 0; + sha512.run = "604093594d05e5f331d27bf5b0d6c40b631934a2872841f2534f69279542a6bd26ad758712b9b24c5490c4e9396ac147f46a9d0790cd29f56c0d2b13d876bd56"; + sha512.doc = "738e5f61c0318f331ea2a7f1e0d5d019969636917fcc18ca19a72ed42b1207f4025c58ea886c4758b64c61cb33faf8ae5b4d5f2f7a55a9ce9758b9fec00508ac"; + sha512.source = "0d0ce4d75bb6d73e24a47c8d66ac0b72a0cfe273a6daa4af1fd3a89f853c3c5c1f856d749321fc9ef79b0e0a9c27465045a48202536b73270971deb2d4cc7a30"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1"; + }; + phfquotetext = { + revision = 41869; + shortdesc = "Quote verbatim text without white space formatting"; + stripPrefix = 0; + sha512.run = "809820fd3108cb5b33c5f3129fb3ae8251476161aca5936b966219a49a29204107375a33e6bfc452d2aef8b0cefb30f8ab0e53984f39d5c3228ded25ca19c37e"; + sha512.doc = "501d652782670318fdb45368e01dbf76de7cb46f0f1584bc7dbf1242a71a42e7bc870c5cbf7dcb33d41463c550a0803226860a0aa64e75952f717436e8f6501a"; + sha512.source = "fa812150acf519ca0995afeb9b3dde9c1929b945bb964612319f7065c6c303641e2a245397e7271eb777af9f6cfd310ca1ec7f9974c0bf9c329a0f006df2b9dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phfsvnwatermark = { + revision = 41870; + shortdesc = "Watermarks with version control information from SVN"; + stripPrefix = 0; + sha512.run = "38dae3ef3fe183bf5149b91050afd5bc9c934d01332b021ce87e9ea412008bc22d42d25a389e82b02ccc4cc4820a10d821c228c02c4f08fdca89ebde69c6e2d0"; + sha512.doc = "7f35bcb41618c7e14e7e9f8fb289231a8032f7f1cd2e6333982a346c5f8dd24e5733f70c03ddd183d170361b2b3af4115f6fa9b788c4dd2a020020ba525aff18"; + sha512.source = "6c5e113bb45ce6b11768c711bb59743b75bf4b95e9d84c045b59f502f181e80a67be56b3b5153364c29ca5c36f6adb73dac4a5d3051a8dc3ea275a43277732ec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + phfthm = { + revision = 60735; + shortdesc = "Goodies for theorems and proofs"; + stripPrefix = 0; + sha512.run = "2a608898b9038cc46e4720423a42f403abcd105700e20e90274ca6e01ed3c4428a443466d0e32b0cf0da9735c0b7ea74b82e90a3d0b72583d38fa5a14094f806"; + sha512.doc = "bb0c2da2d17b0c3c3550569428fbdb5532d1fe79b325289d71f35659d749fb952bacfa6140210ebbbdc661dc445ae8add1be6cc79b77bf6346fadc70553bf189"; + sha512.source = "7c234459aaa013a9d2d0c719791d99ad6db252e152a53f7111e6d9e04fed3c718efb4fedc85fd064825d40ef80fec2643d6310e582bf830486b8e43efa27c966"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + philex = { + revision = 36396; + shortdesc = "Cross references for named and numbered environments"; + stripPrefix = 0; + sha512.run = "0b6ce5d281836926d6807dda7a8a4eace43a25160b8bdfaaded7ef9838f933db7a7bd4859019555002b662ca01800e64c4f6228427b4f40c9a79e71759aca6e0"; + sha512.doc = "ec8eafe3e1b5e7cdeeb2554c3e34036c808f33b4f4bd2e5fb8b2e10e4366f51db02b2bf3dd52e46c92d600cc092f30c4db6cb6f69cc66cafde5c11a53a883839"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + philokalia = { + revision = 45356; + shortdesc = "A font to typeset the Philokalia Books"; + stripPrefix = 0; + sha512.run = "6a7b76995074ec233d4922de96f727ed031b21abbaf1a423bded6bcd964e8e503d7d3d84d8d4eb1ca42ebd99e1af50a244238f668db245ff4810176abefb0976"; + sha512.doc = "8cefb15592711d19d3fbe5fbbe6efb219ce081dac6d8bfb12ebc57ac807a30aefbaa37f371e70b7141876333ef408ae5fde177add749faf2302b2d7f60a1bf00"; + sha512.source = "975d97494ed2fceefd6d7fae5cd7916689087d5f51136398b19d233e88335c373bbd572aeca930e3be212ae30b7d8b34e0070650aac5a9c391793fd6a5c1e394"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + philosophersimprint = { + revision = 56954; + shortdesc = "Typesetting articles for \"Philosophers' Imprint\""; + stripPrefix = 0; + sha512.run = "8b4a1b9bebf971b0963fd20c01807d5d541a978b88a1b07bdb950c1e39fcb20b8750cc0c78bb97d663c00bac2a714fa95f0a088a1c84f371261d236c941cec4a"; + sha512.doc = "9c6d1f01b2e815c4c33c4e95be40d1a7819568bbf22edacc202c3346ac4f7373ce4b6e8316ed194a32551f07296628d1d8f971ea856ddc33c1d964efd6388d4f"; + sha512.source = "12c557b2f273c06ccdc322195340e10f50d54986ec8aea4ac103a173c9a31514d5fbce39413472fd530f0c41a21e1e5d7fb5ba03b8dd3008efb8056adc22dbee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + phonenumbers = { + revision = 63774; + shortdesc = "Typesetting telephone numbers with LaTeX"; + stripPrefix = 0; + sha512.run = "328a221086c26804d8655bd38f4a302b9d76b25e1a6238395f342bba8d1f6206b1d64a7a2fe4de41940015701e8fb8bcf33a0ed5d7298b8c7642429d93a85f8f"; + sha512.doc = "ec94445c39683298feaf57ac7d074147fa094aeb3fad983b85fd922ec8baf533160a865997c246a62677ba79bf85ce8f385ede4bae159667ecae6eec2cf84824"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5"; + }; + phonetic = { + revision = 56468; + shortdesc = "Metafont Phonetic fonts, based on Computer Modern"; + stripPrefix = 0; + sha512.run = "655dda5113926fe28ee0695d8d87a18c1ae63599a2d476f7d9b3e3a28bde475cfe33fd06aa70d709fc05a2d43026e91348bc0c5435f4a9132859b7afcdf41a7f"; + sha512.doc = "626ca0614b723fc3e4b75ca977c7a12e77908ca710ec52994e62e9e89e2064f973ab2bda3182a3b466eb2df2bdf030e0e6432cbf9f984bd7316b483f9c310b47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + phonrule = { + revision = 43963; + shortdesc = "Typeset linear phonological rules"; + stripPrefix = 0; + sha512.run = "0465e183077f7daa57d2bbc5f1a76afa72770718d2dc969ebc3078b213738f5ae3919f3ebbee04ae54ff7b8ad6e35630fb22293b5cdac31ee5bf31680433ad15"; + sha512.doc = "80ea19243537e769c49a3411e036c5811b19586fda3878894126a151af4ddff46a554db7bc07f488f692fe9efd0934149c8c94cde75b92c880bfcc28218ae5a1"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.3.2"; + }; + photo = { + revision = 18739; + shortdesc = "A float environment for photographs"; + stripPrefix = 0; + sha512.run = "11727df46b85be20802588a6c5743a9ae70a89ea73b5f16b8a4a3d3f1d3a9ab3194f56f0ef9d79947b14fe3f6b3e05cbd291dad8346cdb128b4d1c8c22d50bf5"; + sha512.doc = "037466dff8edee9f6218b1fddfe579b2f82491746e22886ea5f8496b5f564084d81e35ed549ddfc42855c850913cf8c587806d71b7a531ec3ea3056962c54e48"; + sha512.source = "644303a7eda6cbe50db8cf871ffd642dde5115d4f1a72edde65e9218337faaa63ffebc94bca96da28a4a2d7568ae0ea124f1aa12fe5402cfc1c57619e86746ab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + photobook = { + revision = 68313; + shortdesc = "A document class for typesetting photo books"; + stripPrefix = 0; + deps = [ + "adjustbox" + "atbegshi" + "changepage" + "colorspace" + "environ" + "eso-pic" + "etoolbox" + "fancyhdr" + "fancyvrb" + "flowfram" + "geometry" + "graphics" + "hyperref" + "iftex" + "kvoptions" + "listofitems" + "mdframed" + "numprint" + "pagecolor" + "pdfcomment" + "pdfpages" + "pgf" + "textpos" + "xargs" + "xcolor" + "xint" + "xkeyval" + ]; + sha512.run = "1ceac5c208ff577c3072b96bd3c98e03a75126c25c5bdb8a88c3a253623b2f089d4bff17bcc7cc14d522461df2f95a44ba784ff8108a6b2d284127d20b75d4d1"; + sha512.doc = "fc29b76cded75fdc20eceb668cc0bda2346bc5e11c5df2d860e90999e48b73a3e44c985048174cc54f42aca2dec3d195b765ffae923a1eb78b1d7da180e6a966"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.1.29"; + }; + physconst = { + revision = 58727; + shortdesc = "Macros for commonly used physical constants"; + stripPrefix = 0; + sha512.run = "3655aa79c067d01831e6f30d85f13ba7b06742d4731f2f2bbea8066205256fd4f6a5d3290812e667bde8805b9bcad82c4713d49e3eb357cde56a1f50ad065877"; + sha512.doc = "1824589dccba975de608260ab460a8a6be0d8aecb099571fb9e088e0ecd53f2f6e854a3f21eebacafd06717bfd53290ce23fbdc85467798c8f9b1189d64a58e9"; + sha512.source = "9e21baa7fe13e2ac201ce8d3d01e5217d078a5300c580fcb9e32fa321fa02ae5da58a4d44f81b4acdb31dc219ae6544196ab6580a123c891021185b65583362c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + physics = { + revision = 28590; + shortdesc = "Macros supporting the Mathematics of Physics"; + stripPrefix = 0; + sha512.run = "e394a7f8eda4583cf196dccbd9d52122d0ee630a411630f11d432018c5e9696a9b3feacfa2f881d82090df165a73ee0fa610ad86422123a9e1502ccf4b695be0"; + sha512.doc = "40a85407502116954024d51361dcbfdf36cac07aae382ada1f96d413f9b838ea5a11d7014722b5641a75b6c9bb8a5c6c134c8c0d424788f47f45fc80b277b3ca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + physics2 = { + revision = 69369; + shortdesc = "Macros for typesetting maths faster and more simply"; + stripPrefix = 0; + sha512.run = "1a598dac27ac5e1fa163493c307e48ff2e8c31d9c1c51a676a1b05bfde7af2a558fce4bf410a2c70837d128121331d6aaa393c6e7a84d8b98f9e271184e78a50"; + sha512.doc = "0627e9882b0ff31f2d6db46a9437c536c29aff39a1a1929784fe4bb16dde1a18aad351819d36a7578bc71664a4313c918623a87cbfaa36738b19ee9a9f4769c0"; + sha512.source = "3709f7455ffe7d21a1e5f04f08fb36edf1fdf9664c32aa942856248527fbb735dc6664b971bb2de961ac5fa1f8dee14a2ad06b39903e6ca83e639a18b71b01da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + physunits = { + revision = 58728; + shortdesc = "Macros for commonly used physical units"; + stripPrefix = 0; + sha512.run = "96f700e6dd103f768383a78645cb32e363b83c459a0c764a77d127bbf2aa7c143105752ef9910a2d9d6e659547931b01a2bb0683b41d8870c0fd850d7e01de3f"; + sha512.doc = "e0a3fe337242d4da26153258f16dd8f71c2a704ed89fea8dc0f58b1fca7ecbf9fb168bc05adee988aca61883bf94272ec2f1ed841d99e47f0992b04f6c5bc371"; + sha512.source = "59ebd20b6658b4f4082e56dbb2017b4f63fbf9d7a61dc6c5b91a1da1be4794b1e555f2c6e68cb19ee6bd4c0e860eab77905eadd7fd4f72ea83f4b251bc8fae14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + piano = { + revision = 21574; + shortdesc = "Typeset a basic 2-octave piano diagram"; + stripPrefix = 0; + sha512.run = "49c3b29f48211ac6ca04ef8f9df74cd3f4673a84e9d84c2a9b06bbc958abd640116673abd751be40adb470907bcf65a42756c22996f0adc4e2c0dbf3d6afeca4"; + sha512.doc = "50609a17b51de85d5f9df4da91c0c1c421a86ff222d08268fd0145e248eea740c68445724fee425a2adbdab85e0cf5b4a9bb4ee5cf3bfcb4a3d5cf4f1868df47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + picinpar = { + revision = 65097; + shortdesc = "Insert pictures into paragraphs"; + stripPrefix = 0; + sha512.run = "114b1e715384513f87f2a6772a6176ade44ac7053a8eb19410fb92862e721865dcc9350f08d77874296ae6402eb8d8da4b4b26ff4a96d035666814a3d3e21682"; + sha512.doc = "3b972c49a8c2ba7de3e21c065faef96125b2b275b25f7e8a35c72e28f27156414a558e290ed4b84d6ba49921a0c858867a0a7cfd5db87a501b3ac1a0ee6594a9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.3"; + }; + pict2e = { + revision = 56504; + shortdesc = "New implementation of picture commands"; + stripPrefix = 0; + sha512.run = "04c4fc0ea9647c0a434be2ba709f539392685233adc92da262fee4d081b6d31bfe88d8c537c19a102bc7200e2adffac4f7a4cbb3a7a47ca47c26e93e96772e6e"; + sha512.doc = "90fe6e6d6fce7d2a679bb511e2b0bbca2edc42f332886962aa227536558083897e1e3425b6c7efadaee6aa46d1e404ab5d4c18e21db52e723be8d4f0566eb5c5"; + sha512.source = "0c637f9979672267e73dd762b43c3339f41ed8965c12fff1141c757572ff7cef7d7f2d8faf50d855cd22a3810b9ead5318b6c20c3e5218f01fc32252f93d29e7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4b"; + }; + pictex = { + revision = 59551; + shortdesc = "Picture drawing macros for TeX and LaTeX"; + stripPrefix = 0; + sha512.run = "cca6216568bead5120ef39eb2743897ad97d285b55e7d9b0723b3f6c7fa94ab17cb8cecb946845aefc57eae3c69305de6d839feb9df8212be83d2c7f242c2fd4"; + sha512.doc = "e5bdad8dfdeaf3e3427d37b35641f37c8bb8005aea3773a914967a10b2583e1721fe0afeea0b8cb7f230edfa7b7d33c2d6fe023c229de4a27d6c979f6830088a"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.1b"; + }; + pictex2 = { + revision = 15878; + shortdesc = "Adds relative coordinates and improves the \plot command"; + stripPrefix = 0; + sha512.run = "26b608cc8409c62f4c0130cc032f2ca5929886fafb9d22d93aa23af5a6dee62bbde83926bccbcb4fbd3d86a43810d751eb43a2a94be9528e1639c59fb61e5446"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pictexsum = { + revision = 24965; + shortdesc = "A summary of PicTeX commands"; + stripPrefix = 0; + sha512.run = "a24861e4b6184084fffa783918db485e5c7cacf7a6528681e7d8d4212287f1f6687604bd4f347e9e34ab7d29867dec2b30c9871a13b9bedae31b5dbb82ba1ed2"; + sha512.doc = "148b7c29cb8189174442b95cd39b0d5fdf9f937a7a44a17314b93cce555cf3db459e21ae2c4eb9098c15551bd7aada2804855d68f9408fdbe974f6c12dd724a2"; + license = [ "free" ]; + }; + pictochrono = { + revision = 69865; + shortdesc = "Insert \"chronometer pictograms\" with a duration"; + stripPrefix = 0; + sha512.run = "3c6d73efad12ff4b3c10c1a09e36fb489a75998e556f6042db8f11dfd157cbb27a488eaa1f12f7c72de5d2ea5deff14cb8d2659b1d4618dd91e5bee84f72eb82"; + sha512.doc = "fe015528ac5b4c2f2f7f955d23372c1a3066e0569e50a9e38699e44c305d588727f0570c265c79aec82f8f8c02f6b671183426c3a58f6f1f339ca40415967b24"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + picture = { + revision = 54867; + shortdesc = "Dimens for picture macros"; + stripPrefix = 0; + sha512.run = "9dbb4e17b455a6a18bae6309864412b975d07a1a11e908e1023ab8e990ded0956ccf3826e72d9878f3597eaa4d185c8b147d2c7d2149618bdb0b09fce8e20e90"; + sha512.doc = "ce60fbc915b3c07db6ebf4bccbd0e2e8ed6f38fe0c07075af2c433b2bd7f82cd191c314ef3ae1fe9b4a02c2c27d75e97a5831c45b833a33373d545a977a162d8"; + sha512.source = "599ad9e192d2ee50b7037d93c3a8541014ada30c13a9a8b637ee33ee9dec476a46779b06a44f56288e6fc08b29408af30310fbf0ec951aef3a8b0d8dd776aa2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + piechartmp = { + revision = 19440; + shortdesc = "Draw pie-charts using MetaPost"; + stripPrefix = 0; + sha512.run = "e4ef7bdc43280c4311a6e8abf2719815196fb0ed0a8450501061e0b3b0bb44cd60947d6d623ff753c5ad1384d98219df695865e6459eef02b2b96f00906d023a"; + sha512.doc = "f74c3c34d37eabc3b5e857a90e8da2c6ffaa3b4a6974c6b1127f898fb727ff18f0f399e9c4ccde8d4d198bece0ea83fbbac37a1ba1d381576166b5a2742113c5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.0"; + }; + piff = { + revision = 21894; + shortdesc = "Macro tools by Mike Piff"; + stripPrefix = 0; + sha512.run = "79b804dfdbb12b8d2e854341062f2a149f9b0e061385a30650c39b877cce72d1af4ad1644d73fb3ca733a171aa61d1b533295818dc10a92eacbce2ca60722de7"; + sha512.doc = "ef9d14cf4a38315e4d523082db9baf8d0f89e5963001d12ba7ffe260ca2255a6aa99dc38392a6ceb0fe24e6abb8c77b9343f29300ff5c814c01adfff3321923c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + pigpen = { + revision = 69687; + shortdesc = "A font for the pigpen (or masonic) cipher"; + stripPrefix = 0; + fontMaps = [ "MixedMap pigpen.map" ]; + sha512.run = "54e472281b1ad2f98b8f49df945fc89ea2e28bbec4088c15b4b73a411ad42936f408926a006e46656eb70b90172f39dec376b2eace6fd22923dd4881e1659618"; + sha512.doc = "94be29262f4d00ff65c1679029bc76b33ebc10051862cdbd4da08ef9802975378efda5c2b2cbf85877382d093bb408feda0d53d3458337bdff5239cc851c1dc6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + pinlabel = { + revision = 24769; + shortdesc = "A TeX labelling package"; + stripPrefix = 0; + sha512.run = "56ed76be6c634b3c1fd3f83e12304d0d0e078e027754ac7619d680d2072ac7b67c527a4d23dda8feb6496e3808b3414bec65a48d4750d44405fa4574f122880c"; + sha512.doc = "c56fad48b7cad065196cecdb64e501555d2a8f3ca098f001123215f8e21968cdec2da28f2a68f7e07ee9b1c2d961a82590aa136b15bdc87e9176462cd706b0a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pinoutikz = { + revision = 55966; + shortdesc = "Draw chip pinouts with TikZ"; + stripPrefix = 0; + sha512.run = "88ecb08a15725e4afbd296cc7eba16583cbe260989784e625eecf008441ac54ea53cba81801d77ab8439bc076c32d6c09d62305ef589d739ec1ed59e1f907755"; + sha512.doc = "9fb1acfa981b7d38b312d089be9b9d5dad22334960133377b06910cb0df39c8e556ca86d5f9b959b27ef4c7fc2211b97507b138f026df58d439fe3ae9fd3f420"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + pitex = { + revision = 24731; + shortdesc = "Documentation macros"; + stripPrefix = 0; + sha512.run = "dcc4280ef914ba66210ce471dc276042070b3246bc95ecb93b3d8af55393f49921a1d5e6851223299831344503dfc77fc2893f4cf1b78351dad40058979c20aa"; + sha512.doc = "c3765f6acd4a147ffd2c216b1cda58e5e6ac8dc1202b444fe80d0dd69449b01df3eb17069842ef745e76e88371bf71c178d06c5ad2bc85e3427726bb30b74002"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + piton = { + revision = 70446; + shortdesc = "Typeset Python listings with LPEG"; + stripPrefix = 0; + sha512.run = "c6bf65efaa6dbab5d75aa789df37c823a8b2bcaf28a42e476ee5cc7d36c5a3e830407bde7ac7c365e4dc31fb14b873e2e25aa94f7867fd73c6f8e16d25610f08"; + sha512.doc = "3b5d8305bc3fbab8e3805a9d7f9a5c76c6ea1d6cf45ce31a121c2071fb0de71d275acae3e2225e85aa78c3d24dda559b52842072e917d07788c25b08dedf9066"; + sha512.source = "db4ac567e3d6741a650ed8cf7098fde78a8a0d26225c485c9fbb954494f500d9304719a9f5f32f9277811923aa323e5970c4826a2177a8c0034f50752468f756"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6a"; + }; + pittetd = { + revision = 15878; + shortdesc = "Electronic Theses and Dissertations at Pitt"; + stripPrefix = 0; + sha512.run = "5bd78a90b4c7b9cfa8fbfad66e0de79d09762e06d3bb35a7aaa13ef8ba73aacaceafd8d5b5468de8fb59c6f4c76d364af145e101543c7ef2089dc9fe00e5e9db"; + sha512.doc = "e72d325fbfd3159699621fd703fd539259d1b13ae69d00e771291e156e3ce6cc15a0d7e4d2e74a3ad3492c39c67adfdca5491b68dd6e8ac78ac1213400f091fe"; + sha512.source = "fc1afca13fa1d4b6b0f77dcf693939be3d6423ebf15dc6354b955e1a02ea5655933470de740d0d626d718bd48b5f4dd1ed92263d8524d0ba38b2e4c328bbc135"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.618"; + }; + pixelart = { + revision = 66012; + shortdesc = "Draw pixel-art pictures"; + stripPrefix = 0; + sha512.run = "0643246fbed81ac008f675b9cff8d3194f8eed02937816c41887ad84268850cab50e5c6a7c8df5148f04cbb43c6ab80d5fa4d960d541b42f505f95f554fa0602"; + sha512.doc = "2823d82ac741954d19afcdf74a1b2071591a904183877ee54e8eb9a4dc2d63716f05bd1886691e87d36010fffb929e9d31aee05ec707a929a5fc74c01ed6077d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + pixelarttikz = { + revision = 68520; + shortdesc = "Work with PixelArts, with TikZ"; + stripPrefix = 0; + sha512.run = "c3aff99cc3027fc32f191f6a3329b397d23a11267e9fb89cec0bc5ceac875144375b3b16cdab42b471f16153cb75b21cb25cf38a74eb22c9ec0990f062245827"; + sha512.doc = "e06e2dd718c81822b0701390d8df193ce68d491138e75e929ea0c75881466b4e190cc52cbb58d69e2f3619b1f2ee4ce8489ceff9a35170256d02057cab6b9483"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.2"; + }; + pkfix = { + revision = 26032; + shortdesc = "Replace pk fonts in PostScript with Type 1 fonts"; + sha512.run = "b4d374e5b771e131075ec59ef6713c6433cc3cefb6331a933e791c3774a9d54d6c8427d70a4aadb2c6326c3733abdb562ca103f0b6a9dbcafd87856d20b18a24"; + sha512.doc = "c6819c63aa4cf7df5879a796e08299f2fa132e1244648d17a7fb0b3c28204b0641e56fe4661887c257ca4f5998786c31b1cae2aa64e3163340f08d02fda4c8d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + pkfix-helper = { + revision = 56061; + shortdesc = "Make PostScript files accessible to pkfix"; + sha512.run = "e5151d85d2db65f41b69320ad92611adcc8d211719aa06f39488ba75972f6bd4eda3a9ebd9f13e8889eb84451a640bbdbfd8862c95620304917cca3dcff4a194"; + sha512.doc = "50103799bbfc18a728b6510f9cd3d9aa4cbafaebb1e68f2f3280b3a57efbdbf75ff68f36e72b4442e49bbb04801795250fb3e2d0728968e30c1e70fc5b7d15d0"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + pkfix-helper.binfiles = [ "pkfix-helper" ]; + pkfix.binfiles = [ "pkfix" ]; + pkgloader = { + revision = 47486; + shortdesc = "Manage the options and loading order of other packages"; + stripPrefix = 0; + sha512.run = "2b9af06a79f484ce948b98d8ac09f3327a64e2299770ae6746d9762fc6b339d68aa3ad2abc5e67dc385bf4675cf406f170ef706fc101e87f6b58c839b6d3a3e2"; + sha512.doc = "231038d0af3e7293cec5b5e3a9835b1ddfcb60d5c8006009998e5a04638e0ff818ed36abcb2326a56149af0884297059577a3437e9bb144264cf42feed055cb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7.0"; + }; + pkuthss = { + revision = 70496; + shortdesc = "LaTeX template for dissertations in Peking University"; + stripPrefix = 0; + sha512.run = "ce10fdec461d1de90a7b3256db0c29c508427c4b21ae77ed7d08b75d3c95b46bea27c7ed869c1bc8828d40cba05ab84fd7288fa6ae553d786e1ee18e3c468b8e"; + sha512.doc = "7093f5e5d39576e9b57b08d528675d43460713050af48c77f9b7db78be74b16490dda55f1ab8fa425436d59f6428a3e244ee9490d22ca70eb141a68fe14835c2"; + hasRunfiles = true; + license = [ + "lppl13c" + "bsd3" + "publicDomain" + ]; + version = "1.9.4"; + }; + pl = { + revision = 58661; + shortdesc = "Polish extension of Computer Modern fonts"; + stripPrefix = 0; + fontMaps = [ + "MixedMap plother.map" + "MixedMap pltext.map" + ]; + sha512.run = "bb0d16d92272c6233284fbcd94864c381ce60343e5b9ac23a04871a515f36c18d5eca92e7ad4f80b1335348f62baa703671984db2c85d5a35d84f725f699db9a"; + sha512.doc = "efde952f17a904492b2c36e49801514b97ac5302b406beca7680a893051bc3821e70cdaad8d01dab479476298154c5ce2db99d43b04cf51cbcc5e16358c9b9f0"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.09a"; + }; + placeat = { + revision = 45145; + shortdesc = "Absolute content positioning"; + stripPrefix = 0; + sha512.run = "476dac5b149811659c663751478f9f224e209dd63954cb88baadcc94c70a4861673512e01c4a5f30097d242f56f1a6edbf4fc225f8b561e49a4e60b02020488e"; + sha512.doc = "0fc82d9b448c85eb3d77a7943b9243720f41894f062d9723b3dd56f2d3e9cd8fcb87a3d57f387f1c87b3ea132fee2e0e08962d9044aa7c756f0db979f4c06a3c"; + sha512.source = "c24fb52958d4bf39ea7925b1b68f2b2a5eea95c4c7bad8193d272111d6cc896b89e1b7ffd923a0e6fd9fd231dba3d1038a8730ae58b4ba059738da646e6b7bed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1d1"; + }; + placeins = { + revision = 19848; + shortdesc = "Control float placement"; + stripPrefix = 0; + sha512.run = "618eb33f1fce0b089fe111b083b0153c146e0d8abbcfc235a86dc6a698a2fad080f8ac38e04037e06b0e1e2782291ca6d01ae69922d181b26b4c809d6aba262a"; + sha512.doc = "2ac2312083ae8abd3fe3f85da7dc65032a4c6bed4d1778c058120b48292f459d1b77d40e4eb6f0afaf88a5160d4fb0eb7f353ba1d93b7ec672f054e58de4d6f5"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.2"; + }; + placeins-plain = { + revision = 15878; + shortdesc = "Insertions that keep their place"; + stripPrefix = 0; + sha512.run = "ba143fda432b8ff9f96d48218ea3b3d29308db3a403c64af5f4a89b8305ff835481d9e0e77bff92530207359115f6a44b006cc58bce99c0f7d3924d1134ef60b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.0"; + }; + plain = { + revision = 57963; + shortdesc = "The Plain TeX format"; + stripPrefix = 0; + sha512.run = "0010ad47f363ddad3a0433fbc48f4e39950eddab3d08e2eaa6d5eacdc620265d45b09ca23c48f92ac8bedf222f98095c4f91d424a27ef0e8e50ed6d673780c57"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "3.141592653"; + }; + plain-doc = { + revision = 28424; + shortdesc = "A list of plain.tex cs names"; + stripPrefix = 0; + sha512.run = "bae58c957de52e1a45f91d8ea49579ea9c5b50b641331ae8d27146b6bbda1cf93e09abe58a011164ef99e5513cc32d346da7d693e975271e1892674aa5799406"; + sha512.doc = "03f17a65680e4fedd76abf2ec46dbac4b7871c3106c74d3d7c7f200bd6124146b2f78848a3761eaf63b2c909eb5925b78441d73a48a4437ef496b8643777d847"; + license = [ "publicDomain" ]; + }; + plainpkg = { + revision = 27765; + shortdesc = "A minimal method for making generic packages"; + stripPrefix = 0; + sha512.run = "aa1158f3958013b133dd3f9308063543268181296274a40e2ca606c8e684105e89b79cd9bb45d225e14865ca0e998e0412e8edf8057445bde549f249a6d69b2e"; + sha512.doc = "684b4f193f29336d5bd2c494c0c447cf0ac28090a156ae286437033e14507607582b3b9b40bc7b82fd92661a4bdd75f953e7c0b675f46418bb585b6a9492eaa1"; + sha512.source = "44138ffb31ad8f78b0ab917302f48f0bbea871ef390c52b211ac25dd9c16f0687f02348c96682d89c9fdb5586b157c9d6d4ab3f404f40ab173835997ffe7c237"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4a"; + }; + plainyr = { + revision = 52783; + shortdesc = "Plain bibliography style, sorted by year first"; + stripPrefix = 0; + sha512.run = "a42c5fc8c9a530f91d467ab3707fbec05f49764e85b906510f4605749c60bdda224a4ba23be85acd722f48b0958ed7184b4bfe88dc7c3fea4a64e70f9407afc6"; + hasRunfiles = true; + license = [ "free" ]; + }; + plantslabels = { + revision = 29803; + shortdesc = "Write labels for plants"; + stripPrefix = 0; + sha512.run = "7e1724b32035ee32325c491bce57ead23f40ad7377b4c1d5572499fef920b874bd57298e654429203cbea726b8d645a0899807547db80825be163538c1d91537"; + sha512.doc = "999f132df73c15a7b3501487f350e48777543745c5cddbbaf314bcb62eca9b3ba41b51324b61d04e9f1d9cef4b9b8ab851d3528f8893bb21e612a7f50511da65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + plantuml = { + revision = 67097; + shortdesc = "Support for rendering UML diagrams using PlantUML"; + stripPrefix = 0; + sha512.run = "97af8222b28309bd5d8ce5d083ab54bbf550b6327d463de8b481cf4a5f62c0c82b33718b5c95301204bfe8e4858039a0811f491d97c02079d723e66c3549c90b"; + sha512.doc = "b76c635cd30ad2638619b1ded721d468eec92033206cda03cbb638b14be082de1360efd2048f2cb1ac787a4c9232416cd18a82ad7b261ec785468ffdc003b86c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.2"; + }; + plari = { + revision = 15878; + shortdesc = "Typesetting stageplay scripts"; + stripPrefix = 0; + sha512.run = "86e91b884be131df6b4da6441a9fbeb872e0f345eed49005ef74d58eb3ef8a2724da98cc810a51b58d45047d77545ac6b9512612b5946ba29d443dd14bbdb263"; + sha512.doc = "befa46f8ef7c4c89e18339ececbd53341aa50d6bfc8927001d17395cba42db0f0ca3414619c746c78e4f5f4f9cb1f6db813defc7b89299f5b29e9c0866852c82"; + sha512.source = "e03c7b5fe7406c447509d4ae841c13c579c608564f45b83e1fddb066248b53e46f83a2760d745db1a5acae08dff493686d667f0328c9c3d467df6a92d8304a5a"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + plates = { + revision = 15878; + shortdesc = "Arrange for \"plates\" sections of documents"; + stripPrefix = 0; + sha512.run = "f662191f6a053585bbcf5a71635b6f63ee5d713086bd24f3c879f73868b5ab42b6434860b68408fcade7b7ba448845d1dd6a5be12b10bc25be8032b9dcef9615"; + sha512.doc = "12779b285951d5e3d7a0f9d3ded736d5368291b678fd884262908897c4e32bd5fdbdd6bb4eeea59bf922555d5dc8daf6b0e06a174fba2605d4357dcf1f09c6d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + platex = { + revision = 67315; + shortdesc = "pLaTeX2e and miscellaneous macros for pTeX"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-base-dev" + "latex-firstaid-dev" + "latex-fonts" + "ptex" + "ptex-fonts" + "tex-ini-files" + "unicode-data" + "uptex" + ]; + formats = [ + { + name = "platex"; + engine = "euptex"; + options = "*platex.ini"; + patterns = [ "language.dat" ]; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "ptex-fonts" + "latex" + ]; + } + { + name = "platex-dev"; + engine = "euptex"; + options = "*platex.ini"; + patterns = [ "language.dat" ]; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "ptex-fonts" + "l3kernel" + "latex-base-dev" + "latex-firstaid-dev" + ]; + } + ]; + sha512.run = "4a2682c51dc82e078ad14b30545dccd95f600ab02d5d05fb5c44c214221a3947562432783b43ea505b5199f37a1175a792c709282999f77b17b532d2a61c6e54"; + sha512.doc = "faf91bdbc3e0d2ba0b13a914d54fbc4ce47e27c1225e5412b78c1217b2e3f6c22886a9f6f85b06e5e3f38a8b0c7a9aaadb4606721799749ae6ef5018f7bb08bc"; + hasManpages = true; + sha512.source = "a1ba3fe817e5f4aa23c2c4c9b7397cdda6ecc889ee244a05fd7eeda59fba1baa02fd29820107c887982983b2115631f1aac7d19ae281f88779b3e99253b12036"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + platex-tools = { + revision = 66185; + shortdesc = "pLaTeX standard tools bundle"; + stripPrefix = 0; + sha512.run = "87646f8cd885b75c3e7dc0edebc32675afe2d02f87c37ebf6abda7b68256f002440fd1a94f3f13dffbd8a7b694f3813d4115621f931b9a3a9d73491bda7c4296"; + sha512.doc = "cf04b2c5d4df6d68bfdc3b0a3a8dc0f988cb0549252b3a6ccba58df685c41a9312197a63c97c3ff63c1ec15177a43d1e8064fd449054eed3df968fe213703552"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + platex.binfiles = [ "platex" - "tex-ini-files" - "unicode-data" - "uptex" - "uptex-fonts" + "platex-dev" ]; - formats = [ - { - name = "uplatex"; - engine = "euptex"; - options = "*uplatex.ini"; - patterns = [ "language.dat" ]; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "uptex-fonts" "platex" "latex" ]; - } - { - name = "uplatex-dev"; - engine = "euptex"; - options = "*uplatex.ini"; - patterns = [ "language.dat" ]; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "uptex-fonts" "platex" "l3kernel" "latex-base-dev" "latex-firstaid-dev" ]; - } + platexcheat = { + revision = 49557; + shortdesc = "A LaTeX cheat sheet, in Japanese"; + stripPrefix = 0; + sha512.run = "1409c7311eaa82811236d869b04e9f55fa2a96804faacef4820072a4813055e70ecce0e8c155ec19016f1ed4e57bebe0b362c5457d1258f317a40fc475d42aff"; + sha512.doc = "bfe47b947a915099de15e5519a3aff201b327c31d29c1966d4fd3e9b73581792d918b461ed1944aaf5e8a5eb7956c38579a3fd972f189b1e3abb903c7c904cbe"; + license = [ "mit" ]; + version = "3.1"; + }; + plautopatch = { + revision = 64072; + shortdesc = "Automated patches for pLaTeX/upLaTeX"; + stripPrefix = 0; + sha512.run = "1313cf815568dc385d5d1691bba7e57e246c45e71242acb94904ca0fe796940afb59bd3d07f728a9e407a9a0914b3890a7e7dc3c8bde3ddab7b36c3ed9ffcefd"; + sha512.doc = "e4bcfbe263cd17dcefdc239f06f1287ff8d936f0a6b5ea89f914d7a4254e08040c076be0317f4e3cf2aa96542878e1c93fd3ad5b9633f4c3c3d85ee9d719f4d2"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.9q"; + }; + play = { + revision = 15878; + shortdesc = "Typeset drama using LaTeX"; + stripPrefix = 0; + sha512.run = "040468367a783e7bc49dd4b51e22a72c41ff2985a52e2551b3be6780767e17c8d11178f097cc66f5683033eb03cc2ebc2c08c1f4477daa7b8f9e22d8a40dd385"; + sha512.doc = "97c882b12ab350c5b0fe066e04ea7c2c136b1dc7ca29e51d8f89ed695769c9ef1ed255c3c109ff71838bde91d25167a398230cd25809f1374ca306fbd9ae68fa"; + sha512.source = "3bf9b5449611ce72af26a68c99a7ea813c7eebce59336d5c7bf65da1a870e6c26238f803ba8e07ee2a084826e6bee7ec819a919e7abbbbf11946f611cab17a03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + playcards = { + revision = 67342; + shortdesc = "A simple template for drawing playcards"; + stripPrefix = 0; + sha512.run = "3c7b076044328ceed3005de84d628d6d926f93c1d759982c2e37c8831093aa12c0dbff71f8b8bfdbd171dc545f313729c7c11086a3e529858086896bb64899f2"; + sha512.doc = "396118759c2f02c709ede5e6b4be042d2348cc38ce4783fd9f612a6bca887f9237f86662b8ce84a78a6abbedc8e2ce9e2c61be2f2c818e262c693149b7125019"; + hasRunfiles = true; + license = [ "lgpl3" ]; + version = "0.2.1"; + }; + playfair = { + revision = 64857; + shortdesc = "Playfair Display fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map PlayfairDisplay.map" ]; + sha512.run = "2c75ccda034c607fa67993922e498347cf8a708c31360ac63d8304ebcf538e2012529864c6c3102a63b0320db68101fddae021ec396efaf0396d4d609cd0d711"; + sha512.doc = "006319162a3a7035955064d7ab99e704bf828cc7441a9c930cfccf4cb7e70ac52ff672de3ce8b415fbfb20f29a0b4c09703fe0e3715d15e38c1293973bd3a86a"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + plex = { + revision = 69154; + shortdesc = "Support for IBM Plex fonts"; + stripPrefix = 0; + fontMaps = [ "Map plex.map" ]; + sha512.run = "4180d4b5ff2d6843ac375a52bc3c63570638cc29f7d3bbda476dee962998293ce4b201817e056d5e87c20bd8280336b65bc689a8e1580ab8aa6f24164002732c"; + sha512.doc = "175abcc07f213d5837070171b7fc483aec2c26b80f530ca7ad7a6f571de028c833e32d71a4c465fbfbb803afcba934e68df560944b8b54b20827d31cd21fa9f0"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + plex-otf = { + revision = 68238; + shortdesc = "Support for the OpenType font IBM Plex"; + stripPrefix = 0; + sha512.run = "1dadbb3073ccdf40e496f89cdbd31af8ef37e810178eeb7aee49e9c1abdef42f28e58bf12988a59b9aee95384de842cae8a827e8ad8968c7ef37e8442e596d21"; + sha512.doc = "226ddb9c201dabf158e0e9a5480995539d20d14ef34f5ea9498f9fe5966a1f7eaed00e1bac62fe17eeb710d0d3f68f9397fa568ee1a91076552130661dd6e3f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.08a"; + }; + plimsoll = { + revision = 56605; + shortdesc = "Fonts with the Plimsoll symbol and LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map plimsoll.map" ]; + sha512.run = "c0b44cf022ca470767d296af1ad80b2d5ede92adb22635f7ef34b9fa81ec523f769dfbfa6a78005a46bd9a4886507fa7b3a4f761bcb8f686dbf736e3ad92676e"; + sha512.doc = "9ee880e89387986e228f357f59981b18fa8565d60e88d6f1b15c4109f9f7f20108c447fb995f0edaf64723ac37635b56cb5d097e93e0374a0f64adda4215eed5"; + sha512.source = "2967c9b53daaeba02405da837050a53c69b725da8daeba1d6a9c58dbef0387628aa6dceb07815c5bb0d2cc37c6a1b66f5c64037ad33d74e1179dc3fc0f0431a5"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1"; + }; + plipsum = { + revision = 30353; + shortdesc = "'Lorem ipsum' for Plain TeX developers"; + stripPrefix = 0; + sha512.run = "203b9cf56acbc53b2a3c195ba0a27728c93db91bd4be48441e61967fd0488cbc4ef96485ff0b567be64ddba798bb44308cb7cfabd2a2ac89d294203d93ff4d29"; + sha512.doc = "6d5c77102abf42304f8480f74a073ba25b8cf317c3a6cf4c22af6035b17b07ac213866a10ead2a53d033b214e4a6d6e642d043d847e61fb165aa8a02ef90f7b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.3"; + }; + plnfss = { + revision = 15878; + shortdesc = "Font selection for Plain TeX"; + stripPrefix = 0; + sha512.run = "0ae352953c5981b791379d9da9b61ad8837c22053f3371f351152078f4dce6b12615ed771987115cc094613ddeb0c275568e1d7404f321516418d218d9c68473"; + sha512.doc = "9569a4f77dead68ad8c76794f03e6ffe147e1801324291fc13487b05051fcb7f307971e65edf66024c169411cee9b2940eb4daac4d073773e67f2f303b364870"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + plstmary = { + revision = 31088; + shortdesc = "St. Mary's Road font support for plain TeX"; + stripPrefix = 0; + sha512.run = "72d54627fd8a10215ae9fe417423c46240997f865da8b4f4b976290ded7fbb0360477db27f140bed0ceb4dfc57c42a23fe5ce780ec5eeebb9b3e30b372adfe9e"; + sha512.doc = "6e5c425b7d484bbe187eef030fbc9d6a0ad50d6d8e22c5f08d3762cf8082b434de8a4c5d13251d90a016715c9a85aa82dd2637abb6e17a6973a08514baeef7fd"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.5c"; + }; + plweb = { + revision = 15878; + shortdesc = "Literate Programming for Prolog with LaTeX"; + stripPrefix = 0; + sha512.run = "1899a3498d10950f67d24d2d7bf0488cd8867bd862960fa892581137bb1fb3426dea9e193f8993ffa93df11684dbd1f25bc79a98489317998936ab4186e9a22d"; + sha512.doc = "9a510c4fd534c9451863a47fb8fa3911cf5199b295b1e3e2739cfc37ca0351d28fa1876e5456cf05ac7cc05f9f60761578ba6d77841ca575908cf4f0c9f0e3bd"; + sha512.source = "09039cddf52bb2080fa6f9dad964f267e43d04504dde81e010727f4957a4de0225b0e23c1cd9ce7222ee1ddbf0d6f1ed1405d0405cb849adda77d99086402d1f"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.0"; + }; + pm-isomath = { + revision = 60368; + shortdesc = "Poor man ISO math for pdfLaTeX users"; + stripPrefix = 0; + sha512.run = "89e11156c2a4b7d05fc3404b4badcbac94ed190db4c215e573c84cdbc8fd46c5775b19272e423df1806e8a38d61d8c071aca7d38380637c79f06c411a05ee468"; + sha512.doc = "92366bb3963f1615de3cba205345d5d799fac04bf4935574868be140109756fe9a9a2d7cf7a685918018919ae2350e9ff717cd898fc0404205f21d56a359ebd0"; + sha512.source = "fac0256323bf26f55e5908c718b8622f4996b2b792ec3770b1db4a31d91ccba84a8e21e839710e1d6305448044c5140fc38a4eab06954783e428dd94008d2fc4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.00"; + }; + pmboxdraw = { + revision = 53046; + shortdesc = "Poor man's box drawing characters"; + stripPrefix = 0; + sha512.run = "d229b15e57fa76a9e8e9b903b5fbbb99d81d3c8a2b1818d71c103df7f2a1e9bcf79aa8396b6ab7a2ce054371d212375b968a4a5d572fa8686223baa8dccf4eff"; + sha512.doc = "42a439f2f88235faf7302400432d49166861476cdc43708f84780d153bdcbcb55dea1a6b31cde2045d0b99d48c2a4f51ddae8bdee08937308c5de02e9b16a523"; + sha512.source = "77220cba1cb61836f0be161566d1f177f2c503901b0fd4c0052dae81b457f59364596eaa4a32071b5c90623509f646ef3140f67e29a558b4910beb3a1d63cca6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + pmdraw = { + revision = 69366; + shortdesc = "Draw elements of partition monoids"; + stripPrefix = 0; + sha512.run = "ab2b72364f2833ec7362d7284bfc10033e72c3f20c1b4f6ff7a89a8368bebd5aea2120c5cb82c27bf924fc1342030d83e61a8b4b0343aacadd09247890495325"; + sha512.doc = "60a9292a2705281b8f32a2789b34e0dbc46cd8d475d7c946e00e8f0951b5cdd5a29cc145e0cc270ed87b52a23f819552081fd78f99fcd529aea57027d4d71b23"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pmgraph = { + revision = 15878; + shortdesc = "\"Poor man's\" graphics"; + stripPrefix = 0; + sha512.run = "b6e9f00789ad102b6cdcfb0fe48e5ca4f6976a7c207088c0c3e8b0c2d4fa376bbb932500d42133571a6e18747615c77eb6df2b4872ba86f853e3069ef198a671"; + sha512.doc = "35f45f43c95264d4dbac5d12a71270fd15280f9008d204e12ab0a3bc6a62939e6de87233c94eeb7cf9627464d5f383c3d8c2cdeaed6eed9473a3e5fe380cc5e7"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + pmhanguljamo = { + revision = 66361; + shortdesc = "Poor man's Hangul Jamo input method"; + stripPrefix = 0; + sha512.run = "099517421e9590597157121de5d53eccaae0784969288762ebd8e35a31eb12ce6d5466f890204bbb69d0d9c805c314b6a475653a1cb26ef270672683e2625a24"; + sha512.doc = "12f324ea6c852b134868f4365a53c2f434adac235d01efdbdad0d5df138587acb28fa7324e10f5fc996c44f43289322bdbaf764107cea4e66d7f999b71807384"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + pmx = { + revision = 65926; + shortdesc = "Preprocessor for MusiXTeX"; + sha512.run = "433287732fbb2cb47886c6c78c923d5b6a1b5c1e71e3990084cde9bb288a282fff7fb9134a5165e0fc0908b8e60547e23cb900bc82b99717133d7600fa17dc31"; + sha512.doc = "dedba4570b68a8628442716dc3a9b1699e5f531aef2737e4b3f47862a91ba69bda91d6fe6692914d2bd7b8fe3188a83fdfce8bdd219ab7c4f238a9c6ec273ffb"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "3.00"; + }; + pmx.binfiles = [ + "pmxab" + "scor2prt" ]; - sha512.run = "920d770f36992085250b38bf8d58c59fab7ac8d121ad171612b99ec7f91369f9f31c24ba5e5402552e2fe073a3913b529fd013be1a70eb37913a9731caf69895"; - sha512.doc = "8024c2dfa393ddadffd5c35a27542d3f27a030464306087ffc28d65c2e0c704e56143f4f449f1d59ca1f19f007389256a4a23c2f2405855a5aeeeb11bd4b3802"; - hasManpages = true; - sha512.source = "7fe21c87bcdcfc7ba7221a51c59eafd17a767aff04a1f267682167962f2a75a34e12af5b035319b6e413ef1037533f2bc07e7b7d21cda63355ef4185844d51e4"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -uplatex.binfiles = [ - "uplatex" - "uplatex-dev" -]; -upmendex = { - revision = 66381; - shortdesc = "Multilingual index processor"; - sha512.run = "947d733e5b96ee6a621e9686357b8c3f8638c0bc482f4efaac87a72117160f81ad7aa0d34088e61e67982b345b56ec478ef3b6a49865ffb3d5512a7bf18d2b8e"; - sha512.doc = "ec4d1670ff84680fcab88e29ca5f4306f44450ccca9cba06282ad34bd026f74b46d166724a06a313957ca8d798b0c296e848bb248ad416597a99afb16b4b5a0c"; - hasManpages = true; - license = [ "bsd3" ]; - version = "1.07"; -}; -upmendex.binfiles = [ - "upmendex" -]; -upmethodology = { - revision = 64613; - shortdesc = "Writing specifications such as for UP-based methodologies"; - stripPrefix = 0; - sha512.run = "97028afebe70eefb0d2776abf4c7a311b1d78fb1aaf7e19f625337669ef0f085c17f9d88c76c4771085eb4a2ca1a05ec04078750fffb2904ceed8210f78be75b"; - sha512.doc = "1931a840502d230b991078f5c35fa4dc482bc57c488b8941a5cf7b09a9aa98c6a993fe508227bfdcd0a03c421d498e3b6a3d8af23a200563cfb420cba019712a"; - hasRunfiles = true; - license = [ "lgpl3" ]; - version = "20221004"; -}; -uppunctlm = { - revision = 42334; - shortdesc = "Always keep upright shape for some punctuation marks and Arabic numerals"; - stripPrefix = 0; - sha512.run = "522b68bd32887ba14ecd927c49c5fd57a84a1c0f9b8a0bfad65a4d377b68a7bd449754dd411a72fd83e5736e32e2c47cb1f54155f72395c465e4e09ad1d09dea"; - sha512.doc = "d0f67dba683a40a6392121cd53b58df6d7ec6ffd8bf52df60f53537fc1b389de178dfceb1e772dfc9e292cc543448dac3a85cc6b712283b384ccfec4655c988e"; - hasRunfiles = true; - license = [ "gfsl" ]; - version = "0.1"; -}; -upquote = { - revision = 26059; - shortdesc = "Show \"realistic\" quotes in verbatim"; - stripPrefix = 0; - sha512.run = "06360c313124487f291a8daf7399a3139cec8c0a05be12724cedb3d60393ecb07aa31e34f9b74a83048f5752a8d826505f91f2c85d34348264975b48a1813fab"; - sha512.doc = "4b92923e8af2dcd65e82269994c766b88c6f78f6e7b8d10b9f44889832150711acb0cbaf467d595d6745863f385569f7eeccb4ce69df8361e56910969532e314"; - sha512.source = "dcb227a6ebb481e9c4abb9f9ddacafda03ae4a445768a3a242c6dc3bc79f83e9e5f185db4d353916b4d50f5aefa9884bc52fbced79894e1c00cd7f40f0940884"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.3"; -}; -uptex = { - revision = 66381; - shortdesc = "Unicode version of pTeX"; - deps = [ - "cm" - "etex" - "hyphen-base" - "knuth-lib" - "plain" - "ptex-base" - "uptex-base" - "uptex-fonts" + pmxchords = { + revision = 39249; + shortdesc = "Produce chord information to go with pmx output"; + sha512.run = "0a8f4a88834eb22d3f11ca567f37189af7834370530c6dbca4d83482e94cfb48b128bc1290e7f3ee718bffb4df445a300ddf5081805f88002f53bcf8b434bb3c"; + sha512.doc = "d4075306620fa1ce037a37b9d2646d197348f6482e1286ff6fd99641a8b441b3d830a1420dbf6c025b8d11af78363b717a1acc7ea6b9e2954aa4f11ef04452ad"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl2Only" ]; + version = "2.0.2"; + }; + pmxchords.binfiles = [ "pmxchords" ]; + pnas2009 = { + revision = 16287; + shortdesc = "BibTeX style for PNAS (newer version)"; + stripPrefix = 0; + sha512.run = "5e20303db90b2db63a3d6026db582026df8b9e910942303c952753d5dc27928ec70a8dc21edaf44cd57e04d25e93a87a5f28caa769a0425b47c78ea9d56ffa86"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + poemscol = { + revision = 56082; + shortdesc = "Typesetting Critical Editions of Poetry"; + stripPrefix = 0; + sha512.run = "e9bba80cd6fcd7b1e7b0e46fe594b3e25986dac5fe39d329ed4b8e15bc6b542e033a392abcad4e0c67d5401066703a1a89658ebc612d2adcf846de81b34fb78f"; + sha512.doc = "e8e3ffc366be12ec5273c85a352a6c44ee22af072fdc9e63db390c0d3435e390c28ca83279a1a54f95af991890b7e47ba896612407ed605e229ec184cb1e5096"; + sha512.source = "cbb9340d8241dc8616f997dd962fb913ac6d8d46241c55e37bd30fbea12cbe8f331d07268653c9100928b92a171245489685761e091b6d3e2b6be6558779b683"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1415926"; + }; + poetry = { + revision = 53129; + shortdesc = "Facilities for typesetting poetry and poetical structure"; + stripPrefix = 0; + sha512.run = "1f618b339fecd44d21029ff9ecfb95a97e47fd5d20089a2115d70c8336738c794e1c639c78a16b5756d591fbe3ad52576e3923f6f86245fcc9f7501008382eb6"; + sha512.doc = "540a209251cebb31bdc87143fc8b60627a9296f488f58a81faaefb3c3cb66517e8a670e81b4363840cfa1220697d26517fc1bebedf43f62a4f1c18e3e14a8d65"; + sha512.source = "59132d5d5deb62236ebdb4ec0335f3557cb4a99d4a5871ec40669801338f5f1b72fe3023a09160feabe2e0e1d2e1a78c8b803dc4d21c63cd3efafd4040224f9d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + poetrytex = { + revision = 68353; + shortdesc = "Typeset anthologies of poetry"; + stripPrefix = 0; + sha512.run = "f56937e0c18fcc1db0872ed27d3ab9497e42186552f5eb26015f7c28f1d38091544212767de088e8d94f6d1e15a5ab973bb1b4960f8d4633964ad9aa295e3b87"; + sha512.doc = "3db45607b5d95695c3f54ab924912c39ed3c06d956374039656d2a2d3c25d1261541124d7a89ba05cf935ddc4b36b7cbf4c907d02a6b774748ae96d032b30d4b"; + sha512.source = "8c43393c86bbd430b0e98695dcecf110a08c5f35f152c56aaf8fce946467803810ca87a3b81fea10302b5dd079d817e4874440c069fb466a2773a7c086af40d1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0.1"; + }; + poiretone = { + revision = 64856; + shortdesc = "PoiretOne family of fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map PoiretOne.map" ]; + sha512.run = "07e1479df1d89b568388a855236d997580cb76ca6ea8f45b55622425d10584037cec5e17a734c24a0eb0a9746966e94137026c37d4696b475e641806d07a7ef5"; + sha512.doc = "c164f53258e08e74cade46f03f1e6d3d538a0f65cf3086629150c2741488bd33a82fca89d91bcbb83045d126defc3ee9493fc5e1d05e2c567464d4d29afc0cd9"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + polexpr = { + revision = 63337; + shortdesc = "A parser for polynomial expressions"; + stripPrefix = 0; + sha512.run = "4d04a0a61b5f50c61eef41360aaec305b727e6d8686e8ef1742098a7980a6508e3455a8282a9cb0b4549d7dcd49cf065c49bbb7e710ca5120cb32567fd58fb8b"; + sha512.doc = "d2477a275477b6e47461e769fbf43abfc746769582cc916eab153fb7ee19e85285561601169dea0335d0c525b79c5435ee2d44ba931739eb9d903a3f2e3b670f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.7a"; + }; + polski = { + revision = 60322; + shortdesc = "Typeset Polish documents with LaTeX and Polish fonts"; + stripPrefix = 0; + deps = [ + "hyphen-polish" + "pl" + ]; + sha512.run = "24bdb98990f66e89085056e6ad3e0930dd16d0f4bbd07a2c9a49931796e143505276d2025fee21b2b52d927c3b2992d31f4edae4668cdb549f6f00ef43dc1c69"; + sha512.doc = "755e7625d5ee1e4457e7ee518469d585c9c1e566c57bf147c62195555ae91dadb68f469127cb18a7c30cda1468129db09cb09b1974f5273d41c9491a6e1d5ffc"; + sha512.source = "8e216956a95df02134cf411d170a75309c3f167a5bf7d78f77c4e47950c8a5da52e523e367f5ce60492fc0ab7cb205e9b57835b883225752731ca094d7c507b8"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3.6"; + }; + poltawski = { + revision = 67718; + shortdesc = "Antykwa Poltawskiego Family of Fonts"; + stripPrefix = 0; + fontMaps = [ "Map ap.map" ]; + sha512.run = "620708dd3f1d2d8b2601377486631c2bdc779d06d2016e1c9ab5869afe00cb88dcb1ebd055b6859ad3e3dd25200c1079b723613283f048c7cd7354977b66b8b9"; + sha512.doc = "51067d3e930f9cae71d5cdf11d6ac83738e23539c020c93e6f4d8b460e63b04e77caaa41927ed8658056d96ff4fdcfc087e591be991e10c7e95a6b58d56ee368"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "1.101"; + }; + polyglossia = { + revision = 70496; + shortdesc = "An alternative to babel for XeLaTeX and LuaLaTeX"; + stripPrefix = 0; + deps = [ + "etoolbox" + "filehook" + "fontspec" + "iftex" + "makecmds" + "xkeyval" + ]; + sha512.run = "d34cfbeffd1cb2eaeef0d7d625a1f1ef7e2835e93eb88a53b2d44f21562c76cab82e1f5637ebf05b25c0fd0b56738ef7946bf7f9607766ca57a7658f98cb2647"; + sha512.doc = "f59aee2cdfd6ba067e4ef5c20503cdd9317ab854ae35b0a04044b94116d4fea9fd6b839bd4f33af934b207f1c660e126c223477cc57b7a1ad81db54bda2507d5"; + sha512.source = "cd285a93795e6b0861eb6e930384c836c83463cb2c4806dcdfff2966f23cd28604bc113b48916332d60ddd7cf2e747ece902b7040c41ff3d95b9eb99b0c9ea56"; + hasRunfiles = true; + license = [ + "mit" + "lppl13c" + "cc0" + ]; + version = "2.1"; + }; + polyhedra = { + revision = 68770; + shortdesc = "A TikZ package for drawing polyhedra"; + stripPrefix = 0; + sha512.run = "26169961ab8e21114a4c44470da03fa510822b495f36afaad745c0324d45d5bd64e4e5587b7601fbb97156ba02ff18a2c253e175296f15f2fb3915f7bc15e060"; + sha512.doc = "6a083101ebef3810467cfe377a820ff178e752c62655462153c661222da3c75034a1735a4a39d76e963fc6773441df423444d40e040f39d73dccb5adc6fbc34b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + polynom = { + revision = 44832; + shortdesc = "Macros for manipulating polynomials"; + stripPrefix = 0; + sha512.run = "bbff103f5828757f9c58c768ba46dcd9197629273b12d997e80e299dc1cf6a34e851fa4ebe088d131781eb6efc1fbd39cab602ba23b791c68fdb0e12f69440aa"; + sha512.doc = "b0fdee90082414d88469ba5067f1c16279ddfc8c13627098bb3c2adfaded3c355cbb161193160fc5b9682d45a10216c56fe2613855528f9f4965479c681e6355"; + sha512.source = "cf9dc9f13290bfd84e2956630eed115a132bcedfd34e6da076b2fa0fd4840fc5fabaf995b44f2a8f3c3d9ba9de851683a306271b272a83331a92fac367d82a57"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.19"; + }; + polynomial = { + revision = 15878; + shortdesc = "Typeset (univariate) polynomials"; + stripPrefix = 0; + sha512.run = "46324509f078d9e83f4d94893454061636fd1148d5a2e9b59af640f617d82ba1d7397c7f7bb68ac99a83945354c875d3f29853e5ba38da59a2812f5f45ccacb1"; + sha512.doc = "b570f3abf21a480e0bce2c08e44d97b488e9a0758d712cfde3ccbc45348eb95486c121662e296049220dd2802edb387651e839c2a819058111a2839049fc5964"; + sha512.source = "db4c1d698b2a096ce6c848922beb747f70a874914d4ad1a468080c55ac0afbd89330c0665006f787c32c6c444ab601c64e7173ce9a5bd9241c1ba71582c0ea0f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + polytable = { + revision = 55837; + shortdesc = "Tabular-like environments with named columns"; + stripPrefix = 0; + sha512.run = "2ff55bb460357dc11b274ad3233e5ddd67fbfe05e60d25bcc69f1d06f9b0f247831cb5db4123b7ff859dfa88bd56fd5bdfc24aa992e98f5a17d0f883b40fcd2e"; + sha512.doc = "5bdc4a4c8f95255343fccb6db79da434a6b883e0e2a769eac5c8accbb6343d3f5b8de2fd465c5e229ca0ac3e9964fbd96c50062440970921ebf70f01a3097943"; + sha512.source = "dc5c2c007012a4a57a20b569adf784afef0db7b22ae88ac91f54bcab5f8a25a3dbde48a118ff5090d806d42954ea28276ed2adbddfd974972012a645805d9fc3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.6"; + }; + poormanlog = { + revision = 63400; + shortdesc = "Logarithms and powers with (almost) 9 digits"; + stripPrefix = 0; + sha512.run = "e67561e7818e8ff9e02a43c02b8b992a26bef477176ce36eebaea37f56ea182bc9bedcfa56ffd8581b5d696698718d87f5319ac93d79032c4c27780ceb964851"; + sha512.doc = "7d99c4036411bd892bc0a520a42c5e2a1c1077c89e58e1be8a9fc991b87da3d22871e75669c814358701d17add447a7e6546a33a8ada55f55ce0814296273f91"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07"; + }; + postage = { + revision = 55920; + shortdesc = "Stamp letters with >>Deutsche Post<<'s service >>Internetmarke<<"; + stripPrefix = 0; + sha512.run = "1b7ebc9b82ae1dc0a642892b6d74ef94ff0810ff3dda1628f741244dd17dc8d5013b42e2369c1dd6c27e65b965a1482814c62eaef582cd3bcb4c945fe0aa76da"; + sha512.doc = "5f0d2dc0a4986509862b17af55f590f110b3dbdc697ed4cc704d31215945e224a0029087e04cc8602b059455447fa9214bede0aa63509958972c9dbe2cc4a0e9"; + sha512.source = "68d0ae1488f2288b7b5ae3aba79ca877ce6f97e1134e61859a81c77bbed47c9b79d3eae07a6ce0bb5fb3645078fc67d2c6cd4a5baaad1460e09b4b34d3d597a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + postcards = { + revision = 21641; + shortdesc = "Facilitates mass-mailing of postcards (junkmail)"; + stripPrefix = 0; + sha512.run = "0e358697b47ee74afb9fb6bd339ea4a76457c78a76a37de6039ac44cd9ce1fc28a3866c42d988ccebf025d0e08c4c092a2b647cce4841662242f740f12297338"; + sha512.doc = "936c1f923bea76aa323d2c8ce9949cea3364eeb1a145e735ff5bdf609de4c54cc78125392e9e3cc914180815bb9dd5bae63e50c0000b2143fe7de94c199bc50e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + poster-mac = { + revision = 18305; + shortdesc = "Make posters and banners with TeX"; + stripPrefix = 0; + sha512.run = "f685c2c6d7d2795cf80702c0f8b4da6661a6d076dfbefeeeb071f21ffebd4420c7777681e550ed8ce05726a4392f526da42cecd6e3f26b5dc8ba775494589297"; + sha512.doc = "d06f06a4432638ce7780923818cbe638edbb21f836566fb984353aff0bbfbe0905adfa39cc69fc59c87c9e6f7f2c3c268b7f2ef9a55a0f0a2bf0b5212d9e2124"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + postit = { + revision = 67344; + shortdesc = "A LaTeX package for displaying Post-it notes"; + stripPrefix = 0; + sha512.run = "cb825667ddd1379b07870c388915abf36efa1249036795d3cd5ed7f41a87c046c00c7e292e542dad6a8b3b3090f327c5cff5e173220d49cc829f0fe206676aae"; + sha512.doc = "2754e847a190afa3ac22166365a0ea12557d939fe4d2f06dc0c34a518da82dfbf7ab33c8ab1ddea5d3d95dae13c013f238abcabcf6444d956393fe61b00f4a6d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.3"; + }; + postnotes = { + revision = 69102; + shortdesc = "Endnotes for LaTeX"; + stripPrefix = 0; + sha512.run = "a2b8a54ad8062e550af61a6f51d816d11891976525aeedc5267923665ea63967a388bde67dd2ad537b2c4d8fc3ffc738f05064d2fd26b0fbf7328eb806dfc0c0"; + sha512.doc = "28537fd0437da707dfaa5dde2fdc92d11d4de5bdf99e8fc7655cc60533d8ed5bd5b9e1d680f0269b2d60e498fee577a3b069957c6a5ba41fc55dfc1631297853"; + sha512.source = "b3050fd301f1a332622912a082dfffbb8ec4d172d4e7a808491f84b2ce7e494d16756a5ac7412cc5d1590d6a0f1ea5ec5a20bb7abb61b051e9f4a5179351d39d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.8"; + }; + powerdot = { + revision = 59272; + shortdesc = "A presentation class"; + stripPrefix = 0; + sha512.run = "c8ab1d65e2ac0695cac0e8a0a683fe712ba51e8aa028316901e1ab6e31b0be68348066fcf290b03321c0bacbf5c0b16265b28022ef38137a3d89bd25aac58dd7"; + sha512.doc = "99e602f4f96d6b805a8cb255d72f49c62e75543df2348471e31952a2588125724dfac07cd82865e9559220ef98a7b8847ab9ebd1ab803d5e155804f3669abe3b"; + sha512.source = "cc32d07b304d6214fca1244823154290c68131111c2144592fb1b4134c59dcd0ab110542bcb64e7462c6959bff1bc9d1e2706bea66b0bed2abfde9c80255af4a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + powerdot-fuberlin = { + revision = 52922; + shortdesc = "Powerdot, using the style of FU Berlin"; + stripPrefix = 0; + sha512.run = "73026a8e853bb9141ef3d8915768ca07a9f5caba4e810cf08ab2f41b8c6ee42071065e347ecdc1da070686765591d5cca02a372bd256fc1f9871547a7e1657a2"; + sha512.doc = "f2011b2d9362cdd1006714e71c3178b279cf764dc82f10ac31370d197de98a5131dec0c64bc17d4746a554396687e115e6880ae6940d902b34dbd91aa75ba308"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02a"; + }; + powerdot-tuliplab = { + revision = 47963; + shortdesc = "A style package for Powerdot to provide the design of TULIP Lab"; + stripPrefix = 0; + sha512.run = "91a8008d0675ea36676682d741ffad1e2f842ae37b47da628bade8391b2c775d7a756d31d5169e087ca0c4c0b0e958a2bb34d5143f905439e9572a6e72c4dbf2"; + sha512.doc = "5805d79f125ad94bc0818f52d31e14d786f4f032e03a89a0ec8ae69433d56654b6acc864563e3273664576a59880bf86de81756f76cf9b920a21ca8331ce117c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + ppmcheckpdf = { + revision = 69527; + shortdesc = "Convert PDF to PNG and compare PNG files after l3build"; + stripPrefix = 0; + sha512.run = "9c6612db37dafa8ab2771e42443f528806542b0c949b67adc861440bbcc85492a726524f543406daadde3d66d20bd32eb521cb96c719f948732c3a84e4702d7e"; + sha512.doc = "5bf1e2df2c702a3b447787cfdc77b243578f6c59ea4c46ac352628dc647e55da9837375d5d960e17d8baf3d1fe538abb81cd33f08e6b0f501159be8f84131ef5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024B"; + }; + ppr-prv = { + revision = 15878; + shortdesc = "Prosper preview"; + stripPrefix = 0; + sha512.run = "4bbd2404d9cb4bee9de81d463a6f4966e28409b07aa744e155f398f07e513dac4ad262fb3ac81717dafc9dd9abaed2789c08d0cbf0ce29137739886b2ad1dc74"; + sha512.doc = "b8228988551d32a5d5b3ddfc59dde6af1f48aece8f5c0f8889fbe479db6c962d77b687fb5593079796393a255350dfc90965fac07e241d4f0a48027927065e67"; + sha512.source = "cccb93596677625d323b0ceb6743fab15c4300f3baf09846054aae249608f61ab2a0a5bcfd9a7baa2b3a9ec86b2fb90aaee284608bb908229a918436c9acd772"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13c"; + }; + ppt-slides = { + revision = 69568; + shortdesc = "Good-looking slide decks a la PowerPoint (PPT)"; + stripPrefix = 0; + deps = [ + "crumbs" + "enumitem" + "hyperref" + "pagecolor" + "pgf" + "pgfopts" + "qrcode" + "seqsplit" + "tikzpagenodes" + "tools" + "varwidth" + "xcolor" + ]; + sha512.run = "9206d0b59cb501b129ffcca39639593317d2941ba1a982d036296800ce9486bebbf87d0194b43ca811365044a9dc8d27ad59169b2e187d229511db4b08b878f7"; + sha512.doc = "4565f7aadae38518e2e5f68fd9994670a62b492c2e57344cbeaff4a60d601bd95da23f0c5a74c98507f5023d87d24c73199bcda6fbf7cbae6719951debe7ec77"; + sha512.source = "2a7bf0d2b9229678565ccdce5c8d01fafd07cc5bc3b2000add41e027ecff7a38149bee9bb04d841dfe0e9993e91c0b9456bd5039c2479b775e4710169540bde0"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.3.2"; + }; + pracjourn = { + revision = 61719; + shortdesc = "Typeset articles for PracTeX"; + stripPrefix = 0; + sha512.run = "ad416756dca8491f2920d13b8374157bf1b49f236cf2ce1f66d6415c8de7282801645f5cedc31f2652304b1133f787a32ca4afa9f0e65a8bd5cbde956e54b82d"; + sha512.doc = "2cc3efac5b128bc6873034fc451124cbb9d6c4040d9d1c1053367aa99d57687eff642cc55a52d833732cfe88c5e139c67998020ae220a1657744140745ffec30"; + sha512.source = "819dcb9329ec553889d50646b7ac4ec52e2d82b329ad48d6b1dd391a7f575115c49c317497ebd32237c3925741cc6f7d497851bc5fd938d3f8e7341a05150d21"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.4n"; + }; + practicalreports = { + revision = 52312; + shortdesc = "Some macros for writing practical reports"; + stripPrefix = 0; + sha512.run = "71b180b863f5405c145fde98bcae5942ed186de52654dabda4ef1a859ea292e6c2e6f1a29fa4c4320f2f9a442699844d4268fddf0200281c0f1a7477b49d9f5b"; + sha512.doc = "48159a00f0c64c6a05e56d9c01b1e7c1fcc8342df3f762775c33377d45b0621e0e933db3097a5d489ddefeed1e0c155893e99ebf98c98fdd11df9b33e05e113c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.3"; + }; + precattl = { + revision = 63967; + shortdesc = "Prepare special catcodes from token list"; + stripPrefix = 0; + sha512.run = "35ce5ceaa53d3edc0fa92c8d9e5979255fa94bfa6818f8100b29f6fddda22f947c0fd2899efa5b4c72bb124fa5edd4f25b512460e7d370068eeff3d0ae0cfd2d"; + sha512.doc = "869b3ccb9aa47107b759fbaab3980168332d51eb07e4fc77f5fa31056f1260e5d89ed54e4a3329afeb828445dec17e43df899358e7880ebe364705006a3571ab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.0"; + }; + prelim2e = { + revision = 57000; + shortdesc = "Allows the marking of preliminary versions of a document"; + stripPrefix = 0; + sha512.run = "9f9fa79056db5be108c3b34b2ad61d964ba35fc1b6f7e9375c9e2ccbf66cd2028ef9e6689751c90c9ca236719ed1a001ae26753305fa3454bd88650cb12ae82c"; + sha512.doc = "196640bfbf73f3f269f5b27f024f4c1e677b61b6cc452d796f025196786c166f60bd2f41ad83ac6cc6b9eca56778a07b77af05fc68f05330f14c92cf391bbbc2"; + sha512.source = "1f2629a45183a026fe7bb3c83baa96ccf437846f902b5075fc210e47b6e3b99e81e5983bdcf617ba7bcdea60851154cb70bee3abe227420b5cc3c5a65e631973"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.00"; + }; + preprint = { + revision = 30447; + shortdesc = "A bundle of packages provided \"as is\""; + stripPrefix = 0; + sha512.run = "66ef40f1f9bc1ef3348923e781ad92dd0174b9c45e16c97662f30971a449dd74580391e1f23fed031a41995e65ff90a6785328de0372cea53e3ce946da469d60"; + sha512.doc = "b5e5fa40832249c5a0faa24c26e8b3a2a73036ef007dd3a61adb6a7989926c80e018fba52a66078c3d7b39e76901cc041ebcb9985ff29b53ade2c057abaf1376"; + sha512.source = "a7fe23d21dfee4071285ac0ca77a0b8936e8c149b804e9fc19e42cb5fa5eeac23ef3ed59e0433a965ec6203a1b031d2a76975248e624a6452e8fe6ea016be1c9"; + hasRunfiles = true; + license = [ "free" ]; + version = "2011"; + }; + prerex = { + revision = 54512; + shortdesc = "Interactive editor and macro support for prerequisite charts"; + stripPrefix = 0; + sha512.run = "4238f65f9ef42d218f092bc436fbbe95ddcbcee44a9032b74020a989696db3ce1481460162171f5feeb16f7507a41643443429afb8000d5bea0d7bf16e8dee96"; + sha512.doc = "af17b95e20638fecfe6d431cc320b6d3207dd739779636206899d7bf39c26018718521dabf76adab33db28f975e99d2b2dcd9b13a164dc24927d2017e947bdba"; + hasManpages = true; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + }; + present = { + revision = 50048; + shortdesc = "Presentations with Plain TeX"; + stripPrefix = 0; + sha512.run = "b22c0bb6803ebed5cd26aca4a9b55f2c7b506cc7e8910346a07437d60007310a3d2e3549040ffb2616df7f173279342f2334100aab14b589d0cc9e710ea89369"; + sha512.doc = "e43a5de9c4bcf9281416963a898e350ba0a0b2d1cad92cbc97d99e2ee9d25f8407a09f024ec5d03a43fd3eee58e1c40bf99ebfff13913bbf85465588b4cf9710"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2.1"; + }; + pressrelease = { + revision = 35147; + shortdesc = "A class for typesetting press releases"; + stripPrefix = 0; + sha512.run = "0f983d4f836c03ede4ed6bd8c2c41dc69ad75a28d9006ff7ab534c6e483e84e2151bfd93fefa43ca327fbeec14787b43205457a9cf1e733f8a4c3a7c561498fc"; + sha512.doc = "f107b506ba50ba8ed1b655f13049210ec4b90620348ac708afbba4d992470dd5aa8eabe84e2c0b926a55afce49e0a2cee28ecb3877550fe81099f7e5b40e9f40"; + sha512.source = "57e94723413ce6fbb1405dacce4af0ab9f7b5e5fc9d091fcf3054fe9505cfda885ebf00b3242ad341325d982d223438e1a2b6cd1f9286cbf5621feb5ae9b1a2f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + prettyref = { + revision = 15878; + shortdesc = "Make label references \"self-identify\""; + stripPrefix = 0; + sha512.run = "06e3ee942b9a30ff866abf8f6a46b6960321c0aaf2516ce48f587a55ffcb66f158887cbb9a476bc6323e90edd22766fec19d0cfcc2be8805eedd175fdf08ef42"; + sha512.doc = "abcd8cb7e7ab78511d953d95699060581844dda67b3489317057782d97388f7cba990735b395e9563e15fd1fee137a86e8198d2d545f437a2d105bfd3e95bc12"; + sha512.source = "d4793c0cec0e56a74d05c08547b68a83e5af33464b3c29a50189696c4d000ffff370422192a289a734e42cb4ef6bf2b95866523f3d6257961608e95f13dfb87e"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "3.0"; + }; + prettytok = { + revision = 66884; + shortdesc = "Pretty-print token lists"; + stripPrefix = 0; + deps = [ + "filecontentsdef" + "l3kernel" + "precattl" + ]; + sha512.run = "d08eacff02fadea3aeaabecd957c4e32881de942a3199bad1bf9e8fd80639ace3d819f9a7ef875c77fbc95eb8e79281ee7bd93ed0f113f9058aad592c70422c2"; + sha512.doc = "c0fbd26422e6399ccc4aed70e3e8dba976447161d008d440728fee07443caf35845c28acd86af860e9782a171e3e48a6e1e9a92c6ca44d8d7433c561408831f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + preview = { + revision = 69470; + shortdesc = "Extract bits of a LaTeX source for output"; + stripPrefix = 0; + sha512.run = "b7ed05c49ee852d23da47c4dab53e5116b1dcafe4ae404220e10fb9622ee6a593346ed7474a2d13c64d6d3782b5894f01758cd267bfd269f54778d2af46e8bb2"; + sha512.doc = "d0f797210790ee1ed8a80df8090f9273cdab22de2bbe8d72b609385ff2f0e2004dcaf2a91d0ebe3fcbf0693cf4f83b2a978f7b02744185ebc9c803205e88d7a0"; + sha512.source = "e2dde7963e5337c8d0b0f0fd2a7adee2f09e8bd3900d2d8d6cca7d612e3401fd6567a42141734e72e6cdb043aa1fd786ca0dcbf42a776880447f81d0ba4e8838"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "13.3"; + }; + prftree = { + revision = 54080; + shortdesc = "Macros for building proof trees"; + stripPrefix = 0; + sha512.run = "d73717b68ce3d12108a76a3850f3a09b9e1100969e79c745b7b08340175ea9599f10f928809fcdbf8ffbece3a60baa41d84dae182ace8b85ff511082f1db70d4"; + sha512.doc = "3b4d81db24039d15e76e0b237ecae6454d54b452b542e26ba8e0c45faf4f512124f0c1d1f5fef3ca6e6dcb3c7cc09eead3003a53a59a689e5e917583585c045e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + principia = { + revision = 66625; + shortdesc = "Notations for typesetting the \"Principia Mathematica\""; + stripPrefix = 0; + sha512.run = "ef88cb4dd25ec8cd3d50a7f152698e771c8b5f1fa18adad21d55bcd3a8088a38b09eb19873c6a3d1883101d27f318bc092c9c1219a2be76bbc07bfd2eee9711b"; + sha512.doc = "8dbf4e19a3c688278c52299731ca24fef83d08886a179f15cbc58038fe92d5ddd6e57bce1451a0af686593f98adf9ed3f52ef0b20cd68f65df52b8b6a2576dc3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + printlen = { + revision = 19847; + shortdesc = "Print lengths using specified units"; + stripPrefix = 0; + sha512.run = "bbb48c169f31a1f93024195056c323ce67afa1fcc00f309ef1b820dd40e0b86ca98d05f6cd4af66379682813a3807f24295a803fdc91d8b9f19972e1520d5eaf"; + sha512.doc = "25d00eec6c6bd069675cf7d980886b12444e41d18a83ed8e650923d839da8dca21dff65b110105458767b95c50b52a0143b2f7d88b6567ab3aa9953f4ec32a88"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + proba = { + revision = 15878; + shortdesc = "Shortcuts commands to symbols used in probability texts"; + stripPrefix = 0; + sha512.run = "33ef76474e7183c32b5f982347ed414ae7616484ff5a5d8564574220d3757688a3a47aad000c5b0a66a39dbbef20c789dd1445d872b025c274585248176c86e7"; + sha512.doc = "960887501b74d2c5e8a00c09464ff17dc9c733dd663fb35c32b34bd8b79b2a813536b6c0f9c5df4340dbd3adf1f30f569aac678e90d5f328e1c33130767fdf21"; + sha512.source = "d1305e797d8884f264a20df021b6b0619cee1df1aba8943f5533c2cd839e093420e43ebd1aa46282457a650569a883f4f11a9319f6b6612dbec5b99d29f37087"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + probsoln = { + revision = 44783; + shortdesc = "Generate problem sheets and their solution sheets"; + stripPrefix = 0; + sha512.run = "f0c63a327569410af7eefa9f87fed56a6a2db78b05133c417afd245958a7f10dac965270fe00e7fe5de6ddfcc4a1cec446df819728e76ad347c7664fcfe849ec"; + sha512.doc = "c79babc397260f03e2ad66556230966d1af97bbd5703c25cd09ff3aaad48b49d464672c501df047cf5226370b80588705c59212e75d0d1970337fd446d86e70e"; + sha512.source = "53ce8efe56938c3e16da53bb1255d86b1ae9cc546cbf4983156c098ac07f1e7c16a998a7dc53fd445efa9f42a6b82889e50c188aa57a72aa9186177fbd744f5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.05"; + }; + prociagssymp = { + revision = 63242; + shortdesc = "Macros for IAG symposium papers"; + stripPrefix = 0; + sha512.run = "f85716931c9fb7ac695db838d5e76160c485dac5f5f6a8f1c27cb7e375d78b385dce513103fdef30eca238fed78734661e192d712e74d948fbce0ccd209a1066"; + sha512.doc = "9d7e118fb0b704649176bb51f523d8a64ed11fb8e58cd1cafc7ffe3f4ad5005366cf518df9d7a4577b600524e19f089a4086d46f946668e82a1272b28c750f8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + prodint = { + revision = 21893; + shortdesc = "A font that provides the product integral symbol"; + stripPrefix = 0; + fontMaps = [ "Map prodint.map" ]; + sha512.run = "ab2b0ababfad124b38b018c7313df0114c36fed0dbbaa42de04295b09142740ef43f34c4c6ad926c97c1ce28521c1d87274486588609197c2178b631b4ee6876"; + sha512.doc = "addad035cb9e7b88d9da2bf161723db51897342872dd6c671695bb7bb0a6a4c7bac872ce40f31b22f5fdd84cc03994562a6f78f14d9203977d5b7c8d17130db8"; + hasRunfiles = true; + license = [ "ofl" ]; + }; + productbox = { + revision = 20886; + shortdesc = "Typeset a three-dimensional product box"; + stripPrefix = 0; + sha512.run = "9b243f6558dd449ddb9d9190ea53a71ed5b28d25f5fddc64eddb194144aa688e8d8e946c53f115d40813d0933b77d5d2c78023f24a1887d8eeb70e6c1ad0bc1d"; + sha512.doc = "73f8e1afbbfd9d4047120280e746ae1349225dfa84b98b288e23f477d2eb83310271610d6f4e40cdeb0d124788a97c1f8aaeb182a03cf2b1311e286f7299aa45"; + sha512.source = "064e591694d0c7f6c9c981ef4038175cdb1fc9a120daaf954051dc05bb6b602bc7fdbf961a25d5cc490380028564316adf5714a151e4606aca31d1f4bca09a54"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.1"; + }; + profcollege = { + revision = 69539; + shortdesc = "A LaTeX package for French maths teachers in college"; + stripPrefix = 0; + sha512.run = "37e807c9a37384e55c799156dd3af4124345b46d0a25af7e878d675701715bcd8bb5809d5bc9bee6e31377e3d8c16e43cf0f99c4b8f9d16df68c299c04e4ced9"; + sha512.doc = "666699cdcb971ec304455569fbf8138fabae13a0edda0af06d50eb15ba54b68f90a9d83d4062ef6641476192ea0187c66e666a2098245a49231d84e4a925e59e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.99-z-z"; + }; + proflabo = { + revision = 63147; + shortdesc = "Draw laboratory equipment"; + stripPrefix = 0; + sha512.run = "7270b65b821c303e84eec760126ad421dd65fbb5ff81309142690f8820c4865c3b1ff39b22b2cf700a10920b973e18085a1e73ea3f6c9d90da984d48a19bbca7"; + sha512.doc = "567ba9cd2d7eb724fd4ab20ec417f6804a795ff506bf8df582df9d7ace7ef2c5a8f95b46ff374391fed44918c6a536f6b14348ea3e0f3ff149fbe4fdafba9fa8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + proflycee = { + revision = 70513; + shortdesc = "A LaTeX package for French maths teachers in high school"; + stripPrefix = 0; + sha512.run = "e71feda42148721f3605c48271f51db60fc8826401c97372794b799d24183da186ac33d352534d216d642ba85a4a62606ae893ee11414144eca7aa9fddadd162"; + sha512.doc = "ecda097d113be20b48dcf933647d9e7d2adb6589b1d27058ff06f6a984b0b109fa383d406207119348388a50ce33521432960bac27f91dcb27561e09f0bd8e22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.02f"; + }; + profmaquette = { + revision = 70496; + shortdesc = "Use exercises in different types of documents"; + stripPrefix = 0; + sha512.run = "17223e35f30ac30274ab96d236903eed3343e8c8b7ce9915d82e430fecd36c7d8586fdbde6ab0f3e91694bbeedc9fe1e1c084fb8e47f08af53424452732e6f94"; + sha512.doc = "0c93574c3090cbe5959db0b3eb9ed46a45f5256bd8ac3915155b4e7fe44391dce10f6ef6d380da1340234c2fe341ab6bed3975743b4eab3794b4b48db5922b75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.88"; + }; + profsio = { + revision = 70211; + shortdesc = "Commands (with TikZ) to work with French \"BTS SIO\" maths themes"; + stripPrefix = 0; + sha512.run = "b4e8dcaf48a7b9a6e5cefa8b188e36d4f017afad476f6441e0718d89a497d2bdff06ea3380917a836309de371446602bdee51fe12f42aee0fcbe189b4c1d57cc"; + sha512.doc = "846703236b09ec68c49ec05c5fc817e109914d6f2449d652876371e92ea1e5c0ac98697886ca81d2bfe6bbc7deb6537f5d828140d380e459f706c9f902dd1502"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.1"; + }; + program = { + revision = 44214; + shortdesc = "Typesetting programs and algorithms"; + stripPrefix = 0; + sha512.run = "a9ef7d68ad86b42657681e2b798899b5c7c472c5e272a9098a1424a35a109dc4a946be54c4007db73edb861cb475f293e404cee9fa0dca8cdf086eb6c4790319"; + sha512.doc = "4213b5bc9cd6b2604bf1c667dd123729c0674d1c74338ebeb86b1551af14be3e24c4e94b4e5cc2c06a25ebf934d56eb6d3b5ce80e452798ea02fbb0ac6533580"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "3.3.14"; + }; + progress = { + revision = 19519; + shortdesc = "Creates an overview of a document's state"; + stripPrefix = 0; + sha512.run = "df21ec7e4adc36a420959550376fff5b8a55fb7dccc064476b2306226c1776fb2075994d9ae63bd5bde0b68571671bacadf9285f53bc9e639c2afd59e5b6814e"; + sha512.doc = "e88280bb1a93d34dd5597627d763d1b2a21a56990ede2e029246dac84f3bb22e05a08a9a94c0790a9c8a87698684816ace02149562785cf36f2b6af82f89c130"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + progressbar = { + revision = 33822; + shortdesc = "Visualize shares of total amounts in the form of a (progress-)bar"; + stripPrefix = 0; + sha512.run = "d12161aa891ea45cec2a4511c48a1c338de5acd512e426a24988b79b7d9d1734479a1cd93e3e8ee11da67858d97260b71ca35a3a7a3dbbcd2bae746221a7bafa"; + sha512.doc = "a60ee29da0517d6769e09f12af7b600284f32478aef1d28cdf167610c45bd87f841500c2bf718ff9b6678a171f3138f4a7a6ac45bd41500510f509e8e7067efd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0b-4"; + }; + projlib = { + revision = 70327; + shortdesc = "A collection of facilitative tools"; + stripPrefix = 0; + deps = [ "create-theorem" ]; + sha512.run = "180698941fa86735f83bb4d93886c2cd637aa7ac50103ba68d3369bcefcbe6200a377a9975e04db9f0e528a0b821bbd82a5fe6deb4e85832523798e1523fd976"; + sha512.doc = "362d152dd0c82a9807cba5b6fe49da6b4a8335af6b23f6958273e370140f3b48e1a52424cfd9c41736bf672f4552afb43f897a8624bdfc300e09db363d501dde"; + sha512.source = "0d943cd81f384da704841841fab42276b66db825258b4aaa0392ee651527960be60a80d87469a679ee7292a0096c5d438f4c76ad39154981b113cfd12e273d44"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + proof-at-the-end = { + revision = 69602; + shortdesc = "A package to move proofs to appendix"; + stripPrefix = 0; + sha512.run = "7859a8ab78c39680922e7131f2b95ca1b253b5e1252aa14fe219c3c7fe9c4357ab30d4b58a54e84c3188fab87de9cc14a23925dc1fc1563a7efec400481d572e"; + sha512.doc = "5c3e4eacadd2aafe86c231d44a340b2567ddcd9d9b737739c3b2e2ed69c0e14d6966174e3026cd10cf4ca4696af61cf305c25584e0df959e49f01b2d95a3f9ed"; + sha512.source = "088cefbdb746236e400b232079c54c6e8f73d8adf94f022c842f45d5bfe0e83cdcf8540c0dd51214c5538d6609dc0a0cec7fa3b5a2458a28eccd288249f4f9fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + proofread = { + revision = 61719; + shortdesc = "Commands for inserting annotations"; + stripPrefix = 0; + sha512.run = "79787978d7888ba127b9b72ea38f0f3e7ef9d427cf8e493120849cf7c2852ffe79b5fbf349160bac419be0725a9d79f33a00c13d6b3eded2cf0600b7d0994513"; + sha512.doc = "e33aa6e720a22bebe6f64d90b00bc4e01b0892ae66c5f9c4dc8758e6494fe2bbb9ba84df442471b9db652223fd3e7f40fae486f09c7500095f7a2d1cb2280b3a"; + sha512.source = "b1b334a3bc3dc61dad0eb071a1c5dc3595cb9231a3b7e50856bf0d5c50a4ecf188f5efbaf7a0065ad51341c2408cbf3d81a6e7c473bbd003289cca02d1962f46"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + prooftrees = { + revision = 67399; + shortdesc = "Forest-based proof trees (symbolic logic)"; + stripPrefix = 0; + sha512.run = "ee4feb832296a512e180b4d38e5989a87d6884c3c84ea2b224754201e42fe2fb6c4f68461a0cf3d3cda10b263c88c6da9e082572093f53ce2e8c62473d4707a5"; + sha512.doc = "67cbbd3068410bf152d54c2f25821b5672c33b68e76fc7ebe02f0df160cc658b20e072379035f090beb34a7d4d5ca21809965bd8e44a554e5ae65039a12f4850"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8_svn_9582"; + }; + properties = { + revision = 15878; + shortdesc = "Load properties from a file"; + stripPrefix = 0; + sha512.run = "3bde5cf132c9013bcbb0eef439e61725ea41a09720f98bb53f8bbf39d56d6cde34ed1613b001a86b40221a36233b1d5c226819c94b41d49211065e1477a0bd42"; + sha512.doc = "eff6b91e8fdd7b0a6b0526c7dd2243e32586a5ce12071130f388a911fa34cbac4681d4118b601b9eb979a272bf89b82f00f8ba509fa996521e8a2861f8e84a80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + proposal = { + revision = 40538; + shortdesc = "A set of LaTeX classes for preparing proposals for collaborative projects"; + stripPrefix = 0; + sha512.run = "d9a352995030efd57ecd46028147a6326ede0695545194a01846d4a3e2d29096ace9e6f69900766906f3ecfa05ce566ebd1c2c5f76a3b2b2646c1e0f865093ba"; + sha512.doc = "53c1d47f2f42c9ceed73f350c2aff9b229d6dc8dfde9e3fb8109971905c5d6430ca52d72551d540f5a1727a767d6cf485d8bca2489f301edfbf964490ecfb5a2"; + sha512.source = "39ec30b5c0d94a2beb6d83d796ed13ca95b5e0045edc8e7828f5528e44e9f24350fceef93ec2c3bf9cdbf3766d7ddb0b72d6e10a909a6fc92e393681d425d8b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + prosper = { + revision = 33033; + shortdesc = "LaTeX class for high quality slides"; + stripPrefix = 0; + sha512.run = "bf2285803a71b00c67a9e64ca5e51bdd880856338b0bf3e95bfb2ff2e78d5cdd0617424ed95918b5982d5befa71476b89567b2107eb0c206f9a9f53966a983b6"; + sha512.doc = "21593ccdc8231e37f0b2938d3978205ab3ed61f74a6e8a4b1dd2cf82da552bd920a7711c025964fdab5661207cbea1aee04244c93552e20d10df338c7dc5c138"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0h"; + }; + protex = { + revision = 41633; + shortdesc = "Literate programming package"; + stripPrefix = 0; + sha512.run = "be8ea34f282fdd739f72f9b33375bec3be5055bc953c7a441d769ac1e7568af9327ae6030f67a805188dbd485ee8223936921590ec86269e371da6d3ee353afe"; + sha512.doc = "95746823c32526fb5e2c9968749a7da2149d23c2ec9f1ced2a655a4fe54ad272bb414abd0be0d78775b0ac95e6440d9b6ead609de7615dcceb0186e4683e4138"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + protocol = { + revision = 25562; + shortdesc = "A class for minutes of meetings"; + stripPrefix = 0; + sha512.run = "e9555a25b0051592bd700df5b7335ad07eff024efd1efc4ef620fe7ad37866aa1edc8f354a7c772b3a298935bcffa9b5b2b49c2b0a14c868ae744cb9165bfd19"; + sha512.doc = "f047068c0b9176087cd56530c9b73d30bbffb0d4b958cefae39f1f3bc924fbe705e81b5c867735715566b674379d1731e1d58b123dbbda3686a2b84f42674338"; + sha512.source = "f41e90e822d9cffd941a9be8b918f5817c5757c2911a3c2162899d9e074390fc4500d8617e385f5edada4c2accf5a08421cab6192505721deefb4b1ceba136e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.13"; + }; + prtec = { + revision = 51919; + shortdesc = "A template for PRTEC conference papers"; + stripPrefix = 0; + sha512.run = "06e946526f194e36b55c91c46615c74a255411ff3de2fba005a672741830a5bfc162be122a7f03d00374917ab70dd789549a2976280db8c8106999ab7e0854e4"; + sha512.doc = "fb299846eca43fb054ff441c2eed6f87382cbb58419947092d04bfa99102e3db7a8395c9b974395b579f6b5700f55c2c730c162bcd19e5246fbc64b80acf5681"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.06"; + }; + przechlewski-book = { + revision = 23552; + shortdesc = "Examples from Przechlewski's LaTeX book"; + stripPrefix = 0; + sha512.run = "18b9546576957553b477a1c5a90e6780770f18d6aced92b17017c44770b6bfa9c3cf928500a9e56c6c67f45d375bc12ad8ebc97eb1589f3cf7b5b3ed2f7b55c6"; + sha512.doc = "0441621561c2c4208d083f84eaf47573de94248cc1aaf027061de636c1a65f35a307260eaf390257bd02acac34b42963f96030ee27c83650deb11234edec89bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ps2eps = { + revision = 62856; + shortdesc = "Produce Encapsulated PostScript from PostScript"; + sha512.run = "c43ba33d29d5b23ece2add44310b89036d5c4725ad76da1ed6e17bb93d0e7d103549f4a7e7807f89cdffcb19a95e0df2fe7851989b8a3b691aacfebfd41044ae"; + sha512.doc = "0194c8634c5d31cf441fb3d7fa171d85358db9831c03cc77bac37272ddfed81d8296e9b05eb4daa7c8012f3bad1a01625aeacb2232989969551e01a92912c409"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.70"; + }; + ps2eps.binfiles = [ + "bbox" + "ps2eps" ]; - formats = [ - { - name = "euptex"; - engine = "euptex"; - options = "*euptex.ini"; - patterns = [ "language.def" ]; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "uptex-base" "uptex-fonts" "etex" "ptex-base" ]; - } - { - name = "uptex"; - engine = "euptex"; - options = "uptex.ini"; - fmttriggers = [ "cm" "hyphen-base" "knuth-lib" "plain" "uptex-base" "uptex-fonts" ]; - } + ps2pk = { + revision = 66186; + shortdesc = "Generate a PK font from an Adobe Type 1 font"; + sha512.run = "764e6dc186bc0e9c1b5ee0a3c5a256e9d42d81645477bba49c59baafec55bc9af63124f77227ca5b6516bf3fa2bdb8d201af813cff09ac9da4574e70351922ce"; + sha512.doc = "032c5ab3442cf668d6b40851bdf710b4e4b9eca701bf04c87359c579a5fce52bedea15ee5dc9e4c5967fcc0e3b84805450987b73c204e0df4708b65a7cf74c13"; + hasManpages = true; + license = [ "free" ]; + }; + ps2pk.binfiles = [ + "mag" + "pfb2pfa" + "pk2bm" + "ps2pk" ]; - fontMaps = [ - "KanjiMap uptex-@jaEmbed@@jaVariant@.map" - "KanjiMap uptex-ko-@koEmbed@.map" - "KanjiMap uptex-sc-@scEmbed@.map" - "KanjiMap uptex-tc-@tcEmbed@.map" + psbao = { + revision = 55013; + shortdesc = "Draw Bao diagrams"; + stripPrefix = 0; + sha512.run = "eb391c615ed622d928725b3a227ce0141e75ccb49a0e2e915d41bf12e343a9622d9032c4c3d6935cdf6e36c6afb4d3138d5acf17febe4691fa6e5c34da01c2b8"; + sha512.doc = "8fedc9f84eb5f640ff9644c933b5eea71c1d4f9e03f861ca7e8820a582cb31f38e3a9e4625fb1b28ff189f02b3546734eb71e1491f63d4508d3d7b5f7ac635f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pseudo = { + revision = 66638; + shortdesc = "Straightforward pseudocode"; + stripPrefix = 0; + sha512.run = "223e02f58f4b1cb137241a273cc6aec3c2923ea49bc74fcc220df449d01e6b3009ac6303a99a5d368ab3cee62d6542707feddeee30f527c2be1ad8771244ca85"; + sha512.doc = "573b023b0d9604ecc98b774f77016fcb971c7c5dd508fd272169ad5d3da9f5273d78c07801257cad5c1461de2ee425f036afdbc827ae343e9ae151a63c86db73"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2.3"; + }; + pseudocode = { + revision = 54080; + shortdesc = "LaTeX environment for specifying algorithms in a natural way"; + stripPrefix = 0; + sha512.run = "8335336bb46c0bc362bb10b6bed547d95230a29ba8144549476ec984323bc79475b11afef91409761e4f651dc4c28669639106d14c4dcceef7f90290e5f77b12"; + sha512.doc = "ad53ed572d7d79caa21baa8c34482ca6032369824967e2966479e85a95d140a6477acf0e69ca7bc2d6dda6f8b161253b1afd43cc53ce4d44641dda64d82abe13"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + psfrag = { + revision = 15878; + shortdesc = "Replace strings in encapsulated PostScript figures"; + stripPrefix = 0; + sha512.run = "71bf5c02e7a8a17eaa891f15c88777dcbbfc3ecf8b4a72dea49683f061bc86427ab813dbac5f5b8ab4742edcb92cd32d510675a80b0b3cdff2dc2cf127ee89fa"; + sha512.doc = "072210deb2635a2032f6ac2d100ef72aa4471f69dec03fbb25fbb0d78b89aa2df0972b244d4335e8ed16e1a5f0cb8e04d22ad44dd5740fda59f9a4e5300befaa"; + sha512.source = "fd02b807b47f3818545e48825ddb11d188e9e3fa384b0f3412bb09051daedf73c2587a74d70aeda472047c1eac039252a25cacbf74a3c8df76be13a2644372de"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.04"; + }; + psfrag-italian = { + revision = 15878; + shortdesc = "PSfrag documentation in Italian"; + stripPrefix = 0; + sha512.run = "4d26f0191ffbbe7fa6a9aae1ece6e72739925b59a1a1db5ad3cbe8f2b3ece92ec8265f008e91fcabfe2e04863300db833eff3104486e9c33985ce5c7f8dd7543"; + sha512.doc = "7a513ff265d259adfbaee9ffb47856602004f19679dad1316f04d36848f2e22bff8c3164ba9b045e7a4a57df76c2ad17b071a9cac68d4b92cff57a29f1e99f55"; + license = [ "gpl1Only" ]; + }; + psfragx = { + revision = 26243; + shortdesc = "A psfrag eXtension"; + stripPrefix = 0; + sha512.run = "b02063b8c1df58133b951eb10763d3b9099376a473dc980fef801ab565326ac1c5539be3ee94ee5c79837c1e6265cf41d6554f66e8900df2663d5d7e727e0df6"; + sha512.doc = "863df965aa6abb99c115b06ed7d1b1660345e9bca0d0f5d62b6a7ffb55391688a92114edae7bd28ef8b715515c8bcf3c5b4fb4970cc1b6bd9cc068b09595cb10"; + sha512.source = "f38ac5c21c7f366e952e71199321865a70376d1dfbcbed2ac993fa01f412f185a09725b9e6b1808167a5cf55d253b461a43a2f126cedd7d469645b7740702938"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + psgo = { + revision = 15878; + shortdesc = "Typeset go diagrams with PSTricks"; + stripPrefix = 0; + sha512.run = "75791ac8c340cd72139c50b2e2a05f6001edf2b79bbb9fcb4c9118f2acbc67643469c8f6da34122bf001e85af60b5b0050bf3c7b5bcce7c393e7930e3cfe7eaf"; + sha512.doc = "9d061c884f76eb87e86cb441ebb693a9c64daca024c35dd631d660f3d1f8b1541c40e285d5f4115b36e2b02b7640ea7be70f4527e7ae92c6d6173625b215b7cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.17"; + }; + psizzl = { + revision = 69742; + shortdesc = "A TeX format for physics papers"; + stripPrefix = 0; + sha512.run = "7dce0f9b7781ca89ba93c1607acc0b440ffcf482a1927d0709aa0e914531e250a4f1ef24b64ee63008351c7b206fc092f9211966fb92bb6e0214f296da872677"; + sha512.doc = "c337900dc35cf0e02667d0eed6ac28aafc5336fa39bd7cd90dcf910ab27ebb741abe0ad7b0182fa8018c945cf9d4951db062d1ecfa9a9758e6e9940a0af0b0b3"; + sha512.source = "7294b45fe17bcea21243b7c719d151a6fd87fef9e641b5a3a193e355df660f7adf5e52dcc22ad7b8998f8d882973e32bc3d9af57b33223c39ae0079e1829fbb9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.35"; + }; + pslatex = { + revision = 67469; + shortdesc = "Use PostScript fonts by default"; + stripPrefix = 0; + sha512.run = "b08cbb8ed7a4b89b9018b5b31bbaaf8ae9c520ffbf47b54d239b30ca67a26e138206c1f2f9951f8cc5da49357c0eca9a3df9eda4f02119355cf2be0a85c3a825"; + sha512.source = "9943941967009a9d3cac0841318c6a31818f7496ded89fe6cf4d6ee8718913d0145497443762d55e4f80a1fee496b5170ff4b6c13266f04e6ce4c5bc2bdb5728"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + psnfss = { + revision = 54694; + shortdesc = "Font support for common PostScript fonts"; + stripPrefix = 0; + deps = [ + "graphics" + "symbol" + "zapfding" + ]; + fontMaps = [ + "Map charter.map" + "Map fpls.map" + "Map pazo.map" + "Map utopia.map" + ]; + sha512.run = "f7d1acebcd1d32a691221f396220358f3bb15dff2e2cebec4b537b1b790b68d8ce1164711983a52b4f04d6e470df2e3e5fec63bb1d3bf39fe205d5f0351299de"; + sha512.doc = "d1c14edccdf43ed2c786394bc04e9fd683b683532a9dc18d592f918ee8899234d23feb738128aa1418f441288cdbf0c6de832f8c4d98023926baeace36365a1d"; + sha512.source = "6862a7e74be6a575996e6f45a2236db810f1c030d3a0c53b2b97c2e803fc7e29010108e4597d637b8abedd63b1f956da268f62ca2c609accaa4d035be7bfd8ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "9.3"; + }; + pspicture = { + revision = 15878; + shortdesc = "PostScript picture support"; + stripPrefix = 0; + sha512.run = "139d160fa67dbb7cc932fc75dba80dd46a55a1dd5973b27a6a5dd38a6035cb367441b178acaf3c11859ad60103283774ee5e2623a083a0336d5c2ff74a7b82fd"; + sha512.doc = "a743397a0d48c587b60db5f1dcf9e1c22f67ba15dbbce241a2584c95456b3546aebdfaebec9fcfb3dedcac65f7f053ec52cb479d726e5e3fbfe042efcf1ad702"; + sha512.source = "af1deb00966a7d4d1d68e156dd5fbc60e95f60a65a942f1bda1acbd579b932e0c81875386bd3eb1945fab211cc9ad5607c3e21e5d240048d775c28574cb754ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pst-2dplot = { + revision = 15878; + shortdesc = "A PSTricks package for drawing 2D curves"; + stripPrefix = 0; + sha512.run = "3109c2709323906ec39bd1be6e7c9151b7b07f9d2dafd5f7af61d3facd3e37ae35bd8bd923968102fc702f35fa4a903e9a50d3a7a85a1c088017aababd16d969"; + sha512.doc = "f46a0c8c94900d180fac92e7b393672d010388fe80867f01125cdc7c486eff97ee36cab1aeeeb224b9ab80739c2ddd9e89b84926948acaa8b2b0ae08457ac0ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + pst-3d = { + revision = 17257; + shortdesc = "A PSTricks package for tilting and other pseudo-3D tricks"; + stripPrefix = 0; + sha512.run = "dfd8a2b79d308cf4ae3bdcd438b967446f8601509fd4afb3f090d946df0cc2d66e9b7071ce33e51ad4cd53b7e62dbc02d861d46a302bfe2c901d1d8c82ab0649"; + sha512.doc = "e8355b936fbc1685edf205e88f2793ab298aac4e4c06de10dddbe1587b5401ba8cc4d2a01dbad3ad56da5eddb27bd6049a41e6da8c139727d36fcc94d93ac554"; + sha512.source = "fc50cff8bb86571d3827a03f3c64cb62a9fdab25e2595ccf9465e4ad39539ebc0a55da92519ef203da65da3a44e01ee28b39ef27a5af24d26463b215f96be313"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + pst-3dplot = { + revision = 68727; + shortdesc = "Draw 3D objects in parallel projection, using PSTricks"; + stripPrefix = 0; + sha512.run = "1fefbd8b34e49b7cf6bc35bb761ed9aa49d062d81f280936b86b58f123cf6023e038308f066a2f9e62c2fbd4181d3dad781525f289a9f5e58acefcdd344fd69e"; + sha512.doc = "7e15351efd6190ff52e10287a7797a6ef0944561e381793290fbb56f6f2f174447343d10c9cfbfd0f61a62755ea0b3eb7adf52dfacf1b0b7ef2ec159f393b4f0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.09"; + }; + pst-abspos = { + revision = 15878; + shortdesc = "Put objects at an absolute position"; + stripPrefix = 0; + sha512.run = "b56bed1fedb14fe7cc455fe4e87ec51085e8e09132ff5dbe52083701cdd0d63f2e6dac2ab55838fbefd8e7de9666d0239e9fba712573a51dce2804d31ab140c6"; + sha512.doc = "77754a1c27c083f60c2836483a60bfb6b4c826783d5acd16b1eaa9b7fe7aba8820886442ed28a5b334929a3f21f0f1b4487c7403f8dbfc3ad3cfc08407e35229"; + sha512.source = "faf4f7e2b94bd66d19be75c307c8a6b20a2c779a8e6783096b41e7b4da66ab07f7ecbaaedfa668c09089bea9c2c79af4cbc12aeafe949cb729c589989206cd0c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + pst-am = { + revision = 19591; + shortdesc = "Simulation of modulation and demodulation"; + stripPrefix = 0; + sha512.run = "a5f466dacd393ed7243fa2cb43aed0a5bb8469a51aa82fac4b53c47a474a1d9758db4d7a001cee49716714049499339567cb62a66f2731ffc7646fecc15c7784"; + sha512.doc = "edea0ddc3f5472a86706d1823fe78459d2908724daf2b9bfe44b41e749f2b41483000602817a45a5e41869f86d4034ea52640bdffa334af54e4964510768152e"; + sha512.source = "fca7f1f7769f839632eec75b3baa864b60f9ab3c1ff9cc08437fad4086cf9a063f283568163d1ebe3e5a2c87b06bbae1b11e5be07a8eca5030cccfc68392b40f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-antiprism = { + revision = 46643; + shortdesc = "A PSTricks related package which draws an antiprism"; + stripPrefix = 0; + sha512.run = "dc93e3a8a040a2712f701c2fa89924c45749824d20ad814a9f04aa423e15caed3a457b762dc7d30cf5c9e3afea378efc303851af919831c0969cde50b9adea57"; + sha512.doc = "df528e5693cbbdca80a88d02e2b8487b70c188109825da66c9d9042056c6ba62e361fcba2ac747d69a08a4c8d78f27534640ce55c583289c3f12c2eb4c57d861"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-arrow = { + revision = 61069; + shortdesc = "Special arrows for PSTricks"; + stripPrefix = 0; + sha512.run = "3e928de0ec8f1c9dd80143e35e3dcc9d51ff106fa12193798f5d2a77f49b3049f042273102b3dfd1460de68814ab32a3aa4eeb14daad846d729e7f6ddcdaa5fc"; + sha512.doc = "19878f237410d2db75096be382efef2ab1c5d169b4bf48b393956bf13a697d2c96b0da528c1044ee9b36ca8231ba4ad2b478bee24402033ebbcdf2778e4128a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.05"; + }; + pst-asr = { + revision = 22138; + shortdesc = "Typeset autosegmental representations for linguists"; + stripPrefix = 0; + sha512.run = "c5ae73e1553b564a90d2c77fa434c360fe2858657fb5ff4c6ce1cbb46838fea9c0dd7a8d92e2048a8ed0d748839518b461b0727db3b7937c4e39edf85277e081"; + sha512.doc = "560ea68a6f02dc3b79c64554652a9efd52c7fb00d07e7ffbc9b92ffab251854e07e87642028b94fc42bf7d01fedd82bfd50913f9c42d1c37d76c1eaba761ed00"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + pst-bar = { + revision = 64331; + shortdesc = "Produces bar charts using PSTricks"; + stripPrefix = 0; + sha512.run = "a4ca273cf21aade2adb15a8fae3d7aae9b24f4cc4a81002cfe0471aed7b5cc7be516aae26151a8bd2d98171f5524686105f3576df8cb0ecc6e16d690907f7156"; + sha512.doc = "7b090d51bd669c3b252f002855d60f008054f12966d01cffdf6163e4360fd88fc064459d42d756737b1a915d87ffb8f789900be480eb7be1f3925389e2873f58"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.93"; + }; + pst-barcode = { + revision = 64182; + shortdesc = "Print barcodes using PostScript"; + stripPrefix = 0; + sha512.run = "c79fc6d5ff483278210e654a3b325a6acd2492d6cdcb8958d5e4802bcec6aa119887bacb82a91e312c39ff5ac12a62d28c04528439684bf000dc1f1003ce8651"; + sha512.doc = "ff4d449709479f9e1218a2fa3ba642660b09556c96cc94a1b65984ae0723e8b730d09634053feb256bf196aa183e4f8a46ed3efdd9d91dc5a03b4a6d4d59c0f1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.19"; + }; + pst-bezier = { + revision = 41981; + shortdesc = "Draw Bezier curves"; + stripPrefix = 0; + sha512.run = "e2277175eb2087e13ee0a1100d602730514e1e5bb023d4db7163ba4113f69c9fedf74ff50369298ed970b89425b824cb8619e2cac4be463589edbfd747ccc6c5"; + sha512.doc = "5126769fb89900916a52135af0ba459651083b01db466471cc984b6dc837686cd780bda7c3295b6afe9a7bc85180b3acd95c015084d49f46049adb2fd84b5748"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + pst-blur = { + revision = 15878; + shortdesc = "PSTricks package for \"blurred\" shadows"; + stripPrefix = 0; + sha512.run = "5726819bfa08fbf6e9b5a2c6f93008e468b759a825fef04739a47e756d4b12a99aef604d64618081b1788b5fed9247c75dd3580a899771b148306880341f0444"; + sha512.doc = "5e483141d8f5ad03421d9c7c5feef8baaa3b522385d307022dd617af0889bf57d1cf603a1d519a5d17d8dc918441ca3310d766e4dddb7ed6b8155985186b5e7f"; + sha512.source = "2e7038a248c307c50d29a6171d1b52bc8d6fed76885ebc24480a3f679918fbdbf1e538f783d0f9e3792a3530e51e60da4873c5da0878e66672dbe13fc9b950d6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + pst-bspline = { + revision = 40685; + shortdesc = "Draw cubic Bspline curves and interpolations"; + stripPrefix = 0; + sha512.run = "1f39a02cb0d56b4fcb8ed3a3768b59a9d14ac14769783dfde7108d86a8c6d68d79342df501c60efcfb8aca4c7f97fffecfe4cd0ea0f4fb76e528f696180b6dfc"; + sha512.doc = "1f2b8c3f5d85db4215cb11fcd663c33fc1e34e764432a2285f879ec8bf7acb9d09368c6a9910618ee99c3305d701aff5e5d401c227d0c1db9028be3690b5216c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.62"; + }; + pst-calculate = { + revision = 49817; + shortdesc = "Support for floating point operations at LaTeX level"; + stripPrefix = 0; + sha512.run = "b40a89c1e0152459e9dde468379b1a848955d40b9d9e05223544347d6057affac092a503e6307904e485a81de781eb9455abd948bef7f343359d44abf37f93ea"; + sha512.doc = "d6e936e7bc53ae3296812b1d33ecf6ae890599cbb9fa6afac719d8ebcca4516772ff6c18f27e8d825ab959d430cbfe8876b2bb97e480bf6464690b28cedfc2bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-calendar = { + revision = 60480; + shortdesc = "Plot calendars in \"fancy\" ways"; + stripPrefix = 0; + sha512.run = "0e9bece02b9deaf677ef2d6f02999d3b4b7bc7028ec768fb57e69fcd3c1c26d1ddee1c261cbdce8eb8cb18c647dcdbca1448860d6139f01e17f234b3a8a0e793"; + sha512.doc = "07796be64b64e6c8eff2797d145933bb45c0e3ec0ba50e6fb41974d2dcabce09f2f781f989a62a5c5fe6295af3ddbce10ab811c2abeafe2d8b56b7a603f27412"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.48"; + }; + pst-cie = { + revision = 60959; + shortdesc = "CIE color space"; + stripPrefix = 0; + sha512.run = "fcddc7d04c259132a45fb30850c02b613ca71e9c3df26729166b142e953e997d3c618d835be472d98c0aa7a50caeaebaa5631cfa64cf132aa35c2d29be59c63b"; + sha512.doc = "431f1d8306bb623834ef5f5d732e8fc413947b5f3d31d07874fc9d7ad0897046a4cf919e6e2e520b23eb9f268cfbdaf547dfe7e8e72d44ba92ba9cf3b7a4fabc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.06b"; + }; + pst-circ = { + revision = 60464; + shortdesc = "PSTricks package for drawing electric circuits"; + stripPrefix = 0; + sha512.run = "2335b728be1227d4631e09c3994e9e1f559839e871e29854e700ed74b9031a7d2ea58cc744d20b459c99f1954b7faaecc2ced19c449e98b97fe26b2fa71755da"; + sha512.doc = "c2eb37603cbba656eb1282130e112d0c3bbb49d4b3703c3d9b19d0d250d272d31fd19d2790c97cf8cd5226b0735e8466eab824a35754f41d7584208e606a6ce7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.19"; + }; + pst-coil = { + revision = 62977; + shortdesc = "A PSTricks package for coils, etc"; + stripPrefix = 0; + sha512.run = "bf6e1671f6c1d6d7fe348958042892a10168cf96e8626e4d15cb34089110677ede3535abf96e76847b6ad8d3ca910030e975e7b52fe8b168136c98a05f6915f3"; + sha512.doc = "84fb627c91d56e1553325c8d87981ba6ab1001b8f0163b45bf1a7352026853c8d086350191a4f98c01bd6d59bb5f4b638275c38b45eae6d360c8dbba1a5b8867"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.07"; + }; + pst-contourplot = { + revision = 48230; + shortdesc = "Draw implicit functions using the \"marching squares\" algorithm"; + stripPrefix = 0; + sha512.run = "9930e77c3ac5adcd9e3f14c4785a52a79fe5068b5ee239d1c9f052181657d2c5f16b082a8900b9571094ec83b7326be28a567dd39876332e5f68aa6b1c1b7083"; + sha512.doc = "1a52121a22c829c9c5423810f529cbc4cf3e49a805ec4fae123dd795dfc8fc87bebb13653a9d173ca962bba716c8428effa4410e48085af4bb208331e4e89bce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + pst-cox = { + revision = 15878; + shortdesc = "Drawing regular complex polytopes with PSTricks"; + stripPrefix = 0; + sha512.run = "b7e0e787e5a6d825383a5c06d7aba34e5d7cb12258925b7f0384ec069e873a6652e421f963147648903f6bf063d9592089adee5b043f24dac10e30dc344f0608"; + sha512.doc = "1de830f83253ef11f092c9ec0e698ff36971c7b6d4237c8eb9f6712bde051b9302d657faa21bf56d34287c838453c611ef1a7c70c09e55ea647bad48ca216e1e"; + hasRunfiles = true; + license = [ "lgpl2" ]; + version = "0.98_Beta"; + }; + pst-dart = { + revision = 60476; + shortdesc = "Plotting dart boards"; + stripPrefix = 0; + sha512.run = "f8d2665eefeb791672864ae5fe17aebe6b83ca776a6170c46672cce02ab639fcffb011afd922b1dc9abb98a70d6f81cf4b00321e2b69542d532c3c72341e28ac"; + sha512.doc = "a0c747f8736607f920174b2a80ab07563d1cc7114d6e2e751f7e2d9835eed9f656f4b57b7b9061ad8501f4d6ba26c1fad37825b3819be1060782050ece94199f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + pst-dbicons = { + revision = 17556; + shortdesc = "Support for drawing ER diagrams"; + stripPrefix = 0; + sha512.run = "a09ba8f72ecc1b58298b436c47d3922b494337179bdf789468aa3a2236a5e2bd0f9ddd9b491c1a2eb181d08090cc1c6d8c4a0e9e56cb8619a65ce168d7efd355"; + sha512.doc = "fc0a74b0ca228ff598f3f88840ad1b87654cd7205afb757e6eb6d98abb0cd56cea0ac3ad7b3464a9a5b09d3d4f3a8489228b19c78edc8ceeb8b10f5d40e18540"; + sha512.source = "ad710329d577b7da464028bc0abe684d987a601b6ea68cbbbeafbc6135c3ade2ab124026ba0e1d714984251f800028ffd018863c9bb51aa8fae4b5b7ebff02f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.16"; + }; + pst-diffraction = { + revision = 62977; + shortdesc = "Print diffraction patterns from various apertures"; + stripPrefix = 0; + sha512.run = "15db0252472e17f5d4d702d98961babecacaf7753c15ff8e615199f868605e133188c996756cd6cb5b379616a494454dadeef36678709eae8128b0c69623f417"; + sha512.doc = "a90ff70c942ccf4526ad82b83c0666db05b3aecec3e3b00fc572a7aeeceaf6487407b178e00b929c6d3402752d0b96d345735c5731ce2046fabb156df2703c07"; + sha512.source = "b5df7c25649efb0fb2143428e7a67f3abffe9ace683c738a45e38a2c1714cbab6fbf009decefd829fd5f17c1c3cfc4859ee9abc3d428f110937f94f4bfa44070"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.03"; + }; + pst-electricfield = { + revision = 29803; + shortdesc = "Draw electric field and equipotential lines with PSTricks"; + stripPrefix = 0; + sha512.run = "db9f7474d8290640d960f411574b6dad9f9b705eaf68644e001ebfc5050328673f0c1c31f925c6a2cd2279b9bb7ff89cf8d21e71a99e4b937137af404d046df0"; + sha512.doc = "9d89a2818a56bed9e3cda9069f91cb49beb0182e0b24474051bb28c4299439a7b5477d09fa1caf23b855226d4d4441e48c9fba4a4dd1cd5eaf044a608876e5ae"; + sha512.source = "89d6b2314db2840f70d99f2f0e66a875b47cc2e653bbd28c80a71eaf6f7d269e647e84b5bbf5ab7349d8a45412b824f9ae7d0c4ce9c4703f82258418b82e8867"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.14"; + }; + pst-eps = { + revision = 15878; + shortdesc = "Create EPS files from PSTricks figures"; + stripPrefix = 0; + sha512.run = "90be1124bd22958b0a9cbb45a3b76513e514131c416c98d7f70ca101e7841980c33bd8380e888054cedb873143aad168b0dc25918d9e241f763b9be3ea1a76d6"; + sha512.doc = "70542680c550bc11bef851cfcd12010e17f35dd75adfa390ffadc7b920c2b357594ca514fcdeaafcf1bfcf1b9e622b23c680adbc64ae4787fa96ff94f9a62add"; + sha512.source = "97e2adee4ce93de77d4d46946795565dfa0e0da188fd686bf96917b1220661510c1777fb7d025ac6dfca816bb8575487d45b180e4e35cade21353dcf4a8e5540"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pst-eucl = { + revision = 66924; + shortdesc = "Euclidian geometry with PSTricks"; + stripPrefix = 0; + sha512.run = "9310a2ce965b8cf9b03aff8c505515cbe386e12fc5973a4d8f26bcf2541a856605c8f14849baf649b1d1c24219dd4fec6ea5375ea43e8ff533171dde4e7d5ea7"; + sha512.doc = "1054740975d1be6100ca269221925af22fd1760a5f88ad942be398a889f59209da79e31c53c702a02fe639d218d80820c3f1d1033349c283e9fb6e05c7e7643e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.77"; + }; + pst-eucl-translation-bg = { + revision = 19296; + shortdesc = "Bulgarian translation of the pst-eucl documentation"; + stripPrefix = 0; + sha512.run = "ba2a7a76db77f4db3a548654e53d587b8f5b3dab9fef56b1f8c2640bcace64237e0bea5129025a07a490a2660ccd019fc5e83e3db504c6cd30b12b19df755f8d"; + sha512.doc = "9f6d0153e79a205d0fce5b289fa43317ded0b70abc06139a503b98199584e8cb12b083c8235b6b53ff2a80cf249a4a43cefd3e0b39a9a406c62c1e684bcb35eb"; + license = [ "lppl13c" ]; + version = "1.3.2"; + }; + pst-exa = { + revision = 45289; + shortdesc = "Typeset PSTricks examples, with code"; + stripPrefix = 0; + sha512.run = "af3bf68bf2401e0bd7023762748180bbedae1a34fa749b02cccd6b498f1f7ed0ca0e929e1b290f9b4f56b7f30718cc602d54b348e23f73c4cfb4d72ea22ffa4c"; + sha512.doc = "9f0310ad130ad4693575e33bb2f2deb795a8eb4cc6b3f5fa946095d979ad8a1a348feca0ee5421b4831fd16a1de23608013b69d027b0dd37f782113e7de868bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.06"; + }; + pst-feyn = { + revision = 48781; + shortdesc = "Draw graphical elements for Feynman diagrams"; + stripPrefix = 0; + sha512.run = "c1ac123bac3f92fd92321387be28f519963ab196fde7ead8ed6b4c93ff9fe5cdf07bfee65bef67b9cd70d020adfa99c72592df9be376d69c5dadcb8bd0d6963b"; + sha512.doc = "e30fc57ace8fb4f0c36fd1a07415e894abe6840592a9a62b9e45c0663281a79532387f5d37136e9cb5e7b27f4c0d7722e6d1a9779e1a57a2fddbd8d0324d1424"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + pst-fill = { + revision = 60671; + shortdesc = "Fill or tile areas with PSTricks"; + stripPrefix = 0; + sha512.run = "5fa4ae2e862a9297073bf0559dc46d44109d1153571eb8538650410c96f5c43a9a8c85a379690820f63a5198ac1983fdeb514bf4b1342349352f1a16ef3ee375"; + sha512.doc = "ad51d3aba8d9ee19b4a53081a5956e8cf26f2673faf521af088076c6a356e321ca2fb9a0b504e61529c5a2ae49480b3918bd12235a66ad5c45035ce92e2eae92"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-fit = { + revision = 45109; + shortdesc = "Macros for curve fitting"; + stripPrefix = 0; + sha512.run = "ede8c3503963f44d65caf46975cebdad296576742a771243914b49c6d802deb2f24e816dde7fd9a4bea7fa0c39965693575676ebeb648da099d88ee50bdacb8b"; + sha512.doc = "c8619c7c98cd42884637de98c88d916e18db273371fd64090d5e9789570153b2508f0adb90fbec9c5184f6ef1ab24559b04daccf8dae7c5f65453044b9bfb73e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-flags = { + revision = 65501; + shortdesc = "Draw flags of countries using PSTricks"; + stripPrefix = 0; + sha512.run = "142a1d78f1423474a935bcc977964eeec310f0e8d8037149f4f5fbf691789f0a9f2986630f629cacf319e34ee640902556b0b59145ef2a763006618c65e21f49"; + sha512.doc = "4c8bed4fa6f527fd5e0262692cf4acfd52d36bfe8461acb97615c127ab54336ada7a274ed9e5a7a75d26cf764c2f63734aa75d5bc45ec833f3b77b6179fa74fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + pst-fr3d = { + revision = 15878; + shortdesc = "Draw 3-dimensional framed boxes using PSTricks"; + stripPrefix = 0; + sha512.run = "ccd418ac7ac5ee1885cd2b7008e867c08cc0fc13fa97e264377446d301cef1caa82b8552731a4c7d3131f0e2ddaa0267276d5b1726998a0be2f149ac67bbffcd"; + sha512.doc = "48c559c27999b06d63ab5c33c9779d0902e05c80c51ba9225f0def724e02892557deda44add976bd5fb73403bbc2615854ef9ea398b830357f0fa5be12702e74"; + sha512.source = "7fde5941ebf78da6f5142d07963aba36f2c298e46c2125f5ec210830f5f3694b3b1a8bd4b342b6065fdefcce1e5807321f379d030b0950d3ca5dcad30ed2ae3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + pst-fractal = { + revision = 64714; + shortdesc = "Draw fractal sets using PSTricks"; + stripPrefix = 0; + sha512.run = "c52e3684398956e0cb1c79c9d1fc145e3b012d011d60bae1a756686529cff076331bb1e8d1895fc2dc46fbda8616a1ecf5c30991778b6041cd40e79fcad32f25"; + sha512.doc = "657b15f4342764d64aa54c1bf8a86be16ff859c7810e86f85db0b5c5a32064b1caf57944cea09a267f7c5bebad9db7ffdbce5d33a57c65045dab7f3c1d5eecd1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12"; + }; + pst-fun = { + revision = 17909; + shortdesc = "Draw \"funny\" objects with PSTricks"; + stripPrefix = 0; + sha512.run = "68d0c52bb40354a72b2eb14d2c10a18266badedd452a57e4c2a9aaad343b94f5c13f89853962e85c94ebed9274e87c44cc4ac1fd0203ec54097f71e5c4a15fdb"; + sha512.doc = "b4f498e3f9d97be8fb8918abe5139d431656b52ac592ce9f3155c6dc7afcea17e51996dbb275968950dfae179b336ef923b2d88efb4b77506c64b5c775920d38"; + sha512.source = "4cdd6ea161216ee5d8be410b96749ae52d212e75691de0a9012ee6f0b5044d14c5be4e8615a6bc3b3b22f8a8fa99a75977fb264730ae64218b20898444793dd7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.04"; + }; + pst-func = { + revision = 66845; + shortdesc = "PSTricks package for plotting mathematical functions"; + stripPrefix = 0; + sha512.run = "28c50cbd77b2400cd262b8156c01c2adf655da279a33703502d79590174824b0470a788db1a04c7439c63d1870eefa19a559f6f76c0c80c076cfb259eb920970"; + sha512.doc = "b25be44e2e42b35ac48730aeb2d705082b99d5bead17119e1c5e353790f25aabd294043f753291265dd102ad7d8448c1592e5fa486fda317c1e8bd03aa1a3ca4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-gantt = { + revision = 35832; + shortdesc = "Draw GANTT charts with PSTricks"; + stripPrefix = 0; + sha512.run = "61b59f922129de60bf954145a0c83a5bb4c0232270b8213b45856a69ca56f32a9525d70ba86e51f95fa1c8836d4922a0dec971dea16f13f0c2f83c80fbfefc56"; + sha512.doc = "950a55218077d7203988c42c83445bfb10f53c7292cb85bb4178ab20b9f1404ab4a864266e52c3af074c45cc27b6777dae71af41caf270143160d3d59e222731"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.22a"; + }; + pst-geo = { + revision = 60387; + shortdesc = "Geographical Projections"; + stripPrefix = 0; + sha512.run = "4e97b80679129df2cf52a8998e1b131b7ed5ebd21046219843af1ca81272a84c3a8fca72810622a7215385207eb541cd2bfac65b791920da61c233f969423c3b"; + sha512.doc = "7dde4c2584eb3c538a21fadfb9c49db02ad190b0778b64a4a51be7b777b4971302151a4f6ee7c5fb29f6c156c34a420b1734471f550d541bd2eb87877ab1543e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07"; + }; + pst-geometrictools = { + revision = 61430; + shortdesc = "A PSTricks package to draw geometric tools"; + stripPrefix = 0; + sha512.run = "838ddf95e3ba7a13fcdb5cf97d85647cb6b15bb6735947d26e358af83a34a4d5bf55530c4624f006eff4a9f0794d1fd7f5a3ed351607243e31537e36bda33b96"; + sha512.doc = "4b7d2316dff80420ed5ce03046115670a4ad51c705dd960f56f6e7debf20b0d3c86030d93cc635410e01535aec1b42dd3497d18126e6c86bb9304c5cd506306d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + pst-gr3d = { + revision = 15878; + shortdesc = "Three dimensional grids with PSTricks"; + stripPrefix = 0; + sha512.run = "85cbaa41c3cce49aeda36ef55a89122370fc23dc91c5e5e63790aff2b8b748eb6a13a9a921836b2a471ab2deb9577ecf59be0bc6dfa4d2f1ddcf17bc33ca4264"; + sha512.doc = "bd9026c7730dce9c09a092cc420fa7ca8d7c85db4a1f9a665a64f933595b43397027904c08311ab2301305f79a426a1b726b8df2c237c8a545726fadf9b8ed30"; + sha512.source = "ce6786ec803ceeb33fd42d2d786d119ec2f604c1d4b4f7a51c6e9ce9e4171f01fff33b66b234a5af854e5bee24f23bb50abb898ab89c568150a50ffd8ff7d582"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.34"; + }; + pst-grad = { + revision = 15878; + shortdesc = "Filling with colour gradients, using PSTricks"; + stripPrefix = 0; + sha512.run = "f98fe4e4996e20947d90ef24d6825d72a8ceb6bbd586b0de9b90d5d73208816395e5b195dcda2816c8e709fa4c408f3b814c02911488c83a207039d28654b9e3"; + sha512.doc = "11f4a4de67f92bb2ba77457b5940e2b848985de111e3307215981e6d39617b8590316de5cb6e5002748d9e951be405e3f938d1708c28a7970be53808688c10ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.06"; + }; + pst-graphicx = { + revision = 21717; + shortdesc = "A PSTricks-compatible graphicx for use with Plain TeX"; + stripPrefix = 0; + sha512.run = "0d3f2d072a7bbb58ff555add4df7347a4dcba929bfba49d25dbf6b95956462a3fda07818135fe40f737151f323a27225983f656389f9a91a8295145ebf2877a1"; + sha512.doc = "8deba57cafa74987ff7dd22b52db699fef2067dfb62e8e2c7e8e17b662f1d7644278272ee97209b3c109345ae8c295e125d1b195ff68cdfa8362eb3b7ad1bc84"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-hsb = { + revision = 66739; + shortdesc = "Curves with continuous colours"; + stripPrefix = 0; + sha512.run = "d3eef4f4672b938b84d1fafbf22889f9d7116af9a0574a95bfe2a7225d4a7185abcfb862ba7309fca924993f9665f2086a35edde97306c4b2311cf18f1763929"; + sha512.doc = "a2664b558f51c43ead6c078f0895f4a6c5c55045b8485e7f564bac10279b997fe082279e3cf2c35a7f47f78fd826ecc5a65daff112dc8659768c3b6275b7c854"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + pst-infixplot = { + revision = 15878; + shortdesc = "Using PSTricks plotting capacities with infix expressions rather than RPN"; + stripPrefix = 0; + sha512.run = "a8e69a4bc20752d5f6d455f34fc4810e569a5f444de257c1b50c76d567a23d868b0e19c9f4656370a12d3a53ef35ad43e7dcc946782c19ef76091634bc2440a0"; + sha512.doc = "0b6958f851af834917ab04f39bf60d50e26eb61ea52c9dee91274714ec0a87519323b1f9ef7d665f0a6d05cc97e6f8b1bf51617f2c57a5d80ebb96ba1aa94306"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + pst-intersect = { + revision = 33210; + shortdesc = "Compute intersections of arbitrary curves"; + stripPrefix = 0; + sha512.run = "847a2532362e570d3e14ac4aadedf0cf1ac0f2da1991837abcb6cbfa607357d8a451d852bec9be50ea8b2995716613475c4c1ea1c3766169902eb82e70aaba0c"; + sha512.doc = "e8775b9d8adbab9e7ce63d595cb70747dc3d850c4b43095e1a35f6be8093b61ec92457c7fcf6565484e62b1aa7bec82700d8ccb2dc8dca0089e56bc8be5e762a"; + sha512.source = "87bbc6bb4d4b43d6c1e93e89d7d96c5f9941187181eb93814110e3930255d6ac6c95d81a53a6ed440f6bd4fd8c38725e4cf5763467722465cf941c4cc16b5841"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + pst-jtree = { + revision = 20946; + shortdesc = "Typeset complex trees for linguists"; + stripPrefix = 0; + sha512.run = "9947e00e7fdac25f25f1f828ff5b9a3b962b1d033c57232d2d47736ee7a675ee48367aa934153ec17ae3f2eaa763044dc067d83b2248c5f42a93eb5d9a79e292"; + sha512.doc = "4d0a2432e9880a71f1d7b6a9965dfacbebeb44ea2586fd428fa58f634d7670d763e9ac293aeec6adda6cdef98736a7b5d341ec41d89bf3999c4cfee9066001ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6"; + }; + pst-knot = { + revision = 16033; + shortdesc = "PSTricks package for displaying knots"; + stripPrefix = 0; + sha512.run = "f481b82e5d21dd86eef3cf64ecedc45420b33e43619574f072a050fd70a6446ef8d527607ed5a929443ff6976cc94a03817837c8776bb2ee9794fec80a4c0751"; + sha512.doc = "a8a82ce955b707c6ecb319783cdc4fc8406411dc8d711321919413d84ca42197828e69ae2b6b368a4b5b326650caf5393cb2214a7cd8b7bc0cff742b9b0d977c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + pst-labo = { + revision = 67147; + shortdesc = "Draw objects for Chemistry laboratories"; + stripPrefix = 0; + sha512.run = "d04fe4359a34f466d306265919bb13483d5105d6c77c8e297f1f964fc8224b6923773c4d3a0c58f8dd9b809deddb4dfd4f99f205f09de6a9e64a2398b17b7ae8"; + sha512.doc = "98d55a590607e78c55402af375fd25dbe1d44bb4793d5dd3327311f9e9457e8b6073cebfa3dc993560d5144426e8195ec450b030a8897c84c8b711afa28a3f91"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.06"; + }; + pst-layout = { + revision = 29803; + shortdesc = "Page layout macros based on PSTricks packages"; + stripPrefix = 0; + sha512.run = "6d4c06efe0d0095ba52eeee25ffdaf44f836e1e41840d8098e25c6fd3b5ee79d28663ef7f02ddd7d1ba21228bf4f9bd5a66548e3aef642a49cc9aab5b4b24fba"; + sha512.doc = "fa32cd065979fcaf2105372155ae8debb399a0f930d6b85e7ca4a69d8b76bc0d7fb717ebdc8fa4c9794ea03268c2079b93e0bd6453155bf5925defb75cf05e08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = ".95"; + }; + pst-lens = { + revision = 15878; + shortdesc = "Lenses with PSTricks"; + stripPrefix = 0; + sha512.run = "406bc53d476d47d464f7fb318e75a5aeac85cf4239ab916e91728f5d8c0c05a9fd4c4fbc24b4b058f1c15d1ee4c6a0d45511b8cf6b288bf10163523b2bed0f37"; + sha512.doc = "8d29f5014e0bae5d1fb22483ca3231e3631c76820be080b3a588660f868ece861c2d816291656a45c8a33356b992cd6e2396e9d73f4ab316b877b2ed8b778f7e"; + sha512.source = "7546475681934697c5fbe287d9d0c81c4532cfb07537ce0184addac26a3c29e4a37da5e12d9ac3e64f83436c07ccd9ca360ca276f77cefbb9c23c740b15bab65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-light3d = { + revision = 15878; + shortdesc = "Three dimensional lighting effects (PSTricks)"; + stripPrefix = 0; + sha512.run = "2bcfd2835e20302ec865667a44af8dec63c6c006c8a3e39b048464e129ef04300d0d7c2e23f324a8acee0e1ae1439e75ce642f7b76a8f1958d600546ac7c220c"; + sha512.doc = "166f47222230e24530508e3ca66c881dcc844cb8cb35b92fdbeab164b964ebf2928df3068d79467fc8a9a8a4db81d2be48350036169605365bda116cbd86d095"; + sha512.source = "8edab208ea567672bbfa0252fb4180abd8134702058223f04ab23c3ac92dca98f4946ffc31620b9d65376ae41c819038403ad3bd7c9162cabf8efcf7d4d57362"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12"; + }; + pst-lsystem = { + revision = 49556; + shortdesc = "Create images based on a L-system"; + stripPrefix = 0; + sha512.run = "0da3611c401895f508b6963c46f781863ab6b42ced2addf3413b74ff1c14daf42cdfb5c166072e18427871ed6d06c5cfe3b185f0af30cb25db2f346828ee1682"; + sha512.doc = "0b277cd979f4a12abb57b8e6d2562b156bba74e0ca46da10da17a6bc505c6747592b5f19c5a3e9b72f99bffabcb45298663c6dca33c875c923408646c4c5f6d8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-magneticfield = { + revision = 69493; + shortdesc = "Plotting a magnetic field with PSTricks"; + stripPrefix = 0; + sha512.run = "c0260df43810caa61a033b835e1e60544421e008832091ead56fde4140234a878ba31dd5e98777fc3a58b3e6247daef9a80da63d7131a717e73f1c935db7fcf2"; + sha512.doc = "98f0e0464e41b12474bb5b5c6e931d7da60206b766a39877f36d3d8f68a016ed7c9772483b1cf30d46a83a9a05576093b2048579ae8d4133806198602f3aaf10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.17a"; + }; + pst-marble = { + revision = 50925; + shortdesc = "A PSTricks package to draw marble-like patterns"; + stripPrefix = 0; + sha512.run = "e16ea0ed61c6548d43746f251bf8581a00863370b73d46077e5510fd167d63a539ab4543f0ad7db704571b5274cc5756fb713e5182c8abea404708215a98849b"; + sha512.doc = "5684abd4913353b7a4953ed1b5878183f1c10dcc1bdecea6f3e9e6adef7c73c7f16cdade2b5e18f4a645c203dfb15a3917740a7638c410002eab892bc5ca6acd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + pst-math = { + revision = 67535; + shortdesc = "Enhancement of PostScript math operators to use with PSTricks"; + stripPrefix = 0; + sha512.run = "12bd81bed4fc5de91cd4db49cb97a9911848c347a9a9325cb61637368bda4e0f35f9c5c348bd385d46907b61aa06682ae1a9d70616d4c5c81659550064d4cc0c"; + sha512.doc = "1b07b3086fa3e1d12f255632ceddf5b30c219472763cc43c0649b669a6014bb76e3a0fe7c182d0ea24c54fee8d2efe8399867321992e20f7f418d28198661bd2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.67"; + }; + pst-mirror = { + revision = 60506; + shortdesc = "Images on a spherical mirror"; + stripPrefix = 0; + sha512.run = "316a6cd32fb2b8c59f554a49695ad097627e641982d1a6a8b1e5db12949c2cc84dd150a190834604d57ca10735779cb09983c28e7339e92f3cb82d642dc9b61b"; + sha512.doc = "f577868d1cf76a372a3c248f6dde28ed423beaa5e445a6a343d9b5e4c2ab9f737e4266c12702fcbf6dda91a6639624ff99b4cba29d65ebd4c7a0c3f3ce1323b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-moire = { + revision = 60411; + shortdesc = "A PSTricks package to draw moire patterns"; + stripPrefix = 0; + sha512.run = "60fb7e65170ec16f08f4109794afd657436fbb42a18feaff2997fdef20e18376810c3b34e0e341a5e577a6d08d6bf6314adfa51611d83a4e66245f112581d678"; + sha512.doc = "f24fb6a5a34a09f7b519f864c40d4bb4afd4b37f12280877fa9e6edae48a655c12bdf13eb7d13e9ce43ffa849a183c6a81b8040f61d90e9ec514b07352fced3c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + pst-node = { + revision = 61838; + shortdesc = "Nodes and node connections in PSTricks"; + stripPrefix = 0; + sha512.run = "663d072baef5277519157175183313c9b80385d1574dbbc1502b60aabd111688286499426e88d28b3b5252b8ff23b3d325981b6e14b846fce3b92ff391ab5a7c"; + sha512.doc = "5cf9cb60b0c36915945a4e2fb4e79a35e2ff9e957df1b1e39d8158560843fe1dae6867aa6270e70cf3ba387b104e9dd8b6965434168d89748e65aa77368a0707"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.43"; + }; + pst-ob3d = { + revision = 54514; + shortdesc = "Three dimensional objects using PSTricks"; + stripPrefix = 0; + sha512.run = "19cdca2466071a1c6236fd4c149d4962dab3aa0b0c097fa408ea60c2bb46011173033bff02d33f596c8a413ad781c14f785b39bc28be4c85aa66480cb8a7e295"; + sha512.doc = "78ea80a6d63ccbc69640e6e18e8ef43526fd4d4b51a63dccd23429ea44843a0f99f522bc34a7cc88d6ffe48843313da64c550464f28ad48726554bf74b9e9cc5"; + sha512.source = "a0827ae0fb0ba2072894bfc284234eb301c982972d8333866cc8b66ff754e85b837fa024083ae31d637ba941569ae491a85bbe62ab32adf0fb99bbe3ecd019ed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.22"; + }; + pst-ode = { + revision = 69296; + shortdesc = "Solving initial value problems for sets of Ordinary Differential Equations"; + stripPrefix = 0; + sha512.run = "1474e118f16c644c7d63ec89a42ea598443cdeed56e965fb85bc75adea4a8d5572a49f07417786682844523d30438a0a2798e9e5635879891f039453e53c4264"; + sha512.doc = "f46dfac052060fbe8f41d74a59e85c3f7b0d0d25bf2b65209e7bb53d6478947fcd4a2af9b5e68bbe585afe94fa53ccd80aa80f2e1e21b68210d38fbd114b217b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.19"; + }; + pst-optexp = { + revision = 62977; + shortdesc = "Drawing optical experimental setups"; + stripPrefix = 0; + sha512.run = "a72c425dc808ab5a4507691c9a86ad2193c08f8e88d62ea558d2559b68e18e9dfd8e0295bc18fd66e3cf41236c17b85086dc218e46317c09867b5eaf024564fe"; + sha512.doc = "6c4f4427b023b6dccaf75ac2cab2c22da32d0fbe6007c68e05b9ced31b11da91e5537ae4dd174a726b36ff2657113bc07e1b054e9dff344a9dd99f3039be97f6"; + sha512.source = "8f3f7cdddc2b26ff9adce1cb60fd165fdecfc0b3b61cbb827e52f97702cce602312bad4838f2ed96a8d07d1deda4f5226a305c7796a8794b6cafb821c8b745a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.1"; + }; + pst-optic = { + revision = 67052; + shortdesc = "Drawing optics diagrams"; + stripPrefix = 0; + sha512.run = "132b3eb936678d51a4581efc14998c794047959f89789ed22098326912d00eaa0e39396608d3c1aa78f1fe8bccb21ba2ab454bd2b3744ba252c24f164c58e23c"; + sha512.doc = "a7169c870dbcb336025aec5d475afa9691ee524b35ef3404f2e3244c4e4c0f08def16a8eb458eed1a8ebce27c969ec80004904484615588fdbb401b863052efb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02a"; + }; + pst-osci = { + revision = 68781; + shortdesc = "Oscgons with PSTricks"; + stripPrefix = 0; + sha512.run = "c888d41f7e14cf311b359fd37aa0557fc9fc639b76dd5db782099f6d307c4e5e3214df2a670fcdd3625818e461c34ccc0e50ba617714e58aced1c71b484b63d8"; + sha512.doc = "5abb2eb53cb6cf1492c9bfad164ef8ed1088e6b6cbe1f0af6bf0ec10b34de3c5b17163e2bcfa52bf0b4394f3945887ed0e532fdc6a8497189325d10db50f4577"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.82b"; + }; + pst-ovl = { + revision = 54963; + shortdesc = "Create and manage graphical overlays"; + stripPrefix = 0; + sha512.run = "e3349edf9643e5d9e370b5dbf1c4dc3078ec82520c943a81ae353e1ccd0e2476105813b0cbbbeb707de5419035edcc39748c7e86a69cb90f8bc0d61d70f553c5"; + sha512.doc = "755c786cec204ad3dd41043d8dd1bebb33ebbd889580a0a85390ca8efc318076ec9300a8e38b99788bf348a49dbda8ba5f3c758ace788bd9de47c251dd4e0407"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.07b"; + }; + pst-pad = { + revision = 15878; + shortdesc = "Draw simple attachment systems with PSTricks"; + stripPrefix = 0; + sha512.run = "cf519f69dfd1003ab17a4a67f309336442bf35497cd0102e346ab8537865540c314666fbf01cf6e3e106ce922fd8922ac4bbb5b20ee90a7ce24a7a98ee974006"; + sha512.doc = "0a2206d3ef84dce88d3e0ea7899fb623d12f7f6a820298b031ff76044eb9ec49bb09f70f6ee0b00018fcc02f6260d67ee58c8a06a48ddbfd2e5b17f52d374830"; + sha512.source = "ffd5ef230c25a731e5127cda390b60fdc275d53a833f8fd02ef8fda7b959d7ef5e2074637af603f1e510cd558cb3de22245bc34f91bb7114269425d3b4db211f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3b"; + }; + pst-pdf = { + revision = 56622; + shortdesc = "Make PDF versions of graphics by processing between runs"; + sha512.run = "5f5850f0e908bf6b10977bf616aa82ce05d1f0afd4127b5db14379a510ca62614a3552cc85ec0136805fb479201c817442872f9d1074fa6cc1367f41403476e1"; + sha512.doc = "eb5013040f3774e81d019c0010e8fb507d22cb2fb9c74e75f2c14aa0e4edd20245ddaaa3744fec7204c607b5f6329425f8f2b6e09bd153e6df6a3ae39d1e1625"; + sha512.source = "1c353ad8d3b62fd5e5bb8746f69f00b8df2c7b53dd558ec8b24d571b1fe84fdab02daa4d7193f67a258c7390d50f25cd5270578d742b085634980eefc744b09e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2f"; + }; + pst-pdf.binfiles = [ "ps4pdf" ]; + pst-pdgr = { + revision = 45875; + shortdesc = "Draw medical pedigrees using PSTricks"; + stripPrefix = 0; + sha512.run = "c42b723e2739eb3a70f7a984d45b6b738a1dab1f4f3bb7311850c344be736fbc97ababb6f744539deddc7d1cbde47830e81d1bfd42f705a7287b1fb970664823"; + sha512.doc = "006395a2e1caebf8c86f4eb41eeb03a35d47b82e65e18ce4045eb22f93bc78a38f7611a1328216712d29be852fa3431876254f3b41b8b7a2a7c453f32a8e1bf7"; + sha512.source = "e576ffab3eb1b0094bf7514ea996146c1d73abc5f68a47f3cdccf5e7fe7eec133a21511e9d1107ef20541750b12766899bd3c925e09be931b1e0e2a1cee376d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + pst-perspective = { + revision = 39585; + shortdesc = "Draw perspective views using PSTricks"; + stripPrefix = 0; + sha512.run = "b1c6c1313e0f87d7c4dbc7122d09777f14f02ad0908c6151fb5da905d908a9ca2d905c5a9e3fb1e54deb0b7b91dda1488de0b96ff40683488947985d68e2d331"; + sha512.doc = "df82bc95d3720f7da3c23736d83fbaeae5132f7b84aea9f2fd8ddf925f919e5d56f6701bf5b541446c024e8d2f6a5875d562d96cdb1564dae92d6ade759671cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.05"; + }; + pst-platon = { + revision = 16538; + shortdesc = "Platonic solids in PSTricks"; + stripPrefix = 0; + sha512.run = "8eade14982b0ffa2c5e7d5c68a91d4159ee6f3317b20836c3f470ed68940a522459bdce54b1e1dd4068173e50b0c611531d1210b1651d805602f952a1696626c"; + sha512.doc = "7c252b535853c4941fc4cdbe504a3c20ece2c04dd15e2bc5ea0c88928b5fdd7063035c329dccb7ed04d71606e70f632fc1d66847dd35ea46a4626c04070974be"; + sha512.source = "092665b806f358201f0dc1b0010796c2090b84cf31d1f0e9e33d2ce370049f0e7f65ebac23cf9841f770df8c61c22bdea60e583474694311c7e3fb4fd71ced6f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + pst-plot = { + revision = 65346; + shortdesc = "Plot data using PSTricks"; + stripPrefix = 0; + sha512.run = "a273a0999f14697ffec4165c8f6013821f9a3439bb7822963e79d4b362a89334090af54d591f7cbff1f59d0e15e9b18dbc3ed9d711ba90162913098dcec67684"; + sha512.doc = "870ef12eaebc4078ac0906cdfc225991714a55dd674cf7b757ab7b7925728ab771bc63612c61e26a997d900f8c03ec4d439d767b0a83fa54b8a65517399fbd7e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.94"; + }; + pst-poker = { + revision = 65818; + shortdesc = "Drawing poker cards"; + stripPrefix = 0; + sha512.run = "850b8302f7754e90559ba43ff3cd7440866b23cdbf7d3d577a75a232533d750917d3dc7ee9554ded07e6cc38346905da82e49bb90bbbe4de0f02c40fbebd111f"; + sha512.doc = "d021da1775a7f91968490bb4e2ef5fc8eac114fe33810d069882e72e381ec94e0cb81f4ea213edd394b5919e07873838996b3aa0f043fcc41814969e59db8a21"; + hasRunfiles = true; + license = [ "lgpl3" ]; + version = "0.03b"; + }; + pst-poly = { + revision = 35062; + shortdesc = "Polygons with PSTricks"; + stripPrefix = 0; + sha512.run = "badd0fcc2b439ba270d5375703f91df9009fb7eae920915eab8757185da0c6665c34d530d9b4d8bf469767dd79ee834ded104a0fd98243a1e8a17cda47be0f79"; + sha512.doc = "0facae2d565a22853a6e455534065f5954571311898e0850fcee7b18909f1cd0fe06b116138faedda6767d8514d44f7d843c13985f8723ccb8ec03a81bbaa46a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.63"; + }; + pst-pulley = { + revision = 62977; + shortdesc = "Plot pulleys, using PSTricks"; + stripPrefix = 0; + sha512.run = "e9e3f27eb01146a6aac0f9479f8c7bf120845a9c728f7e08296d95dc3cbbfd7d4eac6cadc0e7195848157929d5001fd9a1a7b9c2daf4ad97e28e0007ba8a22fd"; + sha512.doc = "f7a0820425a1d785a91ed2cd070fb371b6503f1116e1e08a6e97509133ec8d4892bf546deb5b7d3c0fcb343a65f2b41c1e2c2400e23ca8dacc075e2dbd27c3fa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-qtree = { + revision = 15878; + shortdesc = "Simple syntax for trees"; + stripPrefix = 0; + sha512.run = "5bbb7fdd477850e4e6c2bc395665c50668a427cbe176122d160fdfc2aa2f322ed83ec43929dd185fa1dec439bec3f5de719aa8d640d0bc498aa7ac9f9089cd5b"; + sha512.doc = "4a0bba9fa7072e5860403c3b22a23947045106fd4b89781af848d17afbc5ac456c77617979ebcb80afe07620ab8b990e868c688301c4637804d32790fa4bd7f4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + pst-rputover = { + revision = 44724; + shortdesc = "Place text over objects without obscuring background colors"; + stripPrefix = 0; + sha512.run = "3bd94d3a37fc8bbabba547a0072618c6e2bd2f6052f95cd4dd8cb973f64c4e97d0c7ef72fbe425df032aacbb8cb109b0eb06ee304b725ddcda6489da2c893934"; + sha512.doc = "16bc8c2500c19cdaeb701da98e4de0ffdc13116a0ed5802beae395e9664ee16acc6341db7d2c3ea7b2a16b0afac35503cd5a53e1ce1fbd67598be4c890b317d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pst-rubans = { + revision = 23464; + shortdesc = "Draw three-dimensional ribbons"; + stripPrefix = 0; + sha512.run = "360f1a04170358b976bc8b6d4d4ee138398f6b018b5611811fc41d90475c474e89fed214708d11b47bdb58cfcf983b37c3338c4d5b13b13825f3388d1562372b"; + sha512.doc = "086f80c0b99a0043769b159b6f52de125f01e6c3b00189b0924c62961b934121b09a2f1634fdeef737b2fc468c392051f8b117e1de5d7e6d223e79ff443c2cae"; + sha512.source = "f62e689c044a0600f4e303251329033e705f3d08b025214af34cc85488f347324d552594a321f88ecf91845b5db5011875436ba9fdb819dbe038dbbe012c4676"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pst-shell = { + revision = 56070; + shortdesc = "Plotting sea shells"; + stripPrefix = 0; + sha512.run = "e6c12f5a1c8eb6b521e6bd3d76609a750bc12633de1645f6991a177d633043f1c5597091b34639079bd007d81302ecfb6715f826ec42353720863885e1d3a1e7"; + sha512.doc = "72185b764b1c282e772341b9c616b27252759f8e0ca3a776770e976a31d160cea7ac74f23a982e088dee50a86a9af73d19f3f695a24f13381e88281c8c33577c"; + sha512.source = "b49620358aa5b8d57c4f227770a59ffe84a751a494ed459c8a61602b3a32621df6a31041311f939c4da6ac2114c5c4381d2ef0cf1ce870ea41081d9d920f5902"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + pst-sigsys = { + revision = 21667; + shortdesc = "Support of signal processing-related disciplines"; + stripPrefix = 0; + sha512.run = "db3d3dd31c4166a132a174cc9b2a86fb226496c663c1ba95b36f6590e18799c5eb4e8587ccc3db5de0d3833729ffa90080cf037519b2a7ba24c70fe381aedad9"; + sha512.doc = "ae2869eaa649898daf057875d28fef1be5f20caf0b7385ba7723e9be51e534cc69b953bba8ad4fa6d04a0d67f85659c82ec08043ba760279a6759c20a2c27d0f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + pst-slpe = { + revision = 24391; + shortdesc = "Sophisticated colour gradients"; + stripPrefix = 0; + sha512.run = "43905d7525acca6d10261e169a1c1ec1ee0cf0d4b7fcd05643dea3f705331588d774649ad5ca560111269025e92a1e91796693c5246e4d2b2816dd33d4eed87b"; + sha512.doc = "377a89c5dcc49e587e3e2d2e1221c289da9dc6b3cc0565bd182d0ec356835309c12eecf68680ac4083c906701365de0068608ee1e49ea9fb95c866a188931a67"; + sha512.source = "f8579912fb5477394f8eb150de776b9a15dad8f67b821a073748910388e06c70b23163fdabe260d55216add2924879f5380915c5d3ebbb21f0da3c65c6f82f73"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.31"; + }; + pst-solarsystem = { + revision = 69675; + shortdesc = "Plot the solar system for a specific date"; + stripPrefix = 0; + sha512.run = "8c977113eb47ea9139cdffe297f0b4e333ddddd5c7f54e2cab2dc29d65c11616e938d9d79a4362901b1715ca9be104ecb6eb72f43b779cb11644520306d8ba7b"; + sha512.doc = "3714132e0ed6d7fecad9215e6ec13af2a74576c43b21faa746adc6caeba16af479e9f35c7d3948ca69a82092d8d6ad2ca07b1b3ba9614dfdd043db1c57cfbd0e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.15"; + }; + pst-solides3d = { + revision = 68786; + shortdesc = "Draw perspective views of 3D solids"; + stripPrefix = 0; + sha512.run = "fef032b9aa9a87711e2c09e0a7213a2c3e70451e64060ba9fad81beeeababdc622ec46107f077ad2869a8ba9420fd81e3e9df96ba60f98530fb3238d4bec45ee"; + sha512.doc = "3bbdf115c8cb4e0dec4deebb1bf8af6317eb0deafa19054404f992f79361a913b26e1523a31105b7fe0addcfef438a016d6b5c5780da564fc108a58f449ee86b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.35a"; + }; + pst-soroban = { + revision = 15878; + shortdesc = "Draw a Soroban using PSTricks"; + stripPrefix = 0; + sha512.run = "c21d3f0e19c4cfcf79563e23e760178de6e39f1f42147f534946fef315c0514968548b30d24eb345f4f2c5cb7807fef4f0d45d8e345e9523806ce1e054d8cf11"; + sha512.doc = "b7c1422ac43df949426581f7dbe749300093ce2d20145df768e21e893b9d2c419ffa8ab16c60fa509f09317bee4c7f80bed4920b92a5f9f2e9289eb93cec5eec"; + sha512.source = "49fb276ae7277b1508ecdcc3132d103e26204f314f8779a556335e1875dd5c3c6768b6b152264ba5643d2c39eb275f7ef193ecb6a292135abba2d60be508d654"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pst-spectra = { + revision = 15878; + shortdesc = "Draw continuum, emission and absorption spectra with PSTricks"; + stripPrefix = 0; + sha512.run = "325e4f07e9c2788d571c6105e1fdc3a097881d1b472b038c365c65a84a4e69e15866750720b2c86f5b20e00fc3a054f619e79b6564fc3712194a1a5d05edf248"; + sha512.doc = "f3655f399c4986b122253c4849bcb15d0ea4d2390b0ec3b8328d8255e5e2d44481198d63c6ad9dc10365095414267285ff02a944c1bf5bfd8c458d1a7cd5a0c5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + pst-spinner = { + revision = 66115; + shortdesc = "Drawing a fidget spinner"; + stripPrefix = 0; + sha512.run = "ec6925c95e398426089234227b29a2129a58097d1536b0f1569c4a0e6b4d7deeb0eaf7d9d5ede851c93cff49da05772b6113ad7ba0cbb34b854e3b2261bdc41b"; + sha512.doc = "1cb4907c6b5feb39c947361176edeeb4da560935d53b3b56507642142f3dd61d98caff293c0d686bb33383c706f1cd865dc3644379564310b141c3f0204cdb57"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-stru = { + revision = 38613; + shortdesc = "Civil engineering diagrams, using PSTricks"; + stripPrefix = 0; + sha512.run = "bc0961c1f9afb68f66c4af9aa9d37cd8cc7c6047f55920d12cfb14a18b2c2288c8468c8d9f0e21eb7e395eaa884f0216b37a6fa947fb2c5ef51d57996ba8bb5f"; + sha512.doc = "b9352eb01e9d80049a474e0b5a513bb8835be16af4226b4f4269d9a94d64b81a842e640ab316f066595b0b6053080042deac4b0cce1bbc602ea0e029f7809cd3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13"; + }; + pst-support = { + revision = 15878; + shortdesc = "Assorted support files for use with PSTricks"; + stripPrefix = 0; + sha512.run = "05ddd6f09d603a2a6887f03aa3da0374ad061e2ab52ad25f0036192179f985f3695b0248c602607172c94c55cd9d2bb453e8f145d73f133bf79a881ccb1daacc"; + sha512.doc = "ab2adb2c06d4f7f4b4a4fbfec59e1fc8d6b9f4ccff5aacc29f0a1524759fc1f0792640e8cc301e614477ad45261bbedb3ede93de2463e0a655aeff846561c185"; + license = [ "lppl13c" ]; + }; + pst-text = { + revision = 49542; + shortdesc = "Text and character manipulation in PSTricks"; + stripPrefix = 0; + sha512.run = "6cf40d3dffb7803959a187f6a19b137b824d46ea73bd31430e983abec0b828d49c6d404287382242ad224e2f51feae74b3bee374443e9f421ae70d1ea2c0c3b6"; + sha512.doc = "87f213f037227c05ceefbcee7ab8a316b88ee6f9ddc366c40cfa7676a714ec6802f3781db8357224769216241feb9171668184534572ebe5c5776c1553c1b62d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + pst-thick = { + revision = 16369; + shortdesc = "Drawing very thick lines and curves"; + stripPrefix = 0; + sha512.run = "5eab2dfdad0c9fad21cbb7d4484f9701bd48b225e881e0c86a2418afa143582aef160bbf4cc9f5a773aea97d2c12c7f614f41fd87f0ff2952c27ddac91f75905"; + sha512.doc = "5d75bab3e4b5c18a14e7348dd97a3f7e0895a2b44111a72d87ff8ce7c7c0499062f61b4ff38b2d36b0632719fd58a33c91f077edc269d74fa58281a83752e9d7"; + sha512.source = "c3cbd54dab4d8e71a2d6e9f94cffb1dc0576344032d3af01c21a4ef0f493c5b886fe6f99e7361f4ca0c9b2e01e68e61e0f8e74b5f511cd1680b20eb01a068030"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pst-tools = { + revision = 60621; + shortdesc = "PSTricks support functions"; + stripPrefix = 0; + sha512.run = "591dbff503faef5316eda8364a422d8810524775e6c6b59569d24928c8702c54463e4433a3c28953d2f36c873aa6a6e52c71dd9cdcce5bb0c362ab2231f5a165"; + sha512.doc = "f61816b6be166d85ae238cf5651e2e1960a5303b3bd3c643e4fdbcc779b5e59f49ffbe53bd6e2830b2bc28289baad3b089eb01ccbd7bee4eb9805728cda4309c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12"; + }; + pst-tree = { + revision = 60421; + shortdesc = "Trees, using PSTricks"; + stripPrefix = 0; + sha512.run = "39d6f88d9b0dd4280cd08cad6524fa693cf727bdbacf16063d76e100e16f957602124ee71421e88f389a7ba5070a932d779a2abbb64d791bbc071398f09a8708"; + sha512.doc = "6ac862eff40eaa1a8cacc5c1a1d4886e82dee53046d3fbf631ec23bfb59490fe89bdde5f2767cba35e8d0439fa7b7688669b50ba3ce81698c34bcfc9d010a7e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.14"; + }; + pst-turtle = { + revision = 52261; + shortdesc = "Commands for \"turtle operations\""; + stripPrefix = 0; + sha512.run = "df30018ed03f10edbb9e215879f041ed6eb0db48cf0e7e2b5128cd3339d1005ef074aa0631c84bcfd2c8f9c1a1a69a26cac36248f3971a3b3302e2f763af750d"; + sha512.doc = "22c14f1eca2aa764bfc250d8140f0a24f3dab1cb8e755180167ddcd1ac9224aca07fb41408823b8933b73293204053f7f139513781ff37a67ca9e0ee7bec4fbb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + pst-tvz = { + revision = 23451; + shortdesc = "Draw trees with more than one root node, using PSTricks"; + stripPrefix = 0; + sha512.run = "79e206f5e4154a797cf168b1b490cac8e1ddf98a79de6ddbd9dc98cf53eae01301c034643f6660708b58e890ca94b7235e5b0f48e53136f32c12c0adf5749179"; + sha512.doc = "ffbba30214dce83e7f00aa7c6e126919cafe341dc727736e27a5af8ae212dc66dafa49afba553079d6857258ca72577950c06ba2deb21ca3c1b13231d1909935"; + sha512.source = "ea0d7dc35ccef586bbe4dc225886755b28524b4db4ebcede6fd41c51bcc0fc8e7fca1f7a326d12524dae478b5a9228cae413b80e7a2830f0cd729e7efa8bab4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + pst-uml = { + revision = 15878; + shortdesc = "UML diagrams with PSTricks"; + stripPrefix = 0; + deps = [ "multido" ]; + sha512.run = "e4ff8ea9b7fb9f530e33280de3e9eb20d653c0c062fa80611a544daf74da0b1dd2481b43d8f5258f9ebc1d1bf95b393b32c7152ab8464a9e980cefa105c45ceb"; + sha512.doc = "d8aa92785c241b6346762d98349d8464ce604afceb8774ef160e8c24e0a40d3fd8dba7cac3f78cbf38cbf6cfebb79939ad3c76e6b4014c1028859aba38123efe"; + sha512.source = "8b7e551154c1b1966046268ed3353b6c78c3a66bfa20f44c7fba3b58f661f2585b71d49d2dd673368f732b2f9446dc7783bad4ae5248169a79721d330a49514c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.83"; + }; + pst-vectorian = { + revision = 60488; + shortdesc = "Printing ornaments"; + stripPrefix = 0; + sha512.run = "e3898a6b489afe685bfc657760702bd5e2e44fce2ecf6e4af28c1a6eb36173fc653e003af7b7879fbd3a342adfb89b8cf47168b1f1868815fa44050495d15f54"; + sha512.doc = "6bdc368c391d12e6fb54740867631c7ba62b66a889e11dd40668dc7bcf5f9846e4414f84b706010505d3032b132735a9247e25193b952bd3272590d47d59172b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.41"; + }; + pst-vehicle = { + revision = 61438; + shortdesc = "A PSTricks package for rolling vehicles on graphs of mathematical functions"; + stripPrefix = 0; + sha512.run = "1cec74ed600c4c4df629942b158d47b33f26e3a38d3d363cd506e5dc7c9673e0da1af4af8bbf71bf735693d15f0b02a36d8b148e07405ff4181efc820e73eeaf"; + sha512.doc = "e252811d71bc400b3cb72a29fd9099247044cb1d1c79676cf4319d58cc60293839b022a73706a9685434d338c9daa24e8b9bc5b7390a75870379385dde0d9c7f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + pst-venn = { + revision = 49316; + shortdesc = "A PSTricks package for drawing Venn sets"; + stripPrefix = 0; + sha512.run = "63baf8075ef294bc3a909b3160fa7868a7f179c832d680728fe463f8b1c058411a1393614ade666824fa3233d6617b1dd4e0c50c299a620bc459104515c85727"; + sha512.doc = "e332f8ed24744c03c32bfd139a38dabfca1c6eaf9c5c4624d1579c16feda26e42e81b39dafc98527e8bdaacc2e3ff2d246c6f4b88d89bebfaadd57454e08af7e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + pst-vowel = { + revision = 25228; + shortdesc = "Enable arrows showing diphthongs on vowel charts"; + stripPrefix = 0; + sha512.run = "6ee1dd91b42e319e3a88966fe4cb7327211e5859ae9bc9e262afbfe1fb7f143386ecb70a71d6b24cb0c794cb0943a6cbab4eb40ac683c55a7ef1fbafc118e132"; + sha512.doc = "4fd8ba42b0d4ed821abe52e5848af0d19fcf12c2b9660f09a502561fcfbeffbe38bdf2a0540ee79b99f50cb3c783ab4b5d003a59cf84b3066c364daa7dca0eea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pst2pdf = { + revision = 56172; + shortdesc = "A script to compile PSTricks documents via pdfTeX"; + sha512.run = "a266409d6740653bacb23e83b98e545dc462ed879299b195d65761b10e4700a797005ca231fc24e37a42591c09ba93b5ea6b8b82ad8b14a29a7649cdb3f39b33"; + sha512.doc = "5805c535c8a043fea721093a4b7d2ab06c86c80d4a45eb3d603986b898b6d2053d041b638874e53c79e2d815a929749e02ca0986a2f8cbb400a2fa87581462dc"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.20"; + }; + pst2pdf.binfiles = [ "pst2pdf" ]; + pstool = { + revision = 46393; + shortdesc = "Support for psfrag within pdfLaTeX"; + stripPrefix = 0; + sha512.run = "a97af35dfce4a137af97071b49e58c31739e6f271afc62a455db473e573148d25fc27937ce680c6f400a200151ffd73867d5dd8781b12a63c68b7bf256cff5d1"; + sha512.doc = "613cc4899b1d76e0686cd269568cfc0dda437cec0e50571086b3d44659dc4b3e3d567dec88b5420e4c802d676f21c2428b3930fb6bb3f7d7faa14c029d35d43e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5e"; + }; + pstricks = { + revision = 69674; + shortdesc = "PostScript macros for TeX"; + stripPrefix = 0; + sha512.run = "8c9d0a2c8355a338f459a34dee22893acd54fc314ef588a8fc6a727f4dc0d6fc34e64059479c096e490bb2c90d627b555d5052cbf871089099acd18fff0cebfd"; + sha512.doc = "10946b40abd2e00549abdc0e3d9067c74756785571b4f75f6baf6e6155f90087cba7eb35427f159571a04ba92e1819cf92ad12d9b4b02119ab957bb4b77da1d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.19c"; + }; + pstricks-add = { + revision = 66887; + shortdesc = "A collection of add-ons and bugfixes for PSTricks"; + stripPrefix = 0; + sha512.run = "073ce9b5f97c4432d87f51a3b239c758e2840ec894847c334dcd206433e6c0a45575ed2214c00bd013f9ddc0945a696a8eb45b2efc62d8425d1c9607da658850"; + sha512.doc = "552fcc2f0d448bd1d7f643a5c9f2521f72fd61a653363eab3bf6f31bae306a9c6694ca8d64ad5a5997adea9b92978aa366ece8bd7966c9d129942f8f487b99f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.94"; + }; + pstricks_calcnotes = { + revision = 34363; + shortdesc = "Use of PSTricks in calculus lecture notes"; + stripPrefix = 0; + sha512.run = "1b17e544484b71f3c29e5c3e1bed6021658ce7b9a256c21c004113b722a85be7ea6861753230910771b7c900184ca8cce146408301e75de79e0c2bf8939c49a6"; + sha512.doc = "bab8492549fd268f856e11f5f6db4e1ca878c67634387e7295bc163cd17080ee6b685893ddc85a882bd895adf3689639bfa7fc7d0da5e9916ef305c18d94ad65"; + license = [ "lppl13c" ]; + version = "1.2"; + }; + pstring = { + revision = 42857; + shortdesc = "Typeset sequences with justification pointers"; + stripPrefix = 0; + sha512.run = "d77c937467a9cd16f24fb1374a0d797db04bc301fa8a677712e09d83b58df6fd12aad8857dd83f4d5278d799a0d1d52ef12106e8106921d1ec1453ff6692605f"; + sha512.doc = "51c316c27c3d4083696dd9ee86e378c83ed09c75c632a7f0a580bd84d0033c7776008056a4b26d7835a4974b879c0f2b0389ae83c70cbd6ab093bc8b2add9ed4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + psutils = { + revision = 61719; + shortdesc = "PostScript utilities"; + sha512.run = "1489c9cd3ae9e1063367301f038cd52f0fd7f5b2d548ea78c06a2bff56100aa613cd01026ce601527b6a32f88b6ed1df96f9c8c6a591d16a63dccdc8e32d6969"; + sha512.doc = "8b4814c2a769b1ea8831aa945352f31125267aeebedd8dc8abf6381928707799bcb1eb29214930152046bab63b1a56179ea035ae6568595fd5ac83bbbd22f588"; + hasManpages = true; + hasRunfiles = true; + license = [ "free" ]; + version = "p17"; + }; + psutils.binfiles = [ + "epsffit" + "extractres" + "includeres" + "psbook" + "psjoin" + "psnup" + "psresize" + "psselect" + "pstops" ]; - sha512.run = "fea7d0156a1f8b8a66fc061d454c1318fe98e6c1a3c618fd9e31fda4246c7a55684df6e01b986d0c296a7a9458c3489af0e4bb2142341a95e5279da97668b4a1"; - sha512.doc = "edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3"; - hasManpages = true; - license = [ "free" ]; -}; -uptex-base = { - revision = 68298; - shortdesc = "Plain TeX formats and documents for upTeX"; - stripPrefix = 0; - sha512.run = "793b51b536fe43860fa096d590bb64cc079f089effaead0d97262d1476442fb6212d30fba092a207797fd6508bfa24c3c3ab448ce4d531700fd8cfb08e4e8c24"; - sha512.doc = "93332d9861526dba5c338bd14a20cb7e6e95aa6666417aa92dfa99200ea735d8ee0b61d8da1eb09c758b9b179f613c51a725abc997275905b3a832580302df51"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -uptex-fonts = { - revision = 68297; - shortdesc = "Fonts for use with upTeX"; - stripPrefix = 0; - sha512.run = "1802a5ff347ee4b9eabb93e4da5881a19b9861e3144009839d7779f61bf362dfa5be2a37b42b64041af7083ac756aaf788ad9a69cb4ba97887b21e78f6a794bf"; - sha512.doc = "5cfc4bbb9ba533d38bc52e5274c0cc42bca2a2cf6c3ddb623eb4f48c9a49275b2a6959311935fd3e1ca32ce775da6bf0c531542a49c31039c438000d1d15c8ab"; - hasRunfiles = true; - license = [ "bsd3" ]; -}; -uptex.binfiles = [ - "euptex" - "r-upmpost" - "upbibtex" - "updvitomp" - "updvitype" - "upmpost" - "uppltotf" - "uptex" - "uptftopl" - "wovp2ovf" -]; -upzhkinsoku = { - revision = 47354; - shortdesc = "Supplementary Chinese kinsoku for Unicode *pTeX"; - stripPrefix = 0; - sha512.run = "03dcf2b73ca644f8e9e2589082d49a4d502adb51944fcd9ee5cf737ae782611b35ef2eda4242b7eec2b8033014ddbbbea3abb52b1bfe90be9cc1634345223d53"; - sha512.doc = "d4c038d864b40603281f3186e21110ec96530e84a9ff88be4241cad165d09cd091b28bd768ca8ca0a28575dd850bb68ff88ab553cf9caaee6edd8d311c6fc9e2"; - hasRunfiles = true; - license = [ "knuth" ]; - version = "0.5"; -}; -urcls = { - revision = 49903; - shortdesc = "Beamer and scrlttr2 classes and styles for the University of Regensburg"; - stripPrefix = 0; - sha512.run = "5b8c80a756e45e5b847c3b970005b866f6c498eff7646155c73a9b86585dffd73e8dc66d91583dd691c910caccab60ee22a1e9dbe3aa450290fb17f019477172"; - sha512.doc = "40b8e4ea2abcc82acb843c692d90e964932f1ad7d0e818d54eeec77340f49686aafcf2fcf3f8f4d942f7cd967754ab24ee2075c6906862266f5af56251063fee"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -uri = { - revision = 48602; - shortdesc = "Hyperlinks for a wide range of URIs"; - stripPrefix = 0; - sha512.run = "402974f30df5a00118d4bd2e978f342cdcdb22119059dbd0c1b2111fd1ce94ab8a29ceff88672c80d18a669d5440bd48dfcd23fa07844f492e5f7e0eda1671a6"; - sha512.doc = "b2cc8cbcbc81f0c3db349952546e60c152044aae264d4b30aadb6b90b7aa5b304c89203b6219bb5161807bf1e4649235d2f98a60339a0cb93a588852a1755e00"; - sha512.source = "0206e0d2907f3976fd605d78284a44c909ff23f16ce9b2490556136099e56a374bd410e1c9bd5687bb791334612af1cc5a62a8b53f8c7876bf02d921c9868a68"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0b"; -}; -url = { - revision = 32528; - shortdesc = "Verbatim with URL-sensitive line breaks"; - stripPrefix = 0; - sha512.run = "164fb94cb128e997031bfdf8c602892d78813694f39f4b95bfead8a5b7e3cd9a0d9596dbe697e012bdf84b89c2551c2f2f1c7f99d4543e357edfaf2076b9cfba"; - sha512.doc = "65596e0ce813233491959ef161be8570450c6c71c787b3253d0bce503558e63902137a6d337ad1e7cd2499feacbba4a93b7b75559750d05d7898ff2527f1240c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4"; -}; -urlbst = { - revision = 65694; - shortdesc = "Web support for BibTeX"; - sha512.run = "25d5655fc01f98a1414aa962d8ad924464835aaed993e3bb5a749721034aacb559a4ca1590d353615734535ac91d31abf7b99004f6298525ac618f35bfcb0fd0"; - sha512.doc = "897c866ab03bdd5ab741537182788c5f484009681d6fb98f1149329068be707abae7ef012c0bd0170e2b4b673eaa63b46f5d0d55714015e8a451457f5a6c540c"; - sha512.source = "5bbad9719daeeb8c03e7db6ef956881994bc17d7ced9b45165ad45899a7230ea8c0ceeb23d209d36535d2081b6b611d46c19b1f0f03e8fbae1788f31ab09e7bd"; - hasRunfiles = true; - license = [ "gpl2Only" "lppl13c" ]; - version = "0.9.1"; -}; -urlbst.binfiles = [ - "urlbst" -]; -urwchancal = { - revision = 21701; - shortdesc = "Use URW's clone of Zapf Chancery as a maths alphabet"; - stripPrefix = 0; - sha512.run = "beb82950bda88e7170c7ad753e93859f96190f30e89fbfbe1cdbe37930b07740f70da40124639c6ab14be93fe79c5e87b35296b68c702888d3e9e25100e86a9c"; - sha512.doc = "8f218f76d45a2f3ea9be173ba1c6efcb8a7cff26a43149b7e0ef4fc535a4638cffe69358d8ccac44a3306044720958ea9189996e88a38d560d264f5fba6863ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -usebib = { - revision = 25969; - shortdesc = "A simple bibliography processor"; - stripPrefix = 0; - sha512.run = "94e0ded0c7e7ac10f2d8ff9324afcfdd2dad8247cf31cd6b404d9c2b12e223e6f435ec9d3dfad0ab510b943050444f5206788540a948e44f44c5d011596cd34d"; - sha512.doc = "3b489185729ac7d93ebbfd632b77eeb865b39043b2b68d920a6ef561ac55701a44d362b84c1fb83a2f59770442a655b779c6e49287c9d2859c44140e61c543e6"; - sha512.source = "a0c64ad5a7479da4906b848a31ceb02b047a98e8e2c505ee748f2eed4ba27dc8b6d89d8ee3a171566417315cc2b83810f514f1a0c11f1bd4a28b57cca03676df"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0a"; -}; -useclass = { - revision = 70447; - shortdesc = "Load classes as packages"; - stripPrefix = 0; - sha512.run = "d1343768b6e6f89a31c437983db7d2cf2e52eff35054604719b08c5ac9ce9ce936982ce7885010e8f4929208a944746e07f28090099eec3ac3955bbf6805c396"; - sha512.doc = "9904c849d24426fb3139d92a0a502af362e12bd8d7d993da422a0e5a0ac0984d3a6f8504d0fdf88e170244877300efa1b366ad11e2683db75edd6c7fdc8b2a1e"; - sha512.source = "c9e2083c974e78991310afa76d9b49ea5fb8bee62057aef1dd0f92fe1e26628b4bf0fb7e0dbb1d3dc734c307b8b6cf536d38e0b68ce825ce5b7605e0b74d76f2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ushort = { - revision = 32261; - shortdesc = "Shorter (and longer) underlines and underbars"; - stripPrefix = 0; - sha512.run = "2ece6efb162a13c37413e4fe2eed33ab7982d681fcd9435ce53248dc4c573cd90ac51293424385aac29b84159b34fb3f7fde2bc8d39eacc71f0ecc91c8db7af8"; - sha512.doc = "d262bb270e41cb7d9378d42ec075a81158d401b737acc7788722ea7e99d896de1eb98c04a65e733d6e83f6229a9703f72bfd0a11e36e52d4799e82e19c102d5b"; - sha512.source = "a26cdd79055b74cf30202c162fb38243571ce2bac990ea44a0eecaff407951aebd5ff4619cafa6190ef8ba6101d86a800262ad1b09972dbf7b207398b82da672"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.2"; -}; -uspace = { - revision = 63123; - shortdesc = "Giving meaning to various Unicode space characters"; - stripPrefix = 0; - sha512.run = "cb830007a35024a6fb7817f186fd0c02270c1cc639240f2077b10193e411f207ecb744281540dd6cfb1cd830424d9a5256fc7cf5a315adcab082b6f69e7da1d9"; - sha512.doc = "894c14ae766ada6c0eec7b3d5a2c64931a011560057fa3732eb32de0bfabb6cfedcc27d73235dfe8616e9e6403cef563880bbb66f2ec2a1244da95c92fd2002c"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.05"; -}; -uspatent = { - revision = 27744; - shortdesc = "U.S. Patent Application Tools for LaTeX and LyX"; - stripPrefix = 0; - sha512.run = "fbcce7a06cc018dfba47aa7e9d572003136d5b179e957f10e2bb42b2635ef4cdd40bbef19e8f827963d048eadb23a1aeedcebc87cf128f5b28cb1ab281408b90"; - sha512.doc = "e0eafb5fadeab38da049d0d5cbadc8fa3dc3c335afe4fd5289fe30de38f0898cdd9dee091b703f6a853eba56b32b161abfe56b3185c71512c9374585e6d9784d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -ut-thesis = { - revision = 65767; - shortdesc = "University of Toronto thesis style"; - stripPrefix = 0; - sha512.run = "a5a9c3028582fd2c379f00adb5d6abc650d0d89c3a802726c6e4c0e86f9083c445a9a431bec9be956ef242a0b3051f32eb5b63387e2fa380961195cca8d3832a"; - sha512.doc = "d1e28a7d927620e259caee4c4affa8af9aad67089a0886f098ff85d96bfa473863aa4c9f6ef225629fe3c97b7505a9bb73802ef861c4198002ae1af4456b1cbc"; - sha512.source = "0ed214fa702923f6a9599bcbadd0e670545d308c32502ffeb4381e64d2f5aec4cba6b74f44e208789d9626d160b111409b5b70c46b3bd9d311d9294a4b57df80"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1.7"; -}; -utexasthesis = { - revision = 48648; - shortdesc = "University of Texas at Austin graduate thesis style"; - stripPrefix = 0; - sha512.run = "829826bbc06bbd9b8ffe585705856bbe4bc99973bad7bedd489ff23fad9cc19c4f33beb88756644d76945126983586fdf78eabb305e353cb8bde8341a3d20fc4"; - sha512.doc = "65e3100a6acd2a02df2e95834e5e99d718cd0b73e20ef6da839cbc9831918f63a2f5b38ad888a5068b1fd87ad71ac480754d5e6b459465cbb6238d4a3b3c09b1"; - hasRunfiles = true; - license = [ "cc0" ]; - version = "1.0"; -}; -utf8add = { - revision = 61074; - shortdesc = "Additional support for UTF-8 encoded LaTeX input"; - stripPrefix = 0; - sha512.run = "988d720d5f4dac3d15e7483e1ce904f214055407c41c19ee7c2683db592ef870cc9a87d28f47092cd062b5ac5bd061b68738046dcea919b0aa9573b0c31a04c3"; - sha512.doc = "c1f41ca0ea536db11e2e6c1df561e74f8bc51da3147410f7f33863d0be1d38948bcb64d0f4d8c41737278435d2f88b8ad758d2c48f1672b682169de5e0099b70"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; -}; -utf8mex = { - revision = 15878; - shortdesc = "Tools to produce formats that read Polish language input"; - stripPrefix = 0; - sha512.run = "0cd4c549c7b00939dec5055705658f76f6ebbe5de70e082652b761673ba5a249924fb862a319512a9a124b9cdaae8906c74439bba97be8825d4d1ffc70642c8f"; - sha512.doc = "cd438089d90faa0e9144d23adb78ce91d85b80ce084cb92511cc23882c675cb654cb704aebeb623bb29c70b764c8a0ab19915607664895c457c583f376c1088e"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -utfsym = { - revision = 63076; - shortdesc = "Provides various Unicode symbols"; - stripPrefix = 0; - sha512.run = "66dd74f22a26022eb13ff7a8807612d33a978070f86ee5e0eecd9b957684150985e6bd6bdb81c8917781926a0e8c13f9310aec36e12b0a896a353194f0a900b2"; - sha512.doc = "a70bd657812f64e79f028efb591888863ba5bbc0d7f16a9c70fc1614d21c0fab9d4de2545288b12c7d6c885f489b5b0062e739e531595b8673bdd4a7e1da653b"; - hasRunfiles = true; - license = [ "cc0" ]; - version = "0.9.0"; -}; -utopia = { - revision = 15878; - shortdesc = "Adobe Utopia fonts"; - stripPrefix = 0; - sha512.run = "5f58ac6dacaddf4110b2ac2f77fc0da90d5cfdff26d888b26af06cd6dd8f483c7a6a12e0aab3f50d4188aab9ab649d993ad89e74898d54c14b3de4948451279b"; - sha512.doc = "ba60eaf55cc08378560048ebc6f735e743449a18d2822e6027a86e595a9634461713ceb37d15b9f0c8239f1935f910bbdbd9a0d0d6fa1683174739f91c16a504"; - hasRunfiles = true; - license = [ "free" ]; -}; -uvaletter = { - revision = 66712; - shortdesc = "Unofficial letterhead template for the University of Amsterdam"; - stripPrefix = 0; - sha512.run = "df759bb1a8acc3a770d9c4f2753c7968ec2a4bcdb2f8d68cd97e25e36a1a72e4ff5d16da3ce69059679eecb10d5de56464297159c7d3b0b8e16684b5cb97108d"; - sha512.doc = "d5e076da3feb4904b0af7b6be1db59c2454784f5d9679f6f6cbde3cabde6b70b075d83126313f5938dd9d153344986a6e8b574e540b39c4fba82d513e2d61b61"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.1.1"; -}; -uwa-colours = { - revision = 60443; - shortdesc = "The colour palette of The University of Western Australia"; - stripPrefix = 0; - sha512.run = "c2ec752b4cbf80f35787db83a0d227306689b1ba9bee6339bb6c2940fd938ce33daa995bbad2c58ed9284143ad3f45aed6668dff88134878cf115968c6820a3c"; - sha512.doc = "42745187e02211f149c74c82e0046f42eb5c1c6b01c39fcc8f0a52ae50613646b216355f29d0af0b6536558c2689b2eb83f31c84d29bc007de4c8f9d78ea6d43"; - sha512.source = "e03bbb8bf8f7684c02623d9f46187cd0b4ba282b1971679927b633ad2b987748c3f784caa6eb01054422f91f2703e2733dca0bdf2c89902ef61321875e2e96a9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.0"; -}; -uwa-letterhead = { - revision = 64491; - shortdesc = "The letterhead of the University of Western Australia"; - stripPrefix = 0; - sha512.run = "f9e4b88e01528992956abffcadc5614ea0a250283b0bc87709e228fdc394b58600c7cd41d4c9d944a6cddb66b9a23b8ad3473f37de8cb566aaca218d348fcce3"; - sha512.doc = "63a53dbd15700956d199ec147ccdf5c84e821e2a19ff46209f869a5656055fa9e4654746cb7f89b7cca1a3927c64715008846d87d85c8ffe6c269056b0d7a6c1"; - sha512.source = "c86680643bbf04636e3a2cc581ddaa457d48a6dd7d5a7344480a1b1340b27f3fc23657422d5ec44200ce9fed77d1f705b85fee5ae4cf195481eb8c57fb96729e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -uwa-pcf = { - revision = 64491; - shortdesc = "A Participant Consent Form (PCF) for a human research protocol at the University of Western Australia"; - stripPrefix = 0; - sha512.run = "290e29b50c9842d87479c3ace96368ada1c0561e12b6c09d8b562a134a935511bca6ea177ec863e0c57339b90177f09a5305d41f741b821a621ef2a80af32aae"; - sha512.doc = "22268ddb91b0490a9df9805803c831ff1f4259311b1fe02103658d6da69b0ec474bcb3b7b918aad23a365c343e1bab3124927d36c86d06bf3e91e021d8a9bbe4"; - sha512.source = "cabcde080b1409d27212c2a9e00432a19c68b6af3a8304695a47311ff83745d22612c0bb967f58485e9d030700df47b97425627b2f2e2365bb57c6ac0fe33884"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -uwa-pif = { - revision = 64491; - shortdesc = "A Participant Information Form (PIF) for a human research protocol at the University of Western Australia"; - stripPrefix = 0; - sha512.run = "d16d72cece1e8d98495066ba0b55dbdb51ab4909cad1b99d9d11534dcf1c57bd3b7ebfef27b2825ca24bb0e19bf4b8a6e9a1bb3b28fff061377e90c8c0afb52f"; - sha512.doc = "d14e8f6cb0aea97df72cd801e474f7062411a15e31294a032d6e0d33f084f0edcde6b1e7d0319abfe0881de9dfaabfe89fa444f6e846f1a27916e8377358c310"; - sha512.source = "27c47feaa89b3820824761d67d56a0f99033fb42d987b807b29624448c6f61dd7383eb16b3cebc23f899fc718e62767a567a914bdec3bf012570a8ca6cd0faaa"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.1"; -}; -uwmslide = { - revision = 27354; - shortdesc = "Slides with a simple Power Point like appearance"; - stripPrefix = 0; - sha512.run = "a4ee1019a36a66abb6614dcf6ffdd9706b705bd18a19d34fcedba441c355ce3a7573ea0ee53686b325c6d6b485fef99dd1254118d1cdd1603e1597b0fa17b751"; - sha512.doc = "7560c214913e9dc61d01ba8528e1bc147a4f261995294c8c938ffd853a9b6a174c1d1d47e49fa20351ea45d61dca03ef7f0ff085e8725820c24d2895a0d17530"; - hasRunfiles = true; - license = [ "artistic1-cl8" ]; -}; -uwthesis = { - revision = 15878; - shortdesc = "University of Washington thesis class"; - stripPrefix = 0; - sha512.run = "07bb8a3ab65110aef8de3b606ca53060dc8f29c76de55a5a84e87d43fe0e09dd16b48ec09b9a451f2285c06450ad059c4c3f9b8d48a21572a1bffbe2ee512a6c"; - sha512.doc = "278a7ce5f0bab547de0c8dd4a26dc270500baf8abfca1ff1a8e76283fffff4a73835fbb1daea2f6864cb9dca3e0fff297887ab10305c6a87ea1d7384d964a9d5"; - hasRunfiles = true; - license = [ "asl20" ]; - version = "6.13"; -}; -vak = { - revision = 23431; - shortdesc = "BibTeX style for Russian Theses, books, etc"; - stripPrefix = 0; - sha512.run = "b7606cf33b8e9d14f4ca4cced0620810eecc469faba959728d3b4d7f8d87023d600fb33f1739ce0e7d14d4a54936fbc682a54d8ad8c6b514a1f2baed2c79b2f1"; - sha512.doc = "1e6f148de79c2ecb5fcd03ff1509c3a509ee40795af0e7f7a95fdc64c403f2de7f9d9ca37716b6488cd496e2be0565749222ae95f8b97e5cf7e05b3877bb6d62"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -vancouver = { - revision = 59192; - shortdesc = "Bibliographic style file for Biomedical Journals"; - stripPrefix = 0; - sha512.run = "9fd38e4545902a8f715e2912ce2046a679476f0a91ee76af74213b65689c4e2c01aa68ea8fdb09d93442097695443a2be0d6169dd50fc8ec63a7f9fe424ea739"; - sha512.doc = "4bb074a9ae48d6e565b1b60dfcdec4b6fe35e367639c3737e68e4cdeb9ed9017b17d57ebe895865b6b0f63bb7d66df5af08360d149aa5f2f7c604bf90faa9859"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -variablelm = { - revision = 60014; - shortdesc = "Font definitions for the variable Latin Modern fonts"; - stripPrefix = 0; - sha512.run = "1c34d4afa65db4993f3098cb32b604c68a75bc2c0b56b026a6d50c2de61392d4bace210dab2fb5ca0c15253e7486406aa3aa5084e2296bd5e8f1e9c953419627"; - sha512.doc = "56bbeff2f9cb4a99c05416d7fae7cea8cef81e712092ae8b5d1ca644769debdd95c443fb6af7edc034fe9d778147e1b37da50d951278a7f64c407dead5f6e7cb"; - hasRunfiles = true; - license = [ "gfl" ]; - version = "1.2"; -}; -variations = { - revision = 15878; - shortdesc = "Typeset tables of variations of functions"; - stripPrefix = 0; - sha512.run = "71252475aec013adf9bf41460753a648420ea70fb093cadc667500a6884adcf0c6661a2d81053a733844a3f8595ccffb5ac5f7680689575d8485c47a1cc1e469"; - sha512.doc = "75d6d8afd13f6751bad23d0adc58355d75e355554dd95971dc16ac148150990e1362ec211a3f3e6fd832ce231dbd08e50ed9d44856c763e47ddb5374b1b182ff"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "0.3"; -}; -varindex = { - revision = 32262; - shortdesc = "Luxury frontend to the \index command"; - stripPrefix = 0; - sha512.run = "fb7216b4cb06126970148788859d9c12a0626d25321cc591b2db5d7018ab2a76f5c6505d9cd47da6a3babc765dcedb6653a3ead2eea67f688cd883fe81d9f42a"; - sha512.doc = "30b9f50b7357f12774f78f0792ee0321b5ba84d2c3dff96f5f98d87cf0bb811a2fee74b2bc691fef07a80eb65e13e42b657b74efb0ee334b4f04da7bfdd0b75e"; - sha512.source = "19571ec2000fb99ac8e1b188e2f6965748c78476bb3fb2d38c2f668b02d268817c6f2670b9bd51df48c2db8fca1e6f62ac738f378a6832368c74de297f19b679"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3"; -}; -varisize = { - revision = 15878; - shortdesc = "Change font size in Plain TeX"; - stripPrefix = 0; - sha512.run = "c1a900aa29601e9bcc5d1047ea5bca0bd3c079d05e8c42c8e3f85521cd8a1989425650d0e84ab0acf2a38e468bc4823e149cf1e799da8eea1d6af4554cbc0c94"; - sha512.doc = "f575e4faff4a80f72108ef5b97abb0bda08573669bb8b28592fa607538c632d3b59626282a0ff8d7805e6b66121b2c231618901a9dd71f0242e1a0875a3e2068"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -varsfromjobname = { - revision = 44154; - shortdesc = "Extract variables from the name of the LaTeX file"; - stripPrefix = 0; - sha512.run = "0d5fb07c93fdd08570ef1dfa120870f4619b124cde769f48b4107c41827dd65c023840e1344aa283d0b21bfb0af2346135577510119579c531731f132bbfee1a"; - sha512.doc = "57e3111b8426ace2a838a128dae49a6ffadc6892e4b85cfc83eae3b9422dc4188e505fcb2a281ff38cbeb18e385ba1da398111c5f00683568999004ffd5eaea7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -varwidth = { - revision = 24104; - shortdesc = "A variable-width minipage"; - stripPrefix = 0; - sha512.run = "d44fcd1912f1751ab18f5d7d00ed47f42bed3ad2863b35781a83df9c881943c3e1916d003361b6e64640326541f43a37abdb0a3cdfe07e4d0cf7980dfc5fe1bb"; - sha512.doc = "ba0c0d562a7c9db36637bb18fa6f0d01661b229c66b8f0d2bd7cbafe286b81485e84bcccd06c4d47561db8895cf8933ff11d08a8de0b01405d6c7dde443e86e6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.92"; -}; -vaucanson-g = { - revision = 15878; - shortdesc = "PSTricks macros for drawing automata"; - stripPrefix = 0; - sha512.run = "e4bf83ea01ff4162f95dd595b93635ed988ae081d0c65ada59ae64c6c64c730dbb92ae049d22dcc20d6204c5a7cbca5cd643be6c572e51a3aa17df88c6f1f700"; - sha512.doc = "520aabba38562e208b464fc0d4e9f9a138c238abb94b43e89864e4ac21acfd35e5d6e224e855ab4baf9feb1df736b7e937508f6245e5f873c5c8f8a75947e014"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -vcell = { - revision = 59039; - shortdesc = "Vertical alignment of content inside table cells"; - stripPrefix = 0; - sha512.run = "39d8f934a07095d21219d58fb41fd3e939391d5c68c51d8b9ec82a97522e55fc09a23195c8b5ae48cc3e9d9bb9a62a0b22123f467627784c767321140356d6b1"; - sha512.doc = "f13e941e7327f4369112f59387cae9c49f10197a2c7c4016cbcc5880759d89fe88535266f5f753b48b547deda24a3ad959b42f864b9ca2764cd593bacbf908b4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.2"; -}; -vdmlisting = { - revision = 56905; - shortdesc = "Typesetting VDM in ASCII syntax"; - stripPrefix = 0; - sha512.run = "4c4b5deda36fab8ac8cadfea2093da188284cb26eb9874f27ffbedab1235d4e7bdf48e977a714fb33f0ef2c5cf4c0b92c14767c565efa6842cabf451af51c1de"; - sha512.doc = "fcd476e8ae2db61e3a71b1dd4bffae34e6eedaa409dc3434179ca66bafa2dc4b5790bd06bf90db609f91c682d2b7bf9d5effa893e5fb914c26c20acf67f8b22a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -vectorlogos = { - revision = 69010; - shortdesc = "Vectorial logos (GeoGebra, Emacs, Scratch, ...) with 'inline' support"; - stripPrefix = 0; - sha512.run = "cf9232e47bd3deacea13e858f4b85b45000d09f1df7fdc09bd84ed2f30de669b5d79d048a97d9aed05ccbe4ab65977becdae35b1bcbb2bb5efd2c874d7d71d22"; - sha512.doc = "21725294c097268bf0403c9cd7cfca5a8e9541cd6829ab65c561ed4ce6e111943000e0bae54aac328262524bd19ba75e90979660948631103b4a97e4ca63930e"; - hasRunfiles = true; - license = [ "lppl13c" "cc-by-30" "cc-by-40" "free" ]; - version = "0.1.2"; -}; -velthuis = { - revision = 66186; - shortdesc = "Typeset Devanagari"; - deps = [ - "xetex-devanagari" + ptex = { + revision = 66186; + shortdesc = "A TeX system for publishing in Japanese"; + deps = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "ptex-base" + "ptex-fonts" + ]; + formats = [ + { + name = "eptex"; + engine = "eptex"; + options = "*eptex.ini"; + patterns = [ "language.def" ]; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + "ptex-base" + "ptex-fonts" + "etex" + ]; + } + { + name = "ptex"; + engine = "eptex"; + options = "ptex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + "ptex-base" + "ptex-fonts" + ]; + } + ]; + fontMaps = [ "KanjiMap ptex-@jaEmbed@@jaVariant@.map" ]; + sha512.run = "dca32af2c2742207b380c909190204049e29eb9c824f534c39757e3544e305a9395c9fd6ff76d855f1e7fc67e0999bfd863640fc2d2f45dc44bdaa7df543568f"; + sha512.doc = "160902b1b32b9725f4c7cabd06dfb612fbbeef31845df108efd50917d85ef619ba62d03760852d31a21a23e2bdcb5035292b317982d7fede260a696041bb2293"; + hasManpages = true; + license = [ "bsd3" ]; + }; + ptex-base = { + revision = 64072; + shortdesc = "Plain TeX format for pTeX and e-pTeX"; + stripPrefix = 0; + sha512.run = "b937359bde7ade3645edb6435a824ee6af66e51e7cb518694706224e63e4d92391911f01745d331cb92e62c34c085aa5f284babacf6f7ab0a0474cbf06b00859"; + sha512.doc = "85b6422630754144e4f9c552899e588f1650af2837cf88e8f47106e2919bee8dd956002e102f83dd76107edb0e61e2a6d4ebfaaf6fc06289942fdb32385454ba"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + ptex-fontmaps = { + revision = 65953; + shortdesc = "Font maps and configuration tools for Japanese/Chinese/Korean fonts with (u)ptex"; + postactionScript = "tlpkg/tlpostcode/ptex-fontmaps-tlpost.pl"; + sha512.run = "b864c185b5718dfa76e0d4385654ca8e319ab0cbb59911defbec8d6198879265d064087df233d9020f3abc4bebe0742530f40b2ae6e584dbb4f5b6ed7ff28d07"; + sha512.doc = "4b21fe546634aad338630520bf68fce2a83f8e6fade99d170ef87a92c8308dd289ed130bf67bfc88419f8752454ab04730bfaa68de90535984590ce8435d87b5"; + sha512.source = "028304d777bfd5155baf89fcd4003bec43e5a7f3009aa9250cfd13277d085cbe52cf49511cf664efa0c886b1681475b0c25eaa65624bf0b77d4ab4403ebb457a"; + hasRunfiles = true; + hasTlpkg = true; + license = [ + "publicDomain" + "gpl3Only" + ]; + version = "20210625.0"; + }; + ptex-fontmaps.binfiles = [ + "kanji-config-updmap" + "kanji-config-updmap-sys" + "kanji-config-updmap-user" + "kanji-fontmap-creator" ]; - fontMaps = [ - "MixedMap dvng.map" + ptex-fonts = { + revision = 64330; + shortdesc = "Fonts for use with pTeX"; + stripPrefix = 0; + sha512.run = "d625f45f7211eca1152a16814ce87814cc19eb7d6646d4f66971eb08eeec50bcf91ddcc253f4ffe24418a3e2a989ce10c03a3536730ac286980742cdfa22fe67"; + sha512.doc = "3a07313f79f31d09bf96c78a574d00d57641df75b9eeb89c76425ee3d6cd51d1e6ad6574fffdeb834d2bc2fa8c41511561aec34ca6be2be43d55da6227d19a19"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + ptex-manual = { + revision = 68147; + shortdesc = "Japanese pTeX manual"; + stripPrefix = 0; + sha512.run = "ffad7c7c67e7c6c92ec7b814cba8ca8cd7fc9935d5b6c7f685ee83b97cca56ac410ee2c15f8d86f4bbf443508f2e2224603c9abc64e734451ee94ce968425d62"; + sha512.doc = "dc2643c258a98410d9a456e16794d70bf6de6e1a40b8db2bcf7fb40e20953bbe482cb26cf3e65b0caa19806e915cfdd3787ddcbf69108e2af0d83e03d3b0104b"; + license = [ "bsd3" ]; + }; + ptex.binfiles = [ + "eptex" + "makejvf" + "mendex" + "pbibtex" + "pdvitomp" + "pdvitype" + "pmpost" + "ppltotf" + "ptex" + "ptftopl" + "r-pmpost" ]; - sha512.run = "b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec"; - sha512.doc = "06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.17.1"; -}; -velthuis.binfiles = [ - "devnag" -]; -venn = { - revision = 15878; - shortdesc = "Creating Venn diagrams with MetaPost"; - stripPrefix = 0; - sha512.run = "617ba85e996943d62a33acb2535e23700fffc63331741065faee558bebde608232a31bd73aa79ad707b107a9adda8b454f9b81dee184a64d94f32c44d76180c0"; - sha512.doc = "0b1940cdc2bcbb7e2f103497622c4d5971abf4f6f4885f60b35a360cd655c34cd789ecbfbef9d35c61611ef22198200b11008f4f59588a5cd111870b77ba19d5"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -venndiagram = { - revision = 47952; - shortdesc = "Creating Venn diagrams with TikZ"; - stripPrefix = 0; - sha512.run = "cf57b84165067234f5be58b2300eebb77339c33b883895e47cffdbc7c4acb6d013db7ace1eb47ef491e21526cea8b3ab993fac836498bfa16a5cea700caedd5b"; - sha512.doc = "966f7eea0d4c40004b9710c53fdd6838b757a2c8ed47b4098ca2d47834ba52575ac7c062497f1a6d26dadfcf0d7f95f2213d34bc638262520aade0e78beac827"; - sha512.source = "16bfa22856952e9c0595532432eb774a2ef44f52950002db670e5f3e22af02981305ed5eda1265b6d1a97f43d9a6292311bad5268a562aff6ab00f4a14a058f7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -venturisadf = { - revision = 19444; - shortdesc = "Venturis ADF fonts collection"; - stripPrefix = 0; - fontMaps = [ - "Map yv1.map" - "Map yv2.map" - "Map yv3.map" - "Map yvo.map" - "Map yvt.map" + ptex2pdf = { + revision = 65953; + shortdesc = "Convert Japanese TeX documents to PDF"; + postactionScript = "tlpkg/tlpostcode/ptex2pdf-tlpost.pl"; + sha512.run = "6a4246d9fbc7cc6f37319d338df8320769cd4b1f0247186beea117b8bf228263f3a330146cf251a9e8e8c7232eb894ce6dad9eda840dd4a154f2502eae4c0f57"; + sha512.doc = "5635ead2dfa20ce9b616073272452de5c68c55104d88b2362b87cafe4762608d681b0c370169bff78466520d14f9055e509efdaa4ecdb083c3c3111ad829978c"; + hasRunfiles = true; + hasTlpkg = true; + scriptExts = [ "lua" ]; + license = [ "gpl2Only" ]; + version = "20200520.0"; + }; + ptex2pdf.binfiles = [ "ptex2pdf" ]; + ptext = { + revision = 30171; + shortdesc = "A 'lipsum' for Persian"; + stripPrefix = 0; + sha512.run = "ceb8844ff23034bf730823349e6251ef0c7f208ef74c3ed61fa212af89a3208e8f9f1b74b7877698d4459047b64376faea647a919b340d306d54de43ee9617a2"; + sha512.doc = "31ec6dea18c99aac831f4f180ccce47781ce98b2a8859bb62019cdffd690a8b803cba66728d1a9805a8a39de9ef43e357be8fb6a16e0602cf67f7f9dc6cb317e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.1"; + }; + ptlatexcommands = { + revision = 67125; + shortdesc = "LaTeX to commands in Portuguese"; + stripPrefix = 0; + sha512.run = "2a2924af70b0ed8d76f6062482a500371d67d5a3bc0b87382d76626b34da9c1acdf9c123ebfdab2e5e79041b10d0e327e9cd732781e5fa1620247bdf02dc21fb"; + sha512.doc = "5b9fc92a4cb3597c0c95936d5fb6ad475ca4f9896f8165a0e391e591bb3fc9ea75ae79c14ee62197200d69d577df8025e6017960beafe6bef0bda90a6a615118"; + sha512.source = "47c0d8ffd0f352a39f54ce32696fa67d25dd438de8fede88bfc5542409cf5576c953b40180b5ee1f469067e2ae5ea8543a68c84246ef9ffdc3c51c14866be690"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1"; + }; + ptolemaicastronomy = { + revision = 50810; + shortdesc = "Diagrams of sphere models for variably strict conditionals (Lewis counterfactuals)"; + stripPrefix = 0; + sha512.run = "58202171aa08b297e2999554d8b6ee43d4c5772e2f28fcf73c11a00ff8476dcdebfaa5352c7d248720feab2ba642947f07362cd9124dbed27e22086123da3de6"; + sha512.doc = "04997eb4bfd5c5e7789b5db02e9c27a9eb4d65e685be1428c5b81199957dff5aca626a76c719d871217ccaa2a6e6eef6c17ed94f4ea161f581b77a22306d61f3"; + sha512.source = "2a2d250d5deff043970037268b6f7400e073da58b1e6fce0d2a6e2b0c77a567dc683f616fd7ba67b659bec3f137349b37c84b808364bf5359392026730af3aae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ptptex = { + revision = 19440; + shortdesc = "Macros for 'Progress of Theoretical Physics'"; + stripPrefix = 0; + sha512.run = "a2c31b2e039c198d3c3c84cb58cc0b9326bcf11b4c361c1d5c9b8f5aa4943f14b30e722bc2425a38b69935f4c88c67439747ffd65e0a194f2e5dd54a6448bbde"; + sha512.doc = "0e754625fb8507591f21b860901de1b06bcb31f5c0b2fd7df1fa5257c7c611bae4f575f7387362bdd21d826a329a8af3ba00fd30c3bc9d91be7dea5d66e2fdae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + punk = { + revision = 27388; + shortdesc = "Donald Knuth's punk font"; + stripPrefix = 0; + sha512.run = "a442a536dbdaff9dfa9d1cdfe1a084d0f4e4e28174a424cf59a1da94013e115b9fc6294ea3362c85cb770028c62b21f7f7fa9817dbd68787498199ce585589dc"; + sha512.doc = "33842d1fb46a78654d7351ccf88b40b87e6e03d83598f661ac21ee99d45156dd8b37a652c5c8e55506f95fc57b83e7f62f6c90c3fea5443dc5bb6590302b3e7d"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + punk-latex = { + revision = 27389; + shortdesc = "LaTeX support for punk fonts"; + stripPrefix = 0; + sha512.run = "e44098c082465aa620d436a41306c9a1f36075c2612aa045e7c958151fc62e9a740584d9a9dd94b0c5631c00d406762a8e35f672931cccd3c09fe95850f3a2ba"; + sha512.doc = "36a3341d2dca08941a923a1f407b422e96438e79ba5e3911a89f13d48317ec5aa0f5afccc7539b0882996fb872b38bc3653f1e5b088805e5ef7c9d96a4546d01"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + punknova = { + revision = 24649; + shortdesc = "OpenType version of Knuth's Punk font"; + stripPrefix = 0; + sha512.run = "bcb37b02258ba406e8ef3965619c99193c08a4e1d11f771b3c6b06716eac16134be81585220a581176d9e8b4d7f488730ada3b5963238ff982be400cbb41d888"; + sha512.doc = "64df58c8996563a447ed7a012c6dd8f5248c8a7db06089d776e8ce64d516b4a0c4bf9042f587c996c7ab61582bba919551d352c9ca75f8696bcac5ad0e34866c"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.003"; + }; + purifyeps = { + revision = 29725; + shortdesc = "Make EPS work with both LaTeX/dvips and pdfLaTeX"; + sha512.run = "79d99ef7ebc462c7c65d03f23cc85b9f136df2b0c9d647fc0672584fa57bfb7447f6db0e6d6b11bfc738cfe8c8658f45fe0b4059ff00f355e4b21d44f0d4102a"; + sha512.doc = "3f9fadfb35596835b250cab98b0d1e3c6d537cfac5878e0b9788aeb5cc7ef455ce3d44f7d0f03e9002796a162d374f6aa8f9bce5bd4c3f0e8937040de0b82a8d"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + purifyeps.binfiles = [ "purifyeps" ]; + puyotikz = { + revision = 57254; + shortdesc = "Quickly typeset board states of Puyo Puyo games"; + stripPrefix = 0; + sha512.run = "635d17a49a905c99e895df3e777eed02f4c5e91a38d083e57890cd13c927bc68098d5f0864d6e32b2585d288091d15e5cc1303e04e26b2267d7e78a07f77ea0d"; + sha512.doc = "64750274694fa8c7fc792d6f5ba19ab756366eb87668469aa6da9df74f4f7bc571772cc6a406f7c3453f306f36516aca9c2444ce126ff4968d1cc49d2c4585db"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.1"; + }; + pwebmac = { + revision = 69027; + shortdesc = "Consolidated WEB macros for DVI and PDF output"; + stripPrefix = 0; + sha512.run = "aed495ad3c056a34f63416e570db395125719e9a9cb05c5043bd4f0d58713c28ee548c931a5c18d316d0a2a39c81671788f87b422f01148cf9ecdb52ab2a87d2"; + sha512.doc = "0312806d06b3db91d2e0bf3df2c1f3dc8620c1f6b59e4e968232631edac217e99bccede5d9cf133f52409d8a664f69dfa072ab5d205f67fabafa0ee74db90d20"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "4.11"; + }; + pxbase = { + revision = 66187; + shortdesc = "Tools for use with (u)pLaTeX"; + stripPrefix = 0; + sha512.run = "34fef6f30f53ea2c67394f931168025f7dae7f6e12904b862ef821040a15eb3eac0949ebfab7b1b3dfae8e9944fdb85b99294fc6214df0ce8c1b82eac2702ed2"; + sha512.doc = "4e1fd7e88d8e17dbc4f65a7dab0f3c4bbcccf3b24b55085fafc9f393cd99a653ec2c4fa41ca85760436a1c7c6121848c57912ff649c302db6966a5c907dc0209"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.4"; + }; + pxchfon = { + revision = 68103; + shortdesc = "Japanese font setup for pLaTeX and upLaTeX"; + stripPrefix = 0; + sha512.run = "c79d32b99873e5262d3497846af0fe8c327d574ac61030241a8a1d95e4439794439cd3fb75cdcae51206e76bd4218a6778717492c036ab71aecd8e67a0040990"; + sha512.doc = "1f50dcd95cf37669330d426238d398d5bfb2503e4db06287f7a361ef87136547d1020bf1d35fcd9504ea5017dc9ec0a0cb8f9298e4d178ec4c7cd426d91f1d6f"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.0"; + }; + pxcjkcat = { + revision = 63967; + shortdesc = "LaTeX interface for the CJK category codes of upTeX"; + stripPrefix = 0; + sha512.run = "81a71b6cfdd280f65f392ad602291d468a8ffeda440609f513166b88bc1af298d6be546e953e4f3a9abac3f0bae235c12b124e11258c53c1abf778f3f78f3559"; + sha512.doc = "69fe6721aa9aa17aa1aac44680e7a520b7fd002c8fd06d2ccdde0e4d20a17875b9b585394159528fb9bf2c6e817c8e3762efce21a938217a199e49094592ec50"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.4"; + }; + pxfonts = { + revision = 15878; + shortdesc = "Palatino-like fonts in support of mathematics"; + stripPrefix = 0; + fontMaps = [ "Map pxfonts.map" ]; + sha512.run = "3b50d3f04c00cd080495c71d9387fe9c810ade7d83ead1178d661a618374a3a67c0fc70ae2a809d2b91db4afaf352b1596a588f6998a4eda220a6f181390b6d1"; + sha512.doc = "71898d307cabff64078bbb98bee9417c79504fd56f1cfc1427b9e4ccc9448b5e2e8436fa085a63d6fa6601e591673ef52eb2225ddfad5e34943456a2239206a5"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + pxgreeks = { + revision = 21838; + shortdesc = "Shape selection for PX fonts Greek letters"; + stripPrefix = 0; + sha512.run = "d3f8ff3c975643d74dd92e749397d01f8d3fd0087a838271a491791fa4bb2d65c852ff5989f79952d40547a601c97fe0274ab4407a8e73aa047221934b9b2e9d"; + sha512.doc = "22239223646ea121422016119b6d0edce32d002bf361d096c173857b36ce324ebe2e4107bc0eae650b50d0e94775c84f480768246ee65f975ad5a24af0335158"; + sha512.source = "9924c5b5a60d381efc41f77f9b5224a12a158fd7de6551a17b1d32eebb6ca6e80a7686648a81774398c4e25fef759612c652fff983a635f4cf56c5bbfb52858d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + pxjahyper = { + revision = 66272; + shortdesc = "Hyperref support for pLaTeX"; + stripPrefix = 0; + sha512.run = "f6e62e0dd4a5da2e9c702fc09c311a0661d58668c4999eaf5209792d3c88001b9e7d80cc1a9c259ec5e2668a7139a4fe90dac2b23ea756f238a387a6c7e66772"; + sha512.doc = "f08af33a25f837e86dcd6dcd0f96d9f7bb2570eeae9011201468fdc9bac50bb8ea72d4f069753bb0c93aa9d61952cebfbbe936f65220167e4648cb206b901aae"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3"; + }; + pxjodel = { + revision = 64072; + shortdesc = "Help change metrics of fonts from japanese-otf"; + stripPrefix = 0; + sha512.run = "a44871d5c059df8962a135b6f40c3ab4d5d751bcefa5565e428d4efd8f242f34bdbb142a065e011065a8791a141dcef022d5e6ddd6d22cf78e369413b62f046c"; + sha512.doc = "3a85af8fe9f557ae10468e5aab8c6a19c45cc1f99dbae5a3e66530484074ea91f152177ae3ba54cbff8869178055e53b7282674eb748d82d789e767f16e075e3"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.3"; + }; + pxpgfmark = { + revision = 30212; + shortdesc = "e-pTeX driver for PGF inter-picture connections"; + stripPrefix = 0; + sha512.run = "eb341eaebbe2fca860c2592c0d24f6b5c4ef0f1e6b2bd731d48c1994ded7afa01bd5cb365d3f30147f68855777defc3384038aa652240178fc948b5225cb4c08"; + sha512.doc = "8a80eade76fa7b5e5b919136e499eddb5ff534042fc56eb8223e80124bde97a39a65d31370037cf425042a1ae516e5888c8751388899ae65a8b561f091693c97"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2"; + }; + pxpic = { + revision = 67955; + shortdesc = "Draw pixel pictures"; + stripPrefix = 0; + sha512.run = "4eade52198c6ed8a9e04380cab15098435b2e158f8662d32c88599e02e49a2f7f6257bbd6fab8d3c660e61ff679aefb38d29b4787fcef0a3510776a21707526a"; + sha512.doc = "28151cfd56136ef07c9402fb8f4e0da4a2694164a38e7eaeb5045845731b0b204813b9c0f2b07f9998619feea24effd049cb42a0057841a6a3b3bd998dbc0124"; + sha512.source = "f5281b971ee70e963cb308a1906bfe8ef96939005f8b5972680db8565c1d0c9697d674426b0833064a07dbb086163c621d764125b3432af3d960a3e466b250b5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + pxrubrica = { + revision = 66298; + shortdesc = "Ruby annotations according to JIS X 4051"; + stripPrefix = 0; + sha512.run = "0ffdde0f17b1bcb90a858d6dd6ca204eea552b49e91cdc797e6364e8b59cca4808a293154426f9c3f52dd2bdc27e93c091bbddbe6c15862fec144b9e4cd6ea9e"; + sha512.doc = "e2a217a5029857d66882fb5a626e7846a2cd282b9cb2f5a65e6a61919bc7ce23a16294bfc27e9b189a8aee6bcc95cab24a94a6dca221f63d650f38c5e5fce28b"; + sha512.source = "f513b8bcc4e89323b199fd4c793a9405a94206e9498f3c298fd81a7fb07cc46a6e624e71d30b8a7951bb7b081be3ae8c621b992a0c290e0334c834d83244fed7"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3e"; + }; + pxtatescale = { + revision = 63967; + shortdesc = "Patch to graphics driver for scaling in vertical direction of pTeX"; + stripPrefix = 0; + sha512.run = "5198b276ba052495662e7adfba51b039bfc355edc01c206b6b5745338dc43e977ce7a48cd11fab3a71f6e8683f554920bfa41a427d587742d2f64f18e058c5b5"; + sha512.doc = "e3e3cf332727476e80c65118da7e7ad55f9f1c1f6658d2919aa37622bdbbc082858eef4ab718e0632752032e0f4e315c28ab8a218902509b3dbcc32377a02994"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.4"; + }; + pxtxalfa = { + revision = 60847; + shortdesc = "Virtual maths alphabets based on pxfonts and txfonts"; + stripPrefix = 0; + sha512.run = "33dfd01f714a662f351fbd3a0e0f36c413360adac666ca5665c628bf5d3acf732cb61e18190d340d144e146fa04116373259403b9eca314f48dba5ea4e6aa032"; + sha512.doc = "f547cbd3cc4a0e09034e98a27bfedf41e2e2ab9b6561e441d7656b99b6b883bb51f9fa24d731d403133358917428c53489eacf8c7ede08a963ff06c3d0404c1a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2"; + }; + pxufont = { + revision = 67573; + shortdesc = "Emulate non-Unicode Japanese fonts using Unicode fonts"; + stripPrefix = 0; + sha512.run = "370d82da425014bc4464415b4f0fe6fa1cb3375979734731ea829942ead4289e1ac6fc47c1b5c42185c97b9013da2e779c90c10454ea2e4b6e5d65540ce4179a"; + sha512.doc = "551f14e0603c0ebd59c1c250a1f9e894683f69d22de748ee6cca05ee78c75899aec8671fdc784ebc5219163068dad7a98cf94c831d81091892a72e7777bba5dd"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.7"; + }; + pygmentex = { + revision = 64131; + shortdesc = "Use Pygments to format code listings in documents"; + sha512.run = "097a1eec7e6a969b0c2aef3915d8231d7e6b6c234abe79caa7f7325df22f4976d1bcf2b111c87c9b457250a2c89b5b0a29afd7deb81ee309753901768fb3fd08"; + sha512.doc = "050bf2576a7305eda104ac928cb332e6fd1437e1852726442694fb7ec88ebe7fb9e7e54987a13b76aa103afcc446019a57b8e011f4e638469ea34a9788a8e7cf"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "lppl13c" ]; + version = "0.11"; + }; + pygmentex.binfiles = [ "pygmentex" ]; + pyluatex = { + revision = 69372; + shortdesc = "Execute Python code on the fly in your LaTeX documents"; + stripPrefix = 0; + sha512.run = "7d400d0cd1af26732effc31e2b7a7e0cb501d712230805204362bb5fc456d379258ca2075f4c902dd6d4bb6004ba154d47ebd6cbbc5febae8d07c113987b1a60"; + sha512.doc = "3dea8e36fffdc92dd5dc68279e61d0d1bfa374373ada7236b1717b5df7c5cd1baaf2fe8fdfa02c5f64fb8ddbab209055cb707a72ca839e63ea00ffb480f6613f"; + hasRunfiles = true; + license = [ + "mit" + "lppl13c" + ]; + version = "0.6.3"; + }; + pynotebook = { + revision = 69990; + shortdesc = "pynotebook presents (raw, Markdown or Python) codes (and execution with LuaLaTeX) as in a Jupyter Notebook"; + stripPrefix = 0; + sha512.run = "221b2167c77db3e434d253f04536398501e6bd9682e09c1984db040b9822b191366413f5dae85c84dfda5219f84d4f32dfa1366a5da6ca6b2dfc8a55389ce725"; + sha512.doc = "61d565169841a001608af347596e4a91f207ac65c45020fdf6b3a91d29b2c01192161ae1d5d274651ce90c017e27ac3d9e56041a4c2158bb43df2d07e6a9e3f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + python = { + revision = 60162; + shortdesc = "Embed Python code in LaTeX"; + stripPrefix = 0; + sha512.run = "3b2b55d1c8da0c253711ea5d6434ffe3537baf273d8a6798a5455b3170601aec0dfbb418969bd9d79f47ec502a73fa5bcbb3b74bbdd77d242859c0f7496bf8d0"; + sha512.doc = "c6785b22dc6820a84a9edc573e308a79991b4a67ff1c5b17553c05a75155ea9b981380098335162a6a7c3c25d2dc20665e35b9cf74317b5c865bc6d4fbed7a8b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.22"; + }; + pythonhighlight = { + revision = 43191; + shortdesc = "Highlighting of Python code, based on the listings package"; + stripPrefix = 0; + sha512.run = "1018d4383ba04f92d383d2c4f51d30f091528f7a89ff23614e0ebc9e488ef3cc8167de12a42e6a6465c2b3937d849bd5eecc94cab0a9b8003569b06ae2c91632"; + sha512.doc = "31297eb541060d760fd61ebe169b840cf182f8f857986aba5a2a578373037d3c99ee12ec9c707ab1f9d29564925821665997ea45f728273007f61a5f0bea5180"; + hasRunfiles = true; + license = [ "free" ]; + }; + pythonimmediate = { + revision = 69487; + shortdesc = "Library to run Python code"; + stripPrefix = 0; + deps = [ + "currfile" + "l3packages" + "precattl" + "saveenv" + ]; + sha512.run = "d780c2bb49199fdb77c28016bd50a229851580d8c48c45eb098ced2cbd66bd2a5e4b84493b65b160ae02e6a1c22e64ecdafd0718762c0355db13acd9cbc1f943"; + sha512.doc = "75d2a8ded38f8740e8ddbecf938388e06568a2a3648b94611b35072639af2ec128b687259aef2bd12a03b0e205f727532f633bd0163ef44e60a526ed38b30fab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5.0"; + }; + pythontex = { + revision = 59514; + shortdesc = "Run Python from within a document, typesetting the results"; + sha512.run = "2e67beb9974eb9a567726d8a68f7d565aeca97d20484ef6e36312100411eef9d9de937297399a98f367a756f6679314cc1a25201ff11936b8a61f8f1f148830b"; + sha512.doc = "3ec2fe0f095384734575c2c9fd1bc9d485b628485c8ee75cd8fb9ebd6d1f56edbec6f378c7c9e1d5ba9c10c4bbcc3934ddb957dc47a258ac81ca89b5ce3a2e92"; + sha512.source = "8a3cf562716df588d4ada0273c3340b73e16a01524e02a9c83c4ca781b8dd1763a1deb9e303635878721831e0d57b780c0666b694629106650f639061d2f32f4"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "lppl13c" ]; + version = "0.18"; + }; + pythontex.binfiles = [ + "depythontex" + "pythontex" ]; - sha512.run = "0f6b7369c1d589f9725897182f854f008b73dbda47078285635e87d480011bea0610da81512416b0963aa55487d646cd2a957002552ef2b8609d4536c0dd96bf"; - sha512.doc = "b46066744794a8ae1443b18bf1f6ce3d586c8ee8fa5c3273db608751979089b2407a6feab421a3c3c738a682e83e2f44bc5ac86eef1d51fa914ed0f0df985bcb"; - sha512.source = "2deac2b1cd151e41ea604d99209174b28de33d9f9358353b7d8b120c8e3cf45552947497e6d54cdf4024f5a071c39246221fd25cbca09cee7984755036993a40"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.005"; -}; -verbasef = { - revision = 21922; - shortdesc = "VERBatim Automatic Splitting of External Files"; - stripPrefix = 0; - sha512.run = "483a75883ea602f674abec796199c5206420079c6ad5e4c3ac22bd836e7ce02f686cc8b9b749f806fe8e44bce8bd35fc6b17865fc076c72f2223143ee0e8a123"; - sha512.doc = "c88b1275eb4e3b87172e6cd157ad868b7b230d96d00ca0dc550757fdb89648a40b1090b771dcd0776b6f86a9194c553f265d990220348e5bbf9c7aa792f42914"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "1.1"; -}; -verbatimbox = { - revision = 67865; - shortdesc = "Deposit verbatim text in a box"; - stripPrefix = 0; - sha512.run = "a2520d96ed713f3e82135395c7437f1bdce04f539ca924feb1468af6a9afb9a2707edba554f073175bf01d279576d7f3b96cd8a69ff7cd6b82f6fd9dde537f3e"; - sha512.doc = "c9c4a8a720a9dd1381a128480312ee416e6332d7bb4cd6f59c3f3c13f2c4ba5e9445f5659ff4b64cb40059fb117ce79b27b62c07b70a81ad7e3fe987f7dbbc41"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.2"; -}; -verbatimcopy = { - revision = 15878; - shortdesc = "Make copies of text documents from within LaTeX"; - stripPrefix = 0; - sha512.run = "e415f9d74f35e28c73bec5442124b7c426aff8de013aa8a2af9c234ae3ea20c131d5ad21803c92eaaf6d0aef6584b7f9b83218f9665a959ec0d6ba3ef606b081"; - sha512.doc = "0281da688f11d2a2fefc053d8f7866878b337ee85114c551176d6c329009f8c1a8479ccb29f202106f745ba215728e7f08509898182521bcac433699e22843a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.06"; -}; -verbdef = { - revision = 17177; - shortdesc = "Define commands which expand to verbatim text"; - stripPrefix = 0; - sha512.run = "f6bcac8b35bfe707d4e39cf625987ddee6197977894e9f8ded9e3a715e0968d2d1fab07c57edf1d38150ae0c9cfc937230c9fccec431e73ae235a4cd44ed8609"; - sha512.doc = "e64d4bf3018de72a131e7688ebbfcbaa59914c0542d2c632a91097a77f404307f9bdfc613638badb3ccca3854313f17a7a5bfb6426f467bcc98ed235af6ba49c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -verbments = { - revision = 23670; - shortdesc = "Syntax highlighting of source code in LaTeX documents"; - stripPrefix = 0; - sha512.run = "7b5780efe1b6e4cc62909df5d5cd4a03be3dc83717f20738a83f37f539103ad12e382c0a3891b8e81b44086f92b7277b17e88c4e7d81123c04941c38114f23c8"; - sha512.doc = "744471659373efbe040bd0698a9b33a0942d5df33312ad3cdd0f02c0e16fd2c67ea44c4ab13ce83ddca6a5e8ca68c8c8bc40c1a64470a9716511e2275683b004"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.2"; -}; -verifica = { - revision = 56625; - shortdesc = "Typeset (Italian high school) exercises"; - stripPrefix = 0; - sha512.run = "8c3258fdf2040e00495b56605f88160b5179743a7ae3abc6334e734ba9f1fb122bf2e4847fd9a577c1221c9e22dcfa650f15612d7a005b3719ce6c92df180bb3"; - sha512.doc = "de41df53ca78cabf7ab3f672dd00c0042cfd8a71219d694985c18aeffa045dcd37c7b999058d7edf6a2348d83c9ae27d1e242f17a91d43b61f2b873ee2d157ef"; - sha512.source = "85e46be6f8ee729753362243492c7946166049ebd0a89f0871bb9308e6803f5ef9416c30fe380be4961aa466a03afd9541d09e5920a196550582d326a6de8b9f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -verifiche = { - revision = 69726; - shortdesc = "A LaTeX package to typeset (Italian) high school tests"; - stripPrefix = 0; - sha512.run = "6201051c81c5a002423d3a9959e847223350c83ff03dca7792a727f2ff7f0405d20d2499827f5e96ea8e1f2e7855b887b0c2b35180ea2153a5c2126d36e21410"; - sha512.doc = "dfc3fc5a5bc8ccede3bb487a17941ac6e28879c03ea9e398475c058aae07230e2831bc9dae3195effd331abe79eb5f6ea8962da85a9775273810da80d8ada70d"; - sha512.source = "f46df8dc9759ced453752b53003d9377748346f8fbc02ea07a61b8ea44fc51eb6d0290c9b1a940ef74cf1999ec5597794237e0b28bb28b80c331b19c0defc14f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "7.1"; -}; -verifycommand = { - revision = 69389; - shortdesc = "Verifies definitions are unchanged, such as before patching"; - stripPrefix = 0; - sha512.run = "c977f40e851a47dbb329e96df9ac528aa9a2419bbcf34470af1110751365e219aefb36c6d630022b8d57949ea904e12dbb560329c526b3e35bd101c1032e38ff"; - sha512.doc = "69431fb242574e7ee11200904483eaa1a52f5c621d5c7c6511649a80c71d06a5527dfaefb90a74929b81b0cb2559ac136e1f6fe7321689a296a040f6362e35f2"; - sha512.source = "8ef472771c5719e2473702f1a871ceb3512bcf557427e31a5c508701a72e813e6390fee4758f5cd059e27040c55fc5e9a9e094911d82c10d57351d26f851efae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -verse = { - revision = 69882; - shortdesc = "Aids for typesetting simple verse"; - stripPrefix = 0; - sha512.run = "cc76ff256e4e388e0385c4a5152db537b9c3b368a29de79fedc17395d9d3b362c6e3af05a5714d7d2fee68f129cbdfe82874eaf64c8e0093f70dd796e8c381b5"; - sha512.doc = "5c1c29d0008c800bd967445ec3efbe2e8c1ee8d39d4373173f88c75fd3e8454409302308a08be84c69dda9c679ac25c6a411416c247fd44cd9cb23fee6b80f7c"; - sha512.source = "ce95d8664bac0580b761c503497d675763f8efb8e5ec066ce392f9d8e7cee44fb4071a1d2dbca394afdd318aa347ab9c229f120aaa65452f8d0f19069004e766"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4c"; -}; -version = { - revision = 21920; - shortdesc = "Conditionally include text"; - stripPrefix = 0; - sha512.run = "9b57997e63fab25d916630bb086b7d4372e094e64175caa761c20c3c2d426a58fdc42ef661bbc1ec47f2a8d9c617b7e4dc405499c01b84eb53ca0d10f6c9108d"; - sha512.doc = "9bada1489523eccc809d4b9654411addf31f2d63efc1f1f9d68b81e2bb3d9365e2709f55a77c53c3d2231b8da89114bd5a4217c8d18553234a980d379b1a0084"; - hasRunfiles = true; - license = [ "free" ]; - version = "2.0"; -}; -versions = { - revision = 21921; - shortdesc = "Optionally omit pieces of text"; - stripPrefix = 0; - sha512.run = "4a6474f6a014789daae358c5b73a85bcb0894eb67d09a530f3bdd8e4571552d0a3e1983b5ba40d33122caad8bd457f255b7f1bb34e9797c5137ccf461707dbbc"; - sha512.doc = "ffebda27a9000a0c8bd8462b750e34331968aa1abd5c7039e198950eac6dc02796da6a02a258bcfcd84ca12b3d5f6d0ab11587bb5d6fa9b3121297aec2179ccb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.55"; -}; -versonotes = { - revision = 69249; - shortdesc = "Display brief notes on verso pages"; - stripPrefix = 0; - sha512.run = "c430ad5138ec17c4a5a12bb42149bf260b582f2a8b3c9fcb15356c3ed87073b68063df1ce8d821c456c0ed0e154137a2e3ed54b83b49a859a08dc1134dc6b559"; - sha512.doc = "3e4047566d0eb6ade7e78dc0ace0f540b56a6bcb157f613f6af0f7fe5c8ff9e47e526d68ec11b94f9e7ef3bce8fbbd26fc8c3ea115b2d1454e750ce7e15641ff"; - sha512.source = "f986404efc03af8b3a58f07aefdcc678e0f4b37ce25f8772e145e08bacb1ebf330361d56bbe5710611d09b01d31b82e9c736c1a7419a0dc56f0fce3a5c797136"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -vertbars = { - revision = 49429; - shortdesc = "Mark vertical rules in margin of text"; - stripPrefix = 0; - sha512.run = "3c3c905c6bcb013a36bc2eede14d84315f49075ab5f63376e9a440e4e7fb281ee5086b5bf1953782641284027dd8e7058e0accdafdc9295a19ebfc0088d8f7e1"; - sha512.doc = "de6df3133c801e941cbb00c552cb2cdb1d556f099c402a0a66f460d5c7c1c6e28ec7d983563f20a609a5b5266420dcf8c204d1b6bc685031cc41fe2770a5ea13"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0c"; -}; -vgrid = { - revision = 32457; - shortdesc = "Overlay a grid on the printed page"; - stripPrefix = 0; - sha512.run = "ee46d8ae234af6f0b3bc8689cceab7d5ce8e7229b132c396a000cca15cde0ee422f91b2d4fc485c743e3a896bbab5ec90b24ea5d398bf63342751bf75143330a"; - sha512.doc = "92e5498cea29d5fc1b373619e97c6692fef3f63002757a954649c0c4f9ef7b6594d61cce017bee709f0f1898777f962c25053b64da8079c8c9c9893f821a9aa6"; - sha512.source = "5589904860a74979a070224b252be9b302e0f7128946624fb671e8618a2afc55c526631217348eaf84d7c0f827dfef7aac7a13a953e1ff82a61211eb2e070e36"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -vhistory = { - revision = 61719; - shortdesc = "Support for creating a change log"; - stripPrefix = 0; - sha512.run = "1e8bc961ce70a199403f548bc918efbfff57ae6514338d32928a670f1f381ccd0474f3e2e4bcb957e72ae0b74b959f9eb98b552e62dfdbcbea995549bd87ca70"; - sha512.doc = "25420975890dbeae7b322ed9769eecdc67b9271f36e3269b6dae582af19968b79593ccc0306486de5d9c277be752569591953b423c52f8aab396430331c61e27"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.8.0"; -}; -visualfaq = { - revision = 61719; - shortdesc = "A Visual LaTeX FAQ"; - stripPrefix = 0; - sha512.run = "e746106e0525c9d40c3600e283e1b652d2a5e4e99381dd7ce88ff2ded109024d86610b6305fdcc6f06220802c7ce565b3e01f9562c00884fe5e161104ad4f8ed"; - sha512.doc = "cd8f11ebec1eda30ba7b673fe6fd241e61c4ef42a769988d34e58546f608af6a4ea569b2a30957dec0463385c5a4df70f7d10bc6e5b898229c5e6cf46f7e4fca"; - license = [ "lppl13c" ]; -}; -visualfaq-fr = { - revision = 67718; - shortdesc = "FAQ LaTeX visuelle francophone"; - stripPrefix = 0; - sha512.run = "06a9f22c86f54883ce55b23ba81315e53afed4f7ed2b77d13a8958bc18e5a96cae849a327126843865b6ecd55d7153cf261ab784625b9a848e7dc661df95fbb8"; - sha512.doc = "8d18a3712c42eb7921d6e0e7d29ac96c4718386643bf967b3c428fe5846830dbaca382822ae3d23523dda2e4c7d5f0d96c137412c2302f5e634471d83fdc4547"; - license = [ "lppl13c" ]; -}; -visualpstricks = { - revision = 39799; - shortdesc = "Visual help for PSTricks based on images with minimum text"; - stripPrefix = 0; - sha512.run = "fa501a3ed6506fe52d3d31515f453db5378c7d01415ed05c0870ea15051d34dc5a564ab8ef2ef4608f616b657ecf29f5b18a8920bdf1606f78928fc505cfb0d1"; - sha512.doc = "3d2dfea937b2b99e148fb0220067b9a777126854d82cd1e591f84a1d13e1090755660509814e4690dad20d2568286ce05653d3b5c7c6653df61d27229c9cd5e2"; - license = [ "gpl1Only" ]; - version = "2.3"; -}; -visualtikz = { - revision = 54080; - shortdesc = "Visual help for TikZ based on images with minimum text"; - stripPrefix = 0; - sha512.run = "fbd3f158e72dd8b0ebd3fe9c33fe47127ecfd38bc0feac3312d569718672e9f88165856fa61389b307a211071467c10ef73981178cc9afd8ecd720cdf627dc1b"; - sha512.doc = "16a32e64ef4d00d2bf6f99fa05b35a071539d71944227eaa5b37762e838a62b80ee4b227a8bb9cc49b831bf19976421684872f8eb104f37365669907e9621a6b"; - license = [ "lppl13c" ]; - version = "0.65"; -}; -vlna = { - revision = 66186; - shortdesc = "add ~ after non-syllabic preposition, for Czech/Slovak"; - sha512.run = "6c66717442bca3306e23f5d546e17929240ce9626a562b9e56512446998996d38f83f78fbb39e46bde0b9faf0db7eb0c0218c79e1d66711d6cd3c64a8778edec"; - sha512.doc = "921d76535cbe7e940617355c74b82acfc61edb840db8ed9cae1aaf987fe6b83245505048c7c550d59829b204f139ae1cfd44601435e2fff2b0d5230b45a27b77"; - hasManpages = true; -}; -vlna.binfiles = [ - "vlna" -]; -vmargin = { - revision = 15878; - shortdesc = "Set various page dimensions"; - stripPrefix = 0; - sha512.run = "dc0cdd4696a44bb6bd189dcf73c69f1b2c8790b9936b1c6f35013d9342a97d36a4bfd8eab82f3e2e97f1cc952459cd9a1909915348b25f01df446c5ffc452e71"; - sha512.doc = "ca8ebc274efacbe192b73c9551294bfae60b0cf7ebaac8425cf1b88e10ecda7f3230c336883afc438349f1ea47d66d369b52bb415c482803fb742b16cb483348"; - sha512.source = "0ad7482be9aef59f55b1a489327c03e9d9560f10c984a0f244aa836ef12086dca2d834c033a36bc95233d6de9b801ac483d2dbf472f33e9478c5182d06a86cb6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.5"; -}; -vntex = { - revision = 62837; - shortdesc = "Support for Vietnamese"; - stripPrefix = 0; - fontMaps = [ - "Map arevvn.map" - "Map chartervn.map" - "Map cmbrightvn.map" - "Map concretevn.map" - "Map grotesqvn.map" - "Map txttvn.map" - "Map urwvn.map" - "Map vntopia.map" - "MixedMap vnrother.map" - "MixedMap vnrtext.map" + q-and-a = { + revision = 69164; + shortdesc = "Typesetting Q&A-style conversation made easier"; + stripPrefix = 0; + deps = [ "einfart" ]; + sha512.run = "6a2ba84da635b700df2a39d69240b62749454d245ad6bb7e7ee8d87f8125f82575fa7c9e2ce4fb2b51bc0af2749135c5ba3bbfde443344ef950f6ce61a79b678"; + sha512.doc = "885a499e877514022277317c5f4d4fef22e5a0593b9a69cea2021e2326b4f57662daf55977da5078ac45f0146a76a0cc644498ae6c2c9dc49d5e5c8a39565037"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + qcircuit = { + revision = 48400; + shortdesc = "Macros to generate quantum ciruits"; + stripPrefix = 0; + sha512.run = "72dc726d377bfa13b30d5440f65e3f451a717c32785c9338bc95107a3fd29326d5011ea31a6805fd751e276279b8bb577f2b4a488ad0f380ffad84fbe46e272e"; + sha512.doc = "cb4d00d575ed8f859722b97af7f15323af85e69b7276947c05770a6c745dbf0e4b3aa1546b3cc82d9555a5ce839b142ea8edd3da166d2c109bf6b829b2ebb74f"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.6.0"; + }; + qcm = { + revision = 63833; + shortdesc = "A LaTeX2e class for making multiple choice questionnaires"; + stripPrefix = 0; + sha512.run = "f14457229f0cd0a291482b1fdab1970552257cc65955c9df43485c5af5a389d5323073c70b18ba0a6729ba4c7491fa4b2966f341b04ca6ea454d9e85e21ea904"; + sha512.doc = "f60d3cf3581f7f2fbf7a4fc18994bfdf77b3ff16d148f6036694e477f7b8945b25bffdb107f4fa11d90b65498f8abd034e24a73fe8bf3e610e2d158a08ed429f"; + sha512.source = "8cfe155d514e9b310b853b0c3b326104f26c207f49ebb0326e455e92e40f7848f3b3c89dffabe13f69cc73b9a561c79a334b4fdafa27cf8b3112977f1fe2960f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + qobitree = { + revision = 15878; + shortdesc = "LaTeX macros for typesetting trees"; + stripPrefix = 0; + sha512.run = "cd229c1611f269f904d73d276b8b36fb60a373130a3b5bf78508daf85d5ce50cdc4841a25e30c5a0925344eefd93f638e635be2878478f575f32fc458fa9a0dd"; + sha512.doc = "b3b587bbe835456cb6298804cac2a8d61c85d4bad6550cd355e6a9ba155e7b691c5b2f5f919ded355b21dde9c4009ee30466bcfc5cb6d81e0af0fdeb97aa3b64"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + qpxqtx = { + revision = 45797; + shortdesc = "Polish macros and fonts supporting Pagella/pxfonts and Termes/txfonts"; + stripPrefix = 0; + sha512.run = "7387592a338e7ba10942e4ed96364e36ca325040bff02cd69bf0f98d471775d38bd63e54bad494f64874e2fd0462762595c5796d7453aa6909fccc2d9d6bd27c"; + sha512.doc = "6b6fc20f5ec1269d318813b1ad34020e2b5341ed8891c11d2eda6b84884b3782e992dd9dde16d14b2030f2b57e1146fb6da6e761a35b12a3d88e8d865285668d"; + hasRunfiles = true; + }; + qrbill = { + revision = 67724; + shortdesc = "Create QR bills using LaTeX"; + stripPrefix = 0; + sha512.run = "61a65a020fb5cf012cc08d6d852481ce8712c214fa7cc446ecd0d5a68221f29ecfa710e81889cc92d3f3895105f153ca5fd54b798261ec095a5f06ccc75cc4e8"; + sha512.doc = "e348c90fb8ee446551fa2747763ad611344279ce00e0b8fc3772f1ca0b9bea674d1d759fc26b8955261d853b264d9e598862f0bf80561f23b4d3eb038a45f248"; + sha512.source = "0466344e7d7fb00449bad39b5c42b259a8fec4d8472bee7fbca7acb702777f7b30f0a9469e97b3b6d03ba851b13a66cfbb5d87898881ea35089976c0a7258798"; + hasRunfiles = true; + license = [ + "lppl13c" + "bsd3" + ]; + version = "2.01"; + }; + qrcode = { + revision = 36065; + shortdesc = "Generate QR codes in LaTeX"; + stripPrefix = 0; + sha512.run = "65ecc00d46d06f8a36cb1f170c12692cf7ef8c0cf9e68bbdc6a7da6b0a7f5fcda6a2e065b8a474609556518ab07c2d12f19a9fdaa0b6339aba94cf35184e26f9"; + sha512.doc = "406d1cf238b397412a57ed695a39af0ef32de007b94e8650cf591c63882d05d7df18061fbd2b350347c052091202a38de1ceef19f61fa58de38c2e73de6b01b2"; + sha512.source = "3e344af4bcd4e0d2b49638c33177f600f1e3ff24416ad503f55b3376fe7323ab381c7ee695351923cfc06b54c9ba8b3d1f4705f5377164f2b43ee04ccc565955"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.51"; + }; + qsharp = { + revision = 49722; + shortdesc = "Syntax highlighting for the Q# language"; + stripPrefix = 0; + sha512.run = "29aa0808112111d088f8795ec87ca3df6f2e10f0a8e91347ddc7101733aadc72ba90356f7e4b39fce6484e04975d3e151205a5d5272789ecd414cd0a6afc243b"; + sha512.doc = "69d74a3ed755d16957a2a844ae624a15e18813fdf02595c2e4ae2dc0cf13b20a1db1c4f49c20db3e4d3343c586411a88c7ecfe6367c4c1efea1a8cb2730cf8f3"; + sha512.source = "d8ad97902be6b5f29db2cdd7d27049407ebffe5efc8bf0f0ac64e64ed2e3df8f4fe86b8e023ae7dde4368740fdebf22ff6420a32854d5745e8fb147005788226"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.1901.1401"; + }; + qstest = { + revision = 15878; + shortdesc = "Bundle for unit tests and pattern matching"; + stripPrefix = 0; + sha512.run = "1461a7e5a88a75d1976b8bf0b6b9a685c7e68bd5983ea1549b277627e20b8e7d0b890536c8e8357e168914220c168cc2be2e9a688b512e16d613107c50622f79"; + sha512.doc = "a2e138b5de9012b637cc98b18e5aa64b2c9384f03beceda724c86f1e81e03b6da6b19de27fe15724463edc61520d035495f2f039a2d541b4761c44c55473d1c9"; + sha512.source = "1ff5ae66e8620b298f4cb5ca4d53e420ed0e89e476edae48f1f37fb1785e8bf4693da410cf2149d690734ad11fcd669152ffa7a560bde94e923e772560f8ca19"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + qsymbols = { + revision = 15878; + shortdesc = "Maths symbol abbreviations"; + stripPrefix = 0; + sha512.run = "b910db8e0e33bbc111a95db914958a3261fa89061677d999876b026d25609326b83444a7c6b77ee4a39d60eaedff448ec662dddf9511e99c826a3bddbf0b2861"; + sha512.doc = "c633094c09c291666f1953d8d8d8570d71b773e70f90c805cb01981117ea4212ce8cbd4ffabd9ca5aaee07637d19c6e627856115b3943f9d5c414034eee500ea"; + sha512.source = "5c88d0d929f6491b6b9df65ac3ce2be28ee5461d5cae5bc2ecaba64a9012ce4d84cf3f63bec19971ca2e8ec37fa869b8707c8d6ebb9e80f8302cc04127873962"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + qtree = { + revision = 15878; + shortdesc = "Draw tree structures"; + stripPrefix = 0; + sha512.run = "9f381007c2526f51483d7c190cd7cf86cb399e95475841900ffa8f522d3da71f4f451b42562783d756e252e513ca1f9e9e8586517057a8f6b881cbbecb5c3987"; + sha512.doc = "c16142acf0c3f9e4f347c9ceff7a6c29557c0c2c4d2232ce9df146279b3cd4e1019e703479f426709a3feeb6ac46fb91f7dcee8cad35b19c83c9893661322f96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1b"; + }; + qualitype = { + revision = 54512; + shortdesc = "The QualiType font collection"; + stripPrefix = 0; + sha512.run = "c507e8b712f2ce40474ebf2c072654f00d71f1c21156cecced7ed40ea9beac07790a67250ebb7a535c19a266573edb5dbf8d1fe4d661b7828428cd1c7574a1c9"; + sha512.doc = "20ddd865622520e4f9a7a1472c03f3c18bac039dbbe10849364a8ae1d0ee7d8771f30a02511a701962b2db25c79c74d3c2aa14f42951c7df9c0feb199092d510"; + hasRunfiles = true; + license = [ + "ofl" + "gpl2Plus" + ]; + }; + quantikz = { + revision = 67206; + shortdesc = "Draw quantum circuit diagrams"; + stripPrefix = 0; + sha512.run = "af7a59b5fa4111199351b3ee6a14ecbcd6f6e86041a7f516c97f0cd4349a2d96935f138969e0029e4f5f8b8650b7efcef9554bd631c1231d371ec323d7b41024"; + sha512.doc = "a5efd5af9c89a13afd29a06215becf7544e9643697759695f8be2ea39bd62f99748369591cdc619c18b2bba9f0a0529ea6ba0a7be1d9b4ea1c9a8a8042ff4426"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.0.1"; + }; + quantumarticle = { + revision = 65242; + shortdesc = "Document class for submissions to the Quantum journal"; + stripPrefix = 0; + sha512.run = "432dd6c4365dd1e6dfbd9ea4de2f29f0bf0fe3bb7f29b110354ad7d42c4675acc4df84cbcdabc8a476ff8de260e083d32c1b3e63bf7b6122dbc0d5373847bef9"; + sha512.doc = "791b37745fd91a13638cd1689478a35272e4b1b04ea1fc5dfe16d8d320576fbcfaf8b2929b3afa12e783fa148cf3d5f422354d8de0976d808f0921839ea3659a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.1"; + }; + quattrocento = { + revision = 64372; + shortdesc = "Quattrocento and Quattrocento Sans fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map quattrocento.map" ]; + sha512.run = "cc6819b03992528b4a564757caf4767c92a00b8ecdd6053595c5561483287be88014b6cfe60c1eedde75160669981baaef1e71cc293d1585e9a7c54e0186fe35"; + sha512.doc = "f3881de285a603b1fb11c470f0c16698cdb4a4b165750a2bcc17fd4deaf44d5d94a7af531ddb1135d12556317731639ea779d25663a81bd25b578241ae3fab1d"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + quickreaction = { + revision = 66867; + shortdesc = "A simple and fast way to typeset chemical reactions"; + stripPrefix = 0; + sha512.run = "9915f2032b336f50f784dddf14f69df6bf59ea0c1df668adbd36cbddf98df601605ec6a245e3fc2011742f6349c830add2ffadd49e4389c088bd15bf5bbe7a7d"; + sha512.doc = "c71b5b5a52e12a50cb52632225e9c70acb40ad4796b4b8a922d810e8d5d34da532e3f2b0b708a7a896756f18edc2c39376eef4748e80ebde5869ec44e6af0765"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02.01"; + }; + quicktype = { + revision = 42183; + shortdesc = "LaTeX package for quick typesetting"; + stripPrefix = 0; + sha512.run = "4950c1c7a4536cb64d70fe8c08a69fd9336825973a7c8a669ba48bd66476888775d1ad288d34d4b83a9d674624960e3d17de1c972f52bd7f329eff971ec0f185"; + sha512.doc = "6e43ad0d932eb2237106fd991dcd25e5bd536cb64db5988c958b138af294fbc777dc6ce2c2b791e3875a2bdeaf5a10be7d15585b44e7487017925e0068e898f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + quiver = { + revision = 67779; + shortdesc = "Draw commutative diagrams exported from https://q.uiver.app"; + stripPrefix = 0; + sha512.run = "b7eda520bdfeebff570458d36e22b1779bd16c14070192072987c7f1131efa33c6f1e7ff8c16f73c338fbfe6ef80e656c2ef061ad9ee15885b7f5e8f1195ffc0"; + sha512.doc = "42bff285adfadd6655941b0221b2cf0d9a457a638997591220b564040acb94b4c57bb9dfccf90679c81e301618e8e4b5ea19c1dad9fb478dbabe1c2dbe4da991"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3.0"; + }; + quiz2socrative = { + revision = 52276; + shortdesc = "Prepare questions for socrative quizzes"; + stripPrefix = 0; + sha512.run = "f4fba8eb850a90288a9b3e7f4571f5df560e09e7cba608f7bf2bb3090db5a2c6bc7fc7240ef2e3cef9d37fe1a0105e74c4c63c39a7c1793a1fedc6f86772eac5"; + sha512.doc = "a51cc19b7d13c0bd4f1ed07c6292940176104b5fb381dece7709a5bc1332edb4606cdd4a66ee5a4e4886754c4d274aeab40666eb45328dcc6c465a29a1c4ae29"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + quizztex = { + revision = 68823; + shortdesc = "Create quizzes like in TV shows"; + stripPrefix = 0; + sha512.run = "dbf234ba1d366bdd2a1be442c4bb670efe34d67584386ab1dadfa8afa2ff8551ff03ed9c441f6dc480bfed36ea79082048aa6f0e182f4b9bb5dbce7782c81391"; + sha512.doc = "5c9242df37a22ebdc33d834acd95f760681eebf32516857d6b7ef866ebd00060017ec058c7a628239aa65cfbe62d0335ec00d786d4f9558ec754687b161ea017"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.2"; + }; + quotchap = { + revision = 56926; + shortdesc = "Decorative chapter headings"; + stripPrefix = 0; + sha512.run = "7d94162630e53133b79e33b60abb7c4664d3e486da611e37d48593757f39b0526831cedd0c236ce9b4d8ffc85b35734acadc98236435345180b999d7ea68c1f9"; + sha512.doc = "e2fa71ee21ad019ef785a3c74ddab5f232d3a6d1e9fcdcedb34c216eb5e6d44abbafcaae5d1c4557bc1e4aae92561a75ba2c3723707328a12cdb6ff4c1b72dbf"; + sha512.source = "eed36464f1b04852e8af08c5fd91c42ccccbbaeccad565e6f338ed5c87b003b2dd1704e1dad0ce0e49651461b637e8ed613399a0ae8122081e9084e47704665a"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.3"; + }; + quoting = { + revision = 32818; + shortdesc = "Consolidated environment for displayed text"; + stripPrefix = 0; + sha512.run = "44a9c726a5a9158fcd13fd93785101d2a9a940f34da3d52efd5be1a0467cd76aeaf4706b945a8de0b4e0b4a90740567cfad87f08aaa92e7d4eeae8eb9f7bbc73"; + sha512.doc = "b3990965effff7529a7c18cdd3a08af337be3766ffe535feaf54db504a47b0f054af41511a635c3e70c34d3025df419af702d319240ee673f7462d2cf4ccbbc2"; + sha512.source = "a50186cf1b8b0f55ffe4b2e8447b1232c14c6b36aaa4635bba464de1648ed01adbfa13d8a184bdda8398573b2b9132948577e47e252bcb1014761f4318a76ede"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1c"; + }; + quotmark = { + revision = 15878; + shortdesc = "Consistent quote marks"; + stripPrefix = 0; + sha512.run = "9f21ef20aa9354b1347f00a52df65ea691fe4a00b05b794815279c070d05544611ccd8773cb7c9f8146a3a135f3100a06aaec48acacba255bae9a0654a2a9b53"; + sha512.doc = "6507fcf8639e780ab844700f6356abd8eb69df6158ee638d8471a112159f95a3df8f358fa40479eefad0cf09c34fc37d9292904ae159f2a79fea5acb93f6e542"; + sha512.source = "bbc423a9d6f6fca00c5c8dd9ed5dc084d094898ad5b27397147c8dae1f3bcb8a09f137f1c2c7066fb92d1cab1f5d16681612a528fc28ec4e7901b660f6c8eee8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + quran = { + revision = 67791; + shortdesc = "An easy way to typeset any part of The Holy Quran"; + stripPrefix = 0; + sha512.run = "d725825669bce286e05ba5a6a4034f2a485434d40cd32d7f9cad42c1bc7e74001a0a0d1784b5af73c1075166835042406c42839bdd6fca40cbb06b349cc685d4"; + sha512.doc = "1d706f0ed780efb7529eec16dc9e76182c584113f6d5bc58521de023611401963636e6370c8e06082548da191c4523c7017c59f164d1cf5b234fe7fbd4522689"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + quran-bn = { + revision = 68345; + shortdesc = "Bengali translations to the quran package"; + stripPrefix = 0; + sha512.run = "24694bd309d78e2c0315d60027502a93f3beedc436e3b5dbdb3491d9320ff4e2439914a3d3b84c70644ccab3858d184d948a006b13e622af5cb6c1211cf6f5d9"; + sha512.doc = "d82f949a61f668b6577527d8ee329cd7e23fa7d584eb1c7258be3afe819d6bcf249d9db9778b6da4f57cc1f239d0340cc8b64855eb25d5825d47cf1e298dfb80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + quran-de = { + revision = 54191; + shortdesc = "German translations to the quran package"; + stripPrefix = 0; + sha512.run = "d969c3fd171102e4c47bf4eca383a22498fb6e95a5f8be288a137e12e1c92adda9e92587c402ccf87fcb116597c6074e64eb70b8249b208e7d1bd684d6ffd6d3"; + sha512.doc = "4a371576e7754789ec67cde04f533ade561d770cbf410e31c8fdb737d127dd36e0f8f6a233512b147ffd5692acecc43e1977c76efe04b1a65de3c6297038a954"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + quran-en = { + revision = 68790; + shortdesc = "English translation extension to the quran package"; + stripPrefix = 0; + sha512.run = "75ed9751d6d9517970ca0cf842eca390a172ae24eb12be04a2b97ee1d2673446064489bf594a172677cd785c05ca31587db8b3f64f8d8a1080ce0be0bf191356"; + sha512.doc = "7e5999f4378a32dca0b47ebe63a1fbaa331110d638f1b2d3308964a1a61d4036967aa1712e1c07bb0d3bfaa2106abca72302df06a811b1412d5029fd94588d2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + quran-id = { + revision = 68747; + shortdesc = "Indonesian translation extension to the quran package"; + stripPrefix = 0; + sha512.run = "88328a074b74b6197079c9fbe92170989a1c4ba139e2a84ae96f803ca5805000e11024861e9f033fcba5f346b6bcf38a59231b6849fb4af586eab33795efe7f7"; + sha512.doc = "42d6c03ff54e65e94196ea0b66e77921dc6bfed3f45605835fd6721aae3b97ebb69acb2362bf0fb6158348fedafb8d543f32602358f3466ecfd89cb56650a074"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + quran-ur = { + revision = 68314; + shortdesc = "Urdu translations to the quran package"; + stripPrefix = 0; + sha512.run = "af8d0d7c10d3b9dea55cb4339982196d5dc33204fb9ff368591e50f48b8fd5ea741207466f158a4ce7da1125cadb5240bda38cd4bc5093966fb42f7de77beed0"; + sha512.doc = "17d660971e942478baabe2e98eec7da096c37b13f9da24a8e8e4139d0dffccb280b0a464a0fe76f47ff39f899e8ae0d9a582a01be927ff8529e14c097b81090d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.22"; + }; + qyxf-book = { + revision = 56319; + shortdesc = "Book Template for Qian Yuan Xue Fu"; + stripPrefix = 0; + sha512.run = "be1be15996d6db58200ced70e6b17d29ad015bd1f1ae1dccb7cb50e225e9150db76511fbec37d17711e10104322782f92bf9fedecf990fb4358fefc2df7a78e8"; + sha512.doc = "5bd3f6f9576ae2cacf3351db9cfe59ba519953a6e25e32b2ab4215a928d7a0f2903a9c75f9432c8fff3d9b7221d6ea09c439421eb5c5ec6830665d89836b9d63"; + hasRunfiles = true; + license = [ "mit" ]; + version = "3.1.0"; + }; + r_und_s = { + revision = 15878; + shortdesc = "Chemical hazard codes"; + stripPrefix = 0; + sha512.run = "86b219305e4e085af2a22d34bc586253b5674abb18e257fa96bab1d45695f841020c0004f1da51fcfca0fd0b325e4043f2e368740841a5a2e8db774711ac6348"; + sha512.doc = "26e227f106bb9303c4823f0230b689d6ed883580051e1bd5ec2e16ad796a3e33df2caa389c309b21b010bb43b07e5ec1027d6c046af55193deb0e4d975288846"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.3i"; + }; + ragged2e = { + revision = 67441; + shortdesc = "Alternative versions of \"ragged\"-type commands"; + stripPrefix = 0; + sha512.run = "363d952daecbd0c4d57e7d2aa5bd28e32bd04efd1b26f5ab65c4874fc65948fb4258eb430560bb8d294406cf314778047b0027a45c21cf99f77119519878e368"; + sha512.doc = "be65fa8afee57fb8044ad9ec3ae1ee05ebaf0d8b40388f9876de7c25f6bc6b3a78221b393442e1c3bfe69450eb3c98b276b569540ea8a154a5297560f8a972c4"; + sha512.source = "56482d060b48c8433214b352efc1b2d6499aeb97a689fffd7e2ae5175f92033714aeb61250f79eb847ed3dc63db8e873ae8efab2aa8dd6d8824902a4c00517e2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + raleway = { + revision = 42629; + shortdesc = "Use Raleway with TeX(-alike) systems"; + stripPrefix = 0; + fontMaps = [ "Map Raleway.map" ]; + sha512.run = "8ce708ec993b1405dc04ddd96b6d39da324799f404e2798448c12cd03749f11685f840ba4f986b1b0f7696f9141923f3b91f5318de634979720af5af5b07781c"; + sha512.doc = "eae288de26c57ac27172e83bc6985b0edf80ac88538561468924c34656f31507e008097a1e8452ce47729ab501493733a1c022440c31c34cd99f8211383e889c"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.4"; + }; + ran_toks = { + revision = 59515; + shortdesc = "Randomise token strings"; + stripPrefix = 0; + sha512.run = "25b78e30d7e6a2f082a7740fcdb968cd4032e6fd612bafdbeb58613f45882e788809457d0fcf29af76d3eb82c57d8772960ad84f9ed5940fe670f8662853364d"; + sha512.doc = "7e837aba73d0d578494845f038f7616a64eaeecde059655c8ce3ed5a5bc2c5910086c955b6a16a42abd09dbbafb71409387959eaf2378618532d2e494bba42d2"; + sha512.source = "ad77e0842ddd144f49b26a548846f2058611336f51d7540e96ad63258ee46c2f0a139b6945c0fea1f26fbf61b5e1d21ec45f87a9f68009d87ea6b9b5634a2895"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + randbild = { + revision = 15878; + shortdesc = "Marginal pictures"; + stripPrefix = 0; + sha512.run = "b4fac4fe105366ae1047a1d4225bfbe8ecfe6e05c29e955bc91d591f25ad6a8ba0e2b81848f27af96a1509a278864393c8874b14f30e64c8d5b69b9db811ec41"; + sha512.doc = "fd8f83db389fa62ae8dd63a2c3bc8e4feb9beb6c56d7579fbd9e9065c399a73ad19563f22cdbe1dec78bd1c33056ed1cd4d9a534105b34a2ceae0cd8592326df"; + sha512.source = "6180472c45b6eb362076c50a6a813d5521fac11d92881639cfa3c7444fa456dbc7b453e4f94de147a635ce017bb21e30087ec7e6c39ead8778bbe9debb68a68b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + randexam = { + revision = 69965; + shortdesc = "Make an exam paper and its randomized variants"; + stripPrefix = 0; + sha512.run = "bba998f59e869c81278e5a174d3f7e66c6534531064e30152c3a7819b32f81ae2e75b11ee8190772c282d06f0b3b1aa84de2fd730f18edb8bc4244ee31eb60f5"; + sha512.doc = "251e4e88983af9bcda1024e014fb587ee6ae03840b0c59b141dca606271c582a1085b8a985a1d138781f9a3b6b629616ff4d6827a61ed95284a61dc123c39a41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024E"; + }; + random = { + revision = 54723; + shortdesc = "Generating \"random\" numbers in TeX"; + stripPrefix = 0; + sha512.run = "a93eb4d5b526285da18105f67bef5cb4451b7b71be50581936a4718ad99360dfd8141ee9437d374c56eb3db3aad9af4ec8e1555a4a5b8654711bf64aea3f419b"; + sha512.doc = "f2aa83c5e34707ce9f7cb46e6f3b1632784ec741a68ba9faec0d323aba2054de55f184aa9f1120491bbc60db2040087c4b2dadbb9a4b3763b84358c1855974dc"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.2"; + }; + randomlist = { + revision = 45281; + shortdesc = "Deal with database, loop, and random in order to build personalized exercises"; + stripPrefix = 0; + sha512.run = "895eb116868ced533e23d398d0f17bda2f55a2cea52ec46bcfca4004b9411fade8817af4fc9d3d91b2ab2959ea24027266d8fcac0c77a64d2a4b88fbed5d56a4"; + sha512.doc = "4c0ebff9275bbd1c8550902735b4ef0d04dbd688bb1abdf124560defd2e5d0cc23171e8034fc67b5379d0ec30395b4433ababf3c3a244cbb5ca5f15005057f58"; + sha512.source = "3ccb29c8a6b815484929b7bf0e142090bca848d3f5562533380b71e1be3c9fff2d7ed00f39fa68a745442ad45e1b07e4ed38ef2db55a2bf341e6adb0ce51c373"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + randomwalk = { + revision = 49513; + shortdesc = "Random walks using TikZ"; + stripPrefix = 0; + sha512.run = "3a1f08f41864cc3b855fc4a9f8aba298d92505231c728381f5c5aa29f21c73d6e10834ad589c114ae26ba97d092b33e9c83a30518a7f289aa0ec96c933471afd"; + sha512.doc = "00c23d42132d4a47973871bb9a2054385681898d6cd7e0a7a47337808187855812d98535428f6e37a3eb2da13680ac4128fce38db670a87a66483f6ece044c8a"; + sha512.source = "55bcb9c1acabef60ee605d9dbc0cf9d601a31528dcf444f2caf2f8b91867538549bd304b3a73b3bbefdc9e7ec82791264f054386c46b4fe67d20e8ff6a44ca8d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + randtext = { + revision = 15878; + shortdesc = "Randomise the order of characters in strings"; + stripPrefix = 0; + sha512.run = "6cd20551f4b48d30d4c830da395873bd20e11b930336f4fac0f0ccf09c9a956d18107c45aa2b1ecea51d1fc4b0c0fabf06d436e247aac6ff58548cbfd31d35b2"; + sha512.doc = "3bec31ca40816e7e86642e080021ab5faabb19656a15463f712e111485f1de00d698816e84b1ed7b63ea9380970d4e80b04aa0cf79442c7d1d77d5fa3f4d072a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + rank-2-roots = { + revision = 68161; + shortdesc = "Draw (mathematical) rank 2 root systems"; + stripPrefix = 0; + sha512.run = "c15a31fc178dbce9a776c8409d0df18e4ac05e2786aef486bd9a932c64ee6482ca15d6ca10eea70b98f9444f01d292a5e1032fb924cbd1add8e8bdae7a1bfe8e"; + sha512.doc = "b5b2bfdea68db76c4d52d45613cdd45d91e684f24739024c53a2e6efee83660c2534cc88d4aaad5b1e2c203cebf2244ccc4331935142661090b95e29aa4e9240"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + rbt-mathnotes = { + revision = 61193; + shortdesc = "Rebecca Turner's personal macros and styles for typesetting mathematics notes"; + stripPrefix = 0; + sha512.run = "15e5b0c52a70b406cb6de6ff55740206dafb75c8cc20dd45820059dcdb112c03ea0df0884b6caa12db0f792b97e0507f90d06644a8f78cd7569f9489a896b3cc"; + sha512.doc = "effd703a23c4eee3ecb385cf8ca891c50e373fdb91834f45f7ba414d6e69b5fbef8a1833db4cf76e27dc316b734b714926078e4d92de08122dc79948ba928f77"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + rccol = { + revision = 15878; + shortdesc = "Decimal-centered optionally rounded numbers in tabular"; + stripPrefix = 0; + sha512.run = "0a712f0918b4c0e4cf8cc2a0d442a681c6cd4d00b50478751512ed4588f070566f005717196f694c8d07e79f8ab6a49be6ddbda8db71af65e30cfbbceeab6d2e"; + sha512.doc = "56c43ee9f49764ce50da6b1b4fd736cfff16a1cf3907fc7189807e5c946f1c25c593ddc1aa22c2ce2e0799f7057efe2df35bfb9aef0fa1c31724110a352fe4cd"; + sha512.source = "bc0f7ee1a6fec9adf6d8ae77fb174fb0334030fcc504af46bb2cb88516c05b4b9539748b381a029b657f22d7ce6313b0f19471ef85b1064139e6cb7862c726e9"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2c"; + }; + rcs = { + revision = 15878; + shortdesc = "Use RCS (revision control system) tags in LaTeX documents"; + stripPrefix = 0; + sha512.run = "4a9d7cbc5c16163a5866bcc3c9fae95d8fc42b27d0d8dd8ceaf32e2b568bf9ac6b710a4124cbd255f1f2d18fbcf66ae020cca58ce6d16c6c5eb6e0a85e288419"; + sha512.doc = "71430d5e481dac53c3b1d5f86ec589fd855c244c6717f31c16e2fe00507850779fed3ef43db2deb546ec5b99ffe775a10711f1fd59c022f4223a8d3327424cdf"; + sha512.source = "3c2db69ab4106eac241e9126407e90d8b20cf3e186d50cabcb35041a68c1b670eb3bf9b571d00a52c8e4cd410cdd7cfb38e6bb4558560d46420d1074312910fa"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + rcs-multi = { + revision = 64967; + shortdesc = "Typeset RCS version control in multiple-file documents"; + stripPrefix = 0; + sha512.run = "597d15909aa4525608f649c08dcad66ea3e7bc41a5d3003c1fc2582ca459dab58bf9e8a909f92b3a5eb40397a2612d26601ef33fae3d151b7e5188a39ed3780f"; + sha512.doc = "7ff57e19f66f665b1b2e35b32f109f091b21300495177fdd63e60b26a8c8e1d7532e40bcdb2e01d3499b753bbb53b1dec6f70ed3273c43d3fd541a1fe63f82f8"; + sha512.source = "f86425b317ce13680ceb9f8bff961074f081e2381bcd46bd947f711835b64210452e6a230f1b5914e464b827106d4c7a8be5dff78b988d4d49cb7ad9fa98d749"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1a"; + }; + rcsinfo = { + revision = 15878; + shortdesc = "Support for the revision control system"; + stripPrefix = 0; + sha512.run = "6070a3f0b434b5339e527161b7c1e18dd21b23a9b57817a2699bc13369bf35110868e38d3e487b7b0b58ddb12699599a6e8ac4314b150ff2c8049ade5124f786"; + sha512.doc = "c7d149405b9824f7fb9a453386477ee3ebb7e265b29a004eeab687695667a9e8ddd7ca91ffdb4fe7f60716e6c1f2b39004aae82777c58cb60532bb2ace2bc846"; + sha512.source = "bb38328d3124adb4ca1734912bd0fb15040e7d390d886d3817ed547d08e4f6e5a134db6e4279ab2cf0a5b8d0216afaea475c3dceed7381bbc84adbd63bbf3b82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.11"; + }; + readablecv = { + revision = 67986; + shortdesc = "A highly readable and good looking CV and letter class"; + stripPrefix = 0; + sha512.run = "bfbc2764d56277d9a215d4366f812e53361faabd136ae86ae8152ab763742f51d27e9b61bf4a1d42fe2f14a90d5d3d0cf6cb513b3c6f5990ad34abeb26c22d44"; + sha512.doc = "6a337934b2f52cc8543ac0bee5dd52d2deff2e3fbf192977937c8331134227d816c846845923ead87615ddc117b44fb141239024e766e17e1896cfa1c4afbb05"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0"; + }; + readarray = { + revision = 60540; + shortdesc = "Read, store and recall array-formatted data"; + stripPrefix = 0; + sha512.run = "615f0be7efb7cd6954d36ad1dafc9f0f0a1632159247e7d6feb064e272c5753b26c5e07af709240a6e5f8bd7ceb7ca2c2c29842a5bd6e9e9efae2470f7a94107"; + sha512.doc = "d9f87dc14d40c33b06591b611e8a79df95fc62c32d16f72cff96222e7fe48f4c09c95bb0b02a6acddc8b4630158ed61c9375dd370c2f2d21ec8a9328f63fff47"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + realboxes = { + revision = 64967; + shortdesc = "Variants of common box-commands that read their content as real box and not as macro argument"; + stripPrefix = 0; + sha512.run = "2705000ece0e4bdc9b96929e853733eb594d6d12b1bbee97b3068f46ba2c6c3b2d06ed0f0eb5e34bd3e26e331722e51c1fd98ff36fa5c53473e99a7fb1610c22"; + sha512.doc = "aa3d6f25505cf1dba7c5ae5c364524cbed6c6a588073fb29e7d9b14706b8ffbe5998dca4f17e1039aa242ad4bbc29871c72686f920610d8662491e1c91e339f5"; + sha512.source = "096371da7866350529304b9be81460a2e081d4725c29ad423070253b7623069ee0d7ef7af6b2a88dba650231d972dceb74a70254765753f4227e39946245cef2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + realhats = { + revision = 66924; + shortdesc = "Put real hats on symbols instead of ^"; + stripPrefix = 0; + sha512.run = "9cd41126ccfdffe1322e0b49af113b65761a34fd8bffb96390f7c50d78739be06605fa2e16347a226bb7fba47bb832b1bfd19c8d836dd557fb41ae5dd0281d5c"; + sha512.doc = "94fa596ae22d6c4f75276b30e5fa0f0d03d575f01ef2d6e6a18454bce3c0328a8dd7b804d586af57363ca1c5eaf3c57a4d021fa37327920f123e7b8b2ab55df6"; + sha512.source = "87f5274eff261f29b387b8b171a1ea031e5373b282950c60517c66163c1f6b75cbe4bdd52731249b22348386fa3565952852efd5143c80edb8e6e070b0e77f5a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "7.1"; + }; + realscripts = { + revision = 56594; + shortdesc = "Access OpenType subscript and superscript glyphs"; + stripPrefix = 0; + sha512.run = "fc0c686971c536b3490438e74322aec06371857a987bd70a6def7310441229fc4813d2080c5aa9b5e22cf78dc8ab1c3ed75b301acd987117d3e6f1f589f78981"; + sha512.doc = "bddc4958f2c57e5e05fa31912a6c19ee123be463527f2e1121405194ac47b6a806790c204268bcf590785c927808b75305079ed44537ec84284c594d691c906d"; + sha512.source = "117c3dadf6aaf7a46a3290f6c49d23f62af1206e512bde7098068071e9edf00bc7da0fb34392b0911a4ae525eb0a99b946317d31d12d3312879debdfbb345a84"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3d"; + }; + realtranspose = { + revision = 56623; + shortdesc = "The \"real\" way to transpose a Matrix"; + stripPrefix = 0; + sha512.run = "413eb0a65d79521c81417afdb2d7f0ed8bc625d107d2fa19db84ae04a1f27f2da8f07fea27139dee411e1850d8646d63412eb581b08a9c4dd69c886457027cd1"; + sha512.doc = "a2382dcfa84f3a2773ef6cfdd5a10bf23cd541927e2844419d75be6206ff5b42f37243ab2157ed5765c0f9c090340b6b75b35271157daa3440ee9d81ecdff9b7"; + sha512.source = "5fd124830f8e5e29cc9b1a2ef967a21c2065d183bb8ae1560b95e66b09d1248b8bb6a65e6321651c23d309c2508c05629c2b7740e8c57e4130d2f06b99347097"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + rec-thy = { + revision = 63982; + shortdesc = "Commands to typeset recursion theory papers"; + stripPrefix = 0; + sha512.run = "0497b8d382cf239b6b8d2f4bf2aeb3af34c8d1f1ad94640f930c316f9b7bd7e6a150c3d344a555313a88cc848fdafb3e392ff6cec0caf72d3517dd1db4b7c2c5"; + sha512.doc = "0733917542d683cddfe9651bc9187d2dfa7a57e2bfbfddca687a5bda10609451a3f58cbfd7f5308647f9a3014f0a4adc36e9075cfc1a5b7db48c7d1063cc9b5a"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "3.8.2"; + }; + recipe = { + revision = 54080; + shortdesc = "A LaTeX class to typeset recipes"; + stripPrefix = 0; + sha512.run = "03e9e48a2e423f36ccfbeb2e61ffc7c3588658a158c1729f697ce44d98079f104cdf1c17d85ffd5700a7532f762e22da0c4388350007eb13226cc0da43b08678"; + sha512.doc = "4dfd27cfbb4f5f5f45a5fce25fcbee4c9881990dba1009337f41e4080686e993246189595a7c28b8d56bdd2e81a70e9c6fefcfef0897736d5400888bb9fca210"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.9"; + }; + recipebook = { + revision = 37026; + shortdesc = "Typeset 5.5\" x 8\" recipes for browsing or printing"; + stripPrefix = 0; + sha512.run = "c030f81bac27221f24b275d689fc7cf80bd6d97ccfecb0c5d51876ae825871854d7729e123caef3735a7b2a5608f070ce170709c8a1723b5c740f05371c82154"; + sha512.doc = "0c9d803360e1ef65b38f5b66c6d3eba6e9c38c371a430e2cca371594935fda16a051d6d1ee33e787114747b9efc36475c6c92b2c8b199aa1a5b48e214f7a4643"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + recipecard = { + revision = 15878; + shortdesc = "Typeset recipes in note-card-sized boxes"; + stripPrefix = 0; + sha512.run = "62778e7429aaa8e4bed6546c748a7e135c9edc4909508723e7931284c619d502e9efb0e6fa54c8c1d242858355c6d95bdc87959400c18a5648ef105035ace26f"; + sha512.doc = "0e62ac28631ee072c9b0b5dfe9995744c381f17b14da5e9c8f4159fb274cf2a7662f0eed8f728ec5990a6a957de051304601acde2d171e696e79284ab2faeff3"; + sha512.source = "d08838184d5d21107ee796835c95dd446242ea3433819229ab918a30e73a3e042e6f4cc8f75c144ced7a16391841177409567bdf3116632b0915ebe47378943d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + recorder-fingering = { + revision = 68595; + shortdesc = "Package to display recorder fingering diagrams"; + stripPrefix = 0; + sha512.run = "1a97324ac1264d293a05207a667255e5711cc13b6acc02acd5a170d776d357dae9158491bd0adf96a11e17fbdde1d24809940d323f417f31c5b73c55c7758031"; + sha512.doc = "ce1782952b53171c686d0f76d9f48a127e6c6bd6c1c2b0eccb00fb8968f31c809118f6bcce0503a61997907feb7d677ad23692c68427bf8666124bb0b040585c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3b"; + }; + rectopma = { + revision = 19980; + shortdesc = "Recycle top matter"; + stripPrefix = 0; + sha512.run = "17a297d7862eeb8c48788e40fd761fd42b37fa7b49b7447e00e828f1a7e0f2e411eee357507d79bfe0441c7feada9e06fb18ee5ce0af87e7aeec7ae618e22d83"; + sha512.doc = "27ae9a381a685373a980e13b9b5c3f6057f98224a7c9659edc0c056a6292e7289ed9772f3a503e8de3ea93b796f271dafeba57f6e240caaf738003e1ab848e46"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + recycle = { + revision = 15878; + shortdesc = "A font providing the \"recyclable\" logo"; + stripPrefix = 0; + fontMaps = [ "Map recycle.map" ]; + sha512.run = "3bc28ed41a8205534d34593429429768bdfa64e61cc212017ba4be32f7a985e8d65ab296137cffbb7ad5be4dec90bbfd30d675ab314bb79ec0ea10b277c33d66"; + sha512.doc = "3bbe68b48915c6fa662fb72072eb9e130613587e86d3d4172766c8fe690a995d23d252cbda9a226a7716c9da8741b3ed0e18eae1cab2f547d08265ee493a64dc"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + refcheck = { + revision = 29128; + shortdesc = "Check references (in figures, table, equations, etc)"; + stripPrefix = 0; + sha512.run = "46dde83ed04d4586eb6a2af393ab925aa7238a30c23f49ea33f0da331e2a5071447c5df22b31c2cd9b10bd37458794fe15e53e0e79f002bbcf95b0471d6a7d02"; + sha512.doc = "a87b6ab25848571770bc8a7ac1f47e139c7a2abebf36b9c72b65bc66e02c14b23f7b0d2246c7160b7669460f52afd29063449c6659336f01f3e99df53cbb4428"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.9.1"; + }; + refcount = { + revision = 53164; + shortdesc = "Counter operations with label references"; + stripPrefix = 0; + sha512.run = "da914e64de5b70e124d9eb62148f5650c9445d2fdb94272ce622478b9aa50a4c7625be9c2152fffe9ff9fd87ee19319a0bc31ec5fd82839a479faec687de4af4"; + sha512.doc = "5324828978e3c8c14e9a28b86cbf87de175b9908f460ce6090bf19944557cfe82b112c6543d2878b54f4a16b1a9f3f3ffc66eddf1234c04b8852dbfa3ebaf27e"; + sha512.source = "26c03363bd65be818d05792fc1c7e3a2e7e747a49382562eeebaefac35d5b4143b86bd46fce97fd4aa0f162ce7a1399e200f2593b3920091159bcfa08f0f8781"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + refenums = { + revision = 44131; + shortdesc = "Define named items and provide back-references with that name"; + stripPrefix = 0; + sha512.run = "7113ba67dcaf3ca2a070e42b4fa9660889bdf7803401cc0f8c3f9f62c59e467d9f637c526712bf9aa9fc7ac3df3c550a41f419de9cff375e24e68d102207e8af"; + sha512.doc = "3511419e6507d2c5a7b48679e9220e63643b38f803e8a5d7046a55ea6b6f4827fdfabb74336fe61ba35628868a7f042ad472567e73351d13ab9568c508468a97"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.2"; + }; + reflectgraphics = { + revision = 40612; + shortdesc = "Techniques for reflecting graphics"; + stripPrefix = 0; + sha512.run = "ad670c699d958eaf103db1ae65d79bad78dbb0677c7464144739fd67b63dc5acd3c298f81c81f258de477fe9f2d4a4177de887ce1c031ac9c701662167c1a5d6"; + sha512.doc = "78717728d537cf0dacaee67151cd7f19fef6fa031a856ac49a58bb576337690df4323c80e1ff0f318a4eda3689fbdbc2aa5a3bbcef69b957fc4615ff825e1e0a"; + sha512.source = "f228c9e8dedcd7d261269c896b0ef1ebeb7efc18a0137fcd64765ec92b957eb634d8e0e2d4f6aceebf1760e65936c6bb1a7b706c852e6c220282448830b7f672"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2c"; + }; + refman = { + revision = 15878; + shortdesc = "Format technical reference manuals"; + stripPrefix = 0; + sha512.run = "45f51a654703a7e749e7dbb08fd0ccedc86b5f264ce08b504ed11827799202583f81a4f3fe32dae0794e20cefe2e6bbd0ff8563955c3a85eac2642c307aaf332"; + sha512.doc = "560d70322bcedfd0ca6a10c161d3930d389e77fef25ed568f5a68ec87eaa63efd4f7dd2363bab283af00a49719c3c8ba38e8a35ca011ea349dd854a0698ec79f"; + sha512.source = "722e2493c24738bf767b271183eb1422ab103b84dec17d28f615a52d9b35e1671d3745fc5a6fc97b2a9d7934f314fbc7dba9734af8e0c802cc6760940112230c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0e"; + }; + refstyle = { + revision = 69680; + shortdesc = "Advanced formatting of cross references"; + stripPrefix = 0; + sha512.run = "05e95688dfa1e8a8a3be6937cf5c36c315371b66c14d5dc0e51862db7a5aa0307bda55848806c259b68be64bf2b36e6cdf6c328b41b84f839ec67abf2fa949dd"; + sha512.doc = "6b71671a5a7b472823e805f5559acdfbab76bbc06a063c7efec468122b3884dbe5a6229c5ed7ab4c0e1aecd304c3333a58fc5c75c22a66739fe0ca16b5c686b9"; + sha512.source = "60064112f68bf18d55c328da986c852b23fd2a9e8082221d4b4b29d901fe37de8c2ab5b9b21701e0db8ca2189945c25bd661ab9ae5a425351a3197bc0a528c27"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6b"; + }; + regcount = { + revision = 19979; + shortdesc = "Display the allocation status of the TeX registers"; + stripPrefix = 0; + sha512.run = "6481e37b45ec26aa270637b465d9fabef010c6717c0a402f0bc2afaf5dfcd877e46fd8699ff8fa39d80218e6f319e09acec1417a47fedefe6da5d90a81b2928d"; + sha512.doc = "19215d4d4e22777b236f4226d82cebb1d0f8ced841cb33a4b275f0cb558c3addd4a1fd76d3aae9cac5e275695e197574145649be5f767372bd1bff13ec76cbb7"; + sha512.source = "4b152aa79080914fa59e2b8a3103fea930ad3a0ab8959c570eba06ba36596d82ba58d03a4404cac9b2ebe3d073ca0eaff856a892b3d1e84d183a9ed60f32e42a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + regexpatch = { + revision = 58668; + shortdesc = "High level patching of commands"; + stripPrefix = 0; + sha512.run = "80b3be47155c8cd654d1b3ff7a1e261da826d97237b15733e6f63f6e3e9f1e40fb8f1cfbff48b38c4ca3acabdd3209147664aa8aa408b4601751f58d596c0f38"; + sha512.doc = "7cb6eaa1ba3e7ffcb80001b2380171204059907fa5345c3c684eb84861340f70590a8b5f1f3fb30a84516ccb2d49b3245a6a697b328157f7ed09bf9caa80982d"; + sha512.source = "bbe6ee9178c3f7d3272fd585f50f0ab66a86d38bbc65ba40a7deb8e22c6d300299c8f4203d3849b5f3c068f2194bc2ef0206ed0c0e5ebb3b235d8a83cd367d08"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2f"; + }; + register = { + revision = 54485; + shortdesc = "Typeset programmable elements in digital hardware (registers)"; + stripPrefix = 0; + sha512.run = "709694065b22e33c9d3f8d859ba8632672bd5e3fcf6102d0915c203b4fa6773e0e78f02b1af537b3ff2eabab5dffdae40e0dce63232037c37d4e50ff325e8116"; + sha512.doc = "08ee956f1f667245f3dc63a27f10b898a03929302f68f1fe19bfa3cc923a890ca72795d4500b16da31e7f69d375fc60e5023ebe404f3ee8b0ecc289fb7a6af5c"; + sha512.source = "9bccd74449f5b20fdaae9b1a6e9178a1849f711bee6ca23229c20bdb78f036a81d38a370cd8dbd0a092d0f9fbd0f97b71d61e81f337561e7345610e04412dcf3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + regstats = { + revision = 66795; + shortdesc = "Information about register use"; + stripPrefix = 0; + sha512.run = "4eaec929726cc9bce1481d4edd4222468c05aa30272b24e26b0c9737154316430ef91203531fbb94e3432fe06042de22d30a6253c1eaef6f1c9287b4f0049460"; + sha512.doc = "8c9f9156e513a4f29c7d362146056fd69f7eabac72e2747c1c93821c9ed69753630da257e1a250b415074c21c1793e4f5c57ea4022338b104871379717da37c3"; + sha512.source = "0a2b173393405c825dec83d5151b1cadd31a1e5b9b20210b7e46982836807a2e7e9c294cb3c184af2464334d43f9a5792f7ebd6c868ccba3f0b7879d34d747b7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + regulatory = { + revision = 69611; + shortdesc = "Flexible drafting of legal documents, especially in Dutch"; + stripPrefix = 0; + sha512.run = "5225692577191c662f7eabb217b9c969cd410e75f07f0ab6b2b8e7745b873249f6b56ca8b6f1b8be8fa538f566ace75af847b272045186487212d452dce9f007"; + sha512.doc = "ac792ec6ee63c2c69cd54fcbaf11e78c49fa819f3dc3bf3eca072ae76fce168c3cb5d3b26f3b0c8e31ed6118eb7787b6a043f0bbec298a80b129314d332c9a2f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.3"; + }; + reledmac = { + revision = 70207; + shortdesc = "Typeset scholarly editions"; + stripPrefix = 0; + sha512.run = "a342f8a3e20265013b493836e5b4297c847718bbf8a8cd0eba4e8efee53a2ed6e937766f67ea6b1dd3f09ae03d670f2e1bcb5bb9acb2d751d63264f1212266b8"; + sha512.doc = "45172bbd27094522f440d6df80826494381d876b715b849415fcbc13e4bc4a78a937b3dce3387540f514b9627413a3c96cfdbe390b101ffb2e2662a7ff716cfd"; + sha512.source = "67ab848a05a4592b2755c2e935f7613355881c32408c8f999b63815cb44315b72809c2287ce5aa7e27a80f5fdcc399f501a0cfd67428e86a050075e1dd54ed20"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.40.0"; + }; + relenc = { + revision = 22050; + shortdesc = "A \"relaxed\" font encoding"; + stripPrefix = 0; + sha512.run = "d638db869698a6b564f1482c3ffbda561bac0da00e008b5b3ddcbe267587813042bd3d578ea871f5ef48a27309baf8e290413b65f99daa26ba7a8b2a1dc62050"; + sha512.doc = "b5e81a7edf8e7d0c3be9ea46ffb2a43af5d58153ee91d656faba600d4082a8982706744ba1991c82ce8c119fd12fcc0eaee30353135338154b0445e48f33472f"; + sha512.source = "ef1a5c1034dfac3ed942354fad6a9e4cca44a33d2252120fe824bb41280453a6c8e00c259331e4159206f60e5043664bb4008e758d8b81dff06c7d68c3382e6a"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + relsize = { + revision = 30707; + shortdesc = "Set the font size relative to the current font size"; + stripPrefix = 0; + sha512.run = "90a4829b63d86214c44cadab6b9c9c114d6abfbd72dd4cd8bddb18add9b7fede2867f39d57b03ac9e7762950db71664767554b515b5409cc873d8b31aebb2c1c"; + sha512.doc = "45b6e38a14c31d7387a99d78c395fd0cdab5ee8bbbe72f840d511d14f6af73f749649b48977e8a995c2ee375358677b31a97646c8162c5fe2ee6c286a05a20b8"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "4.1"; + }; + reotex = { + revision = 34924; + shortdesc = "Draw Reo Channels and Circuits"; + stripPrefix = 0; + sha512.run = "e97663d414291b3d0a009143ea370676bdc69b1897492ef86bd2092e47fcead566151f175676b4a19e196054ecd4a41706a74e9d4e6ba353d9e346786d04a2d9"; + sha512.doc = "fbdfd00526129921896db36234343d991bba29b68adfdd06d9fce262a58b2cc544dbe49d28cb9722eff1fd03ba3a765e38368baeddff18e36bde436c56ce538d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + repeatindex = { + revision = 24305; + shortdesc = "Repeat items in an index after a page or column break"; + stripPrefix = 0; + sha512.run = "f700f201ff05d25fafde3eafd63ddb5aeba81dfe8be0dc4522a08459f35b3ab78cd06d215477ef5bd59c1dd6d1a05361ddfdc21159f3b6347f5a8271c4193192"; + sha512.doc = "031a5113799f662b88b2275f2f82467e2fd84ae58d18f4cb69e090aad7f2c8cb44eefc4c43f3fcda9e92de0c0027fd4ecaf9f152d33b73ebb69f06e6b4c8c1ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + repere = { + revision = 66998; + shortdesc = "MetaPost macros for secondary school mathematics teachers"; + stripPrefix = 0; + sha512.run = "502e1948f22a70003eb5ff4b6eed2790e28cd5acdadcaabcf1f0be699026fbb1cb7144bbb15f230a25f85abf00dc1de075ec44fcc6fa10e26550f85b50a272d2"; + sha512.doc = "c16864711c87f2632cfa56ba06968ed967874ca25139360476f6fa2bb7bd89b900ff8a98c4514b4664e5d623c9d29437e375284bfd0073b2cdda0eae13e896ca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "23.05.b"; + }; + repltext = { + revision = 56433; + shortdesc = "Control how text gets copied from a PDF file"; + stripPrefix = 0; + sha512.run = "a5deadeab45a6a2ab4732e91c26da32f276e2d5b35ff357faeb3361c917c3b47c81e59cb6934d052d3525df2a810510e6fa7a8b9e9d6d272c91b4b558de7132d"; + sha512.doc = "0694a76754c98bcfb6999ddb96c368701556eb1de025af1ae32ab8e39361d18405fbd2c1438c1ebafd2cb06f2d9884afc08e1c94f57eaa89313f54d58a289808"; + sha512.source = "79a4c693599b0f20e4e1b2210f65dab3b1cc276bf3a661f385a2ec70c703846e881bebd2d6ae8913a007b832206e033f178c4017fc69ef099c3ff87f4b40f651"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + rerunfilecheck = { + revision = 63869; + shortdesc = "Checksum based rerun checks on auxiliary files"; + stripPrefix = 0; + deps = [ + "atveryend" + "uniquecounter" + ]; + sha512.run = "464daf4ee4f443f4ff329e28b928df94e83e83696e3e5604de7b51beb61c25a0ce50dc00b35d2cc8d0cabb32d10bc28c3c06069f5dd7eafd9fdb2d44a3adf313"; + sha512.doc = "7c570d38c989aaeb7db5271501c5384ba8b8601396f629d7ffee32baaf1c289592bb5d69d2cb2784cfb2008fdc047098d43dc20803e4b90eac59848c15dd0cb7"; + sha512.source = "2d987c01bc0f67708080d4578f308444ed3220a37ee11ef1a95c2a9bfa0ab49a46ab46d291153f0c748935f473124d70212a821233b22f1e606be6183e4afe81"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + rescansync = { + revision = 63856; + shortdesc = "Re-scan tokens with synctex information"; + stripPrefix = 0; + sha512.run = "4ad1b90e89a005930d1ad5500418c0d867a1100d21429af64edcc803811e29bf4cd79815fc0018505c8d9504069f7f17bf6e09465484bff5ddb3dbc79f54aab1"; + sha512.doc = "602eaceabe16b326a1e2546b3fea21f22c17b92d01500dfc30f0659f0cad8d93c4e919a18af4a96e8633afcc4c08346dec8f5e84f55fb1f54cc2067e2b54ca42"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.0"; + }; + resmes = { + revision = 65375; + shortdesc = "Measure restriction symbol in LaTeX"; + stripPrefix = 0; + sha512.run = "b55b0ed4883dacc78d7d4406fff05ac80421259e85297ae8050b6a77539fd38655caa6afe6afb7c3d8654d9da0d965d7cfe52cbbcc6ed9f7be4d87aa9cd6abc4"; + sha512.doc = "f2faf70d393cead42f20aeb5fef487870c69c8fb557fcf6dc3c589fda448a73b2ca0a0a39e4d963e67a0b38f976cefe410b2c983f820dfe7aca2c255a24f4bbd"; + sha512.source = "67d88b13822d35065708d68b57c2013fd19276bed7cd433235f94b9af0c47b92c13307177c78cd16e3a87a6db634a3c93a1d8e8b30e8bca1babdece0defc8a0d"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + resolsysteme = { + revision = 66192; + shortdesc = "Work on linear systems using xint or pyluatex"; + stripPrefix = 0; + sha512.run = "b4d196ea41fd5f4c9d78df932516a8f1bcb2a8862a4b367a8a288678213fe7a7d6fa8f4ee531982dec11bf04576cc5836bf47368f282cd939464ea6df748eccb"; + sha512.doc = "3fe3d927326acf296c5cafed3c7ab5902ba7c8c943e6bab280b1e0f0a997f90c3e2676522f3dc7dae0436845b4caeb2c58804280d546dd4e6223bd1984659aa2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.5"; + }; + resphilosophica = { + revision = 50935; + shortdesc = "Typeset articles for the journal Res Philosophica"; + stripPrefix = 0; + sha512.run = "0ed9a50305132206585f322ba68fb514e0a4d566fc703a617cc6eda1de23b53820ee45231167f8b81aac826de732763e3c141a9ab65d13fac5d76e92d2101cde"; + sha512.doc = "30739549cd7295186c10a54232e4ed57d6c2a589acf6f27ee758a40880e7a4178375835662b88bd78bd50ed0f695c71650003ae5ea78c63f5dcbefa15c5dd770"; + sha512.source = "cfbaa18ff43da9287755c0cb3f218a57f034862ff9a63b3b77bc51e8171afc7c4042ee567230e7d1c263d7f993976bf4c2f3bfc055f0dd759b034d6d42d6df78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.35"; + }; + responsive = { + revision = 69147; + shortdesc = "Responsive design methods for LaTeX"; + stripPrefix = 0; + sha512.run = "13fd41361d1770d9fc58f1834adb312bde154800e5b1b6c39cb7c0b50dc5623ae3970d5d6fd179c706bcc6d92512f1af88b9dfd78440d47a9e330bff568d5ef4"; + sha512.doc = "840556a6a8ccce54850efce732e63e58078e12740c39c8b81ed47c470d39fdb8a9cd27dca9abb5380fe2d9afdc41c801d2beab4717933bd4ac110c26491ea082"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + rest-api = { + revision = 57068; + shortdesc = "Describing a rest api"; + stripPrefix = 0; + sha512.run = "a5a8f299d6feaaf4079e4a99fb84bdf7752016c92aaca0d0060692c13a7656c230e611e06bdb805712e7427d2e6cb599b96bee77e0c51ed769c4bc49cec32f1d"; + sha512.doc = "b823828c122f971101a161168cfbd489985c159278de80db86647b0c0adff207747b6877795ca97b27f541c7907aff90213feee61d4b039dffbb8b7514923e54"; + sha512.source = "2869854fc933ed536ef425d8418303e3558ed8e0b3681c2d7042e1386b0069dcf70286ee732e0f8ace19cf6965e3bb046caa0384ce1423e1c71d9591012e5a10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + resumecls = { + revision = 54815; + shortdesc = "Typeset a resume both in English and Chinese"; + stripPrefix = 0; + sha512.run = "1ee39179bba50d32bd3d6d9a00dc9f77a9a2b1822e13958b15804307e36ca208eed327f4f8ac144418e2ccde8d9e248dcf4c72bd137bf440f956d60d0bb11634"; + sha512.doc = "23a3484a598f3b18763443fd4131a2e0278f17788aac6b640b00f0935c43ee7c3da5850892b525eb6bdbb9fb01d543f7a22b93cd5ffc64290ca0fa4f41a31354"; + sha512.source = "a2c0f2062f30675fd4c336f618e7f25e1abb2737aa98f5bcb499c5941ad4615246046f9b8a5aaa57d94ed3b40906a73985c2045f8e571c2d86cc0e7dd2c243da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.1"; + }; + resumemac = { + revision = 15878; + shortdesc = "Plain TeX macros for resumes"; + stripPrefix = 0; + sha512.run = "f944441058cbe8468ed6646dcb10e09cbac78d5c7408c2a81f2531491739034e47da9fe8f45583008892740a57a2d36bbd1417f05f8d998bd79f886bfbad87bc"; + sha512.doc = "5b89a7684cbe4da1c653d4a6253f82304b7b3634a9dc973e5f7da41967bdb034597e64a4fd82a922fac5ca62ee40e2ce35be6234deceb25000ff9103859e165b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + returntogrid = { + revision = 48485; + shortdesc = "Semi-automatic grid typesetting"; + stripPrefix = 0; + sha512.run = "751eddac662b8ca6d61edde7a25b11c357c497743aa0edff92be2a672fa13e4a92e6aaf40a8ed69853db642d656c3f54ad0af6cb35c94fe59cd540fa19f7b964"; + sha512.doc = "6f5eb1997e25ceaa7a8956ced78c584058cb8f9fc112f98c350ff996826188f9b7748b7bedc6c19ec0912894500a4743dc7542532317016ef3d295563c450889"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + reverxii = { + revision = 63753; + shortdesc = "Playing Reversi in TeX"; + stripPrefix = 0; + sha512.run = "28117df00d778cfcc2ac035545c561ba1f078f024a8676e32d339f4c47b2206e2711474edde9c15987c397dc192528c8a584dc6bd4121e6da6588dc1a2bed71c"; + sha512.doc = "4d47dde91731affbaaf168e1a3ed79160312d9533636a95c6f9736e6f8c01f2514ec4e4c015bc9d68d0abf637b39fc063820c856693e8876ff7aaa1935f009f9"; + sha512.source = "2dd66631854044834677e0167545de184382c2f9a925b4761b041137ac957dfb2bc645f1065c675efc45e400f7d8ea2a79f0bdcbdc84bb29c1e4bad1d54769d7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + revquantum = { + revision = 43505; + shortdesc = "Hacks to make writing quantum papers for revtex4-1 less painful"; + stripPrefix = 0; + sha512.run = "0e69ce3a2a4a1c289d494e081cd28e9c14c84a45717880e92292cc94803783a350bbe33426c4f5e7ebf64e5b28876e656ab2f1ce681b86c27c7a3c6700563a41"; + sha512.doc = "16b8ff06bbc2155a853a26a0b622e3f89bb7d35439945948128fb37d342d293951526d415a3da9a01381f841dd61287317e52dddda8e8fa6e0eaa5d6a0006dc2"; + sha512.source = "47e7a900aaa9198875acb1a0727bd30b64c0d41e9c33cd6240c29b8d67b17960f1ff05f717701385f627e6827881d365c01ed68b1adea8bd3e1b5423700f9bc6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + revtex = { + revision = 67271; + shortdesc = "Styles for various Physics Journals"; + stripPrefix = 0; + sha512.run = "3c0c008929457a405cabd699a6bdbb0c4ad2afde1c7155b163c52e9564f15718bddec782abfb6336e55c77ba1d0d0d88a1da39420ed1116f21efc1e4c93d4751"; + sha512.doc = "de2053c650920b4e83183883b4fb15f25abde4210eb0c0a81adde4838c76db8e755a2afc74c8f3cafc0819d57b762e701380687e589ffc785cf6439d120c1474"; + sha512.source = "270c74b7f50c5c8ef4eb2f27dd72e5029d6d48083baa9b477506e1559fd6684aa9ff95f371c8a40fc1535455a89e13e625b1cd7c129ff18ff3101457794f34b9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.2f"; + }; + revtex4 = { + revision = 56589; + shortdesc = "Styles for various Physics Journals (old version)"; + stripPrefix = 0; + sha512.run = "cd1f83a7f2664c6002b93bf7ac3b5dfef4767b79f66cd03ed738e395027736d062d23f1a6a9354834093857d467664168295e615ed1c734b708c098943d7bf87"; + sha512.doc = "3e74689745c65b4ae0aa5afc946983aad0507de7cd382db5cddfad6bd13e1414d5f72d7fa1308b3fb65b34eca82ae632b772690a67c643eca6a26490508f7597"; + sha512.source = "32be85786fab483ac0bf8ce8e0bb314a3920e17b3102ef7ad719a4e43c3fdae113089c76587ff2075f7bedd1a6dde3fae6123a0f346082aa7a7645e7c76538e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0a"; + }; + revtex4-1 = { + revision = 56590; + shortdesc = "Styles for various Physics Journals"; + stripPrefix = 0; + sha512.run = "8c3e7c3845cd070ec51430a14a5b2d6f5b49821a837a6ac1f3a8889b353324479cf6121de0084b021c46722c425caa997b1b14df454f70bf7201ae4884de0f33"; + sha512.doc = "d17acddfc14e54d74b874d6d7599a3d20a2e314072a760b0d03ae7e17184e0264fc2d98f0d3b32109147f9b4e0a099e0c7f7e8747730a567d3a2b44d4e4d22f9"; + sha512.source = "d21d299085b7ce98e665cdd28754878c95beb7b0f0dbec970be3e39334bb520eee0ae4784cb4118b60edc0a92c6abb5bca8ad567cda65f5acdfd72449b15f2f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1s"; + }; + rgltxdoc = { + revision = 53858; + shortdesc = "Common code for documentation of the author's packages"; + stripPrefix = 0; + sha512.run = "85b9166bb4408d3b1091b033455650fdf53b24c2fce821c872420191390a1bfbf457326a1a85aab1bf0d6c15765275337764f87adcb393464f2533e2462f10c3"; + sha512.doc = "5e35c6d1e6883c895d031f047fff1ededd4629158a8958b61fb6fcbd885c57797726f595894081b4933c78e5f346289a020424405e0dcae6df40b279b86395cb"; + sha512.source = "8f94655ca8d0006aed02fa7e8fd28c5e3b8be6e92ab010a674d85bc88ce8f6e0120392540fcf5f7649a4af1e6bed4e0aec3d1d15cd095738beeb709fa2efe526"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3"; + }; + ribbonproofs = { + revision = 31137; + shortdesc = "Drawing ribbon proofs"; + stripPrefix = 0; + sha512.run = "88d1ea87819bef7f8e70e0df273315981c28ffdbc00247431afb8b92959aa2e0a3e489b01f7571d30ffaf3606d240f25bee6487fc704f39417146a93403bcb3b"; + sha512.doc = "d0efb33c19d632253384182b562cf0e0aa10be81ce2336992c83ca7d25abce37c44b152cc8e928cdac90709cb99a4a5caf3ce8a631b13762aee7b39ad92da3a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + rit-fonts = { + revision = 67659; + shortdesc = "Malayalam fonts by Rachana Institute of Typography (RIT)"; + stripPrefix = 0; + sha512.run = "6f9be849a018d8714d30dec2d9d745c745c48ded444601bf64136580999614b514ab23468a440e8811ffcd114d0968606bac269cc3bf27feb9a5cbe51a68810d"; + sha512.doc = "bcf029e75ed4d8fc403d8868bd8e01df2ca6c292766750ecd0e7c32ee6ac2e3a48527e321475c8f56ff7f38541aadbbfd8461fa59ec1ab911891bc73fcae1ec2"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.9"; + }; + rjlparshap = { + revision = 15878; + shortdesc = "Support for use of \parshape in LaTeX"; + stripPrefix = 0; + sha512.run = "9a7f5f821635f110d9bad0015d9fdf489f836cc6ec0c101f63a3bf5bf9235d7446dad98db1325b0720bab85d68432f4cbdbc6dfc78456329a8c48b47d9212abb"; + sha512.doc = "73987b63cd565766586dff08144bb9cfab13b7251053d5f008ccb7dd3091ec9d3bbe8ed92fd8e7dddce93afd13a649e68826468b87947a036a054fea76225921"; + sha512.source = "37af8ef7c124fc331a4156b177578aed29b99777a0270ef819b896e5f6dac9b694c3a05ea439cdc21533a405bd052e071036682b0846905c09ce95c32a986dff"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + rlepsf = { + revision = 19082; + shortdesc = "Rewrite labels in EPS graphics"; + stripPrefix = 0; + sha512.run = "198037c1fd20eaa28b727054607241b7ada10c9dbf4d48cd36f295a8b51a7d4f94859d2349d3d4e831a74e0da025ccaaf91fb53a3074a704f7a3216bb7df0cf1"; + sha512.doc = "fc06c857011fe01b07180c9530a334e021f5b9c034c65e15959e173a409670947c7aa406bf751d64d5d77d462139f4835824aa53203381d27d4ecb0e51463e7f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + rmathbr = { + revision = 57173; + shortdesc = "Repeating of math operator at the broken line and the new line in inline equations"; + stripPrefix = 0; + sha512.run = "d1394e40203bc7a0adffd26587870ad4aca0faaff6226047cedd5ece5e55e6a99e56829a38ce40b6736c1f9a03b9bc4b337a0e4f9eadf0617ddc385a60372176"; + sha512.doc = "e7c8d4f198399ac35e51a0d1c2c6ec420c746768de362a8179c0208325a45b11a8ba6445c2b7a433e7689e677505e3baa4b87d48a749bea5f3243d10f43deb83"; + sha512.source = "44e4859933c2a5f664feb1bd40ce1e51da845fed56b8594d3fcbbc814654c80b18d20760db3c2690fbfa74233523e4e8492471415154942cd2666cc52837a98f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.1"; + }; + rmpage = { + revision = 54080; + shortdesc = "A package to help change page layout parameters in LaTeX"; + stripPrefix = 0; + sha512.run = "13c05ff27a2b5979102c80bf30cda04d72fd144ecf43359cafd427417ed9f8921332a0cbba704061847c9f1d740f795ee1135f6ba2ba183311496884189e3fec"; + sha512.doc = "e4de990151be0c984486b833b9f883d1f3412371fdbcc09900b89849b943800cb269fe0164695e95472b463bb4dc81b92fdc532dd59a9c3ba451fb961b89211e"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.92"; + }; + robotarm = { + revision = 63116; + shortdesc = "TikZ powered LaTeX package to draw parameterized 2D robot arms"; + stripPrefix = 0; + sha512.run = "fa60eb073a9a47690935403a13da3570a4aa44e9ee13c12c5a4ff93a1f02509ab35b5f64a03a67be74190420d0b174fbb4b9a34070a646ea557f03a584fd354e"; + sha512.doc = "2d2838b21c1b0c8201375e0e4e4599c7ca11bfbf05a55e070db236ddd3793e51d1f809cb9c5e92bb9faa2e3b90b01cdc9579bbb44c653294e384c66b7628ae5e"; + sha512.source = "02b928d574b29d2de845421b650156432911c3a917c7b2f5f13a1e3decc513abf5a73fd1d8bc27563885c9502e3a6058258a79e4fca2a1cfd59437a033b3d58d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + roboto = { + revision = 64350; + shortdesc = "Support for the Roboto family of fonts"; + stripPrefix = 0; + fontMaps = [ "Map roboto.map" ]; + sha512.run = "d82d9ce9480bf0c9d7f6559e7bcbb5fe8f22179adc44113121f67fc0daadd66c938b9fcf9a41073843e1cc981162972a79f15fe6162f68ba7a01b74732b0f01a"; + sha512.doc = "2ceaedd2b273c252e8510a98cb05d581dad8aff94f3c8be1dc47fbbc9b52a0546ba8025c6bf0c51d97d0573d208af2f8a635c0cf405a980ae8cf8e4a1f13e499"; + hasRunfiles = true; + license = [ + "asl20" + "ofl" + "lppl13c" + ]; + }; + robust-externalize = { + revision = 70605; + shortdesc = "Cache anything (TikZ, python, ...) in a robust, efficient and pure way"; + stripPrefix = 0; + sha512.run = "d4abbe1a409b7f282985986d75032361a1c5b38fde2494a8249423edcb304c6aad8dd45484c2d3d7cd56dac9462226791cd73549b0403feb578d18032709662e"; + sha512.doc = "330f8b74e7514fdecffd7c2749fe29bebec019e69f2368b15d180c775ed85f61c90a1b59192c34d3b802dbe1cb45cbec6955e8d91e11ece6df1a1755c1a7aecd"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.7"; + }; + robustcommand = { + revision = 15878; + shortdesc = "Declare robust command, with \newcommand checks"; + stripPrefix = 0; + sha512.run = "806f997cf6c0eceec0c8d9b8f8207014c4ab9243f8007fc688674af2fd778455a787b9cf998262fb7d0a92ba8e2ffb597d61950c22a6122ad957a62ea54d9a42"; + sha512.doc = "4d5c8a994edf816d39af12d7881793f0fda0223a3545559255674fa5a08f2d0fc9ad8ea2779b3c8bfe476966045f996b8b8f5da6fdd028188d28ae724c24a222"; + sha512.source = "3dfb71a6a73f2ed968777eb1074d65773aaee7c1218b18fddd78e74a86f27d9cbf5fce79c41503c34e497b12543ec2e0c16d9f35d39b893e208a236fd66f4f50"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + robustindex = { + revision = 49877; + shortdesc = "Create index with pagerefs"; + stripPrefix = 0; + sha512.run = "3aeac1a43261302532d7b5ee309d6cd94f54a2b17954c023bc6a94fa89c51291f3c4fd3276b03aa3ec65f4e21556d302c81aec107fac5dcb477941cb474dbbf3"; + sha512.doc = "aab461e990176e1d0cb82573edcfe11a4bf668b2d09edff05f673fa20d24ec76464495bebc64086fe3bb4411d5ec9590f43cd57949bedaa3366f6c7313359f56"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + roex = { + revision = 45818; + shortdesc = "Metafont-PostScript conversions"; + stripPrefix = 0; + sha512.run = "7df2224f9970b72cfa1474898c057799fe42d717876eed864f35aab113d01dfb483edb71f7f4a0a98b6762bbc309ce6fb51e41dc222a6f19be2025f6448fb1cd"; + sha512.source = "d89d02dd79142344334678f2d8ec4f34eb825532e8be9260cd08a43b28e1aa94ff5655c1c1eadb2f9a365e51693f6195a4851e1420072c867d8b2c0f1cbcbbb4"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + rojud = { + revision = 56895; + shortdesc = "A font with the images of the counties of Romania"; + stripPrefix = 0; + fontMaps = [ "Map rojud.map" ]; + sha512.run = "cd7065dc6a916941a0fd05ea342d29499b6f7496d1934e06c49e7ea1a99c5be5cd515bbcbc2b5935ff8132adcc7b94e653d55de967700410ace55697f6fc156e"; + sha512.doc = "fb9c9f00433ba959ad8f7b5acc93b1e7b0db1cffec96b7c988eeaaae89ceecc815071a1e21f78d36279e529f4e9095602b1887d3c5d4164494be502cf4a19873"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + romanbar = { + revision = 25005; + shortdesc = "Write roman number with \"bars\""; + stripPrefix = 0; + sha512.run = "205ed0508765e58397953f28e6a1172d8684f8063fbaaf4d741f4f092e1f652879b414a3225c87bac01e4d41f01c2b0a44632e0cb3088c5c174fdbe42cf25272"; + sha512.doc = "a5fc8c5d6e6a584de4394c59f9bacddc23fbec8d4639a0476cc0814404f1413774fa2d6bae3d8438cad2eeaacb56405680c0c6bcc152a5e4155ecb73de72f07b"; + sha512.source = "9a96ef043dc3542251fab1dc299742b5c322518c61de8d365c290926f2365e5bd6b80a57fcaee19a30ad504ab51b2dcf71170303ab92eac97fe3db4a76dce08c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0f"; + }; + romanbarpagenumber = { + revision = 36236; + shortdesc = "Typesetting roman page numbers"; + stripPrefix = 0; + sha512.run = "7c8fbfcd5e9ec9e306e7ac836fb4c82db3bc42179bf77502b5299c17c4d3ad515b9397016d600011eb24c5d9f2eda23a485634c5aca3a765653cce32d7bf82c5"; + sha512.doc = "a46bbeef023b74c576da84f9791d4d6d47a08091b43c6bf6936c4e17ff54ab2bf5b517cbf1d07e59c077e0981ac989570265df1fde7237ff24727e33d6f1b71c"; + sha512.source = "953af4fff1fe7e6b3e4bfb7447a0da7207f93d7377ce365bfdf563c9dead97860826c8f5b8dc491164437523e27a040fee5b95b58f09f248166268197233f89c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + romande = { + revision = 19537; + shortdesc = "Romande ADF fonts and LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map yrd.map" ]; + sha512.run = "874883eb3592852dd6dfe2dc675a768bed8db80c0c617cad7c28bbefb2ca111adb410a584f75fad935bfec330765650ea9d0f73c8c5a9fe567526b5fb46ff17e"; + sha512.doc = "708ffe5a4dccf8241eaee7d22787e0e30bbd10faa1cfd538836da676cbd4f67b16a80772f8a4cea08f59af6d41a697426c4a4254c481d13ac3a10157b2a679e0"; + sha512.source = "040b154c19ee55910b05d0bfe355bbf000403fcc5c536a081e4569390c599123d64000680cb847ad710204d1c33d7ceb0ab7ea049847ff4ad0762fd9c0acfeeb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.008-v7-sc"; + }; + romanneg = { + revision = 20087; + shortdesc = "Roman page numbers negative"; + stripPrefix = 0; + sha512.run = "4195303ca32b46d722bb148ce4079bbea7cec08fc74a7b0cb6232dcce517b7b5a10753be22fbaab62ec11d894955e1368f3a6dc2a2474cf9b9450e035bb73c11"; + sha512.doc = "cd583b94911ed57e6c61689d437fb4a55a868813fad5791dfa7231b4cbd8b7d22cf4e6f3fe90e2cd36eb08202f4058abf93b5df2d74e1841070378dc9c31db64"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + romannum = { + revision = 15878; + shortdesc = "Generate roman numerals instead of arabic digits"; + stripPrefix = 0; + sha512.run = "06fb28ffcf6c8212ba3bea5e3fd93fe4a5394ce1cd3977556bdebb982888c2c0f7e45dc751f94b1ecf921c701fe6783166e73a595d5da55e874359b7a4065182"; + sha512.doc = "60caceb87b6d866c905685cd180f0deb73f400b33007e0589e1aa5a0b42ed948d88c672a620ebdd4d78bbf92aa81c1094e4d4d6afcb981747e65596711e112be"; + sha512.source = "dd1a19bdb63aad8f3c3458bc000933b9c0d04a3b331c37d84a9e7de4a7027b6cbed113038129a789f43d1049dd72acc432e6cebbce365277026d5e6b5cde328b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0b"; + }; + rorlink = { + revision = 67461; + shortdesc = "Create ROR symbols which links to the given ROR-IDs"; + stripPrefix = 0; + sha512.run = "6dcdc3e26fa093346bb60d2346af7de4cae4ebaed024fa21de1f28cc462b956bb21e946e189804a69420ed26fee38b3a3f8d45cb5a04d16c2859f4f0e0caf8ae"; + sha512.doc = "cc711052ab363104748b944b0f9d32e6328e2613a100871a53a2b9464e4e4d16b6cbfa4c42bbbd5cd093bfac1518e605af4b43205fec40641a0e2465b50f7728"; + sha512.source = "105222e02016315b5cd5367e2a739db1c977f403e7cbc3172be8a2528e140197472785a7de48be8e252fa702941963ba2b4dbc75ce52929bea0d4b02b5b9399a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + rosario = { + revision = 51688; + shortdesc = "Using the free Rosario fonts with LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map Rosario.map" ]; + sha512.run = "e1e200c49ba98fb1d2bd5cd927ff209a1f72b9681b1cf3b49baa263985790f7d4854ac1cd9fedd464e2076488b3042456c7fede5648dd8ef23d1ba6701705437"; + sha512.doc = "1e5a12a62b7e62587b452d0f8926757b987e83a2980698deb94c6955cff1e45ef634ec8ac1c1051f6567db8a3de9fe8d4df23a5f80317ddfd2ba863ef15935c1"; + sha512.source = "4c7613a697439feba9e52ebe40dcbf738370f3ad5278ef0232f0e0e13ba9ac2c46d60233c8159c626b97b53af5238f75c096106b0b8529423d5fa3feaaf57a87"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + rotfloat = { + revision = 18292; + shortdesc = "Rotate floats"; + stripPrefix = 0; + sha512.run = "2976812ba6d6bdb304d56c9f10f08c02aa8acceeeef6eb05ccd0ac7b3e3b86984794017627d8f939994ea0228bef5e9d6cab0b08843e87a840ee5c2390dd0bb7"; + sha512.doc = "020e080e047f20db45bf83ff32c267f5a10b7790adb64495d09ebb3795a55d953154b8afedcfa0214a77f11c35287b18949b8f1fb89b6ee51aac12a04832e922"; + sha512.source = "b3b986dc11e30b68f75bfa371c85eded713f759f6fa0229857cc05172edd70caafd9124098813cdafd1f060fe57a6667326ee84445fade50bb6acf9d1cb6a95f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + rotpages = { + revision = 18740; + shortdesc = "Typeset sets of pages upside-down and backwards"; + stripPrefix = 0; + sha512.run = "a206e4147a68ad0ae750e18ee6a360d6ed2ac91785b75f8fecda4b63db695a36a9602da8dbec1310feed4072f952dc49f4d2c5d2817fe74477759aa55246177f"; + sha512.doc = "2723d32029abfc773de8f26a1f08cb3535c5878f63effcb94fcc6a2f98f1a0f9ff3c53df8a4d9c1ce1f99b52b9fd7b2f5c919dd9cc915ea8266835aa85ddbda2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + rouequestions = { + revision = 67670; + shortdesc = "Draw a \"question wheel\" (roue de questions)"; + stripPrefix = 0; + sha512.run = "7eaa938339d1e59241b85cbbec4238be4fe2aaf4dbb3544c6d1511723c62b96dc5fe38c4fae062dd2d61760739caf0df3652b710546a6725d072969df8e68b0b"; + sha512.doc = "16ea492fabb90e0a649d5ff8e13b358a4ff7a612df34cd60a7023a1572337d237b87bdd5deadd206513562cfc1a3b27e834c49fbd5204277d38dfcf3a1e4e586"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.3"; + }; + roundbox = { + revision = 29675; + shortdesc = "Round boxes in LaTeX"; + stripPrefix = 0; + sha512.run = "078938229ca1ccba4c26f97eae59376afcee469629a7e8704d6e376d5bb256e8991ee1cff17f24e362772b78ed800b57bc6018b10e897daa73c142fafa1f62c7"; + sha512.doc = "cf0f56e42a82d6ab36fe6af2ba690024cb555192780c04ef1a01e71fd6cdfb803b0129aa95e304de4fc8c1e2d1015b14dbb6631d9773bdf463fa52c22209501f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + roundrect = { + revision = 39796; + shortdesc = "MetaPost macros for highly configurable rounded rectangles (optionally with text)"; + stripPrefix = 0; + sha512.run = "01cdc4c8443c50a91dd408c52122e8ae65257344176227a508cb082f92d61bc02756d47e27f75d7862d3c87c26add2003604956ad00b448f63b4f6417c520ba6"; + sha512.doc = "35289692327bdc68acbd442588fbd37185f9e00e3e4ca78fe500474c53ef96542042cebd18cba7720bdca0b72f19384fd3b8afcf45447644bb3c560a1385595f"; + sha512.source = "9866ae92b2c5f8c446ebca5c7afcdf3e8b52f12504b7d74c5ac4faa570a98ab6775c3ba5ad99d4300c1f9b7f92ffa423d5c73991ad47951a4e2bee3eb3bfe473"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + rrgtrees = { + revision = 27322; + shortdesc = "Linguistic tree diagrams for Role and Reference Grammar (RRG) with LaTeX"; + stripPrefix = 0; + sha512.run = "cf80b48866e36b983527f0646c94fc9776ea799ac475a2c5879a4dcb3b3b0d052e061f871b6eb0a8c0fb1153c0a9f6f0ccfcfb1c6b8f3ff4839c3d454ea3e62c"; + sha512.doc = "71992711c27e741403c5f7cc268e8597e2ea17abe42d953bf0c3caf255c0a8673f6210bb808fc70b741c694778f7cc7a45435afe39939b1377951e8e2343d73e"; + sha512.source = "8ef5cf9dd617b1f37c57cb70e2aa7b3706d171eaca5e5498fbb3f653f409667a058254fd618681dc2af701d1d9e544d97ebb65c24081ecf1e40cd81f442183af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + rsc = { + revision = 41923; + shortdesc = "BibTeX style for use with RSC journals"; + stripPrefix = 0; + sha512.run = "abd1d24110722545b93cc16ff35b70c87f467193a33e8da2a04eaff354d89782911e42a46da5d380b9406f923c6fc48d38950d7346cfc799abc0660efa23db8b"; + sha512.doc = "8569a90d7f5c532e366901d8bd2bab3d5a32d5b6d1c4cedcf179d1ae96a6c34ef5d294392f93fed589a55baf3ffddee2cd35a67c2aa8fc7e0477b47ce92eb411"; + sha512.source = "b3f097f76dcd1288a70d7aec88d7ae9fc58bb4b3f3a2589944c379aba887b3e7e6c2fd6b74b2a70de58e8cb078edc0d6ac0b1997078d0c322aca9928ba033202"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1f"; + }; + rsfs = { + revision = 15878; + shortdesc = "Ralph Smith's Formal Script font"; + stripPrefix = 0; + fontMaps = [ "MixedMap rsfs.map" ]; + sha512.run = "f5d52f49ead227b058841bb88571ae0d6fb40b95dd652536887acf13c0a5dc5b61e3813faaef2effc26539125c2776e113937a1612e7bc7146e7d5517b02aeb6"; + sha512.doc = "2d23715b38d90c686d7edae77f2a774041d3b679035e0399b7b6089f9b17db3ea4c6c3cdd655bb6e5f3a3cae782e30984c1fe89f5f263a0cd86b441c5376848a"; + hasRunfiles = true; + license = [ "free" ]; + }; + rsfso = { + revision = 60849; + shortdesc = "A mathematical calligraphic font based on rsfs"; + stripPrefix = 0; + fontMaps = [ "Map rsfso.map" ]; + sha512.run = "7632b0cafcb0d28f5f4b742f8c457634a9cd1ec7fd59e61e01fd5f3da3964ae941fdf2fbaba94b0d0934270ba56a2224352e11075970e28bcf16bd9b6f97f236"; + sha512.doc = "ccb3ce73add1f2a4f269728b8189569637327d85cd1a4d29a03904872cff10ce3057bd01a9d74a94373c3aaa52afe74a98d07bcad248fd18943efb0bace6db36"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + rterface = { + revision = 30084; + shortdesc = "Access to R analysis from within a document"; + stripPrefix = 0; + sha512.run = "3c3cd754ab17d03d50c35ec9824b76b9d4528276fe2b5a882d35df5537ca12f83956b2c596a269f9961f243bbd5e8c394c6f1bd508d07cecae50fa47bf05fd86"; + sha512.doc = "c8c38026ce2bf2a996ba40062fe3bce797b381633e4aac50ec438bc9fb567f73ad1c4e764af3cdc816e62713d4f1dd8bf2ab1814b50d086811359e999103c7bf"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + rtkinenc = { + revision = 20003; + shortdesc = "Input encoding with fallback procedures"; + stripPrefix = 0; + sha512.run = "a1f31a946838123b65124fc7220e77283cf89105ae439f1e851abfc3c30b6a6b7c83bebf676fe47de1dfa9668cfd22c638567ef9a097aa97dacef1f0e3ba1eb7"; + sha512.doc = "f3e7b1e7c95af7bf89b58ac949ab5b3fc12d991a436e28196f748ae033c46446a0cb885943777f44af1fe5ad4aa579e0fc43676c44812b01cc64d85e4ae15e4d"; + sha512.source = "9078c15d4c1531b9ca0b0ea6a2561815538de45dc33a9f8cd8f886cb7ced93a9fdf8296f409516480fb58861b599692982b503bd49568548b4d34743c44ca037"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + rtklage = { + revision = 15878; + shortdesc = "A package for German lawyers"; + stripPrefix = 0; + sha512.run = "6e39e34a7c293f503949da66f1d5ebc65ae0388dc56e87992e9fc4daff1a250196afe68150be14ee2ec3242393ce9e5ea7b681cba31b7ed1c2d58526f6506554"; + sha512.doc = "550c21bcd8af04041f1fac11f2be3ae2a1f01265ad6bf31243569820c7b8d83f32ccd0cdbcc4d5a7a5905ae9aa0512a449a1b2d6923affceb344152e6c12d72d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + rubik = { + revision = 46791; + shortdesc = "Document Rubik cube configurations and rotation sequences"; + sha512.run = "67931287ea126947b5b2d567ba355d44ce094b2b527288ce32329de4a73434be9a43cd520e6c24ef570a46a16c0edcf12212f46228ee1bcd2b8a8be7f9db3a7c"; + sha512.doc = "33d5c8210600cb4ce7b1313d1046f6644f0a6648f7ee9676d4d628d042f6501b5e92f2b56a31fbad6f637dc93a460a568be9e1335bd52bcea825f5772b2a9d51"; + hasManpages = true; + sha512.source = "3159acbc71a007877c046f6c075bf271e031feb00cda04c1818e4490396c3fb0651f160c7a98d8d3391efccae6a5b1dfde2155c6bde1c463e1c7416107b4ab90"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.0"; + }; + rubik.binfiles = [ "rubikrotation" ]; + ruhyphen = { + revision = 21081; + shortdesc = "Russian hyphenation"; + stripPrefix = 0; + sha512.run = "d681972cad53b86167f4800f78b5d25de305d2f3f604e6b41b481c432bb9f09a964720fed5b5052cb8a30148da1bdc76306d8edb2139018d83c331d3439de958"; + sha512.source = "df587bb8c81e73f70a93146d6c3a50c2a66b16084e8eab0b01e0aefb3ce073c6b6e812cfd8c5a1520f98ca58e2e2e0634877ca2987742eccc4d7340a7d62e23b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + ruler = { + revision = 54251; + shortdesc = "A typographic ruler for TeX"; + stripPrefix = 0; + sha512.run = "a0ac63735eee4be96fc368bece6eed80058b79689954780990e1da5632448203c4f99d9b13f541a89e523f4a531983d5fefd836b99ed64c2f177723c822f8749"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + rulerbox = { + revision = 50984; + shortdesc = "Draw rulers around a box"; + stripPrefix = 0; + sha512.run = "197588dd36056d6b6e9f7772205cc44e81734cf63dfc83a7c987209df0c2b47f91f460d322df05f123768f3d10d9af8bcdda6619da394fdaf3367be88821a135"; + sha512.doc = "b4de5828d5602845217726ded4d56ce6f4008a599bb1ddba89745ab39bfc2ba9ed3fcd1f636cff4743252a975a18ba07925f1e78f81fc8cc2ded80a7cf8b74b2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + rulercompass = { + revision = 32392; + shortdesc = "A TikZ library for straight-edge and compass diagrams"; + stripPrefix = 0; + sha512.run = "8f2e8d9a4d61c3c79e3ef29ae554db2696b9c374fe10f59fe2a4baea33c679a0678a95c30ea1d4310662bb5af6a1b02d88db7bb43610545b1ffb39fba19b5001"; + sha512.doc = "6077a3c137269e5be37b62879c394d800f4bc80cacd1d9600b2aa81503958e2fa29f0364db58c1418bc206db916f84f46cbcf70d0f30a9276a6e78d154150425"; + sha512.source = "75765738f4d3b635468d8e1ebda805e0fc6e2bd3eccfbcc1594fcce89908834572aeec85fea189368d02d05ba1fff6d0e2bb454ad25bce2b92a45cffd74a979c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + runcode = { + revision = 69471; + shortdesc = "Execute foreign source code and embed the result in the pdf file"; + stripPrefix = 0; + sha512.run = "bedab511e29b368c929f688742dc59c36ee6416a8f362c2a24847dedf0eae472e64c060f26287c55b9b881804213ec57eb04249d9c031458fb3d642c01255e03"; + sha512.doc = "fe6b6af9efe7564e6c3ac6040f08ce30f17159b7a56ca983a9e8f97217706d75dc481daccc0c2594422d3c578edf0f00e5a72f5b06f7eecc8ea81f79ad27ac4e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + runtexshebang = { + revision = 68882; + shortdesc = "A Lua script running LaTeX document files with TeX-style shebang"; + sha512.run = "8e681e06b29e235d76b21370614c22ba57cf69debff19869f3589ac5a1342f368621083a17b7a1ddc1ddee37478bdb9b81f4050bb9a2f7d28a7d753909238233"; + sha512.doc = "4f2754641930105b1bd70a0a116e724e019c1930ec49e27c3ae895c35b7840c54082285cb6241554915234c16a59dbcea9ee07c509d09d5315ff6f04e0137168"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "mit" ]; + version = "0.5"; + }; + runtexshebang.binfiles = [ "runtexshebang" ]; + russ = { + revision = 25209; + shortdesc = "LaTeX in Russian, without babel"; + stripPrefix = 0; + sha512.run = "11bceea67aae767037d728ab7892eedab312e9477f1f9f7501f9702fca4ceea4e21bd575b1589fb545abdbdc5f5f5315243f77adb4c9b9a2507fb255481c5541"; + sha512.doc = "876cba326071d0f347d9a1a4c1eca692ca743729b9604a51bb5b53de96da6006ff24168040e77df60b1999cb22901b7318669c32378a869081956dde40974802"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + rutitlepage = { + revision = 62143; + shortdesc = "Radboud University Titlepage Package"; + stripPrefix = 0; + sha512.run = "fb7d3aa93191c443ba31e1a366f34efa7dfcc896c534d3696002ebc54f3b24cb34131c50fc7d584f4b725d3b56a323628441398b2e1116789437460b97e21fc7"; + sha512.doc = "f8293227a99eb022a2c3a3ac75d7e8ba6f61880b62f5cce11eb791bb489386de93cefcc2b607cd4880ca58bb933328af66ad93b4c6ce0e16a842c56fed231206"; + sha512.source = "f42d310b3697077a842fc13f580adc605826c94984102769b6b27de26548792cfac59517319ebbd20719068c012389d0c0a10dc0a89986a89855c8ab8d039620"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + rviewport = { + revision = 23739; + shortdesc = "Relative Viewport for Graphics Inclusion"; + stripPrefix = 0; + sha512.run = "eb4bd4e75f021db40119cb4d4334611fa80d26885dd4229ace652bf8dbd7b4647a6dc4f45c8be78ad8db0cf1001b7117ce3c38de2483f0dd96da05473543ac10"; + sha512.doc = "10f94dd8b29d354eda99e8c0f15b53baef80714f7212714a94070061e403d45fc5a97d25174f268a14b0f4c924af9b25c81131929c08be1ed9a4e62204f17c22"; + sha512.source = "25e91e8c4f52b1752b32293828d174fcf3cbf6491f38dc2c58be23ef7f2a84570c96606472ed89ed837951bd2ab9bd1e48d4a126beef160c14899b0e70240eb7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + rvwrite = { + revision = 19614; + shortdesc = "Increase the number of available output streams in LaTeX"; + stripPrefix = 0; + sha512.run = "c187dcb7e1c72b727cfd0827a55d721c6a094679c1dae27438ed030209042b49c646af20e158900543369ca8ceee9896a9f36de76607f8514004df80e3be15fb"; + sha512.doc = "545e5b96a2bb3646a7b4a6eb31d5192ef85dee9ac0b6859f6b414f26c5235651294f486bd132af112a2c6021d6843e6ffef8a8f79b7389b974227bc1eee16230"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + ryersonsgsthesis = { + revision = 50119; + shortdesc = "Ryerson School of Graduate Studies thesis template"; + stripPrefix = 0; + sha512.run = "0846fb24c6b96cc30edf46d1311809e1170d3feb13b3c26be4dd330ef8dd856771f257ca197f562ed409815f0edb7e8ea744a38b9098b86a325eda9cd4ad360f"; + sha512.doc = "b0d57ce3dcab586fdc2e15f6c2291560c43dd772b693ec11e0678e083a1475c21b55601878cf938e666d0f8a5464ffb0b79281b62f4859200fc6cd67b33b8779"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "1.0.3"; + }; + ryethesis = { + revision = 33945; + shortdesc = "Class for Ryerson Unversity Graduate School requirements"; + stripPrefix = 0; + sha512.run = "63988ab74eda81270f0e470f3b1d1c772b17668fd9c6526fd8d53f588da8e52d3690b4c3ee898f2b460f83ac44ab4c528a0c6c48abf1a1cbe21427fb4e678a1a"; + sha512.doc = "03ef086a51a97ed93038338b99a516ba2898a0097326f4cff3c650c7035acc4bba7ee2fd6458c579a9f1af4ff31334dd22cc23b7004d08e58a259306ee1fbd8e"; + sha512.source = "0754857b37c510f7cc581201c516d3ca1f6e9ed9bcc0825968efbe728a281e2ec73f58f7415efdb07bcdaa66fbbab3178793907b3da17511e69044bbdb2d8aed"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.36"; + }; + sa-tikz = { + revision = 32815; + shortdesc = "TikZ library to draw switching architectures"; + stripPrefix = 0; + sha512.run = "e30f8b6dd6f082bd127077fc5040ffef53e2c2fe43afd023bf0fa9dd8094769e2d40734dcf412d477989b746e1e5141cc42cc082e9f5b26e5986cc91f8336ec1"; + sha512.doc = "d6586a6196fa9ec8c70ff6410873604d987394ff09e93462548baa202f22bda479fb4f76f66fb710b8daeb7b34e455225c997f07cc9360a09c5cbc4c45697a5e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7a"; + }; + sacsymb = { + revision = 65768; + shortdesc = "\"Sacred Symbols\" prepared with TikZ"; + stripPrefix = 0; + sha512.run = "59c61767c7f9cc782ca1a9cff78c0226f7860080453a772172f8dfba0c1deebfddba701704d15a2d05cfd010b4baae553d30207ff4701056a263a51f5a4e03e8"; + sha512.doc = "135724503c2c646bd49ad1e434f5e4c20335f23605839847b3c6729945e4550b6f855ea015e5020ff9de7ca4bc5a46d70e99dc9f372e6fbd2cbe8aaf55683984"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + sageep = { + revision = 15878; + shortdesc = "Format papers for the annual meeting of EEGS"; + stripPrefix = 0; + sha512.run = "d8e107109129636cf68d88c96a36de87b95dcfc4e154dae51a1145d7a0c58a17ca12e95b1b2fa1312c6c50c5cc02be35b23168d8eca69a7643695c38c5d0bcd6"; + sha512.doc = "7f92c14d432ca5960669a8faace80ff6d4e97d9a021281c847b7f19942f4c1a06da3657e8992998e91bd1d69398b3fe379da690f81be28cb4ddc3980262c56b5"; + sha512.source = "25f06543efc104bdcfcd81fbae6182498f23a7d1d958671cac945f5442a59a71033bf3fd174bd41c438c7a6a066d41b1e4a375b559b14bff6e705ad2ca894b05"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + sanitize-umlaut = { + revision = 67126; + shortdesc = "Sanitize umlauts for MakeIndex and pdfLaTeX"; + stripPrefix = 0; + sha512.run = "2f9514b9424a72762c9b4bfbe2bceca10dfe4e75a42e9fe2e26d6808d14fa2aab62a03f26becec8e80b00c658d4452e95c3b84bf692d64cc287693b2542ec3b5"; + sha512.doc = "2de8f2935de490e127f19b50f10698ad323e823ae4bcb7b357b6cfe084c9f6a48d2314889a54974a4b58275667da4eac89cebfac5c25e570c0172ecf9ca44af5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.0"; + }; + sankey = { + revision = 61874; + shortdesc = "Draw Sankey diagrams with TikZ"; + stripPrefix = 0; + sha512.run = "8a77f2ea3b4c2167d823a839fe2fda2c633ffeb775678e6fa9cb84558dad547f4fb03c3fda6c1f85c4984628ce1515ec874482e8a223385bf1c24b2c30dfb362"; + sha512.doc = "a3d18d1a43f22470ea5498423c10246c780116769b0493356174c8e9acc6d9aaa32657f7582b795d2cd720fdbb6786319090303548661f899a650da4a0442629"; + sha512.source = "92b3d428919f217c8c869d3896829e324670647c29321bd868753e3b408c5e227acdc15097c81dee01b3319c08fcd94da1cb5e11ceb5d5775a90235a54e997bf"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "3.0.1"; + }; + sanskrit = { + revision = 64502; + shortdesc = "Sanskrit support"; + stripPrefix = 0; + sha512.run = "85b4c707f00cba5b9be49f228f0466e3f0482562d481763b9cc7f269e84e4018e3c00668483b6ba798b0336781555e45c06a6be116c2c4b23a978defa8c8141f"; + sha512.doc = "16643e1c8e72e37ecdfae0176c415fd655619121cc75fe573dddf4a07a64161050a681f524747868101e72ee655de6935d3c21f68e74c31bcb7113d9942c818e"; + sha512.source = "e7836d95d46335a3e809fce62211029addb84ad586fdd74f2f8ea924e767bd7c800edac5b74c8660c10eec46b5a8f0b287121e83b48e029b98ae69cc19bdb14b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2.4"; + }; + sanskrit-t1 = { + revision = 55475; + shortdesc = "Type 1 version of 'skt' fonts for Sanskrit"; + stripPrefix = 0; + fontMaps = [ "Map skt.map" ]; + sha512.run = "50f7a12443730bb017334ed1bad840dd2086a0225586eeae02f1386f410ae802fd043b1ce8a90e495aac7bdb20e2a8532c4cf98d48f0fc32b96da24f28de26bc"; + sha512.doc = "11a0bbb4212f72a18df5eb1ce1e2259774c6376a3c107fe32bed4176d23da2f5bda5cab71a7df618c67113ac9d65969ea8e680ab939c7c6cb2542ebd4c7e5efa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sansmath = { + revision = 17997; + shortdesc = "Maths in a sans font"; + stripPrefix = 0; + sha512.run = "075b9a32512f191767bfc739b833497eed371c2078fc8511ba507b19e2744675bfb3caeda40da484ae559aaff44aa4f6b2f7f5baaeb0c30076654593216fa5e4"; + sha512.doc = "7923dcfcf20c945dc61af747000694c59c61982417307356ef2ee335f7a3eac7e44974a334072125ed4a3ec3b29caf342f15dfda1fdbc348a5e2cfb8a4dc2469"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.1"; + }; + sansmathaccent = { + revision = 53628; + shortdesc = "Correct placement of accents in sans-serif maths"; + stripPrefix = 0; + fontMaps = [ "Map sansmathaccent.map" ]; + sha512.run = "685b0c604978aac45efd75c37652471aa165bfbbf12dfa686320a6a9ef926f9043382333ecc26db6d2ff4d12732d135947145ba937eb6d01d4a4e9aa17784315"; + sha512.doc = "c9bf7d65a232d668243df9867b2eca64e0288fd733c6b39ce200f64fc5b0a07c98ea6a971446f67f1766998e169c14a80eda71104c1653ed54d3865e6e145fc0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sansmathfonts = { + revision = 68777; + shortdesc = "Extended Computer Modern sans serif fonts"; + stripPrefix = 0; + fontMaps = [ "Map sansmathfonts.map" ]; + sha512.run = "d31d37820883b0fa2a97dc878d11b6866554839acbae8c56fc10fb164fcfc2af5590d0d562512aa313ca950c32aecb4d4b89ea4113326446a75006b34a2f677c"; + sha512.doc = "5972253d34cb39cb0151050b4e9dab45dea50901a84f736ee8a25beb5ad647a112462ed5b3d46c61ff20a3a20852000c64736c88df9ed59defa2da5bf54b5638"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sapthesis = { + revision = 63810; + shortdesc = "Typeset theses for Sapienza-University, Rome"; + stripPrefix = 0; + sha512.run = "14ae91cff0c5487a6751d92f1ac4e252ba53feb74883c3e0f078f5269845fd85c906a4f962c4309f6765fcbadf934877a183659d68a88e1050fe636c0e5d54be"; + sha512.doc = "04c294886ecc33f3725222d9a44953dd2c4be7a5dcc5c9d08d8cc05c2d8dc9c003bfa80a7ec027956b1e680a555b1fa70af64a91c27833a77ad4469a1cbc6111"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.1"; + }; + sasnrdisplay = { + revision = 63255; + shortdesc = "Typeset SAS or R code or output"; + stripPrefix = 0; + sha512.run = "5f6483d066775682cd08b9f68b7f31f5e8bedaf9248b7345dd23a950d5e61e3d2664dc2cffe2a86b35273044f8d8df2694d4d3598d70b974d38e02ae8343a844"; + sha512.doc = "a99bda8628ed2b4cdc0ba24bdb0f514ecac643481d9d866c2992df131354a677ee6fe0244285ee4d9029eb10b219c9fd9dc5f7f93a01414a3db2cff8f58e08e9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.95"; + }; + sauerj = { + revision = 15878; + shortdesc = "A bundle of utilities by Jonathan Sauer"; + stripPrefix = 0; + sha512.run = "a4fe5bad7f3d5c895d6166846100cabb1b59e5f37c06d21e451acbaeed0847ab93d9995e70209ab18cc55bf8c78a6c83cbbdd49a45a4cfe511cdad41baf3ddfb"; + sha512.doc = "3ec0f5c2132a809b4f2f945255f0806508a3dfa3733119368ba59e4dcf5304ac9876ea5f05912faf926db651d1aaf4a3a1c40744fe7d3a077d8bd9dde2676754"; + sha512.source = "05d2adc3b802e3c338dd92818cf7ce4d3bd6964dba8522bf4628bfc2d13939bde47cd0892b4fb629270d5e9104b9577fe6e3ba6eb71ca60a07f5e6441b0f572b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sauter = { + revision = 13293; + shortdesc = "Wide range of design sizes for CM fonts"; + stripPrefix = 0; + sha512.run = "17fc32a3dae358be5215301abe13d9e865ff9f52f58cdc849d5fc80aeb1a79723d0a39282383086282fbddcaeda0fe586cd3043edd582e0addc0b223bc3ee756"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.4"; + }; + sauterfonts = { + revision = 15878; + shortdesc = "Use Sauter's fonts in LaTeX"; + stripPrefix = 0; + sha512.run = "4d7e491a7a6a22fd6ad8f407cbc8c041434466850e2e5efd46897843281cb71e046fc6cb849cb091cbf05191c45c52a6cb3e0d806eccb9133fddda9c8f305969"; + sha512.doc = "16647b89752d1871c798f80be91bacf375ae9a4d5199ef7417edb4ff019d7aae548fbbbbde47f84cd5c7c36ec4988ad1df82735f4aeaeb40180b07a86dceb5a7"; + sha512.source = "d8379fb3c2dfc5dcd9fc5c22101855a27ef5de3ac377f1e6a56bfd397888c5f7f94dd37c24c6625a9dc40f15160721c468b5a5bbe8a35f98f983755889e250d8"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + saveenv = { + revision = 65346; + shortdesc = "Save environment content verbatim"; + stripPrefix = 0; + deps = [ "precattl" ]; + sha512.run = "e0e368dcf3add9d59b22d8e04da1de9110d6f1ad2e31cd2cd44f894ea1d7f0cbd4eb41b500637e896eb179539e19c4a1d0601035e2404726dfc98677f9db0927"; + sha512.doc = "2016c815add27dca5b498f4cca3ce69c9c18f544b9651305d5d9a9a7a10b30fe187c526da37813218388f8305fc3df83257b2e9b6289171febb770c7d59d9274"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.1"; + }; + savefnmark = { + revision = 15878; + shortdesc = "Save name of the footnote mark for reuse"; + stripPrefix = 0; + sha512.run = "2d39c1246bc9c5c28222a6ce96b93bc0c1e93c3155f68f44843b5560b548191ad3b608f24b5c444b834fc441238a0d2174a9a8ec006f01b160f77159decfeeb0"; + sha512.doc = "9ca251e6d17373e5d6f308d2e75896aaa3e44d0f5883be65f7629f922f0eda296c963530e8fc1c80073e0706c2c72f97d062cd731481654c0564cdb695eaa86a"; + sha512.source = "984807d4efb4b24445dec6742e0328274527ef3c7ddb3df57a5d941531d1e634b5d672c9a510b62f7053d69c10668c311457b3a1065e1775f964e9a74ad027a2"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + savesym = { + revision = 31565; + shortdesc = "Redefine symbols where names conflict"; + stripPrefix = 0; + sha512.run = "212ea18ebb424f9b64ca9c75a783dee9ceebac09adcd6ff6c721d90796bf4121aa8710935529451e6f9a4de9c3cb5910b6c07d6fd6b7093c4b9904348f43a1fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + savetrees = { + revision = 40525; + shortdesc = "Optimise the use of each page of a LaTeX document"; + stripPrefix = 0; + sha512.run = "f31ac72f12ecbe2ab05bde14de907707988d6b9ba20414543b9176b71d2a0d5358a34348177857c56b961301678b612ee6f767d1b9cb671b9bab344bb8230e6d"; + sha512.doc = "3e5cfb62d4020d32d9bab01b3df2ea1cb485240aea5eda3541d29cbe38487ed8b242a1eb2b9d15d08bd742390a8d8a25b584e110145dab330580e69e2287f181"; + sha512.source = "2dcc671cae73824a2e4cf10682f0ad7d6236f5e856267663f14864804587e1394fe12de5e3e54e5a64abb798c16014fab07a462584eac3a561f971496c58b5b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + scale = { + revision = 15878; + shortdesc = "Scale document by sqrt(2) or magstep(2)"; + stripPrefix = 0; + sha512.run = "2d090a08c8f7d5d9b332f390b29b16e911f339071579cc09b954b2978df4b410ff3c47afd6b8bea0ce7eabac551b94f8630fdb7aaa4ef39f793748925157a19d"; + sha512.doc = "aa41f6de8baee992b123ed40086dd5d0aff63c187858502c66056a52f3b8bfb12a5b7dd15ae9279a224e9d67d717f3927e97f5879ab09ded9e0960a3eb910a90"; + sha512.source = "387efffefb6774f50165a0c3242005a52418c5c9ac3ff6d1b87f696eef7af8a57a19a4efe6066e7939fcd76ff8ff9ce3ab4941d30d36c6bf30beeea1a95d4eac"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1.2"; + }; + scalebar = { + revision = 15878; + shortdesc = "Create scalebars for maps, diagrams or photos"; + stripPrefix = 0; + sha512.run = "1e367f025943a56b6592238e2961f967beb1d5ff5b68ee83565b3926a392214557237e482ba0b174ddb2e6861e4690e636edef1a5fe0473c465a0deaa1e1bd0a"; + sha512.doc = "cada3793771a28c3ce30439c782d245b6b21cfa426d2268e7e072a8559a81692b6c4e9e26a8bd452fe5882f39e55fd061a1af4e9be362bdcdb1f6ff6bba781e2"; + sha512.source = "f6f3e8d007ab3efd6bf1d45b9e3af1fa846637a8b66226f9ae24d64b3be9938b547bc3879a33f44d465f8f62494d1f55141c713b18161ec4006ed76eaa52169e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + scalerel = { + revision = 42809; + shortdesc = "Constrained scaling and stretching of objects"; + stripPrefix = 0; + sha512.run = "0b0a996bbed0fc185714f84e32c76e5a9277137d3d8dcc6b12b516afa97f3c80b2684c3c22af8717bb3e6acca267a3862c1244df7cb71eca61b10074fe1c3a89"; + sha512.doc = "1533997bed3ce5499a1285a6db03be20f28fe70b1ebbac5d117e692c53068ecbe7f8082cd5f93c753bbfc1eb4fb3b78372c7b14f5e2c636398f37dbc17972d97"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + scanpages = { + revision = 42633; + shortdesc = "Support importing and embellishing scanned documents"; + stripPrefix = 0; + fontMaps = [ "Map scanpages.map" ]; + sha512.run = "e13f7849b2b1cbe9fc60fc2e3d3bb7f2879644c282e8664a5ec46b3143f4ac7fbd21f2976183ad410bf778a181d5063b23832734f0ff43a617c9020b16587fb6"; + sha512.doc = "34eb2549a4d809602cf69eb562fd3c03c8d3fc4063820ce41b52d733228a6a83ace819e5bb82e77cd3be3cb8093e7997377fadeded652d20509eecde458d9b78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.05a"; + }; + schedule = { + revision = 51805; + shortdesc = "Weekly schedules"; + stripPrefix = 0; + sha512.run = "c7d58c5e4ecdef504e1d32934ccf2c71cd36b073af4031ee83b0d0a3b3393a40acc26dd4e057f426561903d0d08297bb2a9849cad2cc5a11b02e15a3983f0e1b"; + sha512.doc = "ca5f9e2b27f0b01531e82e64e99f816aaa52f5f340bc2fdefac367918d50c564cd178709428554a908951c117dbcf3d24753f84d864fcdc546129c3de25d7e77"; + sha512.source = "e910feb417f9d1606b323a995026f3d3275523b4fcc53dd94d44c10b375ba13d322f32191dfec36b9606174240ec77de1b024c1f8ac14b94224d34e2aa0cdabc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.20"; + }; + schemabloc = { + revision = 68445; + shortdesc = "Draw block diagrams, using TikZ"; + stripPrefix = 0; + sha512.run = "7a99b1fee9c4436371f5228e969786518f55aa65dad3cc540be912d6123efbb5a25634d337bcc9a3f626d37f3408b08999378bdc9d32e1e1db2549499b59b1cb"; + sha512.doc = "eca5a57f53615a486b21fbc2a0870c5816decb97a1c6bb004d5a6f6faa89f1cd8c7a8a51135904d2ab53076b6ac239f3192c976b54672d45d1eeaed353d07055"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + schemata = { + revision = 58020; + shortdesc = "Print topical diagrams"; + stripPrefix = 0; + sha512.run = "d3c6418c699bb624287d7de3d64695e721fba3e44eb99df02ef58c02c7478f12ca329153295e076a126748239a483e941af3e8d9ade86e3f15a134424c6f4e5e"; + sha512.doc = "9f71ea989942daea92cce48f3a013fc1eca84ef4a36856e28f280f04efd21a0dd3cc5799f9308fb8fafe803c23106544ea85e2d094bf21f178158e30eab35b06"; + sha512.source = "55c041e627470133a7374e0a1f00079f5de58949a3c0e8d3c3c78857e7bac3d5afd33304d57f3c70dc98d682e4eec3f00e3624aa22a1310b56269b724df6c95b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + scheme-basic = { + revision = 54191; + shortdesc = "basic scheme (plain and latex)"; + stripPrefix = 0; + deps = [ + "collection-basic" + "collection-latex" + ]; + sha512.run = "027a1cd0dd4fc5da2427864bb49fc885a00bec6e8a74da24ce9cd781c69bf4288ddfc3c790307ed48052a8fc00c1989d3939b253da6638370adbb1c43348749b"; + }; + scheme-bookpub = { + revision = 63547; + shortdesc = "book publishing scheme (core LaTeX and add-ons)"; + stripPrefix = 0; + deps = [ + "barcodes" + "biber" + "biblatex" + "bookcover" + "caption" + "collection-basic" + "collection-latex" + "enumitem" + "fontspec" + "latexmk" + "lipsum" + "listings" + "markdown" + "memoir" + "microtype" + "minted" + "novel" + "octavo" + "pdfpages" + "pgf" + "qrcode" + "shapes" + "titlesec" + "tocloft" + "tufte-latex" + "willowtreebook" + ]; + sha512.run = "0ea47f8907821e273a581c52494b6a4e9a511a71e11ebfb05756eaded6e5132fc548312cb6365cc4c1906b4e8ffb14ee5ed496484fe5e2a2611e154091d23cf6"; + }; + scheme-context = { + revision = 59636; + shortdesc = "ConTeXt scheme"; + stripPrefix = 0; + deps = [ + "antt" + "asana-math" + "ccicons" + "collection-context" + "collection-metapost" + "dejavu" + "eulervm" + "gentium-tug" + "iwona" + "kurier" + "ly1" + "manfnt-font" + "marvosym" + "mflogo-font" + "poltawski" + "pxfonts" + "tex-gyre" + "tex-gyre-math" + "txfonts" + "wasy" + "xits" + ]; + sha512.run = "0b041f3c27ef88e7baec105b7cb24fa65c4b1f092f155482d584d9041ced4f329251f0b0d32f7019c15fff3c57b4d17f057cf39781f8be16a4e8c0ce4838163e"; + }; + scheme-full = { + revision = 54074; + shortdesc = "full scheme (everything)"; + stripPrefix = 0; + deps = [ + "collection-basic" + "collection-bibtexextra" + "collection-binextra" + "collection-context" + "collection-fontsextra" + "collection-fontsrecommended" + "collection-fontutils" + "collection-formatsextra" + "collection-games" + "collection-humanities" + "collection-langarabic" + "collection-langchinese" + "collection-langcjk" + "collection-langcyrillic" + "collection-langczechslovak" + "collection-langenglish" + "collection-langeuropean" + "collection-langfrench" + "collection-langgerman" + "collection-langgreek" + "collection-langitalian" + "collection-langjapanese" + "collection-langkorean" + "collection-langother" + "collection-langpolish" + "collection-langportuguese" + "collection-langspanish" + "collection-latex" + "collection-latexextra" + "collection-latexrecommended" + "collection-luatex" + "collection-mathscience" + "collection-metapost" + "collection-music" + "collection-pictures" + "collection-plaingeneric" + "collection-pstricks" + "collection-publishers" + "collection-texworks" + "collection-xetex" + ]; + sha512.run = "bda507842fde5239d7f45169ff78690bd96066d1834cdcc6a0dcbd3e3439308c694ce4be6a91d1f155ebe5e29d46173fe13c83bcd4356969da95fb7cca1b4e38"; + }; + scheme-gust = { + revision = 59755; + shortdesc = "GUST TeX Live scheme"; + stripPrefix = 0; + deps = [ + "amslatex-primer" + "amstex" + "antt" + "bibtex8" + "collection-basic" + "collection-context" + "collection-fontsrecommended" + "collection-fontutils" + "collection-langpolish" + "collection-latex" + "collection-latexrecommended" + "collection-metapost" + "collection-plaingeneric" + "collection-texworks" + "collection-xetex" + "comment" + "comprehensive" + "concrete" + "cyklop" + "dvidvi" + "dviljk" + "fontinstallationguide" + "gustprog" + "impatient" + "iwona" + "metafont-beginners" + "metapost-examples" + "poltawski" + "seetexk" + "seminar" + "tds" + "tex4ht" + "texdoc" + ]; + sha512.run = "2b3e2e3d31c8fca7297729e910ada06a0d0282b618c92487b7a0da686938dc1f6f3b0881c7d1f8f3d002806ad8860c25802637c77919e21ca54ae8a23ef08ae7"; + }; + scheme-infraonly = { + revision = 54191; + shortdesc = "infrastructure-only scheme (no TeX at all)"; + stripPrefix = 0; + deps = [ + "hyphen-base" + "kpathsea" + "texlive-scripts" + "texlive.infra" + ]; + sha512.run = "f3e449bf0b34deb9ae776685f386245c4ca9644f2175ae51e9c62faa00e3cfac30fa2aa07fbd83b15b21d487ca368c09a18742d2434047783350698ced3b20b9"; + }; + scheme-medium = { + revision = 54074; + shortdesc = "medium scheme (small + more packages and languages)"; + stripPrefix = 0; + deps = [ + "collection-basic" + "collection-binextra" + "collection-context" + "collection-fontsrecommended" + "collection-fontutils" + "collection-langczechslovak" + "collection-langenglish" + "collection-langeuropean" + "collection-langfrench" + "collection-langgerman" + "collection-langitalian" + "collection-langpolish" + "collection-langportuguese" + "collection-langspanish" + "collection-latex" + "collection-latexrecommended" + "collection-luatex" + "collection-mathscience" + "collection-metapost" + "collection-plaingeneric" + "collection-texworks" + "collection-xetex" + ]; + sha512.run = "fdfbbd8fc370bfb0ea35ed9f3137b62eddd3e54777963668b3dfe7af6328a92f37c74e190e7f506ec27a3efbe44458941360599a4061a2765d0072af56808d60"; + }; + scheme-minimal = { + revision = 54191; + shortdesc = "minimal scheme (plain only)"; + stripPrefix = 0; + deps = [ "collection-basic" ]; + sha512.run = "ac177b74d9d5b9fa599831275a4084a0eeb7b764a6ed837d8f14f8391f0e6c0757f7b2d4a8e71868e0c8ea4d497f29d78c4c73fb9e6311dbecf29626516bbf82"; + }; + scheme-small = { + revision = 54191; + shortdesc = "small scheme (basic + xetex, metapost, a few languages)"; + stripPrefix = 0; + deps = [ + "babel-basque" + "babel-czech" + "babel-danish" + "babel-dutch" + "babel-english" + "babel-finnish" + "babel-french" + "babel-german" + "babel-hungarian" + "babel-italian" + "babel-norsk" + "babel-polish" + "babel-portuges" + "babel-spanish" + "babel-swedish" + "collection-basic" + "collection-latex" + "collection-latexrecommended" + "collection-metapost" + "collection-xetex" + "ec" + "eurosym" + "hyphen-basque" + "hyphen-czech" + "hyphen-danish" + "hyphen-dutch" + "hyphen-english" + "hyphen-finnish" + "hyphen-french" + "hyphen-german" + "hyphen-hungarian" + "hyphen-italian" + "hyphen-norwegian" + "hyphen-polish" + "hyphen-portuguese" + "hyphen-spanish" + "hyphen-swedish" + "lm" + "lualibs" + "luaotfload" + "luatexbase" + "revtex" + "synctex" + "times" + "tipa" + "ulem" + "upquote" + "zapfding" + ]; + sha512.run = "6267151dd73cb8b751ad47b79f9c698b465ad5ae5494d462cf5b3b4e7446a3c014a715381bc6a79eaacfd1ba6efb37c6c1bafbd5e1f82e8db751bbaa9a943013"; + }; + scheme-tetex = { + revision = 59715; + shortdesc = "teTeX scheme (more than medium, but nowhere near full)"; + stripPrefix = 0; + deps = [ + "acronym" + "amslatex-primer" + "bbm" + "bbm-macros" + "bbold" + "bibtex8" + "cmbright" + "collection-basic" + "collection-context" + "collection-fontsrecommended" + "collection-fontutils" + "collection-formatsextra" + "collection-langcjk" + "collection-langcyrillic" + "collection-langczechslovak" + "collection-langenglish" + "collection-langeuropean" + "collection-langfrench" + "collection-langgerman" + "collection-langgreek" + "collection-langitalian" + "collection-langother" + "collection-langpolish" + "collection-langportuguese" + "collection-langspanish" + "collection-latex" + "collection-latexrecommended" + "collection-mathscience" + "collection-metapost" + "collection-pictures" + "collection-plaingeneric" + "collection-pstricks" + "ctie" + "cweb" + "detex" + "dtl" + "dvi2tty" + "dvicopy" + "dvidvi" + "dviljk" + "eplain" + "eulervm" + "gentle" + "lshort-english" + "mltex" + "multirow" + "nomencl" + "patgen" + "pst-pdf" + "rsfs" + "seetexk" + "siunits" + "subfigure" + "supertabular" + "tamethebeast" + "tds" + "tex-refs" + "tie" + "web" + "xpdfopen" + ]; + sha512.run = "fe8b53391733392a72be2e2c80892ec68fbdb749c70636c307825c8bfd6284945c9961610fd19f8b5d6b03ec50f0a1543c7d159f5f2a19534d71b221addfb708"; + }; + schola-otf = { + revision = 64734; + shortdesc = "Using the OpenType fonts TeX Gyre schola"; + stripPrefix = 0; + sha512.run = "3a59203e6586f2cdfed6d5a948e5c150da934a809c12ef7d55f04ba8a8b95b0f1365fe7e0d802d8097f48dbad753ae481c3e27d580eb050f75956d4d04ad10d2"; + sha512.doc = "14f9cc49ae04ec2f9d5ccb48d5267ef3843bf66a288e0dbc4e7cfd00b52331216e7ab179b506acd799b4031ef11feb7c333faebdafe9a3a94bf31da442bb4129"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + scholax = { + revision = 61836; + shortdesc = "Extension of TeXGyreSchola (New Century Schoolbook) with math support"; + stripPrefix = 0; + fontMaps = [ "Map ScholaX.map" ]; + sha512.run = "f7062ca975c2801c220c6c34844d87e410e501442313974c77281aaa0927b27fdfbd2328676405cd1820c809e0354edd332e9fba0d04fa1e9a8d28f91543905c"; + sha512.doc = "7c64a884165087b72f052e7d3fe8c57857d62b92532bdfc6bcd46e66b12f8b12112bd71ab88d4a9603237b612d1eab5ad10e7de0c14e69ccabeefafcfd380302"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.033"; + }; + schooldocs = { + revision = 69659; + shortdesc = "Various layout styles for school documents"; + stripPrefix = 0; + sha512.run = "eb9f95e2026935a9fde3c6a72600a8eb6683ae68ffcb48798c05f3cdcc4f1064fcfd72738dd734a1561de563e044913aa82294b88984cb84ae49947387592f4b"; + sha512.doc = "c67955fe6568f0a661a2b6ea4b186d133f393420ce20c2d38dc461ee0d551ec91eccd0da94492effe4faac8c5934dd6e59853af07dae9d415073874fcb8e8fdd"; + sha512.source = "1569b42e84b56ec417435d157a1c1999a9cf9686f72dcfbaa4d365a3efab15802390e594448d5f3816bb6a03b459b63dd85942fd16d0eafb597dd4c232f67d02"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + schule = { + revision = 68483; + shortdesc = "Support for teachers at German schools"; + stripPrefix = 0; + sha512.run = "6fd063de94d68e80b5e3d2e9699330453f82f43ccd059770e4d73097c1172ec0733012317aeba7bc5e55ed322936c20f97c6f53e9d7aed21a29e07151ec54d7d"; + sha512.doc = "6763529c688e540d937af7548a7e0b9003e5df74d643c3870a016bba105782435146d5771d4d8b69cfec90ece084c245a1825c5f3ae4a5429ad0626b07a9e4cc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.0"; + }; + schulmathematik = { + revision = 69244; + shortdesc = "Commands and document classes for German-speaking teachers of mathematics and physics"; + stripPrefix = 0; + sha512.run = "3258429a336a133334b5f170178b72e39fb3e63ca053a8b541136cc89e88caa991afa86439acffdd99f25a12b7b430d9ef45cdfa7c4ec6545fd1af2efba857c5"; + sha512.doc = "82ed02e73e3db3e2055725a4d5e11dc8f370ac4787e30987320ec52deefb8de75eecdfd2adda5e76d77cfd8bb1e749b4d0e6d6a75ae2f6ffb3201f193cdd5f86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + schulschriften = { + revision = 59388; + shortdesc = "German \"school scripts\" from Suetterlin to the present day"; + stripPrefix = 0; + sha512.run = "d24778c0ae93d06b42bc8d7eb8d84ab6e0f42b33352f2dbd79586a4ed9bb21fe99a61dc0eab375e56a20624fa5ad63ade3446d685dcf063d46c0f60264c431f3"; + sha512.doc = "c9b6b43bff7a90f158b0a10c431cc52e65c4c2d49c773aafe7e54d1283d97c3badfca5315ff982cf0a524b514594faff5666063164483987973ce60d2edcadb8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5"; + }; + schwalbe-chess = { + revision = 63708; + shortdesc = "Typeset the German chess magazine \"Die Schwalbe\""; + stripPrefix = 0; + sha512.run = "ad2f033f018767556e8e4c2b76f1d2c80e14780cc4b483e73bd165c0cfab11453514065597fd7dbce05e8acfd4c307219156abcbb3d59ccead70df61a128961a"; + sha512.doc = "2df38380cc26d4321d8b18facdc6c427d1986143ae1ef8227a2d536af2fda5f6bfb73ccc395156a7f018c9c9af20b3b89bc994d9021bb9ff3fe5d771f3a6bc59"; + sha512.source = "a75dd975edceca279cf120a08d0666e9227af96732ff3d71dd82068b0c185842902244baebb074ad1ab611fed8064772cc65dc2353a9a79633f8bbe21955dc95"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.12"; + }; + scientific-thesis-cover = { + revision = 47923; + shortdesc = "Provides cover page and affirmation at the end of a thesis"; + stripPrefix = 0; + sha512.run = "2427c534ad767f1e8f319aa24744346d4a0a39f73d93c779dc89d3cd0abfd683d7a33c81026c4a5823ad686084f026193c917ff173d639dfac2c99350a819c59"; + sha512.doc = "31bc280c96b87b079a7dfb6a0c2ff1a03f80c5a047bc2c11b9fb192c50b8e51a65cb3fd5c043c37124afe2383a611f38accd91d6202416451b3eb34bfe855077"; + sha512.source = "ac14306fa7591f6fa684dd8fb6d7c7335b6ce5c8e3099d80286f05a9f378b4d430b1210fec9c071aa8a4e430ff6cae9ea712ea504cc575e89b02751c02e60bd6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.0.2"; + }; + scikgtex = { + revision = 66764; + shortdesc = "Mark research contributions in scientific documents and embed them in PDF metadata"; + stripPrefix = 0; + sha512.run = "32433b1c031747037fa329d8b8048563cb53af867bebde85bd5fb95abbdfbd67434595d5fbe682f1247c23535d75929f341668fba9a02221b4864728a5f3cee3"; + sha512.doc = "217da3550e3752fe239831790294d158dd68d16545e5c9ef3e047bedcbe82acee7e34d4216ef843363979e269e03180f20ec9e83b033b44f28acabb67ee26f74"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.2.0"; + }; + sciposter = { + revision = 15878; + shortdesc = "Make posters of ISO A3 size and larger"; + stripPrefix = 0; + sha512.run = "1a4292c9fb6dd8a8780968c69ee70a88dd5d1c5d81df9a32e22e08c9115528d8af634a1681fb1672664d57f80ab333a1b811a9c0e17597afdc358988e14fae93"; + sha512.doc = "6ea102c2318e30080224684693806e16008f946a01fe9e1d232a871f231100d1491324a3ab0260746a61a10125afff6b20072c1a49c8da279a4c0b477361e46b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.18"; + }; + sclang-prettifier = { + revision = 35087; + shortdesc = "Prettyprinting SuperCollider source code"; + stripPrefix = 0; + sha512.run = "77f8909b870fbaa4f1a0414f75f08ac602051d26c0c935be8661be8820a0b77734b614b9f5c8333b1f1fd12f57a6ee3c4c403f151bc60300e454673a2a4235c2"; + sha512.doc = "7680fa17762f17d2d7f3c9d3062bd194394bbbfbee36e4704e8b95b2be568cab51fd1dac9d90c6034919b3ec61f75f0f7689478c16f53ac7b4ee820768eaffa8"; + sha512.source = "8a9188cccf4eece9844156747bdf8414bd42227cdb64ae79ce2e95c729ebed16c9af14abb943cb1caaaebb693bde4d39e39d1302afc0595444d16b3bafa98131"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + scontents = { + revision = 62902; + shortdesc = "Stores LaTeX contents in memory or files"; + stripPrefix = 0; + sha512.run = "692fbbe0cfe9153bb4782eabe8f1713e646d5a93d4b1b2fe0f7662bd995bfae25b8200acb9eccd0057b53bff7c33c0f9ff621cd37596e9aa4cd51f84c2a30dc7"; + sha512.doc = "f978650de27e8306d70612331c2c98b5e0c047bbf91908c9968c6d613311c034dd00816afdc30b63d7673a8627651467af64a99fb7fd3978947113f8fb6eb563"; + sha512.source = "d23c98c16b7f60a1a77c0dba32eb7886f5834c1d05455a172f38f984c7bb61ffc84bae147fa7d143c196179fd719887b160718e04ff3474c5ef176af4d99165a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + scrabble = { + revision = 69599; + shortdesc = "Commands for Scrabble boards"; + stripPrefix = 0; + sha512.run = "89ff7d5440c04e7910d3c001be2d4df7d08a53a47d05b161545fb8446977a8f2695cc722854ef040b59b334804297005baee9f2d3572b767d680925191abf101"; + sha512.doc = "e3d922722c51b71f9ac74e914cf189ffa8e8f53fea4eff7addd2ce5c7d99ac3ab360b50a3212a9ebf353114f1dcc82cedd5a9315b48f4828b1340a9867ef69fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.6"; + }; + scrambledenvs = { + revision = 60615; + shortdesc = "Create and print scrambled environments"; + stripPrefix = 0; + sha512.run = "075792b5d0fc5201d672e622a958c600ff479caba2920a32ed3d3f469c525d799d8bdef20b3a08391a22ed3eead6ab3f30cebbed36c469e423e2ea844c170651"; + sha512.doc = "339d1cd398e62d65c1c92927a07dd4bed740916f2a98dd8ba2d913976d69a70b0340b9cab35250ac3ee862f4572438f87562cb6f7b2031cbe0252d8cc781009a"; + sha512.source = "1a605abf62adf986a933b6d1723699e9920df07fe383527b5d8491aee5431b5f91354052a0810d8a0f8cb2b8b853a3945d38041fc6e9e573c159e7baeaf356dd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + scratch = { + revision = 66655; + shortdesc = "Draw programs like \"scratch\""; + stripPrefix = 0; + sha512.run = "bee431e5f45ef9f5dca39b7ed439dbf141141e4b0f40642c0fdec1650dae9f0e50353e21b58307e86f34e501e06083a6858c140c870752c45138ac6788080023"; + sha512.doc = "a93b672fe46f97c1311d79de5a9304111bb75983b6151e63276a0b84a660e7b917c36b1a99a28a0b6a268b3498dab9897980aa4ca161dd4b9d59a7b2baaa3be5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.41"; + }; + scratch3 = { + revision = 61921; + shortdesc = "Draw programs like \"scratch\""; + stripPrefix = 0; + sha512.run = "f33f18d725253b11097443116e6c0cf4930b7718a5f8678b0d8fd97d8e4854efb31bd016a40a7dec2701a99bf2b5ac6136a856798ead314a8c21cf38013bb513"; + sha512.doc = "97a8e684ff98c9aca2ab57cf93be2cf8bb4c0464fa772828c033622860e46d8c61bf563e346aeff1123665c878bf3fc68c58727ec2c1579e815c7a8ece078ff5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.19"; + }; + scratchx = { + revision = 44906; + shortdesc = "Include Scratch programs in LaTeX documents"; + stripPrefix = 0; + sha512.run = "793c4e96cedd97ca37b7906b6a9e78bb06f39572ddfb57d8e4b54dd9b2846b31bbdd835fe1a93517d1430448571a30d26fa8ad7cad0aa3fab6ca526bacb605b6"; + sha512.doc = "c87994e90a748fa8afba91b443850a2d9f555ff4ac6b264107b42981e078b6966e8cbffd75f071f3f69a78c9b9aa10db65c3e855a4920f3b732446df01da7d6c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + screenplay = { + revision = 27223; + shortdesc = "A class file to typeset screenplays"; + stripPrefix = 0; + sha512.run = "d14dd76c4b1abd9ff7adbef7e4c3bc1f732156dc2d989787bed7382e0288c44dcde18ce05143e6af03ebe83c753bd2b6682cb4f56c73934ca4209a114eb9e3ef"; + sha512.doc = "ed723ffc17a98c8d4a8c960f56a3550ea74db84fdd06d26b08b5c46b12310fdb9b7b7719ffa25e8ddd21f17642f5f64f1c96327066a131c468cee8ff185cb199"; + sha512.source = "f6ada6c467c3a9d11096928dc31c7f71131f0b40146a697bda2a3e194c86070a776323c76c8b6da0edd247f8fcd1a65c286801a7353bb53bc6aa364bb7a75944"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.6"; + }; + screenplay-pkg = { + revision = 44965; + shortdesc = "Package version of the screenplay document class"; + stripPrefix = 0; + sha512.run = "974795ca0b4a286077e38f4b3b120cf9fe243d450b87b8397adec2c5425b865cdfbe70b86b815d513edb6ae7051d9ad3003fcd6a15b5b02b624dcd4ee0534164"; + sha512.doc = "9aa4407d1b317442dd76f762af5b673460bbbcec89e47835521688085183e00ba9dbb70dc9e86a95235bd9a32da701c846ceb2985dc70894ca8abe334428a532"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + scripture = { + revision = 69232; + shortdesc = "A LaTeX style for typesetting Bible quotations"; + stripPrefix = 0; + sha512.run = "3b3e30f0c5bbc99a49c9aec873f2ad93535d8c1f3fa79f91619d30fdca347dcf1bad30485463ce875e4511ed857e358824197059732c2538bffebd97b017554d"; + sha512.doc = "1de0de0b83915b59b54b234daf51ea77aef3bc58a80251c7b055708b7eb8d457806d2b897cd3771f6a303e8137b5f5543dc06c97be94142edf44558cc92a1277"; + sha512.source = "555f72881eb6d76d9362598cc0e30f67cfe2dfc8747f68e5214258fb127947965e45f0bcd1eac5e173c83e7a4e25e3bb0ef6615fe31cac5f6e3f23814e7266c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + scrjrnl = { + revision = 27810; + shortdesc = "Typeset diaries or journals"; + stripPrefix = 0; + sha512.run = "39198edddb3a3ce24bdc0d9cc6f5d7ff204b142c200a9ce36060bb016f1e1e1750b83210a91f1eec90a205c5a4923704bdc0e44876c462eb768355407597a05c"; + sha512.doc = "bf6dc1704ce60f9323b68d39502fe95d4eaf8409bf65c278e64deb1ff80aaa84f16e294ab08629466b6f8c0ca02ec03142abdf3fe0a43f862352d0ec55dd410a"; + sha512.source = "05b0a8e50efd2f21699c3bd476cd308e02267a6dc2a9cd480e0f7b2e6d9633c830927c54eaf75e4d329a8f6a8d3993782ecfe2add7b450016f7e7bc92aea1b2e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + scrlayer-fancyhdr = { + revision = 63844; + shortdesc = "Combining package fancyhdr with KOMA-Script's scrlayer"; + stripPrefix = 0; + sha512.run = "4cd49bec1f3bec3bef5c54964b06fa78cb21cfe431a05741e69cfac59577a2d24cc5b32b6abd739a96a93441e8cab0db80640e5015dc70729ff32c27d26805f2"; + sha512.doc = "d4711f5178d0e654f80d2771519d6ddeca8b883f9bf3d0ba6e9524ad4541a9fbf9179fb69c356d1ab0050b051c28cb074680a6322fef41ee765ebef8fe476651"; + sha512.source = "4d0ae176e9d191b3773a39d7d4982e6957ae95fcc8b06f4233764e57b8954aab4ff0186415f1d8ed988c1473a8850fb99515c0966dd2ce8a7c8d99e0ddff5d65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.2"; + }; + scrlttr2copy = { + revision = 56733; + shortdesc = "A letter class option file for the automatic creation of copies"; + stripPrefix = 0; + sha512.run = "5b2f1c1c86a8b3df5bb4d5edfc002ff80449d2cdcf6ec7aea3732d0ba8e6bcaa105675f9f37dd5280d3b9061400d8edc0c67460ac9f1541159484aa51b851fc2"; + sha512.doc = "04728375909e27e0814f9c2dee14697711ceba7b132ee6de63f257e2a6c3eff11a8e808d7929bbd0c9346b459afec57dd62d523314381c0c19a5e2b8b3650f20"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3a"; + }; + scrwfile = { + revision = 66872; + shortdesc = "Use LaTeX .aux file in place of \newrite files"; + stripPrefix = 0; + sha512.run = "b4d306af1e0d3dcfa59ef14250f14125bfc4a0b9b0f3e6ab32b809f2e729cfa45e27549c8cb9c2dde2819d328c1a032eb6aae6f123f1c71efeba4c9d16611a34"; + sha512.doc = "6aab0a6af0c3f989788673c44bb8a885ddb259f0be3f69f0a32b0bdebdc8e607b32c8f8530cb99d59b1c7739b2c33446f8b7c832384d07158c90bd347704a1a3"; + sha512.source = "abd536d76460165077ca7dbdcd1801b018cae2d16c783e72502bcaf5ecb34562f273ca37cedb044a50e7d53fab84412bf9a5e804be064951ebf753aaa764526b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.99"; + }; + scsnowman = { + revision = 66115; + shortdesc = "Snowman variants using TikZ"; + stripPrefix = 0; + sha512.run = "2335082e981929d24b2dd327db68f101a93b0c2b9176c116d6ca9430ea45bd85c9669921980090554406a658821f3c68305250894fd710058e15ac6aa8ede1c5"; + sha512.doc = "e883b300888ebdf62af976a94ff29a3f621a92420c26553ca16497ffb57db0d1cec7f8a38a1996e080b660ee3ae0b7245688a7732c141b0a680b864f527069f6"; + hasRunfiles = true; + license = [ "bsd2" ]; + version = "1.3c"; + }; + sdaps = { + revision = 65345; + shortdesc = "LaTeX support files for SDAPS"; + stripPrefix = 0; + deps = [ + "environ" + "lastpage" + "pgf" + "qrcode" + "sectsty" + "translator" + ]; + sha512.run = "57559707a9a5a2a924a767b25ed2f86759826a31788fb2662aa2e3ad2889b2266009ec9754c48ce923561c7587c78b23ab56731322a619b4a225775b7beb91b2"; + sha512.doc = "fe1f636c2c21159e5c17aaa75ca0bc89fb1b6ab8dda8d475045efcb3eaf489a876fe9caa4cd077e27b51f37292c5141347233ed6103ebe4f20573ff0899e445b"; + sha512.source = "3f5d1073699a71e9e89a3c71704b8b2800925041145a60454cae0ce2fe7f468e5200c7273afb70c64306a347f4037bc0698b3af223f82d755658d54f2d8c08fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.10"; + }; + sdrt = { + revision = 15878; + shortdesc = "Macros for Segmented Discourse Representation Theory"; + stripPrefix = 0; + sha512.run = "6faa9948e5bb4369fefad7d2b1a5f2bf39baf8b98e8ad3b8f61ade2001b431894ddfbd61e2f1ec73ed767b102f79f8357d965a5c3805c082d8d88bda29e10c6b"; + sha512.doc = "570795dd0c4fe0450e628f61e43d05f3e969488890eab2ee1364712e812d839c7b3185c7ddbd27c44c486e234afe36aceb4824e828cb0c9253e8e5479b0b6c15"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + sduthesis = { + revision = 41401; + shortdesc = "Thesis Template of Shandong University"; + stripPrefix = 0; + sha512.run = "10f1c0a749b9b30dda0e1c7dce4ef2fdd29220b4d77d03b8e71d8c3a460a73c98f8d16e27e6bbab07a66bf7a23cc9d3bf2b12db523232df1142a8563e0068ed8"; + sha512.doc = "afa02606e7df5655ef46b59e92dc54bec9e8f05deb1d9ecd8a0546ee068f2595620cc8dd39d04ea8db53ac7f2e9983ff01ac2646b6946fd3619db64a0bdad332"; + sha512.source = "2c4dddfd7a6fa27ebb4e48e61f8d2887e116eab174e13d9b41efc9b7a3c2f5d5770f000b4acc4275fa82d54ad5ef2129bf614478d11b24a359a38a03d38caa76"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.1"; + }; + se2thesis = { + revision = 70117; + shortdesc = "A Thesis Class for the Chair of Software Engineering II at the University of Passau, Germany"; + stripPrefix = 0; + sha512.run = "4dd20b0d80acfe324039946be7383763bc704c5e468b79edbb079993ae89bd98fd10113c97075e2b2afcccf6c75438ff62bd32f509e0040a64de69fe4fa77784"; + sha512.doc = "42a8c89d3375e35454975b087a8670cb2cc95e29e130bdfd41afbe902b0dbb66e3219dd8873fd88970a6d4cf155d077e0b4a50755cf278cbadf71718b05e6f0c"; + sha512.source = "6529a9dbf2bf038f418964a9e8d6cd7423abc2ab4faf569b983469644098bf5cc80892b4db1d7a4c90771a9495d7b64de08944d2e502c2b6e37b5e0c503eff79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3.1"; + }; + secdot = { + revision = 20208; + shortdesc = "Section numbers with trailing dots"; + stripPrefix = 0; + sha512.run = "7fb101dcd377cb5e3d1dca352d266af419c6fd83e4f2d1701a3d598e69e8e7f70afc9791a76337f4833da612cf07989ef244af1b24eb62ee59dd5f76225aa037"; + sha512.doc = "7ca1b4102c6f92bfc6dd0571c489852dc5c1df4a58530aea490098192ee256a4df7e0bbee20adff78c2b35dfe39b8cd3f821c5e45dc6d78ab4865b6f08ad8488"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + secnum = { + revision = 61813; + shortdesc = "A macro to format section numbering intuitively"; + stripPrefix = 0; + sha512.run = "543d290e5ae38ac65cd22217aec417f4c1098d629ce9acfe03340b529a7bb89ca012e2edf5321fd90331d79bd87cb5e6f15eef3e599857c2aaaad22bdfd1be78"; + sha512.doc = "da4ec2a79e7a04bbf4296f1fd0929971bd577cf4f55d0852923a0bbb73e78e28eba392d203f1abaad1fcbcdffa9e2206fb7d78003b10a2ed428c87562b01de02"; + sha512.source = "ca61cea878ed892f46b4defcd0a05176578d01b01b5f3924dfe6278278fb77ed89df3d41bd788a06bd7af389904421439ca06afac2440ba557948aa4e80a5817"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + section = { + revision = 20180; + shortdesc = "Modifying section commands in LaTeX"; + stripPrefix = 0; + sha512.run = "8b3eaecd49f8b7046bc35df079541121d76757bc2a1b6a6ffa24357a20e9ec4bf5a7b65fae1673401ebf363e46ecffe3c64a2de9aac104594b2b111cd10426f2"; + sha512.doc = "91defb5391b9e607cfaf74ac3abe53127ddec379d7a7c052f5c8f776bcef1728010a94ef7b590ddac8df140ee11fff4fd843bdbe1a13efd322a9a939ea2df39b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sectionbox = { + revision = 37749; + shortdesc = "Create fancy boxed ((sub)sub)sections"; + stripPrefix = 0; + sha512.run = "d1a4da6a59c0411baaa785c58350c1d5be9c1081e0344d8a61fc009f49a1b751a09f358ba1baa3b645de4eff7d69e3781d8b44d90738105c0f56723da36efdb3"; + sha512.doc = "80ae58336eabd8169781c3c30b42b2583f78ffa4093a7d3f9d9e9c6e31a3fb8f457fd42d56f2ff75b2ff3c38b537642dd6f254e54b3112538657a37b3b4e0410"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + sectionbreak = { + revision = 50339; + shortdesc = "LaTeX support for section breaks"; + stripPrefix = 0; + sha512.run = "4b2c26642ba346acce5aff9678bf94f76d85005464f80eaae862a522bcbfa34c1671af79671982a91208ef104a21a532d851dcc785b5c40de4fe462d12488832"; + sha512.doc = "a98eede394708bf612f593e00c58b5500a35b5173381c1f149d0be29b49fe95f5162602177b7d4f23c5b5312d7cdf47ea6ced8bc285853d2b7d77926a6ca66b0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1d"; + }; + sectsty = { + revision = 15878; + shortdesc = "Control sectional headers"; + stripPrefix = 0; + sha512.run = "7e164b14f29a385f8a97e09ad124c347a154e316ac2eb41e0bf9f161d44f2782995fe271b5472ef90dfa4ffdd5495de81090b44f5777243ea76c9f75fcbde2b4"; + sha512.doc = "69d7fc032c06d015d7a6e6d2273c5240b146062565882fca0ddf5b7b795b788207bc9b478366a0a40e4acf223b07482f5cf41a65dd9b37047bcbf12566f6a826"; + sha512.source = "fc79d4c7c437d9c5ff7d8dc62439242cb772f250527ca099cd1180e58742a9ff42e7c63776c24fa5563c95b5d2bccd97df0e1c086869bbcf5ff2ed8ff5297bf4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.2"; + }; + seealso = { + revision = 43595; + shortdesc = "Improve the performance of \see macros with makeindex"; + stripPrefix = 0; + sha512.run = "4d52687aa57245d3be55bf486b100d61fe2e2d979447c2f123f566c3aeb13657e531ace55fe5d00eab57cebe89cfd3729a71dc7177831b5192b8c0fde452d7df"; + sha512.doc = "6baba95b6b08ef95f2966d227161ea39a4084b46371967057266ddae155b115fbe4fcf148e1afc4629e33f54d0329ebb6169f1be4fdcb801d869b212d056cc61"; + sha512.source = "981ed17cba32b2bdc4848c099038193dba2b39d04210cbb2851400044654234c75c160f9c775af2fad6b76b80c85c782fe6ea75a61728ab67193dcf414b0b4d8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + seetexk = { + revision = 57972; + shortdesc = "Utilities for manipulating DVI files"; + sha512.run = "1f217550f7455a82dd1771556045e10a39138eebddc90f4d38a274d56d9072501d94476c6045012f3c5cda43aea71924268fd222895079b225d893df3b78fa97"; + sha512.doc = "1b36ac131e25541123a7d18e9a5e3cb1fccab04ffca1b0d1e5a036a26de99fb05e6745d43cac6dc76a295eac5503f90eafdb2b40f96c88836123b5b599a47e2e"; + hasManpages = true; + license = [ "free" ]; + }; + seetexk.binfiles = [ + "dvibook" + "dviconcat" + "dviselect" + "dvitodvi" ]; - sha512.run = "f6a4396c473b6b0dd067c88911457a21ed393cd1d10edc90db0122fefedca2a6809ff50c34932d28bc1d6774ee176a165002d24062f8b6b949e85cb1468747ee"; - sha512.doc = "dc5f2b41cfe273a14278abc75490adceff6c50698de384130310a70370a3e341280d874f398027e8b2af2fd266beb2f470d414218862097ad718e5daa157928d"; - sha512.source = "bf8835b8e7dbd8f1ba5dfd28ee572635360f6f99818b40bb0daef4bd632ae68e1945f96dca6f0e3238fe42113c025c5e41dacd4e756476472fdbb4bdeaea3d3c"; - hasRunfiles = true; - license = [ "free" ]; - version = "3.2.2"; -}; -vocaltract = { - revision = 25629; - shortdesc = "Visualise the vocal tract using LaTeX and PSTricks"; - stripPrefix = 0; - sha512.run = "7daa3923a6b9d84a1fae2c9bd63404c2fb4dfe3866f897895deb9ab85f33649427b38ce5e34552bbbbd8704da1fac55822a747747a0c522728e605638831df8c"; - sha512.doc = "36aa01a5be9da9a23e3a4de63fb14a39beda4a42cd2615f75f942abff677e71f2a4f640773d27556ef246a99004c3a1aa68caac9435957152cfda96707d79787"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1"; -}; -volumes = { - revision = 15878; - shortdesc = "Typeset only parts of a document, with complete indexes etc"; - stripPrefix = 0; - sha512.run = "e54add2c60c5446329fe6f944c99132e0f99e89dd8fc9ff459e0ee106a5241e4df4d864b43269fc14a08ddda92f4e41607eaa20ba50d4a566be7468d0dd66b2c"; - sha512.doc = "4471a360d04cc1ed9c90ecb53bfc422fdae30571a25fc4811813f30ed5308f4d20309a1fdba808d1eb20e84b97318708f57d08722344afd755aa06588acbd024"; - sha512.source = "0f47cc01b4631430cc4b73c7348bcb9d500d0c5c9960a15e9fb29e1c805ff0be4f0108c6bf795156ab7f939fb355f800da916f913a4a441e65bdcefdb05c0499"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -voss-mathcol = { - revision = 32954; - shortdesc = "Typesetting mathematics in colour, in (La)TeX"; - stripPrefix = 0; - sha512.run = "cec0ea20b409192c618278001045352ca6c4c11c8eda59633a9bb65ebb7a89c8c1db4046936a7f0096f52efca8a251501fccf7890288ed830f13e0b24b1bb017"; - sha512.doc = "5d91b23d9eb45998282731620097f214b274ee744972b3d7fbeda1be2268799572f36b5f4c8b707f48e8ec2d825438bcdcee7f1376531f366af8949a862ff379"; - license = [ "lppl13c" ]; - version = "0.1"; -}; -vpe = { - revision = 26039; - shortdesc = "Source specials for PDF output"; - sha512.run = "5fd5180edb830cc2f309652ad6a86e3ce1900dd0b150b72b3115f2e0f51aed4023b3f7af8c86befd1b1317829907b35ce583b50fe5cd1fa50f15863046e806d5"; - sha512.doc = "3c60c736fa03de82bfa5bb86f40420e7f7eb59f6943a94790361bd1d64076ec97843404d1cc508074a903f83392892c6dddd1dc912162928b286e65c24a46037"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -vpe.binfiles = [ - "vpe" -]; -vruler = { - revision = 21598; - shortdesc = "Numbering text"; - stripPrefix = 0; - sha512.run = "39582bec5217d65179b4293a18697cae20b35a0ec5416497691d16dbb919d78d4463ae15f2f05d308f45c65481f611a3f699cce9f5a3c311b84bde08fdd5f234"; - sha512.doc = "dad09087e028977501fe143ae050c57938500b8aa98bddc1afefb298444d17c37cdc5b9db2e9d01df5e9f6a47679e0659b21a2844d268f8b324a24bbf22d9492"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "2.3"; -}; -vtable = { - revision = 51126; - shortdesc = "Vertical alignement of table cells"; - stripPrefix = 0; - sha512.run = "ed8dee287daa32719b6650f43b963fa66cc55572526162978fc5245d3c253f027548ef5f1cbb38423c30e6cbe93b3418c373615ab92532be40d947c979f14b47"; - sha512.doc = "12626485ed74fdaee2aff65e97f59d14fad8f856bc2a84dda96010985b039d48850a07ef08525d74b155a699d44b1e173923e0f67716f47e392fa7558760076a"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0"; -}; -vwcol = { - revision = 36254; - shortdesc = "Variable-width multiple text columns"; - stripPrefix = 0; - sha512.run = "3963b738e1214f7a495daff6476102e6b25e86034c552b5f4e4314af55e4af073ed94a72e969dfd1fba16baa0264577234917f7dfd074dc85f9c56c5f2409903"; - sha512.doc = "a4d55b62caf4968d3e8329fd06f8857f646c5a867fbab23ea9bd7fb57c5b88b5f3a918642bc608eb1ccd936dc2e36edc50a5662667b8bb35cc59ba1739b2e7bd"; - sha512.source = "8a605a7250f939789fd863abf6fa2b5da37b8f723460ef2e56ed93dc826363ec1bad03f5bd2af266ede11ccda04546e6174c0dd79282ba41ad6c3d9923ccd51c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -wadalab = { - revision = 42428; - shortdesc = "Wadalab (Japanese) font packages"; - stripPrefix = 0; - fontMaps = [ - "Map dgj.map" - "Map dmj.map" - "Map mc2j.map" - "Map mcj.map" - "Map mr2j.map" - "Map mrj.map" + selectp = { + revision = 20185; + shortdesc = "Select pages to be output"; + stripPrefix = 0; + sha512.run = "1674c9c9d7afbc851f8c4fad1b46a1ec18161eb48375d892c947416ee97791addf92f75a69090c95a0f08bbaac1a7a745af93a7bcf91e2e0f8117ed3f3106dc9"; + sha512.doc = "7c99f0400841cb1d88af4c239f43eaec7c0b2358c2e581866d4361cd86b9eff413bc9e07d8df630ddff8d4f37193896bd430f4c357d9cc04591295f18ebd09aa"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + selinput = { + revision = 53098; + shortdesc = "Semi-automatic detection of input encoding"; + stripPrefix = 0; + sha512.run = "41888a394e4c9adc60242e4c689b272a7b4e2a2db2e4824e0068a305cdae59c1edd46b0a9e45909cf29381f240693234330fb3488be68831136f8f04a72faca6"; + sha512.doc = "918b0b2bbb8230a482418c56de8081bb455980e178843b0ea84b18435c1fbfcd50a71cd0491b89c5797a374479060175219333bbde2ab28b5147cb5c3fd65ff3"; + sha512.source = "c6b2c23826216a5c479c3cb3de1685dd4d695422ec67fa7109e7a1adb46dd7ad8cd21138a480e8e13bce1c4184fea0153114f338a5754778b22dc173d6f9445d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + selnolig = { + revision = 68747; + shortdesc = "Selectively disable typographic ligatures"; + stripPrefix = 0; + sha512.run = "8dd7baa476f72549830f2571615af2374b9d74da69c16f2999708201b7404c46118e7a6046ef8dff39935d3b94373140819497508b2a8982cc928a5dbfc6eaac"; + sha512.doc = "c36e55066eadd959f625fcb72fb89ab2ca51f3411ba9bc81c38d2ac3f18ffd792fd95c33178c0607e3958cdbd81c031193d1b6c712906a2c9cdac4178ace6ceb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.302"; + }; + semantex = { + revision = 65679; + shortdesc = "Semantic, keyval-based mathematics"; + stripPrefix = 0; + deps = [ "semtex" ]; + sha512.run = "156ef55009e52bc91bead46963d5f383c9b760d4c72a45097de1e3ce3fcb1aae4686386efbf8a3abc2f18d16f59d02f297acd825a9cfa21e544ba2dde9986c13"; + sha512.doc = "1f94edb17be3e148a913e98ce020f5273085507537b51b4737c5c4d1589e415aa361cdb25264c412af8b93025b6dde204c625180c5182d319c199d5e8e591757"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.525"; + }; + semantic = { + revision = 15878; + shortdesc = "Help for writing programming language semantics"; + stripPrefix = 0; + sha512.run = "d49c22d4982a33177fdd73c5ff15a68e663c3ff1ec9a45a40e5a8364371a25b536dd6c1dd963296ae998760178833b5f2c357119f41e7bb5a72061f0f9ad23fa"; + sha512.doc = "21e9a7efd9fd6dc28be30f284285cc8c13b266eb03c9212b30f97b761c1383e1fb84a18e92437d331d3963068a68c61276cc1fd3446807bedc954a490fc490aa"; + sha512.source = "4d513b6c9b320b9ddd8ec92fd8eae079134d351170122833e99557fdec7510938d8ef856c52e0a862a8cb8cdffa3894c160dfe085452e0cffc49db4d3fac6a79"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + semantic-markup = { + revision = 53607; + shortdesc = "Meaningful semantic markup in the spirit of the Text Encoding Initiative"; + stripPrefix = 0; + sha512.run = "f795c901ec0b133520cde8e269364977638d410d6d06207d868e6151e7f43a4d3c54a73780237e2dfb86b9077b0724fccbd7e9121d51a64034f4bd604a38008a"; + sha512.doc = "f1498e628054e91f7b0ecc0fea7c926aa55d7bec56c3c13ebcc5073f96df84e8c1e255532f9ec72b8133d21511e4f5f2996d95c39c15cb74ae39fffa87d5a785"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + semaphor = { + revision = 18651; + shortdesc = "Semaphore alphabet font"; + stripPrefix = 0; + fontMaps = [ "MixedMap semaf.map" ]; + sha512.run = "b8741be1544d8ab488632e05464cf607069f0d09df7a727bc05d06175dc16bff461d551e7130e01edbb53863d56fbf4cd0cc9085c51186e19e5f2fae986b400b"; + sha512.doc = "ef0c85ca5e86a17d59c03255d679d54cc8fb36eec02c8546f29e1c514408559788d1dbe3ac7565224b320b71e9ad77979b1092fb0f098a1c48c3a7093b72b172"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + semesterplanner = { + revision = 56841; + shortdesc = "Create beautiful semester timetables and more"; + stripPrefix = 0; + sha512.run = "26c7b18796dee2f703f22ace3aae21b38f98d9250b1896a3cfe5214b42551ae3fe4accd9e8bf905109c05169370317608e23363f4bb512e794cfaa528b645119"; + sha512.doc = "32c29aad8acf63e60f07262930f267a295daf9498621c48f0b9697fe31e4dffc63c8992b5c5f60b1d61188de893421906aa3abf160a79c6dd5429eca87c03fb1"; + sha512.source = "709556569a5defa5240781ac1bcac0af6e9cacc0016d6ff057a4414a67c69cf8d11a17c716748dfdc81fc31c2bdee230c9c4adb7c4978ccba20b7330db47ea81"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + seminar = { + revision = 59801; + shortdesc = "Make overhead slides"; + stripPrefix = 0; + sha512.run = "28795c64e4af5296e228986c28115305cb76087d241e91312cfff351f7e51833a0d76b2acd667fc5f7616dcb1685cd02b2d9352ef7f0e36d5bffdaa5f421e6eb"; + sha512.doc = "8b7364dc568d1fd78cce21ff1846a6369fe3fccf07bf16ece8383c941492404d6fdf3be1607aa2279a10d670803536474d7cc318b9b3dda24142fbcc69fe69e0"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.63a"; + }; + semioneside = { + revision = 15878; + shortdesc = "Put only special contents on left-hand pages in two sided layout"; + stripPrefix = 0; + sha512.run = "cb3f20a7f766681f9b7748ea3a816fcd477e6685a159b071502716c708e0e1d5a2a33a5b210cd1e2a684a288d07079870ad243218dd74e80853a227fd445c884"; + sha512.doc = "8d6b1ada214f99028ea9843b4d5a85a8a974a9ab52e8a7d9338d25341282d6f1c8ca4e7a24271ec20bc4be781f418f2ffb558ef4fe6e6f42d165bb24650b54da"; + sha512.source = "1b8d0d90db12b52add0f7dae10cb16bac8a9260e0a6783762908a07a014dca294ea6c631ceac3a5d063705cf39fd1a57ce6b99f72c5da4d57d4a30cdafd25767"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.41"; + }; + semproc = { + revision = 37568; + shortdesc = "Seminar proceedings"; + stripPrefix = 0; + sha512.run = "ac78e19197af3c72863ee4ca94842d596189d37c2d559ac1254f70fda1011943ddd7ce17b48f183b839a6610f8d7dbded2a0f2a18453823a0c0044a70841dcf2"; + sha512.doc = "2c7e2a40348b098037001928d6f21f5a66c23967dc63296ce26736b006a46f9d9536fae9480c1f0d0db72ed59973a6140471bb110702fd5cb997fafe03133dee"; + sha512.source = "7faf073ad7da9627b59509f41056df76658875d04651321389b3ae789e2d704691e494726635161eeab97786b8c8d6cd322e3ba83b3e1a779ff3d10a752fb51f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + semtex = { + revision = 56530; + shortdesc = "Deals with stripped SemanTeX documents"; + stripPrefix = 0; + sha512.run = "10d2b93b30581cede982f5d7ec1ee5bf6f60406e27e1750f2bc6b6dfe0f683ca922a762fafac0d5d037687c0a98188617ee48bb51ea132ccde7cd1c33bbdf273"; + sha512.doc = "316df9ed5f2d058e6c28e5e8e5f4bc3ed64439409d1ae1c608b2a75a23c40d438b657642093cb723b23da4f14382f1080aaa3a9a49d8ce143e26e494a3e7b3e9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.45"; + }; + sepfootnotes = { + revision = 41732; + shortdesc = "Support footnotes and endnotes from separate files"; + stripPrefix = 0; + sha512.run = "a7333a9779ebca371aeef0a1348968d8b4649ca037e88f6e8a6f5224d13265202c8de8d2ce5dd89de170ddc348cfb04f5df92e249c122a608efa8fbab4daba98"; + sha512.doc = "eb7d70eaec4bf58c85964f7a3692da09894c898f712a119fc0ffa42429be2e53b96ed6f569fcd37aff170d2b953543992bcc693e264ee1ec542c435be2723414"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3c"; + }; + sepnum = { + revision = 20186; + shortdesc = "Print numbers in a \"friendly\" format"; + stripPrefix = 0; + sha512.run = "4ba90558d397f0c047ffeb01620d2d5ed4bc38431ddbd75d9a381fac58360d78270b8f22e761693a8a39176d1ab92c9da3b6bf92aaaa90b8ee20490f5b70f50d"; + sha512.doc = "080b081b101ea57480e4c958e997f5b10d22c5de56a60c1f415248ba0564046560650ae589b29c73d185fa88334a26ca3412e996fcc1214ef0b9d20e71bf18fa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + seqsplit = { + revision = 15878; + shortdesc = "Split long sequences of characters in a neutral way"; + stripPrefix = 0; + sha512.run = "02413d104e12aad40f093731e2d28d0354216d3d57e6f811609f398b8122bdbf906f78cef38f355562efb4e7df6dca314f8548d8d8c03a2a9404addc42f0e1f3"; + sha512.doc = "0c49425b619ac62da4eb2392c51cb7726d9bab008910a88ec36b866717c8ac341be0903e3014ed36a30ac701fafc453a0e319470f2f65eb6775d6ff52b9f07e9"; + sha512.source = "7349cf842e7142c5c13e46d16acc35535cf34be8a4985f9a581a4338ca54beffbd80fe2820123652f3ffc868bcfe1c995200ab918c99b19d6c2ee339b61354e3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + serbian-apostrophe = { + revision = 23799; + shortdesc = "Commands for Serbian words with apostrophes"; + stripPrefix = 0; + sha512.run = "4e3998b6c3f5578929204c0b5f131b0ad4526057b50811253b6a90367327c63af5bec386aef54ae6c80be7a1ecdcc6875bbdca532fab864e61837cf16855750f"; + sha512.doc = "38c8ac74b304ac992bad807f2727a3e75a727a77c5bfe5042e24a39ad305162e828ca0333963a3f91c5f26ca0324e7feea97dc6ab84c1cfdb6c26b05ed5f4fd5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + serbian-date-lat = { + revision = 23446; + shortdesc = "Updated date typesetting for Serbian"; + stripPrefix = 0; + sha512.run = "420b77a36a08e75f8020edffed704ff0398115a6bfe694fa46957ad8b35c58435ecde4c16176a72bbcbcd16139502f8fb679399852bfc9000df6d5f305fbb04e"; + sha512.doc = "5c10fe13a4e1d6117ebfe8d737d50047dc97483c7a0cc287a9e79d367af50ec1cbdc0800161919b92c6d82774c9e756970db71344259028c254fbf2c1fe86219"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + serbian-def-cyr = { + revision = 23734; + shortdesc = "Serbian cyrillic localization"; + stripPrefix = 0; + sha512.run = "6cbd1da1160519914db1a2269a54f1f81442d84750b15179e4a0f4e5373512c959542a789ef39a2803b68030bd6a8001fde777e907e85852703ff696ec9e5113"; + sha512.doc = "0f2a2fb44eaef8e0eb01e12260fa310d661501c3e1dacde2882199ce4bd5323c837704fd50e8db5b4ba567a38038b37be28fd834874262de2e3ad36b65816498"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + serbian-lig = { + revision = 53127; + shortdesc = "Control ligatures in Serbian"; + stripPrefix = 0; + sha512.run = "d9b5d42c565d5704ab516302534238961ad42e971d3c3b4b4672d4cc19927ac22a871735d88c362b753640d457597911fa269ec30edb5c1c0af96820299c6720"; + sha512.doc = "6ed0551c176ddd34e1a4eb4449fd78ca38c166efd41b31c78dc1e192a714fdc81b195cf83587f256462b610681136b69960867d5f1a571a5b1b47256fca88f05"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + sesamanuel = { + revision = 36613; + shortdesc = "Class and package for sesamath books or paper"; + stripPrefix = 0; + sha512.run = "bb7b38ff9e6494fb3150602008a66df5fd8c35dcb52a2da196cd177bcffeb40e284fa493b296f01f22864a5bf25d89fb4c079ff4d9fffacdf37dfc9de9256518"; + sha512.doc = "cd144c93693367bdda658fb1ecd424715849fa57f0aded627125db2703947c8b5886df9ec08595592b6900327b42e8cff00f0c69967075321bd7cd1064054f3b"; + sha512.source = "4a5dd4a8da6a8719f47d4b4bfb5e3a6c0e1498369fbcf7f9fd48304906bbff383793329959b69f13a75bcf3d01b888325c23079b4503aa779f464c2864560416"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.6"; + }; + sesstime = { + revision = 49750; + shortdesc = "Session and timing information in lecture notes"; + stripPrefix = 0; + sha512.run = "5c5ab4808645230c6563a08b8243f27fad02a76fa56296f4c7e1b17d2140ad0c9ab0b6ed02e27240f596113019afbed52dc5a9f5efd874ba7783c921b81416c9"; + sha512.doc = "93b986ea6853761fae06b297b951a7a46ffee403a4fc980aa1afb7cc42c15fe753797eecbacacbfb49b0119ac9e24dc105975acf72852eb0265dc4586f397bc2"; + sha512.source = "8f3200ab63d77bf24aa9b2cd51ac460f086cb82599e9099b41614f039cf569f4fba23f2dcd59174623037046bacfd5a11ff59f140b09f373edb6346292db7910"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + setdeck = { + revision = 40613; + shortdesc = "Typeset cards for Set"; + stripPrefix = 0; + sha512.run = "817474bc928883f4bbe97391a477bf492a4e339879fc85d7aec3ca932f9b46c310f8fec5b732deb2196c705c2bd3a22721376ea8289a1bbdc12555447f12f757"; + sha512.doc = "c27f7ab563f35293ee6019560f643d562ff2bf06747402930c767031a8dccffac0ebae9cd16b9e3009b5883f594c541ccf4c38883aa89f4256f7db83e378e1e9"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.1"; + }; + setspace = { + revision = 65206; + shortdesc = "Set space between lines"; + stripPrefix = 0; + sha512.run = "9462cb011a2a13a962c08d7d962c120f2b459630f8ec1f96704c2878facf01a37118e9c94ff9cefcc9ac0e0e3c1bbedc158aaca24dcf13cad0973a6544e79651"; + sha512.doc = "0ff85289fb5ed620f208e3ba84e82efacc91da32611e95a4a99aa5c939c0400ddd3a118d460ef65d77b483678e5ce8c71b901ed0ee1f711cfaa29f26141089fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.7b"; + }; + setspaceenhanced = { + revision = 68493; + shortdesc = "An enhancement of the setspace package"; + stripPrefix = 0; + sha512.run = "594fc089440a356201122b33160a16785dcabbb2eeb1fdb2fdbbc1e53c83f0ffcbfc7b9c6be623e6a5e4ff23b933f25120ba1ecce72e73d8e32e1939a2744f8c"; + sha512.doc = "d9356a26bed9405fb9cb45eda3769dd5360418c02fb6442cb4dd64da5e70e9785b167e8406fc772fb7ca1cfc574b23a375916d0c5dd6a1afb09668f5e6c743e0"; + sha512.source = "5f16118ffc9b7572a18c485915a677b822c26ed0c4f885292c6779f91c0a9b6fb3d4f88dabb94798715efd880f6577349ede1936720ce2c6274c35671e2f0aa5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.02"; + }; + seu-ml-assign = { + revision = 62933; + shortdesc = "Southeast University Machine Learning Assignment template"; + stripPrefix = 0; + sha512.run = "929cf4aa8b1a55a74cc13e4f823f6d814fadb425f7a6ea53c18cf4244a14b9bee8afd8c06327add62b016ff36e7ecfddc29323105362a63342d382febbabc428"; + sha512.doc = "fa1d6be46bac0c2075b8e43c1f39d74092cf86b975b4c281c57b778ba16aa6345258261e26690fc84f79fdfd57082eba64d894002a723ee8bd821fd9d99e7774"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + seuthesis = { + revision = 33042; + shortdesc = "LaTeX template for theses at Southeastern University"; + stripPrefix = 0; + sha512.run = "a36006ff6a093cd589a0e328c60e7e78afc160ab45746e562a43a8944b2ab331643261f56890497b70449f76be43c0b226642cc5570dccfe0d6240181b20bcb3"; + sha512.doc = "5bbc5770bc42c62da7ca569b10558dc02bbe7fda2a463a3a2a78bc76fda3f1d0e7023c311f62a91bef73ae3c4026561403284404acc6bc72cb2e308ad4092ab8"; + sha512.source = "a442b5ca4e1e8a4a3f8d331e5575066a8c63d1521d1f774fa7d386a8e42b09a2c4727fae1f0a51a31c6a98c173113349738caac8991d50e4459082a874fed1ad"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2.1.2"; + }; + seuthesix = { + revision = 40088; + shortdesc = "LaTeX class for theses at Southeast University, Nanjing, China"; + stripPrefix = 0; + sha512.run = "8f2aa388faf3fc41cdda54ac44631dc2f0737b727f3af27c41bc268223d2f3f6353dc24f067ec487fe5f3ced5c7837ee6f60d46de3950a3a3c9573df77cc725a"; + sha512.doc = "1d54dacc742d558af5fb006cb4f26e073bbf6a3a572b7e81fbacf691995a4a96c72251225fb7cff598c930a4c9984d0d01d080c797f202f7e30aced20b8b3e5b"; + sha512.source = "fbc848315e2b76ac915aa6abc0a9e7bf2f63c4af716ccf65c9af3ae05e049952703c1f86db97a5825b92f43dc2d1163e6544c30fcfce4b672272b4ba9057c171"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.0.1"; + }; + sexam = { + revision = 46628; + shortdesc = "Package for typesetting arabic exam scripts"; + stripPrefix = 0; + sha512.run = "60fc18bf706b787b9bc59d1ff12e62fc3b69f5c6815a629f6743c8ff3fbbb2948c145278805888b235756beac5dde5613c10fe4ce20bb6536b4a3d77a2713569"; + sha512.doc = "0d2d5e2e5214622ea6b398c0b0f7a297a3f247ef3df0ed696c6faed94527b2edb6564c917d182177f8f3b44d7cd0e14ef4ac186c89113ad74e3ea70475ce1179"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + sf298 = { + revision = 41653; + shortdesc = "Standard form 298"; + stripPrefix = 0; + sha512.run = "c9a262481a01019010a645c321c675bc93e3e0c6627b693bce53a808bc9366d7915c19f97871786001fbf61b589f2cef274aba005681f9b32094644568d0f2ec"; + sha512.doc = "03b1d51626e6ec0b076f4c2fb5b34daf490a671df69edef7235a6c8c77b2475e79604c7d49aed3c7d756c9fb781a7398a27596ab9b183b942119ee86385ec612"; + sha512.source = "af4d0437e6c79c7bf0975f8e14bd8f19675223849b04b9e7b1d526ccc70a8a4a6d6773f86f9ddbcb98329368eff8c7f41cab4f2468f0100b8f5f840288184826"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3"; + }; + sffms = { + revision = 15878; + shortdesc = "Typesetting science fiction/fantasy manuscripts"; + stripPrefix = 0; + sha512.run = "ea7fbce545b9e9dc8b804e293239fdd491bf1293875fa841afc5a33ddcac7acddf243194e36f8958df4d23c71ad9b83348fda57dc261f211b49fc137b66ff6b2"; + sha512.doc = "e1702249f2516dde93887403833f9261f73e90ce04bb97d4052de1a28b9f5bcd5729d1d9a68759ea92271b46cbbebed39565e8c30248af4c894c347e4b9b75a9"; + sha512.source = "50fec199dddd2509682af8910db1cecaba7359be24a1666e156715e4613571c6f48c27eb813efaab2d6a4fd01e0e9d110021a42afca501a75a2ee02f7c80499e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + sfg = { + revision = 20209; + shortdesc = "Draw signal flow graphs"; + stripPrefix = 0; + sha512.run = "d90305b5fbac3e06bc3195b802b4ef78f7c6cfb4f0592dfd300839dd608150e1ad08fc7479fe6d8df4f2429ad6b7f81692d9723dde198991fc9626565cb38578"; + sha512.doc = "26c17b606f0cfb4e199755f7f16eec16cbe379a786a88bec2d77d983d17107d86bf8da23474bc3450f8467d18028f2f41a314c83565916cf3ac3e97c5c079267"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.91"; + }; + sfmath = { + revision = 15878; + shortdesc = "Sans-serif mathematics"; + stripPrefix = 0; + sha512.run = "7ba73610785c9270e8741ba0137701677575e38cac79976d89e2f5768804ff52117c5fcbaab9b260be522f174458a18d2d70d82c2da201e7fd6a91fe4bbdf6fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + sgame = { + revision = 30959; + shortdesc = "LaTeX style for typesetting strategic games"; + stripPrefix = 0; + sha512.run = "60e1c4d7f68bd6d39e081d49bfa1ecfa7dc56b940172719b4d6d0f2e87456c4b511ac29bb1884f7c290e7b226eb6ecae8f2ce4de3f7f5fbbd21934c440395ab7"; + sha512.doc = "29f4ee374c7b9d07274fb6f622c0769ff6977ce522ae25fa24571c0b7e60f1e120e4e26d37c6c340372fc0a2dde71a25121fa9538a35aa100e21637d5c79c874"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.15"; + }; + shade = { + revision = 22212; + shortdesc = "Shade pieces of text"; + stripPrefix = 0; + sha512.run = "968be382e1f82029e7e06f5ed34473fc20fd38dc758b97fec6dbf015ca13c3604dd6b7638dcad2f80be474ad001c47ec86e75e8d9947bde26053873376e9e068"; + sha512.doc = "0c9ec337ed4c9bba949e6b449368868856d652b2f5ac7c70dd08a9daaf8a3ed3be4008a91c003c731c97f7e4132f571c44ea9d4a4529f7b0ac9be11a673310ff"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1"; + }; + shadethm = { + revision = 53350; + shortdesc = "Theorem environments that are shaded"; + stripPrefix = 0; + sha512.run = "b9e15e017332eeadd3324afb858ab15a820e23da59f5bf7ea57dac719b9864304effd092c3cb2f25a6f29f22dd2b6f2585279edab4d77c62256582c66be550c3"; + sha512.doc = "c24f37f7f864283f9ced1da1728dd7ae137395ecda3010aeff8ad778b96723224df77755f8f71f7672f5870ad6832a22bce47bec88ae51d0992e39c0a00c8caa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + shadow = { + revision = 20312; + shortdesc = "Shadow boxes"; + stripPrefix = 0; + sha512.run = "885bca1090b93545f59b387e952998f65dee0931fb5b680d06667c3bb8172e2aad37e840942b9495134b421bb40b871633eb5de941b3a257618751e789128ca6"; + sha512.doc = "402e64195e247cd2c5106e3bd621705b80c006b2f6cf0b1da14ea459acb7dd97e2ebeda87ec118be3e73bf76edebe3067330498a2875c52c4248add70d7a0a25"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + shadowtext = { + revision = 26522; + shortdesc = "Produce text with a shadow behind it"; + stripPrefix = 0; + sha512.run = "59ab708b0f8987838cafe864cdcd68aad5aceb7cb4b3ab2b479ec4fbd15e268ba4fdd1b0143b7c247cc186a825d99ad810839221a391eafd5146f0a46865e23d"; + sha512.doc = "a89bd6ab160e364af06e26d9bbb88988c286befb5dfe4e4bdfc7c511811ef4a1ef630708d4a7ff32cb0ab6831dbee54d49a84376ee9366bd422d5689d86db404"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + shapepar = { + revision = 69343; + shortdesc = "A macro to typeset paragraphs in specific shapes"; + stripPrefix = 0; + sha512.run = "24975c53f9b29ae8302dc4e169d7d176c4825a0033764c8a08aa610c184e79d249e849e2ac3ddbeccb3bb80a4a5e29ae1c474331de68000de1a63951079acb4d"; + sha512.doc = "69a5f9dba1683ed0302a3dc4edede537986ea473357c0c8c454c26eeceb2c51d31d87d139bc3eed39ef1862c2a6feef0e570e9fb12bf88f15ee7f34280f7daf2"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.2"; + }; + shapes = { + revision = 42428; + shortdesc = "Draw polygons, reentrant stars, and fractions in circles with MetaPost"; + stripPrefix = 0; + sha512.run = "4e082b6b61ae9f2d02c6bdf7fe5beeb6b6384b2718c1644b945b175bc17c951ec7890fe7e81eb59faea4ae86da93eaf51467450cd61d223e734408e624bd8abb"; + sha512.doc = "2c295a28748f8df117a5abf16a758b079d7481f579e1bb571fc758bae505860e1a1b82f9615259b14359eb4ea8f43be82de6ae6d761225ea76bc0da167b6786c"; + sha512.source = "58ccff2be6db013bb66e606ebec52b0f86b4ab3e2066d9191f18da0534d2187fe6a3944cf179b6b807025182cbd40be8c24f190c5938bf4e4264ba492a845be1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + shdoc = { + revision = 41991; + shortdesc = "Float environment to document the shell commands of a terminal session"; + stripPrefix = 0; + sha512.run = "e72e5d88966ab88ce2ea331f2989a949f3da30cb1066a0501fe8770f077f8aaf15803d9337ab266374364fdb7b35507c6d3cd181e1fb472f6d39b6ef94c08c1f"; + sha512.doc = "38c3a7302edd2e38e3196b4d3935bc001f83fc71ed50ca8c3563ccf82e9e0729c65baf0b95db0ac637cd037cd572ba557586bc85230ff6014f63a8fe0602d9d1"; + sha512.source = "8de0b05b8cfaf13d3f3c1192c718f5663bc5d1e5d9f67395956bc18d8f97c6acd0811660c02c3dd087f617098d0ec810a69dc31a20e157fde69431eaae4047c4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1b"; + }; + shipunov = { + revision = 52334; + shortdesc = "A collection of LaTeX packages and classes"; + stripPrefix = 0; + sha512.run = "e31326135e93eaddf9f07eb0a746c83b9b6b7a7569daccc2b4ae0439664ce4a9cb2edaedc0e3ff727a4896fea43411c9cef0f3fb8455b1616de04e03b54b257a"; + sha512.doc = "3c04f8dec84f3ad87572f6c180ec783f9a879b887b4c7f860097ac03b297dd7c4a4385cb402ea0b7f09176d711050ca7813e51607cf7bba871e191ec35d9af88"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + shobhika = { + revision = 50555; + shortdesc = "An OpenType Devanagari font designed for scholars"; + stripPrefix = 0; + sha512.run = "86050c89e5939b8ffc2148f9269a48dc66f8adf396cb883a7018a1a8f123cb602f216f652f56715bebbdb7b0577a8d0cc799c847898543a4cbd22e478524b127"; + sha512.doc = "f5d9d05f54876bab260043e698fd746c95b59b04ea5b2df7244b11af30bb78e5cbb6e3511bb75d775e1bc649082575192ccbcb68fcd32b9816879b5cbf3277ba"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.05"; + }; + short-math-guide = { + revision = 46126; + shortdesc = "Guide to using amsmath and related packages to typeset mathematical notation with LaTeX"; + stripPrefix = 0; + sha512.run = "6e2c131cb3a2ce85a6718a8dab1cc52fa5dab7a3db34575dcfb0a33e6a3f3ba6025eccb82a2e07a198243bd24c5070a931e591003a768c4a057f70659e442155"; + sha512.doc = "0feaf4b3cafbac8fc78855250dc39858b0b8326b803c851efd831f36476dac2f1ce86083c11476e36ac88b44a2a8d25094f9203c774044306536fcb2b261a184"; + license = [ "lppl13c" ]; + version = "2.0"; + }; + shortmathj = { + revision = 67201; + shortdesc = "Automatically shortify titles of mathematical journals"; + stripPrefix = 0; + sha512.run = "a8ec0460d532b657c6237d5d321852b0c8ff0807d8cf73a02e0d40bc6c86b2c776dbbc5ad694d3fe022f851f049dbba6fc11d57d5d6fdb8f168a935f9f443269"; + sha512.doc = "a1fee222b86efa1cdd1d35aa2eeaf84df25db25b1a68d56863a370fef11ae62a6a21ed2ecf0f563d8c00c38759008d26e7c43988538bab6ad6b2a52c68c74c46"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5.0"; + }; + shorttoc = { + revision = 15878; + shortdesc = "Table of contents with different depths"; + stripPrefix = 0; + sha512.run = "6e78bca7425e0b23d7520af19494d9de303b86fae7a013ef85b2d512ee86be1f478ede2293650b435ab579811e444b570995e2ae8720afc60b42c0c26d7489a6"; + sha512.doc = "03090924cdde619877b271fbd70761035b5da1f2278a3642b471a86e83559da316558a752d85716242001f40ca403a985d036750218e78d873a4920905c5a652"; + sha512.source = "2841e846e2e691864e3412c52c3cb2130462b2b94f01ab9ccfba7cad05392db2b63ce3cd3ce60896a7861969ea20fdd3b1918a69e122316149af3fddf1b9c492"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + show2e = { + revision = 15878; + shortdesc = "Variants of \show for LaTeX2e"; + stripPrefix = 0; + sha512.run = "702d0913a299b68bedec15c697868a70f058957dbd3a2dd2c503bc21c8a250dc7601e6348080bb394a38108bcd2f5ee67796a888183aa181c9f88a72e7666580"; + sha512.doc = "a427f7126ded4251c255fcaf2c381f7c00d0d0e55253804cbe631ac59be1bd51e7ba2ee51110af86bcee27d73698bb7baa323fef8e23a41000928b242b0be282"; + sha512.source = "3a6bb6fbc35b5f6b1cae00d5c63c16ea13af270cbf90f57761f71076b26130272924154b8b0aac60cda41d27b75db4f1edfc82101f38b29e9641a4e02cb6c2a2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + showcharinbox = { + revision = 29803; + shortdesc = "Show characters inside a box"; + stripPrefix = 0; + sha512.run = "9cb18e80701d22e167b026767068e0fc0a7b6c4cdbc9014991f10ecd76d37614983591c931972584c50e0d6e35abee70ae3079f7dd8c855d33d1e4ea06693d25"; + sha512.doc = "47dc7121ed852931bdc5bc38b7fb4dfda6616b8b0ce649d90da71c7a4cb6084ddd69e07596dd4179b5654fa9a54fcedef6949ac4778b449ad14740058e237dad"; + sha512.source = "0c3ee2d6c00183936b57ba8e44d274baae8d90b8c089f6b5f3384c5928c703f22c87ac2781a8399189e028d6503c3e154499e85ac6b1ae69c7cb27eb29ee11a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + showdim = { + revision = 28918; + shortdesc = "Variants on printing dimensions"; + stripPrefix = 0; + sha512.run = "07c409f3d30def6894a787d9c2f7366abf6ee4248386e9d5b2e4f7858d692c7cd3e72871ff02c73a39a190ac36ccbaf5fe16e8e1b7b328be80a9ba041d12feb7"; + sha512.doc = "ba76568009149bec7484b4dbe7bede8e516a2c2ad20c77c70f0357e865c66751aa4f3d8c92c59effa1ac12e03b3b8c500c65708547ddf52458b0ce90def8fc98"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + showexpl = { + revision = 57414; + shortdesc = "Typesetting LaTeX source code"; + stripPrefix = 0; + sha512.run = "d42f5d3570f252295a25c130c9ec9a94abaf9f28038fca163423a0aa44afee4f354aa2dced3ccd173e698a5da6ccfaa8284096742ba04b03f5aebf8fc502426c"; + sha512.doc = "a3f12a43edc3ffa5556bec25b8527fdb039aaa704b2ea37c723cff367d453b0ac53b14c1eff41bf6d3961cf1d4f11b70349c03d253336421031ef0ba81b56561"; + sha512.source = "52ff44163115b6ffa5a8e181739df2c8c5619a32af0aa7bfc773d84b12c0e85a67bf87823ae0dd47f7d40d9e12fb8bde039b935555a1cc220dcbf49d182f6da3"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.3s"; + }; + showhyphenation = { + revision = 67602; + shortdesc = "Marking of hyphenation points"; + stripPrefix = 0; + sha512.run = "0a3ca7d966edf0f4221dea2c084b428c9e248b3d223b57f3f210258918593d93518a5ebdce7d9de6b88ab040c0f2b632039e23f3339a729d1fe1391f8a51d4eb"; + sha512.doc = "9d7263e5f285f5d29738c7ff578a0bf9256d67e56b882e41f0578bf9b594225a6e0711d9fd05bbc89a03cc0bb56b1ea8c3ccb1f4bc4f91ad40dbe55849b20c99"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + showkerning = { + revision = 67603; + shortdesc = "Showing kerns in a document"; + stripPrefix = 0; + sha512.run = "37a913fa403c9760fd150cac3fb88e349e8c1109f51768ee202194e72232d6e16d8dac529872dd1df7896a40a79ddb72d65c9191f72337c806de307808d80532"; + sha512.doc = "39f8f12a70550a5864956c6145a2a19555c18ce60084b66d2b69b6a2ab8796ef2b911be39c59e736534749b42930bd055969ced8eb5cc03f1e5f2796a0d0b3e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + showlabels = { + revision = 63940; + shortdesc = "Show label commands in the margin"; + stripPrefix = 0; + sha512.run = "285389ed8ef5efcfc4855e2b8003cf94275de536c8f28a237fbdf856947d55c935bfde721a00eb3e2a0187bfe552ff97671197bf1c40492a2e5e700f9536e3e8"; + sha512.doc = "0e624e36f96b8f0d06abc41c301753e3d71671daac4ab01a3914cbd45a5b07f4574011f93c5ce62129fbd77021712fb39364c240eb9b394b204597033ab13df1"; + sha512.source = "b3bd2c4e750662b7a1728f0b100fdb1c78bd33ac95e976211156786833345f2b5a3b5744a29cc134d31b166f85064607d812f7ba1d73c00be421301f4e41031e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9.2"; + }; + showtags = { + revision = 20336; + shortdesc = "Print the tags of bibliography entries"; + stripPrefix = 0; + sha512.run = "b70dc03f22838dab65631d39d8690897d4a5c71b5451775e85cdc3ff600d63afc29bd28e49aa64a5a2467143f4a84d62f5a2a9af4a8365e0a867d6a46e9de93b"; + sha512.doc = "3e1efebe8edd469e66b18aea9d9a3614b753a43ac61f5a31b57fccc1b45047aaaee8f80d156932671f9ae7457fc627732f1f72c65fca42946280c1182d8960de"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.05"; + }; + shtthesis = { + revision = 62441; + shortdesc = "An unofficial LaTeX thesis template for ShanghaiTech University"; + stripPrefix = 0; + deps = [ + "alphalph" + "biber" + "biblatex" + "biblatex-gb7714-2015" + "booktabs" + "caption" + "colortbl" + "ctex" + "datetime" + "enumitem" + "fancyhdr" + "fmtcount" + "lastpage" + "latexmk" + "listings" + "lua-alt-getopt" + "lualatex-math" + "mathtools" + "ntheorem" + "tex-gyre" + "tocvsec2" + "transparent" + "undolabl" + "unicode-math" + "xits" + "xstring" + ]; + sha512.run = "da3b02cc3558a337d7d35018fad00faf6d9183f3f4bc5b5b31e168a11dcfa705a77cad6c42f3fe3d98ce67f50d94ca1f75a82999d5a27837ea8fba6c01602594"; + sha512.doc = "04f1ccf2bef9e11364d7f066ed1a7fc218e39ef7a08824eb65537d88ed03097399eb01d07ba6d0a34e7456fc6de1291ea4f1c9264074eecd2e1af341c42e9197"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.3.3"; + }; + shuffle = { + revision = 15878; + shortdesc = "A symbol for the shuffle product"; + stripPrefix = 0; + sha512.run = "62b456ae961d34908fc25cc085bfa04d39e70f2641d65dc8e0eda419ec96a328798cc258162ebe065285f3ee1088e6076525ccbd8c0f7c0800024f371bdee65d"; + sha512.doc = "1b6427fa0cf98651a219f1cf6f15a400c09ea924bf0dcea7d48ce0665a5f1828ad64513f87089ea48d02d489d8020c90c661bac60c069601be437c77364813d4"; + sha512.source = "250729a95e91eef9c1f9b5364aa3b0a1f03a75805845c773f82b26c3782764d6f866f33391aed2f0cbb167d016b06593c015e6fb2aa9b7ababf33f215fb92647"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + sidecap = { + revision = 65618; + shortdesc = "Typeset captions sideways"; + stripPrefix = 0; + sha512.run = "3133ceaf7db89d57e7dbdabc016491795b2dd67ecd614fc4125f41dfd08ba0a03371c446d1fd7e22d1c491ac3ba6ced2856c6c3c9497304f4c041c21c0c7f558"; + sha512.doc = "2ecf3e41c8840ab87b49f771d590f8ba0d05d205bd435571dd71f2ad1d1aa727f7151b9bd913c4d33ec16ccb5cbf513bb170e59e600bf64b7c69a08273580eef"; + sha512.source = "e961f8965d2f28da04a8c5369370ae6d07e54c1091ec28da87639c6ca737f028010b85d93943fa84a0472f6f42d52d0254fa3e916acada22358e06c420a60d57"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7a"; + }; + sidenotes = { + revision = 54524; + shortdesc = "Typeset notes containing rich content, in the margin"; + stripPrefix = 0; + sha512.run = "6cf38305b919deca31761f1420c18a0ffb5ba18e045515af058e9b7d73535730117f757f16a8030d97247378efa46428ed9f28757524b650a96133aae6fe4e11"; + sha512.doc = "db5f8666987eeb2c8e29426a91bc731f8c380176b3f0285c4c4ca8554b91c85af52d0ebe16d57cdb558d8c7d1e97c6f169addb12a57a107c00ff36486dd2d218"; + sha512.source = "6d237c8df983f2a3d056038067039c45604086a377cdf02b9adc0e1c125619ff911165891d27be7e30466d3cda03f62c32bc7edc73152460d21443a5cc6886f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00a"; + }; + sidenotesplus = { + revision = 69176; + shortdesc = "Place referenced notes, alerts, figures and tables into the document margin"; + stripPrefix = 0; + sha512.run = "d7d7be2971798a869308564095617484713471f4b1e46b5729f40871eaa3216285cb063d19a7d85a6db3f4b492c4af290c3c6d392d7a7fb78b4e7761255c0a83"; + sha512.doc = "d712e51374969ab345d8f641e4ee860bbd72e5f4aa759b0b00cb538c768f9e790265074003715252f8e6c8a6ca56a5513b0f4c2dc0c3d55214aa80a994ff5c08"; + sha512.source = "c87cbc1558e5985583116a4d587aba0a7f7f6a8e7103bbd5d2c146d250fbea2c5449515787080c49ed949a28071f49036bbc4fd343d4e8d063d5ddf50e42986e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + sides = { + revision = 15878; + shortdesc = "A LaTeX class for typesetting stage plays"; + stripPrefix = 0; + sha512.run = "739e26e0c0b77d75e91f2a3a18996aa55ee1163a2bee6d489db4ba3b0864b51572c55ec53441946f16cb87694425d09e613abd2223fba2941fea4be137341b10"; + sha512.doc = "653a8472a278bb1d33d9f86559398b62e32b521c6ce8dd977dbbc4f44183e37b95378ea4b29356948735c42925f9ed25153cc6a9009341ff01d80befe2bcddb3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + signchart = { + revision = 39707; + shortdesc = "Create beautifully typeset sign charts"; + stripPrefix = 0; + sha512.run = "d379bb1a9fecc06f4e48419d0f4f49e50b6b276e15e64992ee7e154154eefc24e71c060066de3bf9e97da6c8e62b78208f3a01918150cd2ef51231b5abaee44e"; + sha512.doc = "7b140f890f3342ba6b2d25385dcae6925d8e445a862af703578f455b73c69cb71f4b9b5a933ac8b1a16178874f71c80d124c352b5aff4d7bf3dad6f1aa5a3874"; + sha512.source = "c2f141c1e0a279d5a76cddf97d5dcf24e35cb219d0a0114d5d2f91a6b24bde3b900b168225cc6afa4c623c9011bd373388799a0448ff588ffefadf7109a24af6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + silence = { + revision = 27028; + shortdesc = "Selective filtering of error messages and warnings"; + stripPrefix = 0; + sha512.run = "95f4f095e0f70dcd11482be4f6d52c5ea7a06ad820c08386ad956b9bb9ad593410e59fe9bb5904c3242594d466c495e7793718d4cb707ed3edd1d17ac3c1c1a8"; + sha512.doc = "988df943eaf9337145d081de38ac22389bbffd3e94408b1cbb5de7605cccb47e2fa837813d4647c339d978b5b9b3e82e6d9859b840e89c09c95dd9572db0601b"; + sha512.source = "7a628ca9efcc34863f064783a1e65e7bfee2a735a2457413d5b938e50b823fdfc6137f56041885e2c4910119ac756a5d6eecff91d9e99eb2bb85d2cd73f273b3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5b"; + }; + sillypage = { + revision = 66349; + shortdesc = "John Cleese's Silly Walk as page numbering style"; + stripPrefix = 0; + sha512.run = "5ca2f89c924dadaa727aee6b6bf5b0a3c06fe1d841ec37cf1a6fbb7d3516cfe8f4e2823ad8f9acbdd85a333e3736985d139e44b907d3bcf793340d49a164405a"; + sha512.doc = "fd4ed28957de74aac2f90d2aa37e5014f423738f783f837fdea9c28db0d4b9ebc65c8017fbcb596f86610f712dcd38864356838c1e8da123c2eda1be4932b936"; + sha512.source = "460ed2ec718e74921711b29010138f5e6e544da8e91631b32144f3ee0ad377b815a3d974fdfea47ab231dbdf17d4894e6a73ea78b00ee03e8934219858ce43ee"; + hasRunfiles = true; + license = [ + "cc-by-sa-40" + "lppl13c" + ]; + version = "1.6"; + }; + sim-os-menus = { + revision = 68843; + shortdesc = "Insert 'terminal' or 'context menu' or 'viewers' like in an OS"; + stripPrefix = 0; + sha512.run = "565fce3e9e13d14f7f52d3390e407b03ec680b21cef37e68439095d9e7cc813739853c9e3307dae040dcf60c6a6dc4934b0d8bac68b258af4c14aa22d8d9aadf"; + sha512.doc = "b2392fac63c75de85b89ca7037f495155cb749b17220cdc3fb2aca368bdbd593039425bf21a0341a4160935fba94d0a9bf5fcfa6c7d686178a715aab44a28ae5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + simple-resume-cv = { + revision = 43057; + shortdesc = "Template for a simple resume or curriculum vitae (CV), in XeLaTeX"; + stripPrefix = 0; + sha512.run = "996341ce711f6f9a68ccd7e0b315da98eed8f4737d44b8dbd9881c2a76c8ef2d04b1c956333b0e33997d57e0b62bcb2485029283bb4f4711c2f8e38c177755d7"; + sha512.doc = "a380b2a498bde69cef1ba2401e16886d35edb40e3338963bcbd6e862da3e54f547e7900a18f668515b3ff178462a4ea0d41bc228b6b6e7ea8b0693e295231e92"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + simple-thesis-dissertation = { + revision = 43058; + shortdesc = "Template for a simple thesis or dissertation (Ph.D. or master's degree) or technical report, in XeLaTeX"; + stripPrefix = 0; + sha512.run = "201826e649acbc8dde933da3d141408ef3e4f3bc5daffbd520a19885af612f17de2618fe7e8c78a419b6e5e4eeeaa36a2fcb3db6f610df2189e01e0b4a66e9e3"; + sha512.doc = "8dd82147b1096f728fd52a56c39309d0f421abdd972a1297b88b516e0a5ecf8387a3accc508047bcd3996ab81d778dbdd221934e2bb4c96e1ef2a59cd0fc6995"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + simplebnf = { + revision = 68959; + shortdesc = "A simple package to format Backus-Naur form (BNF)"; + stripPrefix = 0; + sha512.run = "87c6838d1a31f3a617752f428fdca3ccb7af22daace3caff307760f24fcf3092cff324db6357174599985bfbbba6a8c0f31a498481da3a7790ac653043c0683e"; + sha512.doc = "bfb6dcf8e843a42b5e7481e3ace572f55561418886cb0ed562fadd79a72eaac6c505b9a52ba37f0e3c2bfec7723a7334e81ab2dd6dbddca47ec2339f8a9b64cc"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.0"; + }; + simplecd = { + revision = 29260; + shortdesc = "Simple CD, DVD covers for printing"; + stripPrefix = 0; + sha512.run = "5fe4024ce7991242fd60b8a87c88605f68ef9595895857b56981b35dabe96c97f9af684fc5ca9c3089ba96791e076512ccd549ce70071d215eaed4e731145b30"; + sha512.doc = "5cd208f8869dc989542bf028c216fbddec5bfb285ffc18c25cfea928035946e903cc2b61de630125d8e8deea772f7f20cab552505538eaa5d3aecaef8192abec"; + sha512.source = "9b26b5fb78bfeb1115af219615c7bcf2ee85c5878ff18807444642e103abccda517c3d701bdfd655f5f9e3d1dc0374c316db96d5d7b0ab9addad74b8d7ecb5f3"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.4"; + }; + simplecv = { + revision = 35537; + shortdesc = "A simple class for writing curricula vitae"; + stripPrefix = 0; + sha512.run = "c67e9200925ac86386efaab35a8edbf20f0fda700c00c3b0350eadbe62f39fc02f502493a73acc768a4727ad1162561d7baf38193d57d1fefb4c8083ebe38c35"; + sha512.doc = "dbf087e0659f11b4dc0cf40a6826cc45f48b8155d9148262877a0d51f5766888780698d792f055666766f029ac6f5384b41c0fc41e1c84548582e665eccc0f20"; + sha512.source = "cc8f96dbb9c99cf9567171e65276d18bc8faf4fa9980ca1fb60fb5fe1ab250d462c22af29105501d72ac7ff0421104be78f097bf6afe8b88dfe48932ac19fd70"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6a"; + }; + simpleicons = { + revision = 70519; + shortdesc = "Simple Icons for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map simpleicons.map" ]; + sha512.run = "336d8cc4f3a20bb6b9f7f956dc09dcb3184a333b0e82f9b72ebfdc7f73c757fa53a48ce0bc31a1b397c42bda9826944e3004d881ee1d6dac4f3430919b4cb9cd"; + sha512.doc = "93e23215d137d04ed4086269aa79dc8f81b70147f5115edbdf7e43865b20bb241275eda4b519db5d9a3857f36d956707d936156c002c155333d72b1f60edbed5"; + hasRunfiles = true; + license = [ "cc-by-10" ]; + version = "11.7.0"; + }; + simpleinvoice = { + revision = 45673; + shortdesc = "Easy typesetting of invoices"; + stripPrefix = 0; + sha512.run = "8d3d905dd9dc418503bde7cd51c90ff6fc6f688502ff871040f9eb6bf96b6c1ef999d3dd98b16c8739ce9518a22a8e99a23b5cc66c437504b3837c30ea19cca1"; + sha512.doc = "81e5ff2bf76f2b35549feb9b6336bd04b9273d4e6b951ee327101d4e5a5d3c429276735238b63c3b2ee03466b477ca2d7990a68615c1d0eee4f12a37d6b65472"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + }; + simplekv = { + revision = 68439; + shortdesc = "A simple key/value system for TeX and LaTeX"; + stripPrefix = 0; + sha512.run = "16b0136de5c1c97ff19beca9f9488768adae2ce7107310aead9f9da82230e9d9cbec62badeacf66175fbaa181d691558dc4203e848b979dcbc23f8cf9bb8e669"; + sha512.doc = "586321e8c1597582d3be117e74ef97bfb0be59a75aae1d5bdc87b2a481b80cac350958ca77aec34148d5e54cd22a0b0b11306f445cd5abe5f1868ecb357862a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2c"; + }; + simplenodes = { + revision = 62888; + shortdesc = "Simple nodes in four colors written in TikZ for LaTeX"; + stripPrefix = 0; + sha512.run = "e92bb0c87e0c490702201fe8328f065d4307f4adfbc06a2e9dd74ee698434274ddbc065a600c5c0a36bca0c55b9cdcd7e3bd469af276585c09ba7d918b711e51"; + sha512.doc = "df7900304a63225b51ceebb02d387f172cc415c09a65209cc850485668f893e4effb3befe424164dc291e283f80054eb6ae18785024278e93739e9d98562eb21"; + hasRunfiles = true; + license = [ "mit" ]; + }; + simpleoptics = { + revision = 62977; + shortdesc = "Drawing lenses and mirrors for optical diagrams"; + stripPrefix = 0; + sha512.run = "2b53c2ccab2dbece85653ac4d40802a41c7dc9aabbb16022f08e351e77e7bd464e47a54005889707de15041a5f3565f40c97355dc3953249a951dd984311121b"; + sha512.doc = "36aa19521be45853d96c9a0406afa60a934ff5a701993fb33d2c4070e3e99822097b9daf100e9364f80a0779158a81f5acd6904f5050dc190fe22eb4ed65deca"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.1"; + }; + simpler-wick = { + revision = 39074; + shortdesc = "Simpler Wick contractions"; + stripPrefix = 0; + sha512.run = "2bead248c2380e19fb19012ba2cf7a41fdd113f48a372011c27ebac0820236500c5e49e5235e2c52fcc5a0f9c79f61cbf76a5d6de86322bc40382f5499216783"; + sha512.doc = "d8a45e06707d3e6c39e36d83020f0a2d4654cab508d91e47022320e67454d08958cfd6d3872c5ae40539f29b03080915e136746452afb9f2e74fe8be2ec20bc1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + simples-matrices = { + revision = 63802; + shortdesc = "Define matrices by given list of values"; + stripPrefix = 0; + sha512.run = "859e5e8c221deb1a40f08a0cc2ac6949cbb055791ae5435f97675aff4bb1e97caa2fa8c49b5735d31ee7b11ae8638af839affdd795d052d022890b267131dc75"; + sha512.doc = "8350ce5c4b504f955e7e2b214dfc7938e010ae440b0e51389f2013b8c9229db362938743e8da08d7fafaf1be67d29231d7fe6f92507399b838c65ce3890ec29e"; + sha512.source = "f88a1b06657e40cae2c505f56e35c8696f4f4d962376b5f8886965066fe21a4bc36edb7f467c29cfcd511b5564643699a54179b44f5187f1c193690485598a15"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + simplewick = { + revision = 15878; + shortdesc = "Simple Wick contractions"; + stripPrefix = 0; + sha512.run = "86aab23f8d19e9fa5a6251f8f725ada87b66a71a3024253d8b56f3edcc20f26695b2194b710f691ff9ed0713c993a8652447674ec84d4084c3354791244a6f10"; + sha512.doc = "bf0c3b8724ed8cc41635f45001fa04f655a7b37792c5b0e632578b066649c3bde1f894c3ab739ea2bb49f6e4f65e63fd7cd7d515ea15b53ab5894778a7918d13"; + sha512.source = "45d26e7044fe0928eb8e572f0333bee64c008c2e4d1536a0145939ce0f3392961e72bd7fc70c35b2607b2a241249d13e44e433b373b57898193185a808f128d4"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.2a"; + }; + simplified-latex = { + revision = 20620; + shortdesc = "A Simplified Introduction to LaTeX"; + stripPrefix = 0; + sha512.run = "31313aede3900675d183bfcff0045df5fa7719b982df1822823c15d645c7ef64c0b46e0f1690d98d30b2a6057e082684f23cb61a490fb2217887d0f20231ce73"; + sha512.doc = "f5bf92ed89cfc83f306cd4b2599446a11b73f73a0b82afbd0f441e26d837e6f436913bd2df18585c5e215fa0504bfee3d5d4f5ef4da8925161f85c70c14045e6"; + license = [ "lppl13c" ]; + }; + simplivre = { + revision = 70317; + shortdesc = "Write your books in a simple and clear way"; + stripPrefix = 0; + deps = [ "minimalist" ]; + sha512.run = "864101fbbd4d71ce75960255e0df965ff1dcaa7c323bcf34fe4893190c81877cb2b86d50559b20f8698ccf015cbcd111a3b6e052eb62cea28e9a5f62335d0121"; + sha512.doc = "890638ab256f56c1a964e89d990ba57288fe4ff2d8149065b1a6d24b056eca50751a932c5ac91a453bcffd1b909a7e8c277c3e240d525a97bee259d6a40bf91b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + simurgh = { + revision = 31719; + shortdesc = "Typeset Parsi in LuaLaTeX"; + stripPrefix = 0; + sha512.run = "11b77f831aff6796e41ccf2024496ae1c9d4b9b5f4c029daf33e0eb4b4fd3d1e5c78137b945e3c9fe7a16380365fb88165a46e614dc3078657ce025a55f90d44"; + sha512.doc = "30ddd7a9bbf3f568ad4876336228842651d8f95eb5f21df81ac524b99a7a695e68e0469f79867668dc3b9913cf223b72a22f6a0d0c818233c081ba90ac67de1a"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.01b"; + }; + sistyle = { + revision = 59682; + shortdesc = "Package to typeset SI units, numbers and angles"; + stripPrefix = 0; + sha512.run = "0423402d3fea5dbbb60abf6c763bd037982479557b84b6ff38f795168234cd3dc6eb0708fb7b5e76abb1f68560a884e7d8b4e3a256d78b23aa81dba9b6e70d4d"; + sha512.doc = "94fea0a472ccd43396921d957544ce6b0a1d6b9ca5ee63a01fb0f1fdd61e1cafeeca4c85366302117d852f20798c51b76966097bee3c2d7f6509e339720b744f"; + sha512.source = "bda83997fcdebffe1792ecf0678cb8065ec0f4dc37b2662fb515c8f314884799650a38efafea97e4103cc915d421b9cbc60ef9c4c81bc34a6b083548ebbf691c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3a"; + }; + sitem = { + revision = 22136; + shortdesc = "Save the optional argument of \item"; + stripPrefix = 0; + sha512.run = "64a34fcf0769ed4ab4b201facc056b890a89009e1847e9ca65fb405e1c1144225e8fff59c1a906341521bba5d39e3338900a9a35aff5bb716a5aff5e6aa4d49a"; + sha512.doc = "af74d7b4f4dfce45e543494344fa32f4f4d55435034cc1b23b24b333f89d54d0b8c9d0a1247561bb7182d3841fb04b7b3531be847a6fed3db212497ef2ccec3c"; + sha512.source = "9aa058eac9367ea31804b5c2983873f16d1c74f598fb0967f43257a963a38aeb7d578ddd596dbee87d942d87ece9188c6fe0f5e8734751325121195d9d348769"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + siunits = { + revision = 59702; + shortdesc = "International System of Units"; + stripPrefix = 0; + sha512.run = "01b2b83edba4482a6d0434efd4590b3b0fbbb596da6075632a215d60a16cc48d66f0f47d3ca61a0e73290e933952cac15fa2048f6ac12112dc603956f123f5b2"; + sha512.doc = "d6c34f20671b68a1ffdf47b32e037d7660b660fb8a8e3768083ee7e33b08e7c313eb5f2c585657dcfa258f85574bf6b13a86ef81e49c2ed1b407e4dfc8dc5d04"; + sha512.source = "8cd5d556cc4c6abc503b9882a7c2ff19052a9004d703b37383d6a6c6ec671ea434b03f6f1df362aef2fec06dfeefb7b231072c975eb946262b71b15131f38daa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.36"; + }; + siunitx = { + revision = 69922; + shortdesc = "A comprehensive (SI) units package"; + stripPrefix = 0; + deps = [ + "l3kernel" + "l3packages" + ]; + sha512.run = "df5ab6600630dbb86b496aeb3c048137a950ba0ff56275ed4fc37a8eab517f45e53cf5aacb69e21bad7799b15dc0e8d6c2f827b2a3e41abc972119174d2f2352"; + sha512.doc = "e0801e342de9483cb5a8cc24b63002c9cd01d2e38ab6945eb91b635ece0833cc1a1c6c12398a9e00eb6ffa284e11329ed53e7f5a708432d7ae1c361ce5390821"; + sha512.source = "6df46783a825446b651644bae7c5d5ad7c0abd970153de9b360376b30a1d61adef46ca3a9887689fc1fbba3427a3d634a3bfb499b3d933bc6670e02cc396c170"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.3.12"; + }; + sjtutex = { + revision = 69967; + shortdesc = "LaTeX classes for Shanghai Jiao Tong University"; + stripPrefix = 0; + sha512.run = "b9c366d594492e128f183bd1805626fc9cd7a226cfb2e8839047a7299027515213b279aaa46e51d3828997685625e5111d8da71b4f80e8063887612891594cc4"; + sha512.doc = "b996ff331e0522e6b95cdc17f289f50974d62983976611b428bb49ef170e12a94784f96774e99e6488c88749fd78cf304ed7bd041970e14a65c40531b4f71f73"; + sha512.source = "7a6fe3891a069b3f2bb9808a337b0812eb28b99f6502e0da539ec573b29892a63029f43e7aefb3e5d660e69ae8f26d6b4239cd34900776c1bb1cf49d3e420a26"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + skak = { + revision = 61719; + shortdesc = "Fonts and macros for typesetting chess games"; + stripPrefix = 0; + sha512.run = "df1a6adea32b01c8ad8ad7509c68e025ad2e1005d9aaf26cc35c67f82d21f510d1e414831f5df0a2f0703e295fb4c187d359ef7dbfe8afd76a8ce75a90f3b4bb"; + sha512.doc = "ffcb56dfae0a0ea91e716b99d1d91d4f20fedab8eb7b637f62630dbc4a8fad0562120cc02a754df475dc16c4b1a09fb2da48b8a9e22112d0c69550016026f76f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.3"; + }; + skaknew = { + revision = 20031; + shortdesc = "The skak chess fonts redone in Adobe Type 1"; + stripPrefix = 0; + fontMaps = [ "Map SkakNew.map" ]; + sha512.run = "879107f0bb96441082ccc4afb560e4fd0f625e7fb7cab84ebbd642af1ef180bc27540eb9ff26c689039dd6abb11e9b88bcea30d5b1e75b40f0e3499c981ae6e2"; + sha512.doc = "8c26115910f2e9a9ae28e1b6c0933db3308c9f59eb151bb37b23de3f0f790b9726aef895def0826e00928b75753d925c5c9db0a6b91ebf7035fad5a4e473a315"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + skb = { + revision = 22781; + shortdesc = "Tools for a repository of long-living documents"; + stripPrefix = 0; + sha512.run = "5c2e0e7310898e258505cf438ad91650fbcef6b720e9d05b9ddd241ceca3eea0ccc3a71b6ac38acee58d8e205b8352ad7abbdc277596ac74f6a5cf0ca805a0d7"; + sha512.doc = "29aa9629f84a481cee1871b92b49e1a34683092759864f1e612ef4f7b3862a9ddf567b2d20fae3f99d5946de43055de2dae8ad326000e344383c854eb9ff4f20"; + sha512.source = "fd0f3a1d4cf3fa189ef0fc8bbbb35586a39aabbc733fba3aa9d3fc48d920c416316a4a19d88583ea42b1a4c38baf4ec75cf0eec78b68a5434f3ac4578d56ea9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.52"; + }; + skdoc = { + revision = 56950; + shortdesc = "Documentation and extraction for packages and document classes"; + stripPrefix = 0; + sha512.run = "d00944f58e9842c0d1841b73fb1936dc14655f07d51c60140581d597a93a0e9ce9fe65941cc343979e549620edec6a8339cca6089df068d932e1344556c3449c"; + sha512.doc = "481e590c14396f3318999524157f8e5a8dafd0b6f553414d3ee09cb0dec6d356c2b422b6598b613ec4d29b35f27a59024dc9e5bcb49ea2643205f37c616788d6"; + sha512.source = "70343ccef329a3dce81aca0c0253b42450e7eae4560b58d69d9f12d7ef32d25023d5f09208f22f7d65414a089d2992c28079dfb708ab701803cb42fe41480691"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5d"; + }; + skeldoc = { + revision = 57922; + shortdesc = "Placeholders for unfinished documents"; + stripPrefix = 0; + sha512.run = "2bc1374e969e5b32e9a88b8240a94eac90066514c8dfcb91196a13a3774d200cb8a412fd490b581ba18e9e0047596d30296206b0607316554a361b6103ee33f3"; + sha512.doc = "13cb76835ff1eed119d8514aae495d6adaf8b4c3db17c660af29624247cba9c37d4f6991d6a99c566972e4032f14d62c21fb4f31b856c49de40d0a87def1cf95"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1.2"; + }; + skeycommand = { + revision = 24652; + shortdesc = "Create commands using parameters and keyval in parallel"; + stripPrefix = 0; + sha512.run = "0aabcf0a47ffbdaa2f88bfb970f844df36cfa30f2e5ff02cbd9dba2179fd871c2ae1f979a99e70f3f7f2ab2589b7ecbaa6f999352559100bfaefcbe7f6ec16a8"; + sha512.doc = "26f7e544e9b1b75fe7131d409c3083c39914424c66051e46535de5415383d82e48a3e2c1d35e34e5bac624a034f2e14623c8cd5b6844707b09fd531daaf7c544"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + skeyval = { + revision = 30560; + shortdesc = "Key-value parsing combining features of xkeyval and pgfkeys"; + stripPrefix = 0; + sha512.run = "151a705f5e62dc80e8a470a7ce39cf197933452a35b296e70790d7ec0f6667f24acbc0c643db6c402ca1e9b9735f34be388efca5a5e5951725e8f00bb8d2833f"; + sha512.doc = "97bf20706cd14e0b479221c6ed96e56754aca13d7b72f1d7bedec6117d159caca2a4e9a931d3d8311f593a538985d8e4e5bb9d5a76a653d72aa8d094a66e9e92"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + skills = { + revision = 56734; + shortdesc = "Create proficiency tests"; + stripPrefix = 0; + sha512.run = "0719d385343a79a261409a07d659c0fba4f861e69b082278b1442a12408bc3601de789575fdf566ce280a2699dc10b28aada80d490396498fa9a6bbc8d064eb9"; + sha512.doc = "9b2339a50fbc759d9e5bc907a4d8dca2f06293d5a5f38602213a859dfc34da1715105b2b5a46e82a23f71b741e4db713b0044f345767a1f87c32526b57fb0103"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + skmath = { + revision = 52411; + shortdesc = "Extensions to the maths command repertoir"; + stripPrefix = 0; + sha512.run = "6cbc67d9a6fb9cb6a3d8da38ff83bbb6dbd28c5e3e81a07a1b7292472d9064f321206ebd4ac1917d80f138f9b9cf91c008b8e3eac27ef0a77ff2073cab08eab1"; + sha512.doc = "ce579b82a84f81169bf1a6cc37fff0c2e7c4e1570d0cbe2eb143dc8ac6dc082fa3cdaecae5a31791aa590c89fb74a58a4451811ec66d38eaa146520ff16e7471"; + sha512.source = "d5101fecf8963f78b9e202c9d537723dbea069558cb764fc66344862cbcedfd81ecd3d923ee2f8b1167a65f8325e2f1fd66f16089a92ab419a580ca7313fa484"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5a"; + }; + skrapport = { + revision = 52412; + shortdesc = "'Simple' class for reports, etc."; + stripPrefix = 0; + sha512.run = "60ee0f76dbf9e1539c08a97cf25cf14d2fbf02527facc3764c57cf0812a67d740d5c3148a4a7e76a6880717166c935b34bcf38de0b4f7d02df9c1ab50046a2ed"; + sha512.doc = "986bb0ce679b69bd9a0958b6d4d1a3fac49ac6a5e31bafa5d556ac28c2bc3d0d8c892e998791e74172ec86c5899acba2cbd193dfc685e7dcb0b5d47b4c2e3576"; + sha512.source = "b2f63eda57ec7ecbac63c6f0b2dcc2175bde5618db88cd6270a27466178c39209418a94470d6f78b8ea22c5e6ce8d3dfc178f52cba943f9ccc98fea447ade818"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.12k"; + }; + skull = { + revision = 51907; + shortdesc = "A font to draw a skull"; + stripPrefix = 0; + sha512.run = "261ba31f30fa26e25f82dfe60ff7600c71db51f1dee68a5c094fa8a746995ee9031e41c0f24a4e83aec52c603cbea71a0773cae63481f167b81abdfb0ac3f782"; + sha512.source = "3967550eb9af93aaa3fb9c623437e2c6ceb90f52f20533832aae3be91c719a774e3fe6a51f4d1543d6547479a2efa6c1965f0870174cfcd5c93cef0c20aecddc"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.1"; + }; + slantsc = { + revision = 25007; + shortdesc = "Access different-shaped small-caps fonts"; + stripPrefix = 0; + sha512.run = "45d92cb8f2a5aeaecc9945ce2778f2fa330b703ea0efb2deb4407ac17d30ad3a3e1ae7966474af28a7816dee18254422fe7c72c50f11f47cd52a54522f05fec3"; + sha512.doc = "8f856a45e3088d2047157bc87d60a16b6c6e481334f4ee81a23e4cb8ecf53d1113849877ffb24ee4516dfba228c10c9974b0b0a148020d64e3069ed7a2d12750"; + sha512.source = "7e2af37c07b8ccae052c84ade3ad49fb4d93fb5fd97a5387b1ea8af523167f21d48e3961df58c7a93dfbd07f09ed1140839e48a57b3149dfa713e5945081f200"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.11"; + }; + slideshow = { + revision = 15878; + shortdesc = "Generate slideshow with MetaPost"; + stripPrefix = 0; + sha512.run = "f7bd44c9720512297f15ff6cee1c49ca52c29fc206f739e6aa447e778fed00a64e282aeab9d42b215cac69a64ab39f3919433bd0640d30d55ac540e2dde07967"; + sha512.doc = "d271c1f9e7b9c45694463982da8c9542fea326d7e191a705e92f5b423e054c3f926768d2209844ddabbe75eb610d4a5cb05ffd53098cdca9e35328c865027eff"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + smalltableof = { + revision = 20333; + shortdesc = "Create listoffigures etc. in a single chapter"; + stripPrefix = 0; + sha512.run = "50a4878bddc55e1b05ede3e770aad31f6c56b81f9e6d0a536ece25729e3c5a9a1720068534f26a9c224c101f0e0d833478f1a5c3b12759d7c3ffce027bbd5edd"; + sha512.doc = "ca62aa29f6ad62f149dd9c5077ee2b14ed69d8a750f33d3de274ae275e5d1528482e58140a78b0917cf02a879206194e24a6beecd33060544abb50dd6fc564a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + smart-eqn = { + revision = 61719; + shortdesc = "Automatic math symbol styling for LaTeX documents"; + stripPrefix = 0; + sha512.run = "03f69303ec66b59a7425e06a4e8941a5c93414514b5f80cbc138a75a5619791dfa3ff2f1435ddbfbe7fe5af298a1af5325f279f36d924e97a5074ef930b42997"; + sha512.doc = "85eb6e8ccbea66cb6e30f862491adc02316af9071753459eb56e8f19011e9ab7865f87868ed348e5b0f6192b2305dffe5272d885486b881e2d286ceb211c77dd"; + sha512.source = "f7bd8c3b2e616a739b0d5ad459e1041c492b1e00cb9258b55ce4631465e510e71c166a3f6a94b8244a7e1b4bf098ede5c9379a7a5a6baa90eb28026e9be0bad3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + smartdiagram = { + revision = 42781; + shortdesc = "Generate diagrams from lists"; + stripPrefix = 0; + sha512.run = "322589506d1cdaa30dd9f97b419347fba0d617a3ad35fd15fe91611b10382c595598ce1111a287f5b1aef617595cba77b53490da7744b23942f072f522a68ef1"; + sha512.doc = "1cc7abaed3dcdb11fca675bea8e458f1879bda4ac72278566a9247ec2cb0016f10467e3120e9ef688c5674af05559bff39862d4b3292596f0dafd5e13672a14f"; + sha512.source = "a1141f82e32b444951bac9fa0fd119e59cc2389577cd05cc19702582c64972602215648e727ccb338565edafb0116f6c50a033d9c3ce8664e97f392148f888d1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3b"; + }; + smartref = { + revision = 20311; + shortdesc = "Extend LaTeX's \ref capability"; + stripPrefix = 0; + sha512.run = "149dd95ca0677a4e273df64a589d1424b8dd89983adf3a3ef81f8236d1b594d35b851b4255fd9f0d05b4feb82db59d816408e3ca59f2b86b73a5724a8e937367"; + sha512.doc = "07eaecd9e924e5912e8e3a3ba6479412282e1408cbb59699b9e83006768c4042b173d38da2e8dd2c707b392cb48d99e4be25985023db4de80d69450fe95a338b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + smartunits = { + revision = 39592; + shortdesc = "Converting between common metric and Imperial units"; + stripPrefix = 0; + sha512.run = "d4c23a39d79cb5c0ba700da40b916ac6072e612d0e5b8ea1c189100cfe56fe77c9d1ff742d92fc44450255048d96f2e1dc2b5f0e098e56aad5efcdd423fec608"; + sha512.doc = "e85b83a090b3e352a0faa61ee0f3dfc84d3f2fad8f1ef503aef7bf571e706575b19c1da394b09e69968b10fff2542b5b749a895eb17e84ce1293273532d2e241"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + smflatex = { + revision = 58910; + shortdesc = "Classes for Societe mathematique de France publications"; + stripPrefix = 0; + sha512.run = "3723047537c97c42f23eaf15dd95941092300a86a5072cf261c2d9a4fdc09d17e3c09cefc6a1f632996b45300cfc5e3266dba4130decf4f6d33063b0b7f45d0f"; + sha512.doc = "a0ead1f76c26126c3cf00bd735ae8002648ac874511de92a73b756197328af3d81d66697c0fb3d210047570dd267b5c975b26a7c6e42b0fa61b9b77a29bbf113"; + sha512.source = "99a45d290c450301108b032830b02c81d3487ebb281f19f17826df8ed267dada23b5bb039874f97de29850c1d33bb775097d53d7e4d8d4373de9143219aa57aa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + snapshot = { + revision = 56735; + shortdesc = "List the external dependencies of a LaTeX document"; + stripPrefix = 0; + sha512.run = "2b9bba924070f81319758c4b8a8e85533ff5099e901598248d5a645aba249e7158587e7d90072d3e8fa4d544d09f800b94aa415117683a8bb8c6d7ff642c313d"; + sha512.doc = "b1dda7b3fa9195e5d0e425a4b7facc75f8737446b65b29cd5f3c954dad348055c8544968b3c68f9b2256e8d827ae73b54b765d23b958abc383bef072d9eacfe7"; + sha512.source = "ae57330c3c69e82c638e07ca7d2d011838a85ae79f3f16fcb8909076f375da51f2b1d3487aadf55cf93306c035099397fa826a7bd9654e6756cde66d2138b15b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + snaptodo = { + revision = 61155; + shortdesc = "A todo that snaps to the closer side"; + stripPrefix = 0; + sha512.run = "10d9e3d154a3713c1f494ae626c61a1275b902892ad7cb34f41c65a36335a7ea21bc9d7d77d00845c2e5f270edc91d1be5bfdfa34189a2ac6bd88ab83e78212b"; + sha512.doc = "ed3df0276b44e2539b9b8cd0b5f6b46f86b18723d0913ed29fba45e30a132b53f8e0206add2d31bc152c78f319b8f7671ea000a1f344dc7f7d80ad9de32cd66b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + snotez = { + revision = 61992; + shortdesc = "Typeset notes, in the margin"; + stripPrefix = 0; + sha512.run = "8e827171eb8ae6281d0be97bddd251db57349f935ac6309eace72396be37c33e8bd79d792701f56a5e338eccfae452411de520bdab5f5747e6fb741e5215c1bd"; + sha512.doc = "230cd4f3f8922fe520c7b476f8f7b31e3965029e72e58828107e5f7c761b87a64f5c5df9faadb610277d45ff95052878c070e690932759850da34fd82fb028d0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + songbook = { + revision = 18136; + shortdesc = "Package for typesetting song lyrics and chord books"; + stripPrefix = 0; + sha512.run = "06f81b35318ee9844565f622b5ecfb0f323373f14acfed3fdd042a244537c313fcc974c8cc556011baed16c5a7f90b8163342d36e360749db240e6eb639351b0"; + sha512.doc = "a8d98e2d3b90ebfc4e8df53ebaf92f2d0deb95034bf234dfeaef1d38213af9a36e38d48599e6e78a7e87fb966de87db821f4de7a6fd50f57c1afb515050bb510"; + sha512.source = "57fed8f034e860787cd72b2acece0a491832acc526964c75060258db6bd46d77a551b967af41bfeae47d83ab97e4d6c2799c0f4ade405a43812126acc1b3d390"; + hasRunfiles = true; + license = [ "lgpl21" ]; + version = "4.5"; + }; + songproj = { + revision = 66704; + shortdesc = "Generate Beamer slideshows with song lyrics"; + stripPrefix = 0; + sha512.run = "7c6341931e78dd362cd67062518f7f6d1725c239f20f65a7e345fed03787381af08b18102f671be4913ed53aeeb669f3744330d2eb2681878939a813ade2f1ad"; + sha512.doc = "1d219f70c51484b321b6c3b8fb63a81aaa311cecf5abdba6b5cc2662d528ce5fe78a400d81dd3dbfa0e3616a65bf124e3eb78ae94e57e1a87dbce83ba32b3b64"; + sha512.source = "ff8238a64adefe5fb2e2ff8b7541fce489c0759dbbfb5fa517458e404e6a7184b77782cc9ce30f2063a958e212b1d133c7c4a3b82518e7347b2cfdb930bd6cfa"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.2.0"; + }; + songs = { + revision = 51494; + shortdesc = "Produce song books for church or fellowship"; + stripPrefix = 0; + sha512.run = "dd1309fda1a7bff1236707cb45047dd5adc582d3e3f509f211af7a30c0469cde704773af48fed379a29307201d9781150487821219f76d45d556f1d27e420c08"; + sha512.doc = "72c374aab68334b050a5d801299179c8484b6fa46db8c8e20b9fceef3cb9a8c0c1dc51de93f34115d4e34767233179c5872054cd03ea3e622abb63a49ad81f24"; + sha512.source = "016d389033589ab9334180edf70321858ba3b6000d8f560a18631e13ef28130f4b39aed81f7ddf0a178540a463789955d14620b37b7979ac0ea6abeec77d29bd"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "3.1"; + }; + sort-by-letters = { + revision = 27128; + shortdesc = "Bibliography styles for alphabetic sorting"; + stripPrefix = 0; + sha512.run = "41e7db4a4c5242493aeb099ca103f4540e038b1e91ec0296629f4dab1ad013f98b26b664c7d661dd2f53c1e5c749509763c46f51bb823225a104c125a9f75f4d"; + sha512.doc = "e2b6c68a42b9364d44dfa06ea93d8c8ea2444d97a3cf3c111065b720d3706b36315a7c8650877f1d6a2a72c1aa42268af4f17fc4632032e1e3c0a2d0fa08e577"; + hasRunfiles = true; + license = [ "free" ]; + }; + soton = { + revision = 16215; + shortdesc = "University of Southampton-compliant slides"; + stripPrefix = 0; + sha512.run = "59e9e0bd127e44e1a80ff7dccf1fecb18b34a54c379a46632b13f82d80648229daa54c4655575c52ee718b02277c4e2b264451f8d3fe58abd60e593d0826c97b"; + sha512.doc = "de9b03e8626535d2633af3884e373d8b25fe6d203af75382cf329aeb7b79c745f94c6d08d49a69b42172f4bad3cab2048fadcc4ad826a1c1126425a40289ecdc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + soul = { + revision = 67365; + shortdesc = "Hyphenation for letterspacing, underlining, and more"; + stripPrefix = 0; + sha512.run = "233f1178521296d5cccc7db50c98425995b8708c97d750a5c24f698bd0de2e54ed5c57f9641f402bb8a42721e348355e6f7e9092b4056999b032d001c8203aba"; + sha512.doc = "c734b198050f5fda61e0477e7cadbb6f6f9257a0fa41babed664621d7b64c4971412d831b350879a5405976d4e35a11caa0519fb67f308bcd622f0c72f431b4e"; + sha512.source = "6a50fd644f99214a71f96994d52fdfd5f353a584ad73dca3b66829ee6094976eee8d4fec3f691149f634f27423ef5490bd4c1b781fb743bcf228e4b1e52e5d33"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + soulpos = { + revision = 60772; + shortdesc = "A fancy means of underlining"; + stripPrefix = 0; + deps = [ + "oberdiek" + "soul" + ]; + sha512.run = "2b4d2fcaa687ff7d229706e563f739356a450a8ef02180f3c98432b11d027cd097fa895c3c971a944329b8657c74b4d2cf566110919e511e6883706561332678"; + sha512.doc = "9577aa2c77e9cafea54eee0ee032acd7c1343d6eb66b76fc25d694b524630bd2f41043187671cd444c9cdd0ccc8b9064e6c71365492cbdbd46517a061efc87cc"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.2"; + }; + soup = { + revision = 50815; + shortdesc = "Generate alphabet soup puzzles"; + stripPrefix = 0; + sha512.run = "478c8cba8623b184db1c9237b7a805219bf1ffb7ef45280fecf7cd75a1720ca0ea2e1e1ad73465ee20dbc2bbaf14667d4707524edbc073dd4fbd0537dbeca8c2"; + sha512.doc = "318cb98167123bf8d9a5f80db8e31a31f6f61536e938da3b68efc0dfec6722bc898d8295d32896c24d2842b262f22f70e08014c07755b6728dbb2040f64aef5e"; + sha512.source = "41d74f1e6812f4b56b44e3a80abb398baf9eef5c6a361de98a1237fc6931952460450f3780f682d35bf9bc718d2902c9d82ce15994144b2a133dcda46b531774"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + sourcecodepro = { + revision = 54512; + shortdesc = "Use SourceCodePro with TeX(-alike) systems"; + stripPrefix = 0; + fontMaps = [ "Map SourceCodePro.map" ]; + sha512.run = "98ae07aa0c29c1c1cf2e181b1a5d68f85736b90b8f381bc9c1a2368cea2b8c62fb0c8007f5ce6b53b8e87195b8b0859c54bb2656cb7361119c29ed87d9259c62"; + sha512.doc = "e786d75bedbf5c5d155a69fda50e9fe6fe07914ca01aa10d7ab66800cd37a4bdfeb543ad34c9ca2eec53de226e68d7a1849a9a0510291d135001c5228f19e2e8"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.7"; + }; + sourcesanspro = { + revision = 54892; + shortdesc = "Use SourceSansPro with TeX(-alike) systems"; + stripPrefix = 0; + fontMaps = [ "Map SourceSansPro.map" ]; + sha512.run = "0511dcf736273d80f7143c9dad96dd9f631b016183b4078243ed061d35889fea62e50c5f48e9842ffae7b654fd2e08a21d1c46403e56349c0b515ff2eb62e164"; + sha512.doc = "174def8872588c27b8f90b3c384ee356aec43e4e42014bb1c02d648d8b309dfa8fb9cea03f65fa9bd86dc3ff1e64483f1312dbaca6e212f65d2d379a1d9935e3"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.8"; + }; + sourceserifpro = { + revision = 54512; + shortdesc = "Use SourceSerifPro with TeX(-alike) systems"; + stripPrefix = 0; + fontMaps = [ "Map SourceSerifPro.map" ]; + sha512.run = "5125dc5b72d960fefffcc4c8651f3d176c18c32d111440a16a0319f90b8dc973a4af0e20fc3b571578184e31749312c0c1f0ec3bba36b3715a3c59fc03768d65"; + sha512.doc = "c469f7beb0e99c8a9891c4222171525004c63e9feeaea9be57e663541ba4e2f259d2a3674f3029e4609fc08292d749f005f971bfcc542115d53e1845a02680f8"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.4"; + }; + spacekern = { + revision = 67604; + shortdesc = "Kerning between words and against space"; + stripPrefix = 0; + sha512.run = "005bf533b88e602779cb71c0ab7720492e5302f6c9321ef8d68cbcba8f4f9a0c7839c5408ff6c2a5f72c18c5bb5c8a7d41a5500aeecd29ba898c209c83dea6ea"; + sha512.doc = "8c24513b5f81d1f2df44a707a5e2ee6baf66af594507a545ff0c5e0fb90412b6c03831d73cb473dd32168a6f55f110fa699f941da0626aa0b3ce35bbbf1d9e26"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + spacingtricks = { + revision = 69048; + shortdesc = "Addressing various spacing issues"; + stripPrefix = 0; + sha512.run = "df9b7518565ee8f619aaedc82384497dfbad69911c66dd68f306010cee603ab307c3af89cc3f9901585de03e1796da3d8b96380e454ab0d3d24171187e39872a"; + sha512.doc = "76ebfa44b0f992db86452e5ca6bff7b4b5285e743de595f6963afca7eb0e80f287a1eb71b2f287edd33acbc7a9f24fe1876ac6f62d2812da2f1fd89c9650f814"; + sha512.source = "1f22a7811c34d834cae307a149fd993d87232c6e1ad6d9c22c79f005b6ba06a84daa5878caf189b44b8afd39a9ce41005973168b7198f04223becc2c0e90ff6a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + spalign = { + revision = 42225; + shortdesc = "Typeset matrices and arrays with spaces and semicolons as delimiters"; + stripPrefix = 0; + sha512.run = "6e00399e0940778a6ed8326abce14f15836bcb69f8e7c67d06cdf8567330ce0482a213c7b65c2662e0fddc47ce7b684a640e133017eca314b59eefc278eb6425"; + sha512.doc = "534f2c39076a6ff243a8e4cffe353a569b493b90fc1bdcc3db43229dda3955f013de15ce1db7beb38bc9b8d972c7430a24d64c263041c82e84c799f446faab0a"; + sha512.source = "3a12b34469bbefd61112b7338c8b5d440de46837632a695b52ae18e4f297d6ac0cde7ae71db7bb0a7bd3db0aeaa83e78f33a60e4dd496cf9c0ccda1a297b4ae9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + spark-otf = { + revision = 62481; + shortdesc = "Support OpenType Spark fonts"; + stripPrefix = 0; + sha512.run = "787774aebfb3834f1477a8afc61d2f81c32fca5f69e5828b403b58a60c2047a5afb79d50f33be0376cee57fd30ee1c3af2a6428c08abc9a058e6a3b04b8fee0b"; + sha512.doc = "69fa7131b247a93b26fb98a8a4fc69b11fc8f9f05905948f530d78abebea76852baf4535768ea925839b0e3332fe9ac61e94ef7b10762afd61024bfa934f243d"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.05a"; + }; + sparklines = { + revision = 42821; + shortdesc = "Drawing sparklines: intense, simple, wordlike graphics"; + stripPrefix = 0; + sha512.run = "5dc74f46a819a6539034d570d4bc11403cb9f4617e2e6e373cced6cf335630e4e5a3d919041ac67a8b114b2d53c56871239b67a6acd6bc47f8c6130171d84824"; + sha512.doc = "4db42aec14145d4b73fce7940563f6771c3d994955006cceac7c93c9d5d5e2200fddf6d83d15e4dde0385f982c0ee85fc844914d80aa249c3ac2e86a49369b38"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + spath3 = { + revision = 64818; + shortdesc = "Manipulate \"soft paths\" in PGF"; + stripPrefix = 0; + sha512.run = "c066ebfc25685d450caeddced161ad5b4170453307cfd21fc2c85c113bab3271b001514481827149757e536863fc2bf9814e03720d9a934c4df02321d6c5bbd5"; + sha512.doc = "ce6fde7f6fe42711a2c685582dda0bb9a4715b12a43483a76824361561cf1f20b40bc85a3c2facc90783cbc46b632848a9701d28381f0eba343463ac03ac443d"; + sha512.source = "5d85d1f8370009e0ff5f7cc25f95a1daf3604ebf03e2dea28d3ca4f08f69bf4f86859cd63796b43eab7104945204f70448a90cf95234b574f8ab11f883a1bf09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.7"; + }; + spbmark = { + revision = 69927; + shortdesc = "Customize superscripts and subscripts"; + stripPrefix = 0; + sha512.run = "5734970852cffeddd5e926e407b15bb1058d010098a19ff0f96f5b292ad9b87a81e608400779c9b827e78db768a24f719f382e159ae1a472ebf1e7b7a2644aa0"; + sha512.doc = "17281bda5938984885102aad59bc815c0488277bd5e4b0dfa7f0c48f7ecc613b7b6716dddebecc97586e18059ec06ca95f6757ef3a355252f5d2b8cfd7b62f18"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.46e"; + }; + spectral = { + revision = 64528; + shortdesc = "Spectral fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map spectral.map" ]; + sha512.run = "e260d7605cb89a7ff33f530c5f6448f2ae512e9ac1b22880f3d76147701ae458fa5acb3525d49cae3973c24b51858ad687b76f5a00ca8d914edf4e329f3dabc7"; + sha512.doc = "4fba6fa0576a84b05d0a0bc3520ac6e08dbedb7f37e5af5a0cc961c80deb98d53065be3c645c0eb0dc08a495d113e72f4474de32dad5d080ce67b000aaf4042d"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + spectralsequences = { + revision = 65667; + shortdesc = "Print spectral sequence diagrams using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "797f7ded1824a025337a12b47a8b85d16d69b8e0f7999015c0b8618ce639f97a5883f1a694a22b56de4a237901e1a43b7cb0f387bb02f567301e59203b16d31b"; + sha512.doc = "4c876bfdbdb40b6d1b58d1640aa39f02a29097f0ddc1015bbd6b415d0d7aa88c90c0d45edc444c69baeeb68741320745157466bff3242daa48526a1ebe21eaf1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.3"; + }; + spelling = { + revision = 30715; + shortdesc = "Support for spell-checking of LuaTeX documents"; + stripPrefix = 0; + sha512.run = "ec32c627f52e1cc08f893aff21d43519ac30169772e82793525cfd61c302883c9c0c8444f2d51cd03a94f55e1ad589afac1a404a47b87ebbe7855acde887e511"; + sha512.doc = "a51b8fb45701d318dd9b9736830b83ac34c84b781d61a3a247263167d527aad7cdb6e1917ce260d09e0304fba38bb2e2a25288f75aa2335bef479918036e1221"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.41"; + }; + sphack = { + revision = 20842; + shortdesc = "Patch LaTeX kernel spacing macros"; + stripPrefix = 0; + sha512.run = "b2cd588384770e0d95bf6e5c6b67df0ba8160e0a01e3f64932d67debcf9fa836212aafc78c79b8d28aae8124a25aff73f4846db514dbfc0a65a519eba75fc52a"; + sha512.doc = "6b490ee2e736a6bf1ddf32d5db605ab5fe77f079d585c2e377bda73a688a7de575b99d56c6626d9888c395f6a4d181cd0b42e77dd5673c8456bb0e029510b8d9"; + hasRunfiles = true; + license = [ "free" ]; + }; + sphdthesis = { + revision = 34374; + shortdesc = "LaTeX template for writing PhD Thesis"; + stripPrefix = 0; + sha512.run = "44c467fc1de689bc198acfa224aa1109c47bcdfce8b161673752f73d59877465b0c4b87f1fcd4a8f589a78fb05ef5efd42edaff2fbfe7910a1ab7b409d9a7e5f"; + sha512.doc = "cfcd8c02c68a990cda426d737914d195c78d98e0b8c9765128aa8319d47d27163e7d072ea50d312a394b85e8ac1e580dcbd204fcf6b670b4dc519d1f09ce8d72"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + spie = { + revision = 15878; + shortdesc = "Support for formatting SPIE Proceedings manuscripts"; + stripPrefix = 0; + sha512.run = "282ee645ea5022fc0e325bf211b358236f07c6509883a254fa4e1ca0728fd73a4be8889e4919eb5e0ea9c203300359808b4d141d71d0c158a71a3d10d982264f"; + sha512.doc = "1242f49f1499b798977eace516487543c23dca36471b1e49a2b1377a84083f40a3d5a2e316624f8ac458b61c2cfa406fc3580209c9629739dabaa2fa35e6b806"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.25"; + }; + spix = { + revision = 65050; + shortdesc = "Yet another TeX compilation tool: simple, human readable, no option, no magic"; + sha512.run = "e0447cedced73a9544b837c555f3d42995b5fa5e23ba737b6794e11e7fa391969c2156ae89d6e7e18140dae0e0c9b0f2d5d6036c4fda3d236790abb21fc8d9ed"; + sha512.doc = "b783636e01e976f3a0020d6e5b8c87918277fb0caae09057e68b2e216e504618f0b784b1214fdf99fde79cae5a6169c585bacf093de149a99534ef7069e6cb2a"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "gpl3Plus" ]; + version = "1.3.0"; + }; + spix.binfiles = [ "spix" ]; + splines = { + revision = 15878; + shortdesc = "MetaPost macros for drawing cubic spline interpolants"; + stripPrefix = 0; + sha512.run = "f040046978cf51bbaf3347406e224fe60a85f449c1fac1703e7a2d936140b099c14ffd488ebe4c3d932b35a8380f943250734a054ea5165ed26b2be712ad577c"; + sha512.doc = "08532f43fb7aac979e78d30f27f36047d7b70733ef6bdd65d26a40e6818f2b73852d4a6ac5eeae8cd29fc86e1630d2ba068b9707666f66a13e2090a6da81ac25"; + sha512.source = "dd23ff4702f70ca2f29950e2e1c915dc96f9b0951b6f00ff94371ff80fe60f20d8de517a9d9157db9518cb51f96f1f52b8cd7f080af7760c926c5d29649844e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + splitbib = { + revision = 15878; + shortdesc = "Split and reorder your bibliography"; + stripPrefix = 0; + sha512.run = "2936732fdcebff683e240e139ba6e1e4268dc72e427bd30af0590cc3dd7dcc8dd49eaf6f007e549efc5c429fbcea2b37f9e68040d1ffb023162c571341abdb40"; + sha512.doc = "df266ae77aaccf91b08931c57b01a9eefffe6a469c4cc549ce41640dc9c9041676539e1302aecfed88d19baef277f507ede8ba6f794dae6ea4745b1338459d14"; + sha512.source = "72a8da016f943df7f5e2d7cb05cd1a64e222ec0c3be784ac21e6aa5f571c9e76cc3e8a5716444aa1033d5127af8d82df5cd632a884fe17f08c55e08d38956e3c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.17"; + }; + splitindex = { + revision = 39766; + shortdesc = "Unlimited number of indexes"; + sha512.run = "858033eadfa82b4e40a388356f64002370a5f4fc2c95565eae90c68373f708a3c9827fc4e0ba8094659382aba4e5925cba86632733b15d85ea6a82f73ace8737"; + sha512.doc = "c8dd92e955fcccf71b412d9750fff7b6f214e929ddf194a6496a79a146f4837af3d773ed3f2303546727cc4a8fb9d5366dd75b64d3877e6121ce20315f71997a"; + hasManpages = true; + sha512.source = "8aa928bdf6f2e8fb6274c1fe8d0b4567d03a1c6ffbd078726bf6a36ff1bdab981d5150cf0250602a64d2a0a9be92695fdd399c04d041b7a9579a7d3a71910151"; + hasRunfiles = true; + scriptExts = [ "tlu" ]; + license = [ "lppl13c" ]; + version = "1.2c"; + }; + splitindex.binfiles = [ "splitindex" ]; + spot = { + revision = 22408; + shortdesc = "Spotlight highlighting for Beamer"; + stripPrefix = 0; + sha512.run = "95a7bf0a9e04e7157fe27499a7a2d2bf3e8d86f284e9c2d150c40b5efc1786d4820af20ccde7f5b649a775d7a13d25a78347138a200335fc0b9e4165dd3e1f0e"; + sha512.doc = "26ee8b13622a46078e8199c818dc353801af36afdbf67707a6942202fa458e7cbe9a000a4ea022d0dc4ec6ddb3a63c6adadf240cf207778765e47b2db636ea5b"; + sha512.source = "96438aef76ade4df7f4f49d819f96792a28dcf3a0f5e50498f854c047a7754accd31d679d034886eafbfd32c0d4eb941e8a888a1ea94fb332b8b48912d0f673f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + spotcolor = { + revision = 15878; + shortdesc = "Spot colours for pdfLaTeX"; + stripPrefix = 0; + sha512.run = "6748982e7007323414dd8ca5f1ede105bb2bfd0b0f8d2f83c8731926628c094c8c08f0cf4ddadbaa209e182f8af83ed6fb761142ecbb97371752473b33c44ffa"; + sha512.doc = "4055f42161bd45dee74974358eabda875e9a3d62690fec0486748cd7fe974af133c24e56bcfd240c6928334fd9c7e1e6a6935c45b974760b41f7ce080d44f568"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + spreadtab = { + revision = 68256; + shortdesc = "Spreadsheet features for LaTeX tabular environments"; + stripPrefix = 0; + sha512.run = "f808d82cde55b9b8fbe0cafe9f2e67acb19547e85f8d48965ecc6c8ea70302b9ebcf4097330707780fddaf1d9b2a2a12512fe4026a0d660c5a376fbcffdb6f19"; + sha512.doc = "a2b57066ab198d88be6736572276593cb2b31a9c6392f74c68358d39a8c88077266b2138730225b6ef54245a6f084aa73dad5bbd31a77fdd8b60f53f7342e25f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.52"; + }; + spverbatim = { + revision = 15878; + shortdesc = "Allow line breaks within \verb and verbatim output"; + stripPrefix = 0; + sha512.run = "0b26e941f77264ae2db7cdcf2c4459c26601f6079e0bad24a3ea0edbd22157c324bbf50426a794655dc1aee710092cd9b662bb401838186e42657fcef5c1121f"; + sha512.doc = "245825f18ae835b984eb6474b927a579f80b6c6feefbfe02a53f8b7ea5a48023e1bdb43b39f090afe4ae42937d053cbebfec6ff97d7732d754287401a95fc641"; + sha512.source = "23f8eb04b0debee1c9babc4ee6720740a4e64a28969365c27c96113cd777e0565b19d8f6db233470cc600733b1831463881d86eaf4b4119cf60bd3fbbf3d0597"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + sr-vorl = { + revision = 59333; + shortdesc = "Class for Springer books"; + stripPrefix = 0; + sha512.run = "8a9b0833bc518b12019d2d474a70760e3b44766751485215c746b8a7c3b9ee1f9e92a5cee09c5f961fe97387855627c6a385b7484564556e0901c08c922410dd"; + sha512.doc = "774c91361a95510a356fb7fbb70f753954d30d1ac309c1cf09727a2c9ea647b65f046d3eded8e631b512190f5705eab020abe8b7923ee9d6230c6c9fd782dea5"; + sha512.source = "fafacdaf874ec094aea5451962c3c79584da5fdc1e0aec34b9965b9c8531d19538d362b68ff1d07073aaa3c24483214168b942b6b4e0391384c69c690620d9a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + srbook-mem = { + revision = 45818; + shortdesc = "Support for use of memoir in Serbian"; + stripPrefix = 0; + sha512.run = "5cae41da74957078b2b0ed38c9fa4186006f24abca804b879641b4bff5324950b1a59296c5733fcadd2ef05661ff1dba8cd7d9a2c5f9e2a5c6bc1e6d993ff218"; + sha512.doc = "5e06fb85b3398cc65372fc0c82eaae3d807c6c908eedbfa8f4ea593ea6213790c3fe9c5142990a9b7d4c267ed01cd61aef4fb950a0c2b51424b0ef5e1f2aa520"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + srbtiks = { + revision = 63308; + shortdesc = "Font STIX2 for Serbian and Macedonian"; + stripPrefix = 0; + fontMaps = [ "Map srbtiks.map" ]; + sha512.run = "7caf4046990b6708f753ffe9eda73f564fd1d18a97fbb78d72fc0db72e0b8a2af2974e6348ab2f62973805398581c7bacf6b9937fcfffb33057cc3586e4de6cf"; + sha512.doc = "1b393eddee48395dcd94889c3e5d530c9c4ec736e41f901bf6a66ebb9d4929f363407d026ac9824ae82c852823e9f4d87a618ab4aaa0cc25247c3be03ec00f31"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.0"; + }; + srcltx = { + revision = 15878; + shortdesc = "Jump between DVI and TeX files"; + stripPrefix = 0; + sha512.run = "2edad3f8b56fafc034d94a3e3240190a8f4f1a1054c9b81d6dd9fa5426abaec0b29118f7bbec909ffc3534693b8941fd4e44b6670d7dbcb852fa3a056ba63fad"; + sha512.doc = "1f8428bccf142790a3221d470fb66dcfba40552da0d8aeb9cab62732c5a5ee0af3a565774e29822ebcf0c1e4d7a2bfffc61a0944b762ffbb7ff4e8901a61ab48"; + sha512.source = "497aa5f6bd5dcbb354a4abf74bf8276898148f42083a0657ac9dfeb4374038b4f8003b3ace3b4d65b2a08334c1cccafda371e8546def7e44f823212c257d42a3"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.6"; + }; + srcredact = { + revision = 38710; + shortdesc = "A tool for redacting sources"; + sha512.run = "9e11ed88fbbfc0130f43fdecd8fb0b3eecbdf50eb33bdca57bd34c860cdfe84dcd560371efba4cb261e65aaf4577306f478d1c43ed89152e7e21fd627eb7328d"; + sha512.doc = "dba9916acf75e800af1e581b4276e82bfe4c421a500a400773354766b37849568c1f19752a75983374ca41f793903f9776423888215f00376db1e0f5f3b3dbbc"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.0"; + }; + srcredact.binfiles = [ "srcredact" ]; + srdp-mathematik = { + revision = 69288; + shortdesc = "Typeset Austrian SRDP in mathematics"; + stripPrefix = 0; + sha512.run = "168efb5c07ead0dc00c318928d717b2840e162517486ce1351412d7cf5f5cb8807d8016799510c6db48210fe517485fc344eec8f3edafa587cc55d1e6e60a005"; + sha512.doc = "318b530ec453df35135ea57a514574f71c83fca3f63c85e36405ed20f84a2438951325d9a30bb9c5abf2dbfcb5b2829811720b7031a68b2ecf9d19170e4ec235"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12.2"; + }; + sseq = { + revision = 31585; + shortdesc = "Typesetting spectral sequence charts"; + stripPrefix = 0; + sha512.run = "25d3d2af859d8ce83f7449470be02bc4bc77b8ac49c4e10f49fdca51b0a85488f01cbf5f826b07fba12806c932125a35197be2c7bcc330f9b6f51a331fbc77c6"; + sha512.doc = "3b5516fa412aa19fe8f3d23706b3046b6af698e8307db32cb895fb13eb876032c5c3fc908a69f0e18efc2ac5802a95957246d58248dd05e1fe25409d46a8bd20"; + sha512.source = "b86247430a144ef73ce271b904096368291a6581de3e1c7627d38751c102256e77d82963d86956d9a9dc8e2fa16aa6b8b0a15dd02b4468cda88f70b19e856711"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01"; + }; + sslides = { + revision = 32293; + shortdesc = "Slides with headers and footers"; + stripPrefix = 0; + sha512.run = "5809b9968b16d35d5f76f185687c683512883942f8ff3537a7dafef3a76e5fb017a4bed36dfd102fb5edb93648148861c78f6f7e93aaea8c5cbc8113c05278a7"; + sha512.doc = "4a0fde19b43390f80d6d671933ba51b0be854d774d6f35f3e8fb33653ef7784df85871dc4fdec03f2c734e819af6c1098e8be152e0bd42740ec2f4ae53c38f4a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + stack = { + revision = 15878; + shortdesc = "Tools to define and use stacks"; + stripPrefix = 0; + sha512.run = "897ca71e1a8531485d9807743e4549a994f5e6e22dbb9a958466d4bfc7fb1b4579af0d7ef701146b8142c394fcbfca70bfdf28779530e487a0ec868c77985c23"; + sha512.source = "d10c0b9555df5643d266cfcbc51970cb7d606c80053225e4c3891b49f59fd9831c89f8be97d41e3e70b8855defb2af709190631e71a470a061959486162d5ed1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + stackengine = { + revision = 60019; + shortdesc = "Highly customised stacking of objects, insets, baseline changes, etc"; + stripPrefix = 0; + deps = [ "listofitems" ]; + sha512.run = "15327eda5a6eda2b58055efc419ef50b8d8cf8c35283bcc41ee85e354f61ede6efeabf5e75bbb4cd022b95e52109bce1ee2e28fc701c5940723f3b15dd44c75a"; + sha512.doc = "a0edeaed3766af88d1c5e0508fd285382850bfd072cf4f6fdc1c329c8ca9f5e1eb5fe75357d9a86dd8b2476381747c9a3f7cd7dad0d7c32419bef0d37849928b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.11"; + }; + stage = { + revision = 62929; + shortdesc = "A LaTeX class for stage plays"; + stripPrefix = 0; + sha512.run = "8472bc96265ea7fd3be748f147238b6852079ba002f9c7548f5a5e8cb0f34a8155a799635ee5e31b22bb30554795a6fd08e62312b25ce83e727e10f6ccd13f37"; + sha512.doc = "82df4a8fa154a09cd8231c21f3a450a089796306e8275b17291bfc903ef00b316a1ae0a4175637294ecbed0dd6eeffa7baf134d60352284aa07e0a1a0224c205"; + sha512.source = "82255aaf0407da34f219f220deb5b12edd5dea55f168a4ae11a5bc5fbc6144fb45d7e79a4d9562405f838955e72efc3a5533269f05b493a48027bd35713ddd65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + standalone = { + revision = 64677; + shortdesc = "Compile TeX pictures stand-alone or as part of a document"; + stripPrefix = 0; + deps = [ + "adjustbox" + "currfile" + "filemod" + "gincltex" + "xkeyval" + ]; + sha512.run = "8e74a676232ffe9fbe93ee3a1095c0c29cd65bd23f8e4602308d8fc1abfde9025c01e8ba379782d4c79d3349b4298806419735c624436a7b0c93e2170c592efb"; + sha512.doc = "358fb3b29f4c2d37d03b7d98ee02b35ff8571ffaf30b8d3fa1a9b0f74965ca4b0bcbf2a7172b8771dd3f1240c7dad1acccc7710dad302411dc43a301149597cd"; + sha512.source = "a29880dfca00e77b19ee828333c72f7c95a26470b8edd5ecea53bae3300868266ad4aa0db2bc6e16f72c14493b43659434ef4880b025b5bccad3305d0ea18b33"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3b"; + }; + stanli = { + revision = 54512; + shortdesc = "TikZ Library for Structural Analysis"; + stripPrefix = 0; + sha512.run = "2273ba6dc99762490a0cd7af09edd5c4a511ace7317e62874535946bafa69c14f02663afa21fbc54753d1b5d3884858ae93e4790de7dfe4a829e4cc4ecf4e004"; + sha512.doc = "e4405c8903478ad2b8a5c524666e2fd4aa99dc34dae2d15ace5de7ca4713a6964467f18d4ae2b73c02316bc7d0e51f12e82312544e2e44d50eb3e4ca51671ebc"; + hasRunfiles = true; + license = [ + "gpl1Only" + "lppl13c" + ]; + version = "3.0"; + }; + starfont = { + revision = 19982; + shortdesc = "The StarFont Sans astrological font"; + stripPrefix = 0; + fontMaps = [ "Map starfont.map" ]; + sha512.run = "1f45f97813f5e51b45e1cbd3246b877aad823895a4b087294d0754c560db5796d8b4f9d09972b5c90c4c569db82a2d70bd1c39a9dfe6e1fcc4e0deeceb44f876"; + sha512.doc = "def94e1e2995e20e282d9319f763ddbc5e152a48c18ba98ef4d168e69a9a6deb5d7d87923a3259553f990f2da73c78929858852c6165acf7a94a6010382f786b"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + starray = { + revision = 70604; + shortdesc = "A structured array (of properties) based on expl3"; + stripPrefix = 0; + sha512.run = "69d5bbdd999a47e4dd15d01b9b34bbf4bcede27dd60e19c7c10b4d85257ca38448b924e900c109d2d40e5ddc1b7a0e1b9abf76248a60d08c44805c1d1ac7d814"; + sha512.doc = "1fe545c98ee814c1f6955a1b75ffdab665cb18b071bc1c833c9a595983c15eaa211b990666768ce0e4eabb336ec11876ebc72141e3cf9aca2dd9d6686d5476ba"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.6"; + }; + startex = { + revision = 69742; + shortdesc = "An XML-inspired format for student use"; + stripPrefix = 0; + sha512.run = "65d5b1c2f5b49f3ceba1fab6021ea4445aec25f302145586331468d727a9cfd992e444b0e53f3aae132308492f15d8f76c5c18cdcb405d9d06dcef6a443a4e23"; + sha512.doc = "a4693b80da94c5644e85c43b93a73ca385097fd2b395856d497e5a138b54063d98d59a8957937d2e2e6ef8948f59d0b1cf74defe50de0b7c5c0fe3c1da83c9a6"; + sha512.source = "e3d11a95d9705f18241f2f31e2dd21bace280b82d9edb5de765f0970ea9367b2f502111222837c328486b68875b59828d73b718e9fcdbc4b5b5b16da4fa900a1"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.04"; + }; + statex = { + revision = 20306; + shortdesc = "Statistics style"; + stripPrefix = 0; + sha512.run = "66fb0e346ddd4902ac98a90fb7d0b0193d8c8166aa30774dca1f5b6007a3e19c3b98e25bbc88abc379e199720b6c9a2c73caabbc515db2a54b2a8b437c5b270a"; + sha512.doc = "9851bb7e2e9af03affa1f4b5750817543be9e985e02d06ca4908ee1ebcf0eea2b8d75a25cefdde3492efc52d86be5bde6fc2f6a99f935c183cf3fc9041ee0e25"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + statex2 = { + revision = 23961; + shortdesc = "Statistics style"; + stripPrefix = 0; + sha512.run = "dc823a25cdc70bac79c69e721feba69883a99e9e0a5b211398ff0682af4fe4bb1c4a7feeaecfc7c12d2df876b8aab6be0cb8868df8b8eaaa10850042615226a7"; + sha512.doc = "6f0b45577bd4383359dbeb592c3f9e3c1a66d1b2540cf6027ffaa20f8f644316cf2feb0e585f42801b43b529632efdea52fc2c83f2a6d9347cd443da27259646"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + statistics = { + revision = 67201; + shortdesc = "Compute and typeset statistics tables and graphics"; + stripPrefix = 0; + sha512.run = "dc3e9516f7bec533adae533d73583871101f26a42a96e6e0afc99f57b2d11797c1850113630b128ead90997fcbacca1bdfc17ed70d4854756cb3a14fa4133d99"; + sha512.doc = "239231ce3eb6e75450e4eabd722a6fe2149e7825236c2d028a0923ad53ac4bfc2296a5d4d8f80b70bc24276f77f9b6b79f2e33debc03106b5915cacceb4d7040"; + sha512.source = "a35c628209828b5c595dbab9596a3e25255dd1d61986c8108125e45bbbef7806b9204791d59ee23ced7c486f0a39271b15f0bb6914f06cca379ee6072f31cf97"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.2"; + }; + statistik = { + revision = 20334; + shortdesc = "Store statistics of a document"; + stripPrefix = 0; + sha512.run = "2d2455227b5db15235763c4fa677b549380d66f2485d1d53c2c607f96bb4b4a176ae9868419351f691f3efc3117e6e54be3317040f2a6f8d1d105cb86709f86a"; + sha512.doc = "88b28820b5d2a4a304c26658e27da7d673bf430a6be3ddf46f5eb3103abb7e8d20b03e30b65b88583960f9cf3dbebb9088330621b99e1eb9f2f28c0684638240"; + sha512.source = "d37bf82f0830e14c500af27146a1ae1a80bf4aee3bb272429c7c2351366e2fdb51b7ba16ab6459b7cbb8abe2d37870b7bcb3fa43582e588c7cbbb889ac1e3859"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.03"; + }; + statmath = { + revision = 46925; + shortdesc = "A LaTeX package for simple use of statistical notation"; + stripPrefix = 0; + sha512.run = "128532a808c4f8cae9ad03d19d9f70673427f9335d298d4840776ecf59a78b0051de64093f00510ef34c61d3e2ab900d4494f800eff8183a4c8451bf90a1424f"; + sha512.doc = "14754afa159041c359c85d31d8cf3483789b02a7057f59f6772455ff7dfbaaf81e793db3bbdb8d1a67e25de7a00f32c22089e2cc908cb1c2e0abf6a17eceb7fc"; + sha512.source = "67329fcd533335927638057bdafd76c3db6e49abbc23c63027623397ab35450ba811acf61c5b3ef299077cc92a14df3f0d66076a8f8a2d009ef9e4828ebb533e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + staves = { + revision = 15878; + shortdesc = "Typeset Icelandic staves and runic letters"; + stripPrefix = 0; + fontMaps = [ "Map icelandic.map" ]; + sha512.run = "f6a1aea97a3293ffb514ccc526faa71ea5ea3ab32990da8725cc3ff998d15a2909001976d9705ba13110fbde869001bec2f286e58c05f1fe31f345ecd5882482"; + sha512.doc = "b839484325cc6d06a407ea685dd705b3616d1e87f22d4a625c20dbc507647b602417a085328f9ba886766ee0fca2516da397c742198569477bc1009271a4db23"; + sha512.source = "9dbe40efcd1699cc9267b739bc1b182fc0e5dc23ae52d19ea89c1742b815e4ea9b7612e4fb80aeb83f3d9206ab408cb0ca3fcb99c85883fb86f89f3ac26f0b5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + stdclsdv = { + revision = 15878; + shortdesc = "Provide sectioning information for package writers"; + stripPrefix = 0; + sha512.run = "88d8abc04d10f029a9ce0fe9025497afe3eba3dcc300631fd37baa8174bdec8dff44fbde07599ac8dd6635be27294c359c77178690a4e6c97f41d15f9d2abbd4"; + sha512.doc = "8321d823ffa159071f66d87d38fa38ba3af03f6c69999a041d765f0fda8549547da4b8eae86efce82109679284dd912f2c5494b5ef6e76c73c467cf4eb87aa2b"; + sha512.source = "4a9987bcbb557b7923c6c2a5c58dd117fd7b56f58b3df55154514075b68bc59a8928fdfe275dbf328ab2bd5b6608b193ad5ff07b95e7bfd2d79eb632837e5469"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + stdpage = { + revision = 15878; + shortdesc = "Standard pages with n lines of at most m characters each"; + stripPrefix = 0; + sha512.run = "a3835f211b744dd88e0238a01f0a5f960305f7eb92bbd9e3437474971173e66c84cbee1d5ab3f1aa1097a262a258b79085fd0d86884bcf3acc4017e7885968cc"; + sha512.doc = "77510670a49db00b185e6b502d07bd85f9ca18bedeed86277c7d51abb582f40c793c665f2ab87435e90380f7f6f740b64c937d2171531a419ccc59bed197b90f"; + sha512.source = "2973110831807b73409be0082c5aa281b176dbe7174b736cb9703b0c75ee918d1135fdf0513bca5dc48bb996d0067c9201702b76212eb632073f9b0a17b00d55"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "0.6"; + }; + stealcaps = { + revision = 64967; + shortdesc = "\"Steal\" small capitals"; + stripPrefix = 0; + sha512.run = "483580c347831e7623c75dd087fd6ce57f3af84d0bc28afb5a95f5193ac4e4594f8d9b6a45b8b62e988519208510e0acc7e32f720df3e1f90065e90d06b33900"; + sha512.doc = "3fea8ed1b6a50a2f5a95da2d9d65e26688886b55bad60e71404af7fb8d83664383e3e0b19cf3e52433ddad75da57a99abd16b6b40a89d620464b5cc4a64347fa"; + sha512.source = "7dbbb83039cd65e127705d7512cdc4bd4aedbce7837bee7f0372070aed8373dffd4fa0087c34707c0d5c18d3afc72e597e6514d82d390fa3e3ac1c308a1bb637"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + steinmetz = { + revision = 15878; + shortdesc = "Print Steinmetz notation"; + stripPrefix = 0; + sha512.run = "8ff095645447f9349d2b35ab5ccde72109eddcd85ad3c9de262833320ffcbe94c2fb08df5323c69fc64cdf173ee7193ce2ce887f1c033997455a33f290cf1884"; + sha512.doc = "e409db74c366c5f49011a6e21355150e3e97d16c1e3a7fcbf06cc8aa0db2c01288dfc60b3c79e539936077e452c40dd601490be8976c57d01f9a5a88a3798093"; + sha512.source = "c18fde06e32eb4155921bdd7e4dca7ca108139859545c638f562f82deb6feec904a53870c929482504ddf28858ce5ad3c5abf4148b3bfec0193f260af432ebe9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + stellenbosch = { + revision = 68039; + shortdesc = "Stellenbosch thesis bundle (legacy version)"; + stripPrefix = 0; + sha512.run = "8e368dbba7713051fd9a834223848a2dbce700d9ea8cfa2ccd04a3f2e88cb15d5ab1d881d4107dedc72bfe4e6876e5b7bfbd019cbf5d9d7fa152f4e6343b5aba"; + sha512.doc = "0996a6932b4a6953cac70299ee655349f6b7723b416e3fef10934de92844de2dc4da42dc5d3c3a3939edb0cca087c2fd28b0d222641197593e9697891891da20"; + sha512.source = "c1b4c3ac30f5f923a3b0893f4921fed69d99a0fd07f6de7cc728c7e95a2250c1544a5f60ec8331ca912dd5204f273c147492559ce08f6233fd509076db116d0d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "11a"; + }; + stellenbosch-2 = { + revision = 68183; + shortdesc = "Stellenbosch University thesis bundle"; + stripPrefix = 0; + sha512.run = "ff82ad0faba3b5742d1f31d22820cb4998e88630067dbfbdaa7bc01fe4927fc0d8f10afa1713551759048a9166bc6d86cf52561f72bb743197b7e5fbf911cecf"; + sha512.doc = "9314fac0288fcd9e0e6040b3fe3276d52848693d33dba16af0b2e6f4bb79a2ea3258dd29e5b62bd90b25d8a02e9cf160833750b0aa99b8d09acefb6c8727bad6"; + sha512.source = "bceed8029e35a4491999fa92d6fd046862895e4214f83fff06fad39cd82105d8c494d78d6a449c374ad678aaf727284e6367ab9136e106dc4266afbf1f01b367"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "2.0"; + }; + step = { + revision = 57307; + shortdesc = "A free Times-like font"; + stripPrefix = 0; + fontMaps = [ "Map STEP.map" ]; + sha512.run = "d1f19415ceeefb879a3b4017fa286e5e5806e193fc75159b515fe21a9a6093c6a95d04e2e2e3c7ee457edb8ad717b88043c58727fb3924cb192e05aec12c5c07"; + sha512.doc = "bbf49f36bf7588c83e237d58d49ff7453c368cbe7e3a32c431944a2249c0dd75c2c1081d10bc2279e0836384602268ad163ffa3eb7108cd28a6c510a18f001c5"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.0.5"; + }; + stepgreek = { + revision = 57074; + shortdesc = "A free Times/Elsevier-style Greek font"; + stripPrefix = 0; + fontMaps = [ "Map STEPGreekTest.map" ]; + sha512.run = "c322bb089a887b36c4008502160f0970ff2ca33f05391010adc38c12726b2079085bb1775934597fa1758effee14eda76647b886644971e7c40a451154e446f9"; + sha512.doc = "c3f4c2b1ea06a012ba4d5f5ca72faa0a6c1b4ae5c132b17bda0b6bb895f34e555724f93cd791fad8c6ff846027dbedd723f874ae1e772de95c64bf54f5fa0265"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "3.0b1"; + }; + stex = { + revision = 68569; + shortdesc = "An infrastructure for semantic preloading of LaTeX documents"; + stripPrefix = 0; + sha512.run = "dd17faf11269dc6dc5e6068bb956a36b2af86775e296b15110d0c9b6e1e8b8410b936deb690c7a89d604c012b5643849e8abd317ca67cd872469f863511deeb4"; + sha512.doc = "0a8571fab8eaefb365c52cdcca251f2582d4581f6243e678db90c2c05789cf55ae077ba3216a9318a1bacc172b259ec444b35d8de1622435d4a02b5611d141c9"; + sha512.source = "6efe24e0933790ad7c3477e9c1d25c37b585ed0e18ca937326102783362691d92b51486885a3d08c1581110a2e4e9f7182f706ae4896c70f69472e01ef1ddea2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4.0"; + }; + stickstoo = { + revision = 60793; + shortdesc = "A reworking of STIX2"; + stripPrefix = 0; + fontMaps = [ "Map SticksTooText.map" ]; + sha512.run = "aa2ede628a273b4fc0796153d243bf89dce6d3c1b0097b29327bf21836340d11f6e6368f312d76ff726030c05d012c3890f86277ac7eef79d5c5ca579f47cea7"; + sha512.doc = "e1437dd3b47c8799b4a8a60fcfc215a303f1eb289e0424e51d29fad78c9fb4cc4890896baa77251681d000f2eb08365f9f16a2fbc1c37881b852790257432088"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.035"; + }; + stix = { + revision = 54512; + shortdesc = "OpenType Unicode maths fonts"; + stripPrefix = 0; + fontMaps = [ "Map stix.map" ]; + sha512.run = "7e639f7a534e24afd9d009e224d87c9c2a502cbc77ff882c6dcc9ca0bff512f849d1f3e658dff8badab3843a658171b88ab66d8e731392dc456f9c5f4e032318"; + sha512.doc = "b01c3dfaa96a6bbcaa83e803514c8090546dcdd54595d7c66a1ac280286f5baa98947fe9d513da3d8baa1e83cdd174443751fc79c07cf66093af4e9044fd9010"; + sha512.source = "594af38fdb72d632c36cf6ae6165518553b10127281ef8a6ec71f4ced16481f2582a13f1f6f0ee98e900c3147c574647c508f7c9e51afdc57ce68614a394d007"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "1.1.3"; + }; + stix2-otf = { + revision = 58735; + shortdesc = "OpenType Unicode text and maths fonts"; + stripPrefix = 0; + sha512.run = "b966a7d18a471f13b5eb85115566ef4aa7c894b142561a46144e5cda6a0198dfcd83b776d19d605cffe482d07a4ac9d80acde7879892381e1a266e7af4f9f72e"; + sha512.doc = "15e370d490eb01022877ce01cb8e9954af89553bd0cb2b404820c8744271d13ea32c75d2971abed4cc64a692184fb0fe369bc97bf870524599b2011fec3bfec2"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "2.12"; + }; + stix2-type1 = { + revision = 57448; + shortdesc = "Type1 versions of the STIX Two OpenType fonts"; + stripPrefix = 0; + fontMaps = [ "Map stix2.map" ]; + sha512.run = "802ea99ccb3b8e2e727537113843846dd6629f722508219be88cddd9e7f1e6f67a1bf48ae3a61c51991ec91ba5c543467d3aaba64116e4be08707def58c70f34"; + sha512.doc = "b4f1e6e8962fd77ecaf0df94b156783d9f77c07231e6cc258e04c26a8190dcd0a3175c71bd3a1187ad6cc083595ee80925712f12e0f838c474ac93701b47401e"; + sha512.source = "5963bee636210eb89d31ea8d5954468fe9959429d516fb988c8ceab3c591f53b47a5a77df8f10d8e20f136adbf2fe23f546fa62b1768db7164ed74fcf706a228"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "2.0.2"; + }; + stmaryrd = { + revision = 22027; + shortdesc = "St Mary Road symbols for theoretical computer science"; + stripPrefix = 0; + fontMaps = [ "MixedMap stmaryrd.map" ]; + sha512.run = "8abe58b84fff2f4fd6846b6c267f3b245fb1dfc2f38d0db54ce7cd9d456abd07627247613073f09dcf7e11e3e9c5940d8ff657327232ce638abc6babcc5b3d77"; + sha512.doc = "caf883d1c5021b52d6471c4c2145e708ac3c05c8944eaae621a3ea7b602b683ba2ef2bc0052f9caf67adc1415e7db02b5b55d3642ed82727a926ec193dd984f4"; + sha512.source = "ebefe2836daed0dd4db99517af0f40c73f0a7b19453d5415c80ae6cf723f4ec4e4ae6f9700a21722b4c0d9b8507c58a596697017893716111b46222f54676aa2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + storebox = { + revision = 64967; + shortdesc = "Storing information for reuse"; + stripPrefix = 0; + sha512.run = "8f414a7bef1e3b2be8c526e67dcec5a5878430891323ad5c4820e0b304fde35e9eb8ca69e2d1c6dca623387220114f7371ff54d2ba4297b8e7d923354d6e5ea5"; + sha512.doc = "09b0b2914d8cd87b6cf070d012a5e9581a399cdee4cf73e38b5f53dae613b3957a8fb8e0a2df6ec2953038ca984e3800b7ebe839ca01af556c655ec5e27f3065"; + sha512.source = "a48bd8d8d3fcca367265706cccf14e5b8e90a9d74528754ce96436ac1925457a78e5d1fbd73a6ebae998121b6da27595b573f15a46c573f1aae06168e0100836"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + storecmd = { + revision = 24431; + shortdesc = "Store the name of a defined command in a container"; + stripPrefix = 0; + sha512.run = "1987e3cffafe007d9f3cb9e0d53fcc648eca40140f5188dcb0202a0916296651c1ab02fc589339fc51999b56bfa4a06b29701aa598ec03f51d7b1ee66ecfde7f"; + sha512.doc = "feacd83403672380cc2cfe90ada2704f98bef63e905740f8f8d50767f86ddf95478efc38fb38fccadad172f27db56045f50a6af4a487f0c5cd2b6ebb5e7666f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.2"; + }; + strands = { + revision = 59906; + shortdesc = "Draw objects constructed from strands"; + stripPrefix = 0; + sha512.run = "bc902fcd06413468d2dd3f23aa774824602a910749bc2b2cc8d4c24decc184a088190422c0f2ea58995fe627f855f6fa6e0b5ad0490b1084fdd122abebb77cef"; + sha512.doc = "95cbfbe360a515fa94d0222eaaffc2cb5920a8a2f5b0ca0a052f29f7237b58214c8f39288d08db88e97ba0694f3ac6793c7c8c90d47295841e009db46b037b91"; + sha512.source = "7e95d4132e4d1c4bb319d3ae2f4ddb10b65ca7b30d2ba6942274e0169a8d69f39d7d552c7470adadf006ee0725bbc0862a1c1190f425643bba108542bd8e4b75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + stricttex = { + revision = 56320; + shortdesc = "Strictly balanced brackets and numbers in command names"; + stripPrefix = 0; + sha512.run = "5e823dde4f0b902f59327be2f41dabbe19f569d5d05941deda33b44664b736c9ec687e98a04635c6f2af2a0f894ad162bcc4b866e52b88e5db55228d4a35538a"; + sha512.doc = "9853efc6722d028c1ccbd90bdba2b4045c45b384e7fef1949ab51b7d2e6d29f1ea2c55c3a4a580a42faae9e03d38de258528af3e37c78f61ef8704798be5ccb4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2beta"; + }; + string-diagrams = { + revision = 67363; + shortdesc = "Create string diagrams with LaTeX and TikZ"; + stripPrefix = 0; + sha512.run = "9f05bf09bb74ab07ecf1a4e6aa1bb16db06961b1caf87c73f48fe33e8174081c38eab30b0249e219a936499a533d441b092e642c88a996193900fb0000708c35"; + sha512.doc = "3c692dbd5835abd3bb87cdc8b3abbfdcc63d233cd3275d92d5073772979349c759c391f254bab3f670d65ebb55b50b4d7024b748b538349428033971beb09bbc"; + sha512.source = "632a1fa22b3bef38b708169aecf1b9c3b9bdcf4cd07843a2b12893a996a98d41d397e3614e242d6021a385dde4e563aaa011e38400c216e76bf221548996d2cb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.1"; + }; + stringenc = { + revision = 52982; + shortdesc = "Converting a string between different encodings"; + stripPrefix = 0; + sha512.run = "a776ddb2378bea0880d7c17e1a87db5f66645c5856243e49de1c56bc427213098afbca34773a44ad955a0014b969c59454d3a0c0ec371d213481668f5f784ca4"; + sha512.doc = "a4f182559d37e45ca8b6c50656d2d520e3f0bf1ab63dc6477cd6e3abe6cbb5c4b89d779c380997b167019aae6fb12ae68d5fe37ea0c08945e3383f5d9905bf31"; + sha512.source = "3febbaa990eb691af640df745f36e289a7f2bfe6f52259d6693c6c9991d719e79edbd14b35c1eba5a9033b203531fceb4164303bd6a3dbab7238b814bdb5eda6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + stringstrings = { + revision = 57097; + shortdesc = "String manipulation for cosmetic and programming application"; + stripPrefix = 0; + sha512.run = "fbc29bbf65e7d4a1fd367b03490f73bf44349427f6c1a7e826135ee9092c9b592a4cf23454919e0bcc74dc59d3a6ad072dea16096e4850780ff295dc3caacc48"; + sha512.doc = "1779de4af914b69ab258bc1f69a807c12f750e5919936c78ace4496f86200bfc4c3146dffbb27ac5977c2e8d41ec8d0139cf2a2560ba7c627dacd70b34cc69ea"; + sha512.source = "94cf26d431d3638f769166c999e3dff156bd37e02a7099129f1259b7259be95896b694a64fea657aefce22f3a1e98ec2bbbf0f6f85171ccf977068ddafbb8078"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.24"; + }; + structmech = { + revision = 66724; + shortdesc = "A TikZ command set for structural mechanics drawings"; + stripPrefix = 0; + sha512.run = "a92eadf53e3bad0a1e54246b75b10c99d84dc509ea31cc9fb30ed5541e3d757afcb60aab7fbb7515be335a2caa2f29d7fc211b561f073e25a8a1cdbcf90d2d5f"; + sha512.doc = "e3ee8640eb6650f1cd18bc111d0e4f9b6e3a8cc8ac480bc05ae8251b0e620223aedbf59a54e16953edfd4faad8b05c78a51d5756f7b8660c612b5eaa32defeca"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.2"; + }; + struktex = { + revision = 47931; + shortdesc = "Draw Nassi-Shneiderman charts"; + stripPrefix = 0; + sha512.run = "3d81817eac5cc8b8bd468537406db6a26fecdaad1db269c2ceed582cae84fc2b549eaf527d4c356be7d4f2f16f9db4746251e9b69db0f0fc3cc8acd9f39d1f50"; + sha512.doc = "261a9f7ef5036bc8eebb87ba503b604b158647e82e88844758be506ac5d389103661f681689a836c0048529446bad0d6537a6fc6ba273dd2ed29abee40336360"; + sha512.source = "98b06394519aafc81a565c7b12fb1ad86856ca447cb5ccae14aacc95bded9663a72bea301e7f5998eb9cc2a6358c978881736e564c3672eef456c6c44efcce0c"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.3c-0-g7d3fc5b"; + }; + sttools = { + revision = 60736; + shortdesc = "Various macros"; + stripPrefix = 0; + sha512.run = "4e52219c4d3d668dd52d9a1e8e0de4f547871efb9f5515851b44e1c968cd564080c87c631d8cb53c76cdcfb8df884af0e9ea1492228929098a390b6184f5ed37"; + sha512.doc = "c07922c52f57ffeeb57a9bf3b444e251f01f859f2218933889112b86d9dadc5791d7d926091eb3a2753a6ebebe439bc7037ef857b6d19a1e6e7b516fe879f4d4"; + sha512.source = "65616cdefbe3d5b53f7f888412f8ada24860d33c2cd5babff26a3ae71c6c56a4d1a5eb5dd355d557c8fd947db82401746a4928a16587a88c3dfcc19f712f5e59"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + stubs = { + revision = 69128; + shortdesc = "Create tear-off stubs at the bottom of a page"; + stripPrefix = 0; + sha512.run = "fb8276d461883c289329a74f1ba3bba5e64acaf199f7739b013f32a4fd84ab5e2d94d73482a3b70c64e156ff9332b3c81bcfa74854edcf6cc3fd6ac89df595ac"; + sha512.doc = "b2822ecb49ccd9c707cf731490c628a75b278848dcec31283c782ba72a12da8e8b7282ddabe38939e5b0c01afdd222be6991618d4cf1b73a2e06b875fab4f82d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.1.1"; + }; + studenthandouts = { + revision = 43516; + shortdesc = "Management and styling of student handout projects"; + stripPrefix = 0; + sha512.run = "2a7d8cab28b58a26633fec5845498a2987763f61b896fb747d97521b569786f114d80979956a9b9c2b94b61f01677101248a1a4c1735415703398b57306b6c15"; + sha512.doc = "10e3ff558cd5c544d82a61bc67be8b7ed0c9ec9b01550bd3d1c9d3265d1de7153832983593c0be6f5a990d33063b065b397e4ab6b7ed12b0ea79e9e49e0a68f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + sty2dtx = { + revision = 64967; + shortdesc = "Create a .dtx file from a .sty file"; + sha512.run = "f95ad4f6260657ce329c10ae1306e5ec50965c2766c3c28f5a6dd77f4884637c36ecfae28b7853dfaf4e2e5bc256713abe4c8b3525e194fed1eccdd1ea24e1ac"; + sha512.doc = "1bc66506350b07341c8c4b858c6b1c637d9f0bf48323714ee7dedd701faf20e3cadb318f56bfb1a05f4fcaf84cdd6e9db18299801a69e0359937d7852ac6a824"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2.4"; + }; + sty2dtx.binfiles = [ "sty2dtx" ]; + styledcmd = { + revision = 70496; + shortdesc = "Handling multiple versions of user-defined macros"; + stripPrefix = 0; + sha512.run = "59af3b3ab6b045533167dfbecc3a0a124fb3f8098112ab9b80cf49a3c5c20323122a488019ec3079dc596029a38e45ba679c2448611a8f90108f8b2b59f5568f"; + sha512.doc = "0c096994a7027873f97ac1bc5f9ff1439b32cdc9b6255e4ab9fb955b8c4e60406b152a56c3a6dabc0f5bc41b26fb60ee0ba94e4d9c0202d93d5bd8f0e422ac7a"; + sha512.source = "cc8de429174607b5a27123c2c580a9cd35858fd988bf4458d7522984f8ce0d24223f9f31bfef41152190f1533ceab9d87dd8bad368446292d9b495161d228b00"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "2.0.1"; + }; + suanpan = { + revision = 15878; + shortdesc = "MetaPost macros for drawing Chinese and Japanese abaci"; + stripPrefix = 0; + sha512.run = "a9fd27694ea7491321580ee325f8b151bbcfcf6da14ecce85b6d4e68b09cdf125c810a5170aacc966835fad8f2aaefd78916920cc3e896cad7738d026450ed83"; + sha512.doc = "667d3c5590468170acfded106a2a468d9abe7b4b34a9b56d153d401a60e8f24bce99a4f6c5f2761572a42b85c7faae5741ee5b6f22c3f1004e6d6685463b9350"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + subdepth = { + revision = 15878; + shortdesc = "Unify maths subscript height"; + stripPrefix = 0; + sha512.run = "7328742873abc42d2b9916161ca43e339e03ac1fd34479e93d9eccc98a065e95cffbc920395dd6f90d90989d29840cbdf2ca87dd1d0b293dfae66abbdc6e2d3a"; + sha512.doc = "6bda8b822a4f1ac2a181ce34f739449bfb976a4450a54589e0cb4a64a0f1ff358a469fc88a37639104f731671ec474088968ab3dc95552a2d92a073d91857668"; + sha512.source = "6a63a2d62dbc47d41e78004792e5c9e6ae7b2f3c435e95bc9969bbce109293a8257d4913a5b1959d95163c9aaae557daad53e950c5313faafbd8fb8d0de2c367"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + subdocs = { + revision = 51480; + shortdesc = "Multifile documents"; + stripPrefix = 0; + sha512.run = "a38c6e9bad66582914ad4acdae213e37c2bd5658d5e16482a1700f5869762b489f85b61fdb70c04578319f2772c974267b7c9a4e302c34df87f3a01128caf949"; + sha512.doc = "46bde174536e96bb78ba40990ae3b4b8cc1fe2ef26803b193afe2fccfc05bdb6644a548a712522596786847a8fe6071a52599a17ea52134bbed2e5495bbc401e"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1"; + }; + subeqn = { + revision = 15878; + shortdesc = "Package for subequation numbering"; + stripPrefix = 0; + sha512.run = "7d04ceeb8f75cae074f9bff3e8d0aac4b529d199343c59fae7715d1023aebc3cbf2b45614e0d5ef0a95ff9bca4ff9e8318c4ddd86ceaec42d271f8c0f71282cb"; + sha512.doc = "09f902bf3b4c8e2e1f9d805102c170b2bf2f4de067cdd590b22fde6b58f4e3042d0b14d362e0af587f9fff9e2c8789bb8af4b329bbfd721ca7dce8af01612c50"; + sha512.source = "f1f7229f058a7dd80a67f18692fad36601015ad6bd7994775b573193d74c0ff7f175397ad446384cb74b3797f9f17605ce2d381327249ab9e36ae0aab756d09d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + subeqnarray = { + revision = 15878; + shortdesc = "Equation array with sub numbering"; + stripPrefix = 0; + sha512.run = "846d822661b903328ee7b199df6bd7fe5b606c13a185cbb6e6fcccf3b009f2b94396bfc3f9e4b8eb5052688536867dee06c6b9571e051d477415e1ac999fc162"; + sha512.doc = "9f47b8fb760b51a87ce5f9728e9ff76dbbc10ae009e04c9bc0c91133941e5b528e09e5034156b1dc5ff9a0c74446b548bb69c389486e68a4b8a79a7c9ed1a7f7"; + sha512.source = "f41086ca65c7821167acada640a11768da429158b4da7caa398db254be156dfb291281b1e2f4f4f58f04c0c8041c45efd2072ddc40db8673808b83b3ca09a93f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1c"; + }; + subfig = { + revision = 15878; + shortdesc = "Figures broken into subfigures"; + stripPrefix = 0; + sha512.run = "ec7ae149b99fecae3b4ee7cf600811dcec9bc44eac762b5480c6df48b725db3c08a87922edb7a524d7d2b748bf7d25482e155fd40080cea9ac62f2575bf61d15"; + sha512.doc = "8cb67139bc1063fc4d5482b51f1c3ad690c85d4f7e022a99059a7b20176bbdc97a44af23756fa220b3f7f7afdf039c4a7b672700012e96b98ee25ebb9e5c99b5"; + sha512.source = "44e7113550dcac4b14ddab03ad5ba4bc86cb3a4dcb14a31f73e5caf0b02f9f3bd56fd9d18ddae002a981e9680bc6fae5850ed07ee94e60d858647136cf9243eb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + subfigmat = { + revision = 20308; + shortdesc = "Automates layout when using the subfigure package"; + stripPrefix = 0; + sha512.run = "d607d2e79b3b0d6e99c8577daa577aa25a0a7d9aecc00c8b7026ef3a923b0e2815837d257599dcfdb1e5320305f492bf17845f5c6cd487b476e789c5140e01c3"; + sha512.doc = "6cfbc274a466796ed0478e9c43cf68d51bbf5379691ea6848968c48cabcfd54525075727463905e48b64946df9822cd10903c562a2f7d546b3d2cd2e9ef11db4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + subfigure = { + revision = 15878; + shortdesc = "Deprecated: Figures divided into subfigures"; + stripPrefix = 0; + sha512.run = "d4ca2ef4c52c84ddda85ee95328c9d3e97ef601db4f08ea508bc53393e3b2722224273ac63f749d6a922c7b42787e932d7f60ed3ceb03667fcf8fc591d4ac97f"; + sha512.doc = "46c2950db73fb557e81887f605b866827b6ae7e027a684f0d24cb3f9d5962a3d83aad97b84e61617381af8d0949057df17ef45d629e992e51c80bce3474cc742"; + sha512.source = "1295290b8c5cc814f6cbadc2be418413d35a0a1cfd313a69b05fc8e5e47ecf5da0cbba73b81f499f0085a55b7e783b9bd82b29ce1072792fa34e422596a117c7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1.5"; + }; + subfiles = { + revision = 56977; + shortdesc = "Individual typesetting of subfiles of a \"main\" document"; + stripPrefix = 0; + deps = [ "import" ]; + sha512.run = "8f842b0debcae3110f0a4b2f59047cd55c2726d128bf3e159f2745a4b8a645c3f8471fe218ca34c32f2b35d42d1c5023a25f09fc3bf0c1a4f0c33197776b1cec"; + sha512.doc = "f54f52c5cee01b7ae8e01bff5a4d828b5c6708c31f2cf40d7e83c8a91c4c597945695dd7062b6088d3f91f7a9858e3227c850d658ae7a7bf94392e00e3eaf9c7"; + sha512.source = "2623a0ec244722c1e3194d9ff1237305c1b7bf8c3baf6f60edd69b165bbd5ea83fb73ad23bf9aac1937b4ecf1059754e798eb2c97f7bab5d550fabbe84b752c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + subfloat = { + revision = 29349; + shortdesc = "Sub-numbering for figures and tables"; + stripPrefix = 0; + sha512.run = "d5bd48fe7634ef6deec540595fd23aea21d95d7c68d053bc65eeebc950e35064add73e5b81e92d3a3d4a4dc938448d9c9a27bd0f1a625e4a9f425d4e2d55f237"; + sha512.doc = "400b9b272e51cd9fa7370f1cf7cb354dc1235fc41d57fb07061dd08b44e06cfc17d38c1be3fd5bafb5ed6bd0404660c46c9bbbfd2fb852297f283be85424c088"; + sha512.source = "e72b55996a07665b1deb038c5924e7a71c7b7aea761a1420d4c38d64c1ee98b8663b4a996ae39a869cb12b6ef99efd09c989f937bee18f05a1eba57856dc686f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.14"; + }; + substances = { + revision = 40989; + shortdesc = "A database of chemicals"; + stripPrefix = 0; + sha512.run = "c7e3d72a506242b79e99c531bc550c81081d59c5a850af52ca3b86054a5eae42f9f1ac5c7808f54c404bee829f4cafaa1807c46ac7b994cd0f88ade1aec94c5a"; + sha512.doc = "b2900ddbd6f8618522db171c5fb8b35ce5e5ab6b51fde609a18e6b5656437709772dba683767ad23ce955463a869c483e5e3fe81e1f9b5f7523f4f0cdb87a4d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2a"; + }; + substr = { + revision = 16117; + shortdesc = "Deal with substrings in strings"; + stripPrefix = 0; + sha512.run = "979aaff088f7bd521e2af3f008fd6fb9dc908ec7c9f3963ab7b6338ece92b2a7eebbf9b4974ab87f73cc71ecf7ba92c25d22be8d1fdd297d066da72f61ad1d4f"; + sha512.doc = "97adaaa986a8540364cd6901448eb47bfbe9d53842f412100696621c55d2209807d0d527c8126d9df7b5b38b0ba2f0598e79a467934d9069fe96a2d9125b701f"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.2"; + }; + subsupscripts = { + revision = 16080; + shortdesc = "A range of sub- and superscript commands"; + stripPrefix = 0; + sha512.run = "a1578fb66e6068955c4aa69b8ccb951e79fe55616ceaac8d5f01b62d8c6e862d816e0e1ff6c387bad8b8416a3993699872b0ee3df4f432a733ded0eaa60424fe"; + sha512.doc = "b1424b69633b1c09fde52a38c2e50b6c744671292875688b295586bfcd340283c03a122c83298e8be9bf714201db35f0000c41720a6db49cc09591ae69a3d176"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + subtext = { + revision = 51273; + shortdesc = "Easy text-style subscripts in math mode"; + stripPrefix = 0; + sha512.run = "0ab32328d346bddddd37094ec086727222bd386bd24c1aa164aaa0cba85d60cf6be2aa26d64bd0bcf63f49b0188e79a7212e8b98d2d7400f828ccf10f60272f3"; + sha512.doc = "cd3fdf312f2bd7d30c3aee67309220e8e75d20ea69ffcb17106812f0423791dbeb26a8ddd3621cd48e6b3cab5c910083f49aa18b439d9f8114c08002cdf8826b"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1"; + }; + sudoku = { + revision = 67189; + shortdesc = "Create sudoku grids"; + stripPrefix = 0; + sha512.run = "0cd82916142b881bc4ea7fb9885de56d3ee724fee637eab5f1bc6bdc6891360680132cb2c3d52028cc0ea9670efdaa4666d59a853ac3f850f2642954962de22a"; + sha512.doc = "6b44d22aa120727f8a7a55adac7bf71eb1eb57ea1f33d597f06923bbb50d88c088d431f463951c3db27c2c1d68024b44992e47c83eddce98ffbda054cf98a4e1"; + sha512.source = "eda0ed193fba97a2f0ee2d435d62110acbc054ca486a580fcf0a79f3c094d6e83b4a5732fffaf237978abd566794ca6f3be56f70a34a4cac05c867e9213cf1dc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + sudokubundle = { + revision = 15878; + shortdesc = "A set of sudoku-related packages"; + stripPrefix = 0; + sha512.run = "da5c7954dda7fb8076d9b2fbd8a379e416a162ce0039a0566799bba0ddea975f3b951b7615cf50819440b46c419277a080b6e1c3c514e73483b4f81420a4b6d4"; + sha512.doc = "6878ae9a2734e5efb51f04fe24cc30546a2c812ccfd5ae62cbbbc94496a081b03f7d2bfcfa6c7edd610cd6eccd741c3dcc3441a6d437eea5f310865dd13d30f9"; + sha512.source = "00b0b27e9b97dcca17113d8f314480b2617d18603bf022631f6553f2b8a7c4e7d30e1718cfe4ce1ede7996d7ebe7905d25480c6516df4b3df65403346c050beb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + suftesi = { + revision = 68204; + shortdesc = "A document class for typesetting theses, books and articles"; + stripPrefix = 0; + sha512.run = "627d002ed932ed3f55382b50e4f19c2e98284602bf3095f352f1ad3120f2586b7ebf12653279a98c794e34b97829bf30bea4fbcd06c4657c94cec96be233b3b7"; + sha512.doc = "af2b5317858ab9d19723c668fc6af548fb4bac805cca26e7dac31872e54c35c768c228763681db34722f2a1c4222e2f1fa45e5263b183ddd51e848e643b7f47b"; + sha512.source = "298a0a6a4d627d662c4a8ca6dc7312238dd36dd546c768fc16402fa6f630a224884d8223c30b69abd4f28ae7a19d02870b01ca71608ff37dc548ec3d5f854c95"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2.1"; + }; + sugconf = { + revision = 58752; + shortdesc = "SAS(R) user group conference proceedings document class"; + stripPrefix = 0; + sha512.run = "db7082941e64a24fd7b04fd48dae2b78d67314f7483256278a8d8eceb5aeea77e24bea7e7ebb9e3742fed7cbb4add6a5d97281819ccf307b102b8265d00723f6"; + sha512.doc = "4a64c9ff5c9350b80601052093baf0d9ebddf24de17c9ded5cffb299b94cb6b4e6f0beb03c058b8a7a4c4f7cfea118cf8e95b797881ad9f77e879b228ecc2165"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + superiors = { + revision = 69387; + shortdesc = "Attach superior figures to a font family"; + stripPrefix = 0; + sha512.run = "50c352d7ee3b267ff3c25f93d5ad9d32a80f0f09cb8e802f6426e9d415ebfd8a54d3d07425c2908c75f328309e4d21173feb768c63e931658d151274ef6f953e"; + sha512.doc = "da35e722be66689020ec2052f4e096502ad63121fcb3a55ffdb724d1b557122a401e7bfa8c4c0ea2c6881b0138bd155b1e5baa7886c2e0c7d1b693e56c9e7dc6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + supertabular = { + revision = 53658; + shortdesc = "A multi-page tables package"; + stripPrefix = 0; + sha512.run = "68ff94c82b9986983b0a8b0c1e60301067aa20c92c2576e6d0a9b9060d4db48e2770334ae941b6b7fd1a4914098e2125f324e0d5284da52b523a7616552604be"; + sha512.doc = "0a36abcb782ea20b3c45d5c42a55fb41c04c3707c9c5b0166f90b7494032376d6756f827f1293cf998b56a84192aed36b6224e4abe14646557d130427f3bb63d"; + sha512.source = "1c84cbac59404c9f2e1adca379d24168ee4a7f1639110c3c8c5031a17025efb06608a9e8e703395727d1cc4ddb8de87932af14da71475e16d850b78fd5de0b52"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.1g"; + }; + suppose = { + revision = 59281; + shortdesc = "Abbreviate the word \"Suppose\""; + stripPrefix = 0; + sha512.run = "b78fab6e7784cec1ad8c44c0ea6b2dabf7aeed133ae5dbf9c8044a5fd8af8509b68a1fb615a8bc33459676e4eb6f6d13f097cd689c35acf37beca4750ee09c36"; + sha512.doc = "c59de255274f2a8fb961b57e4c59e7020f990b15a54ef008b251380b63d3564cfab7ce434a3782d3f467561557eca9884745e12f3886416967ad26b0a95b1f5a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.2"; + }; + susy = { + revision = 19440; + shortdesc = "Macros for SuperSymmetry-related work"; + stripPrefix = 0; + sha512.run = "406a172dfb787c833d8d71e74cde627fad5dc168a1be7a71c4d0006e2f0a6625738ec11f99c9215af6973b101e17abe8eb8355206bdaa18ab3fa6328d7ea42bd"; + sha512.doc = "f802ccdadb5ac2bd96ff27396b020798ac023889f751bc3a286392f62341ee6ac50486899f4e633b90b85320f1bbb679dfba98aa3746d01f0220f07cf65549f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + svg = { + revision = 57010; + shortdesc = "Include and extract SVG pictures in LaTeX documents"; + stripPrefix = 0; + sha512.run = "fd2c051969ea85b2e5c2818292128044038003456f8019efc3c6decb7e811f3eeeed6f3505cb661ee2b4768fa7715f5b3aff4583124d6cc99fef5c5f6a2fed77"; + sha512.doc = "84f35fd26786e57a8eea08af996d6edc93116529ab364e2b2e23ea6826748435d8487264438f7ff6b44b6d6975e0f18b1f27599e0e554b3d664055296e8fb0d7"; + sha512.source = "834958e4f8a0d8102ff88af0c499455c9bdcf61b0bd2795e25a07507c55ad6e7a5bcd131bbac48e463bd93b4bf49dee9aebe46a8999d75c24218a332814d5974"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.02k"; + }; + svg-inkscape = { + revision = 32199; + shortdesc = "How to include an SVG image in LaTeX using Inkscape"; + stripPrefix = 0; + sha512.run = "e1708206e6fe85271e729ee8c9bf952f45af662a54ad2e816b449fed263fefd8527529ea777b85a50f736d0ec7875afcb3059ed2ac81afd45c54ccdc687c3979"; + sha512.doc = "609d1a7d2256461a749c3a74ac5dffdb7efec999faa15315872f4e61884933cf47c380bfd8eba53de491494cb498a45ba263dc889fa0fd337c48f82842fa6bdd"; + license = [ "lppl13c" ]; + }; + svgcolor = { + revision = 15878; + shortdesc = "Define SVG named colours"; + stripPrefix = 0; + sha512.run = "617a880e8e94e781819a8ab3a169325e667a18afd83a10f070a56dd9f1813153d8f52cbc3322c264ee249c0e70080421a9e1debf844ecbc7ea6c2368a6ac67e2"; + sha512.doc = "02a28da03f72cd85f30f73282558bd3aa05a82318cc90f56af6ff8ae29e1f205d3c05553598b88ea13206b4d54f64ca36d5a6a8d6f8913e08c185c7bce6011ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + svn = { + revision = 15878; + shortdesc = "Typeset Subversion keywords"; + stripPrefix = 0; + sha512.run = "a64768b2c5931ba6b9e0b910d7bdc1473a7dbc01a70e41fbda46b4064ca1c41592f3d704496199e41ff27ac4d0ccfad56d9d89e536176010e35c1c8f56312454"; + sha512.doc = "123ce3eda16e4a1c44a85c6d2ef2bf4e5f6b9e9d939cf66eee52ad1326f06b35c457f4df054956dc16c169031909f2ea93aca380d2ba080f6049795a841dc34e"; + sha512.source = "0033fe1be2ede6984cbc0397c20187cc03520b5d893f7ae239bb688354d7198c4e96cfed09dcdffe7160769f6dafc9995d77f8f0f9def753048d4ecb8231ee69"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "43"; + }; + svn-multi = { + revision = 64967; + shortdesc = "Subversion keywords in multi-file LaTeX documents"; + sha512.run = "cb2b1c9a95445b1b2cae4b4f8b7d22a417c766b8158a229712a2ecf8b5b2c731c4c4ee348e626a734406487327d7e0288df458329d1231aaa9c63c1283636930"; + sha512.doc = "6fb5e19bc88ab89fb7363587121374f08ebac0d3bc2868e27c43a8deb986cb5b1e82a665adfa56810ff70a49104007b056aefbb3e55cb821e0039eef0bf941eb"; + sha512.source = "b50a0401ac6e0f056fc029ae78ffd8cd4e64bbf677b654c0462d1d160d8f4b2a2895594b8f591fe6aa4acab0c01aa5633af9d9f7a24fbd6f177d2a717cd0f2a4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4d"; + }; + svn-multi.binfiles = [ "svn-multi" ]; + svn-prov = { + revision = 64967; + shortdesc = "Subversion variants of \Provides... macros"; + stripPrefix = 0; + sha512.run = "319bd5de2870a3c8237aa5013f7807bf3c2c5ef7fa4618a400cd5ab60ec8cb88b94510b0129862c5d98a11e2241f9790f8c84473447df8e21cbe711d52268e98"; + sha512.doc = "01cfb48533e07065f477724efe4c3fcff13691da0393a0d8a9dc9cf4b5d3e3953ce233f8331c1e5857c2259ac6dd7e4859793bb194d750f35ecf3723dd7b4b0d"; + sha512.source = "1e0206e1506082c8ca5ece1e66b9c85650b986e92e5906a96e7156964f3004af2d008815f86c609eba48f02a0750403fa3860ef2a3bc14689140c8826cb3881b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1862"; + }; + svninfo = { + revision = 62157; + shortdesc = "Typeset Subversion keywords"; + stripPrefix = 0; + sha512.run = "ca2e0a3d0a5f4ab6950d5995b39f785ba071294134d947a47ca3e1f7e0bedc69398f9d0fc2162f349a635aa19ce8c963ec7c88d4bed2100d8f3da05219235655"; + sha512.doc = "aa4bd06d31bad0a2441623b80f52702d67fdef03912b6f96058f3a89d00f4601cc4bae76a24f49540169ad30883177d038ddc7dedabd8d643b59df5c94be4a65"; + sha512.source = "f9f65dcc56ae6b9cf2f5cd9dac27e3760f12428bee623e70018a767dbbf0b919178994349051893e52a04de75b8455b1c218b0f779f4a0ae4930480ba0ed24d1"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "0.7.4"; + }; + svrsymbols = { + revision = 50019; + shortdesc = "A font with symbols for use in physics texts"; + stripPrefix = 0; + fontMaps = [ "Map svrsymbols.map" ]; + sha512.run = "1fadd5259d527daf316502aae6072865b9c6e2efc1ab92f4bc0c3d1070ca4dd863b8f7366c9e6909b7885858c1745cd723003a9f4bd28e8208889da2c21f18d3"; + sha512.doc = "6ff7b9c1efa4b59c453b42fd37dc66e3c79912ff0bf9765b2745fd0cd946a4cfc4a063fc943d1b5919368f8a5809eef5cb7f3a4bf3b6cbdf8200f42180d21f92"; + sha512.source = "916ca0f14ff1b9ae99fc609c41fa655eef39bb053ad39274dbe43167dbeed06ebbb9990cde6c040fcbf9b432b4ff89651195df094aa9c35bc172e7932917148d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + swebib = { + revision = 15878; + shortdesc = "Swedish bibliography styles"; + stripPrefix = 0; + sha512.run = "c34174a73f2264bd0963bc6932f6ce840a84d3c48ec9aeae9f7f92ce25ce5f55dc2e4c05d1eaee54c18b4c0ef9adcf494310cdf0a3e1d73031910b75a6db30c8"; + sha512.doc = "a3db201554a0b828cfc72d47a22b777fd7b44b25c361a4d8f032cc62658780628e83f6eabfbf342b867fda335c1ddc228347f5fc66651193c8229e0bc6e46f67"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + swfigure = { + revision = 63255; + shortdesc = "Insert large images that do not fit into a single page"; + stripPrefix = 0; + sha512.run = "0cc77bbb379aca7561a6cff50be46dc43a1e064d6d4ea5f5b2115dc5907ceabb012d951c7dc5ee33bf0c8e824eb51a3eac54cd1b31e4dd974d226eb4bdb5ae52"; + sha512.doc = "64f3f91acb388322ab4ea30d4f0c65e029b1c32755e7769d7d4388d4971f518459106acbde1b4c4b0cd3d4796769289aecaac34be32383778d913cc628d9f57a"; + sha512.source = "02a5c33997f249a3f41065af3187516b27621c65f2b2ec82020b90b721221a2cc4c52e9b8ed65ae6d89559fbceb51da9f7eef00514bce7040822b280c3d6e505"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9.20"; + }; + swimgraf = { + revision = 25446; + shortdesc = "Graphical/textual representations of swimming performances"; + stripPrefix = 0; + sha512.run = "d4bd2097892db6467ae1c80032e4ff5f39e3da81f45ecf472d350297687609ff37b8498de9e44405ad9c7dd7b483599c844672233d289c6cc4ed1e2b9e2bb842"; + sha512.doc = "2394080a393e2a0cc8e8299dc4debbcc7548186a714454c87662c22a371308c7e8e6705c9dcbf6eca632f2f80788a733f9d5a9f3fddb2f46167fd50654c5bcdc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + swrule = { + revision = 54267; + shortdesc = "Lines thicker in the middle than at the ends"; + stripPrefix = 0; + sha512.run = "fbb2a8fd060e41340a876595310b54d069cf808d4e2eacba0d913732fe45a3cea698c1e6e229dd152666f7b509eca424d17378c74ad14edd0d5f08ec85c6c65a"; + hasRunfiles = true; + license = [ "free" ]; + }; + swungdash = { + revision = 64204; + shortdesc = "Typeset a swung dash in LaTeX"; + stripPrefix = 0; + sha512.run = "fbfef096e662d2987dd9e4989fad28a93387722b29bf7974e47cb3a5c13b535df63113cfab6883d2c3c98cfb4b3272ad1de6c961e2818dab5e59661ca5d14630"; + sha512.doc = "6bb0c45931d2d028d5b337b7295e5645fb709eee6c30c3cf3bc539c7142cd8fa4a9543ce70a54cec9b12e7cb565366df674da7b85d32a24839d8bdd0d1cdee10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + syllogism = { + revision = 15878; + shortdesc = "Typeset syllogisms in LaTeX"; + stripPrefix = 0; + sha512.run = "6f74e300794afa114da0f498bf70a389500bd2346bd0bd3d9ecf0f30d6167bfc9ea094024039775c649f5feeaa4b62384072ff26fc0c0fb426634912f440999a"; + sha512.doc = "1d2f3cfb453a4964b0e64a486a7c466731fec93e3a4210b216ebe9bc311923f055bbb903c26b5177c34a16a343e5f4e1a0643c7f6bf635dc0762182185f6e362"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + symbats3 = { + revision = 63833; + shortdesc = "Macros to use the Symbats3 dingbats fonts"; + stripPrefix = 0; + sha512.run = "bf967082ea372ad1c752b6f4bc4201c0617390f23517cfc00fd5fc802d6e728f4ef81c1787fa86bd4aac4f8adeff89127b6bf1615b70f4733bd8d5b203b8a033"; + sha512.doc = "e7a1a3f915000ad773f47a5529fc0aa97fa6dc2a56feefb8ae55815580301704a3c49eb7ae92b7f1248fd7115d7d55a54a6f2b38f05825be57b1e155ab8997ee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + symbol = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map usy.map" ]; + sha512.run = "1a2d3239cf7c9910b19db527d5c2b43af2b399114b3186505e790a139ae5ef82c2ff1ecd5adc858a46febaf2e46e028037ba65bd5b84fec0737edd89d5061c09"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + sympycalc = { + revision = 67087; + shortdesc = "Work with SymPy and PyLuaTeX"; + stripPrefix = 0; + sha512.run = "98c46fc7727bbb8fdda4038f56482d5fbf1c88e3e869b5865f45392dfbeb5be545f754e6ba109b55e66c96d6cf733ac97b472edbd38e3c21c2f937ac9136f19f"; + sha512.doc = "52d163772f25442b32a5ac240d15ab2d606e4907c79682cd37ff45389beb41fc2eaefec9b85d0736e3490d0f4cd1d60a42091cf24aba1ede8aded1cf7a786a0a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + sympytexpackage = { + revision = 57090; + shortdesc = "Include symbolic computation (using sympy) in documents"; + stripPrefix = 0; + sha512.run = "9a1fa177703dbed088861ff47e5b53f3c0f433abe15d471d181368c52e0cdae7350090ce5cb3c25d4ca816d1132eb009359977ada3f3c0b5c3b80bc0873f8110"; + sha512.doc = "0013c9c1e21f70e36e6b30f12d777f9f78b727ee1beb2f893133248fffb75f0bc4523c0787c0e292f197ce1c01b5f37b34c33ae97ed713bd900848657d803c59"; + sha512.source = "45df3251efd8a8e5669f72b83fc8c07c9df777ec90bdae9b8a92ff3c1875fe623574365f69162cc4c2f89e4fc7ea32dd1ac0ce164ee804799496be25466a12bc"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "0.3"; + }; + synctex = { + revision = 66203; + shortdesc = "engine-level feature synchronizing output and source"; + sha512.run = "cbe1f8c6d64619f742003c01566d55b675724f5d03681ad53dc1f58ff7314af88000ba25ea74e4fcfb07ece6160be6976ac8e69a9a1b524f223f5b80f350deb0"; + sha512.doc = "14e1f266182ee0be47a7b3841435f79594cdeb959245e6226520e81248691beeaa73f365c1112ef3bb4eacf4ca77e55265bd0d13c190858144bdc3064fa88a59"; + hasManpages = true; + }; + synctex.binfiles = [ "synctex" ]; + synproof = { + revision = 15878; + shortdesc = "Easy drawing of syntactic proofs"; + stripPrefix = 0; + sha512.run = "934235e8eb4ca51a906ca287c5524cc3b0b69c649b47a9fa0fc2c9fd664199eb6fce835d435e97e0b24bd0662ee68b8db471e3546c4bdb402bfcc19b1fd02c50"; + sha512.doc = "9a12fab29c7c0118bd97a7af1585ae97c5086e7a1e9529624b7fa43a723151e00537b9488a42628d7f6e93b87d092fe0dd18476c7d232e3ee74597186a92585b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + syntax = { + revision = 15878; + shortdesc = "Creation of syntax diagrams"; + stripPrefix = 0; + sha512.run = "be1e049a98cd7e45cec9675e707575107af9c613028012b8fbfa658c6c9cbbac5782d3a7111f37edc719fb90e7c168c9a98a3d30a4c997b6ac4ed0691fc7fdc3"; + sha512.doc = "7d0754c08081abc9867d0d40fc910ae5f8b34518004bf698dddc184f0b514d75a7feb3085870cf8322b3d6f3bc4c32ab50acdaeb56b574bf41604a18c23a6656"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + syntaxdi = { + revision = 56685; + shortdesc = "Create \"railroad\" syntax diagrams"; + stripPrefix = 0; + sha512.run = "79d5df672a25ed58919b7e054be992986edc8484348388d5eb318dfa99fc55ad3c452d6924c857c1bfb46361d59fe1d4e38cf84c9cfecd241f7d0c9d184f7995"; + sha512.doc = "a7c370c6b6c3877098e5cb216c4e82d382dfba0627de6abbca8f4e1bc6f94f53f11bac7456be213fa632d501dbabe910ef94680cb2cb20549c292ec5ffe79451"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.2"; + }; + syntrace = { + revision = 15878; + shortdesc = "Labels for tracing in a syntax tree"; + stripPrefix = 0; + sha512.run = "613c70859eb0c710c43fa4a62fe8b8d38a407ffe94c532d80927d00fd47c17b6570040f5d9ace5035f4dc53deef97419f52ecdf021ab11d5629445153b85ebd2"; + sha512.doc = "0349aba5e1455a6676cda43c7981677cfadf77b9898a79d90104808e77cd351f219392a91f83b670f7f1801babf53854f8719c32b8da112fde849b7b120e2327"; + sha512.source = "a6b5e08c1eae9b6c631f2d2316bf0d2afba452be7f8aed0d6f9724dedc7d50785ef09e1f29986d2cf869988e3b5c59332cd2b44d185b298e59333131413314f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + synttree = { + revision = 16252; + shortdesc = "Typeset syntactic trees"; + stripPrefix = 0; + sha512.run = "3fa23536373a41957d985e5a0aac744473459d195c1e7e00e60f2b4aeab15d8f150bc76fab05068d5ae4994ce52ba4dc35380ab042cc9917a23962b2f0a7094a"; + sha512.doc = "164c74dfacdb0cafab112d270b15ad0b7c58be0e8d65c5ce08f80182971b63026584c5c071988d9b7053f99b9d81c893f8b103a3145f1128ffad880259a16264"; + sha512.source = "3fcb8ccf6da19cb01f6a80f97bf98a84c86ca7d06a95b193cbb4b33968c80cd842554ab8d5a9127af0434b9abc83f2cbff428bf1bb976fba01e56d5770f6e20d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.2"; + }; + systeme = { + revision = 66655; + shortdesc = "Format systems of equations"; + stripPrefix = 0; + sha512.run = "ed93847bd9d5b9158026e364d98f7102e4040d19f8fe198565b8e6a9573ba1796a89b69f76dae76c40acd9ac96392aa75d2ccc006f8419b699f8f4c7b35c737a"; + sha512.doc = "97bc9240c34251e6b3cf0fe53fb5c5914e0bfc2cf852ca70aaa72213ac9e5ac7d55738f63e73aa8ebc4e320a3874b3ec84c3a0465b188c2fa263648306faeaee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.34"; + }; + t-angles = { + revision = 15878; + shortdesc = "Draw tangles, trees, Hopf algebra operations and other pictures"; + stripPrefix = 0; + sha512.run = "dae9953288c0067e233ca26d2d5e7ea32207790eb16bcff2f0f56180dd9a65e70c234de48652d053a858ec92940c3c5fea10c699c697b65a249a8c84fa050b71"; + sha512.doc = "32dc9adfda93bee5e61eb062e6970f6e093a09016a6ddf32f82d110b7717916fcc92f961c8be682958d1f3f345e02ad49cde4a85ad4a0d0add08a0bc80109d8f"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + t1utils = { + revision = 57972; + shortdesc = "Simple Type 1 font manipulation programs"; + sha512.run = "9065b22ec60747b603c758c3bae67ff06759ebf97c979028ac940a1b773e3a20f5f249a4a61b7564038dcda3c72ef635315e64a3b8692501cc8f6c30ff7fa989"; + sha512.doc = "34eacd2f14282108ba41d49cc68c066e12383c4873c9cb8a2389300f9c5685b3f3d7d0626e33008d28c229f8311daf2404b2bfa164fa550184f1e856163ab386"; + hasManpages = true; + license = [ "publicDomain" ]; + }; + t1utils.binfiles = [ + "t1ascii" + "t1asm" + "t1binary" + "t1disasm" + "t1mac" + "t1unmac" ]; - sha512.run = "2d603ccfa92e8ef9abe91f5afaf490c7c8476061679f7a54c22879bb90b4d874f9e0e533e25aafb94fee2ff512f689ec96d25ed7ed42d0ae90c5e05985daadeb"; - sha512.doc = "f9c35379b396dfb563c66a05d200c405f03de96e22ec94de3a9f0c99ada057db21d31b43d59391bc0175479b5f150435f8e704fa40f6b58f2c116bbda3ec4603"; - hasRunfiles = true; - license = [ "free" ]; -}; -wallcalendar = { - revision = 45568; - shortdesc = "A wall calendar class with custom layouts"; - stripPrefix = 0; - sha512.run = "43a682e78a3a80784180dfd84627e5584af9199bef965bb5551b203df7f939512d4307c450ed1ee55caab611154c1511fc339831da2907527c06ab738350e05a"; - sha512.doc = "e4816b91f08a26e99b03892b3d70f4d81110e476461dec505225335d46955f9f3790d883faf19afa4d7a31ff05afac4fea870e37299f45827c5a8155d4bbaf4c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3.1"; -}; -wallpaper = { - revision = 15878; - shortdesc = "Easy addition of wallpapers (background images) to LaTeX documents, including tiling"; - stripPrefix = 0; - sha512.run = "45647b8f8ebab9706437be2ce63f3506638fcc794839ff366210db4c35a3e16b2a39127fcacd0d97df356180770b6808e80e63ea1a50e69fc591cc0992e1787b"; - sha512.doc = "46b890e0ea7bbfb3c3421f79338f5140a105bb90cbe712477e2dc956f834682f6d137e39492437d8f206fefaf07086cab7f3cdd6c27dc7136df54c5ba850b4a3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.10"; -}; -wargame = { - revision = 69692; - shortdesc = "A LaTeX package to prepare hex'n'counter wargames"; - stripPrefix = 0; - sha512.run = "8302254134c342db781f4bfdfafd92dd3484e2a0e91dca2bf43113665bc3c44c0bf50637bb702f33fe243108bf1902283059a923e64bacdcdf7c9a5bfecc8836"; - sha512.doc = "dc1a5d8ce42661ebe5f0bf9cdba69ae66f8fe592bc48c8036ed60cd75b07a84e18c5d92fa4c4730155c5858f7ade450d59934db4e55a6ddc6a3d93ea0c78a0ef"; - sha512.source = "c7a04ae48a204f6e4c3819f8f4781ba65f4a71c72e011e4aa83680818f35bdf1b5cf57f92e58ad7eca366a677f2101d1c58e362869156c61d53e0028f250ef9f"; - hasRunfiles = true; - license = [ "cc-by-sa-40" ]; - version = "0.6"; -}; -warning = { - revision = 66616; - shortdesc = "Global warnings at the end of the logfile"; - stripPrefix = 0; - sha512.run = "443a02ce9aa004379aac94091c4f3014042cf2826d12bcffaa92f24ebd3a023ef314d05aec00947db74175e03e432fb80b7060b51c4fc310d14c15ac86606abe"; - sha512.doc = "561c4aa05df7143f68067d22b337f1754482c40eb851356f70887dab86b3944116f2e7d9f3a83e4439c7b0f6d6db0ca61371ee049758173c35b70468bd0166af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10"; -}; -warpcol = { - revision = 15878; - shortdesc = "Relative alignment of rows in numeric columns in tabulars"; - stripPrefix = 0; - sha512.run = "66fd9e243339e0841576e1a1a3de05f2e69a24a7e1dd31eb38d848d06c9183f691229d8e89878b661c7f6524bd9ebd1380fcd4c9b175feb8490cd4476ac81303"; - sha512.doc = "e88082379e90edf1517579009881204bcb70df888593d7535e2b1e5b673cf116a456967b0ca5ce372efef9dc0818b9d0dc252be79819f6b346ad8619d70551f3"; - sha512.source = "843965fdddfffe6bec9567e140b9c6db66f60d1eb90ff5830b08b17499f21782ae1842989d479e50c293a8e1d7e2a9ab886622b8375384e1238871d6872e9e52"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0c"; -}; -was = { - revision = 64691; - shortdesc = "A collection of small packages by Walter Schmidt"; - stripPrefix = 0; - sha512.run = "1e434b13cf6cbaabb173b34334e046055366a9ec844207460a852a0066963fbdde6288e94979e873811b4e66140f07b6cf2e8526ec47a050efbfaf4836edfcb1"; - sha512.doc = "fcf5434911390ee8f20f0feced15a627e001471b1867d57a7697edbfee557179250f0a01e9e20e0d442dcb0c4509174c504959e7a991e928e392d27515ff2d0b"; - sha512.source = "9053fd6524c572ea80670ed9af80780579e6961e326620120f87f809d76f3c23310fb572f39536eee1ee8c20269ecfc1ad5bd5ca195ed986d87c46bc53058a31"; - hasRunfiles = true; - license = [ "free" ]; -}; -wasy = { - revision = 53533; - shortdesc = "The wasy fonts (Waldi symbol fonts)"; - stripPrefix = 0; - sha512.run = "4c747ea3cfab820b803f624a32178a1d09cbb5a3c441ee423abc74caeef9217095491c0c490f11d3a6d6adf052b97492e081b2abedce6cc9c61410a8e878f5b8"; - sha512.doc = "4ee0dba83e3d1e00a1c58bc1c27d1b8e7e1677bfadf1d2653be216618d65fd168eab7aae26a5fe5ffae42c546b3438e2ad15f1a7bbfd58cd7b75cafa78a46205"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "2.5"; -}; -wasy-type1 = { - revision = 53534; - shortdesc = "Type 1 versions of wasy fonts"; - stripPrefix = 0; - deps = [ - "wasy" - ]; - fontMaps = [ - "MixedMap wasy.map" - ]; - sha512.run = "d7131c025bd97bdaf62697feb698da97d175783e4b0502d3e85b60a663f46a0520268a6063956afaddc6308ddd21954992bf8d216049cb324133e3760ac20825"; - sha512.doc = "d9c88d39deabe19393df0b6d83bddd644e347592735cd7511dc70374ea015cd7fdf36ac9f320b44c612c8276eee3d7cd94f9e0b26de050c0771c85ec7dbae53c"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "001.002"; -}; -wasysym = { - revision = 54080; - shortdesc = "LaTeX support for the wasy fonts"; - stripPrefix = 0; - sha512.run = "408f9c2b70d7860f7d8f7ee7f93af1351442b92aad9c8d8e4a501414058d8347e6da2408df3d5b6fe217597861eda5eda499771a7e973da03597f24b76250da0"; - sha512.doc = "ffa36c6f1446c0dcdf1e1dd8b47946eb84d666714d94eac28c857170c9aa414b612486fcf107ae462c50ecafd6ff20c90c776abb5774db64a32aa07be8c58b2f"; - sha512.source = "12dbdd1e868c3382e7ccb5a507b7f72c20e3df3105e272c00b8b6294f10c1099d3c6c7b1a2db5bc96b866e246807604b615d8278357d0214539a8f959de14667"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.4"; -}; -web = { - revision = 66186; - shortdesc = "The original literate programming system"; - deps = [ - "kpathsea" - ]; - sha512.run = "cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee"; - sha512.doc = "ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a"; - hasManpages = true; - license = [ "knuth" ]; - version = "4.5"; -}; -web.binfiles = [ - "tangle" - "weave" -]; -webguide = { - revision = 25813; - shortdesc = "Brief Guide to LaTeX Tools for Web publishing"; - stripPrefix = 0; - sha512.run = "0c99e86fcba92d067ddd658893b58463390764b215515068e025563b66f445b23ae11482345bf305106afc1284ffaf32b23a28c8e0f81319002dd6332c8a3848"; - sha512.doc = "933ceaf7bb2400fff1bfc5ec26f60d750e0995680579fe487536ddcf8eca670e2b6d3fb6150b4ad659c6fa594b9db540523a878c74e9aba9be7710b5380e55af"; - license = [ "free" ]; -}; -webquiz = { - revision = 58808; - shortdesc = "Write interactive web based quizzes"; - sha512.run = "04ce66027089c2be815380a10540e6c12040d33a33b1de9c6a98985e82a65e87f58a19b6cbf2b0ad7bc8e0a1e500bd21a80e2adbe3ff395ec4be1ecdd5b5adf0"; - sha512.doc = "58faed1d21c5f0abe004d5aff0ef6f754012722dace25948e236c940f3e9f3a49d4f661d6692afa0bbd0a654424017e84611c32cdd99a0ef60e510c4b2fa01e9"; - hasManpages = true; - hasRunfiles = true; - scriptExts = [ - "py" - ]; - license = [ "gpl3Plus" ]; - version = "5.2"; -}; -webquiz.binfiles = [ - "webquiz" -]; -weiqi = { - revision = 70179; - shortdesc = "Use LaTeX3 to typeset Weiqi (Go)"; - stripPrefix = 0; - sha512.run = "7202c5b907439d47868e940d1cded455a15d1de82420e8846f93c81ea3b723eb2f6d455bfe8d1deddca7e856b5d9243418b546abbf36d0883431675866cdfbe1"; - sha512.doc = "ed2f33194866228569800a1612bf73b5aa2b8ed8b1c859b3a9475ce6b2411b0a7a9ac4236b4b1372d8eeb5635f18b340592656ce5acc76664d620184a62fcc9e"; - sha512.source = "8d0505d70518aeb70ced15c152389c08a5e4938a1cd82c623ce21ee83678bef53e8a8876fbee13a121b428f55df013ca44389a98529c6ade2909375f910c5b06"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -wheelchart = { - revision = 70518; - shortdesc = "Diagrams with circular or other shapes using TikZ and LaTeX3"; - stripPrefix = 0; - sha512.run = "9b54a717a73761b09007afeb18c6fd69f6af1b1dd22f206e556fd076a61e6ae03211d58be316ec6eb62909979e8d53f74c6cd7dddd11fac33917383f4de2b073"; - sha512.doc = "23e759467608b69aa7b3a3376d4dc62ec82aa831cac2014ee76d5b73beb99d09a69401f61f1db02b617a741189fd34ea39b90c5c1b1f7f7f94d380ba38041a24"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -widetable = { - revision = 53409; - shortdesc = "An environment for typesetting tables of specified width"; - stripPrefix = 0; - sha512.run = "bd6c85eb76b1fdd4b7e81ad24ad7d282b79e4234ec029e48ed63611260b00e8b1c584ac800c45643e466ff6aefbf953246b24c1bc6453098a76b71ba01624821"; - sha512.doc = "5f254468e606aa188030c95c79672a6fb0211c0b5c4df6c3fde98c43ce1fd89993d495eb750b58395175e2b6bbe3e9771895627a04bdb8839fd4d0a143c1ab69"; - sha512.source = "31ae40849337a8c6a7872621e55ae2a53b1a7d4d1a7907e18f5aec07f94196636b99c26d46dd8c10e1494a35b86d435a014a229160edbbfccd064306fdf06598"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -widows-and-orphans = { - revision = 66753; - shortdesc = "Identify (typographic) widows and orphans"; - stripPrefix = 0; - sha512.run = "0861e1449011f6032d847c5bbf8d06fe7b8f6d320dcb0f2281ca558dcb8ef1eec561ecaf622f957e6a0c673223b3aef8cbac4663930931d945f18137d19f4e45"; - sha512.doc = "6105b7306ddfcd91080bdb682702dec2a4d1b094e1b8c9bd0a28bfd185bbc9a0bc4252180101b2674e702d645fba31420d12cddad2ff3db6703f6e83042b8a4c"; - sha512.source = "4eb52ec1f9f78daf90f62b7f88ed96506069fbcb22c9bd33aa853142ea2282dfc4b5ff87d6280ad82ee3d9342d4c5737e91cd7a83416dd1de6b26f2e89062b2b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0f"; -}; -williams = { - revision = 15878; - shortdesc = "Miscellaneous macros by Peter Williams"; - stripPrefix = 0; - sha512.run = "44ef966e5d8535aa7bb32109b20f47c774995e6368a92e20a68d25c1694ad86b7007bc90877d276c2f15b8aa3c3d11f7fe6aa117c35265b5988205df869af11b"; - sha512.doc = "c559e587868698c1a635db13b6db265234b3b475937fa1759f9e7e3a8d0644a43543005e9607b5a965bbdc304863d6c7cae6e5cb8345b546dc34afd8c7e2de43"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -willowtreebook = { - revision = 60638; - shortdesc = "Easy basic book class, built on memoir"; - stripPrefix = 0; - sha512.run = "835b19d0927b01e4acf9da483148d3fa45b1c12eecebe39802ee4bab7426843710dd67306b2a8946c9c2b51d4c1864eb054f440c3ea021ae124bbeb6e4908b33"; - sha512.doc = "9e5fddf4765325a550e6dbea529d110bbbfbcdf89e1dafcfe62099a4e8fa6ce2bf3384ef9e1b2453f1155b6e6d3f48d1d1675100c8295362653aaabec35aaf86"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -windycity = { - revision = 67011; - shortdesc = "A Chicago style for BibLaTeX"; - stripPrefix = 0; - sha512.run = "f83fe1f694d3fd448484961bb23c7c220ccb5b0f8982198660b5770140c8e9120fcd1f095492555f00533039039d11b3d2695189f40b716b17b2c2acf2e7c553"; - sha512.doc = "eff7b0bd0603d563d077842e77fff4b9a104d008724d3e81f58cb26ebb77f8e61811f5a74d9cf2d5d62f3351ca692d5028cea9629ac1a9e8dc6263637c1cb616"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -withargs = { - revision = 52641; - shortdesc = "In-place argument substitution"; - stripPrefix = 0; - sha512.run = "73cc4db53528595f54f31f0d2824f08af54310aaed51b6eb51a5386de3f06dbe6ffeea8c4ab6f1e4ee1d169b5b0082f113ed435eae90b99a9b59df3296a3f4b9"; - sha512.doc = "050ecd695b269896d1252649978af7cfbafa80e289038ef1054d82296cd83934b0f7ceee274340d54d836021f0da39f05a648dba8bff141eae8f378527bcf865"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.1"; -}; -witharrows = { - revision = 69996; - shortdesc = "\"Aligned\" math environments with arrows for comments"; - stripPrefix = 0; - sha512.run = "31e9cb805fa91b903d91a0090ceffe6cad323c3340bc16c268e6667dcb5fd99e05c95b87fcc6cb8500c187479973d5595fe510855a7c6b2b86db06e513ba5172"; - sha512.doc = "69c495a471e5fc2fb4da60b06360dae6dfa2c79d93fe176fe54485ba95f3c854fec8356f9939d5521360f9d461e9dac1a6290dc3ef29b8a82e52c0892e8fce14"; - sha512.source = "bb5144cd95bb78dbdda91bf068597de2a8d409a2f0ba8f48c861018c52b897a7b5b7a095cba1b5e301822f75b2808dff0376ba36591cd8964f2171553d5e8dce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.8b"; -}; -wnri = { - revision = 22459; - shortdesc = "Ridgeway's fonts"; - stripPrefix = 0; - sha512.run = "6ad06e6a867b323c382b85fa1effe16280566b1b61dd37be0bd7e9384d145fff2b1b4ff8117aa49749db1f15495e835e3367b0b7191cf9444e36fed662ffd0ed"; - sha512.doc = "c3d6ff664edd89fa711e9573b138b29b113b588ddef9ad4a258e1f28c4ca2aad1f05741a402c1c1972bbc317e0cb989ce7a51e52d59b42629343d9a5780b64d0"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -wnri-latex = { - revision = 22338; - shortdesc = "LaTeX support for wnri fonts"; - stripPrefix = 0; - sha512.run = "1dcecf9ac38a9099625ed6be3955af8b063ee5b5b8d0d3e3ab8c94a8215b72b86a0b5dbe930eb69680917bd3d6652b3f4f08bb377197ab6f3d2fccf2b96aa59e"; - sha512.doc = "924266d547910d25ed5355ec2ef697d271dd992aeb6767d5bcb703d4d07cd34b6844e9a821ed93f5a04237aba1c185fb68926967e78043f390785b619c2389d2"; - sha512.source = "e3c5cfaae7b14a28489344392d66a1e2570c900ffd571c54b4f2d13b16d6dabb5cf58cad9259f8b662a218567982d1ac51ef8b2a757902c36540200fd984a497"; - hasRunfiles = true; - license = [ "gpl2Only" ]; - version = "1.0b"; -}; -wordcloud = { - revision = 68209; - shortdesc = "Drawing wordclouds with MetaPost and Lua"; - stripPrefix = 0; - sha512.run = "7e4f6adb72d2a7b3cf740f338e63669304ac33d90f7fa09327cb3e6ee882105c92786656d5af742de0d28717cf45f4fe0900ef0c48faf1ddbe57af322959c8d7"; - sha512.doc = "fbf28ca6311850020c73dbb1a6a60bf5f31387a2def4b01f348674e678a3626cfdb23e2826a30db8ce021a5fadfcc26027584278110781a99ee26337c4b1f642"; - hasRunfiles = true; - license = [ "lppl13c" "fdl13Only" ]; - version = "0.2"; -}; -wordcount = { - revision = 46165; - shortdesc = "Estimate the number of words in a LaTeX document"; - sha512.run = "3c26b3bcb4c3edce8cf9d6628cf6b89103aa1ae454b07c1e963ca90693c18fb851772a52082a23efbefb51235005e558fd553afc891a472eb39cd430c97f861a"; - sha512.doc = "a86b034ebff42c89f07015b01f86756a83ff2c69ed911ecde185ff719b09e3db47f284fe778c9dfd16442d1513edc9ddbb4944cc242328c17bd3fc18a0aa098f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.7"; -}; -wordcount.binfiles = [ - "wordcount" -]; -wordle = { - revision = 68170; - shortdesc = "Create wordle grids"; - stripPrefix = 0; - sha512.run = "fe32704e323185cdc9fcbd3e87bf02c4c0870af501de731ea1b05056cc7e57861042b111a3307597969351960bb99086f99f8577b70e8e6b31cfbc9cf8825157"; - sha512.doc = "38f168ddfdab5e786a4ad5b42f726e7895178e949c04f75ffd2f14fb42d77bf6e8afe22df5b87fecf8490be61aa3edde0dafaa91191f459e4378878aa575e8c8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.1"; -}; -wordlike = { - revision = 15878; - shortdesc = "Simulating word processor layout"; - stripPrefix = 0; - sha512.run = "d600073b2373119973ca47564938db5824181d6b74409ef7f4a2b19d53b83b97ccf8edf5d77dd831c0d52a4379f5928ad7a0391d90a2f19fe4d3ef681133078b"; - sha512.doc = "10bbfa76beb0718dff8d4175712567e34e77aaefbce9fbc350d5bca43d8d5e87fe1cdcce5c558946c2b04beede8628b7535abc451f7d904ac283929ae39c6460"; - sha512.source = "23e7f66f064e7e8bbf94d58118c0c8891a316fc2e2fdf37156b078242fb33343a38d19f03dd605035ce874de1d05d9e405c612e32c407e061f54386cfef791ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2b"; -}; -worksheet = { - revision = 48423; - shortdesc = "Easy creation of worksheets"; - stripPrefix = 0; - sha512.run = "439c430189e74e8c476a068fe449034fa1c8f4e8770ee454b92b8645ee865b103a02b0eecb45a925a8021fa7c64d98240e5f1f980913515df49d8415bbeb2c2d"; - sha512.doc = "56d502e993eb77f7dd4b2a659a8646823cf033a3e246e90b0c6e4e9d2a7cb31922dee26c942404b13d18e7abaa79714b4394b589376d67e8fc1556a098ec7960"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -worldflags = { - revision = 68827; - shortdesc = "Drawing flags with TikZ"; - stripPrefix = 0; - sha512.run = "662c7b2cafb1764a42a94707f350ffe0e4060120071d715c3c1cebd21b2c64f2ca0896ac3c9c1e629b2fe4b057bf0b890805747a668b6a8c04d501a4ac1ca1fd"; - sha512.doc = "16948753f069aa0e9f0e19efe9072c35eddf4bd20e32e6a47321a93bd3117f2206d44d3a76bee1581f7d4dd7e392d2bf1a4fd0ebb83d0d7b6cf207e69a42c7ac"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -wrapfig = { - revision = 61719; - shortdesc = "Produces figures which text can flow around"; - stripPrefix = 0; - sha512.run = "afa6eed496f63dda436a9a57c9f056ae88fb7985328d58d81fddde743a737b1ec69a5409941a76a28840d938397928925500628b2e11859713871977545278e2"; - sha512.doc = "27aa1cfb0641876516eefd483f5f37e25e06c24bc255fe81afadd985d9a5ea73d311184ad46120d57d8dfc584da02f99c90128c6e0cead71064d00c1bae09f7b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -wrapfig2 = { - revision = 69513; - shortdesc = "Wrap text around figures"; - stripPrefix = 0; - sha512.run = "68b48be5ebdf766fd414ce9a121321f26e172802c6c504213306762e383dd1ecdf77f6260a5602b8394945a86c87b0320cc0a651ad054753c5c2510d746a8149"; - sha512.doc = "b2356e3756640a825b44c47fdde68acc49d966508a90ba76a019992f10a9b65f124282d59d26422bf3c51a658b2adc723ad36f4e0d92dcb74a8bffabfefac471"; - sha512.source = "e502c514d9ac982b3fa67428a2be8e97b50b2c5389ab2e29981fc65b002e2c3076509a061635991c2ab48ad8969eccd1ec39e82b2f7a07e34de98bc2801a8dd0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "7.0.0"; -}; -wrapstuff = { - revision = 64058; - shortdesc = "Wrapping text around stuff"; - stripPrefix = 0; - sha512.run = "ec0cfc45b68b5db1b0b8cde55a0b98e2834e8d69727d9a243a4ff814e7f98dc794803c1ee0487263ab06323f8d4cf68a0c7de6639b8f91dca953a8dfdcda3f06"; - sha512.doc = "688ce97d588807fcc36b872198f01a74678f562e8daa2ee4a4bc12a1ee9b3d914ed670d7668af259ee92722e314c28a65555a61b2fde3d22f5b69b4bf05332c1"; - sha512.source = "b7e1b8ea480949adcaffbf9d175b75f9eae3f23c79648080379fe178fbb2976d11446a7384c613e5ebe647936a5aa88c31cd82b2a9425a59b6c41d7ad819d63b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -writeongrid = { - revision = 68863; - shortdesc = "Write on grid lines"; - stripPrefix = 0; - sha512.run = "5e97c246141838a342192743411ce0d3cdad4924433540cf5d1faff7f2650388eaed5f045c60ea5bc69ed4108aa23863f38d812ae4702af1d04000d96d112dd1"; - sha512.doc = "2f4c29ce5949d3f10b8a8971cd62c34a473038f211bd1cb947baf675d9320fa7d4b61931a83675acf6f00534656d827fcda4a5fcfa51b69052c8f82a7625d62d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.5"; -}; -wsemclassic = { - revision = 31532; - shortdesc = "LaTeX class for Bavarian school w-seminar papers"; - stripPrefix = 0; - sha512.run = "064c1ec12a33dbb6c5a2c08c98c21d5684d8be6edb807987e69a47002d52bda4634a8e0d8016d01aaec6b0bcb9851de61d2a1723f70ea7da2dd4000d2340033d"; - sha512.doc = "d86741a35d1873a17839e880b2e1c0915cf7b64bd52e5836f9967159479611482c2b2c67388066b9f171574109a5fa0a5b9555ccf4e629d4b26434a31cd754da"; - sha512.source = "cbf8ef51ab7782a2b52d238ee2f517a541ef1a0196ff72f08cd722c3335a80a2520fbd359cf865302229cf146b16931d4b163571e908360adc8139c2ade5f2b3"; - hasRunfiles = true; - license = [ "bsd3" ]; - version = "1.0.1"; -}; -wsuipa = { - revision = 25469; - shortdesc = "International Phonetic Alphabet fonts"; - stripPrefix = 0; - sha512.run = "7488fab88bb273463ffa45819fb486aa3c95d7202d8ffe2a8aa8f2a1b00555e70bbc5a008a72cb60ddc1759dbca60bed05d2a21b4308e75490e965e71a84ee7f"; - sha512.doc = "b24aa32e2e7b466d7afc827aed570deb70b41163cbe6ce975d8df77e9dcc92b453e5f0d5f0edd5a2f05c006939003849b7b44c2e3f8a86ffd61a51ff307466e5"; - hasRunfiles = true; - license = [ "free" ]; -}; -wtref = { - revision = 69214; - shortdesc = "Extend LaTeX's cross-reference system"; - stripPrefix = 0; - sha512.run = "abdaf96d5c4cc919fcaa5343d25243266f86dc079cf701d71f047b01874baabf20a0c7972a6aa863c7f9eb9a003eb5a516714d57fd453574e7a2c8ee2e500e7e"; - sha512.doc = "f248f448bcd110c59d5dc19c67d4192a20d4f334c6f17562d34db0dd4ecbd7c6414ece9ed4e55aaf2ea42a0e5373fc5f25e8eaaae16b468687bf5c2d2e88b908"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.0.0"; -}; -xargs = { - revision = 15878; - shortdesc = "Define commands with many optional arguments"; - stripPrefix = 0; - sha512.run = "43b9cc5246123ef3c424614415e04db9e7a578eef348c3d580626918a4c31ac99714cf501dd54d305ed6ab9ad7e0533bf5b39250c43ad682032dd676a12173d2"; - sha512.doc = "387a051eb8581b51d2042bcfae2ff9af99659d664c328c6b30b3789c75fb73687c32e2037df7a345335966671a3e3267ff4b9e0eead0e5b759bd305850ef22b6"; - sha512.source = "e4717f476260648eb66fefeeb125606c16d302bbad32c55730a0102da355d0c828b106b25391f69bb34627f56cd7659dc185bbcd36ba7f5a8f0b77a0786a7957"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -xassoccnt = { - revision = 61112; - shortdesc = "Associated counters stepping simultaneously"; - stripPrefix = 0; - sha512.run = "4b3934d7a4a219fca3f276b26b893706ed8a65682425ac40d6722734f3e133099837ea8aebf214bad32c0d6b415121f73ea605dd851f0f2542dfb0bc38744313"; - sha512.doc = "020a2fb86c86372302e68636d727203625ddfbf63cf8eb5b3055502fcd073c54b52a44f8c7bfcb2c3c73a206082e5d285f05cf762b9857d2e16c43fe36f8fb96"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -xbmks = { - revision = 53448; - shortdesc = "Create a cross-document bookmark tree"; - stripPrefix = 0; - sha512.run = "e17701f9cd79d49467e4dd47ef9a504a8b0fb44b216fbfab0f5547e9215c4dc40f1fa46aabc209ff2221a4a9424221adacc52f6040d3f796d51f2d37dcd4e8c5"; - sha512.doc = "76d255a036a19d80c826eff4b18643523787c53f9b79e44710e03f9bb8a7648136559727dee246508c1cc6ff332cbc92b8d1c728b4583ae26502ce44538a61db"; - sha512.source = "4c3a9ade3d3c204db2c2d0e11a55bef0a18cf1e3e4dfa292c3da356ef5ef5aab9ed6021d07f6222f1ec722298c46ee4e4eff02658e76b99bb426e6e289fbc136"; - hasRunfiles = true; - license = [ "lppl12" ]; -}; -xcharter = { - revision = 67742; - shortdesc = "Extension of Bitstream Charter fonts"; - stripPrefix = 0; - fontMaps = [ - "Map XCharter.map" - ]; - sha512.run = "9e71217c7df0e41de44aa8cfe09b36955910ccca4337d878b0f18f4352f52d14b9dc1cafae01e9b06ed1a094282bb73b25e5328ccbf60e6070b57262e106018f"; - sha512.doc = "04b1aa9efceb7b87551ffb6743605861ebe695118376940fa84e8c3a8b0ff7c073d86850713f8df98381c674fff210bd2f4dddfd82de4f152945207ec4c44354"; - hasRunfiles = true; - license = [ "free" "lppl13c" ]; - version = "1.25"; -}; -xcharter-math = { - revision = 70333; - shortdesc = "XCharter-based OpenType Math font for LuaTeX and XeTeX"; - stripPrefix = 0; - sha512.run = "1b9da3251b6f5abfd2053114edb174638046603c6b2f46a8baf26c20050f3f614b4a9e01ef92b458ca4b97ca90bef7c72bb146754184d311553bb0a429e29873"; - sha512.doc = "291b67678718b0facbdd38b95d24e75895a74d7bb6cde5c320598fecfac2ce0ebea442d0d3a62c63fff9ee38579042525297518c9373d90edcbdf425605dd119"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.62"; -}; -xcite = { - revision = 53486; - shortdesc = "Use citation keys from a different document"; - stripPrefix = 0; - sha512.run = "0412a4f47a044efbd22adbbea9cda1bec44379dbc799ca83821d4650e8e40f6b5de51b80ea6a80d747639a9b840b7cff6612b6e4df0b2c09c0f3ed506d3de714"; - sha512.doc = "11af105ca5f1610e5cfa226cb191d1f69d257e21439c2408283572e136b183518f58631ec1b0b145a1edf50ca58e9a1eda789e5646c47b46f75a6325c90262f5"; - sha512.source = "0f6d0e7206b59acd468dbd77ef3358d2865f48e2d59ccae2ec185759c137b9db99bf417acf71ec40cbafbf2569cd9b4a74a97b7a3959f51f1703af9a026486e4"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "16383.99998"; -}; -xcjk2uni = { - revision = 54958; - shortdesc = "Convert CJK characters to Unicode, in pdfTeX"; - stripPrefix = 0; - sha512.run = "db0be3360dc3d6373866c9d27900f8dba9353bcf92d219f9f0b82532e2855210230a06b87d1ab6eef7e1f96c54e46884e6827395affb9375120b7cf8d2fbb99b"; - sha512.doc = "6a9958bc6ddf6d167b9d77a513d04f0077c9a8581109c51166410d60d5a243758da62b40bdf5cb1488a50b9ba76ca89261a2d31c3819d8b2738b4a7023ac3f90"; - sha512.source = "8868210c53fb379e12b22472dd3575baa62743cc059b3215b634aa59e61af5b3bed8415b9b811a7949457dbee4a051e4926ecca02c293be775ccfb3467e0883a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xcntperchap = { - revision = 54080; - shortdesc = "Track the number of subsections etc. that occur in a specified tracklevel"; - stripPrefix = 0; - sha512.run = "7be16f92de86fe67fd34857f7151f197e5ae52e9ab944e0ef3603882585dfb240b8e01072747b18092c6ff060f2f4c341b27e106ffe8864dd1879c3965435e47"; - sha512.doc = "c7d25df1dbac57e05b589662214e46ba446def465ae7f64d8a2d52283151ee04aaee93ac1bbe0f2c7b01c50e505ca6c1cfac96750d1b13211d309a906427c6f6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -xcolor = { - revision = 68864; - shortdesc = "Driver-independent color extensions for LaTeX and pdfLaTeX"; - stripPrefix = 0; - sha512.run = "6b7d38d631f89f4c4ffa9f447a16cef6169c3e4798c5c65339fe48f9318291373a49ef9da8143c453fc5fd9ee853bad53b5477b248ad5f99763df9ea28638c78"; - sha512.doc = "1dc8355913a62657a2b50d45a6fdfbabc8a0dbb835ec5912fced934350b21619e8081b9e9a4774ba48ec3c51572c7f95f52efe92c85344dd81da0bcc81e73809"; - sha512.source = "98fdb68955160820347af83f7f44ac97c3a61b9732af2a17980155c103b6d6ed9037504ba99aeeda5608fea84f82ac871dbb55d9de334943a74aa617caaa70fc"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.01"; -}; -xcolor-material = { - revision = 42289; - shortdesc = "Defines the 256 colors from Google Material Color Palette"; - stripPrefix = 0; - sha512.run = "7f1484435458dafa2a04eeb4b5b1b89ffee9ec8c91f1d724449457b719f92db009efd6b6a580a2b0ccb8ebc66c0d1889f3ffa05104c0fba5cc9c7ee90985d2d3"; - sha512.doc = "388f9b604291436ded0510437be93c1fdf120a91fc3ddbabb870840f2caa9e81313035ff6c9d0c00de259fa024f83399a4004e7ba512a5c3bc7920a08ff58819"; - sha512.source = "118b21c883848b5bd6d558b5c22146fad54df5e107d0525e48df42c0bbe90b210c7ea3340fcf30b5782d251ee1caefa2aedb8a130cd01a84f4e9022a40ca6a8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -xcolor-solarized = { - revision = 61719; - shortdesc = "Defines the 16 colors from Ethan Schoonover's Solarized palette"; - stripPrefix = 0; - sha512.run = "fe743e9aa394c6a8a75f8c9e87cb7349d87df114a8c5753a157d4dd129a677af6a0381969f7719712a9abbb9fc720e0d19f8e7ffcc2bd7ba09ee8cb3df3c8d95"; - sha512.doc = "bdc4d9a9a0e1ace78a90e9c64fba0894599179592c948494588e43efb21e3b329d6f0a0c403b21073943251796b4cf37f8d0665a8e8bf438b09616fed19c03ff"; - sha512.source = "851e8ac38bb8a5f6e3410daaa307ba54a5762f08e10b656234feb020354b79caeffaff1de58618e6e9f52cfa50d40013fdeb1e32f6605593dc224cf3650e54f1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -xcomment = { - revision = 20031; - shortdesc = "Allows selected environments to be included/excluded"; - stripPrefix = 0; - sha512.run = "ad19a29caaaa4da90c740a18f3b3bf63666303f8047210197e17c270082d483e33085c9249d7143ba65f343f6bf3b52c6974021f954831c5196708824e21b843"; - sha512.doc = "d3b4d70cd88923e25595acf726afa6eea2efff4550455ed2eff48411621f212059ffedc3a82e4ac15359420a00c69b55e3625d11f8e8d4111eeb87cc3a6e8cfe"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.3"; -}; -xcookybooky = { - revision = 36435; - shortdesc = "Typeset (potentially long) recipes"; - stripPrefix = 0; - sha512.run = "3f74d540c4da5ab4f6f1b6c78f3a35172fb4f2d94b7c720fe3fd1d31e1c53db6659371da6d48adf755675af831d252178b96ba57a1f0c0319459f4a564897b49"; - sha512.doc = "29d1620c7ea3d13e4fdf97454bf824fab8de6acd96661554a1f37717e4fa0dcf6df20cec580b6b25101b75d2d22080962713d05347eba4974c5cbdbca6129ec6"; - sha512.source = "0a0d8eb171bc551831f65511f74b9db402587b6bdb47dfcd3d9e31403eaf530e954c5ce0510f9fa4e850b3036bc6807339aefca9567b9fff7152c72c8332d640"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -xcpdftips = { - revision = 50449; - shortdesc = "Natbib citations with PDF tooltips"; - stripPrefix = 0; - sha512.run = "ccf564a59d658a4f6747a3df866d0b0a0d6dae489215b5784fbc0619a2f3f222ef348c5fb96faf192d9db7e5c63d44c5f94549cb809e89dabd06bb43d745df1d"; - sha512.doc = "5d483b7bce276815fbb3602d4082ff9c939ae414cb2e2b03f75307c71b2b19a6adba23f609836c78859df5823f4aaad175e01b9f223326176b62a4ac9060cf02"; - sha512.source = "d386d33f5437cd31bb8dae0ea51a22fc90353f7866544694e3c41bd2f9cb70fd734a92bd50864a0b20443bfe40f6f54cc404e503da395e928ae69fead87db771"; - hasRunfiles = true; - license = [ "gpl3Plus" ]; - version = "1.1"; -}; -xdoc = { - revision = 15878; - shortdesc = "Extending the LaTeX doc system"; - stripPrefix = 0; - sha512.run = "8cee132082c70214560ca8377766f45e6f15da2af18e0e9d68205d094b2a6af4d50150bfa6d145f78d92bb95c8657ad9fab1cbb8e76b75859f44ac1039464cca"; - sha512.doc = "cb7fc71f84f88a1035e91500e9b7ccf0c425733227e4106c7bd87eb30b25c8fdae6bce046f22e5a07ec919ee0527f264dcd826b7e6468eaf21a791e7dc0e7ab8"; - sha512.source = "d82f9fe7cf0a2faaf0cc6a5f1f1d5916bc3eecef63e6e983f62c4b17d36b17f31251af6e704811af2094cc43fada5597b0ceb432a4b38c4b066ab041d7a5c578"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "prot2.5"; -}; -xduthesis = { - revision = 63116; - shortdesc = "XeLaTeX template for writing Xidian University Thesis"; - stripPrefix = 0; - sha512.run = "af32af87d621a3ad64ff6565a02190288e0f97526973a1a3a185c077aef8926f56e9754fb866812f0cc7f515b54fbf7583fec10c17d6f9299d1e186c9a8542e0"; - sha512.doc = "45c12bd4d3127c5d49ef5bfe434b7f8df5487c37fdbbe6ff687ad07796e95aadf4f027cbf16ad4fc5a8fd3455467c47c32ad99d8bc0397d6f70caeaf199d3ecb"; - sha512.source = "c5c2276a352d01ec6ff2724d069d68e29cfd3b78272b5c7a075189dece45c28292b814a9baa951c14ee166f66c9c26feb19c86d31fcca5a65416a1fd1190d61d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.00"; -}; -xduts = { - revision = 66661; - shortdesc = "Xidian University TeX Suite"; - stripPrefix = 0; - sha512.run = "8c2b0b04ff619c18961014213db4a509af10d46cdd5177706021675eda7d408be01a3f9c9aeb18556b59535dd9cf8de7d9147c36c57350ee3fe8e02e61f416d5"; - sha512.doc = "7e89d160b992eba61328618ea463014c52f861eb1b952f05aec2860878c226d0354470522468ef79c710486c0ced8bfe76eee296035a752178fafcd380f957a4"; - sha512.source = "3227078ea75cbc6d23aae9086f51bf86b2d7fc42d237767ed90f915a6d2255f6e2f816c49d77caa1d85fe0f623d99d3e76dd458db699b458df5c28f3fc5fc092"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "6.1.4.2"; -}; -xdvi = { - revision = 62387; - shortdesc = "A DVI previewer for the X Window System"; - sha512.run = "57024e05928f45e253e236d7e8c6b9cef07359c1cabc10b3f6ac13a9b98dc04530517d8d66b20cefaeced793fbc57a5373c226fb3d26186ba3bb7eaadb0f4ef2"; - sha512.doc = "0fd1bc1ba7bb022f03334fa6c6bc6aed779179a7c486211c3016b0880efa2b13859eb7cea78e8bfc0069192f93313d37a4966fd7e233bccfb1d010d3e413cfd9"; - hasManpages = true; - hasRunfiles = true; - license = [ "free" ]; -}; -xdvi.binfiles = [ - "xdvi" - "xdvi-xaw" -]; -xebaposter = { - revision = 63513; - shortdesc = "Create beautiful scientific Persian/Latin posters using TikZ"; - stripPrefix = 0; - sha512.run = "c12da79ef06b07aaaa361fcc474da416bfabe898095eef7bdb9ea80efddc8051735b3cb4c86eeb052bb906b3fc96d3e3ea10b23e0bf00bc0aefa80433d6e6ae0"; - sha512.doc = "c1018a8009d360ea411fd816719844af3e13b429135e533c2c033898f763f010f281ac7cca9c41572eaf1d5f4a9c4a837e4f0651aa03c140c2285dd3f087a7ba"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.53"; -}; -xechangebar = { - revision = 54080; - shortdesc = "An extension of package changebar that can be used with XeLaTeX"; - stripPrefix = 0; - sha512.run = "833f0b1cea32c0bb345d1aad5360613ee36baf17a35e13d20a4bcc75edc77b3a7c48c4406ddadd670890cb93dc0d03cf91462994271f351ebf2bc221bfbae5a3"; - sha512.doc = "6d2c385b3b826b8b97cb725ffd3e7479ec3ddd2d2bbd8c772fb0b1faa9d0edb758871003ec379d8ec349fc4e3f7de2bf3130cc0e5d9e356ad472232d16acb546"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xecjk = { - revision = 64059; - shortdesc = "Support for CJK documents in XeLaTeX"; - stripPrefix = 0; - deps = [ - "ctex" - ]; - sha512.run = "3382b181053c76e58ba3f77b195765d83e5515a48b0c73580fc19305bd395de8d19b98be3494da8201b0a22a851a53c82dda14beb54a545b652cd0bd5719af67"; - sha512.doc = "b2dd0caf3317d708cc001b5aba57979f86eaa20d9d38d360650b45fbb683603e2075658a0c0a9c0631c81ea06ecac27694c45df47f053d9e7440901d66280295"; - sha512.source = "07fe51d62358a376d2f3cc2774cf606bd4e9f8b3bd3fb202427f34c3c15b004fed5985f7fe776b3529a83ea4aa3e3e176311e14bb0a02cf055eb501a3f474839"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.9.1"; -}; -xecolor = { - revision = 29660; - shortdesc = "Support for color in XeLaTeX"; - stripPrefix = 0; - sha512.run = "0ab23e651b36f06256fab5acb14effc93296948aecf7c7f11c81f4db89a58bfd8e038dd857a1da3a86ab573cf0ffb1d1bc188789e0d493ab0d0c1c9d96d593f3"; - sha512.doc = "9441eff384f57e8714cc543ade380ecc321e6c0e7dd0ae69c71337458e2607a43f793b490bfa6752c1c70bdb17be92488b89ff848ab9a3a1700907c15ed857c2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -xecyr = { - revision = 54308; - shortdesc = "Using Cyrillic languages in XeTeX"; - stripPrefix = 0; - sha512.run = "0429aa515115ef69811069b08567c97ce40a8be68ebe72f26b8e94947abd86394204b21bbf25ae44c616a806878fe9900f5a639bb8707106836103ec06663454"; - sha512.doc = "555ef35f9e50450a796c24b87295eeac319d087a61e4fc7cedafbc398cb9a5c0add8b93318b8afadd82bbd2ca90dac9ade02dfbf286ba825c1d697b58110fe5e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -xecyrmongolian = { - revision = 53160; - shortdesc = "Basic support for the typesetting of Cyrillic Mongolian documents using (Xe|Lua)LaTeX"; - stripPrefix = 0; - sha512.run = "2faeeadc81ca7f6fba45b6b237fb604a6eb6e8888117f759f6d369ed354b20b35dd007eb11c017e4f0ebcfa99627f519b291eecd1b41505d7f4ecbfc23307784"; - sha512.doc = "11b9d4a92c6df44dfc629c7385b56463dcb13564e819cf1bde005e228040a9f675cfb5818ca9f5c5d59a3db7a0d42a5584d9a3a530d772ba2b4bf3145534bc0c"; - sha512.source = "57a31504636eb9ebe717b6eb9028d5ed0eacdc7b9d406ac3822539a9e40ed0718668a640d557677b1a48920b272f3374817d8182b9db04a8329d2ee20227d801"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xeindex = { - revision = 35756; - shortdesc = "Automatic index generation for XeLaTeX"; - stripPrefix = 0; - sha512.run = "bc3f399973bd8be5b83ea6da2c39d80de8f39ac6cf2d82d689c81816cad334310081f44fb4e256e442fc47ed6640c2b8ebd185e431f0d0ddec5f75f7b535283f"; - sha512.doc = "c84682c8034c5e182bcbb2ac0411f4ba5d8065a5db1f008c6f9e7a01b94b3563c44c03fc4c1cf48b3b09d19ba93f22778d8840741737bf1a344cb0c8f66ceb49"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -xelatex-dev = { - revision = 62145; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "everyshi" - "firstaid" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-base-dev" - "latex-firstaid-dev" - "latex-fonts" - "lm" - "tex-ini-files" - "unicode-data" - "xetex" - ]; - formats = [ - { - name = "xelatex-dev"; - engine = "xetex"; - patterns = [ "language.dat" ]; - options = "-etex xelatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "latex-base-dev" "latex-firstaid-dev" "lm" ]; - } - ]; - sha512.run = "088c917758f727ba08b8571d302c93f0b14fc15ca6dcb0ef7a89df4ba144c508d8d42265cc6b1915707329b64aa1d1030ed0b5513987fbd4437d0a58a232b5db"; -}; -xelatex-dev.binfiles = [ - "xelatex-dev" -]; -xellipsis = { - revision = 47546; - shortdesc = "Extremely configurable ellipses with formats for various style manuals"; - stripPrefix = 0; - sha512.run = "3bff74473b4e7fdc7a349fd54e7703b77282381d9ff5eac233d5eb7cefe98f4abc5ea4fd309b8693bd7245471c565545e0ab437a5f8e5cc1b89368c914078d54"; - sha512.doc = "20d238f8281b93643af570c3dd09a9cdf9822af0da6a9d06b3b9d09196ac4c7fcff2efa3271f763caf42e54f9c72d2087c491cacc5ea4666cef1060c12ecab3a"; - sha512.source = "ae58f20d0aaec99bb7e56a0a5b277210d5b9efb8e2677e9e22caa08ebe9576befe19e4b7409625aee00b30cdbe1d90ae61623e86d3fcd255df96dbb7c89291c3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -xepersian = { - revision = 68117; - shortdesc = "Persian for LaTeX, using XeTeX"; - stripPrefix = 0; - sha512.run = "aba7b248b1ed6fc557e51c267d3da21a3f3473cb0b0d997ef7d899b3ec518a099a173a163c53aaa7ff29e13aa2f1dbebb65775af828c85fcb9e4e91476d6e1ca"; - sha512.doc = "dc2f7a06a6122baf9f2284412edf4231eba88f6968f86eb06e47a3e3f3cac14f833ccdb8f69e95b17a05cdc9c3244c361e8d581b6ca65a715a82662ae722fd35"; - sha512.source = "6cc50aa2d511d744499620b010066916913aedb63ed871f93ab8cdb45380da206dee76c4d8ceaf01be5df971e0437ffd8b469a3ae793810043515a966fdb40a7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "25.0"; -}; -xepersian-hm = { - revision = 56272; - shortdesc = "Fixes kashida feature in xepersian package"; - stripPrefix = 0; - sha512.run = "50a3e4a12055aa051f72c8d9d5f616a6901aba7c8dc6777610b48d7e3c993c6a49996cdd77ef01161ca9b7dc588cd9d86b1e1c4e65eab4e4a6d3a3697a990d92"; - sha512.doc = "79b0a6e9876f697b8c7e08d5f5051975d29e9b7b3245b49a74ae5c76bfb23926fb4810fadcc029ee529f5f2752a49c2ce748277da0fde50f5078becff090b1d2"; - sha512.source = "b43f74f1cbb9e2bdd06ca614f17fce49a18018cc3df9f88ec3a4732bd0b4bbf7068ac77a65d549806be4c07a2b7ab16c165fa7d5a9c9401a4dfb60426c5fde23"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1a"; -}; -xesearch = { - revision = 51908; - shortdesc = "A string finder for XeTeX"; - stripPrefix = 0; - sha512.run = "4c204a8f92fe9af0ef1f0da99dfb12ac8f784800f7ef673a116a5f5167556fe49584b9457bebfd07aebace44951327f8a576cdbc8091a7aec776768384c62507"; - sha512.doc = "981e6cc62a2f50815aeb875c46ab2ac83510ea535953629755700650831500410650b66ba070d8b5ddc494792e782fb75f266ffe0fb868318a4782b2f8d701f9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -xespotcolor = { - revision = 58212; - shortdesc = "Spot colours support for XeLaTeX"; - stripPrefix = 0; - sha512.run = "fcc3a800986069cf64c62b2794447650331dfc2fbefe26fc2d537ebfb520acecb6530bff7591a597fac9b108f23781f0faf7c27b97f35ff2358d62c09404a5da"; - sha512.doc = "90ff1badeeb6e2d6cff9797b1af2052b4fa8474279c7b2e9916f7f02c767988d640b57f3d63be8de9f0082e50bb93c1c122b3c1f9bf74132c5c13b1b6b70122d"; - sha512.source = "60aa75660ec567a3015bd8b4985e95aa3387cbda9b239c2d1d7e8bb29fde8d44fc414ebfb195aa3be037a3f4cbe510354e28d3ffc9d5777d054585597e2ab762"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -xetex = { - revision = 66203; - shortdesc = "An extended variant of TeX for use with Unicode sources"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dvipdfmx" - "etex" - "everyshi" - "firstaid" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "lm" - "plain" - "tex-ini-files" - "unicode-data" - "xetexconfig" - ]; - formats = [ - { - name = "xelatex"; - engine = "xetex"; - patterns = [ "language.dat" ]; - options = "-etex xelatex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "lm" ]; - } - { - name = "xetex"; - engine = "xetex"; - patterns = [ "language.def" ]; - options = "-etex xetex.ini"; - fmttriggers = [ "cm" "hyphen-base" "tex-ini-files" "unicode-data" "etex" "plain" ]; - } - ]; - postactionScript = "tlpkg/tlpostcode/xetex.pl"; - sha512.run = "fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0"; - sha512.doc = "7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236"; - hasManpages = true; - hasRunfiles = true; - hasTlpkg = true; - license = [ "x11" ]; -}; -xetex-devanagari = { - revision = 34296; - shortdesc = "XeTeX input map for Unicode Devanagari"; - stripPrefix = 0; - sha512.run = "96eeb5289b4b0ce252eba1daf15fbccaf2cbb2d251a85818b6dd761048532f36355619e37f1f857caf4592cbf85d112d6d48d5944c455ef36da9913529a783fc"; - sha512.doc = "0f360c3f43c6562520b8843269068fc46ecc405cd3a4d8faecddc4f606d69cedcab28950fc1d2e11699e297fe4d70c4c3d50765a2ec30541c237914accbc7129"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.5"; -}; -xetex-itrans = { - revision = 55475; - shortdesc = "Itrans input maps for use with XeLaTeX"; - stripPrefix = 0; - sha512.run = "9c39898cbcfd024f1a274311a192c647e15624fc04a9484daa2d08ac37340a799b4209a5aa91a5e3a96f774d7363198c5a07f66d88578e1998ef3680b10dae6a"; - sha512.doc = "f10eb9651823eace7f56e88e710bb5536a35204b8fee80219419659d0e2f5fcc60c6009834fd9aa215aa42e8291e14786688fe1974dcab943578bd22a40f4ee1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.2"; -}; -xetex-pstricks = { - revision = 17055; - shortdesc = "Running PSTricks under XeTeX"; - stripPrefix = 0; - sha512.run = "59186971a188f4541361df8fc492b3767069b3081f7052c88df5395539807970c709537b074790411dffbc871010cf4d3fbbdb6684c43007477c44be6259b64b"; - sha512.doc = "cf71359ea6e56061848b085da9755fd3d96d2a9d30484b5d5028c7a3dfb52dfbe275c46f17016179a56f90db3b6df4453cbf3a990a709e59503fbf1a576eaf8d"; - hasRunfiles = true; - license = [ "publicDomain" ]; -}; -xetex-tibetan = { - revision = 28847; - shortdesc = "XeTeX input maps for Unicode Tibetan"; - stripPrefix = 0; - sha512.run = "de7d2f875416336f25e8a14f8c743aef87017cc0aeb30b5c6aa9e1bdf044d71d3c9e9a28d52ccbe7fbd2099ca9e47938310dc3311e46399027aa822b76ff90c9"; - sha512.doc = "0bba33024862284354416e55f2f718f3f3220e4a853c68bd6386c013702aa07a3142864168f6d136bb351044dd9ae8b59754cc2a0181a358fe1baad49106d504"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1"; -}; -xetex.binfiles = [ - "teckit_compile" - "xelatex" - "xelatex-unsafe" - "xetex" - "xetex-unsafe" -]; -xetexconfig = { - revision = 45845; - shortdesc = "crop.cfg for XeLaTeX"; - stripPrefix = 0; - sha512.run = "62b130d16ac01845df5acb1a10e487408208b0c4369d58892a83a42609b3dc92589195540154d1e07a9cb528e8e4ca65009dfef236efd53b9cfbce0a942c5b01"; - hasRunfiles = true; -}; -xetexfontinfo = { - revision = 15878; - shortdesc = "Report font features in XeTeX"; - stripPrefix = 0; - sha512.run = "8099f45c704ea74e5bbd90b1817c3ad06cffe3d6da0a997f8471e72cff364d346a3cc2e6f156b51bf7bc3ba149e5c755423418d58be89e1872f84db9c1eef039"; - sha512.doc = "a5a9b085e5dac02d75b83c7063fe653724367ce203c20832e2ef6b11db10e31bcb90745a7b7d65427a33cb018d68afdd4acf9f92c907f91904188ad60f2e1460"; - hasRunfiles = true; - license = [ "asl20" ]; -}; -xetexko = { - revision = 70316; - shortdesc = "Typeset Korean with Xe(La)TeX"; - stripPrefix = 0; - sha512.run = "860352c31f173c31f5b296759e8ff1dc4c2ef58c9db459c52354db92362812a96c359b4e344a5aeb6ab4c52368bb3c409aaea39102e5a48dcb973c285d5f55c5"; - sha512.doc = "7deb9249472c4dce235cfbe38e1e8f5f11a792e559a5708f6d9a2803bdcec68baa7e88fe0a25545896c6f671b7d6ea91b9637a2d75907d667d8b8454597b6f5b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "4.3"; -}; -xetexref = { - revision = 68072; - shortdesc = "Reference documentation of XeTeX"; - stripPrefix = 0; - sha512.run = "a26a066a25162d3f3484158b6a5d3e3f44727ab5b7e3d3d9a4457fd80e92522f09d61015a4a3b0fea4dc63987ef773c8850b6afe8a50fa5ac2ed58cca51a4ded"; - sha512.doc = "d0f2de750f04ce63aeecdf00a5f0628978c78afaa753f8dd2b41a819c76bb0531bee8906d4eb2014075cf4d0202b6c1fb41a9093120614478045fcb0820a70a9"; - license = [ "lppl13c" ]; -}; -xevlna = { - revision = 43864; - shortdesc = "Insert non-breakable spaces using XeTeX"; - stripPrefix = 0; - sha512.run = "69c80d5243a4af96f2dd8092926d2766bad5d6beaeff94d6aa2f184a68a45fa50bb3abb91a4652d8c5e5617073aee9caddeeb73fd5399965f477be7075b7ca01"; - sha512.doc = "d0d033b646314eb250b245575ea2361b6c12f13eefab071c2b9f91524b08bfceb9fec197c3fa5f61e3ed19caaf4198e69ce1305bf1eb2daf1db6e30365eeac48"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -xfakebold = { - revision = 68929; - shortdesc = "Fake a regular font for bold characters"; - stripPrefix = 0; - deps = [ - "iftex" - ]; - sha512.run = "96d7c43d4aa975f5e948038f07c765397dfa240b41daee453064e8c7abd90a1a52cb8af02715de51b6e56aaacc4f8e6f72e40c562371541ac94c00e2f5b6aa2b"; - sha512.doc = "11b63158d7e780d390a1d4cb4d046108fa34212431d41dec582404047a8fa272e625898d4f1181fd8728bba789962b63b5462a9ea5556fb896b68ad2eab3c038"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10"; -}; -xfor = { - revision = 15878; - shortdesc = "A reimplementation of the LaTeX for-loop macro"; - stripPrefix = 0; - sha512.run = "6e3ebe83dc39a87aa86d5f173f56893ab1678253dc18dedf16c5d4a2df864e21b9b6e84c6bda56e2c624106efb2f73c110964948e4d553848bbebae87f05bff8"; - sha512.doc = "e75b3d57c09e1580282f4002b684645aa21aeed4f90626b7e439f30dd79edec9c6f23492eef83b67e9ccb885c001caca6201d43b5182632a5b38ba5f67488b52"; - sha512.source = "508dd3c696da5287cee35fbeca12aa60667908f1f456a9d1333197e76b707902d281e83146b81e0a095c168054ec96013074f5b0bc236e35cb17732f4158e2ae"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.05"; -}; -xfrac = { - revision = 69888; - shortdesc = "Split-level fractions"; - stripPrefix = 0; - sha512.run = "6a173abe1f5cd65db836157fa336be76bc9879e137f2542b3141bb096359c3bae771705a3b761730e1e3bbc7d623cc08ac46f87af7412be4fa4d7f42a70ba9b9"; - sha512.doc = "292b12956c4236510024bb3c85b4b1aa791de4eeba14dd88affe264c6384080c2340eacbeb19592424f2231e8347ae6d1b4fc32eda12320dd694557a982aa80a"; - sha512.source = "f22458c874e394753b0dc6296a86a2dc6cd8df8f03ff3f84e09118bb0069d84c2de56213368cf351ee922e8f753c3348dfac7bc4d9f496a3aae8302304460136"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -xgreek = { - revision = 69652; - shortdesc = "Greek Language Support for XeLaTeX and LuaLaTeX"; - stripPrefix = 0; - sha512.run = "b7531fd3f5c42080990022689e5e4d43a0d16f9fd206e389bdaa0aa8c9345e062dc0a14d3086fa0b6c8b641a646edde9b7031af91664f1dde56e5581f2019882"; - sha512.doc = "0221363435657925da4f8edc62b08b9114beca5cee39c410d57b1661a6b6f084761a0ce0be76968193d950b427aea5e16844b099a386420865765b569dd4bf8f"; - sha512.source = "34ae0948d3ed0343ebb4007997e3dd0c536f6893d757a83082a031e2dd5b3f4f13eb6cbb6ccfbe38b879e6a2521bf13d9e5a10a0c278c5caef1300114f26179c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.4.0"; -}; -xhfill = { - revision = 22575; - shortdesc = "Extending \hrulefill"; - stripPrefix = 0; - sha512.run = "cc0ea9e9d40a590444801359c455716856c807eb429aa01b460fd7566797490932bd3566a5c6f95bd6723e0b05bde1aa632b83383c8bcdeba8a455cb84ea9f1b"; - sha512.doc = "027287d941c4576d7f55a3d618e13cde5348ac072f3e546dac6f8a8814efb982f9cd0c4162866403f946d07ecba0ea8cc15543cafbdf9008d60b78d0ea3d26fd"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.01"; -}; -xifthen = { - revision = 38929; - shortdesc = "Extended conditional commands"; - stripPrefix = 0; - sha512.run = "21c5882ffbde05c50a6536fbf19f812a3ce6381f565227f61c8062281a2472a105bf6223cdc03adebf275fa23dbc1ebbb967349c715f20d1b516f100f820af3e"; - sha512.doc = "52ffddbfb4d0d579849b7a89d30bebe9f1d511751c89012712a8ef73ae3f4eb8799ef9b3755dc957c47fd874f1ce76b3ed54591d59f7e4d9e1851c50aff3dd4b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.0"; -}; -xii = { - revision = 45804; - shortdesc = "Christmas silliness (English)"; - stripPrefix = 0; - sha512.run = "a5355a456005e09eac4135735973a14a6add3a31639fcea441d8d6a7c06e7a7efbfc1470d485ab317fa193897abc2d9edeccadd19239944014b7fccecdda52a3"; - sha512.doc = "c9b348da09c3a9c1522eb7713a17a58b3eabf4ff8ed52e8d14dc9eeff528ed93af505b5e3cb59c1af4c2ce999c6c1d98f66d026a6ab3d7a09778230286059d84"; - license = [ "lppl13c" ]; -}; -xii-lat = { - revision = 45805; - shortdesc = "Christmas silliness (Latin)"; - stripPrefix = 0; - sha512.run = "e4538ac31b6508371ee156168d4da71644a65297b91be7f070291f35563a45a1ee5a528d25585bc23a4690e8fc5c6ad04bfc829de4e95f49468a5852fac9e822"; - sha512.doc = "50322d89f494d07793d964fe515b8a0bacb74bd5706a6da80f6860771a8e3cad35c7d06bf398217a7e4364594d54f4dc490f39980194804a04460047ff5083f8"; - license = [ "lppl13c" ]; -}; -xindex = { - revision = 67771; - shortdesc = "Unicode-compatible index generation"; - sha512.run = "bf812f7ea5f981969b1963f470a0006c4afd937ab27f6b40f7897dc2b6ddd1a0ae60f347b8ed13483ec4fd9feccff257a79dd7b8a2720be1d49a40fe2b325fc6"; - sha512.doc = "ec93cf3bb639326dc6905be018481da8438ebc5558e4c161419910e1a4427f6f7bb7bbf35ac779ea6769b6c009f9b6bf657b78c7c42bf7100725e8cc6252c975"; - hasRunfiles = true; - scriptExts = [ - "lua" - ]; - license = [ "lppl13c" ]; - version = "0.55"; -}; -xindex.binfiles = [ - "xindex" -]; -xindy = { - revision = 65958; - shortdesc = "A general-purpose index processor"; - sha512.run = "9b7fe97c14e3cf30d1e6743c2d7b4460e8bca901ba3ee216001f1518ff4d834fb3d9b67085825a6e152c6acde544c41cf16d56e609016caab89a594305a21599"; - sha512.doc = "d0dacd7cfa169b03b7fa9d0b351133582577c3908323f501d7bca7b0165159b72c34f62abfd73b97065baef8cf179b292e654759f3b3e324112623539e5acfd6"; - hasManpages = true; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.5.1"; -}; -xindy-persian = { - revision = 59013; - shortdesc = "Support for the Persian language in xindy"; - stripPrefix = 0; - sha512.run = "07313253d80b5ed6494e1189088908e03590424c7d24038a437dcbe83637db9e426fa0989fa202f25f62e112cc77df3c4acef111bda6c8b44dc2b2660af959da"; - sha512.doc = "3868c7f2c20e22cfb3b1ffc61c830581d774ca909c4fc450586ed0bc82a091546efc46540a883e667ac5ac7d292a4786019384afa741599634a2fc05975c36e7"; - license = [ "lppl13c" ]; - version = "0.8"; -}; -xindy.binfiles = [ - "tex2xindy" - "texindy" - "xindy" - "xindy.mem" - "xindy.run" -]; -xint = { - revision = 63562; - shortdesc = "Expandable operations on long numbers"; - stripPrefix = 0; - sha512.run = "7c98cd18683bc57dbae80c74fcf30995519f5c6176b5af4865ecf3adce844ac0a58c5cef2bb96e30f9d244da37effbc0b164a544dbdfb9f69ef0314c0be1436b"; - sha512.doc = "a1ecb80e4ebb43b5b3979493f426b89d7b952c03a388f3eb36d3496506820b97e15926736f44f94195336224e3d382139458ad8c6f6060bb5129ce4edf9d3e39"; - sha512.source = "c05b56b92a09c51eaa9a3e12bfe52e85408efd97175a2ea8f1c504bc5fcb6800776360e9453b970d048e97b129da2316ae5fd5c257978c3423bcee04f5c864db"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4m"; -}; -xintsession = { - revision = 60926; - shortdesc = "Interactive computing sessions (fractions, floating points, polynomials)"; - stripPrefix = 0; - sha512.run = "d1e279e733e37d6ef163a1dc537f5c02119403710a930f409cc6cfa55f1c08d9dd30bf4aeb14b68e4080442137a7352207ca8dc9bd7f859a8d19cf9205b68c1d"; - sha512.doc = "1a99ce3ce5e2a311e1dd4086f416738c48cbd42ad0b37c372fffcb0a4f035b3384f1b4963cccd2b602164f256e4bcb8d9b1d3efc56c99382e284d6d97e20b7c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4alpha"; -}; -xistercian = { - revision = 61366; - shortdesc = "Cistercian numerals in LaTeX"; - stripPrefix = 0; - sha512.run = "e0b4db57c0c3b819f1c653f097c6adcad1d2b74409926d5e0652fed4aced3be5b82ec5f663d85769261fb62e89d16bbe36ed87e6ca2352ab9548fd322c6b7b5a"; - sha512.doc = "673d6a01619a36fd8db88ab056a8560200e03de519799b867583d6fe0226a25661245e4942a1e2b13a23d2913a137736f6b10ecb25962e0b4afbec8e2b568cf5"; - sha512.source = "8c305d95953774aaa5e181a3ab2f904b6faceb2387a6b4c9dd4f6c11eb3ddad4e31088a11db48d2ca2a0a72911f5cff1d3bf5bf37a933ceb76805a6265d3c816"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -xits = { - revision = 55730; - shortdesc = "A Scientific Times-like font with support for mathematical typesetting"; - stripPrefix = 0; - sha512.run = "8c47de766f965fcb50399e59d20f030e90a28e2aaac018ab1289a1a26b16cd6c9c7d3fd18f1d2b84fe86a99734bbf2ac9b58bfd723a7854bfe29141ab6acb874"; - sha512.doc = "3c4594f4023f6ae4dd6ac57841720a47f00ae65fcd6930d4e8ec94281a71bf97e7acea26c60d6866304b5018e866ae87554cc470e671d47ede6572da1ac2970d"; - hasRunfiles = true; - license = [ "ofl" ]; - version = "1.302"; -}; -xkcdcolors = { - revision = 67895; - shortdesc = "xkcd names of colors"; - stripPrefix = 0; - sha512.run = "3a2c40713d8e826c1bc09589e56ae6cf661a73cd32bd8903f80f51d71fb79ef34c0be9395ce2f3915fd1ec1385e970945eb00ed0f9f598294363742fe13f4d8b"; - sha512.doc = "85b7b920d701a6e6752ed78ddf718ef99b7c6684441012feb5bdf2937d3a16ca8a89033e2a5eb723888a52a913cedd320a42c2b902696f876437e9f912a05aa9"; - hasRunfiles = true; - license = [ "lppl13c" "cc0" ]; - version = "1.0.2"; -}; -xkeymask = { - revision = 69223; - shortdesc = "An extension of xkeyval with a mask"; - stripPrefix = 0; - sha512.run = "1502216d5f8b5b2f15317f7dd9faabd11e06232a093a74a64a7114b5f2307e7e96065810129713c679d4aa4d2e622c6a1af8dfb31719b447e9d8fc1e8026e027"; - sha512.doc = "812473ff009eceec4cdf23cfd89dec769566f2027e528745273061047b4abb3b5b62426492f30755090c664f61e33b675d333cb0e9002869339a4636e6fb260c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xkeyval = { - revision = 63616; - shortdesc = "Extension of the keyval package"; - stripPrefix = 0; - sha512.run = "e7f8355a0dd505af021d413b7e1ec605c083b9e552382eec48de85a1d037937696fc0a5949a4a8cebb065dd339c70742863991bc855c1ffc82177571c16cd313"; - sha512.doc = "f7948832c943d3746c3115950259430724abee49316aaac0343e0959ddce796ab8064583d048f71ad39332df966557da9a2ec3c2752c16b333cc55bcd2cf3c7e"; - sha512.source = "8eedead41d620e3561dc120e16d745a18e475107ba3144802200bd043cee93efb2062052ca220da4a4cbbc431e7d432db1d217ed3f4c8430526ebede52cada1e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.9"; -}; -xlop = { - revision = 56910; - shortdesc = "Calculates and displays arithmetic operations"; - stripPrefix = 0; - sha512.run = "6d1ebe5d3870a07175b5c07840dd2170f2309790d1b828df69b716aa83db1a35ff70d265a33d8fc0f6ebe0c4385b7fccee8445ab93b2649d3b27bb65e41f87d5"; - sha512.doc = "9e1cdf96a23bd468c2e4f358ade19c509685563376d5a7ffedf5cfc122138b14d1075c7ae8c8a00261f789d4010a9df7dd5b1e6a9db5bc7efb067168e7866540"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.28"; -}; -xltabular = { - revision = 56855; - shortdesc = "Longtable support with possible X-column specifier"; - stripPrefix = 0; - sha512.run = "6e49b4a2adc351394bf5ab5cc04d532c36196919a4de8be1ecdcc22c6f226a2d035987df9aa70144d701d9fdeae1dfa07280458a934e289a5d1b5976b2be3ce1"; - sha512.doc = "daa1f1ee3092d545b3949afa781e40a576a8a3ab1c20e40237d83c14455fcece353dee03161ed1725d3f54c8963ba94c683ae0874a8668c8e5c27ad3b58f227b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2e"; -}; -xltxtra = { - revision = 56594; - shortdesc = "\"Extras\" for LaTeX users of XeTeX"; - stripPrefix = 0; - deps = [ - "metalogo" - ]; - sha512.run = "ff75c7b2f36f0e3cdc466dde35d83ccbb76c9c95f5d191a5498831247d1d418b69a8f0df8b263eae78e4a13694e628eba64c24e7480c7dbf56948cd5b1504a76"; - sha512.doc = "6fc84121dd3486f5f7744d757520e2b4d7baf83686e2630990be7e72ccb121e5b417779e4682e6e8a566b016a8995f80d7d4c6dfb3d6d2c9f70ed506bee99d64"; - sha512.source = "c177b99366479f6ed5ef935be07fbfc3425b48f2c3d274e175bbde9c63cbcc93ee4bca4c3c2886fdc2894b627332ff7edffa5b1083ad86dcced56bfb0d9fe03f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7"; -}; -xml2pmx = { - revision = 57972; - shortdesc = "Convert MusicXML to PMX and MusiXTeX"; - sha512.run = "9545fb5ca0e95788afab79d8a29336f337619adbcac68472bb5de6af6c54187f19bda655232175223168891c064f6fadc67c4ab8f5a0256e2c55e1a65c5e6f6b"; - sha512.doc = "973960f65159f5107caa7e9a041dca75f0171fc61f94794c7b7560eb9b6898534974fb8b360a28dfa3a01d422b71618bcaf8aba2ed25ae4d4b9f67d24ab730be"; - hasManpages = true; - license = [ "gpl3Plus" ]; -}; -xml2pmx.binfiles = [ - "xml2pmx" -]; -xmltex = { - revision = 69742; - shortdesc = "Support for parsing XML documents"; - deps = [ - "atbegshi" - "atveryend" - "babel" - "cm" - "dehyph" - "everyshi" - "firstaid" - "hyph-utf8" - "hyphen-base" - "l3backend" - "l3kernel" - "l3packages" - "latex" - "latex-fonts" - "latexconfig" - "pdftex" + t2 = { + revision = 47870; + shortdesc = "Support for using T2 encoding"; + stripPrefix = 0; + sha512.run = "9a47581909735a9ba582b71a132c925beab45cbfeb0201c93d138c35670fdf65580e6dc20d9498458e01eba7088c81d67cce329465e4763235e3f3404959c5c6"; + sha512.doc = "8c30658eab02eb576963a6a2f722b143444abf5d286473f165b6cab84c75ef703462a1841121a5d12cf822b150ce8c23a96256754a2d662fbe6c451a058333ef"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tabbing = { + revision = 59715; + shortdesc = "Tabbing with accented letters"; + stripPrefix = 0; + sha512.run = "dcb4bf112afc6a2221030ee7cf0f0b3043dd12a178195ba57afd10702b3efd65948d58607334dd9445270cf69862011d97b72a0f8ca5868748174b1462988132"; + sha512.doc = "e056f857e62c1fe3f6b0183c0929e617525586068c62beee604b904695274d4c271d4b973a8a8c9b046792227df389a61591b528a8a4c1cb5c9916618206de48"; + sha512.source = "7ed54e677b3dbd8e10e85e84c69791339fefc223a753164c0e9aa8c47301ded6c0737cf62b25cd9d3b152eb63bc32406d9a8a86a620b0e8e00d562ee795f6aa8"; + hasRunfiles = true; + license = [ "lppl1" ]; + }; + tabfigures = { + revision = 25202; + shortdesc = "Maintain vertical alignment of figures"; + stripPrefix = 0; + sha512.run = "d2a1fe985a74427888995437beaafa62b5def851d6f2a7788ead9cddbfcefd7206366a6711f29e85d2705c0d787bfc88accc56c93b827fa372ebd9cfc562f2c6"; + sha512.doc = "5b2c7c5bd350c3dba68117151f3cfd6eac8f0e7ed602b44406ff9d15a79dd7de7e0ec303b1163e3c882412c86adc48afac6c9653cf1fbff86e7cf6a7ce852c94"; + sha512.source = "78602de26e50e0d9ee43b8289a96a3639904bdf79983d4633d6c11af1c8215d1e77649f640ecc6b3f37cce30e6cc6b4c204e2cec58a3454c8b8486104eb17922"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + table-fct = { + revision = 41849; + shortdesc = "Draw a variations table of functions and a convexity table of its graph"; + stripPrefix = 0; + sha512.run = "a6300b1989f536fecb27d300bc0b27afd93f7f72b894fdb87bae5b0756ab241985ee2e5b4c0b68d1b2cc5611aafdb62b300fe40e2a08df5f6b11774f13309756"; + sha512.doc = "a9108cee93e6c7250643636619f923659d468a2148f5b04168fb08738d85e794c1050fef8152fb95d114551f6967c955f3d6f548e1ede37711b98b1362e9910a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + tableaux = { + revision = 42413; + shortdesc = "Construct tables of signs and variations"; + stripPrefix = 0; + sha512.run = "1846fe9da749b92700be07c094556fd296d47123df3a5d6823570056e6ce2ca8ef365b70f6ab2a8577602d1be338867fd2610403f89729dd51632d404951f84f"; + sha512.doc = "cfa58a8e76dd61659f6c13ea6b3f97ae484715b735028c513576312dfa7dfe92c8c15a0858077e3ff2399807274dd5a836182ea65b948a976f6384bd8d1b19d6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tablefootnote = { + revision = 32804; + shortdesc = "Permit footnotes in tables"; + stripPrefix = 0; + sha512.run = "90812cecdbb464592b17b8faf4d81b221844a354b0a3d3ea30cb72d0b56c4ff7eee701caf113e13586315ce846d30de6ce8d5028966f2c310527e34e8ec90464"; + sha512.doc = "712c1ab696f5924058f4ea6ce12e3ff14fcbf79a78328259c4b9acfdaad33e9e4dddf36dbb322598f09a8fa3ca75d68b474fe1a4bcd4d25752704e0c4e6ba5d7"; + sha512.source = "70456471a5997592668198463d1e44af464e9c24619c09d186c952c5afe2bc5171d5c29442820b267d1782a966fbe63997694427f1c870d14ec6194ac99ded52"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1c"; + }; + tableof = { + revision = 59837; + shortdesc = "Tagging tables of contents"; + stripPrefix = 0; + sha512.run = "e577e1e8df3fd1ad12a2cbfcd05ffb1184fcd3555124986481c62a33ed7f5789bf1858a1370888887d2aae0d2a508a891e5e67bb0a4a1d9a924b3817c2d9e234"; + sha512.doc = "bd568b16c6e708e4d0ee9810ba97f8363c842c22156dc90a257fdb0319eb49cab4f6ac9faee0700687a8a6ee54ea02b9660635cfeddd5275365d9c7f38218784"; + sha512.source = "5086e314c042757a5e90bcbde9fdbcedeee689f89524df43ab390eefc7bf10eea6a9c5bc83b359b00c3ae351fa10f8e8a64b356adb8e7131d48568e06a8ed0d3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4c"; + }; + tablists = { + revision = 15878; + shortdesc = "Tabulated lists of short items"; + stripPrefix = 0; + sha512.run = "ed0ebef871c7bdffe93e2cc38b823dd13376c53e4388daa8aa1198cb213010594c9bfe468ec0e42901df2dbd1b938e7f037cf49ef2cf6d9ff3bc53502b220a14"; + sha512.doc = "afcfa520702fd873b4deb7c4acfbd4290262a0df133c87f01698d20b8d17fd5b5932384124f49fb4d90155da284b873bb3ee1a2281955449f8ca2f278c38d39f"; + sha512.source = "34ff94c3adfff4188daf4ff906721833dd925c84f107867d7931fe66c58ea8a8438737065f64a9aaf57acb0eeac9e17e8388dee7a0af93476f5add226d4481e7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0e"; + }; + tablor = { + revision = 31855; + shortdesc = "Create tables of signs and of variations"; + stripPrefix = 0; + sha512.run = "64169a74a787f8877d41d5e32c42e5659950854a1e20cc05103b3ed58c54fb800a9af0701a40a6c5b75553b86d675fbda51948106cac464785c3d46aac77c979"; + sha512.doc = "77a6d1b47337f015dbfd39074e1dae417c3bea3c9635955c6518d691ff336854cdd7587af54640282b45f5bf3885044d3b6789a0a73f39a726aeaf0afd27c883"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.07-g"; + }; + tabls = { + revision = 17255; + shortdesc = "Better vertical spacing in tables and arrays"; + stripPrefix = 0; + sha512.run = "1a341985ae61f047694470d19d4e192b4f4e01c0bb595d91b1f80080eed3077be4e40b431cc05b1bb482f18c30bf36e6076542f2cf37a49dd6b065b0fe044bca"; + sha512.doc = "f458058964660b2b1ff2a61ff8ff2ffcfe7ab103e9714cb1e7c307a8bd39c5a1a6990683c4ed7aa401cbe9b9dcc083dfbadd80a5aa00bcd64c0fb72638cf71f2"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.5"; + }; + tablvar = { + revision = 69212; + shortdesc = "Typesetting pretty tables of signs and variations according to French usage"; + stripPrefix = 0; + sha512.run = "0ecb62b92529825d893d5ae686aa7d66576da1915ff760ae80466e9c76c2951f1300e72b3bf039a61997ebfaa9f72a8c56fa58f53c65d0a75bbac71d830dfcbe"; + sha512.doc = "7cfea26a1abda9aa3642c5d48c763184fc0f7a18b77fb72b8083c7271847b6d7ce3bad33fca96f082abd171f5f013eafbed51bd84b3ec046d82be13c11043f2a"; + sha512.source = "871139aa0cecc116ef7e3bfe6cfd048cb804ccb108c18b6fd71bafdc02bfbce56d297b111ddff348e92f44fbe1a69e06a5be3693386f02766475004d78e54d06"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + tabriz-thesis = { + revision = 51729; + shortdesc = "A template for the University of Tabriz"; + stripPrefix = 0; + sha512.run = "b1e93632159fa6b5ce46a13b6d2bbd3115a09fd7c6908a8465934e37feb0633eea827fa1ba8521d91a0d30492135a428463f6aa99cca0c6fe7db640d1310c6ae"; + sha512.doc = "e56f4a93c7cdc68c227791a21fbb06e44193e9681e677f383d19994c714bdb8d0487f9550c0c94a78890f54c7342aa777349770b4ad04b58e191fa62b31a3462"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + tabstackengine = { + revision = 46848; + shortdesc = "\"Tabbing\" front-end to stackengine"; + stripPrefix = 0; + sha512.run = "2f6245d65a7d711d598b894c8acfd8d2a032ae210eabfa219934e8fa086bbe3edef81e73092234e5528f9f62a6856546aaec7eafe5572eded155ca8fa5fc3999"; + sha512.doc = "6ce0b2ec254e44bca6f6cb746d4e3762735e9bb85e561df7628d3a2e2e35ddaac1635c825f27900d06badeb310535e73c84495e24748c1181825fd61fb03105d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.10"; + }; + tabto-generic = { + revision = 15878; + shortdesc = "\"Tab\" to a measured position in the line"; + stripPrefix = 0; + sha512.run = "5b3bd8081ec6800c96ce4b4cbdd8091578ad1df2b625fb2792202a6c31f3f126d612f99f04802d82d490cb529e03e63f98b01c7842ec0df69b48c2fc289108fa"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + tabto-ltx = { + revision = 54080; + shortdesc = "\"Tab\" to a measured position in the line"; + stripPrefix = 0; + sha512.run = "8654a7e3b49bbfe6e861a6f757d8553f78149e7187809b03f6854f2173143e10195385d9e8b35510e49a5f941b27a5796070d6db1183b58e4eb71c452d4a34e7"; + sha512.doc = "35e98681472b9d6fefa25a534385133d630f072a75a045c9adfc4b0e775095609ece27322e3fe8af451db03c0ac3b63141c3cc7272924ff758a8985389040a31"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + tabu = { + revision = 61719; + shortdesc = "Flexible LaTeX tabulars"; + stripPrefix = 0; + deps = [ "varwidth" ]; + sha512.run = "b40dc1e91084912df03175a6529223c6f24ae3c0ec77cfb8f1f8625816ea78c044c8f01f1b473e84696421d6772d9201fa4b59aa93e6f014b73598d16c09a6cd"; + sha512.doc = "5ef0a71d643bf5069a622aa8c807bf87db7445caab1f17b5202ee25ddab5368e94e796eb16de4fb183f294cedc232d48cbdba68f45d2451e01a2483d6869822d"; + sha512.source = "7c80ee8d25933e5d1c579357cffdf7177b0a419a847ca1e671cb1dda19fbde9b3680658df6b814d5d92953dd13eeee5100a5aa2fdb5fec3cbc1e213545cb3a78"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.9"; + }; + tabularborder = { + revision = 17885; + shortdesc = "Remove excess space at left and right of tabular"; + stripPrefix = 0; + sha512.run = "a30f668ea84238df674c079fea6b05878776b26b4f6465385e26b01b16181825a8cc20767fa45eda8e7870d272875bc9664aed145885dd655d15258aa072ebb7"; + sha512.doc = "f0376dfe99c68523332be0e83c0a186d7e3051862fac22785b4ba1273673fb9b1776654a127ba1c617af67063763e5837723ca2f23b3f7dd012628bd40ad0604"; + sha512.source = "862ea87bf23f2e4f42bc15fb82d9e417b4e51d7fbd555383cb985892b9b40734b38dc4f0dfb09790040c64791beb2cb2c6bbd2df9373c75438929be011748978"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0a"; + }; + tabularcalc = { + revision = 15878; + shortdesc = "Calculate formulas in a tabular environment"; + stripPrefix = 0; + sha512.run = "7535398538d6802c4e70858028ce6e7414aa8a88336e71f90f7f909d015bf896eeb5e6652cc5bc5a2bb384bc25d280d8cd6506f7ba05823c20dda04fb3adf0ba"; + sha512.doc = "7e35cad1507cfb62117aaddae77c3faa5d19c4e320193afa0054415e84d49833ba64afdf743b6241d611dbb4d45c6a532779293924f20b6c748659a361d6f30d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + tabularew = { + revision = 15878; + shortdesc = "A variation on the tabular environment"; + stripPrefix = 0; + sha512.run = "512851ce7641e0904dd25ab8a5cd5ac0dd281154067e09c4389fa3d6f330d30099dc60b252de4ebee52a2cf28d6b7d10bcf63fe4ab1472238db35754adc1dba6"; + sha512.doc = "4b5b8aca9d9be8cc6618d9393278f8da2069341a982cf6cda9e561b64bc158e5c08cf9257b592f82134cd74ce0b69682e15339d9068d9fedcdb26626dc2b8a7b"; + sha512.source = "9779876bfc65936043b0b4918784888acc68a8e8aec3b5eab6eea5cba3fea10ff0f696d1c38f68b37227cc086ca519630a96b945b33e3c1b853ee8ad95ec08bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + tabularray = { + revision = 69926; + shortdesc = "Typeset tabulars and arrays with LaTeX3"; + stripPrefix = 0; + sha512.run = "bfbce523764d979d0ab24992be6b0c79dcc20dabbdab195496f11e21f01c349fcf0dff8f400b6833dc046a74e27468b496b99fb65d1aeb820d7c4077b21525ee"; + sha512.doc = "2b58577fde437018269468d81a9f50e39b6cd36803874dd2f09e7fe0ed0fc2f63c6bc195fc433b997e65dd43ae15cfbfeaadee8f46fe63bd32bc3ddf91fd8507"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2024A"; + }; + tabulary = { + revision = 34368; + shortdesc = "Tabular with variable width columns balanced"; + stripPrefix = 0; + sha512.run = "2c873a3840d8bf06a095ff3106b317ae6acfb8498d47b0229a37e247e0e0a9df80300759d65d13ebc9defb15d1cde0aa1e956d2f88bebab3311af459be47df0a"; + sha512.doc = "b619c6b3dce1421ad4f06ab5e6f0ecaa6dc4f55076b66303a4e5409b42a4a9e34d218251177234dc0f3dac13046638a75623db0094978badc4db93083660f5e9"; + sha512.source = "aa075526ddc2f793676ff45e9d37f02251660cec33b3f4a74da23e725181e48b2103fef16adcd6d622ea2c422a5fda1d46cd9fa1c35bbd72f06f77d05f3b4c58"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10"; + }; + tabvar = { + revision = 63921; + shortdesc = "Typesetting tables showing variations of functions"; + stripPrefix = 0; + fontMaps = [ "Map tabvar.map" ]; + sha512.run = "255b93a8eda59386b798e85741422c529903acfc0d06cb77f4b128c2e32e4a68ef32097888e921397c3e22434b581de30bb79c8cc6dc8357eaef94f26e6da04f"; + sha512.doc = "117158275aef7f9e5ee3e423e65d9ada5c2f6d28b660941a3d5d80ebb9716f4e35658e070911280e375b29290e2056ad3521acefa1eabfeda95ca9051d64a0c4"; + sha512.source = "48fd599f93d6a5310ebb7dab44aedc9ac017878bbd85d2f1bdb21a676ba95ce717be96f8a26f24d67c4ac4530d233fa8b9842f13fb124a8cc8ce3badf44c6bb8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.8"; + }; + tagging = { + revision = 52064; + shortdesc = "Document configuration with tags"; + stripPrefix = 0; + sha512.run = "8947ad0dc443891e0b5a395a27d2857acb5879821443ff64cb0b15b99eea7a69401ba165b26565bac1b0036032d49241504ea2e008106a85cdd896aa28abd9e4"; + sha512.doc = "06d470576136a96edb69bf595e55f16416da552a5f4a84980ff5393689cb58246d4fbe62b979c22b85c5abc58b926d9be63cd0ec734b43c653a0d0a5c4b04d8a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0.1"; + }; + tagpair = { + revision = 42138; + shortdesc = "Word-by-word glosses, translations, and bibliographic attributions"; + stripPrefix = 0; + sha512.run = "146c2e957965fb7ad9976a4b3b6c40d28b8d0cdaf0c8b9627f51dd55ba88b32ad7490bf000bb853a416b5dcc091243b9d6e92999431327a05879adcf89809d7f"; + sha512.doc = "af9dcc1c1dd0a5e44d3f436569cf5d36f8154b70219340dd914feb3d8c036164f1bd70eeb6819bb51a06c0f5c5dcab1b3ede8be4b4d22b2536529474d0d841ab"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + tagpdf = { + revision = 70259; + shortdesc = "Tools for experimenting with tagging using pdfLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "cf20cc71bb96599498e470f62f125a52f8457cd6a5f150a171c51c379c9d75d6ee3116d09a281dc0c2a079182a3ccb70c8eb12d5f8679b4f8839f63ce4da95fe"; + sha512.doc = "41c3de45c71f44af9c022c0a329b9e6e34956f15884d6da96373dba008b14058c851f7c51265b0f408f5154233a9e84979395a9a970aee36ac4d465209572722"; + sha512.source = "bddd07551ca8dbb27da3cf82b5caa8a6a89de15b4d13d50997ac0854e4e9b2e480cb371f7843af960f698ecb6f19ae376298fac3560488c3072b141fa1ccae75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.98x"; + }; + talk = { + revision = 42428; + shortdesc = "A LaTeX class for presentations"; + stripPrefix = 0; + sha512.run = "371c640254994616744b2bd0c9b4040415392bb2a3adfbe5f4656faaea5bf3e7d2d4ab35373a65a857fd57112f7fc628321492d5bf7c5b052e0026c277663d7d"; + sha512.doc = "d6a641789923559a94b0077d718e56258804caa1dec0c9ea0f9d010e92ffc361884664ac22b07b95d20f464d18ac76301a718430d8f1ee30172489cae3b844ae"; + sha512.source = "10661b5ee41914bdc60b5ab38c887087d6529b976a3acdbf95bf80160c6e432fe6f8a4d6030711f5672f8aea564fd23ada09f92b0e3a2a05ede903026d24bb36"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + talos = { + revision = 61820; + shortdesc = "A Greek cult font from the eighties"; + stripPrefix = 0; + sha512.run = "50a35159c65afa43900ee8633d2b86effa5aec6a430f2e8fa85f77442da35b140012b27959155564e29286aba465d9bab17c9f5ce5ec0a889ec4ed5dff1b4dcb"; + sha512.doc = "9bdbd72f86e0b957580bb008ba349eb428721913010e9fe2cd9ee9b01733d6259914712b60a4a7f0f5804041e6cf876d8bdda2910de1b191715c1d9c8d8fbf77"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "1.0"; + }; + tamefloats = { + revision = 27345; + shortdesc = "Experimentally use \holdinginserts with LaTeX floats"; + stripPrefix = 0; + sha512.run = "bd45962a9caa5b098b6a6a5c0bd3fb964e13cf2744a5fc960a97910183799d532aba24d5f4774ac29eef14bf1439e285010b2e22641167c826d5a36262fc39ef"; + sha512.doc = "2b9d013fcb93682e9be0fb1758fc871b4784eef72a0892383a35073aa177ac29acfda5e54b6a919379b43a3dd0fb0b22dd44476857665efb59b2e9cf27bb679a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.42"; + }; + tamethebeast = { + revision = 15878; + shortdesc = "A manual about bibliographies and especially BibTeX"; + stripPrefix = 0; + sha512.run = "75a71590f1d905bd2a78b508d66936975eeacbfa32e850f599e94efa92da2b043edb8b0899b7027268fa131d94283c13432d4c4126afb79d1615bd538af52436"; + sha512.doc = "0df79f434714deefd60b9b9d32dfbd47ac7e560c26ec0d02465538eefbc779f0252aef235ae2e0a2d2d634d618bb52c73b31c229b5245866239776c742ebe69a"; + license = [ "lppl13c" ]; + version = "1.4"; + }; + tangocolors = { + revision = 66733; + shortdesc = "Use colors from the Tango color palette"; + stripPrefix = 0; + sha512.run = "f33e7b7bf60f7e10f6b58e24a53c374ffe84a48a44bd6e0259dd741c91f94e61f71c6e6689e204017eff1b0050aba4e6eb5715b3978ec633ab0fb41317b1c835"; + sha512.doc = "051a1f028e4e77eb78a11dda00fa950f9405a4703dfde7fa61318482ece12ba16e16ed0dd035532cd272cf3d66efe03d212f44c03ffa342db76ead6de1a5a2ef"; + sha512.source = "d88a247cec1928a8178d189b812175df0a6f861f829fac382c952c0e1d6a5cd3ddcf4216e88a50676c831b1940d3593dc1e441bc45b827591039a13a31f27aa9"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "0.3"; + }; + tangramtikz = { + revision = 66183; + shortdesc = "Tangram puzzles, with TikZ"; + stripPrefix = 0; + sha512.run = "81446f01dd97ef332003f8cce4becb670fe3fa284e540c0dcefd6627b03efcc87874d12c7c7e399947a269cd4fd66deff2064cd1ba64cd34d6cac2b4c587e802"; + sha512.doc = "45435423e7b0a7d7aaf9db5cdbc682b9f62721b7fb333c64cd76a773fd67bb7faebe1bb11a6424c15a495f2c2269a78698a7846f2e8902c16023f2af91c9be9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.5"; + }; + tap = { + revision = 31731; + shortdesc = "TeX macros for typesetting complex tables"; + stripPrefix = 0; + sha512.run = "07ca34ae47976c65deba5443052001406390befb6dc675af7651141505f088e2f67f39648f14a94f70788eda79221efb05c2246d1991811e697e88c7408f6cf6"; + sha512.doc = "a61b861cdac25c0d8c7d48f67abb9eed88458d0d55e8afb706adabfbed0d1e7c7159fcf000b8012885f82f849ee965bf6a2607f1b67f2d9191f59f8538147230"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "0.77"; + }; + tapir = { + revision = 20484; + shortdesc = "A simple geometrical font"; + stripPrefix = 0; + sha512.run = "f3d93c9ad813008fa72cbe317d244bca9a70855c20f327d22d1720b79d70019af0f5d8aef237fc78a598a545f44a4612f1e5a7622b34247044ab230bd42eed5d"; + sha512.doc = "a32573ba9df3d0b30e796f7bdd03e63ba8a96559380895b8db2d33fd9812c8b781b75d19a12a24405c52df13acd9a5f2e925da64b019e92a124d143345bb5bb9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2"; + }; + tasks = { + revision = 61541; + shortdesc = "Horizontally columned lists"; + stripPrefix = 0; + sha512.run = "0625dd459eaf53f842f6c36a550808c3efa8004a76cf25bc892b4c50a640ba588c2d069ce8df10f5c8febf5461390517357040b8a472532fd1f9b9ceddd9e5c3"; + sha512.doc = "a3240edd6bd7e87b7e1b6292fc227e166b54cbda7f130dc5f03c92707577a9b51f4da5377375419feda6a91a710f48b787dc3da90a1befe1d1328ea9a799f649"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4a"; + }; + tblr-extras = { + revision = 69776; + shortdesc = "Extra libraries for tabularray for caption and babel compatibility"; + stripPrefix = 0; + sha512.run = "d47a63520ae3b3d8db6054357bace701b890d2b6c325d620d69d3185867b3c0092dc9702fdea4a84b56a3e192a9e01c083d3c449cc597877a8efa1abe9f6784c"; + sha512.doc = "c4f99c06e5ebea7bc88806252e8182cff3282ce6d3eb0a1a71cea97bb132304049a4077c57d0a0d0bc8ea20c20e63b4299cad0d9c06b49157ebcaa2e85d3af5b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tcldoc = { + revision = 22018; + shortdesc = "Doc/docstrip for tcl"; + stripPrefix = 0; + sha512.run = "82348df3f6dcedc17a3cd50f709d01b1f2b0e4be9345e63d40ee6ad2aff908f97c7d19d586431e3fe8399a8d076505ceaadb5afe0116093240a6e59a335934c9"; + sha512.doc = "61f24f628c2b62c02e08e1a2a3a2fd917d057baaf977e7837b1f62e4331e370b83f8a0b00e679c86ddb1893d21af13211185502ed7bb19699d4f33356d3a3a0d"; + sha512.source = "44a8d3661061ab7dd828fe1cfa8342384e2cd20f5338d54fb0a79516a2cf686a3a6d2a1648d18a4d0c1395a60fe8f8a7b5af0d0c2edc38385852117f408f9e26"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.40"; + }; + tcolorbox = { + revision = 69370; + shortdesc = "Coloured boxes, for LaTeX examples and theorems, etc"; + stripPrefix = 0; + sha512.run = "f62323c290e39f10555df66bfe43a3a199f99fd5ee81c13e450cab4736c805a21cd3d85ae710ccbccbcc552d5e0370245600a5e58e605d6b3d35a3fefa2a6fe0"; + sha512.doc = "7f4f312fee029753decd7456a6e2d8bc829484282f93d245e73a3ae706f7c948091694c05bd2b4f18982b4ed11662ec1868ef0dfd7bab3f35c15a1c1d486f41e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.2.0"; + }; + tdclock = { + revision = 33043; + shortdesc = "A ticking digital clock package for PDF output"; + stripPrefix = 0; + sha512.run = "29e2e50d9fa432b08ea730b8a12228cd2bd3eefe61946e576a262bab06a966c0b28c13d48b1074a838a1a567f9797a943282d17e936db146f15e7631261761fe"; + sha512.doc = "139c82690e2c9b695a10a6f3e6f94a54c3ae4d4a929ddc18763e248114926554206fb4c007ed758695476de3750ffc1dce3db75efdf2598434f27abd1ac84baa"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "2.5"; + }; + tds = { + revision = 64477; + shortdesc = "The TeX Directory Structure standard"; + stripPrefix = 0; + sha512.run = "b03911aa9711eb5eeed77c026c4bbcf952da80322b855ac631e78c07a48ad2ff1a4afdd6e25a00257d1b70e054645f07f65c98fe74f6b1389be46625f5eb8487"; + sha512.doc = "f4078e3b1693fedcbe139b67c50824845644a2b1e57dd27f9e46e44504d8fe8ac0ca706590e9149c06e71794a188b20777bfd6bf1afe85f16c806ba4f9b99cd8"; + hasInfo = true; + license = [ "free" ]; + version = "1.1"; + }; + tdsfrmath = { + revision = 15878; + shortdesc = "Macros for French teachers of mathematics"; + stripPrefix = 0; + sha512.run = "f2c7a19dc327230f46320c695eaf40e9ff17088a709e38ec7f8de23f5c0cbeb18f606bd41625a1229734dacc80edba9d052c21620f7cdf213f60e915b6128010"; + sha512.doc = "9b0e747f90b75f372f04eddfb1c17dc73c3ef6a95d576077790b23bb496cee07afd3af5d1a53581872255c4e71b933949beae909591d0e1c407d9efc3f1d227d"; + sha512.source = "f44f98be464973ef3596d6e0d77e508280b597e4010b2c94620aad0ff950c8328ba1d4bbcf22e0f71f091c311d9b99dd979c73c182debeedd90ab14bea9e1d7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + technics = { + revision = 29349; + shortdesc = "A package to format technical documents"; + stripPrefix = 0; + sha512.run = "8eb9eab801bd83fbf0d9365c36a202f909cbcd49b8da6887f3e26aa3fcd047b8085e0b405f0f5fa7f2b5ea0ef21a9956114ecaa7934e1b46b1abe55583d5e759"; + sha512.doc = "2158bee41c25a1fbbf8c963e3364cf7d08e160aa895f54c77ceeaab7da6963232af61b4c7349d1be7f0aa84097bc7c00cac7748bdb8ba523a899b9e7cf6ed11d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + technion-thesis-template = { + revision = 49889; + shortdesc = "Template for theses on the Technion graduate school"; + stripPrefix = 0; + sha512.run = "5e9c6bd47744601258bef52102acdfc744e0dd1219a7236a5710d6dd98ba5ebf1061bd6070c5d02707a7c8b895e362db51f48ee081126bcd9a99e523c6b9e5c0"; + sha512.doc = "bcc290eae933b00cb32af0da6d31c6190f3b38d02a599fec7f8cbfcdb6f8737380d4c440911b08de5d768d9925526a63521c97c20a8c075ce8e9500dd3a62c24"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.0"; + }; + ted = { + revision = 15878; + shortdesc = "A (primitive) token list editor"; + stripPrefix = 0; + sha512.run = "42b0fcded19e05d5cf316fdfc0f1f6474816b656a57bfb5214a76f47e644bc16a42bfa95a21b80251723e2c30651a284d873d898e84c277922120a9169d274df"; + sha512.doc = "a36387e2520d7afadeb270f7393ef45ac1b26673840d541a50ecf864304d529b24be7d107070c96cfa123801284ffc53c9daa60753640fcd2ad6367f88887069"; + sha512.source = "b134ab90045781a2a686206d4de20ebf63ffd678d47d81815365f67eecce60984d7e17e3b9098e42f06876b1f711609bfa4133efb4b74705f25ba0e4323984bf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.06"; + }; + templates-fenn = { + revision = 15878; + shortdesc = "Templates for TeX usage"; + stripPrefix = 0; + sha512.run = "cc61496f15f9c4060c8d42de23e3bf6f6d2be02d3a8b4fb761f2fda4a9c3565d74bf1f107dd9371e096bef79ddbdef56d2e696cd84cb4fe39a41986b8ffbbc78"; + sha512.doc = "2a96b0963b2d09edd3f6a6866ae298001e6ccd4e96b98a9002df6e6718284a786b63761441c287ddd63dd5eba636fcb8ce9769d498962ffe2565e771902755e1"; + license = [ "lppl13c" ]; + }; + templates-sommer = { + revision = 15878; + shortdesc = "Templates for TeX usage"; + stripPrefix = 0; + sha512.run = "55b47c4718786fd4910d099878d5808288e83714567adbdbceea32a76e92f7e36c3f850d8597b297445a6ff428d1d0dbaf9209a387485eca0fb1a85f4909ed59"; + sha512.doc = "543b5cce4842dc6b084d90f9bf4e3c19c18a690ebe85379d9d93a5998fed06272bcac4cb3ae44f965614962827b9926fec3439322e38a720c134133a88cd94f0"; + license = [ "lppl13c" ]; + }; + templatetools = { + revision = 67201; + shortdesc = "Commands useful in LaTeX templates"; + stripPrefix = 0; + sha512.run = "696727231a51c33d10ca7c18690d2f960cd01a72b4e928c581e2a7ed26770bf5ea18bdfbdfd56372fc7289b59323025ea7d30f208e991e1c6c89a659a240597a"; + sha512.doc = "55c03f8cf8313aed72c9434eb26b0623e55a5644a22914ed82c64c07834258f0d2f9f7c083b22677be854f69bcc6d980e45158caa4a530df517083c1c590089e"; + sha512.source = "a14dec17daec4f731aac48a155fcd306528ba106518db1b07fa1b77d9a90fef82746a4b173f1ec072ac73023469bea88d70f3b3cd106b3557ce426fbd05062e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + tempora = { + revision = 39596; + shortdesc = "Greek and Cyrillic to accompany Times"; + stripPrefix = 0; + fontMaps = [ "Map tempora.map" ]; + sha512.run = "0e1cc1a13f7937e5497f454b15ca66e0975b784b80223a902bf12a9587abdfdb56116b100e04306b1999e053b7c3716b32e1183dd7e6624162611f3b70388df6"; + sha512.doc = "18259e25b2c9f2a9cfbce9a9303d8827af069bbe2a7ade5c14518ce2c19dc973a86fadaa99b2abc8bc65644ee5371c745abba03cca76a685382b7d8b6d20bc6e"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.05"; + }; + tengwarscript = { + revision = 34594; + shortdesc = "LaTeX support for using Tengwar fonts"; + stripPrefix = 0; + sha512.run = "c6a29d928b1f25dc4b8893f9fc803f3a5deef9e8e9aa4803153fbae5cdd7170eea819eafba8a165203e48c8b2f443c55ce682df9f7e968ab621f2cf7eb082108"; + sha512.doc = "35825a4c1cac91c088daea643e8a8901f0c3ea15c44e8a9328883c22c1fddab95fb32a65372af3979698f81e68d77b34764a1c5748460a28396480075cb594d1"; + sha512.source = "4afbd079f20f9989a817acf49b46409bfab6ba0b328249eedf428a5a11e127fedc6c763c87db08b8b7c453562400878ea0c54d6d66c6bb7d407aa498a78dda38"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.1"; + }; + tensind = { + revision = 51481; + shortdesc = "Typeset tensors"; + stripPrefix = 0; + sha512.run = "fc20b6f6b705218b82b5788582d8b017be783e42c87b3f35e7aa99a8215ab0168b7da899c73ef1ebc282bedd5c715e69ed9e1c19b94d9b6369ba8e9986b5c5d6"; + sha512.doc = "12e443e2ffe876732759ddf91c8948e9cfcebc3c1c96949c51f090e15dadfbcaf801e488c8d043855b576404207612ae91d982279cf0b29bd73d4a5d1528bb6c"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1"; + }; + tensor = { + revision = 67667; + shortdesc = "Typeset tensors"; + stripPrefix = 0; + sha512.run = "4e19620df8703906c539541afca09ef871e1cf6a20315b246ebf758c5a0ff5f2095c51d312b19f818e89c9714a79a32fbee708d4ecd0a0b0257546b0d940ed1a"; + sha512.doc = "f60b5bdde9a29bf6a13ee94833b0d1fdaa1e7958d01a6a42b20a995263f398f7fbd761150b71f66490ece636ad2aa2c69a8ac9447a0000265ac480396822db2d"; + sha512.source = "4a90f092c167a905cf72abf029bce706cbbcefd4dd73ffe791a132f22268a5c0322c246877a387739bbb15697555fb021e6132538b5ab9b188a9fa9135b9859a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + termcal = { + revision = 22514; + shortdesc = "Print a class calendar"; + stripPrefix = 0; + sha512.run = "f28ee31f06cf2b3119df8010aa6a8312d5365452e19c3a278db7bee3bdeafe9ae0d3b07decdf1a104d8eb763abc5e02ff0e6c7030dce924596ac89d8e9508e13"; + sha512.doc = "44f54dedd59afad78eea60ccfd43805dca1a4dc87a3d827e0fda26db15505dec18d91cf0629ec937dcf3eb14d1244f80559a0fa1ef09b30288bf687099fcec1f"; + sha512.source = "0dd39a06088a0bd2bbcc3a9d6715816368deb07c55c85897f7c49d23553ff941f5f68d7b0ebf8fc54c4fd4d2bb8a510cec3ac9d9b509f27aeee29696c75a7ef2"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.8"; + }; + termcal-de = { + revision = 47111; + shortdesc = "German localization for termcal"; + stripPrefix = 0; + sha512.run = "9d4d0be3e26dc69fa3986fbe41099330e97cdd4d3aa0b12a180657577ef839878aea9e546a5651cdd0ea45e7af3968c5b83b509ad5bb3ef210d42af5c00fd91b"; + sha512.doc = "48f0ec01526f75e9e2b8369f8b30bbd8e4f093cc91fd5b485a36e225de35fa0afc750508b6533f2ec82ef123805788e40e98d5459dc85a73bef675162e682fa7"; + sha512.source = "51d257533f7897d6b605a2ac26f323e3c241cb6920b329387f1be3bfc8444e98570f2dc4f86e78e81f5838204a90a7f79074989737005f035e076c41be74f4a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + termes-otf = { + revision = 64733; + shortdesc = "Using the OpenType fonts TeX Gyre Termes"; + stripPrefix = 0; + sha512.run = "df52961346796914dca6c8f7c45671aa5da8c8ae4d55b951b5dcec6168c90082c02734db1133a119c951e50507ff1edf777b8976e34da1fc1cbc7ad783d4ae4c"; + sha512.doc = "221decd0f8193912d30032544095c3f30c4d8fd3b52ab74dd167bec1de528c8c9b753681985259dba859f8fd3d06ba239665bbdcc93d80904235c6f62685dba2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.02"; + }; + termlist = { + revision = 18923; + shortdesc = "Label any kind of term with a continuous counter"; + stripPrefix = 0; + sha512.run = "799d5fbfb9b055e8674a244ecaac65c2f0412a4c173e6608fff946544142d851d8dbba02505fa8be21bc37b15acc2ba99a6f0dc77a13dd241fedea1c1b38dec9"; + sha512.doc = "14add37c32500f246eea2a3219b58a232c9a8f41cf3cf5a0d1d2aaf4cba4d700c1ba5379b037fe10cfc06385ff0a7d0925b46beeef15dff2502142e56f37e597"; + sha512.source = "2d6a14828ca29c08d0b08f33749deaafef88ec73bdd72450468b5332e95c83ccc5d29d0a154a6cc49a04ca0a9e5a17d0f28f25139d928b87cb14a2059d51d848"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + termmenu = { + revision = 37700; + shortdesc = "The package provides support for terminal-based menus using expl3"; + stripPrefix = 0; + sha512.run = "5c3d4ac4a2bab5e18453b9de0b372b364981444df3550c3a195a8fee841a6d76e73835096ff1b71a37f5e5acf0fd2777dbc8846be9345f99b004adb560ced517"; + sha512.doc = "029f4ae3b57e0b226883e66030db2d3c41cffc0a4dbd4f8b3662562fd566d8a09b7aa0c83d98f7fb0cdfbd1226c5dde9c93211565292f037e5b5554e9a5d02b4"; + sha512.source = "56c1396e90a4c1db5dd28ae96c6f3ebe0310c163d7fdb2cb4e3ade78b522b349fba0bd43556165c282bedcab167241033b065feaac4c4a5e3dc2d8a8a55dca61"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + termsim = { + revision = 61414; + shortdesc = "Simulate Win10, Ubuntu, and Mac terminals"; + stripPrefix = 0; + sha512.run = "132615cbdbe257f2c7643414ef4b577053425e457a2e2ee2a9b4d8d56a7e6758db587b7f5223ef1a324931f5468ac5365b7dde7b971312bc8b8ea069ee5efb9e"; + sha512.doc = "af5047a490608fbb5769b6b4d3dad3fac6b9b20abb5dbaf20d08a633045ea45ca1a01f572d3f0701567a91a8429ae0c7279fa82f054e6fe0802d413765c46ccc"; + sha512.source = "45ad375a19ca939496f6f6546c9d2568367b3cd49c11fe1b2d94785448eb679d3e82c41a3282df054027636ca367b86b82dc3d937b42056398c23622ffa6e34a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.1"; + }; + testhyphens = { + revision = 38928; + shortdesc = "Testing hyphenation patterns"; + stripPrefix = 0; + sha512.run = "c16a9299721c571ce9bdc91e4ed4cc54c973b43fed5189d2f377b2a9143d94d3eeba6bd6b728e3df92a5436b3e2c5e07a21d4a6af0210bf87784d40d96caa42c"; + sha512.doc = "44cc1d9afa4e12ef2dc1f7be2d7718fa33b80e5ee16c7396053690bfea6246f444b50cb044d314ec677436a3559ff1ba9fa227acb446db37bacaa2829c309b2b"; + sha512.source = "2f84528ee4ca5d8434b0042f7b24908ff97c45f27580a5b59bfe226b195c295d4fa546fe240acb981db6deba970e2b020d38c00e6bbf5a0cc1b3caf2b3cbd506"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + testidx = { + revision = 60966; + shortdesc = "Dummy text for testing index styles and indexing applications"; + stripPrefix = 0; + sha512.run = "e4179ab827eb21f27fabdd06674302ac141b6abf889e87c4183b4d86253ae35b5ea277ecb8ac36e66d51a4e25556fae092f98bfdd768d34728412f3bb8b5faf7"; + sha512.doc = "60761fa19984e3ab2a0b5420320a43b84c1174a4e6722c75523fcaff43206ca2bd01f24af74ee307b5cd7d12196238f86539f8cfafc27168bf134df74e2736df"; + sha512.source = "358c712d4073983f872dc9664bd6e138c7c66a420d1253ec36646cefa584c9148573fd978026de87d98806c71ea8f8f45c1cd0160b3be738d6fb9cd535d774c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + tetragonos = { + revision = 49732; + shortdesc = "Four-Corner codes of Chinese characters"; + stripPrefix = 0; + sha512.run = "dbb37eec17d41633d951b3202289289bffd9bf9a8f509cfbb7f98baab9b7e684e7d7fbfb5f50ce41251d09d9f0ea81fd9e68fa91984e788e5e43f8e398463fff"; + sha512.doc = "f55cba055574e78934b8766f02de08f417f625042627c2c1e64cb7fe39ecb1e3553d5b862afe521f4d65805713c856ab000e3db3b7fc906266886f2ebec490a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + teubner = { + revision = 68074; + shortdesc = "Philological typesetting of classical Greek"; + stripPrefix = 0; + sha512.run = "c5f03b824d75099a38f8d203722d0edc4136392ff282489f6473a83dc178f536eb972ede3bd9371f47f39dfc2dbda6b4db78d282642889b4036dbbdb8e49a473"; + sha512.doc = "f1d7123e4438f781f6f4f7448119c7dc968be54888c027f8a7c95e5c70f06adcb58d127de21679bc125355f85f82ec94d2537cb0467f7c285427fba6b8f50775"; + sha512.source = "a44d484cc8de4f280f35648c93bc1c3673fff20a3477098d58342cb579b443f4a417f528e7b80787bf13fa8feddb05dc2cb5d7c261d812a5473236d00fac59bd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.8.3"; + }; + tex = { + revision = 66186; + shortdesc = "A sophisticated typesetting engine"; + deps = [ + "cm" + "hyphen-base" + "knuth-lib" + "kpathsea" + "plain" + ]; + formats = [ + { + name = "tex"; + engine = "tex"; + options = "tex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "028cf62dc7bd7f62acdd005c1121b4fcd55f9130db61d3bfd782cdae22e2e51581cd66a43a827ce76f6e4fed09f2050ee81c13594f6df64817c3a48ca3d1d088"; + sha512.doc = "69e9a2068eb63d7a503be0aa3d94cc270485370be0342d5adf6fac714743a90b705622b8cfbd7e62e52c15f9a663fc3101d11a116c1af9c4f9f3f5c5d3dbfc77"; + hasManpages = true; + license = [ "knuth" ]; + version = "3.141592653"; + }; + tex-ewd = { + revision = 15878; + shortdesc = "Macros to typeset calculational proofs and programs in Dijkstra's style"; + stripPrefix = 0; + sha512.run = "9850acafe002f1b6b147d00aee55e4cd9c1813edbea0f570282119fd8b2f134d3a48c113cc9957c69905c4e88a06097c45829026342d7ec88838870eedd7fc44"; + sha512.doc = "05f6414dd2309401d1800e2b053d7907703e144f829c2e7623a7c98c1313da50c0a659c25fa0d9a0fcb8b50891c575b47d8fb8a90b925e105ed9a6f8c45b8667"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + tex-font-errors-cheatsheet = { + revision = 18314; + shortdesc = "Cheat sheet outlining the most common TeX font errors"; + stripPrefix = 0; + sha512.run = "403b4faae7b16b1eea5a4d2a7d77bcd8a6e7a7b5be54299b79635280be8f82f59d281380754a0bd1b9e53ff4fb534fb3bca0cf8bbe1cf0ee88ee4d925fba103d"; + sha512.doc = "adc72626fcb4c5a9285ad4a7cfd1c6b984f1aa26c7732f35cdc241f7b00d623f6b646e878317f30d10b9f47f4eee33e923538be58f3c15bee668f4fe652f0170"; + license = [ "lppl13c" ]; + version = "0.1"; + }; + tex-gyre = { + revision = 68624; + shortdesc = "TeX Fonts extending freely available URW fonts"; + stripPrefix = 0; + fontMaps = [ + "Map qag.map" + "Map qbk.map" + "Map qcr.map" + "Map qcs.map" + "Map qhv.map" + "Map qpl.map" + "Map qtm.map" + "Map qzc.map" + ]; + sha512.run = "5422f349d15233e6f49576fe3a65f8afb5cae6a3c51e5ad7cb56617d7d064e9cf574f233f789c029c04bbfc24e5948c115b2d33569e881373d68615ac709153f"; + sha512.doc = "db2bcc8da6d3bfb6f2165c1fb127b2b4a7471e41a0cebb851ce5465a18740d34948ce8292b4f6bd359621166602cf62a978bb179346dbd1dcfada49cc7972686"; + sha512.source = "e958408e6e64a54b25fa89b38de181c96fffb9eb8762959209799c39cead7a5525f220b7b3cd278e35cb9e3e49c1c85d565d518ffacb0695b0c3c09ede935266"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "2.501"; + }; + tex-gyre-math = { + revision = 41264; + shortdesc = "Maths fonts to match tex-gyre text fonts"; + stripPrefix = 0; + sha512.run = "a50a9eaa30cfd7754ae702a3bd6fced2d07fac858215b913945665940c71a0aafd2b59a0d0baa0fb9d5090773ef69a86864cc11126a5e30adc3d0e94cdbd2594"; + sha512.doc = "cd346226dc36bb4fb5324a43dfab7790cd80ec6bba992849dfcca74ea6fe8d85fe7e0ac66408a41ac1ef644e6b32c9b06d337c4f394fbfd8fba4153fbc1abfe9"; + sha512.source = "3c58821e5307257578ec149317cb621331aafa00bfa465eeb055f1f93691ce57a489a32a7eea068b12b70228433031de33c0ffe36b0e8e10b368e0ef5e33fe24"; + hasRunfiles = true; + license = [ "gfl" ]; + }; + tex-ini-files = { + revision = 68920; + shortdesc = "Model TeX format creation files"; + stripPrefix = 0; + sha512.run = "58f8b1dd44be6ea67dfaaa67a4f7c6d27d222ccc7c7898c31ade4f23ae39a9a5aace902f05ff48bb3f6d63eae38f9db93b75c4d2efeacd394230694eebc33fa3"; + sha512.doc = "9caf187a5589e49f946a7fc5ad332073dd2a90d82f71587a57ee9d62e365321fbf14e69e3e3448d85302cf5418a2eb7d94a114f95c575867b52579f6c35d5e48"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + tex-label = { + revision = 16372; + shortdesc = "Place a classification on each page of a document"; + stripPrefix = 0; + sha512.run = "513310d4dc5240d0b290d0acc941455ba64e069d19c223670d05a632033aba8de367d5dce6acf073af4df476876d3ee414dcf9f1f579738bf9bdfe6738c19d36"; + sha512.doc = "bc705cf6812515923d60cf44b75830bd3ea78f078c9ef88ded3e94f060155e1fbf5dc1485cbaa8530e1f10b41b421e70bcec6c61066ee98b498aba7ea8799dc4"; + sha512.source = "07c29de4e85fc21404dad1da3a01a5037b641526110fe5410899c60aeae6a92836de322895afc83824df60f431955a4da959c4d4c21cf17dc32929f445cc1ed8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tex-locale = { + revision = 48500; + shortdesc = "Localisation support for TeX and LaTeX documents"; + stripPrefix = 0; + sha512.run = "0e3aca622bb6fb49a06a3aea1d997414add9272dd39c10c3a1d80956dece59882993b24366a1126acab80f8a7c8328a30756f727210f829f5eb838ac0b9cb1a6"; + sha512.doc = "d3898da3687603b1f1f3f2f5b203d01c985ab0c3e39eeb05dc7c855c14fad8b73649777e4a0b7844c242bc8946cab80b585987eda37a1c10e3ba75c6955fee23"; + sha512.source = "b24a01b9845f79a86c12911e71ef179a4dd8f5a8284d067b760a8ac3cb906cbf2465ae3617e0196d9163348f3a865fea4e5869adac9921088b13d738803f87f4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tex-nutshell = { + revision = 70378; + shortdesc = "A short document about TeX principles"; + stripPrefix = 0; + sha512.run = "46f2ee7186bbeaebf250eaf2b5768ef4827bcd3c87a037fff5bc88d45c749f65e25f60a02639bf793e50bc66a11d9da365f4b1068143ab5edbf11c59818da02e"; + sha512.doc = "cb3d558047b0737a0dedc904f615c309be9b13ae53f99871d8facc62c3efcd00b933a67f496d24d9d896c1b96b8f21e257487b610633a73b30017b87e98bf70d"; + license = [ "publicDomain" ]; + version = "0.10"; + }; + tex-overview = { + revision = 41403; + shortdesc = "An overview of the development of TeX"; + stripPrefix = 0; + sha512.run = "1217aeba55d723dad2843509ad3adf205090298f2362ba4ce23d73ec581e439c344f055281a95f82bd8cec298c77da012cf892e60369562238bba7f8b8d258a1"; + sha512.doc = "0cd9941afc0e50d3d936f5ba1f9d2c7f16244899982ff7eaa44bb019653b5e4e142edc1ee608ca1664636c77178dd8a02f4625a2216a019e770651a718f0a27b"; + license = [ "lppl13c" ]; + version = "0.2"; + }; + tex-ps = { + revision = 15878; + shortdesc = "TeX to PostScript generic macros and add-ons"; + stripPrefix = 0; + sha512.run = "cc616b501be7c0724646d5e0f326a5729df8f4cb0c4070f92bdd3b5b370e496efd6208b3ec8b2387713810b9764c75525689f434b7f482a83fb0b8e9b0383cb6"; + sha512.doc = "2f82f63954c1407c2caa9c39a538ed1cffeabfde8ac0506906f0f28430d12e18d858040ee66f2326cad3fa758c23d1ed490b70c5d18eb68b699b7ddd0afd15d1"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + tex-refs = { + revision = 57349; + shortdesc = "References for TeX and Friends"; + stripPrefix = 0; + sha512.run = "aa03714a0ebb90c7431935608851c504080f8985db3bbba98cbfa9b957e0a3fbb87de8e0119bfdcc996d664aa46bb943c6f90b36c4408a42f14fcc8387508df6"; + sha512.doc = "f033d8d8bfafdece7b79c8417bce19dde484adbaa958497c0b4426448e6ebbfe8dcda07a34c336c3abe038447ea9e5177bce4660c9b8be36b0f94d02fc7a41d5"; + license = [ "free" ]; + version = "0.4.8"; + }; + tex-virtual-academy-pl = { + revision = 67718; + shortdesc = "TeX usage web pages, in Polish"; + stripPrefix = 0; + sha512.run = "23005895f708b07162b2b251be125b70dfa8ef6add8ef7c5dbab2c5a2e211f65fce8432cbf3ee324a9b72c2296d5dfffaaf5a52d77425e4d6fc3c042397d6bec"; + sha512.doc = "fd22d5a6c34e5ab7859bbb515d54e822eb5167853abba3e25d5137df1bc34f0bad9892c16f7ed5dfded8b90651551e1ed84a00d561c561ba18f50fa04e7bc7af"; + license = [ "fdl13Only" ]; + }; + tex-vpat = { + revision = 66758; + shortdesc = "TeX Accessibility Conformance Report"; + stripPrefix = 0; + sha512.run = "918054527c2d325ac0c1bdd621014fa4c79d7c6cf4ec8b5ac5d81dee84b9159fab0cc0047ea35eeb2de4460952126b3bdcd03395c29379e9df517ed7243206f0"; + sha512.doc = "f16ad935930ab663bb2e5b486c4fe53b3bd9e883c660d97893c4aa86bfe22f7ffed77dc66d88060f7eabb1daadd2dc77742c1d9604ea94d26594aba340693f35"; + license = [ "cc-by-30" ]; + version = "2.3"; + }; + tex.binfiles = [ + "initex" "tex" - "tex-ini-files" - "unicode-data" - "xmltexconfig" ]; - formats = [ - { - name = "pdfxmltex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "*pdfxmltex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "dehyph" "hyph-utf8" "latex" "latexconfig" "tex-ini-files" "xmltexconfig" ]; - } - { - name = "xmltex"; - engine = "pdftex"; - patterns = [ "language.dat" ]; - options = "*xmltex.ini"; - fmttriggers = [ "atbegshi" "atveryend" "babel" "cm" "everyshi" "firstaid" "hyphen-base" "l3backend" "l3kernel" "l3packages" "latex" "latex-fonts" "tex-ini-files" "unicode-data" "dehyph" "hyph-utf8" "latex" "latexconfig" "tex-ini-files" "xmltexconfig" ]; - } + tex4ebook = { + revision = 70117; + shortdesc = "Converter from LaTeX to ebook formats"; + deps = [ + "make4ht" + "tex4ht" + ]; + sha512.run = "7b2cc47523db8f9b987d2423e10d30d50684f2cdd45dceb846a0bec634ae5ee1514312d8cca46dce701ba1d86c9cfb21f0a0bccf67376f453fa5fec99165b19d"; + sha512.doc = "6011f8dbfe4308e17e8dae72227404374afd1c47e8ab2568248be67913ad1f170d7c83cd01a9e01e39607486579d2e9a1f0a1bbdd3230299109d12a3aba536db"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "0.4"; + }; + tex4ebook.binfiles = [ "tex4ebook" ]; + tex4ht = { + revision = 69739; + shortdesc = "Convert (La)TeX to HTML/XML"; + sha512.run = "c78b1daae522e9dfb8a0c3b49e04cfa57d68bf96555cebb5ce2700f87748e7c7f5092ad1329f9bb03d1c3f2f11eec58653a66aaa51e295b8aeb7f3606d7d87af"; + sha512.doc = "135b1475d6b4f8650a6e9363caeed0c769ea6ea2512a585b19767ebd440123f39206ebf80b708c37dc3f269b9dbec9bc91a306c36055324e883f679338fcca16"; + sha512.source = "1366b563e320f55c4a005e25520b942c9d4e6a1dc6204a3f4e5416fdc6d682cf1b3829233780f4fb7ea81881b3b32f741ab87c2496bc75ef45993c4769fccda7"; + hasRunfiles = true; + scriptExts = [ + "jar" + "lua" + ]; + license = [ "lppl13c" ]; + }; + tex4ht.binfiles = [ + "ht" + "htlatex" + "htmex" + "httex" + "httexi" + "htxelatex" + "htxetex" + "mk4ht" + "t4ht" + "tex4ht" + "xhlatex" ]; - sha512.run = "60c804d65c5d1f7c2d006e410be1dd6001ebc8dd96b7829c77bbad88685a1e18afb5ab8dd42e7c2542df02d0336485766b9bd7f0657b6683e55d7a1e444d4580"; - sha512.doc = "017d8d30a8371fa2a22c60a57b9eead2e3f2f9fc88aca858c701912d40af5212f6a58b77fcfba53214c98eb23142c08962827312010cd6474a0d66911d55ba85"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8"; -}; -xmltex.binfiles = [ - "pdfxmltex" - "xmltex" -]; -xmltexconfig = { - revision = 68933; - shortdesc = "configuration files for xmltex and pdfxmltex"; - stripPrefix = 0; - sha512.run = "a377856b79abb94771b54ed19e6f5ef02ebf80374ac868be2905dc23f36d821c79ea9a99077233edd5e125278e6d8bd44c40de50dfd56e389cb46c76348d51e4"; -}; -xmpincl = { - revision = 60593; - shortdesc = "Include eXtensible Metadata Platform data in pdfLaTeX"; - stripPrefix = 0; - sha512.run = "49777de1160b2ef53d845ba08fb0af29eb5f06c6fc534da4856bd0f02dbed2dbaa73ac24c45b1e787ea44d08199b7d1c462dc21a972cd1815fcbf65a08388f26"; - sha512.doc = "b8750478957f6b33163ef546d7be0c0ba4e5906d64a72cdf3edda33c663bcf7400eaeebe3119a175f21093a1b00bd2626df0156c8ebdfb9cdd076bc8d7953ac7"; - sha512.source = "48d8805d763169bd3024227edac213a5e57d207e63895492cc6f0a25ef38b82fe9d8fee76ea5309344bd397e4c5b70f8b72892d4054307bf758fb81cc8af3bd9"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "2.4"; -}; -xmuthesis = { - revision = 56614; - shortdesc = "XMU thesis style"; - stripPrefix = 0; - sha512.run = "3c9bdbd54cb99bddb9356586a1ba16d8e0ebe10d0120f6d6e7ae1c60375a41ce9ae9c01eded07b122aa323ddcb0e3ed9c68f6da6e716915f523e77bb343ee665"; - sha512.doc = "07e9b8eeaa864efbe6fb8e1c54e183a65f177b81454a2abc049e2efef8fae1d61a208273fd3cecb9d8bb8d601266f1c4897939c52d43fb5dff92ecdd3855c322"; - sha512.source = "9f3eaaac30cc9f396a3e33f6216b56485c27eb2f855b511642204025c27b40a529aa6dd1952c753a1fd50474ee6c5ef020f859dcc71e07ece39df090ed7ef46a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.1"; -}; -xnewcommand = { - revision = 15878; - shortdesc = "Define \global and \protected commands with \newcommand"; - stripPrefix = 0; - sha512.run = "3296d6f9b580699e86ee01da444ec9b3cf7b76775f05529cc9c4dd931da5f887c914665651214a8107be612b18cb286ec039ad9ab3de520bd17090b38265d5c9"; - sha512.doc = "e03b7027a3956829823e92bd4d8a3000d8f79f26558875ea3837adc9ca4a17ce75d9d4e9136d7ebda7bdc8fbbf4a1b44fc6f71d1bfad710d2e22bba8fab24292"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -xoptarg = { - revision = 15878; - shortdesc = "Expandable macros that take an optional argument"; - stripPrefix = 0; - sha512.run = "3ee6285ecac00a20781ad530a7ca1ef35a94efdcc31d29084e167cde75c51b4bdd644bfb5d25390c3deef44fa7b09e479b6c616169ab0bee1e83d4e37338e00d"; - sha512.doc = "1692c6700b978cd05cde7c0d45e970a4cc8f783d53cb1e2fc57639483e728ef5dcf29bc7563c9ce42eeaba72da93b36e366876494f3680f0fd5e8eada08694bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xpatch = { - revision = 54563; - shortdesc = "Extending etoolbox patching commands"; - stripPrefix = 0; - sha512.run = "d96d078066ee7cd39585754b0ed1aa2bd5680f90eb2a879bb2dcb47cfe834094f0b5fa1373ecd7f80f626c1a8a8fd4823525c33fa0e67f63b0beb4031a35956e"; - sha512.doc = "49479d5a73beda78852f80f786e559caa49b51a44c79e73d689499429ee177ccc1a93064122c13e5cf4e34f00350df3e18fc131505364dd8cbf218e851249e8f"; - sha512.source = "bed0cd07054aa93d1bc328b57792c79ae90c3f5feb5b6f86e76b4b7c4a2b583248c19b9147d268e1dcb16c107b0dc18b34fe13f537b10042839a46a98b5afb25"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -xpdfopen = { - revision = 65952; - shortdesc = "Commands to control PDF readers, under X11"; - sha512.run = "927b6a17422a3573efef6767f4835492df27764bc7fe729ed2697665d5fca697fe1a76e141ff30d5cb483bb4ef8e2021ecf2476c5bdf83ebc5dc6e7778b70765"; - sha512.doc = "b4f332054a5fe85c9404a05673b373ac2b1275b79a1f0b57061cda614350df230dba60ed3be590e0688840334a113ce5c64847c1dc4e6ebae6cc29524c1f6bd5"; - hasManpages = true; - license = [ "publicDomain" ]; - version = "0.86"; -}; -xpdfopen.binfiles = [ - "pdfclose" - "pdfopen" -]; -xpeek = { - revision = 61719; - shortdesc = "Define commands that peek ahead in the input stream"; - stripPrefix = 0; - sha512.run = "1b264f383d76e1c213aab0ac650a934ac6a91eb8dea8122229b2ac6bcb6ed694d62acecae3882b41abf34bd016922109064de0775f91222ad88be8287bd62931"; - sha512.doc = "0633a7a51a329ff6849d080bac626b4174567823b8c597187f62158004a8df647fe40653af371d55d6a4743991fc3ca650e034f68e5b737448245c7df79cba84"; - sha512.source = "38165be35b6fece20141ab61b4e212d6a754d2971e340a0f98bb02468aaad6b470aecbb5f4887969a987c9e7c45be109cac5e190b534264caced15fdc803f14d"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.2"; -}; -xpiano = { - revision = 61719; - shortdesc = "An extension of the piano package"; - stripPrefix = 0; - sha512.run = "892f018e4bcad350e4418b2724b6bf2d18aca9f74aa01eb10906b90630b36ec3497a0b96b293e44ec136eee22648b53a13d7a9b614a36c0b79f5a7b94dc37403"; - sha512.doc = "467da8be6903252b1d1a9436750b8d2f0f5eb1f1f7ad1178acf0a1ddbea253ce38ddc842c89ab6a22c4bb72ec311a2ee2536dee5834ca3ead427c36592c35100"; - sha512.source = "bfd5a1dde7e05755f3c0167f16b7af2d83881b25d31e96644d18d193f4afb8f9f359b5149fe4534e43243e9364c1ab6380576196422c79077c82c4269b7619a0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xpicture = { - revision = 28770; - shortdesc = "Extensions of LaTeX picture drawing"; - stripPrefix = 0; - sha512.run = "1915b8b9acb3db8d4f8ac4fbc0baab55d6b8352288852f20d066a3f0ce4f7dd0cd4d2d70ae2d2e29aadae0bdb272fcb237146379313b2900accaab2bc10ceb79"; - sha512.doc = "dafacd0f38ca6a248f701cf48381ce0a3816a693150118ab6a7e18f818814a1b54435820dc8c11135146cfde3d40a08a0f2cd78bc54a9ddb450bb5c848b99e84"; - sha512.source = "e49b8512ef83ec38f20dafa1e5f191cfd4c2bbcc62016f209be06f969cccdf3cec9545a24756710c767946f8c532074d53de8a6bacd6c565fdf49c579b0cb6c7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2a"; -}; -xpinyin = { - revision = 66115; - shortdesc = "Automatically add pinyin to Chinese characters"; - stripPrefix = 0; - sha512.run = "3b7eda4c75b90284138c1277657c8f4a3c2c9a3374a2d6f80969e78805ab8f0c03bf09e5aceaaaec689582dbe30a82b704e41ce08305a0b4b869a84d4d07678e"; - sha512.doc = "f233ca01195f0f3e236414c02cefbb8da1adc24d6ea94fa56e98ab8772f48456e4bf469f6def555a01c29f8a258c352186d7bf7054db2bbe3843ed937784a440"; - sha512.source = "f4775152d7879b352f6193af3036258ca984a195abe6de3c03baa41325a7b1fce3900facc2f3ea8fd2deafd3740128161ccfbb2a37eb88fae196a20136f68dd9"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.1"; -}; -xprintlen = { - revision = 35928; - shortdesc = "Print TeX lengths in a variety of units"; - stripPrefix = 0; - sha512.run = "dc446adfe453430d5e2c9155acaad26e258a36319490a5158f0874292e9e68c1eb61ba57e361b5ff8bfff84c3b4a359709525f42599b95e9ba19ce9e28f88423"; - sha512.doc = "5905ee8d3589b7d75388e6e2355639435f3a72fa99abc17118068069715ba7220fa3d69f58e046d7972814bfa3834222858bc8933562ac91f83ea250f0952d82"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xpunctuate = { - revision = 67918; - shortdesc = "Process trailing punctuation which may be redundant"; - stripPrefix = 0; - sha512.run = "a90da49b111181c61512777e4cbccfc63710b19513309bc2a04fad0285691095c812e7b8feaa0427cd5e837bf644458229b78c2bec530b01bd772fcdb18a2bca"; - sha512.doc = "8a7c873e8fd809fea44c136ef5b810f6e5d6213f48806cffb5018645d2a0252fb45b0de029c1f070963d4a584983c88e8c2c7661f1dd2f7cd4407c902ea13880"; - sha512.source = "5e871cab9151f51e1b05f0266d42f872a3eaa27a0a801e517219e400f7be808463038461fe45d1d748c05085dc605545e5b2c83250413138f19649d5af84cca2"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.0"; -}; -xq = { - revision = 35211; - shortdesc = "Support for writing about xiangqi"; - stripPrefix = 0; - sha512.run = "f1fc2f43099e022aaac631d4ccd1e5f5b9a9f23db6f1c6c3adf59d47dca57c25728f81ead0ab62d07b9bea6219e3121874c55973b54e826b1a70c5e4fd47c853"; - sha512.doc = "cbef1b95b4db328cc29d5f4fef544459b893cea82838e9e1f2faba00dd8fc78bd12d36931dba4ebe76cbe985879c30b8606df1f2091fc8d2108311350b2ea339"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4"; -}; -xsavebox = { - revision = 64049; - shortdesc = "Saveboxes for repeating content without code replication, based on PDF Form XObjects"; - stripPrefix = 0; - sha512.run = "a88227b8f3b8adcfb3de271307e97c13db9da52c9446efa69ebc9b12289a59b2b92b608dd87dadf4837f0501599b74775671cc4e529a99ef37035dbe171cd66c"; - sha512.doc = "4acb0dcab63edd326db7736bf4632f375e4e1dabb1eab0969c0255312f6207871f087cf81e2a01bbfdb99ce956e568d6331cd82346feeae966331569d2f0c3a2"; - sha512.source = "5843edad34701520c35763cbe3b66523a67f11299affdf4ffcd213ac3abc8d67b9e7cce05610132fcbad3639412f1fe04df15887d1e671c06ef066a0f859f231"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.18"; -}; -xsim = { - revision = 61988; - shortdesc = "eXercise Sheets IMproved"; - stripPrefix = 0; - sha512.run = "daaf1cc1ac8c34c4a63de3a16baabbcb661177172892bf4bf85e588cd150e8736b5b3ef382656c4ca5e3486f93889bfe00a9895988284a3fde84caf222e9744c"; - sha512.doc = "a020e1c60dd909ad48607b315e63d2225a9a884f2939f1cba2a783e9336b86dc002e1fd771469daae9a4c16d80b4c9263f04a545b270ad666749d5d4536d3e7c"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.21"; -}; -xskak = { - revision = 51432; - shortdesc = "An extension to the skak package for chess typesetting"; - stripPrefix = 0; - sha512.run = "202f61fffbf22346ff6ad6b2b8f411b2a8e4f58a9d53e5613810f2fe0b56b0c73867f0c1c293bb0c1f0edcd4ab73135ae33a953d3709d2d01060c1b638842dd4"; - sha512.doc = "6256df468580dcee451e4a650ebab0323c92024e9bf872fd683af1f10c19221887b5bd1bed7540a517eb6716627e689759b7ceaaa2944869e18591fba5467114"; - sha512.source = "11119e38b4f21663e36764d2b9e7da22d9493de7296590db4beefe185b2c9e89224806257d3880c78b07c3984478843b1886e37e5a33fc798920be221789de04"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -xstring = { - revision = 68015; - shortdesc = "String manipulation for (La)TeX"; - stripPrefix = 0; - sha512.run = "a7373745f3ea8f75b73cd3af280743db902a683f16a9820c214b8b5a92c72314323173a966b5356d78cba667978f677f42ea10b54e98b08dec29202ba8e67b39"; - sha512.doc = "c9ee24a7661c7dcf4f7cd1b657269951baced39e6d40f5a6656d491120c9fd90034d9a4a226d0f714909e7a03fbc474f6f7a355d4138ba87906d950e1156c884"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.86"; -}; -xtab = { - revision = 23347; - shortdesc = "Break tables across pages"; - stripPrefix = 0; - sha512.run = "e308d3ae3ae32b945450b319834dfac19b6006cb0ede7f21a91999b840528927aaca7cdc330a02ebad874602d6d268fd1fe609dcb52bef2757b2e0417310e012"; - sha512.doc = "10a158bf2d50fa89355654da36a179bbbc5d30ef3efa8a79537de66c50a892f540938cb364e45896dc079266d5e47bfc2c74b8cfe01ec1691cde34bc221e4ca2"; - sha512.source = "0ae0bc4d96f8b7c4dd5bc62d56538ef5e8f5d8d8ecdb114759209dedc722a2aee1b646a27cff611bfd2ec9ac96f0633393cef9d3a13a6d54978740b28fcc09c6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.3f"; -}; -xtuthesis = { - revision = 47049; - shortdesc = "XTU thesis template"; - stripPrefix = 0; - sha512.run = "5d9081b8d197952aa5ff58b1cbd490bb529cbbc1b72956cca8dd28b1b6bc12c6248d3d04fd457349b30df7594aa1872ce9c8438feb67af1b93ff0fd33eefcb7d"; - sha512.doc = "96e94598e3e397a9657a83496d940aa2525fdbe1ec2cf820b05e5493b1f3e1c45568e16b62c22d4ee25afe2bd0657848a433477e82cc8038895c2195139ca065"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -xunicode = { - revision = 30466; - shortdesc = "Generate Unicode characters from accented glyphs"; - stripPrefix = 0; - deps = [ - "tipa" + texaccents = { + revision = 64447; + shortdesc = "Convert composite accented characters to Unicode"; + sha512.run = "5a2a79c9faddebd523939cb3cf42236b1d2c441a036cd7fc6f6f62422e5142cdbc0a45ddaa9e642266c41c9fe5b723fc440d0372639cffd399a89d489bd11b66"; + sha512.doc = "87bc11f186513adbf32c15af2f1c1253dd72802fb2008b76b9d7d67fc0a039aab0d2424fb853b6bd8e968cd4e9c1cd93bff786fa07e84593fbda99191b053eaa"; + hasManpages = true; + sha512.source = "8bf5d4957008833d54f87eff9feb14f60694ea02e7e9fd2cd5c5d2e2db3f6de3a33784121208ffab516763fbf578125399cbd6f39750e6bb0162a65c2fc44f24"; + hasRunfiles = true; + scriptExts = [ "sno" ]; + license = [ "mit" ]; + version = "1.0.1"; + }; + texaccents.binfiles = [ "texaccents" ]; + texapi = { + revision = 54080; + shortdesc = "Macros to write format-independent packages"; + stripPrefix = 0; + sha512.run = "e964e090b4bf4e924166d0fbd8daa2087a300d4da9d993bcabc624dc78c3f2db9984f2aa851740e61706af213d112cb32e80795ec2cd4e23a69c13ed92fd91d2"; + sha512.doc = "0f3886e76090beb0dcf295ba875b9ddcd950da4d50da710f1b4417ffc7c1ceb48223a20d7cc93cac3cbe2f19edcfaa74c801096fce33c55e9fbc6c57b1897b22"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + texblend = { + revision = 68961; + shortdesc = "Compile segments of LaTeX documents"; + sha512.run = "fc2026a5b2487af785957873f20fb91045262df7df2a2a71777da76727c054cae19b1e005d30b2616469cc009f680973091a7ce6d291d2ff29b3bcc8a47fc12f"; + sha512.doc = "936b56f3823567252297cc3a659d951b501a5f60b2d43f6d8b19fe803ce651d67363d026bd97d0aded3320148dc230ff81e8961cbfbdb5c9a822da94070bb945"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + texblend.binfiles = [ "texblend" ]; + texbytopic = { + revision = 68950; + shortdesc = "Freed version of the book TeX by Topic"; + stripPrefix = 0; + sha512.run = "d2418ef6b672e82c08b2f7b7f0089a9dea1f514db584662351135b511912faab828956fc252cd854fd2bb1243bc0e1af428e294eb92935cb63b38e73078858d9"; + sha512.doc = "787b12bc92a17a00fd8278138d0e36d94be377fc23401c4bd677c372dc1d19b4b88c12395366b8ba5d766fbd7bc364588986d7528572510a43ba48ee0330b787"; + license = [ "fdl13Only" ]; + }; + texcount = { + revision = 49013; + shortdesc = "Count words in a LaTeX document"; + sha512.run = "82f51346d9474270af6374cc1619ca005206b1bd729ce1559b8b66e361b184a192c7fbe085216a3a64e656197756593f7d76e52437ac562fd33bf09504b0f58f"; + sha512.doc = "5141bdf4378cf87a19933945d6742427f4467dc73d92f4a470e34474232dbb2f60c4d8db065f812481520f1aa2f8a90d7e97dfc83f0f089d10386847f64f4d94"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1.1"; + }; + texcount.binfiles = [ "texcount" ]; + texdate = { + revision = 49362; + shortdesc = "Date printing, formatting, and manipulation in TeX"; + stripPrefix = 0; + sha512.run = "c6f34d5ab0c54f799669c4c44e8c6e00381796ca76b9d2e8352a749effe65b9ffd6ebd139998ab9267d1e54da6471f5f38cc6931f7ff046882261cd5e5440bc7"; + sha512.doc = "2338dd99b32a1b2e04326e888b718f595a26848bbef17206f92a0a0f26556edddc3e0a06327d86e72fcb3e55270bcdff846cab3bfc37cbd61115b601164fc10e"; + sha512.source = "30a5c6401d66e7fc2cf0300341c7007881945fdfb267ce4c1f9930f6cb84d04d7895df613215be27da15e307baff361cba6bd4b530ac78f352b74aa81bb94356"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + texdef = { + revision = 64967; + shortdesc = "Display the definitions of TeX commands"; + sha512.run = "ad6b67da367b1cef01db4e7d912685ccfde58babd7dc4868325624114d85e89f5daf3a47fd855dc084ffff66e332ca85c5d77f682d7bfe1b507c43e0a0612977"; + sha512.doc = "bf84f04183654db606a7ebcd30d4986bca69e633439511cc7d9cf57a3a1210231ed158d2bcd86c5014065d355ec94faf3d5f9ab08be568eadc6637ae9cb72aaf"; + sha512.source = "d8c20d77f5b5c68e0acf2fc26a8a0d142aec1377554c3f6b6cf469aef28ae2b82ab4c6844ed8414cad073dada8a035175d6e48b53699daf029ca181cea41f112"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.9"; + }; + texdef.binfiles = [ + "latexdef" + "texdef" ]; - sha512.run = "f49628013bc54e82bc38a2c749ddde9426c65716f04c5c8d8264398b9595e571d380e07c045db9e7ed5d6df7d0b7b1f8e81eaa28d6b67a6756d2c5023b731176"; - sha512.doc = "fbd368180c97649944aa23fae4f50f8a8d1aaa776f643ba520f121b9aae196dca94c11906f9d5b2f961b6d494256329670af1f4563502b44a8fc9633e29373e0"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.981"; -}; -xurl = { - revision = 61553; - shortdesc = "Allow URL breaks at any alphanumerical character"; - stripPrefix = 0; - sha512.run = "df2570d0eefb64df3a0533237ea09f00b9e22be0000134b32de40198649a6e98ee48a31d769dc750847672be7e3577fcd8eabe25e1ae8ee493d77e40ce684147"; - sha512.doc = "e02cceecac468713453432e118dd1cbe3f872a4dc33fcbdfc769861f353ac4ff5c117f51197b297a4eadf295f75f1f0254585ef0a48909aa004f4a598d796491"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.10"; -}; -xwatermark = { - revision = 61719; - shortdesc = "Graphics and text watermarks on selected pages"; - stripPrefix = 0; - sha512.run = "c8b7e89cb39ef5b3f01f24a89cbdce729ad2061a0b3a1ef504933ab7e116b4b67ba8f1a68db74d46839bfbb60cecad4fc459fdd5d913716ad6542d8952ffd926"; - sha512.doc = "a812651c587a76e086076bc8c810dc218431b40aad223644001f42d098962a401246781e0f83789afb3407fd93a0379755f82e30d815c14b4bc72499a9d8d26e"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5.2d"; -}; -xyling = { - revision = 15878; - shortdesc = "Draw syntactic trees, etc., for linguistics literature, using xy-pic"; - stripPrefix = 0; - sha512.run = "5f78d2d61050d9ed84d56136fe59b4674f4e03a536015e3ebc3b9500dd8a08878164ce9fb1aa9ca9a1262a000149061f3fe22f10cfd68941316aa186b81fe923"; - sha512.doc = "7b4ca312ea917329260eb0a19bd504ac2f3ddfb5f066806296b164fc541bfe26e6ed1c03ffac5b52af6b19fb4ba1e77b5228ac4b4db0c2ee8f2394fc0f888d09"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -xymtex = { - revision = 32182; - shortdesc = "Typesetting chemical structures"; - stripPrefix = 0; - sha512.run = "9f0f14d1a862622ad0ef695a58f7dab554daac8d5151193a70c94ea872d16fe8eb1a763d03b226b08583db484bf576f5a41d2070d5396ac323ed00ccb0daf5e1"; - sha512.doc = "0e2eb5439f2e629da902e4c7d7ddd2d03bc4d654c4ee49e6b005450174acbd70760b52c9deb446ca60efe7c0389403584b86a6f9c9964cf24858b13cfccf7ed3"; - sha512.source = "d805d6fcb72fb801001ad80fe43ee36126c0764f8baa96dff9fffcf7452bba8e5cf42cbca6a50b89f5925607c277b3fb7408f8f7e6ab087edbade0dac294252a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "5.06"; -}; -xypic = { - revision = 61719; - shortdesc = "Flexible diagramming macros"; - stripPrefix = 0; - fontMaps = [ - "MixedMap xypic.map" + texdiff = { + revision = 29752; + shortdesc = "Compare documents and produce tagged merge"; + sha512.run = "26fa84b3090d641efb186947ce4d1d89c30a2c224cfc8fa759da3ba7ec9cc113c0ed4afc1c3d0fa5f9d0a88af4f9b3001d57651df6b5be6e0234fb78ec4f252a"; + sha512.doc = "d458fa8db6433b4c7fbd23a16f9be53c2c822e396e7f50844cfa6acdd2a08acf8efdd0bd946c8fdc09ca8aa28d1eb25708d3719184634abced92ea5c94d9a948"; + hasManpages = true; + hasRunfiles = true; + license = [ "artistic1-cl8" ]; + version = "0.4"; + }; + texdiff.binfiles = [ "texdiff" ]; + texdimens = { + revision = 61070; + shortdesc = "Conversion of TeX dimensions to decimals"; + stripPrefix = 0; + sha512.run = "737074790de5c16de0e30dd6f708d6b8ec43e8d387ced2dc6b16b64f38854fad7367884abeab71fd41eaa79dc0c5939904314deed97331f9919a1fbefb0108d3"; + sha512.doc = "3ab30a8de33cedd4bdb9aa0a84104eb5b02be164de9f6fb81a51dbaa6caabe0029228c311970a3287cfbcf270a5430d6883756e9c28fc924a3286d76bb71217e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + texdirflatten = { + revision = 55064; + shortdesc = "Collect files related to a LaTeX job in a single directory"; + sha512.run = "3cd6cf4d9ff3a1a3daef0bd5a998417696f6645cb54679e99e5424ebbe3926c45acad7b999ee4371392a7ba13fe3f2899438ce66efca7829c7aa1eaef84aa6e5"; + sha512.doc = "1114dce13ac47c4352e968f42e89582b62b2702bc25ce3a9a4fd766b3bd63607e11eab52d19bc9f809b2b67cd92153c4f591632cfc72dcaf1c0a1b1cfb416b11"; + hasManpages = true; + hasRunfiles = true; + license = [ "artistic1-cl8" ]; + version = "1.3"; + }; + texdirflatten.binfiles = [ "texdirflatten" ]; + texdoc = { + revision = 70583; + shortdesc = "Documentation access for TeX Live"; + deps = [ "kpathsea" ]; + sha512.run = "f81535eda231bd03ffcc2c46bc05d04f73f6ec7c6ff0c436da0d42417f0a8b21c444489762a33dec5cefebbee9113f403205b621e51ee2ac33a2b23aa0eff431"; + sha512.doc = "fc6d8041f21e00214dfed376b29bf47c52a24f09358255d0587c24eb1a046a6d8e65c448109c63d485f76b2cbe90ec8b609c20bbd8490206224457b1fca2499d"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "tlu" ]; + license = [ "gpl1Only" ]; + version = "4.1"; + }; + texdoc.binfiles = [ "texdoc" ]; + texdoctk = { + revision = 62186; + shortdesc = "Easy access to package documentation"; + deps = [ "kpathsea" ]; + sha512.run = "f3300a088f5ecedfe66ca277f793d3565b5b0f111721a0d73a788d65b72f09d0103a11edda13679fb9e919f11ce9ed3662717c18e46be99a83b744a1f7ec88fe"; + sha512.doc = "fb403dc17ad839ea64bcf6da84e59288a8745b5eb731051d7df8593138aa5d3b6891d56f52bdbe5c9a41e590f1f36db390e7e7a825d9aaf00d4fbc01c8dc16ba"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.6.0"; + }; + texdoctk.binfiles = [ "texdoctk" ]; + texdraw = { + revision = 64477; + shortdesc = "Graphical macros, using embedded PostScript"; + stripPrefix = 0; + sha512.run = "f4d160e494b1579743a83b2a0926df9e8dd69fdaa79d3f4f97e0ed5f4ece31ab380ff6994a1c9015e0af9b842bdfb9b066442ca4b3018df6659922af9f746b0b"; + sha512.doc = "e177209a937fa1d9d683eb805e9e8929612b4b1ff750955d38ca681b657662712a59609990f77021063a223ce61a92fdd567eee91376ef4b67fd3a322db09463"; + hasInfo = true; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "v2r3"; + }; + texfindpkg = { + revision = 67027; + shortdesc = "Query or install TeX packages and their dependencies"; + sha512.run = "a6fee1faade94bc462dd4fd0e567b7716d0dd057e0c973b9a498949e701bd054fa4fce1cb8717f1d052ab03ef9b894e2f222e2e9a70957215f7266bcbef15f57"; + sha512.doc = "452df8270ee53864594cef99a7ce0fbb6b325547de0ebcecbecb4463646706fa9e726fd433f31c4f6c44d2bb915431aecd7150921043e50f6b3a2ac5e51eeb70"; + hasManpages = true; + sha512.source = "d784abf4241ccd65c8c910c16171b30d686a53933043d8f6ecf787866e5508d4e89866c90fe2627ae4b536ed7647006f6ce257c8b47676adb77221d08b6ef690"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "gpl3Only" ]; + version = "2023E"; + }; + texfindpkg.binfiles = [ "texfindpkg" ]; + texfot = { + revision = 68110; + shortdesc = "Filter clutter from the output of a TeX run"; + sha512.run = "0886ab706ce0f18b0eab304afa1d570fd55b57bc02c8b3b1aacde77c73ee260f688bd395b2e362cb998cc1aa9a2d1e228b118f5234eb9c40ce867a97d86f4ac9"; + sha512.doc = "d652523552ad401598c68227b3e0e11c84261a3a243afc731f54892fc971c8f22e74bb58b6eb45ac15f70c8789e5a4a9c4dfca81a3dc304762ab97c8bc74e3c4"; + hasManpages = true; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.50"; + }; + texfot.binfiles = [ "texfot" ]; + texilikechaps = { + revision = 28553; + shortdesc = "Format chapters with a texi-like format"; + stripPrefix = 0; + sha512.run = "b65e737c138a176e6674612dda6b066a9953d8b737fe2e947eb10c058d6b67eb27f154a3ca4f346481f4dc077fddc2c95cc302762a9e9eaa2f0f1d23160bd4be"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + texilikecover = { + revision = 15878; + shortdesc = "A cover-page package, like TeXinfo"; + stripPrefix = 0; + sha512.run = "fc73ce5601a10d638ea78fe815978d395001a73be75084539498644ac7f3fea0f3a57e95bd80e5f38659891adfd9c817e6068acfe04972a836938d733e0d4382"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + texinfo = { + revision = 69818; + shortdesc = "Texinfo documentation system"; + stripPrefix = 0; + sha512.run = "5a87395dfb732e8cd213d50c3bc3079c4c6dd6a070e1be580dbe45c02b2c9f0f3d5590dc36222d0833c262c6412024e55f0881e92358715a585dda064b964e2c"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "6.8"; + }; + texlive-common = { + revision = 68510; + shortdesc = "TeX Live documentation (common elements)"; + stripPrefix = 0; + sha512.run = "1d56101ace5038cd3b8d36c90e026a1c26363535fffbe1ffab64dfbd01408e7cdfb66045e11b13e22491f238e2d3a7015fdeb9bf75fa56f581d2ca5da8f1a01a"; + sha512.doc = "c9832e8249440656334db12b6ee54b467fdebe1194b6adbb8d28ee375250bc6458e8c1b48b5684eab0ff2f0b55db4f4ab6e77679df447a01070a15c1243e5d83"; + }; + texlive-cz = { + revision = 62854; + shortdesc = "TeX Live manual (Czech/Slovak)"; + stripPrefix = 0; + sha512.run = "5491e3ebe9c70887450f8404b64c01a8f4c4c54314d2acf3d33b8921f088b8885074d53bdb42351198daa9cd2c72b1ef97b1e9af5092aabded700ea6f2b995f1"; + sha512.doc = "ff1124b30be77782b5c5a1b80ae69c852a5a9e81446c0574007bc28910ea6202662514a34a85858c577bb528f9fbcc11f798614d11914876151d5aeadb3fcd7d"; + }; + texlive-de = { + revision = 67108; + shortdesc = "TeX Live manual (German)"; + stripPrefix = 0; + sha512.run = "521ce2f9dce3fb329de464ee847c077d449885869e964648e8f89d920231a68bf0d3562e5b54b3cf36716dc3d85b4f0d0591e06843796f216670f963c7191324"; + sha512.doc = "30eeabe60126b3cc7fb8bd400613a9a5cd0484ea73a8fd0e4c3ec7edee5e985c64c8073cf2b121446b9ea1b60ee54609687c168a75198408a30cb221d4a0ffc1"; + }; + texlive-en = { + revision = 67184; + shortdesc = "TeX Live manual (English)"; + stripPrefix = 0; + sha512.run = "d77184250d7014dc65e74baec435fe42e784f80349df81782e8e1f7681cd14e3cc99313d61d72c010e5ffb33a0de06890c359e7b582e94662f253f8ed29cb7eb"; + sha512.doc = "9da87903b5ebfb7ae0ea257ecb77654fe53d93b86fa73d8089b5b2adf46183862e6c67d3b93d6e112f750cbb4af6d6b034f35a1628adac413b61857a91dd962d"; + hasInfo = true; + }; + texlive-es = { + revision = 66059; + shortdesc = "TeX Live manual (Spanish)"; + stripPrefix = 0; + sha512.run = "d055fbb5a4cee9d207f60ee27033534917a0e91dd2e37791290737bd2727b47ccbb3199c0e18f4a564f15e5dbed3599203a7b3611558a26f784713714262311c"; + sha512.doc = "f124848f80289190abadca35a259d60781b5ae75771687ee44e863ddaace61227217a7c1ba888a85afd28583f1eadd4c91b03e224f5cb1b4516772243ac0fe63"; + }; + texlive-fr = { + revision = 66571; + shortdesc = "TeX Live manual (French)"; + stripPrefix = 0; + sha512.run = "2b5f6f94f9e9b3af2a18de94b85615bd09cab31d9e3f01b9ac78df5d22fae6ff84d300cc39aa92d1dac02d858c69e86d9d3dbda422574a4c3ce4652b08990090"; + sha512.doc = "5463c1ecd592e7d304325276f950964cb52cedeab20084137deb0f4b7de1b17b536e4b030cd0e961191d61912f9c4db27f16e6e196104c84ad16ff7b545a7e9b"; + }; + texlive-it = { + revision = 58653; + shortdesc = "TeX Live manual (Italian)"; + stripPrefix = 0; + sha512.run = "22874afcd046572176439818fd3a1c2200d00c0e184adc4fcbfa90b2ecc88dac7f5b28eb95c74bd546fd7472fcfdb2c5b74e5b1b5d08ffe4d4a5aa5f924da698"; + sha512.doc = "0c0d3585bb2c12476751bc5dafb5ea5e10dcaf5149b98e823e607d7a99e5bd9dfd698d73950ecb1efe353435ba2f88be2c45e18c6cde2245df90cebfdbad4417"; + }; + texlive-ja = { + revision = 66482; + shortdesc = "TeX Live manual (Japanese)"; + stripPrefix = 0; + sha512.run = "92f3767daa4e88bcbcff86aee215bac0ea945645a626e9612e033ad12513e41d15ce8074c22cd39b0fbff9d951608bee799dbefa431c31ca9e8f4681f15242fd"; + sha512.doc = "464442dd7f1e77598e7bdbb6884453f5a4a2f57d5d8b028d0126e5bed50b3c19f9fefe13b602ad1aff3334e45e8082f2a1328f884ade2ea92ba4b054a41c4b5a"; + }; + texlive-msg-translations = { + revision = 69796; + shortdesc = "translations of the TeX Live installer and TeX Live Manager"; + sha512.run = "470b395fc5ae1271c39ca5e85d7432e46ee2379a338120fb442542fb3513508dfe8c1326cf60148a4a3f58cbc990913dd272661c6b9a942f167ee6d6d15ac7dd"; + hasTlpkg = true; + }; + texlive-pl = { + revision = 66576; + shortdesc = "TeX Live manual (Polish)"; + stripPrefix = 0; + sha512.run = "b43de2e6d5fe66c53370a4c43ab1a66cb08f353944f58756debc40d6651cb5df11824d1eb4ec79890b449ed611b8674c0773a4e477ad4abf30f162906c1f75ec"; + sha512.doc = "09319f848fe28ca344367f70c826380b3927aa26df7eeb195f6eb176d4951ded181cc47c772f401e1e7936de5fb3a9be3339c69f5bb4e8a5f9785f7313e6baa8"; + }; + texlive-ru = { + revision = 58426; + shortdesc = "TeX Live manual (Russian)"; + stripPrefix = 0; + sha512.run = "7658ab0d98a505eda9a86e9ecd64b0e35d9cd332b03066b46825c2a6252b9aa8edb24eb4af2bfc267127b349f741709ada836104dbfc2becadfd97d22e737365"; + sha512.doc = "40e8b29f29ed61addc2b9e7ce4b73d12bf2e59f1c50c65e59e9c8cac5e6c3ef264ce2071b0d54e15f5029c101a51d0efcda0144e113aaedc714eb1300aa9635d"; + }; + texlive-scripts = { + revision = 70585; + shortdesc = "TeX Live infrastructure programs"; + deps = [ "texlive.infra" ]; + fontMaps = [ "Map mathpple.map" ]; + sha512.run = "fb5abd894d2ac7021391b7ee270cc833131c2a30f406e8b63e1b3c713abda08c3a28a30067d89e905fa40d7092c9529e8ed954a020833724cc867c6f2eab5272"; + sha512.doc = "3d497cf7940b0b6410a537da324da33276b8af004c00b54462f40986d7a2af818c817b57663d47c714c3e4237dbbe622627bb64dedbaf2017732bc76e59492f5"; + hasManpages = true; + hasRunfiles = true; + hasTlpkg = true; + scriptExts = [ + "lua" + "tcl" + ]; + }; + texlive-scripts-extra = { + revision = 62517; + shortdesc = "TeX Live scripts"; + sha512.run = "46ac37826d3c60de6c9260bf83d6275d49a35cbde88fb03481a050f92e87b698e9a94b2e520a74edc0417419f5a2dee53000a529b9c81ea6f6244a83480e56e7"; + sha512.doc = "22cf59bf4dafc7ad9425086bc0aaedb2bf5f7d8aa6ea9c65abde2d523be37665b9c9bee4acb399857eae03613e7241ca1d6099f43cab77a95c10eced8813ad80"; + hasManpages = true; + hasRunfiles = true; + }; + texlive-scripts-extra.binfiles = [ + "allcm" + "allec" + "allneeded" + "dvi2fax" + "dvired" + "e2pall" + "kpsepath" + "kpsetool" + "kpsewhere" + "kpsexpand" + "mkocp" + "mkofm" + "ps2frag" + "pslatex" + "texconfig" + "texconfig-dialog" + "texconfig-sys" + "texlinks" ]; - sha512.run = "431451f2028cc87d2d22b4d6ce95ac8f216755da312301195ba7af46146382cf76c27f9964a94817e90afdcdbc7a01dbd887d45808296984fa0b3a3a1770b46d"; - sha512.doc = "9664336d5bd14145603a8c3e861f8fdf062cd4587b8f739a29d93ac78a946c06a0985da4f011030df575276bd43555e55ba467eb4c640d60b2db0a07be706908"; - hasRunfiles = true; - license = [ "gpl1Only" ]; - version = "3.8.9"; -}; -xypic-tut-pt = { - revision = 15878; - shortdesc = "A tutorial for XY-pic, in Portuguese"; - stripPrefix = 0; - sha512.run = "291825c3461b397deb825266c7ee4316c5d04b8db1a29759378409de55c20d81552e31260468f4fa6a9a04f04705422714a8ec70a866c87fca2f4f1e189e0e4e"; - sha512.doc = "e27dfa0b36341bcd02ba63a8b543f1a6c55c674745cc790543ea2cfded80e536e5901f184a3af62b92b4534c738a06bf4fd5cbd4dfb4da865d13991279309aac"; - license = [ "gpl1Only" ]; -}; -xytree = { - revision = 15878; - shortdesc = "Tree macros using XY-Pic"; - stripPrefix = 0; - sha512.run = "fdabfc451679f7ef3752db2537a7dd51e9c0fd34337e429f24e44728ec1ee0a9b97fc2f176948440a5c1cda609182f60d4c564ddcd76c70e84410cc6a0b1f371"; - sha512.doc = "0e2b08c8db25a5bd992c8aa843d8f6fb2e0efb3c11ea9dd0ac69106cd71f58996f73786513e0ff13bfb54932f468297edbb981e3efccfec2652f80bb02fc6ba7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.5"; -}; -yafoot = { - revision = 48568; - shortdesc = "A bundle of miscellaneous footnote packages"; - stripPrefix = 0; - sha512.run = "75ab34d40fb051000783abf573f4507e3791ea5aa1cf4b8571ad16bc020f10d17a49220a2878e5a2791fb7f073613ed20d72cd5618feadf38e290ee4f047e615"; - sha512.doc = "322e9cd25fd7686c4325d04bc7dfa00aee45fe993bdb730ca3669cf860b7cbae1dc76483fe3dec11e09ad848f166a01f43ad0885e0e9fe324ef28d28a7d2b4ad"; - sha512.source = "5159db9c0f8e1f1ba4fd265c1188c47271b6da4290c33f65e8284b0c95d8144a3219951e13c1fb8e7fc172f2cd0094cc73d63fcd0cab67908f6542881930d772"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -yagusylo = { - revision = 29803; - shortdesc = "A symbol loader"; - stripPrefix = 0; - sha512.run = "f6f367155aa16ab0133957fea3c099d4e839f248a87ccca430e43c08257b2aed3a11c77ceaf8484097910bcee2dfadf260ab5047fa7f0244b43bcf332f367bf0"; - sha512.doc = "0ba73f1c7c7d7d646312f8a3d35c0d063e792ebae45c3e869565f01ef65e14f31bee463a1ebb8ad60166d54cdc23a9d21684675a6ccb09b8da233badb0d0ad96"; - sha512.source = "0bf71cf46e2cd66f9066dda7e7982f91e06803ad2c89358da94fc0ecd593ecfbed8b36ea9668f3e713987265fcdf03fdaae08ee9dcbf36ec1d22a91e3bfe84c1"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2"; -}; -yaletter = { - revision = 42830; - shortdesc = "Extremely flexible macros for letters, envelopes, and label sheets"; - stripPrefix = 0; - sha512.run = "28765f3b6296ea3b9daf671543b7b2cf371bf2aefb4f3eefe6e95d50ee9a11516a7ec14fec5d15305e8f52d0089072cf10ce9dd4cba30c8fb60fa75365ff0d22"; - sha512.doc = "ed81b08b0306ceb519c9a652ef0d271bfa486897b05bc3a91a3840e36d348ea86bdd645ae236d3f34de78d038de988a023e542075f871aa6d8752d9606910dc6"; - sha512.source = "a2e64356234f9bf9bed1a73d5ea362ee487fb3eab43dc89241bf21c7033119e030cf3db81321b1eba245b3330103bff6a7b9f345e6df27f47de35ab9df4a6ace"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.1"; -}; -yamlvars = { - revision = 69071; - shortdesc = "A YAML parser and tool for easy LaTeX definition creation"; - stripPrefix = 0; - sha512.run = "07d8c9983e631b3e4c97ccc1a7bdd20486e55a59eb6049388823db24149635bd59b94d98f2259de5ef0dc163a9f44e4e01148a42c3f676c65fa802d310f6a0c3"; - sha512.doc = "686e2be82054f40c93dfcfbda35d2fa45fe0c28d0b85af30c5ec9c9a8c125a6789fb7185d08da9859bf714f6f5e4dc4057890ee4782fbea446aec923e0adfa6e"; - hasRunfiles = true; - license = [ "mit" ]; -}; -yannisgr = { - revision = 22613; - shortdesc = "Greek fonts by Yannis Haralambous"; - stripPrefix = 0; - sha512.run = "509e69acdef68eadc65fef6980e9166c6327e8927fb9cdf6a7a33786a8668ac9b900954a4bb661f223967b26dd240d5ebd91683658b324be284e46876c39061d"; - sha512.doc = "40ecdfe71670357e8ec84fd262015b5b5d0b8e486ab80c05d0863a335649501e9548d785cc2b2374f989b820dadd9a074cc229674dd1ae9a6252d4a0ebeb4191"; - hasRunfiles = true; - license = [ "gpl2Only" ]; -}; -yathesis = { - revision = 70512; - shortdesc = "A LaTeX class for writing a thesis following French rules"; - stripPrefix = 0; - sha512.run = "85c1c7a9dfb682271ebc6a35cdd91dcaa11137d6f1785f98c3b0abdec46ab346f23a08b034b8aac95324dbba490291a59f74c5d27c93f791b38d47302f5cb61f"; - sha512.doc = "b241afcdd6e2e7cc112faaed178fa2d1f15afea44e4c614b69edbe0a08ac78606f6adf4e6688c4d45e27b011dfd83ff189a4d8a84e96d39c22cada4d3cc888bd"; - sha512.source = "b97c3f396f53108ed66e3297484ad4d052df0b5fd735bedc16ab3ea8550c3bb8fdca84d7dc415e6a8abb147c2f4cbf1d4d7ee3fd6f4677db73079bbbbe20d359"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0.12"; -}; -yax = { - revision = 54080; - shortdesc = "Yet Another Key System"; - stripPrefix = 0; - sha512.run = "a625e7e4d26368732a8700f71f102fb17965a6a85d5a3c28e170dc19248ec0f3cdfd0905c76f0431585e955e29293b49b6dffcf93ed7bdbd80b5d62cca2775e7"; - sha512.doc = "783a606e55a6d2bbd1fb4052bcc84ac499953838808161facd8a76fe0e46a3de8ff0399831bc4e8ddbab02be84a3da68f0f7535c0d3b0b1f3d8d6cfba63ab0a8"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.03"; -}; -yazd-thesis = { - revision = 61719; - shortdesc = "A template for the Yazd University"; - stripPrefix = 0; - sha512.run = "d19e817cc925a0ea08e1b15f3a2b1d6ee4b7a8f9ac420dfa7b6db7cc55b5a24777125a0be7923707606b215ec95044fdf16a2f8a5e5682d8403cf6857dc3252e"; - sha512.doc = "b065c1fabfa4eb394b5ffd3ed048a42c005cb183c82027d5ce1d21e53c2a35f8c0d3647156567f47cdced936ed061fcf303651d024fe3050e8a135c693ea8c28"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3"; -}; -yb-book = { - revision = 67188; - shortdesc = "Template for YB Branded Books"; - stripPrefix = 0; - deps = [ - "anyfontsize" - "biblatex" - "bigfoot" - "changepage" - "chngcntr" - "csquotes" - "enumitem" - "fancyhdr" - "float" - "footmisc" - "geometry" - "ifmtarg" - "imakeidx" - "lastpage" - "libertine" - "mdframed" - "microtype" - "needspace" - "paralist" - "pgf" - "qrcode" - "setspace" - "soul" - "titlesec" - "ulem" - "wrapfig" - "xcolor" - "xifthen" - "xkeyval" - "zref" + texlive-scripts.binfiles = [ + "fmtutil" + "fmtutil-sys" + "fmtutil-user" + "man" + "mktexfmt" + "mktexmf" + "mktexpk" + "mktextfm" + "rungs" + "texhash" + "updmap" + "updmap-sys" + "updmap-user" ]; - sha512.run = "e50c3b75107bcd7cf72a6d4ef86353e8953860a3b4ffc044280fa57b0f290d1ec161e31aed3f91f8827bf038e4f60ed1a6eefb557f0401ed67042209750059d0"; - sha512.doc = "19e220fa4214b2ca9c95fef77c12805d1f9f4916e8463fce561170e7ba103587a47a38f1710dd6e1147cf50c23f6e5e9524582f127ad0dc237a409970f4922aa"; - sha512.source = "3a7817bf209e938f9a75e928c16de30b59537cc049ca1b67e3bdf9c116337c78fe0a40b346a0f7189ea04c7af3755e0428af2140db7eaa83dce026a6042dc489"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.3.0"; -}; -ycbook = { - revision = 46201; - shortdesc = "A versatile book class"; - stripPrefix = 0; - sha512.run = "8b98cd81e5f1252063da8dc297eb5580d06020a343638f7c8a1090a7f056a788eb4322e286f12d821be79fc7de94262a4ff15c14a1c787be0de89ddc87541452"; - sha512.doc = "45ee725849230549b4b2f200e0b140c1fc99a60d91730a42d2e3df63e828eb6053845a2eb84ff25bf916341df46a3f3c01166848afb291d322dfb21426903644"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ydoc = { - revision = 64887; - shortdesc = "Macros for documentation of LaTeX classes and packages"; - stripPrefix = 0; - deps = [ - "etoolbox" - "float" - "hyperref" - "listings" - "needspace" - "newverbs" - "showexpl" - "tools" - "url" - "xcolor" + texlive-sr = { + revision = 54594; + shortdesc = "TeX Live manual (Serbian)"; + stripPrefix = 0; + sha512.run = "de99d6d13c6b68f8327c0b72dd3ab8aef92d07085f3eb59d94aaf8901d11d542c0795a33cb2bff1ff0dfb1acc99e43fc767150956abd873536a7d4e3b8f031f7"; + sha512.doc = "4e07f6f015a023af113822e409e03405f49b9786f854308c14f2060cac75d8420ddab090696044860be75f1337b6d3b6e7a45fc0d56969b0894efce3a8c60ae7"; + }; + texlive-zh-cn = { + revision = 54490; + shortdesc = "TeX Live manual (Chinese)"; + stripPrefix = 0; + sha512.run = "1a7e43528c2dac5c623943b1b268b99f0db6a4876f50c5386a8ea160b8b5e066604d34c0a53cee25cc3f839eb7f4be177e3d98ed51c83c77df6293c77a02e0ab"; + sha512.doc = "534c505455c5f9c73803c140a340df2882a97516e15f52c5b65695b7c626404336a0e4f6190155b5bda1b9a86d7f4d44ac294bccec791ec6701e56d13c00d71d"; + }; + "texlive.infra" = { + revision = 69740; + shortdesc = "basic TeX Live infrastructure"; + sha512.run = "d3ef23150149d240d8b74f5b9f6126de90f44960238deefa94415310586790d5324f9fd83478fa4d726ef6dff516f5382222f56933599b384101521a66d0a248"; + sha512.doc = "fb06ad12bea2d062dd5e2049e74e096064198242f010cd6e04e2d4a92a7fc39ae829003c7ed3f8347f96c99c31e26ec44073b45ed3ebbe9e18fc78e801d00c94"; + hasManpages = true; + hasRunfiles = true; + hasTlpkg = true; + }; + "texlive.infra".binfiles = [ + "mktexlsr" + "tlmgr" ]; - sha512.run = "116d4be9a7ca06f90967c85a696e893a85555402acf400c0251a71f4d43a5ad244ee041518d4408b6627610ff87792f07ab51309303e442159bce46025d5a27c"; - sha512.doc = "714ff9f1fc20d9f3e5effe9159935a45662f7f8dde9be0371055a3e178b9a74618046c1f4ba67cd1b89b6b0abfdf41de2716a097e67138d42f733ece3edb028d"; - sha512.source = "1a4d7c462316b3d2689b5121d81af8ff7847909e039564a0d66c859607e5c4fa573dbc607cffbd73223f48f471847057fbfeeb71a31947b5b1a8c02eb88eb35b"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7alpha"; -}; -yet-another-guide-latex2e = { - revision = 68564; - shortdesc = "A short guide to using LaTeX2e to typeset high quality documents"; - stripPrefix = 0; - sha512.run = "7a2d19b71006352ff9cf69cb68243153e99e4cda2a3fef37daf6ab180e7a7625b8119b972785a331188faf7ee6f03d724a760c5c3456e85cf32ce704b3edd7cc"; - sha512.doc = "8ab0ebad6b627dc1a5d90477d48868715830c6558e9091d3782284e9766f22f9764170a3e89d55c8437dbca2c8eab446a1be0336baf43b3ddcaf67e125ea2f64"; - license = [ "fdl13Only" ]; - version = "1.2"; -}; -yfonts = { - revision = 50755; - shortdesc = "Support for old German fonts"; - stripPrefix = 0; - sha512.run = "1caa22023c93ae1e6a2fd94676da61fd576890f991a79d6a9724a4e5f7e653a752c6af792a1b15d44aa956f5788aa995614a33c2d97e95865d6a364f833e539f"; - sha512.doc = "54857e6693242080c5f410ded0bb16d3df65fee2834b2b5d1232dd063a70796905771059da07e7d92358fce9da992c3e605be345ae7c5d4012d37dc37a17dc82"; - sha512.source = "c716a8ecca03f0dbaf07146021977fd802e2089c5b99fc7adaac1e581ecbfd4f4b1a15562a54eea7c783f5b8b6165b935e484e36a456ef81729751c777266815"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4"; -}; -yfonts-otf = { - revision = 65030; - shortdesc = "OpenType version of the Old German fonts designed by Yannis Haralambous"; - stripPrefix = 0; - sha512.run = "cc1587d41121f8e15b3b659f2620c0324fb35b46a6914843c3abebb7c4fa0b30e85e59a2de603128d8015d68edd1e16b8cb02a9dacdd49c04dd3a602d1ee0148"; - sha512.doc = "47d025d7a7d3a65803c1ebc318e13adbf371b5bc7720d7a5be5b839246906fbd963c4ba2147ad37aca5313f3ba95d361e19f87bf6d77b99e150bd96a29461f0c"; - hasRunfiles = true; - license = [ "ofl" "lppl13c" ]; - version = "0.43"; -}; -yfonts-t1 = { - revision = 36013; - shortdesc = "Old German-style fonts, in Adobe type 1 format"; - stripPrefix = 0; - fontMaps = [ - "Map yfrak.map" + texliveonfly = { + revision = 55777; + shortdesc = "On-the-fly download of missing TeX live packages"; + sha512.run = "63353a768b700ea11982e9552046dfd1dc3d844883f03099833cabe2af5ccddecebd7ef737fbcd256c90304174165a4d283d4912f8311508e61c723d751619a7"; + sha512.doc = "46d57a6ebd68a56d55ccddc68006693fcbad8ed8f809243a3ffac7adb82da58cbc28239b57556d5d8d6388ea034b6571557588ff9365d4891145d5cc3fabfaea"; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "gpl3Only" ]; + }; + texliveonfly.binfiles = [ "texliveonfly" ]; + texloganalyser = { + revision = 54526; + shortdesc = "Analyse TeX logs"; + sha512.run = "85f491af4a3867283d56bc2d98ebcf491e622008b3a70bb2cae03b9deb38170e1c73088d109445fac11fcce6e10aac57f42f03066580a79c978dd19af1f74caa"; + sha512.doc = "8eb890f880dc56d37e29e2f0bb3228e36031d45010677097136d40959ba7ec0cdd10b5056169325f481318f137a9de2f180438f1716bfa12705fcf0db315e3cb"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.11"; + }; + texloganalyser.binfiles = [ "texloganalyser" ]; + texlogfilter = { + revision = 69919; + shortdesc = "Filter LaTeX engines output or log file"; + sha512.run = "cd70a50317af4ed121bfca914ea3083d11be2087b9507a7caca97238ca5f62df418b2e059feb1d24492c87f57096f3e3268ba4921f9cff1709d43bfa6be29f25"; + sha512.doc = "7d83863001f4c57018253fc1ddcb08abb847a76307fda75c85f991670fcd8de006cee3c6292696596fc7be5eb752ff38fe63215e2a80a51d7a35e19dd8702914"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + texlogfilter.binfiles = [ "texlogfilter" ]; + texlogos = { + revision = 19083; + shortdesc = "Ready-to-use LaTeX logos"; + stripPrefix = 0; + sha512.run = "d3b5f5ea0dd90e925bffc1ac0f790848d1c2abe50003e2591c8efb219b4a205d48e4420d2000b3de15b1ff9d4d0bd9e083ba1694d4ee34febd68f8db0df16ea2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.1"; + }; + texlogsieve = { + revision = 69436; + shortdesc = "Filter and summarize LaTeX log files"; + sha512.run = "a4e94f5674cc2bb54f03e285aa18a19d3c389455f2ab15e40998aed6d211435bde3fcf549c989364673bc77a93458e4146b0e662d4bd139e18880a36d4445832"; + sha512.doc = "47d11f611bc3a440dab6dea06cc55053802d2b78133eec21af4eb8d44e74b013a4dd8df0667b946afcbdd8132821ab1429f30f74da610bc1e1283793d465c454"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.4.1"; + }; + texlogsieve.binfiles = [ "texlogsieve" ]; + texmate = { + revision = 15878; + shortdesc = "Comprehensive chess annotation in LaTeX"; + stripPrefix = 0; + sha512.run = "52c35f096426385f229b7ddb66c8ec2a20539bbad6296f2bdd230c2da79edf5668fdde0fc7ebac7099a414b622b31309fa7f610564c8212602f71dca7193c597"; + sha512.doc = "dc1ca347bfb0ba8c54403e643b4052604f98b39ced23d092808cb221e930384f49d1c34794a933b0a05c7691ef04158688653ce69eb8a4b72e9172b4254954ee"; + sha512.source = "b75362c3b748021934052ef38b9f95ad7047804d5100b2a00bd8f9e396103d2d641f1fc5a3c636cb42ed66fa88488f6c69d3b188e3a55f715df2d19c05331889"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2"; + }; + texments = { + revision = 15878; + shortdesc = "Using the Pygments highlighter in LaTeX"; + stripPrefix = 0; + sha512.run = "6b0bc365ff7ba6a8118a4e83350e73d5c4dc40e6c30a0ed3267f0f20178a08264866bd016aa3a9da72d4f27a20bf7e8f658417561468294745b78911ff46fd4a"; + sha512.doc = "67b7843546704e9b48f6ffe75a33ab68a5d8ededf3cd45ca329c6ca5ffcc783f4ecb9a663fc4eb94fb554e3c43e753512f82dc8f2f7924c1bf4bb8942aabf749"; + sha512.source = "92d2216144fcbcc96907fd09ece64428684476ab8e9f3a0c60e898f9f4cf7e0627fb145adbd8186d56a6d5a21563c41d62871e860ad51d9b74e5a0f6441a44de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.0"; + }; + texnegar = { + revision = 57692; + shortdesc = "Kashida justification in XeLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "09e4b3753d99fb4f99c150da87f5602dad5a28778f9489e67f6e4e45d5f9dbdf0edac43826c1a162280e9399d28d050b5ff230713b2e45cc2804f21a76dba0f6"; + sha512.doc = "403e75ef47ffc6da77e4d61dcc95419932d2b62ebb0c107cf612a195b0e2a24862139a518ead801ee15f56546c44bf9cf0e56aad7b4d8a7ede8529063aa745d1"; + sha512.source = "9785ac1b0a7ce4f33458bfb3acc203098c8985d6381eec5c610de16b22e2e60ecb386bb5b98da0f9f082b901b9dee096135c5c2a38d5233e92fb09413de214f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1e"; + }; + texonly = { + revision = 50985; + shortdesc = "A sample document in Plain TeX"; + stripPrefix = 0; + sha512.run = "a51d7288abaa3bd03e8f3816eaf2d7f8931340e95e3897ea4a63ae3d251277a78e71ae66b617da6cc81a8100c9ffe64a1c9142369c67d58daf200ab2ed7c9682"; + sha512.doc = "5f03987ce079f21801f08a7e325a36c6f1065f5cc32ff2dbec7989bdd3a6b3c54ade8f96a71e19553972d3c36454a08b007adf3287a7be7972a8b3ce6961778a"; + license = [ "lppl13c" ]; + version = "2"; + }; + texosquery = { + revision = 53676; + shortdesc = "Cross-platform Java application to query OS information"; + sha512.run = "d454a95139920c24404a501ad3bbde4ae8e809e0f0b6b7c32053d375e0cac31d81087a53d65ab067c9c6dfd988ae90429adbc5d7cd2e1b23f41f46dbf6a25056"; + sha512.doc = "51bc4e5a9f62b4526198b380fa69dd2d79ff69ccf0915aef4269d890fed057c4130ccca65e0c279e58ebfb72347d627b186534138f9c4bc8d395677c73a2a0fc"; + sha512.source = "5ed0dddadb7e8f406635d7a2cc309a030826607a76b4520b1f47a07affb603d96577118ba1fb5b9797322aa49a68616acbbcdde39bc8538c54c5d2fa1aebe510"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "lppl13c" ]; + version = "1.7"; + }; + texosquery.binfiles = [ + "texosquery" + "texosquery-jre5" + "texosquery-jre8" ]; - sha512.run = "ec4cfa0d4f08f506b3bf7a3acc8e303ba51c7761f32498f040e062264e595bebe64a4f5adc7d6ab5aa2180c55b817d0124d5b07b276cb39c775539113a08f490"; - sha512.doc = "dd37c5163de0bdcce937a1866a48d9f924faff81da11e566e9525a6d5a81ae82419ee7eaebdff1cd8512957a878f849f43e9cd71dd39625e6dc0e2ba18f4ac9b"; - hasRunfiles = true; - license = [ "free" ]; - version = "1.0"; -}; -yhmath = { - revision = 54377; - shortdesc = "Extended maths fonts for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "MixedMap yhmath.map" + texplate = { + revision = 67201; + shortdesc = "A tool for creating document structures based on templates"; + sha512.run = "44f2e0008d1b8629bfd15267e3add7490c9a21e28d7b29edc5e37ca51e60bfbc8b25035cbacb57bea5df762ff9783ccfdfe6d9244bced55961509c7ad97046ec"; + sha512.doc = "bfcbb319719b9f8d4473c50afcd435eaa1cfb906f6107dd7e859bf40a30b452dc135ea1ce0a733c297112647fbc76d6bef16b9474a65d85e6d93e5df96acc549"; + sha512.source = "e11a6716016b40525f3ecb4906dc1b54650177f28e7759499928ce78af410ea9a159fa3703cf2098aae227b6bc126cb4be35f8637ef6e15c7df94fb8ce4145bd"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "bsd3" ]; + version = "1.0.4"; + }; + texplate.binfiles = [ "texplate" ]; + texpower = { + revision = 29349; + shortdesc = "Create dynamic online presentations with LaTeX"; + stripPrefix = 0; + deps = [ "tpslifonts" ]; + sha512.run = "7e2efadabaf173fd30c592cbcd2338563b8690048ccaffd86efb079a04b7b95c8ab113b99205cbb2912eae3a709a110d7b152270422cf2cbfd2ab85d42f12d69"; + sha512.doc = "e61965b5e31b487daba383a4e6ebc0dba85475f8cade2faae6adb8576ec7ec544b518a6e0e105aa185ff82fd6aba7a9ea4abda2a9446d52f5b3acdb42580e315"; + sha512.source = "3add8eeda886ce6422d3b7ea53a55dc69bb2f5c2e64cdede105a7b4756b008807bef6245ddc2596b45809311874e566263c51e98ec6751b4db9d3c5c5f58efd3"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2"; + }; + texproposal = { + revision = 43151; + shortdesc = "A proposal prototype for LaTeX promotion in Chinese universities"; + stripPrefix = 0; + sha512.run = "19265b32271b8603d8baf8b16f043c3228606230c1151a33e243e493b6306faa839860f2b07ec9d5d43c57f49e984134e760342bc6302186924e5c95cc1f3380"; + sha512.doc = "70c04643ced459099ae095c88c0316e96c75e99bba0877198c7800d3b5cc9ac872f74b36adfb03dde968150abb3cb99131fb52ecaff56dfbf1aa85379718a74f"; + license = [ "free" ]; + version = "1.4"; + }; + texshade = { + revision = 69371; + shortdesc = "Package for setting nucleotide and peptide alignments"; + stripPrefix = 0; + sha512.run = "28ec64b312161f1157511d4a4dcccb3378bd054ed6abe75830b2eb98b30c5afb2ccd1bc88b0ee0fb049a3610e97b4408b8e66675094a74abe1bde8abe5d1a1e4"; + sha512.doc = "e06fcb1e6d743561ecc1b6a1a14e252fa5a7eceb2bb0ceb27409dd52c62ec5a1397cdbde7bf61e62b143af2fe6787a49ad3b6b9117f8418e409e54b26deb2a25"; + sha512.source = "23bc248ea1ee572c6ac13fcf9697810ad6881530a44adf9a16927801b0a951c3fe012295ac2816c85f203fcadfb35f04460510ea7fbe2fd758b05098a4f06dee"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.28"; + }; + texsis = { + revision = 69742; + shortdesc = "Plain TeX macros for Physicists"; + deps = [ + "cm" + "hyphen-base" + "knuth-lib" + "pdftex" + "plain" + "tex" + ]; + formats = [ + { + name = "texsis"; + engine = "pdftex"; + options = "-translate-file=cp227.tcx texsis.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + ]; + } + ]; + sha512.run = "f6ad2f3d49377de738bf37bcfa1658a2977ea3d399aa4625e2482c5292e65596c67c8912ed1b2d23b1a4611ea2cc2281585b558ba2a5e7f65638899f714c267a"; + sha512.doc = "283e9cfbef23e946a14869774649dc4afb821b9a284841c0d8ff45ebae4e931ba692600974afdf87752160dd71ed32496c46d3ca7e91cc26cfb4d5bf902b4132"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.18"; + }; + texsis.binfiles = [ "texsis" ]; + texsurgery = { + revision = 59885; + shortdesc = "A LaTeX companion to the \"texsurgery\" python project"; + stripPrefix = 0; + sha512.run = "39c270382bb228beeb9ec61f744f66805c76a7fb1522158a59daa5dbbf29b3f4151c20d7dbadf404cab8ca023456b9988d45e53f65a1396da9259832390a0980"; + sha512.doc = "76fe49291714772ac56097e5869f82868d149959bc091d3e9b1810013c92440c05825e2d585841a3e7fe015d66e09c3e8a92847fe7fbb8bfbe308c62919e8c26"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "0.6.0"; + }; + textcase = { + revision = 67755; + shortdesc = "Case conversion ignoring mathematics, etc"; + stripPrefix = 0; + sha512.run = "1a4a29b33270f5100109f42f4caf529d3203a6bd1a934a06fba6ed3ed082f0bbdeecfeb7ff158182c88ca7d724422c83be2d170bba78738cb7417fecb13f65da"; + sha512.doc = "c8b42e576dc6458441703344724bb1ee8f441e79da8d59b1ccb0b6280de878ae65ac48e628f3230ee2094ee285a58636a6e37c29e4458d5f164c36cf4ec93d6c"; + sha512.source = "1e7e5e16c982ae65aab5cdb4c83e770336dc38833f6027de701114da45c0b45a1ef21dd3096de3933401a13222438a533397661d5654acb991c0ef5d6a8c29ee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.04"; + }; + textcsc = { + revision = 67193; + shortdesc = "Simple commands for caps-to-small-caps text"; + stripPrefix = 0; + sha512.run = "99429871433a809febd561793ae53253812792f7ff20f154cd9c01ae3df95c19b1927e677b686b7ef19c6e66cebe2047136810ad287a67ad524d905c6ccb20a0"; + sha512.doc = "a8b38f3c369c5603d1a696672fd8a2c7a49e1d60c011fd5d2158cb9daf37fb4ecd691d859376c55086f894a9a2769a1b8a78d6b63ea4243a27b02bb2247bfdd0"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-30" + ]; + version = "1.2.0"; + }; + textfit = { + revision = 20591; + shortdesc = "Fit text to a desired size"; + stripPrefix = 0; + sha512.run = "96638c0bd5cb14b629f03e4b6a3266160c75bcf05d871ce3d4262ac1c070d9efc0532411f5d8774f97362b148ef6cd1c5dd5253e72e3aebb542fdf14aa6d78fb"; + sha512.doc = "b88df8c99662a182483fc6d12d33d0bac5f6a32c84be700146d048b799045800cbb69b21599e5debac122995800b0e48fd82395c498a58df503395fcedc92228"; + sha512.source = "cde6e37b48b1aa49811fd5ec29cf094c7b49d690fb4d884edc358bd3a8a5bf58a815e539eb5e56a95616f54b0737dde09e312c0d2baf37498ead691d4fe1dd72"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5"; + }; + textglos = { + revision = 30788; + shortdesc = "Typeset and index linguistic gloss abbreviations"; + stripPrefix = 0; + sha512.run = "1652260a3e946a8847ceb7f937893bad27a24737d9b3573466f7369ce9cdbf900af0ef6c7f0bf3033200664da736e8232c3fbf6db61bb7d51acec1010d13a3e0"; + sha512.doc = "922ce1569fce889bc4608e9a5da4a45b7c3d2e80303ac36167efe6767c266844664de00384447e288da70383fe91261e5914394a6fdf8644349f785600271e5e"; + sha512.source = "0dc80a20fcb8926b9bf586808bff2403452e43471983d0bf49bebd310d2bf78cb1e61cd4674f7bfcf86d94ee083d2c8e0099554858549dc5c6703d0f4ca57dbb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + textgreek = { + revision = 44192; + shortdesc = "Upright greek letters in text"; + stripPrefix = 0; + deps = [ "greek-fontenc" ]; + sha512.run = "2370f666c2cef43a579e32a755675431717ccfb4bad6f30261a6c67e0617816ffc272c25e0d076d91c4047c41926c92ae375507f36f2fab01673bd7e708f5188"; + sha512.doc = "9107ca31b645977d56a3b1e37f7b12f0302b1b2531bd2a21883f7931831e70c4383beae77469aab4663253da3109cdd9c53589cbab95f7f0126389d12509127f"; + sha512.source = "367b63cd318c1e69944444f4cab82af7a7b1dde667d6469ade4c6433960b21a6f8922280d5a46e96fc88ddf4c2d5d3f3a440b55045a67512459208ae181bda96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + textmerg = { + revision = 20677; + shortdesc = "Merge text in TeX and LaTeX"; + stripPrefix = 0; + sha512.run = "5ef9048849bd2515c1af0ff41d0b5189715b375464c15d4708e0152d99f01839c462a0c9d0a9a12f401375d38e2c53a0f0c314e6905e1bfb3171296448bab649"; + sha512.doc = "05a087347db5dce688065f56c106d022f3ac30d27ee5d2f420e7658c5b81df66549cda86193f3ce4fb2cbeaad37abe7eb32b984d00d4f25dd0ad51433f8d7a01"; + sha512.source = "bec01fd7721b5fcc61ac934ebffc3936492817662f4445f082601fe4b7aad576448d33b7ec16ce400c8185704e60238c56bb9e8e31c3b445503673145c0cfadd"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.01"; + }; + textopo = { + revision = 23796; + shortdesc = "Annotated membrane protein topology plots"; + stripPrefix = 0; + sha512.run = "89a415b1040ff44f62c452e61abf9a5760929953ff0a4740080f79e8343b2b4f4eef9340e5a83fded39a000947dbe7f2916fb18624c4512c5ab58171708de268"; + sha512.doc = "80bd54a9843fae371884b87710094f72926d5ad8a7e40308e9aa753b01533d3e649ff94831ea75aed264b5f9f5df482e157a1563dc85ab2976cbf9260425c5ce"; + sha512.source = "d426490fee0b747726dfd7df1f6f72677c9aee3d8ba56ec04dd55037aef563297d16d08a821c2e9a1493c5c29ad6b52c5af23b6bb1f4adec754bf530beb81571"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.5"; + }; + textpath = { + revision = 15878; + shortdesc = "Setting text along a path with MetaPost"; + stripPrefix = 0; + sha512.run = "7780972480a1355a05cbcca3c46f3e5284b120a93ed2265f0fcceb6965f55ed793756cf96df63aa8da589dd12fe1b8127bd470077b9f9dda758238ced566b3e6"; + sha512.doc = "5507082be0235ec2253ddc0b03e239607b9d140952799684e5193e4d3d584846d33a59aa9b1630d058f17cacf7cedd2fe0a180b40207ea8f10947b534784fc02"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + textpos = { + revision = 63967; + shortdesc = "Place boxes at arbitrary positions on the LaTeX page"; + stripPrefix = 0; + sha512.run = "77451d38b88f76b80b063267e2dde1e6e6c771c3e4b176a006d3e38351b823a9ac735455dffd6ffb3e23d6198ea7e2e7828c5d9a4e0b0bcfd5c07567901a05aa"; + sha512.doc = "0b17032df1840b6659c85e3d4801d36e3eb2c5887d03f6c37fcbcc1f030d75fb32991850ae39fccf4e2e9a6498500659ba5fbacad971071de608f4137900a392"; + sha512.source = "569ec215d0b9d8ea250b5f8fff39a332fcb5ec6dd2830b8d65145428bfd5de9c3f2320ef342a887b712d7e7078063ac3b3157609b57b947fbbfa8d5badd578fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10.1"; + }; + textualicomma = { + revision = 67201; + shortdesc = "Use the textual comma character as decimal separator in math mode"; + stripPrefix = 0; + sha512.run = "9437756da9639dc29fad64ea7bec0b2fd4ce783065ca00fb522ece24c33b99fb2f51f82564cb382f5f39ada825353f007d14a36ce5d9d5b1cc4015b71b8cd314"; + sha512.doc = "a1382aa53f3df15c57e391420e7f4164a3fcbc8e765cb53a87814a4fbff7e354268f8ff7e6bfb1113f269fa426aac480fb22c330f234d58492fc4f8960fa2960"; + sha512.source = "1a42e7e80fa555dbc81c7f133c6be0ed265756f826d701c3bee5dfb7b1e2a8c94c2bcafe6421d89ae82aed2c5e1a367d6d06df7d12941325c0d0148372a9091e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + texvc = { + revision = 46844; + shortdesc = "Use MediaWiki LaTeX commands"; + stripPrefix = 0; + sha512.run = "cc149d490180e58e9796ae0bc962e51794400384671eee53c932acef88512a129dc3d87ea4378247813acbd3ead010014ab71bd1717b6edb0bef4b7856be8aeb"; + sha512.doc = "e8639a2ffdd2d40b27545c3f4265e473bfbd81a028632a082199fb0dba7ea0b0468bdae488a9eeea63578bdd610f7e16d4f4da846f9316dabf5645af95fc8cab"; + sha512.source = "4bbcf12af602c328084e76e339d9ca33c205f08faf489be3008fa5fe0b424631e940baee1da9144fafac42e09fd2d27a7726c16e159cfe24c70d32ae1014d198"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + texware = { + revision = 66186; + shortdesc = "Utility programs for use with TeX"; + sha512.run = "532cf8cfb19ea5c8ed0fe6939fba0ddfaed58989a588acef18ef38c587d8485295e9d438487fd2225a0f68c12d0dd8c6263d597c2e94cbdc96ed074ddd296729"; + sha512.doc = "c4be0bdc3490a0bee08d6a99907f7abe1145ae8f8f89dd8665cf6a8738d07c7a537c0d7e767b56a6eed3a00ea169729b4d78208aab2aa883c9fb422e4dde3383"; + hasManpages = true; + license = [ "publicDomain" ]; + }; + texware.binfiles = [ + "dvitype" + "pooltype" ]; - sha512.run = "88476f5355d041f1920c4f0f954853828bdfaf27b9d0441982a38e3dfe79b40377a83614794024ee8c8463eaf5d1c350bff033f1c53e031451ab7cd095e14948"; - sha512.doc = "56fb12fcc4099f14c5746727b3c3051d84097cd8a715023545c3a2fafcc5a5abe55980a12e4384f674ef6cad2c7d6dab2beb8374e4cb3af81f711c2e8320d97b"; - sha512.source = "57a97c1310cfefcc453d031dd3c4701bac2a36c04f435f7a823e1b83671afccadc33d213e9578f4bbf806b6c73aaf33d3816dcafa86fb4447d53659e11f83072"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.6"; -}; -yinit-otf = { - revision = 40207; - shortdesc = "OTF conversion of Yannis Haralambous' Old German decorative initials"; - stripPrefix = 0; - sha512.run = "5ec9f9408c3188b2bf985e9c3f1f9f6a345557d08a167a9d02c07fe41bbb981a8889f580d6e38a97798bb5e891d978eb4ee70b77a344c684051b5644654d1cd1"; - sha512.doc = "6c73466c1e4ce1f7aec1b30980e5c44ca4917e161236fad7a0816bc93e921525b90f62abd8d41d3b767d8a6eda62a34534d7129d1fc490fda430345f8a2b3ce7"; - hasRunfiles = true; - license = [ "publicDomain" ]; - version = "1.0"; -}; -york-thesis = { - revision = 23348; - shortdesc = "A thesis class file for York University, Toronto"; - stripPrefix = 0; - sha512.run = "5b5152cc315dc05164ba3502d6e7aff355d853e43a3836bda0a15a4af7a90ef9fef02c852125c7e1e4842c05d51f2be6441b5131400eb46bb6704b281711e18d"; - sha512.doc = "e1ee454ad9996b61f1cac9bbeec30210359ecd8939bd9e0696e7cca7106733b13b8831946c47652186d4b80060f96c479b642274f5c90f8757953b1c3861f0bc"; - sha512.source = "3096ee9334bab690b38ff943559a0a7b0c54f8b831e7d1320ae4581740c48dd05e09813e220ce1d28d4523fb456d7fd01920e89e7e0d66da00e9dce88bfadea7"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.6"; -}; -youngtab = { - revision = 56500; - shortdesc = "Typeset Young-Tableaux"; - stripPrefix = 0; - sha512.run = "4ac5c3803a2e815c51178fa30086ad25c1dd2b430753d582376c9f6c720bd1a72db1d285d2b0cd810e3564961ce3641f3b482d685126e880cfb1dc856dc74bc0"; - sha512.doc = "b291614a22227693f93422af280200fd927fcefd0399d4294f934ff8882d26e263a3a1dcbac3ad2289d2adf2ff92c76a8223eb450de46e0b1df283af31bac3da"; - sha512.source = "57110b41ada1866d327eee8f1eae1ad61ad7bea1428bf9a3ccd31b9cf27e19537952ef756299f62e5204e5fddf5d032c8170eb36d6a9fe73e66c8d72e1c4f085"; - hasRunfiles = true; - license = [ "lppl1" ]; - version = "1.1"; -}; -yplan = { - revision = 34398; - shortdesc = "Daily planner type calendar"; - sha512.run = "4884ac99b0b56927fb86c6e06ae9d4accb7d8b441bb17df79753d8af9ee84b9440d66ad4fcf2107aa036eb2af89d5ad49d0a4c4cb91236c6475cf81bab85566a"; - sha512.doc = "7d3cddf3f2d54283b777c7ab7867df68fdb484c67d2f88589e29fc087db721e7ba9e0fcea2ffde9328e89075884d668b7de8fc61f462b735d9f1cfadb9662463"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -yplan.binfiles = [ - "yplan" -]; -yquant = { - revision = 68997; - shortdesc = "Typesetting quantum circuits in a human-readable language"; - stripPrefix = 0; - sha512.run = "2d9dbde5bbc12186a054624f4dfc30ab9cde606440e5568de12f9bcbc0f0c7f872141a2f1745e2f9729884e59e8c36ffddb77ae5b813cf837ea7e2ebea7d7109"; - sha512.doc = "bd0f9428c7a0930b6d714ba69f0020217021283021b9492bb71c2077fb70e86f3a49694251f88e91605604bda7049ce1f06bf1ecc1b668c63e080d1bcb087fd6"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.7.5"; -}; -ysabeau = { - revision = 69663; - shortdesc = "Ysabeau fonts with LaTeX support for traditional TeX engines"; - stripPrefix = 0; - fontMaps = [ - "Map ysabeau.map" + texworks = { + revision = 65952; + shortdesc = "friendly cross-platform front end"; + sha512.run = "2d0f90699f7ee4fa6dfa9eca4a62c8deadd9ee8303e17603bd32d0b2cd41875e76d1cb28879139dd62e534575f1dc8e71d6ec401a65ecc333f5b4bb636ea5a67"; + sha512.doc = "767bca3619a0f645f23b029e1d8b84fd7333bfff5df073026423e83681abb2c3e60a50f843aeecf95aaa54b29018f145a7b655e2dccae0465626e84ca00d1b99"; + }; + tfrupee = { + revision = 20770; + shortdesc = "A font offering the new (Indian) Rupee symbol"; + stripPrefix = 0; + fontMaps = [ "Map tfrupee.map" ]; + sha512.run = "ee935ea5c6563fd8da4f403a1c3583b289b64e212aed4b9e3703ec345dc47c5521d291e1ae0a10c9aec2ebfed407fbf14e804bf51ae4c4a1e03046fc7cd0ad5c"; + sha512.doc = "19da18d665a8369e58a26d4e979d5fd6c8b3187dfba97a281008627aeb8c5ee824dc2ad3f5c94c3b35c67fe28a646f44aa5f532912de5f5640b0a7d56afec2f8"; + sha512.source = "30133dbf65f1a33f79ad8b2c8ee84ff376b39d12cf0d48c4e72e86b393e0d55f5768c7af5f5f3f6ff1d78fe2c7d4f2b09d2980107dd5aa1d94fb5ea27545ee9d"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.02"; + }; + thaienum = { + revision = 44140; + shortdesc = "Thai labels in enumerate environments"; + stripPrefix = 0; + sha512.run = "25f6bd1e6e9586b261721b66b6b193c07f60dc074f7b7b1911b0a8ba4f33815c86945bcb3946ffe153f70f0dbaeec4dca8e5574f8369c754a6151fc271029f3b"; + sha512.doc = "246dbb624a2e2e30bd5468c2596e7b3f7183c7dd9d03eda42fbed88fe51f16b53801ed39f85590d2739a93d48bc413fce5c52685d5425615f650b19f56013261"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + thaispec = { + revision = 58019; + shortdesc = "Thai Language Typesetting in XeLaTeX"; + stripPrefix = 0; + sha512.run = "02434f56fcc8ab499b4f80439fe9099d5dedef00d6dd295dfc47644a7b1397486a419e1ae2b89a0aefd9cb3a093974158a72a2eb2921d25df3231a7628897968"; + sha512.doc = "26b88ea1b87d8391b8864011449116df3fccbbb978aa76e6cc51dfa893eac87851ee10b1320350de57103b80c6bfb30ca97dd1cdf13014157ea35eaff780843b"; + sha512.source = "e79096902654f302311ab531f8ead3ab9852323ed774fd217aff94c0e1ce456c01a5d8a28854b7c5d65d0274318a22cacd4dc04a00498eaacd92f538f20f6013"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2021.03.01"; + }; + thalie = { + revision = 65249; + shortdesc = "Typeset drama plays"; + stripPrefix = 0; + sha512.run = "695d16e6630efa10363d6c94f410cdf11947dd0c0e59987cdf01e0c699c53c994a702b3802b8830e38b6f5b0ce654af5710ef93b094fbc08954eb8d9bc5d2915"; + sha512.doc = "f2fce885e0aa65d42413ad7ba26a38ff787fed8c1ac5d6434e949e229d4f728a055a6a2ed80f36fe94f6fdf11cac3bafbd2a945cb9bf2ec0b436eacbe1ba58aa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13a"; + }; + theanodidot = { + revision = 64518; + shortdesc = "TheanoDidot fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map TheanoDidot.map" ]; + sha512.run = "f7c8f9506516c52ef1714e0abbf594f1f6be8492aced3f502a7f49c2a1b12c69b6c57c01300f71f582639f42001c3ece2bad4f9b4ff2b1a1266c3e36e9bd0d91"; + sha512.doc = "0396291a9213e2b80607572a2313801a6a93f4ca2f54889a4c18e8330ffe9f057b856ff957d58d61ddc2828838c6db9e45e26cf611ff88ee80f3b2073668ed64"; + hasRunfiles = true; + license = [ + "lppl13c" + "ofl" + ]; + }; + theanomodern = { + revision = 64520; + shortdesc = "Theano Modern fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map TheanoModern.map" ]; + sha512.run = "c940c73df2143395fc4f2887e0273850787cda96cf586b0a2067ae39efdcde999338eb7826fac9af5e97bca978bb309b0478e1dcda43cae0a0b3266430d3348b"; + sha512.doc = "934ad9a47609277dc1a10bd20f55f0ca01b6f1167a574ee8609352d94f4aff6305db9ca0e3ca5b83cad1f1eac74e5227fa92acd65df9de3f91abcb653f60d21e"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + theanooldstyle = { + revision = 64519; + shortdesc = "Theano OldStyle fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map TheanoOldStyle.map" ]; + sha512.run = "b2df891fef113bcd50ba63cea16942738a9c8665a1644187401ba471e53c2f35070c8a339c1281e4d679dae39e22497de92d854ab311720903e676dd7e7b7413"; + sha512.doc = "cb896fd78684c8c21ae5579da4b510636336e4959c0943577657aa90d2d843415eaaa2eb42e7d1cc031f6a50044a7702c7d01abb8af7dabd4b6132545c799a07"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + }; + theatre = { + revision = 45363; + shortdesc = "A sophisticated package for typesetting stage plays"; + stripPrefix = 0; + sha512.run = "d450ef176d5543581316ff36590eba2ed829a3f2b8a019fa8ca379af0ae2aa4df4e4e3068b52ed91edec4df33d08aa78b1f5f21d0fdf33d0aa718704e3de2851"; + sha512.doc = "cb4920d5acfe0e1288c7d459d15b06b9ced1130b56ea92c9ed49376743cee7e3fbb694362bac51f2660269992d64717effc5d8e9f52a21337fe7eed51a4622f6"; + license = [ "lppl12" ]; + version = "0.1"; + }; + thematicpuzzle = { + revision = 69356; + shortdesc = "Horizontal banners in a puzzle style"; + stripPrefix = 0; + sha512.run = "3dc42fb8b0d1b5aa3f68af6efa29a683e4a2d7b14f9e8b79aa56cecb15356cd8a9ad6487267b2ca978363ed7e8b5988f3efbfb2136774e8c5d9be25ef65f0bd9"; + sha512.doc = "cc3aad57de0a8f2ed5bcd46d391820a2d8d316d7fd75d5d4abb8a6532fcf05d6643aad83570413dae441d14956747265e7137b05fe5512423d8fb3c1fdff5f89"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + theoremref = { + revision = 54512; + shortdesc = "References with automatic theorem names"; + stripPrefix = 0; + sha512.run = "ed6990b6c7a9ec4e72770252bcd07ad5ddf4015cde0129dc0a89cb95bc96958963209fe46f0ba9a614ebc0cdb358d8125ee3eb22b9a4249367d975ec12250a3e"; + sha512.doc = "022ef42c6765c661f5828a8adcad7710d74f168b3a2dfad0e73218d1a5295b25ea24d5fa010a01151939e87989cfd6457917167e69cebf5ee5a364347eea5f2f"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + }; + thermodynamics = { + revision = 69086; + shortdesc = "Macros for multicomponent thermodynamics documents"; + stripPrefix = 0; + sha512.run = "0bae277827251a42a366ce85aee49d762e08025b96472f8102a54b7a9f1e74622bfa0064aeaa6dfee5248ef84977fd47389fc91049c057caf75c33930ade37ba"; + sha512.doc = "3e2ae382e61ec8734e6cffe6c4d5efbe853a3c6748e1d8e75c2e4fa0ed6e7ada7f8a79424f49c43a753bcf6ce867b84ee353c553ba412c0386d58d2d4f5f437f"; + sha512.source = "0ddadff5d744ca8f45bab8f471685e9afdcb494e60aa6ba0c32c8a75bce536adc6544c097e95da02457059b5bb96ed37508217577caf16c963af6e07651ae721"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.01"; + }; + thesis-ekf = { + revision = 60228; + shortdesc = "Thesis class for Eszterhazy Karoly Catholic University"; + stripPrefix = 0; + sha512.run = "7ef62e88cf25c1b7c37dcbdba00dca0fe522727cd6d1b5bf27cdea73e4638defd2430c2440879479427b2faea91315203179b8f45224d68067ad46810dfd6da0"; + sha512.doc = "50220e7cdded7a36703fe4e0965d19e18c6aca7a8f738b4808efc28d472f01522b456474bfb6c4d43ecc61d81173f0025918b302083829e849059fbcac5e096f"; + sha512.source = "a479e92491a962f549ba9a2863504efadfa5a1515d209eb26a541ad88a5bd8657ee3f3492e99068f3dca869e8394ca9008a074c17d139e2a22325364b0a7d89b"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "4.2"; + }; + thesis-gwu = { + revision = 54287; + shortdesc = "Thesis class for George Washington University School of Engineering and Applied Science"; + stripPrefix = 0; + sha512.run = "7001a1f11d069fd15894b34a2d220394924802c3ef1a37869e0d717bdb650bb53c01078dc14760f7887addece64bfb0f6662741bfb6dc4dd77d2ff1f3d0d7415"; + sha512.doc = "e53925a31286089cb5e8f051cdf969c6bbf29db0ae2629c1a584ead2885cc0e1f95c5b2cd9583056c8ab40b1c41d4f8203b876a1e6365d8967e3942440e04e2e"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.7.0"; + }; + thesis-qom = { + revision = 63524; + shortdesc = "Thesis style of the University of Qom, Iran"; + stripPrefix = 0; + sha512.run = "71aab07394cd5e4a433c02d80ae1b81c059edaec926e242861bd9a902ada1af25352f660d892718c88f0de05c4eb4a4dfe2c07f68f63f8d28d2d0c2923949294"; + sha512.doc = "47148e246b917849db3c280a1b6af3485d24a5d809cb252c597b4c731a058eda5824c99374bfe2bdb199057f1c9493506ef757f6c25e3f2d38a11c8bb8a5613d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + thesis-titlepage-fhac = { + revision = 15878; + shortdesc = "Little style to create a standard titlepage for diploma thesis"; + stripPrefix = 0; + sha512.run = "62cdba17287f90580fe6273d1ca9143c9fac01d7da214a20413995b925c6eced385b3a5c172e8bedb4f17396ed7e9b78e789ca475c5efe542283d9b421bd6ffb"; + sha512.doc = "13378f3ef37bd1033d009d03772244e048ff2a16b95ca8a0f14feeda8c44b29036276c41aae812cf1c28ac5684edad56b000f8a45576bd0065fb844f5b6dd189"; + sha512.source = "34b0f176df84b1b1d1f3e47c7c01d640b0e74e30a86488e07e9e67c61c80a96cb1b9ec835266dbee3e45a952f406ade5af5173e7df33f1d12d1b1f5d0611ac75"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + thinsp = { + revision = 39669; + shortdesc = "A stretchable \thinspace for LaTeX"; + stripPrefix = 0; + sha512.run = "ddc80b4de32524ce76fe34e8f88d01e2db18a8bbf60a718454a0303aea8082fc2e495c89c2ad0a7459ed3151e890e30a1263267f249581e24bac87113a5fd266"; + sha512.doc = "b5b50522a4a7b5f7772118d95fdf42e2f570ac35c49a8690560df27df0754a170acddd782b516fa185c0f6ef2abb3ff8a9f366370c2ad46e2e4d32dba21e634b"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.2"; + }; + thmbox = { + revision = 15878; + shortdesc = "Decorate theorem statements"; + stripPrefix = 0; + sha512.run = "83ceeb0cf84ff75afb734f41be5a5309692c6804a5a20627c54cc8760f8ac5e205cf1a24097c8b8624823668796092d620f5ffbc488f63b87e7cbf9365279aac"; + sha512.doc = "ad8e0710a15781eb3164527dd16ecc2050d3cd3317c386841ad8612a9ebc6055a1501272e3b01bcbc6a7f1ffa80455bf2ccdc0cc9ff4428c9688e9f6404a16ff"; + sha512.source = "1b559b9286a97c3157d568982513541028d96cfd5d67ac541909586251ac3729574c23a05ebdfc42ab06a92ab2ea0cef878b1f42983d06fd48f825962de57cb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + thmtools = { + revision = 67018; + shortdesc = "Extensions to theorem environments"; + stripPrefix = 0; + sha512.run = "7d150df3f868339c6bcccb2e881105d9eba11bab8cbbbf42d5a696a7496cfbb87f0ca848e5cf7a63239e563a75515b15d4acc4a72046ca9539c4597e077333be"; + sha512.doc = "939567cab1c401d0946de706105d23add703e991bf36dc58f4e1d40fa35b5b30b37a9e32bc2d252f247da1f1db654bf3aad460dd1882389c00a8e11106270840"; + sha512.source = "a086c028394cff2fcb5c011d2a69627ce2f9651694b8e1596ece652111e88d43c1f1e358ae4c1201ddb0166180d6dec9eb14ebec8a05469636061c224c6f39e9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "76"; + }; + threadcol = { + revision = 28754; + shortdesc = "Organize document columns into PDF \"article thread\""; + stripPrefix = 0; + sha512.run = "e75f887dc04aa55834c285d5e36babfd0844b79b9d1cc5cfb2eb6412bde9f42b651bfdca9f6819b27f6615aff6f96031135f1a6af3b59503fda34e7566cdb01a"; + sha512.doc = "626ac69b0a26fdbed51876782a9ac2e3b0ab9b32bf3b2f32ce19cce080b5cda40a62160f453199a76b58903d762cc8085a8541fa2de3adc5fea6266592c06bdc"; + sha512.source = "df757dcfd1eec3e8da04939ef69d04ffa59767544a1d5349eb538e111843f4c6dd4374e15bc6e586edac629f61d6979688c229381ad3cd4ad61dc2d48afa7c10"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + threeddice = { + revision = 20675; + shortdesc = "Create images of dice with one, two, or three faces showing, using MetaPost"; + stripPrefix = 0; + sha512.run = "66e6a27aa277b45b44c156d408c764da5bee6dc540f2058a783f02bbe806c95052267a5ed79ea49b5dc356d0f03747e9b186542640b34753a693ecffa158a6a4"; + sha512.doc = "c750497229b8bd41eca05b221ed2ca2ca49db8cbbff03bfce2712869d352ae0385e4c10e9730e0b2f8286db9af1e1b87f10d599788a3dfe8d41c28efb8b0e4a6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + threeparttable = { + revision = 17383; + shortdesc = "Tables with captions and notes all the same width"; + stripPrefix = 0; + sha512.run = "f947dd01e56f6f3db8a4ed0b8f3ec564a38486fcb27f30bb3bacdf31af8360590e7e3886cc00cfbab813213974f4b335ff06ceb521d25519e8b95e345a002692"; + sha512.doc = "6b5eb1d6ceea740ec54ba935c45f03c2e6328140e86122a38b90d84e375382adfcfe14e2e9f56384f825c913140f01a1eb6266d2d46f6b813a34b4da652ee31d"; + hasRunfiles = true; + license = [ "free" ]; + }; + threeparttablex = { + revision = 34206; + shortdesc = "Notes in longtables"; + stripPrefix = 0; + sha512.run = "9dd33dcb7f9eebb9396a6a05ac20e9bb221260cd80f355b23f60a0466c64847ebacd8b0d19c75b3d9cecd9c522a8633468e7cc86121f7626141c066e12f977d6"; + sha512.doc = "3dceb0aecfa2ef09bc20250cd38dd698e35b2cd2a33fb446e78a39fa654899c4f6658a18b95b39a5bff2279a0cbeeda71bcedcdb7fa91d148290302b73e7a64c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + thuaslogos = { + revision = 51347; + shortdesc = "Logos for The Hague University of Applied Sciences (THUAS)"; + stripPrefix = 0; + sha512.run = "584d8f130844ac834be8f061bd8078afcd8eae2e4d22e33d8a61dea8ea637476532181cdc7df9f1710ba5d8dd022a64dcb561f21334b830387e9a063ddbbe426"; + sha512.doc = "5a2298e713e4a0711b01fe7fceae12bf20d6a0fcf91cfda63313e74709586532bc407c07be1807eee5405a6b6de74fe976b2ac56fdebbc344d59255080d80224"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + thubeamer = { + revision = 61071; + shortdesc = "A beamer theme for Tsinghua University"; + stripPrefix = 0; + sha512.run = "8391507179c7237588645f08c0611ab441cb4f426808bece8122ddcccdec8c94457efb8db75f7078b6b2adb6430350d5279bf9efa091cecbc263d31fbbfc11c4"; + sha512.doc = "fb2383dc358f2d0990a3f697746b6941a04116af8f184dbc37cccb100bfb19fc72ecd876bc581234c6dafc2c897576992fe8f741fea07ee0889bb1f51555601a"; + sha512.source = "775b719a02f4ce703a37844cbff77e476c35dc105f8c370e6213f157053a397ac80295cf67c84229ff565e997bb89d89f7db209c7f84d8e47b4c92acca98ff48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + thucoursework = { + revision = 56435; + shortdesc = "Coursework template for Tsinghua University"; + stripPrefix = 0; + sha512.run = "6342b407dac5780e1e35f114978ed4466c547a49b1099ecec8cc6169817d3c1405be0edf5f7cd3d82e5d44f9a7e9d1ca762e82970898e92cc7ef06739eeb65ca"; + sha512.doc = "565d7846b45c8c0bece73da1010f835d5d54f9244648d61747c9fce7a8bc2559a3e53a2327e146f559a6df2809250d7057befbb6dcb9dd2026c76f1d1dd16fa4"; + sha512.source = "34da6d4ae8ad815881fc2f8b7df70889ff99adb3ebea2598e0502725b229cb5a5afea11847c8a1c5d56fd528603dc8aaf43c460394ab301dfae1abe6880f8616"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.6"; + }; + thumb = { + revision = 16549; + shortdesc = "Thumb marks in documents"; + stripPrefix = 0; + sha512.run = "30290cc3b8cc48de6c601fcb3d066f0533bb3f09f053d7912db7a127d8327c4aac0a96499b7eaed36b8caf4dcdda5c8f34a5430d69e1fac70510f426c92ab9f4"; + sha512.doc = "29abd2e57cf17edbfeea06c041666ba29e436defff1600df7222dca6160e7be740b64647d7a44a10f6f803011a1754abd693048ca36c4c372ee0da52df2562dc"; + sha512.source = "1712eaf8ef694998eab8cd0b95c6e8affc2a967c81cef6d6bbe8d985137662631254318ad2dad9a021a70ab849986e727699715b27fca1a5952df111474f92e8"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.0"; + }; + thumbpdf = { + revision = 62518; + shortdesc = "Thumbnails for pdfTeX and dvips/ps2pdf"; + sha512.run = "74d1b32b1a48825c423d4346258f6f1eea60d2054ed38b3d9d4e207a3375e35b6e80d87706bc2d265f62606a449a0a665c8698f4e1615b39df98f6f54b309fff"; + sha512.doc = "26f698eef73b85181abbd155e8ec8f6057f7ec0c5ed1448a256e4fc2e41cffc77474fe4c3695d611e8993bbb1afdf238e3db3a90bc2b7af145535f726af027ed"; + hasManpages = true; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.17"; + }; + thumbpdf.binfiles = [ "thumbpdf" ]; + thumbs = { + revision = 33134; + shortdesc = "Create thumb indexes"; + stripPrefix = 0; + sha512.run = "58e489402fc44cbaece118203bbe7011494b7ef16ffa0e5d60be2daaec0c4ef2d048a71f0d9373a1683aa780fd20e3d64330e199596effc7cf2fcdac34f1faf1"; + sha512.doc = "4c58ff61d64b841b3a3bc018f94c193730129edf45c87fcb9c85685f748ca3db1f7d51969dd25882848cec906485f739f8f07c8bb2f8bded580b59ea93032a14"; + sha512.source = "26458ebc431f64a324c39ec370f2b0714a56563decc944c64156f0a6a3e22664e89239bbbfa7710d9b46706657b48470ffd1da7a1801aaca2732b30e01935fe4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0q"; + }; + thumby = { + revision = 16736; + shortdesc = "Create thumb indexes for printed books"; + stripPrefix = 0; + sha512.run = "485bb2670133c3c83f0f7aaa685defc6d36f5d24173652d869f526770e1f55c55a31f3a3180f115aef45fb824d9032ee915b91c1c59b9b33794c95c92f03c3e6"; + sha512.doc = "bac645197085968fe8a7bd41f4a9ec3c6e51e17e6750b87ca1a458acc9f6a4f244d1f3b36b9c622c98492b90abddf9a4df1636b1874c02820dcdb6340bad0910"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.1"; + }; + thuthesis = { + revision = 67127; + shortdesc = "Thesis template for Tsinghua University"; + stripPrefix = 0; + sha512.run = "8a70b2f51275494437fde3ef83e0f0d901b7164cf9e330d19e00ebe79bb9b4215a6cb3e7137970eb528904e35ba7bee3329f32b9fee64181f57dd09883582207"; + sha512.doc = "fabb0e47004a0fd21f06f442d0b7eb5384242e879af7b7303a7c354d7226213df082d3c38ce24cc571d667fa2b4d978741fda5518871d727ed491a60f1f1637a"; + sha512.source = "3f78020ca5563319ed78c851f781e1a40f16dd234207bdb2e6ddc38cff5f622ab7891c37bf7a187d927e81d9bed96686547d081156700654c23e410964894ab9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "7.4.0"; + }; + ticket = { + revision = 42280; + shortdesc = "Make labels, visiting-cards, pins with LaTeX"; + stripPrefix = 0; + sha512.run = "cefb3e06df2953063e9d12f19f03e973212e784cebfd2d6628d2e9ddb443159b285b34f12238f6b77813cc48e86aae7018cb5bccc4fd158f4d891f05fc51dab5"; + sha512.doc = "fde4b06ad09837d1d6b6efb275800e32f617619f9c18d2dda5924b094f860492053c4ee361a2fded1c9f4509ba5e615601b183191c0cf064af24cc59cfb23748"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4d"; + }; + ticollege = { + revision = 36306; + shortdesc = "Graphical representation of keys on a standard scientific calculator"; + stripPrefix = 0; + sha512.run = "92bebbf5a5e7ccf7be09c205d9007a780422c625d9a308eeeae50b2ec4ba3cc6755a37fd8a49e24b7a381894cc3791fbf50f54348c3ac584a2c0d9a693f93a56"; + sha512.doc = "f0049064eab926eefcf77fe5aa0606202cbce79ed7f0e0f1bafb171ad82b72daf09fe2c0cdf79720834d6349d9190f1d3069f155df922ceb469ad3453a6389b1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tidyres = { + revision = 67738; + shortdesc = "Create formal resumes easily"; + stripPrefix = 0; + sha512.run = "6ae766645bb046c18c0ecaab4d567ed3b66800696a37e28cbc0100dd50db7d89e03b5f2bfb8073a1d819f552f81ff8ecb692889ab7e2cf28210474663d4943e4"; + sha512.doc = "53b927e92aae7d598eef4de6035b8165665a7ed06f37a9457ff16b92eca2c075045f528c62b179923f03d790f163741f5a900b505a50baa8b299d6fb2513bd68"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "2.0.0"; + }; + tie = { + revision = 66186; + shortdesc = "Allow multiple web change files"; + deps = [ "kpathsea" ]; + sha512.run = "ca58ca773fd1e4e786f12e1acf9b0e39afe1709c73cc7a0da4331576933c1a4aafd9eed3a0181bcb20b6087d409c73f78fc2a77d96bb75d183996593b8aadadc"; + sha512.doc = "66e92b91bcf9b6c44d8d2af141d4980a2b0e0ee3a9dcab778eae118debe4ce4459c933cde6a5cb8cf07af8b5d5d001bc1bcafa2776ae64121ba6308a7b19b3cf"; + hasManpages = true; + license = [ "free" ]; + version = "2.4"; + }; + tie.binfiles = [ "tie" ]; + tikz-3dplot = { + revision = 25087; + shortdesc = "Coordinate transformation styles for 3d plotting in TikZ"; + stripPrefix = 0; + sha512.run = "6d4aac2eaeebbe2a4827a5a40e8571c48ff4f5cc854daf130ec7f20f8fa06135bae1486a42b223410be848b72be2c19d6e2ed798694ef5dcdb5861846bd9c072"; + sha512.doc = "0fd9bde0f12ddf5a4bf6e2e1df66a9aafa42e81cd945b41e09e8d289c57b04faddd303a415c36239e6686be90f06e8a7cc794ea50d17ec54f1e25703314257da"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tikz-among-us = { + revision = 60880; + shortdesc = "Create some AmongUs characters in TikZ environments"; + stripPrefix = 0; + sha512.run = "13e082734e52205e78e804b708c920836c04e9b11dac23e49a8e86d40209ce1e074ab5ff30d97b528c027fd45252824a41daa850d1a9669987a7a59210f7b2cf"; + sha512.doc = "6146f3ee670400e39771a264eaa81a9b4b701a47487c7a4f9ec26ef26a93641062bc61893f71c4f66c8a035d52d763aa94740d9a00f5ce5b402272d67af93ff7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + tikz-bagua = { + revision = 64103; + shortdesc = "Draw Bagua symbols in Yijing"; + stripPrefix = 0; + sha512.run = "bb9444547aee41fe90a4f8b8dbdff080b594d05182798ce87274dab5cf3f0510d428c79ee21eb90107ce9b98a0cc906376d1b49ffa80ea57598c4418152f9ac9"; + sha512.doc = "894fcec05e43df7fd13fdcd5f51e50128defa5a3ac67c2681f509740906449322862d885e5188861a1b92d6aeee9b6d4454ab1aefad74c5585efd937fa789e0f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + tikz-bayesnet = { + revision = 38295; + shortdesc = "Draw Bayesian networks, graphical models and directed factor graphs"; + stripPrefix = 0; + sha512.run = "b3c535af8afe86e311e4c7371addfa484403a0a9571a17d1cb8d39dd7242aa4798476352bb04a6bb214086f1ed4985595c502723444a032f9bde04423c26bea8"; + sha512.doc = "2bdd764163c606579e68099873844fdef6b9a36495f4117b99ca483bbe43334965a177f398da60e82c11035b5c7b9e0513ae56e6868d6238cc0c798f47ab37e7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + tikz-bbox = { + revision = 57444; + shortdesc = "Precise determination of bounding boxes in TikZ"; + stripPrefix = 0; + sha512.run = "e68c3c6922c8529bea0b7c25bafc488d7aa41ad81afacae0f674caf637a1638dc8666bd16628b123063d94031d4cd4691ca127bbb648c1fb5a20d72ca8a41fbd"; + sha512.doc = "428d94e87d51e000c5fed4f5b0bd87b8fdb261b9550e0c67e05a69fcee7a4ce3ee070f262d278e21cbdc5bfeea790c6d17450bc91e1e51250b572e754ded3df8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + tikz-cd = { + revision = 59133; + shortdesc = "Create commutative diagrams with TikZ"; + stripPrefix = 0; + sha512.run = "abe5952a90172dd74ddfd02834ec9fc632f26da00450c310eab2528d5b52750e80225219b75e778d1f87b2279e654bb743804da19ec7da91f12e4105f9ec3447"; + sha512.doc = "ec354963bf8915a0c0b68fa0223c48ac48fc0450aff936c34e4c95fe15641319b711b753da7da542352e0fc6e9bbeec627de5a3023b4b90828ee05a81ca5d255"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikz-dependency = { + revision = 54512; + shortdesc = "A library for drawing dependency graphs"; + stripPrefix = 0; + sha512.run = "f13e652066ed2237c22b397b76f628e9108a999138ab5d8349792551205cada4709031f5c4b458982618871d4d65abfe5623f700ee9d8f474c66b1e31df374b8"; + sha512.doc = "3ab32e535d11802b3a828b8b49e78f31df5e5d3c7c36509a3b8aa0d81c02c465ec84d45b9d951ad833dea705381b4df05fa3d9a478db9af0622bc0d69008b227"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl2Only" + ]; + version = "1.2"; + }; + tikz-dimline = { + revision = 35805; + shortdesc = "Technical dimension lines using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "c7a3b158a8acd100192b7dc936f2e452513125389f72c12f0c3818bb4e771abf0748338f13603765904adf1d808fc2b263d0f798999c52638e610d24addcc641"; + sha512.doc = "62edb9667ae4405c798a00c1d079ea9ed5bbdddd76e4a730aaf7405d175afa146fcb7bf43a551001eeff1f683ce3b47a0a79fab66b7410be59f18f4f6e409ef4"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + tikz-ext = { + revision = 66737; + shortdesc = "A collection of libraries for PGF/TikZ"; + stripPrefix = 0; + sha512.run = "83094598e986b8225ba72ca5a151b8d7b475b3fe41199209e816ef9e7d7b3609e693a321a219968d38d78aafb5fe1ac6058e6860379687077abe4921497d7cb5"; + sha512.doc = "ca2e8a322e3f3a63084d2c0b79d3491fdbdd1b6b363e66d721e691ebb73241e96ac7f4ec352588f46a49ee1b16b4ea214d145692f194f67b5ce23d12701e1eb0"; + hasRunfiles = true; + license = [ + "fdl13Only" + "lppl13c" + ]; + version = "0.5.1"; + }; + tikz-feynhand = { + revision = 51915; + shortdesc = "Feynman diagrams with TikZ"; + stripPrefix = 0; + sha512.run = "5dcaa2f5c846957f3583ac5bfba14c668cc855c6dd930eb5851c19d448efdd207ff34599b09379354d0c772cb1890fac375d75d61524e64148602f4b5dde4355"; + sha512.doc = "b0cf316dafb9494fc21d5657e1e3c1b4780b7c30e2fe93235d6d8538979471c31989e4203575dc66204fdb1cb11386d290feba3070e43a273b62ec59a73047d9"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.1.0"; + }; + tikz-feynman = { + revision = 56615; + shortdesc = "Feynman diagrams with TikZ"; + stripPrefix = 0; + deps = [ + "iftex" + "pgfopts" + ]; + sha512.run = "34c147e6ee16643e99d2c8fa789b39aea6f3b9ae7de93fd5c65d1b0daca1e9514d484b5b38892a0cffa1aeedcd405df0bc6621bf68e587311bc9fe45205c29fc"; + sha512.doc = "ae0510a7971538fe458d83d4da4c78f7d607c7a1298344a139c02c49985f9005f6a81ab15f9dc621929d70d634c2cec4189ac4a2955e994611247af0c96986f3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + tikz-imagelabels = { + revision = 51490; + shortdesc = "Put labels on images using TikZ"; + stripPrefix = 0; + sha512.run = "b74cf7113b288af9e98ceb801eb4d72e4785ce30390718c4c0eeabae20c49ca8eba91342b89dda525f06b9f436a427277c4ae8415748f1487cdb073088ed26c8"; + sha512.doc = "843f943c4a0e12d1260ee17f9f908adee568100b1e415df3f1b383fd83d70065c57a21290b89923d7ee84819356a366a467e42fed61370b214621a9ee58ee97f"; + sha512.source = "2c6d1c0b599488bea8d53c136d81881d8cf15497e295b6e0701bc8570f2e868bdb1e0149f25943102cf6e9babfd53ad8401328224bc16a305f46748857c79572"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + tikz-inet = { + revision = 15878; + shortdesc = "Draw interaction nets with TikZ"; + stripPrefix = 0; + sha512.run = "0c4ecd55d10893ac8bca7b8ac38f2366f30cd989c5d6ab4dd501047f01c0285f8e4b78309dfce06525bf525cff77e2edd56429aa166f24b9a7e07586e3befe96"; + sha512.doc = "e61f0a7879dd0ec016b6c85d66e6ace6b953adc2b9abd87306dc4d071d82f44984e6e25530db3fc658650f5ca74e5c237aa64d18e60a3c5c8c7f57c6f42103e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + tikz-kalender = { + revision = 52890; + shortdesc = "A LaTeX based calendar using TikZ"; + stripPrefix = 0; + sha512.run = "8bda7464a62135fe2eb8739d428aca770ee6ba90d3fc08037ebd192f6e436116b59962ae7e0f0cce7addc6a44d0bb5eed47d8c0ff83371a070d3a5c0e8b1feee"; + sha512.doc = "d73e1427574212a2652191b0afce180155ff32b7d8d63f076f2b5dc71c64d1d8dd562666f8a7ebeff445409fb884ac79a66d0271582b0b6b72e84c5fe7c44f7e"; + hasRunfiles = true; + license = [ "cc-by-sa-10" ]; + version = "0.4f"; + }; + tikz-karnaugh = { + revision = 62040; + shortdesc = "Typeset Karnaugh maps using TikZ"; + stripPrefix = 0; + sha512.run = "aa7bb0cbaebbae2657002c01098e9904c21483bb9e67a415834d54b2bcdeae75514a2e98a53e98ba87996b3147af84226e43ec9d121eff52b4f77d57d1802db5"; + sha512.doc = "25ccf7b40c1e808bf5fc45241d3f811e603bdeb770b21e5d98779e04ccce1ff67e73012816b763a083d07f1c62a16cce8feffc0e1c87ced8b83339de84d4cd4f"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.5"; + }; + tikz-ladder = { + revision = 62992; + shortdesc = "Draw ladder diagrams using TikZ"; + stripPrefix = 0; + sha512.run = "c18340557f53f0617831e7e6dc904840e6f1e04938684a21f2897297c8a70b95cacabe4a00e66d632026d8ce7728334eadaf02cf5bfe4ffc0e746f3ceec36fb1"; + sha512.doc = "d77c8771b36df84e61cfada1f56300b10908727a164788b3c0665f14a26db5b03a3ea7f4a0fabf5ecc820e90a27a73c0ff0a7985e37e755852ac401b7143e7c9"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.3"; + }; + tikz-lake-fig = { + revision = 55288; + shortdesc = "Schematic diagrams of lakes"; + stripPrefix = 0; + sha512.run = "3c1c8d90d58c564f54abf0c34db63b3886f6e591dde8a2f7322f9ea2c6b51f10d1eba9d9f66cd1bf6e98e8ad57cd7a1d329e879381b164d4e1517331325ffa4f"; + sha512.doc = "86afa9db08487666cea340d81355e73e64f72566efed3d1fdc8dd86108eb4f82621850baab86e039572e0ca40d5a38157091fa15f7e1462cfabc73be2c5de0af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikz-layers = { + revision = 46660; + shortdesc = "TikZ provides graphical layers on TikZ: \"behind\", \"above\" and \"glass\""; + stripPrefix = 0; + sha512.run = "900f3cba19f723cd75f59f2d3380ac96c6bcd53f4d80ce27b2d393d4728f37b9d9d2bae414f20d38e4b3b93769374281d4e741ac2480986b1662696e08a9a207"; + sha512.doc = "617f1a53fa77f4a766157e72013227e992589b0030ac90ddd181643b1ef212f7e83b8f84f2520d64acf53f2cc76e3333e7ba56b78984b28c3320e2977a87cd56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.9"; + }; + tikz-mirror-lens = { + revision = 65500; + shortdesc = "Spherical mirrors and lenses in TikZ"; + stripPrefix = 0; + sha512.run = "133199223a6b40d9f07dfffcf842bf3cc5b37f58858aaf96fc5304f72d590f7ea4c45349455fb41ecadcffbcfeb8dae2fcea79cc282038d2bedd589a3a7cceeb"; + sha512.doc = "6515311c8514384e205bb3f3f0859e33c05f3b4b1815c56d84c6c01aeaefce2fa9b4d8a87a882ab38afb6fdde7aa236966bc6ef775d4a29aa35fc8c1611d0eae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + tikz-nef = { + revision = 55920; + shortdesc = "Create diagrams for neural networks constructed with the methods of the Neural Engineering Framework (NEF)"; + stripPrefix = 0; + sha512.run = "27ca8ead5ab99566c3bc398b52df4da6bda646519fc5d84d4a8b5476fbf0e86d8b405f2c88a9be56f6f6f4def0e5174ab0b2bc8100300d6b32bbe025dd7bf9c3"; + sha512.doc = "07e9b26ecb4b334c4d7459e636eb116dbf03f7978f88d29f462cd2f9ad81bc24bef57dd659d23c39e8bcd81ba4fa74214c7c399c104fb5af35bf18dfc3e4d1e3"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.1"; + }; + tikz-network = { + revision = 51884; + shortdesc = "Draw networks with TikZ"; + stripPrefix = 0; + sha512.run = "e8100d04b9ef3336a514d18f43ffa6af5d4c2a2ce28663c9f4b40272f5619dbe11dc32f8d7399b7b730f8a90c5aab5fe18cc839d6736d7be6c8e37289e2dd30a"; + sha512.doc = "26cfe73177bbe885cbb224fcd9b4f136a224947a4d9000e24c7f4fd1c44194ab8d2e11dbfac558c68ce36a30c7a7b82f335e3275db22e599dfcddd48d91ab08c"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.1"; + }; + tikz-nfold = { + revision = 67718; + shortdesc = "Triple, quadruple, and n-fold paths with TikZ"; + stripPrefix = 0; + sha512.run = "d227be41f651a45240b3cb79f1aebea5015a06eb75c0a5aa69823731c69cad02c2f8b621de3d10d3b2a334781693f39c47f1b5b560c58ee9c5e7278258bebe5c"; + sha512.doc = "a6684f61e230a4de3cd1e4b0da5ce17aff301cd80c434b7c9375d1e4abf3d3b6f3295979153f957b1499894e59d1fbca23e639ee76db6ff6d719df425d1da56b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + tikz-opm = { + revision = 32769; + shortdesc = "Typeset OPM diagrams"; + stripPrefix = 0; + sha512.run = "eeb000cf28e2ff79106edd734ab71b9ec4ecb0db043a8b03764a98a33d3ef570711974bb13b58453362dd045b1019bfb4a1c1a856b74590110f7d8af308a3f01"; + sha512.doc = "a2ed9a4b52d34dece5b0007b9dc46cf8da8cee0a9288b8db79f38068db5227e35ef9e3fe1f93a4c53e994c06c2d5cf21257bcde24b02f1553cb21d9f7585751d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + tikz-optics = { + revision = 62977; + shortdesc = "A library for drawing optical setups with TikZ"; + stripPrefix = 0; + sha512.run = "ac0a42947cf864f28d5bc23aef1163fdee23e05d54ae570ed28e3445a66cf3e9345d6be7aa231496ad86065731ff0a2afa7ad0ce53332fbb3592c07bd396e297"; + sha512.doc = "7b088c27e6cdb4c2b7b44400a31353963b0b45cb26251edc60b4b8eb54663ce2cb76784c9850349e50728d6e7366be22ee6d84a79fccd5791cf713133079a1ff"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.3"; + }; + tikz-osci = { + revision = 68636; + shortdesc = "Produce oscilloscope \"screen shots\""; + stripPrefix = 0; + sha512.run = "93711a01365e992d47306bd379ebc8f72296554288c855dc1f678232e5030894a9241d195cf949133da45ac8df2de1b55244629999f0c311b55d51a2083c4693"; + sha512.doc = "356d60c65bde0d61207df028447409827888a420300a4b27867561494917e4a45db8e6a6dbe291fd19797d64d912089bacda9fd18ff405a28ff2d6512b3b43db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.0"; + }; + tikz-page = { + revision = 42039; + shortdesc = "Small macro to help building nice and complex layout materials"; + stripPrefix = 0; + sha512.run = "be0e43fc329a014b11fce907c6b073f5f4be64b4da4b184705aff2c08d82c1e644056491d01d59ef0ef8a22b4b4c3f22b9012953e00802a9b697a10f0a2f4920"; + sha512.doc = "896da337485c89508e7cb2adf377090b768beded3360a730a5a9c2400db73866b01e0091aaaaf8ce25b7444bf5c5a243f5eeff444d4588a4f8f8b5ac8aa9cdc9"; + sha512.source = "34741f8aec629a8d7929372f1fc5b51ffcef4d95fb95c039c9ba96e4fe05db366c09c88b6987b57ae0573ed067947e2a375f0bea96a74653133abba850453593"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikz-palattice = { + revision = 43442; + shortdesc = "Draw particle accelerator lattices with TikZ"; + stripPrefix = 0; + sha512.run = "6654ca0888b9a4ac7106d5d275a347e38de7dfc342d7c6228670e51a0285937015a39fd34e83e42a5ab8c2f4341e7f233535308bb2cd65a55227dba2d67ad79b"; + sha512.doc = "8fd0a5a2ca4371e021ccceef41115b6520df6437198fdcba7fc37aa600821a95e91696fabb19cb0277639ff7664574cc56a62e1edcc96e58f26dd65ef5c82fa2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + tikz-planets = { + revision = 55002; + shortdesc = "Illustrate celestial mechanics and the solar system"; + stripPrefix = 0; + sha512.run = "e990d8a92d8f34f3042117e289d7c385e17b973954a2286629c84cc2f13397159b75ec5ea1b032d710babf5b31d58d5f2b23a101b535b9d88328d797a36b952f"; + sha512.doc = "c92e05217a4e4aa6f49a5a400f2faea365483257b61db934351b0ec4c932e1d4d88e313f443cfd726db2b1234d0bb66f4f70064d690c554dcf4c4f16672b0c67"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "1.0.2"; + }; + tikz-qtree = { + revision = 26108; + shortdesc = "Use existing qtree syntax for trees in TikZ"; + stripPrefix = 0; + sha512.run = "5b00d147eef48e874d2d5c9b171e93703c728cb56f3882af4e63a41b36ebdadbd5bcae332bcfc8e091b16ee14a3a3e16c594b0f0879bdedeaacde1c1700c542d"; + sha512.doc = "0e2a19415d00cc6c94961dc2e8292038078334cbedeff63d889a3d843d9ca3e89533870cabe2068f5631b3f48fc456cac36b1720df175c20a9f6c986c388f799"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.2"; + }; + tikz-relay = { + revision = 64072; + shortdesc = "TikZ library for typesetting electrical diagrams"; + stripPrefix = 0; + sha512.run = "ac75431dfeae69fed707b99a42ecf64972436b22863e77586125fd6cde18e8e4d8bbdeaff839edc65aaedacbfd1c1e0ce776bde792b7613f810e7ac1f9102132"; + sha512.doc = "1194309c0892e7c35263389e96ec58121e9a82e887c4c702c69b381b75fd5f4f21df6c33440a746db6a944963d9a22a05b23e53f7c818901591499dddffa0087"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.3"; + }; + tikz-sfc = { + revision = 49424; + shortdesc = "Symbols collection for typesetting Sequential Function Chart (SFC) diagrams (PLC programs)"; + stripPrefix = 0; + sha512.run = "f31541b2333c5d8343143aad3a260e528523f78636cd772deae6e0eba81957ceeeb41491279dad621e4476bd9f5125ad994814cb2ab691e5039b54f9fffc7cc8"; + sha512.doc = "caaa3c08f358b7f920322c553ff77e1f42414f16c67d2dd77bde8992e545366224cd7070e833268437332c080d6c65ab244678a3e9d5888fa97d21aafaa2d2b4"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.0.1"; + }; + tikz-swigs = { + revision = 59889; + shortdesc = "Horizontally and vertically split elliptical nodes"; + stripPrefix = 0; + sha512.run = "f1e10c9cc4625fd2e61113f7d5c1cd637efd35ab9b0ccb4308837af3e384ae412bf068140a0924b0bad29e305fd4ba5a0770fdc1467e82cf85dd8eea8289190a"; + sha512.doc = "3ad431f150914461149b85fbc7ce05213c5176e6eaee553ecbf8d150644bc36fdcfa2d836e5201d9a8aecb58751eedd8b98a06ff305c60688766ce8dd00c817e"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + }; + tikz-timing = { + revision = 64967; + shortdesc = "Easy generation of timing diagrams as TikZ pictures"; + stripPrefix = 0; + deps = [ "svn-prov" ]; + sha512.run = "2c3af958ff5509a470b4e1f93bdbb063f5b911a81de12d749fbd7dc6810715a473814d6d8694a81a49d2f45f1f468ef9d441fe07c2269c9c9a9094e350228b36"; + sha512.doc = "33ab52c8b2a60b9bad41a60375aa75432aea20a71c9fa7816d5dbc868e6a70b491dca9572d5c63ea486053294b6b709aa313de464e375e4f0a7a04f76764630a"; + sha512.source = "f1c7c0be255d533898bd65e85f2a36b2f86abb6580b716cb239821a243f67a2706cbcfffb99628b060aadc9b56dfee45f66e54851861df2e0cf12e6cd331aa4e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7f"; + }; + tikz-trackschematic = { + revision = 63480; + shortdesc = "A TikZ library for creating track diagrams in railways"; + stripPrefix = 0; + sha512.run = "421966536c63307c7fe9c194ebd4d5f8a724f99b9baba20a44e867382b1c08f934c9e88d02d834221671ec6e18d392e6ef4595b5a7bec9a18da03b84bbe06a71"; + sha512.doc = "f5d6c8b60da94b9471adb5faa8d159ed89a8ed4742049ae55da2aa615217215fa1334648c974e148031741fea1407b64297bea8f681cedc770ca13975cf289c9"; + hasRunfiles = true; + license = [ "isc" ]; + version = "0.7.1"; + }; + tikz-truchet = { + revision = 50020; + shortdesc = "Draw Truchet tiles"; + stripPrefix = 0; + sha512.run = "74cc5a05cd9558c68cbb7987671fe1e02a9a076049aad96d4c95d7471ff04e48f03c500f58b85bd8eead46e1af592a54ffe1ef0b0ea0644f4479a332a63dec4a"; + sha512.doc = "7fb291a9d7309c722fe31cbcea7a4004d44552f547e4d71fdcd667efb4aba41b6bf0be0cb941dd16e425eedc668dc6de3d2e55f964146a62b861296b0ed18579"; + sha512.source = "88a3d1ca19871e0329e40165b35ec90ce65b1565d42b4a678bfe611311a0cde68a6a8c67ff3ebdf78a1bafed1fec875a4f221efc6934724a265a3402d4970832"; + hasRunfiles = true; + license = [ "mit" ]; + }; + tikz2d-fr = { + revision = 67239; + shortdesc = "Work with some 2D TikZ commands (French)"; + stripPrefix = 0; + sha512.run = "87cf1fd8343df4c6960e4bc004da9154f98146b57a723022e5a81db506805ebdd60db1edafc03d9d787f151cb333c1d141c5407023493bba316b8b41bc245537"; + sha512.doc = "4951babe22ffa5985e3533970b88a8a92f626e18b34e8f7f11051db21accd2977a926fd7e668ecd018324fa62c8b539fe52c279f8ceddd5a037b76dcf03f399c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + tikz3d-fr = { + revision = 67774; + shortdesc = "Work with some 3D figures"; + stripPrefix = 0; + sha512.run = "6b60280f60ee690ade367eaa10a033cb9bb8452c5b5f6413b7ca4918d521638be357e6af6f760844046c15d1171f55b71f5210946ff4a6c6453a7fc332288b85"; + sha512.doc = "599bcf41c7de51c44c943d984bae860748324faf7981f754b44bf8125499822df505cebe2670229fd7429d5b6b0809f7c88649ad8996f8d2cac604b58c9e9522"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.2"; + }; + tikzbricks = { + revision = 63952; + shortdesc = "Drawing bricks with TikZ"; + stripPrefix = 0; + sha512.run = "3ea07c2c6c3ac86d8fa0308e438956e70e2584f7995b3188904e7cce7d311ad0999635ce77c134046da711a723bd36b9602fb60c21a00970503f572baffb6967"; + sha512.doc = "ab32949ad9502bea2ed2951db41029ef02672db38e7a28f02e90099dc1c1dc9b740f1539c3e7c9163b8da7dc2fb4eb21048ca17a0ce2366a364efe66e2a47609"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + tikzcodeblocks = { + revision = 54758; + shortdesc = "Helps to draw codeblocks like scratch, NEPO and PXT in TikZ"; + stripPrefix = 0; + sha512.run = "a19ee68d5d59d936f1882bdf1de5851b9cac48debc4754025d214cc6838173fd7090631b08dd1916043520e97cd479087ad4548c991c0631856510ee912a42dc"; + sha512.doc = "b75b6ddf66fedf1d69611ca0b817ad9c5d7c0bc162cca2f04794bc3723135032908148baf4aae1b486a0b5af9bc335b9e585943a3a2fd73ae55a0702236f5142"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.13"; + }; + tikzdotncross = { + revision = 69382; + shortdesc = "Small set of macros for defining/marking coordinates and crossing (jumps) paths"; + stripPrefix = 0; + sha512.run = "d99ba25a95558629b611e7ae2e845c9b87cc8766f468be6160115a8b26cc648e83351cf233f946f47889773907023c061faae7744e140129930db481b460889d"; + sha512.doc = "c481b80b675bb9cef760157b7b9ea7c790dc42c75624687231b603b39f3bb9835f642e50cabf4a046df67e3698032b644cdd1495d6a9932acfa3532a66b3b031"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl3Plus" + ]; + version = "1.1"; + }; + tikzducks = { + revision = 66773; + shortdesc = "A little fun package for using rubber ducks in TikZ"; + stripPrefix = 0; + sha512.run = "73675b3ee47740e0c54c352a9cf3349b563cd22756a33aa1f56b6282a9cb4b2da3b851705e7574d5591190bf2392f8900a477d8f93b9102d831c01b2a8650dea"; + sha512.doc = "23fa53a7ee87b26dde5f9832c8b0b23466baaaed4be3ac361659828af6d611ee742b92531ee977fa0341ee5c3058a8ff77cf6ec1a7c3076f6ae4145328320164"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + tikzfill = { + revision = 67847; + shortdesc = "TikZ libraries for filling with images and patterns"; + stripPrefix = 0; + sha512.run = "4864d0859490cd07e123e1160a35fb7817c3ffcc1f409a8c61285823f655357473e0dc7ab92434b5b552cbfca3e88d9181e57cf944d2422467b466cbdcd743a0"; + sha512.doc = "f08d351db50d0ac3d6362c223e30b97b9a734a8b19fc426d5592a17692380667172ee6793064b8c2787ee9e1eaa1a38b70a821f53a2e0dc26316ba81f0549aa2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + tikzinclude = { + revision = 28715; + shortdesc = "Import TikZ images from colletions"; + stripPrefix = 0; + sha512.run = "1559c739ee5ce26c531ed1c989a2d986ee6da05880e6dcb8f14018c71c638028517d1c2374cb452421c92f5d430d4560ae4463732926c56ff33407941e70ffc3"; + sha512.doc = "9cf9e6f5e45f9dba8843684cce3ff395f18c485e30ad0d0566e947dfa69704cd99600f8673203ae212a1aaf77908715c2e5ddbaae0de3732b98564725297112d"; + sha512.source = "3c7b7da5f7fb09fb52a4517846d3cb380482a03a2506c0f2f04f4d71bb42c7ce6cbe4087fe772b45808ad497fc7ba353c9ab193e61c328d57a5dd58b607ad4e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikzlings = { + revision = 63628; + shortdesc = "A collection of cute little animals and similar creatures"; + stripPrefix = 0; + sha512.run = "c838782065c705dfd919708c281d97f1e399df4775ed1410473d392b0f1cd2c8e293cf608cdde5e3cc50a26c51ba6bff3c79b5e02216ae3d3318ab92cc0d6a11"; + sha512.doc = "0a728af74191084ad20d20ad2165bc7690ee805831541b5f2281117961fb9fa54e6f214a4ad570b63019fc8e7dae57c6a28ef37b18088a37f4fb4ca580c37b6b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikzmark = { + revision = 64819; + shortdesc = "Use TikZ's method of remembering a position on a page"; + stripPrefix = 0; + sha512.run = "21196deccbed47e7bd2a95adbe92e197f1073afd26da98ab92494e46ab7cef325c6005d8bcdffaa53a42de440cdf10c5d20370fa0a5f43894defc1a01a284310"; + sha512.doc = "c8222246f56882479a84f834b47332fa9a66d0dbb21ee3fb4018835aa9fcb26fa2204d70ca17d7c4609352648d76b1bcb4dd5a32eb7cb504035711643c944141"; + sha512.source = "bb2a0a621379392d5741296ad90d7ea7eaeb73496363e42e9be44642254f7db2fe8318572c6a44b0d0536cd33a96952c7d860024ab6c1d2ff2a2b2d85d78a46a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.15"; + }; + tikzmarmots = { + revision = 54080; + shortdesc = "Drawing little marmots in TikZ"; + stripPrefix = 0; + sha512.run = "c2ca7c1f66d070e1249b2ed9e88cadd482353140bc3add0146d7f67ffdd8c08cc3eb4b9c59f8e2d822000554a8bcf1e0f064c96ac0e002a6c80655c5eb909f81"; + sha512.doc = "03a4494458d7f053547952945e9ecf1c500dd3fafc665852498de05f38234c45f0972971e8278d279d36c81f2b920152f10ad1bda2c5b24e5957ad0846e77d9c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikzorbital = { + revision = 36439; + shortdesc = "Atomic and molecular orbitals using TikZ"; + stripPrefix = 0; + sha512.run = "cc0be76e583d67759d53ab89f777f137e7038eb8344e841a3a1c6e5327129063f2cdcb67c586546f8bec94e8e83d944ae864f291b5b7d384610f93c0ce604aea"; + sha512.doc = "676980e8772650f77ed37d545cbd4ac22af170e1a4541acbd0739f3b5c0aff91f3d48cd3b3fa3c562510c1c624f46de2218fe33a9e53532ca88ccbb929e3495b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tikzpackets = { + revision = 55827; + shortdesc = "Display network packets"; + stripPrefix = 0; + sha512.run = "65f07d48b37db0391081c8edeb97d59dbb7a261ad1320b3b018f14a2b4544bfad46964b82980b3135416ed75fd7f21d08df97179d1a3ae2fb55308d36e89d2cb"; + sha512.doc = "f669d0a09de871167915f4a6647791346703abf03b557c8afa03f5d3ed81754c4d175d211850b7d6f87c2b0a1077c8559093d9743130f10ef334c10df74ddc69"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + tikzpagenodes = { + revision = 64967; + shortdesc = "A single TikZ node for the whole page"; + stripPrefix = 0; + sha512.run = "f8e3258505ccb31b677212034c3300d442fdae73a45c0dc6e7bc0837cd716caa778ef9410f37ca1bd87c647d9cff28ec3d0f35496c8d1a5f940ce9e602dff475"; + sha512.doc = "daa0cc0d2125a41a6748a2b94b5f399c05d06c28479e1f1bcd188a647ad72048e17f1f851193dbc35bff58f6ed9696a4aa9885fdebadad3996d1e2bc9fda6347"; + sha512.source = "285249f6a0316dbce7b28c41afbcee367a4c682c75d0d31cd6cbbb2fa9ce68813839584e6c74c765ee0e03c4dec115091c99a6509328e2b2e5089a6222b42bf9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + tikzpeople = { + revision = 67840; + shortdesc = "Draw people-shaped nodes in TikZ"; + stripPrefix = 0; + sha512.run = "18621315d7bcec4bcca281b3c3410e281404fd29b0a5d2f4ad799aacb71a1c9d389db8bf1c9fc91b8cc279ec801f0cf8e31c826ded92d8476ce4ce5831754390"; + sha512.doc = "8b8ad4cbfc03663afa6064d4a81ea9c256b8c08522e455c5660c649fb9f1de7859f368d5252b348e0521d62fa3a446b6ef9ad2d1490f7afed8f5423a99b46d3c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + tikzpfeile = { + revision = 25777; + shortdesc = "Draw arrows using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "9da38e2e02c651e2f89a0e9ea917fc5147626026acc7302b7e32aa2cbee072f91311fbab73e44852a2c237290de76e560f2b45e88639936b542e6986d90a9b4d"; + sha512.doc = "a66c6ca303ab6afcea5d94b02936335d28077697d81632199de2678528100c3b5a754aa281fa83d93819a53eb2fc945ae899e254b6d6ccd926f8fbbd86d5ac2e"; + sha512.source = "0a2e2d5ec964bbe5e6230c609d1997fac779f1edb087fdf130b93ce3ae76fbc0b90f5af9076de3f969a8d69e4054571f63dea947113f7447b7fb1f526849929f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + tikzpingus = { + revision = 68310; + shortdesc = "Penguins with TikZ"; + stripPrefix = 0; + sha512.run = "78041352e86e68eb99f875a1c8bf7d4a50c527a4b405e4c93e9da6ecd716bbb0c5fad053fff80229723b4550345077371a52132258cb9d251c319f743767cb7f"; + sha512.doc = "1748e17af7b3190e19a0c446e78f5b40b6a135633850d610179f33927650c8cd92babca86e4fd10408586d1fd81814cbb54985ab0fadfbfd05219b033e4323c6"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1"; + }; + tikzposter = { + revision = 32732; + shortdesc = "Create scientific posters using TikZ"; + stripPrefix = 0; + sha512.run = "75fd7b71632c663329843a48bed32b2fd04cbac02d24271ff1a49bf03e2905ab8f94b5876ee68876bc6017455cc3272750e85eea6061dea57f47fe96ec9e1045"; + sha512.doc = "1bfdf7bc2aa38e876378a1dfac751a57ac93dcb0fc5abeff700107c8ef11423751dc69bd7502c9b2ad2641f7f760eb697a248833b6914111dcd86d7f8a32e9bd"; + sha512.source = "3d78ed0799114da415a112f6cfe73b84a242389d475e223db53a4c9b25d9d5c4ad3285910a3b24eb9fece2195dbbae72e18d57cc83f057fad6062bd5fd5325cb"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.0"; + }; + tikzquads = { + revision = 69409; + shortdesc = "A few shapes designed to be used with CircuiTikZ"; + stripPrefix = 0; + sha512.run = "104bdb76221a25a50644dd8c9a655d5adc4e6019a11c470fe24637a51bb91ac6fb718a4949bf940199aa47f43186f874aee59e5405db45a6497e45f84e69fd9b"; + sha512.doc = "5657179ce49163299bc91f3730dc3fcf77972597502f43822330199a20bc244649e6437a6bfb1c4e98bdbd02e30beee58b950dc73e8269b318801135025c6f1c"; + hasRunfiles = true; + license = [ + "lppl13c" + "free" + ]; + version = "1.0"; + }; + tikzquests = { + revision = 69388; + shortdesc = "A parametric questions' repositories framework"; + stripPrefix = 0; + sha512.run = "616098fcc9f7867458edd525fc71d83786080b1f4ead9a007083d8347add52499b2fdf2c969213e06d43ffc59e9eb4d17bd7872404f1481138229c4f15c1aec9"; + sha512.doc = "433c1202106723c397b383edc37ecff762ce7910b4adf2e70a5ea2d2c823cac2f96147227eeffc71bcc2658b18ce875c780f91d8997f40ab823ab09eb1d84354"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl3Plus" + ]; + version = "1.1"; + }; + tikzscale = { + revision = 30637; + shortdesc = "Resize pictures while respecting text size"; + stripPrefix = 0; + sha512.run = "73aa62d84417deec8085c3f46b1ababb756e32ae55c4af97def15816606df2b3df4a7735ab434d489d24dabf26806428d945ff3fced3c5eb7c19b36996f2f58b"; + sha512.doc = "d2ac9080a08d7d7e37ea2d1f801c4091cddf9540eb7c2cc2c0753ab0c07c2f0e7392742bc2e93274775c890184c126aa490c78fedf8827a6c787b951abcb6bf5"; + sha512.source = "e073c55b8101eca9f401dc58046cbae260cd9513945e9c7a2fadd0ef86886607d1f92b83a11258be94e0bca08dea87ee878af031c6b42e343b716a1c6af42a2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2.6"; + }; + tikzsymbols = { + revision = 61300; + shortdesc = "Some symbols created using TikZ"; + stripPrefix = 0; + sha512.run = "4e1a479e6e238026dfbdcf152d63c8b67419919f74bffe3c259828a5ab6bec62955cfe5f5a7f407646fc2e5b742fd009280ec4a57cf708317bd9dad95a35a1b2"; + sha512.doc = "7219e48fc2407bd44992378b24c5a1fd0b9c1a9a9c408de2734966657f83735b8cda336d207e9d1593afe0fc58aff7d83213a9ca4be61201df98757e2e4ade75"; + sha512.source = "546f813ef97e1c6d286b4c79e2320bae75e2d94e43d9a15b9d4c6786bab9027c2aa86ba1ff5f94149849f7c11834408106623929b732f8b54697dd7f2916df3c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.12a"; + }; + tikztosvg = { + revision = 60289; + shortdesc = "A utility for rendering TikZ diagrams to SVG"; + sha512.run = "0957b87c9a06771afab350de769e3fa9f97ec0aa09e4e740d0f916992948a65740a96446a0f8ac144273e94f228db2c6c0ddb22bd01ea9f0f66abe5adfe0125c"; + sha512.doc = "3d90c0963c570a115390603bcd5f39a224a155faea8ac6eec511b9689ab98383386d3d6e92076129e0f704d69bd18da52cf2f89f5db024a4d5c34a75c1edf279"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "0.3.0"; + }; + tikztosvg.binfiles = [ "tikztosvg" ]; + tikzviolinplots = { + revision = 66659; + shortdesc = "Draws violin plots from data"; + stripPrefix = 0; + sha512.run = "00fde57102ed13eafb247859de00c62829ce60de361794afb9103e501033140baf9b474fa147b7282727f7294a0b337897985460526f573532d90117d5f8e552"; + sha512.doc = "5c7cd0990935fb05fa418ace90299532e3dea64e74789dafdff6aa9306e417a3fb170a2b5068045fe5069a08c4ccd97bf4c98ebf5f2102a2c9ca2564090ee52e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7.2"; + }; + tile-graphic = { + revision = 55325; + shortdesc = "Create tiles of a graphical file"; + stripPrefix = 0; + sha512.run = "b6235459600c5c8bc683c9fe778bf864f5ab3dfcc8c15afd7b997c45f349f05b57ded236daeeef1e6bbbb7e535a4f203625344a35d6e4de401c082a937090cfb"; + sha512.doc = "c945ece6ed1b83f4fd8923dd74d0c961c907071fd5d33feda3ea514beeb8b85878dc63011ba73edd1d4a62799ee2555cafe7d4c866d55d160c7e97168ab16038"; + sha512.source = "8334012b871abc58eb44f3b20f76d1afb2764f07be12b7122c81e5ab627a14fe2221596756868523ab8c6b11e0e7f4aba0b9740efbb221e569ab1889141b250c"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + tilings = { + revision = 67292; + shortdesc = "A TikZ library for drawing tiles and tilings"; + stripPrefix = 0; + sha512.run = "f0164d69df56b1b981aec352326eacdf0f79366852bba6eb010a3842c338c678f1f38d3a5b1043ac4ff681595cc4a14a127a40b383f7d5388d9c52776352ac13"; + sha512.doc = "13ac6a6e02a39420f0ed5e74d3f242561de4cd1e410fd6845e82b893c63d2becbf21064a676be29eed0c4b38251a78da55f43164eb2acccfb9f8d94fc72d6462"; + sha512.source = "d6ff1a0f7453df40b7873a5b64a6d449990a3f8459901a3aaa41a5977fa0049a6203bf1cc4802b3d7383d6c68b55abed99c13ff5c5e7ffef4dcfae0e36ed43d9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + timbreicmc = { + revision = 49740; + shortdesc = "Typeset documents with ICMC/USP watermarks"; + stripPrefix = 0; + sha512.run = "01e0e06769810e07389006e9443a836de76e95fea6133e7aab1f47cc554c3912a8aeb43bbf33d06cf9f3a8550a9eb9ec23830ab96ebbb84629ec957d7050e9a9"; + sha512.doc = "ebe4cf57814e6699127a30031c801efe583505098c707a97bece8dff93ff0cd4939cf047802ed38e645c339592e1a062c512dcb5d027192122e4c98ce41d1eac"; + sha512.source = "eae8ea0badfc036dd6c5908c95bda4e829bebc90e4d50cbf766937701a6f631ec9f39269d09889c5c2bf15a3dd24ddd8062829e5bf735c291e4338085749607f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + times = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map utm.map" ]; + sha512.run = "06f93b823a6141a51554bbd682c128977676775b1c097f7787916c0c14b76d6e9c4041645003111d5a1b905de4faafde5b3efb61d9be9740b9627ab57f3f8eef"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + timetable = { + revision = 15878; + shortdesc = "Generate timetables"; + stripPrefix = 0; + sha512.run = "caee17cfe1a4bae7bae4479066e2f869e6ccee34d28a8952bed7a1409bd9ecb27adfd005f0e824d8ddacbd0e65762da79f9ea5b04d0332d643749ef36b908946"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + timing-diagrams = { + revision = 31491; + shortdesc = "Draw timing diagrams"; + stripPrefix = 0; + sha512.run = "0c07a24aea43b0092610cda5878a7e2be95777f199c9983e0aad42d83c1a6bd96dd4ca4caddef6b61165d62e924033eb01524fc925fdc8a4fd4baf44f568eec6"; + sha512.doc = "1882008e990cd6cfea47b35bd70a50f22972dab0470ada417edf1aa236d2619d57bd3b1d4a149ecc08c1a196c36c9dbf97328f58ea4aa25acb0a6addfcfe8651"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + tinos = { + revision = 68950; + shortdesc = "Tinos fonts with LaTeX support"; + stripPrefix = 0; + fontMaps = [ "Map tinos.map" ]; + sha512.run = "0212c5d1d87d1c73c66926a7bf06b2b62a0be51b3a03daec2086a15a4facd80e175ba3f4e23f486e181fb6d3910b77f7d26c28a8f76a9802b5112b010efccc2a"; + sha512.doc = "e7f6fa5253e729b602c1bde603e568d5cdcb953e2a4f1e478c52959d25f58f7678cd107466d7a99b459af70250076c5f16224e4ee549998356c1b1957aaa60cd"; + hasRunfiles = true; + license = [ + "asl20" + "lppl13c" + ]; + }; + tipa = { + revision = 29349; + shortdesc = "Fonts and macros for IPA phonetics characters"; + stripPrefix = 0; + fontMaps = [ "MixedMap tipa.map" ]; + sha512.run = "7919b8f5a416cab24c02675ee0a24c60f64e9dfb3bbacb416eb74e29badf6b4dfd8a0528cc8b38dab6395b8c74ec5c808ad84d3a8d4ae5e8212691bed9066129"; + sha512.doc = "213c4eb24943e655c03087dbc5a51eb3cfeff09ece1d31fd11f1734ab3b219db94cc8b5f4735f3d6381b79a5d6ee2cfe727acd17f823b21163e910c09f48e413"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + tipa-de = { + revision = 22005; + shortdesc = "German translation of tipa documentation"; + stripPrefix = 0; + sha512.run = "45ce2504e63e517e76ebbd7b6bfc7b6a4b3a10d72747714c731b6af0b1a9de4d025bce996594449ea61e983097748389a6d878936078fb676ddd4d6f1f267425"; + sha512.doc = "c69333d9a7d335fb217dacb00610b9f0e5eaaf78e535d69998fc600fe53f0ba61c7e3cc1e82d75f52b435cd6945044560b2d275476e96d84d611ab4978c02e3f"; + license = [ "lppl13c" ]; + version = "1.3"; + }; + tipauni = { + revision = 65817; + shortdesc = "Producing Unicode characters with TIPA commands"; + stripPrefix = 0; + sha512.run = "4e628711f3f1efcf96787bd1ce489380a699c4f800edf79523c8d5929339db8ed2b7c2ba49a456bf71b8b280e006fc672ec186b92c35b83934adaa561ce9f296"; + sha512.doc = "9b4f7c48f48797bd4b40e3d823a0cc25f4edbaf1983067ec60ef1df6be58553c10438bca825c4315bee1098d57c8255e988b784660ab6c8ff9d34b11a42d3430"; + sha512.source = "c7e8ced6797fe52d534c30e216bf1f8a1a6154a60623201ed13aabae07ab68a67b1f3bd62c7651e36a059db3742fad364a8ed4eb26f72b1846090f0887f25b06"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "0.7a"; + }; + tipfr = { + revision = 38646; + shortdesc = "Produces calculator's keys with the help of TikZ"; + stripPrefix = 0; + sha512.run = "c8a8efbca7e1785dd81fd4695ed7e0c5dbe713d0a5632078bdba2f7df8e9358bc246d8f9d972ad3035106a7ef687f9229ed31bb630009eaec3b63170cf8933bb"; + sha512.doc = "bb739994051c5738ec0cacf1111d104b225593cbac1ee829057dce42017990483630cc062131ccd7d766d7400a252b1ff84744f91b77d0ca5a1f9ee195a28d5f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + tiscreen = { + revision = 62602; + shortdesc = "Mimic the screen of older Texas Instruments calculators"; + stripPrefix = 0; + sha512.run = "00682d70199d66b3f6a759a32a1cad6b14ef09eaa541cb0ef547d86fd512ffd525f2b53a8c1a7315462aed33148a0b769eea70c5c42213d0731a1034cd96d6d6"; + sha512.doc = "58add8332b25188cc4d7199cabc2ca49e3d08598f6ee2511bc525500b1ab0dd7cf8212d5310ee7fc803bf06c09e4c248eae6c52c52e0a3b3a6694ec1d36ec57f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + titlecaps = { + revision = 63020; + shortdesc = "Setting rich-text input into Titling Caps"; + stripPrefix = 0; + sha512.run = "c9a91646115722f41a82e4010e2b95090447e66864e1b7cab57f24dd797e299568d3c5422b3974829112cd118c4e40a2b14c04eb0e141105fea7f6ef8358bf9c"; + sha512.doc = "5b22152e9e3deedd0e6e19bff817030287b81849e76d0b926caec947e315e0ddef533cb911e0fd4f91346b0c6cd7cb87ac10f33c64e3dab6b70de09613949f1d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + titlefoot = { + revision = 15878; + shortdesc = "Add special material to footer of title page"; + stripPrefix = 0; + sha512.run = "aee68d15213c20d9ba0ef6e3a95f111804e4438d2c80a6cd83ae67725c3174db7f38b0d4280b26f7119e9e1c6477a0aa04d3ee5877e15b05ff2742d94a720c5b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + titlepages = { + revision = 19457; + shortdesc = "Sample titlepages, and how to code them"; + stripPrefix = 0; + sha512.run = "affb8e221dd2ba1ad6e18d08dcbf3176bf65ae3006a732a7d2bf954fbfe90215175cd3de0dbb7546906b7d65eecb9aff06fabce86c46e88e5027851e11e52260"; + sha512.doc = "703f376c6bb2480f7a326f31ec277716073ddf67834930401c17627dba41c5321a0115e01ec73160917c68fb7ba4e0042e8ac40d968eef89f52b5dd27c2e0495"; + license = [ "lppl13c" ]; + }; + titlepic = { + revision = 43497; + shortdesc = "Add picture to title page of a document"; + stripPrefix = 0; + sha512.run = "753ff5c116f102ebd9fe59ea0ad1e80a7fd102f55588f9454fb3ef43fd5478add2d39984638e112dfcc5421f5f79b4c34c8c15d47845273744b6960946ad1805"; + sha512.doc = "6faaeeb6c7212e35c22321e279c08ac8a985ebb8ec66054b49456ee5a9491b88e48edcb20920d61a052b2df9617ddee7e40bb0e868fe082ce5889e63c193b641"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.2"; + }; + titleref = { + revision = 18729; + shortdesc = "A \"\titleref\" command to cross-reference section titles"; + stripPrefix = 0; + sha512.run = "73905fbe96bc095f602339e0c943048d775bf2a89ef9de3b7149dae7b76aef04e5c77803555450d931f3a4dfef16f5e72597a4d06052d4a852623516edd978f5"; + sha512.doc = "70db133fb8a5fa38a6f0f82912d19afe84e0f68820fe62b3835a6d237582a32fe6c2ba5ad05e46f39540d52d0aafa5a88325e1050e6102164a5753fd9c68d6ad"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "3.1"; + }; + titlesec = { + revision = 68677; + shortdesc = "Select alternative section titles"; + stripPrefix = 0; + sha512.run = "b738823380d594dcef104e3b7fa05d9df233385ddbadf6fc6bb45e8346311f5f58f5f605dcb4b6541f88b57a27b73236eb77a1d128430c6ede675625e2ec051a"; + sha512.doc = "b29c7b4dbeaee946e404166a4b1f4848ecffc4cc238534cf0c7248b1964146893125a9f5f8f87d6c2ea21c1e61304454bf7eb57d95842397363b88d438636363"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.16"; + }; + titling = { + revision = 15878; + shortdesc = "Control over the typesetting of the \maketitle command"; + stripPrefix = 0; + sha512.run = "2a321a17b1ff74f57e7bf3f9d72d1b66a0623ed286c8aa75df6d55f1e62b214954ff38456f27f172789bc4cb500688656ab156609933faef67e62954d05d0ce2"; + sha512.doc = "e69af16331da73c2a61b063ca4dc4c5f70f7958c366b06e96745a2bc92397f89210ebfe598f445ff33ce7705d0f0b56fc3a46f93bcc89145d50b92d56820f61b"; + sha512.source = "1b32988678f184fb335c70ee59d47cc3e20a7ee0f1606495d77880aa915677ed4a885557a406cfc5f5a67878cdd0675ecad503a6457056d901b96124f7eb171a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1d"; + }; + tkz-base = { + revision = 69460; + shortdesc = "Tools for drawing with a cartesian coordinate system"; + stripPrefix = 0; + sha512.run = "a26cb6c8fda3baad6d455a989a4c0f46b5e3b1364acb8f32a866f5ed946344574d29b310c2fbf4e3534dde555d068ae588f9e04b430d15a59ccfdedfe31bd2ca"; + sha512.doc = "9da2aa2bad4901e14cb4c8fa747af000de891005c38175bdce88d706fe83166b534f0d5b39c8557e5ae5975b8b58212cfafee7d2d22c07e76d41ba77ce1403fe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.21c"; + }; + tkz-berge = { + revision = 57485; + shortdesc = "Macros for drawing graphs of graph theory"; + stripPrefix = 0; + sha512.run = "1772cc37537ca421022c5b68536ddcd6cf0d5e88d428cd7682e7773a8290c4b2ad90a11b07dd8c4a4edce69497b63d9a87b5f113bc5857dd8e59e7b80d1340ff"; + sha512.doc = "84b5524a8a0cbce6f33611b77c451fd9a75f0d60375e61e2064b27ad4f28a579fddc9a9dae538cd1f540cfe78f98fa62d9b2df979b9a1ca8e73245245ac35f1e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + tkz-bernoulli = { + revision = 68780; + shortdesc = "Draw Bernoulli trees with TikZ"; + stripPrefix = 0; + sha512.run = "0824d03ce5cca5be08cd648ac3629094eb4607681601b5d75a56069df687054b5e88c3645367c0728de8f7cf43971b32286eff4b18dd094c620ce37e6c957880"; + sha512.doc = "ea1d787fc049cf42605d6adf107892aa4afdcceb32c874382453836d30b956e1599e2b9286a0e64b823d55005bf8ae2e81259d881b69172f6af5db4e01aab581"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.3"; + }; + tkz-doc = { + revision = 68665; + shortdesc = "Documentation macros for the TKZ series of packages"; + stripPrefix = 0; + sha512.run = "ba4c220f4a53089f8e6cde73cbdd7e1b8eb68f4828217dd5dbd3360086bb946fbfc30a993c678bb8c6e4987579016f610875fb2edc796fd19968c3940a0f4402"; + sha512.doc = "f4e798620ecafd750332e5ae7b3491eebc72c02ecad00e9a67247ed0eba56a537d8ea139bafa6bd9bb1c908dbcf0e13491d2c208805cce1f18db438e8da38a71"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.45c"; + }; + tkz-elements = { + revision = 69715; + shortdesc = "A Lua library for drawing Euclidean geometry with TikZ or tkz-euclide"; + stripPrefix = 0; + sha512.run = "cf3694ee7c964b32572bbba7f0f90f9705f546ca074ca566d7f9e104424d9f3a06c804dda89e83496a5749341778d676742ccd1d11fbed4267b025944d876a03"; + sha512.doc = "041eacf3a2657e364db72c12defc437ae336bf4f4250d35de3272f27821b01b4589f102cb4232c7eb1afbf3fa6474df022a0f40a79129b17d2325f81694bb4ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.00c"; + }; + tkz-euclide = { + revision = 69702; + shortdesc = "Tools for drawing Euclidean geometry"; + stripPrefix = 0; + sha512.run = "ad51786dcfc0bb75edc35b53f753972be5112443901d9e3fb42707c33b08ce2ee16e66443f59b6e6d84767fe48088c1ad0532a7c9fccb70da29888db607f6b68"; + sha512.doc = "8225a344b3c73e3fe4bf00d36517f3fce40cdac5580b605b3571568c58737d8981db8de1639fc5d5cab4ae881898dffd7799b390d6535dcbdcbd3f9264aebd03"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.06c"; + }; + tkz-fct = { + revision = 61949; + shortdesc = "Tools for drawing graphs of functions"; + stripPrefix = 0; + sha512.run = "ce605595518cb9b400a5b49620b5f359de8e0fefbc939d88b8f5aa2113a856ce05f4e9f56bb149c73e5f46c65d7d340a65edd6f1b55f6cca68b10dfaf7e04a87"; + sha512.doc = "c2de4bd1cd9ebc5e0747608de7b1780ec97da00c512d3e1b2ce3150431c307c043f24b0bf1853d6c3e96203c33573322d66dbf0db7cd82f5b1a026ee5b7c6d77"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7c"; + }; + tkz-graph = { + revision = 57484; + shortdesc = "Draw graph-theory graphs"; + stripPrefix = 0; + sha512.run = "04cf17f69862b2ec068dfc061fb019b54352cab3fdebb3111de3c28bf15047e06c236d979e9a9a92140c2a59ac9c0813ed7006d0411737b1f04f71c3a5916cda"; + sha512.doc = "df2a31047ece6f5809db42be2243d00b0342d54d3b864de6a32a43257b0d8525170e9d642db495f876c12adf4ae5580252c1378356acdc5f18531aa3099e76d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + tkz-orm = { + revision = 61719; + shortdesc = "Create Object-Role Model (ORM) diagrams"; + stripPrefix = 0; + sha512.run = "41263c9ad122a3cfce3eca3cd4ba8798e61ef662ebf7f00be99dd16a25b50f5419fb6c04a84bae6bd0ce2b349d4b3216a1a88c6e3d081d8a064ff561536a7e71"; + sha512.doc = "ba9a6a67384478cbcf5b76f7148f60bb0f2f1932033f95945b28794f146d89b21e82c4d59b87735d46bacacd10c1ddca2b19e2e7ae4045a331383f4085a99221"; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + version = "0.1.4"; + }; + tkz-tab = { + revision = 66115; + shortdesc = "Tables of signs and variations using PGF/TikZ"; + stripPrefix = 0; + sha512.run = "cfd37929060d7213d2294708a38a0ba9df8847b0539ae105ec99b4171083877714dbb19ba2ad5d89bd3ad474573f51e263f42b8bf9866cf010e30bf481f75861"; + sha512.doc = "6356829dfaa331e2e0af9edd044168e07bb8608c28ff386001cd06288da0a1517f7b1dc4bea31e1b06d0715620a4bac80a138bc1228a3ab15f88fa706a9c4b18"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.12c"; + }; + tkzexample = { + revision = 63908; + shortdesc = "Package for the documentation of all tkz-* packages"; + stripPrefix = 0; + sha512.run = "d312aa7220166853d5960301b1aac7917969d6cc3859bff6766d366836255cf46fa24f66ad3401243a0cd63b719428b848969bf66d51e5946f56e672eb10b353"; + sha512.doc = "30ad76a0efecf48067e2027eb713dc9af4ff1b0ac50e6c8dc2213a848a41e83d6f53aaf70f5db8654ac4d60b196dfa2ed465cc434010f5ad457bed8cad15f319"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.45c"; + }; + tlc-article = { + revision = 51431; + shortdesc = "A LaTeX document class for formal documents"; + stripPrefix = 0; + sha512.run = "80b2c0d5418e8061d07d502399895a8334003bf5ed574de8f4af0c422ff0d3a660a511b5064b48e65064a91ea0cd057c134f9651e001eb7d5fa9d981366374db"; + sha512.doc = "96535abc8bf54c62e22d4e47178c1cbbb1ca96bfca16df4cab37b182d50e872c57a2e6ebe65727121fd2682776905c962551639d9435e86ab3fbb5d3e05fb72f"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.0.17"; + }; + tlc2 = { + revision = 26096; + shortdesc = "Examples from \"The LaTeX Companion\", second edition"; + stripPrefix = 0; + sha512.run = "3ac7d28285b15d7e97839619a449c870b3f96e1c557470ba4bf680016c9834af9f09715e09525b00aa2b951bbe20e5d3b1d0a5e5f957de99c13fdb39f4267e3d"; + sha512.doc = "79eead14f268eab643f676c36b20ba89828928fb3b418956277304ac6cf7145d53b4f97c30605690cddce8660361614b58ac65e8454b7740dde17ff82a053818"; + license = [ "lppl13c" ]; + }; + tlc3-examples = { + revision = 65496; + shortdesc = "All examples from \"The LaTeX Companion\", third edition"; + stripPrefix = 0; + sha512.run = "2bdb38f294d1737c73068fa9d768d9a8f96ae858d400f1f8b651c4c51427bdb0e4d623fb8b9b0c0ab2adfe8d55fe472ffa4a27e7064b51528f3eb03ace111a06"; + sha512.doc = "b5bbeccc60b9754e888a0ce457cb88f5c86a6b20c3cdc7850d28c85c409057391355551a97e49bc964521c3b4b498927b499e21bfdcaf15b8b8266c7316ebd11"; + license = [ "lppl13c" ]; + }; + tlcockpit = { + revision = 54857; + shortdesc = "A GUI frontend to TeX Live Manager (tlmgr)"; + sha512.run = "50817d4c68d4e302cf0f4075ff9321bde2fd26336923efd2fb39bf097090b617a2a67ce75d1a14d562939514acb17b2a356bc388f72049dbe52a868ff3d63ffd"; + sha512.doc = "d40cec8456db0d9fdd55b76c84b40565a8b16d7639084eaa5dbc61c3bd2ebd73fdde6f40b11007835be242a9103cdc5ecbbecb6082ad650663968db18cc1b04d"; + hasManpages = true; + sha512.source = "01a9038bab5226f57922215e6dac5acf69ba2bae866f72df1d2d4a3a6252fef78e18d1e7b2a8baf327bd4b89262abe6750b0dd1166f47868e797e50b205322a2"; + hasRunfiles = true; + scriptExts = [ "jar" ]; + license = [ "gpl3Plus" ]; + version = "1.2"; + }; + tlcockpit.binfiles = [ "tlcockpit" ]; + tlmgr-intro-zh-cn = { + revision = 59100; + shortdesc = "A short tutorial on using tlmgr in Chinese"; + stripPrefix = 0; + sha512.run = "a89c2f99ad63c8352462ef7139b36e8563e1db815dcb06bd2e0f8b96554c380b574f7d856aa6bffb3c972bd68e9505d7864d87cfb7bcfef1bdebacd10f14a96a"; + sha512.doc = "2b5a7672c600eb2f4cbfb2810090e4383a7032d851f35a74e36c75914d9813566603019f232715e2e39ab6d2f8a60273c01e5cbdcb345892b0bf8c99995e3d4d"; + license = [ "gpl3Plus" ]; + }; + tlmgrbasics = { + revision = 68999; + shortdesc = "A simplified documentation for tlmgr"; + stripPrefix = 0; + sha512.run = "53f7cc8c2a39ea21a8c5eeb57ae7f99759b364ff7f1b41e2f4599d464ce17920746b8a8e182a044faf0621fa3dc842e14cbe93652d351d9fe8e1fde8a7682daa"; + sha512.doc = "ee69a90ccf9b83396b0d9fdd5f030e673d00b2c372334378ad450089b40b93de8b596ed5bc8a459253689316a7219080b88248c1f65a475980ec270a6c84c8ea"; + license = [ "gpl2Plus" ]; + }; + tlshell = { + revision = 66771; + shortdesc = "GUI frontend (tcl/tk-based) for tlmgr"; + sha512.run = "b514f1c41c464300eeff261dc46004963e9ae6133dee084c39d8d7354510f37c3ebd8481daa377e057b48cf805ca87e7f247abe103c3a6404294b4b308361b69"; + sha512.doc = "a4e686c57454adbbead87afc078720e294bd865dc5f77905e0f8e183efe83fcd2f0057336aac17ba6bc91eccf785bf1b3b47959359fc3ea49069bceae3d21d6f"; + hasRunfiles = true; + hasTlpkg = true; + scriptExts = [ "tcl" ]; + }; + tlshell.binfiles = [ "tlshell" ]; + to-be-determined = { + revision = 64882; + shortdesc = "Highlight text passages that need further work"; + stripPrefix = 0; + deps = [ + "soul" + "xcolor" + ]; + sha512.run = "a7c6b60844601f81bb659f57e212cfdc9e7cf72f24bfc662aed9dd26ebb9385187ebf44d82b59b637544b920c05dd5e3a698b69a0ef7ace4b57cd7531d240e3f"; + sha512.doc = "0df7f6b340c28d2ef9db73af4bbad364bbb238a42f37effbde69af30774de627d29b2f03e098482e6fe66d09bec49d7d4a4566ebb3125eb2f3423c1d5fdba066"; + sha512.source = "38d70708e3be579d46e086c2e1b227ac081da1d721fff64b51543269b9df11b7ebe67a8e95999bb3ca1b691b91a4c3e1a8d79bce2f367e6965e34a5577377608"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.3.0"; + }; + tocbibind = { + revision = 20085; + shortdesc = "Add bibliography/index/contents to Table of Contents"; + stripPrefix = 0; + sha512.run = "f373d6c98730e60d06790d1a219df26e60bbddd2aaffc3aefc5877ae6b2c10c1a08e21dfef82cc591e1c6f7c014e0843ae30be948b7eb55321dc94cfb7b16aa9"; + sha512.doc = "1521eaf8a15038a2a0b6136e444ac38d6033071b305f6de6db6a5f8ae34625a5b8bf654d7a97b5ebdfcf4efeae58c41a7c9c17005552314928e315295766c441"; + sha512.source = "fa8375bce4af25fec4743d0c0002f90dbad7240f7959ad843365b72502c8c2d2cc9047b21e01d68a6fc525fca132b3a4842481f808999cac40221af32ea7e487"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5k"; + }; + tocdata = { + revision = 69512; + shortdesc = "Adds names to chapters, sections, figures in the TOC and LOF"; + stripPrefix = 0; + sha512.run = "b1d8fc5f578eb9507e1271fb19d2e024b272b0c23fff4ca11177c46fc2ec69777adca4329960787bd52c8d9862010547ca8b4378ad0b8986c503576be2930cab"; + sha512.doc = "6fe648771c02287ccacf991b7b0e106e9e3917e882993c6203314f97cb20d8e0ce873246abf7fe11d107a22cef0fdc02a7bc89278a6d0a14d48cc6838f17158a"; + sha512.source = "c29fc710ccf0952570aa682af419d1fb2432a4825b9fc8fed5368f8004ff5355250df6deaa28d7168258914711f31b3f379fe7c9383255957092676bd36bad72"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.07"; + }; + tocloft = { + revision = 53364; + shortdesc = "Control table of contents, figures, etc"; + stripPrefix = 0; + sha512.run = "249b50b4dde3c9b14cfd3a7b00c441007643ad6638996b83a0274bf4126ca8a26f6cfff816c5efc9b6516953cfc29c18905138fe137877ae920e82376afeeab7"; + sha512.doc = "edd477e3c4b2a9f815c3e57a6b785c2237bc34435dd561d28b3e38bd8da5cc5d4d4de79a10dfbb55e920d69dab90d0a40efd3bcc44cad1c736a723b89f147af9"; + sha512.source = "a870218b7470962996f5bbab8c15f880d6aa863b8102dfccc67bbe3cdc3895785cc44624bd460d37a96da74d1ef28340535576aa481129e9ccda2e5ee1ee6256"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3j"; + }; + tocvsec2 = { + revision = 33146; + shortdesc = "Section numbering and table of contents control"; + stripPrefix = 0; + sha512.run = "685ff581b0cba155a763ba951b4f5b1e12a44741dc5245967cc2d2effad12127828e4d2f3adabb9fe3d126ffa1f76d43dc196b89faa39745ce85a7f96fb44017"; + sha512.doc = "9247adf45a6a8f18e03d7b93ea8de8decdd9f1ba15eed7ee28c356679a6f62bd8607b9c519448bae2234cec15b76a5155ad7efe99ceb9382022988a29c2ee85c"; + sha512.source = "c6af924f3d8e52028c7bfe7e27bab1420dec1fe6f3e948b09a131c65a37ec8e9baa594d725a4eca7b3dd10ed19ceb5f54f1ccae49706e9816c7e4e1d9f1212c0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + todo = { + revision = 17746; + shortdesc = "Make a to-do list for a document"; + stripPrefix = 0; + sha512.run = "e3cd06aa47c36344602a0dccfb48e43c0639cadcb91aa9e787d552c6d3ecca95da3b0f3af8d0f479caad41f657bbcc30016dfd3f80f42285fe8ab02e0a904601"; + sha512.doc = "c747b4cdcbe8533338a9120b06120b0daa68940ace4cf44d87882d5b5a5a42e2c062c667d2e3fbf8979e1385cd55dfd8747f4fcb044a4112f4b2a79588d0463e"; + sha512.source = "7f70973e13cba6c532d45af7f5c21264adfb75542a7a68e9bf23508955a553efee723edfe098c4a87015c463c99d4063a9bce6888e7bc9018999ab4721a524ce"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "2.142"; + }; + todonotes = { + revision = 69319; + shortdesc = "Marking things to do in a LaTeX document"; + stripPrefix = 0; + deps = [ + "pgf" + "tools" + "xcolor" + "xkeyval" + ]; + sha512.run = "6dbe5b58d44d900b7beceaf265fc0ab227e3f4a56a1f8c1ff4f186df0657a3fe0f674bd60411516e54d90627ec41ffa38d4bcda7f5dcc69632892ac2f0caf96b"; + sha512.doc = "e5a8937624df00f9aa487d43a449c7ff6181219c4dca0ee559b0a10c6fcdf83eec55f9afec7d43721bde0f60c0e8e3eeba55d85627be3af5d20fb9ea45592c30"; + sha512.source = "2ed0f6f85b777e49fb17df84ec97a7b4bb01000de19a578d28f5bdea038a13f360598f3e53b66d20a1584d483297e55df9b1be91ed016cadcc1e8eb9c00179ec"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.7"; + }; + tokcycle = { + revision = 60320; + shortdesc = "Build tools to process tokens from an input stream"; + stripPrefix = 0; + sha512.run = "fa7beb7d6dd1ee5a6caaa968d425143f946426e98a164d1f1b44288105a6c8f57d94931782616c3926493f0af9709c5836bece10aa7ed6c2f1623f8301ff9bae"; + sha512.doc = "dcae2b95cad3150dc8879061d8c546074116af04a970a7c2ad9a91292597f3c859927ebf56ffd58aecb995a9968fc8221b6250efddbdce80edce96fc9c906b48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.42"; + }; + tokenizer = { + revision = 15878; + shortdesc = "A tokenizer"; + stripPrefix = 0; + sha512.run = "5174ea1b9c6c02fb8245db5315ccc7b65239d1343f719ee23428bd530dfd70edf26822bde25d672603d268a63360ba31b4a9fdcddf426b82eef440cd7f449d8e"; + sha512.doc = "4e978a368cd7e97a1300addb739b457cbf4810ecb2d4e1161d931373d858573d8fe1688629cd7d23a44a4d5403e5d8d9dc92869be9809bddc9110c55879c940e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + tonevalue = { + revision = 60058; + shortdesc = "Tool for linguists and phoneticians to visualize tone value patterns"; + stripPrefix = 0; + sha512.run = "052216e492b58a5e8ad4cb3f346815924291f3d24c995d42f22f189e6601a7b4236d434684d5777ea10d50a3d77f033b02ab76ad1550c0ba1ec275a6d22bf4e4"; + sha512.doc = "b9bafeaf2a089f3537767a51923ecb6d7008009f4fe2fa74cff71f7d7358ab52afe4f39951efc04d29e2bca5cfab4ae70cf35a9f1e895377be4cef2ef0c523d0"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "1.0"; + }; + toolbox = { + revision = 32260; + shortdesc = "Tool macros"; + stripPrefix = 0; + sha512.run = "af5320de678474075998f9497be0b766e826b0105b344939a66c5c1377e7c345623e2de18b73cb43f93c8edc241fca7a99fff1ca4b6bd3dfba52bf2ff476f18f"; + sha512.doc = "ee800bb98c9577b12bf20a0b19ce27d9c6900f66e0920c922626599986b887e34513cca8474456aab7ae59aa5d5fae3c7c323ca4cc21372979ab3d545921ed34"; + sha512.source = "201c3153ceb48cc4f7a3b24babd95e78939f03a7d2f3992a73113d904c90e5c957135a0efab98cb2ed01f742c39cf84c4a12efb8bf9f9bb9a082d56f62c98255"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.1"; + }; + tools = { + revision = 68941; + shortdesc = "The LaTeX standard tools bundle"; + stripPrefix = 0; + sha512.run = "6da3f34edda1c3839737f6ce0db95a899af8c47fe9901a502dbc6a6c95ae9fbe317c7365d6cebe3a20bdce8af0e37b803480f8489de57ccc6daac8a758a5c9d9"; + sha512.doc = "614a64b6d5f25c4fd691d629f70f1fc0f614aa4ac1a1a5a6e06f6ab0edcc0a8e8cd14c2cce498aa75ef3320e493c7ef69cd6ac858505519e10b8414b9cbb13ca"; + sha512.source = "2bd6ea620d71ae1e5fab48f5b361560e290a2633668b03a36259228b0cf8f9eb5acecee705c66052dab306288c1defd46a366548f7aa66cf04e802bc40122caf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2023-11-01c"; + }; + topfloat = { + revision = 19084; + shortdesc = "Move floats to the top of the page"; + stripPrefix = 0; + sha512.run = "a4e4031292203a04a1df1dc5e6bd4f6b89c8806599d995707fa0dfc238bcb3dd1ecf185665db33a406302567607da5640f385f12cffb46f482993850b78155a0"; + sha512.doc = "6c37c3b9ad32a121eb03f23049e11fe52b7cf6d49353e94a18eb39aaed3c049bee86ef6c6984440c9700546f20023f7a71975591c1f3750d31e176e8ba4f4c47"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + topiclongtable = { + revision = 54758; + shortdesc = "Extend longtable with cells that merge hierarchically"; + stripPrefix = 0; + sha512.run = "3bd1bc743191a644cf9dbdd36890929003adfd8bc68372ff74882b3b37f2cbdfcd007222fbaadf4d73b5b1f919e1491edf8c25e9c69993be367d3816d06a6b12"; + sha512.doc = "c837a90b1c13f194d4bd41d1ef91e994c4027443169588622bab2613b57cc86c6a29b81178f257c2a6b36ea65c89e1b66791ed137c2b5c144deea8c7cb987a17"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3.2"; + }; + topletter = { + revision = 48182; + shortdesc = "Letter class for the Politecnico di Torino"; + stripPrefix = 0; + sha512.run = "1c583621d738ff203ef755c4ab6d4ad520fe25204c882b3b5b1dc719590cc4ae117502008f0b2ef67486f33127e6eab92a2177aed42a8e011c9309632ce1fda1"; + sha512.doc = "2fcaee9c15adec307e5cbbc4e71dadd2bfe2158f51d5bb842ea6faf1e10487f5881d171e29a48ac7c6c6ce52bae7bffee91772dd046311959167b11ddac8328c"; + sha512.source = "b22e020b8fc477da1316c9f36818d9508f45bd3259e03e2cb096aef984cf655b1171069135001301f9be631c7bfb99e63ed7dc95af968be0700c8027b6484f45"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "0.3.0"; + }; + toptesi = { + revision = 56276; + shortdesc = "Bundle for typesetting multilanguage theses"; + stripPrefix = 0; + sha512.run = "be7a920e195b9ffd3fcfc0bbe1647d1b47fb98743ec69ea9b23783f052d9c10c26acdea42d4d2c7501bd57d3853f53642a5328a1c6954294a2cd38d8aeeaaac2"; + sha512.doc = "7dd70306861e8528cd4c645893a3cb81c20a6f82db2237e595573226c77f8df71ecfa57909b9675e19e441301fecf38f1b1c4bb7b4ed2705a4e132d4bf19b436"; + sha512.source = "f127b3ece0428207e503bf2f9258da2c4128b524069c45c4d7b188ac06ef52527d04020a8f002c72a878a9cf5caa358323e5db9e0b65c46d6fafadc657ec014f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.4.06"; + }; + totalcount = { + revision = 67201; + shortdesc = "Commands for typesetting total values of counters"; + stripPrefix = 0; + sha512.run = "71523dddd67c44f4ef53c14833d4ea3f70603cc76f0495e5533e68eec99b1006796796b39deb40f6b36dd9ed03102ad859a7032bc6dd65137fd19c23c4027a07"; + sha512.doc = "2fb61446efe5fb3ca8c80099d19ecb7a281ea2ebfa756778e4bba8060e9331fd1b712b7b77c66ddbd3a5b60451d6007130803b6138f1eba466a5f210c1d3322d"; + sha512.source = "be9fc65fdcc7999279b5e4c5b495fd7fbab4606fe9f6dc96a5683ef0af41ac8f4fd8c3f5d2470224304a1bc974a6a9b40a7c017049507a7b6ad8db15d2dd2724"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + totcount = { + revision = 21178; + shortdesc = "Find the last value of a counter"; + stripPrefix = 0; + sha512.run = "03ece717c7db3820cf41192e3bad2711e159fcb8a5a5a185e1c55335364917a515d9dd691cf1890421a8c62c9e55bdc49cb13718f7d98d9df34a2470cfff0daf"; + sha512.doc = "46ef8cd2317108d0896b32ba9104c69fb34a6d13d1e123d6b8f1648bfdfffa6bb21f17207433dd763451b1f6c104ae3532e7aac43ef2ba73281842f0a3bcd05e"; + sha512.source = "1820b0b44434650c072a67a4c6144beb7a34129415a4ae298b9c97efd7e81d3396ddb6e4a03081a19962001c8c01a4cdda563c20ba19bda1411e4832d5e7fd14"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + totpages = { + revision = 15878; + shortdesc = "Count pages in a document, and report last page number"; + stripPrefix = 0; + sha512.run = "8dbfcf7728690d6c2a20f661daf62e80c00d3f08fd00aee7a07cbddd31f6adf8f38e32623b2963748367ea08dd3c95919ab576b22d70214a2f5f4f07c40374f1"; + sha512.doc = "58cb9d30644402a68462e0b00b6175ec4a002135eae0bb16ad2cb5b919d1dd6b93583074a0723e1c55946e7d94dab506b8527a67d7d7b39be20608207bae5626"; + sha512.source = "2ac7e8e8f7b79721fdbc6cfcf9d5d81d80b64f60a535435ec13335e1b6059c01001003ab87d9ab8fff4323575a0fbaf6e8a3569670eeb5411be495d9fd712a1a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.00"; + }; + tpic2pdftex = { + revision = 52851; + shortdesc = "Use tpic commands in pdfTeX"; + sha512.run = "fa8689bd257b6336badb8e5a742d5c5f12d9088b33b43bdc41474feda62358c754db05735fa471baa307907bcd61f68e8d061e66c400198d6a1dc165f39d2226"; + sha512.doc = "f24f8508279ded0689bb9dda8c653cfbd903c46782744fcb8d004f50a771ca74b86549c86abc765a408f2be67334048390e407be9446faa476a02ce9c27d5547"; + hasManpages = true; + license = [ "gpl1Only" ]; + }; + tpic2pdftex.binfiles = [ "tpic2pdftex" ]; + tpslifonts = { + revision = 42428; + shortdesc = "A LaTeX package for configuring presentation fonts"; + stripPrefix = 0; + sha512.run = "0394101636f394f04c38b6677f921136f74e3c8abccff199d4c972ede085c3915e2fe9bbc5b239044dd8f24b405cfc34b5c736a7cd03b749b6aeaf7feb15f5e4"; + sha512.doc = "e5be9024a02669212044844ad0e99b72faae15c62fb0c9065c8a5e3beb852968cf4cd4744d01890534df5a540bd1066749d999e919afd7d791b4e9ca7dd3c26c"; + sha512.source = "d55ebdf58c24f9d68f7a69fab79b8486c46d4d23714d9e1d2365320457ca60275449492482d5d28c4c8a2c884074bbe74874f509c60d66f49b6deb2a06925c9d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.6"; + }; + tqft = { + revision = 44455; + shortdesc = "Drawing TQFT diagrams with TikZ/PGF"; + stripPrefix = 0; + sha512.run = "0bd44773d17cdaac4e3490dbca1fe038bb18e50d057d6adee53b32d6127ec844e3ae9b8f0f671969c8a00e0df01eca9fd93f27e85fc1ebcf03966e6c82b53f8f"; + sha512.doc = "0b6c66aefec59955214299a99eaf4949900fb294e7f1eb904efdfc0de3aa85c5fa38961073ba3f7a3c60f26688c28e6f1bb5ea2c32751062fb3231edc4607f0f"; + sha512.source = "afea6aaf0250f9c9307479d587e844b3f391e387a4d2b6bf83b1eb2e63459d132cf0da38160bbcbeba0eaf1fc8401c9c21dec9dbc8a5e54aebeb1bd25a357445"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + tracklang = { + revision = 65263; + shortdesc = "Language and dialect tracker"; + stripPrefix = 0; + sha512.run = "a8cb03ea2fd0063ad3e0784c1fb6085e623f08d2a8a8e1e5907a13b0d08c2a99c7e1f6d0e357dabdd4e655122b572dca2eee5855bb5fe9ca500715a4b8b4790f"; + sha512.doc = "42dd6cef4ebe9212277ed9cebdcf9875a73981ff88ebd19a5bb43296605087cceeb4095f5de1eef53b70f8edeea5268ce327d16545c55411c20880673f7fd651"; + sha512.source = "1ef4767d6a2a6f221d64544dfe3bc7c6db411b1b525dd887279d8454e7425122d1b0b7ee7b7ee65f2d006a12b76eb1b9f5fb23263da16937894209cb864ecb3e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6.1"; + }; + trajan = { + revision = 15878; + shortdesc = "Fonts from the Trajan column in Rome"; + stripPrefix = 0; + fontMaps = [ "MixedMap trajan.map" ]; + sha512.run = "66fe869b94f489a3240078fa28da32fab71767d93befefca62fda3a39ae53ab975b13b7ddf84e490658e915c100f16225ea0ed8e7787b099bf4cb067a9fd4e09"; + sha512.doc = "c6b6137d1952660b99bf077eae0ddc0f40b4ea9ff6308e4f461fd0e34c7b4b35b4ad79f3e42e4d0077c9d2947db642d0add032f2413d580748ba786a8abbf029"; + sha512.source = "36b85f870cd9b006f89df594193877a2188635be840636ae9300f511e5ab2a1ea60eac7f927ccb3e9832ab01972bf585460b47cf7ef30f36a6049ab0ce0fd95b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + tram = { + revision = 29803; + shortdesc = "Typeset tram boxes in LaTeX"; + stripPrefix = 0; + sha512.run = "4592a288c08f5bf6b41fdffee8129e08fec7397edb2b351617fe79571d2905be61cb776f87a5b152c4b62acefdf21ee2f0b293f210ce52f449d3b9e41833b2d5"; + sha512.doc = "bfc46f516c2f81530ed7e648ef6774443502b580cf580b5fd5ea9f7be0311b33fb14156aca3f36bb4d74cc165dd33d0b8ef3ebbab5624f38239c281c7d7bda09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + tramlines = { + revision = 65692; + shortdesc = "A package for creating tramlines (lines above and below a title used by lawyers in the UK)"; + stripPrefix = 0; + sha512.run = "d30a7a7ee30f933163f5462ce00b63e82bbe65b2d08b2b530004c22f7fdd884c99d44423aa98ee4176f0d7cab159799984a399ce26315d0af6522babf7b3f646"; + sha512.doc = "209f4af2dbc0993c3f3b454c2d030c2f69e43403d50721a2c1e7159c1ed1cd95a01c76bd1821d1f281c4b1fd516b3084799d5877acb500453008c3e7e1b15b5b"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-30" + ]; + version = "1.1.0"; + }; + translation-array-fr = { + revision = 24344; + shortdesc = "French translation of the documentation of array"; + stripPrefix = 0; + sha512.run = "d32d6b397916bf631d65171f4f7de4bdb6049eec5414d1a9adbbe88d147ce2e4930a4f17b70c5c12b7ef9c3300d9eb099d63fb14ccd5478c6bfcd0557074b343"; + sha512.doc = "7d9b2e43f4fde3e6a3b7436a55b2095fbc4ffa31223019c1cbfdf3d623c48be406858cdb96c8693e10fd0023050ddfbb09b463a9a3804879945ac0d6aa616be4"; + license = [ "lppl13c" ]; + }; + translation-arsclassica-de = { + revision = 23803; + shortdesc = "German version of arsclassica"; + stripPrefix = 0; + sha512.run = "76ced8c2c93e35d6bee10f34a7de5709b8027f9d498f8fcd21ba776850c65e1e20eaf20528414b7d9da1891a2db7132b6e3b703c4f8d91f4ff0c69eb9159c996"; + sha512.doc = "58773adb7493e6ef31d8fd3854a51cd37921dd331f56f1d9eab5283c121fa8c3316ffc41242356a87af04bb6da68761ea15829e5e8555d2e6cdbb68833c8d313"; + license = [ "lppl13c" ]; + }; + translation-biblatex-de = { + revision = 59382; + shortdesc = "German translation of the User Guide for BibLaTeX"; + stripPrefix = 0; + sha512.run = "6256a868d6f6ea53107245574d3d7fe3f1b646cfa67dd456f88abbab980b4f9060c752faa14f185957762b76c159aa8d52b3ab8908c53c5938e415fa8e4d5f7d"; + sha512.doc = "e7e634d9d581f781f33ebcad17f4f496738d6364725dae75d7dae6d357bb7deb08a5e01de0e1ac6aa32cdc09ebefbf0190d9f6f11b286a20ce0fce23c0516fef"; + license = [ "lppl13c" ]; + version = "3.15b"; + }; + translation-chemsym-de = { + revision = 23804; + shortdesc = "German version of chemsym"; + stripPrefix = 0; + sha512.run = "e23821fc1bbdee758e534bb52c4e0f348d6be3396ca2d8e3c11c9425132fc9c28f2bf6c98cb1beee9b23716cc1a75704561d9d8f16d2f4e94851fc2f88e0895a"; + sha512.doc = "efe9f711c42925fd035339c25284e09ca7a99c246bf70ef2c15c4f1149accf5bab09e396b94d6d59d4e8c303bfdb3f40570912713dcbd33e7ae360a6b21c36de"; + license = [ "lppl13c" ]; + }; + translation-dcolumn-fr = { + revision = 24345; + shortdesc = "French translation of the documentation of dcolumn"; + stripPrefix = 0; + sha512.run = "8d2288707f13896dbb578b538b535efffc89991d56586f27a35b284b5be7c553df97a72ac163a625238e281bfe97bb79fa716855dc8e93f25f0a8af69674eb45"; + sha512.doc = "95d1633884f7237bf2a7abf8a43127ac1954fb5d0e308d676a7f4c3255d709496a382f01a8af6c28f793bcd1863e98f8ed1441e7cc288d3b8de3176631cdca1d"; + license = [ "lppl13c" ]; + }; + translation-ecv-de = { + revision = 24754; + shortdesc = "Ecv documentation, in German"; + stripPrefix = 0; + sha512.run = "33998fcadaf7b42874968348ef4e3232652ea401410eea6a8011db146a4989afb102a2bba247df53b875bc02b1ea8f21ec5c68783ae43f36a3f175e77dde6453"; + sha512.doc = "a86784aaeaa786251f35ddf273050e9c981a68d060ba1a2f186379e04f89edc696090b44b402996c4f2422d1cbfd7fd68136c29fc7c74a2fd32d6d230eb2e489"; + license = [ "lppl13c" ]; + }; + translation-enumitem-de = { + revision = 24196; + shortdesc = "Enumitem documentation, in German"; + stripPrefix = 0; + sha512.run = "7018a95d7b68b6b736472d6f43d356d25d2a73df4a5dbc080485f3b4e747d122889788b3d1a75ec4c479a84a4453128104f01b2e1788e9dc50d09bda0eb53cfe"; + sha512.doc = "bee33ecf7a3045c382242f4b6ec9599f32fb254053a6417ceb514f3aad64b2bf51c50f660b562a2a3f0207f7bdc4676527627f432b1556362e3a9f5e9eda8694"; + license = [ "lppl13c" ]; + }; + translation-europecv-de = { + revision = 23840; + shortdesc = "German version of europecv"; + stripPrefix = 0; + sha512.run = "6102a92b45fb7c19d2190bf4289e8b6b24ded67d0255ce2f483627bbdbee00c42c044be03bc10c9d0e23c2b911e781d21a7e6562e80988620a6da60562d98bf4"; + sha512.doc = "f50e761fc7925f0cf404788ad2ad70586536e1676bc7a026be5a81136a1323f011a281160a344c455346553e90cb632133668c2483200a05ecf961e46e50bfb3"; + license = [ "lppl13c" ]; + }; + translation-filecontents-de = { + revision = 24010; + shortdesc = "German version of filecontents"; + stripPrefix = 0; + sha512.run = "78dd9ee41d9b06438e01ec12f716929c4cf0fbf6ff209f45fadce9fad4bac0d1b31732b3f66896bf7526dac7532504e0913dbb69c3c7e13830e81297b2761935"; + sha512.doc = "17ed1c39c549b43c31c13dfd6ffbd968ecbdd3e64b00cbc66b0a8914726f4baa7faf98edf30c23ed81850cee98a732bbdd70ef667973163ccee0b35c160fdc64"; + license = [ "lppl13c" ]; + }; + translation-moreverb-de = { + revision = 23957; + shortdesc = "German version of moreverb"; + stripPrefix = 0; + sha512.run = "6b11a1b522c728722d4d5d5b38dd453ec017dc053d360180b943778923ca9a23b3ebb92516c1a6880e507f5e8b6d8d87878c92762637acc5ac93f42ad790446e"; + sha512.doc = "955070d4e92e38712a5df837fd0df716d1a597780a4b06046d5aac5164efc0fec1121c51ea09c3ef1a090d51732f57308f4db386440118548e2167f3cafe16ce"; + license = [ "lppl13c" ]; + }; + translation-natbib-fr = { + revision = 25105; + shortdesc = "French translation of the documentation of natbib"; + stripPrefix = 0; + sha512.run = "ff34cb7cece157b933117ba0e9aadb0e9caa759a406fabf7b0ebb89e5b03ee6db7aa493551816e9061ff91a460e46a58f1402b086d37c48863b4e093d19326a8"; + sha512.doc = "971570414f9705cc4026a21a557b2f1dfe8fc010feca4f1ada946d11aa30169746c2017fb3882e65e68520539974eaf2361ebab7bcd292eed177fa7f6eb7337c"; + license = [ "lppl13c" ]; + }; + translation-tabbing-fr = { + revision = 24228; + shortdesc = "French translation of the documentation of Tabbing"; + stripPrefix = 0; + sha512.run = "76f1c6318cd964b94d5a1d836b1a40fc58de49566cdc30b1ea60fc29fbcc8c6b01a477f4739a5fd9bb24998325dbf42817ad016fff27207e710bfc4b51b29985"; + sha512.doc = "ae2f1aa60162512287f15c770a465c2e39abe1fa5d1223d96c524dc81bf065d62f307893d22dfc06fc50da8d63d817ed60c8f07fd4fede984b6febe9c8b7b710"; + license = [ "lppl1" ]; + }; + translations = { + revision = 61896; + shortdesc = "Internationalisation of LaTeX2e packages"; + stripPrefix = 0; + sha512.run = "82d2a821c42bda66658f8557d85f2c52bee6324c88cf44e5440cac4de5bf7e938a3e37f7fe2371069a923c1f3fb794f8860274765054f902eaba560ea195297f"; + sha512.doc = "ab72edcca1d3407eaef679acd3f3d2a49f559e5ca6d9d1ad7221dd76152560be307722155cd4da54215e3b7f561f39e08ae737c70ff2e7fea1ddce2561b506fb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.12"; + }; + translator = { + revision = 59412; + shortdesc = "Easy translation of strings in LaTeX"; + stripPrefix = 0; + sha512.run = "5700b0b8a95b244c93f17c5e1bfc74d4defec842892eec358b308dc55f45ffd5bef050a1ed938c9100cad771ce5ccd53bfcc917083a9ba23a60a3b339d241f2f"; + sha512.doc = "abbe08cb16a39395b53d01f85172a11e339cd18f2c7f9dde8ab1d0cf353649c181f442fcb94c9add913b2b807ae9f6ba1ac54e9a6fed147cba1af335b6b73d8d"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "1.12d"; + }; + transparent = { + revision = 64852; + shortdesc = "Using a color stack for transparency with pdfTeX"; + stripPrefix = 0; + sha512.run = "58ffa6219576a994955be228a412835c8da328c351ca0cc5dfa9d3a9fdfe8b38324890ecde9ec8ed9ccc49231169786d704ef65cdd3dfd860f5aa761a18c57d9"; + sha512.doc = "73942fa07c9bcc6e8f08b91837f96a3c781f2f60443078b67232092b98e0bfaab07e57bd43e54345df7fbb9ea20bba8bbbc10c9dc58d5cf2d0b6f6bed469d894"; + sha512.source = "b37938a27dce42366234f7ec2ad1287e4864f53426584ae72dfd801055a06dfd15cd7abffcc0908e22971b01eafe11521c01eaa36a9d0f15fa8b1e61d3d250f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + transparent-io = { + revision = 64113; + shortdesc = "Show for approval the filenames used in \input, \openin, or \openout"; + stripPrefix = 0; + sha512.run = "69d27356f57d5b610fc9e6e839f6df111f6b98b8bf446327ecfba473dea6bc997cb6802ca382b3438d44de85fd5f50f82bd4e5508bfa43d08223463b5436950c"; + sha512.doc = "2e54e51744c482f98c1b35588cc934ba18e3358fc2be043459d7e16f8c85ee6aae7acf4b6c3b329cdfddcf1b3126000c6559d41d5b2c4e88d5018844717cb8eb"; + license = [ "gpl3Only" ]; + }; + tree-dvips = { + revision = 21751; + shortdesc = "Trees and other linguists' macros"; + stripPrefix = 0; + sha512.run = "6153417c5d2677a56adf031c5f2f27e4c2bf204c0acef1cc5cd49355370aa336814bad7d2be00e95d22bcf73b9b69105a255d15f29ed650511c0eccc3c9bda07"; + sha512.doc = "8c507ec7719b92f2cf82527c7799b073ff2679cf820528b489eb7d8c83d28d098033760cf092bceb9ee7e28fec15eb580122c080b982dbb12e0e65176121e84c"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = ".91"; + }; + treetex = { + revision = 28176; + shortdesc = "Draw trees"; + stripPrefix = 0; + sha512.run = "49202a38697bd9bd3bc6fcbf30d28047b8ddc4d737bfa68cfdb83197b484352997a33f55e195211eff1d548f95e2072f07ed18f1d7c6772a03c66a13051d1709"; + sha512.doc = "fb9e09bc2f6e45b854824c9c757733c2c17b4d48edc955ea48bea3ab3fb5dd914eb6427c8ae4f74ebc62b4715bada84c8f3fca0ee7d01f8d3c2526339a844681"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + trfsigns = { + revision = 15878; + shortdesc = "Typeset transform signs"; + stripPrefix = 0; + sha512.run = "3607b6371c2dbbd93524f0811dbf14cd93cb2556fc217899ef3a273c27158771f743bafff0fc90a582d65da431efd7ccc1f07bf92a6600a7bc301b5b6a308325"; + sha512.doc = "9bac4f4deafd62a8b113107ce47bb5ea3afe05078a3c5083b1ed790ed690bc3d73066e0abadc5cb1a3d45246f759941d6e2389105632bb6592c32a08e7b7671b"; + sha512.source = "71aaa336a9f66af6f682cadc72b2ae100c606be7d95d76c2631dbb03ff617718c1c322288c769bb1b9b19116a29baa208fa085e2868e67ce3f7a5552d823e6e0"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.01"; + }; + trigonometry = { + revision = 43006; + shortdesc = "Demonstration code for cos and sin in TeX macros"; + stripPrefix = 0; + sha512.run = "366a5e96499bd96d2eee38b78305d9fd7368d0b70f91acecd5a5337675002808a5695a525d011a1ab7b31ff34cc14c469970a3fe55c694f003d0ba7002795297"; + sha512.doc = "a9bd77bda2cca604a69ca1b60deeb8da3128c625b87d64ccf39aaae853a645e736b5350d3d575302ec2a35e9736e4133cd4ffd223b9bff6191b6fed9549a8092"; + hasRunfiles = true; + license = [ "knuth" ]; + }; + trimspaces = { + revision = 15878; + shortdesc = "Trim spaces around an argument or within a macro"; + stripPrefix = 0; + sha512.run = "09bfe50d1b14502311aea7a20df80e70c1907b1c8443aba9453aa0a3eb76cbd34728734b81df63bd5895a4a5a55ddfe6d0feedf7d5d28d6b5922a374bc550c9e"; + sha512.doc = "8e26064de0c14d6caa1d6cf625cbd2d598102056136dfa20d0a7ffb178c26829db0206d87893937b63f83171744a29bea3567e16e2a7a0d454734a0b72837277"; + sha512.source = "a34429fb9b8514d25ac523f0e3bfdc880b84951ff228ede3016e2d29c001b7f8058755870fc3c63e6041ef4768290177dabc6d520157082fb077497017065b65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + trivfloat = { + revision = 15878; + shortdesc = "Quick float definitions in LaTeX"; + stripPrefix = 0; + sha512.run = "25e07373c53a6d4c92a5f2f19fa0d70c86202435863b8b3cd036f2d12f74a477a33cca6508794f67256a877117bea821a11b9bff235e1a894c90b71810bbcca4"; + sha512.doc = "eb9fce19c495eedd728e87bf47f5d925a685a8b9e81e8de0e6c317f74af6c82352f403486f5a904849ed418722d830ae294a89eaa57bbff59eee8a03cf9b8af8"; + sha512.source = "9537944503c1606151207e75dd7a2bad64b34f82bb23d83e0eb93292ea9ad9edd0bd72a126de588125b6b425669f657506ca602796b6e2dd2997052b70f60dc5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3b"; + }; + trivialpursuit = { + revision = 68971; + shortdesc = "Insert Trivial Pursuit boarding game"; + stripPrefix = 0; + sha512.run = "62cc07c80aab3b4c35bbc5ec96d97204241b0e83248147b2875382657ccfe035567455bf8c689798b4c0dfe6bb8688da2ef9d4a89388521817dd09454867202d"; + sha512.doc = "59474350e6626440d5a5e4f5782135182c6c5e497a3fa6436264a6774ecf498f719b7469a69539766c5e0b10a13ad659e00bc5fec854d0e961032ea7ed13af71"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + trsym = { + revision = 18732; + shortdesc = "Symbols for transformations"; + stripPrefix = 0; + sha512.run = "e571d1c0c042e2fe75b992c6e0e9e07b04f0368f1e74a51ba91c34a642be148fb817027931ec35831672970725377038b5cc80d34bdb716d936f4aa59075d83a"; + sha512.doc = "d6cd64c1c4bbc927f4154c2281ef4c13ab145b750d92561235364a35082e497afc5d8aa5806452757b499b827305a0a183723deb38272ba43bcc38eedc367731"; + sha512.source = "bd9c99b4c5ac266696ab4c3557028d1776a1852000db2e8c1b5a4c2f78e58f25df379a71794faf49e2c0d2ca14116796d8f6d617f4bcbaed7f05a75ec06fd5a5"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.0"; + }; + truncate = { + revision = 18921; + shortdesc = "Truncate text to a specified width"; + stripPrefix = 0; + sha512.run = "b676d65803577b4bce5f6240a0d05a306199f24c2b14402954f4430f07fed9a8af574c4cf9cdc233824bb1a285eee0c531aa40ae31c782a43afd678d6e44f27a"; + sha512.doc = "78e9a96fc2e635237cae9ab4d7ac30cfee8582dde13331800ac9079d1e0726c597accb598b5e679b6643d27b2a53fb367e740b76d59e9a5d27226a4c829e8518"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "3.6"; + }; + truthtable = { + revision = 68300; + shortdesc = "Automatically generate truth tables for given variables and statements"; + stripPrefix = 0; + sha512.run = "1f8ddc2aa2c8672c876794eae7266f8a4a02382ed61eb00af972a2adc732fdcba89a7a7579f07d755eb4ab742018240ea69fa214ff0393b53b9c77ba0179b0bc"; + sha512.doc = "462a23fecb4c1f4a793200aa45d42bd325fad9abf9ea6481fd2c9d3f3993de657cbb7651c7ac1f4aca6d97626c751bc6d66285b8b3e9c06bdd216fbb5dfb9033"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + tsemlines = { + revision = 23440; + shortdesc = "Support for the ancient \emline macro"; + stripPrefix = 0; + sha512.run = "d4b6a929a403ed7fea409aa618e7ca021c2c7138a6b11c980430ba18f952ffba44df951dbc7b7f3a5ffcdace3b5f3a455eedc2a50b6e0e003ae3e17e8e7f9969"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + tsvtemplate = { + revision = 65333; + shortdesc = "Apply a template to a tsv file"; + stripPrefix = 0; + sha512.run = "36910e6a376f074b70f5fd35c8f9bf0ba1ea1f377d7b850506f8ade19e8442b8d9af3216485dd2ebac29534a5d5c59b447679a5e1a1e12c59f3661774d30b244"; + sha512.doc = "48a91c16fd0f819ae201027409e3482edb070762f446d271eabc7822938789d8eaf5255605f66c99c5a0ac303d1d765831ca980a3ed318064b8553d447e1c3da"; + hasRunfiles = true; + license = [ "free" ]; + version = "2022-1.0"; + }; + ttfutils = { + revision = 66186; + shortdesc = "convert TrueType to TFM and PK fonts"; + sha512.run = "2e4eba2acd3b97297d2629ad93fdac4587afdfff30584ff77f69574efde4172ce60b904100c70d168016e8cb5c6407f4b4ef5ed7b3c83f942b7477af2f101be7"; + sha512.doc = "bac6812f37f1d53184a4944e91b06c4ecd6a03d96d78956781c4b01c38ec3b65b74032704d98a4951f8dd5ad84ff54d82891c12e7db99ac58e687e535758decc"; + hasManpages = true; + hasRunfiles = true; + }; + ttfutils.binfiles = [ + "ttf2afm" + "ttf2pk" + "ttf2tfm" + "ttfdump" ]; - sha512.run = "c5545488723a4408a771c083d191942fc7b10e85e6c2df65e6ae0839dcaa7202459ba8774497562b7e55f432fdcca904de132ac7d89fbf3d935aa238ff63fede"; - sha512.doc = "a37a971140b1ac12724f2710e6f017690ef151aed9a88ed00bd00cd80ca6ca8524b0347b34bf83cf8e2e34fb000e4ac53c1a8a88684a0e3792e4cded362513ae"; - hasRunfiles = true; - license = [ "ofl" "publicDomain" "free" ]; - version = "1.1"; -}; -ytableau = { - revision = 59580; - shortdesc = "Many-featured Young tableaux and Young diagrams"; - stripPrefix = 0; - sha512.run = "23bf33f11e295f5f36149bad2b801ecfee57b386dd952ea93b16e79f85c54e1edff741bb7d6dc7faa769062ff81277cf04ff06cb2fb92e9a7542b4dc93eebb0b"; - sha512.doc = "b98b0da2e5e0eb964ede56a27067b7ba862b63dd1b0dc6771e432abb16e924fda5630d067c6bbb05fdf6a37aba07c61396d47612adcfcccd5886ff3fdd47b7a4"; - sha512.source = "264f983cb28ddd4f2089b4d170603172cce27b463999e4806173106e384bd4c3be16ada6f0c2e3c176dc450c53c2e50e43f993c893880ccf5c9454b84a062ea8"; - hasRunfiles = true; - license = [ "lppl12" ]; - version = "1.4"; -}; -zapfchan = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map uzc.map" + tucv = { + revision = 20680; + shortdesc = "Support for typesetting a CV or resumee"; + stripPrefix = 0; + sha512.run = "957485431ecbdd31f180b36e7519c4bee8379f477b765ff5cebe57ffa3c95caa5556ed057943eb052d61e720074dc78035fe05b0023115caceb05bd2c3757183"; + sha512.doc = "750f739c7cc244ce52b4838009666c9b6196cee234e9bbf0028e3316c75a435b5038269e93f42d99116b9db3d93dc4710c03705b924d62f09a217f2acfe36303"; + sha512.source = "f754ab6d751eb5df0477802ab0a4d514aa0825e824531e76904ab474ed5423cbcaf773e37ce80e94c32236bee061f92c0782749c9196c3cc7fcb9249a57ea32a"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + tuda-ci = { + revision = 69351; + shortdesc = "LaTeX templates of Technische Universitat Darmstadt"; + stripPrefix = 0; + sha512.run = "d5a2887147c21caa4c3fa2d8f421a7e759998faa36ab2933b40f7ff43768677f982f5b730c593245c55d09dabdff7bfbc51e5765af897821c525c5510d513bba"; + sha512.doc = "c4a61e1ed259abea0d77fff546ba79eec85d0b5ec63422c8181ba5cae806b4180103361d3ed0eec3035279a13fe6e45166f6832a5de5a801e3b1564fba27be92"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.36"; + }; + tudscr = { + revision = 64085; + shortdesc = "Corporate Design of Technische Universitat Dresden"; + stripPrefix = 0; + deps = [ + "cbfonts" + "environ" + "etoolbox" + "geometry" + "graphics" + "greek-inputenc" + "iwona" + "koma-script" + "mathastext" + "mweights" + "oberdiek" + "opensans" + "trimspaces" + "xcolor" + "xpatch" + ]; + sha512.run = "4e17b12a82a18bb1f4babf123f1e84681c6f9524f2113725f14ad85042dcd5b1fb2aeaa45f709c1797512b8e0f35cd0ff743b60901e75676ec321f8bc682e793"; + sha512.doc = "3335c87afe969963718137a9f854e0a4935c34bd850471673a3914fb9666e8f3195962d3474df35b876741b37c231851d47b440d49c35e42533b3717be1f442e"; + sha512.source = "d317e3fc0624ec762293c972c9feaaf56186faf0962137f43f36b974ef223b094919cd84b9f5183e89e0ea6b922e4ae22b489bc619af466dac41c98fe0b651e5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.06o"; + }; + tufte-latex = { + revision = 37649; + shortdesc = "Document classes inspired by the work of Edward Tufte"; + stripPrefix = 0; + deps = [ + "changepage" + "ifmtarg" + "paralist" + "placeins" + "sauerj" + "xifthen" + ]; + sha512.run = "6dd01a5a6faf37439ca9aab23534f99050b84bfac16df48545417ee03e72700344c25b2de3262e8e28406da705d50296473a815fa14b701c609b3715f01405d1"; + sha512.doc = "11ac57e79a05db644235b6db851473c75d1538a1261d7022a63d9ab0cc54486cc13b7cc95c44d16912952e46bc9264c1bfb831a728b51a03495d01f1963410d3"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "3.5.2"; + }; + tugboat = { + revision = 68694; + shortdesc = "LaTeX macros for TUGboat articles"; + stripPrefix = 0; + sha512.run = "23c3ba2e45560d22a55c4eea733fbfc55466503631eb02c61527f0a73a595790ffe8c8143df2327af61ad8c23848309065fa69abcf181f584f64d03f437228de"; + sha512.doc = "d0482d7fe4ea30d21f43a9266c8ab4b85da66fbfabcf405ba8aee229c0081b623f1cb5862fd7e057d4080439275aa08212079bfed06f992553c4b0dec3a96798"; + sha512.source = "fec6b9556d9a945a3e9ccf73d0d043d099883d4c5c01c0d4a06e50b7900414c37fc62ec586e43526ee4c9e711c558b1601dc46248f2a97180bb75ebd79decbd1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.31"; + }; + tugboat-plain = { + revision = 68695; + shortdesc = "Plain TeX macros for TUGboat"; + stripPrefix = 0; + sha512.run = "e30aecd365721f9c986b70eedd022bde17ffcf348452d650144792bed0854f18547d837d0b3731cd0810d5f6f32f10778b1adf3b29eb07a8ed4d0765dd88cf61"; + sha512.doc = "c49683e2cef04b15c39dd275f950d602be8ecbc2e6fd644634a60100257f2367a623d06086558a69c469fb3597fd32e0a2ccee4ce9e90791daa8f8e67e1122f3"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.29"; + }; + tui = { + revision = 27253; + shortdesc = "Thesis style for the University of the Andes, Colombia"; + stripPrefix = 0; + sha512.run = "59e8af51c39984a42247435ad893c3b8e37eb9dc53634e0a5f30733ee0c973690b66d805079a0f5cf61762abe7fceb1f2dc91691df9be26f72a1a8edd2524ba3"; + sha512.doc = "b48d9811ac6414d96a7b5059b33c174464f262c721159552e48e6f5bcf5b969ae91bbac61aff6077304907d3d2bd8eb73774628458a7e740ea49fe433b9bbbc2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.9"; + }; + turabian = { + revision = 36298; + shortdesc = "Create Turabian-formatted material using LaTeX"; + stripPrefix = 0; + sha512.run = "fe4ec8291e8b1dfc6130bdc862384b8e7c6ea2d4db6baaf92e0b7b053ab8ed328ec452e0c1efc4da2eecc3f8b6c86e77cfd2100ea66e4f59276fb64683d55a92"; + sha512.doc = "3b4900c67c65ee1b20dedb2ffbc844ff22dc519dde0121b375dd13bcd80a0f2fdf5cef8c4e43a395ebe8fb4c82d463f18ca30ec65fe2be398c181af78ec0a0f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.0"; + }; + turabian-formatting = { + revision = 58561; + shortdesc = "Formatting based on Turabian's Manual"; + stripPrefix = 0; + sha512.run = "ebef1733d41cae66456e6a50c47ae0c66a7d7254a59e57f6af62e21cab73ae7a68092baa4706eb1f1e93ab152e0ab22550f0b4ce8cf9ac36eb3740530afe8499"; + sha512.doc = "6cac53c6fe5dd36702ec07e22a00871932dd4b2e421649d33e33f50e8b8b8cc57e42c752ff6e4e2a53610d28f42ddc68b0b6c1cddb0a7a045f3a547c04e77735"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + turkmen = { + revision = 17748; + shortdesc = "Babel support for Turkmen"; + stripPrefix = 0; + sha512.run = "437ff775642326f25f260280ca8d846e546f0f4b3c3082eb1ebaadcfc6ca5196967f82a00237367754b3ff307f983a828dba5c8117539d65634379567062a377"; + sha512.doc = "39014c9049322a1966951a242152b8774b2bc914bd620b6eba8c97e8ec457a1ed3547f2c211b3bba333cab21bac98882dbc9a1e9028443e7365780cf4d78b577"; + sha512.source = "1d69e90b8aa74db44b7b89c8a3346ffbfca2b8514205a04610b5049e50e61b19ef063d9b3e9c99bf4c141d52bb03d600ad5ce1a13494b06fb7d13d12f47b860a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + turnstile = { + revision = 64967; + shortdesc = "Typeset the (logic) turnstile notation"; + stripPrefix = 0; + sha512.run = "164b6b8f053b2daf93e8253df850c4aad793521848a93053f6b3879db5badc0b88b5f8f44487e5525c60e7ba7deadce53b2cecb00b7330b22b0815e01cb68338"; + sha512.doc = "de25995e56ac3fd556aa3c50e8b041b201e2f881d38ec2183b55c5799bc0f110e12e2daf387dc9a6d72a9a85377c6e4c1610f6b54811abe617e8698a40e659c0"; + sha512.source = "3364a27e7d174249212280536479d2ee32ee37b22f7c942858b023d9e7069c82ba80120c7d9eaafb90312dc313fb783073f08a2dd212d5ba380a386081abbc81"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + turnthepage = { + revision = 29803; + shortdesc = "Provide \"turn page\" instructions"; + stripPrefix = 0; + sha512.run = "446b0516264eac6b880048e16cf4ad7bb529718c726233fc645b8c32d625f3f6b505b72beef81994b61ddc77ec8ecfece907347be4f9e18a79fa36c2aef91b5d"; + sha512.doc = "4af8dc61e53df587f19b61f6260e7a7820a8334f2841a63f2ecc05b7197eb69596dc36163b39cdaff9258651241a334b6e3a814699065c8ce4f861fba6110f83"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3a"; + }; + tutodoc = { + revision = 69343; + shortdesc = "Typeset tutorial-like documentations"; + stripPrefix = 0; + sha512.run = "acd6fc6114ab1c25259485514b54d848b75cb5f45dc05cdb8324a91b127031c0db8c84c445b0e1b429dc1a5ca0a6a394987465363265c0f830ea60e72c6ab7de"; + sha512.doc = "8f58c8eaa4db17315d69088b9cb446b90504fe62395fcb07495742695f2c8e8215ab76596d4d98cad3c432f3e6079a2ec3088074345d0ace4d309db3163ce405"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.1.0"; + }; + twemoji-colr = { + revision = 64854; + shortdesc = "Twemoji font in COLR/CPAL layered format"; + stripPrefix = 0; + sha512.run = "abc9583bbfd3690ff52b2341e74166fb70eb0f6abbaf99b01b0f24b818abbe3cd7556ef9cdc3cf58c056a038fe6fc3bdd45199c437a7eab99b300622e8d7308a"; + sha512.doc = "90e01641e73702fe012510bf3c9cf741bbeb594d528b2eb69487bd57beeff59c27ab397902b3c42d5dd1b5745e5b69d0db80b3b2d399bb1ba67e2c85d14a88b5"; + hasRunfiles = true; + license = [ + "cc-by-sa-40" + "asl20" + ]; + version = "0.7.0"; + }; + twemojis = { + revision = 62930; + shortdesc = "Use Twitter's open source emojis through LaTeX commands"; + stripPrefix = 0; + sha512.run = "d9204536ff2cf76cfb341bf8096ea71571663527dea945de901758032393f6e4f53c88f0d274e37da4cccf6b61149cb64f19a8712df80523c2f921354155b797"; + sha512.doc = "3f2f3b13f898545a32aeccef972ed52c448f3547a6834c8cc1a5589e2ff8479b822591d20acdc41f1cfaab1e43469d75abfd0841baed7b1a1dcd4000b87d1045"; + sha512.source = "e9c85a850603cfc49b5ab4f5c51a303dae326a3e44af547c5c9e77319422273c762facc885b76234e935c82b217e53945af524ec9e9431d834ad6645265f78bc"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-40" + ]; + version = "1.3.1_twemoji_v14.0.1"; + }; + twoinone = { + revision = 17024; + shortdesc = "Print two pages on a single page"; + stripPrefix = 0; + sha512.run = "ffb9610d416a15f664bfc34772651af63f76843127290bd64462991b3b892a8bbe9b5a8251e278ce757883226bc07f89f54cf94be08d6bdbe6f68c5841e3a282"; + sha512.doc = "5b79b0b235fda5e32680884702a16fe033f3a617daa765a72233d22df5e217f6d2a617a2d067f6a230985e5144e6e6d733ef6e7060f267c6d22bf5de39361d41"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + twoup = { + revision = 15878; + shortdesc = "Print two virtual pages on each physical page"; + stripPrefix = 0; + sha512.run = "b3734b3818498a7038d544304d27376ff481b81fbd776cc44b9d246c3e69560364a784d897755cb69f9608c51135a1fdbb8ed370d624db64dd7b5f18a48bf754"; + sha512.doc = "2bd34ca3274a229949c322a543c2e1fcffac7383edab2cbb7f0c74dd43d3b9531f9ade43f6d0126f5fd43371093f92170f69fdcbc4f69ba7fdca1d1fad167c36"; + sha512.source = "d121f96d050e4dac6b2b52ff99b9b1ac5d5dc5e815c670f6458cdf8989a7be5e5a2ffcf4bb25d3f1ab6d5c02d1c67c15382ea266d0ef2e1f6e86e404fa1dff20"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + twoxtwogame = { + revision = 70426; + shortdesc = "Visualize 2x2 normal-form games"; + stripPrefix = 0; + sha512.run = "b2275f66d1e53f031b6c512754b7dd9fa2e7a078bdb08de64cfd51cb8c66919027397ecc6d740a7fad741b9468442aee0f93b7d9082ca75757d69437de05b001"; + sha512.doc = "1ea1154857058973b8ad02656caf68ffbec00ba7b3a51a985fb4367cf8622fc9a0d6848082c80cb2aa67fbae2fedb8d134ebf2361067704ece953c1b4651a17d"; + hasRunfiles = true; + license = [ + "asl20" + "cc-by-40" + ]; + version = "0.2"; + }; + txfonts = { + revision = 15878; + shortdesc = "Times-like fonts in support of mathematics"; + stripPrefix = 0; + fontMaps = [ "Map txfonts.map" ]; + sha512.run = "2e6a195791067ec85f4eeaea5970467c97915dfa48f59d17b5a73c90ba221de1b41ed35502c6714335cd190af05ccaefc6cd5855c5f35f49bd8e15a2b4ca0726"; + sha512.doc = "f19a988305799931023026f714b63ee539ebaddcd39e9be1f1bf765cc4cc89428b626ff4d6bfc91ea2f324f08cf09b618b6a0f8db6b01dc9d8685618daa1e2d1"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + txfontsb = { + revision = 54512; + shortdesc = "Extensions to txfonts, using GNU Freefont"; + stripPrefix = 0; + fontMaps = [ "Map gptimes.map" ]; + sha512.run = "7b73b199b6d1f109b14154ff659089b2f3c36feaad10c26fdca80f5c4ab464f8a52fdd52a6191a89538661a3a9cac8fc45748cddd09b6e32e79f23db9e8586e9"; + sha512.doc = "982d29750320bc1709ff8329effb3f7bedc6ded888a537aeb7f080c6fc37414956b1b1e149225cea3f3a60982575fbc943433cd4f9cc5e5d61c596973c07b3ed"; + sha512.source = "f9e4d922abced380458f9fbb25c25a55d55e3a4b938c612bde03c0dd60d55573735816acd745c2785356e5956078615ada3c1396148f8d84a6ba9a805f4ae0fa"; + hasRunfiles = true; + license = [ + "gpl1Only" + "lppl1" + ]; + version = "1.1.1"; + }; + txgreeks = { + revision = 21839; + shortdesc = "Shape selection for TX fonts Greek letters"; + stripPrefix = 0; + sha512.run = "05b24a0c9705589d2e04933a5e29b8a49de155ad0e9a4caa0c36785f7feafe475275b76c58aa50d9318df26342b800382d3c9e8164bd95fdf400f730191282f0"; + sha512.doc = "b671e433740ddc414e0a881d1f91a1311ab0957038ebeba23fe99d623a62e0499825548dd591d0adc67d32a5d7331cdcdc76be6ba87f77265bcf48758626919f"; + sha512.source = "09ffe315c18dfe3ce065a6a48dd17f1340c2381df2585a973b666d2a93f1560be11fec50c44e178a154bc39416437772ef1059c539e5934ca6b02866a087eecb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + txuprcal = { + revision = 43327; + shortdesc = "Upright calligraphic font based on TX calligraphic"; + stripPrefix = 0; + fontMaps = [ "Map TXUprCal.map" ]; + sha512.run = "f6840ff0846b52130b65c81513d4bf358dfea413ac6d7f324eab592b96d5277d7036e5d991dbfc1ecf6376fd35baaf0351818eed69a21b6ba88e25f878a41ef1"; + sha512.doc = "f5bd216c689b0368bbbfe29f7fbd57bb7c02344d8696af488fdd7f1078fc5ad9ac7ad5565f1408b7b7d19224093d1418c1e3d8920b8cb0cece770811576c894a"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "1.00"; + }; + type1cm = { + revision = 21820; + shortdesc = "Arbitrary size font selection in LaTeX"; + stripPrefix = 0; + sha512.run = "85a72c942e61dc0c0fd3fd7646d264ee692ecaf4e2badab4f68dbcc380a1c88a78d4ce066e23a08d1cfb29ed3af0115b08ea05a0e078283513eb14f9c6031863"; + sha512.doc = "6cd4061eced23057d860143dd7121b1e0ca1a17de1c2f08334c678c9623c0066ee77c1ab5036953ce390be7356d3fc0d155a5de1f0aa977e1e95296fe71d5199"; + sha512.source = "6a66a866c6edbe8c914bd3b0a7568c0e23914253fcb70fd849326e42b2c32860c97756fb94f5879dead5bc3f057cba64f639038b5a125f607c3f21abe4807bf7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + typed-checklist = { + revision = 63445; + shortdesc = "Typesetting tasks, goals, milestones, artifacts, and more in LaTeX"; + stripPrefix = 0; + sha512.run = "3b8cbfe59d50498fa196655596660c7cab045734e1c2f03843696c35b71ff5bd4af738a7e4fab2272c021558413adc3205efb0ff918ebfd6e46ad3cb6407905b"; + sha512.doc = "5fa0547034644134f207beddf56d523eaec47c1a2f9e2be5bd9d0db17b07874aa08b86a6c059d71ef6e7918dd326171955d9dfd921b28350860710b2935ed494"; + sha512.source = "8b5de72d3200e2c75ecf442b3cacebf6de88e4dd6473b97d4bbfa3ccc3e26a0506424854485d6f81c4c779834ed439017395a72dc7af22e2fe5d72e0e0bb5282"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "2.1"; + }; + typeface = { + revision = 27046; + shortdesc = "Select a balanced set of fonts"; + stripPrefix = 0; + sha512.run = "68a71a590aaf3c6defc28a52b47f38bd1d24ec034df904d7baf4e22f1d390ebbabe744855bda70e72986450b402f03295f772a9576a2bffcab5638f3f77718db"; + sha512.doc = "548caa57dcde46484ae947f46abbd8cfae54c0325b42cc32c23c092e23f7cfe6589b6ddcee1eef09ece3c5ce0328fa561c52234899d9544fdb86440c91c63ce9"; + sha512.source = "3c0a366505b9631e4240bc6a54619c8f526b18ddada30f2a88f8adb29916d0be755bc0643fcb40dc4d1a0bc371596774d029ab4c42d473ec09c36fb48e99cd12"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + typehtml = { + revision = 17134; + shortdesc = "Typeset HTML directly from LaTeX"; + stripPrefix = 0; + sha512.run = "9a158c2fd4c16a5dda1f8828ba32e082f5839fb841a8479563828b0085db4fbe28cb91674c6f22ab4965f8bf6f6cdc0f5b3113743113ca0188ff8bb851845ae3"; + sha512.doc = "0001ed86af90c4fba458d299a2651a200ece010ec76bd8e934afcbacb7d7684fcd6c9514d280bac886a41eb38b4630fa52b1ea18da70ef9c29bc04618e392673"; + sha512.source = "729bb6acd2e6ec28bb18972cc58b7ef8efae136bea2d96a38cedb4b0d40b02e00e2b21143706325bcf9add879e8adcc6b0194b6cbef3803c5566e7f6f0e63ca7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + typeoutfileinfo = { + revision = 67526; + shortdesc = "Display class/package/file information"; + deps = [ "fileinfo" ]; + sha512.run = "6f448ade3e08de1512064cdefbc1811f97f0a32141dc6123788bbd1147fe3d5c3f8709f6316c0268529017e611cf455d1488a8565a128c4c45d1de0ee9311ede"; + sha512.doc = "d8c8e568d87a0107789db201875f2116df08a2c3dc9bf235951d5b675a8b1d01ab8b2170301581f18cfed4fec98e8d63fe127999f0273c9c59da163e72debeb8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.32"; + }; + typeoutfileinfo.binfiles = [ "typeoutfileinfo" ]; + typewriter = { + revision = 46641; + shortdesc = "Typeset with a randomly variable monospace font"; + stripPrefix = 0; + sha512.run = "f8b9edca6a860f0acf0d676fff381276594f7c13fb13da2e54caf5513a8a65fde378b4c16dc621d89d25d7492318b006d7c5d863c1f96a0a246064c0dad1f2d8"; + sha512.doc = "12376247fd8500e7c147609bf47acab379e36126976ea9f2dc0a352b8b0d779b1cd43bd1394f3961b1a7fa894a8b6448b0369f612d8bbf8d1bec3175e850f89c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + typicons = { + revision = 37623; + shortdesc = "Font containing a set of web-related icons"; + stripPrefix = 0; + sha512.run = "38b0afff6e88635a2a27502f1abc279fd70e49f36d56bb44114895614cf80184ebf8b627bcd576d128b3557de08b3791c5c2e48f2adac9766f9a809ff0db3cba"; + sha512.doc = "36b9517833fa6c430671fdaf0ad0775813c22ea3b3f56fad96410dd90e052b76d81f0ecd411ec19b567cd664b7ca44b9268d05ce59fb9bea0429c8f91c3a4a55"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0.7"; + }; + typoaid = { + revision = 44238; + shortdesc = "Macros for font diagnostics"; + stripPrefix = 0; + sha512.run = "56553f1ea620566efdcd5dbe3710627d4c1b0be0ee294d256cec8cd633a4b24048012c108eac867427ddda28614eadd73172fcd2c57ac702d5f5e5c4a40769bc"; + sha512.doc = "fd4809e02b1167e16bdb75cce5837f6202cfb44e7a0204900f6eb70173aac984eb35b14f00a9d43d4a61a4fb3a00298eafcbf71de15c7531f043e64cef418d8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.7"; + }; + typogrid = { + revision = 24994; + shortdesc = "Print a typographic grid"; + stripPrefix = 0; + sha512.run = "4ef0239ae626245b25e43819bc05da7d22d89d1e33b94402f8bf2b24e2518bfa7ce6626d0c9deffba5d461dd65db0160bd9134b78cd9ba930d0e6315cd761b9c"; + sha512.doc = "d228343668d98616c6cab8a1c4b0cea313b4a7d2f25699a0f54f64b660b10869d2669d98f7f5b992ddff5a3202139ef1e278ebd40b3dd76466c6154a59804c90"; + sha512.source = "23aa23ca0ca597a03ffbcd0ea79c1341d52aecd41d363e6daeea8b35c74d59a4edcb6a0f2dd7fc05e0a1018ce375f77ef7c831cf093292dd3785f486b2397388"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.21"; + }; + tzplot = { + revision = 64537; + shortdesc = "Plot graphs with TikZ abbreviations"; + stripPrefix = 0; + sha512.run = "78d2a67470340caaf6ee286f0dbfb9b8706cd4b0a689a64592c11f6b8a5108a61d33a24d36262aa5b802b8893ba440365fcd1280eac4cf7d3e514f6820ad21ca"; + sha512.doc = "853cb61ef10c91e1392c23e2b4d389f0cf572b692a6eafb8bb9af35ad9b2f1e7a8630ec1df6faf1ac1bc83e88dca0146519f571917ed9ed57e6ded912fecd895"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + uaclasses = { + revision = 15878; + shortdesc = "University of Arizona thesis and dissertation format"; + stripPrefix = 0; + sha512.run = "4341612f18d6f5f4352ec0bf0018fe3115be73f479479586a81d7f994ec23adea7c38fd773022b4d81a126e43bcbfe5f97f4c36d61bad73509f2c1b97882c00f"; + sha512.doc = "63beb08274ed7db9a2d77761277d65f89988812765a2484d7db54a8419cf67dad3fbf76b46bdafd8bd7cf17a1d540deb83c00c7b6df01f6f023bbb5f098c2ab1"; + sha512.source = "ffc4902edf6b4007c3685a58d3e5a20a02a6ca3072466b7415cb4fa98de236e52c6a391c5e5cf30aabf37c7374cf00aaf2c7d6c845a3a61e2f9c0b0505e215bd"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + uafthesis = { + revision = 57349; + shortdesc = "Document class for theses at University of Alaska Fairbanks"; + stripPrefix = 0; + sha512.run = "52e0fde63c966392a235239725e2db7cea70a300837cf53003f961d32f54787d8c4e70ee76577889ea543f884ed5ec281b345bc9e83872e5a131e55429f7afe0"; + sha512.doc = "92c2a15a214f42a9dad8c0c50a67c68d037980b813e8ea4f6067341628f19f51de36a20b0e0d8fc49acbdf6ff026a729dc86e65dd4b8fa148a541d9535db0f85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "12.12"; + }; + uantwerpendocs = { + revision = 66819; + shortdesc = "Course texts, master theses, and exams in University of Antwerp style"; + stripPrefix = 0; + sha512.run = "88163f9a28d8027e1e223e551f1fb053751f849822727fde7e595423e6f10c67e2d389f515aeaec77a68a48d7b20600cf9cf3ae7adb02e72f45e4d6df48c2049"; + sha512.doc = "68dfb896b3b189ac38362a8826fb925c8e1af493029d04bf584a1a6e57c8e501689fad7b63c96fbec69d2aeb69965ff1cc7b544bf35161a6d90c4a54bc486438"; + sha512.source = "9efadf4bc9c217dbad28b57845ef9bc18bdae2e5b48887d1c6c3763a3867083138eaa0a693de0c407fb798e150b0737041789bef915216fd124351c1ee6b3b99"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.5"; + }; + uassign = { + revision = 38459; + shortdesc = "Environments and options for typesetting university assignments"; + stripPrefix = 0; + sha512.run = "3e61f381e23c30670fe78c4a54d99970bd05883e6fa03040e7123fb0936aabf51341d64aeff92109fdc33b7b97f40aa0cd81fd6624d9449584aef1fa3061070b"; + sha512.doc = "e6569cdac6854bc1856d6a4604589619ecbf317442018790eabc3332723dc167a879e7ca6be0da8c281847e757ddada005daaa3b8712f7697ea4052b9c9f7cf9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + ucalgmthesis = { + revision = 66602; + shortdesc = "LaTeX thesis class for University of Calgary Faculty of Graduate Studies"; + stripPrefix = 0; + sha512.run = "b836c6cd59559d6858b6ae98e04c8ac9734f8c9df34c103e6076911db5db6430d0b253c29414a63073216f2ec8e02ffafd69ea97750fa886859b9da1ca2cc07f"; + sha512.doc = "acd371ab0e495a664d37f5da31cfaa9d31edda71b2542afe9b4ece6e4845da19e16d4b84d64b0418b49696d080fc019e521874527ecc0aa8559f2c2341c80cec"; + hasRunfiles = true; + license = [ "mit" ]; + }; + ucbthesis = { + revision = 51690; + shortdesc = "Thesis and dissertation class supporting UCB requirements"; + stripPrefix = 0; + sha512.run = "b1a4258afddfb1283c3fa4f8e126dc63f1ac948ebee2d2fab3738e2f5228b0bda85e71ab3cc3ccfab0b8ae66b84547c5070e111e8c1516b54bcef721f935e63c"; + sha512.doc = "aa443fe9530f08dde9b0531e075052868524c7ff6052e8e93e384ee3c01a354fd1752664b602ff6c98ab5250d05eca910773236d55270c09a567c9b238fbcd7a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + ucdavisthesis = { + revision = 40772; + shortdesc = "A thesis/dissertation class for University of California at Davis"; + stripPrefix = 0; + sha512.run = "ce8191ad81027361c23175194bf23284bc2e43407f0047586a4a89a2c51f9823356e2e571639a1f76f6a1f2b43c08eeb134d874c03f559897b0cf50aecfc94a9"; + sha512.doc = "26ecd36ab09467341868d0ad7d71f39728f23688053ad4b8a89339238da5c96fcfe504d8e6403663eb6441a14333163f8998e00428609b161c3e9665a4ef0bf5"; + sha512.source = "759eab6cc5b63ac159e481bd012ce5da4d6ba35f459928d4e578b96bac60485df32771660b4f8fce08e73303e517c37aee1a5503a96c810506bb854cf7bb050e"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3"; + }; + ucharcat = { + revision = 38907; + shortdesc = "Implementation of the (new in 2015) XeTeX \Ucharcat command in lua, for LuaTeX"; + stripPrefix = 0; + sha512.run = "333e8f92394d89bdc3492606e467d4b664c5d87eb464e1c16ff293e3f87931c3c70308aeb523fb40f2e76e5d0aa2c1635402f40fc36ecfbb7ced98d232b8bcb5"; + sha512.doc = "b4615cefd26201509c908c2719519f927d61ad96367a612d654917819b2ac973fff85d081dad6e1d092e634388b16e83e440d3cbad4fc7c16f638f5e2853bb7f"; + sha512.source = "6ac34b38f4e0908d841ded4981d649c9202bd3bc277843e6e82bce629a245cea9c6ef1336d575d77139584f3940181c5e6f0abadf4ff71c42a97ccc33be59d9d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.03"; + }; + ucharclasses = { + revision = 64782; + shortdesc = "Font actions in XeTeX according to what is being processed"; + stripPrefix = 0; + sha512.run = "41e9f5323b62d529f0b0ddd1ae9c5d613df19190a2a666e1c1b35cadd8bd5411487ecee1419b7dc7f06183181f68ecbb8bf813537c6e711f926fa99fa74f249b"; + sha512.doc = "52fb328befc004024d10d4222eaa7d6d3d179523bfdd48ca8453d6023c118f328a1981b69c805660ee4ddef95df3b5b71e1c85f59f3cae92ac74898f50b52206"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.6"; + }; + ucph-revy = { + revision = 69750; + shortdesc = "Musical script formatting"; + stripPrefix = 0; + sha512.run = "f9fb2dd19b7a963308e5c5058ac990ce3b944377ff6eaf52b26fcd7a12087c75bbb464e5e1155a1c3340e8fb3fca65b6d344d76f47a9a386fdb6e5425303f81b"; + sha512.doc = "0ad9f32badd36c033dd3d368e507518bd27d79e3bb94747b86622c2e41b81e87b5db673ddb4cebf7a88df4180b7cbb2bb0826ee19990e572c5e5ff33394c05f0"; + sha512.source = "b8245b1d950ca2af99683fe87f3eb5211cb4990b0911d11963cadbcc9c9d23d29bda0e7bd18a12184c5ac2501e69b67c89844d061c00f0e1ddb842d5d51d7112"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + ucs = { + revision = 68759; + shortdesc = "Extended UTF-8 input encoding support for LaTeX"; + stripPrefix = 0; + sha512.run = "9adaa0a3fef64436b56d3e4e1c504b74c18dd795db15d193df0e0ced419490ab462cc61850d3bea6cde7928ddcd85cb872130d1dc9776aaf3bcd8f12cf144832"; + sha512.doc = "95dede76d97d0dce6cdaeb0acd128e89c2e98383e633925b40433c0d4e0e342fc3df94603f17370fb56b88c40effb99eacc4310e4de4231232a2be6892adbe87"; + sha512.source = "e2f0406d59b69bac26363cabe90364aa61513e3c20da1fb414ca683e830cdbc79410fbf9f9b36e60d467c989d03e942efa2b9905dcb2339bfae9267e49cbd00b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + ucsmonograph = { + revision = 52698; + shortdesc = "Typesetting academic documents from the University of Caxias do Sul"; + stripPrefix = 0; + sha512.run = "e4375327eabb390842ae833bceea1a554fd833b656e0ede5d56b1bd48a070dc0b89eb878db0c77e92865760755c006fffab8a1d0627f0acb6cc1485aa9a13c6f"; + sha512.doc = "00cfc843b8377d9390806d72a78c5c7d219adc0312a7472ad764bb777200265b6f2d6757f98c44ebdc671671df38e920fe488a2cdea0dab0a3953856b5233b57"; + sha512.source = "900c1f53d5f78fcd7e2fbab9a83130ff0d7233a4fc3a547fdecbb6c7ac35a7c3a32a10f74b00f959c8cc4afae98f97532f3baffe1db433053497db80ab74a852"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.0"; + }; + ucthesis = { + revision = 15878; + shortdesc = "University of California thesis format"; + stripPrefix = 0; + sha512.run = "5409e366c69372dd3a93b3755d185e0b96edf71c7a8de4d6cc3d41850e5b9915d2bbe68d3265b5facd52e7d8c00159031737dbcc26302a1a6a89425ac47f443c"; + sha512.doc = "7f7ec44a55e2d712af2204d883a7136b44192a402daff4376cd6cb217419179d2b46bc083688d9be9ad85d2b3daeb00305f2253196784ffc9d72c039f0aca5af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + udepcolor = { + revision = 69701; + shortdesc = "University of Piura (UDEP) institutional and corporate colors for digital and electronic media"; + stripPrefix = 0; + sha512.run = "010172b3730b31b12a6f9e425203f9064b7c880e5abcfa0ed538ffaedf3517dd394030d55501b48c1582036bb78153d7d4f581cd2c396d658db58faaa00c0cef"; + sha512.doc = "33e7057cdbcb2ee342d061194d5b0e36a1e3e7fd48c7e1d728b6b8b4a2b6fe1c4b0a4a9185b4cfa3a483cd084f93ac905a98f7140bdc0a8e4f37395bf9a55ffc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + udes-genie-these = { + revision = 68141; + shortdesc = "A thesis class file for the Faculte de genie at the Universite de Sherbrooke"; + stripPrefix = 0; + sha512.run = "01422998b27a84f3b892114fe468bd57ecfe37dfda68ff84f2cb95fc9ba589d74fa4874bb35419403269685c74607e647d98b1b443d8739c5b4c3335820f690b"; + sha512.doc = "c962a955f1d618232196eab7c87b301dbf725f8ab08156ed98d4819ba3be5a6873b81dd7deae65c0a36eced5e42be6415b78b06c5fe945b4d4492e98487bb91b"; + sha512.source = "77a91a01bc6e61de8d08048cd4d04ba6e6f2b2c082e14ea4100728bec3229f096089069188a523d3d213c3bc00d27065fb5949b622869fe419226705e357d802"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1.0"; + }; + udesoftec = { + revision = 57866; + shortdesc = "Thesis class for the University of Duisburg-Essen"; + stripPrefix = 0; + sha512.run = "56171faa46267dbd99185807f619a673cc1ace837eea3c0e8659c4d7fb50aab7f8842e259f433070b8eb54390d3426542c3443a62d37a1aa9ae7029f4d7f022a"; + sha512.doc = "463b9ca1c153da84ed0045a2adbe8129031bab79d0a586710b6cbb9fca9b84428b7036848efee27a075b40f0cb015081c89e6e7f5588f1e2bd011d81f40be721"; + sha512.source = "99273b3d809dec7f508bc3f1744143804edfbcc2b3ffbdd6fca4e51be2f98f3ac0ab6852ccd333c5a69a627dfb108952d511a5398eedef0af4306ab573ea54e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7.1"; + }; + uebungsblatt = { + revision = 15878; + shortdesc = "A LaTeX class for writing exercise sheets"; + stripPrefix = 0; + sha512.run = "e9ce935da13de8106d63f233349bd29e954538ad17de7505be14a4b5a2efa1e1aabd3ef46871e98d2f5d4730bcf6c49998187924328eed19a35a95bffdcb8d70"; + sha512.doc = "2853eae6fdddf889b305166c6c09351e8e7d7fb087c68a5ab9f4a7a282118200a5120c215708e7d2b9d4487457aa6330d11ec7f7a8e0139719b67217732f2633"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.0"; + }; + uestcthesis = { + revision = 36371; + shortdesc = "Thesis class for UESTC"; + stripPrefix = 0; + sha512.run = "aaeb270174e260230d527379ef0a7581ec9f78387aae8505ed5e88a04586dfbb1d90cb923181f34e92d5100bcece0da66e17452218f0c83bbb12b38cc517f3b5"; + sha512.doc = "e68e86bb446c1e79111948b004ece03e2110166d01966d562b1bac6c932385aeaa682f04262eccd822e01b93c66c77be53c947c1dbdbf5ce129a74efdacf5df6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1.0"; + }; + ufrgscca = { + revision = 70603; + shortdesc = "A bundle for undergraduate students final work/report (tcc) at UFRGS/EE"; + stripPrefix = 0; + sha512.run = "4232e58cb76fc9e6e9a24fdc760dd189004dc20a10c9b27265a8d2449d8ff4f741ad745e52815e2b729d78896d682a9b11b96b3eb01bcca7ec4a4cc8f4a3c893"; + sha512.doc = "efbfb6a83e5fcc88ce59b8b008c961b3e7e84266ee7b8c8f5f129f3625c1018352b701ef6fb7f8c1f41b21655da6b26d9add397d54b7bab4fe7dd74c91e327d5"; + hasRunfiles = true; + license = [ + "lppl13c" + "gpl1Only" + ]; + version = "2.7"; + }; + uhc = { + revision = 16791; + shortdesc = "Fonts for the Korean language"; + stripPrefix = 0; + fontMaps = [ "Map umj.map" ]; + sha512.run = "b5e722e7a72d2efcd89c969c10291779a2885603817374e4318f59b4042b8890df967503016d08a91e30ba8cbbc6f1838843644f06cf44766a7096efdd3bf905"; + sha512.doc = "c37c5041d155f9a175a6761154211a683405d094850cc829a6b942afcb93af987b4049e663d260ae2b066827007d8c6576fdcd5d14d3ff599f031b13c00e162f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + uhhassignment = { + revision = 44026; + shortdesc = "A document class for typesetting homework assignments"; + stripPrefix = 0; + sha512.run = "a394f6f161cb72ba42eccdaf26f08b12048cee56207f754dac157a2eede1b0867fa0d5916a37d5e3dffbf10237178f156fd3cb33c88be6a926208ca8dcdd0508"; + sha512.doc = "21054dc051229a338d2aa954cbf80893e156236329206ff3cb63f47dceda4c35c6fbf6c2d9492551b7609aa88dec74c507094e2d96f2f96432436e74e80a9c38"; + sha512.source = "0bd0fcb18d334c471fa7d4259cb7c511dc7917344ffcd724ea8bdf859272cc164649f01eb4e553deb5b44f91dfcaa1640b18ccbb5b10c1b0d3a7b585afa323ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + uhrzeit = { + revision = 39570; + shortdesc = "Time printing, in German"; + stripPrefix = 0; + sha512.run = "7b5c732258e25ecc2d429b09349b94cc4f24de77e8db40add018f42bf7658868e9c3730f0fed86312ea96625556fe02a276535eb14416d06fa5fd2cc1eff30c6"; + sha512.doc = "76c7bdb6c74ac05fd9b51366b68b0dae8180da51f506ba1793765d25de29582c8eba51826d6d6c6d3c3c1793f10fda3f6bb75c82d8d454fb19e1339eb98a9eb2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2c"; + }; + uiucredborder = { + revision = 29974; + shortdesc = "Class for UIUC thesis red-bordered forms"; + stripPrefix = 0; + sha512.run = "4a398e734fe551f1636a63ab3ac8b851ff1e445c8b15b6e48017ed7a81edbcf042750919db790d7e2e9d6b08132ec5a3c04195854315ba1c1c8e8712996dcb25"; + sha512.doc = "6e1c91389897853bada4b52c8350dfbbc321395cf1ff7991d7f29d5e64119c86c4e07fdad889f2a4a149e0e2db1a1e5cd9a44cf6f905d5030afa25cfb14d1323"; + sha512.source = "74256e3917f7d28adbcd5d08e4dad126dcc93019c852ff6307417b2e150cdefa986affb61d7b174bf510e5f75563bfde01fba9b4c588db3d41c2fca82e0c882b"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.00"; + }; + uiucthesis = { + revision = 15878; + shortdesc = "UIUC thesis class"; + stripPrefix = 0; + sha512.run = "565b499bcef08716d627e206a53f2f344a10a0e219876eaf4bd82a63accb2eb43c14c8c8b25236d336022900e9a7d5299b5a34d5e40eba0be6d7dc8ee4431490"; + sha512.doc = "798e7428988a622562b94bfd4ae389dcbba3524fda0d427aa4fbdaff0f1a437babb4e68b58350a3229fa078bf11e17af9f5eff61a5c9153960a941783cca623e"; + sha512.source = "3d1eb025e066a311e4ae28292b00e697cf4de63b1038944b41edfbdacbdfd246d5a49bd63f561c5d0d4bfadad8d2a4325a8784245c09308ef5d2380054b966ad"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.25"; + }; + ukbill = { + revision = 69362; + shortdesc = "A class for typesetting UK legislation"; + stripPrefix = 0; + sha512.run = "45a1b6be9d4dbe7a9cf47ff7cf07cd280069203eb9e3a5297e699e84bdffaf845c92a32136ba7e2f61db613a32dec6d37af3eed1a8dd52fdc652af207ef16d23"; + sha512.doc = "ad3076413ae87035b82d913c3772642aef429c7cc0efd7718f3838a5c7dae52e3954d0566c23c57f2f25d51ee9904dc8dc78b3d8a70bbe6554ce0c74d8703862"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.1"; + }; + ukrhyph = { + revision = 21081; + shortdesc = "Hyphenation Patterns for Ukrainian"; + stripPrefix = 0; + sha512.run = "043338c4e92d84bc2b7bd63610656b53b39bac225c5610089c0c8b58ce9bbe3f414129a6b043a5307ebb7b59cc062ade7bd803fb6949d06a0d0c87e2dd4a0bd3"; + sha512.doc = "a283d11ed922181d4f29f521e3019fbca2b1bba1aacb312e22dd8e69d05d7dafbabc5c23b63707f265bcd215d8f517f58ab2ffee2b87d9bc1a968d00e9542840"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ulem = { + revision = 53365; + shortdesc = "Package for underlining"; + stripPrefix = 0; + sha512.run = "bb7fc8d93d38a847431f9f62f1447520890f3904654ef6f3cdffd14537600da35d54bd0839cd8fd8d26e1e3146463cd9ced79f706df54df075292eea8a40ed4c"; + sha512.doc = "153dcf2057d267c2f59c7705c4997752e902aa004201f97d52a180419d7c0fea4173c0b5b1a1c8a11bc1703226e55ea55721a4d18c265b30343a5812d1f4e0e7"; + hasRunfiles = true; + license = [ "free" ]; + }; + ulqda = { + revision = 26313; + shortdesc = "Support of Qualitative Data Analysis"; + sha512.run = "228132cc464dfe171426fffec6103f0dd5eac61c112b03d64d98bc89a0af0ddb7f52f27f9bb5461c8be6f752ae30ef3d4c6b987e580d834eb7524d5c27d956cf"; + sha512.doc = "182dbcb73a25e05035f878696887ea219569a1a7ef44281bee14b4498b37e92346e0e97d187a5f3dbcd8d9783f260080ff10f58dfe41e69caec4888d901b9128"; + sha512.source = "352f1a739cb9c74c0dae529ff330f3269e763242af4dd1bc0aca963b3af03f02f5becad436cc3a93aa105359a1bf2f229b3cdb7175d539d58df67563b490de8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + ulqda.binfiles = [ "ulqda" ]; + ulthese = { + revision = 60217; + shortdesc = "Thesis class and templates for Universite Laval"; + stripPrefix = 0; + sha512.run = "23a9ad74b214612051104fb111808caf9c6bb2056f129265e77bc76370c293248a7903a5bc99183998061bb18409d86508cd488a4e82487726e17599f5948101"; + sha512.doc = "f7e062e470c524746898e88e2f07cdbcc58c1bd3dd5c04b1f0f1e7e7e6c9fe9968ff68ef2f2a95f25405c7901d937a32ed92b752b6c74fa228237b08645a757c"; + sha512.source = "545c1b5e53c093a1ea29ca73fdd4c3c355dc34a225651d774c31a6dc64acb2dc20d78421fc939bae4d324d6c6e5ce2e4f82ddac6ed935ec8de7e1f530aa5f30d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.3a"; + }; + umbclegislation = { + revision = 41348; + shortdesc = "A LaTeX class for building legislation files for UMBC Student Government Association Bills"; + stripPrefix = 0; + sha512.run = "ea6a55698b51da3939a1bfc10963dd74d9e772ebd18ad9018f649077224f7ee30ca20f051a68c9bd8d8bac94baf1d0d28ab2f864419c61385ebf9bc82aacb7f0"; + sha512.doc = "d4d5f318baa1f1ecd446bb864d0670ed2dcd7208429bfd2ce587810b27dde22f49a6f7c072aad8f6515e721a98ea0ec356ee36eb970cdee385910a291d964394"; + hasRunfiles = true; + license = [ "gpl3Only" ]; + version = "2016-6-8"; + }; + umich-thesis = { + revision = 15878; + shortdesc = "University of Michigan Thesis LaTeX class"; + stripPrefix = 0; + sha512.run = "52bb76c9d9e3bb742c2049495a74d026a1803396bc5064a10f4da2e80390ae6c9c9c74326b14966e989c9edd1e29b797b89413ed6e87e90527ae470a8b731889"; + sha512.doc = "db85abee0ad37ce814c645c072399a6ab7e3307c623bd402a1b9ee8b69a1c2a8aa782b5007a433ebe9eaba984432223bd78f247fdcd0c6f50edeccc87b874173"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.20"; + }; + uml = { + revision = 17476; + shortdesc = "UML diagrams in LaTeX"; + stripPrefix = 0; + sha512.run = "b20da85c7166f8aec4309af3ab0b1319f37ada1513ff502555794b1721ac8c3f551afcdf49a58bf5c3c5e666e48962075f7711a45de003245584541175a6a470"; + sha512.doc = "d81393e3b6d9efc0177478e562dc0a22323e3e5913d7592cdb6ec595d525238e154d2a599380521652eda4fe75b12006cfdc907715b0a9d461f8df60ed27986b"; + sha512.source = "afc5aa7db53b82f6063abca35d8cde75659682525d939e2f55c375b89fa4cc196bca8852c91d12f7daae939c053f4c9ecf99b326361f051847e660af5afe3ef7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.11"; + }; + umlaute = { + revision = 15878; + shortdesc = "German input encodings in LaTeX"; + stripPrefix = 0; + sha512.run = "35188d3930b11c0d1b52a5032bcf9cea21a22ce8ca2930f69ad4ab54bcdf56b73858168cc62581aac1173452dd0f7d0da3de8ac21b0ca2255ef324ff63c89091"; + sha512.doc = "89f28b3b90f63ea4f367019f0b65aa1f8e9489ff0d897af6ea29b7455948e3e75ef003a5a2d5b4a88e00a5e415d409a577c03b63a330f93ed6804c99f951c68e"; + sha512.source = "494ee6d1432d783f9586c80cee044e2857d4d24358c7dcb7d3043945bb3f5331b8eee78a13ee759ed6260518dcdebab33d78bab4cec5d384c4773b502c96fb0b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + umoline = { + revision = 19085; + shortdesc = "Underline text allowing line breaking"; + stripPrefix = 0; + sha512.run = "db3b8216d50288ec096f3dea9db24dfbad76848d9b8ccdc5d1310f4b8bb1b37ef10fed74ee5e6e0b70cc3e0aaa73aea87354ad731e4057c888031eb4e1940539"; + sha512.doc = "64d559300349fd75af4bd98f0841aee5c5d622791cdd03373ea1e7840989b5175e300663023d0f08636b86337f66c6668871387a51a9a28e079111087265bb98"; + sha512.source = "13f53876f0b1c5921b480ad9d2c63ef3abf1e175006145f200f61f515e778161ba631c6da9ca4c4d928f94220e0964b64130638d7dd7195160b54f39e4bf868d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + umthesis = { + revision = 15878; + shortdesc = "Dissertations at the University of Michigan"; + stripPrefix = 0; + sha512.run = "b2fb90713da6547b9d4cbea4f972144f70d7f1875e325225f0dfb90df1a04b4693c5a3dc651f0066ef7ba6456c7732aeb5272ccfd5e8edc24281c1b1bc9e4e32"; + sha512.doc = "fb43c7ab262d2a1eb70b80bf4ad66ae9e022c847451009372e1ee1fcc5250e93b0a4a2195f4208799ae78cbcb5fc24d48de0b2355884721918ae5d4c827c3507"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + umtypewriter = { + revision = 64443; + shortdesc = "Fonts to typeset with the xgreek package"; + stripPrefix = 0; + sha512.run = "e62f573d1dd79b27a9ed563a9081c94eeb483fe9904cf080209a198793bbd845e4ed29eb5849165a3880338a07dade313762c02a0e37c8b518752edede622950"; + sha512.doc = "8d8044cb196584c363006bafb7e31c023e1761bb23070ed56fa3eb84040861fa29cfae479ecad01050b9cea0f5ef408d551a34809362456e31fd53513d1bc90f"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.1"; + }; + unam-thesis = { + revision = 51207; + shortdesc = "Create documents according to the UNAM guidelines"; + stripPrefix = 0; + sha512.run = "aaa8c4029cfb130798c5e9401fde5dbc7943d7cb89c9a620e050e619ccc1950593b1d10bf6300958aede043ed0e4fbef371d0c40f055b259284f008463a64c40"; + sha512.doc = "ba6897f0b31953cc60bb49430de1b77d10d7656363d596d4160f96189c70417227193ac7d3809e1bd7518b89a871f5bf4b18004ff8185b2a03e0226536dc6a3a"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "0.5"; + }; + unamth-template = { + revision = 68681; + shortdesc = "UNAM Thesis LaTeX Template"; + stripPrefix = 0; + sha512.run = "c6b6d86dacb71575a7f76e33eac081f630b81815e3501ff5ba5a5e056d5bab76c709b19b8843adca39330fb644cc49e70c8687b5a66d0dc636caa74af6c3bf5e"; + sha512.doc = "e7e17ba71d47769db4766628d334ed66980d7f133ec0bf2bf21d7a00e92d661dfa624def736891c5d70f11755215bff47b8cc9ffaded3baebbaf52e0365227e4"; + license = [ "gpl3Only" ]; + version = "2.0"; + }; + unamthesis = { + revision = 43639; + shortdesc = "Style for Universidad Nacional Autonoma de Mexico theses"; + stripPrefix = 0; + sha512.run = "f48e7aab2c445c5e257bb39ea4dd880cf9334a5b1dcbf429e8d4420edbdc4621aa59548f31770d67698bfb4e59e239dbcddc959c1b010e012ad16971ee7956f0"; + sha512.doc = "240a697f242b880fd2436bbaa3752aae57ef3fd2e9ee63da173c78582c4bcbb1eb19e02a96607991d1d6a40157d52f00dadcd4956af230d429ad5223161a018d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + unbtex = { + revision = 70325; + shortdesc = "A class for theses at University of Brasilia (UnB)"; + stripPrefix = 0; + sha512.run = "0896c89b0fe51d943455fddd654f67b81aeadbc83d2a66eda450b9152f6d3ebceb4854c3bcb03c38f4ff0f0ced0b50c2e276b2ffb306ead72be05dc1eb02893f"; + sha512.doc = "e398de7bde9696776778314665d6cf37f55c0faf33cf3dd4acbd14d82d7d303d4a0750119aa0fc8e8b80288ae7219020ab43ac78c7d125a54845277a8ee2ead7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.1"; + }; + undar-digitacion = { + revision = 69742; + shortdesc = "Musical fingering diagrams of Pinkullo Huanuqueno, Flute (Recorder), Quena and Saxophone"; + stripPrefix = 0; + sha512.run = "933038ebcded30e59b2075a064c35a00e5523fae80a6a7091d8a0c44a043d4e9150b68f1cdd6814b3a0346286086b8f5af7b68b2de2c32be1c38684672afc848"; + sha512.doc = "bdb12e362af8ff816c0cc43a76974a8f1ab326486a6b103430fb2139f22cddd27514d2e486cd969179be75684bb6e5fc0bf959f8d8c868ce3d5fe466097a0224"; + sha512.source = "37d9e4d5872cca1cfe157233b56050a4f599038f3d552614ca11125dfe23596cb81cf5059244e6f3d702b338558d687b5a28a4f96a18c0c9d2b038a31484197e"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.0"; + }; + undergradmath = { + revision = 57286; + shortdesc = "LaTeX Math for Undergraduates cheat sheet"; + stripPrefix = 0; + sha512.run = "948d0f0ac20a63fb0c6de8003c572c11704d2016d2ddea6674f58742e997021d709d51806b5acb4716c79539b96086758814f4f5d303a257768c8716821e8451"; + sha512.doc = "6300a5d0781bae331091cfc8007e974ed3534ec3672dedc080c8e118e8526c98206438a6841d50d2e642e8d6c7859cabae14e140c211bc8175e7f9d1cba0ddfe"; + license = [ "cc-by-sa-40" ]; + }; + underlin = { + revision = 15878; + shortdesc = "Underlined running heads"; + stripPrefix = 0; + sha512.run = "b3afaf4c51b3da2d082e2cc742deaabe70cfbea7425e0c57f0d1d6696cd7d8f993707a219556a5c5bca925ea63373e3f0a716a82ead647e09ef2f716535886d2"; + sha512.doc = "d296a04d3a24b463de3e4fe99c96a2fd8afa7c4ed2fa17d1218ac9e4c17455b4752176be60743211d59657045c709c8b4bd66febf10c81a41879e8c7a67e9958"; + sha512.source = "8c534008a2cb0710b95333869536bdef5e3910e4a7c29ad2daabacd94bc5a34ea15dd3bd8439e7ebede0985831662d86f68815bb13b3fc36c82d83c51b16cb5d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + underoverlap = { + revision = 29019; + shortdesc = "Position decorations over and under expressions"; + stripPrefix = 0; + sha512.run = "3f94b5d33cfaa7f48441ba656e9498ea17ee5ca404e39486004e43bed71bab5f2140b391191e4d6f9575ca23e09b83bce343433c02cc394844270e563aab70c3"; + sha512.doc = "5214981a15d7f15cd361f007505a4a0060a2952d75ea28f4eaef01c19a5b79736512a2b0a8c5e6ece2d08c364780256963276a9bc9ea980e13ba292e3d0b8bc2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.0.1-r1"; + }; + underscore = { + revision = 18261; + shortdesc = "Control the behaviour of \"_\" in text"; + stripPrefix = 0; + sha512.run = "4fdc57d0a36aa5646c6b960b7579a8111441659469df32beaae06f54e6e835456810b1d9b5d36036510befd5e80b5b481b9179a6b24364bf8f858ebc97039ab2"; + sha512.doc = "e1f0730b39a5d25cc52160e090b797ed73a5becc16b6813cd0c2f4bf78696b23aec5c82367c347d0e734f3b92761ad2090e517bb6dd2a40879639f62149fdba6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + undolabl = { + revision = 65846; + shortdesc = "Override existing labels"; + stripPrefix = 0; + sha512.run = "7a2a13c7cf9a5920278bfcc57c6670a3abe704ffe01f3d90e253dc974c601da9a65366e7dc49785c398e3040771f45fa67365ba4e2b32426380c70556e4337a0"; + sha512.doc = "dff0446c4efbc3ea2a8e379718ec977c53aa54c46c6703cc774db74e9e3d85c49dc83cbe0f1d8cd6450899af5929480968fea873333aea321d8742cb328105e1"; + sha512.source = "b5c0b41e71540e0a0b5cd7baacd702403b4611446a208186caa8f98eb840ae093b852e7b64451488ab7bdba4f3f5bcb8fadb79a9c81015de4989ffed1ea1a743"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0m"; + }; + unfonts-core = { + revision = 56291; + shortdesc = "TrueType version of Un-fonts"; + stripPrefix = 0; + sha512.run = "5476421a802ec3daa8fcb8354924ffb090aa9ea337db315c813637fafa445ef82601edc61cb7aa424bd7e2deee7607902ed33f0cfe70c214901d4c52dfcff6c5"; + sha512.doc = "8f51172be1093ff9da6ebb7071f5fea435e2bdace5619faa24ebdef52b3e34197d91b8f9d302844d4e1377a2a4712247743172afcd4b01367e9f166bd76112fd"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + unfonts-extra = { + revision = 56291; + shortdesc = "TrueType version of Un-fonts"; + stripPrefix = 0; + sha512.run = "9cf9a73ba3c2190da7999c3b770e92d8afb43c640d651173c126e930155e9f87f371392accd4eadae8922ee846a5e02c0eeab845561dea943b34b185164bba3c"; + sha512.doc = "6173d49bb64c9b162763ff08af445e518fa650fcc13e02f5c72454d335285d9c82347cf79f945fae94429f3a9d15f9c9b58ff1d175c8f59ea7b75766cd279303"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + uni-titlepage = { + revision = 68917; + shortdesc = "Universal titlepages with configuration options and predefined styles"; + stripPrefix = 0; + sha512.run = "980f748d37b5b4a3118b1f34db2957b71cdb7551595cf7673e64d75b70688e882b90bd83132ad43bfdbbbb2bfa2752fc2028f3164fb9ee5e9565b84740b303eb"; + sha512.doc = "1198414d70aac8b31e23c73bd167586be5bf2f2745ad492fe516381a1e202e9e0720a389fc8c12eec2a21747f7e5c85fd754243b09dd5a008b2dcfa9a7257e57"; + sha512.source = "3eb42ea4fc401d4a55362f66c96db5295fb6ee66cfd840786ea5aa640c9f2b92bb5718f614d832d7e84427af20334be407ab59e155d135212a00769bbbd50038"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + uni-wtal-ger = { + revision = 31541; + shortdesc = "Citation style for literary studies at the University of Wuppertal"; + stripPrefix = 0; + sha512.run = "d1b6186d50733f87576ef6509f7eebaa17651039d882f78abbfa8ae23ddf7b896a90065fd5ff83a2e216485c22e865057f715784fab37ad9440616297d67a26d"; + sha512.doc = "ffee19f2d4ac337f7615b99946287eb902d2841b48f9d5c49d51604b45b7eaa126538732d64b319a8ba320f1dcb9b62b45cf608dbb0059f37975a1220022c333"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + uni-wtal-lin = { + revision = 31409; + shortdesc = "Citation style for linguistic studies at the University of Wuppertal"; + stripPrefix = 0; + sha512.run = "803107d89b4ce6fe120bb528c684a65db3a9c70433abfd6bcebe2a5d05e6c7680256a407ef5f0515a56915c5c1e0637a183cc866631558e32afd96a0e45139ce"; + sha512.doc = "e88b2c8364eeebf3768d0d562447d29233280daf685d56fe791d25b352cc64c4c95be3bec198aa6e5502287a654f3088e643a3a58edf7e55d0d899eed5b704c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + unicode-alphabets = { + revision = 66225; + shortdesc = "Macros for using characters from Unicode's Private Use Area"; + stripPrefix = 0; + sha512.run = "5a4b043778811bfec1ecc847ee191dc64b3f99ae0adb8fda2b16fdfddabf195133d53acf295fb18dd70460e1c1d200d3e6889815edabcdd0bca9d007d7a309f1"; + sha512.doc = "ded2197bb621622c7f9947ce736814a6acb63ce86bd866792a8fe8e1f22a8131ee12c785a81c764ab707e5bf1b2c99df73c1214ff71159e3c9fdd34ee7aef7cb"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + }; + unicode-bidi = { + revision = 42482; + shortdesc = "Experimental unicode bidi package for XeTeX"; + stripPrefix = 0; + sha512.run = "35e32b9959e698ab0d32ef578376fdeaac54c1acb9abc584e742a7caafbb2cf82364d58d73ad07de4cd273a5c9c60e4468df74fc4c21fb6552ddb5be725e384d"; + sha512.doc = "44b76c810988c541c5dc6cc85a56fb81e8c2aa97afb84192477e57f59423e508e34aaa0542009ceb5ddbf74c95cd662697544af1cdda1d0c114bb3f0507493d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + unicode-data = { + revision = 68311; + shortdesc = "Unicode data and loaders for TeX"; + stripPrefix = 0; + sha512.run = "9e74ad2fd167a913e004aa77c705f0f8b3ab3d8e717384ee150db076660bda4e2651bea97292ef9e747d4e2519d9ffaa113947dd5241f830c3e4d653ee061d71"; + sha512.doc = "a8e147ba4d30bf80e1c1bdfba67bb3a0ff9f765c5d41734aca1708adb58c5c357a17401383faab827477fc837ac1dbbdcb55ee0b3146acc737c094d6984709d4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.17"; + }; + unicode-math = { + revision = 67919; + shortdesc = "Unicode mathematics support for XeTeX and LuaTeX"; + stripPrefix = 0; + deps = [ + "fontspec" + "lm-math" + ]; + sha512.run = "181168b0560a67c98fc9df214f0bd37bd1314b2400622d2aa3eac6659db42aabd24ab724845190cba46fd9d53b7b1440c016a0c6fab49561c3d795fefc41550f"; + sha512.doc = "deffa8e0656c9e543e61228e4cba9a9cb31e137f6517e552f8b6243d14273b580b69e617c0473eb57a884972abfd07cd8cd9b4b836ffa1858aa1bf433375e954"; + sha512.source = "c221366b66e3f83910aca83dd8bd97591cca5e4a22244af77c87c2a8e161294ac7f3e89d2bd7cdbfd8236df93e60ee99c9e8e9fa2c20060938b96d93f1664ebe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8r"; + }; + unicode-math-input = { + revision = 69591; + shortdesc = "Allow entering Unicode symbols in math formulas"; + stripPrefix = 0; + deps = [ + "iftex" + "l3packages" + ]; + sha512.run = "23396fd1b313414ec1f6181646651a4c304a1f937458111bebebbb0234ef5e007e22dd2590d87c2a58514cb5794036da25801901f980eb3a08fb122e9a107cc6"; + sha512.doc = "e41a989367baefc296d7a890eba2a10f31df4e047b174f34d1843f632ae0d151e34e6290d6b1e86cbe949e7808d59b4523ceaca89aa69097b5e8233d901adb31"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + unicodefonttable = { + revision = 70354; + shortdesc = "A Unicode font table generator"; + stripPrefix = 0; + sha512.run = "08b2d90bed46237ebfdf0e98c45696b4dc1ba7f6f3ba2547fab2b129d6dd96e836dc23c345ccb45bdbd370fcc706e7a127a10f43aef9ea08ad75227f0b6b2857"; + sha512.doc = "823d26c705d4b6154ddd1324ac6297f97ef3244b815a7da23b0079c5bd94ece9391407432cf66b7bee7422dd55514c033839b31ee04262cdc1a75e5e11726e42"; + sha512.source = "ea0086f6d9c3838d0fde1baef225c4e9ab57470033749e6bd4a877d6aaf85a28ad4c557b44f7ef2970db1c636c9dfb43ace959c2e41bf20f2daef3418ad08b60"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0h"; + }; + unifith = { + revision = 60698; + shortdesc = "Typeset theses for University of Florence (Italy)"; + stripPrefix = 0; + sha512.run = "98eba02a617fa5d4349c5b17bc971cc0241d6d41fbe82af1fcbca1bf44faf901e5b13e786e62f26413805acb8efc941c3f1481307c69712aff55cf17b100b5d7"; + sha512.doc = "82620cf7a81f8502876edcbce06699a05f0e580760caab77cf56db89a145a3264202c8ab193a5a56df2f07b2b29d7d814b851dec7413fe0285124920f54baae3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + unifront = { + revision = 67054; + shortdesc = "Give notes a unique front page for every chapter and section"; + stripPrefix = 0; + sha512.run = "da1d02f97f5893d6f51b833e9919979e489ebef273922a01d0f5d48ed86ba9c401c11d5641da82f55be782dd215537159bc2c689309d3a4f730b93f2b739e74d"; + sha512.doc = "f66a3062ccf5d1bbe11e88cabcf7bf907487993cd83bcdc9bbed927a9f0c7fe06d9975ae5006441b7b71969c436a0faa0fc8808af35ba0d381d1dbecbfe921ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + unigrazpub = { + revision = 64797; + shortdesc = "LaTeX templates for University of Graz Library Publishing Services"; + stripPrefix = 0; + sha512.run = "e97b38083929bb67c306bb3c306c5293dd5a024ff58eef5d11d5742ae0cc2bbf39c8505c89014b4c0a769d0e923f91db39173da1a4b374f3d1179a017b8d6052"; + sha512.doc = "dd7a27267e4a7e16f9152ff393b15d4255aba7cbeeef7e5bd7211a8059dcf25473e244cdb02340e05324d982b4e973ac76a1812a82f787fa6bb504dc9713451d"; + sha512.source = "157f4f6770f276cb6567647321637a82df9c9562e9bc661723ca56c2a7893daef5de2e75a8d8fc93d1e80b646147f87e4c294d0b0d936d9c5d9784fda27bd652"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + unimath-plain-xetex = { + revision = 66394; + shortdesc = "OpenType math support in (plain) XeTeX"; + stripPrefix = 0; + sha512.run = "cca8482cad022f39faf3b0b0cdf20a7d209acf5041642bac0103a3dbd1dc832a61a17c442845752317515764ab3beefd6dfcabda8c3d03cdcb8471fdd3bff4fd"; + sha512.doc = "a9138d1b80d8d5db0f00682f213518df3a40e19b3e6f36a01e62ab020efbb9c468da282393cc43a515a39dd9ffb399801607e3ac59800dd7fef73f3007b137f5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2b"; + }; + uninormalize = { + revision = 57257; + shortdesc = "Unicode normalization support"; + stripPrefix = 0; + sha512.run = "b9b0e91a61d99005be4f37d2e5aababf70729c60d959cc57295a7197b5e360ed183bb9cd80bbb287508bf584db48f061bcbb25c6a5bfd0936923b106d9962f60"; + sha512.doc = "804c2e70ff09a677c30f531db5605512453506ab83dce8f9dab4bfbb5602f8605376becc8f65cf375b28c9d6d35ad9f3a92d6f185697e2e9f9d367638d58fb56"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + uniquecounter = { + revision = 53162; + shortdesc = "Provides unlimited unique counter"; + stripPrefix = 0; + sha512.run = "9769fcfd787f210e0653c971872aaad6e0ef1e5a066e392e9d599f8fc11ab9f6587d21db1100b643d09d4850cfbfbbc1d32f01fd1e86aedab8c92da4f5a7d614"; + sha512.doc = "4dc74aabd9288ae881c4513886ff917e1e8bf08446d3b34c946bded6a6fa71ea7b6786bf432fec2661cd1db1af6b5875ab329708cc3c443499b83b0325645d0f"; + sha512.source = "caac3c3445b2b9301d46ca94744eb600cc45b79f6946065f036f412d2d1b41716864d61e0cfb9e9d32ab8dbf870e5f4e302c96b388d680badb13c52821f7722e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + unisc = { + revision = 63178; + shortdesc = "Unicode small caps with Lua/XeLaTeX"; + stripPrefix = 0; + sha512.run = "41f9763e8d090ccf8669af560e53d0abdb4d3f81aaa8c88a97d3b72b8698e95b9ec3c81ebd7d863027f832a945fc11d7e225bb56711cd49b90d430107e9a1938"; + sha512.doc = "26e6907ee5f0d7e7093946cbb524e8dac63ed5c71f761875877a352f8f1454487a91ac46c6be16378c46540175d23d3d50a72eb32b3f3f96599fff9b00db1e48"; + sha512.source = "076c5e0cfa27c31226fd1d729ae8de7d0d009f6e4f3d4d1b9e1339e29ac2db19377d34d2c16b4d821bfca999b3c59826f3b263c6bbadf022aa24447a0ffcb85b"; + hasRunfiles = true; + license = [ + "gpl3Plus" + "fdl13Only" + ]; + version = "0.2"; + }; + unisugar = { + revision = 22357; + shortdesc = "Define syntactic sugar for Unicode LaTeX"; + stripPrefix = 0; + sha512.run = "01dbe995d32b49121e28163c11f89e51d4c692ab864b3dbe6305a0e4364c025b13751c137df52d24160acc9a8080fbee56fc7a5af522405c3d0564486c151260"; + sha512.doc = "8e6fdec36271f3561c768acf095b6fc353da07864829322dd0b52b1784d74793828951e006f8c56a9c38849b28ce186682d906bd7bc906739b22782db2102021"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.92"; + }; + unitconv = { + revision = 55060; + shortdesc = "Convert a length into one with another unit"; + stripPrefix = 0; + sha512.run = "2d1b66ee4ea2cc4bbdf18c5fb88a3f6c2ec438361d3e1cb058f9c3cde3272e40d471b48ec24749ab8fb714eca4b2f6e311c7af951744edcd04154c0f016ca1e6"; + sha512.doc = "f01593365b13c8447c6a0ca34027956c9eba7daf4921e5fc5815fead966916b70ba5d6429ab068b3f0bbe98dcec903a59fcd6982d41769b6ad5dc0db86d7b60c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.01"; + }; + unitn-bimrep = { + revision = 45581; + shortdesc = "A bimonthly report class for the PhD School of Materials, Mechatronics and System Engineering"; + stripPrefix = 0; + sha512.run = "595883fa58169e9cd7a860933f19847895ca02d3a684b71536dfcdff54c5fe6410e6cf6fab8ae9574cb9a9180ce24f3ddf41f817ceeab85d0c65684cdc9b3909"; + sha512.doc = "3049a0bfcbae6666f309979e2c2b8d52647d3c445992201afbbfa28684b83adb2a1ad5f227360c49826ba2de2cfebbc87195801c38413f5eb26bcd793b77ca61"; + hasRunfiles = true; + license = [ "mit" ]; + }; + units = { + revision = 42428; + shortdesc = "Typeset units"; + stripPrefix = 0; + sha512.run = "a1c3266bd95d8668d67e7dc451258f7a3a0362e4435ab70a574be5f7ac44bb5fbb7b30ded852602c73f227f57e8f7bf61af148070b9eae6103a982f726869a2f"; + sha512.doc = "e8a1d929e9817539a5fef6cd89c8d4daf60cc0495fc7698e4708eefbf60fd36daf88ee5cb668e9f1d53978d53253bb52ef6b3e6d1a313708022e5218c99e89d2"; + sha512.source = "a6aff8a5917b48ce17a62de74bf327e0bc2b4a8cfc8a77fde67cfa710d8715b0d8dda54837b3f895cd769649444691df5fafd9e486bb37f4e9af110584f676da"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.9b"; + }; + unitsdef = { + revision = 15878; + shortdesc = "Typesetting units in LaTeX"; + stripPrefix = 0; + sha512.run = "048b2d4f3b160a359a8db5a66b9bc3bf68545384c39c7c4964521aa2067a35e4524734e082d5bedeaf3ff52b6a5043717ca6f510cce0d041b0968968ffd232b5"; + sha512.doc = "c1e6de470c8b290c66f71020794fa5a855a0c9b22d90f629c8ec0f6ab110ff780c0f39291f0309348711cc2acb60cf52f38538da8894803cfee54f9fd6fdc9c6"; + sha512.source = "9ab403624c578eb8f33801309e8c7ab0bb0b53f5bd0de0ad912a5ed6955a5d3ea0d44bb43b61fbfe5cc60a667cd908f85061c92fd397931a2a4780d0af58646b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + universa = { + revision = 51984; + shortdesc = "Herbert Bayer's 'universal' font"; + stripPrefix = 0; + sha512.run = "f21f9bbc0c4e730cd1b115a5dbab22df9519d4a364045e292eae6b73741dabe0117c53759b7db7696c88241800970801335f7537e19d448fda6f72569c4eba50"; + sha512.doc = "3d5ae6da093d5671b369f7db4920baab6fea25e58e11926e2fffaedf1b0699885005f3d0158eb2a6afea9ac4f08ec63c577e99da7cbb75e33727f9a97c8157cd"; + sha512.source = "2040de94a8a45c28a6c8c50d16a5d72297c1c8680f778a3fcf341cc35622c46219945f89d6b5ddffdcbc32be29b93505624fa450ae202f3ec53d61befb0d248d"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.1"; + }; + universalis = { + revision = 64505; + shortdesc = "Universalis font, with support"; + stripPrefix = 0; + fontMaps = [ "Map universalis.map" ]; + sha512.run = "4fee20d63395348a021573af4e4e8897f267d69cc59dd7dd8e9fd6ec06041fbb00608dd3adc103b1886638e9783fdb010fbccdebd3ee7cf91a4b57dfd85b67b9"; + sha512.doc = "79c500724365b3fec6f25dc49dd019ca23d0d3bfc9889f75f10a090250eb1614549c8f3ef215102fe5d5ea8c317bd1f1b60557133be0afe376cfd74d73d67fea"; + hasRunfiles = true; + license = [ + "gpl2Plus" + "lppl13c" + ]; + }; + univie-ling = { + revision = 66728; + shortdesc = "Papers, theses and research proposals in (Applied) Linguistics at Vienna University"; + stripPrefix = 0; + sha512.run = "5ba91b2cdb6001a42426b77284aa68b82575997ffe1c5c62afedffd6a74710dc0e4af25df1cb4025a8ffc619376333b318a8be828490d45c7b55126e4c7848eb"; + sha512.doc = "bd576c575776ae2467f146f2cb344c97db797babce5c06a7785449010187a6ce8217b082ae84e0d045b543a4f3ba204f207d8c4ee61b7115f2b484ed4f237e6e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + unizgklasa = { + revision = 51647; + shortdesc = "A LaTeX class for theses at the Faculty Of Graphic Arts in Zagreb"; + stripPrefix = 0; + sha512.run = "ac96ff7105cc0a6eefa7a797b325c6e3cd7a0e59d31a6ead1f715d37d326450fbb3d39d6bc5228df5861c5633ab8be027f7652426c10e0ab23a2c9ab68bcfd98"; + sha512.doc = "00e373b284ea78d596519d982efe8d4c8f59f8abbec67c314bf361b1744d35fe2846615b8cb7d38e1516503c6ed49f9ea38718c31a760f3d19ed4a7686e8bebf"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + unravel = { + revision = 69308; + shortdesc = "Watching TeX digest tokens"; + stripPrefix = 0; + sha512.run = "36afdd36eac84c2421e745b4f21dd1f00e357769df37482fbdd697b7dc27904234e89dfe7c3c61313307522c7c06264290c4e805651024390af7700379f71ae4"; + sha512.doc = "05f27d954122d3225e43412518e3c76be1c9ff4a93f9d27c06dd57bb2f42974608960f931ebf1e8f82dfc717c51f82bcff4b34a480aaa5d0fa90504d6c7a4130"; + sha512.source = "25047c5229041ed87e062c277603be51687b1b29296a83c87f514a6630bc89f42979059251de8f8c1cd1b01c95f0dda23926097fafa1e6863a98c46e0edce874"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3c"; + }; + unswcover = { + revision = 66115; + shortdesc = "Typeset a dissertation cover page following UNSW guidelines"; + stripPrefix = 0; + sha512.run = "4080e5cb6621c3f265245540b22ae026e9c29c37739f7ae955a90ec107199bd2b52b9e2301330a630f535c05004ef762cf058b70ea5d44f65844790156379322"; + sha512.doc = "e3b10ddf23708fa8ea68a8d5d11152812a1832f4c8d87e03a697b81f69b94167d1ac8c70824d7434fdd022f4dc10bd823fa3c177a4f0a282cd60ec166ced6420"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + uol-physics-report = { + revision = 65761; + shortdesc = "A LaTeX document class for writing lab reports"; + stripPrefix = 0; + sha512.run = "ed6b2af5ee9c0ff53cd282b0a7c8cd26e07a5823f00abaa03471707f116f14e04c874548ccfabd2858ebb0c4bf56fe55d19f09dcf865521277cfa04491d3ea8c"; + sha512.doc = "117ed58415a3502e75d10d2f6d6a34d43180294ad9b3a33d12e971ac20e4092a4a50f815390c7f158e79b7f5cc246616cd84a07eb76a04be1286a54a78378883"; + sha512.source = "eca0d3706ae7428a72da99a7ffb123f471ba731f26d3260a5aa7f55b843d25c3ab837ded478263b78fb3530f7f64077488b52160806b248968f46981496e5ab3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + uothesis = { + revision = 25355; + shortdesc = "Class for dissertations and theses at the University of Oregon"; + stripPrefix = 0; + sha512.run = "8549715b39426264ae94d5618f13837bf20e48a350cfccc5642ff5e246ad84e04050e2def0780e8f3da69647d86b6795a009215da1277f43ab9a8a3b5acb798a"; + sha512.doc = "16af5c258ae738401885a1451675ace657e169deb37670336ab87ac39d30128c98bff91b5f9f6f2de9961d981b2719f94472692c5456913bada6e7ec6bbb60c6"; + sha512.source = "3b6a5f3ccc28877e4e48000ec88c480b70f5f454c481f970e6ba409fe71e19cee64293cdbc9fe46c8d0a498401fb2f46f2bd6c1662c3bf19a2c24e1c10c3895a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5.6"; + }; + uowthesis = { + revision = 19700; + shortdesc = "Document class for dissertations at the University of Wollongong"; + stripPrefix = 0; + sha512.run = "060684c777f377fcc98b371123cfcd9717a113deb0f7fbd99cdf6cec65e66b77fc44d50a3475c8b1e8071eec80c2e6b1c20437a4432d6d5fba208fe3f06fe127"; + sha512.doc = "00386265fd93cc89146fba04eff87b55fc250e3429ca5d769f006ee1e8c581fdd96702830a90ca4eeedd35e0d90305b5ce19dea6f16ef5600479d1fc1ab2e35b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + uowthesistitlepage = { + revision = 54512; + shortdesc = "Title page for dissertations at the University of Wollongong"; + stripPrefix = 0; + sha512.run = "3eca5009deb6ccf7daf6d31ffb5e6d3c08ff26395e03b80617411c4dc4049bb2ebd68628f285b95b547bc512fd1cc83246afd5513dc54cb1900edb813f77ede4"; + sha512.doc = "e5e2ec32edb38ea3960922c5f38c9dd9705914f49421b89cc1cb8e6f1d8213512c804c084f1883d1682d5c65b9c54511ec47cf700ca731c4bc352b0bc4e85ffb"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-sa-40" + ]; + version = "3.0.1"; + }; + upca = { + revision = 22511; + shortdesc = "Print UPC-A barcodes"; + stripPrefix = 0; + sha512.run = "3423a3a7d42273bfb28642d250d5000fd55d5cfe2dfb5ba0c2f875ced6c6df344866a5512a624dedb12d6bb9357f02a831297f4aba463dbd5e69e5e8dd9941dd"; + sha512.doc = "f19dd751bffb9ee92ee80f74f692ac410781e87817ee841c01f37bac87fc770b9fc97d488ffbe97490206899653d329034d82cf649de0ee52cfa4643f956d7de"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + updatemarks = { + revision = 69989; + shortdesc = "Extract and update marks from boxes"; + stripPrefix = 0; + sha512.run = "7d2f78253c7afcb0ae7e98ca467e6d00dafb92bbe232e99cd11f2756c3277d4bca1688e2d88cbd214580c99fac539c9d01af50115647d5609f239be906c3ddce"; + sha512.doc = "03595b62f116276240b44ef558fcc164e49c8d831dd068280b5f8be70caecb9f165ae3340c2824803ac829f38ea3eb143955a59c3ef71ddde873a2a873185ad5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2e"; + }; + uplatex = { + revision = 66186; + shortdesc = "pLaTeX2e and miscellaneous macros for upTeX"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-base-dev" + "latex-firstaid-dev" + "latex-fonts" + "platex" + "tex-ini-files" + "unicode-data" + "uptex" + "uptex-fonts" + ]; + formats = [ + { + name = "uplatex"; + engine = "euptex"; + options = "*uplatex.ini"; + patterns = [ "language.dat" ]; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "uptex-fonts" + "platex" + "latex" + ]; + } + { + name = "uplatex-dev"; + engine = "euptex"; + options = "*uplatex.ini"; + patterns = [ "language.dat" ]; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "uptex-fonts" + "platex" + "l3kernel" + "latex-base-dev" + "latex-firstaid-dev" + ]; + } + ]; + sha512.run = "920d770f36992085250b38bf8d58c59fab7ac8d121ad171612b99ec7f91369f9f31c24ba5e5402552e2fe073a3913b529fd013be1a70eb37913a9731caf69895"; + sha512.doc = "8024c2dfa393ddadffd5c35a27542d3f27a030464306087ffc28d65c2e0c704e56143f4f449f1d59ca1f19f007389256a4a23c2f2405855a5aeeeb11bd4b3802"; + hasManpages = true; + sha512.source = "7fe21c87bcdcfc7ba7221a51c59eafd17a767aff04a1f267682167962f2a75a34e12af5b035319b6e413ef1037533f2bc07e7b7d21cda63355ef4185844d51e4"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + uplatex.binfiles = [ + "uplatex" + "uplatex-dev" ]; - sha512.run = "a5a8a672e1753cd39b44dfb43b9b83673f7bd20dfb4e4640630ba0908c228dd75dda7933432d6d6f7e2c4920d554aa8cd41a523ebe665832edbc4aa7b8034332"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -zapfding = { - revision = 61719; - shortdesc = "URW 'Base 35' font pack for LaTeX"; - stripPrefix = 0; - fontMaps = [ - "Map uzd.map" + upmendex = { + revision = 66381; + shortdesc = "Multilingual index processor"; + sha512.run = "947d733e5b96ee6a621e9686357b8c3f8638c0bc482f4efaac87a72117160f81ad7aa0d34088e61e67982b345b56ec478ef3b6a49865ffb3d5512a7bf18d2b8e"; + sha512.doc = "ec4d1670ff84680fcab88e29ca5f4306f44450ccca9cba06282ad34bd026f74b46d166724a06a313957ca8d798b0c296e848bb248ad416597a99afb16b4b5a0c"; + hasManpages = true; + license = [ "bsd3" ]; + version = "1.07"; + }; + upmendex.binfiles = [ "upmendex" ]; + upmethodology = { + revision = 64613; + shortdesc = "Writing specifications such as for UP-based methodologies"; + stripPrefix = 0; + sha512.run = "97028afebe70eefb0d2776abf4c7a311b1d78fb1aaf7e19f625337669ef0f085c17f9d88c76c4771085eb4a2ca1a05ec04078750fffb2904ceed8210f78be75b"; + sha512.doc = "1931a840502d230b991078f5c35fa4dc482bc57c488b8941a5cf7b09a9aa98c6a993fe508227bfdcd0a03c421d498e3b6a3d8af23a200563cfb420cba019712a"; + hasRunfiles = true; + license = [ "lgpl3" ]; + version = "20221004"; + }; + uppunctlm = { + revision = 42334; + shortdesc = "Always keep upright shape for some punctuation marks and Arabic numerals"; + stripPrefix = 0; + sha512.run = "522b68bd32887ba14ecd927c49c5fd57a84a1c0f9b8a0bfad65a4d377b68a7bd449754dd411a72fd83e5736e32e2c47cb1f54155f72395c465e4e09ad1d09dea"; + sha512.doc = "d0f67dba683a40a6392121cd53b58df6d7ec6ffd8bf52df60f53537fc1b389de178dfceb1e772dfc9e292cc543448dac3a85cc6b712283b384ccfec4655c988e"; + hasRunfiles = true; + license = [ "gfsl" ]; + version = "0.1"; + }; + upquote = { + revision = 26059; + shortdesc = "Show \"realistic\" quotes in verbatim"; + stripPrefix = 0; + sha512.run = "06360c313124487f291a8daf7399a3139cec8c0a05be12724cedb3d60393ecb07aa31e34f9b74a83048f5752a8d826505f91f2c85d34348264975b48a1813fab"; + sha512.doc = "4b92923e8af2dcd65e82269994c766b88c6f78f6e7b8d10b9f44889832150711acb0cbaf467d595d6745863f385569f7eeccb4ce69df8361e56910969532e314"; + sha512.source = "dcb227a6ebb481e9c4abb9f9ddacafda03ae4a445768a3a242c6dc3bc79f83e9e5f185db4d353916b4d50f5aefa9884bc52fbced79894e1c00cd7f40f0940884"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.3"; + }; + uptex = { + revision = 66381; + shortdesc = "Unicode version of pTeX"; + deps = [ + "cm" + "etex" + "hyphen-base" + "knuth-lib" + "plain" + "ptex-base" + "uptex-base" + "uptex-fonts" + ]; + formats = [ + { + name = "euptex"; + engine = "euptex"; + options = "*euptex.ini"; + patterns = [ "language.def" ]; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + "uptex-base" + "uptex-fonts" + "etex" + "ptex-base" + ]; + } + { + name = "uptex"; + engine = "euptex"; + options = "uptex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "knuth-lib" + "plain" + "uptex-base" + "uptex-fonts" + ]; + } + ]; + fontMaps = [ + "KanjiMap uptex-@jaEmbed@@jaVariant@.map" + "KanjiMap uptex-ko-@koEmbed@.map" + "KanjiMap uptex-sc-@scEmbed@.map" + "KanjiMap uptex-tc-@tcEmbed@.map" + ]; + sha512.run = "fea7d0156a1f8b8a66fc061d454c1318fe98e6c1a3c618fd9e31fda4246c7a55684df6e01b986d0c296a7a9458c3489af0e4bb2142341a95e5279da97668b4a1"; + sha512.doc = "edd326824f93b2e893ac9bc7b6f498178427477138c2e068a3cffddfef5ac658cfad2671454caa6c222bf165a2d4a16964fa67eed86c01342d119053f31a3fa3"; + hasManpages = true; + license = [ "free" ]; + }; + uptex-base = { + revision = 68298; + shortdesc = "Plain TeX formats and documents for upTeX"; + stripPrefix = 0; + sha512.run = "793b51b536fe43860fa096d590bb64cc079f089effaead0d97262d1476442fb6212d30fba092a207797fd6508bfa24c3c3ab448ce4d531700fd8cfb08e4e8c24"; + sha512.doc = "93332d9861526dba5c338bd14a20cb7e6e95aa6666417aa92dfa99200ea735d8ee0b61d8da1eb09c758b9b179f613c51a725abc997275905b3a832580302df51"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + uptex-fonts = { + revision = 68297; + shortdesc = "Fonts for use with upTeX"; + stripPrefix = 0; + sha512.run = "1802a5ff347ee4b9eabb93e4da5881a19b9861e3144009839d7779f61bf362dfa5be2a37b42b64041af7083ac756aaf788ad9a69cb4ba97887b21e78f6a794bf"; + sha512.doc = "5cfc4bbb9ba533d38bc52e5274c0cc42bca2a2cf6c3ddb623eb4f48c9a49275b2a6959311935fd3e1ca32ce775da6bf0c531542a49c31039c438000d1d15c8ab"; + hasRunfiles = true; + license = [ "bsd3" ]; + }; + uptex.binfiles = [ + "euptex" + "r-upmpost" + "upbibtex" + "updvitomp" + "updvitype" + "upmpost" + "uppltotf" + "uptex" + "uptftopl" + "wovp2ovf" ]; - sha512.run = "3e0503c2d4e30c8d727caa1d9438d4c6b12c3a15729eae65d5c4a8dd9ab0d0c8eee2f63138e9d267f4ae98ef7607388888f7acd78e189a5c322bda22827166fe"; - hasRunfiles = true; - license = [ "gpl1Only" ]; -}; -zbmath-review-template = { - revision = 59693; - shortdesc = "Template for a zbMATH Open review"; - stripPrefix = 0; - sha512.run = "c9685b151679e7516e146f3d97f4242c7cdf084f84a7ac857a8aa27031c60950d0da07d66b7b57d7bdec384d3501c30b339231654cf845bbed2945b0ac069368"; - sha512.doc = "470ee6c9895effd3c6bcac5a9faaa3862380bb137044411dd0013f4f465dc923dc1de507f2d1d087fb4b4178cb2f43f435e71b090d55744a8be6e59f8cc010fa"; - hasRunfiles = true; - license = [ "gpl3Only" "cc-by-sa-40" ]; - version = "2.1"; -}; -zebra-goodies = { - revision = 66630; - shortdesc = "A collection of handy macros for paper writing"; - stripPrefix = 0; - sha512.run = "c740469e5a27355fbe8c781d30434724b8c77216e88c674854dd71e73e38ba78aeeef251a25e756c4046230eccdf334abf6d5f378bad559691a29955cb0eb16c"; - sha512.doc = "c4bdfba7e426c95599c4fe2cff06ada80345490f433eb636260ed5ce322c1c21c0b5de0c4709be415b6b98668b7c514610375f2bdf9831248be0095e1ff28dc2"; - sha512.source = "ec961bcc2d7181450184bdddbe0f0c1d5100bd6fe2294722dda239d8979f6c8d126fd4f52cce371db8227aedb1e1da14eaf1457ed12e65d33ccce6f23148ad8f"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.8.1"; -}; -zed-csp = { - revision = 17258; - shortdesc = "Typesetting Z and CSP format specifications"; - stripPrefix = 0; - sha512.run = "2f41c5b28e602aa88146cbbc172eb2d6c6f21491e45622c4c1688b9a8acb5be304a8acde842bef84f7a238109ac9ebefa31844826387b266f14faa6a6943903a"; - sha512.doc = "e5e657656e46023e32366ba415f46322f4c9b4fe0e69f03c88d4e5fcdd577e3436be6436424f502c3807278efe3a31ab7cba3020ef3c9e44874de3660dcccd2b"; - hasRunfiles = true; - license = [ "free" ]; -}; -zennote = { - revision = 65549; - shortdesc = "Streamline your note-taking process!"; - stripPrefix = 0; - sha512.run = "94f1e1a0550005c25206ac3e04216d35bc2b769b735160219ca246c95a85db5002bc74641e45152a31e8148e4d581bdb0024a3174eb735537d39ea1256f34365"; - sha512.doc = "a2351fa77ebdbe035a60750c1362d6a04cef67be244ff5ce2f6a38cc6b8c3b5b96f4afcb15c43866393911e60446be6f5a4d384852a8a10101abae38bd309fc7"; - hasRunfiles = true; - license = [ "cc-by-40" ]; - version = "1.0.0"; -}; -zhlineskip = { - revision = 51142; - shortdesc = "Line spacing for CJK documents"; - stripPrefix = 0; - sha512.run = "c1e92d164d0b46ca1165775e5c17f72687cd83b6efbba95dd58fe55008877ab3f08bbaf90d36d491ec861705e9d15f74511c8a0f9cf66ef8bf5127d7aa2cf203"; - sha512.doc = "794822b3b89aec655af2663f3dfbe848ccac9fea8369f446596562178e73c01ddadcf1ce46fd1811e4b72a25917c310bd42e45f9b16a3adb897304ae345d5415"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0e"; -}; -zhlipsum = { - revision = 54994; - shortdesc = "Chinese dummy text"; - stripPrefix = 0; - sha512.run = "d62f2a16f2303db7846073b215b3e8f822b7470510eb84367b1ba177c971e587adcea92757a3a4f5612abf103bd11cc8f2ae3ab953833365fb2255ee87563cb8"; - sha512.doc = "dcd0d706d9e402ad1b4eab910294ac4e802a58c2e54a3ee19b6dcef9fc3e052b84b559f452bb32b78d27a99e65a0820d2029e53079ce21068618f5c620f9502f"; - sha512.source = "92054c4839953e84a15abc6ca280ca2d755d5854b284c30521f17e54528bd4c369e9298e596606c877ecc74533fa81d8a8d544c2819f14d48157ee996a26a922"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.2.0"; -}; -zhmetrics = { - revision = 22207; - shortdesc = "TFM subfont files for using Chinese fonts in 8-bit TeX"; - stripPrefix = 0; - sha512.run = "abc0b873b5abb0b053fb59d8bb831a835f90cd8bfc2cde87d1031dba2e31db8721e3ea1037e7322b33ae5216dd65bd01008fb769eade0c9b4815e8ea7c55615c"; - sha512.doc = "e77fd912d10d8ab535c366f8e5b99e996607788b9ede295a3d7739fc4c14e0679c66c36bdefe2ce5433967b28b2ab228c332d9b0a23a841d42d3fa56cd204040"; - sha512.source = "d505658c340bc3824332ed473927bf971612204e69c56839d4e0bd0b6ad4b84a975fe32e863d12d2e0ecae580edd06c3ea0854b90cf762aa9ad6106d2f2afc1a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "r206"; -}; -zhmetrics-uptex = { - revision = 40728; - shortdesc = "Chinese font metrics for upTeX"; - stripPrefix = 0; - sha512.run = "1e068a0b402a5c69b44a86d797cb24266b2883c698decd8b8464c99b131d292cc5ac44249ba8e89dc0a414d6f12d73d4c069ffc3081cfa4b9926ca412bfc3dd6"; - sha512.doc = "f9ac2953877cd830e1cf3402f3f2bac1f8159d05a4a74e89047c494ae04dc8930f1c09701f83871b4361976572ae7d1c5fbdaf3af3d9e6db12347a207f1b82cb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -zhnumber = { - revision = 66115; - shortdesc = "Typeset Chinese representations of numbers"; - stripPrefix = 0; - sha512.run = "080460cafa9f1b382d5843e7863eefb36a26abcdf8ef97d9a23fe4e68d1bf85e0e6a38c7201d1dbaf2d25acc7b846d757fab9f9b850d992a576b6df67929cb55"; - sha512.doc = "c8f6b76b72f7b7bc19f2e6fe64191b86c4b73fa7559d3299945359a7d2205e3685c4eee98283f361207192fc35de0a7ae9064e118e20f96f832d18eacf93bf70"; - sha512.source = "7a79592cda187221d2832db12e45923a03f110de7ae358304048a52d2e170853421cad0a50211c0894b700c98301cf949f1def35acacc7cf2d23789ff23ca4ea"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "3.0"; -}; -zhspacing = { - revision = 41145; - shortdesc = "Spacing for mixed CJK-English documents in XeTeX"; - stripPrefix = 0; - sha512.run = "52d1d3523ae4c0d2dba5258b06cf9920f8a9005df7e03fd1407dd8ae2e4dc90768aab10127319ef9025765820b3ebb8a946ea0373114c9148a303517b563bfe0"; - sha512.doc = "7fd15e4f29671081670e881e9366ba627f5bed6d981fa0ef1c670d0744e1286c04e785e28b92279d66af851803d84949c2f463370f23c64987fea78531172128"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -ziffer = { - revision = 32279; - shortdesc = "Conversion of punctuation in maths mode"; - stripPrefix = 0; - sha512.run = "3d29074642d8a4c63046347a36f47548557de92a64ab4d6b7d1cad87f97a9e25a09fe84cf699a3bf2129c4de00dd3ef3593f85056e8f38a9a2d1ca27c549cf96"; - sha512.doc = "8eb75b54a6711ba0d0ad30343f253eabf88b3752de3112b13b96e4182119ef5f789916c413a5ca35ba7bf6619eb25bf64e7717844e4b9a49d33781d91f5b14af"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.1"; -}; -zitie = { - revision = 60676; - shortdesc = "Create CJK character calligraphy practicing sheets"; - stripPrefix = 0; - sha512.run = "10769951705e67bb929643e39d5480c4c2337a68f59ede2d77b2f8ddc3e2d6363c873d0e8e480a85e02f2062736570fa74171c862e50af73efa941a4d93cdd58"; - sha512.doc = "84f8e20beec5ba5ffbd79c6ffa68f0530b285761a8de6ed53e621ef39c0c14f59c33d76373581f94f10b1149a9fe5c92c1c74bbe2c4d6b8aa589d3a574bd9153"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4.0"; -}; -zlmtt = { - revision = 64076; - shortdesc = "Use Latin Modern Typewriter fonts"; - stripPrefix = 0; - sha512.run = "ecd45c407db5a78d31f6bcb7be6184531a51bbf89171c47f2e5178e65b06db4595682c713a977ece1cdbd98fb59b551baef3cca527b22f98bb45b37e73407144"; - sha512.doc = "2bd3ce9fde985f319bfb33ed791524bf81ce2ad3797fabdce78bbc4f4884871d5994e6fd9737ca3ae40953613aca70b9ef399ae914a40df54c91347ca98aef98"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.032"; -}; -zootaxa-bst = { - revision = 50619; - shortdesc = "A BibTeX style for the journal Zootaxa"; - stripPrefix = 0; - sha512.run = "80816556a2e23cfd8345b7d22224142a5448105ccc5c1143f33c4560a4e4ab432115c2fc47c5d4c6ba599031f4c36b481465a5fa7b32afde888beac69a6e6c62"; - sha512.doc = "f843aa27ab0c2139e1051aefaa9b667f2de489cc13578200ce7db2bdfc2397888856c6cbe68b6fa201e0cb269bb95818cb31f1b03622c49ebdced23fa5960d65"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.0"; -}; -zref = { - revision = 68278; - shortdesc = "A new reference scheme for LaTeX"; - stripPrefix = 0; - sha512.run = "1c21d99dc4f1627520914ed3620606c724f22754662797b93c4161aaf3e36d5a42a586ae7e4b227cdf67d55c88d3979635e78661d7029f1a5967c503a9f9dde5"; - sha512.doc = "24cf22b54cb13e1458266f4962ba589fa9385f3b8d58493747824d815c372cfa6fa8a8a24d0310264b299ce43148ca001b5c6b73961d1504e1ab6e8a4ac246c0"; - sha512.source = "251cc99a193371ca0e11d1690ce6ce545cdf077a483f81d2d5ac5c3495b24c25f383ba6b73e9607578adb0940441247ac4027c7719d2ada0c1b77f7876f9767a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "2.35"; -}; -zref-check = { - revision = 68846; - shortdesc = "Flexible cross-references with contextual checks based on zref"; - stripPrefix = 0; - sha512.run = "98aeb6007f1f599a2bda644c60c9929ca27c9045d73af3d54298837eb842e7976a2f9067182ce38c77ff197e2fe36a53207d2aa39adaa9deeb4e118bd034b0e5"; - sha512.doc = "d050bb4a6c68a80eafe3eb7f99c61407424385743785014600404397e6fa322becaf3a28157f59951a2406fdfb66968f3cba9de4e388282ea0c84e3f33d4fc8d"; - sha512.source = "a84246193d390c55dd66d65b64eae79e52099e7f7c75b8ef03d595d466d57643832f95ff23ecdc2dd0cc31b7c5cc64db361bd5ece7949e544936739b2c70e1bb"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.3.5"; -}; -zref-clever = { - revision = 68846; - shortdesc = "Clever LaTeX cross-references based on zref"; - stripPrefix = 0; - sha512.run = "d7a32fde3ee94e304f854f690756ad9d15a9287c1dd38e1707a1f33e2bd30ac23147a439990ba7e9f7bc0b2c5b37b5d475bb64f2ab89bb15752bfc0e2f9ad3ac"; - sha512.doc = "c18e86417db71ece26e6a29e0598e521d17a79c26f5ebd92dbd78c427142bb992df9ff39c0a5867dd296093036615bc319aa9dc970faa0ae0d4ed479452e1b89"; - sha512.source = "3ff30e4c2ee570c5c142542110699ec17b123078c5d01ed9de2781404026b120856d38d4cb05160bd90ea56063e220e09dd46158d938a70416488797855a1fe3"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.4.3"; -}; -zref-vario = { - revision = 68846; - shortdesc = "Extended LaTeX page cross-references with varioref and zref-clever"; - stripPrefix = 0; - deps = [ - "tools" - "zref-clever" + upzhkinsoku = { + revision = 47354; + shortdesc = "Supplementary Chinese kinsoku for Unicode *pTeX"; + stripPrefix = 0; + sha512.run = "03dcf2b73ca644f8e9e2589082d49a4d502adb51944fcd9ee5cf737ae782611b35ef2eda4242b7eec2b8033014ddbbbea3abb52b1bfe90be9cc1634345223d53"; + sha512.doc = "d4c038d864b40603281f3186e21110ec96530e84a9ff88be4241cad165d09cd091b28bd768ca8ca0a28575dd850bb68ff88ab553cf9caaee6edd8d311c6fc9e2"; + hasRunfiles = true; + license = [ "knuth" ]; + version = "0.5"; + }; + urcls = { + revision = 49903; + shortdesc = "Beamer and scrlttr2 classes and styles for the University of Regensburg"; + stripPrefix = 0; + sha512.run = "5b8c80a756e45e5b847c3b970005b866f6c498eff7646155c73a9b86585dffd73e8dc66d91583dd691c910caccab60ee22a1e9dbe3aa450290fb17f019477172"; + sha512.doc = "40b8e4ea2abcc82acb843c692d90e964932f1ad7d0e818d54eeec77340f49686aafcf2fcf3f8f4d942f7cd967754ab24ee2075c6906862266f5af56251063fee"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + uri = { + revision = 48602; + shortdesc = "Hyperlinks for a wide range of URIs"; + stripPrefix = 0; + sha512.run = "402974f30df5a00118d4bd2e978f342cdcdb22119059dbd0c1b2111fd1ce94ab8a29ceff88672c80d18a669d5440bd48dfcd23fa07844f492e5f7e0eda1671a6"; + sha512.doc = "b2cc8cbcbc81f0c3db349952546e60c152044aae264d4b30aadb6b90b7aa5b304c89203b6219bb5161807bf1e4649235d2f98a60339a0cb93a588852a1755e00"; + sha512.source = "0206e0d2907f3976fd605d78284a44c909ff23f16ce9b2490556136099e56a374bd410e1c9bd5687bb791334612af1cc5a62a8b53f8c7876bf02d921c9868a68"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0b"; + }; + url = { + revision = 32528; + shortdesc = "Verbatim with URL-sensitive line breaks"; + stripPrefix = 0; + sha512.run = "164fb94cb128e997031bfdf8c602892d78813694f39f4b95bfead8a5b7e3cd9a0d9596dbe697e012bdf84b89c2551c2f2f1c7f99d4543e357edfaf2076b9cfba"; + sha512.doc = "65596e0ce813233491959ef161be8570450c6c71c787b3253d0bce503558e63902137a6d337ad1e7cd2499feacbba4a93b7b75559750d05d7898ff2527f1240c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4"; + }; + urlbst = { + revision = 65694; + shortdesc = "Web support for BibTeX"; + sha512.run = "25d5655fc01f98a1414aa962d8ad924464835aaed993e3bb5a749721034aacb559a4ca1590d353615734535ac91d31abf7b99004f6298525ac618f35bfcb0fd0"; + sha512.doc = "897c866ab03bdd5ab741537182788c5f484009681d6fb98f1149329068be707abae7ef012c0bd0170e2b4b673eaa63b46f5d0d55714015e8a451457f5a6c540c"; + sha512.source = "5bbad9719daeeb8c03e7db6ef956881994bc17d7ced9b45165ad45899a7230ea8c0ceeb23d209d36535d2081b6b611d46c19b1f0f03e8fbae1788f31ab09e7bd"; + hasRunfiles = true; + license = [ + "gpl2Only" + "lppl13c" + ]; + version = "0.9.1"; + }; + urlbst.binfiles = [ "urlbst" ]; + urwchancal = { + revision = 21701; + shortdesc = "Use URW's clone of Zapf Chancery as a maths alphabet"; + stripPrefix = 0; + sha512.run = "beb82950bda88e7170c7ad753e93859f96190f30e89fbfbe1cdbe37930b07740f70da40124639c6ab14be93fe79c5e87b35296b68c702888d3e9e25100e86a9c"; + sha512.doc = "8f218f76d45a2f3ea9be173ba1c6efcb8a7cff26a43149b7e0ef4fc535a4638cffe69358d8ccac44a3306044720958ea9189996e88a38d560d264f5fba6863ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + usebib = { + revision = 25969; + shortdesc = "A simple bibliography processor"; + stripPrefix = 0; + sha512.run = "94e0ded0c7e7ac10f2d8ff9324afcfdd2dad8247cf31cd6b404d9c2b12e223e6f435ec9d3dfad0ab510b943050444f5206788540a948e44f44c5d011596cd34d"; + sha512.doc = "3b489185729ac7d93ebbfd632b77eeb865b39043b2b68d920a6ef561ac55701a44d362b84c1fb83a2f59770442a655b779c6e49287c9d2859c44140e61c543e6"; + sha512.source = "a0c64ad5a7479da4906b848a31ceb02b047a98e8e2c505ee748f2eed4ba27dc8b6d89d8ee3a171566417315cc2b83810f514f1a0c11f1bd4a28b57cca03676df"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0a"; + }; + useclass = { + revision = 70447; + shortdesc = "Load classes as packages"; + stripPrefix = 0; + sha512.run = "d1343768b6e6f89a31c437983db7d2cf2e52eff35054604719b08c5ac9ce9ce936982ce7885010e8f4929208a944746e07f28090099eec3ac3955bbf6805c396"; + sha512.doc = "9904c849d24426fb3139d92a0a502af362e12bd8d7d993da422a0e5a0ac0984d3a6f8504d0fdf88e170244877300efa1b366ad11e2683db75edd6c7fdc8b2a1e"; + sha512.source = "c9e2083c974e78991310afa76d9b49ea5fb8bee62057aef1dd0f92fe1e26628b4bf0fb7e0dbb1d3dc734c307b8b6cf536d38e0b68ce825ce5b7605e0b74d76f2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ushort = { + revision = 32261; + shortdesc = "Shorter (and longer) underlines and underbars"; + stripPrefix = 0; + sha512.run = "2ece6efb162a13c37413e4fe2eed33ab7982d681fcd9435ce53248dc4c573cd90ac51293424385aac29b84159b34fb3f7fde2bc8d39eacc71f0ecc91c8db7af8"; + sha512.doc = "d262bb270e41cb7d9378d42ec075a81158d401b737acc7788722ea7e99d896de1eb98c04a65e733d6e83f6229a9703f72bfd0a11e36e52d4799e82e19c102d5b"; + sha512.source = "a26cdd79055b74cf30202c162fb38243571ce2bac990ea44a0eecaff407951aebd5ff4619cafa6190ef8ba6101d86a800262ad1b09972dbf7b207398b82da672"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.2"; + }; + uspace = { + revision = 63123; + shortdesc = "Giving meaning to various Unicode space characters"; + stripPrefix = 0; + sha512.run = "cb830007a35024a6fb7817f186fd0c02270c1cc639240f2077b10193e411f207ecb744281540dd6cfb1cd830424d9a5256fc7cf5a315adcab082b6f69e7da1d9"; + sha512.doc = "894c14ae766ada6c0eec7b3d5a2c64931a011560057fa3732eb32de0bfabb6cfedcc27d73235dfe8616e9e6403cef563880bbb66f2ec2a1244da95c92fd2002c"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.05"; + }; + uspatent = { + revision = 27744; + shortdesc = "U.S. Patent Application Tools for LaTeX and LyX"; + stripPrefix = 0; + sha512.run = "fbcce7a06cc018dfba47aa7e9d572003136d5b179e957f10e2bb42b2635ef4cdd40bbef19e8f827963d048eadb23a1aeedcebc87cf128f5b28cb1ab281408b90"; + sha512.doc = "e0eafb5fadeab38da049d0d5cbadc8fa3dc3c335afe4fd5289fe30de38f0898cdd9dee091b703f6a853eba56b32b161abfe56b3185c71512c9374585e6d9784d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + ut-thesis = { + revision = 65767; + shortdesc = "University of Toronto thesis style"; + stripPrefix = 0; + sha512.run = "a5a9c3028582fd2c379f00adb5d6abc650d0d89c3a802726c6e4c0e86f9083c445a9a431bec9be956ef242a0b3051f32eb5b63387e2fa380961195cca8d3832a"; + sha512.doc = "d1e28a7d927620e259caee4c4affa8af9aad67089a0886f098ff85d96bfa473863aa4c9f6ef225629fe3c97b7505a9bb73802ef861c4198002ae1af4456b1cbc"; + sha512.source = "0ed214fa702923f6a9599bcbadd0e670545d308c32502ffeb4381e64d2f5aec4cba6b74f44e208789d9626d160b111409b5b70c46b3bd9d311d9294a4b57df80"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1.7"; + }; + utexasthesis = { + revision = 48648; + shortdesc = "University of Texas at Austin graduate thesis style"; + stripPrefix = 0; + sha512.run = "829826bbc06bbd9b8ffe585705856bbe4bc99973bad7bedd489ff23fad9cc19c4f33beb88756644d76945126983586fdf78eabb305e353cb8bde8341a3d20fc4"; + sha512.doc = "65e3100a6acd2a02df2e95834e5e99d718cd0b73e20ef6da839cbc9831918f63a2f5b38ad888a5068b1fd87ad71ac480754d5e6b459465cbb6238d4a3b3c09b1"; + hasRunfiles = true; + license = [ "cc0" ]; + version = "1.0"; + }; + utf8add = { + revision = 61074; + shortdesc = "Additional support for UTF-8 encoded LaTeX input"; + stripPrefix = 0; + sha512.run = "988d720d5f4dac3d15e7483e1ce904f214055407c41c19ee7c2683db592ef870cc9a87d28f47092cd062b5ac5bd061b68738046dcea919b0aa9573b0c31a04c3"; + sha512.doc = "c1f41ca0ea536db11e2e6c1df561e74f8bc51da3147410f7f33863d0be1d38948bcb64d0f4d8c41737278435d2f88b8ad758d2c48f1672b682169de5e0099b70"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + }; + utf8mex = { + revision = 15878; + shortdesc = "Tools to produce formats that read Polish language input"; + stripPrefix = 0; + sha512.run = "0cd4c549c7b00939dec5055705658f76f6ebbe5de70e082652b761673ba5a249924fb862a319512a9a124b9cdaae8906c74439bba97be8825d4d1ffc70642c8f"; + sha512.doc = "cd438089d90faa0e9144d23adb78ce91d85b80ce084cb92511cc23882c675cb654cb704aebeb623bb29c70b764c8a0ab19915607664895c457c583f376c1088e"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + utfsym = { + revision = 63076; + shortdesc = "Provides various Unicode symbols"; + stripPrefix = 0; + sha512.run = "66dd74f22a26022eb13ff7a8807612d33a978070f86ee5e0eecd9b957684150985e6bd6bdb81c8917781926a0e8c13f9310aec36e12b0a896a353194f0a900b2"; + sha512.doc = "a70bd657812f64e79f028efb591888863ba5bbc0d7f16a9c70fc1614d21c0fab9d4de2545288b12c7d6c885f489b5b0062e739e531595b8673bdd4a7e1da653b"; + hasRunfiles = true; + license = [ "cc0" ]; + version = "0.9.0"; + }; + utopia = { + revision = 15878; + shortdesc = "Adobe Utopia fonts"; + stripPrefix = 0; + sha512.run = "5f58ac6dacaddf4110b2ac2f77fc0da90d5cfdff26d888b26af06cd6dd8f483c7a6a12e0aab3f50d4188aab9ab649d993ad89e74898d54c14b3de4948451279b"; + sha512.doc = "ba60eaf55cc08378560048ebc6f735e743449a18d2822e6027a86e595a9634461713ceb37d15b9f0c8239f1935f910bbdbd9a0d0d6fa1683174739f91c16a504"; + hasRunfiles = true; + license = [ "free" ]; + }; + uvaletter = { + revision = 66712; + shortdesc = "Unofficial letterhead template for the University of Amsterdam"; + stripPrefix = 0; + sha512.run = "df759bb1a8acc3a770d9c4f2753c7968ec2a4bcdb2f8d68cd97e25e36a1a72e4ff5d16da3ce69059679eecb10d5de56464297159c7d3b0b8e16684b5cb97108d"; + sha512.doc = "d5e076da3feb4904b0af7b6be1db59c2454784f5d9679f6f6cbde3cabde6b70b075d83126313f5938dd9d153344986a6e8b574e540b39c4fba82d513e2d61b61"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.1.1"; + }; + uwa-colours = { + revision = 60443; + shortdesc = "The colour palette of The University of Western Australia"; + stripPrefix = 0; + sha512.run = "c2ec752b4cbf80f35787db83a0d227306689b1ba9bee6339bb6c2940fd938ce33daa995bbad2c58ed9284143ad3f45aed6668dff88134878cf115968c6820a3c"; + sha512.doc = "42745187e02211f149c74c82e0046f42eb5c1c6b01c39fcc8f0a52ae50613646b216355f29d0af0b6536558c2689b2eb83f31c84d29bc007de4c8f9d78ea6d43"; + sha512.source = "e03bbb8bf8f7684c02623d9f46187cd0b4ba282b1971679927b633ad2b987748c3f784caa6eb01054422f91f2703e2733dca0bdf2c89902ef61321875e2e96a9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.0"; + }; + uwa-letterhead = { + revision = 64491; + shortdesc = "The letterhead of the University of Western Australia"; + stripPrefix = 0; + sha512.run = "f9e4b88e01528992956abffcadc5614ea0a250283b0bc87709e228fdc394b58600c7cd41d4c9d944a6cddb66b9a23b8ad3473f37de8cb566aaca218d348fcce3"; + sha512.doc = "63a53dbd15700956d199ec147ccdf5c84e821e2a19ff46209f869a5656055fa9e4654746cb7f89b7cca1a3927c64715008846d87d85c8ffe6c269056b0d7a6c1"; + sha512.source = "c86680643bbf04636e3a2cc581ddaa457d48a6dd7d5a7344480a1b1340b27f3fc23657422d5ec44200ce9fed77d1f705b85fee5ae4cf195481eb8c57fb96729e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + uwa-pcf = { + revision = 64491; + shortdesc = "A Participant Consent Form (PCF) for a human research protocol at the University of Western Australia"; + stripPrefix = 0; + sha512.run = "290e29b50c9842d87479c3ace96368ada1c0561e12b6c09d8b562a134a935511bca6ea177ec863e0c57339b90177f09a5305d41f741b821a621ef2a80af32aae"; + sha512.doc = "22268ddb91b0490a9df9805803c831ff1f4259311b1fe02103658d6da69b0ec474bcb3b7b918aad23a365c343e1bab3124927d36c86d06bf3e91e021d8a9bbe4"; + sha512.source = "cabcde080b1409d27212c2a9e00432a19c68b6af3a8304695a47311ff83745d22612c0bb967f58485e9d030700df47b97425627b2f2e2365bb57c6ac0fe33884"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + uwa-pif = { + revision = 64491; + shortdesc = "A Participant Information Form (PIF) for a human research protocol at the University of Western Australia"; + stripPrefix = 0; + sha512.run = "d16d72cece1e8d98495066ba0b55dbdb51ab4909cad1b99d9d11534dcf1c57bd3b7ebfef27b2825ca24bb0e19bf4b8a6e9a1bb3b28fff061377e90c8c0afb52f"; + sha512.doc = "d14e8f6cb0aea97df72cd801e474f7062411a15e31294a032d6e0d33f084f0edcde6b1e7d0319abfe0881de9dfaabfe89fa444f6e846f1a27916e8377358c310"; + sha512.source = "27c47feaa89b3820824761d67d56a0f99033fb42d987b807b29624448c6f61dd7383eb16b3cebc23f899fc718e62767a567a914bdec3bf012570a8ca6cd0faaa"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.1"; + }; + uwmslide = { + revision = 27354; + shortdesc = "Slides with a simple Power Point like appearance"; + stripPrefix = 0; + sha512.run = "a4ee1019a36a66abb6614dcf6ffdd9706b705bd18a19d34fcedba441c355ce3a7573ea0ee53686b325c6d6b485fef99dd1254118d1cdd1603e1597b0fa17b751"; + sha512.doc = "7560c214913e9dc61d01ba8528e1bc147a4f261995294c8c938ffd853a9b6a174c1d1d47e49fa20351ea45d61dca03ef7f0ff085e8725820c24d2895a0d17530"; + hasRunfiles = true; + license = [ "artistic1-cl8" ]; + }; + uwthesis = { + revision = 15878; + shortdesc = "University of Washington thesis class"; + stripPrefix = 0; + sha512.run = "07bb8a3ab65110aef8de3b606ca53060dc8f29c76de55a5a84e87d43fe0e09dd16b48ec09b9a451f2285c06450ad059c4c3f9b8d48a21572a1bffbe2ee512a6c"; + sha512.doc = "278a7ce5f0bab547de0c8dd4a26dc270500baf8abfca1ff1a8e76283fffff4a73835fbb1daea2f6864cb9dca3e0fff297887ab10305c6a87ea1d7384d964a9d5"; + hasRunfiles = true; + license = [ "asl20" ]; + version = "6.13"; + }; + vak = { + revision = 23431; + shortdesc = "BibTeX style for Russian Theses, books, etc"; + stripPrefix = 0; + sha512.run = "b7606cf33b8e9d14f4ca4cced0620810eecc469faba959728d3b4d7f8d87023d600fb33f1739ce0e7d14d4a54936fbc682a54d8ad8c6b514a1f2baed2c79b2f1"; + sha512.doc = "1e6f148de79c2ecb5fcd03ff1509c3a509ee40795af0e7f7a95fdc64c403f2de7f9d9ca37716b6488cd496e2be0565749222ae95f8b97e5cf7e05b3877bb6d62"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + vancouver = { + revision = 59192; + shortdesc = "Bibliographic style file for Biomedical Journals"; + stripPrefix = 0; + sha512.run = "9fd38e4545902a8f715e2912ce2046a679476f0a91ee76af74213b65689c4e2c01aa68ea8fdb09d93442097695443a2be0d6169dd50fc8ec63a7f9fe424ea739"; + sha512.doc = "4bb074a9ae48d6e565b1b60dfcdec4b6fe35e367639c3737e68e4cdeb9ed9017b17d57ebe895865b6b0f63bb7d66df5af08360d149aa5f2f7c604bf90faa9859"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + variablelm = { + revision = 60014; + shortdesc = "Font definitions for the variable Latin Modern fonts"; + stripPrefix = 0; + sha512.run = "1c34d4afa65db4993f3098cb32b604c68a75bc2c0b56b026a6d50c2de61392d4bace210dab2fb5ca0c15253e7486406aa3aa5084e2296bd5e8f1e9c953419627"; + sha512.doc = "56bbeff2f9cb4a99c05416d7fae7cea8cef81e712092ae8b5d1ca644769debdd95c443fb6af7edc034fe9d778147e1b37da50d951278a7f64c407dead5f6e7cb"; + hasRunfiles = true; + license = [ "gfl" ]; + version = "1.2"; + }; + variations = { + revision = 15878; + shortdesc = "Typeset tables of variations of functions"; + stripPrefix = 0; + sha512.run = "71252475aec013adf9bf41460753a648420ea70fb093cadc667500a6884adcf0c6661a2d81053a733844a3f8595ccffb5ac5f7680689575d8485c47a1cc1e469"; + sha512.doc = "75d6d8afd13f6751bad23d0adc58355d75e355554dd95971dc16ac148150990e1362ec211a3f3e6fd832ce231dbd08e50ed9d44856c763e47ddb5374b1b182ff"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "0.3"; + }; + varindex = { + revision = 32262; + shortdesc = "Luxury frontend to the \index command"; + stripPrefix = 0; + sha512.run = "fb7216b4cb06126970148788859d9c12a0626d25321cc591b2db5d7018ab2a76f5c6505d9cd47da6a3babc765dcedb6653a3ead2eea67f688cd883fe81d9f42a"; + sha512.doc = "30b9f50b7357f12774f78f0792ee0321b5ba84d2c3dff96f5f98d87cf0bb811a2fee74b2bc691fef07a80eb65e13e42b657b74efb0ee334b4f04da7bfdd0b75e"; + sha512.source = "19571ec2000fb99ac8e1b188e2f6965748c78476bb3fb2d38c2f668b02d268817c6f2670b9bd51df48c2db8fca1e6f62ac738f378a6832368c74de297f19b679"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3"; + }; + varisize = { + revision = 15878; + shortdesc = "Change font size in Plain TeX"; + stripPrefix = 0; + sha512.run = "c1a900aa29601e9bcc5d1047ea5bca0bd3c079d05e8c42c8e3f85521cd8a1989425650d0e84ab0acf2a38e468bc4823e149cf1e799da8eea1d6af4554cbc0c94"; + sha512.doc = "f575e4faff4a80f72108ef5b97abb0bda08573669bb8b28592fa607538c632d3b59626282a0ff8d7805e6b66121b2c231618901a9dd71f0242e1a0875a3e2068"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + varsfromjobname = { + revision = 44154; + shortdesc = "Extract variables from the name of the LaTeX file"; + stripPrefix = 0; + sha512.run = "0d5fb07c93fdd08570ef1dfa120870f4619b124cde769f48b4107c41827dd65c023840e1344aa283d0b21bfb0af2346135577510119579c531731f132bbfee1a"; + sha512.doc = "57e3111b8426ace2a838a128dae49a6ffadc6892e4b85cfc83eae3b9422dc4188e505fcb2a281ff38cbeb18e385ba1da398111c5f00683568999004ffd5eaea7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + varwidth = { + revision = 24104; + shortdesc = "A variable-width minipage"; + stripPrefix = 0; + sha512.run = "d44fcd1912f1751ab18f5d7d00ed47f42bed3ad2863b35781a83df9c881943c3e1916d003361b6e64640326541f43a37abdb0a3cdfe07e4d0cf7980dfc5fe1bb"; + sha512.doc = "ba0c0d562a7c9db36637bb18fa6f0d01661b229c66b8f0d2bd7cbafe286b81485e84bcccd06c4d47561db8895cf8933ff11d08a8de0b01405d6c7dde443e86e6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.92"; + }; + vaucanson-g = { + revision = 15878; + shortdesc = "PSTricks macros for drawing automata"; + stripPrefix = 0; + sha512.run = "e4bf83ea01ff4162f95dd595b93635ed988ae081d0c65ada59ae64c6c64c730dbb92ae049d22dcc20d6204c5a7cbca5cd643be6c572e51a3aa17df88c6f1f700"; + sha512.doc = "520aabba38562e208b464fc0d4e9f9a138c238abb94b43e89864e4ac21acfd35e5d6e224e855ab4baf9feb1df736b7e937508f6245e5f873c5c8f8a75947e014"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + vcell = { + revision = 59039; + shortdesc = "Vertical alignment of content inside table cells"; + stripPrefix = 0; + sha512.run = "39d8f934a07095d21219d58fb41fd3e939391d5c68c51d8b9ec82a97522e55fc09a23195c8b5ae48cc3e9d9bb9a62a0b22123f467627784c767321140356d6b1"; + sha512.doc = "f13e941e7327f4369112f59387cae9c49f10197a2c7c4016cbcc5880759d89fe88535266f5f753b48b547deda24a3ad959b42f864b9ca2764cd593bacbf908b4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.2"; + }; + vdmlisting = { + revision = 56905; + shortdesc = "Typesetting VDM in ASCII syntax"; + stripPrefix = 0; + sha512.run = "4c4b5deda36fab8ac8cadfea2093da188284cb26eb9874f27ffbedab1235d4e7bdf48e977a714fb33f0ef2c5cf4c0b92c14767c565efa6842cabf451af51c1de"; + sha512.doc = "fcd476e8ae2db61e3a71b1dd4bffae34e6eedaa409dc3434179ca66bafa2dc4b5790bd06bf90db609f91c682d2b7bf9d5effa893e5fb914c26c20acf67f8b22a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + vectorlogos = { + revision = 69010; + shortdesc = "Vectorial logos (GeoGebra, Emacs, Scratch, ...) with 'inline' support"; + stripPrefix = 0; + sha512.run = "cf9232e47bd3deacea13e858f4b85b45000d09f1df7fdc09bd84ed2f30de669b5d79d048a97d9aed05ccbe4ab65977becdae35b1bcbb2bb5efd2c874d7d71d22"; + sha512.doc = "21725294c097268bf0403c9cd7cfca5a8e9541cd6829ab65c561ed4ce6e111943000e0bae54aac328262524bd19ba75e90979660948631103b4a97e4ca63930e"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc-by-30" + "cc-by-40" + "free" + ]; + version = "0.1.2"; + }; + velthuis = { + revision = 66186; + shortdesc = "Typeset Devanagari"; + deps = [ "xetex-devanagari" ]; + fontMaps = [ "MixedMap dvng.map" ]; + sha512.run = "b7901813517790a92a921b1202c39a058d53a4159634cae79960ec7ce2da08acb757b307b5066ab1251e4b460234fd9dd98c2e404c05fc6384c656472302e3ec"; + sha512.doc = "06a9330410b55052759e18efa8720ef65f0f3dc8a2f15d3c0a0c8f70edaf8de65eeef8ec10a9a376b4b285b1c8f619278f68e9a2bd7ba1622da72b6ff488f8f7"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.17.1"; + }; + velthuis.binfiles = [ "devnag" ]; + venn = { + revision = 15878; + shortdesc = "Creating Venn diagrams with MetaPost"; + stripPrefix = 0; + sha512.run = "617ba85e996943d62a33acb2535e23700fffc63331741065faee558bebde608232a31bd73aa79ad707b107a9adda8b454f9b81dee184a64d94f32c44d76180c0"; + sha512.doc = "0b1940cdc2bcbb7e2f103497622c4d5971abf4f6f4885f60b35a360cd655c34cd789ecbfbef9d35c61611ef22198200b11008f4f59588a5cd111870b77ba19d5"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + venndiagram = { + revision = 47952; + shortdesc = "Creating Venn diagrams with TikZ"; + stripPrefix = 0; + sha512.run = "cf57b84165067234f5be58b2300eebb77339c33b883895e47cffdbc7c4acb6d013db7ace1eb47ef491e21526cea8b3ab993fac836498bfa16a5cea700caedd5b"; + sha512.doc = "966f7eea0d4c40004b9710c53fdd6838b757a2c8ed47b4098ca2d47834ba52575ac7c062497f1a6d26dadfcf0d7f95f2213d34bc638262520aade0e78beac827"; + sha512.source = "16bfa22856952e9c0595532432eb774a2ef44f52950002db670e5f3e22af02981305ed5eda1265b6d1a97f43d9a6292311bad5268a562aff6ab00f4a14a058f7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + venturisadf = { + revision = 19444; + shortdesc = "Venturis ADF fonts collection"; + stripPrefix = 0; + fontMaps = [ + "Map yv1.map" + "Map yv2.map" + "Map yv3.map" + "Map yvo.map" + "Map yvt.map" + ]; + sha512.run = "0f6b7369c1d589f9725897182f854f008b73dbda47078285635e87d480011bea0610da81512416b0963aa55487d646cd2a957002552ef2b8609d4536c0dd96bf"; + sha512.doc = "b46066744794a8ae1443b18bf1f6ce3d586c8ee8fa5c3273db608751979089b2407a6feab421a3c3c738a682e83e2f44bc5ac86eef1d51fa914ed0f0df985bcb"; + sha512.source = "2deac2b1cd151e41ea604d99209174b28de33d9f9358353b7d8b120c8e3cf45552947497e6d54cdf4024f5a071c39246221fd25cbca09cee7984755036993a40"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.005"; + }; + verbasef = { + revision = 21922; + shortdesc = "VERBatim Automatic Splitting of External Files"; + stripPrefix = 0; + sha512.run = "483a75883ea602f674abec796199c5206420079c6ad5e4c3ac22bd836e7ce02f686cc8b9b749f806fe8e44bce8bd35fc6b17865fc076c72f2223143ee0e8a123"; + sha512.doc = "c88b1275eb4e3b87172e6cd157ad868b7b230d96d00ca0dc550757fdb89648a40b1090b771dcd0776b6f86a9194c553f265d990220348e5bbf9c7aa792f42914"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "1.1"; + }; + verbatimbox = { + revision = 67865; + shortdesc = "Deposit verbatim text in a box"; + stripPrefix = 0; + sha512.run = "a2520d96ed713f3e82135395c7437f1bdce04f539ca924feb1468af6a9afb9a2707edba554f073175bf01d279576d7f3b96cd8a69ff7cd6b82f6fd9dde537f3e"; + sha512.doc = "c9c4a8a720a9dd1381a128480312ee416e6332d7bb4cd6f59c3f3c13f2c4ba5e9445f5659ff4b64cb40059fb117ce79b27b62c07b70a81ad7e3fe987f7dbbc41"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.2"; + }; + verbatimcopy = { + revision = 15878; + shortdesc = "Make copies of text documents from within LaTeX"; + stripPrefix = 0; + sha512.run = "e415f9d74f35e28c73bec5442124b7c426aff8de013aa8a2af9c234ae3ea20c131d5ad21803c92eaaf6d0aef6584b7f9b83218f9665a959ec0d6ba3ef606b081"; + sha512.doc = "0281da688f11d2a2fefc053d8f7866878b337ee85114c551176d6c329009f8c1a8479ccb29f202106f745ba215728e7f08509898182521bcac433699e22843a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.06"; + }; + verbdef = { + revision = 17177; + shortdesc = "Define commands which expand to verbatim text"; + stripPrefix = 0; + sha512.run = "f6bcac8b35bfe707d4e39cf625987ddee6197977894e9f8ded9e3a715e0968d2d1fab07c57edf1d38150ae0c9cfc937230c9fccec431e73ae235a4cd44ed8609"; + sha512.doc = "e64d4bf3018de72a131e7688ebbfcbaa59914c0542d2c632a91097a77f404307f9bdfc613638badb3ccca3854313f17a7a5bfb6426f467bcc98ed235af6ba49c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + verbments = { + revision = 23670; + shortdesc = "Syntax highlighting of source code in LaTeX documents"; + stripPrefix = 0; + sha512.run = "7b5780efe1b6e4cc62909df5d5cd4a03be3dc83717f20738a83f37f539103ad12e382c0a3891b8e81b44086f92b7277b17e88c4e7d81123c04941c38114f23c8"; + sha512.doc = "744471659373efbe040bd0698a9b33a0942d5df33312ad3cdd0f02c0e16fd2c67ea44c4ab13ce83ddca6a5e8ca68c8c8bc40c1a64470a9716511e2275683b004"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.2"; + }; + verifica = { + revision = 56625; + shortdesc = "Typeset (Italian high school) exercises"; + stripPrefix = 0; + sha512.run = "8c3258fdf2040e00495b56605f88160b5179743a7ae3abc6334e734ba9f1fb122bf2e4847fd9a577c1221c9e22dcfa650f15612d7a005b3719ce6c92df180bb3"; + sha512.doc = "de41df53ca78cabf7ab3f672dd00c0042cfd8a71219d694985c18aeffa045dcd37c7b999058d7edf6a2348d83c9ae27d1e242f17a91d43b61f2b873ee2d157ef"; + sha512.source = "85e46be6f8ee729753362243492c7946166049ebd0a89f0871bb9308e6803f5ef9416c30fe380be4961aa466a03afd9541d09e5920a196550582d326a6de8b9f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + verifiche = { + revision = 69726; + shortdesc = "A LaTeX package to typeset (Italian) high school tests"; + stripPrefix = 0; + sha512.run = "6201051c81c5a002423d3a9959e847223350c83ff03dca7792a727f2ff7f0405d20d2499827f5e96ea8e1f2e7855b887b0c2b35180ea2153a5c2126d36e21410"; + sha512.doc = "dfc3fc5a5bc8ccede3bb487a17941ac6e28879c03ea9e398475c058aae07230e2831bc9dae3195effd331abe79eb5f6ea8962da85a9775273810da80d8ada70d"; + sha512.source = "f46df8dc9759ced453752b53003d9377748346f8fbc02ea07a61b8ea44fc51eb6d0290c9b1a940ef74cf1999ec5597794237e0b28bb28b80c331b19c0defc14f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "7.1"; + }; + verifycommand = { + revision = 69389; + shortdesc = "Verifies definitions are unchanged, such as before patching"; + stripPrefix = 0; + sha512.run = "c977f40e851a47dbb329e96df9ac528aa9a2419bbcf34470af1110751365e219aefb36c6d630022b8d57949ea904e12dbb560329c526b3e35bd101c1032e38ff"; + sha512.doc = "69431fb242574e7ee11200904483eaa1a52f5c621d5c7c6511649a80c71d06a5527dfaefb90a74929b81b0cb2559ac136e1f6fe7321689a296a040f6362e35f2"; + sha512.source = "8ef472771c5719e2473702f1a871ceb3512bcf557427e31a5c508701a72e813e6390fee4758f5cd059e27040c55fc5e9a9e094911d82c10d57351d26f851efae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + verse = { + revision = 69882; + shortdesc = "Aids for typesetting simple verse"; + stripPrefix = 0; + sha512.run = "cc76ff256e4e388e0385c4a5152db537b9c3b368a29de79fedc17395d9d3b362c6e3af05a5714d7d2fee68f129cbdfe82874eaf64c8e0093f70dd796e8c381b5"; + sha512.doc = "5c1c29d0008c800bd967445ec3efbe2e8c1ee8d39d4373173f88c75fd3e8454409302308a08be84c69dda9c679ac25c6a411416c247fd44cd9cb23fee6b80f7c"; + sha512.source = "ce95d8664bac0580b761c503497d675763f8efb8e5ec066ce392f9d8e7cee44fb4071a1d2dbca394afdd318aa347ab9c229f120aaa65452f8d0f19069004e766"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4c"; + }; + version = { + revision = 21920; + shortdesc = "Conditionally include text"; + stripPrefix = 0; + sha512.run = "9b57997e63fab25d916630bb086b7d4372e094e64175caa761c20c3c2d426a58fdc42ef661bbc1ec47f2a8d9c617b7e4dc405499c01b84eb53ca0d10f6c9108d"; + sha512.doc = "9bada1489523eccc809d4b9654411addf31f2d63efc1f1f9d68b81e2bb3d9365e2709f55a77c53c3d2231b8da89114bd5a4217c8d18553234a980d379b1a0084"; + hasRunfiles = true; + license = [ "free" ]; + version = "2.0"; + }; + versions = { + revision = 21921; + shortdesc = "Optionally omit pieces of text"; + stripPrefix = 0; + sha512.run = "4a6474f6a014789daae358c5b73a85bcb0894eb67d09a530f3bdd8e4571552d0a3e1983b5ba40d33122caad8bd457f255b7f1bb34e9797c5137ccf461707dbbc"; + sha512.doc = "ffebda27a9000a0c8bd8462b750e34331968aa1abd5c7039e198950eac6dc02796da6a02a258bcfcd84ca12b3d5f6d0ab11587bb5d6fa9b3121297aec2179ccb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.55"; + }; + versonotes = { + revision = 69249; + shortdesc = "Display brief notes on verso pages"; + stripPrefix = 0; + sha512.run = "c430ad5138ec17c4a5a12bb42149bf260b582f2a8b3c9fcb15356c3ed87073b68063df1ce8d821c456c0ed0e154137a2e3ed54b83b49a859a08dc1134dc6b559"; + sha512.doc = "3e4047566d0eb6ade7e78dc0ace0f540b56a6bcb157f613f6af0f7fe5c8ff9e47e526d68ec11b94f9e7ef3bce8fbbd26fc8c3ea115b2d1454e750ce7e15641ff"; + sha512.source = "f986404efc03af8b3a58f07aefdcc678e0f4b37ce25f8772e145e08bacb1ebf330361d56bbe5710611d09b01d31b82e9c736c1a7419a0dc56f0fce3a5c797136"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + vertbars = { + revision = 49429; + shortdesc = "Mark vertical rules in margin of text"; + stripPrefix = 0; + sha512.run = "3c3c905c6bcb013a36bc2eede14d84315f49075ab5f63376e9a440e4e7fb281ee5086b5bf1953782641284027dd8e7058e0accdafdc9295a19ebfc0088d8f7e1"; + sha512.doc = "de6df3133c801e941cbb00c552cb2cdb1d556f099c402a0a66f460d5c7c1c6e28ec7d983563f20a609a5b5266420dcf8c204d1b6bc685031cc41fe2770a5ea13"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0c"; + }; + vgrid = { + revision = 32457; + shortdesc = "Overlay a grid on the printed page"; + stripPrefix = 0; + sha512.run = "ee46d8ae234af6f0b3bc8689cceab7d5ce8e7229b132c396a000cca15cde0ee422f91b2d4fc485c743e3a896bbab5ec90b24ea5d398bf63342751bf75143330a"; + sha512.doc = "92e5498cea29d5fc1b373619e97c6692fef3f63002757a954649c0c4f9ef7b6594d61cce017bee709f0f1898777f962c25053b64da8079c8c9c9893f821a9aa6"; + sha512.source = "5589904860a74979a070224b252be9b302e0f7128946624fb671e8618a2afc55c526631217348eaf84d7c0f827dfef7aac7a13a953e1ff82a61211eb2e070e36"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + vhistory = { + revision = 61719; + shortdesc = "Support for creating a change log"; + stripPrefix = 0; + sha512.run = "1e8bc961ce70a199403f548bc918efbfff57ae6514338d32928a670f1f381ccd0474f3e2e4bcb957e72ae0b74b959f9eb98b552e62dfdbcbea995549bd87ca70"; + sha512.doc = "25420975890dbeae7b322ed9769eecdc67b9271f36e3269b6dae582af19968b79593ccc0306486de5d9c277be752569591953b423c52f8aab396430331c61e27"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.8.0"; + }; + visualfaq = { + revision = 61719; + shortdesc = "A Visual LaTeX FAQ"; + stripPrefix = 0; + sha512.run = "e746106e0525c9d40c3600e283e1b652d2a5e4e99381dd7ce88ff2ded109024d86610b6305fdcc6f06220802c7ce565b3e01f9562c00884fe5e161104ad4f8ed"; + sha512.doc = "cd8f11ebec1eda30ba7b673fe6fd241e61c4ef42a769988d34e58546f608af6a4ea569b2a30957dec0463385c5a4df70f7d10bc6e5b898229c5e6cf46f7e4fca"; + license = [ "lppl13c" ]; + }; + visualfaq-fr = { + revision = 67718; + shortdesc = "FAQ LaTeX visuelle francophone"; + stripPrefix = 0; + sha512.run = "06a9f22c86f54883ce55b23ba81315e53afed4f7ed2b77d13a8958bc18e5a96cae849a327126843865b6ecd55d7153cf261ab784625b9a848e7dc661df95fbb8"; + sha512.doc = "8d18a3712c42eb7921d6e0e7d29ac96c4718386643bf967b3c428fe5846830dbaca382822ae3d23523dda2e4c7d5f0d96c137412c2302f5e634471d83fdc4547"; + license = [ "lppl13c" ]; + }; + visualpstricks = { + revision = 39799; + shortdesc = "Visual help for PSTricks based on images with minimum text"; + stripPrefix = 0; + sha512.run = "fa501a3ed6506fe52d3d31515f453db5378c7d01415ed05c0870ea15051d34dc5a564ab8ef2ef4608f616b657ecf29f5b18a8920bdf1606f78928fc505cfb0d1"; + sha512.doc = "3d2dfea937b2b99e148fb0220067b9a777126854d82cd1e591f84a1d13e1090755660509814e4690dad20d2568286ce05653d3b5c7c6653df61d27229c9cd5e2"; + license = [ "gpl1Only" ]; + version = "2.3"; + }; + visualtikz = { + revision = 54080; + shortdesc = "Visual help for TikZ based on images with minimum text"; + stripPrefix = 0; + sha512.run = "fbd3f158e72dd8b0ebd3fe9c33fe47127ecfd38bc0feac3312d569718672e9f88165856fa61389b307a211071467c10ef73981178cc9afd8ecd720cdf627dc1b"; + sha512.doc = "16a32e64ef4d00d2bf6f99fa05b35a071539d71944227eaa5b37762e838a62b80ee4b227a8bb9cc49b831bf19976421684872f8eb104f37365669907e9621a6b"; + license = [ "lppl13c" ]; + version = "0.65"; + }; + vlna = { + revision = 66186; + shortdesc = "add ~ after non-syllabic preposition, for Czech/Slovak"; + sha512.run = "6c66717442bca3306e23f5d546e17929240ce9626a562b9e56512446998996d38f83f78fbb39e46bde0b9faf0db7eb0c0218c79e1d66711d6cd3c64a8778edec"; + sha512.doc = "921d76535cbe7e940617355c74b82acfc61edb840db8ed9cae1aaf987fe6b83245505048c7c550d59829b204f139ae1cfd44601435e2fff2b0d5230b45a27b77"; + hasManpages = true; + }; + vlna.binfiles = [ "vlna" ]; + vmargin = { + revision = 15878; + shortdesc = "Set various page dimensions"; + stripPrefix = 0; + sha512.run = "dc0cdd4696a44bb6bd189dcf73c69f1b2c8790b9936b1c6f35013d9342a97d36a4bfd8eab82f3e2e97f1cc952459cd9a1909915348b25f01df446c5ffc452e71"; + sha512.doc = "ca8ebc274efacbe192b73c9551294bfae60b0cf7ebaac8425cf1b88e10ecda7f3230c336883afc438349f1ea47d66d369b52bb415c482803fb742b16cb483348"; + sha512.source = "0ad7482be9aef59f55b1a489327c03e9d9560f10c984a0f244aa836ef12086dca2d834c033a36bc95233d6de9b801ac483d2dbf472f33e9478c5182d06a86cb6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.5"; + }; + vntex = { + revision = 62837; + shortdesc = "Support for Vietnamese"; + stripPrefix = 0; + fontMaps = [ + "Map arevvn.map" + "Map chartervn.map" + "Map cmbrightvn.map" + "Map concretevn.map" + "Map grotesqvn.map" + "Map txttvn.map" + "Map urwvn.map" + "Map vntopia.map" + "MixedMap vnrother.map" + "MixedMap vnrtext.map" + ]; + sha512.run = "f6a4396c473b6b0dd067c88911457a21ed393cd1d10edc90db0122fefedca2a6809ff50c34932d28bc1d6774ee176a165002d24062f8b6b949e85cb1468747ee"; + sha512.doc = "dc5f2b41cfe273a14278abc75490adceff6c50698de384130310a70370a3e341280d874f398027e8b2af2fd266beb2f470d414218862097ad718e5daa157928d"; + sha512.source = "bf8835b8e7dbd8f1ba5dfd28ee572635360f6f99818b40bb0daef4bd632ae68e1945f96dca6f0e3238fe42113c025c5e41dacd4e756476472fdbb4bdeaea3d3c"; + hasRunfiles = true; + license = [ "free" ]; + version = "3.2.2"; + }; + vocaltract = { + revision = 25629; + shortdesc = "Visualise the vocal tract using LaTeX and PSTricks"; + stripPrefix = 0; + sha512.run = "7daa3923a6b9d84a1fae2c9bd63404c2fb4dfe3866f897895deb9ab85f33649427b38ce5e34552bbbbd8704da1fac55822a747747a0c522728e605638831df8c"; + sha512.doc = "36aa01a5be9da9a23e3a4de63fb14a39beda4a42cd2615f75f942abff677e71f2a4f640773d27556ef246a99004c3a1aa68caac9435957152cfda96707d79787"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1"; + }; + volumes = { + revision = 15878; + shortdesc = "Typeset only parts of a document, with complete indexes etc"; + stripPrefix = 0; + sha512.run = "e54add2c60c5446329fe6f944c99132e0f99e89dd8fc9ff459e0ee106a5241e4df4d864b43269fc14a08ddda92f4e41607eaa20ba50d4a566be7468d0dd66b2c"; + sha512.doc = "4471a360d04cc1ed9c90ecb53bfc422fdae30571a25fc4811813f30ed5308f4d20309a1fdba808d1eb20e84b97318708f57d08722344afd755aa06588acbd024"; + sha512.source = "0f47cc01b4631430cc4b73c7348bcb9d500d0c5c9960a15e9fb29e1c805ff0be4f0108c6bf795156ab7f939fb355f800da916f913a4a441e65bdcefdb05c0499"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + voss-mathcol = { + revision = 32954; + shortdesc = "Typesetting mathematics in colour, in (La)TeX"; + stripPrefix = 0; + sha512.run = "cec0ea20b409192c618278001045352ca6c4c11c8eda59633a9bb65ebb7a89c8c1db4046936a7f0096f52efca8a251501fccf7890288ed830f13e0b24b1bb017"; + sha512.doc = "5d91b23d9eb45998282731620097f214b274ee744972b3d7fbeda1be2268799572f36b5f4c8b707f48e8ec2d825438bcdcee7f1376531f366af8949a862ff379"; + license = [ "lppl13c" ]; + version = "0.1"; + }; + vpe = { + revision = 26039; + shortdesc = "Source specials for PDF output"; + sha512.run = "5fd5180edb830cc2f309652ad6a86e3ce1900dd0b150b72b3115f2e0f51aed4023b3f7af8c86befd1b1317829907b35ce583b50fe5cd1fa50f15863046e806d5"; + sha512.doc = "3c60c736fa03de82bfa5bb86f40420e7f7eb59f6943a94790361bd1d64076ec97843404d1cc508074a903f83392892c6dddd1dc912162928b286e65c24a46037"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + vpe.binfiles = [ "vpe" ]; + vruler = { + revision = 21598; + shortdesc = "Numbering text"; + stripPrefix = 0; + sha512.run = "39582bec5217d65179b4293a18697cae20b35a0ec5416497691d16dbb919d78d4463ae15f2f05d308f45c65481f611a3f699cce9f5a3c311b84bde08fdd5f234"; + sha512.doc = "dad09087e028977501fe143ae050c57938500b8aa98bddc1afefb298444d17c37cdc5b9db2e9d01df5e9f6a47679e0659b21a2844d268f8b324a24bbf22d9492"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "2.3"; + }; + vtable = { + revision = 51126; + shortdesc = "Vertical alignement of table cells"; + stripPrefix = 0; + sha512.run = "ed8dee287daa32719b6650f43b963fa66cc55572526162978fc5245d3c253f027548ef5f1cbb38423c30e6cbe93b3418c373615ab92532be40d947c979f14b47"; + sha512.doc = "12626485ed74fdaee2aff65e97f59d14fad8f856bc2a84dda96010985b039d48850a07ef08525d74b155a699d44b1e173923e0f67716f47e392fa7558760076a"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0"; + }; + vwcol = { + revision = 36254; + shortdesc = "Variable-width multiple text columns"; + stripPrefix = 0; + sha512.run = "3963b738e1214f7a495daff6476102e6b25e86034c552b5f4e4314af55e4af073ed94a72e969dfd1fba16baa0264577234917f7dfd074dc85f9c56c5f2409903"; + sha512.doc = "a4d55b62caf4968d3e8329fd06f8857f646c5a867fbab23ea9bd7fb57c5b88b5f3a918642bc608eb1ccd936dc2e36edc50a5662667b8bb35cc59ba1739b2e7bd"; + sha512.source = "8a605a7250f939789fd863abf6fa2b5da37b8f723460ef2e56ed93dc826363ec1bad03f5bd2af266ede11ccda04546e6174c0dd79282ba41ad6c3d9923ccd51c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + wadalab = { + revision = 42428; + shortdesc = "Wadalab (Japanese) font packages"; + stripPrefix = 0; + fontMaps = [ + "Map dgj.map" + "Map dmj.map" + "Map mc2j.map" + "Map mcj.map" + "Map mr2j.map" + "Map mrj.map" + ]; + sha512.run = "2d603ccfa92e8ef9abe91f5afaf490c7c8476061679f7a54c22879bb90b4d874f9e0e533e25aafb94fee2ff512f689ec96d25ed7ed42d0ae90c5e05985daadeb"; + sha512.doc = "f9c35379b396dfb563c66a05d200c405f03de96e22ec94de3a9f0c99ada057db21d31b43d59391bc0175479b5f150435f8e704fa40f6b58f2c116bbda3ec4603"; + hasRunfiles = true; + license = [ "free" ]; + }; + wallcalendar = { + revision = 45568; + shortdesc = "A wall calendar class with custom layouts"; + stripPrefix = 0; + sha512.run = "43a682e78a3a80784180dfd84627e5584af9199bef965bb5551b203df7f939512d4307c450ed1ee55caab611154c1511fc339831da2907527c06ab738350e05a"; + sha512.doc = "e4816b91f08a26e99b03892b3d70f4d81110e476461dec505225335d46955f9f3790d883faf19afa4d7a31ff05afac4fea870e37299f45827c5a8155d4bbaf4c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3.1"; + }; + wallpaper = { + revision = 15878; + shortdesc = "Easy addition of wallpapers (background images) to LaTeX documents, including tiling"; + stripPrefix = 0; + sha512.run = "45647b8f8ebab9706437be2ce63f3506638fcc794839ff366210db4c35a3e16b2a39127fcacd0d97df356180770b6808e80e63ea1a50e69fc591cc0992e1787b"; + sha512.doc = "46b890e0ea7bbfb3c3421f79338f5140a105bb90cbe712477e2dc956f834682f6d137e39492437d8f206fefaf07086cab7f3cdd6c27dc7136df54c5ba850b4a3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.10"; + }; + wargame = { + revision = 69692; + shortdesc = "A LaTeX package to prepare hex'n'counter wargames"; + stripPrefix = 0; + sha512.run = "8302254134c342db781f4bfdfafd92dd3484e2a0e91dca2bf43113665bc3c44c0bf50637bb702f33fe243108bf1902283059a923e64bacdcdf7c9a5bfecc8836"; + sha512.doc = "dc1a5d8ce42661ebe5f0bf9cdba69ae66f8fe592bc48c8036ed60cd75b07a84e18c5d92fa4c4730155c5858f7ade450d59934db4e55a6ddc6a3d93ea0c78a0ef"; + sha512.source = "c7a04ae48a204f6e4c3819f8f4781ba65f4a71c72e011e4aa83680818f35bdf1b5cf57f92e58ad7eca366a677f2101d1c58e362869156c61d53e0028f250ef9f"; + hasRunfiles = true; + license = [ "cc-by-sa-40" ]; + version = "0.6"; + }; + warning = { + revision = 66616; + shortdesc = "Global warnings at the end of the logfile"; + stripPrefix = 0; + sha512.run = "443a02ce9aa004379aac94091c4f3014042cf2826d12bcffaa92f24ebd3a023ef314d05aec00947db74175e03e432fb80b7060b51c4fc310d14c15ac86606abe"; + sha512.doc = "561c4aa05df7143f68067d22b337f1754482c40eb851356f70887dab86b3944116f2e7d9f3a83e4439c7b0f6d6db0ca61371ee049758173c35b70468bd0166af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10"; + }; + warpcol = { + revision = 15878; + shortdesc = "Relative alignment of rows in numeric columns in tabulars"; + stripPrefix = 0; + sha512.run = "66fd9e243339e0841576e1a1a3de05f2e69a24a7e1dd31eb38d848d06c9183f691229d8e89878b661c7f6524bd9ebd1380fcd4c9b175feb8490cd4476ac81303"; + sha512.doc = "e88082379e90edf1517579009881204bcb70df888593d7535e2b1e5b673cf116a456967b0ca5ce372efef9dc0818b9d0dc252be79819f6b346ad8619d70551f3"; + sha512.source = "843965fdddfffe6bec9567e140b9c6db66f60d1eb90ff5830b08b17499f21782ae1842989d479e50c293a8e1d7e2a9ab886622b8375384e1238871d6872e9e52"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0c"; + }; + was = { + revision = 64691; + shortdesc = "A collection of small packages by Walter Schmidt"; + stripPrefix = 0; + sha512.run = "1e434b13cf6cbaabb173b34334e046055366a9ec844207460a852a0066963fbdde6288e94979e873811b4e66140f07b6cf2e8526ec47a050efbfaf4836edfcb1"; + sha512.doc = "fcf5434911390ee8f20f0feced15a627e001471b1867d57a7697edbfee557179250f0a01e9e20e0d442dcb0c4509174c504959e7a991e928e392d27515ff2d0b"; + sha512.source = "9053fd6524c572ea80670ed9af80780579e6961e326620120f87f809d76f3c23310fb572f39536eee1ee8c20269ecfc1ad5bd5ca195ed986d87c46bc53058a31"; + hasRunfiles = true; + license = [ "free" ]; + }; + wasy = { + revision = 53533; + shortdesc = "The wasy fonts (Waldi symbol fonts)"; + stripPrefix = 0; + sha512.run = "4c747ea3cfab820b803f624a32178a1d09cbb5a3c441ee423abc74caeef9217095491c0c490f11d3a6d6adf052b97492e081b2abedce6cc9c61410a8e878f5b8"; + sha512.doc = "4ee0dba83e3d1e00a1c58bc1c27d1b8e7e1677bfadf1d2653be216618d65fd168eab7aae26a5fe5ffae42c546b3438e2ad15f1a7bbfd58cd7b75cafa78a46205"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "2.5"; + }; + wasy-type1 = { + revision = 53534; + shortdesc = "Type 1 versions of wasy fonts"; + stripPrefix = 0; + deps = [ "wasy" ]; + fontMaps = [ "MixedMap wasy.map" ]; + sha512.run = "d7131c025bd97bdaf62697feb698da97d175783e4b0502d3e85b60a663f46a0520268a6063956afaddc6308ddd21954992bf8d216049cb324133e3760ac20825"; + sha512.doc = "d9c88d39deabe19393df0b6d83bddd644e347592735cd7511dc70374ea015cd7fdf36ac9f320b44c612c8276eee3d7cd94f9e0b26de050c0771c85ec7dbae53c"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "001.002"; + }; + wasysym = { + revision = 54080; + shortdesc = "LaTeX support for the wasy fonts"; + stripPrefix = 0; + sha512.run = "408f9c2b70d7860f7d8f7ee7f93af1351442b92aad9c8d8e4a501414058d8347e6da2408df3d5b6fe217597861eda5eda499771a7e973da03597f24b76250da0"; + sha512.doc = "ffa36c6f1446c0dcdf1e1dd8b47946eb84d666714d94eac28c857170c9aa414b612486fcf107ae462c50ecafd6ff20c90c776abb5774db64a32aa07be8c58b2f"; + sha512.source = "12dbdd1e868c3382e7ccb5a507b7f72c20e3df3105e272c00b8b6294f10c1099d3c6c7b1a2db5bc96b866e246807604b615d8278357d0214539a8f959de14667"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.4"; + }; + web = { + revision = 66186; + shortdesc = "The original literate programming system"; + deps = [ "kpathsea" ]; + sha512.run = "cc8b2b6525ef1ee49162dc157e8d735225f5fc3bee54e56ac01ad47f85f639e4c43b4409e949d68804e650e243da0a8a6d098ca7c37587f14c810112cc82abee"; + sha512.doc = "ed04fce861ae2adda602a2a50d560cc9a5863ab1668dd9512baa96b6c37acd8334e4800bc4ca853c0b1f58bd3a643abc82a96f31de9d4980806ad0572ea2a92a"; + hasManpages = true; + license = [ "knuth" ]; + version = "4.5"; + }; + web.binfiles = [ + "tangle" + "weave" ]; - sha512.run = "c159620be1d7d853641d4b42108ec0b2e36b6f4b0c604680469b52cf4c0557196263293d4692906d1d42c1d0ab9a666b59d462266131e42f319a5ab3a2385780"; - sha512.doc = "b618216a0bd8d7b65fe73be05156e899917719436ef0139122fd01047b8d55faeea55ae05e259d99c464aaeb3fdd9268886b7dec9c4b6a86209da1dcf1c3a3ca"; - sha512.source = "0569db63bf6fd492952cdee442312e818926bceba7663ce0e17f485dbe990687d97efc02649acef6dd89210aa44f9e88c86cf2667c4a487e9b78b90b10a779ce"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "0.1.10"; -}; -zwgetfdate = { - revision = 15878; - shortdesc = "Get package or file date"; - stripPrefix = 0; - sha512.run = "fe52555cc46a9e8340d8c9c37f88b372bf72efbd48a097b2d319592dc49a8cf55c87e80ea7d94ba6730742e9883215703749895008ba38838750efb9fb2334e9"; - sha512.doc = "7ab61dc4252ef7f60d1d5be8d4415bcaeaed194384a1da14a3400617b36c6efae3679dbbd6c8d64b8cc9f9947babe88c064d637379f663408cbe63ca42334bfb"; - hasRunfiles = true; - license = [ "lppl13c" ]; -}; -zwpagelayout = { - revision = 63074; - shortdesc = "Page layout and crop-marks"; - stripPrefix = 0; - sha512.run = "a0b5ca55208fe5f2353bf846fda3bbf2ef095f68e0e80265c9c89bfb14be0c80f5ca7c1b7fbaae4c8d67d70fc381353f889c9596e96412c351d39cceba40c263"; - sha512.doc = "9b52a6267720a787826bd14efa7742ef9adf9ad14c46065edf5f0e47c94d2762a7dd2a4b9b31864a3a1bad8addd4c18e21119a70abfca89730a7c7804628877a"; - hasRunfiles = true; - license = [ "lppl13c" ]; - version = "1.4e"; -}; -zx-calculus = { - revision = 70612; - shortdesc = "A library to typeset ZX Calculus diagrams"; - stripPrefix = 0; - sha512.run = "d59cbc2662dc41a216e9d8665a6bafefd27ef5993abae6682af24909cff49350dcf73f10ddc55b31dd3ebdd35509a7000edd8e055c85deee946a5efe258ddf14"; - sha512.doc = "a08719cbd99cfe9b37ca3fe62806e45908a1f48e5ff32a162fff3e835fdcf69c8a516ff7d3e0de6dd1827d3c78ae7efb3e79b4a534d77d94d5a16b9fd10b10d7"; - hasRunfiles = true; - license = [ "mit" ]; - version = "2.2"; -}; -zxjafbfont = { - revision = 28539; - shortdesc = "Fallback CJK font support for xeCJK"; - stripPrefix = 0; - sha512.run = "357b100dac7061a5e6fe91e3a708f32e99a134158393581bc717ae3e90afa5dbbff7aa1bae8c092638bca2d5c3ab65d8a8cbc39c20c3ec1ff85c967fb3849513"; - sha512.doc = "215079eeb772dc4ea55d5e00945a757c877acf9ea56aebe5a8969564a3836f54ca406d502d73e93d92b131600fc77bd2342d36fa78300adc0b4d1dd7f5d0f423"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.2"; -}; -zxjafont = { - revision = 62864; - shortdesc = "Set up Japanese font families for XeLaTeX"; - stripPrefix = 0; - sha512.run = "4afb6c3126c66c23a9a5b2ad1103289ab3f14c5a0d9bad7de209de3801e77f803e7a88d7440aa2f85d5aa6c23b6514585f263a95d6c3d68c232051880943a5c0"; - sha512.doc = "598a13775cac68ae6f176bd01b609373a4033583a83ed42f7914b15a01776d40b0c7200258dd68563510b2a3c11ec29a25ab3b26477650b60652e7332ef3f131"; - hasRunfiles = true; - license = [ "mit" ]; - version = "1.3"; -}; -zxjatype = { - revision = 53500; - shortdesc = "Standard conforming typesetting of Japanese, for XeLaTeX"; - stripPrefix = 0; - sha512.run = "21eaace7188c9e61f5dd65f34e26b1ca16358e7396d44188ae17e8e01a58f38ac3be9f09f8f41923c257d089210d1fb7d841eada5c9a345cec42b934d257ef94"; - sha512.doc = "0fccc73af66a05231cf8283920d65717600be4673329ed1f46b93a494d766aa9542deb1a56b5d23d6c0d6b93be98aa778234ddc2dcd9c0936542a45d057b6dc2"; - hasRunfiles = true; - license = [ "mit" ]; - version = "0.7"; -}; -zztex = { - revision = 55862; - shortdesc = "A full-featured TeX macro package for producing books, journals, and manuals"; - stripPrefix = 0; - sha512.run = "eb325564ee9e001e0e5ff79b6e3cc9f22f5b9b100ef021552f54953802edbce1e4b1295ff4590832f959386db7a63aaf8e31dc2d61b38e5c8a140082ca423e83"; - sha512.doc = "bd2a3a42b62da61db572058b4731161425545374584a575607f11bb2302aa2ce900b694aaf06562f4c9eb9046c80c4fbf5b50233f6d0526fac787c213070d542"; - hasRunfiles = true; - license = [ "mit" ]; - version = "17.7"; -}; + webguide = { + revision = 25813; + shortdesc = "Brief Guide to LaTeX Tools for Web publishing"; + stripPrefix = 0; + sha512.run = "0c99e86fcba92d067ddd658893b58463390764b215515068e025563b66f445b23ae11482345bf305106afc1284ffaf32b23a28c8e0f81319002dd6332c8a3848"; + sha512.doc = "933ceaf7bb2400fff1bfc5ec26f60d750e0995680579fe487536ddcf8eca670e2b6d3fb6150b4ad659c6fa594b9db540523a878c74e9aba9be7710b5380e55af"; + license = [ "free" ]; + }; + webquiz = { + revision = 58808; + shortdesc = "Write interactive web based quizzes"; + sha512.run = "04ce66027089c2be815380a10540e6c12040d33a33b1de9c6a98985e82a65e87f58a19b6cbf2b0ad7bc8e0a1e500bd21a80e2adbe3ff395ec4be1ecdd5b5adf0"; + sha512.doc = "58faed1d21c5f0abe004d5aff0ef6f754012722dace25948e236c940f3e9f3a49d4f661d6692afa0bbd0a654424017e84611c32cdd99a0ef60e510c4b2fa01e9"; + hasManpages = true; + hasRunfiles = true; + scriptExts = [ "py" ]; + license = [ "gpl3Plus" ]; + version = "5.2"; + }; + webquiz.binfiles = [ "webquiz" ]; + weiqi = { + revision = 70179; + shortdesc = "Use LaTeX3 to typeset Weiqi (Go)"; + stripPrefix = 0; + sha512.run = "7202c5b907439d47868e940d1cded455a15d1de82420e8846f93c81ea3b723eb2f6d455bfe8d1deddca7e856b5d9243418b546abbf36d0883431675866cdfbe1"; + sha512.doc = "ed2f33194866228569800a1612bf73b5aa2b8ed8b1c859b3a9475ce6b2411b0a7a9ac4236b4b1372d8eeb5635f18b340592656ce5acc76664d620184a62fcc9e"; + sha512.source = "8d0505d70518aeb70ced15c152389c08a5e4938a1cd82c623ce21ee83678bef53e8a8876fbee13a121b428f55df013ca44389a98529c6ade2909375f910c5b06"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + wheelchart = { + revision = 70518; + shortdesc = "Diagrams with circular or other shapes using TikZ and LaTeX3"; + stripPrefix = 0; + sha512.run = "9b54a717a73761b09007afeb18c6fd69f6af1b1dd22f206e556fd076a61e6ae03211d58be316ec6eb62909979e8d53f74c6cd7dddd11fac33917383f4de2b073"; + sha512.doc = "23e759467608b69aa7b3a3376d4dc62ec82aa831cac2014ee76d5b73beb99d09a69401f61f1db02b617a741189fd34ea39b90c5c1b1f7f7f94d380ba38041a24"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + widetable = { + revision = 53409; + shortdesc = "An environment for typesetting tables of specified width"; + stripPrefix = 0; + sha512.run = "bd6c85eb76b1fdd4b7e81ad24ad7d282b79e4234ec029e48ed63611260b00e8b1c584ac800c45643e466ff6aefbf953246b24c1bc6453098a76b71ba01624821"; + sha512.doc = "5f254468e606aa188030c95c79672a6fb0211c0b5c4df6c3fde98c43ce1fd89993d495eb750b58395175e2b6bbe3e9771895627a04bdb8839fd4d0a143c1ab69"; + sha512.source = "31ae40849337a8c6a7872621e55ae2a53b1a7d4d1a7907e18f5aec07f94196636b99c26d46dd8c10e1494a35b86d435a014a229160edbbfccd064306fdf06598"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + widows-and-orphans = { + revision = 66753; + shortdesc = "Identify (typographic) widows and orphans"; + stripPrefix = 0; + sha512.run = "0861e1449011f6032d847c5bbf8d06fe7b8f6d320dcb0f2281ca558dcb8ef1eec561ecaf622f957e6a0c673223b3aef8cbac4663930931d945f18137d19f4e45"; + sha512.doc = "6105b7306ddfcd91080bdb682702dec2a4d1b094e1b8c9bd0a28bfd185bbc9a0bc4252180101b2674e702d645fba31420d12cddad2ff3db6703f6e83042b8a4c"; + sha512.source = "4eb52ec1f9f78daf90f62b7f88ed96506069fbcb22c9bd33aa853142ea2282dfc4b5ff87d6280ad82ee3d9342d4c5737e91cd7a83416dd1de6b26f2e89062b2b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0f"; + }; + williams = { + revision = 15878; + shortdesc = "Miscellaneous macros by Peter Williams"; + stripPrefix = 0; + sha512.run = "44ef966e5d8535aa7bb32109b20f47c774995e6368a92e20a68d25c1694ad86b7007bc90877d276c2f15b8aa3c3d11f7fe6aa117c35265b5988205df869af11b"; + sha512.doc = "c559e587868698c1a635db13b6db265234b3b475937fa1759f9e7e3a8d0644a43543005e9607b5a965bbdc304863d6c7cae6e5cb8345b546dc34afd8c7e2de43"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + willowtreebook = { + revision = 60638; + shortdesc = "Easy basic book class, built on memoir"; + stripPrefix = 0; + sha512.run = "835b19d0927b01e4acf9da483148d3fa45b1c12eecebe39802ee4bab7426843710dd67306b2a8946c9c2b51d4c1864eb054f440c3ea021ae124bbeb6e4908b33"; + sha512.doc = "9e5fddf4765325a550e6dbea529d110bbbfbcdf89e1dafcfe62099a4e8fa6ce2bf3384ef9e1b2453f1155b6e6d3f48d1d1675100c8295362653aaabec35aaf86"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + windycity = { + revision = 67011; + shortdesc = "A Chicago style for BibLaTeX"; + stripPrefix = 0; + sha512.run = "f83fe1f694d3fd448484961bb23c7c220ccb5b0f8982198660b5770140c8e9120fcd1f095492555f00533039039d11b3d2695189f40b716b17b2c2acf2e7c553"; + sha512.doc = "eff7b0bd0603d563d077842e77fff4b9a104d008724d3e81f58cb26ebb77f8e61811f5a74d9cf2d5d62f3351ca692d5028cea9629ac1a9e8dc6263637c1cb616"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + withargs = { + revision = 52641; + shortdesc = "In-place argument substitution"; + stripPrefix = 0; + sha512.run = "73cc4db53528595f54f31f0d2824f08af54310aaed51b6eb51a5386de3f06dbe6ffeea8c4ab6f1e4ee1d169b5b0082f113ed435eae90b99a9b59df3296a3f4b9"; + sha512.doc = "050ecd695b269896d1252649978af7cfbafa80e289038ef1054d82296cd83934b0f7ceee274340d54d836021f0da39f05a648dba8bff141eae8f378527bcf865"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.1"; + }; + witharrows = { + revision = 69996; + shortdesc = "\"Aligned\" math environments with arrows for comments"; + stripPrefix = 0; + sha512.run = "31e9cb805fa91b903d91a0090ceffe6cad323c3340bc16c268e6667dcb5fd99e05c95b87fcc6cb8500c187479973d5595fe510855a7c6b2b86db06e513ba5172"; + sha512.doc = "69c495a471e5fc2fb4da60b06360dae6dfa2c79d93fe176fe54485ba95f3c854fec8356f9939d5521360f9d461e9dac1a6290dc3ef29b8a82e52c0892e8fce14"; + sha512.source = "bb5144cd95bb78dbdda91bf068597de2a8d409a2f0ba8f48c861018c52b897a7b5b7a095cba1b5e301822f75b2808dff0376ba36591cd8964f2171553d5e8dce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.8b"; + }; + wnri = { + revision = 22459; + shortdesc = "Ridgeway's fonts"; + stripPrefix = 0; + sha512.run = "6ad06e6a867b323c382b85fa1effe16280566b1b61dd37be0bd7e9384d145fff2b1b4ff8117aa49749db1f15495e835e3367b0b7191cf9444e36fed662ffd0ed"; + sha512.doc = "c3d6ff664edd89fa711e9573b138b29b113b588ddef9ad4a258e1f28c4ca2aad1f05741a402c1c1972bbc317e0cb989ce7a51e52d59b42629343d9a5780b64d0"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + wnri-latex = { + revision = 22338; + shortdesc = "LaTeX support for wnri fonts"; + stripPrefix = 0; + sha512.run = "1dcecf9ac38a9099625ed6be3955af8b063ee5b5b8d0d3e3ab8c94a8215b72b86a0b5dbe930eb69680917bd3d6652b3f4f08bb377197ab6f3d2fccf2b96aa59e"; + sha512.doc = "924266d547910d25ed5355ec2ef697d271dd992aeb6767d5bcb703d4d07cd34b6844e9a821ed93f5a04237aba1c185fb68926967e78043f390785b619c2389d2"; + sha512.source = "e3c5cfaae7b14a28489344392d66a1e2570c900ffd571c54b4f2d13b16d6dabb5cf58cad9259f8b662a218567982d1ac51ef8b2a757902c36540200fd984a497"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + version = "1.0b"; + }; + wordcloud = { + revision = 68209; + shortdesc = "Drawing wordclouds with MetaPost and Lua"; + stripPrefix = 0; + sha512.run = "7e4f6adb72d2a7b3cf740f338e63669304ac33d90f7fa09327cb3e6ee882105c92786656d5af742de0d28717cf45f4fe0900ef0c48faf1ddbe57af322959c8d7"; + sha512.doc = "fbf28ca6311850020c73dbb1a6a60bf5f31387a2def4b01f348674e678a3626cfdb23e2826a30db8ce021a5fadfcc26027584278110781a99ee26337c4b1f642"; + hasRunfiles = true; + license = [ + "lppl13c" + "fdl13Only" + ]; + version = "0.2"; + }; + wordcount = { + revision = 46165; + shortdesc = "Estimate the number of words in a LaTeX document"; + sha512.run = "3c26b3bcb4c3edce8cf9d6628cf6b89103aa1ae454b07c1e963ca90693c18fb851772a52082a23efbefb51235005e558fd553afc891a472eb39cd430c97f861a"; + sha512.doc = "a86b034ebff42c89f07015b01f86756a83ff2c69ed911ecde185ff719b09e3db47f284fe778c9dfd16442d1513edc9ddbb4944cc242328c17bd3fc18a0aa098f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.7"; + }; + wordcount.binfiles = [ "wordcount" ]; + wordle = { + revision = 68170; + shortdesc = "Create wordle grids"; + stripPrefix = 0; + sha512.run = "fe32704e323185cdc9fcbd3e87bf02c4c0870af501de731ea1b05056cc7e57861042b111a3307597969351960bb99086f99f8577b70e8e6b31cfbc9cf8825157"; + sha512.doc = "38f168ddfdab5e786a4ad5b42f726e7895178e949c04f75ffd2f14fb42d77bf6e8afe22df5b87fecf8490be61aa3edde0dafaa91191f459e4378878aa575e8c8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.1"; + }; + wordlike = { + revision = 15878; + shortdesc = "Simulating word processor layout"; + stripPrefix = 0; + sha512.run = "d600073b2373119973ca47564938db5824181d6b74409ef7f4a2b19d53b83b97ccf8edf5d77dd831c0d52a4379f5928ad7a0391d90a2f19fe4d3ef681133078b"; + sha512.doc = "10bbfa76beb0718dff8d4175712567e34e77aaefbce9fbc350d5bca43d8d5e87fe1cdcce5c558946c2b04beede8628b7535abc451f7d904ac283929ae39c6460"; + sha512.source = "23e7f66f064e7e8bbf94d58118c0c8891a316fc2e2fdf37156b078242fb33343a38d19f03dd605035ce874de1d05d9e405c612e32c407e061f54386cfef791ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2b"; + }; + worksheet = { + revision = 48423; + shortdesc = "Easy creation of worksheets"; + stripPrefix = 0; + sha512.run = "439c430189e74e8c476a068fe449034fa1c8f4e8770ee454b92b8645ee865b103a02b0eecb45a925a8021fa7c64d98240e5f1f980913515df49d8415bbeb2c2d"; + sha512.doc = "56d502e993eb77f7dd4b2a659a8646823cf033a3e246e90b0c6e4e9d2a7cb31922dee26c942404b13d18e7abaa79714b4394b589376d67e8fc1556a098ec7960"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + worldflags = { + revision = 68827; + shortdesc = "Drawing flags with TikZ"; + stripPrefix = 0; + sha512.run = "662c7b2cafb1764a42a94707f350ffe0e4060120071d715c3c1cebd21b2c64f2ca0896ac3c9c1e629b2fe4b057bf0b890805747a668b6a8c04d501a4ac1ca1fd"; + sha512.doc = "16948753f069aa0e9f0e19efe9072c35eddf4bd20e32e6a47321a93bd3117f2206d44d3a76bee1581f7d4dd7e392d2bf1a4fd0ebb83d0d7b6cf207e69a42c7ac"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + wrapfig = { + revision = 61719; + shortdesc = "Produces figures which text can flow around"; + stripPrefix = 0; + sha512.run = "afa6eed496f63dda436a9a57c9f056ae88fb7985328d58d81fddde743a737b1ec69a5409941a76a28840d938397928925500628b2e11859713871977545278e2"; + sha512.doc = "27aa1cfb0641876516eefd483f5f37e25e06c24bc255fe81afadd985d9a5ea73d311184ad46120d57d8dfc584da02f99c90128c6e0cead71064d00c1bae09f7b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + wrapfig2 = { + revision = 69513; + shortdesc = "Wrap text around figures"; + stripPrefix = 0; + sha512.run = "68b48be5ebdf766fd414ce9a121321f26e172802c6c504213306762e383dd1ecdf77f6260a5602b8394945a86c87b0320cc0a651ad054753c5c2510d746a8149"; + sha512.doc = "b2356e3756640a825b44c47fdde68acc49d966508a90ba76a019992f10a9b65f124282d59d26422bf3c51a658b2adc723ad36f4e0d92dcb74a8bffabfefac471"; + sha512.source = "e502c514d9ac982b3fa67428a2be8e97b50b2c5389ab2e29981fc65b002e2c3076509a061635991c2ab48ad8969eccd1ec39e82b2f7a07e34de98bc2801a8dd0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "7.0.0"; + }; + wrapstuff = { + revision = 64058; + shortdesc = "Wrapping text around stuff"; + stripPrefix = 0; + sha512.run = "ec0cfc45b68b5db1b0b8cde55a0b98e2834e8d69727d9a243a4ff814e7f98dc794803c1ee0487263ab06323f8d4cf68a0c7de6639b8f91dca953a8dfdcda3f06"; + sha512.doc = "688ce97d588807fcc36b872198f01a74678f562e8daa2ee4a4bc12a1ee9b3d914ed670d7668af259ee92722e314c28a65555a61b2fde3d22f5b69b4bf05332c1"; + sha512.source = "b7e1b8ea480949adcaffbf9d175b75f9eae3f23c79648080379fe178fbb2976d11446a7384c613e5ebe647936a5aa88c31cd82b2a9425a59b6c41d7ad819d63b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + writeongrid = { + revision = 68863; + shortdesc = "Write on grid lines"; + stripPrefix = 0; + sha512.run = "5e97c246141838a342192743411ce0d3cdad4924433540cf5d1faff7f2650388eaed5f045c60ea5bc69ed4108aa23863f38d812ae4702af1d04000d96d112dd1"; + sha512.doc = "2f4c29ce5949d3f10b8a8971cd62c34a473038f211bd1cb947baf675d9320fa7d4b61931a83675acf6f00534656d827fcda4a5fcfa51b69052c8f82a7625d62d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.5"; + }; + wsemclassic = { + revision = 31532; + shortdesc = "LaTeX class for Bavarian school w-seminar papers"; + stripPrefix = 0; + sha512.run = "064c1ec12a33dbb6c5a2c08c98c21d5684d8be6edb807987e69a47002d52bda4634a8e0d8016d01aaec6b0bcb9851de61d2a1723f70ea7da2dd4000d2340033d"; + sha512.doc = "d86741a35d1873a17839e880b2e1c0915cf7b64bd52e5836f9967159479611482c2b2c67388066b9f171574109a5fa0a5b9555ccf4e629d4b26434a31cd754da"; + sha512.source = "cbf8ef51ab7782a2b52d238ee2f517a541ef1a0196ff72f08cd722c3335a80a2520fbd359cf865302229cf146b16931d4b163571e908360adc8139c2ade5f2b3"; + hasRunfiles = true; + license = [ "bsd3" ]; + version = "1.0.1"; + }; + wsuipa = { + revision = 25469; + shortdesc = "International Phonetic Alphabet fonts"; + stripPrefix = 0; + sha512.run = "7488fab88bb273463ffa45819fb486aa3c95d7202d8ffe2a8aa8f2a1b00555e70bbc5a008a72cb60ddc1759dbca60bed05d2a21b4308e75490e965e71a84ee7f"; + sha512.doc = "b24aa32e2e7b466d7afc827aed570deb70b41163cbe6ce975d8df77e9dcc92b453e5f0d5f0edd5a2f05c006939003849b7b44c2e3f8a86ffd61a51ff307466e5"; + hasRunfiles = true; + license = [ "free" ]; + }; + wtref = { + revision = 69214; + shortdesc = "Extend LaTeX's cross-reference system"; + stripPrefix = 0; + sha512.run = "abdaf96d5c4cc919fcaa5343d25243266f86dc079cf701d71f047b01874baabf20a0c7972a6aa863c7f9eb9a003eb5a516714d57fd453574e7a2c8ee2e500e7e"; + sha512.doc = "f248f448bcd110c59d5dc19c67d4192a20d4f334c6f17562d34db0dd4ecbd7c6414ece9ed4e55aaf2ea42a0e5373fc5f25e8eaaae16b468687bf5c2d2e88b908"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.0.0"; + }; + xargs = { + revision = 15878; + shortdesc = "Define commands with many optional arguments"; + stripPrefix = 0; + sha512.run = "43b9cc5246123ef3c424614415e04db9e7a578eef348c3d580626918a4c31ac99714cf501dd54d305ed6ab9ad7e0533bf5b39250c43ad682032dd676a12173d2"; + sha512.doc = "387a051eb8581b51d2042bcfae2ff9af99659d664c328c6b30b3789c75fb73687c32e2037df7a345335966671a3e3267ff4b9e0eead0e5b759bd305850ef22b6"; + sha512.source = "e4717f476260648eb66fefeeb125606c16d302bbad32c55730a0102da355d0c828b106b25391f69bb34627f56cd7659dc185bbcd36ba7f5a8f0b77a0786a7957"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + xassoccnt = { + revision = 61112; + shortdesc = "Associated counters stepping simultaneously"; + stripPrefix = 0; + sha512.run = "4b3934d7a4a219fca3f276b26b893706ed8a65682425ac40d6722734f3e133099837ea8aebf214bad32c0d6b415121f73ea605dd851f0f2542dfb0bc38744313"; + sha512.doc = "020a2fb86c86372302e68636d727203625ddfbf63cf8eb5b3055502fcd073c54b52a44f8c7bfcb2c3c73a206082e5d285f05cf762b9857d2e16c43fe36f8fb96"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + xbmks = { + revision = 53448; + shortdesc = "Create a cross-document bookmark tree"; + stripPrefix = 0; + sha512.run = "e17701f9cd79d49467e4dd47ef9a504a8b0fb44b216fbfab0f5547e9215c4dc40f1fa46aabc209ff2221a4a9424221adacc52f6040d3f796d51f2d37dcd4e8c5"; + sha512.doc = "76d255a036a19d80c826eff4b18643523787c53f9b79e44710e03f9bb8a7648136559727dee246508c1cc6ff332cbc92b8d1c728b4583ae26502ce44538a61db"; + sha512.source = "4c3a9ade3d3c204db2c2d0e11a55bef0a18cf1e3e4dfa292c3da356ef5ef5aab9ed6021d07f6222f1ec722298c46ee4e4eff02658e76b99bb426e6e289fbc136"; + hasRunfiles = true; + license = [ "lppl12" ]; + }; + xcharter = { + revision = 67742; + shortdesc = "Extension of Bitstream Charter fonts"; + stripPrefix = 0; + fontMaps = [ "Map XCharter.map" ]; + sha512.run = "9e71217c7df0e41de44aa8cfe09b36955910ccca4337d878b0f18f4352f52d14b9dc1cafae01e9b06ed1a094282bb73b25e5328ccbf60e6070b57262e106018f"; + sha512.doc = "04b1aa9efceb7b87551ffb6743605861ebe695118376940fa84e8c3a8b0ff7c073d86850713f8df98381c674fff210bd2f4dddfd82de4f152945207ec4c44354"; + hasRunfiles = true; + license = [ + "free" + "lppl13c" + ]; + version = "1.25"; + }; + xcharter-math = { + revision = 70333; + shortdesc = "XCharter-based OpenType Math font for LuaTeX and XeTeX"; + stripPrefix = 0; + sha512.run = "1b9da3251b6f5abfd2053114edb174638046603c6b2f46a8baf26c20050f3f614b4a9e01ef92b458ca4b97ca90bef7c72bb146754184d311553bb0a429e29873"; + sha512.doc = "291b67678718b0facbdd38b95d24e75895a74d7bb6cde5c320598fecfac2ce0ebea442d0d3a62c63fff9ee38579042525297518c9373d90edcbdf425605dd119"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.62"; + }; + xcite = { + revision = 53486; + shortdesc = "Use citation keys from a different document"; + stripPrefix = 0; + sha512.run = "0412a4f47a044efbd22adbbea9cda1bec44379dbc799ca83821d4650e8e40f6b5de51b80ea6a80d747639a9b840b7cff6612b6e4df0b2c09c0f3ed506d3de714"; + sha512.doc = "11af105ca5f1610e5cfa226cb191d1f69d257e21439c2408283572e136b183518f58631ec1b0b145a1edf50ca58e9a1eda789e5646c47b46f75a6325c90262f5"; + sha512.source = "0f6d0e7206b59acd468dbd77ef3358d2865f48e2d59ccae2ec185759c137b9db99bf417acf71ec40cbafbf2569cd9b4a74a97b7a3959f51f1703af9a026486e4"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "16383.99998"; + }; + xcjk2uni = { + revision = 54958; + shortdesc = "Convert CJK characters to Unicode, in pdfTeX"; + stripPrefix = 0; + sha512.run = "db0be3360dc3d6373866c9d27900f8dba9353bcf92d219f9f0b82532e2855210230a06b87d1ab6eef7e1f96c54e46884e6827395affb9375120b7cf8d2fbb99b"; + sha512.doc = "6a9958bc6ddf6d167b9d77a513d04f0077c9a8581109c51166410d60d5a243758da62b40bdf5cb1488a50b9ba76ca89261a2d31c3819d8b2738b4a7023ac3f90"; + sha512.source = "8868210c53fb379e12b22472dd3575baa62743cc059b3215b634aa59e61af5b3bed8415b9b811a7949457dbee4a051e4926ecca02c293be775ccfb3467e0883a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xcntperchap = { + revision = 54080; + shortdesc = "Track the number of subsections etc. that occur in a specified tracklevel"; + stripPrefix = 0; + sha512.run = "7be16f92de86fe67fd34857f7151f197e5ae52e9ab944e0ef3603882585dfb240b8e01072747b18092c6ff060f2f4c341b27e106ffe8864dd1879c3965435e47"; + sha512.doc = "c7d25df1dbac57e05b589662214e46ba446def465ae7f64d8a2d52283151ee04aaee93ac1bbe0f2c7b01c50e505ca6c1cfac96750d1b13211d309a906427c6f6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + xcolor = { + revision = 68864; + shortdesc = "Driver-independent color extensions for LaTeX and pdfLaTeX"; + stripPrefix = 0; + sha512.run = "6b7d38d631f89f4c4ffa9f447a16cef6169c3e4798c5c65339fe48f9318291373a49ef9da8143c453fc5fd9ee853bad53b5477b248ad5f99763df9ea28638c78"; + sha512.doc = "1dc8355913a62657a2b50d45a6fdfbabc8a0dbb835ec5912fced934350b21619e8081b9e9a4774ba48ec3c51572c7f95f52efe92c85344dd81da0bcc81e73809"; + sha512.source = "98fdb68955160820347af83f7f44ac97c3a61b9732af2a17980155c103b6d6ed9037504ba99aeeda5608fea84f82ac871dbb55d9de334943a74aa617caaa70fc"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.01"; + }; + xcolor-material = { + revision = 42289; + shortdesc = "Defines the 256 colors from Google Material Color Palette"; + stripPrefix = 0; + sha512.run = "7f1484435458dafa2a04eeb4b5b1b89ffee9ec8c91f1d724449457b719f92db009efd6b6a580a2b0ccb8ebc66c0d1889f3ffa05104c0fba5cc9c7ee90985d2d3"; + sha512.doc = "388f9b604291436ded0510437be93c1fdf120a91fc3ddbabb870840f2caa9e81313035ff6c9d0c00de259fa024f83399a4004e7ba512a5c3bc7920a08ff58819"; + sha512.source = "118b21c883848b5bd6d558b5c22146fad54df5e107d0525e48df42c0bbe90b210c7ea3340fcf30b5782d251ee1caefa2aedb8a130cd01a84f4e9022a40ca6a8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + xcolor-solarized = { + revision = 61719; + shortdesc = "Defines the 16 colors from Ethan Schoonover's Solarized palette"; + stripPrefix = 0; + sha512.run = "fe743e9aa394c6a8a75f8c9e87cb7349d87df114a8c5753a157d4dd129a677af6a0381969f7719712a9abbb9fc720e0d19f8e7ffcc2bd7ba09ee8cb3df3c8d95"; + sha512.doc = "bdc4d9a9a0e1ace78a90e9c64fba0894599179592c948494588e43efb21e3b329d6f0a0c403b21073943251796b4cf37f8d0665a8e8bf438b09616fed19c03ff"; + sha512.source = "851e8ac38bb8a5f6e3410daaa307ba54a5762f08e10b656234feb020354b79caeffaff1de58618e6e9f52cfa50d40013fdeb1e32f6605593dc224cf3650e54f1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + xcomment = { + revision = 20031; + shortdesc = "Allows selected environments to be included/excluded"; + stripPrefix = 0; + sha512.run = "ad19a29caaaa4da90c740a18f3b3bf63666303f8047210197e17c270082d483e33085c9249d7143ba65f343f6bf3b52c6974021f954831c5196708824e21b843"; + sha512.doc = "d3b4d70cd88923e25595acf726afa6eea2efff4550455ed2eff48411621f212059ffedc3a82e4ac15359420a00c69b55e3625d11f8e8d4111eeb87cc3a6e8cfe"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.3"; + }; + xcookybooky = { + revision = 36435; + shortdesc = "Typeset (potentially long) recipes"; + stripPrefix = 0; + sha512.run = "3f74d540c4da5ab4f6f1b6c78f3a35172fb4f2d94b7c720fe3fd1d31e1c53db6659371da6d48adf755675af831d252178b96ba57a1f0c0319459f4a564897b49"; + sha512.doc = "29d1620c7ea3d13e4fdf97454bf824fab8de6acd96661554a1f37717e4fa0dcf6df20cec580b6b25101b75d2d22080962713d05347eba4974c5cbdbca6129ec6"; + sha512.source = "0a0d8eb171bc551831f65511f74b9db402587b6bdb47dfcd3d9e31403eaf530e954c5ce0510f9fa4e850b3036bc6807339aefca9567b9fff7152c72c8332d640"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + xcpdftips = { + revision = 50449; + shortdesc = "Natbib citations with PDF tooltips"; + stripPrefix = 0; + sha512.run = "ccf564a59d658a4f6747a3df866d0b0a0d6dae489215b5784fbc0619a2f3f222ef348c5fb96faf192d9db7e5c63d44c5f94549cb809e89dabd06bb43d745df1d"; + sha512.doc = "5d483b7bce276815fbb3602d4082ff9c939ae414cb2e2b03f75307c71b2b19a6adba23f609836c78859df5823f4aaad175e01b9f223326176b62a4ac9060cf02"; + sha512.source = "d386d33f5437cd31bb8dae0ea51a22fc90353f7866544694e3c41bd2f9cb70fd734a92bd50864a0b20443bfe40f6f54cc404e503da395e928ae69fead87db771"; + hasRunfiles = true; + license = [ "gpl3Plus" ]; + version = "1.1"; + }; + xdoc = { + revision = 15878; + shortdesc = "Extending the LaTeX doc system"; + stripPrefix = 0; + sha512.run = "8cee132082c70214560ca8377766f45e6f15da2af18e0e9d68205d094b2a6af4d50150bfa6d145f78d92bb95c8657ad9fab1cbb8e76b75859f44ac1039464cca"; + sha512.doc = "cb7fc71f84f88a1035e91500e9b7ccf0c425733227e4106c7bd87eb30b25c8fdae6bce046f22e5a07ec919ee0527f264dcd826b7e6468eaf21a791e7dc0e7ab8"; + sha512.source = "d82f9fe7cf0a2faaf0cc6a5f1f1d5916bc3eecef63e6e983f62c4b17d36b17f31251af6e704811af2094cc43fada5597b0ceb432a4b38c4b066ab041d7a5c578"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "prot2.5"; + }; + xduthesis = { + revision = 63116; + shortdesc = "XeLaTeX template for writing Xidian University Thesis"; + stripPrefix = 0; + sha512.run = "af32af87d621a3ad64ff6565a02190288e0f97526973a1a3a185c077aef8926f56e9754fb866812f0cc7f515b54fbf7583fec10c17d6f9299d1e186c9a8542e0"; + sha512.doc = "45c12bd4d3127c5d49ef5bfe434b7f8df5487c37fdbbe6ff687ad07796e95aadf4f027cbf16ad4fc5a8fd3455467c47c32ad99d8bc0397d6f70caeaf199d3ecb"; + sha512.source = "c5c2276a352d01ec6ff2724d069d68e29cfd3b78272b5c7a075189dece45c28292b814a9baa951c14ee166f66c9c26feb19c86d31fcca5a65416a1fd1190d61d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.00"; + }; + xduts = { + revision = 66661; + shortdesc = "Xidian University TeX Suite"; + stripPrefix = 0; + sha512.run = "8c2b0b04ff619c18961014213db4a509af10d46cdd5177706021675eda7d408be01a3f9c9aeb18556b59535dd9cf8de7d9147c36c57350ee3fe8e02e61f416d5"; + sha512.doc = "7e89d160b992eba61328618ea463014c52f861eb1b952f05aec2860878c226d0354470522468ef79c710486c0ced8bfe76eee296035a752178fafcd380f957a4"; + sha512.source = "3227078ea75cbc6d23aae9086f51bf86b2d7fc42d237767ed90f915a6d2255f6e2f816c49d77caa1d85fe0f623d99d3e76dd458db699b458df5c28f3fc5fc092"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "6.1.4.2"; + }; + xdvi = { + revision = 62387; + shortdesc = "A DVI previewer for the X Window System"; + sha512.run = "57024e05928f45e253e236d7e8c6b9cef07359c1cabc10b3f6ac13a9b98dc04530517d8d66b20cefaeced793fbc57a5373c226fb3d26186ba3bb7eaadb0f4ef2"; + sha512.doc = "0fd1bc1ba7bb022f03334fa6c6bc6aed779179a7c486211c3016b0880efa2b13859eb7cea78e8bfc0069192f93313d37a4966fd7e233bccfb1d010d3e413cfd9"; + hasManpages = true; + hasRunfiles = true; + license = [ "free" ]; + }; + xdvi.binfiles = [ + "xdvi" + "xdvi-xaw" + ]; + xebaposter = { + revision = 63513; + shortdesc = "Create beautiful scientific Persian/Latin posters using TikZ"; + stripPrefix = 0; + sha512.run = "c12da79ef06b07aaaa361fcc474da416bfabe898095eef7bdb9ea80efddc8051735b3cb4c86eeb052bb906b3fc96d3e3ea10b23e0bf00bc0aefa80433d6e6ae0"; + sha512.doc = "c1018a8009d360ea411fd816719844af3e13b429135e533c2c033898f763f010f281ac7cca9c41572eaf1d5f4a9c4a837e4f0651aa03c140c2285dd3f087a7ba"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.53"; + }; + xechangebar = { + revision = 54080; + shortdesc = "An extension of package changebar that can be used with XeLaTeX"; + stripPrefix = 0; + sha512.run = "833f0b1cea32c0bb345d1aad5360613ee36baf17a35e13d20a4bcc75edc77b3a7c48c4406ddadd670890cb93dc0d03cf91462994271f351ebf2bc221bfbae5a3"; + sha512.doc = "6d2c385b3b826b8b97cb725ffd3e7479ec3ddd2d2bbd8c772fb0b1faa9d0edb758871003ec379d8ec349fc4e3f7de2bf3130cc0e5d9e356ad472232d16acb546"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xecjk = { + revision = 64059; + shortdesc = "Support for CJK documents in XeLaTeX"; + stripPrefix = 0; + deps = [ "ctex" ]; + sha512.run = "3382b181053c76e58ba3f77b195765d83e5515a48b0c73580fc19305bd395de8d19b98be3494da8201b0a22a851a53c82dda14beb54a545b652cd0bd5719af67"; + sha512.doc = "b2dd0caf3317d708cc001b5aba57979f86eaa20d9d38d360650b45fbb683603e2075658a0c0a9c0631c81ea06ecac27694c45df47f053d9e7440901d66280295"; + sha512.source = "07fe51d62358a376d2f3cc2774cf606bd4e9f8b3bd3fb202427f34c3c15b004fed5985f7fe776b3529a83ea4aa3e3e176311e14bb0a02cf055eb501a3f474839"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.9.1"; + }; + xecolor = { + revision = 29660; + shortdesc = "Support for color in XeLaTeX"; + stripPrefix = 0; + sha512.run = "0ab23e651b36f06256fab5acb14effc93296948aecf7c7f11c81f4db89a58bfd8e038dd857a1da3a86ab573cf0ffb1d1bc188789e0d493ab0d0c1c9d96d593f3"; + sha512.doc = "9441eff384f57e8714cc543ade380ecc321e6c0e7dd0ae69c71337458e2607a43f793b490bfa6752c1c70bdb17be92488b89ff848ab9a3a1700907c15ed857c2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + xecyr = { + revision = 54308; + shortdesc = "Using Cyrillic languages in XeTeX"; + stripPrefix = 0; + sha512.run = "0429aa515115ef69811069b08567c97ce40a8be68ebe72f26b8e94947abd86394204b21bbf25ae44c616a806878fe9900f5a639bb8707106836103ec06663454"; + sha512.doc = "555ef35f9e50450a796c24b87295eeac319d087a61e4fc7cedafbc398cb9a5c0add8b93318b8afadd82bbd2ca90dac9ade02dfbf286ba825c1d697b58110fe5e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + xecyrmongolian = { + revision = 53160; + shortdesc = "Basic support for the typesetting of Cyrillic Mongolian documents using (Xe|Lua)LaTeX"; + stripPrefix = 0; + sha512.run = "2faeeadc81ca7f6fba45b6b237fb604a6eb6e8888117f759f6d369ed354b20b35dd007eb11c017e4f0ebcfa99627f519b291eecd1b41505d7f4ecbfc23307784"; + sha512.doc = "11b9d4a92c6df44dfc629c7385b56463dcb13564e819cf1bde005e228040a9f675cfb5818ca9f5c5d59a3db7a0d42a5584d9a3a530d772ba2b4bf3145534bc0c"; + sha512.source = "57a31504636eb9ebe717b6eb9028d5ed0eacdc7b9d406ac3822539a9e40ed0718668a640d557677b1a48920b272f3374817d8182b9db04a8329d2ee20227d801"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xeindex = { + revision = 35756; + shortdesc = "Automatic index generation for XeLaTeX"; + stripPrefix = 0; + sha512.run = "bc3f399973bd8be5b83ea6da2c39d80de8f39ac6cf2d82d689c81816cad334310081f44fb4e256e442fc47ed6640c2b8ebd185e431f0d0ddec5f75f7b535283f"; + sha512.doc = "c84682c8034c5e182bcbb2ac0411f4ba5d8065a5db1f008c6f9e7a01b94b3563c44c03fc4c1cf48b3b09d19ba93f22778d8840741737bf1a344cb0c8f66ceb49"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + xelatex-dev = { + revision = 62145; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-base-dev" + "latex-firstaid-dev" + "latex-fonts" + "lm" + "tex-ini-files" + "unicode-data" + "xetex" + ]; + formats = [ + { + name = "xelatex-dev"; + engine = "xetex"; + patterns = [ "language.dat" ]; + options = "-etex xelatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "latex-base-dev" + "latex-firstaid-dev" + "lm" + ]; + } + ]; + sha512.run = "088c917758f727ba08b8571d302c93f0b14fc15ca6dcb0ef7a89df4ba144c508d8d42265cc6b1915707329b64aa1d1030ed0b5513987fbd4437d0a58a232b5db"; + }; + xelatex-dev.binfiles = [ "xelatex-dev" ]; + xellipsis = { + revision = 47546; + shortdesc = "Extremely configurable ellipses with formats for various style manuals"; + stripPrefix = 0; + sha512.run = "3bff74473b4e7fdc7a349fd54e7703b77282381d9ff5eac233d5eb7cefe98f4abc5ea4fd309b8693bd7245471c565545e0ab437a5f8e5cc1b89368c914078d54"; + sha512.doc = "20d238f8281b93643af570c3dd09a9cdf9822af0da6a9d06b3b9d09196ac4c7fcff2efa3271f763caf42e54f9c72d2087c491cacc5ea4666cef1060c12ecab3a"; + sha512.source = "ae58f20d0aaec99bb7e56a0a5b277210d5b9efb8e2677e9e22caa08ebe9576befe19e4b7409625aee00b30cdbe1d90ae61623e86d3fcd255df96dbb7c89291c3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + xepersian = { + revision = 68117; + shortdesc = "Persian for LaTeX, using XeTeX"; + stripPrefix = 0; + sha512.run = "aba7b248b1ed6fc557e51c267d3da21a3f3473cb0b0d997ef7d899b3ec518a099a173a163c53aaa7ff29e13aa2f1dbebb65775af828c85fcb9e4e91476d6e1ca"; + sha512.doc = "dc2f7a06a6122baf9f2284412edf4231eba88f6968f86eb06e47a3e3f3cac14f833ccdb8f69e95b17a05cdc9c3244c361e8d581b6ca65a715a82662ae722fd35"; + sha512.source = "6cc50aa2d511d744499620b010066916913aedb63ed871f93ab8cdb45380da206dee76c4d8ceaf01be5df971e0437ffd8b469a3ae793810043515a966fdb40a7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "25.0"; + }; + xepersian-hm = { + revision = 56272; + shortdesc = "Fixes kashida feature in xepersian package"; + stripPrefix = 0; + sha512.run = "50a3e4a12055aa051f72c8d9d5f616a6901aba7c8dc6777610b48d7e3c993c6a49996cdd77ef01161ca9b7dc588cd9d86b1e1c4e65eab4e4a6d3a3697a990d92"; + sha512.doc = "79b0a6e9876f697b8c7e08d5f5051975d29e9b7b3245b49a74ae5c76bfb23926fb4810fadcc029ee529f5f2752a49c2ce748277da0fde50f5078becff090b1d2"; + sha512.source = "b43f74f1cbb9e2bdd06ca614f17fce49a18018cc3df9f88ec3a4732bd0b4bbf7068ac77a65d549806be4c07a2b7ab16c165fa7d5a9c9401a4dfb60426c5fde23"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1a"; + }; + xesearch = { + revision = 51908; + shortdesc = "A string finder for XeTeX"; + stripPrefix = 0; + sha512.run = "4c204a8f92fe9af0ef1f0da99dfb12ac8f784800f7ef673a116a5f5167556fe49584b9457bebfd07aebace44951327f8a576cdbc8091a7aec776768384c62507"; + sha512.doc = "981e6cc62a2f50815aeb875c46ab2ac83510ea535953629755700650831500410650b66ba070d8b5ddc494792e782fb75f266ffe0fb868318a4782b2f8d701f9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + xespotcolor = { + revision = 58212; + shortdesc = "Spot colours support for XeLaTeX"; + stripPrefix = 0; + sha512.run = "fcc3a800986069cf64c62b2794447650331dfc2fbefe26fc2d537ebfb520acecb6530bff7591a597fac9b108f23781f0faf7c27b97f35ff2358d62c09404a5da"; + sha512.doc = "90ff1badeeb6e2d6cff9797b1af2052b4fa8474279c7b2e9916f7f02c767988d640b57f3d63be8de9f0082e50bb93c1c122b3c1f9bf74132c5c13b1b6b70122d"; + sha512.source = "60aa75660ec567a3015bd8b4985e95aa3387cbda9b239c2d1d7e8bb29fde8d44fc414ebfb195aa3be037a3f4cbe510354e28d3ffc9d5777d054585597e2ab762"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + xetex = { + revision = 66203; + shortdesc = "An extended variant of TeX for use with Unicode sources"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dvipdfmx" + "etex" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "lm" + "plain" + "tex-ini-files" + "unicode-data" + "xetexconfig" + ]; + formats = [ + { + name = "xelatex"; + engine = "xetex"; + patterns = [ "language.dat" ]; + options = "-etex xelatex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "lm" + ]; + } + { + name = "xetex"; + engine = "xetex"; + patterns = [ "language.def" ]; + options = "-etex xetex.ini"; + fmttriggers = [ + "cm" + "hyphen-base" + "tex-ini-files" + "unicode-data" + "etex" + "plain" + ]; + } + ]; + postactionScript = "tlpkg/tlpostcode/xetex.pl"; + sha512.run = "fddc7a48405d5ae56b09fab5f180372972fc7fdd10eb19ec8e2b0f6e1e3bc54d2f92512a6954238c21fbdd75425923dcdf115bf16fe35ab3a850363c41ac99e0"; + sha512.doc = "7fda9e0a2e7f4dcd6a1813cf8fe280f7193aa88a77cbc5891b892112950e5d5e7690328e267805c8b9a24dc735e7991065ee3664b1278fa334f83ddf06aee236"; + hasManpages = true; + hasRunfiles = true; + hasTlpkg = true; + license = [ "x11" ]; + }; + xetex-devanagari = { + revision = 34296; + shortdesc = "XeTeX input map for Unicode Devanagari"; + stripPrefix = 0; + sha512.run = "96eeb5289b4b0ce252eba1daf15fbccaf2cbb2d251a85818b6dd761048532f36355619e37f1f857caf4592cbf85d112d6d48d5944c455ef36da9913529a783fc"; + sha512.doc = "0f360c3f43c6562520b8843269068fc46ecc405cd3a4d8faecddc4f606d69cedcab28950fc1d2e11699e297fe4d70c4c3d50765a2ec30541c237914accbc7129"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.5"; + }; + xetex-itrans = { + revision = 55475; + shortdesc = "Itrans input maps for use with XeLaTeX"; + stripPrefix = 0; + sha512.run = "9c39898cbcfd024f1a274311a192c647e15624fc04a9484daa2d08ac37340a799b4209a5aa91a5e3a96f774d7363198c5a07f66d88578e1998ef3680b10dae6a"; + sha512.doc = "f10eb9651823eace7f56e88e710bb5536a35204b8fee80219419659d0e2f5fcc60c6009834fd9aa215aa42e8291e14786688fe1974dcab943578bd22a40f4ee1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.2"; + }; + xetex-pstricks = { + revision = 17055; + shortdesc = "Running PSTricks under XeTeX"; + stripPrefix = 0; + sha512.run = "59186971a188f4541361df8fc492b3767069b3081f7052c88df5395539807970c709537b074790411dffbc871010cf4d3fbbdb6684c43007477c44be6259b64b"; + sha512.doc = "cf71359ea6e56061848b085da9755fd3d96d2a9d30484b5d5028c7a3dfb52dfbe275c46f17016179a56f90db3b6df4453cbf3a990a709e59503fbf1a576eaf8d"; + hasRunfiles = true; + license = [ "publicDomain" ]; + }; + xetex-tibetan = { + revision = 28847; + shortdesc = "XeTeX input maps for Unicode Tibetan"; + stripPrefix = 0; + sha512.run = "de7d2f875416336f25e8a14f8c743aef87017cc0aeb30b5c6aa9e1bdf044d71d3c9e9a28d52ccbe7fbd2099ca9e47938310dc3311e46399027aa822b76ff90c9"; + sha512.doc = "0bba33024862284354416e55f2f718f3f3220e4a853c68bd6386c013702aa07a3142864168f6d136bb351044dd9ae8b59754cc2a0181a358fe1baad49106d504"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1"; + }; + xetex.binfiles = [ + "teckit_compile" + "xelatex" + "xelatex-unsafe" + "xetex" + "xetex-unsafe" + ]; + xetexconfig = { + revision = 45845; + shortdesc = "crop.cfg for XeLaTeX"; + stripPrefix = 0; + sha512.run = "62b130d16ac01845df5acb1a10e487408208b0c4369d58892a83a42609b3dc92589195540154d1e07a9cb528e8e4ca65009dfef236efd53b9cfbce0a942c5b01"; + hasRunfiles = true; + }; + xetexfontinfo = { + revision = 15878; + shortdesc = "Report font features in XeTeX"; + stripPrefix = 0; + sha512.run = "8099f45c704ea74e5bbd90b1817c3ad06cffe3d6da0a997f8471e72cff364d346a3cc2e6f156b51bf7bc3ba149e5c755423418d58be89e1872f84db9c1eef039"; + sha512.doc = "a5a9b085e5dac02d75b83c7063fe653724367ce203c20832e2ef6b11db10e31bcb90745a7b7d65427a33cb018d68afdd4acf9f92c907f91904188ad60f2e1460"; + hasRunfiles = true; + license = [ "asl20" ]; + }; + xetexko = { + revision = 70316; + shortdesc = "Typeset Korean with Xe(La)TeX"; + stripPrefix = 0; + sha512.run = "860352c31f173c31f5b296759e8ff1dc4c2ef58c9db459c52354db92362812a96c359b4e344a5aeb6ab4c52368bb3c409aaea39102e5a48dcb973c285d5f55c5"; + sha512.doc = "7deb9249472c4dce235cfbe38e1e8f5f11a792e559a5708f6d9a2803bdcec68baa7e88fe0a25545896c6f671b7d6ea91b9637a2d75907d667d8b8454597b6f5b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "4.3"; + }; + xetexref = { + revision = 68072; + shortdesc = "Reference documentation of XeTeX"; + stripPrefix = 0; + sha512.run = "a26a066a25162d3f3484158b6a5d3e3f44727ab5b7e3d3d9a4457fd80e92522f09d61015a4a3b0fea4dc63987ef773c8850b6afe8a50fa5ac2ed58cca51a4ded"; + sha512.doc = "d0f2de750f04ce63aeecdf00a5f0628978c78afaa753f8dd2b41a819c76bb0531bee8906d4eb2014075cf4d0202b6c1fb41a9093120614478045fcb0820a70a9"; + license = [ "lppl13c" ]; + }; + xevlna = { + revision = 43864; + shortdesc = "Insert non-breakable spaces using XeTeX"; + stripPrefix = 0; + sha512.run = "69c80d5243a4af96f2dd8092926d2766bad5d6beaeff94d6aa2f184a68a45fa50bb3abb91a4652d8c5e5617073aee9caddeeb73fd5399965f477be7075b7ca01"; + sha512.doc = "d0d033b646314eb250b245575ea2361b6c12f13eefab071c2b9f91524b08bfceb9fec197c3fa5f61e3ed19caaf4198e69ce1305bf1eb2daf1db6e30365eeac48"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + xfakebold = { + revision = 68929; + shortdesc = "Fake a regular font for bold characters"; + stripPrefix = 0; + deps = [ "iftex" ]; + sha512.run = "96d7c43d4aa975f5e948038f07c765397dfa240b41daee453064e8c7abd90a1a52cb8af02715de51b6e56aaacc4f8e6f72e40c562371541ac94c00e2f5b6aa2b"; + sha512.doc = "11b63158d7e780d390a1d4cb4d046108fa34212431d41dec582404047a8fa272e625898d4f1181fd8728bba789962b63b5462a9ea5556fb896b68ad2eab3c038"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10"; + }; + xfor = { + revision = 15878; + shortdesc = "A reimplementation of the LaTeX for-loop macro"; + stripPrefix = 0; + sha512.run = "6e3ebe83dc39a87aa86d5f173f56893ab1678253dc18dedf16c5d4a2df864e21b9b6e84c6bda56e2c624106efb2f73c110964948e4d553848bbebae87f05bff8"; + sha512.doc = "e75b3d57c09e1580282f4002b684645aa21aeed4f90626b7e439f30dd79edec9c6f23492eef83b67e9ccb885c001caca6201d43b5182632a5b38ba5f67488b52"; + sha512.source = "508dd3c696da5287cee35fbeca12aa60667908f1f456a9d1333197e76b707902d281e83146b81e0a095c168054ec96013074f5b0bc236e35cb17732f4158e2ae"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.05"; + }; + xfrac = { + revision = 69888; + shortdesc = "Split-level fractions"; + stripPrefix = 0; + sha512.run = "6a173abe1f5cd65db836157fa336be76bc9879e137f2542b3141bb096359c3bae771705a3b761730e1e3bbc7d623cc08ac46f87af7412be4fa4d7f42a70ba9b9"; + sha512.doc = "292b12956c4236510024bb3c85b4b1aa791de4eeba14dd88affe264c6384080c2340eacbeb19592424f2231e8347ae6d1b4fc32eda12320dd694557a982aa80a"; + sha512.source = "f22458c874e394753b0dc6296a86a2dc6cd8df8f03ff3f84e09118bb0069d84c2de56213368cf351ee922e8f753c3348dfac7bc4d9f496a3aae8302304460136"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + xgreek = { + revision = 69652; + shortdesc = "Greek Language Support for XeLaTeX and LuaLaTeX"; + stripPrefix = 0; + sha512.run = "b7531fd3f5c42080990022689e5e4d43a0d16f9fd206e389bdaa0aa8c9345e062dc0a14d3086fa0b6c8b641a646edde9b7031af91664f1dde56e5581f2019882"; + sha512.doc = "0221363435657925da4f8edc62b08b9114beca5cee39c410d57b1661a6b6f084761a0ce0be76968193d950b427aea5e16844b099a386420865765b569dd4bf8f"; + sha512.source = "34ae0948d3ed0343ebb4007997e3dd0c536f6893d757a83082a031e2dd5b3f4f13eb6cbb6ccfbe38b879e6a2521bf13d9e5a10a0c278c5caef1300114f26179c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.4.0"; + }; + xhfill = { + revision = 22575; + shortdesc = "Extending \hrulefill"; + stripPrefix = 0; + sha512.run = "cc0ea9e9d40a590444801359c455716856c807eb429aa01b460fd7566797490932bd3566a5c6f95bd6723e0b05bde1aa632b83383c8bcdeba8a455cb84ea9f1b"; + sha512.doc = "027287d941c4576d7f55a3d618e13cde5348ac072f3e546dac6f8a8814efb982f9cd0c4162866403f946d07ecba0ea8cc15543cafbdf9008d60b78d0ea3d26fd"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.01"; + }; + xifthen = { + revision = 38929; + shortdesc = "Extended conditional commands"; + stripPrefix = 0; + sha512.run = "21c5882ffbde05c50a6536fbf19f812a3ce6381f565227f61c8062281a2472a105bf6223cdc03adebf275fa23dbc1ebbb967349c715f20d1b516f100f820af3e"; + sha512.doc = "52ffddbfb4d0d579849b7a89d30bebe9f1d511751c89012712a8ef73ae3f4eb8799ef9b3755dc957c47fd874f1ce76b3ed54591d59f7e4d9e1851c50aff3dd4b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.0"; + }; + xii = { + revision = 45804; + shortdesc = "Christmas silliness (English)"; + stripPrefix = 0; + sha512.run = "a5355a456005e09eac4135735973a14a6add3a31639fcea441d8d6a7c06e7a7efbfc1470d485ab317fa193897abc2d9edeccadd19239944014b7fccecdda52a3"; + sha512.doc = "c9b348da09c3a9c1522eb7713a17a58b3eabf4ff8ed52e8d14dc9eeff528ed93af505b5e3cb59c1af4c2ce999c6c1d98f66d026a6ab3d7a09778230286059d84"; + license = [ "lppl13c" ]; + }; + xii-lat = { + revision = 45805; + shortdesc = "Christmas silliness (Latin)"; + stripPrefix = 0; + sha512.run = "e4538ac31b6508371ee156168d4da71644a65297b91be7f070291f35563a45a1ee5a528d25585bc23a4690e8fc5c6ad04bfc829de4e95f49468a5852fac9e822"; + sha512.doc = "50322d89f494d07793d964fe515b8a0bacb74bd5706a6da80f6860771a8e3cad35c7d06bf398217a7e4364594d54f4dc490f39980194804a04460047ff5083f8"; + license = [ "lppl13c" ]; + }; + xindex = { + revision = 67771; + shortdesc = "Unicode-compatible index generation"; + sha512.run = "bf812f7ea5f981969b1963f470a0006c4afd937ab27f6b40f7897dc2b6ddd1a0ae60f347b8ed13483ec4fd9feccff257a79dd7b8a2720be1d49a40fe2b325fc6"; + sha512.doc = "ec93cf3bb639326dc6905be018481da8438ebc5558e4c161419910e1a4427f6f7bb7bbf35ac779ea6769b6c009f9b6bf657b78c7c42bf7100725e8cc6252c975"; + hasRunfiles = true; + scriptExts = [ "lua" ]; + license = [ "lppl13c" ]; + version = "0.55"; + }; + xindex.binfiles = [ "xindex" ]; + xindy = { + revision = 65958; + shortdesc = "A general-purpose index processor"; + sha512.run = "9b7fe97c14e3cf30d1e6743c2d7b4460e8bca901ba3ee216001f1518ff4d834fb3d9b67085825a6e152c6acde544c41cf16d56e609016caab89a594305a21599"; + sha512.doc = "d0dacd7cfa169b03b7fa9d0b351133582577c3908323f501d7bca7b0165159b72c34f62abfd73b97065baef8cf179b292e654759f3b3e324112623539e5acfd6"; + hasManpages = true; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.5.1"; + }; + xindy-persian = { + revision = 59013; + shortdesc = "Support for the Persian language in xindy"; + stripPrefix = 0; + sha512.run = "07313253d80b5ed6494e1189088908e03590424c7d24038a437dcbe83637db9e426fa0989fa202f25f62e112cc77df3c4acef111bda6c8b44dc2b2660af959da"; + sha512.doc = "3868c7f2c20e22cfb3b1ffc61c830581d774ca909c4fc450586ed0bc82a091546efc46540a883e667ac5ac7d292a4786019384afa741599634a2fc05975c36e7"; + license = [ "lppl13c" ]; + version = "0.8"; + }; + xindy.binfiles = [ + "tex2xindy" + "texindy" + "xindy" + "xindy.mem" + "xindy.run" + ]; + xint = { + revision = 63562; + shortdesc = "Expandable operations on long numbers"; + stripPrefix = 0; + sha512.run = "7c98cd18683bc57dbae80c74fcf30995519f5c6176b5af4865ecf3adce844ac0a58c5cef2bb96e30f9d244da37effbc0b164a544dbdfb9f69ef0314c0be1436b"; + sha512.doc = "a1ecb80e4ebb43b5b3979493f426b89d7b952c03a388f3eb36d3496506820b97e15926736f44f94195336224e3d382139458ad8c6f6060bb5129ce4edf9d3e39"; + sha512.source = "c05b56b92a09c51eaa9a3e12bfe52e85408efd97175a2ea8f1c504bc5fcb6800776360e9453b970d048e97b129da2316ae5fd5c257978c3423bcee04f5c864db"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4m"; + }; + xintsession = { + revision = 60926; + shortdesc = "Interactive computing sessions (fractions, floating points, polynomials)"; + stripPrefix = 0; + sha512.run = "d1e279e733e37d6ef163a1dc537f5c02119403710a930f409cc6cfa55f1c08d9dd30bf4aeb14b68e4080442137a7352207ca8dc9bd7f859a8d19cf9205b68c1d"; + sha512.doc = "1a99ce3ce5e2a311e1dd4086f416738c48cbd42ad0b37c372fffcb0a4f035b3384f1b4963cccd2b602164f256e4bcb8d9b1d3efc56c99382e284d6d97e20b7c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4alpha"; + }; + xistercian = { + revision = 61366; + shortdesc = "Cistercian numerals in LaTeX"; + stripPrefix = 0; + sha512.run = "e0b4db57c0c3b819f1c653f097c6adcad1d2b74409926d5e0652fed4aced3be5b82ec5f663d85769261fb62e89d16bbe36ed87e6ca2352ab9548fd322c6b7b5a"; + sha512.doc = "673d6a01619a36fd8db88ab056a8560200e03de519799b867583d6fe0226a25661245e4942a1e2b13a23d2913a137736f6b10ecb25962e0b4afbec8e2b568cf5"; + sha512.source = "8c305d95953774aaa5e181a3ab2f904b6faceb2387a6b4c9dd4f6c11eb3ddad4e31088a11db48d2ca2a0a72911f5cff1d3bf5bf37a933ceb76805a6265d3c816"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + xits = { + revision = 55730; + shortdesc = "A Scientific Times-like font with support for mathematical typesetting"; + stripPrefix = 0; + sha512.run = "8c47de766f965fcb50399e59d20f030e90a28e2aaac018ab1289a1a26b16cd6c9c7d3fd18f1d2b84fe86a99734bbf2ac9b58bfd723a7854bfe29141ab6acb874"; + sha512.doc = "3c4594f4023f6ae4dd6ac57841720a47f00ae65fcd6930d4e8ec94281a71bf97e7acea26c60d6866304b5018e866ae87554cc470e671d47ede6572da1ac2970d"; + hasRunfiles = true; + license = [ "ofl" ]; + version = "1.302"; + }; + xkcdcolors = { + revision = 67895; + shortdesc = "xkcd names of colors"; + stripPrefix = 0; + sha512.run = "3a2c40713d8e826c1bc09589e56ae6cf661a73cd32bd8903f80f51d71fb79ef34c0be9395ce2f3915fd1ec1385e970945eb00ed0f9f598294363742fe13f4d8b"; + sha512.doc = "85b7b920d701a6e6752ed78ddf718ef99b7c6684441012feb5bdf2937d3a16ca8a89033e2a5eb723888a52a913cedd320a42c2b902696f876437e9f912a05aa9"; + hasRunfiles = true; + license = [ + "lppl13c" + "cc0" + ]; + version = "1.0.2"; + }; + xkeymask = { + revision = 69223; + shortdesc = "An extension of xkeyval with a mask"; + stripPrefix = 0; + sha512.run = "1502216d5f8b5b2f15317f7dd9faabd11e06232a093a74a64a7114b5f2307e7e96065810129713c679d4aa4d2e622c6a1af8dfb31719b447e9d8fc1e8026e027"; + sha512.doc = "812473ff009eceec4cdf23cfd89dec769566f2027e528745273061047b4abb3b5b62426492f30755090c664f61e33b675d333cb0e9002869339a4636e6fb260c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xkeyval = { + revision = 63616; + shortdesc = "Extension of the keyval package"; + stripPrefix = 0; + sha512.run = "e7f8355a0dd505af021d413b7e1ec605c083b9e552382eec48de85a1d037937696fc0a5949a4a8cebb065dd339c70742863991bc855c1ffc82177571c16cd313"; + sha512.doc = "f7948832c943d3746c3115950259430724abee49316aaac0343e0959ddce796ab8064583d048f71ad39332df966557da9a2ec3c2752c16b333cc55bcd2cf3c7e"; + sha512.source = "8eedead41d620e3561dc120e16d745a18e475107ba3144802200bd043cee93efb2062052ca220da4a4cbbc431e7d432db1d217ed3f4c8430526ebede52cada1e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.9"; + }; + xlop = { + revision = 56910; + shortdesc = "Calculates and displays arithmetic operations"; + stripPrefix = 0; + sha512.run = "6d1ebe5d3870a07175b5c07840dd2170f2309790d1b828df69b716aa83db1a35ff70d265a33d8fc0f6ebe0c4385b7fccee8445ab93b2649d3b27bb65e41f87d5"; + sha512.doc = "9e1cdf96a23bd468c2e4f358ade19c509685563376d5a7ffedf5cfc122138b14d1075c7ae8c8a00261f789d4010a9df7dd5b1e6a9db5bc7efb067168e7866540"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.28"; + }; + xltabular = { + revision = 56855; + shortdesc = "Longtable support with possible X-column specifier"; + stripPrefix = 0; + sha512.run = "6e49b4a2adc351394bf5ab5cc04d532c36196919a4de8be1ecdcc22c6f226a2d035987df9aa70144d701d9fdeae1dfa07280458a934e289a5d1b5976b2be3ce1"; + sha512.doc = "daa1f1ee3092d545b3949afa781e40a576a8a3ab1c20e40237d83c14455fcece353dee03161ed1725d3f54c8963ba94c683ae0874a8668c8e5c27ad3b58f227b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2e"; + }; + xltxtra = { + revision = 56594; + shortdesc = "\"Extras\" for LaTeX users of XeTeX"; + stripPrefix = 0; + deps = [ "metalogo" ]; + sha512.run = "ff75c7b2f36f0e3cdc466dde35d83ccbb76c9c95f5d191a5498831247d1d418b69a8f0df8b263eae78e4a13694e628eba64c24e7480c7dbf56948cd5b1504a76"; + sha512.doc = "6fc84121dd3486f5f7744d757520e2b4d7baf83686e2630990be7e72ccb121e5b417779e4682e6e8a566b016a8995f80d7d4c6dfb3d6d2c9f70ed506bee99d64"; + sha512.source = "c177b99366479f6ed5ef935be07fbfc3425b48f2c3d274e175bbde9c63cbcc93ee4bca4c3c2886fdc2894b627332ff7edffa5b1083ad86dcced56bfb0d9fe03f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7"; + }; + xml2pmx = { + revision = 57972; + shortdesc = "Convert MusicXML to PMX and MusiXTeX"; + sha512.run = "9545fb5ca0e95788afab79d8a29336f337619adbcac68472bb5de6af6c54187f19bda655232175223168891c064f6fadc67c4ab8f5a0256e2c55e1a65c5e6f6b"; + sha512.doc = "973960f65159f5107caa7e9a041dca75f0171fc61f94794c7b7560eb9b6898534974fb8b360a28dfa3a01d422b71618bcaf8aba2ed25ae4d4b9f67d24ab730be"; + hasManpages = true; + license = [ "gpl3Plus" ]; + }; + xml2pmx.binfiles = [ "xml2pmx" ]; + xmltex = { + revision = 69742; + shortdesc = "Support for parsing XML documents"; + deps = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "dehyph" + "everyshi" + "firstaid" + "hyph-utf8" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "latexconfig" + "pdftex" + "tex" + "tex-ini-files" + "unicode-data" + "xmltexconfig" + ]; + formats = [ + { + name = "pdfxmltex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "*pdfxmltex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "dehyph" + "hyph-utf8" + "latex" + "latexconfig" + "tex-ini-files" + "xmltexconfig" + ]; + } + { + name = "xmltex"; + engine = "pdftex"; + patterns = [ "language.dat" ]; + options = "*xmltex.ini"; + fmttriggers = [ + "atbegshi" + "atveryend" + "babel" + "cm" + "everyshi" + "firstaid" + "hyphen-base" + "l3backend" + "l3kernel" + "l3packages" + "latex" + "latex-fonts" + "tex-ini-files" + "unicode-data" + "dehyph" + "hyph-utf8" + "latex" + "latexconfig" + "tex-ini-files" + "xmltexconfig" + ]; + } + ]; + sha512.run = "60c804d65c5d1f7c2d006e410be1dd6001ebc8dd96b7829c77bbad88685a1e18afb5ab8dd42e7c2542df02d0336485766b9bd7f0657b6683e55d7a1e444d4580"; + sha512.doc = "017d8d30a8371fa2a22c60a57b9eead2e3f2f9fc88aca858c701912d40af5212f6a58b77fcfba53214c98eb23142c08962827312010cd6474a0d66911d55ba85"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8"; + }; + xmltex.binfiles = [ + "pdfxmltex" + "xmltex" + ]; + xmltexconfig = { + revision = 68933; + shortdesc = "configuration files for xmltex and pdfxmltex"; + stripPrefix = 0; + sha512.run = "a377856b79abb94771b54ed19e6f5ef02ebf80374ac868be2905dc23f36d821c79ea9a99077233edd5e125278e6d8bd44c40de50dfd56e389cb46c76348d51e4"; + }; + xmpincl = { + revision = 60593; + shortdesc = "Include eXtensible Metadata Platform data in pdfLaTeX"; + stripPrefix = 0; + sha512.run = "49777de1160b2ef53d845ba08fb0af29eb5f06c6fc534da4856bd0f02dbed2dbaa73ac24c45b1e787ea44d08199b7d1c462dc21a972cd1815fcbf65a08388f26"; + sha512.doc = "b8750478957f6b33163ef546d7be0c0ba4e5906d64a72cdf3edda33c663bcf7400eaeebe3119a175f21093a1b00bd2626df0156c8ebdfb9cdd076bc8d7953ac7"; + sha512.source = "48d8805d763169bd3024227edac213a5e57d207e63895492cc6f0a25ef38b82fe9d8fee76ea5309344bd397e4c5b70f8b72892d4054307bf758fb81cc8af3bd9"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "2.4"; + }; + xmuthesis = { + revision = 56614; + shortdesc = "XMU thesis style"; + stripPrefix = 0; + sha512.run = "3c9bdbd54cb99bddb9356586a1ba16d8e0ebe10d0120f6d6e7ae1c60375a41ce9ae9c01eded07b122aa323ddcb0e3ed9c68f6da6e716915f523e77bb343ee665"; + sha512.doc = "07e9b8eeaa864efbe6fb8e1c54e183a65f177b81454a2abc049e2efef8fae1d61a208273fd3cecb9d8bb8d601266f1c4897939c52d43fb5dff92ecdd3855c322"; + sha512.source = "9f3eaaac30cc9f396a3e33f6216b56485c27eb2f855b511642204025c27b40a529aa6dd1952c753a1fd50474ee6c5ef020f859dcc71e07ece39df090ed7ef46a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.1"; + }; + xnewcommand = { + revision = 15878; + shortdesc = "Define \global and \protected commands with \newcommand"; + stripPrefix = 0; + sha512.run = "3296d6f9b580699e86ee01da444ec9b3cf7b76775f05529cc9c4dd931da5f887c914665651214a8107be612b18cb286ec039ad9ab3de520bd17090b38265d5c9"; + sha512.doc = "e03b7027a3956829823e92bd4d8a3000d8f79f26558875ea3837adc9ca4a17ce75d9d4e9136d7ebda7bdc8fbbf4a1b44fc6f71d1bfad710d2e22bba8fab24292"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + xoptarg = { + revision = 15878; + shortdesc = "Expandable macros that take an optional argument"; + stripPrefix = 0; + sha512.run = "3ee6285ecac00a20781ad530a7ca1ef35a94efdcc31d29084e167cde75c51b4bdd644bfb5d25390c3deef44fa7b09e479b6c616169ab0bee1e83d4e37338e00d"; + sha512.doc = "1692c6700b978cd05cde7c0d45e970a4cc8f783d53cb1e2fc57639483e728ef5dcf29bc7563c9ce42eeaba72da93b36e366876494f3680f0fd5e8eada08694bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xpatch = { + revision = 54563; + shortdesc = "Extending etoolbox patching commands"; + stripPrefix = 0; + sha512.run = "d96d078066ee7cd39585754b0ed1aa2bd5680f90eb2a879bb2dcb47cfe834094f0b5fa1373ecd7f80f626c1a8a8fd4823525c33fa0e67f63b0beb4031a35956e"; + sha512.doc = "49479d5a73beda78852f80f786e559caa49b51a44c79e73d689499429ee177ccc1a93064122c13e5cf4e34f00350df3e18fc131505364dd8cbf218e851249e8f"; + sha512.source = "bed0cd07054aa93d1bc328b57792c79ae90c3f5feb5b6f86e76b4b7c4a2b583248c19b9147d268e1dcb16c107b0dc18b34fe13f537b10042839a46a98b5afb25"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + xpdfopen = { + revision = 65952; + shortdesc = "Commands to control PDF readers, under X11"; + sha512.run = "927b6a17422a3573efef6767f4835492df27764bc7fe729ed2697665d5fca697fe1a76e141ff30d5cb483bb4ef8e2021ecf2476c5bdf83ebc5dc6e7778b70765"; + sha512.doc = "b4f332054a5fe85c9404a05673b373ac2b1275b79a1f0b57061cda614350df230dba60ed3be590e0688840334a113ce5c64847c1dc4e6ebae6cc29524c1f6bd5"; + hasManpages = true; + license = [ "publicDomain" ]; + version = "0.86"; + }; + xpdfopen.binfiles = [ + "pdfclose" + "pdfopen" + ]; + xpeek = { + revision = 61719; + shortdesc = "Define commands that peek ahead in the input stream"; + stripPrefix = 0; + sha512.run = "1b264f383d76e1c213aab0ac650a934ac6a91eb8dea8122229b2ac6bcb6ed694d62acecae3882b41abf34bd016922109064de0775f91222ad88be8287bd62931"; + sha512.doc = "0633a7a51a329ff6849d080bac626b4174567823b8c597187f62158004a8df647fe40653af371d55d6a4743991fc3ca650e034f68e5b737448245c7df79cba84"; + sha512.source = "38165be35b6fece20141ab61b4e212d6a754d2971e340a0f98bb02468aaad6b470aecbb5f4887969a987c9e7c45be109cac5e190b534264caced15fdc803f14d"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.2"; + }; + xpiano = { + revision = 61719; + shortdesc = "An extension of the piano package"; + stripPrefix = 0; + sha512.run = "892f018e4bcad350e4418b2724b6bf2d18aca9f74aa01eb10906b90630b36ec3497a0b96b293e44ec136eee22648b53a13d7a9b614a36c0b79f5a7b94dc37403"; + sha512.doc = "467da8be6903252b1d1a9436750b8d2f0f5eb1f1f7ad1178acf0a1ddbea253ce38ddc842c89ab6a22c4bb72ec311a2ee2536dee5834ca3ead427c36592c35100"; + sha512.source = "bfd5a1dde7e05755f3c0167f16b7af2d83881b25d31e96644d18d193f4afb8f9f359b5149fe4534e43243e9364c1ab6380576196422c79077c82c4269b7619a0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xpicture = { + revision = 28770; + shortdesc = "Extensions of LaTeX picture drawing"; + stripPrefix = 0; + sha512.run = "1915b8b9acb3db8d4f8ac4fbc0baab55d6b8352288852f20d066a3f0ce4f7dd0cd4d2d70ae2d2e29aadae0bdb272fcb237146379313b2900accaab2bc10ceb79"; + sha512.doc = "dafacd0f38ca6a248f701cf48381ce0a3816a693150118ab6a7e18f818814a1b54435820dc8c11135146cfde3d40a08a0f2cd78bc54a9ddb450bb5c848b99e84"; + sha512.source = "e49b8512ef83ec38f20dafa1e5f191cfd4c2bbcc62016f209be06f969cccdf3cec9545a24756710c767946f8c532074d53de8a6bacd6c565fdf49c579b0cb6c7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2a"; + }; + xpinyin = { + revision = 66115; + shortdesc = "Automatically add pinyin to Chinese characters"; + stripPrefix = 0; + sha512.run = "3b7eda4c75b90284138c1277657c8f4a3c2c9a3374a2d6f80969e78805ab8f0c03bf09e5aceaaaec689582dbe30a82b704e41ce08305a0b4b869a84d4d07678e"; + sha512.doc = "f233ca01195f0f3e236414c02cefbb8da1adc24d6ea94fa56e98ab8772f48456e4bf469f6def555a01c29f8a258c352186d7bf7054db2bbe3843ed937784a440"; + sha512.source = "f4775152d7879b352f6193af3036258ca984a195abe6de3c03baa41325a7b1fce3900facc2f3ea8fd2deafd3740128161ccfbb2a37eb88fae196a20136f68dd9"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.1"; + }; + xprintlen = { + revision = 35928; + shortdesc = "Print TeX lengths in a variety of units"; + stripPrefix = 0; + sha512.run = "dc446adfe453430d5e2c9155acaad26e258a36319490a5158f0874292e9e68c1eb61ba57e361b5ff8bfff84c3b4a359709525f42599b95e9ba19ce9e28f88423"; + sha512.doc = "5905ee8d3589b7d75388e6e2355639435f3a72fa99abc17118068069715ba7220fa3d69f58e046d7972814bfa3834222858bc8933562ac91f83ea250f0952d82"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xpunctuate = { + revision = 67918; + shortdesc = "Process trailing punctuation which may be redundant"; + stripPrefix = 0; + sha512.run = "a90da49b111181c61512777e4cbccfc63710b19513309bc2a04fad0285691095c812e7b8feaa0427cd5e837bf644458229b78c2bec530b01bd772fcdb18a2bca"; + sha512.doc = "8a7c873e8fd809fea44c136ef5b810f6e5d6213f48806cffb5018645d2a0252fb45b0de029c1f070963d4a584983c88e8c2c7661f1dd2f7cd4407c902ea13880"; + sha512.source = "5e871cab9151f51e1b05f0266d42f872a3eaa27a0a801e517219e400f7be808463038461fe45d1d748c05085dc605545e5b2c83250413138f19649d5af84cca2"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.0"; + }; + xq = { + revision = 35211; + shortdesc = "Support for writing about xiangqi"; + stripPrefix = 0; + sha512.run = "f1fc2f43099e022aaac631d4ccd1e5f5b9a9f23db6f1c6c3adf59d47dca57c25728f81ead0ab62d07b9bea6219e3121874c55973b54e826b1a70c5e4fd47c853"; + sha512.doc = "cbef1b95b4db328cc29d5f4fef544459b893cea82838e9e1f2faba00dd8fc78bd12d36931dba4ebe76cbe985879c30b8606df1f2091fc8d2108311350b2ea339"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4"; + }; + xsavebox = { + revision = 64049; + shortdesc = "Saveboxes for repeating content without code replication, based on PDF Form XObjects"; + stripPrefix = 0; + sha512.run = "a88227b8f3b8adcfb3de271307e97c13db9da52c9446efa69ebc9b12289a59b2b92b608dd87dadf4837f0501599b74775671cc4e529a99ef37035dbe171cd66c"; + sha512.doc = "4acb0dcab63edd326db7736bf4632f375e4e1dabb1eab0969c0255312f6207871f087cf81e2a01bbfdb99ce956e568d6331cd82346feeae966331569d2f0c3a2"; + sha512.source = "5843edad34701520c35763cbe3b66523a67f11299affdf4ffcd213ac3abc8d67b9e7cce05610132fcbad3639412f1fe04df15887d1e671c06ef066a0f859f231"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.18"; + }; + xsim = { + revision = 61988; + shortdesc = "eXercise Sheets IMproved"; + stripPrefix = 0; + sha512.run = "daaf1cc1ac8c34c4a63de3a16baabbcb661177172892bf4bf85e588cd150e8736b5b3ef382656c4ca5e3486f93889bfe00a9895988284a3fde84caf222e9744c"; + sha512.doc = "a020e1c60dd909ad48607b315e63d2225a9a884f2939f1cba2a783e9336b86dc002e1fd771469daae9a4c16d80b4c9263f04a545b270ad666749d5d4536d3e7c"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.21"; + }; + xskak = { + revision = 51432; + shortdesc = "An extension to the skak package for chess typesetting"; + stripPrefix = 0; + sha512.run = "202f61fffbf22346ff6ad6b2b8f411b2a8e4f58a9d53e5613810f2fe0b56b0c73867f0c1c293bb0c1f0edcd4ab73135ae33a953d3709d2d01060c1b638842dd4"; + sha512.doc = "6256df468580dcee451e4a650ebab0323c92024e9bf872fd683af1f10c19221887b5bd1bed7540a517eb6716627e689759b7ceaaa2944869e18591fba5467114"; + sha512.source = "11119e38b4f21663e36764d2b9e7da22d9493de7296590db4beefe185b2c9e89224806257d3880c78b07c3984478843b1886e37e5a33fc798920be221789de04"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + xstring = { + revision = 68015; + shortdesc = "String manipulation for (La)TeX"; + stripPrefix = 0; + sha512.run = "a7373745f3ea8f75b73cd3af280743db902a683f16a9820c214b8b5a92c72314323173a966b5356d78cba667978f677f42ea10b54e98b08dec29202ba8e67b39"; + sha512.doc = "c9ee24a7661c7dcf4f7cd1b657269951baced39e6d40f5a6656d491120c9fd90034d9a4a226d0f714909e7a03fbc474f6f7a355d4138ba87906d950e1156c884"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.86"; + }; + xtab = { + revision = 23347; + shortdesc = "Break tables across pages"; + stripPrefix = 0; + sha512.run = "e308d3ae3ae32b945450b319834dfac19b6006cb0ede7f21a91999b840528927aaca7cdc330a02ebad874602d6d268fd1fe609dcb52bef2757b2e0417310e012"; + sha512.doc = "10a158bf2d50fa89355654da36a179bbbc5d30ef3efa8a79537de66c50a892f540938cb364e45896dc079266d5e47bfc2c74b8cfe01ec1691cde34bc221e4ca2"; + sha512.source = "0ae0bc4d96f8b7c4dd5bc62d56538ef5e8f5d8d8ecdb114759209dedc722a2aee1b646a27cff611bfd2ec9ac96f0633393cef9d3a13a6d54978740b28fcc09c6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.3f"; + }; + xtuthesis = { + revision = 47049; + shortdesc = "XTU thesis template"; + stripPrefix = 0; + sha512.run = "5d9081b8d197952aa5ff58b1cbd490bb529cbbc1b72956cca8dd28b1b6bc12c6248d3d04fd457349b30df7594aa1872ce9c8438feb67af1b93ff0fd33eefcb7d"; + sha512.doc = "96e94598e3e397a9657a83496d940aa2525fdbe1ec2cf820b05e5493b1f3e1c45568e16b62c22d4ee25afe2bd0657848a433477e82cc8038895c2195139ca065"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + xunicode = { + revision = 30466; + shortdesc = "Generate Unicode characters from accented glyphs"; + stripPrefix = 0; + deps = [ "tipa" ]; + sha512.run = "f49628013bc54e82bc38a2c749ddde9426c65716f04c5c8d8264398b9595e571d380e07c045db9e7ed5d6df7d0b7b1f8e81eaa28d6b67a6756d2c5023b731176"; + sha512.doc = "fbd368180c97649944aa23fae4f50f8a8d1aaa776f643ba520f121b9aae196dca94c11906f9d5b2f961b6d494256329670af1f4563502b44a8fc9633e29373e0"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.981"; + }; + xurl = { + revision = 61553; + shortdesc = "Allow URL breaks at any alphanumerical character"; + stripPrefix = 0; + sha512.run = "df2570d0eefb64df3a0533237ea09f00b9e22be0000134b32de40198649a6e98ee48a31d769dc750847672be7e3577fcd8eabe25e1ae8ee493d77e40ce684147"; + sha512.doc = "e02cceecac468713453432e118dd1cbe3f872a4dc33fcbdfc769861f353ac4ff5c117f51197b297a4eadf295f75f1f0254585ef0a48909aa004f4a598d796491"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.10"; + }; + xwatermark = { + revision = 61719; + shortdesc = "Graphics and text watermarks on selected pages"; + stripPrefix = 0; + sha512.run = "c8b7e89cb39ef5b3f01f24a89cbdce729ad2061a0b3a1ef504933ab7e116b4b67ba8f1a68db74d46839bfbb60cecad4fc459fdd5d913716ad6542d8952ffd926"; + sha512.doc = "a812651c587a76e086076bc8c810dc218431b40aad223644001f42d098962a401246781e0f83789afb3407fd93a0379755f82e30d815c14b4bc72499a9d8d26e"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5.2d"; + }; + xyling = { + revision = 15878; + shortdesc = "Draw syntactic trees, etc., for linguistics literature, using xy-pic"; + stripPrefix = 0; + sha512.run = "5f78d2d61050d9ed84d56136fe59b4674f4e03a536015e3ebc3b9500dd8a08878164ce9fb1aa9ca9a1262a000149061f3fe22f10cfd68941316aa186b81fe923"; + sha512.doc = "7b4ca312ea917329260eb0a19bd504ac2f3ddfb5f066806296b164fc541bfe26e6ed1c03ffac5b52af6b19fb4ba1e77b5228ac4b4db0c2ee8f2394fc0f888d09"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + xymtex = { + revision = 32182; + shortdesc = "Typesetting chemical structures"; + stripPrefix = 0; + sha512.run = "9f0f14d1a862622ad0ef695a58f7dab554daac8d5151193a70c94ea872d16fe8eb1a763d03b226b08583db484bf576f5a41d2070d5396ac323ed00ccb0daf5e1"; + sha512.doc = "0e2eb5439f2e629da902e4c7d7ddd2d03bc4d654c4ee49e6b005450174acbd70760b52c9deb446ca60efe7c0389403584b86a6f9c9964cf24858b13cfccf7ed3"; + sha512.source = "d805d6fcb72fb801001ad80fe43ee36126c0764f8baa96dff9fffcf7452bba8e5cf42cbca6a50b89f5925607c277b3fb7408f8f7e6ab087edbade0dac294252a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "5.06"; + }; + xypic = { + revision = 61719; + shortdesc = "Flexible diagramming macros"; + stripPrefix = 0; + fontMaps = [ "MixedMap xypic.map" ]; + sha512.run = "431451f2028cc87d2d22b4d6ce95ac8f216755da312301195ba7af46146382cf76c27f9964a94817e90afdcdbc7a01dbd887d45808296984fa0b3a3a1770b46d"; + sha512.doc = "9664336d5bd14145603a8c3e861f8fdf062cd4587b8f739a29d93ac78a946c06a0985da4f011030df575276bd43555e55ba467eb4c640d60b2db0a07be706908"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + version = "3.8.9"; + }; + xypic-tut-pt = { + revision = 15878; + shortdesc = "A tutorial for XY-pic, in Portuguese"; + stripPrefix = 0; + sha512.run = "291825c3461b397deb825266c7ee4316c5d04b8db1a29759378409de55c20d81552e31260468f4fa6a9a04f04705422714a8ec70a866c87fca2f4f1e189e0e4e"; + sha512.doc = "e27dfa0b36341bcd02ba63a8b543f1a6c55c674745cc790543ea2cfded80e536e5901f184a3af62b92b4534c738a06bf4fd5cbd4dfb4da865d13991279309aac"; + license = [ "gpl1Only" ]; + }; + xytree = { + revision = 15878; + shortdesc = "Tree macros using XY-Pic"; + stripPrefix = 0; + sha512.run = "fdabfc451679f7ef3752db2537a7dd51e9c0fd34337e429f24e44728ec1ee0a9b97fc2f176948440a5c1cda609182f60d4c564ddcd76c70e84410cc6a0b1f371"; + sha512.doc = "0e2b08c8db25a5bd992c8aa843d8f6fb2e0efb3c11ea9dd0ac69106cd71f58996f73786513e0ff13bfb54932f468297edbb981e3efccfec2652f80bb02fc6ba7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.5"; + }; + yafoot = { + revision = 48568; + shortdesc = "A bundle of miscellaneous footnote packages"; + stripPrefix = 0; + sha512.run = "75ab34d40fb051000783abf573f4507e3791ea5aa1cf4b8571ad16bc020f10d17a49220a2878e5a2791fb7f073613ed20d72cd5618feadf38e290ee4f047e615"; + sha512.doc = "322e9cd25fd7686c4325d04bc7dfa00aee45fe993bdb730ca3669cf860b7cbae1dc76483fe3dec11e09ad848f166a01f43ad0885e0e9fe324ef28d28a7d2b4ad"; + sha512.source = "5159db9c0f8e1f1ba4fd265c1188c47271b6da4290c33f65e8284b0c95d8144a3219951e13c1fb8e7fc172f2cd0094cc73d63fcd0cab67908f6542881930d772"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + yagusylo = { + revision = 29803; + shortdesc = "A symbol loader"; + stripPrefix = 0; + sha512.run = "f6f367155aa16ab0133957fea3c099d4e839f248a87ccca430e43c08257b2aed3a11c77ceaf8484097910bcee2dfadf260ab5047fa7f0244b43bcf332f367bf0"; + sha512.doc = "0ba73f1c7c7d7d646312f8a3d35c0d063e792ebae45c3e869565f01ef65e14f31bee463a1ebb8ad60166d54cdc23a9d21684675a6ccb09b8da233badb0d0ad96"; + sha512.source = "0bf71cf46e2cd66f9066dda7e7982f91e06803ad2c89358da94fc0ecd593ecfbed8b36ea9668f3e713987265fcdf03fdaae08ee9dcbf36ec1d22a91e3bfe84c1"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2"; + }; + yaletter = { + revision = 42830; + shortdesc = "Extremely flexible macros for letters, envelopes, and label sheets"; + stripPrefix = 0; + sha512.run = "28765f3b6296ea3b9daf671543b7b2cf371bf2aefb4f3eefe6e95d50ee9a11516a7ec14fec5d15305e8f52d0089072cf10ce9dd4cba30c8fb60fa75365ff0d22"; + sha512.doc = "ed81b08b0306ceb519c9a652ef0d271bfa486897b05bc3a91a3840e36d348ea86bdd645ae236d3f34de78d038de988a023e542075f871aa6d8752d9606910dc6"; + sha512.source = "a2e64356234f9bf9bed1a73d5ea362ee487fb3eab43dc89241bf21c7033119e030cf3db81321b1eba245b3330103bff6a7b9f345e6df27f47de35ab9df4a6ace"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.1"; + }; + yamlvars = { + revision = 69071; + shortdesc = "A YAML parser and tool for easy LaTeX definition creation"; + stripPrefix = 0; + sha512.run = "07d8c9983e631b3e4c97ccc1a7bdd20486e55a59eb6049388823db24149635bd59b94d98f2259de5ef0dc163a9f44e4e01148a42c3f676c65fa802d310f6a0c3"; + sha512.doc = "686e2be82054f40c93dfcfbda35d2fa45fe0c28d0b85af30c5ec9c9a8c125a6789fb7185d08da9859bf714f6f5e4dc4057890ee4782fbea446aec923e0adfa6e"; + hasRunfiles = true; + license = [ "mit" ]; + }; + yannisgr = { + revision = 22613; + shortdesc = "Greek fonts by Yannis Haralambous"; + stripPrefix = 0; + sha512.run = "509e69acdef68eadc65fef6980e9166c6327e8927fb9cdf6a7a33786a8668ac9b900954a4bb661f223967b26dd240d5ebd91683658b324be284e46876c39061d"; + sha512.doc = "40ecdfe71670357e8ec84fd262015b5b5d0b8e486ab80c05d0863a335649501e9548d785cc2b2374f989b820dadd9a074cc229674dd1ae9a6252d4a0ebeb4191"; + hasRunfiles = true; + license = [ "gpl2Only" ]; + }; + yathesis = { + revision = 70512; + shortdesc = "A LaTeX class for writing a thesis following French rules"; + stripPrefix = 0; + sha512.run = "85c1c7a9dfb682271ebc6a35cdd91dcaa11137d6f1785f98c3b0abdec46ab346f23a08b034b8aac95324dbba490291a59f74c5d27c93f791b38d47302f5cb61f"; + sha512.doc = "b241afcdd6e2e7cc112faaed178fa2d1f15afea44e4c614b69edbe0a08ac78606f6adf4e6688c4d45e27b011dfd83ff189a4d8a84e96d39c22cada4d3cc888bd"; + sha512.source = "b97c3f396f53108ed66e3297484ad4d052df0b5fd735bedc16ab3ea8550c3bb8fdca84d7dc415e6a8abb147c2f4cbf1d4d7ee3fd6f4677db73079bbbbe20d359"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0.12"; + }; + yax = { + revision = 54080; + shortdesc = "Yet Another Key System"; + stripPrefix = 0; + sha512.run = "a625e7e4d26368732a8700f71f102fb17965a6a85d5a3c28e170dc19248ec0f3cdfd0905c76f0431585e955e29293b49b6dffcf93ed7bdbd80b5d62cca2775e7"; + sha512.doc = "783a606e55a6d2bbd1fb4052bcc84ac499953838808161facd8a76fe0e46a3de8ff0399831bc4e8ddbab02be84a3da68f0f7535c0d3b0b1f3d8d6cfba63ab0a8"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.03"; + }; + yazd-thesis = { + revision = 61719; + shortdesc = "A template for the Yazd University"; + stripPrefix = 0; + sha512.run = "d19e817cc925a0ea08e1b15f3a2b1d6ee4b7a8f9ac420dfa7b6db7cc55b5a24777125a0be7923707606b215ec95044fdf16a2f8a5e5682d8403cf6857dc3252e"; + sha512.doc = "b065c1fabfa4eb394b5ffd3ed048a42c005cb183c82027d5ce1d21e53c2a35f8c0d3647156567f47cdced936ed061fcf303651d024fe3050e8a135c693ea8c28"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3"; + }; + yb-book = { + revision = 67188; + shortdesc = "Template for YB Branded Books"; + stripPrefix = 0; + deps = [ + "anyfontsize" + "biblatex" + "bigfoot" + "changepage" + "chngcntr" + "csquotes" + "enumitem" + "fancyhdr" + "float" + "footmisc" + "geometry" + "ifmtarg" + "imakeidx" + "lastpage" + "libertine" + "mdframed" + "microtype" + "needspace" + "paralist" + "pgf" + "qrcode" + "setspace" + "soul" + "titlesec" + "ulem" + "wrapfig" + "xcolor" + "xifthen" + "xkeyval" + "zref" + ]; + sha512.run = "e50c3b75107bcd7cf72a6d4ef86353e8953860a3b4ffc044280fa57b0f290d1ec161e31aed3f91f8827bf038e4f60ed1a6eefb557f0401ed67042209750059d0"; + sha512.doc = "19e220fa4214b2ca9c95fef77c12805d1f9f4916e8463fce561170e7ba103587a47a38f1710dd6e1147cf50c23f6e5e9524582f127ad0dc237a409970f4922aa"; + sha512.source = "3a7817bf209e938f9a75e928c16de30b59537cc049ca1b67e3bdf9c116337c78fe0a40b346a0f7189ea04c7af3755e0428af2140db7eaa83dce026a6042dc489"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.3.0"; + }; + ycbook = { + revision = 46201; + shortdesc = "A versatile book class"; + stripPrefix = 0; + sha512.run = "8b98cd81e5f1252063da8dc297eb5580d06020a343638f7c8a1090a7f056a788eb4322e286f12d821be79fc7de94262a4ff15c14a1c787be0de89ddc87541452"; + sha512.doc = "45ee725849230549b4b2f200e0b140c1fc99a60d91730a42d2e3df63e828eb6053845a2eb84ff25bf916341df46a3f3c01166848afb291d322dfb21426903644"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ydoc = { + revision = 64887; + shortdesc = "Macros for documentation of LaTeX classes and packages"; + stripPrefix = 0; + deps = [ + "etoolbox" + "float" + "hyperref" + "listings" + "needspace" + "newverbs" + "showexpl" + "tools" + "url" + "xcolor" + ]; + sha512.run = "116d4be9a7ca06f90967c85a696e893a85555402acf400c0251a71f4d43a5ad244ee041518d4408b6627610ff87792f07ab51309303e442159bce46025d5a27c"; + sha512.doc = "714ff9f1fc20d9f3e5effe9159935a45662f7f8dde9be0371055a3e178b9a74618046c1f4ba67cd1b89b6b0abfdf41de2716a097e67138d42f733ece3edb028d"; + sha512.source = "1a4d7c462316b3d2689b5121d81af8ff7847909e039564a0d66c859607e5c4fa573dbc607cffbd73223f48f471847057fbfeeb71a31947b5b1a8c02eb88eb35b"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7alpha"; + }; + yet-another-guide-latex2e = { + revision = 68564; + shortdesc = "A short guide to using LaTeX2e to typeset high quality documents"; + stripPrefix = 0; + sha512.run = "7a2d19b71006352ff9cf69cb68243153e99e4cda2a3fef37daf6ab180e7a7625b8119b972785a331188faf7ee6f03d724a760c5c3456e85cf32ce704b3edd7cc"; + sha512.doc = "8ab0ebad6b627dc1a5d90477d48868715830c6558e9091d3782284e9766f22f9764170a3e89d55c8437dbca2c8eab446a1be0336baf43b3ddcaf67e125ea2f64"; + license = [ "fdl13Only" ]; + version = "1.2"; + }; + yfonts = { + revision = 50755; + shortdesc = "Support for old German fonts"; + stripPrefix = 0; + sha512.run = "1caa22023c93ae1e6a2fd94676da61fd576890f991a79d6a9724a4e5f7e653a752c6af792a1b15d44aa956f5788aa995614a33c2d97e95865d6a364f833e539f"; + sha512.doc = "54857e6693242080c5f410ded0bb16d3df65fee2834b2b5d1232dd063a70796905771059da07e7d92358fce9da992c3e605be345ae7c5d4012d37dc37a17dc82"; + sha512.source = "c716a8ecca03f0dbaf07146021977fd802e2089c5b99fc7adaac1e581ecbfd4f4b1a15562a54eea7c783f5b8b6165b935e484e36a456ef81729751c777266815"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4"; + }; + yfonts-otf = { + revision = 65030; + shortdesc = "OpenType version of the Old German fonts designed by Yannis Haralambous"; + stripPrefix = 0; + sha512.run = "cc1587d41121f8e15b3b659f2620c0324fb35b46a6914843c3abebb7c4fa0b30e85e59a2de603128d8015d68edd1e16b8cb02a9dacdd49c04dd3a602d1ee0148"; + sha512.doc = "47d025d7a7d3a65803c1ebc318e13adbf371b5bc7720d7a5be5b839246906fbd963c4ba2147ad37aca5313f3ba95d361e19f87bf6d77b99e150bd96a29461f0c"; + hasRunfiles = true; + license = [ + "ofl" + "lppl13c" + ]; + version = "0.43"; + }; + yfonts-t1 = { + revision = 36013; + shortdesc = "Old German-style fonts, in Adobe type 1 format"; + stripPrefix = 0; + fontMaps = [ "Map yfrak.map" ]; + sha512.run = "ec4cfa0d4f08f506b3bf7a3acc8e303ba51c7761f32498f040e062264e595bebe64a4f5adc7d6ab5aa2180c55b817d0124d5b07b276cb39c775539113a08f490"; + sha512.doc = "dd37c5163de0bdcce937a1866a48d9f924faff81da11e566e9525a6d5a81ae82419ee7eaebdff1cd8512957a878f849f43e9cd71dd39625e6dc0e2ba18f4ac9b"; + hasRunfiles = true; + license = [ "free" ]; + version = "1.0"; + }; + yhmath = { + revision = 54377; + shortdesc = "Extended maths fonts for LaTeX"; + stripPrefix = 0; + fontMaps = [ "MixedMap yhmath.map" ]; + sha512.run = "88476f5355d041f1920c4f0f954853828bdfaf27b9d0441982a38e3dfe79b40377a83614794024ee8c8463eaf5d1c350bff033f1c53e031451ab7cd095e14948"; + sha512.doc = "56fb12fcc4099f14c5746727b3c3051d84097cd8a715023545c3a2fafcc5a5abe55980a12e4384f674ef6cad2c7d6dab2beb8374e4cb3af81f711c2e8320d97b"; + sha512.source = "57a97c1310cfefcc453d031dd3c4701bac2a36c04f435f7a823e1b83671afccadc33d213e9578f4bbf806b6c73aaf33d3816dcafa86fb4447d53659e11f83072"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.6"; + }; + yinit-otf = { + revision = 40207; + shortdesc = "OTF conversion of Yannis Haralambous' Old German decorative initials"; + stripPrefix = 0; + sha512.run = "5ec9f9408c3188b2bf985e9c3f1f9f6a345557d08a167a9d02c07fe41bbb981a8889f580d6e38a97798bb5e891d978eb4ee70b77a344c684051b5644654d1cd1"; + sha512.doc = "6c73466c1e4ce1f7aec1b30980e5c44ca4917e161236fad7a0816bc93e921525b90f62abd8d41d3b767d8a6eda62a34534d7129d1fc490fda430345f8a2b3ce7"; + hasRunfiles = true; + license = [ "publicDomain" ]; + version = "1.0"; + }; + york-thesis = { + revision = 23348; + shortdesc = "A thesis class file for York University, Toronto"; + stripPrefix = 0; + sha512.run = "5b5152cc315dc05164ba3502d6e7aff355d853e43a3836bda0a15a4af7a90ef9fef02c852125c7e1e4842c05d51f2be6441b5131400eb46bb6704b281711e18d"; + sha512.doc = "e1ee454ad9996b61f1cac9bbeec30210359ecd8939bd9e0696e7cca7106733b13b8831946c47652186d4b80060f96c479b642274f5c90f8757953b1c3861f0bc"; + sha512.source = "3096ee9334bab690b38ff943559a0a7b0c54f8b831e7d1320ae4581740c48dd05e09813e220ce1d28d4523fb456d7fd01920e89e7e0d66da00e9dce88bfadea7"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.6"; + }; + youngtab = { + revision = 56500; + shortdesc = "Typeset Young-Tableaux"; + stripPrefix = 0; + sha512.run = "4ac5c3803a2e815c51178fa30086ad25c1dd2b430753d582376c9f6c720bd1a72db1d285d2b0cd810e3564961ce3641f3b482d685126e880cfb1dc856dc74bc0"; + sha512.doc = "b291614a22227693f93422af280200fd927fcefd0399d4294f934ff8882d26e263a3a1dcbac3ad2289d2adf2ff92c76a8223eb450de46e0b1df283af31bac3da"; + sha512.source = "57110b41ada1866d327eee8f1eae1ad61ad7bea1428bf9a3ccd31b9cf27e19537952ef756299f62e5204e5fddf5d032c8170eb36d6a9fe73e66c8d72e1c4f085"; + hasRunfiles = true; + license = [ "lppl1" ]; + version = "1.1"; + }; + yplan = { + revision = 34398; + shortdesc = "Daily planner type calendar"; + sha512.run = "4884ac99b0b56927fb86c6e06ae9d4accb7d8b441bb17df79753d8af9ee84b9440d66ad4fcf2107aa036eb2af89d5ad49d0a4c4cb91236c6475cf81bab85566a"; + sha512.doc = "7d3cddf3f2d54283b777c7ab7867df68fdb484c67d2f88589e29fc087db721e7ba9e0fcea2ffde9328e89075884d668b7de8fc61f462b735d9f1cfadb9662463"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + yplan.binfiles = [ "yplan" ]; + yquant = { + revision = 68997; + shortdesc = "Typesetting quantum circuits in a human-readable language"; + stripPrefix = 0; + sha512.run = "2d9dbde5bbc12186a054624f4dfc30ab9cde606440e5568de12f9bcbc0f0c7f872141a2f1745e2f9729884e59e8c36ffddb77ae5b813cf837ea7e2ebea7d7109"; + sha512.doc = "bd0f9428c7a0930b6d714ba69f0020217021283021b9492bb71c2077fb70e86f3a49694251f88e91605604bda7049ce1f06bf1ecc1b668c63e080d1bcb087fd6"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.7.5"; + }; + ysabeau = { + revision = 69663; + shortdesc = "Ysabeau fonts with LaTeX support for traditional TeX engines"; + stripPrefix = 0; + fontMaps = [ "Map ysabeau.map" ]; + sha512.run = "c5545488723a4408a771c083d191942fc7b10e85e6c2df65e6ae0839dcaa7202459ba8774497562b7e55f432fdcca904de132ac7d89fbf3d935aa238ff63fede"; + sha512.doc = "a37a971140b1ac12724f2710e6f017690ef151aed9a88ed00bd00cd80ca6ca8524b0347b34bf83cf8e2e34fb000e4ac53c1a8a88684a0e3792e4cded362513ae"; + hasRunfiles = true; + license = [ + "ofl" + "publicDomain" + "free" + ]; + version = "1.1"; + }; + ytableau = { + revision = 59580; + shortdesc = "Many-featured Young tableaux and Young diagrams"; + stripPrefix = 0; + sha512.run = "23bf33f11e295f5f36149bad2b801ecfee57b386dd952ea93b16e79f85c54e1edff741bb7d6dc7faa769062ff81277cf04ff06cb2fb92e9a7542b4dc93eebb0b"; + sha512.doc = "b98b0da2e5e0eb964ede56a27067b7ba862b63dd1b0dc6771e432abb16e924fda5630d067c6bbb05fdf6a37aba07c61396d47612adcfcccd5886ff3fdd47b7a4"; + sha512.source = "264f983cb28ddd4f2089b4d170603172cce27b463999e4806173106e384bd4c3be16ada6f0c2e3c176dc450c53c2e50e43f993c893880ccf5c9454b84a062ea8"; + hasRunfiles = true; + license = [ "lppl12" ]; + version = "1.4"; + }; + zapfchan = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map uzc.map" ]; + sha512.run = "a5a8a672e1753cd39b44dfb43b9b83673f7bd20dfb4e4640630ba0908c228dd75dda7933432d6d6f7e2c4920d554aa8cd41a523ebe665832edbc4aa7b8034332"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + zapfding = { + revision = 61719; + shortdesc = "URW 'Base 35' font pack for LaTeX"; + stripPrefix = 0; + fontMaps = [ "Map uzd.map" ]; + sha512.run = "3e0503c2d4e30c8d727caa1d9438d4c6b12c3a15729eae65d5c4a8dd9ab0d0c8eee2f63138e9d267f4ae98ef7607388888f7acd78e189a5c322bda22827166fe"; + hasRunfiles = true; + license = [ "gpl1Only" ]; + }; + zbmath-review-template = { + revision = 59693; + shortdesc = "Template for a zbMATH Open review"; + stripPrefix = 0; + sha512.run = "c9685b151679e7516e146f3d97f4242c7cdf084f84a7ac857a8aa27031c60950d0da07d66b7b57d7bdec384d3501c30b339231654cf845bbed2945b0ac069368"; + sha512.doc = "470ee6c9895effd3c6bcac5a9faaa3862380bb137044411dd0013f4f465dc923dc1de507f2d1d087fb4b4178cb2f43f435e71b090d55744a8be6e59f8cc010fa"; + hasRunfiles = true; + license = [ + "gpl3Only" + "cc-by-sa-40" + ]; + version = "2.1"; + }; + zebra-goodies = { + revision = 66630; + shortdesc = "A collection of handy macros for paper writing"; + stripPrefix = 0; + sha512.run = "c740469e5a27355fbe8c781d30434724b8c77216e88c674854dd71e73e38ba78aeeef251a25e756c4046230eccdf334abf6d5f378bad559691a29955cb0eb16c"; + sha512.doc = "c4bdfba7e426c95599c4fe2cff06ada80345490f433eb636260ed5ce322c1c21c0b5de0c4709be415b6b98668b7c514610375f2bdf9831248be0095e1ff28dc2"; + sha512.source = "ec961bcc2d7181450184bdddbe0f0c1d5100bd6fe2294722dda239d8979f6c8d126fd4f52cce371db8227aedb1e1da14eaf1457ed12e65d33ccce6f23148ad8f"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.8.1"; + }; + zed-csp = { + revision = 17258; + shortdesc = "Typesetting Z and CSP format specifications"; + stripPrefix = 0; + sha512.run = "2f41c5b28e602aa88146cbbc172eb2d6c6f21491e45622c4c1688b9a8acb5be304a8acde842bef84f7a238109ac9ebefa31844826387b266f14faa6a6943903a"; + sha512.doc = "e5e657656e46023e32366ba415f46322f4c9b4fe0e69f03c88d4e5fcdd577e3436be6436424f502c3807278efe3a31ab7cba3020ef3c9e44874de3660dcccd2b"; + hasRunfiles = true; + license = [ "free" ]; + }; + zennote = { + revision = 65549; + shortdesc = "Streamline your note-taking process!"; + stripPrefix = 0; + sha512.run = "94f1e1a0550005c25206ac3e04216d35bc2b769b735160219ca246c95a85db5002bc74641e45152a31e8148e4d581bdb0024a3174eb735537d39ea1256f34365"; + sha512.doc = "a2351fa77ebdbe035a60750c1362d6a04cef67be244ff5ce2f6a38cc6b8c3b5b96f4afcb15c43866393911e60446be6f5a4d384852a8a10101abae38bd309fc7"; + hasRunfiles = true; + license = [ "cc-by-40" ]; + version = "1.0.0"; + }; + zhlineskip = { + revision = 51142; + shortdesc = "Line spacing for CJK documents"; + stripPrefix = 0; + sha512.run = "c1e92d164d0b46ca1165775e5c17f72687cd83b6efbba95dd58fe55008877ab3f08bbaf90d36d491ec861705e9d15f74511c8a0f9cf66ef8bf5127d7aa2cf203"; + sha512.doc = "794822b3b89aec655af2663f3dfbe848ccac9fea8369f446596562178e73c01ddadcf1ce46fd1811e4b72a25917c310bd42e45f9b16a3adb897304ae345d5415"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0e"; + }; + zhlipsum = { + revision = 54994; + shortdesc = "Chinese dummy text"; + stripPrefix = 0; + sha512.run = "d62f2a16f2303db7846073b215b3e8f822b7470510eb84367b1ba177c971e587adcea92757a3a4f5612abf103bd11cc8f2ae3ab953833365fb2255ee87563cb8"; + sha512.doc = "dcd0d706d9e402ad1b4eab910294ac4e802a58c2e54a3ee19b6dcef9fc3e052b84b559f452bb32b78d27a99e65a0820d2029e53079ce21068618f5c620f9502f"; + sha512.source = "92054c4839953e84a15abc6ca280ca2d755d5854b284c30521f17e54528bd4c369e9298e596606c877ecc74533fa81d8a8d544c2819f14d48157ee996a26a922"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.2.0"; + }; + zhmetrics = { + revision = 22207; + shortdesc = "TFM subfont files for using Chinese fonts in 8-bit TeX"; + stripPrefix = 0; + sha512.run = "abc0b873b5abb0b053fb59d8bb831a835f90cd8bfc2cde87d1031dba2e31db8721e3ea1037e7322b33ae5216dd65bd01008fb769eade0c9b4815e8ea7c55615c"; + sha512.doc = "e77fd912d10d8ab535c366f8e5b99e996607788b9ede295a3d7739fc4c14e0679c66c36bdefe2ce5433967b28b2ab228c332d9b0a23a841d42d3fa56cd204040"; + sha512.source = "d505658c340bc3824332ed473927bf971612204e69c56839d4e0bd0b6ad4b84a975fe32e863d12d2e0ecae580edd06c3ea0854b90cf762aa9ad6106d2f2afc1a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "r206"; + }; + zhmetrics-uptex = { + revision = 40728; + shortdesc = "Chinese font metrics for upTeX"; + stripPrefix = 0; + sha512.run = "1e068a0b402a5c69b44a86d797cb24266b2883c698decd8b8464c99b131d292cc5ac44249ba8e89dc0a414d6f12d73d4c069ffc3081cfa4b9926ca412bfc3dd6"; + sha512.doc = "f9ac2953877cd830e1cf3402f3f2bac1f8159d05a4a74e89047c494ae04dc8930f1c09701f83871b4361976572ae7d1c5fbdaf3af3d9e6db12347a207f1b82cb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + zhnumber = { + revision = 66115; + shortdesc = "Typeset Chinese representations of numbers"; + stripPrefix = 0; + sha512.run = "080460cafa9f1b382d5843e7863eefb36a26abcdf8ef97d9a23fe4e68d1bf85e0e6a38c7201d1dbaf2d25acc7b846d757fab9f9b850d992a576b6df67929cb55"; + sha512.doc = "c8f6b76b72f7b7bc19f2e6fe64191b86c4b73fa7559d3299945359a7d2205e3685c4eee98283f361207192fc35de0a7ae9064e118e20f96f832d18eacf93bf70"; + sha512.source = "7a79592cda187221d2832db12e45923a03f110de7ae358304048a52d2e170853421cad0a50211c0894b700c98301cf949f1def35acacc7cf2d23789ff23ca4ea"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "3.0"; + }; + zhspacing = { + revision = 41145; + shortdesc = "Spacing for mixed CJK-English documents in XeTeX"; + stripPrefix = 0; + sha512.run = "52d1d3523ae4c0d2dba5258b06cf9920f8a9005df7e03fd1407dd8ae2e4dc90768aab10127319ef9025765820b3ebb8a946ea0373114c9148a303517b563bfe0"; + sha512.doc = "7fd15e4f29671081670e881e9366ba627f5bed6d981fa0ef1c670d0744e1286c04e785e28b92279d66af851803d84949c2f463370f23c64987fea78531172128"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + ziffer = { + revision = 32279; + shortdesc = "Conversion of punctuation in maths mode"; + stripPrefix = 0; + sha512.run = "3d29074642d8a4c63046347a36f47548557de92a64ab4d6b7d1cad87f97a9e25a09fe84cf699a3bf2129c4de00dd3ef3593f85056e8f38a9a2d1ca27c549cf96"; + sha512.doc = "8eb75b54a6711ba0d0ad30343f253eabf88b3752de3112b13b96e4182119ef5f789916c413a5ca35ba7bf6619eb25bf64e7717844e4b9a49d33781d91f5b14af"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.1"; + }; + zitie = { + revision = 60676; + shortdesc = "Create CJK character calligraphy practicing sheets"; + stripPrefix = 0; + sha512.run = "10769951705e67bb929643e39d5480c4c2337a68f59ede2d77b2f8ddc3e2d6363c873d0e8e480a85e02f2062736570fa74171c862e50af73efa941a4d93cdd58"; + sha512.doc = "84f8e20beec5ba5ffbd79c6ffa68f0530b285761a8de6ed53e621ef39c0c14f59c33d76373581f94f10b1149a9fe5c92c1c74bbe2c4d6b8aa589d3a574bd9153"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4.0"; + }; + zlmtt = { + revision = 64076; + shortdesc = "Use Latin Modern Typewriter fonts"; + stripPrefix = 0; + sha512.run = "ecd45c407db5a78d31f6bcb7be6184531a51bbf89171c47f2e5178e65b06db4595682c713a977ece1cdbd98fb59b551baef3cca527b22f98bb45b37e73407144"; + sha512.doc = "2bd3ce9fde985f319bfb33ed791524bf81ce2ad3797fabdce78bbc4f4884871d5994e6fd9737ca3ae40953613aca70b9ef399ae914a40df54c91347ca98aef98"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.032"; + }; + zootaxa-bst = { + revision = 50619; + shortdesc = "A BibTeX style for the journal Zootaxa"; + stripPrefix = 0; + sha512.run = "80816556a2e23cfd8345b7d22224142a5448105ccc5c1143f33c4560a4e4ab432115c2fc47c5d4c6ba599031f4c36b481465a5fa7b32afde888beac69a6e6c62"; + sha512.doc = "f843aa27ab0c2139e1051aefaa9b667f2de489cc13578200ce7db2bdfc2397888856c6cbe68b6fa201e0cb269bb95818cb31f1b03622c49ebdced23fa5960d65"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.0"; + }; + zref = { + revision = 68278; + shortdesc = "A new reference scheme for LaTeX"; + stripPrefix = 0; + sha512.run = "1c21d99dc4f1627520914ed3620606c724f22754662797b93c4161aaf3e36d5a42a586ae7e4b227cdf67d55c88d3979635e78661d7029f1a5967c503a9f9dde5"; + sha512.doc = "24cf22b54cb13e1458266f4962ba589fa9385f3b8d58493747824d815c372cfa6fa8a8a24d0310264b299ce43148ca001b5c6b73961d1504e1ab6e8a4ac246c0"; + sha512.source = "251cc99a193371ca0e11d1690ce6ce545cdf077a483f81d2d5ac5c3495b24c25f383ba6b73e9607578adb0940441247ac4027c7719d2ada0c1b77f7876f9767a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "2.35"; + }; + zref-check = { + revision = 68846; + shortdesc = "Flexible cross-references with contextual checks based on zref"; + stripPrefix = 0; + sha512.run = "98aeb6007f1f599a2bda644c60c9929ca27c9045d73af3d54298837eb842e7976a2f9067182ce38c77ff197e2fe36a53207d2aa39adaa9deeb4e118bd034b0e5"; + sha512.doc = "d050bb4a6c68a80eafe3eb7f99c61407424385743785014600404397e6fa322becaf3a28157f59951a2406fdfb66968f3cba9de4e388282ea0c84e3f33d4fc8d"; + sha512.source = "a84246193d390c55dd66d65b64eae79e52099e7f7c75b8ef03d595d466d57643832f95ff23ecdc2dd0cc31b7c5cc64db361bd5ece7949e544936739b2c70e1bb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.3.5"; + }; + zref-clever = { + revision = 68846; + shortdesc = "Clever LaTeX cross-references based on zref"; + stripPrefix = 0; + sha512.run = "d7a32fde3ee94e304f854f690756ad9d15a9287c1dd38e1707a1f33e2bd30ac23147a439990ba7e9f7bc0b2c5b37b5d475bb64f2ab89bb15752bfc0e2f9ad3ac"; + sha512.doc = "c18e86417db71ece26e6a29e0598e521d17a79c26f5ebd92dbd78c427142bb992df9ff39c0a5867dd296093036615bc319aa9dc970faa0ae0d4ed479452e1b89"; + sha512.source = "3ff30e4c2ee570c5c142542110699ec17b123078c5d01ed9de2781404026b120856d38d4cb05160bd90ea56063e220e09dd46158d938a70416488797855a1fe3"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.4.3"; + }; + zref-vario = { + revision = 68846; + shortdesc = "Extended LaTeX page cross-references with varioref and zref-clever"; + stripPrefix = 0; + deps = [ + "tools" + "zref-clever" + ]; + sha512.run = "c159620be1d7d853641d4b42108ec0b2e36b6f4b0c604680469b52cf4c0557196263293d4692906d1d42c1d0ab9a666b59d462266131e42f319a5ab3a2385780"; + sha512.doc = "b618216a0bd8d7b65fe73be05156e899917719436ef0139122fd01047b8d55faeea55ae05e259d99c464aaeb3fdd9268886b7dec9c4b6a86209da1dcf1c3a3ca"; + sha512.source = "0569db63bf6fd492952cdee442312e818926bceba7663ce0e17f485dbe990687d97efc02649acef6dd89210aa44f9e88c86cf2667c4a487e9b78b90b10a779ce"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "0.1.10"; + }; + zwgetfdate = { + revision = 15878; + shortdesc = "Get package or file date"; + stripPrefix = 0; + sha512.run = "fe52555cc46a9e8340d8c9c37f88b372bf72efbd48a097b2d319592dc49a8cf55c87e80ea7d94ba6730742e9883215703749895008ba38838750efb9fb2334e9"; + sha512.doc = "7ab61dc4252ef7f60d1d5be8d4415bcaeaed194384a1da14a3400617b36c6efae3679dbbd6c8d64b8cc9f9947babe88c064d637379f663408cbe63ca42334bfb"; + hasRunfiles = true; + license = [ "lppl13c" ]; + }; + zwpagelayout = { + revision = 63074; + shortdesc = "Page layout and crop-marks"; + stripPrefix = 0; + sha512.run = "a0b5ca55208fe5f2353bf846fda3bbf2ef095f68e0e80265c9c89bfb14be0c80f5ca7c1b7fbaae4c8d67d70fc381353f889c9596e96412c351d39cceba40c263"; + sha512.doc = "9b52a6267720a787826bd14efa7742ef9adf9ad14c46065edf5f0e47c94d2762a7dd2a4b9b31864a3a1bad8addd4c18e21119a70abfca89730a7c7804628877a"; + hasRunfiles = true; + license = [ "lppl13c" ]; + version = "1.4e"; + }; + zx-calculus = { + revision = 70612; + shortdesc = "A library to typeset ZX Calculus diagrams"; + stripPrefix = 0; + sha512.run = "d59cbc2662dc41a216e9d8665a6bafefd27ef5993abae6682af24909cff49350dcf73f10ddc55b31dd3ebdd35509a7000edd8e055c85deee946a5efe258ddf14"; + sha512.doc = "a08719cbd99cfe9b37ca3fe62806e45908a1f48e5ff32a162fff3e835fdcf69c8a516ff7d3e0de6dd1827d3c78ae7efb3e79b4a534d77d94d5a16b9fd10b10d7"; + hasRunfiles = true; + license = [ "mit" ]; + version = "2.2"; + }; + zxjafbfont = { + revision = 28539; + shortdesc = "Fallback CJK font support for xeCJK"; + stripPrefix = 0; + sha512.run = "357b100dac7061a5e6fe91e3a708f32e99a134158393581bc717ae3e90afa5dbbff7aa1bae8c092638bca2d5c3ab65d8a8cbc39c20c3ec1ff85c967fb3849513"; + sha512.doc = "215079eeb772dc4ea55d5e00945a757c877acf9ea56aebe5a8969564a3836f54ca406d502d73e93d92b131600fc77bd2342d36fa78300adc0b4d1dd7f5d0f423"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.2"; + }; + zxjafont = { + revision = 62864; + shortdesc = "Set up Japanese font families for XeLaTeX"; + stripPrefix = 0; + sha512.run = "4afb6c3126c66c23a9a5b2ad1103289ab3f14c5a0d9bad7de209de3801e77f803e7a88d7440aa2f85d5aa6c23b6514585f263a95d6c3d68c232051880943a5c0"; + sha512.doc = "598a13775cac68ae6f176bd01b609373a4033583a83ed42f7914b15a01776d40b0c7200258dd68563510b2a3c11ec29a25ab3b26477650b60652e7332ef3f131"; + hasRunfiles = true; + license = [ "mit" ]; + version = "1.3"; + }; + zxjatype = { + revision = 53500; + shortdesc = "Standard conforming typesetting of Japanese, for XeLaTeX"; + stripPrefix = 0; + sha512.run = "21eaace7188c9e61f5dd65f34e26b1ca16358e7396d44188ae17e8e01a58f38ac3be9f09f8f41923c257d089210d1fb7d841eada5c9a345cec42b934d257ef94"; + sha512.doc = "0fccc73af66a05231cf8283920d65717600be4673329ed1f46b93a494d766aa9542deb1a56b5d23d6c0d6b93be98aa778234ddc2dcd9c0936542a45d057b6dc2"; + hasRunfiles = true; + license = [ "mit" ]; + version = "0.7"; + }; + zztex = { + revision = 55862; + shortdesc = "A full-featured TeX macro package for producing books, journals, and manuals"; + stripPrefix = 0; + sha512.run = "eb325564ee9e001e0e5ff79b6e3cc9f22f5b9b100ef021552f54953802edbce1e4b1295ff4590832f959386db7a63aaf8e31dc2d61b38e5c8a140082ca423e83"; + sha512.doc = "bd2a3a42b62da61db572058b4731161425545374584a575607f11bb2302aa2ce900b694aaf06562f4c9eb9046c80c4fbf5b50233f6d0526fac787c213070d542"; + hasRunfiles = true; + license = [ "mit" ]; + version = "17.7"; + }; } diff --git a/pkgs/by-name/ti/tix/default.nix b/pkgs/by-name/ti/tix/default.nix index a46b249..56ec627 100644 --- a/pkgs/by-name/ti/tix/default.nix +++ b/pkgs/by-name/ti/tix/default.nix @@ -1,36 +1,37 @@ -{ lib -, stdenv -, fetchurl -, fetchpatch -, tcl -, tk +{ + lib, + stdenv, + fetchurl, + fetchpatch, + tcl, + tk, }: tcl.mkTclDerivation { version = "8.4.3"; pname = "tix"; src = fetchurl { - url = "mirror://sourceforge/tix/tix/8.4.3/Tix8.4.3-src.tar.gz"; - sha256 = "1jq3dkyk9mqkj4cg7mdk5r0cclqsby9l2b7wrysi0zk5yw7h8bsn"; + url = "mirror://sourceforge/tix/tix/8.4.3/Tix8.4.3-src.tar.gz"; + sha256 = "1jq3dkyk9mqkj4cg7mdk5r0cclqsby9l2b7wrysi0zk5yw7h8bsn"; }; - patches = [ - (fetchpatch { - name = "tix-8.4.3-tcl8.5.patch"; - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d"; - sha256 = "0wzqmcxxq0rqpnjgxz10spw92yhfygnlwv0h8pcx2ycnqiljz6vj"; - }) - # Remove duplicated definition of XLowerWindow - ./duplicated-xlowerwindow.patch - # Fix incompatible function pointer conversions and implicit definition of `panic`. - # `panic` is just `Tcl_Panic`, but it is not defined on Darwin due to a conflict with `mach/mach.h`. - ./fix-clang16.patch - ] ++ lib.optional (tcl.release == "8.6") - (fetchpatch { - name = "tix-8.4.3-tcl8.6.patch"; - url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d"; - sha256 = "1jaz0l22xj7x1k4rb9ia6i1psnbwk4pblgq4gfvya7gg7fbb7r36"; - }) - ; + patches = + [ + (fetchpatch { + name = "tix-8.4.3-tcl8.5.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d"; + sha256 = "0wzqmcxxq0rqpnjgxz10spw92yhfygnlwv0h8pcx2ycnqiljz6vj"; + }) + # Remove duplicated definition of XLowerWindow + ./duplicated-xlowerwindow.patch + # Fix incompatible function pointer conversions and implicit definition of `panic`. + # `panic` is just `Tcl_Panic`, but it is not defined on Darwin due to a conflict with `mach/mach.h`. + ./fix-clang16.patch + ] + ++ lib.optional (tcl.release == "8.6") (fetchpatch { + name = "tix-8.4.3-tcl8.6.patch"; + url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d"; + sha256 = "1jaz0l22xj7x1k4rb9ia6i1psnbwk4pblgq4gfvya7gg7fbb7r36"; + }); buildInputs = [ tk ]; # the configure script expects to find the location of the sources of # tcl and tk in {tcl,tk}Config.sh @@ -44,7 +45,7 @@ tcl.mkTclDerivation { for i in ${tcl}/include/* ${tk.dev}/include/*; do ln -s $i private_headers/generic; done; - ''; + ''; addTclConfigureFlags = false; configureFlags = [ "--with-tclconfig=." @@ -55,9 +56,9 @@ tcl.mkTclDerivation { meta = with lib; { description = "A widget library for Tcl/Tk"; - homepage = "https://tix.sourceforge.net/"; - platforms = platforms.all; - license = with licenses; [ + homepage = "https://tix.sourceforge.net/"; + platforms = platforms.all; + license = with licenses; [ bsd2 # tix gpl2 # patches from portage ]; diff --git a/pkgs/by-name/tk/tk/8.5.nix b/pkgs/by-name/tk/tk/8.5.nix index afd5759..a734c3d 100644 --- a/pkgs/by-name/tk/tk/8.5.nix +++ b/pkgs/by-name/tk/tk/8.5.nix @@ -1,28 +1,32 @@ -{ lib -, stdenv -, callPackage -, fetchurl -, fetchpatch -, tcl -, ... -} @ args: +{ + lib, + stdenv, + callPackage, + fetchurl, + fetchpatch, + tcl, + ... +}@args: -callPackage ./generic.nix (args // { +callPackage ./generic.nix ( + args + // { - src = fetchurl { - url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz"; - sha256 = "1yhgcalldrjlc5q614rlzg1crgd3b52dhrk1pncdaxvl2vgg2yj0"; - }; + src = fetchurl { + url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz"; + sha256 = "1yhgcalldrjlc5q614rlzg1crgd3b52dhrk1pncdaxvl2vgg2yj0"; + }; - patches = lib.optionals stdenv.isDarwin [ - # Define MODULE_SCOPE before including tkPort.h - # https://core.tcl-lang.org/tk/info/dba9f5ce3b - (fetchpatch { - name = "module_scope.patch"; - url = "https://core.tcl-lang.org/tk/vpatch?from=ef6c6960c53ea30c&to=9b8aa74eebed509a"; - extraPrefix = ""; - sha256 = "0crhf4zrzdpc1jdgyv6l6mxqgmny12r3i39y1i0j8q3pbqkd04bv"; - }) - ]; + patches = lib.optionals stdenv.isDarwin [ + # Define MODULE_SCOPE before including tkPort.h + # https://core.tcl-lang.org/tk/info/dba9f5ce3b + (fetchpatch { + name = "module_scope.patch"; + url = "https://core.tcl-lang.org/tk/vpatch?from=ef6c6960c53ea30c&to=9b8aa74eebed509a"; + extraPrefix = ""; + sha256 = "0crhf4zrzdpc1jdgyv6l6mxqgmny12r3i39y1i0j8q3pbqkd04bv"; + }) + ]; -}) + } +) diff --git a/pkgs/by-name/tk/tk/8.6.nix b/pkgs/by-name/tk/tk/8.6.nix index fbf4560..8f5788f 100644 --- a/pkgs/by-name/tk/tk/8.6.nix +++ b/pkgs/by-name/tk/tk/8.6.nix @@ -1,21 +1,23 @@ -{ lib -, stdenv -, callPackage -, fetchurl -, fetchpatch -, tcl -, ... -} @ args: +{ + lib, + stdenv, + callPackage, + fetchurl, + fetchpatch, + tcl, + ... +}@args: -callPackage ./generic.nix (args // { +callPackage ./generic.nix ( + args + // { - src = fetchurl { - url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz"; - sha256 = "sha256-LmX6BpojNlRAo8VsVWuGc7XjKig4ANjZslfj9YTOBnU="; - }; + src = fetchurl { + url = "mirror://sourceforge/tcl/tk${tcl.version}-src.tar.gz"; + sha256 = "sha256-LmX6BpojNlRAo8VsVWuGc7XjKig4ANjZslfj9YTOBnU="; + }; - patches = [ - ./tk-8_6_13-find-library.patch - ]; + patches = [ ./tk-8_6_13-find-library.patch ]; -}) + } +) diff --git a/pkgs/by-name/tk/tk/generic.nix b/pkgs/by-name/tk/tk/generic.nix index 57a9b61..7a6fb26 100644 --- a/pkgs/by-name/tk/tk/generic.nix +++ b/pkgs/by-name/tk/tk/generic.nix @@ -1,6 +1,15 @@ -{ stdenv, lib, src, pkg-config, tcl, libXft, patches ? [] -, enableAqua ? stdenv.isDarwin, darwin -, ... }: +{ + stdenv, + lib, + src, + pkg-config, + tcl, + libXft, + patches ? [ ], + enableAqua ? stdenv.isDarwin, + darwin, + ... +}: tcl.mkTclDerivation { pname = "tk"; @@ -8,7 +17,11 @@ tcl.mkTclDerivation { inherit src patches; - outputs = [ "out" "man" "dev" ]; + outputs = [ + "out" + "man" + "dev" + ]; setOutputFlags = false; @@ -17,40 +30,44 @@ tcl.mkTclDerivation { cd unix ''; - postPatch = '' - for file in $(find library/demos/. -type f ! -name "*.*"); do - substituteInPlace $file --replace "exec wish" "exec $out/bin/wish" - done - '' - + lib.optionalString (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "11") '' - substituteInPlace unix/configure* \ - --replace " -framework UniformTypeIdentifiers" "" - ''; + postPatch = + '' + for file in $(find library/demos/. -type f ! -name "*.*"); do + substituteInPlace $file --replace "exec wish" "exec $out/bin/wish" + done + '' + + + lib.optionalString (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "11") + '' + substituteInPlace unix/configure* \ + --replace " -framework UniformTypeIdentifiers" "" + ''; - postInstall = '' - ln -s $out/bin/wish* $out/bin/wish - cp ../{unix,generic}/*.h $out/include - ln -s $out/lib/libtk${tcl.release}${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libtk${stdenv.hostPlatform.extensions.sharedLibrary} - '' - + lib.optionalString (stdenv.isDarwin) '' - cp ../macosx/*.h $out/include - ''; + postInstall = + '' + ln -s $out/bin/wish* $out/bin/wish + cp ../{unix,generic}/*.h $out/include + ln -s $out/lib/libtk${tcl.release}${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libtk${stdenv.hostPlatform.extensions.sharedLibrary} + '' + + lib.optionalString (stdenv.isDarwin) '' + cp ../macosx/*.h $out/include + ''; configureFlags = [ "--enable-threads" - ] ++ lib.optional stdenv.is64bit "--enable-64bit" - ++ lib.optional enableAqua "--enable-aqua"; + ] ++ lib.optional stdenv.is64bit "--enable-64bit" ++ lib.optional enableAqua "--enable-aqua"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ ]; - propagatedBuildInputs = [ - libXft - ] ++ lib.optionals enableAqua ([ - darwin.apple_sdk.frameworks.Cocoa - ] ++ lib.optionals (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") [ - darwin.apple_sdk.frameworks.UniformTypeIdentifiers - ]); + propagatedBuildInputs = + [ libXft ] + ++ lib.optionals enableAqua ( + [ darwin.apple_sdk.frameworks.Cocoa ] + ++ lib.optionals (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") [ + darwin.apple_sdk.frameworks.UniformTypeIdentifiers + ] + ); enableParallelBuilding = true; @@ -69,6 +86,9 @@ tcl.mkTclDerivation { homepage = "https://www.tcl.tk/"; license = licenses.tcltk; platforms = platforms.all; - maintainers = with maintainers; [ lovek323 vrthra ]; + maintainers = with maintainers; [ + lovek323 + vrthra + ]; }; } diff --git a/pkgs/by-name/tk/tk/packages.nix b/pkgs/by-name/tk/tk/packages.nix index 30754d2..c2e6288 100644 --- a/pkgs/by-name/tk/tk/packages.nix +++ b/pkgs/by-name/tk/tk/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { tk = tk-8_6; tk-8_6 = callPackage ./8.6.nix { }; tk-8_5 = callPackage ./8.5.nix { tcl = tcl-8_5; }; diff --git a/pkgs/by-name/to/toml11/default.nix b/pkgs/by-name/to/toml11/default.nix index 641b72a..7ef9c40 100644 --- a/pkgs/by-name/to/toml11/default.nix +++ b/pkgs/by-name/to/toml11/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake +{ + lib, + stdenv, + fetchFromGitHub, + cmake, }: stdenv.mkDerivation (finalAttrs: { @@ -15,9 +16,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-HnhXBvIjo1JXhp+hUQvjs83t5IBVbNN6o3ZGhB4WESQ="; }; - nativeBuildInputs = [ - cmake - ]; + nativeBuildInputs = [ cmake ]; meta = with lib; { homepage = "https://github.com/ToruNiina/toml11"; diff --git a/pkgs/by-name/tr/tracker/default.nix b/pkgs/by-name/tr/tracker/default.nix index 509c910..299f76a 100644 --- a/pkgs/by-name/tr/tracker/default.nix +++ b/pkgs/by-name/tr/tracker/default.nix @@ -1,33 +1,36 @@ -{ stdenv -, lib -, fetchurl -, gettext -, meson -, mesonEmulatorHook -, ninja -, pkg-config -, asciidoc -, gobject-introspection -, buildPackages -, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages -, vala -, python3 -, gi-docgen -, graphviz -, libxml2 -, glib -, wrapGAppsNoGuiHook -, sqlite -, libstemmer -, gnome -, icu -, libuuid -, libsoup -, libsoup_3 -, json-glib -, systemd -, dbus -, writeText +{ + stdenv, + lib, + fetchurl, + gettext, + meson, + mesonEmulatorHook, + ninja, + pkg-config, + asciidoc, + gobject-introspection, + buildPackages, + withIntrospection ? + lib.meta.availableOn stdenv.hostPlatform gobject-introspection + && stdenv.hostPlatform.emulatorAvailable buildPackages, + vala, + python3, + gi-docgen, + graphviz, + libxml2, + glib, + wrapGAppsNoGuiHook, + sqlite, + libstemmer, + gnome, + icu, + libuuid, + libsoup, + libsoup_3, + json-glib, + systemd, + dbus, + writeText, # for passthru # , testers }: @@ -36,36 +39,41 @@ stdenv.mkDerivation (finalAttrs: { pname = "tracker"; version = "3.6.0"; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ + "out" + "dev" + "devdoc" + ]; src = fetchurl { - url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + url = + with finalAttrs; + "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; sha256 = "Ulks/hm6/9FtvkdHW+fadQ29C2Mz/XrLYPqp2lvEDfI="; }; strictDeps = true; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; - nativeBuildInputs = [ - meson - ninja - pkg-config - asciidoc - gettext - glib - wrapGAppsNoGuiHook - gi-docgen - graphviz - (python3.pythonOnBuildForHost.withPackages (p: [ p.pygobject3 ])) - ] ++ lib.optionals withIntrospection [ - gobject-introspection - vala - ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ - mesonEmulatorHook - ]; + nativeBuildInputs = + [ + meson + ninja + pkg-config + asciidoc + gettext + glib + wrapGAppsNoGuiHook + gi-docgen + graphviz + (python3.pythonOnBuildForHost.withPackages (p: [ p.pygobject3 ])) + ] + ++ lib.optionals withIntrospection [ + gobject-introspection + vala + ] + ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; buildInputs = [ glib @@ -78,33 +86,28 @@ stdenv.mkDerivation (finalAttrs: { json-glib libstemmer dbus - ] ++ lib.optionals stdenv.isLinux [ - systemd - ]; + ] ++ lib.optionals stdenv.isLinux [ systemd ]; - nativeCheckInputs = [ - dbus - ]; + nativeCheckInputs = [ dbus ]; - mesonFlags = [ - "-Ddocs=true" - (lib.mesonEnable "introspection" withIntrospection) - (lib.mesonEnable "vapi" withIntrospection) - (lib.mesonBool "test_utils" withIntrospection) - ] ++ ( - let - # https://gitlab.gnome.org/GNOME/tracker/-/blob/master/meson.build#L159 - crossFile = writeText "cross-file.conf" '' - [properties] - sqlite3_has_fts5 = '${lib.boolToString (lib.hasInfix "-DSQLITE_ENABLE_FTS3" sqlite.NIX_CFLAGS_COMPILE)}' - ''; - in + mesonFlags = [ - "--cross-file=${crossFile}" + "-Ddocs=true" + (lib.mesonEnable "introspection" withIntrospection) + (lib.mesonEnable "vapi" withIntrospection) + (lib.mesonBool "test_utils" withIntrospection) ] - ) ++ lib.optionals (!stdenv.isLinux) [ - "-Dsystemd_user_services=false" - ]; + ++ ( + let + # https://gitlab.gnome.org/GNOME/tracker/-/blob/master/meson.build#L159 + crossFile = writeText "cross-file.conf" '' + [properties] + sqlite3_has_fts5 = '${lib.boolToString (lib.hasInfix "-DSQLITE_ENABLE_FTS3" sqlite.NIX_CFLAGS_COMPILE)}' + ''; + in + [ "--cross-file=${crossFile}" ] + ) + ++ lib.optionals (!stdenv.isLinux) [ "-Dsystemd_user_services=false" ]; doCheck = # https://gitlab.gnome.org/GNOME/tracker/-/issues/402 @@ -178,6 +181,9 @@ stdenv.mkDerivation (finalAttrs: { maintainers = teams.gnome.members; license = licenses.gpl2Plus; platforms = platforms.unix; - pkgConfigModules = [ "tracker-sparql-3.0" "tracker-testutils-3.0" ]; + pkgConfigModules = [ + "tracker-sparql-3.0" + "tracker-testutils-3.0" + ]; }; }) diff --git a/pkgs/by-name/tr/tradcpp/default.nix b/pkgs/by-name/tr/tradcpp/default.nix index 73d0cf5..d1c9359 100644 --- a/pkgs/by-name/tr/tradcpp/default.nix +++ b/pkgs/by-name/tr/tradcpp/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, autoconf }: +{ + lib, + stdenv, + fetchurl, + autoconf, +}: stdenv.mkDerivation rec { pname = "tradcpp"; diff --git a/pkgs/by-name/tz/tzdata/default.nix b/pkgs/by-name/tz/tzdata/default.nix index 522b2da..a9f3b9d 100644 --- a/pkgs/by-name/tz/tzdata/default.nix +++ b/pkgs/by-name/tz/tzdata/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, buildPackages }: +{ + lib, + stdenv, + fetchurl, + buildPackages, +}: stdenv.mkDerivation (finalAttrs: { pname = "tzdata"; @@ -21,29 +26,36 @@ stdenv.mkDerivation (finalAttrs: { ./0001-Add-exe-extension-for-MS-Windows-binaries.patch ]; - outputs = [ "out" "bin" "man" "dev" ]; + outputs = [ + "out" + "bin" + "man" + "dev" + ]; propagatedBuildOutputs = [ ]; - makeFlags = [ - "TOPDIR=${placeholder "out"}" - "TZDIR=${placeholder "out"}/share/zoneinfo" - "BINDIR=${placeholder "bin"}/bin" - "ZICDIR=${placeholder "bin"}/bin" - "ETCDIR=$(TMPDIR)/etc" - "TZDEFAULT=tzdefault-to-remove" - "LIBDIR=${placeholder "dev"}/lib" - "MANDIR=${placeholder "man"}/share/man" - "AWK=awk" - "CFLAGS=-DHAVE_LINK=0" - "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\"" - "cc=${stdenv.cc.targetPrefix}cc" - "AR=${stdenv.cc.targetPrefix}ar" - ] ++ lib.optionals stdenv.hostPlatform.isWindows [ - "CFLAGS+=-DHAVE_DIRECT_H" - "CFLAGS+=-DHAVE_SETENV=0" - "CFLAGS+=-DHAVE_SYMLINK=0" - "CFLAGS+=-DRESERVE_STD_EXT_IDS" - ]; + makeFlags = + [ + "TOPDIR=${placeholder "out"}" + "TZDIR=${placeholder "out"}/share/zoneinfo" + "BINDIR=${placeholder "bin"}/bin" + "ZICDIR=${placeholder "bin"}/bin" + "ETCDIR=$(TMPDIR)/etc" + "TZDEFAULT=tzdefault-to-remove" + "LIBDIR=${placeholder "dev"}/lib" + "MANDIR=${placeholder "man"}/share/man" + "AWK=awk" + "CFLAGS=-DHAVE_LINK=0" + "CFLAGS+=-DZIC_BLOAT_DEFAULT=\\\"fat\\\"" + "cc=${stdenv.cc.targetPrefix}cc" + "AR=${stdenv.cc.targetPrefix}ar" + ] + ++ lib.optionals stdenv.hostPlatform.isWindows [ + "CFLAGS+=-DHAVE_DIRECT_H" + "CFLAGS+=-DHAVE_SETENV=0" + "CFLAGS+=-DHAVE_SYMLINK=0" + "CFLAGS+=-DRESERVE_STD_EXT_IDS" + ]; doCheck = true; # everything except for: @@ -55,19 +67,18 @@ stdenv.mkDerivation (finalAttrs: { "zic=${buildPackages.tzdata.bin}/bin/zic" ]; - postInstall = - '' - rm $out/share/zoneinfo-posix - rm $out/share/zoneinfo/tzdefault-to-remove - mkdir $out/share/zoneinfo/posix - ( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix ) - mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right + postInstall = '' + rm $out/share/zoneinfo-posix + rm $out/share/zoneinfo/tzdefault-to-remove + mkdir $out/share/zoneinfo/posix + ( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix ) + mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right - cp leap-seconds.list $out/share/zoneinfo + cp leap-seconds.list $out/share/zoneinfo - mkdir -p "$dev/include" - cp tzfile.h "$dev/include/tzfile.h" - ''; + mkdir -p "$dev/include" + cp tzfile.h "$dev/include/tzfile.h" + ''; setupHook = ./tzdata-setup-hook.sh; @@ -80,6 +91,9 @@ stdenv.mkDerivation (finalAttrs: { publicDomain # tzdata ]; platforms = platforms.all; - maintainers = with maintainers; [ ajs124 fpletz ]; + maintainers = with maintainers; [ + ajs124 + fpletz + ]; }; }) diff --git a/pkgs/by-name/un/unifdef/default.nix b/pkgs/by-name/un/unifdef/default.nix index ebb034a..ef4fc00 100644 --- a/pkgs/by-name/un/unifdef/default.nix +++ b/pkgs/by-name/un/unifdef/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "unifdef"; @@ -19,6 +23,9 @@ stdenv.mkDerivation rec { description = "Selectively remove C preprocessor conditionals"; license = licenses.bsd2; platforms = platforms.unix; - maintainers = with maintainers; [ orivej vrthra ]; + maintainers = with maintainers; [ + orivej + vrthra + ]; }; } diff --git a/pkgs/by-name/un/unixtools/packages.nix b/pkgs/by-name/un/unixtools/packages.nix index 6b1e475..11ec3ee 100644 --- a/pkgs/by-name/un/unixtools/packages.nix +++ b/pkgs/by-name/un/unixtools/packages.nix @@ -1,11 +1,25 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { # Unix tools unixtools = recurseIntoAttrs (callPackages ./unixtools.nix { }); - inherit (unixtools) hexdump ps logger eject umount - mount wall hostname more sysctl getconf - getent locale killall xxd watch; + inherit (unixtools) + hexdump + ps + logger + eject + umount + mount + wall + hostname + more + sysctl + getconf + getent + locale + killall + xxd + watch + ; } diff --git a/pkgs/by-name/un/unixtools/unixtools.nix b/pkgs/by-name/un/unixtools/unixtools.nix index e15d38d..3eaf70d 100644 --- a/pkgs/by-name/un/unixtools/unixtools.nix +++ b/pkgs/by-name/un/unixtools/unixtools.nix @@ -1,4 +1,11 @@ -{ pkgs, buildEnv, runCommand, lib, stdenv, path }: +{ + pkgs, + buildEnv, + runCommand, + lib, + stdenv, + path, +}: # These are some unix tools that are commonly included in the /usr/bin # and /usr/sbin directory under more normal distributions. Along with @@ -20,36 +27,43 @@ let version = "1003.1-2008"; - singleBinary = cmd: providers: let + singleBinary = + cmd: providers: + let provider = providers.${stdenv.hostPlatform.parsed.kernel.name} or providers.linux; bin = "${getBin provider}/bin/${cmd}"; manpage = "${getOutput "man" provider}/share/man/man1/${cmd}.1.gz"; - in runCommand "${cmd}-${provider.name}" { - meta = { - mainProgram = cmd; - priority = 10; - platforms = platforms.${stdenv.hostPlatform.parsed.kernel.name} or platforms.all; - }; - passthru = { inherit provider; }; - preferLocalBuild = true; - } '' - if ! [ -x ${bin} ]; then - echo Cannot find command ${cmd} - exit 1 - fi + in + runCommand "${cmd}-${provider.name}" + { + meta = { + mainProgram = cmd; + priority = 10; + platforms = platforms.${stdenv.hostPlatform.parsed.kernel.name} or platforms.all; + }; + passthru = { + inherit provider; + }; + preferLocalBuild = true; + } + '' + if ! [ -x ${bin} ]; then + echo Cannot find command ${cmd} + exit 1 + fi - mkdir -p $out/bin - ln -s ${bin} $out/bin/${cmd} + mkdir -p $out/bin + ln -s ${bin} $out/bin/${cmd} - if [ -f ${manpage} ]; then - mkdir -p $out/share/man/man1 - ln -s ${manpage} $out/share/man/man1/${cmd}.1.gz - fi - ''; + if [ -f ${manpage} ]; then + mkdir -p $out/share/man/man1 + ln -s ${manpage} $out/share/man/man1/${cmd}.1.gz + fi + ''; # more is unavailable in darwin # so we just use less - more_compat = runCommand "more-${pkgs.less.name}" {} '' + more_compat = runCommand "more-${pkgs.less.name}" { } '' mkdir -p $out/bin ln -s ${pkgs.less}/bin/less $out/bin/more ''; @@ -72,13 +86,12 @@ let linux = pkgs.util-linux; }; getconf = { - linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc - else pkgs.netbsd.getconf; + linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc else pkgs.netbsd.getconf; darwin = pkgs.darwin.system_cmds; }; getent = { - linux = if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc.getent - else pkgs.netbsd.getent; + linux = + if stdenv.hostPlatform.libc == "glibc" then pkgs.stdenv.cc.libc.getent else pkgs.netbsd.getent; darwin = pkgs.netbsd.getent; }; getopt = { @@ -172,7 +185,7 @@ let # watch is the only command from procps that builds currently on # Darwin. Unfortunately no other implementations exist currently! - darwin = pkgs.callPackage (path + "/pkgs/by-name/pr/procps-ng") {}; + darwin = pkgs.callPackage (path + "/pkgs/by-name/pr/procps-ng") { }; }; write = { linux = pkgs.util-linux; @@ -184,7 +197,8 @@ let }; }; - makeCompat = pname: paths: + makeCompat = + pname: paths: buildEnv { name = "${pname}-${version}"; inherit paths; @@ -192,10 +206,35 @@ let # Compatibility derivations # Provided for old usage of these commands. - compat = with bins; mapAttrs makeCompat { - procps = [ ps sysctl top watch ]; - util-linux = [ fsck fdisk getopt hexdump mount - script umount whereis write col column ]; - nettools = [ arp hostname ifconfig netstat route ]; - }; -in bins // compat + compat = + with bins; + mapAttrs makeCompat { + procps = [ + ps + sysctl + top + watch + ]; + util-linux = [ + fsck + fdisk + getopt + hexdump + mount + script + umount + whereis + write + col + column + ]; + nettools = [ + arp + hostname + ifconfig + netstat + route + ]; + }; +in +bins // compat diff --git a/pkgs/by-name/un/unzip/default.nix b/pkgs/by-name/un/unzip/default.nix index 9860817..49546cf 100644 --- a/pkgs/by-name/un/unzip/default.nix +++ b/pkgs/by-name/un/unzip/default.nix @@ -1,6 +1,10 @@ -{ lib, stdenv, fetchurl -, bzip2 -, enableNLS ? false, libnatspec +{ + lib, + stdenv, + fetchurl, + bzip2, + enableNLS ? false, + libnatspec, }: stdenv.mkDerivation rec { @@ -8,69 +12,72 @@ stdenv.mkDerivation rec { version = "6.0"; src = fetchurl { - url = "mirror://sourceforge/infozip/unzip${lib.replaceStrings ["."] [""] version}.tar.gz"; + url = "mirror://sourceforge/infozip/unzip${lib.replaceStrings [ "." ] [ "" ] version}.tar.gz"; sha256 = "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83"; }; hardeningDisable = [ "format" ]; - patchFlags = [ "-p1" "-F3" ]; + patchFlags = [ + "-p1" + "-F3" + ]; - patches = [ - ./CVE-2014-8139.diff - ./CVE-2014-8140.diff - ./CVE-2014-8141.diff - ./CVE-2014-9636.diff - ./CVE-2015-7696.diff - ./CVE-2015-7697.diff - ./CVE-2014-9913.patch - ./CVE-2016-9844.patch - ./CVE-2018-18384.patch - ./dont-hardcode-cc.patch - (fetchurl { - url = "https://github.com/madler/unzip/commit/41beb477c5744bc396fa1162ee0c14218ec12213.patch"; - name = "CVE-2019-13232-1.patch"; - sha256 = "04jzd6chg9fw4l5zadkfsrfm5llrd7vhd1dgdjjd29nrvkrjyn14"; - }) - (fetchurl { - url = "https://github.com/madler/unzip/commit/47b3ceae397d21bf822bc2ac73052a4b1daf8e1c.patch"; - name = "CVE-2019-13232-2.patch"; - sha256 = "0iy2wcjyvzwrjk02iszwcpg85fkjxs1bvb9isvdiywszav4yjs32"; - }) - (fetchurl { - url = "https://github.com/madler/unzip/commit/6d351831be705cc26d897db44f878a978f4138fc.patch"; - name = "CVE-2019-13232-3.patch"; - sha256 = "1jvs7dkdqs97qnsqc6hk088alhv8j4c638k65dbib9chh40jd7pf"; - }) - (fetchurl { - urls = [ - # original link (will be dead eventually): - "https://sources.debian.org/data/main/u/unzip/6.0-26%2Bdeb11u1/debian/patches/06-initialize-the-symlink-flag.patch" + patches = + [ + ./CVE-2014-8139.diff + ./CVE-2014-8140.diff + ./CVE-2014-8141.diff + ./CVE-2014-9636.diff + ./CVE-2015-7696.diff + ./CVE-2015-7697.diff + ./CVE-2014-9913.patch + ./CVE-2016-9844.patch + ./CVE-2018-18384.patch + ./dont-hardcode-cc.patch + (fetchurl { + url = "https://github.com/madler/unzip/commit/41beb477c5744bc396fa1162ee0c14218ec12213.patch"; + name = "CVE-2019-13232-1.patch"; + sha256 = "04jzd6chg9fw4l5zadkfsrfm5llrd7vhd1dgdjjd29nrvkrjyn14"; + }) + (fetchurl { + url = "https://github.com/madler/unzip/commit/47b3ceae397d21bf822bc2ac73052a4b1daf8e1c.patch"; + name = "CVE-2019-13232-2.patch"; + sha256 = "0iy2wcjyvzwrjk02iszwcpg85fkjxs1bvb9isvdiywszav4yjs32"; + }) + (fetchurl { + url = "https://github.com/madler/unzip/commit/6d351831be705cc26d897db44f878a978f4138fc.patch"; + name = "CVE-2019-13232-3.patch"; + sha256 = "1jvs7dkdqs97qnsqc6hk088alhv8j4c638k65dbib9chh40jd7pf"; + }) + (fetchurl { + urls = [ + # original link (will be dead eventually): + "https://sources.debian.org/data/main/u/unzip/6.0-26%2Bdeb11u1/debian/patches/06-initialize-the-symlink-flag.patch" - "https://gist.github.com/veprbl/41261bb781571e2246ea42d3f37795f5/raw/d8533d8c6223150f76b0f31aec03e185fcde3579/06-initialize-the-symlink-flag.patch" - ]; - sha256 = "1h00djdvgjhwfb60wl4qrxbyfsbbnn1qw6l2hkldnif4m8f8r1zj"; - }) - (fetchurl { - urls = [ - # original link (will be dead eventually): - "https://sources.debian.org/data/main/u/unzip/6.0-27/debian/patches/28-cve-2022-0529-and-cve-2022-0530.patch" + "https://gist.github.com/veprbl/41261bb781571e2246ea42d3f37795f5/raw/d8533d8c6223150f76b0f31aec03e185fcde3579/06-initialize-the-symlink-flag.patch" + ]; + sha256 = "1h00djdvgjhwfb60wl4qrxbyfsbbnn1qw6l2hkldnif4m8f8r1zj"; + }) + (fetchurl { + urls = [ + # original link (will be dead eventually): + "https://sources.debian.org/data/main/u/unzip/6.0-27/debian/patches/28-cve-2022-0529-and-cve-2022-0530.patch" - "https://web.archive.org/web/20230106200319/https://sources.debian.org/data/main/u/unzip/6.0-27/debian/patches/28-cve-2022-0529-and-cve-2022-0530.patch" - ]; - sha256 = "sha256-on79jElQ+z2ULWAq14RpluAqr9d6itHiZwDkKubBzTc="; - }) - # Clang 16 makes implicit declarations an error by default for C99 and newer, causing the - # configure script to fail to detect errno and the directory libraries on Darwin. - ./implicit-declarations-fix.patch - ] ++ lib.optional enableNLS - (fetchurl { + "https://web.archive.org/web/20230106200319/https://sources.debian.org/data/main/u/unzip/6.0-27/debian/patches/28-cve-2022-0529-and-cve-2022-0530.patch" + ]; + sha256 = "sha256-on79jElQ+z2ULWAq14RpluAqr9d6itHiZwDkKubBzTc="; + }) + # Clang 16 makes implicit declarations an error by default for C99 and newer, causing the + # configure script to fail to detect errno and the directory libraries on Darwin. + ./implicit-declarations-fix.patch + ] + ++ lib.optional enableNLS (fetchurl { url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-arch/unzip/files/unzip-6.0-natspec.patch?id=56bd759df1d0c750a065b8c845e93d5dfa6b549d"; name = "unzip-6.0-natspec.patch"; sha256 = "67ab260ae6adf8e7c5eda2d1d7846929b43562943ec4aff629bd7018954058b1"; }); - nativeBuildInputs = [ bzip2 ]; buildInputs = [ bzip2 ] ++ lib.optional enableNLS libnatspec; @@ -78,22 +85,21 @@ stdenv.mkDerivation rec { NIX_LDFLAGS = "-lbz2" + lib.optionalString enableNLS " -lnatspec"; - buildFlags = [ - "generic" - "D_USE_BZ2=-DUSE_BZIP2" - "L_BZ2=-lbz2" - ] - # `lchmod` is not available on Linux, so we remove it to fix "not supported" errors (when the zip file contains symlinks). - # Alpine (musl) and Debian (glibc) also add this flag. - ++ lib.optionals stdenv.isLinux [ "LOCAL_UNZIP=-DNO_LCHMOD" ]; + buildFlags = + [ + "generic" + "D_USE_BZ2=-DUSE_BZIP2" + "L_BZ2=-lbz2" + ] + # `lchmod` is not available on Linux, so we remove it to fix "not supported" errors (when the zip file contains symlinks). + # Alpine (musl) and Debian (glibc) also add this flag. + ++ lib.optionals stdenv.isLinux [ "LOCAL_UNZIP=-DNO_LCHMOD" ]; preConfigure = '' sed -i -e 's@CF="-O3 -Wall -I. -DASM_CRC $(LOC)"@CF="-O3 -Wall -I. -DASM_CRC -DLARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(LOC)"@' unix/Makefile ''; - installFlags = [ - "prefix=${placeholder "out"}" - ]; + installFlags = [ "prefix=${placeholder "out"}" ]; setupHook = ./setup-hook.sh; diff --git a/pkgs/by-name/ut/util-linux/default.nix b/pkgs/by-name/ut/util-linux/default.nix index e533a81..66f175e 100644 --- a/pkgs/by-name/ut/util-linux/default.nix +++ b/pkgs/by-name/ut/util-linux/default.nix @@ -1,26 +1,33 @@ -{ lib, stdenv, fetchurl, pkg-config, zlib, shadow -, capabilitiesSupport ? stdenv.isLinux -, libcap_ng -, libxcrypt -, ncursesSupport ? true -, ncurses -, pamSupport ? true -, pam -, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd -, systemd -, nlsSupport ? true -, translateManpages ? true -, po4a -, installShellFiles -, writeSupport ? stdenv.isLinux -, shadowSupport ? stdenv.isLinux -, memstreamHook +{ + lib, + stdenv, + fetchurl, + pkg-config, + zlib, + shadow, + capabilitiesSupport ? stdenv.isLinux, + libcap_ng, + libxcrypt, + ncursesSupport ? true, + ncurses, + pamSupport ? true, + pam, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, + systemd, + nlsSupport ? true, + translateManpages ? true, + po4a, + installShellFiles, + writeSupport ? stdenv.isLinux, + shadowSupport ? stdenv.isLinux, + memstreamHook, # for passthru # , gitUpdater }: stdenv.mkDerivation rec { - pname = "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal"; + pname = + "util-linux" + lib.optionalString (!nlsSupport && !ncursesSupport && !systemdSupport) "-minimal"; version = "2.39.3"; src = fetchurl { @@ -28,27 +35,37 @@ stdenv.mkDerivation rec { hash = "sha256-e2YF5I0aSfQ8xLTPxZ8xPQ3VQC+kC5aBC9Vy4Wff7Q8="; }; - patches = [ - ./rtcwake-search-PATH-for-shutdown.patch - ]; + patches = [ ./rtcwake-search-PATH-for-shutdown.patch ]; # We separate some of the utilities into their own outputs. This # allows putting together smaller systems depending on only part of # the greater util-linux toolset. # Compatibility is maintained by symlinking the binaries from the # smaller outputs in the bin output. - outputs = [ "bin" "dev" "out" "lib" "man" ] ++ lib.optionals stdenv.isLinux [ "mount" ] ++ [ "login" ] ++ lib.optionals stdenv.isLinux [ "swap" ]; + outputs = + [ + "bin" + "dev" + "out" + "lib" + "man" + ] + ++ lib.optionals stdenv.isLinux [ "mount" ] + ++ [ "login" ] + ++ lib.optionals stdenv.isLinux [ "swap" ]; separateDebugInfo = true; - postPatch = '' - patchShebangs tests/run.sh + postPatch = + '' + patchShebangs tests/run.sh - substituteInPlace sys-utils/eject.c \ - --replace "/bin/umount" "$bin/bin/umount" - '' + lib.optionalString shadowSupport '' - substituteInPlace include/pathnames.h \ - --replace "/bin/login" "${shadow}/bin/login" - ''; + substituteInPlace sys-utils/eject.c \ + --replace "/bin/umount" "$bin/bin/umount" + '' + + lib.optionalString shadowSupport '' + substituteInPlace include/pathnames.h \ + --replace "/bin/login" "${shadow}/bin/login" + ''; # !!! It would be better to obtain the path to the mount helpers # (/sbin/mount.*) through an environment variable, but that's @@ -58,19 +75,17 @@ stdenv.mkDerivation rec { "--localstatedir=/var" "--disable-use-tty-group" "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin" - "--disable-makeinstall-setuid" "--disable-makeinstall-chown" + "--disable-makeinstall-setuid" + "--disable-makeinstall-chown" "--disable-su" # provided by shadow (lib.enableFeature writeSupport "write") (lib.enableFeature nlsSupport "nls") (lib.withFeature ncursesSupport "ncursesw") (lib.withFeature systemdSupport "systemd") - (lib.withFeatureAs systemdSupport - "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") + (lib.withFeatureAs systemdSupport "systemdsystemunitdir" "${placeholder "bin"}/lib/systemd/system/") (lib.enableFeature translateManpages "poman") "SYSCONFSTATICDIR=${placeholder "lib"}/lib" - ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) - "scanf_cv_type_modifier=ms" - ; + ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "scanf_cv_type_modifier=ms"; makeFlags = [ "usrbin_execdir=${placeholder "bin"}/bin" @@ -78,10 +93,16 @@ stdenv.mkDerivation rec { "usrsbin_execdir=${placeholder "bin"}/sbin" ]; - nativeBuildInputs = [ pkg-config installShellFiles ] - ++ lib.optionals translateManpages [ po4a ]; + nativeBuildInputs = [ + pkg-config + installShellFiles + ] ++ lib.optionals translateManpages [ po4a ]; - buildInputs = [ zlib libxcrypt ] + buildInputs = + [ + zlib + libxcrypt + ] ++ lib.optionals pamSupport [ pam ] ++ lib.optionals capabilitiesSupport [ libcap_ng ] ++ lib.optionals ncursesSupport [ ncurses ] @@ -92,26 +113,30 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - postInstall = lib.optionalString stdenv.isLinux '' - moveToOutput bin/mount "$mount" - moveToOutput bin/umount "$mount" - ln -svf "$mount/bin/"* $bin/bin/ - '' + '' + postInstall = + lib.optionalString stdenv.isLinux '' + moveToOutput bin/mount "$mount" + moveToOutput bin/umount "$mount" + ln -svf "$mount/bin/"* $bin/bin/ + '' + + '' - moveToOutput sbin/nologin "$login" - moveToOutput sbin/sulogin "$login" - prefix=$login _moveSbin - ln -svf "$login/bin/"* $bin/bin/ - '' + lib.optionalString stdenv.isLinux '' + moveToOutput sbin/nologin "$login" + moveToOutput sbin/sulogin "$login" + prefix=$login _moveSbin + ln -svf "$login/bin/"* $bin/bin/ + '' + + lib.optionalString stdenv.isLinux '' - moveToOutput sbin/swapon "$swap" - moveToOutput sbin/swapoff "$swap" - prefix=$swap _moveSbin - ln -svf "$swap/bin/"* $bin/bin/ - '' + '' + moveToOutput sbin/swapon "$swap" + moveToOutput sbin/swapoff "$swap" + prefix=$swap _moveSbin + ln -svf "$swap/bin/"* $bin/bin/ + '' + + '' - installShellCompletion --bash bash-completion/* - ''; + installShellCompletion --bash bash-completion/* + ''; # passthru = { # updateScript = gitUpdater { @@ -127,7 +152,15 @@ stdenv.mkDerivation rec { description = "A set of system utilities for Linux"; changelog = "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${lib.versions.majorMinor version}/v${version}-ReleaseNotes"; # https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/README.licensing - license = with licenses; [ gpl2Only gpl2Plus gpl3Plus lgpl21Plus bsd3 bsdOriginalUC publicDomain ]; + license = with licenses; [ + gpl2Only + gpl2Plus + gpl3Plus + lgpl21Plus + bsd3 + bsdOriginalUC + publicDomain + ]; platforms = platforms.unix; pkgConfigModules = [ "blkid" diff --git a/pkgs/by-name/ut/util-linux/packages.nix b/pkgs/by-name/ut/util-linux/packages.nix index 35d1499..bea3e28 100644 --- a/pkgs/by-name/ut/util-linux/packages.nix +++ b/pkgs/by-name/ut/util-linux/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { util-linux = callPackage ./. { }; util-linuxMinimal = util-linux.override { nlsSupport = false; @@ -11,8 +10,5 @@ with pkgs; translateManpages = false; }; - libuuid = - if stdenv.isLinux - then util-linuxMinimal - else null; + libuuid = if stdenv.isLinux then util-linuxMinimal else null; } diff --git a/pkgs/by-name/w3/w3m/default.nix b/pkgs/by-name/w3/w3m/default.nix index 5d2ea47..bd948ec 100644 --- a/pkgs/by-name/w3/w3m/default.nix +++ b/pkgs/by-name/w3/w3m/default.nix @@ -1,24 +1,43 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch -, ncurses, boehmgc, gettext, zlib -, sslSupport ? true, openssl -, graphicsSupport ? !stdenv.isDarwin, imlib2 -, x11Support ? graphicsSupport, libX11 -, mouseSupport ? !stdenv.isDarwin, gpm-ncurses -, perl, man, pkg-config, buildPackages, w3m -, testers +{ + lib, + stdenv, + fetchFromGitHub, + fetchpatch, + ncurses, + boehmgc, + gettext, + zlib, + sslSupport ? true, + openssl, + graphicsSupport ? !stdenv.isDarwin, + imlib2, + x11Support ? graphicsSupport, + libX11, + mouseSupport ? !stdenv.isDarwin, + gpm-ncurses, + perl, + man, + pkg-config, + buildPackages, + w3m, + testers, }: let mktable = buildPackages.stdenv.mkDerivation { name = "w3m-mktable"; inherit (w3m) src; - nativeBuildInputs = [ pkg-config boehmgc ]; + nativeBuildInputs = [ + pkg-config + boehmgc + ]; makeFlags = [ "mktable" ]; installPhase = '' install -D mktable $out/bin/mktable ''; }; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "w3m"; version = "0.5.3+git20230121"; @@ -53,8 +72,16 @@ in stdenv.mkDerivation rec { sed -ie 's!mktable.*:.*!mktable:!' Makefile.in ''; - nativeBuildInputs = [ pkg-config gettext ]; - buildInputs = [ ncurses boehmgc zlib ] + nativeBuildInputs = [ + pkg-config + gettext + ]; + buildInputs = + [ + ncurses + boehmgc + zlib + ] ++ lib.optional sslSupport openssl ++ lib.optional mouseSupport gpm-ncurses ++ lib.optional graphicsSupport imlib2 @@ -67,10 +94,11 @@ in stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; configureFlags = - [ "--with-ssl=${openssl.dev}" "--with-gc=${boehmgc.dev}" ] - ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ - "ac_cv_func_setpgrp_void=yes" + [ + "--with-ssl=${openssl.dev}" + "--with-gc=${boehmgc.dev}" ] + ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "ac_cv_func_setpgrp_void=yes" ] ++ lib.optional graphicsSupport "--enable-image=${lib.optionalString x11Support "x11,"}fb" ++ lib.optional (graphicsSupport && !x11Support) "--without-x"; diff --git a/pkgs/by-name/w3/w3m/packages.nix b/pkgs/by-name/w3/w3m/packages.nix index 4dbfeac..474be20 100644 --- a/pkgs/by-name/w3/w3m/packages.nix +++ b/pkgs/by-name/w3/w3m/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { w3m = callPackage ./. { }; # Should always be the version with the most features diff --git a/pkgs/by-name/wi/which/default.nix b/pkgs/by-name/wi/which/default.nix index 831791a..ae9deec 100644 --- a/pkgs/by-name/wi/which/default.nix +++ b/pkgs/by-name/wi/which/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: stdenv.mkDerivation rec { pname = "which"; diff --git a/pkgs/by-name/wi/windows/cygwin-setup/default.nix b/pkgs/by-name/wi/windows/cygwin-setup/default.nix index 91dad81..bb65d36 100644 --- a/pkgs/by-name/wi/windows/cygwin-setup/default.nix +++ b/pkgs/by-name/wi/windows/cygwin-setup/default.nix @@ -1,5 +1,17 @@ -{ lib, stdenv, fetchcvs, autoconf, automake, libtool, flex, bison, pkg-config -, zlib, bzip2, xz, libgcrypt +{ + lib, + stdenv, + fetchcvs, + autoconf, + automake, + libtool, + flex, + bison, + pkg-config, + zlib, + bzip2, + xz, + libgcrypt, }: with lib; @@ -15,16 +27,30 @@ stdenv.mkDerivation rec { sha256 = "024wxaaxkf7p1i78bh5xrsqmfz7ss2amigbfl2r5w9h87zqn9aq3"; }; - nativeBuildInputs = [ autoconf automake libtool flex bison pkg-config ]; + nativeBuildInputs = [ + autoconf + automake + libtool + flex + bison + pkg-config + ]; - buildInputs = let - mkStatic = flip overrideDerivation (o: { - dontDisableStatic = true; - configureFlags = toList (o.configureFlags or []) ++ [ "--enable-static" ]; - buildInputs = map mkStatic (o.buildInputs or []); - propagatedBuildInputs = map mkStatic (o.propagatedBuildInputs or []); - }); - in map mkStatic [ zlib bzip2 xz libgcrypt ]; + buildInputs = + let + mkStatic = flip overrideDerivation (o: { + dontDisableStatic = true; + configureFlags = toList (o.configureFlags or [ ]) ++ [ "--enable-static" ]; + buildInputs = map mkStatic (o.buildInputs or [ ]); + propagatedBuildInputs = map mkStatic (o.propagatedBuildInputs or [ ]); + }); + in + map mkStatic [ + zlib + bzip2 + xz + libgcrypt + ]; configureFlags = [ "--disable-shared" ]; diff --git a/pkgs/by-name/wi/windows/default.nix b/pkgs/by-name/wi/windows/default.nix index 7d152a6..5a79c0c 100644 --- a/pkgs/by-name/wi/windows/default.nix +++ b/pkgs/by-name/wi/windows/default.nix @@ -1,50 +1,50 @@ -{ lib, stdenv, buildPackages -, newScope, overrideCC, crossLibcStdenv, libcCross +{ + lib, + stdenv, + buildPackages, + newScope, + overrideCC, + crossLibcStdenv, + libcCross, }: -lib.makeScope newScope (self: with self; { +lib.makeScope newScope ( + self: with self; { - cygwinSetup = callPackage ./cygwin-setup { }; + cygwinSetup = callPackage ./cygwin-setup { }; - dlfcn = callPackage ./dlfcn { }; + dlfcn = callPackage ./dlfcn { }; - w32api = callPackage ./w32api { }; + w32api = callPackage ./w32api { }; - mingwrt = callPackage ./mingwrt { }; - mingw_runtime = mingwrt; + mingwrt = callPackage ./mingwrt { }; + mingw_runtime = mingwrt; - mingw_w64 = callPackage ./mingw-w64 { - stdenv = crossLibcStdenv; - }; + mingw_w64 = callPackage ./mingw-w64 { stdenv = crossLibcStdenv; }; - # FIXME untested with llvmPackages_16 was using llvmPackages_8 - crossThreadsStdenv = overrideCC crossLibcStdenv - (if stdenv.hostPlatform.useLLVM or false - then buildPackages.llvmPackages.clangNoLibcxx - else buildPackages.gccWithoutTargetLibc.override (old: { - bintools = old.bintools.override { - libc = libcCross; - }; - libc = libcCross; - })); + # FIXME untested with llvmPackages_16 was using llvmPackages_8 + crossThreadsStdenv = overrideCC crossLibcStdenv ( + if stdenv.hostPlatform.useLLVM or false then + buildPackages.llvmPackages.clangNoLibcxx + else + buildPackages.gccWithoutTargetLibc.override (old: { + bintools = old.bintools.override { libc = libcCross; }; + libc = libcCross; + }) + ); - mingw_w64_headers = callPackage ./mingw-w64/headers.nix { }; + mingw_w64_headers = callPackage ./mingw-w64/headers.nix { }; - mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { - stdenv = crossThreadsStdenv; - }; + mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { stdenv = crossThreadsStdenv; }; - mcfgthreads_pre_gcc_13 = callPackage ./mcfgthreads/pre_gcc_13.nix { - stdenv = crossThreadsStdenv; - }; + mcfgthreads_pre_gcc_13 = callPackage ./mcfgthreads/pre_gcc_13.nix { stdenv = crossThreadsStdenv; }; - mcfgthreads = callPackage ./mcfgthreads { - stdenv = crossThreadsStdenv; - }; + mcfgthreads = callPackage ./mcfgthreads { stdenv = crossThreadsStdenv; }; - npiperelay = callPackage ./npiperelay { }; + npiperelay = callPackage ./npiperelay { }; - pthreads = callPackage ./pthread-w32 { }; + pthreads = callPackage ./pthread-w32 { }; - libgnurx = callPackage ./libgnurx { }; -}) + libgnurx = callPackage ./libgnurx { }; + } +) diff --git a/pkgs/by-name/wi/windows/dlfcn/default.nix b/pkgs/by-name/wi/windows/dlfcn/default.nix index d1fba98..1f4ea20 100644 --- a/pkgs/by-name/wi/windows/dlfcn/default.nix +++ b/pkgs/by-name/wi/windows/dlfcn/default.nix @@ -1,4 +1,9 @@ -{ stdenv, lib, fetchFromGitHub, cmake }: +{ + stdenv, + lib, + fetchFromGitHub, + cmake, +}: stdenv.mkDerivation rec { pname = "dlfcn"; diff --git a/pkgs/by-name/wi/windows/libgnurx/default.nix b/pkgs/by-name/wi/windows/libgnurx/default.nix index e760bdd..f3bc160 100644 --- a/pkgs/by-name/wi/windows/libgnurx/default.nix +++ b/pkgs/by-name/wi/windows/libgnurx/default.nix @@ -1,8 +1,13 @@ -{ lib, stdenv, fetchurl }: +{ + lib, + stdenv, + fetchurl, +}: let version = "2.5.1"; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "libgnurx"; inherit version; src = fetchurl { diff --git a/pkgs/by-name/wi/windows/mcfgthreads/default.nix b/pkgs/by-name/wi/windows/mcfgthreads/default.nix index 5075107..e1902b2 100644 --- a/pkgs/by-name/wi/windows/mcfgthreads/default.nix +++ b/pkgs/by-name/wi/windows/mcfgthreads/default.nix @@ -1,7 +1,8 @@ -{ lib -, stdenv -, fetchFromGitHub -, autoreconfHook +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, }: stdenv.mkDerivation rec { @@ -15,12 +16,13 @@ stdenv.mkDerivation rec { hash = "sha256-FrmeaQhwLrNewS0HDlbWgCvVQ5U1l0jrw0YVuQdt9Ck="; }; - outputs = [ "out" "dev" ]; - - nativeBuildInputs = [ - autoreconfHook + outputs = [ + "out" + "dev" ]; + nativeBuildInputs = [ autoreconfHook ]; + meta = { description = "A threading support library for Windows 7 and above"; homepage = "https://github.com/lhmouse/mcfgthread/wiki"; diff --git a/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix b/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix index 6be6481..c18f5d3 100644 --- a/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix +++ b/pkgs/by-name/wi/windows/mcfgthreads/pre_gcc_13.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchFromGitHub, autoreconfHook }: +{ + stdenv, + fetchFromGitHub, + autoreconfHook, +}: stdenv.mkDerivation { pname = "mcfgthreads"; @@ -11,14 +15,15 @@ stdenv.mkDerivation { sha256 = "1ib90lrd4dz8irq4yvzwhxqa86i5vxl2q2z3z04sf1i8hw427p2f"; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; # Don't want prebuilt binaries sneaking in. postUnpack = '' rm -r "$sourceRoot/debug" "$sourceRoot/release" ''; - nativeBuildInputs = [ - autoreconfHook - ]; + nativeBuildInputs = [ autoreconfHook ]; } diff --git a/pkgs/by-name/wi/windows/mingw-w64/default.nix b/pkgs/by-name/wi/windows/mingw-w64/default.nix index 706186c..58f96df 100644 --- a/pkgs/by-name/wi/windows/mingw-w64/default.nix +++ b/pkgs/by-name/wi/windows/mingw-w64/default.nix @@ -1,13 +1,15 @@ -{ lib -, stdenv -, windows -, fetchurl -, autoreconfHook +{ + lib, + stdenv, + windows, + fetchurl, + autoreconfHook, }: let version = "11.0.1"; -in stdenv.mkDerivation { +in +stdenv.mkDerivation { pname = "mingw-w64"; inherit version; @@ -16,20 +18,24 @@ in stdenv.mkDerivation { hash = "sha256-P2a84Gnui+10OaGhPafLkaXmfqYXDyExesf1eUYl7hA="; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; configureFlags = [ "--enable-idl" "--enable-secure-api" - ] ++ lib.optionals (stdenv.targetPlatform.libc == "ucrt") [ - "--with-default-msvcrt=ucrt" - ]; + ] ++ lib.optionals (stdenv.targetPlatform.libc == "ucrt") [ "--with-default-msvcrt=ucrt" ]; enableParallelBuilding = true; nativeBuildInputs = [ autoreconfHook ]; buildInputs = [ windows.mingw_w64_headers ]; - hardeningDisable = [ "stackprotector" "fortify" ]; + hardeningDisable = [ + "stackprotector" + "fortify" + ]; meta = { platforms = lib.platforms.windows; diff --git a/pkgs/by-name/wi/windows/mingwrt/default.nix b/pkgs/by-name/wi/windows/mingwrt/default.nix index 5bf6951..7a116bc 100644 --- a/pkgs/by-name/wi/windows/mingwrt/default.nix +++ b/pkgs/by-name/wi/windows/mingwrt/default.nix @@ -1,4 +1,8 @@ -{ stdenv, lib, fetchurl }: +{ + stdenv, + lib, + fetchurl, +}: stdenv.mkDerivation rec { pname = "mingwrt"; @@ -14,5 +18,8 @@ stdenv.mkDerivation rec { }; dontStrip = true; - hardeningDisable = [ "stackprotector" "fortify" ]; + hardeningDisable = [ + "stackprotector" + "fortify" + ]; } diff --git a/pkgs/by-name/wi/windows/npiperelay/default.nix b/pkgs/by-name/wi/windows/npiperelay/default.nix index d2347ed..a0c22a8 100644 --- a/pkgs/by-name/wi/windows/npiperelay/default.nix +++ b/pkgs/by-name/wi/windows/npiperelay/default.nix @@ -1,4 +1,8 @@ -{ lib, buildGoModule, fetchFromGitHub }: +{ + lib, + buildGoModule, + fetchFromGitHub, +}: buildGoModule rec { pname = "npiperelay"; diff --git a/pkgs/by-name/wi/windows/pthread-w32/default.nix b/pkgs/by-name/wi/windows/pthread-w32/default.nix index da0fe56..d7a09f1 100644 --- a/pkgs/by-name/wi/windows/pthread-w32/default.nix +++ b/pkgs/by-name/wi/windows/pthread-w32/default.nix @@ -1,4 +1,8 @@ -{ lib, stdenv, fetchzip }: +{ + lib, + stdenv, + fetchzip, +}: stdenv.mkDerivation { pname = "pthreads-w32"; @@ -9,7 +13,10 @@ stdenv.mkDerivation { sha256 = "1s8iny7g06z289ahdj0kzaxj0cd3wvjbd8j3bh9xlg7g444lhy9w"; }; - makeFlags = [ "CROSS=${stdenv.cc.targetPrefix}" "GC-static" ]; + makeFlags = [ + "CROSS=${stdenv.cc.targetPrefix}" + "GC-static" + ]; installPhase = '' runHook preInstall diff --git a/pkgs/by-name/wi/windows/w32api/default.nix b/pkgs/by-name/wi/windows/w32api/default.nix index 99faeeb..e368338 100644 --- a/pkgs/by-name/wi/windows/w32api/default.nix +++ b/pkgs/by-name/wi/windows/w32api/default.nix @@ -1,4 +1,8 @@ -{ stdenv, fetchurl, lib }: +{ + stdenv, + fetchurl, + lib, +}: stdenv.mkDerivation rec { pname = "w32api"; diff --git a/pkgs/by-name/wo/wolfssl/default.nix b/pkgs/by-name/wo/wolfssl/default.nix index 76a0721..f3c111d 100644 --- a/pkgs/by-name/wo/wolfssl/default.nix +++ b/pkgs/by-name/wo/wolfssl/default.nix @@ -1,16 +1,17 @@ -{ lib -, stdenv -, fetchFromGitHub -, Security -, autoreconfHook -, util-linux -, openssl -, cacert -# The primary --enable-XXX variant. 'all' enables most features, but causes build-errors for some software, -# requiring to build a special variant for that software. Example: 'haproxy' -, variant ? "all" -, extraConfigureFlags ? [] -, enableLto ? !(stdenv.isDarwin || stdenv.hostPlatform.isStatic || stdenv.cc.isClang) +{ + lib, + stdenv, + fetchFromGitHub, + Security, + autoreconfHook, + util-linux, + openssl, + cacert, + # The primary --enable-XXX variant. 'all' enables most features, but causes build-errors for some software, + # requiring to build a special variant for that software. Example: 'haproxy' + variant ? "all", + extraConfigureFlags ? [ ], + enableLto ? !(stdenv.isDarwin || stdenv.hostPlatform.isStatic || stdenv.cc.isClang), }: stdenv.mkDerivation (finalAttrs: { pname = "wolfssl-${variant}"; @@ -32,33 +33,41 @@ stdenv.mkDerivation (finalAttrs: { --replace '"linux-gnu"' '"linux-"' ''; - configureFlags = [ - "--enable-${variant}" - "--enable-reproducible-build" - ] ++ lib.optionals (variant == "all") [ - # Extra feature flags to add while building the 'all' variant. - # Since they conflict while building other variants, only specify them for this one. - "--enable-pkcs11" - "--enable-writedup" - "--enable-base64encode" - ] ++ [ - # We're not on tiny embedded machines. - # Increase TLS session cache from 33 sessions to 20k. - "--enable-bigcache" + configureFlags = + [ + "--enable-${variant}" + "--enable-reproducible-build" + ] + ++ lib.optionals (variant == "all") [ + # Extra feature flags to add while building the 'all' variant. + # Since they conflict while building other variants, only specify them for this one. + "--enable-pkcs11" + "--enable-writedup" + "--enable-base64encode" + ] + ++ [ + # We're not on tiny embedded machines. + # Increase TLS session cache from 33 sessions to 20k. + "--enable-bigcache" - # Use WolfSSL's Single Precision Math with timing-resistant cryptography. - "--enable-sp=yes${lib.optionalString (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isAarch) ",asm"}" - "--enable-sp-math-all" - "--enable-harden" - ] ++ lib.optionals (stdenv.hostPlatform.isx86_64) [ - # Enable AVX/AVX2/AES-NI instructions, gated by runtime detection via CPUID. - "--enable-intelasm" - "--enable-aesni" - ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ - # No runtime detection under ARM and no platform function checks like for X86. - # However, all ARM macOS systems have the supported extensions autodetected in the configure script. - "--enable-armasm=inline" - ] ++ extraConfigureFlags; + # Use WolfSSL's Single Precision Math with timing-resistant cryptography. + "--enable-sp=yes${ + lib.optionalString (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isAarch) ",asm" + }" + "--enable-sp-math-all" + "--enable-harden" + ] + ++ lib.optionals (stdenv.hostPlatform.isx86_64) [ + # Enable AVX/AVX2/AES-NI instructions, gated by runtime detection via CPUID. + "--enable-intelasm" + "--enable-aesni" + ] + ++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ + # No runtime detection under ARM and no platform function checks like for X86. + # However, all ARM macOS systems have the supported extensions autodetected in the configure script. + "--enable-armasm=inline" + ] + ++ extraConfigureFlags; # LTO should help with the C implementations. env.NIX_CFLAGS_COMPILE = lib.optionalString enableLto "-flto"; @@ -71,9 +80,7 @@ stdenv.mkDerivation (finalAttrs: { "out" ]; - propagatedBuildInputs = lib.optionals stdenv.isDarwin [ - Security - ]; + propagatedBuildInputs = lib.optionals stdenv.isDarwin [ Security ]; nativeBuildInputs = [ autoreconfHook @@ -102,6 +109,9 @@ stdenv.mkDerivation (finalAttrs: { changelog = "https://github.com/wolfSSL/wolfssl/releases/tag/v${finalAttrs.version}-stable"; platforms = platforms.all; license = licenses.gpl2Plus; - maintainers = with maintainers; [ fab vifino ]; + maintainers = with maintainers; [ + fab + vifino + ]; }; }) diff --git a/pkgs/by-name/wo/wolfssl/packages.nix b/pkgs/by-name/wo/wolfssl/packages.nix index 389962f..33b5e90 100644 --- a/pkgs/by-name/wo/wolfssl/packages.nix +++ b/pkgs/by-name/wo/wolfssl/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { wolfssl = darwin.apple_sdk_11_0.callPackage ./. { inherit (darwin.apple_sdk_11_0.frameworks) Security; }; diff --git a/pkgs/by-name/xa/xar/default.nix b/pkgs/by-name/xa/xar/default.nix index 9c03c41..a015df4 100644 --- a/pkgs/by-name/xa/xar/default.nix +++ b/pkgs/by-name/xa/xar/default.nix @@ -1,16 +1,38 @@ -{ lib, stdenv, fetchurl, pkg-config, libxml2, xz, openssl, zlib, bzip2, fts, autoreconfHook }: +{ + lib, + stdenv, + fetchurl, + pkg-config, + libxml2, + xz, + openssl, + zlib, + bzip2, + fts, + autoreconfHook, +}: stdenv.mkDerivation rec { version = "1.6.1"; pname = "xar"; src = fetchurl { - url = "https://github.com/downloads/mackyle/xar/${pname}-${version}.tar.gz"; + url = "https://github.com/downloads/mackyle/xar/${pname}-${version}.tar.gz"; sha256 = "0ghmsbs6xwg1092v7pjcibmk5wkyifwxw6ygp08gfz25d2chhipf"; }; - nativeBuildInputs = [ autoreconfHook pkg-config ]; - buildInputs = [ libxml2 xz openssl zlib bzip2 fts ]; + nativeBuildInputs = [ + autoreconfHook + pkg-config + ]; + buildInputs = [ + libxml2 + xz + openssl + zlib + bzip2 + fts + ]; patches = [ ./0001-Add-useless-descriptions-to-AC_DEFINE.patch @@ -26,24 +48,24 @@ stdenv.mkDerivation rec { configureFlags = lib.optional (fts != null) "LDFLAGS=-lfts"; meta = { - homepage = "https://mackyle.github.io/xar/"; + homepage = "https://mackyle.github.io/xar/"; description = "Extensible Archiver"; - longDescription = - '' The XAR project aims to provide an easily extensible archive format. - Important design decisions include an easily extensible XML table of - contents for random access to archived files, storing the toc at the - beginning of the archive to allow for efficient handling of streamed - archives, the ability to handle files of arbitrarily large sizes, the - ability to choose independent encodings for individual files in the - archive, the ability to store checksums for individual files in both - compressed and uncompressed form, and the ability to query the table - of content's rich meta-data. - ''; + longDescription = '' + The XAR project aims to provide an easily extensible archive format. + Important design decisions include an easily extensible XML table of + contents for random access to archived files, storing the toc at the + beginning of the archive to allow for efficient handling of streamed + archives, the ability to handle files of arbitrarily large sizes, the + ability to choose independent encodings for individual files in the + archive, the ability to store checksums for individual files in both + compressed and uncompressed form, and the ability to query the table + of content's rich meta-data. + ''; - license = lib.licenses.bsd3; + license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ copumpkin ]; - platforms = lib.platforms.all; + platforms = lib.platforms.all; mainProgram = "xar"; }; } diff --git a/pkgs/by-name/xc/xcbuild/default.nix b/pkgs/by-name/xc/xcbuild/default.nix index 8dc527c..3c016b9 100644 --- a/pkgs/by-name/xc/xcbuild/default.nix +++ b/pkgs/by-name/xc/xcbuild/default.nix @@ -1,21 +1,33 @@ -{ lib, stdenv, cmake, fetchFromGitHub, zlib, libxml2, libpng -, CoreServices, CoreGraphics, ImageIO, ninja }: +{ + lib, + stdenv, + cmake, + fetchFromGitHub, + zlib, + libxml2, + libpng, + CoreServices, + CoreGraphics, + ImageIO, + ninja, +}: let googletest = fetchFromGitHub { - owner = "google"; - repo = "googletest"; - rev = "43359642a1c16ad3f4fc575c7edd0cb935810815"; + owner = "google"; + repo = "googletest"; + rev = "43359642a1c16ad3f4fc575c7edd0cb935810815"; sha256 = "0y4xaah62fjr3isaryc3vfz3mn9xflr00vchdimj8785milxga4q"; }; linenoise = fetchFromGitHub { - owner = "antirez"; - repo = "linenoise"; - rev = "c894b9e59f02203dbe4e2be657572cf88c4230c3"; + owner = "antirez"; + repo = "linenoise"; + rev = "c894b9e59f02203dbe4e2be657572cf88c4230c3"; sha256 = "0wasql7ph5g473zxhc2z47z3pjp42q0dsn4gpijwzbxawid71b4w"; }; -in stdenv.mkDerivation { +in +stdenv.mkDerivation { pname = "xcbuild"; # Once a version is released that includes @@ -24,9 +36,9 @@ in stdenv.mkDerivation { version = "0.1.2-pre"; src = fetchFromGitHub { - owner = "facebook"; - repo = "xcbuild"; - rev = "32b9fbeb69bfa2682bd0351ec2f14548aaedd554"; + owner = "facebook"; + repo = "xcbuild"; + rev = "32b9fbeb69bfa2682bd0351ec2f14548aaedd554"; sha256 = "1xxwg2849jizxv0g1hy0b1m3i7iivp9bmc4f5pi76swsn423d41m"; }; @@ -38,22 +50,24 @@ in stdenv.mkDerivation { cp -r --no-preserve=all ${linenoise} ThirdParty/linenoise ''; - postPatch = lib.optionalString (!stdenv.isDarwin) '' - # Fix build on gcc-13 due to missing includes - sed -e '1i #include ' -i \ - Libraries/libutil/Headers/libutil/Permissions.h \ - Libraries/pbxbuild/Headers/pbxbuild/Tool/AuxiliaryFile.h \ - Libraries/pbxbuild/Headers/pbxbuild/Tool/Invocation.h + postPatch = + lib.optionalString (!stdenv.isDarwin) '' + # Fix build on gcc-13 due to missing includes + sed -e '1i #include ' -i \ + Libraries/libutil/Headers/libutil/Permissions.h \ + Libraries/pbxbuild/Headers/pbxbuild/Tool/AuxiliaryFile.h \ + Libraries/pbxbuild/Headers/pbxbuild/Tool/Invocation.h - # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror. - sed 1i'#include ' \ - -i Libraries/xcassets/Headers/xcassets/Slot/SystemVersion.h - '' + lib.optionalString stdenv.isDarwin '' - # Apple Open Sourced LZFSE, but not libcompression, and it isn't - # part of an impure framework we can add - substituteInPlace Libraries/libcar/Sources/Rendition.cpp \ - --replace "#if HAVE_LIBCOMPRESSION" "#if 0" - ''; + # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror. + sed 1i'#include ' \ + -i Libraries/xcassets/Headers/xcassets/Slot/SystemVersion.h + '' + + lib.optionalString stdenv.isDarwin '' + # Apple Open Sourced LZFSE, but not libcompression, and it isn't + # part of an impure framework we can add + substituteInPlace Libraries/libcar/Sources/Rendition.cpp \ + --replace "#if HAVE_LIBCOMPRESSION" "#if 0" + ''; # TODO: instruct cmake not to put it in /usr, rather than cleaning up postInstall = '' @@ -66,15 +80,33 @@ in stdenv.mkDerivation { cmakeFlags = [ "-GNinja" ]; - nativeBuildInputs = [ cmake ninja ]; - buildInputs = [ zlib libxml2 libpng ] - ++ lib.optionals stdenv.isDarwin [ CoreServices CoreGraphics ImageIO ]; + nativeBuildInputs = [ + cmake + ninja + ]; + buildInputs = + [ + zlib + libxml2 + libpng + ] + ++ lib.optionals stdenv.isDarwin [ + CoreServices + CoreGraphics + ImageIO + ]; meta = with lib; { description = "Xcode-compatible build tool"; homepage = "https://github.com/facebook/xcbuild"; platforms = platforms.unix; - maintainers = with maintainers; [ copumpkin matthewbauer ]; - license = with licenses; [ bsd2 bsd3 ]; + maintainers = with maintainers; [ + copumpkin + matthewbauer + ]; + license = with licenses; [ + bsd2 + bsd3 + ]; }; } diff --git a/pkgs/by-name/xc/xcbuild/packages.nix b/pkgs/by-name/xc/xcbuild/packages.nix index 657ec4e..c3a7407 100644 --- a/pkgs/by-name/xc/xcbuild/packages.nix +++ b/pkgs/by-name/xc/xcbuild/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { xcodebuild = callPackage ./wrapper.nix { inherit (darwin.apple_sdk.frameworks) CoreServices CoreGraphics ImageIO; }; @@ -10,5 +9,5 @@ with pkgs; xcbuildHook = makeSetupHook { name = "xcbuild-hook"; propagatedBuildInputs = [ xcbuild ]; - } ./setup-hook.sh ; + } ./setup-hook.sh; } diff --git a/pkgs/by-name/xc/xcbuild/platforms.nix b/pkgs/by-name/xc/xcbuild/platforms.nix index 0108ac8..430166f 100644 --- a/pkgs/by-name/xc/xcbuild/platforms.nix +++ b/pkgs/by-name/xc/xcbuild/platforms.nix @@ -1,4 +1,11 @@ -{ stdenv, runCommand, lib, sdks, xcodePlatform, writeText }: +{ + stdenv, + runCommand, + lib, + sdks, + xcodePlatform, + writeText, +}: let @@ -24,14 +31,20 @@ let Identifier = "Standard"; Type = "Architecture"; Name = "Standard Architectures (Apple Silicon, 64-bit Intel)"; - RealArchitectures = [ "arm64" "x86_64" ]; + RealArchitectures = [ + "arm64" + "x86_64" + ]; ArchitectureSetting = "ARCHS_STANDARD"; } { Identifier = "Universal"; Type = "Architecture"; Name = "Universal (Apple Silicon, 64-bit Intel)"; - RealArchitectures = [ "arm64" "x86_64" ]; + RealArchitectures = [ + "arm64" + "x86_64" + ]; ArchitectureSetting = "ARCHS_STANDARD_32_64_BIT"; } { @@ -44,7 +57,10 @@ let Identifier = "Standard64bit"; Type = "Architecture"; Name = "Apple Silicon, 64-bit Intel"; - RealArchitectures = [ "arm64" "x86_64" ]; + RealArchitectures = [ + "arm64" + "x86_64" + ]; ArchitectureSetting = "ARCHS_STANDARD_64_BIT"; } { @@ -56,7 +72,10 @@ let Identifier = "Standard_Including_64_bit"; Type = "Architecture"; Name = "Standard Architectures (including 64-bit)"; - RealArchitectures = [ "arm64" "x86_64" ]; + RealArchitectures = [ + "arm64" + "x86_64" + ]; ArchitectureSetting = "ARCHS_STANDARD_INCLUDING_64_BIT"; } ]; @@ -285,14 +304,20 @@ let in -runCommand "Platforms" {} '' +runCommand "Platforms" { } '' platform=$out/${xcodePlatform}.platform - install -D ${writeText "Info.plist" (toPlist {} Info)} $platform/Info.plist - install -D ${writeText "version.plist" (toPlist {} Version)} $platform/version.plist - install -D ${writeText "Architectures.xcspec" (toPlist {} Architectures)} $platform/Developer/Library/Xcode/Specifications/Architectures.xcspec - install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec - install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec + install -D ${writeText "Info.plist" (toPlist { } Info)} $platform/Info.plist + install -D ${writeText "version.plist" (toPlist { } Version)} $platform/version.plist + install -D ${ + writeText "Architectures.xcspec" (toPlist { } Architectures) + } $platform/Developer/Library/Xcode/Specifications/Architectures.xcspec + install -D ${ + writeText "PackageTypes.xcspec" (toPlist { } PackageTypes) + } $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec + install -D ${ + writeText "ProductTypes.xcspec" (toPlist { } ProductTypes) + } $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec ln -s $platform $platform/usr diff --git a/pkgs/by-name/xc/xcbuild/sdks.nix b/pkgs/by-name/xc/xcbuild/sdks.nix index bf16bf1..7cc4f8f 100644 --- a/pkgs/by-name/xc/xcbuild/sdks.nix +++ b/pkgs/by-name/xc/xcbuild/sdks.nix @@ -1,5 +1,13 @@ -{ runCommand, lib, toolchainName, sdkName -, writeText, xcodePlatform, sdkVer, productBuildVer }: +{ + runCommand, + lib, + toolchainName, + sdkName, + writeText, + xcodePlatform, + sdkVer, + productBuildVer, +}: let inherit (lib.generators) toPlist toJSON; @@ -13,19 +21,21 @@ let isBaseSDK = "YES"; }; - SystemVersion = lib.optionalAttrs (productBuildVer != null) { - ProductBuildVersion = productBuildVer; - } // { - ProductName = "Mac OS X"; - ProductVersion = sdkVer; - }; + SystemVersion = + lib.optionalAttrs (productBuildVer != null) { ProductBuildVersion = productBuildVer; } + // { + ProductName = "Mac OS X"; + ProductVersion = sdkVer; + }; in -runCommand "SDKs" {} '' +runCommand "SDKs" { } '' sdk=$out/${sdkName}.sdk - install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist - install -D ${writeText "SDKSettings.json" (toJSON {} SDKSettings)} $sdk/SDKSettings.json - install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist + install -D ${writeText "SDKSettings.plist" (toPlist { } SDKSettings)} $sdk/SDKSettings.plist + install -D ${writeText "SDKSettings.json" (toJSON { } SDKSettings)} $sdk/SDKSettings.json + install -D ${ + writeText "SystemVersion.plist" (toPlist { } SystemVersion) + } $sdk/System/Library/CoreServices/SystemVersion.plist ln -s $sdk $sdk/usr ln -s $sdk $out/${xcodePlatform}.sdk diff --git a/pkgs/by-name/xc/xcbuild/toolchains.nix b/pkgs/by-name/xc/xcbuild/toolchains.nix index e0abf90..7cf61d2 100644 --- a/pkgs/by-name/xc/xcbuild/toolchains.nix +++ b/pkgs/by-name/xc/xcbuild/toolchains.nix @@ -1,5 +1,12 @@ -{ runCommand, toolchainName, fetchurl, stdenv -, buildPackages, lib, writeText }: +{ + runCommand, + toolchainName, + fetchurl, + stdenv, + buildPackages, + lib, + writeText, +}: let @@ -14,60 +21,65 @@ let # loop if we want to bootstrap and this is just a tiny script so I'm # not going to bother. mkdep-darwin-src = fetchurl { - url = "https://opensource.apple.com/source/developer_cmds/developer_cmds-63/mkdep/mkdep.sh"; - sha256 = "0n4wpqfslfjs5zbys5yri8pfi2awyhlmknsf6laa5jzqbzq9x541"; + url = "https://opensource.apple.com/source/developer_cmds/developer_cmds-63/mkdep/mkdep.sh"; + sha256 = "0n4wpqfslfjs5zbys5yri8pfi2awyhlmknsf6laa5jzqbzq9x541"; executable = true; }; in -runCommand "Toolchains" {} ('' - toolchain=$out/XcodeDefault.xctoolchain - mkdir -p $toolchain +runCommand "Toolchains" { } ( + '' + toolchain=$out/XcodeDefault.xctoolchain + mkdir -p $toolchain - install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist + install -D ${ + writeText "ToolchainInfo.plist" (toPlist { } ToolchainInfo) + } $toolchain/ToolchainInfo.plist - ln -s $toolchain $toolchain/usr + ln -s $toolchain $toolchain/usr - mkdir -p $toolchain/include - mkdir -p $toolchain/lib - mkdir -p $toolchain/libexec - mkdir -p $toolchain/share - mkdir -p $toolchain/bin + mkdir -p $toolchain/include + mkdir -p $toolchain/lib + mkdir -p $toolchain/libexec + mkdir -p $toolchain/share + mkdir -p $toolchain/bin - for bin in ${getBin stdenv.cc}/bin/*; do - ln -s $bin $toolchain/bin - done - - for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do - if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then + for bin in ${getBin stdenv.cc}/bin/*; do ln -s $bin $toolchain/bin - fi - done + done - ln -s ${buildPackages.bison}/bin/yacc $toolchain/bin/yacc - ln -s ${buildPackages.bison}/bin/bison $toolchain/bin/bison - ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex - ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++ - ln -s $toolchain/bin/flex $toolchain/bin/lex + for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do + if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then + ln -s $bin $toolchain/bin + fi + done - ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4 - ln -s $toolchain/bin/m4 $toolchain/bin/gm4 + ln -s ${buildPackages.bison}/bin/yacc $toolchain/bin/yacc + ln -s ${buildPackages.bison}/bin/bison $toolchain/bin/bison + ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex + ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++ + ln -s $toolchain/bin/flex $toolchain/bin/lex - ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef - ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall + ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4 + ln -s $toolchain/bin/m4 $toolchain/bin/gm4 - ln -s ${buildPackages.gperf}/bin/gperf $toolchain/bin/gperf - ln -s ${buildPackages.indent}/bin/indent $toolchain/bin/indent - ln -s ${buildPackages.ctags}/bin/ctags $toolchain/bin/ctags -'' + optionalString stdenv.isDarwin '' - for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do - if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then - ln -s $bin $toolchain/bin - fi - done + ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef + ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall - ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/bin - mkdir -p $toolchain/libexec - ln -s ${buildPackages.darwin.bootstrap_cmds}/libexec/migcom $toolchain/libexec - ln -s ${mkdep-darwin-src} $toolchain/bin/mkdep -'') + ln -s ${buildPackages.gperf}/bin/gperf $toolchain/bin/gperf + ln -s ${buildPackages.indent}/bin/indent $toolchain/bin/indent + ln -s ${buildPackages.ctags}/bin/ctags $toolchain/bin/ctags + '' + + optionalString stdenv.isDarwin '' + for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do + if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then + ln -s $bin $toolchain/bin + fi + done + + ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/bin + mkdir -p $toolchain/libexec + ln -s ${buildPackages.darwin.bootstrap_cmds}/libexec/migcom $toolchain/libexec + ln -s ${mkdep-darwin-src} $toolchain/bin/mkdep + '' +) diff --git a/pkgs/by-name/xc/xcbuild/wrapper.nix b/pkgs/by-name/xc/xcbuild/wrapper.nix index 9c8c846..e533eda 100644 --- a/pkgs/by-name/xc/xcbuild/wrapper.nix +++ b/pkgs/by-name/xc/xcbuild/wrapper.nix @@ -1,9 +1,18 @@ -{ lib, stdenv, makeWrapper, writeText, writeTextFile, runCommand, callPackage -, CoreServices, ImageIO, CoreGraphics -, xcodePlatform ? stdenv.targetPlatform.xcodePlatform or "MacOSX" -, xcodeVer ? stdenv.targetPlatform.xcodeVer or "9.4.1" -, sdkVer ? stdenv.targetPlatform.darwinSdkVersion or "10.12" -, productBuildVer ? null +{ + lib, + stdenv, + makeWrapper, + writeText, + writeTextFile, + runCommand, + callPackage, + CoreServices, + ImageIO, + CoreGraphics, + xcodePlatform ? stdenv.targetPlatform.xcodePlatform or "MacOSX", + xcodeVer ? stdenv.targetPlatform.xcodeVer or "9.4.1", + sdkVer ? stdenv.targetPlatform.darwinSdkVersion or "10.12", + productBuildVer ? null, }: let @@ -17,38 +26,45 @@ let xcodeSelectVersion = "2349"; xcbuild = callPackage ./default.nix { - inherit CoreServices ImageIO CoreGraphics stdenv; + inherit + CoreServices + ImageIO + CoreGraphics + stdenv + ; }; - toolchains = callPackage ./toolchains.nix { - inherit toolchainName stdenv; - }; + toolchains = callPackage ./toolchains.nix { inherit toolchainName stdenv; }; sdks = callPackage ./sdks.nix { - inherit toolchainName sdkName xcodePlatform sdkVer productBuildVer; + inherit + toolchainName + sdkName + xcodePlatform + sdkVer + productBuildVer + ; }; - platforms = callPackage ./platforms.nix { - inherit sdks xcodePlatform stdenv; - }; + platforms = callPackage ./platforms.nix { inherit sdks xcodePlatform stdenv; }; xcconfig = writeText "nix.xcconfig" '' SDKROOT=${sdkName} ''; xcode-select = writeText "xcode-select" '' -#!${stdenv.shell} -while [ $# -gt 0 ]; do - case "$1" in - -h | --help) ;; # noop - -s | --switch) shift;; # noop - -r | --reset) ;; # noop - -v | --version) echo xcode-select version ${xcodeSelectVersion} ;; - -p | -print-path | --print-path) echo @DEVELOPER_DIR@ ;; - --install) ;; # noop - esac - shift -done + #!${stdenv.shell} + while [ $# -gt 0 ]; do + case "$1" in + -h | --help) ;; # noop + -s | --switch) shift;; # noop + -r | --reset) ;; # noop + -v | --version) echo xcode-select version ${xcodeSelectVersion} ;; + -p | -print-path | --print-path) echo @DEVELOPER_DIR@ ;; + --install) ;; # noop + esac + shift + done ''; xcrun = writeTextFile { @@ -56,49 +72,49 @@ done executable = true; destination = "/bin/xcrun"; text = '' -#!${stdenv.shell} -args=( "$@" ) + #!${stdenv.shell} + args=( "$@" ) -# If an SDK was requested, check that it matches. -for ((i = 0; i < ''${#args[@]}; i++)); do - case "''${args[i]}" in - --sdk | -sdk) - i=$((i + 1)) - if [[ "''${args[i]}" != '${xcrunSdkName}' ]]; then - echo >&2 "xcodebuild: error: SDK \"''${args[i]}\" cannot be located." - exit 1 + # If an SDK was requested, check that it matches. + for ((i = 0; i < ''${#args[@]}; i++)); do + case "''${args[i]}" in + --sdk | -sdk) + i=$((i + 1)) + if [[ "''${args[i]}" != '${xcrunSdkName}' ]]; then + echo >&2 "xcodebuild: error: SDK \"''${args[i]}\" cannot be located." + exit 1 + fi + ;; + esac + done + + while [ $# -gt 0 ]; do + case "$1" in + --sdk | -sdk) shift ;; + --toolchain | -toolchain) shift ;; + --find | -find | -f) + shift + command -v $1 || exit 1 ;; + --log | -log) ;; # noop + --verbose | -verbose) ;; # noop + --no-cache | -no-cache) ;; # noop + --kill-cache | -kill-cache) ;; # noop + --show-sdk-path | -show-sdk-path) + echo ${sdks}/${sdkName}.sdk ;; + --show-sdk-platform-path | -show-sdk-platform-path) + echo ${platforms}/${xcodePlatform}.platform ;; + --show-sdk-version | -show-sdk-version) + echo ${sdkVer} ;; + --show-sdk-build-version | -show-sdk-build-version) + echo ${sdkBuildVersion} ;; + *) break ;; + esac + shift + done + + if ! [[ -z "$@" ]]; then + exec "$@" fi - ;; - esac -done - -while [ $# -gt 0 ]; do - case "$1" in - --sdk | -sdk) shift ;; - --toolchain | -toolchain) shift ;; - --find | -find | -f) - shift - command -v $1 || exit 1 ;; - --log | -log) ;; # noop - --verbose | -verbose) ;; # noop - --no-cache | -no-cache) ;; # noop - --kill-cache | -kill-cache) ;; # noop - --show-sdk-path | -show-sdk-path) - echo ${sdks}/${sdkName}.sdk ;; - --show-sdk-platform-path | -show-sdk-platform-path) - echo ${platforms}/${xcodePlatform}.platform ;; - --show-sdk-version | -show-sdk-version) - echo ${sdkVer} ;; - --show-sdk-build-version | -show-sdk-build-version) - echo ${sdkBuildVersion} ;; - *) break ;; - esac - shift -done - -if ! [[ -z "$@" ]]; then - exec "$@" -fi ''; checkPhase = '' ${stdenv.shellDryRun} "$target" @@ -107,61 +123,63 @@ fi in -runCommand "xcodebuild-${xcbuild.version}" { - nativeBuildInputs = [ makeWrapper ]; - inherit (xcbuild) meta; +runCommand "xcodebuild-${xcbuild.version}" + { + nativeBuildInputs = [ makeWrapper ]; + inherit (xcbuild) meta; - # ensure that the toolchain goes in PATH - propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain" ]; + # ensure that the toolchain goes in PATH + propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain" ]; - passthru = { - inherit xcbuild xcrun; - toolchain = "${toolchains}/XcodeDefault.xctoolchain"; - sdk = "${sdks}/${sdkName}"; - platform = "${platforms}/${xcodePlatform}.platform"; - }; + passthru = { + inherit xcbuild xcrun; + toolchain = "${toolchains}/XcodeDefault.xctoolchain"; + sdk = "${sdks}/${sdkName}"; + platform = "${platforms}/${xcodePlatform}.platform"; + }; - preferLocalBuild = true; -} '' - mkdir -p $out/bin + preferLocalBuild = true; + } + '' + mkdir -p $out/bin - ln -s $out $out/usr + ln -s $out $out/usr - mkdir -p $out/Library/Xcode - ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications + mkdir -p $out/Library/Xcode + ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications - ln -s ${platforms} $out/Platforms - ln -s ${toolchains} $out/Toolchains + ln -s ${platforms} $out/Platforms + ln -s ${toolchains} $out/Toolchains - mkdir -p $out/Applications/Xcode.app/Contents - ln -s $out $out/Applications/Xcode.app/Contents/Developer + mkdir -p $out/Applications/Xcode.app/Contents + ln -s $out $out/Applications/Xcode.app/Contents/Developer - # The native xcodebuild command supports an invocation like "xcodebuild -version -sdk" without specifying the specific SDK, so we simulate this by - # detecting this case and simulating the output; printing the header and appending the normal output via appending the sdk version to the positional - # arguments we pass through to the wrapped xcodebuild. - makeWrapper ${xcbuild}/bin/xcodebuild $out/bin/xcodebuild \ - --add-flags "-xcconfig ${xcconfig}" \ - --add-flags "DERIVED_DATA_DIR=." \ - --set DEVELOPER_DIR "$out" \ - --set SDKROOT ${sdkName} \ - --run '[ "$#" -eq 2 ] && [ "$1" = "-version" ] && [ "$2" = "-sdk" ] && echo ${sdkName}.sdk - macOS ${sdkVer} \(macosx${sdkVer}\) && set -- "$@" "${sdkName}"' \ - --run '[ "$1" = "-version" ] && [ "$#" -eq 1 ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0' \ - --run '[ "$1" = "-license" ] && exit 0' + # The native xcodebuild command supports an invocation like "xcodebuild -version -sdk" without specifying the specific SDK, so we simulate this by + # detecting this case and simulating the output; printing the header and appending the normal output via appending the sdk version to the positional + # arguments we pass through to the wrapped xcodebuild. + makeWrapper ${xcbuild}/bin/xcodebuild $out/bin/xcodebuild \ + --add-flags "-xcconfig ${xcconfig}" \ + --add-flags "DERIVED_DATA_DIR=." \ + --set DEVELOPER_DIR "$out" \ + --set SDKROOT ${sdkName} \ + --run '[ "$#" -eq 2 ] && [ "$1" = "-version" ] && [ "$2" = "-sdk" ] && echo ${sdkName}.sdk - macOS ${sdkVer} \(macosx${sdkVer}\) && set -- "$@" "${sdkName}"' \ + --run '[ "$1" = "-version" ] && [ "$#" -eq 1 ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0' \ + --run '[ "$1" = "-license" ] && exit 0' - substitute ${xcode-select} $out/bin/xcode-select \ - --subst-var-by DEVELOPER_DIR $out/Applications/Xcode.app/Contents/Developer - chmod +x $out/bin/xcode-select + substitute ${xcode-select} $out/bin/xcode-select \ + --subst-var-by DEVELOPER_DIR $out/Applications/Xcode.app/Contents/Developer + chmod +x $out/bin/xcode-select - cp ${xcrun}/bin/xcrun $out/bin/xcrun + cp ${xcrun}/bin/xcrun $out/bin/xcrun - for bin in PlistBuddy actool builtin-copy builtin-copyPlist \ - builtin-copyStrings builtin-copyTiff \ - builtin-embeddedBinaryValidationUtility \ - builtin-infoPlistUtility builtin-lsRegisterURL \ - builtin-productPackagingUtility builtin-validationUtility \ - lsbom plutil; do - ln -s ${xcbuild}/bin/$bin $out/bin/$bin - done + for bin in PlistBuddy actool builtin-copy builtin-copyPlist \ + builtin-copyStrings builtin-copyTiff \ + builtin-embeddedBinaryValidationUtility \ + builtin-infoPlistUtility builtin-lsRegisterURL \ + builtin-productPackagingUtility builtin-validationUtility \ + lsbom plutil; do + ln -s ${xcbuild}/bin/$bin $out/bin/$bin + done - fixupPhase -'' + fixupPhase + '' diff --git a/pkgs/by-name/xm/xmlto/default.nix b/pkgs/by-name/xm/xmlto/default.nix index 09597be..96bf659 100644 --- a/pkgs/by-name/xm/xmlto/default.nix +++ b/pkgs/by-name/xm/xmlto/default.nix @@ -1,6 +1,18 @@ -{ fetchurl, fetchpatch, lib, stdenv, libxml2, libxslt -, docbook_xml_dtd_45, docbook_xsl, flex, w3m -, bash, getopt, makeWrapper }: +{ + fetchurl, + fetchpatch, + lib, + stdenv, + libxml2, + libxslt, + docbook_xml_dtd_45, + docbook_xsl, + flex, + w3m, + bash, + getopt, + makeWrapper, +}: stdenv.mkDerivation rec { pname = "xmlto"; @@ -37,13 +49,29 @@ stdenv.mkDerivation rec { # `libxml2' provides `xmllint', needed at build-time and run-time. # `libxslt' provides `xsltproc', used by `xmlto' at run-time. - nativeBuildInputs = [ makeWrapper flex getopt ]; - buildInputs = [ libxml2 libxslt docbook_xml_dtd_45 docbook_xsl ]; + nativeBuildInputs = [ + makeWrapper + flex + getopt + ]; + buildInputs = [ + libxml2 + libxslt + docbook_xml_dtd_45 + docbook_xsl + ]; postInstall = '' # `w3m' is needed for HTML to text conversions. wrapProgram "$out/bin/xmlto" \ - --prefix PATH : "${lib.makeBinPath [ libxslt libxml2 getopt w3m ]}" + --prefix PATH : "${ + lib.makeBinPath [ + libxslt + libxml2 + getopt + w3m + ] + }" ''; meta = { diff --git a/pkgs/by-name/xm/xmlto/packages.nix b/pkgs/by-name/xm/xmlto/packages.nix index 721c12c..3bb8bee 100644 --- a/pkgs/by-name/xm/xmlto/packages.nix +++ b/pkgs/by-name/xm/xmlto/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - xmlto = callPackage ./. { - w3m = w3m-batch; - }; +with pkgs; { + xmlto = callPackage ./. { w3m = w3m-batch; }; } diff --git a/pkgs/by-name/xo/xorg/default.nix b/pkgs/by-name/xo/xorg/default.nix index a76a05f..7fb0b75 100644 --- a/pkgs/by-name/xo/xorg/default.nix +++ b/pkgs/by-name/xo/xorg/default.nix @@ -6,4493 +6,8754 @@ self: with self; { inherit pixman; # THIS IS A GENERATED FILE. DO NOT EDIT! - appres = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "appres"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/appres-1.0.6.tar.xz"; - sha256 = "02sr4f1bm3y1w24gsvjfzvbpac1kgkq27v1s68q87bd1l3i5f8lb"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - bdftopcf = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "bdftopcf"; - version = "1.1.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/bdftopcf-1.1.1.tar.xz"; - sha256 = "026rzs92h9jsc7r0kvvyvwhm22q0805gp38rs14x6ghg7kam7j8i"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - bitmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, xbitmaps, libXmu, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "bitmap"; - version = "1.1.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/bitmap-1.1.1.tar.xz"; - sha256 = "1ri66kxa9m6s3xw25mz85k34qhjyksa4kbs4jfrri0g47yv2xm33"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw xbitmaps libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - editres = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "editres"; - version = "1.0.8"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/editres-1.0.8.tar.xz"; - sha256 = "1ydn32x9qh2zkn90w6nfv33gcq75z67w93bakkykadl8n7zmvkw3"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - encodings = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "encodings"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/encodings-1.0.7.tar.xz"; - sha256 = "193hxaygxy2msmf8cyps8jdi0kxga84hj47qv7diqlhn7gsajf9s"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontadobe100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-adobe-100dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-adobe-100dpi-1.0.4.tar.xz"; - sha256 = "1kwwbaiqnfm3pcysy9gw0g9xhpgmhjcd6clp7zajhqq5br2gyymn"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontadobe75dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-adobe-75dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-adobe-75dpi-1.0.4.tar.xz"; - sha256 = "04drk4wi176524lxjwfrnkr3dwz1hysabqfajpj6klfypqnsd08j"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontadobeutopia100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-adobe-utopia-100dpi"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.5.tar.xz"; - sha256 = "0jq27gs5xpwkghggply5pr215lmamrnpr6x5iia76schg8lyr17v"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontadobeutopia75dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-adobe-utopia-75dpi"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.5.tar.xz"; - sha256 = "0q3pg4imdbwwiq2g8a1rypjrgmb33n0r5j9qqnh4ywnh69cj89m7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontadobeutopiatype1 = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-adobe-utopia-type1"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.5.tar.xz"; - sha256 = "15snyyy3rk75fikz1hs80nybxai1aynybl0gw32hffv98yy81cjc"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontalias = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-alias"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-alias-1.0.5.tar.xz"; - sha256 = "0vkb5mybc0fjfq29lgf5w1b536bwifzkyj8ad9iy7q3kpcby52cz"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontarabicmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-arabic-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-arabic-misc-1.0.4.tar.xz"; - sha256 = "0rrlcqbyx9y7hnhbkjir8rs6jkfqyalj1zvhr8niv2n7a8dydzs6"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbh100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-100dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-100dpi-1.0.4.tar.xz"; - sha256 = "07mb9781c9yxzp3ifw317v4fbnmg9qyqv0244zfspylihkz5x3zx"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbh75dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-75dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-75dpi-1.0.4.tar.xz"; - sha256 = "1nkwkqdl946xc4xknhi1pnxdww6rxrv013c7nk5x6ganfg0dh9k0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbhlucidatypewriter100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-lucidatypewriter-100dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.4.tar.xz"; - sha256 = "1wp87pijbydkpcmawsyas7vwhad2xg1mkkwigga2jjh9lknhkv3n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbhlucidatypewriter75dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-lucidatypewriter-75dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.4.tar.xz"; - sha256 = "1xg86mb9qigf5v0wx0q2shn8qaabsapamj627xllzw31mhwjqkl6"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbhttf = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-ttf"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-ttf-1.0.4.tar.xz"; - sha256 = "0misxkpjc2bir20m01z355sfk3lbpjnshphjzl32p364006zk9c5"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbhtype1 = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bh-type1"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bh-type1-1.0.4.tar.xz"; - sha256 = "19kjdm0cx766yj9vwkyv7gyg1q4bjag5g500s7nnppmb0vnc7phr"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbitstream100dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bitstream-100dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bitstream-100dpi-1.0.4.tar.xz"; - sha256 = "19y1j1v65890x8yn6a47jqljfax3ihfrd25xbzgypxz4xy1cc71d"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbitstream75dpi = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bitstream-75dpi"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bitstream-75dpi-1.0.4.tar.xz"; - sha256 = "09pq7dvyyxj6kvps1dm3qr15pjwh9iq9118fryqc5a94fkc39sxa"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbitstreamspeedo = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bitstream-speedo"; - version = "1.0.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bitstream-speedo-1.0.2.tar.gz"; - sha256 = "0wmy58cd3k7w2j4v20icnfs8z3b61qj3vqdx958z18w00h9mzsmf"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontbitstreamtype1 = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-bitstream-type1"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-bitstream-type1-1.0.4.tar.xz"; - sha256 = "0a669193ivi2lxk3v692kq1pqavaswlpi9hbi8ib8bfp9j5j6byy"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontcronyxcyrillic = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-cronyx-cyrillic"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-cronyx-cyrillic-1.0.4.tar.xz"; - sha256 = "12dpsvif85z1m6jvq9g91lmzj0rll5rh3871mbvdpzyb1p7821yw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontcursormisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-cursor-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-cursor-misc-1.0.4.tar.xz"; - sha256 = "10prshcmmm5ccczyq7yaadz92k23ls9rjl10hjh8rjqka1cwkn95"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontdaewoomisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-daewoo-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-daewoo-misc-1.0.4.tar.xz"; - sha256 = "0cagg963v94paq1l9l7g5kyv7df8q31b4zcbhv5rh07kr0yqng7n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontdecmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-dec-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-dec-misc-1.0.4.tar.xz"; - sha256 = "1xqs2qg21h5xg519810hw4bvykjdpf0xgk0xwp0bxy4g3lh6inc2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontibmtype1 = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-ibm-type1"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-ibm-type1-1.0.4.tar.xz"; - sha256 = "0zyfc0mxkzlrbpdn16rj25abf2hcqb592zkks550rm26paamwff4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontisasmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-isas-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-isas-misc-1.0.4.tar.xz"; - sha256 = "1z1qqi64hbp297f6ryiswa4ikfn7mcwnb8nadyglni6swsxrbra7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontjismisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-jis-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-jis-misc-1.0.4.tar.xz"; - sha256 = "1l7spyq93rhydsdnsh46alcfbn2irz664vd209lamxviqkvfzlbq"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmicromisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-micro-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-micro-misc-1.0.4.tar.xz"; - sha256 = "0hzryqyml0bzzw91vqdmzdlb7dm18jmyz0mxy6plks3sppbbkq1f"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmisccyrillic = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-cyrillic"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-cyrillic-1.0.4.tar.xz"; - sha256 = "14z9x174fidjn65clkd2y1l6pxspmvphizap9a8h2h06adzil0kn"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmiscethiopic = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-ethiopic"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-ethiopic-1.0.5.tar.xz"; - sha256 = "04mnd620s9wkdid9wnf181yh5vf0n7l096nc3z4zdvm1w7kafja7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmiscmeltho = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-meltho"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-meltho-1.0.4.tar.xz"; - sha256 = "06ajsqjd20zsk9a44bl5i1mv1r9snil6l2947hk8z2bqf30mxgk3"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmiscmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-misc-misc"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-misc-misc-1.1.3.tar.xz"; - sha256 = "1vcgc6lbc53fqaz8alhxcb6f231hhvj9hn2nkzg1mclbymhy7avr"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontmuttmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-mutt-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-mutt-misc-1.0.4.tar.xz"; - sha256 = "095vd33kqd157j6xi4sjxwdsjpwpgqliifa8nkybq8rcw7s5j8xi"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontschumachermisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-schumacher-misc"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-schumacher-misc-1.1.3.tar.xz"; - sha256 = "0w40lr214n39al449fnm4k1bpyj3fjrhz2yxqd6a6m8yvc69z14b"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontscreencyrillic = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-screen-cyrillic"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-screen-cyrillic-1.0.5.tar.xz"; - sha256 = "1h75zn1rp7bdv6av4cnrajpaq6fkd7dx1lc7aijpw32qrnw8nxcg"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontsonymisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-sony-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-sony-misc-1.0.4.tar.xz"; - sha256 = "0swlhjmmagrfkip4i9yq7cr56hains1j41mjs05nxc6c7y19zc76"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontsunmisc = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-sun-misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-sun-misc-1.0.4.tar.xz"; - sha256 = "17yvhk1hlajm3q57r09q8830zz7cnckrg8hgzajgyyljdl8xv16x"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fonttosfnt = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, freetype, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "fonttosfnt"; - version = "1.2.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/fonttosfnt-1.2.3.tar.xz"; - sha256 = "1bv1glfz4jqvkwx8hmv2vqilvxxl6jww3rvbzv6zbl6b83r96yma"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libfontenc freetype xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontutil = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-util"; - version = "1.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-util-1.4.1.tar.xz"; - sha256 = "15fcd3rzlgm51fwgfapg6vzyd1kkd28rj149xq7iajqr7h9697sw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "fontutil" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontwinitzkicyrillic = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, bdftopcf, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-winitzki-cyrillic"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.4.tar.xz"; - sha256 = "1a4pz8f7hz6nn9xirz2k1j81ykl3lwrpi1ydmzipciy15l984v9v"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - fontxfree86type1 = callPackage ({ stdenv, pkg-config, fetchurl, fontutil, mkfontscale, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "font-xfree86-type1"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/font/font-xfree86-type1-1.0.5.tar.xz"; - sha256 = "0ds8xbgxy9h0bqn2p38vylfzn8cqkp7n51kwmw1c18ayi9w2qg59"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config mkfontscale ]; - buildInputs = [ fontutil ]; - configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; - postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - gccmakedep = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "gccmakedep"; - version = "1.0.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2"; - sha256 = "1r1fpy5ni8chbgx7j5sz0008fpb6vbazpy1nifgdhgijyzqxqxdj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - iceauth = callPackage ({ stdenv, pkg-config, fetchurl, libICE, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "iceauth"; - version = "1.0.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/iceauth-1.0.9.tar.xz"; - sha256 = "01cc816fvdkkfcnqnyvgcshcip2jzjivwa8hzdvsz0snak5xzf9c"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libICE xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - ico = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "ico"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/ico-1.0.6.tar.xz"; - sha256 = "01a4kykayckxzi4jzggaz3wh9qjcr6f4iykhvq7jhlz767a6kwrq"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - imake = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "imake"; - version = "1.0.10"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/imake-1.0.10.tar.xz"; - sha256 = "1xgcsamfij22ggc4p8anvvihwyf4adg6gjdd6v7m9cypm37cppkm"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libAppleWM = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libAppleWM"; - version = "1.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2"; - sha256 = "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "applewm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libFS = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xtrans, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libFS"; - version = "1.0.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libFS-1.0.9.tar.xz"; - sha256 = "12i0zh1v5zlba617nam8sjhfqi68qqnl7z5hsz3wqhijid1pjwsr"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xtrans ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "libfs" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libICE = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xtrans, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libICE"; - version = "1.1.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libICE-1.1.1.tar.xz"; - sha256 = "0lg4sddalwmmzsnxv3fgdm2hzqp66j8b3syc0ancfhi9yzx7mrq3"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xtrans ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "ice" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libSM = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libuuid, xorgproto, xtrans, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libSM"; - version = "1.2.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libSM-1.2.4.tar.xz"; - sha256 = "113vx53k6pyxf84v5kqb7qhcldx1fi78lym77lcb2xhj9lgfbjzx"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libICE libuuid xorgproto xtrans ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "sm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libWindowsWM = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libWindowsWM"; - version = "1.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2"; - sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "windowswm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libX11 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpthreadstubs, libxcb, xtrans, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libX11"; - version = "1.8.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libX11-1.8.7.tar.xz"; - sha256 = "1vlrgrdibp4lr84wgmsdy1ihzaai8bvvqc68npi1m19wir36gwh5"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpthreadstubs libxcb xtrans ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "x11" "x11-xcb" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXScrnSaver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXScrnSaver"; - version = "1.2.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXScrnSaver-1.2.4.tar.xz"; - sha256 = "1zi0r6mqa1g0hhsp02cdsjcxmsbipiv0v65c1h4pl84fydcjikbm"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xscrnsaver" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXTrap = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXTrap"; - version = "1.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2"; - sha256 = "0bi5wxj6avim61yidh9fd3j4n8czxias5m8vss9vhxjnk1aksdwg"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xtrap" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXau = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXau"; - version = "1.0.11"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXau-1.0.11.tar.xz"; - sha256 = "1sxv56rql3vsb14za0hgr07mipgvvcw48910srmky32pyn135ypk"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xau" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXaw = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXmu, libXpm, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXaw"; - version = "1.0.15"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXaw-1.0.15.tar.xz"; - sha256 = "0jkm2ards3nj08y7185k9jvjhhx78r46abrl3g3jrc4zvq7zfddb"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto libXmu libXpm libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xaw6" "xaw7" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXcomposite = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXcomposite"; - version = "0.4.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXcomposite-0.4.6.tar.xz"; - sha256 = "11rcvk380l5540gfqy9p8mbzw3l1p5g8l214p870f28smvqbqh7y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXfixes ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcomposite" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXcursor = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXcursor"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXcursor-1.2.2.tar.xz"; - sha256 = "1vl87819mnhlbnccchysv9nmax4abil5x3cr61x52vn55jyp3l2k"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXfixes libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcursor" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXdamage = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXdamage"; - version = "1.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXdamage-1.1.6.tar.xz"; - sha256 = "04axzdx75w0wcb4na7lfpa0ai0fddw60dmg7cigs7z32a8gkqwsj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXfixes ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xdamage" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXdmcp = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXdmcp"; - version = "1.1.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXdmcp-1.1.4.tar.xz"; - sha256 = "005dsry6nfqrv32i7gbqn7mxnb2m3pc8fz9lxj2b9w7q2z1mrkid"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xdmcp" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXext = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXext"; - version = "1.3.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXext-1.3.6.tar.xz"; - sha256 = "0lwpx0b7lid47pff6dagp5h63bi0b3gsy05lqpyhbr4l76i9zdgd"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xext" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXfixes = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXfixes"; - version = "6.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXfixes-6.0.1.tar.xz"; - sha256 = "0n1dq2mi60i0c06i7j6lq64cq335ir2l89yj0amj3529s8ygk5dn"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xfixes" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXfont = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, xorgproto, freetype, xtrans, zlib, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXfont"; - version = "1.5.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2"; - sha256 = "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libfontenc xorgproto freetype xtrans zlib ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xfont" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXfont2 = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, xorgproto, freetype, xtrans, zlib, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXfont2"; - version = "2.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXfont2-2.0.6.tar.xz"; - sha256 = "1x5f4w6f94dq9hfcd11xzzjqbz30yn2hdrnmv1b3zyxhgq0j1jkl"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libfontenc xorgproto freetype xtrans zlib ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xfont2" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXft = callPackage ({ stdenv, pkg-config, fetchurl, fontconfig, freetype, libX11, xorgproto, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXft"; - version = "2.3.8"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXft-2.3.8.tar.xz"; - sha256 = "0jfxqsqhjl2b2ll6b7x21mj02hxp5znkhjvbxw5a9h6lq95kr32y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ fontconfig freetype libX11 xorgproto libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xft" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXi = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXfixes, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXi"; - version = "1.8.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXi-1.8.1.tar.xz"; - sha256 = "19snjrsdib2y2iq8c1zbrp78qy1b6sdmyvif422gg27j2klc1gw9"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXfixes ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xi" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXinerama = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXinerama"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXinerama-1.1.5.tar.xz"; - sha256 = "0p08q8q1wg0sixhizl2l1i935bk6x3ckj3bdd6qqr0n1zkqd352h"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xinerama" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXmu = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXmu"; - version = "1.1.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXmu-1.1.4.tar.xz"; - sha256 = "0i42fng5gizablqziib25ipcwm5830jprl955ibq54rykjmy6391"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xmu" "xmuu" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXp = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXau, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXp"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXp-1.0.4.tar.xz"; - sha256 = "197iklxwyd4naryc6mzv0g5qi1dy1apxk9w9k3yshd1ax2wf668z"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXau libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xp" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXpm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXt, gettext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXpm"; - version = "3.5.17"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXpm-3.5.17.tar.xz"; - sha256 = "0hvf49qy55gwldpwpw7ihcmn5i2iinpjh2rbha63hzcy060izcv4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config gettext ]; - buildInputs = [ libX11 libXext xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xpm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXpresent = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXfixes, libXrandr, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXpresent"; - version = "1.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXpresent-1.0.1.tar.xz"; - sha256 = "06r34v7z3jb0x7l5ghlc1g82gjjp5ilq5p6j11galv86bagdyr5r"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXfixes libXrandr ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xpresent" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXrandr = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXrandr"; - version = "1.5.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXrandr-1.5.4.tar.xz"; - sha256 = "1lxlqd9ffjr1myfpyk91594n1h07ck6121m6ba8qajjz6xjv1m8s"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xrandr" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXrender = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXrender"; - version = "0.9.11"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXrender-0.9.11.tar.xz"; - sha256 = "096whakny5h16nlwz80z0l2nxigpsarl35mm5xqgzlc37ad7alxw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xrender" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXres = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXres"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXres-1.2.2.tar.xz"; - sha256 = "0pvlzahqd8fcyq10wi7ipbxvgrg93hn0vqsymhw7b6sb93rlcx4s"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xres" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXt = callPackage ({ stdenv, pkg-config, fetchurl, libICE, xorgproto, libSM, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXt"; - version = "1.3.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXt-1.3.0.tar.xz"; - sha256 = "14dz66rp66ar2a5q0fbsnlcqkbd34801pzdxj3f0hzc2vcy0p0jj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libICE xorgproto libSM libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xt" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXtst = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXi, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXtst"; - version = "1.2.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXtst-1.2.4.tar.xz"; - sha256 = "1j1kr90b7vmpqniqd0pd786kn5924q799c5m2kpgzd2lj85z7xc4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXi ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xtst" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXv = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXv"; - version = "1.0.12"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXv-1.0.12.tar.xz"; - sha256 = "0j1qqrhbhdi3kqz0am5i1lhs31ql9pbc14z41w0a5xw9yq4zmxxa"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xv" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXvMC = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXv, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXvMC"; - version = "1.0.14"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXvMC-1.0.14.tar.xz"; - sha256 = "1nayf8qck0b1xb88dirdbvj7clr18wq1dxs73zwbpzdsnsv9xgp4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXv ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xvmc" "xvmc-wrapper" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXxf86dga = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXxf86dga"; - version = "1.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXxf86dga-1.1.6.tar.xz"; - sha256 = "03wqsxbgyrdbrhw8fk3fxc9nk8jnwz5537ym2yif73w0g5sl4i5y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xxf86dga" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXxf86misc = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXxf86misc"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2"; - sha256 = "107k593sx27vjz3v7gbb223add9i7w0bjc90gbb3jqpin3i07758"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xxf86misc" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXxf86vm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libXxf86vm"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXxf86vm-1.1.5.tar.xz"; - sha256 = "1rw8z01vgfc4wvf0q75sgnj6n04dkrw1w7z455qydrz0nd4fyzr4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xxf86vm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libdmx = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libdmx"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libdmx-1.1.5.tar.xz"; - sha256 = "0kzprd1ak3m3042m5hra50nsagswciis9p21ckilyaqbidmf591m"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "dmx" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libfontenc = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, zlib, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libfontenc"; - version = "1.1.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libfontenc-1.1.7.tar.xz"; - sha256 = "1hpy7kvppzy36fl8gbnzbv0cvglpdqk9jpdgvcfma1pfza8nkly0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto zlib ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "fontenc" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libpciaccess = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libpciaccess"; - version = "0.18"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libpciaccess-0.18.tar.xz"; - sha256 = "1ab2qbksf15jrpzd6x9ncri64d2bnhlw7aajdws58lj9gljv0qal"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "pciaccess" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libpthreadstubs = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libpthread-stubs"; - version = "0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/libpthread-stubs-0.5.tar.xz"; - sha256 = "1g224hyy694jch54357zc895z46r90xs193hg4m7rfnfxinmdnjr"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "pthread-stubs" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libxcb = callPackage ({ stdenv, pkg-config, fetchurl, libxslt, libpthreadstubs, libXau, xcbproto, libXdmcp, python3, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libxcb"; - version = "1.16"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libxcb-1.16.tar.xz"; - sha256 = "0w8xf6ff6axvla734lfb2291hrjrqqhn6mqabvdrdwgvl1m5cj23"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config python3 ]; - buildInputs = [ libxslt libpthreadstubs libXau xcbproto libXdmcp ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb" "xcb-composite" "xcb-damage" "xcb-dbe" "xcb-dpms" "xcb-dri2" "xcb-dri3" "xcb-ge" "xcb-glx" "xcb-present" "xcb-randr" "xcb-record" "xcb-render" "xcb-res" "xcb-screensaver" "xcb-shape" "xcb-shm" "xcb-sync" "xcb-xevie" "xcb-xf86dri" "xcb-xfixes" "xcb-xinerama" "xcb-xinput" "xcb-xkb" "xcb-xprint" "xcb-xselinux" "xcb-xtest" "xcb-xv" "xcb-xvmc" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libxcvt = callPackage ({ stdenv, pkg-config, fetchurl, meson, ninja, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libxcvt"; - version = "0.1.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libxcvt-0.1.2.tar.xz"; - sha256 = "0f6vf47lay9y288n8yg9ckjgz5ypn2hnp03ipp7javkr8h2njq85"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config meson ninja ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libxkbfile = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libxkbfile"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libxkbfile-1.1.3.tar.xz"; - sha256 = "1v2bhw1q1cj3wjfs0igq393iz10whcavbyxlm3k9xfvsk7m3xdm9"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xkbfile" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libxshmfence = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "libxshmfence"; - version = "1.3.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libxshmfence-1.3.2.tar.xz"; - sha256 = "0vv0c7rjf6nd1afbal4c4ralallarak1v3ss3gcjdca0pibz43c7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xshmfence" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - listres = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXmu, xorgproto, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "listres"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/listres-1.0.5.tar.xz"; - sha256 = "17fwfjh0xrvg7jj4h32pa8ns4hq4r11z61kh2xsqvsyjwyxh0anf"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libXaw libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - lndir = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "lndir"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/lndir-1.0.4.tar.xz"; - sha256 = "11syg5hx3f7m1d2p7zw717lryk819h6wk8h4vmapfdxvsflkfd1y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - luit = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "luit"; - version = "20230201"; - builder = ./builder.sh; - src = fetchurl { - url = "https://invisible-mirror.net/archives/luit/luit-20230201.tgz"; - sha256 = "0vy5fqp26pnrdn0hmgnmar6m2y06syrz188jqh03vqkyphfqsapf"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - makedepend = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "makedepend"; - version = "1.0.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/makedepend-1.0.9.tar.xz"; - sha256 = "1m1dg32z22fw9shg0wsxw7dvdcnfm16gq9qxpkfxixpzb6vdxl4j"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - mkfontscale = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, freetype, xorgproto, zlib, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "mkfontscale"; - version = "1.2.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/mkfontscale-1.2.3.tar.xz"; - sha256 = "0pp7dyfrrkrqxslk9q8660k0h4swaqlixsnnph2fxb7i8k1ws899"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libfontenc freetype xorgproto zlib ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - oclock = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, libX11, libXext, libXmu, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "oclock"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/oclock-1.0.5.tar.xz"; - sha256 = "0p4nqfrhy1srqqzbamp7afa54clbydbhprd1nxbd12g8anb9f2cg"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libxkbfile libX11 libXext libXmu libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - sessreg = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "sessreg"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/sessreg-1.1.3.tar.xz"; - sha256 = "1hmc9wsfgl2wmy0kccwa4brxbv02w5wiz5hrz72dsz87x1fwsah2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - setxkbmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, libXrandr, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "setxkbmap"; - version = "1.3.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/setxkbmap-1.3.4.tar.xz"; - sha256 = "1pps0x66512y3f7v6xgnb6gjbllsgi4q5zxmjcdiv60fsia8b3dy"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxkbfile libXrandr ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - smproxy = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libXmu, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "smproxy"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/smproxy-1.0.7.tar.xz"; - sha256 = "01gkz4n2pfxiklzzx3ghnm9shx3626jcriwvrs3pvawxrhvr5aaa"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libICE libSM libXmu libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - transset = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "transset"; - version = "1.0.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/transset-1.0.3.tar.xz"; - sha256 = "1zp6ldxb3h2zsr4nmkb8aj8ia8v3qvjj3w85by5xh3fxvlq8zqqz"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - twm = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libX11, libXext, libXmu, xorgproto, libXrandr, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "twm"; - version = "1.0.12"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/twm-1.0.12.tar.xz"; - sha256 = "1r5gfv1gvcjn39v7n6znpnvifwhlw2zf8gfrxq8vph84vva03wma"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libICE libSM libX11 libXext libXmu xorgproto libXrandr libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - utilmacros = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "util-macros"; - version = "1.20.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/util-macros-1.20.0.tar.xz"; - sha256 = "1nrh8kmbix5pspva6y7h14fj97xdvxqc6fr3zysfswg9vdib51hb"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-macros" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - viewres = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXmu, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "viewres"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/viewres-1.0.7.tar.xz"; - sha256 = "0a66mz27gcsxd1qq1ij0w8dv4wjvszgbf5ygw5dga40sbc464nmi"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libXaw libXmu libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - x11perf = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXft, libXmu, xorgproto, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "x11perf"; - version = "1.6.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2"; - sha256 = "0d3wh6z6znwhfdiv0zaggfj0xgish98xa10yy76b9517zj7hnzhw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext libXft libXmu xorgproto libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xauth = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXext, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xauth"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xauth-1.1.3.tar.xz"; - sha256 = "0cwxzq7lv932rcfad3baanr541qcjjdhyrhxy0bzjcp3pac581z7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXau libXext libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xbacklight = callPackage ({ stdenv, pkg-config, fetchurl, libxcb, xcbutil, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xbacklight"; - version = "1.2.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2"; - sha256 = "1plssg0s3pbslg6rfzxp9sx8ryvn8l32zyvc8zp9zsbsfwjg69rs"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libxcb xcbutil ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xbitmaps = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xbitmaps"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/data/xbitmaps-1.1.3.tar.xz"; - sha256 = "0yhgrllia3lbqx9b21w31w4sppx1a9ggrk62hrys2ckqi1aasv5d"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xbitmaps" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcalc = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcalc"; - version = "1.1.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xcalc-1.1.2.tar.xz"; - sha256 = "1m0wzhjvc88kmx12ykdml5rqlz9h2iki9mkfdngji53y8nhxyy45"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbproto = callPackage ({ stdenv, pkg-config, fetchurl, python3, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-proto"; - version = "1.16.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/proto/xcb-proto-1.16.0.tar.xz"; - sha256 = "06aij66rs8g378wg8swd7b3g73wqrrbbwl8shhnsi29amm41hnm7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config python3 ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-proto" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutil = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util"; - version = "0.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-0.4.1.tar.xz"; - sha256 = "04p54r0zjc44fpw1hdy4rhygv37sx2vr2lllxjihykz5v2xkpgjs"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-atom" "xcb-aux" "xcb-event" "xcb-util" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilcursor = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbutilimage, xcbutilrenderutil, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-cursor"; - version = "0.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/xcb-util-cursor-0.1.5.tar.xz"; - sha256 = "0mrwcrm6djbd5zdvqb5v4wr87bzawnaacyqwwhfghw09ssq9kbqc"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xcbutilimage xcbutilrenderutil xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-cursor" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilerrors = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbproto, xorgproto, m4, python3, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-errors"; - version = "1.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-errors-1.0.1.tar.xz"; - sha256 = "0mzkh3xj1n690dw8hrdhyjykd71ib0ls9n5cgf9asna2k1xwha2n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 python3 ]; - buildInputs = [ gperf libxcb xcbproto xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-errors" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilimage = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbutil, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-image"; - version = "0.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-image-0.4.1.tar.xz"; - sha256 = "0g8dwknrlz96k176qxh8ar84x9kpppci9b978zyp24nvvbjqxbfc"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xcbutil xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-image" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilkeysyms = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-keysyms"; - version = "0.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-keysyms-0.4.1.tar.xz"; - sha256 = "0f66snk179hmp8ppgv1zp9y7pl1vzn52znpikm1fsaj1ji90l9kw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-keysyms" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilrenderutil = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-renderutil"; - version = "0.3.10"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.10.tar.xz"; - sha256 = "1fh4dnlwlqyccrhmmwlv082a7mxc7ss7vmzmp7xxp39dwbqd859y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-renderutil" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcbutilwm = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcb-util-wm"; - version = "0.4.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xcb/xcb-util-wm-0.4.2.tar.xz"; - sha256 = "02wai17mxfbvlnj4l4bjbvah97rccdivzvd7mrznhr32s0hlxhv2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; - buildInputs = [ gperf libxcb xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcb-ewmh" "xcb-icccm" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xclock = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXft, libxkbfile, libXmu, xorgproto, libXrender, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xclock"; - version = "1.1.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xclock-1.1.1.tar.xz"; - sha256 = "0b3l1zwz2b1cn46f8pd480b835j9anadf929vqpll107iyzylz6z"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXft libxkbfile libXmu xorgproto libXrender libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcmsdb = callPackage ({ stdenv, pkg-config, fetchurl, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcmsdb"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xcmsdb-1.0.6.tar.xz"; - sha256 = "0magrza0i5qwpf0zlpqjychp3bzxgdw3p5v616xl4nbxag2fwxrw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcompmgr = callPackage ({ stdenv, pkg-config, fetchurl, libXcomposite, libXdamage, libXext, libXfixes, xorgproto, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcompmgr"; - version = "1.1.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xcompmgr-1.1.9.tar.xz"; - sha256 = "1w564walyqi3bqnnl8l2d949v64smipdw2q8lnrixl3jhrlvcxa8"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libXcomposite libXdamage libXext libXfixes xorgproto libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xconsole = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xconsole"; - version = "1.0.8"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xconsole-1.0.8.tar.xz"; - sha256 = "195vhqjrzjf4kkzmy0kx50n1bv2kj9fg7mi18mm2w3p4d3q6ljkv"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcursorgen = callPackage ({ stdenv, pkg-config, fetchurl, libpng, libX11, libXcursor, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcursorgen"; - version = "1.0.8"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xcursorgen-1.0.8.tar.xz"; - sha256 = "16yc82k4vp7icmf9247z4v38r65pdf032mrpzxj5wa2fggi3rcrj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libpng libX11 libXcursor xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xcursorthemes = callPackage ({ stdenv, pkg-config, fetchurl, libXcursor, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xcursor-themes"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/data/xcursor-themes-1.0.7.tar.xz"; - sha256 = "1j3qfga5llp8g702n7mivvdvfjk7agsgnbglbfh99n13i3sfiflm"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libXcursor ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xdm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXaw, libXdmcp, libXext, libXft, libXinerama, libXmu, libXpm, xorgproto, libXrender, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xdm"; - version = "1.1.14"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xdm-1.1.14.tar.xz"; - sha256 = "0prx5h0xmv08yvm0axzh74a90cyc1s1dcv98jpjwjzkr6rbg56ry"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm xorgproto libXrender libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xdpyinfo = callPackage ({ stdenv, pkg-config, fetchurl, libdmx, libX11, libxcb, libXcomposite, libXext, libXi, libXinerama, xorgproto, libXrender, libXtst, libXxf86dga, libXxf86misc, libXxf86vm, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xdpyinfo"; - version = "1.3.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xdpyinfo-1.3.4.tar.xz"; - sha256 = "0aw2yhx4ys22231yihkzhnw9jsyzksl4yyf3sx0689npvf0sbbd8"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xorgproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xdriinfo = callPackage ({ stdenv, pkg-config, fetchurl, libGL, xorgproto, libX11, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xdriinfo"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xdriinfo-1.0.7.tar.xz"; - sha256 = "0d7p9fj3znq0av9pjgi2kphqaz5w7b9hxlz63zbxs69bknp8p0yx"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libGL xorgproto libX11 ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xev = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXrandr, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xev"; - version = "1.2.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xev-1.2.5.tar.xz"; - sha256 = "1hbfwcnbyz4w13fbhnghl0vdhf6w9f9pb7jgjwrhykkii51ilin9"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto libXrandr ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xeyes = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxcb, libXext, libXi, libXmu, xorgproto, libXrender, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xeyes"; - version = "1.3.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xeyes-1.3.0.tar.xz"; - sha256 = "08rhfp5xlmdbyxkvxhgjxdn6vwzrbrjyd7jkk8b7wi1kpw0ccl09"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxcb libXext libXi libXmu xorgproto libXrender libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputevdev = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libevdev, udev, mtdev, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-evdev"; - version = "2.10.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2"; - sha256 = "1h1y0fwnawlp4yc5llr1l7hwfcxxpln2fxhy6arcf6w6h4z0f9l7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libevdev udev mtdev xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-evdev" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputjoystick = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-joystick"; - version = "1.6.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-joystick-1.6.4.tar.xz"; - sha256 = "1lnc6cvrg81chb2hj3jphgx7crr4ab8wn60mn8f9nsdwza2w8plh"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-joystick" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputkeyboard = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-keyboard"; - version = "2.0.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-keyboard-2.0.0.tar.xz"; - sha256 = "1fgya6a0pzsb8ynp2qhx3bqg6nfc4y2sw9wmk7zd8pqplbqzsrij"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputlibinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libinput, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-libinput"; - version = "1.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-libinput-1.4.0.tar.xz"; - sha256 = "1673ydfrvfqd4inz3vx1qyxa0mhr0f4bi0r7mrcmpisxi76i8g9s"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libinput xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-libinput" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputmouse = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-mouse"; - version = "1.9.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-mouse-1.9.5.tar.xz"; - sha256 = "0s4rzp7aqpbqm4474hg4bz7i7vg3ir93ck2q12if4lj3nklqmpjg"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-mouse" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputsynaptics = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libevdev, libX11, libXi, xorgserver, libXtst, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-synaptics"; - version = "1.9.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-synaptics-1.9.2.tar.xz"; - sha256 = "0f1cjs9haxhjybfh2lh579s15i2q0q19whynpda3giizj6mlmymq"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libevdev libX11 libXi xorgserver libXtst ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-synaptics" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputvmmouse = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, udev, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-vmmouse"; - version = "13.2.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-vmmouse-13.2.0.tar.xz"; - sha256 = "1f1rlgp1rpsan8k4ax3pzhl1hgmfn135r31m80pjxw5q19c7gw2n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto udev xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86inputvoid = callPackage ({ stdenv, pkg-config, fetchurl, xorgserver, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-input-void"; - version = "1.4.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-input-void-1.4.2.tar.xz"; - sha256 = "11bqy2djgb82c1g8ylpfwp3wjw4x83afi8mqyn5fvqp03kidh4d2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgserver xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoamdgpu = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, mesa, libGL, libdrm, udev, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-amdgpu"; - version = "23.0.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-amdgpu-23.0.0.tar.xz"; - sha256 = "0qf0kjh6pww5abxmqa4c9sfa2qq1hq4p8qcgqpfd1kpkcvmg012g"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto mesa libGL libdrm udev xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoapm = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-apm"; - version = "1.3.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2"; - sha256 = "0znwqfc8abkiha98an8hxsngnz96z6cd976bc4bsvz1km6wqk0c0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoark = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-ark"; - version = "0.7.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-ark-0.7.6.tar.xz"; - sha256 = "0p88blr3zgy47jc4aqivc6ypj4zq9pad1cl70wwz9xig29w9xk2s"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoast = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-ast"; - version = "1.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-ast-1.1.6.tar.xz"; - sha256 = "1bqdjcxi8fj48821322djdqnrla2i48wqckdf364zagrqyllyxbm"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoati = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, mesa, libGL, libdrm, udev, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-ati"; - version = "22.0.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-ati-22.0.0.tar.xz"; - sha256 = "0vdznwx78alhbb05paw2xd65hcsila2kqflwwnbpq8pnsdbbpj68"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto mesa libGL libdrm udev libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videochips = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-chips"; - version = "1.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2"; - sha256 = "1gqzy7q9v824m7hqkbbmncxg082zm0d4mafgc97c4skyiwgf9wq7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videocirrus = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-cirrus"; - version = "1.6.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-cirrus-1.6.0.tar.xz"; - sha256 = "00b468w01hqjczfqz42v2vqhb14db4wazcqi1w29lgfyhc0gmwqf"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videodummy = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-dummy"; - version = "0.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-dummy-0.4.1.tar.xz"; - sha256 = "1byzsdcnlnzvkcqrzaajzc3nzm7y7ydrk9bjr4x9lx8gznkj069m"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videofbdev = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-fbdev"; - version = "0.5.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2"; - sha256 = "16a66zr0l1lmssa07i3rzy07djxnb45c17ks8c71h8l06xgxihyw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videogeode = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-geode"; - version = "2.11.21"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-geode-2.11.21.tar.xz"; - sha256 = "07lzbyxss0m5i4j58z43zri2baawci9q1ykv1g828wqi2hzsqml2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoglide = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-glide"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2"; - sha256 = "1vaav6kx4n00q4fawgqnjmbdkppl0dir2dkrj4ad372mxrvl9c4y"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoglint = callPackage ({ stdenv, pkg-config, fetchurl, libpciaccess, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-glint"; - version = "1.2.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2"; - sha256 = "1lkpspvrvrp9s539bhfdjfh4andaqyk63l6zjn8m3km95smk6a45"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libpciaccess xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoi128 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-i128"; - version = "1.4.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-i128-1.4.1.tar.xz"; - sha256 = "0imwmkam09wpp3z3iaw9i4hysxicrrax7i3p0l2glgp3zw9var3h"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoi740 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-i740"; - version = "1.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2"; - sha256 = "0l3s1m95bdsg4gki943qipq8agswbb84dzcflpxa3vlckwhh3r26"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videointel = callPackage ({ stdenv, pkg-config, fetchurl, cairo, xorgproto, libdrm, libpng, udev, libpciaccess, libX11, xcbutil, libxcb, libXcursor, libXdamage, libXext, libXfixes, xorgserver, libXrandr, libXrender, libxshmfence, libXtst, libXvMC, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-intel"; - version = "2.99.917"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2"; - sha256 = "1jb7jspmzidfixbc0gghyjmnmpqv85i7pi13l4h2hn2ml3p83dq0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ cairo xorgproto libdrm libpng udev libpciaccess libX11 xcbutil libxcb libXcursor libXdamage libXext libXfixes xorgserver libXrandr libXrender libxshmfence libXtst libXvMC ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videomga = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-mga"; - version = "2.0.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-mga-2.0.1.tar.xz"; - sha256 = "1aq3aqh2yg09gy864kkshfx5pjl5w05jdz97bx5bnrbrhdq3p8r7"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoneomagic = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-neomagic"; - version = "1.3.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-neomagic-1.3.1.tar.xz"; - sha256 = "153lzhq0vahg3875wi8hl9rf4sgizs41zmfg6hpfjw99qdzaq7xn"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videonewport = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-newport"; - version = "0.2.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2"; - sha256 = "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videonouveau = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-nouveau"; - version = "3ee7cbca8f9144a3bb5be7f71ce70558f548d268"; - builder = ./builder.sh; - src = fetchurl { - url = "https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/3ee7cbca8f9144a3bb5be7f71ce70558f548d268/xf86-video-nouveau-3ee7cbca8f9144a3bb5be7f71ce70558f548d268.tar.bz2"; - sha256 = "0rhs3z274jdzd82pcsl25xn8hmw6i4cxs2kwfnphpfhxbbkiq7wl"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm udev libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videonv = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-nv"; - version = "2.1.22"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-nv-2.1.22.tar.xz"; - sha256 = "126j60dgnmiahjk5mxbnaav23hv7nvxvh49vhn6qg2f3nlnr6632"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoomap = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-omap"; - version = "0.4.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2"; - sha256 = "0nmbrx6913dc724y8wj2p6vqfbj5zdjfmsl037v627jj0whx9rwk"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoopenchrome = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, libX11, libXext, xorgserver, libXvMC, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-openchrome"; - version = "0.6.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2"; - sha256 = "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm udev libpciaccess libX11 libXext xorgserver libXvMC ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoqxl = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-qxl"; - version = "0.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-qxl-0.1.6.tar.xz"; - sha256 = "0pwncx60r1xxk8kpp9a46ga5h7k7hjqf14726v0gra27vdc9blra"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm udev libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videor128 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-r128"; - version = "6.12.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-r128-6.12.1.tar.xz"; - sha256 = "0hf7h54wxgs8njavp0kgadjq1787fhbd588j7pj685hz2wmkq0kx"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videorendition = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-rendition"; - version = "4.2.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-rendition-4.2.7.tar.bz2"; - sha256 = "0yzqcdfrnnyaaaa76d4hpwycpq4x2j8qvg9m4q19lj4xbicwc4cm"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videos3virge = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-s3virge"; - version = "1.11.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-s3virge-1.11.1.tar.xz"; - sha256 = "1qzfcq3rlpfdb6qxz8hrp9py1q11vyzl4iqxip1vpgfnfn83vl6f"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosavage = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-savage"; - version = "2.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-savage-2.4.0.tar.xz"; - sha256 = "1z81nqwaqqy9sc7pywkw4q9mijpvjx9w8xxr7d13k2nhzlng0v5k"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosiliconmotion = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-siliconmotion"; - version = "1.7.10"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.10.tar.xz"; - sha256 = "1h4g2mqxshaxii416ldw0aqy6cxnsbnzayfin51xm2526dw9q18n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosis = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-sis"; - version = "0.12.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-sis-0.12.0.tar.gz"; - sha256 = "00j7i2r81496w27rf4nq9gc66n6nizp3fi7nnywrxs81j1j3pk4v"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosisusb = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-sisusb"; - version = "0.9.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2"; - sha256 = "090lfs3hjz3cjd016v5dybmcsigj6ffvjdhdsqv13k90p4b08h7l"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosuncg6 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-suncg6"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-suncg6-1.1.3.tar.xz"; - sha256 = "16c3g5m0f5y9nx2x6w9jdzbs9yr6xhq31j37dcffxbsskmfxq57w"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosunffb = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-sunffb"; - version = "1.2.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-sunffb-1.2.3.tar.xz"; - sha256 = "0pf4ddh09ww7sxpzs5gr9pxh3gdwkg3f54067cp802nkw1n8vypi"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videosunleo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-sunleo"; - version = "1.2.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-sunleo-1.2.3.tar.xz"; - sha256 = "1px670aiqyzddl1nz3xx1lmri39irajrqw6dskirs2a64jgp3dpc"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videotdfx = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-tdfx"; - version = "1.5.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-tdfx-1.5.0.tar.bz2"; - sha256 = "0qc5wzwf1n65si9rc37bh224pzahh7gp67vfimbxs0b9yvhq0i9g"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videotga = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-tga"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2"; - sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videotrident = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-trident"; - version = "1.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-trident-1.4.0.tar.xz"; - sha256 = "16qqn1brz50mwcy42zi1wsw9af56qadsaaiwm9hn1p6plyf22xkz"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videov4l = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-v4l"; - version = "0.3.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2"; - sha256 = "084x4p4avy72mgm2vnnvkicw3419i6pp3wxik8zqh7gmq4xv5z75"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videovboxvideo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-vboxvideo"; - version = "1.0.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2"; - sha256 = "195z1js3i51qgxvhfw4bxb4dw3jcrrx2ynpm2y3475dypjzs7dkz"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videovesa = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-vesa"; - version = "2.6.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-vesa-2.6.0.tar.xz"; - sha256 = "1ccvaigb1f1kz8nxxjmkfn598nabd92p16rx1g35kxm8n5qjf20h"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videovmware = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, libX11, libXext, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-vmware"; - version = "13.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-vmware-13.4.0.tar.xz"; - sha256 = "06mq7spifsrpbwq9b8kn2cn61xq6mpkq6lvh4qi6xk2yxpjixlxf"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm udev libpciaccess libX11 libXext xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videovoodoo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-voodoo"; - version = "1.2.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-voodoo-1.2.6.tar.xz"; - sha256 = "00pn5826aazsdipf7ny03s1lypzid31fmswl8y2hrgf07bq76ab2"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videowsfb = callPackage ({ stdenv, pkg-config, fetchurl, xorgserver, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-wsfb"; - version = "0.4.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2"; - sha256 = "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgserver xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xf86videoxgi = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xf86-video-xgi"; - version = "1.6.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/driver/xf86-video-xgi-1.6.1.tar.bz2"; - sha256 = "10xd2vah0pnpw5spn40n4p95mpmgvdkly4i1cz51imnlfsw7g8si"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libdrm libpciaccess xorgserver ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xfd = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, fontconfig, libXaw, libXft, libXmu, xorgproto, libXrender, libXt, gettext, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xfd"; - version = "1.1.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xfd-1.1.4.tar.xz"; - sha256 = "1zbnj0z28dx2rm2h7pjwcz7z1jnl28gz0v9xn3hs2igxcvxhyiym"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config gettext wrapWithXFileSearchPathHook ]; - buildInputs = [ libxkbfile fontconfig libXaw libXft libXmu xorgproto libXrender libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xfontsel = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xfontsel"; - version = "1.1.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xfontsel-1.1.0.tar.xz"; - sha256 = "1d6ifx6sw97mmr00bhfakyx2f94w14yswxc68sw49zmvawrjq18p"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xfs = callPackage ({ stdenv, pkg-config, fetchurl, libXfont2, xorgproto, xtrans, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xfs"; - version = "1.2.1"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xfs-1.2.1.tar.xz"; - sha256 = "1rn1l76z4l133491wb1klixbwb8az5cnrzwx37fb3vnpmplc72ix"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libXfont2 xorgproto xtrans ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xfsinfo = callPackage ({ stdenv, pkg-config, fetchurl, libFS, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xfsinfo"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xfsinfo-1.0.7.tar.xz"; - sha256 = "0x48p4hk0lds2s8nwzgfl616r99s28ydx02zs7p1fxxs3i2wmwwj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libFS xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xgamma = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXxf86vm, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xgamma"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xgamma-1.0.7.tar.xz"; - sha256 = "13xw2fqp9cs7xj3nqi8khqxv81rk0dd8khp59xgs2lw9bbldly8w"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto libXxf86vm ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xgc = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xgc"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xgc-1.0.6.tar.xz"; - sha256 = "0h5jm2946f5m1g8a3qh1c01h3zrsjjivi09vi9rmij2frvdvp1vv"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libXaw libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xhost = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXmu, xorgproto, gettext, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xhost"; - version = "1.0.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xhost-1.0.9.tar.xz"; - sha256 = "0ib66h78ykc4zki4arh8hkcsgk1mk8yyy0ay5sdb2d908qqvb1pa"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config gettext ]; - buildInputs = [ libX11 libXau libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xinit = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xinit"; - version = "1.4.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xinit-1.4.2.tar.xz"; - sha256 = "08qz6f6yhis6jdcp6hzspql6ib9a9zp0ddhhbac1b7zg4a6xrn5p"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXi, libXinerama, libXrandr, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xinput"; - version = "1.6.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xinput-1.6.4.tar.xz"; - sha256 = "1j2pf28c54apr56v1fmvprp657n6x4sdrv8f24rx3138cl6x015d"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXext libXi libXinerama libXrandr ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkbcomp = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkbcomp"; - version = "1.4.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xkbcomp-1.4.7.tar.xz"; - sha256 = "0xqzz209m9i43jbyrf2lh4xdbyhzzzn9mis2f2c32kplwla82a0a"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxkbfile xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xkbcomp" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkbevd = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkbevd"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xkbevd-1.1.5.tar.xz"; - sha256 = "0swjhk33fp15060hhzycmk288ys51wwm6l7p9xy4blz95mq7nd9q"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxkbfile ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkbprint = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkbprint"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xkbprint-1.0.6.tar.xz"; - sha256 = "1c57kb8d8cbf720n9bcjhhaqpk08lac0sk4l0jp8j0mryw299k4r"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxkbfile xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkbutils = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXaw, libXt, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkbutils"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xkbutils-1.0.6.tar.xz"; - sha256 = "0pp2bsksblvvw0fx667k2bl5sm0baj7pp2cjvq0vmk093vpbp8ii"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto libX11 libXaw libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkeyboardconfig = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkeyboard-config"; - version = "2.41"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.41.tar.xz"; - sha256 = "13vjvyg1fjvsqzqkpxzigvv94v154mcb2gba4d80spi9aywxcb7h"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xkill = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xkill"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xkill-1.0.6.tar.xz"; - sha256 = "01xrmqw498hqlhn6l1sq89s31k6sjf6xlij6a08pnrvmqiwama75"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xload = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt, gettext, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xload"; - version = "1.1.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xload-1.1.4.tar.xz"; - sha256 = "0c9h6w4bd1q3k4cy8v56sc3v9cg94cpg3xr057sf096v428vjil3"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config gettext wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXmu xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xlsatoms = callPackage ({ stdenv, pkg-config, fetchurl, libxcb, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xlsatoms"; - version = "1.1.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xlsatoms-1.1.4.tar.xz"; - sha256 = "1dviriynilkw0jwl0s2h8y95pwh8cxj95cnmllkd6rn0args3gzl"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libxcb ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xlsclients = callPackage ({ stdenv, pkg-config, fetchurl, libxcb, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xlsclients"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xlsclients-1.1.5.tar.xz"; - sha256 = "1qxsav5gicsfwv1dqlcfpj47vy9i30i7iysrfx5aql02wxbyxfk8"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libxcb ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xlsfonts = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xlsfonts"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xlsfonts-1.0.7.tar.xz"; - sha256 = "0r84wp4352hbfcaybqp2khipm40293byvrfyrlslrd37m52njwkv"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xmag = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xmag"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xmag-1.0.7.tar.xz"; - sha256 = "0qblrqrhxml2asgbck53a1v7c4y7ap7jcyqjg500h1i7bb63d680"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libX11 libXaw libXmu libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xmessage = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xmessage"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xmessage-1.0.6.tar.xz"; - sha256 = "04kahkk3kd6p1xlzf0jwfgnrb5z2r3y55q3p12b6n59py52wbsnj"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libXaw libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xmodmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xmodmap"; - version = "1.0.11"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xmodmap-1.0.11.tar.xz"; - sha256 = "10byhzdfv1xckqc3d2v52xg1ggxn5j806x4450l3ig5hyxl82bws"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xmore = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xmore"; - version = "1.0.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xmore-1.0.4.tar.xz"; - sha256 = "16havfffngvx5kc9lam8rhsdfabsj1rsv4g49z346knyq7dn1dby"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libXaw xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xorgcffiles = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xorg-cf-files"; - version = "1.0.8"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/util/xorg-cf-files-1.0.8.tar.xz"; - sha256 = "1f8primgb6qw3zy7plbsj4a1kdhdqb04xpdys520zaygxxfra23l"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xorgdocs = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xorg-docs"; - version = "1.7.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/doc/xorg-docs-1.7.2.tar.gz"; - sha256 = "0xrncq9dkl6h03gfsj89zagi2vkhgvcgy8l6pjjva350d24027hc"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xorgproto = callPackage ({ stdenv, pkg-config, fetchurl, libXt, python3, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xorgproto"; - version = "2023.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/proto/xorgproto-2023.2.tar.xz"; - sha256 = "0b4c27aq25w1fccks49p020avf9jzh75kaq5qwnww51bp1yvq7xn"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config python3 ]; - buildInputs = [ libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "applewmproto" "bigreqsproto" "compositeproto" "damageproto" "dmxproto" "dpmsproto" "dri2proto" "dri3proto" "evieproto" "fixesproto" "fontcacheproto" "fontsproto" "glproto" "inputproto" "kbproto" "lg3dproto" "presentproto" "printproto" "randrproto" "recordproto" "renderproto" "resourceproto" "scrnsaverproto" "trapproto" "videoproto" "windowswmproto" "xcalibrateproto" "xcmiscproto" "xextproto" "xf86bigfontproto" "xf86dgaproto" "xf86driproto" "xf86miscproto" "xf86rushproto" "xf86vidmodeproto" "xineramaproto" "xproto" "xproxymngproto" "xwaylandproto" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xorgserver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, openssl, libX11, libXau, libxcb, xcbutil, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, libXdmcp, libXfixes, libxkbfile, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xorg-server"; - version = "21.1.13"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/xserver/xorg-server-21.1.13.tar.xz"; - sha256 = "033lvjihidc68v08izrr63va8jhkfmzcjg0d6rm26wizjkah4nml"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ xorgproto openssl libX11 libXau libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-server" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xorgsgmldoctools = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xorg-sgml-doctools"; - version = "1.12"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/doc/xorg-sgml-doctools-1.12.tar.gz"; - sha256 = "1nsb8kn6nipc09yv19wdpd94pav6hx7xby0psmmdvnm6wqlh6nlq"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xorg-sgml-doctools" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xpr = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xpr"; - version = "1.1.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xpr-1.1.0.tar.xz"; - sha256 = "1iaphm96kha6bzz34cj82r2lp5hrdpqwdca04iij4rinflab3fx0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xprop = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xprop"; - version = "1.2.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xprop-1.2.7.tar.xz"; - sha256 = "0pw2iv7dcy2xq5fh3427nx88pjj9d9rry3930qj1c6mricaf6dj4"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xrandr = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXrandr, libXrender, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xrandr"; - version = "1.5.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xrandr-1.5.2.tar.xz"; - sha256 = "0h7jy4c5zgrr06fimnnxhy5ba782b1n4aik29g6bln4h1mwy9gn8"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto libXrandr libXrender ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xrdb = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xrdb"; - version = "1.2.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xrdb-1.2.2.tar.xz"; - sha256 = "1x1ka0zbcw66a06jvsy92bvnsj9vxbvnq1hbn1az4f0v4fmzrx9i"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xrefresh = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xrefresh"; - version = "1.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xrefresh-1.0.7.tar.xz"; - sha256 = "07hvfw3rdv8mzqmm9ax5z8kw544insdd152f2z8868ply8sxdwd9"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xset = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXmu, xorgproto, libXxf86misc, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xset"; - version = "1.2.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xset-1.2.5.tar.xz"; - sha256 = "0bsyyx3k32k9vpb8x3ks7hlfr03nm0i14fv3cg6n4f2vcdajsscz"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXext libXmu xorgproto libXxf86misc ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xsetroot = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xbitmaps, libXcursor, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xsetroot"; - version = "1.1.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xsetroot-1.1.3.tar.xz"; - sha256 = "1l9qcv4mldj70slnmfg56nv7yh9j9ca1x795bl26whmlkrdb90b0"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xbitmaps libXcursor libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xsm = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libX11, libXaw, xorgproto, libXt, wrapWithXFileSearchPathHook, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xsm"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xsm-1.0.5.tar.xz"; - sha256 = "0bgvwvj99yqivy4dyxrfa0anwvh5d634gz0w43zy8cn17ymgsc4w"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config wrapWithXFileSearchPathHook ]; - buildInputs = [ libICE libSM libX11 libXaw xorgproto libXt ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xstdcmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xstdcmap"; - version = "1.0.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xstdcmap-1.0.5.tar.xz"; - sha256 = "1061b95j08mlwpadyilmpbzfgmm08z69k8nrkbn9k11rg7ilfn1n"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXmu xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xtrans = callPackage ({ stdenv, pkg-config, fetchurl, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xtrans"; - version = "1.5.0"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/xtrans-1.5.0.tar.xz"; - sha256 = "1gdiiw64p279a1x033w7i002myry9v75pwmc1gsdpzbbd41vg90v"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xtrans" ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xtrap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXt, libXTrap, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xtrap"; - version = "1.0.3"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2"; - sha256 = "0sqm4j1zflk1s94iq4waa70hna1xcys88v9a70w0vdw66czhvj2j"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libXt libXTrap ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xvinfo = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXv, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xvinfo"; - version = "1.1.5"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xvinfo-1.1.5.tar.xz"; - sha256 = "0164qpbjmxxa1rbvh6ay1iz2qnp9hl1745k9pk6195kdnbn73piy"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto libXv ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xwd = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xwd"; - version = "1.0.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xwd-1.0.9.tar.xz"; - sha256 = "0gxx3y9zlh13jgwkayxljm6i58ng8jc1xzqv2g8s7d3yjj21n4nw"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libxkbfile libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xwininfo = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxcb, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xwininfo"; - version = "1.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xwininfo-1.1.6.tar.xz"; - sha256 = "0gr5m4lyvkil3cl63zf0sw7bq5qgraqrnvddk6xgk3a42xy8j61m"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 libxcb xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - xwud = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, testers }: stdenv.mkDerivation (finalAttrs: { - pname = "xwud"; - version = "1.0.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/app/xwud-1.0.6.tar.xz"; - sha256 = "1zhsih1l3x1038fi1wi9npvfnn8j7580ca73saixjg5sbv8qq134"; - }; - hardeningDisable = [ "bindnow" "relro" ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libX11 xorgproto ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ ]; - platforms = lib.platforms.unix; - }; - })) {}; + appres = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "appres"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/appres-1.0.6.tar.xz"; + sha256 = "02sr4f1bm3y1w24gsvjfzvbpac1kgkq27v1s68q87bd1l3i5f8lb"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + bdftopcf = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "bdftopcf"; + version = "1.1.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/bdftopcf-1.1.1.tar.xz"; + sha256 = "026rzs92h9jsc7r0kvvyvwhm22q0805gp38rs14x6ghg7kam7j8i"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + bitmap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + xbitmaps, + libXmu, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "bitmap"; + version = "1.1.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/bitmap-1.1.1.tar.xz"; + sha256 = "1ri66kxa9m6s3xw25mz85k34qhjyksa4kbs4jfrri0g47yv2xm33"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + xbitmaps + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + editres = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXmu, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "editres"; + version = "1.0.8"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/editres-1.0.8.tar.xz"; + sha256 = "1ydn32x9qh2zkn90w6nfv33gcq75z67w93bakkykadl8n7zmvkw3"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + encodings = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "encodings"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/encodings-1.0.7.tar.xz"; + sha256 = "193hxaygxy2msmf8cyps8jdi0kxga84hj47qv7diqlhn7gsajf9s"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontadobe100dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-adobe-100dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-adobe-100dpi-1.0.4.tar.xz"; + sha256 = "1kwwbaiqnfm3pcysy9gw0g9xhpgmhjcd6clp7zajhqq5br2gyymn"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontadobe75dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-adobe-75dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-adobe-75dpi-1.0.4.tar.xz"; + sha256 = "04drk4wi176524lxjwfrnkr3dwz1hysabqfajpj6klfypqnsd08j"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontadobeutopia100dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-adobe-utopia-100dpi"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.5.tar.xz"; + sha256 = "0jq27gs5xpwkghggply5pr215lmamrnpr6x5iia76schg8lyr17v"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontadobeutopia75dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-adobe-utopia-75dpi"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.5.tar.xz"; + sha256 = "0q3pg4imdbwwiq2g8a1rypjrgmb33n0r5j9qqnh4ywnh69cj89m7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontadobeutopiatype1 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-adobe-utopia-type1"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.5.tar.xz"; + sha256 = "15snyyy3rk75fikz1hs80nybxai1aynybl0gw32hffv98yy81cjc"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontalias = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-alias"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-alias-1.0.5.tar.xz"; + sha256 = "0vkb5mybc0fjfq29lgf5w1b536bwifzkyj8ad9iy7q3kpcby52cz"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontarabicmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-arabic-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-arabic-misc-1.0.4.tar.xz"; + sha256 = "0rrlcqbyx9y7hnhbkjir8rs6jkfqyalj1zvhr8niv2n7a8dydzs6"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbh100dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-100dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-100dpi-1.0.4.tar.xz"; + sha256 = "07mb9781c9yxzp3ifw317v4fbnmg9qyqv0244zfspylihkz5x3zx"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbh75dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-75dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-75dpi-1.0.4.tar.xz"; + sha256 = "1nkwkqdl946xc4xknhi1pnxdww6rxrv013c7nk5x6ganfg0dh9k0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbhlucidatypewriter100dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-lucidatypewriter-100dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.4.tar.xz"; + sha256 = "1wp87pijbydkpcmawsyas7vwhad2xg1mkkwigga2jjh9lknhkv3n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbhlucidatypewriter75dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-lucidatypewriter-75dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.4.tar.xz"; + sha256 = "1xg86mb9qigf5v0wx0q2shn8qaabsapamj627xllzw31mhwjqkl6"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbhttf = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-ttf"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-ttf-1.0.4.tar.xz"; + sha256 = "0misxkpjc2bir20m01z355sfk3lbpjnshphjzl32p364006zk9c5"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbhtype1 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bh-type1"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bh-type1-1.0.4.tar.xz"; + sha256 = "19kjdm0cx766yj9vwkyv7gyg1q4bjag5g500s7nnppmb0vnc7phr"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbitstream100dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bitstream-100dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bitstream-100dpi-1.0.4.tar.xz"; + sha256 = "19y1j1v65890x8yn6a47jqljfax3ihfrd25xbzgypxz4xy1cc71d"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbitstream75dpi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bitstream-75dpi"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bitstream-75dpi-1.0.4.tar.xz"; + sha256 = "09pq7dvyyxj6kvps1dm3qr15pjwh9iq9118fryqc5a94fkc39sxa"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbitstreamspeedo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bitstream-speedo"; + version = "1.0.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bitstream-speedo-1.0.2.tar.gz"; + sha256 = "0wmy58cd3k7w2j4v20icnfs8z3b61qj3vqdx958z18w00h9mzsmf"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontbitstreamtype1 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-bitstream-type1"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-bitstream-type1-1.0.4.tar.xz"; + sha256 = "0a669193ivi2lxk3v692kq1pqavaswlpi9hbi8ib8bfp9j5j6byy"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontcronyxcyrillic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-cronyx-cyrillic"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-cronyx-cyrillic-1.0.4.tar.xz"; + sha256 = "12dpsvif85z1m6jvq9g91lmzj0rll5rh3871mbvdpzyb1p7821yw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontcursormisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-cursor-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-cursor-misc-1.0.4.tar.xz"; + sha256 = "10prshcmmm5ccczyq7yaadz92k23ls9rjl10hjh8rjqka1cwkn95"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontdaewoomisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-daewoo-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-daewoo-misc-1.0.4.tar.xz"; + sha256 = "0cagg963v94paq1l9l7g5kyv7df8q31b4zcbhv5rh07kr0yqng7n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontdecmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-dec-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-dec-misc-1.0.4.tar.xz"; + sha256 = "1xqs2qg21h5xg519810hw4bvykjdpf0xgk0xwp0bxy4g3lh6inc2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontibmtype1 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-ibm-type1"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-ibm-type1-1.0.4.tar.xz"; + sha256 = "0zyfc0mxkzlrbpdn16rj25abf2hcqb592zkks550rm26paamwff4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontisasmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-isas-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-isas-misc-1.0.4.tar.xz"; + sha256 = "1z1qqi64hbp297f6ryiswa4ikfn7mcwnb8nadyglni6swsxrbra7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontjismisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-jis-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-jis-misc-1.0.4.tar.xz"; + sha256 = "1l7spyq93rhydsdnsh46alcfbn2irz664vd209lamxviqkvfzlbq"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmicromisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-micro-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-micro-misc-1.0.4.tar.xz"; + sha256 = "0hzryqyml0bzzw91vqdmzdlb7dm18jmyz0mxy6plks3sppbbkq1f"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmisccyrillic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-cyrillic"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-cyrillic-1.0.4.tar.xz"; + sha256 = "14z9x174fidjn65clkd2y1l6pxspmvphizap9a8h2h06adzil0kn"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmiscethiopic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-ethiopic"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-ethiopic-1.0.5.tar.xz"; + sha256 = "04mnd620s9wkdid9wnf181yh5vf0n7l096nc3z4zdvm1w7kafja7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmiscmeltho = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-meltho"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-meltho-1.0.4.tar.xz"; + sha256 = "06ajsqjd20zsk9a44bl5i1mv1r9snil6l2947hk8z2bqf30mxgk3"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmiscmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-misc-misc"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-misc-misc-1.1.3.tar.xz"; + sha256 = "1vcgc6lbc53fqaz8alhxcb6f231hhvj9hn2nkzg1mclbymhy7avr"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontmuttmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-mutt-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-mutt-misc-1.0.4.tar.xz"; + sha256 = "095vd33kqd157j6xi4sjxwdsjpwpgqliifa8nkybq8rcw7s5j8xi"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontschumachermisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-schumacher-misc"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-schumacher-misc-1.1.3.tar.xz"; + sha256 = "0w40lr214n39al449fnm4k1bpyj3fjrhz2yxqd6a6m8yvc69z14b"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + fontutil + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontscreencyrillic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-screen-cyrillic"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-screen-cyrillic-1.0.5.tar.xz"; + sha256 = "1h75zn1rp7bdv6av4cnrajpaq6fkd7dx1lc7aijpw32qrnw8nxcg"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontsonymisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-sony-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-sony-misc-1.0.4.tar.xz"; + sha256 = "0swlhjmmagrfkip4i9yq7cr56hains1j41mjs05nxc6c7y19zc76"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontsunmisc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-sun-misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-sun-misc-1.0.4.tar.xz"; + sha256 = "17yvhk1hlajm3q57r09q8830zz7cnckrg8hgzajgyyljdl8xv16x"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fonttosfnt = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libfontenc, + freetype, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "fonttosfnt"; + version = "1.2.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/fonttosfnt-1.2.3.tar.xz"; + sha256 = "1bv1glfz4jqvkwx8hmv2vqilvxxl6jww3rvbzv6zbl6b83r96yma"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libfontenc + freetype + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontutil = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-util"; + version = "1.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-util-1.4.1.tar.xz"; + sha256 = "15fcd3rzlgm51fwgfapg6vzyd1kkd28rj149xq7iajqr7h9697sw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "fontutil" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontwinitzkicyrillic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + bdftopcf, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-winitzki-cyrillic"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.4.tar.xz"; + sha256 = "1a4pz8f7hz6nn9xirz2k1j81ykl3lwrpi1ydmzipciy15l984v9v"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + bdftopcf + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + fontxfree86type1 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontutil, + mkfontscale, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "font-xfree86-type1"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/font/font-xfree86-type1-1.0.5.tar.xz"; + sha256 = "0ds8xbgxy9h0bqn2p38vylfzn8cqkp7n51kwmw1c18ayi9w2qg59"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + mkfontscale + ]; + buildInputs = [ fontutil ]; + configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ]; + postPatch = ''substituteInPlace configure --replace 'MAPFILES_PATH=`pkg-config' 'MAPFILES_PATH=`$PKG_CONFIG' ''; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + gccmakedep = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "gccmakedep"; + version = "1.0.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2"; + sha256 = "1r1fpy5ni8chbgx7j5sz0008fpb6vbazpy1nifgdhgijyzqxqxdj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + iceauth = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "iceauth"; + version = "1.0.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/iceauth-1.0.9.tar.xz"; + sha256 = "01cc816fvdkkfcnqnyvgcshcip2jzjivwa8hzdvsz0snak5xzf9c"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libICE + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + ico = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "ico"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/ico-1.0.6.tar.xz"; + sha256 = "01a4kykayckxzi4jzggaz3wh9qjcr6f4iykhvq7jhlz767a6kwrq"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + imake = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "imake"; + version = "1.0.10"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/imake-1.0.10.tar.xz"; + sha256 = "1xgcsamfij22ggc4p8anvvihwyf4adg6gjdd6v7m9cypm37cppkm"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libAppleWM = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libAppleWM"; + version = "1.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2"; + sha256 = "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "applewm" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libFS = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xtrans, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libFS"; + version = "1.0.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libFS-1.0.9.tar.xz"; + sha256 = "12i0zh1v5zlba617nam8sjhfqi68qqnl7z5hsz3wqhijid1pjwsr"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xtrans + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "libfs" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libICE = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xtrans, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libICE"; + version = "1.1.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libICE-1.1.1.tar.xz"; + sha256 = "0lg4sddalwmmzsnxv3fgdm2hzqp66j8b3syc0ancfhi9yzx7mrq3"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xtrans + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "ice" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libSM = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + libuuid, + xorgproto, + xtrans, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libSM"; + version = "1.2.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libSM-1.2.4.tar.xz"; + sha256 = "113vx53k6pyxf84v5kqb7qhcldx1fi78lym77lcb2xhj9lgfbjzx"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libICE + libuuid + xorgproto + xtrans + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "sm" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libWindowsWM = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libWindowsWM"; + version = "1.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2"; + sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "windowswm" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libX11 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpthreadstubs, + libxcb, + xtrans, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libX11"; + version = "1.8.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libX11-1.8.7.tar.xz"; + sha256 = "1vlrgrdibp4lr84wgmsdy1ihzaai8bvvqc68npi1m19wir36gwh5"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpthreadstubs + libxcb + xtrans + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "x11" + "x11-xcb" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXScrnSaver = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXScrnSaver"; + version = "1.2.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXScrnSaver-1.2.4.tar.xz"; + sha256 = "1zi0r6mqa1g0hhsp02cdsjcxmsbipiv0v65c1h4pl84fydcjikbm"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xscrnsaver" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXTrap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXTrap"; + version = "1.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2"; + sha256 = "0bi5wxj6avim61yidh9fd3j4n8czxias5m8vss9vhxjnk1aksdwg"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xtrap" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXau = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXau"; + version = "1.0.11"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXau-1.0.11.tar.xz"; + sha256 = "1sxv56rql3vsb14za0hgr07mipgvvcw48910srmky32pyn135ypk"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xau" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXaw = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + libXmu, + libXpm, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXaw"; + version = "1.0.15"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXaw-1.0.15.tar.xz"; + sha256 = "0jkm2ards3nj08y7185k9jvjhhx78r46abrl3g3jrc4zvq7zfddb"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + libXmu + libXpm + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xaw6" + "xaw7" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXcomposite = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXfixes, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXcomposite"; + version = "0.4.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXcomposite-0.4.6.tar.xz"; + sha256 = "11rcvk380l5540gfqy9p8mbzw3l1p5g8l214p870f28smvqbqh7y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXfixes + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcomposite" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXcursor = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXfixes, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXcursor"; + version = "1.2.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXcursor-1.2.2.tar.xz"; + sha256 = "1vl87819mnhlbnccchysv9nmax4abil5x3cr61x52vn55jyp3l2k"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXfixes + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcursor" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXdamage = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXfixes, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXdamage"; + version = "1.1.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXdamage-1.1.6.tar.xz"; + sha256 = "04axzdx75w0wcb4na7lfpa0ai0fddw60dmg7cigs7z32a8gkqwsj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXfixes + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xdamage" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXdmcp = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXdmcp"; + version = "1.1.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXdmcp-1.1.4.tar.xz"; + sha256 = "005dsry6nfqrv32i7gbqn7mxnb2m3pc8fz9lxj2b9w7q2z1mrkid"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xdmcp" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXext = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXext"; + version = "1.3.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXext-1.3.6.tar.xz"; + sha256 = "0lwpx0b7lid47pff6dagp5h63bi0b3gsy05lqpyhbr4l76i9zdgd"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xext" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXfixes = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXfixes"; + version = "6.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXfixes-6.0.1.tar.xz"; + sha256 = "0n1dq2mi60i0c06i7j6lq64cq335ir2l89yj0amj3529s8ygk5dn"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xfixes" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXfont = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libfontenc, + xorgproto, + freetype, + xtrans, + zlib, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXfont"; + version = "1.5.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2"; + sha256 = "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libfontenc + xorgproto + freetype + xtrans + zlib + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xfont" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXfont2 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libfontenc, + xorgproto, + freetype, + xtrans, + zlib, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXfont2"; + version = "2.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXfont2-2.0.6.tar.xz"; + sha256 = "1x5f4w6f94dq9hfcd11xzzjqbz30yn2hdrnmv1b3zyxhgq0j1jkl"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libfontenc + xorgproto + freetype + xtrans + zlib + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xfont2" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXft = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + fontconfig, + freetype, + libX11, + xorgproto, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXft"; + version = "2.3.8"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXft-2.3.8.tar.xz"; + sha256 = "0jfxqsqhjl2b2ll6b7x21mj02hxp5znkhjvbxw5a9h6lq95kr32y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + fontconfig + freetype + libX11 + xorgproto + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xft" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXfixes, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXi"; + version = "1.8.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXi-1.8.1.tar.xz"; + sha256 = "19snjrsdib2y2iq8c1zbrp78qy1b6sdmyvif422gg27j2klc1gw9"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXfixes + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xi" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXinerama = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXinerama"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXinerama-1.1.5.tar.xz"; + sha256 = "0p08q8q1wg0sixhizl2l1i935bk6x3ckj3bdd6qqr0n1zkqd352h"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xinerama" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXmu = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXmu"; + version = "1.1.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXmu-1.1.4.tar.xz"; + sha256 = "0i42fng5gizablqziib25ipcwm5830jprl955ibq54rykjmy6391"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xmu" + "xmuu" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXp = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXau, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXp"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXp-1.0.4.tar.xz"; + sha256 = "197iklxwyd4naryc6mzv0g5qi1dy1apxk9w9k3yshd1ax2wf668z"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXau + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xp" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXpm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + libXt, + gettext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXpm"; + version = "3.5.17"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXpm-3.5.17.tar.xz"; + sha256 = "0hvf49qy55gwldpwpw7ihcmn5i2iinpjh2rbha63hzcy060izcv4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + gettext + ]; + buildInputs = [ + libX11 + libXext + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xpm" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXpresent = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXfixes, + libXrandr, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXpresent"; + version = "1.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXpresent-1.0.1.tar.xz"; + sha256 = "06r34v7z3jb0x7l5ghlc1g82gjjp5ilq5p6j11galv86bagdyr5r"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXfixes + libXrandr + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xpresent" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXrandr = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXrandr"; + version = "1.5.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXrandr-1.5.4.tar.xz"; + sha256 = "1lxlqd9ffjr1myfpyk91594n1h07ck6121m6ba8qajjz6xjv1m8s"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xrandr" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXrender = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXrender"; + version = "0.9.11"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXrender-0.9.11.tar.xz"; + sha256 = "096whakny5h16nlwz80z0l2nxigpsarl35mm5xqgzlc37ad7alxw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xrender" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXres = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXres"; + version = "1.2.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXres-1.2.2.tar.xz"; + sha256 = "0pvlzahqd8fcyq10wi7ipbxvgrg93hn0vqsymhw7b6sb93rlcx4s"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xres" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXt = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + xorgproto, + libSM, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXt"; + version = "1.3.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXt-1.3.0.tar.xz"; + sha256 = "14dz66rp66ar2a5q0fbsnlcqkbd34801pzdxj3f0hzc2vcy0p0jj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libICE + xorgproto + libSM + libX11 + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xt" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXtst = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXi, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXtst"; + version = "1.2.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXtst-1.2.4.tar.xz"; + sha256 = "1j1kr90b7vmpqniqd0pd786kn5924q799c5m2kpgzd2lj85z7xc4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXi + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xtst" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXv = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXv"; + version = "1.0.12"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXv-1.0.12.tar.xz"; + sha256 = "0j1qqrhbhdi3kqz0am5i1lhs31ql9pbc14z41w0a5xw9yq4zmxxa"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xv" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXvMC = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXv, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXvMC"; + version = "1.0.14"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXvMC-1.0.14.tar.xz"; + sha256 = "1nayf8qck0b1xb88dirdbvj7clr18wq1dxs73zwbpzdsnsv9xgp4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXv + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xvmc" + "xvmc-wrapper" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXxf86dga = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXxf86dga"; + version = "1.1.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXxf86dga-1.1.6.tar.xz"; + sha256 = "03wqsxbgyrdbrhw8fk3fxc9nk8jnwz5537ym2yif73w0g5sl4i5y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xxf86dga" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXxf86misc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXxf86misc"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2"; + sha256 = "107k593sx27vjz3v7gbb223add9i7w0bjc90gbb3jqpin3i07758"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xxf86misc" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libXxf86vm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libXxf86vm"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libXxf86vm-1.1.5.tar.xz"; + sha256 = "1rw8z01vgfc4wvf0q75sgnj6n04dkrw1w7z455qydrz0nd4fyzr4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xxf86vm" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libdmx = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libdmx"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libdmx-1.1.5.tar.xz"; + sha256 = "0kzprd1ak3m3042m5hra50nsagswciis9p21ckilyaqbidmf591m"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "dmx" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libfontenc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + zlib, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libfontenc"; + version = "1.1.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libfontenc-1.1.7.tar.xz"; + sha256 = "1hpy7kvppzy36fl8gbnzbv0cvglpdqk9jpdgvcfma1pfza8nkly0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + zlib + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "fontenc" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libpciaccess = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libpciaccess"; + version = "0.18"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libpciaccess-0.18.tar.xz"; + sha256 = "1ab2qbksf15jrpzd6x9ncri64d2bnhlw7aajdws58lj9gljv0qal"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "pciaccess" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libpthreadstubs = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libpthread-stubs"; + version = "0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/libpthread-stubs-0.5.tar.xz"; + sha256 = "1g224hyy694jch54357zc895z46r90xs193hg4m7rfnfxinmdnjr"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "pthread-stubs" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libxcb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxslt, + libpthreadstubs, + libXau, + xcbproto, + libXdmcp, + python3, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libxcb"; + version = "1.16"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libxcb-1.16.tar.xz"; + sha256 = "0w8xf6ff6axvla734lfb2291hrjrqqhn6mqabvdrdwgvl1m5cj23"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + python3 + ]; + buildInputs = [ + libxslt + libpthreadstubs + libXau + xcbproto + libXdmcp + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xcb" + "xcb-composite" + "xcb-damage" + "xcb-dbe" + "xcb-dpms" + "xcb-dri2" + "xcb-dri3" + "xcb-ge" + "xcb-glx" + "xcb-present" + "xcb-randr" + "xcb-record" + "xcb-render" + "xcb-res" + "xcb-screensaver" + "xcb-shape" + "xcb-shm" + "xcb-sync" + "xcb-xevie" + "xcb-xf86dri" + "xcb-xfixes" + "xcb-xinerama" + "xcb-xinput" + "xcb-xkb" + "xcb-xprint" + "xcb-xselinux" + "xcb-xtest" + "xcb-xv" + "xcb-xvmc" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libxcvt = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + meson, + ninja, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libxcvt"; + version = "0.1.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libxcvt-0.1.2.tar.xz"; + sha256 = "0f6vf47lay9y288n8yg9ckjgz5ypn2hnp03ipp7javkr8h2njq85"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + meson + ninja + ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libxkbfile = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libxkbfile"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libxkbfile-1.1.3.tar.xz"; + sha256 = "1v2bhw1q1cj3wjfs0igq393iz10whcavbyxlm3k9xfvsk7m3xdm9"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xkbfile" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + libxshmfence = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "libxshmfence"; + version = "1.3.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/libxshmfence-1.3.2.tar.xz"; + sha256 = "0vv0c7rjf6nd1afbal4c4ralallarak1v3ss3gcjdca0pibz43c7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xshmfence" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + listres = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXaw, + libXmu, + xorgproto, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "listres"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/listres-1.0.5.tar.xz"; + sha256 = "17fwfjh0xrvg7jj4h32pa8ns4hq4r11z61kh2xsqvsyjwyxh0anf"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libXaw + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + lndir = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "lndir"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/lndir-1.0.4.tar.xz"; + sha256 = "11syg5hx3f7m1d2p7zw717lryk819h6wk8h4vmapfdxvsflkfd1y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + luit = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "luit"; + version = "20230201"; + builder = ./builder.sh; + src = fetchurl { + url = "https://invisible-mirror.net/archives/luit/luit-20230201.tgz"; + sha256 = "0vy5fqp26pnrdn0hmgnmar6m2y06syrz188jqh03vqkyphfqsapf"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + makedepend = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "makedepend"; + version = "1.0.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/makedepend-1.0.9.tar.xz"; + sha256 = "1m1dg32z22fw9shg0wsxw7dvdcnfm16gq9qxpkfxixpzb6vdxl4j"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + mkfontscale = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libfontenc, + freetype, + xorgproto, + zlib, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "mkfontscale"; + version = "1.2.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/mkfontscale-1.2.3.tar.xz"; + sha256 = "0pp7dyfrrkrqxslk9q8660k0h4swaqlixsnnph2fxb7i8k1ws899"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libfontenc + freetype + xorgproto + zlib + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + oclock = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxkbfile, + libX11, + libXext, + libXmu, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "oclock"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/oclock-1.0.5.tar.xz"; + sha256 = "0p4nqfrhy1srqqzbamp7afa54clbydbhprd1nxbd12g8anb9f2cg"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libxkbfile + libX11 + libXext + libXmu + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + sessreg = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "sessreg"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/sessreg-1.1.3.tar.xz"; + sha256 = "1hmc9wsfgl2wmy0kccwa4brxbv02w5wiz5hrz72dsz87x1fwsah2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ xorgproto ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + setxkbmap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxkbfile, + libXrandr, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "setxkbmap"; + version = "1.3.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/setxkbmap-1.3.4.tar.xz"; + sha256 = "1pps0x66512y3f7v6xgnb6gjbllsgi4q5zxmjcdiv60fsia8b3dy"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxkbfile + libXrandr + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + smproxy = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + libSM, + libXmu, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "smproxy"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/smproxy-1.0.7.tar.xz"; + sha256 = "01gkz4n2pfxiklzzx3ghnm9shx3626jcriwvrs3pvawxrhvr5aaa"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libICE + libSM + libXmu + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + transset = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "transset"; + version = "1.0.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/transset-1.0.3.tar.xz"; + sha256 = "1zp6ldxb3h2zsr4nmkb8aj8ia8v3qvjj3w85by5xh3fxvlq8zqqz"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + twm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + libSM, + libX11, + libXext, + libXmu, + xorgproto, + libXrandr, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "twm"; + version = "1.0.12"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/twm-1.0.12.tar.xz"; + sha256 = "1r5gfv1gvcjn39v7n6znpnvifwhlw2zf8gfrxq8vph84vva03wma"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libICE + libSM + libX11 + libXext + libXmu + xorgproto + libXrandr + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + utilmacros = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "util-macros"; + version = "1.20.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/util-macros-1.20.0.tar.xz"; + sha256 = "1nrh8kmbix5pspva6y7h14fj97xdvxqc6fr3zysfswg9vdib51hb"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-macros" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + viewres = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXaw, + libXmu, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "viewres"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/viewres-1.0.7.tar.xz"; + sha256 = "0a66mz27gcsxd1qq1ij0w8dv4wjvszgbf5ygw5dga40sbc464nmi"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libXaw + libXmu + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + x11perf = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + libXft, + libXmu, + xorgproto, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "x11perf"; + version = "1.6.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2"; + sha256 = "0d3wh6z6znwhfdiv0zaggfj0xgish98xa10yy76b9517zj7hnzhw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + libXft + libXmu + xorgproto + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xauth = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXau, + libXext, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xauth"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xauth-1.1.3.tar.xz"; + sha256 = "0cwxzq7lv932rcfad3baanr541qcjjdhyrhxy0bzjcp3pac581z7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXau + libXext + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xbacklight = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxcb, + xcbutil, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xbacklight"; + version = "1.2.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2"; + sha256 = "1plssg0s3pbslg6rfzxp9sx8ryvn8l32zyvc8zp9zsbsfwjg69rs"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libxcb + xcbutil + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xbitmaps = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xbitmaps"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/data/xbitmaps-1.1.3.tar.xz"; + sha256 = "0yhgrllia3lbqx9b21w31w4sppx1a9ggrk62hrys2ckqi1aasv5d"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xbitmaps" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcalc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcalc"; + version = "1.1.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xcalc-1.1.2.tar.xz"; + sha256 = "1m0wzhjvc88kmx12ykdml5rqlz9h2iki9mkfdngji53y8nhxyy45"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbproto = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + python3, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-proto"; + version = "1.16.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/proto/xcb-proto-1.16.0.tar.xz"; + sha256 = "06aij66rs8g378wg8swd7b3g73wqrrbbwl8shhnsi29amm41hnm7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + python3 + ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-proto" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutil = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util"; + version = "0.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-0.4.1.tar.xz"; + sha256 = "04p54r0zjc44fpw1hdy4rhygv37sx2vr2lllxjihykz5v2xkpgjs"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xcb-atom" + "xcb-aux" + "xcb-event" + "xcb-util" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilcursor = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xcbutilimage, + xcbutilrenderutil, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-cursor"; + version = "0.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/xcb-util-cursor-0.1.5.tar.xz"; + sha256 = "0mrwcrm6djbd5zdvqb5v4wr87bzawnaacyqwwhfghw09ssq9kbqc"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xcbutilimage + xcbutilrenderutil + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-cursor" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilerrors = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xcbproto, + xorgproto, + m4, + python3, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-errors"; + version = "1.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-errors-1.0.1.tar.xz"; + sha256 = "0mzkh3xj1n690dw8hrdhyjykd71ib0ls9n5cgf9asna2k1xwha2n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + python3 + ]; + buildInputs = [ + gperf + libxcb + xcbproto + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-errors" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilimage = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xcbutil, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-image"; + version = "0.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-image-0.4.1.tar.xz"; + sha256 = "0g8dwknrlz96k176qxh8ar84x9kpppci9b978zyp24nvvbjqxbfc"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xcbutil + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-image" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilkeysyms = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-keysyms"; + version = "0.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-keysyms-0.4.1.tar.xz"; + sha256 = "0f66snk179hmp8ppgv1zp9y7pl1vzn52znpikm1fsaj1ji90l9kw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-keysyms" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilrenderutil = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-renderutil"; + version = "0.3.10"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.10.tar.xz"; + sha256 = "1fh4dnlwlqyccrhmmwlv082a7mxc7ss7vmzmp7xxp39dwbqd859y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xcb-renderutil" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcbutilwm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + gperf, + libxcb, + xorgproto, + m4, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcb-util-wm"; + version = "0.4.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xcb/xcb-util-wm-0.4.2.tar.xz"; + sha256 = "02wai17mxfbvlnj4l4bjbvah97rccdivzvd7mrznhr32s0hlxhv2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + m4 + ]; + buildInputs = [ + gperf + libxcb + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "xcb-ewmh" + "xcb-icccm" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xclock = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXft, + libxkbfile, + libXmu, + xorgproto, + libXrender, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xclock"; + version = "1.1.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xclock-1.1.1.tar.xz"; + sha256 = "0b3l1zwz2b1cn46f8pd480b835j9anadf929vqpll107iyzylz6z"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXft + libxkbfile + libXmu + xorgproto + libXrender + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcmsdb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcmsdb"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xcmsdb-1.0.6.tar.xz"; + sha256 = "0magrza0i5qwpf0zlpqjychp3bzxgdw3p5v616xl4nbxag2fwxrw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libX11 ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcompmgr = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXcomposite, + libXdamage, + libXext, + libXfixes, + xorgproto, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcompmgr"; + version = "1.1.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xcompmgr-1.1.9.tar.xz"; + sha256 = "1w564walyqi3bqnnl8l2d949v64smipdw2q8lnrixl3jhrlvcxa8"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libXcomposite + libXdamage + libXext + libXfixes + xorgproto + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xconsole = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXmu, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xconsole"; + version = "1.0.8"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xconsole-1.0.8.tar.xz"; + sha256 = "195vhqjrzjf4kkzmy0kx50n1bv2kj9fg7mi18mm2w3p4d3q6ljkv"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcursorgen = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libpng, + libX11, + libXcursor, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcursorgen"; + version = "1.0.8"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xcursorgen-1.0.8.tar.xz"; + sha256 = "16yc82k4vp7icmf9247z4v38r65pdf032mrpzxj5wa2fggi3rcrj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libpng + libX11 + libXcursor + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xcursorthemes = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXcursor, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xcursor-themes"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/data/xcursor-themes-1.0.7.tar.xz"; + sha256 = "1j3qfga5llp8g702n7mivvdvfjk7agsgnbglbfh99n13i3sfiflm"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libXcursor ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xdm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXau, + libXaw, + libXdmcp, + libXext, + libXft, + libXinerama, + libXmu, + libXpm, + xorgproto, + libXrender, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xdm"; + version = "1.1.14"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xdm-1.1.14.tar.xz"; + sha256 = "0prx5h0xmv08yvm0axzh74a90cyc1s1dcv98jpjwjzkr6rbg56ry"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXau + libXaw + libXdmcp + libXext + libXft + libXinerama + libXmu + libXpm + xorgproto + libXrender + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xdpyinfo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libdmx, + libX11, + libxcb, + libXcomposite, + libXext, + libXi, + libXinerama, + xorgproto, + libXrender, + libXtst, + libXxf86dga, + libXxf86misc, + libXxf86vm, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xdpyinfo"; + version = "1.3.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xdpyinfo-1.3.4.tar.xz"; + sha256 = "0aw2yhx4ys22231yihkzhnw9jsyzksl4yyf3sx0689npvf0sbbd8"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libdmx + libX11 + libxcb + libXcomposite + libXext + libXi + libXinerama + xorgproto + libXrender + libXtst + libXxf86dga + libXxf86misc + libXxf86vm + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xdriinfo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libGL, + xorgproto, + libX11, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xdriinfo"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xdriinfo-1.0.7.tar.xz"; + sha256 = "0d7p9fj3znq0av9pjgi2kphqaz5w7b9hxlz63zbxs69bknp8p0yx"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libGL + xorgproto + libX11 + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xev = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + libXrandr, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xev"; + version = "1.2.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xev-1.2.5.tar.xz"; + sha256 = "1hbfwcnbyz4w13fbhnghl0vdhf6w9f9pb7jgjwrhykkii51ilin9"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + libXrandr + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xeyes = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxcb, + libXext, + libXi, + libXmu, + xorgproto, + libXrender, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xeyes"; + version = "1.3.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xeyes-1.3.0.tar.xz"; + sha256 = "08rhfp5xlmdbyxkvxhgjxdn6vwzrbrjyd7jkk8b7wi1kpw0ccl09"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxcb + libXext + libXi + libXmu + xorgproto + libXrender + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputevdev = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libevdev, + udev, + mtdev, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-evdev"; + version = "2.10.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2"; + sha256 = "1h1y0fwnawlp4yc5llr1l7hwfcxxpln2fxhy6arcf6w6h4z0f9l7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libevdev + udev + mtdev + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-evdev" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputjoystick = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-joystick"; + version = "1.6.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-joystick-1.6.4.tar.xz"; + sha256 = "1lnc6cvrg81chb2hj3jphgx7crr4ab8wn60mn8f9nsdwza2w8plh"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-joystick" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputkeyboard = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-keyboard"; + version = "2.0.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-keyboard-2.0.0.tar.xz"; + sha256 = "1fgya6a0pzsb8ynp2qhx3bqg6nfc4y2sw9wmk7zd8pqplbqzsrij"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputlibinput = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libinput, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-libinput"; + version = "1.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-libinput-1.4.0.tar.xz"; + sha256 = "1673ydfrvfqd4inz3vx1qyxa0mhr0f4bi0r7mrcmpisxi76i8g9s"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libinput + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-libinput" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputmouse = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-mouse"; + version = "1.9.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-mouse-1.9.5.tar.xz"; + sha256 = "0s4rzp7aqpbqm4474hg4bz7i7vg3ir93ck2q12if4lj3nklqmpjg"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-mouse" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputsynaptics = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libevdev, + libX11, + libXi, + xorgserver, + libXtst, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-synaptics"; + version = "1.9.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-synaptics-1.9.2.tar.xz"; + sha256 = "0f1cjs9haxhjybfh2lh579s15i2q0q19whynpda3giizj6mlmymq"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libevdev + libX11 + libXi + xorgserver + libXtst + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-synaptics" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputvmmouse = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + udev, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-vmmouse"; + version = "13.2.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-vmmouse-13.2.0.tar.xz"; + sha256 = "1f1rlgp1rpsan8k4ax3pzhl1hgmfn135r31m80pjxw5q19c7gw2n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + udev + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86inputvoid = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgserver, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-input-void"; + version = "1.4.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-input-void-1.4.2.tar.xz"; + sha256 = "11bqy2djgb82c1g8ylpfwp3wjw4x83afi8mqyn5fvqp03kidh4d2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgserver + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoamdgpu = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + mesa, + libGL, + libdrm, + udev, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-amdgpu"; + version = "23.0.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-amdgpu-23.0.0.tar.xz"; + sha256 = "0qf0kjh6pww5abxmqa4c9sfa2qq1hq4p8qcgqpfd1kpkcvmg012g"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + mesa + libGL + libdrm + udev + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoapm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-apm"; + version = "1.3.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2"; + sha256 = "0znwqfc8abkiha98an8hxsngnz96z6cd976bc4bsvz1km6wqk0c0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoark = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-ark"; + version = "0.7.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-ark-0.7.6.tar.xz"; + sha256 = "0p88blr3zgy47jc4aqivc6ypj4zq9pad1cl70wwz9xig29w9xk2s"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoast = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-ast"; + version = "1.1.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-ast-1.1.6.tar.xz"; + sha256 = "1bqdjcxi8fj48821322djdqnrla2i48wqckdf364zagrqyllyxbm"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoati = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + mesa, + libGL, + libdrm, + udev, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-ati"; + version = "22.0.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-ati-22.0.0.tar.xz"; + sha256 = "0vdznwx78alhbb05paw2xd65hcsila2kqflwwnbpq8pnsdbbpj68"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + mesa + libGL + libdrm + udev + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videochips = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-chips"; + version = "1.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2"; + sha256 = "1gqzy7q9v824m7hqkbbmncxg082zm0d4mafgc97c4skyiwgf9wq7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videocirrus = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-cirrus"; + version = "1.6.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-cirrus-1.6.0.tar.xz"; + sha256 = "00b468w01hqjczfqz42v2vqhb14db4wazcqi1w29lgfyhc0gmwqf"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videodummy = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-dummy"; + version = "0.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-dummy-0.4.1.tar.xz"; + sha256 = "1byzsdcnlnzvkcqrzaajzc3nzm7y7ydrk9bjr4x9lx8gznkj069m"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videofbdev = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-fbdev"; + version = "0.5.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2"; + sha256 = "16a66zr0l1lmssa07i3rzy07djxnb45c17ks8c71h8l06xgxihyw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videogeode = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-geode"; + version = "2.11.21"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-geode-2.11.21.tar.xz"; + sha256 = "07lzbyxss0m5i4j58z43zri2baawci9q1ykv1g828wqi2hzsqml2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoglide = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-glide"; + version = "1.2.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2"; + sha256 = "1vaav6kx4n00q4fawgqnjmbdkppl0dir2dkrj4ad372mxrvl9c4y"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoglint = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libpciaccess, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-glint"; + version = "1.2.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2"; + sha256 = "1lkpspvrvrp9s539bhfdjfh4andaqyk63l6zjn8m3km95smk6a45"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libpciaccess + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoi128 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-i128"; + version = "1.4.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-i128-1.4.1.tar.xz"; + sha256 = "0imwmkam09wpp3z3iaw9i4hysxicrrax7i3p0l2glgp3zw9var3h"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoi740 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-i740"; + version = "1.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2"; + sha256 = "0l3s1m95bdsg4gki943qipq8agswbb84dzcflpxa3vlckwhh3r26"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videointel = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + cairo, + xorgproto, + libdrm, + libpng, + udev, + libpciaccess, + libX11, + xcbutil, + libxcb, + libXcursor, + libXdamage, + libXext, + libXfixes, + xorgserver, + libXrandr, + libXrender, + libxshmfence, + libXtst, + libXvMC, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-intel"; + version = "2.99.917"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2"; + sha256 = "1jb7jspmzidfixbc0gghyjmnmpqv85i7pi13l4h2hn2ml3p83dq0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + cairo + xorgproto + libdrm + libpng + udev + libpciaccess + libX11 + xcbutil + libxcb + libXcursor + libXdamage + libXext + libXfixes + xorgserver + libXrandr + libXrender + libxshmfence + libXtst + libXvMC + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videomga = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-mga"; + version = "2.0.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-mga-2.0.1.tar.xz"; + sha256 = "1aq3aqh2yg09gy864kkshfx5pjl5w05jdz97bx5bnrbrhdq3p8r7"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoneomagic = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-neomagic"; + version = "1.3.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-neomagic-1.3.1.tar.xz"; + sha256 = "153lzhq0vahg3875wi8hl9rf4sgizs41zmfg6hpfjw99qdzaq7xn"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videonewport = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-newport"; + version = "0.2.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2"; + sha256 = "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videonouveau = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + udev, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-nouveau"; + version = "3ee7cbca8f9144a3bb5be7f71ce70558f548d268"; + builder = ./builder.sh; + src = fetchurl { + url = "https://gitlab.freedesktop.org/xorg/driver/xf86-video-nouveau/-/archive/3ee7cbca8f9144a3bb5be7f71ce70558f548d268/xf86-video-nouveau-3ee7cbca8f9144a3bb5be7f71ce70558f548d268.tar.bz2"; + sha256 = "0rhs3z274jdzd82pcsl25xn8hmw6i4cxs2kwfnphpfhxbbkiq7wl"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + udev + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videonv = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-nv"; + version = "2.1.22"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-nv-2.1.22.tar.xz"; + sha256 = "126j60dgnmiahjk5mxbnaav23hv7nvxvh49vhn6qg2f3nlnr6632"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoomap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-omap"; + version = "0.4.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2"; + sha256 = "0nmbrx6913dc724y8wj2p6vqfbj5zdjfmsl037v627jj0whx9rwk"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoopenchrome = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + udev, + libpciaccess, + libX11, + libXext, + xorgserver, + libXvMC, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-openchrome"; + version = "0.6.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2"; + sha256 = "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + udev + libpciaccess + libX11 + libXext + xorgserver + libXvMC + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoqxl = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + udev, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-qxl"; + version = "0.1.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-qxl-0.1.6.tar.xz"; + sha256 = "0pwncx60r1xxk8kpp9a46ga5h7k7hjqf14726v0gra27vdc9blra"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + udev + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videor128 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-r128"; + version = "6.12.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-r128-6.12.1.tar.xz"; + sha256 = "0hf7h54wxgs8njavp0kgadjq1787fhbd588j7pj685hz2wmkq0kx"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videorendition = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-rendition"; + version = "4.2.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-rendition-4.2.7.tar.bz2"; + sha256 = "0yzqcdfrnnyaaaa76d4hpwycpq4x2j8qvg9m4q19lj4xbicwc4cm"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videos3virge = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-s3virge"; + version = "1.11.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-s3virge-1.11.1.tar.xz"; + sha256 = "1qzfcq3rlpfdb6qxz8hrp9py1q11vyzl4iqxip1vpgfnfn83vl6f"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosavage = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-savage"; + version = "2.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-savage-2.4.0.tar.xz"; + sha256 = "1z81nqwaqqy9sc7pywkw4q9mijpvjx9w8xxr7d13k2nhzlng0v5k"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosiliconmotion = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-siliconmotion"; + version = "1.7.10"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.10.tar.xz"; + sha256 = "1h4g2mqxshaxii416ldw0aqy6cxnsbnzayfin51xm2526dw9q18n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosis = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-sis"; + version = "0.12.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-sis-0.12.0.tar.gz"; + sha256 = "00j7i2r81496w27rf4nq9gc66n6nizp3fi7nnywrxs81j1j3pk4v"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosisusb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-sisusb"; + version = "0.9.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2"; + sha256 = "090lfs3hjz3cjd016v5dybmcsigj6ffvjdhdsqv13k90p4b08h7l"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosuncg6 = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-suncg6"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-suncg6-1.1.3.tar.xz"; + sha256 = "16c3g5m0f5y9nx2x6w9jdzbs9yr6xhq31j37dcffxbsskmfxq57w"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosunffb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-sunffb"; + version = "1.2.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-sunffb-1.2.3.tar.xz"; + sha256 = "0pf4ddh09ww7sxpzs5gr9pxh3gdwkg3f54067cp802nkw1n8vypi"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videosunleo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-sunleo"; + version = "1.2.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-sunleo-1.2.3.tar.xz"; + sha256 = "1px670aiqyzddl1nz3xx1lmri39irajrqw6dskirs2a64jgp3dpc"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videotdfx = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-tdfx"; + version = "1.5.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-tdfx-1.5.0.tar.bz2"; + sha256 = "0qc5wzwf1n65si9rc37bh224pzahh7gp67vfimbxs0b9yvhq0i9g"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videotga = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-tga"; + version = "1.2.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2"; + sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videotrident = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-trident"; + version = "1.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-trident-1.4.0.tar.xz"; + sha256 = "16qqn1brz50mwcy42zi1wsw9af56qadsaaiwm9hn1p6plyf22xkz"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videov4l = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-v4l"; + version = "0.3.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2"; + sha256 = "084x4p4avy72mgm2vnnvkicw3419i6pp3wxik8zqh7gmq4xv5z75"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videovboxvideo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-vboxvideo"; + version = "1.0.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2"; + sha256 = "195z1js3i51qgxvhfw4bxb4dw3jcrrx2ynpm2y3475dypjzs7dkz"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videovesa = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-vesa"; + version = "2.6.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-vesa-2.6.0.tar.xz"; + sha256 = "1ccvaigb1f1kz8nxxjmkfn598nabd92p16rx1g35kxm8n5qjf20h"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videovmware = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + udev, + libpciaccess, + libX11, + libXext, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-vmware"; + version = "13.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-vmware-13.4.0.tar.xz"; + sha256 = "06mq7spifsrpbwq9b8kn2cn61xq6mpkq6lvh4qi6xk2yxpjixlxf"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + udev + libpciaccess + libX11 + libXext + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videovoodoo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-voodoo"; + version = "1.2.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-voodoo-1.2.6.tar.xz"; + sha256 = "00pn5826aazsdipf7ny03s1lypzid31fmswl8y2hrgf07bq76ab2"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videowsfb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgserver, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-wsfb"; + version = "0.4.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2"; + sha256 = "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgserver + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xf86videoxgi = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libdrm, + libpciaccess, + xorgserver, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xf86-video-xgi"; + version = "1.6.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/driver/xf86-video-xgi-1.6.1.tar.bz2"; + sha256 = "10xd2vah0pnpw5spn40n4p95mpmgvdkly4i1cz51imnlfsw7g8si"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libdrm + libpciaccess + xorgserver + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xfd = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxkbfile, + fontconfig, + libXaw, + libXft, + libXmu, + xorgproto, + libXrender, + libXt, + gettext, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xfd"; + version = "1.1.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xfd-1.1.4.tar.xz"; + sha256 = "1zbnj0z28dx2rm2h7pjwcz7z1jnl28gz0v9xn3hs2igxcvxhyiym"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + gettext + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libxkbfile + fontconfig + libXaw + libXft + libXmu + xorgproto + libXrender + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xfontsel = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXmu, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xfontsel"; + version = "1.1.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xfontsel-1.1.0.tar.xz"; + sha256 = "1d6ifx6sw97mmr00bhfakyx2f94w14yswxc68sw49zmvawrjq18p"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xfs = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXfont2, + xorgproto, + xtrans, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xfs"; + version = "1.2.1"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xfs-1.2.1.tar.xz"; + sha256 = "1rn1l76z4l133491wb1klixbwb8az5cnrzwx37fb3vnpmplc72ix"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libXfont2 + xorgproto + xtrans + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xfsinfo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libFS, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xfsinfo"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xfsinfo-1.0.7.tar.xz"; + sha256 = "0x48p4hk0lds2s8nwzgfl616r99s28ydx02zs7p1fxxs3i2wmwwj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libFS + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xgamma = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + libXxf86vm, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xgamma"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xgamma-1.0.7.tar.xz"; + sha256 = "13xw2fqp9cs7xj3nqi8khqxv81rk0dd8khp59xgs2lw9bbldly8w"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + libXxf86vm + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xgc = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXaw, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xgc"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xgc-1.0.6.tar.xz"; + sha256 = "0h5jm2946f5m1g8a3qh1c01h3zrsjjivi09vi9rmij2frvdvp1vv"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libXaw + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xhost = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXau, + libXmu, + xorgproto, + gettext, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xhost"; + version = "1.0.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xhost-1.0.9.tar.xz"; + sha256 = "0ib66h78ykc4zki4arh8hkcsgk1mk8yyy0ay5sdb2d908qqvb1pa"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + gettext + ]; + buildInputs = [ + libX11 + libXau + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xinit = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xinit"; + version = "1.4.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xinit-1.4.2.tar.xz"; + sha256 = "08qz6f6yhis6jdcp6hzspql6ib9a9zp0ddhhbac1b7zg4a6xrn5p"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xinput = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXext, + libXi, + libXinerama, + libXrandr, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xinput"; + version = "1.6.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xinput-1.6.4.tar.xz"; + sha256 = "1j2pf28c54apr56v1fmvprp657n6x4sdrv8f24rx3138cl6x015d"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXext + libXi + libXinerama + libXrandr + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkbcomp = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxkbfile, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkbcomp"; + version = "1.4.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xkbcomp-1.4.7.tar.xz"; + sha256 = "0xqzz209m9i43jbyrf2lh4xdbyhzzzn9mis2f2c32kplwla82a0a"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxkbfile + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xkbcomp" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkbevd = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxkbfile, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkbevd"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xkbevd-1.1.5.tar.xz"; + sha256 = "0swjhk33fp15060hhzycmk288ys51wwm6l7p9xy4blz95mq7nd9q"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxkbfile + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkbprint = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxkbfile, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkbprint"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xkbprint-1.0.6.tar.xz"; + sha256 = "1c57kb8d8cbf720n9bcjhhaqpk08lac0sk4l0jp8j0mryw299k4r"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxkbfile + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkbutils = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + libX11, + libXaw, + libXt, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkbutils"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xkbutils-1.0.6.tar.xz"; + sha256 = "0pp2bsksblvvw0fx667k2bl5sm0baj7pp2cjvq0vmk093vpbp8ii"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + libX11 + libXaw + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkeyboardconfig = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkeyboard-config"; + version = "2.41"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.41.tar.xz"; + sha256 = "13vjvyg1fjvsqzqkpxzigvv94v154mcb2gba4d80spi9aywxcb7h"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xkill = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xkill"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xkill-1.0.6.tar.xz"; + sha256 = "01xrmqw498hqlhn6l1sq89s31k6sjf6xlij6a08pnrvmqiwama75"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xload = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXmu, + xorgproto, + libXt, + gettext, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xload"; + version = "1.1.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xload-1.1.4.tar.xz"; + sha256 = "0c9h6w4bd1q3k4cy8v56sc3v9cg94cpg3xr057sf096v428vjil3"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + gettext + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXmu + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xlsatoms = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxcb, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xlsatoms"; + version = "1.1.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xlsatoms-1.1.4.tar.xz"; + sha256 = "1dviriynilkw0jwl0s2h8y95pwh8cxj95cnmllkd6rn0args3gzl"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libxcb ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xlsclients = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxcb, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xlsclients"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xlsclients-1.1.5.tar.xz"; + sha256 = "1qxsav5gicsfwv1dqlcfpj47vy9i30i7iysrfx5aql02wxbyxfk8"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ libxcb ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xlsfonts = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xlsfonts"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xlsfonts-1.0.7.tar.xz"; + sha256 = "0r84wp4352hbfcaybqp2khipm40293byvrfyrlslrd37m52njwkv"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xmag = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXaw, + libXmu, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xmag"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xmag-1.0.7.tar.xz"; + sha256 = "0qblrqrhxml2asgbck53a1v7c4y7ap7jcyqjg500h1i7bb63d680"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libX11 + libXaw + libXmu + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xmessage = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXaw, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xmessage"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xmessage-1.0.6.tar.xz"; + sha256 = "04kahkk3kd6p1xlzf0jwfgnrb5z2r3y55q3p12b6n59py52wbsnj"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libXaw + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xmodmap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xmodmap"; + version = "1.0.11"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xmodmap-1.0.11.tar.xz"; + sha256 = "10byhzdfv1xckqc3d2v52xg1ggxn5j806x4450l3ig5hyxl82bws"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xmore = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXaw, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xmore"; + version = "1.0.4"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xmore-1.0.4.tar.xz"; + sha256 = "16havfffngvx5kc9lam8rhsdfabsj1rsv4g49z346knyq7dn1dby"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libXaw + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xorgcffiles = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xorg-cf-files"; + version = "1.0.8"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/util/xorg-cf-files-1.0.8.tar.xz"; + sha256 = "1f8primgb6qw3zy7plbsj4a1kdhdqb04xpdys520zaygxxfra23l"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xorgdocs = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xorg-docs"; + version = "1.7.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/doc/xorg-docs-1.7.2.tar.gz"; + sha256 = "0xrncq9dkl6h03gfsj89zagi2vkhgvcgy8l6pjjva350d24027hc"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xorgproto = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libXt, + python3, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xorgproto"; + version = "2023.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/proto/xorgproto-2023.2.tar.xz"; + sha256 = "0b4c27aq25w1fccks49p020avf9jzh75kaq5qwnww51bp1yvq7xn"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + python3 + ]; + buildInputs = [ libXt ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ + "applewmproto" + "bigreqsproto" + "compositeproto" + "damageproto" + "dmxproto" + "dpmsproto" + "dri2proto" + "dri3proto" + "evieproto" + "fixesproto" + "fontcacheproto" + "fontsproto" + "glproto" + "inputproto" + "kbproto" + "lg3dproto" + "presentproto" + "printproto" + "randrproto" + "recordproto" + "renderproto" + "resourceproto" + "scrnsaverproto" + "trapproto" + "videoproto" + "windowswmproto" + "xcalibrateproto" + "xcmiscproto" + "xextproto" + "xf86bigfontproto" + "xf86dgaproto" + "xf86driproto" + "xf86miscproto" + "xf86rushproto" + "xf86vidmodeproto" + "xineramaproto" + "xproto" + "xproxymngproto" + "xwaylandproto" + ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xorgserver = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + xorgproto, + openssl, + libX11, + libXau, + libxcb, + xcbutil, + xcbutilwm, + xcbutilimage, + xcbutilkeysyms, + xcbutilrenderutil, + libXdmcp, + libXfixes, + libxkbfile, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xorg-server"; + version = "21.1.13"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/xserver/xorg-server-21.1.13.tar.xz"; + sha256 = "033lvjihidc68v08izrr63va8jhkfmzcjg0d6rm26wizjkah4nml"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + xorgproto + openssl + libX11 + libXau + libxcb + xcbutil + xcbutilwm + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + libXdmcp + libXfixes + libxkbfile + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-server" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xorgsgmldoctools = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xorg-sgml-doctools"; + version = "1.12"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/doc/xorg-sgml-doctools-1.12.tar.gz"; + sha256 = "1nsb8kn6nipc09yv19wdpd94pav6hx7xby0psmmdvnm6wqlh6nlq"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xorg-sgml-doctools" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xpr = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xpr"; + version = "1.1.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xpr-1.1.0.tar.xz"; + sha256 = "1iaphm96kha6bzz34cj82r2lp5hrdpqwdca04iij4rinflab3fx0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xprop = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xprop"; + version = "1.2.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xprop-1.2.7.tar.xz"; + sha256 = "0pw2iv7dcy2xq5fh3427nx88pjj9d9rry3930qj1c6mricaf6dj4"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xrandr = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + libXrandr, + libXrender, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xrandr"; + version = "1.5.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xrandr-1.5.2.tar.xz"; + sha256 = "0h7jy4c5zgrr06fimnnxhy5ba782b1n4aik29g6bln4h1mwy9gn8"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + libXrandr + libXrender + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xrdb = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xrdb"; + version = "1.2.2"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xrdb-1.2.2.tar.xz"; + sha256 = "1x1ka0zbcw66a06jvsy92bvnsj9vxbvnq1hbn1az4f0v4fmzrx9i"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xrefresh = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xrefresh"; + version = "1.0.7"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xrefresh-1.0.7.tar.xz"; + sha256 = "07hvfw3rdv8mzqmm9ax5z8kw544insdd152f2z8868ply8sxdwd9"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xset = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXext, + libXmu, + xorgproto, + libXxf86misc, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xset"; + version = "1.2.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xset-1.2.5.tar.xz"; + sha256 = "0bsyyx3k32k9vpb8x3ks7hlfr03nm0i14fv3cg6n4f2vcdajsscz"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXext + libXmu + xorgproto + libXxf86misc + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xsetroot = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xbitmaps, + libXcursor, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xsetroot"; + version = "1.1.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xsetroot-1.1.3.tar.xz"; + sha256 = "1l9qcv4mldj70slnmfg56nv7yh9j9ca1x795bl26whmlkrdb90b0"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xbitmaps + libXcursor + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xsm = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libICE, + libSM, + libX11, + libXaw, + xorgproto, + libXt, + wrapWithXFileSearchPathHook, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xsm"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xsm-1.0.5.tar.xz"; + sha256 = "0bgvwvj99yqivy4dyxrfa0anwvh5d634gz0w43zy8cn17ymgsc4w"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ + pkg-config + wrapWithXFileSearchPathHook + ]; + buildInputs = [ + libICE + libSM + libX11 + libXaw + xorgproto + libXt + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xstdcmap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXmu, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xstdcmap"; + version = "1.0.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xstdcmap-1.0.5.tar.xz"; + sha256 = "1061b95j08mlwpadyilmpbzfgmm08z69k8nrkbn9k11rg7ilfn1n"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXmu + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xtrans = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xtrans"; + version = "1.5.0"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/lib/xtrans-1.5.0.tar.xz"; + sha256 = "1gdiiw64p279a1x033w7i002myry9v75pwmc1gsdpzbbd41vg90v"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ "xtrans" ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xtrap = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libXt, + libXTrap, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xtrap"; + version = "1.0.3"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2"; + sha256 = "0sqm4j1zflk1s94iq4waa70hna1xcys88v9a70w0vdw66czhvj2j"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libXt + libXTrap + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xvinfo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + libXv, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xvinfo"; + version = "1.1.5"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xvinfo-1.1.5.tar.xz"; + sha256 = "0164qpbjmxxa1rbvh6ay1iz2qnp9hl1745k9pk6195kdnbn73piy"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + libXv + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xwd = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libxkbfile, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xwd"; + version = "1.0.9"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xwd-1.0.9.tar.xz"; + sha256 = "0gxx3y9zlh13jgwkayxljm6i58ng8jc1xzqv2g8s7d3yjj21n4nw"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libxkbfile + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xwininfo = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + libxcb, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xwininfo"; + version = "1.1.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xwininfo-1.1.6.tar.xz"; + sha256 = "0gr5m4lyvkil3cl63zf0sw7bq5qgraqrnvddk6xgk3a42xy8j61m"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + libxcb + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; + + # THIS IS A GENERATED FILE. DO NOT EDIT! + xwud = callPackage ( + { + stdenv, + pkg-config, + fetchurl, + libX11, + xorgproto, + testers, + }: + stdenv.mkDerivation (finalAttrs: { + pname = "xwud"; + version = "1.0.6"; + builder = ./builder.sh; + src = fetchurl { + url = "mirror://xorg/individual/app/xwud-1.0.6.tar.xz"; + sha256 = "1zhsih1l3x1038fi1wi9npvfnn8j7580ca73saixjg5sbv8qq134"; + }; + hardeningDisable = [ + "bindnow" + "relro" + ]; + strictDeps = true; + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libX11 + xorgproto + ]; + passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + meta = { + pkgConfigModules = [ ]; + platforms = lib.platforms.unix; + }; + }) + ) { }; } diff --git a/pkgs/by-name/xo/xorg/overrides.nix b/pkgs/by-name/xo/xorg/overrides.nix index 6cc04f1..742491e 100644 --- a/pkgs/by-name/xo/xorg/overrides.nix +++ b/pkgs/by-name/xo/xorg/overrides.nix @@ -1,71 +1,140 @@ -{ callPackage, - lib, stdenv, makeWrapper, fetchurl, fetchpatch, fetchFromGitLab, buildPackages, - automake, autoconf, libiconv, libtool, intltool, gettext, python3, perl, - freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge, - libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm, netbsd, +{ + callPackage, + lib, + stdenv, + makeWrapper, + fetchurl, + fetchpatch, + fetchFromGitLab, + buildPackages, + automake, + autoconf, + libiconv, + libtool, + intltool, + gettext, + python3, + perl, + freetype, + tradcpp, + fontconfig, + meson, + ninja, + ed, + fontforge, + libGL, + spice-protocol, + zlib, + libGLU, + dbus, + libunwind, + libdrm, + netbsd, ncompress, - mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook, - mcpp, libepoxy, openssl, pkg-config, llvm, libxslt, libxcrypt, hwdata, - ApplicationServices, Carbon, Cocoa, Xplugin, - xorg, windows + mesa, + udev, + bootstrap_cmds, + bison, + flex, + clangStdenv, + autoreconfHook, + mcpp, + libepoxy, + openssl, + pkg-config, + llvm, + libxslt, + libxcrypt, + hwdata, + ApplicationServices, + Carbon, + Cocoa, + Xplugin, + xorg, + windows, }: let inherit (stdenv) isDarwin; - malloc0ReturnsNullCrossFlag = lib.optional - (stdenv.hostPlatform != stdenv.buildPlatform) - "--enable-malloc0returnsnull"; + malloc0ReturnsNullCrossFlag = lib.optional ( + stdenv.hostPlatform != stdenv.buildPlatform + ) "--enable-malloc0returnsnull"; - addMainProgram = pkg: { mainProgram ? pkg.pname }: pkg.overrideAttrs (attrs: { - meta = attrs.meta // { inherit mainProgram; }; - }); + addMainProgram = + pkg: + { + mainProgram ? pkg.pname, + }: + pkg.overrideAttrs (attrs: { + meta = attrs.meta // { + inherit mainProgram; + }; + }); - brokenOnDarwin = pkg: pkg.overrideAttrs (attrs: { - meta = attrs.meta // { broken = isDarwin; }; - }); + brokenOnDarwin = + pkg: + pkg.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = isDarwin; + }; + }); in self: super: { - wrapWithXFileSearchPathHook = callPackage ({ makeBinaryWrapper, makeSetupHook, writeScript }: makeSetupHook { - name = "wrapWithXFileSearchPathHook"; - propagatedBuildInputs = [ makeBinaryWrapper ]; - } (writeScript "wrapWithXFileSearchPathHook.sh" '' - wrapWithXFileSearchPath() { - paths=( - "$out/share/X11/%T/%N" - "$out/include/X11/%T/%N" - "${xorg.xbitmaps}/include/X11/%T/%N" - ) - for exe in $out/bin/*; do - wrapProgram "$exe" \ - --suffix XFILESEARCHPATH : $(IFS=:; echo "''${paths[*]}") - done + wrapWithXFileSearchPathHook = callPackage ( + { + makeBinaryWrapper, + makeSetupHook, + writeScript, + }: + makeSetupHook + { + name = "wrapWithXFileSearchPathHook"; + propagatedBuildInputs = [ makeBinaryWrapper ]; } - postInstallHooks+=(wrapWithXFileSearchPath) - '')) {}; + ( + writeScript "wrapWithXFileSearchPathHook.sh" '' + wrapWithXFileSearchPath() { + paths=( + "$out/share/X11/%T/%N" + "$out/include/X11/%T/%N" + "${xorg.xbitmaps}/include/X11/%T/%N" + ) + for exe in $out/bin/*; do + wrapProgram "$exe" \ + --suffix XFILESEARCHPATH : $(IFS=:; echo "''${paths[*]}") + done + } + postInstallHooks+=(wrapWithXFileSearchPath) + '' + ) + ) { }; appres = addMainProgram super.appres { }; bdftopcf = super.bdftopcf.overrideAttrs (attrs: { buildInputs = attrs.buildInputs ++ [ xorg.xorgproto ]; - meta = attrs.meta // { mainProgram = "bdftopcf"; }; + meta = attrs.meta // { + mainProgram = "bdftopcf"; + }; }); bitmap = addMainProgram super.bitmap { }; editres = super.editres.overrideAttrs (attrs: { hardeningDisable = [ "format" ]; - meta = attrs.meta // { mainProgram = "editres"; }; + meta = attrs.meta // { + mainProgram = "editres"; + }; }); fontmiscmisc = super.fontmiscmisc.overrideAttrs (attrs: { - postInstall = - '' - ALIASFILE=${xorg.fontalias}/share/fonts/X11/misc/fonts.alias - test -f $ALIASFILE - cp $ALIASFILE $out/lib/X11/fonts/misc/fonts.alias - ''; + postInstall = '' + ALIASFILE=${xorg.fontalias}/share/fonts/X11/misc/fonts.alias + test -f $ALIASFILE + cp $ALIASFILE $out/lib/X11/fonts/misc/fonts.alias + ''; }); fonttosfnt = super.fonttosfnt.overrideAttrs (attrs: { @@ -82,27 +151,41 @@ self: super: imake = super.imake.overrideAttrs (attrs: { inherit (xorg) xorgcffiles; x11BuildHook = ./imake.sh; - patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch]; + patches = [ + ./imake.patch + ./imake-cc-wrapper-uberhack.patch + ]; setupHook = ./imake-setup-hook.sh; - CFLAGS = "-DIMAKE_COMPILETIME_CPP='\"${if stdenv.isDarwin - then "${tradcpp}/bin/cpp" - else "gcc"}\"'"; + CFLAGS = "-DIMAKE_COMPILETIME_CPP='\"${if stdenv.isDarwin then "${tradcpp}/bin/cpp" else "gcc"}\"'"; - configureFlags = attrs.configureFlags or [] ++ [ "ac_cv_path_RAWCPP=${stdenv.cc.targetPrefix}cpp" ]; + configureFlags = attrs.configureFlags or [ ] ++ [ + "ac_cv_path_RAWCPP=${stdenv.cc.targetPrefix}cpp" + ]; inherit tradcpp; - meta = attrs.meta // { mainProgram = "imake"; }; + meta = attrs.meta // { + mainProgram = "imake"; + }; }); mkfontdir = xorg.mkfontscale; libxcb = super.libxcb.overrideAttrs (attrs: { # $dev/include/xcb/xcb.h includes pthread.h - propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64_pthreads; - configureFlags = [ "--enable-xkb" "--enable-xinput" ] - ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared"; - outputs = [ "out" "dev" "man" "doc" ]; + propagatedBuildInputs = + attrs.propagatedBuildInputs or [ ] + ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64_pthreads; + configureFlags = [ + "--enable-xkb" + "--enable-xinput" + ] ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared"; + outputs = [ + "out" + "dev" + "man" + "doc" + ]; meta = attrs.meta // { pkgConfigModules = [ "xcb-composite" @@ -134,25 +217,32 @@ self: super: }; }); - libxcvt = super.libxcvt.overrideAttrs ({ meta ? {}, ... }: { - meta = meta // { - homepage = "https://gitlab.freedesktop.org/xorg/lib/libxcvt"; - mainProgram = "cvt"; - badPlatforms = meta.badPlatforms or [] ++ [ - lib.systems.inspect.platformPatterns.isStatic - ]; - }; - }); + libxcvt = super.libxcvt.overrideAttrs ( + { + meta ? { }, + ... + }: + { + meta = meta // { + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxcvt"; + mainProgram = "cvt"; + badPlatforms = meta.badPlatforms or [ ] ++ [ lib.systems.inspect.platformPatterns.isStatic ]; + }; + } + ); libX11 = super.libX11.overrideAttrs (attrs: { - outputs = [ "out" "dev" "man" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - depsBuildBuild = [ - buildPackages.stdenv.cc - ] ++ lib.optionals stdenv.hostPlatform.isStatic [ - (xorg.buildPackages.stdenv.cc.libc.static or null) + outputs = [ + "out" + "dev" + "man" ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + depsBuildBuild = + [ buildPackages.stdenv.cc ] + ++ lib.optionals stdenv.hostPlatform.isStatic [ + (xorg.buildPackages.stdenv.cc.libc.static or null) + ]; preConfigure = '' sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure ''; @@ -161,7 +251,7 @@ self: super: rm -rf $out/share/doc ''; CPP = lib.optionalString stdenv.isDarwin "clang -E -"; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.xorgproto ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.xorgproto ]; }); libAppleWM = super.libAppleWM.overrideAttrs (attrs: { @@ -172,12 +262,19 @@ self: super: }); libXau = super.libXau.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.xorgproto ]; + outputs = [ + "out" + "dev" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.xorgproto ]; }); libXdmcp = super.libXdmcp.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; meta = attrs.meta // { pkgConfigModules = [ "xdmcp" ]; }; @@ -190,48 +287,48 @@ self: super: }); libXfont = super.libXfont.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ freetype ]; # propagate link reqs. like bzip2 + outputs = [ + "out" + "dev" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ freetype ]; # propagate link reqs. like bzip2 # prevents "misaligned_stack_error_entering_dyld_stub_binder" configureFlags = lib.optional isDarwin "CFLAGS=-O0"; }); libXxf86vm = super.libXxf86vm.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + outputs = [ + "out" + "dev" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXxf86dga = super.libXxf86dga.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXxf86misc = super.libXxf86misc.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libdmx = super.libdmx.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libFS = super.libFS.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libWindowsWM = super.libWindowsWM.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); listres = addMainProgram super.listres { }; xdpyinfo = super.xdpyinfo.overrideAttrs (attrs: { - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - preConfigure = attrs.preConfigure or "" - # missing transitive dependencies - + lib.optionalString stdenv.hostPlatform.isStatic '' - export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp" - ''; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + preConfigure = + attrs.preConfigure or "" + # missing transitive dependencies + + lib.optionalString stdenv.hostPlatform.isStatic '' + export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp" + ''; meta = attrs.meta // { mainProgram = "xdpyinfo"; }; @@ -239,12 +336,19 @@ self: super: xdm = super.xdm.overrideAttrs (attrs: { buildInputs = attrs.buildInputs ++ [ libxcrypt ]; - configureFlags = attrs.configureFlags or [] ++ [ - "ac_cv_path_RAWCPP=${stdenv.cc.targetPrefix}cpp" - ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) - # checking for /dev/urandom... configure: error: cannot check for file existence when cross compiling - [ "ac_cv_file__dev_urandom=true" "ac_cv_file__dev_random=true" ]; - meta = attrs.meta // { mainProgram = "xdm"; }; + configureFlags = + attrs.configureFlags or [ ] + ++ [ "ac_cv_path_RAWCPP=${stdenv.cc.targetPrefix}cpp" ] + ++ + lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) + # checking for /dev/urandom... configure: error: cannot check for file existence when cross compiling + [ + "ac_cv_file__dev_urandom=true" + "ac_cv_file__dev_random=true" + ]; + meta = attrs.meta // { + mainProgram = "xdm"; + }; }); # Propagate some build inputs because of header file dependencies. @@ -254,13 +358,16 @@ self: super: preConfigure = '' sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure ''; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libSM ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.libSM ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; CPP = if stdenv.isDarwin then "clang -E -" else "${stdenv.cc.targetPrefix}cc -E -"; outputDoc = "devdoc"; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ + "out" + "dev" + "devdoc" + ]; }); luit = super.luit.overrideAttrs (attrs: { @@ -268,37 +375,62 @@ self: super: # Once the bug is fixed upstream, this can be removed. configureFlags = [ "--disable-selective-werror" ]; - buildInputs = attrs.buildInputs ++ [libiconv]; - meta = attrs.meta // { mainProgram = "luit"; }; + buildInputs = attrs.buildInputs ++ [ libiconv ]; + meta = attrs.meta // { + mainProgram = "luit"; + }; }); libICE = super.libICE.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; }); libXcomposite = super.libXcomposite.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libXfixes ]; + outputs = [ + "out" + "dev" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.libXfixes ]; }); libXaw = super.libXaw.overrideAttrs (attrs: { - outputs = [ "out" "dev" "devdoc" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libXmu ]; + outputs = [ + "out" + "dev" + "devdoc" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.libXmu ]; }); libXcursor = super.libXcursor.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; }); libXdamage = super.libXdamage.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; }); libXft = super.libXft.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libXrender freetype fontconfig ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + outputs = [ + "out" + "dev" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ + xorg.libXrender + freetype + fontconfig + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; # the include files need ft2build.h, and Requires.private isn't enough for us postInstall = '' @@ -310,108 +442,182 @@ self: super: }); libXext = super.libXext.overrideAttrs (attrs: { - outputs = [ "out" "dev" "man" "doc" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.xorgproto xorg.libXau ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + outputs = [ + "out" + "dev" + "man" + "doc" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ + xorg.xorgproto + xorg.libXau + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXfixes = super.libXfixes.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; }); libXi = super.libXi.overrideAttrs (attrs: { - outputs = [ "out" "dev" "man" "doc" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libXfixes xorg.libXext ]; - configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ - "xorg_cv_malloc0_returns_null=no" - ] ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared"; + outputs = [ + "out" + "dev" + "man" + "doc" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ + xorg.libXfixes + xorg.libXext + ]; + configureFlags = + lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "xorg_cv_malloc0_returns_null=no" ] + ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared"; }); libXinerama = super.libXinerama.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + outputs = [ + "out" + "dev" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXmu = super.libXmu.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; + outputs = [ + "out" + "dev" + "doc" + ]; buildFlags = [ "BITMAP_DEFINES='-DBITMAPDIR=\"/no-such-path\"'" ]; }); libXrandr = super.libXrandr.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libXrender ]; + outputs = [ + "out" + "dev" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.libXrender ]; }); libSM = super.libSM.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.libICE ]; + outputs = [ + "out" + "dev" + "doc" + ]; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.libICE ]; }); libXrender = super.libXrender.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.xorgproto ]; + outputs = [ + "out" + "dev" + "doc" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ xorg.xorgproto ]; }); libXres = super.libXres.overrideAttrs (attrs: { - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ + "out" + "dev" + "devdoc" + ]; buildInputs = with xorg; attrs.buildInputs ++ [ utilmacros ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXScrnSaver = super.libXScrnSaver.overrideAttrs (attrs: { buildInputs = with xorg; attrs.buildInputs ++ [ utilmacros ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXv = super.libXv.overrideAttrs (attrs: { - outputs = [ "out" "dev" "devdoc" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; + outputs = [ + "out" + "dev" + "devdoc" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; }); libXvMC = super.libXvMC.overrideAttrs (attrs: { - outputs = [ "out" "dev" "doc" ]; - configureFlags = attrs.configureFlags or [] - ++ malloc0ReturnsNullCrossFlag; - buildInputs = attrs.buildInputs ++ [xorg.xorgproto]; + outputs = [ + "out" + "dev" + "doc" + ]; + configureFlags = attrs.configureFlags or [ ] ++ malloc0ReturnsNullCrossFlag; + buildInputs = attrs.buildInputs ++ [ xorg.xorgproto ]; }); libXp = super.libXp.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; }); libXpm = super.libXpm.overrideAttrs (attrs: { - outputs = [ "bin" "dev" "out" ]; # tiny man in $bin + outputs = [ + "bin" + "dev" + "out" + ]; # tiny man in $bin patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in"; XPM_PATH_COMPRESS = lib.makeBinPath [ ncompress ]; - meta = attrs.meta // { mainProgram = "sxpm"; }; + meta = attrs.meta // { + mainProgram = "sxpm"; + }; }); libXpresent = super.libXpresent.overrideAttrs (attrs: { - buildInputs = with xorg; attrs.buildInputs ++ [ libXext libXfixes libXrandr ]; + buildInputs = + with xorg; + attrs.buildInputs + ++ [ + libXext + libXfixes + libXrandr + ]; }); libxkbfile = super.libxkbfile.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to avoid propagation + outputs = [ + "out" + "dev" + ]; # mainly to avoid propagation }); libxshmfence = super.libxshmfence.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to avoid propagation + outputs = [ + "out" + "dev" + ]; # mainly to avoid propagation }); libpciaccess = super.libpciaccess.overrideAttrs (attrs: { - nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ]; + nativeBuildInputs = attrs.nativeBuildInputs ++ [ + meson + ninja + ]; - buildInputs = attrs.buildInputs ++ [ zlib ] - ++ lib.optionals stdenv.hostPlatform.isNetBSD (with netbsd; [ libarch libpci ]); + buildInputs = + attrs.buildInputs + ++ [ zlib ] + ++ lib.optionals stdenv.hostPlatform.isNetBSD ( + with netbsd; + [ + libarch + libpci + ] + ); mesonFlags = [ (lib.mesonOption "pci-ids" "${hwdata}/share/hwdata") @@ -420,24 +626,33 @@ self: super: meta = attrs.meta // { # https://gitlab.freedesktop.org/xorg/lib/libpciaccess/-/blob/master/configure.ac#L108-114 - platforms = lib.fold (os: ps: ps ++ lib.platforms.${os}) [] - [ "cygwin" "freebsd" "linux" "netbsd" "openbsd" "illumos" ]; + platforms = lib.fold (os: ps: ps ++ lib.platforms.${os}) [ ] [ + "cygwin" + "freebsd" + "linux" + "netbsd" + "openbsd" + "illumos" + ]; }; }); libpthreadstubs = super.libpthreadstubs.overrideAttrs (attrs: { # only contains a pkgconfig file on linux and windows - meta = attrs.meta // { platforms = lib.platforms.unix ++ lib.platforms.windows; }; + meta = attrs.meta // { + platforms = lib.platforms.unix ++ lib.platforms.windows; + }; }); setxkbmap = super.setxkbmap.overrideAttrs (attrs: { - postInstall = - '' - mkdir -p $out/share/man/man7 - ln -sfn ${xorg.xkeyboardconfig}/etc/X11 $out/share/X11 - ln -sfn ${xorg.xkeyboardconfig}/share/man/man7/xkeyboard-config.7.gz $out/share/man/man7 - ''; - meta = attrs.meta // { mainProgram = "setxkbmap"; }; + postInstall = '' + mkdir -p $out/share/man/man7 + ln -sfn ${xorg.xkeyboardconfig}/etc/X11 $out/share/X11 + ln -sfn ${xorg.xkeyboardconfig}/share/man/man7/xkeyboard-config.7.gz $out/share/man/man7 + ''; + meta = attrs.meta // { + mainProgram = "setxkbmap"; + }; }); makedepend = addMainProgram super.makedepend { }; @@ -446,69 +661,99 @@ self: super: smproxy = addMainProgram super.smproxy { }; transset = addMainProgram super.transset { }; - utilmacros = super.utilmacros.overrideAttrs (attrs: { # not needed for releases, we propagate the needed tools - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ automake autoconf libtool ]; + utilmacros = super.utilmacros.overrideAttrs (attrs: { + # not needed for releases, we propagate the needed tools + propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [ + automake + autoconf + libtool + ]; }); viewres = addMainProgram super.viewres { }; x11perf = super.x11perf.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ freetype fontconfig ]; - meta = attrs.meta // { mainProgram = "x11perf"; }; + buildInputs = attrs.buildInputs ++ [ + freetype + fontconfig + ]; + meta = attrs.meta // { + mainProgram = "x11perf"; + }; }); xcalc = addMainProgram super.xcalc { }; xcbutil = super.xcbutil.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + ]; }); xcbutilerrors = super.xcbutilerrors.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to get rid of propagating others + outputs = [ + "out" + "dev" + ]; # mainly to get rid of propagating others }); xcbutilcursor = super.xcbutilcursor.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - meta = attrs.meta // { maintainers = [ lib.maintainers.lovek323 ]; }; + outputs = [ + "out" + "dev" + ]; + meta = attrs.meta // { + maintainers = [ lib.maintainers.lovek323 ]; + }; }); xcbutilimage = super.xcbutilimage.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to get rid of propagating others + outputs = [ + "out" + "dev" + ]; # mainly to get rid of propagating others }); xcbutilkeysyms = super.xcbutilkeysyms.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to get rid of propagating others + outputs = [ + "out" + "dev" + ]; # mainly to get rid of propagating others }); xcbutilrenderutil = super.xcbutilrenderutil.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to get rid of propagating others + outputs = [ + "out" + "dev" + ]; # mainly to get rid of propagating others }); xcbutilwm = super.xcbutilwm.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # mainly to get rid of propagating others + outputs = [ + "out" + "dev" + ]; # mainly to get rid of propagating others }); xf86inputevdev = super.xf86inputevdev.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # to get rid of xorgserver.dev; man is tiny + outputs = [ + "out" + "dev" + ]; # to get rid of xorgserver.dev; man is tiny preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c"; - configureFlags = [ - "--with-sdkdir=${placeholder "dev"}/include/xorg" - ]; + configureFlags = [ "--with-sdkdir=${placeholder "dev"}/include/xorg" ]; }); xf86inputmouse = super.xf86inputmouse.overrideAttrs (attrs: { - configureFlags = [ - "--with-sdkdir=${placeholder "out"}/include/xorg" - ]; + configureFlags = [ "--with-sdkdir=${placeholder "out"}/include/xorg" ]; meta = attrs.meta // { broken = isDarwin; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86inputmouse.x86_64-darwin }; }); xf86inputjoystick = super.xf86inputjoystick.overrideAttrs (attrs: { - configureFlags = [ - "--with-sdkdir=${placeholder "out"}/include/xorg" - ]; + configureFlags = [ "--with-sdkdir=${placeholder "out"}/include/xorg" ]; meta = attrs.meta // { broken = isDarwin; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86inputjoystick.x86_64-darwin }; @@ -521,14 +766,18 @@ self: super: }); xf86inputlibinput = super.xf86inputlibinput.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; - configureFlags = [ - "--with-sdkdir=${placeholder "dev"}/include/xorg" + outputs = [ + "out" + "dev" ]; + configureFlags = [ "--with-sdkdir=${placeholder "dev"}/include/xorg" ]; }); xf86inputsynaptics = super.xf86inputsynaptics.overrideAttrs (attrs: { - outputs = [ "out" "dev" ]; # *.pc pulls xorgserver.dev + outputs = [ + "out" + "dev" + ]; # *.pc pulls xorgserver.dev configureFlags = [ "--with-sdkdir=${placeholder "dev"}/include/xorg" "--with-xorg-conf-dir=${placeholder "out"}/share/X11/xorg.conf.d" @@ -543,7 +792,10 @@ self: super: ]; meta = attrs.meta // { - platforms = ["i686-linux" "x86_64-linux"]; + platforms = [ + "i686-linux" + "x86_64-linux" + ]; }; }); @@ -551,19 +803,63 @@ self: super: xf86videodummy = brokenOnDarwin super.xf86videodummy; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videodummy.x86_64-darwin # Obsolete drivers that don't compile anymore. - xf86videoark = super.xf86videoark.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videogeode = super.xf86videogeode.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videoglide = super.xf86videoglide.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videoi128 = super.xf86videoi128.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videonewport = super.xf86videonewport.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videos3virge = super.xf86videos3virge.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videosavage = super.xf86videosavage.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videotga = super.xf86videotga.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videov4l = super.xf86videov4l.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videovoodoo = super.xf86videovoodoo.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); - xf86videowsfb = super.xf86videowsfb.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; }); + xf86videoark = super.xf86videoark.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videogeode = super.xf86videogeode.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videoglide = super.xf86videoglide.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videoi128 = super.xf86videoi128.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videonewport = super.xf86videonewport.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videos3virge = super.xf86videos3virge.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videosavage = super.xf86videosavage.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videotga = super.xf86videotga.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videov4l = super.xf86videov4l.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videovoodoo = super.xf86videovoodoo.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); + xf86videowsfb = super.xf86videowsfb.overrideAttrs (attrs: { + meta = attrs.meta // { + broken = true; + }; + }); - xf86videoomap = super.xf86videoomap.overrideAttrs (attrs: { + xf86videoomap = super.xf86videoomap.overrideAttrs (attrs: { env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=format-overflow" ]; }); @@ -573,62 +869,86 @@ self: super: xf86videonouveau = super.xf86videonouveau.overrideAttrs (attrs: { nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook ]; - buildInputs = attrs.buildInputs ++ [ xorg.utilmacros ]; + buildInputs = attrs.buildInputs ++ [ xorg.utilmacros ]; }); xf86videoglint = super.xf86videoglint.overrideAttrs (attrs: { nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook ]; - buildInputs = attrs.buildInputs ++ [ xorg.utilmacros ]; + buildInputs = attrs.buildInputs ++ [ xorg.utilmacros ]; # https://gitlab.freedesktop.org/xorg/driver/xf86-video-glint/-/issues/1 - meta = attrs.meta // { broken = true; }; + meta = attrs.meta // { + broken = true; + }; }); xf86videosuncg6 = super.xf86videosuncg6.overrideAttrs (attrs: { - meta = attrs.meta // { broken = isDarwin; }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosuncg6.x86_64-darwin + meta = attrs.meta // { + broken = isDarwin; + }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosuncg6.x86_64-darwin }); xf86videosunffb = super.xf86videosunffb.overrideAttrs (attrs: { - meta = attrs.meta // { broken = isDarwin; }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosunffb.x86_64-darwin + meta = attrs.meta // { + broken = isDarwin; + }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosunffb.x86_64-darwin }); xf86videosunleo = super.xf86videosunleo.overrideAttrs (attrs: { - meta = attrs.meta // { broken = isDarwin; }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosunleo.x86_64-darwin + meta = attrs.meta // { + broken = isDarwin; + }; # never worked: https://hydra.nixos.org/job/nixpkgs/trunk/xorg.xf86videosunleo.x86_64-darwin }); xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ mesa mesa.driversdev llvm ]; # for libxatracker + buildInputs = attrs.buildInputs ++ [ + mesa + mesa.driversdev + llvm + ]; # for libxatracker env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=address" ]; # gcc12 meta = attrs.meta // { - platforms = ["i686-linux" "x86_64-linux"]; + platforms = [ + "i686-linux" + "x86_64-linux" + ]; }; }); xf86videoqxl = super.xf86videoqxl.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [ spice-protocol ]; + buildInputs = attrs.buildInputs ++ [ spice-protocol ]; }); xf86videosiliconmotion = super.xf86videosiliconmotion.overrideAttrs (attrs: { meta = attrs.meta // { - platforms = ["i686-linux" "x86_64-linux"]; + platforms = [ + "i686-linux" + "x86_64-linux" + ]; }; }); xdriinfo = super.xdriinfo.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [libGL]; - meta = attrs.meta // { mainProgram = "xdriinfo"; }; + buildInputs = attrs.buildInputs ++ [ libGL ]; + meta = attrs.meta // { + mainProgram = "xdriinfo"; + }; }); xev = addMainProgram super.xev { }; xeyes = addMainProgram super.xeyes { }; xvinfo = super.xvinfo.overrideAttrs (attrs: { - buildInputs = attrs.buildInputs ++ [xorg.libXext]; - meta = attrs.meta // { mainProgram = "xvinfo"; }; + buildInputs = attrs.buildInputs ++ [ xorg.libXext ]; + meta = attrs.meta // { + mainProgram = "xvinfo"; + }; }); xkbcomp = super.xkbcomp.overrideAttrs (attrs: { configureFlags = [ "--with-xkb-config-root=${xorg.xkeyboardconfig}/share/X11/xkb" ]; - meta = attrs.meta // { mainProgram = "xkbcomp"; }; + meta = attrs.meta // { + mainProgram = "xkbcomp"; + }; }); xkeyboardconfig = super.xkeyboardconfig.overrideAttrs (attrs: { @@ -643,9 +963,7 @@ self: super: libxslt # xsltproc gettext # msgfmt ]; - mesonFlags = [ - (lib.mesonBool "xorg-rules-symlinks" true) - ]; + mesonFlags = [ (lib.mesonBool "xorg-rules-symlinks" true) ]; # 1: compatibility for X11/xkb location # 2: I think pkg-config/ is supposed to be in /lib/ postInstall = '' @@ -656,59 +974,63 @@ self: super: # xkeyboardconfig variant extensible with custom layouts. # See nixos/modules/services/x11/extra-layouts.nix - xkeyboardconfig_custom = { layouts ? { } }: - let - patchIn = name: layout: - with layout; - with lib; - '' - # install layout files - ${optionalString (compatFile != null) "cp '${compatFile}' 'compat/${name}'"} - ${optionalString (geometryFile != null) "cp '${geometryFile}' 'geometry/${name}'"} - ${optionalString (keycodesFile != null) "cp '${keycodesFile}' 'keycodes/${name}'"} - ${optionalString (symbolsFile != null) "cp '${symbolsFile}' 'symbols/${name}'"} - ${optionalString (typesFile != null) "cp '${typesFile}' 'types/${name}'"} + xkeyboardconfig_custom = + { + layouts ? { }, + }: + let + patchIn = + name: layout: + with layout; + with lib; + '' + # install layout files + ${optionalString (compatFile != null) "cp '${compatFile}' 'compat/${name}'"} + ${optionalString (geometryFile != null) "cp '${geometryFile}' 'geometry/${name}'"} + ${optionalString (keycodesFile != null) "cp '${keycodesFile}' 'keycodes/${name}'"} + ${optionalString (symbolsFile != null) "cp '${symbolsFile}' 'symbols/${name}'"} + ${optionalString (typesFile != null) "cp '${typesFile}' 'types/${name}'"} - # add model description - ${ed}/bin/ed -v rules/base.xml < - - - a - - - ${name} - ${layout.description} - ${layout.description} - - - . - w - EOF + # add model description + ${ed}/bin/ed -v rules/base.xml < + - + a + + + ${name} + ${layout.description} + ${layout.description} + + + . + w + EOF - # add layout description - ${ed}/bin/ed -v rules/base.xml < - - - a - - - ${name} - ${name} - ${layout.description} - - ${concatMapStrings (lang: "${lang}\n") layout.languages} - - - - - . - w - EOF - ''; - in + # add layout description + ${ed}/bin/ed -v rules/base.xml < + - + a + + + ${name} + ${name} + ${layout.description} + + ${concatMapStrings (lang: "${lang}\n") layout.languages} + + + + + . + w + EOF + ''; + in xorg.xkeyboardconfig.overrideAttrs (old: { buildInputs = old.buildInputs ++ [ automake ]; - postPatch = with lib; concatStrings (mapAttrsToList patchIn layouts); + postPatch = with lib; concatStrings (mapAttrsToList patchIn layouts); }); xlsfonts = super.xlsfonts.overrideAttrs (attrs: { @@ -719,9 +1041,12 @@ self: super: }); xorgproto = super.xorgproto.overrideAttrs (attrs: { - buildInputs = []; - propagatedBuildInputs = []; - nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ]; + buildInputs = [ ]; + propagatedBuildInputs = [ ]; + nativeBuildInputs = attrs.nativeBuildInputs ++ [ + meson + ninja + ]; # adds support for printproto needed for libXp mesonFlags = [ "-Dlegacy=true" ]; @@ -731,178 +1056,223 @@ self: super: sha256 = "sha256-Izzz9In53W7CC++k1bLr78iSrmxpFm1cH8qcSpptoUQ="; }) ]; - meta = attrs.meta // { platforms = lib.platforms.unix ++ lib.platforms.windows; }; + meta = attrs.meta // { + platforms = lib.platforms.unix ++ lib.platforms.windows; + }; }); - xorgserver = with xorg; super.xorgserver.overrideAttrs (attrs_passed: - let - attrs = attrs_passed // { - buildInputs = attrs_passed.buildInputs ++ - lib.optional (libdrm != null) libdrm.dev; - postPatch = '' - for i in dri3/*.c - do - sed -i -e "s|#include |#include |" $i - done - ''; - meta = attrs_passed.meta // { mainProgram = "X"; }; - }; - in attrs // - (let - version = lib.getVersion attrs; - commonBuildInputs = attrs.buildInputs ++ [ xtrans libxcvt ]; - commonPropagatedBuildInputs = [ - dbus libGL libGLU libXext libXfont libXfont2 libepoxy libunwind - libxshmfence pixman xorgproto zlib - ]; - # XQuartz requires two compilations: the first to get X / XQuartz, - # and the second to get Xvfb, Xnest, etc. - darwinOtherX = xorgserver.overrideAttrs (oldAttrs: { - configureFlags = oldAttrs.configureFlags ++ [ - "--disable-xquartz" - "--enable-xorg" - "--enable-xvfb" - "--enable-xnest" - "--enable-kdrive" - ]; - postInstall = ":"; # prevent infinite recursion - }); - - fpgit = commit: sha256: name: fetchpatch ( - { - url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/${commit}.diff"; - inherit sha256; - } // lib.optionalAttrs (name != null) { - name = name + ".patch"; - } - ); - in - if (!isDarwin) - then { - outputs = [ "out" "dev" ]; - patches = [ - # The build process tries to create the specified logdir when building. - # - # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail - ./dont-create-logdir-during-build.patch - ]; - buildInputs = commonBuildInputs ++ [ libdrm mesa ]; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [ - udev - ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - prePatch = lib.optionalString stdenv.hostPlatform.isMusl '' - export CFLAGS+=" -D__uid_t=uid_t -D__gid_t=gid_t" - ''; - configureFlags = [ - "--enable-kdrive" # not built by default - "--enable-xephyr" - "--enable-xcsecurity" # enable SECURITY extension - "--with-default-font-path=" # there were only paths containing "${prefix}", - # and there are no fonts in this package anyway - "--with-xkb-bin-directory=${xorg.xkbcomp}/bin" - "--with-xkb-path=${xorg.xkeyboardconfig}/share/X11/xkb" - "--with-xkb-output=$out/share/X11/xkb/compiled" - "--with-log-dir=/var/log" - "--enable-glamor" - "--with-os-name=Nix" # r13y, embeds the build machine's kernel version otherwise - ] ++ lib.optionals stdenv.hostPlatform.isMusl [ - "--disable-tls" - ]; - - env.NIX_CFLAGS_COMPILE = toString [ - # Needed with GCC 12 - "-Wno-error=array-bounds" - ]; - - postInstall = '' - rm -fr $out/share/X11/xkb/compiled # otherwise X will try to write in it - ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others - cd "$dev" - for f in include/xorg/*.h; do - sed "1i#line 1 \"${attrs.pname}-${attrs.version}/$f\"" -i "$f" + xorgserver = + with xorg; + super.xorgserver.overrideAttrs ( + attrs_passed: + let + attrs = attrs_passed // { + buildInputs = attrs_passed.buildInputs ++ lib.optional (libdrm != null) libdrm.dev; + postPatch = '' + for i in dri3/*.c + do + sed -i -e "s|#include |#include |" $i done - ) - ''; - passthru = attrs.passthru // { - inherit version; # needed by virtualbox guest additions + ''; + meta = attrs_passed.meta // { + mainProgram = "X"; + }; }; - } else { - nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook bootstrap_cmds xorg.utilmacros xorg.fontutil ]; - buildInputs = commonBuildInputs ++ [ - bootstrap_cmds automake autoconf - Xplugin Carbon Cocoa - ]; - propagatedBuildInputs = commonPropagatedBuildInputs ++ [ - libAppleWM xorgproto - ]; + in + attrs + // ( + let + version = lib.getVersion attrs; + commonBuildInputs = attrs.buildInputs ++ [ + xtrans + libxcvt + ]; + commonPropagatedBuildInputs = [ + dbus + libGL + libGLU + libXext + libXfont + libXfont2 + libepoxy + libunwind + libxshmfence + pixman + xorgproto + zlib + ]; + # XQuartz requires two compilations: the first to get X / XQuartz, + # and the second to get Xvfb, Xnest, etc. + darwinOtherX = xorgserver.overrideAttrs (oldAttrs: { + configureFlags = oldAttrs.configureFlags ++ [ + "--disable-xquartz" + "--enable-xorg" + "--enable-xvfb" + "--enable-xnest" + "--enable-kdrive" + ]; + postInstall = ":"; # prevent infinite recursion + }); - patches = [ - # XQuartz patchset - (fetchpatch { - url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch"; - sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k"; - name = "use-cppflags-not-cflags.patch"; - }) - (fetchpatch { - url = "https://github.com/XQuartz/xorg-server/commit/75ee9649bcfe937ac08e03e82fd45d9e18110ef4.patch"; - sha256 = "1vlfylm011y00j8mig9zy6gk9bw2b4ilw2qlsc6la49zi3k0i9fg"; - name = "use-old-mitrapezoids-and-mitriangles-routines.patch"; - }) - (fetchpatch { - url = "https://github.com/XQuartz/xorg-server/commit/c58f47415be79a6564a9b1b2a62c2bf866141e73.patch"; - sha256 = "19sisqzw8x2ml4lfrwfvavc2jfyq2bj5xcf83z89jdxg8g1gdd1i"; - name = "revert-fb-changes-1.patch"; - }) - (fetchpatch { - url = "https://github.com/XQuartz/xorg-server/commit/56e6f1f099d2821e5002b9b05b715e7b251c0c97.patch"; - sha256 = "0zm9g0g1jvy79sgkvy0rjm6ywrdba2xjd1nsnjbxjccckbr6i396"; - name = "revert-fb-changes-2.patch"; - }) - ./darwin/bundle_main.patch - ./darwin/stub.patch - ]; + fpgit = + commit: sha256: name: + fetchpatch ( + { + url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/${commit}.diff"; + inherit sha256; + } + // lib.optionalAttrs (name != null) { name = name + ".patch"; } + ); + in + if (!isDarwin) then + { + outputs = [ + "out" + "dev" + ]; + patches = [ + # The build process tries to create the specified logdir when building. + # + # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail + ./dont-create-logdir-during-build.patch + ]; + buildInputs = commonBuildInputs ++ [ + libdrm + mesa + ]; + propagatedBuildInputs = + attrs.propagatedBuildInputs or [ ] + ++ [ libpciaccess ] + ++ commonPropagatedBuildInputs + ++ lib.optionals stdenv.isLinux [ udev ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + prePatch = lib.optionalString stdenv.hostPlatform.isMusl '' + export CFLAGS+=" -D__uid_t=uid_t -D__gid_t=gid_t" + ''; + configureFlags = [ + "--enable-kdrive" # not built by default + "--enable-xephyr" + "--enable-xcsecurity" # enable SECURITY extension + "--with-default-font-path=" + # there were only paths containing "${prefix}", + # and there are no fonts in this package anyway + "--with-xkb-bin-directory=${xorg.xkbcomp}/bin" + "--with-xkb-path=${xorg.xkeyboardconfig}/share/X11/xkb" + "--with-xkb-output=$out/share/X11/xkb/compiled" + "--with-log-dir=/var/log" + "--enable-glamor" + "--with-os-name=Nix" # r13y, embeds the build machine's kernel version otherwise + ] ++ lib.optionals stdenv.hostPlatform.isMusl [ "--disable-tls" ]; - postPatch = attrs.postPatch + '' - substituteInPlace hw/xquartz/mach-startup/stub.c \ - --subst-var-by XQUARTZ_APP "$out/Applications/XQuartz.app" - ''; + env.NIX_CFLAGS_COMPILE = toString [ + # Needed with GCC 12 + "-Wno-error=array-bounds" + ]; - configureFlags = [ - # note: --enable-xquartz is auto - "CPPFLAGS=-I${./darwin/dri}" - "--disable-glamor" - "--with-default-font-path=" - "--with-apple-application-name=XQuartz" - "--with-apple-applications-dir=\${out}/Applications" - "--with-bundle-id-prefix=org.nixos.xquartz" - "--with-sha1=CommonCrypto" - "--with-xkb-bin-directory=${xorg.xkbcomp}/bin" - "--with-xkb-path=${xorg.xkeyboardconfig}/share/X11/xkb" - "--with-xkb-output=$out/share/X11/xkb/compiled" - "--without-dtrace" # requires Command Line Tools for Xcode - ]; - preConfigure = '' - mkdir -p $out/Applications - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error" - substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${ApplicationServices} - ''; - postInstall = '' - rm -fr $out/share/X11/xkb/compiled + postInstall = '' + rm -fr $out/share/X11/xkb/compiled # otherwise X will try to write in it + ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others + cd "$dev" + for f in include/xorg/*.h; do + sed "1i#line 1 \"${attrs.pname}-${attrs.version}/$f\"" -i "$f" + done + ) + ''; + passthru = attrs.passthru // { + inherit version; # needed by virtualbox guest additions + }; + } + else + { + nativeBuildInputs = attrs.nativeBuildInputs ++ [ + autoreconfHook + bootstrap_cmds + xorg.utilmacros + xorg.fontutil + ]; + buildInputs = commonBuildInputs ++ [ + bootstrap_cmds + automake + autoconf + Xplugin + Carbon + Cocoa + ]; + propagatedBuildInputs = commonPropagatedBuildInputs ++ [ + libAppleWM + xorgproto + ]; - cp -rT ${darwinOtherX}/bin $out/bin - rm -f $out/bin/X - ln -s Xquartz $out/bin/X + patches = [ + # XQuartz patchset + (fetchpatch { + url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch"; + sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k"; + name = "use-cppflags-not-cflags.patch"; + }) + (fetchpatch { + url = "https://github.com/XQuartz/xorg-server/commit/75ee9649bcfe937ac08e03e82fd45d9e18110ef4.patch"; + sha256 = "1vlfylm011y00j8mig9zy6gk9bw2b4ilw2qlsc6la49zi3k0i9fg"; + name = "use-old-mitrapezoids-and-mitriangles-routines.patch"; + }) + (fetchpatch { + url = "https://github.com/XQuartz/xorg-server/commit/c58f47415be79a6564a9b1b2a62c2bf866141e73.patch"; + sha256 = "19sisqzw8x2ml4lfrwfvavc2jfyq2bj5xcf83z89jdxg8g1gdd1i"; + name = "revert-fb-changes-1.patch"; + }) + (fetchpatch { + url = "https://github.com/XQuartz/xorg-server/commit/56e6f1f099d2821e5002b9b05b715e7b251c0c97.patch"; + sha256 = "0zm9g0g1jvy79sgkvy0rjm6ywrdba2xjd1nsnjbxjccckbr6i396"; + name = "revert-fb-changes-2.patch"; + }) + ./darwin/bundle_main.patch + ./darwin/stub.patch + ]; - cp ${darwinOtherX}/share/man -rT $out/share/man - '' ; - passthru = attrs.passthru // { - inherit version; - }; - })); + postPatch = + attrs.postPatch + + '' + substituteInPlace hw/xquartz/mach-startup/stub.c \ + --subst-var-by XQUARTZ_APP "$out/Applications/XQuartz.app" + ''; + + configureFlags = [ + # note: --enable-xquartz is auto + "CPPFLAGS=-I${./darwin/dri}" + "--disable-glamor" + "--with-default-font-path=" + "--with-apple-application-name=XQuartz" + "--with-apple-applications-dir=\${out}/Applications" + "--with-bundle-id-prefix=org.nixos.xquartz" + "--with-sha1=CommonCrypto" + "--with-xkb-bin-directory=${xorg.xkbcomp}/bin" + "--with-xkb-path=${xorg.xkeyboardconfig}/share/X11/xkb" + "--with-xkb-output=$out/share/X11/xkb/compiled" + "--without-dtrace" # requires Command Line Tools for Xcode + ]; + preConfigure = '' + mkdir -p $out/Applications + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error" + substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${ApplicationServices} + ''; + postInstall = '' + rm -fr $out/share/X11/xkb/compiled + + cp -rT ${darwinOtherX}/bin $out/bin + rm -f $out/bin/X + ln -s Xquartz $out/bin/X + + cp ${darwinOtherX}/share/man -rT $out/share/man + ''; + passthru = attrs.passthru // { + inherit version; + }; + } + ) + ); lndir = super.lndir.overrideAttrs (attrs: { - buildInputs = []; + buildInputs = [ ]; preConfigure = '' export XPROTO_CFLAGS=" " export XPROTO_LIBS=" " @@ -914,22 +1284,32 @@ self: super: --replace '_X_NORETURN' '__attribute__((noreturn))' \ --replace 'n_dirs--;' "" ''; - meta = attrs.meta // { mainProgram = "lndir"; }; + meta = attrs.meta // { + mainProgram = "lndir"; + }; }); twm = super.twm.overrideAttrs (attrs: { - nativeBuildInputs = attrs.nativeBuildInputs ++ [bison flex]; - meta = attrs.meta // { mainProgram = "twm"; }; + nativeBuildInputs = attrs.nativeBuildInputs ++ [ + bison + flex + ]; + meta = attrs.meta // { + mainProgram = "twm"; + }; }); xauth = super.xauth.overrideAttrs (attrs: { doCheck = false; # fails - preConfigure = attrs.preConfigure or "" - # missing transitive dependencies - + lib.optionalString stdenv.hostPlatform.isStatic '' - export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp" - ''; - meta = attrs.meta // { mainProgram = "xauth"; }; + preConfigure = + attrs.preConfigure or "" + # missing transitive dependencies + + lib.optionalString stdenv.hostPlatform.isStatic '' + export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp" + ''; + meta = attrs.meta // { + mainProgram = "xauth"; + }; }); xbacklight = addMainProgram super.xbacklight { }; @@ -945,31 +1325,38 @@ self: super: configureFlags = [ "--with-cursordir=$(out)/share/icons" ]; }); - xinit = (super.xinit.override { - stdenv = if isDarwin then clangStdenv else stdenv; - }).overrideAttrs (attrs: { - nativeBuildInputs = attrs.nativeBuildInputs ++ lib.optional isDarwin bootstrap_cmds; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - configureFlags = [ - "--with-xserver=${xorg.xorgserver.out}/bin/X" - ] ++ lib.optionals isDarwin [ - "--with-bundle-id-prefix=org.nixos.xquartz" - "--with-launchdaemons-dir=\${out}/LaunchDaemons" - "--with-launchagents-dir=\${out}/LaunchAgents" - ]; - postPatch = '' - # Avoid replacement of word-looking cpp's builtin macros in Nix's cross-compiled paths - substituteInPlace Makefile.in --replace "PROGCPPDEFS =" "PROGCPPDEFS = -Dlinux=linux -Dunix=unix" - ''; - propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ xorg.xauth ] - ++ lib.optionals isDarwin [ xorg.libX11 xorg.xorgproto ]; - postFixup = '' - substituteInPlace $out/bin/startx \ - --replace $out/etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc \ - --replace $out/etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc - ''; - meta = attrs.meta // { mainProgram = "xinit"; }; - }); + xinit = + (super.xinit.override { stdenv = if isDarwin then clangStdenv else stdenv; }).overrideAttrs + (attrs: { + nativeBuildInputs = attrs.nativeBuildInputs ++ lib.optional isDarwin bootstrap_cmds; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + configureFlags = + [ "--with-xserver=${xorg.xorgserver.out}/bin/X" ] + ++ lib.optionals isDarwin [ + "--with-bundle-id-prefix=org.nixos.xquartz" + "--with-launchdaemons-dir=\${out}/LaunchDaemons" + "--with-launchagents-dir=\${out}/LaunchAgents" + ]; + postPatch = '' + # Avoid replacement of word-looking cpp's builtin macros in Nix's cross-compiled paths + substituteInPlace Makefile.in --replace "PROGCPPDEFS =" "PROGCPPDEFS = -Dlinux=linux -Dunix=unix" + ''; + propagatedBuildInputs = + attrs.propagatedBuildInputs or [ ] + ++ [ xorg.xauth ] + ++ lib.optionals isDarwin [ + xorg.libX11 + xorg.xorgproto + ]; + postFixup = '' + substituteInPlace $out/bin/startx \ + --replace $out/etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc \ + --replace $out/etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc + ''; + meta = attrs.meta // { + mainProgram = "xinit"; + }; + }); xf86videointel = super.xf86videointel.overrideAttrs (attrs: { # the update script only works with released tarballs :-/ @@ -982,13 +1369,24 @@ self: super: rev = "31486f40f8e8f8923ca0799aea84b58799754564"; sha256 = "sha256-nqT9VZDb2kAC72ot9UCdwEkM1uuP9NriJePulzrdZlM="; }; - buildInputs = attrs.buildInputs ++ [ xorg.libXScrnSaver xorg.libXv xorg.pixman xorg.utilmacros ]; - nativeBuildInputs = attrs.nativeBuildInputs ++ [autoreconfHook ]; - configureFlags = [ "--with-default-dri=3" "--enable-tools" ]; + buildInputs = attrs.buildInputs ++ [ + xorg.libXScrnSaver + xorg.libXv + xorg.pixman + xorg.utilmacros + ]; + nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook ]; + configureFlags = [ + "--with-default-dri=3" + "--enable-tools" + ]; patches = [ ./use_crocus_and_iris.patch ]; meta = attrs.meta // { - platforms = ["i686-linux" "x86_64-linux"]; + platforms = [ + "i686-linux" + "x86_64-linux" + ]; }; }); @@ -1061,12 +1459,16 @@ self: super: xrdb = super.xrdb.overrideAttrs (attrs: { configureFlags = [ "--with-cpp=${mcpp}/bin/mcpp" ]; - meta = attrs.meta // { mainProgram = "xrdb"; }; + meta = attrs.meta // { + mainProgram = "xrdb"; + }; }); sessreg = super.sessreg.overrideAttrs (attrs: { preBuild = "sed -i 's|gcc -E|gcc -E -P|' man/Makefile"; - meta = attrs.meta // { mainProgram = "sessreg"; }; + meta = attrs.meta // { + mainProgram = "sessreg"; + }; }); xrandr = super.xrandr.overrideAttrs (attrs: { @@ -1138,14 +1540,16 @@ self: super: "fontjismisc" ]; - setLicense = license: name: + setLicense = + license: name: super.${name}.overrideAttrs (attrs: { - meta = attrs.meta // { inherit license; }; + meta = attrs.meta // { + inherit license; + }; }); - mapNamesToAttrs = f: names: with lib; - listToAttrs (zipListsWith nameValuePair names (map f names)); + mapNamesToAttrs = f: names: with lib; listToAttrs (zipListsWith nameValuePair names (map f names)); in - mapNamesToAttrs (setLicense lib.licenses.unfreeRedistributable) redist // - mapNamesToAttrs (setLicense lib.licenses.unfree) unfree + mapNamesToAttrs (setLicense lib.licenses.unfreeRedistributable) redist + // mapNamesToAttrs (setLicense lib.licenses.unfree) unfree ) diff --git a/pkgs/by-name/xo/xorg/packages.nix b/pkgs/by-name/xo/xorg/packages.nix index 83df020..b0fd2ef 100644 --- a/pkgs/by-name/xo/xorg/packages.nix +++ b/pkgs/by-name/xo/xorg/packages.nix @@ -1,28 +1,29 @@ { ... }: res: pkgs: super: -with pkgs; -{ - xorg = let - # Use `lib.callPackageWith __splicedPackages` rather than plain `callPackage` - # so as not to have the newly bound xorg items already in scope, which would - # have created a cycle. - overrides = lib.callPackageWith __splicedPackages ./overrides.nix { - inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa; - inherit (darwin.apple_sdk.libs) Xplugin; - inherit (buildPackages.darwin) bootstrap_cmds; - udev = if stdenv.isLinux then udev else null; - libdrm = if stdenv.isLinux then libdrm else null; - }; +with pkgs; { + xorg = + let + # Use `lib.callPackageWith __splicedPackages` rather than plain `callPackage` + # so as not to have the newly bound xorg items already in scope, which would + # have created a cycle. + overrides = lib.callPackageWith __splicedPackages ./overrides.nix { + inherit (darwin.apple_sdk.frameworks) ApplicationServices Carbon Cocoa; + inherit (darwin.apple_sdk.libs) Xplugin; + inherit (buildPackages.darwin) bootstrap_cmds; + udev = if stdenv.isLinux then udev else null; + libdrm = if stdenv.isLinux then libdrm else null; + }; - generatedPackages = lib.callPackageWith __splicedPackages ./default.nix { }; + generatedPackages = lib.callPackageWith __splicedPackages ./default.nix { }; - xorgPackages = makeScopeWithSplicing' { - otherSplices = generateSplicesForMkScope "xorg"; - f = lib.extends overrides generatedPackages; - }; + xorgPackages = makeScopeWithSplicing' { + otherSplices = generateSplicesForMkScope "xorg"; + f = lib.extends overrides generatedPackages; + }; - in recurseIntoAttrs xorgPackages; + in + recurseIntoAttrs xorgPackages; xwayland = callPackage ./xwayland.nix { }; diff --git a/pkgs/by-name/xo/xorg/xcb-util-xrm.nix b/pkgs/by-name/xo/xorg/xcb-util-xrm.nix index 0235ad2..487e0cb 100644 --- a/pkgs/by-name/xo/xorg/xcb-util-xrm.nix +++ b/pkgs/by-name/xo/xorg/xcb-util-xrm.nix @@ -1,4 +1,13 @@ -{ lib, stdenv, fetchurl, pkg-config, m4, libxcb, xcbutil, libX11 }: +{ + lib, + stdenv, + fetchurl, + pkg-config, + m4, + libxcb, + xcbutil, + libX11, +}: stdenv.mkDerivation rec { version = "1.3"; @@ -11,9 +20,16 @@ stdenv.mkDerivation rec { strictDeps = true; - nativeBuildInputs = [ pkg-config m4 ]; + nativeBuildInputs = [ + pkg-config + m4 + ]; doCheck = true; - buildInputs = [ libxcb xcbutil libX11 ]; + buildInputs = [ + libxcb + xcbutil + libX11 + ]; meta = with lib; { description = "XCB utility functions for the X resource manager"; diff --git a/pkgs/by-name/xo/xorg/xwayland.nix b/pkgs/by-name/xo/xorg/xwayland.nix index a34e128..611ffc4 100644 --- a/pkgs/by-name/xo/xorg/xwayland.nix +++ b/pkgs/by-name/xo/xorg/xwayland.nix @@ -1,47 +1,49 @@ -{ egl-wayland -, libepoxy -, fetchurl -, fontutil -, lib -, libei -, libGL -, libGLU -, libX11 -, libXau -, libXaw -, libXdmcp -, libXext -, libXfixes -, libXfont2 -, libXmu -, libXpm -, libXrender -, libXres -, libXt -, libdrm -, libtirpc -, withLibunwind ? true, libunwind -, libxcb -, libxkbfile -, libxshmfence -, libxcvt -, mesa -, meson -, ninja -, openssl -, pkg-config -, pixman -, stdenv -, wayland -, wayland-protocols -, wayland-scanner -, xkbcomp -, xkeyboard_config -, xorgproto -, xtrans -, zlib -, defaultFontPath ? "" -, gitUpdater +{ + egl-wayland, + libepoxy, + fetchurl, + fontutil, + lib, + libei, + libGL, + libGLU, + libX11, + libXau, + libXaw, + libXdmcp, + libXext, + libXfixes, + libXfont2, + libXmu, + libXpm, + libXrender, + libXres, + libXt, + libdrm, + libtirpc, + withLibunwind ? true, + libunwind, + libxcb, + libxkbfile, + libxshmfence, + libxcvt, + mesa, + meson, + ninja, + openssl, + pkg-config, + pixman, + stdenv, + wayland, + wayland-protocols, + wayland-scanner, + xkbcomp, + xkeyboard_config, + xorgproto, + xtrans, + zlib, + defaultFontPath ? "", + gitUpdater, }: stdenv.mkDerivation rec { @@ -53,9 +55,7 @@ stdenv.mkDerivation rec { hash = "sha256-HJo2a058ytug+b0xPFnq4S0jvXJUOyKibq+LIINc/G0="; }; - depsBuildBuild = [ - pkg-config - ]; + depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ pkg-config meson @@ -96,9 +96,7 @@ stdenv.mkDerivation rec { xorgproto xtrans zlib - ] ++ lib.optionals withLibunwind [ - libunwind - ]; + ] ++ lib.optionals withLibunwind [ libunwind ]; mesonFlags = [ (lib.mesonBool "xwayland_eglstream" true) (lib.mesonBool "xcsecurity" true) diff --git a/pkgs/by-name/xz/xz/default.nix b/pkgs/by-name/xz/xz/default.nix index fae306a..794a144 100644 --- a/pkgs/by-name/xz/xz/default.nix +++ b/pkgs/by-name/xz/xz/default.nix @@ -1,6 +1,9 @@ -{ lib, stdenv, fetchurl -, enableStatic ? stdenv.hostPlatform.isStatic -, writeScript +{ + lib, + stdenv, + fetchurl, + enableStatic ? stdenv.hostPlatform.isStatic, + writeScript, # for passthru.tests # , testers }: @@ -15,7 +18,8 @@ stdenv.mkDerivation (finalAttrs: { version = "5.4.6"; # Beware of CVE-2024-3094 and related risks!!! src = fetchurl { - url = with finalAttrs; + url = + with finalAttrs; # The original URL has been taken down. # "https://github.com/tukaani-project/xz/releases/download/v${version}/xz-${version}.tar.bz2"; "mirror://sourceforge/lzmautils/xz-${version}.tar.bz2"; @@ -23,7 +27,13 @@ stdenv.mkDerivation (finalAttrs: { }; strictDeps = true; - outputs = [ "bin" "dev" "out" "man" "doc" ]; + outputs = [ + "bin" + "dev" + "out" + "man" + "doc" + ]; configureFlags = lib.optional enableStatic "--disable-shared"; @@ -63,21 +73,24 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://tukaani.org/xz/"; description = "A general-purpose data compression software, successor of LZMA"; - longDescription = - '' XZ Utils is free general-purpose data compression software with high - compression ratio. XZ Utils were written for POSIX-like systems, - but also work on some not-so-POSIX systems. XZ Utils are the - successor to LZMA Utils. + longDescription = '' + XZ Utils is free general-purpose data compression software with high + compression ratio. XZ Utils were written for POSIX-like systems, + but also work on some not-so-POSIX systems. XZ Utils are the + successor to LZMA Utils. - The core of the XZ Utils compression code is based on LZMA SDK, but - it has been modified quite a lot to be suitable for XZ Utils. The - primary compression algorithm is currently LZMA2, which is used - inside the .xz container format. With typical files, XZ Utils - create 30 % smaller output than gzip and 15 % smaller output than - bzip2. - ''; + The core of the XZ Utils compression code is based on LZMA SDK, but + it has been modified quite a lot to be suitable for XZ Utils. The + primary compression algorithm is currently LZMA2, which is used + inside the .xz container format. With typical files, XZ Utils + create 30 % smaller output than gzip and 15 % smaller output than + bzip2. + ''; - license = with licenses; [ gpl2Plus lgpl21Plus ]; + license = with licenses; [ + gpl2Plus + lgpl21Plus + ]; maintainers = with maintainers; [ sander ]; platforms = platforms.all; pkgConfigModules = [ "liblzma" ]; diff --git a/pkgs/by-name/zl/zlib/default.nix b/pkgs/by-name/zl/zlib/default.nix index 029a1bd..a7681c0 100644 --- a/pkgs/by-name/zl/zlib/default.nix +++ b/pkgs/by-name/zl/zlib/default.nix @@ -1,13 +1,15 @@ -{ lib, stdenv -, fetchurl -, shared ? !stdenv.hostPlatform.isStatic -, static ? true -# If true, a separate .static ouput is created and the .a is moved there. -# In this case `pkg-config` auto detection does not currently work if the -# .static output is given as `buildInputs` to another package (#66461), because -# the `.pc` file lists only the main output's lib dir. -# If false, and if `{ static = true; }`, the .a stays in the main output. -, splitStaticOutput ? shared && static +{ + lib, + stdenv, + fetchurl, + shared ? !stdenv.hostPlatform.isStatic, + static ? true, + # If true, a separate .static ouput is created and the .a is moved there. + # In this case `pkg-config` auto detection does not currently work if the + # .static output is given as `buildInputs` to another package (#66461), because + # the `.pc` file lists only the main output's lib dir. + # If false, and if `{ static = true; }`, the .a stays in the main output. + splitStaticOutput ? shared && static, # for passthru.tests # , testers # , minizip @@ -28,17 +30,19 @@ stdenv.mkDerivation (finalAttrs: { pname = "zlib"; version = "1.3.1"; - src = let - inherit (finalAttrs) version; - in fetchurl { - urls = [ - # This URL works for 1.2.13 only; hopefully also for future releases. - "https://github.com/madler/zlib/releases/download/v${version}/zlib-${version}.tar.gz" - # Stable archive path, but captcha can be encountered, causing hash mismatch. - "https://www.zlib.net/fossils/zlib-${version}.tar.gz" - ]; - hash = "sha256-mpOyt9/ax3zrpaVYpYDnRmfdb+3kWFuR7vtg8Dty3yM="; - }; + src = + let + inherit (finalAttrs) version; + in + fetchurl { + urls = [ + # This URL works for 1.2.13 only; hopefully also for future releases. + "https://github.com/madler/zlib/releases/download/v${version}/zlib-${version}.tar.gz" + # Stable archive path, but captcha can be encountered, causing hash mismatch. + "https://www.zlib.net/fossils/zlib-${version}.tar.gz" + ]; + hash = "sha256-mpOyt9/ax3zrpaVYpYDnRmfdb+3kWFuR7vtg8Dty3yM="; + }; postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' substituteInPlace configure \ @@ -48,8 +52,10 @@ stdenv.mkDerivation (finalAttrs: { ''; strictDeps = true; - outputs = [ "out" "dev" ] - ++ lib.optional splitStaticOutput "static"; + outputs = [ + "out" + "dev" + ] ++ lib.optional splitStaticOutput "static"; setOutputFlags = false; outputDoc = "dev"; # single tiny man3 page @@ -71,8 +77,7 @@ stdenv.mkDerivation (finalAttrs: { # `--static --shared`, `--shared` and giving nothing. # Of these, we choose `--static --shared`, for clarity and simpler # conditions. - configureFlags = lib.optional static "--static" - ++ lib.optional shared "--shared"; + configureFlags = lib.optional static "--static" ++ lib.optional shared "--shared"; # We do the right thing manually, above, so don't need these. dontDisableStatic = true; dontAddStaticConfigureFlags = true; @@ -85,22 +90,23 @@ stdenv.mkDerivation (finalAttrs: { # here (in case zlib ever switches to autoconf in the future), # but we don't do it simply to avoid mass rebuilds. - postInstall = lib.optionalString splitStaticOutput '' - moveToOutput lib/libz.a "$static" - '' + postInstall = + lib.optionalString splitStaticOutput '' + moveToOutput lib/libz.a "$static" + '' # jww (2015-01-06): Sometimes this library install as a .so, even on # Darwin; others time it installs as a .dylib. I haven't yet figured out # what causes this difference. - + lib.optionalString stdenv.hostPlatform.isDarwin '' - for file in $out/lib/*.so* $out/lib/*.dylib* ; do - ${stdenv.cc.bintools.targetPrefix}install_name_tool -id "$file" $file - done - '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + for file in $out/lib/*.so* $out/lib/*.dylib* ; do + ${stdenv.cc.bintools.targetPrefix}install_name_tool -id "$file" $file + done + '' # Non-typical naming confuses libtool which then refuses to use zlib's DLL # in some cases, e.g. when compiling libpng. - + lib.optionalString (stdenv.hostPlatform.isMinGW && shared) '' - ln -s zlib1.dll $out/bin/libz.dll - ''; + + lib.optionalString (stdenv.hostPlatform.isMinGW && shared) '' + ln -s zlib1.dll $out/bin/libz.dll + ''; # As zlib takes part in the stdenv building, we don't want references # to the bootstrap-tools libgcc (as uses to happen on arm/mips) @@ -109,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: { # We don't strip on static cross-compilation because of reports that native # stripping corrupted the target library; see commit 12e960f5 for the report. dontStrip = stdenv.hostPlatform != stdenv.buildPlatform && static; - configurePlatforms = []; + configurePlatforms = [ ]; installFlags = lib.optionals stdenv.hostPlatform.isMinGW [ "BINARY_PATH=$(out)/bin" @@ -120,15 +126,17 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; doCheck = true; - makeFlags = [ - "PREFIX=${stdenv.cc.targetPrefix}" - ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ - "-f" "win32/Makefile.gcc" - ] ++ lib.optionals shared [ - # Note that as of writing (zlib 1.2.11), this flag only has an effect - # for Windows as it is specific to `win32/Makefile.gcc`. - "SHARED_MODE=1" - ]; + makeFlags = + [ "PREFIX=${stdenv.cc.targetPrefix}" ] + ++ lib.optionals stdenv.hostPlatform.isMinGW [ + "-f" + "win32/Makefile.gcc" + ] + ++ lib.optionals shared [ + # Note that as of writing (zlib 1.2.11), this flag only has an effect + # for Windows as it is specific to `win32/Makefile.gcc`. + "SHARED_MODE=1" + ]; # passthru.tests = { # pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; diff --git a/pkgs/by-name/zs/zstd/default.nix b/pkgs/by-name/zs/zstd/default.nix index eebc258..a49fe2b 100644 --- a/pkgs/by-name/zs/zstd/default.nix +++ b/pkgs/by-name/zs/zstd/default.nix @@ -1,12 +1,18 @@ -{ lib, stdenv, fetchFromGitHub, cmake, bash, gnugrep -, fixDarwinDylibNames -, file -, legacySupport ? false -, static ? stdenv.hostPlatform.isStatic # generates static libraries *only* -, enableStatic ? static -# these need to be ran on the host, thus disable when cross-compiling -, buildContrib ? stdenv.hostPlatform == stdenv.buildPlatform -, doCheck ? stdenv.hostPlatform == stdenv.buildPlatform +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + bash, + gnugrep, + fixDarwinDylibNames, + file, + legacySupport ? false, + static ? stdenv.hostPlatform.isStatic, # generates static libraries *only* + enableStatic ? static, + # these need to be ran on the host, thus disable when cross-compiling + buildContrib ? stdenv.hostPlatform == stdenv.buildPlatform, + doCheck ? stdenv.hostPlatform == stdenv.buildPlatform, # for passthru.tests # , nix-update-script @@ -30,8 +36,7 @@ stdenv.mkDerivation rec { hash = "sha256-qcd92hQqVBjMT3hyntjcgk29o9wGQsg5Hg7HE5C0UNc="; }; - nativeBuildInputs = [ cmake ] - ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; + nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; buildInputs = lib.optional stdenv.hostPlatform.isUnix bash; patches = [ @@ -50,15 +55,16 @@ stdenv.mkDerivation rec { tests/playTests.sh ''; - cmakeFlags = lib.attrsets.mapAttrsToList - (name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") { - BUILD_SHARED = !static; - BUILD_STATIC = enableStatic; - BUILD_CONTRIB = buildContrib; - PROGRAMS_LINK_SHARED = !static; - LEGACY_SUPPORT = legacySupport; - BUILD_TESTS = doCheck; - }; + cmakeFlags = + lib.attrsets.mapAttrsToList (name: value: "-DZSTD_${name}:BOOL=${if value then "ON" else "OFF"}") + { + BUILD_SHARED = !static; + BUILD_STATIC = enableStatic; + BUILD_CONTRIB = buildContrib; + PROGRAMS_LINK_SHARED = !static; + LEGACY_SUPPORT = legacySupport; + BUILD_TESTS = doCheck; + }; cmakeDir = "../build/cmake"; dontUseCmakeBuildDir = true; @@ -76,25 +82,29 @@ stdenv.mkDerivation rec { runHook postCheck ''; - preInstall = '' - mkdir -p $bin/bin - substituteInPlace ../programs/zstdgrep \ - --replace ":-grep" ":-${gnugrep}/bin/grep" \ - --replace ":-zstdcat" ":-$bin/bin/zstdcat" - - substituteInPlace ../programs/zstdless \ - --replace "zstdcat" "$bin/bin/zstdcat" - '' + lib.optionalString buildContrib ( + preInstall = '' - cp contrib/pzstd/pzstd $bin/bin/pzstd - '' + lib.optionalString stdenv.isDarwin '' - install_name_tool -change @rpath/libzstd.1.dylib $out/lib/libzstd.1.dylib $bin/bin/pzstd - '' - ); + mkdir -p $bin/bin + substituteInPlace ../programs/zstdgrep \ + --replace ":-grep" ":-${gnugrep}/bin/grep" \ + --replace ":-zstdcat" ":-$bin/bin/zstdcat" - outputs = [ "bin" "dev" ] - ++ lib.optional stdenv.hostPlatform.isUnix "man" - ++ [ "out" ]; + substituteInPlace ../programs/zstdless \ + --replace "zstdcat" "$bin/bin/zstdcat" + '' + + lib.optionalString buildContrib ( + '' + cp contrib/pzstd/pzstd $bin/bin/pzstd + '' + + lib.optionalString stdenv.isDarwin '' + install_name_tool -change @rpath/libzstd.1.dylib $out/lib/libzstd.1.dylib $bin/bin/pzstd + '' + ); + + outputs = [ + "bin" + "dev" + ] ++ lib.optional stdenv.hostPlatform.isUnix "man" ++ [ "out" ]; # passthru = { # updateScript = nix-update-script { }; diff --git a/pkgs/by-name/zs/zstd/packages.nix b/pkgs/by-name/zs/zstd/packages.nix index db501f7..846396c 100644 --- a/pkgs/by-name/zs/zstd/packages.nix +++ b/pkgs/by-name/zs/zstd/packages.nix @@ -1,9 +1,6 @@ { ... }: res: pkgs: super: -with pkgs; -{ - zstd = callPackage ./. { - cmake = buildPackages.cmakeMinimal; - }; +with pkgs; { + zstd = callPackage ./. { cmake = buildPackages.cmakeMinimal; }; } diff --git a/pkgs/common-updater/combinators.nix b/pkgs/common-updater/combinators.nix index d60a6e7..f731906 100644 --- a/pkgs/common-updater/combinators.nix +++ b/pkgs/common-updater/combinators.nix @@ -1,5 +1,4 @@ -{ lib -}: +{ lib }: /* This is a set of tools to manipulate update scripts as recognized by update.nix. @@ -27,43 +26,60 @@ */ let - /* - type ShellArg = String | { __rawShell : String } - */ + # type ShellArg = String | { __rawShell : String } /* Quotes all arguments to be safely passed to the Bourne shell. escapeShellArgs' : [ShellArg] -> String */ - escapeShellArgs' = lib.concatMapStringsSep " " (arg: if arg ? __rawShell then arg.__rawShell else lib.escapeShellArg arg); + escapeShellArgs' = lib.concatMapStringsSep " " ( + arg: if arg ? __rawShell then arg.__rawShell else lib.escapeShellArg arg + ); /* processArg : { maxArgIndex : Int, args : [ShellArg], paths : [FilePath] } → (String|FilePath) → { maxArgIndex : Int, args : [ShellArg], paths : [FilePath] } Helper reducer function for building a command arguments where file paths are replaced with argv[x] reference. */ processArg = - { maxArgIndex, args, paths }: + { + maxArgIndex, + args, + paths, + }: arg: - if builtins.isPath arg then { - args = args ++ [ { __rawShell = "\"\$${builtins.toString maxArgIndex}\""; } ]; - maxArgIndex = maxArgIndex + 1; - paths = paths ++ [ arg ]; - } else { - args = args ++ [ arg ]; - inherit maxArgIndex paths; - }; + if builtins.isPath arg then + { + args = args ++ [ { __rawShell = "\"\$${builtins.toString maxArgIndex}\""; } ]; + maxArgIndex = maxArgIndex + 1; + paths = paths ++ [ arg ]; + } + else + { + args = args ++ [ arg ]; + inherit maxArgIndex paths; + }; /* extractPaths : Int → [ (String|FilePath) ] → { maxArgIndex : Int, args : [ShellArg], paths : [FilePath] } Helper function that extracts file paths from command arguments and replaces them with argv[x] references. */ - extractPaths = maxArgIndex: command: builtins.foldl' processArg { inherit maxArgIndex; args = [ ]; paths = [ ]; } command; + extractPaths = + maxArgIndex: command: + builtins.foldl' processArg { + inherit maxArgIndex; + args = [ ]; + paths = [ ]; + } command; /* processCommand : { maxArgIndex : Int, commands : [[ShellArg]], paths : [FilePath] } → [ (String|FilePath) ] → { maxArgIndex : Int, commands : [[ShellArg]], paths : [FilePath] } Helper reducer function for extracting file paths from individual commands. */ processCommand = - { maxArgIndex, commands, paths }: + { + maxArgIndex, + commands, + paths, + }: command: let new = extractPaths maxArgIndex command; @@ -77,13 +93,20 @@ let extractCommands : Int → [[ (String|FilePath) ]] → { maxArgIndex : Int, commands : [[ShellArg]], paths : [FilePath] } Helper function for extracting file paths from a list of commands and replacing them with argv[x] references. */ - extractCommands = maxArgIndex: commands: builtins.foldl' processCommand { inherit maxArgIndex; commands = [ ]; paths = [ ]; } commands; + extractCommands = + maxArgIndex: commands: + builtins.foldl' processCommand { + inherit maxArgIndex; + commands = [ ]; + paths = [ ]; + } commands; /* commandsToShellInvocation : [[ (String|FilePath) ]] → [ (String|FilePath) ] Converts a list of commands into a single command by turning them into a shell script and passing them to `sh -c`. */ - commandsToShellInvocation = commands: + commandsToShellInvocation = + commands: let extracted = extractCommands 0 commands; in @@ -93,19 +116,21 @@ let (lib.concatMapStringsSep ";" escapeShellArgs' extracted.commands) # We need paths as separate arguments so that update.nix can ensure they refer to the local directory # rather than a store path. - ] ++ extracted.paths; + ] + ++ extracted.paths; in rec { /* normalize : UpdateScript → UpdateScript EXPERIMENTAL! Converts a basic update script to the experimental attribute set form. */ - normalize = updateScript: { - command = lib.toList (updateScript.command or updateScript); - supportedFeatures = updateScript.supportedFeatures or [ ]; - } // lib.optionalAttrs (updateScript ? attrPath) { - inherit (updateScript) attrPath; - }; + normalize = + updateScript: + { + command = lib.toList (updateScript.command or updateScript); + supportedFeatures = updateScript.supportedFeatures or [ ]; + } + // lib.optionalAttrs (updateScript ? attrPath) { inherit (updateScript) attrPath; }; /* sequence : [UpdateScript] → UpdateScript @@ -119,7 +144,9 @@ rec { in let scripts = scriptsNormalized; - hasCommitSupport = lib.findSingle ({ supportedFeatures, ... }: supportedFeatures == [ "commit" ]) null null scripts != null; + hasCommitSupport = + lib.findSingle ({ supportedFeatures, ... }: supportedFeatures == [ "commit" ]) null null scripts + != null; validateFeatures = if hasCommitSupport then ({ supportedFeatures, ... }: supportedFeatures == [ "commit" ] || supportedFeatures == [ "silent" ]) @@ -127,14 +154,25 @@ rec { ({ supportedFeatures, ... }: supportedFeatures == [ ]); in - assert lib.assertMsg (lib.all validateFeatures scripts) "Combining update scripts with features enabled (other than a single script with “commit” and all other with “silent”) is currently unsupported."; - assert lib.assertMsg (builtins.length (lib.unique (builtins.map ({ attrPath ? null, ... }: attrPath) scripts)) == 1) "Combining update scripts with different attr paths is currently unsupported."; + assert lib.assertMsg (lib.all validateFeatures scripts) + "Combining update scripts with features enabled (other than a single script with “commit” and all other with “silent”) is currently unsupported."; + assert lib.assertMsg ( + builtins.length ( + lib.unique ( + builtins.map ( + { + attrPath ? null, + ... + }: + attrPath + ) scripts + ) + ) == 1 + ) "Combining update scripts with different attr paths is currently unsupported."; { command = commandsToShellInvocation (builtins.map ({ command, ... }: command) scripts); - supportedFeatures = lib.optionals hasCommitSupport [ - "commit" - ]; + supportedFeatures = lib.optionals hasCommitSupport [ "commit" ]; }; /* @@ -142,8 +180,7 @@ rec { EXPERIMENTAL! Simple update script that copies the output of Nix derivation built by `attr` to `path`. */ copyAttrOutputToFile = - attr: - path: + attr: path: { command = [ diff --git a/pkgs/common-updater/directory-listing-updater.nix b/pkgs/common-updater/directory-listing-updater.nix index bd0b5b1..d15a7c1 100644 --- a/pkgs/common-updater/directory-listing-updater.nix +++ b/pkgs/common-updater/directory-listing-updater.nix @@ -1,20 +1,32 @@ -{ lib -, genericUpdater -, common-updater-scripts +{ + lib, + genericUpdater, + common-updater-scripts, }: -{ pname ? null -, version ? null -, attrPath ? null -, ignoredVersions ? "" -, rev-prefix ? "" -, odd-unstable ? false -, patchlevel-unstable ? false -, url ? null -, extraRegex ? null +{ + pname ? null, + version ? null, + attrPath ? null, + ignoredVersions ? "", + rev-prefix ? "", + odd-unstable ? false, + patchlevel-unstable ? false, + url ? null, + extraRegex ? null, }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; - versionLister = "${common-updater-scripts}/bin/list-directory-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"} ${lib.optionalString (extraRegex != null) "--extra-regex=${lib.escapeShellArg extraRegex}"}"; + inherit + pname + version + attrPath + ignoredVersions + rev-prefix + odd-unstable + patchlevel-unstable + ; + versionLister = "${common-updater-scripts}/bin/list-directory-versions ${ + lib.optionalString (url != null) "--url=${lib.escapeShellArg url}" + } ${lib.optionalString (extraRegex != null) "--extra-regex=${lib.escapeShellArg extraRegex}"}"; } diff --git a/pkgs/common-updater/generic-updater.nix b/pkgs/common-updater/generic-updater.nix index 25008d6..74643b9 100644 --- a/pkgs/common-updater/generic-updater.nix +++ b/pkgs/common-updater/generic-updater.nix @@ -1,14 +1,23 @@ -{ stdenv, writeScript, coreutils, gnugrep, gnused, common-updater-scripts, nix }: +{ + stdenv, + writeScript, + coreutils, + gnugrep, + gnused, + common-updater-scripts, + nix, +}: -{ name ? null -, pname ? null -, version ? null -, attrPath ? null -, versionLister -, ignoredVersions ? "" -, rev-prefix ? "" -, odd-unstable ? false -, patchlevel-unstable ? false +{ + name ? null, + pname ? null, + version ? null, + attrPath ? null, + versionLister, + ignoredVersions ? "", + rev-prefix ? "", + odd-unstable ? false, + patchlevel-unstable ? false, }: let @@ -114,9 +123,21 @@ let echo "" >> ${fileForGitCommands} ''; -in { +in +{ name = "generic-update-script"; - command = [ updateScript name pname version attrPath versionLister ignoredVersions rev-prefix odd-unstable patchlevel-unstable ]; + command = [ + updateScript + name + pname + version + attrPath + versionLister + ignoredVersions + rev-prefix + odd-unstable + patchlevel-unstable + ]; supportedFeatures = [ # Stdout must contain output according to the updateScript commit protocol when the update script finishes with a non-zero exit code. "commit" diff --git a/pkgs/common-updater/git-updater.nix b/pkgs/common-updater/git-updater.nix index 86bf88a..139edd1 100644 --- a/pkgs/common-updater/git-updater.nix +++ b/pkgs/common-updater/git-updater.nix @@ -1,21 +1,33 @@ -{ lib -, genericUpdater -, common-updater-scripts +{ + lib, + genericUpdater, + common-updater-scripts, }: -{ pname ? null -, version ? null -, attrPath ? null -, ignoredVersions ? "" -, rev-prefix ? "" -, odd-unstable ? false -, patchlevel-unstable ? false -# an explicit url is needed when src.meta.homepage or src.url don't -# point to a git repo (eg. when using fetchurl, fetchzip, ...) -, url ? null +{ + pname ? null, + version ? null, + attrPath ? null, + ignoredVersions ? "", + rev-prefix ? "", + odd-unstable ? false, + patchlevel-unstable ? false, + # an explicit url is needed when src.meta.homepage or src.url don't + # point to a git repo (eg. when using fetchurl, fetchzip, ...) + url ? null, }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; - versionLister = "${common-updater-scripts}/bin/list-git-tags ${lib.optionalString (url != null) "--url=${url}"}"; + inherit + pname + version + attrPath + ignoredVersions + rev-prefix + odd-unstable + patchlevel-unstable + ; + versionLister = "${common-updater-scripts}/bin/list-git-tags ${ + lib.optionalString (url != null) "--url=${url}" + }"; } diff --git a/pkgs/common-updater/http-two-levels-updater.nix b/pkgs/common-updater/http-two-levels-updater.nix index 4656163..c36e470 100644 --- a/pkgs/common-updater/http-two-levels-updater.nix +++ b/pkgs/common-updater/http-two-levels-updater.nix @@ -1,19 +1,31 @@ -{ lib -, genericUpdater -, common-updater-scripts +{ + lib, + genericUpdater, + common-updater-scripts, }: -{ pname ? null -, version ? null -, attrPath ? null -, ignoredVersions ? "" -, rev-prefix ? "" -, odd-unstable ? false -, patchlevel-unstable ? false -, url ? null +{ + pname ? null, + version ? null, + attrPath ? null, + ignoredVersions ? "", + rev-prefix ? "", + odd-unstable ? false, + patchlevel-unstable ? false, + url ? null, }: genericUpdater { - inherit pname version attrPath ignoredVersions rev-prefix odd-unstable patchlevel-unstable; - versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${lib.optionalString (url != null) "--url=${lib.escapeShellArg url}"}"; + inherit + pname + version + attrPath + ignoredVersions + rev-prefix + odd-unstable + patchlevel-unstable + ; + versionLister = "${common-updater-scripts}/bin/list-archive-two-levels-versions ${ + lib.optionalString (url != null) "--url=${lib.escapeShellArg url}" + }"; } diff --git a/pkgs/common-updater/nix-update.nix b/pkgs/common-updater/nix-update.nix index 342b167..dc4dc58 100644 --- a/pkgs/common-updater/nix-update.nix +++ b/pkgs/common-updater/nix-update.nix @@ -1,7 +1,8 @@ { lib, nix-update }: -{ attrPath ? null -, extraArgs ? [ ] +{ + attrPath ? null, + extraArgs ? [ ], }: [ "${lib.getExe nix-update}" ] ++ extraArgs ++ lib.optional (attrPath != null) attrPath diff --git a/pkgs/common-updater/packages.nix b/pkgs/common-updater/packages.nix index 2296121..de51873 100644 --- a/pkgs/common-updater/packages.nix +++ b/pkgs/common-updater/packages.nix @@ -1,8 +1,7 @@ { ... }: res: pkgs: super: -with pkgs; -{ +with pkgs; { common-updater-scripts = callPackage ./scripts.nix { }; genericUpdater = callPackage ./generic-updater.nix { }; diff --git a/pkgs/common-updater/scripts.nix b/pkgs/common-updater/scripts.nix index d5ee3b5..c84eced 100644 --- a/pkgs/common-updater/scripts.nix +++ b/pkgs/common-updater/scripts.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, makeWrapper -, coreutils -, diffutils -, git -, gnugrep -, gnused -, jq -, nix -, python3Packages +{ + lib, + stdenv, + makeWrapper, + coreutils, + diffutils, + git, + gnugrep, + gnused, + jq, + nix, + python3Packages, }: stdenv.mkDerivation { @@ -33,7 +34,17 @@ stdenv.mkDerivation { # wrap non python scripts for f in $out/bin/*; do if ! (head -n1 "$f" | grep -q '#!.*/env.*\(python\|pypy\)'); then - wrapProgram $f --prefix PATH : ${lib.makeBinPath [ coreutils diffutils git gnugrep gnused jq nix ]} + wrapProgram $f --prefix PATH : ${ + lib.makeBinPath [ + coreutils + diffutils + git + gnugrep + gnused + jq + nix + ] + } fi done diff --git a/pkgs/common-updater/unstable-updater.nix b/pkgs/common-updater/unstable-updater.nix index d982fc6..d1b3640 100644 --- a/pkgs/common-updater/unstable-updater.nix +++ b/pkgs/common-updater/unstable-updater.nix @@ -1,23 +1,27 @@ -{ lib -, writeShellApplication -, coreutils -, git -, nix -, common-updater-scripts +{ + lib, + writeShellApplication, + coreutils, + git, + nix, + common-updater-scripts, }: # This is an updater for unstable packages that should always use the latest # commit. -{ url ? null # The git url, if empty it will be set to src.gitRepoUrl -, branch ? null -, hardcodeZeroVersion ? false # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions -, tagFormat ? "*" # A `git describe --tags --match ''` pattern that tags must match to be considered -, tagPrefix ? null # strip this prefix from a tag name -, tagConverter ? null # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout -, shallowClone ? true +{ + url ? null, # The git url, if empty it will be set to src.gitRepoUrl + branch ? null, + hardcodeZeroVersion ? false, # Use a made-up version "0" instead of latest tag. Use when there is no previous release, or the project's tagging system is incompatible with what we expect from versions + tagFormat ? "*", # A `git describe --tags --match ''` pattern that tags must match to be considered + tagPrefix ? null, # strip this prefix from a tag name + tagConverter ? null, # A command to convert more complex tag formats. It receives the git tag via stdin and should convert it into x.y.z format to stdout + shallowClone ? true, }: -assert lib.asserts.assertMsg (tagPrefix == null || tagConverter == null) "Can only use either tagPrefix or tagConverter!"; +assert lib.asserts.assertMsg ( + tagPrefix == null || tagConverter == null +) "Can only use either tagPrefix or tagConverter!"; let updateScript = writeShellApplication { @@ -158,14 +162,9 @@ in (lib.getExe updateScript) "--url=${builtins.toString url}" "--tag-format=${tagFormat}" -] ++ lib.optionals (branch != null) [ - "--branch=${branch}" -] ++ lib.optionals (tagPrefix != null) [ - "--tag-prefix=${tagPrefix}" -] ++ lib.optionals (tagConverter != null) [ - "--tag-converter=${tagConverter}" -] ++ lib.optionals hardcodeZeroVersion [ - "--hardcode-zero-version" -] ++ lib.optionals shallowClone [ - "--shallow-clone" ] +++ lib.optionals (branch != null) [ "--branch=${branch}" ] +++ lib.optionals (tagPrefix != null) [ "--tag-prefix=${tagPrefix}" ] +++ lib.optionals (tagConverter != null) [ "--tag-converter=${tagConverter}" ] +++ lib.optionals hardcodeZeroVersion [ "--hardcode-zero-version" ] +++ lib.optionals shallowClone [ "--shallow-clone" ] diff --git a/pkgs/pkgs-lib/default.nix b/pkgs/pkgs-lib/default.nix index 113dceb..1632e51 100644 --- a/pkgs/pkgs-lib/default.nix +++ b/pkgs/pkgs-lib/default.nix @@ -1,11 +1,9 @@ # pkgs-lib is for functions and values that can't be in lib because # they depend on some packages. This notably is *not* for supporting package # building, instead pkgs/build-support is the place for that. -{ lib, pkgs }: { +{ lib, pkgs }: +{ # setting format types and generators. These do not fit in lib/types.nix, # because they depend on pkgs for rendering some formats - formats = import ./formats.nix { - inherit lib pkgs; - }; + formats = import ./formats.nix { inherit lib pkgs; }; } - diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix index 1b72270..b33bee5 100644 --- a/pkgs/pkgs-lib/formats.nix +++ b/pkgs/pkgs-lib/formats.nix @@ -2,279 +2,382 @@ rec { /* + Every following entry represents a format for program configuration files + used for `settings`-style options (see https://github.com/NixOS/rfcs/pull/42). + Each entry should look as follows: - Every following entry represents a format for program configuration files - used for `settings`-style options (see https://github.com/NixOS/rfcs/pull/42). - Each entry should look as follows: + = : { + # ^^ Parameters for controlling the format - = : { - # ^^ Parameters for controlling the format + # The module system type most suitable for representing such a format + # The description needs to be overwritten for recursive types + type = ...; - # The module system type most suitable for representing such a format - # The description needs to be overwritten for recursive types - type = ...; + # Utility functions for convenience, or special interactions with the + # format (optional) + lib = { + exampleFunction = ... + # Types specific to the format (optional) + types = { ... }; + ... + }; - # Utility functions for convenience, or special interactions with the - # format (optional) - lib = { - exampleFunction = ... - # Types specific to the format (optional) - types = { ... }; - ... - }; + # generate :: Name -> Value -> Path + # A function for generating a file with a value of such a type + generate = ...; - # generate :: Name -> Value -> Path - # A function for generating a file with a value of such a type - generate = ...; - - }); - - Please note that `pkgs` may not always be available for use due to the split - options doc build introduced in fc614c37c653, so lazy evaluation of only the - 'type' field is required. + }); + Please note that `pkgs` may not always be available for use due to the split + options doc build introduced in fc614c37c653, so lazy evaluation of only the + 'type' field is required. */ - - inherit (import ./formats/java-properties/default.nix { inherit lib pkgs; }) - javaProperties; + inherit (import ./formats/java-properties/default.nix { inherit lib pkgs; }) javaProperties; libconfig = (import ./formats/libconfig/default.nix { inherit lib pkgs; }).format; hocon = (import ./formats/hocon/default.nix { inherit lib pkgs; }).format; - json = {}: { + json = + { }: + { - type = with lib.types; let - valueType = nullOr (oneOf [ - bool - int - float - str - path - (attrsOf valueType) - (listOf valueType) - ]) // { - description = "JSON value"; - }; - in valueType; + type = + with lib.types; + let + valueType = + nullOr (oneOf [ + bool + int + float + str + path + (attrsOf valueType) + (listOf valueType) + ]) + // { + description = "JSON value"; + }; + in + valueType; - generate = name: value: pkgs.callPackage ({ runCommand, jq }: runCommand name { - nativeBuildInputs = [ jq ]; - value = builtins.toJSON value; - passAsFile = [ "value" ]; - } '' - jq . "$valuePath"> $out - '') {}; + generate = + name: value: + pkgs.callPackage ( + { runCommand, jq }: + runCommand name + { + nativeBuildInputs = [ jq ]; + value = builtins.toJSON value; + passAsFile = [ "value" ]; + } + '' + jq . "$valuePath"> $out + '' + ) { }; - }; + }; - yaml = {}: { + yaml = + { }: + { - generate = name: value: pkgs.callPackage ({ runCommand, remarshal }: runCommand name { - nativeBuildInputs = [ remarshal ]; - value = builtins.toJSON value; - passAsFile = [ "value" ]; - } '' - json2yaml "$valuePath" "$out" - '') {}; + generate = + name: value: + pkgs.callPackage ( + { runCommand, remarshal }: + runCommand name + { + nativeBuildInputs = [ remarshal ]; + value = builtins.toJSON value; + passAsFile = [ "value" ]; + } + '' + json2yaml "$valuePath" "$out" + '' + ) { }; - type = with lib.types; let - valueType = nullOr (oneOf [ - bool - int - float - str - path - (attrsOf valueType) - (listOf valueType) - ]) // { - description = "YAML value"; - }; - in valueType; + type = + with lib.types; + let + valueType = + nullOr (oneOf [ + bool + int + float + str + path + (attrsOf valueType) + (listOf valueType) + ]) + // { + description = "YAML value"; + }; + in + valueType; - }; + }; # the ini formats share a lot of code - inherit ( - let - singleIniAtom = with lib.types; nullOr (oneOf [ bool int float str ]) // { - description = "INI atom (null, bool, int, float or string)"; - }; - iniAtom = with lib.types; { listsAsDuplicateKeys, listToValue }: - if listsAsDuplicateKeys then - coercedTo singleIniAtom lib.singleton (listOf singleIniAtom) // { - description = singleIniAtom.description + " or a list of them for duplicate keys"; - } - else if listToValue != null then - coercedTo singleIniAtom lib.singleton (nonEmptyListOf singleIniAtom) // { - description = singleIniAtom.description + " or a non-empty list of them"; - } - else - singleIniAtom; - iniSection = with lib.types; { listsAsDuplicateKeys, listToValue }@args: - attrsOf (iniAtom args) // { - description = "section of an INI file (attrs of " + (iniAtom args).description + ")"; - }; + inherit + ( + let + singleIniAtom = + with lib.types; + nullOr (oneOf [ + bool + int + float + str + ]) + // { + description = "INI atom (null, bool, int, float or string)"; + }; + iniAtom = + with lib.types; + { listsAsDuplicateKeys, listToValue }: + if listsAsDuplicateKeys then + coercedTo singleIniAtom lib.singleton (listOf singleIniAtom) + // { + description = singleIniAtom.description + " or a list of them for duplicate keys"; + } + else if listToValue != null then + coercedTo singleIniAtom lib.singleton (nonEmptyListOf singleIniAtom) + // { + description = singleIniAtom.description + " or a non-empty list of them"; + } + else + singleIniAtom; + iniSection = + with lib.types; + { listsAsDuplicateKeys, listToValue }@args: + attrsOf (iniAtom args) + // { + description = "section of an INI file (attrs of " + (iniAtom args).description + ")"; + }; - maybeToList = listToValue: if listToValue != null then lib.mapAttrs (key: val: if lib.isList val then listToValue val else val) else lib.id; - in { - ini = { - # Represents lists as duplicate keys - listsAsDuplicateKeys ? false, - # Alternative to listsAsDuplicateKeys, converts list to non-list - # listToValue :: [IniAtom] -> IniAtom - listToValue ? null, - ... - }@args: - assert listsAsDuplicateKeys -> listToValue == null; - { + maybeToList = + listToValue: + if listToValue != null then + lib.mapAttrs (key: val: if lib.isList val then listToValue val else val) + else + lib.id; + in + { + ini = + { + # Represents lists as duplicate keys + listsAsDuplicateKeys ? false, + # Alternative to listsAsDuplicateKeys, converts list to non-list + # listToValue :: [IniAtom] -> IniAtom + listToValue ? null, + ... + }@args: + assert listsAsDuplicateKeys -> listToValue == null; + { - type = lib.types.attrsOf (iniSection { listsAsDuplicateKeys = listsAsDuplicateKeys; listToValue = listToValue; }); + type = lib.types.attrsOf (iniSection { + listsAsDuplicateKeys = listsAsDuplicateKeys; + listToValue = listToValue; + }); - generate = name: value: - lib.pipe value - [ - (lib.mapAttrs (_: maybeToList listToValue)) - (lib.generators.toINI (removeAttrs args ["listToValue"])) - (pkgs.writeText name) - ]; - }; + generate = + name: value: + lib.pipe value [ + (lib.mapAttrs (_: maybeToList listToValue)) + (lib.generators.toINI (removeAttrs args [ "listToValue" ])) + (pkgs.writeText name) + ]; + }; - iniWithGlobalSection = { - # Represents lists as duplicate keys - listsAsDuplicateKeys ? false, - # Alternative to listsAsDuplicateKeys, converts list to non-list - # listToValue :: [IniAtom] -> IniAtom - listToValue ? null, - ... - }@args: - assert listsAsDuplicateKeys -> listToValue == null; - { - type = lib.types.submodule { - options = { - sections = lib.mkOption rec { - type = lib.types.attrsOf (iniSection { listsAsDuplicateKeys = listsAsDuplicateKeys; listToValue = listToValue; }); - default = {}; - description = type.description; - }; - globalSection = lib.mkOption rec { - type = iniSection { listsAsDuplicateKeys = listsAsDuplicateKeys; listToValue = listToValue; }; - default = {}; - description = "global " + type.description; + iniWithGlobalSection = + { + # Represents lists as duplicate keys + listsAsDuplicateKeys ? false, + # Alternative to listsAsDuplicateKeys, converts list to non-list + # listToValue :: [IniAtom] -> IniAtom + listToValue ? null, + ... + }@args: + assert listsAsDuplicateKeys -> listToValue == null; + { + type = lib.types.submodule { + options = { + sections = lib.mkOption rec { + type = lib.types.attrsOf (iniSection { + listsAsDuplicateKeys = listsAsDuplicateKeys; + listToValue = listToValue; + }); + default = { }; + description = type.description; + }; + globalSection = lib.mkOption rec { + type = iniSection { + listsAsDuplicateKeys = listsAsDuplicateKeys; + listToValue = listToValue; + }; + default = { }; + description = "global " + type.description; + }; }; }; + generate = + name: + { + sections ? { }, + globalSection ? { }, + ... + }: + pkgs.writeText name ( + lib.generators.toINIWithGlobalSection (removeAttrs args [ "listToValue" ]) { + globalSection = maybeToList listToValue globalSection; + sections = lib.mapAttrs (_: maybeToList listToValue) sections; + } + ); }; - generate = name: { sections ? {}, globalSection ? {}, ... }: - pkgs.writeText name (lib.generators.toINIWithGlobalSection (removeAttrs args ["listToValue"]) - { - globalSection = maybeToList listToValue globalSection; - sections = lib.mapAttrs (_: maybeToList listToValue) sections; - }); - }; - gitIni = { listsAsDuplicateKeys ? false, ... }@args: { - type = let - atom = iniAtom { - listsAsDuplicateKeys = listsAsDuplicateKeys; - listToValue = null; + gitIni = + { + listsAsDuplicateKeys ? false, + ... + }@args: + { + type = + let + atom = iniAtom { + listsAsDuplicateKeys = listsAsDuplicateKeys; + listToValue = null; + }; + in + with lib.types; + attrsOf (attrsOf (either atom (attrsOf atom))); + + generate = name: value: pkgs.writeText name (lib.generators.toGitINI value); }; - in with lib.types; attrsOf (attrsOf (either atom (attrsOf atom))); - generate = name: value: pkgs.writeText name (lib.generators.toGitINI value); - }; - - }) ini iniWithGlobalSection gitIni; + } + ) + ini + iniWithGlobalSection + gitIni + ; # As defined by systemd.syntax(7) # # null does not set any value, which allows for RFC42 modules to specify # optional config options. - systemd = let - mkValueString = lib.generators.mkValueStringDefault {}; - mkKeyValue = k: v: - if v == null then "# ${k} is unset" - else "${k} = ${mkValueString v}"; - in ini { - listsAsDuplicateKeys = true; - inherit mkKeyValue; - }; + systemd = + let + mkValueString = lib.generators.mkValueStringDefault { }; + mkKeyValue = k: v: if v == null then "# ${k} is unset" else "${k} = ${mkValueString v}"; + in + ini { + listsAsDuplicateKeys = true; + inherit mkKeyValue; + }; - keyValue = { - # Represents lists as duplicate keys - listsAsDuplicateKeys ? false, - # Alternative to listsAsDuplicateKeys, converts list to non-list - # listToValue :: [Atom] -> Atom - listToValue ? null, - ... + keyValue = + { + # Represents lists as duplicate keys + listsAsDuplicateKeys ? false, + # Alternative to listsAsDuplicateKeys, converts list to non-list + # listToValue :: [Atom] -> Atom + listToValue ? null, + ... }@args: assert listsAsDuplicateKeys -> listToValue == null; { - type = with lib.types; let + type = + with lib.types; + let - singleAtom = nullOr (oneOf [ - bool - int - float - str - ]) // { - description = "atom (null, bool, int, float or string)"; - }; + singleAtom = + nullOr (oneOf [ + bool + int + float + str + ]) + // { + description = "atom (null, bool, int, float or string)"; + }; - atom = - if listsAsDuplicateKeys then - coercedTo singleAtom lib.singleton (listOf singleAtom) // { - description = singleAtom.description + " or a list of them for duplicate keys"; - } - else if listToValue != null then - coercedTo singleAtom lib.singleton (nonEmptyListOf singleAtom) // { - description = singleAtom.description + " or a non-empty list of them"; - } - else - singleAtom; + atom = + if listsAsDuplicateKeys then + coercedTo singleAtom lib.singleton (listOf singleAtom) + // { + description = singleAtom.description + " or a list of them for duplicate keys"; + } + else if listToValue != null then + coercedTo singleAtom lib.singleton (nonEmptyListOf singleAtom) + // { + description = singleAtom.description + " or a non-empty list of them"; + } + else + singleAtom; - in attrsOf atom; + in + attrsOf atom; - generate = name: value: - let - transformedValue = - if listToValue != null - then - lib.mapAttrs (key: val: - if lib.isList val then listToValue val else val - ) value - else value; - in pkgs.writeText name (lib.generators.toKeyValue (removeAttrs args ["listToValue"]) transformedValue); + generate = + name: value: + let + transformedValue = + if listToValue != null then + lib.mapAttrs (key: val: if lib.isList val then listToValue val else val) value + else + value; + in + pkgs.writeText name ( + lib.generators.toKeyValue (removeAttrs args [ "listToValue" ]) transformedValue + ); - }; + }; - toml = {}: json {} // { - type = with lib.types; let - valueType = oneOf [ - bool - int - float - str - path - (attrsOf valueType) - (listOf valueType) - ] // { - description = "TOML value"; - }; - in valueType; + toml = + { }: + json { } + // { + type = + with lib.types; + let + valueType = + oneOf [ + bool + int + float + str + path + (attrsOf valueType) + (listOf valueType) + ] + // { + description = "TOML value"; + }; + in + valueType; - generate = name: value: pkgs.callPackage ({ runCommand, remarshal }: runCommand name { - nativeBuildInputs = [ remarshal ]; - value = builtins.toJSON value; - passAsFile = [ "value" ]; - } '' - json2toml "$valuePath" "$out" - '') {}; + generate = + name: value: + pkgs.callPackage ( + { runCommand, remarshal }: + runCommand name + { + nativeBuildInputs = [ remarshal ]; + value = builtins.toJSON value; + passAsFile = [ "value" ]; + } + '' + json2toml "$valuePath" "$out" + '' + ) { }; - }; + }; - /* For configurations of Elixir project, like config.exs or runtime.exs + /* + For configurations of Elixir project, like config.exs or runtime.exs Most Elixir project are configured using the [Config] Elixir DSL @@ -306,23 +409,43 @@ rec { [List]: [Tuple]: */ - elixirConf = { elixir ? pkgs.elixir }: - with lib; let - toElixir = value: with builtins; - if value == null then "nil" else - if value == true then "true" else - if value == false then "false" else - if isInt value || isFloat value then toString value else - if isString value then string value else - if isAttrs value then attrs value else - if isList value then list value else - abort "formats.elixirConf: should never happen (value = ${value})"; + elixirConf = + { + elixir ? pkgs.elixir, + }: + with lib; + let + toElixir = + value: + with builtins; + if value == null then + "nil" + else if value == true then + "true" + else if value == false then + "false" + else if isInt value || isFloat value then + toString value + else if isString value then + string value + else if isAttrs value then + attrs value + else if isList value then + list value + else + abort "formats.elixirConf: should never happen (value = ${value})"; - escapeElixir = escape [ "\\" "#" "\"" ]; + escapeElixir = escape [ + "\\" + "#" + "\"" + ]; string = value: "\"${escapeElixir value}\""; - attrs = set: - if set ? _elixirType then specialType set + attrs = + set: + if set ? _elixirType then + specialType set else let toKeyword = name: value: "${name}: ${toElixir value}"; @@ -334,14 +457,21 @@ rec { list = values: "[" + (listContent values) + "]"; - specialType = { value, _elixirType }: - if _elixirType == "raw" then value else - if _elixirType == "atom" then value else - if _elixirType == "map" then elixirMap value else - if _elixirType == "tuple" then tuple value else - abort "formats.elixirConf: should never happen (_elixirType = ${_elixirType})"; + specialType = + { value, _elixirType }: + if _elixirType == "raw" then + value + else if _elixirType == "atom" then + value + else if _elixirType == "map" then + elixirMap value + else if _elixirType == "tuple" then + tuple value + else + abort "formats.elixirConf: should never happen (_elixirType = ${_elixirType})"; - elixirMap = set: + elixirMap = + set: let toEntry = name: value: "${toElixir name} => ${toElixir value}"; entries = concatStringsSep ", " (mapAttrsToList toEntry set); @@ -350,9 +480,11 @@ rec { tuple = values: "{${listContent values}}"; - toConf = values: + toConf = + values: let - keyConfig = rootKey: key: value: + keyConfig = + rootKey: key: value: "config ${rootKey}, ${key}, ${toElixir value}"; keyConfigs = rootKey: values: mapAttrsToList (keyConfig rootKey) values; rootConfigs = flatten (mapAttrsToList keyConfigs values); @@ -364,20 +496,23 @@ rec { ''; in { - type = with lib.types; let - valueType = nullOr - (oneOf [ - bool - int - float - str - (attrsOf valueType) - (listOf valueType) - ]) // { - description = "Elixir value"; - }; - in - attrsOf (attrsOf (valueType)); + type = + with lib.types; + let + valueType = + nullOr (oneOf [ + bool + int + float + str + (attrsOf valueType) + (listOf valueType) + ]) + // { + description = "Elixir value"; + }; + in + attrsOf (attrsOf (valueType)); lib = let @@ -390,12 +525,16 @@ rec { { inherit mkRaw; - /* Fetch an environment variable at runtime, with optional fallback - */ - mkGetEnv = { envVariable, fallback ? null }: + # Fetch an environment variable at runtime, with optional fallback + mkGetEnv = + { + envVariable, + fallback ? null, + }: mkRaw "System.get_env(${toElixir envVariable}, ${toElixir fallback})"; - /* Make an Elixir atom. + /* + Make an Elixir atom. Note: lowercase atoms still need to be prefixed by ':' */ @@ -404,106 +543,135 @@ rec { _elixirType = "atom"; }; - /* Make an Elixir tuple out of a list. - */ + # Make an Elixir tuple out of a list. mkTuple = value: { inherit value; _elixirType = "tuple"; }; - /* Make an Elixir map out of an attribute set. - */ + # Make an Elixir map out of an attribute set. mkMap = value: { inherit value; _elixirType = "map"; }; - /* Contains Elixir types. Every type it exports can also be replaced - by raw Elixir code (i.e. every type is `either type rawElixir`). + /* + Contains Elixir types. Every type it exports can also be replaced + by raw Elixir code (i.e. every type is `either type rawElixir`). - It also reexports standard types, wrapping them so that they can - also be raw Elixir. + It also reexports standard types, wrapping them so that they can + also be raw Elixir. */ - types = with lib.types; let - isElixirType = type: x: (x._elixirType or "") == type; + types = + with lib.types; + let + isElixirType = type: x: (x._elixirType or "") == type; - rawElixir = mkOptionType { - name = "rawElixir"; - description = "raw elixir"; - check = isElixirType "raw"; - }; + rawElixir = mkOptionType { + name = "rawElixir"; + description = "raw elixir"; + check = isElixirType "raw"; + }; - elixirOr = other: either other rawElixir; - in - { - inherit rawElixir elixirOr; + elixirOr = other: either other rawElixir; + in + { + inherit rawElixir elixirOr; - atom = elixirOr (mkOptionType { - name = "elixirAtom"; - description = "elixir atom"; - check = isElixirType "atom"; - }); + atom = elixirOr (mkOptionType { + name = "elixirAtom"; + description = "elixir atom"; + check = isElixirType "atom"; + }); - tuple = elixirOr (mkOptionType { - name = "elixirTuple"; - description = "elixir tuple"; - check = isElixirType "tuple"; - }); + tuple = elixirOr (mkOptionType { + name = "elixirTuple"; + description = "elixir tuple"; + check = isElixirType "tuple"; + }); - map = elixirOr (mkOptionType { - name = "elixirMap"; - description = "elixir map"; - check = isElixirType "map"; - }); - # Wrap standard types, since anything in the Elixir configuration - # can be raw Elixir - } // lib.mapAttrs (_name: type: elixirOr type) lib.types; + map = elixirOr (mkOptionType { + name = "elixirMap"; + description = "elixir map"; + check = isElixirType "map"; + }); + # Wrap standard types, since anything in the Elixir configuration + # can be raw Elixir + } + // lib.mapAttrs (_name: type: elixirOr type) lib.types; }; - generate = name: value: pkgs.runCommand name - { - value = toConf value; - passAsFile = [ "value" ]; - nativeBuildInputs = [ elixir ]; - } '' - cp "$valuePath" "$out" - mix format "$out" - ''; + generate = + name: value: + pkgs.runCommand name + { + value = toConf value; + passAsFile = [ "value" ]; + nativeBuildInputs = [ elixir ]; + } + '' + cp "$valuePath" "$out" + mix format "$out" + ''; }; # Outputs a succession of Python variable assignments # Useful for many Django-based services - pythonVars = {}: { - type = with lib.types; let - valueType = nullOr(oneOf [ - bool - float - int - path - str - (attrsOf valueType) - (listOf valueType) - ]) // { - description = "Python value"; - }; - in attrsOf valueType; - generate = name: value: pkgs.callPackage ({ runCommand, python3, black }: runCommand name { - nativeBuildInputs = [ python3 black ]; - value = builtins.toJSON value; - pythonGen = '' - import json - import os + pythonVars = + { }: + { + type = + with lib.types; + let + valueType = + nullOr (oneOf [ + bool + float + int + path + str + (attrsOf valueType) + (listOf valueType) + ]) + // { + description = "Python value"; + }; + in + attrsOf valueType; + generate = + name: value: + pkgs.callPackage ( + { + runCommand, + python3, + black, + }: + runCommand name + { + nativeBuildInputs = [ + python3 + black + ]; + value = builtins.toJSON value; + pythonGen = '' + import json + import os - with open(os.environ["valuePath"], "r") as f: - for key, value in json.load(f).items(): - print(f"{key} = {repr(value)}") - ''; - passAsFile = [ "value" "pythonGen" ]; - } '' - cat "$valuePath" - python3 "$pythonGenPath" > $out - black $out - '') {}; - }; + with open(os.environ["valuePath"], "r") as f: + for key, value in json.load(f).items(): + print(f"{key} = {repr(value)}") + ''; + passAsFile = [ + "value" + "pythonGen" + ]; + } + '' + cat "$valuePath" + python3 "$pythonGenPath" > $out + black $out + '' + ) { }; + }; } diff --git a/pkgs/pkgs-lib/formats/hocon/default.nix b/pkgs/pkgs-lib/formats/hocon/default.nix index 0ae9c56..c91c206 100644 --- a/pkgs/pkgs-lib/formats/hocon/default.nix +++ b/pkgs/pkgs-lib/formats/hocon/default.nix @@ -1,6 +1,4 @@ -{ lib -, pkgs -}: +{ lib, pkgs }: let inherit (pkgs) buildPackages callPackage; @@ -14,176 +12,205 @@ let cargoLock.lockFile = ./src/Cargo.lock; }; - hocon-validator = pkgs.writers.writePython3Bin "hocon-validator" { - libraries = [ pkgs.python3Packages.pyhocon ]; - } '' - from sys import argv - from pyhocon import ConfigFactory + hocon-validator = + pkgs.writers.writePython3Bin "hocon-validator" { libraries = [ pkgs.python3Packages.pyhocon ]; } + '' + from sys import argv + from pyhocon import ConfigFactory - if not len(argv) == 2: - print("USAGE: hocon-validator ") + if not len(argv) == 2: + print("USAGE: hocon-validator ") - ConfigFactory.parse_file(argv[1]) - ''; + ConfigFactory.parse_file(argv[1]) + ''; in { # https://github.com/lightbend/config/blob/main/HOCON.md - format = { - generator ? hocon-generator - , validator ? hocon-validator - # `include classpath("")` is not implemented in pyhocon. - # In the case that you need this functionality, - # you will have to disable pyhocon validation. - , doCheck ? true - }: let - hoconLib = { - mkInclude = value: let - includeStatement = if lib.isAttrs value && !(lib.isDerivation value) then { - required = false; - type = null; - _type = "include"; - } // value else { - value = toString value; - required = false; - type = null; - _type = "include"; - }; - in - assert lib.assertMsg (lib.elem includeStatement.type [ "file" "url" "classpath" null ]) '' - Type of HOCON mkInclude is not of type 'file', 'url' or 'classpath': - ${(lib.generators.toPretty {}) includeStatement} - ''; - includeStatement; + format = + { + generator ? hocon-generator, + validator ? hocon-validator, + # `include classpath("")` is not implemented in pyhocon. + # In the case that you need this functionality, + # you will have to disable pyhocon validation. + doCheck ? true, + }: + let + hoconLib = { + mkInclude = + value: + let + includeStatement = + if lib.isAttrs value && !(lib.isDerivation value) then + { + required = false; + type = null; + _type = "include"; + } + // value + else + { + value = toString value; + required = false; + type = null; + _type = "include"; + }; + in + assert lib.assertMsg + (lib.elem includeStatement.type [ + "file" + "url" + "classpath" + null + ]) + '' + Type of HOCON mkInclude is not of type 'file', 'url' or 'classpath': + ${(lib.generators.toPretty { }) includeStatement} + ''; + includeStatement; - mkAppend = value: { - inherit value; - _type = "append"; + mkAppend = value: { + inherit value; + _type = "append"; + }; + + mkSubstitution = + value: + if lib.isString value then + { + inherit value; + optional = false; + _type = "substitution"; + } + else + assert lib.assertMsg (lib.isAttrs value) '' + Value of invalid type provided to `hocon.lib.mkSubstition`: ${lib.typeOf value} + ''; + assert lib.assertMsg (value ? "value") '' + Argument to `hocon.lib.mkSubstition` is missing a `value`: + ${builtins.toJSON value} + ''; + { + value = value.value; + optional = value.optional or false; + _type = "substitution"; + }; }; - mkSubstitution = value: - if lib.isString value - then + in + { + type = + let + type' = + with lib.types; + let + atomType = nullOr (oneOf [ + bool + float + int + path + str + ]); + in + (oneOf [ + atomType + (listOf atomType) + (attrsOf type') + ]) + // { + description = "HOCON value"; + }; + in + type'; + + lib = hoconLib; + + generate = + name: value: + let + # TODO: remove in 24.11 + # Backwards compatibility for generators in the following locations: + # - nixos/modules/services/networking/jibri/default.nix (__hocon_envvar) + # - nixos/modules/services/networking/jicofo.nix (__hocon_envvar, __hocon_unquoted_string) + # - nixos/modules/services/networking/jitsi-videobridge.nix (__hocon_envvar) + replaceOldIndicators = + value: + if lib.isAttrs value then + ( + if value ? "__hocon_envvar" then + lib.warn '' + Use of `__hocon_envvar` has been deprecated, and will + be removed in the future. + + Please use `(pkgs.formats.hocon {}).lib.mkSubstitution` instead. + '' (hoconLib.mkSubstitution value.__hocon_envvar) + else if value ? "__hocon_unquoted_string" then + lib.warn + '' + Use of `__hocon_unquoted_string` has been deprecated, and will + be removed in the future. + + Please make use of the freeform options of + `(pkgs.formats.hocon {}).format` instead. + '' + { + value = value.__hocon_unquoted_string; + _type = "unquoted_string"; + } + else + lib.mapAttrs (_: replaceOldIndicators) value + ) + else if lib.isList value then + map replaceOldIndicators value + else + value; + + finalValue = replaceOldIndicators value; + in + callPackage + ( + { + stdenvNoCC, + hocon-generator, + hocon-validator, + writeText, + }: + stdenvNoCC.mkDerivation rec { + inherit name; + + dontUnpack = true; + + json = builtins.toJSON finalValue; + passAsFile = [ "json" ]; + + strictDeps = true; + nativeBuildInputs = [ hocon-generator ]; + buildPhase = '' + runHook preBuild + hocon-generator < $jsonPath > output.conf + runHook postBuild + ''; + + inherit doCheck; + nativeCheckInputs = [ hocon-validator ]; + checkPhase = '' + runHook preCheck + hocon-validator output.conf + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + mv output.conf $out + runHook postInstall + ''; + + passthru.json = writeText "${name}.json" json; + } + ) { - inherit value; - optional = false; - _type = "substitution"; - } - else - assert lib.assertMsg (lib.isAttrs value) '' - Value of invalid type provided to `hocon.lib.mkSubstition`: ${lib.typeOf value} - ''; - assert lib.assertMsg (value ? "value") '' - Argument to `hocon.lib.mkSubstition` is missing a `value`: - ${builtins.toJSON value} - ''; - { - value = value.value; - optional = value.optional or false; - _type = "substitution"; + hocon-generator = generator; + hocon-validator = validator; }; }; - - in { - type = let - type' = with lib.types; let - atomType = nullOr (oneOf [ - bool - float - int - path - str - ]); - in (oneOf [ - atomType - (listOf atomType) - (attrsOf type') - ]) // { - description = "HOCON value"; - }; - in type'; - - lib = hoconLib; - - generate = name: value: - let - # TODO: remove in 24.11 - # Backwards compatibility for generators in the following locations: - # - nixos/modules/services/networking/jibri/default.nix (__hocon_envvar) - # - nixos/modules/services/networking/jicofo.nix (__hocon_envvar, __hocon_unquoted_string) - # - nixos/modules/services/networking/jitsi-videobridge.nix (__hocon_envvar) - replaceOldIndicators = value: - if lib.isAttrs value then - (if value ? "__hocon_envvar" - then - lib.warn '' - Use of `__hocon_envvar` has been deprecated, and will - be removed in the future. - - Please use `(pkgs.formats.hocon {}).lib.mkSubstitution` instead. - '' - (hoconLib.mkSubstitution value.__hocon_envvar) - else if value ? "__hocon_unquoted_string" - then - lib.warn '' - Use of `__hocon_unquoted_string` has been deprecated, and will - be removed in the future. - - Please make use of the freeform options of - `(pkgs.formats.hocon {}).format` instead. - '' - { - value = value.__hocon_unquoted_string; - _type = "unquoted_string"; - } - else lib.mapAttrs (_: replaceOldIndicators) value) - else if lib.isList value - then map replaceOldIndicators value - else value; - - finalValue = replaceOldIndicators value; - in - callPackage - ({ - stdenvNoCC - , hocon-generator - , hocon-validator - , writeText - }: - stdenvNoCC.mkDerivation rec { - inherit name; - - dontUnpack = true; - - json = builtins.toJSON finalValue; - passAsFile = [ "json" ]; - - strictDeps = true; - nativeBuildInputs = [ hocon-generator ]; - buildPhase = '' - runHook preBuild - hocon-generator < $jsonPath > output.conf - runHook postBuild - ''; - - inherit doCheck; - nativeCheckInputs = [ hocon-validator ]; - checkPhase = '' - runHook preCheck - hocon-validator output.conf - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - mv output.conf $out - runHook postInstall - ''; - - passthru.json = writeText "${name}.json" json; - }) - { - hocon-generator = generator; - hocon-validator = validator; - }; - }; } diff --git a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix b/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix index 5f0b3d1..c816ee6 100644 --- a/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix +++ b/pkgs/pkgs-lib/formats/hocon/test/backwards-compatibility/default.nix @@ -1,9 +1,17 @@ -{ lib, formats, stdenvNoCC, writeText, ... }: +{ + lib, + formats, + stdenvNoCC, + writeText, + ... +}: let hocon = formats.hocon { }; expression = { - substitution = { __hocon_envvar = "PATH"; }; + substitution = { + __hocon_envvar = "PATH"; + }; literal = { __hocon_unquoted_string = '' [ @@ -13,7 +21,9 @@ let }; nested = { - substitution = { __hocon_envvar = "PATH"; }; + substitution = { + __hocon_envvar = "PATH"; + }; literal = { __hocon_unquoted_string = '' [ @@ -37,29 +47,29 @@ let hocon-test-conf = hocon.generate "hocon-test.conf" expression; in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.hocon-test-backwards-compatibility"; +stdenvNoCC.mkDerivation { + name = "pkgs.formats.hocon-test-backwards-compatibility"; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - doCheck = true; - checkPhase = '' - runHook preCheck + doCheck = true; + checkPhase = '' + runHook preCheck - diff -U3 ${./expected.txt} ${hocon-test-conf} + diff -U3 ${./expected.txt} ${hocon-test-conf} - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir $out - cp ${./expected.txt} $out/expected.txt - cp ${hocon-test-conf} $out/hocon-test.conf - cp ${hocon-test-conf.passthru.json} $out/hocon-test.json + mkdir $out + cp ${./expected.txt} $out/expected.txt + cp ${hocon-test-conf} $out/hocon-test.conf + cp ${hocon-test-conf.passthru.json} $out/hocon-test.json - runHook postInstall - ''; - } + runHook postInstall + ''; +} diff --git a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix b/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix index ae4fae4..14b7081 100644 --- a/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix +++ b/pkgs/pkgs-lib/formats/hocon/test/comprehensive/default.nix @@ -1,14 +1,24 @@ -{ lib, formats, stdenvNoCC, writeText, ... }: +{ + lib, + formats, + stdenvNoCC, + writeText, + ... +}: let hocon = formats.hocon { }; - include_file = (writeText "hocon-test-include.conf" '' - "val" = 1 - '').overrideAttrs (_: _: { - outputHashAlgo = "sha256"; - outputHashMode = "flat"; - outputHash = "sha256-UhkJLhT3bD6znq+IdDjs/ahP19mLzrLCy/R14pVrfew="; - }); + include_file = + (writeText "hocon-test-include.conf" '' + "val" = 1 + '').overrideAttrs + ( + _: _: { + outputHashAlgo = "sha256"; + outputHashMode = "flat"; + outputHash = "sha256-UhkJLhT3bD6znq+IdDjs/ahP19mLzrLCy/R14pVrfew="; + } + ); expression = { simple_top_level_attr = "1.0"; @@ -16,8 +26,16 @@ let some_floaty = 29.95; array2d = [ - [ 1 2 "a" ] - [ 2 1 "b" ] + [ + 1 + 2 + "a" + ] + [ + 2 + 1 + "b" + ] ]; nasty_string = "\"@\n\\\t^*\b\f\n\0\";'''$"; @@ -55,29 +73,29 @@ let hocon-test-conf = hocon.generate "hocon-test.conf" expression; in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.hocon-test-comprehensive"; +stdenvNoCC.mkDerivation { + name = "pkgs.formats.hocon-test-comprehensive"; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - doCheck = true; - checkPhase = '' - runHook preCheck + doCheck = true; + checkPhase = '' + runHook preCheck - diff -U3 ${./expected.txt} ${hocon-test-conf} + diff -U3 ${./expected.txt} ${hocon-test-conf} - runHook postCheck - ''; + runHook postCheck + ''; - installPhase = '' - runHook preInstall + installPhase = '' + runHook preInstall - mkdir $out - cp ${./expected.txt} $out/expected.txt - cp ${hocon-test-conf} $out/hocon-test.conf - cp ${hocon-test-conf.passthru.json} $out/hocon-test.json + mkdir $out + cp ${./expected.txt} $out/expected.txt + cp ${hocon-test-conf} $out/hocon-test.conf + cp ${hocon-test-conf.passthru.json} $out/hocon-test.json - runHook postInstall - ''; - } + runHook postInstall + ''; +} diff --git a/pkgs/pkgs-lib/formats/hocon/test/default.nix b/pkgs/pkgs-lib/formats/hocon/test/default.nix index 1992870..101ceec 100644 --- a/pkgs/pkgs-lib/formats/hocon/test/default.nix +++ b/pkgs/pkgs-lib/formats/hocon/test/default.nix @@ -3,13 +3,18 @@ comprehensive = pkgs.callPackage ./comprehensive { }; backwards-compatibility = let - pkgsNoWarn = pkgs.extend (final: prev: { - lib = prev.lib.extend (libFinal: libPrev: { - warn = msg: v: v; - trivial = libPrev.trivial // { - warn = msg: v: v; - }; - }); - }); - in pkgsNoWarn.callPackage ./backwards-compatibility { }; + pkgsNoWarn = pkgs.extend ( + final: prev: { + lib = prev.lib.extend ( + libFinal: libPrev: { + warn = msg: v: v; + trivial = libPrev.trivial // { + warn = msg: v: v; + }; + } + ); + } + ); + in + pkgsNoWarn.callPackage ./backwards-compatibility { }; } diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix index d3a4761..2d9f7e2 100644 --- a/pkgs/pkgs-lib/formats/java-properties/default.nix +++ b/pkgs/pkgs-lib/formats/java-properties/default.nix @@ -1,132 +1,152 @@ { lib, pkgs }: let inherit (lib) types; - inherit (types) attrsOf oneOf coercedTo str bool int float package; + inherit (types) + attrsOf + oneOf + coercedTo + str + bool + int + float + package + ; in { - javaProperties = { comment ? "Generated with Nix", boolToString ? lib.boolToString }: { + javaProperties = + { + comment ? "Generated with Nix", + boolToString ? lib.boolToString, + }: + { - # Design note: - # A nested representation of inevitably leads to bad UX: - # 1. keys like "a.b" must be disallowed, or - # the addition of options in a freeformType module - # become breaking changes - # 2. adding a value for "a" after "a"."b" was already - # defined leads to a somewhat hard to understand - # Nix error, because that's not something you can - # do with attrset syntax. Workaround: "a"."", but - # that's too little too late. Another workaround: - # mkMerge [ { a = ...; } { a.b = ...; } ]. - # - # Choosing a non-nested representation does mean that - # we sacrifice the ability to override at the (conceptual) - # hierarchical levels, _if_ an application exhibits those. - # - # Some apps just use periods instead of spaces in an odd - # mix of attempted categorization and natural language, - # with no meaningful hierarchy. - # - # We _can_ choose to support hierarchical config files - # via nested attrsets, but the module author should - # make sure that problem (2) does not occur. - type = let - elemType = - oneOf ([ - # `package` isn't generalized to `path` because path values - # are ambiguous. Are they host path strings (toString /foo/bar) - # or should they be added to the store? ("${/foo/bar}") - # The user must decide. - (coercedTo package toString str) + # Design note: + # A nested representation of inevitably leads to bad UX: + # 1. keys like "a.b" must be disallowed, or + # the addition of options in a freeformType module + # become breaking changes + # 2. adding a value for "a" after "a"."b" was already + # defined leads to a somewhat hard to understand + # Nix error, because that's not something you can + # do with attrset syntax. Workaround: "a"."", but + # that's too little too late. Another workaround: + # mkMerge [ { a = ...; } { a.b = ...; } ]. + # + # Choosing a non-nested representation does mean that + # we sacrifice the ability to override at the (conceptual) + # hierarchical levels, _if_ an application exhibits those. + # + # Some apps just use periods instead of spaces in an odd + # mix of attempted categorization and natural language, + # with no meaningful hierarchy. + # + # We _can_ choose to support hierarchical config files + # via nested attrsets, but the module author should + # make sure that problem (2) does not occur. + type = + let + elemType = + oneOf ([ + # `package` isn't generalized to `path` because path values + # are ambiguous. Are they host path strings (toString /foo/bar) + # or should they be added to the store? ("${/foo/bar}") + # The user must decide. + (coercedTo package toString str) - (coercedTo bool boolToString str) - (coercedTo int toString str) - (coercedTo float toString str) - ]) - // { description = "string, package, bool, int or float"; }; - in attrsOf elemType; + (coercedTo bool boolToString str) + (coercedTo int toString str) + (coercedTo float toString str) + ]) + // { + description = "string, package, bool, int or float"; + }; + in + attrsOf elemType; - generate = name: value: - pkgs.runCommandLocal name - { - # Requirements - # ============ - # - # 1. Strings in Nix carry over to the same - # strings in Java => need proper escapes - # 2. Generate files quickly - # - A JVM would have to match the app's - # JVM to avoid build closure bloat - # - Even then, JVM startup would slow - # down config generation. - # - # - # Implementation - # ============== - # - # Escaping has two steps - # - # 1. jq - # Escape known separators, in order not - # to break up the keys and values. - # This handles typical whitespace correctly, - # but may produce garbage for other control - # characters. - # - # 2. iconv - # Escape >ascii code points to java escapes, - # as .properties files are supposed to be - # encoded in ISO 8859-1. It's an old format. - # UTF-8 behavior may exist in some apps and - # libraries, but we can't rely on this in - # general. + generate = + name: value: + pkgs.runCommandLocal name + { + # Requirements + # ============ + # + # 1. Strings in Nix carry over to the same + # strings in Java => need proper escapes + # 2. Generate files quickly + # - A JVM would have to match the app's + # JVM to avoid build closure bloat + # - Even then, JVM startup would slow + # down config generation. + # + # + # Implementation + # ============== + # + # Escaping has two steps + # + # 1. jq + # Escape known separators, in order not + # to break up the keys and values. + # This handles typical whitespace correctly, + # but may produce garbage for other control + # characters. + # + # 2. iconv + # Escape >ascii code points to java escapes, + # as .properties files are supposed to be + # encoded in ISO 8859-1. It's an old format. + # UTF-8 behavior may exist in some apps and + # libraries, but we can't rely on this in + # general. - passAsFile = [ "value" ]; - value = builtins.toJSON value; - nativeBuildInputs = [ - pkgs.jq - pkgs.libiconvReal - ]; + passAsFile = [ "value" ]; + value = builtins.toJSON value; + nativeBuildInputs = [ + pkgs.jq + pkgs.libiconvReal + ]; - jqCode = - let - main = '' - to_entries - | .[] - | "\( - .key - | ${commonEscapes} - | gsub(" "; "\\ ") - | gsub("="; "\\=") - ) = \( - .value - | ${commonEscapes} - | gsub("^ "; "\\ ") - | gsub("\\n "; "\n\\ ") - )" - ''; - # Most escapes are equal for both keys and values. - commonEscapes = '' - gsub("\\\\"; "\\\\") - | gsub("\\n"; "\\n\\\n") - | gsub("#"; "\\#") - | gsub("!"; "\\!") - | gsub("\\t"; "\\t") - | gsub("\r"; "\\r") - ''; - in - main; + jqCode = + let + main = '' + to_entries + | .[] + | "\( + .key + | ${commonEscapes} + | gsub(" "; "\\ ") + | gsub("="; "\\=") + ) = \( + .value + | ${commonEscapes} + | gsub("^ "; "\\ ") + | gsub("\\n "; "\n\\ ") + )" + ''; + # Most escapes are equal for both keys and values. + commonEscapes = '' + gsub("\\\\"; "\\\\") + | gsub("\\n"; "\\n\\\n") + | gsub("#"; "\\#") + | gsub("!"; "\\!") + | gsub("\\t"; "\\t") + | gsub("\r"; "\\r") + ''; + in + main; - inputEncoding = "UTF-8"; + inputEncoding = "UTF-8"; - inherit comment; + inherit comment; - } '' - ( - echo "$comment" | while read -r ln; do echo "# $ln"; done - echo - jq -r --arg hash '#' "$jqCode" "$valuePath" \ - | iconv --from-code "$inputEncoding" --to-code JAVA \ - ) > "$out" - ''; - }; + } + '' + ( + echo "$comment" | while read -r ln; do echo "# $ln"; done + echo + jq -r --arg hash '#' "$jqCode" "$valuePath" \ + | iconv --from-code "$inputEncoding" --to-code JAVA \ + ) > "$out" + ''; + }; } diff --git a/pkgs/pkgs-lib/formats/java-properties/test/default.nix b/pkgs/pkgs-lib/formats/java-properties/test/default.nix index 4a51179..4804150 100644 --- a/pkgs/pkgs-lib/formats/java-properties/test/default.nix +++ b/pkgs/pkgs-lib/formats/java-properties/test/default.nix @@ -1,9 +1,10 @@ -{ fetchurl -, formats -, glibcLocales -, jdk -, lib -, stdenv +{ + fetchurl, + formats, + glibcLocales, + jdk, + lib, + stdenv, }: # This test primarily tests correct escaping. @@ -60,23 +61,19 @@ stdenv.mkDerivation { # Expected output as printed by Main.java passAsFile = [ "expected" ]; - expected = concatStrings (attrValues ( - mapAttrs - (key: value: - '' - KEY - ${key} - VALUE - ${value} + expected = concatStrings ( + attrValues ( + mapAttrs (key: value: '' + KEY + ${key} + VALUE + ${value} - '' - ) - input - )); + '') input + ) + ); - src = lib.sourceByRegex ./. [ - ".*\.java" - ]; + src = lib.sourceByRegex ./. [ ".*\.java" ]; # On Linux, this can be C.UTF-8, but darwin + zulu requires en_US.UTF-8 LANG = "en_US.UTF-8"; buildPhase = '' diff --git a/pkgs/pkgs-lib/formats/libconfig/default.nix b/pkgs/pkgs-lib/formats/libconfig/default.nix index 7433a72..065397e 100644 --- a/pkgs/pkgs-lib/formats/libconfig/default.nix +++ b/pkgs/pkgs-lib/formats/libconfig/default.nix @@ -1,6 +1,4 @@ -{ lib -, pkgs -}: +{ lib, pkgs }: let inherit (pkgs) buildPackages callPackage; # Implementation notes: @@ -22,100 +20,111 @@ let cargoLock.lockFile = ./src/Cargo.lock; }; - libconfig-validator = buildPackages.runCommandCC "libconfig-validator" - { - buildInputs = with buildPackages; [ libconfig ]; - } - '' - mkdir -p "$out/bin" - $CC -lconfig -x c - -o "$out/bin/libconfig-validator" ${./validator.c} - ''; + libconfig-validator = + buildPackages.runCommandCC "libconfig-validator" + { buildInputs = with buildPackages; [ libconfig ]; } + '' + mkdir -p "$out/bin" + $CC -lconfig -x c - -o "$out/bin/libconfig-validator" ${./validator.c} + ''; in { - format = { generator ? libconfig-generator, validator ? libconfig-validator }: { - inherit generator; + format = + { + generator ? libconfig-generator, + validator ? libconfig-validator, + }: + { + inherit generator; - type = with lib.types; - let - valueType = (oneOf [ - bool - int - float - str - path - (attrsOf valueType) - (listOf valueType) - ]) // { - description = "libconfig value"; + type = + with lib.types; + let + valueType = + (oneOf [ + bool + int + float + str + path + (attrsOf valueType) + (listOf valueType) + ]) + // { + description = "libconfig value"; + }; + in + attrsOf valueType; + + lib = { + mkHex = value: { + _type = "hex"; + inherit value; }; - in - attrsOf valueType; + mkOctal = value: { + _type = "octal"; + inherit value; + }; + mkFloat = value: { + _type = "float"; + inherit value; + }; + mkArray = value: { + _type = "array"; + inherit value; + }; + mkList = value: { + _type = "list"; + inherit value; + }; + }; - lib = { - mkHex = value: { - _type = "hex"; - inherit value; - }; - mkOctal = value: { - _type = "octal"; - inherit value; - }; - mkFloat = value: { - _type = "float"; - inherit value; - }; - mkArray = value: { - _type = "array"; - inherit value; - }; - mkList = value: { - _type = "list"; - inherit value; - }; + generate = + name: value: + callPackage + ( + { + stdenvNoCC, + libconfig-generator, + libconfig-validator, + writeText, + }: + stdenvNoCC.mkDerivation rec { + inherit name; + + dontUnpack = true; + + json = builtins.toJSON value; + passAsFile = [ "json" ]; + + strictDeps = true; + nativeBuildInputs = [ libconfig-generator ]; + buildPhase = '' + runHook preBuild + libconfig-generator < $jsonPath > output.cfg + runHook postBuild + ''; + + doCheck = true; + nativeCheckInputs = [ libconfig-validator ]; + checkPhase = '' + runHook preCheck + libconfig-validator output.cfg + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + mv output.cfg $out + runHook postInstall + ''; + + passthru.json = writeText "${name}.json" json; + } + ) + { + libconfig-generator = generator; + libconfig-validator = validator; + }; }; - - generate = name: value: - callPackage - ({ - stdenvNoCC - , libconfig-generator - , libconfig-validator - , writeText - }: stdenvNoCC.mkDerivation rec { - inherit name; - - dontUnpack = true; - - json = builtins.toJSON value; - passAsFile = [ "json" ]; - - strictDeps = true; - nativeBuildInputs = [ libconfig-generator ]; - buildPhase = '' - runHook preBuild - libconfig-generator < $jsonPath > output.cfg - runHook postBuild - ''; - - doCheck = true; - nativeCheckInputs = [ libconfig-validator ]; - checkPhase = '' - runHook preCheck - libconfig-validator output.cfg - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - mv output.cfg $out - runHook postInstall - ''; - - passthru.json = writeText "${name}.json" json; - }) - { - libconfig-generator = generator; - libconfig-validator = validator; - }; - }; } diff --git a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix b/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix index 7b0df23..cb331cc 100644 --- a/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix +++ b/pkgs/pkgs-lib/formats/libconfig/test/comprehensive/default.nix @@ -1,4 +1,10 @@ -{ lib, formats, stdenvNoCC, writeText, ... }: +{ + lib, + formats, + stdenvNoCC, + writeText, + ... +}: let libconfig = formats.libconfig { }; @@ -16,14 +22,41 @@ let some_floaty = 29.95; ## Same syntax here on these two, but they should get serialized differently: # > A list may have zero or more elements, each of which can be a scalar value, an array, a group, or another list. - list1d = libconfig.lib.mkList [ 1 "mixed!" 5 2 ]; + list1d = libconfig.lib.mkList [ + 1 + "mixed!" + 5 + 2 + ]; # You might also omit the mkList, as a list will be a list (in contrast to an array) by default. - list2d = [ 1 [ 1 1.2 "foo" ] [ "bar" 1.2 1 ] ]; + list2d = [ + 1 + [ + 1 + 1.2 + "foo" + ] + [ + "bar" + 1.2 + 1 + ] + ]; # > An array may have zero or more elements, but the elements must all be scalar values of the same type. - array1d = libconfig.lib.mkArray [ 1 5 2 ]; + array1d = libconfig.lib.mkArray [ + 1 + 5 + 2 + ]; array2d = [ - (libconfig.lib.mkArray [ 1 2 ]) - (libconfig.lib.mkArray [ 2 1 ]) + (libconfig.lib.mkArray [ + 1 + 2 + ]) + (libconfig.lib.mkArray [ + 2 + 1 + ]) ]; nasty_string = "\"@\n\\\t^*\b\f\n\0\";'''$"; @@ -52,25 +85,24 @@ let libconfig-test-cfg = libconfig.generate "libconfig-test.cfg" expression; in - stdenvNoCC.mkDerivation { - name = "pkgs.formats.libconfig-test-comprehensive"; +stdenvNoCC.mkDerivation { + name = "pkgs.formats.libconfig-test-comprehensive"; - dontUnpack = true; - dontBuild = true; + dontUnpack = true; + dontBuild = true; - doCheck = true; - checkPhase = '' - cp ${./expected.txt} expected.txt - substituteInPlace expected.txt \ - --subst-var-by include_file "${include_file}" - diff -U3 ./expected.txt ${libconfig-test-cfg} - ''; - - installPhase = '' - mkdir $out - cp expected.txt $out - cp ${libconfig-test-cfg} $out/libconfig-test.cfg - cp ${libconfig-test-cfg.passthru.json} $out/libconfig-test.json - ''; - } + doCheck = true; + checkPhase = '' + cp ${./expected.txt} expected.txt + substituteInPlace expected.txt \ + --subst-var-by include_file "${include_file}" + diff -U3 ./expected.txt ${libconfig-test-cfg} + ''; + installPhase = '' + mkdir $out + cp expected.txt $out + cp ${libconfig-test-cfg} $out/libconfig-test.cfg + cp ${libconfig-test-cfg.passthru.json} $out/libconfig-test.json + ''; +} diff --git a/pkgs/pkgs-lib/tests/default.nix b/pkgs/pkgs-lib/tests/default.nix index 8e5e243..a78282c 100644 --- a/pkgs/pkgs-lib/tests/default.nix +++ b/pkgs/pkgs-lib/tests/default.nix @@ -6,9 +6,19 @@ # nix-build -A java-properties # See `structured` below. -{ pkgs ? import ../../.. { } }: +{ + pkgs ? import ../../.. { }, +}: let - inherit (pkgs.lib) mapAttrs mapAttrsToList isDerivation mergeAttrs foldl' attrValues recurseIntoAttrs; + inherit (pkgs.lib) + mapAttrs + mapAttrsToList + isDerivation + mergeAttrs + foldl' + attrValues + recurseIntoAttrs + ; structured = { formats = import ./formats.nix { inherit pkgs; }; @@ -23,27 +33,28 @@ let hocon = recurseIntoAttrs (import ../formats/hocon/test { inherit pkgs; }); }; - flatten = prefix: as: - foldl' - mergeAttrs - { } - (attrValues - (mapAttrs - (k: v: - if isDerivation v - then { "${prefix}${k}" = v; } - else if v?recurseForDerivations - then flatten "${prefix}${k}-" (removeAttrs v [ "recurseForDerivations" ]) - else builtins.trace v throw "expected derivation or recurseIntoAttrs") - as - ) - ); + flatten = + prefix: as: + foldl' mergeAttrs { } ( + attrValues ( + mapAttrs ( + k: v: + if isDerivation v then + { "${prefix}${k}" = v; } + else if v ? recurseForDerivations then + flatten "${prefix}${k}-" (removeAttrs v [ "recurseForDerivations" ]) + else + builtins.trace v throw "expected derivation or recurseIntoAttrs" + ) as + ) + ); in # It has to be a link farm for inclusion in the hydra unstable jobset. -pkgs.linkFarm "pkgs-lib-formats-tests" - (mapAttrsToList - (k: v: { name = k; path = v; }) - (flatten "" structured) - ) +pkgs.linkFarm "pkgs-lib-formats-tests" ( + mapAttrsToList (k: v: { + name = k; + path = v; + }) (flatten "" structured) +) // structured diff --git a/pkgs/pkgs-lib/tests/formats.nix b/pkgs/pkgs-lib/tests/formats.nix index 3243f40..bd72e04 100644 --- a/pkgs/pkgs-lib/tests/formats.nix +++ b/pkgs/pkgs-lib/tests/formats.nix @@ -4,73 +4,98 @@ let # merging allows us to add metadata to the input # this makes error messages more readable during development - mergeInput = name: format: input: - format.type.merge [] [ + mergeInput = + name: format: input: + format.type.merge [ ] [ { # explicitly throw here to trigger the code path that prints the error message for users - value = lib.throwIfNot (format.type.check input) (builtins.trace input "definition does not pass the type's check function") input; + value = + lib.throwIfNot (format.type.check input) + (builtins.trace input "definition does not pass the type's check function") + input; # inject the name file = "format-test-${name}"; } ]; # run a diff between expected and real output - runDiff = name: drv: expected: pkgs.runCommand name { - passAsFile = ["expected"]; - inherit expected drv; - } '' - if diff -u "$expectedPath" "$drv"; then - touch "$out" - else - echo - echo "Got different values than expected; diff above." - exit 1 - fi - ''; + runDiff = + name: drv: expected: + pkgs.runCommand name + { + passAsFile = [ "expected" ]; + inherit expected drv; + } + '' + if diff -u "$expectedPath" "$drv"; then + touch "$out" + else + echo + echo "Got different values than expected; diff above." + exit 1 + fi + ''; # use this to check for proper serialization # in practice you do not have to supply the name parameter as this one will be added by runBuildTests - shouldPass = { format, input, expected }: name: { - name = "pass-${name}"; - path = runDiff "test-format-${name}" (format.generate "test-format-${name}" (mergeInput name format input)) expected; - }; + shouldPass = + { + format, + input, + expected, + }: + name: { + name = "pass-${name}"; + path = runDiff "test-format-${name}" (format.generate "test-format-${name}" ( + mergeInput name format input + )) expected; + }; # use this function to assert that a type check must fail # in practice you do not have to supply the name parameter as this one will be added by runBuildTests # note that as per 352e7d330a26 and 352e7d330a26 the type checking of attrsets and lists are not strict # this means that the code below needs to properly merge the module type definition and also evaluate the (lazy) return value - shouldFail = { format, input }: name: + shouldFail = + { format, input }: + name: let # trigger a deep type check using the module system - typeCheck = lib.modules.mergeDefinitions - [ "tests" name ] - format.type - [ - { - file = "format-test-${name}"; - value = input; - } - ]; + typeCheck = + lib.modules.mergeDefinitions + [ + "tests" + name + ] + format.type + [ + { + file = "format-test-${name}"; + value = input; + } + ]; # actually use the return value to trigger the evaluation eval = builtins.tryEval (typeCheck.mergedValue == input); # the check failing is what we want, so don't do anything here - typeFails = pkgs.runCommand "test-format-${name}" {} "touch $out"; + typeFails = pkgs.runCommand "test-format-${name}" { } "touch $out"; # bail with some verbose information in case the type check passes - typeSucceeds = pkgs.runCommand "test-format-${name}" { - passAsFile = [ "inputText" ]; - testName = name; - # this will fail if the input contains functions as values - # however that should get caught by the type check already - inputText = builtins.toJSON input; - } - '' - echo "Type check $testName passed when it shouldn't." - echo "The following data was used as input:" - echo - cat "$inputTextPath" - exit 1 - ''; - in { + typeSucceeds = + pkgs.runCommand "test-format-${name}" + { + passAsFile = [ "inputText" ]; + testName = name; + # this will fail if the input contains functions as values + # however that should get caught by the type check already + inputText = builtins.toJSON input; + } + '' + echo "Type check $testName passed when it shouldn't." + echo "The following data was used as input:" + echo + cat "$inputTextPath" + exit 1 + ''; + in + { name = "fail-${name}"; path = if eval.success then typeSucceeds else typeFails; }; @@ -83,10 +108,11 @@ let (pkgs.linkFarm "nixpkgs-pkgs-lib-format-tests") ]; -in runBuildTests { +in +runBuildTests { jsonAtoms = shouldPass { - format = formats.json {}; + format = formats.json { }; input = { null = null; false = false; @@ -95,7 +121,10 @@ in runBuildTests { float = 3.141; str = "foo"; attrs.foo = null; - list = [ null null ]; + list = [ + null + null + ]; path = ./formats.nix; }; expected = '' @@ -119,7 +148,7 @@ in runBuildTests { }; yamlAtoms = shouldPass { - format = formats.yaml {}; + format = formats.yaml { }; input = { null = null; false = false; @@ -127,7 +156,10 @@ in runBuildTests { float = 3.141; str = "foo"; attrs.foo = null; - list = [ null null ]; + list = [ + null + null + ]; path = ./formats.nix; }; expected = '' @@ -146,7 +178,7 @@ in runBuildTests { }; iniAtoms = shouldPass { - format = formats.ini {}; + format = formats.ini { }; input = { foo = { bool = true; @@ -165,7 +197,7 @@ in runBuildTests { }; iniInvalidAtom = shouldFail { - format = formats.ini {}; + format = formats.ini { }; input = { foo = { function = _: 1; @@ -174,10 +206,16 @@ in runBuildTests { }; iniDuplicateKeysWithoutList = shouldFail { - format = formats.ini {}; + format = formats.ini { }; input = { foo = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -188,7 +226,13 @@ in runBuildTests { format = formats.ini { listsAsDuplicateKeys = true; }; input = { foo = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -206,10 +250,18 @@ in runBuildTests { }; iniListToValue = shouldPass { - format = formats.ini { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; + format = formats.ini { + listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault { }); + }; input = { foo = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -223,13 +275,13 @@ in runBuildTests { }; iniWithGlobalNoSections = shouldPass { - format = formats.iniWithGlobalSection {}; - input = {}; + format = formats.iniWithGlobalSection { }; + input = { }; expected = ""; }; iniWithGlobalOnlySections = shouldPass { - format = formats.iniWithGlobalSection {}; + format = formats.iniWithGlobalSection { }; input = { sections = { foo = { @@ -244,7 +296,7 @@ in runBuildTests { }; iniWithGlobalOnlyGlobal = shouldPass { - format = formats.iniWithGlobalSection {}; + format = formats.iniWithGlobalSection { }; input = { globalSection = { bar = "baz"; @@ -257,14 +309,14 @@ in runBuildTests { }; iniWithGlobalWrongSections = shouldFail { - format = formats.iniWithGlobalSection {}; + format = formats.iniWithGlobalSection { }; input = { - foo = {}; + foo = { }; }; }; iniWithGlobalEverything = shouldPass { - format = formats.iniWithGlobalSection {}; + format = formats.iniWithGlobalSection { }; input = { globalSection = { bar = true; @@ -290,16 +342,30 @@ in runBuildTests { }; iniWithGlobalListToValue = shouldPass { - format = formats.iniWithGlobalSection { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; + format = formats.iniWithGlobalSection { + listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault { }); + }; input = { globalSection = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; sections = { foo = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -318,7 +384,7 @@ in runBuildTests { }; keyValueAtoms = shouldPass { - format = formats.keyValue {}; + format = formats.keyValue { }; input = { bool = true; int = 10; @@ -336,7 +402,13 @@ in runBuildTests { keyValueDuplicateKeys = shouldPass { format = formats.keyValue { listsAsDuplicateKeys = true; }; input = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -352,9 +424,17 @@ in runBuildTests { }; keyValueListToValue = shouldPass { - format = formats.keyValue { listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault {}); }; + format = formats.keyValue { + listToValue = lib.concatMapStringsSep ", " (lib.generators.mkValueStringDefault { }); + }; input = { - bar = [ null true "test" 1.2 10 ]; + bar = [ + null + true + "test" + 1.2 + 10 + ]; baz = false; qux = "qux"; }; @@ -366,7 +446,7 @@ in runBuildTests { }; tomlAtoms = shouldPass { - format = formats.toml {}; + format = formats.toml { }; input = { false = false; true = true; @@ -374,7 +454,10 @@ in runBuildTests { float = 3.141; str = "foo"; attrs.foo = "foo"; - list = [ 1 2 ]; + list = [ + 1 + 2 + ]; level1.level2.level3.level4 = "deep"; }; expected = '' @@ -397,7 +480,7 @@ in runBuildTests { # 2. providing a more readable example test # Whereas java-properties/default.nix tests the low level escaping, etc. javaProperties = shouldPass { - format = formats.javaProperties {}; + format = formats.javaProperties { }; input = { floaty = 3.1415; tautologies = true; diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 2304b32..b661672 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -1,46 +1,70 @@ -/* This file contains various functions that take a stdenv and return - a new stdenv with different behaviour, e.g. using a different C - compiler. */ +/* + This file contains various functions that take a stdenv and return + a new stdenv with different behaviour, e.g. using a different C + compiler. +*/ -{ lib, pkgs, config }: +{ + lib, + pkgs, + config, +}: let # N.B. Keep in sync with default arg for stdenv/generic. - defaultMkDerivationFromStdenv = stdenv: (import ./generic/make-derivation.nix { inherit lib config; } stdenv).mkDerivation; + defaultMkDerivationFromStdenv = + stdenv: (import ./generic/make-derivation.nix { inherit lib config; } stdenv).mkDerivation; # Low level function to help with overriding `mkDerivationFromStdenv`. One # gives it the old stdenv arguments and a "continuation" function, and # underneath the final stdenv argument it yields to the continuation to do # whatever it wants with old `mkDerivation` (old `mkDerivationFromStdenv` # applied to the *new, final* stdenv) provided for convenience. - withOldMkDerivation = stdenvSuperArgs: k: stdenvSelf: let - mkDerivationFromStdenv-super = stdenvSuperArgs.mkDerivationFromStdenv or defaultMkDerivationFromStdenv; - mkDerivationSuper = mkDerivationFromStdenv-super stdenvSelf; - in + withOldMkDerivation = + stdenvSuperArgs: k: stdenvSelf: + let + mkDerivationFromStdenv-super = + stdenvSuperArgs.mkDerivationFromStdenv or defaultMkDerivationFromStdenv; + mkDerivationSuper = mkDerivationFromStdenv-super stdenvSelf; + in k stdenvSelf mkDerivationSuper; # Wrap the original `mkDerivation` providing extra args to it. - extendMkDerivationArgs = old: f: withOldMkDerivation old (_: mkDerivationSuper: args: - (mkDerivationSuper args).overrideAttrs f); + extendMkDerivationArgs = + old: f: + withOldMkDerivation old ( + _: mkDerivationSuper: args: + (mkDerivationSuper args).overrideAttrs f + ); # Wrap the original `mkDerivation` transforming the result. - overrideMkDerivationResult = old: f: withOldMkDerivation old (_: mkDerivationSuper: args: - f (mkDerivationSuper args)); + overrideMkDerivationResult = + old: f: + withOldMkDerivation old ( + _: mkDerivationSuper: args: + f (mkDerivationSuper args) + ); in rec { - # Override the compiler in stdenv for specific packages. - overrideCC = stdenv: cc: stdenv.override { allowedRequisites = null; cc = cc; }; - + overrideCC = + stdenv: cc: + stdenv.override { + allowedRequisites = null; + cc = cc; + }; # Add some arbitrary packages to buildInputs for specific packages. # Used to override packages in stdenv like Make. Should not be used # for other dependencies. - overrideInStdenv = stdenv: pkgs: - stdenv.override (prev: { allowedRequisites = null; extraBuildInputs = (prev.extraBuildInputs or []) ++ pkgs; }); - + overrideInStdenv = + stdenv: pkgs: + stdenv.override (prev: { + allowedRequisites = null; + extraBuildInputs = (prev.extraBuildInputs or [ ]) ++ pkgs; + }); # Override the libc++ dynamic library used in the stdenv to use the one from the platform’s # default stdenv. This allows building packages and linking dependencies with different @@ -48,7 +72,8 @@ rec { # # Note that this adapter still uses the headers from the new stdenv’s libc++. This is necessary # because older compilers may not be able to parse the headers from the default stdenv’s libc++. - overrideLibcxx = stdenv: + overrideLibcxx = + stdenv: assert stdenv.cc.libcxx != null; assert pkgs.stdenv.cc.libcxx != null; # only unified libcxx / libcxxabi stdenv's are supported @@ -60,22 +85,30 @@ rec { stdenvLibcxx = pkgs.stdenv.cc.libcxx; llvmLibcxx = stdenv.cc.libcxx; - libcxx = pkgs.runCommand "${stdenvLibcxx.name}-${llvmLibcxxVersion}" { - outputs = [ "out" "dev" ]; - isLLVM = true; - } '' - mkdir -p "$dev/nix-support" - ln -s '${stdenvLibcxx}' "$out" - echo '${stdenvLibcxx}' > "$dev/nix-support/propagated-build-inputs" - ln -s '${lib.getDev llvmLibcxx}/include' "$dev/include" - ''; + libcxx = + pkgs.runCommand "${stdenvLibcxx.name}-${llvmLibcxxVersion}" + { + outputs = [ + "out" + "dev" + ]; + isLLVM = true; + } + '' + mkdir -p "$dev/nix-support" + ln -s '${stdenvLibcxx}' "$out" + echo '${stdenvLibcxx}' > "$dev/nix-support/propagated-build-inputs" + ln -s '${lib.getDev llvmLibcxx}/include' "$dev/include" + ''; in - overrideCC stdenv (stdenv.cc.override { - inherit libcxx; - extraPackages = [ - pkgs.buildPackages.targetPackages."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt - ]; - }); + overrideCC stdenv ( + stdenv.cc.override { + inherit libcxx; + extraPackages = [ + pkgs.buildPackages.targetPackages."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt + ]; + } + ); # Override the setup script of stdenv. Useful for testing new # versions of the setup script without causing a rebuild of @@ -87,200 +120,259 @@ rec { # }; overrideSetup = stdenv: setupScript: stdenv.override { inherit setupScript; }; - # Return a modified stdenv that tries to build statically linked # binaries. - makeStaticBinaries = stdenv0: - stdenv0.override (old: { - mkDerivationFromStdenv = withOldMkDerivation old (stdenv: mkDerivationSuper: args: - if stdenv.hostPlatform.isDarwin - then throw "Cannot build fully static binaries on Darwin/macOS" - else (mkDerivationSuper args).overrideAttrs (args: { - NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -static"; - } // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { - configureFlags = (args.configureFlags or []) ++ [ - "--disable-shared" # brrr... - ]; - cmakeFlags = (args.cmakeFlags or []) ++ ["-DCMAKE_SKIP_INSTALL_RPATH=On"]; - })); - } // lib.optionalAttrs (stdenv0.hostPlatform.libc == "glibc") { - extraBuildInputs = (old.extraBuildInputs or []) ++ [ - pkgs.glibc.static - ]; - }); - + makeStaticBinaries = + stdenv0: + stdenv0.override ( + old: + { + mkDerivationFromStdenv = withOldMkDerivation old ( + stdenv: mkDerivationSuper: args: + if stdenv.hostPlatform.isDarwin then + throw "Cannot build fully static binaries on Darwin/macOS" + else + (mkDerivationSuper args).overrideAttrs ( + args: + { + NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -static"; + } + // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { + configureFlags = (args.configureFlags or [ ]) ++ [ + "--disable-shared" # brrr... + ]; + cmakeFlags = (args.cmakeFlags or [ ]) ++ [ "-DCMAKE_SKIP_INSTALL_RPATH=On" ]; + } + ) + ); + } + // lib.optionalAttrs (stdenv0.hostPlatform.libc == "glibc") { + extraBuildInputs = (old.extraBuildInputs or [ ]) ++ [ pkgs.glibc.static ]; + } + ); # Return a modified stdenv that builds static libraries instead of # shared libraries. - makeStaticLibraries = stdenv: + makeStaticLibraries = + stdenv: stdenv.override (old: { - mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - dontDisableStatic = true; - } // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { - configureFlags = (args.configureFlags or []) ++ [ - "--enable-static" - "--disable-shared" - ]; - cmakeFlags = (args.cmakeFlags or []) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ]; - mesonFlags = (args.mesonFlags or []) ++ [ "-Ddefault_library=static" ]; - }); + mkDerivationFromStdenv = extendMkDerivationArgs old ( + args: + { + dontDisableStatic = true; + } + // lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) { + configureFlags = (args.configureFlags or [ ]) ++ [ + "--enable-static" + "--disable-shared" + ]; + cmakeFlags = (args.cmakeFlags or [ ]) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ]; + mesonFlags = (args.mesonFlags or [ ]) ++ [ "-Ddefault_library=static" ]; + } + ); }); # Best effort static binaries. Will still be linked to libSystem, # but more portable than Nix store binaries. - makeStaticDarwin = stdenv: stdenv.override (old: { - # extraBuildInputs are dropped in cross.nix, but darwin still needs them - extraBuildInputs = [ pkgs.buildPackages.darwin.CF ]; - mkDerivationFromStdenv = withOldMkDerivation old (stdenv: mkDerivationSuper: args: - (mkDerivationSuper args).overrideAttrs (prevAttrs: { - NIX_CFLAGS_LINK = toString (prevAttrs.NIX_CFLAGS_LINK or "") - + lib.optionalString (stdenv.cc.isGNU or false) " -static-libgcc"; - nativeBuildInputs = (prevAttrs.nativeBuildInputs or []) - ++ lib.optionals stdenv.hasCC [ - (pkgs.buildPackages.makeSetupHook { - name = "darwin-portable-libSystem-hook"; - substitutions = { - libsystem = "${stdenv.cc.libc}/lib/libSystem.B.dylib"; - targetPrefix = stdenv.cc.bintools.targetPrefix; - }; - } ./darwin/portable-libsystem.sh) - ]; - })); - }); + makeStaticDarwin = + stdenv: + stdenv.override (old: { + # extraBuildInputs are dropped in cross.nix, but darwin still needs them + extraBuildInputs = [ pkgs.buildPackages.darwin.CF ]; + mkDerivationFromStdenv = withOldMkDerivation old ( + stdenv: mkDerivationSuper: args: + (mkDerivationSuper args).overrideAttrs (prevAttrs: { + NIX_CFLAGS_LINK = + toString (prevAttrs.NIX_CFLAGS_LINK or "") + + lib.optionalString (stdenv.cc.isGNU or false) " -static-libgcc"; + nativeBuildInputs = + (prevAttrs.nativeBuildInputs or [ ]) + ++ lib.optionals stdenv.hasCC [ + (pkgs.buildPackages.makeSetupHook { + name = "darwin-portable-libSystem-hook"; + substitutions = { + libsystem = "${stdenv.cc.libc}/lib/libSystem.B.dylib"; + targetPrefix = stdenv.cc.bintools.targetPrefix; + }; + } ./darwin/portable-libsystem.sh) + ]; + }) + ); + }); # Puts all the other ones together - makeStatic = stdenv: lib.foldl (lib.flip lib.id) stdenv ( - lib.optional stdenv.hostPlatform.isDarwin makeStaticDarwin + makeStatic = + stdenv: + lib.foldl (lib.flip lib.id) stdenv ( + lib.optional stdenv.hostPlatform.isDarwin makeStaticDarwin - ++ [ makeStaticLibraries propagateBuildInputs ] + ++ [ + makeStaticLibraries + propagateBuildInputs + ] - # Apple does not provide a static version of libSystem or crt0.o - # So we can’t build static binaries without extensive hacks. - ++ lib.optional (!stdenv.hostPlatform.isDarwin) makeStaticBinaries - ); + # Apple does not provide a static version of libSystem or crt0.o + # So we can’t build static binaries without extensive hacks. + ++ lib.optional (!stdenv.hostPlatform.isDarwin) makeStaticBinaries + ); - - /* Modify a stdenv so that all buildInputs are implicitly propagated to - consuming derivations + /* + Modify a stdenv so that all buildInputs are implicitly propagated to + consuming derivations */ - propagateBuildInputs = stdenv: + propagateBuildInputs = + stdenv: stdenv.override (old: { mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - propagatedBuildInputs = (args.propagatedBuildInputs or []) ++ (args.buildInputs or []); - buildInputs = []; + propagatedBuildInputs = (args.propagatedBuildInputs or [ ]) ++ (args.buildInputs or [ ]); + buildInputs = [ ]; }); }); + /* + Modify a stdenv so that the specified attributes are added to + every derivation returned by its mkDerivation function. - /* Modify a stdenv so that the specified attributes are added to - every derivation returned by its mkDerivation function. - - Example: - stdenvNoOptimise = - addAttrsToDerivation - { env.NIX_CFLAGS_COMPILE = "-O0"; } - stdenv; + Example: + stdenvNoOptimise = + addAttrsToDerivation + { env.NIX_CFLAGS_COMPILE = "-O0"; } + stdenv; */ - addAttrsToDerivation = extraAttrs: stdenv: stdenv.override (old: { - mkDerivationFromStdenv = extendMkDerivationArgs old (_: extraAttrs); - }); - - - /* Use the trace output to report all processed derivations with their - license name. - */ - traceDrvLicenses = stdenv: + addAttrsToDerivation = + extraAttrs: stdenv: stdenv.override (old: { - mkDerivationFromStdenv = overrideMkDerivationResult (pkg: - let - printDrvPath = val: let - drvPath = builtins.unsafeDiscardStringContext pkg.drvPath; - license = pkg.meta.license or null; - in - builtins.trace "@:drv:${toString drvPath}:${builtins.toString license}:@" val; - in pkg // { - outPath = printDrvPath pkg.outPath; - drvPath = printDrvPath pkg.drvPath; - }); + mkDerivationFromStdenv = extendMkDerivationArgs old (_: extraAttrs); }); + /* + Use the trace output to report all processed derivations with their + license name. + */ + traceDrvLicenses = + stdenv: + stdenv.override (old: { + mkDerivationFromStdenv = overrideMkDerivationResult ( + pkg: + let + printDrvPath = + val: + let + drvPath = builtins.unsafeDiscardStringContext pkg.drvPath; + license = pkg.meta.license or null; + in + builtins.trace "@:drv:${toString drvPath}:${builtins.toString license}:@" val; + in + pkg + // { + outPath = printDrvPath pkg.outPath; + drvPath = printDrvPath pkg.drvPath; + } + ); + }); - /* Modify a stdenv so that it produces debug builds; that is, - binaries have debug info, and compiler optimisations are - disabled. */ - keepDebugInfo = stdenv: + /* + Modify a stdenv so that it produces debug builds; that is, + binaries have debug info, and compiler optimisations are + disabled. + */ + keepDebugInfo = + stdenv: stdenv.override (old: { mkDerivationFromStdenv = extendMkDerivationArgs old (args: { dontStrip = true; - env = (args.env or {}) // { NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -ggdb -Og"; }; + env = (args.env or { }) // { + NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -ggdb -Og"; + }; }); }); - - /* Modify a stdenv so that it uses the Gold linker. */ - useGoldLinker = stdenv: + # Modify a stdenv so that it uses the Gold linker. + useGoldLinker = + stdenv: stdenv.override (old: { mkDerivationFromStdenv = extendMkDerivationArgs old (args: { NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -fuse-ld=gold"; }); }); - /* Copy the libstdc++ from the model stdenv to the target stdenv. - * - * TODO(@connorbaker): - * This interface provides behavior which should be revisited prior to the - * release of 24.05. For a more detailed explanation and discussion, see - * https://github.com/NixOS/nixpkgs/issues/283517. */ - useLibsFrom = modelStdenv: targetStdenv: + /* + Copy the libstdc++ from the model stdenv to the target stdenv. + + TODO(@connorbaker): + This interface provides behavior which should be revisited prior to the + release of 24.05. For a more detailed explanation and discussion, see + https://github.com/NixOS/nixpkgs/issues/283517. + */ + useLibsFrom = + modelStdenv: targetStdenv: let ccForLibs = modelStdenv.cc.cc; - /* NOTE(@connorbaker): - * This assumes targetStdenv.cc is a cc-wrapper. */ + /* + NOTE(@connorbaker): + This assumes targetStdenv.cc is a cc-wrapper. + */ cc = targetStdenv.cc.override { - /* NOTE(originally by rrbutani): - * Normally the `useCcForLibs`/`gccForLibs` mechanism is used to get a - * clang based `cc` to use `libstdc++` (from gcc). - * - * Here we (ab)use it to use a `libstdc++` from a different `gcc` than our - * `cc`. - * - * Note that this does not inhibit our `cc`'s lib dir from being added to - * cflags/ldflags (see `cc_solib` in `cc-wrapper`) but this is okay: our - * `gccForLibs`'s paths should take precedence. */ + /* + NOTE(originally by rrbutani): + Normally the `useCcForLibs`/`gccForLibs` mechanism is used to get a + clang based `cc` to use `libstdc++` (from gcc). + + Here we (ab)use it to use a `libstdc++` from a different `gcc` than our + `cc`. + + Note that this does not inhibit our `cc`'s lib dir from being added to + cflags/ldflags (see `cc_solib` in `cc-wrapper`) but this is okay: our + `gccForLibs`'s paths should take precedence. + */ useCcForLibs = true; gccForLibs = ccForLibs; }; in overrideCC targetStdenv cc; - useMoldLinker = stdenv: let - bintools = stdenv.cc.bintools.override { - extraBuildCommands = '' - wrap ${stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.mold}/bin/ld.mold - wrap ${stdenv.cc.bintools.targetPrefix}ld ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.mold}/bin/ld.mold - ''; - }; - in stdenv.override (old: { - allowedRequisites = null; - cc = stdenv.cc.override { inherit bintools; }; - # gcc >12.1.0 supports '-fuse-ld=mold' - # the wrap ld above in bintools supports gcc <12.1.0 and shouldn't harm >12.1.0 - # https://github.com/rui314/mold#how-to-use - } // lib.optionalAttrs (stdenv.cc.isClang || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12")) { - mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -fuse-ld=mold"; - }); - }); + useMoldLinker = + stdenv: + let + bintools = stdenv.cc.bintools.override { + extraBuildCommands = '' + wrap ${stdenv.cc.bintools.targetPrefix}ld.mold ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.mold}/bin/ld.mold + wrap ${stdenv.cc.bintools.targetPrefix}ld ${../build-support/bintools-wrapper/ld-wrapper.sh} ${pkgs.mold}/bin/ld.mold + ''; + }; + in + stdenv.override ( + old: + { + allowedRequisites = null; + cc = stdenv.cc.override { inherit bintools; }; + # gcc >12.1.0 supports '-fuse-ld=mold' + # the wrap ld above in bintools supports gcc <12.1.0 and shouldn't harm >12.1.0 + # https://github.com/rui314/mold#how-to-use + } + // + lib.optionalAttrs + (stdenv.cc.isClang || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12")) + { + mkDerivationFromStdenv = extendMkDerivationArgs old (args: { + NIX_CFLAGS_LINK = toString (args.NIX_CFLAGS_LINK or "") + " -fuse-ld=mold"; + }); + } + ); + /* + Modify a stdenv so that it builds binaries optimized specifically + for the machine they are built on. - /* Modify a stdenv so that it builds binaries optimized specifically - for the machine they are built on. - - WARNING: this breaks purity! */ - impureUseNativeOptimizations = stdenv: + WARNING: this breaks purity! + */ + impureUseNativeOptimizations = + stdenv: stdenv.override (old: { mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - env = (args.env or {}) // { NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -march=native"; }; + env = (args.env or { }) // { + NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -march=native"; + }; NIX_ENFORCE_NO_NATIVE = false; @@ -289,24 +381,27 @@ rec { }); }); + /* + Modify a stdenv so that it builds binaries with the specified list of + compilerFlags appended and passed to the compiler. - /* Modify a stdenv so that it builds binaries with the specified list of - compilerFlags appended and passed to the compiler. + This example would recompile every derivation on the system with + -funroll-loops and -O3 passed to each gcc invocation. - This example would recompile every derivation on the system with - -funroll-loops and -O3 passed to each gcc invocation. - - Example: - nixpkgs.overlays = [ - (self: super: { - stdenv = super.withCFlags [ "-funroll-loops" "-O3" ] super.stdenv; - }) - ]; + Example: + nixpkgs.overlays = [ + (self: super: { + stdenv = super.withCFlags [ "-funroll-loops" "-O3" ] super.stdenv; + }) + ]; */ - withCFlags = compilerFlags: stdenv: + withCFlags = + compilerFlags: stdenv: stdenv.override (old: { mkDerivationFromStdenv = extendMkDerivationArgs old (args: { - env = (args.env or {}) // { NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " ${toString compilerFlags}"; }; + env = (args.env or { }) // { + NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " ${toString compilerFlags}"; + }; }); }); @@ -326,20 +421,21 @@ rec { pkgsBuildTarget pkgsHostHost pkgsHostTarget - pkgsTargetTarget; + pkgsTargetTarget + ; }; - withDefaultHardeningFlags = defaultHardeningFlags: stdenv: let - bintools = let - bintools' = stdenv.cc.bintools; - in if bintools' ? override then (bintools'.override { - inherit defaultHardeningFlags; - }) else bintools'; - in + withDefaultHardeningFlags = + defaultHardeningFlags: stdenv: + let + bintools = + let + bintools' = stdenv.cc.bintools; + in + if bintools' ? override then (bintools'.override { inherit defaultHardeningFlags; }) else bintools'; + in stdenv.override (old: { - cc = if stdenv.cc == null then null else stdenv.cc.override { - inherit bintools; - }; + cc = if stdenv.cc == null then null else stdenv.cc.override { inherit bintools; }; allowedRequisites = lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null); }); } diff --git a/pkgs/stdenv/booter.nix b/pkgs/stdenv/booter.nix index 7fc1fa4..1b8207d 100644 --- a/pkgs/stdenv/booter.nix +++ b/pkgs/stdenv/booter.nix @@ -39,81 +39,102 @@ # # The list takes stages in order, so the final stage is last in the list. In # other words, this does a foldr not foldl. -stageFuns: let +stageFuns: +let - /* "dfold" a ternary function `op' between successive elements of `list' as if - it was a doubly-linked list with `lnul' and `rnul` base cases at either - end. In precise terms, `dfold op lnul rnul [x_0 x_1 x_2 ... x_n-1]` is the - same as + /* + "dfold" a ternary function `op' between successive elements of `list' as if + it was a doubly-linked list with `lnul' and `rnul` base cases at either + end. In precise terms, `dfold op lnul rnul [x_0 x_1 x_2 ... x_n-1]` is the + same as - let - f_-1 = lnul f_0; - f_0 = op f_-1 x_0 f_1; - f_1 = op f_0 x_1 f_2; - f_2 = op f_1 x_2 f_3; - ... - f_n = op f_n-1 x_n f_n+1; - f_n+1 = rnul f_n; - in - f_0 + let + f_-1 = lnul f_0; + f_0 = op f_-1 x_0 f_1; + f_1 = op f_0 x_1 f_2; + f_2 = op f_1 x_2 f_3; + ... + f_n = op f_n-1 x_n f_n+1; + f_n+1 = rnul f_n; + in + f_0 */ - dfold = op: lnul: rnul: list: + dfold = + op: lnul: rnul: list: let len = builtins.length list; - go = pred: n: - if n == len - then rnul pred - else let - # Note the cycle -- call-by-need ensures finite fold. - cur = op pred (builtins.elemAt list n) succ; - succ = go cur (n + 1); - in cur; + go = + pred: n: + if n == len then + rnul pred + else + let + # Note the cycle -- call-by-need ensures finite fold. + cur = op pred (builtins.elemAt list n) succ; + succ = go cur (n + 1); + in + cur; lapp = lnul cur; cur = go lapp 0; - in cur; + in + cur; # Take the list and disallow custom overrides in all but the final stage, # and allow it in the final flag. Only defaults this boolean field if it # isn't already set. - withAllowCustomOverrides = lib.lists.imap1 - (index: stageFun: prevStage: - # So true by default for only the first element because one - # 1-indexing. Since we reverse the list, this means this is true - # for the final stage. - { allowCustomOverrides = index == 1; } - // (stageFun prevStage)) - (lib.lists.reverseList stageFuns); + withAllowCustomOverrides = lib.lists.imap1 ( + index: stageFun: prevStage: + # So true by default for only the first element because one + # 1-indexing. Since we reverse the list, this means this is true + # for the final stage. + { allowCustomOverrides = index == 1; } // (stageFun prevStage) + ) (lib.lists.reverseList stageFuns); # Adds the stdenv to the arguments, and sticks in it the previous stage for # debugging purposes. - folder = nextStage: stageFun: prevStage: let - args = stageFun prevStage; - args' = args // { - stdenv = args.stdenv // { - # For debugging - __bootPackages = prevStage; - __hatPackages = nextStage; - }; - }; - thisStage = - if args.__raw or false - then args' - else allPackages ((builtins.removeAttrs args' ["selfBuild"]) // { - adjacentPackages = if args.selfBuild or true then null else rec { - pkgsBuildBuild = prevStage.buildPackages; - pkgsBuildHost = prevStage; - pkgsBuildTarget = - if args.stdenv.targetPlatform == args.stdenv.hostPlatform - then pkgsBuildHost - else assert args.stdenv.hostPlatform == args.stdenv.buildPlatform; thisStage; - pkgsHostHost = - if args.stdenv.hostPlatform == args.stdenv.targetPlatform - then thisStage - else assert args.stdenv.buildPlatform == args.stdenv.hostPlatform; pkgsBuildHost; - pkgsTargetTarget = nextStage; + folder = + nextStage: stageFun: prevStage: + let + args = stageFun prevStage; + args' = args // { + stdenv = args.stdenv // { + # For debugging + __bootPackages = prevStage; + __hatPackages = nextStage; }; - }); - in thisStage; + }; + thisStage = + if args.__raw or false then + args' + else + allPackages ( + (builtins.removeAttrs args' [ "selfBuild" ]) + // { + adjacentPackages = + if args.selfBuild or true then + null + else + rec { + pkgsBuildBuild = prevStage.buildPackages; + pkgsBuildHost = prevStage; + pkgsBuildTarget = + if args.stdenv.targetPlatform == args.stdenv.hostPlatform then + pkgsBuildHost + else + assert args.stdenv.hostPlatform == args.stdenv.buildPlatform; + thisStage; + pkgsHostHost = + if args.stdenv.hostPlatform == args.stdenv.targetPlatform then + thisStage + else + assert args.stdenv.buildPlatform == args.stdenv.hostPlatform; + pkgsBuildHost; + pkgsTargetTarget = nextStage; + }; + } + ); + in + thisStage; # This is a hack for resolving cross-compiled compilers' run-time # deps. (That is, compilers that are themselves cross-compiled, as @@ -121,17 +142,19 @@ stageFuns: let postStage = buildPackages: { __raw = true; stdenv.cc = - if buildPackages.stdenv.hasCC - then - if buildPackages.stdenv.cc.isClang or false + if buildPackages.stdenv.hasCC then + if + buildPackages.stdenv.cc.isClang or false # buildPackages.clang checks targetPackages.stdenv.cc (i. e. this # attribute) to get a sense of the its set's default compiler and # chooses between libc++ and libstdc++ based on that. If we hit this # code here, we'll cause an infinite recursion. Since a set with # clang as its default compiler always means libc++, we can infer this # decision statically. - then buildPackages.llvmPackages.libcxxClang - else buildPackages.gcc + then + buildPackages.llvmPackages.libcxxClang + else + buildPackages.gcc else # This will blow up if anything uses it, but that's OK. The `if # buildPackages.stdenv.cc.isClang then ... else ...` would blow up @@ -139,4 +162,5 @@ stageFuns: let buildPackages.stdenv.cc; }; -in dfold folder postStage (_: {}) withAllowCustomOverrides +in +dfold folder postStage (_: { }) withAllowCustomOverrides diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index cf6a55f..615b282 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -1,5 +1,10 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], }: let @@ -7,19 +12,25 @@ let inherit lib localSystem overlays; crossSystem = localSystem; - crossOverlays = []; + crossOverlays = [ ]; # Ignore custom stdenvs when cross compiling for compatibility config = builtins.removeAttrs config [ "replaceStdenv" ]; }; -in lib.init bootStages ++ [ +in +lib.init bootStages +++ [ # Regular native packages - (somePrevStage: lib.last bootStages somePrevStage // { - # It's OK to change the built-time dependencies - allowCustomOverrides = true; - }) + ( + somePrevStage: + lib.last bootStages somePrevStage + // { + # It's OK to change the built-time dependencies + allowCustomOverrides = true; + } + ) # Build tool Packages (vanillaPackages: { @@ -35,56 +46,74 @@ in lib.init bootStages ++ [ }) # Run Packages - (buildPackages: let - adaptStdenv = - if crossSystem.isStatic - then buildPackages.stdenvAdapters.makeStatic - else lib.id; - in { - inherit config; - overlays = overlays ++ crossOverlays; - selfBuild = false; - stdenv = adaptStdenv (buildPackages.stdenv.override (old: rec { - buildPlatform = localSystem; - hostPlatform = crossSystem; - targetPlatform = crossSystem; + ( + buildPackages: + let + adaptStdenv = if crossSystem.isStatic then buildPackages.stdenvAdapters.makeStatic else lib.id; + in + { + inherit config; + overlays = overlays ++ crossOverlays; + selfBuild = false; + stdenv = adaptStdenv ( + buildPackages.stdenv.override (old: rec { + buildPlatform = localSystem; + hostPlatform = crossSystem; + targetPlatform = crossSystem; - # Prior overrides are surely not valid as packages built with this run on - # a different platform, and so are disabled. - overrides = _: _: {}; - extraBuildInputs = [ ] # Old ones run on wrong platform - ++ lib.optionals hostPlatform.isDarwin [ buildPackages.targetPackages.darwin.apple_sdk.frameworks.CoreFoundation ] - ; - allowedRequisites = null; + # Prior overrides are surely not valid as packages built with this run on + # a different platform, and so are disabled. + overrides = _: _: { }; + extraBuildInputs = + [ ] # Old ones run on wrong platform + ++ lib.optionals hostPlatform.isDarwin [ + buildPackages.targetPackages.darwin.apple_sdk.frameworks.CoreFoundation + ]; + allowedRequisites = null; - hasCC = !targetPlatform.isGhcjs; + hasCC = !targetPlatform.isGhcjs; - cc = if crossSystem.useiOSPrebuilt or false - then buildPackages.darwin.iosSdkPkgs.clang - else if crossSystem.useAndroidPrebuilt or false - then buildPackages."androidndkPkgs_${crossSystem.ndkVer}".clang - else if targetPlatform.isGhcjs - # Need to use `throw` so tryEval for splicing works, ugh. Using - # `null` or skipping the attribute would cause an eval failure - # `tryEval` wouldn't catch, wrecking accessing previous stages - # when there is a C compiler and everything should be fine. - then throw "no C compiler provided for this platform" - else if crossSystem.isDarwin - then buildPackages.llvmPackages.libcxxClang - else if crossSystem.useLLVM or false - then buildPackages.llvmPackages.clang - else buildPackages.gcc; + cc = + if crossSystem.useiOSPrebuilt or false then + buildPackages.darwin.iosSdkPkgs.clang + else if crossSystem.useAndroidPrebuilt or false then + buildPackages."androidndkPkgs_${crossSystem.ndkVer}".clang + else if + targetPlatform.isGhcjs + # Need to use `throw` so tryEval for splicing works, ugh. Using + # `null` or skipping the attribute would cause an eval failure + # `tryEval` wouldn't catch, wrecking accessing previous stages + # when there is a C compiler and everything should be fine. + then + throw "no C compiler provided for this platform" + else if crossSystem.isDarwin then + buildPackages.llvmPackages.libcxxClang + else if crossSystem.useLLVM or false then + buildPackages.llvmPackages.clang + else + buildPackages.gcc; - extraNativeBuildInputs = old.extraNativeBuildInputs - ++ lib.optionals - (hostPlatform.isLinux && !buildPlatform.isLinux) - [ buildPackages.patchelf ] - ++ lib.optional - (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS || p.isGenode; - in f hostPlatform && !(f buildPlatform) ) - buildPackages.updateAutotoolsGnuConfigScriptsHook - ; - })); - }) + extraNativeBuildInputs = + old.extraNativeBuildInputs + ++ lib.optionals (hostPlatform.isLinux && !buildPlatform.isLinux) [ buildPackages.patchelf ] + ++ lib.optional ( + let + f = + p: + !p.isx86 + || builtins.elem p.libc [ + "musl" + "wasilibc" + "relibc" + ] + || p.isiOS + || p.isGenode; + in + f hostPlatform && !(f buildPlatform) + ) buildPackages.updateAutotoolsGnuConfigScriptsHook; + }) + ); + } + ) ] diff --git a/pkgs/stdenv/custom/default.nix b/pkgs/stdenv/custom/default.nix index 4c73801..c1b5839 100644 --- a/pkgs/stdenv/custom/default.nix +++ b/pkgs/stdenv/custom/default.nix @@ -1,17 +1,29 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], }: assert crossSystem == localSystem; let bootStages = import ../. { - inherit lib localSystem crossSystem overlays; + inherit + lib + localSystem + crossSystem + overlays + ; # Remove config.replaceStdenv to ensure termination. config = builtins.removeAttrs config [ "replaceStdenv" ]; }; -in bootStages ++ [ +in +bootStages +++ [ # Additional stage, built using custom stdenv (vanillaPackages: { diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 3ab2382..28f3dd5 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -7,17 +7,19 @@ # See also the top comments of the Linux stdenv `../linux/default.nix` for a good overview of # the bootstrap process and working with it. -{ lib -, localSystem -, crossSystem -, config -, overlays -, crossOverlays ? [ ] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], # Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools -, bootstrapFiles ? if localSystem.isAarch64 then - import ./bootstrap-files/aarch64-apple-darwin.nix - else - import ./bootstrap-files/x86_64-apple-darwin.nix + bootstrapFiles ? + if localSystem.isAarch64 then + import ./bootstrap-files/aarch64-apple-darwin.nix + else + import ./bootstrap-files/x86_64-apple-darwin.nix, }: assert crossSystem == localSystem; @@ -34,12 +36,9 @@ let ]; isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg); - isFromBootstrapFiles = - pkg: pkg.passthru.isFromBootstrapFiles or false; - isBuiltByNixpkgsCompiler = - pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc; - isBuiltByBootstrapFilesCompiler = - pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc; + isFromBootstrapFiles = pkg: pkg.passthru.isFromBootstrapFiles or false; + isBuiltByNixpkgsCompiler = pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc; + isBuiltByBootstrapFilesCompiler = pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc; commonPreHook = '' export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1} @@ -48,84 +47,97 @@ let unset SDKROOT ''; - bootstrapTools = derivation ({ - inherit system; + bootstrapTools = + derivation ( + { + inherit system; - name = "bootstrap-tools"; - builder = "${bootstrapFiles.unpack}/bin/bash"; + name = "bootstrap-tools"; + builder = "${bootstrapFiles.unpack}/bin/bash"; - args = [ - "${bootstrapFiles.unpack}/bootstrap-tools-unpack.sh" - bootstrapFiles.bootstrapTools - ]; - - PATH = lib.makeBinPath [ - (placeholder "out") - bootstrapFiles.unpack - ]; - - __impureHostDeps = commonImpureHostDeps; - } // lib.optionalAttrs config.contentAddressedByDefault { - __contentAddressed = true; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - }) // { passthru.isFromBootstrapFiles = true; }; - - stageFun = prevStage: - { name, overrides ? (self: super: { }), extraNativeBuildInputs ? [ ], extraPreHook ? "" }: - - let - cc = if prevStage.llvmPackages.clang-unwrapped == null - then null else - lib.makeOverridable (import ../../build-support/cc-wrapper) { - name = "${name}-clang-wrapper"; - - nativeTools = false; - nativeLibc = false; - - expand-response-params = lib.optionalString - (prevStage.stdenv.hasCC or false && prevStage.stdenv.cc != "/dev/null") - prevStage.expand-response-params; - - extraPackages = [ - prevStage.llvmPackages.compiler-rt + args = [ + "${bootstrapFiles.unpack}/bootstrap-tools-unpack.sh" + bootstrapFiles.bootstrapTools ]; - extraBuildCommands = - let - inherit (prevStage.llvmPackages) clang-unwrapped compiler-rt release_version; - in - '' - function clangResourceRootIncludePath() { - clangLib="$1/lib/clang" - if (( $(ls "$clangLib" | wc -l) > 1 )); then - echo "Multiple LLVM versions were found at "$clangLib", but there must only be one used when building the stdenv." >&2 - exit 1 - fi - echo "$clangLib/$(ls -1 "$clangLib")/include" - } + PATH = lib.makeBinPath [ + (placeholder "out") + bootstrapFiles.unpack + ]; - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "$(clangResourceRootIncludePath "${clang-unwrapped.lib}")" "$rsrc" - ln -s "${compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${compiler-rt.out}/share" "$rsrc/share" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; + __impureHostDeps = commonImpureHostDeps; + } + // lib.optionalAttrs config.contentAddressedByDefault { + __contentAddressed = true; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + } + ) + // { + passthru.isFromBootstrapFiles = true; + }; - cc = prevStage.llvmPackages.clang-unwrapped; - bintools = prevStage.darwin.binutils; + stageFun = + prevStage: + { + name, + overrides ? (self: super: { }), + extraNativeBuildInputs ? [ ], + extraPreHook ? "", + }: - isClang = true; - libc = prevStage.darwin.Libsystem; - inherit (prevStage.llvmPackages) libcxx; + let + cc = + if prevStage.llvmPackages.clang-unwrapped == null then + null + else + lib.makeOverridable (import ../../build-support/cc-wrapper) { + name = "${name}-clang-wrapper"; - inherit lib; - inherit (prevStage) coreutils gnugrep; + nativeTools = false; + nativeLibc = false; - stdenvNoCC = prevStage.ccWrapperStdenv; - runtimeShell = prevStage.ccWrapperStdenv.shell; - }; + expand-response-params = lib.optionalString ( + prevStage.stdenv.hasCC or false && prevStage.stdenv.cc != "/dev/null" + ) prevStage.expand-response-params; + + extraPackages = [ prevStage.llvmPackages.compiler-rt ]; + + extraBuildCommands = + let + inherit (prevStage.llvmPackages) clang-unwrapped compiler-rt release_version; + in + '' + function clangResourceRootIncludePath() { + clangLib="$1/lib/clang" + if (( $(ls "$clangLib" | wc -l) > 1 )); then + echo "Multiple LLVM versions were found at "$clangLib", but there must only be one used when building the stdenv." >&2 + exit 1 + fi + echo "$clangLib/$(ls -1 "$clangLib")/include" + } + + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "$(clangResourceRootIncludePath "${clang-unwrapped.lib}")" "$rsrc" + ln -s "${compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${compiler-rt.out}/share" "$rsrc/share" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + + cc = prevStage.llvmPackages.clang-unwrapped; + bintools = prevStage.darwin.binutils; + + isClang = true; + libc = prevStage.darwin.Libsystem; + inherit (prevStage.llvmPackages) libcxx; + + inherit lib; + inherit (prevStage) coreutils gnugrep; + + stdenvNoCC = prevStage.ccWrapperStdenv; + runtimeShell = prevStage.ccWrapperStdenv.shell; + }; bash = prevStage.bash or bootstrapTools; @@ -139,22 +151,27 @@ let inherit config; extraBuildInputs = [ prevStage.darwin.CF ]; - extraNativeBuildInputs = extraNativeBuildInputs - ++ [ prevStage.darwin.apple_sdk.sdkRoot ]; + extraNativeBuildInputs = extraNativeBuildInputs ++ [ prevStage.darwin.apple_sdk.sdkRoot ]; - preHook = lib.optionalString (!isBuiltByNixpkgsCompiler bash) '' - # Don't patch #!/interpreter because it leads to retained - # dependencies on the bootstrapTools in the final stdenv. - dontPatchShebangs=1 - '' + '' - ${commonPreHook} - ${extraPreHook} - '' + lib.optionalString (prevStage.darwin ? locale) '' - export PATH_LOCALE=${prevStage.darwin.locale}/share/locale - ''; + preHook = + lib.optionalString (!isBuiltByNixpkgsCompiler bash) '' + # Don't patch #!/interpreter because it leads to retained + # dependencies on the bootstrapTools in the final stdenv. + dontPatchShebangs=1 + '' + + '' + ${commonPreHook} + ${extraPreHook} + '' + + lib.optionalString (prevStage.darwin ? locale) '' + export PATH_LOCALE=${prevStage.darwin.locale}/share/locale + ''; shell = bash + "/bin/bash"; - initialPath = [ bash bootstrapTools ]; + initialPath = [ + bash + bootstrapTools + ]; fetchurlBoot = import ../../build-support/fetchurl { inherit lib; @@ -171,14 +188,15 @@ let # Using the bootstrap tools curl for fetchers allows the stdenv bootstrap to avoid # having a dependency on curl, allowing curl to be updated without triggering a # new stdenv bootstrap on Darwin. - overrides = self: super: (overrides self super) // { - fetchurl = thisStdenv.fetchurlBoot; - fetchpatch = super.fetchpatch.override { inherit (self) fetchurl; }; - fetchgit = super.fetchgit.override { - git = super.git.override { curl = bootstrapTools; }; + overrides = + self: super: + (overrides self super) + // { + fetchurl = thisStdenv.fetchurlBoot; + fetchpatch = super.fetchpatch.override { inherit (self) fetchurl; }; + fetchgit = super.fetchgit.override { git = super.git.override { curl = bootstrapTools; }; }; + fetchzip = super.fetchzip.override { inherit (self) fetchurl; }; }; - fetchzip = super.fetchzip.override { inherit (self) fetchurl; }; - }; }; in @@ -187,198 +205,223 @@ let stdenv = thisStdenv; }; in - assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check +assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check [ - ({}: { - __raw = true; + ( + { }: + { + __raw = true; - coreutils = null; - gnugrep = null; + coreutils = null; + gnugrep = null; - pbzx = null; - cpio = null; + pbzx = null; + cpio = null; - darwin = { - apple_sdk.sdkRoot = null; - binutils = null; - binutils-unwrapped = null; - cctools = null; - print-reexports = null; - rewrite-tbd = null; - sigtool = null; - CF = null; - Libsystem = null; - }; + darwin = { + apple_sdk.sdkRoot = null; + binutils = null; + binutils-unwrapped = null; + cctools = null; + print-reexports = null; + rewrite-tbd = null; + sigtool = null; + CF = null; + Libsystem = null; + }; - llvmPackages = { - clang-unwrapped = null; - libllvm = null; - libcxx = null; - compiler-rt = null; - }; - }) + llvmPackages = { + clang-unwrapped = null; + libllvm = null; + libcxx = null; + compiler-rt = null; + }; + } + ) # Create a stage with the bootstrap tools. This will be used to build the subsequent stages and # build up the standard environment. # # Note: Each stage depends only on the the packages in `prevStage`. If a package is not to be # rebuilt, it should be passed through by inheriting it. - (prevStage: stageFun prevStage { - name = "bootstrap-stage0"; + ( + prevStage: + stageFun prevStage { + name = "bootstrap-stage0"; - overrides = self: super: { - # We thread stage0's stdenv through under this name so downstream stages - # can use it for wrapping gcc too. This way, downstream stages don't need - # to refer to this stage directly, which violates the principle that each - # stage should only access the stage that came before it. - ccWrapperStdenv = self.stdenv; + overrides = self: super: { + # We thread stage0's stdenv through under this name so downstream stages + # can use it for wrapping gcc too. This way, downstream stages don't need + # to refer to this stage directly, which violates the principle that each + # stage should only access the stage that came before it. + ccWrapperStdenv = self.stdenv; - bash = bootstrapTools; - coreutils = bootstrapTools; - cpio = bootstrapTools; - gnugrep = bootstrapTools; - pbzx = bootstrapTools; + bash = bootstrapTools; + coreutils = bootstrapTools; + cpio = bootstrapTools; + gnugrep = bootstrapTools; + pbzx = bootstrapTools; - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - # Prevent CF from being propagated to the initial stdenv. Packages that require it - # will have to manually add it to their build inputs. - CF = null; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: + { + # Prevent CF from being propagated to the initial stdenv. Packages that require it + # will have to manually add it to their build inputs. + CF = null; - binutils-unwrapped = bootstrapTools // { - version = "boot"; - }; - - binutils = super.wrapBintoolsWith { - name = "bootstrap-stage0-binutils-wrapper"; - - nativeTools = false; - nativeLibc = false; - - expand-response-params = ""; - libc = selfDarwin.Libsystem; - - inherit lib; - inherit (self) stdenvNoCC coreutils gnugrep; - runtimeShell = self.stdenvNoCC.shell; - - bintools = selfDarwin.binutils-unwrapped; - - inherit (selfDarwin) postLinkSignHook signingUtils; - }; - - cctools = bootstrapTools // { - targetPrefix = ""; - version = "boot"; - man = bootstrapTools; - }; - - locale = self.stdenv.mkDerivation { - name = "bootstrap-stage0-locale"; - buildCommand = '' - mkdir -p $out/share/locale - ''; - }; - - print-reexports = bootstrapTools; - - rewrite-tbd = bootstrapTools; - - sigtool = bootstrapTools; - } // lib.optionalAttrs (! useAppleSDKLibs) { - Libsystem = self.stdenv.mkDerivation { - name = "bootstrap-stage0-Libsystem"; - buildCommand = '' - mkdir -p $out - - cp -r ${selfDarwin.darwin-stubs}/usr/lib $out/lib - chmod -R +w $out/lib - substituteInPlace $out/lib/libSystem.B.tbd --replace /usr/lib/system $out/lib/system - - ln -s libSystem.B.tbd $out/lib/libSystem.tbd - - for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do - ln -s libSystem.tbd $out/lib/lib$name.tbd - done - - ln -s ${bootstrapTools}/lib/*.o $out/lib - - ln -s ${bootstrapTools}/lib/libresolv.9.dylib $out/lib - ln -s libresolv.9.dylib $out/lib/libresolv.dylib - - ln -s ${bootstrapTools}/include-Libsystem $out/include - ''; - passthru.isFromBootstrapFiles = true; - }; - }); - - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (selfTools: _: { - libclang = self.stdenv.mkDerivation { - name = "bootstrap-stage0-clang"; + binutils-unwrapped = bootstrapTools // { version = "boot"; - outputs = [ "out" "lib" ]; - buildCommand = '' - mkdir -p $out/lib - ln -s $out $lib - ln -s ${bootstrapTools}/bin $out/bin - ln -s ${bootstrapTools}/lib/clang $out/lib - ln -s ${bootstrapTools}/include $out - ''; - passthru = { - isFromBootstrapFiles = true; - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" ]; - }; }; - clang-unwrapped = selfTools.libclang; - libllvm = self.stdenv.mkDerivation { - name = "bootstrap-stage0-llvm"; - outputs = [ "out" "lib" ]; - buildCommand = '' - mkdir -p $out/bin $out/lib - ln -s $out $lib - ln -s ${bootstrapTools}/bin/strip $out/bin/llvm-strip - ln -s ${bootstrapTools}/lib/libLLVM* $out/lib - ''; - passthru.isFromBootstrapFiles = true; - }; - llvm = selfTools.libllvm; - }); - libraries = super.llvmPackages.libraries.extend (_: _: { - libcxx = self.stdenv.mkDerivation { - name = "bootstrap-stage0-libcxx"; - buildCommand = '' - mkdir -p $out/lib $out/include - ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib - ln -s ${bootstrapTools}/include/c++ $out/include - ''; - passthru = { - isLLVM = true; - isFromBootstrapFiles = true; - }; - }; - compiler-rt = self.stdenv.mkDerivation { - name = "bootstrap-stage0-compiler-rt"; - buildCommand = '' - mkdir -p $out/lib $out/share - ln -s ${bootstrapTools}/lib/libclang_rt* $out/lib - ln -s ${bootstrapTools}/lib/darwin $out/lib - ''; - passthru.isFromBootstrapFiles = true; - }; - }); - in - { inherit tools libraries; } // tools // libraries - ); - }; - # The bootstrap tools may use `strip` from cctools, so use a compatible set of flags until LLVM - # is rebuilt, and darwin.binutils can use its implementation instead. - extraPreHook = '' - stripAllFlags=" " # the cctools "strip" command doesn't know "-s" - stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" - ''; - }) + binutils = super.wrapBintoolsWith { + name = "bootstrap-stage0-binutils-wrapper"; + + nativeTools = false; + nativeLibc = false; + + expand-response-params = ""; + libc = selfDarwin.Libsystem; + + inherit lib; + inherit (self) stdenvNoCC coreutils gnugrep; + runtimeShell = self.stdenvNoCC.shell; + + bintools = selfDarwin.binutils-unwrapped; + + inherit (selfDarwin) postLinkSignHook signingUtils; + }; + + cctools = bootstrapTools // { + targetPrefix = ""; + version = "boot"; + man = bootstrapTools; + }; + + locale = self.stdenv.mkDerivation { + name = "bootstrap-stage0-locale"; + buildCommand = '' + mkdir -p $out/share/locale + ''; + }; + + print-reexports = bootstrapTools; + + rewrite-tbd = bootstrapTools; + + sigtool = bootstrapTools; + } + // lib.optionalAttrs (!useAppleSDKLibs) { + Libsystem = self.stdenv.mkDerivation { + name = "bootstrap-stage0-Libsystem"; + buildCommand = '' + mkdir -p $out + + cp -r ${selfDarwin.darwin-stubs}/usr/lib $out/lib + chmod -R +w $out/lib + substituteInPlace $out/lib/libSystem.B.tbd --replace /usr/lib/system $out/lib/system + + ln -s libSystem.B.tbd $out/lib/libSystem.tbd + + for name in c dbm dl info m mx poll proc pthread rpcsvc util gcc_s.10.4 gcc_s.10.5; do + ln -s libSystem.tbd $out/lib/lib$name.tbd + done + + ln -s ${bootstrapTools}/lib/*.o $out/lib + + ln -s ${bootstrapTools}/lib/libresolv.9.dylib $out/lib + ln -s libresolv.9.dylib $out/lib/libresolv.dylib + + ln -s ${bootstrapTools}/include-Libsystem $out/include + ''; + passthru.isFromBootstrapFiles = true; + }; + } + ); + + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + selfTools: _: { + libclang = self.stdenv.mkDerivation { + name = "bootstrap-stage0-clang"; + version = "boot"; + outputs = [ + "out" + "lib" + ]; + buildCommand = '' + mkdir -p $out/lib + ln -s $out $lib + ln -s ${bootstrapTools}/bin $out/bin + ln -s ${bootstrapTools}/lib/clang $out/lib + ln -s ${bootstrapTools}/include $out + ''; + passthru = { + isFromBootstrapFiles = true; + hardeningUnsupportedFlags = [ + "fortify3" + "zerocallusedregs" + ]; + }; + }; + clang-unwrapped = selfTools.libclang; + libllvm = self.stdenv.mkDerivation { + name = "bootstrap-stage0-llvm"; + outputs = [ + "out" + "lib" + ]; + buildCommand = '' + mkdir -p $out/bin $out/lib + ln -s $out $lib + ln -s ${bootstrapTools}/bin/strip $out/bin/llvm-strip + ln -s ${bootstrapTools}/lib/libLLVM* $out/lib + ''; + passthru.isFromBootstrapFiles = true; + }; + llvm = selfTools.libllvm; + } + ); + libraries = super.llvmPackages.libraries.extend ( + _: _: { + libcxx = self.stdenv.mkDerivation { + name = "bootstrap-stage0-libcxx"; + buildCommand = '' + mkdir -p $out/lib $out/include + ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib + ln -s ${bootstrapTools}/include/c++ $out/include + ''; + passthru = { + isLLVM = true; + isFromBootstrapFiles = true; + }; + }; + compiler-rt = self.stdenv.mkDerivation { + name = "bootstrap-stage0-compiler-rt"; + buildCommand = '' + mkdir -p $out/lib $out/share + ln -s ${bootstrapTools}/lib/libclang_rt* $out/lib + ln -s ${bootstrapTools}/lib/darwin $out/lib + ''; + passthru.isFromBootstrapFiles = true; + }; + } + ); + in + { inherit tools libraries; } // tools // libraries + ); + }; + + # The bootstrap tools may use `strip` from cctools, so use a compatible set of flags until LLVM + # is rebuilt, and darwin.binutils can use its implementation instead. + extraPreHook = '' + stripAllFlags=" " # the cctools "strip" command doesn't know "-s" + stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" + ''; + } + ) # This stage is primarily responsible for building the linker and setting up versions of # certain dependencies needed by the rest of the build process. It is necessary to rebuild the @@ -393,777 +436,1841 @@ in # # This stage also builds CF and Libsystem to simplify assertions and assumptions for later by # making sure both packages are present on x86_64-darwin and aarch64-darwin. - (prevStage: + ( + prevStage: # previous stage0 stdenv: assert lib.all isFromBootstrapFiles ( - with prevStage; [ bash coreutils cpio gnugrep ] ++ lib.optionals useAppleSDKLibs [ pbzx ] + with prevStage; + [ + bash + coreutils + cpio + gnugrep + ] + ++ lib.optionals useAppleSDKLibs [ pbzx ] ); - assert lib.all isFromBootstrapFiles (with prevStage.darwin; [ - binutils-unwrapped cctools print-reexports rewrite-tbd sigtool - ]); + assert lib.all isFromBootstrapFiles ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + print-reexports + rewrite-tbd + sigtool + ] + ); - assert (! useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ Libsystem ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ Libsystem ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]); - assert (with prevStage.darwin; (! useAppleSDKLibs) -> CF == null); + assert (!useAppleSDKLibs) -> lib.all isFromBootstrapFiles (with prevStage.darwin; [ Libsystem ]); + assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ Libsystem ]); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + xnu + ] + ); + assert (with prevStage.darwin; (!useAppleSDKLibs) -> CF == null); - assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm compiler-rt libcxx - ]); + assert lib.all isFromBootstrapFiles ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + compiler-rt + libcxx + ] + ); stageFun prevStage { - name = "bootstrap-stage1"; + name = "bootstrap-stage1"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - coreutils gnugrep; + overrides = self: super: { + inherit (prevStage) ccWrapperStdenv coreutils gnugrep; - # Use this stage’s CF to build CMake. It’s required but can’t be included in the stdenv. - cmake = self.cmakeMinimal; - cmakeMinimal = super.cmakeMinimal.overrideAttrs (old: { - buildInputs = old.buildInputs ++ [ self.darwin.CF ]; - }); - - # Disable tests because they use dejagnu, which fails to run. - libffi = super.libffi.override { doCheck = false; }; - - # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds. - libxml2 = super.libxml2.override { pythonSupport = false; }; - - ninja = super.ninja.override { buildDocs = false; }; - - # Use this stage’s CF to build Python. It’s required but can’t be included in the stdenv. - python3 = self.python3Minimal; - python3Minimal = super.python3Minimal.overrideAttrs (old: { - buildInputs = old.buildInputs ++ [ self.darwin.CF ]; - }); - - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; - - # Use this stage’s CF to build configd. It’s required but can’t be included in the stdenv. - configd = superDarwin.configd.overrideAttrs (old: { - buildInputs = old.buildInputs or [ ] ++ [ self.darwin.CF ]; + # Use this stage’s CF to build CMake. It’s required but can’t be included in the stdenv. + cmake = self.cmakeMinimal; + cmakeMinimal = super.cmakeMinimal.overrideAttrs (old: { + buildInputs = old.buildInputs ++ [ self.darwin.CF ]; }); - signingUtils = prevStage.darwin.signingUtils.override { - inherit (selfDarwin) sigtool; - }; + # Disable tests because they use dejagnu, which fails to run. + libffi = super.libffi.override { doCheck = false; }; - postLinkSignHook = prevStage.darwin.postLinkSignHook.override { - inherit (selfDarwin) sigtool; - }; + # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds. + libxml2 = super.libxml2.override { pythonSupport = false; }; - binutils = superDarwin.binutils.override { - inherit (self) coreutils; - inherit (selfDarwin) postLinkSignHook signingUtils; + ninja = super.ninja.override { buildDocs = false; }; - bintools = selfDarwin.binutils-unwrapped; - libc = selfDarwin.Libsystem; - # TODO(@sternenseemann): can this be removed? - runtimeShell = "${bootstrapTools}/bin/bash"; - }; + # Use this stage’s CF to build Python. It’s required but can’t be included in the stdenv. + python3 = self.python3Minimal; + python3Minimal = super.python3Minimal.overrideAttrs (old: { + buildInputs = old.buildInputs ++ [ self.darwin.CF ]; + }); - binutils-unwrapped = superDarwin.binutils-unwrapped.override { - inherit (selfDarwin) cctools; - }; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: { + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; - cctools = selfDarwin.cctools-port; - }); + # Use this stage’s CF to build configd. It’s required but can’t be included in the stdenv. + configd = superDarwin.configd.overrideAttrs (old: { + buildInputs = old.buildInputs or [ ] ++ [ self.darwin.CF ]; + }); - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang-unwrapped libclang libllvm llvm; - }); - libraries = super.llvmPackages.libraries.extend (_: _: { - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries - ); - }; + signingUtils = prevStage.darwin.signingUtils.override { inherit (selfDarwin) sigtool; }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + postLinkSignHook = prevStage.darwin.postLinkSignHook.override { inherit (selfDarwin) sigtool; }; - # The bootstrap tools may use `strip` from cctools, so use a compatible set of flags until LLVM - # is rebuilt, and darwin.binutils can use its implementation instead. - extraPreHook = '' - stripAllFlags=" " # the cctools "strip" command doesn't know "-s" - stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" + binutils = superDarwin.binutils.override { + inherit (self) coreutils; + inherit (selfDarwin) postLinkSignHook signingUtils; - # Don’t assume the ld64 in bootstrap tools supports response files. Only recent versions do. - export NIX_LD_USE_RESPONSE_FILE=0 - ''; - }) + bintools = selfDarwin.binutils-unwrapped; + libc = selfDarwin.Libsystem; + # TODO(@sternenseemann): can this be removed? + runtimeShell = "${bootstrapTools}/bin/bash"; + }; + + binutils-unwrapped = superDarwin.binutils-unwrapped.override { inherit (selfDarwin) cctools; }; + + cctools = selfDarwin.cctools-port; + } + ); + + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang-unwrapped + libclang + libllvm + llvm + ; + } + ); + libraries = super.llvmPackages.libraries.extend ( + _: _: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { + inherit tools libraries; + inherit (prevStage.llvmPackages) release_version; + } + // tools + // libraries + ); + }; + + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; + + # The bootstrap tools may use `strip` from cctools, so use a compatible set of flags until LLVM + # is rebuilt, and darwin.binutils can use its implementation instead. + extraPreHook = '' + stripAllFlags=" " # the cctools "strip" command doesn't know "-s" + stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" + + # Don’t assume the ld64 in bootstrap tools supports response files. Only recent versions do. + export NIX_LD_USE_RESPONSE_FILE=0 + ''; + } + ) # Build cctools, Python, and sysctl for use by LLVM’s check phase. They must be built in # their stage to prevent infinite recursions and to make sure the stdenv used to build # LLVM has the newly built cctools instead of the one from the bootstrap tools. - (prevStage: + ( + prevStage: # previous stage1 stdenv: - assert lib.all isFromBootstrapFiles (with prevStage; [ coreutils gnugrep ]); + assert lib.all isFromBootstrapFiles ( + with prevStage; + [ + coreutils + gnugrep + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bash binutils-unwrapped bison brotli cmake cpio cyrus_sasl db - ed expat flex gettext gmp groff icu libedit libffi libiconv libidn2 libkrb5 libssh2 - libtool libunistring libxml2 m4 ncurses nghttp2 ninja openldap openssh openssl - patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite - subversion texinfo unzip which xz zlib zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bash + binutils-unwrapped + bison + brotli + cmake + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + groff + icu + libedit + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libtool + libunistring + libxml2 + m4 + ncurses + nghttp2 + ninja + openldap + openssh + openssl + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + texinfo + unzip + which + xz + zlib + zstd + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool - ]); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + locale + libtapi + print-reexports + rewrite-tbd + sigtool + ] + ); + assert + (!useAppleSDKLibs) + -> lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + Libsystem + configd + ] + ); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + xnu + ] + ); - assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm compiler-rt libcxx - ]); + assert lib.all isFromBootstrapFiles ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + compiler-rt + libcxx + ] + ); assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == "boot"; stageFun prevStage { - name = "bootstrap-stage1-sysctl"; + name = "bootstrap-stage1-sysctl"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal - coreutils cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu - libedit libffi libiconv libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 - ncurses nghttp2 ninja openldap openssh openssl patchutils pbzx perl pkg-config - python3Minimal scons sed serf sharutils sqlite subversion texinfo unzip which xz - zlib zstd; + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + bash + binutils + binutils-unwrapped + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + icu + libedit + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libtool + libunistring + libxml2 + m4 + ncurses + nghttp2 + ninja + openldap + openssh + openssl + patchutils + pbzx + perl + pkg-config + python3Minimal + scons + sed + serf + sharutils + sqlite + subversion + texinfo + unzip + which + xz + zlib + zstd + ; - # Support for the SystemConfiguration framework is required to run the LLVM tests, but trying - # to override python3Minimal does not appear to work. - python3 = (super.python3.override { - inherit (self) libffi; - inherit (self.darwin) configd; - openssl = null; - readline = null; - ncurses = null; - gdbm = null; - sqlite = null; - tzdata = null; - stripConfig = true; - stripIdlelib = true; - stripTests = true; - stripTkinter = true; - rebuildBytecode = false; - stripBytecode = true; - includeSiteCustomize = false; - enableOptimizations = false; - enableLTO = false; - mimetypesSupport = false; - }).overrideAttrs (_: { pname = "python3-minimal-scproxy"; }); + # Support for the SystemConfiguration framework is required to run the LLVM tests, but trying + # to override python3Minimal does not appear to work. + python3 = + (super.python3.override { + inherit (self) libffi; + inherit (self.darwin) configd; + openssl = null; + readline = null; + ncurses = null; + gdbm = null; + sqlite = null; + tzdata = null; + stripConfig = true; + stripIdlelib = true; + stripTests = true; + stripTkinter = true; + rebuildBytecode = false; + stripBytecode = true; + includeSiteCustomize = false; + enableOptimizations = false; + enableLTO = false; + mimetypesSupport = false; + }).overrideAttrs + (_: { + pname = "python3-minimal-scproxy"; + }); - darwin = super.darwin.overrideScope (_: superDarwin: { - inherit (prevStage.darwin) - CF sdkRoot Libsystem binutils-unwrapped cctools cctools-port configd darwin-stubs dyld - launchd libclosure libdispatch libobjc locale objc4 postLinkSignHook - print-reexports rewrite-tbd signingUtils sigtool; + darwin = super.darwin.overrideScope ( + _: superDarwin: { + inherit (prevStage.darwin) + CF + sdkRoot + Libsystem + binutils-unwrapped + cctools + cctools-port + configd + darwin-stubs + dyld + launchd + libclosure + libdispatch + libobjc + locale + objc4 + postLinkSignHook + print-reexports + rewrite-tbd + signingUtils + sigtool + ; - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; - }); + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; + } + ); - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang-unwrapped libclang libllvm llvm; - clang = prevStage.stdenv.cc; - }); - libraries = super.llvmPackages.libraries.extend (_: _: { - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries - ); - }; + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang-unwrapped + libclang + libllvm + llvm + ; + clang = prevStage.stdenv.cc; + } + ); + libraries = super.llvmPackages.libraries.extend ( + _: _: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { + inherit tools libraries; + inherit (prevStage.llvmPackages) release_version; + } + // tools + // libraries + ); + }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; - # Until LLVM is rebuilt, assume `strip` is the one from cctools. - extraPreHook = '' - stripAllFlags=" " # the cctools "strip" command doesn't know "-s" - stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" - ''; - }) + # Until LLVM is rebuilt, assume `strip` is the one from cctools. + extraPreHook = '' + stripAllFlags=" " # the cctools "strip" command doesn't know "-s" + stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" + ''; + } + ) # First rebuild of LLVM. While this LLVM is linked to a bunch of junk from the bootstrap tools, # the libc++ and libc++abi it produces are not. The compiler will be rebuilt in a later stage, # but those libraries will be used in the final stdenv. # # Rebuild coreutils and gnugrep to avoid unwanted references to the bootstrap tools on `PATH`. - (prevStage: + ( + prevStage: # previous stage-sysctl stdenv: - assert lib.all isFromBootstrapFiles (with prevStage; [ coreutils gnugrep ]); + assert lib.all isFromBootstrapFiles ( + with prevStage; + [ + coreutils + gnugrep + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bash binutils-unwrapped bison brotli cmake cpio cyrus_sasl db - ed expat flex gettext gmp groff icu libedit libffi libiconv libidn2 libkrb5 libssh2 - libtool libunistring libxml2 m4 ncurses nghttp2 ninja openldap openssh openssl - patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite - subversion sysctl.provider texinfo unzip which xz zlib zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bash + binutils-unwrapped + bison + brotli + cmake + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + groff + icu + libedit + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libtool + libunistring + libxml2 + m4 + ncurses + nghttp2 + ninja + openldap + openssh + openssl + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + xz + zlib + zstd + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + locale + libtapi + print-reexports + rewrite-tbd + sigtool + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd xnu ]); + assert + (!useAppleSDKLibs) + -> lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + Libsystem + configd + ] + ); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + xnu + ] + ); - assert lib.all isFromBootstrapFiles (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm compiler-rt libcxx - ]); + assert lib.all isFromBootstrapFiles ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + compiler-rt + libcxx + ] + ); - assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-port; + assert + lib.getVersion prevStage.stdenv.cc.bintools.bintools + == lib.getVersion prevStage.darwin.cctools-port; stageFun prevStage { - name = "bootstrap-stage-xclang"; + name = "bootstrap-stage-xclang"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal - cpio cyrus_sasl db ed expat flex gettext gmp groff icu libedit libffi libiconv - libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 ncurses nghttp2 ninja - openldap openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal - scons sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zlib zstd; + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + bash + binutils + binutils-unwrapped + bison + brotli + cmake + cmakeMinimal + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + groff + icu + libedit + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libtool + libunistring + libxml2 + m4 + ncurses + nghttp2 + ninja + openldap + openssh + openssl + patchutils + pbzx + perl + pkg-config + python3 + python3Minimal + scons + sed + serf + sharutils + sqlite + subversion + sysctl + texinfo + unzip + which + xz + zlib + zstd + ; - # Switch from cctools-port to cctools-llvm now that LLVM has been built. - darwin = super.darwin.overrideScope (_: superDarwin: { - inherit (prevStage.darwin) - CF Libsystem configd darwin-stubs dyld launchd libclosure libdispatch libobjc - locale objc4 postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool; + # Switch from cctools-port to cctools-llvm now that LLVM has been built. + darwin = super.darwin.overrideScope ( + _: superDarwin: { + inherit (prevStage.darwin) + CF + Libsystem + configd + darwin-stubs + dyld + launchd + libclosure + libdispatch + libobjc + locale + objc4 + postLinkSignHook + print-reexports + rewrite-tbd + signingUtils + sigtool + ; - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; - # Avoid building unnecessary Python dependencies due to building LLVM manpages. - cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; }; - }); + # Avoid building unnecessary Python dependencies due to building LLVM manpages. + cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; }; + } + ); - llvmPackages = super.llvmPackages // ( - let - llvmMajor = lib.versions.major super.llvmPackages.release_version; + llvmPackages = + super.llvmPackages + // ( + let + llvmMajor = lib.versions.major super.llvmPackages.release_version; - # libc++, and libc++abi do not need CoreFoundation. Avoid propagating the CF from prior - # stages to the final stdenv via rpath by dropping it from `extraBuildInputs`. - stdenvNoCF = self.stdenv.override { - extraBuildInputs = [ ]; - }; + # libc++, and libc++abi do not need CoreFoundation. Avoid propagating the CF from prior + # stages to the final stdenv via rpath by dropping it from `extraBuildInputs`. + stdenvNoCF = self.stdenv.override { extraBuildInputs = [ ]; }; - libcxxBootstrapStdenv = self.overrideCC stdenvNoCF (self.llvmPackages.clangNoCompilerRtWithLibc.override { - nixSupport.cc-cflags = [ "-nostdlib" ]; - nixSupport.cc-ldflags = [ "-lSystem" ]; - }); + libcxxBootstrapStdenv = self.overrideCC stdenvNoCF ( + self.llvmPackages.clangNoCompilerRtWithLibc.override { + nixSupport.cc-cflags = [ "-nostdlib" ]; + nixSupport.cc-ldflags = [ "-lSystem" ]; + } + ); - libraries = super.llvmPackages.libraries.extend (selfLib: superLib: { - compiler-rt = null; - libcxx = superLib.libcxx.override ({ - stdenv = libcxxBootstrapStdenv; - }); - }); - in - { inherit libraries; } // libraries - ); - }; + libraries = super.llvmPackages.libraries.extend ( + selfLib: superLib: { + compiler-rt = null; + libcxx = superLib.libcxx.override ({ stdenv = libcxxBootstrapStdenv; }); + } + ); + in + { inherit libraries; } // libraries + ); + }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; - extraPreHook = '' - stripAllFlags=" " # the cctools "strip" command doesn't know "-s" - stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" - ''; - }) + extraPreHook = '' + stripAllFlags=" " # the cctools "strip" command doesn't know "-s" + stripDebugFlags="-S" # the cctools "strip" command does something odd with "-p" + ''; + } + ) # This stage rebuilds Libsystem. It also rebuilds bash, which will be needed in later stages # to use in patched shebangs (e.g., to make sure `icu-config` uses bash from nixpkgs). - (prevStage: + ( + prevStage: # previous stage-xclang stdenv: - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bash binutils-unwrapped bison cmake cmakeMinimal coreutils cpio - cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu libedit libtool m4 ninja - openbsm openldap openpam openssh patchutils pbzx perl pkg-config.pkg-config python3 - python3Minimal scons serf sqlite subversion sysctl.provider texinfo unzip which xz - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bash + binutils-unwrapped + bison + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + icu + libedit + libtool + m4 + ninja + openbsm + openldap + openpam + openssh + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + xz + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - brotli libffi libiconv libidn2 libkrb5 libssh2 libunistring libxml2 ncurses - nghttp2 openssl zlib zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + brotli + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libunistring + libxml2 + ncurses + nghttp2 + openssl + zlib + zstd + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + locale + libtapi + print-reexports + rewrite-tbd + sigtool + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ Libsystem configd ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]); + assert + (!useAppleSDKLibs) + -> lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + Libsystem + configd + ] + ); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + libclosure + libdispatch + xnu + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + ] + ); assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]); assert prevStage.llvmPackages.compiler-rt == null; - assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-port; + assert + lib.getVersion prevStage.stdenv.cc.bintools.bintools + == lib.getVersion prevStage.darwin.cctools-port; stageFun prevStage { - name = "bootstrap-stage2-Libsystem"; + name = "bootstrap-stage2-Libsystem"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake binutils-unwrapped bison brotli cmake cmakeMinimal coreutils - cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu libedit libffi - libiconv libidn2 libkrb5 libssh2 libtool libunistring libxml2 m4 ncurses nghttp2 - ninja openbsm openldap openpam openssh openssl patchutils pbzx perl pkg-config - python3 python3Minimal scons serf sqlite subversion sysctl texinfo unzip which xz - zlib zstd; + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + binutils-unwrapped + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + icu + libedit + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libtool + libunistring + libxml2 + m4 + ncurses + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl + texinfo + unzip + which + xz + zlib + zstd + ; - # Bash must be linked against the system CoreFoundation instead of the open-source one. - # Otherwise, there will be a dependency cycle: bash -> CF -> icu -> bash (for icu^dev). - bash = super.bash.overrideAttrs (super: { - buildInputs = super.buildInputs ++ [ self.darwin.apple_sdk.frameworks.CoreFoundation ]; - }); - - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - inherit (prevStage.darwin) - CF binutils-unwrapped cctools configd darwin-stubs launchd libobjc libtapi locale - objc4 print-reexports rewrite-tbd signingUtils sigtool; - - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; - }); - - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang-unwrapped clangNoCompilerRtWithLibc libclang libllvm llvm; - }); - - libraries = super.llvmPackages.libraries.extend (selfLib: superLib: { - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries - ); - - # Don’t link anything in this stage against CF to prevent propagating CF from prior stages to - # the final stdenv, which happens because of the rpath hook. - stdenv = - let - stdenvNoCF = super.stdenv.override { - extraBuildInputs = [ ]; - }; - in - self.overrideCC stdenvNoCF (self.llvmPackages.clangNoCompilerRtWithLibc.override { - inherit (self.llvmPackages) libcxx; + # Bash must be linked against the system CoreFoundation instead of the open-source one. + # Otherwise, there will be a dependency cycle: bash -> CF -> icu -> bash (for icu^dev). + bash = super.bash.overrideAttrs (super: { + buildInputs = super.buildInputs ++ [ self.darwin.apple_sdk.frameworks.CoreFoundation ]; }); - }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: { + inherit (prevStage.darwin) + CF + binutils-unwrapped + cctools + configd + darwin-stubs + launchd + libobjc + libtapi + locale + objc4 + print-reexports + rewrite-tbd + signingUtils + sigtool + ; - extraPreHook = '' - stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O - ''; - }) + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; + } + ); + + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang-unwrapped + clangNoCompilerRtWithLibc + libclang + libllvm + llvm + ; + } + ); + + libraries = super.llvmPackages.libraries.extend ( + selfLib: superLib: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { + inherit tools libraries; + inherit (prevStage.llvmPackages) release_version; + } + // tools + // libraries + ); + + # Don’t link anything in this stage against CF to prevent propagating CF from prior stages to + # the final stdenv, which happens because of the rpath hook. + stdenv = + let + stdenvNoCF = super.stdenv.override { extraBuildInputs = [ ]; }; + in + self.overrideCC stdenvNoCF ( + self.llvmPackages.clangNoCompilerRtWithLibc.override { inherit (self.llvmPackages) libcxx; } + ); + }; + + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; + + extraPreHook = '' + stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O + ''; + } + ) # This stage rebuilds CF, compiler-rt, and the sdkRoot derivation. # # CF requires: # - aarch64-darwin: libobjc (due to being apple_sdk.frameworks.CoreFoundation instead of swift-corefoundation) # - x86_64-darwin: libiconv libxml2 icu zlib - (prevStage: + ( + prevStage: # previous stage2-Libsystem stdenv: - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake binutils-unwrapped bison brotli cmake cmakeMinimal coreutils - cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff icu libedit libidn2 - libkrb5 libssh2 libtool libunistring m4 nghttp2 ninja openbsm openldap openpam openssh - openssl patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf - sqlite subversion sysctl.provider texinfo unzip which xz zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + binutils-unwrapped + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + icu + libedit + libidn2 + libkrb5 + libssh2 + libtool + libunistring + m4 + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + xz + zstd + ] + ); assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [ bash ]); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - libffi libiconv libxml2 ncurses zlib zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + libffi + libiconv + libxml2 + ncurses + zlib + zstd + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools locale libtapi print-reexports rewrite-tbd sigtool - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + locale + libtapi + print-reexports + rewrite-tbd + sigtool + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); - assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + libclosure + libdispatch + xnu + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + ] + ); assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]); assert prevStage.llvmPackages.compiler-rt == null; - assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm; + assert + lib.getVersion prevStage.stdenv.cc.bintools.bintools + == lib.getVersion prevStage.darwin.cctools-llvm; stageFun prevStage { - name = "bootstrap-stage2-CF"; + name = "bootstrap-stage2-CF"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake bash bison brotli cmake cmakeMinimal coreutils cpio - cyrus_sasl db ed expat flex gettext gmp gnugrep groff libedit libidn2 libkrb5 - libssh2 libtool libunistring m4 ncurses nghttp2 ninja openbsm openldap openpam - openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons serf - sqlite subversion sysctl texinfo unzip which xz zstd; + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + bash + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + libedit + libidn2 + libkrb5 + libssh2 + libtool + libunistring + m4 + ncurses + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl + texinfo + unzip + which + xz + zstd + ; - # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds. - libxml2 = super.libxml2.override { pythonSupport = false; }; + # Avoid pulling in a full python and its extra dependencies for the llvm/clang builds. + libxml2 = super.libxml2.override { pythonSupport = false; }; - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - inherit (prevStage.darwin) - Libsystem configd darwin-stubs launchd locale print-reexports rewrite-tbd - signingUtils sigtool; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: { + inherit (prevStage.darwin) + Libsystem + configd + darwin-stubs + launchd + locale + print-reexports + rewrite-tbd + signingUtils + sigtool + ; - # Rewrap binutils so it uses the rebuilt Libsystem. - binutils = superDarwin.binutils.override { - inherit (prevStage) expand-response-params; - libc = selfDarwin.Libsystem; - } // { - passthru = { inherit (prevStage.bintools.passthru) isFromBootstrapFiles; }; - }; - - # Avoid building unnecessary Python dependencies due to building LLVM manpages. - cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; }; - }); - - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang-unwrapped clangNoCompilerRtWithLibc libclang libllvm llvm; - clang = prevStage.stdenv.cc; - }); - - libraries = super.llvmPackages.libraries.extend (selfLib: superLib: { - inherit (prevStage.llvmPackages) libcxx; - - # Make sure compiler-rt is linked against the CF from this stage, which can be - # propagated to the final stdenv. CF is required by ASAN. - compiler-rt = superLib.compiler-rt.override ({ - inherit (self.llvmPackages) libllvm; - stdenv = self.stdenv.override { - extraBuildInputs = [ self.darwin.CF ]; + # Rewrap binutils so it uses the rebuilt Libsystem. + binutils = + superDarwin.binutils.override { + inherit (prevStage) expand-response-params; + libc = selfDarwin.Libsystem; + } + // { + passthru = { + inherit (prevStage.bintools.passthru) isFromBootstrapFiles; + }; }; - }); - }); - in - { inherit tools libraries; inherit (prevStage.llvmPackages) release_version; } // tools // libraries - ); - # Don’t link anything in this stage against CF to prevent propagating CF from prior stages to - # the final stdenv, which happens because of the rpath hook. Also don’t use a stdenv with - # compiler-rt because it needs to be built in this stage. - stdenv = - let - stdenvNoCF = super.stdenv.override { - extraBuildInputs = [ ]; - }; - in - self.overrideCC stdenvNoCF (self.llvmPackages.clangNoCompilerRtWithLibc.override { - inherit (self.llvmPackages) libcxx; + # Avoid building unnecessary Python dependencies due to building LLVM manpages. + cctools-llvm = superDarwin.cctools-llvm.override { enableManpages = false; }; + } + ); - # Make sure the stdenv is using the Libsystem that will be propagated to the final stdenv. - libc = self.darwin.Libsystem; - bintools = self.llvmPackages.clangNoCompilerRtWithLibc.bintools.override { - libc = self.darwin.Libsystem; - }; - }); - }; + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang-unwrapped + clangNoCompilerRtWithLibc + libclang + libllvm + llvm + ; + clang = prevStage.stdenv.cc; + } + ); - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + libraries = super.llvmPackages.libraries.extend ( + selfLib: superLib: { + inherit (prevStage.llvmPackages) libcxx; - extraPreHook = '' - stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O - ''; - }) + # Make sure compiler-rt is linked against the CF from this stage, which can be + # propagated to the final stdenv. CF is required by ASAN. + compiler-rt = superLib.compiler-rt.override ({ + inherit (self.llvmPackages) libllvm; + stdenv = self.stdenv.override { extraBuildInputs = [ self.darwin.CF ]; }; + }); + } + ); + in + { + inherit tools libraries; + inherit (prevStage.llvmPackages) release_version; + } + // tools + // libraries + ); + + # Don’t link anything in this stage against CF to prevent propagating CF from prior stages to + # the final stdenv, which happens because of the rpath hook. Also don’t use a stdenv with + # compiler-rt because it needs to be built in this stage. + stdenv = + let + stdenvNoCF = super.stdenv.override { extraBuildInputs = [ ]; }; + in + self.overrideCC stdenvNoCF ( + self.llvmPackages.clangNoCompilerRtWithLibc.override { + inherit (self.llvmPackages) libcxx; + + # Make sure the stdenv is using the Libsystem that will be propagated to the final stdenv. + libc = self.darwin.Libsystem; + bintools = self.llvmPackages.clangNoCompilerRtWithLibc.bintools.override { + libc = self.darwin.Libsystem; + }; + } + ); + }; + + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; + + extraPreHook = '' + stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O + ''; + } + ) # Rebuild LLVM with LLVM. This stage also rebuilds certain dependencies needed by LLVM. # # LLVM requires: libcxx libffi libiconv libxml2 ncurses zlib - (prevStage: + ( + prevStage: # previous stage2-CF stdenv: - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bison brotli cmake cmakeMinimal coreutils cpio cyrus_sasl - db ed expat flex gettext gmp gnugrep groff libedit libidn2 libkrb5 libssh2 libtool - libunistring m4 ncurses nghttp2 ninja openbsm openldap openpam openssh openssl - patchutils pbzx perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite - subversion sysctl.provider texinfo unzip which xz zstd - ]); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [ - bash binutils-unwrapped icu libffi libiconv libxml2 zlib - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + libedit + libidn2 + libkrb5 + libssh2 + libtool + libunistring + m4 + ncurses + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + xz + zstd + ] + ); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage; + [ + bash + binutils-unwrapped + icu + libffi + libiconv + libxml2 + zlib + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - locale print-reexports rewrite-tbd sigtool - ]); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools libtapi - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + locale + print-reexports + rewrite-tbd + sigtool + ] + ); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + libtapi + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); - assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + libclosure + libdispatch + xnu + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + ] + ); assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ libcxx ]); - assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm; + assert + lib.getVersion prevStage.stdenv.cc.bintools.bintools + == lib.getVersion prevStage.darwin.cctools-llvm; stageFun prevStage { - name = "bootstrap-stage3"; + name = "bootstrap-stage3"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake bash binutils binutils-unwrapped bison brotli cmake cmakeMinimal - coreutils cpio cyrus_sasl db ed expat flex gettext gmp gnugrep groff libedit - libidn2 libkrb5 libssh2 libtool libunistring m4 nghttp2 ninja openbsm openldap - openpam openssh openssl patchutils pbzx perl pkg-config python3 python3Minimal scons - sed serf sharutils sqlite subversion sysctl texinfo unzip which xz zstd + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + bash + binutils + binutils-unwrapped + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + libedit + libidn2 + libkrb5 + libssh2 + libtool + libunistring + m4 + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config + python3 + python3Minimal + scons + sed + serf + sharutils + sqlite + subversion + sysctl + texinfo + unzip + which + xz + zstd - # CF dependencies - don’t rebuild them. - icu libiconv libxml2 zlib; + # CF dependencies - don’t rebuild them. + icu + libiconv + libxml2 + zlib + ; - # Disable tests because they use dejagnu, which fails to run. - libffi = super.libffi.override { doCheck = false; }; + # Disable tests because they use dejagnu, which fails to run. + libffi = super.libffi.override { doCheck = false; }; - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - inherit (prevStage.darwin) - CF Libsystem binutils binutils-unwrapped cctools cctools-llvm cctools-port configd - darwin-stubs dyld launchd libclosure libdispatch libobjc libtapi locale objc4 - postLinkSignHook print-reexports rewrite-tbd signingUtils sigtool; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: { + inherit (prevStage.darwin) + CF + Libsystem + binutils + binutils-unwrapped + cctools + cctools-llvm + cctools-port + configd + darwin-stubs + dyld + launchd + libclosure + libdispatch + libobjc + libtapi + locale + objc4 + postLinkSignHook + print-reexports + rewrite-tbd + signingUtils + sigtool + ; - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; - }); + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; + } + ); - llvmPackages = super.llvmPackages // ( - let - libraries = super.llvmPackages.libraries.extend (_: _: { - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit libraries; } // libraries - ); - }; + llvmPackages = + super.llvmPackages + // ( + let + libraries = super.llvmPackages.libraries.extend ( + _: _: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { inherit libraries; } // libraries + ); + }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; - extraPreHook = '' - stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O - ''; - }) + extraPreHook = '' + stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O + ''; + } + ) # Construct a standard environment with the new clang. Also use the new compiler to rebuild # everything that will be part of the final stdenv and isn’t required by it, CF, or Libsystem. - (prevStage: + ( + prevStage: # previous stage3 stdenv: - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bison brotli cmake cmakeMinimal coreutils cpio cyrus_sasl - db ed expat flex gettext gmp gnugrep groff libedit libidn2 libkrb5 libssh2 libtool - libunistring m4 nghttp2 ninja openbsm openldap openpam openssh openssl patchutils pbzx - perl pkg-config.pkg-config python3 python3Minimal scons serf sqlite subversion - sysctl.provider texinfo unzip which xz zstd - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bison + brotli + cmake + cmakeMinimal + coreutils + cpio + cyrus_sasl + db + ed + expat + flex + gettext + gmp + gnugrep + groff + libedit + libidn2 + libkrb5 + libssh2 + libtool + libunistring + m4 + nghttp2 + ninja + openbsm + openldap + openpam + openssh + openssl + patchutils + pbzx + perl + pkg-config.pkg-config + python3 + python3Minimal + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + xz + zstd + ] + ); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [ - bash binutils-unwrapped icu libffi libiconv libxml2 zlib - ]); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage; + [ + bash + binutils-unwrapped + icu + libffi + libiconv + libxml2 + zlib + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ - locale print-reexports rewrite-tbd sigtool - ]); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools libtapi - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage.darwin; + [ + locale + print-reexports + rewrite-tbd + sigtool + ] + ); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + libtapi + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); - assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByBootstrapFilesCompiler (with prevStage.darwin; [ configd ]); + assert + (!useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem ]); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + libclosure + libdispatch + xnu + ] + ); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm compiler-rt libcxx - ]); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + compiler-rt + libcxx + ] + ); - assert lib.getVersion prevStage.stdenv.cc.bintools.bintools == lib.getVersion prevStage.darwin.cctools-llvm; + assert + lib.getVersion prevStage.stdenv.cc.bintools.bintools + == lib.getVersion prevStage.darwin.cctools-llvm; stageFun prevStage { - name = "bootstrap-stage4"; + name = "bootstrap-stage4"; - overrides = self: super: { - inherit (prevStage) ccWrapperStdenv - autoconf automake bash bison cmake cmakeMinimal cyrus_sasl db expat flex groff - libedit libtool m4 ninja openldap openssh patchutils perl pkg-config python3 scons - serf sqlite subversion sysctl texinfo unzip which + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + autoconf + automake + bash + bison + cmake + cmakeMinimal + cyrus_sasl + db + expat + flex + groff + libedit + libtool + m4 + ninja + openldap + openssh + patchutils + perl + pkg-config + python3 + scons + serf + sqlite + subversion + sysctl + texinfo + unzip + which - # CF dependencies - don’t rebuild them. - icu - - # LLVM dependencies - don’t rebuild them. - libffi libiconv libxml2 ncurses zlib; - - darwin = super.darwin.overrideScope (selfDarwin: superDarwin: { - inherit (prevStage.darwin) dyld CF Libsystem darwin-stubs # CF dependencies - don’t rebuild them. - libobjc objc4; + icu - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; - }; + # LLVM dependencies - don’t rebuild them. + libffi + libiconv + libxml2 + ncurses + zlib + ; - signingUtils = superDarwin.signingUtils.override { - inherit (selfDarwin) sigtool; - }; + darwin = super.darwin.overrideScope ( + selfDarwin: superDarwin: { + inherit (prevStage.darwin) + dyld + CF + Libsystem + darwin-stubs + # CF dependencies - don’t rebuild them. + libobjc + objc4 + ; - binutils = superDarwin.binutils.override { - inherit (prevStage) expand-response-params; + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; - bintools = selfDarwin.binutils-unwrapped; - libc = selfDarwin.Libsystem; - }; - - # cctools needs to build the LLVM man pages, which requires sphinx. Sphinx - # has hatch-vcs as a transitive dependency, which pulls in git (and curl). - # Disabling the tests for hatch-vcs allows the stdenv bootstrap to avoid having - # any dependency on curl other than the one provided in the bootstrap tools. - cctools-llvm = superDarwin.cctools-llvm.override (old: { - llvmPackages = - let - tools = old.llvmPackages.tools.extend (_: superTools: { - llvm-manpages = superTools.llvm-manpages.override { - python3Packages = prevStage.python3Packages.overrideScope (_: superPython: { - hatch-vcs = (superPython.hatch-vcs.override { - git = null; - pytestCheckHook = null; - }); - }); - }; - }); - inherit (old.llvmPackages) libraries release_version; - in - { inherit tools libraries release_version; } // tools // libraries; - }); - }); - - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang-unwrapped libclang libllvm llvm; - libcxxClang = lib.makeOverridable (import ../../build-support/cc-wrapper) { - nativeTools = false; - nativeLibc = false; + signingUtils = superDarwin.signingUtils.override { inherit (selfDarwin) sigtool; }; + binutils = superDarwin.binutils.override { inherit (prevStage) expand-response-params; - extraPackages = [ - self.llvmPackages.compiler-rt - ]; - - extraBuildCommands = - let - inherit (self.llvmPackages) clang-unwrapped compiler-rt release_version; - - # Clang 16+ uses only the major version in resource-root, but older versions use the complete one. - clangResourceRootIncludePath = clangLib: clangRelease: - let - clangVersion = - if lib.versionAtLeast clangRelease "16" - then lib.versions.major clangRelease - else clangRelease; - in - "${clangLib}/lib/clang/${clangVersion}/include"; - in - '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${clangResourceRootIncludePath clang-unwrapped.lib release_version}" "$rsrc" - ln -s "${compiler-rt.out}/lib" "$rsrc/lib" - ln -s "${compiler-rt.out}/share" "$rsrc/share" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - ''; - - cc = self.llvmPackages.clang-unwrapped; - bintools = self.darwin.binutils; - - isClang = true; - libc = self.darwin.Libsystem; - inherit (self.llvmPackages) libcxx; - - inherit lib; - inherit (self) stdenvNoCC coreutils gnugrep runtimeShell; + bintools = selfDarwin.binutils-unwrapped; + libc = selfDarwin.Libsystem; }; - }); - libraries = super.llvmPackages.libraries.extend (_: _:{ - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit tools libraries; } // tools // libraries - ); - }; - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ]; + # cctools needs to build the LLVM man pages, which requires sphinx. Sphinx + # has hatch-vcs as a transitive dependency, which pulls in git (and curl). + # Disabling the tests for hatch-vcs allows the stdenv bootstrap to avoid having + # any dependency on curl other than the one provided in the bootstrap tools. + cctools-llvm = superDarwin.cctools-llvm.override (old: { + llvmPackages = + let + tools = old.llvmPackages.tools.extend ( + _: superTools: { + llvm-manpages = superTools.llvm-manpages.override { + python3Packages = prevStage.python3Packages.overrideScope ( + _: superPython: { + hatch-vcs = ( + superPython.hatch-vcs.override { + git = null; + pytestCheckHook = null; + } + ); + } + ); + }; + } + ); + inherit (old.llvmPackages) libraries release_version; + in + { inherit tools libraries release_version; } // tools // libraries; + }); + } + ); - extraPreHook = '' - stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O - ''; - }) + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang-unwrapped + libclang + libllvm + llvm + ; + libcxxClang = lib.makeOverridable (import ../../build-support/cc-wrapper) { + nativeTools = false; + nativeLibc = false; + + inherit (prevStage) expand-response-params; + + extraPackages = [ self.llvmPackages.compiler-rt ]; + + extraBuildCommands = + let + inherit (self.llvmPackages) clang-unwrapped compiler-rt release_version; + + # Clang 16+ uses only the major version in resource-root, but older versions use the complete one. + clangResourceRootIncludePath = + clangLib: clangRelease: + let + clangVersion = + if lib.versionAtLeast clangRelease "16" then lib.versions.major clangRelease else clangRelease; + in + "${clangLib}/lib/clang/${clangVersion}/include"; + in + '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${clangResourceRootIncludePath clang-unwrapped.lib release_version}" "$rsrc" + ln -s "${compiler-rt.out}/lib" "$rsrc/lib" + ln -s "${compiler-rt.out}/share" "$rsrc/share" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + ''; + + cc = self.llvmPackages.clang-unwrapped; + bintools = self.darwin.binutils; + + isClang = true; + libc = self.darwin.Libsystem; + inherit (self.llvmPackages) libcxx; + + inherit lib; + inherit (self) + stdenvNoCC + coreutils + gnugrep + runtimeShell + ; + }; + } + ); + libraries = super.llvmPackages.libraries.extend ( + _: _: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { inherit tools libraries; } // tools // libraries + ); + }; + + extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ]; + + extraPreHook = '' + stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O + ''; + } + ) # Construct the final stdenv. The version of LLVM provided should match the one defined in # `all-packages.nix` for Darwin. Nothing should depend on the bootstrap tools or originate from @@ -1171,33 +2278,143 @@ in # # When updating the Darwin stdenv, make sure that the result has no dependency (`nix-store -qR`) # on `bootstrapTools` or the binutils built in stage 1. - (prevStage: + ( + prevStage: # previous stage4 stdenv: - assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [ - bash binutils-unwrapped brotli bzip2 cpio diffutils ed file findutils gawk - gettext gmp gnugrep gnumake gnused gnutar gzip icu libffi libiconv libidn2 libkrb5 - libssh2 libunistring libxml2 libyaml ncurses nghttp2 openbsm openpam openssl patch - pbzx pcre python3Minimal xar xz zlib zstd - ]); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage; + [ + bash + binutils-unwrapped + brotli + bzip2 + cpio + diffutils + ed + file + findutils + gawk + gettext + gmp + gnugrep + gnumake + gnused + gnutar + gzip + icu + libffi + libiconv + libidn2 + libkrb5 + libssh2 + libunistring + libxml2 + libyaml + ncurses + nghttp2 + openbsm + openpam + openssl + patch + pbzx + pcre + python3Minimal + xar + xz + zlib + zstd + ] + ); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ - binutils-unwrapped cctools libtapi locale print-reexports rewrite-tbd sigtool - ]); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage.darwin; + [ + binutils-unwrapped + cctools + libtapi + locale + print-reexports + rewrite-tbd + sigtool + ] + ); - assert (! useAppleSDKLibs) -> lib.all isBuiltByNixpkgsCompiler (with prevStage.darwin; [ Libsystem configd ]); - assert (! useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); - assert useAppleSDKLibs -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF Libsystem libobjc ]); - assert lib.all isFromNixpkgs (with prevStage.darwin; [ dyld launchd libclosure libdispatch xnu ]); + assert + (!useAppleSDKLibs) + -> lib.all isBuiltByNixpkgsCompiler ( + with prevStage.darwin; + [ + Libsystem + configd + ] + ); + assert (!useAppleSDKLibs) -> lib.all isFromNixpkgs (with prevStage.darwin; [ CF ]); + assert + useAppleSDKLibs + -> lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + CF + Libsystem + libobjc + ] + ); + assert lib.all isFromNixpkgs ( + with prevStage.darwin; + [ + dyld + launchd + libclosure + libdispatch + xnu + ] + ); - assert lib.all isBuiltByNixpkgsCompiler (with prevStage.llvmPackages; [ - clang-unwrapped libclang libllvm llvm compiler-rt libcxx - ]); + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage.llvmPackages; + [ + clang-unwrapped + libclang + libllvm + llvm + compiler-rt + libcxx + ] + ); - assert lib.all isBuiltByBootstrapFilesCompiler (with prevStage; [ - autoconf automake bison cmake cmakeMinimal cyrus_sasl db expat flex groff libedit - libtool m4 ninja openldap openssh patchutils perl pkg-config.pkg-config python3 scons - serf sqlite subversion sysctl.provider texinfo unzip which - ]); + assert lib.all isBuiltByBootstrapFilesCompiler ( + with prevStage; + [ + autoconf + automake + bison + cmake + cmakeMinimal + cyrus_sasl + db + expat + flex + groff + libedit + libtool + m4 + ninja + openldap + openssh + patchutils + perl + pkg-config.pkg-config + python3 + scons + serf + sqlite + subversion + sysctl.provider + texinfo + unzip + which + ] + ); assert prevStage.darwin.cctools == prevStage.darwin.cctools-llvm; @@ -1207,161 +2424,244 @@ in cc = prevStage.llvmPackages.clang; in { - inherit config overlays; - stdenv = import ../generic { - name = "stdenv-darwin"; + inherit config overlays; + stdenv = import ../generic { + name = "stdenv-darwin"; - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; + buildPlatform = localSystem; + hostPlatform = localSystem; + targetPlatform = localSystem; - inherit config; + inherit config; - preHook = '' - ${commonPreHook} - stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O - export PATH_LOCALE=${prevStage.darwin.locale}/share/locale - ''; + preHook = '' + ${commonPreHook} + stripDebugFlags="-S" # llvm-strip does not support "-p" for Mach-O + export PATH_LOCALE=${prevStage.darwin.locale}/share/locale + ''; - initialPath = ((import ../generic/common-path.nix) { pkgs = prevStage; }); + initialPath = ((import ../generic/common-path.nix) { pkgs = prevStage; }); - extraNativeBuildInputs = lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - ] ++ [ prevStage.darwin.apple_sdk.sdkRoot ]; + extraNativeBuildInputs = + lib.optionals localSystem.isAarch64 [ prevStage.updateAutotoolsGnuConfigScriptsHook ] + ++ [ prevStage.darwin.apple_sdk.sdkRoot ]; - extraBuildInputs = [ prevStage.darwin.CF ]; + extraBuildInputs = [ prevStage.darwin.CF ]; - inherit cc; + inherit cc; - shell = cc.shell; + shell = cc.shell; - inherit (prevStage.stdenv) fetchurlBoot; + inherit (prevStage.stdenv) fetchurlBoot; - extraAttrs = { - inherit bootstrapTools; - libc = prevStage.darwin.Libsystem; - shellPackage = prevStage.bash; - } // lib.optionalAttrs useAppleSDKLibs { - # This objc4 will be propagated to all builds using the final stdenv, - # and we shouldn't mix different builds, because they would be - # conflicting LLVM modules. Export it here so we can grab it later. - inherit (prevStage.darwin) objc4; - }; - - disallowedRequisites = [ bootstrapTools.out ]; - - allowedRequisites = (with prevStage; [ - bash - binutils.bintools - binutils.bintools.lib - bzip2.bin - bzip2.out - cc.expand-response-params - coreutils - darwin.binutils - darwin.binutils.bintools - diffutils - ed - file - findutils - gawk - gettext - gmp.out - gnugrep - gnugrep.pcre2.out - gnumake - gnused - gnutar - gzip - icu.out - libffi.out - libiconv - libunistring.out - libxml2.out - ncurses.dev - ncurses.man - ncurses.out - openbsm - openpam - patch - xz.bin - xz.out - zlib.dev - zlib.out - ] - ++ lib.optionals doSign [ openssl.out ]) - ++ lib.optionals localSystem.isAarch64 [ - prevStage.updateAutotoolsGnuConfigScriptsHook - prevStage.gnu-config - ] - ++ (with prevStage.llvmPackages; [ - bintools-unwrapped - clang-unwrapped - clang-unwrapped.lib - compiler-rt - compiler-rt.dev - libcxx - libcxx.dev - lld - llvm - llvm.lib - ]) - ++ (with prevStage.darwin; [ - CF - Libsystem - cctools-llvm - cctools-port - dyld - libtapi - locale - apple_sdk.sdkRoot - ] - ++ lib.optional useAppleSDKLibs [ objc4 ] - ++ lib.optionals doSign [ postLinkSignHook sigtool signingUtils ]); - - __stdenvImpureHostDeps = commonImpureHostDeps; - __extraImpureHostDeps = commonImpureHostDeps; - - overrides = self: super: { - inherit (prevStage) - bash binutils brotli bzip2 coreutils cpio diffutils ed file findutils gawk - gettext gmp gnugrep gnumake gnused gnutar gzip icu libffi libiconv libidn2 libssh2 - libunistring libxml2 libyaml ncurses nghttp2 openbsm openpam openssl patch pbzx - pcre python3Minimal xar xz zlib zstd; - - darwin = super.darwin.overrideScope (_: superDarwin: { - inherit (prevStage.darwin) - CF ICU Libsystem darwin-stubs dyld locale libobjc libtapi rewrite-tbd xnu; - - apple_sdk = superDarwin.apple_sdk // { - inherit (prevStage.darwin.apple_sdk) sdkRoot; + extraAttrs = + { + inherit bootstrapTools; + libc = prevStage.darwin.Libsystem; + shellPackage = prevStage.bash; + } + // lib.optionalAttrs useAppleSDKLibs { + # This objc4 will be propagated to all builds using the final stdenv, + # and we shouldn't mix different builds, because they would be + # conflicting LLVM modules. Export it here so we can grab it later. + inherit (prevStage.darwin) objc4; }; - } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { - inherit (prevStage.darwin) binutils binutils-unwrapped cctools-llvm cctools-port; - }); - } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { - inherit (prevStage.llvmPackages) clang llvm; - # Need to get rid of these when cross-compiling. - llvmPackages = super.llvmPackages // ( - let - tools = super.llvmPackages.tools.extend (_: _: { - inherit (prevStage.llvmPackages) clang clang-unwrapped libclang libllvm llvm; - }); - libraries = super.llvmPackages.libraries.extend (_: _: { - inherit (prevStage.llvmPackages) compiler-rt libcxx; - }); - in - { inherit tools libraries; } // tools // libraries - ); + disallowedRequisites = [ bootstrapTools.out ]; - inherit (prevStage) binutils binutils-unwrapped; + allowedRequisites = + ( + with prevStage; + [ + bash + binutils.bintools + binutils.bintools.lib + bzip2.bin + bzip2.out + cc.expand-response-params + coreutils + darwin.binutils + darwin.binutils.bintools + diffutils + ed + file + findutils + gawk + gettext + gmp.out + gnugrep + gnugrep.pcre2.out + gnumake + gnused + gnutar + gzip + icu.out + libffi.out + libiconv + libunistring.out + libxml2.out + ncurses.dev + ncurses.man + ncurses.out + openbsm + openpam + patch + xz.bin + xz.out + zlib.dev + zlib.out + ] + ++ lib.optionals doSign [ openssl.out ] + ) + ++ lib.optionals localSystem.isAarch64 [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ] + ++ (with prevStage.llvmPackages; [ + bintools-unwrapped + clang-unwrapped + clang-unwrapped.lib + compiler-rt + compiler-rt.dev + libcxx + libcxx.dev + lld + llvm + llvm.lib + ]) + ++ ( + with prevStage.darwin; + [ + CF + Libsystem + cctools-llvm + cctools-port + dyld + libtapi + locale + apple_sdk.sdkRoot + ] + ++ lib.optional useAppleSDKLibs [ objc4 ] + ++ lib.optionals doSign [ + postLinkSignHook + sigtool + signingUtils + ] + ); + + __stdenvImpureHostDeps = commonImpureHostDeps; + __extraImpureHostDeps = commonImpureHostDeps; + + overrides = + self: super: + { + inherit (prevStage) + bash + binutils + brotli + bzip2 + coreutils + cpio + diffutils + ed + file + findutils + gawk + gettext + gmp + gnugrep + gnumake + gnused + gnutar + gzip + icu + libffi + libiconv + libidn2 + libssh2 + libunistring + libxml2 + libyaml + ncurses + nghttp2 + openbsm + openpam + openssl + patch + pbzx + pcre + python3Minimal + xar + xz + zlib + zstd + ; + + darwin = super.darwin.overrideScope ( + _: superDarwin: + { + inherit (prevStage.darwin) + CF + ICU + Libsystem + darwin-stubs + dyld + locale + libobjc + libtapi + rewrite-tbd + xnu + ; + + apple_sdk = superDarwin.apple_sdk // { + inherit (prevStage.darwin.apple_sdk) sdkRoot; + }; + } + // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { + inherit (prevStage.darwin) + binutils + binutils-unwrapped + cctools-llvm + cctools-port + ; + } + ); + } + // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { + inherit (prevStage.llvmPackages) clang llvm; + + # Need to get rid of these when cross-compiling. + llvmPackages = + super.llvmPackages + // ( + let + tools = super.llvmPackages.tools.extend ( + _: _: { + inherit (prevStage.llvmPackages) + clang + clang-unwrapped + libclang + libllvm + llvm + ; + } + ); + libraries = super.llvmPackages.libraries.extend ( + _: _: { inherit (prevStage.llvmPackages) compiler-rt libcxx; } + ); + in + { inherit tools libraries; } // tools // libraries + ); + + inherit (prevStage) binutils binutils-unwrapped; + }; }; - }; - }) + } + ) # This "no-op" stage is just a place to put the assertions about stage6. - (prevStage: + ( + prevStage: # previous final stage stdenv: assert isBuiltByNixpkgsCompiler prevStage.darwin.sigtool; assert isBuiltByNixpkgsCompiler prevStage.darwin.binutils-unwrapped; @@ -1369,12 +2669,15 @@ in assert isBuiltByNixpkgsCompiler prevStage.darwin.rewrite-tbd; assert isBuiltByNixpkgsCompiler prevStage.darwin.cctools; - assert isFromNixpkgs prevStage.darwin.CF; - assert isFromNixpkgs prevStage.darwin.Libsystem; + assert isFromNixpkgs prevStage.darwin.CF; + assert isFromNixpkgs prevStage.darwin.Libsystem; assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.clang-unwrapped; assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.libllvm; assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.libcxx; assert isBuiltByNixpkgsCompiler prevStage.llvmPackages.compiler-rt; - { inherit (prevStage) config overlays stdenv; }) + { + inherit (prevStage) config overlays stdenv; + } + ) ] diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix index bacad15..6fd16a8 100644 --- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix +++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix @@ -1,275 +1,289 @@ -{ pkgspath ? ../../.., test-pkgspath ? pkgspath -, localSystem ? { system = builtins.currentSystem; } -, crossSystem ? null -, bootstrapFiles ? null +{ + pkgspath ? ../../.., + test-pkgspath ? pkgspath, + localSystem ? { + system = builtins.currentSystem; + }, + crossSystem ? null, + bootstrapFiles ? null, }: -let cross = if crossSystem != null - then { inherit crossSystem; } - else {}; - custom-bootstrap = if bootstrapFiles != null - then { stdenvStages = args: - let args' = args // { bootstrapFiles = bootstrapFiles; }; - in (import "${pkgspath}/pkgs/stdenv/darwin" args'); - } - else {}; -in with import pkgspath ({ inherit localSystem; } // cross // custom-bootstrap); +let + cross = if crossSystem != null then { inherit crossSystem; } else { }; + custom-bootstrap = + if bootstrapFiles != null then + { + stdenvStages = + args: + let + args' = args // { + bootstrapFiles = bootstrapFiles; + }; + in + (import "${pkgspath}/pkgs/stdenv/darwin" args'); + } + else + { }; +in +with import pkgspath ({ inherit localSystem; } // cross // custom-bootstrap); rec { build = stdenv.mkDerivation { name = "stdenv-bootstrap-tools"; - nativeBuildInputs = [ dumpnar nukeReferences ]; + nativeBuildInputs = [ + dumpnar + nukeReferences + ]; - buildCommand = let - inherit (lib) - getBin - getDev - getLib - ; + buildCommand = + let + inherit (lib) getBin getDev getLib; - coreutils_ = (coreutils.override (args: { - # We want coreutils without ACL support. - aclSupport = false; - # Cannot use a single binary build, or it gets dynamically linked against gmp. - singleBinary = false; - })).overrideAttrs (oa: { - # Increase header size to be able to inject extra RPATHs. Otherwise - # x86_64-darwin build fails as: - # https://cache.nixos.org/log/g5wyq9xqshan6m3kl21bjn1z88hx48rh-stdenv-bootstrap-tools.drv - NIX_LDFLAGS = (oa.NIX_LDFLAGS or "") + " -headerpad_max_install_names"; - }); + coreutils_ = + (coreutils.override (args: { + # We want coreutils without ACL support. + aclSupport = false; + # Cannot use a single binary build, or it gets dynamically linked against gmp. + singleBinary = false; + })).overrideAttrs + (oa: { + # Increase header size to be able to inject extra RPATHs. Otherwise + # x86_64-darwin build fails as: + # https://cache.nixos.org/log/g5wyq9xqshan6m3kl21bjn1z88hx48rh-stdenv-bootstrap-tools.drv + NIX_LDFLAGS = (oa.NIX_LDFLAGS or "") + " -headerpad_max_install_names"; + }); - cctools_ = darwin.cctools; + cctools_ = darwin.cctools; - # Avoid messing with libkrb5 and libnghttp2. - curl_ = curlMinimal.override (args: { - gssSupport = false; - http2Support = false; - scpSupport = false; - }); + # Avoid messing with libkrb5 and libnghttp2. + curl_ = curlMinimal.override (args: { + gssSupport = false; + http2Support = false; + scpSupport = false; + }); - unpackScript = writeText "bootstrap-tools-unpack.sh" '' - set -euo pipefail + unpackScript = writeText "bootstrap-tools-unpack.sh" '' + set -euo pipefail - echo Unpacking the bootstrap tools... >&2 - mkdir $out - tar xf "$1" -C $out + echo Unpacking the bootstrap tools... >&2 + mkdir $out + tar xf "$1" -C $out - updateInstallName() { - local path="$1" + updateInstallName() { + local path="$1" - cp "$path" "$path.new" - install_name_tool -id "$path" "$path.new" - codesign -f -i "$(basename "$path")" -s - "$path.new" - mv -f "$path.new" "$path" + cp "$path" "$path.new" + install_name_tool -id "$path" "$path.new" + codesign -f -i "$(basename "$path")" -s - "$path.new" + mv -f "$path.new" "$path" + } + + find $out/lib -type f -name '*.dylib' -print0 | while IFS= read -r -d $'\0' lib; do + updateInstallName "$lib" + done + + # as is a wrapper around clang. need to replace the nuked store paths + sed -i 's|/.*/bin/|'"$out"'/bin/|' $out/bin/as + + # Provide a gunzip script. + cat > $out/bin/gunzip < $out/bin/egrep + echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep + echo "#! $out/bin/sh" > $out/bin/fgrep + echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep + + cat >$out/bin/dsymutil << EOF + #!$out/bin/sh + EOF + + chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/dsymutil + ''; + + in + '' + mkdir -p $out/bin $out/lib $out/lib/darwin + + ${lib.optionalString stdenv.targetPlatform.isx86_64 '' + # Copy libSystem's .o files for various low-level boot stuff. + cp -d ${getLib darwin.Libsystem}/lib/*.o $out/lib + + # Resolv is actually a link to another package, so let's copy it properly + cp -L ${getLib darwin.Libsystem}/lib/libresolv.9.dylib $out/lib + ''} + + cp -rL ${getDev darwin.Libsystem}/include $out + chmod -R u+w $out/include + cp -rL ${getDev libiconv}/include/* $out/include + cp -rL ${getDev gnugrep.pcre2}/include/* $out/include + mv $out/include $out/include-Libsystem + + # Copy binutils. + for i in as ld ar ranlib nm strip otool install_name_tool lipo codesign_allocate; do + cp ${getBin cctools_}/bin/$i $out/bin + done + + # Copy coreutils, bash, etc. + cp ${getBin coreutils_}/bin/* $out/bin + (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users) + + cp -d ${getBin bash}/bin/{ba,}sh $out/bin + cp -d ${getBin diffutils}/bin/* $out/bin + cp ${getBin findutils}/bin/{find,xargs} $out/bin + cp -d ${getBin gawk}/bin/{g,}awk $out/bin + cp -d ${getBin gnugrep}/bin/grep $out/bin + cp -d ${getBin gnumake}/bin/* $out/bin + cp -d ${getBin gnused}/bin/* $out/bin + cp -d ${getBin patch}/bin/* $out/bin + + cp -d ${getLib gettext}/lib/libintl*.dylib $out/lib + cp -d ${getLib gnugrep.pcre2}/lib/libpcre2*.dylib $out/lib + cp -d ${getLib libiconv}/lib/lib*.dylib $out/lib + cp -d ${getLib libxml2}/lib/libxml2*.dylib $out/lib + cp -d ${getLib ncurses}/lib/libncurses*.dylib $out/lib + + # copy package extraction tools + cp -d ${getBin bzip2}/bin/b{,un}zip2 $out/bin + cp ${getBin cpio}/bin/cpio $out/bin + cp ${getBin gnutar}/bin/tar $out/bin + cp ${getBin gzip}/bin/.gzip-wrapped $out/bin/gzip + cp ${getBin pbzx}/bin/pbzx $out/bin + cp ${getBin xz}/bin/xz $out/bin + cp -d ${getLib bzip2}/lib/libbz2*.dylib $out/lib + cp -d ${getLib gmpxx}/lib/libgmp*.dylib $out/lib + cp -d ${getLib xar}/lib/libxar*.dylib $out/lib + cp -d ${getLib xz}/lib/liblzma*.dylib $out/lib + cp -d ${getLib zlib}/lib/libz*.dylib $out/lib + + # This used to be in-nixpkgs, but now is in the bundle + # because I can't be bothered to make it partially static + cp ${getBin curl_}/bin/curl $out/bin + cp -d ${getLib curl_}/lib/libcurl*.dylib $out/lib + cp -d ${getLib openssl}/lib/*.dylib $out/lib + + # Copy what we need of clang + cp -d ${getBin llvmPackages.clang-unwrapped}/bin/clang{,++,-cl,-cpp,-[0-9]*} $out/bin + cp -d ${getLib llvmPackages.clang-unwrapped}/lib/libclang-cpp*.dylib $out/lib + cp -rd ${getLib llvmPackages.clang-unwrapped}/lib/clang $out/lib + + cp -d ${getLib llvmPackages.libcxx}/lib/libc++*.dylib $out/lib + mkdir -p $out/lib/darwin + cp -d ${getLib llvmPackages.compiler-rt}/lib/darwin/libclang_rt.{,profile_}osx.a $out/lib/darwin + cp -d ${getLib llvmPackages.compiler-rt}/lib/libclang_rt.{,profile_}osx.a $out/lib + cp -d ${getLib llvmPackages.llvm}/lib/libLLVM.dylib $out/lib + cp -d ${getLib libffi}/lib/libffi*.dylib $out/lib + + mkdir $out/include + cp -rd ${getDev llvmPackages.libcxx}/include/c++ $out/include + + # copy .tbd assembly utils + cp ${getBin darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin + cp -d ${getLib libyaml}/lib/libyaml*.dylib $out/lib + + # copy sigtool + cp -d ${getBin darwin.sigtool}/bin/{codesign,sigtool} $out/bin + + cp -d ${getLib darwin.libtapi}/lib/libtapi*.dylib $out/lib + + # tools needed to unpack bootstrap archive + mkdir -p unpack/bin unpack/lib + cp -d ${getBin bash}/bin/{bash,sh} unpack/bin + cp ${getBin coreutils_}/bin/mkdir unpack/bin + cp ${getBin gnutar}/bin/tar unpack/bin + cp ${getBin xz}/bin/xz unpack/bin + cp -d ${getLib gettext}/lib/libintl*.dylib unpack/lib + cp -d ${getLib libiconv}/lib/lib*.dylib unpack/lib + cp -d ${getLib xz}/lib/liblzma*.dylib unpack/lib + cp ${unpackScript} unpack/bootstrap-tools-unpack.sh + + # + # All files copied. Perform processing to update references to point into + # the archive + # + + chmod -R u+w $out unpack + + # - change nix store library paths to use @rpath/library + # - if needed add an rpath containing lib/ + # - strip executable + rpathify() { + local libs=$(${stdenv.cc.targetPrefix}otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*" || true) + local lib rpath + for lib in $libs; do + ${stdenv.cc.targetPrefix}install_name_tool -change $lib "@rpath/$(basename "$lib")" "$1" + done + + case "$(dirname "$1")" in + */bin) + # Strip executables even further + ${stdenv.cc.targetPrefix}strip "$i" + rpath='@executable_path/../lib' + ;; + */lib) + # the '/.' suffix is required + rpath='@loader_path/.' + ;; + */lib/darwin) + rpath='@loader_path/..' + ;; + *) + echo unkown executable $1 >&2 + exit 1 + ;; + esac + + # if shared object contains references add an rpath to lib/ + if ${stdenv.cc.targetPrefix}otool -l "$1"| grep -q '@rpath/'; then + ${stdenv.cc.targetPrefix}install_name_tool -add_rpath "$rpath" "$1" + fi } - find $out/lib -type f -name '*.dylib' -print0 | while IFS= read -r -d $'\0' lib; do - updateInstallName "$lib" - done + # check that linked library paths exist in lib + # must be run after rpathify is performed + checkDeps() { + local deps=$(${stdenv.cc.targetPrefix}otool -l "$1"| grep -o '@rpath/[^ ]*' || true) + local lib + shopt -s extglob + for lib in $deps; do + local root="''${1/\/@(lib|bin)\/*}" + if [[ ! -e $root/''${lib/@rpath/lib} ]]; then + echo "error: $1 missing lib for $lib" >&2 + exit 1 + fi + done + shopt -u extglob + } - # as is a wrapper around clang. need to replace the nuked store paths - sed -i 's|/.*/bin/|'"$out"'/bin/|' $out/bin/as - - # Provide a gunzip script. - cat > $out/bin/gunzip < $out/bin/egrep - echo "exec $out/bin/grep -E \"\$@\"" >> $out/bin/egrep - echo "#! $out/bin/sh" > $out/bin/fgrep - echo "exec $out/bin/grep -F \"\$@\"" >> $out/bin/fgrep - - cat >$out/bin/dsymutil << EOF - #!$out/bin/sh - EOF - - chmod +x $out/bin/egrep $out/bin/fgrep $out/bin/dsymutil - ''; - - in - '' - mkdir -p $out/bin $out/lib $out/lib/darwin - - ${lib.optionalString stdenv.targetPlatform.isx86_64 '' - # Copy libSystem's .o files for various low-level boot stuff. - cp -d ${getLib darwin.Libsystem}/lib/*.o $out/lib - - # Resolv is actually a link to another package, so let's copy it properly - cp -L ${getLib darwin.Libsystem}/lib/libresolv.9.dylib $out/lib - ''} - - cp -rL ${getDev darwin.Libsystem}/include $out - chmod -R u+w $out/include - cp -rL ${getDev libiconv}/include/* $out/include - cp -rL ${getDev gnugrep.pcre2}/include/* $out/include - mv $out/include $out/include-Libsystem - - # Copy binutils. - for i in as ld ar ranlib nm strip otool install_name_tool lipo codesign_allocate; do - cp ${getBin cctools_}/bin/$i $out/bin - done - - # Copy coreutils, bash, etc. - cp ${getBin coreutils_}/bin/* $out/bin - (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users) - - cp -d ${getBin bash}/bin/{ba,}sh $out/bin - cp -d ${getBin diffutils}/bin/* $out/bin - cp ${getBin findutils}/bin/{find,xargs} $out/bin - cp -d ${getBin gawk}/bin/{g,}awk $out/bin - cp -d ${getBin gnugrep}/bin/grep $out/bin - cp -d ${getBin gnumake}/bin/* $out/bin - cp -d ${getBin gnused}/bin/* $out/bin - cp -d ${getBin patch}/bin/* $out/bin - - cp -d ${getLib gettext}/lib/libintl*.dylib $out/lib - cp -d ${getLib gnugrep.pcre2}/lib/libpcre2*.dylib $out/lib - cp -d ${getLib libiconv}/lib/lib*.dylib $out/lib - cp -d ${getLib libxml2}/lib/libxml2*.dylib $out/lib - cp -d ${getLib ncurses}/lib/libncurses*.dylib $out/lib - - # copy package extraction tools - cp -d ${getBin bzip2}/bin/b{,un}zip2 $out/bin - cp ${getBin cpio}/bin/cpio $out/bin - cp ${getBin gnutar}/bin/tar $out/bin - cp ${getBin gzip}/bin/.gzip-wrapped $out/bin/gzip - cp ${getBin pbzx}/bin/pbzx $out/bin - cp ${getBin xz}/bin/xz $out/bin - cp -d ${getLib bzip2}/lib/libbz2*.dylib $out/lib - cp -d ${getLib gmpxx}/lib/libgmp*.dylib $out/lib - cp -d ${getLib xar}/lib/libxar*.dylib $out/lib - cp -d ${getLib xz}/lib/liblzma*.dylib $out/lib - cp -d ${getLib zlib}/lib/libz*.dylib $out/lib - - # This used to be in-nixpkgs, but now is in the bundle - # because I can't be bothered to make it partially static - cp ${getBin curl_}/bin/curl $out/bin - cp -d ${getLib curl_}/lib/libcurl*.dylib $out/lib - cp -d ${getLib openssl}/lib/*.dylib $out/lib - - # Copy what we need of clang - cp -d ${getBin llvmPackages.clang-unwrapped}/bin/clang{,++,-cl,-cpp,-[0-9]*} $out/bin - cp -d ${getLib llvmPackages.clang-unwrapped}/lib/libclang-cpp*.dylib $out/lib - cp -rd ${getLib llvmPackages.clang-unwrapped}/lib/clang $out/lib - - cp -d ${getLib llvmPackages.libcxx}/lib/libc++*.dylib $out/lib - mkdir -p $out/lib/darwin - cp -d ${getLib llvmPackages.compiler-rt}/lib/darwin/libclang_rt.{,profile_}osx.a $out/lib/darwin - cp -d ${getLib llvmPackages.compiler-rt}/lib/libclang_rt.{,profile_}osx.a $out/lib - cp -d ${getLib llvmPackages.llvm}/lib/libLLVM.dylib $out/lib - cp -d ${getLib libffi}/lib/libffi*.dylib $out/lib - - mkdir $out/include - cp -rd ${getDev llvmPackages.libcxx}/include/c++ $out/include - - # copy .tbd assembly utils - cp ${getBin darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin - cp -d ${getLib libyaml}/lib/libyaml*.dylib $out/lib - - # copy sigtool - cp -d ${getBin darwin.sigtool}/bin/{codesign,sigtool} $out/bin - - cp -d ${getLib darwin.libtapi}/lib/libtapi*.dylib $out/lib - - # tools needed to unpack bootstrap archive - mkdir -p unpack/bin unpack/lib - cp -d ${getBin bash}/bin/{bash,sh} unpack/bin - cp ${getBin coreutils_}/bin/mkdir unpack/bin - cp ${getBin gnutar}/bin/tar unpack/bin - cp ${getBin xz}/bin/xz unpack/bin - cp -d ${getLib gettext}/lib/libintl*.dylib unpack/lib - cp -d ${getLib libiconv}/lib/lib*.dylib unpack/lib - cp -d ${getLib xz}/lib/liblzma*.dylib unpack/lib - cp ${unpackScript} unpack/bootstrap-tools-unpack.sh - - # - # All files copied. Perform processing to update references to point into - # the archive - # - - chmod -R u+w $out unpack - - # - change nix store library paths to use @rpath/library - # - if needed add an rpath containing lib/ - # - strip executable - rpathify() { - local libs=$(${stdenv.cc.targetPrefix}otool -L "$1" | tail -n +2 | grep -o "$NIX_STORE.*-\S*" || true) - local lib rpath - for lib in $libs; do - ${stdenv.cc.targetPrefix}install_name_tool -change $lib "@rpath/$(basename "$lib")" "$1" - done - - case "$(dirname "$1")" in - */bin) - # Strip executables even further - ${stdenv.cc.targetPrefix}strip "$i" - rpath='@executable_path/../lib' - ;; - */lib) - # the '/.' suffix is required - rpath='@loader_path/.' - ;; - */lib/darwin) - rpath='@loader_path/..' - ;; - *) - echo unkown executable $1 >&2 - exit 1 - ;; - esac - - # if shared object contains references add an rpath to lib/ - if ${stdenv.cc.targetPrefix}otool -l "$1"| grep -q '@rpath/'; then - ${stdenv.cc.targetPrefix}install_name_tool -add_rpath "$rpath" "$1" - fi - } - - # check that linked library paths exist in lib - # must be run after rpathify is performed - checkDeps() { - local deps=$(${stdenv.cc.targetPrefix}otool -l "$1"| grep -o '@rpath/[^ ]*' || true) - local lib - shopt -s extglob - for lib in $deps; do - local root="''${1/\/@(lib|bin)\/*}" - if [[ ! -e $root/''${lib/@rpath/lib} ]]; then - echo "error: $1 missing lib for $lib" >&2 - exit 1 + for i in {unpack,$out}/bin/* {unpack,$out}/lib{,/darwin}/*.dylib; do + if [[ ! -L $i ]] && isMachO "$i"; then + rpathify "$i" + checkDeps "$i" fi done - shopt -u extglob - } - for i in {unpack,$out}/bin/* {unpack,$out}/lib{,/darwin}/*.dylib; do - if [[ ! -L $i ]] && isMachO "$i"; then - rpathify "$i" - checkDeps "$i" - fi - done + nuke-refs {unpack,$out}/bin/* + nuke-refs {unpack,$out}/lib/* + nuke-refs $out/lib/darwin/* - nuke-refs {unpack,$out}/bin/* - nuke-refs {unpack,$out}/lib/* - nuke-refs $out/lib/darwin/* + mkdir $out/.pack + mv $out/* $out/.pack + mv $out/.pack $out/pack - mkdir $out/.pack - mv $out/* $out/.pack - mv $out/.pack $out/pack + mkdir $out/on-server + cp -r unpack $out - mkdir $out/on-server - cp -r unpack $out + XZ_OPT="-9 -T $NIX_BUILD_CORES" tar cvJf $out/on-server/bootstrap-tools.tar.xz \ + --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . + dumpnar $out/unpack | xz -9 -T $NIX_BUILD_CORES > $out/on-server/unpack.nar.xz + ''; - XZ_OPT="-9 -T $NIX_BUILD_CORES" tar cvJf $out/on-server/bootstrap-tools.tar.xz \ - --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . - dumpnar $out/unpack | xz -9 -T $NIX_BUILD_CORES > $out/on-server/unpack.nar.xz - ''; - - allowedReferences = []; + allowedReferences = [ ]; meta = { maintainers = [ lib.maintainers.copumpkin ]; @@ -278,7 +292,7 @@ rec { bootstrapFiles = { bootstrapTools = "${build}/on-server/bootstrap-tools.tar.xz"; - unpack = runCommand "unpack" { allowedReferences = []; } '' + unpack = runCommand "unpack" { allowedReferences = [ ]; } '' cp -r ${build}/unpack $out ''; }; @@ -291,7 +305,7 @@ rec { args = [ "${bootstrapFiles.unpack}/bootstrap-tools-unpack.sh" - bootstrapFiles.bootstrapTools + bootstrapFiles.bootstrapTools ]; PATH = lib.makeBinPath [ @@ -306,7 +320,12 @@ rec { name = "test-bootstrap-tools"; inherit (stdenv.hostPlatform) system; builder = "${bootstrapTools}/bin/bash"; - args = [ "-euo" "pipefail" "-c" "eval \"$buildCommand\"" ]; + args = [ + "-euo" + "pipefail" + "-c" + "eval \"$buildCommand\"" + ]; PATH = lib.makeBinPath [ bootstrapTools ]; tools = bootstrapTools; "${stdenv.cc.darwinMinVersionVariable}" = stdenv.cc.darwinMinVersion; @@ -401,8 +420,13 @@ rec { # that platform. localSystem = if crossSystem != null then crossSystem else localSystem; - stdenvStages = args: let - args' = args // { inherit bootstrapFiles; }; - in (import (test-pkgspath + "/pkgs/stdenv/darwin") args'); + stdenvStages = + args: + let + args' = args // { + inherit bootstrapFiles; + }; + in + (import (test-pkgspath + "/pkgs/stdenv/darwin") args'); }; } diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index 6cc1339..3bc88f5 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -4,11 +4,16 @@ # each bootstrapping stage. See `./booter.nix` for exactly what this list should # contain. -{ # Args just for stdenvs' usage - lib +{ + # Args just for stdenvs' usage + lib, # Args to pass on to the pkgset builder, too -, localSystem, crossSystem, config, overlays, crossOverlays ? [] -} @ args: + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], +}@args: let # The native (i.e., impure) build environment. This one uses the @@ -34,16 +39,23 @@ let stagesCustom = import ./custom args; - # Select the appropriate stages for the platform `system'. in - if crossSystem != localSystem || crossOverlays != [] then stagesCross - else if config ? replaceStdenv then stagesCustom - else if localSystem.isLinux then stagesLinux - else if localSystem.isDarwin then stagesDarwin - else # misc special cases - { # switch +# Select the appropriate stages for the platform `system'. +if crossSystem != localSystem || crossOverlays != [ ] then + stagesCross +else if config ? replaceStdenv then + stagesCustom +else if localSystem.isLinux then + stagesLinux +else if localSystem.isDarwin then + stagesDarwin +# misc special cases +else + { + # switch x86_64-solaris = stagesNix; i686-cygwin = stagesNative; x86_64-cygwin = stagesNative; x86_64-freebsd = stagesFreeBSD; - }.${localSystem.system} or stagesNative + } + .${localSystem.system} or stagesNative diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix index de66085..ef4908c 100644 --- a/pkgs/stdenv/freebsd/default.nix +++ b/pkgs/stdenv/freebsd/default.nix @@ -1,219 +1,256 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], }: assert crossSystem == localSystem; -let inherit (localSystem) system; - fetchURL = import ; - trivialBuilder = (import ./trivial-builder.nix); - make = trivialBuilder rec { - inherit (localSystem) system; - name = "make"; - ver = "4.3"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; - sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - ]; - }; - bash = trivialBuilder rec { - inherit (localSystem) system; - name = "bash"; - ver = "4.4.18"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; - sha256 = "08vz660768mnnax7n8d4d85jxafwdmsxsi7fh0hzvmafbvn9wkb0"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - ]; - }; - coreutils = trivialBuilder rec { - inherit (localSystem) system; - name = "coreutils"; - ver = "8.31"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--without-gmp" - "--without-libpth-prefix" - ]; - }; - findutils = trivialBuilder rec { - inherit (localSystem) system; - name = "findutils"; - ver = "4.7.0"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--without-gmp" - "--without-libpth-prefix" - ]; - }; - diffutils = trivialBuilder rec { - inherit (localSystem) system; - name = "diffutils"; - ver = "3.7"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--without-libsigsegv-prefix" - ]; - }; - grep = trivialBuilder rec { - inherit (localSystem) system; - name = "grep"; - ver = "3.4"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--disable-perl-regexp" - "--without-libsegsegv-prefix" - ]; - }; - patch = trivialBuilder rec { - inherit (localSystem) system; - name = "patch"; - ver = "2.7.6"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"; - }; - gawk = trivialBuilder rec { - inherit (localSystem) system; - name = "gawk"; - ver = "5.0.1"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "15570p7g2x54asvr2fsc56sxzmm08fbk4mzpcs5n92fp9vq8cklf"; - configureArgs = [ "--disable-nls" - "--disable-mpfr" - "--without-libintl-prefix" - "--without-libiconv-prefix" - "--without-libsegsegv-prefix" - ]; - }; - cpio = trivialBuilder rec { - inherit (localSystem) system; - name = "cpio"; - ver = "2.13"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; - sha256 = "126vyg4a8wcdwh6npgvxy6gq433bzgz3ph37hmjpycc4r7cp0x78"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - ]; - }; - sed = trivialBuilder rec { - inherit (localSystem) system; - name = "sed"; - ver = "4.8"; - url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; - sha256 = "0cznxw73fzv1n3nj2zsq6nf73rvsbxndp444xkpahdqvlzz0r6zp"; - configureArgs = [ "--disable-nls" - "--without-libintl-prefix" - "--without-libiconv-prefix" - ]; - }; - cacert = fetchURL rec { - url = "https://curl.haxx.se/ca/cacert-2020-01-01.pem"; - sha256 = "07q808n307gzaga93abpf6an7c3rd35p18psdc1dd83lspgp1xxd"; - executable = false; - }; - curl = trivialBuilder rec { - inherit (localSystem) system; - name = "curl"; - ver = "7.68.0"; - url = "https://curl.haxx.se/download/${name}-${ver}.tar.xz"; - sha256 = "0nh3j90w6b97wqcgxjfq55qhkz9s38955fbhwzv2fsi7483j895p"; - configureArgs = [ "--disable-nls" - "--disable-ares" - "--disable-debug" - "--disable-ldap" - "--disable-ldaps" - "--disable-rtsp" - "--disable-dict" - "--disable-telnet" - "--disable-tftp" - "--disable-pop3" - "--disable-imap" - "--disable-smb" - "--disable-smtp" - "--disable-gopher" - "--disable-manual" - "--disable-verbose" - "--disable-sspi" - "--disable-tls-srp" - "--disable-unix-sockets" - "--without-brotli" - "--without-gnutls" - "--without-mbedtls" - "--without-wolfssl" - "--without-bearssl" - "--without-libidn2" - "--without-librtmp" - "--without-nghttp2" - "--with-ssl=/usr" - "--with-ca-bundle=${cacert}" - ]; - }; - bashExe = "${bash}/bin/bash"; +let + inherit (localSystem) system; + fetchURL = import ; + trivialBuilder = (import ./trivial-builder.nix); + make = trivialBuilder rec { + inherit (localSystem) system; + name = "make"; + ver = "4.3"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; + sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + ]; + }; + bash = trivialBuilder rec { + inherit (localSystem) system; + name = "bash"; + ver = "4.4.18"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; + sha256 = "08vz660768mnnax7n8d4d85jxafwdmsxsi7fh0hzvmafbvn9wkb0"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + ]; + }; + coreutils = trivialBuilder rec { + inherit (localSystem) system; + name = "coreutils"; + ver = "8.31"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--without-gmp" + "--without-libpth-prefix" + ]; + }; + findutils = trivialBuilder rec { + inherit (localSystem) system; + name = "findutils"; + ver = "4.7.0"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--without-gmp" + "--without-libpth-prefix" + ]; + }; + diffutils = trivialBuilder rec { + inherit (localSystem) system; + name = "diffutils"; + ver = "3.7"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--without-libsigsegv-prefix" + ]; + }; + grep = trivialBuilder rec { + inherit (localSystem) system; + name = "grep"; + ver = "3.4"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--disable-perl-regexp" + "--without-libsegsegv-prefix" + ]; + }; + patch = trivialBuilder rec { + inherit (localSystem) system; + name = "patch"; + ver = "2.7.6"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc"; + }; + gawk = trivialBuilder rec { + inherit (localSystem) system; + name = "gawk"; + ver = "5.0.1"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "15570p7g2x54asvr2fsc56sxzmm08fbk4mzpcs5n92fp9vq8cklf"; + configureArgs = [ + "--disable-nls" + "--disable-mpfr" + "--without-libintl-prefix" + "--without-libiconv-prefix" + "--without-libsegsegv-prefix" + ]; + }; + cpio = trivialBuilder rec { + inherit (localSystem) system; + name = "cpio"; + ver = "2.13"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz"; + sha256 = "126vyg4a8wcdwh6npgvxy6gq433bzgz3ph37hmjpycc4r7cp0x78"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + ]; + }; + sed = trivialBuilder rec { + inherit (localSystem) system; + name = "sed"; + ver = "4.8"; + url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz"; + sha256 = "0cznxw73fzv1n3nj2zsq6nf73rvsbxndp444xkpahdqvlzz0r6zp"; + configureArgs = [ + "--disable-nls" + "--without-libintl-prefix" + "--without-libiconv-prefix" + ]; + }; + cacert = fetchURL rec { + url = "https://curl.haxx.se/ca/cacert-2020-01-01.pem"; + sha256 = "07q808n307gzaga93abpf6an7c3rd35p18psdc1dd83lspgp1xxd"; + executable = false; + }; + curl = trivialBuilder rec { + inherit (localSystem) system; + name = "curl"; + ver = "7.68.0"; + url = "https://curl.haxx.se/download/${name}-${ver}.tar.xz"; + sha256 = "0nh3j90w6b97wqcgxjfq55qhkz9s38955fbhwzv2fsi7483j895p"; + configureArgs = [ + "--disable-nls" + "--disable-ares" + "--disable-debug" + "--disable-ldap" + "--disable-ldaps" + "--disable-rtsp" + "--disable-dict" + "--disable-telnet" + "--disable-tftp" + "--disable-pop3" + "--disable-imap" + "--disable-smb" + "--disable-smtp" + "--disable-gopher" + "--disable-manual" + "--disable-verbose" + "--disable-sspi" + "--disable-tls-srp" + "--disable-unix-sockets" + "--without-brotli" + "--without-gnutls" + "--without-mbedtls" + "--without-wolfssl" + "--without-bearssl" + "--without-libidn2" + "--without-librtmp" + "--without-nghttp2" + "--with-ssl=/usr" + "--with-ca-bundle=${cacert}" + ]; + }; + bashExe = "${bash}/bin/bash"; in [ - ({}: { - __raw = true; + ( + { }: + { + __raw = true; - bootstrapTools = derivation ({ - inherit system; - inherit make bash coreutils findutils - diffutils grep patch gawk cpio sed - curl; + bootstrapTools = derivation ( + { + inherit system; + inherit + make + bash + coreutils + findutils + diffutils + grep + patch + gawk + cpio + sed + curl + ; - name = "trivial-bootstrap-tools"; - builder = bashExe; - args = [ ./trivial-bootstrap.sh ]; - buildInputs = [ make ]; - mkdir = "/bin/mkdir"; - ln = "/bin/ln"; - } // lib.optionalAttrs config.contentAddressedByDefault { - __contentAddressed = true; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - }); - }) + name = "trivial-bootstrap-tools"; + builder = bashExe; + args = [ ./trivial-bootstrap.sh ]; + buildInputs = [ make ]; + mkdir = "/bin/mkdir"; + ln = "/bin/ln"; + } + // lib.optionalAttrs config.contentAddressedByDefault { + __contentAddressed = true; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + } + ); + } + ) - ({ bootstrapTools, ... }: rec { - __raw = true; + ( + { bootstrapTools, ... }: + rec { + __raw = true; - inherit bootstrapTools; + inherit bootstrapTools; - fetchurl = import ../../build-support/fetchurl { - inherit lib; - stdenvNoCC = stdenv; - curl = bootstrapTools; - }; - - stdenv = import ../generic { - name = "stdenv-freebsd-boot-1"; - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; - inherit config; - initialPath = [ "/" "/usr" ]; - shell = "${bootstrapTools}/bin/bash"; - fetchurlBoot = null; - cc = null; - overrides = self: super: { + fetchurl = import ../../build-support/fetchurl { + inherit lib; + stdenvNoCC = stdenv; + curl = bootstrapTools; }; - }; - }) + + stdenv = import ../generic { + name = "stdenv-freebsd-boot-1"; + buildPlatform = localSystem; + hostPlatform = localSystem; + targetPlatform = localSystem; + inherit config; + initialPath = [ + "/" + "/usr" + ]; + shell = "${bootstrapTools}/bin/bash"; + fetchurlBoot = null; + cc = null; + overrides = self: super: { }; + }; + } + ) (prevStage: { __raw = true; @@ -225,8 +262,11 @@ in inherit config; initialPath = [ prevStage.bootstrapTools ]; inherit (prevStage.stdenv) - buildPlatform hostPlatform targetPlatform - shell; + buildPlatform + hostPlatform + targetPlatform + shell + ; fetchurlBoot = prevStage.fetchurl; cc = null; }; @@ -239,33 +279,40 @@ in inherit config; inherit (prevStage.stdenv) - buildPlatform hostPlatform targetPlatform - initialPath shell fetchurlBoot; + buildPlatform + hostPlatform + targetPlatform + initialPath + shell + fetchurlBoot + ; cc = lib.makeOverridable (import ../../build-support/cc-wrapper) { inherit lib; - nativeTools = true; + nativeTools = true; nativePrefix = "/usr"; - nativeLibc = true; + nativeLibc = true; stdenvNoCC = prevStage.stdenv; buildPackages = { inherit (prevStage) stdenv; }; - cc = { - name = "clang-9.9.9"; - cc = "/usr"; + cc = { + name = "clang-9.9.9"; + cc = "/usr"; outPath = prevStage.bootstrapTools; }; - isClang = true; + isClang = true; bintools = import ../../build-support/bintools-wrapper { inherit lib; stdenvNoCC = prevStage.stdenv; - nativeTools = true; - nativeLibc = true; + nativeTools = true; + nativeLibc = true; propagateDoc = false; nativePrefix = "/usr"; - bintools = { name = "${name}-binutils"; - outPath = prevStage.bootstrapTools; }; + bintools = { + name = "${name}-binutils"; + outPath = prevStage.bootstrapTools; + }; }; }; diff --git a/pkgs/stdenv/freebsd/trivial-builder.nix b/pkgs/stdenv/freebsd/trivial-builder.nix index 6426508..2f7f2b6 100644 --- a/pkgs/stdenv/freebsd/trivial-builder.nix +++ b/pkgs/stdenv/freebsd/trivial-builder.nix @@ -1,13 +1,21 @@ -{ system, name, ver, url, sha256, configureArgs ? [], executable ? false } : +{ + system, + name, + ver, + url, + sha256, + configureArgs ? [ ], + executable ? false, +}: -let fetchURL = import ; +let + fetchURL = import ; -in derivation { +in +derivation { inherit system configureArgs; name = "trivial-bootstrap-${name}-${ver}"; dname = "${name}-${ver}"; - src = fetchURL { - inherit url sha256 executable; - }; + src = fetchURL { inherit url sha256 executable; }; builder = ./trivial-builder.sh; } diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index a61f3e1..0599e6a 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -1,7 +1,11 @@ # Checks derivation meta and attrs for problems (like brokenness, # licenses, etc). -{ lib, config, hostPlatform }: +{ + lib, + config, + hostPlatform, +}: let inherit (lib) @@ -22,7 +26,7 @@ let isAttrs isString mapAttrs - ; + ; inherit (lib.lists) any @@ -31,13 +35,9 @@ let elem ; - inherit (lib.meta) - availableOn - ; + inherit (lib.meta) availableOn; - inherit (lib.generators) - toPretty - ; + inherit (lib.generators) toPretty; # If we're in hydra, we can dispense with the more verbose error # messages and make problems easier to spot. @@ -46,19 +46,19 @@ let # import { config = { showDerivationWarnings = [ "maintainerless" ]; }; } showWarnings = config.showDerivationWarnings; - getName = attrs: attrs.name or ("${attrs.pname or "«name-missing»"}-${attrs.version or "«version-missing»"}"); + getName = + attrs: attrs.name or ("${attrs.pname or "«name-missing»"}-${attrs.version or "«version-missing»"}"); - allowUnfree = config.allowUnfree - || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"; + allowUnfree = config.allowUnfree || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1"; - allowNonSource = let - envVar = builtins.getEnv "NIXPKGS_ALLOW_NONSOURCE"; - in if envVar != "" - then envVar != "0" - else config.allowNonSource or true; + allowNonSource = + let + envVar = builtins.getEnv "NIXPKGS_ALLOW_NONSOURCE"; + in + if envVar != "" then envVar != "0" else config.allowNonSource or true; - allowlist = config.allowlistedLicenses or config.whitelistedLicenses or []; - blocklist = config.blocklistedLicenses or config.blacklistedLicenses or []; + allowlist = config.allowlistedLicenses or config.whitelistedLicenses or [ ]; + blocklist = config.blocklistedLicenses or config.blacklistedLicenses or [ ]; areLicenseListsValid = if mutuallyExclusive allowlist blocklist then @@ -66,45 +66,51 @@ let else throw "allowlistedLicenses and blocklistedLicenses are not mutually exclusive."; - hasLicense = attrs: - attrs ? meta.license; + hasLicense = attrs: attrs ? meta.license; - hasListedLicense = assert areLicenseListsValid; list: attrs: - length list > 0 && hasLicense attrs && ( - if isList attrs.meta.license then any (l: elem l list) attrs.meta.license - else elem attrs.meta.license list + hasListedLicense = + assert areLicenseListsValid; + list: attrs: + length list > 0 + && hasLicense attrs + && ( + if isList attrs.meta.license then + any (l: elem l list) attrs.meta.license + else + elem attrs.meta.license list ); hasAllowlistedLicense = attrs: hasListedLicense allowlist attrs; hasBlocklistedLicense = attrs: hasListedLicense blocklist attrs; - allowBroken = config.allowBroken - || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; + allowBroken = config.allowBroken || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; - allowUnsupportedSystem = config.allowUnsupportedSystem - || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"; + allowUnsupportedSystem = + config.allowUnsupportedSystem || builtins.getEnv "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM" == "1"; - isUnfree = licenses: - if isAttrs licenses then !licenses.free or true + isUnfree = + licenses: + if isAttrs licenses then + !licenses.free or true # TODO: Returning false in the case of a string is a bug that should be fixed. # In a previous implementation of this function the function body # was `licenses: lib.lists.any (l: !l.free or true) licenses;` # which always evaluates to `!true` for strings. - else if isString licenses then false - else any (l: !l.free or true) licenses; + else if isString licenses then + false + else + any (l: !l.free or true) licenses; hasUnfreeLicense = attrs: hasLicense attrs && isUnfree attrs.meta.license; - hasNoMaintainers = attrs: - attrs ? meta.maintainers && (length attrs.meta.maintainers) == 0; + hasNoMaintainers = attrs: attrs ? meta.maintainers && (length attrs.meta.maintainers) == 0; isMarkedBroken = attrs: attrs.meta.broken or false; - hasUnsupportedPlatform = - pkg: !(availableOn hostPlatform pkg); + hasUnsupportedPlatform = pkg: !(availableOn hostPlatform pkg); - isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or []) != []; + isMarkedInsecure = attrs: (attrs.meta.knownVulnerabilities or [ ]) != [ ]; # Alow granular checks to allow only some unfree packages # Example: @@ -118,25 +124,23 @@ let # Check whether unfree packages are allowed and if not, whether the # package has an unfree license and is not explicitly allowed by the # `allowUnfreePredicate` function. - hasDeniedUnfreeLicense = attrs: - hasUnfreeLicense attrs && - !allowUnfree && - !allowUnfreePredicate attrs; + hasDeniedUnfreeLicense = + attrs: hasUnfreeLicense attrs && !allowUnfree && !allowUnfreePredicate attrs; - allowInsecureDefaultPredicate = x: builtins.elem (getName x) (config.permittedInsecurePackages or []); + allowInsecureDefaultPredicate = + x: builtins.elem (getName x) (config.permittedInsecurePackages or [ ]); allowInsecurePredicate = x: (config.allowInsecurePredicate or allowInsecureDefaultPredicate) x; - hasAllowedInsecure = attrs: - !(isMarkedInsecure attrs) || - allowInsecurePredicate attrs || - builtins.getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; - + hasAllowedInsecure = + attrs: + !(isMarkedInsecure attrs) + || allowInsecurePredicate attrs + || builtins.getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; isNonSource = sourceTypes: any (t: !t.isSource) sourceTypes; - hasNonSourceProvenance = attrs: - (attrs ? meta.sourceProvenance) && - isNonSource attrs.meta.sourceProvenance; + hasNonSourceProvenance = + attrs: (attrs ? meta.sourceProvenance) && isNonSource attrs.meta.sourceProvenance; # Allow granular checks to allow only some non-source-built packages # Example: @@ -150,10 +154,8 @@ let # Check whether non-source packages are allowed and if not, whether the # package has non-source provenance and is not explicitly allowed by the # `allowNonSourcePredicate` function. - hasDeniedNonSourceProvenance = attrs: - hasNonSourceProvenance attrs && - !allowNonSource && - !allowNonSourcePredicate attrs; + hasDeniedNonSourceProvenance = + attrs: hasNonSourceProvenance attrs && !allowNonSource && !allowNonSourcePredicate attrs; showLicenseOrSourceType = value: toString (map (v: v.shortName or "unknown") (toList value)); showLicense = showLicenseOrSourceType; @@ -172,91 +174,101 @@ let unknown-meta = x: ""; maintainerless = x: ""; }; - remediation_env_var = allow_attr: { - Unfree = "NIXPKGS_ALLOW_UNFREE"; - Broken = "NIXPKGS_ALLOW_BROKEN"; - UnsupportedSystem = "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM"; - NonSource = "NIXPKGS_ALLOW_NONSOURCE"; - }.${allow_attr}; - remediation_phrase = allow_attr: { - Unfree = "unfree packages"; - Broken = "broken packages"; - UnsupportedSystem = "packages that are unsupported for this system"; - NonSource = "packages not built from source"; - }.${allow_attr}; - remediate_predicate = predicateConfigAttr: attrs: - '' + remediation_env_var = + allow_attr: + { + Unfree = "NIXPKGS_ALLOW_UNFREE"; + Broken = "NIXPKGS_ALLOW_BROKEN"; + UnsupportedSystem = "NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM"; + NonSource = "NIXPKGS_ALLOW_NONSOURCE"; + } + .${allow_attr}; + remediation_phrase = + allow_attr: + { + Unfree = "unfree packages"; + Broken = "broken packages"; + UnsupportedSystem = "packages that are unsupported for this system"; + NonSource = "packages not built from source"; + } + .${allow_attr}; + remediate_predicate = predicateConfigAttr: attrs: '' - Alternatively you can configure a predicate to allow specific packages: - { nixpkgs.config.${predicateConfigAttr} = pkg: builtins.elem (lib.getName pkg) [ - "${lib.getName attrs}" - ]; - } - ''; + Alternatively you can configure a predicate to allow specific packages: + { nixpkgs.config.${predicateConfigAttr} = pkg: builtins.elem (lib.getName pkg) [ + "${lib.getName attrs}" + ]; + } + ''; - # flakeNote will be printed in the remediation messages below. - flakeNote = " + # flakeNote will be printed in the remediation messages below. + flakeNote = " Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake, then pass `--impure` in order to allow use of environment variables. "; - remediate_allowlist = allow_attr: rebuild_amendment: attrs: - '' - a) To temporarily allow ${remediation_phrase allow_attr}, you can use an environment variable - for a single invocation of the nix tools. + remediate_allowlist = allow_attr: rebuild_amendment: attrs: '' + a) To temporarily allow ${remediation_phrase allow_attr}, you can use an environment variable + for a single invocation of the nix tools. - $ export ${remediation_env_var allow_attr}=1 - ${flakeNote} - b) For `nixos-rebuild` you can set - { nixpkgs.config.allow${allow_attr} = true; } - in configuration.nix to override this. - ${rebuild_amendment attrs} - c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add - { allow${allow_attr} = true; } - to ~/.config/nixpkgs/config.nix. - ''; + $ export ${remediation_env_var allow_attr}=1 + ${flakeNote} + b) For `nixos-rebuild` you can set + { nixpkgs.config.allow${allow_attr} = true; } + in configuration.nix to override this. + ${rebuild_amendment attrs} + c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add + { allow${allow_attr} = true; } + to ~/.config/nixpkgs/config.nix. + ''; - remediate_insecure = attrs: + remediate_insecure = + attrs: '' Known issues: - '' + (concatStrings (map (issue: " - ${issue}\n") attrs.meta.knownVulnerabilities)) + '' + '' + + (concatStrings (map (issue: " - ${issue}\n") attrs.meta.knownVulnerabilities)) + + '' - You can install it anyway by allowing this package, using the - following methods: + You can install it anyway by allowing this package, using the + following methods: - a) To temporarily allow all insecure packages, you can use an environment - variable for a single invocation of the nix tools: + a) To temporarily allow all insecure packages, you can use an environment + variable for a single invocation of the nix tools: - $ export NIXPKGS_ALLOW_INSECURE=1 - ${flakeNote} - b) for `nixos-rebuild` you can add ‘${getName attrs}’ to - `nixpkgs.config.permittedInsecurePackages` in the configuration.nix, - like so: + $ export NIXPKGS_ALLOW_INSECURE=1 + ${flakeNote} + b) for `nixos-rebuild` you can add ‘${getName attrs}’ to + `nixpkgs.config.permittedInsecurePackages` in the configuration.nix, + like so: - { - nixpkgs.config.permittedInsecurePackages = [ - "${getName attrs}" - ]; - } + { + nixpkgs.config.permittedInsecurePackages = [ + "${getName attrs}" + ]; + } - c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add - ‘${getName attrs}’ to `permittedInsecurePackages` in - ~/.config/nixpkgs/config.nix, like so: + c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add + ‘${getName attrs}’ to `permittedInsecurePackages` in + ~/.config/nixpkgs/config.nix, like so: - { - permittedInsecurePackages = [ - "${getName attrs}" - ]; - } + { + permittedInsecurePackages = [ + "${getName attrs}" + ]; + } - ''; + ''; - remediateOutputsToInstall = attrs: let - expectedOutputs = attrs.meta.outputsToInstall or []; + remediateOutputsToInstall = + attrs: + let + expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: ! builtins.elem output actualOutputs) expectedOutputs; - in '' + missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + in + '' The package ${getName attrs} has set meta.outputsToInstall to: ${builtins.concatStringsSep ", " expectedOutputs} however ${getName attrs} only has the outputs: ${builtins.concatStringsSep ", " actualOutputs} @@ -266,121 +278,166 @@ let ${concatStrings (builtins.map (output: " - ${output}\n") missingOutputs)} ''; - handleEvalIssue = { meta, attrs }: { reason , errormsg ? "" }: + handleEvalIssue = + { meta, attrs }: + { + reason, + errormsg ? "", + }: let - msg = if inHydra - then "Failed to evaluate ${getName attrs}: «${reason}»: ${errormsg}" - else '' - Package ‘${getName attrs}’ in ${pos_str meta} ${errormsg}, refusing to evaluate. + msg = + if inHydra then + "Failed to evaluate ${getName attrs}: «${reason}»: ${errormsg}" + else + '' + Package ‘${getName attrs}’ in ${pos_str meta} ${errormsg}, refusing to evaluate. - '' + (builtins.getAttr reason remediation) attrs; + '' + + (builtins.getAttr reason remediation) attrs; - handler = if config ? handleEvalIssue - then config.handleEvalIssue reason - else throw; - in handler msg; + handler = if config ? handleEvalIssue then config.handleEvalIssue reason else throw; + in + handler msg; - handleEvalWarning = { meta, attrs }: { reason , errormsg ? "" }: + handleEvalWarning = + { meta, attrs }: + { + reason, + errormsg ? "", + }: let remediationMsg = (builtins.getAttr reason remediation) attrs; - msg = if inHydra then "Warning while evaluating ${getName attrs}: «${reason}»: ${errormsg}" - else "Package ${getName attrs} in ${pos_str meta} ${errormsg}, continuing anyway." - + (optionalString (remediationMsg != "") "\n${remediationMsg}"); + msg = + if inHydra then + "Warning while evaluating ${getName attrs}: «${reason}»: ${errormsg}" + else + "Package ${getName attrs} in ${pos_str meta} ${errormsg}, continuing anyway." + + (optionalString (remediationMsg != "") "\n${remediationMsg}"); isEnabled = findFirst (x: x == reason) null showWarnings; - in if isEnabled != null then builtins.trace msg true else true; + in + if isEnabled != null then builtins.trace msg true else true; - metaTypes = let - types = import ./meta-types.nix { inherit lib; }; - inherit (types) str union int attrs attrsOf any listOf bool; - platforms = listOf (union [ str (attrsOf any) ]); # see lib.meta.platformMatch - in { - # These keys are documented - description = str; - mainProgram = str; - longDescription = str; - branch = str; - homepage = union [ - (listOf str) - str - ]; - downloadPage = str; - changelog = union [ - (listOf str) - str - ]; - license = let - # TODO disallow `str` licenses, use a module - licenseType = union [ + metaTypes = + let + types = import ./meta-types.nix { inherit lib; }; + inherit (types) + str + union + int + attrs + attrsOf + any + listOf + bool + ; + platforms = listOf (union [ + str (attrsOf any) + ]); # see lib.meta.platformMatch + in + { + # These keys are documented + description = str; + mainProgram = str; + longDescription = str; + branch = str; + homepage = union [ + (listOf str) str ]; - in union [ - (listOf licenseType) - licenseType - ]; - sourceProvenance = listOf attrs; - maintainers = listOf (attrsOf any); # TODO use the maintainer type from lib/tests/maintainer-module.nix - priority = int; - pkgConfigModules = listOf str; - inherit platforms; - hydraPlatforms = listOf str; - broken = bool; - unfree = bool; - unsupported = bool; - insecure = bool; - tests = { - name = "test"; - verify = x: x == {} || ( # Accept {} for tests that are unsupported - isDerivation x && - x ? meta.timeout - ); + downloadPage = str; + changelog = union [ + (listOf str) + str + ]; + license = + let + # TODO disallow `str` licenses, use a module + licenseType = union [ + (attrsOf any) + str + ]; + in + union [ + (listOf licenseType) + licenseType + ]; + sourceProvenance = listOf attrs; + maintainers = listOf (attrsOf any); # TODO use the maintainer type from lib/tests/maintainer-module.nix + priority = int; + pkgConfigModules = listOf str; + inherit platforms; + hydraPlatforms = listOf str; + broken = bool; + unfree = bool; + unsupported = bool; + insecure = bool; + tests = { + name = "test"; + verify = + x: + x == { } + || + # Accept {} for tests that are unsupported + (isDerivation x && x ? meta.timeout); + }; + timeout = int; + + # Needed for Hydra to expose channel tarballs: + # https://github.com/NixOS/hydra/blob/53335323ae79ca1a42643f58e520b376898ce641/doc/manual/src/jobs.md#meta-fields + isHydraChannel = bool; + + # Weirder stuff that doesn't appear in the documentation? + maxSilent = int; + knownVulnerabilities = listOf str; + name = str; + version = str; + tag = str; + executables = listOf str; + outputsToInstall = listOf str; + position = str; + available = any; + isBuildPythonPackage = platforms; + schedulingPriority = int; + isFcitxEngine = bool; + isIbusEngine = bool; + isGutenprint = bool; + badPlatforms = platforms; }; - timeout = int; - # Needed for Hydra to expose channel tarballs: - # https://github.com/NixOS/hydra/blob/53335323ae79ca1a42643f58e520b376898ce641/doc/manual/src/jobs.md#meta-fields - isHydraChannel = bool; - - # Weirder stuff that doesn't appear in the documentation? - maxSilent = int; - knownVulnerabilities = listOf str; - name = str; - version = str; - tag = str; - executables = listOf str; - outputsToInstall = listOf str; - position = str; - available = any; - isBuildPythonPackage = platforms; - schedulingPriority = int; - isFcitxEngine = bool; - isIbusEngine = bool; - isGutenprint = bool; - badPlatforms = platforms; - }; - - checkMetaAttr = let - # Map attrs directly to the verify function for performance - metaTypes' = mapAttrs (_: t: t.verify) metaTypes; - in k: v: - if metaTypes?${k} then + checkMetaAttr = + let + # Map attrs directly to the verify function for performance + metaTypes' = mapAttrs (_: t: t.verify) metaTypes; + in + k: v: + if metaTypes ? ${k} then if metaTypes'.${k} v then [ ] else - [ "key 'meta.${k}' has invalid value; expected ${metaTypes.${k}.name}, got\n ${ - toPretty { indent = " "; } v - }" ] + [ + "key 'meta.${k}' has invalid value; expected ${metaTypes.${k}.name}, got\n ${ + toPretty { indent = " "; } v + }" + ] else - [ "key 'meta.${k}' is unrecognized; expected one of: \n [${concatMapStringsSep ", " (x: "'${x}'") (attrNames metaTypes)}]" ]; - checkMeta = meta: optionals config.checkMeta (concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta)); + [ + "key 'meta.${k}' is unrecognized; expected one of: \n [${ + concatMapStringsSep ", " (x: "'${x}'") (attrNames metaTypes) + }]" + ]; + checkMeta = + meta: + optionals config.checkMeta (concatMap (attr: checkMetaAttr attr meta.${attr}) (attrNames meta)); - checkOutputsToInstall = attrs: let - expectedOutputs = attrs.meta.outputsToInstall or []; + checkOutputsToInstall = + attrs: + let + expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: ! builtins.elem output actualOutputs) expectedOutputs; - in if config.checkMeta - then builtins.length missingOutputs > 0 - else false; + missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + in + if config.checkMeta then builtins.length missingOutputs > 0 else false; # Check if a derivation is valid, that is whether it passes checks for # e.g brokenness or license. @@ -401,47 +458,83 @@ let # Check meta attribute types first, to make sure it is always called even when there are other issues # Note that this is not a full type check and functions below still need to by careful about their inputs! let - res = checkMeta (attrs.meta or {}); + res = checkMeta (attrs.meta or { }); in - if res != [] then - { valid = "no"; reason = "unknown-meta"; errormsg = "has an invalid meta attrset:${concatMapStrings (x: "\n - " + x) res}\n"; } + if res != [ ] then + { + valid = "no"; + reason = "unknown-meta"; + errormsg = "has an invalid meta attrset:${concatMapStrings (x: "\n - " + x) res}\n"; + } # --- Put checks that cannot be ignored here --- else if checkOutputsToInstall attrs then - { valid = "no"; reason = "broken-outputs"; errormsg = "has invalid meta.outputsToInstall"; } + { + valid = "no"; + reason = "broken-outputs"; + errormsg = "has invalid meta.outputsToInstall"; + } # --- Put checks that can be ignored here --- else if hasDeniedUnfreeLicense attrs && !(hasAllowlistedLicense attrs) then - { valid = "no"; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; } + { + valid = "no"; + reason = "unfree"; + errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; + } else if hasBlocklistedLicense attrs then - { valid = "no"; reason = "blocklisted"; errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; } + { + valid = "no"; + reason = "blocklisted"; + errormsg = "has a blocklisted license (‘${showLicense attrs.meta.license}’)"; + } else if hasDeniedNonSourceProvenance attrs then - { valid = "no"; reason = "non-source"; errormsg = "contains elements not built from source (‘${showSourceType attrs.meta.sourceProvenance}’)"; } + { + valid = "no"; + reason = "non-source"; + errormsg = "contains elements not built from source (‘${showSourceType attrs.meta.sourceProvenance}’)"; + } else if !allowBroken && attrs.meta.broken or false then - { valid = "no"; reason = "broken"; errormsg = "is marked as broken"; } + { + valid = "no"; + reason = "broken"; + errormsg = "is marked as broken"; + } else if !allowUnsupportedSystem && hasUnsupportedPlatform attrs then - let toPretty' = toPretty { - allowPrettyValues = true; - indent = " "; - }; - in { valid = "no"; reason = "unsupported"; - errormsg = '' - is not available on the requested hostPlatform: - hostPlatform.config = "${hostPlatform.config}" - package.meta.platforms = ${toPretty' (attrs.meta.platforms or [])} - package.meta.badPlatforms = ${toPretty' (attrs.meta.badPlatforms or [])} - ''; - } + let + toPretty' = toPretty { + allowPrettyValues = true; + indent = " "; + }; + in + { + valid = "no"; + reason = "unsupported"; + errormsg = '' + is not available on the requested hostPlatform: + hostPlatform.config = "${hostPlatform.config}" + package.meta.platforms = ${toPretty' (attrs.meta.platforms or [ ])} + package.meta.badPlatforms = ${toPretty' (attrs.meta.badPlatforms or [ ])} + ''; + } else if !(hasAllowedInsecure attrs) then - { valid = "no"; reason = "insecure"; errormsg = "is marked as insecure"; } + { + valid = "no"; + reason = "insecure"; + errormsg = "is marked as insecure"; + } # --- warnings --- # Please also update the type in /pkgs/top-level/config.nix alongside this. else if hasNoMaintainers attrs then - { valid = "warn"; reason = "maintainerless"; errormsg = "has no maintainers"; } + { + valid = "warn"; + reason = "maintainerless"; + errormsg = "has no maintainers"; + } # ----- - else validYes; - + else + validYes; # The meta attribute is passed in the resulting attribute set, # but it's not part of the actual derivation, i.e., it's not @@ -450,7 +543,13 @@ let # Example: # meta = checkMeta.commonMeta { inherit validity attrs pos references; }; # validity = checkMeta.assertValidity { inherit meta attrs; }; - commonMeta = { validity, attrs, pos ? null, references ? [ ] }: + commonMeta = + { + validity, + attrs, + pos ? null, + references ? [ ], + }: let outputs = attrs.outputs or [ "out" ]; hasOutput = out: builtins.elem out outputs; @@ -471,50 +570,60 @@ let # Note: This default probably shouldn't be globally configurable. # Services and users should specify outputs explicitly, # unless they are comfortable with this default. - outputsToInstall = - [ - ( - if hasOutput "bin" then "bin" - else if hasOutput "out" then "out" - else findFirst hasOutput null outputs - ) - ] - ++ optional (hasOutput "man") "man"; + outputsToInstall = [ + ( + if hasOutput "bin" then + "bin" + else if hasOutput "out" then + "out" + else + findFirst hasOutput null outputs + ) + ] ++ optional (hasOutput "man") "man"; } // attrs.meta or { } # Fill `meta.position` to identify the source location of the package. - // optionalAttrs (pos != null) { - position = pos.file + ":" + toString pos.line; - } // { + // optionalAttrs (pos != null) { position = pos.file + ":" + toString pos.line; } + // { # Expose the result of the checks for everyone to see. unfree = hasUnfreeLicense attrs; broken = isMarkedBroken attrs; unsupported = hasUnsupportedPlatform attrs; insecure = isMarkedInsecure attrs; - available = validity.valid != "no" - && (if config.checkMetaRecursively or false - then all (d: d.meta.available or true) references - else true); + available = + validity.valid != "no" + && ( + if config.checkMetaRecursively or false then all (d: d.meta.available or true) references else true + ); }; - assertValidity = { meta, attrs }: let + assertValidity = + { meta, attrs }: + let validity = checkValidity attrs; inherit (validity) valid; - in if validity ? handled then validity else validity // { - # Throw an error if trying to evaluate a non-valid derivation - # or, alternatively, just output a warning message. - handled = - ( - if valid == "yes" then true - else if valid == "no" then ( - handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; } - ) - else if valid == "warn" then ( - handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; } - ) - else throw "Unknown validitiy: '${valid}'" + in + if validity ? handled then + validity + else + validity + // { + # Throw an error if trying to evaluate a non-valid derivation + # or, alternatively, just output a warning message. + handled = ( + if valid == "yes" then + true + else if valid == "no" then + (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; }) + else if valid == "warn" then + (handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; }) + else + throw "Unknown validitiy: '${valid}'" ); - }; + }; -in { inherit assertValidity commonMeta; } +in +{ + inherit assertValidity commonMeta; +} diff --git a/pkgs/stdenv/generic/common-path.nix b/pkgs/stdenv/generic/common-path.nix index 8c1acfb..32c8e27 100644 --- a/pkgs/stdenv/generic/common-path.nix +++ b/pkgs/stdenv/generic/common-path.nix @@ -1,4 +1,5 @@ -{pkgs}: [ +{ pkgs }: +[ pkgs.coreutils pkgs.findutils pkgs.diffutils diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 2cda43d..7f3ec49 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -1,135 +1,158 @@ -let lib = import ../../../lib; stdenv-overridable = lib.makeOverridable ( - -argsStdenv@{ name ? "stdenv", preHook ? "", initialPath - -, # If we don't have a C compiler, we might either have `cc = null` or `cc = - # throw ...`, but if we do have a C compiler we should definiely have `cc != - # null`. - # - # TODO(@Ericson2314): Add assert without creating infinite recursion - hasCC ? cc != null, cc - -, shell -, allowedRequisites ? null, extraAttrs ? {}, overrides ? (self: super: {}), config -, disallowedRequisites ? [] - -, # The `fetchurl' to use for downloading curl and its dependencies - # (see all-packages.nix). - fetchurlBoot - -, setupScript ? ./setup.sh - -, extraNativeBuildInputs ? [] -, extraBuildInputs ? [] -, __stdenvImpureHostDeps ? [] -, __extraImpureHostDeps ? [] -, stdenvSandboxProfile ? "" -, extraSandboxProfile ? "" - - ## Platform parameters - ## - ## The "build" "host" "target" terminology below comes from GNU Autotools. See - ## its documentation for more information on what those words mean. Note that - ## each should always be defined, even when not cross compiling. - ## - ## For purposes of bootstrapping, think of each stage as a "sliding window" - ## over a list of platforms. Specifically, the host platform of the previous - ## stage becomes the build platform of the current one, and likewise the - ## target platform of the previous stage becomes the host platform of the - ## current one. - ## - -, # The platform on which packages are built. Consists of `system`, a - # string (e.g.,`i686-linux') identifying the most import attributes of the - # build platform, and `platform` a set of other details. - buildPlatform - -, # The platform on which packages run. - hostPlatform - -, # The platform which build tools (especially compilers) build for in this stage, - targetPlatform - -, # The implementation of `mkDerivation`, parameterized with the final stdenv so we can tie the knot. - # This is convient to have as a parameter so the stdenv "adapters" work better - mkDerivationFromStdenv ? stdenv: (import ./make-derivation.nix { inherit lib config; } stdenv).mkDerivation -}: - let - defaultNativeBuildInputs = extraNativeBuildInputs ++ - [ - ../../build-support/setup-hooks/audit-tmpdir.sh - ../../build-support/setup-hooks/compress-man-pages.sh - ../../build-support/setup-hooks/make-symlinks-relative.sh - ../../build-support/setup-hooks/move-docs.sh - ../../build-support/setup-hooks/move-lib64.sh - ../../build-support/setup-hooks/move-sbin.sh - ../../build-support/setup-hooks/move-systemd-user-units.sh - ../../build-support/setup-hooks/multiple-outputs.sh - ../../build-support/setup-hooks/patch-shebangs.sh - ../../build-support/setup-hooks/prune-libtool-files.sh - ../../build-support/setup-hooks/reproducible-builds.sh - ../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh - ../../build-support/setup-hooks/strip.sh - ] ++ lib.optionals hasCC [ cc ]; + lib = import ../../../lib; + stdenv-overridable = lib.makeOverridable ( - defaultBuildInputs = extraBuildInputs; + argsStdenv@{ + name ? "stdenv", + preHook ? "", + initialPath, - stdenv = (stdenv-overridable argsStdenv); + # If we don't have a C compiler, we might either have `cc = null` or `cc = + # throw ...`, but if we do have a C compiler we should definiely have `cc != + # null`. + # + # TODO(@Ericson2314): Add assert without creating infinite recursion + hasCC ? cc != null, + cc, - # The stdenv that we are producing. - in + shell, + allowedRequisites ? null, + extraAttrs ? { }, + overrides ? (self: super: { }), + config, + disallowedRequisites ? [ ], + + # The `fetchurl' to use for downloading curl and its dependencies + # (see all-packages.nix). + fetchurlBoot, + + setupScript ? ./setup.sh, + + extraNativeBuildInputs ? [ ], + extraBuildInputs ? [ ], + __stdenvImpureHostDeps ? [ ], + __extraImpureHostDeps ? [ ], + stdenvSandboxProfile ? "", + extraSandboxProfile ? "", + + ## Platform parameters + ## + ## The "build" "host" "target" terminology below comes from GNU Autotools. See + ## its documentation for more information on what those words mean. Note that + ## each should always be defined, even when not cross compiling. + ## + ## For purposes of bootstrapping, think of each stage as a "sliding window" + ## over a list of platforms. Specifically, the host platform of the previous + ## stage becomes the build platform of the current one, and likewise the + ## target platform of the previous stage becomes the host platform of the + ## current one. + ## + + # The platform on which packages are built. Consists of `system`, a + # string (e.g.,`i686-linux') identifying the most import attributes of the + # build platform, and `platform` a set of other details. + buildPlatform, + + # The platform on which packages run. + hostPlatform, + + # The platform which build tools (especially compilers) build for in this stage, + targetPlatform, + + # The implementation of `mkDerivation`, parameterized with the final stdenv so we can tie the knot. + # This is convient to have as a parameter so the stdenv "adapters" work better + mkDerivationFromStdenv ? + stdenv: (import ./make-derivation.nix { inherit lib config; } stdenv).mkDerivation, + }: + + let + defaultNativeBuildInputs = + extraNativeBuildInputs + ++ [ + ../../build-support/setup-hooks/audit-tmpdir.sh + ../../build-support/setup-hooks/compress-man-pages.sh + ../../build-support/setup-hooks/make-symlinks-relative.sh + ../../build-support/setup-hooks/move-docs.sh + ../../build-support/setup-hooks/move-lib64.sh + ../../build-support/setup-hooks/move-sbin.sh + ../../build-support/setup-hooks/move-systemd-user-units.sh + ../../build-support/setup-hooks/multiple-outputs.sh + ../../build-support/setup-hooks/patch-shebangs.sh + ../../build-support/setup-hooks/prune-libtool-files.sh + ../../build-support/setup-hooks/reproducible-builds.sh + ../../build-support/setup-hooks/set-source-date-epoch-to-latest.sh + ../../build-support/setup-hooks/strip.sh + ] + ++ lib.optionals hasCC [ cc ]; + + defaultBuildInputs = extraBuildInputs; + + stdenv = (stdenv-overridable argsStdenv); + + in + # The stdenv that we are producing. derivation ( - lib.optionalAttrs (allowedRequisites != null) { - allowedRequisites = allowedRequisites - ++ defaultNativeBuildInputs ++ defaultBuildInputs; - } - // lib.optionalAttrs config.contentAddressedByDefault { - __contentAddressed = true; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - } - // { - inherit name; - inherit disallowedRequisites; + lib.optionalAttrs (allowedRequisites != null) { + allowedRequisites = allowedRequisites ++ defaultNativeBuildInputs ++ defaultBuildInputs; + } + // lib.optionalAttrs config.contentAddressedByDefault { + __contentAddressed = true; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + } + // { + inherit name; + inherit disallowedRequisites; - # Nix itself uses the `system` field of a derivation to decide where to - # build it. This is a bit confusing for cross compilation. - inherit (buildPlatform) system; + # Nix itself uses the `system` field of a derivation to decide where to + # build it. This is a bit confusing for cross compilation. + inherit (buildPlatform) system; - builder = shell; + builder = shell; - args = ["-e" ./builder.sh]; + args = [ + "-e" + ./builder.sh + ]; - setup = setupScript; + setup = setupScript; - # We pretty much never need rpaths on Darwin, since all library path references - # are absolute unless we go out of our way to make them relative (like with CF) - # TODO: This really wants to be in stdenv/darwin but we don't have hostPlatform - # there (yet?) so it goes here until then. - preHook = preHook + lib.optionalString buildPlatform.isDarwin '' - export NIX_DONT_SET_RPATH_FOR_BUILD=1 - '' + lib.optionalString (hostPlatform.isDarwin || (!hostPlatform.isElf && !hostPlatform.isMacho)) '' - export NIX_DONT_SET_RPATH=1 - export NIX_NO_SELF_RPATH=1 - '' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) '' - export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion} - '' - # TODO this should be uncommented, but it causes stupid mass rebuilds. I - # think the best solution would just be to fixup linux RPATHs so we don't - # need to set `-rpath` anywhere. - # + lib.optionalString targetPlatform.isDarwin '' - # export NIX_DONT_SET_RPATH_FOR_TARGET=1 - # '' - ; + # We pretty much never need rpaths on Darwin, since all library path references + # are absolute unless we go out of our way to make them relative (like with CF) + # TODO: This really wants to be in stdenv/darwin but we don't have hostPlatform + # there (yet?) so it goes here until then. + preHook = + preHook + + lib.optionalString buildPlatform.isDarwin '' + export NIX_DONT_SET_RPATH_FOR_BUILD=1 + '' + + lib.optionalString (hostPlatform.isDarwin || (!hostPlatform.isElf && !hostPlatform.isMacho)) '' + export NIX_DONT_SET_RPATH=1 + export NIX_NO_SELF_RPATH=1 + '' + + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) '' + export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion} + '' + # TODO this should be uncommented, but it causes stupid mass rebuilds. I + # think the best solution would just be to fixup linux RPATHs so we don't + # need to set `-rpath` anywhere. + # + lib.optionalString targetPlatform.isDarwin '' + # export NIX_DONT_SET_RPATH_FOR_TARGET=1 + # '' + ; - inherit initialPath shell - defaultNativeBuildInputs defaultBuildInputs; - } - // lib.optionalAttrs buildPlatform.isDarwin { - __sandboxProfile = stdenvSandboxProfile; - __impureHostDeps = __stdenvImpureHostDeps; - }) + inherit + initialPath + shell + defaultNativeBuildInputs + defaultBuildInputs + ; + } + // lib.optionalAttrs buildPlatform.isDarwin { + __sandboxProfile = stdenvSandboxProfile; + __impureHostDeps = __stdenvImpureHostDeps; + } + ) // { @@ -140,15 +163,32 @@ let inherit buildPlatform hostPlatform targetPlatform; - inherit extraNativeBuildInputs extraBuildInputs - __extraImpureHostDeps extraSandboxProfile; + inherit + extraNativeBuildInputs + extraBuildInputs + __extraImpureHostDeps + extraSandboxProfile + ; # Utility flags to test the type of platform. inherit (hostPlatform) - isDarwin isLinux isSunOS isCygwin isBSD isFreeBSD isOpenBSD - isi686 isx86_32 isx86_64 - is32bit is64bit - isAarch32 isAarch64 isMips isBigEndian; + isDarwin + isLinux + isSunOS + isCygwin + isBSD + isFreeBSD + isOpenBSD + isi686 + isx86_32 + isx86_64 + is32bit + is64bit + isAarch32 + isAarch64 + isMips + isBigEndian + ; # Override `system` so that packages can get the system of the host # platform through `stdenv.system`. `system` is originally set to the @@ -180,4 +220,6 @@ let # all-packages.nix for that platform (meaning that it has a line # like curl = if stdenv ? curl then stdenv.curl else ...). // extraAttrs -); in stdenv-overridable + ); +in +stdenv-overridable diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index 1214d01..2db3405 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -37,16 +37,17 @@ let splitString subtractLists unique - ; + ; inherit (import ../../build-support/lib/cmake.nix { inherit lib stdenv; }) makeCMakeFlags; inherit (import ../../build-support/lib/meson.nix { inherit lib stdenv; }) makeMesonFlags; mkDerivation = fnOrAttrs: - if builtins.isFunction fnOrAttrs - then makeDerivationExtensible fnOrAttrs - else makeDerivationExtensibleConst fnOrAttrs; + if builtins.isFunction fnOrAttrs then + makeDerivationExtensible fnOrAttrs + else + makeDerivationExtensibleConst fnOrAttrs; checkMeta = import ./check-meta.nix { inherit lib config; @@ -56,7 +57,8 @@ let }; # Based off lib.makeExtensible, with modifications: - makeDerivationExtensible = rattrs: + makeDerivationExtensible = + rattrs: let # NOTE: The following is a hint that will be printed by the Nix cli when # encountering an infinite recursion. It must not be formatted into @@ -66,9 +68,11 @@ let args = rattrs (args // { inherit finalPackage overrideAttrs; }); # ^^^^ - overrideAttrs = f0: + overrideAttrs = + f0: let - f = self: super: + f = + self: super: # Convert f0 to an overlay. Legacy is: # overrideAttrs (super: {}) # We want to introduce self. We follow the convention of overlays: @@ -76,39 +80,47 @@ let # Which means the first parameter can be either self or super. # This is surprising, but far better than the confusion that would # arise from flipping an overlay's parameters in some cases. - let x = f0 super; + let + x = f0 super; in - if builtins.isFunction x - then - # Can't reuse `x`, because `self` comes first. - # Looks inefficient, but `f0 super` was a cheap thunk. - f0 self super - else x; + if builtins.isFunction x then + # Can't reuse `x`, because `self` comes first. + # Looks inefficient, but `f0 super` was a cheap thunk. + f0 self super + else + x; in - makeDerivationExtensible - (self: let super = rattrs self; in super // (if builtins.isFunction f0 || f0?__functor then f self super else f0)); + makeDerivationExtensible ( + self: + let + super = rattrs self; + in + super // (if builtins.isFunction f0 || f0 ? __functor then f self super else f0) + ); - finalPackage = - mkDerivationSimple overrideAttrs args; + finalPackage = mkDerivationSimple overrideAttrs args; - in finalPackage; + in + finalPackage; #makeDerivationExtensibleConst = attrs: makeDerivationExtensible (_: attrs); # but pre-evaluated for a slight improvement in performance. - makeDerivationExtensibleConst = attrs: - mkDerivationSimple - (f0: - let - f = self: super: - let x = f0 super; - in - if builtins.isFunction x - then - f0 self super - else x; - in - makeDerivationExtensible (self: attrs // (if builtins.isFunction f0 || f0?__functor then f self attrs else f0))) - attrs; + makeDerivationExtensibleConst = + attrs: + mkDerivationSimple ( + f0: + let + f = + self: super: + let + x = f0 super; + in + if builtins.isFunction x then f0 self super else x; + in + makeDerivationExtensible ( + self: attrs // (if builtins.isFunction f0 || f0 ? __functor then f self attrs else f0) + ) + ) attrs; knownHardeningFlags = [ "bindnow" @@ -125,513 +137,619 @@ let ]; removedOrReplacedAttrNames = [ - "checkInputs" "installCheckInputs" - "nativeCheckInputs" "nativeInstallCheckInputs" + "checkInputs" + "installCheckInputs" + "nativeCheckInputs" + "nativeInstallCheckInputs" "__contentAddressed" "__darwinAllowLocalNetworking" - "__impureHostDeps" "__propagatedImpureHostDeps" - "sandboxProfile" "propagatedSandboxProfile" + "__impureHostDeps" + "__propagatedImpureHostDeps" + "sandboxProfile" + "propagatedSandboxProfile" ]; # Turn a derivation into its outPath without a string context attached. # See the comment at the usage site. - unsafeDerivationToUntrackedOutpath = drv: - if isDerivation drv - then builtins.unsafeDiscardStringContext drv.outPath - else drv; + unsafeDerivationToUntrackedOutpath = + drv: if isDerivation drv then builtins.unsafeDiscardStringContext drv.outPath else drv; makeDerivationArgument = + # `makeDerivationArgument` is responsible for the `mkDerivation` arguments that + # affect the actual derivation, excluding a few behaviors that are not + # essential, and specific to `mkDerivation`: `env`, `cmakeFlags`, `mesonFlags`. + # + # See also: + # + # * https://nixos.org/nixpkgs/manual/#sec-using-stdenv + # Details on how to use this mkDerivation function + # + # * https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations + # Explanation about derivations in general + { -# `makeDerivationArgument` is responsible for the `mkDerivation` arguments that -# affect the actual derivation, excluding a few behaviors that are not -# essential, and specific to `mkDerivation`: `env`, `cmakeFlags`, `mesonFlags`. -# -# See also: -# -# * https://nixos.org/nixpkgs/manual/#sec-using-stdenv -# Details on how to use this mkDerivation function -# -# * https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations -# Explanation about derivations in general -{ + # These types of dependencies are all exhaustively documented in + # the "Specifying Dependencies" section of the "Standard + # Environment" chapter of the Nixpkgs manual. -# These types of dependencies are all exhaustively documented in -# the "Specifying Dependencies" section of the "Standard -# Environment" chapter of the Nixpkgs manual. + # TODO(@Ericson2314): Stop using legacy dep attribute names -# TODO(@Ericson2314): Stop using legacy dep attribute names + # host offset -> target offset + depsBuildBuild ? [ ], # -1 -> -1 + depsBuildBuildPropagated ? [ ], # -1 -> -1 + nativeBuildInputs ? [ ], # -1 -> 0 N.B. Legacy name + propagatedNativeBuildInputs ? [ ], # -1 -> 0 N.B. Legacy name + depsBuildTarget ? [ ], # -1 -> 1 + depsBuildTargetPropagated ? [ ], # -1 -> 1 -# host offset -> target offset - depsBuildBuild ? [] # -1 -> -1 -, depsBuildBuildPropagated ? [] # -1 -> -1 -, nativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name -, propagatedNativeBuildInputs ? [] # -1 -> 0 N.B. Legacy name -, depsBuildTarget ? [] # -1 -> 1 -, depsBuildTargetPropagated ? [] # -1 -> 1 + depsHostHost ? [ ], # 0 -> 0 + depsHostHostPropagated ? [ ], # 0 -> 0 + buildInputs ? [ ], # 0 -> 1 N.B. Legacy name + propagatedBuildInputs ? [ ], # 0 -> 1 N.B. Legacy name -, depsHostHost ? [] # 0 -> 0 -, depsHostHostPropagated ? [] # 0 -> 0 -, buildInputs ? [] # 0 -> 1 N.B. Legacy name -, propagatedBuildInputs ? [] # 0 -> 1 N.B. Legacy name + depsTargetTarget ? [ ], # 1 -> 1 + depsTargetTargetPropagated ? [ ], # 1 -> 1 -, depsTargetTarget ? [] # 1 -> 1 -, depsTargetTargetPropagated ? [] # 1 -> 1 + checkInputs ? [ ], + installCheckInputs ? [ ], + nativeCheckInputs ? [ ], + nativeInstallCheckInputs ? [ ], -, checkInputs ? [] -, installCheckInputs ? [] -, nativeCheckInputs ? [] -, nativeInstallCheckInputs ? [] + # Configure Phase + configureFlags ? [ ], + # Target is not included by default because most programs don't care. + # Including it then would cause needless mass rebuilds. + # + # TODO(@Ericson2314): Make [ "build" "host" ] always the default / resolve #87909 + configurePlatforms ? + optionals (stdenv.hostPlatform != stdenv.buildPlatform || config.configurePlatformsByDefault) + [ + "build" + "host" + ], -# Configure Phase -, configureFlags ? [] -, # Target is not included by default because most programs don't care. - # Including it then would cause needless mass rebuilds. - # - # TODO(@Ericson2314): Make [ "build" "host" ] always the default / resolve #87909 - configurePlatforms ? optionals - (stdenv.hostPlatform != stdenv.buildPlatform || config.configurePlatformsByDefault) - [ "build" "host" ] + # TODO(@Ericson2314): Make unconditional / resolve #33599 + # Check phase + doCheck ? config.doCheckByDefault or false, -# TODO(@Ericson2314): Make unconditional / resolve #33599 -# Check phase -, doCheck ? config.doCheckByDefault or false + # TODO(@Ericson2314): Make unconditional / resolve #33599 + # InstallCheck phase + doInstallCheck ? config.doCheckByDefault or false, -# TODO(@Ericson2314): Make unconditional / resolve #33599 -# InstallCheck phase -, doInstallCheck ? config.doCheckByDefault or false + # TODO(@Ericson2314): Make always true and remove / resolve #178468 + strictDeps ? + if config.strictDepsByDefault then true else stdenv.hostPlatform != stdenv.buildPlatform, -, # TODO(@Ericson2314): Make always true and remove / resolve #178468 - strictDeps ? if config.strictDepsByDefault then true else stdenv.hostPlatform != stdenv.buildPlatform + enableParallelBuilding ? config.enableParallelBuildingByDefault, -, enableParallelBuilding ? config.enableParallelBuildingByDefault + separateDebugInfo ? false, + outputs ? [ "out" ], + __darwinAllowLocalNetworking ? false, + __impureHostDeps ? [ ], + __propagatedImpureHostDeps ? [ ], + sandboxProfile ? "", + propagatedSandboxProfile ? "", -, separateDebugInfo ? false -, outputs ? [ "out" ] -, __darwinAllowLocalNetworking ? false -, __impureHostDeps ? [] -, __propagatedImpureHostDeps ? [] -, sandboxProfile ? "" -, propagatedSandboxProfile ? "" + hardeningEnable ? [ ], + hardeningDisable ? [ ], -, hardeningEnable ? [] -, hardeningDisable ? [] + patches ? [ ], -, patches ? [] + __contentAddressed ? + (!attrs ? outputHash) # Fixed-output drvs can't be content addressed too + && config.contentAddressedByDefault, -, __contentAddressed ? - (! attrs ? outputHash) # Fixed-output drvs can't be content addressed too - && config.contentAddressedByDefault + # Experimental. For simple packages mostly just works, + # but for anything complex, be prepared to debug if enabling. + __structuredAttrs ? config.structuredAttrsByDefault or false, -# Experimental. For simple packages mostly just works, -# but for anything complex, be prepared to debug if enabling. -, __structuredAttrs ? config.structuredAttrsByDefault or false + ... + }@attrs: -, ... } @ attrs: - -# Policy on acceptable hash types in nixpkgs -assert attrs ? outputHash -> ( - let algo = - attrs.outputHashAlgo or (head (splitString "-" attrs.outputHash)); - in - if algo == "md5" then - throw "Rejected insecure ${algo} hash '${attrs.outputHash}'" - else - true -); - -let - # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when - # no package has `doCheck = true`. - doCheck' = doCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform; - doInstallCheck' = doInstallCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform; - - separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux; - outputs' = outputs ++ optional separateDebugInfo' "debug"; - - noNonNativeDeps = builtins.length (depsBuildTarget ++ depsBuildTargetPropagated - ++ depsHostHost ++ depsHostHostPropagated - ++ buildInputs ++ propagatedBuildInputs - ++ depsTargetTarget ++ depsTargetTargetPropagated) == 0; - dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC; - - hardeningDisable' = if any (x: x == "fortify") hardeningDisable - # disabling fortify implies fortify3 should also be disabled - then unique (hardeningDisable ++ [ "fortify3" ]) - else hardeningDisable; - defaultHardeningFlags = - (if stdenv.hasCC then stdenv.cc else {}).defaultHardeningFlags or - # fallback safe-ish set of flags - (remove "pie" knownHardeningFlags); - enabledHardeningOptions = - if builtins.elem "all" hardeningDisable' - then [] - else subtractLists hardeningDisable' (defaultHardeningFlags ++ hardeningEnable); - # hardeningDisable additionally supports "all". - erroneousHardeningFlags = subtractLists knownHardeningFlags (hardeningEnable ++ remove "all" hardeningDisable); - - checkDependencyList = checkDependencyList' []; - checkDependencyList' = positions: name: deps: - imap1 - (index: dep: - if isDerivation dep || dep == null || builtins.isString dep || builtins.isPath dep then dep - else if isList dep then checkDependencyList' ([index] ++ positions) name dep - else throw "Dependency is not of a valid type: ${concatMapStrings (ix: "element ${toString ix} of ") ([index] ++ positions)}${name} for ${attrs.name or attrs.pname}") - deps; -in if builtins.length erroneousHardeningFlags != 0 -then abort ("mkDerivation was called with unsupported hardening flags: " + lib.generators.toPretty {} { - inherit erroneousHardeningFlags hardeningDisable hardeningEnable knownHardeningFlags; -}) -else let - doCheck = doCheck'; - doInstallCheck = doInstallCheck'; - buildInputs' = buildInputs - ++ optionals doCheck checkInputs - ++ optionals doInstallCheck installCheckInputs; - nativeBuildInputs' = nativeBuildInputs - ++ optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh - ++ optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh - ++ optionals doCheck nativeCheckInputs - ++ optionals doInstallCheck nativeInstallCheckInputs; - - outputs = outputs'; - - dependencies = [ - [ - (map (drv: getDev drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuild" depsBuildBuild)) - (map (drv: getDev drv.__spliced.buildHost or drv) (checkDependencyList "nativeBuildInputs" nativeBuildInputs')) - (map (drv: getDev drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTarget" depsBuildTarget)) - ] - [ - (map (drv: getDev drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost)) - (map (drv: getDev drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs')) - ] - [ - (map (drv: getDev drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTarget" depsTargetTarget)) - ] - ]; - propagatedDependencies = [ - [ - (map (drv: getDev drv.__spliced.buildBuild or drv) (checkDependencyList "depsBuildBuildPropagated" depsBuildBuildPropagated)) - (map (drv: getDev drv.__spliced.buildHost or drv) (checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs)) - (map (drv: getDev drv.__spliced.buildTarget or drv) (checkDependencyList "depsBuildTargetPropagated" depsBuildTargetPropagated)) - ] - [ - (map (drv: getDev drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHostPropagated" depsHostHostPropagated)) - (map (drv: getDev drv.__spliced.hostTarget or drv) (checkDependencyList "propagatedBuildInputs" propagatedBuildInputs)) - ] - [ - (map (drv: getDev drv.__spliced.targetTarget or drv) (checkDependencyList "depsTargetTargetPropagated" depsTargetTargetPropagated)) - ] - ]; - - derivationArg = - removeAttrs attrs removedOrReplacedAttrNames - // (optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) { - name = + # Policy on acceptable hash types in nixpkgs + assert + attrs ? outputHash + -> ( let - # Indicate the host platform of the derivation if cross compiling. - # Fixed-output derivations like source tarballs shouldn't get a host - # suffix. But we have some weird ones with run-time deps that are - # just used for their side-affects. Those might as well since the - # hash can't be the same. See #32986. - hostSuffix = optionalString - (stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix) - "-${stdenv.hostPlatform.config}"; - - # Disambiguate statically built packages. This was originally - # introduce as a means to prevent nix-env to get confused between - # nix and nixStatic. This should be also achieved by moving the - # hostSuffix before the version, so we could contemplate removing - # it again. - staticMarker = optionalString stdenv.hostPlatform.isStatic "-static"; + algo = attrs.outputHashAlgo or (head (splitString "-" attrs.outputHash)); in - lib.strings.sanitizeDerivationName ( - if attrs ? name - then attrs.name + hostSuffix - else - # we cannot coerce null to a string below - assert assertMsg (attrs ? version && attrs.version != null) "The ‘version’ attribute cannot be null."; - "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}" - ); - }) // { - builder = attrs.realBuilder or stdenv.shell; - args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)]; - inherit stdenv; + if algo == "md5" then throw "Rejected insecure ${algo} hash '${attrs.outputHash}'" else true + ); - # The `system` attribute of a derivation has special meaning to Nix. - # Derivations set it to choose what sort of machine could be used to - # execute the build, The build platform entirely determines this, - # indeed more finely than Nix knows or cares about. The `system` - # attribute of `buildPlatfom` matches Nix's degree of specificity. - # exactly. - inherit (stdenv.buildPlatform) system; - - userHook = config.stdenv.userHook or null; - __ignoreNulls = true; - inherit __structuredAttrs strictDeps; - - depsBuildBuild = elemAt (elemAt dependencies 0) 0; - nativeBuildInputs = elemAt (elemAt dependencies 0) 1; - depsBuildTarget = elemAt (elemAt dependencies 0) 2; - depsHostHost = elemAt (elemAt dependencies 1) 0; - buildInputs = elemAt (elemAt dependencies 1) 1; - depsTargetTarget = elemAt (elemAt dependencies 2) 0; - - depsBuildBuildPropagated = elemAt (elemAt propagatedDependencies 0) 0; - propagatedNativeBuildInputs = elemAt (elemAt propagatedDependencies 0) 1; - depsBuildTargetPropagated = elemAt (elemAt propagatedDependencies 0) 2; - depsHostHostPropagated = elemAt (elemAt propagatedDependencies 1) 0; - propagatedBuildInputs = elemAt (elemAt propagatedDependencies 1) 1; - depsTargetTargetPropagated = elemAt (elemAt propagatedDependencies 2) 0; - - # This parameter is sometimes a string, sometimes null, and sometimes a list, yuck - configureFlags = - configureFlags - ++ optional (elem "build" configurePlatforms) "--build=${stdenv.buildPlatform.config}" - ++ optional (elem "host" configurePlatforms) "--host=${stdenv.hostPlatform.config}" - ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}"; - - inherit patches; - - inherit doCheck doInstallCheck; - - inherit outputs; - } // optionalAttrs (__contentAddressed) { - inherit __contentAddressed; - # Provide default values for outputHashMode and outputHashAlgo because - # most people won't care about these anyways - outputHashAlgo = attrs.outputHashAlgo or "sha256"; - outputHashMode = attrs.outputHashMode or "recursive"; - } // optionalAttrs (enableParallelBuilding) { - inherit enableParallelBuilding; - enableParallelChecking = attrs.enableParallelChecking or true; - enableParallelInstalling = attrs.enableParallelInstalling or true; - } // optionalAttrs (hardeningDisable != [] || hardeningEnable != [] || stdenv.hostPlatform.isMusl) { - NIX_HARDENING_ENABLE = enabledHardeningOptions; - } // optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? gcc.arch) { - requiredSystemFeatures = attrs.requiredSystemFeatures or [] ++ [ "gccarch-${stdenv.hostPlatform.gcc.arch}" ]; - } // optionalAttrs (stdenv.buildPlatform.isDarwin) ( - let - computedSandboxProfile = - concatMap (input: input.__propagatedSandboxProfile or []) - (stdenv.extraNativeBuildInputs - ++ stdenv.extraBuildInputs - ++ concatLists dependencies); - - computedPropagatedSandboxProfile = - concatMap (input: input.__propagatedSandboxProfile or []) - (concatLists propagatedDependencies); - - computedImpureHostDeps = - unique (concatMap (input: input.__propagatedImpureHostDeps or []) - (stdenv.extraNativeBuildInputs - ++ stdenv.extraBuildInputs - ++ concatLists dependencies)); - - computedPropagatedImpureHostDeps = - unique (concatMap (input: input.__propagatedImpureHostDeps or []) - (concatLists propagatedDependencies)); - in { - inherit __darwinAllowLocalNetworking; - # TODO: remove `unique` once nix has a list canonicalization primitive - __sandboxProfile = - let profiles = [ stdenv.extraSandboxProfile ] ++ computedSandboxProfile ++ computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile sandboxProfile ]; - final = concatStringsSep "\n" (filter (x: x != "") (unique profiles)); - in final; - __propagatedSandboxProfile = unique (computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile ]); - __impureHostDeps = computedImpureHostDeps ++ computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps ++ __impureHostDeps ++ stdenv.__extraImpureHostDeps ++ [ - "/dev/zero" - "/dev/random" - "/dev/urandom" - "/bin/sh" - ]; - __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps; - }) // - # If we use derivations directly here, they end up as build-time dependencies. - # This is especially problematic in the case of disallowed*, since the disallowed - # derivations will be built by nix as build-time dependencies, while those - # derivations might take a very long time to build, or might not even build - # successfully on the platform used. - # We can improve on this situation by instead passing only the outPath, - # without an attached string context, to nix. The out path will be a placeholder - # which will be replaced by the actual out path if the derivation in question - # is part of the final closure (and thus needs to be built). If it is not - # part of the final closure, then the placeholder will be passed along, - # but in that case we know for a fact that the derivation is not part of the closure. - # This means that passing the out path to nix does the right thing in either - # case, both for disallowed and allowed references/requisites, and we won't - # build the derivation if it wouldn't be part of the closure, saving time and resources. - # While the problem is less severe for allowed*, since we want the derivation - # to be built eventually, we would still like to get the error early and without - # having to wait while nix builds a derivation that might not be used. - # See also https://github.com/NixOS/nix/issues/4629 - optionalAttrs (attrs ? disallowedReferences) { - disallowedReferences = - map unsafeDerivationToUntrackedOutpath attrs.disallowedReferences; - } // - optionalAttrs (attrs ? disallowedRequisites) { - disallowedRequisites = - map unsafeDerivationToUntrackedOutpath attrs.disallowedRequisites; - } // - optionalAttrs (attrs ? allowedReferences) { - allowedReferences = - mapNullable unsafeDerivationToUntrackedOutpath attrs.allowedReferences; - } // - optionalAttrs (attrs ? allowedRequisites) { - allowedRequisites = - mapNullable unsafeDerivationToUntrackedOutpath attrs.allowedRequisites; - }; - -in - derivationArg; - -mkDerivationSimple = overrideAttrs: - -# `mkDerivation` wraps the builtin `derivation` function to -# produce derivations that use this stdenv and its shell. -# -# Internally, it delegates most of its behavior to `makeDerivationArgument`, -# except for the `env`, `cmakeFlags`, and `mesonFlags` attributes, as well -# as the attributes `meta` and `passthru` that affect [package attributes], -# and not the derivation itself. -# -# See also: -# -# * https://nixos.org/nixpkgs/manual/#sec-using-stdenv -# Details on how to use this mkDerivation function -# -# * https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations -# Explanation about derivations in general -# -# * [package attributes]: https://nixos.org/manual/nix/stable/glossary#package-attribute-set -{ - -# Configure Phase - cmakeFlags ? [] -, mesonFlags ? [] - -, meta ? {} -, passthru ? {} -, pos ? # position used in error messages and for meta.position - (if attrs.meta.description or null != null - then builtins.unsafeGetAttrPos "description" attrs.meta - else if attrs.version or null != null - then builtins.unsafeGetAttrPos "version" attrs - else builtins.unsafeGetAttrPos "name" attrs) - -# Experimental. For simple packages mostly just works, -# but for anything complex, be prepared to debug if enabling. -, __structuredAttrs ? config.structuredAttrsByDefault or false - -, env ? { } - -, ... } @ attrs: - -# Policy on acceptable hash types in nixpkgs -assert attrs ? outputHash -> ( - let algo = - attrs.outputHashAlgo or (head (splitString "-" attrs.outputHash)); - in - if algo == "md5" then - throw "Rejected insecure ${algo} hash '${attrs.outputHash}'" - else - true -); - -let - envIsExportable = isAttrs env && !isDerivation env; - - derivationArg = makeDerivationArgument - (removeAttrs - attrs - (["meta" "passthru" "pos"] - ++ optional (__structuredAttrs || envIsExportable) "env" - ) - // optionalAttrs __structuredAttrs { env = checkedEnv; } - // { - cmakeFlags = makeCMakeFlags attrs; - mesonFlags = makeMesonFlags attrs; - }); - - meta = checkMeta.commonMeta { - inherit validity attrs pos; - references = attrs.nativeBuildInputs or [] ++ attrs.buildInputs or [] - ++ attrs.propagatedNativeBuildInputs or [] ++ attrs.propagatedBuildInputs or []; - }; - validity = checkMeta.assertValidity { inherit meta attrs; }; - - checkedEnv = let - overlappingNames = attrNames (builtins.intersectAttrs env derivationArg); + # TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when + # no package has `doCheck = true`. + doCheck' = doCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform; + doInstallCheck' = doInstallCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform; + + separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux; + outputs' = outputs ++ optional separateDebugInfo' "debug"; + + noNonNativeDeps = + builtins.length ( + depsBuildTarget + ++ depsBuildTargetPropagated + ++ depsHostHost + ++ depsHostHostPropagated + ++ buildInputs + ++ propagatedBuildInputs + ++ depsTargetTarget + ++ depsTargetTargetPropagated + ) == 0; + dontAddHostSuffix = attrs ? outputHash && !noNonNativeDeps || !stdenv.hasCC; + + hardeningDisable' = + if + any (x: x == "fortify") hardeningDisable + # disabling fortify implies fortify3 should also be disabled + then + unique (hardeningDisable ++ [ "fortify3" ]) + else + hardeningDisable; + defaultHardeningFlags = + (if stdenv.hasCC then stdenv.cc else { }).defaultHardeningFlags or + # fallback safe-ish set of flags + (remove "pie" knownHardeningFlags); + enabledHardeningOptions = + if builtins.elem "all" hardeningDisable' then + [ ] + else + subtractLists hardeningDisable' (defaultHardeningFlags ++ hardeningEnable); + # hardeningDisable additionally supports "all". + erroneousHardeningFlags = subtractLists knownHardeningFlags ( + hardeningEnable ++ remove "all" hardeningDisable + ); + + checkDependencyList = checkDependencyList' [ ]; + checkDependencyList' = + positions: name: deps: + imap1 ( + index: dep: + if isDerivation dep || dep == null || builtins.isString dep || builtins.isPath dep then + dep + else if isList dep then + checkDependencyList' ([ index ] ++ positions) name dep + else + throw "Dependency is not of a valid type: ${ + concatMapStrings (ix: "element ${toString ix} of ") ([ index ] ++ positions) + }${name} for ${attrs.name or attrs.pname}" + ) deps; in - assert assertMsg envIsExportable - "When using structured attributes, `env` must be an attribute set of environment variables."; - assert assertMsg (overlappingNames == [ ]) - "The ‘env’ attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping: ${concatStringsSep ", " overlappingNames}"; - mapAttrs - (n: v: assert assertMsg (isString v || isBool v || isInt v || isDerivation v) - "The ‘env’ attribute set can only contain derivation, string, boolean or integer attributes. The ‘${n}’ attribute is of type ${builtins.typeOf v}."; v) - env; + if builtins.length erroneousHardeningFlags != 0 then + abort ( + "mkDerivation was called with unsupported hardening flags: " + + lib.generators.toPretty { } { + inherit + erroneousHardeningFlags + hardeningDisable + hardeningEnable + knownHardeningFlags + ; + } + ) + else + let + doCheck = doCheck'; + doInstallCheck = doInstallCheck'; + buildInputs' = + buildInputs ++ optionals doCheck checkInputs ++ optionals doInstallCheck installCheckInputs; + nativeBuildInputs' = + nativeBuildInputs + ++ optional separateDebugInfo' ../../build-support/setup-hooks/separate-debug-info.sh + ++ optional stdenv.hostPlatform.isWindows ../../build-support/setup-hooks/win-dll-link.sh + ++ optionals doCheck nativeCheckInputs + ++ optionals doInstallCheck nativeInstallCheckInputs; - # Fixed-output derivations may not reference other paths, which means that - # for a fixed-output derivation, the corresponding inputDerivation should - # *not* be fixed-output. To achieve this we simply delete the attributes that - # would make it fixed-output. - deleteFixedOutputRelatedAttrs = lib.flip builtins.removeAttrs [ "outputHashAlgo" "outputHash" "outputHashMode" ]; + outputs = outputs'; -in + dependencies = [ + [ + (map (drv: getDev drv.__spliced.buildBuild or drv) ( + checkDependencyList "depsBuildBuild" depsBuildBuild + )) + (map (drv: getDev drv.__spliced.buildHost or drv) ( + checkDependencyList "nativeBuildInputs" nativeBuildInputs' + )) + (map (drv: getDev drv.__spliced.buildTarget or drv) ( + checkDependencyList "depsBuildTarget" depsBuildTarget + )) + ] + [ + (map (drv: getDev drv.__spliced.hostHost or drv) (checkDependencyList "depsHostHost" depsHostHost)) + (map (drv: getDev drv.__spliced.hostTarget or drv) (checkDependencyList "buildInputs" buildInputs')) + ] + [ + (map (drv: getDev drv.__spliced.targetTarget or drv) ( + checkDependencyList "depsTargetTarget" depsTargetTarget + )) + ] + ]; + propagatedDependencies = [ + [ + (map (drv: getDev drv.__spliced.buildBuild or drv) ( + checkDependencyList "depsBuildBuildPropagated" depsBuildBuildPropagated + )) + (map (drv: getDev drv.__spliced.buildHost or drv) ( + checkDependencyList "propagatedNativeBuildInputs" propagatedNativeBuildInputs + )) + (map (drv: getDev drv.__spliced.buildTarget or drv) ( + checkDependencyList "depsBuildTargetPropagated" depsBuildTargetPropagated + )) + ] + [ + (map (drv: getDev drv.__spliced.hostHost or drv) ( + checkDependencyList "depsHostHostPropagated" depsHostHostPropagated + )) + (map (drv: getDev drv.__spliced.hostTarget or drv) ( + checkDependencyList "propagatedBuildInputs" propagatedBuildInputs + )) + ] + [ + (map (drv: getDev drv.__spliced.targetTarget or drv) ( + checkDependencyList "depsTargetTargetPropagated" depsTargetTargetPropagated + )) + ] + ]; -extendDerivation - validity.handled - ({ - # A derivation that always builds successfully and whose runtime - # dependencies are the original derivations build time dependencies - # This allows easy building and distributing of all derivations - # needed to enter a nix-shell with - # nix-build shell.nix -A inputDerivation - inputDerivation = derivation (deleteFixedOutputRelatedAttrs derivationArg // { - # Add a name in case the original drv didn't have one - name = derivationArg.name or "inputDerivation"; - # This always only has one output - outputs = [ "out" ]; + derivationArg = + removeAttrs attrs removedOrReplacedAttrNames + // (optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) { + name = + let + # Indicate the host platform of the derivation if cross compiling. + # Fixed-output derivations like source tarballs shouldn't get a host + # suffix. But we have some weird ones with run-time deps that are + # just used for their side-affects. Those might as well since the + # hash can't be the same. See #32986. + hostSuffix = optionalString ( + stdenv.hostPlatform != stdenv.buildPlatform && !dontAddHostSuffix + ) "-${stdenv.hostPlatform.config}"; - # Propagate the original builder and arguments, since we override - # them and they might contain references to build inputs - _derivation_original_builder = derivationArg.builder; - _derivation_original_args = derivationArg.args; + # Disambiguate statically built packages. This was originally + # introduce as a means to prevent nix-env to get confused between + # nix and nixStatic. This should be also achieved by moving the + # hostSuffix before the version, so we could contemplate removing + # it again. + staticMarker = optionalString stdenv.hostPlatform.isStatic "-static"; + in + lib.strings.sanitizeDerivationName ( + if attrs ? name then + attrs.name + hostSuffix + else + # we cannot coerce null to a string below + assert assertMsg ( + attrs ? version && attrs.version != null + ) "The ‘version’ attribute cannot be null."; + "${attrs.pname}${staticMarker}${hostSuffix}-${attrs.version}" + ); + }) + // { + builder = attrs.realBuilder or stdenv.shell; + args = + attrs.args or [ + "-e" + (attrs.builder or ./default-builder.sh) + ]; + inherit stdenv; - builder = stdenv.shell; - # The bash builtin `export` dumps all current environment variables, - # which is where all build input references end up (e.g. $PATH for - # binaries). By writing this to $out, Nix can find and register - # them as runtime dependencies (since Nix greps for store paths - # through $out to find them) - args = [ "-c" '' - export > $out - for var in $passAsFile; do - pathVar="''${var}Path" - printf "%s" "$(< "''${!pathVar}")" >> $out - done - '' ]; + # The `system` attribute of a derivation has special meaning to Nix. + # Derivations set it to choose what sort of machine could be used to + # execute the build, The build platform entirely determines this, + # indeed more finely than Nix knows or cares about. The `system` + # attribute of `buildPlatfom` matches Nix's degree of specificity. + # exactly. + inherit (stdenv.buildPlatform) system; - # inputDerivation produces the inputs; not the outputs, so any - # restrictions on what used to be the outputs don't serve a purpose - # anymore. - allowedReferences = null; - allowedRequisites = null; - disallowedReferences = [ ]; - disallowedRequisites = [ ]; - }); + userHook = config.stdenv.userHook or null; + __ignoreNulls = true; + inherit __structuredAttrs strictDeps; - inherit passthru overrideAttrs; - inherit meta; - } // - # Pass through extra attributes that are not inputs, but - # should be made available to Nix expressions using the - # derivation (e.g., in assertions). - passthru) - (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv)); + depsBuildBuild = elemAt (elemAt dependencies 0) 0; + nativeBuildInputs = elemAt (elemAt dependencies 0) 1; + depsBuildTarget = elemAt (elemAt dependencies 0) 2; + depsHostHost = elemAt (elemAt dependencies 1) 0; + buildInputs = elemAt (elemAt dependencies 1) 1; + depsTargetTarget = elemAt (elemAt dependencies 2) 0; + + depsBuildBuildPropagated = elemAt (elemAt propagatedDependencies 0) 0; + propagatedNativeBuildInputs = elemAt (elemAt propagatedDependencies 0) 1; + depsBuildTargetPropagated = elemAt (elemAt propagatedDependencies 0) 2; + depsHostHostPropagated = elemAt (elemAt propagatedDependencies 1) 0; + propagatedBuildInputs = elemAt (elemAt propagatedDependencies 1) 1; + depsTargetTargetPropagated = elemAt (elemAt propagatedDependencies 2) 0; + + # This parameter is sometimes a string, sometimes null, and sometimes a list, yuck + configureFlags = + configureFlags + ++ optional (elem "build" configurePlatforms) "--build=${stdenv.buildPlatform.config}" + ++ optional (elem "host" configurePlatforms) "--host=${stdenv.hostPlatform.config}" + ++ optional (elem "target" configurePlatforms) "--target=${stdenv.targetPlatform.config}"; + + inherit patches; + + inherit doCheck doInstallCheck; + + inherit outputs; + } + // optionalAttrs (__contentAddressed) { + inherit __contentAddressed; + # Provide default values for outputHashMode and outputHashAlgo because + # most people won't care about these anyways + outputHashAlgo = attrs.outputHashAlgo or "sha256"; + outputHashMode = attrs.outputHashMode or "recursive"; + } + // optionalAttrs (enableParallelBuilding) { + inherit enableParallelBuilding; + enableParallelChecking = attrs.enableParallelChecking or true; + enableParallelInstalling = attrs.enableParallelInstalling or true; + } + // optionalAttrs (hardeningDisable != [ ] || hardeningEnable != [ ] || stdenv.hostPlatform.isMusl) { + NIX_HARDENING_ENABLE = enabledHardeningOptions; + } + // optionalAttrs (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform ? gcc.arch) { + requiredSystemFeatures = attrs.requiredSystemFeatures or [ ] ++ [ + "gccarch-${stdenv.hostPlatform.gcc.arch}" + ]; + } + // optionalAttrs (stdenv.buildPlatform.isDarwin) ( + let + computedSandboxProfile = concatMap (input: input.__propagatedSandboxProfile or [ ]) ( + stdenv.extraNativeBuildInputs ++ stdenv.extraBuildInputs ++ concatLists dependencies + ); + + computedPropagatedSandboxProfile = concatMap (input: input.__propagatedSandboxProfile or [ ]) ( + concatLists propagatedDependencies + ); + + computedImpureHostDeps = unique ( + concatMap (input: input.__propagatedImpureHostDeps or [ ]) ( + stdenv.extraNativeBuildInputs ++ stdenv.extraBuildInputs ++ concatLists dependencies + ) + ); + + computedPropagatedImpureHostDeps = unique ( + concatMap (input: input.__propagatedImpureHostDeps or [ ]) (concatLists propagatedDependencies) + ); + in + { + inherit __darwinAllowLocalNetworking; + # TODO: remove `unique` once nix has a list canonicalization primitive + __sandboxProfile = + let + profiles = + [ stdenv.extraSandboxProfile ] + ++ computedSandboxProfile + ++ computedPropagatedSandboxProfile + ++ [ + propagatedSandboxProfile + sandboxProfile + ]; + final = concatStringsSep "\n" (filter (x: x != "") (unique profiles)); + in + final; + __propagatedSandboxProfile = unique ( + computedPropagatedSandboxProfile ++ [ propagatedSandboxProfile ] + ); + __impureHostDeps = + computedImpureHostDeps + ++ computedPropagatedImpureHostDeps + ++ __propagatedImpureHostDeps + ++ __impureHostDeps + ++ stdenv.__extraImpureHostDeps + ++ [ + "/dev/zero" + "/dev/random" + "/dev/urandom" + "/bin/sh" + ]; + __propagatedImpureHostDeps = computedPropagatedImpureHostDeps ++ __propagatedImpureHostDeps; + } + ) + // + # If we use derivations directly here, they end up as build-time dependencies. + # This is especially problematic in the case of disallowed*, since the disallowed + # derivations will be built by nix as build-time dependencies, while those + # derivations might take a very long time to build, or might not even build + # successfully on the platform used. + # We can improve on this situation by instead passing only the outPath, + # without an attached string context, to nix. The out path will be a placeholder + # which will be replaced by the actual out path if the derivation in question + # is part of the final closure (and thus needs to be built). If it is not + # part of the final closure, then the placeholder will be passed along, + # but in that case we know for a fact that the derivation is not part of the closure. + # This means that passing the out path to nix does the right thing in either + # case, both for disallowed and allowed references/requisites, and we won't + # build the derivation if it wouldn't be part of the closure, saving time and resources. + # While the problem is less severe for allowed*, since we want the derivation + # to be built eventually, we would still like to get the error early and without + # having to wait while nix builds a derivation that might not be used. + # See also https://github.com/NixOS/nix/issues/4629 + optionalAttrs (attrs ? disallowedReferences) { + disallowedReferences = map unsafeDerivationToUntrackedOutpath attrs.disallowedReferences; + } + // optionalAttrs (attrs ? disallowedRequisites) { + disallowedRequisites = map unsafeDerivationToUntrackedOutpath attrs.disallowedRequisites; + } + // optionalAttrs (attrs ? allowedReferences) { + allowedReferences = mapNullable unsafeDerivationToUntrackedOutpath attrs.allowedReferences; + } + // optionalAttrs (attrs ? allowedRequisites) { + allowedRequisites = mapNullable unsafeDerivationToUntrackedOutpath attrs.allowedRequisites; + }; + + in + derivationArg; + + mkDerivationSimple = + overrideAttrs: + + # `mkDerivation` wraps the builtin `derivation` function to + # produce derivations that use this stdenv and its shell. + # + # Internally, it delegates most of its behavior to `makeDerivationArgument`, + # except for the `env`, `cmakeFlags`, and `mesonFlags` attributes, as well + # as the attributes `meta` and `passthru` that affect [package attributes], + # and not the derivation itself. + # + # See also: + # + # * https://nixos.org/nixpkgs/manual/#sec-using-stdenv + # Details on how to use this mkDerivation function + # + # * https://nixos.org/manual/nix/stable/expressions/derivations.html#derivations + # Explanation about derivations in general + # + # * [package attributes]: https://nixos.org/manual/nix/stable/glossary#package-attribute-set + { + + # Configure Phase + cmakeFlags ? [ ], + mesonFlags ? [ ], + + meta ? { }, + passthru ? { }, + pos ? # position used in error messages and for meta.position + ( + if attrs.meta.description or null != null then + builtins.unsafeGetAttrPos "description" attrs.meta + else if attrs.version or null != null then + builtins.unsafeGetAttrPos "version" attrs + else + builtins.unsafeGetAttrPos "name" attrs + ), + + # Experimental. For simple packages mostly just works, + # but for anything complex, be prepared to debug if enabling. + __structuredAttrs ? config.structuredAttrsByDefault or false, + + env ? { }, + + ... + }@attrs: + + # Policy on acceptable hash types in nixpkgs + assert + attrs ? outputHash + -> ( + let + algo = attrs.outputHashAlgo or (head (splitString "-" attrs.outputHash)); + in + if algo == "md5" then throw "Rejected insecure ${algo} hash '${attrs.outputHash}'" else true + ); + + let + envIsExportable = isAttrs env && !isDerivation env; + + derivationArg = makeDerivationArgument ( + removeAttrs attrs ( + [ + "meta" + "passthru" + "pos" + ] + ++ optional (__structuredAttrs || envIsExportable) "env" + ) + // optionalAttrs __structuredAttrs { env = checkedEnv; } + // { + cmakeFlags = makeCMakeFlags attrs; + mesonFlags = makeMesonFlags attrs; + } + ); + + meta = checkMeta.commonMeta { + inherit validity attrs pos; + references = + attrs.nativeBuildInputs or [ ] + ++ attrs.buildInputs or [ ] + ++ attrs.propagatedNativeBuildInputs or [ ] + ++ attrs.propagatedBuildInputs or [ ]; + }; + validity = checkMeta.assertValidity { inherit meta attrs; }; + + checkedEnv = + let + overlappingNames = attrNames (builtins.intersectAttrs env derivationArg); + in + assert assertMsg envIsExportable + "When using structured attributes, `env` must be an attribute set of environment variables."; + assert assertMsg (overlappingNames == [ ]) + "The ‘env’ attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping: ${concatStringsSep ", " overlappingNames}"; + mapAttrs ( + n: v: + assert assertMsg (isString v || isBool v || isInt v || isDerivation v) + "The ‘env’ attribute set can only contain derivation, string, boolean or integer attributes. The ‘${n}’ attribute is of type ${builtins.typeOf v}."; + v + ) env; + + # Fixed-output derivations may not reference other paths, which means that + # for a fixed-output derivation, the corresponding inputDerivation should + # *not* be fixed-output. To achieve this we simply delete the attributes that + # would make it fixed-output. + deleteFixedOutputRelatedAttrs = lib.flip builtins.removeAttrs [ + "outputHashAlgo" + "outputHash" + "outputHashMode" + ]; + + in + + extendDerivation validity.handled ( + { + # A derivation that always builds successfully and whose runtime + # dependencies are the original derivations build time dependencies + # This allows easy building and distributing of all derivations + # needed to enter a nix-shell with + # nix-build shell.nix -A inputDerivation + inputDerivation = derivation ( + deleteFixedOutputRelatedAttrs derivationArg + // { + # Add a name in case the original drv didn't have one + name = derivationArg.name or "inputDerivation"; + # This always only has one output + outputs = [ "out" ]; + + # Propagate the original builder and arguments, since we override + # them and they might contain references to build inputs + _derivation_original_builder = derivationArg.builder; + _derivation_original_args = derivationArg.args; + + builder = stdenv.shell; + # The bash builtin `export` dumps all current environment variables, + # which is where all build input references end up (e.g. $PATH for + # binaries). By writing this to $out, Nix can find and register + # them as runtime dependencies (since Nix greps for store paths + # through $out to find them) + args = [ + "-c" + '' + export > $out + for var in $passAsFile; do + pathVar="''${var}Path" + printf "%s" "$(< "''${!pathVar}")" >> $out + done + '' + ]; + + # inputDerivation produces the inputs; not the outputs, so any + # restrictions on what used to be the outputs don't serve a purpose + # anymore. + allowedReferences = null; + allowedRequisites = null; + disallowedReferences = [ ]; + disallowedRequisites = [ ]; + } + ); + + inherit passthru overrideAttrs; + inherit meta; + } + // + # Pass through extra attributes that are not inputs, but + # should be made available to Nix expressions using the + # derivation (e.g., in assertions). + passthru + ) (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv)); in { diff --git a/pkgs/stdenv/generic/meta-types.nix b/pkgs/stdenv/generic/meta-types.nix index ddbd1da..a51ae2b 100644 --- a/pkgs/stdenv/generic/meta-types.nix +++ b/pkgs/stdenv/generic/meta-types.nix @@ -5,7 +5,19 @@ # TODO: add a method to the module system types # see https://github.com/NixOS/nixpkgs/pull/273935#issuecomment-1854173100 let - inherit (builtins) isString isInt isAttrs isList all any attrValues isFunction isBool concatStringsSep isFloat; + inherit (builtins) + isString + isInt + isAttrs + isList + all + any + attrValues + isFunction + isBool + concatStringsSep + isFloat + ; isTypeDef = t: isAttrs t && t ? name && isString t.name && t ? verify && isFunction t.verify; in @@ -14,7 +26,7 @@ lib.fix (self: { name = "string"; verify = isString; }; - str = self.string; # Type alias + str = self.string; # Type alias any = { name = "any"; @@ -46,31 +58,41 @@ lib.fix (self: { verify = isList; }; - attrsOf = t: assert isTypeDef t; let - inherit (t) verify; - in { - name = "attrsOf<${t.name}>"; - verify = - # attrsOf can be optimised to just isAttrs - if t == self.any then isAttrs - else attrs: isAttrs attrs && all verify (attrValues attrs); - }; + attrsOf = + t: + assert isTypeDef t; + let + inherit (t) verify; + in + { + name = "attrsOf<${t.name}>"; + verify = + # attrsOf can be optimised to just isAttrs + if t == self.any then isAttrs else attrs: isAttrs attrs && all verify (attrValues attrs); + }; - listOf = t: assert isTypeDef t; let - inherit (t) verify; - in { - name = "listOf<${t.name}>"; - verify = - # listOf can be optimised to just isList - if t == self.any then isList - else v: isList v && all verify v; - }; + listOf = + t: + assert isTypeDef t; + let + inherit (t) verify; + in + { + name = "listOf<${t.name}>"; + verify = + # listOf can be optimised to just isList + if t == self.any then isList else v: isList v && all verify v; + }; - union = types: assert all isTypeDef types; let - # Store a list of functions so we don't have to pay the cost of attrset lookups at runtime. - funcs = map (t: t.verify) types; - in { - name = "union<${concatStringsSep "," (map (t: t.name) types)}>"; - verify = v: any (func: func v) funcs; - }; + union = + types: + assert all isTypeDef types; + let + # Store a list of functions so we don't have to pay the cost of attrset lookups at runtime. + funcs = map (t: t.verify) types; + in + { + name = "union<${concatStringsSep "," (map (t: t.name) types)}>"; + verify = v: any (func: func v) funcs; + }; }) diff --git a/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix b/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix index 452a247..a72ab78 100644 --- a/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix +++ b/pkgs/stdenv/linux/bootstrap-files/mips64el-unknown-linux-gnuabi64.nix @@ -18,7 +18,7 @@ sha256 = "sha256-sTE58ofjqAqX3Xtq1g9wDxzIe6Vo//GHbicfqJoivDI="; executable = true; }; - bootstrapTools =import { + bootstrapTools = import { url = "http://tarballs.nixos.org/stdenv-linux/mips64el/ef3fe254f3c59455386bc92fe84164f9679b92b1/bootstrap-tools.tar.xz"; sha256 = "sha256-tTgjeXpd2YgnfP4JvRuO0bXd2j8GqzBcd57JI3wH9x0="; }; diff --git a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix b/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix index 6d2490a..98f6d7c 100644 --- a/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix +++ b/pkgs/stdenv/linux/bootstrap-tools-musl/default.nix @@ -1,19 +1,34 @@ -{ system, bootstrapFiles, extraAttrs }: +{ + system, + bootstrapFiles, + extraAttrs, +}: -derivation ({ - name = "bootstrap-tools"; +derivation ( + { + name = "bootstrap-tools"; - builder = bootstrapFiles.busybox; + builder = bootstrapFiles.busybox; - args = [ "ash" "-e" ./scripts/unpack-bootstrap-tools.sh ]; + args = [ + "ash" + "-e" + ./scripts/unpack-bootstrap-tools.sh + ]; - tarball = bootstrapFiles.bootstrapTools; + tarball = bootstrapFiles.bootstrapTools; - inherit system; + inherit system; - # Needed by the GCC wrapper. - langC = true; - langCC = true; - isGNU = true; - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" "trivialautovarinit" ]; -} // extraAttrs) + # Needed by the GCC wrapper. + langC = true; + langCC = true; + isGNU = true; + hardeningUnsupportedFlags = [ + "fortify3" + "zerocallusedregs" + "trivialautovarinit" + ]; + } + // extraAttrs +) diff --git a/pkgs/stdenv/linux/bootstrap-tools/default.nix b/pkgs/stdenv/linux/bootstrap-tools/default.nix index 6d2490a..98f6d7c 100644 --- a/pkgs/stdenv/linux/bootstrap-tools/default.nix +++ b/pkgs/stdenv/linux/bootstrap-tools/default.nix @@ -1,19 +1,34 @@ -{ system, bootstrapFiles, extraAttrs }: +{ + system, + bootstrapFiles, + extraAttrs, +}: -derivation ({ - name = "bootstrap-tools"; +derivation ( + { + name = "bootstrap-tools"; - builder = bootstrapFiles.busybox; + builder = bootstrapFiles.busybox; - args = [ "ash" "-e" ./scripts/unpack-bootstrap-tools.sh ]; + args = [ + "ash" + "-e" + ./scripts/unpack-bootstrap-tools.sh + ]; - tarball = bootstrapFiles.bootstrapTools; + tarball = bootstrapFiles.bootstrapTools; - inherit system; + inherit system; - # Needed by the GCC wrapper. - langC = true; - langCC = true; - isGNU = true; - hardeningUnsupportedFlags = [ "fortify3" "zerocallusedregs" "trivialautovarinit" ]; -} // extraAttrs) + # Needed by the GCC wrapper. + langC = true; + langCC = true; + isGNU = true; + hardeningUnsupportedFlags = [ + "fortify3" + "zerocallusedregs" + "trivialautovarinit" + ]; + } + // extraAttrs +) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index ec19b10..bcb9e0d 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -53,47 +53,65 @@ # For a TUI (rather than CLI) view, you can use: # # $ nix-tree --derivation $(nix-instantiate -A stdenv) -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], -, bootstrapFiles ? - let table = { - glibc = { - i686-linux = import ./bootstrap-files/i686-unknown-linux-gnu.nix; - x86_64-linux = import ./bootstrap-files/x86_64-unknown-linux-gnu.nix; - armv5tel-linux = import ./bootstrap-files/armv5tel-unknown-linux-gnueabi.nix; - armv6l-linux = import ./bootstrap-files/armv6l-unknown-linux-gnueabihf.nix; - armv7l-linux = import ./bootstrap-files/armv7l-unknown-linux-gnueabihf.nix; - aarch64-linux = import ./bootstrap-files/aarch64-unknown-linux-gnu.nix; - mipsel-linux = import ./bootstrap-files/mipsel-unknown-linux-gnu.nix; - mips64el-linux = import - (if localSystem.isMips64n32 - then ./bootstrap-files/mips64el-unknown-linux-gnuabin32.nix - else ./bootstrap-files/mips64el-unknown-linux-gnuabi64.nix); - powerpc64-linux = import ./bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix; - powerpc64le-linux = import ./bootstrap-files/powerpc64le-unknown-linux-gnu.nix; - riscv64-linux = import ./bootstrap-files/riscv64-unknown-linux-gnu.nix; - }; - musl = { - aarch64-linux = import ./bootstrap-files/aarch64-unknown-linux-musl.nix; - armv6l-linux = import ./bootstrap-files/armv6l-unknown-linux-musleabihf.nix; - x86_64-linux = import ./bootstrap-files/x86_64-unknown-linux-musl.nix; - }; - }; + bootstrapFiles ? + let + table = { + glibc = { + i686-linux = import ./bootstrap-files/i686-unknown-linux-gnu.nix; + x86_64-linux = import ./bootstrap-files/x86_64-unknown-linux-gnu.nix; + armv5tel-linux = import ./bootstrap-files/armv5tel-unknown-linux-gnueabi.nix; + armv6l-linux = import ./bootstrap-files/armv6l-unknown-linux-gnueabihf.nix; + armv7l-linux = import ./bootstrap-files/armv7l-unknown-linux-gnueabihf.nix; + aarch64-linux = import ./bootstrap-files/aarch64-unknown-linux-gnu.nix; + mipsel-linux = import ./bootstrap-files/mipsel-unknown-linux-gnu.nix; + mips64el-linux = import ( + if localSystem.isMips64n32 then + ./bootstrap-files/mips64el-unknown-linux-gnuabin32.nix + else + ./bootstrap-files/mips64el-unknown-linux-gnuabi64.nix + ); + powerpc64-linux = import ./bootstrap-files/powerpc64-unknown-linux-gnuabielfv2.nix; + powerpc64le-linux = import ./bootstrap-files/powerpc64le-unknown-linux-gnu.nix; + riscv64-linux = import ./bootstrap-files/riscv64-unknown-linux-gnu.nix; + }; + musl = { + aarch64-linux = import ./bootstrap-files/aarch64-unknown-linux-musl.nix; + armv6l-linux = import ./bootstrap-files/armv6l-unknown-linux-musleabihf.nix; + x86_64-linux = import ./bootstrap-files/x86_64-unknown-linux-musl.nix; + }; + }; - # Try to find an architecture compatible with our current system. We - # just try every bootstrap we’ve got and test to see if it is - # compatible with or current architecture. - getCompatibleTools = lib.foldl (v: system: - if v != null then v - else if localSystem.canExecute (lib.systems.elaborate { inherit system; }) then archLookupTable.${system} - else null) null (lib.attrNames archLookupTable); + # Try to find an architecture compatible with our current system. We + # just try every bootstrap we’ve got and test to see if it is + # compatible with or current architecture. + getCompatibleTools = lib.foldl ( + v: system: + if v != null then + v + else if localSystem.canExecute (lib.systems.elaborate { inherit system; }) then + archLookupTable.${system} + else + null + ) null (lib.attrNames archLookupTable); - archLookupTable = table.${localSystem.libc} - or (throw "unsupported libc for the pure Linux stdenv"); - files = archLookupTable.${localSystem.system} or (if getCompatibleTools != null then getCompatibleTools - else (throw "unsupported platform for the pure Linux stdenv")); - in files + archLookupTable = table.${localSystem.libc} or (throw "unsupported libc for the pure Linux stdenv"); + files = + archLookupTable.${localSystem.system} or ( + if getCompatibleTools != null then + getCompatibleTools + else + (throw "unsupported platform for the pure Linux stdenv") + ); + in + files, }: assert crossSystem == localSystem; @@ -102,12 +120,9 @@ let inherit (localSystem) system; isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg); - isFromBootstrapFiles = - pkg: pkg.passthru.isFromBootstrapFiles or false; - isBuiltByNixpkgsCompiler = - pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc; - isBuiltByBootstrapFilesCompiler = - pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc; + isFromBootstrapFiles = pkg: pkg.passthru.isFromBootstrapFiles or false; + isBuiltByNixpkgsCompiler = pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc; + isBuiltByBootstrapFilesCompiler = pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc; commonGccOverrides = { # Use a deterministically built compiler @@ -124,38 +139,42 @@ let disableGdbPlugin = true; }; - commonPreHook = - '' - export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}" - export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}" - ''; - + commonPreHook = '' + export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}" + export NIX_ENFORCE_NO_NATIVE="''${NIX_ENFORCE_NO_NATIVE-1}" + ''; # The bootstrap process proceeds in several steps. - # Create a standard environment by downloading pre-built binaries of # coreutils, GCC, etc. - # Download and unpack the bootstrap tools (coreutils, GCC, Glibc, ...). - bootstrapTools = (import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) { - inherit system bootstrapFiles; - extraAttrs = lib.optionalAttrs config.contentAddressedByDefault { - __contentAddressed = true; - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; + bootstrapTools = + (import (if localSystem.libc == "musl" then ./bootstrap-tools-musl else ./bootstrap-tools) { + inherit system bootstrapFiles; + extraAttrs = lib.optionalAttrs config.contentAddressedByDefault { + __contentAddressed = true; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + }; + }) + // { + passthru.isFromBootstrapFiles = true; }; - }) // { passthru.isFromBootstrapFiles = true; }; getLibc = stage: stage.${localSystem.libc}; - # This function builds the various standard environments used during # the bootstrap. In all stages, we build an stdenv and the package # set that can be built with that stdenv. - stageFun = prevStage: - { name, overrides ? (self: super: {}), extraNativeBuildInputs ? [] }: + stageFun = + prevStage: + { + name, + overrides ? (self: super: { }), + extraNativeBuildInputs ? [ ], + }: let @@ -165,114 +184,128 @@ let hostPlatform = localSystem; targetPlatform = localSystem; inherit config extraNativeBuildInputs; - preHook = - '' - # Don't patch #!/interpreter because it leads to retained - # dependencies on the bootstrapTools in the final stdenv. - dontPatchShebangs=1 - ${commonPreHook} - ''; + preHook = '' + # Don't patch #!/interpreter because it leads to retained + # dependencies on the bootstrapTools in the final stdenv. + dontPatchShebangs=1 + ${commonPreHook} + ''; shell = "${bootstrapTools}/bin/bash"; - initialPath = [bootstrapTools]; + initialPath = [ bootstrapTools ]; - fetchurlBoot = import ../../build-support/fetchurl/boot.nix { - inherit system; - }; + fetchurlBoot = import ../../build-support/fetchurl/boot.nix { inherit system; }; - cc = if prevStage.gcc-unwrapped == null - then null - else (lib.makeOverridable (import ../../build-support/cc-wrapper) { - name = "${name}-gcc-wrapper"; - nativeTools = false; - nativeLibc = false; - expand-response-params = lib.optionalString - (prevStage.stdenv.hasCC or false && prevStage.stdenv.cc != "/dev/null") - prevStage.expand-response-params; - cc = prevStage.gcc-unwrapped; - bintools = prevStage.binutils; - isGNU = true; - libc = getLibc prevStage; - inherit lib; - inherit (prevStage) coreutils gnugrep; - stdenvNoCC = prevStage.ccWrapperStdenv; - fortify-headers = prevStage.fortify-headers; - runtimeShell = prevStage.ccWrapperStdenv.shell; - }).overrideAttrs(a: lib.optionalAttrs (prevStage.gcc-unwrapped.passthru.isXgcc or false) { - # This affects only `xgcc` (the compiler which compiles the final compiler). - postFixup = (a.postFixup or "") + '' - echo "--sysroot=${lib.getDev (getLibc prevStage)}" >> $out/nix-support/cc-cflags - ''; - }); + cc = + if prevStage.gcc-unwrapped == null then + null + else + (lib.makeOverridable (import ../../build-support/cc-wrapper) { + name = "${name}-gcc-wrapper"; + nativeTools = false; + nativeLibc = false; + expand-response-params = lib.optionalString ( + prevStage.stdenv.hasCC or false && prevStage.stdenv.cc != "/dev/null" + ) prevStage.expand-response-params; + cc = prevStage.gcc-unwrapped; + bintools = prevStage.binutils; + isGNU = true; + libc = getLibc prevStage; + inherit lib; + inherit (prevStage) coreutils gnugrep; + stdenvNoCC = prevStage.ccWrapperStdenv; + fortify-headers = prevStage.fortify-headers; + runtimeShell = prevStage.ccWrapperStdenv.shell; + }).overrideAttrs + ( + a: + lib.optionalAttrs (prevStage.gcc-unwrapped.passthru.isXgcc or false) { + # This affects only `xgcc` (the compiler which compiles the final compiler). + postFixup = + (a.postFixup or "") + + '' + echo "--sysroot=${lib.getDev (getLibc prevStage)}" >> $out/nix-support/cc-cflags + ''; + } + ); overrides = self: super: (overrides self super) // { fetchurl = thisStdenv.fetchurlBoot; }; }; - in { + in + { inherit config overlays; stdenv = thisStdenv; }; in - assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check +assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check [ - ({}: { - __raw = true; + ( + { }: + { + __raw = true; - gcc-unwrapped = null; - binutils = null; - coreutils = null; - gnugrep = null; - }) + gcc-unwrapped = null; + binutils = null; + coreutils = null; + gnugrep = null; + } + ) # Build a dummy stdenv with no GCC or working fetchurl. This is # because we need a stdenv to build the GCC wrapper and fetchurl. - (prevStage: stageFun prevStage { - name = "bootstrap-stage0"; + ( + prevStage: + stageFun prevStage { + name = "bootstrap-stage0"; - overrides = self: super: { - # We thread stage0's stdenv through under this name so downstream stages - # can use it for wrapping gcc too. This way, downstream stages don't need - # to refer to this stage directly, which violates the principle that each - # stage should only access the stage that came before it. - ccWrapperStdenv = self.stdenv; - # The Glibc include directory cannot have the same prefix as the - # GCC include directory, since GCC gets confused otherwise (it - # will search the Glibc headers before the GCC headers). So - # create a dummy Glibc here, which will be used in the stdenv of - # stage1. - ${localSystem.libc} = self.stdenv.mkDerivation { - pname = "bootstrap-stage0-${localSystem.libc}"; - strictDeps = true; - version = "bootstrapFiles"; - enableParallelBuilding = true; - buildCommand = '' - mkdir -p $out - ln -s ${bootstrapTools}/lib $out/lib - '' + lib.optionalString (localSystem.libc == "glibc") '' - ln -s ${bootstrapTools}/include-glibc $out/include - '' + lib.optionalString (localSystem.libc == "musl") '' - ln -s ${bootstrapTools}/include-libc $out/include - ''; - passthru.isFromBootstrapFiles = true; + overrides = self: super: { + # We thread stage0's stdenv through under this name so downstream stages + # can use it for wrapping gcc too. This way, downstream stages don't need + # to refer to this stage directly, which violates the principle that each + # stage should only access the stage that came before it. + ccWrapperStdenv = self.stdenv; + # The Glibc include directory cannot have the same prefix as the + # GCC include directory, since GCC gets confused otherwise (it + # will search the Glibc headers before the GCC headers). So + # create a dummy Glibc here, which will be used in the stdenv of + # stage1. + ${localSystem.libc} = self.stdenv.mkDerivation { + pname = "bootstrap-stage0-${localSystem.libc}"; + strictDeps = true; + version = "bootstrapFiles"; + enableParallelBuilding = true; + buildCommand = + '' + mkdir -p $out + ln -s ${bootstrapTools}/lib $out/lib + '' + + lib.optionalString (localSystem.libc == "glibc") '' + ln -s ${bootstrapTools}/include-glibc $out/include + '' + + lib.optionalString (localSystem.libc == "musl") '' + ln -s ${bootstrapTools}/include-libc $out/include + ''; + passthru.isFromBootstrapFiles = true; + }; + gcc-unwrapped = bootstrapTools; + binutils = import ../../build-support/bintools-wrapper { + name = "bootstrap-stage0-binutils-wrapper"; + nativeTools = false; + nativeLibc = false; + expand-response-params = ""; + libc = getLibc self; + inherit lib; + inherit (self) stdenvNoCC coreutils gnugrep; + bintools = bootstrapTools; + runtimeShell = "${bootstrapTools}/bin/bash"; + }; + coreutils = bootstrapTools; + gnugrep = bootstrapTools; }; - gcc-unwrapped = bootstrapTools; - binutils = import ../../build-support/bintools-wrapper { - name = "bootstrap-stage0-binutils-wrapper"; - nativeTools = false; - nativeLibc = false; - expand-response-params = ""; - libc = getLibc self; - inherit lib; - inherit (self) stdenvNoCC coreutils gnugrep; - bintools = bootstrapTools; - runtimeShell = "${bootstrapTools}/bin/bash"; - }; - coreutils = bootstrapTools; - gnugrep = bootstrapTools; - }; - }) - + } + ) # Create the first "real" standard environment. This one consists # of bootstrap tools only, and a minimal Glibc to keep the GCC @@ -284,7 +317,8 @@ in # If we ever need to use a package from more than one stage back, we # simply re-export those packages in the middle stage(s) using the # overrides attribute and the inherit syntax. - (prevStage: + ( + prevStage: # previous stage0 stdenv: assert isFromBootstrapFiles prevStage.binutils.bintools; assert isFromBootstrapFiles prevStage."${localSystem.libc}"; @@ -292,46 +326,64 @@ in assert isFromBootstrapFiles prevStage.coreutils; assert isFromBootstrapFiles prevStage.gnugrep; stageFun prevStage { - name = "bootstrap-stage1"; + name = "bootstrap-stage1"; - # Rebuild binutils to use from stage2 onwards. - overrides = self: super: { - binutils-unwrapped = super.binutils-unwrapped.override { - enableGold = false; + # Rebuild binutils to use from stage2 onwards. + overrides = self: super: { + binutils-unwrapped = super.binutils-unwrapped.override { enableGold = false; }; + inherit (prevStage) + ccWrapperStdenv + gcc-unwrapped + coreutils + gnugrep + binutils + ; + + ${localSystem.libc} = getLibc prevStage; + + # A threaded perl build needs glibc/libpthread_nonshared.a, + # which is not included in bootstrapTools, so disable threading. + # This is not an issue for the final stdenv, because this perl + # won't be included in the final stdenv and won't be exported to + # top-level pkgs as an override either. + perl = super.perl.override { + enableThreading = false; + enableCrypt = false; + }; }; - inherit (prevStage) - ccWrapperStdenv - gcc-unwrapped coreutils gnugrep binutils; - ${localSystem.libc} = getLibc prevStage; - - # A threaded perl build needs glibc/libpthread_nonshared.a, - # which is not included in bootstrapTools, so disable threading. - # This is not an issue for the final stdenv, because this perl - # won't be included in the final stdenv and won't be exported to - # top-level pkgs as an override either. - perl = super.perl.override { enableThreading = false; enableCrypt = false; }; - }; - - # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. - extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; - }) + # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. + extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; + } + ) # First rebuild of gcc; this is linked against all sorts of junk # from the bootstrap-files, but we only care about the code that # this compiler *emits*. The `gcc` binary produced in this stage # is not part of the final stdenv. - (prevStage: + ( + prevStage: assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped; - assert isFromBootstrapFiles prevStage."${localSystem.libc}"; - assert isFromBootstrapFiles prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; + assert isFromBootstrapFiles prevStage."${localSystem.libc}"; + assert isFromBootstrapFiles prevStage.gcc-unwrapped; + assert isFromBootstrapFiles prevStage.coreutils; + assert isFromBootstrapFiles prevStage.gnugrep; assert isBuiltByBootstrapFilesCompiler prevStage.patchelf; stageFun prevStage { name = "bootstrap-stage-xgcc"; overrides = self: super: { - inherit (prevStage) ccWrapperStdenv coreutils gnugrep gettext bison texinfo zlib gnum4 perl patchelf; + inherit (prevStage) + ccWrapperStdenv + coreutils + gnugrep + gettext + bison + texinfo + zlib + gnum4 + perl + patchelf + ; ${localSystem.libc} = getLibc prevStage; gmp = super.gmp.override { cxx = false; }; # This stage also rebuilds binutils which will of course be used only in the next stage. @@ -339,250 +391,323 @@ in # TODO(@sternenseemann): Can we already build the wrapper with the actual runtimeShell here? # Historically, the wrapper didn't use runtimeShell, so the used shell had to be changed explicitly # (or stdenvNoCC.shell would be used) which happened in stage4. - binutils = super.binutils.override { - runtimeShell = "${bootstrapTools}/bin/bash"; - }; + binutils = super.binutils.override { runtimeShell = "${bootstrapTools}/bin/bash"; }; gcc-unwrapped = - (super.gcc-unwrapped.override (commonGccOverrides // { - # The most logical name for this package would be something like - # "gcc-stage1". Unfortunately "stage" is already reserved for the - # layers of stdenv, so using "stage" in the name of this package - # would cause massive confusion. - # - # Gcc calls its "stage1" compiler `xgcc` (--disable-bootstrap results - # in `xgcc` being copied to $prefix/bin/gcc). So we imitate that. - # - name = "xgcc"; + (super.gcc-unwrapped.override ( + commonGccOverrides + // { + # The most logical name for this package would be something like + # "gcc-stage1". Unfortunately "stage" is already reserved for the + # layers of stdenv, so using "stage" in the name of this package + # would cause massive confusion. + # + # Gcc calls its "stage1" compiler `xgcc` (--disable-bootstrap results + # in `xgcc` being copied to $prefix/bin/gcc). So we imitate that. + # + name = "xgcc"; - # xgcc uses ld linked against nixpkgs' glibc and gcc built - # against bootstrapTools glibc. We can't allow loading - # $out/libexec/gcc/x86_64-unknown-linux-gnu/13.0.1/liblto_plugin.so - # to mix libc.so: - # ...-binutils-patchelfed-ld-2.40/bin/ld: ...-xgcc-13.0.0/libexec/gcc/x86_64-unknown-linux-gnu/13.0.1/liblto_plugin.so: - # error loading plugin: ...-bootstrap-tools/lib/libpthread.so.0: undefined symbol: __libc_vfork, version GLIBC_PRIVATE - enableLTO = false; - })).overrideAttrs (a: { + # xgcc uses ld linked against nixpkgs' glibc and gcc built + # against bootstrapTools glibc. We can't allow loading + # $out/libexec/gcc/x86_64-unknown-linux-gnu/13.0.1/liblto_plugin.so + # to mix libc.so: + # ...-binutils-patchelfed-ld-2.40/bin/ld: ...-xgcc-13.0.0/libexec/gcc/x86_64-unknown-linux-gnu/13.0.1/liblto_plugin.so: + # error loading plugin: ...-bootstrap-tools/lib/libpthread.so.0: undefined symbol: __libc_vfork, version GLIBC_PRIVATE + enableLTO = false; + } + )).overrideAttrs + (a: { - # This signals to cc-wrapper (as overridden above in this file) to add `--sysroot` - # to `$out/nix-support/cc-cflags`. - passthru = a.passthru // { isXgcc = true; }; + # This signals to cc-wrapper (as overridden above in this file) to add `--sysroot` + # to `$out/nix-support/cc-cflags`. + passthru = a.passthru // { + isXgcc = true; + }; - # Gcc will look for the C library headers in - # - # ${with_build_sysroot}${native_system_header_dir} - # - # The ordinary gcc expression sets `--with-build-sysroot=/` and sets - # `native-system-header-dir` to `"${lib.getDev stdenv.cc.libc}/include`. - # - # Unfortunately the value of "--with-native-system-header-dir=" gets "burned in" to the - # compiler, and it is quite difficult to get the compiler to change or ignore it - # afterwards. On the other hand, the `sysroot` is very easy to change; you can just pass - # a `--sysroot` flag to `gcc`. - # - # So we override the expression to remove the default settings for these flags, and - # replace them such that the concatenated value will be the same as before, but we split - # the value between the two variables differently: `--native-system-header-dir=/include`, - # and `--with-build-sysroot=${lib.getDev stdenv.cc.libc}`. - # - configureFlags = (a.configureFlags or []) ++ [ - "--with-native-system-header-dir=/include" - "--with-build-sysroot=${lib.getDev self.stdenv.cc.libc}" - ]; + # Gcc will look for the C library headers in + # + # ${with_build_sysroot}${native_system_header_dir} + # + # The ordinary gcc expression sets `--with-build-sysroot=/` and sets + # `native-system-header-dir` to `"${lib.getDev stdenv.cc.libc}/include`. + # + # Unfortunately the value of "--with-native-system-header-dir=" gets "burned in" to the + # compiler, and it is quite difficult to get the compiler to change or ignore it + # afterwards. On the other hand, the `sysroot` is very easy to change; you can just pass + # a `--sysroot` flag to `gcc`. + # + # So we override the expression to remove the default settings for these flags, and + # replace them such that the concatenated value will be the same as before, but we split + # the value between the two variables differently: `--native-system-header-dir=/include`, + # and `--with-build-sysroot=${lib.getDev stdenv.cc.libc}`. + # + configureFlags = (a.configureFlags or [ ]) ++ [ + "--with-native-system-header-dir=/include" + "--with-build-sysroot=${lib.getDev self.stdenv.cc.libc}" + ]; - # This is a separate phase because gcc assembles its phase scripts - # in bash instead of nix (we should fix that). - preFixupPhases = (a.preFixupPhases or []) ++ [ "preFixupXgccPhase" ]; + # This is a separate phase because gcc assembles its phase scripts + # in bash instead of nix (we should fix that). + preFixupPhases = (a.preFixupPhases or [ ]) ++ [ "preFixupXgccPhase" ]; - # This is needed to prevent "error: cycle detected in build of '...-xgcc-....drv' - # in the references of output 'lib' from output 'out'" - preFixupXgccPhase = '' - find $lib/lib/ -name \*.so\* -exec patchelf --shrink-rpath {} \; || true - ''; - }); + # This is needed to prevent "error: cycle detected in build of '...-xgcc-....drv' + # in the references of output 'lib' from output 'out'" + preFixupXgccPhase = '' + find $lib/lib/ -name \*.so\* -exec patchelf --shrink-rpath {} \; || true + ''; + }); }; # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; - }) + } + ) # 2nd stdenv that contains our own rebuilt binutils and is used for # compiling our own Glibc. # - (prevStage: + ( + prevStage: # previous stage1 stdenv: assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped; - assert isFromBootstrapFiles prevStage."${localSystem.libc}"; + assert isFromBootstrapFiles prevStage."${localSystem.libc}"; assert isBuiltByBootstrapFilesCompiler prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; + assert isFromBootstrapFiles prevStage.coreutils; + assert isFromBootstrapFiles prevStage.gnugrep; assert isBuiltByBootstrapFilesCompiler prevStage.patchelf; stageFun prevStage { - name = "bootstrap-stage2"; + name = "bootstrap-stage2"; - overrides = self: super: { - inherit (prevStage) - ccWrapperStdenv gettext - gcc-unwrapped coreutils gnugrep - perl gnum4 bison texinfo which; - dejagnu = super.dejagnu.overrideAttrs (a: { doCheck = false; } ); - - # We need libidn2 and its dependency libunistring as glibc dependency. - # To avoid the cycle, we build against bootstrap libc, nuke references, - # and use the result as input for our final glibc. We also pass this pair - # through, so the final package-set uses exactly the same builds. - libunistring = super.libunistring.overrideAttrs (attrs: { - postFixup = attrs.postFixup or "" + '' - ${self.nukeReferences}/bin/nuke-refs "$out"/lib/lib*.so.*.* - ''; - # Apparently iconv won't work with bootstrap glibc, but it will be used - # with glibc built later where we keep *this* build of libunistring, - # so we need to trick it into supporting libiconv. - env = attrs.env or {} // { am_cv_func_iconv_works = "yes"; }; - }); - libidn2 = super.libidn2.overrideAttrs (attrs: { - postFixup = attrs.postFixup or "" + '' - ${self.nukeReferences}/bin/nuke-refs -e '${lib.getLib self.libunistring}' \ - "$out"/lib/lib*.so.*.* - ''; - }); - - # This also contains the full, dynamically linked, final Glibc. - binutils = prevStage.binutils.override { - # Rewrap the binutils with the new glibc, so both the next - # stage's wrappers use it. - libc = getLibc self; - - # Unfortunately, when building gcc in the next stage, its LTO plugin - # would use the final libc but `ld` would use the bootstrap one, - # and that can fail to load. Therefore we upgrade `ld` to use newer libc; - # apparently the interpreter needs to match libc, too. - bintools = self.stdenvNoCC.mkDerivation { - pname = prevStage.bintools.bintools.pname + "-patchelfed-ld"; - inherit (prevStage.bintools.bintools) version; - passthru = { inherit (prevStage.bintools.passthru) isFromBootstrapFiles; }; - enableParallelBuilding = true; - dontUnpack = true; - dontBuild = true; - strictDeps = true; - # We wouldn't need to *copy* all, but it's easier and the result is temporary anyway. - installPhase = '' - mkdir -p "$out"/bin - cp -a '${prevStage.bintools.bintools}'/bin/* "$out"/bin/ - chmod +w "$out"/bin/ld.bfd - patchelf --set-interpreter '${getLibc self}'/lib/ld*.so.? \ - --set-rpath "${getLibc self}/lib:$(patchelf --print-rpath "$out"/bin/ld.bfd)" \ - "$out"/bin/ld.bfd - ''; - }; - }; - - # TODO(amjoseph): It is not yet entirely clear why this is necessary. - # Something strange is going on with xgcc and libstdc++ on pkgsMusl. - patchelf = super.patchelf.overrideAttrs(previousAttrs: - lib.optionalAttrs super.stdenv.hostPlatform.isMusl { - NIX_CFLAGS_COMPILE = (previousAttrs.NIX_CFLAGS_COMPILE or "") + " -static-libstdc++"; + overrides = self: super: { + inherit (prevStage) + ccWrapperStdenv + gettext + gcc-unwrapped + coreutils + gnugrep + perl + gnum4 + bison + texinfo + which + ; + dejagnu = super.dejagnu.overrideAttrs (a: { + doCheck = false; }); - }; + # We need libidn2 and its dependency libunistring as glibc dependency. + # To avoid the cycle, we build against bootstrap libc, nuke references, + # and use the result as input for our final glibc. We also pass this pair + # through, so the final package-set uses exactly the same builds. + libunistring = super.libunistring.overrideAttrs (attrs: { + postFixup = + attrs.postFixup or "" + + '' + ${self.nukeReferences}/bin/nuke-refs "$out"/lib/lib*.so.*.* + ''; + # Apparently iconv won't work with bootstrap glibc, but it will be used + # with glibc built later where we keep *this* build of libunistring, + # so we need to trick it into supporting libiconv. + env = attrs.env or { } // { + am_cv_func_iconv_works = "yes"; + }; + }); + libidn2 = super.libidn2.overrideAttrs (attrs: { + postFixup = + attrs.postFixup or "" + + '' + ${self.nukeReferences}/bin/nuke-refs -e '${lib.getLib self.libunistring}' \ + "$out"/lib/lib*.so.*.* + ''; + }); - # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. - # `libtool` comes with obsolete config.sub/config.guess that don't recognize Risc-V. - extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; - }) + # This also contains the full, dynamically linked, final Glibc. + binutils = prevStage.binutils.override { + # Rewrap the binutils with the new glibc, so both the next + # stage's wrappers use it. + libc = getLibc self; + # Unfortunately, when building gcc in the next stage, its LTO plugin + # would use the final libc but `ld` would use the bootstrap one, + # and that can fail to load. Therefore we upgrade `ld` to use newer libc; + # apparently the interpreter needs to match libc, too. + bintools = self.stdenvNoCC.mkDerivation { + pname = prevStage.bintools.bintools.pname + "-patchelfed-ld"; + inherit (prevStage.bintools.bintools) version; + passthru = { + inherit (prevStage.bintools.passthru) isFromBootstrapFiles; + }; + enableParallelBuilding = true; + dontUnpack = true; + dontBuild = true; + strictDeps = true; + # We wouldn't need to *copy* all, but it's easier and the result is temporary anyway. + installPhase = '' + mkdir -p "$out"/bin + cp -a '${prevStage.bintools.bintools}'/bin/* "$out"/bin/ + chmod +w "$out"/bin/ld.bfd + patchelf --set-interpreter '${getLibc self}'/lib/ld*.so.? \ + --set-rpath "${getLibc self}/lib:$(patchelf --print-rpath "$out"/bin/ld.bfd)" \ + "$out"/bin/ld.bfd + ''; + }; + }; + + # TODO(amjoseph): It is not yet entirely clear why this is necessary. + # Something strange is going on with xgcc and libstdc++ on pkgsMusl. + patchelf = super.patchelf.overrideAttrs ( + previousAttrs: + lib.optionalAttrs super.stdenv.hostPlatform.isMusl { + NIX_CFLAGS_COMPILE = (previousAttrs.NIX_CFLAGS_COMPILE or "") + " -static-libstdc++"; + } + ); + + }; + + # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. + # `libtool` comes with obsolete config.sub/config.guess that don't recognize Risc-V. + extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; + } + ) # Construct a third stdenv identical to the 2nd, except that this # one uses the rebuilt Glibc from stage2. It still uses the recent # binutils and rest of the bootstrap tools, including GCC. - (prevStage: + ( + prevStage: # previous stage2 stdenv: - assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; - assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc}; + assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; + assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc}; assert isBuiltByBootstrapFilesCompiler prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; - assert isBuiltByNixpkgsCompiler prevStage.patchelf; - assert lib.all isBuiltByNixpkgsCompiler (with prevStage; [ gmp isl_0_20 libmpc mpfr ]); + assert isFromBootstrapFiles prevStage.coreutils; + assert isFromBootstrapFiles prevStage.gnugrep; + assert isBuiltByNixpkgsCompiler prevStage.patchelf; + assert lib.all isBuiltByNixpkgsCompiler ( + with prevStage; + [ + gmp + isl_0_20 + libmpc + mpfr + ] + ); stageFun prevStage { - name = "bootstrap-stage3"; - - overrides = self: super: rec { - inherit (prevStage) - ccWrapperStdenv - binutils coreutils gnugrep gettext - perl patchelf linuxHeaders gnum4 bison libidn2 libunistring libxcrypt; - # We build a special copy of libgmp which doesn't use libstdc++, because - # xgcc++'s libstdc++ references the bootstrap-files (which is what - # compiles xgcc++). - gmp = super.gmp.override { cxx = false; }; - } // { - ${localSystem.libc} = getLibc prevStage; - gcc-unwrapped = (super.gcc-unwrapped.override (commonGccOverrides // { - inherit (prevStage) which; - } - )).overrideAttrs (a: { - # so we can add them to allowedRequisites below - passthru = a.passthru // { inherit (self) gmp mpfr libmpc isl; }; - }); - }; - extraNativeBuildInputs = [ - prevStage.patchelf - # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. - prevStage.updateAutotoolsGnuConfigScriptsHook - ]; - }) + name = "bootstrap-stage3"; + overrides = + self: super: + rec { + inherit (prevStage) + ccWrapperStdenv + binutils + coreutils + gnugrep + gettext + perl + patchelf + linuxHeaders + gnum4 + bison + libidn2 + libunistring + libxcrypt + ; + # We build a special copy of libgmp which doesn't use libstdc++, because + # xgcc++'s libstdc++ references the bootstrap-files (which is what + # compiles xgcc++). + gmp = super.gmp.override { cxx = false; }; + } + // { + ${localSystem.libc} = getLibc prevStage; + gcc-unwrapped = + (super.gcc-unwrapped.override (commonGccOverrides // { inherit (prevStage) which; })).overrideAttrs + (a: { + # so we can add them to allowedRequisites below + passthru = a.passthru // { + inherit (self) + gmp + mpfr + libmpc + isl + ; + }; + }); + }; + extraNativeBuildInputs = [ + prevStage.patchelf + # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. + prevStage.updateAutotoolsGnuConfigScriptsHook + ]; + } + ) # Construct a fourth stdenv that uses the new GCC. But coreutils is # still from the bootstrap tools. # - (prevStage: + ( + prevStage: # previous stage3 stdenv: assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc}; assert isBuiltByNixpkgsCompiler prevStage.gcc-unwrapped; - assert isFromBootstrapFiles prevStage.coreutils; - assert isFromBootstrapFiles prevStage.gnugrep; + assert isFromBootstrapFiles prevStage.coreutils; + assert isFromBootstrapFiles prevStage.gnugrep; assert isBuiltByNixpkgsCompiler prevStage.patchelf; stageFun prevStage { - name = "bootstrap-stage4"; + name = "bootstrap-stage4"; - overrides = self: super: { - # Zlib has to be inherited and not rebuilt in this stage, - # because gcc (since JAR support) already depends on zlib, and - # then if we already have a zlib we want to use that for the - # other purposes (binutils and top-level pkgs) too. - inherit (prevStage) gettext gnum4 bison perl texinfo zlib linuxHeaders libidn2 libunistring; - ${localSystem.libc} = getLibc prevStage; - # Since this is the first fresh build of binutils since stage2, our own runtimeShell will be used. - binutils = super.binutils.override { - # Build expand-response-params with last stage like below - inherit (prevStage) expand-response-params; + overrides = self: super: { + # Zlib has to be inherited and not rebuilt in this stage, + # because gcc (since JAR support) already depends on zlib, and + # then if we already have a zlib we want to use that for the + # other purposes (binutils and top-level pkgs) too. + inherit (prevStage) + gettext + gnum4 + bison + perl + texinfo + zlib + linuxHeaders + libidn2 + libunistring + ; + ${localSystem.libc} = getLibc prevStage; + # Since this is the first fresh build of binutils since stage2, our own runtimeShell will be used. + binutils = super.binutils.override { + # Build expand-response-params with last stage like below + inherit (prevStage) expand-response-params; + }; + + # To allow users' overrides inhibit dependencies too heavy for + # bootstrap, like guile: https://github.com/NixOS/nixpkgs/issues/181188 + gnumake = super.gnumake.override { inBootstrap = true; }; + + gcc = lib.makeOverridable (import ../../build-support/cc-wrapper) { + nativeTools = false; + nativeLibc = false; + isGNU = true; + inherit (prevStage) expand-response-params; + cc = prevStage.gcc-unwrapped; + bintools = self.binutils; + libc = getLibc self; + inherit lib; + inherit (self) + stdenvNoCC + coreutils + gnugrep + runtimeShell + ; + fortify-headers = self.fortify-headers; + }; }; - - # To allow users' overrides inhibit dependencies too heavy for - # bootstrap, like guile: https://github.com/NixOS/nixpkgs/issues/181188 - gnumake = super.gnumake.override { inBootstrap = true; }; - - gcc = lib.makeOverridable (import ../../build-support/cc-wrapper) { - nativeTools = false; - nativeLibc = false; - isGNU = true; - inherit (prevStage) expand-response-params; - cc = prevStage.gcc-unwrapped; - bintools = self.binutils; - libc = getLibc self; - inherit lib; - inherit (self) stdenvNoCC coreutils gnugrep runtimeShell; - fortify-headers = self.fortify-headers; - }; - }; - extraNativeBuildInputs = [ - prevStage.patchelf prevStage.xz - # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. - prevStage.updateAutotoolsGnuConfigScriptsHook - ]; - }) + extraNativeBuildInputs = [ + prevStage.patchelf + prevStage.xz + # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. + prevStage.updateAutotoolsGnuConfigScriptsHook + ]; + } + ) # Construct the final stdenv. It uses the Glibc and GCC, and adds # in a new binutils that doesn't depend on bootstrap-tools, as well @@ -592,7 +717,8 @@ in # dependency (`nix-store -qR') on bootstrapTools or the first # binutils built. # - (prevStage: + ( + prevStage: # previous stage4 stdenv; see stage3 comment regarding gcc, # which applies here as well. assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; @@ -602,91 +728,159 @@ in assert isBuiltByNixpkgsCompiler prevStage.gnugrep; assert isBuiltByNixpkgsCompiler prevStage.patchelf; { - inherit config overlays; - stdenv = import ../generic rec { - name = "stdenv-linux"; + inherit config overlays; + stdenv = import ../generic rec { + name = "stdenv-linux"; - buildPlatform = localSystem; - hostPlatform = localSystem; - targetPlatform = localSystem; - inherit config; + buildPlatform = localSystem; + hostPlatform = localSystem; + targetPlatform = localSystem; + inherit config; - preHook = commonPreHook; + preHook = commonPreHook; - initialPath = - ((import ../generic/common-path.nix) {pkgs = prevStage;}); + initialPath = ((import ../generic/common-path.nix) { pkgs = prevStage; }); - extraNativeBuildInputs = [ - prevStage.patchelf - # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. - prevStage.updateAutotoolsGnuConfigScriptsHook - ]; + extraNativeBuildInputs = [ + prevStage.patchelf + # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. + prevStage.updateAutotoolsGnuConfigScriptsHook + ]; - cc = prevStage.gcc; + cc = prevStage.gcc; - shell = cc.shell; + shell = cc.shell; - inherit (prevStage.stdenv) fetchurlBoot; + inherit (prevStage.stdenv) fetchurlBoot; - extraAttrs = { - inherit bootstrapTools; - shellPackage = prevStage.bash; - }; - - disallowedRequisites = [ bootstrapTools.out ]; - - # Mainly avoid reference to bootstrap tools - allowedRequisites = with prevStage; with lib; - # Simple executable tools - concatMap (p: [ (getBin p) (getLib p) ]) [ - gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils - gawk gmp gnumake gnused gnutar gnugrep gnupatch patchelf ed file - ] - # Library dependencies - ++ map getLib ( - [ attr acl zlib gnugrep.pcre2 libidn2 libunistring ] - ++ lib.optional (gawk.libsigsegv != null) gawk.libsigsegv - ) - # More complicated cases - ++ (map (x: getOutput x (getLibc prevStage)) [ "out" "dev" "bin" ] ) - ++ [ linuxHeaders # propagated from .dev - binutils gcc gcc.cc gcc.cc.lib - gcc.expand-response-params # != (prevStage.)expand-response-params - gcc.cc.libgcc glibc.passthru.libgcc - ] - ++ lib.optionals (localSystem.libc == "musl") [ fortify-headers ] - ++ [ prevStage.updateAutotoolsGnuConfigScriptsHook prevStage.gnu-config ] - ++ (with gcc-unwrapped.passthru; [ - gmp libmpc mpfr isl - ]) - ; - - overrides = self: super: { - inherit (prevStage) - gzip bzip2 xz bash coreutils diffutils findutils gawk - gnused gnutar gnugrep gnupatch patchelf - attr acl zlib libunistring; - inherit (prevStage.gnugrep) pcre2; - ${localSystem.libc} = getLibc prevStage; - - # Hack: avoid libidn2.{bin,dev} referencing bootstrap tools. There's a logical cycle. - libidn2 = import ../../by-name/li/libidn2/no-bootstrap-reference.nix { - inherit lib; - inherit (prevStage) libidn2; - inherit (self) stdenv runCommandLocal patchelf libunistring; + extraAttrs = { + inherit bootstrapTools; + shellPackage = prevStage.bash; }; - gnumake = super.gnumake.override { inBootstrap = false; }; - } // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { - # Need to get rid of these when cross-compiling. - inherit (prevStage) binutils binutils-unwrapped; - gcc = cc; + disallowedRequisites = [ bootstrapTools.out ]; + + # Mainly avoid reference to bootstrap tools + allowedRequisites = + with prevStage; + with lib; + # Simple executable tools + concatMap + (p: [ + (getBin p) + (getLib p) + ]) + [ + gzip + bzip2 + xz + bash + binutils.bintools + coreutils + diffutils + findutils + gawk + gmp + gnumake + gnused + gnutar + gnugrep + gnupatch + patchelf + ed + file + ] + # Library dependencies + ++ map getLib ( + [ + attr + acl + zlib + gnugrep.pcre2 + libidn2 + libunistring + ] + ++ lib.optional (gawk.libsigsegv != null) gawk.libsigsegv + ) + # More complicated cases + ++ (map (x: getOutput x (getLibc prevStage)) [ + "out" + "dev" + "bin" + ]) + ++ [ + linuxHeaders # propagated from .dev + binutils + gcc + gcc.cc + gcc.cc.lib + gcc.expand-response-params # != (prevStage.)expand-response-params + gcc.cc.libgcc + glibc.passthru.libgcc + ] + ++ lib.optionals (localSystem.libc == "musl") [ fortify-headers ] + ++ [ + prevStage.updateAutotoolsGnuConfigScriptsHook + prevStage.gnu-config + ] + ++ (with gcc-unwrapped.passthru; [ + gmp + libmpc + mpfr + isl + ]); + + overrides = + self: super: + { + inherit (prevStage) + gzip + bzip2 + xz + bash + coreutils + diffutils + findutils + gawk + gnused + gnutar + gnugrep + gnupatch + patchelf + attr + acl + zlib + libunistring + ; + inherit (prevStage.gnugrep) pcre2; + ${localSystem.libc} = getLibc prevStage; + + # Hack: avoid libidn2.{bin,dev} referencing bootstrap tools. There's a logical cycle. + libidn2 = import ../../by-name/li/libidn2/no-bootstrap-reference.nix { + inherit lib; + inherit (prevStage) libidn2; + inherit (self) + stdenv + runCommandLocal + patchelf + libunistring + ; + }; + + gnumake = super.gnumake.override { inBootstrap = false; }; + } + // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) { + # Need to get rid of these when cross-compiling. + inherit (prevStage) binutils binutils-unwrapped; + gcc = cc; + }; }; - }; - }) + } + ) # This "no-op" stage is just a place to put the assertions about stage5. - (prevStage: + ( + prevStage: # previous stage5 stdenv; see stage3 comment regarding gcc, # which applies here as well. assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped; @@ -695,5 +889,8 @@ in assert isBuiltByNixpkgsCompiler prevStage.coreutils; assert isBuiltByNixpkgsCompiler prevStage.gnugrep; assert isBuiltByNixpkgsCompiler prevStage.patchelf; - { inherit (prevStage) config overlays stdenv; }) + { + inherit (prevStage) config overlays stdenv; + } + ) ] diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix index f58e807..4b1d284 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix @@ -1,36 +1,42 @@ -{system ? builtins.currentSystem}: +{ + system ? builtins.currentSystem, +}: let inherit (releaseLib) lib; releaseLib = import ../../top-level/release-lib.nix { # We're not using any functions from release-lib.nix that look at # supportedSystems. - supportedSystems = []; + supportedSystems = [ ]; }; - make = crossSystem: import ./make-bootstrap-tools.nix { - pkgs = releaseLib.pkgsForCross crossSystem system; - }; -in lib.mapAttrs (n: make) (with lib.systems.examples; { - # NOTE: Only add platforms for which there are files in `./bootstrap-files` - # or for which you plan to request the tarball upload soon. See the - # maintainers/scripts/bootstrap-files/README.md - # on how to request an upload. - # Sort following the sorting in `./default.nix` `bootstrapFiles` argument. + make = + crossSystem: + import ./make-bootstrap-tools.nix { pkgs = releaseLib.pkgsForCross crossSystem system; }; +in +lib.mapAttrs (n: make) ( + with lib.systems.examples; + { + # NOTE: Only add platforms for which there are files in `./bootstrap-files` + # or for which you plan to request the tarball upload soon. See the + # maintainers/scripts/bootstrap-files/README.md + # on how to request an upload. + # Sort following the sorting in `./default.nix` `bootstrapFiles` argument. - armv5tel-unknown-linux-gnueabi = sheevaplug; - armv6l-unknown-linux-gnueabihf = raspberryPi; - armv7l-unknown-linux-gnueabihf = armv7l-hf-multiplatform; - aarch64-unknown-linux-gnu = aarch64-multiplatform; - mipsel-unknown-linux-gnu = mipsel-linux-gnu; - mips64el-unknown-linux-gnuabin32 = mips64el-linux-gnuabin32; - mips64el-unknown-linux-gnuabi64 = mips64el-linux-gnuabi64; - powerpc64-unknown-linux-gnuabielfv2 = ppc64; - powerpc64le-unknown-linux-gnu = powernv; - riscv64-unknown-linux-gnu = riscv64; + armv5tel-unknown-linux-gnueabi = sheevaplug; + armv6l-unknown-linux-gnueabihf = raspberryPi; + armv7l-unknown-linux-gnueabihf = armv7l-hf-multiplatform; + aarch64-unknown-linux-gnu = aarch64-multiplatform; + mipsel-unknown-linux-gnu = mipsel-linux-gnu; + mips64el-unknown-linux-gnuabin32 = mips64el-linux-gnuabin32; + mips64el-unknown-linux-gnuabi64 = mips64el-linux-gnuabi64; + powerpc64-unknown-linux-gnuabielfv2 = ppc64; + powerpc64le-unknown-linux-gnu = powernv; + riscv64-unknown-linux-gnu = riscv64; - # musl - aarch64-unknown-linux-musl = aarch64-multiplatform-musl; - armv6l-unknown-linux-musleabihf = muslpi; - x86_64-unknown-linux-musl = musl64; -}) + # musl + aarch64-unknown-linux-musl = aarch64-multiplatform-musl; + armv6l-unknown-linux-musleabihf = muslpi; + x86_64-unknown-linux-musl = musl64; + } +) diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 8743303..01fdd5f 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -1,13 +1,22 @@ -{ pkgs ? import ../../.. {} }: +{ + pkgs ? import ../../.. { }, +}: let libc = pkgs.stdenv.cc.libc; - patchelf = pkgs.patchelf.overrideAttrs(previousAttrs: { - NIX_CFLAGS_COMPILE = (previousAttrs.NIX_CFLAGS_COMPILE or []) ++ [ "-static-libgcc" "-static-libstdc++" ]; - NIX_CFLAGS_LINK = (previousAttrs.NIX_CFLAGS_LINK or []) ++ [ "-static-libgcc" "-static-libstdc++" ]; + patchelf = pkgs.patchelf.overrideAttrs (previousAttrs: { + NIX_CFLAGS_COMPILE = (previousAttrs.NIX_CFLAGS_COMPILE or [ ]) ++ [ + "-static-libgcc" + "-static-libstdc++" + ]; + NIX_CFLAGS_LINK = (previousAttrs.NIX_CFLAGS_LINK or [ ]) ++ [ + "-static-libgcc" + "-static-libstdc++" + ]; }); -in with pkgs; rec { - +in +with pkgs; +rec { coreutilsMinimal = coreutils.override (args: { # We want coreutils without ACL/attr support. @@ -57,238 +66,266 @@ in with pkgs; rec { schedulingPriority = 200; }; - nativeBuildInputs = [ buildPackages.nukeReferences buildPackages.cpio ]; + nativeBuildInputs = [ + buildPackages.nukeReferences + buildPackages.cpio + ]; - buildCommand = '' - set -x - mkdir -p $out/bin $out/lib $out/libexec + buildCommand = + '' + set -x + mkdir -p $out/bin $out/lib $out/libexec - '' + (if (stdenv.hostPlatform.libc == "glibc") then '' - # Copy what we need of Glibc. - cp -d ${libc.out}/lib/ld*.so* $out/lib - cp -d ${libc.out}/lib/libc*.so* $out/lib - cp -d ${libc.out}/lib/libc_nonshared.a $out/lib - cp -d ${libc.out}/lib/libm*.so* $out/lib - cp -d ${libc.out}/lib/libdl*.so* $out/lib - cp -d ${libc.out}/lib/librt*.so* $out/lib - cp -d ${libc.out}/lib/libpthread*.so* $out/lib - '' + lib.optionalString withLibnsl '' - cp -d ${libc.out}/lib/libnsl*.so* $out/lib - '' + '' - cp -d ${libc.out}/lib/libutil*.so* $out/lib - cp -d ${libc.out}/lib/libnss*.so* $out/lib - cp -d ${libc.out}/lib/libresolv*.so* $out/lib - # Copy all runtime files to enable non-PIE, PIE, static PIE and profile-generated builds - cp -d ${libc.out}/lib/*.o $out/lib + '' + + ( + if (stdenv.hostPlatform.libc == "glibc") then + '' + # Copy what we need of Glibc. + cp -d ${libc.out}/lib/ld*.so* $out/lib + cp -d ${libc.out}/lib/libc*.so* $out/lib + cp -d ${libc.out}/lib/libc_nonshared.a $out/lib + cp -d ${libc.out}/lib/libm*.so* $out/lib + cp -d ${libc.out}/lib/libdl*.so* $out/lib + cp -d ${libc.out}/lib/librt*.so* $out/lib + cp -d ${libc.out}/lib/libpthread*.so* $out/lib + '' + + lib.optionalString withLibnsl '' + cp -d ${libc.out}/lib/libnsl*.so* $out/lib + '' + + '' + cp -d ${libc.out}/lib/libutil*.so* $out/lib + cp -d ${libc.out}/lib/libnss*.so* $out/lib + cp -d ${libc.out}/lib/libresolv*.so* $out/lib + # Copy all runtime files to enable non-PIE, PIE, static PIE and profile-generated builds + cp -d ${libc.out}/lib/*.o $out/lib - # Hacky compat with our current unpack-bootstrap-tools.sh - ln -s librt.so "$out"/lib/librt-dummy.so + # Hacky compat with our current unpack-bootstrap-tools.sh + ln -s librt.so "$out"/lib/librt-dummy.so - cp -rL ${libc.dev}/include $out - chmod -R u+w "$out" + cp -rL ${libc.dev}/include $out + chmod -R u+w "$out" - # libc can contain linker scripts: find them, copy their deps, - # and get rid of absolute paths (nuke-refs would make them useless) - local lScripts=$(grep --files-with-matches --max-count=1 'GNU ld script' -R "$out/lib") - cp -d -t "$out/lib/" $(cat $lScripts | tr " " "\n" | grep -F '${libc.out}' | sort -u) - for f in $lScripts; do - substituteInPlace "$f" --replace '${libc.out}/lib/' "" - done + # libc can contain linker scripts: find them, copy their deps, + # and get rid of absolute paths (nuke-refs would make them useless) + local lScripts=$(grep --files-with-matches --max-count=1 'GNU ld script' -R "$out/lib") + cp -d -t "$out/lib/" $(cat $lScripts | tr " " "\n" | grep -F '${libc.out}' | sort -u) + for f in $lScripts; do + substituteInPlace "$f" --replace '${libc.out}/lib/' "" + done - # Hopefully we won't need these. - rm -rf $out/include/mtd $out/include/rdma $out/include/sound $out/include/video - find $out/include -name .install -exec rm {} \; - find $out/include -name ..install.cmd -exec rm {} \; - mv $out/include $out/include-glibc - '' else if (stdenv.hostPlatform.libc == "musl") then '' - # Copy what we need from musl - cp ${libc.out}/lib/* $out/lib - cp -rL ${libc.dev}/include $out - chmod -R u+w "$out" + # Hopefully we won't need these. + rm -rf $out/include/mtd $out/include/rdma $out/include/sound $out/include/video + find $out/include -name .install -exec rm {} \; + find $out/include -name ..install.cmd -exec rm {} \; + mv $out/include $out/include-glibc + '' + else if (stdenv.hostPlatform.libc == "musl") then + '' + # Copy what we need from musl + cp ${libc.out}/lib/* $out/lib + cp -rL ${libc.dev}/include $out + chmod -R u+w "$out" - rm -rf $out/include/mtd $out/include/rdma $out/include/sound $out/include/video - find $out/include -name .install -exec rm {} \; - find $out/include -name ..install.cmd -exec rm {} \; - mv $out/include $out/include-libc - '' else throw "unsupported libc for bootstrap tools") - + '' - # Copy coreutils, bash, etc. - cp -d ${coreutilsMinimal.out}/bin/* $out/bin - (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users) + rm -rf $out/include/mtd $out/include/rdma $out/include/sound $out/include/video + find $out/include -name .install -exec rm {} \; + find $out/include -name ..install.cmd -exec rm {} \; + mv $out/include $out/include-libc + '' + else + throw "unsupported libc for bootstrap tools" + ) + + '' + # Copy coreutils, bash, etc. + cp -d ${coreutilsMinimal.out}/bin/* $out/bin + (cd $out/bin && rm vdir dir sha*sum pinky factor pathchk runcon shuf who whoami shred users) - cp ${bash.out}/bin/bash $out/bin - cp ${findutils.out}/bin/find $out/bin - cp ${findutils.out}/bin/xargs $out/bin - cp -d ${diffutils.out}/bin/* $out/bin - cp -d ${gnused.out}/bin/* $out/bin - cp -d ${gnugrep.out}/bin/grep $out/bin - cp ${gawk.out}/bin/gawk $out/bin - cp -d ${gawk.out}/bin/awk $out/bin - cp ${tarMinimal.out}/bin/tar $out/bin - cp ${gzip.out}/bin/.gzip-wrapped $out/bin/gzip - cp ${bzip2.bin}/bin/bzip2 $out/bin - cp -d ${gnumake.out}/bin/* $out/bin - cp -d ${patch}/bin/* $out/bin - cp ${patchelf}/bin/* $out/bin + cp ${bash.out}/bin/bash $out/bin + cp ${findutils.out}/bin/find $out/bin + cp ${findutils.out}/bin/xargs $out/bin + cp -d ${diffutils.out}/bin/* $out/bin + cp -d ${gnused.out}/bin/* $out/bin + cp -d ${gnugrep.out}/bin/grep $out/bin + cp ${gawk.out}/bin/gawk $out/bin + cp -d ${gawk.out}/bin/awk $out/bin + cp ${tarMinimal.out}/bin/tar $out/bin + cp ${gzip.out}/bin/.gzip-wrapped $out/bin/gzip + cp ${bzip2.bin}/bin/bzip2 $out/bin + cp -d ${gnumake.out}/bin/* $out/bin + cp -d ${patch}/bin/* $out/bin + cp ${patchelf}/bin/* $out/bin - cp -d ${gnugrep.pcre2.out}/lib/libpcre2*.so* $out/lib # needed by grep + cp -d ${gnugrep.pcre2.out}/lib/libpcre2*.so* $out/lib # needed by grep - # Copy what we need of GCC. - cp -d ${bootGCC.out}/bin/gcc $out/bin - cp -d ${bootGCC.out}/bin/cpp $out/bin - cp -d ${bootGCC.out}/bin/g++ $out/bin - cp ${bootGCC.lib}/lib/libgcc_s.so* $out/lib - cp -d ${bootGCC.lib}/lib/libstdc++.so* $out/lib - cp -d ${bootGCC.out}/lib/libssp.a* $out/lib - cp -d ${bootGCC.out}/lib/libssp_nonshared.a $out/lib - cp -rd ${bootGCC.out}/lib/gcc $out/lib - chmod -R u+w $out/lib - rm -f $out/lib/gcc/*/*/include*/linux - rm -f $out/lib/gcc/*/*/include*/sound - rm -rf $out/lib/gcc/*/*/include*/root - rm -f $out/lib/gcc/*/*/include-fixed/asm - rm -rf $out/lib/gcc/*/*/plugin - #rm -f $out/lib/gcc/*/*/*.a - cp -rd ${bootGCC.out}/libexec/* $out/libexec - chmod -R u+w $out/libexec - rm -rf $out/libexec/gcc/*/*/plugin - mkdir -p $out/include - cp -rd ${bootGCC.out}/include/c++ $out/include - chmod -R u+w $out/include - rm -rf $out/include/c++/*/ext/pb_ds - rm -rf $out/include/c++/*/ext/parallel + # Copy what we need of GCC. + cp -d ${bootGCC.out}/bin/gcc $out/bin + cp -d ${bootGCC.out}/bin/cpp $out/bin + cp -d ${bootGCC.out}/bin/g++ $out/bin + cp ${bootGCC.lib}/lib/libgcc_s.so* $out/lib + cp -d ${bootGCC.lib}/lib/libstdc++.so* $out/lib + cp -d ${bootGCC.out}/lib/libssp.a* $out/lib + cp -d ${bootGCC.out}/lib/libssp_nonshared.a $out/lib + cp -rd ${bootGCC.out}/lib/gcc $out/lib + chmod -R u+w $out/lib + rm -f $out/lib/gcc/*/*/include*/linux + rm -f $out/lib/gcc/*/*/include*/sound + rm -rf $out/lib/gcc/*/*/include*/root + rm -f $out/lib/gcc/*/*/include-fixed/asm + rm -rf $out/lib/gcc/*/*/plugin + #rm -f $out/lib/gcc/*/*/*.a + cp -rd ${bootGCC.out}/libexec/* $out/libexec + chmod -R u+w $out/libexec + rm -rf $out/libexec/gcc/*/*/plugin + mkdir -p $out/include + cp -rd ${bootGCC.out}/include/c++ $out/include + chmod -R u+w $out/include + rm -rf $out/include/c++/*/ext/pb_ds + rm -rf $out/include/c++/*/ext/parallel - cp -d ${gmpxx.out}/lib/libgmp*.so* $out/lib - cp -d ${isl.out}/lib/libisl*.so* $out/lib - cp -d ${mpfr.out}/lib/libmpfr*.so* $out/lib - cp -d ${libmpc.out}/lib/libmpc*.so* $out/lib - cp -d ${zlib.out}/lib/libz.so* $out/lib + cp -d ${gmpxx.out}/lib/libgmp*.so* $out/lib + cp -d ${isl.out}/lib/libisl*.so* $out/lib + cp -d ${mpfr.out}/lib/libmpfr*.so* $out/lib + cp -d ${libmpc.out}/lib/libmpc*.so* $out/lib + cp -d ${zlib.out}/lib/libz.so* $out/lib - '' + lib.optionalString (stdenv.hostPlatform.isRiscV) '' - # libatomic is required on RiscV platform for C/C++ atomics and pthread - # even though they may be translated into native instructions. - cp -d ${bootGCC.out}/lib/libatomic.a* $out/lib + '' + + lib.optionalString (stdenv.hostPlatform.isRiscV) '' + # libatomic is required on RiscV platform for C/C++ atomics and pthread + # even though they may be translated into native instructions. + cp -d ${bootGCC.out}/lib/libatomic.a* $out/lib - '' + '' - cp -d ${bzip2.out}/lib/libbz2.so* $out/lib + '' + + '' + cp -d ${bzip2.out}/lib/libbz2.so* $out/lib - # Copy binutils. - for i in as ld ar ranlib nm strip readelf objdump; do - cp ${bootBinutils.out}/bin/$i $out/bin - done - cp -r '${lib.getLib binutils.bintools}'/lib/* "$out/lib/" + # Copy binutils. + for i in as ld ar ranlib nm strip readelf objdump; do + cp ${bootBinutils.out}/bin/$i $out/bin + done + cp -r '${lib.getLib binutils.bintools}'/lib/* "$out/lib/" - chmod -R u+w $out + chmod -R u+w $out - # Strip executables even further. - for i in $out/bin/* $out/libexec/gcc/*/*/*; do - if test -x $i -a ! -L $i; then - chmod +w $i - $STRIP -s $i || true - fi - done + # Strip executables even further. + for i in $out/bin/* $out/libexec/gcc/*/*/*; do + if test -x $i -a ! -L $i; then + chmod +w $i + $STRIP -s $i || true + fi + done - nuke-refs $out/bin/* - nuke-refs $out/lib/* - nuke-refs $out/lib/*/* - nuke-refs $out/libexec/gcc/*/*/* - nuke-refs $out/lib/gcc/*/*/* - nuke-refs $out/lib/gcc/*/*/include-fixed/*{,/*} + nuke-refs $out/bin/* + nuke-refs $out/lib/* + nuke-refs $out/lib/*/* + nuke-refs $out/libexec/gcc/*/*/* + nuke-refs $out/lib/gcc/*/*/* + nuke-refs $out/lib/gcc/*/*/include-fixed/*{,/*} - mkdir $out/.pack - mv $out/* $out/.pack - mv $out/.pack $out/pack + mkdir $out/.pack + mv $out/* $out/.pack + mv $out/.pack $out/pack - mkdir $out/on-server - XZ_OPT="-9 -e" tar cvJf $out/on-server/bootstrap-tools.tar.xz --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . - cp ${busyboxMinimal}/bin/busybox $out/on-server - chmod u+w $out/on-server/busybox - nuke-refs $out/on-server/busybox - ''; # */ + mkdir $out/on-server + XZ_OPT="-9 -e" tar cvJf $out/on-server/bootstrap-tools.tar.xz --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . + cp ${busyboxMinimal}/bin/busybox $out/on-server + chmod u+w $out/on-server/busybox + nuke-refs $out/on-server/busybox + ''; # */ # The result should not contain any references (store paths) so # that we can safely copy them out of the store and to other # locations in the store. - allowedReferences = []; + allowedReferences = [ ]; }; bootstrapFiles = { # Make them their own store paths to test that busybox still works when the binary is named /nix/store/HASH-busybox - busybox = runCommand "busybox" {} "cp ${build}/on-server/busybox $out"; - bootstrapTools = runCommand "bootstrap-tools.tar.xz" {} "cp ${build}/on-server/bootstrap-tools.tar.xz $out"; + busybox = runCommand "busybox" { } "cp ${build}/on-server/busybox $out"; + bootstrapTools = + runCommand "bootstrap-tools.tar.xz" { } + "cp ${build}/on-server/bootstrap-tools.tar.xz $out"; }; bootstrapTools = - let extraAttrs = lib.optionalAttrs - config.contentAddressedByDefault - { + let + extraAttrs = lib.optionalAttrs config.contentAddressedByDefault { __contentAddressed = true; outputHashAlgo = "sha256"; outputHashMode = "recursive"; }; in if (stdenv.hostPlatform.libc == "glibc") then - import ./bootstrap-tools { - inherit (stdenv.buildPlatform) system; # Used to determine where to build - inherit bootstrapFiles extraAttrs; - } + import ./bootstrap-tools { + inherit (stdenv.buildPlatform) system; # Used to determine where to build + inherit bootstrapFiles extraAttrs; + } else if (stdenv.hostPlatform.libc == "musl") then - import ./bootstrap-tools-musl { - inherit (stdenv.buildPlatform) system; # Used to determine where to build - inherit bootstrapFiles extraAttrs; - } - else throw "unsupported libc"; + import ./bootstrap-tools-musl { + inherit (stdenv.buildPlatform) system; # Used to determine where to build + inherit bootstrapFiles extraAttrs; + } + else + throw "unsupported libc"; test = derivation { name = "test-bootstrap-tools"; inherit (stdenv.hostPlatform) system; # We cannot "cross test" builder = bootstrapFiles.busybox; - args = [ "ash" "-e" "-c" "eval \"$buildCommand\"" ]; + args = [ + "ash" + "-e" + "-c" + "eval \"$buildCommand\"" + ]; - buildCommand = '' - export PATH=${bootstrapTools}/bin + buildCommand = + '' + export PATH=${bootstrapTools}/bin - ls -l - mkdir $out - mkdir $out/bin - sed --version - find --version - diff --version - patch --version - make --version - awk --version - grep --version - gcc --version + ls -l + mkdir $out + mkdir $out/bin + sed --version + find --version + diff --version + patch --version + make --version + awk --version + grep --version + gcc --version - '' + lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' - rtld=$(echo ${bootstrapTools}/lib/${builtins.unsafeDiscardStringContext /* only basename */ (builtins.baseNameOf binutils.dynamicLinker)}) - libc_includes=${bootstrapTools}/include-glibc - '' + lib.optionalString (stdenv.hostPlatform.libc == "musl") '' - rtld=$(echo ${bootstrapTools}/lib/ld-musl*.so.?) - libc_includes=${bootstrapTools}/include-libc - '' + '' - # path to version-specific libraries, like libstdc++.so - cxx_libs=$(echo ${bootstrapTools}/lib/gcc/*/*) - export CPP="cpp -idirafter $libc_includes -B${bootstrapTools}" - export CC="gcc -idirafter $libc_includes -B${bootstrapTools} -Wl,-dynamic-linker,$rtld -Wl,-rpath,${bootstrapTools}/lib -Wl,-rpath,$cxx_libs" - export CXX="g++ -idirafter $libc_includes -B${bootstrapTools} -Wl,-dynamic-linker,$rtld -Wl,-rpath,${bootstrapTools}/lib -Wl,-rpath,$cxx_libs" + '' + + lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' + rtld=$(echo ${bootstrapTools}/lib/${builtins.unsafeDiscardStringContext # only basename + (builtins.baseNameOf binutils.dynamicLinker)}) + libc_includes=${bootstrapTools}/include-glibc + '' + + lib.optionalString (stdenv.hostPlatform.libc == "musl") '' + rtld=$(echo ${bootstrapTools}/lib/ld-musl*.so.?) + libc_includes=${bootstrapTools}/include-libc + '' + + '' + # path to version-specific libraries, like libstdc++.so + cxx_libs=$(echo ${bootstrapTools}/lib/gcc/*/*) + export CPP="cpp -idirafter $libc_includes -B${bootstrapTools}" + export CC="gcc -idirafter $libc_includes -B${bootstrapTools} -Wl,-dynamic-linker,$rtld -Wl,-rpath,${bootstrapTools}/lib -Wl,-rpath,$cxx_libs" + export CXX="g++ -idirafter $libc_includes -B${bootstrapTools} -Wl,-dynamic-linker,$rtld -Wl,-rpath,${bootstrapTools}/lib -Wl,-rpath,$cxx_libs" - echo '#include ' >> foo.c - echo '#include ' >> foo.c - echo 'int main() { printf("Hello World\\n"); return 0; }' >> foo.c - $CC -o $out/bin/foo foo.c - $out/bin/foo + echo '#include ' >> foo.c + echo '#include ' >> foo.c + echo 'int main() { printf("Hello World\\n"); return 0; }' >> foo.c + $CC -o $out/bin/foo foo.c + $out/bin/foo - echo '#include ' >> bar.cc - echo 'int main() { std::cout << "Hello World\\n"; }' >> bar.cc - $CXX -v -o $out/bin/bar bar.cc - $out/bin/bar + echo '#include ' >> bar.cc + echo 'int main() { std::cout << "Hello World\\n"; }' >> bar.cc + $CXX -v -o $out/bin/bar bar.cc + $out/bin/bar - tar xvf ${hello.src} - cd hello-* - ./configure --prefix=$out - make - make install - ''; + tar xvf ${hello.src} + cd hello-* + ./configure --prefix=$out + make + make install + ''; }; } diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix index 242bf9d..839bbbb 100644 --- a/pkgs/stdenv/native/default.nix +++ b/pkgs/stdenv/native/default.nix @@ -1,5 +1,10 @@ -{ lib -, localSystem, crossSystem, config, overlays, crossOverlays ? [] +{ + lib, + localSystem, + crossSystem, + config, + overlays, + crossOverlays ? [ ], }: assert crossSystem == localSystem; @@ -8,14 +13,20 @@ let inherit (localSystem) system; shell = - if system == "i686-freebsd" || system == "x86_64-freebsd" then "/usr/local/bin/bash" - else "/bin/bash"; + if system == "i686-freebsd" || system == "x86_64-freebsd" then + "/usr/local/bin/bash" + else + "/bin/bash"; path = - (lib.optionals (system == "i686-solaris") [ "/usr/gnu" ]) ++ - (lib.optionals (system == "i686-netbsd") [ "/usr/pkg" ]) ++ - (lib.optionals (system == "x86_64-solaris") [ "/opt/local/gnu" ]) ++ - ["/" "/usr" "/usr/local"]; + (lib.optionals (system == "i686-solaris") [ "/usr/gnu" ]) + ++ (lib.optionals (system == "i686-netbsd") [ "/usr/pkg" ]) + ++ (lib.optionals (system == "x86_64-solaris") [ "/opt/local/gnu" ]) + ++ [ + "/" + "/usr" + "/usr/local" + ]; prehookBase = '' # Disable purity tests; it's allowed (even needed) to link to @@ -66,19 +77,30 @@ let export lt_cv_deplibs_check_method=pass_all ''; - extraNativeBuildInputsCygwin = [ - ../cygwin/all-buildinputs-as-runtimedep.sh - ../cygwin/wrap-exes-to-find-dlls.sh - ] ++ (if system == "i686-cygwin" then [ - ../cygwin/rebase-i686.sh - ] else if system == "x86_64-cygwin" then [ - ../cygwin/rebase-x86_64.sh - ] else []); + extraNativeBuildInputsCygwin = + [ + ../cygwin/all-buildinputs-as-runtimedep.sh + ../cygwin/wrap-exes-to-find-dlls.sh + ] + ++ ( + if system == "i686-cygwin" then + [ ../cygwin/rebase-i686.sh ] + else if system == "x86_64-cygwin" then + [ ../cygwin/rebase-x86_64.sh ] + else + [ ] + ); # A function that builds a "native" stdenv (one that uses tools in # /usr etc.). makeStdenv = - { cc, fetchurl, extraPath ? [], overrides ? (self: super: { }), extraNativeBuildInputs ? [] }: + { + cc, + fetchurl, + extraPath ? [ ], + overrides ? (self: super: { }), + extraNativeBuildInputs ? [ ], + }: import ../generic { buildPlatform = localSystem; @@ -86,76 +108,103 @@ let targetPlatform = localSystem; preHook = - if system == "i686-freebsd" then prehookFreeBSD else - if system == "x86_64-freebsd" then prehookFreeBSD else - if system == "i686-openbsd" then prehookOpenBSD else - if system == "i686-netbsd" then prehookNetBSD else - if system == "i686-cygwin" then prehookCygwin else - if system == "x86_64-cygwin" then prehookCygwin else - prehookBase; + if system == "i686-freebsd" then + prehookFreeBSD + else if system == "x86_64-freebsd" then + prehookFreeBSD + else if system == "i686-openbsd" then + prehookOpenBSD + else if system == "i686-netbsd" then + prehookNetBSD + else if system == "i686-cygwin" then + prehookCygwin + else if system == "x86_64-cygwin" then + prehookCygwin + else + prehookBase; - extraNativeBuildInputs = extraNativeBuildInputs ++ - (if system == "i686-cygwin" then extraNativeBuildInputsCygwin else - if system == "x86_64-cygwin" then extraNativeBuildInputsCygwin else - []); + extraNativeBuildInputs = + extraNativeBuildInputs + ++ ( + if system == "i686-cygwin" then + extraNativeBuildInputsCygwin + else if system == "x86_64-cygwin" then + extraNativeBuildInputsCygwin + else + [ ] + ); initialPath = extraPath ++ path; fetchurlBoot = fetchurl; - inherit shell cc overrides config; + inherit + shell + cc + overrides + config + ; }; in [ - ({}: rec { - __raw = true; + ( + { }: + rec { + __raw = true; - stdenv = makeStdenv { - cc = null; - fetchurl = null; - }; - stdenvNoCC = stdenv; - - cc = let - nativePrefix = { # switch - i686-solaris = "/usr/gnu"; - x86_64-solaris = "/opt/local/gcc47"; - }.${system} or "/usr"; - in - import ../../build-support/cc-wrapper { - name = "cc-native"; - nativeTools = true; - nativeLibc = true; - inherit lib nativePrefix; - bintools = import ../../build-support/bintools-wrapper { - name = "bintools"; - inherit lib stdenvNoCC nativePrefix; - nativeTools = true; - nativeLibc = true; + stdenv = makeStdenv { + cc = null; + fetchurl = null; }; - inherit stdenvNoCC; - }; + stdenvNoCC = stdenv; - fetchurl = import ../../build-support/fetchurl { - inherit lib stdenvNoCC; - # Curl should be in /usr/bin or so. - curl = null; - }; + cc = + let + nativePrefix = + { + # switch + i686-solaris = "/usr/gnu"; + x86_64-solaris = "/opt/local/gcc47"; + } + .${system} or "/usr"; + in + import ../../build-support/cc-wrapper { + name = "cc-native"; + nativeTools = true; + nativeLibc = true; + inherit lib nativePrefix; + bintools = import ../../build-support/bintools-wrapper { + name = "bintools"; + inherit lib stdenvNoCC nativePrefix; + nativeTools = true; + nativeLibc = true; + }; + inherit stdenvNoCC; + }; - }) + fetchurl = import ../../build-support/fetchurl { + inherit lib stdenvNoCC; + # Curl should be in /usr/bin or so. + curl = null; + }; + + } + ) # First build a stdenv based only on tools outside the store. (prevStage: { inherit config overlays; - stdenv = makeStdenv { - inherit (prevStage) cc fetchurl; - overrides = self: super: { inherit (prevStage) fetchurl; }; - } // { - inherit (prevStage) fetchurl; - }; + stdenv = + makeStdenv { + inherit (prevStage) cc fetchurl; + overrides = self: super: { inherit (prevStage) fetchurl; }; + } + // { + inherit (prevStage) fetchurl; + }; }) # Using that, build a stdenv that adds the ‘xz’ command (which most systems @@ -166,7 +215,7 @@ in inherit (prevStage.stdenv) cc fetchurl; extraPath = [ prevStage.xz ]; overrides = self: super: { inherit (prevStage) fetchurl xz; }; - extraNativeBuildInputs = if localSystem.isLinux then [ prevStage.patchelf ] else []; + extraNativeBuildInputs = if localSystem.isLinux then [ prevStage.patchelf ] else [ ]; }; }) diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix index e9e9936..59e6796 100644 --- a/pkgs/stdenv/nix/default.nix +++ b/pkgs/stdenv/nix/default.nix @@ -1,12 +1,17 @@ -{ lib -, crossSystem, localSystem, config, overlays -, bootStages -, ... +{ + lib, + crossSystem, + localSystem, + config, + overlays, + bootStages, + ... }: assert crossSystem == localSystem; -bootStages ++ [ +bootStages +++ [ (prevStage: { inherit config overlays; @@ -28,7 +33,12 @@ bootStages ++ [ nativeTools = false; nativePrefix = lib.optionalString hostPlatform.isSunOS "/usr"; nativeLibc = true; - inherit (prevStage) stdenvNoCC binutils coreutils gnugrep; + inherit (prevStage) + stdenvNoCC + binutils + coreutils + gnugrep + ; cc = prevStage.gcc.cc; isGNU = true; shell = prevStage.bash + "/bin/sh"; @@ -42,8 +52,21 @@ bootStages ++ [ inherit cc; inherit (cc) binutils; inherit (prevStage) - gzip bzip2 xz bash coreutils diffutils findutils gawk - gnumake gnused gnutar gnugrep gnupatch perl; + gzip + bzip2 + xz + bash + coreutils + diffutils + findutils + gawk + gnumake + gnused + gnutar + gnugrep + gnupatch + perl + ; }; }; }) diff --git a/pkgs/top-level/base-packages.nix b/pkgs/top-level/base-packages.nix index 5c07506..41a428e 100644 --- a/pkgs/top-level/base-packages.nix +++ b/pkgs/top-level/base-packages.nix @@ -1,11 +1,17 @@ -/* The top-level package collection of nixpkgs. - * It is sorted by categories corresponding to the folder names in the /pkgs - * folder. Inside the categories packages are roughly sorted by alphabet, but - * strict sorting has been long lost due to merges. Please use the full-text - * search of your editor. ;) - * Hint: ### starts category names. - */ -{ lib, noSysDirs, config, overlays }: +/* + The top-level package collection of nixpkgs. + It is sorted by categories corresponding to the folder names in the /pkgs + folder. Inside the categories packages are roughly sorted by alphabet, but + strict sorting has been long lost due to merges. Please use the full-text + search of your editor. ;) + Hint: ### starts category names. +*/ +{ + lib, + noSysDirs, + config, + overlays, +}: res: pkgs: super: with pkgs; @@ -32,19 +38,25 @@ with pkgs; stdenv_32bit = lowPrio (if stdenv.hostPlatform.is32bit then stdenv else multiStdenv); stdenvNoCC = stdenv.override ( - { cc = null; hasCC = false; } - - // lib.optionalAttrs (stdenv.hostPlatform.isDarwin && (stdenv.hostPlatform != stdenv.buildPlatform)) { - # TODO: This is a hack to use stdenvNoCC to produce a CF when cross - # compiling. It's not very sound. The cross stdenv has: - # extraBuildInputs = [ targetPackages.darwin.apple_sdks.frameworks.CoreFoundation ] - # and uses stdenvNoCC. In order to make this not infinitely recursive, we - # need to exclude this extraBuildInput. - extraBuildInputs = [ ]; + { + cc = null; + hasCC = false; } + + // + lib.optionalAttrs (stdenv.hostPlatform.isDarwin && (stdenv.hostPlatform != stdenv.buildPlatform)) + { + # TODO: This is a hack to use stdenvNoCC to produce a CF when cross + # compiling. It's not very sound. The cross stdenv has: + # extraBuildInputs = [ targetPackages.darwin.apple_sdks.frameworks.CoreFoundation ] + # and uses stdenvNoCC. In order to make this not infinitely recursive, we + # need to exclude this extraBuildInput. + extraBuildInputs = [ ]; + } ); - mkStdenvNoLibs = stdenv: + mkStdenvNoLibs = + stdenv: let bintools = stdenv.cc.bintools.override { libc = null; @@ -58,26 +70,28 @@ with pkgs; extraPackages = [ ]; inherit bintools; }; - allowedRequisites = - lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null); + allowedRequisites = lib.mapNullable (rs: rs ++ [ bintools ]) (stdenv.allowedRequisites or null); }; stdenvNoLibs = - if stdenv.hostPlatform != stdenv.buildPlatform && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.useLLVM or false) + if + stdenv.hostPlatform != stdenv.buildPlatform + && (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.useLLVM or false) then - # We cannot touch binutils or cc themselves, because that will cause - # infinite recursion. So instead, we just choose a libc based on the - # current platform. That means we won't respect whatever compiler was - # passed in with the stdenv stage argument. - # - # TODO It would be much better to pass the `stdenvNoCC` and *unwrapped* - # cc, bintools, compiler-rt equivalent, etc. and create all final stdenvs - # as part of the stage. Then we would never be tempted to override a later - # thing to to create an earlier thing (leading to infinite recursion) and - # we also would still respect the stage arguments choices for these - # things. + # We cannot touch binutils or cc themselves, because that will cause + # infinite recursion. So instead, we just choose a libc based on the + # current platform. That means we won't respect whatever compiler was + # passed in with the stdenv stage argument. + # + # TODO It would be much better to pass the `stdenvNoCC` and *unwrapped* + # cc, bintools, compiler-rt equivalent, etc. and create all final stdenvs + # as part of the stage. Then we would never be tempted to override a later + # thing to to create an earlier thing (leading to infinite recursion) and + # we also would still respect the stage arguments choices for these + # things. overrideCC stdenv buildPackages.llvmPackages.clangNoCompilerRt - else mkStdenvNoLibs stdenv; + else + mkStdenvNoLibs stdenv; gccStdenvNoLibs = mkStdenvNoLibs gccStdenv; clangStdenvNoLibs = mkStdenvNoLibs clangStdenv; @@ -111,59 +125,88 @@ with pkgs; let inherit (stdenv.targetPlatform) libc; in - if stdenv.targetPlatform.isMinGW then targetPackages.windows.mingw_w64_headers or windows.mingw_w64_headers - else if libc == "nblibc" then targetPackages.netbsdCross.headers or netbsdCross.headers - else if libc == "libSystem" && stdenv.targetPlatform.isAarch64 then targetPackages.darwin.LibsystemCross or darwin.LibsystemCross - else null; + if stdenv.targetPlatform.isMinGW then + targetPackages.windows.mingw_w64_headers or windows.mingw_w64_headers + else if libc == "nblibc" then + targetPackages.netbsdCross.headers or netbsdCross.headers + else if libc == "libSystem" && stdenv.targetPlatform.isAarch64 then + targetPackages.darwin.LibsystemCross or darwin.LibsystemCross + else + null; # We can choose: - libcCrossChooser = name: + libcCrossChooser = + name: # libc is hackily often used from the previous stage. This `or` # hack fixes the hack, *sigh*. - /**/ - if name == null then null - else if name == "glibc" then targetPackages.glibcCross or glibcCross - else if name == "bionic" then targetPackages.bionic or bionic - else if name == "uclibc" then targetPackages.uclibcCross or uclibcCross - else if name == "avrlibc" then targetPackages.avrlibcCross or avrlibcCross - else if name == "newlib" && stdenv.targetPlatform.isMsp430 then targetPackages.msp430NewlibCross or msp430NewlibCross - else if name == "newlib" && stdenv.targetPlatform.isVc4 then targetPackages.vc4-newlib or vc4-newlib - else if name == "newlib" && stdenv.targetPlatform.isOr1k then targetPackages.or1k-newlib or or1k-newlib - else if name == "newlib" then targetPackages.newlibCross or newlibCross - else if name == "newlib-nano" then targetPackages.newlib-nanoCross or newlib-nanoCross - else if name == "musl" then targetPackages.muslCross or muslCross - else if name == "msvcrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64 - else if name == "ucrt" then targetPackages.windows.mingw_w64 or windows.mingw_w64 + if name == null then + null + else if name == "glibc" then + targetPackages.glibcCross or glibcCross + else if name == "bionic" then + targetPackages.bionic or bionic + else if name == "uclibc" then + targetPackages.uclibcCross or uclibcCross + else if name == "avrlibc" then + targetPackages.avrlibcCross or avrlibcCross + else if name == "newlib" && stdenv.targetPlatform.isMsp430 then + targetPackages.msp430NewlibCross or msp430NewlibCross + else if name == "newlib" && stdenv.targetPlatform.isVc4 then + targetPackages.vc4-newlib or vc4-newlib + else if name == "newlib" && stdenv.targetPlatform.isOr1k then + targetPackages.or1k-newlib or or1k-newlib + else if name == "newlib" then + targetPackages.newlibCross or newlibCross + else if name == "newlib-nano" then + targetPackages.newlib-nanoCross or newlib-nanoCross + else if name == "musl" then + targetPackages.muslCross or muslCross + else if name == "msvcrt" then + targetPackages.windows.mingw_w64 or windows.mingw_w64 + else if name == "ucrt" then + targetPackages.windows.mingw_w64 or windows.mingw_w64 else if name == "libSystem" then - if stdenv.targetPlatform.useiOSPrebuilt - then targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries - else targetPackages.darwin.LibsystemCross or (throw "don't yet have a `targetPackages.darwin.LibsystemCross for ${stdenv.targetPlatform.config}`") - else if name == "fblibc" then targetPackages.freebsdCross.libc or freebsdCross.libc - else if name == "nblibc" then targetPackages.netbsdCross.libc or netbsdCross.libc - else if name == "wasilibc" then targetPackages.wasilibc or wasilibc - else if name == "relibc" then targetPackages.relibc or relibc - else throw "Unknown libc ${name}"; + if stdenv.targetPlatform.useiOSPrebuilt then + targetPackages.darwin.iosSdkPkgs.libraries or darwin.iosSdkPkgs.libraries + else + targetPackages.darwin.LibsystemCross + or (throw "don't yet have a `targetPackages.darwin.LibsystemCross for ${stdenv.targetPlatform.config}`") + else if name == "fblibc" then + targetPackages.freebsdCross.libc or freebsdCross.libc + else if name == "nblibc" then + targetPackages.netbsdCross.libc or netbsdCross.libc + else if name == "wasilibc" then + targetPackages.wasilibc or wasilibc + else if name == "relibc" then + targetPackages.relibc or relibc + else + throw "Unknown libc ${name}"; - libcCross = assert stdenv.targetPlatform != stdenv.buildPlatform; libcCrossChooser stdenv.targetPlatform.libc; + libcCross = + assert stdenv.targetPlatform != stdenv.buildPlatform; + libcCrossChooser stdenv.targetPlatform.libc; threadsCross = threadsCrossFor null; - threadsCrossFor = cc_version: + threadsCrossFor = + cc_version: lib.optionalAttrs (stdenv.targetPlatform.isMinGW && !(stdenv.targetPlatform.useLLVM or false)) { # other possible values: win32 or posix model = "mcf"; # For win32 or posix set this to null package = - if cc_version == null || lib.versionAtLeast cc_version "13" - then targetPackages.windows.mcfgthreads or windows.mcfgthreads - else targetPackages.windows.mcfgthreads_pre_gcc_13 or windows.mcfgthreads_pre_gcc_13; + if cc_version == null || lib.versionAtLeast cc_version "13" then + targetPackages.windows.mcfgthreads or windows.mcfgthreads + else + targetPackages.windows.mcfgthreads_pre_gcc_13 or windows.mcfgthreads_pre_gcc_13; }; multiStdenv = if stdenv.cc.isClang then clangMultiStdenv else gccMultiStdenv; crossLibcStdenv = - if stdenv.hostPlatform.useLLVM or false || stdenv.hostPlatform.isDarwin - then overrideCC stdenv buildPackages.llvmPackages.clangNoLibc - else gccCrossLibcStdenv; + if stdenv.hostPlatform.useLLVM or false || stdenv.hostPlatform.isDarwin then + overrideCC stdenv buildPackages.llvmPackages.clangNoLibc + else + gccCrossLibcStdenv; runtimeShell = "${runtimeShellPackage}${runtimeShellPackage.shellPath}"; runtimeShellPackage = bash; diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix index 67a9a60..f800ee5 100644 --- a/pkgs/top-level/config.nix +++ b/pkgs/top-level/config.nix @@ -17,32 +17,39 @@ let types ; - mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // { - type = args.type or (types.uniq types.bool); - default = args.default or false; - description = ((args.description or '' - Whether to ${args.feature} while building nixpkgs packages. - '') + '' - Changing the default may cause a mass rebuild. - ''); - }); + mkMassRebuild = + args: + mkOption ( + builtins.removeAttrs args [ "feature" ] + // { + type = args.type or (types.uniq types.bool); + default = args.default or false; + description = ( + (args.description or '' + Whether to ${args.feature} while building nixpkgs packages. + '' + ) + + '' + Changing the default may cause a mass rebuild. + '' + ); + } + ); options = { - /* Internal stuff */ + # Internal stuff # Hide built-in module system options from docs. - _module.args = mkOption { - internal = true; - }; + _module.args = mkOption { internal = true; }; warnings = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; internal = true; }; - /* Config options */ + # Config options warnUndeclaredOptions = mkOption { description = "Whether to warn when `config` contains an unrecognized attribute."; @@ -50,13 +57,9 @@ let default = false; }; - doCheckByDefault = mkMassRebuild { - feature = "run `checkPhase` by default"; - }; + doCheckByDefault = mkMassRebuild { feature = "run `checkPhase` by default"; }; - strictDepsByDefault = mkMassRebuild { - feature = "set `strictDeps` to true by default"; - }; + strictDepsByDefault = mkMassRebuild { feature = "set `strictDeps` to true by default"; }; structuredAttrsByDefault = mkMassRebuild { feature = "set `__structuredAttrs` to true by default"; @@ -142,7 +145,7 @@ let showDerivationWarnings = mkOption { type = types.listOf (types.enum [ "maintainerless" ]); - default = []; + default = [ ]; description = '' Which warnings to display for potentially dangerous or deprecated values passed into `stdenv.mkDerivation`. @@ -164,21 +167,28 @@ let }; }; -in { +in +{ freeformType = - let t = types.lazyAttrsOf types.raw; - in t // { - merge = loc: defs: - let r = t.merge loc defs; - in r // { _undeclared = r; }; + let + t = types.lazyAttrsOf types.raw; + in + t + // { + merge = + loc: defs: + let + r = t.merge loc defs; + in + r // { _undeclared = r; }; }; inherit options; config = { warnings = optionals config.warnUndeclaredOptions ( - mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or {} + mapAttrsToList (k: v: "undeclared Nixpkgs option set: config.${k}") config._undeclared or { } ); }; diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index 828b72e..fc8e866 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -1,62 +1,72 @@ -/* This function composes the Nix Packages collection. It: +/* + This function composes the Nix Packages collection. It: - 1. Elaborates `localSystem` and `crossSystem` with defaults as needed. + 1. Elaborates `localSystem` and `crossSystem` with defaults as needed. - 2. Applies the final stage to the given `config` if it is a function + 2. Applies the final stage to the given `config` if it is a function - 3. Defaults to no non-standard config and no cross-compilation target + 3. Defaults to no non-standard config and no cross-compilation target - 4. Uses the above to infer the default standard environment's (stdenv's) - stages if no stdenv's are provided + 4. Uses the above to infer the default standard environment's (stdenv's) + stages if no stdenv's are provided - 5. Folds the stages to yield the final fully booted package set for the - chosen stdenv + 5. Folds the stages to yield the final fully booted package set for the + chosen stdenv - Use `impure.nix` to also infer the `system` based on the one on which - evaluation is taking place, and the configuration from environment variables - or dot-files. */ + Use `impure.nix` to also infer the `system` based on the one on which + evaluation is taking place, and the configuration from environment variables + or dot-files. +*/ -{ # The system packages will be built on. See the manual for the +{ + # The system packages will be built on. See the manual for the # subtle division of labor between these two `*System`s and the three # `*Platform`s. - localSystem + localSystem, -, lib ? import ../../lib + lib ? import ../../lib, -, # The system packages will ultimately be run on. - crossSystem ? localSystem + # The system packages will ultimately be run on. + crossSystem ? localSystem, -, # Allow a configuration attribute set to be passed in as an argument. - config ? {} + # Allow a configuration attribute set to be passed in as an argument. + config ? { }, -, # List of overlays layers used to extend Nixpkgs. - overlays ? [] + # List of overlays layers used to extend Nixpkgs. + overlays ? [ ], -, # List of overlays to apply to target packages only. - crossOverlays ? [] + # List of overlays to apply to target packages only. + crossOverlays ? [ ], -, # A function booting the final package set for a specific standard + # A function booting the final package set for a specific standard # environment. See below for the arguments given to that function, the type of # list it returns. - stdenvStages ? import ../stdenv + stdenvStages ? import ../stdenv, -, # Ignore unexpected args. + # Ignore unexpected args. ... -} @ args: +}@args: let # Rename the function arguments config0 = config; crossSystem0 = crossSystem; -in let +in +let inherit (lib) throwIfNot; checked = - throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list." - lib.foldr (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") (r: r) overlays - throwIfNot (lib.isList crossOverlays) "The crossOverlays argument to nixpkgs must be a list." - lib.foldr (x: throwIfNot (lib.isFunction x) "All crossOverlays passed to nixpkgs must be functions.") (r: r) crossOverlays - ; + throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list." lib.foldr + (x: throwIfNot (lib.isFunction x) "All overlays passed to nixpkgs must be functions.") + (r: r) + overlays + throwIfNot + (lib.isList crossOverlays) + "The crossOverlays argument to nixpkgs must be a list." + lib.foldr + (x: throwIfNot (lib.isFunction x) "All crossOverlays passed to nixpkgs must be functions.") + (r: r) + crossOverlays; localSystem = lib.systems.elaborate args.localSystem; @@ -73,26 +83,26 @@ in let # Both systems are semantically equivalent as the same vendor and ABI are # inferred from the system double in `localSystem`. crossSystem = - let system = lib.systems.elaborate crossSystem0; in - if crossSystem0 == null || lib.systems.equals system localSystem - then localSystem - else system; + let + system = lib.systems.elaborate crossSystem0; + in + if crossSystem0 == null || lib.systems.equals system localSystem then localSystem else system; # Allow both: # { /* the config */ } and # { pkgs, ... } : { /* the config */ } - config1 = - if lib.isFunction config0 - then config0 { inherit pkgs; } - else config0; + config1 = if lib.isFunction config0 then config0 { inherit pkgs; } else config0; configEval = lib.evalModules { modules = [ ./config.nix - ({ options, ... }: { - _file = "nixpkgs.config"; - config = config1; - }) + ( + { options, ... }: + { + _file = "nixpkgs.config"; + config = config1; + } + ) ]; class = "nixpkgsConfig"; }; @@ -129,16 +139,22 @@ in let # Partially apply some arguments for building bootstraping stage pkgs # sets. Only apply arguments which no stdenv would want to override. - allPackages = newArgs: import ./stage.nix ({ - inherit lib nixpkgsFun; - } // newArgs); + allPackages = newArgs: import ./stage.nix ({ inherit lib nixpkgsFun; } // newArgs); boot = import ../stdenv/booter.nix { inherit lib allPackages; }; stages = stdenvStages { - inherit lib localSystem crossSystem config overlays crossOverlays; + inherit + lib + localSystem + crossSystem + config + overlays + crossOverlays + ; }; pkgs = boot stages; -in checked pkgs +in +checked pkgs diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix index 9a05545..fee88c3 100644 --- a/pkgs/top-level/impure.nix +++ b/pkgs/top-level/impure.nix @@ -1,88 +1,113 @@ -/* Impure default args for `pkgs/top-level/default.nix`. See that file - for the meaning of each argument. */ +/* + Impure default args for `pkgs/top-level/default.nix`. See that file + for the meaning of each argument. +*/ let homeDir = builtins.getEnv "HOME"; # Return ‘x’ if it evaluates, or ‘def’ if it throws an exception. - try = x: def: let res = builtins.tryEval x; in if res.success then res.value else def; + try = + x: def: + let + res = builtins.tryEval x; + in + if res.success then res.value else def; in -{ # We put legacy `system` into `localSystem`, if `localSystem` was not passed. +{ + # We put legacy `system` into `localSystem`, if `localSystem` was not passed. # If neither is passed, assume we are building packages on the current # (build, in GNU Autotools parlance) platform. - localSystem ? { system = args.system or builtins.currentSystem; } + localSystem ? { + system = args.system or builtins.currentSystem; + }, -# These are needed only because nix's `--arg` command-line logic doesn't work -# with unnamed parameters allowed by ... -, system ? localSystem.system -, crossSystem ? localSystem + # These are needed only because nix's `--arg` command-line logic doesn't work + # with unnamed parameters allowed by ... + system ? localSystem.system, + crossSystem ? localSystem, -, # Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or + # Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or # $HOME/.config/nixpkgs/config.nix. - config ? let + config ? + let configFile = builtins.getEnv "NIXPKGS_CONFIG"; configFile2 = homeDir + "/.config/nixpkgs/config.nix"; configFile3 = homeDir + "/.nixpkgs/config.nix"; # obsolete in - if configFile != "" && builtins.pathExists configFile then import configFile - else if homeDir != "" && builtins.pathExists configFile2 then import configFile2 - else if homeDir != "" && builtins.pathExists configFile3 then import configFile3 - else {} + if configFile != "" && builtins.pathExists configFile then + import configFile + else if homeDir != "" && builtins.pathExists configFile2 then + import configFile2 + else if homeDir != "" && builtins.pathExists configFile3 then + import configFile3 + else + { }, -, # Overlays are used to extend Nixpkgs collection with additional + # Overlays are used to extend Nixpkgs collection with additional # collections of packages. These collection of packages are part of the # fix-point made by Nixpkgs. - overlays ? let + overlays ? + let isDir = path: builtins.pathExists (path + "/."); pathOverlays = try (toString ) ""; homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix"; homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays"; - overlays = path: + overlays = + path: # check if the path is a directory or a file if isDir path then # it's a directory, so the set of overlays from the directory, ordered lexicographically - let content = builtins.readDir path; in - map (n: import (path + ("/" + n))) - (builtins.filter - (n: - (builtins.match ".*\\.nix" n != null && - # ignore Emacs lock files (.#foo.nix) - builtins.match "\\.#.*" n == null) || - builtins.pathExists (path + ("/" + n + "/default.nix"))) - (builtins.attrNames content)) + let + content = builtins.readDir path; + in + map (n: import (path + ("/" + n))) ( + builtins.filter ( + n: + ( + builtins.match ".*\\.nix" n != null + && + # ignore Emacs lock files (.#foo.nix) + builtins.match "\\.#.*" n == null + ) + || builtins.pathExists (path + ("/" + n + "/default.nix")) + ) (builtins.attrNames content) + ) else # it's a file, so the result is the contents of the file itself import path; in - if pathOverlays != "" && builtins.pathExists pathOverlays then overlays pathOverlays - else if builtins.pathExists homeOverlaysFile && builtins.pathExists homeOverlaysDir then - throw '' - Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both. - Please remove one of them and try again. - '' - else if builtins.pathExists homeOverlaysFile then - if isDir homeOverlaysFile then - throw (homeOverlaysFile + " should be a file") - else overlays homeOverlaysFile - else if builtins.pathExists homeOverlaysDir then - if !(isDir homeOverlaysDir) then - throw (homeOverlaysDir + " should be a directory") - else overlays homeOverlaysDir - else [] + if pathOverlays != "" && builtins.pathExists pathOverlays then + overlays pathOverlays + else if builtins.pathExists homeOverlaysFile && builtins.pathExists homeOverlaysDir then + throw '' + Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both. + Please remove one of them and try again. + '' + else if builtins.pathExists homeOverlaysFile then + if isDir homeOverlaysFile then + throw (homeOverlaysFile + " should be a file") + else + overlays homeOverlaysFile + else if builtins.pathExists homeOverlaysDir then + if !(isDir homeOverlaysDir) then + throw (homeOverlaysDir + " should be a directory") + else + overlays homeOverlaysDir + else + [ ], -, crossOverlays ? [] + crossOverlays ? [ ], -, ... -} @ args: + ... +}@args: # If `localSystem` was explicitly passed, legacy `system` should # not be passed, and vice-versa. assert args ? localSystem -> !(args ? system); assert args ? system -> !(args ? localSystem); -import ./. (builtins.removeAttrs args [ "system" ] // { - inherit config overlays localSystem; -}) +import ./. (builtins.removeAttrs args [ "system" ] // { inherit config overlays localSystem; }) diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix index 9ac0fe2..e2da49d 100644 --- a/pkgs/top-level/splice.nix +++ b/pkgs/top-level/splice.nix @@ -19,19 +19,24 @@ lib: pkgs: actuallySplice: let spliceReal = - { pkgsBuildBuild - , pkgsBuildHost - , pkgsBuildTarget - , pkgsHostHost - , pkgsHostTarget - , pkgsTargetTarget + { + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsHostTarget, + pkgsTargetTarget, }: let mash = # Other pkgs sets - pkgsBuildBuild // pkgsBuildTarget // pkgsHostHost // pkgsTargetTarget + pkgsBuildBuild + // pkgsBuildTarget + // pkgsHostHost + // pkgsTargetTarget # The same pkgs sets one probably intends - // pkgsBuildHost // pkgsHostTarget; + // pkgsBuildHost + // pkgsHostTarget; merge = name: { inherit name; value = @@ -44,90 +49,103 @@ let valueHostHost = pkgsHostHost.${name} or { }; valueHostTarget = pkgsHostTarget.${name} or { }; valueTargetTarget = pkgsTargetTarget.${name} or { }; - augmentedValue = defaultValue - // { + augmentedValue = defaultValue // { __spliced = (lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; }) - // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { buildHost = valueBuildHost; }) - // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; }) - // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; }) - // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { hostTarget = valueHostTarget; }) - // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { - targetTarget = valueTargetTarget; - }); + // (lib.optionalAttrs (pkgsBuildHost ? ${name}) { buildHost = valueBuildHost; }) + // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; }) + // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; }) + // (lib.optionalAttrs (pkgsHostTarget ? ${name}) { hostTarget = valueHostTarget; }) + // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { targetTarget = valueTargetTarget; }); }; # Get the set of outputs of a derivation. If one derivation fails to # evaluate we don't want to diverge the entire splice, so we fall back # on {} - tryGetOutputs = value0: + tryGetOutputs = + value0: let inherit (builtins.tryEval value0) success value; in getOutputs (lib.optionalAttrs success value); - getOutputs = value: lib.genAttrs - (value.outputs or (lib.optional (value ? out) "out")) - (output: value.${output}); + getOutputs = + value: lib.genAttrs (value.outputs or (lib.optional (value ? out) "out")) (output: value.${output}); in # The derivation along with its outputs, which we recur - # on to splice them together. - if lib.isDerivation defaultValue then augmentedValue // spliceReal { - pkgsBuildBuild = tryGetOutputs valueBuildBuild; - pkgsBuildHost = tryGetOutputs valueBuildHost; - pkgsBuildTarget = tryGetOutputs valueBuildTarget; - pkgsHostHost = tryGetOutputs valueHostHost; - pkgsHostTarget = getOutputs valueHostTarget; - pkgsTargetTarget = tryGetOutputs valueTargetTarget; - # Just recur on plain attrsets - } else if lib.isAttrs defaultValue then - spliceReal - { - pkgsBuildBuild = valueBuildBuild; - pkgsBuildHost = valueBuildHost; - pkgsBuildTarget = valueBuildTarget; - pkgsHostHost = valueHostHost; - pkgsHostTarget = valueHostTarget; - pkgsTargetTarget = valueTargetTarget; - # Don't be fancy about non-derivations. But we could have used used - # `__functor__` for functions instead. - } else defaultValue; + # on to splice them together. + if lib.isDerivation defaultValue then + augmentedValue + // spliceReal { + pkgsBuildBuild = tryGetOutputs valueBuildBuild; + pkgsBuildHost = tryGetOutputs valueBuildHost; + pkgsBuildTarget = tryGetOutputs valueBuildTarget; + pkgsHostHost = tryGetOutputs valueHostHost; + pkgsHostTarget = getOutputs valueHostTarget; + pkgsTargetTarget = tryGetOutputs valueTargetTarget; + # Just recur on plain attrsets + } + else if lib.isAttrs defaultValue then + spliceReal { + pkgsBuildBuild = valueBuildBuild; + pkgsBuildHost = valueBuildHost; + pkgsBuildTarget = valueBuildTarget; + pkgsHostHost = valueHostHost; + pkgsHostTarget = valueHostTarget; + pkgsTargetTarget = valueTargetTarget; + # Don't be fancy about non-derivations. But we could have used used + # `__functor__` for functions instead. + } + else + defaultValue; }; in lib.listToAttrs (map merge (lib.attrNames mash)); splicePackages = - { pkgsBuildBuild - , pkgsBuildHost - , pkgsBuildTarget - , pkgsHostHost - , pkgsHostTarget - , pkgsTargetTarget - } @ args: + { + pkgsBuildBuild, + pkgsBuildHost, + pkgsBuildTarget, + pkgsHostHost, + pkgsHostTarget, + pkgsTargetTarget, + }@args: if actuallySplice then spliceReal args else pkgsHostTarget; - splicedPackages = splicePackages - { + splicedPackages = + splicePackages { inherit (pkgs) - pkgsBuildBuild pkgsBuildHost pkgsBuildTarget - pkgsHostHost pkgsHostTarget + pkgsBuildBuild + pkgsBuildHost + pkgsBuildTarget + pkgsHostHost + pkgsHostTarget pkgsTargetTarget ; - } // { - # These should never be spliced under any circumstances - inherit (pkgs) - pkgsBuildBuild pkgsBuildHost pkgsBuildTarget - pkgsHostHost pkgsHostTarget - pkgsTargetTarget - buildPackages pkgs targetPackages - ; - inherit (pkgs.stdenv) buildPlatform targetPlatform hostPlatform; - }; + } + // { + # These should never be spliced under any circumstances + inherit (pkgs) + pkgsBuildBuild + pkgsBuildHost + pkgsBuildTarget + pkgsHostHost + pkgsHostTarget + pkgsTargetTarget + buildPackages + pkgs + targetPackages + ; + inherit (pkgs.stdenv) buildPlatform targetPlatform hostPlatform; + }; - splicedPackagesWithXorg = splicedPackages // builtins.removeAttrs splicedPackages.xorg [ - "callPackage" - "newScope" - "overrideScope" - "packages" - ]; + splicedPackagesWithXorg = + splicedPackages + // builtins.removeAttrs splicedPackages.xorg [ + "callPackage" + "newScope" + "overrideScope" + "packages" + ]; in @@ -145,10 +163,14 @@ in # prefill 2 fields of the function for convenience makeScopeWithSplicing = lib.makeScopeWithSplicing splicePackages pkgs.newScope; - makeScopeWithSplicing' = lib.makeScopeWithSplicing' { inherit splicePackages; inherit (pkgs) newScope; }; + makeScopeWithSplicing' = lib.makeScopeWithSplicing' { + inherit splicePackages; + inherit (pkgs) newScope; + }; # generate 'otherSplices' for 'makeScopeWithSplicing' - generateSplicesForMkScope = attr: + generateSplicesForMkScope = + attr: let split = X: lib.splitString "." "${X}.${attr}"; in @@ -164,5 +186,7 @@ in # Haskell package sets need this because they reimplement their own # `newScope`. - __splicedPackages = splicedPackages // { recurseForDerivations = false; }; + __splicedPackages = splicedPackages // { + recurseForDerivations = false; + }; } diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index 1cbf033..18f997e 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -1,35 +1,37 @@ -/* This file composes a single bootstrapping stage of the Nix Packages - collection. That is, it imports the functions that build the various - packages, and calls them with appropriate arguments. The result is a set of - all the packages in the Nix Packages collection for some particular platform - for some particular stage. +/* + This file composes a single bootstrapping stage of the Nix Packages + collection. That is, it imports the functions that build the various + packages, and calls them with appropriate arguments. The result is a set of + all the packages in the Nix Packages collection for some particular platform + for some particular stage. - Default arguments are only provided for bootstrapping - arguments. Normal users should not import this directly but instead - import `pkgs/default.nix` or `default.nix`. */ + Default arguments are only provided for bootstrapping + arguments. Normal users should not import this directly but instead + import `pkgs/default.nix` or `default.nix`. +*/ let - # An overlay to auto-call packages in ../by-name. - # By defining it at the top of the file, - # this value gets reused even if this file is imported multiple times, - # thanks to Nix's import-value cache. - # autoCalledPackages = import ./by-name-overlay.nix ../by-name; in +# An overlay to auto-call packages in ../by-name. +# By defining it at the top of the file, +# this value gets reused even if this file is imported multiple times, +# thanks to Nix's import-value cache. +# autoCalledPackages = import ./by-name-overlay.nix ../by-name; { ## Misc parameters kept the same for all stages ## # Utility functions, could just import but passing in for efficiency - lib + lib, -, # Use to reevaluate Nixpkgs - nixpkgsFun + # Use to reevaluate Nixpkgs + nixpkgsFun, ## Other parameters ## -, # Either null or an object in the form: + # Either null or an object in the form: # # { # pkgsBuildBuild = ...; @@ -45,72 +47,77 @@ in # they are instead defined internally as the current stage. This allows us to # avoid expensive splicing. `pkgsHostTarget` is skipped because it is always # defined as the current stage. - adjacentPackages + adjacentPackages, -, # The standard environment to use for building packages. - stdenv + # The standard environment to use for building packages. + stdenv, -, # This is used because stdenv replacement and the stdenvCross do benefit from + # This is used because stdenv replacement and the stdenvCross do benefit from # the overridden configuration provided by the user, as opposed to the normal # bootstrapping stdenvs. - allowCustomOverrides + allowCustomOverrides, -, # Non-GNU/Linux OSes are currently "impure" platforms, with their libc + # Non-GNU/Linux OSes are currently "impure" platforms, with their libc # outside of the store. Thus, GCC, GFortran, & co. must always look for files # in standard system directories (/usr/include, etc.) - noSysDirs ? stdenv.buildPlatform.system != "x86_64-freebsd" + noSysDirs ? + stdenv.buildPlatform.system != "x86_64-freebsd" && stdenv.buildPlatform.system != "i686-freebsd" && stdenv.buildPlatform.system != "x86_64-solaris" - && stdenv.buildPlatform.system != "x86_64-kfreebsd-gnu" + && stdenv.buildPlatform.system != "x86_64-kfreebsd-gnu", -, # The configuration attribute set - config + # The configuration attribute set + config, -, # A list of overlays (Additional `self: super: { .. }` customization + # A list of overlays (Additional `self: super: { .. }` customization # functions) to be fixed together in the produced package set - overlays + overlays, -} @args: +}@args: let # This is a function from parsed platforms (like # stdenv.hostPlatform.parsed) to parsed platforms. - makeMuslParsedPlatform = parsed: + makeMuslParsedPlatform = + parsed: # The following line guarantees that the output of this function # is a well-formed platform with no missing fields. It will be # uncommented in a separate PR, in case it breaks the build. #(x: lib.trivial.pipe x [ (x: builtins.removeAttrs x [ "_type" ]) lib.systems.parse.mkSystem ]) - (parsed // { - abi = { - gnu = lib.systems.parse.abis.musl; - gnueabi = lib.systems.parse.abis.musleabi; - gnueabihf = lib.systems.parse.abis.musleabihf; - gnuabin32 = lib.systems.parse.abis.muslabin32; - gnuabi64 = lib.systems.parse.abis.muslabi64; - gnuabielfv2 = lib.systems.parse.abis.musl; - gnuabielfv1 = lib.systems.parse.abis.musl; - # The following two entries ensure that this function is idempotent. - musleabi = lib.systems.parse.abis.musleabi; - musleabihf = lib.systems.parse.abis.musleabihf; - muslabin32 = lib.systems.parse.abis.muslabin32; - muslabi64 = lib.systems.parse.abis.muslabi64; - }.${parsed.abi.name} - or lib.systems.parse.abis.musl; - }); + ( + parsed + // { + abi = + { + gnu = lib.systems.parse.abis.musl; + gnueabi = lib.systems.parse.abis.musleabi; + gnueabihf = lib.systems.parse.abis.musleabihf; + gnuabin32 = lib.systems.parse.abis.muslabin32; + gnuabi64 = lib.systems.parse.abis.muslabi64; + gnuabielfv2 = lib.systems.parse.abis.musl; + gnuabielfv1 = lib.systems.parse.abis.musl; + # The following two entries ensure that this function is idempotent. + musleabi = lib.systems.parse.abis.musleabi; + musleabihf = lib.systems.parse.abis.musleabihf; + muslabin32 = lib.systems.parse.abis.muslabin32; + muslabi64 = lib.systems.parse.abis.muslabi64; + } + .${parsed.abi.name} or lib.systems.parse.abis.musl; + } + ); - - stdenvAdapters = self: super: + stdenvAdapters = + self: super: let res = import ../stdenv/adapters.nix { inherit lib config; pkgs = self; }; in - res // { - stdenvAdapters = res; - }; + res // { stdenvAdapters = res; }; - trivialBuilders = self: super: + trivialBuilders = + self: super: import ../build-support/trivial-builders { inherit lib; inherit (self) config; @@ -119,11 +126,12 @@ let inherit (self.pkgsBuildHost.xorg) lndir; }; - stdenvBootstappingAndPlatforms = self: super: + stdenvBootstappingAndPlatforms = + self: super: let - withFallback = thisPkgs: - (if adjacentPackages == null then self else thisPkgs) - // { recurseForDerivations = false; }; + withFallback = + thisPkgs: + (if adjacentPackages == null then self else thisPkgs) // { recurseForDerivations = false; }; in { # Here are package sets of from related stages. They are all in the form @@ -137,7 +145,9 @@ let pkgsBuildHost = withFallback adjacentPackages.pkgsBuildHost; pkgsBuildTarget = withFallback adjacentPackages.pkgsBuildTarget; pkgsHostHost = withFallback adjacentPackages.pkgsHostHost; - pkgsHostTarget = self // { recurseForDerivations = false; }; # always `self` + pkgsHostTarget = self // { + recurseForDerivations = false; + }; # always `self` pkgsTargetTarget = withFallback adjacentPackages.pkgsTargetTarget; # Older names for package sets. Use these when only the host platform of the @@ -153,79 +163,108 @@ let splice = self: super: import ./splice.nix lib self (adjacentPackages != null); - basePackages = self: super: + basePackages = + self: super: let - res = import ./base-packages.nix - { inherit lib noSysDirs config overlays; } - res - self - super; + res = import ./base-packages.nix { + inherit + lib + noSysDirs + config + overlays + ; + } res self super; in res; - commonUpdaterPackages = self: super: + commonUpdaterPackages = + self: super: let - res = import ../common-updater/packages.nix - { inherit lib noSysDirs config overlays; } - res - self - super; + res = import ../common-updater/packages.nix { + inherit + lib + noSysDirs + config + overlays + ; + } res self super; in res; - buildSupportPackages = self: super: + buildSupportPackages = + self: super: let - res = import ../build-support/packages.nix - { inherit lib noSysDirs config overlays; } - res - self - super; + res = import ../build-support/packages.nix { + inherit + lib + noSysDirs + config + overlays + ; + } res self super; in res; # aliases = self: super: lib.optionalAttrs config.allowAliases (import ./aliases.nix lib self super); - byNamePackages = self: super: + byNamePackages = + self: super: let inherit (builtins) readDir; inherit (lib.attrsets) mapAttrs mapAttrsToList mergeAttrsList; baseDirectory = ../by-name; - namesForShard = shard: type: + namesForShard = + shard: type: if type != "directory" then { } else - mapAttrs - (name: _: baseDirectory + "/${shard}/${name}/default.nix") - (lib.filterAttrs (name: _: !(lib.hasAttr "packages.nix" (readDir (baseDirectory + "/${shard}/${name}")))) (readDir (baseDirectory + "/${shard}"))); + mapAttrs (name: _: baseDirectory + "/${shard}/${name}/default.nix") ( + lib.filterAttrs ( + name: _: !(lib.hasAttr "packages.nix" (readDir (baseDirectory + "/${shard}/${name}"))) + ) (readDir (baseDirectory + "/${shard}")) + ); - namesForShardGroups = shard: type: + namesForShardGroups = + shard: type: if type != "directory" then { } else - mapAttrs - (name: _: baseDirectory + "/${shard}/${name}") - (lib.filterAttrs (name: _: lib.hasAttr "packages.nix" (readDir (baseDirectory + "/${shard}/${name}"))) (readDir (baseDirectory + "/${shard}"))); + mapAttrs (name: _: baseDirectory + "/${shard}/${name}") ( + lib.filterAttrs ( + name: _: lib.hasAttr "packages.nix" (readDir (baseDirectory + "/${shard}/${name}")) + ) (readDir (baseDirectory + "/${shard}")) + ); packageFiles = mergeAttrsList (mapAttrsToList namesForShard (readDir baseDirectory)); - packageGroupFiles = lib.attrValues (mergeAttrsList (mapAttrsToList namesForShardGroups (readDir baseDirectory))); + packageGroupFiles = lib.attrValues ( + mergeAttrsList (mapAttrsToList namesForShardGroups (readDir baseDirectory)) + ); res = { _internalCallByNamePackageFile = file: self.callPackage file { }; - } // - (mapAttrs - (name: self._internalCallByNamePackageFile) - packageFiles) // - lib.foldl (acc: path: (import "${path}/packages.nix" { inherit lib noSysDirs config overlays; } res self super) // acc) { } packageGroupFiles; + } + // (mapAttrs (name: self._internalCallByNamePackageFile) packageFiles) + // lib.foldl ( + acc: path: + (import "${path}/packages.nix" { + inherit + lib + noSysDirs + config + overlays + ; + } res self super) + // acc + ) { } packageGroupFiles; in res; # stdenvOverrides is used to avoid having multiple of versions # of certain dependencies that were used in bootstrapping the # standard environment. - stdenvOverrides = self: super: - (super.stdenv.overrides or (_: _: { })) self super; + stdenvOverrides = self: super: (super.stdenv.overrides or (_: _: { })) self super; # Allow packages to be overridden globally via the `packageOverrides' # configuration option, which must be a function that takes `pkgs' @@ -234,9 +273,9 @@ let # (un-overridden) set of packages, allowing packageOverrides # attributes to refer to the original attributes (e.g. "foo = # ... pkgs.foo ..."). - configOverrides = self: super: - lib.optionalAttrs allowCustomOverrides - ((config.packageOverrides or (super: { })) super); + configOverrides = + self: super: + lib.optionalAttrs allowCustomOverrides ((config.packageOverrides or (super: { })) super); # Convenience attributes for instantitating package sets. Each of # these will instantiate a new version of allPackages. Currently the @@ -251,17 +290,10 @@ let # that target system. For instance, pkgsCross.raspberryPi.hello, # will refer to the "hello" package built for the ARM6-based # Raspberry Pi. - pkgsCross = lib.mapAttrs - (n: crossSystem: - nixpkgsFun { inherit crossSystem; }) - lib.systems.examples; + pkgsCross = lib.mapAttrs (n: crossSystem: nixpkgsFun { inherit crossSystem; }) lib.systems.examples; pkgsLLVM = nixpkgsFun { - overlays = [ - (self': super': { - pkgsLLVM = super'; - }) - ] ++ overlays; + overlays = [ (self': super': { pkgsLLVM = super'; }) ] ++ overlays; # Bootstrap a cross stdenv using the LLVM toolchain. # This is currently not possible when compiling natively, # so we don't need to check hostPlatform != buildPlatform. @@ -276,73 +308,59 @@ let # supported. 32-bit is also not supported. pkgsMusl = if stdenv.hostPlatform.isLinux && stdenv.buildPlatform.is64bit then - nixpkgsFun - { - overlays = [ - (self': super': { - pkgsMusl = super'; - }) - ] ++ overlays; - ${if stdenv.hostPlatform == stdenv.buildPlatform - then "localSystem" else "crossSystem"} = { - parsed = makeMuslParsedPlatform stdenv.hostPlatform.parsed; - }; - } else throw "Musl libc only supports 64-bit Linux systems."; + nixpkgsFun { + overlays = [ (self': super': { pkgsMusl = super'; }) ] ++ overlays; + ${if stdenv.hostPlatform == stdenv.buildPlatform then "localSystem" else "crossSystem"} = { + parsed = makeMuslParsedPlatform stdenv.hostPlatform.parsed; + }; + } + else + throw "Musl libc only supports 64-bit Linux systems."; # All packages built for i686 Linux. # Used by wine, firefox with debugging version of Flash, ... pkgsi686Linux = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86 then - nixpkgsFun - { - overlays = [ - (self': super': { - pkgsi686Linux = super'; - }) - ] ++ overlays; - ${if stdenv.hostPlatform == stdenv.buildPlatform - then "localSystem" else "crossSystem"} = { - parsed = stdenv.hostPlatform.parsed // { - cpu = lib.systems.parse.cpuTypes.i686; - }; + nixpkgsFun { + overlays = [ (self': super': { pkgsi686Linux = super'; }) ] ++ overlays; + ${if stdenv.hostPlatform == stdenv.buildPlatform then "localSystem" else "crossSystem"} = { + parsed = stdenv.hostPlatform.parsed // { + cpu = lib.systems.parse.cpuTypes.i686; }; - } else throw "i686 Linux package set can only be used with the x86 family."; + }; + } + else + throw "i686 Linux package set can only be used with the x86 family."; # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages pkgsx86_64Darwin = if stdenv.hostPlatform.isDarwin then - nixpkgsFun - { - overlays = [ - (self': super': { - pkgsx86_64Darwin = super'; - }) - ] ++ overlays; - localSystem = { - parsed = stdenv.hostPlatform.parsed // { - cpu = lib.systems.parse.cpuTypes.x86_64; - }; + nixpkgsFun { + overlays = [ (self': super': { pkgsx86_64Darwin = super'; }) ] ++ overlays; + localSystem = { + parsed = stdenv.hostPlatform.parsed // { + cpu = lib.systems.parse.cpuTypes.x86_64; }; - } else throw "x86_64 Darwin package set can only be used on Darwin systems."; + }; + } + else + throw "x86_64 Darwin package set can only be used on Darwin systems."; # If already linux: the same package set unaltered # Otherwise, return a natively built linux package set for the current cpu architecture string. # (ABI and other details will be set to the default for the cpu/os pair) pkgsLinux = - if stdenv.hostPlatform.isLinux - then self + if stdenv.hostPlatform.isLinux then + self else - nixpkgsFun { - localSystem = lib.systems.elaborate "${stdenv.hostPlatform.parsed.cpu.name}-linux"; - }; + nixpkgsFun { localSystem = lib.systems.elaborate "${stdenv.hostPlatform.parsed.cpu.name}-linux"; }; # Extend the package set with zero or more overlays. This preserves # preexisting overlays. Prefer to initialize with the right overlays # in one go when calling Nixpkgs, for performance and simplicity. - appendOverlays = extraOverlays: - if extraOverlays == [ ] - then self - else nixpkgsFun { overlays = args.overlays ++ extraOverlays; }; + appendOverlays = + extraOverlays: + if extraOverlays == [ ] then self else nixpkgsFun { overlays = args.overlays ++ extraOverlays; }; # NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB # of allocations. DO NOT USE THIS IN NIXPKGS. @@ -356,34 +374,28 @@ let # Fully static packages. # Currently uses Musl on Linux (couldn’t get static glibc to work). pkgsStatic = nixpkgsFun ({ - overlays = [ - (self': super': { - pkgsStatic = super'; - }) - ] ++ overlays; + overlays = [ (self': super': { pkgsStatic = super'; }) ] ++ overlays; crossSystem = { isStatic = true; parsed = - if stdenv.isLinux - then makeMuslParsedPlatform stdenv.hostPlatform.parsed - else stdenv.hostPlatform.parsed; - } // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") { - gcc.abi = "elfv2"; - }; + if stdenv.isLinux then + makeMuslParsedPlatform stdenv.hostPlatform.parsed + else + stdenv.hostPlatform.parsed; + } // lib.optionalAttrs (stdenv.hostPlatform.system == "powerpc64-linux") { gcc.abi = "elfv2"; }; }); pkgsExtraHardening = nixpkgsFun { overlays = [ (self': super': { pkgsExtraHardening = super'; - stdenv = super'.withDefaultHardeningFlags - ( - super'.stdenv.cc.defaultHardeningFlags ++ [ - "zerocallusedregs" - "trivialautovarinit" - ] - ) - super'.stdenv; + stdenv = super'.withDefaultHardeningFlags ( + super'.stdenv.cc.defaultHardeningFlags + ++ [ + "zerocallusedregs" + "trivialautovarinit" + ] + ) super'.stdenv; }) ] ++ overlays; }; @@ -392,21 +404,23 @@ let # The complete chain of package set builders, applied from top to bottom. # stdenvOverlays must be last as it brings package forward from the # previous bootstrapping phases which have already been overlayed. - toFix = lib.foldl' (lib.flip lib.extends) (self: { }) ([ - stdenvBootstappingAndPlatforms - stdenvAdapters - trivialBuilders - splice - byNamePackages - basePackages - commonUpdaterPackages - buildSupportPackages - otherPackageSets - # aliases - configOverrides - ] ++ overlays ++ [ - stdenvOverrides - ]); + toFix = lib.foldl' (lib.flip lib.extends) (self: { }) ( + [ + stdenvBootstappingAndPlatforms + stdenvAdapters + trivialBuilders + splice + byNamePackages + basePackages + commonUpdaterPackages + buildSupportPackages + otherPackageSets + # aliases + configOverrides + ] + ++ overlays + ++ [ stdenvOverrides ] + ); in # Return the complete set of packages. -- 2.45.2 From e0d98ae78929953a6791c1d226b4851e9342c523 Mon Sep 17 00:00:00 2001 From: isabel Date: Sun, 30 Jun 2024 09:17:54 +0100 Subject: [PATCH 2/2] chore: add formatting commit to git-blame-ignore-revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..688bdfe --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,2 @@ +# formatting +a5059374106b6b1148a3cc6673c27ec1829380ea -- 2.45.2